//
// 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_worldViewInverse;
//   sampler2D sceneSampler0;
//   sampler2D sceneSamplerDepth;
//   sampler2D sceneSamplerNormal;
//   sampler2D sceneSamplerSpecular;
//   sampler2D shadowSampler;
//   sampler2D spotProjectorSampler;
//
//
// Registers:
//
//   Name                    Reg   Size
//   ----------------------- ----- ----
//   g_cameraToSpotProjector c0       4
//   g_worldViewInverse      c4       3
//   g_sceneTextureSize      c7       1
//   g_pointLightFactors     c8       1
//   g_lightColor            c9       1
//   g_lightProperties       c10      1
//   g_shadowTextureSize     c11      1
//   g_shadowAlpha           c12      1
//   g_shadowPixelSize       c13      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_worldViewInverse
//     c4   = { 0, 0, 0, 0 };
//     c5   = { 0, 0, 0, 0 };
//     c6   = { 0, 0, 0, 0 };
//
//   g_sceneTextureSize
//     c7   = { 0, 0, 0, 0 };
//
//   g_pointLightFactors
//     c8   = { 0, 0, 0, 0 };
//
//   g_lightColor
//     c9   = { 0, 0, 0, 0 };
//
//   g_lightProperties
//     c10  = { 1, 1, 1, 1 };
//
//   g_shadowTextureSize
//     c11  = { 0, 0, 0, 0 };
//
//   g_shadowAlpha
//     c12  = { 0, 0, 0, 0 };
//
//   g_shadowPixelSize
//     c13  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c14, 7.21347523, 6, 9.99999997e-007, 1
    def c15, 0.5, 0, 10, 1
    def c16, 2, -1, 2.5, -1.99999995e-005
    def c17, 0.25, 0.0833333358, 1.5, 1.25
    def c18, 0.125, 0, 0, 0
    def c19, -0.0174499992, 1.68314505, -1.26170254, 1.44229996
    def c20, -1.04089749, -0.65644753, 0.868130028, 0.508212507
    def c21, -0.142492503, -1.77057254, 1.15585494, 1.6522975
    def c22, 0.904980004, -1.16333497, 2.00254989, 0.180197507
    def c23, -0.41099, 0.400737494, -1.65660751, -1.73220503
    def c24, 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
    add r0.xy, c15.x, vPos
    mul r0.xy, r0, c7.zwzw
    mov r0.zw, c15.y
    texldl r1, r0.xyww, s0
    texldl r2, r0.xyww, s1
    texldl r3, r0.xyww, s2
    texldl r0, r0, s3
    mov_sat r1.w, r1.w
    mul r1.w, r1.w, r1.w
    mad r1.w, r1.w, -c15.z, c15.w
    mul r1.xyz, r1.w, r1
    cmp r1.xyz, r1.w, r1, c15.y
    mad r3.yzw, r2.xxyx, c15.xwwy, c15.xyyw
    dp3 r1.w, r3.yzww, r3.yzww
    rcp r1.w, r1.w
    add r2.z, r1.w, r1.w
    mul r2.xy, r2.z, r2
    mad r2.z, r1.w, c16.x, c16.y
    mul r0.w, r0.w, c10.z

	rcp r1.w, v3.z 
    mul r3.yzw, r1.w, v3.xxyz
	
    mul r4.xyz, -r3.x, r3.yzww
	mad r3.yzw, r3, r3.x, v1.xxyz
	
texldl r24, c220.z, s15
add r24.y, -r4.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 

