//Octopath Traveler II. Some temporal stuff.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Wed Feb 15 23:51:28 2023
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[5], immediateIndexed
dcl_constantbuffer cb1[126], immediateIndexed
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_uav_typed_texture2d (float,float,float,float) u0
dcl_uav_typed_texture2d (float,float,float,float) u1
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.xy
dcl_input vThreadID.xy
dcl_temps 32
dcl_resource_texture2d (float,float,float,float) t125
dcl_tgsm_structured g0, 16, 256
dcl_thread_group 16, 16, 1
ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture2d)(float,float,float,float) r26.xyzw, l(2, 0, 0, 0), t125.xyzw
iadd r0.xy, vThreadID.xyxx, cb0[3].xyxx
iadd r0.zw, cb0[3].zzzw, l(0, 0, -1, -1)
umin r0.xy, r0.zwzz, r0.xyxx
mov r0.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.xy, r0.xyww, t0.xyzw
ld_indexable(texture2d)(float,float,float,float) r0.z, r0.xyzw, t1.yzxw
lt r0.w, l(0.000000), r1.x
mad r1.xy, r1.xyxx, l(4.008016, 4.008016, 0.000000, 0.000000), l(-2.00397754, -2.00397754, 0.000000, 0.000000)
utof r1.zw, vThreadID.xxxy
add r1.zw, r1.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
div r2.xy, r1.zwzz, cb0[4].xyxx
add r2.z, -r2.y, l(1.000000)
mad r1.zw, r2.xxxz, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)

ge r27.x, r26.x, l(5.0)
  
mov r21.z, r1.z
mul r25.w, r25.y, r0.z
mul r25.w, r25.w, l(-0.1)
add r25.w, r25.w, l(1.0)
mad r21.z, -r25.x, r25.w, r21.z

mul r2.xyz, r1.wwww, cb1[123].xywx
mad r2.xyz, r21.zzzz, cb1[122].xywx, r2.xyzx
mad r2.xyz, r0.zzzz, cb1[124].xywx, r2.xyzx
add r2.xyz, r2.xyzx, cb1[125].xywx

if_z r27.x
mul r25.w, cb14[2].y, r0.z
mul r25.w, r25.w, l(-0.1)
add r25.w, r2.z, r25.w
mad r2.x, cb14[2].x, r25.w, r2.x
else
mul r25.w, r25.y, r0.z
mul r25.w, r25.w, l(-0.1)
add r25.w, r2.z, r25.w
mad r2.x, r25.x, r25.w, r2.x
endif

div r2.xy, r2.xyxx, r2.zzzz
add r1.zw, r1.zzzw, -r2.xxxy
movc r1.xy, r0.wwww, r1.xyxx, r1.zwzz
mul r1.z, r1.y, -cb0[0].x
dp2 r0.w, r1.xzxx, r1.xzxx
sqrt r2.x, r0.w
max r0.w, |r1.z|, |r1.x|
min r1.y, |r1.z|, |r1.x|
div r0.w, r1.y, r0.w
mul r1.y, r0.w, r0.w
mad r1.w, r1.y, l(0.0872929022), l(-0.301895)
mad r1.y, r1.w, r1.y, l(1.000000)
mul r1.w, r0.w, r1.y
lt r2.z, |r1.x|, |r1.z|
mad r0.w, -r1.y, r0.w, l(1.57079637)
movc r0.w, r2.z, r0.w, r1.w
lt r1.xy, r1.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000)
add r1.z, -r0.w, l(3.14159274)
movc r0.w, r1.x, r1.z, r0.w
movc r2.y, r1.y, -r0.w, r0.w
ne r1.xy, r2.xyxx, r2.xyxx
or r0.w, r1.y, r1.x
movc r1.xy, r0.wwww, l(0,0,0,0), r2.xyxx
ult r2.xy, r0.xyxx, cb0[3].zwzz
and r0.w, r2.y, r2.x
if_nz r0.w
  mad r2.x, r0.z, cb1[65].x, cb1[65].y
  mad r0.z, r0.z, cb1[65].z, -cb1[65].w
  div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
  add r1.z, r0.z, r2.x
  mad r1.w, r1.y, l(0.159154937), l(0.500000)
  store_uav_typed u0.xyzw, r0.xyyy, r1.xwzz
