// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.198 on Thu Jun  5 22:59:46 2025
//
//
// Buffer Definitions:
//
// cbuffer cb0
// {
//
//   float4 cb0[4];                     // Index:    0 1 2 3          Components:    16
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// DepthBuffer                       texture   float          2d  110        1
// IniParams                         texture  float4          1d  120        1
// StereoParams                      texture  float4          2d  125        1
// cb0                               cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// ATTRIBUTE                0   xyzw        0     NONE   float   xyzw
// ATTRIBUTE                1   xy          1     NONE   float   xy
// ATTRIBUTE                2   xy          2     NONE   float   xy
// ATTRIBUTE                3   xy          3     NONE   float   xy
// ATTRIBUTE                4   xyzw        4     NONE   float   xyzw
// ATTRIBUTE                5   xyzw        5     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// COLOR                    0   xyzw        1     NONE   float   xyzw
// TEXCOORD                 0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 1   xyzw        3     NONE   float   xyzw
// TEXCOORD                 2   xyzw        4     NONE   float   xy
// TEXCOORD                 3   xyzw        5     NONE   float   xyzw
// P                        0   x           6  RTINDEX    uint   x
//
vs_5_0
dcl_output_siv o6.x, rendertarget_array_index
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[4], immediateIndexed
dcl_resource_texture2d (float,float,float,float) t110
dcl_resource_texture1d (float,float,float,float) t120
dcl_resource_buffer (float,float,float,float) t125
dcl_input v0.xyzw
dcl_input v1.xy
dcl_input v2.xy
dcl_input v3.xy
dcl_input v4.xyzw
dcl_input v5.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xy
dcl_output o5.xyzw
dcl_temps 12
ld_indexable(buffer)(float,float,float,float) r11.xyzw, l(0, 0, 0, 0), t125.xyzw
mov o6.x, r11.z
ld_indexable(texture1d)(float,float,float,float) r0.xy, l(5, 0, 0, 0), t120.xyzw
mul r1.xyzw, v2.yyyy, cb0[1].xyzw
mad r1.xyzw, v2.xxxx, cb0[0].xyzw, r1.xyzw
add r1.xyzw, r1.xyzw, cb0[3].xyzw
max r2.xyz, v5.xyzx, l(0.0000610351999, 0.0000610351999, 0.0000610351999, 0.000000)
mad r3.xyz, r2.xyzx, l(0.947867274, 0.947867274, 0.947867274, 0.000000), l(0.0521326996, 0.0521326996, 0.0521326996, 0.000000)
log r3.xyz, r3.xyzx
mul r3.xyz, r3.xyzx, l(2.400000, 2.400000, 2.400000, 0.000000)
exp r3.xyz, r3.xyzx
lt r4.xyz, l(0.040450, 0.040450, 0.040450, 0.000000), r2.xyzx
mul r2.xyz, r2.xyzx, l(0.0773993805, 0.0773993805, 0.0773993805, 0.000000)
movc r2.xyz, r4.xyzx, r3.xyzx, r2.xyzx
eq r0.z, r1.w, l(1.000000)
ge r0.x, r0.x, r0.y
and r0.x, r0.x, r0.z
if_nz r0.x
  ld_indexable(buffer)(float,float,float,float) r0.xy, l(0, 0, 0, 0), t125.xyzw
  ld_indexable(texture1d)(float,float,float,float) r0.zw, l(2, 0, 0, 0), t120.zwxy
  ld_indexable(texture1d)(float,float,float,float) r3.xy, l(3, 0, 0, 0), t120.xwyz
  ld_indexable(texture1d)(float,float,float,float) r3.zw, l(4, 0, 0, 0), t120.ywxz
  lt r2.w, l(0.000000), r3.w
  eq r4.x, r3.y, l(1.000000)
  and r4.x, r2.w, r4.x
  lt r4.yz, l(0.000000, -0.300000, -0.300000, 0.000000), r1.xxyx
  and r4.x, r4.y, r4.x
  lt r4.yw, r1.xxxy, l(0.000000, 0.300000, 0.000000, 0.300000)
  and r4.x, r4.y, r4.x
  and r4.x, r4.z, r4.x
  and r4.x, r4.w, r4.x
  if_nz r4.x
    ne r4.x, r0.x, l(0.000000)
    if_nz r4.x
      mul r4.x, r0.y, r0.x
      mul r4.x, r4.x, l(0.100000)
      resinfo_indexable(texture2d)(float,float,float,float)_uint r4.yw, l(0), t110.zxwy
      iadd r5.xy, r4.ywyy, l(-1, -1, 0, 0)
      utof r4.yw, r4.yyyw
      mul r4.w, r4.w, l(0.500000)
      utof r5.xy, r5.xyxx
      min r4.w, r4.w, r5.y
      ftoi r6.y, r4.w
      mov r6.zw, l(0,0,0,0)
      mov r4.w, l(0)
      mov r5.yzw, l(0,0,0,0)
      mov r7.x, l(0)
      loop
        utof r7.y, r5.w
        ge r7.y, r7.y, l(200.000000)
        mov r7.x, l(0)
        breakc_nz r7.y
        mad r5.z, r0.x, l(0.005000), r5.z
        mad r7.y, r5.z, l(0.500000), l(0.500000)
        mul r7.y, r4.y, r7.y
        max r7.y, r7.y, l(0.000000)
        min r7.y, r5.x, r7.y
        ftoi r6.x, r7.y
        ld_indexable(texture2d)(float,float,float,float) r6.x, r6.xyzw, t110.xyzw
        ne r7.y, r6.x, l(1.000000)
        mul r7.z, r6.x, l(0.000100)
        div r7.z, l(0.000100), r7.z
        add r6.x, r6.x, r7.z
        and r6.x, r6.x, r7.y
        eq r7.y, r6.x, l(0.000000)
        if_nz r7.y
          mov r4.w, r0.x
          mov r7.x, l(-1)
          break
        endif
        add r7.z, r0.x, -r5.z
        div r7.z, r4.x, r7.z
        lt r6.x, r6.x, r7.z
        if_nz r6.x
          mov r4.w, l(0)
          mov r7.x, l(0)
          break
        endif
        mov r5.y, r5.z
        iadd r5.w, r5.w, l(1)
        mov r7.x, r7.y
        mov r4.w, l(0)
      endloop
      movc r4.x, r7.x, r4.w, r5.y
    else
      mov r4.x, l(0)
    endif
    add r4.x, r1.x, r4.x
  else
    eq r4.y, r3.y, l(8.000000)
    and r4.y, r2.w, r4.y
    lt r4.w, r1.x, l(0.500000)
    lt r5.x, l(-0.500000), r1.y
    or r5.y, r4.w, r5.x
    and r4.y, r4.y, r5.y
    if_nz r4.y
      ne r4.y, r0.x, l(0.000000)
      if_nz r4.y
        mul r4.y, r0.y, r0.x
        mul r4.y, r4.y, l(0.100000)
        resinfo_indexable(texture2d)(float,float,float,float)_uint r5.yz, l(0), t110.zxyw
        iadd r6.xy, r5.yzyy, l(-1, -1, 0, 0)
        utof r5.yz, r5.yyzy
        mul r5.z, r5.z, l(0.500000)
        utof r6.xy, r6.xyxx
        min r5.z, r5.z, r6.y
        ftoi r7.y, r5.z
        mov r7.zw, l(0,0,0,0)
        mov r5.zw, l(0,0,0,0)
        mov r6.yzw, l(0,0,0,0)
        loop
          utof r8.x, r6.z
          ge r8.x, r8.x, l(200.000000)
          mov r6.w, l(0)
          breakc_nz r8.x
          mad r6.y, r0.x, l(0.005000), r6.y
          mad r8.x, r6.y, l(0.500000), l(0.500000)
          mul r8.x, r5.y, r8.x
          max r8.x, r8.x, l(0.000000)
          min r8.x, r6.x, r8.x
          ftoi r7.x, r8.x
          ld_indexable(texture2d)(float,float,float,float) r7.x, r7.xyzw, t110.xyzw
          ne r8.x, r7.x, l(1.000000)
          mul r8.y, r7.x, l(0.000100)
          div r8.y, l(0.000100), r8.y
          add r7.x, r7.x, r8.y
          and r7.x, r7.x, r8.x
          eq r8.x, r7.x, l(0.000000)
          if_nz r8.x
            mov r5.z, r0.x
            mov r6.w, l(-1)
            break
          endif
          add r8.y, r0.x, -r6.y
          div r8.y, r4.y, r8.y
          lt r7.x, r7.x, r8.y
          if_nz r7.x
            mov r5.z, l(0)
            mov r6.w, l(0)
            break
          endif
          mov r5.w, r6.y
          iadd r6.z, r6.z, l(1)
          mov r6.w, r8.x
          mov r5.z, l(0)
        endloop
        movc r4.y, r6.w, r5.z, r5.w
      else
        mov r4.y, l(0)
      endif
      add r4.x, r1.x, r4.y
    else
      eq r4.y, r3.y, l(6.000000)
      and r2.w, r2.w, r4.y
      lt r5.yz, l(0.000000, -0.400000, -0.200000, 0.000000), r1.xxyx
      or r4.y, r4.z, r5.y
      and r2.w, r2.w, r4.y
      or r4.y, r4.w, r5.z
      and r2.w, r2.w, r4.y
      if_nz r2.w
        ne r2.w, r0.x, l(0.000000)
        if_nz r2.w
          mul r2.w, r0.y, r0.x
          mul r2.w, r2.w, l(0.100000)
          resinfo_indexable(texture2d)(float,float,float,float)_uint r4.yw, l(0), t110.zxwy
          iadd r5.yz, r4.yywy, l(0, -1, -1, 0)
          utof r4.yw, r4.yyyw
          mul r4.w, r4.w, l(0.500000)
          utof r5.yz, r5.yyzy
          min r4.w, r4.w, r5.z
          ftoi r6.y, r4.w
          mov r6.zw, l(0,0,0,0)
          mov r4.w, l(0)
          mov r5.zw, l(0,0,0,0)
          mov r7.xy, l(0,0,0,0)
          loop
            utof r7.z, r7.x
            ge r7.z, r7.z, l(200.000000)
            mov r7.y, l(0)
            breakc_nz r7.z
            mad r5.w, r0.x, l(0.005000), r5.w
            mad r7.z, r5.w, l(0.500000), l(0.500000)
            mul r7.z, r4.y, r7.z
            max r7.z, r7.z, l(0.000000)
            min r7.z, r5.y, r7.z
            ftoi r6.x, r7.z
            ld_indexable(texture2d)(float,float,float,float) r6.x, r6.xyzw, t110.xyzw
            ne r7.z, r6.x, l(1.000000)
            mul r7.w, r6.x, l(0.000100)
            div r7.w, l(0.000100), r7.w
            add r6.x, r6.x, r7.w
            and r6.x, r6.x, r7.z
            eq r7.z, r6.x, l(0.000000)
            if_nz r7.z
              mov r4.w, r0.x
              mov r7.y, l(-1)
              break
            endif
            add r7.w, r0.x, -r5.w
            div r7.w, r2.w, r7.w
            lt r6.x, r6.x, r7.w
            if_nz r6.x
              mov r4.w, l(0)
              mov r7.y, l(0)
              break
            endif
            mov r5.z, r5.w
            iadd r7.x, r7.x, l(1)
            mov r7.xy, r7.xzxx
            mov r4.w, l(0)
          endloop
          movc r2.w, r7.y, r4.w, r5.z
        else
          mov r2.w, l(0)
        endif
        add r4.x, r1.x, r2.w
      else
        lt r2.w, l(1.000000), r3.w
        eq r3.z, r3.z, l(1.000000)
        and r2.w, r2.w, r3.z
        eq r3.z, r1.z, l(0.500000)
        and r2.w, r2.w, r3.z
        if_nz r2.w
          lt r2.w, l(0.000000), r3.x
          eq r3.xz, r3.yyyy, l(3.000000, 0.000000, 23.000000, 0.000000)
          ge r3.w, r1.y, l(0.100000)
          and r3.z, r3.w, r3.z
          or r3.x, r3.z, r3.x
          and r2.w, r2.w, r3.x
          lt r3.xz, l(-0.400000, 0.000000, -0.500000, 0.000000), r1.yyxy
          and r2.w, r2.w, r3.x
          or r3.x, r4.z, r3.z
          and r2.w, r2.w, r3.x
          lt r3.x, r1.y, l(0.600000)
          or r3.x, r3.x, r3.z
          and r2.w, r2.w, r3.x
          if_nz r2.w
            ne r2.w, r0.x, l(0.000000)
            if_nz r2.w
              mul r2.w, r0.y, r0.x
              mul r2.w, r2.w, l(0.100000)
              resinfo_indexable(texture2d)(float,float,float,float)_uint r3.xw, l(0), t110.xzwy
              iadd r4.yz, r3.xxwx, l(0, -1, -1, 0)
              mad r4.w, r1.y, l(-0.500000), l(0.500000)
              utof r3.xw, r3.xxxw
              mul r3.w, r3.w, r4.w
              max r3.w, r3.w, l(0.000000)
              utof r4.yz, r4.yyzy
              min r3.w, r3.w, r4.z
              ftoi r6.y, r3.w
              mov r6.zw, l(0,0,0,0)
              mov r3.w, l(0)
              mov r4.zw, l(0,0,0,0)
              mov r5.yz, l(0,0,0,0)
              loop
                utof r5.w, r5.y
                ge r5.w, r5.w, l(200.000000)
                mov r5.z, l(0)
                breakc_nz r5.w
                mad r4.w, r0.x, l(0.005000), r4.w
                add r5.w, r1.x, r4.w
                mad r5.w, r5.w, l(0.500000), l(0.500000)
                mul r5.w, r3.x, r5.w
                max r5.w, r5.w, l(0.000000)
                min r5.w, r4.y, r5.w
                ftoi r6.x, r5.w
                ld_indexable(texture2d)(float,float,float,float) r5.w, r6.xyzw, t110.yzwx
                ne r6.x, r5.w, l(1.000000)
                mul r7.x, r5.w, l(0.000100)
                div r7.x, l(0.000100), r7.x
                add r5.w, r5.w, r7.x
                and r5.w, r5.w, r6.x
                eq r6.x, r5.w, l(0.000000)
                if_nz r6.x
                  mov r3.w, r0.x
                  mov r5.z, l(-1)
                  break
                endif
                add r7.x, r0.x, -r4.w
                div r7.x, r2.w, r7.x
                lt r5.w, r5.w, r7.x
                if_nz r5.w
                  mov r3.w, l(0)
                  mov r5.z, l(0)
                  break
                endif
                mov r4.z, r4.w
                iadd r5.y, r5.y, l(1)
                mov r5.z, r6.x
                mov r3.w, l(0)
              endloop
              movc r2.w, r5.z, r3.w, r4.z
            else
              mov r2.w, l(0)
            endif
            add r4.x, r1.x, r2.w
          else
            eq r2.w, r3.y, l(2.000000)
            if_nz r2.w
              mad r4.x, r0.x, r0.z, r1.x
            else
              eq r2.w, r3.y, l(4.000000)
              if_nz r2.w
                mad r4.x, r0.x, r0.z, r1.x
              else
                eq r2.w, r3.y, l(5.000000)
                or r3.x, r5.x, r3.z
                and r2.w, r2.w, r3.x
                lt r3.x, l(0.700000), r2.x
                and r2.w, r2.w, r3.x
                if_nz r2.w
                  ne r2.w, r0.x, l(0.000000)
                  if_nz r2.w
                    mul r0.y, r0.y, r0.x
                    mul r0.y, r0.y, l(0.100000)
                    resinfo_indexable(texture2d)(float,float,float,float)_uint r3.xy, l(0), t110.xyzw
                    iadd r3.zw, r3.xxxy, l(0, 0, -1, -1)
                    mad r2.w, r1.y, l(-0.500000), l(0.500000)
                    utof r3.xy, r3.xyxx
                    mul r2.w, r2.w, r3.y
                    max r2.w, r2.w, l(0.000000)
                    utof r3.yz, r3.zzwz
                    min r2.w, r2.w, r3.z
                    ftoi r5.y, r2.w
                    mov r5.zw, l(0,0,0,0)
                    mov r2.w, l(0)
                    mov r3.zw, l(0,0,0,0)
                    mov r4.yz, l(0,0,0,0)
                    loop
                      utof r4.w, r4.y
                      ge r4.w, r4.w, l(200.000000)
                      mov r4.z, l(0)
                      breakc_nz r4.w
                      mad r3.w, r0.x, l(0.005000), r3.w
                      add r4.w, r1.x, r3.w
                      mad r4.w, r4.w, l(0.500000), l(0.500000)
                      mul r4.w, r3.x, r4.w
                      max r4.w, r4.w, l(0.000000)
                      min r4.w, r3.y, r4.w
                      ftoi r5.x, r4.w
                      ld_indexable(texture2d)(float,float,float,float) r4.w, r5.xyzw, t110.yzwx
                      ne r5.x, r4.w, l(1.000000)
                      mul r6.x, r4.w, l(0.000100)
                      div r6.x, l(0.000100), r6.x
                      add r4.w, r4.w, r6.x
                      and r4.w, r4.w, r5.x
                      eq r5.x, r4.w, l(0.000000)
                      if_nz r5.x
                        mov r2.w, r0.x
                        mov r4.z, l(-1)
                        break
                      endif
                      add r6.x, r0.x, -r3.w
                      div r6.x, r0.y, r6.x
                      lt r4.w, r4.w, r6.x
                      if_nz r4.w
                        mov r2.w, l(0)
                        mov r4.z, l(0)
                        break
                      endif
                      mov r3.z, r3.w
                      iadd r4.y, r4.y, l(1)
                      mov r4.z, r5.x
                      mov r2.w, l(0)
                    endloop
                    movc r0.y, r4.z, r2.w, r3.z
                  else
                    mov r0.y, l(0)
                  endif
                  add r4.x, r0.y, r1.x
                else
                  mad r4.x, r0.x, r0.z, r1.x
                endif
              endif
            endif
          endif
        else
          mad r4.x, r0.x, r0.z, r1.x
        endif
      endif
    endif
  endif
  mul r1.x, r0.w, r4.x
