//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 DiffuseOverrideParameter;
//   float2 DistanceFadeParameters;
//   sampler2D LightAttenuationTexture;
//   float4 LightColorAndFalloffExponent;
//   sampler2D PixelTexture2D_0;
//   sampler2D PixelTexture2D_1;
//   sampler2D PixelTexture2D_2;
//   sampler2D PixelTexture2D_3;
//   float4 ScreenDoorFadeSettings;
//   float4 ScreenDoorFadeSettings2;
//   sampler2D ScreenDoorNoiseTexture;
//   float4 ScreenPositionScaleBias;
//   sampler2D ShadowTexture;
//   float4 SpecularOverrideParameter;
//   float4 UniformPixelScalars_1;
//   float4 UniformPixelVector_0;
//   float4 UniformPixelVector_1;
//   float4 UniformPixelVector_2;
//   float4 UniformPixelVector_3;
//   float4 UniformPixelVector_4;
//   float4 UniformPixelVector_5;
//   float4 UniformPixelVector_6;
//   float4x4 ViewProjectionMatrix;
//   bool bEnableDistanceShadowFading;
//   bool bEnableScreenDoorFade;
//   bool bReceiveDynamicShadows;
//
//
// Registers:
//
//   Name                         Reg   Size
//   ---------------------------- ----- ----
//   bEnableScreenDoorFade        b0       1
//   bReceiveDynamicShadows       b1       1
//   bEnableDistanceShadowFading  b2       1
//   ScreenDoorFadeSettings       c0       1
//   ScreenPositionScaleBias      c1       1
//   DiffuseOverrideParameter     c4       1
//   SpecularOverrideParameter    c5       1
//   ViewProjectionMatrix         c8       4
//   ScreenDoorFadeSettings2      c12      1
//   UniformPixelVector_0         c13      1
//   UniformPixelVector_1         c14      1
//   UniformPixelVector_2         c15      1
//   UniformPixelVector_3         c16      1
//   UniformPixelVector_4         c17      1
//   UniformPixelVector_5         c18      1
//   UniformPixelVector_6         c19      1
//   UniformPixelScalars_1        c20      1
//   LightColorAndFalloffExponent c21      1
//   DistanceFadeParameters       c22      1
//   LightAttenuationTexture      s0       1
//   ScreenDoorNoiseTexture       s1       1
//   PixelTexture2D_0             s2       1
//   PixelTexture2D_1             s3       1
//   PixelTexture2D_2             s4       1
//   PixelTexture2D_3             s5       1
//   ShadowTexture                s6       1
//

    ps_3_0
    def c2, 2, -1, 0, 1
    def c3, -9.99999997e-007, 15, 0, 0
    dcl_texcoord v0.xy
    dcl_texcoord1 v1.xy
    dcl_texcoord4_pp v2.xyz
    dcl_texcoord6 v3.xyz
    dcl_texcoord7 v4
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6

def c220, 0, 1, 0.0625, 0.5
dcl_2d s15

    nrm r0.xyz, v3
    nrm_pp r1.xyz, v2
    mov r2.xy, c14
    mad r2.xy, v1, r2, c15
    texld r3, r2, s2
    mad r3.xyz, r3, c2.x, c2.y
    add r4.xyz, -r3, c2.zzww
    mad_pp r3.xyz, c20.x, r4, r3
    nrm_pp r4.xyz, r3
    dp3 r0.w, r4, r0
    mul r3.xyz, r0.w, r4
    mad r0.xyz, r3, c2.x, -r0
    texld_pp r3, v0, s6
    if b0
      mad r2.zw, vPos.xyxy, c12, c12.xyxy
      texld_pp r5, r2.zwzw, s1
      mad r0.w, c0.y, r5.x, c0.z
      mov r1.w, c2.w
      add r1.w, r1.w, -c0.x
      add r5, r0.w, -r1.w
      texkill r5
    endif
    if b1
      mul r3.yzw, c9.xxyw, v4.y
      mad r3.yzw, c8.xxyw, v4.x, r3
      mad r3.yzw, c10.xxyw, v4.z, r3
      mad r3.yzw, c11.xxyw, v4.w, r3

// Unreal Engine halo fix inserted with DarkStarSword's shadertool.py:
// shadertool.py -i --fix-unreal-ps-halo --stereo-sampler-ps=s15 --only-autofixed CRC32_5535DC2B_27107.txt
texldl r31, c220.z, s15
add r31.w, r3.w, -r31.y
mad r3.y, r31.w, r31.x, r3.y

      rcp r0.w, r3.w
      mul r2.zw, r0.w, r3.xyyz
      mad r2.zw, r2, c1.xyxy, c1.xywz
      texld r5, r2.zwzw, s0
      mul_pp r3.yzw, r5.xxyz, r5.xxyz
      if b2
        dp3 r0.w, v4, v4
        rsq r0.w, r0.w
        rcp r0.w, r0.w
        add r0.w, -r0.w, c22.x
        mul_sat_pp r0.w, r0.w, c22.y
        mul_pp r0.w, r0.w, r0.w
        mad_pp r1.w, r5.w, r5.w, -r3.x
        mad_pp r5.xyz, r0.w, r1.w, r3.x
      else
        mov_pp r5.xyz, r3.x
      endif
      mul_pp r3.yzw, r3, r5.xxyz
    else
      mov_pp r3.yzw, r3.x
    endif
    texld r5, r2, s3
    mov r6.xyz, c18
    add r5.yzw, -r6.xxyz, c19.xxyz
    mad r5.yzw, r5.x, r5, c18.xxyz
    texld r6, r2, s5
    mad r6.xyz, c20.x, -r6, r6
    mul_pp r5.yzw, r5, r6.xxyz
    mad_pp r5.yzw, r5, c5.w, c5.xxyz
    mov r0.w, c2.w
    add r6.xyz, r0.w, -c13
    mov r7.xyz, c16
    add r7.xyz, -r7, c17
    mad r7.xyz, r5.x, r7, c16
    texld r2, r2, s4
    mad r2.xyz, c20.x, -r2, r2
    mul r2.xyz, r2, r7
    mul_pp r2.xyz, r6, r2
    mad_pp r2.xyz, r2, c4.w, c4
    dp3_sat_pp r0.w, r4, r1
    add r1.w, r0.w, c3.x
    dp3_sat_pp r0.x, r0, r1
    add r0.y, r0.x, c3.x
    pow_pp r1.x, r0.x, c3.y
    mul r0.xzw, r0.w, r2.xyyz
    cmp r0.xzw, r1.w, r0, c2.z
    mul_pp r1.xyz, r5.yzww, r1.x
    cmp_pp r1.xyz, r0.y, r1, c2.z
    add_pp r0.xyz, r0.xzww, r1
    mul_pp r0.xyz, r3.yzww, r0
    mul oC0.xyz, r0, c21
    mov oC0.w, c2.z

// approximately 93 instruction slots used (7 texture, 86 arithmetic)