add r4.x, r4.x, -r24.x					//Must be negative
add r3.y, r3.y, r24.x					//Must be positive
    
    nrm r5.xyz, r3.yzww
    dp3 r6.x, -r3.yzww, c4
    dp3 r6.y, -r3.yzww, c5
    dp3 r6.z, -r3.yzww, c6
    dp3 r1.w, r6, r6
    rsq r1.w, r1.w
    rcp r1.w, r1.w
    add r1.w, -r1.w, c15.w
    max r2.w, r1.w, c15.y
    pow r1.w, r2.w, c10.y
    mul r3.yzw, r1.w, c9.xxyz
    mov r4.w, c15.w
    dp4 r6.x, r4, c0
    dp4 r6.y, r4, c1
    dp4 r1.w, r4, c3
    rcp r2.w, r1.w
    mul r6.xy, r2.w, r6
    texld r6, r6, s4
    mul r3.yzw, r3, r6.xxyz
    mul r2.w, r1.w, c13.x
    mad r2.w, r2.w, -c16.z, -r4.z
    rcp r4.w, r4.z
    mul r6.xyz, r4.w, r4
    mul r6.xyz, -r2.w, r6
    mov r6.w, c15.w
    dp4 r7.x, r6, c0
    dp4 r7.y, r6, c1
    dp4 r7.z, r6, c2
    dp4 r2.w, r6, c3
    rcp r2.w, r2.w
    mul r6.xyz, r2.w, r7.zxyw
    mov_sat r6.x, r6.x
    add r7.z, r6.x, c16.w
    mov r8.zw, c11
    mad r9, r8.zwzw, c19, r6.yzyz
    mul r7.xyw, r9.xyzx, c15.wwzy
    texldl r10, r7, s5
    mul r7.xyw, r9.zwzx, c15.wwzy
    texldl r9, r7, s5
    add r2.w, r9.x, r10.x
    mad r9, r8.zwzw, c20, r6.yzyz
    mov r7.xy, r9
    texldl r10, r7, s5
    add r2.w, r2.w, r10.x
    mov r7.xy, r9.zwzw
    texldl r9, r7, s5
    add r2.w, r2.w, r9.x
    dsx r6.xw, r6.yyzz
    mul r6.xw, r6, c11.xyzy
    dsy r8.xy, r6.yzzw
    mul r8.xy, r8, c11
    dp2add r4.w, r6.xwzw, r6.xwzw, c15.y
    dp2add r5.w, r8, r8, c15.y
    max r6.x, r4.w, r5.w
    log r4.w, r6.x
    if_lt c16.x, r4.w
      mul r9.xyz, r2.w, c17.x
    else
      mad r10, r8.zwzw, c21, r6.yzyz
      mov r7.xy, r10
      texldl r11, r7, s5
      add r2.w, r2.w, r11.x
      mov r7.xy, r10.zwzw
      texldl r10, r7, s5
      add r2.w, r2.w, r10.x
      mad r10, r8.zwzw, c22, r6.yzyz
      mov r7.xy, r10
      texldl r11, r7, s5
      add r2.w, r2.w, r11.x
      mov r7.xy, r10.zwzw
      texldl r10, r7, s5
      add r2.w, r2.w, r10.x
      mad r10, r8.zwzw, c23, r6.yzyz
      mov r7.xy, r10
      texldl r11, r7, s5
      add r2.w, r2.w, r11.x
      mov r7.xy, r10.zwzw
      texldl r10, r7, s5
      add r2.w, r2.w, r10.x
      mad r6, r8.zwzw, c24, r6.yzyz
      mov r7.xy, r6
      texldl r8, r7, s5
      add r2.w, r2.w, r8.x
      mov r7.xy, r6.zwzw
      texldl r6, r7, s5
      add r2.w, r2.w, r6.x
      mul r9.xyz, r2.w, c17.y
    endif
    add r6.xyz, r9, -c15.w
    mov r2.w, c15.w
    mad r6.xyz, c12.x, r6, r2.w
    cmp r6.xyz, -r1.w, c15.w, r6
    min r7.xyz, r6, c15.w
    cmp r6.xyz, -r1.w, c15.w, r7
    cmp r3.yzw, -r1.w, c15.y, r3
    dp3 r1.w, -r4, -r4
    rsq r1.w, r1.w
    mul r7.xyz, r1.w, -r4
    dp3_sat r2.w, r2, r5
    pow r4.w, r2.w, c17.z
    mul r4.w, r4.w, c17.w
    mul r8.xyz, r3.yzww, r4.w
    mul r1.xyz, r1, r8
    mul r0.w, r0.w, c8.y
    mul r0.w, r0.w, c14.x
    exp r0.w, r0.w
    mul r4.w, r0.w, c14.y
    mad r4.xyz, -r4, r1.w, r5
    nrm r8.xyz, r4
    dp3_sat r1.w, r2, r8
    pow r5.w, r1.w, r4.w
    dp3 r1.w, r2, r7
    max r4.x, r2.w, r1.w
    dp3 r1.w, r8, r5
    mad r1.w, r4.x, r1.w, c14.z
    rcp r1.w, r1.w
    mad r0.w, r0.w, c14.y, c14.w
    mul r0.w, r5.w, r0.w
    mul r0.w, r1.w, r0.w
    mul r0.w, r2.w, r0.w
    mul r0.w, r0.w, c18.x
    mul r2.xyz, r3.yzww, r0.w
    mul r0.xyz, r0, r2
    mul r0.xyz, r6, r0
    mul r0.xyz, r0, c8.x
    mad oC0.xyz, r1, r6, r0
    mov oC0.w, r3.x

// approximately 182 instruction slots used (33 texture, 149 arithmetic)
 