endif
mov r9.xyzw, r1.xyzw
mov o1.w, v5.w
mov o1.xyz, r2.xyzx
mov o2.xy, v3.xyxx
mov o2.zw, v2.xxxy
mov o3.xyzw, v4.xyzw
mov o5.xyzw, v0.xyzw
mov o4.xy, v1.xyxx
add r10.x, -r11.y, r9.w
mul r10.y, r11.x, r11.w
mad r10.x, r10.x, r10.y, r9.x
ne r10.y, l(1.000000), r9.w
movc r9.x, r10.y, r10.x, r9.x
mov o0.xyzw, r9.xyzw
ret
// Approximately 391 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with geo-11 v0.6.198 on Thu Jun  5 22:59:46 2025
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[4] : packoffset(c0);
// }
//
// Texture2D<float> DepthBuffer : register(t110);
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<float4> StereoParams : register(t125);
//
//
// void main(
//   float4 v0 : ATTRIBUTE0,
//   float2 v1 : ATTRIBUTE1,
//   float2 v2 : ATTRIBUTE2,
//   float2 v3 : ATTRIBUTE3,
//   float4 v4 : ATTRIBUTE4,
//   float4 v5 : ATTRIBUTE5,
//   out float4 o0 : SV_POSITION0,
//   out float4 o1 : COLOR0,
//   out float4 o2 : TEXCOORD0,
//   out float4 o3 : TEXCOORD1,
//   out float4 o4 : TEXCOORD2,
//   out float4 o5 : TEXCOORD3,
//   out uint o6 : P0)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r11.xyzw = StereoParams.Load(float4(0,0,0,0)).xyzw;
//   o6.x = r11.z;
//   r0.xy = IniParams.Load(float4(5,0,0,0)).xy;
//   r1.xyzw = cb0[1].xyzw * v2.yyyy;
//   r1.xyzw = v2.xxxx * cb0[0].xyzw + r1.xyzw;
//   r1.xyzw = cb0[3].xyzw + r1.xyzw;
//   r2.xyz = max(float3(6.10351999e-05,6.10351999e-05,6.10351999e-05), v5.xyz);
//   r3.xyz = r2.xyz * float3(0.947867274,0.947867274,0.947867274) + float3(0.0521326996,0.0521326996,0.0521326996);
//   r3.xyz = log2(r3.xyz);
//   r3.xyz = float3(2.4000001,2.4000001,2.4000001) * r3.xyz;
//   r3.xyz = exp2(r3.xyz);
//   r4.xyz = cmp(float3(0.0404499993,0.0404499993,0.0404499993) < r2.xyz);
//   r2.xyz = float3(0.0773993805,0.0773993805,0.0773993805) * r2.xyz;
//   r2.xyz = r4.xyz ? r3.xyz : r2.xyz;
//   r0.z = cmp(r1.w == 1.000000);
//   r0.x = cmp(r0.x >= r0.y);
//   r0.x = r0.x ? r0.z : 0;
//   if (r0.x != 0) {
//     r0.xy = StereoParams.Load(float4(0,0,0,0)).xy;
//     r0.zw = IniParams.Load(float4(2,0,0,0)).xy;
//     r3.xy = IniParams.Load(float4(3,0,0,0)).xw;
//     r3.zw = IniParams.Load(float4(4,0,0,0)).xz;
//     r2.w = cmp(0 < r3.w);
//     r4.x = cmp(r3.y == 1.000000);
//     r4.x = r2.w ? r4.x : 0;
//     r4.yz = cmp(float2(-0.300000012,-0.300000012) < r1.xy);
//     r4.x = r4.y ? r4.x : 0;
//     r4.yw = cmp(r1.xy < float2(0.300000012,0.300000012));
//     r4.x = r4.y ? r4.x : 0;
//     r4.x = r4.z ? r4.x : 0;
//     r4.x = r4.w ? r4.x : 0;
//     if (r4.x != 0) {
//       r4.x = cmp(r0.x != 0.000000);
//       if (r4.x != 0) {
//         r4.x = r0.x * r0.y;
//         r4.x = 0.100000001 * r4.x;
//         DepthBuffer.GetDimensions(0, uiDest.x, uiDest.y, uiDest.z);
//         r4.yw = uiDest.xy;
//         r5.xy = (int2)r4.yw + int2(-1,-1);
//         r4.yw = (uint2)r4.yw;
//         r4.w = 0.5 * r4.w;
//         r5.xy = (uint2)r5.xy;
//         r4.w = min(r5.y, r4.w);
//         r6.y = (int)r4.w;
//         r6.zw = float2(0,0);
//         r4.w = 0;
//         r5.yzw = float3(0,0,0);
//         r7.x = 0;
//         while (true) {
//           r7.y = (uint)r5.w;
//           r7.y = cmp(r7.y >= 200);
//           r7.x = 0;
//           if (r7.y != 0) break;
//           r5.z = r0.x * 0.00499999989 + r5.z;
//           r7.y = r5.z * 0.5 + 0.5;
//           r7.y = r7.y * r4.y;
//           r7.y = max(0, r7.y);
//           r7.y = min(r7.y, r5.x);
//           r6.x = (int)r7.y;
//           r6.x = DepthBuffer.Load(r6.xyz).x;
//           r7.y = cmp(r6.x != 1.000000);
//           r7.z = 9.99999975e-05 * r6.x;
//           r7.z = 9.99999975e-05 / r7.z;
//           r6.x = r7.z + r6.x;
//           r6.x = r7.y ? r6.x : 0;
//           r7.y = cmp(r6.x == 0.000000);
//           if (r7.y != 0) {
//             r4.w = r0.x;
//             r7.x = -1;
//             break;
//           }
//           r7.z = -r5.z + r0.x;
//           r7.z = r4.x / r7.z;
//           r6.x = cmp(r6.x < r7.z);
//           if (r6.x != 0) {
//             r4.w = 0;
//             r7.x = 0;
//             break;
//           }
//           r5.y = r5.z;
//           r5.w = (int)r5.w + 1;
//           r7.x = r7.y;
//           r4.w = 0;
//         }
//         r4.x = r7.x ? r4.w : r5.y;
//       } else {
//         r4.x = 0;
//       }
//       r4.x = r4.x + r1.x;
//     } else {
//       r4.y = cmp(r3.y == 8.000000);
//       r4.y = r2.w ? r4.y : 0;
//       r4.w = cmp(r1.x < 0.5);
//       r5.x = cmp(-0.5 < r1.y);
//       r5.y = (int)r4.w | (int)r5.x;
//       r4.y = r4.y ? r5.y : 0;
//       if (r4.y != 0) {
//         r4.y = cmp(r0.x != 0.000000);
//         if (r4.y != 0) {
//           r4.y = r0.x * r0.y;
//           r4.y = 0.100000001 * r4.y;
//           DepthBuffer.GetDimensions(0, uiDest.x, uiDest.y, uiDest.z);
//           r5.yz = uiDest.xy;
//           r6.xy = (int2)r5.yz + int2(-1,-1);
//           r5.yz = (uint2)r5.yz;
//           r5.z = 0.5 * r5.z;
//           r6.xy = (uint2)r6.xy;
//           r5.z = min(r6.y, r5.z);
//           r7.y = (int)r5.z;
//           r7.zw = float2(0,0);
//           r5.zw = float2(0,0);
//           r6.yzw = float3(0,0,0);
//           while (true) {
//             r8.x = (uint)r6.z;
//             r8.x = cmp(r8.x >= 200);
//             r6.w = 0;
//             if (r8.x != 0) break;
//             r6.y = r0.x * 0.00499999989 + r6.y;
//             r8.x = r6.y * 0.5 + 0.5;
//             r8.x = r8.x * r5.y;
//             r8.x = max(0, r8.x);
//             r8.x = min(r8.x, r6.x);
//             r7.x = (int)r8.x;
//             r7.x = DepthBuffer.Load(r7.xyz).x;
//             r8.x = cmp(r7.x != 1.000000);
//             r8.y = 9.99999975e-05 * r7.x;
//             r8.y = 9.99999975e-05 / r8.y;
//             r7.x = r8.y + r7.x;
//             r7.x = r8.x ? r7.x : 0;
//             r8.x = cmp(r7.x == 0.000000);
//             if (r8.x != 0) {
//               r5.z = r0.x;
//               r6.w = -1;
//               break;
//             }
//             r8.y = -r6.y + r0.x;
//             r8.y = r4.y / r8.y;
//             r7.x = cmp(r7.x < r8.y);
//             if (r7.x != 0) {
//               r5.z = 0;
//               r6.w = 0;
//               break;
//             }
//             r5.w = r6.y;
//             r6.z = (int)r6.z + 1;
//             r6.w = r8.x;
//             r5.z = 0;
//           }
//           r4.y = r6.w ? r5.z : r5.w;
//         } else {
//           r4.y = 0;
//         }
//         r4.x = r4.y + r1.x;
//       } else {
//         r4.y = cmp(r3.y == 6.000000);
//         r2.w = r2.w ? r4.y : 0;
//         r5.yz = cmp(float2(-0.400000006,-0.200000003) < r1.xy);
//         r4.y = (int)r4.z | (int)r5.y;
//         r2.w = r2.w ? r4.y : 0;
//         r4.y = (int)r4.w | (int)r5.z;
//         r2.w = r2.w ? r4.y : 0;
//         if (r2.w != 0) {
//           r2.w = cmp(r0.x != 0.000000);
//           if (r2.w != 0) {
//             r2.w = r0.x * r0.y;
//             r2.w = 0.100000001 * r2.w;
//             DepthBuffer.GetDimensions(0, uiDest.x, uiDest.y, uiDest.z);
//             r4.yw = uiDest.xy;
//             r5.yz = (int2)r4.yw + int2(-1,-1);
//             r4.yw = (uint2)r4.yw;
//             r4.w = 0.5 * r4.w;
//             r5.yz = (uint2)r5.yz;
//             r4.w = min(r5.z, r4.w);
//             r6.y = (int)r4.w;
//             r6.zw = float2(0,0);
//             r4.w = 0;
//             r5.zw = float2(0,0);
//             r7.xy = float2(0,0);
//             while (true) {
//               r7.z = (uint)r7.x;
//               r7.z = cmp(r7.z >= 200);
//               r7.y = 0;
//               if (r7.z != 0) break;
//               r5.w = r0.x * 0.00499999989 + r5.w;
//               r7.z = r5.w * 0.5 + 0.5;
//               r7.z = r7.z * r4.y;
//               r7.z = max(0, r7.z);
//               r7.z = min(r7.z, r5.y);
//               r6.x = (int)r7.z;
//               r6.x = DepthBuffer.Load(r6.xyz).x;
//               r7.z = cmp(r6.x != 1.000000);
//               r7.w = 9.99999975e-05 * r6.x;
//               r7.w = 9.99999975e-05 / r7.w;
//               r6.x = r7.w + r6.x;
//               r6.x = r7.z ? r6.x : 0;
//               r7.z = cmp(r6.x == 0.000000);
//               if (r7.z != 0) {
//                 r4.w = r0.x;
//                 r7.y = -1;
//                 break;
//               }
//               r7.w = -r5.w + r0.x;
//               r7.w = r2.w / r7.w;
//               r6.x = cmp(r6.x < r7.w);
//               if (r6.x != 0) {
//                 r4.w = 0;
//                 r7.y = 0;
//                 break;
//               }
//               r5.z = r5.w;
//               r7.x = (int)r7.x + 1;
//               r7.xy = r7.xz;
//               r4.w = 0;
//             }
//             r2.w = r7.y ? r4.w : r5.z;
//           } else {
//             r2.w = 0;
//           }
//           r4.x = r2.w + r1.x;
//         } else {
//           r2.w = cmp(1 < r3.w);
//           r3.z = cmp(r3.z == 1.000000);
//           r2.w = r2.w ? r3.z : 0;
//           r3.z = cmp(r1.z == 0.500000);
//           r2.w = r2.w ? r3.z : 0;
//           if (r2.w != 0) {
//             r2.w = cmp(0 < r3.x);
//             r3.xz = cmp(r3.yy == float2(3,23));
//             r3.w = cmp(r1.y >= 0.100000001);
//             r3.z = r3.w ? r3.z : 0;
//             r3.x = (int)r3.z | (int)r3.x;
//             r2.w = r2.w ? r3.x : 0;
//             r3.xz = cmp(float2(-0.400000006,-0.5) < r1.yx);
//             r2.w = r2.w ? r3.x : 0;
//             r3.x = (int)r4.z | (int)r3.z;
//             r2.w = r2.w ? r3.x : 0;
//             r3.x = cmp(r1.y < 0.600000024);
//             r3.x = (int)r3.x | (int)r3.z;
//             r2.w = r2.w ? r3.x : 0;
//             if (r2.w != 0) {
//               r2.w = cmp(r0.x != 0.000000);
//               if (r2.w != 0) {
//                 r2.w = r0.x * r0.y;
//                 r2.w = 0.100000001 * r2.w;
//                 DepthBuffer.GetDimensions(0, uiDest.x, uiDest.y, uiDest.z);
//                 r3.xw = uiDest.xy;
//                 r4.yz = (int2)r3.xw + int2(-1,-1);
//                 r4.w = r1.y * -0.5 + 0.5;
//                 r3.xw = (uint2)r3.xw;
//                 r3.w = r4.w * r3.w;
//                 r3.w = max(0, r3.w);
//                 r4.yz = (uint2)r4.yz;
//                 r3.w = min(r4.z, r3.w);
//                 r6.y = (int)r3.w;
//                 r6.zw = float2(0,0);
//                 r3.w = 0;
//                 r4.zw = float2(0,0);
//                 r5.yz = float2(0,0);
//                 while (true) {
//                   r5.w = (uint)r5.y;
//                   r5.w = cmp(r5.w >= 200);
//                   r5.z = 0;
//                   if (r5.w != 0) break;
//                   r4.w = r0.x * 0.00499999989 + r4.w;
//                   r5.w = r4.w + r1.x;
//                   r5.w = r5.w * 0.5 + 0.5;
//                   r5.w = r5.w * r3.x;
//                   r5.w = max(0, r5.w);
//                   r5.w = min(r5.w, r4.y);
//                   r6.x = (int)r5.w;
//                   r5.w = DepthBuffer.Load(r6.xyz).x;
//                   r6.x = cmp(r5.w != 1.000000);
//                   r7.x = 9.99999975e-05 * r5.w;
//                   r7.x = 9.99999975e-05 / r7.x;
//                   r5.w = r7.x + r5.w;
//                   r5.w = r6.x ? r5.w : 0;
//                   r6.x = cmp(r5.w == 0.000000);
//                   if (r6.x != 0) {
//                     r3.w = r0.x;
//                     r5.z = -1;
//                     break;
//                   }
//                   r7.x = -r4.w + r0.x;
//                   r7.x = r2.w / r7.x;
//                   r5.w = cmp(r5.w < r7.x);
//                   if (r5.w != 0) {
//                     r3.w = 0;
//                     r5.z = 0;
//                     break;
//                   }
//                   r4.z = r4.w;
//                   r5.y = (int)r5.y + 1;
//                   r5.z = r6.x;
//                   r3.w = 0;
//                 }
//                 r2.w = r5.z ? r3.w : r4.z;
//               } else {
//                 r2.w = 0;
//               }
//               r4.x = r2.w + r1.x;
//             } else {
//               r2.w = cmp(r3.y == 2.000000);
//               if (r2.w != 0) {
//                 r4.x = r0.x * r0.z + r1.x;
//               } else {
//                 r2.w = cmp(r3.y == 4.000000);
//                 if (r2.w != 0) {
//                   r4.x = r0.x * r0.z + r1.x;
//                 } else {
//                   r2.w = cmp(r3.y == 5.000000);
//                   r3.x = (int)r5.x | (int)r3.z;
//                   r2.w = r2.w ? r3.x : 0;
//                   r3.x = cmp(0.699999988 < r2.x);
//                   r2.w = r2.w ? r3.x : 0;
//                   if (r2.w != 0) {
//                     r2.w = cmp(r0.x != 0.000000);
//                     if (r2.w != 0) {
//                       r0.y = r0.x * r0.y;
//                       r0.y = 0.100000001 * r0.y;
//                       DepthBuffer.GetDimensions(0, uiDest.x, uiDest.y, uiDest.z);
//                       r3.xy = uiDest.xy;
//                       r3.zw = (int2)r3.xy + int2(-1,-1);
//                       r2.w = r1.y * -0.5 + 0.5;
//                       r3.xy = (uint2)r3.xy;
//                       r2.w = r3.y * r2.w;
//                       r2.w = max(0, r2.w);
//                       r3.yz = (uint2)r3.zw;
//                       r2.w = min(r3.z, r2.w);
//                       r5.y = (int)r2.w;
//                       r5.zw = float2(0,0);
//                       r2.w = 0;
//                       r3.zw = float2(0,0);
//                       r4.yz = float2(0,0);
//                       while (true) {
//                         r4.w = (uint)r4.y;
//                         r4.w = cmp(r4.w >= 200);
//                         r4.z = 0;
//                         if (r4.w != 0) break;
//                         r3.w = r0.x * 0.00499999989 + r3.w;
//                         r4.w = r3.w + r1.x;
//                         r4.w = r4.w * 0.5 + 0.5;
//                         r4.w = r4.w * r3.x;
//                         r4.w = max(0, r4.w);
//                         r4.w = min(r4.w, r3.y);
//                         r5.x = (int)r4.w;
//                         r4.w = DepthBuffer.Load(r5.xyz).x;
//                         r5.x = cmp(r4.w != 1.000000);
//                         r6.x = 9.99999975e-05 * r4.w;
//                         r6.x = 9.99999975e-05 / r6.x;
//                         r4.w = r6.x + r4.w;
//                         r4.w = r5.x ? r4.w : 0;
//                         r5.x = cmp(r4.w == 0.000000);
//                         if (r5.x != 0) {
//                           r2.w = r0.x;
//                           r4.z = -1;
//                           break;
//                         }
//                         r6.x = -r3.w + r0.x;
//                         r6.x = r0.y / r6.x;
//                         r4.w = cmp(r4.w < r6.x);
//                         if (r4.w != 0) {
//                           r2.w = 0;
//                           r4.z = 0;
//                           break;
//                         }
//                         r3.z = r3.w;
//                         r4.y = (int)r4.y + 1;
//                         r4.z = r5.x;
//                         r2.w = 0;
//                       }
//                       r0.y = r4.z ? r2.w : r3.z;
//                     } else {
//                       r0.y = 0;
//                     }
//                     r4.x = r1.x + r0.y;
//                   } else {
//                     r4.x = r0.x * r0.z + r1.x;
//                   }
//                 }
//               }
//             }
//           } else {
//             r4.x = r0.x * r0.z + r1.x;
//           }
//         }
//       }
//     }
//     r1.x = r4.x * r0.w;
//   }
//   r9.xyzw = r1.xyzw;
//   o1.w = v5.w;
//   o1.xyz = r2.xyz;
//   o2.xy = v3.xy;
//   o2.zw = v2.xy;
//   o3.xyzw = v4.xyzw;
//   o5.xyzw = v0.xyzw;
//   o4.xy = v1.xy;
//   r10.x = r9.w + -r11.y;
//   r10.y = r11.w * r11.x;
//   r10.x = r10.x * r10.y + r9.x;
//   r10.y = cmp(1.000000 != r9.w);
//   r9.x = r10.y ? r10.x : r9.x;
//   o0.xyzw = r9.xyzw;
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
