//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sun Oct 13 12:49:53 2024
//
//
// 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[31], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_resource_structured t0, 4
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_uav_typed_texture2d (float,float,float,float) u0
dcl_uav_typed_texture2d (float,float,float,float) u1
dcl_uav_typed_texture2d (float,float,float,float) u2
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.x
dcl_temps 11
dcl_indexableTemp x0[1], 4
dcl_indexableTemp x1[1], 4
dcl_tgsm_structured g0, 16, 256
dcl_tgsm_raw g1, 4
dcl_tgsm_raw g2, 4
dcl_thread_group 16, 16, 1
iadd r0.x, vThreadGroupID.x, cb0[30].z
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(0), t0.xxxx
ushr r0.y, r0.x, l(16)
ubfe r0.z, l(1), l(1), vThreadIDInGroupFlattened.x
ushr r1.xyzw, vThreadIDInGroupFlattened.xxxx, l(2, 3, 4, 5)
bfi r1.xyzw, l(1, 1, 1, 1), l(1, 1, 2, 2), r1.xyzw, l(0, 0, 0, 0)
bfi r0.w, l(1), l(0), vThreadIDInGroupFlattened.x, r1.x
iadd r0.zw, r0.zzzw, r1.yyyz
iadd r0.z, r1.w, r0.z
ushr r1.xy, vThreadIDInGroupFlattened.xxxx, l(6, 7, 0, 0)
bfi r1.x, l(1), l(3), r1.x, l(0)
iadd r2.x, r0.w, r1.x
imad r2.y, r1.y, l(8), r0.z
bfi r0.xy, l(16, 28, 0, 0), l(4, 4, 0, 0), r0.xyxx, l(0, 0, 0, 0)
iadd r0.xy, r0.xyxx, r2.xyxx
iadd r0.xy, r0.xyxx, cb0[2].xyxx
utof r0.xy, r0.xyxx
add r1.xyzw, r0.xyxy, l(0.500000, 0.500000, 32.665001, 11.815000)
mul r0.zw, r1.xxxy, cb0[0].zzzw
dp2 r0.x, r0.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
frc r0.x, r0.x
mul r0.x, r0.x, l(52.982918)
frc r2.x, r0.x
dp2 r0.x, r1.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
frc r0.x, r0.x
mul r0.x, r0.x, l(52.982918)
frc r2.y, r0.x
add r0.xy, r2.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
mul r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mad r1.zw, r0.zzzw, cb0[21].xxxy, cb0[21].zzzw
max r1.zw, r1.zzzw, cb0[13].xxxy
min r1.zw, r1.zzzw, cb0[13].zzzw
mul r2.yw, r1.zzzw, cb0[7].xxxy
round_ni r2.yw, r2.yyyw
add r2.yw, r2.yyyw, l(0.000000, 0.500000, 0.000000, 0.500000)
utof r3.xy, cb0[9].xyxx
add r2.yw, r2.yyyw, -r3.xxxy
mad r0.xy, r2.ywyy, l(0.062500, 0.062500, 0.000000, 0.000000), r0.xyxx
mul r0.xy, r0.xyxx, cb0[14].zwzz
min r0.xy, r0.xyxx, cb0[20].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r3.xyzw, r0.xyxx, t3.xyzw, s1, l(0.000000)
dp2 r0.x, r3.zwzz, r3.zwzz
sqrt r0.y, r0.x
mul r2.y, r0.y, l(0.250000)
round_pi r2.y, r2.y
mul r2.y, r2.y, l(4.000000)
utof r2.w, cb0[22].x
max r2.y, r2.y, l(4.000000)
min r2.y, r2.w, r2.y
ftou r2.y, r2.y
dp2 r2.w, r3.xyxx, r3.xyxx
mul r3.x, r0.x, l(0.400000)
lt r2.w, r3.x, r2.w
if_z vThreadIDInGroupFlattened.x
  store_raw g1.x, l(0), l(0)
  store_raw g2.x, l(0), l(0)
