//Triangle Strategy squares 1.
// ---- Created with 3Dmigoto v1.3.16 on Thu Nov 24 23:36:03 2022
//Buffer<float4> t3 : register(t3);
//
//Buffer<float4> t2 : register(t2);
//
//Buffer<float4> t1 : register(t1);
//
//struct t0_t {
//  float val[4];
//};
//StructuredBuffer<t0_t> t0 : register(t0);
//
//cbuffer cb2 : register(b2)
//{
//  float4 cb2[13];
//}
//
//cbuffer cb1 : register(b1)
//{
//  float4 cb1[1];
//}
//
//cbuffer cb0 : register(b0)
//{
//  float4 cb0[128];
//}
//
//
//
//
//// 3Dmigoto declarations
//#define cmp -
//Texture1D<float4> IniParams : register(t120);
//Texture2D<float4> StereoParams : register(t125);
//
//
//void main(
//  float4 v0 : ATTRIBUTE0,
//  uint v1 : ATTRIBUTE13,
//  uint v2 : SV_VertexID0,
//  out float4 o0 : TEXCOORD10,
//  out float4 o1 : TEXCOORD11,
//  out float4 o2 : COLOR0,
//  out float4 o3 : TEXCOORD0,
//  out uint o4 : PRIMITIVE_ID0,
//  out float4 o5 : SV_POSITION0,
//  out float o6 : SV_ClipDistance0)
//{
//// Needs manual fix for instruction:
//// unknown dcl_: dcl_input_sgv v2.x, vertex_id
//  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9;
//  uint4 bitmask, uiDest;
//  float4 fDest;
//
//  o0.w = 0;
//  r0.x = (int)v2.x + asint(cb1[0].w);
//  r0.y = (uint)r0.x << 1;
//  r0.yzw = t2.Load(r0.y).xyz;
//  bitmask.x = ((~(-1 << 31)) << 1) & 0xffffffff;  r1.x = (((uint)r0.x << 1) & bitmask.x) | ((uint)1 & ~bitmask.x);
//  r1.xyzw = t2.Load(r1.x).xyzw;
//  r2.xyz = r1.yzx * r0.yzw;
//  r0.yzw = r1.xyz * r0.zwy + -r2.xyz;
//  r0.yzw = r0.yzw * r1.www;
//  r2.xyz = r0.yzw * r1.yzx;
//  r0.yzw = r0.wyz * r1.zxy + -r2.xyz;
//  r0.yzw = r0.yzw * r1.www;
//  r2.x = (int)v1.x * 36;
//  r2.yz = mad((int2)v1.xx, int2(36,36), int2(1,3));
//  r3.x = t0[r2.y].val[0/4];
//  r3.y = t0[r2.y].val[0/4+1];
//  r3.z = t0[r2.y].val[0/4+2];
//  r2.y = t0[r2.z].val[0/4];
//  r2.z = t0[r2.z].val[0/4+1];
//  r2.w = t0[r2.z].val[0/4+2];
//  r2.yzw = cb0[70].xyz + r2.yzw;
//  r3.w = mad((int)v1.x, 36, 4);
//  r4.x = t0[r3.w].val[0/4];
//  r4.y = t0[r3.w].val[0/4+1];
//  r4.z = t0[r3.w].val[0/4+2];
//  r4.w = t0[r3.w].val[0/4+3];
//  r5.xyz = r4.yyy * r3.xyz;
//  r3.xyz = v0.yyy * r3.xyz;
//  r6.xyz = r5.xyz * r0.zzz;
//  r5.xyz = r5.xyz * r1.yyy;
//  r7.x = t0[r2.x].val[0/4];
//  r7.y = t0[r2.x].val[0/4+1];
//  r7.z = t0[r2.x].val[0/4+2];
//  r0.z = mad((int)v1.x, 36, 2);
//  r8.x = t0[r0.z].val[0/4];
//  r8.y = t0[r0.z].val[0/4+1];
//  r8.z = t0[r0.z].val[0/4+2];
//  r9.xyz = r7.xyz * r4.xxx;
//  r3.xyz = r7.xyz * v0.xxx + r3.xyz;
//  r3.xyz = r8.xyz * v0.zzz + r3.xyz;
//  r4.xyz = r8.xyz * r4.zzz;
//  o1.w = r4.w * r1.w;
//  r2.xyz = r3.xyz + r2.yzw;
//  r3.xyz = r0.yyy * r9.xyz + r6.xyz;
//  o0.xyz = r0.www * r4.xyz + r3.xyz;
//  r0.yzw = r1.xxx * r9.xyz + r5.xyz;
//  o1.xyz = r1.zzz * r4.xyz + r0.yzw;
//  r0.y = (int)r0.x & asint(cb1[0].x);
//  r0.x = (int)r0.x * asint(cb1[0].y);
//  r0.xz = t1.Load(r0.x).xy;
//  o3.xy = r0.xz;
//  r0.xyzw = t3.Load(r0.y).xyzw;
//  o2.xyzw = r0.zyxw;
//  o3.zw = float2(0,0);
//  o4.x = v1.x;
//  r0.xyz = -cb0[70].xyz + r2.xyz;
//  r0.xyz = cb0[67].xyz + -r0.xyz;
//  r0.w = dot(r0.xyz, r0.xyz);
//  r0.w = sqrt(r0.w);
//  r0.xyz = r0.xyz / r0.www;
//  r0.w = -20 + r0.w;
//  r0.w = min(cb2[12].z, r0.w);
//  r0.xyz = r0.xyz * r0.www + r2.xyz;
//  r1.xyzw = cb0[1].xyzw * r0.yyyy;
//  r1.xyzw = r0.xxxx * cb0[0].xyzw + r1.xyzw;
//  r1.xyzw = r0.zzzz * cb0[2].xyzw + r1.xyzw;
//  r0.xyz = -cb0[70].xyz + r0.xyz;
//  o5.xyzw = cb0[3].xyzw + r1.xyzw;
//  r0.w = 1;
//  o6.x = dot(cb0[127].xyzw, r0.xyzw);
//  return;
//}
//
///*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Thu Nov 24 23:36:03 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// ATTRIBUTE                0   xyzw        0     NONE   float   xyz
// ATTRIBUTE               13   x           1     NONE    uint   x
// SV_VertexID              0   x           2   VERTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                10   xyzw        0     NONE   float   xyzw
// TEXCOORD                11   xyzw        1     NONE   float   xyzw
// COLOR                    0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 0   xyzw        3     NONE   float   xyzw
// PRIMITIVE_ID             0   x           4     NONE    uint   x
// SV_POSITION              0   xyzw        5      POS   float   xyzw
// SV_ClipDistance          0   x           6  CLIPDST   float   x
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[128], immediateIndexed
dcl_constantbuffer cb1[1], immediateIndexed
dcl_constantbuffer cb2[13], immediateIndexed
dcl_resource_structured t0, 16
dcl_resource_buffer (float,float,float,float) t1
dcl_resource_buffer (float,float,float,float) t2
dcl_resource_buffer (float,float,float,float) t3
dcl_input v0.xyz
dcl_input v1.x
dcl_input_sgv v2.x, vertex_id
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.x
dcl_output_siv o5.xyzw, position
dcl_output_siv o6.x, clip_distance
dcl_temps 30
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
mov o0.w, l(0)
iadd r0.x, v2.x, cb1[0].w
ishl r0.y, r0.x, l(1)
ld_indexable(buffer)(float,float,float,float) r0.yzw, r0.yyyy, t2.wxyz
bfi r1.x, l(31), l(1), r0.x, l(1)
ld_indexable(buffer)(float,float,float,float) r1.xyzw, r1.xxxx, t2.xyzw
mul r2.xyz, r0.yzwy, r1.yzxy
mad r0.yzw, r1.xxyz, r0.zzwy, -r2.xxyz
mul r0.yzw, r1.wwww, r0.yyzw
mul r2.xyz, r1.yzxy, r0.yzwy
mad r0.yzw, r0.wwyz, r1.zzxy, -r2.xxyz
mul r0.yzw, r1.wwww, r0.yyzw
imul null, r2.x, v1.x, l(36)
imad r2.yz, v1.xxxx, l(0, 36, 36, 0), l(0, 1, 3, 0)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.xyz, r2.y, l(0), t0.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.yzw, r2.z, l(0), t0.xxyz
add r2.yzw, r2.yyzw, cb0[70].xxyz
imad r3.w, v1.x, l(36), l(4)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.xyzw, r3.w, l(0), t0.xyzw
mul r5.xyz, r3.xyzx, r4.yyyy
mul r3.xyz, r3.xyzx, v0.yyyy
mul r6.xyz, r0.zzzz, r5.xyzx
mul r5.xyz, r1.yyyy, r5.xyzx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyz, r2.x, l(0), t0.xyzx
imad r0.z, v1.x, l(36), l(2)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r8.xyz, r0.z, l(0), t0.xyzx
mul r9.xyz, r4.xxxx, r7.xyzx
mad r3.xyz, r7.xyzx, v0.xxxx, r3.xyzx
mad r3.xyz, r8.xyzx, v0.zzzz, r3.xyzx
mul r4.xyz, r4.zzzz, r8.xyzx
mul o1.w, r1.w, r4.w
add r2.xyz, r2.yzwy, r3.xyzx
mad r3.xyz, r0.yyyy, r9.xyzx, r6.xyzx
mad o0.xyz, r0.wwww, r4.xyzx, r3.xyzx
mad r0.yzw, r1.xxxx, r9.xxyz, r5.xxyz
mad o1.xyz, r1.zzzz, r4.xyzx, r0.yzwy
and r0.y, r0.x, cb1[0].x
imul null, r0.x, r0.x, cb1[0].y
ld_indexable(buffer)(float,float,float,float) r0.xz, r0.xxxx, t1.xzyw
mov o3.xy, r0.xzxx
ld_indexable(buffer)(float,float,float,float) r0.xyzw, r0.yyyy, t3.xyzw
mov o2.xyzw, r0.zyxw
mov o3.zw, l(0,0,0,0)
mov o4.x, v1.x
add r0.xyz, r2.xyzx, -cb0[70].xyzx
add r0.xyz, -r0.xyzx, cb0[67].xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
sqrt r0.w, r0.w
div r0.xyz, r0.xyzx, r0.wwww
add r0.w, r0.w, l(-20.000000)
min r0.w, r0.w, cb2[12].z
mad r0.xyz, r0.xyzx, r0.wwww, r2.xyzx
mul r1.xyzw, r0.yyyy, cb0[1].xyzw
mad r1.xyzw, r0.xxxx, cb0[0].xyzw, r1.xyzw
mad r1.xyzw, r0.zzzz, cb0[2].xyzw, r1.xyzw
add r0.xyz, r0.xyzx, -cb0[70].xyzx

//mad r1.x, r25.x, r25.y, r1.x
//mul r26.x, r25.y, v0.z
//mad r1.x, r25.x, r26.x, r1.x
mul r26.x, r25.y, l(0.02)
mad r1.x, r25.x, r26.x, r1.x

add o5.xyzw, r1.xyzw, cb0[3].xyzw
mov r0.w, l(1.000000)
dp4 o6.x, cb0[127].xyzw, r0.xyzw
ret
// Approximately 0 instruction slots used
