// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.198 on Mon Jun 16 19:42:02 2025
//
//
// Buffer Definitions:
//
// cbuffer cb0
// {
//
//   float4 cb0[150];                   // Index:    0-149            Components:   600
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// s0_s                              sampler      NA          NA    0        1
// s1_s                              sampler      NA          NA    1        1
// s2_s                              sampler      NA          NA    2        1
// s3_s                              sampler      NA          NA    3        1
// t0                                texture  float4          2d    0        1
// t1                                texture  float4          2d    1        1
// t2                                texture  float4          2d    2        1
// t3                                texture  float4          3d    3        1
// StereoParams                      texture  float4          2d  125        1
// cb0                               cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        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_resource_buffer (float,float,float,float) t125
dcl_input_ps linear v0.xy
dcl_input_ps linear v1.xyz
dcl_output o0.xyzw
dcl_temps 19
ld_indexable(buffer)(float,float,float,float) r0.x, l(0, 0, 0, 0), t125.xyzw
sample_l_indexable(texture2d)(float,float,float,float) r0.y, v0.xyxx, t0.yxzw, s0, l(0.000000)
mad r0.z, r0.y, cb0[53].x, cb0[53].y
mad r0.y, r0.y, cb0[53].z, -cb0[53].w
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
add r0.y, r0.y, r0.z
mul r0.zw, cb0[147].xxxx, l(0.000000, 0.000000, 0.000010, 100.000000)
add r1.x, cb0[55].z, -cb0[146].w
mul r1.x, r1.x, cb0[147].y
mul r2.xy, r0.zzzz, cb0[55].xyxx
mad r2.z, r1.x, r0.z, l(6360.009766)
mul r1.x, cb0[24].x, cb0[24].x
mul r1.y, -r0.x, cb0[0].x
div r1.y, r1.y, r1.x
add r3.x, r1.y, v1.x
mul r1.y, -r0.x, cb0[1].x
div r1.y, r1.y, r1.x
add r3.y, r1.y, v1.y
mul r0.x, -r0.x, cb0[2].x
div r0.x, r0.x, r1.x
add r3.z, r0.x, v1.z
dp3 r0.x, r2.xyzx, r2.xyzx
sqrt r1.z, r0.x
dp3 r2.w, r3.xyzx, r3.xyzx
rsq r2.w, r2.w
mul r4.xyz, r2.wwww, r3.xyzx
dp3 r3.w, r2.xyzx, r4.xyzx
div r1.w, r3.w, r1.z
mad r5.x, r1.w, r1.w, l(-1.000000)
mad r5.xy, r0.xxxx, r5.xxxx, l(40449600.000000, 41344900.000000, 0.000000, 0.000000)
sqrt r5.xy, r5.xyxx
add r6.xy, -r3.wwww, -r5.xyxx
mul r0.x, r0.z, r0.y
mad r3.w, r0.y, r0.z, -cb0[147].w
max r3.w, r3.w, l(0.000000)
mul r5.x, r3.w, l(0.100000)
div r5.x, r5.x, cb0[147].w
min r5.x, r5.x, l(1.000000)
lt r0.x, r0.x, r0.w
mul r7.y, r5.x, cb0[146].x
mad r0.y, r0.y, r0.z, cb0[148].x
max r7.x, r0.y, l(1.000000)
mov r6.z, l(1.000000)
movc r1.xy, r0.xxxx, r7.xyxx, r6.xzxx
lt r0.y, l(0.000000), r6.y
mad r6.xzw, r6.yyyy, r4.xxyz, r2.xxyz
add r7.x, -r6.y, r1.x
mul r7.z, r5.y, l(-0.000155520989)
movc r5.yzw, r0.yyyy, r6.xxzw, r2.xxyz
mov r7.y, l(6430.000000)
movc r0.yzw, r0.yyyy, r7.xxyz, r1.xxzw
lt r6.x, r0.z, l(6360.014648)
add r6.y, -r0.z, l(6360.014648)
mad r7.xyz, -r6.yyyy, r4.xyzx, r5.yzwy
add r8.x, r0.y, -r6.y
dp3 r6.y, r7.xyzx, r4.xyzx
mul r8.z, r6.y, l(0.000157232338)
mov r8.y, l(6360.014648)
movc r0.yzw, r6.xxxx, r8.xxyz, r0.yyzw
ge r6.y, l(6430.000000), r0.z
and r6.y, r6.y, l(0xbf800000)
lt r3.w, l(0.000000), r3.w
and r3.w, r6.y, r3.w
ne r3.w, r3.w, l(0.000000)
if_nz r3.w
  movc r5.yzw, r6.xxxx, r7.xxyz, r5.yyzw
  dp3 r3.w, r4.xyzx, cb0[145].xyzx
  dp3 r6.x, r5.yzwy, cb0[145].xyzx
  div r6.x, r6.x, r0.z
  div r6.y, l(6360.000000), r0.z
  mad r6.y, -r6.y, r6.y, l(1.000000)
  sqrt r6.y, r6.y
  add r6.zw, -r6.yyyy, l(0.000000, 0.000000, 0.155000, 0.005000)
  max r7.xy, r0.wwww, r6.zwzz
  movc r7.x, r0.x, r7.x, r7.y
  mul r0.w, r4.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 r4.w, r4.z, l(0.150000)
  dp3 r6.z, r4.xywx, r4.xywx
  rsq r6.z, r6.z
  mul r9.xyz, r4.xywx, r6.zzzz
  mad r10.xyz, r0.yyyy, r9.xyzx, r5.yzwy
  dp3 r4.w, r10.xyzx, r10.xyzx
  sqrt r4.w, r4.w
  dp3 r6.z, r10.xyzx, r9.xyzx
  div r9.w, r6.z, r4.w
  mov r7.yzw, r4.xxyz
  movc r9.xyzw, r0.wwww, r9.xyzw, r7.yzwx
  mov r8.x, r9.w
  mov r7.y, l(0)
  movc r8.xy, r0.xxxx, r8.xyxx, r7.xyxx
  mad r0.w, r3.w, r3.w, l(1.000000)
  mul r4.w, r0.w, l(0.0596831031)
  mad r6.z, r3.w, l(-1.600000), l(1.640000)
  log r6.z, |r6.z|
  mul r6.z, r6.z, l(-1.500000)
  exp r6.z, r6.z
  mul r0.w, r0.w, r6.z
  mul r10.x, r0.w, l(0.0162772108)
  mul r0.w, r0.z, r0.z
  mad r6.z, r0.z, r0.z, l(-40449600.000000)
  sqrt r6.z, r6.z
  mul r7.y, r0.z, r8.x
  mad r7.z, r7.y, r7.y, -r0.w
  add r7.z, r7.z, l(40449600.000000)
  lt r7.w, r7.y, l(0.000000)
  lt r8.w, l(0.000000), r7.z
  and r7.w, r7.w, r8.w
  movc r11.xyzw, r7.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
  utof r7.w, cb0[148].w
  div r8.w, l(0.500000), r7.w
  mul r9.w, r6.z, l(0.00105685578)
  div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w
  add r7.w, -r7.w, l(1.000000)
  mad r12.z, r9.w, r7.w, r8.w
  add r7.z, r7.z, r11.y
  sqrt r7.z, r7.z
  mad r7.y, r7.y, r11.x, r7.z
  add r7.z, r6.z, r11.z
  div r7.y, r7.y, r7.z
  mad r12.w, r7.y, l(0.492187500), r11.w
  max r7.y, r6.x, l(-0.197500)
  mul r7.y, r7.y, l(5.34962368)
  min r7.z, |r7.y|, l(1.000000)
  max r9.w, |r7.y|, l(1.000000)
  div r9.w, l(1.000000, 1.000000, 1.000000, 1.000000), r9.w
  mul r7.z, r7.z, r9.w
  mul r9.w, r7.z, r7.z
  mad r11.x, r9.w, l(0.0208350997), l(-0.085133)
  mad r11.x, r9.w, r11.x, l(0.180141)
  mad r11.x, r9.w, r11.x, l(-0.330299497)
  mad r9.w, r9.w, r11.x, l(0.999866)
  mul r11.x, r7.z, r9.w
  lt r11.y, l(1.000000), |r7.y|
  mad r11.x, r11.x, l(-2.000000), l(1.57079637)
  and r11.x, r11.x, r11.y
  mad r7.z, r9.w, r7.z, r11.x
  min r7.y, r7.y, l(1.000000)
  lt r7.y, r7.y, -r7.y
  movc r7.y, r7.y, -r7.z, r7.z
  mad r7.y, r7.y, l(0.909090877), l(0.740000)
  mad r7.y, r7.y, l(0.484375), l(0.015625)
  add r3.w, r3.w, l(1.000000)
  mul r7.z, r3.w, l(3.500000)
  round_ni r7.z, r7.z
  mad r3.w, r3.w, l(3.500000), -r7.z
  add r7.y, r7.y, r7.z
  mul r12.y, r7.y, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r11.xyzw, r12.ywzy, t3.xyzw, s3, l(0.000000)
  add r9.w, -r3.w, l(1.000000)
  add r7.y, r7.y, l(1.000000)
  mul r12.x, r7.y, l(0.125000)
  sample_l_indexable(texture3d)(float,float,float,float) r13.xyzw, r12.xwzx, t3.xyzw, s3, l(0.000000)
  mul r13.xyzw, r3.wwww, r13.xyzw
  mad r11.xyzw, r11.xyzw, r9.wwww, r13.xyzw
  max r11.xyzw, r11.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  lt r7.y, l(0.000000), r0.y
  if_nz r7.y
    mad r5.yzw, r0.yyyy, r4.xxyz, r5.yyzw
    dp3 r7.y, r5.yzwy, r5.yzwy
    sqrt r7.y, r7.y
    div r13.x, l(0.500000), cb0[147].z
    mul r13.x, r0.z, r13.x
    sqrt r13.x, r13.x
    div r13.y, r0.y, r0.z
    add r8.z, r8.x, r13.y
    mul r13.xy, r8.xzxx, r13.xxxx
    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)
    and r13.zw, r13.zzzw, l(0, 0, 1, 1)
    iadd r13.zw, r14.xxxy, r13.zzzw
    itof r13.zw, r13.zzzw
    mul r14.xyz, r13.xxyx, r13.xxyx
    lt r14.w, r13.z, r13.w
    mul r14.x, r14.x, l(1.442695)
    exp r14.x, r14.x
    and r14.x, r14.x, r14.w
    mad r14.yz, r14.yyzy, l(0.000000, 1.520000, 1.520000, 0.000000), l(0.000000, 4.000000, 4.000000, 0.000000)
    sqrt r14.yz, r14.yyzy
    mad r13.xy, |r13.xyxx|, l(2.319300, 2.319300, 0.000000, 0.000000), r14.yzyy
    div r13.xy, r13.zwzz, r13.xyxx
    div r13.z, -r0.y, cb0[147].z
    add r13.w, r0.z, r0.z
    div r14.y, r0.y, r13.w
    add r14.y, r8.x, r14.y
    mul r13.z, r13.z, r14.y
    mul r13.z, r13.z, l(1.442695)
    exp r15.y, r13.z
    mov r15.xz, l(1.000000,0,1.000000,0)
    mul r13.xy, r13.xyxx, r15.xyxx
    mul r13.z, r0.z, cb0[147].z
    mul r13.z, r13.z, l(6.283100)
    sqrt r13.z, r13.z
    add r14.z, -r0.z, l(6360.000000)
    div r14.w, r14.z, cb0[147].z
    mul r14.w, r14.w, l(1.442695)
    exp r14.w, r14.w
    mul r13.z, r13.z, r14.w
    dp2 r13.x, r13.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r13.x, r14.x, r13.x
    mul r13.x, r13.x, r13.z
    mul r13.yz, r0.zzzz, l(0.000000, 0.416666657, 7.53972054, 0.000000)
    sqrt r13.yz, r13.yyzy
    mul r14.xw, r8.xxxz, r13.yyyy
    lt r15.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r14.xwxx
    lt r16.xy, r14.xwxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    and r15.xy, r15.xyxx, l(1, 1, 0, 0)
    iadd r15.xy, r16.xyxx, r15.xyxx
    itof r15.xy, r15.xyxx
    mul r16.xyz, r14.xxwx, r14.xxwx
    lt r8.z, r15.x, r15.y
    mul r13.y, r16.x, l(1.442695)
    exp r13.y, r13.y
    and r8.z, r8.z, r13.y
    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 r14.xw, |r14.xxxw|, l(2.319300, 0.000000, 0.000000, 2.319300), r16.xxxy
    div r14.xw, r15.xxxy, r14.xxxw
    mul r13.y, -r0.y, r14.y
    mul r13.y, r13.y, l(1.20224583)
    exp r15.w, r13.y
    mul r14.xy, r14.xwxx, r15.zwzz
    mul r13.y, r14.z, l(1.20224583)
    exp r13.y, r13.y
    mul r13.y, r13.y, r13.z
    dp2 r13.z, r14.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
    add r8.z, r8.z, r13.z
    mul r8.z, r8.z, r13.y
    mul r8.z, r8.z, l(0.00444444455)
    mad r14.xyzw, r13.xxxx, l(-0.005800, -0.013500, -0.033100, -0.005800), -r8.zzzz
    mul r14.xyzw, r14.xyzw, l(1.442695, 1.442695, 1.442695, 1.442695)
    exp r14.xyzw, r14.wxyz
    max r8.z, r0.z, r7.y
    movc r8.z, r0.x, r8.z, r7.y
    lt r13.x, l(6360.009766), r8.z
    if_nz r13.x
      lt r13.x, r8.y, l(1.000000)
      if_nz r13.x
        movc r9.xyz, r0.xxxx, r9.xyzx, r4.xyzx
        dp3 r9.x, r5.yzwy, r9.xyzx
        div r9.x, r9.x, r7.y
        dp3 r5.y, r5.yzwy, cb0[145].xyzx
        div r5.y, r5.y, r7.y
        mul r5.z, r8.z, r8.z
        mad r5.w, r8.z, r8.z, l(-40449600.000000)
        sqrt r13.y, r5.w
        mul r5.w, r8.z, r9.x
        mad r5.z, r5.w, r5.w, -r5.z
        add r13.x, r5.z, l(40449600.000000)
        lt r5.z, r5.w, l(0.000000)
        lt r7.y, l(0.000000), r13.x
        and r5.z, r5.z, r7.y
        movc r15.xyzw, r5.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
        mul r5.z, r7.w, r13.y
        mad r16.y, r5.z, l(0.00105685578), r8.w
        add r9.xy, r13.xyxx, r15.yzyy
        sqrt r5.z, r9.x
        mad r5.z, r5.w, r15.x, r5.z
        div r5.z, r5.z, r9.y
        mad r16.x, r5.z, l(0.492187500), r15.w
        max r5.y, r5.y, l(-0.197500)
        mul r5.y, r5.y, l(5.34962368)
        min r5.z, |r5.y|, l(1.000000)
        max r5.w, |r5.y|, l(1.000000)
        div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), r5.w
        mul r5.z, r5.w, r5.z
        mul r5.w, r5.z, r5.z
        mad r7.y, r5.w, l(0.0208350997), l(-0.085133)
        mad r7.y, r5.w, r7.y, l(0.180141)
        mad r7.y, r5.w, r7.y, l(-0.330299497)
        mad r5.w, r5.w, r7.y, l(0.999866)
        mul r7.y, r5.w, r5.z
        lt r8.z, l(1.000000), |r5.y|
        mad r7.y, r7.y, l(-2.000000), l(1.57079637)
        and r7.y, r7.y, r8.z
        mad r5.z, r5.z, r5.w, r7.y
        min r5.y, r5.y, l(1.000000)
        lt r5.y, r5.y, -r5.y
        movc r5.y, r5.y, -r5.z, r5.z
        mad r5.y, r5.y, l(0.909090877), l(0.740000)
        mad r5.y, r5.y, l(0.484375), r7.z
        add r5.yz, r5.yyyy, l(0.000000, 0.015625, 1.015625, 0.000000)
        mul r16.zw, r5.yyyz, l(0.000000, 0.000000, 0.125000, 0.125000)
        sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r16.zxyz, t3.xyzw, s3, l(0.000000)
        sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r16.wxyw, t3.xyzw, s3, l(0.000000)
        mul r17.xyzw, r3.wwww, r17.xyzw
        mad r15.xyzw, r15.xyzw, r9.wwww, r17.xyzw
        mad r15.xyzw, -r14.xzwx, r15.xyzw, r11.xyzw
        max r11.xyzw, r15.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        if_z r0.x
          add r5.y, r6.y, r8.x
          lt r5.z, |r5.y|, l(0.005000)
          if_nz r5.z
            add r5.y, r5.y, l(0.005000)
            mul r5.y, r5.y, l(100.000000)
            add r5.z, -r6.y, l(-0.005000)
            mad r5.w, r0.y, r0.y, r0.w
            mul r6.y, r0.y, r13.w
            mad r7.y, r6.y, r5.z, r5.w
            sqrt r7.y, r7.y
            mul r7.z, r0.z, r5.z
            mad r5.z, r5.z, r0.z, r0.y
            div r5.z, r5.z, r7.y
            max r5.z, r5.z, r6.w
            mad r8.x, r7.z, r7.z, -r0.w
            add r8.x, r8.x, l(40449600.000000)
            lt r8.z, r7.z, l(0.000000)
            and r8.z, r8.z, l(0xbf800000)
            lt r9.x, l(0.000000), r8.x
            and r8.z, r8.z, r9.x
            ne r8.z, l(0.000000, 0.000000, 0.000000, 0.000000), r8.z
            movc r13.xyzw, r8.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r8.x, r8.x, r13.y
            sqrt r8.x, r8.x
            mad r7.z, r7.z, r13.x, r8.x
            add r8.x, r6.z, r13.z
            div r7.z, r7.z, r8.x
            mad r13.x, r7.z, l(0.492187500), r13.w
            mov r13.yz, r12.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r13.yxzy, t3.xyzw, s3, l(0.000000)
            mov r12.y, r13.x
            sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r12.xyzx, t3.xyzw, s3, l(0.000000)
            mul r17.xyzw, r3.wwww, r17.xyzw
            mad r15.xyzw, r15.xyzw, r9.wwww, r17.xyzw
            mul r7.z, r7.y, r7.y
            mad r8.x, r7.y, r7.y, l(-40449600.000000)
            sqrt r8.x, r8.x
            mul r5.z, r5.z, r7.y
            mad r7.y, r5.z, r5.z, -r7.z
            add r7.y, r7.y, l(40449600.000000)
            lt r7.z, r5.z, l(0.000000)
            lt r8.z, l(0.000000), r7.y
            and r7.z, r7.z, r8.z
            movc r17.xyzw, r7.zzzz, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r7.z, r7.w, r8.x
            mad r16.y, r7.z, l(0.00105685578), r8.w
            add r7.y, r7.y, r17.y
            sqrt r7.y, r7.y
            mad r5.z, r5.z, r17.x, r7.y
            add r7.y, r8.x, r17.z
            div r5.z, r5.z, r7.y
            mad r16.x, r5.z, l(0.492187500), r17.w
            sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r16.zxyz, t3.xyzw, s3, l(0.000000)
            sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r16.wxyw, t3.xyzw, s3, l(0.000000)
            mul r18.xyzw, r3.wwww, r18.xyzw
            mad r17.xyzw, r17.xyzw, r9.wwww, r18.xyzw
            mad r15.xyzw, -r14.xzwx, r17.xyzw, r15.xyzw
            max r15.xyzw, r15.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mad r5.z, r6.y, r6.w, r5.w
            sqrt r5.z, r5.z
            mul r5.w, r0.z, r6.w
            mad r0.y, r6.w, r0.z, r0.y
            div r0.y, r0.y, r5.z
            max r0.y, r0.y, r6.w
            mad r6.y, r5.w, r5.w, -r0.w
            add r6.y, r6.y, l(40449600.000000)
            lt r6.w, r5.w, l(0.000000)
            and r6.w, r6.w, l(0xbf800000)
            lt r7.y, l(0.000000), r6.y
            and r6.w, r6.w, r7.y
            ne r6.w, l(0.000000, 0.000000, 0.000000, 0.000000), r6.w
            movc r17.xyzw, r6.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r6.y, r6.y, r17.y
            sqrt r6.y, r6.y
            mad r5.w, r5.w, r17.x, r6.y
            add r6.y, r6.z, r17.z
            div r5.w, r5.w, r6.y
            mad r13.w, r5.w, l(0.492187500), r17.w
            sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r13.ywzy, t3.xyzw, s3, l(0.000000)
            mov r12.w, r13.w
            sample_l_indexable(texture3d)(float,float,float,float) r13.xyzw, r12.xwzx, t3.xyzw, s3, l(0.000000)
            mul r13.xyzw, r3.wwww, r13.xyzw
            mad r13.xyzw, r17.xyzw, r9.wwww, r13.xyzw
            mul r5.w, r5.z, r5.z
            mad r6.y, r5.z, r5.z, l(-40449600.000000)
            sqrt r6.y, r6.y
            mul r0.y, r0.y, r5.z
            mad r5.z, r0.y, r0.y, -r5.w
            add r5.z, r5.z, l(40449600.000000)
            lt r5.w, r0.y, l(0.000000)
            lt r6.w, l(0.000000), r5.z
            and r5.w, r5.w, r6.w
            movc r17.xyzw, r5.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            mul r5.w, r7.w, r6.y
            mad r16.y, r5.w, l(0.00105685578), r8.w
            add r5.z, r5.z, r17.y
            sqrt r5.z, r5.z
            mad r0.y, r0.y, r17.x, r5.z
            add r5.z, r6.y, r17.z
            div r0.y, r0.y, r5.z
            mad r16.x, r0.y, l(0.492187500), r17.w
            sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r16.zxyz, t3.xyzw, s3, l(0.000000)
            sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r16.wxyw, t3.xyzw, s3, l(0.000000)
            mul r16.xyzw, r3.wwww, r16.xyzw
            mad r16.xyzw, r17.xyzw, r9.wwww, r16.xyzw
            mad r13.xyzw, -r14.xzwx, r16.xyzw, r13.xyzw
            max r13.xyzw, r13.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            add r13.xyzw, -r15.xyzw, r13.xyzw
            mad r11.xyzw, r5.yyyy, r13.xyzw, r15.xyzw
          endif
        else
          lt r0.y, l(0.000000), r8.y
          if_nz r0.y
            add r13.xyzw, -r14.xzwx, l(1.000000, 1.000000, 1.000000, 1.000000)
            mul r0.y, r0.z, r7.x
            mad r0.z, r0.y, r0.y, -r0.w
            add r0.z, r0.z, l(40449600.000000)
            lt r0.w, r0.y, l(0.000000)
            lt r5.y, l(0.000000), r0.z
            and r0.w, r0.w, r5.y
            movc r7.xyzw, r0.wwww, l(1.000000,0,0,0.496093750), l(-1.000000,895300.000000,946.202942,0.503906250)
            add r0.z, r0.z, r7.y
            sqrt r0.z, r0.z
            mad r0.y, r0.y, r7.x, r0.z
            add r0.z, r6.z, r7.z
            div r0.y, r0.y, r0.z
            mad r7.y, r0.y, l(0.492187500), r7.w
            mov r7.xz, r12.yyzy
            sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r7.xyzx, t3.xyzw, s3, l(0.000000)
            mov r7.xz, r12.xxzx
            sample_l_indexable(texture3d)(float,float,float,float) r7.xyzw, r7.xyzx, t3.xyzw, s3, l(0.000000)
            mul r7.xyzw, r3.wwww, r7.xyzw
            mad r7.xyzw, r15.xyzw, r9.wwww, r7.xyzw
            max r7.xyzw, r7.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
            mad r7.xyzw, r13.xyzw, r7.xyzw, -r11.xyzw
            mad r11.xyzw, r8.yyyy, r7.xyzw, r11.xyzw
          endif
        endif
      else
        add r7.xyzw, -r14.yzwx, l(1.000000, 1.000000, 1.000000, 1.000000)
        mul r11.xyzw, r11.xyzw, r7.xyzw
      endif
    endif
    mov r14.xyz, r14.xzwx
  else
    mov r14.xyz, l(1.000000,1.000000,1.000000,0)
  endif
  mul_sat r0.y, r6.x, l(50.000000)
  mad r0.z, r0.y, l(-2.000000), l(3.000000)
  mul r0.y, r0.y, r0.y
  mul r0.y, r0.y, r0.z
  mul r0.y, r0.y, r11.w
  mul r0.yzw, r0.yyyy, r11.xxyz
  max r3.w, r11.x, l(0.000100)
  div r0.yzw, r0.yyzw, r3.wwww
  mov r10.yzw, l(0,1.000000,0.429629624,0.175226584)
  mul r0.yzw, r10.yyxx, r0.yyzw
  mul r0.yzw, r10.xxzw, r0.yyzw
  mad r0.yzw, r11.xxyz, r4.wwww, r0.yyzw
  max r0.yzw, r0.yyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
