// ---- Created with 3Dmigoto v1.3.16 on Mon May 08 22:27:24 2023
Buffer<float4> t5 : register(t5);

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 cb6 : register(b6)
{
  float4 cb6[61];
}

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

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

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 : TEXCOORD0,
  out float4 o3 : GBX_VERTEX_FOG0,
  out float3 o4 : TEXCOORD9,
  out float4 o5 : 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;
  uint4 bitmask, uiDest;
  float4 fDest;

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

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Mon May 08 22:27:24 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
// TEXCOORD                 0   xyzw        2     NONE   float   xyzw
// GBX_VERTEX_FOG           0   xyzw        3     NONE   float   xyzw
// TEXCOORD                 9   xyz         4     NONE   float   xyz
// SV_POSITION              0   xyzw        5      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[1], immediateIndexed
dcl_constantbuffer cb5[53], immediateIndexed
dcl_constantbuffer cb6[61], 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_resource_buffer (float,float,float,float) t5
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.xyzw
dcl_output o4.xyz
dcl_output_siv o5.xyzw, position
dcl_temps 20
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, t5.wxyz
bfi r1.x, l(31), l(1), r0.x, l(1)
ld_indexable(buffer)(float,float,float,float) r1.xyzw, r1.xxxx, t5.xyzw
mul r2.xyz, r0.yzwy, r1.yzxy
mad r0.yzw, r1.xxyz, r0.zzwy, -r2.xxyz
mul r0.yzw, r1.wwww, r0.yyzw
mul r2.xyz, r1.yzxy, r0.yzwy
mad r0.yzw, r0.wwyz, r1.zzxy, -r2.xxyz
mul r0.yzw, r1.wwww, r0.yyzw
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.zzzz, r3.xyzx
mad r5.xyz, r0.yyyy, r2.xyzx, r5.xyzx
mad o0.xyz, r0.wwww, r4.xyzx, r5.xyzx
mul r0.yzw, r1.yyyy, r3.xxyz
mad r0.yzw, r1.xxxx, r2.xxyz, r0.yyzw
mad o1.xyz, r1.zzzz, r4.xyzx, r0.yzwy
mul o1.w, r1.w, cb3[9].w
mul [precise(yzw)] r0.yzw, v0.xxxx, cb3[0].xxyz
mul [precise(xyz)] r1.xyz, v0.yyyy, cb3[1].xyzx
add [precise(yzw)] r0.yzw, r0.yyzw, r1.xxyz
mul [precise(xyz)] r1.xyz, v0.zzzz, cb3[2].xyzx
add [precise(yzw)] r0.yzw, r0.yyzw, r1.xxyz
add [precise(xyz)] r1.xyz, cb2[71].xyzx, cb3[3].xyzx
add [precise(yzw)] r0.yzw, r0.yyzw, r1.xxyz
imul null, r0.x, r0.x, cb4[0].y
ld_indexable(buffer)(float,float,float,float) r1.xy, r0.xxxx, t4.xyzw
itof [precise(zw)] r1.zw, cb2[149].zzzw
div [precise(x)] r0.x, r1.w, l(2147483648.000000)
add [precise(x)] r0.x, r0.x, r1.z
mul [precise(z)] r1.z, r0.x, cb6[17].w
dp3 [precise(w)] r1.w, l(0.000000, 0.000000, 1.000000, 0.000000), cb5[52].xyzx
mul [precise(xyz)] r2.xyz, r1.wwww, l(0.000000, 0.000000, 1.000000, 0.000000)
add [precise(xyz)] r3.xyz, -r2.yyzy, cb5[52].xyzx
mul [precise(xyz)] r4.xyz, r3.zxyz, l(0.000000, 1.000000, 0.000000, 0.000000)
mul [precise(xyz)] r5.xyz, r3.yzxy, l(1.000000, 0.000000, 0.000000, 0.000000)
add [precise(xyz)] r4.xyz, r4.xyzx, -r5.xyzx
sincos [precise(x)] r5.x, r6.x, cb6[13].x
mul [precise(yzw)] r5.yzw, r3.xxyz, r6.xxxx
mul [precise(xyz)] r6.xyz, r4.xyzx, r5.xxxx
add [precise(xyz)] r5.xyz, r5.yzwy, r6.xyzx
add [precise(xyz)] r5.xyz, r2.yyzy, r5.xyzx
add [precise(xyz)] r5.xyz, r5.xyzx, -cb5[52].xyzx
add [precise(xyz)] r5.xyz, r5.xyzx, cb5[52].xyzx
dp3 [precise(w)] r1.w, r5.xyzx, r5.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xyz)] r5.xyz, r5.xyzx, r1.wwww
add [precise(xy)] r6.xy, r0.yzyy, -cb2[71].xyxx
mov [precise(z)] r6.z, l(0)
mul [precise(xyz)] r7.xyz, r6.xyzx, cb6[13].yyyy
div [precise(xyz)] r8.xyz, r7.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r9.xyz, r7.xyzx, r8.xxxx
add [precise(xyw)] r8.xyw, r8.yyyy, r9.xyxz
add [precise(xyz)] r8.xyz, r8.zzzz, r8.xywx
round_ni [precise(xyz)] r8.xyz, r8.xyzx
div [precise(xyz)] r9.xyz, r8.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r8.xyz, r8.xyzx, -r9.xxxx
add [precise(xyz)] r8.xyz, -r9.yyyy, r8.xyzx
add [precise(xyz)] r8.xyz, -r9.zzzz, r8.xyzx
add [precise(xyz)] r9.xyz, r7.xyzx, -r8.xyzx
ge [precise(xyz)] r10.xyz, r9.zxyz, r9.xyzx
and [precise(xyz)] r11.xyz, r10.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r10.xyz, r10.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r12.xyz, r10.xyzx, r11.xyzx
add [precise(xyz)] r12.xyz, r12.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r10.xyz, r10.xyzx, r11.xyzx
add [precise(xyz)] r10.xyz, r10.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r11.xyz, r8.xyzx, r12.xyzx
add [precise(xyz)] r10.xyz, r8.xyzx, r10.xyzx
add [precise(xyz)] r12.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
mul [precise(xyz)] r8.xyz, r8.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r8.xyz, r8.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
round_ni [precise(xyz)] r8.xyz, r8.xyzx
ftoi [precise(xyz)] r8.xyz, r8.xyzx
imad [precise(xyz)] r8.xyz, r8.xyzx, l(0x0019660d, 0x0019660d, 0x0019660d, 0), l(0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f, 0)
imad [precise(w)] r1.w, r8.y, r8.z, r8.x
imad [precise(w)] r2.w, r8.z, r1.w, r8.y
imad [precise(w)] r3.w, r1.w, r2.w, r8.z
imad [precise(x)] r8.x, r2.w, r3.w, r1.w
imad [precise(y)] r8.y, r3.w, r8.x, r2.w
imad [precise(z)] r8.z, r8.x, r8.y, r3.w
ushr [precise(xyz)] r8.xyz, r8.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r13.xyz, r8.xxxx, 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)
and [precise(xyw)] r8.xyw, r8.yyyy, l(0x00008000, 0x00004000, 0, 8192)
utof [precise(xyw)] r8.xyw, r8.xyxw
mul [precise(xyw)] r8.xyw, r8.xyxw, l(0.0000610351563, 0.000122070313, 0.000000, 0.000244140625)
add [precise(xyw)] r8.xyw, r8.xyxw, l(-1.000000, -1.000000, 0.000000, -1.000000)
and [precise(xyz)] r14.xyz, r8.zzzz, 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)
dp3 [precise(x)] r13.x, r13.xyzx, r9.xyzx
dp3 [precise(x)] r8.x, r8.xywx, r9.xyzx
dp3 [precise(x)] r14.x, r14.xyzx, r9.xyzx
add [precise(xyz)] r15.xyz, r7.xyzx, -r11.xyzx
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(y)] r13.y, r16.xyzx, r15.xyzx
dp3 [precise(y)] r8.y, r11.xywx, r15.xyzx
dp3 [precise(y)] r14.y, r17.xyzx, r15.xyzx
add [precise(xyz)] r11.xyz, r7.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)] 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)] r16.xyz, r10.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)] 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)] r17.xyz, r10.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(z)] r13.z, r16.xyzx, r11.xyzx
dp3 [precise(z)] r8.z, r10.xywx, r11.xyzx
dp3 [precise(z)] r14.z, r17.xyzx, r11.xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, -r12.xyzx
mul [precise(xyz)] r10.xyz, r12.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)] r12.xyz, r10.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)] 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(w)] r13.w, r12.xyzx, r7.xyzx
dp3 [precise(w)] r8.w, r10.xywx, r7.xyzx
dp3 [precise(w)] r14.w, r16.xyzx, r7.xyzx
dp3 [precise(x)] r9.x, r9.xyzx, r9.xyzx
dp3 [precise(y)] r9.y, r15.xyzx, r15.xyzx
dp3 [precise(z)] r9.z, r11.xyzx, r11.xyzx
dp3 [precise(w)] r9.w, r7.xyzx, r7.xyzx
mul_sat [precise] r7.xyzw, r9.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r9.xyzw, r7.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r9.xyzw, -r9.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r9.xyzw, r7.xyzw, r9.xyzw
add [precise] r9.xyzw, r9.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r7.xyzw, r7.xyzw, r9.xyzw
add [precise] r7.xyzw, r7.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r9.x, r7.xyzw, r13.xyzw
dp4 [precise(y)] r9.y, r7.xyzw, r8.xyzw
dp4 [precise(z)] r9.z, r7.xyzw, r14.xyzw
mul [precise(xyz)] r7.xyz, r9.xyzx, cb6[13].zzzz
add [precise(xyz)] r5.xyz, r5.xyzx, r7.xyzx
dp3 [precise(w)] r1.w, r5.xyzx, r5.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r5.xy, r5.xyxx, r1.wwww
mul [precise(zw)] r5.zw, r5.xxxy, cb6[16].zzzz
dp2 [precise(w)] r1.w, r5.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r8.x, r9.x, r1.z
mul [precise(zw)] r1.zw, r5.xxxy, cb6[52].wwww
mul [precise(xy)] r5.xy, r1.zwzz, r9.xxxx
mul [precise(z)] r5.z, r8.x, cb6[16].y
mul [precise(z)] r1.z, r0.x, cb6[19].z
sincos [precise(x)] r8.x, r9.x, cb6[18].w
mul [precise(yzw)] r8.yzw, r3.xxyz, r9.xxxx
mul [precise(xyz)] r9.xyz, r4.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r9.xyzx
add [precise(xyz)] r8.xyz, r2.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb5[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb5[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, r7.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(zw)] r8.zw, r8.xxxy, cb6[19].yyyy
dp2 [precise(w)] r1.w, r8.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r9.x, r10.x, r1.z
mul [precise(zw)] r1.zw, r8.xxxy, cb6[53].xxxx
mul [precise(xy)] r8.xy, r1.zwzz, r10.xxxx
mul [precise(z)] r8.z, r9.x, cb6[19].x
add [precise(xyz)] r5.xyz, r5.xyzx, r8.xyzx
mul [precise(z)] r1.z, r0.x, cb6[21].z
sincos [precise(x)] r8.x, r9.x, cb6[20].x
mul [precise(yzw)] r8.yzw, r3.xxyz, r9.xxxx
mul [precise(xyz)] r9.xyz, r4.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r9.xyzx
add [precise(xyz)] r8.xyz, r2.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb5[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb5[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)] r7.xyz, r7.xyzx, r8.xyzx
dp3 [precise(w)] r1.w, r7.xyzx, r7.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r7.xy, r7.xyxx, r1.wwww
mul [precise(zw)] r7.zw, r7.xxxy, cb6[21].xxxx
dp2 [precise(w)] r1.w, r7.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r8.x, r9.x, r1.z
mul [precise(zw)] r1.zw, r7.xxxy, cb6[53].yyyy
mul [precise(xy)] r7.xy, r1.zwzz, r9.xxxx
mul [precise(z)] r7.z, r8.x, cb6[20].w
add [precise(xyz)] r5.xyz, r5.xyzx, r7.xyzx
mul [precise(z)] r1.z, r0.x, cb6[27].z
sincos [precise(x)] r7.x, r8.x, cb6[23].x
mul [precise(yzw)] r7.yzw, r3.xxyz, r8.xxxx
mul [precise(xyz)] r8.xyz, r4.xyzx, r7.xxxx
add [precise(xyz)] r7.xyz, r7.yzwy, r8.xyzx
add [precise(xyz)] r7.xyz, r2.yyzy, r7.xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, -cb5[52].xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, cb5[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
mul [precise(xyz)] r8.xyz, r6.xyzx, cb6[23].yyyy
div [precise(xyz)] r9.xyz, r8.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r10.xyz, r8.xyzx, r9.xxxx
add [precise(xyw)] r9.xyw, r9.yyyy, r10.xyxz
add [precise(xyz)] r9.xyz, r9.zzzz, r9.xywx
round_ni [precise(xyz)] r9.xyz, r9.xyzx
div [precise(xyz)] r10.xyz, r9.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r9.xyz, r9.xyzx, -r10.xxxx
add [precise(xyz)] r9.xyz, -r10.yyyy, r9.xyzx
add [precise(xyz)] r9.xyz, -r10.zzzz, r9.xyzx
add [precise(xyz)] r10.xyz, r8.xyzx, -r9.xyzx
ge [precise(xyz)] r11.xyz, r10.zxyz, r10.xyzx
and [precise(xyz)] r12.xyz, r11.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r11.xyz, r11.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r13.xyz, r11.xyzx, r12.xyzx
add [precise(xyz)] r13.xyz, r13.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r11.xyz, r11.xyzx, r12.xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r12.xyz, r9.xyzx, r13.xyzx
add [precise(xyz)] r11.xyz, r9.xyzx, r11.xyzx
add [precise(xyz)] r13.xyz, r9.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
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)] r1.w, r9.y, r9.z, r9.x
imad [precise(w)] r2.w, r9.z, r1.w, r9.y
imad [precise(w)] r3.w, r1.w, r2.w, r9.z
imad [precise(x)] r9.x, r2.w, r3.w, r1.w
imad [precise(y)] r9.y, r3.w, r9.x, r2.w
imad [precise(z)] r9.z, r9.x, r9.y, r3.w
ushr [precise(xyz)] r9.xyz, r9.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r14.xyz, r9.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)] 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(x)] r14.x, r14.xyzx, r10.xyzx
dp3 [precise(x)] r9.x, r9.xywx, r10.xyzx
dp3 [precise(x)] r15.x, r15.xyzx, r10.xyzx
add [precise(xyz)] r16.xyz, r8.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)] r17.xyz, r12.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)] 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(y)] r14.y, r17.xyzx, r16.xyzx
dp3 [precise(y)] r9.y, r12.xywx, r16.xyzx
dp3 [precise(y)] r15.y, r18.xyzx, r16.xyzx
add [precise(xyz)] r12.xyz, r8.xyzx, -r11.xyzx
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)] r17.xyz, r11.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)] 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)] r18.xyz, r11.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(z)] r14.z, r17.xyzx, r12.xyzx
dp3 [precise(z)] r9.z, r11.xywx, r12.xyzx
dp3 [precise(z)] r15.z, r18.xyzx, r12.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -r13.xyzx
mul [precise(xyz)] r11.xyz, r13.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)] r13.xyz, r11.xxxx, 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)
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(w)] r14.w, r13.xyzx, r8.xyzx
dp3 [precise(w)] r9.w, r11.xywx, r8.xyzx
dp3 [precise(w)] r15.w, r17.xyzx, r8.xyzx
dp3 [precise(x)] r10.x, r10.xyzx, r10.xyzx
dp3 [precise(y)] r10.y, r16.xyzx, r16.xyzx
dp3 [precise(z)] r10.z, r12.xyzx, r12.xyzx
dp3 [precise(w)] r10.w, r8.xyzx, r8.xyzx
mul_sat [precise] r8.xyzw, r10.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r10.xyzw, r8.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r10.xyzw, -r10.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r10.xyzw, r8.xyzw, r10.xyzw
add [precise] r10.xyzw, r10.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r8.xyzw, r8.xyzw, r10.xyzw
add [precise] r8.xyzw, r8.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r10.x, r8.xyzw, r14.xyzw
dp4 [precise(y)] r10.y, r8.xyzw, r9.xyzw
dp4 [precise(z)] r10.z, r8.xyzw, r15.xyzw
mul [precise(xyz)] r8.xyz, r10.xyzx, cb6[23].zzzz
add [precise(xyz)] r7.xyz, r7.xyzx, r8.xyzx
dp3 [precise(w)] r1.w, r7.xyzx, r7.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r7.xy, r7.xyxx, r1.wwww
mul [precise(zw)] r7.zw, r7.xxxy, cb6[26].yyyy
dp2 [precise(w)] r1.w, r7.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r9.x, r10.x, r1.z
mul [precise(zw)] r1.zw, r7.xxxy, cb6[53].zzzz
mul [precise(xy)] r7.xy, r1.zwzz, r10.xxxx
mul [precise(z)] r7.z, r9.x, cb6[26].x
mul [precise(z)] r1.z, r0.x, cb6[29].y
sincos [precise(x)] r9.x, r10.x, cb6[28].z
mul [precise(yzw)] r9.yzw, r3.xxyz, r10.xxxx
mul [precise(xyz)] r10.xyz, r4.xyzx, r9.xxxx
add [precise(xyz)] r9.xyz, r9.yzwy, r10.xyzx
add [precise(xyz)] r9.xyz, r2.yyzy, r9.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, -cb5[52].xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, cb5[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
add [precise(xyz)] r9.xyz, r8.xyzx, r9.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(zw)] r9.zw, r9.xxxy, cb6[29].xxxx
dp2 [precise(w)] r1.w, r9.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r10.x, r11.x, r1.z
mul [precise(zw)] r1.zw, r9.xxxy, cb6[53].wwww
mul [precise(xy)] r9.xy, r1.zwzz, r11.xxxx
mul [precise(z)] r9.z, r10.x, cb6[28].w
add [precise(xyz)] r7.xyz, r7.xyzx, r9.xyzx
mul [precise(z)] r1.z, r0.x, cb6[31].y
sincos [precise(x)] r9.x, r10.x, cb6[29].w
mul [precise(yzw)] r9.yzw, r3.xxyz, r10.xxxx
mul [precise(xyz)] r10.xyz, r4.xyzx, r9.xxxx
add [precise(xyz)] r9.xyz, r9.yzwy, r10.xyzx
add [precise(xyz)] r9.xyz, r2.yyzy, r9.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, -cb5[52].xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, cb5[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
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(xy)] r8.xy, r8.xyxx, r1.wwww
mul [precise(zw)] r8.zw, r8.xxxy, cb6[30].wwww
dp2 [precise(w)] r1.w, r8.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r9.x, r10.x, r1.z
mul [precise(zw)] r1.zw, r8.xxxy, cb6[54].xxxx
mul [precise(xy)] r8.xy, r1.zwzz, r10.xxxx
mul [precise(z)] r8.z, r9.x, cb6[30].z
add [precise(xyz)] r7.xyz, r7.xyzx, r8.xyzx
add [precise(xyz)] r5.xyz, r5.xyzx, r7.xyzx
mul [precise(z)] r1.z, r0.x, cb6[37].y
sincos [precise(x)] r7.x, r8.x, cb6[32].w
mul [precise(yzw)] r7.yzw, r3.xxyz, r8.xxxx
mul [precise(xyz)] r8.xyz, r4.xyzx, r7.xxxx
add [precise(xyz)] r7.xyz, r7.yzwy, r8.xyzx
add [precise(xyz)] r7.xyz, r2.yyzy, r7.xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, -cb5[52].xyzx
add [precise(xyz)] r7.xyz, r7.xyzx, cb5[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
mul [precise(xyz)] r8.xyz, r6.xyzx, cb6[33].xxxx
div [precise(xyz)] r9.xyz, r8.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
add [precise(xyz)] r10.xyz, r8.xyzx, r9.xxxx
add [precise(xyw)] r9.xyw, r9.yyyy, r10.xyxz
add [precise(xyz)] r9.xyz, r9.zzzz, r9.xywx
round_ni [precise(xyz)] r9.xyz, r9.xyzx
div [precise(xyz)] r10.xyz, r9.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
add [precise(xyz)] r9.xyz, r9.xyzx, -r10.xxxx
add [precise(xyz)] r9.xyz, -r10.yyyy, r9.xyzx
add [precise(xyz)] r9.xyz, -r10.zzzz, r9.xyzx
add [precise(xyz)] r10.xyz, r8.xyzx, -r9.xyzx
ge [precise(xyz)] r11.xyz, r10.zxyz, r10.xyzx
and [precise(xyz)] r12.xyz, r11.yzxy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
movc [precise(xyz)] r11.xyz, r11.xyzx, l(0,0,0,0), l(1.000000,1.000000,1.000000,0)
min [precise(xyz)] r13.xyz, r11.xyzx, r12.xyzx
add [precise(xyz)] r13.xyz, r13.xyzx, l(-0.166666672, -0.166666672, -0.166666672, 0.000000)
max [precise(xyz)] r11.xyz, r11.xyzx, r12.xyzx
add [precise(xyz)] r11.xyz, r11.xyzx, l(-0.333333343, -0.333333343, -0.333333343, 0.000000)
add [precise(xyz)] r12.xyz, r9.xyzx, r13.xyzx
add [precise(xyz)] r11.xyz, r9.xyzx, r11.xyzx
add [precise(xyz)] r13.xyz, r9.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
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)] r1.w, r9.y, r9.z, r9.x
imad [precise(w)] r2.w, r9.z, r1.w, r9.y
imad [precise(w)] r3.w, r1.w, r2.w, r9.z
imad [precise(x)] r9.x, r2.w, r3.w, r1.w
imad [precise(y)] r9.y, r3.w, r9.x, r2.w
imad [precise(z)] r9.z, r9.x, r9.y, r3.w
ushr [precise(xyz)] r9.xyz, r9.xyzx, l(16, 16, 16, 0)
and [precise(xyz)] r14.xyz, r9.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)] 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(x)] r14.x, r14.xyzx, r10.xyzx
dp3 [precise(x)] r9.x, r9.xywx, r10.xyzx
dp3 [precise(x)] r15.x, r15.xyzx, r10.xyzx
add [precise(xyz)] r16.xyz, r8.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)] r17.xyz, r12.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)] 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(y)] r14.y, r17.xyzx, r16.xyzx
dp3 [precise(y)] r9.y, r12.xywx, r16.xyzx
dp3 [precise(y)] r15.y, r18.xyzx, r16.xyzx
add [precise(xyz)] r12.xyz, r8.xyzx, -r11.xyzx
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)] r17.xyz, r11.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)] 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)] r18.xyz, r11.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(z)] r14.z, r17.xyzx, r12.xyzx
dp3 [precise(z)] r9.z, r11.xywx, r12.xyzx
dp3 [precise(z)] r15.z, r18.xyzx, r12.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -r13.xyzx
mul [precise(xyz)] r11.xyz, r13.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)] r13.xyz, r11.xxxx, 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)
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(w)] r14.w, r13.xyzx, r8.xyzx
dp3 [precise(w)] r9.w, r11.xywx, r8.xyzx
dp3 [precise(w)] r15.w, r17.xyzx, r8.xyzx
dp3 [precise(x)] r10.x, r10.xyzx, r10.xyzx
dp3 [precise(y)] r10.y, r16.xyzx, r16.xyzx
dp3 [precise(z)] r10.z, r12.xyzx, r12.xyzx
dp3 [precise(w)] r10.w, r8.xyzx, r8.xyzx
mul_sat [precise] r8.xyzw, r10.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
mul [precise] r10.xyzw, r8.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
add [precise] r10.xyzw, -r10.xyzw, l(8.192000, 8.192000, 8.192000, 8.192000)
mul [precise] r10.xyzw, r8.xyzw, r10.xyzw
add [precise] r10.xyzw, r10.xyzw, l(-8.192000, -8.192000, -8.192000, -8.192000)
mul [precise] r8.xyzw, r8.xyzw, r10.xyzw
add [precise] r8.xyzw, r8.xyzw, l(2.73066664, 2.73066664, 2.73066664, 2.73066664)
dp4 [precise(x)] r10.x, r8.xyzw, r14.xyzw
dp4 [precise(y)] r10.y, r8.xyzw, r9.xyzw
dp4 [precise(z)] r10.z, r8.xyzw, r15.xyzw
mul [precise(xyz)] r8.xyz, r10.xyzx, cb6[33].yyyy
add [precise(xyz)] r7.xyz, r7.xyzx, r8.xyzx
dp3 [precise(w)] r1.w, r7.xyzx, r7.xyzx
sqrt [precise(w)] r1.w, r1.w
div [precise(xy)] r7.xy, r7.xyxx, r1.wwww
mul [precise(zw)] r7.zw, r7.xxxy, cb6[36].xxxx
dp2 [precise(w)] r1.w, r7.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r9.x, r10.x, r1.z
mul [precise(zw)] r1.zw, r7.xxxy, cb6[54].yyyy
mul [precise(xy)] r7.xy, r1.zwzz, r10.xxxx
mul [precise(z)] r7.z, r9.x, cb6[35].w
mul [precise(z)] r1.z, r0.x, cb6[39].x
sincos [precise(x)] r9.x, r10.x, cb6[38].y
mul [precise(yzw)] r9.yzw, r3.xxyz, r10.xxxx
mul [precise(xyz)] r10.xyz, r4.xyzx, r9.xxxx
add [precise(xyz)] r9.xyz, r9.yzwy, r10.xyzx
add [precise(xyz)] r9.xyz, r2.yyzy, r9.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, -cb5[52].xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, cb5[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
add [precise(xyz)] r9.xyz, r8.xyzx, r9.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(zw)] r9.zw, r9.xxxy, cb6[38].wwww
dp2 [precise(w)] r1.w, r9.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r10.x, r11.x, r1.z
mul [precise(zw)] r1.zw, r9.xxxy, cb6[54].zzzz
mul [precise(xy)] r9.xy, r1.zwzz, r11.xxxx
mul [precise(z)] r9.z, r10.x, cb6[38].z
add [precise(xyz)] r7.xyz, r7.xyzx, r9.xyzx
mul [precise(z)] r1.z, r0.x, cb6[41].x
sincos [precise(x)] r9.x, r10.x, cb6[39].z
mul [precise(yzw)] r9.yzw, r3.xxyz, r10.xxxx
mul [precise(xyz)] r10.xyz, r4.xyzx, r9.xxxx
add [precise(xyz)] r9.xyz, r9.yzwy, r10.xyzx
add [precise(xyz)] r9.xyz, r2.yyzy, r9.xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, -cb5[52].xyzx
add [precise(xyz)] r9.xyz, r9.xyzx, cb5[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
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(xy)] r8.xy, r8.xyxx, r1.wwww
mul [precise(zw)] r8.zw, r8.xxxy, cb6[40].zzzz
dp2 [precise(w)] r1.w, r8.zwzz, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r9.x, r10.x, r1.z
mul [precise(zw)] r1.zw, r8.xxxy, cb6[54].wwww
mul [precise(xy)] r8.xy, r1.zwzz, r10.xxxx
mul [precise(z)] r8.z, r9.x, cb6[40].y
add [precise(xyz)] r7.xyz, r7.xyzx, r8.xyzx
mul [precise(z)] r1.z, r0.x, cb6[47].x
sincos [precise(x)] r8.x, r9.x, cb6[42].z
mul [precise(yzw)] r8.yzw, r3.xxyz, r9.xxxx
mul [precise(xyz)] r9.xyz, r4.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r9.xyzx
add [precise(xyz)] r8.xyz, r2.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb5[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb5[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, r6.xyzx, cb6[42].wwww
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, cb6[43].xxxx
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(xy)] r8.xy, r6.zwzz, cb6[45].wwww
dp2 [precise(w)] r1.w, r8.xyxx, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r8.x, r10.x, r1.z
mul [precise(zw)] r1.zw, r6.zzzw, cb6[55].xxxx
mul [precise(xy)] r10.xy, r1.zwzz, r10.xxxx
mul [precise(z)] r10.z, r8.x, cb6[45].z
mul [precise(z)] r1.z, r0.x, cb6[48].w
sincos [precise(x)] r8.x, r11.x, cb6[48].x
mul [precise(yzw)] r8.yzw, r3.xxyz, r11.xxxx
mul [precise(xyz)] r11.xyz, r4.xyzx, r8.xxxx
add [precise(xyz)] r8.xyz, r8.yzwy, r11.xyzx
add [precise(xyz)] r8.xyz, r2.yyzy, r8.xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, -cb5[52].xyzx
add [precise(xyz)] r8.xyz, r8.xyzx, cb5[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(zw)] r6.zw, r8.xxxy, r1.wwww
mul [precise(xy)] r8.xy, r6.zwzz, cb6[48].zzzz
dp2 [precise(w)] r1.w, r8.xyxx, r6.xyxx
add [precise(z)] r1.z, r1.w, r1.z
mul [precise(z)] r1.z, r1.z, l(6.28318548)
sincos [precise(x)] r8.x, r11.x, r1.z
mul [precise(zw)] r1.zw, r6.zzzw, cb6[55].yyyy
mul [precise(xy)] r11.xy, r1.zwzz, r11.xxxx
mul [precise(z)] r11.z, r8.x, cb6[48].y
add [precise(xyz)] r8.xyz, r10.xyzx, r11.xyzx
mul [precise(x)] r0.x, r0.x, cb6[50].w
sincos [precise(x)] r10.x, r11.x, cb6[49].y
mul [precise(xyz)] r3.xyz, r3.xyzx, r11.xxxx
mul [precise(xyz)] r4.xyz, r4.xyzx, r10.xxxx
add [precise(xyz)] r3.xyz, r3.xyzx, r4.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, r3.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, -cb5[52].xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, cb5[52].xyzx
dp3 [precise(z)] r1.z, r2.xyzx, r2.xyzx
sqrt [precise(z)] r1.z, r1.z
div [precise(xyz)] r2.xyz, r2.xyzx, r1.zzzz
add [precise(xyz)] r2.xyz, r9.xyzx, r2.xyzx
dp3 [precise(z)] r1.z, r2.xyzx, r2.xyzx
sqrt [precise(z)] r1.z, r1.z
div [precise(zw)] r1.zw, r2.xxxy, r1.zzzz
mul [precise(xy)] r2.xy, r1.zwzz, cb6[50].yyyy
dp2 [precise(x)] r2.x, r2.xyxx, r6.xyxx
add [precise(x)] r0.x, r0.x, r2.x
mul [precise(x)] r0.x, r0.x, l(6.28318548)
sincos [precise(x)] r0.x, r2.x, r0.x
mul [precise(zw)] r1.zw, r1.zzzw, cb6[55].zzzz
mul [precise(xy)] r2.xy, r1.zwzz, r2.xxxx
mul [precise(z)] r2.z, r0.x, cb6[50].x
add [precise(xyz)] r2.xyz, r2.xyzx, r8.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, r7.xyzx
add [precise(xyz)] r2.xyz, r2.xyzx, r5.xyzx
mul [precise(xyz)] r2.xyz, r2.xyzx, cb6[60].zzzz
add [precise(xyz)] r2.xyz, r0.yzwy, r2.xyzx
ishl [precise(x)] r0.x, cb3[19].y, l(2)
mul [precise] r3.xyzw, r2.xxxx, cb2[r0.x + 0].xyzw
mul [precise] r4.xyzw, r2.yyyy, cb2[r0.x + 1].xyzw
add [precise] r3.xyzw, r3.xyzw, r4.xyzw
mul [precise] r4.xyzw, r2.zzzz, cb2[r0.x + 2].xyzw
add [precise] r3.xyzw, r3.xyzw, r4.xyzw
add [precise] o5.xyzw, r3.xyzw, cb2[r0.x + 3].xyzw
add [precise(xyz)] r2.xyz, r2.xyzx, -cb2[69].xyzx
dp3 [precise(x)] r0.x, r2.xyzx, r2.xyzx
sqrt [precise(z)] r1.z, r0.x
mul [precise(xy)] r3.xy, cb2[169].xxxx, l(0.000010, 100.000000, 0.000000, 0.000000)
add [precise(w)] r1.w, cb2[69].z, -cb2[168].w
mul [precise(z)] r4.z, r1.w, cb2[169].y
mov [precise(xy)] r4.xy, cb2[69].xyxx
mul [precise(xyz)] r4.xyz, r3.xxxx, r4.xyzx
add [precise(w)] r4.w, r4.z, l(6360.009766)
dp3 [precise(w)] r1.w, r4.xywx, r4.xywx
sqrt [precise(z)] r5.z, r1.w
rsq [precise(w)] r2.w, r0.x
mul [precise(xyz)] r6.xyz, r2.wwww, r2.xyzx
dp3 [precise(z)] r3.z, r4.xywx, r6.xyzx
div [precise(w)] r5.w, r3.z, r5.z
mul [precise(w)] r3.w, r5.w, r5.w
add [precise(w)] r3.w, r3.w, l(-1.000000)
mul [precise(w)] r1.w, r1.w, r3.w
add [precise(xy)] r7.xy, r1.wwww, l(40449600.000000, 41344900.000000, 0.000000, 0.000000)
sqrt [precise(xy)] r7.xy, r7.xyxx
add [precise(xy)] r7.xy, -r3.zzzz, -r7.xyxx
mul [precise(w)] r1.w, r1.z, r3.x
add [precise(x)] r3.x, r1.w, -cb2[169].w
max [precise(x)] r3.x, r3.x, l(0.000000)
mul r3.w, r3.x, l(0.100000)
div r3.w, r3.w, cb2[169].w
min r3.w, r3.w, l(1.000000)
lt [precise(y)] r3.y, r1.w, r3.y
mul r8.y, r3.w, cb2[168].x
add [precise(w)] r1.w, r1.w, cb2[170].x
max [precise(x)] r8.x, r1.w, l(1.000000)
mov r7.z, l(1.000000)
movc [precise(x)] r5.xy, r3.yyyy, r8.xyxx, r7.xzxx
lt [precise(w)] r1.w, l(0.000000), r7.y
mul [precise(xzw)] r7.xzw, r6.xxyz, r7.yyyy
add [precise(xzw)] r7.xzw, r4.xxyw, r7.xxzw
add [precise(x)] r8.x, -r7.y, r5.x
add [precise(z)] r3.z, r3.z, r7.y
mul [precise(z)] r8.z, r3.z, l(0.000155520989)
movc [precise(xyz)] r7.xyz, r1.wwww, r7.xzwx, r4.xywx
mov [precise(y)] r8.y, l(6430.000000)
movc [precise(xyz)] r8.xyz, r1.wwww, r8.xyzx, r5.xzwx
lt [precise(w)] r1.w, r8.y, l(6360.014648)
add [precise(z)] r3.z, -r8.y, l(6360.014648)
mul [precise(xyz)] r9.xyz, r6.xyzx, r3.zzzz
add [precise(xyz)] r9.xyz, r7.xyzx, -r9.xyzx
add [precise(x)] r10.x, -r3.z, r8.x
dp3 [precise(z)] r3.z, r9.xyzx, r6.xyzx
mul [precise(z)] r10.z, r3.z, l(0.000157232338)
mov [precise(y)] r10.y, l(6360.014648)
movc [precise(xyz)] r8.xyz, r1.wwww, r10.xyzx, r8.xyzx
ge [precise(z)] r3.z, l(6430.000000), r8.y
lt [precise(x)] r3.x, l(0.000000), r3.x
and [precise(x)] r3.x, r3.x, r3.z
if_nz r3.x
  movc [precise(xzw)] r3.xzw, r1.wwww, r9.xxyz, r7.xxyz
  dp3 r1.w, r6.xyzx, cb2[167].xyzx
  dp3 r4.z, r3.xzwx, cb2[167].xyzx
  div r4.z, r4.z, r8.y
  div [precise(x)] r7.x, l(6360.000000), r8.y
  mul [precise(x)] r7.x, r7.x, r7.x
  add [precise(x)] r7.x, -r7.x, l(1.000000)
  sqrt [precise(x)] r7.x, r7.x
  add [precise(y)] r7.y, -r7.x, l(0.005000)
  add [precise(z)] r7.z, r7.y, l(0.150000)
  max [precise(zw)] r7.zw, r7.zzzy, r8.zzzz
  movc [precise(x)] r9.x, r3.y, r7.z, r7.w
  mul [precise(z)] r7.z, -r6.z, l(1.442695)
  exp [precise(z)] r7.z, r7.z
  add_sat [precise(y)] r10.y, r7.z, l(-0.500000)
  lt [precise(z)] r7.z, r10.y, l(1.000000)
  max [precise(w)] r6.w, r6.z, l(0.150000)
  dp3 [precise(w)] r7.w, r6.xywx, r6.xywx
  rsq [precise(w)] r7.w, r7.w
  mul [precise(xyz)] r11.xyz, r6.xywx, r7.wwww
  mul [precise(xyz)] r12.xyz, r8.xxxx, r11.xyzx
  add [precise(xyz)] r12.xyz, r3.xzwx, r12.xyzx
  dp3 [precise(w)] r6.w, r12.xyzx, r12.xyzx
  sqrt [precise(w)] r6.w, r6.w
  dp3 [precise(w)] r7.w, r12.xyzx, r11.xyzx
  div [precise(w)] r11.w, r7.w, r6.w
  mov [precise(yzw)] r9.yzw, r6.xxyz
  movc [precise] r11.xyzw, r7.zzzz, r11.xyzw, r9.yzwx
  mov [precise(x)] r10.x, r11.w
  mov [precise(y)] r9.y, l(0)
  movc [precise(xy)] r10.xy, r3.yyyy, r10.xyxx, r9.xyxx
  mad r6.w, r1.w, r1.w, l(1.000000)
  mul r7.z, r6.w, l(0.0596831031)
  mad r7.w, -r1.w, 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 r6.w, r6.w, r7.w
  mul r12.x, r6.w, l(0.0162772108)
  mul [precise(w)] r6.w, r8.y, r8.y
  mad r7.w, r8.y, r8.y, l(-40449600.000000)
  sqrt r7.w, r7.w
  mul [precise(z)] r8.z, r8.y, r10.x
  mul [precise(w)] r8.w, r8.z, r8.z
  add [precise(w)] r8.w, -r6.w, r8.w
  add [precise(w)] r8.w, r8.w, l(40449600.000000)
  lt [precise(y)] r9.y, r8.z, l(0.000000)
  lt [precise(z)] r9.z, l(0.000000), r8.w
  and [precise(y)] r9.y, r9.z, r9.y
  movc [precise(xyz)] r13.xyzw, r9.yyyy, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
  utof r9.y, cb2[170].w
  div r9.z, l(0.500000), r9.y
  mul r9.w, r7.w, l(0.00105685578)
  div r9.y, l(1.000000, 1.000000, 1.000000, 1.000000), r9.y
  add r9.y, -r9.y, l(1.000000)
  mad r14.z, r9.w, r9.y, r9.z
  add r8.w, r8.w, r13.y
  sqrt r8.w, r8.w
  mad r8.z, r8.z, r13.x, r8.w
  add r8.w, r7.w, r13.z
  div r8.z, r8.z, r8.w
  mad r14.w, r8.z, l(0.492187500), r13.w
  max r8.z, r4.z, l(-0.197500)
  mul r8.z, r8.z, l(5.34962368)
  min r8.w, |r8.z|, l(1.000000)
  max r9.w, |r8.z|, l(1.000000)
  div r9.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w
  mul r8.w, r8.w, r9.w
  mul r9.w, r8.w, r8.w
  mad r10.w, r9.w, l(0.0208350997), l(-0.085133)
  mad r10.w, r9.w, r10.w, l(0.180141)
  mad r10.w, r9.w, r10.w, l(-0.330299497)
  mad r9.w, r9.w, r10.w, l(0.999866)
  mul r10.w, r8.w, r9.w
  lt r11.w, l(1.000000), |r8.z|
  mad r10.w, r10.w, l(-2.000000), l(1.57079637)
  and r10.w, r11.w, r10.w
  mad r8.w, r8.w, r9.w, r10.w
  min r8.z, r8.z, l(1.000000)
  lt r8.z, r8.z, -r8.z
  movc r8.z, r8.z, -r8.w, r8.w
  mad r8.z, r8.z, l(0.909090877), l(0.740000)
  mad r8.z, r8.z, l(0.484375), l(0.015625)
  add r1.w, r1.w, l(1.000000)
  mul r8.w, r1.w, l(3.500000)
  round_ni r8.w, r8.w
  mad r1.w, r1.w, l(3.500000), -r8.w
  add r8.z, r8.z, r8.w
  mul r14.y, r8.z, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r13.xyzw, r14.ywzy, t3.xyzw, s3, l(0.000000)
  add r9.w, -r1.w, l(1.000000)
  add r8.z, r8.z, l(1.000000)
  mul r14.x, r8.z, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r14.xwzx, t3.xyzw, s3, l(0.000000)
  mul r15.xyzw, r1.wwww, r15.xyzw
  mad r13.xyzw, r13.xyzw, r9.wwww, r15.xyzw
  max r13.xyzw, r13.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  lt [precise(z)] r8.z, l(0.000000), r8.x
  if_nz r8.z
    mul [precise(xyz)] r15.xyz, r6.xyzx, r8.xxxx
    add [precise(xzw)] r3.xzw, r3.xxzw, r15.xxyz
    dp3 [precise(z)] r8.z, r3.xzwx, r3.xzwx
    sqrt [precise(z)] r8.z, r8.z
    div r10.w, l(0.500000), cb2[169].z
    mul r10.w, r8.y, r10.w
    sqrt r10.w, r10.w
    div r11.w, r8.x, r8.y
    add r10.z, r10.x, r11.w
    mul r15.xy, r10.xzxx, r10.wwww
    lt r15.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r15.xxxy
    lt r16.xy, r15.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    iadd r15.zw, -r15.zzzw, r16.xxxy
    itof r15.zw, r15.zzzw
    mul r16.xyz, r15.xxyx, r15.xxyx
    lt r10.w, r15.z, r15.w
    mul r11.w, r16.x, l(1.442695)
    exp r11.w, r11.w
    and r10.w, r10.w, r11.w
    mad r16.xy, r16.yzyy, l(1.520000, 1.520000, 0.000000, 0.000000), l(4.000000, 4.000000, 0.000000, 0.000000)
    sqrt r16.xy, r16.xyxx
    mad r15.xy, |r15.xyxx|, l(2.319300, 2.319300, 0.000000, 0.000000), r16.xyxx
    div r15.xy, r15.zwzz, r15.xyxx
    div r11.w, -r8.x, cb2[169].z
    mul [precise(x)] r16.xyz, r8.yyyy, l(2.000000, 0.416666657, 7.53972054, 0.000000)
    div r15.z, r8.x, r16.x
    add r15.z, r10.x, r15.z
    mul r11.w, r11.w, r15.z
    mul r11.w, r11.w, l(1.442695)
    exp r17.y, r11.w
    mov r17.xz, l(1.000000,0,1.000000,0)
    mul r15.xy, r15.xyxx, r17.xyxx
    mul r11.w, cb2[169].z, l(6.283100)
    mul r11.w, r8.y, r11.w
    sqrt r11.w, r11.w
    add r15.w, -r8.y, l(6360.000000)
    div r16.w, r15.w, cb2[169].z
    mul r16.w, r16.w, l(1.442695)
    exp r16.w, r16.w
    mul r11.w, r11.w, r16.w
    dp2 r15.x, r15.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r10.w, r10.w, r15.x
    mul r10.w, r10.w, r11.w
    sqrt r15.xy, r16.yzyy
    mul r16.yz, r10.xxzx, r15.xxxx
    lt r17.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r16.yzyy
    lt r18.xy, r16.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000)
    iadd r17.xy, -r17.xyxx, r18.xyxx
    itof r17.xy, r17.xyxx
    mul r18.xyz, r16.yyzy, r16.yyzy
    lt r10.z, r17.x, r17.y
    mul r11.w, r18.x, l(1.442695)
    exp r11.w, r11.w
    and r10.z, r10.z, r11.w
    mad r18.xy, r18.yzyy, l(1.520000, 1.520000, 0.000000, 0.000000), l(4.000000, 4.000000, 0.000000, 0.000000)
    sqrt r18.xy, r18.xyxx
    mad r16.yz, |r16.yyzy|, l(0.000000, 2.319300, 2.319300, 0.000000), r18.xxyx
    div r16.yz, r17.xxyx, r16.yyzy
    mul r11.w, -r8.x, r15.z
    mul r11.w, r11.w, l(1.20224583)
    exp r17.w, r11.w
    mul r15.xz, r16.yyzy, r17.zzwz
    mul r11.w, r15.w, l(1.20224583)
    exp r11.w, r11.w
    mul r11.w, r11.w, r15.y
    dp2 r15.x, r15.xzxx, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r10.z, r10.z, r15.x
    mul r10.z, r10.z, r11.w
    mul r10.z, r10.z, l(0.00444444455)
    mad r15.xyz, r10.wwww, l(-0.005800, -0.013500, -0.033100, 0.000000), -r10.zzzz
    mul r15.xyz, r15.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
    exp r15.xyz, r15.xyzx
    max [precise(z)] r10.z, r8.y, r8.z
    movc [precise(z)] r10.z, r3.y, r10.z, r8.z
    lt [precise(w)] r10.w, l(6360.009766), r10.z
    if_nz r10.w
      lt [precise(w)] r10.w, r10.y, l(1.000000)
      if_nz r10.w
        movc [precise(xyz)] r11.xyz, r3.yyyy, r11.xyzx, r6.xyzx
        dp3 [precise(w)] r10.w, r3.xzwx, r11.xyzx
        div [precise(w)] r10.w, r10.w, r8.z
        dp3 r3.x, r3.xzwx, cb2[167].xyzx
        div r3.x, r3.x, r8.z
        mul [precise(z)] r3.z, r10.z, r10.z
        mad r3.w, r10.z, r10.z, l(-40449600.000000)
        sqrt r3.w, r3.w
        mul [precise(z)] r8.z, r10.w, r10.z
        mul [precise(z)] r10.z, r8.z, r8.z
        add [precise(z)] r3.z, -r3.z, r10.z
        add [precise(z)] r3.z, r3.z, l(40449600.000000)
        lt [precise(z)] r10.z, r8.z, l(0.000000)
        lt [precise(w)] r10.w, l(0.000000), r3.z
        and [precise(z)] r10.z, r10.w, r10.z
        movc [precise(xyz)] r11.xyzw, r10.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
        mul r10.z, r9.y, r3.w
        mad r17.y, r10.z, l(0.00105685578), r9.z
        add r3.zw, r3.zzzw, r11.yyyz
        sqrt r3.z, r3.z
        mad r3.z, r8.z, r11.x, r3.z
        div r3.z, r3.z, r3.w
        mad r17.x, r3.z, l(0.492187500), r11.w
        max r3.x, r3.x, l(-0.197500)
        mul r3.x, r3.x, l(5.34962368)
        min r3.z, |r3.x|, l(1.000000)
        max r3.w, |r3.x|, l(1.000000)
        div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
        mul r3.z, r3.w, r3.z
        mul r3.w, r3.z, r3.z
        mad r8.z, r3.w, l(0.0208350997), l(-0.085133)
        mad r8.z, r3.w, r8.z, l(0.180141)
        mad r8.z, r3.w, r8.z, l(-0.330299497)
        mad r3.w, r3.w, r8.z, l(0.999866)
        mul r8.z, r3.w, r3.z
        lt r10.z, l(1.000000), |r3.x|
        mad r8.z, r8.z, l(-2.000000), l(1.57079637)
        and r8.z, r10.z, r8.z
        mad r3.z, r3.z, r3.w, r8.z
        min r3.x, r3.x, l(1.000000)
        lt r3.x, r3.x, -r3.x
        movc r3.x, r3.x, -r3.z, r3.z
        mad r3.x, r3.x, l(0.909090877), l(0.740000)
        mad r3.x, r3.x, l(0.484375), r8.w
        add r3.xz, r3.xxxx, l(0.015625, 0.000000, 1.015625, 0.000000)
        mul r17.zw, r3.xxxz, l(0.000000, 0.000000, 0.125000, 0.125000)
        sample_l_indexable(texture3d)(float,float,float,float) r11.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, r1.wwww, r18.xyzw
        mad r11.xyzw, r11.xyzw, r9.wwww, r18.xyzw
        mad r11.xyzw, -r15.xyzx, r11.xyzw, r13.xyzw
        max r13.xyzw, r11.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        if_z r3.y
          add [precise(x)] r3.x, r7.x, r10.x
          lt [precise(z)] r3.z, |r3.x|, l(0.005000)
          if_nz r3.z
            add r3.x, r3.x, l(0.005000)
            mul r3.x, r3.x, l(100.000000)
            add [precise(z)] r3.z, -r7.x, l(-0.005000)
            mul [precise(w)] r3.w, r8.x, r8.x
            add [precise(w)] r3.w, r3.w, r6.w
            mul [precise(x)] r7.x, r8.x, r16.x
            mul [precise(z)] r8.z, r3.z, r7.x
            add [precise(z)] r8.z, r3.w, r8.z
            sqrt [precise(z)] r8.z, r8.z
            mul [precise(z)] r3.z, r3.z, r8.y
            add [precise(w)] r8.w, r8.x, r3.z
            div [precise(w)] r8.w, r8.w, r8.z
            max [precise(w)] r8.w, r7.y, r8.w
            mul [precise(x)] r10.x, r3.z, r3.z
            add [precise(x)] r10.x, -r6.w, r10.x
            add [precise(x)] r10.x, r10.x, l(40449600.000000)
            lt [precise(z)] r10.z, r3.z, l(0.000000)
            lt [precise(w)] r10.w, l(0.000000), r10.x
            and [precise(z)] r10.z, r10.w, r10.z
            movc [precise(xyz)] r11.xyzw, r10.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r10.x, r10.x, r11.y
            sqrt r10.x, r10.x
            mad r3.z, r3.z, r11.x, r10.x
            add r10.x, r7.w, r11.z
            div r3.z, r3.z, r10.x
            mad r11.x, r3.z, l(0.492187500), r11.w
            mov r11.yz, r14.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r11.yxzy, t3.xyzw, s3, l(0.000000)
            mov r14.y, r11.x
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r14.xyzx, t3.xyzw, s3, l(0.000000)
            mul r18.xyzw, r1.wwww, r18.xyzw
            mad r16.xyzw, r16.xyzw, r9.wwww, r18.xyzw
            mul [precise(z)] r3.z, r8.z, r8.z
            mad r10.x, r8.z, r8.z, l(-40449600.000000)
            sqrt r10.x, r10.x
            mul [precise(z)] r8.z, r8.w, r8.z
            mul [precise(w)] r8.w, r8.z, r8.z
            add [precise(z)] r3.z, -r3.z, r8.w
            add [precise(z)] r3.z, r3.z, l(40449600.000000)
            lt [precise(w)] r8.w, r8.z, l(0.000000)
            lt [precise(z)] r10.z, l(0.000000), r3.z
            and [precise(w)] r8.w, r8.w, r10.z
            movc [precise(xyz)] r18.xyzw, r8.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r8.w, r9.y, r10.x
            mad r17.y, r8.w, l(0.00105685578), r9.z
            add r3.z, r3.z, r18.y
            sqrt r3.z, r3.z
            mad r3.z, r8.z, r18.x, r3.z
            add r8.z, r10.x, r18.z
            div r3.z, r3.z, r8.z
            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, r1.wwww, r19.xyzw
            mad r18.xyzw, r18.xyzw, r9.wwww, r19.xyzw
            mad r16.xyzw, -r15.xyzx, r18.xyzw, r16.xyzw
            max r16.xyzw, r16.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mul [precise(z)] r3.z, r7.y, r7.x
            add [precise(z)] r3.z, r3.z, r3.w
            sqrt [precise(z)] r3.z, r3.z
            mul [precise(w)] r3.w, r7.y, r8.y
            add [precise(x)] r7.x, r8.x, r3.w
            div [precise(x)] r7.x, r7.x, r3.z
            max [precise(x)] r7.x, r7.x, r7.y
            mul [precise(y)] r7.y, r3.w, r3.w
            add [precise(y)] r7.y, -r6.w, r7.y
            add [precise(y)] r7.y, r7.y, l(40449600.000000)
            lt [precise(x)] r8.x, r3.w, l(0.000000)
            lt [precise(z)] r8.z, l(0.000000), r7.y
            and [precise(x)] r8.x, r8.z, r8.x
            movc [precise(xyz)] r18.xyzw, r8.xxxx, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r7.y, r7.y, r18.y
            sqrt r7.y, r7.y
            mad r3.w, r3.w, r18.x, r7.y
            add r7.y, r7.w, r18.z
            div r3.w, r3.w, r7.y
            mad r11.w, r3.w, l(0.492187500), r18.w
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r11.ywzy, t3.xyzw, s3, l(0.000000)
            mov r14.w, r11.w
            sample_l_indexable(texture3d)(float,float,float,float) r11.xyzw, r14.xwzx, t3.xyzw, s3, l(0.000000)
            mul r11.xyzw, r1.wwww, r11.xyzw
            mad r11.xyzw, r18.xyzw, r9.wwww, r11.xyzw
            mul [precise(w)] r3.w, r3.z, r3.z
            mad r7.y, r3.z, r3.z, l(-40449600.000000)
            sqrt r7.y, r7.y
            mul [precise(z)] r3.z, r3.z, r7.x
            mul [precise(x)] r7.x, r3.z, r3.z
            add [precise(w)] r3.w, -r3.w, r7.x
            add [precise(w)] r3.w, r3.w, l(40449600.000000)
            lt [precise(x)] r7.x, r3.z, l(0.000000)
            lt [precise(x)] r8.x, l(0.000000), r3.w
            and [precise(x)] r7.x, r7.x, r8.x
            movc [precise(xyz)] r18.xyzw, r7.xxxx, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r7.x, r9.y, r7.y
            mad r17.y, r7.x, l(0.00105685578), r9.z
            add r3.w, r3.w, r18.y
            sqrt r3.w, r3.w
            mad r3.z, r3.z, r18.x, r3.w
            add r3.w, r7.y, r18.z
            div r3.z, r3.z, r3.w
            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, r1.wwww, r17.xyzw
            mad r17.xyzw, r18.xyzw, r9.wwww, r17.xyzw
            mad r11.xyzw, -r15.xyzx, r17.xyzw, r11.xyzw
            max r11.xyzw, r11.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            add r11.xyzw, -r16.xyzw, r11.xyzw
            mad r13.xyzw, r3.xxxx, r11.xyzw, r16.xyzw
          endif
        else
          lt [precise(x)] r3.x, l(0.000000), r10.y
          if_nz r3.x
            add r11.xyzw, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 1.000000)
            mul [precise(x)] r3.x, r8.y, r9.x
            mul [precise(z)] r3.z, r3.x, r3.x
            add [precise(z)] r3.z, -r6.w, r3.z
            add [precise(z)] r3.z, r3.z, l(40449600.000000)
            lt [precise(w)] r3.w, r3.x, l(0.000000)
            lt [precise(w)] r6.w, l(0.000000), r3.z
            and [precise(w)] r3.w, r3.w, r6.w
            movc [precise(xyz)] r8.xyzw, r3.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r3.z, r3.z, r8.y
            sqrt r3.z, r3.z
            mad r3.x, r3.x, r8.x, r3.z
            add r3.z, r7.w, r8.z
            div r3.x, r3.x, r3.z
            mad r8.y, r3.x, l(0.492187500), r8.w
            mov r8.xz, r14.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r8.xyzx, t3.xyzw, s3, l(0.000000)
            mov r8.xz, r14.xxzx
            sample_l_indexable(texture3d)(float,float,float,float) r8.xyzw, r8.xyzx, t3.xyzw, s3, l(0.000000)
            mul r8.xyzw, r1.wwww, r8.xyzw
            mad r8.xyzw, r16.xyzw, r9.wwww, r8.xyzw
            max r8.xyzw, r8.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mad r8.xyzw, r11.xyzw, r8.xyzw, -r13.xyzw
            mad r13.xyzw, r10.yyyy, r8.xyzw, r13.xyzw
          endif
        endif
      else
        add r8.xyzw, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 1.000000)
        mul r13.xyzw, r13.xyzw, r8.xyzw
      endif
    endif
  else
    mov r15.xyz, l(1.000000,1.000000,1.000000,0)
  endif
  mul_sat r1.w, r4.z, l(50.000000)
  mad r3.x, r1.w, l(-2.000000), l(3.000000)
  mul r1.w, r1.w, r1.w
  mul r1.w, r1.w, r3.x
  mul r1.w, r1.w, r13.w
  mul r3.xzw, r1.wwww, r13.xxyz
  max r1.w, r13.x, l(0.000100)
  div r3.xzw, r3.xxzw, r1.wwww
  mov r12.yzw, l(0,1.000000,0.429629624,0.175226584)
  mul r3.xzw, r12.yyxx, r3.xxzw
  mul r3.xzw, r12.xxzw, r3.xxzw
  mad r3.xzw, r13.xxyz, r7.zzzz, r3.xxzw
  max r3.xzw, r3.xxzw, l(0.000000, 0.000000, 0.000000, 0.000000)
