//bullet track
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Thu May 11 18:18:19 2023
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_InstanceID            0   x           0   INSTID    uint
// SV_VertexID              0   x           1   VERTID    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                10   xyz         0     NONE   float   xyz
// PARTICLE_TIME            0      w        0     NONE   float      w
// TEXCOORD                11   xyzw        1     NONE   float   xyzw
// TEXCOORD                 2   xyzw        2     NONE   float   xyzw
// TEXCOORD                 3   xyzw        3     NONE   float   xyzw
// TEXCOORD                 4   xyzw        4     NONE   float   xyzw
// UV_SIZES                 0   x           5     NONE   float   x
// GBX_VERTEX_FOG           0   xyzw        6     NONE   float   xyzw
// SV_POSITION              0   xyzw        7      POS   float   xyzw
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[3], immediateIndexed
dcl_constantbuffer cb1[95], immediateIndexed
dcl_constantbuffer cb2[200], dynamicIndexed
dcl_constantbuffer cb3[20], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_resource_texturecube (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture3d (float,float,float,float) t3
dcl_resource_structured t4, 64
dcl_resource_structured t5, 112
dcl_resource_structured t6, 16
dcl_input_sgv v1.x, vertex_id
dcl_output o0.xyz
dcl_output o0.w
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_output o5.x
dcl_output o6.xyzw
dcl_output_siv o7.xyzw, position
dcl_temps 19
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v1.3.16 on Thu May 11 18:18:19 2023
// struct t6_t {
//   float val[4];
// };
// StructuredBuffer<t6_t> t6 : register(t6);
//
// struct t5_t {
//   float val[28];
// };
// StructuredBuffer<t5_t> t5 : register(t5);
//
// struct t4_t {
//   float val[16];
// };
// StructuredBuffer<t4_t> t4 : register(t4);
//
// Texture3D<float4> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// TextureCube<float4> t0 : register(t0);
//
// SamplerState s3_s : register(s3);
//
// SamplerState s2_s : register(s2);
//
// SamplerState s1_s : register(s1);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb3 : register(b3)
// {
//   float4 cb3[20];
// }
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[200];
// }
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[95];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[3];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main(
//   uint v0 : SV_InstanceID0,
//   uint v1 : SV_VertexID0,
//   out float3 o0 : TEXCOORD10,
//   out float p0 : PARTICLE_TIME0,
//   out float4 o1 : TEXCOORD11,
//   out float4 o2 : TEXCOORD2,
//   out float4 o3 : TEXCOORD3,
//   out float4 o4 : TEXCOORD4,
//   out float o5 : UV_SIZES0,
//   out float4 o6 : GBX_VERTEX_FOG0,
//   out float4 o7 : SV_POSITION0)
// {
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_input_sgv v1.x, vertex_id
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.x = t4[cb0[2].x].val[48/4];
//   r0.y = t4[cb0[2].x].val[48/4+1];
//   r0.z = t4[cb0[2].x].val[48/4+2];
//   r0.w = (uint)v1.x >> 1;
//   r0.yz = (int2)r0.yz + (int2)r0.ww;
//   o0.w = t5[r0.y].val[12/4];
//   o3.x = t5[r0.y].val[64/4];
//   o3.y = t5[r0.y].val[64/4+1];
//   o3.z = t5[r0.y].val[64/4+2];
//   o3.w = t5[r0.y].val[64/4+3];
//   r0.y = t4[cb0[2].x].val[52/4];
//   r0.y = (int)r0.y + (int)r0.w;
//   r1.x = t5[r0.y].val[0/4];
//   r1.y = t5[r0.y].val[0/4+1];
//   r1.z = t5[r0.y].val[0/4+2];
//   r0.w = t5[r0.y].val[32/4];
//   r1.w = t5[r0.y].val[40/4];
//   r2.x = t5[r0.y].val[80/4];
//   r2.y = t5[r0.y].val[80/4+1];
//   r2.z = t5[r0.y].val[80/4+2];
//   r3.x = t5[r0.y].val[96/4];
//   r3.y = t5[r0.y].val[96/4+1];
//   r3.z = t5[r0.y].val[96/4+2];
//   r1.xyz = cb2[71].zxy + r1.zxy;
//   r4.xyz = -cb2[69].yzx + r1.zxy;
//   r2.w = dot(r4.zxy, r4.zxy);
//   r2.w = rsqrt(r2.w);
//   r4.xyz = r4.xyz * r2.www;
//   r5.xyz = r4.yzx * r2.yzx;
//   r4.xyz = r4.xyz * r2.zxy;
//   r4.xyz = r5.xyz + -r4.xyz;
//   r2.w = dot(r4.xyz, r4.xyz);
//   r2.w = rsqrt(r2.w);
//   r4.xyz = r4.xyz * r2.www;
//   r5.xy = cmp(r0.xx == float2(0,1));
//   r3.xyz = r5.yyy ? r3.xyz : float3(0,0,1);
//   r3.xyz = r5.xxx ? r4.xyz : r3.xyz;
//   r4.xyz = r3.zxy * r2.yzx;
//   r2.xyz = r3.yzx * r2.zxy;
//   r2.xyz = r4.xyz + -r2.xyz;
//   r0.x = dot(r2.xyz, r2.xyz);
//   r0.x = rsqrt(r0.x);
//   r2.xyz = r2.xyz * r0.xxx;
//   sincos(r1.w, r0.x, r4.x);
//   r3.xyz = r4.xxx * r3.xyz;
//   r2.xyz = r0.xxx * r2.xyz;
//   r2.xyz = r3.xyz + r2.xyz;
//   bitmask.w = ((~(-1 << 1)) << 1) & 0xffffffff;  r1.w = (((uint)v1.x << 1) & bitmask.w) | ((uint)0 & ~bitmask.w);
//   r1.w = (int)-r1.w + 1;
//   r1.w = (int)r1.w;
//   r2.xyz = r2.xyz * r0.www;
//   r2.xyz = r2.xyz * r1.www;
//   r2.xyz = r2.xyz + r1.yzx;
//   r1.w = asuint(cb3[19].y) << 2;
//   r3.xyzw = cb2[r1.w+0].xyzw * r2.xxxx;
//   r5.xyzw = cb2[r1.w+1].xyzw * r2.yyyy;
//   r3.xyzw = r5.xyzw + r3.xyzw;
//   r5.xyzw = cb2[r1.w+2].xyzw * r2.zzzz;
//   r3.xyzw = r5.xyzw + r3.xyzw;
//   o7.xyzw = cb2[r1.w+3].xyzw + r3.xyzw;
//   r3.x = t5[r0.y].val[48/4];
//   r3.y = t5[r0.y].val[48/4+1];
//   o2.xz = r3.xy * r0.ww;
//   r1.w = (int)v1.x & 1;
//   r1.w = (uint)r1.w;
//   o2.yw = r1.ww * r0.ww;
//   o4.x = t6[r0.z].val[0/4];
//   o4.y = t6[r0.z].val[0/4+1];
//   o4.z = t6[r0.z].val[0/4+2];
//   o4.w = t6[r0.z].val[0/4+3];
//   r3.x = t4[cb0[2].x].val[0/4];
//   r3.y = t4[cb0[2].x].val[0/4+1];
//   r3.z = t4[cb0[2].x].val[0/4+2];
//   r4.y = t4[cb0[2].x].val[16/4];
//   r4.z = t4[cb0[2].x].val[16/4+1];
//   r4.w = t4[cb0[2].x].val[16/4+2];
//   r0.z = t4[cb0[2].x].val[32/4];
//   r5.x = t5[r0.y].val[16/4];
//   r5.y = t5[r0.y].val[16/4+1];
//   r5.z = t5[r0.y].val[16/4+2];
//   r5.xyz = cb2[71].zxy + r5.zxy;
//   r6.xyz = cb2[68].zxy + -r1.xyz;
//   r0.y = dot(r6.xyz, r6.xyz);
//   r0.y = max(0.00999999978, r0.y);
//   r0.y = sqrt(r0.y);
//   r6.xyz = r6.xyz / r0.yyy;
//   r1.xyz = -r5.xyz + r1.xyz;
//   r0.y = dot(r1.xyz, r1.xyz);
//   r0.y = max(0.00999999978, r0.y);
//   r0.y = sqrt(r0.y);
//   r1.xyz = r1.xyz / r0.yyy;
//   r0.y = -1 * r4.x;
//   r5.xyz = r3.xyz * r0.xxx;
//   r5.xyz = r0.yyy * r4.yzw + r5.xyz;
//   r3.xyz = r4.xxx * r3.zxy;
//   r3.xyz = r0.xxx * r4.wyz + r3.xyz;
//   r4.xyz = r6.xyz * r1.zxy;
//   r4.xyz = r6.zxy * r1.xyz + -r4.xyz;
//   r0.x = dot(r4.xyz, r4.xyz);
//   r0.x = max(0.00999999978, r0.x);
//   r0.x = sqrt(r0.x);
//   r4.xyz = r4.xyz / r0.xxx;
//   r0.x = cmp(1.5 < r0.z);
//   r4.xyz = r0.xxx ? r4.xyz : r5.xyz;
//   r0.xyz = r0.xxx ? r1.xyz : r3.xyz;
//   r1.xyz = r4.xyz * r0.xyz;
//   r1.xyz = r4.zxy * r0.yzx + -r1.xyz;
//   r1.w = dot(r1.xyz, r1.xyz);
//   r1.w = rsqrt(r1.w);
//   r1.xyz = r1.xyz * r1.www;
//   r3.xyz = cb3[1].xyz * r4.yyy;
//   r3.xyz = r4.xxx * cb3[0].xyz + r3.xyz;
//   o0.xyz = r4.zzz * cb3[2].xyz + r3.xyz;
//   r3.xyz = cb3[1].xyz * -r1.xxx;
//   r3.xyz = -r1.zzz * cb3[0].xyz + r3.xyz;
//   o1.xyz = -r1.yyy * cb3[2].xyz + r3.xyz;
//   r3.xyz = -r1.xyz * r0.xyz;
//   r0.xyz = r0.zxy * -r1.yzx + -r3.xyz;
//   r0.x = dot(r0.xyz, r4.xyz);
//   r0.y = cmp(0 < r0.x);
//   r0.x = cmp(r0.x < 0);
//   r0.x = (int)-r0.y + (int)r0.x;
//   o1.w = (int)r0.x;
//   r0.xyz = -cb2[69].xyz + r2.xyz;
//   r1.x = dot(r0.xyz, r0.xyz);
//   r1.y = sqrt(r1.x);
//   r1.zw = float2(9.99999975e-006,100) * cb2[169].xx;
//   r2.x = -cb2[168].w + cb2[69].z;
//   r2.z = cb2[169].y * r2.x;
//   r2.xy = cb2[69].xy;
//   r2.xyz = r2.xyz * r1.zzz;
//   r2.w = 6360.00977 + r2.z;
//   r2.z = dot(r2.xyw, r2.xyw);
//   r3.z = sqrt(r2.z);
//   r4.x = rsqrt(r1.x);
//   r5.xyz = r4.xxx * r0.xyz;
//   r4.y = dot(r2.xyw, r5.xyz);
//   r3.w = r4.y / r3.z;
//   r4.z = r3.w * r3.w;
//   r4.z = -1 + r4.z;
//   r2.z = r4.z * r2.z;
//   r4.zw = float2(40449600,41344900) + r2.zz;
//   r4.zw = sqrt(r4.zw);
//   r6.xy = -r4.yy + -r4.zw;
//   r1.z = r1.y * r1.z;
//   r2.z = -cb2[169].w + r1.z;
//   r2.z = max(0, r2.z);
//   r4.z = 0.100000001 * r2.z;
//   r4.z = r4.z / cb2[169].w;
//   r4.z = min(1, r4.z);
//   r1.w = cmp(r1.z < r1.w);
//   r7.y = cb2[168].x * r4.z;
//   r1.z = cb2[170].x + r1.z;
//   r7.x = max(1, r1.z);
//   r6.z = 1;
//   r3.xy = r1.ww ? r7.xy : r6.xz;
//   r1.z = cmp(0 < r6.y);
//   r6.xzw = r6.yyy * r5.xyz;
//   r6.xzw = r6.xzw + r2.xyw;
//   r7.x = r3.x + -r6.y;
//   r4.y = r6.y + r4.y;
//   r7.z = 0.000155520989 * r4.y;
//   r4.yzw = r1.zzz ? r6.xzw : r2.xyw;
//   r7.y = 6430;
//   r6.xyz = r1.zzz ? r7.xyz : r3.xzw;
//   r1.z = cmp(r6.y < 6360.01465);
//   r6.w = 6360.01465 + -r6.y;
//   r7.xyz = r6.www * r5.xyz;
//   r7.xyz = -r7.xyz + r4.yzw;
//   r8.x = r6.x + -r6.w;
//   r6.w = dot(r7.xyz, r5.xyz);
//   r8.z = 0.000157232338 * r6.w;
//   r8.y = 6360.01465;
//   r6.xyz = r1.zzz ? r8.xyz : r6.xyz;
//   r6.w = cmp(6430 >= r6.y);
//   r2.z = cmp(0 < r2.z);
//   r2.z = r2.z ? r6.w : 0;
//   if (r2.z != 0) {
//     r4.yzw = r1.zzz ? r7.xyz : r4.yzw;
//     r1.z = dot(r5.xyz, cb2[167].xyz);
//     r2.z = dot(r4.yzw, cb2[167].xyz);
//     r2.z = r2.z / r6.y;
//     r6.w = 6360 / r6.y;
//     r6.w = r6.w * r6.w;
//     r6.w = 1 + -r6.w;
//     r6.w = sqrt(r6.w);
//     r7.x = 0.00499999989 + -r6.w;
//     r7.y = 0.150000006 + r7.x;
//     r7.y = max(r7.y, r6.z);
//     r6.z = max(r7.x, r6.z);
//     r8.x = r1.w ? r7.y : r6.z;
//     r6.z = 1.44269502 * -r5.z;
//     r6.z = exp2(r6.z);
//     r9.y = saturate(-0.5 + r6.z);
//     r6.z = cmp(r9.y < 1);
//     r5.w = max(0.150000006, r5.z);
//     r7.y = dot(r5.xyw, r5.xyw);
//     r7.y = rsqrt(r7.y);
//     r10.xyz = r7.yyy * r5.xyw;
//     r7.yzw = r10.xyz * r6.xxx;
//     r7.yzw = r7.yzw + r4.yzw;
//     r5.w = dot(r7.yzw, r7.yzw);
//     r5.w = sqrt(r5.w);
//     r7.y = dot(r7.yzw, r10.xyz);
//     r10.w = r7.y / r5.w;
//     r8.yzw = r5.xyz;
//     r10.xyzw = r6.zzzz ? r10.xyzw : r8.yzwx;
//     r9.x = r10.w;
//     r8.y = 0;
//     r9.xy = r1.ww ? r9.xy : r8.xy;
//     r5.w = r1.z * r1.z + 1;
//     r6.z = 0.0596831031 * r5.w;
//     r7.y = -r1.z * 1.60000002 + 1.63999999;
//     r7.y = log2(abs(r7.y));
//     r7.y = -1.5 * r7.y;
//     r7.y = exp2(r7.y);
//     r5.w = r7.y * r5.w;
//     r11.x = 0.0162772108 * r5.w;
//     r5.w = r6.y * r6.y;
//     r7.y = r6.y * r6.y + -40449600;
//     r7.y = sqrt(r7.y);
//     r7.z = r9.x * r6.y;
//     r7.w = r7.z * r7.z;
//     r7.w = r7.w + -r5.w;
//     r7.w = 40449600 + r7.w;
//     r8.y = cmp(r7.z < 0);
//     r8.z = cmp(0 < r7.w);
//     r8.y = r8.z ? r8.y : 0;
//     r12.xyzw = r8.yyyy ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//     r8.y = asuint(cb2[170].w);
//     r8.z = 0.5 / r8.y;
//     r8.w = 0.00105685578 * r7.y;
//     r8.y = 1 / r8.y;
//     r8.y = 1 + -r8.y;
//     r13.z = r8.w * r8.y + r8.z;
//     r7.w = r12.y + r7.w;
//     r7.w = sqrt(r7.w);
//     r7.z = r7.z * r12.x + r7.w;
//     r7.w = r12.z + r7.y;
//     r7.z = r7.z / r7.w;
//     r13.w = r7.z * 0.4921875 + r12.w;
//     r7.z = max(-0.197500005, r2.z);
//     r7.z = 5.34962368 * r7.z;
//     r7.w = min(1, abs(r7.z));
//     r8.w = max(1, abs(r7.z));
//     r8.w = 1 / r8.w;
//     r7.w = r8.w * r7.w;
//     r8.w = r7.w * r7.w;
//     r9.w = r8.w * 0.0208350997 + -0.0851330012;
//     r9.w = r8.w * r9.w + 0.180141002;
//     r9.w = r8.w * r9.w + -0.330299497;
//     r8.w = r8.w * r9.w + 0.999866009;
//     r9.w = r8.w * r7.w;
//     r10.w = cmp(1 < abs(r7.z));
//     r9.w = r9.w * -2 + 1.57079637;
//     r9.w = r10.w ? r9.w : 0;
//     r7.w = r7.w * r8.w + r9.w;
//     r7.z = min(1, r7.z);
//     r7.z = cmp(r7.z < -r7.z);
//     r7.z = r7.z ? -r7.w : r7.w;
//     r7.z = r7.z * 0.909090877 + 0.74000001;
//     r7.z = r7.z * 0.484375 + 0.015625;
//     r1.z = 1 + r1.z;
//     r7.w = 3.5 * r1.z;
//     r7.w = floor(r7.w);
//     r1.z = r1.z * 3.5 + -r7.w;
//     r7.z = r7.w + r7.z;
//     r13.y = 0.125 * r7.z;
//     r12.xyzw = t3.SampleLevel(s3_s, r13.ywz, 0).xyzw;
//     r8.w = 1 + -r1.z;
//     r7.z = 1 + r7.z;
//     r13.x = 0.125 * r7.z;
//     r14.xyzw = t3.SampleLevel(s3_s, r13.xwz, 0).xyzw;
//     r14.xyzw = r14.xyzw * r1.zzzz;
//     r12.xyzw = r12.xyzw * r8.wwww + r14.xyzw;
//     r12.xyzw = max(float4(0,0,0,0), r12.xyzw);
//     r7.z = cmp(0 < r6.x);
//     if (r7.z != 0) {
//       r14.xyz = r6.xxx * r5.xyz;
//       r4.yzw = r14.xyz + r4.yzw;
//       r7.z = dot(r4.yzw, r4.yzw);
//       r7.z = sqrt(r7.z);
//       r9.w = 0.5 / cb2[169].z;
//       r9.w = r9.w * r6.y;
//       r9.w = sqrt(r9.w);
//       r10.w = r6.x / r6.y;
//       r9.z = r10.w + r9.x;
//       r14.xy = r9.ww * r9.xz;
//       r14.zw = cmp(float2(0,0) < r14.xy);
//       r15.xy = cmp(r14.xy < float2(0,0));
//       r14.zw = (int2)-r14.zw + (int2)r15.xy;
//       r14.zw = (int2)r14.zw;
//       r15.xyz = r14.xxy * r14.xxy;
//       r9.w = cmp(r14.z < r14.w);
//       r10.w = 1.44269502 * r15.x;
//       r10.w = exp2(r10.w);
//       r9.w = r9.w ? r10.w : 0;
//       r15.xy = r15.yz * float2(1.51999998,1.51999998) + float2(4,4);
//       r15.xy = sqrt(r15.xy);
//       r14.xy = abs(r14.xy) * float2(2.31929994,2.31929994) + r15.xy;
//       r14.xy = r14.zw / r14.xy;
//       r10.w = -r6.x / cb2[169].z;
//       r15.xyz = float3(2,0.416666657,7.53972054) * r6.yyy;
//       r14.z = r6.x / r15.x;
//       r14.z = r14.z + r9.x;
//       r10.w = r14.z * r10.w;
//       r10.w = 1.44269502 * r10.w;
//       r16.y = exp2(r10.w);
//       r16.xz = float2(1,1);
//       r14.xy = r16.xy * r14.xy;
//       r10.w = 6.28310013 * cb2[169].z;
//       r10.w = r10.w * r6.y;
//       r10.w = sqrt(r10.w);
//       r14.w = 6360 + -r6.y;
//       r15.w = r14.w / cb2[169].z;
//       r15.w = 1.44269502 * r15.w;
//       r15.w = exp2(r15.w);
//       r10.w = r15.w * r10.w;
//       r14.x = dot(r14.xy, float2(1,-1));
//       r9.w = r14.x + r9.w;
//       r9.w = r10.w * r9.w;
//       r14.xy = sqrt(r15.yz);
//       r15.yz = r14.xx * r9.xz;
//       r16.xy = cmp(float2(0,0) < r15.yz);
//       r17.xy = cmp(r15.yz < float2(0,0));
//       r16.xy = (int2)-r16.xy + (int2)r17.xy;
//       r16.xy = (int2)r16.xy;
//       r17.xyz = r15.yyz * r15.yyz;
//       r9.z = cmp(r16.x < r16.y);
//       r10.w = 1.44269502 * r17.x;
//       r10.w = exp2(r10.w);
//       r9.z = r9.z ? r10.w : 0;
//       r17.xy = r17.yz * float2(1.51999998,1.51999998) + float2(4,4);
//       r17.xy = sqrt(r17.xy);
//       r15.yz = abs(r15.yz) * float2(2.31929994,2.31929994) + r17.xy;
//       r15.yz = r16.xy / r15.yz;
//       r10.w = r14.z * -r6.x;
//       r10.w = 1.20224583 * r10.w;
//       r16.w = exp2(r10.w);
//       r14.xz = r16.zw * r15.yz;
//       r10.w = 1.20224583 * r14.w;
//       r10.w = exp2(r10.w);
//       r10.w = r14.y * r10.w;
//       r14.x = dot(r14.xz, float2(1,-1));
//       r9.z = r14.x + r9.z;
//       r9.z = r10.w * r9.z;
//       r9.z = 0.00444444455 * r9.z;
//       r14.xyz = r9.www * float3(-0.00579999993,-0.0135000004,-0.0331000015) + -r9.zzz;
//       r14.xyz = float3(1.44269502,1.44269502,1.44269502) * r14.xyz;
//       r14.xyz = exp2(r14.xyz);
//       r9.z = max(r7.z, r6.y);
//       r9.z = r1.w ? r9.z : r7.z;
//       r9.w = cmp(6360.00977 < r9.z);
//       if (r9.w != 0) {
//         r9.w = cmp(r9.y < 1);
//         if (r9.w != 0) {
//           r10.xyz = r1.www ? r10.xyz : r5.xyz;
//           r9.w = dot(r4.yzw, r10.xyz);
//           r9.w = r9.w / r7.z;
//           r4.y = dot(r4.yzw, cb2[167].xyz);
//           r4.y = r4.y / r7.z;
//           r4.z = r9.z * r9.z;
//           r4.w = r9.z * r9.z + -40449600;
//           r4.w = sqrt(r4.w);
//           r7.z = r9.z * r9.w;
//           r9.z = r7.z * r7.z;
//           r4.z = r9.z + -r4.z;
//           r4.z = 40449600 + r4.z;
//           r9.z = cmp(r7.z < 0);
//           r9.w = cmp(0 < r4.z);
//           r9.z = r9.w ? r9.z : 0;
//           r10.xyzw = r9.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//           r9.z = r4.w * r8.y;
//           r16.y = r9.z * 0.00105685578 + r8.z;
//           r4.zw = r10.yz + r4.zw;
//           r4.z = sqrt(r4.z);
//           r4.z = r7.z * r10.x + r4.z;
//           r4.z = r4.z / r4.w;
//           r16.x = r4.z * 0.4921875 + r10.w;
//           r4.y = max(-0.197500005, r4.y);
//           r4.y = 5.34962368 * r4.y;
//           r4.z = min(1, abs(r4.y));
//           r4.w = max(1, abs(r4.y));
//           r4.w = 1 / r4.w;
//           r4.z = r4.z * r4.w;
//           r4.w = r4.z * r4.z;
//           r7.z = r4.w * 0.0208350997 + -0.0851330012;
//           r7.z = r4.w * r7.z + 0.180141002;
//           r7.z = r4.w * r7.z + -0.330299497;
//           r4.w = r4.w * r7.z + 0.999866009;
//           r7.z = r4.z * r4.w;
//           r9.z = cmp(1 < abs(r4.y));
//           r7.z = r7.z * -2 + 1.57079637;
//           r7.z = r9.z ? r7.z : 0;
//           r4.z = r4.z * r4.w + r7.z;
//           r4.y = min(1, r4.y);
//           r4.y = cmp(r4.y < -r4.y);
//           r4.y = r4.y ? -r4.z : r4.z;
//           r4.y = r4.y * 0.909090877 + 0.74000001;
//           r4.y = r4.y * 0.484375 + r7.w;
//           r4.yz = float2(0.015625,1.015625) + r4.yy;
//           r16.zw = float2(0.125,0.125) * r4.yz;
//           r10.xyzw = t3.SampleLevel(s3_s, r16.zxy, 0).xyzw;
//           r17.xyzw = t3.SampleLevel(s3_s, r16.wxy, 0).xyzw;
//           r17.xyzw = r17.xyzw * r1.zzzz;
//           r10.xyzw = r10.xyzw * r8.wwww + r17.xyzw;
//           r10.xyzw = -r14.xyzx * r10.xyzw + r12.xyzw;
//           r12.xyzw = max(float4(0,0,0,0), r10.xyzw);
//           if (r1.w == 0) {
//             r4.y = r9.x + r6.w;
//             r4.z = cmp(abs(r4.y) < 0.00499999989);
//             if (r4.z != 0) {
//               r4.y = 0.00499999989 + r4.y;
//               r4.y = 100 * r4.y;
//               r4.z = -0.00499999989 + -r6.w;
//               r4.w = r6.x * r6.x;
//               r4.w = r5.w + r4.w;
//               r6.w = r15.x * r6.x;
//               r7.z = r6.w * r4.z;
//               r7.z = r7.z + r4.w;
//               r7.z = sqrt(r7.z);
//               r4.z = r6.y * r4.z;
//               r7.w = r4.z + r6.x;
//               r7.w = r7.w / r7.z;
//               r7.w = max(r7.x, r7.w);
//               r9.x = r4.z * r4.z;
//               r9.x = r9.x + -r5.w;
//               r9.x = 40449600 + r9.x;
//               r9.z = cmp(r4.z < 0);
//               r9.w = cmp(0 < r9.x);
//               r9.z = r9.w ? r9.z : 0;
//               r10.xyzw = r9.zzzz ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r9.x = r10.y + r9.x;
//               r9.x = sqrt(r9.x);
//               r4.z = r4.z * r10.x + r9.x;
//               r9.x = r10.z + r7.y;
//               r4.z = r4.z / r9.x;
//               r10.x = r4.z * 0.4921875 + r10.w;
//               r10.yz = r13.yz;
//               r15.xyzw = t3.SampleLevel(s3_s, r10.yxz, 0).xyzw;
//               r13.y = r10.x;
//               r17.xyzw = t3.SampleLevel(s3_s, r13.xyz, 0).xyzw;
//               r17.xyzw = r17.xyzw * r1.zzzz;
//               r15.xyzw = r15.xyzw * r8.wwww + r17.xyzw;
//               r4.z = r7.z * r7.z;
//               r9.x = r7.z * r7.z + -40449600;
//               r9.x = sqrt(r9.x);
//               r7.z = r7.z * r7.w;
//               r7.w = r7.z * r7.z;
//               r4.z = r7.w + -r4.z;
//               r4.z = 40449600 + r4.z;
//               r7.w = cmp(r7.z < 0);
//               r9.z = cmp(0 < r4.z);
//               r7.w = r7.w ? r9.z : 0;
//               r17.xyzw = r7.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r7.w = r9.x * r8.y;
//               r16.y = r7.w * 0.00105685578 + r8.z;
//               r4.z = r17.y + r4.z;
//               r4.z = sqrt(r4.z);
//               r4.z = r7.z * r17.x + r4.z;
//               r7.z = r17.z + r9.x;
//               r4.z = r4.z / r7.z;
//               r16.x = r4.z * 0.4921875 + r17.w;
//               r17.xyzw = t3.SampleLevel(s3_s, r16.zxy, 0).xyzw;
//               r18.xyzw = t3.SampleLevel(s3_s, r16.wxy, 0).xyzw;
//               r18.xyzw = r18.xyzw * r1.zzzz;
//               r17.xyzw = r17.xyzw * r8.wwww + r18.xyzw;
//               r15.xyzw = -r14.xyzx * r17.xyzw + r15.xyzw;
//               r15.xyzw = max(float4(0,0,0,0), r15.xyzw);
//               r4.z = r6.w * r7.x;
//               r4.z = r4.w + r4.z;
//               r4.z = sqrt(r4.z);
//               r4.w = r7.x * r6.y;
//               r6.x = r4.w + r6.x;
//               r6.x = r6.x / r4.z;
//               r6.x = max(r7.x, r6.x);
//               r6.w = r4.w * r4.w;
//               r6.w = r6.w + -r5.w;
//               r6.w = 40449600 + r6.w;
//               r7.x = cmp(r4.w < 0);
//               r7.z = cmp(0 < r6.w);
//               r7.x = r7.z ? r7.x : 0;
//               r17.xyzw = r7.xxxx ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r6.w = r17.y + r6.w;
//               r6.w = sqrt(r6.w);
//               r4.w = r4.w * r17.x + r6.w;
//               r6.w = r17.z + r7.y;
//               r4.w = r4.w / r6.w;
//               r10.w = r4.w * 0.4921875 + r17.w;
//               r17.xyzw = t3.SampleLevel(s3_s, r10.ywz, 0).xyzw;
//               r13.w = r10.w;
//               r10.xyzw = t3.SampleLevel(s3_s, r13.xwz, 0).xyzw;
//               r10.xyzw = r10.xyzw * r1.zzzz;
//               r10.xyzw = r17.xyzw * r8.wwww + r10.xyzw;
//               r4.w = r4.z * r4.z;
//               r6.w = r4.z * r4.z + -40449600;
//               r6.w = sqrt(r6.w);
//               r4.z = r6.x * r4.z;
//               r6.x = r4.z * r4.z;
//               r4.w = r6.x + -r4.w;
//               r4.w = 40449600 + r4.w;
//               r6.x = cmp(r4.z < 0);
//               r7.x = cmp(0 < r4.w);
//               r6.x = r6.x ? r7.x : 0;
//               r17.xyzw = r6.xxxx ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r6.x = r6.w * r8.y;
//               r16.y = r6.x * 0.00105685578 + r8.z;
//               r4.w = r17.y + r4.w;
//               r4.w = sqrt(r4.w);
//               r4.z = r4.z * r17.x + r4.w;
//               r4.w = r17.z + r6.w;
//               r4.z = r4.z / r4.w;
//               r16.x = r4.z * 0.4921875 + r17.w;
//               r17.xyzw = t3.SampleLevel(s3_s, r16.zxy, 0).xyzw;
//               r16.xyzw = t3.SampleLevel(s3_s, r16.wxy, 0).xyzw;
//               r16.xyzw = r16.xyzw * r1.zzzz;
//               r16.xyzw = r17.xyzw * r8.wwww + r16.xyzw;
//               r10.xyzw = -r14.xyzx * r16.xyzw + r10.xyzw;
//               r10.xyzw = max(float4(0,0,0,0), r10.xyzw);
//               r10.xyzw = r10.xyzw + -r15.xyzw;
//               r12.xyzw = r4.yyyy * r10.xyzw + r15.xyzw;
//             }
//           } else {
//             r4.y = cmp(0 < r9.y);
//             if (r4.y != 0) {
//               r10.xyzw = float4(1,1,1,1) + -r14.xyzx;
//               r4.y = r8.x * r6.y;
//               r4.z = r4.y * r4.y;
//               r4.z = r4.z + -r5.w;
//               r4.z = 40449600 + r4.z;
//               r4.w = cmp(r4.y < 0);
//               r5.w = cmp(0 < r4.z);
//               r4.w = r4.w ? r5.w : 0;
//               r15.xyzw = r4.wwww ? float4(1,0,0,0.49609375) : float4(-1,895300,946.202942,0.50390625);
//               r4.z = r15.y + r4.z;
//               r4.z = sqrt(r4.z);
//               r4.y = r4.y * r15.x + r4.z;
//               r4.z = r15.z + r7.y;
//               r4.y = r4.y / r4.z;
//               r7.y = r4.y * 0.4921875 + r15.w;
//               r7.xz = r13.yz;
//               r15.xyzw = t3.SampleLevel(s3_s, r7.xyz, 0).xyzw;
//               r7.xz = r13.xz;
//               r7.xyzw = t3.SampleLevel(s3_s, r7.xyz, 0).xyzw;
//               r7.xyzw = r7.xyzw * r1.zzzz;
//               r7.xyzw = r15.xyzw * r8.wwww + r7.xyzw;
//               r7.xyzw = max(float4(0,0,0,0), r7.xyzw);
//               r7.xyzw = r10.xyzw * r7.xyzw + -r12.xyzw;
//               r12.xyzw = r9.yyyy * r7.xyzw + r12.xyzw;
//             }
//           }
//         } else {
//           r7.xyzw = float4(1,1,1,1) + -r14.xyzx;
//           r12.xyzw = r7.xyzw * r12.xyzw;
//         }
//       }
//     } else {
//       r14.xyz = float3(1,1,1);
//     }
//     r1.z = saturate(50 * r2.z);
//     r2.z = r1.z * -2 + 3;
//     r1.z = r1.z * r1.z;
//     r1.z = r2.z * r1.z;
//     r1.z = r12.w * r1.z;
//     r4.yzw = r12.xyz * r1.zzz;
//     r1.z = max(9.99999975e-005, r12.x);
//     r4.yzw = r4.yzw / r1.zzz;
//     r11.yzw = float3(1,0.429629624,0.175226584);
//     r4.yzw = r4.yzw * r11.yxx;
//     r4.yzw = r4.yzw * r11.xzw;
//     r4.yzw = r12.xyz * r6.zzz + r4.yzw;
//     r4.yzw = max(float3(0,0,0), r4.yzw);
//   } else {
//     r14.xyz = float3(1,1,1);
//     r4.yzw = float3(0,0,0);
//   }
//   r6.xy = asint(cb2[170].zz) & int2(2,1);
//   if (r6.x == 0) {
//     r1.z = cmp(0 < r3.x);
//     if (r1.z != 0) {
//       r6.xzw = r3.xxx * r5.xyz;
//       r2.xyz = r6.xzw + r2.xyw;
//       r1.z = dot(r2.xyz, r2.xyz);
//       r1.z = sqrt(r1.z);
//       r2.xyz = r2.xyz / r1.zzz;
//       r2.w = dot(r2.xyz, cb2[167].xyz);
//       r1.z = -6360 + r1.z;
//       r7.z = 0.0142857144 * r1.z;
//       r8.y = sqrt(r7.z);
//       r6.xz = float2(0.150000006,0.200000003) + r2.ww;
//       r7.xy = float2(0.869565248,0.833333313) * r6.xz;
//       r1.z = 14.1014204 * r7.x;
//       r5.w = min(1, abs(r1.z));
//       r6.x = max(1, abs(r1.z));
//       r6.x = 1 / r6.x;
//       r5.w = r6.x * r5.w;
//       r6.x = r5.w * r5.w;
//       r6.z = 0.0208350997 * r6.x;
//       r6.z = -0.0851330012 + r6.z;
//       r6.z = r6.x * r6.z;
//       r6.z = 0.180141002 + r6.z;
//       r6.z = r6.x * r6.z;
//       r6.z = -0.330299497 + r6.z;
//       r6.x = r6.x * r6.z;
//       r6.x = 0.999866009 + r6.x;
//       r5.w = r6.x * r5.w;
//       r6.x = cmp(1 < abs(r1.z));
//       r6.z = -2 * r5.w;
//       r6.z = 1.57079637 + r6.z;
//       r6.x = r6.x ? r6.z : 0;
//       r5.w = r6.x + r5.w;
//       r1.z = min(1, r1.z);
//       r1.z = cmp(r1.z < -r1.z);
//       r1.z = r1.z ? -r5.w : r5.w;
//       r8.x = 0.666666687 * r1.z;
//       r6.xzw = t1.SampleLevel(s1_s, r8.xy, 0).xyz;
//       r6.xzw = r1.www ? float3(0,0,0) : r6.xzw;
//       r7.xyz = t2.SampleLevel(s2_s, r7.yz, 0).xyz;
//       r1.z = max(0, r2.w);
//       r7.xyz = r1.zzz * r6.xzw + r7.xyz;
//       r7.xyz = float3(0.00318309898,0.00318309898,0.00318309898) * r7.xyz;
//       r8.xyz = -r0.xyz * r4.xxx + cb2[167].xyz;
//       r1.z = dot(r8.xyz, r8.xyz);
//       r1.z = rsqrt(r1.z);
//       r8.xyz = r8.xyz * r1.zzz;
//       r1.z = dot(-r5.xyz, r8.xyz);
//       r1.z = 1 + -r1.z;
//       r2.w = r1.z * r1.z;
//       r2.w = r2.w * r2.w;
//       r1.z = r2.w * r1.z;
//       r1.z = r1.z * 0.980000019 + 0.0199999996;
//       r2.x = dot(r8.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.z = r2.x * r1.z;
//       r1.z = max(0, r1.z);
//       r2.xyz = r1.zzz * r6.xzw + r7.xyz;
//       r2.xyz = r1.www ? r7.xyz : r2.xyz;
//       r2.xyz = r14.xyz * r2.xyz;
//     } else {
//       r2.xyz = float3(0,0,0);
//     }
//   } else {
//     r2.xyz = float3(0,0,0);
//   }
//   if (r6.y == 0) {
//     r1.z = cmp(6430 >= r3.z);
//     r3.zw = float2(-6360,0.150000006) + r3.zw;
//     r3.zw = float2(0.0142857144,0.869565248) * r3.zw;
//     r6.y = sqrt(r3.z);
//     r1.w = 14.1014204 * r3.w;
//     r2.w = min(1, abs(r1.w));
//     r3.z = max(1, abs(r1.w));
//     r3.z = 1 / r3.z;
//     r2.w = r3.z * r2.w;
//     r3.z = r2.w * r2.w;
//     r3.w = 0.0208350997 * r3.z;
//     r3.w = -0.0851330012 + r3.w;
//     r3.w = r3.z * r3.w;
//     r3.w = 0.180141002 + r3.w;
//     r3.w = r3.z * r3.w;
//     r3.w = -0.330299497 + r3.w;
//     r3.z = r3.z * r3.w;
//     r3.z = 0.999866009 + r3.z;
//     r2.w = r3.z * r2.w;
//     r3.z = cmp(1 < abs(r1.w));
//     r3.w = -2 * r2.w;
//     r3.w = 1.57079637 + r3.w;
//     r3.z = r3.z ? r3.w : 0;
//     r2.w = r3.z + r2.w;
//     r1.w = min(1, r1.w);
//     r1.w = cmp(r1.w < -r1.w);
//     r1.w = r1.w ? -r2.w : r2.w;
//     r6.x = 0.666666687 * r1.w;
//     r6.xyz = t1.SampleLevel(s1_s, r6.xy, 0).xyz;
//     r6.xyz = r1.zzz ? r6.xyz : float3(1,1,1);
//     r1.z = cmp(0 < r3.x);
//     r1.w = 3.14159274 * cb2[170].y;
//     r1.w = 0.00555555569 * r1.w;
//     r1.w = cos(r1.w);
//     r2.w = dot(r5.xyz, cb2[167].xyz);
//     r1.w = cmp(r2.w >= r1.w);
//     r1.w = r1.w ? 1.000000 : 0;
//     r3.xzw = r6.xyz * r1.www;
//     r3.xzw = r1.zzz ? float3(0,0,0) : r3.xzw;
//   } else {
//     r3.xzw = float3(0,0,0);
//   }
//   r2.xyz = r3.xzw + r2.xyz;
//   r2.xyz = r2.xyz + r4.yzw;
//   r1.z = cb2[167].w * r3.y;
//   r3.xyz = cb2[171].xyz * r1.zzz;
//   r2.xyz = r3.xyz * r2.xyz;
//   r1.z = dot(r0.xyz, cb2[60].xyz);
//   r1.y = r1.y / r1.z;
//   r1.y = cb2[199].z * r1.y;
//   r1.y = max(0, r1.y);
//   r1.y = max(cb1[87].w, r1.y);
//   r1.z = cmp(0 < r1.y);
//   r1.w = cmp(asint(cb1[94].z) == 1);
//   r2.w = cb2[68].z + cb1[94].w;
//   r1.w = r1.w ? r2.w : cb1[89].y;
//   r1.xy = r4.xx * r1.xy;
//   r2.w = r1.y * r0.z;
//   r3.x = cb2[68].z + r2.w;
//   r2.w = -r2.w + r0.z;
//   r1.y = 1 + -r1.y;
//   r1.y = r1.y * r1.x;
//   r1.w = r3.x + -r1.w;
//   r1.w = cb1[87].y * r1.w;
//   r1.w = max(-127, r1.w);
//   r1.w = exp2(-r1.w);
//   r1.w = cb1[89].x * r1.w;
//   r1.w = r1.z ? r1.w : cb1[87].x;
//   r1.y = r1.z ? r1.y : r1.x;
//   r1.z = r1.z ? r2.w : r0.z;
//   r1.z = cb1[87].y * r1.z;
//   r1.z = max(-127, r1.z);
//   r2.w = exp2(-r1.z);
//   r2.w = 1 + -r2.w;
//   r2.w = r2.w / r1.z;
//   r3.x = 0.240226507 * r1.z;
//   r3.x = 0.693147182 + -r3.x;
//   r1.z = cmp(0.00999999978 < abs(r1.z));
//   r1.z = r1.z ? r2.w : r3.x;
//   r1.z = r1.w * r1.z;
//   r1.w = r1.z * r1.y;
//   r3.xy = cmp(float2(0,0) < cb1[89].zw);
//   if (r3.x != 0) {
//     r2.w = saturate(r1.x * cb1[91].x + cb1[91].y);
//     r3.xz = float2(1,-1) * cb1[90].yx;
//     r4.x = dot(r0.xy, r3.xz);
//     r4.y = dot(r0.xy, cb1[90].xy);
//     r4.z = r0.z;
//     r0.xyz = t0.SampleLevel(s0_s, r4.xyz, 0).xyz;
//     r3.xzw = t0.SampleLevel(s0_s, r4.xyz, cb1[91].z).xyz;
//     r0.xyz = -r3.xzw + r0.xyz;
//     r0.xyz = r2.www * r0.xyz + r3.xzw;
//     r0.xyz = cb1[88].xyz * r0.xyz;
//   } else {
//     r0.xyz = cb1[88].xyz;
//   }
//   r2.w = cmp(0 < cb1[92].w);
//   r3.x = cmp(cb1[89].z == 0.000000);
//   r2.w = r2.w ? r3.x : 0;
//   r3.x = saturate(dot(r5.xyz, cb1[92].xyz));
//   r3.x = log2(r3.x);
//   r3.x = cb1[93].w * r3.x;
//   r3.x = exp2(r3.x);
//   r3.xzw = cb1[93].xyz * r3.xxx;
//   r1.y = -cb1[94].x + r1.y;
//   r1.y = max(0, r1.y);
//   r1.y = r1.z * r1.y;
//   r1.y = exp2(-r1.y);
//   r1.y = min(1, r1.y);
//   r1.y = 1 + -r1.y;
//   r3.xzw = r3.xzw * r1.yyy;
//   r4.xyz = r2.www ? r3.xzw : 0;
//   r1.y = exp2(-r1.w);
//   r1.y = min(1, r1.y);
//   r4.w = max(cb1[88].w, r1.y);
//   r1.x = cmp(cb1[89].w < r1.x);
//   r1.x = r1.x ? r3.y : 0;
//   r1.xyzw = r1.xxxx ? float4(0,0,0,1) : r4.xyzw;
//   r2.w = 1 + -r1.w;
//   r0.xyz = r0.xyz * r2.www + r1.xyz;
//   o6.xyz = r2.xyz * r1.www + r0.xyz;
//   o6.w = r1.w;
//   o5.x = r0.w;
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// E:\Games\Tiny Tina's Wonderlands\OakGame\Binaries\Win64\ShaderFixes\3aa63d4780e9b1e6-vs_replace.txt(86,3-6): error X3018: invalid subscript 'w'
/////////////////////////////////////////////////////////////////////////////
