//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float4 fs_exposure;
//   float4 fs_fresnel_params;
//   float4 fs_inverse_projection_xy;
//   float4 fs_layer0_diffuse;
//   float4 fs_layer1_diffuse;
//   float4 fs_specular_params;
//   float4 fs_surface_params;
//   
//   struct
//   {
//       float4 posDirRadius;
//       float4 color;
//       float4 params1;
//       float4 params2;
//
//   } g_Light;
//   
//   struct
//   {
//       float4 shadowFactors;
//       float4 lightDirPos;
//       float4 params;
//
//   } g_ShadowCommon;
//   
//   sampler2D g_ShadowMapTex;
//   
//   struct
//   {
//       row_major float4x4 eye2shadowMapUVMtx;
//       float4 params;
//       float4 light2UVScaleOffset;
//       float4 softShadowParams;
//       float4 softShadowParams1;
//
//   } g_SpotPoint;
//   
//   sampler2D g_SpotTex;
//   row_major float4x4 g_SpotViewProj;
//   sampler2D layer0_sampler;
//   sampler2D layer1_sampler;
//   sampler2D specular2_sampler;
//   sampler2D specular_sampler;
//   sampler2D surface_sampler;
//
//
// Registers:
//
//   Name                     Reg   Size
//   ------------------------ ----- ----
//   fs_inverse_projection_xy c1       1
//   fs_layer0_diffuse        c4       1
//   fs_layer1_diffuse        c5       1
//   fs_specular_params       c10      1
//   fs_surface_params        c11      1
//   fs_fresnel_params        c15      1
//   fs_exposure              c45      1
//   g_ShadowCommon           c150     1
//   g_SpotPoint              c153     6
//   g_Light                  c180     3
//   g_SpotViewProj           c184     4
//   layer0_sampler           s5       1
//   layer1_sampler           s6       1
//   specular_sampler         s7       1
//   specular2_sampler        s8       1
//   surface_sampler          s9       1
//   g_SpotTex                s13      1
//   g_ShadowMapTex           s15      1
//

    ps_3_0
    def c0, 2, -1, -0, 1
    def c2, 3.5, 0.125, 0.99000001, 0
    def c3, 0.5, -0.5, 0, 0
    def c6, 1, 0, -0, 0

def c220, 0, 0, 0.0625, 0
dcl_2d s14
dcl_texcoord8 v8

    dcl_texcoord_centroid v0
    dcl_texcoord1_centroid v1
    dcl_texcoord2_centroid v2
    dcl_texcoord3_centroid v3
    dcl_texcoord4_centroid v4
    dcl_color v5.xy
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_2d s8
    dcl_2d s9
    dcl_2d s13
    dcl_2d s15
    texld_pp r0, v4.zwzw, s5
    mul_pp r1, r0, c4
    mul_pp r0.x, c5.w, v5.x
    texld_pp r2, v4, s6
    mul_pp r0.x, r0.x, r2.w
    mul_pp r2.xyz, r2, c5
    lrp_pp r3.xyz, r0.x, r2, r1
    mad_pp r0.y, c4.w, r0.w, r0.x
    mad_pp r0.y, r1.w, -r0.x, r0.y
    mul_sat_pp oC0.w, r0.y, v5.y
    mov r1.x, v1.w
    mov r1.y, v0.w
    mul r0.yz, c1.xzww, v2.w

    mad r1.xy, r1, c1, r0.yzzw

