cbuffer cb3 : register(b3)
{
  float4 cb3[1];
}

cbuffer cb2 : register(b2)
{
  float4 cb2[20];
}

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

cbuffer cb0 : register(b0)
{
  float4 cb0[18];
}


Texture2D<float4> StereoParams : register(t125);
Texture1D<float4> IniParams : register(t120);

void main( 
  float4 v0 : POSITION0,
  float4 v1 : TANGENT0,
  float3 v2 : NORMAL0,
  float4 v3 : TEXCOORD0,
  float4 v4 : TEXCOORD1,
  float2 v5 : TEXCOORD2,
  float4 v6 : COLOR0,
  out float4 o0 : SV_POSITION0,
  out float4 o1 : TEXCOORD0,
  out float3 o2 : TEXCOORD1,
  out float4 o3 : COLOR0,
  out float4 o4 : TEXCOORD2,
  out float4 o5 : TEXCOORD3,
  out float4 o6 : TEXCOORD4,
  out float4 o7 : TEXCOORD6,
  out float4 o8 : TEXCOORD7,
  out float3 o9 : TEXCOORD8)
{
  float4 r0,r1,r2,r3,r4,r5;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.xyzw = cb2[1].xyzw * v0.yyyy;
  r0.xyzw = cb2[0].xyzw * v0.xxxx + r0.xyzw;
  r0.xyzw = cb2[2].xyzw * v0.zzzz + r0.xyzw;
  r0.xyzw = cb2[3].xyzw * v0.wwww + r0.xyzw;
  o0.xyzw = r0.xyzw;

float4 stereo = StereoParams.Load(0);
r0.x += stereo.x*(r0.w - stereo.y);

  o1.xy = v3.xy * cb0[17].xy + cb0[17].zw;
  r1.xyz = cb2[13].xyz * v0.yyy;
  r1.xyz = cb2[12].xyz * v0.xxx + r1.xyz;
  r1.xyz = cb2[14].xyz * v0.zzz + r1.xyz;
  r1.xyz = cb2[15].xyz * v0.www + r1.xyz;
  o2.xyz = r1.xyz;
  r1.xyz = cb1[4].xyz + -r1.xyz;
  r2.xyz = cb2[17].xyz * cb0[10].yyy;
  r2.xyz = cb2[16].xyz * cb0[10].xxx + r2.xyz;
  r2.xyz = cb2[18].xyz * cb0[10].zzz + r2.xyz;
  r2.xyz = cb2[19].xyz * cb0[10].www + r2.xyz;
  r2.xyz = -v0.xyz * cb0[10].www + r2.xyz;
  r1.w = dot(v2.xyz, v2.xyz);
  r1.w = rsqrt(r1.w);
  r3.xyz = v2.xyz * r1.www;
  r4.xyz = float3(1,0,9.99999975e-005) * r3.zxy;
  r4.xyz = r3.xyz * float3(9.99999975e-005,1,0) + -r4.xyz;
  r5.xyz = r4.xyz * r3.zxy;
  r4.xyz = r3.yzx * r4.yzx + -r5.xyz;
  r1.w = dot(r4.xyz, r4.xyz);
  r1.w = sqrt(r1.w);
  r1.w = max(9.99999975e-005, r1.w);
  r4.xyz = r4.xyz / r1.www;
  r5.xyz = r4.yzx * r3.zxy;
  r5.xyz = r3.yzx * r4.zxy + -r5.xyz;
  r5.y = dot(-r5.xyz, r2.xyz);
  r5.x = dot(r4.xyz, r2.xyz);
  r5.z = dot(r3.xyz, r2.xyz);
  r1.w = dot(r5.xyz, r5.xyz);
  r1.w = rsqrt(r1.w);
  o3.xyz = r5.xyz * r1.www;
  o3.w = v6.w;
  r2.x = cb2[16].y;
  r2.y = cb2[17].y;
  r2.z = cb2[18].y;
  r2.xyz = r2.xyz * r3.yyy;
  r5.x = cb2[16].x;
  r5.y = cb2[17].x;
  r5.z = cb2[18].x;
  r2.xyz = r5.xyz * r3.xxx + r2.xyz;
  r5.x = cb2[16].z;
  r5.y = cb2[17].z;
  r5.z = cb2[18].z;
  r2.xyz = r5.xyz * r3.zzz + r2.xyz;
  r1.w = dot(r2.xyz, r2.xyz);
  r1.w = rsqrt(r1.w);
  r2.xyz = r2.xyz * r1.www;
  o4.z = dot(r1.xyz, r2.xyz);
  r3.xyz = cb2[13].xyz * r4.yyy;
  r3.xyz = cb2[12].xyz * r4.xxx + r3.xyz;
  r3.xyz = cb2[14].xyz * r4.zzz + r3.xyz;
  r1.w = dot(r3.xyz, r3.xyz);
  r1.w = rsqrt(r1.w);
  r3.xyz = r3.xyz * r1.www;
  r4.xyz = r3.yzx * r2.zxy;
  r4.xyz = r2.yzx * r3.zxy + -r4.xyz;
  o4.y = dot(r1.xyz, -r4.xyz);
  o4.x = dot(r1.xyz, r3.xyz);
  r0.y = cb1[5].x * r0.y;
  r1.xzw = float3(0.5,0.5,0.5) * r0.xwy;
  o5.zw = r0.zw;
  o5.xy = r1.xw + r1.zz;
  o6.xy = v4.xy * cb3[0].xy + cb3[0].zw;
  o6.zw = float2(0,0);
  o7.z = r2.x;
  o7.x = r3.x;
  o7.y = -r4.x;
  o8.z = r2.y;
  o9.z = r2.z;
  o8.x = r3.y;
  o9.x = r3.z;
  o8.y = -r4.y;
  o9.y = -r4.z;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.2.9 on Fri Nov 20 20:07:26 2015
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyzw        0     NONE   float   xyzw
// TANGENT                  0   xyzw        1     NONE   float       
// NORMAL                   0   xyz         2     NONE   float   xyz 
// TEXCOORD                 0   xy          3     NONE   float   xy  
// TEXCOORD                 1   xy          4     NONE   float   xy  
// TEXCOORD                 2   xy          5     NONE   float       
// COLOR                    0   xyzw        6     NONE   float      w
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xy          1     NONE   float   xy  
// TEXCOORD                 1   xyz         2     NONE   float   xyz 
// COLOR                    0   xyzw        3     NONE   float   xyzw
// TEXCOORD                 2   xyz         4     NONE   float   xyz 
// TEXCOORD                 3   xyzw        5     NONE   float   xyzw
// TEXCOORD                 4   xyzw        6     NONE   float   xyzw
// TEXCOORD                 6   xyz         7     NONE   float   xyz 
// TEXCOORD                 7   xyz         8     NONE   float   xyz 
// TEXCOORD                 8   xyz         9     NONE   float   xyz 
//
vs_4_0
dcl_constantbuffer cb0[18], immediateIndexed
dcl_constantbuffer cb1[6], immediateIndexed
dcl_constantbuffer cb2[20], immediateIndexed
dcl_constantbuffer cb3[1], immediateIndexed
dcl_input v0.xyzw
dcl_input v2.xyz
dcl_input v3.xy
dcl_input v4.xy
dcl_input v6.w
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyz
dcl_output o3.xyzw
dcl_output o4.xyz
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyz
dcl_output o8.xyz
dcl_output o9.xyz
dcl_temps 6
mul r0.xyzw, v0.yyyy, cb2[1].xyzw
mad r0.xyzw, cb2[0].xyzw, v0.xxxx, r0.xyzw
mad r0.xyzw, cb2[2].xyzw, v0.zzzz, r0.xyzw
mad r0.xyzw, cb2[3].xyzw, v0.wwww, r0.xyzw
mov o0.xyzw, r0.xyzw
mad o1.xy, v3.xyxx, cb0[17].xyxx, cb0[17].zwzz
mul r1.xyz, v0.yyyy, cb2[13].xyzx
mad r1.xyz, cb2[12].xyzx, v0.xxxx, r1.xyzx
mad r1.xyz, cb2[14].xyzx, v0.zzzz, r1.xyzx
mad r1.xyz, cb2[15].xyzx, v0.wwww, r1.xyzx
mov o2.xyz, r1.xyzx
add r1.xyz, -r1.xyzx, cb1[4].xyzx
mul r2.xyz, cb0[10].yyyy, cb2[17].xyzx
mad r2.xyz, cb2[16].xyzx, cb0[10].xxxx, r2.xyzx
mad r2.xyz, cb2[18].xyzx, cb0[10].zzzz, r2.xyzx
mad r2.xyz, cb2[19].xyzx, cb0[10].wwww, r2.xyzx
mad r2.xyz, -v0.xyzx, cb0[10].wwww, r2.xyzx
dp3 r1.w, v2.xyzx, v2.xyzx
rsq r1.w, r1.w
mul r3.xyz, r1.wwww, v2.xyzx
mul r4.xyz, r3.zxyz, l(1.000000, 0.000000, 0.000100, 0.000000)
mad r4.xyz, r3.xyzx, l(0.000100, 1.000000, 0.000000, 0.000000), -r4.xyzx
mul r5.xyz, r3.zxyz, r4.xyzx
mad r4.xyz, r3.yzxy, r4.yzxy, -r5.xyzx
dp3 r1.w, r4.xyzx, r4.xyzx
sqrt r1.w, r1.w
max r1.w, r1.w, l(0.000100)
div r4.xyz, r4.xyzx, r1.wwww
mul r5.xyz, r3.zxyz, r4.yzxy
mad r5.xyz, r3.yzxy, r4.zxyz, -r5.xyzx
dp3 r5.y, -r5.xyzx, r2.xyzx
dp3 r5.x, r4.xyzx, r2.xyzx
dp3 r5.z, r3.xyzx, r2.xyzx
dp3 r1.w, r5.xyzx, r5.xyzx
rsq r1.w, r1.w
mul o3.xyz, r1.wwww, r5.xyzx
mov o3.w, v6.w
mov r2.x, cb2[16].y
mov r2.y, cb2[17].y
mov r2.z, cb2[18].y
mul r2.xyz, r3.yyyy, r2.xyzx
mov r5.x, cb2[16].x
mov r5.y, cb2[17].x
mov r5.z, cb2[18].x
mad r2.xyz, r5.xyzx, r3.xxxx, r2.xyzx
mov r5.x, cb2[16].z
mov r5.y, cb2[17].z
mov r5.z, cb2[18].z
mad r2.xyz, r5.xyzx, r3.zzzz, r2.xyzx
dp3 r1.w, r2.xyzx, r2.xyzx
rsq r1.w, r1.w
mul r2.xyz, r1.wwww, r2.xyzx
dp3 o4.z, r1.xyzx, r2.xyzx
mul r3.xyz, r4.yyyy, cb2[13].xyzx
mad r3.xyz, cb2[12].xyzx, r4.xxxx, r3.xyzx
mad r3.xyz, cb2[14].xyzx, r4.zzzz, r3.xyzx
dp3 r1.w, r3.xyzx, r3.xyzx
rsq r1.w, r1.w
mul r3.xyz, r1.wwww, r3.xyzx
mul r4.xyz, r2.zxyz, r3.yzxy
mad r4.xyz, r2.yzxy, r3.zxyz, -r4.xyzx
dp3 o4.y, r1.xyzx, -r4.xyzx
dp3 o4.x, r1.xyzx, r3.xyzx
mul r0.y, r0.y, cb1[5].x
mul r1.xzw, r0.xxwy, l(0.500000, 0.000000, 0.500000, 0.500000)
mov o5.zw, r0.zzzw
add o5.xy, r1.zzzz, r1.xwxx
mad o6.xy, v4.xyxx, cb3[0].xyxx, cb3[0].zwzz
mov o6.zw, l(0,0,0,0)
mov o7.z, r2.x
mov o7.x, r3.x
mov o7.y, -r4.x
mov o8.z, r2.y
mov o9.z, r2.z
mov o8.x, r3.y
mov o9.x, r3.z
mov o8.y, -r4.y
mov o9.y, -r4.z
ret 
// Approximately 0 instruction slots used

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