//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.164 on Mon Jul 20 01:15:57 2026
//
//
// Buffer Definitions:
//
// Resource bind info for textpos
// {
//
//   struct cs2gs
//   {
//
//       uint start;                    // Offset:    0
//       uint len;                      // Offset:    4
//       float2 pos;                    // Offset:    8
//
//   } $Element;                        // Offset:    0 Size:    16
//
// }
//
// Resource bind info for params
// {
//
//   struct TextParameters
//   {
//
//       float4 rect;                   // Offset:    0
//       float4 colour;                 // Offset:   16
//       float4 background;             // Offset:   32
//       float2 border;                 // Offset:   48
//       float h_anchor;                // Offset:   56
//       float v_anchor;                // Offset:   60
//       float h_align;                 // Offset:   64
//       float font_scale;              // Offset:   68
//
//   } $Element;                        // Offset:    0 Size:    72
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// font                              texture   float          2d  100        1
// textpos                           texture  struct         r/o  112        1
// text                              texture    uint         buf  113        1
// params                            texture  struct         r/o  114        1
// IniParams                         texture  float4          1d  120        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   x           0     NONE    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// SV_RenderTargetArrayIndex     0   x           1  RTINDEX    uint   x
//
gs_5_0
dcl_resource_buffer (float,float,float,float) t125
dcl_globalFlags refactoringAllowed
dcl_resource_texture2d (float,float,float,float) t100
dcl_resource_structured t112, 16
dcl_resource_buffer (uint,uint,uint,uint) t113
dcl_resource_structured t114, 72
dcl_resource_texture1d (float,float,float,float) t120
dcl_input v[1][0].x
dcl_temps 16
dcl_inputprimitive point
dcl_stream m0
dcl_outputtopology trianglestrip
dcl_output_siv o0.xyzw, position
dcl_output_siv o1.x, rendertarget_array_index
dcl_maxout 204
ld_indexable(buffer)(float,float,float,float) r15.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r0.xyzw, l(0), l(56), t114.xyzw
ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r1.xyzw, l(0), l(0), t114.xzyw
add r2.xy, -r1.xzxx, r1.ywyy
mad r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r1.xzxx
eq r0.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
if_nz r0.x
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.x, l(0), l(8), t112.xxxx
  add r1.y, r0.x, r1.x
  ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r0.x, l(0), l(64), t114.xxxx
  ne r0.x, l(0.000000, 0.000000, 0.000000, 0.000000), r0.x
  ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.z, l(0), l(8), t114.xxxx
  add r2.z, r1.y, -r2.z
  and r0.x, r0.x, r2.z
else
  ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.z, l(0), l(56), t114.xxxx
  eq r2.w, r2.z, l(2.000000)
  if_nz r2.w
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.w, l(0), l(8), t112.xxxx
    mad r1.x, -r2.w, l(0.500000), r2.x
    mad r1.y, r2.w, l(0.500000), r2.x
    ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.x, l(0), l(64), t114.xxxx
    ne r2.x, l(0.000000, 0.000000, 0.000000, 0.000000), r2.x
    ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.w, l(0), l(8), t114.xxxx
    add r2.w, r1.y, -r2.w
    add r2.w, r2.w, r2.w
    and r0.x, r2.w, r2.x
  else
    eq r2.x, r2.z, l(3.000000)
    if_nz r2.x
      ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.x, l(0), l(8), t112.xxxx
      add r1.x, r1.y, -r2.x
      ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.x, l(0), l(64), t114.xxxx
      ne r2.x, l(0.000000, 0.000000, 0.000000, 0.000000), r2.x
      ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.z, l(0), l(0), t114.xxxx
      add r2.z, -r1.x, r2.z
      and r0.x, r2.z, r2.x
    else
      mov r0.x, l(0)
    endif
  endif
endif
if_nz r0.y
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.y, l(0), l(12), t112.xxxx
  add r1.w, r0.y, r1.z
else
  ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r0.y, l(0), l(60), t114.xxxx
  eq r2.x, r0.y, l(2.000000)
  if_nz r2.x
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.x, l(0), l(12), t112.xxxx
    mad r1.z, -r2.x, l(0.500000), r2.y
    mad r1.w, r2.x, l(0.500000), r2.y
  else
    eq r0.y, r0.y, l(3.000000)
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r2.x, l(0), l(12), t112.xxxx
    add r2.x, r1.w, -r2.x
    movc r1.z, r0.y, r2.x, r1.z
  endif
