//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 CameraPosition;
//   float4 FogDistanceScaleAndExtinction;
//   float4 FogHeight;
//   float3 FogInScattering[2];
//   float4 FogStartDistance;
//   float4x4 LocalToWorld;
//   float4 RollingFogVector0;
//   float4 RollingFogVector1;
//   float4 SurfaceUndulationValues;
//   float4x4 ViewProjectionMatrix;
//   float3x3 WorldToLocal;
//   bool bEnableSurfaceUndulation;
//   bool bFogEnabled;
//   bool bRollingFogEnabled;
//
//
// Registers:
//
//   Name                          Reg   Size
//   ----------------------------- ----- ----
//   bEnableSurfaceUndulation      b0       1
//   bFogEnabled                   b1       1
//   bRollingFogEnabled            b2       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
//   LocalToWorld                  c12      4
//   WorldToLocal                  c16      3
//   SurfaceUndulationValues       c19      1
//

    vs_3_0
    def c20, 0.159154937, 0.5, 6.28318548, -3.14159274
    def c21, 0.00784313772, -1, 0.00100000005, 0
			  def c253, 0, 0, 0.0625, 1
	  dcl_2d s0
    dcl_position v0
    dcl_tangent v1
    dcl_normal v2
    dcl_texcoord v3
    dcl_texcoord o0
    dcl_texcoord6 o1
    dcl_texcoord7 o2
    dcl_color o3
    dcl_position o4
    if b0
      add r0.xy, c19.y, v0
      mul r0.xy, r0, c19.zwzw
      mad r0.xy, r0, c20.x, c20.y
      frc r0.xy, r0
      mad r0.xy, r0, c20.z, c20.w
      sincos r1.x, r0.x
      sincos r2.x, r0.y
      mul r0.x, r1.x, r2.x
      mad r0.x, c19.x, r0_abs.x, v0.z
      mul r1, c13, v0.y
      mad r1, c12, v0.x, r1
      mad r0, c14, r0.x, r1
      add r0, r0, c15
    else
      mul r1, c13, v0.y
      mad r1, c12, v0.x, r1
      mad r1, c14, v0.z, r1
      add r0, r1, c15
    endif
    mul r1, r0.y, c1
    mad r1, c0, r0.x, r1
    mad r1, c2, r0.z, r1
    mad r1, c3, r0.w, r1
    mad r2, v2, c21.x, c21.y
    mad r3.xyz, v1.yzxw, c21.x, c21.y
    mul r4.xyz, r2.zxyw, r3
    mad r3.xyz, r2.yzxw, r3.yzxw, -r4
    mul r3.xyz, r2.w, r3
    mul r4.xyz, r2.yzxw, r3.zxyw
    mad r4.xyz, r3.yzxw, r2.zxyw, -r4
    mul r4.xyz, r2.w, r4
    mad r5.xyz, r0, -c4.w, c4
    mul r6.xyz, r5.y, c17
    mad r5.xyw, c16.xyzz, r5.x, r6.xyzz
    mad r5.xyz, c18, r5.z, r5.xyww
    dp3 r4.x, r4, r5
    dp3 r4.y, r3, r5
    dp3 r4.z, r2, r5
    dp3 r0.w, r4, r4
    rsq r0.w, r0.w
    mul o1.xyz, r0.w, r4
    if b1
      if b2
        add r2.xyz, r0, -c4
        dp3 r0.w, r2, r2
        rsq r0.w, r0.w
        rcp r0.w, r0.w
        add r2.xy, r0.w, -c9
        mad r3.xy, c11, r0, c11.zwzw
        mad r3.xy, r3, c20.x, c20.y
        frc r3.xy, r3
        mad r3.xy, r3, c20.z, c20.w
        sincos r4.x, r3.x
        mul r0.w, r4.x, c10.x
        sincos r4.y, r3.y
        mad r0.w, r0.w, -r4.y, c4.z
        add r3, -r0.w, c5
        sge r0.w, c21.z, r2_abs.z
        lrp r4.x, r0.w, c21.z, r2.z
        rcp r0.w, r4.x
        mul_sat r3, r0.w, r3
        max r2.xy, r2, c21.w
        add r2.zw, -r3.xyxy, r3
        mul r2.xy, r2_abs.zwzw, r2
      else
        add r0.xyz, r0, -c4
        dp3 r0.x, r0, r0
        rsq r0.x, r0.x
        rcp r0.x, r0.x
        add r0.xy, r0.x, -c9
        max r2.xy, r0, c21.w
      endif
      slt r0.xy, r2, c6.zwzw
      mul r0.zw, r2.xyxy, c6.xyxy
      exp r2.x, r0.z
      exp r2.y, r0.w
      mul r0.zw, r0.xyxy, r2.xyxy
      mad r0.xy, r0, r2, c21.y
      mul r2.xyz, r0.x, c7
      mov r2.w, r0.z
      mul r2, r0.w, r2
      mad o3.xyz, r0.y, c8, r2
      mov o3.w, r2.w
    else
      mov o3, c21_abs.wwwy
    endif
    mul o0, c21_abs.yyww, v3.xyxx
    mov o1.w, -c21.y
    mov r12, r1
    mov o4, r1
				 texldl r11, c253.z, s0
 if_ne r12.w, c253.w
 add r11.y, r12.w, -r11.y
 mul r11.x, r11.x, r11.y
 add r12.x, r12.x, r11.x
 endif
 mov o2, r12

// approximately 125 instruction slots used
 