glsl[3] glsl-3bfcb5dd57428948822db12fe52f8f0f
//ATTRIBMAP-00-30-50-51-52-53-20-10-5D-xx
#version 330 core
// LunarGOO output
#extension GL_ARB_separate_shader_objects : enable
#extension GL_ARB_shading_language_420pack : enable
struct VS_INPUT {
	vec3 member0;
	vec4 member1;
	vec2 member2;
	vec3 member3;
	vec3 member4;
	vec3 member5;
	ivec4 member6;
	vec4 member7;
	vec2 member8;
};
layout(std140, binding = 12 ) uniform PerViewConstantBuffer_t {
	layout(row_major) mat4 g_matWorldToProjection;
	layout(row_major) mat4 g_matProjectionToWorld;
	layout(row_major) mat4 g_matWorldToView;
	layout(row_major) mat4 g_matViewToProjection;
	vec4 g_vInvProjRow3;
	vec4 g_vClipPlane0;
	float g_flToneMapScalarLinear;
	float g_flLightMapScalar;
	float g_flEnvMapScalar;
	float g_flToneMapScalarGamma;
	vec3 g_vCameraPositionWs;
	float g_flViewportMinZ;
	vec3 g_vCameraDirWs;
	float g_flViewportMaxZ;
	vec3 g_vCameraUpDirWs;
	float g_flTime;
	vec3 g_vDepthPsToVsConversion;
	float g_flNearPlane;
	float g_flFarPlane;
	float g_flLightBinnerFarPlane;
	vec2 g_vInvViewportSize;
	vec2 g_vViewportToGBufferRatio;
	vec2 g_vMorphTextureAtlasSize;
	vec4 g_vInvGBufferSize;
	vec2 g_vViewportOffset;
	vec2 g_vViewportSize;
	vec2 g_vRenderTargetSize;
	float g_flFogBlendToBackground;
	float g_flHenyeyGreensteinCoeff;
	vec3 g_vFogColor;
	float g_flNegFogStartOverFogRange;
	float g_flInvFogRange;
	float g_flFogMaxDensity;
	float g_flFogExponent;
	float g_flMod2xIdentity;
	float g_bStereoEnabled;
	float g_flStereoCameraIndex;
	float g_fInvViewportZRange;
	float g_fMinViewportZScaled;
	vec3 g_vMiddleEyePositionWs;
	float g_flPad2;
	layout(row_major) mat4 g_matWorldToProjectionMultiview[2];
	vec4 g_vCameraPositionWsMultiview[2];
	vec4 g_vFrameBufferCopyInvSizeAndUvScale;
	vec4 g_vCameraAngles;
	vec4 g_vWorldToCameraOffset;
	vec4 g_vWorldToCameraOffsetMultiview[2];
	vec4 g_vPerViewConstantExtraData0;
	vec4 g_vPerViewConstantExtraData1;
	vec4 g_vPerViewConstantExtraData2;
	vec4 g_vPerViewConstantExtraData3;
} ;
layout( binding = 18 ) uniform sampler2D g_tTransformTexture;
layout(std140, binding = 13 ) uniform _Globals_ {
	float g_flTexCoordScale0;
	float g_flTexCoordScale1;
	float g_flTexCoordScale2;
	float g_flTexCoordRotate0;
	float g_flTexCoordRotate1;
	float g_flTexCoordRotate2;
	vec2 g_vTexCoordScroll0;
	vec2 g_vTexCoordScroll1;
	vec2 g_vTexCoordScroll2;
	vec2 g_vTexCoordOffset0;
	vec2 g_vTexCoordOffset1;
	vec2 g_vTexCoordOffset2;
	float g_flTexCoordScale3;
	float g_flTexCoordRotate3;
	vec2 g_vTexCoordScroll3;
	vec2 g_vTexCoordOffset3;
	float g_flScrollWaveHeight0;
	float g_flScrollWaveSecondsPerCycle0;
	float g_flScrollWaveOffsetSeconds0;
	float g_flScrollWaveCycleSkip0;
	float g_flScrollWaveHeight1;
	float g_flScrollWaveSecondsPerCycle1;
	float g_flScrollWaveOffsetSeconds1;
	float g_flScrollWaveCycleSkip1;
	float g_flScrollWaveHeight2;
	float g_flScrollWaveSecondsPerCycle2;
	float g_flScrollWaveOffsetSeconds2;
	float g_flScrollWaveCycleSkip2;
	float g_flScrollWaveHeight3;
	float g_flScrollWaveSecondsPerCycle3;
	float g_flScrollWaveOffsetSeconds3;
	float g_flScrollWaveCycleSkip3;
} ;
layout(std140) uniform DotaGlobalParams_t {
	vec3 g_vGlobalLightDir;
	vec3 g_vGlobalLightColor;
	float g_flGlobalLightSpecularScale;
	vec3 g_vGlobalLightSpecularDir;
	float g_flGlobalLightSpecularExp;
	vec3 g_vGlobalLightSpecularColor;
	float g_flGlobalLightSpecularIndependence;
	vec3 g_vGlobalLightAmbientDir;
	float g_flGlobalLightAmbientScale1;
	vec3 g_vGlobalLightAmbientColor1;
	float g_flGlobalLightAmbientScale2;
	vec3 g_vGlobalLightAmbientColor2;
	float g_flGlobalLightAmbientScale2Hero;
	vec2 g_vGlobalCloud1Offset;
	vec2 g_vGlobalCloud2Offset;
	vec3 g_vFowColor;
	float g_flGlobalCloudScale;
	float g_flFowDarkness;
	float g_flFowGrayFactor;
	float g_flFowColorFactor;
	float g_flFowGrayHilights;
	vec4 g_vFowWorldSize;
	vec4 g_vFowTexOffsets;
	layout(row_major) mat4 g_matShadowWorldToTexture;
	vec4 g_vInvShadowDepthTextureSize;
	vec3 g_vGlobalLightAmbientColor3;
	float g_flGlobalLightAmbientShadowAmount;
} ;
uniform sampler2D g_tFow;
uniform sampler2D g_tFrameBufferCopyTexture;
uniform sampler2D g_tDepthTexture;
uniform sampler2D g_tGBufferAlbedo;
uniform sampler2D g_tGBufferLightingTerms;
uniform sampler2D g_tGBufferDepth;
uniform sampler2D g_tGBufferNormalWs;
layout(std140) uniform PerLayerConstantBuffer_t {
	vec4 g_vWireframeColor;
} ;
uniform sampler2D g_tClouds;
uniform sampler2DShadow g_tShadowDepthTexture;
layout(location=0) in vec3 VS_INPUT_gl_vPositionOs;
layout(location=1) in vec4 VS_INPUT_gl_vNormalOs;
layout(location=2) in vec2 VS_INPUT_gl_vTexCoord;
layout(location=3) in vec3 VS_INPUT_gl_vColorBlendValues;
layout(location=4) in vec3 VS_INPUT_gl_vAlphaBlendValues;
layout(location=5) in vec3 VS_INPUT_gl_vBlendColorTint;
layout(location=6) in uvec4 VS_INPUT_gl_vBlendIndices;
layout(location=7) in vec4 VS_INPUT_gl_vBlendWeight;
layout(location=8) in vec2 VS_INPUT_gl_vTransformTextureUV;
out gl_PerVertex {
	vec4 gl_Position;
	float gl_ClipDistance[1];
} ;
layout(location=0) out vec4 PS_INPUT_gl_vPositionWs_flLinearDepth;
layout(location=1) out vec4 PS_INPUT_gl_vNormalWs_flSpecularAmount;
layout(location=2) out vec4 PS_INPUT_gl_vVertexColor;
layout(location=3) out vec4 PS_INPUT_gl_vColorBlendValues_BlendY;
layout(location=4) out vec4 PS_INPUT_gl_vAlphaBlendValues_BlendZ;
layout(location=5) out vec4 PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1;
layout(location=6) out vec4 PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3;
const float C_0d0 = 0.0;
const float C_2d0 = 2.0;
const float C_4d0 = 4.0;
const float C_0d5 = 0.5;
const ivec2 C_ivec2p2ca0p = ivec2(2, 0);
const ivec2 C_ivec2p1ca0p = ivec2(1, 0);
const float C_1d0 = 1.0;
const float C_0d0174533 = 0.0174533;
const vec2 C_vec2pa0d5p = vec2(-0.5);
const vec2 C_vec2p0d5p = vec2(0.5);
const float C_0d9 = 0.9;
const float C_3d14159 = 3.14159;
const float C_a1d0 = -1.0;
const ivec2 C_ivec2p3ca0p = ivec2(3, 0);
const vec3 C_vec3p0d5p = vec3(0.5);
const float C_0d0001 = 0.0001;
const vec3 C_vec3p12d92p = vec3(12.92);
const vec3 C_vec3p1d055p = vec3(1.055);
const vec3 C_bw96as = vec3(0.0521327);
const vec3 C_vec3p2d4p = vec3(2.4);
const float C_0d04045 = 0.04045;
void main()
{
	VS_INPUT param;
	VS_INPUT param1;
	VS_INPUT param2;
	VS_INPUT param3;
	VS_INPUT mainIn;
	mainIn.member0 = VS_INPUT_gl_vPositionOs;
	mainIn.member1 = VS_INPUT_gl_vNormalOs;
	mainIn.member2 = VS_INPUT_gl_vTexCoord;
	mainIn.member3 = VS_INPUT_gl_vColorBlendValues;
	mainIn.member4 = VS_INPUT_gl_vAlphaBlendValues;
	mainIn.member5 = VS_INPUT_gl_vBlendColorTint;
	mainIn.member6 = ivec4(VS_INPUT_gl_vBlendIndices);
	mainIn.member7 = VS_INPUT_gl_vBlendWeight;
	mainIn.member8 = VS_INPUT_gl_vTransformTextureUV;
	gl_ClipDistance[0] = C_0d0;
	float H_8c0ryw = float(mainIn.member6.x);
	float H_y9ufns1 = H_8c0ryw + C_2d0;
	float H_luu15w1 = H_y9ufns1 * C_4d0;
	float H_sap20f = H_luu15w1 + C_0d5;
	float H_19fjcn = H_sap20f * g_vInvGBufferSize.z;
	vec2 H_4zkx3s = vec2(H_19fjcn, C_0d0);
	vec2 vBlendTransform0UV = H_4zkx3s + mainIn.member8;
	float flWrapLines = floor(vBlendTransform0UV.x);
	float H_7mdp57 = vBlendTransform0UV.x - flWrapLines;
	float H_wgm8gx = flWrapLines * g_vInvGBufferSize.w;
	float H_06afd41 = H_wgm8gx + vBlendTransform0UV.y;
	vec2 H_crnj9e1 = vec2(H_7mdp57, H_06afd41);
	vec4 vMatObjectToWorldRow = textureLodOffset(g_tTransformTexture, H_crnj9e1, C_0d0, C_ivec2p2ca0p);
	vec4 vMatObjectToWorldRow1 = textureLodOffset(g_tTransformTexture, H_crnj9e1, C_0d0, C_ivec2p1ca0p);
	vec4 vMatObjectToWorldRow2 = textureLod(g_tTransformTexture, H_crnj9e1, C_0d0);
	vec4 vMatObjectToWorldRow3 = mainIn.member7.xxxx * vMatObjectToWorldRow;
	vec4 vMatObjectToWorldRow4 = mainIn.member7.xxxx * vMatObjectToWorldRow1;
	vec4 vMatObjectToWorldRow5 = mainIn.member7.xxxx * vMatObjectToWorldRow2;
	float H_hdyxr = float(mainIn.member6.y);
	float H_k8vvld = C_2d0 + H_hdyxr;
	float H_3ah8vn = C_4d0 * H_k8vvld;
	float H_c28j2r = C_0d5 + H_3ah8vn;
	float H_6rwruk1 = H_c28j2r * g_vInvGBufferSize.z;
	vec2 H_vdpaii = vec2(H_6rwruk1, C_0d0);
	vec2 vBlendTransform0UV1 = H_vdpaii + mainIn.member8;
	float flWrapLines1 = floor(vBlendTransform0UV1.x);
	float H_lbkazl1 = vBlendTransform0UV1.x - flWrapLines1;
	float H_bgf3c8 = flWrapLines1 * g_vInvGBufferSize.w;
	float H_yyulap1 = H_bgf3c8 + vBlendTransform0UV1.y;
	vec2 H_sg29b2 = vec2(H_lbkazl1, H_yyulap1);
	vec4 H_6os2wm1 = vec4(mainIn.member7.y);
	vec4 vMatObjectToWorldRow6 = textureLod(g_tTransformTexture, H_sg29b2, C_0d0);
	vec4 H_73sqma1 = H_6os2wm1 * vMatObjectToWorldRow6;
	vec4 vMatObjectToWorldRow7 = H_73sqma1 + vMatObjectToWorldRow5;
	vec4 vTmp = textureLodOffset(g_tTransformTexture, H_sg29b2, C_0d0, C_ivec2p1ca0p);
	vec4 vTmp1 = textureLodOffset(g_tTransformTexture, H_sg29b2, C_0d0, C_ivec2p2ca0p);
	vec4 H_aqto4q1 = H_6os2wm1 * vTmp;
	vec4 vMatObjectToWorldRow8 = H_aqto4q1 + vMatObjectToWorldRow4;
	vec4 H_hm659e = H_6os2wm1 * vTmp1;
	vec4 vMatObjectToWorldRow9 = H_hm659e + vMatObjectToWorldRow3;
	float H_ui9lf7 = float(mainIn.member6.z);
	float H_rkelrt1 = C_2d0 + H_ui9lf7;
	float H_jgeugk = C_4d0 * H_rkelrt1;
	float H_veob4k = C_0d5 + H_jgeugk;
	float H_kqwzne1 = H_veob4k * g_vInvGBufferSize.z;
	vec2 H_gifux51 = vec2(H_kqwzne1, C_0d0);
	vec2 vBlendTransform0UV2 = H_gifux51 + mainIn.member8;
	float flWrapLines2 = floor(vBlendTransform0UV2.x);
	float H_r37z221 = vBlendTransform0UV2.x - flWrapLines2;
	float H_qwcewg1 = flWrapLines2 * g_vInvGBufferSize.w;
	float H_hlw5r6 = H_qwcewg1 + vBlendTransform0UV2.y;
	vec2 H_lcamv11 = vec2(H_r37z221, H_hlw5r6);
	vec4 H_1x1qzx1 = vec4(mainIn.member7.z);
	vec4 vMatObjectToWorldRowa = textureLod(g_tTransformTexture, H_lcamv11, C_0d0);
	vec4 H_rr6v3n = H_1x1qzx1 * vMatObjectToWorldRowa;
	vec4 vMatObjectToWorldRowb = H_rr6v3n + vMatObjectToWorldRow7;
	vec4 vTmp2 = textureLodOffset(g_tTransformTexture, H_lcamv11, C_0d0, C_ivec2p1ca0p);
	vec4 vTmp3 = textureLodOffset(g_tTransformTexture, H_lcamv11, C_0d0, C_ivec2p2ca0p);
	vec4 H_lcuwkt = H_1x1qzx1 * vTmp2;
	vec4 vMatObjectToWorldRowc = H_lcuwkt + vMatObjectToWorldRow8;
	vec4 H_mn8xat = H_1x1qzx1 * vTmp3;
	vec4 vMatObjectToWorldRowd = H_mn8xat + vMatObjectToWorldRow9;
	vec4 vAnimationControlWord = textureLod(g_tTransformTexture, mainIn.member8, C_0d0);
	vec4 H_6i8dt01 = vec4(mainIn.member1.x, mainIn.member1.y, mainIn.member1.z, C_0d0);
	float dotres = dot(H_6i8dt01, vMatObjectToWorldRowb);
	float dotres1 = dot(H_6i8dt01, vMatObjectToWorldRowc);
	float dotres2 = dot(H_6i8dt01, vMatObjectToWorldRowd);
	vec3 H_3cij4j1 = vec3(dotres, dotres1, dotres2);
	vec3 vNormalWs = normalize(H_3cij4j1);
	vec3 H_0x1xqo1 = mainIn.member0 * vAnimationControlWord.zzz;
	vec4 H_beo7ex = vec4(H_0x1xqo1.x, H_0x1xqo1.y, H_0x1xqo1.z, C_1d0);
	float dotres3 = dot(H_beo7ex, vMatObjectToWorldRowb);
	float dotres4 = dot(H_beo7ex, vMatObjectToWorldRowc);
	float dotres5 = dot(H_beo7ex, vMatObjectToWorldRowd);
	vec3 H_25kyhb = vec3(dotres3, dotres4, dotres5);
	vec3 H_uktff21 = H_25kyhb - g_vCameraPositionWs;
	float H_tuff051 = dot(g_vCameraDirWs, H_uktff21);
	vec4 H_l3q6cr1 = vec4(dotres3, dotres4, dotres5, H_tuff051);
	vec4 H_i8jodt1 = vec4(vNormalWs.x, vNormalWs.y, vNormalWs.z, C_0d0);
	vec4 H_ywfxcw = vec4(dotres3, dotres4, dotres5, C_1d0);
	vec4 H_attytl1 = H_ywfxcw + g_vWorldToCameraOffset;
	float dotres6 = dot(H_attytl1, g_matWorldToProjection[0]);
	float dotres7 = dot(H_attytl1, g_matWorldToProjection[1]);
	float dotres8 = dot(H_attytl1, g_matWorldToProjection[2]);
	float dotres9 = dot(H_attytl1, g_matWorldToProjection[3]);
	float param4 = g_flTexCoordRotate0 * C_0d0174533;
	vec2 H_6yh3dc1 = vec2(g_flTexCoordScale0);
	vec2 vAdjust = mainIn.member2 + C_vec2pa0d5p;
	float H_mwr5m3 = cos(param4);
	float H_jsp6w51 = sin(param4);
	float H_sa307h1 = H_mwr5m3 * vAdjust.x;
	float H_qfqblu = H_jsp6w51 * vAdjust.y;
	float H_uhmpaq = H_sa307h1 - H_qfqblu;
	float H_p4cbvu = H_jsp6w51 * vAdjust.x;
	float H_rzozgh1 = H_mwr5m3 * vAdjust.y;
	float H_vl7nyp1 = H_p4cbvu + H_rzozgh1;
	vec2 H_pzs58z = vec2(H_uhmpaq, H_vl7nyp1);
	vec2 H_n8c4tj = H_6yh3dc1 * H_pzs58z;
	vec2 H_xezfms = H_n8c4tj + C_vec2p0d5p;
	vec2 H_ts6vqy1 = vec2(g_flTime);
	vec2 H_plg0l4 = H_ts6vqy1 * g_vTexCoordScroll0;
	vec2 H_kph9cb1 = H_plg0l4 + H_xezfms;
	vec2 H_sbcez = H_kph9cb1 + g_vTexCoordOffset0;
	float param5 = C_0d0174533 * g_flTexCoordRotate1;
	vec2 H_z234mk = vec2(g_flTexCoordScale1);
	float H_j0fawa1 = cos(param5);
	float H_i9kvvf1 = sin(param5);
	float H_ve5kcf1 = H_j0fawa1 * vAdjust.x;
	float H_wxa78a1 = H_i9kvvf1 * vAdjust.y;
	float H_04r3jz = H_ve5kcf1 - H_wxa78a1;
	float H_vmw6ia1 = H_i9kvvf1 * vAdjust.x;
	float H_wpjk2f1 = H_j0fawa1 * vAdjust.y;
	float H_ge18n4 = H_vmw6ia1 + H_wpjk2f1;
	vec2 H_2piom = vec2(H_04r3jz, H_ge18n4);
	vec2 H_bctd48 = H_2piom * H_z234mk;
	vec2 H_l66x2y = C_vec2p0d5p + H_bctd48;
	vec2 H_qwu0b4 = H_ts6vqy1 * g_vTexCoordScroll1;
	vec2 H_yb9ks31 = H_l66x2y + H_qwu0b4;
	vec2 H_vqtedw = H_yb9ks31 + g_vTexCoordOffset1;
	float param6 = C_0d0174533 * g_flTexCoordRotate2;
	vec2 H_86eb9b1 = vec2(g_flTexCoordScale2);
	float H_sby0eb = cos(param6);
	float H_hxbpp9 = sin(param6);
	float H_a8v13g = H_sby0eb * vAdjust.x;
	float H_3pfwuv = H_hxbpp9 * vAdjust.y;
	float H_1e5uc91 = H_a8v13g - H_3pfwuv;
	float H_40uwkv = H_hxbpp9 * vAdjust.x;
	float H_9xg1dg = H_sby0eb * vAdjust.y;
	float H_5jn71r1 = H_40uwkv + H_9xg1dg;
	vec2 H_1wmood = vec2(H_1e5uc91, H_5jn71r1);
	vec2 H_33f647 = H_1wmood * H_86eb9b1;
	vec2 H_do1aak = C_vec2p0d5p + H_33f647;
	vec2 H_r79114 = H_ts6vqy1 * g_vTexCoordScroll2;
	vec2 H_v11xrd1 = H_do1aak + H_r79114;
	vec2 H_1wk8051 = H_v11xrd1 + g_vTexCoordOffset2;
	float param7 = C_0d0174533 * g_flTexCoordRotate3;
	vec2 H_17rqgn1 = vec2(g_flTexCoordScale3);
	float H_h51tpe = cos(param7);
	float H_s39xd6 = sin(param7);
	float H_sr0ps9 = H_h51tpe * vAdjust.x;
	float H_bf348r1 = H_s39xd6 * vAdjust.y;
	float H_pzlxtq = H_sr0ps9 - H_bf348r1;
	float H_cqh4yq1 = H_s39xd6 * vAdjust.x;
	float H_rgmo2a = H_h51tpe * vAdjust.y;
	float H_npcip11 = H_cqh4yq1 + H_rgmo2a;
	vec2 H_l2rbw31 = vec2(H_pzlxtq, H_npcip11);
	vec2 H_x243p7 = H_17rqgn1 * H_l2rbw31;
	vec2 H_8nixy2 = C_vec2p0d5p + H_x243p7;
	vec2 H_sin1r3 = H_ts6vqy1 * g_vTexCoordScroll3;
	vec2 H_cekfgo1 = H_8nixy2 + H_sin1r3;
	vec2 H_73ygwk = H_cekfgo1 + g_vTexCoordOffset3;
	float H_prunbx = g_flScrollWaveOffsetSeconds0 + g_flTime;
	float flCycle = H_prunbx / g_flScrollWaveSecondsPerCycle0;
	float flCycle1 = floor(flCycle);
	float param8 = C_1d0 + g_flScrollWaveCycleSkip0;
	float H_04v7sk1 = mod(flCycle1, param8);
	float flCycle2 = step(H_04v7sk1, C_0d9);
	float flCycle3 = flCycle * flCycle2;
	float H_zfojao = fract(flCycle3);
	float flCycle4 = pow(H_zfojao, C_0d9);
	float H_m3v1qw1 = flCycle4 * C_3d14159;
	float H_isb1ij = C_2d0 * H_m3v1qw1;
	float H_270i4u = cos(H_isb1ij);
	float H_usy4r4 = H_270i4u + C_a1d0;
	vec2 H_or4xo7 = vec2(H_usy4r4);
	vec2 H_287mpe = H_or4xo7 * g_vTexCoordScroll0;
	float H_m4cqjr1 = g_flScrollWaveHeight0 * g_flScrollWaveSecondsPerCycle0;
	vec2 H_l3t3371 = vec2(H_m4cqjr1);
	vec2 H_xk48ac1 = H_287mpe * H_l3t3371;
	vec2 H_38lo78 = H_sbcez + H_xk48ac1;
	float H_ony84d = g_flScrollWaveOffsetSeconds1 + g_flTime;
	float flCycle5 = H_ony84d / g_flScrollWaveSecondsPerCycle1;
	float flCycle6 = floor(flCycle5);
	float param9 = C_1d0 + g_flScrollWaveCycleSkip1;
	float H_uklgqe = mod(flCycle6, param9);
	float flCycle7 = step(H_uklgqe, C_0d9);
	float flCycle8 = flCycle5 * flCycle7;
	float H_0jzspw1 = fract(flCycle8);
	float flCycle9 = pow(H_0jzspw1, C_0d9);
	float H_nwwt191 = C_3d14159 * flCycle9;
	float H_rw11xj1 = C_2d0 * H_nwwt191;
	float H_wn0i0o = cos(H_rw11xj1);
	float H_ee9sks1 = C_a1d0 + H_wn0i0o;
	vec2 H_cp3py4 = vec2(H_ee9sks1);
	vec2 H_nooivy1 = H_cp3py4 * g_vTexCoordScroll1;
	float H_wg6k5d = g_flScrollWaveHeight1 * g_flScrollWaveSecondsPerCycle1;
	vec2 H_p3k6v21 = vec2(H_wg6k5d);
	vec2 H_vgytmy1 = H_nooivy1 * H_p3k6v21;
	vec2 H_4hxas7 = H_vgytmy1 + H_vqtedw;
	vec4 H_84ffgb1 = vec4(H_38lo78.x, H_38lo78.y, H_4hxas7.x, H_4hxas7.y);
	float H_ra4qg7 = g_flScrollWaveOffsetSeconds2 + g_flTime;
	float flCyclea = H_ra4qg7 / g_flScrollWaveSecondsPerCycle2;
	float flCycleb = floor(flCyclea);
	float parama = C_1d0 + g_flScrollWaveCycleSkip2;
	float H_e9m79b = mod(flCycleb, parama);
	float flCyclec = step(H_e9m79b, C_0d9);
	float flCycled = flCyclea * flCyclec;
	float H_0sdtsl1 = fract(flCycled);
	float flCyclee = pow(H_0sdtsl1, C_0d9);
	float H_r2w2xr1 = C_3d14159 * flCyclee;
	float H_8c0l5y1 = C_2d0 * H_r2w2xr1;
	float H_g72j0p = cos(H_8c0l5y1);
	float H_r9nuet1 = C_a1d0 + H_g72j0p;
	vec2 H_136n51 = vec2(H_r9nuet1);
	vec2 H_b2zm9k = H_136n51 * g_vTexCoordScroll2;
	float H_yoo1dw1 = g_flScrollWaveHeight2 * g_flScrollWaveSecondsPerCycle2;
	vec2 H_1l17od = vec2(H_yoo1dw1);
	vec2 H_gpi98 = H_1l17od * H_b2zm9k;
	vec2 H_meorgq = H_1wk8051 + H_gpi98;
	float H_m70ngs = g_flScrollWaveOffsetSeconds3 + g_flTime;
	float flCyclef = H_m70ngs / g_flScrollWaveSecondsPerCycle3;
	float flCycleg = floor(flCyclef);
	float paramb = C_1d0 + g_flScrollWaveCycleSkip3;
	float H_ggsqla = mod(flCycleg, paramb);
	float flCycleh = step(H_ggsqla, C_0d9);
	float flCyclei = flCyclef * flCycleh;
	float H_tn1xaw = fract(flCyclei);
	float flCyclej = pow(H_tn1xaw, C_0d9);
	float H_e3qxiv1 = C_3d14159 * flCyclej;
	float H_zapcys = C_2d0 * H_e3qxiv1;
	float H_oo946l1 = cos(H_zapcys);
	float H_7njog51 = C_a1d0 + H_oo946l1;
	vec2 H_2pd0dz = vec2(H_7njog51);
	vec2 H_6g9on9 = H_2pd0dz * g_vTexCoordScroll3;
	float H_wko64z = g_flScrollWaveHeight3 * g_flScrollWaveSecondsPerCycle3;
	vec2 H_u782o = vec2(H_wko64z);
	vec2 H_kj2mxt = H_6g9on9 * H_u782o;
	vec2 H_e1vvai1 = H_73ygwk + H_kj2mxt;
	vec4 H_gxpegf1 = vec4(H_meorgq.x, H_meorgq.y, H_e1vvai1.x, H_e1vvai1.y);
	vec4 vRet = textureLodOffset(g_tTransformTexture, mainIn.member8, C_0d0, C_ivec2p3ca0p);
	vec3 H_nxu4q01 = mainIn.member4 * C_vec3p0d5p;
	vec3 H_953cgn = max(H_nxu4q01, C_0d0001);
	vec3 vLinearSegment = mainIn.member5 / C_vec3p12d92p;
	vec3 H_po1zof = mainIn.member5 / C_vec3p1d055p;
	vec3 H_c4xiez = H_po1zof + C_bw96as;
	vec3 vExpSegment = pow(H_c4xiez, C_vec3p2d4p);
	bool H_dl0t981 = mainIn.member5.x > C_0d04045;
	float select = H_dl0t981 ? vExpSegment.x : vLinearSegment.x;
	bool H_it9lyu1 = mainIn.member5.y > C_0d04045;
	float select1 = H_it9lyu1 ? vExpSegment.y : vLinearSegment.y;
	bool H_vsrgyl1 = mainIn.member5.z > C_0d04045;
	float select2 = H_vsrgyl1 ? vExpSegment.z : vLinearSegment.z;
	vec3 H_g5tqsp = vec3(select, select1, select2);
	vec3 H_euxrm51 = H_g5tqsp * vRet.xyz;
	vec4 H_498olf1 = vRet;
	H_498olf1.xyz = H_euxrm51.xyz;
	vec4 H_simyxt = vec4(mainIn.member3.x, mainIn.member3.y, mainIn.member3.z, C_0d0);
	vec4 H_bhujso = vec4(H_953cgn.x, H_953cgn.y, H_953cgn.z, C_0d0);
	PS_INPUT_gl_vPositionWs_flLinearDepth = H_l3q6cr1;
	PS_INPUT_gl_vNormalWs_flSpecularAmount = H_i8jodt1;
	PS_INPUT_gl_vVertexColor = H_498olf1;
	PS_INPUT_gl_vColorBlendValues_BlendY = H_simyxt;
	PS_INPUT_gl_vAlphaBlendValues_BlendZ = H_bhujso;
	PS_INPUT_gl_vBaseTexCoord0_vBaseTexCoord1 = H_84ffgb1;
	PS_INPUT_gl_vBaseTexCoord2_vBaseTexCoord3 = H_gxpegf1;
	float H_q212zt1 = C_0d0 - dotres7;
	float H_8665611 = C_2d0 * dotres8;
	float H_wyecv81 = H_8665611 - dotres9;
	vec4 H_dbr10s1 = vec4(dotres6, H_q212zt1, H_wyecv81, dotres9);
	gl_Position = H_dbr10s1;
}