// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.181 on Sun Dec 31 13:00:50 2023
//
//
// Buffer Definitions:
//
// cbuffer cb2
// {
//
//   float4 cb2[15];                    // Index:    0-14             Components:    60
//
// }
//
// cbuffer cb0
// {
//
//   float4 cb0[3];                     // Index:    0 1 2            Components:    12
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// s0_s                              sampler      NA          NA    0        1
// s1_s                              sampler      NA          NA    1        1
// t0                                texture  float4          2d    0        1
// t1                                texture  float4          2d    1        1
// cb0                               cbuffer      NA          NA    0        1
// cb2                               cbuffer      NA          NA    2        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float
// TEXCOORD                 0   xyzw        1     NONE   float   xyzw
// TEXCOORD                 1   xyzw        2     NONE   float   xyz
// TEXCOORD                 2   xyzw        3     NONE   float   xyz
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xyzw        5     NONE   float   xyzw
// TEXCOORD                 5   xyzw        6     NONE   float   xyzw
// TEXCOORD                 6   xy          7     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TARGET                0   xy          0   TARGET   float   xy
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB2[15], immediateIndexed
dcl_constantbuffer CB0[3], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps linear v1.xyzw
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xyz
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xyzw
dcl_input_ps linear v6.xyzw
dcl_input_ps linear v7.xy
dcl_output o0.xy
dcl_temps 15
sample_l_indexable(texture2d)(float,float,float,float) r0.z, v6.xyxx, t1.yzxw, s1, l(0.000000)
div r0.w, cb0[2].x, r0.z
lt r1.x, cb2[14].x, r0.w
if_nz r1.x
  mul r0.xy, r0.zzzz, v7.xyxx
  sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, v6.zwzz, t0.xyzw, s0, l(0.000000)
  mul r0.w, r0.w, cb2[14].z
  min r2.y, r0.w, l(6.000000)
  add r1.w, r2.y, l(1.000000)
  div r2.x, r0.w, r1.w
  div r0.w, l(20.000000), r2.x
  lt r1.w, r0.w, r2.y
  add r0.w, r1.z, r0.w
  round_ni r0.w, r0.w
  max r3.y, r0.w, l(1.000000)
  div r3.x, l(20.000000), r3.y
  movc r2.xy, r1.wwww, r3.xyxx, r2.xyxx
  sample_l_indexable(texture2d)(float,float,float,float) r3.z, v3.xyxx, t1.yzxw, s1, l(0.000000)
  mul r3.xy, r3.zzzz, v4.xyxx
  sample_l_indexable(texture2d)(float,float,float,float) r4.z, v3.zyzz, t1.yzxw, s1, l(0.000000)
  mul r4.xy, r4.zzzz, v5.zwzz
  sample_l_indexable(texture2d)(float,float,float,float) r5.z, v2.xyxx, t1.yzxw, s1, l(0.000000)
  mul r5.xy, r5.zzzz, v4.zwzz
  sample_l_indexable(texture2d)(float,float,float,float) r6.z, v2.xzxx, t1.yzxw, s1, l(0.000000)
  mul r6.xy, r6.zzzz, v5.xyxx
  add r7.xyz, -r0.xyzx, r3.xyzx
  add r8.xyz, r0.xyzx, -r4.xyzx
  dp3 r0.w, r7.xyzx, r7.xyzx
  dp3 r1.w, r8.xyzx, r8.xyzx
  lt r0.w, r0.w, r1.w
  movc r7.xyz, r0.wwww, r7.xyzx, r8.xyzx
  add r8.xyz, -r0.xyzx, r5.xyzx
  add r9.xyz, r0.xyzx, -r6.xyzx
  dp3 r0.w, r8.xyzx, r8.xyzx
  dp3 r2.z, r9.xyzx, r9.xyzx
  lt r0.w, r0.w, r2.z
  movc r8.xyz, r0.wwww, r8.xyzx, r9.xyzx
  mul r8.xyz, r8.xyzx, cb0[1].zzzz
  add r0.w, r2.y, l(-1.000000)
  mov r9.y, l(0)
  mov r2.yw, l(0,0,0,0)
  loop
    ge r3.w, r2.w, l(4.000000)
    if_nz r3.w
      break
    endif
    mul r3.w, r2.w, l(1.570796)
    sincos r10.x, r11.x, r3.w
    mul r9.zw, r1.yyyx, r10.xxxx
    mad r10.x, r11.x, r1.x, -r9.z
    mad r10.y, r11.x, r1.y, r9.w
    mul r9.zw, r10.xxxy, cb2[14].xxxy
    mul r10.zw, r2.xxxx, r9.zzzw
    mul r10.xy, r1.zzzz, r10.zwzz
    mul r10.xyzw, r10.xyzw, cb2[14].zwzw
    round_ne r10.xyzw, r10.xyzw
    mul r11.xy, r10.zwzz, cb2[14].xyxx
    mad r10.xy, r10.xyxx, cb2[14].xyxx, v6.xyxx
    mul r12.xyz, r8.xyzx, r11.yyyy
    mad r12.xyz, r11.xxxx, r7.xyzx, r12.xyzx
    dp2 r3.w, r12.xyxx, r12.xyxx
    rsq r3.w, r3.w
    mad r9.x, -r12.z, r3.w, cb0[0].y
    mad r9.zw, r1.zzzz, r11.xxxy, r9.zzzw
    mul r9.zw, r9.zzzw, cb2[14].zzzw
    round_ne r9.zw, r9.zzzw
    mul r11.xy, r9.zwzz, cb2[14].xyxx
    mul r11.yzw, r8.xxyz, r11.yyyy
    mad r11.xyz, r11.xxxx, r7.xyzx, r11.yzwy
    dp2 r3.w, r11.xyxx, r11.xyxx
    rsq r3.w, r3.w
    mad r3.w, -r11.z, r3.w, cb0[0].y
    mad r4.w, r3.w, r3.w, l(1.000000)
    rsq r4.w, r4.w
    mul r4.w, r3.w, r4.w
    mad r9.zw, cb2[14].xxxy, r9.zzzw, v6.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r11.z, r9.zwzz, t1.yzxw, s1, l(0.000000)
    mad r9.zw, r9.zzzw, v1.xxxy, v1.zzzw
    mul r11.xy, r9.zwzz, r11.zzzz
    add r5.w, r0.z, -r11.z
    mad r9.zw, r11.zzzz, r9.zzzw, -r0.xxxy
    dp2 r6.w, r9.zwzz, r9.zwzz
    rsq r6.w, r6.w
    mul r5.w, r5.w, r6.w
    mad r6.w, r5.w, r5.w, l(1.000000)
    rsq r6.w, r6.w
    add r11.xyz, -r0.xyzx, r11.xyzx
    dp3 r7.w, r11.xyzx, r11.xyzx
    lt r8.w, r7.w, cb0[0].x
    and r8.w, r8.w, l(0xbf800000)
    lt r3.w, r3.w, r5.w
    and r3.w, r8.w, r3.w
    mad r7.w, r7.w, cb0[0].w, l(1.000000)
    mad r4.w, r5.w, r6.w, -r4.w
    mul r11.y, r4.w, r7.w
    max r11.x, r5.w, r9.x
    ne r3.w, l(0.000000, 0.000000, 0.000000, 0.000000), r3.w
    movc r9.xz, r3.wwww, r11.xxyx, r9.xxyx
    mad r3.w, r9.x, r9.x, l(1.000000)
    sqrt r3.w, r3.w
    div r3.w, r9.x, r3.w
    mov r11.xy, r10.xyxx
    mov r12.xy, r9.zxzz
    mov r12.z, r3.w
    mov r4.w, l(1.000000)
    loop
      lt r5.w, r0.w, r4.w
      if_nz r5.w
        break
      endif
      mad r11.xy, r10.zwzz, cb2[14].xyxx, r11.xyxx
      sample_l_indexable(texture2d)(float,float,float,float) r13.z, r11.xyxx, t1.yzxw, s1, l(0.000000)
      mad r11.zw, r11.xxxy, v1.xxxy, v1.zzzw
      mul r13.xy, r11.zwzz, r13.zzzz
      add r5.w, r0.z, -r13.z
      mad r11.zw, r13.zzzz, r11.zzzw, -r0.xxxy
      dp2 r6.w, r11.zwzz, r11.zwzz
      rsq r6.w, r6.w
      mul r14.y, r5.w, r6.w
      add r13.xyz, -r0.xyzx, r13.xyzx
      dp3 r5.w, r13.xyzx, r13.xyzx
      lt r6.w, r5.w, cb0[0].x
      and r6.w, r6.w, l(0xbf800000)
      lt r7.w, r12.y, r14.y
      and r6.w, r6.w, r7.w
      ne r6.w, r6.w, l(0.000000)
      mad r7.w, r14.y, r14.y, l(1.000000)
      sqrt r7.w, r7.w
      div r14.z, r14.y, r7.w
      mad r5.w, r5.w, cb0[0].w, l(1.000000)
      add r7.w, -r12.z, r14.z
      mad r14.x, r5.w, r7.w, r12.x
      movc r12.xyz, r6.wwww, r14.xyzx, r12.xyzx
      add r4.w, r4.w, l(1.000000)
    endloop
    mad r2.y, r12.x, cb0[0].z, r2.y
    add r2.w, r2.w, l(1.000000)
  endloop
  add_sat r1.x, -r2.y, l(1.000000)
  sqrt r0.w, r1.w
  add r2.xyw, r0.xyxz, -r3.xyxz
  dp3 r1.w, r2.xywx, r2.xywx
  sqrt r1.w, r1.w
  lt r0.w, r0.w, r1.w
  movc r2.xyw, r0.wwww, r4.xyxz, r3.xyxz
  add r3.xyz, r0.xyzx, -r5.xyzx
  dp3 r0.w, r3.xyzx, r3.xyzx
  sqrt r0.w, r0.w
  sqrt r1.w, r2.z
  lt r0.w, r0.w, r1.w
  movc r3.xyz, r0.wwww, r5.xyzx, r6.xyzx
  add r2.xyz, -r0.xyzx, r2.xywx
  dp3 r0.w, r2.xyzx, r2.xyzx
  add r0.xyz, -r0.xyzx, r3.xyzx
  dp3 r0.x, r0.xyzx, r0.xyzx
  sqrt r2.xy, r0.xwxx
  lt r0.xy, r2.xyxx, cb0[1].xxxx
  and r0.x, r0.x, r0.y
  and r1.z, r0.x, l(0x3f800000)
  mul r1.y, r1.x, r1.x
  add r0.xy, r1.yzyy, r1.yzyy
  ge r0.xy, r0.xyxx, cb0[1].yyyy
  movc o0.xy, r0.xyxx, r1.xzxx, l(1.000000,0,0,0)
