uint64_t REFDEF = 0x17364048;
uint64_t NAME_ARRAY = 0x1736F638;
uint64_t NAME_LIST_OFFSET = 0x4C70;
uint64_t CAMERA_POINTER = 0x144AE7E0;
uint64_t CAMERA_OFFSET = 0x1D8;
uint64_t NO_RECOIL = 0x3F7C;
uint64_t GAME_MODE = 0x16F979E8;
ULONG64 COMMAND_QUEUE = 0x18DAED28;
ULONG64 SWAPCHAIN = 0x18DB40A0;
namespace player
{
uint64_t SIZE = 0x3AC0;
uint64_t POS = 0x3A40;
uint64_t STANCE = 0x1B0;
}
uint64_t GetClientInfo(uint64_t peb, uint64_t moduleBase) {
uint64_t rax = 0, rbx = 0, rcx = 0, rdx = 0, rdi = 0, rsi = 0, r8 = 0, r9 = 0, r10 = 0, r11 = 0, r12 = 0, r13 = 0, r14 = 0, r15 = 0, rbp = 0;
rbx = *(ULONG64*)(moduleBase + 0x17361698);
rdx = moduleBase;
rcx = (moduleBase + 0x119);
rax -= rcx;
rcx = 0x80C41CB925669EA9;
rax = 0; // bruh
rax = _rotl64(rax, 0x10);
rax ^= *(ULONG64*)(moduleBase + 0x64F3111);
rax = (~rax);
rax = *(ULONG64*)(rax + 0xf);
rbx *= rax;
rax = rdx;
rbx *= rcx;
rcx = 0xD36DDA3E4AA0BDCA;
rax *= rcx;
rbx += rax;
rax = rbx;
rax >>= 0x15;
rbx ^= rax;
rax = rbx;
rax >>= 0x2A;
rbx ^= rax;
return rbx;
}
ULONG64 GetClientBase(ULONG64 Peb, ULONG64 moduleBase, ULONG64 clientInfo)
{
ULONG64 rax = moduleBase, rcx = moduleBase, rdx = moduleBase, r8 = moduleBase, r9 = moduleBase, r10 = moduleBase, r11 = moduleBase, r12 = moduleBase, r13 = moduleBase, r14 = moduleBase, r15 = moduleBase, rsi = moduleBase, rdi = moduleBase; // hardcoded lol
ULONG64 rbx = Peb;
rax = *(ULONG64*)(clientInfo + 0x9dbf8);
if (!rax)
return 0;
rcx = rbx;
rcx = _rotr64(rcx, 0xc);
rcx &= 0xf;
switch (rcx)
{
case 0:
{ r15 = (moduleBase + 0xE073);
r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = 0xC096CF10DE8689D3;
rax *= rcx;
rcx = moduleBase;
rax ^= rcx;
rcx = r15;
rcx = (~rcx);
rcx ^= rbx;
rax += rcx;
rcx = rax;
rcx >>= 0x14;
rax ^= rcx;
rcx = rax;
rcx >>= 0x28;
rax ^= rcx;
rcx = 0x280B03F4B0F3B68F;
rax *= rcx;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r10;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = 0x68A75EAE8934327D;
rax *= rcx;
rcx = rax;
rcx >>= 0xF;
rax ^= rcx;
rcx = rax;
rcx >>= 0x1E;
rax ^= rcx;
rcx = rax;
rcx >>= 0x3C;
rax ^= rcx;
return rax;
}
case 1:
{ r9 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = 0x17DFEB1D2C063EAC;
rax += rcx;
rax += rbx;
rcx = rax;
rcx >>= 0x22;
rax ^= rcx;
rcx = moduleBase;
rcx += 0x3EBC;
rax += rcx;
rcx = 0x71DD72B757A12891;
rax *= rcx;
rcx = rbx;
rcx *= 0x1C451A9150BDAEDE;
rax += rcx;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r9;
rcx = _byteswap_uint64(rcx);
rcx = *(ULONG64*)(rcx + 0x17);
rax *= rcx;
rcx = 0xE9613C2AD0CC772;
rax += rcx;
return rax;
}
case 2:
{ r15 = (moduleBase + 0xEA02);
r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = 0xD57E253FE20474D7;
rax *= rcx;
rcx = 0x7A73F903F71B0490;
rax += rcx;
rcx = 0x295BF6687EEB48B9;
rax ^= rcx;
rcx = r15;
rcx = (~rcx);
rcx ^= rbx;
rax ^= rcx;
rcx = moduleBase;
rax += rcx;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r10;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = rax;
rcx >>= 0xE;
rax ^= rcx;
rcx = rax;
rcx >>= 0x1C;
rax ^= rcx;
rcx = rax;
rcx >>= 0x38;
rax ^= rcx;
rcx = moduleBase;
rax += rcx;
return rax;
}
case 3:
{ r10 = *(ULONG64*)(moduleBase + 0x64F3151);
r11 = (moduleBase + 0x73EF);
rcx = rbx;
rcx ^= rax;
rdx = 0; // bruh
rdx = _rotl64(rdx, 0x10);
rdx ^= r10;
rdx = _byteswap_uint64(rdx);
rax = *(ULONG64*)(rdx + 0x17);
rax *= rcx;
rcx = 0x4F381FE1689D0918;
rax += rcx;
rdx = rbx;
rdx = (~rdx);
rcx = r11;
rcx = (~rcx);
rdx *= rcx;
rcx = 0x864F279963B311D1;
rax += rdx;
rax *= rcx;
rcx = rax;
rcx >>= 0x13;
rax ^= rcx;
rcx = rax;
rcx >>= 0x26;
rax ^= rcx;
rcx = (moduleBase + 0x2C0C8046);
rax += rbx;
rax += rcx;
rcx = moduleBase;
rax ^= rcx;
return rax;
}
case 4:
{ r10 = *(ULONG64*)(moduleBase + 0x64F3151);
r15 = (moduleBase + 0xC93C);
rcx = 0x5D021C29E1E1E9F7;
rax *= rcx;
rcx = rax;
rcx >>= 0x9;
rax ^= rcx;
rcx = rax;
rcx >>= 0x12;
rax ^= rcx;
rcx = rax;
rcx >>= 0x24;
rax ^= rcx;
rcx = rbx;
rcx *= r15;
rax -= rcx;
rdx = 0; // bruh
rdx = _rotl64(rdx, 0x10);
rdx ^= r10;
rcx = (moduleBase + 0x1333);
rcx = (~rcx);
rcx += rbx;
rcx ^= rax;
rdx = _byteswap_uint64(rdx);
rax = *(ULONG64*)(rdx + 0x17);
rax *= rcx;
rax += rbx;
rcx = 0x30EC9FDD47A31DAD;
rax *= rcx;
return rax;
}
case 5:
{ r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = 0x89E987B7D3FF2349;
rax *= rcx;
rax += rbx;
rcx = (moduleBase + 0x4AA14AC6);
rcx -= rbx;
rax += rcx;
rcx = rax;
rax = 0x4992A224B564EF0F;
rcx ^= rax;
rdx = 0; // bruh
rdx = _rotl64(rdx, 0x10);
rdx ^= r10;
rdx = _byteswap_uint64(rdx);
rax = *(ULONG64*)(rdx + 0x17);
rax *= rcx;
rdx = (moduleBase + 0x1CAA3A3D);
rcx = rbx;
rcx ^= rdx;
rax += rcx;
rcx = 0x6A9371DFE8ECACA3;
rax ^= rcx;
rcx = rax;
rcx >>= 0x9;
rax ^= rcx;
rcx = rax;
rcx >>= 0x12;
rax ^= rcx;
rcx = rax;
rcx >>= 0x24;
rax ^= rcx;
return rax;
}
case 6:
{ r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rdx = 0; // bruh
rcx = rax;
rdx = _rotl64(rdx, 0x10);
rdx ^= r10;
rcx >>= 0x24;
rcx ^= rax;
rdx = _byteswap_uint64(rdx);
rax = *(ULONG64*)(rdx + 0x17);
rax *= rcx;
rcx = rax;
rcx >>= 0x21;
rax ^= rcx;
rcx = moduleBase;
rax -= rcx;
rcx = 0x4A833B8C7E7D0F71;
rax *= rcx;
rcx = 0x89847598578DBD8D;
rax *= rcx;
rcx = 0xB517CBA5E92ED78D;
rax *= rcx;
rax -= rbx;
return rax;
}
case 7:
{ r9 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r9;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = rax;
rcx >>= 0x1C;
rax ^= rcx;
rcx = rax;
rcx >>= 0x38;
rax ^= rcx;
rcx = rax;
rcx >>= 0x20;
rax ^= rcx;
rcx = 0xFFFFFFFFFFFF0625;
rcx -= rbx;
rax += rcx;
rcx = 0x9FB04FA859F9BFDD;
rax *= rcx;
rcx = rax;
rcx >>= 0x13;
rax ^= rcx;
rcx = rax;
rcx >>= 0x26;
rax ^= rcx;
rcx = 0xF6D1765B568147FA;
rax ^= rcx;
rcx = 0x64D8BDF4C4807346;
rax ^= rcx;
return rax;
}
case 8:
{ r15 = (moduleBase + 0x1D55);
r14 = (moduleBase + 0x3C3D38A5);
r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rdx = rbx;
rdx = (~rdx);
rcx = (moduleBase + 0x476B5F12);
rcx = (~rcx);
rdx += rcx;
rcx = 0x7613B8419A2453D9;
rax ^= rdx;
rdx = (moduleBase + 0x223);
rax *= rcx;
rcx = rbx;
rcx ^= rdx;
rax -= rcx;
rcx = r14;
rcx = (~rcx);
rcx += rbx;
rax += rcx;
rcx = rax;
rcx >>= 0x23;
rax ^= rcx;
rcx = rbx;
rcx = (~rcx);
rcx *= r15;
rax ^= rcx;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r10;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = (moduleBase + 0xF1DC);
rcx = (~rcx);
rcx -= rbx;
rax += rcx;
return rax;
}
case 9:
{ r11 = (moduleBase + 0x3E15FB71);
r9 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r9;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rax ^= rbx;
rcx = 0x70E0519D70D558A7;
rax ^= rcx;
rcx = rax;
rcx >>= 0x21;
rax ^= rcx;
rcx = moduleBase;
rax -= rcx;
rcx = rbx + 0x1;
rcx *= r11;
rax += rcx;
rcx = moduleBase;
rcx += 0x4B8F;
rcx += rbx;
rax ^= rcx;
rcx = 0x914A1F5941B8D72F;
rax *= rcx;
return rax;
}
case 10:
{ r15 = (moduleBase + 0x51D442F4);
r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rax -= rbx;
rcx = 0xE861502497847345;
rax ^= rcx;
rcx = rax;
rcx >>= 0xA;
rax ^= rcx;
rcx = rax;
rcx >>= 0x14;
rax ^= rcx;
rcx = rax;
rcx >>= 0x28;
rax ^= rcx;
rcx = 0x564048AB2263C98;
rax -= rcx;
rcx = rbx + 0x1;
rcx *= r15;
rax += rcx;
rcx = rax;
rcx >>= 0x25;
rax ^= rcx;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r10;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = 0x2A67BEF7A9C1C769;
rax *= rcx;
return rax;
}
case 11:
{ r11 = *(ULONG64*)(moduleBase + 0x64F3151);
r15 = (moduleBase + 0xB8DA);
rcx = 0x904EFDADB728EB0F;
rax *= rcx;
rcx = rax;
rcx >>= 0x16;
rax ^= rcx;
rdx = rbx;
rcx = moduleBase;
rdx -= rcx;
rcx = rax;
rcx >>= 0x2C;
rdx -= 0x7D4E3BE9;
rdx ^= rcx;
rcx = (moduleBase + 0xD009);
rax ^= rdx;
rcx = (~rcx);
rax -= rbx;
rax += rcx;
rdx = (moduleBase + 0x65949A5B);
r8 = 0; // bruh
r8 = _rotl64(r8, 0x10);
r8 ^= r11;
rcx = rbx;
rcx *= rdx;
rdx = rax;
r8 = _byteswap_uint64(r8);
rdx -= rcx;
rax = *(ULONG64*)(r8 + 0x17);
rax *= rdx;
rax += rbx;
rcx = rbx;
rcx = (~rcx);
rcx *= r15;
rax += rcx;
return rax;
}
case 12:
{ r14 = (moduleBase + 0xAD94);
r10 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = rax;
rdx = 0; // bruh
rcx >>= 0x21;
rcx ^= rax;
rdx = _rotl64(rdx, 0x10);
rdx ^= r10;
rcx += rbx;
rdx = _byteswap_uint64(rdx);
rax = 0x3C3BB30C564EB9C1;
rcx ^= rax;
rax = *(ULONG64*)(rdx + 0x17);
rax *= rcx;
rcx = rax;
rcx >>= 0x1E;
rax ^= rcx;
rcx = rax;
rcx >>= 0x3C;
rax ^= rcx;
rcx = 0xFC8F9DC775D96719;
rax *= rcx;
rcx = r14;
rcx = (~rcx);
rcx ^= rbx;
rax ^= rcx;
rcx = moduleBase;
rax += rcx;
return rax;
}
case 13:
{ r14 = (moduleBase + 0x4A10D1D8);
rdx = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = rbx;
rcx = (~rcx);
rax ^= rcx;
rax ^= r14;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= rdx;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = 0x73AB7F806587F54D;
rax *= rcx;
rcx = 0x56AD9C9D0047297E;
rax -= rcx;
rcx = rax;
rcx >>= 0x28;
rax ^= rcx;
rcx = (moduleBase + 0x8CA7);
rax += rbx;
rax += rcx;
rcx = 0x57B2AC1A9133B24E;
rax ^= rcx;
rcx = rax;
rcx >>= 0x7;
rax ^= rcx;
rcx = rax;
rcx >>= 0xE;
rax ^= rcx;
rcx = rax;
rcx >>= 0x1C;
rax ^= rcx;
rcx = rax;
rcx >>= 0x38;
rax ^= rcx;
return rax;
}
case 14:
{ r11 = *(ULONG64*)(moduleBase + 0x64F3151);
rcx = (moduleBase + 0xD011);
rcx -= rbx;
rax += rcx;
rcx = rax;
rcx >>= 0x26;
rax ^= rcx;
rcx = 0x35B06207AE939BF1;
rax *= rcx;
rcx = 0x58D99333C4EF82F3;
rax += rcx;
rdx = 0; // bruh
rcx = 0x64DE42EA1B63F851;
rdx = _rotl64(rdx, 0x10);
rcx += rax;
rdx ^= r11;
rdx = _byteswap_uint64(rdx);
rax = *(ULONG64*)(rdx + 0x17);
rax *= rcx;
rcx = rbx;
rcx = (~rcx);
rax ^= rcx;
rax += 0xFFFFFFFFFFFF6353;
rcx = rbx;
rcx = (~rcx);
rax += rcx;
return rax;
}
case 15:
{ r11 = *(ULONG64*)(moduleBase + 0x64F3151);
r8 = (moduleBase + 0x20B589A3);
rcx = rax;
rcx >>= 0x16;
rax ^= rcx;
rcx = rax;
rcx >>= 0x2C;
rax ^= rcx;
rcx = 0x385FC2775F5F2105;
rax *= rcx;
rcx = 0; // bruh
rcx = _rotl64(rcx, 0x10);
rcx ^= r11;
rcx = _byteswap_uint64(rcx);
rax *= *(ULONG64*)(rcx + 0x17);
rcx = moduleBase;
rax ^= rcx;
rax -= rcx;
rax += rbx;
rcx = (moduleBase + 0x48580B27);
rax += rcx;
rcx = moduleBase;
rax ^= rbx;
rax ^= r8;
rax ^= rcx;
return rax;
}
default:
return 0;
}
}