//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float3 FalloffParameters;
//   float4 LightPosition;
//   float4 MinZ_MaxZRatio;
//   float NvStereoEnabled;
//   sampler2D NvStereoFixTexture;
//   float4 SampleOffsets[8];
//   sampler2D SceneColorTexture;
//   float4 ScreenPositionScaleBias;
//   float4x4 ScreenToShadowMatrix;
//   float4x4 ScreenToWorld;
//   sampler2D ShadowDepthTexture;
//   float4 ShadowModulateColor;
//   float2 SpotAngles;
//   float3 SpotDirection;
//
//
// Registers:
//
//   Name                    Reg   Size
//   ----------------------- ----- ----
//   ShadowModulateColor     c0       1
//   ScreenPositionScaleBias c1       1
//   MinZ_MaxZRatio          c2       1
//   NvStereoEnabled         c3       1
//   SampleOffsets           c8       8
//   ScreenToWorld           c16      4
//   ScreenToShadowMatrix    c20      4
//   LightPosition           c24      1
//   FalloffParameters       c25      1
//   SpotDirection           c26      1
//   SpotAngles              c27      1
//   SceneColorTexture       s0       1
//   NvStereoFixTexture      s1       1
//   ShadowDepthTexture      s2       1
//

    ps_3_0
    def c4, 0.0625, 0, 1, 0.999000013
  def c200, 0.5, 0, 0.0625, 0
  dcl_2d s13
    dcl_texcoord v0.xyw
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    abs r0.x, c3.x
    if_ne c3.x, -c3.x
      texld r1, c4, s1
      add r0.y, -r1.y, v0.w
      mad r1.x, r1.x, r0.y, v0.x
      mov r1.yz, v0.xyww
    else
      mov r1.xyz, c4.y
       endif
				   mov r16.xyw, v0
    texldl r11, c200.z, s13
    add r11.y, r16.w, -r11.y
    mul r11.x, r11.x, r11.y
    add r16.x, r16.x, r11.x
    cmp r0.xyz, -r0.x, r16.xyww, r1
    rcp r0.z, r0.z
    mul r0.xy, r0.z, r0
    mad r0.xy, r0, c1, c1.wzzw
    mov r0.zw, c4.y
    texldl r0, r0, s0
    mov r0.z, c4.z
    add r0.x, r0.z, -c2.y
    add r0.x, -r0.x, r0.w
    rcp r0.x, r0.x
    mul r0.x, r0.x, -c2.x
    rcp r0.y, r16.w
    mul r0.yw, r0.y, r16.xxzy
    mul r0.yw, r0.x, r0
    mul r1, r0.w, c21
  texldl r16, c200.z, s13
  add r16.y, r0.x, -r16.y
  mul r16.x, r16.x, r16.y
  add r0.y, r0.y, -r16.x
    mad r1, c20, r0.y, r1
    mad r1, c22, r0.x, r1
    add r1, r1, c23
    rcp r1.w, r1.w
    min r2.z, r1.z, c4.w
    mad_pp r3, r1.xyxy, r1.w, c8
    mad r2.xyw, r3.xyzx, c4.zzzy, c4.yyzz
    texldp_pp r4, r2, s2
    mad r2.xyw, r3.zwzx, c4.zzzy, c4.yyzz
    texldp r3, r2, s2
    add_pp r1.z, r3.x, r4.x
    mad_pp r3, r1.xyxy, r1.w, c9
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.z, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r3, r2, s2
    add_pp r1.z, r1.z, r3.x
    mad_pp r3, r1.xyxy, r1.w, c10
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.z, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r3, r2, s2
    add_pp r1.z, r1.z, r3.x
    mad_pp r3, r1.xyxy, r1.w, c11
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.z, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r3, r2, s2
    add_pp r1.z, r1.z, r3.x
    mad_pp r3, r1.xyxy, r1.w, c12
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.z, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r3, r2, s2
    add_pp r1.z, r1.z, r3.x
    mad_pp r3, r1.xyxy, r1.w, c13
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.z, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r3, r2, s2
    add_pp r1.z, r1.z, r3.x
    mad_pp r3, r1.xyxy, r1.w, c14
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.z, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r3, r2, s2
    add_pp r1.z, r1.z, r3.x
    mad_pp r3, r1.xyxy, r1.w, c15
    mov_pp r2.xy, r3
    texldp r4, r2, s2
    add_pp r1.x, r1.z, r4.x
    mov_pp r2.xy, r3.zwzw
    texldp r2, r2, s2
    add_pp r1.x, r1.x, r2.x
    mul_pp r1.x, r1.x, c4.x
    mul r1.yzw, r0.w, c17.xxyz
    mad r1.yzw, c16.xxyz, r0.y, r1
    mad r0.xyw, c18.xyzz, r0.x, r1.yzzw
    add r0.xyw, r0, c19.xyzz
    add r0.xyw, -r0, c24.xyzz
    mul r0.xyw, r0, c24.w
    dp3 r1.y, r0.xyww, r0.xyww
    rsq r1.y, r1.y
    rcp r1.z, r1.y
    mad r1.z, r1.z, c25.y, c25.z
    max r2.x, r1.z, c4.y
    mad r1.z, r2.x, -r2.x, c4.z
    max r2.x, r1.z, c4.y
    pow_pp r1.z, r2.x, c25.x
    mul r0.xyw, r0, r1.y
    dp3 r0.x, r0.xyww, -c26
    add r0.x, r0.x, -c27.x
    mul_sat r0.x, r0.x, c27.y
    mul r0.x, r0.x, r0.x
    mul_pp r0.x, r0.x, r1.z
    add r2, -r0.z, c0
    mad r0, r0.x, r2, c4.z
    mul r1.x, r1.x, r1.x
    add r2, -r0, c4.z
    mad oC0, r1.x, r2, r0

// approximately 115 instruction slots used (19 texture, 96 arithmetic)
 

