//Temporal antialiasing (TAA) 2.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Wed May 26 22:45:34 2021
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[5], immediateIndexed
dcl_constantbuffer cb1[11], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (uint,uint,uint,uint) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_uav_typed_texture2d (float,float,float,float) u0
dcl_input vThreadGroupID.xy
dcl_input vThreadIDInGroup.xy
dcl_temps 35
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
dcl_tgsm_structured g0, 8, 100
dcl_thread_group 8, 8, 1

ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture2d)(float,float,float,float) r26.xyzw, l(2, 0, 0, 0), t120.xyzw

ishl r0.xy, vThreadGroupID.xyxx, l(3, 3, 0, 0)
iadd r0.xy, r0.xyxx, l(-1, -1, 0, 0)
imad r0.z, vThreadIDInGroup.y, l(10), vThreadIDInGroup.x
iadd r1.xy, vThreadIDInGroup.xyxx, r0.xyxx
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r1.xyzw, t1.xyzw
mul r2.xyz, r1.xyxx, l(0.250000, 0.500000, -0.250000, 0.000000)
add r2.xy, r2.yyyy, r2.xzxx
mad r0.w, r1.z, l(0.250000), r2.x
dp2 r1.x, r1.xzxx, l(0.500000, -0.500000, 0.000000, 0.000000)
mad r1.y, r1.z, l(-0.250000), r2.y
mad r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
f32tof16 r0.w, r0.w
f32tof16 r1.xy, r1.xyxx
imad r2.x, r1.x, l(0x00010000), r0.w
f32tof16 r0.w, r1.w
imad r2.y, r0.w, l(0x00010000), r1.y
store_structured g0.xy, r0.z, l(0), r2.xyxx
bfi r1.xyzw, l(3, 31, 1, 1), l(0, 0, 0, 0), vThreadIDInGroup.xyxy, l(8, 0, 8, 8)
ige r2.xy, vThreadIDInGroup.xxxx, l(2, 4, 0, 0)
iadd r2.zw, vThreadIDInGroup.yyyx, l(0, 0, 0, 6)
movc r1.xy, r2.xxxx, r2.zwzz, r1.xyxx
movc r1.xy, r2.yyyy, r1.zwzz, r1.xyxx
imad r0.w, r1.y, l(10), r1.x
iadd r1.xy, r1.xyxx, r0.xyxx
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.xyzw, r1.xyzw, t1.xyzw
mul r2.xyz, r1.xyxx, l(0.250000, 0.500000, -0.250000, 0.000000)
add r0.xy, r2.yyyy, r2.xzxx
mad r0.x, r1.z, l(0.250000), r0.x
dp2 r1.x, r1.xzxx, l(0.500000, -0.500000, 0.000000, 0.000000)
mad r1.y, r1.z, l(-0.250000), r0.y
mad r1.xy, r1.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
f32tof16 r0.x, r0.x
f32tof16 r1.xy, r1.xyxx
imad r0.x, r1.x, l(0x00010000), r0.x
f32tof16 r1.x, r1.w
imad r0.y, r1.x, l(0x00010000), r1.y
store_structured g0.xy, r0.w, l(0), r0.xyxx
sync_g_t
imad r1.xy, vThreadGroupID.xyxx, l(8, 8, 0, 0), vThreadIDInGroup.xyxx
itof r0.xy, r1.xyxx
add r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r2.xy, r0.xyxx, cb0[0].zwzz
iadd r3.xyzw, r0.zzzz, l(11, 1, 2, 10)
ld_structured r2.zw, r3.x, l(0), g0.xxxy
ushr r4.xy, r2.zwzz, l(16, 16, 0, 0)
f16tof32 r5.xz, r2.zzwz
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r0.w, r1.xyzw, t0.yzwx
ld_structured r1.z, r3.x, l(0), g0.xxxx
ushr r1.z, r1.z, l(16)
f16tof32 r5.y, r1.z
f16tof32 r4.xy, r4.yxyy
ld_structured r1.zw, r0.z, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r6.xz, r1.zzwz
f16tof32 r6.yw, r2.zzzw
ld_structured r1.zw, r3.y, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r7.xz, r1.zzwz
f16tof32 r7.yw, r2.zzzw
add r8.xyz, r5.xyzx, r6.xyzx
add r8.xyz, r7.xyzx, r8.xyzx
min r9.xyzw, r6.xyzw, r7.xyzw
mov r5.w, r4.x
min r9.xyzw, r5.xyzw, r9.xyzw
max r6.xyzw, r6.xyzw, r7.xyzw
max r6.xyzw, r5.xyzw, r6.xyzw
ld_structured r1.zw, r3.z, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r7.xz, r1.zzwz
f16tof32 r7.yw, r2.zzzw
ld_structured r1.zw, r3.w, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r3.xz, r1.zzwz
f16tof32 r3.yw, r2.zzzw
add r8.xyz, r7.xyzx, r8.xyzx
add r8.xyz, r3.xyzx, r8.xyzx
min r10.xyzw, r3.xyzw, r7.xyzw
min r9.xyzw, r9.xyzw, r10.xyzw
max r3.xyzw, r3.xyzw, r7.xyzw
max r3.xyzw, r3.xyzw, r6.xyzw
iadd r6.xyzw, r0.zzzz, l(12, 20, 21, 22)
ld_structured r1.zw, r6.x, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r7.xz, r1.zzwz
f16tof32 r7.yw, r2.zzzw
ld_structured r1.zw, r6.y, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r10.xz, r1.zzwz
f16tof32 r10.yw, r2.zzzw
add r8.xyz, r7.xyzx, r8.xyzx
add r8.xyz, r10.xyzx, r8.xyzx
min r11.xyzw, r7.xyzw, r10.xyzw
min r9.xyzw, r9.xyzw, r11.xyzw
max r7.xyzw, r7.xyzw, r10.xyzw
max r3.xyzw, r3.xyzw, r7.xyzw
ld_structured r1.zw, r6.z, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r7.xz, r1.zzwz
f16tof32 r7.yw, r2.zzzw
ld_structured r1.zw, r6.w, l(0), g0.xxxy
ushr r2.zw, r1.zzzw, l(0, 0, 16, 16)
f16tof32 r6.xz, r1.zzwz
f16tof32 r6.yw, r2.zzzw
add r8.xyz, r7.xyzx, r8.xyzx
add r8.xyz, r6.xyzx, r8.xyzx
min r10.xyzw, r6.xyzw, r7.xyzw
min r9.xyzw, r9.xyzw, r10.xyzw
max r6.xyzw, r6.xyzw, r7.xyzw
max r3.xyzw, r3.xyzw, r6.xyzw
mul r6.xyz, r8.xyzx, l(0.111111112, 0.111111112, 0.111111112, 0.000000)
mul r2.yz, r2.xxyx, cb0[3].xxyx
and r7.xyz, r0.wwww, l(0x00003fff, 0x20000000, 0x10000000, 0)
utof r0.z, r7.x
mul r10.x, r0.z, cb1[10].z
ubfe r0.z, l(13), l(14), r0.w
utof r0.z, r0.z
mul r10.y, r0.z, cb1[10].w
mul r2.x, r2.y, cb0[4].x
add r1.zw, r10.xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
mad r1.zw, r1.zzzw, l(0.000000, 0.000000, 0.250000, 0.250000), r2.xxxz
mul r1.zw, r1.zzzw, cb0[3].zzzw
if_nz cb0[2].y
  div r2.xy, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[1].xyxx
  mad r2.zw, r1.zzzw, cb0[1].xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
  round_ni r2.zw, r2.zzzw
  add r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
  mad r5.yw, r1.wwwz, cb0[1].yyyx, -r2.wwwz
  mul r7.xw, r5.wwwy, r5.wwwy
  mul r10.xy, r5.wyww, r7.xwxx
  mad r10.zw, r7.wwwx, r5.yyyw, r5.yyyw
  mad r10.zw, -r10.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), r7.wwwx
  mul r11.xy, r7.wxww, l(2.500000, 2.500000, 0.000000, 0.000000)
  mad r10.xy, r10.yxyy, l(1.500000, 1.500000, 0.000000, 0.000000), -r11.xyxx
  add r10.xy, r10.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
  mad r5.yw, r7.xxxw, r5.wwwy, -r7.xxxw
  mul r7.xw, r5.yyyw, l(0.500000, 0.000000, 0.000000, 0.500000)
  add r11.xy, -r10.wzww, l(1.000000, 1.000000, 0.000000, 0.000000)
  add r11.xy, -r10.yxyy, r11.xyxx
  mad r5.yw, -r5.yyyw, l(0.000000, 0.500000, 0.000000, 0.500000), r11.xxxy
  add r10.xy, r5.wyww, r10.xyxx
  div r5.yw, r5.yyyw, r10.yyyx
  add r5.yw, r2.zzzw, r5.yyyw
  mul r11.zw, r2.xxxy, r2.zzzw
  mul r11.xy, r2.xyxx, r5.ywyy
  sample_l_aoffimmi_indexable(-1,-1,0)(texture2d)(float,float,float,float) r2.xyzw, r11.zwzz, t2.xyzw, s0, l(0.000000)
  mul r0.z, r10.z, r10.w
  sample_l_aoffimmi_indexable(0,-1,0)(texture2d)(float,float,float,float) r12.xyzw, r11.xwxx, t2.xyzw, s0, l(0.000000)
  mul r5.yw, r10.zzzw, r10.yyyx
  mul r12.xyzw, r5.yyyy, r12.xyzw
  mad r2.xyzw, r2.xyzw, r0.zzzz, r12.xyzw
  sample_l_aoffimmi_indexable(2,-1,0)(texture2d)(float,float,float,float) r12.xyzw, r11.zwzz, t2.xyzw, s0, l(0.000000)
  mul r10.zw, r10.zzzw, r7.xxxw
  mad r2.xyzw, r12.xyzw, r10.zzzz, r2.xyzw
  sample_l_aoffimmi_indexable(-1,0,0)(texture2d)(float,float,float,float) r12.xyzw, r11.zyzz, t2.xyzw, s0, l(0.000000)
  mad r2.xyzw, r12.xyzw, r5.wwww, r2.xyzw
  sample_l_aoffimmi_indexable(0,0,0)(texture2d)(float,float,float,float) r12.xyzw, r11.xyxx, t2.xyzw, s0, l(0.000000)
  mul r0.z, r10.x, r10.y
  mad r2.xyzw, r12.xyzw, r0.zzzz, r2.xyzw
  sample_l_aoffimmi_indexable(2,0,0)(texture2d)(float,float,float,float) r12.xyzw, r11.zyzz, t2.xyzw, s0, l(0.000000)
  mul r5.yw, r7.xxxw, r10.xxxy
  mad r2.xyzw, r12.xyzw, r5.yyyy, r2.xyzw
  sample_l_aoffimmi_indexable(-1,2,0)(texture2d)(float,float,float,float) r12.xyzw, r11.zwzz, t2.xyzw, s0, l(0.000000)
  mad r2.xyzw, r12.xyzw, r10.wwww, r2.xyzw
  sample_l_aoffimmi_indexable(0,2,0)(texture2d)(float,float,float,float) r10.xyzw, r11.xwxx, t2.xyzw, s0, l(0.000000)
  mad r2.xyzw, r10.xyzw, r5.wwww, r2.xyzw
  sample_l_aoffimmi_indexable(2,2,0)(texture2d)(float,float,float,float) r10.xyzw, r11.zwzz, t2.xyzw, s0, l(0.000000)
  mul r0.z, r7.w, r7.x
  mad r2.xyzw, r10.xyzw, r0.zzzz, r2.xyzw
