//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.2.67 on Mon Jan 01 13:12:15 2018
//
//
// Buffer Definitions: 
//
// cbuffer $Globals
// {
//
//   float4x4 g_mCloudsShadowsSpace;    // Offset:    0 Size:    64 [unused]
//   float4 g_vCloudsShadowDesc;        // Offset:   64 Size:    16
//   float4 g_vKSettings;               // Offset:   80 Size:    16 [unused]
//   float4x4 g_mPrevObjViewProj;       // Offset:   96 Size:    64 [unused]
//   
//   struct
//   {
//       
//       float4x4 mLightSpaceInverse;   // Offset:  160
//       float4x4 mLightSpace;          // Offset:  224
//       float4 vShadowBias;            // Offset:  288
//       float4 vBiasDir;               // Offset:  304
//       float4 vSmoothOffs;            // Offset:  320
//       float4 vShadowsDesc;           // Offset:  336
//       float4 avCPlane[8];            // Offset:  352
//       float4 avCascadeZ[2];          // Offset:  480
//       float4 avUVTransform[8];       // Offset:  512
//       float4 avZTransformZF[8];      // Offset:  640
//
//   } g_ShadSettings;                  // Offset:  160 Size:   608
//   float4 specColor;                  // Offset:  768 Size:    16 [unused]
//   float4 ControlData;                // Offset:  784 Size:    16 [unused]
//   float4 difColor;                   // Offset:  800 Size:    16 [unused]
//   float4 ambient;                    // Offset:  816 Size:    16
//   float4 g_vDefLightDir;             // Offset:  832 Size:    16
//   float4 g_vDefLightColor;           // Offset:  848 Size:    16
//   float4 g_vDefSpecColor;            // Offset:  864 Size:    16
//   uint CS_FRONT;                     // Offset:  880 Size:     4
//      = 0x00000000 
//   uint CS_RIGHT;                     // Offset:  884 Size:     4
//      = 0x00000001 
//   uint CS_BACK;                      // Offset:  888 Size:     4
//      = 0x00000002 
//   uint CS_LEFT;                      // Offset:  892 Size:     4
//      = 0x00000003 
//   uint CS_TOP;                       // Offset:  896 Size:     4
//      = 0x00000004 
//   uint CS_BOTTOM;                    // Offset:  900 Size:     4
//      = 0x00000005 
//   float4 g_vAmbientSettings;         // Offset:  912 Size:    16 [unused]
//   float4 g_vScreenDepthRect;         // Offset:  928 Size:    16
//   
//   struct
//   {
//       
//       float4 vDesc;                  // Offset:  944
//       float4 vFogLayerPlane;         // Offset:  960
//       float4 vFogLayerColor;         // Offset:  976
//       float4 vFogLayerSettings;      // Offset:  992
//       float4 vFogColor;              // Offset: 1008
//       float4 vFogDistance;           // Offset: 1024
//
//   } g_FogDesc;                       // Offset:  944 Size:    96
//   float4 g_vForestPlaneThreshold;    // Offset: 1040 Size:    16 [unused]
//      = 0x44a28000 0x3b03126f 0x00000000 0x00000000 
//   float4 LowDeepColor;               // Offset: 1056 Size:    16 [unused]
//      = 0x3e99999a 0x3ecccccd 0x3ecccccd 0x00000000 
//   float4 SeaColor;                   // Offset: 1072 Size:    16 [unused]
//      = 0x3dcccccd 0x3e99999a 0x3e99999a 0x00000000 
//   float4 DetailScale;                // Offset: 1088 Size:    16
//      = 0x3f800000 0x3f800000 0x3f800000 0x3f800000 
//   float4 g_vIceScale;                // Offset: 1104 Size:    16 [unused]
//      = 0x3f800000 0x3f800000 0x3f800000 0x3f800000 
//   float4 g_vSpecSettings;            // Offset: 1120 Size:    16 [unused]
//      = 0x3f800000 0x3f800000 0x3f800000 0x3f800000 
//   float4 g_vSeaCorrection;           // Offset: 1136 Size:    16 [unused]
//   float4 g_vSeaDesc;                 // Offset: 1152 Size:    16
//      = 0x3ecccccd 0x3f19999a 0x40800000 0x3f7ae148 
//   float4 g_vSeaHarmonics;            // Offset: 1168 Size:    16
//      = 0x3f800000 0x3f800000 0x3f800000 0x3f800000 
//   float4 g_vWaterDesc;               // Offset: 1184 Size:    16 [unused]
//      = 0x3ecccccd 0x3f19999a 0x40800000 0x3f7ae148 
//   float4 g_vWaterColor;              // Offset: 1200 Size:    16 [unused]
//      = 0x3f800000 0x00000000 0x00000000 0x00000000 
//   float4 g_vWaterSpecColor;          // Offset: 1216 Size:    16
//      = 0x3f800000 0x3f800000 0x3f800000 0x42a00000 
//   float4 Anim;                       // Offset: 1232 Size:    16
//   float4 g_vAsyncTextureSize;        // Offset: 1248 Size:    16
//      = 0x3f800000 0x3f800000 0x00000000 0x00000000 
//   float4 g_vRTTexSize;               // Offset: 1264 Size:    16 [unused]
//   float4 g_vAnisotropy;              // Offset: 1280 Size:    16 [unused]
//   float2 TexelOffs[9];               // Offset: 1296 Size:   136 [unused]
//      = 0x00000000 0x00000000 0x00000000 0x00000000 
//        0xba800000 0x00000000 0x00000000 0x00000000 
//        0x3a800000 0x00000000 0x00000000 0x00000000 
//        0x00000000 0xba800000 0x00000000 0x00000000 
//        0x00000000 0x3a800000 0x00000000 0x00000000 
//        0xbb000000 0xbb000000 0x00000000 0x00000000 
//        0x3b000000 0xbb000000 0x00000000 0x00000000 
//        0x3b000000 0x3b000000 0x00000000 0x00000000 
//        0xbb000000 0x3b000000 
//   float4 g_avGroundColor[9];         // Offset: 1440 Size:   144 [unused]
//   float4x4 g_mWorldViewProjection;   // Offset: 1584 Size:    64 [unused]
//   float4x4 g_mView;                  // Offset: 1648 Size:    64 [unused]
//   float4x4 g_mWorldView;             // Offset: 1712 Size:    64 [unused]
//   float3 chunkColor;                 // Offset: 1776 Size:    12 [unused]
//   float3 g_deltaCam;                 // Offset: 1792 Size:    12 [unused]
//   float4 mapSize;                    // Offset: 1808 Size:    16 [unused]
//   float4 skirtInfo;                  // Offset: 1824 Size:    16 [unused]
//   float4x4 g_textureRotation;        // Offset: 1840 Size:    64 [unused]
//   float3 textureCoordsP1;            // Offset: 1904 Size:    12 [unused]
//   float3 textureCoordsP2;            // Offset: 1920 Size:    12 [unused]
//   float3 chunkInSectorCoords;        // Offset: 1936 Size:    12 [unused]
//   float4 chunkInfo;                  // Offset: 1952 Size:    16 [unused]
//   float4 g_vSettings;                // Offset: 1968 Size:    16
//   float4 g_vPlaneSettings;           // Offset: 1984 Size:    16 [unused]
//   float4 g_vPlaneOffset;             // Offset: 2000 Size:    16 [unused]
//   float3 GrayK;                      // Offset: 2016 Size:    12 [unused]
//      = 0x3eaa7efa 0x3eaa7efa 0x3eaa7efa 
//   float4 g_vForestFarSettings;       // Offset: 2032 Size:    16 [unused]
//   float4 g_vWindDir;                 // Offset: 2048 Size:    16
//      = 0x3f800000 0x00000000 0x00000000 0x00000000 
//   float4 DetailOffset;               // Offset: 2064 Size:    16 [unused]
//   float4 DetailSectorOffset;         // Offset: 2080 Size:    16 [unused]
//   float4 DetailSettings;             // Offset: 2096 Size:    16 [unused]
//   float4 ParalaxSettings;            // Offset: 2112 Size:    16 [unused]
//      = 0x3e19999a 0x3f800000 0x43480000 0x00000000 
//   float4 DetailH[64];                // Offset: 2128 Size:  1024 [unused]
//   float4 DetailRTCoords;             // Offset: 3152 Size:    16 [unused]
//   float4 g_vPRTSettings;             // Offset: 3168 Size:    16 [unused]
//      = 0x00000000 0x00000000 0x42480000 0x3a000000 
//   float4 g_avMask[4];                // Offset: 3184 Size:    64 [unused]
//      = 0x3f800000 0x00000000 0x00000000 0x00000000 
//        0x00000000 0x3f800000 0x00000000 0x00000000 
//        0x00000000 0x00000000 0x3f800000 0x00000000 
//        0x00000000 0x00000000 0x00000000 0x3f800000 
//   float4 g_avPRTMask[4];             // Offset: 3248 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
// ------------------------------ ---------- ------- ----------- ---- --------
// CloudsShadowsSampler              sampler      NA          NA    0        1
// shadowSamplerF                  sampler_c      NA          NA    1        1
// LightsShadowsSampler            sampler_c      NA          NA    2        1
// SSAOSampler                       sampler      NA          NA    3        1
// SamplerLerp                       sampler      NA          NA    4        1
// ReflectionSampler                 sampler      NA          NA    5        1
// CliffSampler                      sampler      NA          NA    6        1
// SeaNormalsSampler                 sampler      NA          NA    7        1
// RTNormalsSampler                  sampler      NA          NA    8        1
// NormalTextureSampler              sampler      NA          NA    9        1
// SkyTextureSampler                 sampler      NA          NA   10        1
// FoamMaskSampler                   sampler      NA          NA   11        1
// FoamNoiseSampler                  sampler      NA          NA   12        1
// EnvSampler                        sampler      NA          NA   13        1
// RippleSampler                     sampler      NA          NA   14        1
// NormalTextureSampler              texture  float4          2d    0        1
// RTNormalsSampler                  texture  float4          2d    1        1
// CliffSampler                      texture  float4          2d    2        1
// SkyTextureSampler                 texture  float4          2d    3        1
// CloudsShadowsSampler              texture  float4          2d    4        1
// SSAOSampler                       texture  float4          2d    5        1
// RippleSampler                     texture  float4          2d    6        1
// SeaNormalsSampler                 texture  float4          3d    7        1
// FoamNoiseSampler                  texture  float4          2d    8        1
// FoamMaskSampler                   texture  float4          2d    9        1
// ReflectionSampler                 texture  float4          2d   10        1
// EnvSampler                        texture  float4        cube   11        1
// g_tDepthTexture                   texture  float4     2darray   12        1
// g_tLightsShadows                  texture  float4          2d   13        1
// g_tLightsList                     texture   uint2          3d   14        1
// g_tRTDiffuse                      texture  float4          2d   15        1
// g_tDetail0                        texture  float4          2d   16        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   xyzw
// TEXCOORD                 1   xyz         2     NONE   float   xyz 
// TEXCOORD                 2   xyzw        3     NONE   float   xyzw
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xyzw        5     NONE   float   xy w
// TEXCOORD                 5   xyz         6     NONE   float   xyz 
// TEXCOORD                 6   xyzw        7     NONE   float   xyzw
//
//
// 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[129], dynamicIndexed
dcl_constantbuffer cb1[2063], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_comparison
dcl_sampler s2, mode_comparison
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_sampler s13, mode_default
dcl_sampler s14, 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_resource_texture2d (float,float,float,float) t6
dcl_resource_texture3d (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_texturecube (float,float,float,float) t11
dcl_resource_texture2darray (float,float,float,float) t12
dcl_resource_texture2d (float,float,float,float) t13
dcl_resource_texture3d (uint,uint,uint,uint) t14
dcl_resource_texture2d (float,float,float,float) t15
dcl_resource_texture2d (float,float,float,float) t16
dcl_input_ps linear centroid v1.xyzw
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xyzw
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xyw
dcl_input_ps linear v6.xyz
dcl_input_ps linear v7.xyzw
dcl_output o0.xyzw
dcl_temps 16
lt r0.xyzw, cb0[30].xyzw, v3.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[31].xyzw, v3.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, v3.xyxx, cb0[r0.w + 32].zwzz, cb0[r0.w + 32].xyxx
mad r1.z, v3.z, cb0[r0.w + 40].y, cb0[r0.w + 40].x
mul r1.w, v3.w, cb0[21].z
lt r2.xyzw, cb0[30].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[31].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, v3.xyxx, cb0[r1.w + 32].zwzz, cb0[r1.w + 32].xyxx
  mad r1.w, v3.z, cb0[r1.w + 40].y, cb0[r1.w + 40].x
  mad r2.w, -cb0[r0.w + 40].w, cb0[21].w, v3.w
  mad r0.w, -cb0[r0.w + 40].w, cb0[21].w, cb0[r0.w + 40].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[20].xxxx
    mad r0.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r1.xyxx
    sample_c_lz r0.x, r0.xyzx, t12.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, t12.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 
sample r0.xyz, v1.zwzz, t2.xywz, s6
mul_sat r0.y, r0.y, l(4.000000)
lt r0.w, l(0.990000), r0.y
if_nz r0.w
  discard_nz l(-1)
endif 
mul r0.w, r3.z, l(0.111111112)
mad r1.x, -r3.z, l(0.111111112), l(1.000000)
mad r0.w, v2.z, r1.x, r0.w
div r1.xy, v5.xyxx, v5.wwww
sample r2.xyz, v1.zwzz, t0.xyzw, s9
mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
sample r1.zw, v1.xyxx, t1.ywxz, s8
sample r3.xyzw, v1.xyxx, t15.xyzw, s4
add r4.xyzw, r3.xyzw, l(-0.500000, -0.500000, -0.500000, -0.500000)
mad r4.xyz, cb0[123].xxxx, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
sample r5.xyzw, v4.zwzz, t3.xyzw, s10
mad_sat r2.w, r4.w, l(2.000000), l(0.500000)
add r3.w, -r0.y, l(1.000000)
max r4.w, r2.w, r3.w
mul r6.xyzw, v4.xyxy, cb0[68].xxyy
sample r6.x, r6.xyxx, t16.zxyw, s4
sample r6.y, r6.zwzz, t16.yxzw, s4
add r6.x, r6.y, r6.x
mul r6.y, r6.x, l(0.500000)
mad r6.x, -r6.x, l(0.500000), l(1.000000)
mad r6.x, r2.w, r6.x, r6.y
mul r6.yzw, r4.xxyz, r6.xxxx
lt r7.x, l(0.100000), r4.w
if_nz r7.x
  mad r3.xyz, -r4.xyzx, r6.xxxx, r3.xyzx
  mad r3.xyz, r4.wwww, r3.xyzx, r6.yzwy
  dp3 r4.x, v6.xyzx, v6.xyzx
  rsq r4.x, r4.x
  mad r4.xyz, -v6.xyzx, r4.xxxx, -cb0[52].xyzx
  mul r4.xyz, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
  dp3 r4.x, r4.xyzx, r4.xyzx
  rsq r4.x, r4.x
  mul r4.x, r4.x, r4.y
  max r4.x, r4.x, l(0.000000)
  max r4.y, -cb0[52].y, l(0.000000)
  min r4.y, r4.y, l(0.010000)
  mul r4.x, r4.x, r4.y
  mul r4.x, r4.x, l(100.000000)
  log r4.x, r4.x
  mul r4.x, r4.x, l(20.000000)
  exp r4.x, r4.x
  mul r4.x, r4.w, r4.x
  mad r4.x, r4.x, l(0.500000), l(1.000000)
  mul r6.yzw, r3.xxyz, r4.xxxx
endif 
mad r1.zw, r1.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
add r3.x, r0.y, l(-0.900000)
mul r3.x, r3.x, l(10.000000)
max r3.x, r3.x, l(0.000000)
mad r2.xz, r1.zzwz, r3.xxxx, r2.xxzx
dp3 r1.z, r2.xyzx, r2.xyzx
rsq r1.z, r1.z
mul r2.xyz, r1.zzzz, r2.xyzx
sample r1.z, v2.xyxx, t4.xzyw, s0
add r1.z, r1.z, l(-1.000000)
mad r1.z, cb0[4].z, r1.z, l(1.000000)
mul r0.w, r0.w, r1.z
dp3 r1.z, r2.xyzx, -cb0[52].xyzx
max r1.z, r1.z, l(0.000000)
mul r2.xyz, r1.zzzz, cb0[53].xyzx
mad r1.zw, r1.xxxy, cb0[58].zzzw, cb0[58].xxxy
sample r1.z, r1.zwzz, t5.xzyw, s3
mul r4.xyz, r1.zzzz, cb0[51].xyzx
mad r2.xyz, r2.xyzx, r0.wwww, r4.xyzx
lt r1.z, cb0[52].w, l(1.500000)
if_nz r1.z
  mov r4.xyz, r2.xyzx
endif 
if_z r1.z
  mul r1.zw, r1.xxxy, cb1[0].xxxy
  ftoi r7.xy, r1.zwzz
  mov r7.w, l(0)
  ld r1.z, r7.xyww, t14.xzyw
  umin r1.z, r1.z, l(17)
  ige r1.w, l(1), r1.z
  if_nz r1.w
    mov r4.xyz, r2.xyzx
  endif 
  if_z r1.w
    mov r4.x, l(1)
    mov r4.yzw, r2.xxzy
    loop 
      ige r1.w, r4.x, r1.z
      breakc_nz r1.w
      mov r7.z, r4.x
      ld r1.w, r7.xyzw, t14.yzwx
      ishl r1.w, r1.w, l(3)
      iadd r3.y, r1.w, l(1)
      ge r8.xy, cb1[r3.y + 15].xyxx, l(100.000000, 100.000000, 0.000000, 0.000000)
      if_nz r8.x
        add r3.z, l(-100.000000), cb1[r3.y + 15].x
      else 
        mov r3.z, cb1[r3.y + 15].x
      endif 
      if_nz r8.y
        add r6.x, l(-100.000000), cb1[r3.y + 15].y
      else 
        mov r6.x, cb1[r3.y + 15].y
      endif 
      add r8.xzw, -v6.xxyz, cb1[r1.w + 15].xxyz
      dp3 r7.z, r8.xzwx, r8.xzwx
      mad r9.x, r7.z, cb1[r3.y + 15].w, l(1.000000)
      div r9.x, l(1.000000, 1.000000, 1.000000, 1.000000), r9.x
      add r9.x, r9.x, l(-0.100000)
      mul_sat r9.x, r9.x, l(1.11111116)
      lt r9.y, l(0.001000), r9.x
      if_nz r9.y
        sqrt r7.z, r7.z
        div r7.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.z
        mul r8.xzw, r7.zzzz, r8.xxzw
        max r7.z, r8.z, l(0.000000)
        mul r7.z, r7.z, r9.x
        iadd r9.x, r3.y, l(1)
        lt r9.y, l(2.000000), cb1[r1.w + 15].w
        if_nz r9.y
          add r9.y, l(-3.000000), cb1[r1.w + 15].w
          dp3 r8.x, r8.xzwx, cb1[r9.x + 15].xyzx
          add r8.z, -|r8.x|, l(1.000000)
          sqrt r8.z, r8.z
          mad r8.w, |r8.x|, l(-0.0187292993), l(0.074261)
          mad r8.w, r8.w, |r8.x|, l(-0.212114394)
          mad r8.w, r8.w, |r8.x|, l(1.57072878)
          mul r9.z, r8.z, r8.w
          mad r9.z, r9.z, l(-2.000000), l(3.14159274)
          lt r8.x, r8.x, -r8.x
          and r8.x, r8.x, r9.z
          mad r8.x, r8.w, r8.z, r8.x
          lt r8.z, r8.x, r9.y
          if_nz r8.z
            frc r8.z, cb1[r9.x + 15].w
            div r8.x, r8.x, r9.y
            add r8.x, -r8.z, r8.x
            add r8.z, -r8.z, l(1.000000)
            div_sat r8.x, r8.x, r8.z
            add r8.x, -r8.x, l(1.000000)
          else 
            mov r8.x, l(0)
          endif 
          mul r7.z, r7.z, r8.x
          lt r8.x, l(0.000000), r7.z
          ge r8.z, cb1[r9.x + 15].w, l(1.000000)
          and r8.x, r8.z, r8.x
          if_nz r8.x
            ftoi r8.x, cb1[r9.x + 15].w
            iadd r8.x, r8.x, l(-1)
          else 
            mov r8.x, l(-1)
          endif 
          mov r9.yzw, v6.xxyz
        else 
          lt r8.z, l(0.000000), r7.z
          and r8.y, r8.z, r8.y
          if_nz r8.y
            ge r8.y, cb1[r9.x + 15].w, l(1.000000)
            if_nz r8.y
              ftoi r8.y, cb1[r9.x + 15].w
              iadd r8.y, r8.y, l(-1)
              add r10.xyz, v6.xyzx, -cb1[r1.w + 15].xyzx
              lt r8.zw, |r10.xxxz|, r10.yyyy
              and r8.z, r8.w, r8.z
              if_nz r8.z
                mov r8.z, cb0[56].x
              else 
                lt r11.xy, r10.yyyy, -|r10.xzxx|
                and r8.w, r11.y, r11.x
                if_nz r8.w
                  mov r8.z, cb0[56].y
                else 
                  lt r8.w, |r10.x|, r10.z
                  if_nz r8.w
                    mov r8.z, cb0[55].x
                  else 
                    lt r8.w, r10.z, -|r10.x|
                    if_nz r8.w
                      mov r8.z, cb0[55].z
                    else 
                      ge r8.w, r10.x, l(0.000000)
                      if_nz r8.w
                        mov r8.z, cb0[55].y
                      else 
                        mov r8.z, cb0[55].w
                      endif 
                    endif 
                  endif 
                endif 
              endif 
              ult r8.w, r8.z, cb0[56].x
              if_nz r8.w
                dp2 r11.x, r10.xzxx, cb1[r8.z + 9].xyxx
                dp2 r11.z, r10.xzxx, cb1[r8.z + 9].zwzz
                mov r11.y, r10.y
              else 
                dp2 r11.y, r10.yzyy, cb1[r8.z + 9].xyxx
                dp2 r11.z, r10.yzyy, cb1[r8.z + 9].zwzz
                mov r11.x, r10.x
              endif 
              add r9.yzw, r11.xxyz, cb1[r1.w + 15].xxyz
              iadd r8.x, r8.y, r8.z
            else 
              mov r8.x, l(-1)
              mov r9.yzw, v6.xxyz
            endif 
          else 
            mov r8.x, l(-1)
            mov r9.yzw, v6.xxyz
          endif 
        endif 
        ige r1.w, r8.x, l(0)
        if_nz r1.w
          iadd r1.w, r3.y, l(3)
          or r8.y, r1.w, l(5)
          iadd r8.z, r8.y, l(1)
          or r8.w, r8.z, l(7)
          mul r10.xyzw, r9.zzzz, cb1[r8.y + 15].xyzw
          mad r10.xyzw, r9.yyyy, cb1[r1.w + 15].xyzw, r10.xyzw
          mad r9.xyzw, r9.wwww, cb1[r8.z + 15].xyzw, r10.xyzw
          add r9.xyzw, r9.xyzw, cb1[r8.w + 15].xyzw
          div r8.yzw, r9.xxyz, r9.wwww
          lt r9.xy, l(1.000000, 1.000000, 0.000000, 0.000000), |r8.yzyy|
          or r1.w, r9.y, r9.x
          if_nz r1.w
            mov r9.x, l(0)
          endif 
          if_z r1.w
            mad r1.w, r8.y, l(0.500000), l(0.500000)
            mad r8.y, -r8.z, l(0.500000), l(0.500000)
            ushr r8.z, r8.x, l(5)
            and r8.x, r8.x, l(31)
            dp4 r9.y, cb1[2].xyzw, cb1[r8.z + 5].xyzw
            mul r9.z, r9.y, cb1[4].x
            div r9.z, l(0.500000), r9.z
            add r9.w, -r9.z, l(1.000000)
            max r1.w, r1.w, r9.z
            min r1.w, r9.w, r1.w
            max r8.y, r8.y, r9.z
            min r8.y, r9.w, r8.y
            utof r8.x, r8.x
            add r1.w, r1.w, r8.x
            mul r10.x, r9.y, r1.w
            dp4 r1.w, cb1[1].xyzw, cb1[r8.z + 5].xyzw
            dp2 r8.x, r8.yyyy, r9.yyyy
            add r10.y, r1.w, r8.x
            sample_c_lz r9.x, r10.xyxx, t13.xxxx, s2, r8.w
          endif 
          mul r7.z, r7.z, r9.x
        endif 
        mul r8.x, r3.z, r7.z
        mul r8.y, r6.x, r7.z
        mul r8.z, r7.z, cb1[r3.y + 15].z
        add r4.yzw, r4.yyzw, r8.xxzy
      endif 
      iadd r4.x, r4.x, l(1)
    endloop 
    mov r4.x, r4.y
    mov r4.yz, r4.wwzw
  endif 
endif 
mul r2.xyz, r4.xyzx, r6.yzwy
dp3 r1.z, v6.xyzx, v6.xyzx
rsq r1.z, r1.z
mul r7.xyz, r1.zzzz, v6.xyzx
mad r0.xz, r0.xxzx, l(2.000000, 0.000000, 2.000000, 0.000000), l(-1.000000, 0.000000, -1.000000, 0.000000)
add r3.yz, v1.wwzw, -cb0[78].wwzw
div r8.x, -r3.y, cb0[78].y
div r8.y, r3.z, cb0[78].x
mul r3.yz, r8.xxyx, l(0.000000, 32.000000, 32.000000, 0.000000)
sample r9.xyzw, r3.yzyy, t6.xyzw, s14
mad r9.xyz, r9.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r10.xyz, r9.xyzx, l(0.500000, 1.000000, 0.500000, 0.000000)
mad r9.xyz, -r9.xyzx, l(0.500000, 1.000000, 0.500000, 0.000000), l(0.000000, 1.000000, 0.000000, 0.000000)
mad r9.xyz, r0.yyyy, r9.xyzx, r10.xyzx
dp3 r1.w, r9.xyzx, r9.xyzx
rsq r1.w, r1.w
mul r10.xyz, r1.wwww, r9.xzyx
mul r11.xyzw, v4.xyxy, l(0.00156250002, 0.00156250002, 0.012500, 0.012500)
mul r3.yz, r11.xxyx, cb0[72].xxxx
mul r12.xy, r3.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000)
mov r12.z, cb0[77].x
sample r3.yz, r12.xyzx, t7.yxzw, s7
lt r3.w, l(0.010000), r3.w
if_nz r3.w
  dp3 r4.w, v6.xyzx, v6.xyzx
  sqrt r4.w, r4.w
  add r6.x, r4.w, l(-5000.000000)
  mul_sat r6.x, r6.x, l(0.000200)
  lt r7.w, r6.x, l(0.999000)
  if_nz r7.w
    mad r3.yz, r3.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
    add r7.w, r4.w, l(-1000.000000)
    mul_sat r7.w, r7.w, l(0.002000)
    mad r9.xyz, -r9.xyzx, r1.wwww, l(0.000000, 1.000000, 0.000000, 0.000000)
    mad r9.xyz, r7.wwww, r9.xzyx, r10.xyzx
    mad r9.xy, r3.yzyy, cb0[73].yyyy, r9.xyxx
    lt r1.w, l(0.001000), r6.x
    if_nz r1.w
      add r12.xyz, -r9.xzyx, l(0.000000, 1.000000, 0.000000, 0.000000)
      mad r9.xyz, r6.xxxx, r12.xzyx, r9.xyzx
    endif 
  else 
    mov r9.xyz, l(0,0,1.000000,0)
  endif 
  lt r1.w, r0.y, l(0.990000)
  lt r3.y, l(0.010000), r0.y
  and r1.w, r1.w, r3.y
  if_nz r1.w
    mul r3.yz, r8.xxyx, l(0.000000, 6.280000, 6.280000, 0.000000)
    sincos r1.w, null, r3.y
    mad r1.w, r1.w, l(0.300000), cb0[77].y
    sincos null, r3.y, r3.z
    mad r1.w, r3.y, l(0.300000), r1.w
    frc r1.w, r1.w
    dp2 r3.y, r0.xzxx, cb0[128].xyxx
    dp2 r3.z, r0.xzxx, -cb0[128].xyxx
    mul r3.z, r3.z, l(0.500000)
    max r3.yz, r3.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000)
    add r3.y, r3.z, r3.y
    min r3.y, r3.y, l(1.000000)
    add r3.z, cb0[77].y, l(-0.900000)
    lt r6.x, r3.z, l(-0.500000)
    if_nz r6.x
      add r3.z, cb0[77].y, l(0.100000)
    endif 
    add r6.x, r0.y, l(-0.850000)
    mad r6.x, -|r6.x|, l(15.000000), l(1.000000)
    max r6.x, r6.x, l(0.000000)
    mul r6.x, r3.y, r6.x
    mad r3.z, -|r3.z|, l(5.000000), l(1.000000)
    max r3.z, r3.z, l(0.000000)
    mul r3.z, r3.z, r6.x
    add r7.w, r0.y, -cb0[77].y
    lt r8.x, r7.w, l(0.000000)
    if_nz r8.x
      add r7.w, r7.w, l(1.000000)
    endif 
    mul_sat r7.w, r7.w, l(6.000000)
    lt r8.x, l(0.010000), r7.w
    lt r8.y, r7.w, l(0.990000)
    and r8.x, r8.y, r8.x
    if_nz r8.x
      add r8.x, r0.y, l(-0.800000)
      mad r8.x, -r8.x, l(5.000000), l(1.000000)
      min r8.x, r8.x, l(1.000000)
      mul r8.x, r0.y, r8.x
      mul r8.x, r3.y, r8.x
      add r8.y, r8.x, r8.x
      mul r8.z, r8.y, r8.y
      add r8.w, r7.w, l(-0.700000)
      mad r8.w, -|r8.w|, l(3.33333325), l(1.000000)
      max r8.w, r8.w, l(0.000000)
      mul r8.z, r8.w, r8.z
      mad r3.z, r8.z, l(0.300000), r3.z
      lt r8.z, l(0.500000), r7.w
      if_nz r8.z
        add r8.z, r7.w, l(-0.500000)
        mad r8.w, r8.x, l(2.000000), l(1.000000)
        mad r8.z, r8.z, r8.w, l(0.500000)
        min r7.w, r8.z, l(1.000000)
      endif 
      mad r7.w, r7.w, l(6.280000), l(-1.570000)
      mad r8.z, r8.x, l(2.000000), l(1.000000)
      sincos r12.x, r13.x, r7.w
      mad r7.w, r12.x, l(0.500000), l(0.500000)
      log r7.w, r7.w
      mul r7.w, r7.w, r8.y
      exp r7.w, r7.w
      mul r7.w, r7.w, r8.z
      mul r7.w, r13.x, r7.w
      mul r7.w, r7.w, l(0.500000)
      mul r8.yz, -r0.xxzx, r7.wwww
      mul r8.xz, r8.xxxx, r8.yyzy
      mov r8.y, l(1.000000)
      dp3 r7.w, r8.xyzx, r8.xyzx
      rsq r7.w, r7.w
      mul r8.xy, r7.wwww, r8.xzxx
    else 
      mov r8.xy, l(0,0,0,0)
    endif 
    add r7.w, r1.w, l(-0.900000)
    lt r8.z, r7.w, l(-0.500000)
    if_nz r8.z
      add r7.w, r1.w, l(0.100000)
    endif 
    mad r7.w, -|r7.w|, l(5.000000), l(1.000000)
    max r7.w, r7.w, l(0.000000)
    mul r6.x, r6.x, r7.w
    add r1.w, r0.y, -r1.w
    lt r7.w, r1.w, l(0.000000)
    if_nz r7.w
      add r1.w, r1.w, l(1.000000)
    endif 
    mul_sat r1.w, r1.w, l(6.000000)
    lt r7.w, l(0.010000), r1.w
    lt r8.z, r1.w, l(0.990000)
    and r7.w, r7.w, r8.z
    if_nz r7.w
      add r7.w, r0.y, l(-0.800000)
      mad r7.w, -r7.w, l(5.000000), l(1.000000)
      min r7.w, r7.w, l(1.000000)
      mul r7.w, r0.y, r7.w
      mul r3.y, r3.y, r7.w
      add r7.w, r3.y, r3.y
      mul r8.z, r7.w, r7.w
      add r8.w, r1.w, l(-0.700000)
      mad r8.w, -|r8.w|, l(3.33333325), l(1.000000)
      max r8.w, r8.w, l(0.000000)
      mul r8.z, r8.w, r8.z
      mad r6.x, r8.z, l(0.300000), r6.x
      lt r8.z, l(0.500000), r1.w
      if_nz r8.z
        add r8.z, r1.w, l(-0.500000)
        mad r8.w, r3.y, l(2.000000), l(1.000000)
        mad r8.z, r8.z, r8.w, l(0.500000)
        min r1.w, r8.z, l(1.000000)
      endif 
      mad r1.w, r1.w, l(6.280000), l(-1.570000)
      mad r8.z, r3.y, l(2.000000), l(1.000000)
      sincos r12.x, r13.x, r1.w
      mad r1.w, r12.x, l(0.500000), l(0.500000)
      log r1.w, r1.w
      mul r1.w, r1.w, r7.w
      exp r1.w, r1.w
      mul r1.w, r1.w, r8.z
      mul r1.w, r13.x, r1.w
      mul r1.w, r1.w, l(0.500000)
      mul r8.zw, -r0.xxxz, r1.wwww
      mul r12.xz, r3.yyyy, r8.zzwz
      mov r12.y, l(1.000000)
      dp3 r1.w, r12.xyzx, r12.xyzx
      rsq r1.w, r1.w
      mul r8.zw, r1.wwww, r12.xxxz
    else 
      mov r8.zw, l(0,0,0,0)
    endif 
    add r8.xy, r8.zwzz, r8.xyxx
    add r9.xy, r8.xyxx, r9.xyxx
    add r1.w, r3.z, r6.x
    min r1.w, r1.w, l(1.000000)
  else 
    mov r1.w, l(0)
  endif 
  dp3 r3.y, r9.xyzx, r9.xyzx
  rsq r3.y, r3.y
  mul r8.xyz, r3.yyyy, r9.xzyx
  mul r9.xyz, r8.xyzx, l(0.500000, 1.000000, 0.500000, 0.000000)
  dp3 r3.y, r9.xyzx, r9.xyzx
  rsq r3.y, r3.y
  mul r9.xyz, r3.yyyy, r9.xzyx
  mul r12.xz, r7.xxzx, l(0.100000, 0.000000, 0.100000, 0.000000)
  mov r12.y, l(0)
  min r3.y, r7.y, l(-0.010000)
  add r3.y, r3.y, l(1.000000)
  max r3.y, r3.y, l(0.000000)
  mad r12.xyz, -r12.xyzx, r3.yyyy, r9.xzyx
  dp3 r3.y, r12.xyzx, r12.xyzx
  rsq r3.y, r3.y
  mul r10.xyz, r3.yyyy, r12.xzyx
