// ---- Created with 3Dmigoto v1.3.16 on Sun Jan 14 13:28:20 2024

cbuffer _Globals : register(b0)
{
  float4 vEye : packoffset(c0);
  float4 cDiff : packoffset(c1);
  float wtDtPkFdPrms[32] : packoffset(c2);
  float4 mWV[3] : packoffset(c34);
  float fPtn : packoffset(c37);
  float vATest : packoffset(c37.y);
  int rampIndex : packoffset(c37.z) = {0};
  float rampRimThres : packoffset(c37.w) = {1};
  float4 rampRimPackedParams[2] : packoffset(c38);
  float3 wtPkPrms : packoffset(c40);
  float4 wtDtPrms[16] : packoffset(c41);
}

SamplerState __smpsStage0_s : register(s0);
SamplerState __smpsSpMap_s : register(s1);
SamplerState __smpsOcc_s : register(s2);
SamplerState __smpsNMap_s : register(s3);
SamplerState __smpsLit_s : register(s4);
SamplerState __smpsWeatheringDirtMask_s : register(s5);
Texture2D<float4> sStage0 : register(t0);
Texture2D<float4> sSpMap : register(t1);
Texture2D<float4> sOcc : register(t2);
Texture2D<float4> sNMap : register(t3);
Texture2D<float4> sLit : register(t4);
Texture2D<float4> sWeatheringDirtMask : register(t5);


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


