//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 camera_position;
//   float4x4 g_amHardSplit[4];
//   float3 g_deep_water_colour;
//   float2 g_fFadeRange;
//   float g_fog_clear_distance;
//   float g_fog_colour_blend;
//   float g_fog_distance_scale;
//   float g_fog_distance_start;
//   float g_fog_distance_strength;
//   float g_fog_height_bottom;
//   float g_fog_height_strength;
//   float g_fog_height_top;
//   float g_hdr_on;
//   float g_iSplitCount;
//   float g_refraction_light_scatter;
//   float g_sample_bias;
//   float4 g_screen_size;
//   float3 g_sea_bed_light_scatter;
//   float3 g_shadow_light_direction;
//   float4 g_vSplitDepth;
//   float3 g_volume_fog_colour;
//   float g_vpos_texel_offset;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_projection;
//   float4x4 inv_view_projection;
//   sampler2D sHardShadowBuffer;
//   sampler2D s_normal;
//   samplerCUBE s_sky;
//   sampler2D s_terrain_reflection;
//   sampler2D s_terrain_refraction;
//   float3 sun_colour;
//   float3 sun_direction;
//   float time_in_sec;
//   float2 wind_direction_PS;
//
//
// Registers:
//
//   Name                       Reg   Size
//   -------------------------- ----- ----
//   g_amHardSplit              c0      16
//   inv_projection             c16      4
//   inv_view_projection        c20      4
//   camera_position            c24      1
//   time_in_sec                c25      1
//   g_screen_size              c26      1
//   g_vpos_texel_offset        c27      1
//   g_iSplitCount              c28      1
//   g_vSplitDepth              c29      1
//   g_fFadeRange               c30      1
//   g_sample_bias              c31      1
//   g_shadow_light_direction   c32      1
//   sun_direction              c33      1
//   sun_colour                 c34      1
//   g_deep_water_colour        c35      1
//   g_sea_bed_light_scatter    c36      1
//   g_refraction_light_scatter c37      1
//   g_hdr_on                   c38      1
//   g_volume_fog_colour        c39      1
//   g_fog_distance_start       c40      1
//   g_fog_distance_strength    c41      1
//   g_fog_distance_scale       c42      1
//   g_fog_height_bottom        c43      1
//   g_fog_height_top           c44      1
//   g_fog_height_strength      c45      1
//   g_fog_colour_blend         c46      1
//   g_fog_clear_distance       c47      1
//   wind_direction_PS          c48      1
//   s_sky                      s0       1
//   sHardShadowBuffer          s1       1
//   gbuffer_channel_4_sampler  s2       1
//   s_normal                   s3       1
//   s_terrain_reflection       s4       1
//   s_terrain_refraction       s5       1
//
//
// Default values:
//
//   wind_direction_PS
//     c48  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c49, 0.400000006, 0, 0.0500000007, 1
    def c50, 5.9000001, 177, -1, 1
    def c51, 2, -1, 4, 0.289999992
    def c52, 0.100000001, 0.200000003, 0.300000012, 0.5
    def c53, -1.10000002, -1.20000005, 0.899999976, 8
    def c54, 9.99999975e-005, 0.0900000036, 0.00999999978, 1.5
    def c55, 1, 0.00400000019, 0.00833333377, 0.00100000005
    def c56, -0.0187292993, 0.0742610022, -0.212114394, 1.57072878
    def c57, -2, 3.14159274, -4.89999984e-005, 0.487991005
    def c58, 0.346573591, 4.54688501, 1.41421354, 0.0174532924
    def c59, 0.707106769, 0.140012279, 1.27323949, 1
    def c60, 0.0174532924, -9.99999975e-005, -0.0174532924, 10000
    def c61, 0.150000006, 0.850000024, 8, -4
    def c62, 1000, 0, 0, 0
    def c63, 1.44269502, 0.453990489, 1, 60
    def c64, 0, -1, -2, 3
    def c65, -0.00999999978, -0.0799999982, 0.00999999978, 0.159999996
    def c66, 1, 0.999000013, -9.96578407, 4.95061684
    def c67, 0.882096469, 0.00999999978, -1.6e-005, 0.159344003
    def c68, 0.809017003, 1, 0.581907392, 0.00999999978
    def c69, -0, -1, -2, -3
    def c70, 2, -2, -1, 1
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord v0
    dcl_texcoord5 v1.xy
    dcl vPos.xy
    dcl_cube s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    mul r0, c50.xyxy, v1.xyxy
    mov r1.x, c25.x
    mul r2, r1.x, c65
    mov r1.zw, c50
    mul r3.xy, r1.zwzw, c48.yxzw
    mad r3, r2.xxzz, r3.xyxy, r0.zwzw
    add r3, r3, c49.x
    mad r0, r2.yyww, c48.xyxy, r0
    mad r2, r1.x, -c49.yzyz, r3
    mad r0, r1.x, -c49.yzyz, r0
    mov r3.xyz, c32
    mad r3.xyz, r3, -c31.x, v0
    add r4, -c29, v0.w
    cmp r4, r4, c49.w, c49.y
    dp4 r1.x, r4, r4
    add r1.y, r1.x, -c28.x
    add r4, r1.x, c69
    cmp r5, -r4_abs, c49.w, c49.y
    mov r6.y, c49.y
    cmp r7, -r4_abs.x, c0, r6.y
    cmp r8, -r4_abs.x, c1, r6.y
    cmp r9, -r4_abs.x, c2, r6.y
    cmp r10, -r4_abs.x, c3, r6.y
    cmp r7, -r4_abs.y, c4, r7
    cmp r8, -r4_abs.y, c5, r8
    cmp r9, -r4_abs.y, c6, r9
    cmp r10, -r4_abs.y, c7, r10
    cmp r7, -r4_abs.z, c8, r7
    cmp r8, -r4_abs.z, c9, r8
    cmp r9, -r4_abs.z, c10, r9
    cmp r10, -r4_abs.z, c11, r10
    cmp r7, -r4_abs.w, c12, r7
    cmp r8, -r4_abs.w, c13, r8
    cmp r9, -r4_abs.w, c14, r9
    cmp r4, -r4_abs.w, c15, r10
    mov r3.w, c50.w
	
