//Shadows PS 1 ultra+.
// ---- Created with 3Dmigoto v1.3.16 on Thu Dec 15 00:44:43 2022
//Texture2DArray<float4> t19 : register(t19);
//
//Texture2DArray<float4> t15 : register(t15);
//
//Texture2DArray<float4> t14 : register(t14);
//
//Texture2DArray<float4> t8 : register(t8);
//
//Texture2D<float4> t2 : register(t2);
//
//Texture2D<float4> t1 : register(t1);
//
//Texture2D<float4> t0 : register(t0);
//
//SamplerState s14_s : register(s14);
//
//SamplerState s10_s : register(s10);
//
//SamplerComparisonState s9_s : register(s9);
//
//cbuffer cb13 : register(b13)
//{
//  float4 cb13[49];
//}
//
//cbuffer cb12 : register(b12)
//{
//  float4 cb12[225];
//}
//
//cbuffer cb0 : register(b0)
//{
//  float4 cb0[215];
//}
//
//
//// 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)
//{
//  const float4 icb[] = { { 1.000000, 0, 0, 0},
//                              { 0, 1.000000, 0, 0},
//                              { 0, 0, 1.000000, 0},
//                              { 0, 0, 0, 1.000000} };
//  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r13;
//  uint4 bitmask, uiDest;
//  float4 fDest;
//  
//  float4 stereo = StereoParams.Load(0);
//  
//  r0.xy = (uint2)v0.xy;
//  r0.zw = float2(0,0);
//  r1.x = t0.Load(r0.xyw).x;
//  r1.y = r1.x * cb12[22].x + cb12[22].y;
//  r1.y = cmp(r1.y < 1);
//  if (r1.y != 0) {
//    r1.yzw = t1.Load(r0.xyw).xyz;
//    r0.z = t2.Load(r0.xyz).w;
//    r2.xy = (uint2)r0.xy;
//	
//	r13.xyzw = cb12[212].xyzw * r2.yyyy;
//    r13.xyzw = cb12[211].xyzw * r2.xxxx + r13.xyzw;
//    r13.xyzw = cb12[213].xyzw * r1.xxxx + r13.xyzw;
//    r13.xyzw = cb12[214].xyzw + r13.xyzw;
//	
//	r2.x+=stereo.x*(stereo.y*r13.w-1)*cb12[220].x;
//	
//    r3.xyzw = cb12[212].xyzw * r2.yyyy;
//    r3.xyzw = cb12[211].xyzw * r2.xxxx + r3.xyzw;
//    r3.xyzw = cb12[213].xyzw * r1.xxxx + r3.xyzw;
//    r3.xyzw = cb12[214].xyzw + r3.xyzw;
//    r3.xyz = r3.xyz / r3.www;
//    r1.xyz = float3(-0.5,-0.5,-0.5) + r1.yzw;
//    r0.w = dot(r1.xyz, r1.xyz);
//    r0.w = rsqrt(r0.w);
//    r1.xyz = r1.xyz * r0.www;
//    r0.z = r0.z * 255 + 0.5;
//    r0.z = (uint)r0.z;
//    r0.z = (int)r0.z & 26;
//    r0.w = cmp(0 < asint(cb13[35].x));
//    if (r0.w != 0) {
//      r0.w = cmp(0 < asint(cb13[35].y));
//      if (r0.w != 0) {
//        r4.y = 0;
//        r5.xyz = float3(0,0,0);
//        r0.w = 0;
//        while (true) {
//          r1.w = cmp((int)r5.z >= asint(cb13[35].y));
//          r0.w = 0;
//          if (r1.w != 0) break;
//          r2.zw = -cb13[r5.z+39].xy + r3.xy;
//          r2.zw = cb13[r5.z+39].zw * r2.zw;
//          r4.zw = cmp(r2.zw >= float2(0,0));
//          r1.w = r4.w ? r4.z : 0;
//          r4.zw = cmp(float2(1,1) >= r2.zw);
//          r1.w = r1.w ? r4.z : 0;
//          r1.w = r4.w ? r1.w : 0;
//          if (r1.w != 0) {
//            r4.zw = cb13[r5.z+44].zw + -cb13[r5.z+44].xy;
//            r2.zw = r2.zw * r4.zw + cb13[r5.z+44].xy;
//            r6.xyzw = float4(0.00048828125,-0.00048828125,0.00244140625,-0.00048828125) + r2.zwzw;
//            r7.z = (int)r5.z;
//            r7.xy = r6.xy;
//            r3.w = t15.SampleLevel(s10_s, r7.xyz, 0).x;
//            r5.x = cb13[38].x * r3.w + cb13[38].y;
//            r7.xy = r6.zw;
//            r3.w = t15.SampleLevel(s10_s, r7.xyz, 0).x;
//            r3.w = cb13[38].x * r3.w + cb13[38].y;
//            r6.xyzw = float4(0.00048828125,0.00146484375,-0.00146484375,-0.00048828125) + r2.zwzw;
//            r7.xy = r6.xy;
//            r4.z = t15.SampleLevel(s10_s, r7.xyz, 0).x;
//            r4.z = cb13[38].x * r4.z + cb13[38].y;
//            r7.xy = r6.zw;
//            r4.w = t15.SampleLevel(s10_s, r7.xyz, 0).x;
//            r4.w = cb13[38].x * r4.w + cb13[38].y;
//            r7.xy = float2(0.00048828125,-0.00244140625) + r2.zw;
//            r2.z = t15.SampleLevel(s10_s, r7.xyz, 0).x;
//            r2.z = cb13[38].x * r2.z + cb13[38].y;
//            r2.w = r3.w + -r5.x;
//            r3.w = r4.w + -r5.x;
//            r2.w = max(abs(r3.w), abs(r2.w));
//            r3.w = r4.z + -r5.x;
//            r2.z = r2.z + -r5.x;
//            r2.z = max(abs(r3.w), abs(r2.z));
//            r5.y = max(r2.w, r2.z);
//            r0.w = -1;
//            break;
//          }
//          r4.x = (int)r5.z + 1;
//          r5.xyz = r4.yyx;
//          r0.w = r1.w;
//        }
//      } else {
//        r0.w = 0;
//      }
//      r2.zw = r0.ww ? r5.xy : float2(-10000,0);
//      r4.xy = -cb12[0].xy + r3.xy;
//      r0.w = dot(r4.xy, r4.xy);
//      r0.w = sqrt(r0.w);
//      r4.xyz = -cb12[0].xyz + r3.xyz;
//      r1.w = dot(r4.xyz, r4.xyz);
//      r1.w = sqrt(r1.w);
//      r3.w = cmp(r0.w < cb13[36].y);
//      if (r3.w != 0) {
//        r2.w = max(0.100000001, r2.w);
//        r2.w = 1 / r2.w;
//        r3.w = cb13[37].z * r0.w;
//        r3.w = max(1, r3.w);
//        r3.w = cb13[36].x / r3.w;
//        r2.w = min(r3.w, r2.w);
//        r1.w = r1.w * 0.0199999996 + 0.0500000007;
//        r0.w = cb13[36].z + r0.w;
//        r0.w = saturate(cb13[36].w * r0.w);
//        r4.y = r3.z;
//        r4.xz = float2(0,0);
//        r3.w = 0;
//        while (true) {
//          r4.w = cmp((int)r4.z >= asint(cb13[35].x));
//          r3.w = 0;
//          if (r4.w != 0) break;
//          r5.xy = -cb13[r4.z+39].xy + r3.xy;
//          r6.xy = cb13[r4.z+39].zw * r5.xy;
//          r5.xz = cmp(r6.xy >= float2(0,0));
//          r4.w = r5.z ? r5.x : 0;
//          r5.xz = cmp(float2(1,1) >= r6.xy);
//          r4.w = r4.w ? r5.x : 0;
//          r4.w = r5.z ? r4.w : 0;
//          if (r4.w != 0) {
//            r6.z = (int)r4.z;
//            r6.w = -r5.y * cb13[r4.z+39].w + 1;
//            r5.x = t19.SampleLevel(s10_s, r6.xwz, 0).x;
//            r5.x = cb13[38].x * r5.x + cb13[38].y;
//            r5.y = -r4.y + r2.z;
//            r5.y = cmp(abs(r5.y) < r1.w);
//            r5.y = r5.y ? r2.z : r4.y;
//            r5.x = -0.100000001 + r5.x;
//            r5.x = r5.x + -r5.y;
//            r5.x = saturate(r5.x * r2.w);
//            r5.x = 1 + -r5.x;
//            r5.y = 1 + -r5.x;
//            r5.x = r0.w * r5.y + r5.x;
//            r3.w = -1;
//            r4.x = r5.x;
//            break;
//          }
//          r4.z = (int)r4.z + 1;
//          r3.w = r4.w;
//        }
//      } else {
//        r3.w = 0;
//      }
//    } else {
//      r3.w = 0;
//    }
//    r0.w = r3.w ? r4.x : 1;
//    r1.w = cmp(0 < r0.w);
//    if (r1.w != 0) {
//      r1.x = dot(r1.xyz, cb13[0].xyz);
//      r1.y = dot(r2.xy, float2(12.9898005,78.2330017));
//      r1.y = sin(r1.y);
//      r1.y = 43758.5469 * r1.y;
//      r1.y = frac(r1.y);
//      r1.y = 6.28318548 * r1.y;
//      r2.xyz = cb13[5].xyz * r3.yyy;
//      r2.xyz = cb13[4].xyz * r3.xxx + r2.xyz;
//      r2.xyz = cb13[6].xyz * r3.zzz + r2.xyz;
//      r2.xyz = cb13[7].xyz + r2.xyz;
//      r1.z = cmp(abs(r2.z) >= 0.999000013);
//      if (r1.z != 0) {
//        r1.w = 1;
//      }
//      if (r1.z == 0) {
//        r4.xyzw = -cb13[8].xyzw + r2.xxxx;
//        r5.xyzw = -cb13[9].xyzw + r2.yyyy;
//        r4.xyzw = max(abs(r5.xyzw), abs(r4.xyzw));
//        r5.xyzw = cmp(r4.xyzw < cb13[10].xyzw);
//        r5.xyzw = r5.xyzw ? float4(1,1,1,1) : 0;
//        r6.xyzw = cmp(float4(0.5,1.5,2.5,3.5) < cb13[15].zzzz);
//        r6.xyzw = r6.xyzw ? float4(1,1,1,1) : 0;
//        r1.z = dot(r5.xyzw, r6.xyzw);
//        r2.w = cmp(r1.z < 0.5);
//        if (r2.w != 0) {
//          r1.w = 1;
//        }
//        if (r2.w == 0) {
//          r4.xyzw = r4.xyzw / cb13[10].xyzw;
//          r5.xyzw = float4(1,1,1,1) + -cb13[17].xyzw;
//          r4.xyzw = -r5.xyzw + r4.xyzw;
//          r4.xyzw = saturate(r4.xyzw / cb13[17].xyzw);
//          r1.z = cb13[15].z + -r1.z;
//          r1.z = (int)r1.z;
//          r3.w = (int)cb13[15].z;
//          r3.w = (int)r3.w + -1;
//          r5.xy = (int2)r0.xy & int2(1,1);
//          r5.yz = r5.yy ? float2(1.40129846e-45,4.20389539e-45) : float2(2.80259693e-45,0);
//          r5.x = r5.x ? r5.y : r5.z;
//          if (1 == 0) r6.x = 0; else if (1+1 < 32) {           r6.x = (uint)r0.x << (32-(1 + 1)); r6.x = (uint)r6.x >> (32-1);          } else r6.x = (uint)r0.x >> 1;
//          if (1 == 0) r6.y = 0; else if (1+1 < 32) {           r6.y = (uint)r0.y << (32-(1 + 1)); r6.y = (uint)r6.y >> (32-1);          } else r6.y = (uint)r0.y >> 1;
//          if (1 == 0) r6.z = 0; else if (1+2 < 32) {           r6.z = (uint)r0.x << (32-(1 + 2)); r6.z = (uint)r6.z >> (32-1);          } else r6.z = (uint)r0.x >> 2;
//          if (1 == 0) r6.w = 0; else if (1+2 < 32) {           r6.w = (uint)r0.y << (32-(1 + 2)); r6.w = (uint)r6.w >> (32-1);          } else r6.w = (uint)r0.y >> 2;
//          r7.xyzw = r6.yyww ? float4(1,3,1,3) : float4(2,0,2,0);
//          r5.yz = r6.xz ? r7.xz : r7.yw;
//          r5.x = (uint)r5.x << 6;
//          r5.x = mad((int)r5.y, 16, (int)r5.x);
//          r5.x = mad((int)r5.z, 4, (int)r5.x);
//          if (1 == 0) r0.x = 0; else if (1+3 < 32) {           r0.x = (uint)r0.x << (32-(1 + 3)); r0.x = (uint)r0.x >> (32-1);          } else r0.x = (uint)r0.x >> 3;
//          if (1 == 0) r0.y = 0; else if (1+3 < 32) {           r0.y = (uint)r0.y << (32-(1 + 3)); r0.y = (uint)r0.y >> (32-1);          } else r0.y = (uint)r0.y >> 3;
//          r5.yz = r0.yy ? float2(1.40129846e-45,4.20389539e-45) : float2(2.80259693e-45,0);
//          r0.x = r0.x ? r5.y : r5.z;
//          r0.x = (int)r5.x + (int)r0.x;
//          r0.x = (int)r0.x;
//          r0.x = 0.5 + r0.x;
//          r0.x = 0.00390625 * r0.x;
//          r0.y = dot(r4.xyzw, icb[r1.z+0].xyzw);
//          r0.x = cmp(r0.x < r0.y);
//          r0.x = r0.x ? 0.000000 : 0;
//          r0.x = (int)r0.x + (int)r1.z;
//          r0.x = min((int)r0.x, (int)r3.w);
//          r5.xy = cb13[r0.x+11].zz * float2(1,-1);
//          r5.xy = r2.xy * r5.xy + cb13[r0.x+11].xy;
//          r0.y = max(0, r1.x);
//          r0.y = sqrt(r0.y);
//          r0.y = 1 / r0.y;
//          r0.y = -1 + r0.y;
//          r0.y = max(1, r0.y);
//          r0.y = min(4, r0.y);
//          r1.x = r0.z ? cb13[r0.x+19].x : cb13[r0.x+11].w;
//          r1.z = r0.z ? cb13[r0.x+19].y : 0;
//          r0.z = cmp((int)r0.z != 0);
//          r2.x = cmp(0 < cb13[r0.x+19].z);
//          r0.z = r0.z ? r2.x : 0;
//          r5.z = (int)r0.x;
//          r0.x = r1.x * r0.y;
//          r0.y = cmp(asint(cb13[18].x) >= 1);
//          r0.z = cmp((int)r0.z == 0);
//          r0.y = r0.z ? r0.y : 0;
//          if (r0.y != 0) {
//            sincos(r1.y, r1.x, r2.x);
//            r0.y = t8.SampleCmpLevelZero(s9_s, r5.xyz, r2.z).x;
//            r6.xyzw = float4(-0.263353914,0.0396538191,-0.717202425,0.368303299) * r0.xxxx;
//            r7.y = r2.x;
//            r7.z = r1.x;
//            r7.x = -r1.x;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r8.xyzw = -r1.zzzz * float4(0.0370370373,0.0740740746,0.111111112,0.148148149) + r2.zzzz;
//            r9.xy = r5.xy + r1.xy;
//            r9.z = r5.z;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.y).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(-0.0199530609,-0.398839206,-0.440993786,-0.22101) * r0.xxxx;
//            r10.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r10.xy + r10.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.z).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.w).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.220039204,0.294344813,-0.767565727,-0.148275301) * r0.xxxx;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r8.xyzw = -r1.zzzz * float4(0.185185179,0.222222224,0.259259254,0.296296299) + r2.zzzz;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.y).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(-0.2381019,0.547106206,0.217303097,-0.134587899) * r0.xxxx;
//            r10.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r10.xy + r10.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.z).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.w).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(-0.638777375,0.756133914,-0.1614144,0.977652073) * r0.xxxx;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r8.xyzw = -r1.zzzz * float4(0.333333343,0.370370358,0.407407403,0.444444448) + r2.zzzz;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.y).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.215631902,0.612341285,0.232887506,0.945287228) * r0.xxxx;
//            r10.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r10.xy + r10.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.z).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.w).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(-0.944064379,0.123607703,-0.740823686,-0.507682979) * r0.xxxx;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r8.xyzw = -r1.zzzz * float4(0.481481493,0.518518507,0.555555582,0.592592597) + r2.zzzz;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.y).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(-0.411301911,-0.890596688,-0.248642907,-0.621399283) * r0.xxxx;
//            r10.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r10.xy + r10.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.z).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.w).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.696784973,0.264493704,0.539436281,0.817321479) * r0.xxxx;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r8.xyzw = -r1.zzzz * float4(0.629629612,0.666666687,0.703703701,0.740740716) + r2.zzzz;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.y).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.615120828,-0.149864003,0.0936533585,-0.78174752) * r0.xxxx;
//            r10.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r10.xy + r10.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.z).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.w).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.276806712,-0.489596814,0.663918078,-0.600717187) * r0.xxxx;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r8.xyzw = -r1.zzzz * float4(0.777777791,0.814814806,0.851851881,0.888888896) + r2.zzzz;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.y).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.388036907,-0.895089388,0.991614401,-0.0793915167) * r0.xxxx;
//            r10.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r10.xy + r10.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.z).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r8.w).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = float4(0.783184826,0.602934778,0.899860322,-0.398354292) * r0.xxxx;
//            r8.xyzw = r7.yzxy * r6.xxyy;
//            r1.xy = r8.xy + r8.zw;
//            r2.xy = -r1.zz * float2(0.92592591,0.962962985) + r2.zz;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r2.x).x;
//            r0.y = r0.y + r0.z;
//            r6.xyzw = r7.yzxy * r6.zzww;
//            r1.xy = r6.xy + r6.zw;
//            r9.xy = r5.xy + r1.xy;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r9.xyz, r2.y).x;
//            r0.y = r0.y + r0.z;
//            r0.y = 0.0370370373 * r0.y;
//            r0.y = r0.y * r0.y;
//          } else {
//            r0.z = t8.SampleCmpLevelZero(s9_s, r5.xyz, r2.z).x;
//            r6.xyzw = -r1.zzzz * float4(0.0769230798,0.15384616,0.230769232,0.307692319) + r2.zzzz;
//            r7.xyzw = r0.xxxx * float4(-0.507720828,-0.617089927,-0.0515490212,-0.750809789) + r5.xyxy;
//            r8.xy = r7.xy;
//            r8.z = r5.z;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.x).x;
//            r0.z = r1.x + r0.z;
//            r8.xy = r7.zw;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.y).x;
//            r0.z = r1.x + r0.z;
//            r7.xyzw = r0.xxxx * float4(-0.764104187,0.200915202,0.00728477398,-0.205946997) + r5.xyxy;
//            r8.xy = r7.xy;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.z).x;
//            r0.z = r1.x + r0.z;
//            r8.xy = r7.zw;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.w).x;
//            r0.z = r1.x + r0.z;
//            r6.xyzw = -r1.zzzz * float4(0.384615391,0.461538464,0.538461566,0.615384638) + r2.zzzz;
//            r7.xyzw = r0.xxxx * float4(-0.366203994,0.732379675,-0.923958182,-0.255964309) + r5.xyxy;
//            r8.xy = r7.xy;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.x).x;
//            r0.z = r1.x + r0.z;
//            r8.xy = r7.zw;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.y).x;
//            r0.z = r1.x + r0.z;
//            r7.xyzw = r0.xxxx * float4(-0.286924005,0.278052986,0.772301197,0.157332897) + r5.xyxy;
//            r8.xy = r7.xy;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.z).x;
//            r0.z = r1.x + r0.z;
//            r8.xy = r7.zw;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.w).x;
//            r0.z = r1.x + r0.z;
//            r6.xyzw = -r1.zzzz * float4(0.692307711,0.769230783,0.846153855,0.923076928) + r2.zzzz;
//            r7.xyzw = r0.xxxx * float4(0.378513008,0.405219913,0.463021696,-0.691461921) + r5.xyxy;
//            r8.xy = r7.xy;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.x).x;
//            r0.z = r1.x + r0.z;
//            r8.xy = r7.zw;
//            r1.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.y).x;
//            r0.z = r1.x + r0.z;
//            r7.xyzw = r0.xxxx * float4(0.423523009,0.86302799,0.855864286,-0.338255405) + r5.xyxy;
//            r8.xy = r7.xy;
//            r0.x = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.z).x;
//            r0.x = r0.z + r0.x;
//            r8.xy = r7.zw;
//            r0.z = t8.SampleCmpLevelZero(s9_s, r8.xyz, r6.w).x;
//            r0.x = r0.x + r0.z;
//            r0.x = 0.0769230798 * r0.x;
//            r0.y = r0.x * r0.x;
//          }
//          r0.x = (int)r3.w;
//          r0.x = cmp(r5.z >= r0.x);
//          r0.x = r0.x ? 1.000000 : 0;
//          r0.z = dot(r4.xyzw, icb[r3.w+0].xyzw);
//          r0.x = r0.x * r0.z + r0.y;
//          r0.x = min(1, r0.x);
//        } else {
//          r0.x = 1;
//        }
//        r1.w = r2.w ? r1.w : r0.x;
//      }
//      r0.x = r1.w * r0.w;
//      r0.y = 20 * cb12[66].x;
//      r1.zw = trunc(cb12[68].xy);
//      r2.xyz = -cb12[0].xyz + r3.xyz;
//      r0.z = dot(r2.xyz, r2.xyz);
//      r0.z = sqrt(r0.z);
//      r2.xy = cb12[67].xy;
//      r2.z = 0;
//      r2.xyz = r3.xyz + r2.xyz;
//      r2.xyz = float3(0.00999999978,0.00999999978,0.00999999978) * r2.xyz;
//      r2.xyz = r2.xyz / cb12[66].xxx;
//      r4.xy = float2(20,20) * cb12[67].xy;
//      r4.z = 0;
//      r3.xyz = r4.xyz + r3.xyz;
//      r3.xyz = float3(0.00999999978,0.00999999978,0.00999999978) * r3.xyz;
//      r3.xyz = r3.xyz / r0.yyy;
//      r2.zw = cb13[0].xy * r2.zz;
//      r2.zw = r2.zw / cb13[0].zz;
//      r1.xy = r2.xy + -r2.zw;
//      r2.xy = cb13[0].xy * r3.zz;
//      r2.xy = r2.xy / cb13[0].zz;
//      r2.xy = r3.xy + -r2.xy;
//      r0.y = t14.SampleLevel(s14_s, r1.xyz, 1).x;
//      r1.x = t14.SampleLevel(s14_s, r1.xyw, 1).x;
//      r1.x = r1.x + -r0.y;
//      r0.y = cb12[66].w * r1.x + r0.y;
//      r2.zw = r1.zw;
//      r1.x = t14.SampleLevel(s14_s, r2.xyz, 1).x;
//      r1.y = t14.SampleLevel(s14_s, r2.xyw, 1).x;
//      r1.y = r1.y + -r1.x;
//      r1.x = cb12[66].w * r1.y + r1.x;
//      r1.y = -0.25 + cb13[0].z;
//      r1.y = saturate(10 * r1.y);
//      r0.z = -100 + r0.z;
//      r0.z = saturate(0.00666666683 * r0.z);
//      r1.x = r1.x + -r0.y;
//      r0.y = r0.z * r1.x + r0.y;
//      r0.y = -r1.y * r0.y + 1;
//      r0.w = r0.x * r0.y;
//    }
//  } else {
//    r0.w = 1;
//  }
//  o0.xyzw = r0.wwww;
//  return;
//}
//
///*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Thu Dec 15 00:44:43 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
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000} }
dcl_constantbuffer CB12[225], immediateIndexed
dcl_constantbuffer CB13[49], dynamicIndexed
dcl_sampler s9, mode_comparison
dcl_sampler s10, mode_default
dcl_sampler s14, 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_texture2darray (float,float,float,float) t8
dcl_resource_texture2darray (float,float,float,float) t14
dcl_resource_texture2darray (float,float,float,float) t15
dcl_resource_texture2darray (float,float,float,float) t19
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 44
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r40.xyzw, l(0, 0, 0, 0), t125.xyzw
ftou r0.xy, v0.xyxx
mov r0.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.x, r0.xyww, t0.xyzw
mad r1.y, r1.x, cb12[22].x, cb12[22].y
lt r1.y, r1.y, l(1.000000)
if_nz r1.y
  ld_indexable(texture2d)(float,float,float,float) r1.yzw, r0.xyww, t1.wxyz
  ld_indexable(texture2d)(float,float,float,float) r0.z, r0.xyzw, t2.xywz
  utof r2.xy, r0.xyxx
  
  mul r23.xyzw, r2.yyyy, cb12[212].xyzw
  mad r23.xyzw, cb12[211].xyzw, r2.xxxx, r23.xyzw
  mad r23.xyzw, cb12[213].xyzw, r1.xxxx, r23.xyzw
  add r23.xyzw, r23.xyzw, cb12[214].xyzw
  
  mad r30.x, r40.y, r23.w, l(-1.0)
  mul r30.x, r30.x, cb12[220].x
  mad r2.x, r40.x, r30.x, r2.x
  
  mul r3.xyzw, r2.yyyy, cb12[212].xyzw
  mad r3.xyzw, cb12[211].xyzw, r2.xxxx, r3.xyzw
  mad r3.xyzw, cb12[213].xyzw, r1.xxxx, r3.xyzw
  add r3.xyzw, r3.xyzw, cb12[214].xyzw
  div r3.xyz, r3.xyzx, r3.wwww
  add r1.xyz, r1.yzwy, l(-0.500000, -0.500000, -0.500000, 0.000000)
  dp3 r0.w, r1.xyzx, r1.xyzx
  rsq r0.w, r0.w
  mul r1.xyz, r0.wwww, r1.xyzx
  mad r0.z, r0.z, l(255.000000), l(0.500000)
  ftou r0.z, r0.z
  and r0.z, r0.z, l(26)
  ilt r0.w, l(0), cb13[35].x
  if_nz r0.w
    ilt r0.w, l(0), cb13[35].y
    if_nz r0.w
      mov r4.y, l(0)
      mov r5.xyz, l(0,0,0,0)
      mov r0.w, l(0)
      loop
        ige r1.w, r5.z, cb13[35].y
        mov r0.w, l(0)
        breakc_nz r1.w
        add r2.zw, r3.xxxy, -cb13[r5.z + 39].xxxy
        mul r2.zw, r2.zzzw, cb13[r5.z + 39].zzzw
        ge r4.zw, r2.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        and r1.w, r4.w, r4.z
        ge r4.zw, l(0.000000, 0.000000, 1.000000, 1.000000), r2.zzzw
        and r1.w, r1.w, r4.z
        and r1.w, r4.w, r1.w
        if_nz r1.w
          add r4.zw, -cb13[r5.z + 44].xxxy, cb13[r5.z + 44].zzzw
          mad r2.zw, r2.zzzw, r4.zzzw, cb13[r5.z + 44].xxxy
          add r6.xyzw, r2.zwzw, l(0.000488281250, -0.000488281250, 0.00244140625, -0.000488281250)
          itof r7.z, r5.z
          mov r7.xy, r6.xyxx
          sample_l_indexable(texture2darray)(float,float,float,float) r3.w, r7.xyzx, t15.yzwx, s10, l(0.000000)
          mad r5.x, cb13[38].x, r3.w, cb13[38].y
          mov r7.xy, r6.zwzz
          sample_l_indexable(texture2darray)(float,float,float,float) r3.w, r7.xyzx, t15.yzwx, s10, l(0.000000)
          mad r3.w, cb13[38].x, r3.w, cb13[38].y
          add r6.xyzw, r2.zwzw, l(0.000488281250, 0.00146484375, -0.00146484375, -0.000488281250)
          mov r7.xy, r6.xyxx
          sample_l_indexable(texture2darray)(float,float,float,float) r4.z, r7.xyzx, t15.yzxw, s10, l(0.000000)
          mad r4.z, cb13[38].x, r4.z, cb13[38].y
          mov r7.xy, r6.zwzz
          sample_l_indexable(texture2darray)(float,float,float,float) r4.w, r7.xyzx, t15.yzwx, s10, l(0.000000)
          mad r4.w, cb13[38].x, r4.w, cb13[38].y
          add r7.xy, r2.zwzz, l(0.000488281250, -0.00244140625, 0.000000, 0.000000)
          sample_l_indexable(texture2darray)(float,float,float,float) r2.z, r7.xyzx, t15.yzxw, s10, l(0.000000)
          mad r2.z, cb13[38].x, r2.z, cb13[38].y
          add r2.w, -r5.x, r3.w
          add r3.w, -r5.x, r4.w
          max r2.w, |r2.w|, |r3.w|
          add r3.w, -r5.x, r4.z
          add r2.z, -r5.x, r2.z
          max r2.z, |r2.z|, |r3.w|
          max r5.y, r2.z, r2.w
          mov r0.w, l(-1)
          break
        endif
        iadd r4.x, r5.z, l(1)
        mov r5.xyz, r4.yyxy
        mov r0.w, r1.w
      endloop
    else
      mov r0.w, l(0)
    endif
    movc r2.zw, r0.wwww, r5.xxxy, l(0,0,-10000.000000,0)
    add r4.xy, r3.xyxx, -cb12[0].xyxx
    dp2 r0.w, r4.xyxx, r4.xyxx
    sqrt r0.w, r0.w
    add r4.xyz, r3.xyzx, -cb12[0].xyzx
    dp3 r1.w, r4.xyzx, r4.xyzx
    sqrt r1.w, r1.w
    lt r3.w, r0.w, cb13[36].y
    if_nz r3.w
      max r2.w, r2.w, l(0.100000)
      div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
      mul r3.w, r0.w, cb13[37].z
      max r3.w, r3.w, l(1.000000)
      div r3.w, cb13[36].x, r3.w
      min r2.w, r2.w, r3.w
      mad r1.w, r1.w, l(0.020000), l(0.050000)
      add r0.w, r0.w, cb13[36].z
      mul_sat r0.w, r0.w, cb13[36].w
      mov r4.y, r3.z
      mov r4.xz, l(0,0,0,0)
      mov r3.w, l(0)
      loop
        ige r4.w, r4.z, cb13[35].x
        mov r3.w, l(0)
        breakc_nz r4.w
        add r5.xy, r3.xyxx, -cb13[r4.z + 39].xyxx
        mul r6.xy, r5.xyxx, cb13[r4.z + 39].zwzz
        ge r5.xz, r6.xxyx, l(0.000000, 0.000000, 0.000000, 0.000000)
        and r4.w, r5.z, r5.x
        ge r5.xz, l(1.000000, 0.000000, 1.000000, 0.000000), r6.xxyx
        and r4.w, r4.w, r5.x
        and r4.w, r5.z, r4.w
        if_nz r4.w
          itof r6.z, r4.z
          mad r6.w, -r5.y, cb13[r4.z + 39].w, l(1.000000)
          sample_l_indexable(texture2darray)(float,float,float,float) r5.x, r6.xwzx, t19.xyzw, s10, l(0.000000)
          mad r5.x, cb13[38].x, r5.x, cb13[38].y
          add r5.y, r2.z, -r4.y
          lt r5.y, |r5.y|, r1.w
          movc r5.y, r5.y, r2.z, r4.y
          add r5.x, r5.x, l(-0.100000)
          add r5.x, -r5.y, r5.x
          mul_sat r5.x, r2.w, r5.x
          add r5.x, -r5.x, l(1.000000)
          add r5.y, -r5.x, l(1.000000)
          mad r5.x, r0.w, r5.y, r5.x
          mov r3.w, l(-1)
          mov r4.x, r5.x
          break
        endif
        iadd r4.z, r4.z, l(1)
        mov r3.w, r4.w
      endloop
    else
      mov r3.w, l(0)
    endif
  else
    mov r3.w, l(0)
  endif
  movc r0.w, r3.w, r4.x, l(1.000000)
  lt r1.w, l(0.000000), r0.w
  if_nz r1.w
    dp3 r1.x, r1.xyzx, cb13[0].xyzx
    dp2 r1.y, r2.xyxx, l(12.989800, 78.233002, 0.000000, 0.000000)
    sincos r1.y, null, r1.y
    mul r1.y, r1.y, l(43758.546875)
    frc r1.y, r1.y
    mul r1.y, r1.y, l(6.28318548)
    mul r2.xyz, r3.yyyy, cb13[5].xyzx
    mad r2.xyz, cb13[4].xyzx, r3.xxxx, r2.xyzx
    mad r2.xyz, cb13[6].xyzx, r3.zzzz, r2.xyzx
    add r2.xyz, r2.xyzx, cb13[7].xyzx
    ge r1.z, |r2.z|, l(0.999000)
    if_nz r1.z
      mov r1.w, l(1.000000)
    endif
    if_z r1.z
      add r4.xyzw, r2.xxxx, -cb13[8].xyzw
      add r5.xyzw, r2.yyyy, -cb13[9].xyzw
      max r4.xyzw, |r4.xyzw|, |r5.xyzw|
      lt r5.xyzw, r4.xyzw, cb13[10].xyzw
      and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
      lt r6.xyzw, l(0.500000, 1.500000, 2.500000, 3.500000), cb13[15].zzzz
      and r6.xyzw, r6.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
      dp4 r1.z, r5.xyzw, r6.xyzw
      lt r2.w, r1.z, l(0.500000)
      if_nz r2.w
        mov r1.w, l(1.000000)
      endif
      if_z r2.w
        div r4.xyzw, r4.xyzw, cb13[10].xyzw
        add r5.xyzw, -cb13[17].xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
        add r4.xyzw, r4.xyzw, -r5.xyzw
        div_sat r4.xyzw, r4.xyzw, cb13[17].xyzw
        add r1.z, -r1.z, cb13[15].z
        ftoi r1.z, r1.z
        ftoi r3.w, cb13[15].z
        iadd r3.w, r3.w, l(-1)
        and r5.xy, r0.xyxx, l(1, 1, 0, 0)
        movc r5.yz, r5.yyyy, l(0,1,3,0), l(0,2,0,0)
        movc r5.x, r5.x, r5.y, r5.z
        ubfe r6.xyzw, l(1, 1, 1, 1), l(1, 1, 2, 2), r0.xyxy
        movc r7.xyzw, r6.yyww, l(1,3,1,3), l(2,0,2,0)
        movc r5.yz, r6.xxzx, r7.xxzx, r7.yywy
        ishl r5.x, r5.x, l(6)
        imad r5.x, r5.y, l(16), r5.x
        imad r5.x, r5.z, l(4), r5.x
        ubfe r0.xy, l(1, 1, 0, 0), l(3, 3, 0, 0), r0.xyxx
        movc r5.yz, r0.yyyy, l(0,1,3,0), l(0,2,0,0)
        movc r0.x, r0.x, r5.y, r5.z
        iadd r0.x, r5.x, r0.x
        itof r0.x, r0.x
        add r0.x, r0.x, l(0.500000)
        mul r0.x, r0.x, l(0.00390625000)
        dp4 r0.y, r4.xyzw, icb[r1.z + 0].xyzw
        lt r0.x, r0.x, r0.y
        and r0.x, r0.x, l(1)
        iadd r0.x, r0.x, r1.z
        imin r0.x, r3.w, r0.x
        mul r5.xy, l(1.000000, -1.000000, 0.000000, 0.000000), cb13[r0.x + 11].zzzz
        mad r5.xy, r2.xyxx, r5.xyxx, cb13[r0.x + 11].xyxx
        max r0.y, r1.x, l(0.000000)
        sqrt 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)
        max r0.y, r0.y, l(1.000000)
        min r0.y, r0.y, l(4.000000)
        movc r1.x, r0.z, cb13[r0.x + 19].x, cb13[r0.x + 11].w
        movc r1.z, r0.z, cb13[r0.x + 19].y, l(0)
        ine r0.z, r0.z, l(0)
        lt r2.x, l(0.000000), cb13[r0.x + 19].z
        and r0.z, r0.z, r2.x
        itof r5.z, r0.x
        mul r0.x, r0.y, r1.x
        ige r0.y, cb13[18].x, l(1)
        ieq r0.z, r0.z, l(0)
        and r0.y, r0.z, r0.y
        if_nz r0.y
          sincos r1.x, r2.x, r1.y
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.y, r5.xyzx, t8.xxxx, s9, r2.z
          mul r6.xyzw, r0.xxxx, l(-0.263353914, 0.0396538191, -0.717202425, 0.368303299)
          mov r7.y, r2.x
          mov r7.z, r1.x
          mov r7.x, -r1.x
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r8.xyzw, -r1.zzzz, l(0.0370370373, 0.0740740746, 0.111111112, 0.148148149), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          mov r9.z, r5.z
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.y
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(-0.0199530609, -0.398839206, -0.440993786, -0.221010)
          mul r10.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r10.zwzz, r10.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.z
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.w
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.220039204, 0.294344813, -0.767565727, -0.148275301)
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r8.xyzw, -r1.zzzz, l(0.185185179, 0.222222224, 0.259259254, 0.296296299), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.y
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(-0.238101900, 0.547106206, 0.217303097, -0.134587899)
          mul r10.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r10.zwzz, r10.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.z
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.w
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(-0.638777375, 0.756133914, -0.161414400, 0.977652073)
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r8.xyzw, -r1.zzzz, l(0.333333343, 0.370370358, 0.407407403, 0.444444448), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.y
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.215631902, 0.612341285, 0.232887506, 0.945287228)
          mul r10.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r10.zwzz, r10.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.z
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.w
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(-0.944064379, 0.123607703, -0.740823686, -0.507683)
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r8.xyzw, -r1.zzzz, l(0.481481493, 0.518518507, 0.555555582, 0.592592597), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.y
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(-0.411301911, -0.890596688, -0.248642907, -0.621399283)
          mul r10.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r10.zwzz, r10.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.z
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.w
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.696785, 0.264493704, 0.539436281, 0.817321479)
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r8.xyzw, -r1.zzzz, l(0.629629612, 0.666666687, 0.703703701, 0.740740716), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.y
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.615120828, -0.149864, 0.0936533585, -0.781747520)
          mul r10.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r10.zwzz, r10.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.z
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.w
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.276806712, -0.489596814, 0.663918078, -0.600717187)
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r8.xyzw, -r1.zzzz, l(0.777777791, 0.814814806, 0.851851881, 0.888888896), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.y
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.388036907, -0.895089388, 0.991614401, -0.0793915167)
          mul r10.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r10.zwzz, r10.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.z
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r8.w
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r0.xxxx, l(0.783184826, 0.602934778, 0.899860322, -0.398354292)
          mul r8.xyzw, r6.xxyy, r7.yzxy
          add r1.xy, r8.zwzz, r8.xyxx
          mad r2.xy, -r1.zzzz, l(0.925925910, 0.962963, 0.000000, 0.000000), r2.zzzz
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r2.x
          add r0.y, r0.z, r0.y
          mul r6.xyzw, r6.zzww, r7.yzxy
          add r1.xy, r6.zwzz, r6.xyxx
          add r9.xy, r1.xyxx, r5.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r9.xyzx, t8.xxxx, s9, r2.y
          add r0.y, r0.z, r0.y
          mul r0.y, r0.y, l(0.0370370373)
          mul r0.y, r0.y, r0.y
        else
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r5.xyzx, t8.xxxx, s9, r2.z
          mad r6.xyzw, -r1.zzzz, l(0.0769230798, 0.153846160, 0.230769232, 0.307692319), r2.zzzz
          mad r7.xyzw, r0.xxxx, l(-0.507720828, -0.617089927, -0.0515490212, -0.750809789), r5.xyxy
          mov r8.xy, r7.xyxx
          mov r8.z, r5.z
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.x
          add r0.z, r0.z, r1.x
          mov r8.xy, r7.zwzz
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.y
          add r0.z, r0.z, r1.x
          mad r7.xyzw, r0.xxxx, l(-0.764104187, 0.200915202, 0.00728477398, -0.205947), r5.xyxy
          mov r8.xy, r7.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.z
          add r0.z, r0.z, r1.x
          mov r8.xy, r7.zwzz
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.w
          add r0.z, r0.z, r1.x
          mad r6.xyzw, -r1.zzzz, l(0.384615391, 0.461538464, 0.538461566, 0.615384638), r2.zzzz
          mad r7.xyzw, r0.xxxx, l(-0.366204, 0.732379675, -0.923958182, -0.255964309), r5.xyxy
          mov r8.xy, r7.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.x
          add r0.z, r0.z, r1.x
          mov r8.xy, r7.zwzz
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.y
          add r0.z, r0.z, r1.x
          mad r7.xyzw, r0.xxxx, l(-0.286924, 0.278053, 0.772301197, 0.157332897), r5.xyxy
          mov r8.xy, r7.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.z
          add r0.z, r0.z, r1.x
          mov r8.xy, r7.zwzz
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.w
          add r0.z, r0.z, r1.x
          mad r6.xyzw, -r1.zzzz, l(0.692307711, 0.769230783, 0.846153855, 0.923076928), r2.zzzz
          mad r7.xyzw, r0.xxxx, l(0.378513, 0.405219913, 0.463021696, -0.691461921), r5.xyxy
          mov r8.xy, r7.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.x
          add r0.z, r0.z, r1.x
          mov r8.xy, r7.zwzz
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r1.x, r8.xyzx, t8.xxxx, s9, r6.y
          add r0.z, r0.z, r1.x
          mad r7.xyzw, r0.xxxx, l(0.423523, 0.863028, 0.855864286, -0.338255405), r5.xyxy
          mov r8.xy, r7.xyxx
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.x, r8.xyzx, t8.xxxx, s9, r6.z
          add r0.x, r0.x, r0.z
          mov r8.xy, r7.zwzz
          sample_c_lz_indexable(texture2darray)(float,float,float,float) r0.z, r8.xyzx, t8.xxxx, s9, r6.w
          add r0.x, r0.z, r0.x
          mul r0.x, r0.x, l(0.0769230798)
          mul r0.y, r0.x, r0.x
        endif
        itof r0.x, r3.w
        ge r0.x, r5.z, r0.x
        and r0.x, r0.x, l(0x3f800000)
        dp4 r0.z, r4.xyzw, icb[r3.w + 0].xyzw
        mad r0.x, r0.x, r0.z, r0.y
        min r0.x, r0.x, l(1.000000)
      else
        mov r0.x, l(1.000000)
      endif
      movc r1.w, r2.w, r1.w, r0.x
    endif
    mul r0.x, r0.w, r1.w
    mul r0.y, cb12[66].x, l(20.000000)
    round_z r1.zw, cb12[68].xxxy
    add r2.xyz, r3.xyzx, -cb12[0].xyzx
    dp3 r0.z, r2.xyzx, r2.xyzx
    sqrt r0.z, r0.z
    mov r2.xy, cb12[67].xyxx
    mov r2.z, l(0)
    add r2.xyz, r2.xyzx, r3.xyzx
    mul r2.xyz, r2.xyzx, l(0.010000, 0.010000, 0.010000, 0.000000)
    div r2.xyz, r2.xyzx, cb12[66].xxxx
    mul r4.xy, cb12[67].xyxx, l(20.000000, 20.000000, 0.000000, 0.000000)
    mov r4.z, l(0)
    add r3.xyz, r3.xyzx, r4.xyzx
    mul r3.xyz, r3.xyzx, l(0.010000, 0.010000, 0.010000, 0.000000)
    div r3.xyz, r3.xyzx, r0.yyyy
    mul r2.zw, r2.zzzz, cb13[0].xxxy
    div r2.zw, r2.zzzw, cb13[0].zzzz
    add r1.xy, -r2.zwzz, r2.xyxx
    mul r2.xy, r3.zzzz, cb13[0].xyxx
    div r2.xy, r2.xyxx, cb13[0].zzzz
    add r2.xy, -r2.xyxx, r3.xyxx
    sample_l_indexable(texture2darray)(float,float,float,float) r0.y, r1.xyzx, t14.yxzw, s14, l(1.000000)
    sample_l_indexable(texture2darray)(float,float,float,float) r1.x, r1.xywx, t14.xyzw, s14, l(1.000000)
    add r1.x, -r0.y, r1.x
    mad r0.y, cb12[66].w, r1.x, r0.y
    mov r2.zw, r1.zzzw
    sample_l_indexable(texture2darray)(float,float,float,float) r1.x, r2.xyzx, t14.xyzw, s14, l(1.000000)
    sample_l_indexable(texture2darray)(float,float,float,float) r1.y, r2.xywx, t14.yxzw, s14, l(1.000000)
    add r1.y, -r1.x, r1.y
    mad r1.x, cb12[66].w, r1.y, r1.x
    add r1.y, cb13[0].z, l(-0.250000)
    mul_sat r1.y, r1.y, l(10.000000)
    add r0.z, r0.z, l(-100.000000)
    mul_sat r0.z, r0.z, l(0.00666666683)
    add r1.x, -r0.y, r1.x
    mad r0.y, r0.z, r1.x, r0.y
    mad r0.y, -r1.y, r0.y, l(1.000000)
    mul r0.w, r0.y, r0.x
  endif
else
  mov r0.w, l(1.000000)
endif
mov o0.xyzw, r0.wwww
ret
// Approximately 0 instruction slots used
