25214240

4:00pm (EST) · updated 2026-09-12 01:42 UTC

Base globals

inline static constexpr uintptr_t il2cpphandle               = 0x11DB2E30; // rust-free handle TABLE
inline static constexpr uintptr_t il2cpp_gchandle_get_target =   0x87BF40; // export
inline static constexpr uintptr_t StringPool                 = 0x11934108;

struct rust_globals {
    inline static constexpr uintptr_t il2cpphandle                 = 0x11DB2E30; // GameAssembly.dll RVA, handle TABLE
    inline static constexpr uintptr_t gchandle_get_target          =   0x87BF40; // il2cpp export
    inline static constexpr uintptr_t base_networkable_static      = 0x118D4020;
    inline static constexpr uintptr_t main_camera_c                = 0x118B4098;
    inline static constexpr uintptr_t convar_graphics              = 0x118B0BB8;
    inline static constexpr uintptr_t local_player_static          = 0x118D5308;
};

GameAssembly

namespace GameAssembly {
    inline static constexpr uintptr_t il2cpp_resolve_icall              = 0x87AAD0;
    inline static constexpr uintptr_t il2cpp_array_new                  = 0x87AAF0;
    inline static constexpr uintptr_t il2cpp_class_from_name            = 0x864CE0;
    inline static constexpr uintptr_t il2cpp_class_get_type             = 0x75AF20;
    inline static constexpr uintptr_t il2cpp_domain_get                 = 0x87B810;
    inline static constexpr uintptr_t il2cpp_domain_get_assemblies      = 0x87B830;
    inline static constexpr uintptr_t il2cpp_gchandle_get_target        = 0x87BF40;
    inline static constexpr uintptr_t il2cpp_gchandle_new               = 0x87BEF0;
    inline static constexpr uintptr_t il2cpp_gchandle_free              = 0x87BFE0;
    inline static constexpr uintptr_t il2cpp_object_new                 = 0x87C880;
    inline static constexpr uintptr_t il2cpp_type_get_object            = 0x87D960;
    inline static constexpr uintptr_t il2cpp_string_new                 = 0x87C9A0;
}

il2cpp exports

struct il2cpp_api {
    inline static constexpr uintptr_t domain_get                      = 0x87B810;
    inline static constexpr uintptr_t domain_get_assemblies           = 0x87B830;
    inline static constexpr uintptr_t domain_assembly_open            = 0x87B820;
    inline static constexpr uintptr_t class_from_name                 = 0x864CE0;
    inline static constexpr uintptr_t image_get_class_count           =  0x12640;
    inline static constexpr uintptr_t image_get_class                 = 0x87DC40;
    inline static constexpr uintptr_t class_get_methods               = 0x87AE60;
    inline static constexpr uintptr_t class_get_fields                = 0x87AC10;
    inline static constexpr uintptr_t class_get_nested_types          = 0x87AC90;
    inline static constexpr uintptr_t class_get_type                  = 0x75AF20;
    inline static constexpr uintptr_t class_get_parent                =  0x22F70;
    inline static constexpr uintptr_t class_get_flags                 = 0x87AF40;
    inline static constexpr uintptr_t class_from_il2cpp_type          = 0x87ABF0;
    inline static constexpr uintptr_t type_get_object                 = 0x87D960;
    inline static constexpr uintptr_t type_get_name                   = 0x87D9B0;
    inline static constexpr uintptr_t method_get_param_count          = 0x87C4B0;
    inline static constexpr uintptr_t method_get_param                = 0x87C4C0;
    inline static constexpr uintptr_t method_get_flags                = 0x87C570;
    inline static constexpr uintptr_t field_get_offset                = 0x80A9C0;
    inline static constexpr uintptr_t field_get_type                  = 0x4744F0;
    inline static constexpr uintptr_t field_get_flags                 = 0x87BAB0;
    inline static constexpr uintptr_t field_static_get_value          = 0x87BC10;
    inline static constexpr uintptr_t object_new                      = 0x87C880;
    inline static constexpr uintptr_t resolve_icall                   = 0x87AAD0;
    inline static constexpr uintptr_t gchandle_get_target             = 0x87BF40;
    inline static constexpr uintptr_t gchandle_new                    = 0x87BEF0;
    inline static constexpr uintptr_t gchandle_free                   = 0x87BFE0;
    inline static constexpr uintptr_t array_new                       = 0x87AAF0;
    inline static constexpr uintptr_t string_new                      = 0x87C9A0;
};