endif
sync_g_t
atomic_umax g1, l(0), r2.y
and r2.y, r2.w, l(1)
atomic_iadd g2, l(0), r2.y
sync_g_t
lt r2.y, r0.y, l(0.500000)
if_nz r2.y
  mov r4.xyz, l(0,0,0,0)
  mov r2.y, l(1.000000)
else
  ld_raw r2.w, l(0), g1.xxxx
  ld_raw r3.x, l(0), g2.xxxx
  ieq r3.x, r3.x, l(256)
  utof r3.y, r2.w
  rcp r3.y, r3.y
  mad_sat r0.y, r0.y, r3.y, l(-1.000000)
  mul r5.xyzw, r3.zwzw, cb0[0].zwzw
  if_nz r3.x
    mov r2.z, -r2.x
    add r6.xyzw, r2.xxzz, l(0.000000, 0.000000, 1.000000, 1.000000)
    add r2.z, r3.y, r3.y
    mov r3.xzw, l(0,0,0,0)
    mov r4.w, l(0)
    loop
      uge r7.x, r4.w, r2.w
      breakc_nz r7.x
      ushr r7.x, r4.w, l(1)
      utof r7.y, r7.x
      add r8.xyzw, r6.yyww, r7.yyyy
      mul r8.xyzw, r2.zzzz, r8.xyzw
      mul r8.xyzw, r5.xyzw, r8.xyzw
      mad r7.yz, r1.xxyx, cb0[0].zzwz, r8.xxyx
      mad r8.xy, r1.xyxx, cb0[0].zwzz, -r8.zwzz
      max r7.yz, r7.yyzy, cb0[6].xxyx
      min r7.yz, r7.yyzy, cb0[6].zzwz
      max r8.xy, r8.xyxx, cb0[6].xyxx
      min r8.xy, r8.xyxx, cb0[6].zwzz
      sample_l_indexable(texture2d)(float,float,float,float) r7.yzw, r7.yzyy, t1.wxyz, s0, r0.y
      add r7.yzw, r3.xxzw, r7.yyzw
      sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, r8.xyxx, t1.xyzw, s0, r0.y
      add r7.yzw, r7.yyzw, r8.xxyz
      iadd r7.x, r7.x, l(1)
      utof r7.x, r7.x
      add r8.xyzw, r6.xyzw, r7.xxxx
      mul r8.xyzw, r2.zzzz, r8.xyzw
      mul r8.xyzw, r5.xyzw, r8.xyzw
      mad r8.xy, r1.xyxx, cb0[0].zwzz, r8.xyxx
      mad r8.zw, r1.xxxy, cb0[0].zzzw, -r8.zzzw
      max r8.xyzw, r8.xyzw, cb0[6].xyxy
      min r8.xyzw, r8.xyzw, cb0[6].zwzw
      sample_l_indexable(texture2d)(float,float,float,float) r9.xyz, r8.xyxx, t1.xyzw, s0, r0.y
      add r7.xyz, r7.yzwy, r9.xyzx
      sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, r8.zwzz, t1.xyzw, s0, r0.y
      add r3.xzw, r7.xxyz, r8.xxyz
      iadd r4.w, r4.w, l(4)
    endloop
    mul r4.xyz, r3.yyyy, r3.xzwx
    mov r2.y, l(0)
  else
    ushr r2.z, r2.w, l(1)
    sample_l_indexable(texture2d)(float,float,float,float) r1.zw, r1.zwzz, t2.ywxz, s1, l(0.000000)
    utof r2.w, r2.z
    rsq r0.x, r0.x
    mul r0.x, r0.x, r2.w
    mov x0[0].xyz, l(0,0,0,0)
    mov x1[0].x, l(0)
    rcp r3.x, r2.w
    mad r6.xyzw, r2.xxxx, l(1.000000, 1.000000, -1.000000, -1.000000), l(-0.500000, -0.500000, 0.500000, 0.500000)
    mov r2.x, l(0)
    loop
      uge r3.y, r2.x, r2.z
      breakc_nz r3.y
      utof r3.y, r2.x
      add r3.yz, r3.yyyy, l(0.000000, 0.500000, -0.500000, 0.000000)
      add r7.xyzw, r6.xyzw, r3.yyyy
      mul r7.xyzw, r3.xxxx, r7.xyzw
      mul r7.xyzw, r5.xyzw, r7.xyzw
      mad r3.yw, r1.xxxy, cb0[0].zzzw, r7.xxxy
      mad r7.xy, r1.xyxx, cb0[0].zwzz, -r7.zwzz
      max r3.yw, r3.yyyw, cb0[6].xxxy
      min r3.yw, r3.yyyw, cb0[6].zzzw
      max r7.xy, r7.xyxx, cb0[6].xyxx
      min r7.xy, r7.xyxx, cb0[6].zwzz
      mad r7.zw, r3.yyyw, cb0[21].xxxy, cb0[21].zzzw
      sample_l_indexable(texture2d)(float,float,float,float) r7.zw, r7.zwzz, t2.ywxz, s1, l(0.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, r3.ywyy, t1.xyzw, s0, r0.y
      add r3.y, -r1.w, r7.w
      add_sat r3.w, r3.y, l(0.500000)
      add_sat r3.y, -r3.y, l(0.500000)
      max r3.z, r3.z, l(0.000000)
      mad_sat r4.w, r0.x, r1.z, -r3.z
      mad_sat r8.w, r0.x, r7.z, -r3.z
      mul r3.y, r3.y, r8.w
      mad r3.y, r3.w, r4.w, r3.y
      mad r9.xy, r7.xyxx, cb0[21].xyxx, cb0[21].zwzz
      sample_l_indexable(texture2d)(float,float,float,float) r9.xy, r9.xyxx, t2.xzyw, s1, l(0.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r10.xyz, r7.xyxx, t1.xyzw, s0, r0.y
      add r3.w, -r1.w, r9.y
      add_sat r7.x, r3.w, l(0.500000)
      add_sat r3.w, -r3.w, l(0.500000)
      mad_sat r3.z, r0.x, r9.x, -r3.z
      mul r3.z, r3.z, r3.w
      mad r3.z, r7.x, r4.w, r3.z
      lt r3.w, r9.y, r7.w
      lt r4.w, r7.z, r9.x
      and r7.x, r3.w, r4.w
      movc r7.x, r7.x, r3.z, r3.y
      or r3.w, r3.w, r4.w
      movc r3.y, r3.w, r3.z, r3.y
      mul r7.yzw, r10.xxyz, r3.yyyy
      mad r7.yzw, r7.xxxx, r8.xxyz, r7.yyzw
      mov r8.xyz, x0[0].xyzx
      add r7.yzw, r7.yyzw, r8.xxyz
      mov x0[0].xyz, r7.yzwy
      add r3.y, r3.y, r7.x
      mov r3.z, x1[0].x
      add r3.y, r3.y, r3.z
      mov x1[0].x, r3.y
      iadd r2.x, r2.x, l(1)
    endloop
    div r0.x, l(0.500000), r2.w
    mov r1.xyz, x0[0].xyzx
    mul r4.xyz, r0.xxxx, r1.xyzx
    mov r0.y, x1[0].x
    mad r2.y, -r0.y, r0.x, l(1.000000)
  endif
endif
mul r1.xyzw, r0.zwzw, cb0[0].xyxy
ftoi r1.xyzw, r1.xyzw
mad r0.xy, r0.zwzz, cb0[28].xyxx, cb0[28].zwzz
max r0.xy, r0.xyxx, cb0[29].xyxx
min r0.xy, r0.xyxx, cb0[29].zwzz
iadd r0.zw, l(0, 0, -1, -1), cb0[2].zzzw
imin r3.xy, r0.zwzz, r1.zwzz
mov r3.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r2.xzw, r3.xyzw, t1.xwyz
sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, r0.xyxx, t4.xyzw, s2, l(0.000000)
mad r2.xyz, r2.xzwx, r2.yyyy, r4.xyzx
mad r0.xyz, r2.xyzx, r0.wwww, r0.xyzx
or r2.x, cb0[22].z, cb0[22].y
if_nz r2.x
  mul r2.xyz, r0.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000)
  mov r2.w, l(0)
  mov r3.xyz, r2.xyzx
  mov r3.w, l(0)
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
  xor r3.xy, vThreadIDInGroupFlattened.xxxx, l(1, 2, 0, 0)
  ld_structured r4.xyzw, r3.x, l(0), g0.xyzw
  add r2.xyzw, r2.xyzw, r4.xyzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r2.xyzw
  ld_structured r3.xyzw, r3.y, l(0), g0.xyzw
  add r2.xyzw, r2.xyzw, r3.xyzw
else
  mov r2.xyzw, l(0,0,0,0)
endif
if_nz cb0[22].z
  mul r3.xyzw, r2.xyzw, l(0.250000, 0.250000, 0.250000, 0.250000)
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r3.xyzw
  xor r3.xy, vThreadIDInGroupFlattened.xxxx, l(4, 8, 0, 0)
  ld_structured r4.xyzw, r3.x, l(0), g0.xyzw
  mad r4.xyzw, r2.xyzw, l(0.250000, 0.250000, 0.250000, 0.250000), r4.xyzw
  store_structured g0.xyzw, vThreadIDInGroupFlattened.x, l(0), r4.xyzw
  ld_structured r3.xyzw, r3.y, l(0), g0.xyzw
  add r3.xyzw, r3.xyzw, r4.xyzw
else
  mov r3.xyzw, l(0,0,0,0)
endif
ilt r4.xy, r1.zwzz, cb0[2].zwzz
and r4.x, r4.y, r4.x
movc r5.xyzw, r4.xxxx, r1.zwww, l(-1,-1,-1,-1)
ine r6.xyzw, l(0, 0, 0, 0), cb0[22].yyzz
and r7.xyzw, r5.xwxw, l(1, 1, 3, 3)
ieq r7.xyzw, r7.xyzw, l(0, 0, 0, 0)
and r6.xyzw, r6.xyzw, r7.xyzw
and r4.xyzw, r4.xxxx, r6.xyzw
ishr r1.xyzw, r1.xyzw, l(1, 1, 2, 2)
movc r1.xyzw, r4.xyzw, r1.xyzw, l(-1,-1,-1,-1)
mov r0.w, l(0)
store_uav_typed u0.xyzw, r5.xyzw, r0.xyzw
store_uav_typed u1.xyzw, r1.xyyy, r2.xyzw
store_uav_typed u2.xyzw, r1.zwww, r3.xyzw
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with geo-11 v0.6.198 on Sun Oct 13 12:49:53 2024
// groupshared struct { float val[4]; } g0[256];
// Texture2D<float4> t4 : register(t4);
//
// Texture2D<float4> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// struct t0_t {
//   float val[1];
// };
// StructuredBuffer<t0_t> t0 : register(t0);
//
// SamplerState s2_s : register(s2);
//
// SamplerState s1_s : register(s1);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[31];
// }
//
//
//
//
// // 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
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture2d (float,float,float,float) u2
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   float4 x0[1];
//   float4 x1[1];
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_tgsm_raw g1, 4
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_tgsm_raw g2, 4
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 16, 16, 1
//   r0.x = (int)vThreadGroupID.x + asint(cb0[30].z);
//   r0.x = t0[r0.x].val[0/4];
//   r0.y = (uint)r0.x >> 16;
//   if (1 == 0) r0.z = 0; else if (1+1 < 32) {   r0.z = (uint)vThreadIDInGroupFlattened.x << (32-(1 + 1)); r0.z = (uint)r0.z >> (32-1);  } else r0.z = (uint)vThreadIDInGroupFlattened.x >> 1;
//   r1.xyzw = (uint4)vThreadIDInGroupFlattened.xxxx >> int4(2,3,4,5);
//   bitmask.x = ((~(-1 << 1)) << 1) & 0xffffffff;  r1.x = (((uint)r1.x << 1) & bitmask.x) | ((uint)0 & ~bitmask.x);
//   bitmask.y = ((~(-1 << 1)) << 1) & 0xffffffff;  r1.y = (((uint)r1.y << 1) & bitmask.y) | ((uint)0 & ~bitmask.y);
//   bitmask.z = ((~(-1 << 1)) << 2) & 0xffffffff;  r1.z = (((uint)r1.z << 2) & bitmask.z) | ((uint)0 & ~bitmask.z);
//   bitmask.w = ((~(-1 << 1)) << 2) & 0xffffffff;  r1.w = (((uint)r1.w << 2) & bitmask.w) | ((uint)0 & ~bitmask.w);
//   bitmask.w = ((~(-1 << 1)) << 0) & 0xffffffff;  r0.w = (((uint)vThreadIDInGroupFlattened.x << 0) & bitmask.w) | ((uint)r1.x & ~bitmask.w);
//   r0.zw = (int2)r0.zw + (int2)r1.yz;
//   r0.z = (int)r1.w + (int)r0.z;
//   r1.xy = (uint2)vThreadIDInGroupFlattened.xx >> int2(6,7);
//   bitmask.x = ((~(-1 << 1)) << 3) & 0xffffffff;  r1.x = (((uint)r1.x << 3) & bitmask.x) | ((uint)0 & ~bitmask.x);
//   r2.x = (int)r0.w + (int)r1.x;
//   r2.y = mad((int)r1.y, 8, (int)r0.z);
//   bitmask.x = ((~(-1 << 16)) << 4) & 0xffffffff;  r0.x = (((uint)r0.x << 4) & bitmask.x) | ((uint)0 & ~bitmask.x);
//   bitmask.y = ((~(-1 << 28)) << 4) & 0xffffffff;  r0.y = (((uint)r0.y << 4) & bitmask.y) | ((uint)0 & ~bitmask.y);
//   r0.xy = (int2)r0.xy + (int2)r2.xy;
//   r0.xy = (int2)r0.xy + asint(cb0[2].xy);
//   r0.xy = (uint2)r0.xy;
//   r1.xyzw = float4(0.5,0.5,32.6650009,11.8149996) + r0.xyxy;
//   r0.zw = cb0[0].zw * r1.xy;
//   r0.x = dot(r0.xy, float2(0.0671105608,0.00583714992));
//   r0.x = frac(r0.x);
//   r0.x = 52.9829178 * r0.x;
//   r2.x = frac(r0.x);
//   r0.x = dot(r1.zw, float2(0.0671105608,0.00583714992));
//   r0.x = frac(r0.x);
//   r0.x = 52.9829178 * r0.x;
//   r2.y = frac(r0.x);
//   r0.xy = float2(-0.5,-0.5) + r2.xy;
//   r0.xy = float2(0.5,0.5) * r0.xy;
//   r1.zw = r0.zw * cb0[21].xy + cb0[21].zw;
//   r1.zw = max(cb0[13].xy, r1.zw);
//   r1.zw = min(cb0[13].zw, r1.zw);
//   r2.yw = cb0[7].xy * r1.zw;
//   r2.yw = floor(r2.yw);
//   r2.yw = float2(0.5,0.5) + r2.yw;
//   r3.xy = asuint(cb0[9].xy);
//   r2.yw = -r3.xy + r2.yw;
//   r0.xy = r2.yw * float2(0.0625,0.0625) + r0.xy;
//   r0.xy = cb0[14].zw * r0.xy;
//   r0.xy = min(cb0[20].zw, r0.xy);
//   r3.xyzw = t3.SampleLevel(s1_s, r0.xy, 0).xyzw;
//   r0.x = dot(r3.zw, r3.zw);
//   r0.y = sqrt(r0.x);
//   r2.y = 0.25 * r0.y;
//   r2.y = ceil(r2.y);
//   r2.y = 4 * r2.y;
//   r2.w = asuint(cb0[22].x);
//   r2.y = max(4, r2.y);
//   r2.y = min(r2.y, r2.w);
//   r2.y = (uint)r2.y;
//   r2.w = dot(r3.xy, r3.xy);
//   r3.x = 0.400000006 * r0.x;
//   r2.w = cmp(r3.x < r2.w);
//   if (vThreadIDInGroupFlattened.x == 0) {
//   // No code for instruction (needs manual fix):
//     store_raw g1.x, l(0), l(0)
//   // No code for instruction (needs manual fix):
//     store_raw g2.x, l(0), l(0)
//   }
//   GroupMemoryBarrierWithGroupSync();
//   // Needs manual fix for instruction:
// atomic_umax g1, l(0), r2.y
//   InterlockedMax(dest, value, orig_value);
//   r2.y = r2.w ? 0.000000 : 0;
//   // Needs manual fix for instruction:
// atomic_iadd g2, l(0), r2.y
//   InterlockedAdd(dest, value, orig_value);
//   GroupMemoryBarrierWithGroupSync();
//   r2.y = cmp(r0.y < 0.5);
//   if (r2.y != 0) {
//     r4.xyz = float3(0,0,0);
//     r2.y = 1;
//   } else {
//   // No code for instruction (needs manual fix):
//     ld_raw r2.w, l(0), g1.xxxx
//   // No code for instruction (needs manual fix):
//     ld_raw r3.x, l(0), g2.xxxx
//     r3.x = cmp((int)r3.x == 256);
//     r3.y = (uint)r2.w;
//     r3.y = rcp(r3.y);
//     r0.y = saturate(r0.y * r3.y + -1);
//     r5.xyzw = cb0[0].zwzw * r3.zwzw;
//     if (r3.x != 0) {
//       r2.z = -r2.x;
//       r6.xyzw = float4(0,0,1,1) + r2.xxzz;
//       r2.z = r3.y + r3.y;
//       r3.xzw = float3(0,0,0);
//       r4.w = 0;
//       while (true) {
//         r7.x = cmp((uint)r4.w >= (uint)r2.w);
//         if (r7.x != 0) break;
//         r7.x = (uint)r4.w >> 1;
//         r7.y = (uint)r7.x;
//         r8.xyzw = r7.yyyy + r6.yyww;
//         r8.xyzw = r8.xyzw * r2.zzzz;
//         r8.xyzw = r8.xyzw * r5.xyzw;
//         r7.yz = r1.xy * cb0[0].zw + r8.xy;
//         r8.xy = r1.xy * cb0[0].zw + -r8.zw;
//         r7.yz = max(cb0[6].xy, r7.yz);
//         r7.yz = min(cb0[6].zw, r7.yz);
//         r8.xy = max(cb0[6].xy, r8.xy);
//         r8.xy = min(cb0[6].zw, r8.xy);
//         r7.yzw = t1.SampleLevel(s0_s, r7.yz, r0.y).xyz;
//         r7.yzw = r7.yzw + r3.xzw;
//         r8.xyz = t1.SampleLevel(s0_s, r8.xy, r0.y).xyz;
//         r7.yzw = r8.xyz + r7.yzw;
//         r7.x = (int)r7.x + 1;
//         r7.x = (uint)r7.x;
//         r8.xyzw = r7.xxxx + r6.xyzw;
//         r8.xyzw = r8.xyzw * r2.zzzz;
//         r8.xyzw = r8.xyzw * r5.xyzw;
//         r8.xy = r1.xy * cb0[0].zw + r8.xy;
//         r8.zw = r1.xy * cb0[0].zw + -r8.zw;
//         r8.xyzw = max(cb0[6].xyxy, r8.xyzw);
//         r8.xyzw = min(cb0[6].zwzw, r8.xyzw);
//         r9.xyz = t1.SampleLevel(s0_s, r8.xy, r0.y).xyz;
//         r7.xyz = r9.xyz + r7.yzw;
//         r8.xyz = t1.SampleLevel(s0_s, r8.zw, r0.y).xyz;
//         r3.xzw = r8.xyz + r7.xyz;
//         r4.w = (int)r4.w + 4;
//       }
//       r4.xyz = r3.xzw * r3.yyy;
//       r2.y = 0;
//     } else {
//       r2.z = (uint)r2.w >> 1;
//       r1.zw = t2.SampleLevel(s1_s, r1.zw, 0).xz;
//       r2.w = (uint)r2.z;
//       r0.x = rsqrt(r0.x);
//       r0.x = r2.w * r0.x;
//       x0[0].xyz = float3(0,0,0);
//       x1[0].x = 0;
//       r3.x = rcp(r2.w);
//       r6.xyzw = r2.xxxx * float4(1,1,-1,-1) + float4(-0.5,-0.5,0.5,0.5);
//       r2.x = 0;
//       while (true) {
//         r3.y = cmp((uint)r2.x >= (uint)r2.z);
//         if (r3.y != 0) break;
//         r3.y = (uint)r2.x;
//         r3.yz = float2(0.5,-0.5) + r3.yy;
//         r7.xyzw = r3.yyyy + r6.xyzw;
//         r7.xyzw = r7.xyzw * r3.xxxx;
//         r7.xyzw = r7.xyzw * r5.xyzw;
//         r3.yw = r1.xy * cb0[0].zw + r7.xy;
//         r7.xy = r1.xy * cb0[0].zw + -r7.zw;
//         r3.yw = max(cb0[6].xy, r3.yw);
//         r3.yw = min(cb0[6].zw, r3.yw);
//         r7.xy = max(cb0[6].xy, r7.xy);
//         r7.xy = min(cb0[6].zw, r7.xy);
//         r7.zw = r3.yw * cb0[21].xy + cb0[21].zw;
//         r7.zw = t2.SampleLevel(s1_s, r7.zw, 0).xz;
//         r8.xyz = t1.SampleLevel(s0_s, r3.yw, r0.y).xyz;
//         r3.y = r7.w + -r1.w;
//         r3.w = saturate(0.5 + r3.y);
//         r3.y = saturate(0.5 + -r3.y);
//         r3.z = max(0, r3.z);
//         r4.w = saturate(r0.x * r1.z + -r3.z);
//         r8.w = saturate(r0.x * r7.z + -r3.z);
//         r3.y = r8.w * r3.y;
//         r3.y = r3.w * r4.w + r3.y;
//         r9.xy = r7.xy * cb0[21].xy + cb0[21].zw;
//         r9.xy = t2.SampleLevel(s1_s, r9.xy, 0).xz;
//         r10.xyz = t1.SampleLevel(s0_s, r7.xy, r0.y).xyz;
//         r3.w = r9.y + -r1.w;
//         r7.x = saturate(0.5 + r3.w);
//         r3.w = saturate(0.5 + -r3.w);
//         r3.z = saturate(r0.x * r9.x + -r3.z);
//         r3.z = r3.w * r3.z;
//         r3.z = r7.x * r4.w + r3.z;
//         r3.w = cmp(r9.y < r7.w);
//         r4.w = cmp(r7.z < r9.x);
//         r7.x = r3.w ? r4.w : 0;
//         r7.x = r7.x ? r3.z : r3.y;
//         r3.w = (int)r3.w | (int)r4.w;
//         r3.y = r3.w ? r3.z : r3.y;
//         r7.yzw = r3.yyy * r10.xyz;
//         r7.yzw = r7.xxx * r8.xyz + r7.yzw;
//         r8.xyz = x0[0].xyz;
//         r7.yzw = r8.xyz + r7.yzw;
//         x0[0].xyz = r7.yzw;
//         r3.y = r7.x + r3.y;
//         r3.z = x1[0].x;
//         r3.y = r3.z + r3.y;
//         x1[0].x = r3.y;
//         r2.x = (int)r2.x + 1;
//       }
//       r0.x = 0.5 / r2.w;
//       r1.xyz = x0[0].xyz;
//       r4.xyz = r1.xyz * r0.xxx;
//       r0.y = x1[0].x;
//       r2.y = -r0.y * r0.x + 1;
//     }
//   }
//   r1.xyzw = cb0[0].xyxy * r0.zwzw;
//   r1.xyzw = (int4)r1.xyzw;
//   r0.xy = r0.zw * cb0[28].xy + cb0[28].zw;
//   r0.xy = max(cb0[29].xy, r0.xy);
//   r0.xy = min(cb0[29].zw, r0.xy);
//   r0.zw = int2(-1,-1) + asint(cb0[2].zw);
//   r3.xy = min((int2)r1.zw, (int2)r0.zw);
//   r3.zw = float2(0,0);
//   r2.xzw = t1.Load(r3.xyz).xyz;
//   r0.xyzw = t4.SampleLevel(s2_s, r0.xy, 0).xyzw;
//   r2.xyz = r2.xzw * r2.yyy + r4.xyz;
//   r0.xyz = r2.xyz * r0.www + r0.xyz;
//   r2.x = asint(cb0[22].z) | asint(cb0[22].y);
//   if (r2.x != 0) {
//     r2.xyz = float3(0.25,0.25,0.25) * r0.xyz;
//     r2.w = 0;
//     r3.xyz = r2.xyz;
//     r3.w = 0;
//     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;
//     r3.xy = (int2)vThreadIDInGroupFlattened.xx ^ int2(1,2);
//     r4.x = g0[r3.x].val[0/4];
//     r4.y = g0[r3.x].val[0/4+1];
//     r4.z = g0[r3.x].val[0/4+2];
//     r4.w = g0[r3.x].val[0/4+3];
//     r2.xyzw = r4.xyzw + r2.xyzw;
//     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;
//     r3.x = g0[r3.y].val[0/4];
//     r3.y = g0[r3.y].val[0/4+1];
//     r3.z = g0[r3.y].val[0/4+2];
//     r3.w = g0[r3.y].val[0/4+3];
//     r2.xyzw = r3.xyzw + r2.xyzw;
//   } else {
//     r2.xyzw = float4(0,0,0,0);
//   }
//   if (cb0[22].z != 0) {
//     r3.xyzw = float4(0.25,0.25,0.25,0.25) * r2.xyzw;
//     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;
//     r3.xy = (int2)vThreadIDInGroupFlattened.xx ^ int2(4,8);
//     r4.x = g0[r3.x].val[0/4];
//     r4.y = g0[r3.x].val[0/4+1];
//     r4.z = g0[r3.x].val[0/4+2];
//     r4.w = g0[r3.x].val[0/4+3];
//     r4.xyzw = r2.xyzw * float4(0.25,0.25,0.25,0.25) + r4.xyzw;
//     g0[vThreadIDInGroupFlattened.x].val[0/4] = r4.x;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+1] = r4.y;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+2] = r4.z;
//     g0[vThreadIDInGroupFlattened.x].val[0/4+3] = r4.w;
//     r3.x = g0[r3.y].val[0/4];
//     r3.y = g0[r3.y].val[0/4+1];
//     r3.z = g0[r3.y].val[0/4+2];
//     r3.w = g0[r3.y].val[0/4+3];
//     r3.xyzw = r4.xyzw + r3.xyzw;
//   } else {
//     r3.xyzw = float4(0,0,0,0);
//   }
//   r4.xy = cmp((int2)r1.zw < asint(cb0[2].zw));
//   r4.x = r4.y ? r4.x : 0;
//   r5.xyzw = r4.xxxx ? r1.zwww : float4(-1,-1,-1,-1);
//   r6.xyzw = cmp(int4(0,0,0,0) != asint(cb0[22].yyzz));
//   r7.xyzw = (int4)r5.xwxw & int4(1,1,3,3);
//   r7.xyzw = cmp((int4)r7.xyzw == int4(0,0,0,0));
//   r6.xyzw = r6.xyzw ? r7.xyzw : 0;
//   r4.xyzw = r4.xxxx ? r6.xyzw : 0;
//   r1.xyzw = (uint4)r1.xyzw >> int4(1,1,2,2);
//   r1.xyzw = r4.xyzw ? r1.xyzw : float4(-1,-1,-1,-1);
//   r0.w = 0;
// // No code for instruction (needs manual fix):
// store_uav_typed u0.xyzw, r5.xyzw, r0.xyzw
// // No code for instruction (needs manual fix):
// store_uav_typed u1.xyzw, r1.xyyy, r2.xyzw
// // No code for instruction (needs manual fix):
// store_uav_typed u2.xyzw, r1.zwww, r3.xyzw
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// E:\SteamLibrary\steamapps\common\DRAGON BALL Sparking! ZERO\SparkingZERO\Binaries\Win64\ShaderFixes\fd04bf7d65d8cc2b-cs_replace.txt(36,10): error X3000: syntax error: unexpected token ')'
/////////////////////////////////////////////////////////////////////////////
