//  NO FIX NECESSARY
// 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_reflection;
//   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_reflection     s5       1
//   s_terrain_refraction     s6       1
//   s_overlay                s7       1
//   s_lf_colour              s8       1
//   s_lf_height              s9       1
//

    ps_3_0
    def c52, -0, -1, -2, -3
    def c53, 250, 125, 0.100000001, 7
    def c54, -2.4000001, 6, 0.400000006, 2.79999995
    def c55, 1, 273, 0.00400000019, 360
    def c56, 0.140012279, 1.27323949, 1, 0.25
    def c57, 9.99999975e-005, 60, 0.899999976, 0.100000001
    def c58, 2.5, 0.00833333377, 0.00100000005, 2.20000005
    def c59, 0.434007764, 0.100000001, 1, 4
    def c60, -0.0187292993, 0.0742610022, -0.212114394, 1.57072878
    def c61, -2, 3.14159274, 0.99984771, 1.00015235
    def c62, -0.0174532924, 0.0174532924, 23.2532482, 1.44269502
    def c63, -0.449999988, -0.300000012, -4.347826, -50
    def c64, 1, 0, -0, 2
    def c65, 0.00999999978, -1, 100, 0.200000003
    def c66, -0.100000001, -0.5, 8, -4
    def c67, 1000, 1.5, 0.0090909088, 0
    def c68, -2, 3, 0.5, 0.0500000007
    def c69, 0.000349999988, 0.00499999989, 0.00800000038, 0.00159999996
    def c70, 2, -1, 0, 3.20000005
    def c71, 2, 1, -1, -0
    def c72, -2, 2, 1, -1
    def c73, 0.5, -0.5, 0, 0
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
    dcl_2d s9
    mad r0, v0.xyzx, c64.xxxy, c64.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, c64.x, c64.y
    dp4 r0.y, r2, r2
    add r0.z, r0.y, -c30.x
    add r2, r0.y, c52
    cmp r3, -r2_abs, c64.x, c64.y
    mov r4.xyw, c64
    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, c64.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, c64.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, c64.x
    add r2.yzw, r0.y, -c64.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, c64.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, c64.x, c64.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, c68.x, c68.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, c69
    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, c68.z, c68.z
    mad r2.xyz, r2.xzyw, c71.xyxw, c71.zwzw
    mad r2.xyz, r2, c68.z, c68.z
    mad r0.yzw, r0, c70.x, c70.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.yz, r0.xyww, r2.x
    mad r3.xy, r2.yzzw, c68.w, r1.xwzw
    add r3.z, -r3.y, c64.x
    texldl r3, r3.xzzz, s5
    mul r2.yzw, r0.x, r3.xxyz
    rcp r3.w, c51.x
    rcp r4.z, c51.y
    mul r5.x, r3.w, v0.x
    mad r5.z, v0.z, -r4.z, c64.x
    texld r6, r5.xzzw, s8
    pow r3.w, r6.w, c70.w
    texld r5, r5.xzzw, s9
    rsq r4.z, r5.x
    rcp_sat r4.z, r4.z
    mul r5.xy, r3.w, c53
    mad r0.yzw, r0, r2.x, r5.y
    pow r2.x, r0.z, c53.z
    add r2.x, -r2.x, c64.x
    mul r5.y, r2.x, c53.w
    cmp r2.x, r2.x, r5.y, c64.y
    pow r5.y, r2.x, c58.x
    texldl r7, r1.xwww, s6
    mul r7, r0.ywww, r7.w
    mad r1, r7, c58.y, r1
    texldl r1, r1, s6
    if_lt c58.z, r1.w
    endif
    log r7.x, r6.x
    log r7.y, r6.y
    log r7.z, r6.z
    mul r6.xyz, r7, c58.w
    exp r7.x, r6.x
    exp r7.y, r6.y
    exp r7.z, r6.z
    mul r1.w, r5.x, r5.y
    mul r1.w, r1.w, c54.x
    mad r1.w, r5.y, c54.y, r1.w
    add r5.xyz, r1.w, r7
    mad r5.xyz, r3.w, c53.x, r5
    nrm r6.xyz, r0.yzww
    mov r7.xyz, c36
    mul r0.yzw, r7.xxyz, c54.z
    add r8.xyz, -c26, v0
    dp3 r1.w, r8, r8
    rsq r1.w, r1.w
    mul r9.xyz, r1.w, r8
    dp3 r2.x, r9, r6
    add r2.x, r2.x, r2.x
    mad r10.xyz, r6, -r2.x, r9
    mov r11, c55
    cmp r11.xyz, -c37.x, r11.xxyw, r11.zwxw
    mov r10.w, c54.w
    texldl r12, r10, s1
    dp3 r2.x, r10, r9
    add r3.w, -r2.x, c57.x
    pow r5.w, r2.x, c57.y
    mad r2.x, r5.w, c57.z, c57.w
    cmp r2.x, r3.w, c53.z, r2.x
    lrp r3.w, r2.x, c59.x, c59.y
    max r2.x, c53.z, r3.w
    mul r12.xyz, r2.x, r12
    mul r12.xyz, r12, c58.x
    mul r13.xyz, r6, c59.zwzw
    nrm r14.xyz, r13
    mov r13.xyz, c20
    cmp r13.xyz, r14.x, r13, c21
    mov r15.xyz, c22
    cmp r15.xyz, r14.y, r15, c23
    mov r16.xyz, c24
    cmp r16.xyz, r14.z, r16, c25
    mul r14.xyz, r14, r14
    mul r15.xyz, r15, r14.y
    mad r13.xyz, r14.x, r13, r15
    mad r13.xyz, r14.z, r16, r13
    mul r13.xyz, r11.y, r13
    mul r13.xyz, r5, r13
    mul r13.xyz, r11.x, r13
    mad r12.xyz, r13, c57.z, r12
    dp3 r2.x, r6, -c35
    max r3.w, r2.x, c64.y
    dp3 r5.w, -c35, r10
    max r6.x, -c64.x, r5.w
    min r5.w, r6.x, c64.x
    add r6.x, -r5_abs.w, c64.x
    rsq r6.x, r6.x
    rcp r6.x, r6.x
    mad r6.y, r5_abs.w, c60.x, c60.y
    mad r6.y, r6.y, r5_abs.w, c60.z
    mad r6.y, r6.y, r5_abs.w, c60.w
    mul r6.x, r6.x, r6.y
    mad r6.y, r6.x, c61.x, c61.y
    cmp r5.w, r5.w, c64.y, c64.x
    mad r5.w, r6.y, r5.w, r6.x
    add r2.x, r2.x, c61.z
    mul_sat r2.x, r2.x, c61.w
    add r6.xy, r5.w, c62
    mul r6.yz, r6.xxyw, c62.z
    mul r6.zw, r6.xyyz, r6.xyyz
    mad r10, r6.zzww, c56.x, c56.yzyz
    rcp r5.w, r10.y
    mul r5.w, r5.w, r10.x
    mul r5.w, r5.w, -r6.z
    cmp r6.y, -r6.y, c64.y, c64.x
    cmp r6.x, r6.x, -c64.y, -c64.x
    add r6.x, r6.x, r6.y
    mul r5.w, r5.w, c62.w
    exp r5.w, r5.w
    add r5.w, -r5.w, c64.x
    rsq r5.w, r5.w
    rcp r5.w, r5.w
    mad r5.w, r6.x, r5.w, c64.x
    mul r5.w, r5.w, c68.z
    rcp r6.x, r10.w
    mul r6.x, r6.x, r10.z
    mul r6.x, r6.x, -r6.w
    mul r6.x, r6.x, c62.w
    exp r6.x, r6.x
    add r6.x, -r6.x, c64.x
    rsq r6.x, r6.x
    rcp r6.x, r6.x
    add r6.x, r6.x, c64.x
    mad r5.w, r6.x, c68.z, -r5.w
    mul r2.x, r2.x, r5.w
    dp3 r5.w, -c35, r9
    add r6.x, -r5.w, c57.x
    pow r6.y, r5.w, c57.y
    mad r5.w, r6.y, c57.z, c57.w
    cmp r5.w, r6.x, c53.z, r5.w
    mul r6.x, r2.x, r5.w
    mul_sat r6.x, r11.z, r6.x
    mad r6.y, r2.x, r5.w, -c53.z
    mad r2.x, r2.x, -r5.w, c64.x
    cmp r2.x, r6.y, r2.x, c57.z
    mul r5.xyz, r3.w, r5
    mul r5.xyz, r0.yzww, r5
    mul r5.xyz, r2.x, r5
    mul r5.xyz, r11.x, r5
    mad r0.yzw, r6.x, r0, r5.xxyz
    add r0.yzw, r0, r12.xxyz
    add r5.xy, r4.z, c63
    mul_sat r5.xy, r5, c63.zwzw
    mad r5.zw, r5.xyxy, c68.x, c68.y
    mul r5.xy, r5, r5
    mul r5.xy, r5, r5.zwzw
    mul r0.yzw, r0, r5.x
    add_sat r2.x, r0.x, c56.w
    mul r5.xzw, r0.yyzw, r2.x
    if_lt -c47.x, r4.y
      add r6.xy, -c48, v0.xzzw
      add r6.zw, -c48.xyxy, c48
      rcp r9.x, r6.z
      rcp r9.y, r6.w
      mul r6.xy, r6, r9
      mad r4.zw, c49.xyxy, -r4.w, r4.x
      mad r6, r6.xyyy, r4.zwww, c49.xyyy
      texldl r9, r6, s3
      add r6, r6.xxww, c65.xyxy
      mul_sat r6, r6, c65.z
      mad r10, r6, c68.x, c68.y
      mul r6, r6, r6
      mul r6, r6, r10
      mul r3.w, r9.w, r6.x
      mul r3.w, r3.w, r6.z
      mad r3.w, r6.y, -r3.w, r3.w
      mad r3.w, r6.w, -r3.w, r3.w
    else
      mov r3.w, c64.x
    endif
    add r4.zw, r3.w, c66.xyxy
    mul_sat r3.w, r4.z, c58.x
    mad r4.z, r3.w, c68.x, c68.y
    mul r3.w, r3.w, r3.w
    mul r3.w, r3.w, r4.z
    add_sat r4.z, r4.w, r4.w
    mad r4.w, r4.z, c68.x, c68.y
    mul r4.z, r4.z, r4.z
    mul_sat r4.z, r4.z, r4.w
    mul r3.w, r3.w, c65.w
    mul r5.xzw, r3.w, r5
    mad r0.yzw, r0, r2.x, -r5.xxzw
    mad r0.yzw, r4.z, r0, r5.xxzw
    mul r2.xyz, r2.yzww, r3.w
    mad r3.xyz, r3, r0.x, -r2
    mad r2.xyz, r4.z, r3, r2
    rcp r0.x, r1.w
    add r1.w, r4.x, -c39.x
    mad r1.w, r1.w, c66.z, c66.w
    add r2.w, r4.x, -c40.x
    mul r2.w, r2.w, c67.x
    rcp r2.w, r2.w
    mad r1.w, r0.x, r2.w, r1.w
    mul r1.w, r1.w, c62.w
    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 r3.x, c43.x
    add r3.x, r3.x, -c42.x
    add r2.w, r2.w, -c42.x
    rcp r3.x, r3.x
    mul_sat r2.w, r2.w, r3.x
    mad r3.x, r2.w, c68.x, c68.y
    mul r2.w, r2.w, r2.w
    mul r2.w, r2.w, r3.x
    mov r3.z, c58.z
    add r3.x, r3.z, -c46.x
    rcp r3.y, c46.x
    cmp r3.x, r3.x, c67.x, r3.y
    mul_sat r0.x, r0.x, r3.x
    mad r3.x, r0.x, c68.x, c68.y
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, r3.x
    mul r3.xyz, r7, c38
    mul r3.xyz, r3, c67.y
    abs r3.w, c35.y
    mul r3.xyz, r3.w, r3
    mul r4.xzw, r11.x, r3.xyyz
    max r8.w, r8.y, c64.y
    texld r6, r8.xwzw, s0
    dp2add_sat r3.w, r1.w, c45.x, r4.y
    mad r3.xyz, r3, -r11.x, r6
    mad r3.xyz, r3.w, r3, r4.xzww
    mad r1.w, c44.x, r2.w, r1.w
    mul_sat r0.x, r0.x, r1.w
    lrp r4.xyz, r0.x, r3, r0.yzww
    dp2add r0.x, r8.xzzw, r8.xzzw, c64.y
    rsq r0.x, r0.x
    rcp r0.x, r0.x
    mul_sat r0.x, r0.x, c67.z
    add r0.x, -r0.x, c64.x
    mul r0.xyz, r0.x, r2
    mad r0.xyz, r0, -c63.y, r4
    lrp r2.xyz, r5.y, r0, r1
    rcp r0.x, v1.w
    mul r0, r0.x, v1.xyyy
    mad r0, r0, c73.xyyy, c73.x
    texldl r0, r0, s7
    mad oC0.xyz, r2, r0.w, r0
    mov oC0.w, c64.x

// approximately 360 instruction slots used (19 texture, 341 arithmetic)
 