klass layout

namespace klass_layout {
    inline static constexpr uintptr_t name_ptr      = 0x10;
    inline static constexpr uintptr_t static_fields = 0xB8;
}

base networkable

namespace base_networkable {
    inline static constexpr uintptr_t base_networkable           = 0x118D4020;
    inline static constexpr uintptr_t static_fields              =       0xB8;
    inline static constexpr uintptr_t wrapper_class_ptr          =        0x8;
    inline static constexpr uintptr_t parent_static_fields       =       0x10;
    inline static constexpr uintptr_t hv_offset                  =       0x18;
    inline static constexpr uintptr_t entity_list                =       0x10; // EntityRealm.entityList
    inline static constexpr uintptr_t entities                   =       0x10; // BufferList.buffer
    inline static constexpr uintptr_t buffer_list_array          =       0x10;
    inline static constexpr uintptr_t buffer_list_size           =       0x18;
    inline static constexpr uintptr_t list_dictionary_vals       =       0x20;
    inline static constexpr uintptr_t entity                     =       0x10;
    inline static constexpr uintptr_t buffer                     =       0x10;
    inline static constexpr uintptr_t prefabID                   =       0x54;
    inline static constexpr uintptr_t parentEntity               =       0x38;
    inline static constexpr uintptr_t children                   =       0x70;
    inline static constexpr uintptr_t net                        =       0x70;
}

camera

namespace camera {
    inline static constexpr uintptr_t main_camera          = 0x118B4098;
    inline static constexpr uintptr_t camera_static        =       0xB8;
    inline static constexpr uintptr_t static_fields        =       0xB8;
    inline static constexpr uintptr_t camera_object        =        0x8;
    inline static constexpr uintptr_t instance             =        0x8;
    inline static constexpr uintptr_t buffer               =        0x8;
    inline static constexpr uintptr_t entity               =       0x10;
    inline static constexpr uintptr_t position             =      0x444;
    inline static constexpr uintptr_t viewMatrix           =      0x2FC;
    inline static constexpr uintptr_t fieldOfView          =      0x170;
    inline static constexpr uintptr_t aspect               =      0x130;
    inline static constexpr uintptr_t worldToCameraMatrix  =       0x70;
    inline static constexpr uintptr_t cullingMask          =      0x104;
    inline static constexpr uintptr_t main_camera_c        = 0x118B4098;
    inline static constexpr uintptr_t view_matrix          =      0x2FC;
    inline static constexpr uintptr_t field_of_view        =      0x170;
}

BasePlayer

namespace BasePlayer {
    inline static constexpr uintptr_t clActiveItem               = 0x588;
    inline static constexpr uintptr_t PlayerEyes                 = 0x7A0;
    inline static constexpr uintptr_t PlayerInventory            = 0x7A8;
    inline static constexpr uintptr_t current_team               = 0x558;
    inline static constexpr uintptr_t movement                   = 0x540;
    inline static constexpr uintptr_t player_model               = 0x5B8;
    inline static constexpr uintptr_t playerFlags                = 0x6D8;
    inline static constexpr uintptr_t userID                     = 0x720;
    inline static constexpr uintptr_t userIDString               = 0x3F8;
    inline static constexpr uintptr_t display_name               = 0x300;
    inline static constexpr uintptr_t player_input               = 0x518;
    inline static constexpr uintptr_t modelState                 = 0x4B0;
    inline static constexpr uintptr_t mounted                    = 0x5E0;
    inline static constexpr uintptr_t Belt                       = 0x438;
    inline static constexpr uintptr_t _lookingAt                 = 0x400;
    inline static constexpr uintptr_t weaponMoveSpeedScale       = 0x7B8;
    inline static constexpr uintptr_t clothingBlocksAiming       = 0x7BC;
    inline static constexpr uintptr_t clothingMoveSpeedReduction = 0x7C0;
    inline static constexpr uintptr_t clothingWaterSpeedBonus    = 0x7C4;
    inline static constexpr uintptr_t player_rigidbody           = 0x650;
    inline static constexpr uintptr_t frozen                     = 0x398;
    inline static constexpr uintptr_t currentGesture             = 0x308;
    inline static constexpr uintptr_t lastSentTick               = 0x5C8;
    inline static constexpr uintptr_t lastSentTickTime           = 0x698;
    inline static constexpr uintptr_t metabolism                 = 0x710;
    inline static constexpr uintptr_t blueprints                 = 0x708;
    inline static constexpr uintptr_t cl_active_item             = 0x588;
    inline static constexpr uintptr_t player_eyes                = 0x7A0;
    inline static constexpr uintptr_t player_inventory           = 0x7A8;
    inline static constexpr uintptr_t player_flags               = 0x6D8;
    inline static constexpr uintptr_t model_state                = 0x4B0;
    inline static constexpr uintptr_t base_movement              = 0x540;
}