endif
if_z v[0][0].x
  ld_structured_indexable(structured_buffer, stride=72)(mixed,mixed,mixed,mixed) r2.xy, l(0), l(48), t114.xyxx
  add r2.zw, r1.zzzy, r2.yyyx
  add r1.yw, r1.xxxw, -r2.xxxy
  mov r0.y, l(0)
  loop
    uge r2.x, r0.y, l(2)
    breakc_nz r2.x
    mov r13.x, r1.y
    mov r13.y, r2.z
    mov r13.zw, l(0,0,-1.000000,1.000000)
    mov o1.x, r0.y
    add r14.x, -r15.y, r13.w
    mul r14.y, r15.x, r15.w
    mad r14.x, r14.x, r14.y, r13.x
    ne r14.y, l(1.000000), r13.w
    movc r13.x, r14.y, r14.x, r13.x
    mov o0.xyzw, r13.xyzw
    emit_stream m0
    mov r13.x, r2.w
    mov r13.y, r2.z
    mov r13.zw, l(0,0,-1.000000,1.000000)
    mov o1.x, r0.y
    add r14.x, -r15.y, r13.w
    mul r14.y, r15.x, r15.w
    mad r14.x, r14.x, r14.y, r13.x
    ne r14.y, l(1.000000), r13.w
    movc r13.x, r14.y, r14.x, r13.x
    mov o0.xyzw, r13.xyzw
    emit_stream m0
    mov r13.x, r1.y
    mov r13.y, r1.w
    mov r13.zw, l(0,0,-1.000000,1.000000)
    mov o1.x, r0.y
    add r14.x, -r15.y, r13.w
    mul r14.y, r15.x, r15.w
    mad r14.x, r14.x, r14.y, r13.x
    ne r14.y, l(1.000000), r13.w
    movc r13.x, r14.y, r14.x, r13.x
    mov o0.xyzw, r13.xyzw
    emit_stream m0
    mov r13.x, r2.w
    mov r13.y, r1.w
    mov r13.zw, l(0,0,-1.000000,1.000000)
    mov o1.x, r0.y
    add r14.x, -r15.y, r13.w
    mul r14.y, r15.x, r15.w
    mad r14.x, r14.x, r14.y, r13.x
    ne r14.y, l(1.000000), r13.w
    movc r13.x, r14.y, r14.x, r13.x
    mov o0.xyzw, r13.xyzw
    emit_stream m0
    cut_stream m0
    iadd r0.y, r0.y, l(1)
  endloop