else 
  mov r8.xyz, r10.xzyx
  mov r1.w, l(0)
  mov r4.w, l(0)
endif 
sample r12.xyzw, r11.zwzz, t8.xyzw, s12
mul r3.y, cb0[77].x, l(5.000000)
frc r3.y, r3.y
lt r3.z, r3.y, l(0.333000)
if_nz r3.z
  mul r3.z, r3.y, l(3.000000)
  min r3.z, r3.z, l(1.000000)
  add r6.x, -r12.x, r12.y
  mad r3.z, r3.z, r6.x, r12.x
else 
  lt r6.x, r3.y, l(0.667000)
  if_nz r6.x
    add r6.x, r3.y, l(-0.333000)
    mul r6.x, r6.x, l(3.000000)
    min r6.x, r6.x, l(1.000000)
    add r7.w, -r12.y, r12.z
    mad r3.z, r6.x, r7.w, r12.y
  else 
    add r3.y, r3.y, l(-0.667000)
    mul r3.y, r3.y, l(3.000000)
    add r6.x, -r12.z, r12.x
    mad r3.z, r3.y, r6.x, r12.z
  endif 
endif 
sample r3.y, r11.xyxx, t9.xyzw, s11
add r6.x, r0.y, cb0[77].z
add r11.x, r6.x, r6.x
mul r11.yz, v4.yyxy, l(0.000000, 0.00156250002, 0.00156250002, 0.000000)
sample r6.x, r11.xyxx, t8.wxyz, s12
sample r7.w, r11.zxzz, t8.xyzw, s12
mad r9.xy, r9.xyxx, l(0.200000, 0.200000, 0.000000, 0.000000), r1.xyxx
sample r9.xyz, r9.xyxx, t10.xyzw, s5
dp3 r8.w, r7.xzyx, r10.xyzx
lt r8.w, l(0.000000), r8.w
if_nz r8.w
  mov r10.w, -r10.z
