// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.63 on Sun Oct  9 13:48:44 2022
//
//
// Note: shader requires additional functionality:
//       64 UAV slots
//
//
// 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_immediateConstantBuffer { { 0.356642, 0, 0, 0},
                              { 0.239400, 0, 0, 0},
                              { 0.072410, 0, 0, 0},
                              { 0.009869, 0, 0, 0} }
dcl_constantbuffer CB0[2], immediateIndexed
dcl_resource_structured t1, 4
dcl_resource_texture2d (uint,uint,uint,uint) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_uav_typed_texture2darray (float,float,float,float) u8
dcl_uav_typed_texture2darray (float,float,float,float) u9
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.x
dcl_temps 50
dcl_tgsm_structured g0, 4, 144
dcl_tgsm_structured g1, 16, 144
dcl_thread_group 64, 1, 1
dcl_constantbuffer CB12[3], immediateIndexed
mov r50.z, l(0)
iadd r0.x, vThreadGroupID.x, cb0[0].y
udiv r1.x, r2.x, r0.x, cb0[0].x
imul null, r0.x, r0.x, l(3)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(0), t1.xxxx
and r0.x, r0.x, l(0x00100000)
and r3.x, vThreadIDInGroupFlattened.x, l(7)
ushr r3.y, vThreadIDInGroupFlattened.x, l(3)
mov r2.y, r1.x
ishl r0.yz, r2.xxyx, l(0, 3, 3, 0)
bfi r1.xy, l(29, 29, 0, 0), l(3, 3, 0, 0), r2.xyxx, r3.xyxx
iadd r0.yz, r0.yyzy, l(0, -2, -2, 0)
udiv r2.y, null, vThreadIDInGroupFlattened.x, l(12)
imad r2.x, r2.y, l(-12), vThreadIDInGroupFlattened.x
iadd r2.xy, r0.yzyy, r2.xyxx
mov r2.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r3.zw, r2.xyww, t3.zwxy
ushr r0.w, r3.z, l(24)
utof r0.w, r0.w
mul r4.w, r0.w, l(0.00392156886)
f16tof32 r0.w, r3.z
ubfe r5.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), r3.wwww
utof r5.xy, r5.xyxx
and r3.z, r3.w, l(255)
utof r5.z, r3.z
mad r4.xyz, r5.xyzx, l(0.00787401572, 0.00787401572, 0.00787401572, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
store_structured g1.xyzw, vThreadIDInGroupFlattened.x, l(0), r4.xyzw
iadd r0.w, vThreadIDInGroupFlattened.x, l(64)
udiv r4.y, null, r0.w, l(12)
imad r4.x, r4.y, l(-12), r0.w
iadd r4.xy, r0.yzyy, r4.xyxx
mov r4.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r3.zw, r4.xyww, t3.zwxy
ushr r5.x, r3.z, l(24)
utof r5.x, r5.x
mul r5.w, r5.x, l(0.00392156886)
f16tof32 r3.z, r3.z
ubfe r6.xy, l(8, 8, 0, 0), l(16, 8, 0, 0), r3.wwww
utof r6.xy, r6.xyxx
and r3.w, r3.w, l(255)
utof r6.z, r3.w
mad r5.xyz, r6.xyzx, l(0.00787401572, 0.00787401572, 0.00787401572, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
store_structured g0.x, r0.w, l(0), r3.z
store_structured g1.xyzw, r0.w, l(0), r5.xyzw
ult r3.z, vThreadIDInGroupFlattened.x, l(16)
if_nz r3.z
  iadd r3.w, vThreadIDInGroupFlattened.x, l(128)
  udiv r5.y, null, r3.w, l(12)
  imad r5.x, r5.y, l(-12), r3.w
  iadd r5.xy, r0.yzyy, r5.xyxx
  mov r5.zw, l(0,0,0,0)
  ld_indexable(texture2d)(uint,uint,uint,uint) r5.xy, r5.xyzw, t3.xyzw
  ushr r5.z, r5.x, l(24)
  utof r5.z, r5.z
  mul r6.w, r5.z, l(0.00392156886)
  f16tof32 r5.x, r5.x
  ubfe r5.zw, l(0, 0, 8, 8), l(0, 0, 16, 8), r5.yyyy
  and r5.y, r5.y, l(255)
  utof r7.xyz, r5.zwyz
  mad r6.xyz, r7.xyzx, l(0.00787401572, 0.00787401572, 0.00787401572, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  store_structured g0.x, r3.w, l(0), r5.x
  store_structured g1.xyzw, r3.w, l(0), r6.xyzw
endif
sync_g_t
iadd r3.xy, r3.xyxx, l(2, 2, 0, 0)
imad r3.w, r3.y, l(12), r3.x
ld_structured r5.x, r3.w, l(0), g0.xxxx
div r5.y, l(200.000000), |r5.x|
if_z r0.x
  ld_structured r6.xyzw, r3.w, l(0), g1.xyzw
  mul r6.xyzw, r6.xyzw, l(0.127193511, 0.127193511, 0.127193511, 0.127193511)
  mov r7.yzw, r6.xxyz
  mov r8.x, l(0.127193511)
  mov r8.y, r6.w
  mov r9.y, l(-2)
  loop
    ilt r5.z, l(2), r9.y
    breakc_nz r5.z
    imax r5.z, -r9.y, r9.y
    mov r10.xyz, r7.yzwy
    mov r5.w, r8.x
    mov r10.w, r8.y
    mov r9.x, l(-2)
    loop
      ilt r7.x, l(2), r9.x
      breakc_nz r7.x
      or r7.x, r9.y, r9.x
      if_nz r7.x
        iadd r8.zw, r3.xxxy, r9.xxxy
        imad r7.x, r8.w, l(12), r8.z
        ld_structured r8.z, r7.x, l(0), g0.xxxx
        ld_structured r11.xyzw, r7.x, l(0), g1.xyzw
        imax r7.x, -r9.x, r9.x
        mul r7.x, icb[r5.z + 0].x, icb[r7.x + 0].x
        add r8.z, -r5.x, r8.z
        mad r8.z, |r5.x|, l(-0.060000), |r8.z|
        max r8.z, r8.z, l(0.000000)
        mad r8.z, -r5.y, r8.z, l(1.000000)
        max r8.z, r8.z, l(0.000000)
        mul r8.w, r7.x, r8.z
        mad r10.xyzw, r11.xyzw, r8.wwww, r10.xyzw
        mad r5.w, r7.x, r8.z, r5.w
      endif
      iadd r9.x, r9.x, l(1)
    endloop
    mov r7.yzw, r10.xxyz
    mov r8.x, r5.w
    mov r8.y, r10.w
    iadd r9.y, r9.y, l(1)
  endloop
  mov r1.zw, l(0,0,0,0)
  ld_indexable(texture2d)(uint,uint,uint,uint) r1.z, r1.xyzw, t3.yzxw
  ubfe r1.z, l(8), l(16), r1.z
  utof r1.z, r1.z
  mul r6.x, r1.z, l(0.00392156886)
  dp3 r1.z, r7.yzwy, r7.yzwy
  rsq r1.z, r1.z
  mul r7.xyz, r1.zzzz, r7.yzwy
  div r8.y, r8.y, r8.x
  mul r1.z, r8.y, l(0.500000)
  mad r7.xyz, r7.xyzx, r1.zzzz, l(0.500000, 0.500000, 0.500000, 0.000000)
  mov r8.zw, l(0,0,1.000000,1.000000)
  movc r6.yzw, cb0[0].wwww, r7.xxyz, r8.yyzw
else
  mov r6.xyzw, l(1.000000,1.000000,1.000000,1.000000)
endif
mov r50.xy, r1.xyyy
store_uav_typed u8.xyzw, r50.xyzz, r6.xyzw
sync_g_t
ld_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyzw, t4.xyzw
store_structured g1.xyz, vThreadIDInGroupFlattened.x, l(0), r2.xyzx
ld_indexable(texture2d)(float,float,float,float) r2.xyz, r4.xyzw, t4.xyzw
store_structured g1.xyz, r0.w, l(0), r2.xyzx
if_nz r3.z
  iadd r0.w, vThreadIDInGroupFlattened.x, l(128)
  udiv r2.y, null, r0.w, l(12)
  imad r2.x, r2.y, l(-12), r0.w
  iadd r2.xy, r0.yzyy, r2.xyxx
  mov r2.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r2.xyz, r2.xyzw, t4.xyzw
  store_structured g1.xyz, r0.w, l(0), r2.xyzx
endif
sync_g_t
if_nz cb0[1].x
  if_z r0.x
    ld_structured r0.xyz, r3.w, l(0), g1.xyzx
    mov r2.xyz, r0.xyzx
    mov r0.w, l(1.000000)
    mov r4.y, l(-2)
    loop
      ilt r1.z, l(2), r4.y
      breakc_nz r1.z
      mov r6.xyz, r2.xyzx
      mov r1.z, r0.w
      mov r4.x, l(-2)
      loop
        ilt r1.w, l(2), r4.x
        breakc_nz r1.w
        or r1.w, r4.y, r4.x
        if_nz r1.w
          iadd r3.zw, r3.xxxy, r4.xxxy
          imad r1.w, r3.w, l(12), r3.z
          ld_structured r2.w, r1.w, l(0), g0.xxxx
          ld_structured r7.xyz, r1.w, l(0), g1.xyzx
          add r1.w, -r5.x, r2.w
          mad r1.w, |r5.x|, l(-0.060000), |r1.w|
          max r1.w, r1.w, l(0.000000)
          mad r1.w, -r5.y, r1.w, l(1.000000)
          max r1.w, r1.w, l(0.000000)
          mad r6.xyz, r7.xyzx, r1.wwww, r6.xyzx
          add r1.z, r1.w, r1.z
        endif
        iadd r4.x, r4.x, l(1)
      endloop
      mov r2.xyz, r6.xyzx
      mov r0.w, r1.z
      iadd r4.y, r4.y, l(1)
    endloop
    div r0.xyz, r2.xyzx, r0.wwww
  else
    mov r0.xyz, l(0,0,0,0)
  endif
  mov r50.xy, r1.xyyy
  store_uav_typed u9.xyzw, r50.xyzz, r0.xyzx
endif
ret
// Approximately 0 instruction slots used