else
  resinfo_indexable(texture2d)(float,float,float,float) r1.yw, l(0), t100.zxwy
  mul r2.xyzw, r1.ywyw, l(0.062500, 0.166666672, 0.937500, 0.833333373)
  ftoi r2.zw, r2.zzzw
  ld_indexable(texture1d)(float,float,float,float) r3.xy, l(0, 0, 0, 0), t120.xyzw
  mul r0.y, r0.w, r3.y
  mul r0.y, r0.y, l(0.000925925910)
  eq r0.z, r0.z, l(1.000000)
  mul r0.w, r0.x, l(0.500000)
  movc r4.x, r0.z, r0.w, r0.x
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.xyzw, v[0][0].x, l(0), t112.xyzw
  add r0.xz, r1.xxzx, r5.zzwz
  mov r4.yw, l(0,0,0,0)
  add r6.xy, r0.xzxx, r4.xyxx
  iadd r0.x, r5.y, r5.x
  mov r7.zw, l(0,0,0,0)
  mov r4.y, r2.y
  mov r5.z, l(0.166666672)
  mul r0.zw, r1.yyyw, l(0.000000, 0.000000, 0.062500, 1.000000)
  mov r8.w, r6.y
  mov r9.w, r6.x
  mov r1.x, r5.x
  loop
    uge r1.z, r1.x, r0.x
    breakc_nz r1.z
    ld_indexable(buffer)(uint,uint,uint,uint) r1.z, r1.xxxx, t113.yzxw
    and r2.y, r1.z, l(15)
    iadd r3.z, r2.y, r2.z
    utof r3.z, r3.z
    ushr r3.w, r1.z, l(4)
    ishl r5.w, r3.w, l(1)
    iadd r5.w, r2.w, r5.w
    iadd r5.w, r5.w, l(-4)
    utof r5.w, r5.w
    ftoi r7.x, r3.z
    ftoi r7.y, r5.w
    ld_indexable(texture2d)(float,float,float,float) r3.z, r7.xyzw, t100.yzxw
    mul r4.x, r3.z, l(255.000000)
    uge r3.z, r1.z, l(32)
    ult r1.z, r1.z, l(127)
    and r1.z, r1.z, r3.z
    if_nz r1.z
      div r7.xy, r4.xyxx, r3.xyxx
      mul r7.xy, r0.yyyy, r7.xyxx
      div r5.y, r4.x, r2.x
      utof r1.z, r2.y
      mul r10.x, r2.x, r1.z
      iadd r1.z, r3.w, l(-2)
      utof r1.z, r1.z
      mul r10.y, r4.y, r1.z
      mad r9.x, -r7.y, l(2.000000), r6.y
      mad r3.zw, r1.yyyw, l(0.000000, 0.000000, 0.000000, 0.166666672), r10.xxxy
      add r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.000000, 0.500000)
      div r9.yz, r3.zzwz, r1.yywy
      add r1.z, r9.z, l(4096.000000)
      mul r11.xyz, r1.zzzz, r9.wxyw
      mad r12.x, r7.x, l(2.000000), r9.w
      mad r3.zw, r5.yyyz, r0.zzzw, r10.xxxy
      add r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.000000, 0.500000)
      div r12.yz, r3.zzwz, r1.yywy
      add r2.y, r12.z, l(4096.000000)
      mov r12.w, r9.x
      mul r9.xyz, r2.yyyy, r12.xwyx
      add r3.zw, r10.xxxy, l(0.000000, 0.000000, 0.000000, 0.500000)
      div r3.zw, r3.zzzw, r1.yyyw
      add r3.w, r3.w, l(4096.000000)
      mov r6.z, r9.w
      mov r6.w, r3.z
      mul r12.yzw, r3.wwww, r6.zzyw
      mul r4.z, r0.z, r5.y
      add r5.yw, r4.zzzw, r10.xxxy
      add r5.yw, r5.yyyw, l(0.000000, 0.000000, 0.000000, 0.500000)
      div r8.xy, r5.ywyy, r1.ywyy
      add r3.z, r8.y, l(4096.000000)
      mov r8.z, r12.x
      mul r8.xyz, r3.zzzz, r8.zwxz
      mov r4.z, l(0)
      loop
        uge r5.y, r4.z, l(2)
        breakc_nz r5.y
        mov r13.xyz, r11.xyzx
        mov r13.w, r1.z
        mov o1.x, r4.z
        add r14.x, -r15.y, r13.w
        mul r14.y, r15.x, r15.w
        mad r14.x, r14.x, r14.y, r13.x
        ne r14.y, l(1.000000), r13.w
        movc r13.x, r14.y, r14.x, r13.x
        mov o0.xyzw, r13.xyzw
        emit_stream m0
        mov r13.xyz, r9.xyzx
        mov r13.w, r2.y
        mov o1.x, r4.z
        add r14.x, -r15.y, r13.w
        mul r14.y, r15.x, r15.w
        mad r14.x, r14.x, r14.y, r13.x
        ne r14.y, l(1.000000), r13.w
        movc r13.x, r14.y, r14.x, r13.x
        mov o0.xyzw, r13.xyzw
        emit_stream m0
        mov r13.xyz, r12.yzwy
        mov r13.w, r3.w
        mov o1.x, r4.z
        add r14.x, -r15.y, r13.w
        mul r14.y, r15.x, r15.w
        mad r14.x, r14.x, r14.y, r13.x
        ne r14.y, l(1.000000), r13.w
        movc r13.x, r14.y, r14.x, r13.x
        mov o0.xyzw, r13.xyzw
        emit_stream m0
        mov r13.xyz, r8.xyzx
        mov r13.w, r3.z
        mov o1.x, r4.z
        add r14.x, -r15.y, r13.w
        mul r14.y, r15.x, r15.w
        mad r14.x, r14.x, r14.y, r13.x
        ne r14.y, l(1.000000), r13.w
        movc r13.x, r14.y, r14.x, r13.x
        mov o0.xyzw, r13.xyzw
        emit_stream m0
        cut_stream m0
        iadd r4.z, r4.z, l(1)
      endloop
    endif
    div r1.z, r4.x, r3.x
    dp2 r1.z, r1.zzzz, r0.yyyy
    add r9.w, r1.z, r9.w
    iadd r1.x, r1.x, l(1)
  endloop