else 
  mov r10.w, r10.z
endif 
dp3 r8.w, r7.xzyx, r10.xywx
add r8.w, r8.w, r8.w
mad r11.xyz, r10.xwyx, -r8.wwww, r7.xyzx
mov r11.w, |r11.y|
sample r11.xyz, r11.xwzx, t11.xyzw, s13
if_nz r3.w
  dp2 r0.z, r0.xzxx, r0.xzxx
  rsq r0.z, r0.z
  mul r0.x, r0.z, r0.x
  add r0.z, r6.x, -r7.w
  mad r0.x, |r0.x|, r0.z, r7.w
  mul r0.x, r0.x, r3.z
  mad r0.z, v6.y, l(0.002000), l(1.000000)
  add r9.xyz, r9.xyzx, -r11.xyzx
  dp3 r3.z, r9.xyzx, r9.xyzx
  sqrt r3.z, r3.z
  mul_sat r0.z, r0.z, r3.z
  mad r9.xyz, r0.zzzz, r9.xyzx, r11.xyzx
  dp3_sat r0.z, -r7.xzyx, r10.xywx
  add r0.z, r0.z, l(1.000000)
  mul r3.z, r0.z, r0.z
  mul r3.z, r3.z, r3.z
  mul r0.z, r0.z, r3.z
  div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
  add r0.y, -r0.y, l(0.900000)
  mul_sat r0.y, r0.y, l(10.000000)
  mul r3.z, r0.y, cb0[72].w
  mul r0.z, r0.z, r3.z
  mad r4.xyz, -r6.yzwy, r4.xyzx, r9.xyzx
  mad r4.xyz, r0.zzzz, r4.xyzx, r2.xyzx
  mul r1.xy, r1.xyxx, cb1[0].xyxx
  ftoi r6.yz, r1.xxyx
  mov r6.w, l(0)
  ld r1.xy, r6.yzww, t14.xyzw
  umin r0.z, r1.y, l(17)
  lt r1.y, l(0.500000), cb1[0].w
  mov r7.xyz, l(0,0,0,0)
  mov r3.z, l(1)
  mov r6.x, l(0)
  mov r3.w, r1.x
  loop 
    ige r7.w, r3.z, r0.z
    breakc_nz r7.w
    if_nz r3.z
      iadd r6.x, r6.x, l(1)
      ld r3.w, r6.yzxw, t14.yzwx
    endif 
    ishl r7.w, r3.w, l(3)
    iadd r8.w, r7.w, l(1)
    ge r9.xy, cb1[r8.w + 15].xyxx, l(100.000000, 100.000000, 0.000000, 0.000000)
    if_nz r9.x
      add r9.z, l(-100.000000), cb1[r8.w + 15].x
    else 
      mov r9.z, cb1[r8.w + 15].x
    endif 
    if_nz r9.y
      add r10.z, l(-100.000000), cb1[r8.w + 15].y
    else 
      mov r10.z, cb1[r8.w + 15].y
    endif 
    lt r11.x, l(1.000000), cb1[r7.w + 15].w
    if_nz r11.x
      add r11.xyz, -v6.xyzx, cb1[r7.w + 15].xyzx
      dp3 r11.w, r11.xyzx, r11.xyzx
      sqrt r12.x, r11.w
      div r11.xyz, r11.xyzx, r12.xxxx
      mad r11.w, r11.w, cb1[r8.w + 15].w, l(1.000000)
      div r11.w, l(1.000000, 1.000000, 1.000000, 1.000000), r11.w
      add r11.w, r11.w, l(-0.100000)
      mul_sat r11.w, r11.w, l(1.11111116)
      iadd r12.x, r8.w, l(1)
      lt r12.y, l(2.000000), cb1[r7.w + 15].w
      if_nz r12.y
        add r12.z, l(-3.000000), cb1[r7.w + 15].w
        dp3 r13.x, r11.xyzx, cb1[r12.x + 15].xyzx
        add r13.y, -|r13.x|, l(1.000000)
        sqrt r13.y, r13.y
        mad r13.z, |r13.x|, l(-0.0187292993), l(0.074261)
        mad r13.z, r13.z, |r13.x|, l(-0.212114394)
        mad r13.z, r13.z, |r13.x|, l(1.57072878)
        mul r13.w, r13.y, r13.z
        mad r13.w, r13.w, l(-2.000000), l(3.14159274)
        lt r13.x, r13.x, -r13.x
        and r13.x, r13.x, r13.w
        mad r13.x, r13.z, r13.y, r13.x
        lt r13.y, r13.x, r12.z
        if_nz r13.y
          frc r13.y, cb1[r12.x + 15].w
          div r12.z, r13.x, r12.z
          add r12.z, -r13.y, r12.z
          add r13.x, -r13.y, l(1.000000)
          div_sat r12.z, r12.z, r13.x
          add r12.z, -r12.z, l(1.000000)
        else 
          mov r12.z, l(0)
        endif 
        mul r11.w, r11.w, r12.z
        lt r12.z, l(0.000000), r11.w
        ge r13.x, cb1[r12.x + 15].w, l(1.000000)
        and r12.z, r12.z, r13.x
        if_nz r12.z
          ftoi r12.z, cb1[r12.x + 15].w
          iadd r12.z, r12.z, l(-1)
        else 
          mov r12.z, l(-1)
        endif 
        mov r13.xyz, v6.xyzx
      else 
        lt r13.w, l(0.000000), r11.w
        and r9.y, r9.y, r13.w
        if_nz r9.y
          ge r9.y, cb1[r12.x + 15].w, l(1.000000)
          if_nz r9.y
            ftoi r9.y, cb1[r12.x + 15].w
            iadd r9.y, r9.y, l(-1)
            add r14.xyz, v6.xyzx, -cb1[r7.w + 15].xyzx
            lt r15.xy, |r14.xzxx|, r14.yyyy
            and r12.x, r15.y, r15.x
            if_nz r12.x
              mov r12.x, cb0[56].x
            else 
              lt r15.xy, r14.yyyy, -|r14.xzxx|
              and r13.w, r15.y, r15.x
              if_nz r13.w
                mov r12.x, cb0[56].y
              else 
                lt r13.w, |r14.x|, r14.z
                if_nz r13.w
                  mov r12.x, cb0[55].x
                else 
                  lt r13.w, r14.z, -|r14.x|
                  if_nz r13.w
                    mov r12.x, cb0[55].z
                  else 
                    ge r13.w, r14.x, l(0.000000)
                    if_nz r13.w
                      mov r12.x, cb0[55].y
                    else 
                      mov r12.x, cb0[55].w
                    endif 
                  endif 
                endif 
              endif 
            endif 
            ult r13.w, r12.x, cb0[56].x
            if_nz r13.w
              dp2 r15.x, r14.xzxx, cb1[r12.x + 9].xyxx
              dp2 r15.z, r14.xzxx, cb1[r12.x + 9].zwzz
              mov r15.y, r14.y
            else 
              dp2 r15.y, r14.yzyy, cb1[r12.x + 9].xyxx
              dp2 r15.z, r14.yzyy, cb1[r12.x + 9].zwzz
              mov r15.x, r14.x
            endif 
            add r13.xyz, r15.xyzx, cb1[r7.w + 15].xyzx
            iadd r12.z, r9.y, r12.x
          else 
            mov r12.z, l(-1)
            mov r13.xyz, v6.xyzx
          endif 
        else 
          mov r12.z, l(-1)
          mov r13.xyz, v6.xyzx
        endif 
      endif 
      ige r9.y, r12.z, l(0)
      if_nz r9.y
        iadd r9.y, r8.w, l(3)
        or r12.x, r9.y, l(5)
        iadd r13.w, r12.x, l(1)
        or r14.x, r13.w, l(7)
        mul r15.xyzw, r13.yyyy, cb1[r12.x + 15].xyzw
        mad r15.xyzw, r13.xxxx, cb1[r9.y + 15].xyzw, r15.xyzw
        mad r13.xyzw, r13.zzzz, cb1[r13.w + 15].xyzw, r15.xyzw
        add r13.xyzw, r13.xyzw, cb1[r14.x + 15].xyzw
        div r13.xyz, r13.xyzx, r13.wwww
        lt r14.xy, l(1.000000, 1.000000, 0.000000, 0.000000), |r13.xyxx|
        or r9.y, r14.y, r14.x
        if_nz r9.y
          mov r12.x, l(0)
        endif 
        if_z r9.y
          mad r9.y, r13.x, l(0.500000), l(0.500000)
          mad r13.x, -r13.y, l(0.500000), l(0.500000)
          ushr r13.y, r12.z, l(5)
          and r12.z, r12.z, l(31)
          dp4 r13.w, cb1[2].xyzw, cb1[r13.y + 5].xyzw
          if_z r12.y
            mul r14.x, r13.w, cb1[4].x
            div r14.x, l(0.500000), r14.x
            add r14.y, -r14.x, l(1.000000)
            max r14.z, r9.y, r14.x
            min r9.y, r14.y, r14.z
            max r14.x, r13.x, r14.x
            min r13.x, r14.y, r14.x
          endif 
          utof r12.z, r12.z
          add r9.y, r9.y, r12.z
          mul r14.x, r13.w, r9.y
          dp4 r9.y, cb1[1].xyzw, cb1[r13.y + 5].xyzw
          dp2 r12.z, r13.xxxx, r13.wwww
          add r14.y, r9.y, r12.z
          sample_c_lz r12.x, r14.xyxx, t13.xxxx, s2, r13.z
          and r9.y, r1.y, r12.y
          if_nz r9.y
            add r15.yz, r14.xxyx, -cb1[4].zzwz
            sample_c_lz r9.y, r15.yzyy, t13.xxxx, s2, r13.z
            add r9.y, r9.y, r12.x
            add r15.xw, r14.xxxy, cb1[4].zzzw
            sample_c_lz r12.y, r15.xzxx, t13.xxxx, s2, r13.z
            add r9.y, r9.y, r12.y
            sample_c_lz r12.y, r15.ywyy, t13.xxxx, s2, r13.z
            add r9.y, r9.y, r12.y
            sample_c_lz r12.y, r15.xwxx, t13.xxxx, s2, r13.z
            add r9.y, r9.y, r12.y
            mul r12.x, r9.y, l(0.200000)
          endif 
        endif 
        mul r11.w, r11.w, r12.x
      endif 
    else 
      mov r11.xyz, -cb1[r7.w + 15].xyzx
      mov r11.w, l(1.000000)
    endif 
    lt r7.w, l(0.000000), r11.w
    if_nz r7.w
      if_z r9.x
        mad r11.xyz, -v6.xyzx, r1.zzzz, r11.xyzx
        mul r11.xyz, r11.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
        dp3 r7.w, r11.xyzx, r11.xyzx
        rsq r7.w, r7.w
        mul r11.xyz, r7.wwww, r11.xyzx
        dp3 r7.w, r11.xyzx, r8.xyzx
        lt r9.x, l(0.000000), r7.w
        if_nz r9.x
          log r7.w, r7.w
          mul r7.w, r7.w, cb0[76].w
          exp r7.w, r7.w
          sqrt r9.x, r11.w
          mul r7.w, r7.w, r9.x
          mul r9.x, r9.z, r7.w
          mul r9.y, r10.z, r7.w
          mul r9.z, r7.w, cb1[r8.w + 15].z
          mul r9.xyz, r9.xyzx, cb0[76].xyzx
        else 
          mov r9.xyz, l(0,0,0,0)
        endif 
      else 
        mov r9.xyz, l(0,0,0,0)
      endif 
      add r7.xyz, r7.xyzx, r9.xyzx
    endif 
    iadd r3.z, r3.z, l(1)
  endloop 
  dp3 r0.z, cb0[52].xyzx, r8.xyzx
  max r0.z, -r0.z, l(0.000000)
  mul r6.xyz, r0.zzzz, cb0[53].xyzx
  mad r1.xyz, -v6.xyzx, r1.zzzz, -cb0[52].xyzx
  mul r1.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
  dp3 r0.z, r1.xyzx, r1.xyzx
  rsq r0.z, r0.z
  mul r1.xyz, r0.zzzz, r1.xyzx
  dp3 r0.z, r1.xyzx, r8.xyzx
  max r0.z, r0.z, l(0.000000)
  lt r1.x, l(0.004000), r0.z
  if_nz r1.x
    log r0.z, r0.z
    mul r0.z, r0.z, cb0[76].w
    exp r0.z, r0.z
    mul r1.xyz, r0.zzzz, cb0[54].xyzx
    mul r1.xyz, r1.xyzx, cb0[76].xyzx
  else 
    mov r1.xyz, l(0,0,0,0)
  endif 
  mul_sat r0.z, cb0[52].y, l(-100.000000)
  mul r1.xyz, r0.zzzz, r1.xyzx
  mul r0.z, r3.y, r9.w
  mul r0.z, r12.w, r0.z
  add r3.y, r4.w, l(-3000.000000)
  mul_sat r3.y, r3.y, l(0.001000)
  add r3.y, -r3.y, l(1.000000)
  mul r0.x, r1.w, r0.x
  mad r0.x, r0.z, r3.y, r0.x
  min r0.x, r0.x, l(1.000000)
  mul r0.z, r0.y, r0.x
  mad r1.xyz, r1.xyzx, r0.wwww, r7.xyzx
  mul r1.xyz, r0.yyyy, r1.xyzx
  mad r0.x, -r0.x, r0.y, l(1.000000)
  mad r1.xyz, r1.xyzx, r0.xxxx, r4.xyzx
  mul r0.xyw, r0.wwww, r6.xyxz
  dp3 r1.w, r10.xwyx, -cb0[52].xyzx
  max r1.w, r1.w, l(0.000000)
  mad r0.xyw, r0.xyxw, r1.wwww, cb0[51].xyxz
  add r0.xyw, -r1.xyxz, r0.xyxw
  mad r2.xyz, r0.zzzz, r0.xywx, r1.xyzx
