//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 ambient_cube_fb[2];
//   float3 ambient_cube_lr[2];
//   float3 ambient_cube_tb[2];
//   float3 camera_position;
//   float4x4 g_amHardSplit[4];
//   float4 g_campaign_world_bounds;
//   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_sample_bias;
//   float4 g_screen_size;
//   float3 g_shadow_light_direction;
//   float g_shroud_enabled;
//   float2 g_uv_offset;
//   float4 g_vSplitDepth;
//   float3 g_volume_fog_colour;
//   float g_vpos_texel_offset;
//   float4 g_wp_normal_scales;
//   float2 g_wp_world_size;
//   sampler2D sHardShadowBuffer;
//   samplerCUBE s_environment;
//   sampler2D s_lf_colour;
//   sampler2D s_lf_height;
//   sampler2D s_normal;
//   sampler2D s_overlay;
//   sampler2D s_shroud;
//   samplerCUBE s_sky;
//   sampler2D s_terrain_refraction;
//   float3 sun_colour;
//   float3 sun_direction;
//   float time_in_sec;
//   float4x4 view_projection;
//
//
// Registers:
//
//   Name                     Reg   Size
//   ------------------------ ----- ----
//   g_amHardSplit            c0      16
//   view_projection          c16      4
//   ambient_cube_lr          c20      2
//   ambient_cube_tb          c22      2
//   ambient_cube_fb          c24      2
//   camera_position          c26      1
//   time_in_sec              c27      1
//   g_screen_size            c28      1
//   g_vpos_texel_offset      c29      1
//   g_iSplitCount            c30      1
//   g_vSplitDepth            c31      1
//   g_fFadeRange             c32      1
//   g_sample_bias            c33      1
//   g_shadow_light_direction c34      1
//   sun_direction            c35      1
//   sun_colour               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
//   g_shroud_enabled         c47      1
//   g_campaign_world_bounds  c48      1
//   g_uv_offset              c49      1
//   g_wp_normal_scales       c50      1
//   g_wp_world_size          c51      1
//   s_sky                    s0       1
//   s_environment            s1       1
//   sHardShadowBuffer        s2       1
//   s_shroud                 s3       1
//   s_normal                 s4       1
//   s_terrain_refraction     s5       1
//   s_overlay                s6       1
//   s_lf_colour              s7       1
//   s_lf_height              s8       1
//

    ps_3_0
    def c52, -0, -1, -2, -3
    def c53, 250, 125, 7, 2.5
    def c54, 2, -1, 0, 0.100000001
    def c55, 6, 0.400000006, 2.79999995, 9.99999975e-005
    def c56, 1, 273, 0.00400000019, 360
    def c57, 23.2532482, 0.140012279, 1.27323949, 1
    def c58, 1, 4, -0.0187292993, 0.0742610022
    def c59, 60, 0.899999976, 0.100000001, 0.434007764
    def c60, -0.212114394, 1.57072878, -2, 3.14159274
    def c61, 0.99984771, 1.00015235, -0.0174532924, 0.0174532924
    def c62, 1.44269502, -0.449999988, -0.300000012, 0.25
    def c63, -4.347826, -50, 0.00999999978, -1
    def c64, 100, -0.100000001, -0.5, 0.200000003
    def c65, 8, -4, 1000, 1.5
    def c66, 0.00833333377, 0.00100000005, 2.20000005, -2.4000001
    def c67, 0.0090909088, 0.5, -0.5, 0
    def c68, 1, 0, -0, 2
    def c69, -2, 3, 0.5, 3.20000005
    def c70, 0.000349999988, 0.00499999989, 0.00800000038, 0.00159999996
    def c71, 2, 1, -1, -0
    def c72, -2, 2, 1, -1
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord3 v0.xyz
    dcl_texcoord4 v1.xyw
    dcl vPos.xy
    dcl_cube s0
    dcl_cube s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_2d s8
    mad r0, v0.xyzx, c68.xxxy, c68.zzzx
    dp4 r0.x, r0, c19
    mov r1.xyz, c34
    mad r1.xyz, r1, -c33.x, v0
    add r2, r0.x, -c31
    cmp r2, r2, c68.x, c68.y
    dp4 r0.y, r2, r2
    add r0.z, r0.y, -c30.x
    add r2, r0.y, c52
    cmp r3, -r2_abs, c68.x, c68.y
    mov r4.xyw, c68
    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 r1.w, c68.x
	
