//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   samplerCUBE CubeMap_0;
//   float CubeSpecFactor_28;
//   float4 CubemapLOD_19;
//   float DiffuseSaturationFX_6;
//   sampler2D Layer0Diffuse_1;
//   sampler2D Layer0Normal_0;
//   sampler2D Layer0Specular_2;
//   float4 MaskVertexB_2;
//   float4 SpecColor_11;
//   float SpecFactor_17;
//   float SpecFresnel_18;
//   float SpecPower_16;
//   float4 SpecularLOD_12;
//   float4 g_AmbientCube[6];
//   sampler2D g_CloudShadowSampler;
//   float4 g_CloudUVScaleOffset;
//   float4 g_EyePosition;
//   float4 g_FogColor;
//   float4 g_FogParams;
//   float4 g_LODBlendFactor;
//   float4 g_LayeredSkyUserColor4;
//   float4 g_NormalScale;
//   float4 g_ProjShadowParams[2];
//   float4 g_ProjWorldToLight[8];
//   sampler2D g_ProjectorCookies[2];
//   sampler2D g_ProjectorShadow;
//   float4 g_ShadowCascadesRangesMax;
//   float4 g_ShadowCascadesRangesMin;
//   float4 g_ShadowFadeParams;
//   float4 g_ShadowMapSize;
//   sampler2D g_ShadowNoiseSampler;
//   float4 g_ShadowNoiseScale;
//   float4 g_ShadowOffsetsW;
//   float4 g_ShadowOffsetsX;
//   float4 g_ShadowOffsetsY;
//   float4 g_ShadowOffsetsZ;
//   sampler2D g_ShadowSampler;
//   float4 g_ShadowScalesW;
//   float4 g_ShadowScalesX;
//   float4 g_ShadowScalesY;
//   float4 g_ShadowScalesZ;
//   
//   struct
//   {
//       float3 m_Direction;
//       float3 m_Color;
//       float3 m_SpecularDirection;
//
//   } g_ShadowedDirect;
//   
//   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_SpotLights                     c44      4
//   g_ShadowedDirect                 c52      3
//   g_ProjWorldToLight               c55      4
//   g_ShadowCascadesRangesMin        c64      1
//   g_ShadowCascadesRangesMax        c65      1
//   g_ShadowFadeParams               c74      1
//   g_ShadowNoiseScale               c77      1
//   g_ShadowScalesW                  c78      1
//   g_ShadowOffsetsW                 c79      1
//   g_ShadowScalesZ                  c80      1
//   g_ShadowOffsetsZ                 c81      1
//   g_ShadowScalesX                  c82      1
//   g_ShadowScalesY                  c83      1
//   g_ShadowOffsetsX                 c84      1
//   g_ShadowOffsetsY                 c85      1
//   g_ShadowMapSize                  c86      1
//   g_WorldLightmapParameters        c87      1
//   g_WorldLightmapUVParameters      c88      1
//   g_WorldLightmapZOffsetParameters c89      1
//   g_NormalScale                    c94      1
//   g_LayeredSkyUserColor4           c104     1
//   g_CloudUVScaleOffset             c115     1
//   g_ProjShadowParams               c119     1
//   MaskVertexB_2                    c128     1
//   DiffuseSaturationFX_6            c129     1
//   SpecColor_11                     c130     1
//   SpecularLOD_12                   c131     1
//   SpecPower_16                     c132     1
//   SpecFactor_17                    c133     1
//   SpecFresnel_18                   c134     1
//   CubemapLOD_19                    c135     1
//   CubeSpecFactor_28                c136     1
//   Layer0Normal_0                   s0       1
//   Layer0Diffuse_1                  s1       1
//   Layer0Specular_2                 s2       1
//   CubeMap_0                        s3       1
//   g_ShadowNoiseSampler             s6       1
//   g_ProjectorCookies               s9       1
//   g_ProjectorShadow                s11      1
//   g_WorldLightMapSampler           s12      1
//   g_CloudShadowSampler             s14      1
//   g_ShadowSampler                  s15      1
//

    ps_3_0
    def c0, 0.298999995, 0.586999953, 0.113999993, 0
    def c1, 0.25, 0.75, 0.015625, 0.049999997
    def c2, 1.2991153, -0.124001235, 0, 49.9999962
    def c3, 1, -1, 0.5, -0.5
    def c4, 1, -1, 0, -0
    def c5, -1.20522094, 1.9759326, -0.335031986, 0.160125375
    def c6, -0.124001235, 0.389027983, 1.2991153, -0.504198194
    def c7, 1, 0, 0.25, 0.5
    def c8, -0.504198194, 0.389027983, 0, 0
    def c9, -0.335031986, -1.20522094, 0, 0
    def c10, 0.160125375, 1.9759326, 0, 0
    dcl_texcoord v0.xy
    dcl_color v1.xzw
    dcl_texcoord1 v2
    dcl_texcoord2 v3.xyz
    dcl_texcoord3 v4.xyz
    dcl_texcoord4 v5.xyz
    dcl_texcoord5 v6.xyz
    dcl vFace
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_cube s3
    dcl_2d s6
    dcl_2d s9
    dcl_2d s11
    dcl_2d s12
    dcl_2d s14
    dcl_2d s15
    cmp r0.x, vFace, c3.x, c3.y
    add r0.yz, c3.z, vPos.xxyw
    mov r1, v2.w
    texkill r1
    texld r1, v0, s0
    mul r1.x, r1.w, r1.x
    add r1.xy, r1, c3.w
    add r1.xy, r1, r1
    dp2add r0.w, r1, -r1, c3.x
    rsq r0.w, r0.w
    rcp r0.w, r0.w
    nrm r2.xyz, v3
    nrm r3.xyz, v4
    nrm r4.xyz, v5
    mul r1.yzw, r1.y, r3.xxyz
    mad r1.xyz, r1.x, r2, r1.yzww
    mad r1.xyz, r0.w, r4, r1
    nrm r2.xyz, r1
    mul r1.xyz, r2, -c94.x
    mul r3.xyz, r4, -c94.x
    cmp r1.xyz, -r0.x, r2, r1
    cmp r2.xyz, -r0.x, r4, r3
    add r3.xyz, c12, -v2
    texld r4, v0, s1
    mul r5.xyz, r4, c128
    dp3 r0.x, c0, r5
    mad r4.xyz, c128, r4, -r0.x
    mad r4.xyz, c129.x, r4, r0.x
    add r4.xyz, r4, r4
    texld r5, v0, s2
    mov r0.x, c30.x
    lrp r6.xyz, r0.x, r5, c131
    mul r5.xyz, r6, c130
    add r6.xyz, -c12.xzyw, v2.xzyw
    dp3 r0.w, r6, r6
    rsq r1.w, r0.w
    mul r6.xyz, r1.w, r6
    dp3 r1.w, r6.xzyw, r1
    add r1.w, r1.w, r1.w
    mad r6.xyz, r1.xzyw, -r1.w, r6
    texld r6, r6, s3
    mul r1.w, r6.y, r6.y
    mul r1.w, r1.w, c104.w
    mul r1.w, r1.w, c136.x
    mad r6.xyz, r5, r1.w, -c135
    mad r6.xyz, r0.x, r6, c135
    mul r6.xyz, r6, c104
    mov r7.xyz, c82
    mad r7.xyz, v6, r7, c84
    mov r8.xyz, c83
    mad r8.xyz, v6, r8, c85
    mov r9.xyz, c80
    mad r9.xyz, v6, r9, c81
    mov r10.xyz, c78
    mad r10.xyz, v6, r10, c79
    add r0.x, -r8.y, r8.x
    add r1.w, -r9.y, r9.x
    add r2.w, -r10.y, r10.x
    cmp r11.xy, r0.x, r8.yxzw, r8
    cmp r12.xy, r1.w, r9.yxzw, r9
    cmp r13.xy, r2.w, r10.yxzw, r10
    mov r11.z, r12.x
    mov r11.w, r13.x
    add r11.xzw, r11, -c64.yyzw
    mov r12.z, r11.y
    mov r12.w, r13.y
    add r12.xyz, -r12.zyww, c65.yzww
    cmp r12.xyz, r12, c7.x, c7.y
    cmp r11.xyz, r11.xzww, r12, c0.w
    add r11.xyz, r11, c3.y
    mad r8.w, r8.x, c7.z, c7.z
    mul r7.w, r7.x, c7.z
    cmp r7.xyz, r11.x, r8.wyzw, r7.wyzw
    mad r9.w, r9.x, c7.z, c7.w
    cmp r7.xyz, r11.y, r9.wyzw, r7
    mad r10.w, r10.x, c1.x, c1.y
    cmp r7.xyz, r11.z, r10.wyzw, r7
    mul r0.xy, r0.yzzw, c1.z
    texld r8, r0, s6
    add r0.xy, r8.yxzw, c3.w
    mul r8.xy, r0.x, c6
    mad r8.xy, r0.y, c6.zwzw, -r8
    dp2add r8.z, r0, c2, c2.z
    mul r8.xz, r8, c77.x
    rcp r9.x, c86.x
    rcp r9.y, c86.y
    mad r10.xy, r8.xzzw, r9, r7
    if b15
      mul r10.zw, r7.z, c7.xyxy
      texldl r11, r10, s15
    else
      texld r10, r10, s15
      add r0.z, -r7.z, r10.x
      cmp r11.x, r0.z, c7.x, c7.y
    endif
    dp2add r8.w, r0, c8, c8.z
    mul r8.xy, r8.ywzw, c77.x
    mad r8.xy, r8, r9, r7
    if b15
      mul r8.zw, r7.z, c7.xyxy
      texldl r10, r8, s15
    else
      texld r8, r8, s15
      add r0.z, -r7.z, r8.x
      cmp r10.x, r0.z, c7.x, c7.y
    endif
    add r0.z, r10.x, r11.x
    mul r8.xy, r0.x, c5
    mad r8.xy, r0.y, c5.zwzw, -r8
    dp2add r8.z, r0, c9, c9.z
    mul r8.xz, r8, c77.x
    mad r10.xy, r8.xzzw, r9, r7
    if b15
      mul r10.zw, r7.z, c7.xyxy
      texldl r11, r10, s15
    else
      texld r10, r10, s15
      add r1.w, -r7.z, r10.x
      cmp r11.x, r1.w, c7.x, c7.y
    endif
    add r0.z, r0.z, r11.x
    dp2add r8.w, r0, c10, c10.z
    mul r0.xy, r8.ywzw, c77.x
    mad r8.xy, r0, r9, r7
    if b15
      mul r8.zw, r7.z, c7.xyxy
      texldl r9, r8, s15
    else
      texld r8, r8, s15
      add r0.x, -r7.z, r8.x
      cmp r9.x, r0.x, c7.x, c7.y
    endif
    add r0.x, r0.z, r9.x
    mad_sat r0.y, r0.w, c74.x, c74.y
    mad_sat r0.x, r0.x, c7.z, r0.y
    mad r0.yz, v2.xxyw, c115.xxyw, c115.xzww
    texld r7, r0.yzzw, s14
    mul r0.x, r0.x, r7.x
    dp3_sat r0.y, r1, c52
    mul r0.yzw, r0.y, c53.xxyz
    mul r0.yzw, r0.x, r0
    dp3 r1.w, r2, c54
    add r1.w, r1.w, c1.w
    mul_sat r1.w, r1.w, c2.w
    dp3 r2.w, -c54, r1
    add r2.w, r2.w, r2.w
    mad r7.xyz, r1, -r2.w, -c54
    dp3 r2.w, r3, r3
    rsq r2.w, r2.w
    mul r3.xyz, r2.w, r3
    dp3_sat r3.w, r7, r3
    pow r5.w, r3.w, c132.x
    mul r3.w, r5.w, c133.x
    mov r7.xz, c3
    dp3 r5.w, r3, r1
    add r5.w, -r5.w, c3.x
    mul r6.w, r5_abs.w, r5_abs.w
    mul r6.w, r6.w, r6.w
    mul r5.w, r5_abs.w, r6.w
    lrp r6.w, r5.w, r7.x, c134.x
    mul r3.w, r3.w, r6.w
    mul r8.xyz, r5, c53
    mul r8.xyz, r3.w, r8
    mul r8.xyz, r1.w, r8
    mul r8.xyz, r0.x, r8
    mad r0.xyz, r4, r0.yzww, r8
    add r8.xyz, c44, -v2
    dp3 r0.w, r8, r8
    add r1.w, -r0.w, c44.w
    mul_sat r1.w, r1.w, c45.w
    rsq r0.w, r0.w
    mul r8.xyz, r0.w, r8
    dp3 r0.w, r8, c46
    add r0.w, -r0.w, c47.x
    mul_sat r0.w, r0.w, c47.y
    mul r0.w, r0.w, r1.w
    mad r9.xyz, r2, c119.w, v2
    mul r10, r9.y, c56
    mad r10, r9.x, c55, r10
    mad r9, r9.z, c57, r10
    add r9, r9, c58
    texldp r10, r9, s9
    rcp r1.w, r9.w
    mul_sat r9.xyz, r1.w, r9
    rcp r11.y, c86.w
    mul r1.w, r11.y, c86.z
    frc r3.w, r1.w
    add r5.w, r1.w, -r3.w
    cmp r3.w, -r3.w, c7.y, c7.x
    cmp r1.w, r1.w, c0.w, r3.w
    add r1.w, r1.w, r5.w
    rcp r1.w, r1.w
    mad r12.x, r9.x, r1.w, c119.x
    add r12.y, -r9.y, c3.x
    rcp r11.x, c86.z
    //if b15
    //  mad r13.xy, r11, c3.z, r12
    //  mul r13.zw, r9.z, c7.xyxy
    //  texldl r13, r13, s11
    //else
      mad r7.yw, r11.xxzy, c3.z, r12.xxzy
      mad r9.xy, r11, c3.w, r7.ywzw
      texld r12, r9, s11
      add r1.w, -r9.z, r12.x
      mad r9.xy, r11, c3.zwzw, r7.ywzw
      texld r12, r9, s11
      add r3.w, -r9.z, r12.x
      cmp r3.w, r3.w, c7.x, c7.y
      mad r9.xy, r11, c3.wzzw, r7.ywzw
      texld r12, r9, s11
      add r5.w, -r9.z, r12.x
      mad r9.xy, r11, c3.z, r7.ywzw
      texld r11, r9, s11
      add r8.w, -r9.z, r11.x
      cmp r8.w, r8.w, c7.x, c7.y
      mul r7.yw, r7, c86.xzzw
      frc r7.yw, r7
      cmp r9.xy, r1.w, c4, c4.zwzw
      add r1.w, r3.w, r9.y
      mad r1.w, r7.y, r1.w, r9.x
      cmp r9.xy, r5.w, c4, c4.zwzw
      add r3.w, r8.w, r9.y
      mad r3.w, r7.y, r3.w, r9.x
      lrp r13.x, r7.w, r3.w, r1.w
    //endif
    mul r9.xyz, r10, r13.x
    dp3_sat r1.w, r1, r8
    mul r10.xyz, r1.w, c45
    mul r10.xyz, r9, r10
    mul r11.xyz, r4, r0.w
    dp3 r1.w, r2, r8
    add r1.w, r1.w, c1.w
    mul_sat r1.w, r1.w, c2.w
    dp3 r2.x, -r8, r1
    add r2.x, r2.x, r2.x
    mad r2.xyz, r1, -r2.x, -r8
    dp3_sat r2.x, r2, r3
    pow r3.x, r2.x, c132.x
    mul r2.x, r3.x, c133.x
    mul r2.x, r6.w, r2.x
    mul r3.xyz, r5, c45
    mul r2.xyz, r2.x, r3
    mul r2.xyz, r0.w, r2
    mul r2.xyz, r1.w, r2
    mul r2.xyz, r9, r2
    mad r2.xyz, r11, r10, r2
    add r2.xyz, r0, r2
    cmp r0.xyz, -r0.w, r0, r2
    mul r2.xyz, r4, v1.x
    nrm r3.xyz, r1
    mul r4.xyz, r3, r3
    cmp r5.xyz, r3, c7.x, c7.y
    cmp r3.xyz, -r3, c7.x, c7.y
    mul r8, r4.x, c24
    mul r9, r4.x, c25
    mul r9, r3.x, r9
    mad r8, r8, r5.x, r9
    mul r9, r4.y, c26
    mad r8, r9, r5.y, r8
    mul r9, r4.y, c27
    mad r8, r9, r3.y, r8
    mul r9, r4.z, c28
    mad r5, r9, r5.z, r8
    mul r8, r4.z, c29
    mad r3, r8, r3.z, r5
    mul r3.xyz, r3.w, r3
    mul r3.xyz, r2, r3
    mad r1.xy, r1, c87.x, v2
    mad r1.xy, r1, c88.zwzw, r7.z
    rcp r0.w, r2.w
    add r2.w, r0.w, -c89.x
    rcp r3.w, c89.y
    mul_sat r1.w, r2.w, r3.w
    mov r1.z, c0.w
    texldl r1, r1, s12
    mul r1.xyz, r1, c88.x
    mad r1.w, r1.w, c87.w, c87.y
    add r1.w, r1.w, -v2.z
    mad_sat r1.w, r1_abs.w, -c87.z, r7.x
    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 r0.xyz, r0, r1
    mad_sat r0.xyz, r6, r0, r0
    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 330 instruction slots used (27 texture, 303 arithmetic)
 