// ---- 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);
Texture2D<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;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// 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

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
