
// Vk3DVision (http://3dsurroundgaming.com/) - Original Shader
#version 450
#extension GL_EXT_nonuniform_qualifier : require
#extension GL_ARB_shader_draw_parameters : require
#extension GL_ARB_shader_ballot : require

out float gl_ClipDistance[1];

invariant gl_Position;

struct S_MATRICES
{
    mat4 _mModelViewProj;
    mat4 _mModelViewProjPrevious;
    mat4 _mModelView;
    mat4 _mInvModelView;
};

struct unaligned_float3
{
    float x;
    float y;
    float z;
};

struct S_TBN
{
    int _iNormal;
    int _iTangent;
};

struct S_INDICES
{
    uint _uiObjectIndex;
    uint _uiMaterialIndex;
    uint _uiMaterialInstanceIndex;
    uint _uiLastFrameMaterialIndex;
    uint _uiLastFrameMaterialInstanceIndex;
    uint _uiPositionsBufferIndex;
    uint _uiPrevPositionsBufferIndex;
    uint _uiNormalsBufferIndex;
    uint _uiPositionOffset;
    uint _uiPrevPositionOffset;
    uint _uiNormalOffset;
    uint _uiMatricesIndex;
};

struct S_MAIN_DEFAULT
{
    S_INDICES _Indices;
};

struct S_MAIN_DEFAULT_ARRAY
{
    S_MAIN_DEFAULT _aMain[32];
};

struct S_SPEEDTREE_MESH_OBJECT
{
    mat4 _mModel;
    mat4 _mModelLast;
    mat4 _mInvModel;
    mat4 _mInvModelLast;
    vec4 _vDiversityOffset;
    uint _uiSceneZoneIndex;
    uint _uiNeighborSceneZoneIndex;
    uint _uiDisplayFlags;
    uint _uiPackedLocalExposureCompensation;
    vec4 _vPortalDirAndDistance;
    int _iPickingID[2];
    uint _uiPadding[2];
    vec4 _vTreeRotation;
    vec4 _vWindGlobal;
    vec4 _vWindVector;
    vec4 _vWindBranchAdherences;
    vec4 _vWindBranch;
    vec4 _vWindBranchTwitch;
    vec4 _vWindBranchWhipTurbulences;
    vec4 _vWindFrondRipple;
    vec4 _vWindLeaf1Ripple;
    vec4 _vWindLeaf1Tumble;
    vec4 _vWindLeaf1Twitch;
    vec4 _vWindLeaf2Ripple;
    vec4 _vWindLeaf2Tumble;
    vec4 _vWindLeaf2Twitch;
    vec4 _vAnchorAllTime;
    vec4 _vRollingBranch;
    vec4 _vRollingLeafOffset;
    vec4 _vRollingNoise;
    uint _uiLOD;
    uint _uiSmooth;
    float _fLocalExposureCompensation;
    float _fLocalExposureCompensationEV100;
    vec4 _vWindGlobalLast;
    vec4 _vWindBranchLast;
    vec4 _vWindFrondRippleLast;
    vec4 _vWindLeaf1RippleLast;
    vec4 _vWindLeaf1TumbleLast;
    vec4 _vWindLeaf1TwitchLast;
    vec4 _vWindLeaf2RippleLast;
    vec4 _vWindLeaf2TumbleLast;
    vec4 _vAnchorAllTimeLast;
};

struct S_PASS_MATRICES
{
    mat4 _mViewJitteredProj;
    mat4 _mViewProj;
    mat4 _mView;
    mat4 _mInvView;
    mat4 _mJitteredProj;
};

struct S_EYE_DATA
{
    S_PASS_MATRICES _mCurrentFrameMatrices[2];
    S_PASS_MATRICES _mPreviousFrameMatrices[2];
    mat4 _mJitteredProjection[2];
    mat4 _mNoJitterProjection[2];
    mat4 _mInvViewJitteredProj[2];
    vec4 _vWorldSpaceCameraVector[2];
    vec4 _vWorldSpaceCameraPosition[2];
    vec4 _vFrameBufferScale;
    vec4 _vFrameBufferViewportSize;
    vec4 _vFrameBufferOneOnViewportSize;
    vec4 _vViewportSize;
    vec4 _vFogSubCrop;
    uint _uiAlignment0;
    uint _uiAlignment1;
    float _vCameraJitterDeltaX;
    float _vCameraJitterDeltaY;
    vec4 _vfRcpFVolumetricFogDepthTileSize;
};

