//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D DepthBuffer;
//   sampler2D NormalsBuffer;
//   float4 ScreenDimensions;
//   sampler2D SpecBuffer;
//   float3 gCameraPos;
//   float gInvLightRange[4];
//   float4x4 gInvViewProj;
//   float4 gLightAtten[4];
//   bool gLightCastShadows[4];
//   float4 gLightColor[4];
//   float4 gLightPosition;
//   float4 gOffsets[10];
//   samplerCUBE gShadowSamplers[3];
//   float4 gTime;
//   float4 gViewport;
//
//
// Registers:
//
//   Name              Reg   Size
//   ----------------- ----- ----
//   gLightCastShadows b10      1
//   ScreenDimensions  c0       1
//   gViewport         c50      1
//   gTime             c51      1
//   gCameraPos        c52      1
//   gInvViewProj      c70      4
//   gLightPosition    c103     1
//   gLightColor       c107     1
//   gLightAtten       c115     1
//   gInvLightRange    c119     1
//   gOffsets          c161     5
//   NormalsBuffer     s0       1
//   DepthBuffer       s1       1
//   SpecBuffer        s2       1
//   gShadowSamplers   s12      1
//

    ps_3_0
    def c1, 0.5, 2, -1, 1
    def c2, -0.00999999978, 0, 0, 1
    def c3, -1, -2, -3, -4
    def c4, 0.200000003, 10, 1, -8.65616989
    def c5, 8, 0.0399999991, 0, 0
def c201, 1.0, 0.006, 0.0625, 0.0
dcl_2d s13
    defi i0, 5, 0, 0, 0
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_cube s12
    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
    dp3_pp r2.x, r1, r1
    rsq_pp r2.x, r2.x
    mul_pp r2.yzw, r1.xxyz, r2.x
    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 r4, r10.y, c71
	mad r3, c70, r10.x, r4
	mad r3, c72, r10.z, r3
	mad r3, c73, r10.w, r3
endif
    rcp r0.x, r3.w
    mad r4.xyz, r3.xzyw, -r0.x, c103.xzyw
    dp3 r0.y, r4, r4
    rsq r3.w, r0.y
    mul_pp r5.xyz, r3.w, r4.xzyw
    add r0.y, r0.y, -c115.x
    mul_sat r0.y, r0.y, c115.w
    add r0.y, -r0.y, c1.w
    pow_pp r3.w, r0.y, c115.y
    if b10
      mad r1.xyz, r1.xzyw, r2.x, -r4
      mul r4.xyz, r1, c119.x
      dp3 r0.y, r4, r4
      add r0.y, r0.y, c2.x
      mov r4.w, c2.y
      mov r6.xy, c2.y
      rep i0
        add r7, r6.y, c3
        mov r8.y, c2.y
        cmp r8.xyz, -r6.y, c161, r8.y
        cmp r8.xyz, -r7_abs.x, c162, r8
        cmp r8.xyz, -r7_abs.y, c163, r8
        cmp r7.xyz, -r7_abs.z, c164, r8
        cmp r7.xyz, -r7_abs.w, c165, r7
        mad r4.xyz, c119.x, r1, r7
        texldl r7, r4, s12
        add r2.x, r0.y, -r7.x
        cmp_pp r2.x, r2.x, c2.y, c2.w
        add_pp r6.x, r2.x, r6.x
        add r6.y, r6.y, c1.w
      endrep
      mul_pp r0.y, r6.x, c4.x
      mov r4.w, c1.w
      add_pp r1.x, r4.w, -c107.w
      max_sat_pp r2.x, r0.y, r1.x
      mul_pp r3.w, r2.x, r3.w
    endif
    mul_pp r1.xyz, r3.w, 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, c4.y, c4.z
    exp_pp r0.y, r0.y
    mad_pp r0.xzw, r3.xyyz, r0.x, r5.xyyz
    nrm_pp r3.xyz, r0.xzww
    dp3_sat_pp r0.x, r2.yzww, r5
    dp3_sat_pp r0.z, r2.yzww, r3
    mul_pp oC0.xyz, r0.x, r1
    dp3_sat_pp r0.w, r5, r3
    mul_pp r0.w, r0.w, c4.w
    exp_pp r0.w, r0.w
    lrp_pp r2.xyz, r0.w, c1.w, r4
    add_pp r0.w, r0.y, c5.x
    mul_pp r0.w, r0.w, c5.y
    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 94 instruction slots used (5 texture, 89 arithmetic)
 