//Rome 2 
// 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, 0.100000001, 0.200000003, 0.300000012, 0.5
    def c52, -1.10000002, -1.20000005, 0.899999976, 8
    def c53, 9.99999975e-005, 0.0900000036, 0.00999999978, 1.5
    def c54, 1, 0.00400000019, 0, -0
    def c55, 2, -1, 4, 0.289999992
    def c56, 0.00833333377, 0.00100000005, -0.0187292993, 0.0742610022
    def c57, -0.212114394, 1.57072878, -2, 3.14159274
    def c58, 0.99984771, 1.00015235, -0.0174532924, 0.0174532924
    def c59, 0.140012279, 1.27323949, 1, 0.150000006
    def c60, 0.99000001, 0.00999999978, 0.850000024, 1000
    def c61, -0, -1, -2, -3
    def c62, 8, -4, 0, 0
    def c63, 27.3350544, 9.05130291, 1.44269502, 60
    def c64, 0, -1, -2, 3
    def c65, -0.00999999978, -0.0799999982, 0.00999999978, 0.159999996
    def c66, 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, c61
    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, c61
    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, c51
    mad r2, r2, c52.xyzz, r4.xyyz
    mul r2.xy, r2, c52.w
    texld r4, r2, s3
    mad r4.xyz, r4.xwzw, c55.x, c55.y
    mul r0.xy, r0, c51.w
    texld r5, r0, s3
    mad r4.xyz, r5.xwzw, -c61.z, r4
    mul r0.xy, r2.zwzw, c55.z
    texld r2, r0, s3
    mad r2.xyz, r2.xwzw, -c61.z, r4
    mul r0.xy, r0.zwzw, c51.x
    texld r0, r0, s3
    mad r0.xyz, r0.xwzw, -c61.z, r2
    add r0.xyz, r0, c61.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, c55.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, c53.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, c53.y, c53.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, c53.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, c53.y, c53.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, c53.w
    mov r7.xy, c54
    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 r7, r3, s2
    mad r8.xy, r3, c66, c66.zwzw
    mad r8.zw, r7.x, c54.xyxz, c54.xywx
    dp4 r1.z, r8, c18
    dp4 r3.z, r8, 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, r8, c21
    dp4 r3.w, r8, 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, c55.z
    mul r7, r2.w, r0.xzzz
    mul r7, r1.z, r7
    mad r7, r7, c56.x, r3.xyyy
    texldl r7, r7, s5
    if_lt c56.y, r7.w
    endif
    log r8.x, c36.x
    log r8.y, c36.y
    log r8.z, c36.z
    mul r3.xyw, r3.w, r8.xyzz
    exp r8.x, r3.x
    exp r8.y, r3.y
    exp r8.z, r3.w
    pow r2.w, c37.x, r3.z
    mad r3.xyz, r7, r8, -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.z, c56.w
    mad r2.y, r2.y, r0_abs.w, c57.x
    mad r2.y, r2.y, r0_abs.w, c57.y
    mul r2.x, r2.x, r2.y
    mad r2.y, r2.x, c57.z, c57.w
    cmp r0.w, r0.w, c49.y, c49.w
    mad r0.w, r2.y, r0.w, r2.x
    dp3 r0.x, -c33, r0
    add r0.x, r0.x, c58.x
    mul_sat r0.x, r0.x, c58.y
    add r2, r0.w, c58.zwzw
    mul r5, r2, c63.xxyy
    mul r7, r5, r5
    mad r8, r7.xxyy, c59.x, c59.yzyz
    rcp r0.y, r8.y
    mul r0.y, r0.y, r8.x
    mul r0.y, r0.y, -r7.x
    cmp r0.zw, -r5.xyxz, c49.y, c49.w
    cmp r2.x, r2.z, -c49.y, -c49.w
    add r0.zw, r0, r2.x
    mul r0.y, r0.y, c63.z
    exp r0.y, r0.y
    add r0.y, -r0.y, c50.w
    rsq r0.y, r0.y
    rcp r0.y, r0.y
    mad r0.y, r0.z, r0.y, c50.w
    mul r0.y, r0.y, c51.w
    rcp r0.z, r8.w
    mul r0.z, r0.z, r8.z
    mul r0.z, r0.z, -r7.y
    mul r0.z, r0.z, c63.z
    exp r0.z, r0.z
    add r0.z, -r0.z, c50.w
    rsq r0.z, r0.z
    rcp r0.z, r0.z
    add r0.z, r0.z, c50.w
    mad r0.y, r0.z, c51.w, -r0.y
    mul r0.y, r0.y, r0.x
    dp3 r0.z, -c33, -r4
    add r2.x, -r0.z, c53.x
    pow r2.y, r0.z, c63.w
    mad r0.z, r2.y, c60.x, c60.y
    cmp r0.z, r2.x, c65.z, r0.z
    mul r0.y, r0.z, r0.y
    mul r2.xyz, r0.y, c34
    mad r4, r7.zzww, c59.x, c59.yzyz
    rcp r0.y, r4.y
    mul r0.y, r0.y, r4.x
    mul r0.y, r0.y, -r7.z
    mul r0.y, r0.y, c63.z
    exp r0.y, r0.y
    add r0.y, -r0.y, c50.w
    rsq r0.y, r0.y
    rcp r0.y, r0.y
    mad r0.y, r0.w, r0.y, c50.w
    mul r0.y, r0.y, c51.w
    rcp r0.w, r4.w
    mul r0.w, r0.w, r4.z
    mul r0.w, r0.w, -r7.w
    mul r0.w, r0.w, c63.z
    exp r0.w, r0.w
    add r0.w, -r0.w, c50.w
    rsq r0.w, r0.w
    rcp r0.w, r0.w
    add r0.w, r0.w, c50.w
    mad r0.y, r0.w, c51.w, -r0.y
    mul r0.x, r0.y, r0.x
    mul r0.x, r0.z, r0.x
    mul r0.xyz, r0.x, c34
    mul r0.w, r1.z, r1.x
    mul r0.xyz, r0, c59.w
    mad r0.xyz, r2, c60.z, 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, c62.x, c62.y
    add r1.z, r1.w, -c41.x
    mul r1.z, r1.z, c60.w
    rcp r1.z, r1.z
    mad r1.x, r0.w, r1.z, r1.x
    mul r1.x, r1.x, c63.z
    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
    mov r3.y, c56.y
    add r1.w, r3.y, -c47.x
    rcp r3.x, c47.x
    cmp r1.w, r1.w, c60.w, 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, c53.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 318 instruction slots used (15 texture, 303 arithmetic)
 