//
// 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 gLightColor2[4];
//   float4 gLightPosition;
//   float4x4 gLightViewProj[4];
//   bool gProjectTexture;
//   float gShadowMapSize;
//   sampler2D gShadowSamplers[3];
//   float4 gSpotLightDirection;
//   float4 gSpotLightParams;
//   sampler2D gSpotSampler;
//   float4 gTime;
//   float4 gViewport;
//
//
// Registers:
//
//   Name                Reg   Size
//   ------------------- ----- ----
//   gLightCastShadows   b10      1
//   gProjectTexture     b15      1
//   ScreenDimensions    c0       1
//   gViewport           c50      1
//   gTime               c51      1
//   gCameraPos          c52      1
//   gInvViewProj        c70      4
//   gLightPosition      c103     1
//   gSpotLightDirection c104     1
//   gSpotLightParams    c105     1
//   gLightColor         c107     1
//   gLightColor2        c111     1
//   gLightAtten         c115     1
//   gInvLightRange      c119     1
//   gLightViewProj      c123     4
//   gShadowMapSize      c141     1
//   NormalsBuffer       s0       1
//   DepthBuffer         s1       1
//   SpecBuffer          s2       1
//   gSpotSampler        s8       1
//   gShadowSamplers     s12      1
//

    ps_3_0
    def c1, 0.5, 2, -1, 1
    def c2, 0, 1, -0.0187292993, 0.0742610022
    def c3, -0.212114394, 1.57072878, -2, 3.14159274
    def c4, 0.159154937, 0.5, 6.28318548, -3.14159274
    def c5, -2, 3, 9.99999975e-005, -0
    def c6, 10, 1, 8, 0.0399999991
    def c7, 0, 4, 0.0625, -8.65616989
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
    dcl_2d 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
    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 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
    mul r4.xyz, r0.x, r3
    mad r1.xyz, r3, -r0.x, c103
    dp3 r0.y, r1, r1
    rsq r2.w, r0.y
    mul_pp r1.xyz, r1, r2.w
    mov r5.x, c2.x
    if_lt c105.x, r5.x
      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
    else
      dp3_pp r0.y, r1, c104
      rcp r2.w, r2.w
      cmp r5.yz, r0.y, c2.xyxw, c2.xxyw
      mad r5.w, r2.w, r0.y, -c115.x
      mul_sat_pp r5.w, r5.w, c115.y
      add_pp r5.w, -r5.w, c1.w
      mul_pp r5.y, r5.w, r5.y
      add r5.w, -r0_abs.y, c1.w
      rsq r5.w, r5.w
      rcp r5.w, r5.w
      mad r6.x, r0_abs.y, c2.z, c2.w
      mad r6.x, r6.x, r0_abs.y, c3.x
      mad r0.y, r6.x, r0_abs.y, c3.y
      mul r0.y, r5.w, r0.y
      mad r5.w, r0.y, c3.z, c3.w
      mad r0.y, r5.w, r5.z, r0.y
      mad r0.y, r0.y, c4.x, c4.y
      frc r0.y, r0.y
      mad r0.y, r0.y, c4.z, c4.w
      sincos r6.y, r0.y
      add r5.zw, -c105, c105.xyxy
      mad r6.xy, r2.w, r6.y, -c105.zwzw
      rcp r0.y, r5.z
      mul_sat r0.y, r0.y, r6.x
      mad r2.w, r0.y, c5.x, c5.y
      mul r0.y, r0.y, r0.y
      mul r0.y, r0.y, r2.w
      rcp r2.w, r5.w
      mul_sat r2.w, r2.w, r6.y
      mad r5.z, r2.w, c5.x, c5.y
      mul r2.w, r2.w, r2.w
      mul r2.w, r2.w, r5.z
      mul_pp r0.y, r0.y, r2.w
      mul_pp r3.w, r0.y, r5.y
    endif
    mov r6.xyz, c111
    add r5.yzw, -r6.xxyz, c107.xxyz
    mad_pp r5.yzw, r3.w, r5, c111.xxyz
    mov r4.w, c1.w
    dp4 r6.x, r4, c123
    dp4 r6.y, r4, c124
    dp4 r0.y, r4, c126
    if b15
      rcp r2.w, r0.y
      mul_sat r6.zw, r2.w, r6.xyxy
      dsx r2.w, r6.z
      mul r2.w, r2.w, c5.z
      dsy r7.x, r6.w
      mul r7.x, r7.x, c5.z
      texldd_pp r7, r6.zwzw, s8, r2.w, r7.x
      mul_pp r5.yzw, r5, r7.xxyz
    endif
    if b10
      dp4 r2.w, r4, c125
      rcp r0.y, r0.y
      mul r4.xy, r0.y, r6
      mov r7.y, c5.y
      mul r4.z, r7.y, c119.x
      mad r2.w, r2.w, c119.x, -r4.z
      frc r4.z, c141.x
      add r4.w, -r4.z, c141.x
      cmp r4.z, -r4.z, c2.x, c2.y
      cmp r4.z, c141.x, r5.x, r4.z
      add r4.z, r4.z, r4.w
      rcp r7.x, r4.z
      mov r8.x, -r7.x
      mad r4.zw, r6.xyxy, r0.y, r8.x
      texld r9, r4.zwzw, s12
      add r4.z, r2.w, -r9.x
      cmp r4.z, r4.z, c2.x, c2.y
      mov r8.y, c2.x
      mad r8, r6.xyxy, r0.y, r8.yxxy
      texld r9, r8, s12
      add r4.w, r2.w, -r9.x
      cmp r4.w, r4.w, -c5.w, -c5.x
      add r4.z, r4.w, r4.z
      mov r7.yw, -r7.x
      mad r9, r6.xyxy, r0.y, r7.xywx
      texld r10, r9, s12
      add r4.w, r2.w, -r10.x
      cmp r4.w, r4.w, c2.x, c2.y
      add r4.z, r4.w, r4.z
      texld r8, r8.zwzw, s12
      add r4.w, r2.w, -r8.x
      cmp r4.w, r4.w, -c5.w, -c5.x
      add r4.z, r4.w, r4.z
      texld r8, r4, s12
      add r4.x, r2.w, -r8.x
      cmp r4.x, r4.x, c7.x, c7.y
      add r4.x, r4.x, r4.z
      mov r7.z, c2.x
      mad r8, r6.xyxy, r0.y, r7.xzzx
      texld r10, r8, s12
      add r4.y, r2.w, -r10.x
      cmp r4.y, r4.y, -c5.w, -c5.x
      add r4.x, r4.y, r4.x
      texld r9, r9.zwzw, s12
      add r4.y, r2.w, -r9.x
      cmp r4.y, r4.y, c2.x, c2.y
      add r4.x, r4.y, r4.x
      texld r8, r8.zwzw, s12
      add r4.y, r2.w, -r8.x
      cmp r4.y, r4.y, -c5.w, -c5.x
      add r4.x, r4.y, r4.x
      mad r4.yz, r6.xxyw, r0.y, r7.x
      texld r6, r4.yzzw, s12
      add r0.y, r2.w, -r6.x
      cmp r0.y, r0.y, c2.x, c2.y
      add r0.y, r0.y, r4.x
      mul_pp r0.y, r3.w, r0.y
      mul_pp r3.w, r0.y, c7.z
    endif
    mul_pp r4.xyz, r3.w, r5.yzww
    mad r3.xyz, r3, -r0.x, c52
    dp3 r0.x, r3, r3
    rsq r0.x, r0.x
    texld_pp r5, r0.zwzw, s2
    mad_pp r0.y, r1.w, c6.x, c6.y
    exp_pp r0.y, r0.y
    mad_pp r0.xzw, r3.xyyz, r0.x, r1.xyyz
    nrm_pp r3.xyz, r0.xzww
    dp3_sat_pp r0.x, r2, r1
    dp3_sat_pp r0.z, r2, r3
    mul_pp oC0.xyz, r0.x, r4
    dp3_sat_pp r0.w, r1, r3
    mul_pp r0.w, r0.w, c7.w
    exp_pp r0.w, r0.w
    lrp_pp r1.xyz, r0.w, c1.w, r5
    add_pp r0.w, r0.y, c6.z
    mul_pp r0.w, r0.w, c6.w
    mul_pp r1.xyz, r0.w, r1
    pow_pp r1.w, r0.z, r0.y
    mul_pp r0.yzw, r1.w, r1.xxyz
    mul_pp r0.yzw, r4.xxyz, r0
    mul_pp oC1.xyz, r0.x, r0.yzww
    mov_pp oC0.w, c1.w
    mov_pp oC1.w, c1.w

// approximately 193 instruction slots used (13 texture, 180 arithmetic)
 