//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.164 on Sat May 23 17:40:04 2026
//
//
// 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[20], dynamicIndexed
dcl_resource_buffer (float,float,float,float) t0
dcl_resource_buffer (float,float,float,float) t1
dcl_resource_buffer (sint,sint,sint,sint) t2
dcl_resource_buffer (uint,uint,uint,uint) t3
dcl_uav_typed_buffer (uint,uint,uint,uint) u0
dcl_uav_typed_buffer (sint,sint,sint,sint) u1
dcl_uav_typed_buffer (uint,uint,uint,uint) u2
dcl_input vThreadIDInGroup.x
dcl_input vThreadID.x
dcl_temps 7
dcl_tgsm_raw g0, 4
dcl_thread_group 64, 1, 1
if_z vThreadIDInGroup.x
  store_raw g0.x, l(0), l(0)
endif
sync_g_t
ult r0.x, vThreadID.x, cb0[0].w
if_nz r0.x
  ine r0.x, cb0[1].x, l(-1)
  ld_indexable(buffer)(uint,uint,uint,uint) r0.y, cb0[1].xxxx, t3.yxzw
  movc r0.x, r0.x, r0.y, cb0[0].w
  ult r0.x, vThreadID.x, r0.x
  if_nz r0.x
    if_z cb0[3].w
      mov r0.x, l(0)
    else
      ieq r0.yz, cb0[3].wwww, l(0, 1, 2, 0)
      or r0.z, r0.z, r0.y
      if_nz r0.z
        and r0.z, cb0[4].x, l(0x80000000)
        if_nz r0.z
          and r0.z, cb0[4].x, l(0x7fffffff)
          imad r0.z, r0.z, cb0[0].y, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r1.x, r0.zzzz, t1.xyzw
        else
          imad r0.z, cb0[4].x, cb0[0].x, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r1.x, r0.zzzz, t0.xyzw
        endif
        iadd r0.zw, cb0[4].xxxx, l(0, 0, 1, 2)
        and r2.xy, r0.zwzz, l(0x80000000, 0x80000000, 0, 0)
        if_nz r2.x
          and r1.w, r0.z, l(0x7fffffff)
          imad r1.w, r1.w, cb0[0].y, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r1.y, r1.wwww, t1.yxzw
        else
          imad r0.z, r0.z, cb0[0].x, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r1.y, r0.zzzz, t0.yxzw
        endif
        if_nz r2.y
          and r0.z, r0.w, l(0x7fffffff)
          imad r0.z, r0.z, cb0[0].y, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r1.z, r0.zzzz, t1.yzxw
        else
          imad r0.z, r0.w, cb0[0].x, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r1.z, r0.zzzz, t0.yzxw
        endif
        add r1.xyz, r1.xyzx, -cb0[2].xyzx
        dp3 r0.z, r1.xyzx, cb0[3].xyzx
        dp3 r0.w, r1.xyzx, r1.xyzx
        sqrt r0.w, r0.w
        movc r0.y, r0.y, r0.z, r0.w
        f32tof16 r0.y, r0.y
        not r0.y, r0.y
        and r0.x, r0.y, l(0x0000ffff)
      else
        and r0.y, cb0[4].x, l(0x80000000)
        if_nz r0.y
          and r0.y, cb0[4].x, l(0x7fffffff)
          imad r0.y, r0.y, cb0[0].y, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r0.y, r0.yyyy, t1.yxzw
        else
          imad r0.z, cb0[4].x, cb0[0].x, vThreadID.x
          ld_indexable(buffer)(float,float,float,float) r0.y, r0.zzzz, t0.yxzw
        endif
        f32tof16 r0.z, r0.y
        ge r0.y, r0.y, l(0.000000)
        or r0.w, r0.z, l(0x00008000)
        not r0.z, r0.z
        movc r0.y, r0.y, r0.w, r0.z
        ieq r0.z, cb0[3].w, l(3)
        not r0.w, r0.y
        movc r0.y, r0.z, r0.y, r0.w
        and r0.x, r0.y, l(0x0000ffff)
      endif
    endif
    umin r0.y, r0.x, l(0x0000fffe)
    ine r1.xyz, cb0[4].yzwy, l(-1, -1, -1, 0)
    if_nz r1.x
      and r0.z, cb0[4].y, l(0x80000000)
      if_nz r0.z
        and r0.z, cb0[4].y, l(0x7fffffff)
        imad r0.z, r0.z, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r2.x, r0.zzzz, t1.xyzw
      else
        imad r0.z, cb0[4].y, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r2.x, r0.zzzz, t0.xyzw
      endif
      iadd r0.zw, cb0[4].yyyy, l(0, 0, 1, 2)
      and r1.xw, r0.zzzw, l(0x80000000, 0, 0, 0x80000000)
      if_nz r1.x
        and r1.x, r0.z, l(0x7fffffff)
        imad r1.x, r1.x, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r2.y, r1.xxxx, t1.yxzw
      else
        imad r0.z, r0.z, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r2.y, r0.zzzz, t0.yxzw
      endif
      if_nz r1.w
        and r0.z, r0.w, l(0x7fffffff)
        imad r0.z, r0.z, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r2.z, r0.zzzz, t1.yzxw
      else
        imad r0.z, r0.w, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r2.z, r0.zzzz, t0.yzxw
      endif
    else
      mov r2.xyz, l(0,0,0,0)
    endif
    if_nz r1.y
      and r0.z, cb0[4].z, l(0x80000000)
      if_nz r0.z
        and r0.z, cb0[4].z, l(0x7fffffff)
        imad r0.z, r0.z, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r1.x, r0.zzzz, t1.xywz
      else
        imad r0.z, cb0[4].z, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r1.x, r0.zzzz, t0.xywz
      endif
      iadd r3.xyz, cb0[4].zzzz, l(1, 2, 3, 0)
      and r4.xyz, r3.xyzx, l(0x80000000, 0x80000000, 0x80000000, 0)
      if_nz r4.x
        and r0.z, r3.x, l(0x7fffffff)
        imad r0.z, r0.z, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r1.y, r0.zzzz, t1.yxwz
      else
        imad r0.z, r3.x, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r1.y, r0.zzzz, t0.yxwz
      endif
      if_nz r4.y
        and r0.z, r3.y, l(0x7fffffff)
        imad r0.z, r0.z, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r1.w, r0.zzzz, t1.yzwx
      else
        imad r0.z, r3.y, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r1.w, r0.zzzz, t0.yzwx
      endif
      if_nz r4.z
        and r0.z, r3.z, l(0x7fffffff)
        imad r0.z, r0.z, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r0.z, r0.zzzz, t1.yzxw
      else
        imad r0.w, r3.z, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r0.z, r0.wwww, t0.yzxw
      endif
    else
      mov r1.xyw, l(0,0,0,0)
      mov r0.z, l(1.000000)
    endif
    if_nz r1.z
      and r0.w, cb0[4].w, l(0x80000000)
      if_nz r0.w
        and r0.w, cb0[4].w, l(0x7fffffff)
        imad r0.w, r0.w, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r3.x, r0.wwww, t1.xyzw
      else
        imad r0.w, cb0[4].w, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r3.x, r0.wwww, t0.xyzw
      endif
      iadd r4.xy, cb0[4].wwww, l(1, 2, 0, 0)
      and r4.zw, r4.xxxy, l(0, 0, 0x80000000, 0x80000000)
      if_nz r4.z
        and r0.w, r4.x, l(0x7fffffff)
        imad r0.w, r0.w, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r3.y, r0.wwww, t1.yxzw
      else
        imad r0.w, r4.x, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r3.y, r0.wwww, t0.yxzw
      endif
      if_nz r4.w
        and r0.w, r4.y, l(0x7fffffff)
        imad r0.w, r0.w, cb0[0].y, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r3.z, r0.wwww, t1.yzxw
      else
        imad r0.w, r4.y, cb0[0].x, vThreadID.x
        ld_indexable(buffer)(float,float,float,float) r3.z, r0.wwww, t0.yzxw
      endif
    else
      mov r3.xyz, l(1.000000,1.000000,1.000000,0)
    endif
    mul r4.xyz, r3.xyzx, cb0[18].xyzx
    mul r5.xyz, r1.xywx, r4.zxyz
    mad r5.xyz, r1.wxyw, r4.xyzx, -r5.xyzx
    add r5.xyz, r5.xyzx, r5.xyzx
    mad r4.xyz, r0.zzzz, r5.zxyz, r4.xyzx
    mul r6.xyz, r1.wxyw, r5.xyzx
    mad r1.xyz, r1.ywxy, r5.yzxy, -r6.xyzx
    add r1.xyz, r1.xyzx, r4.xyzx
    add r1.xyz, r2.xyzx, r1.xyzx
    add r1.xyz, r1.xyzx, cb0[19].xyzx
    add r2.xyz, r1.xyzx, -cb0[2].xyzx
    dp3 r0.z, r2.xyzx, r2.xyzx
    lt r0.w, r0.z, cb0[17].x
    lt r0.z, cb0[17].y, r0.z
    or r0.z, r0.z, r0.w
    if_z r0.z
      ine r0.z, cb0[16].y, l(-1)
      if_nz r0.z
        imad r0.z, cb0[16].y, cb0[0].z, vThreadID.x
        ld_indexable(buffer)(sint,sint,sint,sint) r0.z, r0.zzzz, t2.yzxw
        ine r0.z, r0.z, cb0[16].x
      else
        mov r0.z, l(0)
      endif
      if_z r0.z
        ine r0.z, cb0[16].w, l(-1)
        if_nz r0.z
          imad r0.z, cb0[16].w, cb0[0].z, vThreadID.x
          ld_indexable(buffer)(sint,sint,sint,sint) r0.z, r0.zzzz, t2.yzxw
          ine r0.z, r0.z, cb0[16].z
        else
          mov r0.z, l(0)
        endif
        if_z r0.z
          max r0.z, |r3.z|, |r3.y|
          max r0.z, r0.z, |r3.x|
          mul r0.z, r0.z, cb0[18].w
          imin r0.w, cb0[5].x, l(10)
          mov r0.x, l(0)
          mov r1.w, l(0)
          loop
            not r2.x, r0.x
            ilt r2.y, r1.w, r0.w
            and r2.x, r2.y, r2.x
            breakc_z r2.x
            dp3 r2.x, cb0[r1.w + 6].xyzx, r1.xyzx
            add r2.x, r2.x, -cb0[r1.w + 6].w
            lt r0.x, r0.z, r2.x
            iadd r1.w, r1.w, l(1)
          endloop
        else
          mov r0.x, l(-1)
        endif
      else
        mov r0.x, l(-1)
      endif
    else
      mov r0.x, l(-1)
    endif
  else
    mov r0.xy, l(-1,0x0000ffff,0,0)
  endif
  movc r0.y, r0.x, l(0x0000ffff), r0.y
  or r0.y, r0.y, cb0[1].z
  iadd r0.z, vThreadID.x, cb0[1].w
  store_uav_typed u0.xyzw, r0.zzzz, r0.yyyy
  store_uav_typed u1.xyzw, r0.zzzz, vThreadID.xxxx
