//SHADOWS FROM CHARACTER
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4x4 g_cameraToShadow;
//   float4x4 g_cameraToShadowProjector;
//   float4 g_sceneTextureSize;
//   float4 g_shadowCascadeColor;
//   float4 g_shadowFadeDistances;
//   float g_shadowPixelSize;
//   float4 g_shadowTextureSize;
//   sampler2D sceneSamplerDepth;
//   sampler2D shadowSampler;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   g_cameraToShadowProjector c0       4
//   g_cameraToShadow          c4       3
//   g_sceneTextureSize        c7       1
//   g_shadowTextureSize       c8       1
//   g_shadowCascadeColor      c9       1
//   g_shadowFadeDistances     c10      1
//   g_shadowPixelSize         c11      1
//   sceneSamplerDepth         s0       1
//   shadowSampler             s1       1
//
//
// Default values:
//
//   g_cameraToShadowProjector
//     c0   = { 0, 0, 0, 0 };
//     c1   = { 0, 0, 0, 0 };
//     c2   = { 0, 0, 0, 0 };
//     c3   = { 0, 0, 0, 0 };
//
//   g_cameraToShadow
//     c4   = { 0, 0, 0, 0 };
//     c5   = { 0, 0, 0, 0 };
//     c6   = { 0, 0, 0, 0 };
//
//   g_sceneTextureSize
//     c7   = { 0, 0, 0, 0 };
//
//   g_shadowTextureSize
//     c8   = { 0, 0, 0, 0 };
//
//   g_shadowCascadeColor
//     c9   = { 0, 0, 0, 0 };
//
//   g_shadowFadeDistances
//     c10  = { 0, 0, 0, 0 };
//
//   g_shadowPixelSize
//     c11  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c12, 0.5, 0, 2.5, 1
    def c13, -1.99999995e-005, 0.0833333358, -1, 0
    def c14, -0.0174499992, 1.68314505, -1.26170254, 1.44229996
    def c15, -1.04089749, -0.65644753, 0.868130028, 0.508212507
    def c16, -0.142492503, -1.77057254, 1.15585494, 1.6522975
    def c17, 0.904980004, -1.16333497, 2.00254989, 0.180197507
    def c18, -0.41099, 0.400737494, -1.65660751, -1.73220503
    def c19, 2.16099238, -1.08537996, -2.46827006, -0.123702496
def c220, 1, 0.835, 0.0625, 0.5
dcl_2d s15
    dcl_texcoord v0.xyz
dcl_texcoord2 v3.xyz					//shifted bersion of v0, from VS A66921A2

    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
	
    rcp r0.x, v0.z
    mul r0.xyz, r0.x, v3

rcp r10.x, v0.z
mul r10.xyz, r10.x, v0
	
    add r1.xy, c12.x, vPos
    mul r1.xy, r1, c7.zwzw
    mov r1.zw, c12.y
    texldl r1, r1, s0
    mul r0.xyz, r0, -r1.x
    mov r1.z, c12.z
    mad r1.x, c11.x, -r1.z, r1.x
    rcp r1.y, r0.z
    mul r1.yzw, r0.xxyz, r1.y
    mul r1.xyz, -r1.x, r1.yzww
    mov r1.w, c12.w
    dp4 r2.x, r1, c3
    rcp r2.x, r2.x
	
texldl r24, c220.z, s15
add r24.y, -r1.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r1.x, r1.x, -r24.x	

    dp4 r3.x, r1, c0
    dp4 r3.y, r1, c1
    dp4 r3.z, r1, c2
    mul r1.xyz, r2.x, r3.zxyw
    mov_sat r1.x, r1.x
    add r2.z, r1.x, c13.x
    mov r3.zw, c8
    mad r4, r3.zwzw, c14, r1.yzyz
    mul r2.xyw, r4.xyzx, c12.wwzy
    mul r4.xyw, r4.zwzx, c12.wwzy
    texldl r5, r2, s1
    mov r4.z, r2.z
    texldl r2, r4, s1
    add r1.x, r2.x, r5.x
    mad r2, r3.zwzw, c15.zwxy, r1.yzyz
    mov r4.xy, r2.zwzw
    texldl r5, r4, s1
    mov r2.zw, r4
    add r1.x, r1.x, r5.x
    texldl r4, r2, s1
    add r1.x, r1.x, r4.x
    mad r4, r3.zwzw, c16.zwxy, r1.yzyz
    mov r2.xy, r4.zwzw
    texldl r5, r2, s1
    mov r4.zw, r2
    add r1.x, r1.x, r5.x
    texldl r2, r4, s1
    add r1.x, r1.x, r2.x
    mad r2, r3.zwzw, c17.zwxy, r1.yzyz
    mov r4.xy, r2.zwzw
    texldl r5, r4, s1
    mov r2.zw, r4
    add r1.x, r1.x, r5.x
    texldl r4, r2, s1
    add r1.x, r1.x, r4.x
    mad r4, r3.zwzw, c18.zwxy, r1.yzyz
    mad r3, r3.zwzw, c19.zwxy, r1.yzyz
    mov r2.xy, r4.zwzw
    texldl r5, r2, s1
    mov r4.zw, r2
    add r1.x, r1.x, r5.x
    texldl r2, r4, s1
    add r1.x, r1.x, r2.x
    mov r4.xy, r3.zwzw
    texldl r2, r4, s1
    mov r3.zw, r4
    texldl r3, r3, s1
    add r1.x, r1.x, r2.x
    add r1.x, r3.x, r1.x
    mad r1.x, r1.x, c13.y, c13.z
    mov r0.w, c12.w
    dp4 r0.x, r0, c6				//Not sure if need to correct r0 ??
    add r0.x, -r0.x, -c10.y
    add r0.y, -c10.y, c10.x
    rcp r0.y, r0.y
    mul_sat r0.x, r0.y, r0.x
    mad r0.x, r0.x, r1.x, c12.w
    add r0.yzw, -r0.x, c9.xxyz
    mad oC0.xyz, c9.w, r0.yzww, r0.x
    mov oC0.w, c12.w

// approximately 88 instruction slots used (26 texture, 62 arithmetic)
 