//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 CameraPosition;
//   float4x4 LocalToWorld;
//   float4 SurfaceUndulationValues;
//   float4x4 ViewProjectionMatrix;
//   float3x3 WorldToLocal;
//   bool bEnableSurfaceUndulation;
//
//
// Registers:
//
//   Name                     Reg   Size
//   ------------------------ ----- ----
//   bEnableSurfaceUndulation b0       1
//   ViewProjectionMatrix     c0       4
//   CameraPosition           c4       1
//   LocalToWorld             c12      4
//   WorldToLocal             c16      3
//   SurfaceUndulationValues  c19      1
//

    vs_3_0
    def c5, 0.159154937, 0.5, 6.28318548, -3.14159274
    def c6, 0.00784313772, -1, 1, 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_texcoord4 o1.xyz
    dcl_texcoord5 o2
    dcl_position o3
    if b0
      add r0.xy, c19.y, v0
      mul r0.xy, r0, c19.zwzw
      mad r0.xy, r0, c5.x, c5.y
      frc r0.xy, r0
      mad r0.xy, r0, c5.z, c5.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, c6.x, c6.y
    mad r3.xyz, v1.yzxw, c6.x, c6.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 r0.xyz, r0, -c4.w, c4
    mul r5.xyz, r0.y, c17
    mad r0.xyw, c16.xyzz, r0.x, r5.xyzz
    mad r0.xyz, c18, r0.z, r0.xyww
    dp3 o1.x, r4, r0
    dp3 o1.y, r3, r0
    dp3 o1.z, r2, r0
    mul o0, c6.zzww, v3.xyxx
    mov r12, r1
    mov o3, 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 58 instruction slots used
 