//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.2.67 on Mon Jan 01 13:11:46 2018
//
//
// Buffer Definitions: 
//
// cbuffer $Globals
// {
//
//   float4 g_avPSDD[64];               // Offset:    0 Size:  1024 [unused]
//   float4 g_vWaveDesc;                // Offset: 1024 Size:    16 [unused]
//      = 0x3ca3d70a 0x3f000000 0x3f800000 0x42000000 
//   float4 specColor;                  // Offset: 1040 Size:    16 [unused]
//   float4 ControlData;                // Offset: 1056 Size:    16 [unused]
//   float4 difColor;                   // Offset: 1072 Size:    16 [unused]
//   float4 ambient;                    // Offset: 1088 Size:    16
//   float4 g_vDefLightDir;             // Offset: 1104 Size:    16
//   float4 g_vDefLightColor;           // Offset: 1120 Size:    16
//   float4 g_vDefSpecColor;            // Offset: 1136 Size:    16
//   uint CS_FRONT;                     // Offset: 1152 Size:     4
//      = 0x00000000 
//   uint CS_RIGHT;                     // Offset: 1156 Size:     4
//      = 0x00000001 
//   uint CS_BACK;                      // Offset: 1160 Size:     4
//      = 0x00000002 
//   uint CS_LEFT;                      // Offset: 1164 Size:     4
//      = 0x00000003 
//   uint CS_TOP;                       // Offset: 1168 Size:     4
//      = 0x00000004 
//   uint CS_BOTTOM;                    // Offset: 1172 Size:     4
//      = 0x00000005 
//   float4 g_vAmbientSettings;         // Offset: 1184 Size:    16 [unused]
//   
//   struct
//   {
//       
//       float4x4 mLightSpaceInverse;   // Offset: 1200
//       float4x4 mLightSpace;          // Offset: 1264
//       float4 vShadowBias;            // Offset: 1328
//       float4 vBiasDir;               // Offset: 1344
//       float4 vSmoothOffs;            // Offset: 1360
//       float4 vShadowsDesc;           // Offset: 1376
//       float4 avCPlane[8];            // Offset: 1392
//       float4 avCascadeZ[2];          // Offset: 1520
//       float4 avUVTransform[8];       // Offset: 1552
//       float4 avZTransformZF[8];      // Offset: 1680
//
//   } g_ShadSettings;                  // Offset: 1200 Size:   608
//   
//   struct
//   {
//       
//       float4 vDesc;                  // Offset: 1808
//       float4 vFogLayerPlane;         // Offset: 1824
//       float4 vFogLayerColor;         // Offset: 1840
//       float4 vFogLayerSettings;      // Offset: 1856
//       float4 vFogColor;              // Offset: 1872
//       float4 vFogDistance;           // Offset: 1888
//
//   } g_FogDesc;                       // Offset: 1808 Size:    96
//   float4x4 g_mCloudsShadowsSpace;    // Offset: 1904 Size:    64 [unused]
//   float4 g_vCloudsShadowDesc;        // Offset: 1968 Size:    16
//   float4 g_vSettings;                // Offset: 1984 Size:    16
//   float4 g_vDesc;                    // Offset: 2000 Size:    16
//   float4x4 viewproj;                 // Offset: 2016 Size:    64 [unused]
//   float4 Origin;                     // Offset: 2080 Size:    16 [unused]
//   float4 FogK;                       // Offset: 2096 Size:    16 [unused]
//      = 0x3fc00000 0x3fe66666 0x4019999a 0x3f800000 
//   float4 g_vWindDir;                 // Offset: 2112 Size:    16 [unused]
//      = 0xbf800000 0x00000000 0x00000000 0x00000000 
//   float4 g_vAnim;                    // Offset: 2128 Size:    16
//   float4 g_vBlockDesc;               // Offset: 2144 Size:    16 [unused]
//   float4 g_vBlockOrigin;             // Offset: 2160 Size:    16 [unused]
//   float4 g_vSideStep;                // Offset: 2176 Size:    16 [unused]
//   float4 g_vQuadOrigin;              // Offset: 2192 Size:    16 [unused]
//   float4 g_vTexTransform;            // Offset: 2208 Size:    16 [unused]
//   float4 g_vSpecColor;               // Offset: 2224 Size:    16
//      = 0x3f800000 0x3f800000 0x3f800000 0x42a00000 
//   float4 g_vDeepCoords;              // Offset: 2240 Size:    16
//   float4 g_vMaskCoords;              // Offset: 2256 Size:    16
//   float4 g_vFoamScale;               // Offset: 2272 Size:    16 [unused]
//   float4 g_vChunkTCoords;            // Offset: 2288 Size:    16 [unused]
//   float4 g_vWaterDesc;               // Offset: 2304 Size:    16
//   float4 g_vGridOffset;              // Offset: 2320 Size:    16 [unused]
//   float4 g_aGridData[81];            // Offset: 2336 Size:  1296 [unused]
//   float4 g_aGridHeightOffset[21];    // Offset: 3632 Size:   336 [unused]
//   float4 g_vTrailTransform0;         // Offset: 3968 Size:    16
//   float4 g_vTrailTransform1;         // Offset: 3984 Size:    16
//   float4 g_avMask[4];                // Offset: 4000 Size:    64 [unused]
//      = 0x3f800000 0x00000000 0x00000000 0x00000000 
//        0x00000000 0x3f800000 0x00000000 0x00000000 
//        0x00000000 0x00000000 0x3f800000 0x00000000 
//        0x00000000 0x00000000 0x00000000 0x3f800000 
//
// }
//
// cbuffer CBLightSettings
// {
//
//   struct
//   {
//       
//       float4 vLightsListSettings2;   // Offset:    0
//       float4 vShadowLODYPos;         // Offset:   16
//       float4 vShadowLODXSZ;          // Offset:   32
//       float4 vShadowLODYSZ;          // Offset:   48
//       float4 vShadowTexRes;          // Offset:   64
//
//   } g_LightListSettings;             // Offset:    0 Size:    80
//   float4 g_avLODMask[4];             // Offset:   80 Size:    64
//   float4 g_avRot[6];                 // Offset:  144 Size:    96
//   float4 g_avLightsInfo[2048];       // Offset:  240 Size: 32768
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// LightsShadowsSampler            sampler_c      NA          NA    0        1
// shadowSamplerF                  sampler_c      NA          NA    1        1
// CloudsShadowsSampler              sampler      NA          NA    2        1
// TrailsSampler0                    sampler      NA          NA    3        1
// TrailsSampler1                    sampler      NA          NA    4        1
// DeepSampler                       sampler      NA          NA    5        1
// RefSampler                        sampler      NA          NA    6        1
// MaskSampler                       sampler      NA          NA    7        1
// SmallNormSampler                  sampler      NA          NA    8        1
// NormSampler                       sampler      NA          NA    9        1
// EnvSampler                        sampler      NA          NA   10        1
// SkyTextureSampler                 sampler      NA          NA   11        1
// FoamNoiseSampler                  sampler      NA          NA   12        1
// CloudsShadowsSampler              texture  float4          2d    0        1
// FoamNoiseSampler                  texture  float4          2d    1        1
// DeepSampler                       texture  float4          2d    2        1
// MaskSampler                       texture  float4          2d    3        1
// NormSampler                       texture  float4          2d    4        1
// SmallNormSampler                  texture  float4          3d    5        1
// EnvSampler                        texture  float4        cube    6        1
// RefSampler                        texture  float4          2d    7        1
// TrailsSampler0                    texture  float4          2d    8        1
// TrailsSampler1                    texture  float4          2d    9        1
// SkyTextureSampler                 texture  float4          2d   10        1
// g_tLightsShadows                  texture  float4          2d   11        1
// g_tLightsList                     texture   uint2          3d   12        1
// g_tDepthTexture                   texture  float4     2darray   13        1
// $Globals                          cbuffer      NA          NA    0        1
// CBLightSettings                   cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float       
// TEXCOORD                 0   xyzw        1     NONE   float   xy  
// TEXCOORD                 1   xyz         2     NONE   float   xyz 
// TEXCOORD                 2   xyzw        3     NONE   float   xy w
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xy          5     NONE   float   xy  
// TEXCOORD                 5   xyzw        6     NONE   float   xyzw
// TEXCOORD                 6   xyzw        7     NONE   float   xy w
// TEXCOORD                 7   xyzw        8     NONE   float   xyzw
// TEXCOORD                 8   xyzw        9     NONE   float   xyzw
// COLOR                    0   xyzw       10     NONE   float   x  w
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[250], dynamicIndexed
dcl_constantbuffer cb1[2063], dynamicIndexed
dcl_sampler s0, mode_comparison
dcl_sampler s1, mode_comparison
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_sampler s9, mode_default
dcl_sampler s10, mode_default
dcl_sampler s11, mode_default
dcl_sampler s12, 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_texture3d (float,float,float,float) t5
dcl_resource_texturecube (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t11
dcl_resource_texture3d (uint,uint,uint,uint) t12
dcl_resource_texture2darray (float,float,float,float) t13
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xyw
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xy
dcl_input_ps linear centroid v6.xyzw
dcl_input_ps linear v7.xyw
dcl_input_ps linear v8.xyzw
dcl_input_ps linear v9.xyzw
dcl_input_ps linear v10.xw
dcl_output o0.xyzw
dcl_temps 17
lt r0.xyzw, cb0[95].xyzw, v9.wwww
and r0.xyzw, r0.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.xyzw
lt r1.xyzw, cb0[96].xyzw, v9.wwww
and r1.xyzw, r1.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyzw
add r0.z, r0.y, r0.x
ftou r0.w, r0.z
mad r1.xy, v9.xyxx, cb0[r0.w + 97].zwzz, cb0[r0.w + 97].xyxx
mad r1.z, v9.z, cb0[r0.w + 105].y, cb0[r0.w + 105].x
mul r1.w, v9.w, cb0[86].z
lt r2.xyzw, cb0[95].xyzw, r1.wwww
and r2.xyzw, r2.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.xyzw
lt r3.xyzw, cb0[96].xyzw, r1.wwww
and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.xyzw
add r2.z, r1.w, r2.x
lt r1.w, r0.z, r2.z
if_nz r1.w
  ftou r1.w, r2.z
  mad r3.xy, v9.xyxx, cb0[r1.w + 97].zwzz, cb0[r1.w + 97].xyxx
  mad r1.w, v9.z, cb0[r1.w + 105].y, cb0[r1.w + 105].x
  mad r2.w, -cb0[r0.w + 105].w, cb0[86].w, v9.w
  mad r0.w, -cb0[r0.w + 105].w, cb0[86].w, cb0[r0.w + 105].w
  div r0.w, r2.w, r0.w
else 
  mov r3.xy, r1.xyxx
  mov r1.w, r1.z
  mov r2.z, r0.z
  mov r0.w, l(0)
endif 
lt r2.w, l(0.000000), r0.w
mov r3.zw, l(0,0,0,-1)
loop 
  ilt r4.x, l(1), r3.w
  breakc_nz r4.x
  itof r4.y, r3.w
  mov r4.z, r3.z
  mov r4.w, l(-1)
  loop 
    ilt r5.x, l(1), r4.w
    breakc_nz r5.x
    itof r4.x, r4.w
    mul r5.xy, r4.xyxx, cb0[85].xxxx
    mad r0.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r1.xyxx
    sample_c_lz r0.x, r0.xyzx, t13.xxxx, s1, r1.z
    if_nz r2.w
      mad r2.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r3.xyxx
      sample_c_lz r0.y, r2.xyzx, t13.xxxx, s1, r1.w
      add r0.y, -r0.x, r0.y
      mad r0.x, r0.w, r0.y, r0.x
    endif 
    add r4.z, r0.x, r4.z
    iadd r4.w, r4.w, l(1)
  endloop 
  mov r3.z, r4.z
  iadd r3.w, r3.w, l(1)
endloop 
lt r0.x, v3.w, cb0[125].x
mul r1.xyzw, v6.zwzw, l(16.000000, 16.000000, 32.000000, 32.000000)
sample r2.xyzw, r1.xyxx, t1.xyzw, s12
mad r4.xy, v1.yxyy, cb0[140].zzzz, cb0[140].yxyy
add r4.z, -r4.y, l(1.000000)
sample r0.yzw, r4.xzxx, t2.zxyw, s5
mul_sat r0.z, r0.z, l(4.000000)
add r1.x, r0.z, cb0[133].z
add r4.x, r1.x, r1.x
mov r4.yz, v6.wwzw
sample r1.x, r4.xyxx, t1.wxyz, s12
sample r1.y, r4.zxzz, t1.xwyz, s12
mad r3.x, v6.x, cb0[141].z, cb0[141].y
add r3.w, -v6.y, l(1.000000)
mad r3.y, r3.w, cb0[141].z, cb0[141].x
sample r4.xyzw, r3.xyxx, t3.xyzw, s7
sample r5.xyzw, v1.xyxx, t4.xyzw, s9
mad r3.xyw, r5.xyxz, l(2.000000, 2.000000, 0.000000, 2.000000), l(-1.000000, -1.000000, 0.000000, -1.000000)
add r5.xyz, -r3.xywx, l(0.000000, 1.000000, 0.000000, 0.000000)
mad r3.xyw, r0.zzzz, r5.xyxz, r3.xyxw
dp3 r5.x, r3.xywx, r3.xywx
rsq r5.x, r5.x
mul r3.xyw, r3.xyxw, r5.xxxx
mul r5.xy, v6.zwzz, cb0[144].zzzz
add r5.xy, r5.xyxx, r5.xyxx
mul r5.z, cb0[133].x, l(3.000000)
sample r5.xyz, r5.xyzx, t5.xyzw, s8
mad r5.xyz, r5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r6.x, cb0[144].y, l(0.300000)
mul r5.xz, r5.xxzx, r6.xxxx
dp3 r6.x, r5.xyzx, r5.xyzx
rsq r6.x, r6.x
mul r5.xyz, r5.xyzx, r6.xxxx
div r6.xy, v7.xyxx, v7.wwww
mul r7.xyz, r3.wxyw, l(0.000000, 1.000000, 0.000000, 0.000000)
mad r7.xyz, r3.ywxy, l(1.000000, 0.000000, 0.000000, 0.000000), -r7.xyzx
dp2 r6.z, r7.xyxx, r7.xyxx
rsq r6.z, r6.z
mul r7.xyz, r6.zzzz, r7.xyzx
mul r8.xyz, r3.ywxy, r7.zxyz
mad r8.xyz, r7.yzxy, r3.wxyw, -r8.xyzx
mul r3.xyw, r3.xyxw, r5.yyyy
mad r3.xyw, r5.xxxx, r7.xyxz, r3.xyxw
mad r3.xyw, r5.zzzz, r8.xyxz, r3.xyxw
dp3 r5.x, v4.xyzx, v4.xyzx
rsq r5.x, r5.x
mad r3.xw, v4.xxxz, r5.xxxx, r3.xxxw
dp3 r5.x, r3.xywx, r3.xywx
rsq r5.x, r5.x
mul r3.xyw, r3.xyxw, r5.xxxx
dp3 r5.x, v2.xyzx, v2.xyzx
rsq r5.x, r5.x
mul r7.xyz, r5.xxxx, v2.xyzx
mul r8.xyz, r3.xywx, l(0.500000, 1.000000, 0.500000, 0.000000)
dp3 r5.y, r8.xyzx, r8.xyzx
rsq r5.y, r5.y
mul r8.xyz, r5.yyyy, r8.xyzx
mul r9.xz, r7.xxzx, l(0.100000, 0.000000, 0.100000, 0.000000)
mov r9.y, l(0)
min r5.y, r7.y, l(-0.010000)
add r5.y, r5.y, l(1.000000)
max r5.y, r5.y, l(0.000000)
mad r9.xyz, -r9.xyzx, r5.yyyy, r8.xyzx
dp3 r5.y, r9.xyzx, r9.xyzx
rsq r5.y, r5.y
mul r9.xyz, r5.yyyy, r9.xyzx
dp3 r5.y, v2.xyzx, r9.xyzx
add r5.y, r5.y, r5.y
mad r10.xyz, r9.xyzx, -r5.yyyy, v2.xyzx
sample r10.xyz, r10.xyzx, t6.xyzw, s10
mad r5.yz, r8.xxzx, l(0.000000, 0.400000, 0.400000, 0.000000), r6.xxyx
sample r8.xyz, r5.yzyy, t7.xyzw, s6
mad r5.yz, v3.xxyx, cb0[248].xxyx, cb0[248].zzwz
sample r5.y, r5.yzyy, t8.xyzw, s3
sample r11.xyzw, r6.xyxx, t10.xyzw, s11
sample r1.z, r1.zwzz, t1.xywz, s12
mad r6.zw, v3.xxxy, cb0[249].xxxy, cb0[249].zzzw
sample r1.w, r6.zwzz, t9.xzwy, s4
if_nz r0.x
  mul r0.x, r3.z, l(0.111111112)
  mad r3.z, -r3.z, l(0.111111112), l(1.000000)
  mad r0.x, v10.x, r3.z, r0.x
  sample r3.z, v5.xyxx, t0.xzyw, s2
  add r3.z, r3.z, l(-1.000000)
  mad r3.z, cb0[123].z, r3.z, l(1.000000)
  mul r0.x, r0.x, r3.z
  mul r3.z, cb0[133].x, l(5.000000)
  frc r3.z, r3.z
  lt r5.z, r3.z, l(0.333000)
  if_nz r5.z
    mul r5.z, r3.z, l(3.000000)
    min r5.z, r5.z, l(1.000000)
    add r6.z, -r2.x, r2.y
    mad r5.z, r5.z, r6.z, r2.x
  else 
    lt r6.z, r3.z, l(0.667000)
    if_nz r6.z
      add r6.z, r3.z, l(-0.333000)
      mul r6.z, r6.z, l(3.000000)
      min r6.z, r6.z, l(1.000000)
      add r6.w, -r2.y, r2.z
      mad r5.z, r6.z, r6.w, r2.y
    else 
      add r2.y, r3.z, l(-0.667000)
      mul r2.y, r2.y, l(3.000000)
      add r2.x, -r2.z, r2.x
      mad r5.z, r2.y, r2.x, r2.z
    endif 
  endif 
  mad r0.yw, r0.yyyw, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000)
  dp2 r0.w, r0.ywyy, r0.ywyy
  rsq r0.w, r0.w
  mul r0.y, r0.w, r0.y
  add r0.w, -r1.y, r1.x
  mad r0.y, |r0.y|, r0.w, r1.y
  mul r0.y, r0.y, r5.z
  mul r0.w, r2.w, r5.w
  mul r0.y, r0.y, v4.w
  mad r0.y, r0.w, r5.z, r0.y
  mul r0.w, r5.y, l(1.500000)
  mul r1.x, cb0[125].x, l(0.250000)
  lt r1.y, v3.w, r1.x
  if_nz r1.y
    div r1.x, v3.w, r1.x
    add r1.x, -r1.x, l(1.000000)
    rsq r1.x, r1.x
    div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
    mul r1.y, r1.w, r1.z
    mad r1.y, r1.y, l(1.500000), -r0.w
    mad r0.w, r1.x, r1.y, r0.w
  endif 
  min r0.w, r0.w, l(1.000000)
  add_sat r0.y, r0.w, r0.y
  add r1.xyz, -r10.xyzx, r8.xyzx
  dp3 r0.w, r1.xyzx, r1.xyzx
  sqrt r0.w, r0.w
  min r0.w, r0.w, l(1.000000)
  mad r1.xyz, r0.wwww, r1.xyzx, r10.xyzx
  add r2.xyz, r4.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
  mad r2.xyz, cb0[124].xxxx, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
  mad r2.xyz, r2.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000), -r4.xyzx
  mad r2.xyz, r0.zzzz, r2.xyzx, r4.xyzx
  mul r4.xy, r6.xyxx, cb1[0].xyxx
  ftoi r6.yz, r4.xxyx
  mov r6.w, l(0)
  ld r4.xy, r6.yzww, t12.xyzw
  umin r0.w, r4.y, l(17)
  lt r1.w, l(0.500000), cb1[0].w
  mov r5.yzw, l(0,0,0,0)
  mov r8.xyz, l(0,0,0,0)
  mov r2.w, l(1)
  mov r6.x, l(0)
  mov r3.z, r4.x
  loop 
    ige r4.y, r2.w, r0.w
    breakc_nz r4.y
    if_nz r2.w
      iadd r6.x, r6.x, l(1)
      ld r3.z, r6.yzxw, t12.yzxw
    endif 
    ishl r4.y, r3.z, l(3)
    iadd r4.z, r4.y, l(1)
    ge r10.xy, cb1[r4.z + 15].xyxx, l(100.000000, 100.000000, 0.000000, 0.000000)
    if_nz r10.x
      add r12.x, l(-100.000000), cb1[r4.z + 15].x
    else 
      mov r12.x, cb1[r4.z + 15].x
    endif 
    if_nz r10.y
      add r12.y, l(-100.000000), cb1[r4.z + 15].y
    else 
      mov r12.y, cb1[r4.z + 15].y
    endif 
    lt r7.w, l(1.000000), cb1[r4.y + 15].w
    if_nz r7.w
      add r13.xyz, -v2.xyzx, cb1[r4.y + 15].xyzx
      dp3 r7.w, r13.xyzx, r13.xyzx
      sqrt r8.w, r7.w
      div r13.xyz, r13.xyzx, r8.wwww
      mad r7.w, r7.w, cb1[r4.z + 15].w, l(1.000000)
      div r7.w, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w
      add r7.w, r7.w, l(-0.100000)
      mul_sat r7.w, r7.w, l(1.11111116)
      iadd r8.w, r4.z, l(1)
      lt r9.w, l(2.000000), cb1[r4.y + 15].w
      if_nz r9.w
        add r10.z, l(-3.000000), cb1[r4.y + 15].w
        dp3 r10.w, r13.xyzx, cb1[r8.w + 15].xyzx
        add r13.w, -|r10.w|, l(1.000000)
        sqrt r13.w, r13.w
        mad r14.x, |r10.w|, l(-0.0187292993), l(0.074261)
        mad r14.x, r14.x, |r10.w|, l(-0.212114394)
        mad r14.x, r14.x, |r10.w|, l(1.57072878)
        mul r14.y, r13.w, r14.x
        mad r14.y, r14.y, l(-2.000000), l(3.14159274)
        lt r10.w, r10.w, -r10.w
        and r10.w, r10.w, r14.y
        mad r10.w, r14.x, r13.w, r10.w
        lt r13.w, r10.w, r10.z
        if_nz r13.w
          frc r13.w, cb1[r8.w + 15].w
          div r10.z, r10.w, r10.z
          add r10.z, -r13.w, r10.z
          add r10.w, -r13.w, l(1.000000)
          div_sat r10.z, r10.z, r10.w
          add r10.z, -r10.z, l(1.000000)
        else 
          mov r10.z, l(0)
        endif 
        mul r7.w, r7.w, r10.z
        lt r10.z, l(0.000000), r7.w
        ge r10.w, cb1[r8.w + 15].w, l(1.000000)
        and r10.z, r10.w, r10.z
        if_nz r10.z
          ftoi r10.z, cb1[r8.w + 15].w
          iadd r10.z, r10.z, l(-1)
        else 
          mov r10.z, l(-1)
        endif 
        mov r14.xyz, v2.xyzx
      else 
        lt r10.w, l(0.000000), r7.w
        and r10.y, r10.w, r10.y
        if_nz r10.y
          ge r10.y, cb1[r8.w + 15].w, l(1.000000)
          if_nz r10.y
            ftoi r8.w, cb1[r8.w + 15].w
            iadd r8.w, r8.w, l(-1)
            add r15.xyz, v2.xyzx, -cb1[r4.y + 15].xyzx
            lt r10.yw, |r15.xxxz|, r15.yyyy
            and r10.y, r10.w, r10.y
            if_nz r10.y
              mov r10.y, cb0[73].x
            else 
              lt r16.xy, r15.yyyy, -|r15.xzxx|
              and r10.w, r16.y, r16.x
              if_nz r10.w
                mov r10.y, cb0[73].y
              else 
                lt r10.w, |r15.x|, r15.z
                if_nz r10.w
                  mov r10.y, cb0[72].x
                else 
                  lt r10.w, r15.z, -|r15.x|
                  if_nz r10.w
                    mov r10.y, cb0[72].z
                  else 
                    ge r10.w, r15.x, l(0.000000)
                    if_nz r10.w
                      mov r10.y, cb0[72].y
                    else 
                      mov r10.y, cb0[72].w
                    endif 
                  endif 
                endif 
              endif 
            endif 
            ult r10.w, r10.y, cb0[73].x
            if_nz r10.w
              dp2 r16.x, r15.xzxx, cb1[r10.y + 9].xyxx
              dp2 r16.z, r15.xzxx, cb1[r10.y + 9].zwzz
              mov r16.y, r15.y
            else 
              dp2 r16.y, r15.yzyy, cb1[r10.y + 9].xyxx
              dp2 r16.z, r15.yzyy, cb1[r10.y + 9].zwzz
              mov r16.x, r15.x
            endif 
            add r14.xyz, r16.xyzx, cb1[r4.y + 15].xyzx
            iadd r10.z, r8.w, r10.y
          else 
            mov r10.z, l(-1)
            mov r14.xyz, v2.xyzx
          endif 
        else 
          mov r10.z, l(-1)
          mov r14.xyz, v2.xyzx
        endif 
      endif 
      ige r8.w, r10.z, l(0)
      if_nz r8.w
        iadd r8.w, r4.z, l(3)
        or r10.y, r8.w, l(5)
        iadd r10.w, r10.y, l(1)
        or r13.w, r10.w, l(7)
        mul r15.xyzw, r14.yyyy, cb1[r10.y + 15].xyzw
        mad r15.xyzw, r14.xxxx, cb1[r8.w + 15].xyzw, r15.xyzw
        mad r14.xyzw, r14.zzzz, cb1[r10.w + 15].xyzw, r15.xyzw
        add r14.xyzw, r14.xyzw, cb1[r13.w + 15].xyzw
        div r14.xyz, r14.xyzx, r14.wwww
        lt r10.yw, l(0.000000, 1.000000, 0.000000, 1.000000), |r14.xxxy|
        or r8.w, r10.w, r10.y
        if_nz r8.w
          mov r10.y, l(0)
        endif 
        if_z r8.w
          mad r8.w, r14.x, l(0.500000), l(0.500000)
          mad r10.w, -r14.y, l(0.500000), l(0.500000)
          ushr r13.w, r10.z, l(5)
          and r10.z, r10.z, l(31)
          dp4 r14.x, cb1[2].xyzw, cb1[r13.w + 5].xyzw
          if_z r9.w
            mul r14.y, r14.x, cb1[4].x
            div r14.y, l(0.500000), r14.y
            add r14.w, -r14.y, l(1.000000)
            max r15.x, r8.w, r14.y
            min r8.w, r14.w, r15.x
            max r14.y, r10.w, r14.y
            min r10.w, r14.w, r14.y
          endif 
          utof r10.z, r10.z
          add r8.w, r8.w, r10.z
          mul r15.x, r14.x, r8.w
          dp4 r8.w, cb1[1].xyzw, cb1[r13.w + 5].xyzw
          dp2 r10.z, r10.wwww, r14.xxxx
          add r15.y, r8.w, r10.z
          sample_c_lz r10.y, r15.xyxx, t11.xxxx, s0, r14.z
          and r8.w, r1.w, r9.w
          if_nz r8.w
            add r16.yz, r15.xxyx, -cb1[4].zzwz
            sample_c_lz r8.w, r16.yzyy, t11.xxxx, s0, r14.z
            add r8.w, r8.w, r10.y
            add r16.xw, r15.xxxy, cb1[4].zzzw
            sample_c_lz r9.w, r16.xzxx, t11.xxxx, s0, r14.z
            add r8.w, r8.w, r9.w
            sample_c_lz r9.w, r16.ywyy, t11.xxxx, s0, r14.z
            add r8.w, r8.w, r9.w
            sample_c_lz r9.w, r16.xwxx, t11.xxxx, s0, r14.z
            add r8.w, r8.w, r9.w
            mul r10.y, r8.w, l(0.200000)
          endif 
        endif 
        mul r7.w, r7.w, r10.y
      endif 
    else 
      mov r13.xyz, -cb1[r4.y + 15].xyzx
      mov r7.w, l(1.000000)
    endif 
    lt r4.y, l(0.000000), r7.w
    if_nz r4.y
      dp3 r4.y, r13.xyzx, r3.xywx
      lt r8.w, l(0.000000), r4.y
      if_nz r8.w
        mov r12.z, cb1[r4.z + 15].z
        mul r10.yzw, r4.yyyy, r12.xxyz
        mul r10.yzw, r7.wwww, r10.yyzw
      else 
        mov r10.yzw, l(0,0,0,0)
      endif 
      if_z r10.x
        mad r13.xyz, -v2.xyzx, r5.xxxx, r13.xyzx
        mul r13.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
        dp3 r4.y, r13.xyzx, r13.xyzx
        rsq r4.y, r4.y
        mul r13.xyz, r4.yyyy, r13.xyzx
        dp3 r4.y, r13.xyzx, r3.xywx
        lt r8.w, l(0.000000), r4.y
        if_nz r8.w
          log r4.y, r4.y
          mul r4.y, r4.y, cb0[139].w
          exp r4.y, r4.y
          sqrt r7.w, r7.w
          mul r4.y, r4.y, r7.w
          mov r12.w, cb1[r4.z + 15].z
          mul r12.xyz, r4.yyyy, r12.xywx
          mul r12.xyz, r12.xyzx, cb0[139].xyzx
        else 
          mov r12.xyz, l(0,0,0,0)
        endif 
      else 
        mov r12.xyz, l(0,0,0,0)
      endif 
      add r5.yzw, r5.yyzw, r10.yyzw
      add r8.xyz, r8.xyzx, r12.xyzx
    endif 
    iadd r2.w, r2.w, l(1)
  endloop 
  dp3 r0.w, cb0[69].xyzx, r3.xywx
  max r0.w, -r0.w, l(0.000000)
  mul r4.xyz, r0.wwww, cb0[70].xyzx
  mad r6.xyz, -v2.xyzx, r5.xxxx, -cb0[69].xyzx
  mul r6.xyz, r6.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
  dp3 r0.w, r6.xyzx, r6.xyzx
  rsq r0.w, r0.w
  mul r6.xyz, r0.wwww, r6.xyzx
  dp3 r0.w, r6.xyzx, r3.xywx
  max r0.w, r0.w, l(0.000000)
  lt r1.w, l(0.004000), r0.w
  if_nz r1.w
    log r0.w, r0.w
    mul r0.w, r0.w, cb0[139].w
    exp r0.w, r0.w
    mul r3.xyz, r0.wwww, cb0[71].xyzx
    mul r3.xyz, r3.xyzx, cb0[139].xyzx
  else 
    mov r3.xyz, l(0,0,0,0)
  endif 
  mad r4.xyz, r4.xyzx, r0.xxxx, cb0[68].xyzx
  mul_sat r0.w, cb0[69].y, l(-100.000000)
  mul r3.xyz, r0.wwww, r3.xyzx
  dp3 r0.w, -r7.xyzx, r9.xyzx
  max r0.w, r0.w, l(0.000000)
  add r0.w, r0.w, l(1.000000)
  mul r1.w, r0.w, r0.w
  mul r1.w, r1.w, r1.w
  mul r0.w, r0.w, r1.w
  div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
  add r1.w, -r0.z, l(0.900000)
  mul_sat r1.w, r1.w, l(10.000000)
  mul r0.y, r0.y, r1.w
  mul r6.xyz, r2.xyzx, r4.xyzx
  mul r0.w, r0.w, r1.w
  mul r0.w, r0.w, cb0[144].w
  mad r1.xyz, -r2.xyzx, r4.xyzx, r1.xyzx
  mad r1.xyz, r0.wwww, r1.xyzx, r6.xyzx
  mad r2.xyz, r3.xyzx, r0.xxxx, r8.xyzx
  mad r1.xyz, r2.xyzx, r1.wwww, r1.xyzx
  add r2.xyz, r5.yzwy, r4.xyzx
  add r2.xyz, -r1.xyzx, r2.xyzx
  mad r1.xyz, r0.yyyy, r2.xyzx, r1.xyzx
  mov_sat r2.xyz, v8.xyzx
  lt r0.x, cb0[116].w, l(0.500000)
  if_nz r0.x
    add r3.xyz, -r1.xyzx, r11.xyzx
    mad r3.xyz, r2.xyzx, r3.xyzx, r1.xyzx
  endif 
  if_z r0.x
    mov_sat r0.x, v8.w
    mul r0.w, r11.w, r11.w
    mad r4.xyz, cb0[70].xyzx, r0.wwww, cb0[68].xyzx
    ge r0.w, cb0[113].z, l(0.000000)
    if_nz r0.w
      mad r5.xyz, cb0[115].xyzx, r4.xyzx, -r1.xyzx
      mad r5.xyz, r0.xxxx, r5.xyzx, r1.xyzx
      add r6.xyz, -r5.xyzx, r11.xyzx
      mad r3.xyz, r2.xyzx, r6.xyzx, r5.xyzx
    else 
      mul r0.w, -cb0[114].w, cb0[116].z
      min r0.w, r0.w, l(1.000000)
      lt r2.w, r0.w, l(0.999900)
      if_nz r2.w
        mul r0.w, r0.w, r0.w
        mad r5.xyz, cb0[115].xyzx, r4.xyzx, -r1.xyzx
        mad r5.xyz, r0.xxxx, r5.xyzx, r1.xyzx
        add r6.xyz, -r5.xyzx, r11.xyzx
        mad r5.xyz, r2.xyzx, r6.xyzx, r5.xyzx
        add r6.xyz, -r1.xyzx, r11.xyzx
        mad r6.xyz, r2.xyzx, r6.xyzx, r1.xyzx
        mad r7.xyz, cb0[115].xyzx, r4.xyzx, -r6.xyzx
        mad r6.xyz, r0.xxxx, r7.xyzx, r6.xyzx
        add r6.xyz, -r5.xyzx, r6.xyzx
        mad r3.xyz, r0.wwww, r6.xyzx, r5.xyzx
      else 
        add r5.xyz, -r1.xyzx, r11.xyzx
        mad r1.xyz, r2.xyzx, r5.xyzx, r1.xyzx
        mad r2.xyz, cb0[115].xyzx, r4.xyzx, -r1.xyzx
        mad r3.xyz, r0.xxxx, r2.xyzx, r1.xyzx
      endif 
    endif 
  endif 
  add r0.x, r0.z, l(-0.900000)
  mad r0.x, -r0.x, l(10.000000), l(1.000000)
  min r0.x, r0.x, l(1.000000)
  mul r0.x, r0.x, v10.w
  add r0.z, -r4.w, l(1.000000)
  mul r0.x, r0.z, r0.x
  sqrt r0.z, r1.w
  max r0.y, r0.y, r0.z
  mul r3.w, r0.y, r0.x
  lt r0.x, r3.w, l(0.0196078438)
  if_nz r0.x
    discard_nz l(-1)
  endif 
  mov o0.xyzw, r3.xyzw
else 
  discard_nz l(-1)
endif 
ret 
// Approximately 536 instruction slots used