struct S_CASCADED_SHADOW
{
    mat4 _mCascadeMatrix[2][8];
    mat4 _mViewSpaceToStaticShadowMapSpace[2];
    vec4 _vfCascadeShadowAttenuation;
    vec4 _vfShadowCascadeTextureTexelSize;
    vec4 _vfStaticShadowBlurRadius;
    vec4 _vfCascadeLinearZProjFactors[8];
    vec4 _vfCascadeParams[8];
};

struct S_CLUSTER_LIGHT_SETUP
{
    S_CASCADED_SHADOW _CascadedShadow;
    vec4 _vfSkinUVParamsAndNormalBias;
    vec4 _vfShadowTextureTexelSize;
    vec4 _vfDummy_SkinFresnelF0AndF90;
    uint _uiCascadedUsed;
    float _fSSSWidth;
    float _fOffsetBias;
    float _fDummy;
};

struct S_CLUSTER_INFO
{
    mat4 _mViewToClusterView[2];
    mat4 _mClusterProjMatrix;
    mat4 _mClusterInvProjMatrix;
    vec4 _vfLeftEyeToCombinedEyeVsDeltaXZ;
    uint _uiFinestMipWidth;
    uint _uiFinestMipHeight;
    uint _uiFinestMipDepth;
    uint _uiFinestMipWidthHeight;
    float _fZSliceGeomFactor;
    float _fRcpLogZSliceGeomFactor;
    float _fDummy0;
    float _fDummy1;
    float _fNearP;
    float _fInvNearP;
    float _fFarP;
    float _fClusterCoincidentWithCamera;
};

struct S_PASS
{
    S_EYE_DATA _EyeData;
    vec4 _avFrustumCorners[4];
    vec4 _vTime;
    vec4 _cFogColor;
    vec4 _vFogSetup;
    vec4 _cSunColor;
    vec4 _vSunDir;
    vec4 _vProjectionSetup;
    vec4 _vProjectionCoeff;
    vec4 _vOutputColor;
    vec4 _vfVsClippingPlane[2];
    S_CLUSTER_LIGHT_SETUP _LightSetup;
    S_CLUSTER_INFO _ClusterInfo;
    float _fIBLIntensity;
    float _fGIIntensity;
    float _fAmbiantOcclusionDirectIntensity;
    float _fAmbiantOcclusionIndirectIntensity;
    float _fNormalSign;
    int _iFogType;
    float _fSelfOcclusionDebugRatio;
    float _fEmissive;
    int _iEnableSkinSSSSS;
    int _iUseHairOpaquePrepass;
    float _fLocalSceneExposure;
    uint _uiDebugMode;
    uint _sFlags;
    float _fTAADropsSharpness;
    uint _uNeoScaleX;
    uint _uNeoScaleY;
    uint _uiDirectOverdrawFilter;
    float _fCoderTest0;
    float _fCoderTest1;
    float _fCoderTest2;
    uint _uiBakeOutput;
    float _fDefaultAmbientIntensity;
    float _fDefaultLightingIntensity;
    uint _uiOutputColor;
    float _fAARotation;
    float _fClampDirectSpecular;
    float _fNearPlane;
    float _fFarPlane;
    float _fNDFFilteringScreenSpaceVariance;
    float _fNDFFilteringThreshold;
    float _fNDFFilteringScreenSpaceVariance_EyeShader;
    float _fNDFFilteringThreshold_EyeShader;
    float _fSurfaceGradientTextureFiltering;
    float _fZero;
    uint _uDepthClamp;
    uint _uiLightDebugMode;
    vec4 _vfFragCoordToDepthTexFactor;
    vec4 _vfFragCoordToDepthTexFactor_HalfRes;
    uint _uHdr;
    uint _uiDrawMayaSwatch;
    float _fEyeRoughnessBias;
    float _fDummy1;
};

