//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D DepthBuffer;
//   sampler2D NormalsBuffer;
//   float4 ScreenDimensions;
//   sampler2D SpecBuffer;
//   float3 gCameraPos;
//   float4x4 gInvViewProj;
//   bool gLightCastShadows[4];
//   float4 gLightColor[4];
//   float gShadowMapSize;
//   float4 gSpotLightDirection;
//   float4 gSunAtlasShift[2];
//   float4x4 gSunMatrixSplits[4];
//   sampler2D gSunSampler;
//   float4 gSunSplitValues;
//   float4 gTime;
//   float4x4 gViewProj;
//   float4 gViewport;
//
//
// Registers:
//
//   Name                Reg   Size
//   ------------------- ----- ----
//   gLightCastShadows   b10      1
//   ScreenDimensions    c0       1
//   gViewport           c50      1
//   gTime               c51      1
//   gCameraPos          c52      1
//   gViewProj           c66      3
//   gInvViewProj        c70      4
//   gSpotLightDirection c104     1
//   gLightColor         c107     1
//   gShadowMapSize      c141     1
//   gSunAtlasShift      c142     2
//   gSunSplitValues     c144     1
//   gSunMatrixSplits    c145    16
//   NormalsBuffer       s0       1
//   DepthBuffer         s1       1
//   SpecBuffer          s2       1
//   gSunSampler         s8       1
//

    ps_3_0
    def c1, 0.5, 2, -1, 1
    def c2, -0.5, -1, 0.5, 0.03125
    def c3, 10, 1, -8.65616989, 8
    def c4, 0.0399999991, 0, 0, 0
    def c5, 1, 0, -1, -2
    def c6, 0.5, -0.5, 0, 4
    def c7, 1, 0, 2, 3
def c201, 1.0, 0.006, 0.0625, 0.0
dcl_2d s13
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s8
    add r0.xy, c1.x, vPos
    mul r0.zw, r0.xyxy, c0
    texld_pp r1, r0.zwzw, s0
    mad_pp r1.xyz, r1, c1.y, c1.z
    nrm_pp r2.xyz, r1
    mov r3.zw, c0
    mad r0.xy, r0, r3.zwzw, c51.yzzw
    texld r3, r0, s1
    rcp_pp r0.x, c50.z
    rcp_pp r0.y, c50.w
    mad r0.xy, r0.zwzw, r0, c50
    mad r0.x, r0.x, c1.y, c1.z
    add r0.y, -r0.y, c1.w
    mad r0.y, r0.y, c1.y, c1.z
    mul r4, r0.y, c71
    mad r4, c70, r0.x, r4
    mad r3, c72, r3.x, r4
    add r3, r3, c73
texldl r12, c201.z, s13
if_ne r12.x, c201.w
	rcp r3.w, r3.w
	mul r13.xyz, r3, r3.w 
	mov r13.w, c201.x
	dp4 r10.z, r13, c68
	dp4 r10.x, r13, c66
	dp4 r10.y, r13, c67
	dp4 r10.w, r13, c69
	
	add r12.y, r10.w, -r12.y
	mul r12.x, r12.x, r12.y
	add r10.x, r10.x, -r12.x
			
	mul r14, r10.y, c71
	mad r3, c70, r10.x, r14
	mad r3, c72, r10.z, r3
	mad r3, c73, r10.w, r3
