//DQ11 distant fog PS 1. Sky lightning. Shangra-La.
// ---- Created with geo-11 v0.6.198 on Mon Jun 16 19:39:25 2025
Texture3D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

Texture2D<float4> t1 : register(t1);

Texture2D<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 cb0 : register(b0)
{
  float4 cb0[150];
}




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


void main(
  float4 v0 : TEXCOORD0,
  float4 v1 : TEXCOORD1,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 stereo = StereoParams.Load(0);
  
  r0.x = t0.SampleLevel(s0_s, v0.xy, 0).x;
  r0.y = r0.x * cb0[53].x + cb0[53].y;
  r0.x = r0.x * cb0[53].z + -cb0[53].w;
  r0.x = 1 / r0.x;
  r0.x = r0.y + r0.x;
  r0.yz = float2(9.99999975e-06,100) * cb0[147].xx;
  r0.w = -cb0[146].w + cb0[55].z;
  r0.w = cb0[147].y * r0.w;
  r1.xy = cb0[55].xy * r0.yy;
  r1.w = r0.w * r0.y + 6360.00977;
  
  float fov = cb0[24].x*cb0[24].x;
  v1.x+=stereo.x*(-1)*cb0[0].x/fov;
  v1.y+=stereo.x*(-1)*cb0[1].x/fov;
  v1.z+=stereo.x*(-1)*cb0[2].x/fov;
  
  r0.w = dot(r1.xyw, r1.xyw);
  r2.z = sqrt(r0.w);
  r1.z = dot(v1.xyz, v1.xyz);
  r1.z = rsqrt(r1.z);
  r3.xyz = v1.xyz * r1.zzz;
  r4.x = dot(r1.xyw, r3.xyz);
  r2.w = r4.x / r2.z;
  r4.y = r2.w * r2.w + -1;
  r4.yz = r0.ww * r4.yy + float2(40449600,41344900);
  r4.yz = sqrt(r4.yz);
  r5.xy = -r4.xx + -r4.yz;
  r0.w = r0.x * r0.y;
  r4.x = r0.x * r0.y + -cb0[147].w;
  r4.x = max(0, r4.x);
  r4.y = 0.100000001 * r4.x;
  r4.y = r4.y / cb0[147].w;
  r4.y = min(1, r4.y);
  r0.z = cmp(r0.w < r0.z);
  r6.y = cb0[146].x * r4.y;
  r0.x = r0.x * r0.y + cb0[148].x;
  r6.x = max(1, r0.x);
  r5.z = 1;
  r2.xy = r0.zz ? r6.xy : r5.xz;
  r0.x = cmp(0 < r5.y);
  r5.xzw = r5.yyy * r3.xyz + r1.xyw;
  r6.x = r2.x + -r5.y;
  r6.z = -0.000155520989 * r4.z;
  r5.xyz = r0.xxx ? r5.xzw : r1.xyw;
  r6.y = 6430;
  r0.xyw = r0.xxx ? r6.xyz : r2.xzw;
  r4.z = cmp(r0.y < 6360.01465);
  r4.w = 6360.01465 + -r0.y;
  r6.xyz = -r4.www * r3.xyz + r5.xyz;
  r7.x = -r4.w + r0.x;
  r4.w = dot(r6.xyz, r3.xyz);
  r7.z = 0.000157232338 * r4.w;
  r7.y = 6360.01465;
  r0.xyw = r4.zzz ? r7.xyz : r0.xyw;
  r4.w = cmp(6430 >= r0.y);
  r4.x = cmp(0 < r4.x);
  r4.x = r4.x ? r4.w : 0;
  if (r4.x != 0) {
    r4.xzw = r4.zzz ? r6.xyz : r5.xyz;
    r5.x = dot(r3.xyz, cb0[145].xyz);
    r5.y = dot(r4.xzw, cb0[145].xyz);
    r5.y = r5.y / r0.y;
    r5.z = 6360 / r0.y;
    r5.z = -r5.z * r5.z + 1;
    r5.z = sqrt(r5.z);
    r6.xy = float2(0.155000001,0.00499999989) + -r5.zz;
    r6.xz = max(r6.xy, r0.ww);
    r7.x = r0.z ? r6.x : r6.z;
    r0.w = -1.44269502 * r3.z;
    r0.w = exp2(r0.w);
    r8.y = saturate(-0.5 + r0.w);
    r0.w = cmp(r8.y < 1);
    r3.w = max(0.150000006, r3.z);
    r5.w = dot(r3.xyw, r3.xyw);
    r5.w = rsqrt(r5.w);
    r9.xyz = r5.www * r3.xyw;
    r6.xzw = r0.xxx * r9.xyz + r4.xzw;
    r3.w = dot(r6.xzw, r6.xzw);
    r3.w = sqrt(r3.w);
    r5.w = dot(r6.xzw, r9.xyz);
    r9.w = r5.w / r3.w;
    r7.yzw = r3.xyz;
    r9.xyzw = r0.wwww ? r9.xyzw : r7.yzwx;
    r8.x = r9.w;
    r7.y = 0;
    r8.xy = r0.zz ? r8.xy : r7.xy;
    r0.w = r5.x * r5.x + 1;
    r3.w = 0.0596831031 * r0.w;
    r5.w = -r5.x * 1.60000002 + 1.63999999;
    r5.w = log2(abs(r5.w));
    r5.w = -1.5 * r5.w;
    r5.w = exp2(r5.w);
    r0.w = r5.w * r0.w;
    r10.x = 0.0162772108 * r0.w;
    r0.w = r0.y * r0.y;
    r5.w = r0.y * r0.y + -40449600;
    r5.w = sqrt(r5.w);
    r6.x = r8.x * r0.y;
    r6.z = r6.x * r6.x + -r0.w;
    r6.z = 40449600 + r6.z;
    r6.w = cmp(r6.x < 0);
    r7.y = cmp(0 < r6.z);
    r6.w = r6.w ? r7.y : 0;
    r11.xyzw = r6.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
    r6.w = asuint(cb0[148].w);
    r7.y = 0.5 / r6.w;
    r7.z = 0.00105685578 * r5.w;
    r6.w = 1 / r6.w;
    r6.w = 1 + -r6.w;
    r12.z = r7.z * r6.w + r7.y;
    r6.z = r11.y + r6.z;
    r6.z = sqrt(r6.z);
    r6.x = r6.x * r11.x + r6.z;
    r6.z = r11.z + r5.w;
    r6.x = r6.x / r6.z;
    r12.w = r6.x * 0.4921875 + r11.w;
    r6.x = max(-0.197500005, r5.y);
    r6.x = 5.34962368 * r6.x;
    r6.z = min(1, abs(r6.x));
    r7.z = max(1, abs(r6.x));
    r7.z = 1 / r7.z;
    r6.z = r7.z * r6.z;
    r7.z = r6.z * r6.z;
    r7.w = r7.z * 0.0208350997 + -0.0851330012;
    r7.w = r7.z * r7.w + 0.180141002;
    r7.w = r7.z * r7.w + -0.330299497;
    r7.z = r7.z * r7.w + 0.999866009;
    r7.w = r7.z * r6.z;
    r8.w = cmp(1 < abs(r6.x));
    r7.w = r7.w * -2 + 1.57079637;
    r7.w = r8.w ? r7.w : 0;
    r6.z = r6.z * r7.z + r7.w;
    r6.x = min(1, r6.x);
    r6.x = cmp(r6.x < -r6.x);
    r6.x = r6.x ? -r6.z : r6.z;
    r6.x = r6.x * 0.909090877 + 0.74000001;
    r6.x = r6.x * 0.484375 + 0.015625;
    r5.x = 1 + r5.x;
    r6.z = 3.5 * r5.x;
    r6.z = floor(r6.z);
    r5.x = r5.x * 3.5 + -r6.z;
    r6.x = r6.z + r6.x;
    r12.y = 0.125 * r6.x;
    r11.xyzw = t3.SampleLevel(s3_s, r12.ywz, 0).xyzw;
    r7.z = 1 + -r5.x;
    r6.x = 1 + r6.x;
    r12.x = 0.125 * r6.x;
    r13.xyzw = t3.SampleLevel(s3_s, r12.xwz, 0).xyzw;
    r13.xyzw = r13.xyzw * r5.xxxx;
    r11.xyzw = r11.xyzw * r7.zzzz + r13.xyzw;
    r11.xyzw = max(float4(0,0,0,0), r11.xyzw);
    r6.x = cmp(0 < r0.x);
    if (r6.x != 0) {
      r4.xzw = r0.xxx * r3.xyz + r4.xzw;
      r6.x = dot(r4.xzw, r4.xzw);
      r6.x = sqrt(r6.x);
      r7.w = 0.5 / cb0[147].z;
      r7.w = r7.w * r0.y;
      r7.w = sqrt(r7.w);
      r8.w = r0.x / r0.y;
      r8.z = r8.x + r8.w;
      r13.xy = r8.xz * r7.ww;
      r13.zw = cmp(float2(0,0) < r13.xy);
      r14.xy = cmp(r13.xy < float2(0,0));
      r13.zw = (int2)-r13.zw + (int2)r14.xy;
      r13.zw = (int2)r13.zw;
      r14.xyz = r13.xxy * r13.xxy;
      r7.w = cmp(r13.z < r13.w);
      r8.w = 1.44269502 * r14.x;
      r8.w = exp2(r8.w);
      r7.w = r7.w ? r8.w : 0;
      r14.xy = r14.yz * float2(1.51999998,1.51999998) + float2(4,4);
      r14.xy = sqrt(r14.xy);
      r13.xy = abs(r13.xy) * float2(2.31929994,2.31929994) + r14.xy;
      r13.xy = r13.zw / r13.xy;
      r8.w = -r0.x / cb0[147].z;
      r9.w = r0.y + r0.y;
      r13.z = r0.x / r9.w;
      r13.z = r13.z + r8.x;
      r8.w = r13.z * r8.w;
      r8.w = 1.44269502 * r8.w;
      r14.y = exp2(r8.w);
      r14.xz = float2(1,1);
      r13.xy = r14.xy * r13.xy;
      r8.w = cb0[147].z * r0.y;
      r8.w = 6.28310013 * r8.w;
      r8.w = sqrt(r8.w);
      r13.w = 6360 + -r0.y;
      r14.x = r13.w / cb0[147].z;
      r14.x = 1.44269502 * r14.x;
      r14.x = exp2(r14.x);
      r8.w = r14.x * r8.w;
      r13.x = dot(r13.xy, float2(1,-1));
      r7.w = r13.x + r7.w;
      r7.w = r8.w * r7.w;
      r13.xy = float2(0.416666657,7.53972054) * r0.yy;
      r13.xy = sqrt(r13.xy);
      r8.zw = r13.xx * r8.xz;
      r14.xy = cmp(float2(0,0) < r8.zw);
      r15.xy = cmp(r8.zw < float2(0,0));
      r14.xy = (int2)-r14.xy + (int2)r15.xy;
      r14.xy = (int2)r14.xy;
      r15.xyz = r8.zzw * r8.zzw;
      r13.x = cmp(r14.x < r14.y);
      r15.x = 1.44269502 * r15.x;
      r15.x = exp2(r15.x);
      r13.x = r13.x ? r15.x : 0;
      r15.xy = r15.yz * float2(1.51999998,1.51999998) + float2(4,4);
      r15.xy = sqrt(r15.xy);
      r8.zw = abs(r8.zw) * float2(2.31929994,2.31929994) + r15.xy;
      r8.zw = r14.xy / r8.zw;
      r13.z = r13.z * -r0.x;
      r13.z = 1.20224583 * r13.z;
      r14.w = exp2(r13.z);
      r8.zw = r14.zw * r8.zw;
      r13.z = 1.20224583 * r13.w;
      r13.z = exp2(r13.z);
      r13.y = r13.y * r13.z;
      r8.z = dot(r8.zw, float2(1,-1));
      r8.z = r13.x + r8.z;
      r8.z = r13.y * r8.z;
      r8.z = 0.00444444455 * r8.z;
      r13.xyz = r7.www * float3(-0.00579999993,-0.0135000004,-0.0331000015) + -r8.zzz;
      r13.xyz = float3(1.44269502,1.44269502,1.44269502) * r13.xyz;
      r13.xyz = exp2(r13.xyz);
      r7.w = max(r6.x, r0.y);
      r7.w = r0.z ? r7.w : r6.x;
      r8.z = cmp(6360.00977 < r7.w);
      if (r8.z != 0) {
        r8.z = cmp(r8.y < 1);
        if (r8.z != 0) {
          r9.xyz = r0.zzz ? r9.xyz : r3.xyz;
          r8.z = dot(r4.xzw, r9.xyz);
          r8.z = r8.z / r6.x;
          r4.x = dot(r4.xzw, cb0[145].xyz);
          r4.x = r4.x / r6.x;
          r4.z = r7.w * r7.w;
          r4.w = r7.w * r7.w + -40449600;
          r4.w = sqrt(r4.w);
          r6.x = r8.z * r7.w;
          r4.z = r6.x * r6.x + -r4.z;
          r4.z = 40449600 + r4.z;
          r7.w = cmp(r6.x < 0);
          r8.z = cmp(0 < r4.z);
          r7.w = r7.w ? r8.z : 0;
          r14.xyzw = r7.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
          r7.w = r4.w * r6.w;
          r15.y = r7.w * 0.00105685578 + r7.y;
          r4.zw = r14.yz + r4.zw;
          r4.z = sqrt(r4.z);
          r4.z = r6.x * r14.x + r4.z;
          r4.z = r4.z / r4.w;
          r15.x = r4.z * 0.4921875 + r14.w;
          r4.x = max(-0.197500005, r4.x);
          r4.x = 5.34962368 * r4.x;
          r4.z = min(1, abs(r4.x));
          r4.w = max(1, abs(r4.x));
          r4.w = 1 / r4.w;
          r4.z = r4.z * r4.w;
          r4.w = r4.z * r4.z;
          r6.x = r4.w * 0.0208350997 + -0.0851330012;
          r6.x = r4.w * r6.x + 0.180141002;
          r6.x = r4.w * r6.x + -0.330299497;
          r4.w = r4.w * r6.x + 0.999866009;
          r6.x = r4.z * r4.w;
          r7.w = cmp(1 < abs(r4.x));
          r6.x = r6.x * -2 + 1.57079637;
          r6.x = r7.w ? r6.x : 0;
          r4.z = r4.z * r4.w + r6.x;
          r4.x = min(1, r4.x);
          r4.x = cmp(r4.x < -r4.x);
          r4.x = r4.x ? -r4.z : r4.z;
          r4.x = r4.x * 0.909090877 + 0.74000001;
          r4.x = r4.x * 0.484375 + r6.z;
          r4.xz = float2(0.015625,1.015625) + r4.xx;
          r15.zw = float2(0.125,0.125) * r4.xz;
          r14.xyzw = t3.SampleLevel(s3_s, r15.zxy, 0).xyzw;
          r16.xyzw = t3.SampleLevel(s3_s, r15.wxy, 0).xyzw;
          r16.xyzw = r16.xyzw * r5.xxxx;
          r14.xyzw = r14.xyzw * r7.zzzz + r16.xyzw;
          r14.xyzw = -r13.xyzx * r14.xyzw + r11.xyzw;
          r11.xyzw = max(float4(0,0,0,0), r14.xyzw);
          if (r0.z == 0) {
            r4.x = r8.x + r5.z;
            r4.z = cmp(abs(r4.x) < 0.00499999989);
            if (r4.z != 0) {
              r4.x = 0.00499999989 + r4.x;
              r4.x = 100 * r4.x;
              r4.z = -0.00499999989 + -r5.z;
              r4.w = r0.x * r0.x + r0.w;
              r5.z = r9.w * r0.x;
              r6.x = r5.z * r4.z + r4.w;
              r6.x = sqrt(r6.x);
              r6.z = r4.z * r0.y;
              r4.z = r0.y * r4.z + r0.x;
              r4.z = r4.z / r6.x;
              r4.z = max(r6.y, r4.z);
              r7.w = r6.z * r6.z + -r0.w;
              r7.w = 40449600 + r7.w;
              r8.x = cmp(r6.z < 0);
              r8.z = cmp(0 < r7.w);
              r8.x = r8.z ? r8.x : 0;
              r9.xyzw = r8.xxxx ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r7.w = r9.y + r7.w;
              r7.w = sqrt(r7.w);
              r6.z = r6.z * r9.x + r7.w;
              r7.w = r9.z + r5.w;
              r6.z = r6.z / r7.w;
              r9.x = r6.z * 0.4921875 + r9.w;
              r9.yz = r12.yz;
              r14.xyzw = t3.SampleLevel(s3_s, r9.yxz, 0).xyzw;
              r12.y = r9.x;
              r16.xyzw = t3.SampleLevel(s3_s, r12.xyz, 0).xyzw;
              r16.xyzw = r16.xyzw * r5.xxxx;
              r14.xyzw = r14.xyzw * r7.zzzz + r16.xyzw;
              r6.z = r6.x * r6.x;
              r7.w = r6.x * r6.x + -40449600;
              r7.w = sqrt(r7.w);
              r4.z = r6.x * r4.z;
              r6.x = r4.z * r4.z + -r6.z;
              r6.x = 40449600 + r6.x;
              r6.z = cmp(r4.z < 0);
              r8.x = cmp(0 < r6.x);
              r6.z = r6.z ? r8.x : 0;
              r16.xyzw = r6.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r6.z = r7.w * r6.w;
              r15.y = r6.z * 0.00105685578 + r7.y;
              r6.x = r16.y + r6.x;
              r6.x = sqrt(r6.x);
              r4.z = r4.z * r16.x + r6.x;
              r6.x = r16.z + r7.w;
              r4.z = r4.z / r6.x;
              r15.x = r4.z * 0.4921875 + r16.w;
              r16.xyzw = t3.SampleLevel(s3_s, r15.zxy, 0).xyzw;
              r17.xyzw = t3.SampleLevel(s3_s, r15.wxy, 0).xyzw;
              r17.xyzw = r17.xyzw * r5.xxxx;
              r16.xyzw = r16.xyzw * r7.zzzz + r17.xyzw;
              r14.xyzw = -r13.xyzx * r16.xyzw + r14.xyzw;
              r14.xyzw = max(float4(0,0,0,0), r14.xyzw);
              r4.z = r5.z * r6.y + r4.w;
              r4.z = sqrt(r4.z);
              r4.w = r6.y * r0.y;
              r0.x = r0.y * r6.y + r0.x;
              r0.x = r0.x / r4.z;
              r0.x = max(r6.y, r0.x);
              r5.z = r4.w * r4.w + -r0.w;
              r5.z = 40449600 + r5.z;
              r6.x = cmp(r4.w < 0);
              r6.y = cmp(0 < r5.z);
              r6.x = r6.y ? r6.x : 0;
              r16.xyzw = r6.xxxx ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r5.z = r16.y + r5.z;
              r5.z = sqrt(r5.z);
              r4.w = r4.w * r16.x + r5.z;
              r5.z = r16.z + r5.w;
              r4.w = r4.w / r5.z;
              r9.w = r4.w * 0.4921875 + r16.w;
              r16.xyzw = t3.SampleLevel(s3_s, r9.ywz, 0).xyzw;
              r12.w = r9.w;
              r9.xyzw = t3.SampleLevel(s3_s, r12.xwz, 0).xyzw;
              r9.xyzw = r9.xyzw * r5.xxxx;
              r9.xyzw = r16.xyzw * r7.zzzz + r9.xyzw;
              r4.w = r4.z * r4.z;
              r5.z = r4.z * r4.z + -40449600;
              r5.z = sqrt(r5.z);
              r0.x = r4.z * r0.x;
              r4.z = r0.x * r0.x + -r4.w;
              r4.z = 40449600 + r4.z;
              r4.w = cmp(r0.x < 0);
              r6.x = cmp(0 < r4.z);
              r4.w = r4.w ? r6.x : 0;
              r16.xyzw = r4.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r4.w = r5.z * r6.w;
              r15.y = r4.w * 0.00105685578 + r7.y;
              r4.z = r16.y + r4.z;
              r4.z = sqrt(r4.z);
              r0.x = r0.x * r16.x + r4.z;
              r4.z = r16.z + r5.z;
              r0.x = r0.x / r4.z;
              r15.x = r0.x * 0.4921875 + r16.w;
              r6.xyzw = t3.SampleLevel(s3_s, r15.zxy, 0).xyzw;
              r15.xyzw = t3.SampleLevel(s3_s, r15.wxy, 0).xyzw;
              r15.xyzw = r15.xyzw * r5.xxxx;
              r6.xyzw = r6.xyzw * r7.zzzz + r15.xyzw;
              r6.xyzw = -r13.xyzx * r6.xyzw + r9.xyzw;
              r6.xyzw = max(float4(0,0,0,0), r6.xyzw);
              r6.xyzw = r6.xyzw + -r14.xyzw;
              r11.xyzw = r4.xxxx * r6.xyzw + r14.xyzw;
            }
          } else {
            r0.x = cmp(0 < r8.y);
            if (r0.x != 0) {
              r6.xyzw = float4(1,1,1,1) + -r13.xyzx;
              r0.x = r7.x * r0.y;
              r0.y = r0.x * r0.x + -r0.w;
              r0.y = 40449600 + r0.y;
              r0.w = cmp(r0.x < 0);
              r4.x = cmp(0 < r0.y);
              r0.w = r0.w ? r4.x : 0;
              r9.xyzw = r0.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
              r0.y = r9.y + r0.y;
              r0.y = sqrt(r0.y);
              r0.x = r0.x * r9.x + r0.y;
              r0.y = r9.z + r5.w;
              r0.x = r0.x / r0.y;
              r9.y = r0.x * 0.4921875 + r9.w;
              r9.xz = r12.yz;
              r14.xyzw = t3.SampleLevel(s3_s, r9.xyz, 0).xyzw;
              r9.xz = r12.xz;
              r9.xyzw = t3.SampleLevel(s3_s, r9.xyz, 0).xyzw;
              r9.xyzw = r9.xyzw * r5.xxxx;
              r7.xyzw = r14.xyzw * r7.zzzz + r9.xyzw;
              r7.xyzw = max(float4(0,0,0,0), r7.xyzw);
              r6.xyzw = r6.xyzw * r7.xyzw + -r11.xyzw;
              r11.xyzw = r8.yyyy * r6.xyzw + r11.xyzw;
            }
          }
        } else {
          r6.xyzw = float4(1,1,1,1) + -r13.xyzx;
          r11.xyzw = r6.xyzw * r11.xyzw;
        }
      }
    } else {
      r13.xyz = float3(1,1,1);
    }
    r0.x = saturate(50 * r5.y);
    r0.y = r0.x * -2 + 3;
    r0.x = r0.x * r0.x;
    r0.x = r0.y * r0.x;
    r0.x = r11.w * r0.x;
    r0.xyw = r11.xyz * r0.xxx;
    r4.x = max(9.99999975e-05, r11.x);
    r0.xyw = r0.xyw / r4.xxx;
    r10.yzw = float3(1,0.429629624,0.175226584);
    r0.xyw = r0.xyw * r10.yxx;
    r0.xyw = r0.xyw * r10.xzw;
    r0.xyw = r11.xyz * r3.www + r0.xyw;
    r0.xyw = max(float3(0,0,0), r0.xyw);
  } else {
    r13.xyz = float3(1,1,1);
    r0.xyw = float3(0,0,0);
  }
  r3.w = cmp(0 < r2.x);
  if (r3.w != 0) {
    r1.xyw = r2.xxx * r3.xyz + r1.xyw;
    r2.x = dot(r1.xyw, r1.xyw);
    r2.x = sqrt(r2.x);
    r1.xyw = r1.xyw / r2.xxx;
    r4.x = dot(r1.xyw, cb0[145].xyz);
    r2.x = -6360 + r2.x;
    r5.z = 0.0142857144 * r2.x;
    r6.y = sqrt(r5.z);
    r4.zw = float2(0.150000006,0.200000003) + r4.xx;
    r5.xy = float2(12.262105,0.833333313) * r4.zw;
    r2.x = min(1, abs(r5.x));
    r4.z = max(1, abs(r5.x));
    r4.z = 1 / r4.z;
    r2.x = r4.z * r2.x;
    r4.z = r2.x * r2.x;
    r4.w = r4.z * 0.0208350997 + -0.0851330012;
    r4.w = r4.z * r4.w + 0.180141002;
    r4.w = r4.z * r4.w + -0.330299497;
    r4.z = r4.z * r4.w + 0.999866009;
    r4.w = r4.z * r2.x;
    r5.w = cmp(1 < abs(r5.x));
    r4.w = r4.w * -2 + 1.57079637;
    r4.w = r5.w ? r4.w : 0;
    r2.x = r2.x * r4.z + r4.w;
    r4.z = min(1, r5.x);
    r4.z = cmp(r4.z < -r4.z);
    r2.x = r4.z ? -r2.x : r2.x;
    r6.x = 0.666666687 * r2.x;
    r6.xyz = t1.SampleLevel(s1_s, r6.xy, 0).xyz;
    r6.xyz = r0.zzz ? float3(0,0,0) : r6.xyz;
    r5.xyz = t2.SampleLevel(s2_s, r5.yz, 0).xyz;
    r2.x = max(0, r4.x);
    r4.xzw = r2.xxx * r6.xyz + r5.xyz;
    r4.xzw = float3(0.00318309898,0.00318309898,0.00318309898) * r4.xzw;
    r5.xyz = -v1.xyz * r1.zzz + cb0[145].xyz;
    r1.z = dot(r5.xyz, r5.xyz);
    r1.z = rsqrt(r1.z);
    r5.xyz = r5.xyz * r1.zzz;
    r1.z = dot(-r3.xyz, r5.xyz);
    r1.z = 1 + -r1.z;
    r2.x = r1.z * r1.z;
    r2.x = r2.x * r2.x;
    r1.z = r2.x * r1.z;
    r1.z = r1.z * 0.980000019 + 0.0199999996;
    r1.x = dot(r5.xyz, r1.xyw);
    r1.x = max(0, r1.x);
    r1.x = log2(r1.x);
    r1.x = 150 * r1.x;
    r1.x = exp2(r1.x);
    r1.x = r1.z * r1.x;
    r1.x = max(0, r1.x);
    r1.xyz = r1.xxx * r6.xyz + r4.xzw;
    r1.xyz = r0.zzz ? r4.xzw : r1.xyz;
    r1.xyz = r13.xyz * r1.xyz;
  } else {
    r1.xyz = float3(0,0,0);
  }
  r0.z = cmp(6430 >= r2.z);
  r2.xz = float2(-6360,0.150000006) + r2.zw;
  r2.xz = float2(0.0142857144,12.262105) * r2.xz;
  r5.y = sqrt(r2.x);
  r1.w = min(1, abs(r2.z));
  r2.x = max(1, abs(r2.z));
  r2.x = 1 / r2.x;
  r1.w = r2.x * r1.w;
  r2.x = r1.w * r1.w;
  r2.w = r2.x * 0.0208350997 + -0.0851330012;
  r2.w = r2.x * r2.w + 0.180141002;
  r2.w = r2.x * r2.w + -0.330299497;
  r2.x = r2.x * r2.w + 0.999866009;
  r2.w = r2.x * r1.w;
  r4.x = cmp(1 < abs(r2.z));
  r2.w = r2.w * -2 + 1.57079637;
  r2.w = r4.x ? r2.w : 0;
  r1.w = r1.w * r2.x + r2.w;
  r2.x = min(1, r2.z);
  r2.x = cmp(r2.x < -r2.x);
  r1.w = r2.x ? -r1.w : r1.w;
  r5.x = 0.666666687 * r1.w;
  r2.xzw = t1.SampleLevel(s1_s, r5.xy, 0).xyz;
  r2.xzw = r0.zzz ? r2.xzw : float3(1,1,1);
  r0.z = 0.0174532942 * cb0[148].y;
  r0.z = cos(r0.z);
  r1.w = dot(r3.xyz, cb0[145].xyz);
  r0.z = cmp(r1.w >= r0.z);
  r0.z = r0.z ? 1.000000 : 0;
  r2.xzw = r2.xzw * r0.zzz;
  r2.xzw = r3.www ? float3(0,0,0) : r2.xzw;
  r1.xyz = r2.xzw + r1.xyz;
  r0.xyz = r1.xyz + r0.xyw;
  r0.w = cb0[145].w * r2.y;
  r1.xyz = cb0[149].xyz * r0.www;
  o0.xyz = r1.xyz * r0.xyz;
  r0.x = saturate(r13.x * cb0[146].y + -cb0[146].z);
  r0.y = 1 + -r4.y;
  r0.z = 1 + -r0.x;
  o0.w = r0.y * r0.z + r0.x;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Mon Jun 16 19:39:25 2025
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xy          0     NONE   float   xy
// TEXCOORD                 1   xyzw        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[150], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture3d (float,float,float,float) t3
dcl_input_ps linear v0.xy
dcl_input_ps linear v1.xyz
dcl_output o0.xyzw
dcl_temps 18
sample_l_indexable(texture2d)(float,float,float,float) r0.x, v0.xyxx, t0.xyzw, s0, l(0.000000)
mad r0.y, r0.x, cb0[53].x, cb0[53].y
mad r0.x, r0.x, cb0[53].z, -cb0[53].w
div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x
add r0.x, r0.x, r0.y
mul r0.yz, cb0[147].xxxx, l(0.000000, 0.000010, 100.000000, 0.000000)
add r0.w, cb0[55].z, -cb0[146].w
mul r0.w, r0.w, cb0[147].y
mul r1.xy, r0.yyyy, cb0[55].xyxx
mad r1.w, r0.w, r0.y, l(6360.009766)
dp3 r0.w, r1.xywx, r1.xywx
sqrt r2.z, r0.w
dp3 r1.z, v1.xyzx, v1.xyzx
rsq r1.z, r1.z
mul r3.xyz, r1.zzzz, v1.xyzx
dp3 r4.x, r1.xywx, r3.xyzx
div r2.w, r4.x, r2.z
mad r4.y, r2.w, r2.w, l(-1.000000)
mad r4.yz, r0.wwww, r4.yyyy, l(0.000000, 40449600.000000, 41344900.000000, 0.000000)
sqrt r4.yz, r4.yyzy
add r5.xy, -r4.yzyy, -r4.xxxx
mul r0.w, r0.y, r0.x
mad r4.x, r0.x, r0.y, -cb0[147].w
max r4.x, r4.x, l(0.000000)
mul r4.y, r4.x, l(0.100000)
div r4.y, r4.y, cb0[147].w
min r4.y, r4.y, l(1.000000)
lt r0.z, r0.w, r0.z
mul r6.y, r4.y, cb0[146].x
mad r0.x, r0.x, r0.y, cb0[148].x
max r6.x, r0.x, l(1.000000)
mov r5.z, l(1.000000)
movc r2.xy, r0.zzzz, r6.xyxx, r5.xzxx
lt r0.x, l(0.000000), r5.y
mad r5.xzw, r5.yyyy, r3.xxyz, r1.xxyw
add r6.x, -r5.y, r2.x
mul r6.z, r4.z, l(-0.000155520989)
movc r5.xyz, r0.xxxx, r5.xzwx, r1.xywx
mov r6.y, l(6430.000000)
movc r0.xyw, r0.xxxx, r6.xyxz, r2.xzxw
lt r4.z, r0.y, l(6360.014648)
add r4.w, -r0.y, l(6360.014648)
mad r6.xyz, -r4.wwww, r3.xyzx, r5.xyzx
add r7.x, r0.x, -r4.w
dp3 r4.w, r6.xyzx, r3.xyzx
mul r7.z, r4.w, l(0.000157232338)
mov r7.y, l(6360.014648)
movc r0.xyw, r4.zzzz, r7.xyxz, r0.xyxw
ge r4.w, l(6430.000000), r0.y
lt r4.x, l(0.000000), r4.x
and r4.x, r4.x, r4.w
if_nz r4.x
  movc r4.xzw, r4.zzzz, r6.xxyz, r5.xxyz
  dp3 r5.x, r3.xyzx, cb0[145].xyzx
  dp3 r5.y, r4.xzwx, cb0[145].xyzx
  div r5.y, r5.y, r0.y
  div r5.z, l(6360.000000), r0.y
  mad r5.z, -r5.z, r5.z, l(1.000000)
  sqrt r5.z, r5.z
  add r6.xy, -r5.zzzz, l(0.155000, 0.005000, 0.000000, 0.000000)
  max r6.xz, r0.wwww, r6.xxyx
  movc r7.x, r0.z, r6.x, r6.z
  mul r0.w, r3.z, l(-1.442695)
  exp r0.w, r0.w
  add_sat r8.y, r0.w, l(-0.500000)
  lt r0.w, r8.y, l(1.000000)
  max r3.w, r3.z, l(0.150000)
  dp3 r5.w, r3.xywx, r3.xywx
  rsq r5.w, r5.w
  mul r9.xyz, r3.xywx, r5.wwww
  mad r6.xzw, r0.xxxx, r9.xxyz, r4.xxzw
  dp3 r3.w, r6.xzwx, r6.xzwx
  sqrt r3.w, r3.w
  dp3 r5.w, r6.xzwx, r9.xyzx
  div r9.w, r5.w, r3.w
  mov r7.yzw, r3.xxyz
  movc r9.xyzw, r0.wwww, r9.xyzw, r7.yzwx
  mov r8.x, r9.w
  mov r7.y, l(0)
  movc r8.xy, r0.zzzz, r8.xyxx, r7.xyxx
  mad r0.w, r5.x, r5.x, l(1.000000)
  mul r3.w, r0.w, l(0.0596831031)
  mad r5.w, -r5.x, l(1.600000), l(1.640000)
  log r5.w, |r5.w|
  mul r5.w, r5.w, l(-1.500000)
  exp r5.w, r5.w
  mul r0.w, r0.w, r5.w
  mul r10.x, r0.w, l(0.0162772108)
  mul r0.w, r0.y, r0.y
  mad r5.w, r0.y, r0.y, l(-40449600.000000)
  sqrt r5.w, r5.w
  mul r6.x, r0.y, r8.x
  mad r6.z, r6.x, r6.x, -r0.w
  add r6.z, r6.z, l(40449600.000000)
  lt r6.w, r6.x, l(0.000000)
  lt r7.y, l(0.000000), r6.z
  and r6.w, r6.w, r7.y
  movc r11.xyzw, r6.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
  utof r6.w, cb0[148].w
  div r7.y, l(0.500000), r6.w
  mul r7.z, r5.w, l(0.00105685578)
  div r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w
  add r6.w, -r6.w, l(1.000000)
  mad r12.z, r7.z, r6.w, r7.y
  add r6.z, r6.z, r11.y
  sqrt r6.z, r6.z
  mad r6.x, r6.x, r11.x, r6.z
  add r6.z, r5.w, r11.z
  div r6.x, r6.x, r6.z
  mad r12.w, r6.x, l(0.492187500), r11.w
  max r6.x, r5.y, l(-0.197500)
  mul r6.x, r6.x, l(5.34962368)
  min r6.z, |r6.x|, l(1.000000)
  max r7.z, |r6.x|, l(1.000000)
  div r7.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.z
  mul r6.z, r6.z, r7.z
  mul r7.z, r6.z, r6.z
  mad r7.w, r7.z, l(0.0208350997), l(-0.085133)
  mad r7.w, r7.z, r7.w, l(0.180141)
  mad r7.w, r7.z, r7.w, l(-0.330299497)
  mad r7.z, r7.z, r7.w, l(0.999866)
  mul r7.w, r6.z, r7.z
  lt r8.w, l(1.000000), |r6.x|
  mad r7.w, r7.w, l(-2.000000), l(1.57079637)
  and r7.w, r8.w, r7.w
  mad r6.z, r6.z, r7.z, r7.w
  min r6.x, r6.x, l(1.000000)
  lt r6.x, r6.x, -r6.x
  movc r6.x, r6.x, -r6.z, r6.z
  mad r6.x, r6.x, l(0.909090877), l(0.740000)
  mad r6.x, r6.x, l(0.484375), l(0.015625)
  add r5.x, r5.x, l(1.000000)
  mul r6.z, r5.x, l(3.500000)
  round_ni r6.z, r6.z
  mad r5.x, r5.x, l(3.500000), -r6.z
  add r6.x, r6.x, r6.z
  mul r12.y, r6.x, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r11.xyzw, r12.ywzy, t3.xyzw, s3, l(0.000000)
  add r7.z, -r5.x, l(1.000000)
  add r6.x, r6.x, l(1.000000)
  mul r12.x, r6.x, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r13.xyzw, r12.xwzx, t3.xyzw, s3, l(0.000000)
  mul r13.xyzw, r5.xxxx, r13.xyzw
  mad r11.xyzw, r11.xyzw, r7.zzzz, r13.xyzw
  max r11.xyzw, r11.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  lt r6.x, l(0.000000), r0.x
  if_nz r6.x
    mad r4.xzw, r0.xxxx, r3.xxyz, r4.xxzw
    dp3 r6.x, r4.xzwx, r4.xzwx
    sqrt r6.x, r6.x
    div r7.w, l(0.500000), cb0[147].z
    mul r7.w, r0.y, r7.w
    sqrt r7.w, r7.w
    div r8.w, r0.x, r0.y
    add r8.z, r8.w, r8.x
    mul r13.xy, r7.wwww, r8.xzxx
    lt r13.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r13.xxxy
    lt r14.xy, r13.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    iadd r13.zw, -r13.zzzw, r14.xxxy
    itof r13.zw, r13.zzzw
    mul r14.xyz, r13.xxyx, r13.xxyx
    lt r7.w, r13.z, r13.w
    mul r8.w, r14.x, l(1.442695)
    exp r8.w, r8.w
    and r7.w, r7.w, r8.w
    mad r14.xy, r14.yzyy, l(1.520000, 1.520000, 0.000000, 0.000000), l(4.000000, 4.000000, 0.000000, 0.000000)
    sqrt r14.xy, r14.xyxx
    mad r13.xy, |r13.xyxx|, l(2.319300, 2.319300, 0.000000, 0.000000), r14.xyxx
    div r13.xy, r13.zwzz, r13.xyxx
    div r8.w, -r0.x, cb0[147].z
    add r9.w, r0.y, r0.y
    div r13.z, r0.x, r9.w
    add r13.z, r8.x, r13.z
    mul r8.w, r8.w, r13.z
    mul r8.w, r8.w, l(1.442695)
    exp r14.y, r8.w
    mov r14.xz, l(1.000000,0,1.000000,0)
    mul r13.xy, r13.xyxx, r14.xyxx
    mul r8.w, r0.y, cb0[147].z
    mul r8.w, r8.w, l(6.283100)
    sqrt r8.w, r8.w
    add r13.w, -r0.y, l(6360.000000)
    div r14.x, r13.w, cb0[147].z
    mul r14.x, r14.x, l(1.442695)
    exp r14.x, r14.x
    mul r8.w, r8.w, r14.x
    dp2 r13.x, r13.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r7.w, r7.w, r13.x
    mul r7.w, r7.w, r8.w
    mul r13.xy, r0.yyyy, l(0.416666657, 7.53972054, 0.000000, 0.000000)
    sqrt r13.xy, r13.xyxx
    mul r8.zw, r8.xxxz, r13.xxxx
    lt r14.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r8.zwzz
    lt r15.xy, r8.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
    iadd r14.xy, -r14.xyxx, r15.xyxx
    itof r14.xy, r14.xyxx
    mul r15.xyz, r8.zzwz, r8.zzwz
    lt r13.x, r14.x, r14.y
    mul r15.x, r15.x, l(1.442695)
    exp r15.x, r15.x
    and r13.x, r13.x, r15.x
    mad r15.xy, r15.yzyy, l(1.520000, 1.520000, 0.000000, 0.000000), l(4.000000, 4.000000, 0.000000, 0.000000)
    sqrt r15.xy, r15.xyxx
    mad r8.zw, |r8.zzzw|, l(0.000000, 0.000000, 2.319300, 2.319300), r15.xxxy
    div r8.zw, r14.xxxy, r8.zzzw
    mul r13.z, -r0.x, r13.z
    mul r13.z, r13.z, l(1.20224583)
    exp r14.w, r13.z
    mul r8.zw, r8.zzzw, r14.zzzw
    mul r13.z, r13.w, l(1.20224583)
    exp r13.z, r13.z
    mul r13.y, r13.z, r13.y
    dp2 r8.z, r8.zwzz, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r8.z, r8.z, r13.x
    mul r8.z, r8.z, r13.y
    mul r8.z, r8.z, l(0.00444444455)
    mad r13.xyz, r7.wwww, l(-0.005800, -0.013500, -0.033100, 0.000000), -r8.zzzz
    mul r13.xyz, r13.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
    exp r13.xyz, r13.xyzx
    max r7.w, r0.y, r6.x
    movc r7.w, r0.z, r7.w, r6.x
    lt r8.z, l(6360.009766), r7.w
    if_nz r8.z
      lt r8.z, r8.y, l(1.000000)
      if_nz r8.z
        movc r9.xyz, r0.zzzz, r9.xyzx, r3.xyzx
        dp3 r8.z, r4.xzwx, r9.xyzx
        div r8.z, r8.z, r6.x
        dp3 r4.x, r4.xzwx, cb0[145].xyzx
        div r4.x, r4.x, r6.x
        mul r4.z, r7.w, r7.w
        mad r4.w, r7.w, r7.w, l(-40449600.000000)
        sqrt r4.w, r4.w
        mul r6.x, r7.w, r8.z
        mad r4.z, r6.x, r6.x, -r4.z
        add r4.z, r4.z, l(40449600.000000)
        lt r7.w, r6.x, l(0.000000)
        lt r8.z, l(0.000000), r4.z
        and r7.w, r7.w, r8.z
        movc r14.xyzw, r7.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
        mul r7.w, r6.w, r4.w
        mad r15.y, r7.w, l(0.00105685578), r7.y
        add r4.zw, r4.zzzw, r14.yyyz
        sqrt r4.z, r4.z
        mad r4.z, r6.x, r14.x, r4.z
        div r4.z, r4.z, r4.w
        mad r15.x, r4.z, l(0.492187500), r14.w
        max r4.x, r4.x, l(-0.197500)
        mul r4.x, r4.x, l(5.34962368)
        min r4.z, |r4.x|, l(1.000000)
        max r4.w, |r4.x|, l(1.000000)
        div r4.w, l(1.000000, 1.000000, 1.000000, 1.000000), r4.w
        mul r4.z, r4.w, r4.z
        mul r4.w, r4.z, r4.z
        mad r6.x, r4.w, l(0.0208350997), l(-0.085133)
        mad r6.x, r4.w, r6.x, l(0.180141)
        mad r6.x, r4.w, r6.x, l(-0.330299497)
        mad r4.w, r4.w, r6.x, l(0.999866)
        mul r6.x, r4.w, r4.z
        lt r7.w, l(1.000000), |r4.x|
        mad r6.x, r6.x, l(-2.000000), l(1.57079637)
        and r6.x, r7.w, r6.x
        mad r4.z, r4.z, r4.w, r6.x
        min r4.x, r4.x, l(1.000000)
        lt r4.x, r4.x, -r4.x
        movc r4.x, r4.x, -r4.z, r4.z
        mad r4.x, r4.x, l(0.909090877), l(0.740000)
        mad r4.x, r4.x, l(0.484375), r6.z
        add r4.xz, r4.xxxx, l(0.015625, 0.000000, 1.015625, 0.000000)
        mul r15.zw, r4.xxxz, l(0.000000, 0.000000, 0.125000, 0.125000)
        sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r15.zxyz, t3.xyzw, s3, l(0.000000)
        sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r15.wxyw, t3.xyzw, s3, l(0.000000)
        mul r16.xyzw, r5.xxxx, r16.xyzw
        mad r14.xyzw, r14.xyzw, r7.zzzz, r16.xyzw
        mad r14.xyzw, -r13.xyzx, r14.xyzw, r11.xyzw
        max r11.xyzw, r14.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        if_z r0.z
          add r4.x, r5.z, r8.x
          lt r4.z, |r4.x|, l(0.005000)
          if_nz r4.z
            add r4.x, r4.x, l(0.005000)
            mul r4.x, r4.x, l(100.000000)
            add r4.z, -r5.z, l(-0.005000)
            mad r4.w, r0.x, r0.x, r0.w
            mul r5.z, r0.x, r9.w
            mad r6.x, r5.z, r4.z, r4.w
            sqrt r6.x, r6.x
            mul r6.z, r0.y, r4.z
            mad r4.z, r0.y, r4.z, r0.x
            div r4.z, r4.z, r6.x
            max r4.z, r4.z, r6.y
            mad r7.w, r6.z, r6.z, -r0.w
            add r7.w, r7.w, l(40449600.000000)
            lt r8.x, r6.z, l(0.000000)
            lt r8.z, l(0.000000), r7.w
            and r8.x, r8.z, r8.x
            movc r9.xyzw, r8.xxxx, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r7.w, r7.w, r9.y
            sqrt r7.w, r7.w
            mad r6.z, r6.z, r9.x, r7.w
            add r7.w, r5.w, r9.z
            div r6.z, r6.z, r7.w
            mad r9.x, r6.z, l(0.492187500), r9.w
            mov r9.yz, r12.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r9.yxzy, t3.xyzw, s3, l(0.000000)
            mov r12.y, r9.x
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r12.xyzx, t3.xyzw, s3, l(0.000000)
            mul r16.xyzw, r5.xxxx, r16.xyzw
            mad r14.xyzw, r14.xyzw, r7.zzzz, r16.xyzw
            mul r6.z, r6.x, r6.x
            mad r7.w, r6.x, r6.x, l(-40449600.000000)
            sqrt r7.w, r7.w
            mul r4.z, r4.z, r6.x
            mad r6.x, r4.z, r4.z, -r6.z
            add r6.x, r6.x, l(40449600.000000)
            lt r6.z, r4.z, l(0.000000)
            lt r8.x, l(0.000000), r6.x
            and r6.z, r6.z, r8.x
            movc r16.xyzw, r6.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r6.z, r6.w, r7.w
            mad r15.y, r6.z, l(0.00105685578), r7.y
            add r6.x, r6.x, r16.y
            sqrt r6.x, r6.x
            mad r4.z, r4.z, r16.x, r6.x
            add r6.x, r7.w, r16.z
            div r4.z, r4.z, r6.x
            mad r15.x, r4.z, l(0.492187500), r16.w
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r15.zxyz, t3.xyzw, s3, l(0.000000)
            sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r15.wxyw, t3.xyzw, s3, l(0.000000)
            mul r17.xyzw, r5.xxxx, r17.xyzw
            mad r16.xyzw, r16.xyzw, r7.zzzz, r17.xyzw
            mad r14.xyzw, -r13.xyzx, r16.xyzw, r14.xyzw
            max r14.xyzw, r14.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mad r4.z, r5.z, r6.y, r4.w
            sqrt r4.z, r4.z
            mul r4.w, r0.y, r6.y
            mad r0.x, r0.y, r6.y, r0.x
            div r0.x, r0.x, r4.z
            max r0.x, r0.x, r6.y
            mad r5.z, r4.w, r4.w, -r0.w
            add r5.z, r5.z, l(40449600.000000)
            lt r6.x, r4.w, l(0.000000)
            lt r6.y, l(0.000000), r5.z
            and r6.x, r6.y, r6.x
            movc r16.xyzw, r6.xxxx, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r5.z, r5.z, r16.y
            sqrt r5.z, r5.z
            mad r4.w, r4.w, r16.x, r5.z
            add r5.z, r5.w, r16.z
            div r4.w, r4.w, r5.z
            mad r9.w, r4.w, l(0.492187500), r16.w
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r9.ywzy, t3.xyzw, s3, l(0.000000)
            mov r12.w, r9.w
            sample_l_indexable(texture3d)(float,float,float,float) r9.xyzw, r12.xwzx, t3.xyzw, s3, l(0.000000)
            mul r9.xyzw, r5.xxxx, r9.xyzw
            mad r9.xyzw, r16.xyzw, r7.zzzz, r9.xyzw
            mul r4.w, r4.z, r4.z
            mad r5.z, r4.z, r4.z, l(-40449600.000000)
            sqrt r5.z, r5.z
            mul r0.x, r0.x, r4.z
            mad r4.z, r0.x, r0.x, -r4.w
            add r4.z, r4.z, l(40449600.000000)
            lt r4.w, r0.x, l(0.000000)
            lt r6.x, l(0.000000), r4.z
            and r4.w, r4.w, r6.x
            movc r16.xyzw, r4.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r4.w, r6.w, r5.z
            mad r15.y, r4.w, l(0.00105685578), r7.y
            add r4.z, r4.z, r16.y
            sqrt r4.z, r4.z
            mad r0.x, r0.x, r16.x, r4.z
            add r4.z, r5.z, r16.z
            div r0.x, r0.x, r4.z
            mad r15.x, r0.x, l(0.492187500), r16.w
            sample_l_indexable(texture3d)(float,float,float,float) r6.xyzw, r15.zxyz, t3.xyzw, s3, l(0.000000)
            sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r15.wxyw, t3.xyzw, s3, l(0.000000)
            mul r15.xyzw, r5.xxxx, r15.xyzw
            mad r6.xyzw, r6.xyzw, r7.zzzz, r15.xyzw
            mad r6.xyzw, -r13.xyzx, r6.xyzw, r9.xyzw
            max r6.xyzw, r6.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            add r6.xyzw, -r14.xyzw, r6.xyzw
            mad r11.xyzw, r4.xxxx, r6.xyzw, r14.xyzw
          endif
        else
          lt r0.x, l(0.000000), r8.y
          if_nz r0.x
            add r6.xyzw, -r13.xyzx, l(1.000000, 1.000000, 1.000000, 1.000000)
            mul r0.x, r0.y, r7.x
            mad r0.y, r0.x, r0.x, -r0.w
            add r0.y, r0.y, l(40449600.000000)
            lt r0.w, r0.x, l(0.000000)
            lt r4.x, l(0.000000), r0.y
            and r0.w, r0.w, r4.x
            movc r9.xyzw, r0.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r0.y, r0.y, r9.y
            sqrt r0.y, r0.y
            mad r0.x, r0.x, r9.x, r0.y
            add r0.y, r5.w, r9.z
            div r0.x, r0.x, r0.y
            mad r9.y, r0.x, l(0.492187500), r9.w
            mov r9.xz, r12.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r9.xyzx, t3.xyzw, s3, l(0.000000)
            mov r9.xz, r12.xxzx
            sample_l_indexable(texture3d)(float,float,float,float) r9.xyzw, r9.xyzx, t3.xyzw, s3, l(0.000000)
            mul r9.xyzw, r5.xxxx, r9.xyzw
            mad r7.xyzw, r14.xyzw, r7.zzzz, r9.xyzw
            max r7.xyzw, r7.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mad r6.xyzw, r6.xyzw, r7.xyzw, -r11.xyzw
            mad r11.xyzw, r8.yyyy, r6.xyzw, r11.xyzw
          endif
        endif
      else
        add r6.xyzw, -r13.xyzx, l(1.000000, 1.000000, 1.000000, 1.000000)
        mul r11.xyzw, r11.xyzw, r6.xyzw
      endif
    endif
  else
    mov r13.xyz, l(1.000000,1.000000,1.000000,0)
  endif
  mul_sat r0.x, r5.y, l(50.000000)
  mad r0.y, r0.x, l(-2.000000), l(3.000000)
  mul r0.x, r0.x, r0.x
  mul r0.x, r0.x, r0.y
  mul r0.x, r0.x, r11.w
  mul r0.xyw, r0.xxxx, r11.xyxz
  max r4.x, r11.x, l(0.000100)
  div r0.xyw, r0.xyxw, r4.xxxx
  mov r10.yzw, l(0,1.000000,0.429629624,0.175226584)
  mul r0.xyw, r10.yxyx, r0.xyxw
  mul r0.xyw, r10.xzxw, r0.xyxw
  mad r0.xyw, r11.xyxz, r3.wwww, r0.xyxw
  max r0.xyw, r0.xyxw, l(0.000000, 0.000000, 0.000000, 0.000000)
else
  mov r13.xyz, l(1.000000,1.000000,1.000000,0)
  mov r0.xyw, l(0,0,0,0)
endif
lt r3.w, l(0.000000), r2.x
if_nz r3.w
  mad r1.xyw, r2.xxxx, r3.xyxz, r1.xyxw
  dp3 r2.x, r1.xywx, r1.xywx
  sqrt r2.x, r2.x
  div r1.xyw, r1.xyxw, r2.xxxx
  dp3 r4.x, r1.xywx, cb0[145].xyzx
  add r2.x, r2.x, l(-6360.000000)
  mul r5.z, r2.x, l(0.0142857144)
  sqrt r6.y, r5.z
  add r4.zw, r4.xxxx, l(0.000000, 0.000000, 0.150000, 0.200000)
  mul r5.xy, r4.zwzz, l(12.262105, 0.833333313, 0.000000, 0.000000)
  min r2.x, |r5.x|, l(1.000000)
  max r4.z, |r5.x|, l(1.000000)
  div r4.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.z
  mul r2.x, r2.x, r4.z
  mul r4.z, r2.x, r2.x
  mad r4.w, r4.z, l(0.0208350997), l(-0.085133)
  mad r4.w, r4.z, r4.w, l(0.180141)
  mad r4.w, r4.z, r4.w, l(-0.330299497)
  mad r4.z, r4.z, r4.w, l(0.999866)
  mul r4.w, r2.x, r4.z
  lt r5.w, l(1.000000), |r5.x|
  mad r4.w, r4.w, l(-2.000000), l(1.57079637)
  and r4.w, r5.w, r4.w
  mad r2.x, r2.x, r4.z, r4.w
  min r4.z, r5.x, l(1.000000)
  lt r4.z, r4.z, -r4.z
  movc r2.x, r4.z, -r2.x, r2.x
  mul r6.x, r2.x, l(0.666666687)
  sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r6.xyxx, t1.xyzw, s1, l(0.000000)
  movc r6.xyz, r0.zzzz, l(0,0,0,0), r6.xyzx
  sample_l_indexable(texture2d)(float,float,float,float) r5.xyz, r5.yzyy, t2.xyzw, s2, l(0.000000)
  max r2.x, r4.x, l(0.000000)
  mad r4.xzw, r2.xxxx, r6.xxyz, r5.xxyz
  mul r4.xzw, r4.xxzw, l(0.00318309898, 0.000000, 0.00318309898, 0.00318309898)
  mad r5.xyz, -v1.xyzx, r1.zzzz, cb0[145].xyzx
  dp3 r1.z, r5.xyzx, r5.xyzx
  rsq r1.z, r1.z
  mul r5.xyz, r1.zzzz, r5.xyzx
  dp3 r1.z, -r3.xyzx, r5.xyzx
  add r1.z, -r1.z, l(1.000000)
  mul r2.x, r1.z, r1.z
  mul r2.x, r2.x, r2.x
  mul r1.z, r1.z, r2.x
  mad r1.z, r1.z, l(0.980000), l(0.020000)
  dp3 r1.x, r5.xyzx, r1.xywx
  max r1.x, r1.x, l(0.000000)
  log r1.x, r1.x
  mul r1.x, r1.x, l(150.000000)
  exp r1.x, r1.x
  mul r1.x, r1.x, r1.z
  max r1.x, r1.x, l(0.000000)
  mad r1.xyz, r1.xxxx, r6.xyzx, r4.xzwx
  movc r1.xyz, r0.zzzz, r4.xzwx, r1.xyzx
  mul r1.xyz, r1.xyzx, r13.xyzx
else
  mov r1.xyz, l(0,0,0,0)
endif
ge r0.z, l(6430.000000), r2.z
add r2.xz, r2.zzwz, l(-6360.000000, 0.000000, 0.150000, 0.000000)
mul r2.xz, r2.xxzx, l(0.0142857144, 0.000000, 12.262105, 0.000000)
sqrt r5.y, r2.x
min r1.w, |r2.z|, l(1.000000)
max r2.x, |r2.z|, l(1.000000)
div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
mul r1.w, r1.w, r2.x
mul r2.x, r1.w, r1.w
mad r2.w, r2.x, l(0.0208350997), l(-0.085133)
mad r2.w, r2.x, r2.w, l(0.180141)
mad r2.w, r2.x, r2.w, l(-0.330299497)
mad r2.x, r2.x, r2.w, l(0.999866)
mul r2.w, r1.w, r2.x
lt r4.x, l(1.000000), |r2.z|
mad r2.w, r2.w, l(-2.000000), l(1.57079637)
and r2.w, r4.x, r2.w
mad r1.w, r1.w, r2.x, r2.w
min r2.x, r2.z, l(1.000000)
lt r2.x, r2.x, -r2.x
movc r1.w, r2.x, -r1.w, r1.w
mul r5.x, r1.w, l(0.666666687)
sample_l_indexable(texture2d)(float,float,float,float) r2.xzw, r5.xyxx, t1.xwyz, s1, l(0.000000)
movc r2.xzw, r0.zzzz, r2.xxzw, l(1.000000,0,1.000000,1.000000)
mul r0.z, cb0[148].y, l(0.0174532942)
sincos null, r0.z, r0.z
dp3 r1.w, r3.xyzx, cb0[145].xyzx
ge r0.z, r1.w, r0.z
and r0.z, r0.z, l(0x3f800000)
mul r2.xzw, r0.zzzz, r2.xxzw
movc r2.xzw, r3.wwww, l(0,0,0,0), r2.xxzw
add r1.xyz, r1.xyzx, r2.xzwx
add r0.xyz, r0.xywx, r1.xyzx
mul r0.w, r2.y, cb0[145].w
mul r1.xyz, r0.wwww, cb0[149].xyzx
mul o0.xyz, r0.xyzx, r1.xyzx
mad_sat r0.x, r13.x, cb0[146].y, -cb0[146].z
add r0.y, -r4.y, l(1.000000)
add r0.z, -r0.x, l(1.000000)
mad o0.w, r0.y, r0.z, r0.x
ret
// Approximately 0 instruction slots used

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