layout(set = 1, binding = 24, std430) readonly buffer stc_g_rbMatrices_Layout
{
    S_MATRICES g_rbMatrices[];
} _426;

layout(set = 1, binding = 39, std430) readonly buffer g_rbVertices_Layout
{
    unaligned_float3 g_rbVertices[];
} g_rbVertices_Buffer[];

layout(set = 1, binding = 40, std430) readonly buffer g_rbTBNs_Layout
{
    S_TBN g_rbTBNs[];
} g_rbTBNs_Buffer[];

layout(set = 0, binding = 52, std140) uniform dyn_CONSTANT_BUFFER_BLOCK_CB_S_MAIN_ARRAY_BINDING
{
    S_MAIN_DEFAULT_ARRAY g_cbMainArray;
} _3339;

layout(set = 1, binding = 33, std430) readonly buffer g_rbObjects_Layout
{
    S_SPEEDTREE_MESH_OBJECT g_rbObjects[];
} g_rbObjects_Buffer[];

layout(set = 2, binding = 53, std140) uniform dyn_CONSTANT_BUFFER_BLOCK_CB_S_PASS_BINDING
{
    S_PASS g_cbPass;
} _3585;

layout(location = 8) in vec2 in_uv0;
layout(location = 10) in vec4 in_lodPosition;
layout(location = 11) in vec4 in_windBranchData;
layout(location = 12) in vec4 in_windExtraDataFlag;
layout(location = 13) in vec4 in_LeafAnchorHint;
layout(location = 8) out vec2 interp_uv0;
layout(location = 21) out vec3 interp_vfVsPosition;
layout(location = 14) out vec3 interp_vfVsTangent;
layout(location = 15) out vec3 interp_vfVsBinormal;
layout(location = 13) out vec3 interp_vfVsNormal;
layout(location = 23) out float interp_instanceID;

float _12321;

