//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   row_major float3x4 BoneMatrices[64];
//   sampler2D Texture2DParameter_6cacb6396fe94aef83ac4f17e82f5b83;
//   row_major float4x4 WorldMatrix;
//   float4 global_Data;
//   float4x3 global_FogPropertyMatrix;
//   float4 global_ViewPos;
//   row_major float4x4 global_ViewProjection;
//
//
// Registers:
//
//   Name                                                Reg   Size
//   --------------------------------------------------- ----- ----
//   BoneMatrices                                        c0     192
//   WorldMatrix                                         c192     4
//   global_FogPropertyMatrix                            c234     3
//   global_Data                                         c238     1
//   global_ViewProjection                               c247     4
//   global_ViewPos                                      c251     1
//   Texture2DParameter_6cacb6396fe94aef83ac4f17e82f5b83 s0       1
//

    vs_3_0
    def c196, 0.449999988, 3, 0, 0.200000003
    def c197, 1, 0, 0, 0
    dcl_texcoord v0  // In<0,1>
    dcl_blendindices v1  // In<2,3,4,5>
    dcl_blendweight v2  // In<6,7,8,9>
    dcl_position v3  // In<10,11,12>
    dcl_normal v4  // In<13,14,15>
    dcl_binormal v5  // In<16,17,18>
    dcl_tangent v6  // In<19,20,21>
    dcl_2d s0
    dcl_position o0
    dcl_texcoord o1.xy
    dcl_texcoord1 o2.xyz
    dcl_texcoord2 o3.xyz
    dcl_texcoord3 o4.xyz
    dcl_texcoord4 o5.xyz
    dcl_texcoord5 o6.x
    dcl_texcoord6 o7.x

#line 34 "C:\Program Files (x86)\EoC Tools\memory"
    mov r0.xzw, c196.xyzz
    mul r0.x, r0.x, c238.x
    mad r0.xy, v0, c196.y, r0.x
    texldl r0, r0, s0  // ::Local1<0,1,2>

#line 37
    mul r0.xyz, r0, c196.zwzw  // ::Local3<0,1,2>

#line 59
    mov r0.w, c196.z

#line 50
    slt r1, v1, -v1
    frc r2, v1
    add r3, -r2, v1
    slt r2, -r2, r2
    mad r1, r1, r2, r3
    mul r1, r1, c196.y
    mova a0, r1.yxzw

#line 53
    mad r2, v3.xyzx, c197.xxxy, c197.yyyx
    dp4 r3.x, c0[a0.x], r2
    dp4 r3.y, c1[a0.x], r2
    dp4 r3.z, c2[a0.x], r2
    mul r3.xyz, r3, v2.y
    dp4 r4.x, c0[a0.y], r2
    dp4 r4.y, c1[a0.y], r2
    dp4 r4.z, c2[a0.y], r2
    mad r3.xyz, v2.x, r4, r3  // ::worldPosition<0,1,2>
    dp4 r1.x, c0[a0.z], r2
    dp4 r1.y, c1[a0.z], r2
    dp4 r1.z, c2[a0.z], r2
    mad r1.xyz, v2.z, r1, r3  // ::worldPosition<0,1,2>
    dp4 r3.x, c0[a0.w], r2
    dp4 r3.y, c1[a0.w], r2
    dp4 r3.z, c2[a0.w], r2
    mad r1.xyz, v2.w, r3, r1  // ::worldPosition<0,1,2>
    mov r1.w, c197.x
    dp4 r2.x, c192, r1  // ::worldPosition<0>
    dp4 r2.y, c193, r1  // ::worldPosition<1>
    dp4 r2.z, c194, r1  // ::worldPosition<2>
    dp4 r2.w, c195, r1  // ::worldPosition<3>
    add r0, r0, r2  // ::worldPosition<0,1,2,3>

#line 62
    dp4 o0.x, c247, r0  // ::main<0>
    dp4 o0.y, c248, r0  // ::main<1>
    dp4 o0.z, c249, r0  // ::main<2>
    dp4 o0.w, c250, r0  // ::main<3>

#line 69
    nrm r1.xyz, v4  // ::localNormalNormalized<0,1,2>

#line 74
    dp3 r2.x, c0[a0.x], r1
    dp3 r2.y, c1[a0.x], r1
    dp3 r2.z, c2[a0.x], r1
    mul r2.xyz, r2, v2.y
    dp3 r3.x, c0[a0.y], r1
    dp3 r3.y, c1[a0.y], r1
    dp3 r3.z, c2[a0.y], r1
    mad r2.xyz, v2.x, r3, r2  // ::worldNormal<0,1,2>
    dp3 r3.x, c0[a0.z], r1
    dp3 r3.y, c1[a0.z], r1
    dp3 r3.z, c2[a0.z], r1
    mad r2.xyz, v2.z, r3, r2  // ::worldNormal<0,1,2>
    dp3 r3.x, c0[a0.w], r1
    dp3 r3.y, c1[a0.w], r1
    dp3 r3.z, c2[a0.w], r1
    mad r1.xyz, v2.w, r3, r2  // ::worldNormal<0,1,2>
    dp3 r2.x, c192, r1  // ::worldNormal<0>
    dp3 r2.y, c193, r1  // ::worldNormal<1>
    dp3 r2.z, c194, r1  // ::worldNormal<2>

#line 80
    dp3 r0.w, r2, r2
    rsq r0.w, r0.w
    mul o2.xyz, r0.w, r2  // ::main<6,7,8>

#line 85
    nrm r1.xyz, v5  // ::localBinormalNormalized<0,1,2>

#line 90
    dp3 r2.x, c0[a0.x], r1
    dp3 r2.y, c1[a0.x], r1
    dp3 r2.z, c2[a0.x], r1
    mul r2.xyz, r2, v2.y
    dp3 r3.x, c0[a0.y], r1
    dp3 r3.y, c1[a0.y], r1
    dp3 r3.z, c2[a0.y], r1
    mad r2.xyz, v2.x, r3, r2  // ::worldBinormal<0,1,2>
    dp3 r3.x, c0[a0.z], r1
    dp3 r3.y, c1[a0.z], r1
    dp3 r3.z, c2[a0.z], r1
    mad r2.xyz, v2.z, r3, r2  // ::worldBinormal<0,1,2>
    dp3 r3.x, c0[a0.w], r1
    dp3 r3.y, c1[a0.w], r1
    dp3 r3.z, c2[a0.w], r1
    mad r1.xyz, v2.w, r3, r2  // ::worldBinormal<0,1,2>
    dp3 r2.x, c192, r1  // ::worldBinormal<0>
    dp3 r2.y, c193, r1  // ::worldBinormal<1>
    dp3 r2.z, c194, r1  // ::worldBinormal<2>

#line 96
    dp3 r0.w, r2, r2
    rsq r0.w, r0.w
    mul o3.xyz, r0.w, r2  // ::main<9,10,11>

#line 101
    nrm r1.xyz, v6  // ::localTangentNormalized<0,1,2>

#line 106
    dp3 r2.x, c0[a0.x], r1
    dp3 r2.y, c1[a0.x], r1
    dp3 r2.z, c2[a0.x], r1
    mul r2.xyz, r2, v2.y
    dp3 r3.x, c0[a0.y], r1
    dp3 r3.y, c1[a0.y], r1
    dp3 r3.z, c2[a0.y], r1
    mad r2.xyz, v2.x, r3, r2  // ::worldTangent<0,1,2>
    dp3 r3.x, c0[a0.z], r1
    dp3 r3.y, c1[a0.z], r1
    dp3 r3.z, c2[a0.z], r1
    mad r2.xyz, v2.z, r3, r2  // ::worldTangent<0,1,2>
    dp3 r3.x, c0[a0.w], r1
    dp3 r3.y, c1[a0.w], r1
    dp3 r3.z, c2[a0.w], r1
    mad r1.xyz, v2.w, r3, r2  // ::worldTangent<0,1,2>
    dp3 r2.x, c192, r1  // ::worldTangent<0>
    dp3 r2.y, c193, r1  // ::worldTangent<1>
    dp3 r2.z, c194, r1  // ::worldTangent<2>

#line 112
    dp3 r0.w, r2, r2
    rsq r0.w, r0.w
    mul o4.xyz, r0.w, r2  // ::main<12,13,14>

#line 123
    add r0.w, r0.y, -c236.z

#line 117
    add r0.xyz, -r0, c251  // ::worldView<0,1,2>

#line 123
    rcp r1.x, c236.w
    mul r0.w, r0.w, r1.x  // ::heightDensity<0>
    dp3 r1.x, r0, r0

#line 117
    mov o5.xyz, r0  // ::main<15,16,17>

#line 122
    rsq r0.x, r1.x
    rcp r0.x, r0.x

#line 129
    add r0.xy, -r0.x, c235.wzzw
    mov r1.zw, c235  // ::global_FogPropertyMatrix<7,10>
    add r1.xy, r1.wzzw, -c234.wzzw

#line 122
    rcp r0.z, r1.x

#line 129
    rcp r1.x, r1.y
    mul_sat o7.x, r0.y, r1.x  // ::main<19>

#line 122
    mul_sat r0.x, r0.z, r0.x  // ::depthValue<0>
    max r0.x, r0.w, r0.x
    min o6.x, r0.x, c197.x  // ::main<18>

#line 67
    mov o1.xy, v0  // ::main<4,5>

// approximately 134 instruction slots used (2 texture, 132 arithmetic)
 