//HUD options haloing.
// ---- Created with 3Dmigoto v1.3.15-re2_workaround on Mon Mar 11 22:00:09 2019

cbuffer SceneInfo : register(b0)
{
  row_major float4x4 viewProjMat : packoffset(c0);
  row_major float3x4 transposeViewMat : packoffset(c4);
  row_major float3x4 transposeViewInvMat : packoffset(c7);
  float4 projElement[2] : packoffset(c10);
  float4 projInvElements[2] : packoffset(c12);
  row_major float4x4 viewProjInvMat : packoffset(c14);
  row_major float4x4 prevViewProjMat : packoffset(c18);
  float3 ZToLinear : packoffset(c22);
  float subdivisionLevel : packoffset(c22.w);
  float2 screenSize : packoffset(c23);
  float2 screenInverseSize : packoffset(c23.z);
  float2 cullingHelper : packoffset(c24);
  float cameraNearPlane : packoffset(c24.z);
  float cameraFarPlane : packoffset(c24.w);
  float4 viewFrustum[6] : packoffset(c25);
  float4 clipplane : packoffset(c31);
}

cbuffer World : register(b1)
{
  row_major float4x4 worldMat : packoffset(c0);
  row_major float4x4 prevWorldMat : packoffset(c4);
  int jointOffset : packoffset(c8);
  int prevJoinOffset : packoffset(c8.y);
  int2 reserveWorld : packoffset(c8.z);
}

cbuffer EnvironmentInfo : register(b2)
{
  uint timeMillisecond : packoffset(c0);
  uint frameCount : packoffset(c0.y);
  uint isOddFrame : packoffset(c0.z);
  uint reserveEnvironmentInfo : packoffset(c0.w);
  row_major float4x4 userGlobalParams : packoffset(c1);
  float breakingPBRSpecularIntensity : packoffset(c5);
  float breakingPBRIBLReflectanceBias : packoffset(c5.y);
  float breakingPBRIBLIntensity : packoffset(c5.z);
  float breakingPBR_Reserved : packoffset(c5.w);
}

cbuffer UserMaterial : register(b3)
{
  float4 VAR_BarScale : packoffset(c0);
  float4 VAR_Offset : packoffset(c1);
  float4 VAR_BreakVector : packoffset(c2);
  float4 VAR_TwistIntensity : packoffset(c3);
  float4 VAR_BaseColor : packoffset(c4);
  float4 VAR_LightDirect : packoffset(c5);
  float4 VAR_LightColorBreak : packoffset(c6);
  float4 VAR_LightColor : packoffset(c7);
  float4 VAR_DistortionIntenbsity : packoffset(c8);
  float VAR_MeshScale : packoffset(c9);
  float VAR_BreakPos : packoffset(c9.y);
  float VAR_BreakSmooth : packoffset(c9.z);
  float VAR_BreakBothSide : packoffset(c9.w);
  float VAR_BreakIntensity : packoffset(c10);
  float VAR_NoiseMapContrast : packoffset(c10.y);
  float VAR_VertexNoiseAnimations_B : packoffset(c10.z);
  float VAR_VertexNoiseAnimations_A : packoffset(c10.w);
  float VAR_AspectUV_U : packoffset(c11);
  float VAR_AspectUV_V : packoffset(c11.y);
  float VAR_ScreenSize_Y : packoffset(c11.z);
  float VAR_AntiPos : packoffset(c11.w);
  float VAR_AntiLength : packoffset(c12);
  float VAR_AntiSmooth : packoffset(c12.y);
  float VAR_BreakLightIntensity : packoffset(c12.z);
  float VAR_CutAngle : packoffset(c12.w);
  float VAR_CutSmooth : packoffset(c13);
  float VAR_CutRange : packoffset(c13.y);
  float VAR_CutposX : packoffset(c13.z);
  float VAR_CutposY : packoffset(c13.w);
  float VAR_CutParallel : packoffset(c14);
  float VAR_CutBothSides : packoffset(c14.y);
  float VAR_ColorIntensity : packoffset(c14.z);
  float VAR_FixingLight : packoffset(c14.w);
  float VAR_LightDepth : packoffset(c15);
  float VAR_LightIntensity : packoffset(c15.y);
  float VAR_LightSize : packoffset(c15.z);
  float VAR_LightSmooth : packoffset(c15.w);
  float VAR_MaskSmooth : packoffset(c16);
  float VAR_MaskMax : packoffset(c16.y);
  float VAR_MaskMin : packoffset(c16.z);
  float VAR_NormalBlend : packoffset(c16.w);
  float VAR_InvisibleBlend : packoffset(c17);
  float VAR_WorldMaskFadeRange : packoffset(c17.y);
  float VAR_WorldMaskPosMin : packoffset(c17.z);
  float VAR_WorldMaskPosMax : packoffset(c17.w);
  float VAR_BreakBothSides : packoffset(c18);
  float VAR_FadeMaskPos : packoffset(c18.y);
  float VAR_FadeMaskSmooth : packoffset(c18.z);
  float VAR_FadeMask : packoffset(c18.w);
  float VAR_Alpha : packoffset(c19);
  float VAR_Refraction : packoffset(c19.y);
  float CAPCOM_MATERIAL_RESERVE0 : packoffset(c19.z);
  float CAPCOM_MATERIAL_RESERVE1 : packoffset(c19.w);
}