endif 
mov_sat r0.xyz, v7.xyzx
lt r0.w, cb0[62].w, l(0.500000)
if_nz r0.w
  add r1.xyz, -r2.xyzx, r5.xyzx
  mad o0.xyz, r0.xyzx, r1.xyzx, r2.xyzx
endif 
if_z r0.w
  mov_sat r0.w, v7.w
  mul r1.x, r5.w, r5.w
  mad r1.xyz, cb0[53].xyzx, r1.xxxx, cb0[51].xyzx
  ge r1.w, cb0[59].z, l(0.000000)
  if_nz r1.w
    mad r3.yzw, cb0[61].xxyz, r1.xxyz, -r2.xxyz
    mad r3.yzw, r0.wwww, r3.yyzw, r2.xxyz
    add r4.xyz, -r3.yzwy, r5.xyzx
    mad o0.xyz, r0.xyzx, r4.xyzx, r3.yzwy
  else 
    mul r1.w, -cb0[60].w, cb0[62].z
    min r1.w, r1.w, l(1.000000)
    lt r3.y, r1.w, l(0.999900)
    if_nz r3.y
      mul r1.w, r1.w, r1.w
      mad r3.yzw, cb0[61].xxyz, r1.xxyz, -r2.xxyz
      mad r3.yzw, r0.wwww, r3.yyzw, r2.xxyz
      add r4.xyz, -r3.yzwy, r5.xyzx
      mad r3.yzw, r0.xxyz, r4.xxyz, r3.yyzw
      add r4.xyz, -r2.xyzx, r5.xyzx
      mad r4.xyz, r0.xyzx, r4.xyzx, r2.xyzx
      mad r6.xyz, cb0[61].xyzx, r1.xyzx, -r4.xyzx
      mad r4.xyz, r0.wwww, r6.xyzx, r4.xyzx
      add r4.xyz, -r3.yzwy, r4.xyzx
      mad o0.xyz, r1.wwww, r4.xyzx, r3.yzwy
    else 
      add r3.yzw, -r2.xxyz, r5.xxyz
      mad r0.xyz, r0.xyzx, r3.yzwy, r2.xyzx
      mad r1.xyz, cb0[61].xyzx, r1.xyzx, -r0.xyzx
      mad o0.xyz, r0.wwww, r1.xyzx, r0.xyzx
    endif 
  endif 
endif 
add r0.x, r2.w, r3.x
min r0.x, r0.x, l(1.000000)
add o0.w, -r0.x, l(1.000000)
ret 
// Approximately 905 instruction slots used
