// ---- Created with 3Dmigoto v1.3.16 on Tue May 09 15:56:47 2023
Buffer<float4> t4 : register(t4);

Texture3D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

TextureCube<float4> t0 : register(t0);

SamplerState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb5 : register(b5)
{
  float4 cb5[48];
}

cbuffer cb4 : register(b4)
{
  float4 cb4[53];
}

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

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

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

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




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


void main(
  float4 v0 : ATTRIBUTE0,
  uint v1 : SV_VertexID0,
  out float4 o0 : TEXCOORD10,
  out float4 o1 : TEXCOORD11,
  out float4 o2 : GBX_VERTEX_FOG0,
  out float3 o3 : TEXCOORD9,
  out float4 o4 : SV_POSITION0)
{
// Needs manual fix for instruction:
// unknown dcl_: dcl_input_sgv v1.x, vertex_id
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.x = (int)v1.x + asint(cb0[6].y);
  r0.y = (uint)r0.x << 1;
  r0.yzw = t4.Load(r0.y).xyz;
  bitmask.x = ((~(-1 << 31)) << 1) & 0xffffffff;  r0.x = (((uint)r0.x << 1) & bitmask.x) | ((uint)1 & ~bitmask.x);
  r1.xyzw = t4.Load(r0.x).xyzw;
  r2.xyz = r1.yzx * r0.yzw;
  r0.xyz = r1.xyz * r0.zwy + -r2.xyz;
  r0.xyz = r0.xyz * r1.www;
  r2.xyz = r0.xyz * r1.yzx;
  r0.xyz = r0.zxy * r1.zxy + -r2.xyz;
  r0.xyz = r0.xyz * r1.www;
  r2.xyz = cb3[16].xxx * cb3[0].xyz;
  r3.xyz = cb3[16].yyy * cb3[1].xyz;
  r4.xyz = cb3[16].zzz * cb3[2].xyz;
  r5.xyz = r3.xyz * r0.yyy;
  r0.xyw = r0.xxx * r2.xyz + r5.xyz;
  o0.xyz = r0.zzz * r4.xyz + r0.xyw;
  r0.xyz = r3.xyz * r1.yyy;
  r0.xyz = r1.xxx * r2.xyz + r0.xyz;
  o1.xyz = r1.zzz * r4.xyz + r0.xyz;
  o1.w = cb3[9].w * r1.w;
  r0.xyz = cb3[0].xyz * v0.xxx;
  r1.xyz = cb3[1].xyz * v0.yyy;
  r0.xyz = r1.xyz + r0.xyz;
  r1.xyz = cb3[2].xyz * v0.zzz;
  r0.xyz = r1.xyz + r0.xyz;
  r1.xyz = cb3[3].xyz + cb2[71].xyz;
  r0.xyz = r1.xyz + r0.xyz;
  r0.w = dot(float3(0,0,1), cb4[52].xyz);
  r1.xyz = float3(0,0,1) * r0.www;
  r2.xyz = cb4[52].xyz + -r1.yyz;
  r3.xyz = float3(0,1,0) * r2.zxy;
  r4.xyz = float3(1,0,0) * r2.yzx;
  r3.xyz = -r4.xyz + r3.xyz;
  sincos(cb5[6].x, r4.x, r5.x);
  r4.yzw = r5.xxx * r2.xyz;
  r5.xyz = r4.xxx * r3.xyz;
  r4.xyz = r5.xyz + r4.yzw;
  r4.xyz = r4.xyz + r1.yyz;
  r4.xyz = -cb4[52].xyz + r4.xyz;
  r4.xyz = cb4[52].xyz + r4.xyz;
  r0.w = dot(r4.xyz, r4.xyz);
  r0.w = sqrt(r0.w);
  r4.xyz = r4.xyz / r0.www;
  r5.xy = -cb2[71].xy + r0.xy;
  r5.z = 0;
  r6.xyz = cb5[6].yyy * r5.xyz;
  r7.xyz = r6.xyz / float3(3,3,3);
  r8.xyz = r7.xxx + r6.xyz;
  r7.xyw = r8.xyz + r7.yyy;
  r7.xyz = r7.xyw + r7.zzz;
  r7.xyz = floor(r7.xyz);
  r8.xyz = r7.xyz / float3(6,6,6);
  r7.xyz = -r8.xxx + r7.xyz;
  r7.xyz = r7.xyz + -r8.yyy;
  r7.xyz = r7.xyz + -r8.zzz;
  r8.xyz = -r7.xyz + r6.xyz;
  r9.xyz = cmp(r8.zxy >= r8.xyz);
  r10.xyz = r9.yzx ? float3(1,1,1) : 0;
  r9.xyz = r9.xyz ? float3(0,0,0) : float3(1,1,1);
  r11.xyz = min(r10.xyz, r9.xyz);
  r11.xyz = float3(-0.166666672,-0.166666672,-0.166666672) + r11.xyz;
  r9.xyz = max(r10.xyz, r9.xyz);
  r9.xyz = float3(-0.333333343,-0.333333343,-0.333333343) + r9.xyz;
  r10.xyz = r11.xyz + r7.xyz;
  r9.xyz = r9.xyz + r7.xyz;
  r11.xyz = float3(0.5,0.5,0.5) + r7.xyz;
  r7.xyz = float3(6,6,6) * r7.xyz;
  r7.xyz = float3(0.5,0.5,0.5) + r7.xyz;
  r7.xyz = floor(r7.xyz);
  r7.xyz = (int3)r7.xyz;
  r7.xyz = mad((int3)r7.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r0.w = mad((int)r7.y, (int)r7.z, (int)r7.x);
  r1.w = mad((int)r7.z, (int)r0.w, (int)r7.y);
  r2.w = mad((int)r0.w, (int)r1.w, (int)r7.z);
  r7.x = mad((int)r1.w, (int)r2.w, (int)r0.w);
  r7.y = mad((int)r2.w, (int)r7.x, (int)r1.w);
  r7.z = mad((int)r7.x, (int)r7.y, (int)r2.w);
  r7.xyz = (uint3)r7.xyz >> int3(16,16,16);
  r12.xyz = (int3)r7.xxx & int3(0x8000,0x4000,8192);
  r12.xyz = (uint3)r12.xyz;
  r12.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r12.xyz;
  r12.xyz = float3(-1,-1,-1) + r12.xyz;
  r7.xyw = (int3)r7.yyy & int3(0x8000,0x4000,8192);
  r7.xyw = (uint3)r7.xyw;
  r7.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r7.xyw;
  r7.xyw = float3(-1,-1,-1) + r7.xyw;
  r13.xyz = (int3)r7.zzz & int3(0x8000,0x4000,8192);
  r13.xyz = (uint3)r13.xyz;
  r13.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r13.xyz;
  r13.xyz = float3(-1,-1,-1) + r13.xyz;
  r12.x = dot(r12.xyz, r8.xyz);
  r7.x = dot(r7.xyw, r8.xyz);
  r13.x = dot(r13.xyz, r8.xyz);
  r14.xyz = -r10.xyz + r6.xyz;
  r10.xyz = float3(6,6,6) * r10.xyz;
  r10.xyz = float3(0.5,0.5,0.5) + r10.xyz;
  r10.xyz = floor(r10.xyz);
  r10.xyz = (int3)r10.xyz;
  r10.xyz = mad((int3)r10.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r0.w = mad((int)r10.y, (int)r10.z, (int)r10.x);
  r1.w = mad((int)r10.z, (int)r0.w, (int)r10.y);
  r2.w = mad((int)r0.w, (int)r1.w, (int)r10.z);
  r10.x = mad((int)r1.w, (int)r2.w, (int)r0.w);
  r10.y = mad((int)r2.w, (int)r10.x, (int)r1.w);
  r10.z = mad((int)r10.x, (int)r10.y, (int)r2.w);
  r10.xyz = (uint3)r10.xyz >> int3(16,16,16);
  r15.xyz = (int3)r10.xxx & int3(0x8000,0x4000,8192);
  r15.xyz = (uint3)r15.xyz;
  r15.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyz;
  r15.xyz = float3(-1,-1,-1) + r15.xyz;
  r10.xyw = (int3)r10.yyy & int3(0x8000,0x4000,8192);
  r10.xyw = (uint3)r10.xyw;
  r10.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r10.xyw;
  r10.xyw = float3(-1,-1,-1) + r10.xyw;
  r16.xyz = (int3)r10.zzz & int3(0x8000,0x4000,8192);
  r16.xyz = (uint3)r16.xyz;
  r16.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r16.xyz;
  r16.xyz = float3(-1,-1,-1) + r16.xyz;
  r12.y = dot(r15.xyz, r14.xyz);
  r7.y = dot(r10.xyw, r14.xyz);
  r13.y = dot(r16.xyz, r14.xyz);
  r10.xyz = -r9.xyz + r6.xyz;
  r9.xyz = float3(6,6,6) * r9.xyz;
  r9.xyz = float3(0.5,0.5,0.5) + r9.xyz;
  r9.xyz = floor(r9.xyz);
  r9.xyz = (int3)r9.xyz;
  r9.xyz = mad((int3)r9.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r0.w = mad((int)r9.y, (int)r9.z, (int)r9.x);
  r1.w = mad((int)r9.z, (int)r0.w, (int)r9.y);
  r2.w = mad((int)r0.w, (int)r1.w, (int)r9.z);
  r9.x = mad((int)r1.w, (int)r2.w, (int)r0.w);
  r9.y = mad((int)r2.w, (int)r9.x, (int)r1.w);
  r9.z = mad((int)r9.x, (int)r9.y, (int)r2.w);
  r9.xyz = (uint3)r9.xyz >> int3(16,16,16);
  r15.xyz = (int3)r9.xxx & int3(0x8000,0x4000,8192);
  r15.xyz = (uint3)r15.xyz;
  r15.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyz;
  r15.xyz = float3(-1,-1,-1) + r15.xyz;
  r9.xyw = (int3)r9.yyy & int3(0x8000,0x4000,8192);
  r9.xyw = (uint3)r9.xyw;
  r9.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r9.xyw;
  r9.xyw = float3(-1,-1,-1) + r9.xyw;
  r16.xyz = (int3)r9.zzz & int3(0x8000,0x4000,8192);
  r16.xyz = (uint3)r16.xyz;
  r16.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r16.xyz;
  r16.xyz = float3(-1,-1,-1) + r16.xyz;
  r12.z = dot(r15.xyz, r10.xyz);
  r7.z = dot(r9.xyw, r10.xyz);
  r13.z = dot(r16.xyz, r10.xyz);
  r6.xyz = -r11.xyz + r6.xyz;
  r9.xyz = float3(6,6,6) * r11.xyz;
  r9.xyz = float3(0.5,0.5,0.5) + r9.xyz;
  r9.xyz = floor(r9.xyz);
  r9.xyz = (int3)r9.xyz;
  r9.xyz = mad((int3)r9.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r0.w = mad((int)r9.y, (int)r9.z, (int)r9.x);
  r1.w = mad((int)r9.z, (int)r0.w, (int)r9.y);
  r2.w = mad((int)r0.w, (int)r1.w, (int)r9.z);
  r9.x = mad((int)r1.w, (int)r2.w, (int)r0.w);
  r9.y = mad((int)r2.w, (int)r9.x, (int)r1.w);
  r9.z = mad((int)r9.x, (int)r9.y, (int)r2.w);
  r9.xyz = (uint3)r9.xyz >> int3(16,16,16);
  r11.xyz = (int3)r9.xxx & int3(0x8000,0x4000,8192);
  r11.xyz = (uint3)r11.xyz;
  r11.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r11.xyz;
  r11.xyz = float3(-1,-1,-1) + r11.xyz;
  r9.xyw = (int3)r9.yyy & int3(0x8000,0x4000,8192);
  r9.xyw = (uint3)r9.xyw;
  r9.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r9.xyw;
  r9.xyw = float3(-1,-1,-1) + r9.xyw;
  r15.xyz = (int3)r9.zzz & int3(0x8000,0x4000,8192);
  r15.xyz = (uint3)r15.xyz;
  r15.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyz;
  r15.xyz = float3(-1,-1,-1) + r15.xyz;
  r12.w = dot(r11.xyz, r6.xyz);
  r7.w = dot(r9.xyw, r6.xyz);
  r13.w = dot(r15.xyz, r6.xyz);
  r8.x = dot(r8.xyz, r8.xyz);
  r8.y = dot(r14.xyz, r14.xyz);
  r8.z = dot(r10.xyz, r10.xyz);
  r8.w = dot(r6.xyz, r6.xyz);
  r6.xyzw = saturate(float4(2,2,2,2) * r8.xyzw);
  r8.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) * r6.xyzw;
  r8.xyzw = float4(8.19200039,8.19200039,8.19200039,8.19200039) + -r8.xyzw;
  r8.xyzw = r8.xyzw * r6.xyzw;
  r8.xyzw = float4(-8.19200039,-8.19200039,-8.19200039,-8.19200039) + r8.xyzw;
  r6.xyzw = r8.xyzw * r6.xyzw;
  r6.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) + r6.xyzw;
  r8.x = dot(r6.xyzw, r12.xyzw);
  r8.y = dot(r6.xyzw, r7.xyzw);
  r8.z = dot(r6.xyzw, r13.xyzw);
  r6.xyz = cb5[6].zzz * r8.xyz;
  r4.xyz = r6.xyz + r4.xyz;
  r0.w = dot(r4.xyz, r4.xyz);
  r0.w = sqrt(r0.w);
  r4.xy = r4.xy / r0.ww;
  r4.zw = asint(cb2[149].zw);
  r0.w = r4.w / 2.14748365e+009;
  r0.w = r4.z + r0.w;
  r1.w = cb5[10].z * r0.w;
  r2.w = dot(cb3[10].xy, r4.xy);
  r2.w = cb5[9].y * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r7.x, r8.x);
  r1.w = cb5[10].w * r8.x;
  r8.xy = r4.xy * r1.ww;
  r1.w = cb5[10].w * r7.x;
  r8.z = cb5[11].x * r1.w;
  sincos(cb5[11].z, r7.x, r9.x);
  r7.yzw = r9.xxx * r2.xyz;
  r9.xyz = r7.xxx * r3.xyz;
  r7.xyz = r9.xyz + r7.yzw;
  r7.xyz = r7.xyz + r1.yyz;
  r7.xyz = -cb4[52].xyz + r7.xyz;
  r7.xyz = cb4[52].xyz + r7.xyz;
  r1.w = dot(r7.xyz, r7.xyz);
  r1.w = sqrt(r1.w);
  r7.xyz = r7.xyz / r1.www;
  r7.xyz = r7.xyz + r6.xyz;
  r1.w = dot(r7.xyz, r7.xyz);
  r1.w = sqrt(r1.w);
  r4.zw = r7.xy / r1.ww;
  r1.w = cb5[12].y * r0.w;
  r2.w = dot(cb3[10].xy, r4.zw);
  r2.w = cb5[12].x * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r7.x, r9.x);
  r1.w = cb5[12].z * r9.x;
  r9.xy = r4.zw * r1.ww;
  r1.w = cb5[12].z * r7.x;
  r9.z = cb5[11].x * r1.w;
  r7.xyz = r9.xyz + r8.xyz;
  sincos(cb5[12].w, r8.x, r9.x);
  r8.yzw = r9.xxx * r2.xyz;
  r9.xyz = r8.xxx * r3.xyz;
  r8.xyz = r9.xyz + r8.yzw;
  r8.xyz = r8.xyz + r1.yyz;
  r8.xyz = -cb4[52].xyz + r8.xyz;
  r8.xyz = cb4[52].xyz + r8.xyz;
  r1.w = dot(r8.xyz, r8.xyz);
  r1.w = sqrt(r1.w);
  r8.xyz = r8.xyz / r1.www;
  r6.xyz = r8.xyz + r6.xyz;
  r1.w = dot(r6.xyz, r6.xyz);
  r1.w = sqrt(r1.w);
  r6.xy = r6.xy / r1.ww;
  r1.w = cb5[14].y * r0.w;
  r2.w = dot(cb3[10].xy, r6.xy);
  r2.w = cb5[13].w * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r8.x, r9.x);
  r1.w = cb5[14].z * r9.x;
  r9.xy = r6.xy * r1.ww;
  r1.w = cb5[14].z * r8.x;
  r9.z = cb5[11].x * r1.w;
  r7.xyz = r9.xyz + r7.xyz;
  sincos(cb5[15].w, r8.x, r9.x);
  r8.yzw = r9.xxx * r2.xyz;
  r9.xyz = r8.xxx * r3.xyz;
  r8.xyz = r9.xyz + r8.yzw;
  r8.xyz = r8.xyz + r1.yyz;
  r8.xyz = -cb4[52].xyz + r8.xyz;
  r8.xyz = cb4[52].xyz + r8.xyz;
  r1.w = dot(r8.xyz, r8.xyz);
  r1.w = sqrt(r1.w);
  r8.xyz = r8.xyz / r1.www;
  r9.xyz = cb5[16].xxx * r5.xyz;
  r10.xyz = r9.xyz / float3(3,3,3);
  r11.xyz = r10.xxx + r9.xyz;
  r10.xyw = r11.xyz + r10.yyy;
  r10.xyz = r10.xyw + r10.zzz;
  r10.xyz = floor(r10.xyz);
  r11.xyz = r10.xyz / float3(6,6,6);
  r10.xyz = -r11.xxx + r10.xyz;
  r10.xyz = r10.xyz + -r11.yyy;
  r10.xyz = r10.xyz + -r11.zzz;
  r11.xyz = -r10.xyz + r9.xyz;
  r12.xyz = cmp(r11.zxy >= r11.xyz);
  r13.xyz = r12.yzx ? float3(1,1,1) : 0;
  r12.xyz = r12.xyz ? float3(0,0,0) : float3(1,1,1);
  r14.xyz = min(r13.xyz, r12.xyz);
  r14.xyz = float3(-0.166666672,-0.166666672,-0.166666672) + r14.xyz;
  r12.xyz = max(r13.xyz, r12.xyz);
  r12.xyz = float3(-0.333333343,-0.333333343,-0.333333343) + r12.xyz;
  r13.xyz = r14.xyz + r10.xyz;
  r12.xyz = r12.xyz + r10.xyz;
  r14.xyz = float3(0.5,0.5,0.5) + r10.xyz;
  r10.xyz = float3(6,6,6) * r10.xyz;
  r10.xyz = float3(0.5,0.5,0.5) + r10.xyz;
  r10.xyz = floor(r10.xyz);
  r10.xyz = (int3)r10.xyz;
  r10.xyz = mad((int3)r10.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r10.y, (int)r10.z, (int)r10.x);
  r2.w = mad((int)r10.z, (int)r1.w, (int)r10.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r10.z);
  r10.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r10.y = mad((int)r3.w, (int)r10.x, (int)r2.w);
  r10.z = mad((int)r10.x, (int)r10.y, (int)r3.w);
  r10.xyz = (uint3)r10.xyz >> int3(16,16,16);
  r15.xyz = (int3)r10.xxx & int3(0x8000,0x4000,8192);
  r15.xyz = (uint3)r15.xyz;
  r15.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyz;
  r15.xyz = float3(-1,-1,-1) + r15.xyz;
  r10.xyw = (int3)r10.yyy & int3(0x8000,0x4000,8192);
  r10.xyw = (uint3)r10.xyw;
  r10.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r10.xyw;
  r10.xyw = float3(-1,-1,-1) + r10.xyw;
  r16.xyz = (int3)r10.zzz & int3(0x8000,0x4000,8192);
  r16.xyz = (uint3)r16.xyz;
  r16.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r16.xyz;
  r16.xyz = float3(-1,-1,-1) + r16.xyz;
  r15.x = dot(r15.xyz, r11.xyz);
  r10.x = dot(r10.xyw, r11.xyz);
  r16.x = dot(r16.xyz, r11.xyz);
  r17.xyz = -r13.xyz + r9.xyz;
  r13.xyz = float3(6,6,6) * r13.xyz;
  r13.xyz = float3(0.5,0.5,0.5) + r13.xyz;
  r13.xyz = floor(r13.xyz);
  r13.xyz = (int3)r13.xyz;
  r13.xyz = mad((int3)r13.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r13.y, (int)r13.z, (int)r13.x);
  r2.w = mad((int)r13.z, (int)r1.w, (int)r13.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r13.z);
  r13.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r13.y = mad((int)r3.w, (int)r13.x, (int)r2.w);
  r13.z = mad((int)r13.x, (int)r13.y, (int)r3.w);
  r13.xyz = (uint3)r13.xyz >> int3(16,16,16);
  r18.xyz = (int3)r13.xxx & int3(0x8000,0x4000,8192);
  r18.xyz = (uint3)r18.xyz;
  r18.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r18.xyz;
  r18.xyz = float3(-1,-1,-1) + r18.xyz;
  r13.xyw = (int3)r13.yyy & int3(0x8000,0x4000,8192);
  r13.xyw = (uint3)r13.xyw;
  r13.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r13.xyw;
  r13.xyw = float3(-1,-1,-1) + r13.xyw;
  r19.xyz = (int3)r13.zzz & int3(0x8000,0x4000,8192);
  r19.xyz = (uint3)r19.xyz;
  r19.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r19.xyz;
  r19.xyz = float3(-1,-1,-1) + r19.xyz;
  r15.y = dot(r18.xyz, r17.xyz);
  r10.y = dot(r13.xyw, r17.xyz);
  r16.y = dot(r19.xyz, r17.xyz);
  r13.xyz = -r12.xyz + r9.xyz;
  r12.xyz = float3(6,6,6) * r12.xyz;
  r12.xyz = float3(0.5,0.5,0.5) + r12.xyz;
  r12.xyz = floor(r12.xyz);
  r12.xyz = (int3)r12.xyz;
  r12.xyz = mad((int3)r12.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r12.y, (int)r12.z, (int)r12.x);
  r2.w = mad((int)r12.z, (int)r1.w, (int)r12.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r12.z);
  r12.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r12.y = mad((int)r3.w, (int)r12.x, (int)r2.w);
  r12.z = mad((int)r12.x, (int)r12.y, (int)r3.w);
  r12.xyz = (uint3)r12.xyz >> int3(16,16,16);
  r18.xyz = (int3)r12.xxx & int3(0x8000,0x4000,8192);
  r18.xyz = (uint3)r18.xyz;
  r18.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r18.xyz;
  r18.xyz = float3(-1,-1,-1) + r18.xyz;
  r12.xyw = (int3)r12.yyy & int3(0x8000,0x4000,8192);
  r12.xyw = (uint3)r12.xyw;
  r12.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r12.xyw;
  r12.xyw = float3(-1,-1,-1) + r12.xyw;
  r19.xyz = (int3)r12.zzz & int3(0x8000,0x4000,8192);
  r19.xyz = (uint3)r19.xyz;
  r19.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r19.xyz;
  r19.xyz = float3(-1,-1,-1) + r19.xyz;
  r15.z = dot(r18.xyz, r13.xyz);
  r10.z = dot(r12.xyw, r13.xyz);
  r16.z = dot(r19.xyz, r13.xyz);
  r9.xyz = -r14.xyz + r9.xyz;
  r12.xyz = float3(6,6,6) * r14.xyz;
  r12.xyz = float3(0.5,0.5,0.5) + r12.xyz;
  r12.xyz = floor(r12.xyz);
  r12.xyz = (int3)r12.xyz;
  r12.xyz = mad((int3)r12.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r12.y, (int)r12.z, (int)r12.x);
  r2.w = mad((int)r12.z, (int)r1.w, (int)r12.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r12.z);
  r12.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r12.y = mad((int)r3.w, (int)r12.x, (int)r2.w);
  r12.z = mad((int)r12.x, (int)r12.y, (int)r3.w);
  r12.xyz = (uint3)r12.xyz >> int3(16,16,16);
  r14.xyz = (int3)r12.xxx & int3(0x8000,0x4000,8192);
  r14.xyz = (uint3)r14.xyz;
  r14.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r14.xyz;
  r14.xyz = float3(-1,-1,-1) + r14.xyz;
  r12.xyw = (int3)r12.yyy & int3(0x8000,0x4000,8192);
  r12.xyw = (uint3)r12.xyw;
  r12.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r12.xyw;
  r12.xyw = float3(-1,-1,-1) + r12.xyw;
  r18.xyz = (int3)r12.zzz & int3(0x8000,0x4000,8192);
  r18.xyz = (uint3)r18.xyz;
  r18.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r18.xyz;
  r18.xyz = float3(-1,-1,-1) + r18.xyz;
  r15.w = dot(r14.xyz, r9.xyz);
  r10.w = dot(r12.xyw, r9.xyz);
  r16.w = dot(r18.xyz, r9.xyz);
  r11.x = dot(r11.xyz, r11.xyz);
  r11.y = dot(r17.xyz, r17.xyz);
  r11.z = dot(r13.xyz, r13.xyz);
  r11.w = dot(r9.xyz, r9.xyz);
  r9.xyzw = saturate(float4(2,2,2,2) * r11.xyzw);
  r11.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) * r9.xyzw;
  r11.xyzw = float4(8.19200039,8.19200039,8.19200039,8.19200039) + -r11.xyzw;
  r11.xyzw = r11.xyzw * r9.xyzw;
  r11.xyzw = float4(-8.19200039,-8.19200039,-8.19200039,-8.19200039) + r11.xyzw;
  r9.xyzw = r11.xyzw * r9.xyzw;
  r9.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) + r9.xyzw;
  r11.x = dot(r9.xyzw, r15.xyzw);
  r11.y = dot(r9.xyzw, r10.xyzw);
  r11.z = dot(r9.xyzw, r16.xyzw);
  r9.xyz = cb5[16].yyy * r11.xyz;
  r8.xyz = r9.xyz + r8.xyz;
  r1.w = dot(r8.xyz, r8.xyz);
  r1.w = sqrt(r1.w);
  r6.zw = r8.xy / r1.ww;
  r1.w = cb5[20].y * r0.w;
  r2.w = dot(cb3[10].xy, r6.zw);
  r2.w = cb5[19].x * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r8.x, r10.x);
  r1.w = cb5[20].z * r10.x;
  r10.xy = r6.zw * r1.ww;
  r1.w = cb5[20].z * r8.x;
  r10.z = cb5[20].w * r1.w;
  sincos(cb5[21].y, r8.x, r11.x);
  r8.yzw = r11.xxx * r2.xyz;
  r11.xyz = r8.xxx * r3.xyz;
  r8.xyz = r11.xyz + r8.yzw;
  r8.xyz = r8.xyz + r1.yyz;
  r8.xyz = -cb4[52].xyz + r8.xyz;
  r8.xyz = cb4[52].xyz + r8.xyz;
  r1.w = dot(r8.xyz, r8.xyz);
  r1.w = sqrt(r1.w);
  r8.xyz = r8.xyz / r1.www;
  r8.xyz = r8.xyz + r9.xyz;
  r1.w = dot(r8.xyz, r8.xyz);
  r1.w = sqrt(r1.w);
  r8.xy = r8.xy / r1.ww;
  r1.w = cb5[22].x * r0.w;
  r2.w = dot(cb3[10].xy, r8.xy);
  r2.w = cb5[21].w * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r11.x, r12.x);
  r1.w = cb5[22].y * r12.x;
  r12.xy = r8.xy * r1.ww;
  r1.w = cb5[22].y * r11.x;
  r12.z = cb5[20].w * r1.w;
  r10.xyz = r12.xyz + r10.xyz;
  sincos(cb5[22].z, r11.x, r12.x);
  r11.yzw = r12.xxx * r2.xyz;
  r12.xyz = r11.xxx * r3.xyz;
  r11.xyz = r12.xyz + r11.yzw;
  r11.xyz = r11.xyz + r1.yyz;
  r11.xyz = -cb4[52].xyz + r11.xyz;
  r11.xyz = cb4[52].xyz + r11.xyz;
  r1.w = dot(r11.xyz, r11.xyz);
  r1.w = sqrt(r1.w);
  r11.xyz = r11.xyz / r1.www;
  r9.xyz = r11.xyz + r9.xyz;
  r1.w = dot(r9.xyz, r9.xyz);
  r1.w = sqrt(r1.w);
  r8.zw = r9.xy / r1.ww;
  r1.w = cb5[24].x * r0.w;
  r2.w = dot(cb3[10].xy, r8.zw);
  r2.w = cb5[23].z * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r9.x, r11.x);
  r1.w = cb5[24].y * r11.x;
  r11.xy = r8.zw * r1.ww;
  r1.w = cb5[24].y * r9.x;
  r11.z = cb5[20].w * r1.w;
  r9.xyz = r11.xyz + r10.xyz;
  r7.xyz = r9.xyz + r7.xyz;
  sincos(cb5[25].z, r9.x, r10.x);
  r9.yzw = r10.xxx * r2.xyz;
  r10.xyz = r9.xxx * r3.xyz;
  r9.xyz = r10.xyz + r9.yzw;
  r9.xyz = r9.xyz + r1.yyz;
  r9.xyz = -cb4[52].xyz + r9.xyz;
  r9.xyz = cb4[52].xyz + r9.xyz;
  r1.w = dot(r9.xyz, r9.xyz);
  r1.w = sqrt(r1.w);
  r9.xyz = r9.xyz / r1.www;
  r10.xyz = cb5[25].www * r5.xyz;
  r11.xyz = r10.xyz / float3(3,3,3);
  r12.xyz = r11.xxx + r10.xyz;
  r11.xyw = r12.xyz + r11.yyy;
  r11.xyz = r11.xyw + r11.zzz;
  r11.xyz = floor(r11.xyz);
  r12.xyz = r11.xyz / float3(6,6,6);
  r11.xyz = -r12.xxx + r11.xyz;
  r11.xyz = r11.xyz + -r12.yyy;
  r11.xyz = r11.xyz + -r12.zzz;
  r12.xyz = -r11.xyz + r10.xyz;
  r13.xyz = cmp(r12.zxy >= r12.xyz);
  r14.xyz = r13.yzx ? float3(1,1,1) : 0;
  r13.xyz = r13.xyz ? float3(0,0,0) : float3(1,1,1);
  r15.xyz = min(r14.xyz, r13.xyz);
  r15.xyz = float3(-0.166666672,-0.166666672,-0.166666672) + r15.xyz;
  r13.xyz = max(r14.xyz, r13.xyz);
  r13.xyz = float3(-0.333333343,-0.333333343,-0.333333343) + r13.xyz;
  r14.xyz = r15.xyz + r11.xyz;
  r13.xyz = r13.xyz + r11.xyz;
  r15.xyz = float3(0.5,0.5,0.5) + r11.xyz;
  r11.xyz = float3(6,6,6) * r11.xyz;
  r11.xyz = float3(0.5,0.5,0.5) + r11.xyz;
  r11.xyz = floor(r11.xyz);
  r11.xyz = (int3)r11.xyz;
  r11.xyz = mad((int3)r11.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r11.y, (int)r11.z, (int)r11.x);
  r2.w = mad((int)r11.z, (int)r1.w, (int)r11.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r11.z);
  r11.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r11.y = mad((int)r3.w, (int)r11.x, (int)r2.w);
  r11.z = mad((int)r11.x, (int)r11.y, (int)r3.w);
  r11.xyz = (uint3)r11.xyz >> int3(16,16,16);
  r16.xyz = (int3)r11.xxx & int3(0x8000,0x4000,8192);
  r16.xyz = (uint3)r16.xyz;
  r16.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r16.xyz;
  r16.xyz = float3(-1,-1,-1) + r16.xyz;
  r11.xyw = (int3)r11.yyy & int3(0x8000,0x4000,8192);
  r11.xyw = (uint3)r11.xyw;
  r11.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r11.xyw;
  r11.xyw = float3(-1,-1,-1) + r11.xyw;
  r17.xyz = (int3)r11.zzz & int3(0x8000,0x4000,8192);
  r17.xyz = (uint3)r17.xyz;
  r17.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r17.xyz;
  r17.xyz = float3(-1,-1,-1) + r17.xyz;
  r16.x = dot(r16.xyz, r12.xyz);
  r11.x = dot(r11.xyw, r12.xyz);
  r17.x = dot(r17.xyz, r12.xyz);
  r18.xyz = -r14.xyz + r10.xyz;
  r14.xyz = float3(6,6,6) * r14.xyz;
  r14.xyz = float3(0.5,0.5,0.5) + r14.xyz;
  r14.xyz = floor(r14.xyz);
  r14.xyz = (int3)r14.xyz;
  r14.xyz = mad((int3)r14.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r14.y, (int)r14.z, (int)r14.x);
  r2.w = mad((int)r14.z, (int)r1.w, (int)r14.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r14.z);
  r14.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r14.y = mad((int)r3.w, (int)r14.x, (int)r2.w);
  r14.z = mad((int)r14.x, (int)r14.y, (int)r3.w);
  r14.xyz = (uint3)r14.xyz >> int3(16,16,16);
  r19.xyz = (int3)r14.xxx & int3(0x8000,0x4000,8192);
  r19.xyz = (uint3)r19.xyz;
  r19.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r19.xyz;
  r19.xyz = float3(-1,-1,-1) + r19.xyz;
  r14.xyw = (int3)r14.yyy & int3(0x8000,0x4000,8192);
  r14.xyw = (uint3)r14.xyw;
  r14.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r14.xyw;
  r14.xyw = float3(-1,-1,-1) + r14.xyw;
  r20.xyz = (int3)r14.zzz & int3(0x8000,0x4000,8192);
  r20.xyz = (uint3)r20.xyz;
  r20.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r20.xyz;
  r20.xyz = float3(-1,-1,-1) + r20.xyz;
  r16.y = dot(r19.xyz, r18.xyz);
  r11.y = dot(r14.xyw, r18.xyz);
  r17.y = dot(r20.xyz, r18.xyz);
  r14.xyz = -r13.xyz + r10.xyz;
  r13.xyz = float3(6,6,6) * r13.xyz;
  r13.xyz = float3(0.5,0.5,0.5) + r13.xyz;
  r13.xyz = floor(r13.xyz);
  r13.xyz = (int3)r13.xyz;
  r13.xyz = mad((int3)r13.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r13.y, (int)r13.z, (int)r13.x);
  r2.w = mad((int)r13.z, (int)r1.w, (int)r13.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r13.z);
  r13.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r13.y = mad((int)r3.w, (int)r13.x, (int)r2.w);
  r13.z = mad((int)r13.x, (int)r13.y, (int)r3.w);
  r13.xyz = (uint3)r13.xyz >> int3(16,16,16);
  r19.xyz = (int3)r13.xxx & int3(0x8000,0x4000,8192);
  r19.xyz = (uint3)r19.xyz;
  r19.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r19.xyz;
  r19.xyz = float3(-1,-1,-1) + r19.xyz;
  r13.xyw = (int3)r13.yyy & int3(0x8000,0x4000,8192);
  r13.xyw = (uint3)r13.xyw;
  r13.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r13.xyw;
  r13.xyw = float3(-1,-1,-1) + r13.xyw;
  r20.xyz = (int3)r13.zzz & int3(0x8000,0x4000,8192);
  r20.xyz = (uint3)r20.xyz;
  r20.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r20.xyz;
  r20.xyz = float3(-1,-1,-1) + r20.xyz;
  r16.z = dot(r19.xyz, r14.xyz);
  r11.z = dot(r13.xyw, r14.xyz);
  r17.z = dot(r20.xyz, r14.xyz);
  r10.xyz = -r15.xyz + r10.xyz;
  r13.xyz = float3(6,6,6) * r15.xyz;
  r13.xyz = float3(0.5,0.5,0.5) + r13.xyz;
  r13.xyz = floor(r13.xyz);
  r13.xyz = (int3)r13.xyz;
  r13.xyz = mad((int3)r13.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r13.y, (int)r13.z, (int)r13.x);
  r2.w = mad((int)r13.z, (int)r1.w, (int)r13.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r13.z);
  r13.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r13.y = mad((int)r3.w, (int)r13.x, (int)r2.w);
  r13.z = mad((int)r13.x, (int)r13.y, (int)r3.w);
  r13.xyz = (uint3)r13.xyz >> int3(16,16,16);
  r15.xyz = (int3)r13.xxx & int3(0x8000,0x4000,8192);
  r15.xyz = (uint3)r15.xyz;
  r15.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyz;
  r15.xyz = float3(-1,-1,-1) + r15.xyz;
  r13.xyw = (int3)r13.yyy & int3(0x8000,0x4000,8192);
  r13.xyw = (uint3)r13.xyw;
  r13.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r13.xyw;
  r13.xyw = float3(-1,-1,-1) + r13.xyw;
  r19.xyz = (int3)r13.zzz & int3(0x8000,0x4000,8192);
  r19.xyz = (uint3)r19.xyz;
  r19.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r19.xyz;
  r19.xyz = float3(-1,-1,-1) + r19.xyz;
  r16.w = dot(r15.xyz, r10.xyz);
  r11.w = dot(r13.xyw, r10.xyz);
  r17.w = dot(r19.xyz, r10.xyz);
  r12.x = dot(r12.xyz, r12.xyz);
  r12.y = dot(r18.xyz, r18.xyz);
  r12.z = dot(r14.xyz, r14.xyz);
  r12.w = dot(r10.xyz, r10.xyz);
  r10.xyzw = saturate(float4(2,2,2,2) * r12.xyzw);
  r12.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) * r10.xyzw;
  r12.xyzw = float4(8.19200039,8.19200039,8.19200039,8.19200039) + -r12.xyzw;
  r12.xyzw = r12.xyzw * r10.xyzw;
  r12.xyzw = float4(-8.19200039,-8.19200039,-8.19200039,-8.19200039) + r12.xyzw;
  r10.xyzw = r12.xyzw * r10.xyzw;
  r10.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) + r10.xyzw;
  r12.x = dot(r10.xyzw, r16.xyzw);
  r12.y = dot(r10.xyzw, r11.xyzw);
  r12.z = dot(r10.xyzw, r17.xyzw);
  r10.xyz = cb5[26].xxx * r12.xyz;
  r9.xyz = r10.xyz + r9.xyz;
  r1.w = dot(r9.xyz, r9.xyz);
  r1.w = sqrt(r1.w);
  r9.xy = r9.xy / r1.ww;
  r1.w = cb5[30].x * r0.w;
  r2.w = dot(cb3[10].xy, r9.xy);
  r2.w = cb5[28].w * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r11.x, r12.x);
  r1.w = cb5[30].y * r12.x;
  r12.xy = r9.xy * r1.ww;
  r1.w = cb5[30].y * r11.x;
  r12.z = cb5[30].z * r1.w;
  sincos(cb5[31].x, r11.x, r13.x);
  r11.yzw = r13.xxx * r2.xyz;
  r13.xyz = r11.xxx * r3.xyz;
  r11.xyz = r13.xyz + r11.yzw;
  r11.xyz = r11.xyz + r1.yyz;
  r11.xyz = -cb4[52].xyz + r11.xyz;
  r11.xyz = cb4[52].xyz + r11.xyz;
  r1.w = dot(r11.xyz, r11.xyz);
  r1.w = sqrt(r1.w);
  r11.xyz = r11.xyz / r1.www;
  r11.xyz = r11.xyz + r10.xyz;
  r1.w = dot(r11.xyz, r11.xyz);
  r1.w = sqrt(r1.w);
  r9.zw = r11.xy / r1.ww;
  r1.w = cb5[31].w * r0.w;
  r2.w = dot(cb3[10].xy, r9.zw);
  r2.w = cb5[31].z * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r11.x, r13.x);
  r1.w = cb5[32].x * r13.x;
  r13.xy = r9.zw * r1.ww;
  r1.w = cb5[32].x * r11.x;
  r13.z = cb5[30].z * r1.w;
  r11.xyz = r13.xyz + r12.xyz;
  sincos(cb5[32].y, r12.x, r13.x);
  r12.yzw = r13.xxx * r2.xyz;
  r13.xyz = r12.xxx * r3.xyz;
  r12.xyz = r13.xyz + r12.yzw;
  r12.xyz = r12.xyz + r1.yyz;
  r12.xyz = -cb4[52].xyz + r12.xyz;
  r12.xyz = cb4[52].xyz + r12.xyz;
  r1.w = dot(r12.xyz, r12.xyz);
  r1.w = sqrt(r1.w);
  r12.xyz = r12.xyz / r1.www;
  r10.xyz = r12.xyz + r10.xyz;
  r1.w = dot(r10.xyz, r10.xyz);
  r1.w = sqrt(r1.w);
  r10.xy = r10.xy / r1.ww;
  r1.w = cb5[33].w * r0.w;
  r2.w = dot(cb3[10].xy, r10.xy);
  r2.w = cb5[33].y * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r12.x, r13.x);
  r1.w = cb5[34].x * r13.x;
  r13.xy = r10.xy * r1.ww;
  r1.w = cb5[34].x * r12.x;
  r13.z = cb5[30].z * r1.w;
  r11.xyz = r13.xyz + r11.xyz;
  sincos(cb5[35].y, r12.x, r13.x);
  r12.yzw = r13.xxx * r2.xyz;
  r13.xyz = r12.xxx * r3.xyz;
  r12.xyz = r13.xyz + r12.yzw;
  r12.xyz = r12.xyz + r1.yyz;
  r12.xyz = -cb4[52].xyz + r12.xyz;
  r12.xyz = cb4[52].xyz + r12.xyz;
  r1.w = dot(r12.xyz, r12.xyz);
  r1.w = sqrt(r1.w);
  r12.xyz = r12.xyz / r1.www;
  r5.xyz = cb5[35].zzz * r5.xyz;
  r13.xyz = r5.xyz / float3(3,3,3);
  r14.xyz = r13.xxx + r5.xyz;
  r13.xyw = r14.xyz + r13.yyy;
  r13.xyz = r13.xyw + r13.zzz;
  r13.xyz = floor(r13.xyz);
  r14.xyz = r13.xyz / float3(6,6,6);
  r13.xyz = -r14.xxx + r13.xyz;
  r13.xyz = r13.xyz + -r14.yyy;
  r13.xyz = r13.xyz + -r14.zzz;
  r14.xyz = -r13.xyz + r5.xyz;
  r15.xyz = cmp(r14.zxy >= r14.xyz);
  r16.xyz = r15.yzx ? float3(1,1,1) : 0;
  r15.xyz = r15.xyz ? float3(0,0,0) : float3(1,1,1);
  r17.xyz = min(r16.xyz, r15.xyz);
  r17.xyz = float3(-0.166666672,-0.166666672,-0.166666672) + r17.xyz;
  r15.xyz = max(r16.xyz, r15.xyz);
  r15.xyz = float3(-0.333333343,-0.333333343,-0.333333343) + r15.xyz;
  r16.xyz = r17.xyz + r13.xyz;
  r15.xyz = r15.xyz + r13.xyz;
  r17.xyz = float3(0.5,0.5,0.5) + r13.xyz;
  r13.xyz = float3(6,6,6) * r13.xyz;
  r13.xyz = float3(0.5,0.5,0.5) + r13.xyz;
  r13.xyz = floor(r13.xyz);
  r13.xyz = (int3)r13.xyz;
  r13.xyz = mad((int3)r13.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r13.y, (int)r13.z, (int)r13.x);
  r2.w = mad((int)r13.z, (int)r1.w, (int)r13.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r13.z);
  r13.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r13.y = mad((int)r3.w, (int)r13.x, (int)r2.w);
  r13.z = mad((int)r13.x, (int)r13.y, (int)r3.w);
  r13.xyz = (uint3)r13.xyz >> int3(16,16,16);
  r18.xyz = (int3)r13.xxx & int3(0x8000,0x4000,8192);
  r18.xyz = (uint3)r18.xyz;
  r18.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r18.xyz;
  r18.xyz = float3(-1,-1,-1) + r18.xyz;
  r13.xyw = (int3)r13.yyy & int3(0x8000,0x4000,8192);
  r13.xyw = (uint3)r13.xyw;
  r13.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r13.xyw;
  r13.xyw = float3(-1,-1,-1) + r13.xyw;
  r19.xyz = (int3)r13.zzz & int3(0x8000,0x4000,8192);
  r19.xyz = (uint3)r19.xyz;
  r19.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r19.xyz;
  r19.xyz = float3(-1,-1,-1) + r19.xyz;
  r18.x = dot(r18.xyz, r14.xyz);
  r13.x = dot(r13.xyw, r14.xyz);
  r19.x = dot(r19.xyz, r14.xyz);
  r20.xyz = -r16.xyz + r5.xyz;
  r16.xyz = float3(6,6,6) * r16.xyz;
  r16.xyz = float3(0.5,0.5,0.5) + r16.xyz;
  r16.xyz = floor(r16.xyz);
  r16.xyz = (int3)r16.xyz;
  r16.xyz = mad((int3)r16.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r16.y, (int)r16.z, (int)r16.x);
  r2.w = mad((int)r16.z, (int)r1.w, (int)r16.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r16.z);
  r16.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r16.y = mad((int)r3.w, (int)r16.x, (int)r2.w);
  r16.z = mad((int)r16.x, (int)r16.y, (int)r3.w);
  r16.xyz = (uint3)r16.xyz >> int3(16,16,16);
  r21.xyz = (int3)r16.xxx & int3(0x8000,0x4000,8192);
  r21.xyz = (uint3)r21.xyz;
  r21.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r21.xyz;
  r21.xyz = float3(-1,-1,-1) + r21.xyz;
  r16.xyw = (int3)r16.yyy & int3(0x8000,0x4000,8192);
  r16.xyw = (uint3)r16.xyw;
  r16.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r16.xyw;
  r16.xyw = float3(-1,-1,-1) + r16.xyw;
  r22.xyz = (int3)r16.zzz & int3(0x8000,0x4000,8192);
  r22.xyz = (uint3)r22.xyz;
  r22.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r22.xyz;
  r22.xyz = float3(-1,-1,-1) + r22.xyz;
  r18.y = dot(r21.xyz, r20.xyz);
  r13.y = dot(r16.xyw, r20.xyz);
  r19.y = dot(r22.xyz, r20.xyz);
  r16.xyz = -r15.xyz + r5.xyz;
  r15.xyz = float3(6,6,6) * r15.xyz;
  r15.xyz = float3(0.5,0.5,0.5) + r15.xyz;
  r15.xyz = floor(r15.xyz);
  r15.xyz = (int3)r15.xyz;
  r15.xyz = mad((int3)r15.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r15.y, (int)r15.z, (int)r15.x);
  r2.w = mad((int)r15.z, (int)r1.w, (int)r15.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r15.z);
  r15.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r15.y = mad((int)r3.w, (int)r15.x, (int)r2.w);
  r15.z = mad((int)r15.x, (int)r15.y, (int)r3.w);
  r15.xyz = (uint3)r15.xyz >> int3(16,16,16);
  r21.xyz = (int3)r15.xxx & int3(0x8000,0x4000,8192);
  r21.xyz = (uint3)r21.xyz;
  r21.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r21.xyz;
  r21.xyz = float3(-1,-1,-1) + r21.xyz;
  r15.xyw = (int3)r15.yyy & int3(0x8000,0x4000,8192);
  r15.xyw = (uint3)r15.xyw;
  r15.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyw;
  r15.xyw = float3(-1,-1,-1) + r15.xyw;
  r22.xyz = (int3)r15.zzz & int3(0x8000,0x4000,8192);
  r22.xyz = (uint3)r22.xyz;
  r22.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r22.xyz;
  r22.xyz = float3(-1,-1,-1) + r22.xyz;
  r18.z = dot(r21.xyz, r16.xyz);
  r13.z = dot(r15.xyw, r16.xyz);
  r19.z = dot(r22.xyz, r16.xyz);
  r5.xyz = -r17.xyz + r5.xyz;
  r15.xyz = float3(6,6,6) * r17.xyz;
  r15.xyz = float3(0.5,0.5,0.5) + r15.xyz;
  r15.xyz = floor(r15.xyz);
  r15.xyz = (int3)r15.xyz;
  r15.xyz = mad((int3)r15.xyz, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
  r1.w = mad((int)r15.y, (int)r15.z, (int)r15.x);
  r2.w = mad((int)r15.z, (int)r1.w, (int)r15.y);
  r3.w = mad((int)r1.w, (int)r2.w, (int)r15.z);
  r15.x = mad((int)r2.w, (int)r3.w, (int)r1.w);
  r15.y = mad((int)r3.w, (int)r15.x, (int)r2.w);
  r15.z = mad((int)r15.x, (int)r15.y, (int)r3.w);
  r15.xyz = (uint3)r15.xyz >> int3(16,16,16);
  r17.xyz = (int3)r15.xxx & int3(0x8000,0x4000,8192);
  r17.xyz = (uint3)r17.xyz;
  r17.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r17.xyz;
  r17.xyz = float3(-1,-1,-1) + r17.xyz;
  r15.xyw = (int3)r15.yyy & int3(0x8000,0x4000,8192);
  r15.xyw = (uint3)r15.xyw;
  r15.xyw = float3(6.10351563e-005,0.000122070313,0.000244140625) * r15.xyw;
  r15.xyw = float3(-1,-1,-1) + r15.xyw;
  r21.xyz = (int3)r15.zzz & int3(0x8000,0x4000,8192);
  r21.xyz = (uint3)r21.xyz;
  r21.xyz = float3(6.10351563e-005,0.000122070313,0.000244140625) * r21.xyz;
  r21.xyz = float3(-1,-1,-1) + r21.xyz;
  r18.w = dot(r17.xyz, r5.xyz);
  r13.w = dot(r15.xyw, r5.xyz);
  r19.w = dot(r21.xyz, r5.xyz);
  r14.x = dot(r14.xyz, r14.xyz);
  r14.y = dot(r20.xyz, r20.xyz);
  r14.z = dot(r16.xyz, r16.xyz);
  r14.w = dot(r5.xyz, r5.xyz);
  r5.xyzw = saturate(float4(2,2,2,2) * r14.xyzw);
  r14.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) * r5.xyzw;
  r14.xyzw = float4(8.19200039,8.19200039,8.19200039,8.19200039) + -r14.xyzw;
  r14.xyzw = r14.xyzw * r5.xyzw;
  r14.xyzw = float4(-8.19200039,-8.19200039,-8.19200039,-8.19200039) + r14.xyzw;
  r5.xyzw = r14.xyzw * r5.xyzw;
  r5.xyzw = float4(2.73066664,2.73066664,2.73066664,2.73066664) + r5.xyzw;
  r14.x = dot(r5.xyzw, r18.xyzw);
  r14.y = dot(r5.xyzw, r13.xyzw);
  r14.z = dot(r5.xyzw, r19.xyzw);
  r5.xyz = cb5[35].www * r14.xyz;
  r12.xyz = r12.xyz + r5.xyz;
  r1.w = dot(r12.xyz, r12.xyz);
  r1.w = sqrt(r1.w);
  r10.zw = r12.xy / r1.ww;
  r1.w = cb5[39].w * r0.w;
  r2.w = dot(cb3[10].xy, r10.zw);
  r2.w = cb5[38].z * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r12.x, r13.x);
  r1.w = cb5[40].x * r13.x;
  r13.xy = r10.zw * r1.ww;
  r1.w = cb5[40].x * r12.x;
  r13.z = cb5[40].y * r1.w;
  sincos(cb5[40].w, r12.x, r14.x);
  r12.yzw = r14.xxx * r2.xyz;
  r14.xyz = r12.xxx * r3.xyz;
  r12.xyz = r14.xyz + r12.yzw;
  r12.xyz = r12.xyz + r1.yyz;
  r12.xyz = -cb4[52].xyz + r12.xyz;
  r12.xyz = cb4[52].xyz + r12.xyz;
  r1.w = dot(r12.xyz, r12.xyz);
  r1.w = sqrt(r1.w);
  r12.xyz = r12.xyz / r1.www;
  r12.xyz = r12.xyz + r5.xyz;
  r1.w = dot(r12.xyz, r12.xyz);
  r1.w = sqrt(r1.w);
  r12.xy = r12.xy / r1.ww;
  r1.w = cb5[41].z * r0.w;
  r2.w = dot(cb3[10].xy, r12.xy);
  r2.w = cb5[41].y * r2.w;
  r1.w = r2.w + r1.w;
  r1.w = 6.28318548 * r1.w;
  sincos(r1.w, r14.x, r15.x);
  r1.w = cb5[41].w * r15.x;
  r15.xy = r12.xy * r1.ww;
  r1.w = cb5[41].w * r14.x;
  r15.z = cb5[40].y * r1.w;
  r13.xyz = r15.xyz + r13.xyz;
  sincos(cb5[42].x, r14.x, r15.x);
  r2.xyz = r15.xxx * r2.xyz;
  r3.xyz = r14.xxx * r3.xyz;
  r2.xyz = r3.xyz + r2.xyz;
  r1.xyz = r2.xyz + r1.xyz;
  r1.xyz = -cb4[52].xyz + r1.xyz;
  r1.xyz = cb4[52].xyz + r1.xyz;
  r1.w = dot(r1.xyz, r1.xyz);
  r1.w = sqrt(r1.w);
  r1.xyz = r1.xyz / r1.www;
  r1.xyz = r1.xyz + r5.xyz;
  r1.z = dot(r1.xyz, r1.xyz);
  r1.z = sqrt(r1.z);
  r1.xy = r1.xy / r1.zz;
  r1.z = cb5[43].z * r0.w;
  r1.w = dot(cb3[10].xy, r1.xy);
  r1.w = cb5[43].x * r1.w;
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r2.x, r3.x);
  r1.z = cb5[43].w * r3.x;
  r3.xy = r1.xy * r1.zz;
  r1.z = cb5[43].w * r2.x;
  r3.z = cb5[40].y * r1.z;
  r2.xyz = r13.xyz + r3.xyz;
  r2.xyz = r11.xyz + r2.xyz;
  r2.xyz = r7.xyz + r2.xyz;
  r3.xy = float2(-1,-1) * r2.xy;
  r3.z = 1 + -r2.z;
  r1.z = dot(r3.xyz, r3.xyz);
  r1.z = sqrt(r1.z);
  r2.xyz = r3.xyz / r1.zzz;
  r1.z = dot(float3(0,0,1), r2.xyz);
  r1.w = -0.156582996 * abs(r1.z);
  r1.w = 1.57079637 + r1.w;
  r2.w = 1 + -abs(r1.z);
  r2.w = sqrt(r2.w);
  r1.w = r2.w * r1.w;
  r1.z = cmp(r1.z >= 0);
  r2.w = 3.14159274 + -r1.w;
  r1.z = r1.z ? r1.w : r2.w;
  r1.z = 57.2957802 * r1.z;
  r1.z = 0.00555599993 * r1.z;
  r1.z = 6.28318548 * r1.z;
  r3.xyz = float3(0,0,1) * r2.yzx;
  r2.xyz = float3(0,1,0) * r2.xyz;
  r2.xyz = r3.xyz + -r2.xyz;
  r1.w = dot(r2.yzx, r2.yzx);
  r1.w = sqrt(r1.w);
  r2.xyz = r2.xyz / r1.www;
  r3.xyz = -cb2[71].xyz + r0.xyz;
  r5.xyz = -cb3[10].xyz + r3.xyz;
  r1.w = dot(r2.yzx, r5.xyz);
  r5.xyz = r2.yzx * r1.www;
  r5.xyz = cb3[10].xyz + r5.xyz;
  r7.xyz = -r5.xyz + r3.xyz;
  r11.xyz = r7.zxy * r2.zxy;
  r2.xyz = r7.yzx * r2.xyz;
  r2.xyz = r11.xyz + -r2.xyz;
  sincos(r1.z, r11.x, r13.x);
  r7.xyz = r13.xxx * r7.xyz;
  r2.xyz = r11.xxx * r2.xyz;
  r2.xyz = r7.xyz + r2.xyz;
  r2.xyz = r5.xyz + r2.xyz;
  r2.xyz = r2.xyz + -r3.xyz;
  r2.xyz = cb5[44].yyy * r2.xyz;
  r0.w = 50 * r0.w;
  r0.w = floor(r0.w);
  r0.w = r0.w / 50;
  r1.z = cb5[10].z * r0.w;
  r3.xy = cb5[9].yy * r4.xy;
  r1.w = dot(r3.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r3.x, r5.x);
  r1.zw = cb5[44].zz * r4.xy;
  r5.xy = r5.xx * r1.zw;
  r5.z = cb5[9].x * r3.x;
  r1.z = cb5[12].y * r0.w;
  r3.xy = cb5[12].xx * r4.zw;
  r1.w = dot(r3.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r3.x, r4.x);
  r1.zw = cb5[44].ww * r4.zw;
  r4.xy = r4.xx * r1.zw;
  r4.z = cb5[11].w * r3.x;
  r3.xyz = r5.xyz + r4.xyz;
  r1.z = cb5[14].y * r0.w;
  r4.xy = cb5[13].ww * r6.xy;
  r1.w = dot(r4.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r4.x, r5.x);
  r1.zw = cb5[45].xx * r6.xy;
  r5.xy = r5.xx * r1.zw;
  r5.z = cb5[13].z * r4.x;
  r3.xyz = r5.xyz + r3.xyz;
  r1.z = cb5[20].y * r0.w;
  r4.xy = cb5[19].xx * r6.zw;
  r1.w = dot(r4.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r4.x, r5.x);
  r1.zw = cb5[45].yy * r6.zw;
  r5.xy = r5.xx * r1.zw;
  r5.z = cb5[18].w * r4.x;
  r1.z = cb5[22].x * r0.w;
  r4.xy = cb5[21].ww * r8.xy;
  r1.w = dot(r4.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r4.x, r6.x);
  r1.zw = cb5[45].zz * r8.xy;
  r6.xy = r6.xx * r1.zw;
  r6.z = cb5[21].z * r4.x;
  r4.xyz = r6.xyz + r5.xyz;
  r1.z = cb5[24].x * r0.w;
  r5.xy = cb5[23].zz * r8.zw;
  r1.w = dot(r5.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r5.x, r6.x);
  r1.zw = cb5[45].ww * r8.zw;
  r6.xy = r6.xx * r1.zw;
  r6.z = cb5[23].y * r5.x;
  r4.xyz = r6.xyz + r4.xyz;
  r3.xyz = r4.xyz + r3.xyz;
  r1.z = cb5[30].x * r0.w;
  r4.xy = cb5[28].ww * r9.xy;
  r1.w = dot(r4.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r4.x, r5.x);
  r1.zw = cb5[46].xx * r9.xy;
  r5.xy = r5.xx * r1.zw;
  r5.z = cb5[28].z * r4.x;
  r1.z = cb5[31].w * r0.w;
  r4.xy = cb5[31].zz * r9.zw;
  r1.w = dot(r4.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r4.x, r6.x);
  r1.zw = cb5[46].yy * r9.zw;
  r6.xy = r6.xx * r1.zw;
  r6.z = cb5[31].y * r4.x;
  r4.xyz = r6.xyz + r5.xyz;
  r1.z = cb5[33].w * r0.w;
  r5.xy = cb5[33].yy * r10.xy;
  r1.w = dot(r5.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r5.x, r6.x);
  r1.zw = cb5[46].zz * r10.xy;
  r6.xy = r6.xx * r1.zw;
  r6.z = cb5[33].x * r5.x;
  r4.xyz = r6.xyz + r4.xyz;
  r1.z = cb5[39].w * r0.w;
  r5.xy = cb5[38].zz * r10.zw;
  r1.w = dot(r5.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r5.x, r6.x);
  r1.zw = cb5[46].ww * r10.zw;
  r6.xy = r6.xx * r1.zw;
  r6.z = cb5[38].y * r5.x;
  r1.z = cb5[41].z * r0.w;
  r5.xy = cb5[41].yy * r12.xy;
  r1.w = dot(r5.xy, cb3[10].xy);
  r1.z = r1.z + r1.w;
  r1.z = 6.28318548 * r1.z;
  sincos(r1.z, r5.x, r7.x);
  r1.zw = cb5[47].xx * r12.xy;
  r7.xy = r7.xx * r1.zw;
  r7.z = cb5[41].x * r5.x;
  r5.xyz = r7.xyz + r6.xyz;
  r0.w = cb5[43].z * r0.w;
  r1.zw = cb5[43].xx * r1.xy;
  r1.z = dot(r1.zw, cb3[10].xy);
  r0.w = r1.z + r0.w;
  r0.w = 6.28318548 * r0.w;
  sincos(r0.w, r6.x, r7.x);
  r1.xy = cb5[47].yy * r1.xy;
  r1.xy = r7.xx * r1.xy;
  r1.z = cb5[42].w * r6.x;
  r1.xyz = r5.xyz + r1.xyz;
  r1.xyz = r4.xyz + r1.xyz;
  r1.xyz = r3.xyz + r1.xyz;
  r1.xyz = cb5[44].xxx * r1.xyz;
  r1.xyz = r2.xyz + r1.xyz;
  r1.xyz = r1.xyz + r0.xyz;
  r0.w = asuint(cb3[19].y) << 2;
  r2.xyzw = cb2[r0.w+0].xyzw * r1.xxxx;
  r3.xyzw = cb2[r0.w+1].xyzw * r1.yyyy;
  r2.xyzw = r3.xyzw + r2.xyzw;
  r3.xyzw = cb2[r0.w+2].xyzw * r1.zzzz;
  r2.xyzw = r3.xyzw + r2.xyzw;
  o4.xyzw = cb2[r0.w+3].xyzw + r2.xyzw;
  r1.xyz = -cb2[69].xyz + r1.xyz;
  r0.w = dot(r1.xyz, r1.xyz);
  r1.w = sqrt(r0.w);
  r2.xy = float2(9.99999975e-006,100) * cb2[169].xx;
  r2.z = -cb2[168].w + cb2[69].z;
  r3.z = cb2[169].y * r2.z;
  r3.xy = cb2[69].xy;
  r3.xyz = r3.xyz * r2.xxx;
  r3.w = 6360.00977 + r3.z;
  r2.z = dot(r3.xyw, r3.xyw);
  r4.z = sqrt(r2.z);
  r2.w = rsqrt(r0.w);
  r5.xyz = r2.www * r1.xyz;
  r3.z = dot(r3.xyw, r5.xyz);
  r4.w = r3.z / r4.z;
  r6.x = r4.w * r4.w;
  r6.x = -1 + r6.x;
  r2.z = r6.x * r2.z;
  r6.xy = float2(40449600,41344900) + r2.zz;
  r6.xy = sqrt(r6.xy);
  r6.xy = -r6.xy + -r3.zz;
  r2.x = r2.x * r1.w;
  r2.z = -cb2[169].w + r2.x;
  r2.z = max(0, r2.z);
  r6.w = 0.100000001 * r2.z;
  r6.w = r6.w / cb2[169].w;
  r6.w = min(1, r6.w);
  r2.y = cmp(r2.x < r2.y);
  r7.y = cb2[168].x * r6.w;
  r2.x = cb2[170].x + r2.x;
  r7.x = max(1, r2.x);
  r6.z = 1;
  r4.xy = r2.yy ? r7.xy : r6.xz;
  r2.x = cmp(0 < r6.y);
  r6.xzw = r6.yyy * r5.xyz;
  r6.xzw = r6.xzw + r3.xyw;
  r7.x = r4.x + -r6.y;
  r3.z = r6.y + r3.z;
  r7.z = 0.000155520989 * r3.z;
  r6.xyz = r2.xxx ? r6.xzw : r3.xyw;
  r7.y = 6430;
  r7.xyz = r2.xxx ? r7.xyz : r4.xzw;
  r2.x = cmp(r7.y < 6360.01465);
  r3.z = 6360.01465 + -r7.y;
  r8.xyz = r3.zzz * r5.xyz;
  r8.xyz = -r8.xyz + r6.xyz;
  r9.x = r7.x + -r3.z;
  r3.z = dot(r8.xyz, r5.xyz);
  r9.z = 0.000157232338 * r3.z;
  r9.y = 6360.01465;
  r7.xyz = r2.xxx ? r9.xyz : r7.xyz;
  r3.z = cmp(6430 >= r7.y);
  r2.z = cmp(0 < r2.z);
  r2.z = r2.z ? r3.z : 0;
  if (r2.z != 0) {
    r6.xyz = r2.xxx ? r8.xyz : r6.xyz;
    r2.x = dot(r5.xyz, cb2[167].xyz);
    r2.z = dot(r6.xyz, cb2[167].xyz);
    r2.z = r2.z / r7.y;
    r3.z = 6360 / r7.y;
    r3.z = r3.z * r3.z;
    r3.z = 1 + -r3.z;
    r3.z = sqrt(r3.z);
    r6.w = 0.00499999989 + -r3.z;
    r7.w = 0.150000006 + r6.w;
    r7.w = max(r7.z, r7.w);
    r7.z = max(r7.z, r6.w);
    r8.x = r2.y ? r7.w : r7.z;
    r7.z = 1.44269502 * -r5.z;
    r7.z = exp2(r7.z);
    r9.y = saturate(-0.5 + r7.z);
    r7.z = cmp(r9.y < 1);
    r5.w = max(0.150000006, r5.z);
    r7.w = dot(r5.xyw, r5.xyw);
    r7.w = rsqrt(r7.w);
    r10.xyz = r7.www * r5.xyw;
    r11.xyz = r10.xyz * r7.xxx;
    r11.xyz = r11.xyz + r6.xyz;
    r5.w = dot(r11.xyz, r11.xyz);
    r5.w = sqrt(r5.w);
    r7.w = dot(r11.xyz, r10.xyz);
    r10.w = r7.w / r5.w;
    r8.yzw = r5.xyz;
    r10.xyzw = r7.zzzz ? r10.xyzw : r8.yzwx;
    r9.x = r10.w;
    r8.y = 0;
    r9.xy = r2.yy ? r9.xy : r8.xy;
    r5.w = r2.x * r2.x + 1;
    r7.z = 0.0596831031 * r5.w;
    r7.w = -r2.x * 1.60000002 + 1.63999999;
    r7.w = log2(abs(r7.w));
    r7.w = -1.5 * r7.w;
    r7.w = exp2(r7.w);
    r5.w = r7.w * r5.w;
    r11.x = 0.0162772108 * r5.w;
    r5.w = r7.y * r7.y;
    r7.w = r7.y * r7.y + -40449600;
    r7.w = sqrt(r7.w);
    r8.y = r9.x * r7.y;
    r8.z = r8.y * r8.y;
    r8.z = r8.z + -r5.w;
    r8.z = 40449600 + r8.z;
    r8.w = cmp(r8.y < 0);
    r9.w = cmp(0 < r8.z);
    r8.w = r8.w ? r9.w : 0;
    r12.xyzw = r8.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
    r8.w = asuint(cb2[170].w);
    r9.w = 0.5 / r8.w;
    r10.w = 0.00105685578 * r7.w;
    r8.w = 1 / r8.w;
    r8.w = 1 + -r8.w;
    r13.z = r10.w * r8.w + r9.w;
    r8.z = r12.y + r8.z;
    r8.z = sqrt(r8.z);
    r8.y = r8.y * r12.x + r8.z;
    r8.z = r12.z + r7.w;
    r8.y = r8.y / r8.z;
    r13.w = r8.y * 0.4921875 + r12.w;
    r8.y = max(-0.197500005, r2.z);
    r8.y = 5.34962368 * r8.y;
    r8.z = min(1, abs(r8.y));
    r10.w = max(1, abs(r8.y));
    r10.w = 1 / r10.w;
    r8.z = r10.w * r8.z;
    r10.w = r8.z * r8.z;
    r12.x = r10.w * 0.0208350997 + -0.0851330012;
    r12.x = r10.w * r12.x + 0.180141002;
    r12.x = r10.w * r12.x + -0.330299497;
    r10.w = r10.w * r12.x + 0.999866009;
    r12.x = r10.w * r8.z;
    r12.y = cmp(1 < abs(r8.y));
    r12.x = r12.x * -2 + 1.57079637;
    r12.x = r12.y ? r12.x : 0;
    r8.z = r8.z * r10.w + r12.x;
    r8.y = min(1, r8.y);
    r8.y = cmp(r8.y < -r8.y);
    r8.y = r8.y ? -r8.z : r8.z;
    r8.y = r8.y * 0.909090877 + 0.74000001;
    r8.y = r8.y * 0.484375 + 0.015625;
    r2.x = 1 + r2.x;
    r8.z = 3.5 * r2.x;
    r8.z = floor(r8.z);
    r2.x = r2.x * 3.5 + -r8.z;
    r8.y = r8.z + r8.y;
    r13.y = 0.125 * r8.y;
    r12.xyzw = t3.SampleLevel(s3_s, r13.ywz, 0).xyzw;
    r10.w = 1 + -r2.x;
    r8.y = 1 + r8.y;
    r13.x = 0.125 * r8.y;
    r14.xyzw = t3.SampleLevel(s3_s, r13.xwz, 0).xyzw;
    r14.xyzw = r14.xyzw * r2.xxxx;
    r12.xyzw = r12.xyzw * r10.wwww + r14.xyzw;
    r12.xyzw = max(float4(0,0,0,0), r12.xyzw);
    r8.y = cmp(0 < r7.x);
    if (r8.y != 0) {
      r14.xyz = r7.xxx * r5.xyz;
      r6.xyz = r14.xyz + r6.xyz;
      r8.y = dot(r6.xyz, r6.xyz);
      r8.y = sqrt(r8.y);
      r14.x = 0.5 / cb2[169].z;
      r14.x = r14.x * r7.y;
      r14.x = sqrt(r14.x);
      r14.y = r7.x / r7.y;
      r9.z = r14.y + r9.x;
      r14.xy = r14.xx * r9.xz;
      r14.zw = cmp(float2(0,0) < r14.xy);
      r15.xy = cmp(r14.xy < float2(0,0));
      r14.zw = (int2)-r14.zw + (int2)r15.xy;
      r14.zw = (int2)r14.zw;
      r15.xyz = r14.xxy * r14.xxy;
      r15.w = cmp(r14.z < r14.w);
      r15.x = 1.44269502 * r15.x;
      r15.x = exp2(r15.x);
      r15.x = r15.w ? r15.x : 0;
      r15.yz = r15.yz * float2(1.51999998,1.51999998) + float2(4,4);
      r15.yz = sqrt(r15.yz);
      r14.xy = abs(r14.xy) * float2(2.31929994,2.31929994) + r15.yz;
      r14.xy = r14.zw / r14.xy;
      r14.z = -r7.x / cb2[169].z;
      r15.yzw = float3(2,0.416666657,7.53972054) * r7.yyy;
      r14.w = r7.x / r15.y;
      r14.w = r14.w + r9.x;
      r14.z = r14.z * r14.w;
      r14.z = 1.44269502 * r14.z;
      r16.y = exp2(r14.z);
      r16.xz = float2(1,1);
      r14.xy = r16.xy * r14.xy;
      r14.z = 6.28310013 * cb2[169].z;
      r14.z = r14.z * r7.y;
      r14.z = sqrt(r14.z);
      r16.x = 6360 + -r7.y;
      r16.y = r16.x / cb2[169].z;
      r16.y = 1.44269502 * r16.y;
      r16.y = exp2(r16.y);
      r14.z = r16.y * r14.z;
      r14.x = dot(r14.xy, float2(1,-1));
      r14.x = r15.x + r14.x;
      r14.x = r14.z * r14.x;
      r14.yz = sqrt(r15.zw);
      r15.xz = r14.yy * r9.xz;
      r17.xy = cmp(float2(0,0) < r15.xz);
      r17.zw = cmp(r15.xz < float2(0,0));
      r17.xy = (int2)-r17.xy + (int2)r17.zw;
      r17.xy = (int2)r17.xy;
      r18.xyz = r15.xxz * r15.xxz;
      r9.z = cmp(r17.x < r17.y);
      r14.y = 1.44269502 * r18.x;
      r14.y = exp2(r14.y);
      r9.z = r9.z ? r14.y : 0;
      r17.zw = r18.yz * float2(1.51999998,1.51999998) + float2(4,4);
      r17.zw = sqrt(r17.zw);
      r15.xz = abs(r15.xz) * float2(2.31929994,2.31929994) + r17.zw;
      r15.xz = r17.xy / r15.xz;
      r14.y = r14.w * -r7.x;
      r14.y = 1.20224583 * r14.y;
      r16.w = exp2(r14.y);
      r14.yw = r16.zw * r15.xz;
      r15.x = 1.20224583 * r16.x;
      r15.x = exp2(r15.x);
      r14.z = r15.x * r14.z;
      r14.y = dot(r14.yw, float2(1,-1));
      r9.z = r14.y + r9.z;
      r9.z = r14.z * r9.z;
      r9.z = 0.00444444455 * r9.z;
      r14.xyz = r14.xxx * float3(-0.00579999993,-0.0135000004,-0.0331000015) + -r9.zzz;
      r14.xyz = float3(1.44269502,1.44269502,1.44269502) * r14.xyz;
      r14.xyz = exp2(r14.xyz);
      r9.z = max(r8.y, r7.y);
      r9.z = r2.y ? r9.z : r8.y;
      r14.w = cmp(6360.00977 < r9.z);
      if (r14.w != 0) {
        r14.w = cmp(r9.y < 1);
        if (r14.w != 0) {
          r10.xyz = r2.yyy ? r10.xyz : r5.xyz;
          r10.x = dot(r6.xyz, r10.xyz);
          r10.x = r10.x / r8.y;
          r6.x = dot(r6.xyz, cb2[167].xyz);
          r6.x = r6.x / r8.y;
          r6.y = r9.z * r9.z;
          r6.z = r9.z * r9.z + -40449600;
          r6.z = sqrt(r6.z);
          r8.y = r10.x * r9.z;
          r9.z = r8.y * r8.y;
          r6.y = r9.z + -r6.y;
          r6.y = 40449600 + r6.y;
          r9.z = cmp(r8.y < 0);
          r10.x = cmp(0 < r6.y);
          r9.z = r9.z ? r10.x : 0;
          r16.xyzw = r9.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
          r9.z = r6.z * r8.w;
          r17.y = r9.z * 0.00105685578 + r9.w;
          r6.yz = r16.yz + r6.yz;
          r6.y = sqrt(r6.y);
          r6.y = r8.y * r16.x + r6.y;
          r6.y = r6.y / r6.z;
          r17.x = r6.y * 0.4921875 + r16.w;
          r6.x = max(-0.197500005, r6.x);
          r6.x = 5.34962368 * r6.x;
          r6.y = min(1, abs(r6.x));
          r6.z = max(1, abs(r6.x));
          r6.z = 1 / r6.z;
          r6.y = r6.y * r6.z;
          r6.z = r6.y * r6.y;
          r8.y = r6.z * 0.0208350997 + -0.0851330012;
          r8.y = r6.z * r8.y + 0.180141002;
          r8.y = r6.z * r8.y + -0.330299497;
          r6.z = r6.z * r8.y + 0.999866009;
          r8.y = r6.y * r6.z;
          r9.z = cmp(1 < abs(r6.x));
          r8.y = r8.y * -2 + 1.57079637;
          r8.y = r9.z ? r8.y : 0;
          r6.y = r6.y * r6.z + r8.y;
          r6.x = min(1, r6.x);
          r6.x = cmp(r6.x < -r6.x);
          r6.x = r6.x ? -r6.y : r6.y;
          r6.x = r6.x * 0.909090877 + 0.74000001;
          r6.x = r6.x * 0.484375 + r8.z;
          r6.xy = float2(0.015625,1.015625) + r6.xx;
          r17.zw = float2(0.125,0.125) * r6.xy;
          r16.xyzw = t3.SampleLevel(s3_s, r17.zxy, 0).xyzw;
          r18.xyzw = t3.SampleLevel(s3_s, r17.wxy, 0).xyzw;
          r18.xyzw = r18.xyzw * r2.xxxx;
          r16.xyzw = r16.xyzw * r10.wwww + r18.xyzw;
          r16.xyzw = -r14.xyzx * r16.xyzw + r12.xyzw;
          r12.xyzw = max(float4(0,0,0,0), r16.xyzw);
          if (r2.y == 0) {
            r6.x = r9.x + r3.z;
            r6.y = cmp(abs(r6.x) < 0.00499999989);
            if (r6.y != 0) {
              r6.x = 0.00499999989 + r6.x;
              r6.x = 100 * r6.x;
              r3.z = -0.00499999989 + -r3.z;
              r6.y = r7.x * r7.x;
              r6.y = r6.y + r5.w;
              r6.z = r15.y * r7.x;
              r8.y = r6.z * r3.z;
              r8.y = r8.y + r6.y;
              r8.y = sqrt(r8.y);
              r3.z = r7.y * r3.z;
              r8.z = r3.z + r7.x;
              r8.z = r8.z / r8.y;
              r8.z = max(r8.z, r6.w);
              r9.x = r3.z * r3.z;
              r9.x = r9.x + -r5.w;
              r9.x = 40449600 + r9.x;
              r9.z = cmp(r3.z < 0);
              r10.x = cmp(0 < r9.x);
              r9.z = r9.z ? r10.x : 0;
              r15.xyzw = r9.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r9.x = r15.y + r9.x;
              r9.x = sqrt(r9.x);
              r3.z = r3.z * r15.x + r9.x;
              r9.x = r15.z + r7.w;
              r3.z = r3.z / r9.x;
              r15.x = r3.z * 0.4921875 + r15.w;
              r15.yz = r13.yz;
              r16.xyzw = t3.SampleLevel(s3_s, r15.yxz, 0).xyzw;
              r13.y = r15.x;
              r18.xyzw = t3.SampleLevel(s3_s, r13.xyz, 0).xyzw;
              r18.xyzw = r18.xyzw * r2.xxxx;
              r16.xyzw = r16.xyzw * r10.wwww + r18.xyzw;
              r3.z = r8.y * r8.y;
              r9.x = r8.y * r8.y + -40449600;
              r9.x = sqrt(r9.x);
              r8.y = r8.y * r8.z;
              r8.z = r8.y * r8.y;
              r3.z = r8.z + -r3.z;
              r3.z = 40449600 + r3.z;
              r8.z = cmp(r8.y < 0);
              r9.z = cmp(0 < r3.z);
              r8.z = r8.z ? r9.z : 0;
              r18.xyzw = r8.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r8.z = r9.x * r8.w;
              r17.y = r8.z * 0.00105685578 + r9.w;
              r3.z = r18.y + r3.z;
              r3.z = sqrt(r3.z);
              r3.z = r8.y * r18.x + r3.z;
              r8.y = r18.z + r9.x;
              r3.z = r3.z / r8.y;
              r17.x = r3.z * 0.4921875 + r18.w;
              r18.xyzw = t3.SampleLevel(s3_s, r17.zxy, 0).xyzw;
              r19.xyzw = t3.SampleLevel(s3_s, r17.wxy, 0).xyzw;
              r19.xyzw = r19.xyzw * r2.xxxx;
              r18.xyzw = r18.xyzw * r10.wwww + r19.xyzw;
              r16.xyzw = -r14.xyzx * r18.xyzw + r16.xyzw;
              r16.xyzw = max(float4(0,0,0,0), r16.xyzw);
              r3.z = r6.z * r6.w;
              r3.z = r6.y + r3.z;
              r3.z = sqrt(r3.z);
              r6.y = r7.y * r6.w;
              r6.z = r6.y + r7.x;
              r6.z = r6.z / r3.z;
              r6.z = max(r6.w, r6.z);
              r6.w = r6.y * r6.y;
              r6.w = r6.w + -r5.w;
              r6.w = 40449600 + r6.w;
              r7.x = cmp(r6.y < 0);
              r8.y = cmp(0 < r6.w);
              r7.x = r7.x ? r8.y : 0;
              r18.xyzw = r7.xxxx ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r6.w = r18.y + r6.w;
              r6.w = sqrt(r6.w);
              r6.y = r6.y * r18.x + r6.w;
              r6.w = r18.z + r7.w;
              r6.y = r6.y / r6.w;
              r15.w = r6.y * 0.4921875 + r18.w;
              r18.xyzw = t3.SampleLevel(s3_s, r15.ywz, 0).xyzw;
              r13.w = r15.w;
              r15.xyzw = t3.SampleLevel(s3_s, r13.xwz, 0).xyzw;
              r15.xyzw = r15.xyzw * r2.xxxx;
              r15.xyzw = r18.xyzw * r10.wwww + r15.xyzw;
              r6.y = r3.z * r3.z;
              r6.w = r3.z * r3.z + -40449600;
              r6.w = sqrt(r6.w);
              r3.z = r6.z * r3.z;
              r6.z = r3.z * r3.z;
              r6.y = r6.z + -r6.y;
              r6.y = 40449600 + r6.y;
              r6.z = cmp(r3.z < 0);
              r7.x = cmp(0 < r6.y);
              r6.z = r6.z ? r7.x : 0;
              r18.xyzw = r6.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r6.z = r6.w * r8.w;
              r17.y = r6.z * 0.00105685578 + r9.w;
              r6.y = r18.y + r6.y;
              r6.y = sqrt(r6.y);
              r3.z = r3.z * r18.x + r6.y;
              r6.y = r18.z + r6.w;
              r3.z = r3.z / r6.y;
              r17.x = r3.z * 0.4921875 + r18.w;
              r18.xyzw = t3.SampleLevel(s3_s, r17.zxy, 0).xyzw;
              r17.xyzw = t3.SampleLevel(s3_s, r17.wxy, 0).xyzw;
              r17.xyzw = r17.xyzw * r2.xxxx;
              r17.xyzw = r18.xyzw * r10.wwww + r17.xyzw;
              r15.xyzw = -r14.xyzx * r17.xyzw + r15.xyzw;
              r15.xyzw = max(float4(0,0,0,0), r15.xyzw);
              r15.xyzw = r15.xyzw + -r16.xyzw;
              r12.xyzw = r6.xxxx * r15.xyzw + r16.xyzw;
            }
          } else {
            r3.z = cmp(0 < r9.y);
            if (r3.z != 0) {
              r6.xyzw = float4(1,1,1,1) + -r14.xyzx;
              r3.z = r8.x * r7.y;
              r7.x = r3.z * r3.z;
              r5.w = r7.x + -r5.w;
              r5.w = 40449600 + r5.w;
              r7.x = cmp(r3.z < 0);
              r7.y = cmp(0 < r5.w);
              r7.x = r7.y ? r7.x : 0;
              r8.xyzw = r7.xxxx ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r5.w = r8.y + r5.w;
              r5.w = sqrt(r5.w);
              r3.z = r3.z * r8.x + r5.w;
              r5.w = r8.z + r7.w;
              r3.z = r3.z / r5.w;
              r8.y = r3.z * 0.4921875 + r8.w;
              r8.xz = r13.yz;
              r15.xyzw = t3.SampleLevel(s3_s, r8.xyz, 0).xyzw;
              r8.xz = r13.xz;
              r8.xyzw = t3.SampleLevel(s3_s, r8.xyz, 0).xyzw;
              r8.xyzw = r8.xyzw * r2.xxxx;
              r8.xyzw = r15.xyzw * r10.wwww + r8.xyzw;
              r8.xyzw = max(float4(0,0,0,0), r8.xyzw);
              r6.xyzw = r6.xyzw * r8.xyzw + -r12.xyzw;
              r12.xyzw = r9.yyyy * r6.xyzw + r12.xyzw;
            }
          }
        } else {
          r6.xyzw = float4(1,1,1,1) + -r14.xyzx;
          r12.xyzw = r6.xyzw * r12.xyzw;
        }
      }
    } else {
      r14.xyz = float3(1,1,1);
    }
    r2.x = saturate(50 * r2.z);
    r2.z = r2.x * -2 + 3;
    r2.x = r2.x * r2.x;
    r2.x = r2.z * r2.x;
    r2.x = r12.w * r2.x;
    r6.xyz = r12.xyz * r2.xxx;
    r2.x = max(9.99999975e-005, r12.x);
    r6.xyz = r6.xyz / r2.xxx;
    r11.yzw = float3(1,0.429629624,0.175226584);
    r6.xyz = r6.xyz * r11.yxx;
    r6.xyz = r6.xyz * r11.xzw;
    r6.xyz = r12.xyz * r7.zzz + r6.xyz;
    r6.xyz = max(float3(0,0,0), r6.xyz);
  } else {
    r14.xyz = float3(1,1,1);
    r6.xyz = float3(0,0,0);
  }
  r2.xz = asint(cb2[170].zz) & int2(2,1);
  if (r2.x == 0) {
    r2.x = cmp(0 < r4.x);
    if (r2.x != 0) {
      r7.xyz = r4.xxx * r5.xyz;
      r3.xyz = r7.xyz + r3.xyw;
      r2.x = dot(r3.xyz, r3.xyz);
      r2.x = sqrt(r2.x);
      r3.xyz = r3.xyz / r2.xxx;
      r3.w = dot(r3.xyz, cb2[167].xyz);
      r2.x = -6360 + r2.x;
      r7.z = 0.0142857144 * r2.x;
      r8.y = sqrt(r7.z);
      r8.zw = float2(0.150000006,0.200000003) + r3.ww;
      r7.xy = float2(0.869565248,0.833333313) * r8.zw;
      r2.x = 14.1014204 * r7.x;
      r5.w = min(1, abs(r2.x));
      r6.w = max(1, abs(r2.x));
      r6.w = 1 / r6.w;
      r5.w = r6.w * r5.w;
      r6.w = r5.w * r5.w;
      r7.x = 0.0208350997 * r6.w;
      r7.x = -0.0851330012 + r7.x;
      r7.x = r7.x * r6.w;
      r7.x = 0.180141002 + r7.x;
      r7.x = r7.x * r6.w;
      r7.x = -0.330299497 + r7.x;
      r6.w = r7.x * r6.w;
      r6.w = 0.999866009 + r6.w;
      r5.w = r6.w * r5.w;
      r6.w = cmp(1 < abs(r2.x));
      r7.x = -2 * r5.w;
      r7.x = 1.57079637 + r7.x;
      r6.w = r6.w ? r7.x : 0;
      r5.w = r6.w + r5.w;
      r2.x = min(1, r2.x);
      r2.x = cmp(r2.x < -r2.x);
      r2.x = r2.x ? -r5.w : r5.w;
      r8.x = 0.666666687 * r2.x;
      r8.xyz = t1.SampleLevel(s1_s, r8.xy, 0).xyz;
      r8.xyz = r2.yyy ? float3(0,0,0) : r8.xyz;
      r7.xyz = t2.SampleLevel(s2_s, r7.yz, 0).xyz;
      r2.x = max(0, r3.w);
      r7.xyz = r2.xxx * r8.xyz + r7.xyz;
      r7.xyz = float3(0.00318309898,0.00318309898,0.00318309898) * r7.xyz;
      r9.xyz = -r1.xyz * r2.www + cb2[167].xyz;
      r2.x = dot(r9.xyz, r9.xyz);
      r2.x = rsqrt(r2.x);
      r9.xyz = r9.xyz * r2.xxx;
      r2.x = dot(-r5.xyz, r9.xyz);
      r2.x = 1 + -r2.x;
      r3.w = r2.x * r2.x;
      r3.w = r3.w * r3.w;
      r2.x = r3.w * r2.x;
      r2.x = r2.x * 0.980000019 + 0.0199999996;
      r3.x = dot(r9.xyz, r3.xyz);
      r3.x = max(0, r3.x);
      r3.x = log2(r3.x);
      r3.x = 150 * r3.x;
      r3.x = exp2(r3.x);
      r2.x = r3.x * r2.x;
      r2.x = max(0, r2.x);
      r3.xyz = r2.xxx * r8.xyz + r7.xyz;
      r3.xyz = r2.yyy ? r7.xyz : r3.xyz;
      r3.xyz = r14.xyz * r3.xyz;
    } else {
      r3.xyz = float3(0,0,0);
    }
  } else {
    r3.xyz = float3(0,0,0);
  }
  if (r2.z == 0) {
    r2.x = cmp(6430 >= r4.z);
    r2.yz = float2(-6360,0.150000006) + r4.zw;
    r2.yz = float2(0.0142857144,0.869565248) * r2.yz;
    r7.y = sqrt(r2.y);
    r2.y = 14.1014204 * r2.z;
    r2.z = min(1, abs(r2.y));
    r3.w = max(1, abs(r2.y));
    r3.w = 1 / r3.w;
    r2.z = r3.w * r2.z;
    r3.w = r2.z * r2.z;
    r4.z = 0.0208350997 * r3.w;
    r4.z = -0.0851330012 + r4.z;
    r4.z = r4.z * r3.w;
    r4.z = 0.180141002 + r4.z;
    r4.z = r4.z * r3.w;
    r4.z = -0.330299497 + r4.z;
    r3.w = r4.z * r3.w;
    r3.w = 0.999866009 + r3.w;
    r2.z = r3.w * r2.z;
    r3.w = cmp(1 < abs(r2.y));
    r4.z = -2 * r2.z;
    r4.z = 1.57079637 + r4.z;
    r3.w = r3.w ? r4.z : 0;
    r2.z = r3.w + r2.z;
    r2.y = min(1, r2.y);
    r2.y = cmp(r2.y < -r2.y);
    r2.y = r2.y ? -r2.z : r2.z;
    r7.x = 0.666666687 * r2.y;
    r7.xyz = t1.SampleLevel(s1_s, r7.xy, 0).xyz;
    r2.xyz = r2.xxx ? r7.xyz : float3(1,1,1);
    r3.w = cmp(0 < r4.x);
    r4.x = 3.14159274 * cb2[170].y;
    r4.x = 0.00555555569 * r4.x;
    r4.x = cos(r4.x);
    r4.z = dot(r5.xyz, cb2[167].xyz);
    r4.x = cmp(r4.z >= r4.x);
    r4.x = r4.x ? 1.000000 : 0;
    r2.xyz = r4.xxx * r2.xyz;
    r2.xyz = r3.www ? float3(0,0,0) : r2.xyz;
  } else {
    r2.xyz = float3(0,0,0);
  }
  r2.xyz = r2.xyz + r3.xyz;
  r2.xyz = r2.xyz + r6.xyz;
  r3.x = cb2[167].w * r4.y;
  r3.xyz = cb2[171].xyz * r3.xxx;
  r2.xyz = r3.xyz * r2.xyz;
  r3.x = dot(r1.xyz, cb2[60].xyz);
  r1.w = r1.w / r3.x;
  r1.w = cb2[199].z * r1.w;
  r1.w = max(0, r1.w);
  r0.w = r2.w * r0.w;
  r1.w = max(cb1[87].w, r1.w);
  r3.x = cmp(0 < r1.w);
  r3.y = cmp(asint(cb1[94].z) == 1);
  r3.z = cb2[68].z + cb1[94].w;
  r3.y = r3.y ? r3.z : cb1[89].y;
  r1.w = r1.w * r2.w;
  r2.w = r1.w * r1.z;
  r3.z = cb2[68].z + r2.w;
  r2.w = -r2.w + r1.z;
  r1.w = 1 + -r1.w;
  r1.w = r1.w * r0.w;
  r3.y = r3.z + -r3.y;
  r3.y = cb1[87].y * r3.y;
  r3.y = max(-127, r3.y);
  r3.y = exp2(-r3.y);
  r3.y = cb1[89].x * r3.y;
  r3.y = r3.x ? r3.y : cb1[87].x;
  r1.w = r3.x ? r1.w : r0.w;
  r2.w = r3.x ? r2.w : r1.z;
  r2.w = cb1[87].y * r2.w;
  r2.w = max(-127, r2.w);
  r3.x = exp2(-r2.w);
  r3.x = 1 + -r3.x;
  r3.x = r3.x / r2.w;
  r3.z = 0.240226507 * r2.w;
  r3.z = 0.693147182 + -r3.z;
  r2.w = cmp(0.00999999978 < abs(r2.w));
  r2.w = r2.w ? r3.x : r3.z;
  r2.w = r3.y * r2.w;
  r3.x = r2.w * r1.w;
  r3.yz = cmp(float2(0,0) < cb1[89].zw);
  if (r3.y != 0) {
    r3.y = saturate(r0.w * cb1[91].x + cb1[91].y);
    r4.xy = float2(1,-1) * cb1[90].yx;
    r4.x = dot(r1.xy, r4.xy);
    r4.y = dot(r1.xy, cb1[90].xy);
    r4.z = r1.z;
    r1.xyz = t0.SampleLevel(s0_s, r4.xyz, 0).xyz;
    r4.xyz = t0.SampleLevel(s0_s, r4.xyz, cb1[91].z).xyz;
    r1.xyz = -r4.xyz + r1.xyz;
    r1.xyz = r3.yyy * r1.xyz + r4.xyz;
    r1.xyz = cb1[88].xyz * r1.xyz;
  } else {
    r1.xyz = cb1[88].xyz;
  }
  r3.y = cmp(0 < cb1[92].w);
  r3.w = cmp(cb1[89].z == 0.000000);
  r3.y = r3.w ? r3.y : 0;
  r3.w = saturate(dot(r5.xyz, cb1[92].xyz));
  r3.w = log2(r3.w);
  r3.w = cb1[93].w * r3.w;
  r3.w = exp2(r3.w);
  r4.xyz = cb1[93].xyz * r3.www;
  r1.w = -cb1[94].x + r1.w;
  r1.w = max(0, r1.w);
  r1.w = r2.w * r1.w;
  r1.w = exp2(-r1.w);
  r1.w = min(1, r1.w);
  r1.w = 1 + -r1.w;
  r4.xyz = r4.xyz * r1.www;
  r4.xyz = r3.yyy ? r4.xyz : 0;
  r1.w = exp2(-r3.x);
  r1.w = min(1, r1.w);
  r4.w = max(cb1[88].w, r1.w);
  r0.w = cmp(cb1[89].w < r0.w);
  r0.w = r0.w ? r3.z : 0;
  r3.xyzw = r0.wwww ? float4(0,0,0,1) : r4.xyzw;
  r0.w = 1 + -r3.w;
  r1.xyz = r1.xyz * r0.www + r3.xyz;
  o2.xyz = r2.xyz * r3.www + r1.xyz;
  o0.w = 0;
  o2.w = r3.w;
  o3.xyz = r0.xyz;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Tue May 09 15:56:47 2023
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// ATTRIBUTE                0   xyzw        0     NONE   float   xyz
// SV_VertexID              0   x           1   VERTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                10   xyzw        0     NONE   float   xyzw
// TEXCOORD                11   xyzw        1     NONE   float   xyzw
// GBX_VERTEX_FOG           0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 9   xyz         3     NONE   float   xyz
// SV_POSITION              0   xyzw        4      POS   float   xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[7], immediateIndexed
dcl_constantbuffer cb1[95], immediateIndexed
dcl_constantbuffer cb2[200], dynamicIndexed
dcl_constantbuffer cb3[20], immediateIndexed
dcl_constantbuffer cb4[53], immediateIndexed
dcl_constantbuffer cb5[48], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_resource_texturecube (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture3d (float,float,float,float) t3
dcl_resource_buffer (float,float,float,float) t4
dcl_input v0.xyz
dcl_input_sgv v1.x, vertex_id
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyz
dcl_output_siv o4.xyzw, position
dcl_temps 23
iadd r0.x, v1.x, cb0[6].y
ishl r0.y, r0.x, l(1)
ld_indexable(buffer)(float,float,float,float) r0.yzw, r0.yyyy, t4.wxyz
bfi r0.x, l(31), l(1), r0.x, l(1)
ld_indexable(buffer)(float,float,float,float) r1.xyzw, r0.xxxx, t4.xyzw
mul r2.xyz, r0.yzwy, r1.yzxy
mad r0.xyz, r1.xyzx, r0.zwyz, -r2.xyzx
mul r0.xyz, r1.wwww, r0.xyzx
mul r2.xyz, r1.yzxy, r0.xyzx
mad r0.xyz, r0.zxyz, r1.zxyz, -r2.xyzx
mul r0.xyz, r1.wwww, r0.xyzx
mul r2.xyz, cb3[0].xyzx, cb3[16].xxxx
mul r3.xyz, cb3[1].xyzx, cb3[16].yyyy
mul r4.xyz, cb3[2].xyzx, cb3[16].zzzz
mul r5.xyz, r0.yyyy, r3.xyzx
mad r0.xyw, r0.xxxx, r2.xyxz, r5.xyxz
mad o0.xyz, r0.zzzz, r4.xyzx, r0.xywx
mul r0.xyz, r1.yyyy, r3.xyzx
mad r0.xyz, r1.xxxx, r2.xyzx, r0.xyzx
mad o1.xyz, r1.zzzz, r4.xyzx, r0.xyzx
mul o1.w, r1.w, cb3[9].w
mul [precise(xyz)] r0.xyz, v0.xxxx, cb3[0].xyzx
mul [precise(xyz)] r1.xyz, v0.yyyy, cb3[1].xyzx
add [precise(xyz)] r0.xyz, r0.xyzx, r1.xyzx
mul [precise(xyz)] r1.xyz, v0.zzzz, cb3[2].xyzx
add [precise(xyz)] r0.xyz, r0.xyzx, r1.xyzx
add [precise(xyz)] r1.xyz, cb2[71].xyzx, cb3[3].xyzx
add [precise(xyz)] r0.xyz, r0.xyzx, r1.xyzx
dp3 [precise(w)] r0.w, l(0.000000, 0.000000, 1.000000, 0.000000), cb4[52].xyzx
mul [precise(xyz)] r1.xyz, r0.wwww, l(0.000000, 0.000000, 1.000000, 0.000000)
add [precise(xyz)] r2.xyz, -r1.yyzy, cb4[52].xyzx
mul [precise(xyz)] r3.xyz, r2.zxyz, l(0.000000, 1.000000, 0.000000, 0.000000)
mul [precise(xyz)] r4.xyz, r2.yzxy, l(1.000000, 0.000000, 0.000000, 0.000000)
add [precise(xyz)] r3.xyz, r3.xyzx, -r4.xyzx
sincos [precise(x)] r4.x, r5.x, cb5[6].x
mul [precise(yzw)] r4.yzw, r2.xxyz, r5.xxxx
mul [precise(xyz)] r5.xyz, r3.xyzx, r4.xxxx
add [precise(xyz)] r4.xyz, r4.yzwy, r5.xyzx
add [precise(xyz)] r4.xyz, r1.yyzy, r4.xyzx
add [precise(xyz)] r4.xyz, r4.xyzx, -cb4[52].xyzx
add [precise(xyz)] r4.xyz, r4.xyzx, cb4[52].xyzx
dp3 [precise(w)] r0.w, r4.xyzx, r4.xyzx
sqrt [precise(w)] r0.w, r0.w
div [precise(xyz)] r4.xyz, r4.xyzx, r0.wwww
add [precise(xy)] r5.xy, r0.xyxx, -cb2[71].xyxx
mov [precise(z)] r5.z, l(0)
mul [precise(xyz)] r6.xyz, r5.xyzx, cb5[6].yyyy
div [precise(xyz)] r7.xyz, r6.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r8.xyz, r6.xyzx, r7.xxxx
add [precise(xyw)] r7.xyw, r7.yyyy, r8.xyxz
add [precise(xyz)] r7.xyz, r7.zzzz, r7.xywx
round_ni [precise(xyz)] r7.xyz, r7.xyzx
div [precise(xyz)] r8.xyz, r7.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r7.xyz, r7.xyzx, -r8.xxxx
add [precise(xyz)] r7.xyz, -r8.yyyy, r7.xyzx
add [precise(xyz)] r7.xyz, -r8.zzzz, r7.xyzx
add [precise(xyz)] r8.xyz, r6.xyzx, -r7.xyzx
ge [precise(xyz)] r9.xyz, r8.zxyz, r8.xyzx
and [precise(xyz)] r10.xyz, r9.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r9.xyz, r9.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r11.xyz, r9.xyzx, r10.xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r9.xyz, r9.xyzx, r10.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r10.xyz, r7.xyzx, r11.xyzx
add [precise(xyz)] r9.xyz, r7.xyzx, r9.xyzx
add [precise(xyz)] r11.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul [precise(xyz)] r7.xyz, r7.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r7.xyz, r7.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r7.xyz, r7.xyzx
ftoi [precise(xyz)] r7.xyz, r7.xyzx
imad [precise(xyz)] r7.xyz, r7.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r0.w, r7.y, r7.z, r7.x
imad [precise(w)] r1.w, r7.z, r0.w, r7.y
imad [precise(w)] r2.w, r0.w, r1.w, r7.z
imad [precise(x)] r7.x, r1.w, r2.w, r0.w
imad [precise(y)] r7.y, r2.w, r7.x, r1.w
imad [precise(z)] r7.z, r7.x, r7.y, r2.w
ushr [precise(xyz)] r7.xyz, r7.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r12.xyz, r7.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r12.xyz, r12.xyzx
mul [precise(xyz)] r12.xyz, r12.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r12.xyz, r12.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r7.xyw, r7.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r7.xyw, r7.xyxw
mul [precise(xyw)] r7.xyw, r7.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r7.xyw, r7.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r13.xyz, r7.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r13.xyz, r13.xyzx
mul [precise(xyz)] r13.xyz, r13.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r13.xyz, r13.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(x)] r12.x, r12.xyzx, r8.xyzx
dp3 [precise(x)] r7.x, r7.xywx, r8.xyzx
dp3 [precise(x)] r13.x, r13.xyzx, r8.xyzx
add [precise(xyz)] r14.xyz, r6.xyzx, -r10.xyzx
mul [precise(xyz)] r10.xyz, r10.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r10.xyz, r10.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r10.xyz, r10.xyzx
ftoi [precise(xyz)] r10.xyz, r10.xyzx
imad [precise(xyz)] r10.xyz, r10.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r0.w, r10.y, r10.z, r10.x
imad [precise(w)] r1.w, r10.z, r0.w, r10.y
imad [precise(w)] r2.w, r0.w, r1.w, r10.z
imad [precise(x)] r10.x, r1.w, r2.w, r0.w
imad [precise(y)] r10.y, r2.w, r10.x, r1.w
imad [precise(z)] r10.z, r10.x, r10.y, r2.w
ushr [precise(xyz)] r10.xyz, r10.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r15.xyz, r10.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r15.xyz, r15.xyzx
mul [precise(xyz)] r15.xyz, r15.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r10.xyw, r10.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r10.xyw, r10.xyxw
mul [precise(xyw)] r10.xyw, r10.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r10.xyw, r10.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r16.xyz, r10.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r16.xyz, r16.xyzx
mul [precise(xyz)] r16.xyz, r16.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r16.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(y)] r12.y, r15.xyzx, r14.xyzx
dp3 [precise(y)] r7.y, r10.xywx, r14.xyzx
dp3 [precise(y)] r13.y, r16.xyzx, r14.xyzx
add [precise(xyz)] r10.xyz, r6.xyzx, -r9.xyzx
mul [precise(xyz)] r9.xyz, r9.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r9.xyz, r9.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r9.xyz, r9.xyzx
ftoi [precise(xyz)] r9.xyz, r9.xyzx
imad [precise(xyz)] r9.xyz, r9.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r0.w, r9.y, r9.z, r9.x
imad [precise(w)] r1.w, r9.z, r0.w, r9.y
imad [precise(w)] r2.w, r0.w, r1.w, r9.z
imad [precise(x)] r9.x, r1.w, r2.w, r0.w
imad [precise(y)] r9.y, r2.w, r9.x, r1.w
imad [precise(z)] r9.z, r9.x, r9.y, r2.w
ushr [precise(xyz)] r9.xyz, r9.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r15.xyz, r9.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r15.xyz, r15.xyzx
mul [precise(xyz)] r15.xyz, r15.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r9.xyw, r9.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r9.xyw, r9.xyxw
mul [precise(xyw)] r9.xyw, r9.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r9.xyw, r9.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r16.xyz, r9.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r16.xyz, r16.xyzx
mul [precise(xyz)] r16.xyz, r16.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r16.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(z)] r12.z, r15.xyzx, r10.xyzx
dp3 [precise(z)] r7.z, r9.xywx, r10.xyzx
dp3 [precise(z)] r13.z, r16.xyzx, r10.xyzx
add [precise(xyz)] r6.xyz, r6.xyzx, -r11.xyzx
mul [precise(xyz)] r9.xyz, r11.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r9.xyz, r9.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r9.xyz, r9.xyzx
ftoi [precise(xyz)] r9.xyz, r9.xyzx
imad [precise(xyz)] r9.xyz, r9.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r0.w, r9.y, r9.z, r9.x
imad [precise(w)] r1.w, r9.z, r0.w, r9.y
imad [precise(w)] r2.w, r0.w, r1.w, r9.z
imad [precise(x)] r9.x, r1.w, r2.w, r0.w
imad [precise(y)] r9.y, r2.w, r9.x, r1.w
imad [precise(z)] r9.z, r9.x, r9.y, r2.w
ushr [precise(xyz)] r9.xyz, r9.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r11.xyz, r9.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r11.xyz, r11.xyzx
mul [precise(xyz)] r11.xyz, r11.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r11.xyz, r11.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r9.xyw, r9.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r9.xyw, r9.xyxw
mul [precise(xyw)] r9.xyw, r9.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r9.xyw, r9.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r15.xyz, r9.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r15.xyz, r15.xyzx
mul [precise(xyz)] r15.xyz, r15.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(w)] r12.w, r11.xyzx, r6.xyzx
dp3 [precise(w)] r7.w, r9.xywx, r6.xyzx
dp3 [precise(w)] r13.w, r15.xyzx, r6.xyzx
dp3 [precise(x)] r8.x, r8.xyzx, r8.xyzx
dp3 [precise(y)] r8.y, r14.xyzx, r14.xyzx
dp3 [precise(z)] r8.z, r10.xyzx, r10.xyzx
dp3 [precise(w)] r8.w, r6.xyzx, r6.xyzx
mul_sat [precise] r6.xyzw, r8.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r8.xyzw, r6.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r8.xyzw, -r8.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r8.xyzw, r6.xyzw, r8.xyzw
add [precise] r8.xyzw, r8.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r6.xyzw, r6.xyzw, r8.xyzw
add [precise] r6.xyzw, r6.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r8.x, r6.xyzw, r12.xyzw
dp4 [precise(y)] r8.y, r6.xyzw, r7.xyzw
dp4 [precise(z)] r8.z, r6.xyzw, r13.xyzw
mul [precise(xyz)] r6.xyz, r8.xyzx, cb5[6].zzzz
add [precise(xyz)] r4.xyz, r4.xyzx, r6.xyzx
dp3 [precise(w)] r0.w, r4.xyzx, r4.xyzx
sqrt [precise(w)] r0.w, r0.w
div [precise(xy)] r4.xy, r4.xyxx, r0.wwww
itof [precise(zw)] r4.zw, cb2[149].zzzw
div [precise(w)] r0.w, r4.w, l(2147483648.000000)
add [precise(w)] r0.w, r0.w, r4.z
mul [precise(w)] r1.w, r0.w, cb5[10].z
dp2 [precise(w)] r2.w, cb3[10].xyxx, r4.xyxx
mul [precise(w)] r2.w, r2.w, cb5[9].y
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r7.x, r8.x, r1.w
mul [precise(w)] r1.w, r8.x, cb5[10].w
mul [precise(xy)] r8.xy, r1.wwww, r4.xyxx
mul [precise(w)] r1.w, r7.x, cb5[10].w
mul [precise(z)] r8.z, r1.w, cb5[11].x
sincos [precise(x)] r7.x, r9.x, cb5[11].z
mul [precise(yzw)] r7.yzw, r2.xxyz, r9.xxxx
mul [precise(xyz)] r9.xyz, r3.xyzx, r7.xxxx
add [precise(xyz)] r7.xyz, r7.yzwy, r9.xyzx
add [precise(xyz)] r7.xyz, r1.yyzy, r7.xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, -cb4[52].xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r7.xyzx, r7.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r7.xyz, r7.xyzx, r1.wwww
add [precise(xyz)] r7.xyz, r6.xyzx, r7.xyzx
dp3 [precise(w)] r1.w, r7.xyzx, r7.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(zw)] r4.zw, r7.xxxy, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[12].y
dp2 [precise(w)] r2.w, cb3[10].xyxx, r4.zwzz
mul [precise(w)] r2.w, r2.w, cb5[12].x
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r7.x, r9.x, r1.w
mul [precise(w)] r1.w, r9.x, cb5[12].z
mul [precise(xy)] r9.xy, r1.wwww, r4.zwzz
mul [precise(w)] r1.w, r7.x, cb5[12].z
mul [precise(z)] r9.z, r1.w, cb5[11].x
add [precise(xyz)] r7.xyz, r8.xyzx, r9.xyzx
sincos [precise(x)] r8.x, r9.x, cb5[12].w
mul [precise(yzw)] r8.yzw, r2.xxyz, r9.xxxx
mul [precise(xyz)] r9.xyz, r3.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r9.xyzx
add [precise(xyz)] r8.xyz, r1.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb4[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r8.xyzx, r8.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r8.xyz, r8.xyzx, r1.wwww
add [precise(xyz)] r6.xyz, r6.xyzx, r8.xyzx
dp3 [precise(w)] r1.w, r6.xyzx, r6.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r6.xy, r6.xyxx, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[14].y
dp2 [precise(w)] r2.w, cb3[10].xyxx, r6.xyxx
mul [precise(w)] r2.w, r2.w, cb5[13].w
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r8.x, r9.x, r1.w
mul [precise(w)] r1.w, r9.x, cb5[14].z
mul [precise(xy)] r9.xy, r1.wwww, r6.xyxx
mul [precise(w)] r1.w, r8.x, cb5[14].z
mul [precise(z)] r9.z, r1.w, cb5[11].x
add [precise(xyz)] r7.xyz, r7.xyzx, r9.xyzx
sincos [precise(x)] r8.x, r9.x, cb5[15].w
mul [precise(yzw)] r8.yzw, r2.xxyz, r9.xxxx
mul [precise(xyz)] r9.xyz, r3.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r9.xyzx
add [precise(xyz)] r8.xyz, r1.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb4[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r8.xyzx, r8.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r8.xyz, r8.xyzx, r1.wwww
mul [precise(xyz)] r9.xyz, r5.xyzx, cb5[16].xxxx
div [precise(xyz)] r10.xyz, r9.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r11.xyz, r9.xyzx, r10.xxxx
add [precise(xyw)] r10.xyw, r10.yyyy, r11.xyxz
add [precise(xyz)] r10.xyz, r10.zzzz, r10.xywx
round_ni [precise(xyz)] r10.xyz, r10.xyzx
div [precise(xyz)] r11.xyz, r10.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r10.xyz, r10.xyzx, -r11.xxxx
add [precise(xyz)] r10.xyz, -r11.yyyy, r10.xyzx
add [precise(xyz)] r10.xyz, -r11.zzzz, r10.xyzx
add [precise(xyz)] r11.xyz, r9.xyzx, -r10.xyzx
ge [precise(xyz)] r12.xyz, r11.zxyz, r11.xyzx
and [precise(xyz)] r13.xyz, r12.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r12.xyz, r12.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r14.xyz, r12.xyzx, r13.xyzx
add [precise(xyz)] r14.xyz, r14.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r12.xyz, r12.xyzx, r13.xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r13.xyz, r10.xyzx, r14.xyzx
add [precise(xyz)] r12.xyz, r10.xyzx, r12.xyzx
add [precise(xyz)] r14.xyz, r10.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul [precise(xyz)] r10.xyz, r10.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r10.xyz, r10.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r10.xyz, r10.xyzx
ftoi [precise(xyz)] r10.xyz, r10.xyzx
imad [precise(xyz)] r10.xyz, r10.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r10.y, r10.z, r10.x
imad [precise(w)] r2.w, r10.z, r1.w, r10.y
imad [precise(w)] r3.w, r1.w, r2.w, r10.z
imad [precise(x)] r10.x, r2.w, r3.w, r1.w
imad [precise(y)] r10.y, r3.w, r10.x, r2.w
imad [precise(z)] r10.z, r10.x, r10.y, r3.w
ushr [precise(xyz)] r10.xyz, r10.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r15.xyz, r10.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r15.xyz, r15.xyzx
mul [precise(xyz)] r15.xyz, r15.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r10.xyw, r10.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r10.xyw, r10.xyxw
mul [precise(xyw)] r10.xyw, r10.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r10.xyw, r10.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r16.xyz, r10.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r16.xyz, r16.xyzx
mul [precise(xyz)] r16.xyz, r16.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r16.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(x)] r15.x, r15.xyzx, r11.xyzx
dp3 [precise(x)] r10.x, r10.xywx, r11.xyzx
dp3 [precise(x)] r16.x, r16.xyzx, r11.xyzx
add [precise(xyz)] r17.xyz, r9.xyzx, -r13.xyzx
mul [precise(xyz)] r13.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r13.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r13.xyz, r13.xyzx
ftoi [precise(xyz)] r13.xyz, r13.xyzx
imad [precise(xyz)] r13.xyz, r13.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r13.y, r13.z, r13.x
imad [precise(w)] r2.w, r13.z, r1.w, r13.y
imad [precise(w)] r3.w, r1.w, r2.w, r13.z
imad [precise(x)] r13.x, r2.w, r3.w, r1.w
imad [precise(y)] r13.y, r3.w, r13.x, r2.w
imad [precise(z)] r13.z, r13.x, r13.y, r3.w
ushr [precise(xyz)] r13.xyz, r13.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r18.xyz, r13.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r18.xyz, r18.xyzx
mul [precise(xyz)] r18.xyz, r18.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r13.xyw, r13.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r13.xyw, r13.xyxw
mul [precise(xyw)] r13.xyw, r13.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r13.xyw, r13.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r19.xyz, r13.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r19.xyz, r19.xyzx
mul [precise(xyz)] r19.xyz, r19.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r19.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(y)] r15.y, r18.xyzx, r17.xyzx
dp3 [precise(y)] r10.y, r13.xywx, r17.xyzx
dp3 [precise(y)] r16.y, r19.xyzx, r17.xyzx
add [precise(xyz)] r13.xyz, r9.xyzx, -r12.xyzx
mul [precise(xyz)] r12.xyz, r12.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r12.xyz, r12.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r12.xyz, r12.xyzx
ftoi [precise(xyz)] r12.xyz, r12.xyzx
imad [precise(xyz)] r12.xyz, r12.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r12.y, r12.z, r12.x
imad [precise(w)] r2.w, r12.z, r1.w, r12.y
imad [precise(w)] r3.w, r1.w, r2.w, r12.z
imad [precise(x)] r12.x, r2.w, r3.w, r1.w
imad [precise(y)] r12.y, r3.w, r12.x, r2.w
imad [precise(z)] r12.z, r12.x, r12.y, r3.w
ushr [precise(xyz)] r12.xyz, r12.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r18.xyz, r12.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r18.xyz, r18.xyzx
mul [precise(xyz)] r18.xyz, r18.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r12.xyw, r12.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r12.xyw, r12.xyxw
mul [precise(xyw)] r12.xyw, r12.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r12.xyw, r12.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r19.xyz, r12.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r19.xyz, r19.xyzx
mul [precise(xyz)] r19.xyz, r19.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r19.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(z)] r15.z, r18.xyzx, r13.xyzx
dp3 [precise(z)] r10.z, r12.xywx, r13.xyzx
dp3 [precise(z)] r16.z, r19.xyzx, r13.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, -r14.xyzx
mul [precise(xyz)] r12.xyz, r14.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r12.xyz, r12.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r12.xyz, r12.xyzx
ftoi [precise(xyz)] r12.xyz, r12.xyzx
imad [precise(xyz)] r12.xyz, r12.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r12.y, r12.z, r12.x
imad [precise(w)] r2.w, r12.z, r1.w, r12.y
imad [precise(w)] r3.w, r1.w, r2.w, r12.z
imad [precise(x)] r12.x, r2.w, r3.w, r1.w
imad [precise(y)] r12.y, r3.w, r12.x, r2.w
imad [precise(z)] r12.z, r12.x, r12.y, r3.w
ushr [precise(xyz)] r12.xyz, r12.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r14.xyz, r12.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r14.xyz, r14.xyzx
mul [precise(xyz)] r14.xyz, r14.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r14.xyz, r14.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r12.xyw, r12.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r12.xyw, r12.xyxw
mul [precise(xyw)] r12.xyw, r12.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r12.xyw, r12.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r18.xyz, r12.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r18.xyz, r18.xyzx
mul [precise(xyz)] r18.xyz, r18.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(w)] r15.w, r14.xyzx, r9.xyzx
dp3 [precise(w)] r10.w, r12.xywx, r9.xyzx
dp3 [precise(w)] r16.w, r18.xyzx, r9.xyzx
dp3 [precise(x)] r11.x, r11.xyzx, r11.xyzx
dp3 [precise(y)] r11.y, r17.xyzx, r17.xyzx
dp3 [precise(z)] r11.z, r13.xyzx, r13.xyzx
dp3 [precise(w)] r11.w, r9.xyzx, r9.xyzx
mul_sat [precise] r9.xyzw, r11.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r11.xyzw, r9.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r11.xyzw, -r11.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r11.xyzw, r9.xyzw, r11.xyzw
add [precise] r11.xyzw, r11.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r9.xyzw, r9.xyzw, r11.xyzw
add [precise] r9.xyzw, r9.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r11.x, r9.xyzw, r15.xyzw
dp4 [precise(y)] r11.y, r9.xyzw, r10.xyzw
dp4 [precise(z)] r11.z, r9.xyzw, r16.xyzw
mul [precise(xyz)] r9.xyz, r11.xyzx, cb5[16].yyyy
add [precise(xyz)] r8.xyz, r8.xyzx, r9.xyzx
dp3 [precise(w)] r1.w, r8.xyzx, r8.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(zw)] r6.zw, r8.xxxy, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[20].y
dp2 [precise(w)] r2.w, cb3[10].xyxx, r6.zwzz
mul [precise(w)] r2.w, r2.w, cb5[19].x
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r8.x, r10.x, r1.w
mul [precise(w)] r1.w, r10.x, cb5[20].z
mul [precise(xy)] r10.xy, r1.wwww, r6.zwzz
mul [precise(w)] r1.w, r8.x, cb5[20].z
mul [precise(z)] r10.z, r1.w, cb5[20].w
sincos [precise(x)] r8.x, r11.x, cb5[21].y
mul [precise(yzw)] r8.yzw, r2.xxyz, r11.xxxx
mul [precise(xyz)] r11.xyz, r3.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r11.xyzx
add [precise(xyz)] r8.xyz, r1.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb4[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r8.xyzx, r8.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r8.xyz, r8.xyzx, r1.wwww
add [precise(xyz)] r8.xyz, r9.xyzx, r8.xyzx
dp3 [precise(w)] r1.w, r8.xyzx, r8.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r8.xy, r8.xyxx, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[22].x
dp2 [precise(w)] r2.w, cb3[10].xyxx, r8.xyxx
mul [precise(w)] r2.w, r2.w, cb5[21].w
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r11.x, r12.x, r1.w
mul [precise(w)] r1.w, r12.x, cb5[22].y
mul [precise(xy)] r12.xy, r1.wwww, r8.xyxx
mul [precise(w)] r1.w, r11.x, cb5[22].y
mul [precise(z)] r12.z, r1.w, cb5[20].w
add [precise(xyz)] r10.xyz, r10.xyzx, r12.xyzx
sincos [precise(x)] r11.x, r12.x, cb5[22].z
mul [precise(yzw)] r11.yzw, r2.xxyz, r12.xxxx
mul [precise(xyz)] r12.xyz, r3.xyzx, r11.xxxx
add [precise(xyz)] r11.xyz, r11.yzwy, r12.xyzx
add [precise(xyz)] r11.xyz, r1.yyzy, r11.xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, -cb4[52].xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r11.xyzx, r11.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r11.xyz, r11.xyzx, r1.wwww
add [precise(xyz)] r9.xyz, r9.xyzx, r11.xyzx
dp3 [precise(w)] r1.w, r9.xyzx, r9.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(zw)] r8.zw, r9.xxxy, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[24].x
dp2 [precise(w)] r2.w, cb3[10].xyxx, r8.zwzz
mul [precise(w)] r2.w, r2.w, cb5[23].z
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r9.x, r11.x, r1.w
mul [precise(w)] r1.w, r11.x, cb5[24].y
mul [precise(xy)] r11.xy, r1.wwww, r8.zwzz
mul [precise(w)] r1.w, r9.x, cb5[24].y
mul [precise(z)] r11.z, r1.w, cb5[20].w
add [precise(xyz)] r9.xyz, r10.xyzx, r11.xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, r9.xyzx
sincos [precise(x)] r9.x, r10.x, cb5[25].z
mul [precise(yzw)] r9.yzw, r2.xxyz, r10.xxxx
mul [precise(xyz)] r10.xyz, r3.xyzx, r9.xxxx
add [precise(xyz)] r9.xyz, r9.yzwy, r10.xyzx
add [precise(xyz)] r9.xyz, r1.yyzy, r9.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, -cb4[52].xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r9.xyzx, r9.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r9.xyz, r9.xyzx, r1.wwww
mul [precise(xyz)] r10.xyz, r5.xyzx, cb5[25].wwww
div [precise(xyz)] r11.xyz, r10.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r12.xyz, r10.xyzx, r11.xxxx
add [precise(xyw)] r11.xyw, r11.yyyy, r12.xyxz
add [precise(xyz)] r11.xyz, r11.zzzz, r11.xywx
round_ni [precise(xyz)] r11.xyz, r11.xyzx
div [precise(xyz)] r12.xyz, r11.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r11.xyz, r11.xyzx, -r12.xxxx
add [precise(xyz)] r11.xyz, -r12.yyyy, r11.xyzx
add [precise(xyz)] r11.xyz, -r12.zzzz, r11.xyzx
add [precise(xyz)] r12.xyz, r10.xyzx, -r11.xyzx
ge [precise(xyz)] r13.xyz, r12.zxyz, r12.xyzx
and [precise(xyz)] r14.xyz, r13.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r13.xyz, r13.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r15.xyz, r13.xyzx, r14.xyzx
add [precise(xyz)] r15.xyz, r15.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r13.xyz, r13.xyzx, r14.xyzx
add [precise(xyz)] r13.xyz, r13.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r14.xyz, r11.xyzx, r15.xyzx
add [precise(xyz)] r13.xyz, r11.xyzx, r13.xyzx
add [precise(xyz)] r15.xyz, r11.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul [precise(xyz)] r11.xyz, r11.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r11.xyz, r11.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r11.xyz, r11.xyzx
ftoi [precise(xyz)] r11.xyz, r11.xyzx
imad [precise(xyz)] r11.xyz, r11.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r11.y, r11.z, r11.x
imad [precise(w)] r2.w, r11.z, r1.w, r11.y
imad [precise(w)] r3.w, r1.w, r2.w, r11.z
imad [precise(x)] r11.x, r2.w, r3.w, r1.w
imad [precise(y)] r11.y, r3.w, r11.x, r2.w
imad [precise(z)] r11.z, r11.x, r11.y, r3.w
ushr [precise(xyz)] r11.xyz, r11.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r16.xyz, r11.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r16.xyz, r16.xyzx
mul [precise(xyz)] r16.xyz, r16.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r16.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r11.xyw, r11.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r11.xyw, r11.xyxw
mul [precise(xyw)] r11.xyw, r11.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r11.xyw, r11.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r17.xyz, r11.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r17.xyz, r17.xyzx
mul [precise(xyz)] r17.xyz, r17.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r17.xyz, r17.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(x)] r16.x, r16.xyzx, r12.xyzx
dp3 [precise(x)] r11.x, r11.xywx, r12.xyzx
dp3 [precise(x)] r17.x, r17.xyzx, r12.xyzx
add [precise(xyz)] r18.xyz, r10.xyzx, -r14.xyzx
mul [precise(xyz)] r14.xyz, r14.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r14.xyz, r14.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r14.xyz, r14.xyzx
ftoi [precise(xyz)] r14.xyz, r14.xyzx
imad [precise(xyz)] r14.xyz, r14.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r14.y, r14.z, r14.x
imad [precise(w)] r2.w, r14.z, r1.w, r14.y
imad [precise(w)] r3.w, r1.w, r2.w, r14.z
imad [precise(x)] r14.x, r2.w, r3.w, r1.w
imad [precise(y)] r14.y, r3.w, r14.x, r2.w
imad [precise(z)] r14.z, r14.x, r14.y, r3.w
ushr [precise(xyz)] r14.xyz, r14.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r19.xyz, r14.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r19.xyz, r19.xyzx
mul [precise(xyz)] r19.xyz, r19.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r19.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r14.xyw, r14.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r14.xyw, r14.xyxw
mul [precise(xyw)] r14.xyw, r14.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r14.xyw, r14.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r20.xyz, r14.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r20.xyz, r20.xyzx
mul [precise(xyz)] r20.xyz, r20.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r20.xyz, r20.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(y)] r16.y, r19.xyzx, r18.xyzx
dp3 [precise(y)] r11.y, r14.xywx, r18.xyzx
dp3 [precise(y)] r17.y, r20.xyzx, r18.xyzx
add [precise(xyz)] r14.xyz, r10.xyzx, -r13.xyzx
mul [precise(xyz)] r13.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r13.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r13.xyz, r13.xyzx
ftoi [precise(xyz)] r13.xyz, r13.xyzx
imad [precise(xyz)] r13.xyz, r13.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r13.y, r13.z, r13.x
imad [precise(w)] r2.w, r13.z, r1.w, r13.y
imad [precise(w)] r3.w, r1.w, r2.w, r13.z
imad [precise(x)] r13.x, r2.w, r3.w, r1.w
imad [precise(y)] r13.y, r3.w, r13.x, r2.w
imad [precise(z)] r13.z, r13.x, r13.y, r3.w
ushr [precise(xyz)] r13.xyz, r13.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r19.xyz, r13.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r19.xyz, r19.xyzx
mul [precise(xyz)] r19.xyz, r19.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r19.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r13.xyw, r13.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r13.xyw, r13.xyxw
mul [precise(xyw)] r13.xyw, r13.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r13.xyw, r13.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r20.xyz, r13.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r20.xyz, r20.xyzx
mul [precise(xyz)] r20.xyz, r20.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r20.xyz, r20.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(z)] r16.z, r19.xyzx, r14.xyzx
dp3 [precise(z)] r11.z, r13.xywx, r14.xyzx
dp3 [precise(z)] r17.z, r20.xyzx, r14.xyzx
add [precise(xyz)] r10.xyz, r10.xyzx, -r15.xyzx
mul [precise(xyz)] r13.xyz, r15.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r13.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r13.xyz, r13.xyzx
ftoi [precise(xyz)] r13.xyz, r13.xyzx
imad [precise(xyz)] r13.xyz, r13.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r13.y, r13.z, r13.x
imad [precise(w)] r2.w, r13.z, r1.w, r13.y
imad [precise(w)] r3.w, r1.w, r2.w, r13.z
imad [precise(x)] r13.x, r2.w, r3.w, r1.w
imad [precise(y)] r13.y, r3.w, r13.x, r2.w
imad [precise(z)] r13.z, r13.x, r13.y, r3.w
ushr [precise(xyz)] r13.xyz, r13.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r15.xyz, r13.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r15.xyz, r15.xyzx
mul [precise(xyz)] r15.xyz, r15.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r13.xyw, r13.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r13.xyw, r13.xyxw
mul [precise(xyw)] r13.xyw, r13.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r13.xyw, r13.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r19.xyz, r13.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r19.xyz, r19.xyzx
mul [precise(xyz)] r19.xyz, r19.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r19.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(w)] r16.w, r15.xyzx, r10.xyzx
dp3 [precise(w)] r11.w, r13.xywx, r10.xyzx
dp3 [precise(w)] r17.w, r19.xyzx, r10.xyzx
dp3 [precise(x)] r12.x, r12.xyzx, r12.xyzx
dp3 [precise(y)] r12.y, r18.xyzx, r18.xyzx
dp3 [precise(z)] r12.z, r14.xyzx, r14.xyzx
dp3 [precise(w)] r12.w, r10.xyzx, r10.xyzx
mul_sat [precise] r10.xyzw, r12.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r12.xyzw, r10.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r12.xyzw, -r12.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r12.xyzw, r10.xyzw, r12.xyzw
add [precise] r12.xyzw, r12.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r10.xyzw, r10.xyzw, r12.xyzw
add [precise] r10.xyzw, r10.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r12.x, r10.xyzw, r16.xyzw
dp4 [precise(y)] r12.y, r10.xyzw, r11.xyzw
dp4 [precise(z)] r12.z, r10.xyzw, r17.xyzw
mul [precise(xyz)] r10.xyz, r12.xyzx, cb5[26].xxxx
add [precise(xyz)] r9.xyz, r9.xyzx, r10.xyzx
dp3 [precise(w)] r1.w, r9.xyzx, r9.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r9.xy, r9.xyxx, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[30].x
dp2 [precise(w)] r2.w, cb3[10].xyxx, r9.xyxx
mul [precise(w)] r2.w, r2.w, cb5[28].w
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r11.x, r12.x, r1.w
mul [precise(w)] r1.w, r12.x, cb5[30].y
mul [precise(xy)] r12.xy, r1.wwww, r9.xyxx
mul [precise(w)] r1.w, r11.x, cb5[30].y
mul [precise(z)] r12.z, r1.w, cb5[30].z
sincos [precise(x)] r11.x, r13.x, cb5[31].x
mul [precise(yzw)] r11.yzw, r2.xxyz, r13.xxxx
mul [precise(xyz)] r13.xyz, r3.xyzx, r11.xxxx
add [precise(xyz)] r11.xyz, r11.yzwy, r13.xyzx
add [precise(xyz)] r11.xyz, r1.yyzy, r11.xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, -cb4[52].xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r11.xyzx, r11.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r11.xyz, r11.xyzx, r1.wwww
add [precise(xyz)] r11.xyz, r10.xyzx, r11.xyzx
dp3 [precise(w)] r1.w, r11.xyzx, r11.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(zw)] r9.zw, r11.xxxy, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[31].w
dp2 [precise(w)] r2.w, cb3[10].xyxx, r9.zwzz
mul [precise(w)] r2.w, r2.w, cb5[31].z
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r11.x, r13.x, r1.w
mul [precise(w)] r1.w, r13.x, cb5[32].x
mul [precise(xy)] r13.xy, r1.wwww, r9.zwzz
mul [precise(w)] r1.w, r11.x, cb5[32].x
mul [precise(z)] r13.z, r1.w, cb5[30].z
add [precise(xyz)] r11.xyz, r12.xyzx, r13.xyzx
sincos [precise(x)] r12.x, r13.x, cb5[32].y
mul [precise(yzw)] r12.yzw, r2.xxyz, r13.xxxx
mul [precise(xyz)] r13.xyz, r3.xyzx, r12.xxxx
add [precise(xyz)] r12.xyz, r12.yzwy, r13.xyzx
add [precise(xyz)] r12.xyz, r1.yyzy, r12.xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, -cb4[52].xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r12.xyzx, r12.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r12.xyz, r12.xyzx, r1.wwww
add [precise(xyz)] r10.xyz, r10.xyzx, r12.xyzx
dp3 [precise(w)] r1.w, r10.xyzx, r10.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r10.xy, r10.xyxx, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[33].w
dp2 [precise(w)] r2.w, cb3[10].xyxx, r10.xyxx
mul [precise(w)] r2.w, r2.w, cb5[33].y
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r12.x, r13.x, r1.w
mul [precise(w)] r1.w, r13.x, cb5[34].x
mul [precise(xy)] r13.xy, r1.wwww, r10.xyxx
mul [precise(w)] r1.w, r12.x, cb5[34].x
mul [precise(z)] r13.z, r1.w, cb5[30].z
add [precise(xyz)] r11.xyz, r11.xyzx, r13.xyzx
sincos [precise(x)] r12.x, r13.x, cb5[35].y
mul [precise(yzw)] r12.yzw, r2.xxyz, r13.xxxx
mul [precise(xyz)] r13.xyz, r3.xyzx, r12.xxxx
add [precise(xyz)] r12.xyz, r12.yzwy, r13.xyzx
add [precise(xyz)] r12.xyz, r1.yyzy, r12.xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, -cb4[52].xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r12.xyzx, r12.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r12.xyz, r12.xyzx, r1.wwww
mul [precise(xyz)] r5.xyz, r5.xyzx, cb5[35].zzzz
div [precise(xyz)] r13.xyz, r5.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r14.xyz, r5.xyzx, r13.xxxx
add [precise(xyw)] r13.xyw, r13.yyyy, r14.xyxz
add [precise(xyz)] r13.xyz, r13.zzzz, r13.xywx
round_ni [precise(xyz)] r13.xyz, r13.xyzx
div [precise(xyz)] r14.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r13.xyz, r13.xyzx, -r14.xxxx
add [precise(xyz)] r13.xyz, -r14.yyyy, r13.xyzx
add [precise(xyz)] r13.xyz, -r14.zzzz, r13.xyzx
add [precise(xyz)] r14.xyz, r5.xyzx, -r13.xyzx
ge [precise(xyz)] r15.xyz, r14.zxyz, r14.xyzx
and [precise(xyz)] r16.xyz, r15.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r15.xyz, r15.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r17.xyz, r15.xyzx, r16.xyzx
add [precise(xyz)] r17.xyz, r17.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r15.xyz, r15.xyzx, r16.xyzx
add [precise(xyz)] r15.xyz, r15.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r16.xyz, r13.xyzx, r17.xyzx
add [precise(xyz)] r15.xyz, r13.xyzx, r15.xyzx
add [precise(xyz)] r17.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul [precise(xyz)] r13.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r13.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r13.xyz, r13.xyzx
ftoi [precise(xyz)] r13.xyz, r13.xyzx
imad [precise(xyz)] r13.xyz, r13.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r13.y, r13.z, r13.x
imad [precise(w)] r2.w, r13.z, r1.w, r13.y
imad [precise(w)] r3.w, r1.w, r2.w, r13.z
imad [precise(x)] r13.x, r2.w, r3.w, r1.w
imad [precise(y)] r13.y, r3.w, r13.x, r2.w
imad [precise(z)] r13.z, r13.x, r13.y, r3.w
ushr [precise(xyz)] r13.xyz, r13.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r18.xyz, r13.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r18.xyz, r18.xyzx
mul [precise(xyz)] r18.xyz, r18.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r13.xyw, r13.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r13.xyw, r13.xyxw
mul [precise(xyw)] r13.xyw, r13.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r13.xyw, r13.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r19.xyz, r13.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r19.xyz, r19.xyzx
mul [precise(xyz)] r19.xyz, r19.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r19.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(x)] r18.x, r18.xyzx, r14.xyzx
dp3 [precise(x)] r13.x, r13.xywx, r14.xyzx
dp3 [precise(x)] r19.x, r19.xyzx, r14.xyzx
add [precise(xyz)] r20.xyz, r5.xyzx, -r16.xyzx
mul [precise(xyz)] r16.xyz, r16.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r16.xyz, r16.xyzx
ftoi [precise(xyz)] r16.xyz, r16.xyzx
imad [precise(xyz)] r16.xyz, r16.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r16.y, r16.z, r16.x
imad [precise(w)] r2.w, r16.z, r1.w, r16.y
imad [precise(w)] r3.w, r1.w, r2.w, r16.z
imad [precise(x)] r16.x, r2.w, r3.w, r1.w
imad [precise(y)] r16.y, r3.w, r16.x, r2.w
imad [precise(z)] r16.z, r16.x, r16.y, r3.w
ushr [precise(xyz)] r16.xyz, r16.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r21.xyz, r16.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r21.xyz, r21.xyzx
mul [precise(xyz)] r21.xyz, r21.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r21.xyz, r21.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r16.xyw, r16.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r16.xyw, r16.xyxw
mul [precise(xyw)] r16.xyw, r16.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r16.xyw, r16.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r22.xyz, r16.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r22.xyz, r22.xyzx
mul [precise(xyz)] r22.xyz, r22.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r22.xyz, r22.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(y)] r18.y, r21.xyzx, r20.xyzx
dp3 [precise(y)] r13.y, r16.xywx, r20.xyzx
dp3 [precise(y)] r19.y, r22.xyzx, r20.xyzx
add [precise(xyz)] r16.xyz, r5.xyzx, -r15.xyzx
mul [precise(xyz)] r15.xyz, r15.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r15.xyz, r15.xyzx
ftoi [precise(xyz)] r15.xyz, r15.xyzx
imad [precise(xyz)] r15.xyz, r15.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r15.y, r15.z, r15.x
imad [precise(w)] r2.w, r15.z, r1.w, r15.y
imad [precise(w)] r3.w, r1.w, r2.w, r15.z
imad [precise(x)] r15.x, r2.w, r3.w, r1.w
imad [precise(y)] r15.y, r3.w, r15.x, r2.w
imad [precise(z)] r15.z, r15.x, r15.y, r3.w
ushr [precise(xyz)] r15.xyz, r15.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r21.xyz, r15.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r21.xyz, r21.xyzx
mul [precise(xyz)] r21.xyz, r21.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r21.xyz, r21.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r15.xyw, r15.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r15.xyw, r15.xyxw
mul [precise(xyw)] r15.xyw, r15.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r15.xyw, r15.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r22.xyz, r15.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r22.xyz, r22.xyzx
mul [precise(xyz)] r22.xyz, r22.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r22.xyz, r22.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(z)] r18.z, r21.xyzx, r16.xyzx
dp3 [precise(z)] r13.z, r15.xywx, r16.xyzx
dp3 [precise(z)] r19.z, r22.xyzx, r16.xyzx
add [precise(xyz)] r5.xyz, r5.xyzx, -r17.xyzx
mul [precise(xyz)] r15.xyz, r17.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r15.xyz, r15.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r15.xyz, r15.xyzx
ftoi [precise(xyz)] r15.xyz, r15.xyzx
imad [precise(xyz)] r15.xyz, r15.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r15.y, r15.z, r15.x
imad [precise(w)] r2.w, r15.z, r1.w, r15.y
imad [precise(w)] r3.w, r1.w, r2.w, r15.z
imad [precise(x)] r15.x, r2.w, r3.w, r1.w
imad [precise(y)] r15.y, r3.w, r15.x, r2.w
imad [precise(z)] r15.z, r15.x, r15.y, r3.w
ushr [precise(xyz)] r15.xyz, r15.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r17.xyz, r15.xxxx, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r17.xyz, r17.xyzx
mul [precise(xyz)] r17.xyz, r17.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r17.xyz, r17.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
and [precise(xyw)] r15.xyw, r15.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r15.xyw, r15.xyxw
mul [precise(xyw)] r15.xyw, r15.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r15.xyw, r15.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r21.xyz, r15.zzzz, l(0x00008000, 0x00004000, 8192, 0)
utof [precise(xyz)] r21.xyz, r21.xyzx
mul [precise(xyz)] r21.xyz, r21.xyzx, l(0.0000610351563, 0.000122070313, 0.000244140625, 0.000000)
add [precise(xyz)] r21.xyz, r21.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 [precise(w)] r18.w, r17.xyzx, r5.xyzx
dp3 [precise(w)] r13.w, r15.xywx, r5.xyzx
dp3 [precise(w)] r19.w, r21.xyzx, r5.xyzx
dp3 [precise(x)] r14.x, r14.xyzx, r14.xyzx
dp3 [precise(y)] r14.y, r20.xyzx, r20.xyzx
dp3 [precise(z)] r14.z, r16.xyzx, r16.xyzx
dp3 [precise(w)] r14.w, r5.xyzx, r5.xyzx
mul_sat [precise] r5.xyzw, r14.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r14.xyzw, r5.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r14.xyzw, -r14.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r14.xyzw, r5.xyzw, r14.xyzw
add [precise] r14.xyzw, r14.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r5.xyzw, r5.xyzw, r14.xyzw
add [precise] r5.xyzw, r5.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r14.x, r5.xyzw, r18.xyzw
dp4 [precise(y)] r14.y, r5.xyzw, r13.xyzw
dp4 [precise(z)] r14.z, r5.xyzw, r19.xyzw
mul [precise(xyz)] r5.xyz, r14.xyzx, cb5[35].wwww
add [precise(xyz)] r12.xyz, r5.xyzx, r12.xyzx
dp3 [precise(w)] r1.w, r12.xyzx, r12.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(zw)] r10.zw, r12.xxxy, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[39].w
dp2 [precise(w)] r2.w, cb3[10].xyxx, r10.zwzz
mul [precise(w)] r2.w, r2.w, cb5[38].z
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r12.x, r13.x, r1.w
mul [precise(w)] r1.w, r13.x, cb5[40].x
mul [precise(xy)] r13.xy, r1.wwww, r10.zwzz
mul [precise(w)] r1.w, r12.x, cb5[40].x
mul [precise(z)] r13.z, r1.w, cb5[40].y
sincos [precise(x)] r12.x, r14.x, cb5[40].w
mul [precise(yzw)] r12.yzw, r2.xxyz, r14.xxxx
mul [precise(xyz)] r14.xyz, r3.xyzx, r12.xxxx
add [precise(xyz)] r12.xyz, r12.yzwy, r14.xyzx
add [precise(xyz)] r12.xyz, r1.yyzy, r12.xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, -cb4[52].xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r12.xyzx, r12.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r12.xyz, r12.xyzx, r1.wwww
add [precise(xyz)] r12.xyz, r5.xyzx, r12.xyzx
dp3 [precise(w)] r1.w, r12.xyzx, r12.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r12.xy, r12.xyxx, r1.wwww
mul [precise(w)] r1.w, r0.w, cb5[41].z
dp2 [precise(w)] r2.w, cb3[10].xyxx, r12.xyxx
mul [precise(w)] r2.w, r2.w, cb5[41].y
add [precise(w)] r1.w, r1.w, r2.w
mul [precise(w)] r1.w, r1.w, l(6.28318548)
sincos [precise(x)] r14.x, r15.x, r1.w
mul [precise(w)] r1.w, r15.x, cb5[41].w
mul [precise(xy)] r15.xy, r1.wwww, r12.xyxx
mul [precise(w)] r1.w, r14.x, cb5[41].w
mul [precise(z)] r15.z, r1.w, cb5[40].y
add [precise(xyz)] r13.xyz, r13.xyzx, r15.xyzx
sincos [precise(x)] r14.x, r15.x, cb5[42].x
mul [precise(xyz)] r2.xyz, r2.xyzx, r15.xxxx
mul [precise(xyz)] r3.xyz, r3.xyzx, r14.xxxx
add [precise(xyz)] r2.xyz, r2.xyzx, r3.xyzx
add [precise(xyz)] r1.xyz, r1.xyzx, r2.xyzx
add [precise(xyz)] r1.xyz, r1.xyzx, -cb4[52].xyzx
add [precise(xyz)] r1.xyz, r1.xyzx, cb4[52].xyzx
dp3 [precise(w)] r1.w, r1.xyzx, r1.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r1.xyz, r1.xyzx, r1.wwww
add [precise(xyz)] r1.xyz, r5.xyzx, r1.xyzx
dp3 [precise(z)] r1.z, r1.xyzx, r1.xyzx
sqrt [precise(z)] r1.z, r1.z
div [precise(xy)] r1.xy, r1.xyxx, r1.zzzz
mul [precise(z)] r1.z, r0.w, cb5[43].z
dp2 [precise(w)] r1.w, cb3[10].xyxx, r1.xyxx
mul [precise(w)] r1.w, r1.w, cb5[43].x
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r2.x, r3.x, r1.z
mul [precise(z)] r1.z, r3.x, cb5[43].w
mul [precise(xy)] r3.xy, r1.zzzz, r1.xyxx
mul [precise(z)] r1.z, r2.x, cb5[43].w
mul [precise(z)] r3.z, r1.z, cb5[40].y
add [precise(xyz)] r2.xyz, r3.xyzx, r13.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, r11.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, r7.xyzx
mul [precise(xy)] r3.xy, r2.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
add [precise(z)] r3.z, -r2.z, l(1.000000)
dp3 [precise(z)] r1.z, r3.xyzx, r3.xyzx
sqrt [precise(z)] r1.z, r1.z
div [precise(xyz)] r2.xyz, r3.xyzx, r1.zzzz
dp3 [precise(z)] r1.z, l(0.000000, 0.000000, 1.000000, 0.000000), r2.xyzx
mul [precise(w)] r1.w, |r1.z|, l(-0.156583)
add [precise(w)] r1.w, r1.w, l(1.57079637)
add [precise(w)] r2.w, -|r1.z|, l(1.000000)
sqrt [precise(w)] r2.w, r2.w
mul [precise(w)] r1.w, r1.w, r2.w
ge [precise(z)] r1.z, r1.z, l(0.000000)
add [precise(w)] r2.w, -r1.w, l(3.14159274)
movc [precise(z)] r1.z, r1.z, r1.w, r2.w
mul [precise(z)] r1.z, r1.z, l(57.295780)
mul [precise(z)] r1.z, r1.z, l(0.005556)
mul [precise(z)] r1.z, r1.z, l(6.28318548)
mul [precise(xyz)] r3.xyz, r2.yzxy, l(0.000000, 0.000000, 1.000000, 0.000000)
mul [precise(xyz)] r2.xyz, r2.xyzx, l(0.000000, 1.000000, 0.000000, 0.000000)
add [precise(xyz)] r2.xyz, -r2.xyzx, r3.xyzx
dp3 [precise(w)] r1.w, r2.yzxy, r2.yzxy
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r2.xyz, r2.xyzx, r1.wwww
add [precise(xyz)] r3.xyz, r0.xyzx, -cb2[71].xyzx
add [precise(xyz)] r5.xyz, r3.xyzx, -cb3[10].xyzx
dp3 [precise(w)] r1.w, r2.yzxy, r5.xyzx
mul [precise(xyz)] r5.xyz, r1.wwww, r2.yzxy
add [precise(xyz)] r5.xyz, r5.xyzx, cb3[10].xyzx
add [precise(xyz)] r7.xyz, r3.xyzx, -r5.xyzx
mul [precise(xyz)] r11.xyz, r2.zxyz, r7.zxyz
mul [precise(xyz)] r2.xyz, r2.xyzx, r7.yzxy
add [precise(xyz)] r2.xyz, -r2.xyzx, r11.xyzx
sincos [precise(x)] r11.x, r13.x, r1.z
mul [precise(xyz)] r7.xyz, r7.xyzx, r13.xxxx
mul [precise(xyz)] r2.xyz, r2.xyzx, r11.xxxx
add [precise(xyz)] r2.xyz, r2.xyzx, r7.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, r5.xyzx
add [precise(xyz)] r2.xyz, -r3.xyzx, r2.xyzx
mul [precise(xyz)] r2.xyz, r2.xyzx, cb5[44].yyyy
mul [precise(w)] r0.w, r0.w, l(50.000000)
round_ni [precise(w)] r0.w, r0.w
div [precise(w)] r0.w, r0.w, l(50.000000)
mul [precise(z)] r1.z, r0.w, cb5[10].z
mul [precise(xy)] r3.xy, r4.xyxx, cb5[9].yyyy
dp2 [precise(w)] r1.w, r3.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r3.x, r5.x, r1.z
mul [precise(zw)] r1.zw, r4.xxxy, cb5[44].zzzz
mul [precise(xy)] r5.xy, r1.zwzz, r5.xxxx
mul [precise(z)] r5.z, r3.x, cb5[9].x
mul [precise(z)] r1.z, r0.w, cb5[12].y
mul [precise(xy)] r3.xy, r4.zwzz, cb5[12].xxxx
dp2 [precise(w)] r1.w, r3.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r3.x, r4.x, r1.z
mul [precise(zw)] r1.zw, r4.zzzw, cb5[44].wwww
mul [precise(xy)] r4.xy, r1.zwzz, r4.xxxx
mul [precise(z)] r4.z, r3.x, cb5[11].w
add [precise(xyz)] r3.xyz, r4.xyzx, r5.xyzx
mul [precise(z)] r1.z, r0.w, cb5[14].y
mul [precise(xy)] r4.xy, r6.xyxx, cb5[13].wwww
dp2 [precise(w)] r1.w, r4.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r4.x, r5.x, r1.z
mul [precise(zw)] r1.zw, r6.xxxy, cb5[45].xxxx
mul [precise(xy)] r5.xy, r1.zwzz, r5.xxxx
mul [precise(z)] r5.z, r4.x, cb5[13].z
add [precise(xyz)] r3.xyz, r3.xyzx, r5.xyzx
mul [precise(z)] r1.z, r0.w, cb5[20].y
mul [precise(xy)] r4.xy, r6.zwzz, cb5[19].xxxx
dp2 [precise(w)] r1.w, r4.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r4.x, r5.x, r1.z
mul [precise(zw)] r1.zw, r6.zzzw, cb5[45].yyyy
mul [precise(xy)] r5.xy, r1.zwzz, r5.xxxx
mul [precise(z)] r5.z, r4.x, cb5[18].w
mul [precise(z)] r1.z, r0.w, cb5[22].x
mul [precise(xy)] r4.xy, r8.xyxx, cb5[21].wwww
dp2 [precise(w)] r1.w, r4.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r4.x, r6.x, r1.z
mul [precise(zw)] r1.zw, r8.xxxy, cb5[45].zzzz
mul [precise(xy)] r6.xy, r1.zwzz, r6.xxxx
mul [precise(z)] r6.z, r4.x, cb5[21].z
add [precise(xyz)] r4.xyz, r5.xyzx, r6.xyzx
mul [precise(z)] r1.z, r0.w, cb5[24].x
mul [precise(xy)] r5.xy, r8.zwzz, cb5[23].zzzz
dp2 [precise(w)] r1.w, r5.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r5.x, r6.x, r1.z
mul [precise(zw)] r1.zw, r8.zzzw, cb5[45].wwww
mul [precise(xy)] r6.xy, r1.zwzz, r6.xxxx
mul [precise(z)] r6.z, r5.x, cb5[23].y
add [precise(xyz)] r4.xyz, r4.xyzx, r6.xyzx
add [precise(xyz)] r3.xyz, r3.xyzx, r4.xyzx
mul [precise(z)] r1.z, r0.w, cb5[30].x
mul [precise(xy)] r4.xy, r9.xyxx, cb5[28].wwww
dp2 [precise(w)] r1.w, r4.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r4.x, r5.x, r1.z
mul [precise(zw)] r1.zw, r9.xxxy, cb5[46].xxxx
mul [precise(xy)] r5.xy, r1.zwzz, r5.xxxx
mul [precise(z)] r5.z, r4.x, cb5[28].z
mul [precise(z)] r1.z, r0.w, cb5[31].w
mul [precise(xy)] r4.xy, r9.zwzz, cb5[31].zzzz
dp2 [precise(w)] r1.w, r4.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r4.x, r6.x, r1.z
mul [precise(zw)] r1.zw, r9.zzzw, cb5[46].yyyy
mul [precise(xy)] r6.xy, r1.zwzz, r6.xxxx
mul [precise(z)] r6.z, r4.x, cb5[31].y
add [precise(xyz)] r4.xyz, r5.xyzx, r6.xyzx
mul [precise(z)] r1.z, r0.w, cb5[33].w
mul [precise(xy)] r5.xy, r10.xyxx, cb5[33].yyyy
dp2 [precise(w)] r1.w, r5.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r5.x, r6.x, r1.z
mul [precise(zw)] r1.zw, r10.xxxy, cb5[46].zzzz
mul [precise(xy)] r6.xy, r1.zwzz, r6.xxxx
mul [precise(z)] r6.z, r5.x, cb5[33].x
add [precise(xyz)] r4.xyz, r4.xyzx, r6.xyzx
mul [precise(z)] r1.z, r0.w, cb5[39].w
mul [precise(xy)] r5.xy, r10.zwzz, cb5[38].zzzz
dp2 [precise(w)] r1.w, r5.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r5.x, r6.x, r1.z
mul [precise(zw)] r1.zw, r10.zzzw, cb5[46].wwww
mul [precise(xy)] r6.xy, r1.zwzz, r6.xxxx
mul [precise(z)] r6.z, r5.x, cb5[38].y
mul [precise(z)] r1.z, r0.w, cb5[41].z
mul [precise(xy)] r5.xy, r12.xyxx, cb5[41].yyyy
dp2 [precise(w)] r1.w, r5.xyxx, cb3[10].xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r5.x, r7.x, r1.z
mul [precise(zw)] r1.zw, r12.xxxy, cb5[47].xxxx
mul [precise(xy)] r7.xy, r1.zwzz, r7.xxxx
mul [precise(z)] r7.z, r5.x, cb5[41].x
add [precise(xyz)] r5.xyz, r6.xyzx, r7.xyzx
mul [precise(w)] r0.w, r0.w, cb5[43].z
mul [precise(zw)] r1.zw, r1.xxxy, cb5[43].xxxx
dp2 [precise(z)] r1.z, r1.zwzz, cb3[10].xyxx
add [precise(w)] r0.w, r0.w, r1.z
mul [precise(w)] r0.w, r0.w, l(6.28318548)
sincos [precise(x)] r6.x, r7.x, r0.w
mul [precise(xy)] r1.xy, r1.xyxx, cb5[47].yyyy
mul [precise(xy)] r1.xy, r1.xyxx, r7.xxxx
mul [precise(z)] r1.z, r6.x, cb5[42].w
add [precise(xyz)] r1.xyz, r1.xyzx, r5.xyzx
add [precise(xyz)] r1.xyz, r1.xyzx, r4.xyzx
add [precise(xyz)] r1.xyz, r1.xyzx, r3.xyzx
mul [precise(xyz)] r1.xyz, r1.xyzx, cb5[44].xxxx
add [precise(xyz)] r1.xyz, r1.xyzx, r2.xyzx
add [precise(xyz)] r1.xyz, r0.xyzx, r1.xyzx
ishl [precise(w)] r0.w, cb3[19].y, l(2)
mul [precise] r2.xyzw, r1.xxxx, cb2[r0.w + 0].xyzw
mul [precise] r3.xyzw, r1.yyyy, cb2[r0.w + 1].xyzw
add [precise] r2.xyzw, r2.xyzw, r3.xyzw
mul [precise] r3.xyzw, r1.zzzz, cb2[r0.w + 2].xyzw
add [precise] r2.xyzw, r2.xyzw, r3.xyzw
add [precise] o4.xyzw, r2.xyzw, cb2[r0.w + 3].xyzw
add [precise(xyz)] r1.xyz, r1.xyzx, -cb2[69].xyzx
dp3 [precise(w)] r0.w, r1.xyzx, r1.xyzx
sqrt [precise(w)] r1.w, r0.w
mul [precise(xy)] r2.xy, cb2[169].xxxx, l(0.000010, 100.000000, 0.000000, 0.000000)
add [precise(z)] r2.z, cb2[69].z, -cb2[168].w
mul [precise(z)] r3.z, r2.z, cb2[169].y
mov [precise(xy)] r3.xy, cb2[69].xyxx
mul [precise(xyz)] r3.xyz, r2.xxxx, r3.xyzx
add [precise(w)] r3.w, r3.z, l(6360.009766)
dp3 [precise(z)] r2.z, r3.xywx, r3.xywx
sqrt [precise(z)] r4.z, r2.z
rsq [precise(w)] r2.w, r0.w
mul [precise(xyz)] r5.xyz, r1.xyzx, r2.wwww
dp3 [precise(z)] r3.z, r3.xywx, r5.xyzx
div [precise(w)] r4.w, r3.z, r4.z
mul [precise(x)] r6.x, r4.w, r4.w
add [precise(x)] r6.x, r6.x, l(-1.000000)
mul [precise(z)] r2.z, r2.z, r6.x
add [precise(xy)] r6.xy, r2.zzzz, l(40449600.000000, 41344900.000000, 0.000000, 0.000000)
sqrt [precise(xy)] r6.xy, r6.xyxx
add [precise(xy)] r6.xy, -r3.zzzz, -r6.xyxx
mul [precise(x)] r2.x, r1.w, r2.x
add [precise(z)] r2.z, r2.x, -cb2[169].w
max [precise(z)] r2.z, r2.z, l(0.000000)
mul r6.w, r2.z, l(0.100000)
div r6.w, r6.w, cb2[169].w
min r6.w, r6.w, l(1.000000)
lt [precise(y)] r2.y, r2.x, r2.y
mul r7.y, r6.w, cb2[168].x
add [precise(x)] r2.x, r2.x, cb2[170].x
max [precise(x)] r7.x, r2.x, l(1.000000)
mov r6.z, l(1.000000)
movc [precise(x)] r4.xy, r2.yyyy, r7.xyxx, r6.xzxx
lt [precise(x)] r2.x, l(0.000000), r6.y
mul [precise(xzw)] r6.xzw, r5.xxyz, r6.yyyy
add [precise(xzw)] r6.xzw, r3.xxyw, r6.xxzw
add [precise(x)] r7.x, -r6.y, r4.x
add [precise(z)] r3.z, r3.z, r6.y
mul [precise(z)] r7.z, r3.z, l(0.000155520989)
movc [precise(xyz)] r6.xyz, r2.xxxx, r6.xzwx, r3.xywx
mov [precise(y)] r7.y, l(6430.000000)
movc [precise(xyz)] r7.xyz, r2.xxxx, r7.xyzx, r4.xzwx
lt [precise(x)] r2.x, r7.y, l(6360.014648)
add [precise(z)] r3.z, -r7.y, l(6360.014648)
mul [precise(xyz)] r8.xyz, r5.xyzx, r3.zzzz
add [precise(xyz)] r8.xyz, r6.xyzx, -r8.xyzx
add [precise(x)] r9.x, -r3.z, r7.x
dp3 [precise(z)] r3.z, r8.xyzx, r5.xyzx
mul [precise(z)] r9.z, r3.z, l(0.000157232338)
mov [precise(y)] r9.y, l(6360.014648)
movc [precise(xyz)] r7.xyz, r2.xxxx, r9.xyzx, r7.xyzx
ge [precise(z)] r3.z, l(6430.000000), r7.y
lt [precise(z)] r2.z, l(0.000000), r2.z
and [precise(z)] r2.z, r2.z, r3.z
if_nz r2.z
  movc [precise(xyz)] r6.xyz, r2.xxxx, r8.xyzx, r6.xyzx
  dp3 r2.x, r5.xyzx, cb2[167].xyzx
  dp3 r2.z, r6.xyzx, cb2[167].xyzx
  div r2.z, r2.z, r7.y
  div [precise(z)] r3.z, l(6360.000000), r7.y
  mul [precise(z)] r3.z, r3.z, r3.z
  add [precise(z)] r3.z, -r3.z, l(1.000000)
  sqrt [precise(z)] r3.z, r3.z
  add [precise(w)] r6.w, -r3.z, l(0.005000)
  add [precise(w)] r7.w, r6.w, l(0.150000)
  max [precise(w)] r7.w, r7.w, r7.z
  max [precise(z)] r7.z, r6.w, r7.z
  movc [precise(x)] r8.x, r2.y, r7.w, r7.z
  mul [precise(z)] r7.z, -r5.z, l(1.442695)
  exp [precise(z)] r7.z, r7.z
  add_sat [precise(y)] r9.y, r7.z, l(-0.500000)
  lt [precise(z)] r7.z, r9.y, l(1.000000)
  max [precise(w)] r5.w, r5.z, l(0.150000)
  dp3 [precise(w)] r7.w, r5.xywx, r5.xywx
  rsq [precise(w)] r7.w, r7.w
  mul [precise(xyz)] r10.xyz, r5.xywx, r7.wwww
  mul [precise(xyz)] r11.xyz, r7.xxxx, r10.xyzx
  add [precise(xyz)] r11.xyz, r6.xyzx, r11.xyzx
  dp3 [precise(w)] r5.w, r11.xyzx, r11.xyzx
  sqrt [precise(w)] r5.w, r5.w
  dp3 [precise(w)] r7.w, r11.xyzx, r10.xyzx
  div [precise(w)] r10.w, r7.w, r5.w
  mov [precise(yzw)] r8.yzw, r5.xxyz
  movc [precise] r10.xyzw, r7.zzzz, r10.xyzw, r8.yzwx
  mov [precise(x)] r9.x, r10.w
  mov [precise(y)] r8.y, l(0)
  movc [precise(xy)] r9.xy, r2.yyyy, r9.xyxx, r8.xyxx
  mad r5.w, r2.x, r2.x, l(1.000000)
  mul r7.z, r5.w, l(0.0596831031)
  mad r7.w, -r2.x, l(1.600000), l(1.640000)
  log r7.w, |r7.w|
  mul r7.w, r7.w, l(-1.500000)
  exp r7.w, r7.w
  mul r5.w, r5.w, r7.w
  mul r11.x, r5.w, l(0.0162772108)
  mul [precise(w)] r5.w, r7.y, r7.y
  mad r7.w, r7.y, r7.y, l(-40449600.000000)
  sqrt r7.w, r7.w
  mul [precise(y)] r8.y, r7.y, r9.x
  mul [precise(z)] r8.z, r8.y, r8.y
  add [precise(z)] r8.z, -r5.w, r8.z
  add [precise(z)] r8.z, r8.z, l(40449600.000000)
  lt [precise(w)] r8.w, r8.y, l(0.000000)
  lt [precise(w)] r9.w, l(0.000000), r8.z
  and [precise(w)] r8.w, r8.w, r9.w
  movc [precise(xyz)] r12.xyzw, r8.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
  utof r8.w, cb2[170].w
  div r9.w, l(0.500000), r8.w
  mul r10.w, r7.w, l(0.00105685578)
  div r8.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w
  add r8.w, -r8.w, l(1.000000)
  mad r13.z, r10.w, r8.w, r9.w
  add r8.z, r8.z, r12.y
  sqrt r8.z, r8.z
  mad r8.y, r8.y, r12.x, r8.z
  add r8.z, r7.w, r12.z
  div r8.y, r8.y, r8.z
  mad r13.w, r8.y, l(0.492187500), r12.w
  max r8.y, r2.z, l(-0.197500)
  mul r8.y, r8.y, l(5.34962368)
  min r8.z, |r8.y|, l(1.000000)
  max r10.w, |r8.y|, l(1.000000)
  div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w
  mul r8.z, r8.z, r10.w
  mul r10.w, r8.z, r8.z
  mad r12.x, r10.w, l(0.0208350997), l(-0.085133)
  mad r12.x, r10.w, r12.x, l(0.180141)
  mad r12.x, r10.w, r12.x, l(-0.330299497)
  mad r10.w, r10.w, r12.x, l(0.999866)
  mul r12.x, r8.z, r10.w
  lt r12.y, l(1.000000), |r8.y|
  mad r12.x, r12.x, l(-2.000000), l(1.57079637)
  and r12.x, r12.y, r12.x
  mad r8.z, r8.z, r10.w, r12.x
  min r8.y, r8.y, l(1.000000)
  lt r8.y, r8.y, -r8.y
  movc r8.y, r8.y, -r8.z, r8.z
  mad r8.y, r8.y, l(0.909090877), l(0.740000)
  mad r8.y, r8.y, l(0.484375), l(0.015625)
  add r2.x, r2.x, l(1.000000)
  mul r8.z, r2.x, l(3.500000)
  round_ni r8.z, r8.z
  mad r2.x, r2.x, l(3.500000), -r8.z
  add r8.y, r8.y, r8.z
  mul r13.y, r8.y, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r12.xyzw, r13.ywzy, t3.xyzw, s3, l(0.000000)
  add r10.w, -r2.x, l(1.000000)
  add r8.y, r8.y, l(1.000000)
  mul r13.x, r8.y, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r13.xwzx, t3.xyzw, s3, l(0.000000)
  mul r14.xyzw, r2.xxxx, r14.xyzw
  mad r12.xyzw, r12.xyzw, r10.wwww, r14.xyzw
  max r12.xyzw, r12.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  lt [precise(y)] r8.y, l(0.000000), r7.x
  if_nz r8.y
    mul [precise(xyz)] r14.xyz, r5.xyzx, r7.xxxx
    add [precise(xyz)] r6.xyz, r6.xyzx, r14.xyzx
    dp3 [precise(y)] r8.y, r6.xyzx, r6.xyzx
    sqrt [precise(y)] r8.y, r8.y
    div r14.x, l(0.500000), cb2[169].z
    mul r14.x, r7.y, r14.x
    sqrt r14.x, r14.x
    div r14.y, r7.x, r7.y
    add r9.z, r9.x, r14.y
    mul r14.xy, r9.xzxx, r14.xxxx
    lt r14.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xxxy
    lt r15.xy, r14.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    iadd r14.zw, -r14.zzzw, r15.xxxy
    itof r14.zw, r14.zzzw
    mul r15.xyz, r14.xxyx, r14.xxyx
    lt r15.w, r14.z, r14.w
    mul r15.x, r15.x, l(1.442695)
    exp r15.x, r15.x
    and r15.x, r15.x, r15.w
    mad r15.yz, r15.yyzy, l(0.000000, 1.520000, 1.520000, 0.000000), l(0.000000, 4.000000, 4.000000, 0.000000)
    sqrt r15.yz, r15.yyzy
    mad r14.xy, |r14.xyxx|, l(2.319300, 2.319300, 0.000000, 0.000000), r15.yzyy
    div r14.xy, r14.zwzz, r14.xyxx
    div r14.z, -r7.x, cb2[169].z
    mul [precise(y)] r15.yzw, r7.yyyy, l(0.000000, 2.000000, 0.416666657, 7.53972054)
    div r14.w, r7.x, r15.y
    add r14.w, r9.x, r14.w
    mul r14.z, r14.w, r14.z
    mul r14.z, r14.z, l(1.442695)
    exp r16.y, r14.z
    mov r16.xz, l(1.000000,0,1.000000,0)
    mul r14.xy, r14.xyxx, r16.xyxx
    mul r14.z, cb2[169].z, l(6.283100)
    mul r14.z, r7.y, r14.z
    sqrt r14.z, r14.z
    add r16.x, -r7.y, l(6360.000000)
    div r16.y, r16.x, cb2[169].z
    mul r16.y, r16.y, l(1.442695)
    exp r16.y, r16.y
    mul r14.z, r14.z, r16.y
    dp2 r14.x, r14.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r14.x, r14.x, r15.x
    mul r14.x, r14.x, r14.z
    sqrt r14.yz, r15.zzwz
    mul r15.xz, r9.xxzx, r14.yyyy
    lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xzxx
    lt r17.zw, r15.xxxz, l(0.000000, 0.000000, 0.000000, 0.000000)
    iadd r17.xy, -r17.xyxx, r17.zwzz
    itof r17.xy, r17.xyxx
    mul r18.xyz, r15.xxzx, r15.xxzx
    lt r9.z, r17.x, r17.y
    mul r14.y, r18.x, l(1.442695)
    exp r14.y, r14.y
    and r9.z, r9.z, r14.y
    mad r17.zw, r18.yyyz, l(0.000000, 0.000000, 1.520000, 1.520000), l(0.000000, 0.000000, 4.000000, 4.000000)
    sqrt r17.zw, r17.zzzw
    mad r15.xz, |r15.xxzx|, l(2.319300, 0.000000, 2.319300, 0.000000), r17.zzwz
    div r15.xz, r17.xxyx, r15.xxzx
    mul r14.y, -r7.x, r14.w
    mul r14.y, r14.y, l(1.20224583)
    exp r16.w, r14.y
    mul r14.yw, r15.xxxz, r16.zzzw
    mul r15.x, r16.x, l(1.20224583)
    exp r15.x, r15.x
    mul r14.z, r14.z, r15.x
    dp2 r14.y, r14.ywyy, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r9.z, r9.z, r14.y
    mul r9.z, r9.z, r14.z
    mul r9.z, r9.z, l(0.00444444455)
    mad r14.xyz, r14.xxxx, l(-0.005800, -0.013500, -0.033100, 0.000000), -r9.zzzz
    mul r14.xyz, r14.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
    exp r14.xyz, r14.xyzx
    max [precise(z)] r9.z, r7.y, r8.y
    movc [precise(z)] r9.z, r2.y, r9.z, r8.y
    lt [precise(w)] r14.w, l(6360.009766), r9.z
    if_nz r14.w
      lt [precise(w)] r14.w, r9.y, l(1.000000)
      if_nz r14.w
        movc [precise(xyz)] r10.xyz, r2.yyyy, r10.xyzx, r5.xyzx
        dp3 [precise(x)] r10.x, r6.xyzx, r10.xyzx
        div [precise(x)] r10.x, r10.x, r8.y
        dp3 r6.x, r6.xyzx, cb2[167].xyzx
        div r6.x, r6.x, r8.y
        mul [precise(y)] r6.y, r9.z, r9.z
        mad r6.z, r9.z, r9.z, l(-40449600.000000)
        sqrt r6.z, r6.z
        mul [precise(y)] r8.y, r9.z, r10.x
        mul [precise(z)] r9.z, r8.y, r8.y
        add [precise(y)] r6.y, -r6.y, r9.z
        add [precise(y)] r6.y, r6.y, l(40449600.000000)
        lt [precise(z)] r9.z, r8.y, l(0.000000)
        lt [precise(x)] r10.x, l(0.000000), r6.y
        and [precise(z)] r9.z, r9.z, r10.x
        movc [precise(xyz)] r16.xyzw, r9.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
        mul r9.z, r8.w, r6.z
        mad r17.y, r9.z, l(0.00105685578), r9.w
        add r6.yz, r6.yyzy, r16.yyzy
        sqrt r6.y, r6.y
        mad r6.y, r8.y, r16.x, r6.y
        div r6.y, r6.y, r6.z
        mad r17.x, r6.y, l(0.492187500), r16.w
        max r6.x, r6.x, l(-0.197500)
        mul r6.x, r6.x, l(5.34962368)
        min r6.y, |r6.x|, l(1.000000)
        max r6.z, |r6.x|, l(1.000000)
        div r6.z, l(1.000000, 1.000000, 1.000000, 1.000000), r6.z
        mul r6.y, r6.z, r6.y
        mul r6.z, r6.y, r6.y
        mad r8.y, r6.z, l(0.0208350997), l(-0.085133)
        mad r8.y, r6.z, r8.y, l(0.180141)
        mad r8.y, r6.z, r8.y, l(-0.330299497)
        mad r6.z, r6.z, r8.y, l(0.999866)
        mul r8.y, r6.z, r6.y
        lt r9.z, l(1.000000), |r6.x|
        mad r8.y, r8.y, l(-2.000000), l(1.57079637)
        and r8.y, r9.z, r8.y
        mad r6.y, r6.y, r6.z, r8.y
        min r6.x, r6.x, l(1.000000)
        lt r6.x, r6.x, -r6.x
        movc r6.x, r6.x, -r6.y, r6.y
        mad r6.x, r6.x, l(0.909090877), l(0.740000)
        mad r6.x, r6.x, l(0.484375), r8.z
        add r6.xy, r6.xxxx, l(0.015625, 1.015625, 0.000000, 0.000000)
        mul r17.zw, r6.xxxy, l(0.000000, 0.000000, 0.125000, 0.125000)
        sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r17.zxyz, t3.xyzw, s3, l(0.000000)
        sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r17.wxyw, t3.xyzw, s3, l(0.000000)
        mul r18.xyzw, r2.xxxx, r18.xyzw
        mad r16.xyzw, r16.xyzw, r10.wwww, r18.xyzw
        mad r16.xyzw, -r14.xyzx, r16.xyzw, r12.xyzw
        max r12.xyzw, r16.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        if_z r2.y
          add [precise(x)] r6.x, r3.z, r9.x
          lt [precise(y)] r6.y, |r6.x|, l(0.005000)
          if_nz r6.y
            add r6.x, r6.x, l(0.005000)
            mul r6.x, r6.x, l(100.000000)
            add [precise(z)] r3.z, -r3.z, l(-0.005000)
            mul [precise(y)] r6.y, r7.x, r7.x
            add [precise(y)] r6.y, r5.w, r6.y
            mul [precise(z)] r6.z, r7.x, r15.y
            mul [precise(y)] r8.y, r3.z, r6.z
            add [precise(y)] r8.y, r6.y, r8.y
            sqrt [precise(y)] r8.y, r8.y
            mul [precise(z)] r3.z, r3.z, r7.y
            add [precise(z)] r8.z, r7.x, r3.z
            div [precise(z)] r8.z, r8.z, r8.y
            max [precise(z)] r8.z, r6.w, r8.z
            mul [precise(x)] r9.x, r3.z, r3.z
            add [precise(x)] r9.x, -r5.w, r9.x
            add [precise(x)] r9.x, r9.x, l(40449600.000000)
            lt [precise(z)] r9.z, r3.z, l(0.000000)
            lt [precise(x)] r10.x, l(0.000000), r9.x
            and [precise(z)] r9.z, r9.z, r10.x
            movc [precise(xyz)] r15.xyzw, r9.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r9.x, r9.x, r15.y
            sqrt r9.x, r9.x
            mad r3.z, r3.z, r15.x, r9.x
            add r9.x, r7.w, r15.z
            div r3.z, r3.z, r9.x
            mad r15.x, r3.z, l(0.492187500), r15.w
            mov r15.yz, r13.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r15.yxzy, t3.xyzw, s3, l(0.000000)
            mov r13.y, r15.x
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r13.xyzx, t3.xyzw, s3, l(0.000000)
            mul r18.xyzw, r2.xxxx, r18.xyzw
            mad r16.xyzw, r16.xyzw, r10.wwww, r18.xyzw
            mul [precise(z)] r3.z, r8.y, r8.y
            mad r9.x, r8.y, r8.y, l(-40449600.000000)
            sqrt r9.x, r9.x
            mul [precise(y)] r8.y, r8.z, r8.y
            mul [precise(z)] r8.z, r8.y, r8.y
            add [precise(z)] r3.z, -r3.z, r8.z
            add [precise(z)] r3.z, r3.z, l(40449600.000000)
            lt [precise(z)] r8.z, r8.y, l(0.000000)
            lt [precise(z)] r9.z, l(0.000000), r3.z
            and [precise(z)] r8.z, r8.z, r9.z
            movc [precise(xyz)] r18.xyzw, r8.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r8.z, r8.w, r9.x
            mad r17.y, r8.z, l(0.00105685578), r9.w
            add r3.z, r3.z, r18.y
            sqrt r3.z, r3.z
            mad r3.z, r8.y, r18.x, r3.z
            add r8.y, r9.x, r18.z
            div r3.z, r3.z, r8.y
            mad r17.x, r3.z, l(0.492187500), r18.w
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r17.zxyz, t3.xyzw, s3, l(0.000000)
            sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.wxyw, t3.xyzw, s3, l(0.000000)
            mul r19.xyzw, r2.xxxx, r19.xyzw
            mad r18.xyzw, r18.xyzw, r10.wwww, r19.xyzw
            mad r16.xyzw, -r14.xyzx, r18.xyzw, r16.xyzw
            max r16.xyzw, r16.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mul [precise(z)] r3.z, r6.w, r6.z
            add [precise(z)] r3.z, r3.z, r6.y
            sqrt [precise(z)] r3.z, r3.z
            mul [precise(y)] r6.y, r6.w, r7.y
            add [precise(z)] r6.z, r7.x, r6.y
            div [precise(z)] r6.z, r6.z, r3.z
            max [precise(z)] r6.z, r6.z, r6.w
            mul [precise(w)] r6.w, r6.y, r6.y
            add [precise(w)] r6.w, -r5.w, r6.w
            add [precise(w)] r6.w, r6.w, l(40449600.000000)
            lt [precise(x)] r7.x, r6.y, l(0.000000)
            lt [precise(y)] r8.y, l(0.000000), r6.w
            and [precise(x)] r7.x, r7.x, r8.y
            movc [precise(xyz)] r18.xyzw, r7.xxxx, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r6.w, r6.w, r18.y
            sqrt r6.w, r6.w
            mad r6.y, r6.y, r18.x, r6.w
            add r6.w, r7.w, r18.z
            div r6.y, r6.y, r6.w
            mad r15.w, r6.y, l(0.492187500), r18.w
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r15.ywzy, t3.xyzw, s3, l(0.000000)
            mov r13.w, r15.w
            sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.xwzx, t3.xyzw, s3, l(0.000000)
            mul r15.xyzw, r2.xxxx, r15.xyzw
            mad r15.xyzw, r18.xyzw, r10.wwww, r15.xyzw
            mul [precise(y)] r6.y, r3.z, r3.z
            mad r6.w, r3.z, r3.z, l(-40449600.000000)
            sqrt r6.w, r6.w
            mul [precise(z)] r3.z, r3.z, r6.z
            mul [precise(z)] r6.z, r3.z, r3.z
            add [precise(y)] r6.y, -r6.y, r6.z
            add [precise(y)] r6.y, r6.y, l(40449600.000000)
            lt [precise(z)] r6.z, r3.z, l(0.000000)
            lt [precise(x)] r7.x, l(0.000000), r6.y
            and [precise(z)] r6.z, r6.z, r7.x
            movc [precise(xyz)] r18.xyzw, r6.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r6.z, r8.w, r6.w
            mad r17.y, r6.z, l(0.00105685578), r9.w
            add r6.y, r6.y, r18.y
            sqrt r6.y, r6.y
            mad r3.z, r3.z, r18.x, r6.y
            add r6.y, r6.w, r18.z
            div r3.z, r3.z, r6.y
            mad r17.x, r3.z, l(0.492187500), r18.w
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r17.zxyz, t3.xyzw, s3, l(0.000000)
            sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r17.wxyw, t3.xyzw, s3, l(0.000000)
            mul r17.xyzw, r2.xxxx, r17.xyzw
            mad r17.xyzw, r18.xyzw, r10.wwww, r17.xyzw
            mad r15.xyzw, -r14.xyzx, r17.xyzw, r15.xyzw
            max r15.xyzw, r15.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            add r15.xyzw, -r16.xyzw, r15.xyzw
            mad r12.xyzw, r6.xxxx, r15.xyzw, r16.xyzw
          endif
        else
          lt [precise(z)] r3.z, l(0.000000), r9.y
          if_nz r3.z
            add r6.xyzw, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 1.000000)
            mul [precise(z)] r3.z, r7.y, r8.x
            mul [precise(x)] r7.x, r3.z, r3.z
            add [precise(w)] r5.w, -r5.w, r7.x
            add [precise(w)] r5.w, r5.w, l(40449600.000000)
            lt [precise(x)] r7.x, r3.z, l(0.000000)
            lt [precise(y)] r7.y, l(0.000000), r5.w
            and [precise(x)] r7.x, r7.y, r7.x
            movc [precise(xyz)] r8.xyzw, r7.xxxx, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r5.w, r5.w, r8.y
            sqrt r5.w, r5.w
            mad r3.z, r3.z, r8.x, r5.w
            add r5.w, r7.w, r8.z
            div r3.z, r3.z, r5.w
            mad r8.y, r3.z, l(0.492187500), r8.w
            mov r8.xz, r13.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r8.xyzx, t3.xyzw, s3, l(0.000000)
            mov r8.xz, r13.xxzx
            sample_l_indexable(texture3d)(float,float,float,float) r8.xyzw, r8.xyzx, t3.xyzw, s3, l(0.000000)
            mul r8.xyzw, r2.xxxx, r8.xyzw
            mad r8.xyzw, r15.xyzw, r10.wwww, r8.xyzw
            max r8.xyzw, r8.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mad r6.xyzw, r6.xyzw, r8.xyzw, -r12.xyzw
            mad r12.xyzw, r9.yyyy, r6.xyzw, r12.xyzw
          endif
        endif
      else
        add r6.xyzw, -r14.xyzx, l(1.000000, 1.000000, 1.000000, 1.000000)
        mul r12.xyzw, r12.xyzw, r6.xyzw
      endif
    endif
  else
    mov r14.xyz, l(1.000000,1.000000,1.000000,0)
  endif
  mul_sat r2.x, r2.z, l(50.000000)
  mad r2.z, r2.x, l(-2.000000), l(3.000000)
  mul r2.x, r2.x, r2.x
  mul r2.x, r2.x, r2.z
  mul r2.x, r2.x, r12.w
  mul r6.xyz, r2.xxxx, r12.xyzx
  max r2.x, r12.x, l(0.000100)
  div r6.xyz, r6.xyzx, r2.xxxx
  mov r11.yzw, l(0,1.000000,0.429629624,0.175226584)
  mul r6.xyz, r11.yxxy, r6.xyzx
  mul r6.xyz, r11.xzwx, r6.xyzx
  mad r6.xyz, r12.xyzx, r7.zzzz, r6.xyzx
  max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
