// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.181 on Sat Oct 28 00:14:13 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 CB12[211], immediateIndexed
dcl_constantbuffer CB13[3323], dynamicIndexed
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_uav_typed_texture2darray (float,float,float,float) u0
dcl_uav_raw u1
dcl_input vThreadGroupID.xy
dcl_input vThreadIDInGroup.xy
dcl_temps 50
dcl_constantbuffer CB14[2], immediateIndexed
dcl_tgsm_raw g0, 4
dcl_tgsm_raw g1, 4
dcl_tgsm_structured g2, 4, 192
dcl_tgsm_raw g3, 4
dcl_tgsm_structured g4, 4, 192
dcl_tgsm_raw g5, 4
dcl_thread_group 16, 16, 1
mov r50.z, l(0)
imad r0.xy, vThreadGroupID.xyxx, l(16, 16, 0, 0), vThreadIDInGroup.xyxx
imad r1.x, vThreadIDInGroup.y, l(16), vThreadIDInGroup.x
ishl r1.yz, vThreadIDInGroup.xxyx, l(0, 1, 1, 0)
imad r2.xy, vThreadGroupID.xyxx, l(32, 32, 0, 0), r1.yzyy
mov r2.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.y, r2.xyzw, t0.yxzw
mad r1.z, r1.y, cb12[22].x, cb12[22].y
if_z r1.x
  store_raw g3.x, l(0), l(0)
  store_structured g2.x, l(0), l(0), l(0)
  store_structured g4.x, l(0), l(0), l(0)
  store_raw g5.x, l(0), l(0)
  store_raw g0.x, l(0), l(340282346638528859811704183484516925440.000000)
  store_raw g1.x, l(0), l(0)
