//Vignette PS 2.
// ---- Created with 3Dmigoto v1.3.16 on Sat Nov 12 10:29:21 2022
Texture2D<float4> t1 : register(t1);

Texture2D<uint4> t0 : register(t0);

SamplerState s0_s : register(s0);

cbuffer cb3 : register(b3)
{
  float4 cb3[9];
}

cbuffer cb2 : register(b2)
{
  float4 cb2[65];
}

cbuffer cb1 : register(b1)
{
  float4 cb1[53];
}

cbuffer cb0 : register(b0)
{
  float4 cb0[2];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
  float4 v0 : SV_Position0,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2,r3,r4,r5;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  
  r0.xy = v0.xy * cb2[3].zw + float2(-0.5,-0.5);
  
  r0.x-=stereo.x*0.5;
  
  r0.x = dot(r0.xy, r0.xy);
  r0.x = sqrt(r0.x);
  r0.x = r0.x / cb3[7].z;
  r0.x = 1 + -r0.x;
  r0.y = cb3[7].w * r0.x;
  r0.y = r0.y * r0.y;
  r0.y = 1.44269514 * r0.y;
  r0.y = exp2(r0.y);
  r0.y = 1 / r0.y;
  r0.y = 1 + -r0.y;
  r0.y = 1 + -r0.y;
  r0.z = cmp(r0.x >= 0);
  r0.x = cmp(9.99999975e-006 < abs(r0.x));
  r0.y = r0.z ? r0.y : 1;
  r0.x = r0.x ? r0.y : 1;
  r0.yz = -cb2[1].xy + v0.xy;
  r0.yz = r0.yz * cb2[2].zw + float2(-0.5,-0.5);
  r1.xy = v0.ww * r0.yz;
  r1.z = v0.w;
  r0.yzw = float3(2,-2,1) * r1.xyz;
  r0.yz = r0.yz / r0.ww;
  r0.yz = r0.yz * cb1[52].xy + cb1[52].wz;
  r1.xzw = float3(0,0,0);
  r1.y = -cb2[3].w;
  r1.xy = r1.xy + r0.yz;
  r1.xy = max(cb2[64].xy, r1.xy);
  r1.xy = min(cb2[64].zw, r1.xy);
  r1.xy = cb2[3].xy * r1.xy;
  r1.xy = (int2)r1.xy;
  r0.w = t0.Load(r1.xyz).y;
  r0.w = (uint)r0.w;
  r0.w = min(255, r0.w);
  r1.xy = cb2[3].xy * r0.yz;
  r2.xyzw = t1.Sample(s0_s, r0.yz).xyzw;
  r1.xy = (int2)r1.xy;
  r1.zw = float2(0,0);
  r0.y = t0.Load(r1.xyz).y;
  r0.y = (uint)r0.y;
  r0.z = min(1, r0.y);
  r0.z = 1 + -r0.z;
  r0.z = r0.w * r0.z;
  r0.y = max(r0.z, r0.y);
  r0.y = saturate(-cb3[7].y + r0.y);
  r0.y = -cb3[8].x + r0.y;
  r0.x = r0.x * r0.y + cb3[8].x;
  r0.yz = cb2[3].zw * v0.xy;
  r1.xyzw = cb3[3].xyxy * cb0[0].zwzw;
  r3.xyzw = r1.zwzw * float4(0,1,1,0) + r0.yzyz;
  r3.xyzw = max(cb0[1].xyxy, r3.xyzw);
  r3.xyzw = min(cb0[1].zwzw, r3.xyzw);
  r4.xyz = t1.Sample(s0_s, r3.xy).xyz;
  r3.xyz = t1.Sample(s0_s, r3.zw).xyz;
  r3.xyz = r4.xyz + r3.xyz;
  r4.xyzw = r1.zwzw * float4(0,-1,-1,0) + r0.yzyz;
  r4.xyzw = max(cb0[1].xyxy, r4.xyzw);
  r4.xyzw = min(cb0[1].zwzw, r4.xyzw);
  r5.xyz = t1.Sample(s0_s, r4.xy).xyz;
  r4.xyz = t1.Sample(s0_s, r4.zw).xyz;
  r4.xyz = r5.xyz + r4.xyz;
  r3.xyz = r4.xyz + r3.xyz;
  r4.xyzw = r1.zwzw * float4(-0.5,0.5,0.5,0.5) + r0.yzyz;
  r1.xyzw = r1.xyzw * float4(0.5,-0.5,-0.5,-0.5) + r0.yzyz;
  r1.xyzw = max(cb0[1].xyxy, r1.xyzw);
  r1.xyzw = min(cb0[1].zwzw, r1.xyzw);
  r4.xyzw = max(cb0[1].xyxy, r4.xyzw);
  r4.xyzw = min(cb0[1].zwzw, r4.xyzw);
  r0.yzw = t1.Sample(s0_s, r4.xy).xyz;
  r4.xyz = t1.Sample(s0_s, r4.zw).xyz;
  r0.yzw = r4.xyz + r0.yzw;
  r4.xyz = t1.Sample(s0_s, r1.xy).xyz;
  r1.xyz = t1.Sample(s0_s, r1.zw).xyz;
  r1.xyz = r4.xyz + r1.xyz;
  r0.yzw = r1.xyz + r0.yzw;
  r0.yzw = r3.xyz + r0.yzw;
  r0.yzw = r0.yzw + r2.xyz;
  r1.xyz = -r0.yzw * float3(0.111111112,0.111111112,0.111111112) + r2.xyz;
  r0.yzw = float3(0.111111112,0.111111112,0.111111112) * r0.yzw;
  r0.xyz = r0.xxx * r1.xyz + r0.yzw;
  r0.xyz = cb3[4].xyz + r0.xyz;
  o0.xyz = max(float3(0,0,0), r0.xyz);
  o0.w = r2.w;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Sat Nov 12 10:29:21 2022
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy w
//
//
// 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 cb0[2], immediateIndexed
dcl_constantbuffer cb1[53], immediateIndexed
dcl_constantbuffer cb2[65], immediateIndexed
dcl_constantbuffer cb3[9], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (uint,uint,uint,uint) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps_siv linear noperspective v0.xyw, position
dcl_output o0.xyzw
dcl_temps 6
mad r0.xy, v0.xyxx, cb2[3].zwzz, l(-0.500000, -0.500000, 0.000000, 0.000000)
dp2 r0.x, r0.xyxx, r0.xyxx
sqrt r0.x, r0.x
div r0.x, r0.x, cb3[7].z
add r0.x, -r0.x, l(1.000000)
mul r0.y, r0.x, cb3[7].w
mul r0.y, r0.y, r0.y
mul r0.y, r0.y, l(1.44269514)
exp r0.y, r0.y
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
add r0.y, -r0.y, l(1.000000)
add r0.y, -r0.y, l(1.000000)
ge r0.z, r0.x, l(0.000000)
lt r0.x, l(0.000010), |r0.x|
movc r0.y, r0.z, r0.y, l(1.000000)
movc r0.x, r0.x, r0.y, l(1.000000)
add r0.yz, v0.xxyx, -cb2[1].xxyx
mad r0.yz, r0.yyzy, cb2[2].zzwz, l(0.000000, -0.500000, -0.500000, 0.000000)
mul r1.xy, r0.yzyy, v0.wwww
mov r1.z, v0.w
mul r0.yzw, r1.xxyz, l(0.000000, 2.000000, -2.000000, 1.000000)
div r0.yz, r0.yyzy, r0.wwww
mad r0.yz, r0.yyzy, cb1[52].xxyx, cb1[52].wwzw
mov r1.xzw, l(0,0,0,0)
mov r1.y, -cb2[3].w
add r1.xy, r0.yzyy, r1.xyxx
max r1.xy, r1.xyxx, cb2[64].xyxx
min r1.xy, r1.xyxx, cb2[64].zwzz
mul r1.xy, r1.xyxx, cb2[3].xyxx
ftoi r1.xy, r1.xyxx
ld_indexable(texture2d)(uint,uint,uint,uint) r0.w, r1.xyzw, t0.xzwy
utof r0.w, r0.w
min r0.w, r0.w, l(255.000000)
mul r1.xy, r0.yzyy, cb2[3].xyxx
sample_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.yzyy, t1.xyzw, s0
ftoi r1.xy, r1.xyxx
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r0.y, r1.xyzw, t0.xyzw
utof r0.y, r0.y
min r0.z, r0.y, l(1.000000)
add r0.z, -r0.z, l(1.000000)
mul r0.z, r0.z, r0.w
max r0.y, r0.y, r0.z
add_sat r0.y, r0.y, -cb3[7].y
add r0.y, r0.y, -cb3[8].x
mad r0.x, r0.x, r0.y, cb3[8].x
mul r0.yz, v0.xxyx, cb2[3].zzwz
mul r1.xyzw, cb0[0].zwzw, cb3[3].xyxy
mad r3.xyzw, r1.zwzw, l(0.000000, 1.000000, 1.000000, 0.000000), r0.yzyz
max r3.xyzw, r3.xyzw, cb0[1].xyxy
min r3.xyzw, r3.xyzw, cb0[1].zwzw
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r3.xyxx, t1.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r3.xyz, r3.zwzz, t1.xyzw, s0
add r3.xyz, r3.xyzx, r4.xyzx
mad r4.xyzw, r1.zwzw, l(0.000000, -1.000000, -1.000000, 0.000000), r0.yzyz
max r4.xyzw, r4.xyzw, cb0[1].xyxy
min r4.xyzw, r4.xyzw, cb0[1].zwzw
sample_indexable(texture2d)(float,float,float,float) r5.xyz, r4.xyxx, t1.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t1.xyzw, s0
add r4.xyz, r4.xyzx, r5.xyzx
add r3.xyz, r3.xyzx, r4.xyzx
mad r4.xyzw, r1.zwzw, l(-0.500000, 0.500000, 0.500000, 0.500000), r0.yzyz
mad r1.xyzw, r1.xyzw, l(0.500000, -0.500000, -0.500000, -0.500000), r0.yzyz
max r1.xyzw, r1.xyzw, cb0[1].xyxy
min r1.xyzw, r1.xyzw, cb0[1].zwzw
max r4.xyzw, r4.xyzw, cb0[1].xyxy
min r4.xyzw, r4.xyzw, cb0[1].zwzw
sample_indexable(texture2d)(float,float,float,float) r0.yzw, r4.xyxx, t1.wxyz, s0
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t1.xyzw, s0
add r0.yzw, r0.yyzw, r4.xxyz
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r1.xyxx, t1.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r1.xyz, r1.zwzz, t1.xyzw, s0
add r1.xyz, r1.xyzx, r4.xyzx
add r0.yzw, r0.yyzw, r1.xxyz
add r0.yzw, r0.yyzw, r3.xxyz
add r0.yzw, r2.xxyz, r0.yyzw
mad r1.xyz, -r0.yzwy, l(0.111111112, 0.111111112, 0.111111112, 0.000000), r2.xyzx
mul r0.yzw, r0.yyzw, l(0.000000, 0.111111112, 0.111111112, 0.111111112)
mad r0.xyz, r0.xxxx, r1.xyzx, r0.yzwy
add r0.xyz, r0.xyzx, cb3[4].xyzx
max o0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mov o0.w, r2.w
ret
// Approximately 0 instruction slots used

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