mov r20, r1

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

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, c200
dp4 r20.y, r21, c201
dp4 r20.z, r21, c202
dp4 r20.w, r21, c203

mov r1, r20

    dp4 r5.x, r1, r5
    dp4 r5.y, r1, r6
    dp4 r5.z, r1, r7
    dp4 r5.w, r1, r2
    texldp r2, r5, s2
    cmp r0.w, r0.z, c68.x, r2.x
    dp4 r2.x, c31, r3
    add r2.x, r2.x, -c32.x
    add r2.x, r0.x, -r2.x
    rcp r2.y, c32.x
    mul_sat r2.x, r2.y, r2.x
    add r0.z, r0.z, c68.x
    add r2.yzw, r0.y, -c68.xzxw
    cmp r3, -r2_abs.y, c4, r4.y
    cmp r5, -r2_abs.y, c5, r4.y
    cmp r6, -r2_abs.y, c6, r4.y
    cmp r7, -r2_abs.y, c7, r4.y
    cmp r3, -r2_abs.z, c8, r3
    cmp r5, -r2_abs.z, c9, r5
    cmp r6, -r2_abs.z, c10, r6
    cmp r7, -r2_abs.z, c11, r7
    cmp r3, -r2_abs.w, c12, r3
    cmp r5, -r2_abs.w, c13, r5
    cmp r6, -r2_abs.w, c14, r6
    cmp r7, -r2_abs.w, c15, r7
    dp4 r3.x, r1, r3
    dp4 r3.y, r1, r5
    dp4 r3.z, r1, r6
    dp4 r3.w, r1, r7
    texldp r1, r3, s2
    cmp r0.y, r0.z, c68.x, r1.x
    lrp r1.x, r2.x, r0.y, r0.w
    cmp r0.y, -r2.x, r0.w, r1.x
    add r0.z, -r4.x, c30.x
    frc r0.w, c30.x
    add r0.z, r0.z, -r0.w
    add r1, r0.z, c52
    cmp r1, -r1_abs, c68.x, c68.y
    dp4 r0.z, c31, r1
    add r0.w, r0.z, -c32.y
    add r0.xz, -r0.w, r0
    rcp r0.z, r0.z
    mul_sat r0.x, r0.z, r0.x
    mad r0.z, r0.x, c69.x, c69.y
    mul r0.x, r0.x, r0.x
    mad_sat r0.x, r0.z, r0.x, r0.y
    add r1, c29.x, vPos.xyyy
    mul r1, r1, c28.zwww
    rcp r0.y, c50.x
    mov r2.x, c27.x
    mul r2, r2.x, c70
    mad r0.yz, v0.xxzw, r0.y, r2.xxyw
    texld r3, r0.yzzw, s4
    rcp r0.y, c50.y
    mad r0.yz, v0.xxzw, r0.y, -r2.xzww
    texld r2, r0.yzzw, s4
    mad r0.yzw, r3.xxzy, c71.xxyx, c71.xzwz
    mad r0.yzw, r0, c69.z, c69.z
    mad r2.xyz, r2.xzyw, c71.xyxw, c71.zwzw
    mad r2.xyz, r2, c69.z, c69.z
    mad r0.yzw, r0, c54.x, c54.xyzy
    mad r2.xyz, r2, c72.xyxw, c72.zwzw
    dp3 r2.w, r0.yzww, r2
    mul r2.xyz, r0.z, r2
    mad r0.yzw, r0, r2.w, -r2.xxyz
    dp3 r2.x, r0.yzww, r0.yzww
    rsq r2.x, r2.x
    mul r2.yzw, r0, r2.x
    add r3.xyz, -c26, v0
    dp3 r4.z, r3, r3
    rsq r4.z, r4.z
    mul r5.xyz, r3, r4.z
    dp3 r5.w, r5, r2.yzww
    add r5.w, r5.w, r5.w
    mad r6.xyz, r2.yzww, -r5.w, r5
    abs r6.w, r6.y
    texld r6, r6.xwzw, s1
    mul r2.yzw, r0.x, r6.xxyz
    mul r6.xyz, r2.yzww, c69.z
    rcp r5.w, c51.x
    rcp r6.w, c51.y
    mul r7.x, r5.w, v0.x
    mad r7.z, v0.z, -r6.w, c68.x
    texld r8, r7.xzzw, s7
    pow r5.w, r8.w, c69.w
    texld r7, r7.xzzw, s8
    rsq r6.w, r7.x
    rcp_sat r6.w, r6.w
    mul r7.xy, r5.w, c53
    mad r0.yzw, r0, r2.x, r7.y
    pow r2.x, r0.z, c54.w
    add r2.x, -r2.x, c68.x
    mul r7.y, r2.x, c53.z
    cmp r2.x, r2.x, r7.y, c68.y
    pow r7.y, r2.x, c53.w
    texldl r9, r1.xwww, s5
    mul r9, r0.ywww, r9.w
    mad r1, r9, c66.x, r1
    texldl r1, r1, s5
    if_lt c66.y, r1.w
    endif
    log r9.x, r8.x
    log r9.y, r8.y
    log r9.z, r8.z
    mul r8.xyz, r9, c66.z
    exp r9.x, r8.x
    exp r9.y, r8.y
    exp r9.z, r8.z
    mul r1.w, r7.x, r7.y
    mul r1.w, r1.w, c66.w
    mad r1.w, r7.y, c55.x, r1.w
    add r7.xyz, r1.w, r9
    mad r7.xyz, r5.w, c53.x, r7
    nrm r8.xyz, r0.yzww
    mov r0.y, c55.y
    mul r0.yzw, r0.y, c36.xxyz
    dp3 r1.w, r5, r8
    add r1.w, r1.w, r1.w
    mad r9.xyz, r8, -r1.w, r5
    mov r10, c56
    cmp r10.xyz, -c37.x, r10.xxyw, r10.zwxw
    mov r9.w, c55.z
    texldl r11, r9, s1
    dp3 r1.w, r9, r5
    add r2.x, -r1.w, c55.w
    pow r5.w, r1.w, c59.x
    mad r1.w, r5.w, c59.y, c59.z
    cmp r1.w, r2.x, c54.w, r1.w
    lrp r2.x, r1.w, c59.w, c59.z
    max r1.w, c54.w, r2.x
    mul r11.xyz, r1.w, r11
    mul r11.xyz, r11, c53.w
    mul r12.xyz, r8, c58.xyxw
    nrm r13.xyz, r12
    mov r12.xyz, c20
    cmp r12.xyz, r13.x, r12, c21
    mov r14.xyz, c22
    cmp r14.xyz, r13.y, r14, c23
    mov r15.xyz, c24
    cmp r15.xyz, r13.z, r15, c25
    mul r13.xyz, r13, r13
    mul r14.xyz, r14, r13.y
    mad r12.xyz, r13.x, r12, r14
    mad r12.xyz, r13.z, r15, r12
    mul r12.xyz, r10.y, r12
    mul r12.xyz, r7, r12
    mul r12.xyz, r10.x, r12
    mad r11.xyz, r12, c59.y, r11
    dp3 r1.w, r8, -c35
    max r2.x, r1.w, c68.y
    dp3 r5.w, -c35, r9
    max r7.w, -c68.x, r5.w
    min r5.w, r7.w, c68.x
    add r7.w, -r5_abs.w, c68.x
    rsq r7.w, r7.w
    rcp r7.w, r7.w
    mad r8.x, r5_abs.w, c58.z, c58.w
    mad r8.x, r8.x, r5_abs.w, c60.x
    mad r8.x, r8.x, r5_abs.w, c60.y
    mul r7.w, r7.w, r8.x
    mad r8.x, r7.w, c60.z, c60.w
    cmp r5.w, r5.w, c68.y, c68.x
    mad r5.w, r8.x, r5.w, r7.w
    add r1.w, r1.w, c61.x
    mul_sat r1.w, r1.w, c61.y
    add r8.xy, r5.w, c61.zwzw
    mul r8.yz, r8.xxyw, c57.x
    mul r8.zw, r8.xyyz, r8.xyyz
    mad r9, r8.zzww, c57.y, c57.zwzw
    rcp r5.w, r9.y
    mul r5.w, r5.w, r9.x
    mul r5.w, r5.w, -r8.z
    cmp r7.w, -r8.y, c68.y, c68.x
    cmp r8.x, r8.x, -c68.y, -c68.x
    add r7.w, r7.w, r8.x
    mul r5.w, r5.w, c62.x
    exp r5.w, r5.w
    add r5.w, -r5.w, c68.x
    rsq r5.w, r5.w
    rcp r5.w, r5.w
    mad r5.w, r7.w, r5.w, c68.x
    mul r5.w, r5.w, c69.z
    rcp r7.w, r9.w
    mul r7.w, r7.w, r9.z
    mul r7.w, r7.w, -r8.w
    mul r7.w, r7.w, c62.x
    exp r7.w, r7.w
    add r7.w, -r7.w, c68.x
    rsq r7.w, r7.w
    rcp r7.w, r7.w
    add r7.w, r7.w, c68.x
    mad r5.w, r7.w, c69.z, -r5.w
    mul r1.w, r1.w, r5.w
    dp3 r5.x, -c35, r5
    add r5.y, -r5.x, c55.w
    pow r7.w, r5.x, c59.x
    mad r5.x, r7.w, c59.y, c59.z
    cmp r5.x, r5.y, c54.w, r5.x
    mul r5.y, r1.w, r5.x
    mul_sat r5.y, r10.z, r5.y
    mad r5.z, r1.w, r5.x, -c54.w
    mad r1.w, r1.w, -r5.x, c68.x
    cmp r1.w, r5.z, r1.w, c59.y
    mul r5.xzw, r2.x, r7.xyyz
    mul r5.xzw, r0.yyzw, r5
    mul r5.xzw, r1.w, r5
    mul r5.xzw, r10.x, r5
    mad r0.yzw, r5.y, r0, r5.xxzw
    add r0.yzw, r0, r11.xxyz
    add r5.xy, r6.w, c62.yzzw
    mul_sat r5.xy, r5, c63
    mad r5.zw, r5.xyxy, c69.x, c69.y
    mul r5.xy, r5, r5
    mul r5.xy, r5, r5.zwzw
    mul r0.yzw, r0, r5.x
    add_sat r0.x, r0.x, c62.w
    mul r5.xzw, r0.x, r0.yyzw
    if_lt -c47.x, r4.y
      add r7.xy, -c48, v0.xzzw
      add r7.zw, -c48.xyxy, c48
      rcp r8.x, r7.z
      rcp r8.y, r7.w
      mul r7.xy, r7, r8
      mad r7.zw, c49.xyxy, -r4.w, r4.x
      mad r7, r7.xyyy, r7.zwww, c49.xyyy
      texldl r8, r7, s3
      add r7, r7.xxww, c63.zwzw
      mul_sat r7, r7, c64.x
      mad r9, r7, c69.x, c69.y
      mul r7, r7, r7
      mul r7, r7, r9
      mul r1.w, r8.w, r7.x
      mul r1.w, r1.w, r7.z
      mad r1.w, r7.y, -r1.w, r1.w
      mad r1.w, r7.w, -r1.w, r1.w
    else
      mov r1.w, c68.x
    endif
    add r7.xy, r1.w, c64.yzzw
    mul_sat r1.w, r7.x, c53.w
    mad r2.x, r1.w, c69.x, c69.y
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r2.x
    add_sat r2.x, r7.y, r7.y
    mad r4.w, r2.x, c69.x, c69.y
    mul r2.x, r2.x, r2.x
    mul_sat r2.x, r2.x, r4.w
    mul r1.w, r1.w, c64.w
    mul r5.xzw, r1.w, r5
    mad r0.xyz, r0.yzww, r0.x, -r5.xzww
    mad r0.xyz, r2.x, r0, r5.xzww
    mul r5.xzw, r1.w, r6.xyyz
    mad r2.yzw, r2, c69.z, -r5.xxzw
    mad r2.xyz, r2.x, r2.yzww, r5.xzww
    rcp r0.w, r4.z
    add r1.w, r4.x, -c39.x
    mad r1.w, r1.w, c65.x, c65.y
    add r2.w, r4.x, -c40.x
    mul r2.w, r2.w, c65.z
    rcp r2.w, r2.w
    mad r1.w, r0.w, r2.w, r1.w
    mul r1.w, r1.w, c62.x
    exp r1.w, r1.w
    rcp r1.w, r1.w
    mad_sat r1.w, c41.x, -r1.w, c41.x
    add r2.w, c43.x, -v0.y
    mov r4.x, c43.x
    add r4.x, r4.x, -c42.x
    add r2.w, r2.w, -c42.x
    rcp r4.x, r4.x
    mul_sat r2.w, r2.w, r4.x
    mad r4.x, r2.w, c69.x, c69.y
    mul r2.w, r2.w, r2.w
    mul r2.w, r2.w, r4.x
    mov r6.y, c66.y
    add r4.x, r6.y, -c46.x
    rcp r4.z, c46.x
    cmp r4.x, r4.x, c65.z, r4.z
    mul_sat r0.w, r0.w, r4.x
    mad r4.x, r0.w, c69.x, c69.y
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, r4.x
    mov r6.xyz, c36
    mul r4.xzw, r6.xyyz, c38.xyyz
    mul r4.xzw, r4, c65.w
    abs r5.x, c35.y
    mul r4.xzw, r4, r5.x
    mul r5.xzw, r10.x, r4
    max r3.w, r3.y, c68.y
    texld r6, r3.xwzw, s0
    dp2add_sat r3.y, r1.w, c45.x, r4.y
    mad r4.xyz, r4.xzww, -r10.x, r6
    mad r4.xyz, r3.y, r4, r5.xzww
    mad r1.w, c44.x, r2.w, r1.w
    mul_sat r0.w, r0.w, r1.w
    lrp r5.xzw, r0.w, r4.xyyz, r0.xyyz
    dp2add r0.x, r3.xzzw, r3.xzzw, c68.y
    rsq r0.x, r0.x
    rcp r0.x, r0.x
    mul_sat r0.x, r0.x, c67.x
    add r0.x, -r0.x, c68.x
    mul r0.xyz, r0.x, r2
    mad r0.xyz, r0, -c62.z, r5.xzww
    lrp r2.xyz, r5.y, r0, r1
    rcp r0.x, v1.w
    mul r0, r0.x, v1.xyyy
    mad r0, r0, c67.yzzz, c67.y
    texldl r0, r0, s6
    mad oC0.xyz, r2, r0.w, r0
    mov oC0.w, c68.x

// approximately 363 instruction slots used (18 texture, 345 arithmetic)
 