else
  mov r14.xyz, l(1.000000,1.000000,1.000000,0)
  mov r6.xyz, l(0,0,0,0)
endif
and [precise(xz)] r2.xz, cb2[170].zzzz, l(2, 0, 1, 0)
if_z r2.x
  lt [precise(x)] r2.x, l(0.000000), r4.x
  if_nz r2.x
    mul [precise(xyz)] r7.xyz, r5.xyzx, r4.xxxx
    add [precise(xyz)] r3.xyz, r3.xywx, r7.xyzx
    dp3 [precise(x)] r2.x, r3.xyzx, r3.xyzx
    sqrt [precise(x)] r2.x, r2.x
    div [precise(xyz)] r3.xyz, r3.xyzx, r2.xxxx
    dp3 [precise(w)] r3.w, r3.xyzx, cb2[167].xyzx
    add [precise(x)] r2.x, r2.x, l(-6360.000000)
    mul [precise(z)] r7.z, r2.x, l(0.0142857144)
    sqrt [precise(y)] r8.y, r7.z
    add [precise(z)] r8.zw, r3.wwww, l(0.000000, 0.000000, 0.150000, 0.200000)
    mul [precise(x)] r7.xy, r8.zwzz, l(0.869565248, 0.833333313, 0.000000, 0.000000)
    mul [precise(x)] r2.x, r7.x, l(14.101420)
    min [precise(w)] r5.w, |r2.x|, l(1.000000)
    max [precise(w)] r6.w, |r2.x|, l(1.000000)
    div [precise(w)] r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w
    mul [precise(w)] r5.w, r5.w, r6.w
    mul [precise(w)] r6.w, r5.w, r5.w
    mul [precise(x)] r7.x, r6.w, l(0.0208350997)
    add [precise(x)] r7.x, r7.x, l(-0.085133)
    mul [precise(x)] r7.x, r6.w, r7.x
    add [precise(x)] r7.x, r7.x, l(0.180141)
    mul [precise(x)] r7.x, r6.w, r7.x
    add [precise(x)] r7.x, r7.x, l(-0.330299497)
    mul [precise(w)] r6.w, r6.w, r7.x
    add [precise(w)] r6.w, r6.w, l(0.999866)
    mul [precise(w)] r5.w, r5.w, r6.w
    lt [precise(w)] r6.w, l(1.000000), |r2.x|
    mul [precise(x)] r7.x, r5.w, l(-2.000000)
    add [precise(x)] r7.x, r7.x, l(1.57079637)
    and [precise(w)] r6.w, r6.w, r7.x
    add [precise(w)] r5.w, r5.w, r6.w
    min [precise(x)] r2.x, r2.x, l(1.000000)
    lt [precise(x)] r2.x, r2.x, -r2.x
    movc [precise(x)] r2.x, r2.x, -r5.w, r5.w
    mul [precise(x)] r8.x, r2.x, l(0.666666687)
    sample_l_indexable [precise(xyz)](texture2d)(float,float,float,float) r8.xyz, r8.xyxx, t1.xyzw, s1, l(0.000000)
    movc [precise(xyz)] r8.xyz, r2.yyyy, l(0,0,0,0), r8.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r7.xyz, r7.yzyy, t2.xyzw, s2, l(0.000000)
    max r2.x, r3.w, l(0.000000)
    mad r7.xyz, r2.xxxx, r8.xyzx, r7.xyzx
    mul r7.xyz, r7.xyzx, l(0.00318309898, 0.00318309898, 0.00318309898, 0.000000)
    mad r9.xyz, -r1.xyzx, r2.wwww, cb2[167].xyzx
    dp3 r2.x, r9.xyzx, r9.xyzx
    rsq r2.x, r2.x
    mul r9.xyz, r2.xxxx, r9.xyzx
    dp3 r2.x, -r5.xyzx, r9.xyzx
    add r2.x, -r2.x, l(1.000000)
    mul r3.w, r2.x, r2.x
    mul r3.w, r3.w, r3.w
    mul r2.x, r2.x, r3.w
    mad r2.x, r2.x, l(0.980000), l(0.020000)
    dp3 r3.x, r9.xyzx, r3.xyzx
    max r3.x, r3.x, l(0.000000)
    log r3.x, r3.x
    mul r3.x, r3.x, l(150.000000)
    exp r3.x, r3.x
    mul r2.x, r2.x, r3.x
    max r2.x, r2.x, l(0.000000)
    mad r3.xyz, r2.xxxx, r8.xyzx, r7.xyzx
    movc r3.xyz, r2.yyyy, r7.xyzx, r3.xyzx
    mul r3.xyz, r3.xyzx, r14.xyzx
  else
    mov r3.xyz, l(0,0,0,0)
  endif
