//Adol shadows.
// ---- Created with 3Dmigoto v1.3.11 on Wed Jul 25 22:22:58 2018

cbuffer CUWMatrix : register(b0)
{
  row_major float4x4 uWMatrix : packoffset(c0);
  row_major float4x4 uVMatrix : packoffset(c4);
  row_major float4x4 uPMatrix : packoffset(c8);
}

cbuffer cb1 : register(b1)
{
  float4 cb1[10];
}

cbuffer CUMatrix : register(b2)
{
  float4 uColor : packoffset(c0);
}

cbuffer CUMatrix : register(b2)
{
  row_major float4x4 uBone[2] : packoffset(c0);
  row_major float4x4 uBoneEnd : packoffset(c765);
}



// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
  float3 v0 : POSITION0,
  float4 v1 : NORMAL0,
  float2 v2 : TEXCOORD0,
  float4 v3 : COLOR0,
  float4 v4 : COLOR1,
  uint4 v5 : BLENDINDICES0,
  float4 v6 : BLENDWEIGHT0,
  out float2 o0 : TEXCOORD0,
  out float4 o1 : COLOR0,
  out float4 o2 : SV_Position0)
{
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13;
  uint4 bitmask, uiDest;
  float4 fDest;

  float4 stereo = StereoParams.Load(0);
  float4 iniparams3 = IniParams.Load(int2(3,0));
  
  r0.x = v6.x + v6.y;
  r0.x = v6.z + r0.x;
  r0.x = v6.w + r0.x;
  r0.xyzw = v6.xyzw / r0.xxxx;
  r1.x = (int)v5.x * 4;
  r2.x = uBone[v5.x]._m00 * r0.x;
  r3.x = uBone[v5.x]._m01 * r0.x;
  r4.x = uBone[v5.x]._m02 * r0.x;
  r5.x = uBone[v5.x]._m03 * r0.x;
  r2.y = uBone[v5.x]._m10 * r0.x;
  r3.y = uBone[v5.x]._m11 * r0.x;
  r4.y = uBone[v5.x]._m12 * r0.x;
  r5.y = uBone[v5.x]._m13 * r0.x;
  r2.z = uBone[v5.x]._m20 * r0.x;
  r3.z = uBone[v5.x]._m21 * r0.x;
  r4.z = uBone[v5.x]._m22 * r0.x;
  r5.z = uBone[v5.x]._m23 * r0.x;
  r1.xyzw = uBone[v5.x]._m30_m31_m32_m33 * r0.xxxx;
  r0.x = (int)v5.y * 4;
  r6.x = uBone[v5.y]._m00 * r0.y;
  r7.x = uBone[v5.y]._m01 * r0.y;
  r8.x = uBone[v5.y]._m02 * r0.y;
  r9.x = uBone[v5.y]._m03 * r0.y;
  r6.y = uBone[v5.y]._m10 * r0.y;
  r7.y = uBone[v5.y]._m11 * r0.y;
  r8.y = uBone[v5.y]._m12 * r0.y;
  r9.y = uBone[v5.y]._m13 * r0.y;
  r6.z = uBone[v5.y]._m20 * r0.y;
  r7.z = uBone[v5.y]._m21 * r0.y;
  r8.z = uBone[v5.y]._m22 * r0.y;
  r9.z = uBone[v5.y]._m23 * r0.y;
  r10.xyzw = uBone[v5.y]._m30_m31_m32_m33 * r0.yyyy;
  r2.w = r1.x;
  r6.w = r10.x;
  r2.xyzw = r6.xyzw + r2.xyzw;
  r3.w = r1.y;
  r7.w = r10.y;
  r3.xyzw = r7.xyzw + r3.xyzw;
  r4.w = r1.z;
  r8.w = r10.z;
  r4.xyzw = r8.xyzw + r4.xyzw;
  r5.w = r1.w;
  r9.w = r10.w;
  r1.xyzw = r9.xyzw + r5.xyzw;
  r0.x = (int)v5.z * 4;
  r5.x = uBone[v5.y]._m00 * r0.z;
  r6.x = uBone[v5.y]._m01 * r0.z;
  r7.x = uBone[v5.y]._m02 * r0.z;
  r8.x = uBone[v5.y]._m03 * r0.z;
  r5.y = uBone[v5.y]._m10 * r0.z;
  r6.y = uBone[v5.y]._m11 * r0.z;
  r7.y = uBone[v5.y]._m12 * r0.z;
  r8.y = uBone[v5.y]._m13 * r0.z;
  r5.z = uBone[v5.y]._m20 * r0.z;
  r6.z = uBone[v5.y]._m21 * r0.z;
  r7.z = uBone[v5.y]._m22 * r0.z;
  r8.z = uBone[v5.y]._m23 * r0.z;
  r9.xyzw = uBone[v5.y]._m30_m31_m32_m33 * r0.zzzz;
  r0.x = (int)v5.w * 4;
  r10.x = uBone[v5.y]._m00 * r0.w;
  r11.x = uBone[v5.y]._m01 * r0.w;
  r12.x = uBone[v5.y]._m02 * r0.w;
  r13.x = uBone[v5.y]._m03 * r0.w;
  r10.y = uBone[v5.y]._m10 * r0.w;
  r11.y = uBone[v5.y]._m11 * r0.w;
  r12.y = uBone[v5.y]._m12 * r0.w;
  r13.y = uBone[v5.y]._m13 * r0.w;
  r10.z = uBone[v5.y]._m20 * r0.w;
  r11.z = uBone[v5.y]._m21 * r0.w;
  r12.z = uBone[v5.y]._m22 * r0.w;
  r13.z = uBone[v5.y]._m23 * r0.w;
  r0.xyzw = uBone[v5.y]._m30_m31_m32_m33 * r0.wwww;
  r5.w = r9.x;
  r10.w = r0.x;
  r5.xyzw = r10.xyzw + r5.xyzw;
  r6.w = r9.y;
  r11.w = r0.y;
  r6.xyzw = r11.xyzw + r6.xyzw;
  r7.w = r9.z;
  r12.w = r0.z;
  r7.xyzw = r12.xyzw + r7.xyzw;
  r8.w = r9.w;
  r13.w = r0.w;
  r0.xyzw = r13.xyzw + r8.xyzw;
  r2.xyzw = r5.xyzw + r2.xyzw;
  r3.xyzw = r6.xyzw + r3.xyzw;
  r4.xyzw = r7.xyzw + r4.xyzw;
  r0.xyzw = r1.xyzw + r0.xyzw;
  r1.xyz = v0.xyz;
  r1.w = 1;
  r2.x = dot(r1.xyzw, r2.xyzw);
  r2.y = dot(r1.xyzw, r3.xyzw);
  r2.z = dot(r1.xyzw, r4.xyzw);
  r0.x = dot(r1.xyzw, r0.xyzw);
  r1.xyzw = uWMatrix._m00_m01_m02_m03 * r2.xxxx;
  r3.xyzw = uWMatrix._m10_m11_m12_m13 * r2.yyyy;
  r1.xyzw = r3.xyzw + r1.xyzw;
  r2.xyzw = uWMatrix._m20_m21_m22_m23 * r2.zzzz;
  r1.xyzw = r2.xyzw + r1.xyzw;
  r0.xyzw = uWMatrix._m30_m31_m32_m33 * r0.xxxx;
  r0.xyzw = r1.xyzw + r0.xyzw;
  r1.xyzw = uVMatrix._m00_m01_m02_m03 * r0.xxxx;
  r2.xyzw = uVMatrix._m10_m11_m12_m13 * r0.yyyy;
  r1.xyzw = r2.xyzw + r1.xyzw;
  r2.xyzw = uVMatrix._m20_m21_m22_m23 * r0.zzzz;
  r1.xyzw = r2.xyzw + r1.xyzw;
  r0.xyzw = uVMatrix._m30_m31_m32_m33 * r0.wwww;
  r0.xyzw = r1.xyzw + r0.xyzw;
  r1.xyzw = uPMatrix._m00_m01_m02_m03 * r0.xxxx;
  r2.xyzw = uPMatrix._m10_m11_m12_m13 * r0.yyyy;
  r1.xyzw = r2.xyzw + r1.xyzw;
  r2.xyzw = uPMatrix._m20_m21_m22_m23 * r0.zzzz;
  r1.xyzw = r2.xyzw + r1.xyzw;
  r0.xyzw = uPMatrix._m30_m31_m32_m33 * r0.wwww;
  o2.xyzw = r1.xyzw + r0.xyzw;
  int forceno3d;
  forceno3d=1;
  if ((iniparams3.x==4096 && iniparams3.y==4096) || forceno3d==1)
  {
	o2.x-=stereo.x*(o2.w-stereo.y);
  }
  r0.xyzw = cb1[0].xxxx * v3.xyzw;
  o1.xyzw = min(float4(1,1,1,1), r0.xyzw);
  o0.xy = v2.xy;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v1.3.11 on Wed Jul 25 22:22:58 2018
//
//
// Buffer Definitions:
//
// cbuffer CUWMatrix
// {
//
//   row_major float4x4 uWMatrix;       // Offset:    0 Size:    64
//   row_major float4x4 uVMatrix;       // Offset:   64 Size:    64
//   row_major float4x4 uPMatrix;       // Offset:  128 Size:    64
//
// }
//
// cbuffer CUMatrix
// {
//
//   float4 uColor;                     // Offset:    0 Size:    16
//
// }
//
// cbuffer CUMatrix
// {
//
//   row_major float4x4 uBone[2];       // Offset:    0 Size:   128
//   row_major float4x4 uBoneEnd;       // Offset: 12240 Size:    64 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// CUWMatrix                         cbuffer      NA          NA    0        1
// CUMatrix                          cbuffer      NA          NA    1        1
// CUMatrix                          cbuffer      NA          NA    2        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz
// NORMAL                   0   xyzw        1     NONE   float
// TEXCOORD                 0   xy          2     NONE   float   xy
// COLOR                    0   xyzw        3     NONE   float   xyzw
// COLOR                    1   xyzw        4     NONE   float
// BLENDINDICES             0   xyzw        5     NONE    uint   xyzw
// BLENDWEIGHT              0   xyzw        6     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xy          0     NONE   float   xy
// COLOR                    0   xyzw        1     NONE   float   xyzw
// SV_Position              0   xyzw        2      POS   float   xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed | skipOptimization
dcl_constantbuffer cb0[12], immediateIndexed
dcl_constantbuffer cb1[1], immediateIndexed
dcl_constantbuffer cb2[8], dynamicIndexed
dcl_input v0.xyz
dcl_input v2.xy
dcl_input v3.xyzw
dcl_input v5.xyzw
dcl_input v6.xyzw
dcl_output o0.xy
dcl_output o1.xyzw
dcl_output_siv o2.xyzw, position
dcl_temps 14
add r0.x, v6.y, v6.x
add r0.x, r0.x, v6.z
add r0.x, r0.x, v6.w
div r0.xyzw, v6.xyzw, r0.xxxx
imul null, r1.x, v5.x, l(4)
mul r2.x, r0.x, cb2[r1.x + 0].x
mul r3.x, r0.x, cb2[r1.x + 0].y
mul r4.x, r0.x, cb2[r1.x + 0].z
mul r5.x, r0.x, cb2[r1.x + 0].w
mul r2.y, r0.x, cb2[r1.x + 1].x
mul r3.y, r0.x, cb2[r1.x + 1].y
mul r4.y, r0.x, cb2[r1.x + 1].z
mul r5.y, r0.x, cb2[r1.x + 1].w
mul r2.z, r0.x, cb2[r1.x + 2].x
mul r3.z, r0.x, cb2[r1.x + 2].y
mul r4.z, r0.x, cb2[r1.x + 2].z
mul r5.z, r0.x, cb2[r1.x + 2].w
mul r1.xyzw, r0.xxxx, cb2[r1.x + 3].xyzw
imul null, r0.x, v5.y, l(4)
mul r6.x, r0.y, cb2[r0.x + 0].x
mul r7.x, r0.y, cb2[r0.x + 0].y
mul r8.x, r0.y, cb2[r0.x + 0].z
mul r9.x, r0.y, cb2[r0.x + 0].w
mul r6.y, r0.y, cb2[r0.x + 1].x
mul r7.y, r0.y, cb2[r0.x + 1].y
mul r8.y, r0.y, cb2[r0.x + 1].z
mul r9.y, r0.y, cb2[r0.x + 1].w
mul r6.z, r0.y, cb2[r0.x + 2].x
mul r7.z, r0.y, cb2[r0.x + 2].y
mul r8.z, r0.y, cb2[r0.x + 2].z
mul r9.z, r0.y, cb2[r0.x + 2].w
mul r10.xyzw, r0.yyyy, cb2[r0.x + 3].xyzw
mov r2.w, r1.x
mov r6.w, r10.x
add r2.xyzw, r2.xyzw, r6.xyzw
mov r3.w, r1.y
mov r7.w, r10.y
add r3.xyzw, r3.xyzw, r7.xyzw
mov r4.w, r1.z
mov r8.w, r10.z
add r4.xyzw, r4.xyzw, r8.xyzw
mov r5.w, r1.w
mov r9.w, r10.w
add r1.xyzw, r5.xyzw, r9.xyzw
imul null, r0.x, v5.z, l(4)
mul r5.x, r0.z, cb2[r0.x + 0].x
mul r6.x, r0.z, cb2[r0.x + 0].y
mul r7.x, r0.z, cb2[r0.x + 0].z
mul r8.x, r0.z, cb2[r0.x + 0].w
mul r5.y, r0.z, cb2[r0.x + 1].x
mul r6.y, r0.z, cb2[r0.x + 1].y
mul r7.y, r0.z, cb2[r0.x + 1].z
mul r8.y, r0.z, cb2[r0.x + 1].w
mul r5.z, r0.z, cb2[r0.x + 2].x
mul r6.z, r0.z, cb2[r0.x + 2].y
mul r7.z, r0.z, cb2[r0.x + 2].z
mul r8.z, r0.z, cb2[r0.x + 2].w
mul r9.xyzw, r0.zzzz, cb2[r0.x + 3].xyzw
imul null, r0.x, v5.w, l(4)
mul r10.x, r0.w, cb2[r0.x + 0].x
mul r11.x, r0.w, cb2[r0.x + 0].y
mul r12.x, r0.w, cb2[r0.x + 0].z
mul r13.x, r0.w, cb2[r0.x + 0].w
mul r10.y, r0.w, cb2[r0.x + 1].x
mul r11.y, r0.w, cb2[r0.x + 1].y
mul r12.y, r0.w, cb2[r0.x + 1].z
mul r13.y, r0.w, cb2[r0.x + 1].w
mul r10.z, r0.w, cb2[r0.x + 2].x
mul r11.z, r0.w, cb2[r0.x + 2].y
mul r12.z, r0.w, cb2[r0.x + 2].z
mul r13.z, r0.w, cb2[r0.x + 2].w
mul r0.xyzw, r0.wwww, cb2[r0.x + 3].xyzw
mov r5.w, r9.x
mov r10.w, r0.x
add r5.xyzw, r5.xyzw, r10.xyzw
mov r6.w, r9.y
mov r11.w, r0.y
add r6.xyzw, r6.xyzw, r11.xyzw
mov r7.w, r9.z
mov r12.w, r0.z
add r7.xyzw, r7.xyzw, r12.xyzw
mov r8.w, r9.w
mov r13.w, r0.w
add r0.xyzw, r8.xyzw, r13.xyzw
add r2.xyzw, r2.xyzw, r5.xyzw
add r3.xyzw, r3.xyzw, r6.xyzw
add r4.xyzw, r4.xyzw, r7.xyzw
add r0.xyzw, r0.xyzw, r1.xyzw
mov r1.xyz, v0.xyzx
mov r1.w, l(1.000000)
dp4 r2.x, r1.xyzw, r2.xyzw
dp4 r2.y, r1.xyzw, r3.xyzw
dp4 r2.z, r1.xyzw, r4.xyzw
dp4 r0.x, r1.xyzw, r0.xyzw
mul r1.xyzw, r2.xxxx, cb0[0].xyzw
mul r3.xyzw, r2.yyyy, cb0[1].xyzw
add r1.xyzw, r1.xyzw, r3.xyzw
mul r2.xyzw, r2.zzzz, cb0[2].xyzw
add r1.xyzw, r1.xyzw, r2.xyzw
mul r0.xyzw, r0.xxxx, cb0[3].xyzw
add r0.xyzw, r0.xyzw, r1.xyzw
mul r1.xyzw, r0.xxxx, cb0[4].xyzw
mul r2.xyzw, r0.yyyy, cb0[5].xyzw
add r1.xyzw, r1.xyzw, r2.xyzw
mul r2.xyzw, r0.zzzz, cb0[6].xyzw
add r1.xyzw, r1.xyzw, r2.xyzw
mul r0.xyzw, r0.wwww, cb0[7].xyzw
add r0.xyzw, r0.xyzw, r1.xyzw
mul r1.xyzw, r0.xxxx, cb0[8].xyzw
mul r2.xyzw, r0.yyyy, cb0[9].xyzw
add r1.xyzw, r1.xyzw, r2.xyzw
mul r2.xyzw, r0.zzzz, cb0[10].xyzw
add r1.xyzw, r1.xyzw, r2.xyzw
mul r0.xyzw, r0.wwww, cb0[11].xyzw
add o2.xyzw, r0.xyzw, r1.xyzw
mul r0.xyzw, v3.xyzw, cb1[0].xxxx
min o1.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
mov o0.xy, v2.xyxx
ret
// Approximately 119 instruction slots used

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