// ---- Created with 3Dmigoto v0.6.164 on Sat Nov  7 08:44:46 2026
Texture2DArray<float4> t6 : register(t6);

Texture2DArray<float4> t5 : register(t5);

Texture2DArray<float4> t4 : register(t4);

Texture2DArray<float4> t3 : register(t3);

Texture2DArray<float4> t2 : register(t2);

struct t1_t {
  float val[8];
};
StructuredBuffer<t1_t> t1 : register(t1);

struct t0_t {
  float val[8];
};
StructuredBuffer<t0_t> t0 : register(t0);

SamplerState s0_s : register(s0);

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

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

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




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


void main(
  float3 v0 : POSITION0,
  float3 v1 : NORMAL0,
  float4 v2 : TANGENT0,
  float4 v3 : TEXCOORD0,
  float4 v4 : TEXCOORD1,
  float4 v5 : TEXCOORD2,
  float4 v6 : TEXCOORD3,
  float3 v7 : TEXCOORD4,
  out float4 o0 : TEXCOORD8,
  out float3 o1 : TEXCOORD9,
  out float4 o2 : SV_POSITION0,
  out float4 o3 : TEXCOORD0,
  out float4 o4 : TEXCOORD1,
  out float4 o5 : TEXCOORD2,
  out float4 o6 : TEXCOORD3,
  out float4 o7 : TEXCOORD4,
  out float4 o8 : TEXCOORD5,
  out float4 o9 : TEXCOORD6)
{
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.xyw = cb1[3].xyz + -cb0[40].xyz;
  r1.x = cb1[0].x;
  r1.y = cb1[1].x;
  r1.z = cb1[2].x;
  r1.w = r0.x;
  r2.xyz = v0.xyz;
  r2.w = 1;
  r3.x = dot(r1.xyzw, r2.xyzw);
  r4.x = cb1[0].y;
  r4.y = cb1[1].y;
  r4.z = cb1[2].y;
  r4.w = r0.y;
  r3.y = dot(r4.xyzw, r2.xyzw);
  r0.x = cb1[0].z;
  r0.y = cb1[1].z;
  r0.z = cb1[2].z;
  r3.z = dot(r0.xyzw, r2.xyzw);
  r2.xyz = cb0[40].xyz + r3.xyz;
  r2.w = asint(cb1[10].x) & -2;
  r2.w = (int)r2.w;
  r2.w = log2(r2.w);
  r2.w = -16 + r2.w;
  r2.w = (uint)r2.w;
  r3.z = (uint)r2.w;
  r3.w = (int)r2.w + 1;
  r5.x = t0[r3.w].val[0/4];
  r5.y = t0[r3.w].val[0/4+1];
  r5.z = t0[r2.w].val[20/4];
  r5.w = t0[r2.w].val[20/4+1];
  r6.x = t0[r3.w].val[12/4];
  r6.y = t0[r3.w].val[20/4];
  r6.z = t0[r3.w].val[20/4+1];
  r3.w = t1[r2.w].val[0/4];
  r6.w = t1[r2.w].val[8/4];
  r7.x = t0[r2.w].val[0/4];
  r7.y = t0[r2.w].val[0/4+1];
  r7.z = t0[r2.w].val[0/4+2];
  r7.w = t0[r2.w].val[0/4+3];
  r2.w = r6.w + r6.w;
  r6.w = 4 * r6.w;
  r8.xy = cb1[3].xz / r2.ww;
  r8.xy = frac(r8.xy);
  r8.zw = -r8.xy * r2.ww + r2.xz;
  r9.xy = -cb2[1].xz + r8.zw;
  r9.x = max(abs(r9.x), abs(r9.y));
  r9.x = r9.x / r7.z;
  r9.x = -1 + r9.x;
  r9.x = -cb2[2].z + r9.x;
  r9.x = r9.x / cb2[2].w;
  r9.x = max(0, r9.x);
  r9.x = r9.x + r3.w;
  r9.x = min(1, r9.x);
  r10.xy = r8.zw / r6.ww;
  r10.xy = frac(r10.xy);
  r10.xy = float2(-0.5,-0.5) + r10.xy;
  r10.zw = cmp(abs(r10.xy) < float2(0.375,0.375));
  r10.xy = r10.xy * r9.xx;
  r10.xy = r10.xy * r6.ww + r8.zw;
  r2.xz = r10.zw ? r10.xy : r8.zw;
  r8.z = max(abs(cb0[40].x), abs(cb0[40].z));
  r8.z = r8.z * 9.99999017e-08 + 1;
  r2.xyz = -cb1[3].xyz + r2.xyz;
  r2.xyz = r8.zzz * r2.xyz + cb1[3].xyz;
  r8.w = 1 + -r9.x;
  r10.x = r8.w * r5.w;
  r8.w = -r8.w * r5.w + 1;
  r8.w = r8.w * r6.z;
  r10.yz = cmp(float2(0.00100000005,9.99999975e-05) < r10.xx);
  if (r10.y != 0) {
    r11.xy = r2.xz + -r7.xy;
    r10.w = r7.w * r5.z;
    r11.xy = r11.xy / r10.ww;
    r3.xy = float2(0.5,0.5) + r11.xy;
    r11.xyz = t2.SampleLevel(s0_s, r3.xyz, 0).xyz;
    r11.xyz = r11.xzy * r10.xxx;
    r10.w = t4.SampleLevel(s0_s, r3.xyz, 0).x;
    r10.w = r10.x * r10.w;
    r12.xy = t5.SampleLevel(s0_s, r3.xyz, 0).xy;
    r12.xy = r12.xy * r10.xx;
  } else {
    r12.xy = float2(0,0);
    r11.xyz = float3(0,0,0);
    r10.w = 0;
  }
  r12.zw = cmp(float2(0.00100000005,9.99999975e-05) < r8.ww);
  if (r12.z != 0) {
    r13.z = 1 + r3.z;
    r14.xy = r2.xz + -r5.xy;
    r11.w = r6.y * r6.x;
    r14.xy = r14.xy / r11.ww;
    r13.xy = float2(0.5,0.5) + r14.xy;
    r14.xyz = t2.SampleLevel(s0_s, r13.xyz, 0).xyz;
    r11.xyz = r8.www * r14.xzy + r11.xyz;
    r11.w = t4.SampleLevel(s0_s, r13.xyz, 0).x;
    r10.w = r8.w * r11.w + r10.w;
    r13.xy = t5.SampleLevel(s0_s, r13.xyz, 0).xy;
    o8.zw = r8.ww * r13.xy + r12.xy;
  } else {
    o8.zw = r12.xy;
  }
  if (r10.z != 0) {
    r12.xy = r11.xy + r2.xz;
    r12.xy = r12.xy + -r7.xy;
    r10.z = r7.w * r5.z;
    r12.xy = r12.xy / r10.zz;
    r3.xy = float2(0.5,0.5) + r12.xy;
    r10.z = t3.SampleLevel(s0_s, r3.xyz, 0).x;
    r10.z = -1000 + r10.z;
    r9.y = r10.x * r10.z + 1000;
    if (r10.y != 0) {
      r10.yz = t6.SampleLevel(s0_s, r3.xyz, 0).xy;
      r10.xy = r10.xx * r10.yz;
    } else {
      r10.xy = float2(0,0);
    }
  } else {
    r10.xy = float2(0,0);
    r9.y = 1000;
  }
  if (r12.w != 0) {
    r12.xy = r11.xy + r2.xz;
    r13.z = 1 + r3.z;
    r12.xy = r12.xy + -r5.xy;
    r10.z = r6.y * r6.x;
    r12.xy = r12.xy / r10.zz;
    r13.xy = float2(0.5,0.5) + r12.xy;
    r10.z = t3.SampleLevel(s0_s, r13.xyz, 0).x;
    r10.z = -1000 + r10.z;
    r9.y = r8.w * r10.z + r9.y;
    if (r12.z != 0) {
      r12.xy = t6.SampleLevel(s0_s, r13.xyz, 0).xy;
      o8.xy = r8.ww * r12.xy + r10.xy;
    } else {
      o8.xy = r10.xy;
    }
  } else {
    o8.xy = r10.xy;
  }
  o7.y = saturate(r10.w);
  r10.xyz = r11.xzy + r2.xyz;
  r10.xyz = -cb0[40].xyz + r10.xyz;
  r11.xyz = cb1[5].xyz * cb0[40].yyy;
  r11.xyz = cb1[4].xyz * cb0[40].xxx + r11.xyz;
  r11.xyz = cb1[6].xyz * cb0[40].zzz + r11.xyz;
  r11.xyz = cb1[7].xyz + r11.xyz;
  r12.xyz = cb1[5].xyz * r10.yyy;
  r10.xyw = cb1[4].xyz * r10.xxx + r12.xyz;
  r10.xyz = cb1[6].xyz * r10.zzz + r10.xyw;
  r10.xyz = r10.xyz + r11.xyz;
  r2.y = dot(cb1[5].xyz, cb1[5].xyz);
  r2.y = rsqrt(r2.y);
  r12.xyz = cb1[5].xyz * r2.yyy;
  r2.y = dot(cb1[4].xyz, cb1[4].xyz);
  r2.y = rsqrt(r2.y);
  r13.xyz = cb1[4].xyz * r2.yyy;
  r10.w = 1;
  r14.x = dot(r1.xyzw, r10.xyzw);
  r14.y = dot(r4.xyzw, r10.xyzw);
  r14.z = dot(r0.xyzw, r10.xyzw);
  r10.x = dot(r12.xyz, cb1[4].xyz);
  r10.y = dot(r12.xyz, cb1[5].xyz);
  r10.z = dot(r12.xyz, cb1[6].xyz);
  r2.y = dot(r10.xyz, r10.xyz);
  r2.y = max(1.17549435e-38, r2.y);
  r2.y = rsqrt(r2.y);
  o4.xyz = r10.xyz * r2.yyy;
  r10.xyz = cb1[1].xyz * r13.yyy;
  r10.xyz = cb1[0].xyz * r13.xxx + r10.xyz;
  r10.xyz = cb1[2].xyz * r13.zzz + r10.xyz;
  r2.y = dot(r10.xyz, r10.xyz);
  r2.y = max(1.17549435e-38, r2.y);
  r2.y = rsqrt(r2.y);
  o5.xyz = r10.xyz * r2.yyy;
  r10.xyzw = cb0[17].xyzw * r14.yyyy;
  r10.xyzw = cb0[16].xyzw * r14.xxxx + r10.xyzw;
  r10.xyzw = cb0[18].xyzw * r14.zzzz + r10.xyzw;
  o2.xyzw = cb0[19].xyzw + r10.xyzw;
  r10.xyz = cb0[29].xyw * r14.yyy;
  r10.xyz = cb0[28].xyw * r14.xxx + r10.xyz;
  r10.xyz = cb0[30].xyw * r14.zzz + r10.xyz;
  o0.xyz = cb0[31].xyw + r10.xyz;
  r2.y = cmp(cb1[37].y == 0.000000);
  if (r2.y != 0) {
    o1.xyz = float3(0,0,1);
  } else {
    r2.y = cmp(0 < cb1[37].x);
    r10.xyz = r2.yyy ? v7.xyz : v0.xyz;
    r10.w = 1;
    r1.x = dot(r1.xyzw, r10.xyzw);
    r1.y = dot(r4.xyzw, r10.xyzw);
    r1.z = dot(r0.xyzw, r10.xyzw);
    r0.xyz = cb0[40].xyz + r1.xyz;
    r1.xy = -r8.xy * r2.ww + r0.xz;
    r1.zw = -cb2[1].xz + r1.xy;
    r0.w = max(abs(r1.z), abs(r1.w));
    r0.w = r0.w / r7.z;
    r0.w = -cb2[2].z + r0.w;
    r0.w = -1 + r0.w;
    r0.w = r0.w / cb2[2].w;
    r0.w = max(0, r0.w);
    r0.w = r0.w + r3.w;
    r0.w = min(1, r0.w);
    r1.zw = r1.xy / r6.ww;
    r1.zw = frac(r1.zw);
    r1.zw = float2(-0.5,-0.5) + r1.zw;
    r2.yw = cmp(abs(r1.zw) < float2(0.375,0.375));
    r1.zw = r1.zw * r0.ww;
    r1.zw = r1.zw * r6.ww + r1.xy;
    r0.xz = r2.yw ? r1.zw : r1.xy;
    r0.xyz = -cb1[3].xyz + r0.xyz;
    r0.xyz = r8.zzz * r0.xyz + cb1[3].xyz;
    r0.w = 1 + -r0.w;
    r1.x = r0.w * r5.w;
    r0.w = -r0.w * r5.w + 1;
    r0.w = r0.w * r6.z;
    r1.y = cmp(0.00100000005 < r1.x);
    if (r1.y != 0) {
      r1.yz = r0.xz + -r7.xy;
      r1.w = r7.w * r5.z;
      r1.yz = r1.yz / r1.ww;
      r3.xy = float2(0.5,0.5) + r1.yz;
      r1.yzw = t2.SampleLevel(s0_s, r3.xyz, 0).xyz;
      r1.xyz = r1.xxx * r1.yzw;
    } else {
      r1.xyz = float3(0,0,0);
    }
    r1.w = cmp(0.00100000005 < r0.w);
    if (r1.w != 0) {
      r3.z = 1 + r3.z;
      r2.yw = r0.xz + -r5.xy;
      r1.w = r6.y * r6.x;
      r2.yw = r2.yw / r1.ww;
      r3.xy = float2(0.5,0.5) + r2.yw;
      r3.xyz = t2.SampleLevel(s0_s, r3.xyz, 0).xyz;
      r1.xyz = r0.www * r3.xyz + r1.xyz;
    }
    r0.xyz = r1.xyz + r0.xyz;
    r0.xyz = -cb0[40].xyz + r0.xyz;
    r1.xyz = cb1[5].xyz * r0.yyy;
    r0.xyw = cb1[4].xyz * r0.xxx + r1.xyz;
    r0.xyz = cb1[6].xyz * r0.zzz + r0.xyw;
    r0.xyz = r0.xyz + r11.xyz;
    r1.xyw = cb1[32].xyz + -cb0[40].xyz;
    r3.x = cb1[29].x;
    r3.y = cb1[30].x;
    r3.z = cb1[31].x;
    r3.w = r1.x;
    r0.w = 1;
    r3.x = dot(r3.xyzw, r0.xyzw);
    r4.x = cb1[29].y;
    r4.y = cb1[30].y;
    r4.z = cb1[31].y;
    r4.w = r1.y;
    r3.y = dot(r4.xyzw, r0.xyzw);
    r1.x = cb1[29].z;
    r1.y = cb1[30].z;
    r1.z = cb1[31].z;
    r3.z = dot(r1.xyzw, r0.xyzw);
    r0.x = cmp(0 < asint(cb0[372].x));
    r0.xyz = r0.xxx ? r14.xyz : r3.xyz;
    r1.xyz = cb0[33].xyw * r0.yyy;
    r0.xyw = cb0[32].xyw * r0.xxx + r1.xyz;
    r0.xyz = cb0[34].xyw * r0.zzz + r0.xyw;
    o1.xyz = cb0[35].xyw + r0.xyz;
  }
  o5.w = v2.w;
  r9.zw = r2.xz;
  o6.xyzw = r9.zwxy;
  o7.x = 0;
  o7.zw = v4.zw;
  o9.xyzw = v6.xyzw;
  o3.xyz = r14.xyz;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.164 on Sat Nov  7 08:44:46 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz
// NORMAL                   0   xyz         1     NONE   float
// TANGENT                  0   xyzw        2     NONE   float      w
// TEXCOORD                 0   xyzw        3     NONE   float
// TEXCOORD                 1   xyzw        4     NONE   float     zw
// TEXCOORD                 2   xyzw        5     NONE   float
// TEXCOORD                 3   xyzw        6     NONE   float   xyzw
// TEXCOORD                 4   xyz         7     NONE   float   xyz
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 8   xyz         0     NONE   float   xyz
// TEXCOORD                 9   xyz         1     NONE   float   xyz
// SV_POSITION              0   xyzw        2      POS   float   xyzw
// TEXCOORD                 0   xyz         3     NONE   float   xyz
// TEXCOORD                 1   xyz         4     NONE   float   xyz
// TEXCOORD                 2   xyzw        5     NONE   float   xyzw
// TEXCOORD                 3   xyzw        6     NONE   float   xyzw
// TEXCOORD                 4   xyzw        7     NONE   float   xyzw
// TEXCOORD                 5   xyzw        8     NONE   float   xyzw
// TEXCOORD                 6   xyzw        9     NONE   float   xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[373], immediateIndexed
dcl_constantbuffer CB1[38], immediateIndexed
dcl_constantbuffer CB2[3], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_structured t0, 32
dcl_resource_structured t1, 32
dcl_resource_texture2darray (float,float,float,float) t2
dcl_resource_texture2darray (float,float,float,float) t3
dcl_resource_texture2darray (float,float,float,float) t4
dcl_resource_texture2darray (float,float,float,float) t5
dcl_resource_texture2darray (float,float,float,float) t6
dcl_input v0.xyz
dcl_input v2.w
dcl_input v4.zw
dcl_input v6.xyzw
dcl_input v7.xyz
dcl_output o0.xyz
dcl_output o1.xyz
dcl_output_siv o2.xyzw, position
dcl_output o3.xyz
dcl_output o4.xyz
dcl_output o5.xyzw
dcl_output o6.xyzw
dcl_output o7.xyzw
dcl_output o8.xyzw
dcl_output o9.xyzw
dcl_temps 15
add r0.xyw, -cb0[40].xyxz, cb1[3].xyxz
mov r1.x, cb1[0].x
mov r1.y, cb1[1].x
mov r1.z, cb1[2].x
mov r1.w, r0.x
mov r2.xyz, v0.xyzx
mov r2.w, l(1.000000)
dp4 r3.x, r1.xyzw, r2.xyzw
mov r4.x, cb1[0].y
mov r4.y, cb1[1].y
mov r4.z, cb1[2].y
mov r4.w, r0.y
dp4 r3.y, r4.xyzw, r2.xyzw
mov r0.x, cb1[0].z
mov r0.y, cb1[1].z
mov r0.z, cb1[2].z
dp4 r3.z, r0.xyzw, r2.xyzw
add r2.xyz, r3.xyzx, cb0[40].xyzx
and r2.w, cb1[10].x, l(-2)
itof r2.w, r2.w
log r2.w, r2.w
add r2.w, r2.w, l(-16.000000)
ftou r2.w, r2.w
utof r3.z, r2.w
iadd r3.w, r2.w, l(1)
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r5.xy, r3.w, l(0), t0.xyxx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r5.zw, r2.w, l(20), t0.xxxy
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r6.x, r3.w, l(12), t0.xxxx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r6.yz, r3.w, l(20), t0.xxyx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r3.w, r2.w, l(0), t1.xxxx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r6.w, r2.w, l(8), t1.xxxx
ld_structured_indexable(structured_buffer, stride=32)(mixed,mixed,mixed,mixed) r7.xyzw, r2.w, l(0), t0.xyzw
add r2.w, r6.w, r6.w
mul r6.w, r6.w, l(4.000000)
div r8.xy, cb1[3].xzxx, r2.wwww
frc r8.xy, r8.xyxx
mad r8.zw, -r8.xxxy, r2.wwww, r2.xxxz
add r9.xy, r8.zwzz, -cb2[1].xzxx
max r9.x, |r9.y|, |r9.x|
div r9.x, r9.x, r7.z
add r9.x, r9.x, l(-1.000000)
add r9.x, r9.x, -cb2[2].z
div r9.x, r9.x, cb2[2].w
max r9.x, r9.x, l(0.000000)
add r9.x, r3.w, r9.x
min r9.x, r9.x, l(1.000000)
div r10.xy, r8.zwzz, r6.wwww
frc r10.xy, r10.xyxx
add r10.xy, r10.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
lt r10.zw, |r10.xxxy|, l(0.000000, 0.000000, 0.375000, 0.375000)
mul r10.xy, r9.xxxx, r10.xyxx
mad r10.xy, r10.xyxx, r6.wwww, r8.zwzz
movc r2.xz, r10.zzwz, r10.xxyx, r8.zzwz
max r8.z, |cb0[40].z|, |cb0[40].x|
mad r8.z, r8.z, l(9.999990169E-08), l(1.000000)
add r2.xyz, r2.xyzx, -cb1[3].xyzx
mad r2.xyz, r8.zzzz, r2.xyzx, cb1[3].xyzx
add r8.w, -r9.x, l(1.000000)
mul r10.x, r5.w, r8.w
mad r8.w, -r8.w, r5.w, l(1.000000)
mul r8.w, r6.z, r8.w
lt r10.yz, l(0.000000, 0.001000, 0.000100, 0.000000), r10.xxxx
if_nz r10.y
  add r11.xy, -r7.xyxx, r2.xzxx
  mul r10.w, r5.z, r7.w
  div r11.xy, r11.xyxx, r10.wwww
  add r3.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  sample_l_indexable(texture2darray)(float,float,float,float) r11.xyz, r3.xyzx, t2.xyzw, s0, l(0.000000)
  mul r11.xyz, r10.xxxx, r11.xzyx
  sample_l_indexable(texture2darray)(float,float,float,float) r10.w, r3.xyzx, t4.yzwx, s0, l(0.000000)
  mul r10.w, r10.w, r10.x
  sample_l_indexable(texture2darray)(float,float,float,float) r12.xy, r3.xyzx, t5.xyzw, s0, l(0.000000)
  mul r12.xy, r10.xxxx, r12.xyxx
else
  mov r12.xy, l(0,0,0,0)
  mov r11.xyz, l(0,0,0,0)
  mov r10.w, l(0)
endif
lt r12.zw, l(0.000000, 0.000000, 0.001000, 0.000100), r8.wwww
if_nz r12.z
  add r13.z, r3.z, l(1.000000)
  add r14.xy, -r5.xyxx, r2.xzxx
  mul r11.w, r6.x, r6.y
  div r14.xy, r14.xyxx, r11.wwww
  add r13.xy, r14.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  sample_l_indexable(texture2darray)(float,float,float,float) r14.xyz, r13.xyzx, t2.xyzw, s0, l(0.000000)
  mad r11.xyz, r8.wwww, r14.xzyx, r11.xyzx
  sample_l_indexable(texture2darray)(float,float,float,float) r11.w, r13.xyzx, t4.yzwx, s0, l(0.000000)
  mad r10.w, r8.w, r11.w, r10.w
  sample_l_indexable(texture2darray)(float,float,float,float) r13.xy, r13.xyzx, t5.xyzw, s0, l(0.000000)
  mad o8.zw, r8.wwww, r13.xxxy, r12.xxxy
else
  mov o8.zw, r12.xxxy
endif
if_nz r10.z
  add r12.xy, r2.xzxx, r11.xyxx
  add r12.xy, -r7.xyxx, r12.xyxx
  mul r10.z, r5.z, r7.w
  div r12.xy, r12.xyxx, r10.zzzz
  add r3.xy, r12.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  sample_l_indexable(texture2darray)(float,float,float,float) r10.z, r3.xyzx, t3.yzxw, s0, l(0.000000)
  add r10.z, r10.z, l(-1000.000000)
  mad r9.y, r10.x, r10.z, l(1000.000000)
  if_nz r10.y
    sample_l_indexable(texture2darray)(float,float,float,float) r10.yz, r3.xyzx, t6.zxyw, s0, l(0.000000)
    mul r10.xy, r10.yzyy, r10.xxxx
  else
    mov r10.xy, l(0,0,0,0)
  endif
else
  mov r10.xy, l(0,0,0,0)
  mov r9.y, l(1000.000000)
endif
if_nz r12.w
  add r12.xy, r2.xzxx, r11.xyxx
  add r13.z, r3.z, l(1.000000)
  add r12.xy, -r5.xyxx, r12.xyxx
  mul r10.z, r6.x, r6.y
  div r12.xy, r12.xyxx, r10.zzzz
  add r13.xy, r12.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  sample_l_indexable(texture2darray)(float,float,float,float) r10.z, r13.xyzx, t3.yzxw, s0, l(0.000000)
  add r10.z, r10.z, l(-1000.000000)
  mad r9.y, r8.w, r10.z, r9.y
  if_nz r12.z
    sample_l_indexable(texture2darray)(float,float,float,float) r12.xy, r13.xyzx, t6.xyzw, s0, l(0.000000)
    mad o8.xy, r8.wwww, r12.xyxx, r10.xyxx
  else
    mov o8.xy, r10.xyxx
  endif
else
  mov o8.xy, r10.xyxx
endif
mov_sat o7.y, r10.w
add r10.xyz, r2.xyzx, r11.xzyx
add r10.xyz, r10.xyzx, -cb0[40].xyzx
mul r11.xyz, cb0[40].yyyy, cb1[5].xyzx
mad r11.xyz, cb1[4].xyzx, cb0[40].xxxx, r11.xyzx
mad r11.xyz, cb1[6].xyzx, cb0[40].zzzz, r11.xyzx
add r11.xyz, r11.xyzx, cb1[7].xyzx
mul r12.xyz, r10.yyyy, cb1[5].xyzx
mad r10.xyw, cb1[4].xyxz, r10.xxxx, r12.xyxz
mad r10.xyz, cb1[6].xyzx, r10.zzzz, r10.xywx
add r10.xyz, r11.xyzx, r10.xyzx
dp3 r2.y, cb1[5].xyzx, cb1[5].xyzx
rsq r2.y, r2.y
mul r12.xyz, r2.yyyy, cb1[5].xyzx
dp3 r2.y, cb1[4].xyzx, cb1[4].xyzx
rsq r2.y, r2.y
mul r13.xyz, r2.yyyy, cb1[4].xyzx
mov r10.w, l(1.000000)
dp4 r14.x, r1.xyzw, r10.xyzw
dp4 r14.y, r4.xyzw, r10.xyzw
dp4 r14.z, r0.xyzw, r10.xyzw
dp3 r10.x, r12.xyzx, cb1[4].xyzx
dp3 r10.y, r12.xyzx, cb1[5].xyzx
dp3 r10.z, r12.xyzx, cb1[6].xyzx
dp3 r2.y, r10.xyzx, r10.xyzx
max r2.y, r2.y, l(1.175494351E-38)
rsq r2.y, r2.y
mul o4.xyz, r2.yyyy, r10.xyzx
mul r10.xyz, r13.yyyy, cb1[1].xyzx
mad r10.xyz, cb1[0].xyzx, r13.xxxx, r10.xyzx
mad r10.xyz, cb1[2].xyzx, r13.zzzz, r10.xyzx
dp3 r2.y, r10.xyzx, r10.xyzx
max r2.y, r2.y, l(1.175494351E-38)
rsq r2.y, r2.y
mul o5.xyz, r2.yyyy, r10.xyzx
mul r10.xyzw, r14.yyyy, cb0[17].xyzw
mad r10.xyzw, cb0[16].xyzw, r14.xxxx, r10.xyzw
mad r10.xyzw, cb0[18].xyzw, r14.zzzz, r10.xyzw
add o2.xyzw, r10.xyzw, cb0[19].xyzw
mul r10.xyz, r14.yyyy, cb0[29].xywx
mad r10.xyz, cb0[28].xywx, r14.xxxx, r10.xyzx
mad r10.xyz, cb0[30].xywx, r14.zzzz, r10.xyzx
add o0.xyz, r10.xyzx, cb0[31].xywx
eq r2.y, cb1[37].y, l(0.000000)
if_nz r2.y
  mov o1.xyz, l(0,0,1.000000,0)
else
  lt r2.y, l(0.000000), cb1[37].x
  movc r10.xyz, r2.yyyy, v7.xyzx, v0.xyzx
  mov r10.w, l(1.000000)
  dp4 r1.x, r1.xyzw, r10.xyzw
  dp4 r1.y, r4.xyzw, r10.xyzw
  dp4 r1.z, r0.xyzw, r10.xyzw
  add r0.xyz, r1.xyzx, cb0[40].xyzx
  mad r1.xy, -r8.xyxx, r2.wwww, r0.xzxx
  add r1.zw, r1.xxxy, -cb2[1].xxxz
  max r0.w, |r1.w|, |r1.z|
  div r0.w, r0.w, r7.z
  add r0.w, r0.w, -cb2[2].z
  add r0.w, r0.w, l(-1.000000)
  div r0.w, r0.w, cb2[2].w
  max r0.w, r0.w, l(0.000000)
  add r0.w, r3.w, r0.w
  min r0.w, r0.w, l(1.000000)
  div r1.zw, r1.xxxy, r6.wwww
  frc r1.zw, r1.zzzw
  add r1.zw, r1.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
  lt r2.yw, |r1.zzzw|, l(0.000000, 0.375000, 0.000000, 0.375000)
  mul r1.zw, r0.wwww, r1.zzzw
  mad r1.zw, r1.zzzw, r6.wwww, r1.xxxy
  movc r0.xz, r2.yywy, r1.zzwz, r1.xxyx
  add r0.xyz, r0.xyzx, -cb1[3].xyzx
  mad r0.xyz, r8.zzzz, r0.xyzx, cb1[3].xyzx
  add r0.w, -r0.w, l(1.000000)
  mul r1.x, r5.w, r0.w
  mad r0.w, -r0.w, r5.w, l(1.000000)
  mul r0.w, r6.z, r0.w
  lt r1.y, l(0.001000), r1.x
  if_nz r1.y
    add r1.yz, -r7.xxyx, r0.xxzx
    mul r1.w, r5.z, r7.w
    div r1.yz, r1.yyzy, r1.wwww
    add r3.xy, r1.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000)
    sample_l_indexable(texture2darray)(float,float,float,float) r1.yzw, r3.xyzx, t2.wxyz, s0, l(0.000000)
    mul r1.xyz, r1.yzwy, r1.xxxx
  else
    mov r1.xyz, l(0,0,0,0)
  endif
  lt r1.w, l(0.001000), r0.w
  if_nz r1.w
    add r3.z, r3.z, l(1.000000)
    add r2.yw, -r5.xxxy, r0.xxxz
    mul r1.w, r6.x, r6.y
    div r2.yw, r2.yyyw, r1.wwww
    add r3.xy, r2.ywyy, l(0.500000, 0.500000, 0.000000, 0.000000)
    sample_l_indexable(texture2darray)(float,float,float,float) r3.xyz, r3.xyzx, t2.xyzw, s0, l(0.000000)
    mad r1.xyz, r0.wwww, r3.xyzx, r1.xyzx
  endif
  add r0.xyz, r0.xyzx, r1.xyzx
  add r0.xyz, r0.xyzx, -cb0[40].xyzx
  mul r1.xyz, r0.yyyy, cb1[5].xyzx
  mad r0.xyw, cb1[4].xyxz, r0.xxxx, r1.xyxz
  mad r0.xyz, cb1[6].xyzx, r0.zzzz, r0.xywx
  add r0.xyz, r11.xyzx, r0.xyzx
  add r1.xyw, -cb0[40].xyxz, cb1[32].xyxz
  mov r3.x, cb1[29].x
  mov r3.y, cb1[30].x
  mov r3.z, cb1[31].x
  mov r3.w, r1.x
  mov r0.w, l(1.000000)
  dp4 r3.x, r3.xyzw, r0.xyzw
  mov r4.x, cb1[29].y
  mov r4.y, cb1[30].y
  mov r4.z, cb1[31].y
  mov r4.w, r1.y
  dp4 r3.y, r4.xyzw, r0.xyzw
  mov r1.x, cb1[29].z
  mov r1.y, cb1[30].z
  mov r1.z, cb1[31].z
  dp4 r3.z, r1.xyzw, r0.xyzw
  ilt r0.x, l(0), cb0[372].x
  movc r0.xyz, r0.xxxx, r14.xyzx, r3.xyzx
  mul r1.xyz, r0.yyyy, cb0[33].xywx
  mad r0.xyw, cb0[32].xyxw, r0.xxxx, r1.xyxz
  mad r0.xyz, cb0[34].xywx, r0.zzzz, r0.xywx
  add o1.xyz, r0.xyzx, cb0[35].xywx
endif
mov o5.w, v2.w
mov r9.zw, r2.xxxz
mov o6.xyzw, r9.zwxy
mov o7.x, l(0)
mov o7.zw, v4.zzzw
mov o9.xyzw, v6.xyzw
mov o3.xyz, r14.xyzx
ret
// Approximately 0 instruction slots used

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