else
  mov r3.xyz, l(0,0,0,0)
endif
if_z r2.z
  ge [precise(x)] r2.x, l(6430.000000), r4.z
  add [precise(yz)] r2.yz, r4.zzwz, l(0.000000, -6360.000000, 0.150000, 0.000000)
  mul [precise(yz)] r2.yz, r2.yyzy, l(0.000000, 0.0142857144, 0.869565248, 0.000000)
  sqrt [precise(y)] r7.y, r2.y
  mul [precise(y)] r2.y, r2.z, l(14.101420)
  min [precise(z)] r2.z, |r2.y|, l(1.000000)
  max [precise(w)] r3.w, |r2.y|, l(1.000000)
  div [precise(w)] r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
  mul [precise(z)] r2.z, r2.z, r3.w
  mul [precise(w)] r3.w, r2.z, r2.z
  mul [precise(z)] r4.z, r3.w, l(0.0208350997)
  add [precise(z)] r4.z, r4.z, l(-0.085133)
  mul [precise(z)] r4.z, r3.w, r4.z
  add [precise(z)] r4.z, r4.z, l(0.180141)
  mul [precise(z)] r4.z, r3.w, r4.z
  add [precise(z)] r4.z, r4.z, l(-0.330299497)
  mul [precise(w)] r3.w, r3.w, r4.z
  add [precise(w)] r3.w, r3.w, l(0.999866)
  mul [precise(z)] r2.z, r2.z, r3.w
  lt [precise(w)] r3.w, l(1.000000), |r2.y|
  mul [precise(z)] r4.z, r2.z, l(-2.000000)
  add [precise(z)] r4.z, r4.z, l(1.57079637)
  and [precise(w)] r3.w, r3.w, r4.z
  add [precise(z)] r2.z, r2.z, r3.w
  min [precise(y)] r2.y, r2.y, l(1.000000)
  lt [precise(y)] r2.y, r2.y, -r2.y
  movc [precise(y)] r2.y, r2.y, -r2.z, r2.z
  mul [precise(x)] r7.x, r2.y, l(0.666666687)
  sample_l_indexable [precise(xyz)](texture2d)(float,float,float,float) r7.xyz, r7.xyxx, t1.xyzw, s1, l(0.000000)
  movc [precise(xyz)] r2.xyz, r2.xxxx, r7.xyzx, l(1.000000,1.000000,1.000000,0)
  lt [precise(w)] r3.w, l(0.000000), r4.x
  mul [precise(x)] r4.x, cb2[170].y, l(3.14159274)
  mul [precise(x)] r4.x, r4.x, l(0.00555555569)
  sincos [precise(x)] null, r4.x, r4.x
  dp3 [precise(z)] r4.z, r5.xyzx, cb2[167].xyzx
  ge [precise(x)] r4.x, r4.z, r4.x
  and [precise(x)] r4.x, r4.x, l(0x3f800000)
  mul [precise(xyz)] r2.xyz, r2.xyzx, r4.xxxx
  movc [precise(xyz)] r2.xyz, r3.wwww, l(0,0,0,0), r2.xyzx
