//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   sampler2D DepthBuffer;
//   sampler2D DiffuseBuffer;
//   sampler2D NormalsBuffer;
//   float4 ScreenDimensions;
//   sampler2D SpecularBuffer;
//   float3 gCameraPos;
//   bool gDoLighting;
//   bool gDoSSAO;
//   float4 gFogColor;
//   float4 gFogParams;
//   float4x4 gInvViewProj;
//   float4 gLightAtten[4];
//   float4 gLightColor[4];
//   float4 gLightPosition;
//   float4x4 gLightViewProj[4];
//   bool gPreMultiplyAlpha;
//   sampler2D gSpotEmissiveSampler;
//   float4 gSpotLightDirection;
//   float4 gSpotLightParams;
//   sampler2D gSpotSampler;
//   float4 gTime;
//   float4 gViewport;
//
//
// Registers:
//
//   Name                 Reg   Size
//   -------------------- ----- ----
//   gPreMultiplyAlpha    b0       1
//   gDoLighting          b1       1
//   gDoSSAO              b14      1
//   ScreenDimensions     c0       1
//   gViewport            c50      1
//   gTime                c51      1
//   gCameraPos           c52      1
//   gInvViewProj         c70      4
//   gFogParams           c80      1
//   gFogColor            c81      1
//   gLightPosition       c103     1
//   gSpotLightDirection  c104     1
//   gSpotLightParams     c105     1
//   gLightColor          c107     1
//   gLightAtten          c115     1
//   gLightViewProj       c123     4
//   DiffuseBuffer        s0       1
//   NormalsBuffer        s1       1
//   SpecularBuffer       s2       1
//   DepthBuffer          s3       1
//   gSpotSampler         s8       1
//   gSpotEmissiveSampler s9       1
//

    ps_3_0
    def c1, 0.5, 2, -1, 1
    def c2, 1, 0, -2, 3
    def c3, -0.0156862754, 9.99999975e-005, 1.44269502, 0
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 s3
    dcl_2d s8
    dcl_2d s9
    add r0.xy, c1.x, vPos
    mul r0.zw, r0.xyxy, c0
    mov r1.zw, c0
    mad r0.xy, r0, r1.zwzw, c51.yzzw
    texld r1, r0, s3
    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 r2, r0.y, c71
    mad r2, c70, r0.x, r2
    mad r1, c72, r1.x, r2
    add r1, r1, c73
texldl r12, c201.z, s13	
if_ne r12.x, c201.w
	rcp r1.w, r1.w
	mul r13.xyz, r1, r1.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 r1, c70, r10.x, r4
	mad r1, c72, r10.z, r1
	mad r1, c73, r10.w, r1
endif
    rcp r0.x, r1.w
    mul r2.xyz, r0.x, r1
    mad_pp r3.xyz, r1, -r0.x, c103
    dp3_pp r0.y, r3, r3
    rsq_pp r0.y, r0.y
    mul_pp r3.xyz, r0.y, r3
    dp3_pp r1.w, r3, c104
    rcp_pp r0.y, r0.y
    add r3.w, r1_abs.w, -c105.y
    cmp_pp r4.x, r1.w, c2.x, c2.y
    cmp_pp r3.w, r3.w, r4.x, c2.y
    mad r0.y, r0.y, r1.w, -c115.x
    mul_sat_pp r0.y, r0.y, c115.y
    add_pp r0.y, -r0.y, c1.w
    mul_pp r0.y, r0.y, r3.w
    add r3.w, -c105.y, c105.x
    add r1.w, r1.w, -c105.y
    rcp r3.w, r3.w
    mul_sat r1.w, r1.w, r3.w
    mad r3.w, r1.w, c2.z, c2.w
    mul r1.w, r1.w, r1.w
    mul_pp r1.w, r1.w, r3.w
    mul_pp r3.w, r0.y, r1.w
    mad_pp r4, r0.y, r1.w, c3.x
    texkill r4
    mov r2.w, c1.w
    dp4 r4.x, r2, c123
    dp4 r4.y, r2, c124
    dp4 r0.y, r2, c126
    rcp r0.y, r0.y
    mul_sat r2.xy, r0.y, r4
    dsx r0.y, r2.x
    mul r0.y, r0.y, c3.y
    dsy r1.w, r2.y
    mul r1.w, r1.w, c3.y
    texldd_pp r4, r2, s8, r0.y, r1.w
    texldd_pp r2, r2, s9, r0.y, r1.w
    mul_pp r5.xyz, r4, c107
    mul_pp r5.xyz, r3.w, r5
    if b1
      texld_pp r6, r0.zwzw, s0
      texld_pp r7, r0.zwzw, s2
      mul_pp r7.xyz, r3.w, r7
    else
      mov_pp r6.xyz, c1.w
      mov_pp r7.xyz, c2.y
    endif
    mul_pp r5.xyz, r5, r6
    mul_pp r6.xyz, r2, r7
    mad_pp r2.xyz, r5, r2, r6
    texld_pp r5, r0.zwzw, s1
    mad_pp r5.xyz, r5, c1.y, c1.z
    nrm_pp r6.xyz, r5
    dp3_sat_pp r0.y, r6, r3
    mul_pp r2.xyz, r0.y, r2
    if b14
      texld_pp r3, r0.zwzw, s0
      mul_pp r2.xyz, r2, r3.w
    endif
    mad r0.xyz, r1, -r0.x, c52
    dp3 r0.x, r0, r0
    add r0.x, r0.x, -c80.x
    mul_sat_pp r0.x, r0.x, c80.z
    mul r0.x, r0.x, c80.w
    mul r0.x, r0.x, c3.z
    exp_pp r0.x, r0.x
    lrp_pp r4.xyz, r0.x, r2, c81
    if b0
      mul_pp r4.xyz, r4.w, r4
    endif
    mov_pp oC0, r4

// approximately 100 instruction slots used (7 texture, 93 arithmetic)
 