typedef uint32_t Il2CppMethodSlot; const int ipv6AddressSize = 16; typedef int32_t il2cpp_hresult_t; typedef struct Il2CppClass Il2CppClass; typedef struct Il2CppType Il2CppType; typedef struct EventInfo EventInfo; typedef struct MethodInfo MethodInfo; typedef struct FieldInfo FieldInfo; typedef struct PropertyInfo PropertyInfo; typedef struct Il2CppAssembly Il2CppAssembly; typedef struct Il2CppArray Il2CppArray; typedef struct Il2CppDelegate Il2CppDelegate; typedef struct Il2CppDomain Il2CppDomain; typedef struct Il2CppImage Il2CppImage; typedef struct Il2CppException Il2CppException; typedef struct Il2CppProfiler Il2CppProfiler; typedef struct Il2CppObject Il2CppObject; typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; typedef struct Il2CppReflectionType Il2CppReflectionType; typedef struct Il2CppString Il2CppString; typedef struct Il2CppThread Il2CppThread; typedef struct Il2CppAsyncResult Il2CppAsyncResult; typedef enum Il2CppProfileFlags { IL2CPP_PROFILE_NONE = 0, IL2CPP_PROFILE_APPDOMAIN_EVENTS = 1 << 0, IL2CPP_PROFILE_ASSEMBLY_EVENTS = 1 << 1, IL2CPP_PROFILE_MODULE_EVENTS = 1 << 2, IL2CPP_PROFILE_CLASS_EVENTS = 1 << 3, IL2CPP_PROFILE_JIT_COMPILATION = 1 << 4, IL2CPP_PROFILE_INLINING = 1 << 5, IL2CPP_PROFILE_EXCEPTIONS = 1 << 6, IL2CPP_PROFILE_ALLOCATIONS = 1 << 7, IL2CPP_PROFILE_GC = 1 << 8, IL2CPP_PROFILE_THREADS = 1 << 9, IL2CPP_PROFILE_REMOTING = 1 << 10, IL2CPP_PROFILE_TRANSITIONS = 1 << 11, IL2CPP_PROFILE_ENTER_LEAVE = 1 << 12, IL2CPP_PROFILE_COVERAGE = 1 << 13, IL2CPP_PROFILE_INS_COVERAGE = 1 << 14, IL2CPP_PROFILE_STATISTICAL = 1 << 15, IL2CPP_PROFILE_METHOD_EVENTS = 1 << 16, IL2CPP_PROFILE_MONITOR_EVENTS = 1 << 17, IL2CPP_PROFILE_IOMAP_EVENTS = 1 << 18, IL2CPP_PROFILE_GC_MOVES = 1 << 19 } Il2CppProfileFlags; typedef enum Il2CppGCEvent { IL2CPP_GC_EVENT_START, IL2CPP_GC_EVENT_MARK_START, IL2CPP_GC_EVENT_MARK_END, IL2CPP_GC_EVENT_RECLAIM_START, IL2CPP_GC_EVENT_RECLAIM_END, IL2CPP_GC_EVENT_END, IL2CPP_GC_EVENT_PRE_STOP_WORLD, IL2CPP_GC_EVENT_POST_STOP_WORLD, IL2CPP_GC_EVENT_PRE_START_WORLD, IL2CPP_GC_EVENT_POST_START_WORLD } Il2CppGCEvent; typedef enum Il2CppStat { IL2CPP_STAT_NEW_OBJECT_COUNT, IL2CPP_STAT_INITIALIZED_CLASS_COUNT, IL2CPP_STAT_METHOD_COUNT, IL2CPP_STAT_CLASS_STATIC_DATA_SIZE, IL2CPP_STAT_GENERIC_INSTANCE_COUNT, IL2CPP_STAT_GENERIC_CLASS_COUNT, IL2CPP_STAT_INFLATED_METHOD_COUNT, IL2CPP_STAT_INFLATED_TYPE_COUNT, } Il2CppStat; typedef enum StackFrameType { FRAME_TYPE_MANAGED = 0, FRAME_TYPE_DEBUGGER_INVOKE = 1, FRAME_TYPE_MANAGED_TO_NATIVE = 2, FRAME_TYPE_SENTINEL = 3 } StackFrameType; typedef enum Il2CppRuntimeUnhandledExceptionPolicy { IL2CPP_UNHANDLED_POLICY_LEGACY, IL2CPP_UNHANDLED_POLICY_CURRENT } Il2CppRuntimeUnhandledExceptionPolicy; typedef struct Il2CppStackFrameInfo { const MethodInfo *method; } Il2CppStackFrameInfo; typedef struct { void* (*malloc_func)(size_t size); void* (*aligned_malloc_func)(size_t size, size_t alignment); void (*free_func)(void *ptr); void (*aligned_free_func)(void *ptr); void* (*calloc_func)(size_t nmemb, size_t size); void* (*realloc_func)(void *ptr, size_t size); void* (*aligned_realloc_func)(void *ptr, size_t size, size_t alignment); } Il2CppMemoryCallbacks; typedef uint16_t Il2CppChar; typedef char Il2CppNativeChar; typedef void (*il2cpp_register_object_callback)(Il2CppObject** arr, int size, void* userdata); typedef void (*il2cpp_WorldChangedCallback)(); typedef void (*Il2CppFrameWalkFunc) (const Il2CppStackFrameInfo *info, void *user_data); typedef void (*Il2CppProfileFunc) (Il2CppProfiler* prof); typedef void (*Il2CppProfileMethodFunc) (Il2CppProfiler* prof, const MethodInfo *method); typedef void (*Il2CppProfileAllocFunc) (Il2CppProfiler* prof, Il2CppObject *obj, Il2CppClass *klass); typedef void (*Il2CppProfileGCFunc) (Il2CppProfiler* prof, Il2CppGCEvent event, int generation); typedef void (*Il2CppProfileGCResizeFunc) (Il2CppProfiler* prof, int64_t new_size); typedef const Il2CppNativeChar* (*Il2CppSetFindPlugInCallback)(const Il2CppNativeChar*); typedef void (*Il2CppLogCallback)(const char*); typedef struct Il2CppManagedMemorySnapshot Il2CppManagedMemorySnapshot; typedef void (*Il2CppMethodPointer)(); typedef uintptr_t il2cpp_array_size_t; typedef struct Il2CppMetadataField { uint32_t offset; uint32_t typeIndex; const char* name; bool isStatic; } Il2CppMetadataField; typedef enum Il2CppMetadataTypeFlags { kNone = 0, kValueType = 1 << 0, kArray = 1 << 1, kArrayRankMask = 0xFFFF0000 } Il2CppMetadataTypeFlags; typedef struct Il2CppMetadataType { Il2CppMetadataTypeFlags flags; Il2CppMetadataField* fields; uint32_t fieldCount; uint32_t staticsSize; uint8_t* statics; uint32_t baseOrElementTypeIndex; char* name; const char* assemblyName; uint64_t typeInfoAddress; uint32_t size; } Il2CppMetadataType; typedef struct Il2CppMetadataSnapshot { uint32_t typeCount; Il2CppMetadataType* types; } Il2CppMetadataSnapshot; typedef struct Il2CppManagedMemorySection { uint64_t sectionStartAddress; uint32_t sectionSize; uint8_t* sectionBytes; } Il2CppManagedMemorySection; typedef struct Il2CppManagedHeap { uint32_t sectionCount; Il2CppManagedMemorySection* sections; } Il2CppManagedHeap; typedef struct Il2CppStacks { uint32_t stackCount; Il2CppManagedMemorySection* stacks; } Il2CppStacks; typedef struct NativeObject { uint32_t gcHandleIndex; uint32_t size; uint32_t instanceId; uint32_t classId; uint32_t referencedNativeObjectIndicesCount; uint32_t* referencedNativeObjectIndices; } NativeObject; typedef struct Il2CppGCHandles { uint32_t trackedObjectCount; uint64_t* pointersToObjects; } Il2CppGCHandles; typedef struct Il2CppRuntimeInformation { uint32_t pointerSize; uint32_t objectHeaderSize; uint32_t arrayHeaderSize; uint32_t arrayBoundsOffsetInHeader; uint32_t arraySizeOffsetInHeader; uint32_t allocationGranularity; } Il2CppRuntimeInformation; typedef struct Il2CppManagedMemorySnapshot { Il2CppManagedHeap heap; Il2CppStacks stacks; Il2CppMetadataSnapshot metadata; Il2CppGCHandles gcHandles; Il2CppRuntimeInformation runtimeInformation; void* additionalUserInformation; } Il2CppManagedMemorySnapshot; typedef enum Il2CppTypeEnum { IL2CPP_TYPE_END = 0x00, IL2CPP_TYPE_VOID = 0x01, IL2CPP_TYPE_BOOLEAN = 0x02, IL2CPP_TYPE_CHAR = 0x03, IL2CPP_TYPE_I1 = 0x04, IL2CPP_TYPE_U1 = 0x05, IL2CPP_TYPE_I2 = 0x06, IL2CPP_TYPE_U2 = 0x07, IL2CPP_TYPE_I4 = 0x08, IL2CPP_TYPE_U4 = 0x09, IL2CPP_TYPE_I8 = 0x0a, IL2CPP_TYPE_U8 = 0x0b, IL2CPP_TYPE_R4 = 0x0c, IL2CPP_TYPE_R8 = 0x0d, IL2CPP_TYPE_STRING = 0x0e, IL2CPP_TYPE_PTR = 0x0f, IL2CPP_TYPE_BYREF = 0x10, IL2CPP_TYPE_VALUETYPE = 0x11, IL2CPP_TYPE_CLASS = 0x12, IL2CPP_TYPE_VAR = 0x13, IL2CPP_TYPE_ARRAY = 0x14, IL2CPP_TYPE_GENERICINST = 0x15, IL2CPP_TYPE_TYPEDBYREF = 0x16, IL2CPP_TYPE_I = 0x18, IL2CPP_TYPE_U = 0x19, IL2CPP_TYPE_FNPTR = 0x1b, IL2CPP_TYPE_OBJECT = 0x1c, IL2CPP_TYPE_SZARRAY = 0x1d, IL2CPP_TYPE_MVAR = 0x1e, IL2CPP_TYPE_CMOD_REQD = 0x1f, IL2CPP_TYPE_CMOD_OPT = 0x20, IL2CPP_TYPE_INTERNAL = 0x21, IL2CPP_TYPE_MODIFIER = 0x40, IL2CPP_TYPE_SENTINEL = 0x41, IL2CPP_TYPE_PINNED = 0x45, IL2CPP_TYPE_ENUM = 0x55 } Il2CppTypeEnum; typedef int32_t TypeIndex; typedef int32_t TypeDefinitionIndex; typedef int32_t FieldIndex; typedef int32_t DefaultValueIndex; typedef int32_t DefaultValueDataIndex; typedef int32_t CustomAttributeIndex; typedef int32_t ParameterIndex; typedef int32_t MethodIndex; typedef int32_t GenericMethodIndex; typedef int32_t PropertyIndex; typedef int32_t EventIndex; typedef int32_t GenericContainerIndex; typedef int32_t GenericParameterIndex; typedef int16_t GenericParameterConstraintIndex; typedef int32_t NestedTypeIndex; typedef int32_t InterfacesIndex; typedef int32_t VTableIndex; typedef int32_t InterfaceOffsetIndex; typedef int32_t RGCTXIndex; typedef int32_t StringIndex; typedef int32_t StringLiteralIndex; typedef int32_t GenericInstIndex; typedef int32_t ImageIndex; typedef int32_t AssemblyIndex; typedef int32_t InteropDataIndex; const TypeIndex kTypeIndexInvalid = -1; const TypeDefinitionIndex kTypeDefinitionIndexInvalid = -1; const DefaultValueDataIndex kDefaultValueIndexNull = -1; const EventIndex kEventIndexInvalid = -1; const FieldIndex kFieldIndexInvalid = -1; const MethodIndex kMethodIndexInvalid = -1; const PropertyIndex kPropertyIndexInvalid = -1; const GenericContainerIndex kGenericContainerIndexInvalid = -1; const GenericParameterIndex kGenericParameterIndexInvalid = -1; const RGCTXIndex kRGCTXIndexInvalid = -1; const StringLiteralIndex kStringLiteralIndexInvalid = -1; const InteropDataIndex kInteropDataIndexInvalid = -1; typedef uint32_t EncodedMethodIndex; typedef enum Il2CppMetadataUsage { kIl2CppMetadataUsageInvalid, kIl2CppMetadataUsageTypeInfo, kIl2CppMetadataUsageIl2CppType, kIl2CppMetadataUsageMethodDef, kIl2CppMetadataUsageFieldInfo, kIl2CppMetadataUsageStringLiteral, kIl2CppMetadataUsageMethodRef, } Il2CppMetadataUsage; static inline Il2CppMetadataUsage GetEncodedIndexType(EncodedMethodIndex index) { return (Il2CppMetadataUsage)((index & 0xE0000000) >> 29); } static inline uint32_t GetDecodedMethodIndex(EncodedMethodIndex index) { return index & 0x1FFFFFFFU; } typedef struct Il2CppImage Il2CppImage; typedef struct Il2CppType Il2CppType; typedef struct Il2CppTypeDefinitionMetadata Il2CppTypeDefinitionMetadata; typedef union Il2CppRGCTXDefinitionData { int32_t rgctxDataDummy; MethodIndex methodIndex; TypeIndex typeIndex; } Il2CppRGCTXDefinitionData; typedef enum Il2CppRGCTXDataType { IL2CPP_RGCTX_DATA_INVALID, IL2CPP_RGCTX_DATA_TYPE, IL2CPP_RGCTX_DATA_CLASS, IL2CPP_RGCTX_DATA_METHOD, IL2CPP_RGCTX_DATA_ARRAY, } Il2CppRGCTXDataType; typedef struct Il2CppRGCTXDefinition { Il2CppRGCTXDataType type; Il2CppRGCTXDefinitionData data; } Il2CppRGCTXDefinition; typedef struct Il2CppInterfaceOffsetPair { TypeIndex interfaceTypeIndex; int32_t offset; } Il2CppInterfaceOffsetPair; typedef struct Il2CppTypeDefinition { StringIndex nameIndex; StringIndex namespaceIndex; CustomAttributeIndex customAttributeIndex; TypeIndex byvalTypeIndex; TypeIndex byrefTypeIndex; TypeIndex declaringTypeIndex; TypeIndex parentIndex; TypeIndex elementTypeIndex; RGCTXIndex rgctxStartIndex; int32_t rgctxCount; GenericContainerIndex genericContainerIndex; uint32_t flags; FieldIndex fieldStart; MethodIndex methodStart; EventIndex eventStart; PropertyIndex propertyStart; NestedTypeIndex nestedTypesStart; InterfacesIndex interfacesStart; VTableIndex vtableStart; InterfacesIndex interfaceOffsetsStart; uint16_t method_count; uint16_t property_count; uint16_t field_count; uint16_t event_count; uint16_t nested_type_count; uint16_t vtable_count; uint16_t interfaces_count; uint16_t interface_offsets_count; uint32_t bitfield; uint32_t token; } Il2CppTypeDefinition; typedef struct Il2CppFieldDefinition { StringIndex nameIndex; TypeIndex typeIndex; CustomAttributeIndex customAttributeIndex; uint32_t token; } Il2CppFieldDefinition; typedef struct Il2CppFieldDefaultValue { FieldIndex fieldIndex; TypeIndex typeIndex; DefaultValueDataIndex dataIndex; } Il2CppFieldDefaultValue; typedef struct Il2CppFieldMarshaledSize { FieldIndex fieldIndex; TypeIndex typeIndex; int32_t size; } Il2CppFieldMarshaledSize; typedef struct Il2CppFieldRef { TypeIndex typeIndex; FieldIndex fieldIndex; } Il2CppFieldRef; typedef struct Il2CppParameterDefinition { StringIndex nameIndex; uint32_t token; CustomAttributeIndex customAttributeIndex; TypeIndex typeIndex; } Il2CppParameterDefinition; typedef struct Il2CppParameterDefaultValue { ParameterIndex parameterIndex; TypeIndex typeIndex; DefaultValueDataIndex dataIndex; } Il2CppParameterDefaultValue; typedef struct Il2CppMethodDefinition { StringIndex nameIndex; TypeDefinitionIndex declaringType; TypeIndex returnType; ParameterIndex parameterStart; CustomAttributeIndex customAttributeIndex; GenericContainerIndex genericContainerIndex; MethodIndex methodIndex; MethodIndex invokerIndex; MethodIndex reversePInvokeWrapperIndex; RGCTXIndex rgctxStartIndex; int32_t rgctxCount; uint32_t token; uint16_t flags; uint16_t iflags; uint16_t slot; uint16_t parameterCount; } Il2CppMethodDefinition; typedef struct Il2CppEventDefinition { StringIndex nameIndex; TypeIndex typeIndex; MethodIndex add; MethodIndex remove; MethodIndex raise; CustomAttributeIndex customAttributeIndex; uint32_t token; } Il2CppEventDefinition; typedef struct Il2CppPropertyDefinition { StringIndex nameIndex; MethodIndex get; MethodIndex set; uint32_t attrs; CustomAttributeIndex customAttributeIndex; uint32_t token; } Il2CppPropertyDefinition; typedef struct Il2CppMethodSpec { MethodIndex methodDefinitionIndex; GenericInstIndex classIndexIndex; GenericInstIndex methodIndexIndex; } Il2CppMethodSpec; typedef struct Il2CppStringLiteral { uint32_t length; StringLiteralIndex dataIndex; } Il2CppStringLiteral; typedef struct Il2CppGenericMethodIndices { MethodIndex methodIndex; MethodIndex invokerIndex; } Il2CppGenericMethodIndices; typedef struct Il2CppGenericMethodFunctionsDefinitions { GenericMethodIndex genericMethodIndex; Il2CppGenericMethodIndices indices; } Il2CppGenericMethodFunctionsDefinitions; const int kPublicKeyByteLength = 8; typedef struct Il2CppAssemblyName { StringIndex nameIndex; StringIndex cultureIndex; StringIndex hashValueIndex; StringIndex publicKeyIndex; uint32_t hash_alg; int32_t hash_len; uint32_t flags; int32_t major; int32_t minor; int32_t build; int32_t revision; uint8_t publicKeyToken[8]; } Il2CppAssemblyName; typedef struct Il2CppImageDefinition { StringIndex nameIndex; AssemblyIndex assemblyIndex; TypeDefinitionIndex typeStart; uint32_t typeCount; TypeDefinitionIndex exportedTypeStart; uint32_t exportedTypeCount; MethodIndex entryPointIndex; uint32_t token; } Il2CppImageDefinition; typedef struct Il2CppAssembly { ImageIndex imageIndex; CustomAttributeIndex customAttributeIndex; int32_t referencedAssemblyStart; int32_t referencedAssemblyCount; Il2CppAssemblyName aname; } Il2CppAssembly; typedef struct Il2CppMetadataUsageList { uint32_t start; uint32_t count; } Il2CppMetadataUsageList; typedef struct Il2CppMetadataUsagePair { uint32_t destinationIndex; uint32_t encodedSourceIndex; } Il2CppMetadataUsagePair; typedef struct Il2CppCustomAttributeTypeRange { int32_t start; int32_t count; } Il2CppCustomAttributeTypeRange; typedef struct Il2CppRange { int32_t start; int32_t length; } Il2CppRange; typedef struct Il2CppWindowsRuntimeTypeNamePair { StringIndex nameIndex; TypeIndex typeIndex; } Il2CppWindowsRuntimeTypeNamePair; #pragma pack(push, p1,4) typedef struct Il2CppGlobalMetadataHeader { int32_t sanity; int32_t version; int32_t stringLiteralOffset; int32_t stringLiteralCount; int32_t stringLiteralDataOffset; int32_t stringLiteralDataCount; int32_t stringOffset; int32_t stringCount; int32_t eventsOffset; int32_t eventsCount; int32_t propertiesOffset; int32_t propertiesCount; int32_t methodsOffset; int32_t methodsCount; int32_t parameterDefaultValuesOffset; int32_t parameterDefaultValuesCount; int32_t fieldDefaultValuesOffset; int32_t fieldDefaultValuesCount; int32_t fieldAndParameterDefaultValueDataOffset; int32_t fieldAndParameterDefaultValueDataCount; int32_t fieldMarshaledSizesOffset; int32_t fieldMarshaledSizesCount; int32_t parametersOffset; int32_t parametersCount; int32_t fieldsOffset; int32_t fieldsCount; int32_t genericParametersOffset; int32_t genericParametersCount; int32_t genericParameterConstraintsOffset; int32_t genericParameterConstraintsCount; int32_t genericContainersOffset; int32_t genericContainersCount; int32_t nestedTypesOffset; int32_t nestedTypesCount; int32_t interfacesOffset; int32_t interfacesCount; int32_t vtableMethodsOffset; int32_t vtableMethodsCount; int32_t interfaceOffsetsOffset; int32_t interfaceOffsetsCount; int32_t typeDefinitionsOffset; int32_t typeDefinitionsCount; int32_t rgctxEntriesOffset; int32_t rgctxEntriesCount; int32_t imagesOffset; int32_t imagesCount; int32_t assembliesOffset; int32_t assembliesCount; int32_t metadataUsageListsOffset; int32_t metadataUsageListsCount; int32_t metadataUsagePairsOffset; int32_t metadataUsagePairsCount; int32_t fieldRefsOffset; int32_t fieldRefsCount; int32_t referencedAssembliesOffset; int32_t referencedAssembliesCount; int32_t attributesInfoOffset; int32_t attributesInfoCount; int32_t attributeTypesOffset; int32_t attributeTypesCount; int32_t unresolvedVirtualCallParameterTypesOffset; int32_t unresolvedVirtualCallParameterTypesCount; int32_t unresolvedVirtualCallParameterRangesOffset; int32_t unresolvedVirtualCallParameterRangesCount; int32_t windowsRuntimeTypeNamesOffset; int32_t windowsRuntimeTypeNamesSize; int32_t exportedTypeDefinitionsOffset; int32_t exportedTypeDefinitionsCount; } Il2CppGlobalMetadataHeader; #pragma pack(pop, p1) typedef struct Il2CppClass Il2CppClass; typedef struct MethodInfo MethodInfo; typedef struct Il2CppType Il2CppType; typedef struct Il2CppArrayType { const Il2CppType* etype; uint8_t rank; uint8_t numsizes; uint8_t numlobounds; int *sizes; int *lobounds; } Il2CppArrayType; typedef struct Il2CppGenericInst { uint32_t type_argc; const Il2CppType **type_argv; } Il2CppGenericInst; typedef struct Il2CppGenericContext { const Il2CppGenericInst *class_inst; const Il2CppGenericInst *method_inst; } Il2CppGenericContext; typedef struct Il2CppGenericParameter { GenericContainerIndex ownerIndex; StringIndex nameIndex; GenericParameterConstraintIndex constraintsStart; int16_t constraintsCount; uint16_t num; uint16_t flags; } Il2CppGenericParameter; typedef struct Il2CppGenericContainer { int32_t ownerIndex; int32_t type_argc; int32_t is_method; GenericParameterIndex genericParameterStart; } Il2CppGenericContainer; typedef struct Il2CppGenericClass { TypeDefinitionIndex typeDefinitionIndex; Il2CppGenericContext context; Il2CppClass *cached_class; } Il2CppGenericClass; typedef struct Il2CppGenericMethod { const MethodInfo* methodDefinition; Il2CppGenericContext context; } Il2CppGenericMethod; typedef struct Il2CppType { union { void* dummy; TypeDefinitionIndex klassIndex; const Il2CppType *type; Il2CppArrayType *array; GenericParameterIndex genericParameterIndex; Il2CppGenericClass *generic_class; } data; unsigned int attrs : 16; Il2CppTypeEnum type : 8; unsigned int num_mods : 6; unsigned int byref : 1; unsigned int pinned : 1; } Il2CppType; typedef enum { IL2CPP_CALL_DEFAULT, IL2CPP_CALL_C, IL2CPP_CALL_STDCALL, IL2CPP_CALL_THISCALL, IL2CPP_CALL_FASTCALL, IL2CPP_CALL_VARARG } Il2CppCallConvention; typedef enum Il2CppCharSet { CHARSET_ANSI, CHARSET_UNICODE } Il2CppCharSet; typedef struct Il2CppClass Il2CppClass; typedef struct Il2CppGuid Il2CppGuid; typedef struct Il2CppImage Il2CppImage; typedef struct Il2CppAssembly Il2CppAssembly; typedef struct Il2CppAppDomain Il2CppAppDomain; typedef struct Il2CppAppDomainSetup Il2CppAppDomainSetup; typedef struct Il2CppDelegate Il2CppDelegate; typedef struct Il2CppAppContext Il2CppAppContext; typedef struct Il2CppNameToTypeDefinitionIndexHashTable Il2CppNameToTypeDefinitionIndexHashTable; typedef struct VirtualInvokeData { Il2CppMethodPointer methodPtr; const MethodInfo* method; } VirtualInvokeData; typedef enum Il2CppTypeNameFormat { IL2CPP_TYPE_NAME_FORMAT_IL, IL2CPP_TYPE_NAME_FORMAT_REFLECTION, IL2CPP_TYPE_NAME_FORMAT_FULL_NAME, IL2CPP_TYPE_NAME_FORMAT_ASSEMBLY_QUALIFIED } Il2CppTypeNameFormat; extern bool g_il2cpp_is_fully_initialized; typedef struct { Il2CppImage *corlib; Il2CppClass *object_class; Il2CppClass *byte_class; Il2CppClass *void_class; Il2CppClass *boolean_class; Il2CppClass *sbyte_class; Il2CppClass *int16_class; Il2CppClass *uint16_class; Il2CppClass *int32_class; Il2CppClass *uint32_class; Il2CppClass *int_class; Il2CppClass *uint_class; Il2CppClass *int64_class; Il2CppClass *uint64_class; Il2CppClass *single_class; Il2CppClass *double_class; Il2CppClass *char_class; Il2CppClass *string_class; Il2CppClass *enum_class; Il2CppClass *array_class; Il2CppClass *delegate_class; Il2CppClass *multicastdelegate_class; Il2CppClass *asyncresult_class; Il2CppClass *manualresetevent_class; Il2CppClass *typehandle_class; Il2CppClass *fieldhandle_class; Il2CppClass *methodhandle_class; Il2CppClass *systemtype_class; Il2CppClass *monotype_class; Il2CppClass *exception_class; Il2CppClass *threadabortexception_class; Il2CppClass *thread_class; Il2CppClass *internal_thread_class; Il2CppClass *appdomain_class; Il2CppClass *appdomain_setup_class; Il2CppClass *field_info_class; Il2CppClass *method_info_class; Il2CppClass *property_info_class; Il2CppClass *event_info_class; Il2CppClass *mono_event_info_class; Il2CppClass *stringbuilder_class; Il2CppClass *stack_frame_class; Il2CppClass *stack_trace_class; Il2CppClass *marshal_class; Il2CppClass *typed_reference_class; Il2CppClass *marshalbyrefobject_class; Il2CppClass *generic_ilist_class; Il2CppClass *generic_icollection_class; Il2CppClass *generic_ienumerable_class; Il2CppClass *generic_ireadonlylist_class; Il2CppClass *generic_ireadonlycollection_class; Il2CppClass *runtimetype_class; Il2CppClass *generic_nullable_class; Il2CppClass *il2cpp_com_object_class; Il2CppClass *customattribute_data_class; Il2CppClass *version; Il2CppClass *culture_info; Il2CppClass *async_call_class; Il2CppClass *assembly_class; Il2CppClass *mono_assembly_class; Il2CppClass *assembly_name_class; Il2CppClass *mono_field_class; Il2CppClass *mono_method_class; Il2CppClass *mono_method_info_class; Il2CppClass *mono_property_info_class; Il2CppClass *parameter_info_class; Il2CppClass *mono_parameter_info_class; Il2CppClass *module_class; Il2CppClass *pointer_class; Il2CppClass *system_exception_class; Il2CppClass *argument_exception_class; Il2CppClass *wait_handle_class; Il2CppClass *safe_handle_class; Il2CppClass *sort_key_class; Il2CppClass *dbnull_class; Il2CppClass *error_wrapper_class; Il2CppClass *missing_class; Il2CppClass *value_type_class; Il2CppClass *threadpool_wait_callback_class; MethodInfo *threadpool_perform_wait_callback_method; Il2CppClass *mono_method_message_class; Il2CppClass* ireference_class; Il2CppClass* ikey_value_pair_class; Il2CppClass* key_value_pair_class; Il2CppClass* windows_foundation_uri_class; Il2CppClass* windows_foundation_iuri_runtime_class_class; Il2CppClass* system_uri_class; } Il2CppDefaults; extern Il2CppDefaults il2cpp_defaults; typedef struct Il2CppClass Il2CppClass; typedef struct MethodInfo MethodInfo; typedef struct FieldInfo FieldInfo; typedef struct Il2CppObject Il2CppObject; typedef struct MemberInfo MemberInfo; typedef struct CustomAttributesCache { int count; Il2CppObject** attributes; } CustomAttributesCache; typedef struct CustomAttributeTypeCache { int count; Il2CppClass** attributeTypes; } CustomAttributeTypeCache; typedef void (*CustomAttributesCacheGenerator)(CustomAttributesCache*); const int THREAD_STATIC_FIELD_OFFSET = -1; typedef struct FieldInfo { const char* name; const Il2CppType* type; Il2CppClass *parent; int32_t offset; CustomAttributeIndex customAttributeIndex; uint32_t token; } FieldInfo; typedef struct PropertyInfo { Il2CppClass *parent; const char *name; const MethodInfo *get; const MethodInfo *set; uint32_t attrs; CustomAttributeIndex customAttributeIndex; uint32_t token; } PropertyInfo; typedef struct EventInfo { const char* name; const Il2CppType* eventType; Il2CppClass* parent; const MethodInfo* add; const MethodInfo* remove; const MethodInfo* raise; CustomAttributeIndex customAttributeIndex; uint32_t token; } EventInfo; typedef struct ParameterInfo { const char* name; int32_t position; uint32_t token; CustomAttributeIndex customAttributeIndex; const Il2CppType* parameter_type; } ParameterInfo; typedef void* (*InvokerMethod)(Il2CppMethodPointer, const MethodInfo*, void*, void**); typedef union Il2CppRGCTXData { void* rgctxDataDummy; const MethodInfo* method; const Il2CppType* type; Il2CppClass* klass; } Il2CppRGCTXData; typedef struct MethodInfo { Il2CppMethodPointer methodPointer; InvokerMethod invoker_method; const char* name; Il2CppClass *declaring_type; const Il2CppType *return_type; const ParameterInfo* parameters; union { const Il2CppRGCTXData* rgctx_data; const Il2CppMethodDefinition* methodDefinition; }; union { const Il2CppGenericMethod* genericMethod; const Il2CppGenericContainer* genericContainer; }; CustomAttributeIndex customAttributeIndex; uint32_t token; uint16_t flags; uint16_t iflags; uint16_t slot; uint8_t parameters_count; uint8_t is_generic : 1; uint8_t is_inflated : 1; } MethodInfo; typedef struct Il2CppRuntimeInterfaceOffsetPair { Il2CppClass* interfaceType; int32_t offset; } Il2CppRuntimeInterfaceOffsetPair; typedef void (*PInvokeMarshalToNativeFunc)(void* managedStructure, void* marshaledStructure); typedef void (*PInvokeMarshalFromNativeFunc)(void* marshaledStructure, void* managedStructure); typedef void (*PInvokeMarshalCleanupFunc)(void* marshaledStructure); typedef struct Il2CppIUnknown* (*CreateCCWFunc)(Il2CppObject* obj); typedef struct Il2CppInteropData { Il2CppMethodPointer delegatePInvokeWrapperFunction; PInvokeMarshalToNativeFunc pinvokeMarshalToNativeFunction; PInvokeMarshalFromNativeFunc pinvokeMarshalFromNativeFunction; PInvokeMarshalCleanupFunc pinvokeMarshalCleanupFunction; CreateCCWFunc createCCWFunction; const Il2CppGuid* guid; const Il2CppType* type; } Il2CppInteropData; typedef struct Il2CppClass { const Il2CppImage* image; void* gc_desc; const char* name; const char* namespaze; const Il2CppType* byval_arg; const Il2CppType* this_arg; Il2CppClass* element_class; Il2CppClass* castClass; Il2CppClass* declaringType; Il2CppClass* parent; Il2CppGenericClass *generic_class; const Il2CppTypeDefinition* typeDefinition; const Il2CppInteropData* interopData; FieldInfo* fields; const EventInfo* events; const PropertyInfo* properties; const MethodInfo** methods; Il2CppClass** nestedTypes; Il2CppClass** implementedInterfaces; Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; void* static_fields; const Il2CppRGCTXData* rgctx_data; struct Il2CppClass** typeHierarchy; uint32_t cctor_started; uint32_t cctor_finished; __attribute__((aligned(8))) uint64_t cctor_thread; GenericContainerIndex genericContainerIndex; CustomAttributeIndex customAttributeIndex; uint32_t instance_size; uint32_t actualSize; uint32_t element_size; int32_t native_size; uint32_t static_fields_size; uint32_t thread_static_fields_size; int32_t thread_static_fields_offset; uint32_t flags; uint32_t token; uint16_t method_count; uint16_t property_count; uint16_t field_count; uint16_t event_count; uint16_t nested_type_count; uint16_t vtable_count; uint16_t interfaces_count; uint16_t interface_offsets_count; uint8_t typeHierarchyDepth; uint8_t genericRecursionDepth; uint8_t rank; uint8_t minimumAlignment; uint8_t packingSize; uint8_t valuetype : 1; uint8_t initialized : 1; uint8_t enumtype : 1; uint8_t is_generic : 1; uint8_t has_references : 1; uint8_t init_pending : 1; uint8_t size_inited : 1; uint8_t has_finalize : 1; uint8_t has_cctor : 1; uint8_t is_blittable : 1; uint8_t is_import_or_windows_runtime : 1; uint8_t is_vtable_initialized : 1; VirtualInvokeData vtable[32]; } Il2CppClass; typedef struct Il2CppClass_0 { const Il2CppImage* image; void* gc_desc; const char* name; const char* namespaze; const Il2CppType* byval_arg; const Il2CppType* this_arg; Il2CppClass* element_class; Il2CppClass* castClass; Il2CppClass* declaringType; Il2CppClass* parent; Il2CppGenericClass * generic_class; const Il2CppTypeDefinition* typeDefinition; const Il2CppInteropData* interopData; FieldInfo* fields; const EventInfo* events; const PropertyInfo* properties; const MethodInfo** methods; Il2CppClass** nestedTypes; Il2CppClass** implementedInterfaces; } Il2CppClass_0; typedef struct Il2CppClass_1 { struct Il2CppClass** typeHierarchy; uint32_t cctor_started; uint32_t cctor_finished; #ifdef IS_32BIT uint32_t cctor_thread__padding; uint32_t cctor_thread; uint32_t cctor_thread__hi; #else __attribute__((aligned(8))) uint64_t cctor_thread; #endif GenericContainerIndex genericContainerIndex; CustomAttributeIndex customAttributeIndex; uint32_t instance_size; uint32_t actualSize; uint32_t element_size; int32_t native_size; uint32_t static_fields_size; uint32_t thread_static_fields_size; int32_t thread_static_fields_offset; uint32_t flags; uint32_t token; uint16_t method_count; uint16_t property_count; uint16_t field_count; uint16_t event_count; uint16_t nested_type_count; uint16_t vtable_count; uint16_t interfaces_count; uint16_t interface_offsets_count; uint8_t typeHierarchyDepth; uint8_t genericRecursionDepth; uint8_t rank; uint8_t minimumAlignment; uint8_t packingSize; uint8_t valuetype : 1; uint8_t initialized : 1; uint8_t enumtype : 1; uint8_t is_generic : 1; uint8_t has_references : 1; uint8_t init_pending : 1; uint8_t size_inited : 1; uint8_t has_finalize : 1; uint8_t has_cctor : 1; uint8_t is_blittable : 1; uint8_t is_import_or_windows_runtime : 1; uint8_t is_vtable_initialized : 1; } Il2CppClass_1; typedef struct __attribute__((aligned(8))) Il2CppClass_Merged { struct Il2CppClass_0 _0; Il2CppRuntimeInterfaceOffsetPair* interfaceOffsets; void* static_fields; const Il2CppRGCTXData* rgctx_data; struct Il2CppClass_1 _1; VirtualInvokeData vtable[32]; } Il2CppClass_Merged; typedef struct Il2CppTypeDefinitionSizes { uint32_t instance_size; int32_t native_size; uint32_t static_fields_size; uint32_t thread_static_fields_size; } Il2CppTypeDefinitionSizes; typedef struct Il2CppDomain { Il2CppAppDomain* domain; Il2CppAppDomainSetup* setup; Il2CppAppContext* default_context; const char* friendly_name; uint32_t domain_id; volatile int threadpool_jobs; } Il2CppDomain; typedef struct Il2CppImage { const char* name; const char *nameNoExt; AssemblyIndex assemblyIndex; TypeDefinitionIndex typeStart; uint32_t typeCount; TypeDefinitionIndex exportedTypeStart; uint32_t exportedTypeCount; MethodIndex entryPointIndex; Il2CppNameToTypeDefinitionIndexHashTable* nameToClassHashTable; uint32_t token; } Il2CppImage; typedef struct Il2CppCodeGenOptions { bool enablePrimitiveValueTypeGenericSharing; } Il2CppCodeGenOptions; typedef struct Il2CppCodeRegistration { uint32_t methodPointersCount; const Il2CppMethodPointer* methodPointers; uint32_t reversePInvokeWrapperCount; const Il2CppMethodPointer* reversePInvokeWrappers; uint32_t genericMethodPointersCount; const Il2CppMethodPointer* genericMethodPointers; uint32_t invokerPointersCount; const InvokerMethod* invokerPointers; CustomAttributeIndex customAttributeCount; const CustomAttributesCacheGenerator* customAttributeGenerators; uint32_t unresolvedVirtualCallCount; const Il2CppMethodPointer* unresolvedVirtualCallPointers; uint32_t interopDataCount; Il2CppInteropData* interopData; } Il2CppCodeRegistration; typedef struct Il2CppMetadataRegistration { int32_t genericClassesCount; Il2CppGenericClass* const * genericClasses; int32_t genericInstsCount; const Il2CppGenericInst* const * genericInsts; int32_t genericMethodTableCount; const Il2CppGenericMethodFunctionsDefinitions* genericMethodTable; int32_t typesCount; const Il2CppType* const * types; int32_t methodSpecsCount; const Il2CppMethodSpec* methodSpecs; FieldIndex fieldOffsetsCount; const int32_t** fieldOffsets; TypeDefinitionIndex typeDefinitionsSizesCount; const Il2CppTypeDefinitionSizes** typeDefinitionsSizes; const size_t metadataUsagesCount; void** const* metadataUsages; } Il2CppMetadataRegistration; typedef struct Il2CppRuntimeStats { uint64_t new_object_count; uint64_t initialized_class_count; uint64_t method_count; uint64_t class_static_data_size; uint64_t generic_instance_count; uint64_t generic_class_count; uint64_t inflated_method_count; uint64_t inflated_type_count; bool enabled; } Il2CppRuntimeStats; extern Il2CppRuntimeStats il2cpp_runtime_stats; typedef struct Il2CppPerfCounters { uint32_t jit_methods; uint32_t jit_bytes; uint32_t jit_time; uint32_t jit_failures; uint32_t exceptions_thrown; uint32_t exceptions_filters; uint32_t exceptions_finallys; uint32_t exceptions_depth; uint32_t aspnet_requests_queued; uint32_t aspnet_requests; uint32_t gc_collections0; uint32_t gc_collections1; uint32_t gc_collections2; uint32_t gc_promotions0; uint32_t gc_promotions1; uint32_t gc_promotion_finalizers; uint32_t gc_gen0size; uint32_t gc_gen1size; uint32_t gc_gen2size; uint32_t gc_lossize; uint32_t gc_fin_survivors; uint32_t gc_num_handles; uint32_t gc_allocated; uint32_t gc_induced; uint32_t gc_time; uint32_t gc_total_bytes; uint32_t gc_committed_bytes; uint32_t gc_reserved_bytes; uint32_t gc_num_pinned; uint32_t gc_sync_blocks; uint32_t remoting_calls; uint32_t remoting_channels; uint32_t remoting_proxies; uint32_t remoting_classes; uint32_t remoting_objects; uint32_t remoting_contexts; uint32_t loader_classes; uint32_t loader_total_classes; uint32_t loader_appdomains; uint32_t loader_total_appdomains; uint32_t loader_assemblies; uint32_t loader_total_assemblies; uint32_t loader_failures; uint32_t loader_bytes; uint32_t loader_appdomains_uloaded; uint32_t thread_contentions; uint32_t thread_queue_len; uint32_t thread_queue_max; uint32_t thread_num_logical; uint32_t thread_num_physical; uint32_t thread_cur_recognized; uint32_t thread_num_recognized; uint32_t interop_num_ccw; uint32_t interop_num_stubs; uint32_t interop_num_marshals; uint32_t security_num_checks; uint32_t security_num_link_checks; uint32_t security_time; uint32_t security_depth; uint32_t unused; uint64_t threadpool_workitems; uint64_t threadpool_ioworkitems; unsigned int threadpool_threads; unsigned int threadpool_iothreads; } Il2CppPerfCounters; typedef struct Il2CppClass Il2CppClass; typedef struct MethodInfo MethodInfo; typedef struct PropertyInfo PropertyInfo; typedef struct FieldInfo FieldInfo; typedef struct EventInfo EventInfo; typedef struct Il2CppType Il2CppType; typedef struct Il2CppAssembly Il2CppAssembly; typedef struct Il2CppException Il2CppException; typedef struct Il2CppImage Il2CppImage; typedef struct Il2CppDomain Il2CppDomain; typedef struct Il2CppString Il2CppString; typedef struct Il2CppReflectionMethod Il2CppReflectionMethod; typedef struct Il2CppAsyncCall Il2CppAsyncCall; typedef struct Il2CppIUnknown Il2CppIUnknown; typedef struct Il2CppWaitHandle Il2CppWaitHandle; typedef struct MonitorData MonitorData; typedef struct FastMutex FastMutex; typedef struct Thread Thread; typedef struct Il2CppReflectionAssembly Il2CppReflectionAssembly; typedef struct Il2CppObject { Il2CppClass *klass; MonitorData *monitor; } Il2CppObject; typedef int32_t il2cpp_array_lower_bound_t; typedef struct Il2CppArrayBounds { il2cpp_array_size_t length; il2cpp_array_lower_bound_t lower_bound; } Il2CppArrayBounds; typedef struct Il2CppArray { Il2CppObject Object; Il2CppArrayBounds *bounds; il2cpp_array_size_t max_length; } Il2CppArray; typedef struct Il2CppArraySize { Il2CppArray Array; __attribute__((aligned(8))) void* vector; } Il2CppArraySize; typedef struct Il2CppString { Il2CppObject object; int32_t length; Il2CppChar chars[32]; } Il2CppString; typedef struct Il2CppReflectionType { Il2CppObject object; const Il2CppType *type; } Il2CppReflectionType; typedef struct Il2CppReflectionRuntimeType { Il2CppReflectionType type; Il2CppObject *type_info; Il2CppObject* genericCache; Il2CppObject* serializationCtor; } Il2CppReflectionRuntimeType; typedef struct Il2CppReflectionMonoType { Il2CppReflectionRuntimeType type; } Il2CppReflectionMonoType; typedef struct Il2CppReflectionEvent { Il2CppObject object; Il2CppObject *cached_add_event; } Il2CppReflectionEvent; typedef struct Il2CppReflectionMonoEvent { Il2CppReflectionEvent event; Il2CppReflectionType* reflectedType; const EventInfo* eventInfo; } Il2CppReflectionMonoEvent; typedef struct Il2CppReflectionMonoEventInfo { Il2CppReflectionType* declaringType; Il2CppReflectionType* reflectedType; Il2CppString* name; Il2CppReflectionMethod* addMethod; Il2CppReflectionMethod* removeMethod; Il2CppReflectionMethod* raiseMethod; uint32_t eventAttributes; Il2CppArray* otherMethods; } Il2CppReflectionMonoEventInfo; typedef struct Il2CppReflectionField { Il2CppObject object; Il2CppClass *klass; FieldInfo *field; Il2CppString *name; Il2CppReflectionType *type; uint32_t attrs; } Il2CppReflectionField; typedef struct Il2CppReflectionProperty { Il2CppObject object; Il2CppClass *klass; const PropertyInfo *property; } Il2CppReflectionProperty; typedef struct Il2CppReflectionMethod { Il2CppObject object; const MethodInfo *method; Il2CppString *name; Il2CppReflectionType *reftype; } Il2CppReflectionMethod; typedef struct Il2CppReflectionGenericMethod { Il2CppReflectionMethod base; } Il2CppReflectionGenericMethod; typedef struct Il2CppMethodInfo { Il2CppReflectionType *parent; Il2CppReflectionType *ret; uint32_t attrs; uint32_t implattrs; uint32_t callconv; } Il2CppMethodInfo; typedef struct Il2CppPropertyInfo { Il2CppReflectionType* parent; Il2CppReflectionType* declaringType; Il2CppString *name; Il2CppReflectionMethod *get; Il2CppReflectionMethod *set; uint32_t attrs; } Il2CppPropertyInfo; typedef struct Il2CppReflectionParameter { Il2CppObject object; Il2CppReflectionType *ClassImpl; Il2CppObject *DefaultValueImpl; Il2CppObject *MemberImpl; Il2CppString *NameImpl; int32_t PositionImpl; uint32_t AttrsImpl; Il2CppObject *MarshalAsImpl; } Il2CppReflectionParameter; typedef struct Il2CppReflectionModule { Il2CppObject obj; const Il2CppImage* image; Il2CppReflectionAssembly* assembly; Il2CppString* fqname; Il2CppString* name; Il2CppString* scopename; bool is_resource; uint32_t token; } Il2CppReflectionModule; typedef struct Il2CppReflectionAssemblyName { Il2CppObject obj; Il2CppString *name; Il2CppString *codebase; int32_t major, minor, build, revision; Il2CppObject *cultureInfo; uint32_t flags; uint32_t hashalg; Il2CppObject *keypair; Il2CppArray *publicKey; Il2CppArray *keyToken; uint32_t versioncompat; Il2CppObject *version; uint32_t processor_architecture; uint32_t contentType; } Il2CppReflectionAssemblyName; typedef struct Il2CppReflectionAssembly { Il2CppObject object; const Il2CppAssembly *assembly; Il2CppObject *resolve_event_holder; Il2CppObject *evidence; Il2CppObject *minimum; Il2CppObject *optional; Il2CppObject *refuse; Il2CppObject *granted; Il2CppObject *denied; bool from_byte_array; Il2CppString *name; } Il2CppReflectionAssembly; typedef struct Il2CppReflectionMarshal { Il2CppObject object; int32_t count; int32_t type; int32_t eltype; Il2CppString* guid; Il2CppString* mcookie; Il2CppString* marshaltype; Il2CppObject* marshaltyperef; int32_t param_num; bool has_size; } Il2CppReflectionMarshal; typedef struct Il2CppReflectionPointer { Il2CppObject object; void* data; Il2CppReflectionType* type; } Il2CppReflectionPointer; typedef struct Il2CppInternalThread { Il2CppObject obj; int lock_thread_id; Thread* handle; void* native_handle; Il2CppArray* cached_culture_info; Il2CppChar* name; int name_len; uint32_t state; Il2CppObject* abort_exc; int abort_state_handle; uint64_t tid; void* stack_ptr; void** static_data; void* runtime_thread_info; Il2CppObject* current_appcontext; Il2CppObject* root_domain_thread; Il2CppArray* _serialized_principal; int _serialized_principal_version; void* appdomain_refs; int32_t interruption_requested; FastMutex* synch_cs; bool threadpool_thread; bool thread_interrupt_requested; int stack_size; uint8_t apartment_state; int critical_region_level; int managed_id; uint32_t small_id; void* manage_callback; void* interrupt_on_stop; void* flags; void* thread_pinning_ref; void* abort_protected_block_count; int32_t priority; void* owned_mutexes; void * suspended; int32_t self_suspended; size_t thread_state; size_t unused2; void* last; } Il2CppInternalThread; typedef struct Il2CppIOSelectorJob { Il2CppObject object; int32_t operation; Il2CppObject *callback; Il2CppObject *state; } Il2CppIOSelectorJob; typedef enum { CallType_Sync = 0, CallType_BeginInvoke = 1, CallType_EndInvoke = 2, CallType_OneWay = 3 } Il2CppCallType; typedef struct Il2CppMethodMessage { Il2CppObject obj; Il2CppReflectionMethod *method; Il2CppArray *args; Il2CppArray *names; Il2CppArray *arg_types; Il2CppObject *ctx; Il2CppObject *rval; Il2CppObject *exc; Il2CppAsyncResult *async_result; uint32_t call_type; } Il2CppMethodMessage; typedef struct Il2CppAppDomainSetup { Il2CppObject object; Il2CppString* application_base; Il2CppString* application_name; Il2CppString* cache_path; Il2CppString* configuration_file; Il2CppString* dynamic_base; Il2CppString* license_file; Il2CppString* private_bin_path; Il2CppString* private_bin_path_probe; Il2CppString* shadow_copy_directories; Il2CppString* shadow_copy_files; uint8_t publisher_policy; uint8_t path_changed; int loader_optimization; uint8_t disallow_binding_redirects; uint8_t disallow_code_downloads; Il2CppObject* activation_arguments; Il2CppObject* domain_initializer; Il2CppObject* application_trust; Il2CppArray* domain_initializer_args; uint8_t disallow_appbase_probe; Il2CppArray* configuration_bytes; Il2CppArray* serialized_non_primitives; } Il2CppAppDomainSetup; typedef struct Il2CppThread { Il2CppObject obj; Il2CppInternalThread* internal_thread; Il2CppObject* start_obj; Il2CppException* pending_exception; Il2CppObject* principal; int32_t principal_version; Il2CppDelegate* delegate; Il2CppObject* executionContext; bool executionContextBelongsToOuterScope; } Il2CppThread; typedef struct Il2CppException { Il2CppObject Object; Il2CppString* className; Il2CppString* message; Il2CppObject* _data; Il2CppException* inner_ex; Il2CppString* _helpURL; Il2CppArray* trace_ips; Il2CppString* stack_trace; Il2CppString* remote_stack_trace; int remote_stack_index; Il2CppObject* _dynamicMethods; il2cpp_hresult_t hresult; Il2CppString* source; Il2CppObject* safeSerializationManager; Il2CppArray* captured_traces; Il2CppArray* native_trace_ips; } Il2CppException; typedef struct Il2CppSystemException { Il2CppException base; } Il2CppSystemException; typedef struct Il2CppArgumentException { Il2CppException base; Il2CppString *argName; } Il2CppArgumentException; typedef struct Il2CppTypedRef { Il2CppType *type; void* value; Il2CppClass *klass; } Il2CppTypedRef; typedef struct Il2CppDelegate { Il2CppObject object; Il2CppMethodPointer method_ptr; InvokerMethod invoke_impl; Il2CppObject *target; const MethodInfo *method; void* delegate_trampoline; intptr_t extraArg; uint8_t **method_code; Il2CppReflectionMethod *method_info; Il2CppReflectionMethod *original_method_info; Il2CppObject *data; bool method_is_virtual; } Il2CppDelegate; typedef struct Il2CppMulticastDelegate { Il2CppDelegate delegate; Il2CppArray *delegates; } Il2CppMulticastDelegate; typedef struct Il2CppMarshalByRefObject { Il2CppObject obj; Il2CppObject *identity; } Il2CppMarshalByRefObject; typedef struct Il2CppComObject { Il2CppObject Object; Il2CppIUnknown* identity; } Il2CppComObject; typedef struct Il2CppAppDomain { Il2CppMarshalByRefObject mbr; Il2CppDomain *data; } Il2CppAppDomain; typedef struct Il2CppStackFrame { Il2CppObject obj; int32_t il_offset; int32_t native_offset; uint64_t methodAddress; uint32_t methodIndex; Il2CppReflectionMethod *method; Il2CppString *filename; int32_t line; int32_t column; Il2CppString *internal_method_name; } Il2CppStackFrame; typedef struct Il2CppDateTimeFormatInfo { Il2CppObject obj; Il2CppObject* CultureData; Il2CppString* Name; Il2CppString* LangName; Il2CppObject* CompareInfo; Il2CppObject* CultureInfo; Il2CppString* AMDesignator; Il2CppString* PMDesignator; Il2CppString* DateSeparator; Il2CppString* GeneralShortTimePattern; Il2CppString* GeneralLongTimePattern; Il2CppString* TimeSeparator; Il2CppString* MonthDayPattern; Il2CppString* DateTimeOffsetPattern; Il2CppObject* Calendar; uint32_t FirstDayOfWeek; uint32_t CalendarWeekRule; Il2CppString* FullDateTimePattern; Il2CppArray* AbbreviatedDayNames; Il2CppArray* ShortDayNames; Il2CppArray* DayNames; Il2CppArray* AbbreviatedMonthNames; Il2CppArray* MonthNames; Il2CppArray* GenitiveMonthNames; Il2CppArray* GenitiveAbbreviatedMonthNames; Il2CppArray* LeapYearMonthNames; Il2CppString* LongDatePattern; Il2CppString* ShortDatePattern; Il2CppString* YearMonthPattern; Il2CppString* LongTimePattern; Il2CppString* ShortTimePattern; Il2CppArray* YearMonthPatterns; Il2CppArray* ShortDatePatterns; Il2CppArray* LongDatePatterns; Il2CppArray* ShortTimePatterns; Il2CppArray* LongTimePatterns; Il2CppArray* EraNames; Il2CppArray* AbbrevEraNames; Il2CppArray* AbbrevEnglishEraNames; Il2CppArray* OptionalCalendars; bool readOnly; int32_t FormatFlags; int32_t CultureID; bool UseUserOverride; bool UseCalendarInfo; int32_t DataItem; bool IsDefaultCalendar; Il2CppArray* DateWords; Il2CppString* FullTimeSpanPositivePattern; Il2CppString* FullTimeSpanNegativePattern; Il2CppArray* dtfiTokenHash; } Il2CppDateTimeFormatInfo; typedef struct Il2CppNumberFormatInfo { Il2CppObject obj; Il2CppArray* numberGroupSizes; Il2CppArray* currencyGroupSizes; Il2CppArray* percentGroupSizes; Il2CppString* positiveSign; Il2CppString* negativeSign; Il2CppString* numberDecimalSeparator; Il2CppString* numberGroupSeparator; Il2CppString* currencyGroupSeparator; Il2CppString* currencyDecimalSeparator; Il2CppString* currencySymbol; Il2CppString* ansiCurrencySymbol; Il2CppString* naNSymbol; Il2CppString* positiveInfinitySymbol; Il2CppString* negativeInfinitySymbol; Il2CppString* percentDecimalSeparator; Il2CppString* percentGroupSeparator; Il2CppString* percentSymbol; Il2CppString* perMilleSymbol; Il2CppArray* nativeDigits; int dataItem; int numberDecimalDigits; int currencyDecimalDigits; int currencyPositivePattern; int currencyNegativePattern; int numberNegativePattern; int percentPositivePattern; int percentNegativePattern; int percentDecimalDigits; int digitSubstitution; bool readOnly; bool useUserOverride; bool isInvariant; bool validForParseAsNumber; bool validForParseAsCurrency; } Il2CppNumberFormatInfo; typedef struct Il2CppCultureData { Il2CppObject obj; Il2CppString *AMDesignator; Il2CppString *PMDesignator; Il2CppString *TimeSeparator; Il2CppArray *LongTimePatterns; Il2CppArray *ShortTimePatterns; uint32_t FirstDayOfWeek; uint32_t CalendarWeekRule; } Il2CppCultureData; typedef struct Il2CppCalendarData { Il2CppObject obj; Il2CppString *NativeName; Il2CppArray *ShortDatePatterns; Il2CppArray *YearMonthPatterns; Il2CppArray *LongDatePatterns; Il2CppString *MonthDayPattern; Il2CppArray *EraNames; Il2CppArray *AbbreviatedEraNames; Il2CppArray *AbbreviatedEnglishEraNames; Il2CppArray *DayNames; Il2CppArray *AbbreviatedDayNames; Il2CppArray *SuperShortDayNames; Il2CppArray *MonthNames; Il2CppArray *AbbreviatedMonthNames; Il2CppArray *GenitiveMonthNames; Il2CppArray *GenitiveAbbreviatedMonthNames; } Il2CppCalendarData; typedef struct Il2CppCultureInfo { Il2CppObject obj; bool is_read_only; int32_t lcid; int32_t parent_lcid; int32_t datetime_index; int32_t number_index; int32_t default_calendar_type; bool use_user_override; Il2CppNumberFormatInfo* number_format; Il2CppDateTimeFormatInfo* datetime_format; Il2CppObject* textinfo; Il2CppString* name; Il2CppString* englishname; Il2CppString* nativename; Il2CppString* iso3lang; Il2CppString* iso2lang; Il2CppString* win3lang; Il2CppString* territory; Il2CppArray* native_calendar_names; Il2CppString* compareinfo; const void* text_info_data; int dataItem; Il2CppObject* calendar; Il2CppObject* parent_culture; bool constructed; Il2CppArray* cached_serialized_form; Il2CppObject* cultureData; bool isInherited; } Il2CppCultureInfo; typedef struct Il2CppRegionInfo { Il2CppObject obj; int32_t geo_id; Il2CppString* iso2name; Il2CppString* iso3name; Il2CppString* win3name; Il2CppString* english_name; Il2CppString* currency_symbol; Il2CppString* iso_currency_symbol; Il2CppString* currency_english_name; } Il2CppRegionInfo; typedef struct Il2CppSafeHandle { Il2CppObject base; void* handle; int state; bool owns_handle; bool fullyInitialized; } Il2CppSafeHandle; typedef struct Il2CppStringBuilder { Il2CppObject object; Il2CppArray* chunkChars; Il2CppStringBuilder* chunkPrevious; int chunkLength; int chunkOffset; int maxCapacity; } Il2CppStringBuilder; typedef struct Il2CppSocketAddress { Il2CppObject base; int m_Size; Il2CppArray* data; bool m_changed; int m_hash; } Il2CppSocketAddress; typedef struct Il2CppSortKey { Il2CppObject base; Il2CppString *str; Il2CppArray *key; int32_t options; int32_t lcid; } Il2CppSortKey; typedef struct Il2CppErrorWrapper { Il2CppObject base; int32_t errorCode; } Il2CppErrorWrapper; typedef struct Il2CppAsyncResult { Il2CppObject base; Il2CppObject *async_state; Il2CppWaitHandle *handle; Il2CppDelegate *async_delegate; void* data; Il2CppAsyncCall *object_data; bool sync_completed; bool completed; bool endinvoke_called; Il2CppObject *async_callback; Il2CppObject *execution_context; Il2CppObject *original_context; } Il2CppAsyncResult; typedef struct Il2CppAsyncCall { Il2CppObject base; Il2CppMethodMessage *msg; MethodInfo *cb_method; Il2CppDelegate *cb_target; Il2CppObject *state; Il2CppObject *res; Il2CppArray *out_args; } Il2CppAsyncCall; typedef struct Il2CppExceptionWrapper { Il2CppException* ex; } Il2CppExceptionWrapper; typedef struct Il2CppIOAsyncResult { Il2CppObject base; Il2CppDelegate* callback; Il2CppObject* state; Il2CppWaitHandle* wait_handle; bool completed_synchronously; bool completed; } Il2CppIOAsyncResult; typedef struct Il2CppSocketAsyncResult { Il2CppIOAsyncResult base; Il2CppObject* socket; int32_t operation; Il2CppException* delayedException; Il2CppObject* endPoint; Il2CppArray* buffer; int32_t offset; int32_t size; int32_t socket_flags; Il2CppObject* acceptSocket; Il2CppArray* addresses; int32_t port; Il2CppObject* buffers; bool reuseSocket; int32_t currentAddress; Il2CppObject* acceptedSocket; int32_t total; int32_t error; int32_t endCalled; } Il2CppSocketAsyncResult; typedef enum Il2CppResourceLocation { RESOURCE_LOCATION_EMBEDDED = 1, RESOURCE_LOCATION_ANOTHER_ASSEMBLY = 2, RESOURCE_LOCATION_IN_MANIFEST = 4 } Il2CppResourceLocation; typedef struct Il2CppManifestResourceInfo { Il2CppObject object; Il2CppReflectionAssembly* assembly; Il2CppString* filename; uint32_t location; } Il2CppManifestResourceInfo; typedef struct Il2CppAppContext { Il2CppObject obj; int32_t domain_id; int32_t context_id; void* static_data; } Il2CppAppContext; struct Il2CppDecimal { uint16_t reserved; union { struct { uint8_t scale; uint8_t sign; } u; uint16_t signscale; } u; uint32_t Hi32; union { struct { uint32_t Lo32; uint32_t Mid32; } v; uint64_t Lo64; } v; } Il2CppClass; typedef struct Il2CppDouble { uint32_t mantLo : 32; uint32_t mantHi : 20; uint32_t exp : 11; uint32_t sign : 1; } Il2CppDouble; typedef union { Il2CppDouble s; double d; } Il2CppDouble_double; typedef enum { IL2CPP_DECIMAL_CMP_LT = -1, IL2CPP_DECIMAL_CMP_EQ, IL2CPP_DECIMAL_CMP_GT } Il2CppDecimalCompareResult; typedef struct Il2CppSingle { uint32_t mant : 23; uint32_t exp : 8; uint32_t sign : 1; } Il2CppSingle; typedef union { Il2CppSingle s; float f; } Il2CppSingle_float; typedef struct Il2CppGuid { uint32_t data1; uint16_t data2; uint16_t data3; uint8_t data4[8]; } Il2CppGuid; typedef struct Il2CppSafeArrayBound { uint32_t element_count; int32_t lower_bound; } Il2CppSafeArrayBound; typedef struct Il2CppSafeArray { uint16_t dimension_count; uint16_t features; uint32_t element_size; uint32_t lock_count; void* data; Il2CppSafeArrayBound bounds[1]; } Il2CppSafeArray; struct Il2CppWin32Decimal { uint16_t reserved; union { struct { uint8_t scale; uint8_t sign; } s; uint16_t signscale; } u; uint32_t hi32; union { struct { uint32_t lo32; uint32_t mid32; } s2; uint64_t lo64; } u2; }; typedef int16_t IL2CPP_VARIANT_BOOL; typedef enum Il2CppVarType { IL2CPP_VT_EMPTY = 0, IL2CPP_VT_NULL = 1, IL2CPP_VT_I2 = 2, IL2CPP_VT_I4 = 3, IL2CPP_VT_R4 = 4, IL2CPP_VT_R8 = 5, IL2CPP_VT_CY = 6, IL2CPP_VT_DATE = 7, IL2CPP_VT_BSTR = 8, IL2CPP_VT_DISPATCH = 9, IL2CPP_VT_ERROR = 10, IL2CPP_VT_BOOL = 11, IL2CPP_VT_VARIANT = 12, IL2CPP_VT_UNKNOWN = 13, IL2CPP_VT_DECIMAL = 14, IL2CPP_VT_I1 = 16, IL2CPP_VT_UI1 = 17, IL2CPP_VT_UI2 = 18, IL2CPP_VT_UI4 = 19, IL2CPP_VT_I8 = 20, IL2CPP_VT_UI8 = 21, IL2CPP_VT_INT = 22, IL2CPP_VT_UINT = 23, IL2CPP_VT_VOID = 24, IL2CPP_VT_HRESULT = 25, IL2CPP_VT_PTR = 26, IL2CPP_VT_SAFEARRAY = 27, IL2CPP_VT_CARRAY = 28, IL2CPP_VT_USERDEFINED = 29, IL2CPP_VT_LPSTR = 30, IL2CPP_VT_LPWSTR = 31, IL2CPP_VT_RECORD = 36, IL2CPP_VT_INT_PTR = 37, IL2CPP_VT_UINT_PTR = 38, IL2CPP_VT_FILETIME = 64, IL2CPP_VT_BLOB = 65, IL2CPP_VT_STREAM = 66, IL2CPP_VT_STORAGE = 67, IL2CPP_VT_STREAMED_OBJECT = 68, IL2CPP_VT_STORED_OBJECT = 69, IL2CPP_VT_BLOB_OBJECT = 70, IL2CPP_VT_CF = 71, IL2CPP_VT_CLSID = 72, IL2CPP_VT_VERSIONED_STREAM = 73, IL2CPP_VT_BSTR_BLOB = 0xfff, IL2CPP_VT_VECTOR = 0x1000, IL2CPP_VT_ARRAY = 0x2000, IL2CPP_VT_BYREF = 0x4000, IL2CPP_VT_RESERVED = 0x8000, IL2CPP_VT_ILLEGAL = 0xffff, IL2CPP_VT_ILLEGALMASKED = 0xfff, IL2CPP_VT_TYPEMASK = 0xfff, } Il2CppVarType; typedef struct Il2CppVariant { union { struct __tagVARIANT { uint16_t type; uint16_t reserved1; uint16_t reserved2; uint16_t reserved3; union { int64_t llVal; int32_t lVal; uint8_t bVal; int16_t iVal; float fltVal; double dblVal; IL2CPP_VARIANT_BOOL boolVal; int32_t scode; int64_t cyVal; double date; Il2CppChar* bstrVal; Il2CppIUnknown* punkVal; void* pdispVal; Il2CppSafeArray* parray; uint8_t* pbVal; int16_t* piVal; int32_t* plVal; int64_t* pllVal; float* pfltVal; double* pdblVal; IL2CPP_VARIANT_BOOL* pboolVal; int32_t* pscode; int64_t* pcyVal; double* pdate; Il2CppChar* pbstrVal; Il2CppIUnknown** ppunkVal; void** ppdispVal; Il2CppSafeArray** pparray; struct Il2CppVariant* pvarVal; void* byref; char cVal; uint16_t uiVal; uint32_t ulVal; uint64_t ullVal; int intVal; unsigned int uintVal; Il2CppWin32Decimal* pdecVal; char* pcVal; uint16_t* puiVal; uint32_t* pulVal; uint64_t* pullVal; int* pintVal; unsigned int* puintVal; struct __tagBRECORD { void* pvRecord; void* pRecInfo; } n4; } n3; } n2; Il2CppWin32Decimal decVal; } n1; } Il2CppVariant; typedef struct Il2CppFileTime { uint32_t low; uint32_t high; } Il2CppFileTime; typedef struct Il2CppStatStg { Il2CppChar* name; uint32_t type; uint64_t size; Il2CppFileTime mtime; Il2CppFileTime ctime; Il2CppFileTime atime; uint32_t mode; uint32_t locks; Il2CppGuid clsid; uint32_t state; uint32_t reserved; } Il2CppStatStg; typedef struct Il2CppHString__ { int unused; } Il2CppHString__; typedef Il2CppHString__* Il2CppHString; typedef struct Il2CppHStringHeader { union { void* Reserved1; char Reserved2[24]; } Reserved; } Il2CppHStringHeader; typedef struct Il2CppIUnknown { static const Il2CppGuid IID; } Il2CppIUnknown; typedef struct Il2CppISequentialStream { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppISequentialStream; typedef struct Il2CppIStream { Il2CppISequentialStream ISequentialStream; static const Il2CppGuid IID; } Il2CppIStream; typedef struct Il2CppIMarshal { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppIMarshal; typedef struct Il2CppIManagedObject { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppIManagedObject; typedef struct Il2CppIManagedObjectHolder { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppIManagedObjectHolder; typedef struct Il2CppIInspectable { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppIInspectable; typedef struct Il2CppIActivationFactory { Il2CppIInspectable IInspectable; static const Il2CppGuid IID; } Il2CppIActivationFactory; typedef struct Il2CppIRestrictedErrorInfo { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppIRestrictedErrorInfo; typedef struct Il2CppILanguageExceptionErrorInfo { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppILanguageExceptionErrorInfo; typedef struct Il2CppIAgileObject { Il2CppIUnknown IUnknown; static const Il2CppGuid IID; } Il2CppIAgileObject;