// 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.xz, cb12[23].xxyx, l(0.015625, 0.000000, 0.015625, 0.000000), -r3.zzwz
mul r5.x, r3.x, cb12[13].x
mul r4.y, 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.x, cb14[0].x, r30.x, r4.x
mov r5.yw, cb12[13].yyyw
mov r5.z, r4.x
mov r3.xyw, cb12[16].xyxw
mov r3.z, l(1.000000)
add r6.xyzw, -r5.xyzw, r3.xyzw
add r5.xyzw, r5.xyzw, r3.xyzw
mov r4.xw, cb12[14].xxxw
add r7.xyzw, r3.xyzw, -r4.xyzw
add r3.xyzw, r3.xyzw, r4.xyzw
dp3 r1.w, r6.xyzx, r6.xyzx
sqrt r1.w, r1.w
div r4.xyzw, r6.xyzw, r1.wwww
dp3 r1.w, r5.xyzx, r5.xyzx
sqrt r1.w, r1.w
div r5.xyzw, r5.xyzw, r1.wwww
dp3 r1.w, r7.xyzx, r7.xyzx
sqrt r1.w, r1.w
div r6.xyzw, r7.xyzw, r1.wwww
dp3 r1.w, r3.xyzx, r3.xyzx
sqrt r1.w, r1.w
div r3.xyzw, r3.xyzw, r1.wwww
mul r7.xyz, r4.wwww, -r4.xyzx
mul r8.xyz, r5.wwww, -r5.xyzx
mul r9.xyz, r6.wwww, -r6.xyzx
mul r10.xyz, r3.wwww, -r3.xyzx
mov r7.w, l(1.000000)
mov r8.w, l(1.000000)
mov r9.w, l(1.000000)
mov r10.w, l(1.000000)
mov r2.yw, l(0,1.000000,0,1.000000)
mov r1.w, r1.x
loop
  ige r3.w, r1.w, cb13[2362].x
  breakc_nz r3.w
  imul null, r3.w, r1.w, l(5)
  dp4 r11.x, r7.xyzw, cb13[r3.w + 2363].xyzw
  dp4 r11.y, r7.xyzw, cb13[r3.w + 2364].xyzw
  dp4 r11.z, r7.xyzw, cb13[r3.w + 2365].xyzw
  dp3 r12.x, r4.xyzx, cb13[r3.w + 2363].xyzx
  dp3 r12.y, r4.xyzx, cb13[r3.w + 2364].xyzx
  dp3 r12.z, r4.xyzx, cb13[r3.w + 2365].xyzx
  mul r12.xyz, r12.xyzx, cb13[r3.w + 2366].xyzx
  dp3 r4.w, r11.xyzx, r12.xyzx
  mov r11.w, -r4.w
  and r5.w, l(0x0000ffff), cb13[r3.w + 2366].w
  utof r5.w, r5.w
  lt r5.w, l(0.000000), r5.w
  eq r6.w, l(-1.000000), cb13[r3.w + 2367].w
  or r5.w, r5.w, r6.w
  mov r11.xyz, |r12.xyzx|
  dp4 r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.xyzw
  ge r6.w, r6.w, l(0.000000)
  dp3 r11.x, r12.xyzx, r12.xyzx
  sqrt r11.x, r11.x
  lt r4.w, r4.w, r11.x
  movc r4.w, r5.w, r6.w, r4.w
  and r6.w, r4.w, l(1)
  dp4 r11.x, r8.xyzw, cb13[r3.w + 2363].xyzw
  dp4 r11.y, r8.xyzw, cb13[r3.w + 2364].xyzw
  dp4 r11.z, r8.xyzw, cb13[r3.w + 2365].xyzw
  dp3 r12.x, r5.xyzx, cb13[r3.w + 2363].xyzx
  dp3 r12.y, r5.xyzx, cb13[r3.w + 2364].xyzx
  dp3 r12.z, r5.xyzx, cb13[r3.w + 2365].xyzx
  mul r12.xyz, r12.xyzx, cb13[r3.w + 2366].xyzx
  dp3 r11.x, r11.xyzx, r12.xyzx
  mov r13.w, -r11.x
  mov r13.xyz, |r12.xyzx|
  dp4 r11.y, l(1.000000, 1.000000, 1.000000, 1.000000), r13.xyzw
  ge r11.y, r11.y, l(0.000000)
  dp3 r11.z, r12.xyzx, r12.xyzx
  sqrt r11.z, r11.z
  lt r11.x, r11.x, r11.z
  movc r11.x, r5.w, r11.y, r11.x
  bfi r4.w, l(1), l(0), r4.w, l(2)
  movc r4.w, r11.x, r4.w, r6.w
  dp4 r11.x, r9.xyzw, cb13[r3.w + 2363].xyzw
  dp4 r11.y, r9.xyzw, cb13[r3.w + 2364].xyzw
  dp4 r11.z, r9.xyzw, cb13[r3.w + 2365].xyzw
  dp3 r12.x, r6.xyzx, cb13[r3.w + 2363].xyzx
  dp3 r12.y, r6.xyzx, cb13[r3.w + 2364].xyzx
  dp3 r12.z, r6.xyzx, cb13[r3.w + 2365].xyzx
  mul r12.xyz, r12.xyzx, cb13[r3.w + 2366].xyzx
  dp3 r6.w, r11.xyzx, r12.xyzx
  mov r11.w, -r6.w
  mov r11.xyz, |r12.xyzx|
  dp4 r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.xyzw
  ge r11.x, r11.x, l(0.000000)
  dp3 r11.y, r12.xyzx, r12.xyzx
  sqrt r11.y, r11.y
  lt r6.w, r6.w, r11.y
  movc r6.w, r5.w, r11.x, r6.w
  iadd r11.x, r4.w, l(4)
  movc r4.w, r6.w, r11.x, r4.w
  dp4 r11.x, r10.xyzw, cb13[r3.w + 2363].xyzw
  dp4 r11.y, r10.xyzw, cb13[r3.w + 2364].xyzw
  dp4 r11.z, r10.xyzw, cb13[r3.w + 2365].xyzw
  dp3 r12.x, r3.xyzx, cb13[r3.w + 2363].xyzx
  dp3 r12.y, r3.xyzx, cb13[r3.w + 2364].xyzx
  dp3 r12.z, r3.xyzx, cb13[r3.w + 2365].xyzx
  mul r12.xyz, r12.xyzx, cb13[r3.w + 2366].xyzx
  dp3 r6.w, r11.xyzx, r12.xyzx
  mov r11.w, -r6.w
  mov r11.xyz, |r12.xyzx|
  dp4 r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.xyzw
  ge r11.x, r11.x, l(0.000000)
  dp3 r11.y, r12.xyzx, r12.xyzx
  sqrt r11.y, r11.y
  lt r6.w, r6.w, r11.y
  movc r6.w, r5.w, r11.x, r6.w
  iadd r11.x, r4.w, l(8)
  movc r4.w, r6.w, r11.x, r4.w
  dp2 r11.x, r2.xyxx, cb13[r3.w + 2363].zwzz
  dp2 r11.y, r2.xyxx, cb13[r3.w + 2364].zwzz
  dp2 r11.z, r2.xyxx, cb13[r3.w + 2365].zwzz
  mov r12.x, -cb13[r3.w + 2363].z
  mov r12.y, -cb13[r3.w + 2364].z
  mov r12.z, -cb13[r3.w + 2365].z
  mul r12.xyz, r12.xyzx, cb13[r3.w + 2366].xyzx
  dp3 r6.w, r11.xyzx, r12.xyzx
  mov r11.w, -r6.w
  mov r11.xyz, |r12.xyzx|
  dp4 r11.x, l(1.000000, 1.000000, 1.000000, 1.000000), r11.xyzw
  ge r11.x, r11.x, l(0.000000)
  dp3 r11.y, r12.xyzx, r12.xyzx
  sqrt r11.y, r11.y
  lt r6.w, r6.w, r11.y
  movc r6.w, r5.w, r11.x, r6.w
  iadd r11.x, r4.w, l(16)
  movc r4.w, r6.w, r11.x, r4.w
  dp2 r11.x, r2.zwzz, cb13[r3.w + 2363].zwzz
  dp2 r11.y, r2.zwzz, cb13[r3.w + 2364].zwzz
  dp2 r11.z, r2.zwzz, cb13[r3.w + 2365].zwzz
  mov r12.x, cb13[r3.w + 2363].z
  mov r12.y, cb13[r3.w + 2364].z
  mov r12.z, cb13[r3.w + 2365].z
  mul r12.xyz, r12.xyzx, cb13[r3.w + 2366].xyzx
  dp3 r3.w, r11.xyzx, r12.xyzx
  mov r11.w, -r3.w
  mov r11.xyz, |r12.xyzx|
  dp4 r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.xyzw
  ge r6.w, r6.w, l(0.000000)
  dp3 r11.x, r12.xyzx, r12.xyzx
  sqrt r11.x, r11.x
  lt r3.w, r3.w, r11.x
  movc r3.w, r5.w, r6.w, r3.w
  iadd r5.w, r4.w, l(32)
  movc r3.w, r3.w, r5.w, r4.w
  and r3.w, r3.w, l(31)
  ieq r3.w, r3.w, l(31)
  if_nz r3.w
    imm_atomic_iadd r11.x, g5, l(0), l(1)
    ult r3.w, r11.x, l(192)
    if_nz r3.w
      store_structured g4.x, r11.x, l(0), r1.w
    endif
  endif
  imm_atomic_iadd r11.x, g3, l(0), l(1)
  ult r3.w, r11.x, l(192)
  if_nz r3.w
    store_structured g2.x, r11.x, l(0), r1.w
  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, r2.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
