//campaign map fog
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 camera_position;
//   float4 g_campaign_world_bounds;
//   float g_enable_outer_shroud_fadeout;
//   float g_hdr_on;
//   float4 g_screen_size;
//   float2 g_uv_offset;
//   float g_vpos_texel_offset;
//   float4x4 inv_view_projection;
//   sampler2D s_readable_depth_sampler;
//   sampler2D s_shroud;
//   sampler2D s_shroud_cloud;
//   float3 sun_colour;
//   float3 sun_direction;
//   float time_in_sec;
//
//
// Registers:
//
//   Name                          Reg   Size
//   ----------------------------- ----- ----
//   inv_view_projection           c0       4
//   camera_position               c4       1
//   time_in_sec                   c5       1
//   g_screen_size                 c6       1
//   g_vpos_texel_offset           c7       1
//   sun_direction                 c8       1
//   sun_colour                    c9       1
//   g_hdr_on                      c10      1
//   g_campaign_world_bounds       c11      1
//   g_uv_offset                   c12      1
//   g_enable_outer_shroud_fadeout c13      1
//   s_shroud                      s0       1
//   s_readable_depth_sampler      s1       1
//   s_shroud_cloud                s2       1
//

    ps_3_0
    def c14, 0.212599993, 0.715200007, 0.0722000003, 0.680000007
    def c15, -25, 25, -2, 3
    def c16, -0.0399999991, -0.959999979, 0.959999979, 0.00400000019
    def c17, 2, -2, -1, 1
    def c18, 0.75, 0.0900000036, 0.0399999991, 0.0260000005
    def c19, -0.015625, 0.00187499996, -0.0125000002, 0.00150000001
    def c20, 0.0133333337, 0.00866666622, -0.0115, 0.00499999989
    def c21, -0.0132250004, 0.00575000001, 0.0105263162, 3.28125
    def c22, 0.00999999978, -1, 2.5, 45
    def c23, 0, 100, 1, 2
    def c24, 1, 0.00400000019, 1.5, 0
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord v0.xyz
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    mov r0.zw, c23.x
    add r1.xy, c7.x, vPos
    mul r0.xy, r1, c6.zwzw
    texldl r1, r0, s1
    mad r0.xy, r0, c17, c17.zwzw
    min r0.z, r1.x, c23.y
    mov r0.w, c23.z
    dp4 r1.x, r0, c3
    rcp r1.x, r1.x
    dp4 r2.x, r0, c0
    dp4 r2.y, r0, c1
    dp4 r2.z, r0, c2
	
mov r20.xyz, r2.xyz
rcp r20.w, r1.x
mul r20, r20, r1.x

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

rcp r23.w, r1.x
mul r20, r20, r23.w
mov r2.xyz, r20.xyz

    mad r0.xyz, r2, r1.x, -v0
    dp3 r0.x, r0, r0
    rsq r0.x, r0.x
    rcp r0.x, r0.x
    min r1.x, r0.x, c23.w
    mul r0.x, r1.x, r1.x
    mul r0.x, r0.x, c16.w
    pow r1.x, r0.x, c18.x
    add r0.xy, -c11, c11.zwzw
    rcp r2.x, r0.x
    rcp r2.y, r0.y
    add r0.xy, -c11, v0.xzzw
    mad r3, r0.xxyy, r2.xxyy, c16.xyxy
    cmp r0.zw, r3.xyxz, c23.x, c23.z
    add r0.z, r0.w, r0.z
    cmp r0.z, -r0.z, c23.x, c23.z
    mad r1.yz, r0.xxyw, -r2.xxyw, c16.z
    mul r0.xy, r2, r0
    cmp r1.yz, r1, c23.x, c23.z
    add r0.z, r0.z, r1.y
    cmp r0.z, -r0.z, c23.x, c23.z
    add r0.z, r1.z, r0.z
    cmp r0.z, -r0.z, -c23.x, -c23.z
    abs r0.w, c13.x
    cmp r0.z, -r0.w, -c23.x, r0.z
    mul_sat r2, r3, c15.xyxy
    mad r4, r2, c15.z, c15.w
    mul r2, r2, r2
    mul r2, r2, r4
    cmp r1.yz, r3.xxzw, r2.xyww, r2.xxzw
    add_sat r0.w, r1.z, r1.y
    cmp r0.z, r0.z, c23.x, r0.w
    lrp r2.x, r0.z, c18.y, r1.x
    mov r1.xzw, c23
    mad r0.zw, c12.xyxy, -r1.w, r1.z
    mad r0, r0.xyyy, r0.zwww, c12.xyyy
    texldl r3, r0, s0
    add r0, r0.xxww, c22.xyxy
    mul_sat r0, r0, c23.y
    mad r4, r0, c15.z, c15.w
    mul r0, r0, r0
    mul r0, r0, r4
    mul r0.x, r3.w, r0.x
    mul r0.x, r0.x, r0.z
    mad r0.x, r0.y, -r0.x, r0.x
    mad r0.x, r0.w, -r0.x, r0.x
    add r0.yz, -c4.xxzw, v0.xxzw
    dp2add r0.y, r0.yzzw, r0.yzzw, c23.x
    rsq r0.y, r0.y
    rcp r0.y, r0.y
    mul_sat r0.y, r0.y, c21.z
    max_sat r1.y, r0.x, r0.y
    mul r0, c18.zzww, v0.xzxz
    mov r3.x, c5.x
    mad r0.xy, r3.x, c19, r0
    mad r0.zw, r3.x, c19, r0
    texld r4, r0.zwzw, s2
    texld r0, r0, s2
    mul r0.y, r4.y, r0.z
    add r0.xzw, r4.yyxw, r0.zyxw
    mul r4, c20.xxyy, v0.xzxz
    mad r1.zw, r3.x, c20, r4.xyxy
    mad r2.yz, r3.x, c21.xxyw, r4.xzww
    texld r3, r2.yzzw, s2
    dp3_sat r2.y, r3.yyww, c14
    texld r3, r1.zwzw, s2
    dp3_sat r1.z, r3.zyww, c14
    mul r0.y, r0.y, r1.z
    add r0.xzw, r0, r1.z
    add r0.xzw, r2.y, r0
    mul r0.y, r0.y, r2.y
    mul_sat r0.y, r0.y, c21.w
    dp3 r0.x, r0.xzww, c14
    mul r0.x, r0.x, -c8.y
    mul r0.xzw, r0.x, c9.xyyz
    lrp r2.y, c14.w, r0.y, r1.y
    mul_sat r1.y, r2.y, c22.z
    mad r1.z, r1.y, c15.z, c15.w
    mul r1.y, r1.y, r1.y
    mad r1.y, r1.z, -r1.y, c23.z
    mul r0.y, r0.y, r1.y
    mul r0.y, r2.x, r0.y
    mul oC0.w, r0.y, c22.w
    mov r2.xy, c24
    cmp r0.y, -c10.x, r2.x, r2.y
    mul r0.xyz, r0.y, r0.xzww
    mul r0.xyz, r0, c24.z
    cmp oC0.xyz, c8.y, r1.x, r0

// approximately 105 instruction slots used (8 texture, 97 arithmetic)
 