//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 MinZ_MaxZRatio;
//   sampler2D SceneColorTexture;
//   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                   c8       4
//   ShadowTexelSize                        c12      1
//   ShadowFadeFraction                     c13      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
    dcl_texcoord v0.xyw
    dcl_2d s0
    dcl_2d s1

def c220, 0, 1, 0.0625, 0.5
dcl_2d s15


// Unreal Engine shadow fix inserted with DarkStarSword's shadertool.py:
// shadertool.py -I ../../.. --auto-fix-unreal-shadows --stereo-sampler-ps=s15 -f E23A06AB.txt
texldl r31, c220.z, s15
mov r9.xyw, v0
add r31.w, r9.w, -r31.y
mad r9.x, r31.w, r31.x, r9.x

    rcp r0.x, r9.w
    mul r0.xy, r0.x, r9
    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
    mul r2, r0.y, c9

// Unreal Engine shadow fix inserted with DarkStarSword's shadertool.py:
// shadertool.py -I ../../.. --auto-fix-unreal-shadows --stereo-sampler-ps=s15 -f E23A06AB.txt
add r31.w, r0.z, -r31.y
mad r0.x, -r31.w, r31.x, r0.x

    mad r2, c8, r0.x, r2
    mad r0, c10, r0.z, r2
    add r0, r0, c11
    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, c12.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, c12
    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, c12.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, c12.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, c12.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, c12.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, c12.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, c12
    mul r6, r6, c12.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, c13.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)
