Onaylı Üye
have you tested? Could you post a video on how to do it?
namespace offsets {
auto ref_def_ptr = 0x135CD308;
auto name_array = 0x135ECA00;
auto name_array_pos = 0x5E70;
auto loot_ptr = 0xB81D1AC;
auto camera_base = 0x13BEC250;
auto camera_pos = 0x1F8;
auto local_index = 0x1BAB0;
auto local_index_pos = 0x2D0;
auto game_mode = 0xFDDBE08;
auto weapon_definitions = 0x13550A80;
auto distribute = 0xB7E6A50;
auto visible_offset = 0xA80;
auto visible = 0x27C9B50;
namespace player {
auto size = 0x6990;
auto valid = 0x5685;
auto pos = 0x6518;
auto team = 0xA7C;
auto weapon_index = 0x6474;
auto dead_1 = 0x6635;
auto dead_2 = 0x55E4;
}
namespace bone {
auto bone_base = 0x51198;
auto size = 0x180;
auto offset = 0xD8;
}
}
uintptr_t decrypt_client_info()
{
const uint64_t mb = baseModuleAddr;
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 = Read<uintptr_t>(baseModuleAddr + 0x135CD288);
if(!rbx)
return rbx;
rdx= ~Peb; //mov rdx, gs:[rax]
rax = rbx; //mov rax, rbx
rax >>= 0x22; //shr rax, 0x22
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rbx ^= rax; //xor rbx, rax
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= Read<uintptr_t>(baseModuleAddr + 0xA51A0E3); //xor rcx, [0x00000000080C9F50]
rax = baseModuleAddr + 0x1343C359; //lea rax, [0x0000000010FEC1BF]
rbx += rdx; //add rbx, rdx
rcx = ~rcx; //not rcx
rbx += rax; //add rbx, rax
rax = 0xD63E4A83CB9A620B; //mov rax, 0xD63E4A83CB9A620B
rbx *= Read<uintptr_t>(rcx + 0x11); //imul rbx, [rcx+0x11]
rbx -= rdx; //sub rbx, rdx
rbx *= rax; //imul rbx, rax
rax = 0x57242547CAD98C71; //mov rax, 0x57242547CAD98C71
rbx -= rax; //sub rbx, rax
return rbx;
}
uintptr_t decrypt_client_base(uintptr_t client_info)
{
const uint64_t mb = baseModuleAddr;
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 = Read<uintptr_t>(client_info + 0x10e640);
if(!rdx)
return rdx;
r11= ~Peb; //mov r11, gs:[rax]
rax = r11; //mov rax, r11
rax = _rotl64(rax, 0x23); //rol rax, 0x23
rax &= 0xF;
switch(rax) {
case 0:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD2BFA]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080ECCB9]
rax = rdx; //mov rax, rdx
rax >>= 0x7; //shr rax, 0x07
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 = 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 = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx += rbx; //add rdx, rbx
rax = 0x6A51BC9BC4AA6767; //mov rax, 0x6A51BC9BC4AA6767
rdx *= rax; //imul rdx, rax
rax = 0x5447EBF1221B83E6; //mov rax, 0x5447EBF1221B83E6
rdx -= rax; //sub rdx, rax
rdx ^= r11; //xor rdx, r11
rdx ^= rbx; //xor rdx, rbx
return rdx;
}
case 1:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EC885]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD2755]
rdx -= r11; //sub rdx, r11
rax = baseModuleAddr + 0x6B3C0100; //lea rax, [0x0000000068F92766]
rax = ~rax; //not rax
rdx ^= rax; //xor rdx, rax
rdx ^= r11; //xor rdx, r11
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx ^= rbx; //xor rdx, rbx
rax = rdx; //mov rax, rdx
rax >>= 0x24; //shr rax, 0x24
rdx ^= rax; //xor rdx, rax
rax = 0x4A2A83616AD92661; //mov rax, 0x4A2A83616AD92661
rdx *= rax; //imul rdx, rax
rax = 0xECFC5B4C57C54F28; //mov rax, 0xECFC5B4C57C54F28
rdx += rax; //add rdx, rax
rax = 0xF0FDCE631F7BA29F; //mov rax, 0xF0FDCE631F7BA29F
rdx ^= rax; //xor rdx, rax
return rdx;
}
case 2:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD22DB]
rcx = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov rcx, [0x00000000080EC385]
rax = 0xD511FD9CF85D2C07; //mov rax, 0xD511FD9CF85D2C07
rdx *= rax; //imul rdx, rax
rdx ^= r11; //xor rdx, r11
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFCF;
RSP_0xFFFFFFFFFFFFFFCF = baseModuleAddr + 0x2E433015; //lea rax, [0x000000002C0052A9] : RBP+0xFFFFFFFFFFFFFFCF
rax *= RSP_0xFFFFFFFFFFFFFFCF; //imul rax, [rbp-0x31]
rdx += rax; //add rdx, rax
rdx -= rbx; //sub rdx, rbx
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 = 0x3EDAD65FDC1034FF; //mov rax, 0x3EDAD65FDC1034FF
rdx *= rax; //imul rdx, rax
rax = 0x2AE3002A8E8BF08B; //mov rax, 0x2AE3002A8E8BF08B
rdx -= rax; //sub rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= rcx; //xor rax, rcx
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
return rdx;
}
case 3:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EBFE9]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD1EB9]
rax = rbx + 0x1771cb1b; //lea rax, [rbx+0x1771CB1B]
rax += r11; //add rax, r11
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0xB; //shr rax, 0x0B
rdx ^= rax; //xor rdx, rax
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; //sub rdx, r11
rax = 0xFD500870540625B; //mov rax, 0xFD500870540625B
rdx *= rax; //imul rdx, rax
rax = 0x1BC06434489E44B5; //mov rax, 0x1BC06434489E44B5
rdx += rax; //add rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x1F; //shr rax, 0x1F
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x3E; //shr rax, 0x3E
rdx ^= rax; //xor rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x600D6B3C699E6524; //mov rax, 0x600D6B3C699E6524
rdx += rax; //add rdx, rax
return rdx;
}
case 4:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD18E8]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080EB9A0]
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x44DF33AE79D34CE7; //mov rax, 0x44DF33AE79D34CE7
rdx *= rax; //imul rdx, rax
rdx -= r11; //sub rdx, r11
rax = r11; //mov rax, r11
rax = ~rax; //not rax
rdx ^= rax; //xor rdx, rax
rax = baseModuleAddr + 0x3B36; //lea rax, [0xFFFFFFFFFDBD4F1F]
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x27; //shr rax, 0x27
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFA7;
RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x27B9; //lea rax, [0xFFFFFFFFFDBD405F] : RBP+0xFFFFFFFFFFFFFFA7
rax *= RSP_0xFFFFFFFFFFFFFFA7; //imul rax, [rbp-0x59]
rdx += rax; //add rdx, rax
rax = r11; //mov rax, r11
rax -= rbx; //sub rax, rbx
rax += 0xFFFFFFFFD6AD7A46; //add rax, 0xFFFFFFFFD6AD7A46
rdx += rax; //add rdx, rax
return rdx;
}
case 5:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EB4E9]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD13B9]
rax = rdx; //mov rax, rdx
rax >>= 0x17; //shr rax, 0x17
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x2E; //shr rax, 0x2E
rdx ^= rax; //xor rdx, rax
rax = rbx + 0xb7ef; //lea rax, [rbx+0xB7EF]
rax += r11; //add rax, r11
rdx += rax; //add rdx, rax
rdx -= r11; //sub rdx, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFBF;
RSP_0xFFFFFFFFFFFFFFBF = 0x20E3F69C982B8265; //mov rax, 0x20E3F69C982B8265 : RBP+0xFFFFFFFFFFFFFFBF
rdx ^= RSP_0xFFFFFFFFFFFFFFBF; //xor rdx, [rbp-0x41]
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0xAEE1A029315E3D4F; //mov rax, 0xAEE1A029315E3D4F
rdx *= rax; //imul rdx, rax
rax = rbx + 0x618b; //lea rax, [rbx+0x618B]
rax += r11; //add rax, r11
rdx += rax; //add rdx, rax
rax = 0x4F576A9DC4CD39EE; //mov rax, 0x4F576A9DC4CD39EE
rdx += rax; //add rdx, rax
return rdx;
}
case 6:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080EB068]
rdx -= r11; //sub rdx, r11
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 = rdx; //mov rax, rdx
rax >>= 0x21; //shr rax, 0x21
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
rax ^= rdx; //xor rax, rdx
rdx = 0x17CF0497F2D22203; //mov rdx, 0x17CF0497F2D22203
rax *= rdx; //imul rax, rdx
rdx = rax; //mov rdx, rax
rdx >>= 0x25; //shr rdx, 0x25
rdx ^= rax; //xor rdx, rax
rax = 0xBE5CC72B0AEE64FD; //mov rax, 0xBE5CC72B0AEE64FD
rdx ^= rax; //xor rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
return rdx;
}
case 7:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD0A62]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EAB04]
rcx = r11; //mov rcx, r11
rax = baseModuleAddr + 0xDEF0; //lea rax, [0xFFFFFFFFFDBDE663]
rcx ^= rax; //xor rcx, rax
rax = 0xF875422C3B24C08F; //mov rax, 0xF875422C3B24C08F
rax -= rcx; //sub rax, rcx
rdx += rax; //add rdx, rax
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 ^= rbx; //xor rdx, rbx
rax = 0x65FDE940447DEE2B; //mov rax, 0x65FDE940447DEE2B
rdx *= rax; //imul rdx, rax
rax = 0x39A26EAD2B76265B; //mov rax, 0x39A26EAD2B76265B
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = rdx; //mov rax, rdx
rax >>= 0x1B; //shr rax, 0x1B
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x36; //shr rax, 0x36
rdx ^= rax; //xor rdx, rax
return rdx;
}
case 8:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EA661]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD0531]
rax = 0xFFFFFFFFFFFF597D; //mov rax, 0xFFFFFFFFFFFF597D
rax -= r11; //sub rax, r11
rax -= rbx; //sub rax, rbx
rdx += rax; //add rdx, rax
rdx ^= r11; //xor rdx, r11
rax = 0xD0F09E7A8C7613B3; //mov rax, 0xD0F09E7A8C7613B3
rdx *= rax; //imul rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = rdx; //mov rax, rdx
rax >>= 0x1F; //shr rax, 0x1F
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x3E; //shr rax, 0x3E
rdx ^= rax; //xor rdx, rax
rax = 0x256B3436B62B89E5; //mov rax, 0x256B3436B62B89E5
rdx -= rax; //sub rdx, rax
rdx += rbx; //add rdx, rbx
rcx = r11; //mov rcx, r11
rax = baseModuleAddr + 0x7B64B958; //lea rax, [0x000000007921BBB4]
rax = ~rax; //not rax
rcx = ~rcx; //not rcx
rcx += rax; //add rcx, rax
rdx ^= rcx; //xor rdx, rcx
return rdx;
}
case 9:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD00D5]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EA182]
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 = 0x54E648D07B6D0B80; //mov rax, 0x54E648D07B6D0B80
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx ^= rbx; //xor rdx, rbx
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
rax ^= r11; //xor rax, r11
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
rax = 0xB0386AF6C89E01ED; //mov rax, 0xB0386AF6C89E01ED
rdx *= rax; //imul rdx, rax
return rdx;
}
case 10:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E9CAF]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCFB7F]
rax = 0x9332D19135BB918F; //mov rax, 0x9332D19135BB918F
rdx *= rax; //imul rdx, rax
rax = 0xFFFFFFFF8DA4B362; //mov rax, 0xFFFFFFFF8DA4B362
rax -= r11; //sub rax, r11
rax -= rbx; //sub rax, rbx
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx ^= r11; //xor rdx, r11
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
rcx = r11; //mov rcx, r11
rcx = ~rcx; //not rcx
rax = baseModuleAddr + 0xD1ED; //lea rax, [0xFFFFFFFFFDBDCBC6]
rcx *= rax; //imul rcx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x20; //shr rax, 0x20
rcx ^= rax; //xor rcx, rax
rdx ^= rcx; //xor rdx, rcx
rcx = r11; //mov rcx, r11
rcx = ~rcx; //not rcx
rax = baseModuleAddr + 0x868; //lea rax, [0xFFFFFFFFFDBD02B1]
rdx += rax; //add rdx, rax
rdx += rcx; //add rdx, rcx
rax = r11; //mov rax, r11
rax = ~rax; //not rax
rax -= rbx; //sub rax, rbx
rax -= 0x7CCC6306; //sub rax, 0x7CCC6306
rdx ^= rax; //xor rdx, rax
return rdx;
}
case 11:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080E975F]
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 = 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 = 0x8CABBD467C0219D3; //mov rax, 0x8CABBD467C0219D3
rdx *= rax; //imul rdx, rax
rax = 0xAB98E88DE9C18818; //mov rax, 0xAB98E88DE9C18818
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFEF;
RSP_0xFFFFFFFFFFFFFFEF = baseModuleAddr + 0x8516; //lea rax, [0xFFFFFFFFFDBD7BE0] : RBP+0xFFFFFFFFFFFFFFEF
rax *= RSP_0xFFFFFFFFFFFFFFEF; //imul rax, [rbp-0x11]
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x596E42B1953FE5C1; //mov rax, 0x596E42B1953FE5C1
rdx += rax; //add rdx, rax
return rdx;
}
case 12:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E921E]
rdx ^= r11; //xor rdx, r11
rax = baseModuleAddr + 0x1BAF; //lea rax, [0xFFFFFFFFFDBD0929]
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
uintptr_t RSP_0xFFFFFFFFFFFFFF9F;
RSP_0xFFFFFFFFFFFFFF9F = baseModuleAddr + 0x259F56F6; //lea rax, [0x00000000235C47E4] : RBP+0xFFFFFFFFFFFFFF9F
rdx += RSP_0xFFFFFFFFFFFFFF9F; //add rdx, [rbp-0x61]
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x294D76F27D0F6D85; //mov rax, 0x294D76F27D0F6D85
rdx -= rax; //sub 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 = 0x40AE2552A77DAFE6; //mov rax, 0x40AE2552A77DAFE6
rdx -= r11; //sub rdx, r11
rdx ^= rax; //xor rdx, rax
rax = 0x6425FC1CEAFDBD3B; //mov rax, 0x6425FC1CEAFDBD3B
rdx *= rax; //imul rdx, rax
return rdx;
}
case 13:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E8E26]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCECF6]
rdx += rbx; //add rdx, rbx
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 = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = r11; //mov rax, r11
rax -= rbx; //sub rax, rbx
rdx += rax; //add rdx, rax
rax = 0x7AAF0F372FD53CD5; //mov rax, 0x7AAF0F372FD53CD5
rdx *= rax; //imul rdx, rax
rax = 0x4BE188FD7D45B824; //mov rax, 0x4BE188FD7D45B824
rdx -= rax; //sub rdx, rax
rdx ^= r11; //xor rdx, r11
rax = rdx; //mov rax, rdx
rax >>= 0x25; //shr rax, 0x25
rdx ^= rax; //xor rdx, rax
rax = 0x2F94247E3E6CDFF6; //mov rax, 0x2F94247E3E6CDFF6
rdx -= rax; //sub rdx, rax
return rdx;
}
case 14:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E8999]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCE85E]
rax = 0x59FC5D34C1D95075; //mov rax, 0x59FC5D34C1D95075
rdx += rax; //add rdx, rax
rax = 0x113F93E895C764EB; //mov rax, 0x113F93E895C764EB
rdx *= rax; //imul rdx, rax
rax = baseModuleAddr + 0x3BFCF952; //lea rax, [0x0000000039B9DEB5]
rax = ~rax; //not rax
rax ^= r11; //xor 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 = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx -= rbx; //sub rdx, rbx
rax = rdx; //mov rax, rdx
rax >>= 0x23; //shr rax, 0x23
rdx ^= rax; //xor rdx, rax
uintptr_t RSP_0xFFFFFFFFFFFFFF9F;
RSP_0xFFFFFFFFFFFFFF9F = 0x3D4F5BB3C70BE95B; //mov rax, 0x3D4F5BB3C70BE95B : RBP+0xFFFFFFFFFFFFFF9F
rdx *= RSP_0xFFFFFFFFFFFFFF9F; //imul rdx, [rbp-0x61]
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFA7;
RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x9DA7; //lea rax, [0xFFFFFFFFFDBD8610] : RBP+0xFFFFFFFFFFFFFFA7
rax ^= RSP_0xFFFFFFFFFFFFFFA7; //xor rax, [rbp-0x59]
rdx -= rax; //sub rdx, rax
return rdx;
}
case 15:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCE3E0]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080E8499]
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 = 0x63FD32E967945525; //mov rax, 0x63FD32E967945525
rdx -= rax; //sub rdx, rax
rdx += r11; //add rdx, r11
rax = 0xB85215B9839B7D9; //mov rax, 0xB85215B9839B7D9
rdx += rax; //add rdx, rax
rdx ^= rbx; //xor rdx, rbx
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
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 = 0xE52EBF353AE32CDB; //mov rax, 0xE52EBF353AE32CDB
rdx *= rax; //imul rdx, rax
return rdx;
}
}
}
uintptr_t decrypt_bone_base()
{
const uint64_t mb = baseModuleAddr;
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 = Read<uintptr_t>(baseModuleAddr + 0xDF7A7A8);
if(!rax)
return rax;
rbx = Peb; //mov rbx, gs:[rcx]
rcx = rbx; //mov rcx, rbx
rcx >>= 0x1C; //shr rcx, 0x1C
rcx &= 0xF;
switch(rcx) {
case 0:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007EA1573]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r9; //xor rcx, r9
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rax += rbx; //add rax, rbx
rcx = rax; //mov rcx, rax
rax >>= 0x13; //shr rax, 0x13
rcx ^= rax; //xor rcx, rax
rax = rcx; //mov rax, rcx
rax >>= 0x26; //shr rax, 0x26
rax ^= rcx; //xor rax, rcx
rax -= rbx; //sub rax, rbx
rcx = 0xD5A6F9222EC0CD8B; //mov rcx, 0xD5A6F9222EC0CD8B
rax *= rcx; //imul rax, rcx
rcx = 0xBB2862E8C0DD851B; //mov rcx, 0xBB2862E8C0DD851B
rax *= rcx; //imul 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
return rax;
}
case 1:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA1124]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = rax; //mov rcx, rax
rcx >>= 0x1E; //shr rcx, 0x1E
rax ^= rcx; //xor rax, rcx
rdx = baseModuleAddr + 0x6179D5AB; //lea rdx, [0x000000005F12428C]
rdx -= rbx; //sub rdx, rbx
rcx = rax; //mov rcx, rax
rcx >>= 0x3C; //shr rcx, 0x3C
rdx ^= rcx; //xor rdx, rcx
rax ^= rdx; //xor rax, rdx
rax += rbx; //add rax, rbx
rcx = 0xC430FCF5AB246D6; //mov rcx, 0xC430FCF5AB246D6
rax += rcx; //add rax, rcx
rcx = 0x8A220291A10CAF87; //mov rcx, 0x8A220291A10CAF87
rax *= rcx; //imul rax, rcx
rcx = 0x7FAA38A95F85A6FD; //mov rcx, 0x7FAA38A95F85A6FD
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD986E85]
rax -= rcx; //sub rax, rcx
return rax;
}
case 2:
{
r14 = baseModuleAddr + 0x2281; //lea r14, [0xFFFFFFFFFD988D70]
r13 = baseModuleAddr + 0x66A0AFC0; //lea r13, [0x0000000064391AA0]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA0CB5]
rdx = r13; //mov rdx, r13
rdx = ~rdx; //not rdx
rdx *= rbx; //imul rdx, rbx
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
rdx += rcx; //add rdx, rcx
rcx = baseModuleAddr + 0xBA28; //lea rcx, [0xFFFFFFFFFD992216]
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rcx = rax; //mov rcx, rax
rcx >>= 0x13; //shr rcx, 0x13
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x26; //shr rcx, 0x26
rax ^= rcx; //xor rax, rcx
rcx = r14; //mov rcx, r14
rcx ^= rbx; //xor rcx, rbx
rax += rcx; //add rax, rcx
rcx = 0x975CC895B7E831F1; //mov rcx, 0x975CC895B7E831F1
rax ^= rcx; //xor rax, rcx
rcx = 0x3B97C5DC626E056F; //mov rcx, 0x3B97C5DC626E056F
rax *= rcx; //imul rax, rcx
rcx = 0x5534067E232C6632; //mov rcx, 0x5534067E232C6632
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
return rax;
}
case 3:
{
r13 = baseModuleAddr + 0x50F8B6F5; //lea r13, [0x000000004E911C6D]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007EA06CF]
rcx = r13; //mov rcx, r13
rcx = ~rcx; //not rcx
rcx ^= rbx; //xor rcx, rbx
rax += rcx; //add rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9860C5]
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x60F6A79B0C8456B1; //mov rcx, 0x60F6A79B0C8456B1
rax += rcx; //add rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x1B; //shr rcx, 0x1B
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x36; //shr rcx, 0x36
rax ^= rcx; //xor rax, rcx
rcx = 0x648FCA6FE7D44377; //mov rcx, 0x648FCA6FE7D44377
rax -= rcx; //sub rax, rcx
rcx = 0xC462FCF18E2C2995; //mov rcx, 0xC462FCF18E2C2995
rax *= rcx; //imul rax, rcx
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
return rax;
}
case 4:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA0154]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rax -= rbx; //sub rax, rbx
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 = 0xB1A93FB4C084CAB9; //mov rcx, 0xB1A93FB4C084CAB9
rax *= rcx; //imul rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x24; //shr rcx, 0x24
rcx ^= rax; //xor rcx, rax
rax = 0x352F8A796F79706B; //mov rax, 0x352F8A796F79706B
rcx ^= rax; //xor rcx, rax
rax = baseModuleAddr; //lea rax, [0xFFFFFFFFFD985B89]
rcx -= rax; //sub rcx, rax
rax = rbx + 0xffffffffa5917e54; //lea rax, [rbx-0x5A6E81AC]
rax += rcx; //add rax, rcx
rcx = 0xA920BAB7A21DDE47; //mov rcx, 0xA920BAB7A21DDE47
rax *= rcx; //imul rax, rcx
return rax;
}
case 5:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9FCD4]
rdx = baseModuleAddr + 0x661; //lea rdx, [0xFFFFFFFFFD9860A4]
uintptr_t RSP_0x78;
RSP_0x78 = 0x19A86082B9386E61; //mov rcx, 0x19A86082B9386E61 : RSP+0x78
rax ^= RSP_0x78; //xor rax, [rsp+0x78]
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
uintptr_t RSP_0x30;
RSP_0x30 = baseModuleAddr + 0x89B8; //lea rcx, [0xFFFFFFFFFD98E432] : RSP+0x30
rcx ^= RSP_0x30; //xor rcx, [rsp+0x30]
rax -= rcx; //sub rax, rcx
rcx = 0x6CF5D40C805C3929; //mov rcx, 0x6CF5D40C805C3929
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
rcx = rax; //mov rcx, rax
rcx >>= 0x23; //shr rcx, 0x23
rax ^= rcx; //xor rax, rcx
rcx = 0xEA2BDCA216FA84E; //mov rcx, 0xEA2BDCA216FA84E
rax += rcx; //add rax, rcx
rcx = rdx; //mov rcx, rdx
rcx = ~rcx; //not rcx
rcx -= rbx; //sub rcx, rbx
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
return rax;
}
case 6:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9F7B5]
rcx = 0x143119596E0AB6F4; //mov rcx, 0x143119596E0AB6F4
rcx -= rbx; //sub rcx, rbx
rax += rcx; //add 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 = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9853E1]
rax -= rcx; //sub rax, rcx
rcx = 0xD0FF53657C7A437; //mov rcx, 0xD0FF53657C7A437
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x1946435536018835; //mov rcx, 0x1946435536018835
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
return rax;
}
case 7:
{
r11 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r11, [0x0000000007E9F3A4]
rdx = baseModuleAddr + 0x32D6EFEE; //lea rdx, [0x00000000306F4117]
r8 = 0; //and r8, 0xFFFFFFFFC0000000
r8 = _rotl64(r8, 0x10); //rol r8, 0x10
r8 ^= r11; //xor r8, r11
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
r8 = ~r8; //not r8
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rax ^= rbx; //xor rax, rbx
rax *= Read<uintptr_t>(r8 + 0x13); //imul rax, [r8+0x13]
rcx = 0x6B8832A948DD0921; //mov rcx, 0x6B8832A948DD0921
rax += rcx; //add rax, rcx
rcx = 0x9D382E284DCFD7C7; //mov rcx, 0x9D382E284DCFD7C7
rax *= rcx; //imul rax, rcx
rcx = 0x4A2F2EC6D9595386; //mov rcx, 0x4A2F2EC6D9595386
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 = rax; //mov rcx, rax
rcx >>= 0x15; //shr rcx, 0x15
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x2A; //shr rcx, 0x2A
rax ^= rcx; //xor rax, rcx
return rax;
}
case 8:
{
r14 = baseModuleAddr + 0x98C7; //lea r14, [0xFFFFFFFFFD98E487]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9ED83]
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9847D0]
rax ^= rcx; //xor rax, rcx
rcx = 0xB9B101CE6C8E2F91; //mov rcx, 0xB9B101CE6C8E2F91
rax *= rcx; //imul rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984AC7]
rax -= rcx; //sub 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
rax -= rbx; //sub rax, rbx
rcx = 0x4F54898D891371A4; //mov rcx, 0x4F54898D891371A4
rax += rcx; //add rax, rcx
rdx = 0; //and rdx, 0xFFFFFFFFC0000000
rcx = r14; //mov rcx, r14
rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
rcx ^= rbx; //xor rcx, rbx
rax -= rcx; //sub rax, rcx
rdx ^= r10; //xor rdx, r10
rdx = ~rdx; //not rdx
rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13]
return rax;
}
case 9:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9E927]
rcx = 0x5C495DB1FF8A0C7D; //mov rcx, 0x5C495DB1FF8A0C7D
rax *= rcx; //imul rax, rcx
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984682]
rax -= rcx; //sub rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x13; //shr rcx, 0x13
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x26; //shr rcx, 0x26
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984441]
rax += rcx; //add rax, rcx
rdx = baseModuleAddr; //lea rdx, [0xFFFFFFFFFD984428]
rdx += rbx; //add rdx, rbx
rcx = 0x931F45DADBA6534A; //mov rcx, 0x931F45DADBA6534A
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rcx = 0x7254D9C4F5E0407F; //mov rcx, 0x7254D9C4F5E0407F
rax *= rcx; //imul rax, rcx
return rax;
}
case 10:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9E4A8]
rcx = 0x16092956D42CB466; //mov rcx, 0x16092956D42CB466
rax += rcx; //add rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x28; //shr rcx, 0x28
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x22; //shr rcx, 0x22
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0xB; //shr rcx, 0x0B
rax ^= rcx; //xor rax, rcx
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 = 0xC2E2E61ED49F5991; //mov rcx, 0xC2E2E61ED49F5991
rax *= rcx; //imul rax, rcx
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r9; //xor rcx, r9
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
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
rax -= rbx; //sub rax, rbx
return rax;
}
case 11:
{
r13 = baseModuleAddr + 0x3E6FD0B3; //lea r13, [0x000000003C080E21]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9DEDC]
rcx = rax; //mov rcx, rax
rcx >>= 0x1B; //shr rcx, 0x1B
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x36; //shr rcx, 0x36
rax ^= rcx; //xor rax, rcx
r14 = baseModuleAddr; //lea r14, [0xFFFFFFFFFD9837B1]
rax += r14; //add rax, r14
r14 = baseModuleAddr + 0x27799030; //lea r14, [0x000000002511C7CA]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x6E5FECB626B1C472; //mov rcx, 0x6E5FECB626B1C472
rax += rcx; //add rax, rcx
rdx = r13; //mov rdx, r13
rdx = ~rdx; //not rdx
rdx ^= rbx; //xor rdx, rbx
rcx = 0xF5121CBF37E46BBB; //mov rcx, 0xF5121CBF37E46BBB
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rcx = r14; //mov rcx, r14
rcx ^= rbx; //xor rcx, rbx
rax -= rcx; //sub rax, rcx
rcx = 0xD2D6E8735A76DE2D; //mov rcx, 0xD2D6E8735A76DE2D
rax *= rcx; //imul rax, rcx
return rax;
}
case 12:
{
rdx = baseModuleAddr + 0xF737; //lea rdx, [0xFFFFFFFFFD992E92]
r13 = baseModuleAddr + 0x1124573F; //lea r13, [0x000000000EBC8E7C]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9D8BE]
rax += rbx; //add rax, rbx
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
uintptr_t RSP_0x50;
RSP_0x50 = 0x636BE495B0FA383E; //mov rcx, 0x636BE495B0FA383E : RSP+0x50
rax ^= RSP_0x50; //xor rax, [rsp+0x50]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = r13; //mov rcx, r13
rcx ^= rbx; //xor rcx, rbx
rax ^= rcx; //xor rax, rcx
rcx = 0x8812EF99851F0715; //mov rcx, 0x8812EF99851F0715
rax *= rcx; //imul rax, rcx
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
rcx += rdx; //add rcx, rdx
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr + 0xB69; //lea rcx, [0xFFFFFFFFFD9840F3]
rcx -= rbx; //sub rcx, rbx
rax += rcx; //add rax, rcx
return rax;
}
case 13:
{
r13 = baseModuleAddr + 0x5EF7; //lea r13, [0xFFFFFFFFFD98914B]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9D41B]
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
rdx = rbx; //mov rdx, rbx
rcx = rax; //mov rcx, rax
rdx = ~rdx; //not rdx
rcx >>= 0x28; //shr rcx, 0x28
rdx ^= r13; //xor rdx, r13
rax ^= rcx; //xor rax, rcx
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x736E085CD239F4CB; //mov rcx, 0x736E085CD239F4CB
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD982D62]
rax ^= rcx; //xor rax, rcx
rcx = 0x7DA51A97E3053243; //mov rcx, 0x7DA51A97E3053243
rax *= rcx; //imul rax, rcx
rcx = 0x785CF31817D043AC; //mov rcx, 0x785CF31817D043AC
rax ^= rcx; //xor rax, rcx
return rax;
}
case 14:
{
r13 = baseModuleAddr + 0x16A6; //lea r13, [0xFFFFFFFFFD984325]
r14 = baseModuleAddr + 0xF57E; //lea r14, [0xFFFFFFFFFD9921EE]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9CE40]
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
rcx *= r14; //imul rcx, r14
rax += rcx; //add 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
r11 = 0xBE40C084BA769FA; //mov r11, 0xBE40C084BA769FA
rcx = r13; //mov rcx, r13
rcx *= rbx; //imul rcx, rbx
rcx += r11; //add rcx, r11
rax += rcx; //add rax, rcx
rcx = 0xB92AAB45027C43E2; //mov rcx, 0xB92AAB45027C43E2
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr + 0x4FED906B; //lea rcx, [0x000000004D85B9E1]
rcx += rbx; //add rcx, rbx
rax += rcx; //add rax, rcx
rcx = 0xBCCB1C832C79BF0B; //mov rcx, 0xBCCB1C832C79BF0B
rax *= rcx; //imul rax, rcx
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r9; //xor rcx, r9
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
return rax;
}
case 15:
{
r14 = baseModuleAddr + 0x31081C40; //lea r14, [0x000000002EA0438C]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9C90F]
rdx = 0; //and rdx, 0xFFFFFFFFC0000000
rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
rcx = rax; //mov rcx, rax
rdx ^= r10; //xor rdx, r10
rcx >>= 0x20; //shr rcx, 0x20
rdx = ~rdx; //not rdx
rax ^= rcx; //xor rax, rcx
rcx = r14; //mov rcx, r14
rcx ^= rbx; //xor rcx, rbx
rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13]
rax -= rcx; //sub rax, rcx
rcx = 0xFC32828FC4E7EFD1; //mov rcx, 0xFC32828FC4E7EFD1
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
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
rcx = rax; //mov rcx, rax
rcx >>= 0x30; //shr rcx, 0x30
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 = 0x8D793715ED015397; //mov rcx, 0x8D793715ED015397
rax *= rcx; //imul rax, rcx
return rax;
}
}
}
uint16_t get_bone_index(uint32_t bone_index)
{
const uint64_t mb = baseModuleAddr;
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;
rdi = bone_index;
rcx = rdi * 0x13C8;
rax = 0x1B5C5E9652FDACE7; //mov rax, 0x1B5C5E9652FDACE7
rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx
r11 = baseModuleAddr; //lea r11, [0xFFFFFFFFFD3A1F18]
r10 = 0x19E9C4E0C9861BBD; //mov r10, 0x19E9C4E0C9861BBD
rdx >>= 0xA; //shr rdx, 0x0A
rax = rdx * 0x256D; //imul rax, rdx, 0x256D
rcx -= rax; //sub rcx, rax
rax = 0x4F9FF77A70376427; //mov rax, 0x4F9FF77A70376427
r8 = rcx * 0x256D; //imul r8, rcx, 0x256D
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 >>= 0xD; //shr rax, 0x0D
rax = rax * 0x30D1; //imul rax, rax, 0x30D1
r8 -= rax; //sub r8, rax
rax = 0x70381C0E070381C1; //mov rax, 0x70381C0E070381C1
rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77
rdx >>= 0x6; //shr rdx, 0x06
rcx = rdx * 0x92; //imul rcx, rdx, 0x92
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 = Read<uint16_t>(rcx + r11 * 1 + 0xA5D1140); //movzx eax, word ptr [rcx+r11*1+0xA5D1140]
r8 = rax * 0x13C8; //imul r8, rax, 0x13C8
rax = r10; //mov rax, r10
rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
rcx = r8; //mov rcx, r8
rax = r10; //mov rax, r10
rcx -= rdx; //sub rcx, rdx
rcx >>= 0x1; //shr rcx, 0x01
rcx += rdx; //add rcx, rdx
rcx >>= 0xC; //shr rcx, 0x0C
rcx = rcx * 0x1D0F; //imul rcx, rcx, 0x1D0F
r8 -= rcx; //sub r8, rcx
r9 = r8 * 0x3981; //imul r9, r8, 0x3981
rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
rax = r9; //mov rax, r9
rax -= rdx; //sub rax, rdx
rax >>= 0x1; //shr rax, 0x01
rax += rdx; //add rax, rdx
rax >>= 0xC; //shr rax, 0x0C
rax = rax * 0x1D0F; //imul rax, rax, 0x1D0F
r9 -= rax; //sub r9, rax
rax = 0xD79435E50D79435F; //mov rax, 0xD79435E50D79435F
rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
rax = 0xA6810A6810A6811; //mov rax, 0xA6810A6810A6811
rdx >>= 0x6; //shr rdx, 0x06
rcx = rdx * 0x4C; //imul rcx, rdx, 0x4C
rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
rax = r9; //mov rax, r9
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 * 0xF6; //imul rax, rcx, 0xF6
rcx = r9 * 0xF8; //imul rcx, r9, 0xF8
rcx -= rax; //sub rcx, rax
r15 = Read<uint16_t>(rcx + r11 * 1 + 0xA5D9FE0); //movsx r15d, word ptr [rcx+r11*1+0xA5D9FE0]
return r15;
}
namespace offsets {
auto ref_def_ptr = 0x138ADB38;
auto name_array = 0x138CCF20;
auto name_array_pos = 0x5E70;
auto loot_ptr = 0xBADD12C;
auto camera_base = 0x13ECD810;
auto camera_pos = 0x1F8;
auto local_index = 0xB1D00;
auto local_index_pos = 0x2D0;
auto game_mode = 0x100DCDA8;
auto weapon_definitions = 0x13830F90;
auto distribute = 0xBAA6998;
auto visible_offset = 0xA80;
auto visible = 0x28047A0;
namespace player {
auto size = 0x6980;
auto valid = 0x1301;
auto pos = 0xF70;
auto team = 0xFF8;
auto weapon_index = 0x1762;
auto dead_1 = 0x1E0A;
auto dead_2 = 0x1FD0;
}
namespace bone {
auto bone_base = 0xEBB30;
auto size = 0x180;
auto offset = 0xD8;
}
}
uintptr_t decrypt_client_info()
{
const uint64_t mb = baseModuleAddr;
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 = Read<uintptr_t>(baseModuleAddr + 0x138AD798);
if(!rbx)
return rbx;
rdx= ~Peb; //mov rdx, gs:[rax]
rax = rbx; //mov rax, rbx
rax >>= 0x22; //shr rax, 0x22
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rbx ^= rax; //xor rbx, rax
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= Read<uintptr_t>(baseModuleAddr + 0xA8B40E3); //xor rcx, [0x000000000842D840]
rax = baseModuleAddr + 0x1343C359; //lea rax, [0x0000000010FB5AAF]
rbx += rdx; //add rbx, rdx
rcx = ~rcx; //not rcx
rbx += rax; //add rbx, rax
rax = 0xD63E4A83CB9A620B; //mov rax, 0xD63E4A83CB9A620B
rbx *= Read<uintptr_t>(rcx + 0x11); //imul rbx, [rcx+0x11]
rbx -= rdx; //sub rbx, rdx
rbx *= rax; //imul rbx, rax
rax = 0x57242547CAD98C71; //mov rax, 0x57242547CAD98C71
rbx -= rax; //sub rbx, rax
return rbx;
}
uintptr_t decrypt_client_base(uintptr_t client_info)
{
const uint64_t mb = baseModuleAddr;
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 = Read<uintptr_t>(client_info + 0x10e670);
if(!rdx)
return rdx;
r11= ~Peb; //mov r11, gs:[rax]
rax = r11; //mov rax, r11
rax = _rotl64(rax, 0x23); //rol rax, 0x23
rax &= 0xF;
switch(rax) {
case 0:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9C4EA]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x00000000084505A9]
rax = rdx; //mov rax, rdx
rax >>= 0x7; //shr rax, 0x07
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 = 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 = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx += rbx; //add rdx, rbx
rax = 0x6A51BC9BC4AA6767; //mov rax, 0x6A51BC9BC4AA6767
rdx *= rax; //imul rdx, rax
rax = 0x5447EBF1221B83E6; //mov rax, 0x5447EBF1221B83E6
rdx -= rax; //sub rdx, rax
rdx ^= r11; //xor rdx, r11
rdx ^= rbx; //xor rdx, rbx
return rdx;
}
case 1:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x0000000008450175]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9C045]
rdx -= r11; //sub rdx, r11
rax = baseModuleAddr + 0x6B3C0100; //lea rax, [0x0000000068F5C056]
rax = ~rax; //not rax
rdx ^= rax; //xor rdx, rax
rdx ^= r11; //xor rdx, r11
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx ^= rbx; //xor rdx, rbx
rax = rdx; //mov rax, rdx
rax >>= 0x24; //shr rax, 0x24
rdx ^= rax; //xor rdx, rax
rax = 0x4A2A83616AD92661; //mov rax, 0x4A2A83616AD92661
rdx *= rax; //imul rdx, rax
rax = 0xECFC5B4C57C54F28; //mov rax, 0xECFC5B4C57C54F28
rdx += rax; //add rdx, rax
rax = 0xF0FDCE631F7BA29F; //mov rax, 0xF0FDCE631F7BA29F
rdx ^= rax; //xor rdx, rax
return rdx;
}
case 2:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9BBCB]
rcx = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov rcx, [0x000000000844FC75]
rax = 0xD511FD9CF85D2C07; //mov rax, 0xD511FD9CF85D2C07
rdx *= rax; //imul rdx, rax
rdx ^= r11; //xor rdx, r11
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFCF;
RSP_0xFFFFFFFFFFFFFFCF = baseModuleAddr + 0x2E433015; //lea rax, [0x000000002BFCEB99] : RBP+0xFFFFFFFFFFFFFFCF
rax *= RSP_0xFFFFFFFFFFFFFFCF; //imul rax, [rbp-0x31]
rdx += rax; //add rdx, rax
rdx -= rbx; //sub rdx, rbx
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 = 0x3EDAD65FDC1034FF; //mov rax, 0x3EDAD65FDC1034FF
rdx *= rax; //imul rdx, rax
rax = 0x2AE3002A8E8BF08B; //mov rax, 0x2AE3002A8E8BF08B
rdx -= rax; //sub rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= rcx; //xor rax, rcx
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
return rdx;
}
case 3:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844F8D9]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9B7A9]
rax = rbx + 0x1771cb1b; //lea rax, [rbx+0x1771CB1B]
rax += r11; //add rax, r11
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0xB; //shr rax, 0x0B
rdx ^= rax; //xor rdx, rax
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; //sub rdx, r11
rax = 0xFD500870540625B; //mov rax, 0xFD500870540625B
rdx *= rax; //imul rdx, rax
rax = 0x1BC06434489E44B5; //mov rax, 0x1BC06434489E44B5
rdx += rax; //add rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x1F; //shr rax, 0x1F
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x3E; //shr rax, 0x3E
rdx ^= rax; //xor rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x600D6B3C699E6524; //mov rax, 0x600D6B3C699E6524
rdx += rax; //add rdx, rax
return rdx;
}
case 4:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9B1D8]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844F290]
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x44DF33AE79D34CE7; //mov rax, 0x44DF33AE79D34CE7
rdx *= rax; //imul rdx, rax
rdx -= r11; //sub rdx, r11
rax = r11; //mov rax, r11
rax = ~rax; //not rax
rdx ^= rax; //xor rdx, rax
rax = baseModuleAddr + 0x3B36; //lea rax, [0xFFFFFFFFFDB9E80F]
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x27; //shr rax, 0x27
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFA7;
RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x27B9; //lea rax, [0xFFFFFFFFFDB9D94F] : RBP+0xFFFFFFFFFFFFFFA7
rax *= RSP_0xFFFFFFFFFFFFFFA7; //imul rax, [rbp-0x59]
rdx += rax; //add rdx, rax
rax = r11; //mov rax, r11
rax -= rbx; //sub rax, rbx
rax += 0xFFFFFFFFD6AD7A46; //add rax, 0xFFFFFFFFD6AD7A46
rdx += rax; //add rdx, rax
return rdx;
}
case 5:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844EDD9]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9ACA9]
rax = rdx; //mov rax, rdx
rax >>= 0x17; //shr rax, 0x17
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x2E; //shr rax, 0x2E
rdx ^= rax; //xor rdx, rax
rax = rbx + 0xb7ef; //lea rax, [rbx+0xB7EF]
rax += r11; //add rax, r11
rdx += rax; //add rdx, rax
rdx -= r11; //sub rdx, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFBF;
RSP_0xFFFFFFFFFFFFFFBF = 0x20E3F69C982B8265; //mov rax, 0x20E3F69C982B8265 : RBP+0xFFFFFFFFFFFFFFBF
rdx ^= RSP_0xFFFFFFFFFFFFFFBF; //xor rdx, [rbp-0x41]
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0xAEE1A029315E3D4F; //mov rax, 0xAEE1A029315E3D4F
rdx *= rax; //imul rdx, rax
rax = rbx + 0x618b; //lea rax, [rbx+0x618B]
rax += r11; //add rax, r11
rdx += rax; //add rdx, rax
rax = 0x4F576A9DC4CD39EE; //mov rax, 0x4F576A9DC4CD39EE
rdx += rax; //add rdx, rax
return rdx;
}
case 6:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844E958]
rdx -= r11; //sub rdx, r11
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 = rdx; //mov rax, rdx
rax >>= 0x21; //shr rax, 0x21
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
rax ^= rdx; //xor rax, rdx
rdx = 0x17CF0497F2D22203; //mov rdx, 0x17CF0497F2D22203
rax *= rdx; //imul rax, rdx
rdx = rax; //mov rdx, rax
rdx >>= 0x25; //shr rdx, 0x25
rdx ^= rax; //xor rdx, rax
rax = 0xBE5CC72B0AEE64FD; //mov rax, 0xBE5CC72B0AEE64FD
rdx ^= rax; //xor rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
return rdx;
}
case 7:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9A352]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844E3F4]
rcx = r11; //mov rcx, r11
rax = baseModuleAddr + 0xDEF0; //lea rax, [0xFFFFFFFFFDBA7F53]
rcx ^= rax; //xor rcx, rax
rax = 0xF875422C3B24C08F; //mov rax, 0xF875422C3B24C08F
rax -= rcx; //sub rax, rcx
rdx += rax; //add rdx, rax
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 ^= rbx; //xor rdx, rbx
rax = 0x65FDE940447DEE2B; //mov rax, 0x65FDE940447DEE2B
rdx *= rax; //imul rdx, rax
rax = 0x39A26EAD2B76265B; //mov rax, 0x39A26EAD2B76265B
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = rdx; //mov rax, rdx
rax >>= 0x1B; //shr rax, 0x1B
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x36; //shr rax, 0x36
rdx ^= rax; //xor rdx, rax
return rdx;
}
case 8:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844DF51]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB99E21]
rax = 0xFFFFFFFFFFFF597D; //mov rax, 0xFFFFFFFFFFFF597D
rax -= r11; //sub rax, r11
rax -= rbx; //sub rax, rbx
rdx += rax; //add rdx, rax
rdx ^= r11; //xor rdx, r11
rax = 0xD0F09E7A8C7613B3; //mov rax, 0xD0F09E7A8C7613B3
rdx *= rax; //imul rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = rdx; //mov rax, rdx
rax >>= 0x1F; //shr rax, 0x1F
rdx ^= rax; //xor rdx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x3E; //shr rax, 0x3E
rdx ^= rax; //xor rdx, rax
rax = 0x256B3436B62B89E5; //mov rax, 0x256B3436B62B89E5
rdx -= rax; //sub rdx, rax
rdx += rbx; //add rdx, rbx
rcx = r11; //mov rcx, r11
rax = baseModuleAddr + 0x7B64B958; //lea rax, [0x00000000791E54A4]
rax = ~rax; //not rax
rcx = ~rcx; //not rcx
rcx += rax; //add rcx, rax
rdx ^= rcx; //xor rdx, rcx
return rdx;
}
case 9:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB999C5]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844DA72]
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 = 0x54E648D07B6D0B80; //mov rax, 0x54E648D07B6D0B80
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx ^= rbx; //xor rdx, rbx
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
rax ^= r11; //xor rax, r11
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
rax = 0xB0386AF6C89E01ED; //mov rax, 0xB0386AF6C89E01ED
rdx *= rax; //imul rdx, rax
return rdx;
}
case 10:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844D59F]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9946F]
rax = 0x9332D19135BB918F; //mov rax, 0x9332D19135BB918F
rdx *= rax; //imul rdx, rax
rax = 0xFFFFFFFF8DA4B362; //mov rax, 0xFFFFFFFF8DA4B362
rax -= r11; //sub rax, r11
rax -= rbx; //sub rax, rbx
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx ^= r11; //xor rdx, r11
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
rcx = r11; //mov rcx, r11
rcx = ~rcx; //not rcx
rax = baseModuleAddr + 0xD1ED; //lea rax, [0xFFFFFFFFFDBA64B6]
rcx *= rax; //imul rcx, rax
rax = rdx; //mov rax, rdx
rax >>= 0x20; //shr rax, 0x20
rcx ^= rax; //xor rcx, rax
rdx ^= rcx; //xor rdx, rcx
rcx = r11; //mov rcx, r11
rcx = ~rcx; //not rcx
rax = baseModuleAddr + 0x868; //lea rax, [0xFFFFFFFFFDB99BA1]
rdx += rax; //add rdx, rax
rdx += rcx; //add rdx, rcx
rax = r11; //mov rax, r11
rax = ~rax; //not rax
rax -= rbx; //sub rax, rbx
rax -= 0x7CCC6306; //sub rax, 0x7CCC6306
rdx ^= rax; //xor rdx, rax
return rdx;
}
case 11:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844D04F]
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 = 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 = 0x8CABBD467C0219D3; //mov rax, 0x8CABBD467C0219D3
rdx *= rax; //imul rdx, rax
rax = 0xAB98E88DE9C18818; //mov rax, 0xAB98E88DE9C18818
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFEF;
RSP_0xFFFFFFFFFFFFFFEF = baseModuleAddr + 0x8516; //lea rax, [0xFFFFFFFFFDBA14D0] : RBP+0xFFFFFFFFFFFFFFEF
rax *= RSP_0xFFFFFFFFFFFFFFEF; //imul rax, [rbp-0x11]
rdx += rax; //add rdx, rax
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x596E42B1953FE5C1; //mov rax, 0x596E42B1953FE5C1
rdx += rax; //add rdx, rax
return rdx;
}
case 12:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844CB0E]
rdx ^= r11; //xor rdx, r11
rax = baseModuleAddr + 0x1BAF; //lea rax, [0xFFFFFFFFFDB9A219]
rdx ^= rax; //xor rdx, rax
rdx -= r11; //sub rdx, r11
uintptr_t RSP_0xFFFFFFFFFFFFFF9F;
RSP_0xFFFFFFFFFFFFFF9F = baseModuleAddr + 0x259F56F6; //lea rax, [0x000000002358E0D4] : RBP+0xFFFFFFFFFFFFFF9F
rdx += RSP_0xFFFFFFFFFFFFFF9F; //add rdx, [rbp-0x61]
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = 0x294D76F27D0F6D85; //mov rax, 0x294D76F27D0F6D85
rdx -= rax; //sub 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 = 0x40AE2552A77DAFE6; //mov rax, 0x40AE2552A77DAFE6
rdx -= r11; //sub rdx, r11
rdx ^= rax; //xor rdx, rax
rax = 0x6425FC1CEAFDBD3B; //mov rax, 0x6425FC1CEAFDBD3B
rdx *= rax; //imul rdx, rax
return rdx;
}
case 13:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844C716]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB985E6]
rdx += rbx; //add rdx, rbx
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 = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r10; //xor rax, r10
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rax = r11; //mov rax, r11
rax -= rbx; //sub rax, rbx
rdx += rax; //add rdx, rax
rax = 0x7AAF0F372FD53CD5; //mov rax, 0x7AAF0F372FD53CD5
rdx *= rax; //imul rdx, rax
rax = 0x4BE188FD7D45B824; //mov rax, 0x4BE188FD7D45B824
rdx -= rax; //sub rdx, rax
rdx ^= r11; //xor rdx, r11
rax = rdx; //mov rax, rdx
rax >>= 0x25; //shr rax, 0x25
rdx ^= rax; //xor rdx, rax
rax = 0x2F94247E3E6CDFF6; //mov rax, 0x2F94247E3E6CDFF6
rdx -= rax; //sub rdx, rax
return rdx;
}
case 14:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844C289]
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9814E]
rax = 0x59FC5D34C1D95075; //mov rax, 0x59FC5D34C1D95075
rdx += rax; //add rdx, rax
rax = 0x113F93E895C764EB; //mov rax, 0x113F93E895C764EB
rdx *= rax; //imul rdx, rax
rax = baseModuleAddr + 0x3BFCF952; //lea rax, [0x0000000039B677A5]
rax = ~rax; //not rax
rax ^= r11; //xor 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 = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
rdx -= rbx; //sub rdx, rbx
rax = rdx; //mov rax, rdx
rax >>= 0x23; //shr rax, 0x23
rdx ^= rax; //xor rdx, rax
uintptr_t RSP_0xFFFFFFFFFFFFFF9F;
RSP_0xFFFFFFFFFFFFFF9F = 0x3D4F5BB3C70BE95B; //mov rax, 0x3D4F5BB3C70BE95B : RBP+0xFFFFFFFFFFFFFF9F
rdx *= RSP_0xFFFFFFFFFFFFFF9F; //imul rdx, [rbp-0x61]
rax = r11; //mov rax, r11
uintptr_t RSP_0xFFFFFFFFFFFFFFA7;
RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x9DA7; //lea rax, [0xFFFFFFFFFDBA1F00] : RBP+0xFFFFFFFFFFFFFFA7
rax ^= RSP_0xFFFFFFFFFFFFFFA7; //xor rax, [rbp-0x59]
rdx -= rax; //sub rdx, rax
return rdx;
}
case 15:
{
rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB97CD0]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844BD89]
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 = 0x63FD32E967945525; //mov rax, 0x63FD32E967945525
rdx -= rax; //sub rdx, rax
rdx += r11; //add rdx, r11
rax = 0xB85215B9839B7D9; //mov rax, 0xB85215B9839B7D9
rdx += rax; //add rdx, rax
rdx ^= rbx; //xor rdx, rbx
rax = 0; //and rax, 0xFFFFFFFFC0000000
rax = _rotl64(rax, 0x10); //rol rax, 0x10
rax ^= r9; //xor rax, r9
rax = _byteswap_uint64(rax); //bswap rax
rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15]
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 = 0xE52EBF353AE32CDB; //mov rax, 0xE52EBF353AE32CDB
rdx *= rax; //imul rdx, rax
return rdx;
}
}
}
uintptr_t decrypt_bone_base()
{
const uint64_t mb = baseModuleAddr;
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 = Read<uintptr_t>(baseModuleAddr + 0xE2759F8);
if(!rax)
return rax;
rbx = Peb; //mov rbx, gs:[rcx]
rcx = rbx; //mov rcx, rbx
rcx >>= 0x1C; //shr rcx, 0x1C
rcx &= 0xF;
switch(rcx) {
case 0:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x0000000008200923]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r9; //xor rcx, r9
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rax += rbx; //add rax, rbx
rcx = rax; //mov rcx, rax
rax >>= 0x13; //shr rax, 0x13
rcx ^= rax; //xor rcx, rax
rax = rcx; //mov rax, rcx
rax >>= 0x26; //shr rax, 0x26
rax ^= rcx; //xor rax, rcx
rax -= rbx; //sub rax, rbx
rcx = 0xD5A6F9222EC0CD8B; //mov rcx, 0xD5A6F9222EC0CD8B
rax *= rcx; //imul rax, rcx
rcx = 0xBB2862E8C0DD851B; //mov rcx, 0xBB2862E8C0DD851B
rax *= rcx; //imul 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
return rax;
}
case 1:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000082004D4]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = rax; //mov rcx, rax
rcx >>= 0x1E; //shr rcx, 0x1E
rax ^= rcx; //xor rax, rcx
rdx = baseModuleAddr + 0x6179D5AB; //lea rdx, [0x000000005F0E963C]
rdx -= rbx; //sub rdx, rbx
rcx = rax; //mov rcx, rax
rcx >>= 0x3C; //shr rcx, 0x3C
rdx ^= rcx; //xor rdx, rcx
rax ^= rdx; //xor rax, rdx
rax += rbx; //add rax, rbx
rcx = 0xC430FCF5AB246D6; //mov rcx, 0xC430FCF5AB246D6
rax += rcx; //add rax, rcx
rcx = 0x8A220291A10CAF87; //mov rcx, 0x8A220291A10CAF87
rax *= rcx; //imul rax, rcx
rcx = 0x7FAA38A95F85A6FD; //mov rcx, 0x7FAA38A95F85A6FD
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94C235]
rax -= rcx; //sub rax, rcx
return rax;
}
case 2:
{
r14 = baseModuleAddr + 0x2281; //lea r14, [0xFFFFFFFFFD94E120]
r13 = baseModuleAddr + 0x66A0AFC0; //lea r13, [0x0000000064356E50]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x0000000008200065]
rdx = r13; //mov rdx, r13
rdx = ~rdx; //not rdx
rdx *= rbx; //imul rdx, rbx
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
rdx += rcx; //add rdx, rcx
rcx = baseModuleAddr + 0xBA28; //lea rcx, [0xFFFFFFFFFD9575C6]
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rcx = rax; //mov rcx, rax
rcx >>= 0x13; //shr rcx, 0x13
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x26; //shr rcx, 0x26
rax ^= rcx; //xor rax, rcx
rcx = r14; //mov rcx, r14
rcx ^= rbx; //xor rcx, rbx
rax += rcx; //add rax, rcx
rcx = 0x975CC895B7E831F1; //mov rcx, 0x975CC895B7E831F1
rax ^= rcx; //xor rax, rcx
rcx = 0x3B97C5DC626E056F; //mov rcx, 0x3B97C5DC626E056F
rax *= rcx; //imul rax, rcx
rcx = 0x5534067E232C6632; //mov rcx, 0x5534067E232C6632
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
return rax;
}
case 3:
{
r13 = baseModuleAddr + 0x50F8B6F5; //lea r13, [0x000000004E8D701D]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FFA7F]
rcx = r13; //mov rcx, r13
rcx = ~rcx; //not rcx
rcx ^= rbx; //xor rcx, rbx
rax += rcx; //add rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94B475]
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x60F6A79B0C8456B1; //mov rcx, 0x60F6A79B0C8456B1
rax += rcx; //add rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x1B; //shr rcx, 0x1B
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x36; //shr rcx, 0x36
rax ^= rcx; //xor rax, rcx
rcx = 0x648FCA6FE7D44377; //mov rcx, 0x648FCA6FE7D44377
rax -= rcx; //sub rax, rcx
rcx = 0xC462FCF18E2C2995; //mov rcx, 0xC462FCF18E2C2995
rax *= rcx; //imul rax, rcx
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
return rax;
}
case 4:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FF504]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rax -= rbx; //sub rax, rbx
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 = 0xB1A93FB4C084CAB9; //mov rcx, 0xB1A93FB4C084CAB9
rax *= rcx; //imul rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x24; //shr rcx, 0x24
rcx ^= rax; //xor rcx, rax
rax = 0x352F8A796F79706B; //mov rax, 0x352F8A796F79706B
rcx ^= rax; //xor rcx, rax
rax = baseModuleAddr; //lea rax, [0xFFFFFFFFFD94AF39]
rcx -= rax; //sub rcx, rax
rax = rbx + 0xffffffffa5917e54; //lea rax, [rbx-0x5A6E81AC]
rax += rcx; //add rax, rcx
rcx = 0xA920BAB7A21DDE47; //mov rcx, 0xA920BAB7A21DDE47
rax *= rcx; //imul rax, rcx
return rax;
}
case 5:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FF084]
rdx = baseModuleAddr + 0x661; //lea rdx, [0xFFFFFFFFFD94B454]
uintptr_t RSP_0x78;
RSP_0x78 = 0x19A86082B9386E61; //mov rcx, 0x19A86082B9386E61 : RSP+0x78
rax ^= RSP_0x78; //xor rax, [rsp+0x78]
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
uintptr_t RSP_0x30;
RSP_0x30 = baseModuleAddr + 0x89B8; //lea rcx, [0xFFFFFFFFFD9537E2] : RSP+0x30
rcx ^= RSP_0x30; //xor rcx, [rsp+0x30]
rax -= rcx; //sub rax, rcx
rcx = 0x6CF5D40C805C3929; //mov rcx, 0x6CF5D40C805C3929
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
rcx = rax; //mov rcx, rax
rcx >>= 0x23; //shr rcx, 0x23
rax ^= rcx; //xor rax, rcx
rcx = 0xEA2BDCA216FA84E; //mov rcx, 0xEA2BDCA216FA84E
rax += rcx; //add rax, rcx
rcx = rdx; //mov rcx, rdx
rcx = ~rcx; //not rcx
rcx -= rbx; //sub rcx, rbx
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
return rax;
}
case 6:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FEB65]
rcx = 0x143119596E0AB6F4; //mov rcx, 0x143119596E0AB6F4
rcx -= rbx; //sub rcx, rbx
rax += rcx; //add 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 = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94A791]
rax -= rcx; //sub rax, rcx
rcx = 0xD0FF53657C7A437; //mov rcx, 0xD0FF53657C7A437
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x1946435536018835; //mov rcx, 0x1946435536018835
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
return rax;
}
case 7:
{
r11 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r11, [0x00000000081FE754]
rdx = baseModuleAddr + 0x32D6EFEE; //lea rdx, [0x00000000306B94C7]
r8 = 0; //and r8, 0xFFFFFFFFC0000000
r8 = _rotl64(r8, 0x10); //rol r8, 0x10
r8 ^= r11; //xor r8, r11
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
r8 = ~r8; //not r8
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rax ^= rbx; //xor rax, rbx
rax *= Read<uintptr_t>(r8 + 0x13); //imul rax, [r8+0x13]
rcx = 0x6B8832A948DD0921; //mov rcx, 0x6B8832A948DD0921
rax += rcx; //add rax, rcx
rcx = 0x9D382E284DCFD7C7; //mov rcx, 0x9D382E284DCFD7C7
rax *= rcx; //imul rax, rcx
rcx = 0x4A2F2EC6D9595386; //mov rcx, 0x4A2F2EC6D9595386
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 = rax; //mov rcx, rax
rcx >>= 0x15; //shr rcx, 0x15
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x2A; //shr rcx, 0x2A
rax ^= rcx; //xor rax, rcx
return rax;
}
case 8:
{
r14 = baseModuleAddr + 0x98C7; //lea r14, [0xFFFFFFFFFD953837]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FE133]
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949B80]
rax ^= rcx; //xor rax, rcx
rcx = 0xB9B101CE6C8E2F91; //mov rcx, 0xB9B101CE6C8E2F91
rax *= rcx; //imul rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949E77]
rax -= rcx; //sub 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
rax -= rbx; //sub rax, rbx
rcx = 0x4F54898D891371A4; //mov rcx, 0x4F54898D891371A4
rax += rcx; //add rax, rcx
rdx = 0; //and rdx, 0xFFFFFFFFC0000000
rcx = r14; //mov rcx, r14
rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
rcx ^= rbx; //xor rcx, rbx
rax -= rcx; //sub rax, rcx
rdx ^= r10; //xor rdx, r10
rdx = ~rdx; //not rdx
rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13]
return rax;
}
case 9:
{
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FDCD7]
rcx = 0x5C495DB1FF8A0C7D; //mov rcx, 0x5C495DB1FF8A0C7D
rax *= rcx; //imul rax, rcx
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949A32]
rax -= rcx; //sub rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x13; //shr rcx, 0x13
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x26; //shr rcx, 0x26
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9497F1]
rax += rcx; //add rax, rcx
rdx = baseModuleAddr; //lea rdx, [0xFFFFFFFFFD9497D8]
rdx += rbx; //add rdx, rbx
rcx = 0x931F45DADBA6534A; //mov rcx, 0x931F45DADBA6534A
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rcx = 0x7254D9C4F5E0407F; //mov rcx, 0x7254D9C4F5E0407F
rax *= rcx; //imul rax, rcx
return rax;
}
case 10:
{
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FD858]
rcx = 0x16092956D42CB466; //mov rcx, 0x16092956D42CB466
rax += rcx; //add rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x28; //shr rcx, 0x28
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x22; //shr rcx, 0x22
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0xB; //shr rcx, 0x0B
rax ^= rcx; //xor rax, rcx
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 = 0xC2E2E61ED49F5991; //mov rcx, 0xC2E2E61ED49F5991
rax *= rcx; //imul rax, rcx
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r9; //xor rcx, r9
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
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
rax -= rbx; //sub rax, rbx
return rax;
}
case 11:
{
r13 = baseModuleAddr + 0x3E6FD0B3; //lea r13, [0x000000003C0461D1]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FD28C]
rcx = rax; //mov rcx, rax
rcx >>= 0x1B; //shr rcx, 0x1B
rax ^= rcx; //xor rax, rcx
rcx = rax; //mov rcx, rax
rcx >>= 0x36; //shr rcx, 0x36
rax ^= rcx; //xor rax, rcx
r14 = baseModuleAddr; //lea r14, [0xFFFFFFFFFD948B61]
rax += r14; //add rax, r14
r14 = baseModuleAddr + 0x27799030; //lea r14, [0x00000000250E1B7A]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x6E5FECB626B1C472; //mov rcx, 0x6E5FECB626B1C472
rax += rcx; //add rax, rcx
rdx = r13; //mov rdx, r13
rdx = ~rdx; //not rdx
rdx ^= rbx; //xor rdx, rbx
rcx = 0xF5121CBF37E46BBB; //mov rcx, 0xF5121CBF37E46BBB
rax += rcx; //add rax, rcx
rax += rdx; //add rax, rdx
rcx = r14; //mov rcx, r14
rcx ^= rbx; //xor rcx, rbx
rax -= rcx; //sub rax, rcx
rcx = 0xD2D6E8735A76DE2D; //mov rcx, 0xD2D6E8735A76DE2D
rax *= rcx; //imul rax, rcx
return rax;
}
case 12:
{
rdx = baseModuleAddr + 0xF737; //lea rdx, [0xFFFFFFFFFD958242]
r13 = baseModuleAddr + 0x1124573F; //lea r13, [0x000000000EB8E22C]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FCC6E]
rax += rbx; //add rax, rbx
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
uintptr_t RSP_0x50;
RSP_0x50 = 0x636BE495B0FA383E; //mov rcx, 0x636BE495B0FA383E : RSP+0x50
rax ^= RSP_0x50; //xor rax, [rsp+0x50]
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r10; //xor rcx, r10
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = r13; //mov rcx, r13
rcx ^= rbx; //xor rcx, rbx
rax ^= rcx; //xor rax, rcx
rcx = 0x8812EF99851F0715; //mov rcx, 0x8812EF99851F0715
rax *= rcx; //imul rax, rcx
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
rcx += rdx; //add rcx, rdx
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr + 0xB69; //lea rcx, [0xFFFFFFFFFD9494A3]
rcx -= rbx; //sub rcx, rbx
rax += rcx; //add rax, rcx
return rax;
}
case 13:
{
r13 = baseModuleAddr + 0x5EF7; //lea r13, [0xFFFFFFFFFD94E4FB]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FC7CB]
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
rdx = rbx; //mov rdx, rbx
rcx = rax; //mov rcx, rax
rdx = ~rdx; //not rdx
rcx >>= 0x28; //shr rcx, 0x28
rdx ^= r13; //xor rdx, r13
rax ^= rcx; //xor rax, rcx
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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
rcx = 0x736E085CD239F4CB; //mov rcx, 0x736E085CD239F4CB
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD948112]
rax ^= rcx; //xor rax, rcx
rcx = 0x7DA51A97E3053243; //mov rcx, 0x7DA51A97E3053243
rax *= rcx; //imul rax, rcx
rcx = 0x785CF31817D043AC; //mov rcx, 0x785CF31817D043AC
rax ^= rcx; //xor rax, rcx
return rax;
}
case 14:
{
r13 = baseModuleAddr + 0x16A6; //lea r13, [0xFFFFFFFFFD9496D5]
r14 = baseModuleAddr + 0xF57E; //lea r14, [0xFFFFFFFFFD95759E]
r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FC1F0]
rcx = rbx; //mov rcx, rbx
rcx = ~rcx; //not rcx
rcx *= r14; //imul rcx, r14
rax += rcx; //add 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
r11 = 0xBE40C084BA769FA; //mov r11, 0xBE40C084BA769FA
rcx = r13; //mov rcx, r13
rcx *= rbx; //imul rcx, rbx
rcx += r11; //add rcx, r11
rax += rcx; //add rax, rcx
rcx = 0xB92AAB45027C43E2; //mov rcx, 0xB92AAB45027C43E2
rax ^= rcx; //xor rax, rcx
rcx = baseModuleAddr + 0x4FED906B; //lea rcx, [0x000000004D820D91]
rcx += rbx; //add rcx, rbx
rax += rcx; //add rax, rcx
rcx = 0xBCCB1C832C79BF0B; //mov rcx, 0xBCCB1C832C79BF0B
rax *= rcx; //imul rax, rcx
rcx = 0; //and rcx, 0xFFFFFFFFC0000000
rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10
rcx ^= r9; //xor rcx, r9
rcx = ~rcx; //not rcx
rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13]
return rax;
}
case 15:
{
r14 = baseModuleAddr + 0x31081C40; //lea r14, [0x000000002E9C973C]
r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FBCBF]
rdx = 0; //and rdx, 0xFFFFFFFFC0000000
rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10
rcx = rax; //mov rcx, rax
rdx ^= r10; //xor rdx, r10
rcx >>= 0x20; //shr rcx, 0x20
rdx = ~rdx; //not rdx
rax ^= rcx; //xor rax, rcx
rcx = r14; //mov rcx, r14
rcx ^= rbx; //xor rcx, rbx
rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13]
rax -= rcx; //sub rax, rcx
rcx = 0xFC32828FC4E7EFD1; //mov rcx, 0xFC32828FC4E7EFD1
rax *= rcx; //imul rax, rcx
rax -= rbx; //sub rax, rbx
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
rcx = rax; //mov rcx, rax
rcx >>= 0x30; //shr rcx, 0x30
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 = 0x8D793715ED015397; //mov rcx, 0x8D793715ED015397
rax *= rcx; //imul rax, rcx
return rax;
}
}
}
uint16_t get_bone_index(uint32_t bone_index)
{
const uint64_t mb = baseModuleAddr;
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;
rdi = bone_index;
rcx = rdi * 0x13C8;
rax = 0x1B5C5E9652FDACE7; //mov rax, 0x1B5C5E9652FDACE7
rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx
r11 = baseModuleAddr; //lea r11, [0xFFFFFFFFFD33E478]
r10 = 0x19E9C4E0C9861BBD; //mov r10, 0x19E9C4E0C9861BBD
rdx >>= 0xA; //shr rdx, 0x0A
rax = rdx * 0x256D; //imul rax, rdx, 0x256D
rcx -= rax; //sub rcx, rax
rax = 0x4F9FF77A70376427; //mov rax, 0x4F9FF77A70376427
r8 = rcx * 0x256D; //imul r8, rcx, 0x256D
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 >>= 0xD; //shr rax, 0x0D
rax = rax * 0x30D1; //imul rax, rax, 0x30D1
r8 -= rax; //sub r8, rax
rax = 0x70381C0E070381C1; //mov rax, 0x70381C0E070381C1
rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77
rdx >>= 0x6; //shr rdx, 0x06
rcx = rdx * 0x92; //imul rcx, rdx, 0x92
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 = Read<uint16_t>(rcx + r11 * 1 + 0xA96F930); //movzx eax, word ptr [rcx+r11*1+0xA96F930]
r8 = rax * 0x13C8; //imul r8, rax, 0x13C8
rax = r10; //mov rax, r10
rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8
rcx = r8; //mov rcx, r8
rax = r10; //mov rax, r10
rcx -= rdx; //sub rcx, rdx
rcx >>= 0x1; //shr rcx, 0x01
rcx += rdx; //add rcx, rdx
rcx >>= 0xC; //shr rcx, 0x0C
rcx = rcx * 0x1D0F; //imul rcx, rcx, 0x1D0F
r8 -= rcx; //sub r8, rcx
r9 = r8 * 0x3981; //imul r9, r8, 0x3981
rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
rax = r9; //mov rax, r9
rax -= rdx; //sub rax, rdx
rax >>= 0x1; //shr rax, 0x01
rax += rdx; //add rax, rdx
rax >>= 0xC; //shr rax, 0x0C
rax = rax * 0x1D0F; //imul rax, rax, 0x1D0F
r9 -= rax; //sub r9, rax
rax = 0xD79435E50D79435F; //mov rax, 0xD79435E50D79435F
rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
rax = 0xA6810A6810A6811; //mov rax, 0xA6810A6810A6811
rdx >>= 0x6; //shr rdx, 0x06
rcx = rdx * 0x4C; //imul rcx, rdx, 0x4C
rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9
rax = r9; //mov rax, r9
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 * 0xF6; //imul rax, rcx, 0xF6
rcx = r9 * 0xF8; //imul rcx, r9, 0xF8
rcx -= rax; //sub rcx, rax
r15 = Read<uint16_t>(rcx + r11 * 1 + 0xA9787D0); //movsx r15d, word ptr [rcx+r11*1+0xA9787D0]
return r15;
}
bunu nasıl kullanacağız ?Steam
C++:namespace offsets { auto ref_def_ptr = 0x135CD308; auto name_array = 0x135ECA00; auto name_array_pos = 0x5E70; auto loot_ptr = 0xB81D1AC; auto camera_base = 0x13BEC250; auto camera_pos = 0x1F8; auto local_index = 0x1BAB0; auto local_index_pos = 0x2D0; auto game_mode = 0xFDDBE08; auto weapon_definitions = 0x13550A80; auto distribute = 0xB7E6A50; auto visible_offset = 0xA80; auto visible = 0x27C9B50; namespace player { auto size = 0x6990; auto valid = 0x5685; auto pos = 0x6518; auto team = 0xA7C; auto weapon_index = 0x6474; auto dead_1 = 0x6635; auto dead_2 = 0x55E4; } namespace bone { auto bone_base = 0x51198; auto size = 0x180; auto offset = 0xD8; } } uintptr_t decrypt_client_info() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0x135CD288); if(!rbx) return rbx; rdx= ~Peb; //mov rdx, gs:[rax] rax = rbx; //mov rax, rbx rax >>= 0x22; //shr rax, 0x22 rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rbx ^= rax; //xor rbx, rax rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= Read<uintptr_t>(baseModuleAddr + 0xA51A0E3); //xor rcx, [0x00000000080C9F50] rax = baseModuleAddr + 0x1343C359; //lea rax, [0x0000000010FEC1BF] rbx += rdx; //add rbx, rdx rcx = ~rcx; //not rcx rbx += rax; //add rbx, rax rax = 0xD63E4A83CB9A620B; //mov rax, 0xD63E4A83CB9A620B rbx *= Read<uintptr_t>(rcx + 0x11); //imul rbx, [rcx+0x11] rbx -= rdx; //sub rbx, rdx rbx *= rax; //imul rbx, rax rax = 0x57242547CAD98C71; //mov rax, 0x57242547CAD98C71 rbx -= rax; //sub rbx, rax return rbx; } uintptr_t decrypt_client_base(uintptr_t client_info) { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(client_info + 0x10e640); if(!rdx) return rdx; r11= ~Peb; //mov r11, gs:[rax] rax = r11; //mov rax, r11 rax = _rotl64(rax, 0x23); //rol rax, 0x23 rax &= 0xF; switch(rax) { case 0: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD2BFA] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080ECCB9] rax = rdx; //mov rax, rdx rax >>= 0x7; //shr rax, 0x07 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 = 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx += rbx; //add rdx, rbx rax = 0x6A51BC9BC4AA6767; //mov rax, 0x6A51BC9BC4AA6767 rdx *= rax; //imul rdx, rax rax = 0x5447EBF1221B83E6; //mov rax, 0x5447EBF1221B83E6 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rdx ^= rbx; //xor rdx, rbx return rdx; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EC885] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD2755] rdx -= r11; //sub rdx, r11 rax = baseModuleAddr + 0x6B3C0100; //lea rax, [0x0000000068F92766] rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x24; //shr rax, 0x24 rdx ^= rax; //xor rdx, rax rax = 0x4A2A83616AD92661; //mov rax, 0x4A2A83616AD92661 rdx *= rax; //imul rdx, rax rax = 0xECFC5B4C57C54F28; //mov rax, 0xECFC5B4C57C54F28 rdx += rax; //add rdx, rax rax = 0xF0FDCE631F7BA29F; //mov rax, 0xF0FDCE631F7BA29F rdx ^= rax; //xor rdx, rax return rdx; } case 2: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD22DB] rcx = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov rcx, [0x00000000080EC385] rax = 0xD511FD9CF85D2C07; //mov rax, 0xD511FD9CF85D2C07 rdx *= rax; //imul rdx, rax rdx ^= r11; //xor rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFCF; RSP_0xFFFFFFFFFFFFFFCF = baseModuleAddr + 0x2E433015; //lea rax, [0x000000002C0052A9] : RBP+0xFFFFFFFFFFFFFFCF rax *= RSP_0xFFFFFFFFFFFFFFCF; //imul rax, [rbp-0x31] rdx += rax; //add rdx, rax rdx -= rbx; //sub rdx, rbx 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 = 0x3EDAD65FDC1034FF; //mov rax, 0x3EDAD65FDC1034FF rdx *= rax; //imul rdx, rax rax = 0x2AE3002A8E8BF08B; //mov rax, 0x2AE3002A8E8BF08B rdx -= rax; //sub rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= rcx; //xor rax, rcx rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 3: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EBFE9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD1EB9] rax = rbx + 0x1771cb1b; //lea rax, [rbx+0x1771CB1B] rax += r11; //add rax, r11 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0xB; //shr rax, 0x0B rdx ^= rax; //xor rdx, rax 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; //sub rdx, r11 rax = 0xFD500870540625B; //mov rax, 0xFD500870540625B rdx *= rax; //imul rdx, rax rax = 0x1BC06434489E44B5; //mov rax, 0x1BC06434489E44B5 rdx += rax; //add rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x600D6B3C699E6524; //mov rax, 0x600D6B3C699E6524 rdx += rax; //add rdx, rax return rdx; } case 4: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD18E8] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080EB9A0] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x44DF33AE79D34CE7; //mov rax, 0x44DF33AE79D34CE7 rdx *= rax; //imul rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rax = baseModuleAddr + 0x3B36; //lea rax, [0xFFFFFFFFFDBD4F1F] rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x27; //shr rax, 0x27 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x27B9; //lea rax, [0xFFFFFFFFFDBD405F] : RBP+0xFFFFFFFFFFFFFFA7 rax *= RSP_0xFFFFFFFFFFFFFFA7; //imul rax, [rbp-0x59] rdx += rax; //add rdx, rax rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rax += 0xFFFFFFFFD6AD7A46; //add rax, 0xFFFFFFFFD6AD7A46 rdx += rax; //add rdx, rax return rdx; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EB4E9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD13B9] rax = rdx; //mov rax, rdx rax >>= 0x17; //shr rax, 0x17 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x2E; //shr rax, 0x2E rdx ^= rax; //xor rdx, rax rax = rbx + 0xb7ef; //lea rax, [rbx+0xB7EF] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFBF; RSP_0xFFFFFFFFFFFFFFBF = 0x20E3F69C982B8265; //mov rax, 0x20E3F69C982B8265 : RBP+0xFFFFFFFFFFFFFFBF rdx ^= RSP_0xFFFFFFFFFFFFFFBF; //xor rdx, [rbp-0x41] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0xAEE1A029315E3D4F; //mov rax, 0xAEE1A029315E3D4F rdx *= rax; //imul rdx, rax rax = rbx + 0x618b; //lea rax, [rbx+0x618B] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rax = 0x4F576A9DC4CD39EE; //mov rax, 0x4F576A9DC4CD39EE rdx += rax; //add rdx, rax return rdx; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080EB068] rdx -= r11; //sub rdx, r11 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 = rdx; //mov rax, rdx rax >>= 0x21; //shr rax, 0x21 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 rax ^= rdx; //xor rax, rdx rdx = 0x17CF0497F2D22203; //mov rdx, 0x17CF0497F2D22203 rax *= rdx; //imul rax, rdx rdx = rax; //mov rdx, rax rdx >>= 0x25; //shr rdx, 0x25 rdx ^= rax; //xor rdx, rax rax = 0xBE5CC72B0AEE64FD; //mov rax, 0xBE5CC72B0AEE64FD rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 7: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD0A62] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EAB04] rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0xDEF0; //lea rax, [0xFFFFFFFFFDBDE663] rcx ^= rax; //xor rcx, rax rax = 0xF875422C3B24C08F; //mov rax, 0xF875422C3B24C08F rax -= rcx; //sub rax, rcx rdx += rax; //add rdx, rax 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 ^= rbx; //xor rdx, rbx rax = 0x65FDE940447DEE2B; //mov rax, 0x65FDE940447DEE2B rdx *= rax; //imul rdx, rax rax = 0x39A26EAD2B76265B; //mov rax, 0x39A26EAD2B76265B rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1B; //shr rax, 0x1B rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x36; //shr rax, 0x36 rdx ^= rax; //xor rdx, rax return rdx; } case 8: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EA661] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD0531] rax = 0xFFFFFFFFFFFF597D; //mov rax, 0xFFFFFFFFFFFF597D rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0xD0F09E7A8C7613B3; //mov rax, 0xD0F09E7A8C7613B3 rdx *= rax; //imul rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0x256B3436B62B89E5; //mov rax, 0x256B3436B62B89E5 rdx -= rax; //sub rdx, rax rdx += rbx; //add rdx, rbx rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0x7B64B958; //lea rax, [0x000000007921BBB4] rax = ~rax; //not rax rcx = ~rcx; //not rcx rcx += rax; //add rcx, rax rdx ^= rcx; //xor rdx, rcx return rdx; } case 9: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD00D5] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EA182] 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 = 0x54E648D07B6D0B80; //mov rax, 0x54E648D07B6D0B80 rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx 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 rax ^= r11; //xor rax, r11 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = 0xB0386AF6C89E01ED; //mov rax, 0xB0386AF6C89E01ED rdx *= rax; //imul rdx, rax return rdx; } case 10: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E9CAF] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCFB7F] rax = 0x9332D19135BB918F; //mov rax, 0x9332D19135BB918F rdx *= rax; //imul rdx, rax rax = 0xFFFFFFFF8DA4B362; //mov rax, 0xFFFFFFFF8DA4B362 rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= r11; //xor rdx, r11 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 rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0xD1ED; //lea rax, [0xFFFFFFFFFDBDCBC6] rcx *= rax; //imul rcx, rax rax = rdx; //mov rax, rdx rax >>= 0x20; //shr rax, 0x20 rcx ^= rax; //xor rcx, rax rdx ^= rcx; //xor rdx, rcx rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0x868; //lea rax, [0xFFFFFFFFFDBD02B1] rdx += rax; //add rdx, rax rdx += rcx; //add rdx, rcx rax = r11; //mov rax, r11 rax = ~rax; //not rax rax -= rbx; //sub rax, rbx rax -= 0x7CCC6306; //sub rax, 0x7CCC6306 rdx ^= rax; //xor rdx, rax return rdx; } case 11: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080E975F] 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 = 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 = 0x8CABBD467C0219D3; //mov rax, 0x8CABBD467C0219D3 rdx *= rax; //imul rdx, rax rax = 0xAB98E88DE9C18818; //mov rax, 0xAB98E88DE9C18818 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFEF; RSP_0xFFFFFFFFFFFFFFEF = baseModuleAddr + 0x8516; //lea rax, [0xFFFFFFFFFDBD7BE0] : RBP+0xFFFFFFFFFFFFFFEF rax *= RSP_0xFFFFFFFFFFFFFFEF; //imul rax, [rbp-0x11] rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x596E42B1953FE5C1; //mov rax, 0x596E42B1953FE5C1 rdx += rax; //add rdx, rax return rdx; } case 12: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E921E] rdx ^= r11; //xor rdx, r11 rax = baseModuleAddr + 0x1BAF; //lea rax, [0xFFFFFFFFFDBD0929] rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = baseModuleAddr + 0x259F56F6; //lea rax, [0x00000000235C47E4] : RBP+0xFFFFFFFFFFFFFF9F rdx += RSP_0xFFFFFFFFFFFFFF9F; //add rdx, [rbp-0x61] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x294D76F27D0F6D85; //mov rax, 0x294D76F27D0F6D85 rdx -= rax; //sub 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 = 0x40AE2552A77DAFE6; //mov rax, 0x40AE2552A77DAFE6 rdx -= r11; //sub rdx, r11 rdx ^= rax; //xor rdx, rax rax = 0x6425FC1CEAFDBD3B; //mov rax, 0x6425FC1CEAFDBD3B rdx *= rax; //imul rdx, rax return rdx; } case 13: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E8E26] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCECF6] rdx += rbx; //add rdx, rbx 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0x7AAF0F372FD53CD5; //mov rax, 0x7AAF0F372FD53CD5 rdx *= rax; //imul rdx, rax rax = 0x4BE188FD7D45B824; //mov rax, 0x4BE188FD7D45B824 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rax = rdx; //mov rax, rdx rax >>= 0x25; //shr rax, 0x25 rdx ^= rax; //xor rdx, rax rax = 0x2F94247E3E6CDFF6; //mov rax, 0x2F94247E3E6CDFF6 rdx -= rax; //sub rdx, rax return rdx; } case 14: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E8999] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCE85E] rax = 0x59FC5D34C1D95075; //mov rax, 0x59FC5D34C1D95075 rdx += rax; //add rdx, rax rax = 0x113F93E895C764EB; //mov rax, 0x113F93E895C764EB rdx *= rax; //imul rdx, rax rax = baseModuleAddr + 0x3BFCF952; //lea rax, [0x0000000039B9DEB5] rax = ~rax; //not rax rax ^= r11; //xor 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 = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx -= rbx; //sub rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x23; //shr rax, 0x23 rdx ^= rax; //xor rdx, rax uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = 0x3D4F5BB3C70BE95B; //mov rax, 0x3D4F5BB3C70BE95B : RBP+0xFFFFFFFFFFFFFF9F rdx *= RSP_0xFFFFFFFFFFFFFF9F; //imul rdx, [rbp-0x61] rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x9DA7; //lea rax, [0xFFFFFFFFFDBD8610] : RBP+0xFFFFFFFFFFFFFFA7 rax ^= RSP_0xFFFFFFFFFFFFFFA7; //xor rax, [rbp-0x59] rdx -= rax; //sub rdx, rax return rdx; } case 15: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCE3E0] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080E8499] 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 = 0x63FD32E967945525; //mov rax, 0x63FD32E967945525 rdx -= rax; //sub rdx, rax rdx += r11; //add rdx, r11 rax = 0xB85215B9839B7D9; //mov rax, 0xB85215B9839B7D9 rdx += rax; //add rdx, rax rdx ^= rbx; //xor rdx, rbx rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] 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 = 0xE52EBF353AE32CDB; //mov rax, 0xE52EBF353AE32CDB rdx *= rax; //imul rdx, rax return rdx; } } } uintptr_t decrypt_bone_base() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0xDF7A7A8); if(!rax) return rax; rbx = Peb; //mov rbx, gs:[rcx] rcx = rbx; //mov rcx, rbx rcx >>= 0x1C; //shr rcx, 0x1C rcx &= 0xF; switch(rcx) { case 0: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007EA1573] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax += rbx; //add rax, rbx rcx = rax; //mov rcx, rax rax >>= 0x13; //shr rax, 0x13 rcx ^= rax; //xor rcx, rax rax = rcx; //mov rax, rcx rax >>= 0x26; //shr rax, 0x26 rax ^= rcx; //xor rax, rcx rax -= rbx; //sub rax, rbx rcx = 0xD5A6F9222EC0CD8B; //mov rcx, 0xD5A6F9222EC0CD8B rax *= rcx; //imul rax, rcx rcx = 0xBB2862E8C0DD851B; //mov rcx, 0xBB2862E8C0DD851B rax *= rcx; //imul 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 return rax; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA1124] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = rax; //mov rcx, rax rcx >>= 0x1E; //shr rcx, 0x1E rax ^= rcx; //xor rax, rcx rdx = baseModuleAddr + 0x6179D5AB; //lea rdx, [0x000000005F12428C] rdx -= rbx; //sub rdx, rbx rcx = rax; //mov rcx, rax rcx >>= 0x3C; //shr rcx, 0x3C rdx ^= rcx; //xor rdx, rcx rax ^= rdx; //xor rax, rdx rax += rbx; //add rax, rbx rcx = 0xC430FCF5AB246D6; //mov rcx, 0xC430FCF5AB246D6 rax += rcx; //add rax, rcx rcx = 0x8A220291A10CAF87; //mov rcx, 0x8A220291A10CAF87 rax *= rcx; //imul rax, rcx rcx = 0x7FAA38A95F85A6FD; //mov rcx, 0x7FAA38A95F85A6FD rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD986E85] rax -= rcx; //sub rax, rcx return rax; } case 2: { r14 = baseModuleAddr + 0x2281; //lea r14, [0xFFFFFFFFFD988D70] r13 = baseModuleAddr + 0x66A0AFC0; //lea r13, [0x0000000064391AA0] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA0CB5] rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx *= rbx; //imul rdx, rbx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rdx += rcx; //add rdx, rcx rcx = baseModuleAddr + 0xBA28; //lea rcx, [0xFFFFFFFFFD992216] rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = 0x975CC895B7E831F1; //mov rcx, 0x975CC895B7E831F1 rax ^= rcx; //xor rax, rcx rcx = 0x3B97C5DC626E056F; //mov rcx, 0x3B97C5DC626E056F rax *= rcx; //imul rax, rcx rcx = 0x5534067E232C6632; //mov rcx, 0x5534067E232C6632 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 3: { r13 = baseModuleAddr + 0x50F8B6F5; //lea r13, [0x000000004E911C6D] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007EA06CF] rcx = r13; //mov rcx, r13 rcx = ~rcx; //not rcx rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9860C5] 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x60F6A79B0C8456B1; //mov rcx, 0x60F6A79B0C8456B1 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx rcx = 0x648FCA6FE7D44377; //mov rcx, 0x648FCA6FE7D44377 rax -= rcx; //sub rax, rcx rcx = 0xC462FCF18E2C2995; //mov rcx, 0xC462FCF18E2C2995 rax *= rcx; //imul rax, rcx 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 return rax; } case 4: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA0154] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax -= rbx; //sub rax, rbx 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 = 0xB1A93FB4C084CAB9; //mov rcx, 0xB1A93FB4C084CAB9 rax *= rcx; //imul rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x24; //shr rcx, 0x24 rcx ^= rax; //xor rcx, rax rax = 0x352F8A796F79706B; //mov rax, 0x352F8A796F79706B rcx ^= rax; //xor rcx, rax rax = baseModuleAddr; //lea rax, [0xFFFFFFFFFD985B89] rcx -= rax; //sub rcx, rax rax = rbx + 0xffffffffa5917e54; //lea rax, [rbx-0x5A6E81AC] rax += rcx; //add rax, rcx rcx = 0xA920BAB7A21DDE47; //mov rcx, 0xA920BAB7A21DDE47 rax *= rcx; //imul rax, rcx return rax; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9FCD4] rdx = baseModuleAddr + 0x661; //lea rdx, [0xFFFFFFFFFD9860A4] uintptr_t RSP_0x78; RSP_0x78 = 0x19A86082B9386E61; //mov rcx, 0x19A86082B9386E61 : RSP+0x78 rax ^= RSP_0x78; //xor rax, [rsp+0x78] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx uintptr_t RSP_0x30; RSP_0x30 = baseModuleAddr + 0x89B8; //lea rcx, [0xFFFFFFFFFD98E432] : RSP+0x30 rcx ^= RSP_0x30; //xor rcx, [rsp+0x30] rax -= rcx; //sub rax, rcx rcx = 0x6CF5D40C805C3929; //mov rcx, 0x6CF5D40C805C3929 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = rax; //mov rcx, rax rcx >>= 0x23; //shr rcx, 0x23 rax ^= rcx; //xor rax, rcx rcx = 0xEA2BDCA216FA84E; //mov rcx, 0xEA2BDCA216FA84E rax += rcx; //add rax, rcx rcx = rdx; //mov rcx, rdx rcx = ~rcx; //not rcx rcx -= rbx; //sub rcx, rbx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9F7B5] rcx = 0x143119596E0AB6F4; //mov rcx, 0x143119596E0AB6F4 rcx -= rbx; //sub rcx, rbx rax += rcx; //add 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 = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9853E1] rax -= rcx; //sub rax, rcx rcx = 0xD0FF53657C7A437; //mov rcx, 0xD0FF53657C7A437 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x1946435536018835; //mov rcx, 0x1946435536018835 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx return rax; } case 7: { r11 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r11, [0x0000000007E9F3A4] rdx = baseModuleAddr + 0x32D6EFEE; //lea rdx, [0x00000000306F4117] r8 = 0; //and r8, 0xFFFFFFFFC0000000 r8 = _rotl64(r8, 0x10); //rol r8, 0x10 r8 ^= r11; //xor r8, r11 rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx r8 = ~r8; //not r8 rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rax ^= rbx; //xor rax, rbx rax *= Read<uintptr_t>(r8 + 0x13); //imul rax, [r8+0x13] rcx = 0x6B8832A948DD0921; //mov rcx, 0x6B8832A948DD0921 rax += rcx; //add rax, rcx rcx = 0x9D382E284DCFD7C7; //mov rcx, 0x9D382E284DCFD7C7 rax *= rcx; //imul rax, rcx rcx = 0x4A2F2EC6D9595386; //mov rcx, 0x4A2F2EC6D9595386 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 = rax; //mov rcx, rax rcx >>= 0x15; //shr rcx, 0x15 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x2A; //shr rcx, 0x2A rax ^= rcx; //xor rax, rcx return rax; } case 8: { r14 = baseModuleAddr + 0x98C7; //lea r14, [0xFFFFFFFFFD98E487] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9ED83] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9847D0] rax ^= rcx; //xor rax, rcx rcx = 0xB9B101CE6C8E2F91; //mov rcx, 0xB9B101CE6C8E2F91 rax *= rcx; //imul rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984AC7] rax -= rcx; //sub 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 rax -= rbx; //sub rax, rbx rcx = 0x4F54898D891371A4; //mov rcx, 0x4F54898D891371A4 rax += rcx; //add rax, rcx rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rcx = r14; //mov rcx, r14 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rdx ^= r10; //xor rdx, r10 rdx = ~rdx; //not rdx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] return rax; } case 9: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9E927] rcx = 0x5C495DB1FF8A0C7D; //mov rcx, 0x5C495DB1FF8A0C7D rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984682] rax -= rcx; //sub rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984441] rax += rcx; //add rax, rcx rdx = baseModuleAddr; //lea rdx, [0xFFFFFFFFFD984428] rdx += rbx; //add rdx, rbx rcx = 0x931F45DADBA6534A; //mov rcx, 0x931F45DADBA6534A rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = 0x7254D9C4F5E0407F; //mov rcx, 0x7254D9C4F5E0407F rax *= rcx; //imul rax, rcx return rax; } case 10: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9E4A8] rcx = 0x16092956D42CB466; //mov rcx, 0x16092956D42CB466 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x28; //shr rcx, 0x28 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x22; //shr rcx, 0x22 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0xB; //shr rcx, 0x0B rax ^= rcx; //xor rax, rcx 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 = 0xC2E2E61ED49F5991; //mov rcx, 0xC2E2E61ED49F5991 rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] 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 rax -= rbx; //sub rax, rbx return rax; } case 11: { r13 = baseModuleAddr + 0x3E6FD0B3; //lea r13, [0x000000003C080E21] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9DEDC] rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx r14 = baseModuleAddr; //lea r14, [0xFFFFFFFFFD9837B1] rax += r14; //add rax, r14 r14 = baseModuleAddr + 0x27799030; //lea r14, [0x000000002511C7CA] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x6E5FECB626B1C472; //mov rcx, 0x6E5FECB626B1C472 rax += rcx; //add rax, rcx rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx ^= rbx; //xor rdx, rbx rcx = 0xF5121CBF37E46BBB; //mov rcx, 0xF5121CBF37E46BBB rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rcx = 0xD2D6E8735A76DE2D; //mov rcx, 0xD2D6E8735A76DE2D rax *= rcx; //imul rax, rcx return rax; } case 12: { rdx = baseModuleAddr + 0xF737; //lea rdx, [0xFFFFFFFFFD992E92] r13 = baseModuleAddr + 0x1124573F; //lea r13, [0x000000000EBC8E7C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9D8BE] rax += rbx; //add rax, rbx 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 uintptr_t RSP_0x50; RSP_0x50 = 0x636BE495B0FA383E; //mov rcx, 0x636BE495B0FA383E : RSP+0x50 rax ^= RSP_0x50; //xor rax, [rsp+0x50] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = r13; //mov rcx, r13 rcx ^= rbx; //xor rcx, rbx rax ^= rcx; //xor rax, rcx rcx = 0x8812EF99851F0715; //mov rcx, 0x8812EF99851F0715 rax *= rcx; //imul rax, rcx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx += rdx; //add rcx, rdx rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0xB69; //lea rcx, [0xFFFFFFFFFD9840F3] rcx -= rbx; //sub rcx, rbx rax += rcx; //add rax, rcx return rax; } case 13: { r13 = baseModuleAddr + 0x5EF7; //lea r13, [0xFFFFFFFFFD98914B] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9D41B] 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 rdx = rbx; //mov rdx, rbx rcx = rax; //mov rcx, rax rdx = ~rdx; //not rdx rcx >>= 0x28; //shr rcx, 0x28 rdx ^= r13; //xor rdx, r13 rax ^= rcx; //xor rax, rcx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x736E085CD239F4CB; //mov rcx, 0x736E085CD239F4CB rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD982D62] rax ^= rcx; //xor rax, rcx rcx = 0x7DA51A97E3053243; //mov rcx, 0x7DA51A97E3053243 rax *= rcx; //imul rax, rcx rcx = 0x785CF31817D043AC; //mov rcx, 0x785CF31817D043AC rax ^= rcx; //xor rax, rcx return rax; } case 14: { r13 = baseModuleAddr + 0x16A6; //lea r13, [0xFFFFFFFFFD984325] r14 = baseModuleAddr + 0xF57E; //lea r14, [0xFFFFFFFFFD9921EE] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9CE40] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx *= r14; //imul rcx, r14 rax += rcx; //add 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 r11 = 0xBE40C084BA769FA; //mov r11, 0xBE40C084BA769FA rcx = r13; //mov rcx, r13 rcx *= rbx; //imul rcx, rbx rcx += r11; //add rcx, r11 rax += rcx; //add rax, rcx rcx = 0xB92AAB45027C43E2; //mov rcx, 0xB92AAB45027C43E2 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0x4FED906B; //lea rcx, [0x000000004D85B9E1] rcx += rbx; //add rcx, rbx rax += rcx; //add rax, rcx rcx = 0xBCCB1C832C79BF0B; //mov rcx, 0xBCCB1C832C79BF0B rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 15: { r14 = baseModuleAddr + 0x31081C40; //lea r14, [0x000000002EA0438C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9C90F] rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx = rax; //mov rcx, rax rdx ^= r10; //xor rdx, r10 rcx >>= 0x20; //shr rcx, 0x20 rdx = ~rdx; //not rdx rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] rax -= rcx; //sub rax, rcx rcx = 0xFC32828FC4E7EFD1; //mov rcx, 0xFC32828FC4E7EFD1 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx 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 rcx = rax; //mov rcx, rax rcx >>= 0x30; //shr rcx, 0x30 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 = 0x8D793715ED015397; //mov rcx, 0x8D793715ED015397 rax *= rcx; //imul rax, rcx return rax; } } } uint16_t get_bone_index(uint32_t bone_index) { const uint64_t mb = baseModuleAddr; 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; rdi = bone_index; rcx = rdi * 0x13C8; rax = 0x1B5C5E9652FDACE7; //mov rax, 0x1B5C5E9652FDACE7 rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx r11 = baseModuleAddr; //lea r11, [0xFFFFFFFFFD3A1F18] r10 = 0x19E9C4E0C9861BBD; //mov r10, 0x19E9C4E0C9861BBD rdx >>= 0xA; //shr rdx, 0x0A rax = rdx * 0x256D; //imul rax, rdx, 0x256D rcx -= rax; //sub rcx, rax rax = 0x4F9FF77A70376427; //mov rax, 0x4F9FF77A70376427 r8 = rcx * 0x256D; //imul r8, rcx, 0x256D 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 >>= 0xD; //shr rax, 0x0D rax = rax * 0x30D1; //imul rax, rax, 0x30D1 r8 -= rax; //sub r8, rax rax = 0x70381C0E070381C1; //mov rax, 0x70381C0E070381C1 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x92; //imul rcx, rdx, 0x92 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 = Read<uint16_t>(rcx + r11 * 1 + 0xA5D1140); //movzx eax, word ptr [rcx+r11*1+0xA5D1140] r8 = rax * 0x13C8; //imul r8, rax, 0x13C8 rax = r10; //mov rax, r10 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rcx = r8; //mov rcx, r8 rax = r10; //mov rax, r10 rcx -= rdx; //sub rcx, rdx rcx >>= 0x1; //shr rcx, 0x01 rcx += rdx; //add rcx, rdx rcx >>= 0xC; //shr rcx, 0x0C rcx = rcx * 0x1D0F; //imul rcx, rcx, 0x1D0F r8 -= rcx; //sub r8, rcx r9 = r8 * 0x3981; //imul r9, r8, 0x3981 rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 rax -= rdx; //sub rax, rdx rax >>= 0x1; //shr rax, 0x01 rax += rdx; //add rax, rdx rax >>= 0xC; //shr rax, 0x0C rax = rax * 0x1D0F; //imul rax, rax, 0x1D0F r9 -= rax; //sub r9, rax rax = 0xD79435E50D79435F; //mov rax, 0xD79435E50D79435F rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = 0xA6810A6810A6811; //mov rax, 0xA6810A6810A6811 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x4C; //imul rcx, rdx, 0x4C rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 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 * 0xF6; //imul rax, rcx, 0xF6 rcx = r9 * 0xF8; //imul rcx, r9, 0xF8 rcx -= rax; //sub rcx, rax r15 = Read<uint16_t>(rcx + r11 * 1 + 0xA5D9FE0); //movsx r15d, word ptr [rcx+r11*1+0xA5D9FE0] return r15; }
Battle.net
C++:namespace offsets { auto ref_def_ptr = 0x138ADB38; auto name_array = 0x138CCF20; auto name_array_pos = 0x5E70; auto loot_ptr = 0xBADD12C; auto camera_base = 0x13ECD810; auto camera_pos = 0x1F8; auto local_index = 0xB1D00; auto local_index_pos = 0x2D0; auto game_mode = 0x100DCDA8; auto weapon_definitions = 0x13830F90; auto distribute = 0xBAA6998; auto visible_offset = 0xA80; auto visible = 0x28047A0; namespace player { auto size = 0x6980; auto valid = 0x1301; auto pos = 0xF70; auto team = 0xFF8; auto weapon_index = 0x1762; auto dead_1 = 0x1E0A; auto dead_2 = 0x1FD0; } namespace bone { auto bone_base = 0xEBB30; auto size = 0x180; auto offset = 0xD8; } } uintptr_t decrypt_client_info() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0x138AD798); if(!rbx) return rbx; rdx= ~Peb; //mov rdx, gs:[rax] rax = rbx; //mov rax, rbx rax >>= 0x22; //shr rax, 0x22 rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rbx ^= rax; //xor rbx, rax rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= Read<uintptr_t>(baseModuleAddr + 0xA8B40E3); //xor rcx, [0x000000000842D840] rax = baseModuleAddr + 0x1343C359; //lea rax, [0x0000000010FB5AAF] rbx += rdx; //add rbx, rdx rcx = ~rcx; //not rcx rbx += rax; //add rbx, rax rax = 0xD63E4A83CB9A620B; //mov rax, 0xD63E4A83CB9A620B rbx *= Read<uintptr_t>(rcx + 0x11); //imul rbx, [rcx+0x11] rbx -= rdx; //sub rbx, rdx rbx *= rax; //imul rbx, rax rax = 0x57242547CAD98C71; //mov rax, 0x57242547CAD98C71 rbx -= rax; //sub rbx, rax return rbx; } uintptr_t decrypt_client_base(uintptr_t client_info) { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(client_info + 0x10e670); if(!rdx) return rdx; r11= ~Peb; //mov r11, gs:[rax] rax = r11; //mov rax, r11 rax = _rotl64(rax, 0x23); //rol rax, 0x23 rax &= 0xF; switch(rax) { case 0: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9C4EA] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x00000000084505A9] rax = rdx; //mov rax, rdx rax >>= 0x7; //shr rax, 0x07 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 = 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx += rbx; //add rdx, rbx rax = 0x6A51BC9BC4AA6767; //mov rax, 0x6A51BC9BC4AA6767 rdx *= rax; //imul rdx, rax rax = 0x5447EBF1221B83E6; //mov rax, 0x5447EBF1221B83E6 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rdx ^= rbx; //xor rdx, rbx return rdx; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x0000000008450175] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9C045] rdx -= r11; //sub rdx, r11 rax = baseModuleAddr + 0x6B3C0100; //lea rax, [0x0000000068F5C056] rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x24; //shr rax, 0x24 rdx ^= rax; //xor rdx, rax rax = 0x4A2A83616AD92661; //mov rax, 0x4A2A83616AD92661 rdx *= rax; //imul rdx, rax rax = 0xECFC5B4C57C54F28; //mov rax, 0xECFC5B4C57C54F28 rdx += rax; //add rdx, rax rax = 0xF0FDCE631F7BA29F; //mov rax, 0xF0FDCE631F7BA29F rdx ^= rax; //xor rdx, rax return rdx; } case 2: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9BBCB] rcx = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov rcx, [0x000000000844FC75] rax = 0xD511FD9CF85D2C07; //mov rax, 0xD511FD9CF85D2C07 rdx *= rax; //imul rdx, rax rdx ^= r11; //xor rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFCF; RSP_0xFFFFFFFFFFFFFFCF = baseModuleAddr + 0x2E433015; //lea rax, [0x000000002BFCEB99] : RBP+0xFFFFFFFFFFFFFFCF rax *= RSP_0xFFFFFFFFFFFFFFCF; //imul rax, [rbp-0x31] rdx += rax; //add rdx, rax rdx -= rbx; //sub rdx, rbx 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 = 0x3EDAD65FDC1034FF; //mov rax, 0x3EDAD65FDC1034FF rdx *= rax; //imul rdx, rax rax = 0x2AE3002A8E8BF08B; //mov rax, 0x2AE3002A8E8BF08B rdx -= rax; //sub rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= rcx; //xor rax, rcx rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 3: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844F8D9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9B7A9] rax = rbx + 0x1771cb1b; //lea rax, [rbx+0x1771CB1B] rax += r11; //add rax, r11 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0xB; //shr rax, 0x0B rdx ^= rax; //xor rdx, rax 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; //sub rdx, r11 rax = 0xFD500870540625B; //mov rax, 0xFD500870540625B rdx *= rax; //imul rdx, rax rax = 0x1BC06434489E44B5; //mov rax, 0x1BC06434489E44B5 rdx += rax; //add rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x600D6B3C699E6524; //mov rax, 0x600D6B3C699E6524 rdx += rax; //add rdx, rax return rdx; } case 4: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9B1D8] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844F290] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x44DF33AE79D34CE7; //mov rax, 0x44DF33AE79D34CE7 rdx *= rax; //imul rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rax = baseModuleAddr + 0x3B36; //lea rax, [0xFFFFFFFFFDB9E80F] rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x27; //shr rax, 0x27 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x27B9; //lea rax, [0xFFFFFFFFFDB9D94F] : RBP+0xFFFFFFFFFFFFFFA7 rax *= RSP_0xFFFFFFFFFFFFFFA7; //imul rax, [rbp-0x59] rdx += rax; //add rdx, rax rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rax += 0xFFFFFFFFD6AD7A46; //add rax, 0xFFFFFFFFD6AD7A46 rdx += rax; //add rdx, rax return rdx; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844EDD9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9ACA9] rax = rdx; //mov rax, rdx rax >>= 0x17; //shr rax, 0x17 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x2E; //shr rax, 0x2E rdx ^= rax; //xor rdx, rax rax = rbx + 0xb7ef; //lea rax, [rbx+0xB7EF] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFBF; RSP_0xFFFFFFFFFFFFFFBF = 0x20E3F69C982B8265; //mov rax, 0x20E3F69C982B8265 : RBP+0xFFFFFFFFFFFFFFBF rdx ^= RSP_0xFFFFFFFFFFFFFFBF; //xor rdx, [rbp-0x41] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0xAEE1A029315E3D4F; //mov rax, 0xAEE1A029315E3D4F rdx *= rax; //imul rdx, rax rax = rbx + 0x618b; //lea rax, [rbx+0x618B] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rax = 0x4F576A9DC4CD39EE; //mov rax, 0x4F576A9DC4CD39EE rdx += rax; //add rdx, rax return rdx; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844E958] rdx -= r11; //sub rdx, r11 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 = rdx; //mov rax, rdx rax >>= 0x21; //shr rax, 0x21 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 rax ^= rdx; //xor rax, rdx rdx = 0x17CF0497F2D22203; //mov rdx, 0x17CF0497F2D22203 rax *= rdx; //imul rax, rdx rdx = rax; //mov rdx, rax rdx >>= 0x25; //shr rdx, 0x25 rdx ^= rax; //xor rdx, rax rax = 0xBE5CC72B0AEE64FD; //mov rax, 0xBE5CC72B0AEE64FD rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 7: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9A352] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844E3F4] rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0xDEF0; //lea rax, [0xFFFFFFFFFDBA7F53] rcx ^= rax; //xor rcx, rax rax = 0xF875422C3B24C08F; //mov rax, 0xF875422C3B24C08F rax -= rcx; //sub rax, rcx rdx += rax; //add rdx, rax 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 ^= rbx; //xor rdx, rbx rax = 0x65FDE940447DEE2B; //mov rax, 0x65FDE940447DEE2B rdx *= rax; //imul rdx, rax rax = 0x39A26EAD2B76265B; //mov rax, 0x39A26EAD2B76265B rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1B; //shr rax, 0x1B rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x36; //shr rax, 0x36 rdx ^= rax; //xor rdx, rax return rdx; } case 8: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844DF51] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB99E21] rax = 0xFFFFFFFFFFFF597D; //mov rax, 0xFFFFFFFFFFFF597D rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0xD0F09E7A8C7613B3; //mov rax, 0xD0F09E7A8C7613B3 rdx *= rax; //imul rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0x256B3436B62B89E5; //mov rax, 0x256B3436B62B89E5 rdx -= rax; //sub rdx, rax rdx += rbx; //add rdx, rbx rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0x7B64B958; //lea rax, [0x00000000791E54A4] rax = ~rax; //not rax rcx = ~rcx; //not rcx rcx += rax; //add rcx, rax rdx ^= rcx; //xor rdx, rcx return rdx; } case 9: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB999C5] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844DA72] 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 = 0x54E648D07B6D0B80; //mov rax, 0x54E648D07B6D0B80 rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx 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 rax ^= r11; //xor rax, r11 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = 0xB0386AF6C89E01ED; //mov rax, 0xB0386AF6C89E01ED rdx *= rax; //imul rdx, rax return rdx; } case 10: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844D59F] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9946F] rax = 0x9332D19135BB918F; //mov rax, 0x9332D19135BB918F rdx *= rax; //imul rdx, rax rax = 0xFFFFFFFF8DA4B362; //mov rax, 0xFFFFFFFF8DA4B362 rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= r11; //xor rdx, r11 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 rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0xD1ED; //lea rax, [0xFFFFFFFFFDBA64B6] rcx *= rax; //imul rcx, rax rax = rdx; //mov rax, rdx rax >>= 0x20; //shr rax, 0x20 rcx ^= rax; //xor rcx, rax rdx ^= rcx; //xor rdx, rcx rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0x868; //lea rax, [0xFFFFFFFFFDB99BA1] rdx += rax; //add rdx, rax rdx += rcx; //add rdx, rcx rax = r11; //mov rax, r11 rax = ~rax; //not rax rax -= rbx; //sub rax, rbx rax -= 0x7CCC6306; //sub rax, 0x7CCC6306 rdx ^= rax; //xor rdx, rax return rdx; } case 11: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844D04F] 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 = 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 = 0x8CABBD467C0219D3; //mov rax, 0x8CABBD467C0219D3 rdx *= rax; //imul rdx, rax rax = 0xAB98E88DE9C18818; //mov rax, 0xAB98E88DE9C18818 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFEF; RSP_0xFFFFFFFFFFFFFFEF = baseModuleAddr + 0x8516; //lea rax, [0xFFFFFFFFFDBA14D0] : RBP+0xFFFFFFFFFFFFFFEF rax *= RSP_0xFFFFFFFFFFFFFFEF; //imul rax, [rbp-0x11] rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x596E42B1953FE5C1; //mov rax, 0x596E42B1953FE5C1 rdx += rax; //add rdx, rax return rdx; } case 12: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844CB0E] rdx ^= r11; //xor rdx, r11 rax = baseModuleAddr + 0x1BAF; //lea rax, [0xFFFFFFFFFDB9A219] rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = baseModuleAddr + 0x259F56F6; //lea rax, [0x000000002358E0D4] : RBP+0xFFFFFFFFFFFFFF9F rdx += RSP_0xFFFFFFFFFFFFFF9F; //add rdx, [rbp-0x61] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x294D76F27D0F6D85; //mov rax, 0x294D76F27D0F6D85 rdx -= rax; //sub 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 = 0x40AE2552A77DAFE6; //mov rax, 0x40AE2552A77DAFE6 rdx -= r11; //sub rdx, r11 rdx ^= rax; //xor rdx, rax rax = 0x6425FC1CEAFDBD3B; //mov rax, 0x6425FC1CEAFDBD3B rdx *= rax; //imul rdx, rax return rdx; } case 13: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844C716] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB985E6] rdx += rbx; //add rdx, rbx 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0x7AAF0F372FD53CD5; //mov rax, 0x7AAF0F372FD53CD5 rdx *= rax; //imul rdx, rax rax = 0x4BE188FD7D45B824; //mov rax, 0x4BE188FD7D45B824 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rax = rdx; //mov rax, rdx rax >>= 0x25; //shr rax, 0x25 rdx ^= rax; //xor rdx, rax rax = 0x2F94247E3E6CDFF6; //mov rax, 0x2F94247E3E6CDFF6 rdx -= rax; //sub rdx, rax return rdx; } case 14: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844C289] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9814E] rax = 0x59FC5D34C1D95075; //mov rax, 0x59FC5D34C1D95075 rdx += rax; //add rdx, rax rax = 0x113F93E895C764EB; //mov rax, 0x113F93E895C764EB rdx *= rax; //imul rdx, rax rax = baseModuleAddr + 0x3BFCF952; //lea rax, [0x0000000039B677A5] rax = ~rax; //not rax rax ^= r11; //xor 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 = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx -= rbx; //sub rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x23; //shr rax, 0x23 rdx ^= rax; //xor rdx, rax uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = 0x3D4F5BB3C70BE95B; //mov rax, 0x3D4F5BB3C70BE95B : RBP+0xFFFFFFFFFFFFFF9F rdx *= RSP_0xFFFFFFFFFFFFFF9F; //imul rdx, [rbp-0x61] rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x9DA7; //lea rax, [0xFFFFFFFFFDBA1F00] : RBP+0xFFFFFFFFFFFFFFA7 rax ^= RSP_0xFFFFFFFFFFFFFFA7; //xor rax, [rbp-0x59] rdx -= rax; //sub rdx, rax return rdx; } case 15: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB97CD0] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844BD89] 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 = 0x63FD32E967945525; //mov rax, 0x63FD32E967945525 rdx -= rax; //sub rdx, rax rdx += r11; //add rdx, r11 rax = 0xB85215B9839B7D9; //mov rax, 0xB85215B9839B7D9 rdx += rax; //add rdx, rax rdx ^= rbx; //xor rdx, rbx rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] 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 = 0xE52EBF353AE32CDB; //mov rax, 0xE52EBF353AE32CDB rdx *= rax; //imul rdx, rax return rdx; } } } uintptr_t decrypt_bone_base() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0xE2759F8); if(!rax) return rax; rbx = Peb; //mov rbx, gs:[rcx] rcx = rbx; //mov rcx, rbx rcx >>= 0x1C; //shr rcx, 0x1C rcx &= 0xF; switch(rcx) { case 0: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x0000000008200923] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax += rbx; //add rax, rbx rcx = rax; //mov rcx, rax rax >>= 0x13; //shr rax, 0x13 rcx ^= rax; //xor rcx, rax rax = rcx; //mov rax, rcx rax >>= 0x26; //shr rax, 0x26 rax ^= rcx; //xor rax, rcx rax -= rbx; //sub rax, rbx rcx = 0xD5A6F9222EC0CD8B; //mov rcx, 0xD5A6F9222EC0CD8B rax *= rcx; //imul rax, rcx rcx = 0xBB2862E8C0DD851B; //mov rcx, 0xBB2862E8C0DD851B rax *= rcx; //imul 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 return rax; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000082004D4] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = rax; //mov rcx, rax rcx >>= 0x1E; //shr rcx, 0x1E rax ^= rcx; //xor rax, rcx rdx = baseModuleAddr + 0x6179D5AB; //lea rdx, [0x000000005F0E963C] rdx -= rbx; //sub rdx, rbx rcx = rax; //mov rcx, rax rcx >>= 0x3C; //shr rcx, 0x3C rdx ^= rcx; //xor rdx, rcx rax ^= rdx; //xor rax, rdx rax += rbx; //add rax, rbx rcx = 0xC430FCF5AB246D6; //mov rcx, 0xC430FCF5AB246D6 rax += rcx; //add rax, rcx rcx = 0x8A220291A10CAF87; //mov rcx, 0x8A220291A10CAF87 rax *= rcx; //imul rax, rcx rcx = 0x7FAA38A95F85A6FD; //mov rcx, 0x7FAA38A95F85A6FD rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94C235] rax -= rcx; //sub rax, rcx return rax; } case 2: { r14 = baseModuleAddr + 0x2281; //lea r14, [0xFFFFFFFFFD94E120] r13 = baseModuleAddr + 0x66A0AFC0; //lea r13, [0x0000000064356E50] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x0000000008200065] rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx *= rbx; //imul rdx, rbx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rdx += rcx; //add rdx, rcx rcx = baseModuleAddr + 0xBA28; //lea rcx, [0xFFFFFFFFFD9575C6] rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = 0x975CC895B7E831F1; //mov rcx, 0x975CC895B7E831F1 rax ^= rcx; //xor rax, rcx rcx = 0x3B97C5DC626E056F; //mov rcx, 0x3B97C5DC626E056F rax *= rcx; //imul rax, rcx rcx = 0x5534067E232C6632; //mov rcx, 0x5534067E232C6632 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 3: { r13 = baseModuleAddr + 0x50F8B6F5; //lea r13, [0x000000004E8D701D] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FFA7F] rcx = r13; //mov rcx, r13 rcx = ~rcx; //not rcx rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94B475] 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x60F6A79B0C8456B1; //mov rcx, 0x60F6A79B0C8456B1 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx rcx = 0x648FCA6FE7D44377; //mov rcx, 0x648FCA6FE7D44377 rax -= rcx; //sub rax, rcx rcx = 0xC462FCF18E2C2995; //mov rcx, 0xC462FCF18E2C2995 rax *= rcx; //imul rax, rcx 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 return rax; } case 4: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FF504] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax -= rbx; //sub rax, rbx 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 = 0xB1A93FB4C084CAB9; //mov rcx, 0xB1A93FB4C084CAB9 rax *= rcx; //imul rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x24; //shr rcx, 0x24 rcx ^= rax; //xor rcx, rax rax = 0x352F8A796F79706B; //mov rax, 0x352F8A796F79706B rcx ^= rax; //xor rcx, rax rax = baseModuleAddr; //lea rax, [0xFFFFFFFFFD94AF39] rcx -= rax; //sub rcx, rax rax = rbx + 0xffffffffa5917e54; //lea rax, [rbx-0x5A6E81AC] rax += rcx; //add rax, rcx rcx = 0xA920BAB7A21DDE47; //mov rcx, 0xA920BAB7A21DDE47 rax *= rcx; //imul rax, rcx return rax; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FF084] rdx = baseModuleAddr + 0x661; //lea rdx, [0xFFFFFFFFFD94B454] uintptr_t RSP_0x78; RSP_0x78 = 0x19A86082B9386E61; //mov rcx, 0x19A86082B9386E61 : RSP+0x78 rax ^= RSP_0x78; //xor rax, [rsp+0x78] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx uintptr_t RSP_0x30; RSP_0x30 = baseModuleAddr + 0x89B8; //lea rcx, [0xFFFFFFFFFD9537E2] : RSP+0x30 rcx ^= RSP_0x30; //xor rcx, [rsp+0x30] rax -= rcx; //sub rax, rcx rcx = 0x6CF5D40C805C3929; //mov rcx, 0x6CF5D40C805C3929 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = rax; //mov rcx, rax rcx >>= 0x23; //shr rcx, 0x23 rax ^= rcx; //xor rax, rcx rcx = 0xEA2BDCA216FA84E; //mov rcx, 0xEA2BDCA216FA84E rax += rcx; //add rax, rcx rcx = rdx; //mov rcx, rdx rcx = ~rcx; //not rcx rcx -= rbx; //sub rcx, rbx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FEB65] rcx = 0x143119596E0AB6F4; //mov rcx, 0x143119596E0AB6F4 rcx -= rbx; //sub rcx, rbx rax += rcx; //add 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 = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94A791] rax -= rcx; //sub rax, rcx rcx = 0xD0FF53657C7A437; //mov rcx, 0xD0FF53657C7A437 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x1946435536018835; //mov rcx, 0x1946435536018835 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx return rax; } case 7: { r11 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r11, [0x00000000081FE754] rdx = baseModuleAddr + 0x32D6EFEE; //lea rdx, [0x00000000306B94C7] r8 = 0; //and r8, 0xFFFFFFFFC0000000 r8 = _rotl64(r8, 0x10); //rol r8, 0x10 r8 ^= r11; //xor r8, r11 rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx r8 = ~r8; //not r8 rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rax ^= rbx; //xor rax, rbx rax *= Read<uintptr_t>(r8 + 0x13); //imul rax, [r8+0x13] rcx = 0x6B8832A948DD0921; //mov rcx, 0x6B8832A948DD0921 rax += rcx; //add rax, rcx rcx = 0x9D382E284DCFD7C7; //mov rcx, 0x9D382E284DCFD7C7 rax *= rcx; //imul rax, rcx rcx = 0x4A2F2EC6D9595386; //mov rcx, 0x4A2F2EC6D9595386 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 = rax; //mov rcx, rax rcx >>= 0x15; //shr rcx, 0x15 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x2A; //shr rcx, 0x2A rax ^= rcx; //xor rax, rcx return rax; } case 8: { r14 = baseModuleAddr + 0x98C7; //lea r14, [0xFFFFFFFFFD953837] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FE133] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949B80] rax ^= rcx; //xor rax, rcx rcx = 0xB9B101CE6C8E2F91; //mov rcx, 0xB9B101CE6C8E2F91 rax *= rcx; //imul rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949E77] rax -= rcx; //sub 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 rax -= rbx; //sub rax, rbx rcx = 0x4F54898D891371A4; //mov rcx, 0x4F54898D891371A4 rax += rcx; //add rax, rcx rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rcx = r14; //mov rcx, r14 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rdx ^= r10; //xor rdx, r10 rdx = ~rdx; //not rdx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] return rax; } case 9: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FDCD7] rcx = 0x5C495DB1FF8A0C7D; //mov rcx, 0x5C495DB1FF8A0C7D rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949A32] rax -= rcx; //sub rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9497F1] rax += rcx; //add rax, rcx rdx = baseModuleAddr; //lea rdx, [0xFFFFFFFFFD9497D8] rdx += rbx; //add rdx, rbx rcx = 0x931F45DADBA6534A; //mov rcx, 0x931F45DADBA6534A rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = 0x7254D9C4F5E0407F; //mov rcx, 0x7254D9C4F5E0407F rax *= rcx; //imul rax, rcx return rax; } case 10: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FD858] rcx = 0x16092956D42CB466; //mov rcx, 0x16092956D42CB466 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x28; //shr rcx, 0x28 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x22; //shr rcx, 0x22 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0xB; //shr rcx, 0x0B rax ^= rcx; //xor rax, rcx 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 = 0xC2E2E61ED49F5991; //mov rcx, 0xC2E2E61ED49F5991 rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] 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 rax -= rbx; //sub rax, rbx return rax; } case 11: { r13 = baseModuleAddr + 0x3E6FD0B3; //lea r13, [0x000000003C0461D1] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FD28C] rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx r14 = baseModuleAddr; //lea r14, [0xFFFFFFFFFD948B61] rax += r14; //add rax, r14 r14 = baseModuleAddr + 0x27799030; //lea r14, [0x00000000250E1B7A] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x6E5FECB626B1C472; //mov rcx, 0x6E5FECB626B1C472 rax += rcx; //add rax, rcx rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx ^= rbx; //xor rdx, rbx rcx = 0xF5121CBF37E46BBB; //mov rcx, 0xF5121CBF37E46BBB rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rcx = 0xD2D6E8735A76DE2D; //mov rcx, 0xD2D6E8735A76DE2D rax *= rcx; //imul rax, rcx return rax; } case 12: { rdx = baseModuleAddr + 0xF737; //lea rdx, [0xFFFFFFFFFD958242] r13 = baseModuleAddr + 0x1124573F; //lea r13, [0x000000000EB8E22C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FCC6E] rax += rbx; //add rax, rbx 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 uintptr_t RSP_0x50; RSP_0x50 = 0x636BE495B0FA383E; //mov rcx, 0x636BE495B0FA383E : RSP+0x50 rax ^= RSP_0x50; //xor rax, [rsp+0x50] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = r13; //mov rcx, r13 rcx ^= rbx; //xor rcx, rbx rax ^= rcx; //xor rax, rcx rcx = 0x8812EF99851F0715; //mov rcx, 0x8812EF99851F0715 rax *= rcx; //imul rax, rcx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx += rdx; //add rcx, rdx rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0xB69; //lea rcx, [0xFFFFFFFFFD9494A3] rcx -= rbx; //sub rcx, rbx rax += rcx; //add rax, rcx return rax; } case 13: { r13 = baseModuleAddr + 0x5EF7; //lea r13, [0xFFFFFFFFFD94E4FB] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FC7CB] 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 rdx = rbx; //mov rdx, rbx rcx = rax; //mov rcx, rax rdx = ~rdx; //not rdx rcx >>= 0x28; //shr rcx, 0x28 rdx ^= r13; //xor rdx, r13 rax ^= rcx; //xor rax, rcx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x736E085CD239F4CB; //mov rcx, 0x736E085CD239F4CB rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD948112] rax ^= rcx; //xor rax, rcx rcx = 0x7DA51A97E3053243; //mov rcx, 0x7DA51A97E3053243 rax *= rcx; //imul rax, rcx rcx = 0x785CF31817D043AC; //mov rcx, 0x785CF31817D043AC rax ^= rcx; //xor rax, rcx return rax; } case 14: { r13 = baseModuleAddr + 0x16A6; //lea r13, [0xFFFFFFFFFD9496D5] r14 = baseModuleAddr + 0xF57E; //lea r14, [0xFFFFFFFFFD95759E] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FC1F0] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx *= r14; //imul rcx, r14 rax += rcx; //add 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 r11 = 0xBE40C084BA769FA; //mov r11, 0xBE40C084BA769FA rcx = r13; //mov rcx, r13 rcx *= rbx; //imul rcx, rbx rcx += r11; //add rcx, r11 rax += rcx; //add rax, rcx rcx = 0xB92AAB45027C43E2; //mov rcx, 0xB92AAB45027C43E2 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0x4FED906B; //lea rcx, [0x000000004D820D91] rcx += rbx; //add rcx, rbx rax += rcx; //add rax, rcx rcx = 0xBCCB1C832C79BF0B; //mov rcx, 0xBCCB1C832C79BF0B rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 15: { r14 = baseModuleAddr + 0x31081C40; //lea r14, [0x000000002E9C973C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FBCBF] rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx = rax; //mov rcx, rax rdx ^= r10; //xor rdx, r10 rcx >>= 0x20; //shr rcx, 0x20 rdx = ~rdx; //not rdx rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] rax -= rcx; //sub rax, rcx rcx = 0xFC32828FC4E7EFD1; //mov rcx, 0xFC32828FC4E7EFD1 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx 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 rcx = rax; //mov rcx, rax rcx >>= 0x30; //shr rcx, 0x30 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 = 0x8D793715ED015397; //mov rcx, 0x8D793715ED015397 rax *= rcx; //imul rax, rcx return rax; } } } uint16_t get_bone_index(uint32_t bone_index) { const uint64_t mb = baseModuleAddr; 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; rdi = bone_index; rcx = rdi * 0x13C8; rax = 0x1B5C5E9652FDACE7; //mov rax, 0x1B5C5E9652FDACE7 rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx r11 = baseModuleAddr; //lea r11, [0xFFFFFFFFFD33E478] r10 = 0x19E9C4E0C9861BBD; //mov r10, 0x19E9C4E0C9861BBD rdx >>= 0xA; //shr rdx, 0x0A rax = rdx * 0x256D; //imul rax, rdx, 0x256D rcx -= rax; //sub rcx, rax rax = 0x4F9FF77A70376427; //mov rax, 0x4F9FF77A70376427 r8 = rcx * 0x256D; //imul r8, rcx, 0x256D 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 >>= 0xD; //shr rax, 0x0D rax = rax * 0x30D1; //imul rax, rax, 0x30D1 r8 -= rax; //sub r8, rax rax = 0x70381C0E070381C1; //mov rax, 0x70381C0E070381C1 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x92; //imul rcx, rdx, 0x92 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 = Read<uint16_t>(rcx + r11 * 1 + 0xA96F930); //movzx eax, word ptr [rcx+r11*1+0xA96F930] r8 = rax * 0x13C8; //imul r8, rax, 0x13C8 rax = r10; //mov rax, r10 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rcx = r8; //mov rcx, r8 rax = r10; //mov rax, r10 rcx -= rdx; //sub rcx, rdx rcx >>= 0x1; //shr rcx, 0x01 rcx += rdx; //add rcx, rdx rcx >>= 0xC; //shr rcx, 0x0C rcx = rcx * 0x1D0F; //imul rcx, rcx, 0x1D0F r8 -= rcx; //sub r8, rcx r9 = r8 * 0x3981; //imul r9, r8, 0x3981 rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 rax -= rdx; //sub rax, rdx rax >>= 0x1; //shr rax, 0x01 rax += rdx; //add rax, rdx rax >>= 0xC; //shr rax, 0x0C rax = rax * 0x1D0F; //imul rax, rax, 0x1D0F r9 -= rax; //sub r9, rax rax = 0xD79435E50D79435F; //mov rax, 0xD79435E50D79435F rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = 0xA6810A6810A6811; //mov rax, 0xA6810A6810A6811 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x4C; //imul rcx, rdx, 0x4C rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 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 * 0xF6; //imul rax, rcx, 0xF6 rcx = r9 * 0xF8; //imul rcx, r9, 0xF8 rcx -= rax; //sub rcx, rax r15 = Read<uint16_t>(rcx + r11 * 1 + 0xA9787D0); //movsx r15d, word ptr [rcx+r11*1+0xA9787D0] return r15; }
Kankim steam için olanı nasıl .exe haline getireecğiz? napmamız gerekiyorSteam
C++:namespace offsets { auto ref_def_ptr = 0x135CD308; auto name_array = 0x135ECA00; auto name_array_pos = 0x5E70; auto loot_ptr = 0xB81D1AC; auto camera_base = 0x13BEC250; auto camera_pos = 0x1F8; auto local_index = 0x1BAB0; auto local_index_pos = 0x2D0; auto game_mode = 0xFDDBE08; auto weapon_definitions = 0x13550A80; auto distribute = 0xB7E6A50; auto visible_offset = 0xA80; auto visible = 0x27C9B50; namespace player { auto size = 0x6990; auto valid = 0x5685; auto pos = 0x6518; auto team = 0xA7C; auto weapon_index = 0x6474; auto dead_1 = 0x6635; auto dead_2 = 0x55E4; } namespace bone { auto bone_base = 0x51198; auto size = 0x180; auto offset = 0xD8; } } uintptr_t decrypt_client_info() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0x135CD288); if(!rbx) return rbx; rdx= ~Peb; //mov rdx, gs:[rax] rax = rbx; //mov rax, rbx rax >>= 0x22; //shr rax, 0x22 rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rbx ^= rax; //xor rbx, rax rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= Read<uintptr_t>(baseModuleAddr + 0xA51A0E3); //xor rcx, [0x00000000080C9F50] rax = baseModuleAddr + 0x1343C359; //lea rax, [0x0000000010FEC1BF] rbx += rdx; //add rbx, rdx rcx = ~rcx; //not rcx rbx += rax; //add rbx, rax rax = 0xD63E4A83CB9A620B; //mov rax, 0xD63E4A83CB9A620B rbx *= Read<uintptr_t>(rcx + 0x11); //imul rbx, [rcx+0x11] rbx -= rdx; //sub rbx, rdx rbx *= rax; //imul rbx, rax rax = 0x57242547CAD98C71; //mov rax, 0x57242547CAD98C71 rbx -= rax; //sub rbx, rax return rbx; } uintptr_t decrypt_client_base(uintptr_t client_info) { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(client_info + 0x10e640); if(!rdx) return rdx; r11= ~Peb; //mov r11, gs:[rax] rax = r11; //mov rax, r11 rax = _rotl64(rax, 0x23); //rol rax, 0x23 rax &= 0xF; switch(rax) { case 0: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD2BFA] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080ECCB9] rax = rdx; //mov rax, rdx rax >>= 0x7; //shr rax, 0x07 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 = 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx += rbx; //add rdx, rbx rax = 0x6A51BC9BC4AA6767; //mov rax, 0x6A51BC9BC4AA6767 rdx *= rax; //imul rdx, rax rax = 0x5447EBF1221B83E6; //mov rax, 0x5447EBF1221B83E6 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rdx ^= rbx; //xor rdx, rbx return rdx; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EC885] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD2755] rdx -= r11; //sub rdx, r11 rax = baseModuleAddr + 0x6B3C0100; //lea rax, [0x0000000068F92766] rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x24; //shr rax, 0x24 rdx ^= rax; //xor rdx, rax rax = 0x4A2A83616AD92661; //mov rax, 0x4A2A83616AD92661 rdx *= rax; //imul rdx, rax rax = 0xECFC5B4C57C54F28; //mov rax, 0xECFC5B4C57C54F28 rdx += rax; //add rdx, rax rax = 0xF0FDCE631F7BA29F; //mov rax, 0xF0FDCE631F7BA29F rdx ^= rax; //xor rdx, rax return rdx; } case 2: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD22DB] rcx = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov rcx, [0x00000000080EC385] rax = 0xD511FD9CF85D2C07; //mov rax, 0xD511FD9CF85D2C07 rdx *= rax; //imul rdx, rax rdx ^= r11; //xor rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFCF; RSP_0xFFFFFFFFFFFFFFCF = baseModuleAddr + 0x2E433015; //lea rax, [0x000000002C0052A9] : RBP+0xFFFFFFFFFFFFFFCF rax *= RSP_0xFFFFFFFFFFFFFFCF; //imul rax, [rbp-0x31] rdx += rax; //add rdx, rax rdx -= rbx; //sub rdx, rbx 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 = 0x3EDAD65FDC1034FF; //mov rax, 0x3EDAD65FDC1034FF rdx *= rax; //imul rdx, rax rax = 0x2AE3002A8E8BF08B; //mov rax, 0x2AE3002A8E8BF08B rdx -= rax; //sub rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= rcx; //xor rax, rcx rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 3: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EBFE9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD1EB9] rax = rbx + 0x1771cb1b; //lea rax, [rbx+0x1771CB1B] rax += r11; //add rax, r11 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0xB; //shr rax, 0x0B rdx ^= rax; //xor rdx, rax 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; //sub rdx, r11 rax = 0xFD500870540625B; //mov rax, 0xFD500870540625B rdx *= rax; //imul rdx, rax rax = 0x1BC06434489E44B5; //mov rax, 0x1BC06434489E44B5 rdx += rax; //add rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x600D6B3C699E6524; //mov rax, 0x600D6B3C699E6524 rdx += rax; //add rdx, rax return rdx; } case 4: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD18E8] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080EB9A0] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x44DF33AE79D34CE7; //mov rax, 0x44DF33AE79D34CE7 rdx *= rax; //imul rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rax = baseModuleAddr + 0x3B36; //lea rax, [0xFFFFFFFFFDBD4F1F] rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x27; //shr rax, 0x27 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x27B9; //lea rax, [0xFFFFFFFFFDBD405F] : RBP+0xFFFFFFFFFFFFFFA7 rax *= RSP_0xFFFFFFFFFFFFFFA7; //imul rax, [rbp-0x59] rdx += rax; //add rdx, rax rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rax += 0xFFFFFFFFD6AD7A46; //add rax, 0xFFFFFFFFD6AD7A46 rdx += rax; //add rdx, rax return rdx; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EB4E9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD13B9] rax = rdx; //mov rax, rdx rax >>= 0x17; //shr rax, 0x17 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x2E; //shr rax, 0x2E rdx ^= rax; //xor rdx, rax rax = rbx + 0xb7ef; //lea rax, [rbx+0xB7EF] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFBF; RSP_0xFFFFFFFFFFFFFFBF = 0x20E3F69C982B8265; //mov rax, 0x20E3F69C982B8265 : RBP+0xFFFFFFFFFFFFFFBF rdx ^= RSP_0xFFFFFFFFFFFFFFBF; //xor rdx, [rbp-0x41] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0xAEE1A029315E3D4F; //mov rax, 0xAEE1A029315E3D4F rdx *= rax; //imul rdx, rax rax = rbx + 0x618b; //lea rax, [rbx+0x618B] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rax = 0x4F576A9DC4CD39EE; //mov rax, 0x4F576A9DC4CD39EE rdx += rax; //add rdx, rax return rdx; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080EB068] rdx -= r11; //sub rdx, r11 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 = rdx; //mov rax, rdx rax >>= 0x21; //shr rax, 0x21 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 rax ^= rdx; //xor rax, rdx rdx = 0x17CF0497F2D22203; //mov rdx, 0x17CF0497F2D22203 rax *= rdx; //imul rax, rdx rdx = rax; //mov rdx, rax rdx >>= 0x25; //shr rdx, 0x25 rdx ^= rax; //xor rdx, rax rax = 0xBE5CC72B0AEE64FD; //mov rax, 0xBE5CC72B0AEE64FD rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 7: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD0A62] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EAB04] rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0xDEF0; //lea rax, [0xFFFFFFFFFDBDE663] rcx ^= rax; //xor rcx, rax rax = 0xF875422C3B24C08F; //mov rax, 0xF875422C3B24C08F rax -= rcx; //sub rax, rcx rdx += rax; //add rdx, rax 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 ^= rbx; //xor rdx, rbx rax = 0x65FDE940447DEE2B; //mov rax, 0x65FDE940447DEE2B rdx *= rax; //imul rdx, rax rax = 0x39A26EAD2B76265B; //mov rax, 0x39A26EAD2B76265B rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1B; //shr rax, 0x1B rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x36; //shr rax, 0x36 rdx ^= rax; //xor rdx, rax return rdx; } case 8: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EA661] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD0531] rax = 0xFFFFFFFFFFFF597D; //mov rax, 0xFFFFFFFFFFFF597D rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0xD0F09E7A8C7613B3; //mov rax, 0xD0F09E7A8C7613B3 rdx *= rax; //imul rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0x256B3436B62B89E5; //mov rax, 0x256B3436B62B89E5 rdx -= rax; //sub rdx, rax rdx += rbx; //add rdx, rbx rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0x7B64B958; //lea rax, [0x000000007921BBB4] rax = ~rax; //not rax rcx = ~rcx; //not rcx rcx += rax; //add rcx, rax rdx ^= rcx; //xor rdx, rcx return rdx; } case 9: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBD00D5] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080EA182] 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 = 0x54E648D07B6D0B80; //mov rax, 0x54E648D07B6D0B80 rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx 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 rax ^= r11; //xor rax, r11 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = 0xB0386AF6C89E01ED; //mov rax, 0xB0386AF6C89E01ED rdx *= rax; //imul rdx, rax return rdx; } case 10: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E9CAF] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCFB7F] rax = 0x9332D19135BB918F; //mov rax, 0x9332D19135BB918F rdx *= rax; //imul rdx, rax rax = 0xFFFFFFFF8DA4B362; //mov rax, 0xFFFFFFFF8DA4B362 rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= r11; //xor rdx, r11 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 rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0xD1ED; //lea rax, [0xFFFFFFFFFDBDCBC6] rcx *= rax; //imul rcx, rax rax = rdx; //mov rax, rdx rax >>= 0x20; //shr rax, 0x20 rcx ^= rax; //xor rcx, rax rdx ^= rcx; //xor rdx, rcx rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0x868; //lea rax, [0xFFFFFFFFFDBD02B1] rdx += rax; //add rdx, rax rdx += rcx; //add rdx, rcx rax = r11; //mov rax, r11 rax = ~rax; //not rax rax -= rbx; //sub rax, rbx rax -= 0x7CCC6306; //sub rax, 0x7CCC6306 rdx ^= rax; //xor rdx, rax return rdx; } case 11: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080E975F] 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 = 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 = 0x8CABBD467C0219D3; //mov rax, 0x8CABBD467C0219D3 rdx *= rax; //imul rdx, rax rax = 0xAB98E88DE9C18818; //mov rax, 0xAB98E88DE9C18818 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFEF; RSP_0xFFFFFFFFFFFFFFEF = baseModuleAddr + 0x8516; //lea rax, [0xFFFFFFFFFDBD7BE0] : RBP+0xFFFFFFFFFFFFFFEF rax *= RSP_0xFFFFFFFFFFFFFFEF; //imul rax, [rbp-0x11] rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x596E42B1953FE5C1; //mov rax, 0x596E42B1953FE5C1 rdx += rax; //add rdx, rax return rdx; } case 12: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E921E] rdx ^= r11; //xor rdx, r11 rax = baseModuleAddr + 0x1BAF; //lea rax, [0xFFFFFFFFFDBD0929] rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = baseModuleAddr + 0x259F56F6; //lea rax, [0x00000000235C47E4] : RBP+0xFFFFFFFFFFFFFF9F rdx += RSP_0xFFFFFFFFFFFFFF9F; //add rdx, [rbp-0x61] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x294D76F27D0F6D85; //mov rax, 0x294D76F27D0F6D85 rdx -= rax; //sub 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 = 0x40AE2552A77DAFE6; //mov rax, 0x40AE2552A77DAFE6 rdx -= r11; //sub rdx, r11 rdx ^= rax; //xor rdx, rax rax = 0x6425FC1CEAFDBD3B; //mov rax, 0x6425FC1CEAFDBD3B rdx *= rax; //imul rdx, rax return rdx; } case 13: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E8E26] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCECF6] rdx += rbx; //add rdx, rbx 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0x7AAF0F372FD53CD5; //mov rax, 0x7AAF0F372FD53CD5 rdx *= rax; //imul rdx, rax rax = 0x4BE188FD7D45B824; //mov rax, 0x4BE188FD7D45B824 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rax = rdx; //mov rax, rdx rax >>= 0x25; //shr rax, 0x25 rdx ^= rax; //xor rdx, rax rax = 0x2F94247E3E6CDFF6; //mov rax, 0x2F94247E3E6CDFF6 rdx -= rax; //sub rdx, rax return rdx; } case 14: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r10, [0x00000000080E8999] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCE85E] rax = 0x59FC5D34C1D95075; //mov rax, 0x59FC5D34C1D95075 rdx += rax; //add rdx, rax rax = 0x113F93E895C764EB; //mov rax, 0x113F93E895C764EB rdx *= rax; //imul rdx, rax rax = baseModuleAddr + 0x3BFCF952; //lea rax, [0x0000000039B9DEB5] rax = ~rax; //not rax rax ^= r11; //xor 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 = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx -= rbx; //sub rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x23; //shr rax, 0x23 rdx ^= rax; //xor rdx, rax uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = 0x3D4F5BB3C70BE95B; //mov rax, 0x3D4F5BB3C70BE95B : RBP+0xFFFFFFFFFFFFFF9F rdx *= RSP_0xFFFFFFFFFFFFFF9F; //imul rdx, [rbp-0x61] rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x9DA7; //lea rax, [0xFFFFFFFFFDBD8610] : RBP+0xFFFFFFFFFFFFFFA7 rax ^= RSP_0xFFFFFFFFFFFFFFA7; //xor rax, [rbp-0x59] rdx -= rax; //sub rdx, rax return rdx; } case 15: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDBCE3E0] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A129); //mov r9, [0x00000000080E8499] 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 = 0x63FD32E967945525; //mov rax, 0x63FD32E967945525 rdx -= rax; //sub rdx, rax rdx += r11; //add rdx, r11 rax = 0xB85215B9839B7D9; //mov rax, 0xB85215B9839B7D9 rdx += rax; //add rdx, rax rdx ^= rbx; //xor rdx, rbx rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] 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 = 0xE52EBF353AE32CDB; //mov rax, 0xE52EBF353AE32CDB rdx *= rax; //imul rdx, rax return rdx; } } } uintptr_t decrypt_bone_base() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0xDF7A7A8); if(!rax) return rax; rbx = Peb; //mov rbx, gs:[rcx] rcx = rbx; //mov rcx, rbx rcx >>= 0x1C; //shr rcx, 0x1C rcx &= 0xF; switch(rcx) { case 0: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007EA1573] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax += rbx; //add rax, rbx rcx = rax; //mov rcx, rax rax >>= 0x13; //shr rax, 0x13 rcx ^= rax; //xor rcx, rax rax = rcx; //mov rax, rcx rax >>= 0x26; //shr rax, 0x26 rax ^= rcx; //xor rax, rcx rax -= rbx; //sub rax, rbx rcx = 0xD5A6F9222EC0CD8B; //mov rcx, 0xD5A6F9222EC0CD8B rax *= rcx; //imul rax, rcx rcx = 0xBB2862E8C0DD851B; //mov rcx, 0xBB2862E8C0DD851B rax *= rcx; //imul 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 return rax; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA1124] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = rax; //mov rcx, rax rcx >>= 0x1E; //shr rcx, 0x1E rax ^= rcx; //xor rax, rcx rdx = baseModuleAddr + 0x6179D5AB; //lea rdx, [0x000000005F12428C] rdx -= rbx; //sub rdx, rbx rcx = rax; //mov rcx, rax rcx >>= 0x3C; //shr rcx, 0x3C rdx ^= rcx; //xor rdx, rcx rax ^= rdx; //xor rax, rdx rax += rbx; //add rax, rbx rcx = 0xC430FCF5AB246D6; //mov rcx, 0xC430FCF5AB246D6 rax += rcx; //add rax, rcx rcx = 0x8A220291A10CAF87; //mov rcx, 0x8A220291A10CAF87 rax *= rcx; //imul rax, rcx rcx = 0x7FAA38A95F85A6FD; //mov rcx, 0x7FAA38A95F85A6FD rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD986E85] rax -= rcx; //sub rax, rcx return rax; } case 2: { r14 = baseModuleAddr + 0x2281; //lea r14, [0xFFFFFFFFFD988D70] r13 = baseModuleAddr + 0x66A0AFC0; //lea r13, [0x0000000064391AA0] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA0CB5] rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx *= rbx; //imul rdx, rbx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rdx += rcx; //add rdx, rcx rcx = baseModuleAddr + 0xBA28; //lea rcx, [0xFFFFFFFFFD992216] rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = 0x975CC895B7E831F1; //mov rcx, 0x975CC895B7E831F1 rax ^= rcx; //xor rax, rcx rcx = 0x3B97C5DC626E056F; //mov rcx, 0x3B97C5DC626E056F rax *= rcx; //imul rax, rcx rcx = 0x5534067E232C6632; //mov rcx, 0x5534067E232C6632 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 3: { r13 = baseModuleAddr + 0x50F8B6F5; //lea r13, [0x000000004E911C6D] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007EA06CF] rcx = r13; //mov rcx, r13 rcx = ~rcx; //not rcx rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9860C5] 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x60F6A79B0C8456B1; //mov rcx, 0x60F6A79B0C8456B1 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx rcx = 0x648FCA6FE7D44377; //mov rcx, 0x648FCA6FE7D44377 rax -= rcx; //sub rax, rcx rcx = 0xC462FCF18E2C2995; //mov rcx, 0xC462FCF18E2C2995 rax *= rcx; //imul rax, rcx 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 return rax; } case 4: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007EA0154] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax -= rbx; //sub rax, rbx 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 = 0xB1A93FB4C084CAB9; //mov rcx, 0xB1A93FB4C084CAB9 rax *= rcx; //imul rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x24; //shr rcx, 0x24 rcx ^= rax; //xor rcx, rax rax = 0x352F8A796F79706B; //mov rax, 0x352F8A796F79706B rcx ^= rax; //xor rcx, rax rax = baseModuleAddr; //lea rax, [0xFFFFFFFFFD985B89] rcx -= rax; //sub rcx, rax rax = rbx + 0xffffffffa5917e54; //lea rax, [rbx-0x5A6E81AC] rax += rcx; //add rax, rcx rcx = 0xA920BAB7A21DDE47; //mov rcx, 0xA920BAB7A21DDE47 rax *= rcx; //imul rax, rcx return rax; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9FCD4] rdx = baseModuleAddr + 0x661; //lea rdx, [0xFFFFFFFFFD9860A4] uintptr_t RSP_0x78; RSP_0x78 = 0x19A86082B9386E61; //mov rcx, 0x19A86082B9386E61 : RSP+0x78 rax ^= RSP_0x78; //xor rax, [rsp+0x78] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx uintptr_t RSP_0x30; RSP_0x30 = baseModuleAddr + 0x89B8; //lea rcx, [0xFFFFFFFFFD98E432] : RSP+0x30 rcx ^= RSP_0x30; //xor rcx, [rsp+0x30] rax -= rcx; //sub rax, rcx rcx = 0x6CF5D40C805C3929; //mov rcx, 0x6CF5D40C805C3929 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = rax; //mov rcx, rax rcx >>= 0x23; //shr rcx, 0x23 rax ^= rcx; //xor rax, rcx rcx = 0xEA2BDCA216FA84E; //mov rcx, 0xEA2BDCA216FA84E rax += rcx; //add rax, rcx rcx = rdx; //mov rcx, rdx rcx = ~rcx; //not rcx rcx -= rbx; //sub rcx, rbx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9F7B5] rcx = 0x143119596E0AB6F4; //mov rcx, 0x143119596E0AB6F4 rcx -= rbx; //sub rcx, rbx rax += rcx; //add 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 = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9853E1] rax -= rcx; //sub rax, rcx rcx = 0xD0FF53657C7A437; //mov rcx, 0xD0FF53657C7A437 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x1946435536018835; //mov rcx, 0x1946435536018835 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx return rax; } case 7: { r11 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r11, [0x0000000007E9F3A4] rdx = baseModuleAddr + 0x32D6EFEE; //lea rdx, [0x00000000306F4117] r8 = 0; //and r8, 0xFFFFFFFFC0000000 r8 = _rotl64(r8, 0x10); //rol r8, 0x10 r8 ^= r11; //xor r8, r11 rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx r8 = ~r8; //not r8 rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rax ^= rbx; //xor rax, rbx rax *= Read<uintptr_t>(r8 + 0x13); //imul rax, [r8+0x13] rcx = 0x6B8832A948DD0921; //mov rcx, 0x6B8832A948DD0921 rax += rcx; //add rax, rcx rcx = 0x9D382E284DCFD7C7; //mov rcx, 0x9D382E284DCFD7C7 rax *= rcx; //imul rax, rcx rcx = 0x4A2F2EC6D9595386; //mov rcx, 0x4A2F2EC6D9595386 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 = rax; //mov rcx, rax rcx >>= 0x15; //shr rcx, 0x15 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x2A; //shr rcx, 0x2A rax ^= rcx; //xor rax, rcx return rax; } case 8: { r14 = baseModuleAddr + 0x98C7; //lea r14, [0xFFFFFFFFFD98E487] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9ED83] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9847D0] rax ^= rcx; //xor rax, rcx rcx = 0xB9B101CE6C8E2F91; //mov rcx, 0xB9B101CE6C8E2F91 rax *= rcx; //imul rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984AC7] rax -= rcx; //sub 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 rax -= rbx; //sub rax, rbx rcx = 0x4F54898D891371A4; //mov rcx, 0x4F54898D891371A4 rax += rcx; //add rax, rcx rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rcx = r14; //mov rcx, r14 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rdx ^= r10; //xor rdx, r10 rdx = ~rdx; //not rdx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] return rax; } case 9: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9E927] rcx = 0x5C495DB1FF8A0C7D; //mov rcx, 0x5C495DB1FF8A0C7D rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984682] rax -= rcx; //sub rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD984441] rax += rcx; //add rax, rcx rdx = baseModuleAddr; //lea rdx, [0xFFFFFFFFFD984428] rdx += rbx; //add rdx, rbx rcx = 0x931F45DADBA6534A; //mov rcx, 0x931F45DADBA6534A rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = 0x7254D9C4F5E0407F; //mov rcx, 0x7254D9C4F5E0407F rax *= rcx; //imul rax, rcx return rax; } case 10: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9E4A8] rcx = 0x16092956D42CB466; //mov rcx, 0x16092956D42CB466 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x28; //shr rcx, 0x28 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x22; //shr rcx, 0x22 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0xB; //shr rcx, 0x0B rax ^= rcx; //xor rax, rcx 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 = 0xC2E2E61ED49F5991; //mov rcx, 0xC2E2E61ED49F5991 rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] 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 rax -= rbx; //sub rax, rbx return rax; } case 11: { r13 = baseModuleAddr + 0x3E6FD0B3; //lea r13, [0x000000003C080E21] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9DEDC] rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx r14 = baseModuleAddr; //lea r14, [0xFFFFFFFFFD9837B1] rax += r14; //add rax, r14 r14 = baseModuleAddr + 0x27799030; //lea r14, [0x000000002511C7CA] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x6E5FECB626B1C472; //mov rcx, 0x6E5FECB626B1C472 rax += rcx; //add rax, rcx rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx ^= rbx; //xor rdx, rbx rcx = 0xF5121CBF37E46BBB; //mov rcx, 0xF5121CBF37E46BBB rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rcx = 0xD2D6E8735A76DE2D; //mov rcx, 0xD2D6E8735A76DE2D rax *= rcx; //imul rax, rcx return rax; } case 12: { rdx = baseModuleAddr + 0xF737; //lea rdx, [0xFFFFFFFFFD992E92] r13 = baseModuleAddr + 0x1124573F; //lea r13, [0x000000000EBC8E7C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9D8BE] rax += rbx; //add rax, rbx 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 uintptr_t RSP_0x50; RSP_0x50 = 0x636BE495B0FA383E; //mov rcx, 0x636BE495B0FA383E : RSP+0x50 rax ^= RSP_0x50; //xor rax, [rsp+0x50] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = r13; //mov rcx, r13 rcx ^= rbx; //xor rcx, rbx rax ^= rcx; //xor rax, rcx rcx = 0x8812EF99851F0715; //mov rcx, 0x8812EF99851F0715 rax *= rcx; //imul rax, rcx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx += rdx; //add rcx, rdx rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0xB69; //lea rcx, [0xFFFFFFFFFD9840F3] rcx -= rbx; //sub rcx, rbx rax += rcx; //add rax, rcx return rax; } case 13: { r13 = baseModuleAddr + 0x5EF7; //lea r13, [0xFFFFFFFFFD98914B] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9D41B] 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 rdx = rbx; //mov rdx, rbx rcx = rax; //mov rcx, rax rdx = ~rdx; //not rdx rcx >>= 0x28; //shr rcx, 0x28 rdx ^= r13; //xor rdx, r13 rax ^= rcx; //xor rax, rcx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x736E085CD239F4CB; //mov rcx, 0x736E085CD239F4CB rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD982D62] rax ^= rcx; //xor rax, rcx rcx = 0x7DA51A97E3053243; //mov rcx, 0x7DA51A97E3053243 rax *= rcx; //imul rax, rcx rcx = 0x785CF31817D043AC; //mov rcx, 0x785CF31817D043AC rax ^= rcx; //xor rax, rcx return rax; } case 14: { r13 = baseModuleAddr + 0x16A6; //lea r13, [0xFFFFFFFFFD984325] r14 = baseModuleAddr + 0xF57E; //lea r14, [0xFFFFFFFFFD9921EE] r9 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r9, [0x0000000007E9CE40] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx *= r14; //imul rcx, r14 rax += rcx; //add 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 r11 = 0xBE40C084BA769FA; //mov r11, 0xBE40C084BA769FA rcx = r13; //mov rcx, r13 rcx *= rbx; //imul rcx, rbx rcx += r11; //add rcx, r11 rax += rcx; //add rax, rcx rcx = 0xB92AAB45027C43E2; //mov rcx, 0xB92AAB45027C43E2 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0x4FED906B; //lea rcx, [0x000000004D85B9E1] rcx += rbx; //add rcx, rbx rax += rcx; //add rax, rcx rcx = 0xBCCB1C832C79BF0B; //mov rcx, 0xBCCB1C832C79BF0B rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 15: { r14 = baseModuleAddr + 0x31081C40; //lea r14, [0x000000002EA0438C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA51A221); //mov r10, [0x0000000007E9C90F] rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx = rax; //mov rcx, rax rdx ^= r10; //xor rdx, r10 rcx >>= 0x20; //shr rcx, 0x20 rdx = ~rdx; //not rdx rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] rax -= rcx; //sub rax, rcx rcx = 0xFC32828FC4E7EFD1; //mov rcx, 0xFC32828FC4E7EFD1 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx 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 rcx = rax; //mov rcx, rax rcx >>= 0x30; //shr rcx, 0x30 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 = 0x8D793715ED015397; //mov rcx, 0x8D793715ED015397 rax *= rcx; //imul rax, rcx return rax; } } } uint16_t get_bone_index(uint32_t bone_index) { const uint64_t mb = baseModuleAddr; 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; rdi = bone_index; rcx = rdi * 0x13C8; rax = 0x1B5C5E9652FDACE7; //mov rax, 0x1B5C5E9652FDACE7 rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx r11 = baseModuleAddr; //lea r11, [0xFFFFFFFFFD3A1F18] r10 = 0x19E9C4E0C9861BBD; //mov r10, 0x19E9C4E0C9861BBD rdx >>= 0xA; //shr rdx, 0x0A rax = rdx * 0x256D; //imul rax, rdx, 0x256D rcx -= rax; //sub rcx, rax rax = 0x4F9FF77A70376427; //mov rax, 0x4F9FF77A70376427 r8 = rcx * 0x256D; //imul r8, rcx, 0x256D 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 >>= 0xD; //shr rax, 0x0D rax = rax * 0x30D1; //imul rax, rax, 0x30D1 r8 -= rax; //sub r8, rax rax = 0x70381C0E070381C1; //mov rax, 0x70381C0E070381C1 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x92; //imul rcx, rdx, 0x92 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 = Read<uint16_t>(rcx + r11 * 1 + 0xA5D1140); //movzx eax, word ptr [rcx+r11*1+0xA5D1140] r8 = rax * 0x13C8; //imul r8, rax, 0x13C8 rax = r10; //mov rax, r10 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rcx = r8; //mov rcx, r8 rax = r10; //mov rax, r10 rcx -= rdx; //sub rcx, rdx rcx >>= 0x1; //shr rcx, 0x01 rcx += rdx; //add rcx, rdx rcx >>= 0xC; //shr rcx, 0x0C rcx = rcx * 0x1D0F; //imul rcx, rcx, 0x1D0F r8 -= rcx; //sub r8, rcx r9 = r8 * 0x3981; //imul r9, r8, 0x3981 rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 rax -= rdx; //sub rax, rdx rax >>= 0x1; //shr rax, 0x01 rax += rdx; //add rax, rdx rax >>= 0xC; //shr rax, 0x0C rax = rax * 0x1D0F; //imul rax, rax, 0x1D0F r9 -= rax; //sub r9, rax rax = 0xD79435E50D79435F; //mov rax, 0xD79435E50D79435F rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = 0xA6810A6810A6811; //mov rax, 0xA6810A6810A6811 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x4C; //imul rcx, rdx, 0x4C rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 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 * 0xF6; //imul rax, rcx, 0xF6 rcx = r9 * 0xF8; //imul rcx, r9, 0xF8 rcx -= rax; //sub rcx, rax r15 = Read<uint16_t>(rcx + r11 * 1 + 0xA5D9FE0); //movsx r15d, word ptr [rcx+r11*1+0xA5D9FE0] return r15; }
Battle.net
C++:namespace offsets { auto ref_def_ptr = 0x138ADB38; auto name_array = 0x138CCF20; auto name_array_pos = 0x5E70; auto loot_ptr = 0xBADD12C; auto camera_base = 0x13ECD810; auto camera_pos = 0x1F8; auto local_index = 0xB1D00; auto local_index_pos = 0x2D0; auto game_mode = 0x100DCDA8; auto weapon_definitions = 0x13830F90; auto distribute = 0xBAA6998; auto visible_offset = 0xA80; auto visible = 0x28047A0; namespace player { auto size = 0x6980; auto valid = 0x1301; auto pos = 0xF70; auto team = 0xFF8; auto weapon_index = 0x1762; auto dead_1 = 0x1E0A; auto dead_2 = 0x1FD0; } namespace bone { auto bone_base = 0xEBB30; auto size = 0x180; auto offset = 0xD8; } } uintptr_t decrypt_client_info() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0x138AD798); if(!rbx) return rbx; rdx= ~Peb; //mov rdx, gs:[rax] rax = rbx; //mov rax, rbx rax >>= 0x22; //shr rax, 0x22 rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rbx ^= rax; //xor rbx, rax rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= Read<uintptr_t>(baseModuleAddr + 0xA8B40E3); //xor rcx, [0x000000000842D840] rax = baseModuleAddr + 0x1343C359; //lea rax, [0x0000000010FB5AAF] rbx += rdx; //add rbx, rdx rcx = ~rcx; //not rcx rbx += rax; //add rbx, rax rax = 0xD63E4A83CB9A620B; //mov rax, 0xD63E4A83CB9A620B rbx *= Read<uintptr_t>(rcx + 0x11); //imul rbx, [rcx+0x11] rbx -= rdx; //sub rbx, rdx rbx *= rax; //imul rbx, rax rax = 0x57242547CAD98C71; //mov rax, 0x57242547CAD98C71 rbx -= rax; //sub rbx, rax return rbx; } uintptr_t decrypt_client_base(uintptr_t client_info) { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(client_info + 0x10e670); if(!rdx) return rdx; r11= ~Peb; //mov r11, gs:[rax] rax = r11; //mov rax, r11 rax = _rotl64(rax, 0x23); //rol rax, 0x23 rax &= 0xF; switch(rax) { case 0: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9C4EA] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x00000000084505A9] rax = rdx; //mov rax, rdx rax >>= 0x7; //shr rax, 0x07 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 = 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx += rbx; //add rdx, rbx rax = 0x6A51BC9BC4AA6767; //mov rax, 0x6A51BC9BC4AA6767 rdx *= rax; //imul rdx, rax rax = 0x5447EBF1221B83E6; //mov rax, 0x5447EBF1221B83E6 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rdx ^= rbx; //xor rdx, rbx return rdx; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x0000000008450175] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9C045] rdx -= r11; //sub rdx, r11 rax = baseModuleAddr + 0x6B3C0100; //lea rax, [0x0000000068F5C056] rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x24; //shr rax, 0x24 rdx ^= rax; //xor rdx, rax rax = 0x4A2A83616AD92661; //mov rax, 0x4A2A83616AD92661 rdx *= rax; //imul rdx, rax rax = 0xECFC5B4C57C54F28; //mov rax, 0xECFC5B4C57C54F28 rdx += rax; //add rdx, rax rax = 0xF0FDCE631F7BA29F; //mov rax, 0xF0FDCE631F7BA29F rdx ^= rax; //xor rdx, rax return rdx; } case 2: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9BBCB] rcx = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov rcx, [0x000000000844FC75] rax = 0xD511FD9CF85D2C07; //mov rax, 0xD511FD9CF85D2C07 rdx *= rax; //imul rdx, rax rdx ^= r11; //xor rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFCF; RSP_0xFFFFFFFFFFFFFFCF = baseModuleAddr + 0x2E433015; //lea rax, [0x000000002BFCEB99] : RBP+0xFFFFFFFFFFFFFFCF rax *= RSP_0xFFFFFFFFFFFFFFCF; //imul rax, [rbp-0x31] rdx += rax; //add rdx, rax rdx -= rbx; //sub rdx, rbx 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 = 0x3EDAD65FDC1034FF; //mov rax, 0x3EDAD65FDC1034FF rdx *= rax; //imul rdx, rax rax = 0x2AE3002A8E8BF08B; //mov rax, 0x2AE3002A8E8BF08B rdx -= rax; //sub rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= rcx; //xor rax, rcx rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 3: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844F8D9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9B7A9] rax = rbx + 0x1771cb1b; //lea rax, [rbx+0x1771CB1B] rax += r11; //add rax, r11 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0xB; //shr rax, 0x0B rdx ^= rax; //xor rdx, rax 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; //sub rdx, r11 rax = 0xFD500870540625B; //mov rax, 0xFD500870540625B rdx *= rax; //imul rdx, rax rax = 0x1BC06434489E44B5; //mov rax, 0x1BC06434489E44B5 rdx += rax; //add rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x600D6B3C699E6524; //mov rax, 0x600D6B3C699E6524 rdx += rax; //add rdx, rax return rdx; } case 4: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9B1D8] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844F290] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x44DF33AE79D34CE7; //mov rax, 0x44DF33AE79D34CE7 rdx *= rax; //imul rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 rax = ~rax; //not rax rdx ^= rax; //xor rdx, rax rax = baseModuleAddr + 0x3B36; //lea rax, [0xFFFFFFFFFDB9E80F] rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x27; //shr rax, 0x27 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x27B9; //lea rax, [0xFFFFFFFFFDB9D94F] : RBP+0xFFFFFFFFFFFFFFA7 rax *= RSP_0xFFFFFFFFFFFFFFA7; //imul rax, [rbp-0x59] rdx += rax; //add rdx, rax rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rax += 0xFFFFFFFFD6AD7A46; //add rax, 0xFFFFFFFFD6AD7A46 rdx += rax; //add rdx, rax return rdx; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844EDD9] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9ACA9] rax = rdx; //mov rax, rdx rax >>= 0x17; //shr rax, 0x17 rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x2E; //shr rax, 0x2E rdx ^= rax; //xor rdx, rax rax = rbx + 0xb7ef; //lea rax, [rbx+0xB7EF] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFBF; RSP_0xFFFFFFFFFFFFFFBF = 0x20E3F69C982B8265; //mov rax, 0x20E3F69C982B8265 : RBP+0xFFFFFFFFFFFFFFBF rdx ^= RSP_0xFFFFFFFFFFFFFFBF; //xor rdx, [rbp-0x41] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0xAEE1A029315E3D4F; //mov rax, 0xAEE1A029315E3D4F rdx *= rax; //imul rdx, rax rax = rbx + 0x618b; //lea rax, [rbx+0x618B] rax += r11; //add rax, r11 rdx += rax; //add rdx, rax rax = 0x4F576A9DC4CD39EE; //mov rax, 0x4F576A9DC4CD39EE rdx += rax; //add rdx, rax return rdx; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844E958] rdx -= r11; //sub rdx, r11 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 = rdx; //mov rax, rdx rax >>= 0x21; //shr rax, 0x21 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 rax ^= rdx; //xor rax, rdx rdx = 0x17CF0497F2D22203; //mov rdx, 0x17CF0497F2D22203 rax *= rdx; //imul rax, rdx rdx = rax; //mov rdx, rax rdx >>= 0x25; //shr rdx, 0x25 rdx ^= rax; //xor rdx, rax rax = 0xBE5CC72B0AEE64FD; //mov rax, 0xBE5CC72B0AEE64FD rdx ^= rax; //xor rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] return rdx; } case 7: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9A352] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844E3F4] rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0xDEF0; //lea rax, [0xFFFFFFFFFDBA7F53] rcx ^= rax; //xor rcx, rax rax = 0xF875422C3B24C08F; //mov rax, 0xF875422C3B24C08F rax -= rcx; //sub rax, rcx rdx += rax; //add rdx, rax 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 ^= rbx; //xor rdx, rbx rax = 0x65FDE940447DEE2B; //mov rax, 0x65FDE940447DEE2B rdx *= rax; //imul rdx, rax rax = 0x39A26EAD2B76265B; //mov rax, 0x39A26EAD2B76265B rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1B; //shr rax, 0x1B rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x36; //shr rax, 0x36 rdx ^= rax; //xor rdx, rax return rdx; } case 8: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844DF51] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB99E21] rax = 0xFFFFFFFFFFFF597D; //mov rax, 0xFFFFFFFFFFFF597D rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rdx ^= r11; //xor rdx, r11 rax = 0xD0F09E7A8C7613B3; //mov rax, 0xD0F09E7A8C7613B3 rdx *= rax; //imul rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = rdx; //mov rax, rdx rax >>= 0x1F; //shr rax, 0x1F rdx ^= rax; //xor rdx, rax rax = rdx; //mov rax, rdx rax >>= 0x3E; //shr rax, 0x3E rdx ^= rax; //xor rdx, rax rax = 0x256B3436B62B89E5; //mov rax, 0x256B3436B62B89E5 rdx -= rax; //sub rdx, rax rdx += rbx; //add rdx, rbx rcx = r11; //mov rcx, r11 rax = baseModuleAddr + 0x7B64B958; //lea rax, [0x00000000791E54A4] rax = ~rax; //not rax rcx = ~rcx; //not rcx rcx += rax; //add rcx, rax rdx ^= rcx; //xor rdx, rcx return rdx; } case 9: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB999C5] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844DA72] 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 = 0x54E648D07B6D0B80; //mov rax, 0x54E648D07B6D0B80 rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= rbx; //xor rdx, rbx 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 rax ^= r11; //xor rax, r11 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = 0xB0386AF6C89E01ED; //mov rax, 0xB0386AF6C89E01ED rdx *= rax; //imul rdx, rax return rdx; } case 10: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844D59F] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9946F] rax = 0x9332D19135BB918F; //mov rax, 0x9332D19135BB918F rdx *= rax; //imul rdx, rax rax = 0xFFFFFFFF8DA4B362; //mov rax, 0xFFFFFFFF8DA4B362 rax -= r11; //sub rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx ^= r11; //xor rdx, r11 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 rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0xD1ED; //lea rax, [0xFFFFFFFFFDBA64B6] rcx *= rax; //imul rcx, rax rax = rdx; //mov rax, rdx rax >>= 0x20; //shr rax, 0x20 rcx ^= rax; //xor rcx, rax rdx ^= rcx; //xor rdx, rcx rcx = r11; //mov rcx, r11 rcx = ~rcx; //not rcx rax = baseModuleAddr + 0x868; //lea rax, [0xFFFFFFFFFDB99BA1] rdx += rax; //add rdx, rax rdx += rcx; //add rdx, rcx rax = r11; //mov rax, r11 rax = ~rax; //not rax rax -= rbx; //sub rax, rbx rax -= 0x7CCC6306; //sub rax, 0x7CCC6306 rdx ^= rax; //xor rdx, rax return rdx; } case 11: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844D04F] 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 = 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 = 0x8CABBD467C0219D3; //mov rax, 0x8CABBD467C0219D3 rdx *= rax; //imul rdx, rax rax = 0xAB98E88DE9C18818; //mov rax, 0xAB98E88DE9C18818 rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFEF; RSP_0xFFFFFFFFFFFFFFEF = baseModuleAddr + 0x8516; //lea rax, [0xFFFFFFFFFDBA14D0] : RBP+0xFFFFFFFFFFFFFFEF rax *= RSP_0xFFFFFFFFFFFFFFEF; //imul rax, [rbp-0x11] rdx += rax; //add rdx, rax rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x596E42B1953FE5C1; //mov rax, 0x596E42B1953FE5C1 rdx += rax; //add rdx, rax return rdx; } case 12: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844CB0E] rdx ^= r11; //xor rdx, r11 rax = baseModuleAddr + 0x1BAF; //lea rax, [0xFFFFFFFFFDB9A219] rdx ^= rax; //xor rdx, rax rdx -= r11; //sub rdx, r11 uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = baseModuleAddr + 0x259F56F6; //lea rax, [0x000000002358E0D4] : RBP+0xFFFFFFFFFFFFFF9F rdx += RSP_0xFFFFFFFFFFFFFF9F; //add rdx, [rbp-0x61] rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = 0x294D76F27D0F6D85; //mov rax, 0x294D76F27D0F6D85 rdx -= rax; //sub 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 = 0x40AE2552A77DAFE6; //mov rax, 0x40AE2552A77DAFE6 rdx -= r11; //sub rdx, r11 rdx ^= rax; //xor rdx, rax rax = 0x6425FC1CEAFDBD3B; //mov rax, 0x6425FC1CEAFDBD3B rdx *= rax; //imul rdx, rax return rdx; } case 13: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844C716] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB985E6] rdx += rbx; //add rdx, rbx 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 = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r10; //xor rax, r10 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rax = r11; //mov rax, r11 rax -= rbx; //sub rax, rbx rdx += rax; //add rdx, rax rax = 0x7AAF0F372FD53CD5; //mov rax, 0x7AAF0F372FD53CD5 rdx *= rax; //imul rdx, rax rax = 0x4BE188FD7D45B824; //mov rax, 0x4BE188FD7D45B824 rdx -= rax; //sub rdx, rax rdx ^= r11; //xor rdx, r11 rax = rdx; //mov rax, rdx rax >>= 0x25; //shr rax, 0x25 rdx ^= rax; //xor rdx, rax rax = 0x2F94247E3E6CDFF6; //mov rax, 0x2F94247E3E6CDFF6 rdx -= rax; //sub rdx, rax return rdx; } case 14: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r10, [0x000000000844C289] rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB9814E] rax = 0x59FC5D34C1D95075; //mov rax, 0x59FC5D34C1D95075 rdx += rax; //add rdx, rax rax = 0x113F93E895C764EB; //mov rax, 0x113F93E895C764EB rdx *= rax; //imul rdx, rax rax = baseModuleAddr + 0x3BFCF952; //lea rax, [0x0000000039B677A5] rax = ~rax; //not rax rax ^= r11; //xor 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 = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] rdx -= rbx; //sub rdx, rbx rax = rdx; //mov rax, rdx rax >>= 0x23; //shr rax, 0x23 rdx ^= rax; //xor rdx, rax uintptr_t RSP_0xFFFFFFFFFFFFFF9F; RSP_0xFFFFFFFFFFFFFF9F = 0x3D4F5BB3C70BE95B; //mov rax, 0x3D4F5BB3C70BE95B : RBP+0xFFFFFFFFFFFFFF9F rdx *= RSP_0xFFFFFFFFFFFFFF9F; //imul rdx, [rbp-0x61] rax = r11; //mov rax, r11 uintptr_t RSP_0xFFFFFFFFFFFFFFA7; RSP_0xFFFFFFFFFFFFFFA7 = baseModuleAddr + 0x9DA7; //lea rax, [0xFFFFFFFFFDBA1F00] : RBP+0xFFFFFFFFFFFFFFA7 rax ^= RSP_0xFFFFFFFFFFFFFFA7; //xor rax, [rbp-0x59] rdx -= rax; //sub rdx, rax return rdx; } case 15: { rbx = baseModuleAddr; //lea rbx, [0xFFFFFFFFFDB97CD0] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4129); //mov r9, [0x000000000844BD89] 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 = 0x63FD32E967945525; //mov rax, 0x63FD32E967945525 rdx -= rax; //sub rdx, rax rdx += r11; //add rdx, r11 rax = 0xB85215B9839B7D9; //mov rax, 0xB85215B9839B7D9 rdx += rax; //add rdx, rax rdx ^= rbx; //xor rdx, rbx rax = 0; //and rax, 0xFFFFFFFFC0000000 rax = _rotl64(rax, 0x10); //rol rax, 0x10 rax ^= r9; //xor rax, r9 rax = _byteswap_uint64(rax); //bswap rax rdx *= Read<uintptr_t>(rax + 0x15); //imul rdx, [rax+0x15] 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 = 0xE52EBF353AE32CDB; //mov rax, 0xE52EBF353AE32CDB rdx *= rax; //imul rdx, rax return rdx; } } } uintptr_t decrypt_bone_base() { const uint64_t mb = baseModuleAddr; 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 = Read<uintptr_t>(baseModuleAddr + 0xE2759F8); if(!rax) return rax; rbx = Peb; //mov rbx, gs:[rcx] rcx = rbx; //mov rcx, rbx rcx >>= 0x1C; //shr rcx, 0x1C rcx &= 0xF; switch(rcx) { case 0: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x0000000008200923] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax += rbx; //add rax, rbx rcx = rax; //mov rcx, rax rax >>= 0x13; //shr rax, 0x13 rcx ^= rax; //xor rcx, rax rax = rcx; //mov rax, rcx rax >>= 0x26; //shr rax, 0x26 rax ^= rcx; //xor rax, rcx rax -= rbx; //sub rax, rbx rcx = 0xD5A6F9222EC0CD8B; //mov rcx, 0xD5A6F9222EC0CD8B rax *= rcx; //imul rax, rcx rcx = 0xBB2862E8C0DD851B; //mov rcx, 0xBB2862E8C0DD851B rax *= rcx; //imul 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 return rax; } case 1: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000082004D4] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = rax; //mov rcx, rax rcx >>= 0x1E; //shr rcx, 0x1E rax ^= rcx; //xor rax, rcx rdx = baseModuleAddr + 0x6179D5AB; //lea rdx, [0x000000005F0E963C] rdx -= rbx; //sub rdx, rbx rcx = rax; //mov rcx, rax rcx >>= 0x3C; //shr rcx, 0x3C rdx ^= rcx; //xor rdx, rcx rax ^= rdx; //xor rax, rdx rax += rbx; //add rax, rbx rcx = 0xC430FCF5AB246D6; //mov rcx, 0xC430FCF5AB246D6 rax += rcx; //add rax, rcx rcx = 0x8A220291A10CAF87; //mov rcx, 0x8A220291A10CAF87 rax *= rcx; //imul rax, rcx rcx = 0x7FAA38A95F85A6FD; //mov rcx, 0x7FAA38A95F85A6FD rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94C235] rax -= rcx; //sub rax, rcx return rax; } case 2: { r14 = baseModuleAddr + 0x2281; //lea r14, [0xFFFFFFFFFD94E120] r13 = baseModuleAddr + 0x66A0AFC0; //lea r13, [0x0000000064356E50] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x0000000008200065] rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx *= rbx; //imul rdx, rbx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rdx += rcx; //add rdx, rcx rcx = baseModuleAddr + 0xBA28; //lea rcx, [0xFFFFFFFFFD9575C6] rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = 0x975CC895B7E831F1; //mov rcx, 0x975CC895B7E831F1 rax ^= rcx; //xor rax, rcx rcx = 0x3B97C5DC626E056F; //mov rcx, 0x3B97C5DC626E056F rax *= rcx; //imul rax, rcx rcx = 0x5534067E232C6632; //mov rcx, 0x5534067E232C6632 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 3: { r13 = baseModuleAddr + 0x50F8B6F5; //lea r13, [0x000000004E8D701D] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FFA7F] rcx = r13; //mov rcx, r13 rcx = ~rcx; //not rcx rcx ^= rbx; //xor rcx, rbx rax += rcx; //add rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94B475] 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x60F6A79B0C8456B1; //mov rcx, 0x60F6A79B0C8456B1 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx rcx = 0x648FCA6FE7D44377; //mov rcx, 0x648FCA6FE7D44377 rax -= rcx; //sub rax, rcx rcx = 0xC462FCF18E2C2995; //mov rcx, 0xC462FCF18E2C2995 rax *= rcx; //imul rax, rcx 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 return rax; } case 4: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FF504] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rax -= rbx; //sub rax, rbx 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 = 0xB1A93FB4C084CAB9; //mov rcx, 0xB1A93FB4C084CAB9 rax *= rcx; //imul rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x24; //shr rcx, 0x24 rcx ^= rax; //xor rcx, rax rax = 0x352F8A796F79706B; //mov rax, 0x352F8A796F79706B rcx ^= rax; //xor rcx, rax rax = baseModuleAddr; //lea rax, [0xFFFFFFFFFD94AF39] rcx -= rax; //sub rcx, rax rax = rbx + 0xffffffffa5917e54; //lea rax, [rbx-0x5A6E81AC] rax += rcx; //add rax, rcx rcx = 0xA920BAB7A21DDE47; //mov rcx, 0xA920BAB7A21DDE47 rax *= rcx; //imul rax, rcx return rax; } case 5: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FF084] rdx = baseModuleAddr + 0x661; //lea rdx, [0xFFFFFFFFFD94B454] uintptr_t RSP_0x78; RSP_0x78 = 0x19A86082B9386E61; //mov rcx, 0x19A86082B9386E61 : RSP+0x78 rax ^= RSP_0x78; //xor rax, [rsp+0x78] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx uintptr_t RSP_0x30; RSP_0x30 = baseModuleAddr + 0x89B8; //lea rcx, [0xFFFFFFFFFD9537E2] : RSP+0x30 rcx ^= RSP_0x30; //xor rcx, [rsp+0x30] rax -= rcx; //sub rax, rcx rcx = 0x6CF5D40C805C3929; //mov rcx, 0x6CF5D40C805C3929 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = rax; //mov rcx, rax rcx >>= 0x23; //shr rcx, 0x23 rax ^= rcx; //xor rax, rcx rcx = 0xEA2BDCA216FA84E; //mov rcx, 0xEA2BDCA216FA84E rax += rcx; //add rax, rcx rcx = rdx; //mov rcx, rdx rcx = ~rcx; //not rcx rcx -= rbx; //sub rcx, rbx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 6: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FEB65] rcx = 0x143119596E0AB6F4; //mov rcx, 0x143119596E0AB6F4 rcx -= rbx; //sub rcx, rbx rax += rcx; //add 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 = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD94A791] rax -= rcx; //sub rax, rcx rcx = 0xD0FF53657C7A437; //mov rcx, 0xD0FF53657C7A437 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x1946435536018835; //mov rcx, 0x1946435536018835 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx return rax; } case 7: { r11 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r11, [0x00000000081FE754] rdx = baseModuleAddr + 0x32D6EFEE; //lea rdx, [0x00000000306B94C7] r8 = 0; //and r8, 0xFFFFFFFFC0000000 r8 = _rotl64(r8, 0x10); //rol r8, 0x10 r8 ^= r11; //xor r8, r11 rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx r8 = ~r8; //not r8 rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rax ^= rbx; //xor rax, rbx rax *= Read<uintptr_t>(r8 + 0x13); //imul rax, [r8+0x13] rcx = 0x6B8832A948DD0921; //mov rcx, 0x6B8832A948DD0921 rax += rcx; //add rax, rcx rcx = 0x9D382E284DCFD7C7; //mov rcx, 0x9D382E284DCFD7C7 rax *= rcx; //imul rax, rcx rcx = 0x4A2F2EC6D9595386; //mov rcx, 0x4A2F2EC6D9595386 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 = rax; //mov rcx, rax rcx >>= 0x15; //shr rcx, 0x15 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x2A; //shr rcx, 0x2A rax ^= rcx; //xor rax, rcx return rax; } case 8: { r14 = baseModuleAddr + 0x98C7; //lea r14, [0xFFFFFFFFFD953837] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FE133] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949B80] rax ^= rcx; //xor rax, rcx rcx = 0xB9B101CE6C8E2F91; //mov rcx, 0xB9B101CE6C8E2F91 rax *= rcx; //imul rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949E77] rax -= rcx; //sub 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 rax -= rbx; //sub rax, rbx rcx = 0x4F54898D891371A4; //mov rcx, 0x4F54898D891371A4 rax += rcx; //add rax, rcx rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rcx = r14; //mov rcx, r14 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rdx ^= r10; //xor rdx, r10 rdx = ~rdx; //not rdx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] return rax; } case 9: { r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FDCD7] rcx = 0x5C495DB1FF8A0C7D; //mov rcx, 0x5C495DB1FF8A0C7D rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD949A32] rax -= rcx; //sub rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x13; //shr rcx, 0x13 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x26; //shr rcx, 0x26 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD9497F1] rax += rcx; //add rax, rcx rdx = baseModuleAddr; //lea rdx, [0xFFFFFFFFFD9497D8] rdx += rbx; //add rdx, rbx rcx = 0x931F45DADBA6534A; //mov rcx, 0x931F45DADBA6534A rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = 0x7254D9C4F5E0407F; //mov rcx, 0x7254D9C4F5E0407F rax *= rcx; //imul rax, rcx return rax; } case 10: { r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FD858] rcx = 0x16092956D42CB466; //mov rcx, 0x16092956D42CB466 rax += rcx; //add rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x28; //shr rcx, 0x28 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x22; //shr rcx, 0x22 rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0xB; //shr rcx, 0x0B rax ^= rcx; //xor rax, rcx 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 = 0xC2E2E61ED49F5991; //mov rcx, 0xC2E2E61ED49F5991 rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] 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 rax -= rbx; //sub rax, rbx return rax; } case 11: { r13 = baseModuleAddr + 0x3E6FD0B3; //lea r13, [0x000000003C0461D1] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FD28C] rcx = rax; //mov rcx, rax rcx >>= 0x1B; //shr rcx, 0x1B rax ^= rcx; //xor rax, rcx rcx = rax; //mov rcx, rax rcx >>= 0x36; //shr rcx, 0x36 rax ^= rcx; //xor rax, rcx r14 = baseModuleAddr; //lea r14, [0xFFFFFFFFFD948B61] rax += r14; //add rax, r14 r14 = baseModuleAddr + 0x27799030; //lea r14, [0x00000000250E1B7A] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x6E5FECB626B1C472; //mov rcx, 0x6E5FECB626B1C472 rax += rcx; //add rax, rcx rdx = r13; //mov rdx, r13 rdx = ~rdx; //not rdx rdx ^= rbx; //xor rdx, rbx rcx = 0xF5121CBF37E46BBB; //mov rcx, 0xF5121CBF37E46BBB rax += rcx; //add rax, rcx rax += rdx; //add rax, rdx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax -= rcx; //sub rax, rcx rcx = 0xD2D6E8735A76DE2D; //mov rcx, 0xD2D6E8735A76DE2D rax *= rcx; //imul rax, rcx return rax; } case 12: { rdx = baseModuleAddr + 0xF737; //lea rdx, [0xFFFFFFFFFD958242] r13 = baseModuleAddr + 0x1124573F; //lea r13, [0x000000000EB8E22C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FCC6E] rax += rbx; //add rax, rbx 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 uintptr_t RSP_0x50; RSP_0x50 = 0x636BE495B0FA383E; //mov rcx, 0x636BE495B0FA383E : RSP+0x50 rax ^= RSP_0x50; //xor rax, [rsp+0x50] rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r10; //xor rcx, r10 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = r13; //mov rcx, r13 rcx ^= rbx; //xor rcx, rbx rax ^= rcx; //xor rax, rcx rcx = 0x8812EF99851F0715; //mov rcx, 0x8812EF99851F0715 rax *= rcx; //imul rax, rcx rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx += rdx; //add rcx, rdx rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0xB69; //lea rcx, [0xFFFFFFFFFD9494A3] rcx -= rbx; //sub rcx, rbx rax += rcx; //add rax, rcx return rax; } case 13: { r13 = baseModuleAddr + 0x5EF7; //lea r13, [0xFFFFFFFFFD94E4FB] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FC7CB] 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 rdx = rbx; //mov rdx, rbx rcx = rax; //mov rcx, rax rdx = ~rdx; //not rdx rcx >>= 0x28; //shr rcx, 0x28 rdx ^= r13; //xor rdx, r13 rax ^= rcx; //xor rax, rcx 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 *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] rcx = 0x736E085CD239F4CB; //mov rcx, 0x736E085CD239F4CB rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx rcx = baseModuleAddr; //lea rcx, [0xFFFFFFFFFD948112] rax ^= rcx; //xor rax, rcx rcx = 0x7DA51A97E3053243; //mov rcx, 0x7DA51A97E3053243 rax *= rcx; //imul rax, rcx rcx = 0x785CF31817D043AC; //mov rcx, 0x785CF31817D043AC rax ^= rcx; //xor rax, rcx return rax; } case 14: { r13 = baseModuleAddr + 0x16A6; //lea r13, [0xFFFFFFFFFD9496D5] r14 = baseModuleAddr + 0xF57E; //lea r14, [0xFFFFFFFFFD95759E] r9 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r9, [0x00000000081FC1F0] rcx = rbx; //mov rcx, rbx rcx = ~rcx; //not rcx rcx *= r14; //imul rcx, r14 rax += rcx; //add 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 r11 = 0xBE40C084BA769FA; //mov r11, 0xBE40C084BA769FA rcx = r13; //mov rcx, r13 rcx *= rbx; //imul rcx, rbx rcx += r11; //add rcx, r11 rax += rcx; //add rax, rcx rcx = 0xB92AAB45027C43E2; //mov rcx, 0xB92AAB45027C43E2 rax ^= rcx; //xor rax, rcx rcx = baseModuleAddr + 0x4FED906B; //lea rcx, [0x000000004D820D91] rcx += rbx; //add rcx, rbx rax += rcx; //add rax, rcx rcx = 0xBCCB1C832C79BF0B; //mov rcx, 0xBCCB1C832C79BF0B rax *= rcx; //imul rax, rcx rcx = 0; //and rcx, 0xFFFFFFFFC0000000 rcx = _rotl64(rcx, 0x10); //rol rcx, 0x10 rcx ^= r9; //xor rcx, r9 rcx = ~rcx; //not rcx rax *= Read<uintptr_t>(rcx + 0x13); //imul rax, [rcx+0x13] return rax; } case 15: { r14 = baseModuleAddr + 0x31081C40; //lea r14, [0x000000002E9C973C] r10 = Read<uintptr_t>(baseModuleAddr + 0xA8B4221); //mov r10, [0x00000000081FBCBF] rdx = 0; //and rdx, 0xFFFFFFFFC0000000 rdx = _rotl64(rdx, 0x10); //rol rdx, 0x10 rcx = rax; //mov rcx, rax rdx ^= r10; //xor rdx, r10 rcx >>= 0x20; //shr rcx, 0x20 rdx = ~rdx; //not rdx rax ^= rcx; //xor rax, rcx rcx = r14; //mov rcx, r14 rcx ^= rbx; //xor rcx, rbx rax *= Read<uintptr_t>(rdx + 0x13); //imul rax, [rdx+0x13] rax -= rcx; //sub rax, rcx rcx = 0xFC32828FC4E7EFD1; //mov rcx, 0xFC32828FC4E7EFD1 rax *= rcx; //imul rax, rcx rax -= rbx; //sub rax, rbx 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 rcx = rax; //mov rcx, rax rcx >>= 0x30; //shr rcx, 0x30 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 = 0x8D793715ED015397; //mov rcx, 0x8D793715ED015397 rax *= rcx; //imul rax, rcx return rax; } } } uint16_t get_bone_index(uint32_t bone_index) { const uint64_t mb = baseModuleAddr; 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; rdi = bone_index; rcx = rdi * 0x13C8; rax = 0x1B5C5E9652FDACE7; //mov rax, 0x1B5C5E9652FDACE7 rax = _umul128(rax, rcx, (uintptr_t*)&rdx); //mul rcx r11 = baseModuleAddr; //lea r11, [0xFFFFFFFFFD33E478] r10 = 0x19E9C4E0C9861BBD; //mov r10, 0x19E9C4E0C9861BBD rdx >>= 0xA; //shr rdx, 0x0A rax = rdx * 0x256D; //imul rax, rdx, 0x256D rcx -= rax; //sub rcx, rax rax = 0x4F9FF77A70376427; //mov rax, 0x4F9FF77A70376427 r8 = rcx * 0x256D; //imul r8, rcx, 0x256D 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 >>= 0xD; //shr rax, 0x0D rax = rax * 0x30D1; //imul rax, rax, 0x30D1 r8 -= rax; //sub r8, rax rax = 0x70381C0E070381C1; //mov rax, 0x70381C0E070381C1 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rax = 0x624DD2F1A9FBE77; //mov rax, 0x624DD2F1A9FBE77 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x92; //imul rcx, rdx, 0x92 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 = Read<uint16_t>(rcx + r11 * 1 + 0xA96F930); //movzx eax, word ptr [rcx+r11*1+0xA96F930] r8 = rax * 0x13C8; //imul r8, rax, 0x13C8 rax = r10; //mov rax, r10 rax = _umul128(rax, r8, (uintptr_t*)&rdx); //mul r8 rcx = r8; //mov rcx, r8 rax = r10; //mov rax, r10 rcx -= rdx; //sub rcx, rdx rcx >>= 0x1; //shr rcx, 0x01 rcx += rdx; //add rcx, rdx rcx >>= 0xC; //shr rcx, 0x0C rcx = rcx * 0x1D0F; //imul rcx, rcx, 0x1D0F r8 -= rcx; //sub r8, rcx r9 = r8 * 0x3981; //imul r9, r8, 0x3981 rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 rax -= rdx; //sub rax, rdx rax >>= 0x1; //shr rax, 0x01 rax += rdx; //add rax, rdx rax >>= 0xC; //shr rax, 0x0C rax = rax * 0x1D0F; //imul rax, rax, 0x1D0F r9 -= rax; //sub r9, rax rax = 0xD79435E50D79435F; //mov rax, 0xD79435E50D79435F rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = 0xA6810A6810A6811; //mov rax, 0xA6810A6810A6811 rdx >>= 0x6; //shr rdx, 0x06 rcx = rdx * 0x4C; //imul rcx, rdx, 0x4C rax = _umul128(rax, r9, (uintptr_t*)&rdx); //mul r9 rax = r9; //mov rax, r9 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 * 0xF6; //imul rax, rcx, 0xF6 rcx = r9 * 0xF8; //imul rcx, r9, 0xF8 rcx -= rax; //sub rcx, rax r15 = Read<uint16_t>(rcx + r11 * 1 + 0xA9787D0); //movsx r15d, word ptr [rcx+r11*1+0xA9787D0] return r15; }
yes i try but not workingAnyone try it with steam ?
nasıl kullandınban yedim kullanmayınız. Ekli dosyayı görüntüle 82717
githubdan zip indirip visual studio ile sln dosyasını açıyorsun. debugu release yapıp çalıştırıyorsun.nasıl kullandın
great work its works fine for me thanks for sharing it brotherCall of Duty: Modern Warfare II Cheat
Ekli dosyayı görüntüle 82491
Test edilen sistemler:
Windows 7 x64 [NOT WORKING]
Windows 8 x64 [NOT WORKING]
Windows 10 x64 [WORKING]
Windows 11 x64 [WORKING]
Status : Undetected
Latest Test : 10/12/2022
Tested platforms
Battle.net: Working
Steam: I'll update soon...
TR-Oyunu açtıktan sonra "Monke.exe" Başlatıcısını açmanız yeterli olacaktır.
ENG-After opening the game, it will be enough to open the "Monke.exe" Launcher.
Version: v1.0
Credit : MemoryHackers.org
Acces: Everyone
*Visual
Bone ESP
Box ESP
Text ESP
Line ESP
*Aim
Aimbot Legit-Rage
Aimbot Fov
Aimbot Smooth
*Stream Proof
Hide cheat forever
Bağlantıları görmek için lütfen Giriş Yap- OLD
Bağlantıları görmek için lütfen Giriş Yap
Here is source code make your own cheat have fun.
Bağlantıları görmek için lütfen Giriş Yap
legit oynasak bile yermiyiz ? fixli hile miban yedim kullanmayınız. Ekli dosyayı görüntüle 82717
evet fix oynamasan bile inject edince anında ban yiyiyorsun.legit oynasak bile yermiyiz ? fixli hile mi