//
// 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 [unused]
//   
//   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
// CloudsShadowsSampler              sampler      NA          NA    1        1
// TrailsSampler0                    sampler      NA          NA    2        1
// TrailsSampler1                    sampler      NA          NA    3        1
// DeepSampler                       sampler      NA          NA    4        1
// RefSampler                        sampler      NA          NA    5        1
// MaskSampler                       sampler      NA          NA    6        1
// SmallNormSampler                  sampler      NA          NA    7        1
// NormSampler                       sampler      NA          NA    8        1
// EnvSampler                        sampler      NA          NA    9        1
// SkyTextureSampler                 sampler      NA          NA   10        1
// FoamNoiseSampler                  sampler      NA          NA   11        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
// $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       
// COLOR                    0   xyzw       10     NONE   float      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], immediateIndexed
dcl_constantbuffer cb1[2063], dynamicIndexed
dcl_sampler s0, mode_comparison
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_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_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_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 v10.w
dcl_output o0.xyzw
dcl_temps 17
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, s11
mad r3.xy, v1.yxyy, cb0[140].zzzz, cb0[140].yxyy
add r3.z, -r3.y, l(1.000000)
sample r0.yzw, r3.xzxx, t2.zxyw, s4
mul_sat r0.z, r0.z, l(4.000000)
add r1.x, r0.z, cb0[133].z
add r3.x, r1.x, r1.x
mov r3.yz, v6.wwzw
sample r1.x, r3.xyxx, t1.wxyz, s11
sample r1.y, r3.zxzz, t1.xwyz, s11
mad r3.x, v6.x, cb0[141].z, cb0[141].y
add r3.z, -v6.y, l(1.000000)
mad r3.y, r3.z, cb0[141].z, cb0[141].x
sample r3.xyzw, r3.xyxx, t3.xyzw, s6
sample r4.xyzw, v1.xyxx, t4.xyzw, s8
mad r4.xyz, r4.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
add r5.xyz, -r4.xyzx, l(0.000000, 1.000000, 0.000000, 0.000000)
mad r4.xyz, r0.zzzz, r5.xyzx, r4.xyzx
dp3 r5.x, r4.xyzx, r4.xyzx
rsq r5.x, r5.x
mul r4.xyz, r4.xyzx, 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, s7
mad r5.xyz, r5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r5.w, cb0[144].y, l(0.300000)
mul r5.xz, r5.wwww, r5.xxzx
dp3 r5.w, r5.xyzx, r5.xyzx
rsq r5.w, r5.w
mul r5.xyz, r5.wwww, r5.xyzx
div r6.xy, v7.xyxx, v7.wwww
mul r7.xyz, r4.zxyz, l(0.000000, 1.000000, 0.000000, 0.000000)
mad r7.xyz, r4.yzxy, l(1.000000, 0.000000, 0.000000, 0.000000), -r7.xyzx
dp2 r5.w, r7.xyxx, r7.xyxx
rsq r5.w, r5.w
mul r7.xyz, r5.wwww, r7.xyzx
mul r8.xyz, r4.yzxy, r7.zxyz
mad r8.xyz, r7.yzxy, r4.zxyz, -r8.xyzx
mul r4.xyz, r4.xyzx, r5.yyyy
mad r4.xyz, r5.xxxx, r7.xyzx, r4.xyzx
mad r4.xyz, r5.zzzz, r8.xyzx, r4.xyzx
dp3 r5.x, v4.xyzx, v4.xyzx
rsq r5.x, r5.x
mad r4.xz, v4.xxzx, r5.xxxx, r4.xxzx
dp3 r5.x, r4.xyzx, r4.xyzx
rsq r5.x, r5.x
mul r4.xyz, r4.xyzx, r5.xxxx
dp3 r5.x, v2.xyzx, v2.xyzx
rsq r5.x, r5.x
mul r5.yzw, r5.xxxx, v2.xxyz
mul r7.xyz, r4.xyzx, l(0.500000, 1.000000, 0.500000, 0.000000)
dp3 r6.z, r7.xyzx, r7.xyzx
rsq r6.z, r6.z
mul r7.xyz, r6.zzzz, r7.xyzx
mul r8.xz, r5.yywy, l(0.100000, 0.000000, 0.100000, 0.000000)
mov r8.y, l(0)
min r6.z, r5.z, l(-0.010000)
add r6.z, r6.z, l(1.000000)
max r6.z, r6.z, l(0.000000)
mad r8.xyz, -r8.xyzx, r6.zzzz, r7.xyzx
dp3 r6.z, r8.xyzx, r8.xyzx
rsq r6.z, r6.z
mul r8.xyz, r6.zzzz, r8.xyzx
dp3 r6.z, v2.xyzx, r8.xyzx
add r6.z, r6.z, r6.z
mad r9.xyz, r8.xyzx, -r6.zzzz, v2.xyzx
sample r9.xyz, r9.xyzx, t6.xyzw, s9
mad r6.zw, r7.xxxz, l(0.000000, 0.000000, 0.400000, 0.400000), r6.xxxy
sample r7.xyz, r6.zwzz, t7.xyzw, s5
mad r6.zw, v3.xxxy, cb0[248].xxxy, cb0[248].zzzw
sample r6.z, r6.zwzz, t8.xzyw, s2
sample r10.xyzw, r6.xyxx, t10.xyzw, s10
sample r1.z, r1.zwzz, t1.xywz, s11
mad r11.xy, v3.xyxx, cb0[249].xyxx, cb0[249].zwzz
sample r1.w, r11.xyxx, t9.xzwy, s3
if_nz r0.x
  sample r0.x, v5.xyxx, t0.yxzw, s1
  add r0.x, r0.x, l(-1.000000)
  mad r0.x, cb0[123].z, r0.x, l(1.000000)
  mul r6.w, cb0[133].x, l(5.000000)
  frc r6.w, r6.w
  lt r7.w, r6.w, l(0.333000)
  if_nz r7.w
    mul r7.w, r6.w, l(3.000000)
    min r7.w, r7.w, l(1.000000)
    add r8.w, -r2.x, r2.y
    mad r7.w, r7.w, r8.w, r2.x
  else 
    lt r8.w, r6.w, l(0.667000)
    if_nz r8.w
      add r8.w, r6.w, l(-0.333000)
      mul r8.w, r8.w, l(3.000000)
      min r8.w, r8.w, l(1.000000)
      add r9.w, -r2.y, r2.z
      mad r7.w, r8.w, r9.w, r2.y
    else 
      add r2.y, r6.w, l(-0.667000)
      mul r2.y, r2.y, l(3.000000)
      add r2.x, -r2.z, r2.x
      mad r7.w, 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, r7.w
  mul r0.w, r2.w, r4.w
  mul r0.y, r0.y, v4.w
  mad r0.y, r0.w, r7.w, r0.y
  mul r0.w, r6.z, 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, -r9.xyzx, r7.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, r9.xyzx
  add r2.xyz, r3.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), -r3.xyzx
  mad r2.xyz, r0.zzzz, r2.xyzx, r3.xyzx
  mul r3.xy, r6.xyxx, cb1[0].xyxx
  ftoi r6.yz, r3.xxyx
  mov r6.w, l(0)
  ld r3.xy, r6.yzww, t12.xyzw
  umin r0.w, r3.y, l(17)
  lt r1.w, l(0.500000), cb1[0].w
  mov r7.xyz, l(0,0,0,0)
  mov r9.xyz, l(0,0,0,0)
  mov r2.w, l(1)
  mov r6.x, l(0)
  mov r3.y, r3.x
  loop 
    ige r3.z, r2.w, r0.w
    breakc_nz r3.z
    if_nz r2.w
      iadd r6.x, r6.x, l(1)
      ld r3.y, r6.yzxw, t12.yxzw
    endif 
    ishl r3.z, r3.y, l(3)
    iadd r4.w, r3.z, l(1)
    ge r11.xy, cb1[r4.w + 15].xyxx, l(100.000000, 100.000000, 0.000000, 0.000000)
    if_nz r11.x
      add r12.x, l(-100.000000), cb1[r4.w + 15].x
    else 
      mov r12.x, cb1[r4.w + 15].x
    endif 
    if_nz r11.y
      add r12.y, l(-100.000000), cb1[r4.w + 15].y
    else 
      mov r12.y, cb1[r4.w + 15].y
    endif 
    lt r7.w, l(1.000000), cb1[r3.z + 15].w
    if_nz r7.w
      add r13.xyz, -v2.xyzx, cb1[r3.z + 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.w + 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.w, l(1)
      lt r9.w, l(2.000000), cb1[r3.z + 15].w
      if_nz r9.w
        add r11.z, l(-3.000000), cb1[r3.z + 15].w
        dp3 r11.w, r13.xyzx, cb1[r8.w + 15].xyzx
        add r13.w, -|r11.w|, l(1.000000)
        sqrt r13.w, r13.w
        mad r14.x, |r11.w|, l(-0.0187292993), l(0.074261)
        mad r14.x, r14.x, |r11.w|, l(-0.212114394)
        mad r14.x, r14.x, |r11.w|, l(1.57072878)
        mul r14.y, r13.w, r14.x
        mad r14.y, r14.y, l(-2.000000), l(3.14159274)
        lt r11.w, r11.w, -r11.w
        and r11.w, r11.w, r14.y
        mad r11.w, r14.x, r13.w, r11.w
        lt r13.w, r11.w, r11.z
        if_nz r13.w
          frc r13.w, cb1[r8.w + 15].w
          div r11.z, r11.w, r11.z
          add r11.z, -r13.w, r11.z
          add r11.w, -r13.w, l(1.000000)
          div_sat r11.z, r11.z, r11.w
          add r11.z, -r11.z, l(1.000000)
        else 
          mov r11.z, l(0)
        endif 
        mul r7.w, r7.w, r11.z
        lt r11.z, l(0.000000), r7.w
        ge r11.w, cb1[r8.w + 15].w, l(1.000000)
        and r11.z, r11.w, r11.z
        if_nz r11.z
          ftoi r11.z, cb1[r8.w + 15].w
          iadd r11.z, r11.z, l(-1)
        else 
          mov r11.z, l(-1)
        endif 
        mov r14.xyz, v2.xyzx
      else 
        lt r11.w, l(0.000000), r7.w
        and r11.y, r11.w, r11.y
        if_nz r11.y
          ge r11.y, cb1[r8.w + 15].w, l(1.000000)
          if_nz r11.y
            ftoi r8.w, cb1[r8.w + 15].w
            iadd r8.w, r8.w, l(-1)
            add r15.xyz, v2.xyzx, -cb1[r3.z + 15].xyzx
            lt r11.yw, |r15.xxxz|, r15.yyyy
            and r11.y, r11.w, r11.y
            if_nz r11.y
              mov r11.y, cb0[73].x
            else 
              lt r16.xy, r15.yyyy, -|r15.xzxx|
              and r11.w, r16.y, r16.x
              if_nz r11.w
                mov r11.y, cb0[73].y
              else 
                lt r11.w, |r15.x|, r15.z
                if_nz r11.w
                  mov r11.y, cb0[72].x
                else 
                  lt r11.w, r15.z, -|r15.x|
                  if_nz r11.w
                    mov r11.y, cb0[72].z
                  else 
                    ge r11.w, r15.x, l(0.000000)
                    if_nz r11.w
                      mov r11.y, cb0[72].y
                    else 
                      mov r11.y, cb0[72].w
                    endif 
                  endif 
                endif 
              endif 
            endif 
            ult r11.w, r11.y, cb0[73].x
            if_nz r11.w
              dp2 r16.x, r15.xzxx, cb1[r11.y + 9].xyxx
              dp2 r16.z, r15.xzxx, cb1[r11.y + 9].zwzz
              mov r16.y, r15.y
            else 
              dp2 r16.y, r15.yzyy, cb1[r11.y + 9].xyxx
              dp2 r16.z, r15.yzyy, cb1[r11.y + 9].zwzz
              mov r16.x, r15.x
            endif 
            add r14.xyz, r16.xyzx, cb1[r3.z + 15].xyzx
            iadd r11.z, r8.w, r11.y
          else 
            mov r11.z, l(-1)
            mov r14.xyz, v2.xyzx
          endif 
        else 
          mov r11.z, l(-1)
          mov r14.xyz, v2.xyzx
        endif 
      endif 
      ige r8.w, r11.z, l(0)
      if_nz r8.w
        iadd r8.w, r4.w, l(3)
        or r11.y, r8.w, l(5)
        iadd r11.w, r11.y, l(1)
        or r13.w, r11.w, l(7)
        mul r15.xyzw, r14.yyyy, cb1[r11.y + 15].xyzw
        mad r15.xyzw, r14.xxxx, cb1[r8.w + 15].xyzw, r15.xyzw
        mad r14.xyzw, r14.zzzz, cb1[r11.w + 15].xyzw, r15.xyzw
        add r14.xyzw, r14.xyzw, cb1[r13.w + 15].xyzw
        div r14.xyz, r14.xyzx, r14.wwww
        lt r11.yw, l(0.000000, 1.000000, 0.000000, 1.000000), |r14.xxxy|
        or r8.w, r11.w, r11.y
        if_nz r8.w
          mov r11.y, l(0)
        endif 
        if_z r8.w
          mad r8.w, r14.x, l(0.500000), l(0.500000)
          mad r11.w, -r14.y, l(0.500000), l(0.500000)
          ushr r13.w, r11.z, l(5)
          and r11.z, r11.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, r11.w, r14.y
            min r11.w, r14.w, r14.y
          endif 
          utof r11.z, r11.z
          add r8.w, r8.w, r11.z
          mul r15.x, r14.x, r8.w
          dp4 r8.w, cb1[1].xyzw, cb1[r13.w + 5].xyzw
          dp2 r11.z, r11.wwww, r14.xxxx
          add r15.y, r8.w, r11.z
          sample_c_lz r11.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, r11.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 r11.y, r8.w, l(0.200000)
          endif 
        endif 
        mul r7.w, r7.w, r11.y
      endif 
    else 
      mov r13.xyz, -cb1[r3.z + 15].xyzx
      mov r7.w, l(1.000000)
    endif 
    lt r3.z, l(0.000000), r7.w
    if_nz r3.z
      dp3 r3.z, r13.xyzx, r4.xyzx
      lt r8.w, l(0.000000), r3.z
      if_nz r8.w
        mov r12.z, cb1[r4.w + 15].z
        mul r11.yzw, r3.zzzz, r12.xxyz
        mul r11.yzw, r7.wwww, r11.yyzw
      else 
        mov r11.yzw, l(0,0,0,0)
      endif 
      if_z r11.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 r3.z, r13.xyzx, r13.xyzx
        rsq r3.z, r3.z
        mul r13.xyz, r3.zzzz, r13.xyzx
        dp3 r3.z, r13.xyzx, r4.xyzx
        lt r8.w, l(0.000000), r3.z
        if_nz r8.w
          log r3.z, r3.z
          mul r3.z, r3.z, cb0[139].w
          exp r3.z, r3.z
          sqrt r7.w, r7.w
          mul r3.z, r3.z, r7.w
          mov r12.w, cb1[r4.w + 15].z
          mul r12.xyz, r3.zzzz, 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 r7.xyz, r7.xyzx, r11.yzwy
      add r9.xyz, r9.xyzx, r12.xyzx
    endif 
    iadd r2.w, r2.w, l(1)
  endloop 
  dp3 r0.w, cb0[69].xyzx, r4.xyzx
  max r0.w, -r0.w, l(0.000000)
  mul r3.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, r4.xyzx
  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 r4.xyz, r0.wwww, cb0[71].xyzx
    mul r4.xyz, r4.xyzx, cb0[139].xyzx
  else 
    mov r4.xyz, l(0,0,0,0)
  endif 
  mad r3.xyz, r3.xyzx, r0.xxxx, cb0[68].xyzx
  mul_sat r0.w, cb0[69].y, l(-100.000000)
  mul r4.xyz, r0.wwww, r4.xyzx
  dp3 r0.w, -r5.yzwy, r8.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 r5.xyz, r2.xyzx, r3.xyzx
  mul r0.w, r0.w, r1.w
  mul r0.w, r0.w, cb0[144].w
  mad r1.xyz, -r2.xyzx, r3.xyzx, r1.xyzx
  mad r1.xyz, r0.wwww, r1.xyzx, r5.xyzx
  mad r2.xyz, r4.xyzx, r0.xxxx, r9.xyzx
  mad r1.xyz, r2.xyzx, r1.wwww, r1.xyzx
  add r2.xyz, r7.xyzx, r3.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, r10.xyzx
    mad r4.xyz, r2.xyzx, r3.xyzx, r1.xyzx
  endif 
  if_z r0.x
    mov_sat r0.x, v8.w
    mul r0.w, r10.w, r10.w
    mad r3.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, r3.xyzx, -r1.xyzx
      mad r5.xyz, r0.xxxx, r5.xyzx, r1.xyzx
      add r6.xyz, -r5.xyzx, r10.xyzx
      mad r4.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, r3.xyzx, -r1.xyzx
        mad r5.xyz, r0.xxxx, r5.xyzx, r1.xyzx
        add r6.xyz, -r5.xyzx, r10.xyzx
        mad r5.xyz, r2.xyzx, r6.xyzx, r5.xyzx
        add r6.xyz, -r1.xyzx, r10.xyzx
        mad r6.xyz, r2.xyzx, r6.xyzx, r1.xyzx
        mad r7.xyz, cb0[115].xyzx, r3.xyzx, -r6.xyzx
        mad r6.xyz, r0.xxxx, r7.xyzx, r6.xyzx
        add r6.xyz, -r5.xyzx, r6.xyzx
        mad r4.xyz, r0.wwww, r6.xyzx, r5.xyzx
      else 
        add r5.xyz, -r1.xyzx, r10.xyzx
        mad r1.xyz, r2.xyzx, r5.xyzx, r1.xyzx
        mad r2.xyz, cb0[115].xyzx, r3.xyzx, -r1.xyzx
        mad r4.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, -r3.w, l(1.000000)
  mul r0.x, r0.z, r0.x
  sqrt r0.z, r1.w
  max r0.y, r0.y, r0.z
  mul r4.w, r0.y, r0.x
  lt r0.x, r4.w, l(0.0196078438)
  if_nz r0.x
    discard_nz l(-1)
  endif 
  mov o0.xyzw, r4.xyzw
else 
  discard_nz l(-1)
endif 
ret 
// Approximately 473 instruction slots used