else
  sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.zwzz, t2.xyzw, s0, l(0.000000)
endif
mad r0.xy, r0.xyxx, cb0[0].zwzz, -r1.zwzz

//Original
//movc r0.z, cb0[2].x, l(1), l(0)

//Custom. TAA disabled.
if_nz r26.z
movc r0.z, cb0[2].x, l(0), l(0)
else
movc r0.z, cb0[2].x, l(1), l(0)
endif

movc r1.z, r0.w, l(1), l(0)
and r0.z, r0.z, r1.z
ushr r0.w, r0.w, l(30)
ieq r1.z, r0.w, l(0)
ine r5.yw, r7.yyyz, l(0, 0, 0, 0)
not r1.w, r5.y
and r1.z, r1.w, r1.z
or r1.z, r1.z, r5.w
ieq r1.w, r1.z, l(0)
ieq r5.y, r5.y, l(-1)
and r1.w, r1.w, r5.y
max r7.xzw, r9.xxyz, r2.xxyz
min r7.xzw, r3.xxyz, r7.xxzw
mul r0.xy, r0.xyxx, l(1920.000000, 1080.000000, 0.000000, 0.000000)
dp2 r0.x, r0.xyxx, r0.xyxx
exp r0.x, -r0.x
max r0.x, r0.x, l(0.000000)
add r0.x, -r0.x, l(1.250000)
movc r0.y, r1.w, l(0.500000), l(1.000000)
mad r0.x, r0.x, r0.y, r9.w
movc r2.xyz, r0.zzzz, r2.xyzx, r6.xyzx
mov r4.zw, r5.zzzx
movc r2.xyz, r0.wwww, r2.xyzx, r4.wyzw
max_sat r0.y, r0.x, r2.w
add r5.yzw, -r2.xxyz, r7.xxzw
mad r2.xyz, r0.yyyy, r5.yzwy, r2.xyzx
eq r0.y, r3.w, l(1.000000)
eq r1.w, r2.w, l(1.000000)
or r1.w, r0.y, r1.w
movc r1.w, r1.w, l(0.800000), l(0.900000)
movc r1.w, r0.w, r1.w, l(0)
add r2.w, -r9.x, r3.x
add r2.w, -r2.w, l(1.000000)
mul r2.w, r2.w, r2.w

