//
// Generated by Microsoft (R) D3DX9 Shader Compiler 9.15.779.0000
//
// Parameters:
//
//   float FalloffExponent;
//   float4 LightPosition;
//   float4 SampleOffsets[8];
//   sampler2D SceneColorTexture;
//   float4 ScreenPositionScaleBias;
//   float4x4 ScreenToShadowMatrix;
//   float4x4 ScreenToWorld;
//   sampler2D ShadowDepthTexture;
//   float4 ShadowModulateColor;
//   float2 SpotAngles;
//   float3 SpotDirection;
//
//
// Registers:
//
//   Name                    Reg   Size
//   ----------------------- ----- ----
//   ShadowModulateColor     c0       1
//   ScreenPositionScaleBias c1       1
//   SampleOffsets           c2       8
//   ScreenToWorld           c10      4
//   ScreenToShadowMatrix    c14      4
//   LightPosition           c18      1
//   FalloffExponent         c19      1
//   SpotDirection           c20      1
//   SpotAngles              c21      1
//   SceneColorTexture       s0       1
//   ShadowDepthTexture      s1       1
//

    ps_3_0
    def c22, 0.999000013, 1, 0, 0.0625
  def c200, 0.5, 0, 0.0625, 0
  dcl_2d s13
    dcl_texcoord v0.xyw
    dcl_2d s0
    dcl_2d s1
    rcp r0.w, v0.w
    mul r0.xy, r0.w, v0
    mad r1.xy, r0, c1, c1.wzzw
    texld_pp r1, r1, s0
    mul r5.xy, r0, r1.w
    mul r0, r5.y, c15
  texldl r16, c200.z, s13
  add r16.y, r1.w, -r16.y
  mul r16.x, r16.x, r16.y
  add r5.x, r5.x, -r16.x
    mad r0, c14, r5.x, r0
    mad r0, c16, r1.w, r0
    add r0, r0, c17
    rcp r0.w, r0.w
    min r3.z, r0.z, c22.x
    mad_pp r2, r0.xyxy, r0.w, c2
    mad_pp r3.xyw, r2.xyzx, c22.yyzz, c22.zzzy
    mad_pp r4.xyw, r2.zwzx, c22.yyzz, c22.zzzy
    texldp_pp r2, r3, s1
    mov r4.z, r3.z
    texldp_pp r3, r4, s1
    mov r3.zw, r4
    add_pp r0.z, r2.x, r3.x
    mad_pp r4, r0.xyxy, r0.w, c3.zwxy
    mov_pp r3.xy, r4.zwzw
    texldp_pp r2, r3, s1
    mov r4.zw, r3
    add_pp r0.z, r0.z, r2.x
    texldp_pp r2, r4, s1
    add_pp r0.z, r0.z, r2.x
    mad_pp r3, r0.xyxy, r0.w, c4.zwxy
    mov_pp r4.xy, r3.zwzw
    texldp_pp r2, r4, s1
    mov r3.zw, r4
    add_pp r0.z, r0.z, r2.x
    texldp_pp r2, r3, s1
    add_pp r0.z, r0.z, r2.x
    mad_pp r4, r0.xyxy, r0.w, c5.zwxy
    mov_pp r3.xy, r4.zwzw
    texldp_pp r2, r3, s1
    mov r4.zw, r3
    add_pp r0.z, r0.z, r2.x
    texldp_pp r2, r4, s1
    add_pp r0.z, r0.z, r2.x
    mad_pp r3, r0.xyxy, r0.w, c6.zwxy
    mov_pp r4.xy, r3.zwzw
    texldp_pp r2, r4, s1
    mov r3.zw, r4
    add_pp r0.z, r0.z, r2.x
    texldp_pp r2, r3, s1
    add_pp r0.z, r0.z, r2.x
    mad_pp r4, r0.xyxy, r0.w, c7.zwxy
    mov_pp r3.xy, r4.zwzw
    texldp_pp r2, r3, s1
    mov r4.zw, r3
    add_pp r0.z, r0.z, r2.x
    texldp_pp r2, r4, s1
    add_pp r1.z, r0.z, r2.x
    mad_pp r3, r0.xyxy, r0.w, c8.zwxy
    mad_pp r0, r0.xyxy, r0.w, c9.zwxy
    mov_pp r4.xy, r3.zwzw
    texldp_pp r2, r4, s1
    mov r3.zw, r4
    add_pp r1.z, r1.z, r2.x
    texldp_pp r2, r3, s1
    add_pp r1.z, r1.z, r2.x
    mov_pp r3.xy, r0.zwzw
    texldp_pp r2, r3, s1
    mov r0.zw, r3
    add_pp r2.w, r1.z, r2.x
    texldp_pp r0, r0, s1
    mul r1.xyz, r5.y, c11
    mad r1.xyz, c10, r5.x, r1
    mad r1.xyz, c12, r1.w, r1
    add r1.xyz, r1, c13
    add r1.xyz, -r1, c18
    mul r1.xyz, r1, c18.w
    dp3 r0.z, r1, r1
    rsq r0.w, r0.z
    mul r1.xyz, r1, r0.w
    dp3 r0.w, r1, -c20
    add_pp r1.z, r2.w, r0.x
    add r0.w, r0.w, -c21.x
    add_sat r1.w, -r0.z, c22.y
    mul_sat r0.w, r0.w, c21.y
    mul r0.z, r0.w, r0.w
    pow r0.w, r1.w, c19.x
    mul_pp r1.w, r0.z, r0.w
    mov r0.z, c22.y
    add r0, -r0.z, c0
    mul_pp r2.w, r1.z, c22.w
    mad r1, r1.w, r0, c22.y
    mul r2.w, r2.w, r2.w
    add r0, -r1, c22.y
    mad_pp oC0, r2.w, r0, r1

// approximately 93 instruction slots used (17 texture, 76 arithmetic)
 

