-
Автор темы
- #1
reverse is not complete, but any idiot can complete reverse
C++:
void CResolver::Do(IBasePlayer* a2)
{
Vector* v2; // eax
struct CAnimationLayer* v4; // eax
double v5; // st7
double v6; // st7
double v7; // st7
double v8; // st7
double v9; // st7
double v10; // st7
double v11; // st7
float v12; // [esp+Ch] [ebp-314h]
float v13; // [esp+Ch] [ebp-314h]
int v14; // [esp+1Ch] [ebp-304h]
float v15; // [esp+24h] [ebp-2FCh]
float v16; // [esp+28h] [ebp-2F8h]
int v17; // [esp+2Ch] [ebp-2F4h]
unsigned __int8(__thiscall * v18)(IEngineClient*, int, char*); // [esp+30h] [ebp-2F0h]
char v19[12]; // [esp+34h] [ebp-2ECh] BYREF
char v20[344]; // [esp+40h] [ebp-2E0h] BYREF
int v21; // [esp+198h] [ebp-188h]
float v22; // [esp+19Ch] [ebp-184h]
float v23; // [esp+1A0h] [ebp-180h]
struct CCSGOPlayerAnimState* v24; // [esp+1A4h] [ebp-17Ch]
float v25; // [esp+1A8h] [ebp-178h]
float v26; // [esp+1ACh] [ebp-174h]
float v27; // [esp+1B0h] [ebp-170h]
float v28; // [esp+1B4h] [ebp-16Ch]
char v29[348]; // [esp+1BCh] [ebp-164h] BYREF
CResolver* v30; // [esp+318h] [ebp-8h]
int v31[64];
int v32[64];
v18 = *(unsigned __int8(__thiscall**)(IEngineClient*, int, char*))(*(_DWORD*)dword_1028E9A4 + 32);
v17 = (*(int(__thiscall**)(char*))(*((_DWORD*)a2 + 2) + 40))((char*)a2 + 8);
if (v18(dword_1028E9A4, v17, v29) && !v29[316])
{
auto v28 = max_delta(a2);
auto v27 = GetAngle(a2);
auto v2 = a2->GetVelocity().Length2D();
auto v16 = v2 <= 1.1 ? v28 : v28 / 2.0;
v25 = v16;
auto v24 = a2->GetPlayerAnimState();
auto v23 = a2->GetDuckAmount();
auto v3 = a2->GetEyeAngles();
auto v22 = Math::NormalizeYaw(v3.y - v12);
auto v21 = a2->GetIndex();
hurt_resolver(a2);
DetectSide(a2);
if (v24)
{
if ((csgo->local->isAlive() || (a2->GetFlags() & 1) == 0)
&& (a2->GetChokedPackets() > 0)
&& !(a2->GetPlayerInfo().fakeplayer)) // TODO:: there was "a2->GetPlayerInfo().fakeplayer" xDDD
{
if (v31[v21] == v32[v21])
{
if (*((_DWORD*)csgo + v21 + 11227) % 2)
{
if (*((_DWORD*)csgo + v21 + 11227) % 2 == 1)
{
ResolverMode[v21] = "Bruteforce missed";
if (v21 + 256 == 1)
v10 = Math::NormalizeYaw(v27 - v25);
else
v10 = Math::NormalizeYaw(v27 + v25);
*((float*)v24 + 32) = v10;
}
}
else
{
ResolverMode[v21] = ("Bruteforce missed");
if (v21 + 256 == -1)
v9 = Math::NormalizeYaw(v27 + v25);
else
v9 = Math::NormalizeYaw(v27 - v25);
*((float*)v24 + 32) = v9;
}
}
else if (v26 >= 1.1 || (v15 = fabs(v23 - v23), v15 > 0.0)) // stand checker
{
if (a2->GetAnimOverlay(3)->m_flWeight == 0.0f && a2->GetAnimOverlay(3)->m_flWeight == 0.0f)
{
v6 = Math::NormalizeYaw(((float)((float)*((int*)v30 + v21 + 128) * v28) + v27), v13);
*((float*)v24 + 32) = v6;
*((_DWORD*)v30 + v21 + 256) = *((_DWORD*)v30 + v21 + 128);
}
else if (*((_DWORD*)csgo + v21 + 11227) % 2)
{
if (*((_DWORD*)csgo + v21 + 11227) % 2 == 1)
{
ResolverMode[v21] =("Bruteforce first");
v8 = Math::NormalizeYaw(v27 + v25);
*((float*)v24 + 32) = v8;
}
}
else
{
ResolverMode[v21] = ("Bruteforce first");
v7 = Math::NormalizeYaw(v27 - v25);
*((float*)v24 + 32) = v7;
}
}
else if (*((float*)a2->GetAnimOverlay(3) + 8) == 0.0
&& *((float*)a2->GetAnimOverlay(3) + 8) == 0.0)
{
v4 = a2->GetAnimOverlay(3);
if (a2->GetSequenceActivity((v4->m_nSequence + 6) == 979 && v22 > 35.0))
{
if ((float)(2 * (v28 <= 0.0) - 1) <= 0.0)
v14 = 1;
else
v14 = -1;
*((_DWORD*)v30 + v21 + 320) = v14;
v5 = Math::NormalizeYaw(COERCE_MATH_((float)((float)*((int*)v30 + v21 + 320) * v25) + v27), v13);
*((float*)v24 + 32) = v5;
*((_DWORD*)v30 + v21 + 256) = *((_DWORD*)v30 + v21 + 320);
}
}
v11 = Math::NormalizeYaw(v24 + 32);
*((float*)v24 + 32) = v11;
}
}
}
}