Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uintptr_t decrypt_client_info(const Driver& driver)
- {
- const uint64_t mb = globals::base;
- uint64_t rax = mb, rbx = mb, rcx = mb, rdx = mb, rdi = mb, rsi = mb, r8 = mb, r9 = mb, r10 = mb, r11 = mb, r12 = mb, r13 = mb, r14 = mb, r15 = mb;
- current rip 00007FF69BDB11A2
- r8 = mem.Read<uintptr_t>(globals::base + 0xCC3EC38);
- if(!r8)
- return r8;
- rdx= ~globals::vaPeb; //mov rdx, gs:[rax]
- rax = r8; //mov rax, r8
- rax >>= 0x18; //shr rax, 0x18
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x30; //shr rax, 0x30
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- r8 ^= rax; //xor r8, rax
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= mem.Read<uintptr_t>(globals::base + 0xB5E3629); //xor rcx, [0x00000000052F242E]
- rax = 0x233F5F4AE79533B1; //mov rax, 0x233F5F4AE79533B1
- r8 *= rax; //imul r8, rax
- rax = 0x4FF2ED27F19D575D; //mov rax, 0x4FF2ED27F19D575D
- rcx = ~rcx; //not rcx
- r8 -= rdx; //sub r8, rdx
- r8 += rax; //add r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFF9D0EDDD]
- r8 ^= rax; //xor r8, rax
- r8 *= mem.Read<uintptr_t>(rcx + 0x19); //imul r8, [rcx+0x19]
- return r8;
- }
- uintptr_t decrypt_client_base(const Driver& driver, uintptr_t client_info)
- {
- const uint64_t mb = globals::base;
- uint64_t rax = mb, rbx = mb, rcx = mb, rdx = mb, rdi = mb, rsi = mb, r8 = mb, r9 = mb, r10 = mb, r11 = mb, r12 = mb, r13 = mb, r14 = mb, r15 = mb;
- r8 = mem.Read<uintptr_t>(client_info + 0x1e5178);
- if(!r8)
- return r8;
- rbx = globals::vaPeb; //mov rbx, gs:[rax]
- rax = rbx; //mov rax, rbx
- rax <<= 0x23; //shl rax, 0x23
- rax = _byteswap_uint64(rax); //bswap rax
- rax &= 0xF;
- switch(rax) {
- case 0:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008768B21]
- rax = globals::base; //lea rax, [0xFFFFFFFFFD185315]
- r8 -= rax; //sub r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x1E; //shr rax, 0x1E
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x3C; //shr rax, 0x3C
- r8 ^= rax; //xor r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD1850F6]
- r8 -= rax; //sub r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x28; //shr rax, 0x28
- r8 ^= rax; //xor r8, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rax = 0x9CC8E0420ADA280D; //mov rax, 0x9CC8E0420ADA280D
- r8 *= rax; //imul r8, rax
- r8 += rbx; //add r8, rbx
- rax = r8; //mov rax, r8
- rax >>= 0x11; //shr rax, 0x11
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x22; //shr rax, 0x22
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 1:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x000000000876868F]
- rax = r8; //mov rax, r8
- rax >>= 0x9; //shr rax, 0x09
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x12; //shr rax, 0x12
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x24; //shr rax, 0x24
- r8 ^= rax; //xor r8, rax
- r8 ^= rbx; //xor r8, rbx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- r8 *= mem.Read<uintptr_t>(rcx + 0x9); //imul r8, [rcx+0x09]
- rcx = globals::base; //lea rcx, [0xFFFFFFFFFD184C80]
- rax = rbx; //mov rax, rbx
- rax -= rcx; //sub rax, rcx
- rax += 0xFFFFFFFF9F0CFAED; //add rax, 0xFFFFFFFF9F0CFAED
- r8 += rax; //add r8, rax
- rax = 0x40ED86BABDEA8F5B; //mov rax, 0x40ED86BABDEA8F5B
- r8 *= rax; //imul r8, rax
- rax = 0xA7798517B7F399EA; //mov rax, 0xA7798517B7F399EA
- r8 ^= rax; //xor r8, rax
- rcx = globals::base + 0x755F7BDD; //lea rcx, [0x000000007277CBCD]
- rax = rcx; //mov rax, rcx
- rax = ~rax; //not rax
- rax ^= rbx; //xor rax, rbx
- r8 += rax; //add r8, rax
- rax = 0x459093E765583ADB; //mov rax, 0x459093E765583ADB
- r8 *= rax; //imul r8, rax
- return r8;
- }
- case 2:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x000000000876823E]
- r12 = globals::base + 0xAC81; //lea r12, [0xFFFFFFFFFD18F852]
- rax = 0xE03443781C6DB26D; //mov rax, 0xE03443781C6DB26D
- r8 *= rax; //imul r8, rax
- rax = 0x26676A6627BAC50C; //mov rax, 0x26676A6627BAC50C
- r8 -= rax; //sub r8, rax
- rax = 0x541ECC7788F37ADE; //mov rax, 0x541ECC7788F37ADE
- r8 += rax; //add r8, rax
- r8 += r12; //add r8, r12
- rax = globals::base + 0x142; //lea rax, [0xFFFFFFFFFD1848D5]
- rax = ~rax; //not rax
- rcx = rbx; //mov rcx, rbx
- rcx = ~rcx; //not rcx
- rcx -= rbx; //sub rcx, rbx
- rcx += rax; //add rcx, rax
- r8 += rcx; //add r8, rcx
- rax = r8; //mov rax, r8
- rax >>= 0x15; //shr rax, 0x15
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x2A; //shr rax, 0x2A
- r8 ^= rax; //xor r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD184734]
- r8 -= rax; //sub r8, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- return r8;
- }
- case 3:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008767D65]
- r8 ^= rbx; //xor r8, rbx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- r8 *= mem.Read<uintptr_t>(rcx + 0x9); //imul r8, [rcx+0x09]
- rax = 0x6C5618A3BE4C414; //mov rax, 0x6C5618A3BE4C414
- r8 -= rax; //sub r8, rax
- rax = 0xE98709096AD185CC; //mov rax, 0xE98709096AD185CC
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rcx = globals::base + 0x5ED318FB; //lea rcx, [0x000000005BEB5EF1]
- rax >>= 0xB; //shr rax, 0x0B
- rcx = ~rcx; //not rcx
- r8 ^= rax; //xor r8, rax
- rcx *= rbx; //imul rcx, rbx
- rax = r8; //mov rax, r8
- rax >>= 0x16; //shr rax, 0x16
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x2C; //shr rax, 0x2C
- rcx ^= rax; //xor rcx, rax
- r8 ^= rcx; //xor r8, rcx
- rax = 0x22A1571E2E749CB; //mov rax, 0x22A1571E2E749CB
- r8 *= rax; //imul r8, rax
- rcx = globals::base + 0xF26D; //lea rcx, [0xFFFFFFFFFD19375F]
- rax = rbx; //mov rax, rbx
- rax *= rcx; //imul rax, rcx
- r8 += rax; //add r8, rax
- return r8;
- }
- case 4:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x00000000087678F1]
- rax = 0x54EE9012A77B3C0E; //mov rax, 0x54EE9012A77B3C0E
- r8 ^= rax; //xor r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD183E1E]
- rax += 0x432D; //add rax, 0x432D
- rax += rbx; //add rax, rbx
- r8 += rax; //add r8, rax
- rax = 0xBE6A84FFF3304C3D; //mov rax, 0xBE6A84FFF3304C3D
- r8 *= rax; //imul r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x12; //shr rax, 0x12
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x24; //shr rax, 0x24
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x7; //shr rax, 0x07
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0xE; //shr rax, 0x0E
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x1C; //shr rax, 0x1C
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x38; //shr rax, 0x38
- r8 ^= rax; //xor r8, rax
- rcx = globals::base + 0x72D0A311; //lea rcx, [0x000000006FE8E55A]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rax = rbx; //mov rax, rbx
- rax *= rcx; //imul rax, rcx
- r8 -= rax; //sub r8, rax
- rax = 0x598660DAA37ACC99; //mov rax, 0x598660DAA37ACC99
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 5:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008767446]
- rcx = 0xC088FB236BE68165; //mov rcx, 0xC088FB236BE68165
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rax = mem.Read<uintptr_t>(rax + 0x9); //mov rax, [rax+0x09]
- rax *= rcx; //imul rax, rcx
- r8 *= rax; //imul r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x5; //shr rax, 0x05
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0xA; //shr rax, 0x0A
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x14; //shr rax, 0x14
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x28; //shr rax, 0x28
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0xB; //shr rax, 0x0B
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x16; //shr rax, 0x16
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x2C; //shr rax, 0x2C
- r8 ^= rax; //xor r8, rax
- rax = 0xF87FD44152069748; //mov rax, 0xF87FD44152069748
- r8 ^= rax; //xor r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD183AB9]
- rax += 0x1079; //add rax, 0x1079
- rax += rbx; //add rax, rbx
- r8 ^= rax; //xor r8, rax
- rcx = globals::base; //lea rcx, [0xFFFFFFFFFD183CA3]
- rax = rbx; //mov rax, rbx
- rax = ~rax; //not rax
- rax -= rcx; //sub rax, rcx
- rax += 0xFFFFFFFF968271AB; //add rax, 0xFFFFFFFF968271AB
- r8 += rax; //add r8, rax
- return r8;
- }
- case 6:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008766FCE]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rcx = globals::base + 0x1EE2; //lea rcx, [0xFFFFFFFFFD185824]
- rax = rbx; //mov rax, rbx
- rax ^= rcx; //xor rax, rcx
- rcx = 0x30DABF93D6E4FB5; //mov rcx, 0x30DABF93D6E4FB5
- r8 ^= rcx; //xor r8, rcx
- r8 -= rax; //sub r8, rax
- rax = 0xDB8B0AAFA542904; //mov rax, 0xDB8B0AAFA542904
- r8 -= rbx; //sub r8, rbx
- r8 -= rax; //sub r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x22; //shr rax, 0x22
- r8 ^= rax; //xor r8, rax
- rax = 0xDF170407BBE28DB5; //mov rax, 0xDF170407BBE28DB5
- r8 *= rax; //imul r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x8; //shr rax, 0x08
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x10; //shr rax, 0x10
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x20; //shr rax, 0x20
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 7:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008766B9D]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rax = 0x1C4A7DE2E2F8F68F; //mov rax, 0x1C4A7DE2E2F8F68F
- rcx = 0x378CE09B287B2D41; //mov rcx, 0x378CE09B287B2D41
- rcx ^= r8; //xor rcx, r8
- r8 = globals::base + 0xC177; //lea r8, [0xFFFFFFFFFD18F451]
- rcx += rax; //add rcx, rax
- rax = rbx + 0x1; //lea rax, [rbx+0x01]
- rax *= r8; //imul rax, r8
- r8 = rcx; //mov r8, rcx
- r8 >>= 0x23; //shr r8, 0x23
- rax += rbx; //add rax, rbx
- r8 ^= rcx; //xor r8, rcx
- r8 += rax; //add r8, rax
- rax = 0xEBEA9B8B5714671D; //mov rax, 0xEBEA9B8B5714671D
- r8 *= rax; //imul r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0xE; //shr rax, 0x0E
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x1C; //shr rax, 0x1C
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x38; //shr rax, 0x38
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 8:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008766661]
- rax = globals::base; //lea rax, [0xFFFFFFFFFD182E05]
- r8 ^= rax; //xor r8, rax
- rax = 0x3169FBDB3B875224; //mov rax, 0x3169FBDB3B875224
- r8 += rax; //add r8, rax
- rcx = globals::base + 0x88B9; //lea rcx, [0xFFFFFFFFFD18B885]
- rax = rcx; //mov rax, rcx
- rax = ~rax; //not rax
- rax *= rbx; //imul rax, rbx
- r8 ^= rax; //xor r8, rax
- r8 ^= rbx; //xor r8, rbx
- rax = globals::base + 0x553; //lea rax, [0xFFFFFFFFFD1831AF]
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x13; //shr rax, 0x13
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x26; //shr rax, 0x26
- r8 ^= rax; //xor r8, rax
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rax = 0x49665D7F2AFA3F6B; //mov rax, 0x49665D7F2AFA3F6B
- r8 *= rax; //imul r8, rax
- rcx ^= r10; //xor rcx, r10
- rax = globals::base + 0x11D125F7; //lea rax, [0x000000000EE9533C]
- rax = ~rax; //not rax
- rcx = ~rcx; //not rcx
- rax *= rbx; //imul rax, rbx
- r8 += rax; //add r8, rax
- r8 *= mem.Read<uintptr_t>(rcx + 0x9); //imul r8, [rcx+0x09]
- return r8;
- }
- case 9:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r9, [0x0000000008766221]
- r11 = globals::base + 0x7C81; //lea r11, [0xFFFFFFFFFD18A835]
- rax = rbx; //mov rax, rbx
- rax *= r11; //imul rax, r11
- r8 -= rax; //sub r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD1828DE]
- r8 -= rax; //sub r8, rax
- rax = rbx; //mov rax, rbx
- rax -= globals::base; //sub rax, [rsp+0x78] -- didn't find trace -> use base
- rax += 0xFFFFFFFFFFFF4D38; //add rax, 0xFFFFFFFFFFFF4D38
- r8 += rax; //add r8, rax
- rax = 0xB294869EA09D48AA; //mov rax, 0xB294869EA09D48AA
- r8 ^= rax; //xor r8, rax
- rax = 0xDA6A9700AB4D27FD; //mov rax, 0xDA6A9700AB4D27FD
- r8 *= rax; //imul r8, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r9; //xor rax, r9
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rax = 0x38632CDC13FD78A5; //mov rax, 0x38632CDC13FD78A5
- r8 += rax; //add r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x1D; //shr rax, 0x1D
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x3A; //shr rax, 0x3A
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 10:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008765D0D]
- r8 += rbx; //add r8, rbx
- rax = 0x36164EFD786890C1; //mov rax, 0x36164EFD786890C1
- r8 *= rax; //imul r8, rax
- rax = 0x6F993F33D7A49418; //mov rax, 0x6F993F33D7A49418
- r8 += rax; //add r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x8; //shr rax, 0x08
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x10; //shr rax, 0x10
- r8 ^= rax; //xor r8, rax
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rax = r8; //mov rax, r8
- rcx ^= r10; //xor rcx, r10
- rax >>= 0x20; //shr rax, 0x20
- r8 ^= rax; //xor r8, rax
- rcx = ~rcx; //not rcx
- r8 *= mem.Read<uintptr_t>(rcx + 0x9); //imul r8, [rcx+0x09]
- rax = 0xE88B55E25B8B057C; //mov rax, 0xE88B55E25B8B057C
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x1A; //shr rax, 0x1A
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x34; //shr rax, 0x34
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x4; //shr rax, 0x04
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x8; //shr rax, 0x08
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x10; //shr rax, 0x10
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x20; //shr rax, 0x20
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 11:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x00000000087658E9]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rax = rbx; //mov rax, rbx
- uintptr_t RSP_0xFFFFFFFFFFFFFFD0;
- RSP_0xFFFFFFFFFFFFFFD0 = globals::base + 0xA1FD; //lea rax, [0xFFFFFFFFFD18C485] : RBP+0xFFFFFFFFFFFFFFD0
- rax *= RSP_0xFFFFFFFFFFFFFFD0; //imul rax, [rbp-0x30]
- r8 += rax; //add r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x26; //shr rax, 0x26
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0xA; //shr rax, 0x0A
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x14; //shr rax, 0x14
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x28; //shr rax, 0x28
- r8 ^= rax; //xor r8, rax
- rax = 0xC6A8E21F37CF3675; //mov rax, 0xC6A8E21F37CF3675
- r8 *= rax; //imul r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD181D88]
- rax += rbx; //add rax, rbx
- r8 -= rax; //sub r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD181EB4]
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 12:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x00000000087653C1]
- rax = 0x5D2901AC55739352; //mov rax, 0x5D2901AC55739352
- r8 -= rax; //sub r8, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- rax = globals::base; //lea rax, [0xFFFFFFFFFD1818C3]
- r8 += rax; //add r8, rax
- rax = 0x156D71AB28FBFAFF; //mov rax, 0x156D71AB28FBFAFF
- r8 *= rax; //imul r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x27; //shr rax, 0x27
- r8 ^= rax; //xor r8, rax
- r8 -= rbx; //sub r8, rbx
- rax = r8; //mov rax, r8
- rax >>= 0x17; //shr rax, 0x17
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x2E; //shr rax, 0x2E
- r8 ^= rax; //xor r8, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFD181944]
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 13:
- {
- r11 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r11, [0x0000000008764E88]
- rax = r8; //mov rax, r8
- rax >>= 0x1F; //shr rax, 0x1F
- r8 ^= rax; //xor r8, rax
- rcx = r8; //mov rcx, r8
- rax = globals::base; //lea rax, [0xFFFFFFFFFD181448]
- rcx >>= 0x3E; //shr rcx, 0x3E
- rcx ^= r8; //xor rcx, r8
- rdx = 0; //and rdx, 0xFFFFFFFFC0000000
- rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
- r8 = rbx; //mov r8, rbx
- r8 = ~r8; //not r8
- rdx ^= r11; //xor rdx, r11
- r8 += rcx; //add r8, rcx
- rdx = ~rdx; //not rdx
- r8 -= rax; //sub r8, rax
- r8 -= 0x6929AFAC; //sub r8, 0x6929AFAC
- r8 *= mem.Read<uintptr_t>(rdx + 0x9); //imul r8, [rdx+0x09]
- rax = r8; //mov rax, r8
- rax >>= 0x18; //shr rax, 0x18
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x30; //shr rax, 0x30
- r8 ^= rax; //xor r8, rax
- rax = 0x69651B1AF033619B; //mov rax, 0x69651B1AF033619B
- r8 += rbx; //add r8, rbx
- r8 *= rax; //imul r8, rax
- rax = 0x29BBD1B30DFD9417; //mov rax, 0x29BBD1B30DFD9417
- r8 *= rax; //imul r8, rax
- rax = 0xA7B8F15C4FABBB6C; //mov rax, 0xA7B8F15C4FABBB6C
- r8 ^= rax; //xor r8, rax
- return r8;
- }
- case 14:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r9, [0x0000000008764A18]
- r8 += rbx; //add r8, rbx
- rax = globals::base + 0x8D0; //lea rax, [0xFFFFFFFFFD181AE6]
- rax -= rbx; //sub rax, rbx
- r8 += rax; //add r8, rax
- rax = 0xBC0AAA7E98B1663A; //mov rax, 0xBC0AAA7E98B1663A
- r8 ^= rax; //xor r8, rax
- rax = 0x54D1F9305B205B45; //mov rax, 0x54D1F9305B205B45
- r8 *= rax; //imul r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0xA; //shr rax, 0x0A
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x14; //shr rax, 0x14
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x28; //shr rax, 0x28
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x12; //shr rax, 0x12
- r8 ^= rax; //xor r8, rax
- rax = r8; //mov rax, r8
- rax >>= 0x24; //shr rax, 0x24
- r8 ^= rax; //xor r8, rax
- rax = 0xFFFFFFFFDE23E20A; //mov rax, 0xFFFFFFFFDE23E20A
- rax -= rbx; //sub rax, rbx
- rax -= globals::base; //sub rax, [rsp+0x78] -- didn't find trace -> use base
- r8 += rax; //add r8, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r9; //xor rax, r9
- rax = ~rax; //not rax
- r8 *= mem.Read<uintptr_t>(rax + 0x9); //imul r8, [rax+0x09]
- return r8;
- }
- case 15:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E365A); //mov r10, [0x0000000008764593]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rax = mem.Read<uintptr_t>(rax + 0x9); //mov rax, [rax+0x09]
- uintptr_t RSP_0xFFFFFFFFFFFFFFC0;
- RSP_0xFFFFFFFFFFFFFFC0 = 0x3A27415DA31CA989; //mov rax, 0x3A27415DA31CA989 : RBP+0xFFFFFFFFFFFFFFC0
- rax *= RSP_0xFFFFFFFFFFFFFFC0; //imul rax, [rbp-0x40]
- r8 *= rax; //imul r8, rax
- rax = 0x6F6A3BE0CADE4A54; //mov rax, 0x6F6A3BE0CADE4A54
- r8 -= rax; //sub r8, rax
- r8 -= rbx; //sub r8, rbx
- rax = r8; //mov rax, r8
- rax >>= 0x13; //shr rax, 0x13
- rcx = rbx; //mov rcx, rbx
- r8 ^= rax; //xor r8, rax
- rcx = ~rcx; //not rcx
- rax = globals::base + 0x76BB; //lea rax, [0xFFFFFFFFFD188495]
- rax = ~rax; //not rax
- rcx *= rax; //imul rcx, rax
- rax = r8; //mov rax, r8
- rax >>= 0x26; //shr rax, 0x26
- r8 ^= rax; //xor r8, rax
- r8 += rcx; //add r8, rcx
- rax = r8; //mov rax, r8
- rax >>= 0x28; //shr rax, 0x28
- r8 ^= rax; //xor r8, rax
- rax = 0x3224CE0A9BEB6A6E; //mov rax, 0x3224CE0A9BEB6A6E
- r8 -= rax; //sub r8, rax
- return r8;
- }
- }
- }
- uintptr_t GetCmdTextArray()
- {
- const uint64_t mb = globals::base;
- uint64_t rax = mb, rbx = mb, rcx = mb, rdx = mb, rdi = mb, rsi = mb, r8 = mb, r9 = mb, r10 = mb, r11 = mb, r12 = mb, r13 = mb, r14 = mb, r15 = mb;
- rcx = mem.Read<uintptr_t>(globals::base + 0x116D0730);
- if(!rcx)
- return rcx;
- r11 = globals::vaPeb; //mov r11, gs:[rdx]
- //failed to translate: mov [rsp+0x90], r12
- rdx = r11; //mov rdx, r11
- rdx = _rotl64(rdx, 0x22); //rol rdx, 0x22
- rdx &= 0xF;
- switch(rdx) {
- case 0:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007495268]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEB1B88]
- r15 = globals::base + 0x5E33; //lea r15, [0xFFFFFFFFFBEB79AF]
- rax = rcx; //mov rax, rcx
- rax >>= 0x1B; //shr rax, 0x1B
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x36; //shr rax, 0x36
- rcx ^= rax; //xor rcx, rax
- rax = 0xB5E3A5C14A756615; //mov rax, 0xB5E3A5C14A756615
- rcx ^= rax; //xor rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- rax = r11; //mov rax, r11
- rax *= r15; //imul rax, r15
- rcx += rax; //add rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x17; //shr rax, 0x17
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x2E; //shr rax, 0x2E
- rcx ^= rax; //xor rcx, rax
- rcx += rbx; //add rcx, rbx
- rax = 0x451CDD50ED47051D; //mov rax, 0x451CDD50ED47051D
- rcx *= rax; //imul rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x27; //shr rax, 0x27
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 1:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x0000000007494D74]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEB1694]
- rcx ^= rbx; //xor rcx, rbx
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = 0x3F5FF8759C0450AD; //mov rax, 0x3F5FF8759C0450AD
- rcx *= rax; //imul rcx, rax
- rax = 0x49224897BA23AD81; //mov rax, 0x49224897BA23AD81
- rcx *= rax; //imul rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x26; //shr rax, 0x26
- rcx ^= rax; //xor rcx, rax
- rax = 0x9308B88C835A243; //mov rax, 0x9308B88C835A243
- rcx -= rax; //sub rcx, rax
- return rcx;
- }
- case 2:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007494950]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEB1270]
- r12 = globals::base + 0xC499; //lea r12, [0xFFFFFFFFFBEBD6F8]
- rcx ^= r11; //xor rcx, r11
- rcx ^= r12; //xor rcx, r12
- rcx += r11; //add rcx, r11
- rax = 0xDD209D02F3077017; //mov rax, 0xDD209D02F3077017
- rcx *= rax; //imul rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- rax = rcx; //mov rax, rcx
- rax >>= 0x12; //shr rax, 0x12
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x24; //shr rax, 0x24
- rcx ^= rax; //xor rcx, rax
- rax = 0x7B3DE336F351C129; //mov rax, 0x7B3DE336F351C129
- rcx -= rax; //sub rcx, rax
- rcx ^= rbx; //xor rcx, rbx
- return rcx;
- }
- case 3:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x00000000074945B0]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEB0EC5]
- rax = 0x292A737D3A8A003D; //mov rax, 0x292A737D3A8A003D
- rcx *= rax; //imul rcx, rax
- rcx ^= r11; //xor rcx, r11
- rcx ^= r11; //xor rcx, r11
- rcx -= rbx; //sub rcx, rbx
- rax = rcx; //mov rax, rcx
- rax >>= 0x19; //shr rax, 0x19
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x32; //shr rax, 0x32
- rcx ^= rax; //xor rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- rdx = r11; //mov rdx, r11
- rdx = ~rdx; //not rdx
- rax = globals::base + 0x4F2A; //lea rax, [0xFFFFFFFFFBEB5A30]
- rcx += rax; //add rcx, rax
- rcx += rdx; //add rcx, rdx
- rax = 0x1D53DC9394D6C68A; //mov rax, 0x1D53DC9394D6C68A
- rcx += rax; //add rcx, rax
- return rcx;
- }
- case 4:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x000000000749417B]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEB0A9B]
- r14 = globals::base + 0x46C0CD17; //lea r14, [0x0000000042ABD7A6]
- rax = rcx; //mov rax, rcx
- rax >>= 0x10; //shr rax, 0x10
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x20; //shr rax, 0x20
- rcx ^= rax; //xor rcx, rax
- rcx ^= r11; //xor rcx, r11
- rcx ^= r14; //xor rcx, r14
- rax = rcx; //mov rax, rcx
- rax >>= 0x17; //shr rax, 0x17
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x2E; //shr rax, 0x2E
- rcx ^= rax; //xor rcx, rax
- rax = 0x2A27FA74C256E0E7; //mov rax, 0x2A27FA74C256E0E7
- rcx *= rax; //imul rcx, rax
- rcx += rbx; //add rcx, rbx
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = 0xE889A0595E16BFDB; //mov rax, 0xE889A0595E16BFDB
- rcx *= rax; //imul rcx, rax
- return rcx;
- }
- case 5:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x0000000007493C62]
- r14 = globals::base + 0x6CA3; //lea r14, [0xFFFFFFFFFBEB7225]
- rax = 0x4694415E362AF97D; //mov rax, 0x4694415E362AF97D
- rcx *= rax; //imul rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0xE; //shr rax, 0x0E
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x1C; //shr rax, 0x1C
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x38; //shr rax, 0x38
- rcx ^= rax; //xor rcx, rax
- rax = 0x2A796B075D8038A1; //mov rax, 0x2A796B075D8038A1
- rcx ^= rax; //xor rcx, rax
- rcx += r11; //add rcx, r11
- rax = 0x3212ABD7EB1A3183; //mov rax, 0x3212ABD7EB1A3183
- rcx += rax; //add rcx, rax
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = r11; //mov rax, r11
- rax *= r14; //imul rax, r14
- rcx -= rax; //sub rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x18; //shr rax, 0x18
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x30; //shr rax, 0x30
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 6:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007493793]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEB00B3]
- r12 = globals::base + 0x2407; //lea r12, [0xFFFFFFFFFBEB24AE]
- r13 = globals::base + 0xD54B; //lea r13, [0xFFFFFFFFFBEBD5E7]
- rax = rcx; //mov rax, rcx
- rax >>= 0x8; //shr rax, 0x08
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x10; //shr rax, 0x10
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x20; //shr rax, 0x20
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0xF; //shr rax, 0x0F
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x1E; //shr rax, 0x1E
- rcx ^= rax; //xor rcx, rax
- rdx = rcx; //mov rdx, rcx
- rdx >>= 0x3C; //shr rdx, 0x3C
- rax = r12; //mov rax, r12
- rax = ~rax; //not rax
- rdx ^= rax; //xor rdx, rax
- rdx ^= r11; //xor rdx, r11
- rcx ^= rdx; //xor rcx, rdx
- rax = rbx + 0x86d9; //lea rax, [rbx+0x86D9]
- rax += r11; //add rax, r11
- rcx ^= rax; //xor rcx, rax
- rax = 0x394D31FBFC54D5C7; //mov rax, 0x394D31FBFC54D5C7
- rcx *= rax; //imul rcx, rax
- rax = r13; //mov rax, r13
- rax = ~rax; //not rax
- rax *= r11; //imul rax, r11
- rcx ^= rax; //xor rcx, rax
- rax = 0xF248AD144683687F; //mov rax, 0xF248AD144683687F
- rcx *= rax; //imul rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- return rcx;
- }
- case 7:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x00000000074932DF]
- r15 = globals::base + 0xF2B7; //lea r15, [0xFFFFFFFFFBEBEEB6]
- r14 = globals::base + 0x727BCC8E; //lea r14, [0x000000006E66C881]
- rcx += r14; //add rcx, r14
- rdx = r11; //mov rdx, r11
- rdx = ~rdx; //not rdx
- rax = rdx; //mov rax, rdx
- rax ^= r15; //xor rax, r15
- rdx -= rax; //sub rdx, rax
- rcx += rdx; //add rcx, rdx
- rax = rcx; //mov rax, rcx
- rax >>= 0x18; //shr rax, 0x18
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x30; //shr rax, 0x30
- rcx ^= rax; //xor rcx, rax
- rax = 0x2B8B78BC1D92212A; //mov rax, 0x2B8B78BC1D92212A
- rcx -= rax; //sub rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x17; //shr rax, 0x17
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x2E; //shr rax, 0x2E
- rcx ^= rax; //xor rcx, rax
- rax = 0x49781D9754795626; //mov rax, 0x49781D9754795626
- rcx ^= rax; //xor rcx, rax
- rax = 0xE1A998C5EA9145DD; //mov rax, 0xE1A998C5EA9145DD
- rcx *= rax; //imul rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- return rcx;
- }
- case 8:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x0000000007492EC0]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAF7E0]
- rcx ^= r11; //xor rcx, r11
- rax = 0xD0FA4725C1F6A4DB; //mov rax, 0xD0FA4725C1F6A4DB
- rcx *= rax; //imul rcx, rax
- rcx += rbx; //add rcx, rbx
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = 0x2280D092AFB637A3; //mov rax, 0x2280D092AFB637A3
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x21; //shr rax, 0x21
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x1D; //shr rax, 0x1D
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x3A; //shr rax, 0x3A
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 9:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007492A90]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAF3B0]
- r14 = globals::base + 0xF805; //lea r14, [0xFFFFFFFFFBEBEBA4]
- rax = r11; //mov rax, r11
- rax *= r14; //imul rax, r14
- rcx -= rax; //sub rcx, rax
- rcx += r11; //add rcx, r11
- rax = globals::base + 0x34E2; //lea rax, [0xFFFFFFFFFBEB2803]
- rcx += rax; //add rcx, rax
- rax = 0xD670AE07CD87C44B; //mov rax, 0xD670AE07CD87C44B
- rcx *= rax; //imul rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x11; //shr rax, 0x11
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x22; //shr rax, 0x22
- rcx ^= rax; //xor rcx, rax
- rax = mem.Read<uintptr_t>(r10 + 0x15); //mov rax, [r10+0x15]
- rdx = 0x7DF246B4B47C04D; //mov rdx, 0x7DF246B4B47C04D
- rax *= rdx; //imul rax, rdx
- rcx *= rax; //imul rcx, rax
- rax = r11; //mov rax, r11
- rax -= rbx; //sub rax, rbx
- rax -= 0x3EA4E863; //sub rax, 0x3EA4E863
- rcx ^= rax; //xor rcx, rax
- rax = 0x6EAEB149F1BB523E; //mov rax, 0x6EAEB149F1BB523E
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 10:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007492740]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAF060]
- rcx += r11; //add rcx, r11
- rcx ^= rbx; //xor rcx, rbx
- rcx -= rbx; //sub rcx, rbx
- rax = 0xC2C77ADBEA06CC71; //mov rax, 0xC2C77ADBEA06CC71
- rcx *= rax; //imul rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x20; //shr rax, 0x20
- rcx ^= rax; //xor rcx, rax
- rax = 0x6ABDE99A4C942C1D; //mov rax, 0x6ABDE99A4C942C1D
- rcx -= rax; //sub rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0xB; //shr rax, 0x0B
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x16; //shr rax, 0x16
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x2C; //shr rax, 0x2C
- rcx ^= rax; //xor rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- return rcx;
- }
- case 11:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x0000000007492353]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAEC73]
- rax = rcx; //mov rax, rcx
- rax >>= 0xA; //shr rax, 0x0A
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x14; //shr rax, 0x14
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x28; //shr rax, 0x28
- rcx ^= rax; //xor rcx, rax
- rcx -= r11; //sub rcx, r11
- rax = rbx + 0x723d2a5a; //lea rax, [rbx+0x723D2A5A]
- rax += r11; //add rax, r11
- rcx ^= rax; //xor rcx, rax
- rax = 0x405646879A90A4B1; //mov rax, 0x405646879A90A4B1
- rcx *= rax; //imul rcx, rax
- rax = 0x7E1BE77430218FC2; //mov rax, 0x7E1BE77430218FC2
- rcx += rax; //add rcx, rax
- rax = 0xF28B8C5F9F41196A; //mov rax, 0xF28B8C5F9F41196A
- rcx ^= rax; //xor rcx, rax
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = rcx; //mov rax, rcx
- rax >>= 0xF; //shr rax, 0x0F
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x1E; //shr rax, 0x1E
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x3C; //shr rax, 0x3C
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 12:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007491E9E]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAE7BE]
- r15 = globals::base + 0x339332F9; //lea r15, [0x000000002F7E1AA6]
- rax = r11; //mov rax, r11
- rax *= r15; //imul rax, r15
- rcx -= rax; //sub rcx, rax
- rax = 0x3038E6AB6FEAABA9; //mov rax, 0x3038E6AB6FEAABA9
- rcx *= rax; //imul rcx, rax
- rcx ^= r11; //xor rcx, r11
- rcx += r11; //add rcx, r11
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- rcx -= rbx; //sub rcx, rbx
- rax = rcx; //mov rax, rcx
- rax >>= 0x25; //shr rax, 0x25
- rcx ^= rax; //xor rcx, rax
- rcx += r11; //add rcx, r11
- return rcx;
- }
- case 13:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r10, [0x0000000007491AFB]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAE41B]
- rax = globals::base + 0x45FE7DB0; //lea rax, [0x0000000041E96094]
- rax -= r11; //sub rax, r11
- rcx ^= rax; //xor rcx, rax
- rax = rbx + 0x44c85679; //lea rax, [rbx+0x44C85679]
- rax += r11; //add rax, r11
- rcx += rax; //add rcx, rax
- rcx *= mem.Read<uintptr_t>(r10 + 0x15); //imul rcx, [r10+0x15]
- rax = rcx; //mov rax, rcx
- rax >>= 0x1B; //shr rax, 0x1B
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x36; //shr rax, 0x36
- rcx ^= rax; //xor rcx, rax
- rax = 0xDC51C6CA5ECBE269; //mov rax, 0xDC51C6CA5ECBE269
- rcx *= rax; //imul rcx, rax
- rax = rbx * 0xFFFFFFFFFFFFFFFE; //imul rax, rbx, 0xFFFFFFFFFFFFFFFE
- rcx += rax; //add rcx, rax
- rax = 0xA8C2E47322E167D3; //mov rax, 0xA8C2E47322E167D3
- rcx -= r11; //sub rcx, r11
- rcx -= 0x6842; //sub rcx, 0x6842
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 14:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x00000000074916F4]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEAE014]
- rcx ^= rbx; //xor rcx, rbx
- rax = 0xC2092D064BD7621B; //mov rax, 0xC2092D064BD7621B
- rcx *= rax; //imul rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0xA; //shr rax, 0x0A
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x14; //shr rax, 0x14
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x28; //shr rax, 0x28
- rcx ^= rax; //xor rcx, rax
- rax = globals::base + 0xB084; //lea rax, [0xFFFFFFFFFBEB8D41]
- rcx += r11; //add rcx, r11
- rcx += rax; //add rcx, rax
- rax = r11; //mov rax, r11
- rax -= rbx; //sub rax, rbx
- rax -= 0xB9AC; //sub rax, 0xB9AC
- rcx ^= rax; //xor rcx, rax
- rax = 0x9883AEFFA28B11D0; //mov rax, 0x9883AEFFA28B11D0
- rcx ^= rax; //xor rcx, rax
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = rcx; //mov rax, rcx
- rax >>= 0x1D; //shr rax, 0x1D
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x3A; //shr rax, 0x3A
- rcx ^= rax; //xor rcx, rax
- return rcx;
- }
- case 15:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E36D9); //mov r9, [0x000000000749122C]
- rbx = globals::base; //lea rbx, [0xFFFFFFFFFBEADB4C]
- rcx ^= rbx; //xor rcx, rbx
- rax = 0x62EE0D555FE38340; //mov rax, 0x62EE0D555FE38340
- rcx -= rax; //sub rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x24; //shr rax, 0x24
- rcx ^= rax; //xor rcx, rax
- rcx *= mem.Read<uintptr_t>(r9 + 0x15); //imul rcx, [r9+0x15]
- rax = 0x8821DA37E07E4065; //mov rax, 0x8821DA37E07E4065
- rcx *= rax; //imul rcx, rax
- rcx += rbx; //add rcx, rbx
- rax = rcx; //mov rax, rcx
- rax >>= 0x14; //shr rax, 0x14
- rcx ^= rax; //xor rcx, rax
- rax = rcx; //mov rax, rcx
- rax >>= 0x28; //shr rax, 0x28
- rcx ^= rax; //xor rcx, rax
- rax = 0x6535948A0956C067; //mov rax, 0x6535948A0956C067
- rcx *= rax; //imul rcx, rax
- return rcx;
- }
- }
- }
- uintptr_t decrypt_client_active()
- {
- const uint64_t mb = globals::base;
- uint64_t rax = mb, rbx = mb, rcx = mb, rdx = mb, rdi = mb, rsi = mb, r8 = mb, r9 = mb, r10 = mb, r11 = mb, r12 = mb, r13 = mb, r14 = mb, r15 = mb;
- rax = mem.Read<uintptr_t>(rdx + 0xb82f500);
- if(!rax)
- return rax;
- rbx = globals::vaPeb; //mov rbx, gs:[rcx]
- //failed to translate: mov [rsp+0x68], rdi
- rcx = rbx; //mov rcx, rbx
- //failed to translate: mov [rsp+0x60], r12
- rcx = _rotr64(rcx, 0x1D); //ror rcx, 0x1D
- //failed to translate: mov [rsp+0x58], r13
- rcx &= 0xF;
- switch(rcx) {
- case 0:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x00000000095267A6]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF43121]
- rcx = 0x75A35BF5EC482D53; //mov rcx, 0x75A35BF5EC482D53
- rax -= rcx; //sub rax, rcx
- rcx = r11 + 0x39674f96; //lea rcx, [r11+0x39674F96]
- rcx += rbx; //add rcx, rbx
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x7; //shr rcx, 0x07
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xE; //shr rcx, 0x0E
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1C; //shr rcx, 0x1C
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x38; //shr rcx, 0x38
- rax ^= rcx; //xor rax, rcx
- rcx = 0x7ED1321242287D37; //mov rcx, 0x7ED1321242287D37
- rax *= rcx; //imul rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x2; //shr rcx, 0x02
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x4; //shr rcx, 0x04
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x8; //shr rcx, 0x08
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x10; //shr rcx, 0x10
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x20; //shr rcx, 0x20
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x22; //shr rcx, 0x22
- rax ^= rcx; //xor rax, rcx
- rax += r11; //add rax, r11
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- return rax;
- }
- case 1:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x000000000952629B]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF42C16]
- r12 = globals::base + 0x2B0E; //lea r12, [0xFFFFFFFFFDF4570D]
- r13 = globals::base + 0x2982AAEB; //lea r13, [0x000000002776D6DE]
- rdx = rbx; //mov rdx, rbx
- rdx = ~rdx; //not rdx
- rdx ^= r12; //xor rdx, r12
- rcx = r11; //mov rcx, r11
- rcx -= rdx; //sub rcx, rdx
- rax += rcx; //add rax, rcx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = rbx; //mov rcx, rbx
- rcx ^= r13; //xor rcx, r13
- rax -= rcx; //sub rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x5; //shr rcx, 0x05
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xA; //shr rcx, 0x0A
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x14; //shr rcx, 0x14
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x28; //shr rcx, 0x28
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x10; //shr rcx, 0x10
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x20; //shr rcx, 0x20
- rax ^= rcx; //xor rax, rcx
- rcx = 0x395F229C1F64329; //mov rcx, 0x395F229C1F64329
- rax *= rcx; //imul rax, rcx
- rcx = 0x90CE9B89EFABB41; //mov rcx, 0x90CE9B89EFABB41
- rax -= rcx; //sub rax, rcx
- return rax;
- }
- case 2:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009525D23]
- r14 = globals::base + 0x30F0A65E; //lea r14, [0x000000002EE4CCF0]
- r15 = globals::base + 0x8EAC; //lea r15, [0xFFFFFFFFFDF4B533]
- rdx = rbx; //mov rdx, rbx
- rdx = ~rdx; //not rdx
- rax += r15; //add rax, r15
- rcx = rbx; //mov rcx, rbx
- rcx *= r14; //imul rcx, r14
- rdx -= rcx; //sub rdx, rcx
- rax += rdx; //add rax, rdx
- rcx = 0xF7070315E5585D71; //mov rcx, 0xF7070315E5585D71
- rax ^= rcx; //xor rax, rcx
- rcx = 0x5C10EC95D52AE35C; //mov rcx, 0x5C10EC95D52AE35C
- rax += rcx; //add rax, rcx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = rax; //mov rcx, rax
- rcx >>= 0x9; //shr rcx, 0x09
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x12; //shr rcx, 0x12
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x24; //shr rcx, 0x24
- rax ^= rcx; //xor rax, rcx
- rcx = 0xEAF8DD4E7DAEE839; //mov rcx, 0xEAF8DD4E7DAEE839
- rax *= rcx; //imul rax, rcx
- rax -= rbx; //sub rax, rbx
- return rax;
- }
- case 3:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r9, [0x000000000952588F]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF4220A]
- rcx = rax; //mov rcx, rax
- rcx >>= 0x20; //shr rcx, 0x20
- rax ^= rcx; //xor rax, rcx
- rcx = 0x5EF0345657B7395; //mov rcx, 0x5EF0345657B7395
- rax *= rcx; //imul rax, rcx
- rcx = 0xACDBE6CC0EC7F1D6; //mov rcx, 0xACDBE6CC0EC7F1D6
- rax ^= rcx; //xor rax, rcx
- rax += rbx; //add rax, rbx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x28; //shr rcx, 0x28
- rax ^= rcx; //xor rax, rcx
- rax ^= r11; //xor rax, r11
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r9; //xor rcx, r9
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rax += r11; //add rax, r11
- return rax;
- }
- case 4:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009525423]
- r15 = globals::base + 0xA062; //lea r15, [0xFFFFFFFFFDF4BDF4]
- r12 = globals::base + 0x29D008DE; //lea r12, [0x0000000027C42665]
- rcx = 0x61F81B41A154355F; //mov rcx, 0x61F81B41A154355F
- rax += rcx; //add rax, rcx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = 0x60C7116DFD4132B; //mov rcx, 0x60C7116DFD4132B
- rax *= rcx; //imul rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x3; //shr rcx, 0x03
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x6; //shr rcx, 0x06
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xC; //shr rcx, 0x0C
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x18; //shr rcx, 0x18
- rax ^= rcx; //xor rax, rcx
- rdx = rax; //mov rdx, rax
- rdx >>= 0x30; //shr rdx, 0x30
- rdx ^= rax; //xor rdx, rax
- rax = rbx; //mov rax, rbx
- rax *= r12; //imul rax, r12
- rax += rdx; //add rax, rdx
- rcx = rbx; //mov rcx, rbx
- rcx *= r15; //imul rcx, r15
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x6; //shr rcx, 0x06
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xC; //shr rcx, 0x0C
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x18; //shr rcx, 0x18
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x30; //shr rcx, 0x30
- rax ^= rcx; //xor rax, rcx
- rcx = 0x7383B429035656CC; //mov rcx, 0x7383B429035656CC
- rax -= rcx; //sub rax, rcx
- return rax;
- }
- case 5:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009524EED]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF41868]
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1C; //shr rcx, 0x1C
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x38; //shr rcx, 0x38
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xD; //shr rcx, 0x0D
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1A; //shr rcx, 0x1A
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x34; //shr rcx, 0x34
- rax ^= rcx; //xor rax, rcx
- rcx = 0xFA0DDD2C604B9D1F; //mov rcx, 0xFA0DDD2C604B9D1F
- rax *= rcx; //imul rax, rcx
- rcx = globals::base + 0x46B0; //lea rcx, [0xFFFFFFFFFDF45D2A]
- rax -= rcx; //sub rax, rcx
- rax += rbx; //add rax, rbx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = 0x64F0F35E29D4C7B9; //mov rcx, 0x64F0F35E29D4C7B9
- rax *= rcx; //imul rax, rcx
- rax -= r11; //sub rax, r11
- rax += 0xFFFFFFFFFFFF24CA; //add rax, 0xFFFFFFFFFFFF24CA
- rax += rbx; //add rax, rbx
- rcx = 0x249EDB181C0475B9; //mov rcx, 0x249EDB181C0475B9
- rax ^= rcx; //xor rax, rcx
- return rax;
- }
- case 6:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009524AC1]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF41431]
- rcx = rax; //mov rcx, rax
- rcx >>= 0x10; //shr rcx, 0x10
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x20; //shr rcx, 0x20
- rax ^= rcx; //xor rax, rcx
- rax += rbx; //add rax, rbx
- rdx = 0; //and rdx, 0xFFFFFFFFC0000000
- rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
- rdx ^= r10; //xor rdx, r10
- rcx = rbx; //mov rcx, rbx
- rcx -= r11; //sub rcx, r11
- r15 = 0xD29D6FF40A4A734D; //mov r15, 0xD29D6FF40A4A734D
- rcx += r15; //add rcx, r15
- rdx = ~rdx; //not rdx
- rax += rcx; //add rax, rcx
- rax *= mem.Read<uintptr_t>(rdx + 0xf); //imul rax, [rdx+0x0F]
- rcx = rbx; //mov rcx, rbx
- rcx -= r11; //sub rcx, r11
- rcx -= 0x160C0564; //sub rcx, 0x160C0564
- rax ^= rcx; //xor rax, rcx
- rcx = rbx; //mov rcx, rbx
- rcx = ~rcx; //not rcx
- rcx -= r11; //sub rcx, r11
- rcx -= 0x473E; //sub rcx, 0x473E
- rax ^= rcx; //xor rax, rcx
- rcx = 0xA4D2A49AD11FF335; //mov rcx, 0xA4D2A49AD11FF335
- rax *= rcx; //imul rax, rcx
- return rax;
- }
- case 7:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009524623]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF40F9E]
- rcx = 0x8A9DA3385FC38B18; //mov rcx, 0x8A9DA3385FC38B18
- rax ^= rcx; //xor rax, rcx
- rax ^= rbx; //xor rax, rbx
- rdx = 0; //and rdx, 0xFFFFFFFFC0000000
- rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
- rdx ^= r10; //xor rdx, r10
- rdx = ~rdx; //not rdx
- rax *= mem.Read<uintptr_t>(rdx + 0xf); //imul rax, [rdx+0x0F]
- rdx = rbx; //mov rdx, rbx
- rcx = globals::base + 0x49AEB26D; //lea rcx, [0x0000000047A2C131]
- rdx = ~rdx; //not rdx
- rcx = ~rcx; //not rcx
- rdx *= rcx; //imul rdx, rcx
- rax ^= rdx; //xor rax, rdx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xF; //shr rcx, 0x0F
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1E; //shr rcx, 0x1E
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x3C; //shr rcx, 0x3C
- rax ^= rcx; //xor rax, rcx
- rcx = 0xF4D742FA3C9800A5; //mov rcx, 0xF4D742FA3C9800A5
- rax *= rcx; //imul rax, rcx
- rcx = 0x10F2E1DC08054DCE; //mov rcx, 0x10F2E1DC08054DCE
- rax ^= r11; //xor rax, r11
- rax -= rcx; //sub rax, rcx
- return rax;
- }
- case 8:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x00000000095241CD]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF40B48]
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = rax; //mov rcx, rax
- rcx >>= 0x7; //shr rcx, 0x07
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xE; //shr rcx, 0x0E
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1C; //shr rcx, 0x1C
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x38; //shr rcx, 0x38
- rax ^= rcx; //xor rax, rcx
- rcx = 0x95279C81D5942D9; //mov rcx, 0x95279C81D5942D9
- rax *= rcx; //imul rax, rcx
- rcx = 0x43F7B4F4DCCCEAA1; //mov rcx, 0x43F7B4F4DCCCEAA1
- rax -= r11; //sub rax, r11
- rax -= rcx; //sub rax, rcx
- rax ^= rbx; //xor rax, rbx
- rax ^= r11; //xor rax, r11
- rcx = 0x41A42223B53D6ABF; //mov rcx, 0x41A42223B53D6ABF
- rax *= rcx; //imul rax, rcx
- return rax;
- }
- case 9:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r9, [0x0000000009523DB9]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF40734]
- rax ^= r11; //xor rax, r11
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r9; //xor rcx, r9
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rax += rbx; //add rax, rbx
- rax ^= rbx; //xor rax, rbx
- rax -= r11; //sub rax, r11
- rcx = 0x4B6230D25E9BA161; //mov rcx, 0x4B6230D25E9BA161
- rax *= rcx; //imul rax, rcx
- rax += rbx; //add rax, rbx
- rcx = rax; //mov rcx, rax
- rcx >>= 0xE; //shr rcx, 0x0E
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1C; //shr rcx, 0x1C
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x38; //shr rcx, 0x38
- rax ^= rcx; //xor rax, rcx
- return rax;
- }
- case 10:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x000000000952390A]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF4027A]
- r15 = globals::base + 0x2BB81C0C; //lea r15, [0x0000000029AC1E6F]
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = rbx; //mov rcx, rbx
- rcx -= r11; //sub rcx, r11
- rcx += 0xFFFFFFFFFFFFCAD7; //add rcx, 0xFFFFFFFFFFFFCAD7
- rax += rcx; //add rax, rcx
- rcx = rbx; //mov rcx, rbx
- rcx = ~rcx; //not rcx
- rcx += r15; //add rcx, r15
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x12; //shr rcx, 0x12
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x24; //shr rcx, 0x24
- rax ^= rcx; //xor rax, rcx
- rdx = rbx; //mov rdx, rbx
- rcx = globals::base + 0xEF52; //lea rcx, [0xFFFFFFFFFDF4F051]
- rdx = ~rdx; //not rdx
- rax += rcx; //add rax, rcx
- rax += rdx; //add rax, rdx
- rcx = 0x6763BC8B6D17752D; //mov rcx, 0x6763BC8B6D17752D
- rax *= rcx; //imul rax, rcx
- rcx = 0x8BEF7389669EF866; //mov rcx, 0x8BEF7389669EF866
- rax ^= rcx; //xor rax, rcx
- return rax;
- }
- case 11:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x00000000095233F7]
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rax ^= rbx; //xor rax, rbx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x1F; //shr rcx, 0x1F
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x3E; //shr rcx, 0x3E
- rax ^= rcx; //xor rax, rcx
- rdx = rbx; //mov rdx, rbx
- rdx = ~rdx; //not rdx
- rcx = globals::base + 0x923A; //lea rcx, [0xFFFFFFFFFDF48D8E]
- rcx = ~rcx; //not rcx
- rdx += rcx; //add rdx, rcx
- rax ^= rdx; //xor rax, rdx
- rax += rbx; //add rax, rbx
- rcx = 0x9FC5A5033F4BA222; //mov rcx, 0x9FC5A5033F4BA222
- rax ^= rcx; //xor rax, rcx
- rcx = 0xEE85007B158F0715; //mov rcx, 0xEE85007B158F0715
- rax *= rcx; //imul rax, rcx
- rcx = 0x237F4FB43D19B0AB; //mov rcx, 0x237F4FB43D19B0AB
- rax ^= rcx; //xor rax, rcx
- return rax;
- }
- case 12:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009522F27]
- r11 = globals::base + 0x12A67ACE; //lea r11, [0x00000000109A7364]
- rcx = 0x1A8D56D056CAA6AD; //mov rcx, 0x1A8D56D056CAA6AD
- rax *= rcx; //imul rax, rcx
- rcx = r11; //mov rcx, r11
- rcx = ~rcx; //not rcx
- rcx -= rbx; //sub rcx, rbx
- rax ^= rcx; //xor rax, rcx
- rax ^= rbx; //xor rax, rbx
- rcx = 0xCF3780F20368ADFF; //mov rcx, 0xCF3780F20368ADFF
- rax *= rcx; //imul rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x15; //shr rcx, 0x15
- rax ^= rcx; //xor rax, rcx
- rdx = 0; //and rdx, 0xFFFFFFFFC0000000
- rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
- rcx = rax; //mov rcx, rax
- rdx ^= r10; //xor rdx, r10
- rcx >>= 0x2A; //shr rcx, 0x2A
- rax ^= rcx; //xor rax, rcx
- rdx = ~rdx; //not rdx
- rax *= mem.Read<uintptr_t>(rdx + 0xf); //imul rax, [rdx+0x0F]
- rcx = 0x620FE8A3984FA9A2; //mov rcx, 0x620FE8A3984FA9A2
- rax ^= rcx; //xor rax, rcx
- rax += rbx; //add rax, rbx
- return rax;
- }
- case 13:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r9, [0x0000000009522B9B]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF3F516]
- rax += r11; //add rax, r11
- rcx = rax; //mov rcx, rax
- rcx >>= 0x10; //shr rcx, 0x10
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x20; //shr rcx, 0x20
- rax ^= rcx; //xor rax, rcx
- rcx = 0x153249CC4096DEBB; //mov rcx, 0x153249CC4096DEBB
- rax += rcx; //add rax, rcx
- rax += rbx; //add rax, rbx
- rax ^= r11; //xor rax, r11
- rcx = 0x3FEF9376461CD77C; //mov rcx, 0x3FEF9376461CD77C
- rax += rcx; //add rax, rcx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r9; //xor rcx, r9
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = 0xCD5C890FC6052E0B; //mov rcx, 0xCD5C890FC6052E0B
- rax *= rcx; //imul rax, rcx
- return rax;
- }
- case 14:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x00000000095226A0]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF3F01B]
- r12 = globals::base + 0x2858; //lea r12, [0xFFFFFFFFFDF41851]
- r13 = globals::base + 0xB818; //lea r13, [0xFFFFFFFFFDF4A804]
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rax -= r11; //sub rax, r11
- rcx = rax; //mov rcx, rax
- rdx = rbx; //mov rdx, rbx
- rdx *= r13; //imul rdx, r13
- rcx >>= 0x28; //shr rcx, 0x28
- rdx ^= rcx; //xor rdx, rcx
- rax ^= rdx; //xor rax, rdx
- rcx = 0x51E63BDB2878DA3D; //mov rcx, 0x51E63BDB2878DA3D
- rax *= rcx; //imul rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x17; //shr rcx, 0x17
- rax ^= rcx; //xor rax, rcx
- rcx = globals::base + 0x54FCAA3A; //lea rcx, [0x0000000052F0973A]
- rdx = rax; //mov rdx, rax
- rcx = ~rcx; //not rcx
- rdx >>= 0x2E; //shr rdx, 0x2E
- rcx ^= rbx; //xor rcx, rbx
- rax ^= rdx; //xor rax, rdx
- rax -= rcx; //sub rax, rcx
- rcx = rbx; //mov rcx, rbx
- rcx ^= r12; //xor rcx, r12
- rax -= rcx; //sub rax, rcx
- return rax;
- }
- case 15:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E367E); //mov r10, [0x0000000009522275]
- r11 = globals::base; //lea r11, [0xFFFFFFFFFDF3EBF0]
- r12 = globals::base + 0x6D7996B9; //lea r12, [0x000000006B6D8287]
- rax += r11; //add rax, r11
- rcx = rax; //mov rcx, rax
- rcx >>= 0x16; //shr rcx, 0x16
- rax ^= rcx; //xor rax, rcx
- rcx = rax; //mov rcx, rax
- rcx >>= 0x2C; //shr rcx, 0x2C
- rax ^= rcx; //xor rax, rcx
- rcx = r12; //mov rcx, r12
- rcx = ~rcx; //not rcx
- rcx *= rbx; //imul rcx, rbx
- rax += rcx; //add rax, rcx
- rdx = 0xEEC920FB0911427A; //mov rdx, 0xEEC920FB0911427A
- rax += rdx; //add rax, rdx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rax *= mem.Read<uintptr_t>(rcx + 0xf); //imul rax, [rcx+0x0F]
- rcx = globals::base + 0x9A06; //lea rcx, [0xFFFFFFFFFDF4820D]
- rcx = ~rcx; //not rcx
- rax += rcx; //add rax, rcx
- rcx = 0xC2732136FBDEB5CD; //mov rcx, 0xC2732136FBDEB5CD
- rax -= rbx; //sub rax, rbx
- rax ^= rcx; //xor rax, rcx
- rcx = 0x8A516BBDDE1E408F; //mov rcx, 0x8A516BBDDE1E408F
- rax *= rcx; //imul rax, rcx
- return rax;
- }
- }
- }
- uintptr_t decrypt_bone_base()
- {
- uint64_t mb = base_address;
- uint64_t rax = mb, rbx = mb, rcx = mb, rdx = mb, rdi = mb, rsi = mb, r8 = mb, r9 = mb, r10 = mb, r11 = mb, r12 = mb, r13 = mb, r14 = mb, r15 = mb;
- rdx = mem.Read<uintptr_t>(globals::base + 0x119BE2E8);
- if(!rdx)
- return rdx;
- r11 = globals::vaPeb; //mov r11, gs:[rax]
- rax = r11; //mov rax, r11
- rax >>= 0x13; //shr rax, 0x13
- rax &= 0xF;
- switch(rax)
- {
- case 0:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x000000000791C289]
- rcx = globals::base + 0x8C93; //lea rcx, [0xFFFFFFFFFC34176C]
- rax = rcx; //mov rax, rcx
- rax -= r11; //sub rax, r11
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x15; //shr rax, 0x15
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x2A; //shr rax, 0x2A
- rdx ^= rax; //xor rdx, rax
- rdx += r11; //add rdx, r11
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rax = globals::base; //lea rax, [0xFFFFFFFFFC338765]
- rdx ^= rax; //xor rdx, rax
- rax = 0x860534C8C01FEA7B; //mov rax, 0x860534C8C01FEA7B
- rdx *= rax; //imul rdx, rax
- rax = 0xEE334BF3EC572D68; //mov rax, 0xEE334BF3EC572D68
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 1:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x000000000791BE13]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rax = 0x8A4B98169395E686; //mov rax, 0x8A4B98169395E686
- rdx ^= rax; //xor rdx, rax
- rax = 0xC3957EB9F84EC5AF; //mov rax, 0xC3957EB9F84EC5AF
- rdx *= rax; //imul rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xE; //shr rax, 0x0E
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x1C; //shr rax, 0x1C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x38; //shr rax, 0x38
- rdx ^= rax; //xor rdx, rax
- rax = globals::base + 0x31CB; //lea rax, [0xFFFFFFFFFC33B43F]
- rax -= r11; //sub rax, r11
- rdx += rax; //add rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xD; //shr rax, 0x0D
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x1A; //shr rax, 0x1A
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x34; //shr rax, 0x34
- rdx ^= rax; //xor rdx, rax
- rax = globals::base + 0xDF5D; //lea rax, [0xFFFFFFFFFC346460]
- rax = ~rax; //not rax
- rax ^= r11; //xor rax, r11
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 2:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r9, [0x000000000791B8F2]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r9; //xor rax, r9
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rax = globals::base + 0x47C2AE1B; //lea rax, [0x0000000043F62E95]
- rax = ~rax; //not rax
- rax ^= r11; //xor rax, r11
- rax += r11; //add rax, r11
- rdx += rax; //add rdx, rax
- rax = 0x94073D91C803188D; //mov rax, 0x94073D91C803188D
- rdx ^= rax; //xor rdx, rax
- rax = 0x2EEA8A0831CE333B; //mov rax, 0x2EEA8A0831CE333B
- rdx *= rax; //imul rdx, rax
- rdx += r11; //add rdx, r11
- rax = rdx; //mov rax, rdx
- rax >>= 0x13; //shr rax, 0x13
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x26; //shr rax, 0x26
- rdx ^= rax; //xor rdx, rax
- rax = 0xD4E2CCE5B7959CA0; //mov rax, 0xD4E2CCE5B7959CA0
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 3:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r9, [0x000000000791B4F7]
- rax = rdx; //mov rax, rdx
- rax >>= 0x13; //shr rax, 0x13
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x26; //shr rax, 0x26
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x24; //shr rax, 0x24
- rdx ^= rax; //xor rdx, rax
- rax = 0x764F15DD269101D3; //mov rax, 0x764F15DD269101D3
- rdx *= rax; //imul rdx, rax
- rax = 0x34E81942B113C230; //mov rax, 0x34E81942B113C230
- rdx -= rax; //sub rdx, rax
- rax = 0x13805FC46F4FC36A; //mov rax, 0x13805FC46F4FC36A
- rdx += rax; //add rdx, rax
- rax = r11; //mov rax, r11
- rax -= globals::base; //sub rax, [rsp+0xB8] -- didn't find trace -> use base
- rax += 0xFFFFFFFFFFFF85F3; //add rax, 0xFFFFFFFFFFFF85F3
- rdx += rax; //add rdx, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r9; //xor rax, r9
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rdx ^= r11; //xor rdx, r11
- rax = globals::base + 0x114B; //lea rax, [0xFFFFFFFFFC338D85]
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 4:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r9, [0x000000000791AF5D]
- rax = rdx; //mov rax, rdx
- rax >>= 0x11; //shr rax, 0x11
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x22; //shr rax, 0x22
- rdx ^= rax; //xor rdx, rax
- rax = 0x2CFB6FB2F3BAD3C; //mov rax, 0x2CFB6FB2F3BAD3C
- rdx -= rax; //sub rdx, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r9; //xor rax, r9
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rax = 0xEED0F28134CE8447; //mov rax, 0xEED0F28134CE8447
- rdx *= rax; //imul rdx, rax
- rax = 0x52D4170A67BFFCB2; //mov rax, 0x52D4170A67BFFCB2
- rdx ^= rax; //xor rdx, rax
- rdx += r11; //add rdx, r11
- rax = rdx; //mov rax, rdx
- rax >>= 0x16; //shr rax, 0x16
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x2C; //shr rax, 0x2C
- rdx ^= rax; //xor rdx, rax
- rdx ^= r11; //xor rdx, r11
- return rdx;
- }
- case 5:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x000000000791A996]
- rcx = globals::base + 0x654BDD13; //lea rcx, [0x00000000617F4F09]
- rax = rcx; //mov rax, rcx
- rax = ~rax; //not rax
- rax += 1; //inc rax
- rax += r11; //add rax, r11
- rdx += rax; //add rdx, rax
- rax = 0x4A2AFA53025C5181; //mov rax, 0x4A2AFA53025C5181
- rdx *= rax; //imul rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x28; //shr rax, 0x28
- rdx ^= rax; //xor rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC336ED0]
- rcx = rax + 0xa045; //lea rcx, [rax+0xA045]
- rax += 0x19B7DBCB; //add rax, 0x19B7DBCB
- rax += r11; //add rax, r11
- rcx += r11; //add rcx, r11
- rcx ^= rax; //xor rcx, rax
- rdx ^= rcx; //xor rdx, rcx
- rax = 0x574A3A5B7408079B; //mov rax, 0x574A3A5B7408079B
- rdx *= rax; //imul rdx, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- return rdx;
- }
- case 6:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x000000000791A58A]
- rcx = globals::base + 0x4951; //lea rcx, [0xFFFFFFFFFC33B731]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rdx += r11; //add rdx, r11
- rax = r11; //mov rax, r11
- rax *= rcx; //imul rax, rcx
- rdx += rax; //add rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC336C3F]
- rax += 0x1D37B933; //add rax, 0x1D37B933
- rax += r11; //add rax, r11
- rdx += rax; //add rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x9; //shr rax, 0x09
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x12; //shr rax, 0x12
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x24; //shr rax, 0x24
- rdx ^= rax; //xor rdx, rax
- rax = 0x6C2A29044A40E4C7; //mov rax, 0x6C2A29044A40E4C7
- rdx *= rax; //imul rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC336BD9]
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x3; //shr rax, 0x03
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x6; //shr rax, 0x06
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xC; //shr rax, 0x0C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x18; //shr rax, 0x18
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x30; //shr rax, 0x30
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 7:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x000000000791A15A]
- rax = globals::base; //lea rax, [0xFFFFFFFFFC33686F]
- rdx += rax; //add rdx, rax
- rax = 0x5F80490A38DB3901; //mov rax, 0x5F80490A38DB3901
- rdx ^= rax; //xor rdx, rax
- rax = 0x4EC9DC6A5902297D; //mov rax, 0x4EC9DC6A5902297D
- rdx -= rax; //sub rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x25; //shr rax, 0x25
- rdx ^= rax; //xor rdx, rax
- rax = r11; //mov rax, r11
- uintptr_t RSP_0x30;
- RSP_0x30 = globals::base + 0xCEFB; //lea rax, [0xFFFFFFFFFC343901] : RSP+0x30
- rax ^= RSP_0x30; //xor rax, [rsp+0x30]
- rdx += rax; //add rdx, rax
- rax = 0x92B34BC27C367071; //mov rax, 0x92B34BC27C367071
- rdx *= rax; //imul rdx, rax
- rdx -= r11; //sub rdx, r11
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- return rdx;
- }
- case 8:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x0000000007919CE0]
- rax = 0xE62DA6375F493113; //mov rax, 0xE62DA6375F493113
- rdx *= rax; //imul rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC3362FA]
- rdx -= rax; //sub rdx, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rdx -= r11; //sub rdx, r11
- rax = rdx; //mov rax, rdx
- rax >>= 0xF; //shr rax, 0x0F
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x1E; //shr rax, 0x1E
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x3C; //shr rax, 0x3C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x3; //shr rax, 0x03
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x6; //shr rax, 0x06
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xC; //shr rax, 0x0C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x18; //shr rax, 0x18
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x30; //shr rax, 0x30
- rdx ^= rax; //xor rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC336161]
- rax += 0xFAB2; //add rax, 0xFAB2
- rax += r11; //add rax, r11
- rdx ^= rax; //xor rdx, rax
- rdx ^= r11; //xor rdx, r11
- rax = globals::base + 0x5723; //lea rax, [0xFFFFFFFFFC33BB52]
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 9:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x0000000007919794]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rdx += r11; //add rdx, r11
- rax = globals::base + 0x429D; //lea rax, [0xFFFFFFFFFC33A1DB]
- rdx += rax; //add rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC335F34]
- rax += 0xF1EC; //add rax, 0xF1EC
- rax += r11; //add rax, r11
- rdx ^= rax; //xor rdx, rax
- rax = globals::base + 0x5304B0E6; //lea rax, [0x000000004F381007]
- rdx ^= r11; //xor rdx, r11
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x22; //shr rax, 0x22
- rdx ^= rax; //xor rdx, rax
- rax = 0xEE899EDDAF56550; //mov rax, 0xEE899EDDAF56550
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xE; //shr rax, 0x0E
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x1C; //shr rax, 0x1C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x38; //shr rax, 0x38
- rdx ^= rax; //xor rdx, rax
- rax = 0x39D515C223A57391; //mov rax, 0x39D515C223A57391
- rdx *= rax; //imul rdx, rax
- return rdx;
- }
- case 10:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x00000000079192E3]
- rax = rdx; //mov rax, rdx
- rax >>= 0xF; //shr rax, 0x0F
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x1E; //shr rax, 0x1E
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x3C; //shr rax, 0x3C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x13; //shr rax, 0x13
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x26; //shr rax, 0x26
- rdx ^= rax; //xor rdx, rax
- rax = r11; //mov rax, r11
- rax = ~rax; //not rax
- uintptr_t RSP_0xA8;
- RSP_0xA8 = globals::base + 0x1A3D; //lea rax, [0xFFFFFFFFFC3375CC] : RSP+0xA8
- rax *= RSP_0xA8; //imul rax, [rsp+0xA8]
- rdx ^= rax; //xor rdx, rax
- rax = 0x8330B389343DA675; //mov rax, 0x8330B389343DA675
- rdx *= rax; //imul rdx, rax
- rax = 0x5A325A7184C15E55; //mov rax, 0x5A325A7184C15E55
- rdx -= rax; //sub rdx, rax
- rax = 0xE28957C95B7E497; //mov rax, 0xE28957C95B7E497
- rdx += rax; //add rdx, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rdx -= r11; //sub rdx, r11
- return rdx;
- }
- case 11:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x0000000007918DF0]
- r15 = globals::base + 0x67B591A2; //lea r15, [0x0000000063E8E832]
- rax = rdx; //mov rax, rdx
- rax >>= 0x22; //shr rax, 0x22
- rdx ^= rax; //xor rdx, rax
- rax = r15; //mov rax, r15
- rax = ~rax; //not rax
- rax ^= r11; //xor rax, r11
- rax += r11; //add rax, r11
- rdx -= rax; //sub rdx, rax
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rdx ^= r11; //xor rdx, r11
- rax = 0x112AEF7CBA9BEDF1; //mov rax, 0x112AEF7CBA9BEDF1
- rdx *= rax; //imul rdx, rax
- rax = 0x792205E77EAA6797; //mov rax, 0x792205E77EAA6797
- rdx ^= rax; //xor rdx, rax
- return rdx;
- }
- case 12:
- {
- r9 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r9, [0x0000000007918A46]
- r15 = globals::base + 0x70E4B3E1; //lea r15, [0x000000006D1806C7]
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r9; //xor rax, r9
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rax = 0x33BF00DD8A073650; //mov rax, 0x33BF00DD8A073650
- rdx -= rax; //sub rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xA; //shr rax, 0x0A
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x14; //shr rax, 0x14
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x28; //shr rax, 0x28
- rdx ^= rax; //xor rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC33505F]
- rdx ^= rax; //xor rdx, rax
- rax = r15; //mov rax, r15
- rax = ~rax; //not rax
- rdx += rax; //add rdx, rax
- rax = 0x37300D9E69A77B2F; //mov rax, 0x37300D9E69A77B2F
- rdx *= rax; //imul rdx, rax
- rdx -= r11; //sub rdx, r11
- return rdx;
- }
- case 13:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x0000000007918656]
- r15 = globals::base + 0x666C9DA0; //lea r15, [0x00000000629FEC96]
- rax = r11; //mov rax, r11
- rax ^= r15; //xor rax, r15
- rdx -= rax; //sub rdx, rax
- rax = 0x124569EA4125D98; //mov rax, 0x124569EA4125D98
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x5; //shr rax, 0x05
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xA; //shr rax, 0x0A
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x14; //shr rax, 0x14
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x28; //shr rax, 0x28
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x1A; //shr rax, 0x1A
- rdx ^= rax; //xor rdx, rax
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rax = rdx; //mov rax, rdx
- rcx ^= r10; //xor rcx, r10
- rax >>= 0x34; //shr rax, 0x34
- rcx = ~rcx; //not rcx
- rdx ^= rax; //xor rdx, rax
- rdx *= mem.Read<uintptr_t>(rcx + 0x17); //imul rdx, [rcx+0x17]
- rdx ^= r11; //xor rdx, r11
- rax = 0xD83F30F92C64DF4F; //mov rax, 0xD83F30F92C64DF4F
- rdx ^= rax; //xor rdx, rax
- rax = 0xB69AFD2628432A9D; //mov rax, 0xB69AFD2628432A9D
- rdx *= rax; //imul rdx, rax
- return rdx;
- }
- case 14:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x0000000007918222]
- rax = rdx; //mov rax, rdx
- rax >>= 0x1B; //shr rax, 0x1B
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rcx = 0; //and rcx, 0xFFFFFFFFC0000000
- rax >>= 0x36; //shr rax, 0x36
- rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
- rdx ^= rax; //xor rdx, rax
- rcx ^= r10; //xor rcx, r10
- rcx = ~rcx; //not rcx
- rdx *= mem.Read<uintptr_t>(rcx + 0x17); //imul rdx, [rcx+0x17]
- rcx = globals::base + 0x5113; //lea rcx, [0xFFFFFFFFFC339B7E]
- rax = 0xDC4274449EFE767B; //mov rax, 0xDC4274449EFE767B
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x6; //shr rax, 0x06
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0xC; //shr rax, 0x0C
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x18; //shr rax, 0x18
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x30; //shr rax, 0x30
- rdx ^= rax; //xor rdx, rax
- rax = r11; //mov rax, r11
- rax ^= rcx; //xor rax, rcx
- rdx -= rax; //sub rdx, rax
- rax = 0x4480AA60A21867F9; //mov rax, 0x4480AA60A21867F9
- rdx *= rax; //imul rdx, rax
- rax = globals::base; //lea rax, [0xFFFFFFFFFC334756]
- rax += 0xD03A; //add rax, 0xD03A
- rax += r11; //add rax, r11
- rdx += rax; //add rdx, rax
- return rdx;
- }
- case 15:
- {
- r10 = mem.Read<uintptr_t>(globals::base + 0xB5E374D); //mov r10, [0x0000000007917D4D]
- r12 = globals::base + 0x6744783A; //lea r12, [0x000000006377BE18]
- rdx += r11; //add rdx, r11
- rax = r11; //mov rax, r11
- rax = ~rax; //not rax
- uintptr_t RSP_0xA8;
- RSP_0xA8 = globals::base + 0x642A39AC; //lea rax, [0x00000000605D7FA5] : RSP+0xA8
- rax ^= RSP_0xA8; //xor rax, [rsp+0xA8]
- rdx -= rax; //sub rdx, rax
- rdx ^= r11; //xor rdx, r11
- rdx ^= r12; //xor rdx, r12
- rax = 0; //and rax, 0xFFFFFFFFC0000000
- rax = _rotl64(rax, 0x10); //rol rax, 0x10
- rax ^= r10; //xor rax, r10
- rax = ~rax; //not rax
- rdx *= mem.Read<uintptr_t>(rax + 0x17); //imul rdx, [rax+0x17]
- rax = 0x54750E0E4638841A; //mov rax, 0x54750E0E4638841A
- rdx += rax; //add rdx, rax
- rax = 0x17257FE07A931EB4; //mov rax, 0x17257FE07A931EB4
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x4; //shr rax, 0x04
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x8; //shr rax, 0x08
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x10; //shr rax, 0x10
- rdx ^= rax; //xor rdx, rax
- rax = rdx; //mov rax, rdx
- rax >>= 0x20; //shr rax, 0x20
- rdx ^= rax; //xor rdx, rax
- rax = 0x7493CCED6314B08B; //mov rax, 0x7493CCED6314B08B
- rdx *= rax; //imul rdx, rax
- return rdx;
- }
- }
- };
- uint16_t get_bone_index(const Driver& driver, uint32_t bone_index)
- {
- const uint64_t mb = globals::base;
- uint64_t rax = mb, rbx = mb, rcx = mb, rdx = mb, rdi = mb, rsi = mb, r8 = mb, r9 = mb, r10 = mb, r11 = mb, r12 = mb, r13 = mb, r14 = mb, r15 = mb;
- rbx = bone_index;
- rcx = rbx * 0x13C8;
- rax = 0xCB182C584BD5193; //mov rax, 0xCB182C584BD5193
- r11 = globals::base; //lea r11, [0xFFFFFFFFFD179F8A]
- rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx
- rax = rcx; //mov rax, rcx
- r10 = 0xD6FB75C08B670E5B; //mov r10, 0xD6FB75C08B670E5B
- rax -= rdx; //sub rax, rdx
- rax >>= 0x1; //shr rax, 0x01
- rax += rdx; //add rax, rdx
- rax >>= 0xC; //shr rax, 0x0C
- rax = rax * 0x1E7D; //imul rax, rax, 0x1E7D
- rcx -= rax; //sub rcx, rax
- rax = 0x4078E2A8FCDA18EF; //mov rax, 0x4078E2A8FCDA18EF
- r8 = rcx * 0x1E7D; //imul r8, rcx, 0x1E7D
- rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
- rdx >>= 0xB; //shr rdx, 0x0B
- rax = rdx * 0x1FC4; //imul rax, rdx, 0x1FC4
- r8 -= rax; //sub r8, rax
- rax = 0xF0F0F0F0F0F0F0F1; //mov rax, 0xF0F0F0F0F0F0F0F1
- rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
- rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77
- rdx >>= 0x6; //shr rdx, 0x06
- rcx = rdx * 0x44; //imul rcx, rdx, 0x44
- rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
- rax = r8; //mov rax, r8
- rax -= rdx; //sub rax, rdx
- rax >>= 0x1; //shr rax, 0x01
- rax += rdx; //add rax, rdx
- rax >>= 0x6; //shr rax, 0x06
- rcx += rax; //add rcx, rax
- rax = rcx * 0xFA; //imul rax, rcx, 0xFA
- rcx = r8 * 0xFC; //imul rcx, r8, 0xFC
- rcx -= rax; //sub rcx, rax
- rax = mem.Read<uint16_t>(rcx + r11 * 1 + 0xAA00250); //movzx eax, word ptr [rcx+r11*1+0xAA00250]
- r8 = rax * 0x13C8; //imul r8, rax, 0x13C8
- rax = r10; //mov rax, r10
- rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
- rax = r10; //mov rax, r10
- rdx >>= 0xD; //shr rdx, 0x0D
- rcx = rdx * 0x261B; //imul rcx, rdx, 0x261B
- r8 -= rcx; //sub r8, rcx
- r9 = r8 * 0x2F75; //imul r9, r8, 0x2F75
- rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
- rdx >>= 0xD; //shr rdx, 0x0D
- rax = rdx * 0x261B; //imul rax, rdx, 0x261B
- r9 -= rax; //sub r9, rax
- rax = 0x8FB823EE08FB823F; //mov rax, 0x8FB823EE08FB823F
- rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
- rax = 0x579D6EE340579D6F; //mov rax, 0x579D6EE340579D6F
- rdx >>= 0x5; //shr rdx, 0x05
- rcx = rdx * 0x39; //imul rcx, rdx, 0x39
- rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
- rdx >>= 0x6; //shr rdx, 0x06
- rcx += rdx; //add rcx, rdx
- rax = rcx * 0x176; //imul rax, rcx, 0x176
- rcx = r9 * 0x178; //imul rcx, r9, 0x178
- rcx -= rax; //sub rcx, rax
- rsi = mem.Read<uint16_t>(rcx + r11 * 1 + 0xAA044C0); //movsx esi, word ptr [rcx+r11*1+0xAA044C0]
- return rsi;
- }
- constexpr auto timestamp = 0x686EFE10;
- constexpr auto ref_def_ptr = 0xCC45C70;
- constexpr auto name_array = 0xCDB7988;
- constexpr auto name_array_pos = 0x3038; // 0x4C70 for MW1(2019)
- constexpr auto name_array_size = 0xC8;
- constexpr auto loot_ptr = 0xE60CAA8;
- constexpr auto loot_pos = 0x170;
- constexpr auto camera_base = 0xC9485B0;
- constexpr auto camera_pos = 0x204;
- constexpr auto local_index = 0x86C60;
- constexpr auto local_index_pos = 0x38C;
- constexpr auto recoil = 0x85BD8;
- constexpr auto game_mode = 0xB838BA8;
- constexpr auto weapon_definitions = 0xCB16F70;
- constexpr auto distribute = 0x1075F928;
- uint32_t o_visible_bit = 0x1D7A50;
- uint32_t o_no_recoil = 0x85BD8;
- uint32_t Player_client_state_enum = 0x5CFE4;
- constexpr auto scoreboard = 0x17F030;
- constexpr auto scoreboardsize = 0x78;
- namespace bone {
- constexpr auto bone_base = 0x7CD80;
- constexpr auto size = 0x1B0;
- constexpr auto offset = 0xD8;
- };
- namespace player {
- constexpr auto size = 0x2520;
- constexpr auto valid = 0xD8;
- constexpr auto pos = 0x150;
- constexpr auto team = 0x130;
- constexpr auto stance = 0x1438;
- constexpr auto weapon_index = 0x3C8;
- constexpr auto dead_1 = 0x17C;
- constexpr auto dead_2 = 0x14F05;
- constexpr auto dead_3 = 0x14E7C;
- };
Advertisement
Add Comment
Please, Sign In to add comment