//ocean 1
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.16 on Sat Aug 15 15:51:52 2020
//
//
// Buffer Definitions:
//
// cbuffer WorldViewGlobals
// {
//
//   row_major float4x4 g_ViewProjMatrix;// Offset:    0 Size:    64 [unused]
//   row_major float4x4 g_ViewProjSS;   // Offset:   64 Size:    64
//   row_major float4x4 g_ViewProjSSInverseTranspose;// Offset:  128 Size:    64
//   row_major float4x4 g_ViewMatrix;   // Offset:  192 Size:    64 [unused]
//   row_major float4x4 g_NDCToWorld;   // Offset:  256 Size:    64
//   row_major float4x4 g_OverlaySamplingMatrix;// Offset:  320 Size:    64
//   row_major float4x4 g_ShadowMapSamplingMatrix;// Offset:  384 Size:    64
//   row_major float4x4 g_ShadowMapSamplingMatrixInverse;// Offset:  448 Size:    64 [unused]
//   float4 g_vDynLightingGridInfo;     // Offset:  512 Size:    16
//   float3 g_vLightDirection;          // Offset:  528 Size:    12
//   float g_ShadowZBias;               // Offset:  540 Size:     4 [unused]
//   float4 g_MainPassDimensions;       // Offset:  544 Size:    16
//   float4 g_FinalDimensions;          // Offset:  560 Size:    16
//   float4 g_ShadowMapDimensions;      // Offset:  576 Size:    16
//   int g_bSSOverlay;                  // Offset:  592 Size:     4
//   int g_bShadows;                    // Offset:  596 Size:     4
//   int g_nPixelsPerBlock;             // Offset:  600 Size:     4 [unused]
//   uint g_nRTSamples;                 // Offset:  604 Size:     4 [unused]
//   float g_fMipBias;                  // Offset:  608 Size:     4 [unused]
//   float2 g_vNearFar;                 // Offset:  612 Size:     8
//   float g_SceneExposure;             // Offset:  620 Size:     4
//   float g_InvSceneExposure;          // Offset:  624 Size:     4
//   float g_IntermediateExposure;      // Offset:  628 Size:     4
//   float g_InvIntermediateExposure;   // Offset:  632 Size:     4
//   float4 g_vFogParams;               // Offset:  640 Size:    16 [unused]
//   float4 g_vFogSkyColor_IntegralDensity;// Offset:  656 Size:    16 [unused]
//   float3 g_vFogLightColor;           // Offset:  672 Size:    12 [unused]
//   float3 g_vWorldWrapTranslation;    // Offset:  688 Size:    12 [unused]
//   float3 g_vEyePosition;             // Offset:  704 Size:    12
//   float3 g_vLightColor;              // Offset:  720 Size:    12
//   float4 g_EnvSHPremultipliedIrradiance[7];// Offset:  736 Size:   112
//   float4 g_EnvSHRadiance[7];         // Offset:  848 Size:   112 [unused]
//   float3 g_vSkySH;                   // Offset:  960 Size:    12 [unused]
//   float g_DoTonemap;                 // Offset:  972 Size:     4 [unused]
//   float g_LightMapWeight;            // Offset:  976 Size:     4 [unused]
//   float g_fModelTime;                // Offset:  980 Size:     4 [unused]
//   float2 g_vPixelMultiplier;         // Offset:  984 Size:     8 [unused]
//   float4 g_FOWFullFogParchmentUVTransform;// Offset:  992 Size:    16
//   float3 g_FOWCoastStripeColor;      // Offset: 1008 Size:    12 [unused]
//   float g_FOWCoastStripeThickness;   // Offset: 1020 Size:     4 [unused]
//   float3 g_FOWTintColor;             // Offset: 1024 Size:    12
//   float g_fFOWBorderNoiseUVScale;    // Offset: 1036 Size:     4
//   float3 g_vFOWBorderColor;          // Offset: 1040 Size:    12
//   float g_fFOWBorderNoiseIntensity;  // Offset: 1052 Size:     4
//   float3 g_FOWTerrainHatchColor;     // Offset: 1056 Size:    12 [unused]
//   float g_FOWTerrainHatchTextureCount;// Offset: 1068 Size:     4 [unused]
//   float4 g_FOWTerrainHatchUVTransform;// Offset: 1072 Size:    16 [unused]
//   float3 g_FOWModelsHatchColor;      // Offset: 1088 Size:    12 [unused]
//   float g_FOWModelsHatchTextureCount;// Offset: 1100 Size:     4 [unused]
//   float4 g_FOWModelsHatchUVTransform;// Offset: 1104 Size:    16 [unused]
//   float3 g_FOWModelsStrokeColor;     // Offset: 1120 Size:    12 [unused]
//   float g_FOWModelsStrokeOpacity;    // Offset: 1132 Size:     4 [unused]
//   float4 g_FOWFlowLineColor;         // Offset: 1136 Size:    16 [unused]
//   float3 g_FOWFlowLinePositionBias;  // Offset: 1152 Size:    12 [unused]
//   float g_FOWFlowLineThickness;      // Offset: 1164 Size:     4 [unused]
//   float g_FOWModelsParchmentWeight;  // Offset: 1168 Size:     4 [unused]
//   float g_FOWModelsStrokeThickness;  // Offset: 1172 Size:     4 [unused]
//   float g_FOWStrokeOpacityMultiplier;// Offset: 1176 Size:     4 [unused]
//   row_major float4x4 g_TerrainHexToWorld;// Offset: 1184 Size:    64 [unused]
//   float g_TerrainFlatHeight;         // Offset: 1248 Size:     4 [unused]
//
// }
//
// cbuffer WorldView_WaterGlobals
// {
//
//   float g_fTime;                     // Offset:    0 Size:     4 [unused]
//   float g_fSSReflectPasses;          // Offset:    4 Size:     4 [unused]
//   float g_fInvSpecPowerSun;          // Offset:    8 Size:     4
//   float g_fInvSpecPowerDynamic;      // Offset:   12 Size:     4
//   float4 g_FOWWaterUVTransform;      // Offset:   16 Size:    16
//   float2 g_vWorldDimensions;         // Offset:   32 Size:     8 [unused]
//   float2 g_vMaskOrigin;              // Offset:   40 Size:     8 [unused]
//   float2 g_vMaskDimensions;          // Offset:   48 Size:     8 [unused]
//   float g_fWhiteCapSharpness;        // Offset:   56 Size:     4
//   float2 g_vWhiteCapThreshold;       // Offset:   64 Size:     8
//   float2 g_vParallaxBias;            // Offset:   72 Size:     8
//   float g_fFresnelF0;                // Offset:   80 Size:     4
//   float g_fEnvFresnelExp;            // Offset:   84 Size:     4
//   float2 g_vOverlayRippleStrength;   // Offset:   88 Size:     8
//   float g_fRefractionScale;          // Offset:   96 Size:     4
//   float2 g_vWorldXRange;             // Offset:  100 Size:     8 [unused]
//   float g_fRiverBumpScale;           // Offset:  108 Size:     4 [unused]
//   float g_vRiverScrollSpeed;         // Offset:  112 Size:     4 [unused]
//   float3 g_vRiverLeanInfo;           // Offset:  116 Size:    12 [unused]
//   float g_fInvRiverDepthRange0;      // Offset:  128 Size:     4 [unused]
//   float g_fInvRiverDepthRange1;      // Offset:  132 Size:     4 [unused]
//   bool g_b_dither;                   // Offset:  136 Size:     4
//   float2 g_dither_offset;            // Offset:  144 Size:     8 [unused]
//   float2 g_dither_inv_dims;          // Offset:  152 Size:     8
//
// }
//
// cbuffer WaterMaterials
// {
//
//   float2 g_vScrollDir0_0;            // Offset:    0 Size:     8
//   float2 g_vScrollDir1_0;            // Offset:    8 Size:     8 [unused]
//   float3 g_vOceanLeanInfo_0;         // Offset:   16 Size:    12
//   float g_fOceanBumpScale_0;         // Offset:   28 Size:     4
//   float2 g_fBumpTileRate_0;          // Offset:   32 Size:     8 [unused]
//   float g_fInvOceanDepthRange_0;     // Offset:   40 Size:     4
//   uint g_MaskIndex_0;                // Offset:   44 Size:     4 [unused]
//   uint g_PrimaryBumps_0;             // Offset:   48 Size:     4
//   uint g_SecondaryBumps_0;           // Offset:   52 Size:     4
//   uint g_DarkMap_0;                  // Offset:   56 Size:     4
//   uint g_ScatterMap_0;               // Offset:   60 Size:     4
//   float2 g_vScrollDir0_1;            // Offset:   64 Size:     8 [unused]
//   float2 g_vScrollDir1_1;            // Offset:   72 Size:     8 [unused]
//   float3 g_vOceanLeanInfo_1;         // Offset:   80 Size:    12 [unused]
//   float g_fOceanBumpScale_1;         // Offset:   92 Size:     4 [unused]
//   float2 g_fBumpTileRate_1;          // Offset:   96 Size:     8 [unused]
//   float g_fInvOceanDepthRange_1;     // Offset:  104 Size:     4 [unused]
//   uint g_MaskIndex_1;                // Offset:  108 Size:     4 [unused]
//   uint g_PrimaryBumps_1;             // Offset:  112 Size:     4 [unused]
//   uint g_SecondaryBumps_1;           // Offset:  116 Size:     4 [unused]
//   uint g_DarkMap_1;                  // Offset:  120 Size:     4 [unused]
//   uint g_ScatterMap_1;               // Offset:  124 Size:     4 [unused]
//   float2 g_vScrollDir0_2;            // Offset:  128 Size:     8 [unused]
//   float2 g_vScrollDir1_2;            // Offset:  136 Size:     8 [unused]
//   float3 g_vOceanLeanInfo_2;         // Offset:  144 Size:    12 [unused]
//   float g_fOceanBumpScale_2;         // Offset:  156 Size:     4 [unused]
//   float2 g_fBumpTileRate_2;          // Offset:  160 Size:     8 [unused]
//   float g_fInvOceanDepthRange_2;     // Offset:  168 Size:     4 [unused]
//   uint g_MaskIndex_2;                // Offset:  172 Size:     4 [unused]
//   uint g_PrimaryBumps_2;             // Offset:  176 Size:     4 [unused]
//   uint g_SecondaryBumps_2;           // Offset:  180 Size:     4 [unused]
//   uint g_DarkMap_2;                  // Offset:  184 Size:     4 [unused]
//   uint g_ScatterMap_2;               // Offset:  188 Size:     4 [unused]
//   uint g_uWhiteCapFlags;             // Offset:  192 Size:     4
//   float3 g_vWhiteCapOpacity;         // Offset:  196 Size:    12
//
// }
//
// Resource bind info for FlattenedLightInfo
// {
//
//   float4 $Element;                   // Offset:    0 Size:    16
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// SS_DEFAULT                        sampler      NA          NA    0        1
// SS_DEFAULT_CLAMP                  sampler      NA          NA    2        1
// SS_ANISO                          sampler      NA          NA    4        1
// SS_ANISO_CLAMP                    sampler      NA          NA    5        1
// SS_POINT                          sampler      NA          NA    6        1
// SS_POINT_CLAMP                    sampler      NA          NA    7        1
// ScatterMap                        texture  float4     2darray    0        1
// PrimaryOverlay                    texture  float4          2d    1        1
// BackBuffer                        texture  float4          2d    2        1
// DepthBuffer                       texture  float4          2d    3        1
// DarkMap                           texture  float4     2darray    5        1
// SecondaryOverlay                  texture  float4          2d    6        1
// LEAN1                             texture  float4     2darray    7        1
// LEAN0                             texture  float4     2darray    8        1
// LightIndexRanges                  texture   uint4          2d    9        1
// g_ShadowMap                       texture  float4          2d   10        1
// Currents                          texture  float2          2d   11        1
// FlattenedLightInfo                texture  struct         r/o   13        1
// DitherMap                         texture  float4          2d   14        1
// FOWDeepParchment                  texture  float4          2d   15        1
// g_Opacity_ShadowMap               texture  float4          2d   16        1
// FOWShallowParchment               texture  float4          2d   17        1
// FullFogParchment                  texture  float4          2d   20        1
// FOWMask                           texture  float4          2d   21        1
// NoiseMap                          texture   float          2d   22        1
// WorldViewGlobals                  cbuffer      NA          NA    1        1
// WorldView_WaterGlobals            cbuffer      NA          NA    2        1
// WaterMaterials                    cbuffer      NA          NA    3        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xy
// TEXCOORD                 0   xyz         1     NONE   float   xyz
// TEXCOORD                 1   xy          2     NONE   float   xy
// TEXCOORD                 2   xy          3     NONE   float   xy
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TARGET                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb1[66], immediateIndexed
dcl_constantbuffer cb2[10], immediateIndexed
dcl_constantbuffer cb3[13], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s2, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_resource_texture2darray (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_texture2darray (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2darray (float,float,float,float) t7
dcl_resource_texture2darray (float,float,float,float) t8
dcl_resource_texture2d (uint,uint,uint,uint) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t11
dcl_resource_structured t13, 16
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_texture2d (float,float,float,float) t15
dcl_resource_texture2d (float,float,float,float) t16
dcl_resource_texture2d (float,float,float,float) t17
dcl_resource_texture2d (float,float,float,float) t20
dcl_resource_texture2d (float,float,float,float) t21
dcl_resource_texture2d (float,float,float,float) t22
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xyz
dcl_input_ps linear v2.xy
dcl_input_ps linear noperspective v3.xy
dcl_input_ps linear v4.xyzw
dcl_output o0.xyzw
dcl_temps 20
mul r0.xyz, v1.yyyy, cb1[21].xywx
mad r0.xyz, v1.xxxx, cb1[20].xywx, r0.xyzx
add r0.xyz, r0.xyzx, cb1[23].xywx
div r0.xy, r0.xyxx, r0.zzzz
sample_indexable(texture2d)(float,float,float,float) r1.xyz, r0.xyxx, t21.xyzw, s2
mov_sat r1.xyz, r1.xyzx
mad r2.xyz, r1.xyzx, l(-2.000000, -2.000000, -2.000000, 0.000000), l(3.000000, 3.000000, 3.000000, 0.000000)
mul r1.xyz, r1.xyzx, r1.xyzx
mul r3.xyz, r1.xyzx, r2.xyzx
utof r4.xyzw, cb3[3].xyzw
mov r5.xy, v4.xyxx
mov r5.z, r4.x
sample_indexable(texture2darray)(float,float,float,float) r0.z, r5.xyzx, t7.xzyw, s4
add r0.z, r0.z, l(-0.500000)
mov r6.xy, v4.zwzz
mov r6.z, r4.y
sample_indexable(texture2darray)(float,float,float,float) r0.w, r6.xyzx, t7.xzwy, s4
add r0.z, r0.z, r0.w
add r0.z, r0.z, l(-0.500000)
mul r0.z, r0.z, cb3[1].w
mul r0.z, r0.z, cb2[4].z
mad r0.z, r0.z, l(0.500000), cb2[4].w
add r7.xyz, -v1.xyzx, cb1[44].xyzx
dp3 r0.w, r7.xyzx, r7.xyzx
rsq r0.w, r0.w
mul r7.xyzw, r0.wwww, r7.xyxy
mad r7.xyzw, r0.zzzz, r7.xyzw, v4.xyzw
sample_indexable(texture2d)(float,float,float,float) r0.zw, v2.xyxx, t11.zwxy, s0
mad r0.zw, r0.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
dp2 r0.z, r0.zwzz, cb3[0].xyxx
add r0.z, r0.z, l(2.000000)
mul r0.z, r0.z, r0.z
mul r0.z, r0.z, r0.z
add r0.w, r0.z, r0.z
div r0.z, r0.z, r0.w
mul r0.z, r0.z, cb3[1].z
mul r0.z, r0.z, cb3[1].w
mov r5.xy, r7.xyxx
sample_indexable(texture2darray)(float,float,float,float) r8.xyzw, r5.xyzx, t8.zwxy, s4
sample_indexable(texture2darray)(float,float,float,float) r1.zw, r5.xyzx, t7.zwxy, s4
mad r2.zw, r8.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
mul r5.xy, r0.zzzz, r2.zwzz
mad r8.z, r1.z, l(2.000000), l(-1.000000)
mul r0.w, r0.z, r0.z
add r7.x, r1.w, l(-0.500000)
mov r6.xy, r7.zwzz
sample_indexable(texture2darray)(float,float,float,float) r9.xyzw, r6.xyzx, t8.zwxy, s4
sample_indexable(texture2darray)(float,float,float,float) r1.zw, r6.xyzx, t7.zwxy, s4
mad r5.zw, r9.wwwz, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
mul r5.zw, r0.zzzz, r5.zzzw
mad r9.z, r1.z, l(2.000000), l(-1.000000)
mul r6.xyz, r0.wwww, r9.xyzx
add r7.y, r1.w, l(-0.500000)
mad r9.xz, r2.wwzw, r0.zzzz, r5.zzwz
mad r6.xyz, r0.wwww, r8.xyzx, r6.xyzx
add r0.zw, r5.xxxy, r5.xxxy
mul r8.xy, r5.wzww, r0.zwzz
dp2 r8.z, r5.xyxx, r5.zwzz
add r5.xyz, r6.xyzx, r8.xyzx
mad r5.xyz, -r9.zxzz, r9.zxxz, r5.xyzx
add r0.z, r7.y, r7.x
mul r6.z, r0.z, cb3[1].w
mov r9.y, l(1.000000)
dp3 r0.w, r9.xyzx, r9.xyzx
rsq r0.w, r0.w
mul r8.xyz, r0.wwww, r9.xyzx
mov r6.xy, v1.xyxx
add r10.xyz, -r6.xyzx, cb1[44].xyzx
dp3 r0.w, r10.xyzx, r10.xyzx
rsq r1.z, r0.w
mul r11.xyz, r1.zzzz, r10.xyzx
add r12.xyzw, r5.xyxy, cb2[0].zzww
max r2.zw, r7.xxxy, cb2[4].xxxx
min r2.zw, r2.zzzw, cb2[4].yyyy
add r2.zw, r2.zzzw, -cb2[4].xxxx
add r1.w, -cb2[4].x, cb2[4].y
div_sat r2.zw, r2.zzzw, r1.wwww
mul r1.w, r2.w, r2.z
and r2.z, l(1), cb3[12].x
mad r2.w, -r2.y, r1.y, l(1.000000)
mul r5.xy, r2.wwww, r9.zxzz
gather4_indexable(texture2d)(float,float,float,float) r7.xyzw, v3.xyxx, t3.xyzw, s7.x
max r7.xy, r7.ywyy, r7.xzxx
max r7.z, r7.y, r7.x
add r9.yw, cb1[38].yyyy, cb1[38].zzzy
mad r2.w, r7.z, r9.y, -r9.w
add r3.w, -cb1[38].y, cb1[38].z
mul r5.w, r3.w, r7.z
div r2.w, r2.w, r5.w
mul r13.xy, v3.yyyy, cb1[17].zwzz
mad r13.xy, v3.xxxx, cb1[16].zwzz, r13.xyxx
mad r13.xy, r2.wwww, cb1[18].zwzz, r13.xyxx

//add r13.xy, r13.xyxx, cb1[19].zwzz

div r2.w, r13.x, r13.y
mad r2.w, -r0.z, cb3[1].w, r2.w
mul r5.w, r2.w, cb2[6].x
mul r5.w, r5.w, l(-0.500000)
dp3 r6.w, -r11.yzxy, r8.xyzx
mad r7.w, -r6.w, r6.w, l(1.000000)
mad r7.w, -r7.w, l(0.565323055), l(1.000000)
sqrt r10.w, r7.w
mad r6.w, r6.w, l(0.751879692), r10.w
ge r7.w, r7.w, l(0.000000)
mul r13.xyz, r8.zxyz, r6.wwww
mad r13.xyz, r11.xyzx, l(-0.751879692, -0.751879692, -0.751879692, 0.000000), -r13.xyzx
and r13.xyz, r7.wwww, r13.xyzx
mad r6.xyz, r13.xyzx, r5.wwww, r6.xyzx
mul r13.xyz, r6.yyyy, cb1[5].xywx
mad r6.xyw, r6.xxxx, cb1[4].xyxw, r13.xyxz
mad r6.xyz, r6.zzzz, cb1[6].xywx, r6.xywx
add r6.xyz, r6.xyzx, cb1[7].xywx
div r6.xy, r6.xyxx, r6.zzzz
mul r6.xy, r6.xyxx, cb1[35].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r5.w, r6.xyxx, t2.xyzw, s7, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r6.z, r6.xyxx, t3.yzxw, s7, l(0.000000)
mad r6.w, r6.z, r9.y, -r9.w
mul r7.w, r3.w, r6.z
div r6.w, r6.w, r7.w
mul r13.xy, r6.yyyy, cb1[17].zwzz
mad r13.xy, r6.xxxx, cb1[16].zwzz, r13.xyxx
mad r13.xy, r6.wwww, cb1[18].zwzz, r13.xyxx
add r13.xy, r13.xyxx, cb1[19].zwzz
div r6.w, r13.x, r13.y
mad r0.z, -r0.z, cb3[1].w, r6.w
add r6.w, -r2.w, r0.z
min r2.w, r2.w, r0.z
div r2.w, r6.w, r2.w
lt r0.z, l(-0.500000), r0.z
lt r5.w, l(0.000000), r5.w
or r0.z, r0.z, r5.w
lt r2.w, l(0.500000), |r2.w|
or r0.z, r0.z, r2.w
mov r7.xy, v3.xyxx
movc r6.xyz, r0.zzzz, r7.xyzx, r6.xyzx
mad r0.z, r6.z, r9.y, -r9.w
mul r2.w, r3.w, r6.z
div r0.z, r0.z, r2.w
mul r6.zw, r6.yyyy, cb1[17].zzzw
mad r6.zw, r6.xxxx, cb1[16].zzzw, r6.zzzw
mad r6.zw, r0.zzzz, cb1[18].zzzw, r6.zzzw
add r6.zw, r6.zzzw, cb1[19].zzzw
div r0.z, r6.z, r6.w
mul r2.w, cb1[39].z, cb1[39].x
sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r6.xyxx, t2.xyzw, s7, l(0.000000)
mul r6.xyz, r2.wwww, r6.xyzx
add r0.z, r0.z, -v1.z
mul r4.x, r0.z, cb3[2].z
mov r4.y, l(0)
sample_indexable(texture2darray)(float,float,float,float) r7.xyz, r4.xyzx, t5.xyzw, s2
sample_indexable(texture2darray)(float,float,float,float) r4.xyz, r4.xywx, t0.xyzw, s2
if_nz cb1[37].y
  dp2 r2.w, r8.xzxx, r8.xzxx
  rsq r2.w, r2.w
  mul r9.yw, r2.wwww, r8.zzzx
  mul r13.xy, r9.ywyy, l(0.200000, 0.200000, 0.000000, 0.000000)
  mov r13.z, l(0)
  add r13.xyz, r13.xyzx, v1.xyzx
  mul r14.xyzw, r13.yyyy, cb1[25].xyzw
  mad r14.xyzw, r13.xxxx, cb1[24].xyzw, r14.xyzw
  mad r13.xyzw, r13.zzzz, cb1[26].xyzw, r14.xyzw
  add r13.xyzw, r13.xyzw, cb1[27].xyzw
  div r13.xyz, r13.xyzx, r13.wwww
  mad r9.yw, r13.xxxy, cb1[36].xxxy, l(0.000000, -0.500000, 0.000000, -0.500000)
  frc r9.yw, r9.yyyw
  add r14.xy, -r9.wyww, l(1.000000, 1.000000, 0.000000, 0.000000)
  mul r15.x, r14.x, r14.y
  mul r15.yz, r9.yywy, r14.xxyx
  mul r15.w, r9.w, r9.y
  gather4_indexable(texture2d)(float,float,float,float) r14.xyzw, r13.xyxx, t10.xyzw, s6.x
  ge r14.xyzw, r14.wzxy, r13.zzzz
  and r14.xyzw, r14.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
  dp4 r2.w, r14.xyzw, r15.xyzw
  sample_l_indexable(texture2d)(float,float,float,float) r3.w, r13.xyxx, t16.yzwx, s2, l(0.000000)
  add r3.w, -r3.w, l(1.000000)
  mul r2.w, r2.w, r3.w
else
  mov r2.w, l(1.000000)
endif
mad r13.xyz, r10.xyzx, r1.zzzz, cb1[33].xyzx
div r9.yw, r13.xxxy, r13.zzzz
add r9.yw, -r9.zzzx, r9.yyyw
mul r3.w, r5.z, r5.z
mad r5.zw, r12.xxxz, r12.yyyw, -r3.wwww
mul r9.yw, r9.yyyw, r9.yyyw
mul r9.yw, r12.yyyx, r9.yyyw
add r3.w, r9.w, r9.y
div r9.yw, l(0.000000, 0.500000, 0.000000, 0.500000), r5.zzzw
mul r3.w, r3.w, r9.y
max r3.w, r3.w, l(-256.000000)
min r3.w, r3.w, l(256.000000)
mul r3.w, r3.w, l(-1.442695)
exp r3.w, r3.w
rsq r12.xy, r5.zwzz
mul r3.w, r3.w, r12.x
ge r5.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r5.zzzw
ge r4.w, l(0.000000), r13.z
or r4.w, r4.w, r5.z
mul r3.w, r3.w, l(0.125000)
add r5.z, l(1.000000), -cb2[5].x
dp3_sat r6.w, r13.xyzx, r11.xyzx
add r6.w, -r6.w, l(1.000000)
mul r7.w, r6.w, r6.w
mul r7.w, r7.w, r7.w
mul r6.w, r6.w, r7.w
mad r6.w, r5.z, r6.w, cb2[5].x
mul r3.w, r3.w, r6.w
mul r13.xyz, r3.wwww, cb1[45].xyzx
movc r13.xyz, r4.wwww, l(0,0,0,0), r13.xyzx
mul r13.xyz, r2.wwww, r13.xyzx
add r14.xy, v1.xyxx, -cb1[32].xyxx
mul r14.xy, r14.xyxx, cb1[32].zwzz
ftou r14.xy, r14.xyxx
mov r14.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r14.xyzw, r14.xyzw, t9.xyzw
ult r15.xy, r14.xzxx, r14.ywyy
mul r3.w, r12.y, l(0.500000)
mov r16.xyz, r13.xyzx
mov r4.w, r15.x
mov r12.x, r14.x
loop
  breakc_z r4.w
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r17.xyzw, r12.x, l(0), t13.xyzw
  iadd r12.xy, r12.xxxx, l(2, 1, 0, 0)
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r18.xyzw, r12.y, l(0), t13.xyzw
  add r17.xyz, r17.xyzx, -v1.xyzx
  dp3 r6.w, r17.xyzx, r17.xyzx
  sqrt r7.w, r6.w
  div_sat r7.w, r7.w, r17.w
  add r7.w, -r7.w, l(1.000000)
  add r9.y, r18.w, l(0.010000)
  log r7.w, r7.w
  mul r7.w, r7.w, r9.y
  exp r7.w, r7.w
  lt r9.y, r18.x, l(0.000000)
  movc r9.y, r9.y, l(0), l(1.000000)
  mul r7.w, r7.w, r9.y
  rsq r6.w, r6.w
  mad r17.xyz, r17.xyzx, r6.wwww, r11.xyzx
  dp3 r6.w, r17.xyzx, r17.xyzx
  rsq r6.w, r6.w
  mul r17.xyz, r6.wwww, r17.xyzx
  div r15.zw, r17.xxxy, r17.zzzz
  add r15.zw, -r9.zzzx, r15.zzzw
  mul r15.zw, r15.zzzw, r15.zzzw
  mul r15.zw, r12.wwwz, r15.zzzw
  add r6.w, r15.w, r15.z
  mul r6.w, r9.w, r6.w
  max r6.w, r6.w, l(-256.000000)
  min r6.w, r6.w, l(256.000000)
  mul r6.w, r6.w, l(-1.442695)
  exp r6.w, r6.w
  ge r9.y, l(0.000000), r17.z
  or r9.y, r5.w, r9.y
  mul r6.w, r3.w, r6.w
  mul r6.w, r6.w, l(0.250000)
  movc r6.w, r9.y, l(0), r6.w
  dp3_sat r9.y, r17.xyzx, r11.xyzx
  add r9.y, -r9.y, l(1.000000)
  mul r10.w, r9.y, r9.y
  mul r10.w, r10.w, r10.w
  mul r9.y, r9.y, r10.w
  mad r9.y, r5.z, r9.y, cb2[5].x
  mul r17.xyz, r6.wwww, r18.xyzx
  mul r17.xyz, r9.yyyy, r17.xyzx
  mad r16.xyz, r17.xyzx, r7.wwww, r16.xyzx
  ult r4.w, r12.x, r14.y
endloop
mov r13.xyz, r16.xyzx
mov r4.w, r15.y
mov r17.x, r14.z
loop
  breakc_z r4.w
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r18.xyzw, r17.x, l(0), t13.xyzw
  iadd r17.xyzw, r17.xxxx, l(4, 1, 2, 3)
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r19.xyzw, r17.y, l(0), t13.xyzw
  add r15.xzw, r18.xxyz, -v1.xxyz
  dp3 r6.w, r15.xzwx, r15.xzwx
  sqrt r7.w, r6.w
  div_sat r7.w, r7.w, r18.w
  add r7.w, -r7.w, l(1.000000)
  add r9.y, r19.w, l(0.010000)
  log r7.w, r7.w
  mul r7.w, r7.w, r9.y
  exp r7.w, r7.w
  lt r9.y, r19.x, l(0.000000)
  movc r9.y, r9.y, l(0), l(1.000000)
  mul r7.w, r7.w, r9.y
  rsq r6.w, r6.w
  mul r15.xzw, r6.wwww, r15.xxzw
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r18.xyzw, r17.z, l(0), t13.xyzw
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.w, r17.w, l(0), t13.xxxx
  dp3 r9.y, r18.xyzx, r15.xzwx
  mov_sat r9.y, -r9.y
  mad_sat r6.w, r9.y, r18.w, r6.w
  mul r6.w, r6.w, r7.w
  mad r15.xzw, r10.xxyz, r1.zzzz, r15.xxzw
  dp3 r7.w, r15.xzwx, r15.xzwx
  rsq r7.w, r7.w
  mul r15.xzw, r7.wwww, r15.xxzw
  div r12.xy, r15.xzxx, r15.wwww
  add r12.xy, -r9.zxzz, r12.xyxx
  mul r12.xy, r12.xyxx, r12.xyxx
  mul r12.xy, r12.wzww, r12.xyxx
  add r7.w, r12.y, r12.x
  mul r7.w, r9.w, r7.w
  max r7.w, r7.w, l(-256.000000)
  min r7.w, r7.w, l(256.000000)
  mul r7.w, r7.w, l(-1.442695)
  exp r7.w, r7.w
  ge r9.y, l(0.000000), r15.w
  or r9.y, r5.w, r9.y
  mul r7.w, r3.w, r7.w
  mul r7.w, r7.w, l(0.250000)
  movc r7.w, r9.y, l(0), r7.w
  dp3_sat r9.y, r15.xzwx, r11.xyzx
  add r9.y, -r9.y, l(1.000000)
  mul r10.w, r9.y, r9.y
  mul r10.w, r10.w, r10.w
  mul r9.y, r9.y, r10.w
  mad r9.y, r5.z, r9.y, cb2[5].x
  mul r15.xzw, r7.wwww, r19.xxyz
  mul r15.xzw, r9.yyyy, r15.xxzw
  mad r13.xyz, r15.xzwx, r6.wwww, r13.xyzx
  ult r4.w, r17.x, r14.w
endloop
mul r9.xyz, r8.xyxx, r8.xyzx
mad r10.y, r9.y, l(3.000000), l(-1.000000)
mul r10.xz, r8.yyyy, r8.xxzx
mad r10.w, r8.z, r8.z, -r9.x
mov r8.w, r9.z
dp4 r1.z, cb1[46].xyzw, r8.xyzw
add r1.z, r1.z, cb1[52].x
dp4 r3.w, cb1[47].xyzw, r10.xyzw
add r9.x, r1.z, r3.w
dp4 r1.z, cb1[48].xyzw, r8.xyzw
add r1.z, r1.z, cb1[52].y
dp4 r3.w, cb1[49].xyzw, r10.xyzw
add r9.y, r1.z, r3.w
dp4 r1.z, cb1[50].xyzw, r8.xyzw
add r1.z, r1.z, cb1[52].z
dp4 r3.w, cb1[51].xyzw, r10.xyzw
add r9.z, r1.z, r3.w
max r9.xyz, r9.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul_sat r0.z, r0.z, l(-0.200000)
mad r1.z, r2.w, l(0.500000), l(-0.500000)
mad r0.z, r0.z, r1.z, l(1.000000)
dp3 r1.z, r8.zxyz, r11.xyzx
add_sat r1.z, -r1.z, l(1.000000)
log r1.z, r1.z
mul r1.z, r1.z, cb2[5].y
exp r1.z, r1.z
mad r1.z, r5.z, r1.z, cb2[5].x
mul r4.xyz, r4.xyzx, r9.xyzx
mad r4.xyz, r6.xyzx, r7.xyzx, r4.xyzx
mul r4.xyz, r0.zzzz, r4.xyzx
add r0.z, -r1.z, l(1.000000)
mad r4.xyz, r4.xyzx, r0.zzzz, r13.xyzx
log r0.z, r8.y
mul r0.z, r0.z, l(512.000000)
exp r0.z, r0.z
log r1.z, r1.w
movc r1.z, r2.z, r1.z, l(0xff800000)
mul r1.z, r1.z, cb2[3].z
exp r1.z, r1.z
mul r0.z, r0.z, r1.z
mul r0.z, r0.z, cb3[12].y
mad r4.xyz, r0.zzzz, r9.xyzx, r4.xyzx
mul r4.xyz, r4.xyzx, cb1[38].wwww
max r0.z, r3.x, r3.y
lt r0.z, l(0.000000), r0.z
if_nz r0.z
  mul r1.zw, v1.xxxy, l(0.000000, 0.000000, 1.000000, -1.000000)
  dp2 r3.x, cb2[1].xyxx, r1.zwzz
  dp2 r3.y, cb2[1].zwzz, r1.zwzz
  sample_indexable(texture2d)(float,float,float,float) r6.xyz, r3.xyxx, t17.xyzw, s4
  sample_indexable(texture2d)(float,float,float,float) r3.xyw, r3.xyxx, t15.xywz, s4
  add r6.xyz, -r3.xywx, r6.xyzx
  mad r3.xyz, r3.zzzz, r6.xyzx, r3.xywx
  dp2 r6.x, cb1[62].xyxx, r1.zwzz
  dp2 r6.y, cb1[62].zwzz, r1.zwzz
  sample_indexable(texture2d)(float,float,float,float) r6.xyz, r6.xyxx, t20.xyzw, s4
  mul r1.zw, v1.xxxy, cb1[64].wwww
  sample_indexable(texture2d)(float,float,float,float) r0.z, r1.zwzz, t22.yzxw, s0
  mul r0.z, r0.z, cb1[65].w
  max r0.z, r0.z, l(0.000000)
  min r0.z, r0.z, l(0.950000)
  mad r1.zw, r2.yyyx, r1.yyyx, -r0.zzzz
  add r2.zw, r1.zzzw, l(0.000000, 0.000000, -0.010000, -0.010000)
  mul_sat r2.zw, r2.zzzw, l(0.000000, 0.000000, 50.000000, 50.000000)
  mad r3.xyz, r3.xyzx, cb1[64].xyzx, -r4.xyzx
  mad r3.xyz, r2.zzzz, r3.xyzx, r4.xyzx
  add r1.w, -r0.z, l(1.000000)
  div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
  mul_sat r1.z, r1.w, r1.z
  mad r1.w, r1.z, l(-2.000000), l(3.000000)
  mul r1.z, r1.z, r1.z
  mul r1.z, r1.z, r1.w
  mad r1.x, r2.x, r1.x, -r2.w
  mad r1.x, r1.z, r1.x, r2.w
  mad r2.xzw, r6.xxyz, cb1[64].xxyz, -r3.xxyz
  mad r1.xzw, r1.xxxx, r2.xxzw, r3.xxyz
  add r0.z, r0.z, l(-0.020000)
  add r2.x, -r0.z, l(1.000000)
  mad r0.z, r2.y, r1.y, -r0.z
  div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
  mul_sat r0.z, r0.z, r1.y
  mad r1.y, r0.z, l(-2.000000), l(3.000000)
  mul r0.z, r0.z, r0.z
  mul r2.x, r0.z, r1.y
  log r2.x, r2.x
  mul r2.x, r2.x, l(0.100000)
  exp r2.x, r2.x
  mad r0.z, -r1.y, r0.z, l(1.000000)
  mul r0.z, r0.z, r2.x
  mad r2.xyz, cb1[65].xyzx, r1.xzwx, -r1.xzwx
  mad r4.xyz, r0.zzzz, r2.xyzx, r1.xzwx
endif
mul r1.xy, r5.yyyy, cb1[21].xyxx
mad r1.xy, r5.xxxx, cb1[20].xyxx, r1.xyxx
mad r0.xy, r1.xyxx, cb2[5].wwww, r0.xyxx
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.xyxx, t1.xyzw, s5
if_nz cb1[37].x
  sqrt r0.x, r0.w
  mul r0.x, r0.x, l(0.001000)
  min r0.x, r0.x, l(1.000000)
  add r0.x, -r0.x, l(1.000000)
  mul r0.y, r0.x, cb2[5].z
  mul r0.x, r0.y, r0.x
  mul r0.yz, r5.yyyy, cb1[9].xxyx
  mad r0.yz, r5.xxxx, cb1[8].xxyx, r0.yyzy
  mul r0.xy, r0.xxxx, r0.yzyy
  mad r0.xy, v0.xyxx, cb1[34].zwzz, r0.xyxx
  sample_indexable(texture2d)(float,float,float,float) r0.xyzw, r0.xyxx, t6.xyzw, s5
  add r1.xyzw, r0.xyzw, r1.xyzw
  mov_sat r1.w, r1.w
endif
add r0.x, -r1.w, l(1.000000)
mad r0.xyz, r4.xyzx, r0.xxxx, r1.xyzx
if_nz cb2[8].z
  mul r1.xy, v0.xyxx, cb2[9].zwzz
  sample_indexable(texture2d)(float,float,float,float) r0.w, r1.xyxx, t14.yzwx, s6
  add r0.w, r0.w, r0.w
  mad r1.xyz, r0.xyzx, l(1024.000000, 1024.000000, 1024.000000, 0.000000), r0.wwww
  round_ni r1.xyz, r1.xyzx
  mul r0.xyz, r1.xyzx, l(0.000976562500, 0.000976562500, 0.000976562500, 0.000000)
endif
mul o0.xyz, r0.xyzx, cb1[39].yyyy
mov o0.w, l(0)
ret
// Approximately 449 instruction slots used

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