//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 CameraPosition;
//   
//   struct
//   {
//       float4 WorldPosXYZ_SpotAngleAW;
//       float4 ColorXYZ_SpotAngleBW;
//       float4 DirectionXYZ_InvRadiusW;
//
//   } DynamicLights[14];
//   
//   float4 FogDistanceScaleAndExtinction;
//   float4 FogHeight;
//   float3 FogInScattering[2];
//   float4 FogStartDistance;
//   float4x4 LocalToWorld;
//   float4 RollingFogVector0;
//   float4 RollingFogVector1;
//   float4 ShadowCoordinateScaleBias;
//   float4 SurfaceUndulationValues;
//   float4x4 ViewProjectionMatrix;
//   float3x3 WorldToLocal;
//   bool bEnableSurfaceUndulation;
//   bool bFogEnabled;
//   bool bRollingFogEnabled;
//   bool bUseDynamicLighting;
//
//
// Registers:
//
//   Name                          Reg   Size
//   ----------------------------- ----- ----
//   bEnableSurfaceUndulation      b0       1
//   bFogEnabled                   b1       1
//   bRollingFogEnabled            b2       1
//   bUseDynamicLighting           b3       1
//   ViewProjectionMatrix          c0       4
//   CameraPosition                c4       1
//   FogHeight                     c5       1
//   FogDistanceScaleAndExtinction c6       1
//   FogInScattering               c7       2
//   FogStartDistance              c9       1
//   RollingFogVector0             c10      1
//   RollingFogVector1             c11      1
//   DynamicLights                 c12     42
//   LocalToWorld                  c54      4
//   WorldToLocal                  c58      3
//   ShadowCoordinateScaleBias     c61      1
//   SurfaceUndulationValues       c62      1
//

    vs_3_0
    def c63, 0.159154937, 0.5, 6.28318548, -3.14159274
    def c64, 0.00784313772, -1, 0.00100000005, 0
    def c65, 0, 0.816496611, 0.577350259, 9.99999975e-006
    def c66, 1.39999998, 1.5, 0, 0
    def c67, -0.707106769, -0.408248305, 0.577350259, 0.707106769
    dcl_position v0
    dcl_tangent v1
    dcl_normal v2
    dcl_texcoord v3
    dcl_color v4
    dcl_texcoord o0.xy
    dcl_texcoord1 o1
    dcl_texcoord4 o2.xyz
    dcl_texcoord5 o3.xyz
    dcl_texcoord6 o4
    dcl_texcoord7 o5
    dcl_color o6
    dcl_position o7
    if b0
      add r0.xy, c62.y, v0
      mul r0.xy, r0, c62.zwzw
      mad r0.xy, r0, c63.x, c63.y
      frc r0.xy, r0
      mad r0.xy, r0, c63.z, c63.w
      sincos r1.x, r0.x
      sincos r2.x, r0.y
      mul r0.x, r1.x, r2.x
      mad r0.x, c62.x, r0_abs.x, v0.z
      mul r1, c55, v0.y
      mad r1, c54, v0.x, r1
      mad r0, c56, r0.x, r1
      add r0, r0, c57
    else
      mul r1, c55, v0.y
      mad r1, c54, v0.x, r1
      mad r1, c56, v0.z, r1
      add r0, r1, c57
    endif
    mul r1, r0.y, c1
    mad r1, c0, r0.x, r1
    mad r1, c2, r0.z, r1
    mad o7, c3, r0.w, r1
    mad o0.xy, v4, c61, c61.wzzw
    mad r1, v2, c64.x, c64.y
    mad r2.xyz, v1.yzxw, c64.x, c64.y
    mul r3.xyz, r1.zxyw, r2
    mad r2.xyz, r1.yzxw, r2.yzxw, -r3
    mul r2.xyz, r1.w, r2
    mul r3.xyz, r1.yzxw, r2.zxyw
    mad r3.xyz, r2.yzxw, r1.zxyw, -r3
    mul r3.xyz, r1.w, r3
    mad r4.xyz, r0, -c4.w, c4
    mul r5.xyz, r4.y, c59
    mad r4.xyw, c58.xyzz, r4.x, r5.xyzz
    mad r4.xyz, c60, r4.z, r4.xyww
    dp3 r5.x, r3, r4
    dp3 r5.y, r2, r4
    dp3 r5.z, r1, r4
    dp3 r1.w, r5, r5
    rsq r1.w, r1.w
    mul o4.xyz, r1.w, r5
    if b1
      if b2
        add r4.xyz, r0, -c4
        dp3 r1.w, r4, r4
        rsq r1.w, r1.w
        rcp r1.w, r1.w
        add r4.xy, r1.w, -c9
        mad r5.xy, c11, r0, c11.zwzw
        mad r5.xy, r5, c63.x, c63.y
        frc r5.xy, r5
        mad r5.xy, r5, c63.z, c63.w
        sincos r6.x, r5.x
        mul r1.w, r6.x, c10.x
        sincos r6.y, r5.y
        mad r1.w, r1.w, -r6.y, c4.z
        add r5, -r1.w, c5
        sge r1.w, c64.z, r4_abs.z
        lrp r2.w, r1.w, c64.z, r4.z
        rcp r1.w, r2.w
        mul_sat r5, r1.w, r5
        max r4.xy, r4, c64.w
        add r4.zw, -r5.xyxy, r5
        mul r4.xy, r4_abs.zwzw, r4
      else
        add r5.xyz, r0, -c4
        dp3 r1.w, r5, r5
        rsq r1.w, r1.w
        rcp r1.w, r1.w
        add r4.zw, r1.w, -c9.xyxy
        max r4.xy, r4.zwzw, c64.w
      endif
      slt r4.zw, r4.xyxy, c6
      mul r4.xy, r4, c6
      exp r5.x, r4.x
      exp r5.y, r4.y
      mul r4.xy, r4.zwzw, r5
      mad r4.zw, r4, r5.xyxy, c64.y
      mul r5.xyz, r4.z, c7
      mov r5.w, r4.x
      mul r5, r4.y, r5
      mad o6.xyz, r4.w, c8, r5
      mov o6.w, r5.w
    else
      mov o6, c64_abs.wwwy
    endif
    if b3
      mul r4.xyz, r1.y, c55
      mad r4.xyz, c54, r1.x, r4
      mad r4.xyz, c56, r1.z, r4
      nrm r5.xyz, r4
      dp3 r4.x, r3, c58
      dp3 r6.x, r3, c59
      dp3 r3.x, r3, c60
      dp3 r4.y, r2, c58
      dp3 r6.y, r2, c59
      dp3 r3.y, r2, c60
      dp3 r4.z, r1, c58
      dp3 r6.z, r1, c59
      dp3 r3.z, r1, c60
      dp3 r1.x, r4, c65
      dp3 r1.y, r6, c65
      dp3 r1.z, r3, c65
      nrm r2.xyz, r1
      dp3 r1.x, r4, c67
      dp3 r1.y, r6, c67
      dp3 r1.z, r3, c67
      nrm r7.xyz, r1
      dp3 r1.x, r4.yzxw, c67.yzww
      dp3 r1.y, r6.yzxw, c67.yzww
      dp3 r1.z, r3.yzxw, c67.yzww
      nrm r3.xyz, r1
      abs r1.x, c14.w
      add r1.yzw, -r0.xxyz, c12.xxyz
      nrm r4.xyz, r1.yzww
      dp3 r2.w, r5, r4
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r4, c14
      add r3.w, r3.w, -c12.w
      mul_sat r3.w, r3.w, c13.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r1.xyz, r1.x, r1.yzww
      dp3 r1.x, r1, r1
      add r1.x, -r1.x, -c64.y
      max r1.x, r1.x, c64.w
      mul r1.x, r1.x, r1.x
      mul r1.x, r1.x, r2.w
      mul r1.xyz, r1.x, c13
      dp3 r6.x, r4, r2
      dp3 r6.y, r4, r7
      dp3 r6.z, r4, r3
      max r4.xyz, r6, c64.w
      abs r1.w, c17.w
      add r6.xyz, -r0, c15
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c17
      add r3.w, r3.w, -c15.w
      mul_sat r3.w, r3.w, c16.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c16
      dp3 r9.x, r8, r2
      dp3 r9.y, r8, r7
      dp3 r9.z, r8, r3
      max r8.xyz, r9, c64.w
      mul r9.xyz, r6, r8.x
      mad r9.xyz, r1, r4.x, r9
      mul r8.xyw, r6.xyzz, r8.y
      mad r4.xyw, r1.xyzz, r4.y, r8
      mul r6.xyz, r6, r8.z
      mad r1.xyz, r1, r4.z, r6
      abs r1.w, c20.w
      add r6.xyz, -r0, c18
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c20
      add r3.w, r3.w, -c18.w
      mul_sat r3.w, r3.w, c19.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c19
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4.xyww
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c23.w
      add r6.xyz, -r0, c21
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c23
      add r3.w, r3.w, -c21.w
      mul_sat r3.w, r3.w, c22.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c22
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c26.w
      add r6.xyz, -r0, c24
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c26
      add r3.w, r3.w, -c24.w
      mul_sat r3.w, r3.w, c25.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c25
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c29.w
      add r6.xyz, -r0, c27
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c29
      add r3.w, r3.w, -c27.w
      mul_sat r3.w, r3.w, c28.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c28
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c32.w
      add r6.xyz, -r0, c30
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c32
      add r3.w, r3.w, -c30.w
      mul_sat r3.w, r3.w, c31.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c31
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c35.w
      add r6.xyz, -r0, c33
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c35
      add r3.w, r3.w, -c33.w
      mul_sat r3.w, r3.w, c34.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c34
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c38.w
      add r6.xyz, -r0, c36
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c38
      add r3.w, r3.w, -c36.w
      mul_sat r3.w, r3.w, c37.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c37
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c41.w
      add r6.xyz, -r0, c39
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c41
      add r3.w, r3.w, -c39.w
      mul_sat r3.w, r3.w, c40.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c40
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c44.w
      add r6.xyz, -r0, c42
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c44
      add r3.w, r3.w, -c42.w
      mul_sat r3.w, r3.w, c43.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c43
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c47.w
      add r6.xyz, -r0, c45
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c47
      add r3.w, r3.w, -c45.w
      mul_sat r3.w, r3.w, c46.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c46
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c50.w
      add r6.xyz, -r0, c48
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c50
      add r3.w, r3.w, -c48.w
      mul_sat r3.w, r3.w, c49.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r6.xyz, r1.w, r6
      dp3 r1.w, r6, r6
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r6.xyz, r1.w, c49
      dp3 r10.x, r8, r2
      dp3 r10.y, r8, r7
      dp3 r10.z, r8, r3
      max r8.xyz, r10, c64.w
      mad r9.xyz, r6, r8.x, r9
      mad r4.xyz, r6, r8.y, r4
      mad r1.xyz, r6, r8.z, r1
      abs r1.w, c53.w
      add r6.xyz, -r0, c51
      nrm r8.xyz, r6
      dp3 r2.w, r5, r8
      max r2.w, r2.w, c65.w
      rsq r2.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, c66.x
      dp3 r3.w, r8, c53
      add r3.w, r3.w, -c51.w
      mul_sat r3.w, r3.w, c52.w
      mul r3.w, r3.w, r3.w
      mul r2.w, r2.w, r3.w
      mul r5.xyz, r1.w, r6
      dp3 r1.w, r5, r5
      add r1.w, -r1.w, -c64.y
      max r1.w, r1.w, c64.w
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, r2.w
      mul r5.xyz, r1.w, c52
      dp3 r2.x, r8, r2
      dp3 r2.y, r8, r7
      dp3 r2.z, r8, r3
      max r2.xyz, r2, c64.w
      mad r3.xyz, r5, r2.x, r9
      mad r2.xyw, r5.xyzz, r2.y, r4.xyzz
      mad r1.xyz, r5, r2.z, r1
      mul r3.xyz, r3, r3
      mul r4.xyz, r3, c66.y
      mul r2.xyz, r2.xyww, r2.xyww
      mul r5.xyz, r2, c66.y
      mul r1.xyz, r1, r1
      mul r6.xyz, r1, c66.y
      mul r2.xyz, r2, c63.y
      mad r2.xyz, r3, c63.y, r2
      mad r1.xyz, r1, c63.y, r2
      max r1.w, r1.z, r1.y
      max r1.w, r1.w, r1.x
      slt r1.w, c64.w, r1.w
      mul o3.xyz, r1, r1.w
      max r1.x, r4.z, r4.y
      max o2.x, r1.x, r4.x
      max r1.x, r5.z, r5.y
      max o2.y, r1.x, r5.x
      max r1.x, r6.z, r6.y
      max o2.z, r1.x, r6.x
    else
      mov o2.xyz, c64.w
      mov o3.xyz, c64.w
    endif
    mul o1, c64_abs.yyww, v3.xyxx
    mov o4.w, -c64.y
    mov o5, r0

// approximately 590 instruction slots used
 