Verify function characteristics to identify CBasePlayerPawn::CommitSuicide:
The function should look like:
Windows:
char __fastcall sub_180BE9210(float *a1, unsigned __int8 a2, char a3)
{
__int64 v4;
char result;
_BYTE v7[112];
__int64 v8;
int v9;
char v10;
v4 = a2;
result = (*(__int64 (__fastcall **)(float *))(*(_QWORD *)a1 + 1336LL))(a1);
if ( result )
{
sub_1808757E0(&v9, *(_DWORD *)(*((_QWORD *)a1 + 2) + 56LL));
result = sub_1801C22A0(a1 + 824, (float *)&v9);
if ( !result || a3 )
{
sub_1808757E0(&v9, *(_DWORD *)(*((_QWORD *)a1 + 2) + 56LL));
a1[824] = *(float *)sub_1801965D0(&v10, &v9);
sub_180DFABA0((unsigned int)v7, (_DWORD)a1, (_DWORD)a1, 0, 1065353216, (_DWORD)v4 << 6, 0);
v8 |= (32 * (v4 ^ 1) + 32) | 0x116;
sub_1803C8520(a1, (__int64)v7, 0LL);
return sub_180DFBEE0((__int64)v7);
}
}
return result;
}
Linux:
void __fastcall sub_1628A10(__int64 a1, unsigned __int8 a2, char a3)
{
unsigned __int8 (*v4)(void);
_BYTE v5[112];
__int64 v6;
v4 = *(unsigned __int8 (**)(void))(*(_QWORD *)a1 + 1328LL);
if ( (char *)v4 == (char *)CBaseEntity_IsPlayerPawn )
{
if ( *(_BYTE *)(a1 + 1472) )
return;
}
else if ( !v4() )
{
return;
}
if ( *(float *)(a1 + 4072) <= sub_118C0E0(*(unsigned int *)(*(_QWORD *)(a1 + 16) + 56LL)) || a3 )
{
*(float *)(a1 + 4072) = sub_118C0E0(*(unsigned int *)(*(_QWORD *)(a1 + 16) + 56LL)) + 5.0;
sub_18B0D40(v5, a1, a1, 0LL, a2 << 6, 0LL, 1.0);
v6 |= (a2 == 0 ? 64LL : 32LL) | 0x116;
sub_C8A650(a1, v5, 0LL);
sub_189BA20(v5);
}
}
where the CBaseEntity::TakeDamageOld can be verified by checking string "CBaseEntity::TakeDamageOld: damagetype %d with info.GetDamagePosition() == Vector::vZero\n" in it's decompiled procedure.
If the code pattern match, proceed to rename.