mov r20, r3

dp4 r21.x, r20, c200
dp4 r21.y, r20, c201
dp4 r21.z, r20, c202
dp4 r21.w, r20, c203

texldl r24, c220.z, s13
add r24.y, r21.w, -r24.y
mul r24.x, r24.x, r24.y
add r21.x, r21.x, -r24.x

dp4 r20.x, r21, c204
dp4 r20.y, r21, c205
dp4 r20.z, r21, c206
dp4 r20.w, r21, c207

mov r3, r20

    dp4 r7.x, r3, r7
    dp4 r7.y, r3, r8
    dp4 r7.z, r3, r9
    dp4 r7.w, r3, r4
    texldp r4, r7, s1
    cmp r4.x, r1.y, c50.w, r4.x
    dp4 r4.y, c29, r5
    add r4.y, r4.y, -c30.x
    add r4.y, -r4.y, v0.w
    rcp r4.z, c30.x
    mul_sat r4.y, r4.z, r4.y
    add r1.y, r1.y, c50.w
    add r5.xyz, r1.x, c64
    cmp r7, -r5_abs.x, c4, r6.y
    cmp r8, -r5_abs.x, c5, r6.y
    cmp r9, -r5_abs.x, c6, r6.y
    cmp r10, -r5_abs.x, c7, r6.y
    cmp r7, -r5_abs.y, c8, r7
    cmp r8, -r5_abs.y, c9, r8
    cmp r9, -r5_abs.y, c10, r9
    cmp r10, -r5_abs.y, c11, r10
    cmp r7, -r5_abs.z, c12, r7
    cmp r8, -r5_abs.z, c13, r8
    cmp r9, -r5_abs.z, c14, r9
    cmp r5, -r5_abs.z, c15, r10
    dp4 r7.x, r3, r7
    dp4 r7.y, r3, r8
    dp4 r7.z, r3, r9
    dp4 r7.w, r3, r5
    texldp r3, r7, s1
    cmp r1.x, r1.y, c50.w, r3.x
    lrp r3.x, r4.y, r1.x, r4.x
    cmp r1.x, -r4.y, r4.x, r3.x
    add r1.y, r1.z, c28.x
    frc r3.x, c28.x
    add r1.y, r1.y, -r3.x
    add r3, r1.y, c69
    cmp r3, -r3_abs, c49.w, c49.y
    dp4 r1.y, c29, r3
    add r3.x, r1.y, -c30.y
    add r1.y, r1.y, -r3.x
    add r3.x, -r3.x, v0.w
    rcp r1.y, r1.y
    mul_sat r1.y, r1.y, r3.x
    mad r3.x, r1.y, c64.z, c64.w
    mul r1.y, r1.y, r1.y
    mad_sat r1.x, r3.x, r1.y, r1.x
    add r3.xy, c27.x, vPos
    mul r3.xy, r3, c26.zwzw
    mov r4.xyz, c52
    mad r2, r2, c53.xyzz, r4.xyyz
    mul r2.xy, r2, c53.w
    texld r4, r2, s3
    mad r4.xyz, r4.xwzw, c51.x, c51.y
    mul r0.xy, r0, c52.w
    texld r5, r0, s3
    mad r4.xyz, r5.xwzw, -c69.z, r4
    mul r0.xy, r2.zwzw, c51.z
    texld r2, r0, s3
    mad r2.xyz, r2.xwzw, -c69.z, r4
    mul r0.xy, r0.zwzw, c52.x
    texld r0, r0, s3
    mad r0.xyz, r0.xwzw, -c69.z, r2
    add r0.xyz, r0, c69.w
    dp3 r0.z, r0, r0
    rsq r0.z, r0.z
    mul r0.yz, r0.z, r0.xxyw
    texldl r2, r3.xyyy, s5
    mul r0.x, r0.y, r2.w
    mov r0.w, c50.w
    dp3 r0.y, r0.xzww, r0.xzww
    rsq r0.y, r0.y
    mul r2.xz, r0.y, r0
    mul r2.y, r0.y, c51.w
    nrm r0.xyz, r2
    add r2.xyz, c24, -v0
    nrm r4.xyz, r2
    dp3 r0.w, -r4, r0
    add r0.w, r0.w, r0.w
    mad r2.xyz, r0, -r0.w, -r4
    dp3 r0.w, r2, -r4
    max r1.y, c54.x, r0.w
    mul r0.w, r1.y, r1.y
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, r1.y
    mad r0.w, r0.w, c54.y, c54.z
    mad r5.xy, r0.xzzw, c49.z, r3
    add r5.z, -r5.y, c50.w
    texldl r5, r5.xzzz, s4
    mul r5.xyz, r0.w, r5
    mul r6.xzw, r1.wyzw, c33.xyyz
    dp3 r1.y, -c33, -r6.xzww
    max r4.w, c54.x, r1.y
    mul r1.y, r4.w, r4.w
    mul r1.y, r1.y, r1.y
    mul r1.y, r1.y, r4.w
    mad r1.y, r1.y, c54.y, c54.z
    add r1.y, -r1.y, c50.w
    mul r1.y, r1.y, -c33.y
    mul r6.xzw, r1.y, c35.xyyz
    mul r6.xzw, r6, c34.xyyz
    mul r6.xzw, r6, c54.w
    mov r7.xyw, c55
    cmp r1.y, -c38.x, r7.x, r7.y
    mul r6.xzw, r1.y, r6
    cmp r6.xzw, c33.y, r6.y, r6
    mov r3.zw, c49.y
    texldl r8, r3, s2
    mad r9.xy, r3, c70, c70.zwzw
    mad r9.zw, r8.x, c49.xywy, c49.xyyw
    dp4 r1.z, r9, c18
    dp4 r3.z, r9, c19
    rcp r3.z, r3.z
    mad r1.z, r1.z, r3.z, -v0.w
    max r3.z, r1.z, c49.y
    dp4 r1.z, r9, c21
    dp4 r3.w, r9, c23
    rcp r3.w, r3.w
    mad r1.z, r1.z, -r3.w, v0.y
    max r3.w, r1.z, c49.y
    mul_sat r1.z, r3.w, c51.z
    mul r8, r2.w, r0.xzzz
    mul r8, r1.z, r8
    mad r8, r8, c55.z, r3.xyyy
    texldl r8, r8, s5
    if_lt c55.w, r8.w
    endif
    log r7.x, c36.x
    log r7.y, c36.y
    log r7.z, c36.z
    mul r3.xyw, r3.w, r7.xyzz
    exp r7.x, r3.x
    exp r7.y, r3.y
    exp r7.z, r3.w
    pow r2.w, c37.x, r3.z
    mad r3.xyz, r8, r7, -r6.xzww
    mad r3.xyz, r2.w, r3, r6.xzww
    mad r0.w, r0.w, -r1.z, c50.w
    mul r3.xyz, r3, r0.w
    mad r3.xyz, r5, r1.z, r3
    dp3 r0.w, -c33, r2
    max r2.x, c50.z, r0.w
    min r0.w, r2.x, c50.w
    add r2.x, -r0_abs.w, c50.w
    rsq r2.x, r2.x
    rcp r2.x, r2.x
    mad r2.y, r0_abs.w, c56.x, c56.y
    mad r2.y, r2.y, r0_abs.w, c56.z
    mad r2.y, r2.y, r0_abs.w, c56.w
    mul r2.x, r2.x, r2.y
    mad r2.y, r2.x, c57.x, c57.y
    cmp r0.w, r0.w, c49.y, c49.w
    mad r0.w, r2.y, r0.w, r2.x
    dp3 r0.x, -c33, r0
    if_ge -r0.x, c49.y
      mov r2.xyz, c49.y
    else
      mov r5.zw, c57
      cmp r0.y, -c38.x, r5.z, r5.w
      add r0.y, r0.y, r1.y
      mad r0.y, r0.y, c52.w, c52.w
      mad r0.y, r0.y, c51.x, c51.y
      mad r0.yz, r0.y, -r0.y, c66.xxyw
      log r0.y, r0.y
      cmp r0.y, r0.z, r0.y, c66.z
      mul r0.z, r0.y, c66.w
      mad r0.y, r0.y, c58.x, c58.y
      mad r0.z, r0.y, r0.y, -r0.z
      rsq r0.z, r0.z
      rcp r0.z, r0.z
      add r0.y, -r0.y, r0.z
      max r2.w, r0.y, c49.y
      rsq r0.y, r2.w
      rcp r0.y, r0.y
      mul r0.y, r0.y, c58.z
      rcp r0.y, r0.y
      mul r0.z, r0.y, c58.w
      mad r0.y, r0.y, c60.x, c60.y
      add r5.xy, r0.w, c60.zxzw
      rcp r0.z, r0.z
      cmp r0.y, r0.y, r0.z, c60.w
      mul r0.yz, r0.y, r5.xxyw
      mul r5.xy, r0.yzzw, c59.x
      mul r5.zw, r5.xyxy, r5.xyxy
      mad r8, r5.zzww, c59.y, c59.zwzw
      rcp r0.z, r8.y
      mul r0.z, r0.z, r8.x
      mul r0.z, r0.z, -r5.z
      cmp r5.xy, -r5, c49.y, c49.w
      cmp r0.y, r0.y, -c49.y, -c49.w
      add r0.y, r0.y, r5.x
      mul r0.z, r0.z, c63.x
      exp r0.z, r0.z
      add r0.z, -r0.z, c50.w
      rsq r0.z, r0.z
      rcp r0.z, r0.z
      mad r0.y, r0.y, r0.z, c50.w
      mul r0.y, r0.y, c52.w
      rcp r0.z, r8.w
      mul r0.z, r0.z, r8.z
      mul r0.z, r0.z, -r5.w
      mul r0.z, r0.z, c63.x
      exp r0.z, r0.z
      add r0.z, -r0.z, c50.w
      rsq r0.z, r0.z
      rcp r0.z, r0.z
      mad r0.z, r5.y, r0.z, c50.w
      mad r0.y, r0.z, c52.w, -r0.y
      mov_sat r0.z, r0.x
      add r0.z, r0.z, c50.z
      mad r0.z, r0.z, c63.y, c63.z
      dp3 r2.w, -c33, -r4
      max r3.w, r2.w, c49.y
      pow r2.w, r3.w, c63.w
      mad r2.w, r2.w, c67.x, c67.y
      mul r0.y, r0.z, r0.y
      mul r2.xyz, r2.w, r0.y
    endif
    mul r2.xyz, r2, c34
    if_ge -r0.x, c49.y
      mov r5.xyz, c49.y
    else
      mov r6.zw, c67
      cmp r0.y, -c38.x, r6.z, r6.w
      add r0.y, r0.y, r1.y
      mad r0.y, r0.y, c52.w, c52.w
      mad r0.y, r0.y, c51.x, c51.y
      mad r0.yz, r0.y, -r0.y, c66.xxyw
      log r0.y, r0.y
      cmp r0.y, r0.z, r0.y, c66.z
      mul r0.z, r0.y, c66.w
      mad r0.y, r0.y, c58.x, c58.y
      mad r0.z, r0.y, r0.y, -r0.z
      rsq r0.z, r0.z
      rcp r0.z, r0.z
      add r0.y, -r0.y, r0.z
      max r2.w, r0.y, c49.y
      rsq r0.y, r2.w
      rcp r0.y, r0.y
      mul r0.y, r0.y, c58.z
      rcp r0.y, r0.y
      mul r0.z, r0.y, c58.w
      mad r0.y, r0.y, c60.x, c60.y
      add r6.xz, r0.w, c60.zyxw
      rcp r0.z, r0.z
      cmp r0.y, r0.y, r0.z, c60.w
      mul r0.yz, r0.y, r6.xxzw
      mul r0.zw, r0.xyyz, c59.x
      mul r6.xz, r0.zyww, r0.zyww
      mad r8, r6.xxzz, c59.y, c59.zwzw
      rcp r2.w, r8.y
      mul r2.w, r2.w, r8.x
      mul r2.w, r2.w, -r6.x
      cmp r0.zw, -r0, c49.y, c49.w
      cmp r0.y, r0.y, -c49.y, -c49.w
      add r0.y, r0.y, r0.z
      mul r0.z, r2.w, c63.x
      exp r0.z, r0.z
      add r0.z, -r0.z, c50.w
      rsq r0.z, r0.z
      rcp r0.z, r0.z
      mad r0.y, r0.y, r0.z, c50.w
      mul r0.y, r0.y, c52.w
      rcp r0.z, r8.w
      mul r0.z, r0.z, r8.z
      mul r0.z, r0.z, -r6.z
      mul r0.z, r0.z, c63.x
      exp r0.z, r0.z
      add r0.z, -r0.z, c50.w
      rsq r0.z, r0.z
      rcp r0.z, r0.z
      mad r0.z, r0.w, r0.z, c50.w
      mad r0.y, r0.z, c52.w, -r0.y
      mov_sat r0.x, r0.x
      add r0.x, r0.x, c50.z
      mad r0.x, r0.x, c68.x, c68.y
      dp3 r0.z, -c33, -r4
      max r2.w, r0.z, c49.y
      pow r0.z, r2.w, c63.w
      mad r0.z, r0.z, c68.z, c68.w
      mul r0.x, r0.x, r0.y
      mul r5.xyz, r0.z, r0.x
    endif
    mul r0.xyz, r5, c34
    mul r0.w, r1.z, r1.x
    mul r0.xyz, r0, c61.x
    mad r0.xyz, r2, c61.y, r0
    mad r0.xyz, r0.w, r0, r3
    add r2.xyz, -c24, v0
    dp3 r0.w, r2, r2
    rsq r0.w, r0.w
    rcp r0.w, r0.w
    add r1.x, r1.w, -c40.x
    mad r1.x, r1.x, c61.z, c61.w
    add r1.z, r1.w, -c41.x
    mul r1.z, r1.z, c62.x
    rcp r1.z, r1.z
    mad r1.x, r0.w, r1.z, r1.x
    mul r1.x, r1.x, c63.x
    exp r1.x, r1.x
    rcp r1.x, r1.x
    mad_sat r1.x, c42.x, -r1.x, c42.x
    add r1.z, c44.x, -v0.y
    mov r3.x, c44.x
    add r1.w, r3.x, -c43.x
    add r1.z, r1.z, -c43.x
    rcp r1.w, r1.w
    mul_sat r1.z, r1.w, r1.z
    mad r1.w, r1.z, c64.z, c64.w
    mul r1.z, r1.z, r1.z
    mul r1.z, r1.z, r1.w
    add r1.w, r7.w, -c47.x
    rcp r3.x, c47.x
    cmp r1.w, r1.w, c62.x, r3.x
    mul_sat r0.w, r0.w, r1.w
    mad r1.w, r0.w, c64.z, c64.w
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, r1.w
    mov r3.xyz, c34
    mul r3.xyz, r3, c39
    mul r3.xyz, r3, c54.w
    abs r1.w, c33.y
    mul r3.xyz, r1.w, r3
    mul r4.xyz, r1.y, r3
    max r2.w, r2.y, c49.y
    texld r2, r2.xwzw, s0
    dp2add_sat r1.w, r1.x, c46.x, r6.y
    mad r2.xyz, r3, -r1.y, r2
    mad r2.xyz, r1.w, r2, r4
    mad r1.x, c45.x, r1.z, r1.x
    mul_sat r0.w, r0.w, r1.x
    lrp r1.xyz, r0.w, r2, r0
    add r0.xyz, -r1, r2
    mad oC0.xyz, r0.w, r0, r1
    mov oC0.w, c50.w

// approximately 392 instruction slots used (15 texture, 377 arithmetic)
 