namespace offsets{ constexpr auto camera_base = 0x1416B000; constexpr auto camera_pos = 0x1D8; constexpr auto game_mode = 0x16BE0BE8; constexpr auto local_index = 0x501C0; constexpr auto name_array = 0x16F79F58; constexpr auto name_array_padding = 0x4C70; constexpr auto ref_def = 0x16F6ECB0; constexpr auto weapon_definition = 0x1423E380; namespace bones { constexpr auto bone_base = 0x57CB4; constexpr auto distribute = 0x195DA9E8; constexpr auto size = 0x150; constexpr auto visible = 0x5342240; } namespace directx { constexpr auto command_queue = 0x189B3D28; constexpr auto swap_chain = 0x189B90A0; } namespace engine { constexpr auto get_string = 0x2BD11B0; constexpr auto begin_event = 0x2AE0DD0; constexpr auto add_param_string = 0x2AE0DB0; constexpr auto finish_event = 0x2AE0E60; constexpr auto get_asset = 0x2D50420; constexpr auto move_response_to_inventory = 0x54C9C00; constexpr auto loot_base = 0x9E2EF00; constexpr auto get_column_value_for_row = 0x2D50460; } namespace unlocker { constexpr auto entity_list = 0x137B72E0; constexpr auto sub_entity = 0x150; constexpr auto entity_size = 0x5A8; } namespace other { constexpr auto recoil = 0x23824; } namespace player { constexpr auto dead_1 = 0x14F4; constexpr auto dead_2 = 0x430; constexpr auto pos_info = 0x12D0; constexpr auto size = 0x3AC0; constexpr auto stance = 0x6A8; constexpr auto team_id = 0x4B8; constexpr auto valid = 0x614; constexpr auto weapon_index = 0xF5A; }}
namespace decryption{ auto get_client_info() -> uint64_t { uint64_t RAX = 0, RBX = 0, RCX = 0, RDX = 0, R8 = 0, RDI = 0, R9 = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, RSI = 0, RSP = 0, RBP = 0; RBX = *(uint64_t*)(global::module_base + 0x16F6C318); if (!RBX) return 0; R8 = global::module_base; // je short 0000000001A83E9Ch RCX = global::module_base; RAX = 0xB1368AA21CC89905; RBX *= RAX; RDX = 0xE33EDD45F165A542; RBX += R8; RAX = RBX; RAX >>= 0x18; RBX ^= RAX; RAX = global::module_base + 0x988; RCX -= RAX; RAX = RBX; RCX = 0; // Special case RAX >>= 0x30; RCX = _rotl64(RCX, 0x10); RAX ^= RBX; RCX ^= *(uint64_t*)(global::module_base + 0x6358106); RAX += RDX; RCX = (~RCX); R8 += RAX; if (is_bad_ptr((void*)(RCX + 0xF))) return 0xFFFFFFFFFFFFFFFF; RBX = *(uint64_t*)(RCX + 0xF); RBX *= R8; return RBX; } auto get_client_info_base(uint64_t client_info) -> uint64_t { uint64_t RAX = global::module_base, RBX = global::module_base, RCX = global::module_base, RDX = global::module_base, R8 = global::module_base, RDI = global::module_base, R9 = global::module_base, R10 = global::module_base, R11 = global::module_base, R12 = global::module_base, R13 = global::module_base, R14 = global::module_base, R15 = global::module_base, RSI = global::module_base, RSP = global::module_base, RBP = global::module_base; RAX = *(uint64_t*)(client_info + 0x9DC48); if (!RAX) return 0; RBX = global::peb; // test rax,rax // je near ptr 0000000001A88BB1h RCX = RBX; RCX = _rotr64(RCX, 0xE); RCX &= 0xF; switch (RCX) { case 0: { R10 = *(uint64_t*)(global::module_base + 0x6358146); RCX = 0x2C4DD10573E87BDF; RAX -= RCX; RCX = RAX; RCX >>= 0xF; RAX ^= RCX; RCX = RAX; RCX >>= 0x1E; RAX ^= RCX; RCX = RAX; RCX >>= 0x3C; RAX ^= RCX; RCX = 0x2A7E13A63C0DC12; RAX += RCX; RCX = 0x6EA8692AFBE9951D; RAX *= RCX; RCX = global::module_base + 0x7B15C6EB; RCX -= RBX; RAX += RCX; RDX = 0; // Special case RCX = RAX; RDX = _rotl64(RDX, 0x10); RAX = global::module_base; RCX -= RAX; RDX ^= R10; RDX = (~RDX); if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RDX + 0x9); RAX *= RCX; RCX = global::module_base; RAX += RCX; return RAX; } case 1: { R9 = *(uint64_t*)(global::module_base + 0x6358146); RCX = global::module_base + 0x7A646912; RCX = (~RCX); RCX -= RBX; RAX += RCX; RCX = RAX; RCX >>= 0x22; RAX ^= RCX; RCX = 0x7D67E1E97C6B2C96; RAX -= RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R9; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RCX = *(uint64_t*)(RCX + 0x9); RCX *= RAX; RAX = global::module_base; RCX -= RAX; RAX = RBX + 0xFFFFFFFFFFFFF016; RAX += RCX; RAX -= RBX; RCX = global::module_base + 0x2FF05259; RAX += RCX; RCX = 0x9A1F338590121263; RAX *= RCX; RCX = 0x52BE01F8D7308C; RAX += RCX; return RAX; } case 2: { R14 = global::module_base + 0xABC7; R15 = global::module_base + 0x329; R9 = *(uint64_t*)(global::module_base + 0x6358146); RCX = 0x428FFCC799FD807; RAX *= RCX; RCX = global::module_base; RAX += RCX; RCX = RBX; RCX = (~RCX); RCX += R15; RAX ^= RCX; RCX = RAX; RCX >>= 0x22; RAX ^= RCX; RCX = 0x6D47E789FB157961; RAX *= RCX; RCX = 0x51EE1309C70ABD7; RAX *= RCX; RCX = R14; RCX = (~RCX); RCX ^= RBX; RAX ^= RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R9; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); return RAX; } case 3: { R10 = *(uint64_t*)(global::module_base + 0x6358146); R15 = global::module_base + 0x4154CA52; R14 = global::module_base + 0x6B1288FF; RCX = 0x9AA73C5A44CEFEB; RAX *= RCX; RCX = R14; RCX = (~RCX); RCX ^= RBX; RAX -= RCX; RDX = 0; // Special case RDX = _rotl64(RDX, 0x10); RCX = RBX; RDX ^= R10; RDX = (~RDX); RCX *= R15; if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RDX = *(uint64_t*)(RDX + 0x9); RAX *= RDX; RAX ^= RCX; RCX = RAX; RCX >>= 0x23; RAX ^= RCX; RCX = 0x49E1C5A42D1EBB58; RAX ^= RCX; RCX = RAX; RCX >>= 0x15; RAX ^= RCX; RCX = RAX; RCX >>= 0x2A; RAX ^= RCX; RCX = 0x3736A546ED043ACA; RAX += RCX; return RAX; } case 4: { R11 = *(uint64_t*)(global::module_base + 0x6358146); RDX = global::module_base + 0xE83F; RCX = RAX; RCX >>= 0x1B; RAX ^= RCX; RCX = RAX; RCX >>= 0x36; RAX ^= RCX; RCX = RBX; RCX *= RDX; RAX -= RCX; RCX = 0x310451BB37ED62A0; RAX ^= RCX; R8 = 0; // Special case R8 = _rotl64(R8, 0x10); RCX = global::module_base + 0x7E687D0C; R8 ^= R11; RDX = RBX; RDX = (~RDX); RCX = (~RCX); RDX *= RCX; R8 = (~R8); RDX += RAX; if (is_bad_ptr((void*)(R8 + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(R8 + 0x9); RAX *= RDX; R8 = global::module_base + 0xE166; RBP = 0xB1660B2EB3DEF8A3; RAX *= RBP; RCX = RBX; RCX *= R8; RAX -= RCX; RCX = 0x2D4951DFC2EC76; RAX ^= RCX; return RAX; } case 5: { R14 = global::module_base + 0xCE23; R9 = *(uint64_t*)(global::module_base + 0x6358146); RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R9; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); RAX += RBX; RCX = RBX; RCX ^= R14; RAX -= RCX; RAX -= RBX; RAX -= RBX; RCX = RAX; RCX >>= 0xE; RAX ^= RCX; RCX = RAX; RCX >>= 0x1C; RAX ^= RCX; RCX = RAX; RCX >>= 0x38; RAX ^= RCX; RCX = 0x722B82C72992DE8D; RAX += RCX; RCX = 0x15F1C700407765FB; RAX *= RCX; return RAX; } case 6: { R14 = global::module_base + 0x34DF; R11 = global::module_base + 0x1C28A0E6; R9 = *(uint64_t*)(global::module_base + 0x6358146); RCX = RBX; RCX *= R14; RAX += RCX; RCX = R11; RCX = (~RCX); RCX ^= RBX; RAX += RCX; RCX = RAX; RCX >>= 0xC; RAX ^= RCX; RCX = RAX; RCX >>= 0x18; RAX ^= RCX; RCX = RAX; RCX >>= 0x30; RAX ^= RCX; RCX = 0xDE4968A1A719FFCB; RAX *= RCX; RCX = RBX; RCX = (~RCX); RCX -= global::module_base; RAX += RCX; RCX = 0xB556BEEBB66DDC7F; RAX *= RCX; RCX = 0x4D76CF5D1934D528; RAX -= RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R9; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RCX = *(uint64_t*)(RCX + 0x9); RAX *= RCX; RCX = 0x56851AD3B48647AD; RAX -= RCX; return RAX; } case 7: { R10 = *(uint64_t*)(global::module_base + 0x6358146); R15 = global::module_base + 0x39C4; RCX = RAX; RCX >>= 0x16; RAX ^= RCX; RCX = RAX; RCX >>= 0x2C; RAX ^= RCX; RCX = global::module_base; RAX -= RCX; RCX = RAX; RCX >>= 0xF; RAX ^= RCX; RCX = RAX; RCX >>= 0x1E; RAX ^= RCX; RCX = RAX; RCX >>= 0x3C; RAX ^= RCX; RCX = 0x21FED6E262CAF0A5; RAX += RBX; RAX *= RCX; RCX = 0xC7C713F9414B5D6F; RAX *= RCX; RCX = RBX; RCX *= R15; RAX -= RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); return RAX; } case 8: { R11 = *(uint64_t*)(global::module_base + 0x6358146); RCX = RAX; RCX >>= 0x1E; RAX ^= RCX; RDX = RAX; RDX >>= 0x3C; RDX ^= RAX; RCX = global::module_base + 0x4761EFFA; RAX = RBX; RAX = (~RAX); RAX += RDX; RAX += RCX; RDX = global::module_base + 0x4D99E6C7; RCX = 0x146DB59CC1529DFB; RAX *= RCX; R8 = 0; // Special case RCX = 0x6560D27261FEC3CD; RAX -= RCX; R8 = _rotl64(R8, 0x10); R8 ^= R11; RCX = RBX; RCX *= RDX; RDX = RAX; R8 = (~R8); RDX ^= RCX; if (is_bad_ptr((void*)(R8 + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(R8 + 0x9); RAX *= RDX; RCX = global::module_base; RAX ^= RCX; RCX = 0x88F7E80C1A3D810D; RAX ^= RCX; return RAX; } case 9: { R10 = *(uint64_t*)(global::module_base + 0x6358146); R14 = global::module_base + 0x2B3B97D6; RCX = R14; RCX = (~RCX); RCX ^= RBX; RAX -= RCX; RCX = RAX; RCX >>= 0x26; RAX ^= RCX; RCX = global::module_base; RCX += 0x768D9C44; RCX += RBX; RAX += RCX; RCX = global::module_base; RAX ^= RCX; RDX = 0; // Special case RCX = 0xB806EA076004BA03; RCX += RAX; RDX = _rotl64(RDX, 0x10); RDX ^= R10; RDX = (~RDX); if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RDX + 0x9); RAX *= RCX; RCX = 0xEDE8FF8B79B50DB9; RAX ^= RCX; RCX = 0x6FB6C9522E542E57; RAX *= RCX; return RAX; } case 10: { R14 = global::module_base + 0x30AA903C; R10 = *(uint64_t*)(global::module_base + 0x6358146); RDX = 0; // Special case RCX = global::module_base + 0x94AF; RDX = _rotl64(RDX, 0x10); RDX ^= R10; RDX = (~RDX); if (is_bad_ptr((void*)(RDX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RDX = *(uint64_t*)(RDX + 0x9); RDX *= RAX; RAX = RBX; RAX = (~RAX); RAX += RDX; RAX += RCX; RCX = RAX; RCX >>= 0xC; RAX ^= RCX; RCX = RAX; RCX >>= 0x18; RAX ^= RCX; RCX = RAX; RCX >>= 0x30; RAX ^= RCX; RCX = 0xACC4BF01026ACA41; RAX *= RCX; RCX = 0x7B0FC59EF989D401; RAX *= RCX; RCX = RBX; RCX = (~RCX); RCX *= R14; RAX ^= RCX; RAX += RBX; RCX = 0xA7FA6EC3B6BE6B3; RAX *= RCX; return RAX; } case 11: { R10 = *(uint64_t*)(global::module_base + 0x6358146); R15 = global::module_base + 0x83A5; RAX ^= RBX; RCX = 0x40C12A8DB56F3975; RAX ^= RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); RCX = global::module_base + 0x4D9F690F; RCX = (~RCX); RCX *= RBX; RAX += RCX; RDX = RBX; RDX = (~RDX); RCX = global::module_base + 0x209B04FB; RCX = (~RCX); RDX *= RCX; RAX += RDX; RCX = RAX; RCX >>= 0x26; RAX ^= RCX; RCX = 0xFE5C09AC750B9363; RAX *= RCX; RCX = RBX; RCX *= R15; RAX -= RCX; return RAX; } case 12: { R10 = *(uint64_t*)(global::module_base + 0x6358146); RCX = RAX; RCX >>= 0x1; RAX ^= RCX; RCX = RAX; RCX >>= 0x2; RAX ^= RCX; RCX = RAX; RCX >>= 0x4; RAX ^= RCX; RCX = RAX; RCX >>= 0x8; RAX ^= RCX; RCX = RAX; RCX >>= 0x10; RAX ^= RCX; RCX = RAX; RCX >>= 0x20; RAX ^= RCX; RDX = RBX; RDX = (~RDX); RCX = global::module_base + 0x5871BC1F; RCX = (~RCX); RDX += RCX; RCX = 0x3D71B39825780613; RAX ^= RDX; RAX *= RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); RCX = global::module_base + 0x620C; RCX = (~RCX); RCX -= RBX; RAX ^= RCX; RCX = RAX; RCX >>= 0x1F; RAX ^= RCX; RCX = RAX; RCX >>= 0x3E; RAX ^= RCX; RCX = 0x94CCAF9E67675B86; RAX ^= RCX; RCX = 0xEEDDDC399380CB03; RAX *= RCX; return RAX; } case 13: { R10 = *(uint64_t*)(global::module_base + 0x6358146); R15 = global::module_base + 0x24DDB6C6; R14 = global::module_base + 0x44386CDB; RDX = RBX; RDX = (~RDX); RCX = R15; RCX = (~RCX); RDX += RCX; RAX ^= RDX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); RCX = RAX; RCX >>= 0x1D; RAX ^= RCX; RCX = RAX; RCX >>= 0x3A; RAX ^= RCX; RCX = RAX; RCX >>= 0xA; RAX ^= RCX; RCX = RAX; RCX >>= 0x14; RAX ^= RCX; RCX = RAX; RCX >>= 0x28; RAX ^= RCX; RCX = R14; RCX = (~RCX); RCX ^= RBX; RAX -= RCX; RCX = 0xA425934513878AA5; RAX ^= RCX; RCX = 0xEBB297007E6A6869; RAX *= RCX; RCX = 0x71D340402BC33382; RAX += RCX; return RAX; } case 14: { R9 = *(uint64_t*)(global::module_base + 0x6358146); RCX = global::module_base; RAX += RCX; RCX = global::module_base; RAX ^= RCX; RCX = 0x5B3DE4A99B478B9C; RAX -= RCX; RCX = RBX; RSP = global::module_base + 0x2F3E; RCX *= RSP; RAX += RCX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R9; RCX = (~RCX); if (is_bad_ptr((void*)(RCX + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX *= *(uint64_t*)(RCX + 0x9); RCX = 0xC04FC33339F325BD; RAX *= RCX; RCX = RAX; RCX >>= 0x22; RAX ^= RCX; RCX = global::module_base; RAX ^= RCX; return RAX; } case 15: { R11 = *(uint64_t*)(global::module_base + 0x6358146); R15 = global::module_base + 0x5FEE; RCX = RBX; RCX = (~RCX); RCX ^= R15; RAX += RCX; RCX = RAX; RCX >>= 0x22; RAX ^= RCX; RCX = RAX; RCX >>= 0x26; RAX ^= RCX; R8 = 0; // Special case R8 = _rotl64(R8, 0x10); RCX = global::module_base; RAX -= RCX; R8 ^= R11; R8 = (~R8); RDX = 0xD2E4E9A984CB1482; RDX += RAX; RDX += RBX; if (is_bad_ptr((void*)(R8 + 0x9))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(R8 + 0x9); RAX *= RDX; RCX = 0x668190FC03DA69F9; RAX *= RCX; RCX = 0x7DCF9F0915447B5B; RAX -= RCX; return RAX; } default: return 0; } } auto get_bone() -> uint64_t { uint64_t RAX = global::module_base, RBX = global::module_base, RCX = global::module_base, RDX = global::module_base, R8 = global::module_base, RDI = global::module_base, R9 = global::module_base, R10 = global::module_base, R11 = global::module_base, R12 = global::module_base, R13 = global::module_base, R14 = global::module_base, R15 = global::module_base, RSI = global::module_base, RSP = global::module_base, RBP = global::module_base; R8 = *(uint64_t*)(global::module_base + 0x152FB068); if (!R8) return 0; RBX = global::peb; // test r8,r8 // je near ptr 0000000001BCDD14h RAX = RBX; RAX >>= 0x1F; RAX &= 0xF; switch (RAX) { case 0: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = global::module_base; R8 -= RAX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R10; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); RAX = R8; RAX >>= 0x1E; R8 ^= RAX; RAX = R8; RAX >>= 0x3C; R8 ^= RAX; RSP = 0x6E33B4D07235DCE1; R8 *= RSP; RAX = RBX; RBP = global::module_base + 0xA176; RAX *= RBP; R8 -= RAX; RAX = 0x1588F6554284D28E; R8 -= RAX; RCX = global::module_base; RAX = 0x4F8498C6B1335BDA; RAX -= RCX; R8 += RAX; return R8; } case 1: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = R8; RAX >>= 0x5; R8 ^= RAX; RAX = R8; RAX >>= 0xA; R8 ^= RAX; RAX = R8; RAX >>= 0x14; R8 ^= RAX; RAX = R8; RAX >>= 0x28; R8 ^= RAX; RAX = 0x2A67EE5D220D754A; R8 -= RAX; RAX = global::module_base + 0x6B86; RCX = RBX; RCX = (~RCX); RCX *= RAX; RAX = RBX; RCX += R8; R8 = global::module_base; RAX -= R8; R8 = RCX; RAX -= 0x42B8; R8 ^= RAX; RAX = R8; RAX >>= 0x7; R8 ^= RAX; RAX = R8; RAX >>= 0xE; R8 ^= RAX; RAX = R8; RAX >>= 0x1C; R8 ^= RAX; RAX = R8; RAX >>= 0x38; R8 ^= RAX; RAX = 0x239437FC18D83A9E; R8 ^= RAX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R10; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RAX + 0x11); RSP = 0x4CB24DAE2BD35C1F; RAX *= RSP; R8 *= RAX; return R8; } case 2: { R11 = global::module_base + 0x65E6; R9 = *(uint64_t*)(global::module_base + 0x6358219); RAX = RBX; RAX ^= R11; R8 += RAX; RAX = 0xA04060743EEEC81; R8 ^= RAX; RAX = R8; RAX >>= 0x20; R8 ^= RAX; R8 -= RBX; RAX = global::module_base; R8 ^= RAX; RAX = 0xCAA0FFD0709BBB87; R8 *= RAX; RAX = 0x3C1E90309C0BE784; R8 ^= RAX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R9; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); return R8; } case 3: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = 0x540D0AF5F4CDB74B; RAX *= R8; R8 = global::module_base; RAX ^= R8; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = _byteswap_uint64(RCX); if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11); R8 *= RAX; RAX = global::module_base; RAX += 0x770D; RAX += RBX; R8 ^= RAX; RAX = global::module_base; R8 ^= RAX; RAX = RBX + 0x1; RSP = global::module_base + 0xEB6C; RAX *= RSP; R8 += RAX; RAX = R8; RAX >>= 0x5; R8 ^= RAX; RAX = R8; RAX >>= 0xA; R8 ^= RAX; RAX = R8; RAX >>= 0x14; R8 ^= RAX; RAX = R8; RAX >>= 0x28; R8 ^= RAX; RAX = R8; RAX >>= 0x27; R8 ^= RAX; return R8; } case 4: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = global::module_base; RAX += R8; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = _byteswap_uint64(RCX); if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11); R8 *= RAX; RCX = global::module_base + 0xAD05; RAX = R8; RAX >>= 0x1A; R8 ^= RAX; RAX = R8; RAX >>= 0x34; R8 ^= RAX; RAX = global::module_base + 0x316BDF41; RAX -= RBX; R8 += RAX; RAX = 0x86DB83FC703A9029; R8 *= RAX; R8 ^= RBX; R8 ^= RCX; RAX = 0xFAA4F606C5BA248C; R8 ^= RAX; RAX = 0x28AE5E481A72B2B3; R8 *= RAX; return R8; } case 5: { R9 = *(uint64_t*)(global::module_base + 0x6358219); RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R9; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); RAX = R8 + RBX; R8 = 0x1395E21D03239025; RAX += R8; R8 = global::module_base; R8 += RAX; RAX = global::module_base; R8 ^= RAX; RAX = R8; RAX >>= 0x21; R8 ^= RAX; RAX = global::module_base + 0x8A9B; R8 += RBX; R8 += RAX; R8 ^= RBX; RAX = 0xDFB38FA8F07B7E79; R8 *= RAX; return R8; } case 6: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = R8; RAX >>= 0xF; R8 ^= RAX; RAX = R8; RAX >>= 0x1E; R8 ^= RAX; RAX = R8; RAX >>= 0x3C; R8 ^= RAX; RAX = global::module_base; R8 ^= RAX; RAX = 0x19B16A317394149D; R8 ^= RAX; RAX = 0x6E8320546EF271ED; R8 *= RAX; RAX = 0x27C46D7702E18107; R8 *= RAX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RCX ^= R10; RCX = _byteswap_uint64(RCX); if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RCX = *(uint64_t*)(RCX + 0x11); RCX *= R8; R8 = global::module_base + 0xDA3A; R8 *= RBX; R8 += RCX; RAX = global::module_base + 0x1463840C; RAX -= RBX; R8 += RAX; return R8; } case 7: { R11 = global::module_base + 0x1F57940D; R9 = *(uint64_t*)(global::module_base + 0x6358219); RAX = R8; RAX >>= 0x17; R8 ^= RAX; RAX = R8; RAX >>= 0x2E; R8 ^= RAX; RAX = R11; RAX = (~RAX); RAX += RBX; R8 ^= RAX; RAX = R8; RAX >>= 0x1C; R8 ^= RAX; RAX = R8; RAX >>= 0x38; R8 ^= RAX; RAX = R8; RAX >>= 0x17; R8 ^= RAX; RAX = R8; RAX >>= 0x2E; R8 ^= RAX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R9; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); RAX = 0xC6F4A95E4EEDD47F; R8 *= RAX; RAX = global::module_base; R8 -= RAX; RAX = 0xAB801A1C78E324AD; R8 ^= RAX; return R8; } case 8: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RCX = global::module_base + 0x3C70771D; RAX = global::module_base + 0x3548; RAX = (~RAX); RAX ^= RBX; R8 ^= RAX; R8 += RBX; R8 ^= RBX; RAX = 0xBD25B6162FFC4A37; R8 ^= RCX; R8 *= RAX; RAX = R8; RAX >>= 0x8; R8 ^= RAX; RAX = R8; RAX >>= 0x10; R8 ^= RAX; RAX = R8; RAX >>= 0x20; R8 ^= RAX; RCX = 0; // Special case RCX = _rotl64(RCX, 0x10); RAX = R8; RCX ^= R10; RAX -= RBX; RCX = _byteswap_uint64(RCX); if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11); RCX = global::module_base + 0x573BDED9; R8 *= RAX; RAX = RBX; RAX *= RCX; R8 ^= RAX; return R8; } case 9: { R9 = *(uint64_t*)(global::module_base + 0x6358219); RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R9; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); RAX = R8; RAX >>= 0xC; R8 ^= RAX; RAX = R8; RAX >>= 0x18; R8 ^= RAX; RAX = R8; RAX >>= 0x30; R8 ^= RAX; RAX = R8; RAX >>= 0x12; R8 ^= RAX; RAX = R8; RAX >>= 0x24; R8 ^= RAX; R8 += RBX; RAX = R8; RAX >>= 0x23; R8 ^= RAX; RAX = 0x7E3E416EF7F1D741; R8 *= RAX; RAX = 0xF617ED5B72E590DE; R8 ^= RAX; RAX = 0x818141D2E8EA7F6F; R8 *= RAX; return R8; } case 10: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = global::module_base; R8 ^= RAX; RAX = R8; RAX >>= 0x28; R8 ^= RAX; RAX = global::module_base; R8 -= RAX; RCX = 0; // Special case RAX = R8; RCX = _rotl64(RCX, 0x10); RAX >>= 0x20; RCX ^= R10; RAX ^= R8; RCX = _byteswap_uint64(RCX); if (is_bad_ptr((void*)(RCX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 = *(uint64_t*)(RCX + 0x11); R8 *= RAX; RAX = 0xF37BC628D4B58CF3; R8 *= RAX; RAX = 0x2A8C713B6A73DA4D; R8 += RAX; RAX = 0x7122022471FD76A7; R8 ^= RAX; return R8; } case 11: { R10 = *(uint64_t*)(global::module_base + 0x6358219); R11 = global::module_base + 0x2E006611; RAX = 0xC7B1BEFAE1F9E327; R8 *= RAX; R8 += R11; RCX = RBX; RCX = (~RCX); R8 += RCX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R10; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); R8 -= global::module_base; RAX = global::module_base; RAX += 0xEEE7; RAX += RBX; RAX ^= R8; R8 = RAX; RAX >>= 0x1A; R8 ^= RAX; RAX = R8; RAX >>= 0x34; R8 ^= RAX; R8 += RBX; RAX = global::module_base + 0x1E776935; RAX -= RBX; R8 ^= RAX; return R8; } case 12: { R9 = *(uint64_t*)(global::module_base + 0x6358219); RAX = R8; RAX >>= 0x11; R8 ^= RAX; RAX = R8; RAX >>= 0x22; R8 ^= RAX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R9; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); RAX = R8; RAX >>= 0x8; R8 ^= RAX; RAX = R8; RAX >>= 0x10; R8 ^= RAX; RAX = R8; RAX >>= 0x20; R8 ^= RAX; RAX = 0xD3A76E77D0439A87; R8 ^= RAX; RAX = R8; RAX >>= 0x17; R8 ^= RAX; RAX = R8; RAX >>= 0x2E; R8 ^= RAX; RAX = R8; RAX >>= 0x27; R8 ^= RAX; RAX = 0xE7C759589C81E2D1; R8 *= RAX; RAX = 0x92D8F3E599FB6C55; R8 *= RAX; return R8; } case 13: { R10 = *(uint64_t*)(global::module_base + 0x6358219); RAX = 0xEDE0ED52BA16A73B; R8 *= RAX; RAX = R8; RAX >>= 0x1C; R8 ^= RAX; RAX = R8; RAX >>= 0x38; R8 ^= RAX; R8 += RBX; RAX = 0x40F028F390F9B4DB; R8 *= RAX; R8 ^= RBX; RAX = global::module_base; R8 -= RAX; RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R10; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RAX = *(uint64_t*)(RAX + 0x11); R8 *= RAX; RAX = global::module_base; R8 ^= RAX; return R8; } case 14: { R9 = *(uint64_t*)(global::module_base + 0x6358219); RAX = 0; // Special case RAX = _rotl64(RAX, 0x10); RAX ^= R9; RAX = _byteswap_uint64(RAX); if (is_bad_ptr((void*)(RAX + 0x11))) return 0xFFFFFFFFFFFFFFFF; R8 *= *(uint64_t*)(RAX + 0x11); RAX = RBX; RBP = global::module_base + 0xA494; RAX ^= RBP; R8 += RAX; R8 ^= RBX; RAX = 0x44F06411130D8786; R8 -= RAX; RAX = RBX; RAX = (~RAX); RBP = global::module_base + 0x1F68E2F6; RAX ^= RBP; R8 -= RAX; RAX = 0x72F146FB8657DB4D; R8 *= RAX; RAX = R8; RAX >>= 0x15; R8 ^= RAX; RAX = R8; RAX >>= 0x2A; R8 ^= RAX; RAX = 0x25EA3844D16C50F1; R8 += RAX; return R8; } case 15: { R12 = global::module_base + 0x6ED429A4; R11 = *(uint64_t*)(global::module_base + 0x6358219); RAX = RBX; RAX *= R12; R8 -= RAX; RAX = 0x16E71D0785BF5E85; R8 *= RAX; RAX = 0x164272E1C98C0650; R8 -= RAX; RAX = R8; RAX >>= 0x26; R8 ^= RAX; RAX = R8; RAX >>= 0x12; R8 ^= RAX; RAX = R8; RAX >>= 0x24; RAX ^= R8; RDX = 0; // Special case RDX = _rotl64(RDX, 0x10); R8 = global::module_base + 0x253C; RDX ^= R11; RCX = RBX; RDX = _byteswap_uint64(RDX); RCX = (~RCX); if (is_bad_ptr((void*)(RDX + 0x11))) return 0xFFFFFFFFFFFFFFFF; RDX = *(uint64_t*)(RDX + 0x11); RDX *= RAX; R8 += RDX; R8 += RCX; RAX = R8; RAX >>= 0x13; R8 ^= RAX; RAX = R8; RAX >>= 0x26; R8 ^= RAX; return R8; } default: return 0; } } auto get_bone_index(uint32_t index) -> uint64_t { uint64_t RAX = 0, RBX = 0, RCX = 0, RDX = 0, R8 = 0, RDI = 0, R9 = 0, R10 = 0, R11 = 0, R12 = 0, R13 = 0, R14 = 0, RSI = 0, RSP = 0, RBP = 0; RBX = index; RCX = RBX * 0x13C8; RAX = 0x4F23479A4BA8FAB5; R11 = global::module_base; RAX = _umul128(RAX, RCX, &RDX); R10 = 0x33B1DA233CBB3105; RDX >>= 0xB; RAX = RDX * 0x19E1; RCX -= RAX; RAX = 0xF598CEFB88707C3D; R8 = RCX * 0x19E1; RAX = _umul128(RAX, R8, &RDX); RDX >>= 0xD; RAX = RDX * 0x215B; R8 -= RAX; RAX = 0xEA0EA0EA0EA0EA0F; RAX = _umul128(RAX, R8, &RDX); RAX = 0x948B0FCD6E9E0653; RDX >>= 0x5; RCX = RDX * 0x23; RAX = _umul128(RAX, R8, &RDX); RAX = R8; RAX -= RDX; RAX >>= 0x1; RAX += RDX; RAX >>= 0x8; RCX += RAX; RAX = RCX * 0x288; RCX = R8 * 0x28A; RCX -= RAX; RAX = *(uint16_t*)(RCX + R11 + 0x6362050); R8 = RAX * 0x13C8; RAX = R10; RAX = _umul128(RAX, R8, &RDX); RAX = R10; RDX >>= 0xA; RCX = RDX * 0x13CF; R8 -= RCX; R9 = R8 * 0x164B; RAX = _umul128(RAX, R9, &RDX); RDX >>= 0xA; RAX = RDX * 0x13CF; R9 -= RAX; RAX = 0x97B425ED097B425F; RAX = _umul128(RAX, R9, &RDX); RAX = 0x83C977AB2BEDD28F; RDX >>= 0x5; RCX = RDX * 0x36; RAX = _umul128(RAX, R9, &RDX); RAX = R9; RAX -= RDX; RAX >>= 0x1; RAX += RDX; RAX >>= 0x7; RCX += RAX; RAX = RCX * 0x152; RCX = R9 * 0x154; RCX -= RAX; RSI = *(uint16_t*)(RCX + R11 + 0x63678F0); return RSI; }}