endif
div r0.x, cb0[0].w, cb0[0].y
min r0.x, r0.x, r1.x
movc r2.x, r0.w, r0.x, l(2.000000)
and r2.z, r0.x, r0.w
mov r2.yw, r1.yyyy
store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r2.xyzw
sync_g_t
ult r0.xyzw, vThreadIDInGroupFlattened.xxxx, l(128, 64, 32, 16)
if_nz r0.x
  iadd r0.x, vThreadIDInGroupFlattened.x, l(128)
  ld_structured r1.xyzw, r0.x, l(0), g0.xyzw
  lt r0.x, r2.x, r1.x
  movc r3.xy, r0.xxxx, r2.xwxx, r1.xyxx
  lt r0.x, r1.z, r2.z
  movc r3.zw, r0.xxxx, r2.zzzw, r1.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
endif
sync_g_t
if_nz r0.y
  ld_structured r1.xyzw, vThreadIDInGroupFlattened.x, l(0), g0.xyzw
  iadd r0.x, vThreadIDInGroupFlattened.x, l(64)
  ld_structured r2.xyzw, r0.x, l(0), g0.xyzw
  lt r0.x, r1.x, r2.x
  movc r3.xy, r0.xxxx, r1.xyxx, r2.xyxx
  lt r0.x, r2.z, r1.z
  movc r3.zw, r0.xxxx, r1.zzzw, r2.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
endif
sync_g_t
if_nz r0.z
  ld_structured r1.xyzw, vThreadIDInGroupFlattened.x, l(0), g0.xyzw
  iadd r0.x, vThreadIDInGroupFlattened.x, l(32)
  ld_structured r2.xyzw, r0.x, l(0), g0.xyzw
  lt r0.x, r1.x, r2.x
  movc r3.xy, r0.xxxx, r1.xyxx, r2.xyxx
  lt r0.x, r2.z, r1.z
  movc r3.zw, r0.xxxx, r1.zzzw, r2.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
endif
if_nz r0.w
  ld_structured r0.xyzw, vThreadIDInGroupFlattened.x, l(0), g0.xyzw
  iadd r1.x, vThreadIDInGroupFlattened.x, l(16)
  ld_structured r1.xyzw, r1.x, l(0), g0.xyzw
  lt r2.x, r0.x, r1.x
  movc r2.xy, r2.xxxx, r0.xyxx, r1.xyxx
  lt r0.x, r1.z, r0.z
  movc r2.zw, r0.xxxx, r0.zzzw, r1.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r2.xyzw
endif
ult r0.xyzw, vThreadIDInGroupFlattened.xxxx, l(8, 4, 2, 1)
if_nz r0.x
  ld_structured r1.xyzw, vThreadIDInGroupFlattened.x, l(0), g0.xyzw
  iadd r0.x, vThreadIDInGroupFlattened.x, l(8)
  ld_structured r2.xyzw, r0.x, l(0), g0.xyzw
  lt r0.x, r1.x, r2.x
  movc r3.xy, r0.xxxx, r1.xyxx, r2.xyxx
  lt r0.x, r2.z, r1.z
  movc r3.zw, r0.xxxx, r1.zzzw, r2.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
endif
if_nz r0.y
  ld_structured r1.xyzw, vThreadIDInGroupFlattened.x, l(0), g0.xyzw
  iadd r0.x, vThreadIDInGroupFlattened.x, l(4)
  ld_structured r2.xyzw, r0.x, l(0), g0.xyzw
  lt r0.x, r1.x, r2.x
  movc r3.xy, r0.xxxx, r1.xyxx, r2.xyxx
  lt r0.x, r2.z, r1.z
  movc r3.zw, r0.xxxx, r1.zzzw, r2.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
endif
if_nz r0.z
  ld_structured r1.xyzw, vThreadIDInGroupFlattened.x, l(0), g0.xyzw
  iadd r0.x, vThreadIDInGroupFlattened.x, l(2)
  ld_structured r2.xyzw, r0.x, l(0), g0.xyzw
  lt r0.x, r1.x, r2.x
  movc r3.xy, r0.xxxx, r1.xyxx, r2.xyxx
  lt r0.x, r2.z, r1.z
  movc r3.zw, r0.xxxx, r1.zzzw, r2.zzzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
endif
if_nz r0.w
  ld_structured r0.xyzw, l(0), l(0), g0.xyzw
  ld_structured r1.xyzw, l(1), l(0), g0.xyzw
  lt r2.x, r0.x, r1.x
  movc r2.xy, r2.xxxx, r0.xyxx, r1.xyxx
  lt r0.x, r1.z, r0.z
  movc r2.zw, r0.xxxx, r0.zzzw, r1.zzzw
  store_structured g0.xyzw, l(0), l(0), r2.xyzw