void main()
{
    int _3329 = gl_InstanceIndex + gl_DrawIDARB;
    int _3330 = readFirstInvocationARB(_3329);
    uint _5223 = uint(gl_VertexIndex);
    uint _5226 = _5223 + _3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionOffset;
    vec4 _5239 = vec4(g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].x, g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].y, g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].z, 1.0);
    uint _5246 = _5223 + _3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalOffset;
    int _5275 = g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iNormal & 1023;
    int _5278 = (g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iNormal >> 10) & 1023;
    int _5281 = (g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iNormal >> 20) & 1023;
    int _12322;
    if (_5275 > 512)
    {
        _12322 = _5275 | (-1024);
    }
    else
    {
        _12322 = _5275;
    }
    int _12324;
    if (_5278 > 512)
    {
        _12324 = _5278 | (-1024);
    }
    else
    {
        _12324 = _5278;
    }
    int _12326;
    if (_5281 > 512)
    {
        _12326 = _5281 | (-1024);
    }
    else
    {
        _12326 = _5281;
    }
    vec3 _5334 = vec3(float(_12322), float(_12324), float(_12326)) * vec3(0.001956947147846221923828125);
    int _5343 = g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iTangent & 1023;
    int _5346 = (g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iTangent >> 10) & 1023;
    int _5349 = (g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iTangent >> 20) & 1023;
    int _12328;
    if (_5343 > 512)
    {
        _12328 = _5343 | (-1024);
    }
    else
    {
        _12328 = _5343;
    }
    int _12330;
    if (_5346 > 512)
    {
        _12330 = _5346 | (-1024);
    }
    else
    {
        _12330 = _5346;
    }
    int _12332;
    if (_5349 > 512)
    {
        _12332 = _5349 | (-1024);
    }
    else
    {
        _12332 = _5349;
    }
    float _5407 = float((g_rbTBNs_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5246]._iTangent >> 30) != 0);
    vec3 _5424 = _5239.xyz;
    vec3 _5538 = vec4(vec3(float(_12328), float(_12330), float(_12332)) * vec3(0.001956947147846221923828125), _5407).xyz;
    float _5747 = (((100.0 * in_LeafAnchorHint.x) + in_LeafAnchorHint.y) + in_lodPosition.x) + in_lodPosition.y;
    bool _6022 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 6u;
    bool _6024 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 8u;
    bool _6027 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 9u;
    bool _6028 = (_6022 || _6024) || _6027;
    bool _6032 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 3u;
    bool _6041 = ((_6032 || _6022) || _6024) || _6027;
    bool _6044 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 2u;
    bool _6047 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 5u;
    bool _6050 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 7u;
    float _12343;
    if (true && _6032)
    {
        vec2 _6376 = ((_5239.xy * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingBranch.x) - vec2(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.zw)) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.y;
        float _6398 = 5.0 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.x;
        vec2 _6424 = cos(_6376);
        float _6419 = abs(sin((((3.1415927410125732421875 * _6376.x) * _6398) + (_6376.y * _6398)) + (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.w * (_6424.x + _6424.y))));
        float _6386 = _6419 * _6419;
        float _6069 = mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingBranch.y, 1.0, _6386 * _6386);
        float _12344;
        if (_6028)
        {
            _12344 = _6069 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z;
        }
        else
        {
            _12344 = _6069;
        }
        _12343 = _12344;
    }
    else
    {
        _12343 = 0.0;
    }
    vec3 _12394;
    if (true && (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD != 0u))
    {
        float _6453 = max(g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].y - (0.25 / g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.z), 0.0) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.z;
        float _12345;
        if (_6453 != 0.0)
        {
            _12345 = pow(abs(_6453), g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.w);
        }
        else
        {
            _12345 = _6453;
        }
        vec4 _6529 = abs((fract(vec4(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.x, g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.x * 0.800000011920928955078125, 0.0, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
        vec4 _6520 = (((_6529 * _6529) * (vec4(3.0) - (_6529 * 2.0))) - vec4(0.5)) * 2.0;
        float _6473 = _6520.y;
        vec2 _6501 = _5239.xz + (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xz * (((g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.y * (_6520.x + (_6473 * _6473))) + ((g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchAdherences.x / g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.z) * _12343)) * _12345));
        _12394 = (normalize(vec3(_6501.x, _5239.y, _6501.y)) * length(_5424)) - _5424;
    }
    else
    {
        _12394 = vec3(0.0);
    }
    vec3 _12400;
    if (true && (((_6041 || _6044) || _6047) || _6050))
    {
        float _6787 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.x + in_windBranchData.y;
        vec4 _6943 = abs((fract(vec4(_6787, (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.x * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.y) + in_windBranchData.y, (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.y * 0.5) * _6787, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
        vec4 _6934 = (((_6943 * _6943) * (vec4(3.0) - (_6943 * 2.0))) - vec4(0.5)) * 2.0;
        float _6829 = _6934.y * _6934.z;
        bool _6832 = _6829 < 0.0;
        float _12363;
        if (_6832)
        {
            _12363 = -_6829;
        }
        else
        {
            _12363 = _6829;
        }
        float _12444 = _6832 ? (-1.0) : 1.0;
        float _6852 = 1.0 - g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.w;
        float _7098 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.z + in_windBranchData.w;
        vec4 _7254 = abs((fract(vec4(_7098, (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.z * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.w) + in_windBranchData.w, (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.w * 0.5) * _7098, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
        vec4 _7245 = (((_7254 * _7254) * (vec4(3.0) - (_7254 * 2.0))) - vec4(0.5)) * 2.0;
        float _7140 = _7245.y * _7245.z;
        bool _7143 = _7140 < 0.0;
        float _12379;
        if (_7143)
        {
            _12379 = -_7140;
        }
        else
        {
            _12379 = _7140;
        }
        float _12445 = _7143 ? (-1.0) : 1.0;
        _12400 = ((_5424 + (((((fract(vec3(in_windBranchData.y) * vec3(0.0625, -1.0, 16.0)).xzy * 2.0) - vec3(1.0)) * in_windBranchData.x) * (((mix(mix(_6829, _12444, _12363), _12444, _12363) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.x) * _6852) + (_6934.x * (1.0 - g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.x)))) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.y)) + (((((fract(vec3(in_windBranchData.w) * vec3(0.0625, -1.0, 16.0)).xzy * 2.0) - vec3(1.0)) * in_windBranchData.z) * (((mix(mix(_7140, _12445, _12379), _12445, _12379) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.z) * _6852) + (_7245.x * (1.0 - g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.z)))) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.w)) - _5424;
    }
    else
    {
        _12400 = vec3(0.0);
    }
    vec3 _12406;
    if (_6032 && true)
    {
        vec3 _6163 = _5239.xyz;
        vec3 _12407;
        if ((false || (in_LeafAnchorHint.w > 1.0)) && _6041)
        {
            vec3 _12408;
            if (in_windExtraDataFlag.w > 0.0)
            {
                float _8297 = in_windExtraDataFlag.x * mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Ripple.z, 1.0, (dot(-normalize(_5239.xz), g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xy) + 1.0) * 0.5);
                vec2 _8393 = (vec3(g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].x, -g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].z, _12321).xy - vec2(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.zw)) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.y;
                float _8415 = 5.0 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.x;
                vec2 _8441 = cos(_8393);
                float _8436 = abs(sin((((3.1415927410125732421875 * _8393.x) * _8415) + (_8393.y * _8415)) + (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.w * (_8441.x + _8441.y))));
                float _8403 = _8436 * _8436;
                float _8406 = _8403 * _8403;
                float _8313 = _6028 ? g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z : 1.0;
                vec4 _8501 = abs((fract(vec4(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Ripple.x + _5747, 0.0, 0.0, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
                vec3 _8530 = (fract(vec3(in_windExtraDataFlag.y) * vec3(0.0625, -1.0, 16.0)).xzy * 2.0) - vec3(1.0);
                float _8345 = _8297 * mix(1.0, mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.y, 1.0, _8406), _8313);
                vec3 _8565 = fract((_6163 + vec3(_5747)) * 30.299999237060546875);
                float _8573 = (_8565.x + _8565.y) + _8565.z;
                vec4 _8711 = abs((fract(vec4(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Tumble.x + _8573, (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Tumble.x * 0.75) - _8573, _12321, _12321) + vec4(0.5)) * 2.0) - vec4(1.0));
                vec4 _8702 = (((_8711 * _8711) * (vec4(3.0) - (_8711 * 2.0))) - vec4(0.5)) * 2.0;
                vec3 _8593 = (_5424 + ((((fract(vec3(in_windExtraDataFlag.z) * vec3(0.0625, -1.0, 16.0)).xzy * 2.0) - vec3(1.0)) * (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Ripple.y * ((((_8501 * _8501) * (vec4(3.0) - (_8501 * 2.0))) - vec4(0.5)) * 2.0).x)) * (_8297 * mix(1.0, mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.x, 1.0, _8406), _8313)))) - _6163;
                float _8597 = _8702.x;
                float _8599 = _8702.y;
                float _8608 = (_8345 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Tumble.z) * (_8597 + (_8599 * _8599));
                float _8725 = sin(_8608);
                float _8728 = cos(_8608);
                float _8732 = 1.0 - _8728;
                float _8735 = _8530.x;
                float _8736 = _8732 * _8735;
                float _8748 = _8530.y;
                float _8749 = _8736 * _8748;
                float _8753 = _8530.z;
                float _8754 = _8725 * _8753;
                float _8762 = _8736 * _8753;
                float _8767 = _8725 * _8748;
                float _8785 = _8732 * _8748;
                float _8798 = _8785 * _8753;
                float _8803 = _8725 * _8735;
                vec3 _8614 = cross(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xyz, _8530);
                float _8619 = clamp(dot(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xyz, _8530), -1.0, 1.0);
                vec3 _12252 = _8614;
                _12252.y = _8614.y + _8619;
                vec3 _8626 = normalize(_12252);
                float _8643 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Twitch.z + _8573;
                vec4 _8896 = abs((fract(vec4(_8643 + (_5747 * _5747), (0.87000000476837158203125 * _8643) + _5747, 0.0, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
                vec4 _8887 = (((_8896 * _8896) * (vec4(3.0) - (_8896 * 2.0))) - vec4(0.5)) * 2.0;
                float _8865 = _8887.y;
                float _8660 = _8345 * (((acos(_8619) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Tumble.w) + ((_8599 - (_8597 * _8597)) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Tumble.y)) + (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Twitch.x * pow(clamp((((_8887.x * _8865) * _8865) + 1.0) * 0.5, 0.0, 1.0), g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf2Twitch.y)));
                float _8910 = sin(_8660);
                float _8913 = cos(_8660);
                float _8917 = 1.0 - _8913;
                float _8920 = _8626.x;
                float _8921 = _8917 * _8920;
                float _8933 = _8626.y;
                float _8934 = _8921 * _8933;
                float _8938 = _8626.z;
                float _8939 = _8910 * _8938;
                float _8947 = _8921 * _8938;
                float _8952 = _8910 * _8933;
                float _8970 = _8917 * _8933;
                float _8983 = _8970 * _8938;
                float _8988 = _8910 * _8920;
                _12408 = ((((mat3(vec3((_8736 * _8735) + _8728, _8749 - _8754, _8762 + _8767), vec3(_8749 + _8754, (_8785 * _8748) + _8728, _8798 - _8803), vec3(_8762 - _8767, _8798 + _8803, ((_8732 * _8753) * _8753) + _8728)) * mat3(vec3((_8921 * _8920) + _8913, _8934 - _8939, _8947 + _8952), vec3(_8934 + _8939, (_8970 * _8933) + _8913, _8983 - _8988), vec3(_8947 - _8952, _8983 + _8988, ((_8917 * _8938) * _8938) + _8913))) * _8593) * length(_8593)) + _6163) - _5424;
            }
            else
            {
                float _7485 = in_windExtraDataFlag.x * mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Ripple.z, 1.0, (dot(-normalize(_5239.xz), g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xy) + 1.0) * 0.5);
                vec2 _7581 = (vec3(g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].x, -g_rbVertices_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiPositionsBufferIndex].g_rbVertices[_5226].z, _12321).xy - vec2(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.zw)) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.y;
                float _7603 = 5.0 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.x;
                vec2 _7629 = cos(_7581);
                float _7624 = abs(sin((((3.1415927410125732421875 * _7581.x) * _7603) + (_7581.y * _7603)) + (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingNoise.w * (_7629.x + _7629.y))));
                float _7591 = _7624 * _7624;
                float _7594 = _7591 * _7591;
                float _7501 = _6028 ? g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z : 1.0;
                vec4 _7689 = abs((fract(vec4(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Ripple.x + _5747, 0.0, 0.0, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
                vec3 _7718 = (fract(vec3(in_windExtraDataFlag.y) * vec3(0.0625, -1.0, 16.0)).xzy * 2.0) - vec3(1.0);
                float _7533 = _7485 * mix(1.0, mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.y, 1.0, _7594), _7501);
                vec3 _7753 = fract((_6163 + vec3(_5747)) * 30.299999237060546875);
                float _7761 = (_7753.x + _7753.y) + _7753.z;
                vec4 _7899 = abs((fract(vec4(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Tumble.x + _7761, (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Tumble.x * 0.75) - _7761, _12321, _12321) + vec4(0.5)) * 2.0) - vec4(1.0));
                vec4 _7890 = (((_7899 * _7899) * (vec4(3.0) - (_7899 * 2.0))) - vec4(0.5)) * 2.0;
                vec3 _7781 = (_5424 + ((((fract(vec3(in_windExtraDataFlag.z) * vec3(0.0625, -1.0, 16.0)).xzy * 2.0) - vec3(1.0)) * (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Ripple.y * ((((_7689 * _7689) * (vec4(3.0) - (_7689 * 2.0))) - vec4(0.5)) * 2.0).x)) * (_7485 * mix(1.0, mix(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vRollingLeafOffset.x, 1.0, _7594), _7501)))) - _6163;
                float _7785 = _7890.x;
                float _7787 = _7890.y;
                float _7796 = (_7533 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Tumble.z) * (_7785 + (_7787 * _7787));
                float _7913 = sin(_7796);
                float _7916 = cos(_7796);
                float _7920 = 1.0 - _7916;
                float _7923 = _7718.x;
                float _7924 = _7920 * _7923;
                float _7936 = _7718.y;
                float _7937 = _7924 * _7936;
                float _7941 = _7718.z;
                float _7942 = _7913 * _7941;
                float _7950 = _7924 * _7941;
                float _7955 = _7913 * _7936;
                float _7973 = _7920 * _7936;
                float _7986 = _7973 * _7941;
                float _7991 = _7913 * _7923;
                vec3 _7802 = cross(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xyz, _7718);
                float _7807 = clamp(dot(g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xyz, _7718), -1.0, 1.0);
                vec3 _12136 = _7802;
                _12136.y = _7802.y + _7807;
                vec3 _7814 = normalize(_12136);
                float _7831 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Twitch.z + _7761;
                vec4 _8084 = abs((fract(vec4(_7831 + (_5747 * _5747), (0.87000000476837158203125 * _7831) + _5747, 0.0, 0.0) + vec4(0.5)) * 2.0) - vec4(1.0));
                vec4 _8075 = (((_8084 * _8084) * (vec4(3.0) - (_8084 * 2.0))) - vec4(0.5)) * 2.0;
                float _8053 = _8075.y;
                float _7848 = _7533 * (((acos(_7807) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Tumble.w) + ((_7787 - (_7785 * _7785)) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Tumble.y)) + (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Twitch.x * pow(clamp((((_8075.x * _8053) * _8053) + 1.0) * 0.5, 0.0, 1.0), g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vWindLeaf1Twitch.y)));
                float _8098 = sin(_7848);
                float _8101 = cos(_7848);
                float _8105 = 1.0 - _8101;
                float _8108 = _7814.x;
                float _8109 = _8105 * _8108;
                float _8121 = _7814.y;
                float _8122 = _8109 * _8121;
                float _8126 = _7814.z;
                float _8127 = _8098 * _8126;
                float _8135 = _8109 * _8126;
                float _8140 = _8098 * _8121;
                float _8158 = _8105 * _8121;
                float _8171 = _8158 * _8126;
                float _8176 = _8098 * _8108;
                _12408 = ((((mat3(vec3((_7924 * _7923) + _7916, _7937 - _7942, _7950 + _7955), vec3(_7937 + _7942, (_7973 * _7936) + _7916, _7986 - _7991), vec3(_7950 - _7955, _7986 + _7991, ((_7920 * _7941) * _7941) + _7916)) * mat3(vec3((_8109 * _8108) + _8101, _8122 - _8127, _8135 + _8140), vec3(_8122 + _8127, (_8158 * _8121) + _8101, _8171 - _8176), vec3(_8135 - _8140, _8171 + _8176, ((_8105 * _8126) * _8126) + _8101))) * _7781) * length(_7781)) + _6163) - _5424;
            }
            _12407 = _12408;
        }
        else
        {
            _12407 = vec3(0.0);
        }
        _12406 = _12407;
    }
    else
    {
        _12406 = vec3(0.0);
    }
    vec3 _12412;
    if (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 4u)
    {
        _12412 = _5424 + (_12394 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z);
    }
    else
    {
        vec3 _12413;
        if (_6047)
        {
            _12413 = _5424 + ((_12394 + _12400) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z);
        }
        else
        {
            vec3 _12414;
            if (_6022)
            {
                _12414 = _5424 + (((_12394 + _12400) + _12406) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z);
            }
            else
            {
                vec3 _12415;
                if (_6050)
                {
                    _12415 = _5424 + (_12394 + (_12400 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z));
                }
                else
                {
                    vec3 _12416;
                    if (_6024)
                    {
                        _12416 = _5424 + (_12394 + ((_12400 + _12406) * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z));
                    }
                    else
                    {
                        vec3 _12417;
                        if (_6027)
                        {
                            _12417 = _5424 + ((_12394 + _12400) + (_12406 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z));
                        }
                        else
                        {
                            vec3 _12418;
                            if (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiLOD == 1u)
                            {
                                _12418 = _5424 + _12394;
                            }
                            else
                            {
                                vec3 _12419;
                                if (_6044)
                                {
                                    _12419 = _5424 + (_12394 + _12400);
                                }
                                else
                                {
                                    vec3 _12420;
                                    if (_6032)
                                    {
                                        _12420 = _5424 + ((_12394 + _12400) + _12406);
                                    }
                                    else
                                    {
                                        _12420 = _5424;
                                    }
                                    _12419 = _12420;
                                }
                                _12418 = _12419;
                            }
                            _12417 = _12418;
                        }
                        _12416 = _12417;
                    }
                    _12415 = _12416;
                }
                _12414 = _12415;
            }
            _12413 = _12414;
        }
        _12412 = _12413;
    }
    vec2 _12435;
    if (g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._uiSmooth > 0u)
    {
        _12435 = in_lodPosition.xy * mix(in_lodPosition.w, 1.0, g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z);
    }
    else
    {
        _12435 = in_lodPosition.xy;
    }
    float _5860 = -in_lodPosition.z;
    vec3 _5863 = vec3(_12435, _5860);
    vec3 _5866 = _5863 * g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.w;
    vec4 _5873 = vec4(_12412, 1.0);
    vec4 _5874 = g_rbObjects_Buffer[_3339.g_cbMainArray._aMain[_3330]._Indices._uiObjectIndex].g_rbObjects[0]._mModel * _5873;
    float _5879 = _5874.x;
    float _5880 = _5874.y;
    float _5881 = _5874.z;
    vec4 _5882 = vec4(_5879, _5880, _5881, 1.0);
    vec4 _5883 = _3585.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mView * _5882;
    vec3 _5884 = _5883.xyz;
    vec3 _5887 = _5884 + _5866;
    float _5891 = _5887.x;
    float _5892 = _5887.y;
    float _5893 = _5887.z;
    vec4 _5894 = vec4(_5891, _5892, _5893, 1.0);
    vec4 _5895 = _3585.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mInvView * _5894;
    float _5902 = _5895.x;
    float _5903 = _5895.y;
    float _5904 = _5895.z;
    vec4 _5905 = vec4(_5902, _5903, _5904, 1.0);
    vec4 _5906 = _3585.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mViewJitteredProj * _5905;
    vec4 _5927 = _3585.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mView * _5905;
    vec4 _12437;
    if (_3585.g_cbPass._uDepthClamp == 4294967295u)
    {
        float _9058 = _5906.w;
        vec4 _12438;
        if ((_5906.z / _9058) > 1.0)
        {
            vec4 _12439;
            if (_5927.z > _3585.g_cbPass._fNearPlane)
            {
                vec4 _12311 = _5906;
                _12311.z = _9058;
                _12439 = _12311;
            }
            else
            {
                _12439 = _5906;
            }
            _12438 = _12439;
        }
        else
        {
            _12438 = _5906;
        }
        _12437 = _12438;
    }
    else
    {
        _12437 = _5906;
    }
    interp_instanceID = float(_3329) + 0.5;
    float _5106 = _5927.x;
    float _5107 = _5927.y;
    float _5108 = _5927.z;
    vec4 _5109 = vec4(_5106, _5107, _5108, 1.0);
    float _5110 = dot(_3585.g_cbPass._vfVsClippingPlane[0], _5109);
    float _5111 = -_5110;
    gl_ClipDistance[0] = _5111;
    interp_uv0 = in_uv0;
    interp_vfVsPosition = _5927.xyz;
    interp_vfVsTangent = mat3(_426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[0].xyz, _426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[1].xyz, _426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[2].xyz) * _5538;
    interp_vfVsBinormal = mat3(_426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[0].xyz, _426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[1].xyz, _426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[2].xyz) * (cross(_5334, _5538) * ((_5407 != 0.0) ? (-1.0) : 1.0));
    interp_vfVsNormal = mat3(_426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[0].xyz, _426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[1].xyz, _426.g_rbMatrices[_3339.g_cbMainArray._aMain[_3330]._Indices._uiMatricesIndex]._mModelView[2].xyz) * _5334;
    gl_Position = _12437;
}

