// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Fri Jan 24 17:42:38 2025
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xyzw
// TEXCOORD                 1   xy          1     NONE    uint   xy
// SV_POSITION              0   xyzw        2      POS   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[27], immediateIndexed
dcl_constantbuffer CB1[177], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_raw t0
dcl_resource_texture3d (float,float,float,float) t1
dcl_resource_structured t2, 16
dcl_resource_structured t3, 16
dcl_resource_structured t4, 16
dcl_resource_structured t5, 16
dcl_uav_structured u1, 4
dcl_input_ps constant v0.xyzw
dcl_input_ps constant v1.xy
dcl_input_ps_siv linear noperspective v2.xy, position
dcl_output o0.xyzw
dcl_temps 34
dcl_resource_buffer (float,float,float,float) t125
ld_indexable(buffer)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture1d)(float,float,float,float) r30.xyzw, l(10, 0, 0, 0), t120.xyzw
mov r25.xyzw, l(0)
mul r25.x, r25.x, r30.w
ftou r0.xy, v2.yxyy
utof r0.xy, r0.xyxx
mad r0.x, r0.x, cb0[26].x, r0.y
ftou r0.x, r0.x
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r1.xyzw, r0.x, l(0), t4.xyzw
mul r0.y, r1.w, r1.w
mad r0.z, -r1.w, r1.w, l(1.000000)
sqrt r0.z, r0.z
mul r22.xyz, v0.yyyy, cb1[17].xyzx
mad r22.xyz, v0.xxxx, cb1[16].xyzx, r22.xyzx
mad r22.xyz, v0.zzzz, cb1[18].xyzx, r22.xyzx
add r22.xyz, r22.xyzx, cb1[19].xyzx
mad r20.w, cb0[24].x, l(0.500000), v0.w
div r22.w, r20.w, r20.z
mov r20.xy, v0.xyxx
mul r2.xyz, v0.yyyy, cb1[17].xyzx
mad r2.xyz, r20.xxxx, cb1[16].xyzx, r2.xyzx
mad r2.xyz, v0.zzzz, cb1[18].xyzx, r2.xyzx
add r2.xyz, r2.xyzx, cb1[19].xyzx
mad r0.w, cb0[24].x, l(0.500000), v0.w
div r2.w, r0.w, r0.z
mad r3.xyz, r2.wwww, r1.xyzx, r2.xyzx
dp3 r2.w, r3.xyzx, r3.xyzx
dp3 r3.x, r1.xyzx, r3.xyzx
lt r3.y, l(0.000000), r3.x
mul r3.x, r3.x, r3.x
mul r0.y, r0.y, r2.w
ge r0.y, r3.x, r0.y
and r0.y, r0.y, r3.y
dp3 r2.w, r2.xyzx, r2.xyzx
dp3 r2.x, r1.xyzx, r2.xyzx
lt r2.y, l(0.000000), -r2.x
mul r2.z, r2.x, r2.x
mul r3.x, r0.z, r0.z
mul r3.x, r2.w, r3.x
ge r2.z, r2.z, r3.x
and r2.y, r2.z, r2.y
mul r2.z, r0.w, r0.w
ge r2.z, r2.z, r2.w
movc r2.y, r2.y, r2.z, l(-1)
and r0.y, r0.y, r2.y
if_nz r0.y
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.xyzw, r0.x, l(0), t5.xyzw
  add r0.x, r0.w, r2.x
  add r0.y, -r0.w, r2.x
  lt r0.w, r3.x, r0.x
  lt r2.x, r0.y, r3.y
  and r0.w, r0.w, r2.x
  if_nz r0.w
    imul null, r0.w, v1.x, l(10)
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.xyz, r0.w, l(0), t3.xyzx
    imad r0.w, v1.x, l(10), l(1)
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.xyzw, r0.w, l(0), t3.xyzw
    imad r5.xyzw, v1.xxxx, l(10, 10, 10, 10), l(2, 3, 4, 9)
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.xyzw, r5.x, l(0), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyzw, r5.y, l(0), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.xyz, r5.z, l(0), t3.xyzx
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r8.xyzw, r5.w, l(0), t3.xyzw
    min r0.w, r8.z, r8.y
    min r0.w, r0.w, r8.x
    add r2.xyz, -r2.xyzx, cb1[64].xyzx
    mad r2.xyz, r2.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), -cb1[76].xyzx
    mov r2.w, l(1.000000)
    add r26.x, r2.z, -r25.y
    dp4 r4.w, r2.xyzw, r4.xyzw
    dp4 r6.w, r2.xyzw, r6.xyzw
    dp4 r7.w, r2.xyzw, r7.xyzw
    add r2.x, r3.y, r3.x
    mul r2.x, r2.x, l(0.500000)
    mov r32.z, r2.x
    mul r2.xyz, r1.xyzx, r2.xxxx
    add r26.x, r32.z, -r25.y
    mul r8.xyz, r2.yyyy, cb1[21].xyzx
    mad r2.xyw, r2.xxxx, cb1[20].xyxz, r8.xyxz
    mad r2.xyz, r2.zzzz, cb1[22].xyzx, r2.xywx
    add r2.xyz, r2.xyzx, cb1[23].xyzx
    add r3.x, -r3.x, r3.y
    mul r3.x, r3.x, l(0.500000)
    mul r3.y, r0.z, r3.y
    div r3.y, r3.y, r1.w
    mul r3.y, r3.y, r3.y
    mad r3.x, r3.x, r3.x, r3.y
    sqrt r3.x, r3.x
    mov r2.w, l(1.000000)
    add r26.x, r2.z, -r25.y
    dp4 r4.x, r2.xyzw, r4.xyzw
    dp4 r4.y, r2.xyzw, r6.xyzw
    dp4 r4.z, r2.xyzw, r7.xyzw
    lt r2.xyz, r4.xyzx, -r5.xyzx
    add r6.xyz, r5.xyzx, r4.xyzx
    mov r6.xyz, |r6.xyzx|
    and r2.xyz, r2.xyzx, r6.xyzx
    lt r6.xyz, r5.xyzx, r4.xyzx
    add r7.xyz, -r5.xyzx, r4.xyzx
    mov r7.xyz, |r7.xyzx|
    and r6.xyz, r6.xyzx, r7.xyzx
    dp3 r2.x, r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
    dp3 r2.y, r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
    add r2.x, r2.y, r2.x
    mul r2.x, r0.w, r2.x
    add r2.y, r3.x, cb0[24].x
    lt r2.x, r2.x, r2.y
    if_nz r2.x
      max r2.xzw, -r5.xxyz, r4.xxyz
      min r2.xzw, r5.xxyz, r2.xxzw
      add r4.xyz, -r2.xzwx, r4.xyzx
      dp3 r3.x, r4.xyzx, r4.xyzx
      sqrt r3.x, r3.x
      imul null, r3.y, r8.w, l(9)
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.x, r3.y, l(0), t2.xxxx
      ushr r4.x, r4.x, l(30)
      iadd r4.y, cb0[19].y, cb0[19].x
      mov r4.zw, l(0,0,0,0)
      loop
        uge r5.x, r4.w, r4.x
        breakc_nz r5.x
        imad r5.x, r4.w, l(3), r3.y
        ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.yz, r5.x, l(0), t2.xxyx
        iadd r5.xw, r5.xxxx, l(1, 0, 0, 2)
        ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.xyzw, r5.x, l(0), t2.xyzw
        ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyzw, r5.w, l(0), t2.xyzw
        and r5.x, r5.y, l(1023)
        ubfe r5.y, l(10), l(10), r5.y
        mad r6.xyz, r2.xzwx, r6.xyzx, r7.xyzx
        ftoi r7.xyz, r6.xyzx
        imad r5.y, r7.z, r5.y, r7.y
        imad r5.x, r5.y, r5.x, r7.x
        iadd r5.x, r5.x, r5.z
        ishl r5.x, r5.x, l(2)
        ld_raw_indexable(raw_buffer)(mixed,mixed,mixed,mixed) r5.x, r5.x, t0.xxxx
        ine r5.y, r5.x, l(-1)
        add r5.z, r6.w, r7.w
        if_nz r5.y
          round_z r7.xyz, r6.xyzx
          add r6.xyz, r6.xyzx, -r7.xyzx
          and r5.y, r5.x, cb0[18].x
          ushr r5.w, r5.x, cb0[19].x
          and r5.w, r5.w, cb0[18].y
          ushr r5.x, r5.x, r4.y
          utof r7.xyz, r5.ywxy
          mul r5.xyw, r6.xyxz, cb0[23].xyxz
          mad r5.xyw, r7.xyxz, cb0[22].xyxz, r5.xyxw
          add r5.xyw, r5.xyxw, cb0[21].xyxz
          sample_l_indexable(texture3d)(float,float,float,float) r5.x, r5.xywx, t1.xyzw, s0, l(0.000000)
          mad r5.x, r5.x, r6.w, r7.w
        else
          mov r5.x, r5.z
        endif
        mul r5.y, r5.z, l(0.250000)
        lt r5.y, r5.y, |r5.x|
        if_nz r5.y
          mov r4.z, r5.x
          break
        endif
        iadd r4.w, r4.w, l(1)
        mov r4.z, r5.x
      endloop
      add r2.x, r3.x, r4.z
      mul r0.w, r0.w, r2.x
      lt r0.w, r0.w, r2.y
      if_nz r0.w
        mov r2.x, l(-1)
      endif
    else
      mov r0.w, l(0)
    endif
  else
    mov r0.w, l(0)
  endif
  and r0.w, r2.x, r0.w
  if_z r0.w
    lt r0.x, r3.z, r0.x
    lt r0.y, r0.y, r3.w
    and r0.x, r0.y, r0.x
    if_nz r0.x
      imul null, r0.x, v1.x, l(10)
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.xyw, r0.x, l(0), t3.xyxz
      imad r2.x, v1.x, l(10), l(1)
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.xyzw, r2.x, l(0), t3.xyzw
      imad r4.xyzw, v1.xxxx, l(10, 10, 10, 10), l(2, 3, 4, 9)
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.xyzw, r4.x, l(0), t3.xyzw
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.xyzw, r4.y, l(0), t3.xyzw
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.xyz, r4.z, l(0), t3.xyzx
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyzw, r4.w, l(0), t3.xyzw
      min r3.x, r7.z, r7.y
      min r3.x, r3.x, r7.x
      add r0.xyw, -r0.xyxw, cb1[64].xyxz
      mad r8.xyz, r0.xywx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), -cb1[76].xyzx
      mov r8.w, l(1.000000)
      add r26.x, r8.z, -r25.y
      dp4 r2.w, r8.xyzw, r2.xyzw
      dp4 r5.w, r8.xyzw, r5.xyzw
      dp4 r6.w, r8.xyzw, r6.xyzw
      add r0.x, r3.w, r3.z
      mul r0.x, r0.x, l(0.500000)
      mov r32.w, r0.x
      mul r0.xyw, r0.xxxx, r1.xyxz
      add r26.x, r32.w, -r25.y
      mul r1.xyz, r0.yyyy, cb1[21].xyzx
      mad r1.xyz, r0.xxxx, cb1[20].xyzx, r1.xyzx
      mad r0.xyw, r0.wwww, cb1[22].xyxz, r1.xyxz
      add r8.xyz, r0.xywx, cb1[23].xyzx
      add r0.x, -r3.z, r3.w
      mul r0.x, r0.x, l(0.500000)
      mul r0.y, r0.z, r3.w
      div r0.y, r0.y, r1.w
      mul r0.y, r0.y, r0.y
      mad r0.x, r0.x, r0.x, r0.y
      sqrt r0.x, r0.x
      mov r8.w, l(1.000000)
      add r26.x, r8.z, -r25.y
      dp4 r1.x, r8.xyzw, r2.xyzw
      dp4 r1.y, r8.xyzw, r5.xyzw
      dp4 r1.z, r8.xyzw, r6.xyzw
      lt r0.yzw, r1.xxyz, -r4.xxyz
      add r2.xyz, r4.xyzx, r1.xyzx
      mov r2.xyz, |r2.xyzx|
      and r0.yzw, r0.yyzw, r2.xxyz
      lt r2.xyz, r4.xyzx, r1.xyzx
      add r3.yzw, -r4.xxyz, r1.xxyz
      mov r3.yzw, |r3.yyzw|
      and r2.xyz, r2.xyzx, r3.yzwy
      dp3 r0.y, r0.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000)
      dp3 r0.z, r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      add r0.y, r0.z, r0.y
      mul r0.y, r3.x, r0.y
      add r0.x, r0.x, cb0[24].x
      lt r0.y, r0.y, r0.x
      if_nz r0.y
        max r0.yzw, -r4.xxyz, r1.xxyz
        min r0.yzw, r4.xxyz, r0.yyzw
        add r1.xyz, -r0.yzwy, r1.xyzx
        dp3 r1.x, r1.xyzx, r1.xyzx
        sqrt r1.x, r1.x
        imul null, r1.y, r7.w, l(9)
        ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r1.z, r1.y, l(0), t2.xxxx
        ushr r1.z, r1.z, l(30)
        iadd r1.w, cb0[19].y, cb0[19].x
        mov r2.xy, l(0,0,0,0)
        loop
          uge r2.z, r2.y, r1.z
          breakc_nz r2.z
          imad r2.z, r2.y, l(3), r1.y
          ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.yz, r2.z, l(0), t2.xxyx
          iadd r2.zw, r2.zzzz, l(0, 0, 1, 2)
          ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.xyzw, r2.z, l(0), t2.xyzw
          ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.xyzw, r2.w, l(0), t2.xyzw
          and r2.z, r3.y, l(1023)
          ubfe r2.w, l(10), l(10), r3.y
          mad r4.xyz, r0.yzwy, r4.xyzx, r5.xyzx
          ftoi r5.xyz, r4.xyzx
          imad r2.w, r5.z, r2.w, r5.y
          imad r2.z, r2.w, r2.z, r5.x
          iadd r2.z, r2.z, r3.z
          ishl r2.z, r2.z, l(2)
          ld_raw_indexable(raw_buffer)(mixed,mixed,mixed,mixed) r2.z, r2.z, t0.xxxx
          ine r2.w, r2.z, l(-1)
          add r3.y, r4.w, r5.w
          if_nz r2.w
            round_z r5.xyz, r4.xyzx
            add r4.xyz, r4.xyzx, -r5.xyzx
            and r2.w, r2.z, cb0[18].x
            ushr r3.z, r2.z, cb0[19].x
            and r3.z, r3.z, cb0[18].y
            ushr r2.z, r2.z, r1.w
            utof r5.y, r3.z
            utof r5.xz, r2.wwzw
            mul r4.xyz, r4.xyzx, cb0[23].xyzx
            mad r4.xyz, r5.xyzx, cb0[22].xyzx, r4.xyzx
            add r4.xyz, r4.xyzx, cb0[21].xyzx
            sample_l_indexable(texture3d)(float,float,float,float) r2.z, r4.xyzx, t1.yzxw, s0, l(0.000000)
            mad r2.z, r2.z, r4.w, r5.w
          else
            mov r2.z, r3.y
          endif
          mul r2.w, r3.y, l(0.250000)
          lt r2.w, r2.w, |r2.z|
          if_nz r2.w
            mov r2.x, r2.z
            break
          endif
          iadd r2.y, r2.y, l(1)
          mov r2.xy, r2.zyzz
        endloop
        add r0.y, r1.x, r2.x
        mul r0.y, r3.x, r0.y
        lt r0.x, r0.y, r0.x
        if_nz r0.x
          mov r0.y, l(-1)
        endif
      else
        mov r0.x, l(0)
      endif
    else
      mov r0.x, l(0)
    endif
    and r0.x, r0.y, r0.x
  else
    mov r0.x, l(-1)
  endif
  if_nz r0.x
    mov r0.x, v1.y
    mov r0.y, l(0)
    atomic_iadd u1, r0.xyxx, l(1)
  endif
endif
mov o0.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used
