
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.181 on Sat Dec 23 19:55:19 2023
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float
// TEXCOORD                 0   xyzw        1     NONE   float   xyzw
//
//
// 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 CB2[15], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_input_ps linear v1.xyzw
dcl_output o0.xyzw
dcl_temps 8
sample_indexable(texture2d)(float,float,float,float) r0.xy, v1.zwzz, t1.xyzw, s0
dp2 r0.z, r0.xyxx, r0.xyxx
lt r0.z, l(0.500000), r0.z
if_nz r0.z
  sample_l_indexable(texture2d)(float,float,float,float) r1.xyzw, v1.zwzz, t3.xyzw, s2, l(0.000000)
  sample_indexable(texture2d)(float,float,float,float) r0.zw, v1.zwzz, t2.zwxy, s1
  mul r0.zw, r0.zzzw, cb2[14].zzzw
  dp2 r0.z, r0.zwzz, r0.zwzz
  sqrt r0.w, r0.z
  lt r0.z, l(0.000000), r0.z
  movc r2.y, r0.z, r0.w, l(0.000010)
  div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.y
  mul r4.xyz, r1.xyzx, r3.yyyy
  sample_l_indexable(texture2d)(float,float,float,float) r0.z, v1.zwzz, t0.yzxw, s3, l(0.000000)
  mad r0.zw, r0.zzzz, cb2[8].xxxy, cb2[8].zzzw
  div r0.z, r0.z, -r0.w
  mul r2.zw, r0.xxxy, l(0.000000, 0.000000, -0.444444507, -0.444444507)
  mov r5.xyz, r4.xyzx
  mov r3.zw, r2.zzzw
  mov r0.w, r3.y
  mov r4.w, l(0)
  loop
    ige r5.w, r4.w, l(8)
    breakc_nz r5.w
    add r6.xy, r3.zwzz, v1.xyxx
    round_ne r6.xy, r6.xyxx
    mul r6.zw, r6.xxxy, cb2[14].xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r7.xy, r6.zwzz, t2.xyzw, s1, l(0.000000)
    mul r7.xy, r7.xyxx, cb2[14].zwzz
    dp2 r5.w, r7.xyxx, r7.xyxx
    sqrt r7.x, r5.w
    lt r5.w, l(0.000000), r5.w
    movc r2.x, r5.w, r7.x, l(0.000010)
    div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
    add r6.xy, -r6.xyxx, v1.xyxx
    dp2 r5.w, r6.xyxx, r6.xyxx
    sqrt r6.x, r5.w
    lt r5.w, l(0.000000), r5.w
    movc r5.w, r5.w, r6.x, l(0.000010)
    sample_l_indexable(texture2d)(float,float,float,float) r6.x, r6.zwzz, t0.xyzw, s3, l(0.000000)
    mad r6.xy, r6.xxxx, cb2[8].xyxx, cb2[8].zwzz
    div r6.x, r6.x, -r6.y
    add r6.y, -|r0.z|, |r6.x|
    mad_sat r7.x, -r6.y, l(100.000000), l(1.000000)
    add r6.x, |r0.z|, -|r6.x|
    mad_sat r7.y, -r6.x, l(100.000000), l(1.000000)
    mad r6.xy, -r5.wwww, r3.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
    max r6.xy, r6.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    dp2 r3.x, r7.xyxx, r6.xyxx
    mul r6.xy, r2.xyxx, l(0.0999999642, 0.0999999642, 0.000000, 0.000000)
    mad r7.xy, -r2.xyxx, l(0.950000, 0.950000, 0.000000, 0.000000), r5.wwww
    div r6.xy, l(1.000000, 1.000000, 1.000000, 1.000000), r6.xyxx
    mul_sat r6.xy, r6.xyxx, r7.xyxx
    mad r7.xy, r6.xyxx, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000)
    mul r6.xy, r6.xyxx, r6.xyxx
    mad r6.xy, -r7.xyxx, r6.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
    dp2 r2.x, r6.xxxx, r6.yyyy
    add r2.x, r2.x, r3.x
    max r2.x, r2.x, l(0.000000)
    add r0.w, r0.w, r2.x
    sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r6.zwzz, t3.xyzw, s2, l(0.000000)
    mad r5.xyz, r2.xxxx, r6.xyzx, r5.xyzx
    mad r3.zw, r0.xxxy, l(0.000000, 0.000000, 0.111111, 0.111111), r3.zzzw
    iadd r4.w, r4.w, l(1)
  endloop
  div r0.xyz, r5.xyzx, r0.wwww
  min r0.w, r0.w, l(1.000000)
  add r0.xyz, -r1.xyzx, r0.xyzx
  mad o0.xyz, r0.wwww, r0.xyzx, r1.xyzx
  mov o0.w, r1.w
