//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float4 CubemapColor_24;
//   float4 Layer0Color_1;
//   samplerCUBE Layer0CubeMap_0;
//   sampler2D Layer0Diffuse_1;
//   sampler2D Layer0Normal_0;
//   float SpecFactor_11;
//   float SpecFresnel_12;
//   float SpecPower_10;
//   float WindowLightmapIntensity_22;
//   float WindowLightmapWorldScale_17;
//   sampler2D WindowLightmap_2;
//   float WindowMaskBias_34;
//   float WindowMaskScale_35;
//   sampler2D WindowTOD1DLUTMap_3;
//   float4 g_AmbientCube[6];
//   
//   struct
//   {
//       float3 m_Direction;
//       float3 m_Color;
//
//   } g_DirectLights[2];
//   
//   float4 g_EyePosition;
//   float4 g_FogColor;
//   float4 g_FogParams;
//   float4 g_LayeredSkyUserColor3;
//   
//   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];
//   
//   float4 g_TimeOfDay;
//   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_TimeOfDay                      c19      1
//   g_AmbientCube                    c24      6
//   g_OmniLights                     c32      2
//   g_DirectLights                   c40      2
//   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_LayeredSkyUserColor3           c103     1
//   g_ProjShadowParams               c119     1
//   Layer0Color_1                    c128     1
//   SpecPower_10                     c129     1
//   SpecFactor_11                    c130     1
//   SpecFresnel_12                   c131     1
//   WindowLightmapWorldScale_17      c132     1
//   WindowLightmapIntensity_22       c133     1
//   CubemapColor_24                  c134     1
//   WindowMaskBias_34                c135     1
//   WindowMaskScale_35               c136     1
//   Layer0Normal_0                   s0       1
//   Layer0Diffuse_1                  s1       1
//   WindowLightmap_2                 s2       1
//   WindowTOD1DLUTMap_3              s3       1
//   Layer0CubeMap_0                  s4       1
//   g_ProjectorCookies               s9       1
//   g_ProjectorShadow                s11      1
//   g_WorldLightMapSampler           s12      1
//

    ps_3_0
    def c0, -0.5, 1, 2, 0.5
    def c1, 1, 0, 45, 0.049999997
    def c2, 49.9999962, 0, 0, 0
    def c3, 1, -1, 0, -0
    dcl_texcoord v0.xy
    dcl_color v1.xzw
    dcl_color1 v2
    dcl_texcoord1 v3
    dcl_texcoord2 v4.xyz
    dcl_texcoord3 v5.xyz
    dcl_texcoord4 v6.xyz
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_cube s4
    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
    mul r2.xyz, c128, v2
    mov r0.w, v2.w
    mul r2.xyz, r2, c0.z
    mul r2.w, r0.w, c128.w
    texld r4, v0, s1
    mul r2, r2, r4
    mov r5.yw, c0
    mad r4.xy, v3, c132.x, r5.w
    texld r6, r4, s2
    mov r4.xy, c1
    mul r4.xy, r4, c19.x
    texld r7, r4, s3
    mul r4.xyz, r6, r7
    add r6.xyz, -c12.xzyw, v3.xzyw
    dp3 r0.w, r6, r6
    rsq r0.w, r0.w
    mul r6.xyz, r0.w, r6
    dp3 r0.w, r6.xzyw, r1
    add r0.w, r0.w, r0.w
    mad r6.xyz, r1.xzyw, -r0.w, r6
    texld r6, r6, s4
    mul r6.xyz, r6, c134
    mul r6.xyz, r6, c103
    mad r4.xyz, r4, c133.x, r6
    mul r4.xyz, r4, v2
    mov r5.x, c136.x
    mad_sat r0.w, r4.w, r5.x, c135.x
    mul r4.xyz, r0.w, r4
    dp3 r0.w, r0, r0
    rsq r0.w, r0.w
    rcp r1.w, r0.w
    add r3.w, -r1.w, c1.z
    mul_sat r3.w, r3.w, c1.w
    dp3 r5.x, r3, c40
    add r5.x, r5.x, c1.w
    mul_sat r5.x, r5.x, c2.x
    dp3 r5.z, -c40, r1
    add r5.z, r5.z, r5.z
    mad r6.xyz, r1, -r5.z, -c40
    mul r0.xyz, r0.w, r0
    dp3_sat r0.w, r6, r0
    pow r5.z, r0.w, c129.x
    mul r0.w, r5.z, c130.x
    dp3 r5.z, r0, r1
    add r5.z, -r5.z, c0.y
    mul r6.x, r5_abs.z, r5_abs.z
    mul r6.x, r6.x, r6.x
    mul r5.z, r5_abs.z, r6.x
    lrp r6.x, r5.z, r5.y, c131.x
    mul r0.w, r0.w, r6.x
    mul r6.yzw, r4.w, c41.xxyz
    mul r6.yzw, r0.w, r6
    dp3_sat r0.w, r1, c40
    mul r7.xyz, r0.w, c41
    mul r7.xyz, r2, r7
    mad r6.yzw, r6, r5.x, r7.xxyz
    add r7.xyz, c32, -v3
    dp3 r0.w, r7, r7
    add r5.x, -r0.w, c32.w
    mul_sat r5.x, r5.x, c33.w
    if_lt -r5.x, c1.y
      rsq r0.w, r0.w
      mul r7.xyz, r0.w, r7
      dp3 r0.w, r3, r7
      add r0.w, r0.w, c1.w
      mul_sat r0.w, r0.w, c2.x
      dp3 r5.z, -r7, r1
      add r5.z, r5.z, r5.z
      mad r8.xyz, r1, -r5.z, -r7
      dp3_sat r5.z, r8, r0
      pow r7.w, r5.z, c129.x
      mul r5.z, r7.w, c130.x
      mul r5.z, r6.x, r5.z
      mul r8.xyz, r4.w, c33
      mul r8.xyz, r5.z, r8
      mul r8.xyz, r5.x, r8
      dp3_sat r5.z, r1, r7
      mul r7.xyz, r5.z, c33
      mul r9.xyz, r2, r5.x
      mul r7.xyz, r7, r9
      mad r7.xyz, r8, r0.w, r7
      add r6.yzw, r6, r7.xxyz
    endif
    add r7.xyz, c44, -v3
    dp3 r0.w, r7, r7
    add r5.x, -r0.w, c44.w
    mul_sat r5.x, r5.x, c45.w
    rsq r0.w, r0.w
    mul r7.xyz, r0.w, r7
    dp3 r0.w, r7, c46
    add r0.w, -r0.w, c47.x
    mul_sat r0.w, r0.w, c47.y
    mul r0.w, r0.w, r5.x
    mad r8.xyz, r3, c119.y, v3
    mul r9, r8.y, c56
    mad r9, r8.x, c55, r9
    mad r8, r8.z, c57, r9
    add r8, r8, c58
    texldp r9, r8, s9
    rcp r5.x, r8.w
    mul_sat r8.xyz, r5.x, r8
    rcp r10.y, c86.w
    mul r5.x, r10.y, c86.z
    frc r5.z, r5.x
    add r7.w, r5.x, -r5.z
    cmp r5.z, -r5.z, c1.y, c1.x
    cmp r5.x, r5.x, c1.y, r5.z
    add r5.x, r5.x, r7.w
    rcp r5.x, r5.x
    mad r11.x, r8.x, r5.x, c119.x
    add r11.y, -r8.y, c0.y
    add_sat r8.z, r8.z, c119.z
    rcp r10.x, c86.z
    //if b15
    //  mad r8.xy, r10, c0.w, r11
    //  mov r8.w, c1.y
    //  texldl r12, r8, s11
    //else
      mad r5.xz, r10.xyyw, c0.w, r11.xyyw
      mad r8.xy, r10, c0.x, r5.xzzw
      texld r11, r8, s11
      add r7.w, -r8.z, r11.x
      mad r8.xy, r10, c0.wxzw, r5.xzzw
      texld r11, r8, s11
      add r8.x, -r8.z, r11.x
      mad r8.yw, r10.xxzy, c0.xxzw, r5.xxzz
      texld r11, r8.ywzw, s11
      add r8.y, -r8.z, r11.x
      mad r10.xy, r10, c0.w, r5.xzzw
      texld r10, r10, s11
      add r8.z, -r8.z, r10.x
      cmp r8.xz, r8, c1.x, c1.y
      mul r5.xz, r5, c86.zyww
      frc r5.xz, r5
      cmp r10.xy, r7.w, c3, c3.zwzw
      add r7.w, r8.x, r10.y
      mad r7.w, r5.x, r7.w, r10.x
      cmp r8.xy, r8.y, c3, c3.zwzw
      add r8.y, r8.y, r8.z
      mad r5.x, r5.x, r8.y, r8.x
      lrp r12.x, r5.z, r5.x, r7.w
    //endif
    mul r8.xyz, r9, r12.x
    dp3 r3.x, r3, r7
    add r3.x, r3.x, c1.w
    mul_sat r3.x, r3.x, c2.x
    dp3 r3.y, -r7, r1
    add r3.y, r3.y, r3.y
    mad r9.xyz, r1, -r3.y, -r7
    dp3_sat r0.x, r9, r0
    pow r3.y, r0.x, c129.x
    mul r0.x, r3.y, c130.x
    mul r0.x, r6.x, r0.x
    mul r9.xyz, r4.w, c45
    mul r0.xyz, r0.x, r9
    mul r0.xyz, r0.w, r0
    mul r0.xyz, r3.x, r0
    dp3_sat r3.x, r1, r7
    mul r3.xyz, r3.x, c45
    mul r3.xyz, r8, r3
    mul r7.xyz, r2, r0.w
    mul r3.xyz, r3, r7
    mad r0.xyz, r0, r8, r3
    add r0.xyz, r0, r6.yzww
    cmp r0.xyz, -r0.w, r6.yzww, r0
    mul r2.xyz, r2, v1.x
    mul r3.xyz, r1, r1
    cmp r6.xyz, r1, c1.x, c1.y
    cmp r7.xyz, -r1, c1.x, c1.y
    mul r8, r3.x, c24
    mul r9, r3.x, c25
    mul r9, r7.x, r9
    mad r8, r8, r6.x, r9
    mul r9, r3.y, c26
    mad r8, r9, r6.y, r8
    mul r9, r3.y, c27
    mad r8, r9, r7.y, r8
    mul r9, r3.z, c28
    mad r6, r9, r6.z, r8
    mul r8, r3.z, c29
    mad r6, r8, r7.z, r6
    mul r3.xyz, r6.w, r6
    mul r3.xyz, r2, r3
    mad r1.xy, r1, c87.x, v3
    mad r6.xy, r1, c88.zwzw, r5.w
    add r0.w, r1.w, -c89.x
    rcp r1.x, c89.y
    mul_sat r6.w, r0.w, r1.x
    mov r6.z, c1.y
    texldl r6, r6, s12
    mul r1.xyz, r6, c88.x
    mad r0.w, r6.w, c87.w, c87.y
    add r0.w, r0.w, -v3.z
    mad_sat r0.w, r0_abs.w, -c87.z, r5.y
    mul r1.xyz, r0.w, r1
    mul r5.xyz, r2, r1
    dp3_sat r0.w, r5, c88.y
    mad r1.xyz, r1, r2, -r3
    mad r1.xyz, r0.w, r1, r3
    add r0.xyz, r0, r1
    mad_sat r0.xyz, r4, r3.w, r0
    add r0.w, r1.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, r2.w
    mov oC1.w, r2.w

// approximately 248 instruction slots used (14 texture, 234 arithmetic)
 