else
  mov r15.xyz, l(1.000000,1.000000,1.000000,0)
  mov r3.xzw, l(0,0,0,0)
endif
and [precise(xy)] r7.xy, cb2[170].zzzz, l(2, 1, 0, 0)
if_z r7.x
  lt [precise(w)] r1.w, l(0.000000), r5.x
  if_nz r1.w
    mul [precise(xzw)] r7.xzw, r6.xxyz, r5.xxxx
    add [precise(xyz)] r4.xyz, r4.xywx, r7.xzwx
    dp3 [precise(w)] r1.w, r4.xyzx, r4.xyzx
    sqrt [precise(w)] r1.w, r1.w
    div [precise(xyz)] r4.xyz, r4.xyzx, r1.wwww
    dp3 [precise(w)] r4.w, r4.xyzx, cb2[167].xyzx
    add [precise(w)] r1.w, r1.w, l(-6360.000000)
    mul [precise(z)] r8.z, r1.w, l(0.0142857144)
    sqrt [precise(y)] r9.y, r8.z
    add [precise(x)] r7.xz, r4.wwww, l(0.150000, 0.000000, 0.200000, 0.000000)
    mul [precise(x)] r8.xy, r7.xzxx, l(0.869565248, 0.833333313, 0.000000, 0.000000)
    mul [precise(w)] r1.w, r8.x, l(14.101420)
    min [precise(w)] r6.w, |r1.w|, l(1.000000)
    max [precise(x)] r7.x, |r1.w|, l(1.000000)
    div [precise(x)] r7.x, l(1.000000, 1.000000, 1.000000, 1.000000), r7.x
    mul [precise(w)] r6.w, r6.w, r7.x
    mul [precise(x)] r7.x, r6.w, r6.w
    mul [precise(z)] r7.z, r7.x, l(0.0208350997)
    add [precise(z)] r7.z, r7.z, l(-0.085133)
    mul [precise(z)] r7.z, r7.z, r7.x
    add [precise(z)] r7.z, r7.z, l(0.180141)
    mul [precise(z)] r7.z, r7.z, r7.x
    add [precise(z)] r7.z, r7.z, l(-0.330299497)
    mul [precise(x)] r7.x, r7.z, r7.x
    add [precise(x)] r7.x, r7.x, l(0.999866)
    mul [precise(w)] r6.w, r6.w, r7.x
    lt [precise(x)] r7.x, l(1.000000), |r1.w|
    mul [precise(z)] r7.z, r6.w, l(-2.000000)
    add [precise(z)] r7.z, r7.z, l(1.57079637)
    and [precise(x)] r7.x, r7.x, r7.z
    add [precise(w)] r6.w, r6.w, r7.x
    min [precise(w)] r1.w, r1.w, l(1.000000)
    lt [precise(w)] r1.w, r1.w, -r1.w
    movc [precise(w)] r1.w, r1.w, -r6.w, r6.w
    mul [precise(x)] r9.x, r1.w, l(0.666666687)
    sample_l_indexable [precise(xzw)](texture2d)(float,float,float,float) r7.xzw, r9.xyxx, t1.xwyz, s1, l(0.000000)
    movc [precise(xzw)] r7.xzw, r3.yyyy, l(0,0,0,0), r7.xxzw
    sample_l_indexable(texture2d)(float,float,float,float) r8.xyz, r8.yzyy, t2.xyzw, s2, l(0.000000)
    max r1.w, r4.w, l(0.000000)
    mad r8.xyz, r1.wwww, r7.xzwx, r8.xyzx
    mul r8.xyz, r8.xyzx, l(0.00318309898, 0.00318309898, 0.00318309898, 0.000000)
    mad r9.xyz, -r2.xyzx, r2.wwww, cb2[167].xyzx
    dp3 r1.w, r9.xyzx, r9.xyzx
    rsq r1.w, r1.w
    mul r9.xyz, r1.wwww, r9.xyzx
    dp3 r1.w, -r6.xyzx, r9.xyzx
    add r1.w, -r1.w, l(1.000000)
    mul r4.w, r1.w, r1.w
    mul r4.w, r4.w, r4.w
    mul r1.w, r1.w, r4.w
    mad r1.w, r1.w, l(0.980000), l(0.020000)
    dp3 r4.x, r9.xyzx, r4.xyzx
    max r4.x, r4.x, l(0.000000)
    log r4.x, r4.x
    mul r4.x, r4.x, l(150.000000)
    exp r4.x, r4.x
    mul r1.w, r1.w, r4.x
    max r1.w, r1.w, l(0.000000)
    mad r4.xyz, r1.wwww, r7.xzwx, r8.xyzx
    movc r4.xyz, r3.yyyy, r8.xyzx, r4.xyzx
    mul r4.xyz, r4.xyzx, r15.xyzx
  else
    mov r4.xyz, l(0,0,0,0)
  endif