else
  mov r0.yzw, l(0,0,0,0)
  mov r14.xyz, l(1.000000,1.000000,1.000000,0)
endif
lt r3.w, l(0.000000), r1.x
if_nz r3.w
  mad r2.xyz, r1.xxxx, r4.xyzx, r2.xyzx
  dp3 r1.x, r2.xyzx, r2.xyzx
  sqrt r1.x, r1.x
  div r2.xyz, r2.xyzx, r1.xxxx
  dp3 r4.w, r2.xyzx, cb0[145].xyzx
  add r1.x, r1.x, l(-6360.000000)
  mul r6.z, r1.x, l(0.0142857144)
  sqrt r7.y, r6.z
  add r5.yz, r4.wwww, l(0.000000, 0.150000, 0.200000, 0.000000)
  mul r6.xy, r5.yzyy, l(12.262105, 0.833333313, 0.000000, 0.000000)
  min r1.x, |r6.x|, l(1.000000)
  max r5.y, |r6.x|, l(1.000000)
  div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y
  mul r1.x, r1.x, r5.y
  mul r5.y, r1.x, r1.x
  mad r5.z, r5.y, l(0.0208350997), l(-0.085133)
  mad r5.z, r5.y, r5.z, l(0.180141)
  mad r5.z, r5.y, r5.z, l(-0.330299497)
  mad r5.y, r5.y, r5.z, l(0.999866)
  mul r5.z, r1.x, r5.y
  lt r5.w, l(1.000000), |r6.x|
  mad r5.z, r5.z, l(-2.000000), l(1.57079637)
  and r5.z, r5.z, r5.w
  mad r1.x, r5.y, r1.x, r5.z
  min r5.y, r6.x, l(1.000000)
  lt r5.y, r5.y, -r5.y
  movc r1.x, r5.y, -r1.x, r1.x
  mul r7.x, r1.x, l(0.666666687)
  sample_l_indexable(texture2d)(float,float,float,float) r5.yzw, r7.xyxx, t1.wxyz, s1, l(0.000000)
  movc r5.yzw, r0.xxxx, l(0,0,0,0), r5.yyzw
  sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r6.yzyy, t2.xyzw, s2, l(0.000000)
  max r1.x, r4.w, l(0.000000)
  mad r6.xyz, r1.xxxx, r5.yzwy, r6.xyzx
  mul r6.xyz, r6.xyzx, l(0.00318309898, 0.00318309898, 0.00318309898, 0.000000)
  mad r3.xyz, -r3.xyzx, r2.wwww, cb0[145].xyzx
  dp3 r1.x, r3.xyzx, r3.xyzx
  rsq r1.x, r1.x
  mul r3.xyz, r1.xxxx, r3.xyzx
  dp3 r1.x, -r4.xyzx, r3.xyzx
  add r1.x, -r1.x, l(1.000000)
  mul r2.w, r1.x, r1.x
  mul r2.w, r2.w, r2.w
  mul r1.x, r1.x, r2.w
  mad r1.x, r1.x, l(0.980000), l(0.020000)
  dp3 r2.x, r3.xyzx, r2.xyzx
  max r2.x, r2.x, l(0.000000)
  log r2.x, r2.x
  mul r2.x, r2.x, l(150.000000)
  exp r2.x, r2.x
  mul r1.x, r1.x, r2.x
  max r1.x, r1.x, l(0.000000)
  mad r2.xyz, r1.xxxx, r5.yzwy, r6.xyzx
  movc r2.xyz, r0.xxxx, r6.xyzx, r2.xyzx
  mul r2.xyz, r2.xyzx, r14.xyzx