BaseCombatEntity

namespace BaseCombatEntity {
    inline static constexpr uintptr_t skeletonProperties  = 0x230;
    inline static constexpr uintptr_t baseProtection      = 0x238;
    inline static constexpr uintptr_t lifestate           = 0x2A8;
    inline static constexpr uintptr_t markAttackerHostile = 0x2AE;
    inline static constexpr uintptr_t model               = 0x1B8;
    inline static constexpr uintptr_t startHealth         = 0x240;
    inline static constexpr uintptr_t _health             = 0x2B4;
    inline static constexpr uintptr_t _maxHealth          = 0x2B8;
}

BaseEntity

namespace BaseEntity {
    inline static constexpr uintptr_t bounds       = 0x18C;
    inline static constexpr uintptr_t model        = 0x1B8;
    inline static constexpr uintptr_t flags        = 0x1C0;
    inline static constexpr uintptr_t triggers     = 0x138;
    inline static constexpr uintptr_t positionLerp = 0xE8;
}

BaseEntityFlags

namespace BaseEntityFlags {
    inline static constexpr uintptr_t Placeholder =   0x1;
    inline static constexpr uintptr_t On          =   0x2;
    inline static constexpr uintptr_t OnFire      =   0x4;
    inline static constexpr uintptr_t Open        =   0x8;
    inline static constexpr uintptr_t Locked      =  0x10;
    inline static constexpr uintptr_t Debugging   =  0x20;
    inline static constexpr uintptr_t Disabled    =  0x40;
    inline static constexpr uintptr_t Reserved1   =  0x80;
    inline static constexpr uintptr_t Reserved2   = 0x100;
    inline static constexpr uintptr_t Reserved3   = 0x200;
    inline static constexpr uintptr_t Reserved4   = 0x400;
    inline static constexpr uintptr_t Reserved5   = 0x800;
}

base player flags

namespace base_player_flags {
    inline static constexpr uintptr_t Unused1             =   0x1;
    inline static constexpr uintptr_t Unused2             =   0x2;
    inline static constexpr uintptr_t IsAdmin             =   0x4;
    inline static constexpr uintptr_t ReceivingSnapshot   =   0x8;
    inline static constexpr uintptr_t Sleeping            =  0x10;
    inline static constexpr uintptr_t Spectating          =  0x20;
    inline static constexpr uintptr_t Wounded             =  0x40;
    inline static constexpr uintptr_t IsDeveloper         =  0x80;
    inline static constexpr uintptr_t Connected           = 0x100;
    inline static constexpr uintptr_t ThirdPersonViewmode = 0x400;
}

ModelState

namespace ModelState {
    inline static constexpr uintptr_t flags      = 0x1C;
    inline static constexpr uintptr_t waterLevel = 0x40;
    inline static constexpr uintptr_t lookDir    = 0x60;
}

modelstate flags

namespace modelstate_flags {
    inline static constexpr uintptr_t ducked       =    0x1;
    inline static constexpr uintptr_t jumped       =    0x2;
    inline static constexpr uintptr_t sprinting    =   0x10;
    inline static constexpr uintptr_t onLadder     =   0x20;
    inline static constexpr uintptr_t aiming       =   0x80;
    inline static constexpr uintptr_t crawling     = 0x1000;
    inline static constexpr uintptr_t hasParachute = 0x8000;
    inline static constexpr uintptr_t Flying       =   0x40;
    inline static constexpr uintptr_t Sleeping     =    0x8;
    inline static constexpr uintptr_t Mounted      =  0x200;
    inline static constexpr uintptr_t OnGround     =    0x4;
}

