//
// 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;
//
//
// Registers:
//
//   Name                       Reg   Size
//   -------------------------- ----- ----
//   g_amHardSplit              c0      16
//   inv_projection             c16      4
//   inv_view_projection        c20      4
//   camera_position            c24      1
//   g_screen_size              c25      1
//   g_vpos_texel_offset        c26      1
//   g_iSplitCount              c27      1
//   g_vSplitDepth              c28      1
//   g_fFadeRange               c29      1
//   g_sample_bias              c30      1
//   g_shadow_light_direction   c31      1
//   sun_direction              c32      1
//   sun_colour                 c33      1
//   g_deep_water_colour        c34      1
//   g_sea_bed_light_scatter    c35      1
//   g_refraction_light_scatter c36      1
//   g_hdr_on                   c37      1
//   g_volume_fog_colour        c38      1
//   g_fog_distance_start       c39      1
//   g_fog_distance_strength    c40      1
//   g_fog_distance_scale       c41      1
//   g_fog_height_bottom        c42      1
//   g_fog_height_top           c43      1
//   g_fog_height_strength      c44      1
//   g_fog_colour_blend         c45      1
//   g_fog_clear_distance       c46      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
//

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

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 r0, r20

    dp4 r5.x, r0, r5
    dp4 r5.y, r0, r6
    dp4 r5.z, r0, r7
    dp4 r5.w, r0, r2
    texldp r2, r5, s1
    cmp r1.z, r1.y, c61.x, r2.x
    dp4 r1.w, c28, r3
    add r1.w, r1.w, -c29.x
    add r1.w, -r1.w, v2.w
    rcp r2.x, c29.x
    mul_sat r1.w, r1.w, r2.x
    add r1.y, r1.y, c61.x
    add r2.xyz, r1.x, c47
    cmp r3, -r2_abs.x, c4, r4.y
    cmp r5, -r2_abs.x, c5, r4.y
    cmp r6, -r2_abs.x, c6, r4.y
    cmp r7, -r2_abs.x, c7, r4.y
    cmp r3, -r2_abs.y, c8, r3
    cmp r5, -r2_abs.y, c9, r5
    cmp r6, -r2_abs.y, c10, r6
    cmp r7, -r2_abs.y, c11, r7
    cmp r3, -r2_abs.z, c12, r3
    cmp r5, -r2_abs.z, c13, r5
    cmp r6, -r2_abs.z, c14, r6
    cmp r2, -r2_abs.z, c15, r7
    dp4 r3.x, r0, r3
    dp4 r3.y, r0, r5
    dp4 r3.z, r0, r6
    dp4 r3.w, r0, r2
    texldp r0, r3, s1
    cmp r0.x, r1.y, c61.x, r0.x
    lrp r2.x, r1.w, r0.x, r1.z
    cmp r0.x, -r1.w, r1.z, r2.x
    add r0.y, -r4.x, c27.x
    frc r0.z, c27.x
    add r0.y, r0.y, -r0.z
    add r1, r0.y, -c61.yxzw
    cmp r1, -r1_abs, c61.x, c61.y
    dp4 r0.y, c28, r1
    add r0.z, r0.y, -c29.y
    add r0.y, -r0.z, r0.y
    add r0.z, -r0.z, v2.w
    rcp r0.y, r0.y
    mul_sat r0.y, r0.y, r0.z
    mad r0.z, r0.y, c47.z, c47.w
    mul r0.y, r0.y, r0.y
    mad_sat r0.x, r0.z, r0.y, r0.x
    add r0.yz, c26.x, vPos.xxyw
    mul r1.xy, r0.yzzw, c25.zwzw
    mad r0.yz, v0.xxyw, c48.xxyw, c48.xzww
    mad r2.xy, v1, c49.x, c49.yzzw
    mul r0.yz, r0, c49.w
    texld r3, r0.yzzw, s3
    mad r0.yzw, r3.xxwz, c52.x, c52.y
    mul r2.zw, c52.z, v0
    texld r3, r2.zwzw, s3
    mad r0.yzw, r3.xxwz, c61.z, r0
    mul r2.xy, r2, c52.w
    texld r2, r2, s3
    mad r0.yzw, r2.xxwz, c61.z, r0
    mul r2.xy, c48.z, v1.zwzw
    texld r2, r2, s3
    mad r0.yzw, r2.xxwz, c61.z, r0
    add r0.yzw, r0, -c61.w
    dp3 r0.w, r0.yzww, r0.yzww
    rsq r0.w, r0.w
    mul r2.yz, r0.w, r0
    texldl r3, r1.xyyy, s5
    mul r2.x, r2.y, r3.w
    mov r2.w, c61.x
    nrm r3.xyz, r2.xwzw
    add r0.yzw, c24.xxyz, -v2.xxyz
    nrm r2.xyz, r0.yzww
    dp3 r0.y, -r2, r3
    add r0.y, r0.y, r0.y
    mad r0.yzw, r3.xxyz, -r0.y, -r2.xxyz
    dp3 r2.w, r0.yzww, -r2
    max r4.z, c50.x, r2.w
    mul r2.w, r4.z, r4.z
    mul r2.w, r2.w, r2.w
    mul r2.w, r2.w, r4.z
    mad r2.w, r2.w, c50.y, c50.z
    mad r5.xy, r3.xzzw, c50.w, r1
    add r5.z, -r5.y, c61.x
    texldl r5, r5.xzzz, s4
    mul r5.xyz, r2.w, r5
    mov r6.xyz, c32
    mul r6.xyz, r6, c51.xyxw
    dp3 r4.z, -c32, -r6
    max r5.w, c50.x, r4.z
    mul r4.z, r5.w, r5.w
    mul r4.z, r4.z, r4.z
    mul r4.z, r4.z, r5.w
    mad r4.z, r4.z, c50.y, c50.z
    add r4.z, -r4.z, c61.x
    mul r4.z, r4.z, -c32.y
    mul r6.xyz, r4.z, c34
    mul r6.xyz, r6, c33
    mul r6.xyz, r6, c51.z
    mov r7.xw, c51
    cmp r4.z, -c37.x, r7.x, r7.w
    mul r6.xyz, r4.z, r6
    cmp r6.xyz, c32.y, r4.y, r6
    mov r1.zw, c61.y
    texldl r7, r1, s2
    mad r8.xy, r1, c65, c65.zwzw
    mad r8.zw, r7.x, c61.xyxy, c61.xyyx
    dp4 r1.z, r8, c18
    dp4 r1.w, r8, c19
    rcp r1.w, r1.w
    mad r1.z, r1.z, r1.w, -v2.w
    max r4.w, r1.z, c61.y
    dp4 r1.z, r8, c21
    dp4 r1.w, r8, c23
    rcp r1.w, r1.w
    mad r1.z, r1.z, -r1.w, v2.y
    max r5.w, r1.z, c61.y
    mul_sat r1.z, r5.w, c52.w
    mul r7, r3.w, r3.xzzz
    mul r7, r1.z, r7
    mad r7, r7, c53.x, r1.xyyy
    texldl r7, r7, s5
    if_lt c53.y, r7.w
    endif
    log r8.x, c35.x
    log r8.y, c35.y
    log r8.z, c35.z
    mul r1.xyw, r5.w, r8.xyzz
    exp r8.x, r1.x
    exp r8.y, r1.y
    exp r8.z, r1.w
    pow r1.x, c36.x, r4.w
    mad r7.xyz, r7, r8, -r6
    mad r1.xyw, r1.x, r7.xyzz, r6.xyzz
    mad r2.w, r2.w, -r1.z, c61.x
    mul r1.xyw, r1, r2.w
    mad r1.xyw, r5.xyzz, r1.z, r1
    dp3 r0.y, -c32, r0.yzww
    max r2.w, -c61.x, r0.y
    min r0.y, r2.w, c61.x
    add r0.z, -r0_abs.y, c61.x
    rsq r0.z, r0.z
    rcp r0.z, r0.z
    mad r0.w, r0_abs.y, c53.z, c53.w
    mad r0.w, r0.w, r0_abs.y, c54.x
    mad r0.w, r0.w, r0_abs.y, c54.y
    mul r0.z, r0.z, r0.w
    mad r0.w, r0.z, c54.z, c54.w
    cmp r0.y, r0.y, c61.y, c61.x
    mad r0.y, r0.w, r0.y, r0.z
    dp3 r0.z, -c32, r3
    if_ge -r0.z, c61.y
      mov r3.xyz, c61.y
    else
      mov r5.xy, c63
      cmp r0.w, -c37.x, r5.x, r5.y
      add r0.w, r0.w, r4.z
      mad r0.w, r0.w, c52.z, c52.z
      mad r0.w, r0.w, c52.x, c52.y
      mad r5.xy, r0.w, -r0.w, c63.zwzw
      log r0.w, r5.x
      cmp r0.w, r5.y, r0.w, c55.x
      mul r2.w, r0.w, c55.y
      mad r0.w, r0.w, c55.z, c55.w
      mad r2.w, r0.w, r0.w, -r2.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      add r0.w, -r0.w, r2.w
      max r2.w, r0.w, c61.y
      rsq r0.w, r2.w
      rcp r0.w, r0.w
      mul r0.w, r0.w, c56.x
      rcp r0.w, r0.w
      mul r2.w, r0.w, c56.y
      mad r0.w, r0.w, c56.y, c56.z
      add r5.xy, r0.y, c56.wyzw
      rcp r2.w, r2.w
      cmp r0.w, r0.w, r2.w, c58.x
      mul r5.xy, r0.w, r5
      mul r5.yz, r5.xxyw, c58.y
      mul r6.xy, r5.yzzw, r5.yzzw
      mad r7, r6.xxyy, c57.x, c57.yzyz
      rcp r0.w, r7.y
      mul r0.w, r0.w, r7.x
      mul r0.w, r0.w, -r6.x
      cmp r5.yz, -r5, c61.y, c61.x
      cmp r2.w, r5.x, -c61.y, -c61.x
      add r2.w, r2.w, r5.y
      mul r0.w, r0.w, c58.z
      exp r0.w, r0.w
      add r0.w, -r0.w, c61.x
      rsq r0.w, r0.w
      rcp r0.w, r0.w
      mad r0.w, r2.w, r0.w, c61.x
      mul r0.w, r0.w, c52.z
      rcp r2.w, r7.w
      mul r2.w, r2.w, r7.z
      mul r2.w, r2.w, -r6.y
      mul r2.w, r2.w, c58.z
      exp r2.w, r2.w
      add r2.w, -r2.w, c61.x
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mad r2.w, r5.z, r2.w, c61.x
      mad r0.w, r2.w, c52.z, -r0.w
      mov_sat r2.w, r0.z
      add r2.w, r2.w, -c61.x
      mad r2.w, r2.w, c57.w, c57.z
      dp3 r3.w, -c32, -r2
      max r4.w, r3.w, c61.y
      pow r3.w, r4.w, c58.w
      mad r3.w, r3.w, c62.x, c62.y
      mul r0.w, r0.w, r2.w
      mul r3.xyz, r3.w, r0.w
    endif
    mul r3.xyz, r3, c33
    if_ge -r0.z, c61.y
      mov r5.xyz, c61.y
    else
      mov r6.zw, c62
      cmp r0.w, -c37.x, r6.z, r6.w
      add r0.w, r0.w, r4.z
      mad r0.w, r0.w, c52.z, c52.z
      mad r0.w, r0.w, c52.x, c52.y
      mad r6.xy, r0.w, -r0.w, c63.zwzw
      log r0.w, r6.x
      cmp r0.w, r6.y, r0.w, c55.x
      mul r2.w, r0.w, c55.y
      mad r0.w, r0.w, c55.z, c55.w
      mad r2.w, r0.w, r0.w, -r2.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      add r0.w, -r0.w, r2.w
      max r2.w, r0.w, c61.y
      rsq r0.w, r2.w
      rcp r0.w, r0.w
      mul r0.w, r0.w, c56.x
      rcp r0.w, r0.w
      mul r2.w, r0.w, c56.y
      mad r0.w, r0.w, c56.y, c56.z
      add r6.xy, r0.y, c56.wyzw
      rcp r0.y, r2.w
      cmp r0.y, r0.w, r0.y, c58.x
      mul r0.yw, r0.y, r6.xxzy
      mul r6.xy, r0.ywzw, c58.y
      mul r6.zw, r6.xyxy, r6.xyxy
      mad r7, r6.zzww, c57.x, c57.yzyz
      rcp r0.w, r7.y
      mul r0.w, r0.w, r7.x
      mul r0.w, r0.w, -r6.z
      cmp r6.xy, -r6, c61.y, c61.x
      cmp r0.y, r0.y, -c61.y, -c61.x
      add r0.y, r0.y, r6.x
      mul r0.w, r0.w, c58.z
      exp r0.w, r0.w
      add r0.w, -r0.w, c61.x
      rsq r0.w, r0.w
      rcp r0.w, r0.w
      mad r0.y, r0.y, r0.w, c61.x
      mul r0.y, r0.y, c52.z
      rcp r0.w, r7.w
      mul r0.w, r0.w, r7.z
      mul r0.w, r0.w, -r6.w
      mul r0.w, r0.w, c58.z
      exp r0.w, r0.w
      add r0.w, -r0.w, c61.x
      rsq r0.w, r0.w
      rcp r0.w, r0.w
      mad r0.w, r6.y, r0.w, c61.x
      mad r0.y, r0.w, c52.z, -r0.y
      mov_sat r0.z, r0.z
      add r0.z, r0.z, -c61.x
      mad r0.z, r0.z, c64.x, c64.y
      dp3 r0.w, -c32, -r2
      max r2.x, r0.w, c61.y
      pow r0.w, r2.x, c58.w
      mad r0.w, r0.w, c64.z, c64.w
      mul r0.y, r0.z, r0.y
      mul r5.xyz, r0.w, r0.y
    endif
    mul r0.yzw, r5.xxyz, c33.xxyz
    mul r0.x, r0.x, r1.z
    mul r0.yzw, r0, c59.x
    mad r0.yzw, r3.xxyz, c59.y, r0
    mad r0.xyz, r0.x, r0.yzww, r1.xyww
    add r1.xyz, -c24, v2
    dp3 r0.w, r1, r1
    rsq r0.w, r0.w
    rcp r0.w, r0.w
    add r2.x, r4.x, -c39.x
    mad r2.x, r2.x, c59.z, c59.w
    add r2.y, r4.x, -c40.x
    mul r2.y, r2.y, c60.x
    rcp r2.y, r2.y
    mad r2.x, r0.w, r2.y, r2.x
    mul r2.x, r2.x, c58.z
    exp r2.x, r2.x
    rcp r2.x, r2.x
    mad_sat r2.x, c41.x, -r2.x, c41.x
    add r2.y, c43.x, -v2.y
    mov r3.x, c43.x
    add r2.z, r3.x, -c42.x
    add r2.y, r2.y, -c42.x
    rcp r2.z, r2.z
    mul_sat r2.y, r2.z, r2.y
    mad r2.z, r2.y, c47.z, c47.w
    mul r2.y, r2.y, r2.y
    mul r2.y, r2.y, r2.z
    mov r3.y, c53.y
    add r2.z, r3.y, -c46.x
    rcp r2.w, c46.x
    cmp r2.z, r2.z, c60.x, r2.w
    mul_sat r0.w, r0.w, r2.z
    mad r2.z, r0.w, c47.z, c47.w
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, r2.z
    mov r3.xyz, c33
    mul r3.xyz, r3, c38
    mul r3.xyz, r3, c51.z
    abs r2.z, c32.y
    mul r3.xyz, r2.z, r3
    mul r5.xyz, r4.z, r3
    max r1.w, r1.y, c61.y
    texld r1, r1.xwzw, s0
    dp2add_sat r1.w, r2.x, c45.x, r4.y
    mad r1.xyz, r3, -r4.z, r1
    mad r1.xyz, r1.w, r1, r5
    mad r1.w, c44.x, r2.y, r2.x
    mul_sat r0.w, r0.w, r1.w
    add r1.xyz, -r0, r1
    mad oC0.xyz, r0.w, r1, r0
    mov oC0.w, c61.x

// approximately 379 instruction slots used (15 texture, 364 arithmetic)
 