else
  mov r0.x, l(-1)
endif
movc r0.x, r0.x, l(0), l(1)
atomic_iadd g0, l(0), r0.x
sync_g_t
if_z vThreadIDInGroup.x
  ld_raw r0.x, l(0), g0.xxxx
  atomic_iadd u2, cb0[1].y, r0.x
endif
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.164 on Sat May 23 17:40:04 2026
// Buffer<uint4> t3 : register(t3);
//
// Buffer<sint4> t2 : register(t2);
//
// Buffer<float4> t1 : register(t1);
//
// Buffer<float4> t0 : register(t0);
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[20];
// }
//
//
//
//
// // 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_buffer (uint,uint,uint,uint) u0
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_buffer (sint,sint,sint,sint) u1
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_buffer (uint,uint,uint,uint) u2
//   float4 r0,r1,r2,r3,r4,r5,r6;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_tgsm_raw g0, 4
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 64, 1, 1
//   if (vThreadIDInGroup.x == 0) {
//   // No code for instruction (needs manual fix):
//     store_raw g0.x, l(0), l(0)
//   }
//   GroupMemoryBarrierWithGroupSync();
//   r0.x = cmp((uint)vThreadID.x < asuint(cb0[0].w));
//   if (r0.x != 0) {
//     r0.x = cmp(asint(cb0[1].x) != -1);
//     r0.y = t3.Load(cb0[1].x).x;
//     r0.x = r0.x ? r0.y : cb0[0].w;
//     r0.x = cmp((uint)vThreadID.x < (uint)r0.x);
//     if (r0.x != 0) {
//       if (cb0[3].w == 0) {
//         r0.x = 0;
//       } else {
//         r0.yz = cmp(asint(cb0[3].ww) == int2(1,2));
//         r0.z = (int)r0.z | (int)r0.y;
//         if (r0.z != 0) {
//           r0.z = asint(cb0[4].x) & 0x80000000;
//           if (r0.z != 0) {
//             r0.z = asint(cb0[4].x) & 0x7fffffff;
//             r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//             r1.x = t1.Load(r0.z).x;
//           } else {
//             r0.z = mad(asint(cb0[4].x), asint(cb0[0].x), (int)vThreadID.x);
//             r1.x = t0.Load(r0.z).x;
//           }
//           r0.zw = asint(cb0[4].xx) + int2(1,2);
//           r2.xy = (int2)r0.zw & int2(0x80000000,0x80000000);
//           if (r2.x != 0) {
//             r1.w = (int)r0.z & 0x7fffffff;
//             r1.w = mad((int)r1.w, asint(cb0[0].y), (int)vThreadID.x);
//             r1.y = t1.Load(r1.w).x;
//           } else {
//             r0.z = mad((int)r0.z, asint(cb0[0].x), (int)vThreadID.x);
//             r1.y = t0.Load(r0.z).x;
//           }
//           if (r2.y != 0) {
//             r0.z = (int)r0.w & 0x7fffffff;
//             r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//             r1.z = t1.Load(r0.z).x;
//           } else {
//             r0.z = mad((int)r0.w, asint(cb0[0].x), (int)vThreadID.x);
//             r1.z = t0.Load(r0.z).x;
//           }
//           r1.xyz = -cb0[2].xyz + r1.xyz;
//           r0.z = dot(r1.xyz, cb0[3].xyz);
//           r0.w = dot(r1.xyz, r1.xyz);
//           r0.w = sqrt(r0.w);
//           r0.y = r0.y ? r0.z : r0.w;
//           r0.y = f32tof16(r0.y);
//           r0.y = ~(int)r0.y;
//           r0.x = (int)r0.y & 0x0000ffff;
//         } else {
//           r0.y = asint(cb0[4].x) & 0x80000000;
//           if (r0.y != 0) {
//             r0.y = asint(cb0[4].x) & 0x7fffffff;
//             r0.y = mad((int)r0.y, asint(cb0[0].y), (int)vThreadID.x);
//             r0.y = t1.Load(r0.y).x;
//           } else {
//             r0.z = mad(asint(cb0[4].x), asint(cb0[0].x), (int)vThreadID.x);
//             r0.y = t0.Load(r0.z).x;
//           }
//           r0.z = f32tof16(r0.y);
//           r0.y = cmp(r0.y >= 0);
//           r0.w = (int)r0.z | 0x00008000;
//           r0.z = ~(int)r0.z;
//           r0.y = r0.y ? r0.w : r0.z;
//           r0.z = cmp(asint(cb0[3].w) == 3);
//           r0.w = ~(int)r0.y;
//           r0.y = r0.z ? r0.y : r0.w;
//           r0.x = (int)r0.y & 0x0000ffff;
//         }
//       }
//       r0.y = min(0x0000fffe, (uint)r0.x);
//       r1.xyz = cmp(asint(cb0[4].yzw) != int3(-1,-1,-1));
//       if (r1.x != 0) {
//         r0.z = asint(cb0[4].y) & 0x80000000;
//         if (r0.z != 0) {
//           r0.z = asint(cb0[4].y) & 0x7fffffff;
//           r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//           r2.x = t1.Load(r0.z).x;
//         } else {
//           r0.z = mad(asint(cb0[4].y), asint(cb0[0].x), (int)vThreadID.x);
//           r2.x = t0.Load(r0.z).x;
//         }
//         r0.zw = asint(cb0[4].yy) + int2(1,2);
//         r1.xw = (int2)r0.zw & int2(0x80000000,0x80000000);
//         if (r1.x != 0) {
//           r1.x = (int)r0.z & 0x7fffffff;
//           r1.x = mad((int)r1.x, asint(cb0[0].y), (int)vThreadID.x);
//           r2.y = t1.Load(r1.x).x;
//         } else {
//           r0.z = mad((int)r0.z, asint(cb0[0].x), (int)vThreadID.x);
//           r2.y = t0.Load(r0.z).x;
//         }
//         if (r1.w != 0) {
//           r0.z = (int)r0.w & 0x7fffffff;
//           r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//           r2.z = t1.Load(r0.z).x;
//         } else {
//           r0.z = mad((int)r0.w, asint(cb0[0].x), (int)vThreadID.x);
//           r2.z = t0.Load(r0.z).x;
//         }
//       } else {
//         r2.xyz = float3(0,0,0);
//       }
//       if (r1.y != 0) {
//         r0.z = asint(cb0[4].z) & 0x80000000;
//         if (r0.z != 0) {
//           r0.z = asint(cb0[4].z) & 0x7fffffff;
//           r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//           r1.x = t1.Load(r0.z).x;
//         } else {
//           r0.z = mad(asint(cb0[4].z), asint(cb0[0].x), (int)vThreadID.x);
//           r1.x = t0.Load(r0.z).x;
//         }
//         r3.xyz = asint(cb0[4].zzz) + int3(1,2,3);
//         r4.xyz = (int3)r3.xyz & int3(0x80000000,0x80000000,0x80000000);
//         if (r4.x != 0) {
//           r0.z = (int)r3.x & 0x7fffffff;
//           r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//           r1.y = t1.Load(r0.z).x;
//         } else {
//           r0.z = mad((int)r3.x, asint(cb0[0].x), (int)vThreadID.x);
//           r1.y = t0.Load(r0.z).x;
//         }
//         if (r4.y != 0) {
//           r0.z = (int)r3.y & 0x7fffffff;
//           r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//           r1.w = t1.Load(r0.z).x;
//         } else {
//           r0.z = mad((int)r3.y, asint(cb0[0].x), (int)vThreadID.x);
//           r1.w = t0.Load(r0.z).x;
//         }
//         if (r4.z != 0) {
//           r0.z = (int)r3.z & 0x7fffffff;
//           r0.z = mad((int)r0.z, asint(cb0[0].y), (int)vThreadID.x);
//           r0.z = t1.Load(r0.z).x;
//         } else {
//           r0.w = mad((int)r3.z, asint(cb0[0].x), (int)vThreadID.x);
//           r0.z = t0.Load(r0.w).x;
//         }
//       } else {
//         r1.xyw = float3(0,0,0);
//         r0.z = 1;
//       }
//       if (r1.z != 0) {
//         r0.w = asint(cb0[4].w) & 0x80000000;
//         if (r0.w != 0) {
//           r0.w = asint(cb0[4].w) & 0x7fffffff;
//           r0.w = mad((int)r0.w, asint(cb0[0].y), (int)vThreadID.x);
//           r3.x = t1.Load(r0.w).x;
//         } else {
//           r0.w = mad(asint(cb0[4].w), asint(cb0[0].x), (int)vThreadID.x);
//           r3.x = t0.Load(r0.w).x;
//         }
//         r4.xy = asint(cb0[4].ww) + int2(1,2);
//         r4.zw = (int2)r4.xy & int2(0x80000000,0x80000000);
//         if (r4.z != 0) {
//           r0.w = (int)r4.x & 0x7fffffff;
//           r0.w = mad((int)r0.w, asint(cb0[0].y), (int)vThreadID.x);
//           r3.y = t1.Load(r0.w).x;
//         } else {
//           r0.w = mad((int)r4.x, asint(cb0[0].x), (int)vThreadID.x);
//           r3.y = t0.Load(r0.w).x;
//         }
//         if (r4.w != 0) {
//           r0.w = (int)r4.y & 0x7fffffff;
//           r0.w = mad((int)r0.w, asint(cb0[0].y), (int)vThreadID.x);
//           r3.z = t1.Load(r0.w).x;
//         } else {
//           r0.w = mad((int)r4.y, asint(cb0[0].x), (int)vThreadID.x);
//           r3.z = t0.Load(r0.w).x;
//         }
//       } else {
//         r3.xyz = float3(1,1,1);
//       }
//       r4.xyz = cb0[18].xyz * r3.xyz;
//       r5.xyz = r4.zxy * r1.xyw;
//       r5.xyz = r1.wxy * r4.xyz + -r5.xyz;
//       r5.xyz = r5.xyz + r5.xyz;
//       r4.xyz = r0.zzz * r5.zxy + r4.xyz;
//       r6.xyz = r5.xyz * r1.wxy;
//       r1.xyz = r1.ywx * r5.yzx + -r6.xyz;
//       r1.xyz = r4.xyz + r1.xyz;
//       r1.xyz = r1.xyz + r2.xyz;
//       r1.xyz = cb0[19].xyz + r1.xyz;
//       r2.xyz = -cb0[2].xyz + r1.xyz;
//       r0.z = dot(r2.xyz, r2.xyz);
//       r0.w = cmp(r0.z < cb0[17].x);
//       r0.z = cmp(cb0[17].y < r0.z);
//       r0.z = (int)r0.z | (int)r0.w;
//       if (r0.z == 0) {
//         r0.z = cmp(asint(cb0[16].y) != -1);
//         if (r0.z != 0) {
//           r0.z = mad(asint(cb0[16].y), asint(cb0[0].z), (int)vThreadID.x);
//           r0.z = t2.Load(r0.z).x;
//           r0.z = cmp((int)r0.z != asint(cb0[16].x));
//         } else {
//           r0.z = 0;
//         }
//         if (r0.z == 0) {
//           r0.z = cmp(asint(cb0[16].w) != -1);
//           if (r0.z != 0) {
//             r0.z = mad(asint(cb0[16].w), asint(cb0[0].z), (int)vThreadID.x);
//             r0.z = t2.Load(r0.z).x;
//             r0.z = cmp((int)r0.z != asint(cb0[16].z));
//           } else {
//             r0.z = 0;
//           }
//           if (r0.z == 0) {
//             r0.z = max(abs(r3.y), abs(r3.z));
//             r0.z = max(abs(r3.x), r0.z);
//             r0.z = cb0[18].w * r0.z;
//             r0.w = min(10, asint(cb0[5].x));
//             r0.x = 0;
//             r1.w = 0;
//             while (true) {
//               r2.x = ~(int)r0.x;
//               r2.y = cmp((int)r1.w < (int)r0.w);
//               r2.x = r2.y ? r2.x : 0;
//               if (r2.x == 0) break;
//               r2.x = dot(cb0[r1.w+6].xyz, r1.xyz);
//               r2.x = -cb0[r1.w+6].w + r2.x;
//               r0.x = cmp(r0.z < r2.x);
//               r1.w = (int)r1.w + 1;
//             }
//           } else {
//             r0.x = -1;
//           }
//         } else {
//           r0.x = -1;
//         }
//       } else {
//         r0.x = -1;
//       }
//     } else {
//       r0.xy = float2(-1,65535);
//     }
//     r0.y = r0.x ? 0x0000ffff : r0.y;
//     r0.y = (int)r0.y | asint(cb0[1].z);
//     r0.z = (int)vThreadID.x + asint(cb0[1].w);
//   // No code for instruction (needs manual fix):
//     store_uav_typed u0.xyzw, r0.zzzz, r0.yyyy
//   // No code for instruction (needs manual fix):
//     store_uav_typed u1.xyzw, r0.zzzz, vThreadID.xxxx
//   } else {
//     r0.x = -1;
//   }
//   r0.x = r0.x ? 0 : 1;
//   // Needs manual fix for instruction:
// atomic_iadd g0, l(0), r0.x
//   InterlockedAdd(dest, value, orig_value);
//   GroupMemoryBarrierWithGroupSync();
//   if (vThreadIDInGroup.x == 0) {
//   // No code for instruction (needs manual fix):
//     ld_raw r0.x, l(0), g0.xxxx
//     // Needs manual fix for instruction:
//     atomic_iadd u2, cb0[1].y, r0.x
//     InterlockedAdd(dest, value, orig_value);
//   }
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// C:\Program Files (x86)\Steam\steamapps\common\Forever Skies\ProjectZeppelin\Binaries\Win64\ShaderFixes\e463e03746a9d09e-cs_replace.txt(4,8-12): error X3000: syntax error: unexpected token 'sint4'
/////////////////////////////////////////////////////////////////////////////
