//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D DepthBuffer;
//   sampler2D NormalsBuffer;
//   float4 ScreenDimensions;
//   float3 gCameraPos;
//   float4 gDepthBias;
//   float gInvLightRange[4];
//   float4x4 gInvViewProj;
//   float4 gLightAtten[4];
//   bool gLightCastShadows[4];
//   float4 gLightColor[4];
//   float4 gLightColor2[4];
//   float4 gLightPosition;
//   float4x4 gLightViewProj[4];
//   bool gProjectTexture;
//   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
//   gDepthBias          c92      1
//   gLightPosition      c103     1
//   gSpotLightDirection c104     1
//   gSpotLightParams    c105     1
//   gLightColor         c107     1
//   gLightColor2        c111     1
//   gLightAtten         c115     1
//   gInvLightRange      c119     1
//   gLightViewProj      c123     4
//   NormalsBuffer       s0       1
//   DepthBuffer         s1       1
//   gSpotSampler        s8       1
//   gShadowSamplers     s12      1
//

    ps_3_0
    def c1, 0.5, 2, -1, 1
    def c2, 1, 0, -2, 3
    def c3, 9.99999975e-005, -0.0009765625, 0.0009765625, 0
    def c4, 1024, -1, 0, 1
    def c5, 0.25, 255, 0, 0
	def c201, 1.0, 0.006, 0.0625, 0.0
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s8
    dcl_2d s12
	dcl_2d s13
    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 r0, c70, r0.x, r4
    mad r0, c72, r3.x, r0
    add r0, r0, c73
	
	texldl r12, c201.z, s13	
	if_ne r12.x, c201.w
		rcp r0.w, r0.w
		mul r13.xyz, r0, r0.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 r0, c70, r10.x, r4
		mad r0, c72, r10.z, r0
		mad r0, c73, r10.w, r0

		
	endif
	
    rcp r0.w, r0.w
    mul r3.xyz, r0.w, r0
    mad r1.xyz, r0, -r0.w, c103
    dp3 r2.w, r1, r1
    rsq r2.w, r2.w
    mul_pp r1.xyz, r1, r2.w
    dp3_pp r4.x, r1, c104
    rcp r2.w, r2.w
    add r4.y, r4_abs.x, -c105.y
    cmp_pp r4.z, r4.x, c2.x, c2.y
    cmp_pp r4.y, r4.y, r4.z, c2.y
    mad r2.w, r2.w, r4.x, -c115.x
    mul_sat_pp r2.w, r2.w, c115.y
    add_pp r2.w, -r2.w, c1.w
    mul_pp r2.w, r2.w, r4.y
    add r4.y, -c105.y, c105.x
    add r4.x, r4.x, -c105.y
    rcp r4.y, r4.y
    mul_sat r4.x, r4.y, r4.x
    mad r4.y, r4.x, c2.z, c2.w
    mul r4.x, r4.x, r4.x
    mul_pp r4.x, r4.x, r4.y
    mul_pp r2.w, r2.w, r4.x
    mov r4.xyz, c111
    add r4.xyz, -r4, c107
    mad_pp r4.xyz, r2.w, r4, c111
    mov r3.w, c1.w
    dp4 r5.x, r3, c123
    dp4 r5.y, r3, c124
    dp4 r4.w, r3, c126
    if b15
      rcp r5.z, r4.w
      mul_sat r5.zw, r5.z, r5.xyxy
      dsx r6.x, r5.z
      dsy r6.y, r5.w
      mul r6.xy, r6, c3.x
      texldd_pp r6, r5.zwzw, s8, r6.x, r6.y
      mul_pp r4.xyz, r4, r6
    endif
    if b10
      dp4 r3.x, r3, c125
      rcp r3.y, r4.w
      mul r3.zw, r3.y, r5.xyxy
      mov r6.x, c119.x
      mad r3.x, r3.x, r6.x, -c92.w
      mad r6, r5.xyxy, r3.y, c3.yzwz
      texld r7, r6, s12
      texld r6, r6.zwzw, s12
      mad r8, r5.xyxy, r3.y, c3.zzyw
      texld r9, r8, s12
      texld r8, r8.zwzw, s12
      texld r10, r3.zwzw, s12
      mad r11, r5.xyxy, r3.y, c3.zwyy
      texld r12, r11, s12
      texld r11, r11.zwzw, s12
      mad r5, r5.xyxy, r3.y, c3.wyzy
      texld r13, r5, s12
      texld r5, r5.zwzw, s12
      mul r3.yz, r3.xzww, c4.x
      frc r14.xy, r3.yzzw
      add r14.zw, -r14.xyxy, c1.w
      mul r15, r14.wywy, r14.zxxz
      mov r7.y, r6.x
      mov r7.z, r9.x
      add r3.yzw, -r3.x, r7.xxyz
      cmp r3.yzw, r3, c2.x, c2.y
      mov r8.y, r10.x
      mov r8.z, r12.x
      add r5.yzw, -r3.x, r8.xxyz
      cmp r5.yzw, r5, c2.x, c2.y
      mov r11.y, r13.x
      mov r11.z, r5.x
      add r6.xyz, -r3.x, r11
      cmp r6.xyz, r6, c2.x, c2.y
      mov r7.xz, r15.wyyw
      mov r7.y, r14.y
      dp3 r3.x, r3.yzww, r7
      mad r3.yzw, r14.x, c4, c4.xwwz
      dp3 r3.y, r5.yzww, r3.yzww
      add r15.y, -r14.y, c1.w
      dp3 r3.z, r6, r15
      add r3.x, r3.y, r3.x
      add_pp r3.x, r3.z, r3.x
      mul_pp r3.x, r2.w, r3.x
      mul_pp r2.w, r3.x, c5.x
    endif
    mul_pp r3.xyz, r2.w, r4
    mul_pp r1.w, r1.w, c5.y
    mad r0.xyz, r0, -r0.w, c52
    dp3 r0.w, r0, r0
    rsq r0.w, r0.w
    mad_pp r0.xyz, r0, r0.w, r1
    nrm_pp r4.xyz, r0
    dp3_pp r0.x, r2, r1
    dp3_pp r0.y, r2, r4
    cmp_pp r0.z, -r0.x, c2.y, c2.x
    mul_pp r0.x, r0.x, r0.z
    cmp_pp r0.z, -r0.y, c2.y, r0.z
    pow_pp r2.x, r0.y, r1.w
    mul_pp r0.y, r0.z, r2.x
    mul_pp oC0.xyz, r3, r0.x
    mul_pp oC1.xyz, r3, r0.y
    mov_pp oC0.w, c1.w
    mov_pp oC1.w, c1.w

// approximately 136 instruction slots used (12 texture, 124 arithmetic)
 