ItemContainer

namespace ItemContainer {
    inline static constexpr uintptr_t ItemList  = 0x68;
    inline static constexpr uintptr_t itemCount = 0x18;
    inline static constexpr uintptr_t flags     = 0x74;
    inline static constexpr uintptr_t uid       = 0x48;
}

ItemDefinition

namespace ItemDefinition {
    inline static constexpr uintptr_t itemid      = 0x20;
    inline static constexpr uintptr_t shortname   = 0x28;
    inline static constexpr uintptr_t displayName = 0x40;
    inline static constexpr uintptr_t category    = 0x58;
    inline static constexpr uintptr_t stackable   = 0x78;
    inline static constexpr uintptr_t iconSprite  = 0x50;
    inline static constexpr uintptr_t rarity      = 0x94;
    inline static constexpr uintptr_t condition   = 0xB8;
}

item

namespace item {
    inline static constexpr uintptr_t info         = 0x28;
    inline static constexpr uintptr_t amount       = 0x8C;
    inline static constexpr uintptr_t uid          = 0xD0;
    inline static constexpr uintptr_t heldEntity   = 0x90;
    inline static constexpr uintptr_t worldEnt     = 0x38;
    inline static constexpr uintptr_t parent       = 0x70;
    inline static constexpr uintptr_t contents     = 0xA0;
    inline static constexpr uintptr_t position     = 0xD8;
    inline static constexpr uintptr_t clientAmmoCount = 0xB8;
}

AttackEntity

namespace AttackEntity {
    inline static constexpr uintptr_t deployDelay     = 0x2E8;
    inline static constexpr uintptr_t repeatDelay     = 0x2EC;
    inline static constexpr uintptr_t animationDelay  = 0x2F0;
    inline static constexpr uintptr_t nextAttackTime  = 0x340;
    inline static constexpr uintptr_t timeSinceDeploy = 0x358;
}

BaseProjectile

namespace BaseProjectile {
    inline static constexpr uintptr_t projectileVelocityScale = 0x394;
    inline static constexpr uintptr_t automatic               = 0x398;
    inline static constexpr uintptr_t reloadTime              = 0x3D8;
    inline static constexpr uintptr_t primaryMagazine         = 0x3E0;
    inline static constexpr uintptr_t aimSway                 = 0x400;
    inline static constexpr uintptr_t aimSwaySpeed            = 0x404;
    inline static constexpr uintptr_t recoil                  = 0x408;
    inline static constexpr uintptr_t aimCone                 = 0x418;
    inline static constexpr uintptr_t hipAimCone              = 0x41C;
    inline static constexpr uintptr_t aimConePenaltyPerShot   = 0x420;
    inline static constexpr uintptr_t aimconePenaltyMax       = 0x424;
    inline static constexpr uintptr_t stancePenaltyScale      = 0x430;
    inline static constexpr uintptr_t hasADS                  = 0x434;
    inline static constexpr uintptr_t isBurstWeapon           = 0x43F;
    inline static constexpr uintptr_t canChangeFireModes      = 0x440;
    inline static constexpr uintptr_t stancePenalty           = 0x458;
    inline static constexpr uintptr_t aimconePenalty          = 0x460;
}

projectile

namespace projectile {
    inline static constexpr uintptr_t initialVelocity  = 0x28;
    inline static constexpr uintptr_t drag             = 0x34;
    inline static constexpr uintptr_t gravityModifier  = 0x38;
    inline static constexpr uintptr_t thickness        = 0x3C;
    inline static constexpr uintptr_t initialDistance  = 0x44;
    inline static constexpr uintptr_t owner            = 0x110;
    inline static constexpr uintptr_t currentVelocity  = 0x188;
    inline static constexpr uintptr_t sentPosition     = 0x164;
    inline static constexpr uintptr_t previousPosition = 0x170;
}

RecoilProperties