else
  discard_nz l(-1)
  mov o0.xyzw, l(0,0,0,0)
endif
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.181 on Sat Dec 23 19:55:19 2023
// Texture2D<float4> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// Texture2D<float4> t0 : register(t0);
//
// SamplerState s3_s : register(s3);
//
// SamplerState s2_s : register(s2);
//
// SamplerState s1_s : register(s1);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[15];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<float4> StereoParams : register(t125);
//
//
// void main(
//   float4 v0 : SV_POSITION0,
//   float4 v1 : TEXCOORD0,
//   out float4 o0 : SV_TARGET0)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.xy = t1.Sample(s0_s, v1.zw).xy;
//   r0.z = dot(r0.xy, r0.xy);
//   r0.z = cmp(0.5 < r0.z);
//   if (r0.z != 0) {
//     r1.xyzw = t3.SampleLevel(s2_s, v1.zw, 0).xyzw;
//     r0.zw = t2.Sample(s1_s, v1.zw).xy;
//     r0.zw = cb2[14].zw * r0.zw;
//     r0.z = dot(r0.zw, r0.zw);
//     r0.w = sqrt(r0.z);
//     r0.z = cmp(0 < r0.z);
//     r2.y = r0.z ? r0.w : 9.99999975e-06;
//     r3.y = 1 / r2.y;
//     r4.xyz = r3.yyy * r1.xyz;
//     r0.z = t0.SampleLevel(s3_s, v1.zw, 0).x;
//     r0.zw = r0.zz * cb2[8].xy + cb2[8].zw;
//     r0.z = r0.z / -r0.w;
//     r2.zw = float2(-0.444444507,-0.444444507) * r0.xy;
//     r5.xyz = r4.xyz;
//     r3.zw = r2.zw;
//     r0.w = r3.y;
//     r4.w = 0;
//     while (true) {
//       r5.w = cmp((int)r4.w >= 8);
//       if (r5.w != 0) break;
//       r6.xy = v1.xy + r3.zw;
//       r6.xy = round(r6.xy);
//       r6.zw = cb2[14].xy * r6.xy;
//       r7.xy = t2.SampleLevel(s1_s, r6.zw, 0).xy;
//       r7.xy = cb2[14].zw * r7.xy;
//       r5.w = dot(r7.xy, r7.xy);
//       r7.x = sqrt(r5.w);
//       r5.w = cmp(0 < r5.w);
//       r2.x = r5.w ? r7.x : 9.99999975e-06;
//       r3.x = 1 / r2.x;
//       r6.xy = v1.xy + -r6.xy;
//       r5.w = dot(r6.xy, r6.xy);
//       r6.x = sqrt(r5.w);
//       r5.w = cmp(0 < r5.w);
//       r5.w = r5.w ? r6.x : 9.99999975e-06;
//       r6.x = t0.SampleLevel(s3_s, r6.zw, 0).x;
//       r6.xy = r6.xx * cb2[8].xy + cb2[8].zw;
//       r6.x = r6.x / -r6.y;
//       r6.y = abs(r6.x) + -abs(r0.z);
//       r7.x = saturate(-r6.y * 100 + 1);
//       r6.x = -abs(r6.x) + abs(r0.z);
//       r7.y = saturate(-r6.x * 100 + 1);
//       r6.xy = -r5.ww * r3.xy + float2(1,1);
//       r6.xy = max(float2(0,0), r6.xy);
//       r3.x = dot(r7.xy, r6.xy);
//       r6.xy = float2(0.0999999642,0.0999999642) * r2.xy;
//       r7.xy = -r2.xy * float2(0.949999988,0.949999988) + r5.ww;
//       r6.xy = float2(1,1) / r6.xy;
//       r6.xy = saturate(r7.xy * r6.xy);
//       r7.xy = r6.xy * float2(-2,-2) + float2(3,3);
//       r6.xy = r6.xy * r6.xy;
//       r6.xy = -r7.xy * r6.xy + float2(1,1);
//       r2.x = dot(r6.xx, r6.yy);
//       r2.x = r3.x + r2.x;
//       r2.x = max(0, r2.x);
//       r0.w = r2.x + r0.w;
//       r6.xyz = t3.SampleLevel(s2_s, r6.zw, 0).xyz;
//       r5.xyz = r2.xxx * r6.xyz + r5.xyz;
//       r3.zw = r0.xy * float2(0.111111,0.111111) + r3.zw;
//       r4.w = (int)r4.w + 1;
//     }
//     r0.xyz = r5.xyz / r0.www;
//     r0.w = min(1, r0.w);
//     r0.xyz = r0.xyz + -r1.xyz;
//     o0.xyz = r0.www * r0.xyz + r1.xyz;
//     o0.w = r1.w;
//   } else {
//     if (-1 != 0) discard;
//     o0.xyzw = float4(0,0,0,0);
//   }
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