else
  mov r4.xyz, l(0,0,0,0)
endif
if_z r7.y
  ge [precise(w)] r1.w, l(6430.000000), r5.z
  add [precise(zw)] r5.zw, r5.zzzw, l(0.000000, 0.000000, -6360.000000, 0.150000)
  mul [precise(zw)] r5.zw, r5.zzzw, l(0.000000, 0.000000, 0.0142857144, 0.869565248)
  sqrt [precise(y)] r7.y, r5.z
  mul [precise(y)] r3.y, r5.w, l(14.101420)
  min [precise(w)] r4.w, |r3.y|, l(1.000000)
  max [precise(z)] r5.z, |r3.y|, l(1.000000)
  div [precise(z)] r5.z, l(1.000000, 1.000000, 1.000000, 1.000000), r5.z
  mul [precise(w)] r4.w, r4.w, r5.z
  mul [precise(z)] r5.z, r4.w, r4.w
  mul [precise(w)] r5.w, r5.z, l(0.0208350997)
  add [precise(w)] r5.w, r5.w, l(-0.085133)
  mul [precise(w)] r5.w, r5.w, r5.z
  add [precise(w)] r5.w, r5.w, l(0.180141)
  mul [precise(w)] r5.w, r5.w, r5.z
  add [precise(w)] r5.w, r5.w, l(-0.330299497)
  mul [precise(z)] r5.z, r5.w, r5.z
  add [precise(z)] r5.z, r5.z, l(0.999866)
  mul [precise(w)] r4.w, r4.w, r5.z
  lt [precise(z)] r5.z, l(1.000000), |r3.y|
  mul [precise(w)] r5.w, r4.w, l(-2.000000)
  add [precise(w)] r5.w, r5.w, l(1.57079637)
  and [precise(z)] r5.z, r5.z, r5.w
  add [precise(w)] r4.w, r4.w, r5.z
  min [precise(y)] r3.y, r3.y, l(1.000000)
  lt [precise(y)] r3.y, r3.y, -r3.y
  movc [precise(y)] r3.y, r3.y, -r4.w, r4.w
  mul [precise(x)] r7.x, r3.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)] r7.xyz, r1.wwww, r7.xyzx, l(1.000000,1.000000,1.000000,0)
  lt [precise(w)] r1.w, l(0.000000), r5.x
  mul [precise(y)] r3.y, cb2[170].y, l(3.14159274)
  mul [precise(y)] r3.y, r3.y, l(0.00555555569)
  sincos [precise(y)] null, r3.y, r3.y
  dp3 [precise(w)] r4.w, r6.xyzx, cb2[167].xyzx
  ge [precise(y)] r3.y, r4.w, r3.y
  and [precise(y)] r3.y, r3.y, l(0x3f800000)
  mul [precise(xzw)] r5.xzw, r3.yyyy, r7.xxyz
  movc [precise(xzw)] r5.xzw, r1.wwww, l(0,0,0,0), r5.xxzw