//Custom. Sharpening disabled.
if_nz r26.w
mov r0.w, l(0)
else
movc r0.w, r0.w, l(1.000000), l(0)
movc r0.w, r7.y, l(2.000000), r0.w
endif

mul r0.w, r0.w, cb0[2].z
mul r0.w, r1.w, r0.w
dp2_sat r0.w, r0.wwww, r2.wwww
mul r0.w, r0.w, l(0.250000)
mad r2.w, -r8.x, l(0.111111112), r5.x
mad_sat r2.w, r2.w, l(4.000000), r5.x
add r2.w, -r5.x, r2.w
mad r4.x, r0.w, r2.w, r5.x
and r0.w, r1.z, cb0[2].w
mad r3.xyz, r8.xyzx, l(0.111111112, 0.111111112, 0.111111112, 0.000000), -r4.xyzx
mad r3.xyz, r0.wwww, r3.xyzx, r4.xyzx
movc r0.z, r0.z, r1.w, l(0)
add r4.xyz, r2.xyzx, -r3.xyzx
mad r4.xyz, r0.zzzz, r4.xyzx, r3.xyzx
add r5.xyz, -r2.xyzx, r4.xyzx
lt r5.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r5.xyzx
movc r5.xyz, r5.xyzx, l(0.00146484375,0.00146484375,0.00146484375,0), l(-0.00146484375,-0.00146484375,-0.00146484375,0)
add r2.xyz, r2.xyzx, r5.xyzx
add r5.xyz, -r2.xyzx, r4.xyzx
add r6.xyz, r3.xyzx, -r4.xyzx
add r7.xyz, r5.xyzx, r6.xyzx
mul r7.xyz, -r5.xyzx, r7.xyzx
ge r7.xyz, r7.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r5.xyz, r5.xyzx, r6.xyzx
ge r5.xyz, r5.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r3.xyz, r5.xyzx, r4.xyzx, r3.xyzx
movc r2.xyz, r7.xyzx, r2.xyzx, r3.xyzx
if_nz cb0[4].y
  mov r2.w, l(1.000000)
else
  movc r2.w, r0.y, l(1.000000), r0.x
endif
store_uav_typed u0.xyzw, r1.xyyy, r2.xyzw
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v1.3.16 on Wed May 26 22:45:34 2021
// groupshared struct { float val[2]; } g0[100];
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// Texture2D<uint4> t0 : register(t0);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[11];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[5];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main)
// {
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture2d (float,float,float,float) u0
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 8, 8, 1
//   r0.xy = (uint2)vThreadGroupID.xy << int2(3,3);
//   r0.xy = (int2)r0.xy + int2(-1,-1);
//   r0.z = mad((int)vThreadIDInGroup.y, 10, (int)vThreadIDInGroup.x);
//   r1.xy = (int2)vThreadIDInGroup.xy + (int2)r0.xy;
//   r1.zw = float2(0,0);
//   r1.xyzw = t1.Load(r1.xyz).xyzw;
//   r2.xyz = float3(0.25,0.5,-0.25) * r1.xyx;
//   r2.xy = r2.xz + r2.yy;
//   r0.w = r1.z * 0.25 + r2.x;
//   r1.x = dot(r1.xz, float2(0.5,-0.5));
//   r1.y = r1.z * -0.25 + r2.y;
//   r1.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5);
//   r0.w = f32tof16(r0.w);
//   r1.xy = f32tof16(r1.xy);
//   r2.x = mad((int)r1.x, 0x00010000, (int)r0.w);
//   r0.w = f32tof16(r1.w);
//   r2.y = mad((int)r0.w, 0x00010000, (int)r1.y);
//   g0[r0.z].val[0/4] = r2.x;
//   g0[r0.z].val[0/4+1] = r2.y;
//   bitmask.x = ((~(-1 << 3)) << 0) & 0xffffffff;  r1.x = (((uint)vThreadIDInGroup.x << 0) & bitmask.x) | ((uint)8 & ~bitmask.x);
//   bitmask.y = ((~(-1 << 31)) << 0) & 0xffffffff;  r1.y = (((uint)vThreadIDInGroup.y << 0) & bitmask.y) | ((uint)0 & ~bitmask.y);
//   bitmask.z = ((~(-1 << 1)) << 0) & 0xffffffff;  r1.z = (((uint)vThreadIDInGroup.x << 0) & bitmask.z) | ((uint)8 & ~bitmask.z);
//   bitmask.w = ((~(-1 << 1)) << 0) & 0xffffffff;  r1.w = (((uint)vThreadIDInGroup.y << 0) & bitmask.w) | ((uint)8 & ~bitmask.w);
//   r2.xy = cmp((int2)vThreadIDInGroup.xx >= int2(2,4));
//   r2.zw = (int2)vThreadIDInGroup.yx + int2(0,6);
//   r1.xy = r2.xx ? r2.zw : r1.xy;
//   r1.xy = r2.yy ? r1.zw : r1.xy;
//   r0.w = mad((int)r1.y, 10, (int)r1.x);
//   r1.xy = (int2)r1.xy + (int2)r0.xy;
//   r1.zw = float2(0,0);
//   r1.xyzw = t1.Load(r1.xyz).xyzw;
//   r2.xyz = float3(0.25,0.5,-0.25) * r1.xyx;
//   r0.xy = r2.xz + r2.yy;
//   r0.x = r1.z * 0.25 + r0.x;
//   r1.x = dot(r1.xz, float2(0.5,-0.5));
//   r1.y = r1.z * -0.25 + r0.y;
//   r1.xy = r1.xy * float2(0.5,0.5) + float2(0.5,0.5);
//   r0.x = f32tof16(r0.x);
//   r1.xy = f32tof16(r1.xy);
//   r0.x = mad((int)r1.x, 0x00010000, (int)r0.x);
//   r1.x = f32tof16(r1.w);
//   r0.y = mad((int)r1.x, 0x00010000, (int)r1.y);
//   g0[r0.w].val[0/4] = r0.x;
//   g0[r0.w].val[0/4+1] = r0.y;
//   GroupMemoryBarrierWithGroupSync();
//   r1.xy = mad((int2)vThreadGroupID.xy, int2(8,8), (int2)vThreadIDInGroup.xy);
//   r0.xy = (int2)r1.xy;
//   r0.xy = float2(0.5,0.5) + r0.xy;
//   r2.xy = cb0[0].zw * r0.xy;
//   r3.xyzw = (int4)r0.zzzz + int4(11,1,2,10);
//   r2.z = g0[r3.x].val[0/4];
//   r2.w = g0[r3.x].val[0/4+1];
//   r4.xy = (uint2)r2.zw >> int2(16,16);
//   r5.xz = f16tof32(r2.zw);
//   r1.zw = float2(0,0);
//   r0.w = t0.Load(r1.xyz).x;
//   r1.z = g0[r3.x].val[0/4];
//   r1.z = (uint)r1.z >> 16;
//   r5.y = f16tof32(r1.z);
//   r4.xy = f16tof32(r4.yx);
//   r1.z = g0[r0.z].val[0/4];
//   r1.w = g0[r0.z].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r6.xz = f16tof32(r1.zw);
//   r6.yw = f16tof32(r2.zw);
//   r1.z = g0[r3.y].val[0/4];
//   r1.w = g0[r3.y].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r7.xz = f16tof32(r1.zw);
//   r7.yw = f16tof32(r2.zw);
//   r8.xyz = r6.xyz + r5.xyz;
//   r8.xyz = r8.xyz + r7.xyz;
//   r9.xyzw = min(r7.xyzw, r6.xyzw);
//   r5.w = r4.x;
//   r9.xyzw = min(r9.xyzw, r5.xyzw);
//   r6.xyzw = max(r7.xyzw, r6.xyzw);
//   r6.xyzw = max(r6.xyzw, r5.xyzw);
//   r1.z = g0[r3.z].val[0/4];
//   r1.w = g0[r3.z].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r7.xz = f16tof32(r1.zw);
//   r7.yw = f16tof32(r2.zw);
//   r1.z = g0[r3.w].val[0/4];
//   r1.w = g0[r3.w].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r3.xz = f16tof32(r1.zw);
//   r3.yw = f16tof32(r2.zw);
//   r8.xyz = r8.xyz + r7.xyz;
//   r8.xyz = r8.xyz + r3.xyz;
//   r10.xyzw = min(r7.xyzw, r3.xyzw);
//   r9.xyzw = min(r10.xyzw, r9.xyzw);
//   r3.xyzw = max(r7.xyzw, r3.xyzw);
//   r3.xyzw = max(r6.xyzw, r3.xyzw);
//   r6.xyzw = (int4)r0.zzzz + int4(12,20,21,22);
//   r1.z = g0[r6.x].val[0/4];
//   r1.w = g0[r6.x].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r7.xz = f16tof32(r1.zw);
//   r7.yw = f16tof32(r2.zw);
//   r1.z = g0[r6.y].val[0/4];
//   r1.w = g0[r6.y].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r10.xz = f16tof32(r1.zw);
//   r10.yw = f16tof32(r2.zw);
//   r8.xyz = r8.xyz + r7.xyz;
//   r8.xyz = r8.xyz + r10.xyz;
//   r11.xyzw = min(r10.xyzw, r7.xyzw);
//   r9.xyzw = min(r11.xyzw, r9.xyzw);
//   r7.xyzw = max(r10.xyzw, r7.xyzw);
//   r3.xyzw = max(r7.xyzw, r3.xyzw);
//   r1.z = g0[r6.z].val[0/4];
//   r1.w = g0[r6.z].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r7.xz = f16tof32(r1.zw);
//   r7.yw = f16tof32(r2.zw);
//   r1.z = g0[r6.w].val[0/4];
//   r1.w = g0[r6.w].val[0/4+1];
//   r2.zw = (uint2)r1.zw >> int2(16,16);
//   r6.xz = f16tof32(r1.zw);
//   r6.yw = f16tof32(r2.zw);
//   r8.xyz = r8.xyz + r7.xyz;
//   r8.xyz = r8.xyz + r6.xyz;
//   r10.xyzw = min(r7.xyzw, r6.xyzw);
//   r9.xyzw = min(r10.xyzw, r9.xyzw);
//   r6.xyzw = max(r7.xyzw, r6.xyzw);
//   r3.xyzw = max(r6.xyzw, r3.xyzw);
//   r6.xyz = float3(0.111111112,0.111111112,0.111111112) * r8.xyz;
//   r2.yz = cb0[3].xy * r2.xy;
//   r7.xyz = (int3)r0.www & int3(0x3fff,0x20000000,0x10000000);
//   r0.z = (uint)r7.x;
//   r10.x = cb1[10].z * r0.z;
//   if (13 == 0) r0.z = 0; else if (13+14 < 32) {   r0.z = (uint)r0.w << (32-(13 + 14)); r0.z = (uint)r0.z >> (32-13);  } else r0.z = (uint)r0.w >> 14;
//   r0.z = (uint)r0.z;
//   r10.y = cb1[10].w * r0.z;
//   r2.x = cb0[4].x * r2.y;
//   r1.zw = float2(-0.5,-0.5) + r10.xy;
//   r1.zw = r1.zw * float2(0.25,0.25) + r2.xz;
//   r1.zw = cb0[3].zw * r1.zw;
//   if (cb0[2].y != 0) {
//     r2.xy = float2(1,1) / cb0[1].xy;
//     r2.zw = r1.zw * cb0[1].xy + float2(-0.5,-0.5);
//     r2.zw = floor(r2.zw);
//     r2.zw = float2(0.5,0.5) + r2.zw;
//     r5.yw = r1.wz * cb0[1].yx + -r2.wz;
//     r7.xw = r5.wy * r5.wy;
//     r10.xy = r7.xw * r5.wy;
//     r10.zw = r7.wx * r5.yw + r5.yw;
//     r10.zw = -r10.zw * float2(0.5,0.5) + r7.wx;
//     r11.xy = float2(2.5,2.5) * r7.wx;
//     r10.xy = r10.yx * float2(1.5,1.5) + -r11.xy;
//     r10.xy = float2(1,1) + r10.xy;
//     r5.yw = r7.xw * r5.wy + -r7.xw;
//     r7.xw = float2(0.5,0.5) * r5.yw;
//     r11.xy = float2(1,1) + -r10.wz;
//     r11.xy = r11.xy + -r10.yx;
//     r5.yw = -r5.yw * float2(0.5,0.5) + r11.xy;
//     r10.xy = r10.xy + r5.wy;
//     r5.yw = r5.yw / r10.yx;
//     r5.yw = r5.yw + r2.zw;
//     r11.zw = r2.zw * r2.xy;
//     r11.xy = r5.yw * r2.xy;
//     r2.xyzw = t2.SampleLevel(s0_s, r11.zw, 0, int2(-1, -1)).xyzw;
//     r0.z = r10.w * r10.z;
//     r12.xyzw = t2.SampleLevel(s0_s, r11.xw, 0, int2(0, -1)).xyzw;
//     r5.yw = r10.yx * r10.zw;
//     r12.xyzw = r12.xyzw * r5.yyyy;
//     r2.xyzw = r2.xyzw * r0.zzzz + r12.xyzw;
//     r12.xyzw = t2.SampleLevel(s0_s, r11.zw, 0, int2(2, -1)).xyzw;
//     r10.zw = r7.xw * r10.zw;
//     r2.xyzw = r12.xyzw * r10.zzzz + r2.xyzw;
//     r12.xyzw = t2.SampleLevel(s0_s, r11.zy, 0, int2(-1, 0)).xyzw;
//     r2.xyzw = r12.xyzw * r5.wwww + r2.xyzw;
//     r12.xyzw = t2.SampleLevel(s0_s, r11.xy, 0, int2(0, 0)).xyzw;
//     r0.z = r10.y * r10.x;
//     r2.xyzw = r12.xyzw * r0.zzzz + r2.xyzw;
//     r12.xyzw = t2.SampleLevel(s0_s, r11.zy, 0, int2(2, 0)).xyzw;
//     r5.yw = r10.xy * r7.xw;
//     r2.xyzw = r12.xyzw * r5.yyyy + r2.xyzw;
//     r12.xyzw = t2.SampleLevel(s0_s, r11.zw, 0, int2(-1, 2)).xyzw;
//     r2.xyzw = r12.xyzw * r10.wwww + r2.xyzw;
//     r10.xyzw = t2.SampleLevel(s0_s, r11.xw, 0, int2(0, 2)).xyzw;
//     r2.xyzw = r10.xyzw * r5.wwww + r2.xyzw;
//     r10.xyzw = t2.SampleLevel(s0_s, r11.zw, 0, int2(2, 2)).xyzw;
//     r0.z = r7.x * r7.w;
//     r2.xyzw = r10.xyzw * r0.zzzz + r2.xyzw;
//   } else {
//     r2.xyzw = t2.SampleLevel(s0_s, r1.zw, 0).xyzw;
//   }
//   r0.xy = r0.xy * cb0[0].zw + -r1.zw;
//   r0.z = cb0[2].x ? 1 : 0;
//   r1.z = r0.w ? 1 : 0;
//   r0.z = (int)r0.z & (int)r1.z;
//   r0.w = (uint)r0.w >> 30;
//   r1.z = cmp((int)r0.w == 0);
//   r5.yw = cmp((int2)r7.yz != int2(0,0));
//   r1.w = ~(int)r5.y;
//   r1.z = r1.z ? r1.w : 0;
//   r1.z = (int)r1.z | (int)r5.w;
//   r1.w = cmp((int)r1.z == 0);
//   r5.y = cmp((int)r5.y == -1);
//   r1.w = r1.w ? r5.y : 0;
//   r7.xzw = max(r2.xyz, r9.xyz);
//   r7.xzw = min(r7.xzw, r3.xyz);
//   r0.xy = float2(1920,1080) * r0.xy;
//   r0.x = dot(r0.xy, r0.xy);
//   r0.x = exp2(-r0.x);
//   r0.x = max(0, r0.x);
//   r0.x = 1.25 + -r0.x;
//   r0.y = r1.w ? 0.5 : 1;
//   r0.x = r0.x * r0.y + r9.w;
//   r2.xyz = r0.zzz ? r2.xyz : r6.xyz;
//   r4.zw = r5.zx;
//   r2.xyz = r0.www ? r2.xyz : r4.wyz;
//   r0.y = saturate(max(r2.w, r0.x));
//   r5.yzw = r7.xzw + -r2.xyz;
//   r2.xyz = r0.yyy * r5.yzw + r2.xyz;
//   r0.y = cmp(r3.w == 1.000000);
//   r1.w = cmp(r2.w == 1.000000);
//   r1.w = (int)r0.y | (int)r1.w;
//   r1.w = r1.w ? 0.800000012 : 0.899999976;
//   r1.w = r0.w ? r1.w : 0;
//   r2.w = r3.x + -r9.x;
//   r2.w = 1 + -r2.w;
//   r2.w = r2.w * r2.w;
//   r0.w = r0.w ? 1 : 0;
//   r0.w = r7.y ? 2 : r0.w;
//   r0.w = cb0[2].z * r0.w;
//   r0.w = r0.w * r1.w;
//   r0.w = saturate(dot(r0.ww, r2.ww));
//   r0.w = 0.25 * r0.w;
//   r2.w = -r8.x * 0.111111112 + r5.x;
//   r2.w = saturate(r2.w * 4 + r5.x);
//   r2.w = r2.w + -r5.x;
//   r4.x = r0.w * r2.w + r5.x;
//   r0.w = r1.z ? cb0[2].w : 0;
//   r3.xyz = r8.xyz * float3(0.111111112,0.111111112,0.111111112) + -r4.xyz;
//   r3.xyz = r0.www * r3.xyz + r4.xyz;
//   r0.z = r0.z ? r1.w : 0;
//   r4.xyz = -r3.xyz + r2.xyz;
//   r4.xyz = r0.zzz * r4.xyz + r3.xyz;
//   r5.xyz = r4.xyz + -r2.xyz;
//   r5.xyz = cmp(float3(0,0,0) < r5.xyz);
//   r5.xyz = r5.xyz ? float3(0.00146484375,0.00146484375,0.00146484375) : float3(-0.00146484375,-0.00146484375,-0.00146484375);
//   r2.xyz = r5.xyz + r2.xyz;
//   r5.xyz = r4.xyz + -r2.xyz;
//   r6.xyz = -r4.xyz + r3.xyz;
//   r7.xyz = r6.xyz + r5.xyz;
//   r7.xyz = r7.xyz * -r5.xyz;
//   r7.xyz = cmp(r7.xyz >= float3(0,0,0));
//   r5.xyz = r6.xyz * r5.xyz;
//   r5.xyz = cmp(r5.xyz >= float3(0,0,0));
//   r3.xyz = r5.xyz ? r4.xyz : r3.xyz;
//   r2.xyz = r7.xyz ? r2.xyz : r3.xyz;
//   if (cb0[4].y != 0) {
//     r2.w = 1;
//   } else {
//     r2.w = r0.y ? 1 : r0.x;
//   }
// // No code for instruction (needs manual fix):
// store_uav_typed u0.xyzw, r1.xyyy, r2.xyzw
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// F:\SteamLibrary\steamapps\common\Days Gone\BendGame\Binaries\Win64\ShaderFixes\8d4275cd7ef879e4-cs_replace.txt(30,10): error X3000: syntax error: unexpected token ')'
/////////////////////////////////////////////////////////////////////////////