namespace RecoilProperties {
    inline static constexpr uintptr_t recoilYawMin        = 0x18;
    inline static constexpr uintptr_t recoilYawMax        = 0x1C;
    inline static constexpr uintptr_t recoilPitchMin      = 0x20;
    inline static constexpr uintptr_t recoilPitchMax      = 0x24;
    inline static constexpr uintptr_t newRecoilOverride   = 0x80;
}

FlintStrikeWeapon

namespace FlintStrikeWeapon {
    inline static constexpr uintptr_t successFraction    = 0x4C0;
    inline static constexpr uintptr_t _didSparkThisFrame = 0x4D0;
    inline static constexpr uintptr_t strikes            = 0x4D4;
}

PlayerEyes

namespace PlayerEyes {
    inline static constexpr uintptr_t viewOffset    = 0x40;
    inline static constexpr uintptr_t bodyRotation  = 0x50;
    inline static constexpr uintptr_t worldPosition = 0x60;
    inline static constexpr uintptr_t eyeRotation   = 0x6C;
}

PlayerInput

namespace PlayerInput {
    inline static constexpr uintptr_t state      = 0x28;
    inline static constexpr uintptr_t bodyAngles = 0x44;
}

PlayerModel

namespace PlayerModel {
    inline static constexpr uintptr_t _multiMesh  = 0x398;
    inline static constexpr uintptr_t collision   =  0xD0;
    inline static constexpr uintptr_t fullMask    = 0x208;
    inline static constexpr uintptr_t position    = 0x2F8;
    inline static constexpr uintptr_t newVelocity = 0x31C;
    inline static constexpr uintptr_t isNpc       = 0x4CC;
    inline static constexpr uintptr_t headBone    =  0xF8;
}

SkinnedMultiMesh

namespace SkinnedMultiMesh {
    inline static constexpr uintptr_t RendererList = 0x50;
    inline static constexpr uintptr_t Renderers    = 0x50;
}

chams

namespace chams {
    inline static constexpr uintptr_t player_model_multi_mesh  = 0x398;
    inline static constexpr uintptr_t multi_mesh_renderer_list =  0x50;
}

PlayerInventory

namespace PlayerInventory {
    inline static constexpr uintptr_t loot           = 0x48;
    inline static constexpr uintptr_t containerBelt  = 0x28;
    inline static constexpr uintptr_t containerMain  = 0x58;
    inline static constexpr uintptr_t containerWear  = 0x78;
    inline static constexpr uintptr_t container_belt = 0x28;
    inline static constexpr uintptr_t container_wear = 0x78;
    inline static constexpr uintptr_t container_main = 0x58;
}

movement

namespace movement {
    inline static constexpr uintptr_t Owner = 0x30;
}

PlayerWalkMovement

namespace PlayerWalkMovement {
    inline static constexpr uintptr_t Grounded  = 0x1C4;
    inline static constexpr uintptr_t Jumping   = 0x1EC;
    inline static constexpr uintptr_t Swimming  = 0x1DC;
    inline static constexpr uintptr_t Flying    = 0x20C;
    inline static constexpr uintptr_t Velocity  = 0x130;
}

HeldEntity

namespace HeldEntity {
    inline static constexpr uintptr_t viewModel           = 0x200;
    inline static constexpr uintptr_t worldModelAnimation = 0x218;
    inline static constexpr uintptr_t holdInfo            = 0x270;
    inline static constexpr uintptr_t isBuildingTool      = 0x28C;
    inline static constexpr uintptr_t forcedOwner         = 0x290;
    inline static constexpr uintptr_t hostileScore        = 0x2AC;
    inline static constexpr uintptr_t itemOwner           = 0x250;
    inline static constexpr uintptr_t ownerItemUID        = 0x2E0;
    inline static constexpr uintptr_t _punches            = 0x2D8;
}

ItemIcon

namespace ItemIcon {
    inline static constexpr uintptr_t item_icon_c   = 0x1191EF08;
    inline static constexpr uintptr_t type_info     = 0x1191EF08;
    inline static constexpr uintptr_t static_fields =       0xB8;
    inline static constexpr uintptr_t backgroundImage =     0xE8;
}

local_player_static

namespace local_player_static {
    inline static constexpr uintptr_t type_info     = 0x118D5308;
    inline static constexpr uintptr_t static_fields =       0xB8;
    inline static constexpr uintptr_t entity        =       0x40; // HV<BasePlayer>
}