else
  mov r2.xyz, l(0,0,0,0)
endif
add r2.xyz, r3.xyzx, r2.xyzx
add r2.xyz, r6.xyzx, r2.xyzx
mul r3.x, r4.y, cb2[167].w
mul r3.xyz, r3.xxxx, cb2[171].xyzx
mul r2.xyz, r2.xyzx, r3.xyzx
dp3 [precise(x)] r3.x, r1.xyzx, cb2[60].xyzx
div [precise(w)] r1.w, r1.w, r3.x
mul [precise(w)] r1.w, r1.w, cb2[199].z
max [precise(w)] r1.w, r1.w, l(0.000000)
mul [precise(w)] r0.w, r0.w, r2.w
max [precise(w)] r1.w, r1.w, cb1[87].w
lt [precise(x)] r3.x, l(0.000000), r1.w
ieq [precise(y)] r3.y, cb1[94].z, l(1)
add [precise(z)] r3.z, cb1[94].w, cb2[68].z
movc [precise(y)] r3.y, r3.y, r3.z, cb1[89].y
mul [precise(w)] r1.w, r2.w, r1.w
mul [precise(w)] r2.w, r1.z, r1.w
add [precise(z)] r3.z, r2.w, cb2[68].z
add [precise(w)] r2.w, r1.z, -r2.w
add [precise(w)] r1.w, -r1.w, l(1.000000)
mul [precise(w)] r1.w, r0.w, r1.w
add [precise(y)] r3.y, -r3.y, r3.z
mul [precise(y)] r3.y, r3.y, cb1[87].y
max [precise(y)] r3.y, r3.y, l(-127.000000)
exp [precise(y)] r3.y, -r3.y
mul [precise(y)] r3.y, r3.y, cb1[89].x
movc [precise(y)] r3.y, r3.x, r3.y, cb1[87].x
movc [precise(w)] r1.w, r3.x, r1.w, r0.w
movc [precise(w)] r2.w, r3.x, r2.w, r1.z
mul [precise(w)] r2.w, r2.w, cb1[87].y
max [precise(w)] r2.w, r2.w, l(-127.000000)
exp [precise(x)] r3.x, -r2.w
add [precise(x)] r3.x, -r3.x, l(1.000000)
div [precise(x)] r3.x, r3.x, r2.w
mul [precise(z)] r3.z, r2.w, l(0.240226507)
add [precise(z)] r3.z, -r3.z, l(0.693147182)
lt [precise(w)] r2.w, l(0.010000), |r2.w|
movc [precise(w)] r2.w, r2.w, r3.x, r3.z
mul [precise(w)] r2.w, r2.w, r3.y
mul [precise(x)] r3.x, r1.w, r2.w
lt [precise(z)] r3.yz, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[89].zzwz
if_nz r3.y
  mad_sat r3.y, r0.w, cb1[91].x, cb1[91].y
  mul r4.xy, cb1[90].yxyy, l(1.000000, -1.000000, 0.000000, 0.000000)
  dp2 r4.x, r1.xyxx, r4.xyxx
  dp2 r4.y, r1.xyxx, cb1[90].xyxx
  mov r4.z, r1.z
  sample_l_indexable(texturecube)(float,float,float,float) r1.xyz, r4.xyzx, t0.xyzw, s0, l(0.000000)
  sample_l_indexable(texturecube)(float,float,float,float) r4.xyz, r4.xyzx, t0.xyzw, s0, cb1[91].z
  add r1.xyz, r1.xyzx, -r4.xyzx
  mad r1.xyz, r3.yyyy, r1.xyzx, r4.xyzx
  mul r1.xyz, r1.xyzx, cb1[88].xyzx