else
  mov r5.xzw, l(0,0,0,0)
endif
add r4.xyz, r4.xyzx, r5.xzwx
add r3.xyz, r3.xzwx, r4.xyzx
mul r1.w, r5.y, cb2[167].w
mul r4.xyz, r1.wwww, cb2[171].xyzx
mul r3.xyz, r3.xyzx, r4.xyzx
dp3 [precise(w)] r1.w, r2.xyzx, cb2[60].xyzx
div [precise(z)] r1.z, r1.z, r1.w
mul [precise(z)] r1.z, r1.z, cb2[199].z
max [precise(z)] r1.z, r1.z, l(0.000000)
mul [precise(x)] r0.x, r0.x, r2.w
max [precise(z)] r1.z, r1.z, cb1[87].w
lt [precise(w)] r1.w, l(0.000000), r1.z
ieq [precise(w)] r3.w, cb1[94].z, l(1)
add [precise(x)] r4.x, cb1[94].w, cb2[68].z
movc [precise(w)] r3.w, r3.w, r4.x, cb1[89].y
mul [precise(z)] r1.z, r2.w, r1.z
mul [precise(w)] r2.w, r2.z, r1.z
add [precise(x)] r4.x, r2.w, cb2[68].z
add [precise(w)] r2.w, -r2.w, r2.z
add [precise(z)] r1.z, -r1.z, l(1.000000)
mul [precise(z)] r1.z, r0.x, r1.z
add [precise(w)] r3.w, -r3.w, r4.x
mul [precise(w)] r3.w, r3.w, cb1[87].y
max [precise(w)] r3.w, r3.w, l(-127.000000)
exp [precise(w)] r3.w, -r3.w
mul [precise(w)] r3.w, r3.w, cb1[89].x
movc [precise(w)] r3.w, r1.w, r3.w, cb1[87].x
movc [precise(z)] r1.z, r1.w, r1.z, r0.x
movc [precise(w)] r1.w, r1.w, r2.w, r2.z
mul [precise(w)] r1.w, r1.w, cb1[87].y
max [precise(w)] r1.w, r1.w, l(-127.000000)
exp [precise(w)] r2.w, -r1.w
add [precise(w)] r2.w, -r2.w, l(1.000000)
div [precise(w)] r2.w, r2.w, r1.w
mul [precise(x)] r4.x, r1.w, l(0.240226507)
add [precise(x)] r4.x, -r4.x, l(0.693147182)
lt [precise(w)] r1.w, l(0.010000), |r1.w|
movc [precise(w)] r1.w, r1.w, r2.w, r4.x
mul [precise(w)] r1.w, r1.w, r3.w
mul [precise(w)] r2.w, r1.z, r1.w
lt [precise(y)] r4.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[89].zwzz
if_nz r4.x
  mad_sat r3.w, r0.x, cb1[91].x, cb1[91].y
  mul r4.xz, cb1[90].yyxy, l(1.000000, 0.000000, -1.000000, 0.000000)
  dp2 r5.x, r2.xyxx, r4.xzxx
  dp2 r5.y, r2.xyxx, cb1[90].xyxx
  mov r5.z, r2.z
  sample_l_indexable(texturecube)(float,float,float,float) r2.xyz, r5.xyzx, t0.xyzw, s0, l(0.000000)
  sample_l_indexable(texturecube)(float,float,float,float) r4.xzw, r5.xyzx, t0.xwyz, s0, cb1[91].z
  add r2.xyz, r2.xyzx, -r4.xzwx
  mad r2.xyz, r3.wwww, r2.xyzx, r4.xzwx
  mul r2.xyz, r2.xyzx, cb1[88].xyzx