void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD0,
  float4 v2 : TEXCOORD1,
  float4 v3 : TEXCOORD2,
  float4 v4 : TEXCOORD3,
  float4 v5 : TEXCOORD4,
  float4 v6 : TEXCOORD5,
  float2 v7 : TEXCOORD6,
  out float4 o0 : SV_Target0,
  out float4 o1 : SV_Target1,
  out float4 o2 : SV_Target2,
  out float4 o3 : SV_Target3,
  out float4 o4 : SV_Target4)
{
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.xyzw = sStage0.Sample(__smpsStage0_s, v3.xy).xyzw;
  r1.x = wtDtPrms[0].w + -r0.w;
  r2.xyzw = sWeatheringDirtMask.Sample(__smpsWeatheringDirtMask_s, v4.wz).xyzw;
  r1.y = wtDtPkFdPrms[6] * r2.x;
  r0.w = r1.y * r1.x + r0.w;
  r1.x = wtDtPrms[4].w + -r0.w;
  r1.y = wtDtPkFdPrms[14] * r2.y;
  r0.w = r1.y * r1.x + r0.w;
  r1.x = wtDtPrms[8].w + -r0.w;
  r1.y = wtDtPkFdPrms[22] * r2.z;
  r0.w = r1.y * r1.x + r0.w;
  r1.x = wtDtPrms[12].w + -r0.w;
  r1.y = wtDtPkFdPrms[30] * r2.w;
  r0.w = r1.y * r1.x + r0.w;
  r0.w = -vATest + r0.w;
  r0.w = cmp(r0.w < 0);
  if (r0.w != 0) discard;
  r1.xyz = -wtDtPrms[12].xyz * wtDtPrms[13].www + wtDtPrms[12].xyz;
  r0.w = cmp(wtDtPrms[13].x >= 0.5);
  r1.xyz = r0.www ? r1.xyz : wtDtPrms[13].www;
  r3.xyz = -wtDtPrms[8].xyz * wtDtPrms[9].www + wtDtPrms[8].xyz;
  r1.w = cmp(wtDtPrms[9].x >= 0.5);
  r3.xyz = r1.www ? r3.xyz : wtDtPrms[9].www;
  r4.xyz = -wtDtPrms[4].xyz * wtDtPrms[5].www + wtDtPrms[4].xyz;
  r3.w = cmp(wtDtPrms[5].x >= 0.5);
  r4.xyz = r3.www ? r4.xyz : wtDtPrms[5].www;
  r5.xyz = -wtDtPrms[0].xyz * wtDtPrms[1].www + wtDtPrms[0].xyz;
  r4.w = cmp(wtDtPrms[1].x >= 0.5);
  r5.xyz = r4.www ? r5.xyz : wtDtPrms[1].www;
  r6.xyz = sSpMap.Sample(__smpsSpMap_s, v3.xy).yzw;
  r7.xyz = -r0.xyz * r6.xxx + r0.xyz;
  r5.w = cmp(r6.y >= 0.5);
  r7.xyz = r5.www ? r7.xyz : r6.xxx;
  r5.xyz = -r7.xyz + r5.xyz;
  r6.y = wtDtPkFdPrms[1] * r2.x;
  r5.xyz = r6.yyy * r5.xyz + r7.xyz;
  r4.xyz = -r5.xyz + r4.xyz;
  r6.y = wtDtPkFdPrms[9] * r2.y;
  r4.xyz = r6.yyy * r4.xyz + r5.xyz;
  r3.xyz = -r4.xyz + r3.xyz;
  r5.x = wtDtPkFdPrms[17] * r2.z;
  r3.xyz = r5.xxx * r3.xyz + r4.xyz;
  r1.xyz = -r3.xyz + r1.xyz;
  r4.x = wtDtPkFdPrms[25] * r2.w;
  r1.xyz = r4.xxx * r1.xyz + r3.xyz;
  r3.xyz = float3(1,1,1) + -r1.xyz;
  o1.xyz = wtPkPrms.yyy * r3.xyz + r1.xyz;
  r1.x = wtDtPrms[1].y + -r6.z;
  r1.y = wtDtPkFdPrms[3] * r2.x;
  r1.x = r1.y * r1.x + r6.z;
  r1.y = 0.200000003 * r6.x;
  r3.xyz = r1.yyy * r0.xyz;
  r0.xyz = r5.www ? r3.xyz : r0.xyz;
  r1.y = wtDtPrms[5].y + -r1.x;
  r1.z = wtDtPkFdPrms[11] * r2.y;
  r1.x = r1.z * r1.y + r1.x;
  r1.y = wtDtPrms[9].y + -r1.x;
  r1.z = wtDtPkFdPrms[19] * r2.z;
  r1.x = r1.z * r1.y + r1.x;
  r1.y = wtDtPrms[13].y + -r1.x;
  r1.z = wtDtPkFdPrms[27] * r2.w;
  r1.x = r1.z * r1.y + r1.x;
  r1.y = 1 + -r1.x;
  o1.w = wtPkPrms.z * r1.y + r1.x;
  r1.x = dot(v6.xyz, v6.xyz);
  r1.x = rsqrt(r1.x);
  r1.xyz = v6.xyz * r1.xxx;
  r3.x = dot(v5.xyz, v5.xyz);
  r3.x = rsqrt(r3.x);
  r3.xyz = v5.xyz * r3.xxx;
  r4.xyz = r3.zxy * r1.yzx;
  r4.xyz = r3.yzx * r1.zxy + -r4.xyz;
  r4.xyz = v5.www * r4.xyz;
  r5.xyz = wtDtPrms[10].xyz * float3(2,2,2) + float3(-1,-1,-1);
  r5.w = dot(r5.xyz, r5.xyz);
  r5.w = rsqrt(r5.w);
  r6.xyz = wtDtPrms[6].xyz * float3(2,2,2) + float3(-1,-1,-1);
  r6.w = dot(r6.xyz, r6.xyz);
  r6.w = rsqrt(r6.w);
  r7.xyz = sNMap.Sample(__smpsNMap_s, v4.xy).xyw;
  r7.x = r7.x * r7.z;
  r7.xy = r7.xy * float2(2,2) + float2(-1,-1);
  r7.w = -r7.x * r7.x + 1;
  r7.w = -r7.y * r7.y + r7.w;
  r7.w = max(0, r7.w);
  r7.z = sqrt(r7.w);
  r8.xyz = wtDtPrms[2].xyz * float3(2,2,2) + float3(-1,-1,-1);
  r7.w = dot(r8.xyz, r8.xyz);
  r7.w = rsqrt(r7.w);
  r8.xyz = r8.xyz * r7.www + -r7.xyz;
  r7.w = wtDtPkFdPrms[2] * r2.x;
  r7.xyz = r7.www * r8.xyz + r7.xyz;
  r6.xyz = r6.xyz * r6.www + -r7.xyz;
  r6.w = wtDtPkFdPrms[10] * r2.y;
  r6.xyz = r6.www * r6.xyz + r7.xyz;
  r5.xyz = r5.xyz * r5.www + -r6.xyz;
  r5.w = wtDtPkFdPrms[18] * r2.z;
  r5.xyz = r5.www * r5.xyz + r6.xyz;
  r6.xyz = wtDtPrms[14].xyz * float3(2,2,2) + float3(-1,-1,-1);
  r5.w = dot(r6.xyz, r6.xyz);
  r5.w = rsqrt(r5.w);
  r6.xyz = r6.xyz * r5.www + -r5.xyz;
  r5.w = wtDtPkFdPrms[26] * r2.w;
  r5.xyz = r5.www * r6.xyz + r5.xyz;
  r3.xyz = r5.yyy * r3.xyz;
  r3.xyz = r4.xyz * r5.xxx + r3.xyz;
  r1.xyz = r1.xyz * r5.zzz + r3.xyz;
  r3.x = dot(mWV[0].xyz, r1.xyz);
  r3.y = dot(mWV[1].xyz, r1.xyz);
  r3.z = dot(mWV[2].xyz, r1.xyz);
  r4.x = dot(r3.xyz, r3.xyz);
  r4.x = rsqrt(r4.x);
  r3.xyz = r4.xxx * r3.xyz;
  o2.xyz = r3.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5);
  r3.x = sOcc.Sample(__smpsOcc_s, v3.wz).x;
  r3.y = wtDtPrms[1].z + -r3.x;
  r3.z = wtDtPkFdPrms[4] * r2.x;
  r3.x = r3.z * r3.y + r3.x;
  r3.y = wtDtPrms[5].z + -r3.x;
  r3.z = wtDtPkFdPrms[12] * r2.y;
  r3.x = r3.z * r3.y + r3.x;
  r3.y = wtDtPrms[9].z + -r3.x;
  r3.z = wtDtPkFdPrms[20] * r2.z;
  r3.x = r3.z * r3.y + r3.x;
  r3.y = wtDtPrms[13].z + -r3.x;
  r3.z = wtDtPkFdPrms[28] * r2.w;
  o2.w = r3.z * r3.y + r3.x;
  r3.xyz = wtDtPrms[11].xyz * wtDtPkFdPrms[21];
  r4.xyz = wtDtPrms[3].xyz * wtDtPkFdPrms[5];
  r5.xyz = wtDtPrms[7].xyz * wtDtPkFdPrms[13];
  r5.xyz = r5.xyz * r2.yyy;
  r4.xyz = r4.xyz * r2.xxx + r5.xyz;
  r3.xyz = r3.xyz * r2.zzz + r4.xyz;
  r4.xyz = wtDtPrms[15].xyz * wtDtPkFdPrms[29];
  o3.xyz = r4.xyz * r2.www + r3.xyz;
  o3.w = 0;
  r3.x = sLit.Sample(__smpsLit_s, v7.xy).x;
  r3.x = -1 + r3.x;
  o4.x = fPtn * r3.x + 1;
  r3.x = rampIndex;
  o4.y = 0.00392156886 * r3.x;
  o4.zw = float2(0,0);
  r3.xyz = wtDtPrms[5].www * wtDtPrms[4].xyz;
  r3.xyz = float3(0.200000003,0.200000003,0.200000003) * r3.xyz;
  r3.xyz = r3.www ? r3.xyz : wtDtPrms[4].xyz;
  r4.xyz = wtDtPrms[1].www * wtDtPrms[0].xyz;
  r4.xyz = float3(0.200000003,0.200000003,0.200000003) * r4.xyz;
  r4.xyz = r4.www ? r4.xyz : wtDtPrms[0].xyz;
  r4.xyz = r4.xyz + -r0.xyz;
  r2.x = wtDtPkFdPrms[0] * r2.x;
  r0.xyz = r2.xxx * r4.xyz + r0.xyz;
  r3.xyz = r3.xyz + -r0.xyz;
  r2.x = wtDtPkFdPrms[8] * r2.y;
  r0.xyz = r2.xxx * r3.xyz + r0.xyz;
  r3.xyz = wtDtPrms[9].www * wtDtPrms[8].xyz;
  r3.xyz = float3(0.200000003,0.200000003,0.200000003) * r3.xyz;
  r3.xyz = r1.www ? r3.xyz : wtDtPrms[8].xyz;
  r3.xyz = r3.xyz + -r0.xyz;
  r1.w = wtDtPkFdPrms[16] * r2.z;
  r2.x = wtDtPkFdPrms[24] * r2.w;
  r0.xyz = r1.www * r3.xyz + r0.xyz;
  r2.yzw = wtDtPrms[13].www * wtDtPrms[12].xyz;
  r2.yzw = float3(0.200000003,0.200000003,0.200000003) * r2.yzw;
  r2.yzw = r0.www ? r2.yzw : wtDtPrms[12].xyz;
  r2.yzw = r2.yzw + -r0.xyz;
  r0.xyz = r2.xxx * r2.yzw + r0.xyz;
  r0.xyz = saturate(wtPkPrms.xxx * -r0.xyz + r0.xyz);
  r2.y = dot(float3(0.5,-0.419,-0.0810000002), r0.xyz);
  r2.z = dot(float3(-0.169,-0.331999987,0.5), r0.xyz);
  r2.x = 1;
  r3.y = dot(r2.xyz, float3(0.5,-0.713999987,-0.344000012));
  r3.x = dot(r2.xy, float2(0.5,1.40199995));
  r3.z = dot(r2.xz, float2(0.5,1.77199996));
  r2.xyz = rampRimPackedParams[1].xyz * r3.xyz;
  r2.xyz = v1.xxx * r2.xyz + r0.xyz;
  r3.xyz = vEye.xyz + -v2.xyz;
  r0.w = dot(r3.xyz, r3.xyz);
  r0.w = rsqrt(r0.w);
  r3.xyz = r3.xyz * r0.www;
  r0.w = saturate(dot(r1.xyz, r3.xyz));
  r1.x = saturate(dot(rampRimPackedParams[0].xyz, r3.xyz));
  r0.w = 1 + -r0.w;
  r0.w = log2(r0.w);
  r0.w = rampRimPackedParams[0].w * r0.w;
  r0.w = exp2(r0.w);
  r0.w = rampRimPackedParams[1].w * r0.w;
  r0.w = r0.w * r1.x;
  r0.w = cmp(r0.w >= rampRimThres);
  r1.x = cmp(0 < v1.x);
  r0.w = r0.w ? r1.x : 0;
  o0.xyz = r0.www ? r2.xyz : r0.xyz;
  o0.w = 0.00784299988;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.3.16 on Sun Jan 14 13:28:20 2024
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
//   float4 vEye;                       // Offset:    0 Size:    16
//   float4 cDiff;                      // Offset:   16 Size:    16 [unused]
//   float wtDtPkFdPrms[32];            // Offset:   32 Size:   500
//   float4 mWV[3];                     // Offset:  544 Size:    48
//   float fPtn;                        // Offset:  592 Size:     4
//   float vATest;                      // Offset:  596 Size:     4
//   int rampIndex;                     // Offset:  600 Size:     4
//      = 0x00000000
//   float rampRimThres;                // Offset:  604 Size:     4
//      = 0x3f800000
//   float4 rampRimPackedParams[2];     // Offset:  608 Size:    32
//   float3 wtPkPrms;                   // Offset:  640 Size:    12
//   float4 wtDtPrms[16];               // Offset:  656 Size:   256
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// __smpsStage0                      sampler      NA          NA    0        1
// __smpsSpMap                       sampler      NA          NA    1        1
// __smpsOcc                         sampler      NA          NA    2        1
// __smpsNMap                        sampler      NA          NA    3        1
// __smpsLit                         sampler      NA          NA    4        1
// __smpsWeatheringDirtMask          sampler      NA          NA    5        1
// sStage0                           texture  float4          2d    0        1
// sSpMap                            texture  float4          2d    1        1
// sOcc                              texture  float4          2d    2        1
// sNMap                             texture  float4          2d    3        1
// sLit                              texture  float4          2d    4        1
// sWeatheringDirtMask               texture  float4          2d    5        1
// $Globals                          cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float
// TEXCOORD                 0   xyzw        1     NONE   float   x
// TEXCOORD                 1   xyzw        2     NONE   float   xyz
// TEXCOORD                 2   xyzw        3     NONE   float   xyzw
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xyzw        5     NONE   float   xyzw
// TEXCOORD                 5   xyz         6     NONE   float   xyz
// TEXCOORD                 6   xy          7     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
// SV_Target                2   xyzw        2   TARGET   float   xyzw
// SV_Target                3   xyzw        3   TARGET   float   xyzw
// SV_Target                4   xyzw        4   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[57], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, 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_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_input_ps linear v1.x
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xyzw
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xyzw
dcl_input_ps linear v6.xyz
dcl_input_ps linear v7.xy
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_output o4.xyzw
dcl_temps 9
sample_indexable(texture2d)(float,float,float,float) r0.xyzw, v3.xyxx, t0.xyzw, s0
add r1.x, -r0.w, cb0[41].w
sample_indexable(texture2d)(float,float,float,float) r2.xyzw, v4.wzww, t5.xyzw, s5
mul r1.y, r2.x, cb0[8].x
mad r0.w, r1.y, r1.x, r0.w
add r1.x, -r0.w, cb0[45].w
mul r1.y, r2.y, cb0[16].x
mad r0.w, r1.y, r1.x, r0.w
add r1.x, -r0.w, cb0[49].w
mul r1.y, r2.z, cb0[24].x
mad r0.w, r1.y, r1.x, r0.w
add r1.x, -r0.w, cb0[53].w
mul r1.y, r2.w, cb0[32].x
mad r0.w, r1.y, r1.x, r0.w
add r0.w, r0.w, -cb0[37].y
lt r0.w, r0.w, l(0.000000)
discard_nz r0.w
mad r1.xyz, -cb0[53].xyzx, cb0[54].wwww, cb0[53].xyzx
ge r0.w, cb0[54].x, l(0.500000)
movc r1.xyz, r0.wwww, r1.xyzx, cb0[54].wwww
mad r3.xyz, -cb0[49].xyzx, cb0[50].wwww, cb0[49].xyzx
ge r1.w, cb0[50].x, l(0.500000)
movc r3.xyz, r1.wwww, r3.xyzx, cb0[50].wwww
mad r4.xyz, -cb0[45].xyzx, cb0[46].wwww, cb0[45].xyzx
ge r3.w, cb0[46].x, l(0.500000)
movc r4.xyz, r3.wwww, r4.xyzx, cb0[46].wwww
mad r5.xyz, -cb0[41].xyzx, cb0[42].wwww, cb0[41].xyzx
ge r4.w, cb0[42].x, l(0.500000)
movc r5.xyz, r4.wwww, r5.xyzx, cb0[42].wwww
sample_indexable(texture2d)(float,float,float,float) r6.xyz, v3.xyxx, t1.yzwx, s1
mad r7.xyz, -r0.xyzx, r6.xxxx, r0.xyzx
ge r5.w, r6.y, l(0.500000)
movc r7.xyz, r5.wwww, r7.xyzx, r6.xxxx
add r5.xyz, r5.xyzx, -r7.xyzx
mul r6.y, r2.x, cb0[3].x
mad r5.xyz, r6.yyyy, r5.xyzx, r7.xyzx
add r4.xyz, r4.xyzx, -r5.xyzx
mul r6.y, r2.y, cb0[11].x
mad r4.xyz, r6.yyyy, r4.xyzx, r5.xyzx
add r3.xyz, r3.xyzx, -r4.xyzx
mul r5.x, r2.z, cb0[19].x
mad r3.xyz, r5.xxxx, r3.xyzx, r4.xyzx
add r1.xyz, r1.xyzx, -r3.xyzx
mul r4.x, r2.w, cb0[27].x
mad r1.xyz, r4.xxxx, r1.xyzx, r3.xyzx
add r3.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mad o1.xyz, cb0[40].yyyy, r3.xyzx, r1.xyzx
add r1.x, -r6.z, cb0[42].y
mul r1.y, r2.x, cb0[5].x
mad r1.x, r1.y, r1.x, r6.z
mul r1.y, r6.x, l(0.200000)
mul r3.xyz, r0.xyzx, r1.yyyy
movc r0.xyz, r5.wwww, r3.xyzx, r0.xyzx
add r1.y, -r1.x, cb0[46].y
mul r1.z, r2.y, cb0[13].x
mad r1.x, r1.z, r1.y, r1.x
add r1.y, -r1.x, cb0[50].y
mul r1.z, r2.z, cb0[21].x
mad r1.x, r1.z, r1.y, r1.x
add r1.y, -r1.x, cb0[54].y
mul r1.z, r2.w, cb0[29].x
mad r1.x, r1.z, r1.y, r1.x
add r1.y, -r1.x, l(1.000000)
mad o1.w, cb0[40].z, r1.y, r1.x
dp3 r1.x, v6.xyzx, v6.xyzx
rsq r1.x, r1.x
mul r1.xyz, r1.xxxx, v6.xyzx
dp3 r3.x, v5.xyzx, v5.xyzx
rsq r3.x, r3.x
mul r3.xyz, r3.xxxx, v5.xyzx
mul r4.xyz, r1.yzxy, r3.zxyz
mad r4.xyz, r3.yzxy, r1.zxyz, -r4.xyzx
mul r4.xyz, r4.xyzx, v5.wwww
mad r5.xyz, cb0[51].xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r5.w, r5.xyzx, r5.xyzx
rsq r5.w, r5.w
mad r6.xyz, cb0[47].xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r6.w, r6.xyzx, r6.xyzx
rsq r6.w, r6.w
sample_indexable(texture2d)(float,float,float,float) r7.xyz, v4.xyxx, t3.xywz, s3
mul r7.x, r7.z, r7.x
mad r7.xy, r7.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
mad r7.w, -r7.x, r7.x, l(1.000000)
mad r7.w, -r7.y, r7.y, r7.w
max r7.w, r7.w, l(0.000000)
sqrt r7.z, r7.w
mad r8.xyz, cb0[43].xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r7.w, r8.xyzx, r8.xyzx
rsq r7.w, r7.w
mad r8.xyz, r8.xyzx, r7.wwww, -r7.xyzx
mul r7.w, r2.x, cb0[4].x
mad r7.xyz, r7.wwww, r8.xyzx, r7.xyzx
mad r6.xyz, r6.xyzx, r6.wwww, -r7.xyzx
mul r6.w, r2.y, cb0[12].x
mad r6.xyz, r6.wwww, r6.xyzx, r7.xyzx
mad r5.xyz, r5.xyzx, r5.wwww, -r6.xyzx
mul r5.w, r2.z, cb0[20].x
mad r5.xyz, r5.wwww, r5.xyzx, r6.xyzx
mad r6.xyz, cb0[55].xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r5.w, r6.xyzx, r6.xyzx
rsq r5.w, r5.w
mad r6.xyz, r6.xyzx, r5.wwww, -r5.xyzx
mul r5.w, r2.w, cb0[28].x
mad r5.xyz, r5.wwww, r6.xyzx, r5.xyzx
mul r3.xyz, r3.xyzx, r5.yyyy
mad r3.xyz, r4.xyzx, r5.xxxx, r3.xyzx
mad r1.xyz, r1.xyzx, r5.zzzz, r3.xyzx
dp3 r3.x, cb0[34].xyzx, r1.xyzx
dp3 r3.y, cb0[35].xyzx, r1.xyzx
dp3 r3.z, cb0[36].xyzx, r1.xyzx
dp3 r4.x, r3.xyzx, r3.xyzx
rsq r4.x, r4.x
mul r3.xyz, r3.xyzx, r4.xxxx
mad o2.xyz, r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
sample_indexable(texture2d)(float,float,float,float) r3.x, v3.wzww, t2.xyzw, s2
add r3.y, -r3.x, cb0[42].z
mul r3.z, r2.x, cb0[6].x
mad r3.x, r3.z, r3.y, r3.x
add r3.y, -r3.x, cb0[46].z
mul r3.z, r2.y, cb0[14].x
mad r3.x, r3.z, r3.y, r3.x
add r3.y, -r3.x, cb0[50].z
mul r3.z, r2.z, cb0[22].x
mad r3.x, r3.z, r3.y, r3.x
add r3.y, -r3.x, cb0[54].z
mul r3.z, r2.w, cb0[30].x
mad o2.w, r3.z, r3.y, r3.x
mul r3.xyz, cb0[23].xxxx, cb0[52].xyzx
mul r4.xyz, cb0[7].xxxx, cb0[44].xyzx
mul r5.xyz, cb0[15].xxxx, cb0[48].xyzx
mul r5.xyz, r2.yyyy, r5.xyzx
mad r4.xyz, r4.xyzx, r2.xxxx, r5.xyzx
mad r3.xyz, r3.xyzx, r2.zzzz, r4.xyzx
mul r4.xyz, cb0[31].xxxx, cb0[56].xyzx
mad o3.xyz, r4.xyzx, r2.wwww, r3.xyzx
mov o3.w, l(0)
sample_indexable(texture2d)(float,float,float,float) r3.x, v7.xyxx, t4.xyzw, s4
add r3.x, r3.x, l(-1.000000)
mad o4.x, cb0[37].x, r3.x, l(1.000000)
itof r3.x, cb0[37].z
mul o4.y, r3.x, l(0.00392156886)
mov o4.zw, l(0,0,0,0)
mul r3.xyz, cb0[45].xyzx, cb0[46].wwww
mul r3.xyz, r3.xyzx, l(0.200000, 0.200000, 0.200000, 0.000000)
movc r3.xyz, r3.wwww, r3.xyzx, cb0[45].xyzx
mul r4.xyz, cb0[41].xyzx, cb0[42].wwww
mul r4.xyz, r4.xyzx, l(0.200000, 0.200000, 0.200000, 0.000000)
movc r4.xyz, r4.wwww, r4.xyzx, cb0[41].xyzx
add r4.xyz, -r0.xyzx, r4.xyzx
mul r2.x, r2.x, cb0[2].x
mad r0.xyz, r2.xxxx, r4.xyzx, r0.xyzx
add r3.xyz, -r0.xyzx, r3.xyzx
mul r2.x, r2.y, cb0[10].x
mad r0.xyz, r2.xxxx, r3.xyzx, r0.xyzx
mul r3.xyz, cb0[49].xyzx, cb0[50].wwww
mul r3.xyz, r3.xyzx, l(0.200000, 0.200000, 0.200000, 0.000000)
movc r3.xyz, r1.wwww, r3.xyzx, cb0[49].xyzx
add r3.xyz, -r0.xyzx, r3.xyzx
mul r1.w, r2.z, cb0[18].x
mul r2.x, r2.w, cb0[26].x
mad r0.xyz, r1.wwww, r3.xyzx, r0.xyzx
mul r2.yzw, cb0[53].xxyz, cb0[54].wwww
mul r2.yzw, r2.yyzw, l(0.000000, 0.200000, 0.200000, 0.200000)
movc r2.yzw, r0.wwww, r2.yyzw, cb0[53].xxyz
add r2.yzw, -r0.xxyz, r2.yyzw
mad r0.xyz, r2.xxxx, r2.yzwy, r0.xyzx
mad_sat r0.xyz, cb0[40].xxxx, -r0.xyzx, r0.xyzx
dp3 r2.y, l(0.500000, -0.419000, -0.081000, 0.000000), r0.xyzx
dp3 r2.z, l(-0.169000, -0.332000, 0.500000, 0.000000), r0.xyzx
mov r2.x, l(1.000000)
dp3 r3.y, r2.xyzx, l(0.500000, -0.714000, -0.344000, 0.000000)
dp2 r3.x, r2.xyxx, l(0.500000, 1.402000, 0.000000, 0.000000)
dp2 r3.z, r2.xzxx, l(0.500000, 1.772000, 0.000000, 0.000000)
mul r2.xyz, r3.xyzx, cb0[39].xyzx
mad r2.xyz, v1.xxxx, r2.xyzx, r0.xyzx
add r3.xyz, -v2.xyzx, cb0[0].xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
mul r3.xyz, r0.wwww, r3.xyzx
dp3_sat r0.w, r1.xyzx, r3.xyzx
dp3_sat r1.x, cb0[38].xyzx, r3.xyzx
add r0.w, -r0.w, l(1.000000)
log r0.w, r0.w
mul r0.w, r0.w, cb0[38].w
exp r0.w, r0.w
mul r0.w, r0.w, cb0[39].w
mul r0.w, r1.x, r0.w
ge r0.w, r0.w, cb0[37].w
lt r1.x, l(0.000000), v1.x
and r0.w, r0.w, r1.x
movc o0.xyz, r0.wwww, r2.xyzx, r0.xyzx
mov o0.w, l(0.007843)
ret
// Approximately 193 instruction slots used

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