//
// Generated by Microsoft (R) D3DX9 Shader Compiler 
//
// Parameters:
//
//   float2 ShadowMapRes;
//   sampler2D s_EdgeBuffer;
//   sampler2D s_sceneDepth;
//   sampler2D s_shadowBuffer;
//   row_major float4x4 screenToShadowBuffer;
//   float4 shadowColor;
//   float shadowFadeDistance;
//   float shadowStrength;
//
//
// Registers:
//
//   Name                 Reg   Size
//   -------------------- ----- ----
//   screenToShadowBuffer c0       4
//   shadowStrength       c4       1
//   shadowColor          c5       1
//   shadowFadeDistance   c6       1
//   ShadowMapRes         c7       1
//   s_sceneDepth         s0       1
//   s_shadowBuffer       s1       1
//   s_EdgeBuffer         s2       1
//
//
// Default values:
//
//   screenToShadowBuffer
//     c0   = { 0, 0, 0, 0 };
//     c1   = { 0, 0, 0, 0 };
//     c2   = { 0, 0, 0, 0 };
//     c3   = { 0, 0, 0, 0 };
//
//   shadowStrength
//     c4   = { 0, 0, 0, 0 };
//
//   shadowColor
//     c5   = { 0, 0, 0, 0 };
//
//   shadowFadeDistance
//     c6   = { 0, 0, 0, 0 };
//
//   ShadowMapRes
//     c7   = { 0, 0, 0, 0 };
//

    ps_3_0
  def c200, 0.5, 0, 0.0625, 0
    def c8, 1, 0, -1, 2
    def c9, 0.25, 0.5, 0, 0
    dcl_texcoord v0.xyw
    dcl_texcoord1 v1
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
  dcl_2d s13
    texldp r0, v1, s0
    rcp r0.x, v0.w
    mul r0.xy, r0.x, v0
    mul r1.xy, r0.w, r0
  texldl r13, c200.z, s13	
  add r13.y, r0.w, -r13.y
  mul r13.x, r13.x, r13.y
  add r1.x, r1.x, -r13.x
    mad r1.zw, r0.w, c8.xyxy, c8.xyyx
    dp4 r0.x, c3, r1
    rcp r0.y, r0.x
    dp4 r2.z, c2, r1
    mad r0.z, r2.z, r0.y, c8.z
    rcp r0.w, c6.x
    mad_sat r0.z, r0.z, -r0.w, c8.x
    dp4 r2.x, c0, r1
    dp4 r2.y, c1, r1
    mov r1, r0.x
    texkill r1
    mul r1.xyz, r0.y, r2.zxyw
    texld_pp r3, r1.yzzw, s2
    cmp r0.x, -r3.x, c8.y, c8.x
    if_ne r0.x, -r0.x
      mov_sat r1.x, r1.x
      mul r0.xw, r1.yyzz, c7.x
      frc_pp r0.xw, r0
      mov r3, c8
      mul r4, r3.zwyx, c7.y
      mad r5.xy, r2, r0.y, r4.y
      mov r5.zw, c8.y
      texldl r5, r5, s1
      mov r5.w, r5.x
      mad r6.xy, r2, r0.y, r4
      mov r6.zw, c8.y
      texldl r6, r6, s1
      mov r5.x, r6.x
      mul r6, r3.ywxw, c7.y
      mad r7.xy, r2, r0.y, r6.zwzw
      mov r7.zw, c8.y
      texldl r7, r7, s1
      mad r8.xy, r2, r0.y, r6
      mov r8.zw, c8.y
      texldl r8, r8, s1
      mov r5.y, r8.x
      mov r5.z, r7.x
      add r5, -r1.x, r5
      cmp_pp r5, r5, c8.y, c8.x
      lrp_pp r7.xyz, r0.x, r5.yzww, r5
      dp3_pp r5.w, r7.xzyw, c9.xxyw
      mad r7.xy, r2, r0.y, r4.zwzw
      mov r7.zw, c8.y
      texldl r7, r7, s1
      mad r8.xy, r2, r0.y, -c7.y
      mov r8.zw, c8.y
      texldl r8, r8, s1
      mad r9.xy, r2, r0.y, r4.yxzw
      mov r9.zw, c8.y
      texldl r9, r9, s1
      mov r8.w, r9.x
      mov r9.zw, c8.y
      mov r10.zw, c8.y
      mul r3, r3.zyzx, c7.y
      mad r10.xy, r2, r0.y, r3.yxzw
      texldl r10, r10, s1
      mad r9.xy, r2, r0.y, r3.wzzw
      texldl r9, r9, s1
      mov r8.y, r10.x
      mov r8.z, r9.x
      add r8, -r1.x, r8
      cmp_pp r8, r8, c8.y, c8.x
      lrp_pp r7.yzw, r0.x, r8, r8.xxyz
      dp3_pp r5.x, r7.ywzw, c9.xxyw
      mad r8.xy, r2, r0.y, r3
      mov r8.zw, c8.y
      texldl r8, r8, s1
      mad r3.xy, r2, r0.y, r3.zwzw
      mad r4.xy, r2, r0.y, r4.wzzw
      mov r4.zw, c8.y
      texldl r4, r4, s1
      mov r3.zw, c8.y
      texldl r3, r3, s1
      mov r3.y, r7.x
      mad r7.xy, r2, r0.y, c7.y
      mov r7.zw, c8.y
      texldl r7, r7, s1
      mov r3.z, r7.x
      mov r7.zw, c8.y
      mad r7.xy, r2, r0.y, r6.yxzw
      texldl r7, r7, s1
      mad r2.xy, r2, r0.y, r6.wzzw
      mov r2.zw, c8.y
      texldl r2, r2, s1
      mov r3.w, r2.x
      add r2, -r1.x, r3
      cmp_pp r2, r2, c8.y, c8.x
      lrp_pp r3.xyz, r0.x, r2.yzww, r2
      dp3_pp r5.z, r3.xzyw, c9.xxyw
      mov r8.z, r4.x
      mov r8.w, r7.x
      mov r1.w, c8.y
      texldl r2, r1.yzww, s1
      mov r8.y, r2.x
      add r1, -r1.x, r8
      cmp_pp r1, r1, c8.y, c8.x
      lrp_pp r2.xyz, r0.x, r1.yzww, r1
      dp3_pp r5.y, r2.xzyw, c9.xxyw
      lrp_pp r1.xyz, r0.w, r5.yzww, r5
      dp3_pp r0.x, r1.xzyw, c9.xxyw
    else
      mov r0.x, c8.y
    endif
    mul_pp r0.x, r0.x, c4.x
    mul_pp r0.x, r0.z, r0.x
    mov r1.x, c8.x
    add r1, r1.x, -c5
    mad_pp oC0, r0.x, -r1, c8.x

// approximately 130 instruction slots used (34 texture, 96 arithmetic)
 