//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 BackLightFactorAndShadowIntensity;
//   float4 DiffuseOverrideParameter;
//   float2 DistanceFadeParameters;
//   sampler2D LightAttenuationTexture;
//   float4 LightColorAndFalloffExponent;
//   sampler2D PixelTexture2D_0;
//   sampler2D PixelTexture2D_1;
//   sampler2D PixelTexture2D_2;
//   float4 ScreenPositionScaleBias;
//   float4 SpecularOverrideParameter;
//   float4 UniformPixelVector_0;
//   float4x4 ViewProjectionMatrix;
//   bool bEnableDistanceShadowFading;
//   bool bReceiveDynamicShadows;
//
//
// Registers:
//
//   Name                              Reg   Size
//   --------------------------------- ----- ----
//   bReceiveDynamicShadows            b0       1
//   bEnableDistanceShadowFading       b1       1
//   UniformPixelVector_0              c0       1
//   ScreenPositionScaleBias           c1       1
//   DiffuseOverrideParameter          c4       1
//   SpecularOverrideParameter         c5       1
//   ViewProjectionMatrix              c8       4
//   LightColorAndFalloffExponent      c12      1
//   BackLightFactorAndShadowIntensity c13      1
//   DistanceFadeParameters            c14      1
//   LightAttenuationTexture           s0       1
//   PixelTexture2D_0                  s1       1
//   PixelTexture2D_1                  s2       1
//   PixelTexture2D_2                  s3       1
//

    ps_3_0
    def c2, 2, -1, 1, -9.99999997e-007
    def c3, 5000, 0.200000003, 0.899999976, -0.0299999993
    def c6, 2.20000005, 1000, 0.5, 0
    def c7, 1.25, 400, 0, 0
    dcl_texcoord v0.xy
    dcl_texcoord4_pp v1.xyz
    dcl_texcoord6 v2.xyz
    dcl_texcoord7 v3
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    mul r0.xyz, c9.xyww, v3.y
    mad r0.xyz, c8.xyww, v3.x, r0
    mad r0.xyz, c10.xyww, v3.z, r0
    mad r0.xyz, c11.xyww, v3.w, r0
    nrm r1.xyz, v2
    nrm_pp r2.xyz, v1
    texld r3, v0, s1
    mad_pp r3.xyz, r3, c2.x, c2.y
    nrm_pp r4.xyz, r3
    dp3 r0.w, r4, r1
    mul r5.xyz, r0.w, r4
    mad r1.xyz, r5, c2.x, -r1
    if b0
      rcp r0.w, r0.z
      mul r3.zw, r0.w, r0.xyxy
      mad r3.zw, r3, c1.xyxy, c1.xywz
      texld r5, r3.zwzw, s0
      mul_pp r5.xyz, r5, r5
      if b1
        dp3 r0.w, v3, v3
        rsq r0.w, r0.w
        rcp r0.w, r0.w
        add r0.w, -r0.w, c14.x
        mul_sat_pp r0.w, r0.w, c14.y
        mul_pp r0.w, r0.w, r0.w
        mad_pp r1.w, r5.w, r5.w, c2.y
        mad_pp r6.xyz, r0.w, r1.w, c2.z
      else
        mov_pp r6.xyz, c2.z
      endif
      mul_pp r5.xyz, r5, r6
    else
      mov_pp r5.xyz, c2.z
    endif
    texld r6, v0, s2
    add r0.w, r6_abs.x, c2.w
    max r7.xyz, r6_abs, -c2.w
    mul r8.xyz, r7, r7
    mul r7.xyz, r7, r8
    mul_pp r7.xyz, r7, c5.w
    mov r8.x, c3.x
    mad_pp r7.xyz, r7, r8.x, c5
    mov r3.z, c2.z
    add r8.xyz, r3.z, -c0
    rcp r0.z, r0.z
    mul r0.xy, r0.z, r0
    mad r0.xy, r0, c1, c1.wzzw
    mad r0.xy, r3, c3.y, r0
    mul r3.xy, r0, c3.z
    mad r0.xy, r0, c3.z, c3.w
    mov_sat r3.xy, r3
    cmp r0.xy, r0, r3, -c3.w
    texld r3, r0, s3
    pow r0.x, r6_abs.x, c6.x
    mul r0.x, r0.x, c6.y
    mul r0.xyz, r3, r0.x
    mul r0.xyz, r0, c6.z
    cmp r0.xyz, r0.w, r0, c6.w
    add r0.xyz, r0, r6
    mul_pp r0.xyz, r8, r0
    mad_pp r0.xyz, r0, c4.w, c4
    mov_sat_pp r0.w, c13.w
    dp3_pp r1.w, r4, r2
    add r1.w, r1.w, -c3.y
    mul_sat_pp r1.w, r1.w, c7.x
    add r2.w, r1.w, c2.w
    cmp_pp r1.w, r2.w, r1.w, c6.w
    dp3 r1.x, r1, r2
    add r1.x, r1.x, -c3.y
    mul_sat_pp r1.x, r1.x, c7.x
    add r1.y, r1.x, c2.w
    pow_pp r2.x, r1.x, c7.y
    mul_pp r2.xyz, r7, r2.x
    cmp_pp r1.xyz, r1.y, r2, c6.w
    mad_pp r0.xyz, r0, r1.w, r1
    add_pp r0.w, -r0.w, c2.z
    add_sat_pp r1.xyz, r0.w, r5
    mul r0.xyz, r0, r1
    mul oC0.xyz, r0, c12
    mov oC0.w, c6.w

// approximately 94 instruction slots used (4 texture, 90 arithmetic)
 