magazine

namespace magazine {
    inline static constexpr uintptr_t definition = 0x10;
    inline static constexpr uintptr_t capacity   = 0x18;
    inline static constexpr uintptr_t contents   = 0x1C;
    inline static constexpr uintptr_t ammoType   = 0x20;
}

BaseMelee

namespace BaseMelee {
    inline static constexpr uintptr_t maxDistance         = 0x3A0;
    inline static constexpr uintptr_t attackRadius        = 0x3A4;
    inline static constexpr uintptr_t blockSprintOnAttack = 0x3A9;
    inline static constexpr uintptr_t gathering           = 0x3E0;
}

ItemModProjectile

namespace ItemModProjectile {
    inline static constexpr uintptr_t projectileObject         = 0x20;
    inline static constexpr uintptr_t projectileVelocity       = 0x40;
    inline static constexpr uintptr_t projectileVelocitySpread = 0x44;
    inline static constexpr uintptr_t projectileSpread         = 0x3C;
    inline static constexpr uintptr_t numProjectiles           = 0x38;
}

model

namespace model {
    inline static constexpr uintptr_t rootBone       = 0x28;
    inline static constexpr uintptr_t headBone       = 0x30;
    inline static constexpr uintptr_t boneTransforms = 0x50;
    inline static constexpr uintptr_t boneNames      = 0x58;
}

TOD_Sky

namespace TOD_Sky_Static {
    inline static constexpr uintptr_t type_info = 0x11912EB0;
    inline static constexpr uintptr_t instances =       0x18;
}

PhysX

namespace PhysX {
    inline static constexpr uintptr_t m_Instance  = 0x217F8E8;
    inline static constexpr uintptr_t rigidActors =    0x23D8;
}

convar_graphics

namespace convar_graphics {
    inline static constexpr uintptr_t type_info     = 0x118B0BB8;
    inline static constexpr uintptr_t static_fields =       0xB8;
    inline static constexpr uintptr_t fov           =      0x168;
}

il2cpp list / array

namespace il2cpp_list {
    inline static constexpr uintptr_t items = 0x10;
    inline static constexpr uintptr_t count = 0x18;
}
namespace il2cpp_array {
    inline static constexpr uintptr_t max_length    = 0x18;
    inline static constexpr uintptr_t first_element = 0x20; // Unity 6 some T[] at +0x28
}

hashed klasses (25214240)

BaseNetworkableStatic  %ddd3d5e1e2c2981fa24e8e1866bdf858e54b99eb
EntityRealm            %45c74cdeff443339077ebb34ea15ef9b1d36dbbf
ListDictionary         %b61ab02f3efd07c0e159bf8550ec7884e2d1a49b
BufferList             %02d7c19210903524636779e31392ef3997c0d2d6

Decryption routines

HV: read cipher at wrapper+0x18. +0x10 is 0x1<<32 | accessCount on this build (not a 0/1 byte). Then il2cpp_gchandle_get_target (8 KB page handle).

uintptr_t decryption::client_entities(uint64_t a1)
{
    uintptr_t rax = driver.read<uintptr_t>(a1 + 0x18);
    uint32_t* rdx = (uint32_t*)&rax;
    uint32_t r8d = 0x2;
    uint32_t ecx;
    do {
        ecx = *rdx;
        rdx = (uint32_t*)((uint8_t*)rdx + 0x4);
        ecx = ecx ^ 0xCC2B1C5C;
        ecx = ecx - 0x196BCA9E;
        ecx = ecx ^ 0x1A846030;
        *(rdx - 1) = ecx;
        --r8d;
    } while (r8d);
    return il2cpp_get_handle(rax);
}

uintptr_t decryption::visiblePlayerList(uint64_t a1)
{
    return decryption::client_entities(a1);
}

uintptr_t decryption::entity_list(uint64_t a1)
{
    uintptr_t rax = driver.read<uintptr_t>(a1 + 0x18);
    uint32_t* rdx = (uint32_t*)&rax;
    uint32_t r8d = 0x2;
    uint32_t eax, ecx;
    do {
        ecx = *rdx;
        rdx = (uint32_t*)((uint8_t*)rdx + 0x4);
        ecx = ecx ^ 0x2573BC7C;
        eax = ecx;
        ecx = ecx << 0x8;
        eax = eax >> 0x18;
        ecx = ecx | eax;
        ecx = ecx ^ 0xB2F825D8;
        ecx = ecx + 0x617F688B;
        *(rdx - 1) = ecx;
        --r8d;
    } while (r8d);
    return il2cpp_get_handle(rax);
}