endif
if_z vThreadIDInGroupFlattened.x
  ld_structured r0.xyzw, l(0), l(0), g0.xyzw
  sincos r1.x, r2.x, r0.y
  mov r2.y, r1.x
  mul r1.xy, r0.xxxx, r2.xyxx
  sincos r0.x, r2.x, r0.w
  mov r2.z, r2.x
  mov r2.w, r0.x
  mul r1.zw, r0.zzzz, r2.zzzw
  store_uav_typed u1.xyzw, vThreadGroupID.xyyy, r1.xyzw
endif
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v1.3.16 on Wed Feb 15 23:51:28 2023
// groupshared struct { float val[4]; } g0[256];
// Texture2D<float4> t1 : register(t1);
//
// Texture2D<float4> t0 : register(t0);
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[126];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[5];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main)
// {
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture2d (float,float,float,float) u0
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture2d (float,float,float,float) u1
//   float4 r0,r1,r2,r3;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 16, 16, 1
//   r0.xy = (int2)vThreadID.xy + asint(cb0[3].xy);
//   r0.zw = asint(cb0[3].zw) + int2(-1,-1);
//   r0.xy = min((uint2)r0.xy, (uint2)r0.zw);
//   r0.zw = float2(0,0);
//   r1.xy = t0.Load(r0.xyw).xy;
//   r0.z = t1.Load(r0.xyz).x;
//   r0.w = cmp(0 < r1.x);
//   r1.xy = r1.xy * float2(4.00801611,4.00801611) + float2(-2.00397754,-2.00397754);
//   r1.zw = (uint2)vThreadID.xy;
//   r1.zw = float2(0.5,0.5) + r1.zw;
//   r2.xy = r1.zw / cb0[4].xy;
//   r2.z = 1 + -r2.y;
//   r1.zw = r2.xz * float2(2,2) + float2(-1,-1);
//   r2.xyz = cb1[123].xyw * r1.www;
//   r2.xyz = r1.zzz * cb1[122].xyw + r2.xyz;
//   r2.xyz = r0.zzz * cb1[124].xyw + r2.xyz;
//   r2.xyz = cb1[125].xyw + r2.xyz;
//   r2.xy = r2.xy / r2.zz;
//   r1.zw = -r2.xy + r1.zw;
//   r1.xy = r0.ww ? r1.xy : r1.zw;
//   r1.z = -cb0[0].x * r1.y;
//   r0.w = dot(r1.xz, r1.xz);
//   r2.x = sqrt(r0.w);
//   r0.w = max(abs(r1.x), abs(r1.z));
//   r1.y = min(abs(r1.x), abs(r1.z));
//   r0.w = r1.y / r0.w;
//   r1.y = r0.w * r0.w;
//   r1.w = r1.y * 0.0872929022 + -0.301894993;
//   r1.y = r1.w * r1.y + 1;
//   r1.w = r1.y * r0.w;
//   r2.z = cmp(abs(r1.x) < abs(r1.z));
//   r0.w = -r1.y * r0.w + 1.57079637;
//   r0.w = r2.z ? r0.w : r1.w;
//   r1.xy = cmp(r1.xz < float2(0,0));
//   r1.z = 3.14159274 + -r0.w;
//   r0.w = r1.x ? r1.z : r0.w;
//   r2.y = r1.y ? -r0.w : r0.w;
//   r1.xy = cmp(r2.xy != r2.xy);
//   r0.w = (int)r1.y | (int)r1.x;
//   r1.xy = r0.ww ? float2(0,0) : r2.xy;
//   r2.xy = cmp((uint2)r0.xy < asuint(cb0[3].zw));
//   r0.w = r2.y ? r2.x : 0;
//   if (r0.w != 0) {
//     r2.x = r0.z * cb1[65].x + cb1[65].y;
//     r0.z = r0.z * cb1[65].z + -cb1[65].w;
//     r0.z = 1 / r0.z;
//     r1.z = r2.x + r0.z;
//     r1.w = r1.y * 0.159154937 + 0.5;
//   // No code for instruction (needs manual fix):
//     store_uav_typed u0.xyzw, r0.xyyy, r1.xwzz
//   }
//   r0.x = cb0[0].w / cb0[0].y;
//   r0.x = min(r1.x, r0.x);
//   r2.x = r0.w ? r0.x : 2;
//   r2.z = (int)r0.x & (int)r0.w;
//   r2.yw = r1.yy;
//   g0[vThreadIDInGroupFlattened.x].val[0/4] = r2.x;
//   g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r2.y;
//   g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r2.z;
//   g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r2.w;
//   GroupMemoryBarrierWithGroupSync();
//   r0.xyzw = cmp((uint4)vThreadIDInGroupFlattened.xxxx < int4(128,64,32,16));
//   if (r0.x != 0) {
//     r0.x = (int)vThreadIDInGroupFlattened.x + 128;
//     r1.x = g0[r0.x].val[0/4];
//     r1.y = g0[r0.x].val[0/4+1];
//     r1.z = g0[r0.x].val[0/4+2];
//     r1.w = g0[r0.x].val[0/4+3];
//     r0.x = cmp(r2.x < r1.x);
//     r3.xy = r0.xx ? r2.xw : r1.xy;
//     r0.x = cmp(r1.z < r2.z);
//     r3.zw = r0.xx ? r2.zw : r1.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r3.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r3.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r3.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r3.w;
//   }
//   GroupMemoryBarrierWithGroupSync();
//   if (r0.y != 0) {
//     r1.x = g0[vThreadIDInGroupFlattened.x].val[0/4];
//     r1.y = g0[vThreadIDInGroupFlattened.x].val[0/4+1];
//     r1.z = g0[vThreadIDInGroupFlattened.x].val[0/4+2];
//     r1.w = g0[vThreadIDInGroupFlattened.x].val[0/4+3];
//     r0.x = (int)vThreadIDInGroupFlattened.x + 64;
//     r2.x = g0[r0.x].val[0/4];
//     r2.y = g0[r0.x].val[0/4+1];
//     r2.z = g0[r0.x].val[0/4+2];
//     r2.w = g0[r0.x].val[0/4+3];
//     r0.x = cmp(r1.x < r2.x);
//     r3.xy = r0.xx ? r1.xy : r2.xy;
//     r0.x = cmp(r2.z < r1.z);
//     r3.zw = r0.xx ? r1.zw : r2.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r3.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r3.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r3.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r3.w;
//   }
//   GroupMemoryBarrierWithGroupSync();
//   if (r0.z != 0) {
//     r1.x = g0[vThreadIDInGroupFlattened.x].val[0/4];
//     r1.y = g0[vThreadIDInGroupFlattened.x].val[0/4+1];
//     r1.z = g0[vThreadIDInGroupFlattened.x].val[0/4+2];
//     r1.w = g0[vThreadIDInGroupFlattened.x].val[0/4+3];
//     r0.x = (int)vThreadIDInGroupFlattened.x + 32;
//     r2.x = g0[r0.x].val[0/4];
//     r2.y = g0[r0.x].val[0/4+1];
//     r2.z = g0[r0.x].val[0/4+2];
//     r2.w = g0[r0.x].val[0/4+3];
//     r0.x = cmp(r1.x < r2.x);
//     r3.xy = r0.xx ? r1.xy : r2.xy;
//     r0.x = cmp(r2.z < r1.z);
//     r3.zw = r0.xx ? r1.zw : r2.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r3.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r3.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r3.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r3.w;
//   }
//   if (r0.w != 0) {
//     r0.x = g0[vThreadIDInGroupFlattened.x].val[0/4];
//     r0.y = g0[vThreadIDInGroupFlattened.x].val[0/4+1];
//     r0.z = g0[vThreadIDInGroupFlattened.x].val[0/4+2];
//     r0.w = g0[vThreadIDInGroupFlattened.x].val[0/4+3];
//     r1.x = (int)vThreadIDInGroupFlattened.x + 16;
//     r1.x = g0[r1.x].val[0/4];
//     r1.y = g0[r1.x].val[0/4+1];
//     r1.z = g0[r1.x].val[0/4+2];
//     r1.w = g0[r1.x].val[0/4+3];
//     r2.x = cmp(r0.x < r1.x);
//     r2.xy = r2.xx ? r0.xy : r1.xy;
//     r0.x = cmp(r1.z < r0.z);
//     r2.zw = r0.xx ? r0.zw : r1.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r2.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r2.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r2.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r2.w;
//   }
//   r0.xyzw = cmp((uint4)vThreadIDInGroupFlattened.xxxx < int4(8,4,2,1));
//   if (r0.x != 0) {
//     r1.x = g0[vThreadIDInGroupFlattened.x].val[0/4];
//     r1.y = g0[vThreadIDInGroupFlattened.x].val[0/4+1];
//     r1.z = g0[vThreadIDInGroupFlattened.x].val[0/4+2];
//     r1.w = g0[vThreadIDInGroupFlattened.x].val[0/4+3];
//     r0.x = (int)vThreadIDInGroupFlattened.x + 8;
//     r2.x = g0[r0.x].val[0/4];
//     r2.y = g0[r0.x].val[0/4+1];
//     r2.z = g0[r0.x].val[0/4+2];
//     r2.w = g0[r0.x].val[0/4+3];
//     r0.x = cmp(r1.x < r2.x);
//     r3.xy = r0.xx ? r1.xy : r2.xy;
//     r0.x = cmp(r2.z < r1.z);
//     r3.zw = r0.xx ? r1.zw : r2.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r3.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r3.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r3.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r3.w;
//   }
//   if (r0.y != 0) {
//     r1.x = g0[vThreadIDInGroupFlattened.x].val[0/4];
//     r1.y = g0[vThreadIDInGroupFlattened.x].val[0/4+1];
//     r1.z = g0[vThreadIDInGroupFlattened.x].val[0/4+2];
//     r1.w = g0[vThreadIDInGroupFlattened.x].val[0/4+3];
//     r0.x = (int)vThreadIDInGroupFlattened.x + 4;
//     r2.x = g0[r0.x].val[0/4];
//     r2.y = g0[r0.x].val[0/4+1];
//     r2.z = g0[r0.x].val[0/4+2];
//     r2.w = g0[r0.x].val[0/4+3];
//     r0.x = cmp(r1.x < r2.x);
//     r3.xy = r0.xx ? r1.xy : r2.xy;
//     r0.x = cmp(r2.z < r1.z);
//     r3.zw = r0.xx ? r1.zw : r2.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r3.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r3.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r3.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r3.w;
//   }
//   if (r0.z != 0) {
//     r1.x = g0[vThreadIDInGroupFlattened.x].val[0/4];
//     r1.y = g0[vThreadIDInGroupFlattened.x].val[0/4+1];
//     r1.z = g0[vThreadIDInGroupFlattened.x].val[0/4+2];
//     r1.w = g0[vThreadIDInGroupFlattened.x].val[0/4+3];
//     r0.x = (int)vThreadIDInGroupFlattened.x + 2;
//     r2.x = g0[r0.x].val[0/4];
//     r2.y = g0[r0.x].val[0/4+1];
//     r2.z = g0[r0.x].val[0/4+2];
//     r2.w = g0[r0.x].val[0/4+3];
//     r0.x = cmp(r1.x < r2.x);
//     r3.xy = r0.xx ? r1.xy : r2.xy;
//     r0.x = cmp(r2.z < r1.z);
//     r3.zw = r0.xx ? r1.zw : r2.zw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r3.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r3.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r3.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r3.w;
//   }
//   if (r0.w != 0) {
//     r0.x = g0[0].val[0/4];
//     r0.y = g0[0].val[0/4+1];
//     r0.z = g0[0].val[0/4+2];
//     r0.w = g0[0].val[0/4+3];
//     r1.x = g0[1].val[0/4];
//     r1.y = g0[1].val[0/4+1];
//     r1.z = g0[1].val[0/4+2];
//     r1.w = g0[1].val[0/4+3];
//     r2.x = cmp(r0.x < r1.x);
//     r2.xy = r2.xx ? r0.xy : r1.xy;
//     r0.x = cmp(r1.z < r0.z);
//     r2.zw = r0.xx ? r0.zw : r1.zw;
//     g0[0].val[0/4] = r2.x;
//     g0[0].val[0/4+1] = r2.y;
//     g0[0].val[0/4+2] = r2.z;
//     g0[0].val[0/4+3] = r2.w;
//   }
//   if (vThreadIDInGroupFlattened.x == 0) {
//     r0.x = g0[0].val[0/4];
//     r0.y = g0[0].val[0/4+1];
//     r0.z = g0[0].val[0/4+2];
//     r0.w = g0[0].val[0/4+3];
//     sincos(r0.y, r1.x, r2.x);
//     r2.y = r1.x;
//     r1.xy = r2.xy * r0.xx;
//     sincos(r0.w, r0.x, r2.x);
//     r2.z = r2.x;
//     r2.w = r0.x;
//     r1.zw = r2.zw * r0.zz;
//   // No code for instruction (needs manual fix):
//     store_uav_typed u1.xyzw, vThreadGroupID.xyyy, r1.xyzw
//   }
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// F:\SteamLibrary\steamapps\common\Octopath_Traveler2_DEMO\Octopath_Traveler2\Binaries\Win64\ShaderFixes\12ad76bb776d2339-cs_replace.txt(26,10): error X3000: syntax error: unexpected token ')'
/////////////////////////////////////////////////////////////////////////////
