//campaign map ground lighting around the base statue
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float4 g_campaign_world_bounds;
//   float g_force_snow_shader;
//   float4 g_screen_size;
//   float g_shroud_enabled;
//   float2 g_texture_ratio;
//   float2 g_uv_offset;
//   float4 g_viewport_offset_scale;
//   float g_vpos_texel_offset;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_view_projection;
//   sampler2D s_diffuse_map_clamp;
//   sampler2D s_diffuse_map_wrap;
//   sampler2D s_gbuffer_normal_wrap;
//   sampler2D s_normal;
//   sampler2D s_normal_wrap;
//   sampler2D s_shroud;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   inv_view_projection       c0       4
//   g_screen_size             c4       1
//   g_vpos_texel_offset       c5       1
//   g_shroud_enabled          c6       1
//   g_campaign_world_bounds   c7       1
//   g_uv_offset               c8       1
//   g_force_snow_shader       c9       1
//   g_viewport_offset_scale   c10      1
//   g_texture_ratio           c11      1
//   gbuffer_channel_4_sampler s0       1
//   s_shroud                  s1       1
//   s_diffuse_map_clamp       s2       1
//   s_diffuse_map_wrap        s3       1
//   s_normal                  s4       1
//   s_normal_wrap             s5       1
//   s_gbuffer_normal_wrap     s6       1
//

    ps_3_0
    def c12, 1, 0, -0.5, 0.5
    def c13, 2, -2, -1, 1
    def c14, 0.158691406, 0.00196078443, 0.00999999978, -1
    def c15, 0.449999988, 0.579999983, 0.680000007, 100
    def c16, -2, 3, -0.100000001, -0.5
    def c17, 2.5, 0.200000003, 0, 0
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord v0
    dcl_texcoord1 v1
    dcl_texcoord2 v2
    dcl_texcoord3 v3.xyz
    dcl_texcoord4 v4.xy
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    add r0, c5.x, vPos.xyyy
    mul r1, r0, c4.zwww
    texldl r2, r1.xwww, s0
    mov r2.zw, c4
    mad r0.xy, r0.xwzw, r2.zwzw, -c10
    rcp r3.x, c10.z
    rcp r3.y, c10.w
    mul r0.xy, r0, r3
    mad r0.xy, r0, c13, c13.zwzw
    mad r0.zw, r2.x, c12.xyxy, c12.xyyx
    dp4 r2.x, r0, c0
    dp4 r2.y, r0, c1
    dp4 r2.z, r0, c2
    dp4 r0.x, r0, c3
	
mov r10.xyz, r2.xyz
mov r10.w, r0.x

rcp r12.w, r0.x
mul r10, r10, r12.w

dp4 r11.x, r10, c200 
dp4 r11.y, r10, c201
dp4 r11.z, r10, c202 
dp4 r11.w, r10, c203 

texldl r24, c220.z, s13
add r24.y, r11.w, -r24.y
mul r24.x, r24.x, r24.y
add r11.x, r11.x, -r24.x

dp4 r10.x, r11, c204 //c0
dp4 r10.y, r11, c205 //c1
dp4 r10.z, r11, c206 //c2
dp4 r10.w, r11, c207 //c3