else
  mov o0.xy, l(1.000000,1.000000,0,0)
endif
ret
// Approximately 167 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.181 on Sun Dec 31 13:00:50 2023
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[15] : packoffset(c0);
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[3] : packoffset(c0);
// }
//
// SamplerState s0_s_s : register(s0);
// SamplerState s1_s_s : register(s1);
// Texture2D<float4> t0 : register(t0);
// Texture2D<float4> t1 : register(t1);
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<float4> StereoParams : register(t125);
//
//
// void main(
//   float4 v0 : SV_POSITION0,
//   float4 v1 : TEXCOORD0,
//   float4 v2 : TEXCOORD1,
//   float4 v3 : TEXCOORD2,
//   float4 v4 : TEXCOORD3,
//   float4 v5 : TEXCOORD4,
//   float4 v6 : TEXCOORD5,
//   float2 v7 : TEXCOORD6,
//   out float2 o0 : SV_TARGET0)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.z = t1.SampleLevel(s1_s_s, v6.xy, 0).x;
//   r0.w = cb0[2].x / r0.z;
//   r1.x = cmp(cb2[14].x < r0.w);
//   if (r1.x != 0) {
//     r0.xy = v7.xy * r0.zz;
//     r1.xyz = t0.SampleLevel(s0_s_s, v6.zw, 0).xyz;
//     r0.w = cb2[14].z * r0.w;
//     r2.y = min(6, r0.w);
//     r1.w = 1 + r2.y;
//     r2.x = r0.w / r1.w;
//     r0.w = 20 / r2.x;
//     r1.w = cmp(r0.w < r2.y);
//     r0.w = r0.w + r1.z;
//     r0.w = floor(r0.w);
//     r3.y = max(1, r0.w);
//     r3.x = 20 / r3.y;
//     r2.xy = r1.ww ? r3.xy : r2.xy;
//     r3.z = t1.SampleLevel(s1_s_s, v3.xy, 0).x;
//     r3.xy = v4.xy * r3.zz;
//     r4.z = t1.SampleLevel(s1_s_s, v3.zy, 0).x;
//     r4.xy = v5.zw * r4.zz;
//     r5.z = t1.SampleLevel(s1_s_s, v2.xy, 0).x;
//     r5.xy = v4.zw * r5.zz;
//     r6.z = t1.SampleLevel(s1_s_s, v2.xz, 0).x;
//     r6.xy = v5.xy * r6.zz;
//     r7.xyz = r3.xyz + -r0.xyz;
//     r8.xyz = -r4.xyz + r0.xyz;
//     r0.w = dot(r7.xyz, r7.xyz);
//     r1.w = dot(r8.xyz, r8.xyz);
//     r0.w = cmp(r0.w < r1.w);
//     r7.xyz = r0.www ? r7.xyz : r8.xyz;
//     r8.xyz = r5.xyz + -r0.xyz;
//     r9.xyz = -r6.xyz + r0.xyz;
//     r0.w = dot(r8.xyz, r8.xyz);
//     r2.z = dot(r9.xyz, r9.xyz);
//     r0.w = cmp(r0.w < r2.z);
//     r8.xyz = r0.www ? r8.xyz : r9.xyz;
//     r8.xyz = cb0[1].zzz * r8.xyz;
//     r0.w = -1 + r2.y;
//     r9.y = 0;
//     r2.yw = float2(0,0);
//     while (true) {
//       r3.w = cmp(r2.w >= 4);
//       if (r3.w != 0) {
//         break;
//       }
//       r3.w = 1.57079601 * r2.w;
//       sincos(r3.w, r10.x, r11.x);
//       r9.zw = r10.xx * r1.yx;
//       r10.x = r11.x * r1.x + -r9.z;
//       r10.y = r11.x * r1.y + r9.w;
//       r9.zw = cb2[14].xy * r10.xy;
//       r10.zw = r9.zw * r2.xx;
//       r10.xy = r10.zw * r1.zz;
//       r10.xyzw = cb2[14].zwzw * r10.xyzw;
//       r10.xyzw = round(r10.xyzw);
//       r11.xy = cb2[14].xy * r10.zw;
//       r10.xy = r10.xy * cb2[14].xy + v6.xy;
//       r12.xyz = r11.yyy * r8.xyz;
//       r12.xyz = r11.xxx * r7.xyz + r12.xyz;
//       r3.w = dot(r12.xy, r12.xy);
//       r3.w = rsqrt(r3.w);
//       r9.x = -r12.z * r3.w + cb0[0].y;
//       r9.zw = r1.zz * r11.xy + r9.zw;
//       r9.zw = cb2[14].zw * r9.zw;
//       r9.zw = round(r9.zw);
//       r11.xy = cb2[14].xy * r9.zw;
//       r11.yzw = r11.yyy * r8.xyz;
//       r11.xyz = r11.xxx * r7.xyz + r11.yzw;
//       r3.w = dot(r11.xy, r11.xy);
//       r3.w = rsqrt(r3.w);
//       r3.w = -r11.z * r3.w + cb0[0].y;
//       r4.w = r3.w * r3.w + 1;
//       r4.w = rsqrt(r4.w);
//       r4.w = r4.w * r3.w;
//       r9.zw = cb2[14].xy * r9.zw + v6.xy;
//       r11.z = t1.SampleLevel(s1_s_s, r9.zw, 0).x;
//       r9.zw = r9.zw * v1.xy + v1.zw;
//       r11.xy = r11.zz * r9.zw;
//       r5.w = -r11.z + r0.z;
//       r9.zw = r11.zz * r9.zw + -r0.xy;
//       r6.w = dot(r9.zw, r9.zw);
//       r6.w = rsqrt(r6.w);
//       r5.w = r6.w * r5.w;
//       r6.w = r5.w * r5.w + 1;
//       r6.w = rsqrt(r6.w);
//       r11.xyz = r11.xyz + -r0.xyz;
//       r7.w = dot(r11.xyz, r11.xyz);
//       r8.w = cmp(r7.w < cb0[0].x);
//       r8.w = r8.w ? -1.000000 : 0;
//       r3.w = cmp(r3.w < r5.w);
//       r3.w = r8.w ? r3.w : 0;
//       r7.w = r7.w * cb0[0].w + 1;
//       r4.w = r5.w * r6.w + -r4.w;
//       r11.y = r7.w * r4.w;
//       r11.x = max(r9.x, r5.w);
//       r3.w = cmp(0 != r3.w);
//       r9.xz = r3.ww ? r11.xy : r9.xy;
//       r3.w = r9.x * r9.x + 1;
//       r3.w = sqrt(r3.w);
//       r3.w = r9.x / r3.w;
//       r11.xy = r10.xy;
//       r12.xy = r9.zx;
//       r12.z = r3.w;
//       r4.w = 1;
//       while (true) {
//         r5.w = cmp(r0.w < r4.w);
//         if (r5.w != 0) {
//           break;
//         }
//         r11.xy = r10.zw * cb2[14].xy + r11.xy;
//         r13.z = t1.SampleLevel(s1_s_s, r11.xy, 0).x;
//         r11.zw = r11.xy * v1.xy + v1.zw;
//         r13.xy = r13.zz * r11.zw;
//         r5.w = -r13.z + r0.z;
//         r11.zw = r13.zz * r11.zw + -r0.xy;
//         r6.w = dot(r11.zw, r11.zw);
//         r6.w = rsqrt(r6.w);
//         r14.y = r6.w * r5.w;
//         r13.xyz = r13.xyz + -r0.xyz;
//         r5.w = dot(r13.xyz, r13.xyz);
//         r6.w = cmp(r5.w < cb0[0].x);
//         r6.w = r6.w ? -1.000000 : 0;
//         r7.w = cmp(r12.y < r14.y);
//         r6.w = r6.w ? r7.w : 0;
//         r6.w = cmp(r6.w != 0.000000);
//         r7.w = r14.y * r14.y + 1;
//         r7.w = sqrt(r7.w);
//         r14.z = r14.y / r7.w;
//         r5.w = r5.w * cb0[0].w + 1;
//         r7.w = r14.z + -r12.z;
//         r14.x = r5.w * r7.w + r12.x;
//         r12.xyz = r6.www ? r14.xyz : r12.xyz;
//         r4.w = 1 + r4.w;
//       }
//       r2.y = r12.x * cb0[0].z + r2.y;
//       r2.w = 1 + r2.w;
//     }
//     r1.x = saturate(1 + -r2.y);
//     r0.w = sqrt(r1.w);
//     r2.xyw = -r3.xyz + r0.xyz;
//     r1.w = dot(r2.xyw, r2.xyw);
//     r1.w = sqrt(r1.w);
//     r0.w = cmp(r0.w < r1.w);
//     r2.xyw = r0.www ? r4.xyz : r3.xyz;
//     r3.xyz = -r5.xyz + r0.xyz;
//     r0.w = dot(r3.xyz, r3.xyz);
//     r0.w = sqrt(r0.w);
//     r1.w = sqrt(r2.z);
//     r0.w = cmp(r0.w < r1.w);
//     r3.xyz = r0.www ? r5.xyz : r6.xyz;
//     r2.xyz = r2.xyw + -r0.xyz;
//     r0.w = dot(r2.xyz, r2.xyz);
//     r0.xyz = r3.xyz + -r0.xyz;
//     r0.x = dot(r0.xyz, r0.xyz);
//     r2.xy = sqrt(r0.xw);
//     r0.xy = cmp(r2.xy < cb0[1].xx);
//     r0.x = r0.x ? r0.y : 0;
//     r1.z = r0.x ? 1.000000 : 0;
//     r1.y = r1.x * r1.x;
//     r0.xy = r1.yz + r1.yz;
//     r0.xy = cmp(r0.xy >= cb0[1].yy);
//     o0.xy = r0.xy ? r1.xz : float2(1,0);
//   } else {
//     o0.xy = float2(1,1);
//   }
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
