External Call Of Duty: MWII | WZ2.0 Cheat - Source Code included

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
10 Ara 2022
Mesajlar
67
Tepki puanı
2
Yaş
37
3 HİZMET YILI
bro this hack looks insane, however, what are the ban rates if you dont mind answering?
 
  • Konuyu başlatan
  • Yasaklandı
  • #126
Banlı Üye
Katılım
7 Nis 2019
Mesajlar
5,454
Çözümler
1,816
Tepki puanı
2,709
Ödüller
16
Yaş
26
7 HİZMET YILI
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;
}
 
𐱅 𐰇 𐰼 𐰰
Ultra Üye
Katılım
15 Ara 2019
Mesajlar
1,531
Çözümler
8
Tepki puanı
161
Ödüller
8
6 HİZMET YILI
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;
}
bunu nasıl kullanacağız ?
 
Banlı Üye
Katılım
9 Ocak 2019
Mesajlar
245
Çözümler
6
Tepki puanı
32
Ödüller
5
Yaş
23
7 HİZMET YILI
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 gerekiyor
 
bizler tanrının yetim çocuklarıyız
Ultra Üye
Katılım
24 May 2016
Mesajlar
1,659
Çözümler
18
Tepki puanı
507
Ödüller
13
Yaş
26
10 HİZMET YILI
şu hile düzgünce compile edilip paylaşılsa keşke
 
bizler tanrının yetim çocuklarıyız
Ultra Üye
Katılım
24 May 2016
Mesajlar
1,659
Çözümler
18
Tepki puanı
507
Ödüller
13
Yaş
26
10 HİZMET YILI
ban yedim kullanmayınız.
1671609995365.png
 
Onaylı Üye
Katılım
20 Ara 2022
Mesajlar
53
Tepki puanı
1
Ödüller
1
Yaş
28
3 HİZMET YILI
sadece hile ekranı gelıyor oyuna gırınce çalısmıyor
Post automatically merged:

sadece hile ekranı gelıyor oyuna gırınce çalısmıyor
 
Uzman Üye
Katılım
17 Ara 2022
Mesajlar
155
Tepki puanı
15
Ödüller
3
Yaş
27
3 HİZMET YILI
Call 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...

:kullan:

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


:özellik:

*Visual
Bone ESP
Box ESP
Text ESP
Line ESP


*Aim
Aimbot Legit-Rage
Aimbot Fov
Aimbot Smooth


*Stream Proof
Hide cheat forever

:indir:


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
great work its works fine for me thanks for sharing it brother
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst