//Screen space reflections PS 1.
// ---- Created with 3Dmigoto v1.3.16 on Thu Dec 15 20:19:37 2022
Texture2D<float4> t23 : register(t23);

Texture2D<float4> t5 : register(t5);

Texture2D<float4> t4 : register(t4);

Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<float4> t0 : register(t0);

SamplerState s11_s : register(s11);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb12 : register(b12)
{
  float4 cb12[231];
}

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




// 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,
  out float4 o1 : SV_Target1)
{
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r23,r30;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  float4 prev = StereoParams.Load(int3(2,0,0));
  
  r0.xy = (uint2)v0.xy;
  r1.xy = (uint2)r0.xy;
  r1.zw = float2(0.5,0.5) + r1.xy;
  r2.xy = (int2)r0.xy;
  r2.xy = cb3[8].zw * r2.xy;
  r2.xy = (uint2)r2.xy;
  r2.zw = float2(0,0);
  r2.xy = t0.Load(r2.xyz).zw;
  r2.y = cmp(0 < r2.y);
  if (r2.y != 0) {
    r2.yz = cb3[5].zw * r1.zw;
    r2.x = cmp(0.5 < r2.x);
    r0.z = 0;
    r0.z = t2.Load(r0.xyz).x;
	
	r30.x = r0.z;
	
    r1.xy = cb3[8].zw * r1.xy;
    r3.xy = (uint2)r1.xy;
    r3.zw = float2(0,0);
    r1.x = t4.Load(r3.xyz).x;
    r1.y = cmp(cb12[22].y == 1.000000);
    r2.w = max(r1.x, r0.z);
    r0.z = min(r1.x, r0.z);
    r0.z = r1.y ? r2.w : r0.z;
    r1.xy = r1.zw / cb3[0].xy;
    r1.xy = r1.xy * float2(2,2) + float2(-1,-1);
	
	//r23.xyzw = cb12[208].xyzw * -r1.yyyy;
    //r23.xyzw = cb12[207].xyzw * r1.xxxx + r23.xyzw;
    //r23.xyzw = cb12[209].xyzw * r0.zzzz + r23.xyzw;
    //r23.xyzw = cb12[210].xyzw + r23.xyzw;
    //r23.xyz = r23.xyz / r23.www;
	r1.x-=stereo.x;
	
    r3.xyzw = cb12[208].xyzw * -r1.yyyy;
    r3.xyzw = cb12[207].xyzw * r1.xxxx + r3.xyzw;
    r3.xyzw = cb12[209].xyzw * r0.zzzz + r3.xyzw;
    r3.xyzw = cb12[210].xyzw + r3.xyzw;
    r3.xyz = r3.xyz / r3.www;
    r0.z = cmp(cb12[0].z >= r3.z);
    r0.z = r0.z ? 1 : -1;
    r4.xy = float2(0,0);
    r4.z = (int)r0.z;
    r5.xyz = cb12[2].xyz * r3.yyy;
    r5.xyz = cb12[1].xyz * r3.xxx + r5.xyz;
    r5.xyz = cb12[3].xyz * r3.zzz + r5.xyz;
    r5.xyz = cb12[4].xyz + r5.xyz;
    r6.xyz = -cb12[0].xyz + r3.xyz;
    r0.z = dot(r6.xyz, r6.xyz);
    r0.z = rsqrt(r0.z);
    r6.xyz = r6.xyz * r0.zzz;
    r0.z = dot(r6.zz, r4.zz);
    r4.xyz = r4.xyz * -r0.zzz + r6.xyz;
    r6.xyz = cb12[2].xyz * r4.yyy;
    r6.xyz = cb12[1].xyz * r4.xxx + r6.xyz;
    r6.xyz = cb12[3].xyz * r4.zzz + r6.xyz;
    r6.xyw = r6.xyz * float3(100,100,100) + r5.xyz;
    r7.xyz = cb12[14].xyw * r5.yyy;
    r5.xyw = cb12[13].xyw * r5.xxx + r7.xyz;
    r5.xyw = cb12[15].xyw * r5.zzz + r5.xyw;
    r5.xyw = cb12[16].xyw + r5.xyw;
	
	if(prev.x>5.0) {
	  r5.x+=stereo.x*r5.w;
	} else {
	  r5.x+=prev.x*r5.w;
	}
	
    r1.xy = r5.xy / r5.ww;
    r7.xyzw = float4(0.5,-0.5,0.5,0.5) * cb3[0].xyxy;
    r7.xyzw = r7.xyzw / cb3[0].zwzw;
    r8.xy = r1.xy * r7.xy + r7.zw;
    r5.xyw = cb12[14].xyw * r6.yyy;
    r5.xyw = cb12[13].xyw * r6.xxx + r5.xyw;
    r5.xyw = cb12[15].xyw * r6.www + r5.xyw;
    r5.xyw = cb12[16].xyw + r5.xyw;
	
	if(prev.x>5.0) {
	  r5.x+=stereo.x*r5.w;
	} else {
	  r5.x+=prev.x*r5.w;
	}
	
    r5.xy = r5.xy / r5.ww;
    r9.yz = r5.xy * r7.xy + r7.zw;
    r0.z = cb12[21].x * r5.z;
    r0.z = 1 / r0.z;
    r1.y = cb12[21].y / cb12[21].x;
    r8.z = -r1.y + r0.z;
    r0.z = cb12[21].x * r6.w;
    r0.z = 1 / r0.z;
    r9.w = r0.z + -r1.y;
    r5.yzw = r9.yzw + -r8.xyz;
    r0.z = 1 + -abs(r1.x);
    r6.xyw = float3(2,0.5,0.5) / cb3[0].xzw;
    r0.z = -r6.x + r0.z;
    r1.x = 4 * r0.z;
    r1.x = saturate(r1.x);
    r5.x = r5.y * r1.x;
    r1.x = cmp(abs(r5.x) >= abs(r5.z));
    r9.xy = cb3[0].zw * abs(r5.xz);
    r1.x = r1.x ? r9.x : r9.y;
    r1.x = 1 / r1.x;
    r9.xyz = r5.xzw * r1.xxx;
    r1.y = cmp(0 < r6.z);
    r2.w = max(cb3[0].x, cb3[0].y);
    r2.w = trunc(r2.w);
    r10.xyz = cmp(float3(0,0,0) < r9.xyz);
    r6.xz = cb3[0].xy / cb3[0].zw;
	
	//Sides.
	r6.x+=stereo.x*0.5;
	//r6.x+=stereo.x*(1-stereo.y*r30.x)*0.5;
	
    r11.xy = r6.xz + -r8.xy;
    r10.xy = r10.xy ? r11.xy : r8.xy;
    r10.xy = r10.xy / abs(r9.xy);
    r2.w = min(r10.x, r2.w);
    r2.w = trunc(r2.w);
    r2.w = min(r2.w, r10.y);
    r2.w = trunc(r2.w);
    r4.w = 1 + -r8.z;
    r4.w = r10.z ? r4.w : 0;
    r4.w = r4.w / abs(r9.z);
    r4.w = 3 + r4.w;
    r2.w = min(r4.w, r2.w);
    r2.w = (int)r2.w;
    r1.y = r1.y ? r2.w : 0;
    r2.w = abs(r9.z) + abs(r9.z);
    r10.xy = float2(-1.5,-1.5) + cb3[0].xy;
    r10.zw = r10.xy / cb3[0].zw;
	
	r10.z+=stereo.x*0.5;
	
    r11.xy = r8.xy;
    r4.w = r8.z;
    r5.y = 0;
    r6.x = 1;
    while (true) {
      r8.w = cmp((int)r6.x >= (int)r1.y);
      if (r8.w != 0) break;
      r8.w = (int)r6.x;
      r12.xyz = r8.www * r9.xyz + r8.xyz;
      r13.xyz = r5.xzw * r1.xxx + r12.xyz;
      r14.xyz = r5.xzw * r1.xxx + r13.xyz;
      r15.xyw = r5.xzw * r1.xxx + r14.xyz;
	  
      r11.zw = min(r12.xy, r10.zw);
      r8.w = t2.SampleLevel(s0_s, r11.zw, 0).x;
      r16.x = r8.w * cb12[22].x + cb12[22].y;
      r11.zw = min(r13.xy, r10.zw);
      r8.w = t2.SampleLevel(s0_s, r11.zw, 0).x;
      r16.y = r8.w * cb12[22].x + cb12[22].y;
      r11.zw = min(r14.xy, r10.zw);
      r8.w = t2.SampleLevel(s0_s, r11.zw, 0).x;
      r16.z = r8.w * cb12[22].x + cb12[22].y;
      r11.zw = min(r15.xy, r10.zw);
      r8.w = t2.SampleLevel(s0_s, r11.zw, 0).x;
      r16.w = r8.w * cb12[22].x + cb12[22].y;
      r15.x = r12.z;
      r15.y = r13.z;
      r15.z = r14.z;
	  //r15.x-=stereo.x*1280;
      r12.xyzw = r15.xyzw + -r16.xyzw;
      r12.xyzw = -abs(r9.zzzz) * float4(2,2,2,2) + r12.xyzw;
      r12.xyzw = cmp(abs(r12.xyzw) < r2.wwww);
      r11.zw = (int2)r12.zw | (int2)r12.xy;
      r8.w = (int)r11.w | (int)r11.z;
      if (r8.w != 0) {
        r8.w = r12.z ? 2 : 3;
        r8.w = r12.y ? 1 : r8.w;
        r8.w = r12.x ? 0 : r8.w;
        r8.w = (int)r6.x + (int)r8.w;
        r8.w = (int)r8.w;
        r12.xyz = r8.www * r9.xyz + r8.xyz;
        r5.y = -1;
		
        r11.xy = r12.xy;
        r4.w = r12.z;
        break;
      }
      r6.x = (int)r6.x + 4;
      r5.y = 0;
    }
    if (r5.y != 0) {
      r1.x = r11.y / r6.z;
      r1.x = -0.5 + r1.x;
      r1.x = -abs(r1.x) * 2 + 1;
      r1.x = max(0, r1.x);
      r1.x = r1.x + r1.x;
      r1.x = min(1, r1.x);
      r1.x = 1 + -r1.x;
      r1.x = -r1.x * r1.x + 1;
      r5.xy = r11.xy / cb3[3].yy;
      r5.zw = float2(0.5,0.5) / cb3[0].xy;
      r6.xz = cb3[3].yy * cb3[0].zw;
      r6.xz = r10.xy / r6.xz;
      r5.xy = max(r5.xy, r5.zw);
      r5.xy = min(r5.xy, r6.xz);
      r5.xyz = t1.SampleLevel(s0_s, r5.xy, 0).xyz;
      r1.y = 1;
    } else {
      r11.xy = float2(0,0);
      r4.w = 0;
      r5.xyz = float3(0,0,0);
      r1.xy = float2(0,0);
    }
    if (r2.x != 0) {
      r2.xw = float2(-0.5,0.5) * r4.xy;
      r5.w = 1 + abs(r4.z);
      r5.w = rcp(r5.w);
      r2.xw = r2.xw * r5.ww + float2(0.5,0.5);
      r2.xw = cb3[4].xy * r2.xw;
      r6.xz = float2(-0.5,-0.5) + cb3[4].xy;
      r2.xw = max(float2(0.5,0.5), r2.xw);
      r2.xw = min(r2.xw, r6.xz);
      r2.xw = r2.xw / cb3[4].zw;
      r8.xyz = t5.SampleLevel(s1_s, r2.xw, 0).xyz;
    } else {
      r9.xyz = cb12[115].xyz * r3.yyy;
      r9.xyz = cb12[114].xyz * r3.xxx + r9.xyz;
      r9.xyz = cb12[116].xyz * r3.zzz + r9.xyz;
      r9.xyz = cb12[117].xyz + r9.xyz;
      r9.xyz = float3(1,1,1) + -abs(r9.xyz);
      r12.xyz = cmp(float3(0,0,0) < r9.xyz);
      r2.x = r12.y ? r12.x : 0;
      r2.x = r12.z ? r2.x : 0;
      if (r2.x != 0) {
        r9.xyz = saturate(cb12[113].xyz * r9.xyz);
        r2.x = 0.999989986 * cb12[112].x;
        r2.w = r9.x * r9.y;
        r2.w = r2.w * r9.z;
        r5.w = r2.x * r2.w;
        r2.x = r2.x * r2.w + 9.99999975e-06;
        r2.w = cb12[118].x * r5.w;
        r9.xyz = cb12[120].xyz * r4.yyy;
        r9.xyz = cb12[119].xyz * r4.xxx + r9.xyz;
        r9.xyz = cb12[121].xyz * r4.zzz + r9.xyz;
        r12.xyz = cb12[120].xyz * r3.yyy;
        r12.xyz = cb12[119].xyz * r3.xxx + r12.xyz;
        r12.xyz = cb12[121].xyz * r3.zzz + r12.xyz;
        r12.xyz = cb12[122].xyz + r12.xyz;
        r9.xyz = float3(1,1,1) / r9.xyz;
        r13.xyz = -r12.xyz * r9.xyz + r9.xyz;
        r9.xyz = -r12.xyz * r9.xyz + -r9.xyz;
        r9.xyz = max(r13.xyz, r9.xyz);
        r5.w = min(r9.y, r9.z);
        r5.w = min(r9.x, r5.w);
        r9.xyz = r4.xyz * r5.www + r3.xyz;
        r9.xyz = -cb12[112].yzw + r9.xyz;
        r5.w = dot(r9.xyz, r9.xyz);
        r5.w = rsqrt(r5.w);
        r9.xyw = r9.xyz * r5.www;
        r6.x = cmp(r9.w < 0);
        r6.z = r6.x ? 0.000000 : 0;
        r12.xyzw = float4(0.5,-0.5,-0.5,0.5) * r9.xyxy;
        r8.w = -r9.z * r5.w + 1;
        r8.w = rcp(r8.w);
        r8.w = max(-3.40282347e+38, r8.w);
        r8.w = min(3.40282347e+38, r8.w);
        r9.xy = r12.xy * r8.ww + float2(0.5,0.5);
        r5.w = r9.z * r5.w + 1;
        r5.w = rcp(r5.w);
        r5.w = max(-3.40282347e+38, r5.w);
        r5.w = min(3.40282347e+38, r5.w);
        r9.zw = r12.zw * r5.ww + float2(0.5,0.5);
        r9.xy = r6.xx ? r9.xy : r9.zw;
        r9.xy = r9.xy * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
        r12.y = asint(cb12[123].x);
        r12.z = (int)r6.z;
        r12.xw = float2(0,0);
        r6.xz = r12.zw + r9.xy;
        r6.xz = r12.xy + r6.xz;
        r6.xz = float2(0.5,0.142857149) * r6.xz;
        r9.xyz = t23.SampleLevel(s11_s, r6.xz, 0).xyz;
        r9.xyz = r9.xyz * r2.www;
      } else {
        r9.xyz = float3(0,0,0);
        r2.x = 9.99999975e-06;
      }
      r2.w = cmp(r2.x < 0.999000013);
      if (r2.w != 0) {
        r12.xyz = cb12[127].xyz * r3.yyy;
        r12.xyz = cb12[126].xyz * r3.xxx + r12.xyz;
        r12.xyz = cb12[128].xyz * r3.zzz + r12.xyz;
        r12.xyz = cb12[129].xyz + r12.xyz;
        r12.xyz = float3(1,1,1) + -abs(r12.xyz);
        r13.xyz = cmp(float3(0,0,0) < r12.xyz);
        r5.w = r13.y ? r13.x : 0;
        r5.w = r13.z ? r5.w : 0;
        if (r5.w != 0) {
          r12.xyz = saturate(cb12[125].xyz * r12.xyz);
          r5.w = 1 + -r2.x;
          r5.w = cb12[124].x * r5.w;
          r6.x = r12.x * r12.y;
          r6.x = r6.x * r12.z;
          r6.z = r6.x * r5.w;
          r2.x = r5.w * r6.x + r2.x;
          r5.w = cb12[130].x * r6.z;
          r12.xyz = cb12[132].xyz * r4.yyy;
          r12.xyz = cb12[131].xyz * r4.xxx + r12.xyz;
          r12.xyz = cb12[133].xyz * r4.zzz + r12.xyz;
          r13.xyz = cb12[132].xyz * r3.yyy;
          r13.xyz = cb12[131].xyz * r3.xxx + r13.xyz;
          r13.xyz = cb12[133].xyz * r3.zzz + r13.xyz;
          r13.xyz = cb12[134].xyz + r13.xyz;
          r12.xyz = float3(1,1,1) / r12.xyz;
          r14.xyz = -r13.xyz * r12.xyz + r12.xyz;
          r12.xyz = -r13.xyz * r12.xyz + -r12.xyz;
          r12.xyz = max(r14.xyz, r12.xyz);
          r6.x = min(r12.y, r12.z);
          r6.x = min(r12.x, r6.x);
          r12.xyz = r4.xyz * r6.xxx + r3.xyz;
          r12.xyz = -cb12[124].yzw + r12.xyz;
          r6.x = dot(r12.xyz, r12.xyz);
          r6.x = rsqrt(r6.x);
          r12.xyw = r12.xyz * r6.xxx;
          r6.z = cmp(r12.w < 0);
          r8.w = r6.z ? 0.000000 : 0;
          r13.xyzw = float4(0.5,-0.5,-0.5,0.5) * r12.xyxy;
          r9.w = -r12.z * r6.x + 1;
          r9.w = rcp(r9.w);
          r9.w = max(-3.40282347e+38, r9.w);
          r9.w = min(3.40282347e+38, r9.w);
          r10.xy = r13.xy * r9.ww + float2(0.5,0.5);
          r6.x = r12.z * r6.x + 1;
          r6.x = rcp(r6.x);
          r6.x = max(-3.40282347e+38, r6.x);
          r6.x = min(3.40282347e+38, r6.x);
          r11.zw = r13.zw * r6.xx + float2(0.5,0.5);
          r6.xz = r6.zz ? r10.xy : r11.zw;
          r6.xz = r6.xz * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
          r12.y = asint(cb12[135].x);
          r12.z = (int)r8.w;
          r12.xw = float2(0,0);
          r6.xz = r12.zw + r6.xz;
          r6.xz = r12.xy + r6.xz;
          r6.xz = float2(0.5,0.142857149) * r6.xz;
          r12.xyz = t23.SampleLevel(s11_s, r6.xz, 0).xyz;
          r9.xyz = r5.www * r12.xyz + r9.xyz;
        }
      }
      r5.w = cmp(r2.x < 0.999000013);
      r2.w = r2.w ? r5.w : 0;
      if (r2.w != 0) {
        r12.xyz = cb12[139].xyz * r3.yyy;
        r12.xyz = cb12[138].xyz * r3.xxx + r12.xyz;
        r12.xyz = cb12[140].xyz * r3.zzz + r12.xyz;
        r12.xyz = cb12[141].xyz + r12.xyz;
        r12.xyz = float3(1,1,1) + -abs(r12.xyz);
        r13.xyz = cmp(float3(0,0,0) < r12.xyz);
        r5.w = r13.y ? r13.x : 0;
        r5.w = r13.z ? r5.w : 0;
        if (r5.w != 0) {
          r12.xyz = saturate(cb12[137].xyz * r12.xyz);
          r5.w = 1 + -r2.x;
          r5.w = cb12[136].x * r5.w;
          r6.x = r12.x * r12.y;
          r6.x = r6.x * r12.z;
          r6.z = r6.x * r5.w;
          r2.x = r5.w * r6.x + r2.x;
          r5.w = cb12[142].x * r6.z;
          r12.xyz = cb12[144].xyz * r4.yyy;
          r12.xyz = cb12[143].xyz * r4.xxx + r12.xyz;
          r12.xyz = cb12[145].xyz * r4.zzz + r12.xyz;
          r13.xyz = cb12[144].xyz * r3.yyy;
          r13.xyz = cb12[143].xyz * r3.xxx + r13.xyz;
          r13.xyz = cb12[145].xyz * r3.zzz + r13.xyz;
          r13.xyz = cb12[146].xyz + r13.xyz;
          r12.xyz = float3(1,1,1) / r12.xyz;
          r14.xyz = -r13.xyz * r12.xyz + r12.xyz;
          r12.xyz = -r13.xyz * r12.xyz + -r12.xyz;
          r12.xyz = max(r14.xyz, r12.xyz);
          r6.x = min(r12.y, r12.z);
          r6.x = min(r12.x, r6.x);
          r12.xyz = r4.xyz * r6.xxx + r3.xyz;
          r12.xyz = -cb12[136].yzw + r12.xyz;
          r6.x = dot(r12.xyz, r12.xyz);
          r6.x = rsqrt(r6.x);
          r12.xyw = r12.xyz * r6.xxx;
          r6.z = cmp(r12.w < 0);
          r8.w = r6.z ? 0.000000 : 0;
          r13.xyzw = float4(0.5,-0.5,-0.5,0.5) * r12.xyxy;
          r9.w = -r12.z * r6.x + 1;
          r9.w = rcp(r9.w);
          r9.w = max(-3.40282347e+38, r9.w);
          r9.w = min(3.40282347e+38, r9.w);
          r10.xy = r13.xy * r9.ww + float2(0.5,0.5);
          r6.x = r12.z * r6.x + 1;
          r6.x = rcp(r6.x);
          r6.x = max(-3.40282347e+38, r6.x);
          r6.x = min(3.40282347e+38, r6.x);
          r11.zw = r13.zw * r6.xx + float2(0.5,0.5);
          r6.xz = r6.zz ? r10.xy : r11.zw;
          r6.xz = r6.xz * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
          r12.y = asint(cb12[147].x);
          r12.z = (int)r8.w;
          r12.xw = float2(0,0);
          r6.xz = r12.zw + r6.xz;
          r6.xz = r12.xy + r6.xz;
          r6.xz = float2(0.5,0.142857149) * r6.xz;
          r12.xyz = t23.SampleLevel(s11_s, r6.xz, 0).xyz;
          r9.xyz = r5.www * r12.xyz + r9.xyz;
        }
      }
      r5.w = cmp(r2.x < 0.999000013);
      r2.w = r2.w ? r5.w : 0;
      if (r2.w != 0) {
        r12.xyz = cb12[151].xyz * r3.yyy;
        r12.xyz = cb12[150].xyz * r3.xxx + r12.xyz;
        r12.xyz = cb12[152].xyz * r3.zzz + r12.xyz;
        r12.xyz = cb12[153].xyz + r12.xyz;
        r12.xyz = float3(1,1,1) + -abs(r12.xyz);
        r13.xyz = cmp(float3(0,0,0) < r12.xyz);
        r5.w = r13.y ? r13.x : 0;
        r5.w = r13.z ? r5.w : 0;
        if (r5.w != 0) {
          r12.xyz = saturate(cb12[149].xyz * r12.xyz);
          r5.w = 1 + -r2.x;
          r5.w = cb12[148].x * r5.w;
          r6.x = r12.x * r12.y;
          r6.x = r6.x * r12.z;
          r6.z = r6.x * r5.w;
          r2.x = r5.w * r6.x + r2.x;
          r5.w = cb12[154].x * r6.z;
          r12.xyz = cb12[156].xyz * r4.yyy;
          r12.xyz = cb12[155].xyz * r4.xxx + r12.xyz;
          r12.xyz = cb12[157].xyz * r4.zzz + r12.xyz;
          r13.xyz = cb12[156].xyz * r3.yyy;
          r13.xyz = cb12[155].xyz * r3.xxx + r13.xyz;
          r13.xyz = cb12[157].xyz * r3.zzz + r13.xyz;
          r13.xyz = cb12[158].xyz + r13.xyz;
          r12.xyz = float3(1,1,1) / r12.xyz;
          r14.xyz = -r13.xyz * r12.xyz + r12.xyz;
          r12.xyz = -r13.xyz * r12.xyz + -r12.xyz;
          r12.xyz = max(r14.xyz, r12.xyz);
          r6.x = min(r12.y, r12.z);
          r6.x = min(r12.x, r6.x);
          r12.xyz = r4.xyz * r6.xxx + r3.xyz;
          r12.xyz = -cb12[148].yzw + r12.xyz;
          r6.x = dot(r12.xyz, r12.xyz);
          r6.x = rsqrt(r6.x);
          r12.xyw = r12.xyz * r6.xxx;
          r6.z = cmp(r12.w < 0);
          r8.w = r6.z ? 0.000000 : 0;
          r13.xyzw = float4(0.5,-0.5,-0.5,0.5) * r12.xyxy;
          r9.w = -r12.z * r6.x + 1;
          r9.w = rcp(r9.w);
          r9.w = max(-3.40282347e+38, r9.w);
          r9.w = min(3.40282347e+38, r9.w);
          r10.xy = r13.xy * r9.ww + float2(0.5,0.5);
          r6.x = r12.z * r6.x + 1;
          r6.x = rcp(r6.x);
          r6.x = max(-3.40282347e+38, r6.x);
          r6.x = min(3.40282347e+38, r6.x);
          r11.zw = r13.zw * r6.xx + float2(0.5,0.5);
          r6.xz = r6.zz ? r10.xy : r11.zw;
          r6.xz = r6.xz * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
          r12.y = asint(cb12[159].x);
          r12.z = (int)r8.w;
          r12.xw = float2(0,0);
          r6.xz = r12.zw + r6.xz;
          r6.xz = r12.xy + r6.xz;
          r6.xz = float2(0.5,0.142857149) * r6.xz;
          r12.xyz = t23.SampleLevel(s11_s, r6.xz, 0).xyz;
          r9.xyz = r5.www * r12.xyz + r9.xyz;
        }
      }
      r5.w = cmp(r2.x < 0.999000013);
      r2.w = r2.w ? r5.w : 0;
      if (r2.w != 0) {
        r12.xyz = cb12[163].xyz * r3.yyy;
        r12.xyz = cb12[162].xyz * r3.xxx + r12.xyz;
        r12.xyz = cb12[164].xyz * r3.zzz + r12.xyz;
        r12.xyz = cb12[165].xyz + r12.xyz;
        r12.xyz = float3(1,1,1) + -abs(r12.xyz);
        r13.xyz = cmp(float3(0,0,0) < r12.xyz);
        r5.w = r13.y ? r13.x : 0;
        r5.w = r13.z ? r5.w : 0;
        if (r5.w != 0) {
          r12.xyz = saturate(cb12[161].xyz * r12.xyz);
          r5.w = 1 + -r2.x;
          r5.w = cb12[160].x * r5.w;
          r6.x = r12.x * r12.y;
          r6.x = r6.x * r12.z;
          r6.z = r6.x * r5.w;
          r2.x = r5.w * r6.x + r2.x;
          r5.w = cb12[166].x * r6.z;
          r12.xyz = cb12[168].xyz * r4.yyy;
          r12.xyz = cb12[167].xyz * r4.xxx + r12.xyz;
          r12.xyz = cb12[169].xyz * r4.zzz + r12.xyz;
          r13.xyz = cb12[168].xyz * r3.yyy;
          r13.xyz = cb12[167].xyz * r3.xxx + r13.xyz;
          r13.xyz = cb12[169].xyz * r3.zzz + r13.xyz;
          r13.xyz = cb12[170].xyz + r13.xyz;
          r12.xyz = float3(1,1,1) / r12.xyz;
          r14.xyz = -r13.xyz * r12.xyz + r12.xyz;
          r12.xyz = -r13.xyz * r12.xyz + -r12.xyz;
          r12.xyz = max(r14.xyz, r12.xyz);
          r6.x = min(r12.y, r12.z);
          r6.x = min(r12.x, r6.x);
          r12.xyz = r4.xyz * r6.xxx + r3.xyz;
          r12.xyz = -cb12[160].yzw + r12.xyz;
          r6.x = dot(r12.xyz, r12.xyz);
          r6.x = rsqrt(r6.x);
          r12.xyw = r12.xyz * r6.xxx;
          r6.z = cmp(r12.w < 0);
          r8.w = r6.z ? 0.000000 : 0;
          r13.xyzw = float4(0.5,-0.5,-0.5,0.5) * r12.xyxy;
          r9.w = -r12.z * r6.x + 1;
          r9.w = rcp(r9.w);
          r9.w = max(-3.40282347e+38, r9.w);
          r9.w = min(3.40282347e+38, r9.w);
          r10.xy = r13.xy * r9.ww + float2(0.5,0.5);
          r6.x = r12.z * r6.x + 1;
          r6.x = rcp(r6.x);
          r6.x = max(-3.40282347e+38, r6.x);
          r6.x = min(3.40282347e+38, r6.x);
          r11.zw = r13.zw * r6.xx + float2(0.5,0.5);
          r6.xz = r6.zz ? r10.xy : r11.zw;
          r6.xz = r6.xz * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
          r12.y = asint(cb12[171].x);
          r12.z = (int)r8.w;
          r12.xw = float2(0,0);
          r6.xz = r12.zw + r6.xz;
          r6.xz = r12.xy + r6.xz;
          r6.xz = float2(0.5,0.142857149) * r6.xz;
          r12.xyz = t23.SampleLevel(s11_s, r6.xz, 0).xyz;
          r9.xyz = r5.www * r12.xyz + r9.xyz;
        }
      }
      r5.w = cmp(r2.x < 0.999000013);
      r2.w = r2.w ? r5.w : 0;
      if (r2.w != 0) {
        r12.xyz = cb12[175].xyz * r3.yyy;
        r12.xyz = cb12[174].xyz * r3.xxx + r12.xyz;
        r12.xyz = cb12[176].xyz * r3.zzz + r12.xyz;
        r12.xyz = cb12[177].xyz + r12.xyz;
        r12.xyz = float3(1,1,1) + -abs(r12.xyz);
        r13.xyz = cmp(float3(0,0,0) < r12.xyz);
        r2.w = r13.y ? r13.x : 0;
        r2.w = r13.z ? r2.w : 0;
        if (r2.w != 0) {
          r12.xyz = saturate(cb12[173].xyz * r12.xyz);
          r2.w = 1 + -r2.x;
          r2.w = cb12[172].x * r2.w;
          r5.w = r12.x * r12.y;
          r5.w = r5.w * r12.z;
          r6.x = r5.w * r2.w;
          r2.x = r2.w * r5.w + r2.x;
          r2.w = cb12[178].x * r6.x;
          r12.xyz = cb12[180].xyz * r4.yyy;
          r12.xyz = cb12[179].xyz * r4.xxx + r12.xyz;
          r12.xyz = cb12[181].xyz * r4.zzz + r12.xyz;
          r13.xyz = cb12[180].xyz * r3.yyy;
          r13.xyz = cb12[179].xyz * r3.xxx + r13.xyz;
          r13.xyz = cb12[181].xyz * r3.zzz + r13.xyz;
          r13.xyz = cb12[182].xyz + r13.xyz;
          r12.xyz = float3(1,1,1) / r12.xyz;
          r14.xyz = -r13.xyz * r12.xyz + r12.xyz;
          r12.xyz = -r13.xyz * r12.xyz + -r12.xyz;
          r12.xyz = max(r14.xyz, r12.xyz);
          r5.w = min(r12.y, r12.z);
          r5.w = min(r12.x, r5.w);
          r12.xyz = r4.xyz * r5.www + r3.xyz;
          r12.xyz = -cb12[172].yzw + r12.xyz;
          r5.w = dot(r12.xyz, r12.xyz);
          r5.w = rsqrt(r5.w);
          r12.xyw = r12.xyz * r5.www;
          r6.x = cmp(r12.w < 0);
          r6.z = r6.x ? 0.000000 : 0;
          r13.xyzw = float4(0.5,-0.5,-0.5,0.5) * r12.xyxy;
          r8.w = -r12.z * r5.w + 1;
          r8.w = rcp(r8.w);
          r8.w = max(-3.40282347e+38, r8.w);
          r8.w = min(3.40282347e+38, r8.w);
          r10.xy = r13.xy * r8.ww + float2(0.5,0.5);
          r5.w = r12.z * r5.w + 1;
          r5.w = rcp(r5.w);
          r5.w = max(-3.40282347e+38, r5.w);
          r5.w = min(3.40282347e+38, r5.w);
          r11.zw = r13.zw * r5.ww + float2(0.5,0.5);
          r10.xy = r6.xx ? r10.xy : r11.zw;
          r10.xy = r10.xy * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
          r12.y = asint(cb12[183].x);
          r12.z = (int)r6.z;
          r12.xw = float2(0,0);
          r6.xz = r12.zw + r10.xy;
          r6.xz = r12.xy + r6.xz;
          r6.xz = float2(0.5,0.142857149) * r6.xz;
          r12.xyz = t23.SampleLevel(s11_s, r6.xz, 0).xyz;
          r9.xyz = r2.www * r12.xyz + r9.xyz;
        }
      }
      r2.w = cmp(r2.x < 0.999000013);
      if (r2.w != 0) {
        r2.w = 1 + -r2.x;
        r5.w = cb12[100].x * r2.w;
        r2.x = r2.w * cb12[100].x + r2.x;
        r2.w = cb12[106].x * r5.w;
        r5.w = cmp(r4.z < 0);
        r6.x = r5.w ? 0.000000 : 0;
        r12.xyzw = float4(0.5,-0.5,-0.5,0.5) * r4.xyxy;
        r4.x = 1 + -r4.z;
        r4.x = rcp(r4.x);
        r4.x = max(-3.40282347e+38, r4.x);
        r4.x = min(3.40282347e+38, r4.x);
        r4.xy = r12.xy * r4.xx + float2(0.5,0.5);
        r4.z = 1 + r4.z;
        r4.z = rcp(r4.z);
        r4.z = max(-3.40282347e+38, r4.z);
        r4.z = min(3.40282347e+38, r4.z);
        r10.xy = r12.zw * r4.zz + float2(0.5,0.5);
        r4.xy = r5.ww ? r4.xy : r10.xy;
        r4.xy = r4.xy * float2(0.666666627,0.666666627) + float2(0.166666672,0.166666672);
        r12.y = asint(cb12[111].x);
        r12.z = (int)r6.x;
        r12.xw = float2(0,0);
        r4.xy = r12.zw + r4.xy;
        r4.xy = r12.xy + r4.xy;
        r4.xy = float2(0.5,0.142857149) * r4.xy;
        r4.xyz = t23.SampleLevel(s11_s, r4.xy, 0).xyz;
        r9.xyz = r2.www * r4.xyz + r9.xyz;
      }
      r2.x = 1 / r2.x;
      r8.xyz = r9.xyz * r2.xxx;
    }
    r4.xyz = -r8.xyz + r5.xyz;
    r5.xyz = r1.xxx * r4.xyz + r8.xyz;
    r0.z = r0.z * 4 + -1;
    r0.z = saturate(2.5 * r0.z);
    r3.w = 1;
    r1.x = dot(cb3[10].xyzw, r3.xyzw);
    r2.x = dot(cb3[11].xyzw, r3.xyzw);
    r2.w = dot(cb3[12].xyzw, r3.xyzw);
    r4.xyz = cb12[14].xyw * r2.xxx;
    r4.xyz = cb12[13].xyw * r1.xxx + r4.xyz;
    r4.xyz = cb12[15].xyw * r2.www + r4.xyz;
    r4.xyz = cb12[16].xyw + r4.xyz;
	
	if(prev.x>5.0) {
	  r4.x+=stereo.x*r4.z;
	} else {
	  r4.x+=prev.x*r4.z;
	}
	
    r2.xw = r4.xy / r4.zz;
    r2.xw = r2.xw * r7.xy + r7.zw;
    r1.x = cmp(r1.y == 1.000000);
    r1.y = cmp(0 < r0.z);
    r1.x = r1.y ? r1.x : 0;
    if (r1.x != 0) {
      r1.x = r4.w * cb12[22].x + cb12[22].y;
      r4.xy = r11.xy + -r7.zw;
      r4.xy = r4.xy / r7.xy;
	  
	  r4.x-=stereo.x;
	  
      r8.xyzw = cb12[208].xyzw * r4.yyyy;
      r4.xyzw = cb12[207].xyzw * r4.xxxx + r8.xyzw;
      r4.xyzw = cb12[209].xyzw * r1.xxxx + r4.xyzw;
      r4.xyzw = cb12[210].xyzw + r4.xyzw;
      r4.xyz = r4.xyz / r4.www;
      r1.x = cb3[2].z + -r3.z;
      r1.y = r1.x + r4.z;
      r1.y = r1.y + -r3.z;
      r1.x = r1.x / r1.y;
      r4.xy = -cb3[2].xy + r4.xy;
      r3.xy = r1.xx * r4.xy + cb3[2].xy;
      r1.x = dot(cb3[10].xyzw, r3.xyzw);
      r1.y = dot(cb3[11].xyzw, r3.xyzw);
      r3.x = dot(cb3[12].xyzw, r3.xyzw);
      r3.yzw = cb12[14].xyw * r1.yyy;
      r3.yzw = cb12[13].xyw * r1.xxx + r3.yzw;
      r3.xyz = cb12[15].xyw * r3.xxx + r3.yzw;
      r3.xyz = cb12[16].xyw + r3.xyz;
	  
	  r3.x+=stereo.x*r3.z;
	  
      r1.xy = r3.xy / r3.zz;
      r1.xy = r1.xy * r7.xy + r7.zw;
      r1.xy = r1.xy + -r2.xw;
      r2.xw = r0.zz * r1.xy + r2.xw;
    }
    r1.xy = max(r2.xw, r6.yw);
    r1.xy = min(r1.xy, r10.zw);
    r2.xw = cmp(r2.xw == r1.xy);
    r0.z = r2.w ? r2.x : 0;
    r2.x = ~(int)r0.z;
    r1.xy = r1.xy / cb3[3].xx;
    r1.xy = r0.zz ? r1.xy : r2.yz;
    r5.w = 1;
  } else {
    r0.w = 0;
    r0.x = t2.Load(r0.xyw).x;
    r0.yz = r1.zw / cb3[0].xy;
    r0.yz = r0.yz * float2(2,2) + float2(-1,-1);
	
	r0.y-=stereo.x;
	
    r3.xyzw = cb12[208].xyzw * -r0.zzzz;
    r3.xyzw = cb12[207].xyzw * r0.yyyy + r3.xyzw;
    r0.xyzw = cb12[209].xyzw * r0.xxxx + r3.xyzw;
    r0.xyzw = cb12[210].xyzw + r0.xyzw;
    r0.xyz = r0.xyz / r0.www;
    r0.w = 1;
    r1.z = dot(cb3[10].xyzw, r0.xyzw);
    r1.w = dot(cb3[11].xyzw, r0.xyzw);
    r0.x = dot(cb3[12].xyzw, r0.xyzw);
    r0.yzw = cb12[14].xyw * r1.www;
    r0.yzw = cb12[13].xyw * r1.zzz + r0.yzw;
    r0.xyz = cb12[15].xyw * r0.xxx + r0.yzw;
    r0.xyz = cb12[16].xyw + r0.xyz;
	
	r0.x+=stereo.x*r0.z;
	
    r0.xy = r0.xy / r0.zz;
    r3.xyzw = float4(0.5,-0.5,0.5,0.5) * cb3[0].xyxy;
    r3.xyzw = r3.xyzw / cb3[0].zwzw;
    r0.xy = r0.xy * r3.xy + r3.zw;
    r0.zw = float2(0.5,0.5) / cb3[0].zw;
    r1.zw = float2(-1.5,-1.5) + cb3[0].xy;
    r1.zw = r1.zw / cb3[0].zw;
	//r1.z+=stereo.x;
    r0.xy = max(r0.xy, r0.zw);
    r1.xy = min(r0.xy, r1.zw);
    r5.xyzw = float4(0,0,0,0);
    r2.x = 0;
  }
  r0.x = dot(float4(0.333000004,0.333000004,0.333000004,0.333000004), r5.xyzw);
  r0.x = cmp(r0.x != r0.x);
  r3.xyzw = max(float4(0,0,0,0), r5.xyzw);
  o0.xyzw = r0.xxxx ? float4(0,0,0,0) : r3.xyzw;
  r0.xyzw = t3.SampleLevel(s1_s, r1.xy, 0).xyzw;
  r1.x = dot(float4(0.333000004,0.333000004,0.333000004,0.333000004), r0.xyzw);
  r1.x = cmp(r1.x != r1.x);
  r0.xyzw = max(float4(0,0,0,0), r0.xyzw);
  r0.xyzw = r1.xxxx ? float4(0,0,0,0) : r0.xyzw;
  o1.xyzw = r2.xxxx ? r5.xyzw : r0.xyzw;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Thu Dec 15 20:19:37 2022
//
//
// 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
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB3[13], immediateIndexed
dcl_constantbuffer CB12[211], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s11, 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_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t23
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_temps 17
ftou r0.xy, v0.xyxx
utof r1.xy, r0.xyxx
add r1.zw, r1.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000)
itof r2.xy, r0.xyxx
mul r2.xy, r2.xyxx, cb3[8].zwzz
ftou r2.xy, r2.xyxx
mov r2.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyzw, t0.zwxy
lt r2.y, l(0.000000), r2.y
if_nz r2.y
  mul r2.yz, r1.zzwz, cb3[5].zzwz
  lt r2.x, l(0.500000), r2.x
  mov r0.z, l(0)
  ld_indexable(texture2d)(float,float,float,float) r0.z, r0.xyzz, t2.yzxw
  mul r1.xy, r1.xyxx, cb3[8].zwzz
  ftou r3.xy, r1.xyxx
  mov r3.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r1.x, r3.xyzw, t4.xyzw
  eq r1.y, cb12[22].y, l(1.000000)
  max r2.w, r0.z, r1.x
  min r0.z, r0.z, r1.x
  movc r0.z, r1.y, r2.w, r0.z
  div r1.xy, r1.zwzz, cb3[0].xyxx
  mad r1.xy, r1.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
  mul r3.xyzw, -r1.yyyy, cb12[208].xyzw
  mad r3.xyzw, cb12[207].xyzw, r1.xxxx, r3.xyzw
  mad r3.xyzw, cb12[209].xyzw, r0.zzzz, r3.xyzw
  add r3.xyzw, r3.xyzw, cb12[210].xyzw
  div r3.xyz, r3.xyzx, r3.wwww
  ge r0.z, cb12[0].z, r3.z
  movc r0.z, r0.z, l(1), l(-1)
  mov r4.xy, l(0,0,0,0)
  itof r4.z, r0.z
  mul r5.xyz, r3.yyyy, cb12[2].xyzx
  mad r5.xyz, cb12[1].xyzx, r3.xxxx, r5.xyzx
  mad r5.xyz, cb12[3].xyzx, r3.zzzz, r5.xyzx
  add r5.xyz, r5.xyzx, cb12[4].xyzx
  add r6.xyz, r3.xyzx, -cb12[0].xyzx
  dp3 r0.z, r6.xyzx, r6.xyzx
  rsq r0.z, r0.z
  mul r6.xyz, r0.zzzz, r6.xyzx
  dp2 r0.z, r6.zzzz, r4.zzzz
  mad r4.xyz, r4.xyzx, -r0.zzzz, r6.xyzx
  mul r6.xyz, r4.yyyy, cb12[2].xyzx
  mad r6.xyz, cb12[1].xyzx, r4.xxxx, r6.xyzx
  mad r6.xyz, cb12[3].xyzx, r4.zzzz, r6.xyzx
  mad r6.xyw, r6.xyxz, l(100.000000, 100.000000, 0.000000, 100.000000), r5.xyxz
  mul r7.xyz, r5.yyyy, cb12[14].xywx
  mad r5.xyw, cb12[13].xyxw, r5.xxxx, r7.xyxz
  mad r5.xyw, cb12[15].xyxw, r5.zzzz, r5.xyxw
  add r5.xyw, r5.xyxw, cb12[16].xyxw
  div r1.xy, r5.xyxx, r5.wwww
  mul r7.xyzw, cb3[0].xyxy, l(0.500000, -0.500000, 0.500000, 0.500000)
  div r7.xyzw, r7.xyzw, cb3[0].zwzw
  mad r8.xy, r1.xyxx, r7.xyxx, r7.zwzz
  mul r5.xyw, r6.yyyy, cb12[14].xyxw
  mad r5.xyw, cb12[13].xyxw, r6.xxxx, r5.xyxw
  mad r5.xyw, cb12[15].xyxw, r6.wwww, r5.xyxw
  add r5.xyw, r5.xyxw, cb12[16].xyxw
  div r5.xy, r5.xyxx, r5.wwww
  mad r9.yz, r5.xxyx, r7.xxyx, r7.zzwz
  mul r0.z, r5.z, cb12[21].x
  div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
  div r1.y, cb12[21].y, cb12[21].x
  add r8.z, r0.z, -r1.y
  mul r0.z, r6.w, cb12[21].x
  div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
  add r9.w, -r1.y, r0.z
  add r5.yzw, -r8.xxyz, r9.yyzw
  add r0.z, -|r1.x|, l(1.000000)
  div r6.xyw, l(2.000000, 0.500000, 0.000000, 0.500000), cb3[0].xzxw
  add r0.z, r0.z, -r6.x
  mul r1.x, r0.z, l(4.000000)
  mov_sat r1.x, r1.x
  mul r5.x, r1.x, r5.y
  ge r1.x, |r5.x|, |r5.z|
  mul r9.xy, |r5.xzxx|, cb3[0].zwzz
  movc r1.x, r1.x, r9.x, r9.y
  div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
  mul r9.xyz, r1.xxxx, r5.xzwx
  lt r1.y, l(0.000000), r6.z
  max r2.w, cb3[0].y, cb3[0].x
  round_z r2.w, r2.w
  lt r10.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xyzx
  div r6.xz, cb3[0].xxyx, cb3[0].zzwz
  add r11.xy, -r8.xyxx, r6.xzxx
  movc r10.xy, r10.xyxx, r11.xyxx, r8.xyxx
  div r10.xy, r10.xyxx, |r9.xyxx|
  min r2.w, r2.w, r10.x
  round_z r2.w, r2.w
  min r2.w, r10.y, r2.w
  round_z r2.w, r2.w
  add r4.w, -r8.z, l(1.000000)
  and r4.w, r4.w, r10.z
  div r4.w, r4.w, |r9.z|
  add r4.w, r4.w, l(3.000000)
  min r2.w, r2.w, r4.w
  ftoi r2.w, r2.w
  and r1.y, r1.y, r2.w
  add r2.w, |r9.z|, |r9.z|
  add r10.xy, cb3[0].xyxx, l(-1.500000, -1.500000, 0.000000, 0.000000)
  div r10.zw, r10.xxxy, cb3[0].zzzw
  mov r11.xy, r8.xyxx
  mov r4.w, r8.z
  mov r5.y, l(0)
  mov r6.x, l(1)
  loop
    ige r8.w, r6.x, r1.y
    breakc_nz r8.w
    itof r8.w, r6.x
    mad r12.xyz, r8.wwww, r9.xyzx, r8.xyzx
    mad r13.xyz, r5.xzwx, r1.xxxx, r12.xyzx
    mad r14.xyz, r5.xzwx, r1.xxxx, r13.xyzx
    mad r15.xyw, r5.xzxw, r1.xxxx, r14.xyxz
    min r11.zw, r10.zzzw, r12.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r8.w, r11.zwzz, t2.yzwx, s0, l(0.000000)
    mad r16.x, r8.w, cb12[22].x, cb12[22].y
    min r11.zw, r10.zzzw, r13.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r8.w, r11.zwzz, t2.yzwx, s0, l(0.000000)
    mad r16.y, r8.w, cb12[22].x, cb12[22].y
    min r11.zw, r10.zzzw, r14.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r8.w, r11.zwzz, t2.yzwx, s0, l(0.000000)
    mad r16.z, r8.w, cb12[22].x, cb12[22].y
    min r11.zw, r10.zzzw, r15.xxxy
    sample_l_indexable(texture2d)(float,float,float,float) r8.w, r11.zwzz, t2.yzwx, s0, l(0.000000)
    mad r16.w, r8.w, cb12[22].x, cb12[22].y
    mov r15.x, r12.z
    mov r15.y, r13.z
    mov r15.z, r14.z
    add r12.xyzw, -r16.xyzw, r15.xyzw
    mad r12.xyzw, -|r9.zzzz|, l(2.000000, 2.000000, 2.000000, 2.000000), r12.xyzw
    lt r12.xyzw, |r12.xyzw|, r2.wwww
    or r11.zw, r12.zzzw, r12.xxxy
    or r8.w, r11.w, r11.z
    if_nz r8.w
      movc r8.w, r12.z, l(2), l(3)
      movc r8.w, r12.y, l(1), r8.w
      movc r8.w, r12.x, l(0), r8.w
      iadd r8.w, r6.x, r8.w
      itof r8.w, r8.w
      mad r12.xyz, r8.wwww, r9.xyzx, r8.xyzx
      mov r5.y, l(-1)
      mov r11.xy, r12.xyxx
      mov r4.w, r12.z
      break
    endif
    iadd r6.x, r6.x, l(4)
    mov r5.y, l(0)
  endloop
  if_nz r5.y
    div r1.x, r11.y, r6.z
    add r1.x, r1.x, l(-0.500000)
    mad r1.x, -|r1.x|, l(2.000000), l(1.000000)
    max r1.x, r1.x, l(0.000000)
    add r1.x, r1.x, r1.x
    min r1.x, r1.x, l(1.000000)
    add r1.x, -r1.x, l(1.000000)
    mad r1.x, -r1.x, r1.x, l(1.000000)
    div r5.xy, r11.xyxx, cb3[3].yyyy
    div r5.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb3[0].xxxy
    mul r6.xz, cb3[0].zzwz, cb3[3].yyyy
    div r6.xz, r10.xxyx, r6.xxzx
    max r5.xy, r5.zwzz, r5.xyxx
    min r5.xy, r6.xzxx, r5.xyxx
    sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r5.xyxx, t1.xyzw, s0, l(0.000000)
    mov r1.y, l(1.000000)
  else
    mov r11.xy, l(0,0,0,0)
    mov r4.w, l(0)
    mov r5.xyz, l(0,0,0,0)
    mov r1.xy, l(0,0,0,0)
  endif
  if_nz r2.x
    mul r2.xw, r4.xxxy, l(-0.500000, 0.000000, 0.000000, 0.500000)
    add r5.w, |r4.z|, l(1.000000)
    rcp r5.w, r5.w
    mad r2.xw, r2.xxxw, r5.wwww, l(0.500000, 0.000000, 0.000000, 0.500000)
    mul r2.xw, r2.xxxw, cb3[4].xxxy
    add r6.xz, cb3[4].xxyx, l(-0.500000, 0.000000, -0.500000, 0.000000)
    max r2.xw, r2.xxxw, l(0.500000, 0.000000, 0.000000, 0.500000)
    min r2.xw, r6.xxxz, r2.xxxw
    div r2.xw, r2.xxxw, cb3[4].zzzw
    sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, r2.xwxx, t5.xyzw, s1, l(0.000000)
  else
    mul r9.xyz, r3.yyyy, cb12[115].xyzx
    mad r9.xyz, cb12[114].xyzx, r3.xxxx, r9.xyzx
    mad r9.xyz, cb12[116].xyzx, r3.zzzz, r9.xyzx
    add r9.xyz, r9.xyzx, cb12[117].xyzx
    add r9.xyz, -|r9.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
    lt r12.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r9.xyzx
    and r2.x, r12.y, r12.x
    and r2.x, r12.z, r2.x
    if_nz r2.x
      mul_sat r9.xyz, r9.xyzx, cb12[113].xyzx
      mul r2.x, cb12[112].x, l(0.999990)
      mul r2.w, r9.y, r9.x
      mul r2.w, r9.z, r2.w
      mul r5.w, r2.w, r2.x
      mad r2.x, r2.x, r2.w, l(0.000010)
      mul r2.w, r5.w, cb12[118].x
      mul r9.xyz, r4.yyyy, cb12[120].xyzx
      mad r9.xyz, cb12[119].xyzx, r4.xxxx, r9.xyzx
      mad r9.xyz, cb12[121].xyzx, r4.zzzz, r9.xyzx
      mul r12.xyz, r3.yyyy, cb12[120].xyzx
      mad r12.xyz, cb12[119].xyzx, r3.xxxx, r12.xyzx
      mad r12.xyz, cb12[121].xyzx, r3.zzzz, r12.xyzx
      add r12.xyz, r12.xyzx, cb12[122].xyzx
      div r9.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r9.xyzx
      mad r13.xyz, -r12.xyzx, r9.xyzx, r9.xyzx
      mad r9.xyz, -r12.xyzx, r9.xyzx, -r9.xyzx
      max r9.xyz, r9.xyzx, r13.xyzx
      min r5.w, r9.z, r9.y
      min r5.w, r5.w, r9.x
      mad r9.xyz, r4.xyzx, r5.wwww, r3.xyzx
      add r9.xyz, r9.xyzx, -cb12[112].yzwy
      dp3 r5.w, r9.xyzx, r9.xyzx
      rsq r5.w, r5.w
      mul r9.xyw, r5.wwww, r9.xyxz
      lt r6.x, r9.w, l(0.000000)
      and r6.z, r6.x, l(1)
      mul r12.xyzw, r9.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
      mad r8.w, -r9.z, r5.w, l(1.000000)
      rcp r8.w, r8.w
      max r8.w, r8.w, l(-340282346638528859811704183484516925440.000000)
      min r8.w, r8.w, l(340282346638528859811704183484516925440.000000)
      mad r9.xy, r12.xyxx, r8.wwww, l(0.500000, 0.500000, 0.000000, 0.000000)
      mad r5.w, r9.z, r5.w, l(1.000000)
      rcp r5.w, r5.w
      max r5.w, r5.w, l(-340282346638528859811704183484516925440.000000)
      min r5.w, r5.w, l(340282346638528859811704183484516925440.000000)
      mad r9.zw, r12.zzzw, r5.wwww, l(0.000000, 0.000000, 0.500000, 0.500000)
      movc r9.xy, r6.xxxx, r9.xyxx, r9.zwzz
      mad r9.xy, r9.xyxx, l(0.666666627, 0.666666627, 0.000000, 0.000000), l(0.166666672, 0.166666672, 0.000000, 0.000000)
      itof r12.y, cb12[123].x
      itof r12.z, r6.z
      mov r12.xw, l(0,0,0,0)
      add r6.xz, r9.xxyx, r12.zzwz
      add r6.xz, r6.xxzx, r12.xxyx
      mul r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.142857149, 0.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r9.xyz, r6.xzxx, t23.xyzw, s11, l(0.000000)
      mul r9.xyz, r2.wwww, r9.xyzx
    else
      mov r9.xyz, l(0,0,0,0)
      mov r2.x, l(0.000010)
    endif
    lt r2.w, r2.x, l(0.999000)
    if_nz r2.w
      mul r12.xyz, r3.yyyy, cb12[127].xyzx
      mad r12.xyz, cb12[126].xyzx, r3.xxxx, r12.xyzx
      mad r12.xyz, cb12[128].xyzx, r3.zzzz, r12.xyzx
      add r12.xyz, r12.xyzx, cb12[129].xyzx
      add r12.xyz, -|r12.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
      lt r13.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xyzx
      and r5.w, r13.y, r13.x
      and r5.w, r13.z, r5.w
      if_nz r5.w
        mul_sat r12.xyz, r12.xyzx, cb12[125].xyzx
        add r5.w, -r2.x, l(1.000000)
        mul r5.w, r5.w, cb12[124].x
        mul r6.x, r12.y, r12.x
        mul r6.x, r12.z, r6.x
        mul r6.z, r5.w, r6.x
        mad r2.x, r5.w, r6.x, r2.x
        mul r5.w, r6.z, cb12[130].x
        mul r12.xyz, r4.yyyy, cb12[132].xyzx
        mad r12.xyz, cb12[131].xyzx, r4.xxxx, r12.xyzx
        mad r12.xyz, cb12[133].xyzx, r4.zzzz, r12.xyzx
        mul r13.xyz, r3.yyyy, cb12[132].xyzx
        mad r13.xyz, cb12[131].xyzx, r3.xxxx, r13.xyzx
        mad r13.xyz, cb12[133].xyzx, r3.zzzz, r13.xyzx
        add r13.xyz, r13.xyzx, cb12[134].xyzx
        div r12.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r12.xyzx
        mad r14.xyz, -r13.xyzx, r12.xyzx, r12.xyzx
        mad r12.xyz, -r13.xyzx, r12.xyzx, -r12.xyzx
        max r12.xyz, r12.xyzx, r14.xyzx
        min r6.x, r12.z, r12.y
        min r6.x, r6.x, r12.x
        mad r12.xyz, r4.xyzx, r6.xxxx, r3.xyzx
        add r12.xyz, r12.xyzx, -cb12[124].yzwy
        dp3 r6.x, r12.xyzx, r12.xyzx
        rsq r6.x, r6.x
        mul r12.xyw, r6.xxxx, r12.xyxz
        lt r6.z, r12.w, l(0.000000)
        and r8.w, r6.z, l(1)
        mul r13.xyzw, r12.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
        mad r9.w, -r12.z, r6.x, l(1.000000)
        rcp r9.w, r9.w
        max r9.w, r9.w, l(-340282346638528859811704183484516925440.000000)
        min r9.w, r9.w, l(340282346638528859811704183484516925440.000000)
        mad r10.xy, r13.xyxx, r9.wwww, l(0.500000, 0.500000, 0.000000, 0.000000)
        mad r6.x, r12.z, r6.x, l(1.000000)
        rcp r6.x, r6.x
        max r6.x, r6.x, l(-340282346638528859811704183484516925440.000000)
        min r6.x, r6.x, l(340282346638528859811704183484516925440.000000)
        mad r11.zw, r13.zzzw, r6.xxxx, l(0.000000, 0.000000, 0.500000, 0.500000)
        movc r6.xz, r6.zzzz, r10.xxyx, r11.zzwz
        mad r6.xz, r6.xxzx, l(0.666666627, 0.000000, 0.666666627, 0.000000), l(0.166666672, 0.000000, 0.166666672, 0.000000)
        itof r12.y, cb12[135].x
        itof r12.z, r8.w
        mov r12.xw, l(0,0,0,0)
        add r6.xz, r6.xxzx, r12.zzwz
        add r6.xz, r6.xxzx, r12.xxyx
        mul r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.142857149, 0.000000)
        sample_l_indexable(texture2d)(float,float,float,float) r12.xyz, r6.xzxx, t23.xyzw, s11, l(0.000000)
        mad r9.xyz, r5.wwww, r12.xyzx, r9.xyzx
      endif
    endif
    lt r5.w, r2.x, l(0.999000)
    and r2.w, r2.w, r5.w
    if_nz r2.w
      mul r12.xyz, r3.yyyy, cb12[139].xyzx
      mad r12.xyz, cb12[138].xyzx, r3.xxxx, r12.xyzx
      mad r12.xyz, cb12[140].xyzx, r3.zzzz, r12.xyzx
      add r12.xyz, r12.xyzx, cb12[141].xyzx
      add r12.xyz, -|r12.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
      lt r13.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xyzx
      and r5.w, r13.y, r13.x
      and r5.w, r13.z, r5.w
      if_nz r5.w
        mul_sat r12.xyz, r12.xyzx, cb12[137].xyzx
        add r5.w, -r2.x, l(1.000000)
        mul r5.w, r5.w, cb12[136].x
        mul r6.x, r12.y, r12.x
        mul r6.x, r12.z, r6.x
        mul r6.z, r5.w, r6.x
        mad r2.x, r5.w, r6.x, r2.x
        mul r5.w, r6.z, cb12[142].x
        mul r12.xyz, r4.yyyy, cb12[144].xyzx
        mad r12.xyz, cb12[143].xyzx, r4.xxxx, r12.xyzx
        mad r12.xyz, cb12[145].xyzx, r4.zzzz, r12.xyzx
        mul r13.xyz, r3.yyyy, cb12[144].xyzx
        mad r13.xyz, cb12[143].xyzx, r3.xxxx, r13.xyzx
        mad r13.xyz, cb12[145].xyzx, r3.zzzz, r13.xyzx
        add r13.xyz, r13.xyzx, cb12[146].xyzx
        div r12.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r12.xyzx
        mad r14.xyz, -r13.xyzx, r12.xyzx, r12.xyzx
        mad r12.xyz, -r13.xyzx, r12.xyzx, -r12.xyzx
        max r12.xyz, r12.xyzx, r14.xyzx
        min r6.x, r12.z, r12.y
        min r6.x, r6.x, r12.x
        mad r12.xyz, r4.xyzx, r6.xxxx, r3.xyzx
        add r12.xyz, r12.xyzx, -cb12[136].yzwy
        dp3 r6.x, r12.xyzx, r12.xyzx
        rsq r6.x, r6.x
        mul r12.xyw, r6.xxxx, r12.xyxz
        lt r6.z, r12.w, l(0.000000)
        and r8.w, r6.z, l(1)
        mul r13.xyzw, r12.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
        mad r9.w, -r12.z, r6.x, l(1.000000)
        rcp r9.w, r9.w
        max r9.w, r9.w, l(-340282346638528859811704183484516925440.000000)
        min r9.w, r9.w, l(340282346638528859811704183484516925440.000000)
        mad r10.xy, r13.xyxx, r9.wwww, l(0.500000, 0.500000, 0.000000, 0.000000)
        mad r6.x, r12.z, r6.x, l(1.000000)
        rcp r6.x, r6.x
        max r6.x, r6.x, l(-340282346638528859811704183484516925440.000000)
        min r6.x, r6.x, l(340282346638528859811704183484516925440.000000)
        mad r11.zw, r13.zzzw, r6.xxxx, l(0.000000, 0.000000, 0.500000, 0.500000)
        movc r6.xz, r6.zzzz, r10.xxyx, r11.zzwz
        mad r6.xz, r6.xxzx, l(0.666666627, 0.000000, 0.666666627, 0.000000), l(0.166666672, 0.000000, 0.166666672, 0.000000)
        itof r12.y, cb12[147].x
        itof r12.z, r8.w
        mov r12.xw, l(0,0,0,0)
        add r6.xz, r6.xxzx, r12.zzwz
        add r6.xz, r6.xxzx, r12.xxyx
        mul r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.142857149, 0.000000)
        sample_l_indexable(texture2d)(float,float,float,float) r12.xyz, r6.xzxx, t23.xyzw, s11, l(0.000000)
        mad r9.xyz, r5.wwww, r12.xyzx, r9.xyzx
      endif
    endif
    lt r5.w, r2.x, l(0.999000)
    and r2.w, r2.w, r5.w
    if_nz r2.w
      mul r12.xyz, r3.yyyy, cb12[151].xyzx
      mad r12.xyz, cb12[150].xyzx, r3.xxxx, r12.xyzx
      mad r12.xyz, cb12[152].xyzx, r3.zzzz, r12.xyzx
      add r12.xyz, r12.xyzx, cb12[153].xyzx
      add r12.xyz, -|r12.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
      lt r13.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xyzx
      and r5.w, r13.y, r13.x
      and r5.w, r13.z, r5.w
      if_nz r5.w
        mul_sat r12.xyz, r12.xyzx, cb12[149].xyzx
        add r5.w, -r2.x, l(1.000000)
        mul r5.w, r5.w, cb12[148].x
        mul r6.x, r12.y, r12.x
        mul r6.x, r12.z, r6.x
        mul r6.z, r5.w, r6.x
        mad r2.x, r5.w, r6.x, r2.x
        mul r5.w, r6.z, cb12[154].x
        mul r12.xyz, r4.yyyy, cb12[156].xyzx
        mad r12.xyz, cb12[155].xyzx, r4.xxxx, r12.xyzx
        mad r12.xyz, cb12[157].xyzx, r4.zzzz, r12.xyzx
        mul r13.xyz, r3.yyyy, cb12[156].xyzx
        mad r13.xyz, cb12[155].xyzx, r3.xxxx, r13.xyzx
        mad r13.xyz, cb12[157].xyzx, r3.zzzz, r13.xyzx
        add r13.xyz, r13.xyzx, cb12[158].xyzx
        div r12.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r12.xyzx
        mad r14.xyz, -r13.xyzx, r12.xyzx, r12.xyzx
        mad r12.xyz, -r13.xyzx, r12.xyzx, -r12.xyzx
        max r12.xyz, r12.xyzx, r14.xyzx
        min r6.x, r12.z, r12.y
        min r6.x, r6.x, r12.x
        mad r12.xyz, r4.xyzx, r6.xxxx, r3.xyzx
        add r12.xyz, r12.xyzx, -cb12[148].yzwy
        dp3 r6.x, r12.xyzx, r12.xyzx
        rsq r6.x, r6.x
        mul r12.xyw, r6.xxxx, r12.xyxz
        lt r6.z, r12.w, l(0.000000)
        and r8.w, r6.z, l(1)
        mul r13.xyzw, r12.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
        mad r9.w, -r12.z, r6.x, l(1.000000)
        rcp r9.w, r9.w
        max r9.w, r9.w, l(-340282346638528859811704183484516925440.000000)
        min r9.w, r9.w, l(340282346638528859811704183484516925440.000000)
        mad r10.xy, r13.xyxx, r9.wwww, l(0.500000, 0.500000, 0.000000, 0.000000)
        mad r6.x, r12.z, r6.x, l(1.000000)
        rcp r6.x, r6.x
        max r6.x, r6.x, l(-340282346638528859811704183484516925440.000000)
        min r6.x, r6.x, l(340282346638528859811704183484516925440.000000)
        mad r11.zw, r13.zzzw, r6.xxxx, l(0.000000, 0.000000, 0.500000, 0.500000)
        movc r6.xz, r6.zzzz, r10.xxyx, r11.zzwz
        mad r6.xz, r6.xxzx, l(0.666666627, 0.000000, 0.666666627, 0.000000), l(0.166666672, 0.000000, 0.166666672, 0.000000)
        itof r12.y, cb12[159].x
        itof r12.z, r8.w
        mov r12.xw, l(0,0,0,0)
        add r6.xz, r6.xxzx, r12.zzwz
        add r6.xz, r6.xxzx, r12.xxyx
        mul r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.142857149, 0.000000)
        sample_l_indexable(texture2d)(float,float,float,float) r12.xyz, r6.xzxx, t23.xyzw, s11, l(0.000000)
        mad r9.xyz, r5.wwww, r12.xyzx, r9.xyzx
      endif
    endif
    lt r5.w, r2.x, l(0.999000)
    and r2.w, r2.w, r5.w
    if_nz r2.w
      mul r12.xyz, r3.yyyy, cb12[163].xyzx
      mad r12.xyz, cb12[162].xyzx, r3.xxxx, r12.xyzx
      mad r12.xyz, cb12[164].xyzx, r3.zzzz, r12.xyzx
      add r12.xyz, r12.xyzx, cb12[165].xyzx
      add r12.xyz, -|r12.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
      lt r13.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xyzx
      and r5.w, r13.y, r13.x
      and r5.w, r13.z, r5.w
      if_nz r5.w
        mul_sat r12.xyz, r12.xyzx, cb12[161].xyzx
        add r5.w, -r2.x, l(1.000000)
        mul r5.w, r5.w, cb12[160].x
        mul r6.x, r12.y, r12.x
        mul r6.x, r12.z, r6.x
        mul r6.z, r5.w, r6.x
        mad r2.x, r5.w, r6.x, r2.x
        mul r5.w, r6.z, cb12[166].x
        mul r12.xyz, r4.yyyy, cb12[168].xyzx
        mad r12.xyz, cb12[167].xyzx, r4.xxxx, r12.xyzx
        mad r12.xyz, cb12[169].xyzx, r4.zzzz, r12.xyzx
        mul r13.xyz, r3.yyyy, cb12[168].xyzx
        mad r13.xyz, cb12[167].xyzx, r3.xxxx, r13.xyzx
        mad r13.xyz, cb12[169].xyzx, r3.zzzz, r13.xyzx
        add r13.xyz, r13.xyzx, cb12[170].xyzx
        div r12.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r12.xyzx
        mad r14.xyz, -r13.xyzx, r12.xyzx, r12.xyzx
        mad r12.xyz, -r13.xyzx, r12.xyzx, -r12.xyzx
        max r12.xyz, r12.xyzx, r14.xyzx
        min r6.x, r12.z, r12.y
        min r6.x, r6.x, r12.x
        mad r12.xyz, r4.xyzx, r6.xxxx, r3.xyzx
        add r12.xyz, r12.xyzx, -cb12[160].yzwy
        dp3 r6.x, r12.xyzx, r12.xyzx
        rsq r6.x, r6.x
        mul r12.xyw, r6.xxxx, r12.xyxz
        lt r6.z, r12.w, l(0.000000)
        and r8.w, r6.z, l(1)
        mul r13.xyzw, r12.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
        mad r9.w, -r12.z, r6.x, l(1.000000)
        rcp r9.w, r9.w
        max r9.w, r9.w, l(-340282346638528859811704183484516925440.000000)
        min r9.w, r9.w, l(340282346638528859811704183484516925440.000000)
        mad r10.xy, r13.xyxx, r9.wwww, l(0.500000, 0.500000, 0.000000, 0.000000)
        mad r6.x, r12.z, r6.x, l(1.000000)
        rcp r6.x, r6.x
        max r6.x, r6.x, l(-340282346638528859811704183484516925440.000000)
        min r6.x, r6.x, l(340282346638528859811704183484516925440.000000)
        mad r11.zw, r13.zzzw, r6.xxxx, l(0.000000, 0.000000, 0.500000, 0.500000)
        movc r6.xz, r6.zzzz, r10.xxyx, r11.zzwz
        mad r6.xz, r6.xxzx, l(0.666666627, 0.000000, 0.666666627, 0.000000), l(0.166666672, 0.000000, 0.166666672, 0.000000)
        itof r12.y, cb12[171].x
        itof r12.z, r8.w
        mov r12.xw, l(0,0,0,0)
        add r6.xz, r6.xxzx, r12.zzwz
        add r6.xz, r6.xxzx, r12.xxyx
        mul r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.142857149, 0.000000)
        sample_l_indexable(texture2d)(float,float,float,float) r12.xyz, r6.xzxx, t23.xyzw, s11, l(0.000000)
        mad r9.xyz, r5.wwww, r12.xyzx, r9.xyzx
      endif
    endif
    lt r5.w, r2.x, l(0.999000)
    and r2.w, r2.w, r5.w
    if_nz r2.w
      mul r12.xyz, r3.yyyy, cb12[175].xyzx
      mad r12.xyz, cb12[174].xyzx, r3.xxxx, r12.xyzx
      mad r12.xyz, cb12[176].xyzx, r3.zzzz, r12.xyzx
      add r12.xyz, r12.xyzx, cb12[177].xyzx
      add r12.xyz, -|r12.xyzx|, l(1.000000, 1.000000, 1.000000, 0.000000)
      lt r13.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r12.xyzx
      and r2.w, r13.y, r13.x
      and r2.w, r13.z, r2.w
      if_nz r2.w
        mul_sat r12.xyz, r12.xyzx, cb12[173].xyzx
        add r2.w, -r2.x, l(1.000000)
        mul r2.w, r2.w, cb12[172].x
        mul r5.w, r12.y, r12.x
        mul r5.w, r12.z, r5.w
        mul r6.x, r2.w, r5.w
        mad r2.x, r2.w, r5.w, r2.x
        mul r2.w, r6.x, cb12[178].x
        mul r12.xyz, r4.yyyy, cb12[180].xyzx
        mad r12.xyz, cb12[179].xyzx, r4.xxxx, r12.xyzx
        mad r12.xyz, cb12[181].xyzx, r4.zzzz, r12.xyzx
        mul r13.xyz, r3.yyyy, cb12[180].xyzx
        mad r13.xyz, cb12[179].xyzx, r3.xxxx, r13.xyzx
        mad r13.xyz, cb12[181].xyzx, r3.zzzz, r13.xyzx
        add r13.xyz, r13.xyzx, cb12[182].xyzx
        div r12.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r12.xyzx
        mad r14.xyz, -r13.xyzx, r12.xyzx, r12.xyzx
        mad r12.xyz, -r13.xyzx, r12.xyzx, -r12.xyzx
        max r12.xyz, r12.xyzx, r14.xyzx
        min r5.w, r12.z, r12.y
        min r5.w, r5.w, r12.x
        mad r12.xyz, r4.xyzx, r5.wwww, r3.xyzx
        add r12.xyz, r12.xyzx, -cb12[172].yzwy
        dp3 r5.w, r12.xyzx, r12.xyzx
        rsq r5.w, r5.w
        mul r12.xyw, r5.wwww, r12.xyxz
        lt r6.x, r12.w, l(0.000000)
        and r6.z, r6.x, l(1)
        mul r13.xyzw, r12.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
        mad r8.w, -r12.z, r5.w, l(1.000000)
        rcp r8.w, r8.w
        max r8.w, r8.w, l(-340282346638528859811704183484516925440.000000)
        min r8.w, r8.w, l(340282346638528859811704183484516925440.000000)
        mad r10.xy, r13.xyxx, r8.wwww, l(0.500000, 0.500000, 0.000000, 0.000000)
        mad r5.w, r12.z, r5.w, l(1.000000)
        rcp r5.w, r5.w
        max r5.w, r5.w, l(-340282346638528859811704183484516925440.000000)
        min r5.w, r5.w, l(340282346638528859811704183484516925440.000000)
        mad r11.zw, r13.zzzw, r5.wwww, l(0.000000, 0.000000, 0.500000, 0.500000)
        movc r10.xy, r6.xxxx, r10.xyxx, r11.zwzz
        mad r10.xy, r10.xyxx, l(0.666666627, 0.666666627, 0.000000, 0.000000), l(0.166666672, 0.166666672, 0.000000, 0.000000)
        itof r12.y, cb12[183].x
        itof r12.z, r6.z
        mov r12.xw, l(0,0,0,0)
        add r6.xz, r10.xxyx, r12.zzwz
        add r6.xz, r6.xxzx, r12.xxyx
        mul r6.xz, r6.xxzx, l(0.500000, 0.000000, 0.142857149, 0.000000)
        sample_l_indexable(texture2d)(float,float,float,float) r12.xyz, r6.xzxx, t23.xyzw, s11, l(0.000000)
        mad r9.xyz, r2.wwww, r12.xyzx, r9.xyzx
      endif
    endif
    lt r2.w, r2.x, l(0.999000)
    if_nz r2.w
      add r2.w, -r2.x, l(1.000000)
      mul r5.w, r2.w, cb12[100].x
      mad r2.x, r2.w, cb12[100].x, r2.x
      mul r2.w, r5.w, cb12[106].x
      lt r5.w, r4.z, l(0.000000)
      and r6.x, r5.w, l(1)
      mul r12.xyzw, r4.xyxy, l(0.500000, -0.500000, -0.500000, 0.500000)
      add r4.x, -r4.z, l(1.000000)
      rcp r4.x, r4.x
      max r4.x, r4.x, l(-340282346638528859811704183484516925440.000000)
      min r4.x, r4.x, l(340282346638528859811704183484516925440.000000)
      mad r4.xy, r12.xyxx, r4.xxxx, l(0.500000, 0.500000, 0.000000, 0.000000)
      add r4.z, r4.z, l(1.000000)
      rcp r4.z, r4.z
      max r4.z, r4.z, l(-340282346638528859811704183484516925440.000000)
      min r4.z, r4.z, l(340282346638528859811704183484516925440.000000)
      mad r10.xy, r12.zwzz, r4.zzzz, l(0.500000, 0.500000, 0.000000, 0.000000)
      movc r4.xy, r5.wwww, r4.xyxx, r10.xyxx
      mad r4.xy, r4.xyxx, l(0.666666627, 0.666666627, 0.000000, 0.000000), l(0.166666672, 0.166666672, 0.000000, 0.000000)
      itof r12.y, cb12[111].x
      itof r12.z, r6.x
      mov r12.xw, l(0,0,0,0)
      add r4.xy, r4.xyxx, r12.zwzz
      add r4.xy, r4.xyxx, r12.xyxx
      mul r4.xy, r4.xyxx, l(0.500000, 0.142857149, 0.000000, 0.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, r4.xyxx, t23.xyzw, s11, l(0.000000)
      mad r9.xyz, r2.wwww, r4.xyzx, r9.xyzx
    endif
    div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
    mul r8.xyz, r2.xxxx, r9.xyzx
  endif
  add r4.xyz, r5.xyzx, -r8.xyzx
  mad r5.xyz, r1.xxxx, r4.xyzx, r8.xyzx
  mad r0.z, r0.z, l(4.000000), l(-1.000000)
  mul_sat r0.z, r0.z, l(2.500000)
  mov r3.w, l(1.000000)
  dp4 r1.x, cb3[10].xyzw, r3.xyzw
  dp4 r2.x, cb3[11].xyzw, r3.xyzw
  dp4 r2.w, cb3[12].xyzw, r3.xyzw
  mul r4.xyz, r2.xxxx, cb12[14].xywx
  mad r4.xyz, cb12[13].xywx, r1.xxxx, r4.xyzx
  mad r4.xyz, cb12[15].xywx, r2.wwww, r4.xyzx
  add r4.xyz, r4.xyzx, cb12[16].xywx
  div r2.xw, r4.xxxy, r4.zzzz
  mad r2.xw, r2.xxxw, r7.xxxy, r7.zzzw
  eq r1.x, r1.y, l(1.000000)
  lt r1.y, l(0.000000), r0.z
  and r1.x, r1.y, r1.x
  if_nz r1.x
    mad r1.x, r4.w, cb12[22].x, cb12[22].y
    add r4.xy, -r7.zwzz, r11.xyxx
    div r4.xy, r4.xyxx, r7.xyxx
    mul r8.xyzw, r4.yyyy, cb12[208].xyzw
    mad r4.xyzw, cb12[207].xyzw, r4.xxxx, r8.xyzw
    mad r4.xyzw, cb12[209].xyzw, r1.xxxx, r4.xyzw
    add r4.xyzw, r4.xyzw, cb12[210].xyzw
    div r4.xyz, r4.xyzx, r4.wwww
    add r1.x, -r3.z, cb3[2].z
    add r1.y, r4.z, r1.x
    add r1.y, -r3.z, r1.y
    div r1.x, r1.x, r1.y
    add r4.xy, r4.xyxx, -cb3[2].xyxx
    mad r3.xy, r1.xxxx, r4.xyxx, cb3[2].xyxx
    dp4 r1.x, cb3[10].xyzw, r3.xyzw
    dp4 r1.y, cb3[11].xyzw, r3.xyzw
    dp4 r3.x, cb3[12].xyzw, r3.xyzw
    mul r3.yzw, r1.yyyy, cb12[14].xxyw
    mad r3.yzw, cb12[13].xxyw, r1.xxxx, r3.yyzw
    mad r3.xyz, cb12[15].xywx, r3.xxxx, r3.yzwy
    add r3.xyz, r3.xyzx, cb12[16].xywx
    div r1.xy, r3.xyxx, r3.zzzz
    mad r1.xy, r1.xyxx, r7.xyxx, r7.zwzz
    add r1.xy, -r2.xwxx, r1.xyxx
    mad r2.xw, r0.zzzz, r1.xxxy, r2.xxxw
  endif
  max r1.xy, r6.ywyy, r2.xwxx
  min r1.xy, r10.zwzz, r1.xyxx
  eq r2.xw, r2.xxxw, r1.xxxy
  and r0.z, r2.w, r2.x
  not r2.x, r0.z
  div r1.xy, r1.xyxx, cb3[3].xxxx
  movc r1.xy, r0.zzzz, r1.xyxx, r2.yzyy
  mov r5.w, l(1.000000)
else
  mov r0.w, l(0)
  ld_indexable(texture2d)(float,float,float,float) r0.x, r0.xyww, t2.xyzw
  div r0.yz, r1.zzwz, cb3[0].xxyx
  mad r0.yz, r0.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  mul r3.xyzw, -r0.zzzz, cb12[208].xyzw
  mad r3.xyzw, cb12[207].xyzw, r0.yyyy, r3.xyzw
  mad r0.xyzw, cb12[209].xyzw, r0.xxxx, r3.xyzw
  add r0.xyzw, r0.xyzw, cb12[210].xyzw
  div r0.xyz, r0.xyzx, r0.wwww
  mov r0.w, l(1.000000)
  dp4 r1.z, cb3[10].xyzw, r0.xyzw
  dp4 r1.w, cb3[11].xyzw, r0.xyzw
  dp4 r0.x, cb3[12].xyzw, r0.xyzw
  mul r0.yzw, r1.wwww, cb12[14].xxyw
  mad r0.yzw, cb12[13].xxyw, r1.zzzz, r0.yyzw
  mad r0.xyz, cb12[15].xywx, r0.xxxx, r0.yzwy
  add r0.xyz, r0.xyzx, cb12[16].xywx
  div r0.xy, r0.xyxx, r0.zzzz
  mul r3.xyzw, cb3[0].xyxy, l(0.500000, -0.500000, 0.500000, 0.500000)
  div r3.xyzw, r3.xyzw, cb3[0].zwzw
  mad r0.xy, r0.xyxx, r3.xyxx, r3.zwzz
  div r0.zw, l(0.000000, 0.000000, 0.500000, 0.500000), cb3[0].zzzw
  add r1.zw, cb3[0].xxxy, l(0.000000, 0.000000, -1.500000, -1.500000)
  div r1.zw, r1.zzzw, cb3[0].zzzw
  max r0.xy, r0.zwzz, r0.xyxx
  min r1.xy, r1.zwzz, r0.xyxx
  mov r5.xyzw, l(0,0,0,0)
  mov r2.x, l(0)
endif
dp4 r0.x, l(0.333000, 0.333000, 0.333000, 0.333000), r5.xyzw
ne r0.x, r0.x, r0.x
max r3.xyzw, r5.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
movc o0.xyzw, r0.xxxx, l(0,0,0,0), r3.xyzw
sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, r1.xyxx, t3.xyzw, s1, l(0.000000)
dp4 r1.x, l(0.333000, 0.333000, 0.333000, 0.333000), r0.xyzw
ne r1.x, r1.x, r1.x
max r0.xyzw, r0.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r0.xyzw, r1.xxxx, l(0,0,0,0), r0.xyzw
movc o1.xyzw, r2.xxxx, r5.xyzw, r0.xyzw
ret
// Approximately 0 instruction slots used

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