uintptr_t decryption::clActiveItem(uint64_t a1)
{
    uint32_t* rdx = (uint32_t*)&a1;
    uint32_t r9d = 0x2;
    uint32_t edx, eax;
    do {
        edx = *rdx;
        rdx = (uint32_t*)((uint8_t*)rdx + 0x4);
        edx = edx ^ 0x537C2A57;
        edx = edx + 0xE00025B3;
        eax = edx;
        edx = edx >> 0xE;
        eax = eax << 0x12;
        edx = edx | eax;
        *(rdx - 1) = edx;
        --r9d;
    } while (r9d);
    return a1;
}

uintptr_t decryption::PlayerInventory(uint64_t a1)
{
    uintptr_t rax = driver.read<uintptr_t>(a1 + 0x18);
    uint32_t* rdx = (uint32_t*)&rax;
    uint32_t r8d = 0x2;
    uint32_t eax, ecx;
    do {
        ecx = *rdx;
        rdx = (uint32_t*)((uint8_t*)rdx + 0x4);
        ecx = ecx + 0xF4BDEEB6;
        eax = ecx;
        ecx = ecx >> 0x5;
        eax = eax << 0x1B;
        ecx = ecx | eax;
        ecx = ecx + 0x4056D625;
        eax = ecx;
        ecx = ecx >> 0x4;
        eax = eax << 0x1C;
        ecx = ecx | eax;
        *(rdx - 1) = ecx;
        --r8d;
    } while (r8d);
    return il2cpp_get_handle(rax);
}

uintptr_t decryption::PlayerEyes(uint64_t a1)
{
    uintptr_t rax = driver.read<uintptr_t>(a1 + 0x18);
    uint32_t* rdx = (uint32_t*)&rax;
    uint32_t r8d = 0x2;
    uint32_t eax, ecx;
    do {
        ecx = *rdx;
        rdx = (uint32_t*)((uint8_t*)rdx + 0x4);
        ecx = ecx - 0x30;
        eax = ecx;
        ecx = ecx << 0x4;
        eax = eax >> 0x1C;
        ecx = ecx | eax;
        ecx = ecx - 0x78E8CE69;
        ecx = ecx ^ 0x7A0A52A;
        eax = ecx;
        ecx = ecx >> 0xC;
        eax = eax << 0x14;
        ecx = ecx | eax;
        *(rdx - 1) = ecx;
        --r8d;
    } while (r8d);
    return il2cpp_get_handle(rax);
}

uintptr_t decryption::LocalPlayer(uint64_t a1)
{
    uintptr_t rax = driver.read<uintptr_t>(a1 + 0x18);
    uint32_t* rdx = (uint32_t*)&rax;
    uint32_t r8d = 0x2;
    uint32_t eax, ecx;
    do {
        ecx = *rdx;
        rdx = (uint32_t*)((uint8_t*)rdx + 0x4);
        eax = ecx;
        ecx = ecx << 0xB;
        eax = eax >> 0x15;
        ecx = ecx | eax;
        ecx = ecx ^ 0x30B6FF08;
        ecx = ecx + 0xCC937BB;
        ecx = ecx ^ 0xFD26C1F4;
        *(rdx - 1) = ecx;
        --r8d;
    } while (r8d);
    return il2cpp_get_handle(rax);
}

inline uint32_t decryption::decrypt_fov(uint32_t val)
{
    val = (val << 0x11) | (val >> 0xF);
    val ^= 0x41AA1423;
    val += 0xBDD8296;
    val = (val << 0xC) | (val >> 0x14);
    return val;
}

inline uint32_t decryption::encrypt_fov(uint32_t val)
{
    val = (val >> 0xC) | (val << 0x14);
    val -= 0xBDD8296;
    val ^= 0x41AA1423;
    val = (val >> 0x11) | (val << 0xF);
    return val;
}