Новичок
Новичок
- Статус
- Оффлайн
- Регистрация
- 6 Дек 2024
- Сообщения
- 1
- Реакции
- 0
Будет ли работать код в принципе? Что пофиксить?
Код:
#include <iostream>
void GetEntity(const uintptr_t dwEntityList, uintptr_t& entity, const uintptr_t m_hPlayerPawn1)
{
uint32_t m_hPlayerPawn2 = 0;
uint64_t entrylist1 = 0;
__int64 entitycontroller = 0;
uint64_t entrylist2 = 0;
__int64* entitypawn1 = 0;
uintptr_t entitypawn2 = 0;
for (int i = 0; i < 64; i++)
{
if ((entrylist1 = *(uint64_t*)(dwEntityList + 8 * ((unsigned __int64)i >> 9) + 16)) == 0
|| (entitycontroller = entrylist1 + 120LL * (i & 0x1FF)) == 0)
{
continue;
}
else
{
m_hPlayerPawn2 = *(uint32_t*)(entitycontroller + m_hPlayerPawn1);
}
if ((entrylist2 = *(uint64_t*)(dwEntityList + 8 * ((unsigned __int64)(m_hPlayerPawn2 & 0x7FFF) >> 9))) == 0
|| (entitypawn1 = (__int64*)(entrylist2 + 120LL * (m_hPlayerPawn2 & 0x1FF))) == 0
|| (entitypawn2 = *entitypawn1) == 0
|| !(*(unsigned __int8(__fastcall**)(__int64))(*(uint64_t*)entitypawn2 + 1208LL))(entitypawn2))
{
continue;
}
else
{
entity = entitypawn2;
}
}
}
псевдокод из ida (его периписывал на с++):
if ( !qword_181A020A8
|| !(unsigned __int8)((__int64 (*)(void))unk_180E24470)()
|| (v18 = *(_QWORD *)(qword_181A020A8 + 8 * ((unsigned __int64)v16 >> 9) + 16)) == 0
|| (v19 = v18 + 120LL * (v16 & 0x1FF)) == 0
|| (*(_DWORD *)(v19 + 16) & 0x7FFF) != v16
|| (v20 = (*(_DWORD *)(v19 + 16) >> 15) - (*(_DWORD *)(v19 + 48) & 1),
(((unsigned __int16)(*(_DWORD *)(v19 + 16) >> 15) - (*(_WORD *)(v19 + 48) & 1)) & 0x3FF) != v17) )
{
v20 = v17;
}
v21 = v16 | (v20 << 15);
if ( !qword_18193D798
|| (v22 = *(_QWORD *)(qword_18193D798 + 8 * ((unsigned __int64)(v21 & 0x7FFF) >> 9))) == 0
|| (v23 = (__int64 *)(v22 + 120LL * (v21 & 0x1FF))) == 0
|| *((_DWORD *)v23 + 4) != v21
|| (v24 = *v23) == 0
|| !(*(unsigned __int8 (__fastcall **)(__int64))(*(_QWORD *)v24 + 1208LL))(v24) )
{
LABEL_28:
v24 = 0;
}
Последнее редактирование: