//Shadows
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4x4 g_cameraToSpotProjector;
//   float4 g_lightColor;
//   float4 g_lightProperties;
//   float4 g_pointLightFactors;
//   float4 g_sceneTextureSize;
//   float g_shadowAlpha;
//   float g_shadowPixelSize;
//   float4 g_shadowTextureSize;
//   float4x4 g_worldView;
//   float4x4 g_worldViewInverse;
//   sampler2D sceneSampler0;
//   sampler2D sceneSamplerDepth;
//   sampler2D sceneSamplerNormal;
//   sampler2D sceneSamplerSpecular;
//   sampler2D shadowSampler;
//   sampler2D spotProjectorSampler;
//
//
// Registers:
//
//   Name                    Reg   Size
//   ----------------------- ----- ----
//   g_cameraToSpotProjector c0       4
//   g_worldView             c4       3
//   g_worldViewInverse      c7       3
//   g_sceneTextureSize      c10      1
//   g_pointLightFactors     c11      1
//   g_lightColor            c12      1
//   g_lightProperties       c13      1
//   g_shadowTextureSize     c14      1
//   g_shadowAlpha           c15      1
//   g_shadowPixelSize       c16      1
//   sceneSampler0           s0       1
//   sceneSamplerNormal      s1       1
//   sceneSamplerDepth       s2       1
//   sceneSamplerSpecular    s3       1
//   spotProjectorSampler    s4       1
//   shadowSampler           s5       1
//
//
// Default values:
//
//   g_cameraToSpotProjector
//     c0   = { 0, 0, 0, 0 };
//     c1   = { 0, 0, 0, 0 };
//     c2   = { 0, 0, 0, 0 };
//     c3   = { 0, 0, 0, 0 };
//
//   g_worldView
//     c4   = { 0, 0, 0, 0 };
//     c5   = { 0, 0, 0, 0 };
//     c6   = { 0, 0, 0, 0 };
//
//   g_worldViewInverse
//     c7   = { 0, 0, 0, 0 };
//     c8   = { 0, 0, 0, 0 };
//     c9   = { 0, 0, 0, 0 };
//
//   g_sceneTextureSize
//     c10  = { 0, 0, 0, 0 };
//
//   g_pointLightFactors
//     c11  = { 0, 0, 0, 0 };
//
//   g_lightColor
//     c12  = { 0, 0, 0, 0 };
//
//   g_lightProperties
//     c13  = { 1, 1, 1, 1 };
//
//   g_shadowTextureSize
//     c14  = { 0, 0, 0, 0 };
//
//   g_shadowAlpha
//     c15  = { 0, 0, 0, 0 };
//
//   g_shadowPixelSize
//     c16  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c17, 7.21347523, 6, 9.99999997e-007, 1
    def c18, 0.5, 0, 10, 1
    def c19, 2, -1, 2.5, -1.99999995e-005
    def c20, 0.0833333358, -1, 1.5, 1.25
    def c21, 0.125, 0, 0, 0
    def c22, -0.0174499992, 1.68314505, -1.26170254, 1.44229996
    def c23, -1.04089749, -0.65644753, 0.868130028, 0.508212507
    def c24, -0.142492503, -1.77057254, 1.15585494, 1.6522975
    def c25, 0.904980004, -1.16333497, 2.00254989, 0.180197507
    def c26, -0.41099, 0.400737494, -1.65660751, -1.73220503
    def c27, 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_texcoord1 v1.xyz
dcl_texcoord2 v3.xyz					//shifted bersion of v0, from VS A66921A2

    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    mov r0.x, -c4.z
    mov r0.y, -c5.z
    mov r0.z, -c6.z
    nrm r1.xyz, r0
    add r0.xy, c18.x, vPos
    mul r0.xy, r0, c10.zwzw
    mov r0.zw, c18.y
    texldl r2, r0.xyww, s1
    mad r3.xyz, r2.xyxw, c18.wwyw, c18.yyww
    dp3 r1.w, r3, r3
    rcp r1.w, r1.w
    add r2.z, r1.w, r1.w
    mad r3.z, r1.w, c19.x, c19.y
    mul r3.xy, r2.z, r2
    dp3_sat r1.w, r3, r1

	rcp r2.x, v3.z 
    mul r2.xyz, r2.x, v3 

    texldl r4, r0.xyww, s2
    mul r5.xyz, r2, -r4.x
    mad r2.xyz, r2, r4.x, v1

texldl r24, c220.z, s15
add r24.y, -r5.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 

