void __fastcall Hooks::DrawModelExecute(void* ecx, void* edx, IMatRenderContext* context, const DrawModelState_t& state, const ModelRenderInfo_t& info, matrix3x4_t* matrix)
{
    static auto oDrawModelExecute = g_Hooks.pModelHook->GetOriginal<DrawModelExecute_t>(vtable_indexes::dme);
    if (!Globals::LocalPlayer)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }
    C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(info.index);
    if (!pPlayerEntity)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }
    //ебучий ноль
    if (pPlayerEntity != nullptr)
    {
        ClientClass* EntityClass = pPlayerEntity->GetClientClass();
        if (!pPlayerEntity || !EntityClass)
        {
            oDrawModelExecute(ecx, context, state, info, matrix);
            g_pModelRender->ForcedMaterialOverride(NULL);
            return;
        }
        //Ебашим здесь, потому что все проверки выше прошли
        static IMaterial* mat_overlay;
        static bool once{ false };
        if (!once)
        {
            std::ofstream("csgo/materials/glowOverlay.vmt") << R"#("VertexLitGeneric" {
            "$additive" "1"
            "$envmap" "models/effects/cube_white"
            "$envmaptint" "[0 0.1 0.2]"
            "$envmapfresnel" "1"
            "$envmapfresnelminmaxexp" "[0 1 2]"
            "$alpha" "0.8"
            "$ignorez" "1"
        })#";
            mat_overlay = g_pMaterialSys->FindMaterial("glowOverlay", nullptr);
            once = true;
        }
        //не юзать флаг IGNOREZ иначе пизда - будет крашить (поэтому заюзал его в создании материала)
        if (mat_overlay != nullptr)
        {
            //Модель игрока
            if (EntityClass->ClassID == (int)EClassIds::CCSPlayer)
            {
                //Враги
                if (Globals::LocalPlayer->GetTeam() != pPlayerEntity->GetTeam())
                {
                    g_pModelRender->ForcedMaterialOverride(mat_overlay);
                    oDrawModelExecute(ecx, context, state, info, matrix);
                }
                //Игрок
                if (pPlayerEntity == Globals::LocalPlayer)
                {
                    g_pModelRender->ForcedMaterialOverride(mat_overlay);
                    oDrawModelExecute(ecx, context, state, info, matrix);
                }
            }
            //оружие в руках
            if (EntityClass->ClassID == (int)EClassIds::CPredictedViewModel)
            {
                g_pModelRender->ForcedMaterialOverride(mat_overlay);
                oDrawModelExecute(ecx, context, state, info, matrix);
            }
            //трупы игроков, хуй знает почему не всегда работает
            if (pPlayerEntity && EntityClass->ClassID == (int)EClassIds::CCSRagdoll)
            {
                g_pModelRender->ForcedMaterialOverride(mat_overlay);
            }
        }
    }
    oDrawModelExecute(ecx, context, state, info, matrix);
    g_pModelRender->ForcedMaterialOverride(NULL);
}