//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D DepthBuffer;
//   sampler2D NormalsBuffer;
//   float4 ScreenDimensions;
//   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
//   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, 255, 0, 0
	def c201, 1.0, 0.006, 0.0625, 0.0
    defi i0, 5, 0, 0, 0
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_cube 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
    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 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
    mad r3.xyz, r0.xzyw, -r0.w, c103.xzyw
    dp3 r3.w, r3, r3
    rsq r4.x, r3.w
    mul_pp r4.xyz, r3.xzyw, r4.x
    add r3.w, r3.w, -c115.x
    mul_sat r3.w, r3.w, c115.w
    add r3.w, -r3.w, c1.w
    pow_pp r4.w, r3.w, c115.y
    if b10
      mad r1.xyz, r1.xzyw, r2.x, -r3
      mul r3.xyz, r1, c119.x
      dp3 r2.x, r3, r3
      add r2.x, r2.x, c2.x
      mov r3.w, c2.y
      mov r5.xy, c2.y
      rep i0
        add r6, r5.y, c3
        mov r7.y, c2.y
        cmp r7.xyz, -r5.y, c161, r7.y
        cmp r7.xyz, -r6_abs.x, c162, r7
        cmp r7.xyz, -r6_abs.y, c163, r7
        cmp r6.xyz, -r6_abs.z, c164, r7
        cmp r6.xyz, -r6_abs.w, c165, r6
        mad r3.xyz, c119.x, r1, r6
        texldl r6, r3, s12
        add r3.x, r2.x, -r6.x
        cmp_pp r3.x, r3.x, c2.y, c2.w
        add_pp r5.x, r3.x, r5.x
        add r5.y, r5.y, c1.w
      endrep
      mul_pp r1.x, r5.x, c4.x
      mov r3.w, c1.w
      add_pp r1.y, r3.w, -c107.w
      max_sat_pp r2.x, r1.x, r1.y
      mul_pp r4.w, r2.x, r4.w
    endif
    mul_pp r1.xyz, r4.w, c107
    mul_pp r1.w, r1.w, c4.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, r4
    nrm_pp r3.xyz, r0
    dp3_pp r0.x, r2.yzww, r4
    dp3_pp r0.y, r2.yzww, r3
    cmp_pp r0.z, -r0.x, c2.y, c2.w
    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, r1, r0.x
    mul_pp oC1.xyz, r1, r0.y
    mov_pp oC0.w, c1.w
    mov_pp oC1.w, c1.w

// approximately 87 instruction slots used (4 texture, 83 arithmetic)
 