add r5.x, r5.x, -r24.x					//Must be negative
add r2.x, r2.x, r24.x					//Must be positive

    dp3 r2.x, -r2, c9
    add_sat r2.x, -r2.x, c18.w
    pow r3.w, r2.x, c13.y
    mul r2.xyz, r3.w, c12
    dp3 r2.w, -r5, -r5
    rsq r2.w, r2.w
    mul r4.yzw, r2.w, -r5.xxyz
    mad r6.xyz, -r5, r2.w, r1
    nrm r7.xyz, r6
    dp3 r2.w, r3, r4.yzww
    dp3_sat r3.x, r3, r7
    dp3 r1.x, r7, r1
    max r3.y, r1.w, r2.w
    mad r1.x, r3.y, r1.x, c17.z
    rcp r1.x, r1.x
    texldl r6, r0, s3
    texldl r0, r0.xyww, s0
    mul r1.y, r6.w, c13.z
    mul r1.y, r1.y, c11.y
    mul r1.y, r1.y, c17.x
    exp r1.y, r1.y
    mul r1.z, r1.y, c17.y
    mad r1.y, r1.y, c17.y, c17.w
    pow r2.w, r3.x, r1.z
    mul r1.y, r1.y, r2.w
    mul r1.x, r1.x, r1.y
    mul r1.x, r1.w, r1.x
    pow r2.w, r1.w, c20.z
    mul r1.y, r2.w, c20.w
    mul r1.x, r1.x, c21.x
    mov r5.w, c18.w
    dp4 r1.z, r5, c3
    rcp r1.z, r1.z
    dp4 r3.x, r5, c0
    dp4 r3.y, r5, c1
    mul r1.zw, r1.z, r3.xyxy
    texld r3, r1.zwzw, s4
    mul r2.xyz, r2, r3
    mul r1.xzw, r1.x, r2.xyyz
    mul r2.xyz, r1.y, r2
    mul r1.xyz, r6, r1.xzww
    rcp r1.w, r5.z
    mul r3.xyz, r1.w, r5
    mov r4.z, c19.z
    mad r1.w, c16.x, -r4.z, r4.x
    mov oC0.w, r4.x
    mul r3.xyz, -r1.w, r3
    mov r3.w, c18.w
    dp4 r1.w, r3, c3
    rcp r1.w, r1.w
    dp4 r4.x, r3, c0
    dp4 r4.y, r3, c1
    dp4 r4.z, r3, c2
    mul r3.xyz, r1.w, r4.zxyw
    mov_sat r3.x, r3.x
    add r4.z, r3.x, c19.w
    mov r5.zw, c14
    mad r6, r5.zwzw, c22, r3.yzyz
    mul r4.xyw, r6.xyzx, c18.wwzy
    mul r6.xyw, r6.zwzx, c18.wwzy
    texldl r7, r4, s5
    mov r6.z, r4.z
    texldl r4, r6, s5
    add r1.w, r4.x, r7.x
    mad r4, r5.zwzw, c23.zwxy, r3.yzyz
    mov r6.xy, r4.zwzw
    texldl r7, r6, s5
    mov r4.zw, r6
    add r1.w, r1.w, r7.x
    texldl r6, r4, s5
    add r1.w, r1.w, r6.x
    mad r6, r5.zwzw, c24.zwxy, r3.yzyz
    mov r4.xy, r6.zwzw
    texldl r7, r4, s5
    mov r6.zw, r4
    add r1.w, r1.w, r7.x
    texldl r4, r6, s5
    add r1.w, r1.w, r4.x
    mad r4, r5.zwzw, c25.zwxy, r3.yzyz
    mov r6.xy, r4.zwzw
    texldl r7, r6, s5
    mov r4.zw, r6
    add r1.w, r1.w, r7.x
    texldl r6, r4, s5
    add r1.w, r1.w, r6.x
    mad r6, r5.zwzw, c26.zwxy, r3.yzyz
    mad r3, r5.zwzw, c27.zwxy, r3.yzyz
    mov r4.xy, r6.zwzw
    texldl r5, r4, s5
    mov r6.zw, r4
    add r1.w, r1.w, r5.x
    texldl r4, r6, s5
    add r1.w, r1.w, r4.x
    mov r6.xy, r3.zwzw
    texldl r4, r6, s5
    mov r3.zw, r6
    texldl r3, r3, s5
    add r1.w, r1.w, r4.x
    add r1.w, r3.x, r1.w
    mad r1.w, r1.w, c20.x, c20.y
    mov r2.w, c18.w
    mad r1.w, c15.x, r1.w, r2.w
    mul r1.xyz, r1.w, r1
    mul r1.xyz, r1, c11.x
    mov_sat r0.w, r0.w
    mul r0.w, r0.w, r0.w
    mad r0.w, r0.w, -c18.z, c18.w
    mul r0.xyz, r0.w, r0
    cmp r0.xyz, r0.w, r0, c18.y
    mul r0.xyz, r0, r2
    mad oC0.xyz, r0, r1.w, r1

// approximately 157 instruction slots used (33 texture, 124 arithmetic)
 