mul r10, r10, r0.x
mov r2.xyz, r10.xyz 
	
	
    rcp r0.x, r0.x
    texldl r1, r1, s6
    mad r0.yzw, r1.xxyz, c13.x, c13.z
    nrm r1.xyz, r0.yzww
    nrm r3.xyz, v0
    mul r0.yzw, r3.xxyz, v3.x
    nrm r3.xyz, v1
    mul r3.xyz, r3, v3.y
    nrm r4.xyz, v2
    mul r4.xyz, r4, v3.z
    mov r5.x, v0.w
    mov r5.y, v1.w
    mov r5.z, v2.w
    mad r5.xyz, r2, r0.x, -r5
    mul r3.xyz, r3, r5.y
    mad r0.yzw, r5.x, r0, r3.xxyz
    mad r0.yzw, r5.z, r4.xxyz, r0
    mul r3.xyz, v3, v3
    rcp r4.x, r3.x
    rcp r4.y, r3.y
    rcp r4.z, r3.z
    mad r3.xyz, r0.yzww, -r4, c12.z
    mad r5.xyz, r0.yzww, r4, c12.z
    cmp r5.xyz, r5, c12.y, c12.x
    cmp r3.xyz, r3, c12.y, r5
    mul r0.z, r3.y, r3.x
    mul r0.z, r3.z, r0.z
    cmp r3, -r0.z, c13.z, c13.w
    texkill r3
    mad r3.xy, r0.ywzw, r4.xzzw, c12.w
    mov r4.y, v2.z
    mov r4.z, v0.z
    mov r4.x, v1.z
    mul r0.yzw, r1.xzxy, r4.xxyz
    mad r0.yzw, r1.xyzx, r4.xyzx, -r0
    nrm r4.xyz, r0.yzww
    mov r5.z, v1.x
    mov r5.x, v2.x
    mov r5.y, v0.x
    mul r0.yzw, r1.xyzx, r5.xxyz
    mad r0.yzw, r5.xzxy, r1.xzxy, -r0
    nrm r5.xyz, r0.yzww
    add r3.z, -r3.y, c13.w
    texld r6, r3.xzzw, s2
    mul r7.x, r6.w, v4.y
    mul r0.yz, r3.xxzw, v3.xxzw
    mul r0.yz, r0, c11.xxyw
    mul r0.yz, r0, c14.x
    texld r8, r0.yzzw, s3
    texld r9, r0.yzzw, s5
    add r0.yz, r9.xwyw, c14.y
    mad r9.yz, r0, c13.x, c13.z
    dp2add r0.y, r9.yzzw, -r9.yzzw, c13.w
    max r1.w, r0.y, c12.y
    rsq r0.y, r1.w
    rcp r0.y, r0.y
    mul r10.xyz, r5, r9.z
    mad r10.xyz, r9.y, r4, r10
    mad r0.yzw, r0.y, r1.xxyz, r10.xxyz
    nrm r10.xyz, r0.yzww
    texld r3, r3.xzzw, s4
    add r0.yz, r3.xwyw, c14.y
    mad r7.yz, r0, c13.x, c13.z
    dp2add r0.y, r7.yzzw, -r7.yzzw, c13.w
    max r1.w, r0.y, c12.y
    rsq r0.y, r1.w
    rcp r0.y, r0.y
    mul r3.xyz, r5, r7.z
    mad r3.xyz, r7.y, r4, r3
    mad r0.yzw, r0.y, r1.xxyz, r3.xxyz
    nrm r1.xyz, r0.yzww
    cmp r0.yzw, -v4.x, r1.xxyz, r10.xxyz
    cmp r1.xyz, -v4.x, r6, r8
    mov r9.x, r7.x
    cmp r3.xyw, -v4.x, r7.yzzx, r9.yzzx
    abs r1.w, c9.x
    dp2add r2.y, r3, r3, c12.y
    rsq r2.y, r2.y
    mul_sat r2.y, r2.y, r3.x
    lrp r3.xyz, r2.y, c15, r1
    cmp r1.xyz, -r1.w, r1, r3
    mov r2.y, c12.y
    if_lt -c6.x, r2.y
      mad r2.xy, r2.xzzw, r0.x, -c7
      add r2.zw, -c7.xyxy, c7
      rcp r3.x, r2.z
      rcp r3.y, r2.w
      mul r2.xy, r2, r3
      mov r4.xw, c13
      mad r2.zw, c8.xyxy, -r4.x, r4.w
      mad r2, r2.xyyy, r2.zwww, c8.xyyy
      texldl r4, r2, s1
      add r2, r2.xxww, c14.zwzw
      mul_sat r2, r2, c15.w
      mad r5, r2, c16.x, c16.y
      mul r2, r2, r2
      mul r2, r2, r5
      mul r0.x, r4.w, r2.x
      mul r0.x, r0.x, r2.z
      mad r0.x, r2.y, -r0.x, r0.x
      mad r0.x, r2.w, -r0.x, r0.x
    else
      mov r0.x, c13.w
    endif
    add r2.xy, r0.x, c16.zwzw
    mul_sat r0.x, r2.x, c17.x
    mad r1.w, r0.x, c16.x, c16.y
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, r1.w
    add_sat r1.w, r2.y, r2.y
    mad r2.x, r1.w, c16.x, c16.y
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r2.x
    mul r0.x, r0.x, c17.y
    mul_sat r2.xyz, r0.x, r1
    lrp r3.xyz, r1.w, r1, r2
    rsq r0.x, r3.x
    rsq r1.x, r3.y
    rsq r1.y, r3.z
    rcp oC1.x, r0.x
    rcp oC1.y, r1.x
    rcp oC1.z, r1.y
    max r1.x, r0_abs.z, r0_abs.w
    max r2.x, r0_abs.y, r1.x
    rcp r0.x, r2.x
    mul r0.xyz, r0.x, r0.yzww
    mad oC0.xyz, r0, c12.w, c12.w
    mov oC0.w, r3.w
    mov oC1.w, r3.w

// approximately 167 instruction slots used (10 texture, 157 arithmetic)
 