endif
sync_g_t
atomic_umin g0, l(0), r1.z
atomic_umax g1, l(0), r1.z
sync_g_t
ld_raw r1.w, l(0), g0.xxxx
mad r1.w, r1.w, cb12[21].x, cb12[21].y
rcp r1.w, r1.w
max r1.w, r1.w, l(-340282346638528859811704183484516925440.000000)
min r2.z, r1.w, l(340282346638528859811704183484516925440.000000)
ld_raw r1.w, l(0), g1.xxxx
mad r1.w, r1.w, cb12[21].x, cb12[21].y
rcp r1.w, r1.w
max r1.w, r1.w, l(-340282346638528859811704183484516925440.000000)
min r2.x, r1.w, l(340282346638528859811704183484516925440.000000)
mul r3.xy, cb12[23].xyxx, l(0.015625, 0.015625, 0.000000, 0.000000)
utof r3.zw, vThreadGroupID.xxxy
mad r4.zw, cb12[23].xxxy, l(0.000000, 0.000000, 0.015625, 0.015625), -r3.zzzw
mul r4.y, r3.x, cb12[13].x
mul r4.x, r3.y, -cb12[14].y
utof r33.zw, r0.xxxy
mul r35.xyzw, r33.wwww, cb12[212].xyzw
mad r35.xyzw, cb12[211].xyzw, r33.zzzz, r35.xyzw
mad r35.xyzw, cb12[213].xyzw, r1.yyyy, r35.xyzw
add r35.xyzw, r35.xyzw, cb12[214].xyzw
mul r30.x, -cb14[0].y, r35.w
add r30.x, r30.x, l(1.000000)
mul r30.x, r30.x, cb12[220].x
mul r30.x, r30.x, l(0.062500)
mad r4.z, cb14[0].x, r30.x, r4.z
add r3.xyzw, -r4.yzxw, l(0.000000, 1.000000, 0.000000, 1.000000)
add r4.xyzw, r4.yzxw, l(0.000000, 1.000000, 0.000000, 1.000000)
dp2 r1.w, r3.xyxx, r3.xyxx
sqrt r1.w, r1.w
div r3.xy, r3.xyxx, r1.wwww
dp2 r1.w, r4.xyxx, r4.xyxx
sqrt r1.w, r1.w
div r4.xy, r4.xyxx, r1.wwww
dp2 r1.w, r3.zwzz, r3.zwzz
sqrt r1.w, r1.w
div r3.zw, r3.zzzw, r1.wwww
dp2 r1.w, r4.zwzz, r4.zwzz
sqrt r1.w, r1.w
div r4.zw, r4.zzzw, r1.wwww
mov r2.yw, l(0,1.000000,0,1.000000)
mov r1.w, r1.x
loop
  ige r5.x, r1.w, cb13[2362].x
  breakc_nz r5.x
  imul null, r5.x, r1.w, l(5)
  dp2 r6.x, r3.xyxx, cb13[r5.x + 2363].xzxx
  dp2 r6.y, r3.xyxx, cb13[r5.x + 2364].xzxx
  dp2 r6.z, r3.xyxx, cb13[r5.x + 2365].xzxx
  mul r5.yzw, r6.xxyz, cb13[r5.x + 2366].xxyz
  mov r6.x, cb13[r5.x + 2363].w
  mov r6.y, cb13[r5.x + 2364].w
  mov r6.z, cb13[r5.x + 2365].w
  dp3 r6.w, r6.xyzx, r5.yzwy
  mov r7.w, -r6.w
  and r8.x, l(0x0000ffff), cb13[r5.x + 2366].w
  utof r8.x, r8.x
  lt r8.x, l(0.000000), r8.x
  eq r8.y, l(-1.000000), cb13[r5.x + 2367].w
  or r8.x, r8.y, r8.x
  mov r7.xyz, |r5.yzwy|
  dp4 r7.x, l(1.000000, 1.000000, 1.000000, 1.000000), r7.xyzw
  ge r7.x, r7.x, l(0.000000)
  dp3 r5.y, r5.yzwy, r5.yzwy
  sqrt r5.y, r5.y
  lt r5.y, r6.w, r5.y
  movc r5.y, r8.x, r7.x, r5.y
  and r5.z, r5.y, l(1)
  dp2 r7.x, r4.xyxx, cb13[r5.x + 2363].xzxx
  dp2 r7.y, r4.xyxx, cb13[r5.x + 2364].xzxx
  dp2 r7.z, r4.xyxx, cb13[r5.x + 2365].xzxx
  mul r7.xyz, r7.xyzx, cb13[r5.x + 2366].xyzx
  dp3 r5.w, r6.xyzx, r7.xyzx
  mov r9.w, -r5.w
  mov r9.xyz, |r7.xyzx|
  dp4 r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.xyzw
  ge r6.w, r6.w, l(0.000000)
  dp3 r7.x, r7.xyzx, r7.xyzx
  sqrt r7.x, r7.x
  lt r5.w, r5.w, r7.x
  movc r5.w, r8.x, r6.w, r5.w
  bfi r5.y, l(1), l(0), r5.y, l(2)
  movc r5.y, r5.w, r5.y, r5.z
  dp2 r7.x, r3.zwzz, cb13[r5.x + 2363].yzyy
  dp2 r7.y, r3.zwzz, cb13[r5.x + 2364].yzyy
  dp2 r7.z, r3.zwzz, cb13[r5.x + 2365].yzyy
  mul r7.xyz, r7.xyzx, cb13[r5.x + 2366].xyzx
  dp3 r5.z, r6.xyzx, r7.xyzx
  mov r9.w, -r5.z
  mov r9.xyz, |r7.xyzx|
  dp4 r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.xyzw
  ge r5.w, r5.w, l(0.000000)
  dp3 r6.w, r7.xyzx, r7.xyzx
  sqrt r6.w, r6.w
  lt r5.z, r5.z, r6.w
  movc r5.z, r8.x, r5.w, r5.z
  iadd r5.w, r5.y, l(4)
  movc r5.y, r5.z, r5.w, r5.y
  dp2 r7.x, r4.zwzz, cb13[r5.x + 2363].yzyy
  dp2 r7.y, r4.zwzz, cb13[r5.x + 2364].yzyy
  dp2 r7.z, r4.zwzz, cb13[r5.x + 2365].yzyy
  mul r7.xyz, r7.xyzx, cb13[r5.x + 2366].xyzx
  dp3 r5.z, r6.xyzx, r7.xyzx
  mov r6.w, -r5.z
  mov r6.xyz, |r7.xyzx|
  dp4 r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.xyzw
  ge r5.w, r5.w, l(0.000000)
  dp3 r6.x, r7.xyzx, r7.xyzx
  sqrt r6.x, r6.x
  lt r5.z, r5.z, r6.x
  movc r5.z, r8.x, r5.w, r5.z
  iadd r5.w, r5.y, l(8)
  movc r5.y, r5.z, r5.w, r5.y
  dp2 r6.x, r2.xyxx, cb13[r5.x + 2363].zwzz
  dp2 r6.y, r2.xyxx, cb13[r5.x + 2364].zwzz
  dp2 r6.z, r2.xyxx, cb13[r5.x + 2365].zwzz
  mov r7.x, -cb13[r5.x + 2363].z
  mov r7.y, -cb13[r5.x + 2364].z
  mov r7.z, -cb13[r5.x + 2365].z
  mul r7.xyz, r7.xyzx, cb13[r5.x + 2366].xyzx
  dp3 r5.z, r6.xyzx, r7.xyzx
  mov r6.w, -r5.z
  mov r6.xyz, |r7.xyzx|
  dp4 r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.xyzw
  ge r5.w, r5.w, l(0.000000)
  dp3 r6.x, r7.xyzx, r7.xyzx
  sqrt r6.x, r6.x
  lt r5.z, r5.z, r6.x
  movc r5.z, r8.x, r5.w, r5.z
  iadd r5.w, r5.y, l(16)
  movc r5.y, r5.z, r5.w, r5.y
  dp2 r6.x, r2.zwzz, cb13[r5.x + 2363].zwzz
  dp2 r6.y, r2.zwzz, cb13[r5.x + 2364].zwzz
  dp2 r6.z, r2.zwzz, cb13[r5.x + 2365].zwzz
  mov r7.x, cb13[r5.x + 2363].z
  mov r7.y, cb13[r5.x + 2364].z
  mov r7.z, cb13[r5.x + 2365].z
  mul r5.xzw, r7.xxyz, cb13[r5.x + 2366].xxyz
  dp3 r6.x, r6.xyzx, r5.xzwx
  mov r7.w, -r6.x
  mov r7.xyz, |r5.xzwx|
  dp4 r6.y, l(1.000000, 1.000000, 1.000000, 1.000000), r7.xyzw
  ge r6.y, r6.y, l(0.000000)
  dp3 r5.x, r5.xzwx, r5.xzwx
  sqrt r5.x, r5.x
  lt r5.x, r6.x, r5.x
  movc r5.x, r8.x, r6.y, r5.x
  iadd r5.z, r5.y, l(32)
  movc r5.x, r5.x, r5.z, r5.y
  ieq r5.y, r5.x, l(63)
  and r5.x, r5.x, l(31)
  ieq r5.x, r5.x, l(31)
  if_nz r5.x
    imm_atomic_iadd r6.x, g5, l(0), l(1)
    ult r5.x, r6.x, l(192)
    if_nz r5.x
      store_structured g4.x, r6.x, l(0), r1.w
    endif
  endif
  if_nz r5.y
    imm_atomic_iadd r5.x, g3, l(0), l(1)
    ult r5.y, r5.x, l(192)
    if_nz r5.y
      store_structured g2.x, r5.x, l(0), r1.w
    endif
  endif
  iadd r1.w, r1.w, l(256)