else
  mov r1.xyz, cb1[88].xyzx
endif
lt [precise(y)] r3.y, l(0.000000), cb1[92].w
eq [precise(w)] r3.w, cb1[89].z, l(0.000000)
and [precise(y)] r3.y, r3.w, r3.y
dp3_sat [precise(w)] r3.w, r5.xyzx, cb1[92].xyzx
log [precise(w)] r3.w, r3.w
mul [precise(w)] r3.w, r3.w, cb1[93].w
exp [precise(w)] r3.w, r3.w
mul [precise(xyz)] r4.xyz, r3.wwww, cb1[93].xyzx
add [precise(w)] r1.w, r1.w, -cb1[94].x
max [precise(w)] r1.w, r1.w, l(0.000000)
mul [precise(w)] r1.w, r1.w, r2.w
exp [precise(w)] r1.w, -r1.w
min [precise(w)] r1.w, r1.w, l(1.000000)
add [precise(w)] r1.w, -r1.w, l(1.000000)
mul [precise(xyz)] r4.xyz, r1.wwww, r4.xyzx
and [precise(xyz)] r4.xyz, r3.yyyy, r4.xyzx
exp [precise(w)] r1.w, -r3.x
min [precise(w)] r1.w, r1.w, l(1.000000)
max [precise(w)] r4.w, r1.w, cb1[88].w
lt [precise(w)] r0.w, cb1[89].w, r0.w
and [precise(w)] r0.w, r0.w, r3.z
movc [precise] r3.xyzw, r0.wwww, l(0,0,0,1.000000), r4.xyzw
add r0.w, -r3.w, l(1.000000)
mad r1.xyz, r1.xyzx, r0.wwww, r3.xyzx
mad o2.xyz, r2.xyzx, r3.wwww, r1.xyzx
mov o0.w, l(0)
mov [precise(w)] o2.w, r3.w
mov [precise(xyz)] o3.xyz, r0.xyzx
ret
// Approximately 0 instruction slots used

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