// ---- Created with 3Dmigoto v1.3.16.45 on Mon Dec 14 23:20:34 2020
Texture2DArray<float4> t4 : register(t4);

SamplerState s1_s : register(s1);

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




// 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;

  r0.w = 0;
  r1.xy = (uint2)v0.yx;
  bitmask.z = ((~(-1 << 1)) << 1) & 0xffffffff;  r1.z = (((uint)r1.x << 1) & bitmask.z) | ((uint)0 & ~bitmask.z);
  bitmask.z = ((~(-1 << 1)) << 0) & 0xffffffff;  r0.z = (((uint)r1.y << 0) & bitmask.z) | ((uint)r1.z & ~bitmask.z);
  r0.xy = (uint2)r1.yx >> int2(1,1);
  r0.xy = t4.Load(r0.xyzw).xy;
  r1.w = 255.5 * r0.y;
  r1.w = (uint)r1.w;
  if (2 == 0) r2.x = 0; else if (2+6 < 32) {   r2.x = (uint)r1.w << (32-(2 + 6)); r2.x = (uint)r2.x >> (32-2);  } else r2.x = (uint)r1.w >> 6;
  if (2 == 0) r2.y = 0; else if (2+4 < 32) {   r2.y = (uint)r1.w << (32-(2 + 4)); r2.y = (uint)r2.y >> (32-2);  } else r2.y = (uint)r1.w >> 4;
  if (2 == 0) r2.z = 0; else if (2+2 < 32) {   r2.z = (uint)r1.w << (32-(2 + 2)); r2.z = (uint)r2.z >> (32-2);  } else r2.z = (uint)r1.w >> 2;
  r1.w = (int)r1.w & 3;
  r1.w = (uint)r1.w;
  r3.w = 0.333333343 * r1.w;
  r2.xyz = (uint3)r2.xyz;
  r3.xyz = float3(0.333333343,0.333333343,0.333333343) * r2.xyz;
  r2.xyzw = saturate(cb0[8].xxxx + r3.xyzw);
  r3.xy = r2.yw + -r2.xz;
  r2.xy = r2.xz + r2.yw;
  r2.yz = float2(0.5,0.5) * r2.xy;
  r1.xw = (int2)r1.xy & int2(1,1);
  r3.zw = (int2)r1.xw;
  r1.x = (int)-r1.w + 1;
  r3.xy = r3.wz + r3.xy;
  r4.yz = v0.yx + -r3.zw;
  r4.w = -0.5 + r3.y;
  r4.x = v0.x + r3.x;
  r3.xz = float2(0.5,-0.5);
  r3.yw = v0.yy;
  r3.xyzw = r3.xyzw + r4.zwxw;
  r4.xy = float2(-0.5,0.5) + r4.xy;
  r4.xy = cb0[0].zw * r4.xy;
  r4.xy = float2(0.5,0.5) * r4.xy;
  r3.xyzw = cb0[0].zwzw * r3.xyzw;
  r5.xy = float2(0.5,0.5) * r3.xy;
  r3.xy = float2(0.5,0.5) * r3.zw;
  r1.w = (int)-r1.z + 2;
  r1.z = (int)r1.z + (int)r1.x;
  r1.x = (int)r1.w + (int)r1.x;
  bitmask.y = ((~(-1 << 1)) << 0) & 0xffffffff;  r1.y = (((uint)r1.y << 0) & bitmask.y) | ((uint)r1.w & ~bitmask.y);
  r5.z = (int)r1.y;
  r0.z = t4.SampleLevel(s1_s, r5.xyz, 0).x;
  r3.z = (int)r1.x;
  r0.w = t4.SampleLevel(s1_s, r3.xyz, 0).x;
  r4.z = (int)r1.z;
  r0.y = t4.SampleLevel(s1_s, r4.xyz, 0).x;
  r1.x = r2.y + r2.z;
  r2.w = 0.5 * r1.x;
  r2.x = 1;
  r0.x = dot(r0.xyzw, r2.xyzw);
  r0.y = dot(float4(1,1,1,1), r2.xyzw);
  o0.xyz = r0.xxx / r0.yyy;
  o0.w = 0;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16.45 on Mon Dec 14 23:20:34 2020
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xy
//
//
// 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[9], immediateIndexed
dcl_sampler s1, mode_default
dcl_resource_texture2darray (float,float,float,float) t4
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 6
mov r0.w, l(0)
ftou r1.xy, v0.yxyy
bfi r1.z, l(1), l(1), r1.x, l(0)
bfi r0.z, l(1), l(0), r1.y, r1.z
ushr r0.xy, r1.yxyy, l(1, 1, 0, 0)
ld_indexable(texture2darray)(float,float,float,float) r0.xy, r0.xyzw, t4.xyzw
mul r1.w, r0.y, l(255.500000)
ftou r1.w, r1.w
ubfe r2.xyz, l(2, 2, 2, 0), l(6, 4, 2, 0), r1.wwww
and r1.w, r1.w, l(3)
utof r1.w, r1.w
mul r3.w, r1.w, l(0.333333343)
utof r2.xyz, r2.xyzx
mul r3.xyz, r2.xyzx, l(0.333333343, 0.333333343, 0.333333343, 0.000000)
add_sat r2.xyzw, r3.xyzw, cb0[8].xxxx
add r3.xy, -r2.xzxx, r2.ywyy
add r2.xy, r2.ywyy, r2.xzxx
mul r2.yz, r2.xxyx, l(0.000000, 0.500000, 0.500000, 0.000000)
and r1.xw, r1.xxxy, l(1, 0, 0, 1)
itof r3.zw, r1.xxxw
iadd r1.x, -r1.w, l(1)
add r3.xy, r3.xyxx, r3.wzww
add r4.yz, -r3.zzwz, v0.yyxy
add r4.w, r3.y, l(-0.500000)
add r4.x, r3.x, v0.x
mov r3.xz, l(0.500000,0,-0.500000,0)
mov r3.yw, v0.yyyy
add r3.xyzw, r4.zwxw, r3.xyzw
add r4.xy, r4.xyxx, l(-0.500000, 0.500000, 0.000000, 0.000000)
mul r4.xy, r4.xyxx, cb0[0].zwzz
mul r4.xy, r4.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r3.xyzw, r3.xyzw, cb0[0].zwzw
mul r5.xy, r3.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r3.xy, r3.zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
iadd r1.w, -r1.z, l(2)
iadd r1.z, r1.z, r1.x
iadd r1.x, r1.w, r1.x
bfi r1.y, l(1), l(0), r1.y, r1.w
itof r5.z, r1.y
sample_l_indexable(texture2darray)(float,float,float,float) r0.z, r5.xyzx, t4.yzxw, s1, l(0.000000)
itof r3.z, r1.x
sample_l_indexable(texture2darray)(float,float,float,float) r0.w, r3.xyzx, t4.yzwx, s1, l(0.000000)
itof r4.z, r1.z
sample_l_indexable(texture2darray)(float,float,float,float) r0.y, r4.xyzx, t4.yxzw, s1, l(0.000000)
add r1.x, r2.z, r2.y
mul r2.w, r1.x, l(0.500000)
mov r2.x, l(1.000000)
dp4 r0.x, r0.xyzw, r2.xyzw
dp4 r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.xyzw
div o0.xyz, r0.xxxx, r0.yyyy
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

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