endif
ret
// Approximately 196 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.164 on Mon Jul 20 01:15:57 2026
//
// struct cs2gs
// {
//     uint start;                    // Offset:    0
//     uint len;                      // Offset:    4
//     float2 pos;                    // Offset:    8
// };
//
// struct TextParameters
// {
//     float4 rect;                   // Offset:    0
//     float4 colour;                 // Offset:   16
//     float4 background;             // Offset:   32
//     float2 border;                 // Offset:   48
//     float h_anchor;                // Offset:   56
//     float v_anchor;                // Offset:   60
//     float h_align;                 // Offset:   64
//     float font_scale;              // Offset:   68
// };
//
// Texture2D<float> font : register(t100);
// StructuredBuffer<cs2gs> textpos : register(t112);
// Buffer<uint> text : register(t113);
// StructuredBuffer<TextParameters> params : register(t114);
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<float4> StereoParams : register(t125);
//
//
// [maxvertexcount(204)]
// void main(
//   inout TriangleStream<float> m0,
//   uint v0 : TEXCOORD0,
//   out float4 o0 : SV_Position0,
//   out uint o1 : SV_RenderTargetArrayIndex0)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_inputprimitive point
// // Needs manual fix for instruction:  
// //dcl_stream m0
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_outputtopology trianglestrip
//   r15.xyzw = StereoParams.Load(float4(0,0,0,0)).xyzw;
//   r0.x = params[0].h_anchor;
//   r0.y = params[0].v_anchor;
//   r0.z = params[0].h_align;
//   r0.w = params[0].font_scale;
//   r1.x = params[0].rect.x;
//   r1.y = params[0].rect.z;
//   r1.z = params[0].rect.y;
//   r1.w = params[0].rect.w;
//   r2.xy = r1.yw + -r1.xz;
//   r2.xy = r2.xy * float2(0.5,0.5) + r1.xz;
//   r0.xy = cmp(r0.xy == float2(1,1));
//   if (r0.x != 0) {
//     r0.x = textpos[0].pos.x;
//     r1.y = r1.x + r0.x;
//     r0.x = params[0].h_align;
//     r0.x = cmp(0 != r0.x);
//     r2.z = params[0].rect.z;
//     r2.z = -r2.z + r1.y;
//     r0.x = r0.x ? r2.z : 0;
//   } else {
//     r2.z = params[0].h_anchor;
//     r2.w = cmp(r2.z == 2.000000);
//     if (r2.w != 0) {
//       r2.w = textpos[0].pos.x;
//       r1.x = -r2.w * 0.5 + r2.x;
//       r1.y = r2.w * 0.5 + r2.x;
//       r2.x = params[0].h_align;
//       r2.x = cmp(0 != r2.x);
//       r2.w = params[0].rect.z;
//       r2.w = -r2.w + r1.y;
//       r2.w = r2.w + r2.w;
//       r0.x = r2.x ? r2.w : 0;
//     } else {
//       r2.x = cmp(r2.z == 3.000000);
//       if (r2.x != 0) {
//         r2.x = textpos[0].pos.x;
//         r1.x = -r2.x + r1.y;
//         r2.x = params[0].h_align;
//         r2.x = cmp(0 != r2.x);
//         r2.z = params[0].rect.x;
//         r2.z = r2.z + -r1.x;
//         r0.x = r2.x ? r2.z : 0;
//       } else {
//         r0.x = 0;
//       }
//     }
//   }
//   if (r0.y != 0) {
//     r0.y = textpos[0].pos.y;
//     r1.w = r1.z + r0.y;
//   } else {
//     r0.y = params[0].v_anchor;
//     r2.x = cmp(r0.y == 2.000000);
//     if (r2.x != 0) {
//       r2.x = textpos[0].pos.y;
//       r1.z = -r2.x * 0.5 + r2.y;
//       r1.w = r2.x * 0.5 + r2.y;
//     } else {
//       r0.y = cmp(r0.y == 3.000000);
//       r2.x = textpos[0].pos.y;
//       r2.x = -r2.x + r1.w;
//       r1.z = r0.y ? r2.x : r1.z;
//     }
//   }
//   if (v[0][0].x == 0) {
//     r2.x = params[0].border.x;
//     r2.y = params[0].border.y;
//     r2.zw = r2.yx + r1.zy;
//     r1.yw = -r2.xy + r1.xw;
//     r0.y = 0;
//     while (true) {
//       r2.x = cmp((uint)r0.y >= 2);
//       if (r2.x != 0) break;
//       r13.x = r1.y;
//       r13.y = r2.z;
//       r13.zw = float2(-1,1);
//       o1.x = r0.y;
//       r14.x = r13.w + -r15.y;
//       r14.y = r15.w * r15.x;
//       r14.x = r14.x * r14.y + r13.x;
//       r14.y = cmp(1.000000 != r13.w);
//       r13.x = r14.y ? r14.x : r13.x;
//       o0.xyzw = r13.xyzw;
//     // Needs manual fix for instruction, maybe. 
// //        emit_stream m0
//     m0.Append(0);
//       r13.x = r2.w;
//       r13.y = r2.z;
//       r13.zw = float2(-1,1);
//       o1.x = r0.y;
//       r14.x = r13.w + -r15.y;
//       r14.y = r15.w * r15.x;
//       r14.x = r14.x * r14.y + r13.x;
//       r14.y = cmp(1.000000 != r13.w);
//       r13.x = r14.y ? r14.x : r13.x;
//       o0.xyzw = r13.xyzw;
//     // Needs manual fix for instruction, maybe. 
// //        emit_stream m0
//     m0.Append(0);
//       r13.x = r1.y;
//       r13.y = r1.w;
//       r13.zw = float2(-1,1);
//       o1.x = r0.y;
//       r14.x = r13.w + -r15.y;
//       r14.y = r15.w * r15.x;
//       r14.x = r14.x * r14.y + r13.x;
//       r14.y = cmp(1.000000 != r13.w);
//       r13.x = r14.y ? r14.x : r13.x;
//       o0.xyzw = r13.xyzw;
//     // Needs manual fix for instruction, maybe. 
// //        emit_stream m0
//     m0.Append(0);
//       r13.x = r2.w;
//       r13.y = r1.w;
//       r13.zw = float2(-1,1);
//       o1.x = r0.y;
//       r14.x = r13.w + -r15.y;
//       r14.y = r15.w * r15.x;
//       r14.x = r14.x * r14.y + r13.x;
//       r14.y = cmp(1.000000 != r13.w);
//       r13.x = r14.y ? r14.x : r13.x;
//       o0.xyzw = r13.xyzw;
//     // Needs manual fix for instruction, maybe. 
// //        emit_stream m0
//     m0.Append(0);
//     // Needs manual fix for instruction, maybe. 
// //        cut_stream m0
//     m0.RestartStrip();
//       r0.y = (int)r0.y + 1;
//     }
//   } else {
//     font.GetDimensions(0, fDest.x, fDest.y, fDest.z);
//     r1.yw = fDest.xy;
//     r2.xyzw = float4(0.0625,0.166666672,0.9375,0.833333373) * r1.ywyw;
//     r2.zw = (int2)r2.zw;
//     r3.xy = IniParams.Load(float4(0,0,0,0)).xy;
//     r0.y = r3.y * r0.w;
//     r0.y = 0.00092592591 * r0.y;
//     r0.z = cmp(r0.z == 1.000000);
//     r0.w = 0.5 * r0.x;
//     r4.x = r0.z ? r0.w : r0.x;
//     r5.x = textpos[v[0][0].x].start;
//     r5.y = textpos[v[0][0].x].len;
//     r5.z = textpos[v[0][0].x].pos.x;
//     r5.w = textpos[v[0][0].x].pos.y;
//     r0.xz = r5.zw + r1.xz;
//     r4.yw = float2(0,0);
//     r6.xy = r4.xy + r0.xz;
//     r0.x = (int)r5.y + (int)r5.x;
//     r7.zw = float2(0,0);
//     r4.y = r2.y;
//     r5.z = 0.166666672;
//     r0.zw = float2(0.0625,1) * r1.yw;
//     r8.w = r6.y;
//     r9.w = r6.x;
//     r1.x = r5.x;
//     while (true) {
//       r1.z = cmp((uint)r1.x >= (uint)r0.x);
//       if (r1.z != 0) break;
//       r1.z = text.Load(r1.x).x;
//       r2.y = (int)r1.z & 15;
//       r3.z = (int)r2.y + (int)r2.z;
//       r3.z = (uint)r3.z;
//       r3.w = (uint)r1.z >> 4;
//       r5.w = (uint)r3.w << 1;
//       r5.w = (int)r2.w + (int)r5.w;
//       r5.w = (int)r5.w + -4;
//       r5.w = (uint)r5.w;
//       r7.x = (int)r3.z;
//       r7.y = (int)r5.w;
//       r3.z = font.Load(r7.xyz).x;
//       r4.x = 255 * r3.z;
//       r3.z = cmp((uint)r1.z >= 32);
//       r1.z = cmp((uint)r1.z < 127);
//       r1.z = r1.z ? r3.z : 0;
//       if (r1.z != 0) {
//         r7.xy = r4.xy / r3.xy;
//         r7.xy = r7.xy * r0.yy;
//         r5.y = r4.x / r2.x;
//         r1.z = (uint)r2.y;
//         r10.x = r1.z * r2.x;
//         r1.z = (int)r3.w + -2;
//         r1.z = (uint)r1.z;
//         r10.y = r1.z * r4.y;
//         r9.x = -r7.y * 2 + r6.y;
//         r3.zw = r1.yw * float2(0,0.166666672) + r10.xy;
//         r3.zw = float2(0,0.5) + r3.zw;
//         r9.yz = r3.zw / r1.yw;
//         r1.z = 4096 + r9.z;
//         r11.xyz = r9.wxy * r1.zzz;
//         r12.x = r7.x * 2 + r9.w;
//         r3.zw = r5.yz * r0.zw + r10.xy;
//         r3.zw = float2(0,0.5) + r3.zw;
//         r12.yz = r3.zw / r1.yw;
//         r2.y = 4096 + r12.z;
//         r12.w = r9.x;
//         r9.xyz = r12.xwy * r2.yyy;
//         r3.zw = float2(0,0.5) + r10.xy;
//         r3.zw = r3.zw / r1.yw;
//         r3.w = 4096 + r3.w;
//         r6.z = r9.w;
//         r6.w = r3.z;
//         r12.yzw = r6.zyw * r3.www;
//         r4.z = r5.y * r0.z;
//         r5.yw = r10.xy + r4.zw;
//         r5.yw = float2(0,0.5) + r5.yw;
//         r8.xy = r5.yw / r1.yw;
//         r3.z = 4096 + r8.y;
//         r8.z = r12.x;
//         r8.xyz = r8.zwx * r3.zzz;
//         r4.z = 0;
//         while (true) {
//           r5.y = cmp((uint)r4.z >= 2);
//           if (r5.y != 0) break;
//           r13.xyz = r11.xyz;
//           r13.w = r1.z;
//           o1.x = r4.z;
//           r14.x = r13.w + -r15.y;
//           r14.y = r15.w * r15.x;
//           r14.x = r14.x * r14.y + r13.x;
//           r14.y = cmp(1.000000 != r13.w);
//           r13.x = r14.y ? r14.x : r13.x;
//           o0.xyzw = r13.xyzw;
//         // Needs manual fix for instruction, maybe. 
// //                emit_stream m0
//         m0.Append(0);
//           r13.xyz = r9.xyz;
//           r13.w = r2.y;
//           o1.x = r4.z;
//           r14.x = r13.w + -r15.y;
//           r14.y = r15.w * r15.x;
//           r14.x = r14.x * r14.y + r13.x;
//           r14.y = cmp(1.000000 != r13.w);
//           r13.x = r14.y ? r14.x : r13.x;
//           o0.xyzw = r13.xyzw;
//         // Needs manual fix for instruction, maybe. 
// //                emit_stream m0
//         m0.Append(0);
//           r13.xyz = r12.yzw;
//           r13.w = r3.w;
//           o1.x = r4.z;
//           r14.x = r13.w + -r15.y;
//           r14.y = r15.w * r15.x;
//           r14.x = r14.x * r14.y + r13.x;
//           r14.y = cmp(1.000000 != r13.w);
//           r13.x = r14.y ? r14.x : r13.x;
//           o0.xyzw = r13.xyzw;
//         // Needs manual fix for instruction, maybe. 
// //                emit_stream m0
//         m0.Append(0);
//           r13.xyz = r8.xyz;
//           r13.w = r3.z;
//           o1.x = r4.z;
//           r14.x = r13.w + -r15.y;
//           r14.y = r15.w * r15.x;
//           r14.x = r14.x * r14.y + r13.x;
//           r14.y = cmp(1.000000 != r13.w);
//           r13.x = r14.y ? r14.x : r13.x;
//           o0.xyzw = r13.xyzw;
//         // Needs manual fix for instruction, maybe. 
// //                emit_stream m0
//         m0.Append(0);
//         // Needs manual fix for instruction, maybe. 
// //                cut_stream m0
//         m0.RestartStrip();
//           r4.z = (int)r4.z + 1;
//         }
//       }
//       r1.z = r4.x / r3.x;
//       r1.z = dot(r1.zz, r0.yy);
//       r9.w = r9.w + r1.z;
//       r1.x = (int)r1.x + 1;
//     }
//   }
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