SamplerState BilinearWrap_s : register(s0);
Texture2D<float4> BreakNoiseMap : register(t0);


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


void main(
  float3 v0 : POSITION0,
  float4 v1 : NORMAL0,
  float4 v2 : TANGENT0,
  float2 v3 : TEXCOORD0,
  float2 v4 : Texcoord1,
  out float4 o0 : SV_POSITION0,
  out float4 o1 : INTERPOLATOR0,
  out float4 o2 : INTERPOLATOR1,
  out float4 o3 : INTERPOLATOR2,
  out float2 o4 : INTERPOLATOR3)
{
  float4 r0,r1,r2,r3,r4,r5,r6;
  uint4 bitmask, uiDest;
  float4 fDest;

  float4 stereo = StereoParams.Load(0);
  float4 iniparams = IniParams.Load(0);
  float4 iniparams1 = IniParams.Load(int2(1,0));
  float4 iniparams3 = IniParams.Load(int2(3,0));
  
  r0.x = VAR_BreakPos + VAR_BreakSmooth;
  r0.y = VAR_BreakPos + -VAR_BreakSmooth;
  r0.x = r0.x + -r0.y;
  r0.x = VAR_BreakPos * r0.x + r0.y;
  r0.y = r0.x * -2 + 1;
  r0.x = VAR_BreakBothSide * r0.y + r0.x;
  r0.y = -0.5 + VAR_BreakBothSide;
  r0.y = VAR_BreakSmooth * r0.y;
  r0.z = r0.y * -2 + r0.x;
  r0.x = -r0.y * -2 + r0.x;
  r0.y = r0.z + -r0.x;
  r0.y = 1 / r0.y;
  r0.zw = float2(-0.5,-0.499900013) + v4.xx;
  r0.z = dot(r0.zzzz, r0.zzzz);
  r0.w = saturate(99.0101242 * r0.w);
  r0.z = sqrt(r0.z);
  r0.z = min(1, r0.z);
  r0.z = 1 + -r0.z;
  r0.z = -v4.x + r0.z;
  r0.z = VAR_BreakBothSide * r0.z + v4.x;
  r0.x = r0.z + -r0.x;
  r0.x = saturate(r0.x * r0.y);
  r0.y = r0.x * -2 + 3;
  r0.xz = r0.xw * r0.xw;
  r0.x = r0.y * r0.x;
  r0.x = VAR_BreakIntensity * r0.x;
  r1.x = 0.5 + -VAR_Offset.x;
  r1.yz = float2(-0.5,0) + VAR_Offset.yz;
  r0.y = 0.100000001 * VAR_MeshScale;
  r1.xyz = r1.xyz * r0.yyy + v0.xyz;
  r0.y = max(1, VAR_BarScale.z);
  r2.z = r1.z * r0.y;
  r2.xy = VAR_BarScale.xy * r1.xy;
  r0.y = r0.w * -2 + 3;
  r0.y = r0.y * r0.z;
  r0.y = VAR_BreakVector.x * r0.y;
  r0.y = VAR_BreakBothSide * r0.y;
  r1.x = r0.y * -2 + VAR_BreakVector.x;
  r0.yz = float2(1000,1000) * VAR_VertexNoiseAnimations_A;
  r0.w = timeMillisecond;
  r0.yz = r0.ww / r0.yz;
  r0.yz = frac(r0.yz);
  r0.yz = v4.xy + r0.yz;
  r0.yz = BreakNoiseMap.SampleLevel(BilinearWrap_s, r0.yz, 0).yz;
  r0.yz = max(float2(9.99999997e-007,9.99999997e-007), r0.yz);
  r0.yz = log2(r0.yz);
  r0.yz = VAR_NoiseMapContrast * r0.yz;
  r0.yz = exp2(r0.yz);
  r0.yz = r0.yz * float2(2,2) + float2(-1,-1);
  r1.yz = VAR_BreakVector.yz * r0.yz;
  r0.yzw = r2.xyz + r1.xyz;
  r1.xyzw = float4(0.0174530558,0.0174530558,0.0174530558,0.0174530558) * VAR_TwistIntensity.zzyx;
  r3.xyz = cos(r1.wyz);
  r1.xyzw = sin(r1.xyzw);
  r4.xyzw = r3.xzxz * r1.xyzw;
  r1.x = r4.w * r1.y;
  r1.x = r1.z * r3.y + r1.x;
  r2.w = r1.x * r0.y;
  r1.x = v1.x * r1.x;
  r5.xy = r1.zz * r1.wy;
  r1.z = -r4.w * r3.y + r5.y;
  r2.w = r1.z * r0.z + r2.w;
  r1.x = r1.z * v1.y + r1.x;
  r3.xzw = r3.xzz * r3.yyx;
  r1.z = r5.x * r3.y + r4.y;
  r1.y = -r5.x * r1.y + r3.z;
  r5.z = r3.w * r0.w + r2.w;
  r2.w = r1.y * r0.y;
  r1.y = v1.x * r1.y;
  r1.y = r1.z * v1.y + r1.y;
  r1.z = r1.z * r0.z + r2.w;
  r5.x = -r4.z * r0.w + r1.z;
  r6.x = -r4.z * v1.z + r1.y;
  r0.y = r4.x * r0.y;
  r1.y = v1.x * r4.x;
  r1.y = r3.x * v1.y + -r1.y;
  r6.y = v1.z * r1.w + r1.y;
  r0.y = r3.x * r0.z + -r0.y;
  r5.y = r0.w * r1.w + r0.y;
  r0.yzw = r5.xyz + -r2.xyz;
  r0.yzw = r0.xxx * r0.yzw + r2.xyz;
  r6.z = r3.w * v1.z + r1.x;
  r1.xyz = -v1.xyz + r6.xyz;
  r1.xyz = r0.xxx * r1.xyz + v1.xyz;
  
  //r0.y+=stereo.x*(r0.w-stereo.y);
  
  r2.xyz = worldMat._m10_m11_m12 * r0.zzz;
  r0.xyz = r0.yyy * worldMat._m00_m01_m02 + r2.xyz;
  r0.xyz = r0.www * worldMat._m20_m21_m22 + r0.xyz;
  r0.xyz = worldMat._m30_m31_m32 + r0.xyz;
  
  
  
  r2.xyzw = viewProjMat._m10_m11_m12_m13 * r0.yyyy;
  r2.xyzw = r0.xxxx * viewProjMat._m00_m01_m02_m03 + r2.xyzw;
  r2.xyzw = r0.zzzz * viewProjMat._m20_m21_m22_m23 + r2.xyzw;
  
  //r2.x-=stereo.x*(r2.w-stereo.y);
  
  o0.xyzw = viewProjMat._m30_m31_m32_m33 + r2.xyzw;
  
  o0.x=o0.x*iniparams.y;
  
  r2.xyz = worldMat._m10_m11_m12 * r1.yyy;
  
  
  
  r1.xyw = r1.xxx * worldMat._m00_m01_m02 + r2.xyz;
  o1.xyz = r1.zzz * worldMat._m20_m21_m22 + r1.xyw;
  o1.w = v3.x;
  
  //v2.x-=stereo.x*(v2.z-stereo.y);
  
  r1.xyz = worldMat._m10_m11_m12 * v2.yyy;
  r1.xyz = v2.xxx * worldMat._m00_m01_m02 + r1.xyz;
  r1.xyz = v2.zzz * worldMat._m20_m21_m22 + r1.xyz;
  o2.w = r1.x;
  o3.xy = r1.yz;
  o2.x = v3.y;
  o2.yz = v4.xy;
  o3.w = r0.x;
  o4.xy = r0.yz;
  o3.z = v2.w;
  
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v1.3.15-re2_workaround on Mon Mar 11 22:00:09 2019
//
//
// Buffer Definitions:
//
// cbuffer SceneInfo
// {
//
//   row_major float4x4 viewProjMat;    // Offset:    0 Size:    64
//   row_major float3x4 transposeViewMat;// Offset:   64 Size:    48 [unused]
//   row_major float3x4 transposeViewInvMat;// Offset:  112 Size:    48 [unused]
//   float4 projElement[2];             // Offset:  160 Size:    32 [unused]
//   float4 projInvElements[2];         // Offset:  192 Size:    32 [unused]
//   row_major float4x4 viewProjInvMat; // Offset:  224 Size:    64 [unused]
//   row_major float4x4 prevViewProjMat;// Offset:  288 Size:    64 [unused]
//   float3 ZToLinear;                  // Offset:  352 Size:    12 [unused]
//   float subdivisionLevel;            // Offset:  364 Size:     4 [unused]
//   float2 screenSize;                 // Offset:  368 Size:     8 [unused]
//   float2 screenInverseSize;          // Offset:  376 Size:     8 [unused]
//   float2 cullingHelper;              // Offset:  384 Size:     8 [unused]
//   float cameraNearPlane;             // Offset:  392 Size:     4 [unused]
//   float cameraFarPlane;              // Offset:  396 Size:     4 [unused]
//   float4 viewFrustum[6];             // Offset:  400 Size:    96 [unused]
//   float4 clipplane;                  // Offset:  496 Size:    16 [unused]
//
// }
//
// cbuffer World
// {
//
//   row_major float4x4 worldMat;       // Offset:    0 Size:    64
//   row_major float4x4 prevWorldMat;   // Offset:   64 Size:    64 [unused]
//   int jointOffset;                   // Offset:  128 Size:     4 [unused]
//   int prevJoinOffset;                // Offset:  132 Size:     4 [unused]
//   int2 reserveWorld;                 // Offset:  136 Size:     8 [unused]
//
// }
//
// cbuffer EnvironmentInfo
// {
//
//   uint timeMillisecond;              // Offset:    0 Size:     4
//   uint frameCount;                   // Offset:    4 Size:     4 [unused]
//   uint isOddFrame;                   // Offset:    8 Size:     4 [unused]
//   uint reserveEnvironmentInfo;       // Offset:   12 Size:     4 [unused]
//   row_major float4x4 userGlobalParams;// Offset:   16 Size:    64 [unused]
//   float breakingPBRSpecularIntensity;// Offset:   80 Size:     4 [unused]
//   float breakingPBRIBLReflectanceBias;// Offset:   84 Size:     4 [unused]
//   float breakingPBRIBLIntensity;     // Offset:   88 Size:     4 [unused]
//   float breakingPBR_Reserved;        // Offset:   92 Size:     4 [unused]
//
// }
//
// cbuffer UserMaterial
// {
//
//   float4 VAR_BarScale;               // Offset:    0 Size:    16
//   float4 VAR_Offset;                 // Offset:   16 Size:    16
//   float4 VAR_BreakVector;            // Offset:   32 Size:    16
//   float4 VAR_TwistIntensity;         // Offset:   48 Size:    16
//   float4 VAR_BaseColor;              // Offset:   64 Size:    16 [unused]
//   float4 VAR_LightDirect;            // Offset:   80 Size:    16 [unused]
//   float4 VAR_LightColorBreak;        // Offset:   96 Size:    16 [unused]
//   float4 VAR_LightColor;             // Offset:  112 Size:    16 [unused]
//   float4 VAR_DistortionIntenbsity;   // Offset:  128 Size:    16 [unused]
//   float VAR_MeshScale;               // Offset:  144 Size:     4
//   float VAR_BreakPos;                // Offset:  148 Size:     4
//   float VAR_BreakSmooth;             // Offset:  152 Size:     4
//   float VAR_BreakBothSide;           // Offset:  156 Size:     4
//   float VAR_BreakIntensity;          // Offset:  160 Size:     4
//   float VAR_NoiseMapContrast;        // Offset:  164 Size:     4
//   float VAR_VertexNoiseAnimations_B; // Offset:  168 Size:     4
//   float VAR_VertexNoiseAnimations_A; // Offset:  172 Size:     4
//   float VAR_AspectUV_U;              // Offset:  176 Size:     4 [unused]
//   float VAR_AspectUV_V;              // Offset:  180 Size:     4 [unused]
//   float VAR_ScreenSize_Y;            // Offset:  184 Size:     4 [unused]
//   float VAR_AntiPos;                 // Offset:  188 Size:     4 [unused]
//   float VAR_AntiLength;              // Offset:  192 Size:     4 [unused]
//   float VAR_AntiSmooth;              // Offset:  196 Size:     4 [unused]
//   float VAR_BreakLightIntensity;     // Offset:  200 Size:     4 [unused]
//   float VAR_CutAngle;                // Offset:  204 Size:     4 [unused]
//   float VAR_CutSmooth;               // Offset:  208 Size:     4 [unused]
//   float VAR_CutRange;                // Offset:  212 Size:     4 [unused]
//   float VAR_CutposX;                 // Offset:  216 Size:     4 [unused]
//   float VAR_CutposY;                 // Offset:  220 Size:     4 [unused]
//   float VAR_CutParallel;             // Offset:  224 Size:     4 [unused]
//   float VAR_CutBothSides;            // Offset:  228 Size:     4 [unused]
//   float VAR_ColorIntensity;          // Offset:  232 Size:     4 [unused]
//   float VAR_FixingLight;             // Offset:  236 Size:     4 [unused]
//   float VAR_LightDepth;              // Offset:  240 Size:     4 [unused]
//   float VAR_LightIntensity;          // Offset:  244 Size:     4 [unused]
//   float VAR_LightSize;               // Offset:  248 Size:     4 [unused]
//   float VAR_LightSmooth;             // Offset:  252 Size:     4 [unused]
//   float VAR_MaskSmooth;              // Offset:  256 Size:     4 [unused]
//   float VAR_MaskMax;                 // Offset:  260 Size:     4 [unused]
//   float VAR_MaskMin;                 // Offset:  264 Size:     4 [unused]
//   float VAR_NormalBlend;             // Offset:  268 Size:     4 [unused]
//   float VAR_InvisibleBlend;          // Offset:  272 Size:     4 [unused]
//   float VAR_WorldMaskFadeRange;      // Offset:  276 Size:     4 [unused]
//   float VAR_WorldMaskPosMin;         // Offset:  280 Size:     4 [unused]
//   float VAR_WorldMaskPosMax;         // Offset:  284 Size:     4 [unused]
//   float VAR_BreakBothSides;          // Offset:  288 Size:     4 [unused]
//   float VAR_FadeMaskPos;             // Offset:  292 Size:     4 [unused]
//   float VAR_FadeMaskSmooth;          // Offset:  296 Size:     4 [unused]
//   float VAR_FadeMask;                // Offset:  300 Size:     4 [unused]
//   float VAR_Alpha;                   // Offset:  304 Size:     4 [unused]
//   float VAR_Refraction;              // Offset:  308 Size:     4 [unused]
//   float CAPCOM_MATERIAL_RESERVE0;    // Offset:  312 Size:     4 [unused]
//   float CAPCOM_MATERIAL_RESERVE1;    // Offset:  316 Size:     4 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// BilinearWrap                      sampler      NA          NA    0        1
// BreakNoiseMap                     texture  float4          2d    0        1
// SceneInfo                         cbuffer      NA          NA    0        1
// World                             cbuffer      NA          NA    1        1
// EnvironmentInfo                   cbuffer      NA          NA    2        1
// UserMaterial                      cbuffer      NA          NA    3        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyz         0     NONE   float   xyz
// NORMAL                   0   xyzw        1     NONE   float   xyz
// TANGENT                  0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 0   xy          3     NONE   float   xy
// Texcoord                 1   xy          4     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// INTERPOLATOR             0   xyzw        1     NONE   float   xyzw
// INTERPOLATOR             1   xyzw        2     NONE   float   xyzw
// INTERPOLATOR             2   xyzw        3     NONE   float   xyzw
// INTERPOLATOR             3   xy          4     NONE   float   xy
//
vs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[4], immediateIndexed
dcl_constantbuffer cb1[4], immediateIndexed
dcl_constantbuffer cb2[1], immediateIndexed
dcl_constantbuffer cb3[11], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input v0.xyz
dcl_input v1.xyz
dcl_input v2.xyzw
dcl_input v3.xy
dcl_input v4.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xy
dcl_temps 7
add r0.x, cb3[9].z, cb3[9].y
add r0.y, -cb3[9].z, cb3[9].y
add r0.x, -r0.y, r0.x
mad r0.x, cb3[9].y, r0.x, r0.y
mad r0.y, r0.x, l(-2.000000), l(1.000000)
mad r0.x, cb3[9].w, r0.y, r0.x
add r0.y, cb3[9].w, l(-0.500000)
mul r0.y, r0.y, cb3[9].z
mad r0.z, r0.y, l(-2.000000), r0.x
mad r0.x, -r0.y, l(-2.000000), r0.x
add r0.y, -r0.x, r0.z
div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
add r0.zw, v4.xxxx, l(0.000000, 0.000000, -0.500000, -0.499900)
dp4 r0.z, r0.zzzz, r0.zzzz
mul_sat r0.w, r0.w, l(99.010124)
sqrt r0.z, r0.z
min r0.z, r0.z, l(1.000000)
add r0.z, -r0.z, l(1.000000)
add r0.z, r0.z, -v4.x
mad r0.z, cb3[9].w, r0.z, v4.x
add r0.x, -r0.x, r0.z
mul_sat r0.x, r0.y, r0.x
mad r0.y, r0.x, l(-2.000000), l(3.000000)
mul r0.xz, r0.xxwx, r0.xxwx
mul r0.x, r0.x, r0.y
mul r0.x, r0.x, cb3[10].x
add r1.x, -cb3[1].x, l(0.500000)
add r1.yz, cb3[1].yyzy, l(0.000000, -0.500000, 0.000000, 0.000000)
mul r0.y, cb3[9].x, l(0.100000)
mad r1.xyz, r1.xyzx, r0.yyyy, v0.xyzx
max r0.y, cb3[0].z, l(1.000000)
mul r2.z, r0.y, r1.z
mul r2.xy, r1.xyxx, cb3[0].xyxx
mad r0.y, r0.w, l(-2.000000), l(3.000000)
mul r0.y, r0.z, r0.y
mul r0.y, r0.y, cb3[2].x
mul r0.y, r0.y, cb3[9].w
mad r1.x, r0.y, l(-2.000000), cb3[2].x
mul r0.yz, cb3[10].wwzw, l(0.000000, 1000.000000, 1000.000000, 0.000000)
utof r0.w, cb2[0].x
div r0.yz, r0.wwww, r0.yyzy
frc r0.yz, r0.yyzy
add r0.yz, r0.yyzy, v4.xxyx
sample_l_indexable(texture2d)(float,float,float,float) r0.yz, r0.yzyy, t0.xyzw, s0, l(0.000000)
max r0.yz, r0.yyzy, l(0.000000, 0.000001, 0.000001, 0.000000)
log r0.yz, r0.yyzy
mul r0.yz, r0.yyzy, cb3[10].yyyy
exp r0.yz, r0.yyzy
mad r0.yz, r0.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
mul r1.yz, r0.yyzy, cb3[2].yyzy
add r0.yzw, r1.xxyz, r2.xxyz
mul r1.xyzw, cb3[3].zzyx, l(0.0174530558, 0.0174530558, 0.0174530558, 0.0174530558)
sincos null, r3.xyz, r1.wyzw
sincos r1.xyzw, null, r1.xyzw
mul r4.xyzw, r1.xyzw, r3.xzxz
mul r1.x, r1.y, r4.w
mad r1.x, r1.z, r3.y, r1.x
mul r2.w, r0.y, r1.x
mul r1.x, r1.x, v1.x
mul r5.xy, r1.wyww, r1.zzzz
mad r1.z, -r4.w, r3.y, r5.y
mad r2.w, r1.z, r0.z, r2.w
mad r1.x, r1.z, v1.y, r1.x
mul r3.xzw, r3.yyyx, r3.xxzz
mad r1.z, r5.x, r3.y, r4.y
mad r1.y, -r5.x, r1.y, r3.z
mad r5.z, r3.w, r0.w, r2.w
mul r2.w, r0.y, r1.y
mul r1.y, r1.y, v1.x
mad r1.y, r1.z, v1.y, r1.y
mad r1.z, r1.z, r0.z, r2.w
mad r5.x, -r4.z, r0.w, r1.z
mad r6.x, -r4.z, v1.z, r1.y
mul r0.y, r0.y, r4.x
mul r1.y, r4.x, v1.x
mad r1.y, r3.x, v1.y, -r1.y
mad r6.y, v1.z, r1.w, r1.y
mad r0.y, r3.x, r0.z, -r0.y
mad r5.y, r0.w, r1.w, r0.y
add r0.yzw, -r2.xxyz, r5.xxyz
mad r0.yzw, r0.xxxx, r0.yyzw, r2.xxyz
mad r6.z, r3.w, v1.z, r1.x
add r1.xyz, r6.xyzx, -v1.xyzx
mad r1.xyz, r0.xxxx, r1.xyzx, v1.xyzx
mul r2.xyz, r0.zzzz, cb1[1].xyzx
mad r0.xyz, r0.yyyy, cb1[0].xyzx, r2.xyzx
mad r0.xyz, r0.wwww, cb1[2].xyzx, r0.xyzx
add r0.xyz, r0.xyzx, cb1[3].xyzx
mul r2.xyzw, r0.yyyy, cb0[1].xyzw
mad r2.xyzw, r0.xxxx, cb0[0].xyzw, r2.xyzw
mad r2.xyzw, r0.zzzz, cb0[2].xyzw, r2.xyzw
add o0.xyzw, r2.xyzw, cb0[3].xyzw
mul r2.xyz, r1.yyyy, cb1[1].xyzx
mad r1.xyw, r1.xxxx, cb1[0].xyxz, r2.xyxz
mad o1.xyz, r1.zzzz, cb1[2].xyzx, r1.xywx
mov o1.w, v3.x
mul r1.xyz, v2.yyyy, cb1[1].xyzx
mad r1.xyz, v2.xxxx, cb1[0].xyzx, r1.xyzx
mad r1.xyz, v2.zzzz, cb1[2].xyzx, r1.xyzx
mov o2.w, r1.x
mov o3.xy, r1.yzyy
mov o2.x, v3.y
mov o2.yz, v4.xxyx
mov o3.w, r0.x
mov o4.xy, r0.yzyy
mov o3.z, v2.w
ret
// Approximately 107 instruction slots used

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