//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 MinZ_MaxZRatio;
//   float4 SampleOffsets[8];
//   sampler2D SceneColorTexture;
//   float4 ScreenPositionScaleBias;
//   float4x4 ScreenToShadowMatrix;
//   float3 ShadowBufferSizeAndSoftTransitionScale;
//   sampler2D ShadowDepthTexture;
//   float4 ShadowModulateColor;
//
//
// Registers:
//
//   Name                                   Reg   Size
//   -------------------------------------- ----- ----
//   ShadowModulateColor                    c0       1
//   ScreenPositionScaleBias                c1       1
//   MinZ_MaxZRatio                         c2       1
//   SampleOffsets                          c8       8
//   ScreenToShadowMatrix                   c16      4
//   ShadowBufferSizeAndSoftTransitionScale c20      1
//   SceneColorTexture                      s0       1
//   ShadowDepthTexture                     s1       1
//

    ps_3_0
    def c3, 0, 1, 0.999000013, 0.0625
    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 4C85FB57.txt
texldl r31, c220.z, s15
mov r7.xyw, v0
add r31.w, r7.w, -r31.y
mad r7.x, r31.w, r31.x, r7.x

    rcp r0.x, r7.w
    mul r0.xy, r0.x, r7
    mad r1.xy, r0, c1, c1.wzzw
    mov r1.zw, c3.x
    texldl r1, r1, s0
    mov r1.y, c3.y
    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, c17

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

    mad r2, c16, r0.x, r2
    mad r0, c18, r0.z, r2
    add r0, r0, c19
    rcp r0.w, r0.w
    mad_pp r2, r0.xyxy, r0.w, c8
    mul r3, r2, c20.xyxy
    frc_pp r3, r3
    texld_pp r4, r2, s1
    texld_pp r2, r2.zwzw, s1
    min r1.x, r0.z, c3.z
    add r4, -r4.wxyz, r1.x
    cmp_pp r4, r4.zwxy, c3.x, c3.y
    mov_pp r5.xy, r4.zwzw
    add r2, -r2.wxyz, r1.x
    cmp_pp r2, r2, c3.x, c3.y
    mov_pp r5.zw, r2.xyxy
    mov_pp r4.zw, r2
    lrp_pp r2, r3.yyww, r4, r5
    lrp_pp r4.xy, r3.xzzw, r2.ywzw, r2.xzzw
    mad_pp r2, r0.xyxy, r0.w, c9
    mul r3, r2, c20.xyxy
    frc_pp r3, r3
    texld_pp r5, r2, s1
    texld_pp r2, r2.zwzw, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2, c3.x, c3.y
    add r5, r1.x, -r5.wxyz
    cmp_pp r5, r5.zwxy, c3.x, c3.y
    mov_pp r6.xy, r5.zwzw
    mov_pp r6.zw, r2.xyxy
    mov_pp r5.zw, r2
    lrp_pp r2, r3.yyww, r5, r6
    lrp_pp r4.zw, r3.xyxz, r2.xyyw, r2.xyxz
    dp4_pp r0.z, r4, c3.w
    mad_pp r2, r0.xyxy, r0.w, c10
    mul r3, r2, c20.xyxy
    frc_pp r3, r3
    texld_pp r4, r2, s1
    texld_pp r2, r2.zwzw, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2, c3.x, c3.y
    add r4, r1.x, -r4.wxyz
    cmp_pp r4, r4.zwxy, c3.x, c3.y
    mov_pp r5.xy, r4.zwzw
    mov_pp r5.zw, r2.xyxy
    mov_pp r4.zw, r2
    lrp_pp r2, r3.yyww, r4, r5
    lrp_pp r4.xy, r3.xzzw, r2.ywzw, r2.xzzw
    mad_pp r2, r0.xyxy, r0.w, c11
    mul r3, r2, c20.xyxy
    frc_pp r3, r3
    texld_pp r5, r2, s1
    texld_pp r2, r2.zwzw, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2, c3.x, c3.y
    add r5, r1.x, -r5.wxyz
    cmp_pp r5, r5.zwxy, c3.x, c3.y
    mov_pp r6.xy, r5.zwzw
    mov_pp r6.zw, r2.xyxy
    mov_pp r5.zw, r2
    lrp_pp r2, r3.yyww, r5, r6
    lrp_pp r4.zw, r3.xyxz, r2.xyyw, r2.xyxz
    dp4_pp r1.z, r4, c3.w
    add_pp r0.z, r0.z, r1.z
    mad_pp r2, r0.xyxy, r0.w, c12
    mul r3, r2, c20.xyxy
    frc_pp r3, r3
    texld_pp r4, r2, s1
    texld_pp r2, r2.zwzw, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2, c3.x, c3.y
    add r4, r1.x, -r4.wxyz
    cmp_pp r4, r4.zwxy, c3.x, c3.y
    mov_pp r5.xy, r4.zwzw
    mov_pp r5.zw, r2.xyxy
    mov_pp r4.zw, r2
    lrp_pp r2, r3.yyww, r4, r5
    lrp_pp r4.xy, r3.xzzw, r2.ywzw, r2.xzzw
    mad_pp r2, r0.xyxy, r0.w, c13
    mul r3, r2, c20.xyxy
    frc_pp r3, r3
    texld_pp r5, r2, s1
    texld_pp r2, r2.zwzw, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2, c3.x, c3.y
    add r5, r1.x, -r5.wxyz
    cmp_pp r5, r5.zwxy, c3.x, c3.y
    mov_pp r6.xy, r5.zwzw
    mov_pp r6.zw, r2.xyxy
    mov_pp r5.zw, r2
    lrp_pp r2, r3.yyww, r5, r6
    lrp_pp r4.zw, r3.xyxz, r2.xyyw, r2.xyxz
    dp4_pp r1.z, r4, c3.w
    add_pp r0.z, r0.z, r1.z
    mad_pp r2, r0.xyxy, r0.w, c14
    mad_pp r3, r0.xyxy, r0.w, c15
    mul r4, r2, c20.xyxy
    frc_pp r4, r4
    texld_pp r5, r2, s1
    texld_pp r2, r2.zwzw, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2, c3.x, c3.y
    add r5, r1.x, -r5.wxyz
    cmp_pp r5, r5.zwxy, c3.x, c3.y
    mov_pp r6.xy, r5.zwzw
    mov_pp r6.zw, r2.xyxy
    mov_pp r5.zw, r2
    lrp_pp r2, r4.yyww, r5, r6
    lrp_pp r5.xy, r4.xzzw, r2.ywzw, r2.xzzw
    texld_pp r2, r3, s1
    add r2, r1.x, -r2.wxyz
    cmp_pp r2, r2.zwxy, c3.x, c3.y
    mov_pp r4.xy, r2.zwzw
    texld_pp r6, r3.zwzw, s1
    mul r3, r3, c20.xyxy
    frc_pp r3, r3
    add r6, r1.x, -r6.wxyz
    cmp_pp r6, r6, c3.x, c3.y
    mov_pp r4.zw, r6.xyxy
    mov_pp r2.zw, r6
    lrp_pp r6, r3.yyww, r2, r4
    lrp_pp r5.zw, r3.xyxz, r6.xyyw, r6.xyxz
    dp4_pp r0.x, r5, c3.w
    add_pp r0.x, r0.x, r0.z
    mul r0.x, r0.x, r0.x
    add r1, r1.y, -c0
    mad oC0, r0.x, r1, c0

// approximately 140 instruction slots used (18 texture, 122 arithmetic)
