// halo
// ---- Created with 3Dmigoto v0.6.164 on Sun Nov  8 13:08:42 2026
Texture3D<float4> t7 : register(t7);

Texture3D<float4> t6 : register(t6);

Texture3D<float4> t5 : register(t5);

Texture3D<float4> t4 : register(t4);

TextureCubeArray<float4> t3 : register(t3);

struct t2_t {
  float val[57];
};
StructuredBuffer<t2_t> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2DArray<float4> t0 : register(t0);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

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

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

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




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


void main(
  float4 v0 : SV_POSITION0,
  float3 v1 : TEXCOORD0,
  out float4 o0 : SV_Target0)
{
  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;
  
 float4 s = StereoParams.Load(0);
float4 testeo = IniParams.Load(int2(90,0));  

  r0.x = cmp(cb0[11].w == 0.000000);
  r0.yzw = cb0[7].xyz + -v1.xyz;
  r1.x = cb0[0].z;
  r1.y = cb0[1].z;
  r1.z = cb0[2].z;
  r0.xyz = r0.xxx ? r0.yzw : r1.xyz;
  r0.w = dot(r0.xyz, r0.xyz);
  r0.w = rsqrt(r0.w);
  r0.xyz = r0.xyz * r0.www;
  r2.xyz = cb0[17].xyw * v1.yyy;
  r2.xyz = cb0[16].xyw * v1.xxx + r2.xyz;
  r2.xyz = cb0[18].xyw * v1.zzz + r2.xyz;
  r2.xyz = cb0[19].xyw + r2.xyz;
  r3.xz = float2(0.5,0.5) * r2.xz;
  r0.w = cb0[46].x * r2.y;
  r3.w = 0.5 * r0.w;
  r2.xy = r3.xw + r3.zz;
  r0.w = -0.00999999978 + cb1[1].x;
  r0.w = 2.04081631 * r0.w;
  
r2.x += s.x * (r2.z - s.y) * 0.5;  
  
  r2.xy = r2.xy / r2.zz;
  r2.xy = cb0[42].xy * r2.xy;
  r3.xy = (uint2)r2.xy;
  r3.zw = float2(0,0);
  r1.w = t0.Load(r3.xyzw).x;
  r1.w = cb0[45].z * r1.w + cb0[45].w;
  r1.w = 1 / r1.w;
  r1.w = r1.w + -r2.z;
  r1.w = saturate(cb1[1].x * r1.w);
  r1.w = cb1[0].w * r1.w;
  r0.w = r1.w * r0.w;
  r2.xyz = cmp(cb1[5].xxx == float3(0,1,4));
  r1.w = (int)r2.y | (int)r2.x;
  r3.xyz = cb1[0].xyz * r0.www;
  r3.xyz = r1.www ? r3.xyz : cb1[0].xyz;
  if (cb0[69].x != 0) {
    r4.xyz = -cb0[7].xyz + v1.xyz;
    r1.w = dot(r4.xyz, r4.xyz);
    r1.w = sqrt(r1.w);
    if (cb0[69].z != 0) {
      r4.xy = cb0[42].zw * v0.xy;
      r2.w = -cb0[79].z + r1.w;
      r2.w = max(0, r2.w);
      r2.w = log2(r2.w);
      r2.w = cb0[79].y * r2.w + cb0[79].x;
      r4.z = -cb0[81].y * 0.866025388 + r2.w;
      if (cb0[74].w == 0) {
        r5.xy = cb0[76].xy * r4.xy;
        r5.zw = floor(r5.xy);
        r5.xy = frac(r5.xy);
        r5.xy = float2(1,1) + -r5.xy;
        r6.xy = r5.yx * r5.yx;
        r6.zw = float2(1,1) + -r5.xy;
        r5.xy = r6.zw * r5.xy + float2(0.5,0.5);
        r6.zw = -r6.yx * float2(0.5,0.5) + float2(1,1);
        r6.zw = r6.zw + -r5.xy;
        r7.xy = float2(0.5,0.5) * r5.xy;
        r6.xy = r6.xy * float2(0.5,0.5) + r7.yx;
        r5.xy = r5.xy * float2(0.5,0.5) + r6.zw;
        r7.zw = rcp(r6.yx);
        r7.zw = r7.xy * r7.zw + float2(-0.5,-0.5);
        r8.xy = rcp(r5.xy);
        r7.xy = r6.zw * r8.xy + float2(0.5,0.5);
        r6.zw = cb0[77].xy * cb0[76].zw;
        r8.xyzw = r7.zwxw + r5.zwzw;
        r9.xy = r8.xy * r6.zw;
        r8.xy = r8.zw * r6.zw;
        r7.xyzw = r7.zyxy + r5.zwzw;
        r10.xy = r7.xy * r6.zw;
        r7.xy = r7.zw * r6.zw;
        r9.z = cb0[77].z * r4.z;
        r2.w = r6.y * r6.x;
        r9.xyw = min(cb0[78].xyz, r9.xyz);
        r11.xyzw = t7.SampleLevel(s0_s, r9.xyw, 0).xyzw;
        r5.zw = r5.xy * r6.xy;
        r8.z = r9.z;
        r6.xyz = min(cb0[78].xyz, r8.xyz);
        r6.xyzw = t7.SampleLevel(s0_s, r6.xyz, 0).xyzw;
        r6.xyzw = r6.xyzw * r5.zzzz;
        r6.xyzw = r2.wwww * r11.xyzw + r6.xyzw;
        r10.z = r8.z;
        r8.xyz = min(cb0[78].xyz, r10.xyz);
        r8.xyzw = t7.SampleLevel(s0_s, r8.xyz, 0).xyzw;
        r6.xyzw = r5.wwww * r8.xyzw + r6.xyzw;
        r2.w = r5.x * r5.y;
        r7.z = r10.z;
        r5.xyz = min(cb0[78].xyz, r7.xyz);
        r5.xyzw = t7.SampleLevel(s0_s, r5.xyz, 0).xyzw;
        r5.xyzw = r2.wwww * r5.xyzw + r6.xyzw;
      } else {
        r4.xyz = cb0[77].xyz * r4.xyz;
        r4.xyz = min(cb0[78].xyz, r4.xyz);
        r5.xyzw = t7.SampleLevel(s0_s, r4.xyz, 0).xyzw;
      }
      r2.w = -1.44269502 * r5.w;
      r2.w = exp2(r2.w);
      r2.w = 1 + -r2.w;
      r3.w = cmp(r2.w >= 5.96046448e-08);
      r4.x = rcp(r5.w);
      r4.x = r4.x * r2.w;
      r3.w = r3.w ? r4.x : 1;
      r4.xyz = r3.www * r5.xyz;
      r3.w = cb0[81].w;
    } else {
      r4.xyz = float3(0,0,0);
      r2.w = 0;
      r3.w = 0;
    }
    r4.w = -r3.w + r1.w;
    r5.x = cmp(0 < r4.w);
    if (r5.x != 0) {
      r3.w = -r0.y * r3.w + cb0[7].y;
      r5.xyz = cb0[73].xyz / cb0[74].xxx;
      r5.w = max(0.00100000005, abs(r0.y));
      r6.x = rcp(r5.w);
      r6.y = r4.w * -r0.y + r3.w;
      r3.w = min(r6.y, r3.w);
      r6.y = -cb0[74].y + r3.w;
      r6.y = max(0, r6.y);
      r3.w = cb0[74].y + -r3.w;
      r3.w = r3.w * r6.x;
      r3.w = max(0, r3.w);
      r3.w = min(r3.w, r4.w);
      r4.w = r4.w + -r3.w;
      r6.y = cb0[75].x * -r6.y;
      r6.y = 1.44269502 * r6.y;
      r6.y = exp2(r6.y);
      r4.w = -r4.w * r5.w;
      r4.w = cb0[75].x * r4.w;
      r4.w = 1.44269502 * r4.w;
      r4.w = exp2(r4.w);
      r4.w = 1 + -r4.w;
      r4.w = r6.y * r4.w;
      r5.w = cb0[75].y * r6.x;
      r3.w = r4.w * r5.w + r3.w;
      r3.w = cb0[74].x * r3.w;
      r3.w = -1.44269502 * r3.w;
      r3.w = exp2(r3.w);
      r4.w = 1 + -r2.w;
      r5.w = cmp(cb0[71].x == 1.000000);
      if (r5.w != 0) {
        r1.w = -cb0[72].x + r1.w;
        r5.w = cb0[72].y + -cb0[72].x;
        r1.w = saturate(r1.w / r5.w);
        r1.w = -cb0[72].z * r1.w + 1;
        r1.w = 6 * r1.w;
        r6.xyz = -r0.xyz;
        r6.w = 0;
        r6.xyz = t3.SampleLevel(s1_s, r6.xyzw, r1.w).xyz;
        r6.xyz = cb0[70].xyz * r6.xyz;
      } else {
        r6.xyz = cb0[70].xyz;
      }
      r6.xyz = r6.xyz * r4.www;
      r1.w = t1.Load(float4(0,0,0,0)).x;
      r1.w = cb0[282].y * r1.w;
      r6.xyz = r6.xyz * r1.www;
      r5.xyz = r6.xyz * r5.xyz;
      r1.w = 1 + -r3.w;
      r4.xyz = r5.xyz * r1.www + r4.xyz;
      r2.w = -r4.w * r3.w + 1;
    }
    r5.xyz = r2.www;
  } else {
    r4.xyz = float3(0,0,0);
    r5.xyz = float3(0,0,0);
  }
  r1.w = cmp(asint(cb0[69].y) != 0);
  r2.w = cmp(v0.z != 0.000000);
  r1.w = r1.w ? r2.w : 0;
  if (r1.w != 0) {
    r6.xyz = -cb2[7].xyz + cb0[40].xyz;
    r1.w = dot(r6.xyz, r6.xyz);
    r2.w = rsqrt(r1.w);
    r7.xyz = r6.xyz * r2.www;
    r7.w = sqrt(r1.w);
    r1.w = dot(r7.xyz, -r0.xyz);
    r2.w = rcp(r7.w);
    r2.w = cb2[1].x * r2.w;
    r3.w = -r1.w * r1.w + 1;
    r3.w = max(0, r3.w);
    r2.w = r2.w * r2.w + -r3.w;
    r3.w = cmp(r2.w < 0);
    r4.w = sqrt(r2.w);
    r8.x = -r4.w + -r1.w;
    r8.y = r4.w + -r1.w;
    r8.xy = r8.xy * r7.ww;
    r8.xy = r3.ww ? r2.ww : r8.xy;
    r1.w = cmp(r8.y >= 0);
    r2.w = max(0, r8.x);
    r3.w = r1.w ? r2.w : r8.x;
    r3.w = cmp(r3.w >= 0);
    if (r3.w != 0) {
      r1.x = dot(-r0.xyz, -r1.xyz);
      r1.x = rcp(r1.x);
      r1.x = v0.w * r1.x;
      r1.y = cmp(0 < r2.w);
      r8.xzw = r2.www * -r0.xyz + r6.xyz;
      r1.z = dot(r8.xzw, r8.xzw);
      r1.z = rsqrt(r1.z);
      r9.xyz = r8.xzw * r1.zzz;
      r9.w = cb2[1].x;
      r9.xyzw = r1.yyyy ? r9.xyzw : r7.xyzw;
      r7.xyzw = r1.wwww ? r9.xyzw : r7.xyzw;
      r1.y = dot(r7.xyz, r0.xyz);
      r9.x = -r1.y;
      r1.z = rcp(r7.w);
      r1.z = cb2[0].x * r1.z;
      r1.z = -r1.z * r1.z + 1;
      r1.z = max(0, r1.z);
      r1.w = cmp(abs(r1.x) < r8.y);
      r2.w = cmp(r1.x >= 0);
      r2.w = r1.w ? r2.w : 0;
      r6.xyz = abs(r1.xxx) * -r0.xyz + r6.xyz;
      r1.x = dot(r6.xyz, r6.xyz);
      r8.y = sqrt(r1.x);
      r1.x = rcp(r8.y);
      r10.xyz = r6.xyz * r1.xxx;
      r3.w = dot(r6.xyz, -r0.xyz);
      r8.z = r3.w * r1.x;
      r1.x = cmp(r8.z >= 0);
      r8.x = r1.x ? r9.x : r1.y;
      r6.xyz = r1.www ? r10.xyz : 0;
      r9.yz = float2(0,0);
      r8.xyz = r1.www ? r8.xyz : r9.xyz;
      r9.yz = cb2[2].xz * r7.ww;
      r1.x = -r8.x * r8.x + 1;
      r1.x = max(0, r1.x);
      r1.xz = sqrt(r1.xz);
      r10.xy = r9.yz * float2(2,2) + float2(1,1);
      r10.zw = abs(r8.xz) * abs(r8.xz);
      r11.xy = r10.zz * r9.yz;
      r10.xy = -r10.zz * r9.yz + r10.xy;
      r10.xy = float2(0.761642992,0.761642992) * r10.xy;
      r11.xy = r11.xy * float2(0.273828,0.273828) + float2(1.47721004,1.47721004);
      r11.xy = r11.xy * r9.yz;
      r11.xy = sqrt(r11.xy);
      r11.xy = abs(r8.xx) * r9.yz + r11.xy;
      r11.zw = float2(0.5,0.5) * abs(r8.xz);
      r11.xy = rcp(r11.xy);
      r10.xy = r10.xy * r11.xy + r11.zz;
      r11.xy = cb2[0].xx * cb2[2].xz + -r9.yz;
      r11.xy = float2(1.44269502,1.44269502) * r11.xy;
      r11.xy = exp2(r11.xy);
      r10.xy = r11.xy * r10.xy;
      r3.w = cmp(r8.x < 0);
      r8.xw = r9.yz * r1.xx;
      r9.yz = rsqrt(r8.xw);
      r1.x = dot(r8.xx, r9.yy);
      r1.x = r9.y + r1.x;
      r1.x = 1.25331402 * r1.x;
      r9.yw = cb2[0].xx * cb2[2].xz + -r8.xw;
      r9.yw = float2(1.44269502,1.44269502) * r9.yw;
      r9.yw = exp2(r9.yw);
      r1.x = r1.x * r9.y + -r10.x;
      r11.x = r3.w ? r1.x : r10.x;
      r1.x = dot(r8.ww, r9.zz);
      r1.x = r9.z + r1.x;
      r1.x = 1.25331402 * r1.x;
      r1.x = r1.x * r9.w + -r10.y;
      r11.y = r3.w ? r1.x : r10.y;
      r8.xw = cb2[2].xz * r8.yy;
      r9.yz = r8.xw * float2(2,2) + float2(1,1);
      r10.xy = r10.ww * r8.xw;
      r9.yz = -r10.ww * r8.xw + r9.yz;
      r9.yz = float2(0.761642992,0.761642992) * r9.yz;
      r10.xy = r10.xy * float2(0.273828,0.273828) + float2(1.47721004,1.47721004);
      r10.xy = r10.xy * r8.xw;
      r10.xy = sqrt(r10.xy);
      r10.xy = abs(r8.zz) * r8.xw + r10.xy;
      r10.xy = rcp(r10.xy);
      r9.yz = r9.yz * r10.xy + r11.ww;
      r8.xw = cb2[0].xx * cb2[2].xz + -r8.xw;
      r8.xw = float2(1.44269502,1.44269502) * r8.xw;
      r8.xw = exp2(r8.xw);
      r8.xw = r9.yz * r8.xw;
      r1.xw = r1.ww ? r8.xw : 0;
      r1.xw = r11.xy + -r1.xw;
      r1.xw = cb2[2].yw * abs(r1.xw);
      r1.w = cb2[10].x * r1.w;
      r9.yzw = r1.xxx * cb2[3].xyz + r1.www;
      r9.yzw = float3(-1.44269502,-1.44269502,-1.44269502) * r9.yzw;
      r9.yzw = exp2(r9.yzw);
      r9.yzw = float3(1,1,1) + -r9.yzw;
      r1.x = -cb2[0].x + r7.w;
      r10.xyz = -r7.xyz * r1.yyy + r0.xyz;
      r1.w = dot(r10.xyz, r10.xyz);
      r3.w = r9.x + r1.z;
      r4.w = cmp(r3.w >= 0);
      r4.w = r4.w ? 1 : -1;
      r3.w = sqrt(abs(r3.w));
      r5.w = -r4.w * -r1.z + 1;
      r5.w = rsqrt(r5.w);
      r3.w = r5.w * r3.w;
      r3.w = max(0.0078125, r3.w);
      r3.w = r4.w * r3.w;
      r11.x = saturate(r3.w * 0.5 + 0.5);
      r1.x = cb2[0].w * r1.x;
      r11.y = sqrt(r1.x);
      r1.x = cb2[1].y * cb2[1].y + 1;
      r3.w = cb2[1].y + cb2[1].y;
      r4.w = -cb2[0].x + r8.y;
      r12.xyz = -r6.xyz * -r8.zzz + r0.xyz;
      r5.w = dot(r12.xyz, r12.xyz);
      r6.w = rcp(r8.y);
      r6.w = cb2[0].x * r6.w;
      r6.w = -r6.w * r6.w + 1;
      r6.w = max(0, r6.w);
      r6.w = sqrt(r6.w);
      r7.w = r8.z + r6.w;
      r8.x = cmp(r7.w >= 0);
      r8.x = r8.x ? 1 : -1;
      r7.w = sqrt(abs(r7.w));
      r6.w = -r8.x * -r6.w + 1;
      r6.w = rsqrt(r6.w);
      r6.w = r7.w * r6.w;
      r6.w = max(0.0078125, r6.w);
      r6.w = r8.x * r6.w;
      r8.x = saturate(r6.w * 0.5 + 0.5);
      r4.w = cb2[0].w * r4.w;
      r8.y = sqrt(r4.w);
      r13.xyz = float3(1,1,1) + -r9.yzw;
      r14.xyz = float3(0,0,0);
      r4.w = 0;
      while (true) {
        r6.w = cmp((uint)r4.w >= asuint(cb0[279].x));
        if (r6.w != 0) break;
        r6.w = t2[r4.w].val[168/4];
        r6.w = cmp((int)r6.w < 0);
        if (r6.w != 0) {
          r6.w = (int)r4.w + 1;
          r4.w = r6.w;
          continue;
        }
        r15.x = t2[r4.w].val[24/4];
        r15.y = t2[r4.w].val[24/4+1];
        r15.z = t2[r4.w].val[24/4+2];
        r16.x = t2[r4.w].val[88/4];
        r16.y = t2[r4.w].val[88/4+1];
        r16.z = t2[r4.w].val[88/4+2];
        r6.w = dot(r7.xyz, -r15.xyz);
        r17.xyz = -r7.xyz * r6.www + -r15.xyz;
        r7.w = dot(r17.xyz, r10.xyz);
        r10.w = dot(r17.xyz, r17.xyz);
        r10.w = r10.w * r1.w;
        r10.w = max(5.96046448e-08, r10.w);
        r10.w = rsqrt(r10.w);
        r7.w = r10.w * r7.w;
        r7.w = max(-1, r7.w);
        r7.w = min(1, r7.w);
        r10.w = 1 + -abs(r7.w);
        r10.w = sqrt(r10.w);
        r12.w = abs(r7.w) * -0.0187292993 + 0.0742610022;
        r12.w = r12.w * abs(r7.w) + -0.212114394;
        r12.w = r12.w * abs(r7.w) + 1.57072878;
        r13.w = r12.w * r10.w;
        r13.w = r13.w * -2 + 3.14159274;
        r7.w = cmp(r7.w < -r7.w);
        r7.w = r7.w ? r13.w : 0;
        r7.w = r12.w * r10.w + r7.w;
        r7.w = r7.w * 4.77464819 + 0.5;
        r6.w = max(-0.5, r6.w);
        r10.w = sqrt(abs(r6.w));
        r6.w = cmp(r6.w >= 0);
        r6.w = r6.w ? r10.w : -r10.w;
        r6.w = saturate(r6.w * 0.585785985 + 0.414213985);
        r6.w = 63 * r6.w;
        r10.w = floor(r6.w);
        r10.w = r7.w * 0.0625 + r10.w;
        r11.z = 0.015625 * r10.w;
        r10.w = ceil(r6.w);
        r7.w = r7.w * 0.0625 + r10.w;
        r11.w = 0.015625 * r7.w;
        r6.w = frac(r6.w);
        r7.w = dot(-r15.xyz, r0.xyz);
        r17.xyz = t4.SampleLevel(s0_s, r11.xyz, 0).xyz;
        r18.xyz = t4.SampleLevel(s0_s, r11.xyw, 0).xyz;
        r18.xyz = r18.xyz + -r17.xyz;
        r17.xyz = r6.www * r18.xyz + r17.xyz;
        r10.w = r7.w * r7.w + 1;
        r12.w = 0.0596831031 * r10.w;
        r18.xyz = t5.SampleLevel(s0_s, r11.xyz, 0).xyz;
        r19.xyz = t5.SampleLevel(s0_s, r11.xyw, 0).xyz;
        r19.xyz = r19.xyz + -r18.xyz;
        r18.xyz = r6.www * r19.xyz + r18.xyz;
        r7.w = -r3.w * -r7.w + r1.x;
        r7.w = max(5.96046448e-08, r7.w);
        r7.w = rsqrt(r7.w);
        r13.w = r7.w * r7.w;
        r7.w = r13.w * r7.w;
        r7.w = r10.w * r7.w;
        r7.w = cb2[1].z * r7.w;
        r18.xyz = r18.xyz * r7.www;
        r17.xyz = r17.xyz * r12.www + r18.xyz;
        r18.xyz = t6.SampleLevel(s0_s, r11.xyz, 0).xyz;
        r19.xyz = t6.SampleLevel(s0_s, r11.xyw, 0).xyz;
        r19.xyz = r19.xyz + -r18.xyz;
        r18.xyz = r6.www * r19.xyz + r18.xyz;
        r17.xyz = r18.xyz + r17.xyz;
        if (r2.w != 0) {
          r6.w = dot(r6.xyz, -r15.xyz);
          r15.xyz = -r6.xyz * r6.www + -r15.xyz;
          r10.w = dot(r15.xyz, r12.xyz);
          r11.z = dot(r15.xyz, r15.xyz);
          r11.z = r11.z * r5.w;
          r11.z = max(5.96046448e-08, r11.z);
          r11.z = rsqrt(r11.z);
          r10.w = r11.z * r10.w;
          r10.w = max(-1, r10.w);
          r10.w = min(1, r10.w);
          r11.z = 1 + -abs(r10.w);
          r11.z = sqrt(r11.z);
          r11.w = abs(r10.w) * -0.0187292993 + 0.0742610022;
          r11.w = r11.w * abs(r10.w) + -0.212114394;
          r11.w = r11.w * abs(r10.w) + 1.57072878;
          r13.w = r11.w * r11.z;
          r13.w = r13.w * -2 + 3.14159274;
          r10.w = cmp(r10.w < -r10.w);
          r10.w = r10.w ? r13.w : 0;
          r10.w = r11.w * r11.z + r10.w;
          r10.w = r10.w * 4.77464819 + 0.5;
          r6.w = max(-0.5, r6.w);
          r11.z = sqrt(abs(r6.w));
          r6.w = cmp(r6.w >= 0);
          r6.w = r6.w ? r11.z : -r11.z;
          r6.w = saturate(r6.w * 0.585785985 + 0.414213985);
          r6.w = 63 * r6.w;
          r11.z = floor(r6.w);
          r11.z = r10.w * 0.0625 + r11.z;
          r8.z = 0.015625 * r11.z;
          r11.z = ceil(r6.w);
          r10.w = r10.w * 0.0625 + r11.z;
          r8.w = 0.015625 * r10.w;
          r6.w = frac(r6.w);
          r15.xyz = t4.SampleLevel(s0_s, r8.xyz, 0).xyz;
          r18.xyz = t4.SampleLevel(s0_s, r8.xyw, 0).xyz;
          r18.xyz = r18.xyz + -r15.xyz;
          r15.xyz = r6.www * r18.xyz + r15.xyz;
          r18.xyz = t5.SampleLevel(s0_s, r8.xyz, 0).xyz;
          r19.xyz = t5.SampleLevel(s0_s, r8.xyw, 0).xyz;
          r19.xyz = r19.xyz + -r18.xyz;
          r18.xyz = r6.www * r19.xyz + r18.xyz;
          r18.xyz = r18.xyz * r7.www;
          r15.xyz = r15.xyz * r12.www + r18.xyz;
          r18.xyz = t6.SampleLevel(s0_s, r8.xyz, 0).xyz;
          r19.xyz = t6.SampleLevel(s0_s, r8.xyw, 0).xyz;
          r19.xyz = r19.xyz + -r18.xyz;
          r18.xyz = r6.www * r19.xyz + r18.xyz;
          r15.xyz = r18.xyz + r15.xyz;
          r15.xyz = -r13.xyz * r15.xyz + r17.xyz;
          r17.xyz = max(float3(0,0,0), r15.xyz);
        }
        r14.xyz = r17.xyz * r16.xyz + r14.xyz;
        r4.w = (int)r4.w + 1;
      }
      r0.x = r14.x + r14.y;
      r0.x = r0.x + r14.z;
      r0.y = 0.333333343 * r0.x;
      r6.xyz = -r0.xxx * float3(0.333333343,0.333333343,0.333333343) + r14.xyz;
      r0.xyz = r6.xyz * cb2[10].zzz + r0.yyy;
      r1.x = r9.y + r9.z;
      r1.x = r1.x + r9.w;
      r1.w = 0.333333343 * r1.x;
      r6.xyz = -r1.xxx * float3(0.333333343,0.333333343,0.333333343) + r9.yzw;
      r6.xyz = r6.xyz * cb2[10].www + r1.www;
      r6.xyz = cb2[11].xxx * r6.xyz;
      r1.x = 1 + -r1.z;
      r1.x = sqrt(r1.x);
      r1.w = r1.z * -0.0187292993 + 0.0742610022;
      r1.w = r1.w * r1.z + -0.212114394;
      r1.w = r1.w * r1.z + 1.57072878;
      r2.w = r1.w * r1.x;
      r2.w = r2.w * -2 + 3.14159274;
      r1.z = cmp(-r1.z < r1.z);
      r1.z = r1.z ? r2.w : 0;
      r1.x = r1.w * r1.x + r1.z;
      r1.z = 1 + -abs(r1.y);
      r1.z = sqrt(r1.z);
      r1.w = abs(r1.y) * -0.0187292993 + 0.0742610022;
      r1.w = r1.w * abs(r1.y) + -0.212114394;
      r1.w = r1.w * abs(r1.y) + 1.57072878;
      r2.w = r1.w * r1.z;
      r2.w = r2.w * -2 + 3.14159274;
      r1.y = cmp(r9.x < r1.y);
      r1.y = r1.y ? r2.w : 0;
      r1.y = r1.w * r1.z + r1.y;
      r1.z = rcp(-r1.x);
      r1.x = r1.x * r1.z;
      r1.x = saturate(r1.y * r1.z + -r1.x);
      r1.x = cb2[11].y * r1.x;
      r1.x = 1.44269502 * r1.x;
      r1.x = exp2(r1.x);
      r1.x = r1.x * cb2[11].z + -cb2[11].z;
      r1.yzw = cb2[9].xyz + -cb2[8].xyz;
      r1.xyz = r1.xxx * r1.yzw + cb2[8].xyz;
      r0.xyz = r1.xyz * r0.xyz;
    } else {
      r0.xyz = float3(0,0,0);
      r6.xyz = float3(0,0,0);
    }
    r1.x = t1.Load(float4(0,0,0,0)).x;
    r1.x = cb0[282].y * r1.x;
    r1.x = cb2[10].y * r1.x;
    r0.xyz = r1.xxx * r0.xyz;
    r1.xyz = float3(1,1,1) + -r5.xyz;
    r4.xyz = r1.xyz * r0.xyz + r4.xyz;
    r5.xyz = r1.xyz * r6.xyz + r5.xyz;
  }
  r0.xyz = float3(1,1,1) + -r5.xyz;
  r0.xyz = r3.xyz * r0.xyz;
  r1.xyz = r4.xyz * r0.www + r0.xyz;
  r3.xyz = r2.zzz ? r1.xyz : r3.xyz;
  r0.xyz = r2.yyy ? r0.xyz : r3.xyz;
  o0.xyz = r2.xxx ? r1.xyz : r0.xyz;
  o0.w = r0.w;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.164 on Sun Nov  8 13:08:42 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xyz         1     NONE   float   xyz
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[283], immediateIndexed
dcl_constantbuffer CB1[6], immediateIndexed
dcl_constantbuffer CB2[12], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2darray (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_structured t2, 228
dcl_resource_texturecubearray (float,float,float,float) t3
dcl_resource_texture3d (float,float,float,float) t4
dcl_resource_texture3d (float,float,float,float) t5
dcl_resource_texture3d (float,float,float,float) t6
dcl_resource_texture3d (float,float,float,float) t7
dcl_input_ps_siv linear noperspective v0.xyzw, position
dcl_input_ps linear v1.xyz
dcl_output o0.xyzw
dcl_temps 20
eq r0.x, cb0[11].w, l(0.000000)
add r0.yzw, -v1.xxyz, cb0[7].xxyz
mov r1.x, cb0[0].z
mov r1.y, cb0[1].z
mov r1.z, cb0[2].z
movc r0.xyz, r0.xxxx, r0.yzwy, r1.xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r0.xyz, r0.wwww, r0.xyzx
mul r2.xyz, v1.yyyy, cb0[17].xywx
mad r2.xyz, cb0[16].xywx, v1.xxxx, r2.xyzx
mad r2.xyz, cb0[18].xywx, v1.zzzz, r2.xyzx
add r2.xyz, r2.xyzx, cb0[19].xywx
mul r3.xz, r2.xxzx, l(0.500000, 0.000000, 0.500000, 0.000000)
mul r0.w, r2.y, cb0[46].x
mul r3.w, r0.w, l(0.500000)
add r2.xy, r3.zzzz, r3.xwxx
add r0.w, cb1[1].x, l(-0.010000)
mul r0.w, r0.w, l(2.04081631)
div r2.xy, r2.xyxx, r2.zzzz
mul r2.xy, r2.xyxx, cb0[42].xyxx
ftou r3.xy, r2.xyxx
mov r3.zw, l(0,0,0,0)
ld_indexable(texture2darray)(float,float,float,float) r1.w, r3.xyzw, t0.yzwx
mad r1.w, cb0[45].z, r1.w, cb0[45].w
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
add r1.w, -r2.z, r1.w
mul_sat r1.w, r1.w, cb1[1].x
mul r1.w, r1.w, cb1[0].w
mul r0.w, r0.w, r1.w
eq r2.xyz, cb1[5].xxxx, l(0.000000, 1.000000, 4.000000, 0.000000)
or r1.w, r2.y, r2.x
mul r3.xyz, r0.wwww, cb1[0].xyzx
movc r3.xyz, r1.wwww, r3.xyzx, cb1[0].xyzx
if_nz cb0[69].x
  add r4.xyz, v1.xyzx, -cb0[7].xyzx
  dp3 r1.w, r4.xyzx, r4.xyzx
  sqrt r1.w, r1.w
  if_nz cb0[69].z
    mul r4.xy, v0.xyxx, cb0[42].zwzz
    add r2.w, r1.w, -cb0[79].z
    max r2.w, r2.w, l(0.000000)
    log r2.w, r2.w
    mad r2.w, cb0[79].y, r2.w, cb0[79].x
    mad r4.z, -cb0[81].y, l(0.866025388), r2.w
    if_z cb0[74].w
      mul r5.xy, r4.xyxx, cb0[76].xyxx
      round_ni r5.zw, r5.xxxy
      frc r5.xy, r5.xyxx
      add r5.xy, -r5.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
      mul r6.xy, r5.yxyy, r5.yxyy
      add r6.zw, -r5.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
      mad r5.xy, r6.zwzz, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
      mad r6.zw, -r6.yyyx, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 1.000000, 1.000000)
      add r6.zw, -r5.xxxy, r6.zzzw
      mul r7.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
      mad r6.xy, r6.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r7.yxyy
      mad r5.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r6.zwzz
      rcp r7.zw, r6.yyyx
      mad r7.zw, r7.xxxy, r7.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
      rcp r8.xy, r5.xyxx
      mad r7.xy, r6.zwzz, r8.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
      mul r6.zw, cb0[76].zzzw, cb0[77].xxxy
      add r8.xyzw, r5.zwzw, r7.zwxw
      mul r9.xy, r6.zwzz, r8.xyxx
      mul r8.xy, r6.zwzz, r8.zwzz
      add r7.xyzw, r5.zwzw, r7.zyxy
      mul r10.xy, r6.zwzz, r7.xyxx
      mul r7.xy, r6.zwzz, r7.zwzz
      mul r9.z, r4.z, cb0[77].z
      mul r2.w, r6.x, r6.y
      min r9.xyw, r9.xyxz, cb0[78].xyxz
      sample_l_indexable(texture3d)(float,float,float,float) r11.xyzw, r9.xywx, t7.xyzw, s0, l(0.000000)
      mul r5.zw, r6.xxxy, r5.xxxy
      mov r8.z, r9.z
      min r6.xyz, r8.xyzx, cb0[78].xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r6.xyzw, r6.xyzx, t7.xyzw, s0, l(0.000000)
      mul r6.xyzw, r5.zzzz, r6.xyzw
      mad r6.xyzw, r2.wwww, r11.xyzw, r6.xyzw
      mov r10.z, r8.z
      min r8.xyz, r10.xyzx, cb0[78].xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r8.xyzw, r8.xyzx, t7.xyzw, s0, l(0.000000)
      mad r6.xyzw, r5.wwww, r8.xyzw, r6.xyzw
      mul r2.w, r5.y, r5.x
      mov r7.z, r10.z
      min r5.xyz, r7.xyzx, cb0[78].xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r5.xyzw, r5.xyzx, t7.xyzw, s0, l(0.000000)
      mad r5.xyzw, r2.wwww, r5.xyzw, r6.xyzw
    else
      mul r4.xyz, r4.xyzx, cb0[77].xyzx
      min r4.xyz, r4.xyzx, cb0[78].xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r5.xyzw, r4.xyzx, t7.xyzw, s0, l(0.000000)
    endif
    mul r2.w, r5.w, l(-1.442695)
    exp r2.w, r2.w
    add r2.w, -r2.w, l(1.000000)
    ge r3.w, r2.w, l(5.960464478E-08)
    rcp r4.x, r5.w
    mul r4.x, r2.w, r4.x
    movc r3.w, r3.w, r4.x, l(1.000000)
    mul r4.xyz, r5.xyzx, r3.wwww
    mov r3.w, cb0[81].w
  else
    mov r4.xyz, l(0,0,0,0)
    mov r2.w, l(0)
    mov r3.w, l(0)
  endif
  add r4.w, r1.w, -r3.w
  lt r5.x, l(0.000000), r4.w
  if_nz r5.x
    mad r3.w, -r0.y, r3.w, cb0[7].y
    div r5.xyz, cb0[73].xyzx, cb0[74].xxxx
    max r5.w, |r0.y|, l(0.001000)
    rcp r6.x, r5.w
    mad r6.y, r4.w, -r0.y, r3.w
    min r3.w, r3.w, r6.y
    add r6.y, r3.w, -cb0[74].y
    max r6.y, r6.y, l(0.000000)
    add r3.w, -r3.w, cb0[74].y
    mul r3.w, r6.x, r3.w
    max r3.w, r3.w, l(0.000000)
    min r3.w, r4.w, r3.w
    add r4.w, -r3.w, r4.w
    mul r6.y, -r6.y, cb0[75].x
    mul r6.y, r6.y, l(1.442695)
    exp r6.y, r6.y
    mul r4.w, r5.w, -r4.w
    mul r4.w, r4.w, cb0[75].x
    mul r4.w, r4.w, l(1.442695)
    exp r4.w, r4.w
    add r4.w, -r4.w, l(1.000000)
    mul r4.w, r4.w, r6.y
    mul r5.w, r6.x, cb0[75].y
    mad r3.w, r4.w, r5.w, r3.w
    mul r3.w, r3.w, cb0[74].x
    mul r3.w, r3.w, l(-1.442695)
    exp r3.w, r3.w
    add r4.w, -r2.w, l(1.000000)
    eq r5.w, cb0[71].x, l(1.000000)
    if_nz r5.w
      add r1.w, r1.w, -cb0[72].x
      add r5.w, -cb0[72].x, cb0[72].y
      div_sat r1.w, r1.w, r5.w
      mad r1.w, -cb0[72].z, r1.w, l(1.000000)
      mul r1.w, r1.w, l(6.000000)
      mov r6.xyz, -r0.xyzx
      mov r6.w, l(0)
      sample_l_indexable(texturecubearray)(float,float,float,float) r6.xyz, r6.xyzw, t3.xyzw, s1, r1.w
      mul r6.xyz, r6.xyzx, cb0[70].xyzx
    else
      mov r6.xyz, cb0[70].xyzx
    endif
    mul r6.xyz, r4.wwww, r6.xyzx
    ld_indexable(texture2d)(float,float,float,float) r1.w, l(0, 0, 0, 0), t1.yzwx
    mul r1.w, r1.w, cb0[282].y
    mul r6.xyz, r1.wwww, r6.xyzx
    mul r5.xyz, r5.xyzx, r6.xyzx
    add r1.w, -r3.w, l(1.000000)
    mad r4.xyz, r5.xyzx, r1.wwww, r4.xyzx
    mad r2.w, -r4.w, r3.w, l(1.000000)
  endif
  mov r5.xyz, r2.wwww
else
  mov r4.xyz, l(0,0,0,0)
  mov r5.xyz, l(0,0,0,0)
endif
ine r1.w, cb0[69].y, l(0)
ne r2.w, v0.z, l(0.000000)
and r1.w, r1.w, r2.w
if_nz r1.w
  add r6.xyz, cb0[40].xyzx, -cb2[7].xyzx
  dp3 r1.w, r6.xyzx, r6.xyzx
  rsq r2.w, r1.w
  mul r7.xyz, r2.wwww, r6.xyzx
  sqrt r7.w, r1.w
  dp3 r1.w, r7.xyzx, -r0.xyzx
  rcp r2.w, r7.w
  mul r2.w, r2.w, cb2[1].x
  mad r3.w, -r1.w, r1.w, l(1.000000)
  max r3.w, r3.w, l(0.000000)
  mad r2.w, r2.w, r2.w, -r3.w
  lt r3.w, r2.w, l(0.000000)
  sqrt r4.w, r2.w
  add r8.x, -r1.w, -r4.w
  add r8.y, -r1.w, r4.w
  mul r8.xy, r7.wwww, r8.xyxx
  movc r8.xy, r3.wwww, r2.wwww, r8.xyxx
  ge r1.w, r8.y, l(0.000000)
  max r2.w, r8.x, l(0.000000)
  movc r3.w, r1.w, r2.w, r8.x
  ge r3.w, r3.w, l(0.000000)
  if_nz r3.w
    dp3 r1.x, -r0.xyzx, -r1.xyzx
    rcp r1.x, r1.x
    mul r1.x, r1.x, v0.w
    lt r1.y, l(0.000000), r2.w
    mad r8.xzw, r2.wwww, -r0.xxyz, r6.xxyz
    dp3 r1.z, r8.xzwx, r8.xzwx
    rsq r1.z, r1.z
    mul r9.xyz, r1.zzzz, r8.xzwx
    mov r9.w, cb2[1].x
    movc r9.xyzw, r1.yyyy, r9.xyzw, r7.xyzw
    movc r7.xyzw, r1.wwww, r9.xyzw, r7.xyzw
    dp3 r1.y, r7.xyzx, r0.xyzx
    mov r9.x, -r1.y
    rcp r1.z, r7.w
    mul r1.z, r1.z, cb2[0].x
    mad r1.z, -r1.z, r1.z, l(1.000000)
    max r1.z, r1.z, l(0.000000)
    lt r1.w, |r1.x|, r8.y
    ge r2.w, r1.x, l(0.000000)
    and r2.w, r1.w, r2.w
    mad r6.xyz, |r1.xxxx|, -r0.xyzx, r6.xyzx
    dp3 r1.x, r6.xyzx, r6.xyzx
    sqrt r8.y, r1.x
    rcp r1.x, r8.y
    mul r10.xyz, r1.xxxx, r6.xyzx
    dp3 r3.w, r6.xyzx, -r0.xyzx
    mul r8.z, r1.x, r3.w
    ge r1.x, r8.z, l(0.000000)
    movc r8.x, r1.x, r9.x, r1.y
    and r6.xyz, r1.wwww, r10.xyzx
    mov r9.yz, l(0,0,0,0)
    movc r8.xyz, r1.wwww, r8.xyzx, r9.xyzx
    mul r9.yz, r7.wwww, cb2[2].xxzx
    mad r1.x, -r8.x, r8.x, l(1.000000)
    max r1.x, r1.x, l(0.000000)
    sqrt r1.xz, r1.xxzx
    mad r10.xy, r9.yzyy, l(2.000000, 2.000000, 0.000000, 0.000000), l(1.000000, 1.000000, 0.000000, 0.000000)
    mul r10.zw, |r8.xxxz|, |r8.xxxz|
    mul r11.xy, r9.yzyy, r10.zzzz
    mad r10.xy, -r10.zzzz, r9.yzyy, r10.xyxx
    mul r10.xy, r10.xyxx, l(0.761643, 0.761643, 0.000000, 0.000000)
    mad r11.xy, r11.xyxx, l(0.273828, 0.273828, 0.000000, 0.000000), l(1.477210, 1.477210, 0.000000, 0.000000)
    mul r11.xy, r9.yzyy, r11.xyxx
    sqrt r11.xy, r11.xyxx
    mad r11.xy, |r8.xxxx|, r9.yzyy, r11.xyxx
    mul r11.zw, |r8.xxxz|, l(0.000000, 0.000000, 0.500000, 0.500000)
    rcp r11.xy, r11.xyxx
    mad r10.xy, r10.xyxx, r11.xyxx, r11.zzzz
    mad r11.xy, cb2[0].xxxx, cb2[2].xzxx, -r9.yzyy
    mul r11.xy, r11.xyxx, l(1.442695, 1.442695, 0.000000, 0.000000)
    exp r11.xy, r11.xyxx
    mul r10.xy, r10.xyxx, r11.xyxx
    lt r3.w, r8.x, l(0.000000)
    mul r8.xw, r1.xxxx, r9.yyyz
    rsq r9.yz, r8.xxwx
    dp2 r1.x, r8.xxxx, r9.yyyy
    add r1.x, r1.x, r9.y
    mul r1.x, r1.x, l(1.253314)
    mad r9.yw, cb2[0].xxxx, cb2[2].xxxz, -r8.xxxw
    mul r9.yw, r9.yyyw, l(0.000000, 1.442695, 0.000000, 1.442695)
    exp r9.yw, r9.yyyw
    mad r1.x, r1.x, r9.y, -r10.x
    movc r11.x, r3.w, r1.x, r10.x
    dp2 r1.x, r8.wwww, r9.zzzz
    add r1.x, r1.x, r9.z
    mul r1.x, r1.x, l(1.253314)
    mad r1.x, r1.x, r9.w, -r10.y
    movc r11.y, r3.w, r1.x, r10.y
    mul r8.xw, r8.yyyy, cb2[2].xxxz
    mad r9.yz, r8.xxwx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, 1.000000, 1.000000, 0.000000)
    mul r10.xy, r8.xwxx, r10.wwww
    mad r9.yz, -r10.wwww, r8.xxwx, r9.yyzy
    mul r9.yz, r9.yyzy, l(0.000000, 0.761643, 0.761643, 0.000000)
    mad r10.xy, r10.xyxx, l(0.273828, 0.273828, 0.000000, 0.000000), l(1.477210, 1.477210, 0.000000, 0.000000)
    mul r10.xy, r8.xwxx, r10.xyxx
    sqrt r10.xy, r10.xyxx
    mad r10.xy, |r8.zzzz|, r8.xwxx, r10.xyxx
    rcp r10.xy, r10.xyxx
    mad r9.yz, r9.yyzy, r10.xxyx, r11.wwww
    mad r8.xw, cb2[0].xxxx, cb2[2].xxxz, -r8.xxxw
    mul r8.xw, r8.xxxw, l(1.442695, 0.000000, 0.000000, 1.442695)
    exp r8.xw, r8.xxxw
    mul r8.xw, r8.xxxw, r9.yyyz
    and r1.xw, r1.wwww, r8.xxxw
    add r1.xw, -r1.xxxw, r11.xxxy
    mul r1.xw, |r1.xxxw|, cb2[2].yyyw
    mul r1.w, r1.w, cb2[10].x
    mad r9.yzw, r1.xxxx, cb2[3].xxyz, r1.wwww
    mul r9.yzw, r9.yyzw, l(0.000000, -1.442695, -1.442695, -1.442695)
    exp r9.yzw, r9.yyzw
    add r9.yzw, -r9.yyzw, l(0.000000, 1.000000, 1.000000, 1.000000)
    add r1.x, r7.w, -cb2[0].x
    mad r10.xyz, -r7.xyzx, r1.yyyy, r0.xyzx
    dp3 r1.w, r10.xyzx, r10.xyzx
    add r3.w, r1.z, r9.x
    ge r4.w, r3.w, l(0.000000)
    movc r4.w, r4.w, l(1.000000), l(-1.000000)
    sqrt r3.w, |r3.w|
    mad r5.w, -r4.w, -r1.z, l(1.000000)
    rsq r5.w, r5.w
    mul r3.w, r3.w, r5.w
    max r3.w, r3.w, l(0.00781250000)
    mul r3.w, r3.w, r4.w
    mad_sat r11.x, r3.w, l(0.500000), l(0.500000)
    mul r1.x, r1.x, cb2[0].w
    sqrt r11.y, r1.x
    mad r1.x, cb2[1].y, cb2[1].y, l(1.000000)
    add r3.w, cb2[1].y, cb2[1].y
    add r4.w, r8.y, -cb2[0].x
    mad r12.xyz, -r6.xyzx, -r8.zzzz, r0.xyzx
    dp3 r5.w, r12.xyzx, r12.xyzx
    rcp r6.w, r8.y
    mul r6.w, r6.w, cb2[0].x
    mad r6.w, -r6.w, r6.w, l(1.000000)
    max r6.w, r6.w, l(0.000000)
    sqrt r6.w, r6.w
    add r7.w, r6.w, r8.z
    ge r8.x, r7.w, l(0.000000)
    movc r8.x, r8.x, l(1.000000), l(-1.000000)
    sqrt r7.w, |r7.w|
    mad r6.w, -r8.x, -r6.w, l(1.000000)
    rsq r6.w, r6.w
    mul r6.w, r6.w, r7.w
    max r6.w, r6.w, l(0.00781250000)
    mul r6.w, r6.w, r8.x
    mad_sat r8.x, r6.w, l(0.500000), l(0.500000)
    mul r4.w, r4.w, cb2[0].w
    sqrt r8.y, r4.w
    add r13.xyz, -r9.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000)
    mov r14.xyz, l(0,0,0,0)
    mov r4.w, l(0)
    loop
      uge r6.w, r4.w, cb0[279].x
      breakc_nz r6.w
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r6.w, r4.w, l(168), t2.xxxx
      ilt r6.w, r6.w, l(0)
      if_nz r6.w
        iadd r6.w, r4.w, l(1)
        mov r4.w, r6.w
        continue
      endif
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.xyz, r4.w, l(24), t2.xyzx
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r16.xyz, r4.w, l(88), t2.xyzx
      dp3 r6.w, r7.xyzx, -r15.xyzx
      mad r17.xyz, -r7.xyzx, r6.wwww, -r15.xyzx
      dp3 r7.w, r17.xyzx, r10.xyzx
      dp3 r10.w, r17.xyzx, r17.xyzx
      mul r10.w, r1.w, r10.w
      max r10.w, r10.w, l(5.960464478E-08)
      rsq r10.w, r10.w
      mul r7.w, r7.w, r10.w
      max r7.w, r7.w, l(-1.000000)
      min r7.w, r7.w, l(1.000000)
      add r10.w, -|r7.w|, l(1.000000)
      sqrt r10.w, r10.w
      mad r12.w, |r7.w|, l(-0.0187292993), l(0.074261)
      mad r12.w, r12.w, |r7.w|, l(-0.212114394)
      mad r12.w, r12.w, |r7.w|, l(1.57072878)
      mul r13.w, r10.w, r12.w
      mad r13.w, r13.w, l(-2.000000), l(3.14159274)
      lt r7.w, r7.w, -r7.w
      and r7.w, r7.w, r13.w
      mad r7.w, r12.w, r10.w, r7.w
      mad r7.w, r7.w, l(4.774648), l(0.500000)
      max r6.w, r6.w, l(-0.500000)
      sqrt r10.w, |r6.w|
      ge r6.w, r6.w, l(0.000000)
      movc r6.w, r6.w, r10.w, -r10.w
      mad_sat r6.w, r6.w, l(0.585786), l(0.414214)
      mul r6.w, r6.w, l(63.000000)
      round_ni r10.w, r6.w
      mad r10.w, r7.w, l(0.062500), r10.w
      mul r11.z, r10.w, l(0.015625)
      round_pi r10.w, r6.w
      mad r7.w, r7.w, l(0.062500), r10.w
      mul r11.w, r7.w, l(0.015625)
      frc r6.w, r6.w
      dp3 r7.w, -r15.xyzx, r0.xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r11.xyzx, t4.xyzw, s0, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r11.xywx, t4.xyzw, s0, l(0.000000)
      add r18.xyz, -r17.xyzx, r18.xyzx
      mad r17.xyz, r6.wwww, r18.xyzx, r17.xyzx
      mad r10.w, r7.w, r7.w, l(1.000000)
      mul r12.w, r10.w, l(0.0596831031)
      sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r11.xyzx, t5.xyzw, s0, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r11.xywx, t5.xyzw, s0, l(0.000000)
      add r19.xyz, -r18.xyzx, r19.xyzx
      mad r18.xyz, r6.wwww, r19.xyzx, r18.xyzx
      mad r7.w, -r3.w, -r7.w, r1.x
      max r7.w, r7.w, l(5.960464478E-08)
      rsq r7.w, r7.w
      mul r13.w, r7.w, r7.w
      mul r7.w, r7.w, r13.w
      mul r7.w, r7.w, r10.w
      mul r7.w, r7.w, cb2[1].z
      mul r18.xyz, r7.wwww, r18.xyzx
      mad r17.xyz, r17.xyzx, r12.wwww, r18.xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r11.xyzx, t6.xyzw, s0, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r11.xywx, t6.xyzw, s0, l(0.000000)
      add r19.xyz, -r18.xyzx, r19.xyzx
      mad r18.xyz, r6.wwww, r19.xyzx, r18.xyzx
      add r17.xyz, r17.xyzx, r18.xyzx
      if_nz r2.w
        dp3 r6.w, r6.xyzx, -r15.xyzx
        mad r15.xyz, -r6.xyzx, r6.wwww, -r15.xyzx
        dp3 r10.w, r15.xyzx, r12.xyzx
        dp3 r11.z, r15.xyzx, r15.xyzx
        mul r11.z, r5.w, r11.z
        max r11.z, r11.z, l(5.960464478E-08)
        rsq r11.z, r11.z
        mul r10.w, r10.w, r11.z
        max r10.w, r10.w, l(-1.000000)
        min r10.w, r10.w, l(1.000000)
        add r11.z, -|r10.w|, l(1.000000)
        sqrt r11.z, r11.z
        mad r11.w, |r10.w|, l(-0.0187292993), l(0.074261)
        mad r11.w, r11.w, |r10.w|, l(-0.212114394)
        mad r11.w, r11.w, |r10.w|, l(1.57072878)
        mul r13.w, r11.z, r11.w
        mad r13.w, r13.w, l(-2.000000), l(3.14159274)
        lt r10.w, r10.w, -r10.w
        and r10.w, r10.w, r13.w
        mad r10.w, r11.w, r11.z, r10.w
        mad r10.w, r10.w, l(4.774648), l(0.500000)
        max r6.w, r6.w, l(-0.500000)
        sqrt r11.z, |r6.w|
        ge r6.w, r6.w, l(0.000000)
        movc r6.w, r6.w, r11.z, -r11.z
        mad_sat r6.w, r6.w, l(0.585786), l(0.414214)
        mul r6.w, r6.w, l(63.000000)
        round_ni r11.z, r6.w
        mad r11.z, r10.w, l(0.062500), r11.z
        mul r8.z, r11.z, l(0.015625)
        round_pi r11.z, r6.w
        mad r10.w, r10.w, l(0.062500), r11.z
        mul r8.w, r10.w, l(0.015625)
        frc r6.w, r6.w
        sample_l_indexable(texture3d)(float,float,float,float) r15.xyz, r8.xyzx, t4.xyzw, s0, l(0.000000)
        sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r8.xywx, t4.xyzw, s0, l(0.000000)
        add r18.xyz, -r15.xyzx, r18.xyzx
        mad r15.xyz, r6.wwww, r18.xyzx, r15.xyzx
        sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r8.xyzx, t5.xyzw, s0, l(0.000000)
        sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r8.xywx, t5.xyzw, s0, l(0.000000)
        add r19.xyz, -r18.xyzx, r19.xyzx
        mad r18.xyz, r6.wwww, r19.xyzx, r18.xyzx
        mul r18.xyz, r7.wwww, r18.xyzx
        mad r15.xyz, r15.xyzx, r12.wwww, r18.xyzx
        sample_l_indexable(texture3d)(float,float,float,float) r18.xyz, r8.xyzx, t6.xyzw, s0, l(0.000000)
        sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r8.xywx, t6.xyzw, s0, l(0.000000)
        add r19.xyz, -r18.xyzx, r19.xyzx
        mad r18.xyz, r6.wwww, r19.xyzx, r18.xyzx
        add r15.xyz, r15.xyzx, r18.xyzx
        mad r15.xyz, -r13.xyzx, r15.xyzx, r17.xyzx
        max r17.xyz, r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      endif
      mad r14.xyz, r17.xyzx, r16.xyzx, r14.xyzx
      iadd r4.w, r4.w, l(1)
    endloop
    add r0.x, r14.y, r14.x
    add r0.x, r14.z, r0.x
    mul r0.y, r0.x, l(0.333333343)
    mad r6.xyz, -r0.xxxx, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r14.xyzx
    mad r0.xyz, r6.xyzx, cb2[10].zzzz, r0.yyyy
    add r1.x, r9.z, r9.y
    add r1.x, r9.w, r1.x
    mul r1.w, r1.x, l(0.333333343)
    mad r6.xyz, -r1.xxxx, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r9.yzwy
    mad r6.xyz, r6.xyzx, cb2[10].wwww, r1.wwww
    mul r6.xyz, r6.xyzx, cb2[11].xxxx
    add r1.x, -r1.z, l(1.000000)
    sqrt r1.x, r1.x
    mad r1.w, r1.z, l(-0.0187292993), l(0.074261)
    mad r1.w, r1.w, r1.z, l(-0.212114394)
    mad r1.w, r1.w, r1.z, l(1.57072878)
    mul r2.w, r1.x, r1.w
    mad r2.w, r2.w, l(-2.000000), l(3.14159274)
    lt r1.z, -r1.z, r1.z
    and r1.z, r1.z, r2.w
    mad r1.x, r1.w, r1.x, r1.z
    add r1.z, -|r1.y|, l(1.000000)
    sqrt r1.z, r1.z
    mad r1.w, |r1.y|, l(-0.0187292993), l(0.074261)
    mad r1.w, r1.w, |r1.y|, l(-0.212114394)
    mad r1.w, r1.w, |r1.y|, l(1.57072878)
    mul r2.w, r1.z, r1.w
    mad r2.w, r2.w, l(-2.000000), l(3.14159274)
    lt r1.y, r9.x, r1.y
    and r1.y, r1.y, r2.w
    mad r1.y, r1.w, r1.z, r1.y
    rcp r1.z, -r1.x
    mul r1.x, r1.z, r1.x
    mad_sat r1.x, r1.y, r1.z, -r1.x
    mul r1.x, r1.x, cb2[11].y
    mul r1.x, r1.x, l(1.442695)
    exp r1.x, r1.x
    mad r1.x, r1.x, cb2[11].z, -cb2[11].z
    add r1.yzw, -cb2[8].xxyz, cb2[9].xxyz
    mad r1.xyz, r1.xxxx, r1.yzwy, cb2[8].xyzx
    mul r0.xyz, r0.xyzx, r1.xyzx
  else
    mov r0.xyz, l(0,0,0,0)
    mov r6.xyz, l(0,0,0,0)
  endif
  ld_indexable(texture2d)(float,float,float,float) r1.x, l(0, 0, 0, 0), t1.xyzw
  mul r1.x, r1.x, cb0[282].y
  mul r1.x, r1.x, cb2[10].y
  mul r0.xyz, r0.xyzx, r1.xxxx
  add r1.xyz, -r5.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  mad r4.xyz, r1.xyzx, r0.xyzx, r4.xyzx
  mad r5.xyz, r1.xyzx, r6.xyzx, r5.xyzx
endif
add r0.xyz, -r5.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r0.xyz, r0.xyzx, r3.xyzx
mad r1.xyz, r4.xyzx, r0.wwww, r0.xyzx
movc r3.xyz, r2.zzzz, r1.xyzx, r3.xyzx
movc r0.xyz, r2.yyyy, r0.xyzx, r3.xyzx
movc o0.xyz, r2.xxxx, r1.xyzx, r0.xyzx
mov o0.w, r0.w
ret
// Approximately 0 instruction slots used

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