else
  mov r2.xyz, l(0,0,0,0)
endif
ge r0.x, l(6430.000000), r1.z
add r1.xz, r1.zzwz, l(-6360.000000, 0.000000, 0.150000, 0.000000)
mul r1.xz, r1.xxzx, l(0.0142857144, 0.000000, 12.262105, 0.000000)
sqrt r3.y, r1.x
min r1.x, |r1.z|, l(1.000000)
max r1.w, |r1.z|, l(1.000000)
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
mul r1.x, r1.x, r1.w
mul r1.w, r1.x, r1.x
mad r2.w, r1.w, l(0.0208350997), l(-0.085133)
mad r2.w, r1.w, r2.w, l(0.180141)
mad r2.w, r1.w, r2.w, l(-0.330299497)
mad r1.w, r1.w, r2.w, l(0.999866)
mul r2.w, r1.x, r1.w
lt r3.z, l(1.000000), |r1.z|
mad r2.w, r2.w, l(-2.000000), l(1.57079637)
and r2.w, r2.w, r3.z
mad r1.x, r1.w, r1.x, r2.w
min r1.z, r1.z, l(1.000000)
lt r1.z, r1.z, -r1.z
movc r1.x, r1.z, -r1.x, r1.x
mul r3.x, r1.x, l(0.666666687)
sample_l_indexable(texture2d)(float,float,float,float) r1.xzw, r3.xyxx, t1.xwyz, s1, l(0.000000)
movc r1.xzw, r0.xxxx, r1.xxzw, l(1.000000,0,1.000000,1.000000)
mul r0.x, cb0[148].y, l(0.0174532942)
sincos null, r0.x, r0.x
dp3 r2.w, r4.xyzx, cb0[145].xyzx
ge r0.x, r2.w, r0.x
and r0.x, r0.x, l(0x3f800000)
mul r1.xzw, r0.xxxx, r1.xxzw
movc r1.xzw, r3.wwww, l(0,0,0,0), r1.xxzw
add r1.xzw, r2.xxyz, r1.xxzw
add r0.xyz, r0.yzwy, r1.xzwx
mul r0.w, r1.y, cb0[145].w
mul r1.xyz, r0.wwww, cb0[149].xyzx
mul o0.xyz, r0.xyzx, r1.xyzx
mad_sat r0.x, r14.x, cb0[146].y, -cb0[146].z
add r0.y, -r5.x, l(1.000000)
add r0.z, -r0.x, l(1.000000)
mad o0.w, r0.y, r0.z, r0.x
ret
// Approximately 556 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with geo-11 v0.6.198 on Mon Jun 16 19:42:02 2025
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[150] : packoffset(c0);
// }
//
// SamplerState s0_s_s : register(s0);
// SamplerState s1_s_s : register(s1);
// SamplerState s2_s_s : register(s2);
// SamplerState s3_s_s : register(s3);
// Texture2D<float4> t0 : register(t0);
// Texture2D<float4> t1 : register(t1);
// Texture2D<float4> t2 : register(t2);
// Texture3D<float4> t3 : register(t3);
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Buffer<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,r18;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.x = StereoParams.Load(float4(0,0,0,0)).x;
//   r0.y = t0.SampleLevel(s0_s_s, v0.xy, 0).x;
//   r0.z = r0.y * cb0[53].x + cb0[53].y;
//   r0.y = r0.y * cb0[53].z + -cb0[53].w;
//   r0.y = 1 / r0.y;
//   r0.y = r0.z + r0.y;
//   r0.zw = float2(9.99999975e-06,100) * cb0[147].xx;
//   r1.x = -cb0[146].w + cb0[55].z;
//   r1.x = cb0[147].y * r1.x;
//   r2.xy = cb0[55].xy * r0.zz;
//   r2.z = r1.x * r0.z + 6360.00977;
//   r1.x = cb0[24].x * cb0[24].x;
//   r1.y = cb0[0].x * -r0.x;
//   r1.y = r1.y / r1.x;
//   r3.x = v1.x + r1.y;
//   r1.y = cb0[1].x * -r0.x;
//   r1.y = r1.y / r1.x;
//   r3.y = v1.y + r1.y;
//   r0.x = cb0[2].x * -r0.x;
//   r0.x = r0.x / r1.x;
//   r3.z = v1.z + r0.x;
//   r0.x = dot(r2.xyz, r2.xyz);
//   r1.z = sqrt(r0.x);
//   r2.w = dot(r3.xyz, r3.xyz);
//   r2.w = rsqrt(r2.w);
//   r4.xyz = r3.xyz * r2.www;
//   r3.w = dot(r2.xyz, r4.xyz);
//   r1.w = r3.w / r1.z;
//   r5.x = r1.w * r1.w + -1;
//   r5.xy = r0.xx * r5.xx + float2(40449600,41344900);
//   r5.xy = sqrt(r5.xy);
//   r6.xy = -r5.xy + -r3.ww;
//   r0.x = r0.y * r0.z;
//   r3.w = r0.y * r0.z + -cb0[147].w;
//   r3.w = max(0, r3.w);
//   r5.x = 0.100000001 * r3.w;
//   r5.x = r5.x / cb0[147].w;
//   r5.x = min(1, r5.x);
//   r0.x = cmp(r0.x < r0.w);
//   r7.y = cb0[146].x * r5.x;
//   r0.y = r0.y * r0.z + cb0[148].x;
//   r7.x = max(1, r0.y);
//   r6.z = 1;
//   r1.xy = r0.xx ? r7.xy : r6.xz;
//   r0.y = cmp(0 < r6.y);
//   r6.xzw = r6.yyy * r4.xyz + r2.xyz;
//   r7.x = r1.x + -r6.y;
//   r7.z = -0.000155520989 * r5.y;
//   r5.yzw = r0.yyy ? r6.xzw : r2.xyz;
//   r7.y = 6430;
//   r0.yzw = r0.yyy ? r7.xyz : r1.xzw;
//   r6.x = cmp(r0.z < 6360.01465);
//   r6.y = 6360.01465 + -r0.z;
//   r7.xyz = -r6.yyy * r4.xyz + r5.yzw;
//   r8.x = -r6.y + r0.y;
//   r6.y = dot(r7.xyz, r4.xyz);
//   r8.z = 0.000157232338 * r6.y;
//   r8.y = 6360.01465;
//   r0.yzw = r6.xxx ? r8.xyz : r0.yzw;
//   r6.y = cmp(6430 >= r0.z);
//   r6.y = r6.y ? -1.000000 : 0;
//   r3.w = cmp(0 < r3.w);
//   r3.w = r6.y ? r3.w : 0;
//   r3.w = cmp(r3.w != 0.000000);
//   if (r3.w != 0) {
//     r5.yzw = r6.xxx ? r7.xyz : r5.yzw;
//     r3.w = dot(r4.xyz, cb0[145].xyz);
//     r6.x = dot(r5.yzw, cb0[145].xyz);
//     r6.x = r6.x / r0.z;
//     r6.y = 6360 / r0.z;
//     r6.y = -r6.y * r6.y + 1;
//     r6.y = sqrt(r6.y);
//     r6.zw = float2(0.155000001,0.00499999989) + -r6.yy;
//     r7.xy = max(r6.zw, r0.ww);
//     r7.x = r0.x ? r7.x : r7.y;
//     r0.w = -1.44269502 * r4.z;
//     r0.w = exp2(r0.w);
//     r8.y = saturate(-0.5 + r0.w);
//     r0.w = cmp(r8.y < 1);
//     r4.w = max(0.150000006, r4.z);
//     r6.z = dot(r4.xyw, r4.xyw);
//     r6.z = rsqrt(r6.z);
//     r9.xyz = r6.zzz * r4.xyw;
//     r10.xyz = r0.yyy * r9.xyz + r5.yzw;
//     r4.w = dot(r10.xyz, r10.xyz);
//     r4.w = sqrt(r4.w);
//     r6.z = dot(r10.xyz, r9.xyz);
//     r9.w = r6.z / r4.w;
//     r7.yzw = r4.xyz;
//     r9.xyzw = r0.wwww ? r9.xyzw : r7.yzwx;
//     r8.x = r9.w;
//     r7.y = 0;
//     r8.xy = r0.xx ? r8.xy : r7.xy;
//     r0.w = r3.w * r3.w + 1;
//     r4.w = 0.0596831031 * r0.w;
//     r6.z = r3.w * -1.60000002 + 1.63999999;
//     r6.z = log2(abs(r6.z));
//     r6.z = -1.5 * r6.z;
//     r6.z = exp2(r6.z);
//     r0.w = r6.z * r0.w;
//     r10.x = 0.0162772108 * r0.w;
//     r0.w = r0.z * r0.z;
//     r6.z = r0.z * r0.z + -40449600;
//     r6.z = sqrt(r6.z);
//     r7.y = r8.x * r0.z;
//     r7.z = r7.y * r7.y + -r0.w;
//     r7.z = 40449600 + r7.z;
//     r7.w = cmp(r7.y < 0);
//     r8.w = cmp(0 < r7.z);
//     r7.w = r7.w ? r8.w : 0;
//     r11.xyzw = r7.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//     r7.w = asuint(cb0[148].w);
//     r8.w = 0.5 / r7.w;
//     r9.w = 0.00105685578 * r6.z;
//     r7.w = 1 / r7.w;
//     r7.w = 1 + -r7.w;
//     r12.z = r9.w * r7.w + r8.w;
//     r7.z = r11.y + r7.z;
//     r7.z = sqrt(r7.z);
//     r7.y = r7.y * r11.x + r7.z;
//     r7.z = r11.z + r6.z;
//     r7.y = r7.y / r7.z;
//     r12.w = r7.y * 0.4921875 + r11.w;
//     r7.y = max(-0.197500005, r6.x);
//     r7.y = 5.34962368 * r7.y;
//     r7.z = min(1, abs(r7.y));
//     r9.w = max(1, abs(r7.y));
//     r9.w = 1 / r9.w;
//     r7.z = r9.w * r7.z;
//     r9.w = r7.z * r7.z;
//     r11.x = r9.w * 0.0208350997 + -0.0851330012;
//     r11.x = r9.w * r11.x + 0.180141002;
//     r11.x = r9.w * r11.x + -0.330299497;
//     r9.w = r9.w * r11.x + 0.999866009;
//     r11.x = r9.w * r7.z;
//     r11.y = cmp(1 < abs(r7.y));
//     r11.x = r11.x * -2 + 1.57079637;
//     r11.x = r11.y ? r11.x : 0;
//     r7.z = r9.w * r7.z + r11.x;
//     r7.y = min(1, r7.y);
//     r7.y = cmp(r7.y < -r7.y);
//     r7.y = r7.y ? -r7.z : r7.z;
//     r7.y = r7.y * 0.909090877 + 0.74000001;
//     r7.y = r7.y * 0.484375 + 0.015625;
//     r3.w = 1 + r3.w;
//     r7.z = 3.5 * r3.w;
//     r7.z = floor(r7.z);
//     r3.w = r3.w * 3.5 + -r7.z;
//     r7.y = r7.z + r7.y;
//     r12.y = 0.125 * r7.y;
//     r11.xyzw = t3.SampleLevel(s3_s_s, r12.ywz, 0).xyzw;
//     r9.w = 1 + -r3.w;
//     r7.y = 1 + r7.y;
//     r12.x = 0.125 * r7.y;
//     r13.xyzw = t3.SampleLevel(s3_s_s, r12.xwz, 0).xyzw;
//     r13.xyzw = r13.xyzw * r3.wwww;
//     r11.xyzw = r11.xyzw * r9.wwww + r13.xyzw;
//     r11.xyzw = max(float4(0,0,0,0), r11.xyzw);
//     r7.y = cmp(0 < r0.y);
//     if (r7.y != 0) {
//       r5.yzw = r0.yyy * r4.xyz + r5.yzw;
//       r7.y = dot(r5.yzw, r5.yzw);
//       r7.y = sqrt(r7.y);
//       r13.x = 0.5 / cb0[147].z;
//       r13.x = r13.x * r0.z;
//       r13.x = sqrt(r13.x);
//       r13.y = r0.y / r0.z;
//       r8.z = r13.y + r8.x;
//       r13.xy = r13.xx * r8.xz;
//       r13.zw = cmp(float2(0,0) < r13.xy);
//       r14.xy = cmp(r13.xy < float2(0,0));
//       r13.zw = r13.zw ? float2(0,0) : 0;
//       r13.zw = (int2)r14.xy + (int2)r13.zw;
//       r13.zw = (int2)r13.zw;
//       r14.xyz = r13.xxy * r13.xxy;
//       r14.w = cmp(r13.z < r13.w);
//       r14.x = 1.44269502 * r14.x;
//       r14.x = exp2(r14.x);
//       r14.x = r14.w ? r14.x : 0;
//       r14.yz = r14.yz * float2(1.51999998,1.51999998) + float2(4,4);
//       r14.yz = sqrt(r14.yz);
//       r13.xy = abs(r13.xy) * float2(2.31929994,2.31929994) + r14.yz;
//       r13.xy = r13.zw / r13.xy;
//       r13.z = -r0.y / cb0[147].z;
//       r13.w = r0.z + r0.z;
//       r14.y = r0.y / r13.w;
//       r14.y = r14.y + r8.x;
//       r13.z = r14.y * r13.z;
//       r13.z = 1.44269502 * r13.z;
//       r15.y = exp2(r13.z);
//       r15.xz = float2(1,1);
//       r13.xy = r15.xy * r13.xy;
//       r13.z = cb0[147].z * r0.z;
//       r13.z = 6.28310013 * r13.z;
//       r13.z = sqrt(r13.z);
//       r14.z = 6360 + -r0.z;
//       r14.w = r14.z / cb0[147].z;
//       r14.w = 1.44269502 * r14.w;
//       r14.w = exp2(r14.w);
//       r13.z = r14.w * r13.z;
//       r13.x = dot(r13.xy, float2(1,-1));
//       r13.x = r13.x + r14.x;
//       r13.x = r13.z * r13.x;
//       r13.yz = float2(0.416666657,7.53972054) * r0.zz;
//       r13.yz = sqrt(r13.yz);
//       r14.xw = r13.yy * r8.xz;
//       r15.xy = cmp(float2(0,0) < r14.xw);
//       r16.xy = cmp(r14.xw < float2(0,0));
//       r15.xy = r15.xy ? float2(0,0) : 0;
//       r15.xy = (int2)r16.xy + (int2)r15.xy;
//       r15.xy = (int2)r15.xy;
//       r16.xyz = r14.xxw * r14.xxw;
//       r8.z = cmp(r15.x < r15.y);
//       r13.y = 1.44269502 * r16.x;
//       r13.y = exp2(r13.y);
//       r8.z = r8.z ? r13.y : 0;
//       r16.xy = r16.yz * float2(1.51999998,1.51999998) + float2(4,4);
//       r16.xy = sqrt(r16.xy);
//       r14.xw = abs(r14.xw) * float2(2.31929994,2.31929994) + r16.xy;
//       r14.xw = r15.xy / r14.xw;
//       r13.y = r14.y * -r0.y;
//       r13.y = 1.20224583 * r13.y;
//       r15.w = exp2(r13.y);
//       r14.xy = r15.zw * r14.xw;
//       r13.y = 1.20224583 * r14.z;
//       r13.y = exp2(r13.y);
//       r13.y = r13.z * r13.y;
//       r13.z = dot(r14.xy, float2(1,-1));
//       r8.z = r13.z + r8.z;
//       r8.z = r13.y * r8.z;
//       r8.z = 0.00444444455 * r8.z;
//       r14.xyzw = r13.xxxx * float4(-0.00579999993,-0.0135000004,-0.0331000015,-0.00579999993) + -r8.zzzz;
//       r14.xyzw = float4(1.44269502,1.44269502,1.44269502,1.44269502) * r14.xyzw;
//       r14.xyzw = exp2(r14.wxyz);
//       r8.z = max(r7.y, r0.z);
//       r8.z = r0.x ? r8.z : r7.y;
//       r13.x = cmp(6360.00977 < r8.z);
//       if (r13.x != 0) {
//         r13.x = cmp(r8.y < 1);
//         if (r13.x != 0) {
//           r9.xyz = r0.xxx ? r9.xyz : r4.xyz;
//           r9.x = dot(r5.yzw, r9.xyz);
//           r9.x = r9.x / r7.y;
//           r5.y = dot(r5.yzw, cb0[145].xyz);
//           r5.y = r5.y / r7.y;
//           r5.z = r8.z * r8.z;
//           r5.w = r8.z * r8.z + -40449600;
//           r13.y = sqrt(r5.w);
//           r5.w = r9.x * r8.z;
//           r5.z = r5.w * r5.w + -r5.z;
//           r13.x = 40449600 + r5.z;
//           r5.z = cmp(r5.w < 0);
//           r7.y = cmp(0 < r13.x);
//           r5.z = r5.z ? r7.y : 0;
//           r15.xyzw = r5.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//           r5.z = r13.y * r7.w;
//           r16.y = r5.z * 0.00105685578 + r8.w;
//           r9.xy = r15.yz + r13.xy;
//           r5.z = sqrt(r9.x);
//           r5.z = r5.w * r15.x + r5.z;
//           r5.z = r5.z / r9.y;
//           r16.x = r5.z * 0.4921875 + r15.w;
//           r5.y = max(-0.197500005, r5.y);
//           r5.y = 5.34962368 * r5.y;
//           r5.z = min(1, abs(r5.y));
//           r5.w = max(1, abs(r5.y));
//           r5.w = 1 / r5.w;
//           r5.z = r5.z * r5.w;
//           r5.w = r5.z * r5.z;
//           r7.y = r5.w * 0.0208350997 + -0.0851330012;
//           r7.y = r5.w * r7.y + 0.180141002;
//           r7.y = r5.w * r7.y + -0.330299497;
//           r5.w = r5.w * r7.y + 0.999866009;
//           r7.y = r5.z * r5.w;
//           r8.z = cmp(1 < abs(r5.y));
//           r7.y = r7.y * -2 + 1.57079637;
//           r7.y = r8.z ? r7.y : 0;
//           r5.z = r5.z * r5.w + r7.y;
//           r5.y = min(1, r5.y);
//           r5.y = cmp(r5.y < -r5.y);
//           r5.y = r5.y ? -r5.z : r5.z;
//           r5.y = r5.y * 0.909090877 + 0.74000001;
//           r5.y = r5.y * 0.484375 + r7.z;
//           r5.yz = float2(0.015625,1.015625) + r5.yy;
//           r16.zw = float2(0.125,0.125) * r5.yz;
//           r15.xyzw = t3.SampleLevel(s3_s_s, r16.zxy, 0).xyzw;
//           r17.xyzw = t3.SampleLevel(s3_s_s, r16.wxy, 0).xyzw;
//           r17.xyzw = r17.xyzw * r3.wwww;
//           r15.xyzw = r15.xyzw * r9.wwww + r17.xyzw;
//           r15.xyzw = -r14.xzwx * r15.xyzw + r11.xyzw;
//           r11.xyzw = max(float4(0,0,0,0), r15.xyzw);
//           if (r0.x == 0) {
//             r5.y = r8.x + r6.y;
//             r5.z = cmp(abs(r5.y) < 0.00499999989);
//             if (r5.z != 0) {
//               r5.y = 0.00499999989 + r5.y;
//               r5.y = 100 * r5.y;
//               r5.z = -0.00499999989 + -r6.y;
//               r5.w = r0.y * r0.y + r0.w;
//               r6.y = r13.w * r0.y;
//               r7.y = r6.y * r5.z + r5.w;
//               r7.y = sqrt(r7.y);
//               r7.z = r5.z * r0.z;
//               r5.z = r5.z * r0.z + r0.y;
//               r5.z = r5.z / r7.y;
//               r5.z = max(r6.w, r5.z);
//               r8.x = r7.z * r7.z + -r0.w;
//               r8.x = 40449600 + r8.x;
//               r8.z = cmp(r7.z < 0);
//               r8.z = r8.z ? -1.000000 : 0;
//               r9.x = cmp(0 < r8.x);
//               r8.z = r8.z ? r9.x : 0;
//               r8.z = cmp(0 != r8.z);
//               r13.xyzw = r8.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r8.x = r13.y + r8.x;
//               r8.x = sqrt(r8.x);
//               r7.z = r7.z * r13.x + r8.x;
//               r8.x = r13.z + r6.z;
//               r7.z = r7.z / r8.x;
//               r13.x = r7.z * 0.4921875 + r13.w;
//               r13.yz = r12.yz;
//               r15.xyzw = t3.SampleLevel(s3_s_s, r13.yxz, 0).xyzw;
//               r12.y = r13.x;
//               r17.xyzw = t3.SampleLevel(s3_s_s, r12.xyz, 0).xyzw;
//               r17.xyzw = r17.xyzw * r3.wwww;
//               r15.xyzw = r15.xyzw * r9.wwww + r17.xyzw;
//               r7.z = r7.y * r7.y;
//               r8.x = r7.y * r7.y + -40449600;
//               r8.x = sqrt(r8.x);
//               r5.z = r7.y * r5.z;
//               r7.y = r5.z * r5.z + -r7.z;
//               r7.y = 40449600 + r7.y;
//               r7.z = cmp(r5.z < 0);
//               r8.z = cmp(0 < r7.y);
//               r7.z = r7.z ? r8.z : 0;
//               r17.xyzw = r7.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r7.z = r8.x * r7.w;
//               r16.y = r7.z * 0.00105685578 + r8.w;
//               r7.y = r17.y + r7.y;
//               r7.y = sqrt(r7.y);
//               r5.z = r5.z * r17.x + r7.y;
//               r7.y = r17.z + r8.x;
//               r5.z = r5.z / r7.y;
//               r16.x = r5.z * 0.4921875 + r17.w;
//               r17.xyzw = t3.SampleLevel(s3_s_s, r16.zxy, 0).xyzw;
//               r18.xyzw = t3.SampleLevel(s3_s_s, r16.wxy, 0).xyzw;
//               r18.xyzw = r18.xyzw * r3.wwww;
//               r17.xyzw = r17.xyzw * r9.wwww + r18.xyzw;
//               r15.xyzw = -r14.xzwx * r17.xyzw + r15.xyzw;
//               r15.xyzw = max(float4(0,0,0,0), r15.xyzw);
//               r5.z = r6.y * r6.w + r5.w;
//               r5.z = sqrt(r5.z);
//               r5.w = r6.w * r0.z;
//               r0.y = r6.w * r0.z + r0.y;
//               r0.y = r0.y / r5.z;
//               r0.y = max(r6.w, r0.y);
//               r6.y = r5.w * r5.w + -r0.w;
//               r6.y = 40449600 + r6.y;
//               r6.w = cmp(r5.w < 0);
//               r6.w = r6.w ? -1.000000 : 0;
//               r7.y = cmp(0 < r6.y);
//               r6.w = r6.w ? r7.y : 0;
//               r6.w = cmp(0 != r6.w);
//               r17.xyzw = r6.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r6.y = r17.y + r6.y;
//               r6.y = sqrt(r6.y);
//               r5.w = r5.w * r17.x + r6.y;
//               r6.y = r17.z + r6.z;
//               r5.w = r5.w / r6.y;
//               r13.w = r5.w * 0.4921875 + r17.w;
//               r17.xyzw = t3.SampleLevel(s3_s_s, r13.ywz, 0).xyzw;
//               r12.w = r13.w;
//               r13.xyzw = t3.SampleLevel(s3_s_s, r12.xwz, 0).xyzw;
//               r13.xyzw = r13.xyzw * r3.wwww;
//               r13.xyzw = r17.xyzw * r9.wwww + r13.xyzw;
//               r5.w = r5.z * r5.z;
//               r6.y = r5.z * r5.z + -40449600;
//               r6.y = sqrt(r6.y);
//               r0.y = r5.z * r0.y;
//               r5.z = r0.y * r0.y + -r5.w;
//               r5.z = 40449600 + r5.z;
//               r5.w = cmp(r0.y < 0);
//               r6.w = cmp(0 < r5.z);
//               r5.w = r5.w ? r6.w : 0;
//               r17.xyzw = r5.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r5.w = r6.y * r7.w;
//               r16.y = r5.w * 0.00105685578 + r8.w;
//               r5.z = r17.y + r5.z;
//               r5.z = sqrt(r5.z);
//               r0.y = r0.y * r17.x + r5.z;
//               r5.z = r17.z + r6.y;
//               r0.y = r0.y / r5.z;
//               r16.x = r0.y * 0.4921875 + r17.w;
//               r17.xyzw = t3.SampleLevel(s3_s_s, r16.zxy, 0).xyzw;
//               r16.xyzw = t3.SampleLevel(s3_s_s, r16.wxy, 0).xyzw;
//               r16.xyzw = r16.xyzw * r3.wwww;
//               r16.xyzw = r17.xyzw * r9.wwww + r16.xyzw;
//               r13.xyzw = -r14.xzwx * r16.xyzw + r13.xyzw;
//               r13.xyzw = max(float4(0,0,0,0), r13.xyzw);
//               r13.xyzw = r13.xyzw + -r15.xyzw;
//               r11.xyzw = r5.yyyy * r13.xyzw + r15.xyzw;
//             }
//           } else {
//             r0.y = cmp(0 < r8.y);
//             if (r0.y != 0) {
//               r13.xyzw = float4(1,1,1,1) + -r14.xzwx;
//               r0.y = r7.x * r0.z;
//               r0.z = r0.y * r0.y + -r0.w;
//               r0.z = 40449600 + r0.z;
//               r0.w = cmp(r0.y < 0);
//               r5.y = cmp(0 < r0.z);
//               r0.w = r0.w ? r5.y : 0;
//               r7.xyzw = r0.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r0.z = r7.y + r0.z;
//               r0.z = sqrt(r0.z);
//               r0.y = r0.y * r7.x + r0.z;
//               r0.z = r7.z + r6.z;
//               r0.y = r0.y / r0.z;
//               r7.y = r0.y * 0.4921875 + r7.w;
//               r7.xz = r12.yz;
//               r15.xyzw = t3.SampleLevel(s3_s_s, r7.xyz, 0).xyzw;
//               r7.xz = r12.xz;
//               r7.xyzw = t3.SampleLevel(s3_s_s, r7.xyz, 0).xyzw;
//               r7.xyzw = r7.xyzw * r3.wwww;
//               r7.xyzw = r15.xyzw * r9.wwww + r7.xyzw;
//               r7.xyzw = max(float4(0,0,0,0), r7.xyzw);
//               r7.xyzw = r13.xyzw * r7.xyzw + -r11.xyzw;
//               r11.xyzw = r8.yyyy * r7.xyzw + r11.xyzw;
//             }
//           }
//         } else {
//           r7.xyzw = float4(1,1,1,1) + -r14.yzwx;
//           r11.xyzw = r7.xyzw * r11.xyzw;
//         }
//       }
//       r14.xyz = r14.xzw;
//     } else {
//       r14.xyz = float3(1,1,1);
//     }
//     r0.y = saturate(50 * r6.x);
//     r0.z = r0.y * -2 + 3;
//     r0.y = r0.y * r0.y;
//     r0.y = r0.z * r0.y;
//     r0.y = r11.w * r0.y;
//     r0.yzw = r11.xyz * r0.yyy;
//     r3.w = max(9.99999975e-05, r11.x);
//     r0.yzw = r0.yzw / r3.www;
//     r10.yzw = float3(1,0.429629624,0.175226584);
//     r0.yzw = r0.yzw * r10.yxx;
//     r0.yzw = r0.yzw * r10.xzw;
//     r0.yzw = r11.xyz * r4.www + r0.yzw;
//     r0.yzw = max(float3(0,0,0), r0.yzw);
//   } else {
//     r0.yzw = float3(0,0,0);
//     r14.xyz = float3(1,1,1);
//   }
//   r3.w = cmp(0 < r1.x);
//   if (r3.w != 0) {
//     r2.xyz = r1.xxx * r4.xyz + r2.xyz;
//     r1.x = dot(r2.xyz, r2.xyz);
//     r1.x = sqrt(r1.x);
//     r2.xyz = r2.xyz / r1.xxx;
//     r4.w = dot(r2.xyz, cb0[145].xyz);
//     r1.x = -6360 + r1.x;
//     r6.z = 0.0142857144 * r1.x;
//     r7.y = sqrt(r6.z);
//     r5.yz = float2(0.150000006,0.200000003) + r4.ww;
//     r6.xy = float2(12.262105,0.833333313) * r5.yz;
//     r1.x = min(1, abs(r6.x));
//     r5.y = max(1, abs(r6.x));
//     r5.y = 1 / r5.y;
//     r1.x = r5.y * r1.x;
//     r5.y = r1.x * r1.x;
//     r5.z = r5.y * 0.0208350997 + -0.0851330012;
//     r5.z = r5.y * r5.z + 0.180141002;
//     r5.z = r5.y * r5.z + -0.330299497;
//     r5.y = r5.y * r5.z + 0.999866009;
//     r5.z = r5.y * r1.x;
//     r5.w = cmp(1 < abs(r6.x));
//     r5.z = r5.z * -2 + 1.57079637;
//     r5.z = r5.w ? r5.z : 0;
//     r1.x = r5.y * r1.x + r5.z;
//     r5.y = min(1, r6.x);
//     r5.y = cmp(r5.y < -r5.y);
//     r1.x = r5.y ? -r1.x : r1.x;
//     r7.x = 0.666666687 * r1.x;
//     r5.yzw = t1.SampleLevel(s1_s_s, r7.xy, 0).xyz;
//     r5.yzw = r0.xxx ? float3(0,0,0) : r5.yzw;
//     r6.xyz = t2.SampleLevel(s2_s_s, r6.yz, 0).xyz;
//     r1.x = max(0, r4.w);
//     r6.xyz = r1.xxx * r5.yzw + r6.xyz;
//     r6.xyz = float3(0.00318309898,0.00318309898,0.00318309898) * r6.xyz;
//     r3.xyz = -r3.xyz * r2.www + cb0[145].xyz;
//     r1.x = dot(r3.xyz, r3.xyz);
//     r1.x = rsqrt(r1.x);
//     r3.xyz = r3.xyz * r1.xxx;
//     r1.x = dot(-r4.xyz, r3.xyz);
//     r1.x = 1 + -r1.x;
//     r2.w = r1.x * r1.x;
//     r2.w = r2.w * r2.w;
//     r1.x = r2.w * r1.x;
//     r1.x = r1.x * 0.980000019 + 0.0199999996;
//     r2.x = dot(r3.xyz, r2.xyz);
//     r2.x = max(0, r2.x);
//     r2.x = log2(r2.x);
//     r2.x = 150 * r2.x;
//     r2.x = exp2(r2.x);
//     r1.x = r2.x * r1.x;
//     r1.x = max(0, r1.x);
//     r2.xyz = r1.xxx * r5.yzw + r6.xyz;
//     r2.xyz = r0.xxx ? r6.xyz : r2.xyz;
//     r2.xyz = r14.xyz * r2.xyz;
//   } else {
//     r2.xyz = float3(0,0,0);
//   }
//   r0.x = cmp(6430 >= r1.z);
//   r1.xz = float2(-6360,0.150000006) + r1.zw;
//   r1.xz = float2(0.0142857144,12.262105) * r1.xz;
//   r3.y = sqrt(r1.x);
//   r1.x = min(1, abs(r1.z));
//   r1.w = max(1, abs(r1.z));
//   r1.w = 1 / r1.w;
//   r1.x = r1.w * r1.x;
//   r1.w = r1.x * r1.x;
//   r2.w = r1.w * 0.0208350997 + -0.0851330012;
//   r2.w = r1.w * r2.w + 0.180141002;
//   r2.w = r1.w * r2.w + -0.330299497;
//   r1.w = r1.w * r2.w + 0.999866009;
//   r2.w = r1.w * r1.x;
//   r3.z = cmp(1 < abs(r1.z));
//   r2.w = r2.w * -2 + 1.57079637;
//   r2.w = r3.z ? r2.w : 0;
//   r1.x = r1.w * r1.x + r2.w;
//   r1.z = min(1, r1.z);
//   r1.z = cmp(r1.z < -r1.z);
//   r1.x = r1.z ? -r1.x : r1.x;
//   r3.x = 0.666666687 * r1.x;
//   r1.xzw = t1.SampleLevel(s1_s_s, r3.xy, 0).xyz;
//   r1.xzw = r0.xxx ? r1.xzw : float3(1,1,1);
//   r0.x = 0.0174532942 * cb0[148].y;
//   r0.x = cos(r0.x);
//   r2.w = dot(r4.xyz, cb0[145].xyz);
//   r0.x = cmp(r2.w >= r0.x);
//   r0.x = r0.x ? 1.000000 : 0;
//   r1.xzw = r1.xzw * r0.xxx;
//   r1.xzw = r3.www ? float3(0,0,0) : r1.xzw;
//   r1.xzw = r1.xzw + r2.xyz;
//   r0.xyz = r1.xzw + r0.yzw;
//   r0.w = cb0[145].w * r1.y;
//   r1.xyz = cb0[149].xyz * r0.www;
//   o0.xyz = r1.xyz * r0.xyz;
//   r0.x = saturate(r14.x * cb0[146].y + -cb0[146].z);
//   r0.y = 1 + -r5.x;
//   r0.z = 1 + -r0.x;
//   o0.w = r0.y * r0.z + r0.x;
//   return;
// }
/////////////////////////////////////////////////////////////////////////////
