Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub const REFDEF: u64 = 0x16F1FFA0;
- pub const NAME_ARRAY: u64 = 0x16F2B0B8;
- pub const NAME_LIST_OFFSET: u64 = 0x4C70;
- pub const CAMERA_POINTER: u64 = 0x14176660;
- pub const CAMERA_OFFSET: u64 = 0x1D8;
- pub const LOCAL_INDEX: u64 = 0x6908;
- pub const LOCAL_INDEX_OFFSET: u64 = 0x1F4;
- pub const NO_RECOIL: u64 = 0x989A0;
- pub const WEAPON_DEFINITIONS: u64 = 0x0;
- pub const unit_scale: f32 = 0.0254
- pub mod character_info {
- pub const SIZE: u64 = 0x3A50;
- pub const VALID: u64 = 0x5B0;
- pub const POS: u64 = 0x260;
- pub const TEAM: u64 = 0x274;
- pub const STANCE: u64 = 0xA28;
- // could not find any signature matches with 80 BB ?? ?? ?? ?? ?? 74 ?? 83 BB ?? ?? ?? ?? ?? 48 8D for weapon_index offset
- pub const WEAPON_INDEX: u64 = 0x0;
- pub const DEAD_1: u64 = 0x10;
- pub const DEAD_2: u64 = 0x34;
- }
- pub mod client_info {
- pub const ENCRYPTED_PTR: u64 = 0x16F1D608;
- }
- pub mod client_base {
- pub const ENCRYPTED_PTR: u64 = 0x9DB98;
- }
- pub mod bone {
- pub const ENCRYPTED_PTR: u64 = 0x152C02C8;
- pub const BASE_POS: u64 = 0x0;
- pub const INDEX_STRUCT_SIZE: u64 = 0x150;
- }
- #include "decryption.h"
- extern "C" auto decrypt_client_info(uint64_t game_base_address, uint64_t encrypted_ptr, uint64_t peb) -> uint64_t {
- RBX = encrypted_address
- RDX = game_base_address;
- RAX -= 0x4C;
- // movzx eax,al
- R8 = peb // mov r8,gs:[rax];
- RCX = R8;
- RAX = 0x0;
- RCX -= RDX;
- RAX = _rotl64(RAX, 0x10);
- RCX += RBX;
- RAX ^= read<uint64_t>(game_base_address + 0x64310EB);
- RDX = 0xA75E18F8B6F00B13;
- RAX = ~RAX;
- RCX *= RDX;
- RAX = read<uint64_t>(RAX + 0x5);
- RDX = 0x55E7FC3002787674;
- RCX -= RDX;
- RAX *= RCX;
- RBX = RAX;
- RBX >>= 0x20;
- RBX ^= RAX;
- RAX = 0x4EAF1444C7716869;
- RBX -= RAX;
- RAX = game_base_address + 0xE1AB;
- RAX -= R8;
- RBX ^= RAX;
- return RBX;
- }
- extern "C" auto decrypt_client_base(uint64_t game_base_address, uint64_t encrypted_ptr, uint64_t peb,
- uint8_t switch_case) -> uint64_t {
- RAX = encrypted_address
- switch(RCX) {
- case 0: {
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- RAX -= RBX;
- RCX = 0xE6E9C4CFE60AA6CF;
- RAX *= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RCX = read<uint64_t>(RCX + 0x7);
- RAX *= RCX;
- RCX = 0x60A51A7CE56B0033;
- RAX ^= RCX;
- RCX = game_base_address;
- RAX ^= RCX;
- RAX += RBX;
- RCX = 0xE8A4E59D9068BBD8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x25;
- RAX ^= RCX;
- return RAX;
- }
- case 1: {
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- RCX = 0xE9D90E123EA3008F;
- RAX *= RCX;
- RCX = game_base_address;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x1F;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x3E;
- RAX ^= RCX;
- RCX = 0x30F82B00D1212CCD;
- RAX -= RCX;
- RCX = 0xD59E13638316CDC7;
- RAX *= RCX;
- RCX = RAX;
- RCX >>= 0x7;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0xE;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x1C;
- RAX ^= RCX;
- RBP = 0x5FED18F0C0;
- RDX = RBP;
- RDX -= RDI;
- RDX = 0x0;
- RCX = RAX;
- RDX = _rotl64(RDX, 0x10);
- RCX >>= 0x38;
- RDX ^= R10;
- RCX ^= RAX;
- RDX = ~RDX;
- RAX = read<uint64_t>(RDX + 0x7);
- RAX *= RCX;
- RAX -= RBX;
- return RAX;
- }
- case 2: {
- RDI = game_base_address + 0xBBD;
- R15 = game_base_address + 0x63172AC6;
- RDX = game_base_address + 0xBA26;
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RCX = 0x9247868A197212ED;
- RAX *= RCX;
- RAX ^= RBX;
- RAX ^= R15;
- RCX = 0x7826ADD63EB357EF;
- RAX ^= RCX;
- RCX = 0x694A73F1D4539551;
- RAX -= RCX;
- RCX = RBX;
- RCX = ~RCX;
- RCX ^= RDX;
- RAX -= RCX;
- RBP = 0x5FED18F0C0;
- RDX = RBP;
- RDX -= RDI;
- RCX = RAX;
- RDX = 0x0;
- RCX >>= 0x15;
- RAX ^= RCX;
- RDX = _rotl64(RDX, 0x10);
- RDX ^= R10;
- RCX = RAX;
- RDX = ~RDX;
- RCX >>= 0x2A;
- RCX ^= RAX;
- RAX = read<uint64_t>(RDX + 0x7);
- RAX *= RCX;
- RCX = game_base_address;
- RAX -= RCX;
- return RAX;
- }
- case 3: {
- RDI = game_base_address + 0xBBD;
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RCX = game_base_address;
- RAX += RCX;
- RCX = 0x24B70F6B48CC3DEC;
- RAX -= RCX;
- RCX = 0x663EBBD6155754BD;
- RAX ^= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RCX = RAX;
- RCX >>= 0x8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RAX ^= RCX;
- RCX = 0xCD9C754AAF7B438F;
- RAX *= RCX;
- RCX = game_base_address;
- RCX += 0x6EA23EC7;
- RCX += RBX;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x21;
- RAX ^= RCX;
- return RAX;
- }
- case 4: {
- R11 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- RDX = game_base_address + 0x4650B45B;
- R8 = game_base_address + 0x2D936AA9;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R11;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RCX = 0xFD22695CCD4CE51D;
- RAX *= RCX;
- RCX = 0xDFBC78FCDD2F01D6;
- RAX ^= RCX;
- RCX = RBX + 1;
- RCX *= RDX;
- RAX += RCX;
- RCX = 0x6F346D6EF7BB6C1B;
- RAX -= RCX;
- RCX = RAX;
- RCX >>= 0x5;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0xA;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x14;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x28;
- RAX ^= RCX;
- RAX -= RBX;
- RAX += R8;
- RAX += RBX;
- return RAX;
- }
- case 5: {
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- R15 = game_base_address + 0x3200;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x20;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x17;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2E;
- RAX ^= RCX;
- RCX = game_base_address;
- RAX += RCX;
- RCX = R15;
- RCX = ~RCX;
- RCX ^= RBX;
- RAX ^= RCX;
- RCX = 0x38DF4B3D0F2DE769;
- RAX *= RCX;
- RCX = 0x6C82026A72D236F4;
- RAX -= RCX;
- RCX = 0xA4CC72AA79844993;
- RAX *= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- return RAX;
- }
- case 6: {
- RDI = game_base_address + 0xBBD;
- R15 = game_base_address + 0x6AAD;
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RCX = 0x6160F16DF7DF07F7;
- RAX *= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RCX = read<uint64_t>(RCX + 0x7);
- RAX *= RCX;
- RCX = game_base_address + 0x6FD9E29A;
- RAX -= RBX;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x16;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2C;
- RAX ^= RCX;
- RCX = R15;
- RCX -= RBX;
- RAX ^= RCX;
- RAX -= RBX;
- RAX -= RBX;
- RCX = game_base_address;
- RAX -= RCX;
- return RAX;
- }
- case 7: {
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- R14 = game_base_address + 0x54758DB5;
- R15 = game_base_address + 0x10C94701;
- RCX = RBX + 1;
- RCX *= R14;
- RAX += RCX;
- RAX ^= RBX;
- RCX = RAX;
- RCX >>= 0x8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x10;
- RAX ^= RCX;
- RDX = RAX;
- RDX >>= 0x20;
- RDX ^= RAX;
- RCX = 0x195F12ACE43A10A3;
- RAX = RBX;
- RAX ^= R15;
- RAX += RDX;
- RAX ^= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RCX = 0x68576374935116D1;
- RAX *= RCX;
- RCX = 0x466F02281638ADEA;
- RAX += RCX;
- return RAX;
- }
- case 8: {
- RDI = game_base_address + 0xBBD;
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RCX = RAX;
- RCX >>= 0xB;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x16;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x2C;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x11;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x22;
- RAX ^= RCX;
- RCX = 0x25C0D8E7905861CD;
- RAX *= RCX;
- RCX = 0x496F6A722EA6EA80;
- RAX += RCX;
- RAX ^= RBX;
- RCX = 0x656F95F2DADBB51B;
- RAX += RCX;
- RBP = 0x5FED18F0C0;
- RDX = RBP;
- RDX -= RDI;
- RCX = RAX;
- RDX = 0x0;
- RAX = game_base_address;
- RDX = _rotl64(RDX, 0x10);
- RCX -= RAX;
- RDX ^= R10;
- RDX = ~RDX;
- RAX = read<uint64_t>(RDX + 0x7);
- RAX *= RCX;
- return RAX;
- }
- case 9: {
- RDI = game_base_address + 0xBBD;
- R9 = read<uint64_t>(game_base_address + 0x6431135);
- RAX += RBX;
- RAX -= RBX;
- RCX = RAX;
- RCX >>= 0x7;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0xE;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x1C;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x38;
- RAX ^= RCX;
- RCX = game_base_address;
- RAX += RCX;
- RCX = 0x42B4A82AA0F19A29;
- RAX *= RCX;
- RCX = 0x23C2E686A22B1F98;
- RAX -= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = ~RCX;
- RCX = read<uint64_t>(RCX + 0x7);
- RAX *= RCX;
- RCX = 0x9F157FA9A2B01826;
- RAX ^= RCX;
- return RAX;
- }
- case 10: {
- RDI = game_base_address + 0xBBD;
- R14 = game_base_address + 0x970F;
- R9 = read<uint64_t>(game_base_address + 0x6431135);
- RCX = 0x3B27986269CF539D;
- RAX *= RCX;
- RCX = 0x10E12306627DB4E8;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x1D;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x3A;
- RAX ^= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RCX = RAX;
- RCX >>= 0xA;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x14;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x28;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x19;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x32;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x1B;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x36;
- RAX ^= RCX;
- RCX = RBX;
- RCX *= R14;
- RAX += RCX;
- return RAX;
- }
- case 11: {
- R9 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- R11 = game_base_address + 0xD8FC;
- R14 = game_base_address + 0x414E88BC;
- RCX = 0x9245394404FAA7F4;
- RAX += RCX;
- RCX = 0x9A9E4C1AE306D82D;
- RAX ^= RCX;
- RCX = RBX;
- RCX ^= R11;
- RAX -= RCX;
- RCX = RAX;
- RCX >>= 0x1A;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x34;
- RAX ^= RCX;
- RAX ^= RBX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RSP = 0xB3EB041C84F5649;
- RAX *= RSP;
- RCX = RBX;
- RCX *= R14;
- RAX -= RCX;
- return RAX;
- }
- case 12: {
- RDI = game_base_address + 0xBBD;
- R14 = game_base_address + 0x7B009E76;
- R9 = read<uint64_t>(game_base_address + 0x6431135);
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R9;
- RCX = ~RCX;
- RCX = read<uint64_t>(RCX + 0x7);
- RSP = 0x73DBAA6C27DC9AEB;
- RCX *= RSP;
- RAX *= RCX;
- RCX = game_base_address;
- RCX += 0x3C6AB2DE;
- RCX += RBX;
- RAX ^= RCX;
- RCX = game_base_address;
- RAX += RBX;
- RAX = RAX + 0;
- RAX += 0x772067CE;
- RCX = RAX;
- RCX >>= 0xE;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x1C;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x38;
- RAX ^= RCX;
- RCX = RBX;
- RCX = ~RCX;
- RCX ^= R14;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x6;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0xC;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x18;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x30;
- RAX ^= RCX;
- return RAX;
- }
- case 13: {
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RCX = RAX;
- RCX >>= 0xC;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x18;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x30;
- RAX ^= RCX;
- RCX = 0x2B0AE9D55E807FA6;
- RAX ^= RCX;
- RCX = 0xAF2C4EF4A2EF34C3;
- RAX *= RCX;
- RCX = RBX;
- RCX = ~RCX;
- RSP = game_base_address;
- RCX -= RSP;
- RCX += RAX;
- RAX = RBX + 18446744073709549677;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x24;
- RAX ^= RCX;
- RCX = 0xA66EE446DC13C863;
- RAX *= RCX;
- return RAX;
- }
- case 14: {
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RDI = game_base_address + 0xBBD;
- R11 = game_base_address + 0x725;
- R14 = game_base_address + 0xB;
- RCX = RBX;
- RCX = ~RCX;
- RCX ^= R11;
- RAX += RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RCX = R14;
- RCX -= RBX;
- RAX += RCX;
- RCX = RAX;
- RCX >>= 0x23;
- RAX ^= RCX;
- RCX = 0x90C1D736EB8D5178;
- RAX ^= RCX;
- RCX = 0x101278DFE9637E11;
- RAX += RBX;
- RAX *= RCX;
- RCX = game_base_address;
- RAX += RCX;
- return RAX;
- }
- case 15: {
- RDI = game_base_address + 0xBBD;
- R14 = game_base_address + 0x593CDC6E;
- R10 = read<uint64_t>(game_base_address + 0x6431135);
- RCX = game_base_address + 0x25AE;
- RCX = ~RCX;
- RCX *= RBX;
- RAX ^= RCX;
- RCX = 0x452ADF794B12D9EB;
- RAX += RCX;
- RDX = game_base_address + 0x6FEBE459;
- RDX = ~RDX;
- RDX -= RBX;
- RAX += RDX;
- RCX = R14;
- RCX = ~RCX;
- // inc rcx
- RCX += RBX;
- RAX ^= RCX;
- RCX = RAX;
- RCX >>= 0x25;
- RAX ^= RCX;
- RCX = 0xD975675422D03E39;
- RAX *= RCX;
- RBP = 0x5FED18F0C0;
- RCX = RBP;
- RCX -= RDI;
- RCX = 0x0;
- RCX = _rotl64(RCX, 0x10);
- RCX ^= R10;
- RCX = ~RCX;
- RAX *= read<uint64_t>(RCX + 0x7);
- RAX += RBX;
- return RAX;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement