enum game_data : uint32_t{ // 48 8B 1D ? ? ? ? C6 44 24 ? ? 0F B6 44 24 ? o_client_info = 0x174A9718, // + // 48 8B 83 ?? ?? ?? ?? C6 44 24 ?? ?? 0F B6 o_client_base = 0x9DBF8, // + //48 83 BB ? ? ? ? ? 0F 84 ? ? ? ? 48 89 B4 24 ? ? ? ? o_local_index = 0x178, // + // 4C 8D 1D ? ? ? ? 44 8B 15 ? ? ? ? 48 8D 1D ? ? ? ? 4C 8B C9 o_refdef = 0x174AC0C8, //+ // 48 8B 05 ? ? ? ? 48 8B 7C 24 ? 48 05 ? ? ? ? o_camera_base = 0x145F67E0, // + o_camera_pos = 0x1D8, // C7 83 ? ? ? ? ? ? ? ? C7 83 ? ? ? ? ? ? ? ? E8 ? ? ? ? 44 0F B6 C6 48 8B D5 48 8B CF E8 ? ? ? ? o_player_dead_1 = 0x3818, // + // 41 83 B8 ? ? ? ? ? 0F 85 ? ? ? ? 41 B8 ? ? ? ? o_player_dead_2 = 0xF40, // + // 49 8B D9 41 0F B6 F0 8B F9 48 8B EA o_player_pos = 0x468, // + // 48 69 D3 ?? ?? ?? ?? 48 03 96 ?? ?? ?? ?? o_player_size = 0x3AD8, // + // 8B 87 ? ? ? ? 4C 8B BC 24 ? ? ? ? 4C 8B B4 24 ? ? ? ? 4C 8B AC 24 ? ? ? ? 4C 8B A4 24 ? ? ? ? 85 C0 74 16 o_player_team = 0xF60, // + // C7 87 ?? ?? ?? ?? ?? ?? ?? ?? C7 87 ?? ?? ?? ?? ?? ?? ?? ?? 41 o_player_valid = 0xF64, // + // 48 8D 0D ? ? ? ? 48 8B 0C C1 48 8B 01 FF 90 ? ? ? ? o_name_array = 0x174B76B8, // + o_name_array_padding = 0x4C70, o_name_array_size = 0xD0,};
ULONG64 GetClientInfo(ULONG64 peb, ULONG64 moduleBase) { ULONG64 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; r8 = peb; rbx = *(ULONG64*)(moduleBase + 0x174a9718); //r8 = *(ULONG64*)(moduleBase + 0x1c79082); // ? this is gay rax = moduleBase; rbx += rax; rax = rbx; rax >>= 0x10; rbx ^= rax; rax = (moduleBase + 0x134); rcx -= rax; rax = rbx; rcx = 0; // bruh rax >>= 0x20; rax ^= rbx; rcx = _rotl64(rcx, 0x10); rcx ^= *(ULONG64*)(moduleBase + 0x663C10A); rcx = _byteswap_uint64(rcx); rbx = *(ULONG64*)(rcx + 0x13); rbx *= rax; rax = 0x76D048452DCF6909; rbx -= r8; r8 = (~r8); rbx *= rax; rax = (moduleBase + 0x2C8CD073); r8 += rax; rbx ^= r8; 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); rcx = rbx; rcx <<= 0x21; rcx = _byteswap_uint64(rcx); rcx &= 0xf; switch (rcx) { case 0: { r9 = *(ULONG64*)(moduleBase + 0x663C140); rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r9; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = rax; rcx >>= 0x18; rax ^= rcx; rcx = rax; rcx >>= 0x30; rax ^= rcx; rcx = moduleBase; rax ^= rcx; rcx = rax; rcx >>= 0x8; rax ^= rcx; rcx = rax; rcx >>= 0x10; rax ^= rcx; rcx = rax; rcx >>= 0x20; rax ^= rcx; rcx = 0x345963FE4F9F5BC7; rax *= rcx; rcx = 0x1BC0D0E9288C6DB3; rax += rcx; rax += rbx; rcx = moduleBase; rax -= rcx; return rax; } case 1: { r11 = (moduleBase + 0x6064722A); r10 = *(ULONG64*)(moduleBase + 0x663C140); rcx = rbx; rcx ^= r11; rax -= rcx; rcx = rax; rcx >>= 0x11; rax ^= rcx; rcx = rax; rcx >>= 0x22; rax ^= rcx; rax ^= rbx; rcx = (moduleBase + 0x28AB); rcx = (~rcx); rcx -= rbx; rax += rcx; rcx = 0x16A1C31B3D93A83F; rax *= rcx; rcx = 0xD0C234BF8A55764B; rax *= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = 0xB75E6F62B4DBBCC1; rax *= rcx; return rax; } case 2: { r14 = (moduleBase + 0x30A5); r10 = *(ULONG64*)(moduleBase + 0x663C140); rcx = rax; rcx >>= 0x15; rax ^= rcx; rcx = rax; rcx >>= 0x2A; rax ^= rcx; rcx = rbx; rcx = (~rcx); rcx ^= r14; rax -= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = 0x5D11A30DE94FFEDE; rax += rcx; rcx = rax; rcx >>= 0x1B; rax ^= rcx; rcx = rax; rcx >>= 0x36; rax ^= rcx; rax ^= rbx; rcx = 0x1D2CA89A1A1BE3D9; rax ^= rcx; rcx = 0xDD63D27B22050957; rax *= rcx; return rax; } case 3: { r14 = (moduleBase + 0x7B3CDBC1); r10 = *(ULONG64*)(moduleBase + 0x663C140); rdx = rbx; rdx = (~rdx); rcx = r14; rcx = (~rcx); rdx *= rcx; rax += rdx; rcx = rax; rcx >>= 0x26; rcx ^= rax; rax = rcx + rbx * 2; rcx = moduleBase; rax -= rcx; rax -= 0x7736E4C5; rcx = 0xA4C7B3171334DA2E; rax ^= rcx; rcx = 0x667B75570F23711D; rax *= rcx; rcx = 0x7E05078E8B5B3EDA; rax -= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); return rax; } case 4: { r9 = *(ULONG64*)(moduleBase + 0x663C140); rax ^= rbx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r9; rcx = _byteswap_uint64(rcx); rcx = *(ULONG64*)(rcx + 0xb); rcx *= 0x64DE26759A457153; rax *= rcx; rcx = rax; rcx >>= 0x24; rax ^= rcx; rcx = 0x49AF5B2E74070925; rax *= rcx; rcx = 0xB5CC279242DD0301; rax *= rcx; return rax; } case 5: { r11 = *(ULONG64*)(moduleBase + 0x663C140); r15 = (moduleBase + 0x6BA9); rdx = (moduleBase + 0x5F9E55C9); rdx = (~rdx); rdx ^= rbx; rcx = rax; rax = 0xBF5978C960F6BB4B; rax ^= rcx; rax += rdx; rdx = (moduleBase + 0x28877536); rcx = rax; rcx >>= 0x18; rax ^= rcx; rcx = rax; rcx >>= 0x30; rax ^= rcx; rcx = rbx; rcx = (~rcx); rcx *= r15; rax ^= rcx; r8 = 0; // bruh r8 = _rotl64(r8, 0x10); r8 ^= r11; rcx = rbx; rcx *= rdx; rdx = rax; rdx -= rcx; rcx = 0x84229F2B4FE6843B; r8 = _byteswap_uint64(r8); rax = *(ULONG64*)(r8 + 0xb); rax *= rdx; rax *= rcx; rax ^= rbx; return rax; } case 6: { r15 = (moduleBase + 0xE397); r10 = *(ULONG64*)(moduleBase + 0x663C140); rcx = moduleBase; rax += rcx; rcx = moduleBase; rax += rcx; rcx = 0x4030351D523D85BB; rax += rcx; rcx = rbx; rcx ^= r15; rax += rcx; rcx = 0x71A01F36E5BF55AF; rax *= rcx; rcx = rax; rcx >>= 0x10; rax ^= rcx; rcx = rax; rcx >>= 0x20; rcx ^= rax; rdx = 0; // bruh rdx = _rotl64(rdx, 0x10); rdx ^= r10; rdx = _byteswap_uint64(rdx); rax = *(ULONG64*)(rdx + 0xb); rdx = (moduleBase + 0x31AFF9CE); rax *= rcx; rcx = rbx; rcx *= rdx; rax -= rcx; return rax; } case 7: { r10 = *(ULONG64*)(moduleBase + 0x663C140); r15 = (moduleBase + 0x9CF0); rcx = rax; rcx >>= 0x19; rax ^= rcx; rcx = rax; rcx >>= 0x32; rax ^= rcx; rcx = moduleBase; rcx += 0x16E9; rcx += rbx; rax ^= rcx; rdx = 0; // bruh rdx = _rotl64(rdx, 0x10); rdx ^= r10; rcx = rbx; rdx = _byteswap_uint64(rdx); rcx ^= r15; rdx = *(ULONG64*)(rdx + 0xb); rax *= rdx; rax -= rcx; rcx = rax; rcx >>= 0xA; rax ^= rcx; rcx = rax; rcx >>= 0x14; rax ^= rcx; rcx = rax; rcx >>= 0x28; rax ^= rcx; rcx = 0x201300BD919020EB; rax *= rcx; rcx = 0x136871F8B2311042; rax += rcx; rcx = 0xE0229051A9F3C38B; rax ^= rcx; return rax; } case 8: { r15 = (moduleBase + 0x6C04); r10 = *(ULONG64*)(moduleBase + 0x663C140); rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rdx = *(ULONG64*)(rcx + 0xb); rcx = 0x866F75E98D0D53B1; rdx *= rax; rax = rbx; rax *= r15; rdx += rax; rax = 0x1671E2558441F0BB; rdx ^= rbx; rax = rdx; rax >>= 0x20; rax ^= rdx; rax ^= rcx; rcx = 0x9E0D951F0C28F90B; rax *= rcx; rcx = 0x78503CB374B04FAD; rax *= rcx; rcx = rax; rcx >>= 0x2; rax ^= rcx; rcx = rax; rcx >>= 0x4; rax ^= rcx; rcx = rax; rcx >>= 0x8; rax ^= rcx; rcx = rax; rcx >>= 0x10; rax ^= rcx; rcx = rax; rcx >>= 0x20; rax ^= rcx; return rax; } case 9: { r14 = (moduleBase + 0x6CFB74E0); r11 = (moduleBase + 0x7F309832); r9 = *(ULONG64*)(moduleBase + 0x663C140); rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r9; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rax ^= rbx; rax ^= r14; rcx = rax; rcx >>= 0x17; rax ^= rcx; rcx = rax; rcx >>= 0x2E; rax ^= rcx; rcx = 0xD7356E290A5B1FBA; rax += rcx; rcx = moduleBase; rax ^= rcx; rcx = 0xD80D8A31210F08D3; rax *= rcx; rcx = r11; rcx = (~rcx); rcx ^= rbx; rax -= rcx; rcx = rax; rcx >>= 0x9; rax ^= rcx; rcx = rax; rcx >>= 0x12; rax ^= rcx; rcx = rax; rcx >>= 0x24; rax ^= rcx; return rax; } case 10: { r9 = *(ULONG64*)(moduleBase + 0x663C140); r11 = (moduleBase + 0x6AD2A7C4); rax -= rbx; rax ^= rbx; rcx = 0x29222BE3E0E2FFB; rax ^= r11; r11 = moduleBase; rax *= rcx; rcx = 0x5BB04B85CD9365D; rax -= rbx; rax += rcx; rax += r11; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r9; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = 0x5FC588EC700475F3; rax *= rcx; rcx = rax; rcx >>= 0xC; rax ^= rcx; rcx = rax; rcx >>= 0x18; rax ^= rcx; rcx = rax; rcx >>= 0x30; rax ^= rcx; return rax; } case 11: { r10 = *(ULONG64*)(moduleBase + 0x663C140); r14 = (moduleBase + 0xCF97); rdx = r14; rdx = (~rdx); rdx += rbx; rax ^= rdx; rcx = (moduleBase + 0xCA22); rax += rbx; rdx = moduleBase; rax += rcx; rcx = rbx; rcx = (~rcx); rcx -= rdx; rcx -= 0x1236; rax ^= rcx; rcx = 0x48502E6384BA9941; rax *= rcx; rcx = 0x5EB925E16D423E1E; rax -= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = 0xE5AB625D3BB65BBF; rax *= rcx; rcx = rax; rcx >>= 0x1F; rax ^= rcx; rcx = rax; rcx >>= 0x3E; rax ^= rcx; return rax; } case 12: { r15 = (moduleBase + 0xEE34); r10 = *(ULONG64*)(moduleBase + 0x663C140); rcx = rbx + 0x1; rcx *= r15; rax += rcx; rax ^= rbx; rcx = 0xBF0F6EC504339C71; rax *= rcx; rcx = 0x62753D45ABF968CD; rax -= rcx; rcx = 0x28C82E52D21EB6AB; rax -= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = rax; rcx >>= 0xB; rax ^= rcx; rcx = rax; rcx >>= 0x16; rax ^= rcx; rcx = rax; rcx >>= 0x2C; rax ^= rcx; rcx = moduleBase; rax ^= rcx; return rax; } case 13: { r10 = *(ULONG64*)(moduleBase + 0x663C140); rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r10; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = rax; rcx >>= 0x2; rax ^= rcx; rcx = rax; rcx >>= 0x4; rax ^= rcx; rcx = rax; rcx >>= 0x8; rax ^= rcx; rcx = rax; rcx >>= 0x10; rax ^= rcx; rcx = rax; rcx >>= 0x20; rax ^= rcx; rdx = rax; rdx >>= 0x22; rdx ^= rax; rcx = 0xAB96BD5255F50EEF; rax = (moduleBase + 0x4795B778); rax = (~rax); rax ^= rbx; rax += rdx; rax *= rcx; rax -= rbx; rcx = 0x697DECF064AB09C3; rax *= rcx; rcx = rbx; rcx *= 0x7FF6A2B4E842; rax += rcx; return rax; } case 14: { r9 = *(ULONG64*)(moduleBase + 0x663C140); rcx = rax; rcx >>= 0xB; rax ^= rcx; rcx = rax; rcx >>= 0x16; rax ^= rcx; rcx = rax; rcx >>= 0x2C; rax ^= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r9; rcx = _byteswap_uint64(rcx); rcx = *(ULONG64*)(rcx + 0xb); rcx *= 0xF2B84228009F892B; rax *= rcx; r10 = 0x21D0F0E2660F5094; rcx = rbx; rcx = (~rcx); rcx *= 0x7FF6A2B42E00; rcx += r10; rax += rcx; rcx = rax; rcx >>= 0x10; rax ^= rcx; rcx = rax; rcx >>= 0x20; rax ^= rcx; rcx = 0x1E450D45A88B3DC9; rax *= rcx; rcx = rax; rcx >>= 0x17; rax ^= rcx; rcx = rax; rcx >>= 0x2E; rax ^= rcx; return rax; } case 15: { r9 = *(ULONG64*)(moduleBase + 0x663C140); rcx = moduleBase; rax ^= rcx; rcx = 0x104FF8B4C43406AD; rax += rcx; rcx = 0x16DB4431461A3E29; rax *= rcx; rcx = 0; // bruh rcx = _rotl64(rcx, 0x10); rcx ^= r9; rcx = _byteswap_uint64(rcx); rax *= *(ULONG64*)(rcx + 0xb); rcx = rax; rcx >>= 0x13; rax ^= rcx; rcx = rax; rcx >>= 0x26; rax ^= rcx; rcx = moduleBase; rax -= rcx; rax += 0xFFFFFFFFFFFF9A85; rax += rbx; rcx = 0x11B2D7215841BEB4; rax += rcx; return rax; } default: return 0; }}