//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float DiffuseMultiplyScale_1;
//   float DiffuseSaturationFX_10;
//   sampler2D Layer0DiffuseTileMap_3;
//   sampler2D Layer0Diffuse_2;
//   sampler2D Layer0Normal_0;
//   float4 Layer0color_6;
//   sampler2D Layer0occlusionMap_1;
//   float4 SSSColor_26;
//   float4 SpecColor_27;
//   float SpecFactor_32;
//   float SpecPower_31;
//   float4 UVscale_15;
//   float4 g_AmbientCube[6];
//   float4 g_EyePosition;
//   float4 g_FogColor;
//   float4 g_FogParams;
//   float4 g_LODBlendFactor;
//   
//   struct
//   {
//       float4 m_PositionFar;
//       float4 m_ColorFade;
//
//   } g_OmniLights[4];
//   
//   float4 g_ProjShadowParams[2];
//   float4 g_ProjWorldToLight[8];
//   sampler2D g_ProjectorCookies[2];
//   sampler2D g_ProjectorShadow;
//   float4 g_ShadowMapSize;
//   
//   struct
//   {
//       float4 m_PositionFar;
//       float4 m_ColorFade;
//       float3 m_Direction;
//       float4 m_ConeAngles;
//
//   } g_SpotLights[2];
//   
//   bool g_UseDepthTextureShadows;
//   sampler2D g_WorldLightMapSampler;
//   float4 g_WorldLightmapParameters;
//   float4 g_WorldLightmapUVParameters;
//   float4 g_WorldLightmapZOffsetParameters;
//
//
// Registers:
//
//   Name                             Reg   Size
//   -------------------------------- ----- ----
//   g_UseDepthTextureShadows         b15      1
//   g_EyePosition                    c12      1
//   g_FogColor                       c16      1
//   g_FogParams                      c17      1
//   g_AmbientCube                    c24      6
//   g_LODBlendFactor                 c30      1
//   g_OmniLights                     c32      8
//   g_SpotLights                     c44      4
//   g_ProjWorldToLight               c55      4
//   g_ShadowMapSize                  c86      1
//   g_WorldLightmapParameters        c87      1
//   g_WorldLightmapUVParameters      c88      1
//   g_WorldLightmapZOffsetParameters c89      1
//   g_ProjShadowParams               c119     1
//   DiffuseMultiplyScale_1           c128     1
//   Layer0color_6                    c129     1
//   DiffuseSaturationFX_10           c130     1
//   UVscale_15                       c131     1
//   SSSColor_26                      c132     1
//   SpecColor_27                     c133     1
//   SpecPower_31                     c134     1
//   SpecFactor_32                    c135     1
//   Layer0Normal_0                   s0       1
//   Layer0occlusionMap_1             s1       1
//   Layer0Diffuse_2                  s2       1
//   Layer0DiffuseTileMap_3           s3       1
//   g_ProjectorCookies               s9       1
//   g_ProjectorShadow                s11      1
//   g_WorldLightMapSampler           s12      1
//

    ps_3_0
    def c0, -0.5, 1, 0.332999974, 0
    def c1, 0.049999997, 49.9999962, 0.5, -0.5
    def c2, 0, 1, 2, 3
    def c3, 1, -1, 0, -0
    defi i0, 4, 0, 0, 0
    dcl_texcoord v0.xy
    dcl_color v1.xzw
    dcl_color1 v2.xy
    dcl_texcoord1 v3
    dcl_texcoord2 v4.xyz
    dcl_texcoord3 v5.xyz
    dcl_texcoord4 v6.xyz
    dcl_texcoord5 v7.w
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s9
    dcl_2d s11
    dcl_2d s12
    mov r0, v3.w
    texkill r0
    texld r0, v0, s0
    mul r0.x, r0.w, r0.x
    add r0.xy, r0, c0.x
    add r0.xy, r0, r0
    dp2add r0.z, r0, -r0, c0.y
    rsq r0.z, r0.z
    rcp r0.z, r0.z
    nrm r1.xyz, v4
    nrm r2.xyz, v5
    nrm r3.xyz, v6
    mul r2.xyz, r0.y, r2
    mad r0.xyw, r0.x, r1.xyzz, r2.xyzz
    mad r0.xyz, r0.z, r3, r0.xyww
    nrm r1.xyz, r0
    add r0.xyz, c12, -v3
    texld r2, v0, s1
    add_sat r2.xyz, r2, c128.x
    texld r4, v0, s2
    mul r5.xyz, r4, c129
    dp3 r0.w, c0.z, r5
    mad r4.xyz, c129, r4, -r0.w
    mad r4.xyz, c130.x, r4, r0.w
    mul r5.xy, c131, v0
    texld r5, r5, s3
    add r0.w, r5.y, c0.x
    mad r0.w, v2.x, r0.w, c0.y
    mul r4.xyz, r0.w, r4
    mul r2.xyz, r2, r4
    add r2.xyz, r2, r2
    mul r0.w, r5.w, v2.y
    mul r4.xyz, r0.w, c133
    mov r5.x, c135.x
    mul r0.w, r5.x, c30.x
    mov r5.xyz, v3
    mov r5.w, r1.x
    mov r6.xy, r1.yzzw
    mov r6.zw, r3.xyxy
    mov r7.x, r3.z
    mov r7.yzw, r0.xxyz
    mov r8.x, v7.w
    mov r8.yzw, r2.xxyz
    mov r9.xyz, c132
    mov r9.w, r4.x
    mov r10.xy, r4.yzzw
    mov r10.z, c134.x
    mov r10.w, r0.w
    mov r11.xyz, c2.x
    mov r1.w, c2.x
    rep i0
      add r12, r1.w, -c2
      mov r13.x, c2.x
      cmp r14, -r12_abs.x, c32, r13.x
      cmp r14, -r12_abs.y, c34, r14
      cmp r14, -r12_abs.z, c36, r14
      cmp r14, -r12_abs.w, c38, r14
      cmp r13, -r12_abs.x, c33, r13.x
      cmp r13, -r12_abs.y, c35, r13
      cmp r13, -r12_abs.z, c37, r13
      cmp r12, -r12_abs.w, c39, r13
      add r13.xyz, -r5, r14
      dp3 r2.w, r13, r13
      rsq r3.w, r2.w
      mul r13.xyz, r3.w, r13
      add r2.w, -r2.w, r14.w
      mul_sat r2.w, r12.w, r2.w
      mov r14.x, r5.w
      mov r14.yz, r6.xxyw
      dp3 r3.w, r14, r13
      mad r11.w, r3.w, -c0.x, -c0.x
      mul r15.xyz, r9, r11.w
      mul r15.xyz, r8.x, r15
      mov_sat r3.w, r3.w
      max r16.xyz, r15, r3.w
      mul r15.xyz, r12, r16
      mul r16.xyz, r8.yzww, r2.w
      mov r17.xy, r6.zwzw
      mov r17.z, r7.x
      dp3 r3.w, r17, r13
      add r3.w, r3.w, c1.x
      mul_sat r3.w, r3.w, c1.y
      dp3 r11.w, -r13, r14
      add r11.w, r11.w, r11.w
      mad r13.xyz, r14, -r11.w, -r13
      nrm r14.xyz, r7.yzww
      dp3_sat r11.w, r13, r14
      pow r12.w, r11.w, r10.z
      mul r11.w, r10.w, r12.w
      mov r13.x, r9.w
      mov r13.yz, r10.xxyw
      mul r12.xyz, r12, r13
      mul r12.xyz, r11.w, r12
      mul r12.xyz, r2.w, r12
      mul r12.xyz, r3.w, r12
      mad r12.xyz, r16, r15, r12
      add r12.xyz, r11, r12
      cmp r11.xyz, -r2.w, r11, r12
      add r1.w, r1.w, c0.y
    endrep
    add r5.xyz, c44, -v3
    dp3 r1.w, r5, r5
    add r2.w, -r1.w, c44.w
    mul_sat r2.w, r2.w, c45.w
    rsq r1.w, r1.w
    mul r5.xyz, r1.w, r5
    dp3 r1.w, r5, c46
    add r1.w, -r1.w, c47.x
    mul_sat r1.w, r1.w, c47.y
    mul r1.w, r1.w, r2.w
    mad r6.xyz, r3, c119.y, v3
    mul r7, r6.y, c56
    mad r7, r6.x, c55, r7
    mad r6, r6.z, c57, r7
    add r6, r6, c58
    texldp r7, r6, s9
    rcp r2.w, r6.w
    mul_sat r6.xyz, r2.w, r6
    rcp r8.y, c86.w
    mul r2.w, r8.y, c86.z
    frc r3.w, r2.w
    add r5.w, r2.w, -r3.w
    cmp r3.w, -r3.w, c2.x, c2.y
    cmp r2.w, r2.w, c2.x, r3.w
    add r2.w, r2.w, r5.w
    rcp r2.w, r2.w
    mad r9.x, r6.x, r2.w, c119.x
    add r9.y, -r6.y, c0.y
    add_sat r6.z, r6.z, c119.z
    rcp r8.x, c86.z
    //if b15
    //  mad r6.xy, r8, -c0.x, r9
    //  mov r6.w, c2.x
    //  texldl r10, r6, s11
    //else
      mad r6.xy, r8, -c0.x, r9
      mad r8.zw, r8.xyxy, c0.x, r6.xyxy
      texld r9, r8.zwzw, s11
      add r2.w, -r6.z, r9.x
      mad r8.zw, r8.xyxy, c1, r6.xyxy
      texld r9, r8.zwzw, s11
      add r3.w, -r6.z, r9.x
      cmp r3.w, r3.w, c2.y, c2.x
      mad r8.zw, r8.xyxy, c1.xywz, r6.xyxy
      texld r9, r8.zwzw, s11
      add r5.w, -r6.z, r9.x
      mad r8.xy, r8, -c0.x, r6
      texld r8, r8, s11
      add r6.z, -r6.z, r8.x
      cmp r6.z, r6.z, c2.y, c2.x
      mul r6.xy, r6, c86.zwzw
      frc r6.xy, r6
      cmp r8.xy, r2.w, c3, c3.zwzw
      add r2.w, r3.w, r8.y
      mad r2.w, r6.x, r2.w, r8.x
      cmp r8.xy, r5.w, c3, c3.zwzw
      add r3.w, r6.z, r8.y
      mad r3.w, r6.x, r3.w, r8.x
      lrp r10.x, r6.y, r3.w, r2.w
    //endif
    mul r6.xyz, r7, r10.x
    dp3 r2.w, r1, r5
    mad r3.w, r2.w, -c0.x, -c0.x
    mul r7.xyz, r3.w, c132
    mul r7.xyz, r7, v7.w
    mul_sat r8.xyz, r6, r2.w
    max r9.xyz, r7, r8
    mul r7.xyz, r9, c45
    mul r7.xyz, r6, r7
    mul r8.xyz, r2, r1.w
    dp3 r2.w, r3, r5
    add r2.w, r2.w, c1.x
    mul_sat r2.w, r2.w, c1.y
    dp3 r3.x, -r5, r1
    add r3.x, r3.x, r3.x
    mad r3.xyz, r1, -r3.x, -r5
    dp3 r3.w, r0, r0
    rsq r3.w, r3.w
    mul r0.xyz, r0, r3.w
    dp3_sat r0.x, r3, r0
    pow r3.x, r0.x, c134.x
    mul r0.x, r0.w, r3.x
    mul r0.yzw, r4.xxyz, c45.xxyz
    mul r0.xyz, r0.x, r0.yzww
    mul r0.xyz, r1.w, r0
    mul r0.xyz, r2.w, r0
    mul r0.xyz, r6, r0
    mad r0.xyz, r8, r7, r0
    add r0.xyz, r0, r11
    cmp r0.xyz, -r1.w, r11, r0
    mul r2.xyz, r2, v1.x
    mul r3.xyz, r1, r1
    cmp r4.xyz, r1, c2.y, c2.x
    cmp r5.xyz, -r1, c2.y, c2.x
    mul r6, r3.x, c24
    mul r7, r3.x, c25
    mul r7, r5.x, r7
    mad r6, r6, r4.x, r7
    mul r7, r3.y, c26
    mad r6, r7, r4.y, r6
    mul r7, r3.y, c27
    mad r6, r7, r5.y, r6
    mul r7, r3.z, c28
    mad r6, r7, r4.z, r6
    mul r7, r3.z, c29
    mad r5, r7, r5.z, r6
    mul r3.xyz, r5.w, r5
    mul r3.xyz, r2, r3
    mad r1.xy, r1, c87.x, v3
    mov r4.xy, c0
    mad r1.xy, r1, c88.zwzw, -r4.x
    rcp r0.w, r3.w
    add r2.w, r0.w, -c89.x
    rcp r3.w, c89.y
    mul_sat r1.w, r2.w, r3.w
    mov r1.z, c2.x
    texldl r1, r1, s12
    mul r1.xyz, r1, c88.x
    mad r1.w, r1.w, c87.w, c87.y
    add r1.w, r1.w, -v3.z
    mad_sat r1.w, r1_abs.w, -c87.z, r4.y
    mul r1.xyz, r1.w, r1
    mul r4.xyz, r2, r1
    dp3_sat r1.w, r4, c88.y
    mad r1.xyz, r1, r2, -r3
    mad r1.xyz, r1.w, r1, r3
    add_sat r0.xyz, r0, r1
    add r0.w, r0.w, -c17.x
    mul_sat r0.w, r0.w, c17.y
    mul r0.w, r0.w, c17.z
    add r1.xyz, -r0, c16
    mad oC0.xyz, r0.w, r1, r0
    rcp r0.x, v1.w
    mul oC1.xyz, r0.x, v1.z
    mov oC0.w, r4.w
    mov oC1.w, r4.w

// approximately 258 instruction slots used (13 texture, 245 arithmetic)
 