endif
    rcp r0.x, r3.w
    mul r4.xyz, r0.x, r3
    if b10
      mov r4.w, c1.w
      dp4_pp r0.y, r4, c68
      add r1.x, -r0.y, c144.w
      add r5.xyz, r0.y, -c144
      cmp_pp r5.xyz, r5, c7.x, c7.y
      dp3_pp r0.y, r5, c1.w
      add r5, r0.y, -c7.yxzw
      mov r1.y, c7.y
      cmp r6, -r5_abs.x, c145, r1.y
      cmp r7, -r5_abs.x, c146, r1.y
      cmp r8, -r5_abs.x, c147, r1.y
      cmp r9, -r5_abs.x, c148, r1.y
      cmp r6, -r5_abs.y, c149, r6
      cmp r7, -r5_abs.y, c150, r7
      cmp r8, -r5_abs.y, c151, r8
      cmp r9, -r5_abs.y, c152, r9
      cmp r6, -r5_abs.z, c153, r6
      cmp r7, -r5_abs.z, c154, r7
      cmp r8, -r5_abs.z, c155, r8
      cmp r9, -r5_abs.z, c156, r9
      cmp r6, -r5_abs.w, c157, r6
      cmp r7, -r5_abs.w, c158, r7
      cmp r8, -r5_abs.w, c159, r8
      cmp r9, -r5_abs.w, c160, r9
      dp4 r5.x, r4, r6
      dp4 r5.y, r4, r7
      dp4 r1.y, r4, r8
      dp4 r1.z, r4, r9
      rcp r1.z, r1.z
      mul r4.xy, r1.z, r5
      mad r4.xy, r4, c6, c6.x
      cmp r1.z, r5.z, -c7.z, -c7.y
      add r0.y, r0.y, r1.z
      add r0.y, r0.y, r0.y
      mov r6, c143
      cmp r5, r5.z, r6, c142
      add r6, r0.y, -c7.yxzw
      cmp r6, -r6_abs, c7.x, c7.y
      dp4 r1.z, r5, r6
      mad r6.x, r4.x, c1.x, r1.z
      add r7, r0.y, c5
      cmp r7, -r7_abs, c7.x, c7.y
      dp4 r0.y, r5, r7
      mad r6.y, r4.y, c1.x, r0.y
      rcp r4.x, c141.x
      mul r5.x, r4.x, c1.x
      mov r7.x, -r5.x
      mad r6.zw, r4.x, -c1.x, r6.xyxy
      texld r8, r6.zwzw, s8
      add r0.y, r1.y, -r8.x
      cmp r0.y, r0.y, c7.y, c7.x
      mov r7.y, c7.y
      add r7, r6.xyxy, r7.yxxy
      texld r8, r7, s8
      add r1.z, r1.y, -r8.x
      cmp r1.z, r1.z, c7.y, c7.z
      add r0.y, r0.y, r1.z
      mov r5.yw, -r5.x
      add r8, r5.xywx, r6.xyxy
      texld r9, r8, s8
      add r1.z, r1.y, -r9.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r7, r7.zwzw, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.z
      add r0.y, r0.y, r1.z
      texld r7, r6, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c6.z, c6.w
      add r0.y, r0.y, r1.z
      mov r5.z, c7.y
      add r5, r5.xzzx, r6.xyxy
      texld r7, r5, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.z
      add r0.y, r0.y, r1.z
      texld r7, r8.zwzw, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r5, r5.zwzw, s8
      add r1.z, r1.y, -r5.x
      cmp r1.z, r1.z, c7.y, c7.z
      add r0.y, r0.y, r1.z
      mad r5.xy, r4.x, c1.x, r6
      texld r5, r5, s8
      add r1.z, r1.y, -r5.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      add r5.xy, -r4.x, r6
      texld r5, r5, s8
      add r1.z, r1.y, -r5.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mul r4.yzw, r4.x, c2.xxyz
      mad r5, r4.x, c2.xyzy, r6.xyxy
      texld r7, r5, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mad r7, r4.xxxy, c5.yzzx, r6.xyxy
      texld r8, r7, s8
      add r1.z, r1.y, -r8.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r5, r5.zwzw, s8
      add r1.z, r1.y, -r5.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      add r5, r4.xzxy, r6.xyxy
      texld r8, r5, s8
      add r1.z, r1.y, -r8.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r7, r7.zwzw, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mad r4.yz, r4.x, c5.xzyw, r6.xxyw
      texld r7, r4.yzzw, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mad r7, r4.xwxx, c5.zxxy, r6.xyxy
      texld r8, r7, s8
      add r1.z, r1.y, -r8.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r5, r5.zwzw, s8
      add r1.z, r1.y, -r5.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r5, r7.zwzw, s8
      add r1.z, r1.y, -r5.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      add r5, r4.xwxx, r6.xyxy
      texld r7, r5, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mad r7, r4.x, -c1.wzxz, r6.xyxy
      texld r8, r7, s8
      add r1.z, r1.y, -r8.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r7, r7.zwzw, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mad r4.yz, r4.x, c7.xyxw, r6.xxyw
      texld r7, r4.yzzw, s8
      add r1.z, r1.y, -r7.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      mad r4.xy, r4.x, c1.xwzw, r6
      texld r4, r4, s8
      add r1.z, r1.y, -r4.x
      cmp r1.z, r1.z, c7.y, c7.x
      add r0.y, r0.y, r1.z
      texld r4, r5.zwzw, s8
      add r1.y, r1.y, -r4.x
      cmp r1.y, r1.y, c7.y, c7.x
      add r0.y, r0.y, r1.y
      mul_pp r0.y, r0.y, c2.w
      cmp_pp r0.y, r1.x, r0.y, c1.w
    else
      mov_pp r0.y, c1.w
    endif
    mul_pp r1.xyz, r0.y, c107
    mad r3.xyz, r3, -r0.x, c52
    dp3 r0.x, r3, r3
    rsq r0.x, r0.x
    texld_pp r4, r0.zwzw, s2
    mad_pp r0.y, r1.w, c3.x, c3.y
    exp_pp r0.y, r0.y
    mad_pp r0.xzw, r3.xyyz, r0.x, c104.xyyz
    nrm_pp r3.xyz, r0.xzww
    dp3_sat_pp r0.x, r2, c104
    dp3_sat_pp r0.z, r2, r3
    mul_pp oC0.xyz, r0.x, r1
    dp3_sat_pp r0.w, c104, r3
    mul_pp r0.w, r0.w, c3.z
    exp_pp r0.w, r0.w
    lrp_pp r2.xyz, r0.w, c1.w, r4
    add_pp r0.w, r0.y, c3.w
    mul_pp r0.w, r0.w, c4.x
    mul_pp r2.xyz, r0.w, r2
    pow_pp r1.w, r0.z, r0.y
    mul_pp r0.yzw, r1.w, r2.xxyz
    mul_pp r0.yzw, r1.xxyz, r0
    mul_pp oC1.xyz, r0.x, r0.yzww
    mov_pp oC0.w, c1.w
    mov_pp oC1.w, c1.w

// approximately 224 instruction slots used (28 texture, 196 arithmetic)
 