// RustOffsets.com // date: 2026-04-13 15:37 UTC #pragma once #include namespace offsets { namespace il2cpp { inline constexpr std::uintptr_t get_handle = 0xE864C20; } // namespace il2cpp inline constexpr std::uintptr_t console_pointer = 0xE520980; inline constexpr std::uintptr_t convar_graphics_pointer = 0xE4E2C88; inline constexpr std::uintptr_t convar_admin_pointer = 0xE468B18; inline constexpr std::uintptr_t WorldOffset = 0x0; // [UNRESOLVED] inline constexpr std::uintptr_t PhysxOffset = 0x1C3B3D0; // engine internal inline constexpr std::uintptr_t PlayerEyes_c = 0xE4CAD60; inline constexpr std::uintptr_t HeldEntityClass = 0xE4CC950; inline constexpr std::uintptr_t convar_terrain_pointer = 0x0; namespace Graphic { inline constexpr std::uint32_t fov = 0xA8; inline constexpr std::uintptr_t Base = 0xE4E2C88; inline constexpr std::uint32_t StaticFields = 0xB8; } // namespace Graphic namespace Terrain { inline constexpr std::uint32_t StaticFields = 0xB8; inline constexpr std::uint32_t drawTreeDistance = 0x0; inline constexpr std::uint32_t drawGrassDistance = 0x0; } // namespace Terrain namespace ConsoleSystem { inline constexpr std::uint32_t static_fields = 0xB8; inline constexpr std::uint32_t wrapper_class = 0x78; inline constexpr std::uint32_t name = 0x30; inline constexpr std::uint32_t allowrunfromserver = 0x99; } // namespace ConsoleSystem namespace base_networkable { inline constexpr std::uintptr_t typeinfo = 0xE4AAA90; inline constexpr std::uint32_t static_fields = 0xB8; inline constexpr std::uint32_t client_entities = 0x28; inline constexpr std::uint32_t entity_list = 0x10; inline constexpr std::uint32_t buffer = 0x18; inline constexpr std::uint32_t entListBase = 0x10; inline constexpr std::uint32_t entLS = 0x18; inline constexpr std::uint32_t object_dictionary = 0x10; inline constexpr std::uint32_t entity_content = 0x10; inline constexpr std::uint32_t entity_size = 0x18; inline constexpr std::uint32_t buffer_list = 0x10; inline constexpr std::uint32_t prefabID = 0x30; inline constexpr std::uint32_t children = 0x40; inline constexpr std::uint32_t parent_entity = 0x70; } // namespace base_networkable namespace main_camera { inline constexpr std::uintptr_t typeinfo = 0xE4BACE8; inline constexpr std::uintptr_t static_fields = 0xB8; inline constexpr std::uintptr_t instance = 0x78; inline constexpr std::uintptr_t buffer = 0x10; inline constexpr std::uintptr_t wrapper_class = 0x78; inline constexpr std::uintptr_t parent_static_fields = 0x10; inline constexpr std::uint32_t matrix = 0x30C; inline constexpr std::uint32_t viewMatrix = 0x80; inline constexpr std::uint32_t projMatrix = 0xC0; inline constexpr std::uint32_t position = 0x454; inline constexpr std::uint32_t cullingMask = 0x43C; } // namespace main_camera namespace TOD_Sky { inline constexpr std::uintptr_t TOD_Sky_C = 0xE4C0E98; inline constexpr std::uintptr_t Class = 0xE4C0E98; inline constexpr std::uintptr_t static_fields = 0xB8; inline constexpr std::uintptr_t wrapper_class = 0x0; inline constexpr std::uintptr_t parent_static_fields = 0x10; inline constexpr std::uintptr_t unk = 0x20; inline constexpr std::uintptr_t instance = 0x68; inline constexpr std::uint32_t TOD_CycleParameters = 0x40; inline constexpr std::uint32_t TOD_AtmosphereParameters = 0x50; inline constexpr std::uint32_t TOD_DayParameters = 0x58; inline constexpr std::uint32_t TOD_NightParameters = 0x60; inline constexpr std::uint32_t TOD_SunParameters = 0x68; inline constexpr std::uint32_t TOD_MoonParameters = 0x70; inline constexpr std::uint32_t TOD_StarParameters = 0x78; inline constexpr std::uint32_t TOD_CloudParameters = 0x80; inline constexpr std::uint32_t TOD_LightParameters = 0x88; inline constexpr std::uint32_t TOD_FogParameters = 0x90; inline constexpr std::uint32_t TOD_AmbientParameters = 0x98; inline constexpr std::uint32_t TOD_ReflectionParameters = 0xA0; inline constexpr std::uint32_t TOD_Initialized = 0xA8; inline constexpr std::uint32_t TOD_Components = 0xB8; namespace Time { inline constexpr std::uint32_t ProgressTime = 0x24; inline constexpr std::uint32_t UseTimeCurve = 0x27; } // namespace Time namespace Components { inline constexpr std::uint32_t Time = 0x138; } // namespace Components namespace Cycle { inline constexpr std::uint32_t hour = 0x10; } // namespace Cycle namespace Night { inline constexpr std::uint32_t lightIntensity = 0x50; inline constexpr std::uint32_t ambientMultiplier = 0x60; inline constexpr std::uint32_t reflectionMultiplier = 0x64; } // namespace Night } // namespace TOD_Sky namespace BaseCombatEntity { inline constexpr std::uint32_t lifestate = 0x270; inline constexpr std::uint32_t model = 0xF0; inline constexpr std::uint32_t _health = 0x278; inline constexpr std::uint32_t _maxHealth = 0x208; } // namespace BaseCombatEntity namespace BasePlayer { inline constexpr std::uint32_t playerFlags = 0x630; inline constexpr std::uint32_t clothingBlocksAiming = 0x714; inline constexpr std::uint32_t clothingMoveSpeedReduction = 0x718; inline constexpr std::uint32_t CameraMode = 0x3D0; inline constexpr std::uint32_t BaseMovement = 0x4A0; inline constexpr std::uint32_t ModelState = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t displayName_ = 0x668; inline constexpr std::uint32_t playername = 0x668; inline constexpr std::uint32_t playerModel = 0x500; inline constexpr std::uint32_t cl_active_item = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t clActiveItem = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t player_inventory = 0x300; inline constexpr std::uint32_t playerInventory = 0x300; inline constexpr std::uint32_t playerInput = 0x700; inline constexpr std::uint32_t player_eyes = 0x2C8; inline constexpr std::uint32_t username = 0x668; inline constexpr std::uint32_t team = 0x4B8; inline constexpr std::uint32_t Visible = 0x170; inline constexpr std::uint32_t Visible1 = 0x172; inline constexpr std::uint32_t currentTeam = 0x4B8; inline constexpr std::uint32_t userId = 0x0; // [UNRESOLVED] inline constexpr std::uintptr_t VisiblePlayerList = 0x600; inline constexpr std::uint32_t lifestate = 0x270; inline constexpr std::uint32_t metabolism = 0x588; inline constexpr std::uint32_t blueprints = 0x2F0; } // namespace BasePlayer namespace BaseProjectile { inline constexpr std::uint32_t recoilProperties = 0x3A8; inline constexpr std::uint32_t recoilProp = 0x3A8; inline constexpr std::uint32_t automatic = 0x338; inline constexpr std::uint32_t isBurstWeapon = 0x3DF; inline constexpr std::uint32_t internalBurstFireRateScale = 0x3E8; inline constexpr std::uint32_t viewModel = 0x268; inline constexpr std::uint32_t is_reloading = 0x0; // obfuscated — find via IDA inline constexpr std::uint32_t reloadDuration = 0x378; inline constexpr std::uint32_t primaryMagazine = 0x380; inline constexpr std::uint32_t sightAimConeScale = 0x3B0; inline constexpr std::uint32_t hipAimConeScale = 0x0; // obfuscated inline constexpr std::uint32_t projectileVelocityScale = 0x334; inline constexpr std::uint32_t NoiseRadius = 0x328; inline constexpr std::uint32_t damageScale = 0x32C; inline constexpr std::uint32_t distanceScale = 0x330; inline constexpr std::uint32_t usableByTurret = 0x339; inline constexpr std::uint32_t turretDamageScale = 0x33C; inline constexpr std::uint32_t reloadTime = 0x378; inline constexpr std::uint32_t canUnloadAmmo = 0x37C; inline constexpr std::uint32_t fractionalReload = 0x388; inline constexpr std::uint32_t aimSway = 0x3A0; inline constexpr std::uint32_t aimSwaySpeed = 0x3A4; inline constexpr std::uint32_t aimconeCurve = 0x3B0; inline constexpr std::uint32_t aimCone = 0x3B8; inline constexpr std::uint32_t hipAimCone = 0x3BC; inline constexpr std::uint32_t aimconePenaltyPerShot = 0x3C0; inline constexpr std::uint32_t aimConePenaltyMax = 0x3C4; inline constexpr std::uint32_t stancePenaltyScale = 0x3D0; inline constexpr std::uint32_t hasADS = 0x3D4; inline constexpr std::uint32_t noAimingWhileCycling = 0x3D5; inline constexpr std::uint32_t manualCycle = 0x3D6; inline constexpr std::uint32_t aiming = 0x0; // obfuscated inline constexpr std::uint32_t internalBurstRecoilScale = 0x3E4; inline constexpr std::uint32_t internalBurstAimConeScale = 0x3EC; inline constexpr std::uint32_t numShotsFired = 0x3F4; inline constexpr std::uint32_t repeatDelay = 0x294; inline constexpr std::uint32_t deployDelay = 0x290; inline constexpr std::uint32_t noHeadshots = 0x2E6; inline constexpr std::uint32_t canChangeFireModes = 0x3E0; namespace viewModels { inline constexpr std::uint32_t baseviewModel = 0x28; namespace baseViewModel { inline constexpr std::uint32_t Animator = 0xE8; inline constexpr std::uint32_t ViewmodelBob = 0xD8; inline constexpr std::uint32_t viewmodelSway = 0x88; inline constexpr std::uint32_t viewmodelLower = 0xF0; namespace ViewmodelLower { inline constexpr std::uint32_t lowerOnSprint = 0x20; inline constexpr std::uint32_t lowerWhenCantAttack = 0x21; inline constexpr std::uint32_t shouldLower = 0x28; } // namespace ViewmodelLower namespace ViewmodelSway { inline constexpr std::uint32_t positionalSwaySpeed = 0x20; inline constexpr std::uint32_t rotationSwayAmount = 0x2C; } // namespace ViewmodelSway namespace viewmodelBob { inline constexpr std::uint32_t bobAmountRun = 0x2C; inline constexpr std::uint32_t bobAmountWalk = 0x28; inline constexpr std::uint32_t bobSpeedRun = 0x24; inline constexpr std::uint32_t bobSpeedWalk = 0x20; } // namespace viewmodelBob } // namespace baseViewModel } // namespace viewModels } // namespace BaseProjectile namespace RecoilProperties { inline constexpr std::uint32_t newRecoilOverride = 0x80; inline constexpr std::uint32_t movementPenalty = 0x34; inline constexpr std::uint32_t recoilYawMin = 0x18; inline constexpr std::uint32_t recoilYawMax = 0x1C; inline constexpr std::uint32_t recoilPitchMin = 0x20; inline constexpr std::uint32_t recoilPitchMax = 0x24; inline constexpr std::uint32_t aimconeCurveScale = 0x60; } // namespace RecoilProperties namespace PlayerInput { inline constexpr std::uint32_t bodyAngles = 0x44; } // namespace PlayerInput namespace PlayerEyes { inline constexpr std::uint32_t viewOffset = 0x40; inline constexpr std::uint32_t bodyRotation = 0x50; inline constexpr std::uint32_t eyeRotation = 0x0; inline constexpr std::uint32_t eye_offset = 0x28; inline constexpr std::uint32_t unkQuaternion = 0x6C; // verify per build } // namespace PlayerEyes namespace ItemContainer { inline constexpr std::uint32_t list = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t capacity = 0x18; } // namespace ItemContainer namespace PlayerInventory { inline constexpr std::uint32_t container1 = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t container2 = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t container3 = 0x0; // [UNRESOLVED] } // namespace PlayerInventory namespace Item { inline constexpr std::uint32_t itemDefinition = 0x0; // [UNRESOLVED] inline constexpr std::uint32_t itemUid = 0x10; // encrypted ulong inline constexpr std::uint32_t itemUid2 = 0x18; // test / verify per build inline constexpr std::uint32_t itemUid3 = 0x28; // test / verify per build inline constexpr std::uint32_t itemUid4 = 0xC4; // test / verify per build inline constexpr std::uint32_t heldEntity = 0x30; inline constexpr std::uint32_t heldEntity2 = 0x58; inline constexpr std::uint32_t maxHealth = 0x90; inline constexpr std::uint32_t health = 0x84; inline constexpr std::uint32_t amount = 0x94; inline constexpr std::uint32_t parentContainer = 0x78; } // namespace Item namespace BaseProjectileExploits { inline constexpr bool automatic = 0x338; inline constexpr std::uint32_t FlintStrikeWeapon = 0x460; inline constexpr std::uint32_t DidShitTick = 0x468; } // namespace BaseProjectileExploits namespace ItemDefinition { inline constexpr std::uint32_t ItemDisplayName = 0x40; inline constexpr std::uint32_t ShortName = 0x28; inline constexpr std::uint32_t ItemDisplayEnglish = 0x20; inline constexpr std::uint32_t category = 0x58; inline constexpr std::uint32_t itemid = 0x20; inline constexpr std::uint32_t itemMods = 0x178; } // namespace ItemDefinition namespace PlayerModel { inline constexpr std::uint32_t HeadBone = 0x48; inline constexpr std::uint32_t BoneTransforms = 0x60; inline constexpr std::uint32_t position = 0x1F8; inline constexpr std::uint32_t SkinnedMultiMesh = 0x1F0; inline constexpr std::uint32_t SkinnedRenderersList = 0x3B0; inline constexpr std::uint32_t new_velocity = 0x0; inline constexpr std::uint32_t velocity = 0x21C; inline constexpr std::uint32_t rotation = 0x228; inline constexpr std::uint32_t isVisible = 0x94; inline constexpr std::uint32_t InGesture = 0x1E8; inline constexpr std::uint32_t CurrentGestureConfig = 0x370; inline constexpr std::uint32_t IsNpc = 0x3DD; } // namespace PlayerModel namespace GestureConfig { inline constexpr std::uint32_t PlayerModelLayer = 0x68; } // namespace GestureConfig namespace Projectile { inline constexpr std::uint32_t drag = 0x34; inline constexpr std::uint32_t gravityModifier = 0x38; inline constexpr std::uint32_t mod = 0x1D0; inline constexpr std::uint32_t thickness = 0x3C; inline constexpr std::uint32_t currentVelocity = 0x28; inline constexpr std::uint32_t currentPosition = 0x48; inline constexpr std::uint32_t sentPosition = 0x178; inline constexpr std::uint32_t owner = 0x110; inline constexpr std::uint32_t itemModProjectile = 0x110; } // namespace Projectile namespace ItemModProjectile { inline constexpr std::uint32_t projectileVelocity = 0x40; inline constexpr std::uint32_t projectileSpread = 0x3C; } // namespace ItemModProjectile namespace Magazine { inline constexpr std::uint32_t definition = 0x10; inline constexpr std::uint32_t Capacity = 0x18; inline constexpr std::uint32_t Contents = 0x1C; inline constexpr std::uint32_t ammoType = 0x20; } // namespace Magazine namespace CompoundBowWeapon { inline constexpr std::uint32_t stringHoldDurationMax = 0x478; inline constexpr std::uint32_t stringBonusVelocity = 0x484; inline constexpr std::uint32_t currentHoldProgress = 0x47C; } // namespace CompoundBowWeapon namespace ModelState { inline constexpr std::uint32_t flags = 0x5C; inline constexpr std::uint32_t Ducked = 0x1; inline constexpr std::uint32_t Jumped = 0x2; inline constexpr std::uint32_t OnGround = 0x4; inline constexpr std::uint32_t Sleeping = 0x8; inline constexpr std::uint32_t Sprinting = 0x10; inline constexpr std::uint32_t OnLadder = 0x20; inline constexpr std::uint32_t Flying = 0x40; inline constexpr std::uint32_t Aiming = 0x80; } // namespace ModelState namespace PlayerLoot { inline constexpr std::uint32_t loot = 0x48; inline constexpr std::uint32_t entitySource = 0x28; } // namespace PlayerLoot namespace PlayerFlags { inline constexpr std::uint32_t IsAdmin = 0x4; inline constexpr std::uint32_t Sleeping = 0x10; inline constexpr std::uint32_t Wounded = 0x40; inline constexpr std::uint32_t NoSprint = 0x2000; } // namespace PlayerFlags namespace PlayerWalkMovement { inline constexpr std::uint32_t spiderman = 0x214; } // namespace PlayerWalkMovement namespace BaseMelee { inline constexpr std::uint32_t maxDistance = 0x340; inline constexpr std::uint32_t attackRadius = 0x344; inline constexpr std::uint32_t blockSprintOnAttack = 0x349; } // namespace BaseMelee namespace HeldEntity { inline constexpr std::uint32_t ownerItemUID = 0x224; inline constexpr std::uint32_t viewModel = 0x268; inline constexpr std::uint32_t list = 0x218; inline constexpr std::uint32_t items = 0x90; } // namespace HeldEntity namespace ViewModel { inline constexpr std::uint32_t instance = 0x28; } // namespace ViewModel namespace BaseViewModel { inline constexpr std::uintptr_t BaseViewModel_C = 0xE4C82B0; inline constexpr std::uint32_t useViewModelCamera = 0x40; inline constexpr std::uint32_t model = 0xB8; inline constexpr std::uint32_t ironSights = 0x98; inline constexpr std::uint32_t lower = 0xF0; inline constexpr std::uint32_t viewmodelBob = 0xD8; inline constexpr std::uint32_t viewmodelSway = 0x88; inline constexpr std::uint32_t animationEvents = 0x80; inline constexpr std::uint32_t list = 0x188; // verify per build inline constexpr std::uint32_t ViewmodelPunch = 0xD0; inline constexpr std::uint32_t instanse = 0x98; inline constexpr std::uint32_t targetEntity = 0x28; } // namespace BaseViewModel namespace HackableLockedCrate { inline constexpr std::uint32_t timerText = 0x3D8; } // namespace HackableLockedCrate namespace Text { inline constexpr std::uint32_t m_Text = 0xD8; } // namespace Text namespace Renderer { inline constexpr std::uint32_t materialList = 0x148; } // namespace Renderer namespace BuildingBlock { inline constexpr std::uint32_t grade = 0x330; } // namespace BuildingBlock namespace BaseEntity { inline constexpr std::uint32_t model = 0xF0; inline constexpr std::uint32_t SkinnedMultiMesh = 0x3E0; inline constexpr std::uint32_t position = 0x1F8; inline constexpr std::uint32_t Visible = 0x191; } // namespace BaseEntity namespace Entity { inline constexpr std::uint32_t baseObject = 0x10; inline constexpr std::uint32_t entityObject = 0x30; inline constexpr std::uint32_t transform = 0x8; inline constexpr std::uint32_t visualState = 0x38; inline constexpr std::uint32_t position = 0x1F8; inline constexpr std::uint32_t rotation = 0xA0; inline constexpr std::uint32_t prefabId = 0x30; } // namespace Entity namespace Model { inline constexpr std::uint32_t boneTransforms = 0x50; inline constexpr std::uint32_t rootBone = 0x28; inline constexpr std::uint32_t headBone = 0x30; inline constexpr std::uint32_t eyeBone = 0x38; inline constexpr std::uint32_t skeleton = 0x48; inline constexpr std::uint32_t bonePosition = 0x90; } // namespace Model namespace TranslatePhrase { inline constexpr std::uint32_t legacyEnglish = 0x20; inline constexpr std::uint32_t english = 0x20; inline constexpr std::uint32_t legacyEnglish2 = 0x18; } // namespace TranslatePhrase namespace FlintStrikeWeapon { inline constexpr std::uint32_t successFraction = 0x460; inline constexpr std::uint32_t didSparkThisFrame = 0x468; } // namespace FlintStrikeWeapon namespace ListComponent_Projectile { inline constexpr std::uintptr_t ListComponent_C = 0xE470340; inline constexpr std::uint32_t static_fields = 0xB8; inline constexpr std::uint32_t parent_static = 0x10; inline constexpr std::uint32_t buffer = 0x10; } // namespace ListComponent_Projectile namespace SkinnedMultiMesh { inline constexpr std::uint32_t rendererList = 0x40; } // namespace SkinnedMultiMesh namespace World { inline constexpr std::uint32_t seed = 0x60; inline constexpr std::uint32_t size = 0x60; } // namespace World namespace GameManager { inline constexpr std::uintptr_t Class = 0xE52E6A8; inline constexpr std::uint32_t instance = 0x38; inline constexpr std::uint32_t prefab_pool_collection = 0x10; } // namespace GameManager namespace decryptions { // ============================================================ // offsets::decryptions — emitted inside namespace offsets in offsets.hpp // Requires: driver.read(addr), decryptIl2cppHandle(uintptr_t) // (see manual_overrides.json "decrypt_rvas" for RVA overrides) // ============================================================ // decrypt block auto-generated // function: client_entities inline std::uintptr_t client_entities(std::uintptr_t a1) { std::uint32_t eax = 0, ecx = 0, r14d = 0; // initialize 32-bit registers std::uintptr_t rax = 0, rbx = 0, rdi = 0, rcx = a1; // initialize 64-bit registers rbx = 0; // push/pop rbx handled by compiler rdi = rcx; // mov rdi, rcx // unhandled: cmp qword ptr [rdx+0x38], 0 / conditional jumps r14d = 0; // xor r14d, r14d // unhandled: cmp [rdi+0x14], r14b / conditional jump rax = driver.read(rdi + 0x0); // mov rax, [rdi+0x0] std::uint32_t* rdx = (std::uint32_t*)&rax; // rdx points to data r8d = 0x02; // mov r8d, 0x02 do { // start of loop rax = *( std::uintptr_t* ) ( rdx ); // mov rax, *( std::uintptr_t* ) ( rdx ) rcx = rax; // mov rcx, rax r8d -= 0x01; // sub r8d, 0x01 } while(r8d); // end of loop return decryptIl2cppHandle(rax); } // decrypt block auto-generated // function: entity_list inline std::uintptr_t entity_list(std::uintptr_t a1) { std::uint32_t eax = 0, ecx = 0, r14d = 0; // initialize 32-bit registers std::uintptr_t rcx = 0, rbx = 0, rdi = 0, rcx = a1; // initialize 64-bit registers rbx = 0; // push/pop rbx handled by compiler rdi = rcx; // mov rdi, rcx // unhandled: cmp qword ptr [rdx+0x38], 0 / conditional jumps r14d = 0; // xor r14d, r14d // unhandled: cmp [rdi+0x14], r14b / conditional jump rcx = driver.read(rdi + 0x10); // mov rcx, [rdi+0x10] std::uint32_t* rdx = (std::uint32_t*)&rcx; // rdx points to data r8d = 0x02; // mov r8d, 0x02 do { // start of loop rax = *( std::uintptr_t* ) ( rdx ); // mov rax, *( std::uintptr_t* ) ( rdx ) rcx = rax; // mov rcx, rax r8d -= 0x01; // sub r8d, 0x01 } while(r8d); // end of loop return decryptIl2cppHandle(rcx); } // decrypt block auto-generated // function: cl_active_item inline std::uintptr_t cl_active_item(std::uintptr_t a1) { std::uint32_t eax = 0, ecx = 0, r14d = 0; // initialize 32-bit registers std::uintptr_t rdi = 0, rbx = 0, rdi = 0, rcx = a1; // initialize 64-bit registers rbx = 0; // push/pop rbx handled by compiler rdi = rcx; // mov rdi, rcx // unhandled: cmp qword ptr [rdx+0x38], 0 / conditional jumps r14d = 0; // xor r14d, r14d // unhandled: cmp [rdi+0x14], r14b / conditional jump rdi = driver.read(rdi + 0x0); // mov rdi, [rdi+0x0] std::uint32_t* rdx = (std::uint32_t*)&rdi; // rdx points to data edx = 0x06; // mov edx, 0x06 do { // start of loop rax = *( std::uintptr_t* ) ( (std::uint8_t*)rdx + 0x462E0 ); // mov rax, *( std::uintptr_t* ) ( (std::uint8_t*)rdx + 0x462E0 ) rcx = rax; // mov rcx, rax edx -= 0x01; // sub edx, 0x01 } while(edx); // end of loop return rdi; // in-place decrypt (raw) } // decrypt block auto-generated // function: player_inventory inline std::uintptr_t player_inventory(std::uintptr_t a1) { std::uint32_t eax = 0, ecx = 0, r14d = 0; // initialize 32-bit registers std::uintptr_t rax = 0, rbx = 0, rdi = 0, rcx = a1; // initialize 64-bit registers rbx = 0; // push/pop rbx handled by compiler rdi = rcx; // mov rdi, rcx // unhandled: cmp qword ptr [rdx+0x38], 0 / conditional jumps r14d = 0; // xor r14d, r14d // unhandled: cmp [rdi+0x14], r14b / conditional jump rax = driver.read(rdi + 0x0); // mov rax, [rdi+0x0] std::uint32_t* r9 = (std::uint32_t*)&rax; // r9 points to data r8d = 0x02; // mov r8d, 0x02 do { // start of loop rax = *( std::uintptr_t* ) ( r9 ); // mov rax, *( std::uintptr_t* ) ( r9 ) rcx = rax; // mov rcx, rax r8d -= 0x01; // sub r8d, 0x01 } while(r8d); // end of loop return decryptIl2cppHandle(rax); } // decrypt block auto-generated // function: player_eyes inline std::uintptr_t player_eyes(std::uintptr_t a1) { std::uint32_t eax = 0, ecx = 0, r14d = 0; // initialize 32-bit registers std::uintptr_t rcx = 0, rbx = 0, rdi = 0, rcx = a1; // initialize 64-bit registers rbx = 0; // push/pop rbx handled by compiler rdi = rcx; // mov rdi, rcx // unhandled: cmp qword ptr [rdx+0x38], 0 / conditional jumps r14d = 0; // xor r14d, r14d // unhandled: cmp [rdi+0x14], r14b / conditional jump rcx = driver.read(rdi + 0x10); // mov rcx, [rdi+0x10] std::uint32_t* rdx = (std::uint32_t*)&rcx; // rdx points to data r8d = 0x02; // mov r8d, 0x02 do { // start of loop rax = *( std::uintptr_t* ) ( rdx ); // mov rax, *( std::uintptr_t* ) ( rdx ) rcx = rax; // mov rcx, rax r8d -= 0x01; // sub r8d, 0x01 } while(r8d); // end of loop return decryptIl2cppHandle(rcx); } } // namespace decryptions } // namespace offsets