//water halo mil2
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v1.3.16 on Wed Dec 30 12:56:46 2020
//
//
// Buffer Definitions:
//
// cbuffer CBufferGlobalConstant_Z
// {
//
//   struct StructGlobalConstant_Z
//   {
//
//       float4 c[90];                  // Offset:    0
//
//   } Global;                          // Offset:    0 Size:  1440
//
// }
//
// cbuffer CBufferObjectConstant_Z
// {
//
//   struct StructObjectConstant_Z
//   {
//
//       float4 c[32];                  // Offset:    0
//
//   } Object;                          // Offset:    0 Size:   512
//
// }
//
// Resource bind info for sBonesMatrices
// {
//
//   struct BlendMat_Z
//   {
//
//       float4 BoneMatrix[3];          // Offset:    0
//       float4 BoneRotationMatrix[3];  // Offset:   48
//       float4 BonePrevMatrix[3];      // Offset:   96
//
//   } $Element;                        // Offset:    0 Size:   144
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// sBonesMatrices                    texture  struct         r/o    1        1
// CBufferGlobalConstant_Z           cbuffer      NA          NA    0        1
// CBufferObjectConstant_Z           cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyzw        0     NONE   float   xyzw
// NORMAL                   0   xyz         1     NONE   float   xyz
// TEXCOORD                 0   xyzw        2     NONE   float   xyzw
// BLENDINDICES             0   xyzw        3     NONE    uint   xyzw
// BLENDWEIGHT              0   xyzw        4     NONE   float   xyzw
// TANGENT                  0   xyzw        5     NONE   float   xyzw
// COLOR                    0   xyzw        6     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// PREVIOUS_POSITION        0   xyzw        1     NONE   float   xyzw
// COLOR                    0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 0   xyzw        3     NONE   float   xyzw
// TEXSPACE_MAT             0   xyzw        4     NONE   float   xyzw
// TEXSPACE_MAT             1   xyzw        5     NONE   float   xyzw
// TEXSPACE_MAT             2   xyzw        6     NONE   float   xyzw
// SHADOW_TCPROJ            0   xyzw        7     NONE   float   xyzw
// INSTANCE_COLOR           0   x           8     NONE   float   x
// INSTANCE_INDEXES         0   xy          9     NONE    uint   xy
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[53], immediateIndexed
dcl_constantbuffer cb1[32], immediateIndexed
dcl_constantbuffer cb12[4], immediateIndexed
dcl_resource_structured t1, 144
dcl_input v0.xyzw
dcl_input v1.xyz
dcl_input v2.xyzw
dcl_input v3.xyzw
dcl_input v4.xyzw
dcl_input v5.xyzw
dcl_input v6.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_output o8.x
dcl_output o9.xy
dcl_temps 36
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r33.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r0.xyzw, v3.y, l(0), t1.xyzw
dp4 r0.x, r0.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r1.xyzw, v3.y, l(16), t1.xyzw
dp4 r0.y, r1.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r1.xyzw, v3.y, l(32), t1.xyzw
dp4 r0.z, r1.xyzw, v0.xyzw
mul r0.xyz, r0.xyzx, v4.yyyy
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r1.xyzw, v3.x, l(0), t1.xyzw
dp4 r1.x, r1.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.x, l(16), t1.xyzw
dp4 r1.y, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.x, l(32), t1.xyzw
dp4 r1.z, r2.xyzw, v0.xyzw
mad r0.xyz, v4.xxxx, r1.xyzx, r0.xyzx
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r1.xyzw, v3.z, l(0), t1.xyzw
dp4 r1.x, r1.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.z, l(16), t1.xyzw
dp4 r1.y, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.z, l(32), t1.xyzw
dp4 r1.z, r2.xyzw, v0.xyzw
mad r0.xyz, v4.zzzz, r1.xyzx, r0.xyzx
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r1.xyzw, v3.w, l(0), t1.xyzw
dp4 r1.x, r1.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.w, l(16), t1.xyzw
dp4 r1.y, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.w, l(32), t1.xyzw
dp4 r1.z, r2.xyzw, v0.xyzw
mad r0.xyz, v4.wwww, r1.xyzx, r0.xyzx
mov r0.w, l(1.000000)
dp4 r1.x, r0.xyzw, cb1[0].xyzw
dp4 r1.y, r0.xyzw, cb1[1].xyzw
dp4 r1.z, r0.xyzw, cb1[2].xyzw
mov r1.w, l(1.000000)
dp4 r0.z, r1.xyzw, cb0[33].xyzw
dp4 r0.x, r1.xyzw, cb0[31].xyzw
dp4 r0.y, r1.xyzw, cb0[32].xyzw
add r1.xyz, r1.xyzx, cb0[35].xyzx




mov r0.w, l(1.000000)
dp4 r30.z, r0.xyzw, cb0[51].xyzw
dp4 r30.w, r0.xyzw, cb0[52].xyzw
mov o7.xyzw, r0.xyzz
dp3 r30.x, r0.xywx, cb0[49].xywx
dp3 r30.y, r0.xywx, cb0[50].xywx


//common stereo correcton in view space
add r33.w, r30.w, -r33.y
mul r33.w, r33.w, r33.x
mul r33.w, r33.w, l(1.0)
add r30.x, r30.x, r33.w
//common stereo correcton in view space

mov o0.xyzw, r30.xyzw


ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r0.xyzw, v3.y, l(96), t1.xyzw
dp4 r0.x, r0.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.y, l(112), t1.xyzw
dp4 r0.y, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.y, l(128), t1.xyzw
dp4 r0.z, r2.xyzw, v0.xyzw
mul r0.xyz, r0.xyzx, v4.yyyy
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.x, l(96), t1.xyzw
dp4 r2.x, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyzw, v3.x, l(112), t1.xyzw
dp4 r2.y, r3.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyzw, v3.x, l(128), t1.xyzw
dp4 r2.z, r3.xyzw, v0.xyzw
mad r0.xyz, v4.xxxx, r2.xyzx, r0.xyzx
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.z, l(96), t1.xyzw
dp4 r2.x, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyzw, v3.z, l(112), t1.xyzw
dp4 r2.y, r3.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyzw, v3.z, l(128), t1.xyzw
dp4 r2.z, r3.xyzw, v0.xyzw
mad r0.xyz, v4.zzzz, r2.xyzx, r0.xyzx
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r2.xyzw, v3.w, l(96), t1.xyzw
dp4 r2.x, r2.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyzw, v3.w, l(112), t1.xyzw
dp4 r2.y, r3.xyzw, v0.xyzw
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyzw, v3.w, l(128), t1.xyzw
dp4 r2.z, r3.xyzw, v0.xyzw
mad r0.xyz, v4.wwww, r2.xyzx, r0.xyzx
mov r0.w, l(1.000000)
dp4 r2.x, r0.xyzw, cb1[4].xyzw
dp4 r2.y, r0.xyzw, cb1[5].xyzw
dp4 r2.z, r0.xyzw, cb1[6].xyzw
mov r2.w, l(1.000000)
dp4 o1.x, r2.xyzw, cb0[41].xyzw
dp4 o1.y, r2.xyzw, cb0[42].xyzw
dp4 o1.z, r2.xyzw, cb0[43].xyzw
dp4 o1.w, r2.xyzw, cb0[44].xyzw
mov o2.xyzw, v6.xyzw
mov o3.zw, v2.zzzw
mov r0.xy, v2.xyxx
mov r0.z, l(1.000000)
dp3 o3.x, r0.xyzx, cb1[30].xyzx
dp3 o3.y, r0.xyzx, cb1[31].xyzx
mov o4.w, r1.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r0.xyz, v3.x, l(48), t1.yxzx
mov r2.x, r0.y
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyz, v3.y, l(48), t1.xzyx
mov r2.y, r3.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r4.xyz, v3.z, l(48), t1.xyzx
mov r2.z, r4.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r5.xyz, v3.w, l(48), t1.xyzx
mov r2.w, r5.x
dp4 r2.x, v4.xyzw, r2.xyzw
mov r3.x, r0.z
mov r0.y, r3.z
mov r0.z, r4.y
mov r3.z, r4.z
mov r0.w, r5.y
mov r3.w, r5.z
dp4 r2.z, v4.xyzw, r3.xyzw
dp4 r2.y, v4.xyzw, r0.xyzw
dp3 r0.x, r2.xyzx, v5.xyzx
dp3 r2.x, r2.xyzx, v1.xyzx
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyz, v3.x, l(64), t1.yxzx
mov r4.x, r3.y
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r5.xyz, v3.y, l(64), t1.xzyx
mov r4.y, r5.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r6.xyz, v3.z, l(64), t1.xyzx
mov r4.z, r6.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r7.xyz, v3.w, l(64), t1.xyzx
mov r4.w, r7.x
dp4 r4.x, v4.xyzw, r4.xyzw
mov r5.x, r3.z
mov r3.y, r5.z
mov r3.z, r6.y
mov r5.z, r6.z
mov r3.w, r7.y
mov r5.w, r7.z
dp4 r4.z, v4.xyzw, r5.xyzw
dp4 r4.y, v4.xyzw, r3.xyzw
dp3 r0.y, r4.xyzx, v5.xyzx
dp3 r2.y, r4.xyzx, v1.xyzx
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r3.xyz, v3.x, l(80), t1.yxzx
mov r4.x, r3.y
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r5.xyz, v3.y, l(80), t1.xzyx
mov r4.y, r5.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r6.xyz, v3.z, l(80), t1.xyzx
mov r4.z, r6.x
ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r7.xyz, v3.w, l(80), t1.xyzx
mov r4.w, r7.x
dp4 r4.x, v4.xyzw, r4.xyzw
mov r5.x, r3.z
mov r3.y, r5.z
mov r3.z, r6.y
mov r5.z, r6.z
mov r3.w, r7.y
mov r5.w, r7.z
dp4 r4.z, v4.xyzw, r5.xyzw
dp4 r4.y, v4.xyzw, r3.xyzw
dp3 r0.z, r4.xyzx, v5.xyzx
dp3 r2.z, r4.xyzx, v1.xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r0.xyz, r0.wwww, r0.xyzx
dp3 o4.x, r0.xyzx, cb1[8].xyzx
dp3 o4.y, r0.xyzx, cb1[9].xyzx
dp3 o4.z, r0.xyzx, cb1[10].xyzx
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
mul r3.xyz, r0.yzxy, r2.zxyz
mad r0.xyz, r2.yzxy, r0.zxyz, -r3.xyzx
lt r0.w, l(0.000000), v5.w
lt r1.x, v5.w, l(0.000000)
iadd r0.w, -r0.w, r1.x
itof r0.w, r0.w
mul r0.xyz, r0.wwww, r0.xyzx
dp3 o5.x, r0.xyzx, cb1[8].xyzx
dp3 o5.y, r0.xyzx, cb1[9].xyzx
dp3 o5.z, r0.xyzx, cb1[10].xyzx
mov o5.w, r1.y
mov o6.w, r1.z
dp3 o6.x, r2.xyzx, cb1[8].xyzx
dp3 o6.y, r2.xyzx, cb1[9].xyzx
dp3 o6.z, r2.xyzx, cb1[10].xyzx
mov o8.x, l(0)
mov o9.xy, l(0,0,0,0)

ret
// Approximately 171 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