else
  mov r2.xyz, cb1[88].xyzx
endif
lt [precise(w)] r3.w, l(0.000000), cb1[92].w
eq [precise(x)] r4.x, cb1[89].z, l(0.000000)
and [precise(w)] r3.w, r3.w, r4.x
dp3_sat [precise(x)] r4.x, r6.xyzx, cb1[92].xyzx
log [precise(x)] r4.x, r4.x
mul [precise(x)] r4.x, r4.x, cb1[93].w
exp [precise(x)] r4.x, r4.x
mul [precise(xzw)] r4.xzw, r4.xxxx, cb1[93].xxyz
add [precise(z)] r1.z, r1.z, -cb1[94].x
max [precise(z)] r1.z, r1.z, l(0.000000)
mul [precise(z)] r1.z, r1.z, r1.w
exp [precise(z)] r1.z, -r1.z
min [precise(z)] r1.z, r1.z, l(1.000000)
add [precise(z)] r1.z, -r1.z, l(1.000000)
mul [precise(xzw)] r4.xzw, r1.zzzz, r4.xxzw
and [precise(xyz)] r5.xyz, r3.wwww, r4.xzwx
exp [precise(z)] r1.z, -r2.w
min [precise(z)] r1.z, r1.z, l(1.000000)
max [precise(w)] r5.w, r1.z, cb1[88].w
lt [precise(x)] r0.x, cb1[89].w, r0.x
and [precise(x)] r0.x, r0.x, r4.y
movc [precise] r4.xyzw, r0.xxxx, l(0,0,0,1.000000), r5.xyzw
add r0.x, -r4.w, l(1.000000)
mad r2.xyz, r2.xyzx, r0.xxxx, r4.xyzx
mad o3.xyz, r3.xyzx, r4.wwww, r2.xyzx
mov o0.w, l(0)
mov o2.xy, r1.xyxx
mov o2.zw, l(0,0,0,0)
mov [precise(w)] o3.w, r4.w
mov [precise(xyz)] o4.xyz, r0.yzwy
ret
// Approximately 0 instruction slots used

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