endloop
sync_g_t
lt r1.z, r1.z, l(1.000000)
if_nz r1.z
  utof r1.zw, r0.xxxy
  mul r2.xy, cb12[23].xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  add r1.zw, r1.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
  div r1.zw, r1.zzzw, r2.xxxy
  mad r1.zw, r1.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
  mul r32.xyzw, -r1.wwww, cb12[208].xyzw
  mad r32.xyzw, cb12[207].xyzw, r1.zzzz, r32.xyzw
  mad r32.xyzw, cb12[209].xyzw, r1.yyyy, r32.xyzw
  add r32.xyzw, r32.xyzw, cb12[210].xyzw
  mad r1.z, -cb14[0].x, l(1.000000), r1.z
  mul r42.xyzw, -r1.wwww, cb12[208].xyzw
  mad r42.xyzw, cb12[207].xyzw, r1.zzzz, r42.xyzw
  mad r42.xyzw, cb12[209].xyzw, r1.yyyy, r42.xyzw
  add r42.xyzw, r42.xyzw, cb12[210].xyzw
  div r41.yzw, r42.xxyz, r42.wwww
  mul r36.x, cb14[0].y, r32.w
  mad r1.z, cb14[0].x, r36.x, r1.z
  mul r2.xyzw, -r1.wwww, cb12[208].xyzw
  mad r2.xyzw, cb12[207].xyzw, r1.zzzz, r2.xyzw
  mad r2.xyzw, cb12[209].xyzw, r1.yyyy, r2.xyzw
  add r2.xyzw, r2.xyzw, cb12[210].xyzw
  div r1.yzw, r2.xxyz, r2.wwww
  mov r0.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r0.zw, r0.xyzw, t1.zwxy
  add r2.xyz, r1.yzwy, -cb12[0].xyzx
  dp3 r2.w, r2.xyzx, r2.xyzx
  sqrt r2.w, r2.w
  mov r3.x, cb12[1].z
  mov r3.y, cb12[2].z
  mov r3.z, cb12[3].z
  dp3 r2.x, r3.xyzx, r2.xyzx
  div r2.y, l(1.000000, 1.000000, 1.000000, 1.000000), cb12[21].y
  mul r2.y, r2.y, r2.w
  div r2.x, r2.y, r2.x
  add r2.x, -r2.x, r2.w
  mul_sat r2.x, r2.x, cb13[33].w
  mul r2.x, r2.x, cb13[33].z
  max r2.x, r2.x, l(0.001000)
  div r2.y, r2.w, cb13[34].z
  lt r2.z, r0.z, r0.w
  if_nz r2.z
    lt r2.z, r2.y, r0.z
    lt r2.w, r0.w, r2.y
    mad r3.x, cb13[34].z, r0.z, -cb13[34].x
    mad_sat r3.x, -r3.x, cb13[34].y, l(1.000000)
    add r3.y, -r0.z, r2.y
    mul r3.y, r3.y, cb13[34].z
    div_sat r3.y, r3.y, r2.x
    mul r3.y, r3.y, r3.x
    or r2.z, r2.z, r2.w
    mov r3.x, l(1.000000)
    movc r2.zw, r2.zzzz, l(0,0,0,1.000000), r3.xxxy
  else
    lt r3.x, r0.w, r0.z
    lt r3.y, r2.y, r0.w
    lt r3.z, r0.z, r2.y
    mad r0.z, cb13[34].z, r0.z, -cb13[34].x
    mad_sat r4.y, -r0.z, cb13[34].y, l(1.000000)
    add r0.z, -r0.w, r2.y
    mul r0.z, r0.z, cb13[34].z
    div_sat r0.z, r0.z, r2.x
    add r4.w, -r0.z, l(1.000000)
    mov r4.xz, l(1.000000,0,1.000000,0)
    movc r0.zw, r3.zzzz, r4.xxxy, r4.zzzw
    movc r0.zw, r3.yyyy, l(0,0,1.000000,1.000000), r0.zzzw
    movc r2.zw, r3.xxxx, r0.zzzw, l(0,0,0,1.000000)
  endif
  mad r0.z, -r2.w, r2.z, l(1.000000)
  and r2.xy, r0.xyxx, l(1, 1, 0, 0)
  movc r2.yz, r2.yyyy, l(0,1,3,0), l(0,2,0,0)
  movc r0.w, r2.x, r2.y, r2.z
  ubfe r2.xyzw, l(1, 1, 1, 1), l(1, 1, 2, 2), r0.xyxy
  movc r3.xyzw, r2.yyww, l(1,3,1,3), l(2,0,2,0)
  movc r2.xy, r2.xzxx, r3.xzxx, r3.ywyy
  ishl r0.w, r0.w, l(4)
  imad r0.w, r2.x, l(4), r0.w
  iadd r0.w, r0.w, r2.y
  itof r0.w, r0.w
  add r0.w, r0.w, l(0.500000)
  mul r2.x, r0.w, l(0.015625)
  mul r2.yzw, r1.zzzz, cb12[2].xxyz
  mad r2.yzw, cb12[1].xxyz, r1.yyyy, r2.yyzw
  mad r1.yzw, cb12[3].xxyz, r1.wwww, r2.yyzw
  add r3.xyz, r1.yzwy, cb12[4].xyzx
  ld_raw r1.y, l(0), g3.xxxx
  mad r0.w, -r0.w, l(0.015625), l(1.000000)
  mov r3.w, l(1.000000)
  mov r4.xzw, l(0,0,0,0)
  mov r5.xyzw, l(0,0,0,0)
  mov r1.z, l(0)
  loop
    uge r1.w, r1.z, r1.y
    breakc_nz r1.w
    ld_structured r1.w, r1.z, l(0), g2.xxxx
    imul null, r1.w, r1.w, l(5)
    dp4 r6.x, r3.xyzw, cb13[r1.w + 2363].xyzw
    dp4 r6.y, r3.xyzw, cb13[r1.w + 2364].xyzw
    dp4 r6.z, r3.xyzw, cb13[r1.w + 2365].xyzw
    lt r2.yzw, |r6.xxyz|, l(0.000000, 1.000000, 1.000000, 1.000000)
    and r2.y, r2.z, r2.y
    and r2.y, r2.w, r2.y
    if_nz r2.y
      ushr r2.y, cb13[r1.w + 2366].w, l(16)
      utof r2.y, r2.y
      and r2.z, l(0x0000ffff), cb13[r1.w + 2366].w
      utof r2.z, r2.z
      mul r2.yz, r2.yyzy, l(0.000000, 0.0000152590219, 0.0000152590219, 0.000000)
      dp3 r2.w, r6.xyzx, r6.xyzx
      sqrt r2.w, r2.w
      add r2.w, -r2.w, l(1.000000)
      max r2.w, r2.w, l(0.000000)
      mul r6.xy, r2.wwww, cb13[r1.w + 2367].wxww
      mov_sat r6.x, r6.x
      eq r2.w, l(-1.000000), cb13[r1.w + 2367].w
      ge r6.z, r2.y, r0.w
      and r4.y, r6.z, l(0x3f800000)
      ge r2.y, r2.y, r2.x
      and r2.y, r2.y, l(0x3f800000)
      mul r7.x, r2.y, r2.z
      min r7.y, r6.y, l(0.998037279)
      mul r7.zw, r6.xxxx, cb13[r1.w + 2367].yyyz
      movc r6.xyzw, r2.wwww, r4.xyzw, r7.xyzw
      max r5.xyzw, r6.xyzw, r5.xyzw
    endif
    iadd r1.z, r1.z, l(1)
  endloop
  mul r0.w, r5.y, r5.y
  lt r1.y, l(0.000000), r5.x
  movc r1.z, r1.y, l(0), l(1.000000)
  mul r0.z, r0.z, r0.z
  min r0.z, r0.z, r1.z
  max r0.z, r0.w, r0.z
  add r0.z, -r0.z, l(1.000000)
  add r0.w, -r5.x, l(1.000000)
  add r1.z, -cb13[33].y, l(1.000000)
  movc r0.w, r1.y, r0.w, r1.z
  add r1.yz, -r5.zzwz, l(0.000000, 1.000000, 1.000000, 0.000000)
  min r0.w, r0.w, r1.y
  add r0.w, -r1.z, r0.w
  mad r2.y, r0.z, r0.w, r1.z
  add r2.x, -r0.z, l(1.000000)
else
  mov r2.xy, l(1.000000,1.000000,0,0)
endif
mov r2.z, l(0)
mov r50.xy, r0.xyyy
store_uav_typed u0.xyzw, r50.xyzz, r2.zzxy
ult r0.x, r1.x, l(192)
if_nz r0.x
  utof r0.xy, vThreadGroupID.yxyy
  mad r0.x, r0.x, cb12[24].z, r0.y
  ftou r0.x, r0.x
  imad r0.x, r0.x, l(192), r1.x
  ld_raw r0.y, l(0), g5.xxxx
  ult r0.y, r1.x, r0.y
  if_nz r0.y
    ld_structured r0.y, r1.x, l(0), g4.xxxx
  else
    mov r0.y, l(192)
  endif
  ishl r0.x, r0.x, l(2)
  store_raw u1.x, r0.x, r0.y
endif
ret
// Approximately 0 instruction slots used