texldl r24, c220.z, s14
add r24.y,  v2.w, -r24.y
mul r24.x, r24.x, r24.y
mul r24.x, r24.x, v8.x
add  r1.x,  r1.x, -r24.x


    mul r2, r1.y, c185
    mad r2, r1.x, c184, r2
    mad r2, v2.w, c186, r2
    add r2, r2, c187
    rcp r0.y, r2.w
    mul r0.yzw, r0.y, r2.xxyz
    mad r2.xy, r0.yzzw, c158, c158.zwzw
    add r1.w, r2.y, -c157.w
    add r1.w, -r1_abs.w, c2.y
    cmp r1.w, r1.w, -c0.y, -c0.z
    mov r2.z, r0.w
    mul r2.xyz, r1.w, r2
    mul r1.w, r2.z, c150.w
    mad r2.xyw, r2.xyzx, c6.xxzy, c6.zzzx
    min r2.z, r1.w, c2.z
    texldp r2, r2, s15
    add_pp r1.w, -r2.x, c0.w
    mul_pp r1.w, r1.w, c150.x
    add r2.x, -c150.y, v2.w
    mul_sat r2.x, r2.x, c150.z
    add_pp r2.x, -r2.x, c0.w
    mad_pp r1.w, r1.w, -r2.x, c0.w
    dp2add_pp r2.x, r0.yzzw, -r0.yzzw, c0.w
    max_pp r3.w, r2.x, -c0.z
    mad r0.yz, r0, c3.xxyw, c3.x
    cmp_pp r0.w, -r0.w, -c0.z, -c0.y
    texld_pp r2, r0.yzzw, s13
    add r2, r2, c0.y
    mov r4.w, c0.w
    mad_pp r2, c182.w, r2, r4.w
    lrp r0.y, c182.w, r2.w, r3.w
    mul_pp r0.y, r0.y, r1.w
    mul_pp r0.y, r0.w, r0.y
    mov r1.z, v2.w
    add_pp r1.xyz, -r1, c180
    dp3_pp r0.z, r1, r1
    rsq_pp r0.z, r0.z
    rcp_pp r0.w, r0.z
    mul_pp r1.xyz, r0.z, r1
    mov r1.w, c180.w
    mad_sat r0.z, r0.w, r1.w, c181.w
    mul_pp r0.y, r0.z, r0.y
    mul_pp r0.yzw, r2.xxyz, r0.y
    mul_pp r0.yzw, r0, c181.xxyz
    texld_pp r2, v4.zwzw, s9
    mad r2.xyz, r2, c0.x, c0.yyzw
    mul r2.xy, r2, c11.x
    dp3 r1.w, r2, r2
    rsq r1.w, r1.w
    mul_pp r4.xyz, r1.w, r2
    mad_pp r2.xyz, r2, -r1.w, -c0.zzyw
    mad_pp r2.xyz, r0.x, r2, r4
    nrm_pp r4.xyz, v0
    mul_pp r4.xyz, r2.y, r4
    nrm_pp r5.xyz, v1
    mad_pp r2.xyw, r5.xyzz, r2.x, r4.xyzz
    nrm r4.xyz, v3
    mad r2.xyz, r4, r2.z, r2.xyww
    nrm_pp r4.xyz, r2
    nrm_pp r2.xyz, -v2
    dp3_pp r1.w, r4, r2
    add r2.w, r1.w, r1.w
    add_sat_pp r1.w, -r1.w, c0.w
    pow_pp r3.w, r1.w, c2.x
    mad_pp r2.xyz, r4, -r2.w, r2
    dp3_pp r1.w, r1, r4
    dp3_sat_pp r1.x, -r2, r1
    pow_pp r2.x, r1.x, c10.x
    mul_pp r1.x, r2.x, c10.w
    max_pp r2.x, r1.w, -c0.z
    mul_pp r1.y, r2.x, c182.x
    mul_pp r2.xyz, r0.yzww, r2.x
    mul_pp r1.x, r1.y, r1.x
    mul_pp r0.yzw, r0, r1.x
    texld_pp r1, v4.zwzw, s7
    texld_pp r5, v4, s8
    lrp_pp r2.w, r0.x, r5.x, r1.x
    mul_pp r0.x, r2.w, c10.y
    add_pp r1.x, r4.w, -c15.y
    add_pp r1.y, r4.w, -c10.z
    mul_pp r1.x, r1.y, r1.x
    mad_pp r1.x, r1.x, r3.w, c15.y
    mul_sat_pp r0.x, r0.x, r1.x
    add_pp r1.x, -r1.x, c0.w
    mul_pp r0.xyz, r0.yzww, r0.x
    mul_pp r0.w, c15.w, c15.w
    mul_pp r1.y, r0.w, r0.w
    mad_pp r0.w, r0.w, -r0.w, c0.w
    mad_pp r0.w, r0.w, r1.x, r1.y
    mul_pp r1.xyz, r0.w, r3
    mad_pp r0.xyz, r1, r2, r0
    mul_pp r0.xyz, r0, v3.w
    mov_sat_pp r0.w, c45.y
    mul_pp oC0.xyz, r0.w, r0

// approximately 123 instruction slots used (7 texture, 116 arithmetic)
 
