// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.89 on Mon Dec 26 00:11:14 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy
// TEXCOORD                 0   xy          1     NONE   float   xy
// TEXCOORD                 1     zw        1     NONE   float
// POSITION                 0   xyz         2     NONE   float     z
// MASK                     0      w        2     NONE   float
// POSITION                 1   xyzw        3     NONE   float
// POSITION                 2   xyzw        4     NONE   float
// STYLES                   0   xyzw        5     NONE   float
// PLANE                    0   xyzw        6     NONE   float   xyz
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   x           1   TARGET   float   x
//
ps_4_0
dcl_globalFlags refactoringAllowed | enableRawAndStructuredBuffers
dcl_immediateConstantBuffer { { 0, 0, 1.000000, 0},
                              { 0, 0.250000, 1.000000, 0},
                              { 0, 0.500000, 0.700000, 0},
                              { 0, 0.700000, 0.500000, 0},
                              { 0, 1.000000, 0, 0},
                              { 0.250000, 1.000000, 0, 0},
                              { 0.500000, 1.000000, 0, 0},
                              { 0.700000, 0.700000, 0, 0},
                              { 0.800000, 0.400000, 0, 0},
                              { 1.000000, 0.200000, 0, 0},
                              { 1.000000, 0, 0, 0} }
dcl_constantbuffer CB0[57], immediateIndexed
dcl_constantbuffer CB1[1], immediateIndexed
dcl_constantbuffer CB2[1025], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s4, mode_comparison
dcl_sampler s6, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_structured t2, 4
dcl_resource_structured t3, 4
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_structured t5, 128
dcl_resource_texture2d (float,float,float,float) t6
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.z
dcl_input_ps linear v6.xyz
dcl_output o0.xyzw
dcl_output o1.x
dcl_temps 37
dcl_resource_buffer (float,float,float,float) t125
ld_indexable(buffer)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
mad r0.xy, cb1[0].xxxx, l(0.333333343, 0.333333343, 0.000000, 0.000000), v1.xyxx
mul r0.xy, r0.xyxx, l(6.28318548, 6.28318548, 0.000000, 0.000000)
sincos r0.xy, null, r0.xyxx
mad r0.xy, r0.xyxx, l(0.062500, 0.062500, 0.000000, 0.000000), v1.yxyy
add r0.xy, r0.xyxx, l(0.062500, 0.062500, 0.000000, 0.000000)
sample r1.xyzw, r0.xyxx, t0.xyzw, s0
lt r0.z, l(0.999000), r1.w
if_nz r0.z
  div r2.x, v0.x, cb0[52].w
  div r2.y, v0.y, cb0[53].x
  mul r2.zw, cb0[55].zzzw, cb0[56].xxxy
  mad r2.xy, r2.xyxx, cb0[55].zwzz, -r2.zwzz
  mov r20.xy, r2.xyxx
  add r21.x, v2.z, r25.y
  mul r21.x, r21.x, r25.x
  mul r21.y, l(2.000000), cb0[52].w
  div r21.y, l(1.000000), r21.y
  mad r20.x, r21.x, r21.y, r20.x
  add r3.xy, -r20.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
  mul r3.xy, r3.xyxx, l(16.000000, 8.000000, 0.000000, 0.000000)
  ftoi r3.xy, r3.xyxx
  div r0.w, -v2.z, cb2[1024].x
  max r0.w, r0.w, l(1.000000)
  log r0.w, r0.w
  mul r0.w, r0.w, cb2[1024].y
  round_ni r0.w, r0.w
  ftoi r0.w, r0.w
  imin r0.w, r0.w, l(23)
  ishl r2.w, r3.y, l(4)
  iadd r2.w, r3.x, r2.w
  ishl r0.w, r0.w, l(7)
  iadd r0.w, r0.w, r2.w
  ld_structured r3.x, r0.w, l(0), t2.xxxx
  ushr r0.w, r3.x, l(16)
  if_nz r0.w
    add r2.z, -r2.y, l(1.000000)
    mad r2.xy, r2.xzxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
    mul r2.xy, r2.xyxx, cb0[54].xyxx
    mul r2.xy, r2.xyxx, -v2.zzzz
    ishl r2.w, r3.x, l(5)
    and r2.w, r2.w, l(0x001fffe0)
    mov r2.z, v2.z
    lt r3.x, cb1[0].y, l(1.000000)
    add r25.w, r2.z, r25.y
    div r25.w, r25.w, cb0[12].x
    mad r2.x, r25.x, r25.w, r2.x
    mul r3.yzw, r2.yyyy, cb0[17].xxyz
    mad r3.yzw, cb0[16].xxyz, r2.xxxx, r3.yyzw
    mad r3.yzw, cb0[18].xxyz, v2.zzzz, r3.yyzw
    add r3.yzw, r3.yyzw, cb0[19].xxyz
    mov r4.w, l(1.000000)
    mov r5.xyzw, l(1.000000,1.000000,1.000000,0)
    mov r6.xyzw, l(0,0,0,0)
    mov r7.x, l(0)
    loop
      uge r7.y, r7.x, r0.w
      breakc_nz r7.y
      iadd r7.y, r2.w, r7.x
      ld_structured r8.x, r7.y, l(0), t3.xxxx
      ishl r7.y, r8.x, l(2)
      add r7.z, r5.w, l(1.000000)
      ushr r7.w, cb2[r7.y + 2].z, l(1)
      and r7.w, r7.w, l(7)
      ieq r7.w, r7.w, l(1)
      if_nz r7.w
        add r8.xyz, -r2.xyzx, cb2[r7.y + 0].xyzx
        dp3 r7.w, r8.xyzx, r8.xyzx
        rsq r7.w, r7.w
        mul r8.xyz, r7.wwww, r8.xyzx
        dp3 r7.w, r8.xyzx, cb2[r7.y + 3].xyzx
        ge r8.w, -r7.w, cb2[r7.y + 3].w
        if_nz r8.w
          add r9.xyz, r2.xyzx, -cb2[r7.y + 0].xyzx
          dp3 r8.w, r9.xyzx, r9.xyzx
          sqrt r8.w, r8.w
          ge r9.x, cb2[r7.y + 0].w, r8.w
          if_nz r9.x
            dp3 r8.x, v6.xyzx, r8.xyzx
            max r8.x, r8.x, l(0.000000)
            lt r8.y, l(0.000000), r8.x
            if_nz r8.y
              add r8.z, -r8.w, cb2[r7.y + 0].w
              div r8.z, r8.z, cb2[r7.y + 0].w
              mul r9.xyz, cb2[r7.y + 1].wwww, cb2[r7.y + 1].xyzx
              mul r9.xyz, r8.zzzz, r9.xyzx
              mul r8.xzw, r8.xxxx, r9.xxyz
              add r7.w, r7.w, l(1.000000)
              add r9.x, l(1.000000), -cb2[r7.y + 3].w
              div r9.x, l(1.000000, 1.000000, 1.000000, 1.000000), r9.x
              mad r7.w, -r7.w, r9.x, l(1.000000)
              mul r8.xzw, r7.wwww, r8.xxzw
              mov r7.w, l(-1)
            else
              mov r8.xzw, l(0,0,0,0)
            endif
          else
            mov r8.xyzw, l(0,0,0,0)
          endif
        else
          mov r8.xyzw, l(0,0,0,0)
        endif
        and r7.w, r7.w, r8.y
      else
        mad r9.xyz, v6.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000), cb2[r7.y + 0].xyzx
        add r10.xyz, r2.xyzx, -r9.xyzx
        dp3 r8.y, r10.xyzx, r10.xyzx
        sqrt r8.y, r8.y
        ge r9.w, cb2[r7.y + 0].w, r8.y
        if_nz r9.w
          add r9.xyz, -r2.xyzx, r9.xyzx
          dp3 r9.w, r9.xyzx, r9.xyzx
          rsq r9.w, r9.w
          mul r9.xyz, r9.wwww, r9.xyzx
          dp3 r9.x, v6.xyzx, r9.xyzx
          movc r9.x, r3.x, |r9.x|, r9.x
          lt r9.y, l(0.000000), r9.x
          if_nz r9.y
            add r8.y, -r8.y, cb2[r7.y + 0].w
            div r8.y, r8.y, cb2[r7.y + 0].w
            mul r10.xyz, cb2[r7.y + 1].wwww, cb2[r7.y + 1].xyzx
            mul r10.xyz, r8.yyyy, r10.xyzx
            mul r8.xzw, r9.xxxx, r10.xxyz
            mov r8.y, l(-1)
          else
            mov r8.xzw, l(0,0,0,0)
          endif
        else
          mov r8.xzw, l(0,0,0,0)
          mov r9.y, l(0)
        endif
        and r7.w, r8.y, r9.y
      endif
      and r8.y, l(1), cb2[r7.y + 2].z
      ine r8.y, r8.y, l(0)
      and r7.w, r7.w, r8.y
      if_nz r7.w
        ishr r7.w, cb2[r7.y + 2].z, l(4)
        and r7.w, r7.w, l(255)
        iadd r7.w, r7.w, l(-1)
        movc r4.xyz, r6.wwww, r6.xyzx, r3.yzwy
        add r9.xyz, r2.xyzx, -cb2[r7.y + 0].xyzx
        mul r10.xyz, r9.yyyy, cb0[29].xyzx
        mad r9.xyw, cb0[28].xyxz, r9.xxxx, r10.xyxz
        mad r9.xyz, cb0[30].xyzx, r9.zzzz, r9.xywx
        add r9.xyz, r9.xyzx, cb0[31].xyzx
        dp3 r8.y, r9.xyzx, r9.xyzx
        rsq r8.y, r8.y
        mul r9.xyz, r8.yyyy, r9.xyzx
        ge r10.xyz, |r9.xyzx|, |r9.yxxy|
        and r10.xyz, r10.xyzx, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
        ge r11.xyz, |r9.xyzx|, |r9.zzyz|
        and r11.xyz, r11.xyzx, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
        mul r10.xyz, r10.xyzx, r11.xyzx
        lt r11.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xyzx
        lt r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
        iadd r9.xyz, -r11.xyzx, r9.xyzx
        itof r9.xyz, r9.xyzx
        ge r9.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xyzx
        movc r9.xyz, r9.xyzx, l(3.000000,5.000000,4.000000,0), l(0,2.000000,1.000000,0)
        dp3 r8.y, r10.xyzx, r9.xyzx
        ftoi r8.y, r8.y
        imin r7.w, r7.w, r8.y
        ige r8.y, l(3), r7.w
        movc r8.y, r8.y, cb2[r7.y + 2].x, cb2[r7.y + 2].y
        ishl r9.x, r7.w, l(3)
        and r9.x, r9.x, l(24)
        ushr r8.y, r8.y, r9.x
        and r8.y, r8.y, l(255)
        ushr r9.x, cb2[r7.y + 2].y, l(16)
        ushr r9.y, cb2[r7.y + 2].y, l(24)
        and r9.xy, r9.xyxx, l(63, 63, 0, 0)
        ushr r7.yw, r9.xxxy, r7.w
        ishl r7.yw, r7.yyyw, l(8)
        and r7.yw, r7.yyyw, l(0, 256, 0, 256)
        iadd r7.y, r7.y, r8.y
        iadd r7.y, r7.w, r7.y
        ld_structured r9.xyzw, r7.y, l(0), t5.xyzw
        ld_structured r10.xyzw, r7.y, l(16), t5.xyzw
        ld_structured r11.xyzw, r7.y, l(32), t5.xyzw
        ld_structured r12.xyzw, r7.y, l(48), t5.xyzw
        mov r13.x, r9.x
        mov r13.y, r10.x
        mov r13.z, r11.x
        mov r13.w, r12.x
        dp4 r13.x, r13.xyzw, r4.xyzw
        mov r14.x, r9.y
        mov r14.y, r10.y
        mov r14.z, r11.y
        mov r14.w, r12.y
        dp4 r13.y, r14.xyzw, r4.xyzw
        mov r14.x, r9.z
        mov r14.y, r10.z
        mov r14.z, r11.z
        mov r14.w, r12.z
        dp4 r13.z, r14.xyzw, r4.xyzw
        mov r12.x, r9.w
        mov r12.y, r10.w
        mov r12.z, r11.w
        dp4 r7.w, r12.xyzw, r4.xyzw
        div r9.xyz, r13.xyzx, r7.wwww
        mad r9.xy, r9.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
        ld_structured r10.xyzw, r7.y, l(80), t5.xyzw
        add r11.xy, -r10.xyxx, r10.zwzz
        mul r11.xy, r11.xyxx, l(0.000122070313, 0.000122070313, 0.000000, 0.000000)
        mul r9.xy, r9.xyxx, r11.xyxx
        ge r11.xy, r11.xyxx, r9.xyxx
        movc r11.xy, r11.xyxx, l(0,-1.000000,0,0), l(1.000000,-0.000000,0,0)
        add r7.w, r11.y, r11.x
        add r7.w, r7.w, l(1.000000)
        ge r8.y, l(1.000000), r9.z
        movc r8.y, r8.y, l(-1.000000), l(-0.000000)
        add r7.w, r7.w, r8.y
        add r7.w, r7.w, l(1.000000)
        ge r11.xy, r9.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
        movc r11.xy, r11.xyxx, l(-1.000000,-1.000000,0,0), l(-0.000000,-0.000000,0,0)
        add r7.w, r7.w, r11.x
        add r7.w, r7.w, l(1.000000)
        add r7.w, r11.y, r7.w
        add r7.w, r7.w, l(1.000000)
        ge r8.y, r9.z, l(0.000000)
        movc r8.y, r8.y, l(-1.000000), l(-0.000000)
        add r7.w, r7.w, r8.y
        add r7.w, r7.w, l(1.000000)
        ne r7.w, r7.w, l(0.000000)
        if_nz r7.w
          iadd r7.w, r7.x, l(1)
          mov r6.xyz, r4.xyzx
          mov r6.w, l(-1)
          mov r5.w, r7.z
          mov r7.x, r7.w
          continue
        endif
        ld_structured r11.xyz, r7.y, l(76), t5.xyzx
        mad r9.xy, r11.yzyy, l(0.000122070313, 0.000122070313, 0.000000, 0.000000), r9.xyxx
        mad r9.xy, r9.xyxx, l(8192.000000, 8192.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
        round_ni r11.yz, r9.xxyx
        add r9.xy, r9.xyxx, -r11.yzyy
        add r11.yz, r11.yyzy, l(0.000000, -0.500000, -0.500000, 0.000000)
        mad r12.xy, -r9.yxyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000)
        mad r12.zw, r9.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, 1.000000, 1.000000)
        add r13.xy, -r9.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000)
        div r13.xy, r13.xyxx, r12.yxyy
        div r9.xy, r9.xyxx, r12.zwzz
        add r13.zw, r13.xxxy, l(0.000000, 0.000000, -1.000000, -1.000000)
        add r13.xy, r9.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
        mul r7.w, r12.x, r12.y
        add r14.xyzw, r11.yzyz, r13.zwxw
        ld_structured r15.x, r7.y, l(112), t5.xxxx
        add r9.xy, r10.wwww, -r14.ywyy
        add r9.xy, r9.xyxx, r10.yyyy
        add r16.xyzw, r10.xzyw, l(0.500000, -0.500000, 0.500000, -0.500000)
        max r10.xz, r14.xxzx, r16.xxxx
        min r14.xz, r16.yyyy, r10.xxzx
        max r9.xy, r9.xyxx, r16.zzzz
        min r14.yw, r16.wwww, r9.xxxy
        mul r14.xyzw, r14.xyzw, l(0.000122070313, 0.000122070313, 0.000122070313, 0.000122070313)
        add r7.y, r9.z, -r15.x
        sample_c_lz r8.y, r14.xyxx, t4.xxxx, s4, r7.y
        mul r9.xy, r12.xyxx, r12.zwzz
        sample_c_lz r9.z, r14.zwzz, t4.xxxx, s4, r7.y
        mul r9.x, r9.z, r9.x
        mad r7.w, r7.w, r8.y, r9.x
        add r13.xyzw, r11.yzyz, r13.zyxy
        add r9.xz, r10.wwww, -r13.yywy
        add r9.xz, r9.xxzx, r10.yyyy
        max r10.xy, r16.xxxx, r13.xzxx
        min r10.xz, r16.yyyy, r10.xxyx
        max r9.xz, r16.zzzz, r9.xxzx
        min r10.yw, r16.wwww, r9.xxxz
        mul r10.xyzw, r10.xyzw, l(0.000122070313, 0.000122070313, 0.000122070313, 0.000122070313)
        sample_c_lz r8.y, r10.xyxx, t4.xxxx, s4, r7.y
        mad r7.w, r9.y, r8.y, r7.w
        mul r8.y, r12.w, r12.z
        sample_c_lz r7.y, r10.zwzz, t4.xxxx, s4, r7.y
        mad r7.y, r8.y, r7.y, r7.w
        mad r7.y, r7.y, l(0.062500), r11.x
        min r7.y, r7.y, l(1.000000)
        mul r8.xzw, r7.yyyy, r8.xxzw
        add r5.w, r5.w, l(2.000000)
        mov r6.xyz, r4.xyzx
        mov r6.w, l(-1)
      else
        mov r5.w, r7.z
      endif
      add r5.xyz, r5.xyzx, r8.xzwx
      iadd r7.x, r7.x, l(1)
    endloop
  else
    mov r5.xyzw, l(1.000000,1.000000,1.000000,0)
  endif
  ieq r0.w, cb2[1024].z, l(1)
  if_nz r0.w
    ftou r2.x, r5.w
    umin r2.x, r2.x, l(10)
    mov r1.xyz, icb[r2.x + 0].xyzx
  endif
  if_z r0.w
    mul r2.xyz, r5.xyzx, r1.xyzx
    sample r3.xyzw, r0.xyxx, t6.xyzw, s6
    mad r0.xyw, -r1.xyxz, r5.xyxz, r3.xyxz
    mad r1.xyz, r3.wwww, r0.xywx, r2.xyzx
  endif
endif
if_z r0.z
  discard_nz l(-1)
  ret
endif
mul r0.w, r1.w, cb1[0].y
mad r1.w, r1.w, cb1[0].y, l(0.010000)
mul r1.w, r1.w, r1.w
add r2.x, cb1[0].z, l(0.100000)
div r2.x, -v2.z, r2.x
mul r2.x, r2.x, r2.x
mad r2.x, r2.x, r2.x, l(0.000010)
div r2.x, l(0.030000), r2.x
min r2.x, r2.x, cb1[0].w
max r2.x, r2.x, l(0.010000)
mad r1.w, r1.w, r1.w, r2.x
mul r0.xyz, r0.wwww, r1.xyzx
mul o0.xyzw, r0.xyzw, r1.wwww
mov o1.x, r0.w
ret
// Approximately 0 instruction slots used
