//   float4 ScreenPositionScaleBias;
//   float4x4 ScreenToShadowMatrix;
//   float3 ShadowBufferSizeAndSoftTransitionScale;
//   sampler2D ShadowDepthTexture;
//   float ShadowFadeFraction;
//   float2 ShadowTexelSize;
//
//
// Registers:
//
//   Name                                   Reg   Size
//   -------------------------------------- ----- ----
//   ShadowBufferSizeAndSoftTransitionScale c0       1
//   ScreenPositionScaleBias                c1       1
//   MinZ_MaxZRatio                         c2       1
//   ScreenToShadowMatrix                   c9       4
//   ShadowTexelSize                        c13      1
//   ShadowFadeFraction                     c14      1
//   SceneColorTexture                      s0       1
//   ShadowDepthTexture                     s1       1
//

    ps_3_0
    def c3, 0, 1, -1, -0.999000013
    def c4, 1, 0, 2, 3
    def c5, 0.111110002, 0, 0, 0
   def c200, 0.0, 0.5, 0.0625, 0 
    dcl_texcoord v0.xyw
    dcl_2d s0
    dcl_2d s1
   dcl_2d s14
    mov r16.xyw,  v0
    texldl r11, c200.z, s14
    add r11.y, r16.w, -r11.y
    mul r11.x, r11.x, r11.y
    add r16.x, r16.x, r11.x
    rcp r0.x,r16.w
    mul r0.xy, r0.x,r16
    mad r1.xy, r0, c1, c1.wzzw
    mov r1.zw, c3.x
    texldl r1, r1, s0
    mov r1.yz, c3
    add r0.z, r1.y, -c2.y
    add r0.z, -r0.z, r1.w
    rcp r0.z, r0.z
    mul r0.z, r0.z, -c2.x
    mul r0.xy, r0.z, r0
    texldl r11, c200.z, s14
    add r11.y,  r0.z, -r11.y
    mul r11.x, r11.x, r11.y
    add  r0.x,  r0.x, -r11.x
    mul r2, r0.y, c10
    mad r2, c9, r0.x, r2
    mad r0, c11, r0.z, r2
    add r0, r0, c12
    rcp r0.w, r0.w
    mul r0.xy, r0.w, r0
    max r1.x, c3.w, -r0.z
    mul r0.zw, r0.xyxy, c0.xyxy
    mad r0.xy, r0, c0, r1.z
    frc r0.zw, r0
    add r0.xy, -r0.zwzw, r0
    add r2, r0.xyxy, c4.wyyx
    mul r2, r2, c13.xyxy
    mul r3, r2.zwxx, c3.yyxx
    mul r2, r2.xyxx, c3.yyxx
    texldl r2, r2, s1
    add r1.z, r1.x, r2.x
    mad_sat r2.x, r1.z, c0.z, r1.y
    texldl r3, r3, s1
    add r1.z, r1.x, r3.x
    mad_sat r3.y, r1.z, c0.z, r1.y
    mov r4.zw, c3.x
    mul r4.xy, r0, c13
    texldl r4, r4, s1
    add r1.z, r1.x, r4.x
    mad_sat r3.x, r1.z, c0.z, r1.y
    add r4, r0.xyxy, c4.xyzy
    mul r4, r4, c13.xyxy
    mul r5, r4.xyxx, c3.yyxx
    mul r4, r4.zwxx, c3.yyxx
    texldl r4, r4, s1
    add r1.z, r1.x, r4.x
    mad_sat r4.x, r1.z, c0.z, r1.y
    texldl r5, r5, s1
    add r1.z, r1.x, r5.x
    mad_sat r5.x, r1.z, c0.z, r1.y
    add r6, r0.xyxy, c4.xxzx
    mul r6, r6, c13.xyxy
    mul r7, r6.xyxx, c3.yyxx
    mul r6, r6.zwxx, c3.yyxx
    texldl r6, r6, s1
    add r1.z, r1.x, r6.x
    mad_sat r4.y, r1.z, c0.z, r1.y
    texldl r6, r7, s1
    add r1.z, r1.x, r6.x
    mad_sat r5.y, r1.z, c0.z, r1.y
    add r6, r0.xyxy, c4.wxyz
    mul r6, r6, c13.xyxy
    mul r7, r6.zwxx, c3.yyxx
    mul r6, r6.xyxx, c3.yyxx
    texldl r6, r6, s1
    add r1.z, r1.x, r6.x
    mad_sat r2.y, r1.z, c0.z, r1.y
    texldl r6, r7, s1
    add r1.z, r1.x, r6.x
    mad_sat r3.z, r1.z, c0.z, r1.y
    add r6, r0.xyxy, c4.xzzz
    mul r6, r6, c13.xyxy
    mul r7, r6.xyxx, c3.yyxx
    mul r6, r6.zwxx, c3.yyxx
    texldl r6, r6, s1
    add r1.z, r1.x, r6.x
    mad_sat r4.z, r1.z, c0.z, r1.y
    texldl r6, r7, s1
    add r1.z, r1.x, r6.x
    mad_sat r5.z, r1.z, c0.z, r1.y
    lrp r6, r0.z, r5.xyyz, r3.xyyz
    lrp r7, r0.z, r4.xyyz, r5.xyyz
    lrp r1.zw, r0.w, r7.xyyw, r7.xyxz
    lrp r3.xy, r0.w, r6.ywzw, r6.xzzw
    add r1.z, r1.z, r3.x
    add r6, r0.xyxy, c4.wzyw
    mul r6, r6, c13.xyxy
    mul r7, r6.xyxx, c3.yyxx
    mul r6, r6.zwxx, c3.yyxx
    texldl r6, r6, s1
    add r3.x, r1.x, r6.x
    mad_sat r3.w, r3.x, c0.z, r1.y
    texldl r6, r7, s1
    add r3.x, r1.x, r6.x
    mad_sat r2.z, r3.x, c0.z, r1.y
    lrp r6, r0.z, r2.xyyz, r4.xyyz
    lrp r2.xy, r0.w, r6.ywzw, r6.xzzw
    add r1.z, r1.z, r2.x
    add r1.z, r3.y, r1.z
    add r1.z, r1.w, r1.z
    add r1.z, r2.y, r1.z
    add r6, r0.xyxy, c4.xwzw
    add r0.xy, r0, c4.w
    mul r7.xy, r0, c13
    mul r6, r6, c13.xyxy
    mul r8, r6.xyxx, c3.yyxx
    mul r6, r6.zwxx, c3.yyxx
    texldl r6, r6, s1
    add r0.x, r1.x, r6.x
    mad_sat r4.w, r0.x, c0.z, r1.y
    texldl r6, r8, s1
    add r0.x, r1.x, r6.x
    mad_sat r5.w, r0.x, c0.z, r1.y
    lrp r2.xy, r0.z, r5.zwzw, r3.zwzw
    lrp r3.xy, r0.z, r4.zwzw, r5.zwzw
    lrp r1.w, r0.w, r3.y, r3.x
    lrp r3.x, r0.w, r2.y, r2.x
    add r0.x, r1.z, r3.x
    add r0.x, r1.w, r0.x
    mov r7.zw, c3.x
    texldl r3, r7, s1
    add r0.y, r1.x, r3.x
    mad_sat r2.w, r0.y, c0.z, r1.y
    lrp r1.xz, r0.z, r2.zyww, r4.zyww
    lrp r2.x, r0.w, r1.z, r1.x
    add r0.x, r0.x, r2.x
    mul_sat_pp r0.x, r0.x, c5.x
    mad r0.x, r0.x, r0.x, c3.z
    mad_pp r0.x, c14.x, r0.x, r1.y
    rsq_pp r0.x, r0.x
    rcp_pp oC0, r0.x

// approximately 145 instruction slots used (34 texture, 111 arithmetic)