[
  {
    "path": ".github/workflows/testbuild.yaml",
    "content": "name: testbuild\r\non: [push]\r\njobs:\r\n    run-testbuild:\r\n        runs-on: windows-latest\r\n        steps:\r\n            - uses: actions/checkout@v2\r\n              with:\r\n                path: sfse\r\n            - run: cmake -B sfse/build -S sfse -DCMAKE_INSTALL_PREFIX=extern sfse\r\n            - run: cmake --build sfse/build --config Release"
  },
  {
    "path": ".gitignore",
    "content": "# visual studio\r\n*.sdf\r\n*.opensdf\r\n*.suo\r\n.vs\r\n*.VC.db\r\n*.VC.opendb\r\n*.ncb\r\n*.user\r\n*.aps\r\n*.vspscc\r\n\r\n# build output\r\n*.tlog\r\n*.lastbuildstate\r\n*.unsuccessfulbuild\r\n*.lib\r\n*.log\r\n*.obj\r\n*.idb\r\n*.pdb\r\n*.res\r\n*.cache\r\nBuildLog.htm\r\n*.exe\r\n*.dll\r\n*.exp\r\n*.ilk\r\n\r\n# scripts\r\nscripts/build_bin\r\nscripts/build_src\r\nscripts/compiler\r\nscripts/merged\r\n\r\n# cmake\r\nbuild/*\r\n\r\nout/*\nCMakeSettings.json\n\r\n# update temp files\r\nsfse_update"
  },
  {
    "path": "CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\nproject(\n\tumbrella\n\tLANGUAGES CXX\n)\n\n# ---- Include guards ----\n\nif(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)\n\tmessage(\n\t\tFATAL_ERROR\n\t\t\t\"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.\"\n)\nendif()\n\n# ---- Add sub projects ----\n\nif (NOT TARGET sfse)\n\tadd_subdirectory(sfse)\nendif()\n\nif (NOT TARGET sfse_common)\n\tadd_subdirectory(sfse_common)\nendif()\n\nif (NOT TARGET sfse_loader)\n\tadd_subdirectory(sfse_loader)\nendif()\n"
  },
  {
    "path": "LICENSE",
    "content": "This applies to sfse/PluginAPI.h:\r\n\r\nCopyright (c) 2023 Ian Patterson\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n\r\n====\r\n\r\nThe remainder of the files are currently not under a permissive license."
  },
  {
    "path": "README.md",
    "content": "![testbuild](https://github.com/ianpatt/sfse/workflows/testbuild/badge.svg)\n## Building\n```\ngit clone https://github.com/ianpatt/sfse\ncmake -B sfse/build -S sfse\ncmake --build sfse/build --config Release\n```\nSolution will be generated at sfse/build/umbrella.sln.\n## Runtime Support\nSFSE supports the latest version of Starfield on Steam. The MS Store/Gamepass version is not supported. No, making it so you can see the files doesn't solve the problem.\n"
  },
  {
    "path": "cmake/configuration.cmake",
    "content": "if (MSVC)\n\tset(COMPILE_OPTIONS_DEBUG\n\t\t/JMC\t# Just My Code debugging\n\t\t/ZI\t# Debug Information Format\n\t)\n\t\n\tset(COMPILE_OPTIONS_RELEASE\n\t\t/Oi\t# Generate Intrinsic Functions\n\t\t/Zi\t# Debug Information Format\n\t)\n\n\ttarget_compile_options(\n\t\t${PROJECT_NAME}\n\t\tPRIVATE\n\t\t\t/MP\t# Build with Multiple Processes\n\t\t\t/W3\t# Warning level\n\t\t\t\n\t\t\t\"$<$<CONFIG:Debug>:${COMPILE_OPTIONS_DEBUG}>\"\n\t\t\t\"$<$<CONFIG:Release>:${COMPILE_OPTIONS_RELEASE}>\"\n\t)\n\t\n\tset(LINK_OPTIONS_DEBUG\n\t\t/INCREMENTAL\t# Link Incrementally\n\t)\n\t\n\tset(LINK_OPTIONS_RELEASE\n\t\t/DEBUG:FULL\t# Generate Debug Info\n\t\t/INCREMENTAL:NO\t# Link Incrementally\n\t\t/OPT:REF\t# Optimizations (eliminate functions/data never referenced)\n\t\t/OPT:ICF\t# Optimizations (perform identical COMDAT folding)\n\t)\n\t\n\ttarget_link_options(\n\t\t${PROJECT_NAME}\n\t\tPRIVATE\n\t\t\t\"$<$<CONFIG:Debug>:${LINK_OPTIONS_DEBUG}>\"\n\t\t\t\"$<$<CONFIG:Release>:${LINK_OPTIONS_RELEASE}>\"\n\t)\nendif()\n"
  },
  {
    "path": "cmake/installation.cmake",
    "content": "option(SFSE_COPY_OUTPUT \"Copies output files to the starfield directory\" OFF)\n\nif (SFSE_COPY_OUTPUT)\n\tadd_custom_command(\n\t\tTARGET ${PROJECT_NAME}\n\t\tPOST_BUILD\n\t\tCOMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${PROJECT_NAME}> \"$ENV{StarfieldPath}\"\n\t\tCOMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PDB_FILE:${PROJECT_NAME}> \"$ENV{StarfieldPath}\"\n\t)\nendif()\n"
  },
  {
    "path": "cmake/versioning.cmake",
    "content": "set(SFSE_VERSION_MAJOR 0)\nset(SFSE_VERSION_MINOR 2)\nset(SFSE_VERSION_PATCH 19)\n\nset(RUNTIME_VERSION_MAJOR 1)\nset(RUNTIME_VERSION_MINOR 16)\nset(RUNTIME_VERSION_PATCH 236)\nset(RUNTIME_VERSION_TYPE 0)\n\nmath(\n\tEXPR\n\tRUNTIME_VERSION_PACKED\n\t\"((${RUNTIME_VERSION_MAJOR} & 0xFF) << 24) | ((${RUNTIME_VERSION_MINOR} & 0xFF) << 16) | ((${RUNTIME_VERSION_PATCH} & 0xFFF) << 4) | (${RUNTIME_VERSION_TYPE} & 0xF)\"\n\tOUTPUT_FORMAT\n\t\tHEXADECIMAL\n)\n"
  },
  {
    "path": "sfse/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake)\n\nproject(\n\tsfse\n\tVERSION ${SFSE_VERSION_MAJOR}.${SFSE_VERSION_MINOR}.${SFSE_VERSION_PATCH}\n\tLANGUAGES CXX\n)\n\n# ---- Include guards ----\n\nif(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)\n\tmessage(\n\t\tFATAL_ERROR\n\t\t\t\"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.\"\n)\nendif()\n\n# ---- Build options ----\n\nset(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)\nset(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF)\n\n# ---- Dependencies ----\n\nif (NOT TARGET sfse_common)\n\tadd_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../sfse_common sfse_common)\t# bundled\nendif()\n\nif (NOT TARGET xbyak)\n\tadd_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../xbyak xbyak)\t# bundled\nendif()\n\n# ---- Add source files ----\n\nfile(GLOB headers CONFIGURE_DEPENDS *.h)\nfile(GLOB sources CONFIGURE_DEPENDS *.cpp)\n\nsource_group(\n\t${PROJECT_NAME}\n\tFILES\n\t\tsfse.cpp\n\t\tsfse.def\n\t\tsfse_version.rc\n)\n\nsource_group(\n\t${PROJECT_NAME}/api\n\tFILES\n\t\tGameChargen.cpp\n\t\tGameChargen.h\n\t\tGameData.cpp\n\t\tGameData.h\n\t\tGameConsole.cpp\n\t\tGameConsole.h\n\t\tGameEvents.h\n\t\tGameExtraData.cpp\n\t\tGameExtraData.h\n\t\tGameFormComponents.h\n\t\tGameForms.cpp\n\t\tGameForms.h\n\t\tGameLock.cpp\n\t\tGameLock.h\n\t\tGameMemory.cpp\n\t\tGameMemory.h\n\t\tGameMenu.h\n\t\tGameObjects.h\n\t\tGameReferences.h\n\t\tGameReflection.h\n\t\tGameRTTI.cpp\n\t\tGameRTTI.h\n\t\tGameRTTI.inl\n\t\tGameScript.cpp\n\t\tGameScript.h\n\t\tGameSettings.cpp\n\t\tGameSettings.h\n\t\tGameStreams.h\n\t\tGameSingleton.h\n\t\tGameTypes.cpp\n\t\tGameTypes.h\n\t\tGameUI.cpp\n\t\tGameUI.h\n\t\tNiExtraData.cpp\n\t\tNiExtraData.h\n\t\tNiObject.cpp\n\t\tNiObject.h\n\t\tNiRTTI.cpp\n\t\tNiRTTI.h\n)\n\nsource_group(\n\t${PROJECT_NAME}/hooks\n\tFILES\n\t\tHooks_Data.cpp\n\t\tHooks_Data.h\n\t\tHooks_Version.cpp\n\t\tHooks_Version.h\n\t\tHooks_Script.cpp\n\t\tHooks_Script.h\n\t\tHooks_Scaleform.cpp\n\t\tHooks_Scaleform.h\n\t\tHooks_Command.cpp\n\t\tHooks_Command.h\n\t\tHooks_Serialization.cpp\n\t\tHooks_Serialization.h\n)\n\nsource_group(\n\t${PROJECT_NAME}/internal\n\tFILES\n\t\tPluginAPI.h\n\t\tPluginManager.cpp\n\t\tPluginManager.h\n\t\tSerialization.cpp\n\t\tSerialization.h\n)\n\nsource_group(\n\t${PROJECT_NAME}/netimmerse\n\tFILES\n\t\tNiTypes.h\n)\n\nsource_group(\n\t${PROJECT_NAME}/papyrus/functions\n\tFILES\n)\n\nsource_group(\n\t${PROJECT_NAME}/papyrus/vm\n\tFILES\n\t\tPapyrusNativeFunctions.h\n)\n\nsource_group(\n\t${PROJECT_NAME}/scaleform\n\tFILES\n\t\tScaleformFunctions.h\n\t\tScaleformLog.h\n\t\tScaleformMemory.cpp\n\t\tScaleformMemory.h\n\t\tScaleformMovie.h\n\t\tScaleformState.h\n\t\tScaleformTypes.h\n\t\tScaleformValue.h\n\t\tScaleformLoader.h\n\t\tScaleformManager.h\n\t\tScaleformTranslator.h\n)\n\n# ---- Create library ----\n\nadd_library(\n\t${PROJECT_NAME}\n\tSHARED\n\t${headers}\n\t${sources}\n\tsfse.def\n\tsfse_version.rc\n)\n\nadd_library(sfse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME})\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/configuration.cmake)\n\nset_target_properties(\n\t${PROJECT_NAME}\n\tPROPERTIES\n\t\tOUTPUT_NAME \"${PROJECT_NAME}_${RUNTIME_VERSION_MAJOR}_${RUNTIME_VERSION_MINOR}_${RUNTIME_VERSION_PATCH}\"\n)\n\ntarget_compile_definitions(\n\t${PROJECT_NAME}\n\tPRIVATE\n\t\tRUNTIME\n\t\tRUNTIME_VERSION=${RUNTIME_VERSION_PACKED}\n)\n\ntarget_compile_features(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\tcxx_std_17\n)\n\ntarget_include_directories(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\t$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>\n\t\t$<INSTALL_INTERFACE:include>\n)\n\ntarget_link_libraries(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\tsfse::sfse_common\n\t\txbyak::xbyak\n)\n\ntarget_compile_options(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\t/wd4200\n)\n\n# ---- Configure all targets ----\n\nset_target_properties(\n\t${PROJECT_NAME}\n\tsfse_common\n\tPROPERTIES\n\t\tMSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Debug>:Debug>DLL\"\n)\n\n# ---- Create an installable target ----\n\ninclude(GNUInstallDirs)\n\ninstall(\n\tTARGETS\n\t\t${PROJECT_NAME}\n\tEXPORT\n\t\t${PROJECT_NAME}-targets\n)\n\ninstall(\n\tFILES\n\t\t${headers}\n\tDESTINATION\n\t\t${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}\n)\n\nconfigure_file(\n\tcmake/config.cmake.in\n\t${PROJECT_NAME}-config.cmake\n\t@ONLY\n)\n\ninstall(\n\tFILES\n\t\t${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake\n\tDESTINATION\n\t\t${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n)\n\ninstall(\n\tEXPORT\n\t\t${PROJECT_NAME}-targets\n\tNAMESPACE\n\t\tsfse::\n\tDESTINATION\n\t\t${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n)\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/installation.cmake)\n"
  },
  {
    "path": "sfse/GameChargen.cpp",
    "content": "#include \"sfse/GameChargen.h\"\r\n\r\nRelocPtr<MenuActor*> TESNPCData::g_actorCheckpoint(0x061F7618);\r\n"
  },
  {
    "path": "sfse/GameChargen.h",
    "content": "#pragma once\n\n#include \"sfse/GameUI.h\"\n#include \"sfse/GameSingleton.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/NiTypes.h\"\n\nclass MenuActor;\n\nnamespace TESNPCData\n{\nclass ChargenDataModel : public IDataModel, public BSTSingletonSDM<ChargenDataModel>\n{\npublic:\n    virtual ~ChargenDataModel();\n\n\tstatic ChargenDataModel* GetSingleton()\n\t{\n\t\tRelocPtr<ChargenDataModel*> singleton(0x061EA138);\n\t\treturn *singleton;\n\t}\n\n\t// Contains main UI data model wrappers, decode these later\n\t// This function will pull data from the TESNPC into this wrapper\n\tDEFINE_MEMBER_FN_1(Update, void, 0x016388A0, MenuActor*); // unk2 removed in 1.9.51\n};\n\nextern RelocPtr<MenuActor*> g_actorCheckpoint;\n}\n\nnamespace BGSCharacterMorph\n{\nclass FacialBoneSlider\n{\npublic:\n\tFacialBoneSlider() : ID(0), unk54(-1), unk58(0), unk40(\"\"), unk48(\"\") { }\n\tvirtual ~FacialBoneSlider() { };\n\n\tvirtual const BSFixedString& GetName() { return BSFixedString::Empty(); };\n\tvirtual void Unk_02() { };\n\tvirtual bool IsZeroToOne() { return true; };\n\tvirtual void Unk_04(bool a_arg1) { };\n\tvirtual const char* Unk_05() { return BSFixedStringCS::Empty().c_str(); };\n\tvirtual void Unk_06(const char* a_arg1) { };\n\n\tDEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free)\n\n\tstruct SliderExtents\n\t{\n\t\tstruct Extents\n\t\t{\n\t\t\tNiPoint3 Position;\n\t\t\tNiPoint3 Rotation;\n\t\t\tNiPoint3 Scale;\n\t\t};\n\n\t\tExtents Minima;\n\t\tExtents Maxima;\n\n\t\tDEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free)\n\t};\n\n\tBSTHashMap<BSFixedStringCS, SliderExtents*>\tBoneExtentMap;\t// 08\n\tBSFixedString\t\t\t\t\t\t\t\tunk40;\t\t\t// 40\n\tBSFixedStringCS\t\t\t\t\t\t\t\tunk48;\t\t\t// 48\n\tu32\t\t\t\t\t\t\t\t\t\t\tID;\t\t\t\t// 50\n\ts32\t\t\t\t\t\t\t\t\t\t\tunk54;\t\t\t// 54\n\ts64\t\t\t\t\t\t\t\t\t\t\tunk58;\t\t\t// 58\n};\nstatic_assert(sizeof(FacialBoneSlider::SliderExtents) == 0x48);\nstatic_assert(sizeof(FacialBoneSlider) == 0x60);\n\nclass FacialBoneSculptSlider : public FacialBoneSlider\n{\npublic:\n\tFacialBoneSculptSlider() : unk60(\"\"), unk68(\"\"), zeroToOne(false) { }\n\tvirtual ~FacialBoneSculptSlider() { };\n\n\tvirtual const BSFixedString& GetName() override { return unk60; };\n\tvirtual void Unk_02() override  { };\n\tvirtual bool IsZeroToOne() override { return zeroToOne; };\n\tvirtual void Unk_04(bool a_arg1) override  { zeroToOne = a_arg1; };\n\tvirtual const char* Unk_05() override  { return unk68.c_str(); }; // ret 0x68 cstring\n\tvirtual void Unk_06(const char* a_arg1) override { unk68 = a_arg1; }; // set 0x68 cstring\n\n\tBSFixedString\tunk60;\t\t// 60\n\tBSFixedStringCS\tunk68;\t\t// 68\n\tbool\t\t\tzeroToOne;\t// 70\n};\nstatic_assert(sizeof(FacialBoneSculptSlider) == 0x78);\n\n}"
  },
  {
    "path": "sfse/GameConsole.cpp",
    "content": "#include \"sfse/GameConsole.h\"\n#include <stdarg.h>\n\nRelocPtr <ConsoleLog*> g_console(0x061E7540);\n\nvoid Console_Print(const char* fmt, ...)\n{\n\tConsoleLog* mgr = *g_console;\n\tif (mgr)\n\t{\n\t\tva_list args;\n\t\tva_start(args, fmt);\n\n\t\tmgr->VPrint(fmt, args);\n\n\t\tva_end(args);\n\t}\n}\n"
  },
  {
    "path": "sfse/GameConsole.h",
    "content": "#pragma once\n\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n\nclass ConsoleLog\n{\npublic:\n\tDEFINE_MEMBER_FN_2(VPrint, void, 0x01EAD440, const char* fmt, va_list args);\n};\n\nextern RelocPtr <ConsoleLog*> g_console;\n\nvoid Console_Print(const char* fmt, ...);\n"
  },
  {
    "path": "sfse/GameData.cpp",
    "content": "#include \"sfse/GameData.h\"\n\nRelocPtr<MaterialDatabase> g_materialDatabase(0x05E84D88);\n"
  },
  {
    "path": "sfse/GameData.h",
    "content": "#pragma once\n\n#include \"sfse/GameTypes.h\"\n#include \"sfse/GameForms.h\"\n#include \"sfse/GameEvents.h\"\n#include \"sfse/NiTypes.h\"\n\nclass TESForm;\nclass TESRegionList;\nclass BGSAddonNode;\nclass TESPackedFile;\nclass TESFile;\nclass BGSAVMData;\n\nstruct TESFileCollection\n{\n\tBSTArray<TESFile*> FileA;\n\tBSTArray<TESFile*> SmallFileA;\n\tBSTArray<TESFile*> MediumFileA;\n};\n\nclass TESFile\n{\npublic:\n\tvirtual ~TESFile();\n\n\tstruct PLUGIN_HEADER\n\t{\n\t\tfloat\tversion;\n\t\tu32\tnumRecords;\n\t\tu32 nextObjectID;\n\n\t\tenum Flags\n\t\t{\n\t\t\tkFlags_Active = (1 << 2)\n\t\t};\n\n\t\tu32\tflags;\n\t};\n\n\tu64\tunk08;\n\tvoid*\tunk10;\n\tu64\tunk18;\n\tu64\tunk20;\n\tu64\tunk28;\n\tu64\tunk30;\n\tchar filePath[0x104]; // 38\n\tu32\tunk13C;\n\tu64\tunk140;\n\tu64\tunk148;\n\tu64\tunk150;\n\tu64\tunk158;\n\tu64\tunk160;\n\tu64\tunk168;\n\tu64\tunk170;\n\tu64\tunk178;\n\tu64\tunk180;\n\tu64\tunk188;\n\tu64\tunk190;\n\tu64\tunk198;\n\tu64\tunk1A0;\n\tu32\tunk1A8;\n\tPLUGIN_HEADER header;\n\tu32\tunk1BC;\n\tBSTArray<BSFixedString> masterNames;\n\tBSTArray<TESFile*> masterFiles;\n\tTESFileCollection fileCollection;\t// 1E0\n\tu64\tunkPad2;\n\tu8\tcCompileIndex;\t\t\t// 218\n\tu16\tsSmallFileCompileIndex;\t// 21A\n\tu8\tpad21C[10];\n\tu16\tunk226;\n\tu16 unk228;\n\tu8\tunk22C[4];\n\tu64\tunk230;\n\tu16\tunk238;\n\tu16\tunk23A;\n\tu32\tunk23C;\n\tu64\tunk240;\n\tu32\tunk248;\n\tu32\tunk24C;\n\tchar* unk250;\n\tu32\tunk258;\n\tu32\tunk25C;\n\n\tstatic const u8 LightIndex = 0xFE;\n\tstatic const u8 MediumIndex = 0xFD;\n\n\tstatic bool IsActive(u8 index) { return index != 0xFF; }\n\tstatic bool IsLight(u8 index) { return index == LightIndex; }\n\tstatic bool IsMedium(u8 index) { return index == MediumIndex; }\n\n\tbool IsActive() const { return IsActive(cCompileIndex); }\n\tbool IsLight() const { return IsLight(cCompileIndex); }\n\tbool IsMedium() const { return IsMedium(cCompileIndex); }\n};\nstatic_assert(sizeof(TESFile) == 0x260);\nstatic_assert(offsetof(TESFile, cCompileIndex) == 0x218);\nstatic_assert(offsetof(TESFile, sSmallFileCompileIndex) == 0x21A);\n\nclass TESPackedFile : public TESFile\n{\npublic:\n\tvirtual ~TESPackedFile();\n\n\tu64\tunk250[(0x3C8 - 0x260) >> 3];\n};\nstatic_assert(sizeof(TESPackedFile) == 0x3C8);\n\nclass TESDataHandler :\n\tpublic BSTEventSource<BGSHotloadCompletedEvent>\n{\npublic:\n\tvirtual ~TESDataHandler();\n\n\tstruct FormItem\n\t{\n\t\tu64\tunk00;\n\t\tBSTArray<TESForm*> pFormsA;\n\t};\n\n\n\n\tvoid* unk28; // BSService::Detail::TService<BSService::Detail::TServiceTraits<TESDataHandler,BSService::Detail::ReferenceGetterDefaultPointer<TESDataHandler *>>>\n\tu64\tunk30;\n\tu64\tunk38;\n\tu64\tunk40;\n\tu64\tunk48;\n\tu64\tunk50;\n\tu64\tunk58;\n\tu64\tunk60;\n\tu64\tunk68;\n\tFormItem pFormArray[static_cast<u64>(FormType::kTotal)];\t// 70\n\tu64 unk14E0;\n\tTESRegionList* regionList;\n\tBSTArray<TESObjectCELL*> unk14F0;\n\tu64\tunk1500;\n\tNiTPrimitiveArray<BGSAddonNode*> unk1508;\n\tu64\tunk1520;\n\tu64\tunk1528;\n\tu64\tunk1530;\n\tu64\tunk1538;\n\tu64 unk1540;\n\tu64 unk1548;\n\tu64 unk1550;\n\tu64 unk1558;\n\tu64 unk1560;\n\tu64 unk1568;\n\n\tBSSimpleList<TESPackedFile*> listFiles; // 1570\n\tTESFileCollection CompiledFileCollection; // 1580\n\tu64 unk1578[(0x17C8 - 0x15B0) >> 3];\n\n\tstatic TESDataHandler* GetSingleton()\n\t{\n\t\tRelocPtr<TESDataHandler*> singleton(0x05FE18A8);\n\t\treturn *singleton;\n\t}\n\n\tuint32_t GetSubIndex(const TESFile* file) const\n\t{\n\t\tif (!file->IsActive())\n\t\t\treturn -1;\n\n\t\tif (file->IsLight())\n\t\t{\n\t\t\treturn file->sSmallFileCompileIndex;\n\t\t}\n\t\telse if (file->IsMedium())\n\t\t{\n\t\t\tint32_t foundIndex = -1;\n\t\t\tfor(uint32_t i = 0; i < CompiledFileCollection.MediumFileA.size(); ++i)\n\t\t\t{\n\t\t\t\tif (file == CompiledFileCollection.MediumFileA[i])\n\t\t\t\t{\n\t\t\t\t\tfoundIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn foundIndex;\n\t\t}\n\n\t\treturn file->cCompileIndex;\n\t}\n\n\tconst TESFile* GetModByFormId(const uint32_t formId)\n\t{\n\t\tuint8_t modIndex = formId >> 24;\n\t\tuint16_t middleIndex = (formId >> 12) & 0xFFF;\n\t\tif (TESFile::IsLight(modIndex))\n\t\t{\n\t\t\tif (middleIndex < CompiledFileCollection.SmallFileA.size())\n\t\t\t{\n\t\t\t\treturn CompiledFileCollection.SmallFileA[middleIndex];\n\t\t\t}\n\t\t}\n\t\telse if (TESFile::IsMedium(modIndex))\n\t\t{\n\t\t\tif (middleIndex < CompiledFileCollection.MediumFileA.size())\n\t\t\t{\n\t\t\t\treturn CompiledFileCollection.MediumFileA[middleIndex];\n\t\t\t}\n\t\t}\n\t\telse if (modIndex < CompiledFileCollection.FileA.size())\n\t\t{\n\t\t\treturn CompiledFileCollection.FileA[modIndex];\n\t\t}\n\t\treturn nullptr;\n\t}\n};\nstatic_assert(offsetof(TESDataHandler, pFormArray) == 0x70);\nstatic_assert(offsetof(TESDataHandler, listFiles) == 0x1570);\nstatic_assert(offsetof(TESDataHandler, CompiledFileCollection) == 0x1580);\n\nstruct MaterialDatabase\n{\n\tBSTHashMap<BSFixedString, BGSAVMData*>\tmaterialMaps[3]; // Simple, Complex, Modulation\n\tBSTHashMap<BSFixedString, void*>\t\tfullMap; // This is probably a set, every value is 0\n};\n\nextern RelocPtr<MaterialDatabase> g_materialDatabase;\n"
  },
  {
    "path": "sfse/GameEvents.h",
    "content": "#pragma once\n\n#include \"sfse/GameTypes.h\"\n#include \"sfse_common/Utilities.h\"\n\nclass Actor;\nstruct BGSHotloadCompletedEvent {};\n\n// BSTGlobalEvent\n\nstruct SnapTemplateUtils\n{\n    struct SnapReplaceEvent {};\n};\nstruct ImageFixtureEvent_RequestImage {};\nstruct ImageFixtureEvent_UnregisterImage {};\nstruct Spaceship\n{\n    struct TakeOffEvent {};\n    struct PlayerMovementOutputEvent {};\n    struct GravJumpEvent {};\n    struct LandedSetEvent {};\n    struct BoughtEvent {};\n    struct ContrabandScanWarningEvent {};\n    struct DockEvent {};\n    struct DynamicNavmeshCompleted {};\n    struct FarTravelEvent {};\n    struct LandingEvent {};\n    struct PlanetScanEvent {};\n    struct RampDownEvent {};\n    struct RefueledEvent {};\n    struct RegisteredEvent {};\n    struct ShieldEvent {};\n    struct ShipAddedEvent {};\n    struct ShipCollisionEvent {};\n    struct ShipCustomizedEvent {};\n    struct SoldEvent {};\n    struct SystemDamagedEvent {};\n    struct SystemPowerAllocationEvent {};\n    struct SystemPowerChangeEvent {};\n    struct SystemRepairedBIEvent {};\n    struct SystemRepairedEvent {};\n    struct TakeDamagEvent {};\n};\nstruct HUDActivityIncreaseEvent {};\nstruct AnimationDataCleanupEvent {};\nstruct AnimationDataSetupEvent {};\nstruct EndLoadGameEvent {};\nstruct StartLoadGameEvent {};\nstruct ShipEditor_SystemSelected {};\nstruct ShipEditor_PreviewUpgrade {};\nstruct ShipEditor_SelectedUpgrade {};\nstruct RuntimeComponentDBFactory\n{\n    struct ReferenceAttach {};\n    struct ReferenceDetach {};\n    struct ReferenceCleared3d {};\n    struct ReferenceDestroy {};\n    struct ReferenceInit {};\n    struct ReferenceRecycle {};\n    struct ReferenceSet3d {};\n    struct Release3DRelatedData {};\n};\nstruct WeaponGroupAssignmentMenu_ChangeWeaponAssignment {};\nstruct WeaponGroupAssignmentMenu_OnHintButtonActivated {};\nstruct ShipEditor_OnExitConfirmCancel {};\nstruct ShipEditor_OnExitConfirmExit {};\nstruct ShipEditor_OnExitConfirmSaveAndExit {};\nstruct ShipEditor_OnFlightCheckTabChanged {};\nstruct ShipEditor_OnWeaponGroupChanged {};\nstruct ShipEditor_OnRenameEndEditText {};\nstruct ShipEditor_OnRenameInputCancelled {};\nstruct ShipEditor_ChangeModuleCategory {};\nstruct ShipEditor_PreviewShipPart {};\nstruct ShipEditor_SelectedShipPart {};\nstruct ShipEditor_OnColorPickerControlChanged {};\nstruct ShipEditor_OnColorPickerTabChanged {};\nstruct ShipEditor_OnColorSliderMouseInput {};\nstruct ShipEditor_OnRecentColorSwatchClicked {};\nstruct ShipBuilder_CloseAllMenus {};\nstruct ShipEditor_OnHintButtonActivated {};\nstruct ShipEditor_RemoveAll3D {};\nstruct ReferenceQueuedEvent {};\nstruct LoadScreenEndEvent {};\nstruct LoadScreenStartEvent {};\nstruct CellAttachDetachEvent {};\nstruct PickRefStateChangedEvent {};\nstruct ActivityTrackerActivityStartedEvent {};\nstruct BSWorldOriginShiftEvent {};\nstruct BGSPlanet\n{\n    struct PlayerKnowledgeFlagSetEvent {};\n};\nstruct StarMap\n{\n    struct PlanetTraitKnownEvent {};\n};\nstruct ResetHistoryDataEvent {};\nstruct TESQuestRewardEvent {};\nstruct HUDWeaponWorldFOVMultChangedEvent {};\nstruct BGSSceneActionPlayerDialogue\n{\n    struct ActionEndEvent {};\n    struct ActionStartEvent {};\n};\n\nstruct AutoLoadDoorRolloverEvent {};\nstruct ClearQuickContainerEvent {};\nstruct ReferenceCellLoadedTemps {};\nstruct Workshop\n{\n    struct CargoLinkAddedEvent {};\n    struct CargoLinkTargetChangedEvent {};\n    struct EnterOutpostBeaconModeEvent {};\n    struct ItemGrabbedEvent {};\n    struct ItemMovedEvent {};\n    struct ItemPlacedEvent {};\n    struct ItemProducedEvent {};\n    struct ItemRemovedEvent {};\n    struct ItemRepairedEvent {};\n    struct ItemScrappedEvent {};\n    struct OutpostNameChangedEvent {};\n    struct OutpostPlacedEvent {};\n    struct PlacementStatusEvent {};\n    struct PowerOffEvent {};\n    struct PowerOnEvent {};\n    struct SnapBehaviorCycledEvent {};\n    struct WorkshopFlyCameraEvent {};\n    struct WorkshopItemPlacedEvent {};\n    struct WorkshopModeEvent {};\n    struct WorkshopOutputLinkEvent {};\n    struct WorkshopStatsChangedEvent {};\n    struct WorkshopUpdateStatsEvent {};\n};\n\nstruct PickRefUpdateEvent {};\n\nstruct ShipCameraStateToggled {};\nstruct PlayerControls\n{\n    struct PlayerJumpPressEvent {};\n    struct PlayerJumpReleaseEvent {};\n    struct PlayerZeroGSprintJustPressedEvent {};\n    struct PlayerZeroGSprintReleasedEvent {};\n    struct PlayerIronSightsEndEvent {};\n    struct PlayerIronSightsStartEvent {};\n};\nstruct PlayerSneakingChangeEvent {};\nstruct SaveLoadEvent {};\nstruct SpaceshipWeaponBinding\n{\n    struct SpaceshipWeaponBindingChangedEvent {};\n};\nstruct BoundaryMenu_FastTravel {};\nstruct BoundaryMenu_ShowMap {};\nstruct PhotoGallery_DeletePhoto {};\nstruct PowersMenu_ActivateEssence {};\nstruct PowersMenu_EquipPower {};\nstruct PowersMenu_FavoritePower {};\nstruct ContainerMenuClosed\n{\n    struct Event {};\n};\nstruct HangarShipSelection_ChangeSystemDisplay {};\nstruct HangarShipSelection_RepairShip {};\nstruct HangarShipSelection_UpgradeSystem {};\nstruct ShipCrewMenu_Close {};\nstruct BinkMovieStoppedPlayingEvent {};\nstruct WorkshopColorMode_ApplyColors {};\nstruct WorkshopColorMode_SelectedTab {};\nstruct WorkshopColorMode_SliderChanged {};\nstruct WorkshopColorMode_SwatchChanged {};\nstruct HUDCrewBuffMessageEvent {};\nstruct CraftingMenu_SessionSummaryEvent {};\nstruct CraftingMenu_CraftItem {};\nstruct CraftingMenu_ExitBench {};\nstruct CraftingMenu_InstallMod {};\nstruct CraftingMenu_RenameItem {};\nstruct CraftingMenu_RevertedModdedItem {};\nstruct CraftingMenu_SelectedMod {};\nstruct CraftingMenu_SelectedModSlot {};\nstruct CraftingMenu_SelectedModdableItem {};\nstruct CraftingMenu_SelectedRecipe {};\nstruct CraftingMenu_SetInspectControls {};\nstruct CraftingMenu_ToggleTracking {};\nstruct CraftingMenu_ViewingModdableItem {};\nstruct ContainerMenu_CloseMenu {};\nstruct InventoryMenu_Change3DView {};\nstruct InventoryMenu_PaperDollTryOn {};\nstruct InventoryMenu_ResetPaperDollInv {};\nstruct UpdateActivateListenerEvent {};\nstruct StartOutpostFromListenerEvent {};\nstruct HUDModeEvent {};\nstruct OpenContainerMenuEventData {};\nstruct OpenContainerMenuFromListenerEvent {};\nstruct HUDRolloverActivationButtonEvent {};\nstruct HUDRolloverActivationQCItemPressEvent {};\nstruct Inventory_SetSort {};\nstruct ShowingQuestMarketTextEvent {};\nstruct TargetHitEvent {};\nstruct PlayerCrosshairModeEvent {};\nstruct ClearHUDMessagesEvent {};\nstruct ShowHUDMessageEvent {};\nstruct PlayerDetectionLevelChangeEvent {};\nstruct ShowCustomWatchAlert {};\nstruct PlayerUpdateEvent {};\nstruct InventoryMenu_ToggleHelmet {};\nstruct InventoryMenu_ToggleSuit {};\nstruct ControlsRemappedEvent {};\nstruct SettingsPanel_CheckBoxChanged {};\nstruct SettingsPanel_ClearBinding {};\nstruct SettingsPanel_OpenCategory {};\nstruct SettingsPanel_OpenSettings {};\nstruct SettingsPanel_RemapConfirmed {};\nstruct SettingsPanel_RemapMode {};\nstruct SettingsPanel_ResetToDefaults {};\nstruct SettingsPanel_SaveControls {};\nstruct SettingsPanel_SaveSettings {};\nstruct SettingsPanel_SliderChanged {};\nstruct SettingsPanel_StepperChanged {};\nstruct SettingsPanel_ValidateControls {};\nstruct ShipCrewMenu_OpenAssignMenu {};\nstruct ShipCrewMenu_SetSort {};\nstruct ShowLongShipBootup {};\nstruct ShipHudQuickContainer_TransferMenu {};\nstruct ShipHud_Activate {};\nstruct ShipHud_BodyViewMarkerDimensions {};\nstruct ShipHud_ChangeComponentSelection {};\nstruct ShipHud_CloseMenu {};\nstruct ShipHud_Deselect {};\nstruct ShipHud_FarTravel {};\nstruct ShipHud_HailAccepted {};\nstruct ShipHud_HailCancelled {};\nstruct ShipHud_JumpToQuestMarker {};\nstruct ShipHud_Land {};\nstruct ShipHud_LandingMarkerMap {};\nstruct ShipHud_Map {};\nstruct ShipHud_OnMonocleToggle {};\nstruct ShipHud_OpenPhotoMode {};\nstruct ShipHud_Repair {};\nstruct ShipHud_SetTargetMode {};\nstruct ShipHud_Target {};\nstruct ShipHud_TargetShipSystem {};\nstruct ShipHud_UntargetShipSystem {};\nstruct ShipHud_UpdateComponentPower {};\nstruct DialogueMenu_CompleteExit {};\nstruct BGSScannerGuideEffectStatusUpdateEvent {};\nstruct GlobalFunc_CloseAllMenus {};\nstruct GlobalFunc_CloseMenu {};\nstruct GlobalFunc_PlayMenuSound {};\nstruct GlobalFunc_StartGameRender {};\nstruct GlobalFunc_UserEvent {};\nstruct ExperienceMeterDisplayData {};\nstruct LevelUp_AnimFinished {};\nstruct LevelUp_OnWidgetShown {};\nstruct LevelUp_OpenDataMenu {};\nstruct LevelUp_ShowSkills {};\nstruct LocationTextWidget_FinishedQueue {};\nstruct DisplayFatigueWarningEvent {};\nstruct SaveLoadMessageStringEvent {};\nstruct HUDNotificationEvent {};\nstruct HUDNotification_MissionActiveWidgetUpdate {};\nstruct HUDNotification_OpenDataMenu {};\nstruct HUDNotification_OpenMissionMenu {};\nstruct HUDNotification_SetMissionActive {};\nstruct PlayerSetWeaponStateEvent {};\nstruct BarterMenu_BuyItem {};\nstruct BarterMenu_CloseMenu {};\nstruct BarterMenu_HideModel {};\nstruct BarterMenu_LoadModel {};\nstruct BarterMenu_SellItem {};\nstruct BarterMenu_SetMouseOverModel {};\nstruct BarterMenu_ShowFailureMessage {};\nstruct BarterMenu_ViewedItem {};\nstruct MissionMenu_ClearState {};\nstruct MissionMenu_PlotToLocation {};\nstruct MissionMenu_RejectQuest {};\nstruct MissionMenu_SaveCategoryIndex {};\nstruct MissionMenu_SaveOpenedId {};\nstruct MissionMenu_ShowItemLocation {};\nstruct MissionMenu_ToggleTrackingQuest {};\nstruct DataSlateButtons_acceptClicked {};\nstruct DataSlateButtons_cancelClicked {};\nstruct DataSlateMenu_playSFX {};\nstruct DataSlateMenu_toggleAudio {};\nstruct InventoryMenu_DropItem {};\nstruct InventoryMenu_HideModel {};\nstruct InventoryMenu_LoadModel {};\nstruct InventoryMenu_OnEnterCategory {};\nstruct InventoryMenu_OpenCargoHold {};\nstruct InventoryMenu_SelectItem {};\nstruct InventoryMenu_SetMouseOverModel {};\nstruct InventoryMenu_ToggleFavorite {};\nstruct MissionBoard_MissionEntryChanged {};\nstruct MissionBoard_MissionEntryPressed {};\nstruct MonocleMenu_Bioscan {};\nstruct MonocleMenu_FastTravel {};\nstruct MonocleMenu_Harvest {};\nstruct MonocleMenu_Initialize {};\nstruct MonocleMenu_Outpost {};\nstruct MonocleMenu_PhotoMode {};\nstruct MonocleMenu_Shutdown {};\nstruct MonocleMenu_SocialSpell {};\nstruct MonocleMenu_StartContainerView {};\nstruct MonocleMenu_StopContainerView {};\nstruct MonocleMenu_SurfaceMap {};\nstruct MonocleMenu_UseListScrollControls {};\nstruct MonocleMenu_ZoomIn {};\nstruct MonocleMenu_ZoomOut {};\nstruct PhotoMode_InitializeCategory {};\nstruct PhotoMode_ResetToDefaults {};\nstruct PhotoMode_SliderChanged {};\nstruct PhotoMode_StepperChanged {};\nstruct PhotoMode_TakeSnapshot {};\nstruct PhotoMode_ToggleHelmet {};\nstruct PhotoMode_ToggleUI {};\nstruct PickpocketMenu_OnItemSelect {};\nstruct ResearchMenu_AddMaterial {};\nstruct ResearchMenu_CategorySelected {};\nstruct ResearchMenu_ExitMenu {};\nstruct ResearchMenu_HideModel {};\nstruct ResearchMenu_PreviewProject {};\nstruct ResearchMenu_ProjectViewed {};\nstruct ResearchMenu_SetInspectControls {};\nstruct ResearchMenu_ToggleTrackingProject {};\nstruct UnlockedTerminalElementEvent {};\nstruct SecurityMenu_BackOutKey {};\nstruct SecurityMenu_CloseMenu {};\nstruct SecurityMenu_ConfirmExit {};\nstruct SecurityMenu_EliminateUnusedKeys {};\nstruct SecurityMenu_GetRingHint {};\nstruct SecurityMenu_SelectNewKey {};\nstruct SecurityMenu_TryUseKey {};\nstruct ShipCrewAssignMenu_Assign {};\nstruct ShipCrewAssignMenu_Unassign {};\nstruct ShipCrewMenu_ViewedItem {};\nstruct Refuel_Accept {};\nstruct Refuel_Cancel {};\nstruct SkillsMenu_Accept {};\nstruct SkillsMenu_AddPatch {};\nstruct SkillsMenu_Cancel {};\nstruct SkillsMenu_ChangeCursorVisibility {};\nstruct SkillsMenu_SaveLastCategory {};\nstruct BSChargenAPI\n{\n    struct BIDataUtils\n    {\n        struct MenuClosedEvent {};\n        struct PresetNPCChangedEvent {};\n    };\n};\nstruct CharGen_BrowChange {};\nstruct CharGen_BrowColorChange {};\nstruct CharGen_CancelTextEntry {};\nstruct CharGen_CloseMenu {};\nstruct CharGen_CyclePronoun {};\nstruct CharGen_DirtScarsEtcChange {};\nstruct CharGen_EndBodyChange {};\nstruct CharGen_EndTextEntry {};\nstruct CharGen_EyeColorChange {};\nstruct CharGen_FacialHairChange {};\nstruct CharGen_FacialHairColorChange {};\nstruct CharGen_HairChange {};\nstruct CharGen_HairColorChange {};\nstruct CharGen_HeadpartPlusSelectorChange {};\nstruct CharGen_HeadpartPresetChange {};\nstruct CharGen_JewelryChange {};\nstruct CharGen_JewelryColorChange {};\nstruct CharGen_MakeupChange {};\nstruct CharGen_MarkingsChange {};\nstruct CharGen_PostBlendColorOptionChange {};\nstruct CharGen_PostBlendFaceChange {};\nstruct CharGen_PostBlendIntensityChange {};\nstruct CharGen_PresetChange {};\nstruct CharGen_RollOffLocomotion {};\nstruct CharGen_RollOnLocomotion {};\nstruct CharGen_RotatePaperdoll {};\nstruct CharGen_SetAdditionalSlider {};\nstruct CharGen_SetBackground {};\nstruct CharGen_SetBlockInputUnderPopup {};\nstruct CharGen_SetBodyValues {};\nstruct CharGen_SetCameraPosition {};\nstruct CharGen_SetPronoun {};\nstruct CharGen_SetSex {};\nstruct CharGen_SetSlider {};\nstruct CharGen_SetTrait {};\nstruct CharGen_ShowChooseBackgroundMessage {};\nstruct CharGen_ShowPlayerRenameMessage {};\nstruct CharGen_SkintoneChange {};\nstruct CharGen_StartBodyChange {};\nstruct CharGen_StartTextEntry {};\nstruct CharGen_SwitchBodyType {};\nstruct CharGen_SwitchLocomotion {};\nstruct CharGen_TeethChange {};\nstruct CharGen_TeethRollOff {};\nstruct CharGen_TeethRollOn {};\nstruct CharGen_ToggleMarking {};\nstruct CharGen_TogglePreviewHabSuit {};\nstruct UIMenuChargenMenuDisablePaperdoll {};\nstruct DataMenu_CloseMenu {};\nstruct DataMenu_ClosedForSubMenu {};\nstruct DataMenu_Missions {};\nstruct DataMenu_PlotToLocation {};\nstruct DataMenu_Reopened {};\nstruct DataMenu_SelectedAttributesMenu {};\nstruct DataMenu_SelectedInventoryMenu {};\nstruct DataMenu_SelectedMapMenu {};\nstruct DataMenu_SelectedPowersMenu {};\nstruct DataMenu_SelectedShipMenu {};\nstruct DataMenu_SelectedStatusMenu {};\nstruct DataMenu_SetMenuForQuickEntry {};\nstruct DataMenu_SetPaperDollActive {};\nstruct PauseMenu_ActionCanceled {};\nstruct PauseMenu_ConfirmAction {};\nstruct PauseMenu_ConfirmLoad {};\nstruct PauseMenu_ConfirmSave {};\nstruct PauseMenu_DeleteSave {};\nstruct PauseMenu_QuitToDesktop {};\nstruct PauseMenu_SetCharacter {};\nstruct PauseMenu_StartAction {};\nstruct PauseMenu_StartLoad {};\nstruct PauseMenu_UploadSave {};\nstruct PlayBink_CloseMenu {};\nstruct Reticle_OnLongAnimFinished {};\nstruct ShipHudQuickContainer_TransferItem {};\nstruct ShipHud_AbortJump {};\nstruct ShipHud_DockRequested {};\nstruct ShipHud_HailShip {};\nstruct ShipHud_UpdateTargetPanelRect {};\nstruct TakeoffMenu_CloseMenu {};\nstruct TakeoffMenu_ExitShip {};\nstruct TakeoffMenu_Launch {};\nstruct StarMapMenu_LandingInputInProgress {};\nstruct StarMapMenu_MarkerGroupContainerVisibilityChanged {};\nstruct StarMapMenu_MarkerGroupEntryClicked {};\nstruct StarMapMenu_MarkerGroupEntryHoverChanged {};\nstruct StarMapMenu_ScanPlanet {};\nstruct StarMapMenu_SelectedLandingSite {};\nstruct StarMapMenu_SelectedLandingSiteFailed {};\nstruct StarMapMenu_ShowRealCursor {};\nstruct StarMapMenu_QuickSelectChange {};\nstruct StarMapMenu_Galaxy_FocusSystem {};\nstruct StarMapMenu_OnGalaxyViewInitialized {};\nstruct StarMapMenu_ExecuteRoute {};\nstruct StarMapMenu_OnCancel {};\nstruct StarMapMenu_OnClearRoute {};\nstruct StarMapMenu_OnExitStarMap {};\nstruct StarMapMenu_OnHintButtonClicked {};\nstruct StarMapMenu_OnOutpostEntrySelected {};\nstruct StarMapMenu_ReadyToClose {};\nstruct SurfaceMapMenu_MarkerClicked {};\nstruct SurfaceMapMenu_TryPlaceCustomMarker {};\nstruct TerminalMenu_CancelEvent {};\nstruct Terminal_CloseAllViews {};\nstruct Terminal_CloseTopView {};\nstruct Terminal_CloseView {};\nstruct Terminal_MenuItemClick {};\nstruct TestMenu_DoAction {};\nstruct TestMenu_ExitMenu {};\nstruct TestMenu_ShowImages {};\nstruct TestMenu_ShowResources {};\nstruct TestMenu_TestAll {};\nstruct TextInputMenu_EndEditText {};\nstruct TextInputMenu_InputCanceled {};\nstruct TextInputMenu_StartEditText {};\nstruct CraftingMenu_Highlight3D {};\nstruct CraftingMenu_RevertHighlight {};\nstruct WorkshopBuilderMenu_ChangeBuildItem {};\nstruct WorkshopBuilderMenu_SelectedItem {};\nstruct WorkshopBuilderMenu_ToggleTracking {};\nstruct WorkshopMenu_AttemptBuild {};\nstruct WorkshopMenu_CancelAction {};\nstruct WorkshopMenu_ChangeVariant {};\nstruct WorkshopMenu_ConnectionEvent {};\nstruct WorkshopMenu_ExitMenu {};\nstruct WorkshopMenu_MessageCallback {};\nstruct WorkshopMenu_SelectedCategory {};\nstruct WorkshopMenu_SelectedGridObject {};\nstruct WorkshopMenu_ShowExtras {};\nstruct WorkshopMenu_SwitchMode {};\nstruct WorkshopMenu_ToggleDistance {};\nstruct WorkshopMenu_ToggleTracking {};\nstruct WorkshopMenu_ToggleView {};\nstruct WorkshopQuickMenu_ConfirmAction {};\nstruct WorkshopQuickMenu_ExitMenu {};\nstruct WorkshopTargetMenu_TargetHovered {};\nstruct WorkshopTargetMenu_TargetPicked {};\nstruct WorkshopActionButton_HoldFinished {};\nstruct WorkshopActionButton_HoldStopped {};\nstruct WorkshopShared_SetActionHandles {};\nstruct WorkshopShared_StartAction {};\nstruct ModelReferenceEffectEvents\n{\n    struct ReferenceEffectFinished {};\n};\nstruct BGSAcousticSpaceListener\n{\n    struct StackChangedEvent {};\n};\nstruct SpaceshipBIEvents\n{\n    struct ShipPowerAllocationBIEventSent {};\n};\nstruct BGSActorDeathEvent {};\nstruct Research\n{\n    struct ResearchProgressEvent {};\n};\nstruct PlayerAutoAimActorEvent {};\nstruct PlayerInCombatChangeEvent {};\nstruct BlurEvent {};\nstruct ContainerMenu_HideModel {};\nstruct ContainerMenu_Jettison {};\nstruct ContainerMenu_LoadModel {};\nstruct ContainerMenu_OpenRefuelMenu {};\nstruct ContainerMenu_SetMouseOverModel {};\nstruct ContainerMenu_TakeAll {};\nstruct ContainerMenu_ToggleEquip {};\nstruct ContainerMenu_TransferItem {};\nstruct DialogueMenu_OnDialogueSelect {};\nstruct DialogueMenu_OnListVisibilityChange {};\nstruct DialogueMenu_OnPersuasionAutoWin {};\nstruct DialogueMenu_OnScriptedDialogueSelect {};\nstruct DialogueMenu_RequestExit {};\nstruct DialogueMenu_RequestSkipDialogue {};\nstruct FaderMenuDisplayState {};\nstruct FavoritesMenu_AssignQuickkey {};\nstruct FavoritesMenu_UseQuickkey {};\nstruct LoadingMenu_RefreshText {};\nstruct MainMenu_ActionCanceled {};\nstruct MainMenu_ActionConfirmed {};\nstruct MainMenu_ConfirmLoad {};\nstruct MainMenu_DeleteSave {};\nstruct MainMenu_SetCharacter {};\nstruct MainMenu_StartAction {};\nstruct MainMenu_StartLoad {};\nstruct MainMenu_UploadSave {};\nstruct BGSAppPausedEvent {};\nstruct MessageBoxMenu_OnBackOut {};\nstruct MessageBoxMenu_OnButtonPress {};\nstruct MessageBoxMenu_OnScriptedButtonPress {};\nstruct SleepWaitMenu_InterruptRest {};\nstruct SleepWaitMenu_StartRest {};\n\nstruct ContextStackChangedEvent {};\nstruct UpdateSceneRectEvent {};\nstruct GameStalledEvent {};\n\n// more\n\nstruct TESCellNavmeshGeneratedEvent {};\nstruct TESHitEvent {};\nstruct FirstThirdPersonSwitch\n{\n    struct Event {};\n};\nstruct PerkChanged\n{\n    struct Event {};\n};\nstruct TESHarvestEvent\n{\n    struct ItemHarvested {};\n};\nstruct ActivityEvents\n{\n    struct ActivityCompletedEvent {};\n};\nstruct ChallengeCompletedEvent\n{\n    struct Event {};\n};\nstruct InventoryItemEvent\n{\n    struct Event {};\n};\nstruct BooksRead\n{\n    struct Event {};\n};\nstruct LocationExplored\n{\n    struct Event {};\n};\nstruct LocationLinked\n{\n    struct Event {};\n};\nstruct Activation\n{\n    struct Event {};\n};\nstruct ActorCellChangeEvent {};\nstruct ActorHeadAttachedEvent {};\nstruct ActorValueEvents\n{\n    struct ActorValueChangedEvent {};\n};\nstruct AliasChangeEvent {};\nstruct AnimationGraphDependentEvent {};\nstruct BGSAffinityEventEvent {};\nstruct BGSCellGridLoadEvent {};\nstruct BGSEventProcessedEvent {};\nstruct BGSHavokWorldCreatedEvent {};\nstruct BGSLocationLoadedEvent {};\nstruct BGSOnPlayerCompanionDismiss {};\nstruct BGSOnPlayerCompleteResearchEvent {};\nstruct BGSOnPlayerCraftItemEvent {};\nstruct BGSOnPlayerCreateRobotEvent {};\nstruct BGSOnPlayerEnterVertibirdEvent {};\nstruct BGSOnPlayerFallLongDistances {};\nstruct BGSOnPlayerFireWeaponEvent {};\nstruct BGSOnPlayerHealTeammateEvent {};\nstruct BGSOnPlayerLoiteringBeginEvent {};\nstruct BGSOnPlayerLoiteringEndEvent {};\nstruct BGSOnPlayerModArmorWeaponEvent {};\nstruct BGSOnPlayerModRobotEvent {};\nstruct BGSOnPlayerSwimmingEvent {};\nstruct BGSOnPlayerUseWorkBenchEvent {};\nstruct BGSOnSpeechChallengeAvailable {};\nstruct BGSRadiationDamageEvent {};\nstruct BuilderMenuSelectEvent {};\nstruct CrewAssignedEvent {};\nstruct CrewDismissedEvent {};\nstruct DestroyedEvent {};\nstruct HomeShipSetEvent {};\nstruct InstantReferenceInteractionEvent {};\nstruct ItemConsumedEvent {};\nstruct ItemSwappedEvent {};\nstruct LockPickedEvent {};\nstruct MapMarkerDiscoveredEvent {};\nstruct ObjectScannedEvent {};\nstruct PlayerAddItemEvent {};\nstruct PlayerArrestedEvent {};\nstruct PlayerAssaultActorEvent {};\nstruct PlayerBuyShipEvent {};\nstruct PlayerCrimeGoldEvent {};\nstruct PlayerFailedPlotRouteEvent {};\nstruct PlayerJailEvent {};\nstruct PlayerModifiedShipEvent {};\nstruct PlayerMurderActorEvent {};\nstruct PlayerPayFineEvent {};\nstruct PlayerPlanetSurveyCompleteEvent {};\nstruct PlayerPlanetSurveyProgressEvent {};\nstruct PlayerSellShipEvent {};\nstruct PlayerTrespassEvent {};\nstruct QuickContainerOpenedEvent {};\nstruct RefControlChangedEvent {};\nstruct ReferenceDestroyedEvent {};\nstruct SpeechChallengeCompletionEvent {};\nstruct TESActivateEvent {};\nstruct TESActiveEffectApplyFinishEvent {};\nstruct TESActiveEffectRemovedEvent {};\nstruct TESActorActivatedRefEvent {};\nstruct TESActorLocationChangeEvent {};\nstruct TESBookReadEvent {};\nstruct TESCellCriticalRefsAttachedEvent {};\nstruct TESCellFullyLoadedEvent {};\nstruct TESCellGravityChangeEvent {};\nstruct TESCellReadyToApplyDecalsEvent {};\nstruct TESCellReference3DAttachEvent {};\nstruct TESCellReferenceAttachDetachEvent {};\nstruct TESCombatEvent {};\nstruct TESCombatListEvent {};\nstruct TESCommandModeCompleteCommandEvent {};\nstruct TESCommandModeEnterEvent {};\nstruct TESCommandModeExitEvent {};\nstruct TESCommandModeGiveCommandEvent {};\nstruct TESConsciousnessEvent {};\nstruct TESContainerChangedEvent\n{\n    u32          sourceContainerFormID;              // 00\n    u32          targetContainerFormID;                // 04\n    u32          itemFormID;                            // 08\n    u32          count;                                // 0C\n    //...\n};\nstruct TESDeathEvent {};\nstruct TESDeferredKillEvent {};\nstruct TESDestructionStageChangedEvent {};\nstruct TESEnterBleedoutEvent {};\nstruct TESEnterSneakingEvent {};\nstruct TESEquipEvent {};\nstruct TESEscortWaitStartEvent {};\nstruct TESEscortWaitStopEvent {};\nstruct TESExitBleedoutEvent {};\nstruct TESExitFurnitureEvent {};\nstruct TESFormDeleteEvent\n{\n    u32 formId; // 00\n};\nstruct TESFormIDRemapEvent\n{\n    u32 oldID;  // 00\n    u32 newID;  // 04\n};\nstruct TESFurnitureEvent {};\nstruct TESGrabReleaseEvent {};\nstruct TESInitScriptEvent {};\nstruct TESLimbCrippleEvent {};\nstruct TESLoadGameEvent {};\nstruct TESLocationExploredEvent {};\nstruct TESLockChangedEvent {};\nstruct TESMagicEffectApplyEvent {};\nstruct TESMissionAcceptedEvent {};\nstruct TESObjectLoadedEvent {};\nstruct TESObjectREFRTranslationEvent {};\nstruct TESOnPCDialogueTargetEvent {};\nstruct TESOpenCloseEvent {};\nstruct TESPackageEvent {};\nstruct TESPerkEntryRunEvent {};\nstruct TESPickNewIdleEvent {};\nstruct TESPickpocketFailedEvent {};\nstruct TESPlayerActiveEffectEvent {};\nstruct TESPlayerFollowerWarpEvent {};\nstruct TESQuestInitEvent {};\nstruct TESQuestRejectedEvent {};\nstruct TESQuestStageEvent {};\nstruct TESQuestStageItemDoneEvent {};\nstruct TESQuestStartStopEvent {};\nstruct TESQuestTimerEvent {};\nstruct TESResetEvent {};\nstruct TESResolveNPCTemplatesEvent {};\nstruct TESSceneActionEvent {};\nstruct TESSceneEvent {};\nstruct TESScenePhaseEvent {};\nstruct TESSellEvent {};\nstruct TESSleepStartEvent {};\nstruct TESSleepStopEvent {};\nstruct TESSpellCastEvent {};\nstruct TESSpellCastFailureEvent {};\nstruct TESSwitchRaceCompleteEvent {};\nstruct TESTopicInfoEvent {};\nstruct TESTrackedStatsEvent {};\nstruct TESTrapHitEvent {};\nstruct TESTriggerEnterEvent {};\nstruct TESTriggerEvent {};\nstruct TESTriggerLeaveEvent {};\nstruct TESUniqueIDChangeEvent {};\nstruct TESWaitStartEvent {};\nstruct TESWaitStopEvent {};\nstruct TerminalMenuMenuItemRunEvent {};\nstruct TerminalMenuOnEnterEvent {};\nstruct WorkshopNPCTransferEvent {};\nstruct TESObjectREFRIsReadyForAttachEvent {};\nstruct DefaultObjectsReadyEvent\n{\n    struct Event {};\n};\nstruct ObjectiveState\n{\n    struct Event {};\n};\nstruct QuestStatus\n{\n    struct Event {};\n};\nstruct RefillAliasEvent\n{\n    struct Event {};\n};\nstruct TESQuestEvent\n{\n    struct Event {};\n};\nstruct RolloverIsCrimeEvent\n{\n    struct Event {};\n};\nstruct HideSubtitleEvent\n{\n    struct Event {};\n};\nstruct ShowSubtitleEvent\n{\n    struct Event {};\n};\nstruct MissionMenuStateEvent\n{\n    struct Event {};\n};\nstruct ClearShipHudTarget\n{\n    struct Event {};\n};\nstruct TryUpdateShipHudTarget\n{\n    struct Event {};\n};\nstruct LocationTextEvent\n{\n    struct Event {};\n};\nstruct TraitDiscoveryTextEvent\n{\n    struct Event {};\n};\nstruct DaysPassed\n{\n    struct Event {};\n};\nstruct HourPassed\n{\n    struct Event {};\n};\nstruct ActorDamage\n{\n    struct Event {};\n};\nstruct ActorItemEquipped\n{\n    struct Event {};\n};\nstruct ActorKill\n{\n    struct Event {};\n};\nstruct AssaultCrime\n{\n    struct Event {};\n};\nstruct DisarmedEvent\n{\n    struct Event {};\n};\nstruct FactionRankChange\n{\n    struct Event {};\n};\nstruct GrandTheftHorse\n{\n    struct Event {};\n};\nstruct MurderCrime\n{\n    struct Event {};\n};\nstruct PiracyCrime\n{\n    struct Event {};\n};\nstruct Bleedout\n{\n    struct Event {};\n};\nstruct ContractedDisease\n{\n    struct Event {};\n};\nstruct ReloadWeaponEvent\n{\n    struct Event {};\n};\nstruct SpellsLearned\n{\n    struct Event {};\n};\nstruct Bounty\n{\n    struct Event {};\n};\nstruct ChestLooted\n{\n    struct Event {};\n};\nstruct CriticalHitEvent\n{\n    struct Event {};\n};\nstruct CustomMarkerUpdate\n{\n    struct Event {};\n};\nstruct DaysJailed\n{\n    struct Event {};\n};\nstruct EnteredUnity\n{\n    struct Event {};\n};\nstruct FinePaid\n{\n    struct Event {};\n};\nstruct ItemCrafted\n{\n    struct Event {};\n};\nstruct ItemSteal\n{\n    struct Event {};\n};\nstruct JailEscape\n{\n    struct Event {};\n};\nstruct Jailing\n{\n    struct Event {};\n};\nstruct LevelIncrease\n{\n    struct Event {};\n};\nstruct LocationMarkerArrayUpdate\n{\n    struct Event {};\n};\nstruct PlayerActiveEffectChanged\n{\n    struct Event {};\n};\nstruct PlayerAmmoChanged\n{\n    struct Event {};\n};\nstruct PlayerCharacterQuestEvent\n{\n    struct Event {};\n};\nstruct PlayerDifficultySettingChanged\n{\n    struct Event {};\n};\nstruct PlayerFastTravel\n{\n    struct Event {};\n};\nstruct PlayerInDialogueChanged\n{\n    struct Event {};\n};\nstruct PlayerLifeStateChanged\n{\n    struct Event {};\n};\nstruct PlayerPickpocketSuccess\n{\n    struct Event {};\n};\nstruct PoisonedWeapon\n{\n    struct Event {};\n};\nstruct TerminalHacked\n{\n    struct Event {};\n};\nstruct TravelMarkerStateChange\n{\n    struct Event {};\n};\nstruct WeaponAttack\n{\n    struct Event {};\n};\nstruct Trespass\n{\n    struct Event {};\n};\nstruct VATSEvents\n{\n    struct ModeChange {};\n};\nstruct VATSCommand {};\nstruct HoursPassed\n{\n    struct Event {};\n};\n\n// UI events\n\nstruct MenuOpenCloseEvent\n{\n    BSFixedString\tMenuName;\n    bool\t\t\tbOpening;\n};\nstruct MenuModeChangeEvent {};\nstruct MenuPauseChangeEvent {};\nstruct MenuPauseCounterChangeEvent {};\nstruct TutorialEvent {};\nstruct BSCursorTypeChange {};\nstruct BSCursorRotationChange {};\nstruct BIUIMenuVisiblePausedBeginEvent {};\nstruct BIUIMenuVisiblePausedEndEvent {};\n\n// other events\n\nstruct RadioManager\n{\n    struct PipboyTransmitterDetectionEvent {};\n};\nstruct XPChange\n{\n    struct Event\n    {\n        Actor* actor;\n        void* unk08;\n        float totalXP;\n        float recievedXP;\n        //...\n    };\n};\nstruct WeaponFiredEvent\n{\n    void* unk00;\n    void* unk08;\n    Actor* actor;\n    //...\n};\nstruct ActorEquipManagerEvent\n{\n    struct Event {};\n    struct SpellEvent {};\n};\nstruct AttachReference\n{\n    struct Event {};\n};\n//\n\nnamespace BSTEventDetail\n{\n    class SinkBase\n    {\n    public:\n        virtual ~SinkBase() {};\n    };\n\n    class SourceBase\n    {\n    public:\n        virtual ~SourceBase() {};\n        DEFINE_MEMBER_FN_1(RegisterSink, void, 0x022CB470, SinkBase* sink);\n        DEFINE_MEMBER_FN_1(UnregisterSink, void, 0x022CB600, SinkBase* sink);\n    };\n}\n\nenum class BSEventNotifyControl\n{\n    kContinue,\n    kStop\n};\nusing EventResult = BSEventNotifyControl;\n\ntemplate <typename T>\nclass BSTEventSource;\n\ntemplate <typename T>\nclass BSTEventSink : public BSTEventDetail::SinkBase\n{\npublic:\n    virtual ~BSTEventSink() { };\n    virtual\tEventResult\tProcessEvent(const T& arEvent, BSTEventSource<T>* eventSource) { return EventResult::kContinue; }; // pure\n};\n\ntemplate<typename T>\nclass BSTEventSource : public BSTEventDetail::SourceBase\n{\npublic:\n    virtual ~BSTEventSource();\n\n    BSTArray<BSTEventSink<T>> pSinksA;\n    u32 unk18;\n    u32 unk1C;\n    u32 unk20;\n    u32 unk24;\n};\n\nclass BSTGlobalEvent\n{\npublic:\n    virtual ~BSTGlobalEvent();\n\n    template <typename T>\n    class EventSource : public BSTEventSource<T>\n    {\n    public:\n        virtual ~EventSource();\n        virtual EventResult ProcessEvent(const T& arEvent, BSTEventSource<T>* eventSource);\n    };\n};\n\ntemplate <class T>\nclass BSTValueEventSink :\n    public BSTEventSink<T>  // 00\n{\n};\n\ntemplate <class T>\nclass BSTValueRequestEvent\n{\n};\n\ntemplate<typename EventT>\nBSTEventSource<EventT>* GetEventSource() { };\n\n#define DECLARE_EVENT_SOURCE(Event, address) \\\ntemplate<> inline BSTEventSource<Event> * GetEventSource() \\\n{ \\\n    typedef BSTEventSource<Event> * (*_GetEventSource)(); \\\n    RelocAddr<_GetEventSource> GetEventSource(address); \\\n    return GetEventSource(); \\\n}\n\n#define DECLARE_EVENT_SOURCE_EX(Event, address) \\\ntemplate<> inline BSTEventSource<Event> * GetEventSource() \\\n{ \\\nRelocPtr<BSTEventSource<Event>> es(address); \\\nreturn es.getPtr(); \\\n}\n\nDECLARE_EVENT_SOURCE(ActivityTrackerActivityStartedEvent, 0x00603C30)\nDECLARE_EVENT_SOURCE(ActorEquipManagerEvent::Event, 0x0189AF40)\nDECLARE_EVENT_SOURCE(ActorEquipManagerEvent::SpellEvent, 0x0189AF40)\n//DECLARE_EVENT_SOURCE(ActorInventoryEvent, 0x01984830)\nDECLARE_EVENT_SOURCE(ActorValueEvents::ActorValueChangedEvent, 0x002B69E0)\n//DECLARE_EVENT_SOURCE(AddSaveLoadEntryEvent, 0x01453850)\nDECLARE_EVENT_SOURCE(AliasChangeEvent, 0x00CFB890)\nDECLARE_EVENT_SOURCE(AnimationDataCleanupEvent, 0x0030DE70)\nDECLARE_EVENT_SOURCE(AnimationDataSetupEvent, 0x0030DF10)\nDECLARE_EVENT_SOURCE(AutoLoadDoorRolloverEvent, 0x00A93C20)\nDECLARE_EVENT_SOURCE(BGSAcousticSpaceListener::StackChangedEvent, 0x017911E0)\nDECLARE_EVENT_SOURCE(BGSActorDeathEvent, 0x013F8760)\nDECLARE_EVENT_SOURCE(BGSAppPausedEvent, 0x01ED76C0)\nDECLARE_EVENT_SOURCE(BGSCellGridLoadEvent, 0x00579770)\nDECLARE_EVENT_SOURCE(BGSEventProcessedEvent, 0x00EED200)\n//DECLARE_EVENT_SOURCE(BGSKeyword::OnDestroyEvent, 0x00C88300)\nDECLARE_EVENT_SOURCE(BGSOnPlayerCompleteResearchEvent, 0x018036F0)\nDECLARE_EVENT_SOURCE(BGSPlanet::PlayerKnowledgeFlagSetEvent, 0x007C0880)\nDECLARE_EVENT_SOURCE(BGSScannerGuideEffectStatusUpdateEvent, 0x015A9960)\nDECLARE_EVENT_SOURCE(BGSSceneActionPlayerDialogue::ActionEndEvent, 0x009C29A0)\nDECLARE_EVENT_SOURCE(BGSSceneActionPlayerDialogue::ActionStartEvent, 0x009C2A40)\n//DECLARE_EVENT_SOURCE(BSBethesdaPlatformBlocklistAvailableEvent, 0x02114360)\n//DECLARE_EVENT_SOURCE(BSBethesdaPlatformCuratedListAvailableEvent, 0x0145FC20)\n//DECLARE_EVENT_SOURCE(BSBethesdaPlatformInitializedEvent, 0x0145FB80)\n//DECLARE_EVENT_SOURCE(BSBethesdaPlatformLinkedLoginEvent, 0x02108630)\n//DECLARE_EVENT_SOURCE(BSBethesdaPlatformLoginEvent, 0x0145B940)\n//DECLARE_EVENT_SOURCE(BSBethesdaPlatformShutdownEvent, 0x02BFA470)\nDECLARE_EVENT_SOURCE(BSChargenAPI::BIDataUtils::MenuClosedEvent, 0x0165D4F0)\nDECLARE_EVENT_SOURCE(BSChargenAPI::BIDataUtils::PresetNPCChangedEvent, 0x0165B620)\n//DECLARE_EVENT_SOURCE(BSEntitlementFoundEvent, 0x021086D0)\n//DECLARE_EVENT_SOURCE(BSMaterial::MaterialsReloadedEvent, 0x02454BA0)\n//DECLARE_EVENT_SOURCE(BSRedeemableFoundEvent, 0x01343180)\n//DECLARE_EVENT_SOURCE(BSResource::Archive2::ClearRegistryEvent, 0x02760390)\n//DECLARE_EVENT_SOURCE(BSResource::Archive2::RegisteredEvent, 0x02760390)\n//DECLARE_EVENT_SOURCE(BSResource::Archive2::StreamOpenedEvent, 0x02760390)\n//DECLARE_EVENT_SOURCE(BSResource::ArchiveRegisteredEvent, 0x02760390)\n//DECLARE_EVENT_SOURCE(BSResource::NameFoundEvent, 0x0275BE40)\n//DECLARE_EVENT_SOURCE(BSScript::StatsEvent, 0x027D0600)\n//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < FaderMenuDisplayState, 0x01E45A30)\n//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < PlayerAutoAimActorEvent, 0x019FCAC0)\n//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < PlayerCrosshairModeEvent, 0x0142AC00)\n//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < SaveLoadMessageStringEvent, 0x0155D990)\nDECLARE_EVENT_SOURCE(BSWorldOriginShiftEvent, 0x006922F0)\nDECLARE_EVENT_SOURCE(BarterMenu_BuyItem, 0x015DB010)\nDECLARE_EVENT_SOURCE(BarterMenu_CloseMenu, 0x015DB330)\nDECLARE_EVENT_SOURCE(BarterMenu_HideModel, 0x015DB1F0)\nDECLARE_EVENT_SOURCE(BarterMenu_LoadModel, 0x015DB290)\nDECLARE_EVENT_SOURCE(BarterMenu_SellItem, 0x015DAF70)\nDECLARE_EVENT_SOURCE(BarterMenu_SetMouseOverModel, 0x015DAED0)\nDECLARE_EVENT_SOURCE(BarterMenu_ShowFailureMessage, 0x015DB150)\nDECLARE_EVENT_SOURCE(BarterMenu_ViewedItem, 0x015DB0B0)\nDECLARE_EVENT_SOURCE(BinkMovieStoppedPlayingEvent, 0x01402B10)\nDECLARE_EVENT_SOURCE(BlurEvent, 0x01E96C40)\nDECLARE_EVENT_SOURCE(BoundaryMenu_FastTravel, 0x013884A0)\nDECLARE_EVENT_SOURCE(BoundaryMenu_ShowMap, 0x01388400)\n//DECLARE_EVENT_SOURCE(CameraCutEvent, 0x00F8AF90)\nDECLARE_EVENT_SOURCE(CellAttachDetachEvent, 0x00586EB0)\nDECLARE_EVENT_SOURCE(ChallengeCompletedEvent::Event, 0x00602A60)\nDECLARE_EVENT_SOURCE(CharGen_BrowChange, 0x0165C870)\nDECLARE_EVENT_SOURCE(CharGen_BrowColorChange, 0x0165C550)\nDECLARE_EVENT_SOURCE(CharGen_CancelTextEntry, 0x0165CFF0)\nDECLARE_EVENT_SOURCE(CharGen_CloseMenu, 0x0165D450)\nDECLARE_EVENT_SOURCE(CharGen_CyclePronoun, 0x0165C410)\nDECLARE_EVENT_SOURCE(CharGen_DirtScarsEtcChange, 0x0165CB90)\nDECLARE_EVENT_SOURCE(CharGen_EndBodyChange, 0x0165BBF0)\nDECLARE_EVENT_SOURCE(CharGen_EndTextEntry, 0x0165D090)\nDECLARE_EVENT_SOURCE(CharGen_EyeColorChange, 0x0165C910)\nDECLARE_EVENT_SOURCE(CharGen_FacialHairChange, 0x0165C690)\nDECLARE_EVENT_SOURCE(CharGen_FacialHairColorChange, 0x0165C5F0)\nDECLARE_EVENT_SOURCE(CharGen_HairChange, 0x0165C7D0)\nDECLARE_EVENT_SOURCE(CharGen_HairColorChange, 0x0165C730)\nDECLARE_EVENT_SOURCE(CharGen_HeadpartPlusSelectorChange, 0x0165CCD0)\nDECLARE_EVENT_SOURCE(CharGen_HeadpartPresetChange, 0x0165D310)\nDECLARE_EVENT_SOURCE(CharGen_JewelryChange, 0x0165BDD0)\nDECLARE_EVENT_SOURCE(CharGen_JewelryColorChange, 0x0165BD30)\nDECLARE_EVENT_SOURCE(CharGen_MakeupChange, 0x0165B830)\nDECLARE_EVENT_SOURCE(CharGen_MarkingsChange, 0x0165B790)\nDECLARE_EVENT_SOURCE(CharGen_PostBlendColorOptionChange, 0x0165B970)\nDECLARE_EVENT_SOURCE(CharGen_PostBlendFaceChange, 0x0165BA10)\nDECLARE_EVENT_SOURCE(CharGen_PostBlendIntensityChange, 0x0165B8D0)\nDECLARE_EVENT_SOURCE(CharGen_PresetChange, 0x0165D3B0)\nDECLARE_EVENT_SOURCE(CharGen_RollOffLocomotion, 0x0165BFB0)\nDECLARE_EVENT_SOURCE(CharGen_RollOnLocomotion, 0x0165C050)\nDECLARE_EVENT_SOURCE(CharGen_RotatePaperdoll, 0x0165C0F0)\nDECLARE_EVENT_SOURCE(CharGen_SetAdditionalSlider, 0x0165BB50)\nDECLARE_EVENT_SOURCE(CharGen_SetBackground, 0x0165C9B0)\nDECLARE_EVENT_SOURCE(CharGen_SetBlockInputUnderPopup, 0x0165BAB0)\nDECLARE_EVENT_SOURCE(CharGen_SetBodyValues, 0x0165CE10)\nDECLARE_EVENT_SOURCE(CharGen_SetCameraPosition, 0x0165CD70)\nDECLARE_EVENT_SOURCE(CharGen_SetPronoun, 0x0165C370)\nDECLARE_EVENT_SOURCE(CharGen_SetSex, 0x0165D270)\nDECLARE_EVENT_SOURCE(CharGen_SetSlider, 0x0165D1D0)\nDECLARE_EVENT_SOURCE(CharGen_SetTrait, 0x0165CA50)\nDECLARE_EVENT_SOURCE(CharGen_ShowChooseBackgroundMessage, 0x0165CEB0)\nDECLARE_EVENT_SOURCE(CharGen_ShowPlayerRenameMessage, 0x0165CF50)\nDECLARE_EVENT_SOURCE(CharGen_SkintoneChange, 0x0165CC30)\nDECLARE_EVENT_SOURCE(CharGen_StartBodyChange, 0x0165BC90)\nDECLARE_EVENT_SOURCE(CharGen_StartTextEntry, 0x0165D130)\nDECLARE_EVENT_SOURCE(CharGen_SwitchBodyType, 0x0165C190)\nDECLARE_EVENT_SOURCE(CharGen_SwitchLocomotion, 0x0165C230)\nDECLARE_EVENT_SOURCE(CharGen_TeethChange, 0x0165C4B0)\nDECLARE_EVENT_SOURCE(CharGen_TeethRollOff, 0x0165BE70)\nDECLARE_EVENT_SOURCE(CharGen_TeethRollOn, 0x0165BF10)\nDECLARE_EVENT_SOURCE(CharGen_ToggleMarking, 0x0165CAF0)\nDECLARE_EVENT_SOURCE(CharGen_TogglePreviewHabSuit, 0x0165C2D0)\n//DECLARE_EVENT_SOURCE(CharacterBeginLevelUpEvent, 0x01750070)\n//DECLARE_EVENT_SOURCE(CharacterFinishLevelUpEvent, 0x0147DCF0)\nDECLARE_EVENT_SOURCE(ClearHUDMessagesEvent, 0x01491A00)\nDECLARE_EVENT_SOURCE(ClearQuickContainerEvent, 0x00A93CC0)\nDECLARE_EVENT_SOURCE(ContainerMenuClosed::Event, 0x013F2700)\nDECLARE_EVENT_SOURCE(ContainerMenu_CloseMenu, 0x0145B1A0)\nDECLARE_EVENT_SOURCE(ContainerMenu_HideModel, 0x01EB8A00)\nDECLARE_EVENT_SOURCE(ContainerMenu_Jettison, 0x01EB88C0)\nDECLARE_EVENT_SOURCE(ContainerMenu_LoadModel, 0x01EB8AA0)\nDECLARE_EVENT_SOURCE(ContainerMenu_OpenRefuelMenu, 0x01EB8960)\nDECLARE_EVENT_SOURCE(ContainerMenu_SetMouseOverModel, 0x01EB8820)\nDECLARE_EVENT_SOURCE(ContainerMenu_TakeAll, 0x01EB8B40)\nDECLARE_EVENT_SOURCE(ContainerMenu_ToggleEquip, 0x01EB8C80)\n//DECLARE_EVENT_SOURCE(ContainerMenu_TransferAllResources, 0x01E3FA50)\nDECLARE_EVENT_SOURCE(ContainerMenu_TransferItem, 0x01EB8D20)\nDECLARE_EVENT_SOURCE(ContextStackChangedEvent, 0x022F8690)\nDECLARE_EVENT_SOURCE(ControlsRemappedEvent, 0x01534A60)\nDECLARE_EVENT_SOURCE(CraftingMenu_CraftItem, 0x0144C8D0)\nDECLARE_EVENT_SOURCE(CraftingMenu_ExitBench, 0x0144CB50)\nDECLARE_EVENT_SOURCE(CraftingMenu_Highlight3D, 0x01719B00)\nDECLARE_EVENT_SOURCE(CraftingMenu_InstallMod, 0x0144C790)\nDECLARE_EVENT_SOURCE(CraftingMenu_RenameItem, 0x0144C3D0)\nDECLARE_EVENT_SOURCE(CraftingMenu_RevertHighlight, 0x01719A60)\nDECLARE_EVENT_SOURCE(CraftingMenu_RevertedModdedItem, 0x0144C470)\nDECLARE_EVENT_SOURCE(CraftingMenu_SelectedMod, 0x0144C510)\nDECLARE_EVENT_SOURCE(CraftingMenu_SelectedModSlot, 0x0144C5B0)\nDECLARE_EVENT_SOURCE(CraftingMenu_SelectedModdableItem, 0x0144C650)\nDECLARE_EVENT_SOURCE(CraftingMenu_SelectedRecipe, 0x0144C830)\nDECLARE_EVENT_SOURCE(CraftingMenu_SessionSummaryEvent, 0x0144C970)\nDECLARE_EVENT_SOURCE(CraftingMenu_SetInspectControls, 0x0144CAB0)\nDECLARE_EVENT_SOURCE(CraftingMenu_ToggleTracking, 0x0144CA10)\nDECLARE_EVENT_SOURCE(CraftingMenu_ViewingModdableItem, 0x0144C6F0)\n//DECLARE_EVENT_SOURCE(CreationUninstalledEvent, 0x01350880)\nDECLARE_EVENT_SOURCE(DataMenu_CloseMenu, 0x016684C0)\nDECLARE_EVENT_SOURCE(DataMenu_ClosedForSubMenu, 0x01668560)\nDECLARE_EVENT_SOURCE(DataMenu_Missions, 0x01668740)\n//DECLARE_EVENT_SOURCE(DataMenu_OpenPauseMenu, 0x01606520)\nDECLARE_EVENT_SOURCE(DataMenu_PlotToLocation, 0x01667FC0)\nDECLARE_EVENT_SOURCE(DataMenu_Reopened, 0x01668420)\nDECLARE_EVENT_SOURCE(DataMenu_SelectedAttributesMenu, 0x01668100)\nDECLARE_EVENT_SOURCE(DataMenu_SelectedInventoryMenu, 0x016681A0)\nDECLARE_EVENT_SOURCE(DataMenu_SelectedMapMenu, 0x01668240)\nDECLARE_EVENT_SOURCE(DataMenu_SelectedPowersMenu, 0x01668060)\nDECLARE_EVENT_SOURCE(DataMenu_SelectedShipMenu, 0x016682E0)\nDECLARE_EVENT_SOURCE(DataMenu_SelectedStatusMenu, 0x01668380)\nDECLARE_EVENT_SOURCE(DataMenu_SetMenuForQuickEntry, 0x016686A0)\nDECLARE_EVENT_SOURCE(DataMenu_SetPaperDollActive, 0x01668600)\n//DECLARE_EVENT_SOURCE(DataMenu_StartCloseAnim, 0x013FB180)\nDECLARE_EVENT_SOURCE(DataSlateButtons_acceptClicked, 0x015E62B0)\nDECLARE_EVENT_SOURCE(DataSlateButtons_cancelClicked, 0x015E6210)\nDECLARE_EVENT_SOURCE(DataSlateMenu_playSFX, 0x015E6350)\nDECLARE_EVENT_SOURCE(DataSlateMenu_toggleAudio, 0x015E63F0)\nDECLARE_EVENT_SOURCE(DefaultObjectsReadyEvent::Event, 0x00BCFCD0)\n//DECLARE_EVENT_SOURCE(DeferredDeleter::QueueStatusEvent, 0x0180A6F0)\nDECLARE_EVENT_SOURCE(DialogueMenu_CompleteExit, 0x015965F0)\nDECLARE_EVENT_SOURCE(DialogueMenu_OnDialogueSelect, 0x01EBD1B0)\nDECLARE_EVENT_SOURCE(DialogueMenu_OnListVisibilityChange, 0x01EBCFD0)\nDECLARE_EVENT_SOURCE(DialogueMenu_OnPersuasionAutoWin, 0x01EBD250)\nDECLARE_EVENT_SOURCE(DialogueMenu_OnScriptedDialogueSelect, 0x01EBCF30)\nDECLARE_EVENT_SOURCE(DialogueMenu_RequestExit, 0x01EBD070)\nDECLARE_EVENT_SOURCE(DialogueMenu_RequestSkipDialogue, 0x01EBD110)\nDECLARE_EVENT_SOURCE(DisplayFatigueWarningEvent, 0x015BB970)\n//DECLARE_EVENT_SOURCE(DocAcceptMenu_Accept, 0x01335B90)\n//DECLARE_EVENT_SOURCE(DynNavMeshOpRecord::CompleteEvent, 0x006862D0)\n//DECLARE_EVENT_SOURCE(DynamicNavMeshBuildCompleteEvent, 0x003B4240)\nDECLARE_EVENT_SOURCE(EndLoadGameEvent, 0x0035DA70)\n//DECLARE_EVENT_SOURCE(ExitVehicleEvent, 0x0132E070)\nDECLARE_EVENT_SOURCE(ExperienceMeterDisplayData, 0x015BAC90)\nDECLARE_EVENT_SOURCE(FaderMenuDisplayState, 0x01EBEB30)\nDECLARE_EVENT_SOURCE(FavoritesMenu_AssignQuickkey, 0x01EC6AD0)\nDECLARE_EVENT_SOURCE(FavoritesMenu_UseQuickkey, 0x01EC6A30)\n//DECLARE_EVENT_SOURCE(GameActiveChangeEvent, 0x01372540)\n//DECLARE_EVENT_SOURCE(GameResetEvent, 0x01830280)\nDECLARE_EVENT_SOURCE(GameStalledEvent, 0x027F6E10)\nDECLARE_EVENT_SOURCE(GlobalFunc_CloseAllMenus, 0x015AFA90)\nDECLARE_EVENT_SOURCE(GlobalFunc_CloseMenu, 0x015AFB30)\nDECLARE_EVENT_SOURCE(GlobalFunc_PlayMenuSound, 0x015AFD10)\nDECLARE_EVENT_SOURCE(GlobalFunc_StartGameRender, 0x015AFC70)\nDECLARE_EVENT_SOURCE(GlobalFunc_UserEvent, 0x015AFBD0)\nDECLARE_EVENT_SOURCE(HUDActivityIncreaseEvent, 0x002B7430)\nDECLARE_EVENT_SOURCE(HUDCrewBuffMessageEvent, 0x01440C20)\nDECLARE_EVENT_SOURCE(HUDModeEvent, 0x0146DC60)\nDECLARE_EVENT_SOURCE(HUDNotificationEvent, 0x015C8470)\nDECLARE_EVENT_SOURCE(HUDNotification_MissionActiveWidgetUpdate, 0x015C83D0)\nDECLARE_EVENT_SOURCE(HUDNotification_OpenDataMenu, 0x015C8290)\nDECLARE_EVENT_SOURCE(HUDNotification_OpenMissionMenu, 0x015C81F0)\nDECLARE_EVENT_SOURCE(HUDNotification_SetMissionActive, 0x015C8330)\nDECLARE_EVENT_SOURCE(HUDRolloverActivationButtonEvent, 0x0146DB20)\nDECLARE_EVENT_SOURCE(HUDRolloverActivationQCItemPressEvent, 0x0146DA80)\nDECLARE_EVENT_SOURCE(HUDWeaponWorldFOVMultChangedEvent, 0x0085A5E0)\nDECLARE_EVENT_SOURCE(HangarShipSelection_ChangeSystemDisplay, 0x013F28E0)\nDECLARE_EVENT_SOURCE(HangarShipSelection_RepairShip, 0x013F27A0)\nDECLARE_EVENT_SOURCE(HangarShipSelection_UpgradeSystem, 0x013F2840)\nDECLARE_EVENT_SOURCE(HomeShipSetEvent, 0x0130DEA0)\nDECLARE_EVENT_SOURCE(ImageFixtureEvent_RequestImage, 0x0255DB70)\nDECLARE_EVENT_SOURCE(ImageFixtureEvent_UnregisterImage, 0x0255DAD0)\nDECLARE_EVENT_SOURCE(InventoryItemEvent::Event, 0x012D5100)\nDECLARE_EVENT_SOURCE(InventoryMenu_Change3DView, 0x0145B100)\nDECLARE_EVENT_SOURCE(InventoryMenu_DropItem, 0x015EE150)\nDECLARE_EVENT_SOURCE(InventoryMenu_HideModel, 0x015EE290)\nDECLARE_EVENT_SOURCE(InventoryMenu_LoadModel, 0x015EE330)\nDECLARE_EVENT_SOURCE(InventoryMenu_OnEnterCategory, 0x015EDE30)\nDECLARE_EVENT_SOURCE(InventoryMenu_OpenCargoHold, 0x015EE0B0)\nDECLARE_EVENT_SOURCE(InventoryMenu_PaperDollTryOn, 0x0145B060)\nDECLARE_EVENT_SOURCE(InventoryMenu_ResetPaperDollInv, 0x0145AFC0)\nDECLARE_EVENT_SOURCE(InventoryMenu_SelectItem, 0x015EE1F0)\nDECLARE_EVENT_SOURCE(InventoryMenu_SetMouseOverModel, 0x015EDED0)\n//DECLARE_EVENT_SOURCE(InventoryMenu_StartCloseAnim, 0x0158B230)\nDECLARE_EVENT_SOURCE(InventoryMenu_ToggleFavorite, 0x015EE010)\nDECLARE_EVENT_SOURCE(InventoryMenu_ToggleHelmet, 0x014DDAF0)\nDECLARE_EVENT_SOURCE(InventoryMenu_ToggleSuit, 0x014DDA50)\nDECLARE_EVENT_SOURCE(Inventory_SetSort, 0x0146D9E0)\nDECLARE_EVENT_SOURCE(LevelIncrease::Event, 0x01A3F2A0)\nDECLARE_EVENT_SOURCE(LevelUp_AnimFinished, 0x015BABF0)\nDECLARE_EVENT_SOURCE(LevelUp_OnWidgetShown, 0x015BAA10)\nDECLARE_EVENT_SOURCE(LevelUp_OpenDataMenu, 0x015BAAB0)\nDECLARE_EVENT_SOURCE(LevelUp_ShowSkills, 0x015BAB50)\nDECLARE_EVENT_SOURCE(LoadScreenEndEvent, 0x00589F50)\nDECLARE_EVENT_SOURCE(LoadScreenStartEvent, 0x00589FF0)\nDECLARE_EVENT_SOURCE(LoadingMenu_RefreshText, 0x01ECD020)\nDECLARE_EVENT_SOURCE(LocationTextWidget_FinishedQueue, 0x015BA970)\nDECLARE_EVENT_SOURCE(MainMenu_ActionCanceled, 0x01ED53E0)\nDECLARE_EVENT_SOURCE(MainMenu_ActionConfirmed, 0x01ED5480)\nDECLARE_EVENT_SOURCE(MainMenu_ConfirmLoad, 0x01ED52A0)\nDECLARE_EVENT_SOURCE(MainMenu_DeleteSave, 0x01ED5200)\n//DECLARE_EVENT_SOURCE(MainMenu_LegalScreenComplete, 0x01E5BAE0)\nDECLARE_EVENT_SOURCE(MainMenu_SetCharacter, 0x01ED5160)\nDECLARE_EVENT_SOURCE(MainMenu_StartAction, 0x01ED5520)\nDECLARE_EVENT_SOURCE(MainMenu_StartLoad, 0x01ED5340)\nDECLARE_EVENT_SOURCE(MainMenu_UploadSave, 0x01ED50C0)\nDECLARE_EVENT_SOURCE(MessageBoxMenu_OnBackOut, 0x01EDDC70)\nDECLARE_EVENT_SOURCE(MessageBoxMenu_OnButtonPress, 0x01EDDDB0)\nDECLARE_EVENT_SOURCE(MessageBoxMenu_OnScriptedButtonPress, 0x01EDDD10)\nDECLARE_EVENT_SOURCE(MissionBoard_MissionEntryChanged, 0x015F3810)\nDECLARE_EVENT_SOURCE(MissionBoard_MissionEntryPressed, 0x015F38B0)\nDECLARE_EVENT_SOURCE(MissionMenu_ClearState, 0x015E1230)\nDECLARE_EVENT_SOURCE(MissionMenu_PlotToLocation, 0x015E1550)\nDECLARE_EVENT_SOURCE(MissionMenu_RejectQuest, 0x015E1410)\nDECLARE_EVENT_SOURCE(MissionMenu_SaveCategoryIndex, 0x015E12D0)\nDECLARE_EVENT_SOURCE(MissionMenu_SaveOpenedId, 0x015E1370)\nDECLARE_EVENT_SOURCE(MissionMenu_ShowItemLocation, 0x015E15F0)\n//DECLARE_EVENT_SOURCE(MissionMenu_ToggleQTDisplay, 0x0157EBC0)\nDECLARE_EVENT_SOURCE(MissionMenu_ToggleTrackingQuest, 0x015E14B0)\nDECLARE_EVENT_SOURCE(ModelReferenceEffectEvents::ReferenceEffectFinished, 0x01775630)\nDECLARE_EVENT_SOURCE(MonocleMenu_Bioscan, 0x015FE830)\nDECLARE_EVENT_SOURCE(MonocleMenu_FastTravel, 0x015FE330)\nDECLARE_EVENT_SOURCE(MonocleMenu_Harvest, 0x015FE8D0)\nDECLARE_EVENT_SOURCE(MonocleMenu_Initialize, 0x015FEAB0)\n//DECLARE_EVENT_SOURCE(MonocleMenu_OpenDoor, 0x0159B470)\nDECLARE_EVENT_SOURCE(MonocleMenu_Outpost, 0x015FE970)\nDECLARE_EVENT_SOURCE(MonocleMenu_PhotoMode, 0x015FE650)\nDECLARE_EVENT_SOURCE(MonocleMenu_Shutdown, 0x015FEA10)\nDECLARE_EVENT_SOURCE(MonocleMenu_SocialSpell, 0x015FE790)\nDECLARE_EVENT_SOURCE(MonocleMenu_StartContainerView, 0x015FE470)\nDECLARE_EVENT_SOURCE(MonocleMenu_StopContainerView, 0x015FE3D0)\nDECLARE_EVENT_SOURCE(MonocleMenu_SurfaceMap, 0x015FE6F0)\nDECLARE_EVENT_SOURCE(MonocleMenu_UseListScrollControls, 0x015FE290)\nDECLARE_EVENT_SOURCE(MonocleMenu_ZoomIn, 0x015FE5B0)\nDECLARE_EVENT_SOURCE(MonocleMenu_ZoomOut, 0x015FE510)\nDECLARE_EVENT_SOURCE(OpenContainerMenuEventData, 0x0146DD00)\nDECLARE_EVENT_SOURCE(OpenContainerMenuFromListenerEvent, 0x0146DBC0)\nDECLARE_EVENT_SOURCE(PauseMenu_ActionCanceled, 0x016713C0)\nDECLARE_EVENT_SOURCE(PauseMenu_ConfirmAction, 0x01671460)\nDECLARE_EVENT_SOURCE(PauseMenu_ConfirmLoad, 0x01671280)\nDECLARE_EVENT_SOURCE(PauseMenu_ConfirmSave, 0x016710A0)\nDECLARE_EVENT_SOURCE(PauseMenu_DeleteSave, 0x016711E0)\nDECLARE_EVENT_SOURCE(PauseMenu_QuitToDesktop, 0x01671000)\nDECLARE_EVENT_SOURCE(PauseMenu_SetCharacter, 0x01671140)\nDECLARE_EVENT_SOURCE(PauseMenu_StartAction, 0x01671500)\nDECLARE_EVENT_SOURCE(PauseMenu_StartLoad, 0x01671320)\nDECLARE_EVENT_SOURCE(PauseMenu_UploadSave, 0x01670F60)\nDECLARE_EVENT_SOURCE(PerkChanged::Event, 0x00CA46A0)\nDECLARE_EVENT_SOURCE(PhotoGallery_DeletePhoto, 0x013D8A10)\nDECLARE_EVENT_SOURCE(PhotoMode_InitializeCategory, 0x01604F40)\n//DECLARE_EVENT_SOURCE(PhotoMode_RefineSetting, 0x015A1D50)\nDECLARE_EVENT_SOURCE(PhotoMode_ResetToDefaults, 0x01604EA0)\nDECLARE_EVENT_SOURCE(PhotoMode_SliderChanged, 0x01604E00)\nDECLARE_EVENT_SOURCE(PhotoMode_StepperChanged, 0x01604D60)\nDECLARE_EVENT_SOURCE(PhotoMode_TakeSnapshot, 0x01604CC0)\nDECLARE_EVENT_SOURCE(PhotoMode_ToggleHelmet, 0x01604B80)\nDECLARE_EVENT_SOURCE(PhotoMode_ToggleUI, 0x01604C20)\nDECLARE_EVENT_SOURCE(PickRefStateChangedEvent, 0x005F8590)\nDECLARE_EVENT_SOURCE(PickRefUpdateEvent, 0x00F4FAC0)\nDECLARE_EVENT_SOURCE(PickpocketMenu_OnItemSelect, 0x01609590)\nDECLARE_EVENT_SOURCE(PlayBink_CloseMenu, 0x016724A0)\nDECLARE_EVENT_SOURCE(PlayerAutoAimActorEvent, 0x01A74670)\nDECLARE_EVENT_SOURCE(PlayerCharacterQuestEvent::Event, 0x00D0E3A0)\nDECLARE_EVENT_SOURCE(PlayerControls::PlayerIronSightsEndEvent, 0x012C48C0)\nDECLARE_EVENT_SOURCE(PlayerControls::PlayerIronSightsStartEvent, 0x012C4960)\nDECLARE_EVENT_SOURCE(PlayerControls::PlayerJumpPressEvent, 0x012BCB20)\nDECLARE_EVENT_SOURCE(PlayerControls::PlayerJumpReleaseEvent, 0x012BCA80)\nDECLARE_EVENT_SOURCE(PlayerControls::PlayerZeroGSprintJustPressedEvent, 0x012BEB40)\nDECLARE_EVENT_SOURCE(PlayerControls::PlayerZeroGSprintReleasedEvent, 0x012BEAA0)\nDECLARE_EVENT_SOURCE(PlayerCrosshairModeEvent, 0x014894A0)\nDECLARE_EVENT_SOURCE(PlayerDetectionLevelChangeEvent, 0x01496070)\n//DECLARE_EVENT_SOURCE(PlayerFastTravelFromVehicleEvent, 0x0211EFB0)\nDECLARE_EVENT_SOURCE(PlayerInCombatChangeEvent, 0x01A7B850)\nDECLARE_EVENT_SOURCE(PlayerSetWeaponStateEvent, 0x015CB7F0)\nDECLARE_EVENT_SOURCE(PlayerSneakingChangeEvent, 0x012BE5F0)\nDECLARE_EVENT_SOURCE(PlayerUpdateEvent, 0x014DDB90)\nDECLARE_EVENT_SOURCE(PowersMenu_ActivateEssence, 0x013DFBF0)\nDECLARE_EVENT_SOURCE(PowersMenu_EquipPower, 0x013DFD30)\nDECLARE_EVENT_SOURCE(PowersMenu_FavoritePower, 0x013DFC90)\n//DECLARE_EVENT_SOURCE(ProjectileBeginUpdateEvent, 0x01AC2CB0)\n//DECLARE_EVENT_SOURCE(ProjectileKillEvent, 0x01AC2CB0)\n//DECLARE_EVENT_SOURCE(QueuedReferenceFinishedEvent, 0x0055FBE0)\nDECLARE_EVENT_SOURCE(ReferenceCellLoadedTemps, 0x009284A0)\nDECLARE_EVENT_SOURCE(ReferenceQueuedEvent, 0x00572D80)\n//DECLARE_EVENT_SOURCE(RefreshDataMenuForSkillsChangeEvent, 0x013FB0E0)\nDECLARE_EVENT_SOURCE(Refuel_Accept, 0x0162A100)\nDECLARE_EVENT_SOURCE(Refuel_Cancel, 0x0162A060)\nDECLARE_EVENT_SOURCE(Research::ResearchProgressEvent, 0x01803200)\nDECLARE_EVENT_SOURCE(ResearchMenu_AddMaterial, 0x01614630)\nDECLARE_EVENT_SOURCE(ResearchMenu_CategorySelected, 0x01614810)\nDECLARE_EVENT_SOURCE(ResearchMenu_ExitMenu, 0x01614590)\nDECLARE_EVENT_SOURCE(ResearchMenu_HideModel, 0x016144F0)\nDECLARE_EVENT_SOURCE(ResearchMenu_PreviewProject, 0x01614770)\nDECLARE_EVENT_SOURCE(ResearchMenu_ProjectViewed, 0x016146D0)\nDECLARE_EVENT_SOURCE(ResearchMenu_SetInspectControls, 0x01614450)\nDECLARE_EVENT_SOURCE(ResearchMenu_ToggleTrackingProject, 0x016143B0)\nDECLARE_EVENT_SOURCE(ResetHistoryDataEvent, 0x00841F10)\n//DECLARE_EVENT_SOURCE(ResourceServerLogDumped, 0x02774EF0)\nDECLARE_EVENT_SOURCE(Reticle_OnLongAnimFinished, 0x0167B650)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceAttach, 0x003EA520)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceCleared3d, 0x006809A0)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceDestroy, 0x00680860)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceDetach, 0x003EA480)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceInit, 0x00680900)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceRecycle, 0x006807C0)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceSet3d, 0x00680A40)\nDECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::Release3DRelatedData, 0x00681560)\nDECLARE_EVENT_SOURCE(SaveLoadEvent, 0x012EE230)\nDECLARE_EVENT_SOURCE(SaveLoadMessageStringEvent, 0x015C0870)\nDECLARE_EVENT_SOURCE(SecurityMenu_BackOutKey, 0x01622BC0)\nDECLARE_EVENT_SOURCE(SecurityMenu_CloseMenu, 0x01622D00)\nDECLARE_EVENT_SOURCE(SecurityMenu_ConfirmExit, 0x016229E0)\nDECLARE_EVENT_SOURCE(SecurityMenu_EliminateUnusedKeys, 0x01622A80)\nDECLARE_EVENT_SOURCE(SecurityMenu_GetRingHint, 0x01622B20)\nDECLARE_EVENT_SOURCE(SecurityMenu_SelectNewKey, 0x01622940)\nDECLARE_EVENT_SOURCE(SecurityMenu_TryUseKey, 0x01622C60)\nDECLARE_EVENT_SOURCE(SettingsPanel_CheckBoxChanged, 0x01537890)\nDECLARE_EVENT_SOURCE(SettingsPanel_ClearBinding, 0x01537610)\n//DECLARE_EVENT_SOURCE(SettingsPanel_LinkClicked, 0x014D64F0)\nDECLARE_EVENT_SOURCE(SettingsPanel_OpenCategory, 0x015376B0)\nDECLARE_EVENT_SOURCE(SettingsPanel_OpenSettings, 0x01537750)\nDECLARE_EVENT_SOURCE(SettingsPanel_RemapConfirmed, 0x01537570)\nDECLARE_EVENT_SOURCE(SettingsPanel_RemapMode, 0x01537BB0)\nDECLARE_EVENT_SOURCE(SettingsPanel_ResetToDefaults, 0x015377F0)\nDECLARE_EVENT_SOURCE(SettingsPanel_SaveControls, 0x01537B10)\nDECLARE_EVENT_SOURCE(SettingsPanel_SaveSettings, 0x01537A70)\nDECLARE_EVENT_SOURCE(SettingsPanel_SliderChanged, 0x015379D0)\nDECLARE_EVENT_SOURCE(SettingsPanel_StepperChanged, 0x01537930)\nDECLARE_EVENT_SOURCE(SettingsPanel_ValidateControls, 0x015374D0)\n//DECLARE_EVENT_SOURCE(SettingsSavedEvent, 0x014D6380)\nDECLARE_EVENT_SOURCE(ShipBuilder_CloseAllMenus, 0x004ED0E0)\nDECLARE_EVENT_SOURCE(ShipCameraStateToggled, 0x00FA5100)\nDECLARE_EVENT_SOURCE(ShipCrewAssignMenu_Assign, 0x01628820)\nDECLARE_EVENT_SOURCE(ShipCrewAssignMenu_Unassign, 0x01628780)\nDECLARE_EVENT_SOURCE(ShipCrewMenu_Close, 0x013F2660)\nDECLARE_EVENT_SOURCE(ShipCrewMenu_OpenAssignMenu, 0x01542650)\nDECLARE_EVENT_SOURCE(ShipCrewMenu_SetSort, 0x015426F0)\nDECLARE_EVENT_SOURCE(ShipCrewMenu_ViewedItem, 0x016288D0)\nDECLARE_EVENT_SOURCE(ShipEditor_ChangeModuleCategory, 0x004BCB90)\nDECLARE_EVENT_SOURCE(ShipEditor_OnColorPickerControlChanged, 0x0039A530)\nDECLARE_EVENT_SOURCE(ShipEditor_OnColorPickerTabChanged, 0x0039A670)\nDECLARE_EVENT_SOURCE(ShipEditor_OnColorSliderMouseInput, 0x0039A490)\nDECLARE_EVENT_SOURCE(ShipEditor_OnExitConfirmCancel, 0x004AAC50)\nDECLARE_EVENT_SOURCE(ShipEditor_OnExitConfirmExit, 0x004AACF0)\nDECLARE_EVENT_SOURCE(ShipEditor_OnExitConfirmSaveAndExit, 0x004AABB0)\nDECLARE_EVENT_SOURCE(ShipEditor_OnFlightCheckTabChanged, 0x004B0DE0)\nDECLARE_EVENT_SOURCE(ShipEditor_OnHintButtonActivated, 0x004ED040)\nDECLARE_EVENT_SOURCE(ShipEditor_OnRecentColorSwatchClicked, 0x0039A5D0)\nDECLARE_EVENT_SOURCE(ShipEditor_OnRenameEndEditText, 0x004B6BF0)\nDECLARE_EVENT_SOURCE(ShipEditor_OnRenameInputCancelled, 0x004B6C90)\nDECLARE_EVENT_SOURCE(ShipEditor_OnWeaponGroupChanged, 0x004B0D40)\nDECLARE_EVENT_SOURCE(ShipEditor_PreviewShipPart, 0x004BCC30)\nDECLARE_EVENT_SOURCE(ShipEditor_PreviewUpgrade, 0x00394420)\nDECLARE_EVENT_SOURCE(ShipEditor_RemoveAll3D, 0x004ECFA0)\nDECLARE_EVENT_SOURCE(ShipEditor_SelectedShipPart, 0x004BCCD0)\nDECLARE_EVENT_SOURCE(ShipEditor_SelectedUpgrade, 0x00394380)\nDECLARE_EVENT_SOURCE(ShipEditor_SystemSelected, 0x0038DB90)\nDECLARE_EVENT_SOURCE(ShipHudQuickContainer_TransferItem, 0x0167B790)\nDECLARE_EVENT_SOURCE(ShipHudQuickContainer_TransferMenu, 0x015702A0)\nDECLARE_EVENT_SOURCE(ShipHud_AbortJump, 0x0167B6F0)\nDECLARE_EVENT_SOURCE(ShipHud_Activate, 0x01570340)\nDECLARE_EVENT_SOURCE(ShipHud_BodyViewMarkerDimensions, 0x0156FB20)\nDECLARE_EVENT_SOURCE(ShipHud_ChangeComponentSelection, 0x01570660)\nDECLARE_EVENT_SOURCE(ShipHud_CloseMenu, 0x015707A0)\nDECLARE_EVENT_SOURCE(ShipHud_Deselect, 0x015703E0)\nDECLARE_EVENT_SOURCE(ShipHud_DockRequested, 0x0167B830)\nDECLARE_EVENT_SOURCE(ShipHud_FarTravel, 0x0156F9E0)\nDECLARE_EVENT_SOURCE(ShipHud_HailAccepted, 0x0156FF80)\nDECLARE_EVENT_SOURCE(ShipHud_HailCancelled, 0x01570020)\nDECLARE_EVENT_SOURCE(ShipHud_HailShip, 0x0167B8D0)\nDECLARE_EVENT_SOURCE(ShipHud_JumpToQuestMarker, 0x0156FE40)\nDECLARE_EVENT_SOURCE(ShipHud_Land, 0x01570200)\nDECLARE_EVENT_SOURCE(ShipHud_LandingMarkerMap, 0x015700C0)\nDECLARE_EVENT_SOURCE(ShipHud_Map, 0x01570160)\nDECLARE_EVENT_SOURCE(ShipHud_OnMonocleToggle, 0x0156FEE0)\nDECLARE_EVENT_SOURCE(ShipHud_OpenPhotoMode, 0x0156FBC0)\nDECLARE_EVENT_SOURCE(ShipHud_Repair, 0x0156FA80)\nDECLARE_EVENT_SOURCE(ShipHud_SetTargetMode, 0x0156FDA0)\nDECLARE_EVENT_SOURCE(ShipHud_Target, 0x01570480)\nDECLARE_EVENT_SOURCE(ShipHud_TargetShipSystem, 0x0156FD00)\nDECLARE_EVENT_SOURCE(ShipHud_UntargetShipSystem, 0x0156FC60)\nDECLARE_EVENT_SOURCE(ShipHud_UpdateComponentPower, 0x01570700)\nDECLARE_EVENT_SOURCE(ShipHud_UpdateTargetPanelRect, 0x0167B090)\nDECLARE_EVENT_SOURCE(ShowCustomWatchAlert, 0x0149BF20)\nDECLARE_EVENT_SOURCE(ShowHUDMessageEvent, 0x01491AA0)\nDECLARE_EVENT_SOURCE(ShowLongShipBootup, 0x015705C0)\nDECLARE_EVENT_SOURCE(ShowingQuestMarketTextEvent, 0x01486000)\nDECLARE_EVENT_SOURCE(SkillsMenu_Accept, 0x01630290)\nDECLARE_EVENT_SOURCE(SkillsMenu_AddPatch, 0x016301F0)\nDECLARE_EVENT_SOURCE(SkillsMenu_Cancel, 0x01630330)\nDECLARE_EVENT_SOURCE(SkillsMenu_ChangeCursorVisibility, 0x01630150)\nDECLARE_EVENT_SOURCE(SkillsMenu_SaveLastCategory, 0x016300B0)\nDECLARE_EVENT_SOURCE(SleepWaitMenu_InterruptRest, 0x01EE2160)\nDECLARE_EVENT_SOURCE(SleepWaitMenu_StartRest, 0x01EE2200)\nDECLARE_EVENT_SOURCE(SnapTemplateUtils::SnapReplaceEvent, 0x00941D80)\nDECLARE_EVENT_SOURCE(Spaceship::BoughtEvent, 0x02162DC0)\nDECLARE_EVENT_SOURCE(Spaceship::ContrabandScanWarningEvent, 0x021635E0)\nDECLARE_EVENT_SOURCE(Spaceship::DockEvent, 0x02162F00)\nDECLARE_EVENT_SOURCE(Spaceship::DynamicNavmeshCompleted, 0x021632C0)\nDECLARE_EVENT_SOURCE(Spaceship::FarTravelEvent, 0x021634A0)\nDECLARE_EVENT_SOURCE(Spaceship::GravJumpEvent, 0x0167B3D0)\nDECLARE_EVENT_SOURCE(Spaceship::LandedSetEvent, 0x0167B330)\nDECLARE_EVENT_SOURCE(Spaceship::LandingEvent, 0x02163360)\nDECLARE_EVENT_SOURCE(Spaceship::PlanetScanEvent, 0x02163540)\nDECLARE_EVENT_SOURCE(Spaceship::PlayerMovementOutputEvent, 0x01570520)\nDECLARE_EVENT_SOURCE(Spaceship::RampDownEvent, 0x02162AA0)\nDECLARE_EVENT_SOURCE(Spaceship::RefueledEvent, 0x02162E60)\nDECLARE_EVENT_SOURCE(Spaceship::RegisteredEvent, 0x02162BE0)\nDECLARE_EVENT_SOURCE(Spaceship::ShieldEvent, 0x02162A00)\nDECLARE_EVENT_SOURCE(Spaceship::ShipAddedEvent, 0x02162B40)\nDECLARE_EVENT_SOURCE(Spaceship::ShipCollisionEvent, 0x02162960)\nDECLARE_EVENT_SOURCE(Spaceship::ShipCustomizedEvent, 0x02162820)\nDECLARE_EVENT_SOURCE(Spaceship::SoldEvent, 0x02162D20)\nDECLARE_EVENT_SOURCE(Spaceship::SystemDamagedEvent, 0x021630E0)\nDECLARE_EVENT_SOURCE(Spaceship::SystemPowerAllocationEvent, 0x02163180)\nDECLARE_EVENT_SOURCE(Spaceship::SystemPowerChangeEvent, 0x02163220)\nDECLARE_EVENT_SOURCE(Spaceship::SystemRepairedBIEvent, 0x02162FA0)\nDECLARE_EVENT_SOURCE(Spaceship::SystemRepairedEvent, 0x02163040)\nDECLARE_EVENT_SOURCE(Spaceship::TakeDamagEvent, 0x021628C0)\nDECLARE_EVENT_SOURCE(Spaceship::TakeOffEvent, 0x02163400)\nDECLARE_EVENT_SOURCE(SpaceshipBIEvents::ShipPowerAllocationBIEventSent, 0x017A28D0)\nDECLARE_EVENT_SOURCE(SpaceshipWeaponBinding::SpaceshipWeaponBindingChangedEvent, 0x01311680)\nDECLARE_EVENT_SOURCE(StarMap::PlanetTraitKnownEvent, 0x007C0920)\nDECLARE_EVENT_SOURCE(StarMapMenu_ExecuteRoute, 0x016C5A20)\nDECLARE_EVENT_SOURCE(StarMapMenu_Galaxy_FocusSystem, 0x016B4C70)\nDECLARE_EVENT_SOURCE(StarMapMenu_LandingInputInProgress, 0x016961D0)\nDECLARE_EVENT_SOURCE(StarMapMenu_MarkerGroupContainerVisibilityChanged, 0x01695FF0)\nDECLARE_EVENT_SOURCE(StarMapMenu_MarkerGroupEntryClicked, 0x01695F50)\nDECLARE_EVENT_SOURCE(StarMapMenu_MarkerGroupEntryHoverChanged, 0x01695EB0)\nDECLARE_EVENT_SOURCE(StarMapMenu_OnCancel, 0x016C57A0)\nDECLARE_EVENT_SOURCE(StarMapMenu_OnClearRoute, 0x016C5AC0)\nDECLARE_EVENT_SOURCE(StarMapMenu_OnExitStarMap, 0x016C58E0)\nDECLARE_EVENT_SOURCE(StarMapMenu_OnGalaxyViewInitialized, 0x016B4BD0)\nDECLARE_EVENT_SOURCE(StarMapMenu_OnHintButtonClicked, 0x016C5980)\nDECLARE_EVENT_SOURCE(StarMapMenu_OnOutpostEntrySelected, 0x016C5840)\nDECLARE_EVENT_SOURCE(StarMapMenu_QuickSelectChange, 0x016A71D0)\nDECLARE_EVENT_SOURCE(StarMapMenu_ReadyToClose, 0x016C5700)\nDECLARE_EVENT_SOURCE(StarMapMenu_ScanPlanet, 0x01696270)\nDECLARE_EVENT_SOURCE(StarMapMenu_SelectedLandingSite, 0x01696090)\nDECLARE_EVENT_SOURCE(StarMapMenu_SelectedLandingSiteFailed, 0x016954F0)\nDECLARE_EVENT_SOURCE(StarMapMenu_ShowRealCursor, 0x01696130)\nDECLARE_EVENT_SOURCE(StartLoadGameEvent, 0x0035DB10)\nDECLARE_EVENT_SOURCE(StartOutpostFromListenerEvent, 0x01465250)\n//DECLARE_EVENT_SOURCE(SurfaceMapMenu_EnablePointCloud, 0x01682090)\nDECLARE_EVENT_SOURCE(SurfaceMapMenu_MarkerClicked, 0x016E4DC0)\nDECLARE_EVENT_SOURCE(SurfaceMapMenu_TryPlaceCustomMarker, 0x016E4D20)\nDECLARE_EVENT_SOURCE(TESCellCriticalRefsAttachedEvent, 0x00581CA0)\nDECLARE_EVENT_SOURCE(TESCellFullyLoadedEvent, 0x00581CA0)\nDECLARE_EVENT_SOURCE(TESCellReference3DAttachEvent, 0x0046B770)\n//DECLARE_EVENT_SOURCE(TESFilesCompiledEvent, 0x005A6830)\n//DECLARE_EVENT_SOURCE(TESObjectREFRDuplicate::Event, 0x00B611F0)\nDECLARE_EVENT_SOURCE(TESOpenCloseEvent, 0x01885AE0)\nDECLARE_EVENT_SOURCE(TESQuestEvent::Event, 0x00D0E3A0)\nDECLARE_EVENT_SOURCE(TESQuestRewardEvent, 0x00857350)\nDECLARE_EVENT_SOURCE(TESSceneEvent, 0x00CB5420)\nDECLARE_EVENT_SOURCE(TESUniqueIDChangeEvent, 0x00B656E0)\nDECLARE_EVENT_SOURCE(TakeoffMenu_CloseMenu, 0x0167B150)\nDECLARE_EVENT_SOURCE(TakeoffMenu_ExitShip, 0x0167B1F0)\nDECLARE_EVENT_SOURCE(TakeoffMenu_Launch, 0x0167B290)\nDECLARE_EVENT_SOURCE(TargetHitEvent, 0x01489680)\nDECLARE_EVENT_SOURCE(TerminalMenu_CancelEvent, 0x01700970)\nDECLARE_EVENT_SOURCE(Terminal_CloseAllViews, 0x017006F0)\nDECLARE_EVENT_SOURCE(Terminal_CloseTopView, 0x01700790)\nDECLARE_EVENT_SOURCE(Terminal_CloseView, 0x01700830)\nDECLARE_EVENT_SOURCE(Terminal_MenuItemClick, 0x017008D0)\nDECLARE_EVENT_SOURCE(TestMenu_DoAction, 0x0170A230)\nDECLARE_EVENT_SOURCE(TestMenu_ExitMenu, 0x0170A0F0)\nDECLARE_EVENT_SOURCE(TestMenu_ShowImages, 0x0170A2D0)\nDECLARE_EVENT_SOURCE(TestMenu_ShowResources, 0x0170A370)\nDECLARE_EVENT_SOURCE(TestMenu_TestAll, 0x0170A190)\nDECLARE_EVENT_SOURCE(TextInputMenu_EndEditText, 0x017175A0)\nDECLARE_EVENT_SOURCE(TextInputMenu_InputCanceled, 0x017176E0)\nDECLARE_EVENT_SOURCE(TextInputMenu_StartEditText, 0x01717640)\n//DECLARE_EVENT_SOURCE(TitleSequenceMenu_StartMusic, 0x01E6B910)\n//DECLARE_EVENT_SOURCE(UGCServicesStatusChangeEvent, 0x01E5BA40)\nDECLARE_EVENT_SOURCE(UIMenuChargenMenuDisablePaperdoll, 0x0165B6F0)\nDECLARE_EVENT_SOURCE(UnlockedTerminalElementEvent, 0x016228A0)\nDECLARE_EVENT_SOURCE(UpdateActivateListenerEvent, 0x01462DF0)\nDECLARE_EVENT_SOURCE(UpdateSceneRectEvent, 0x02557510)\n//DECLARE_EVENT_SOURCE(VehicleDriverEnterExitEvent, 0x0211F050)\nDECLARE_EVENT_SOURCE(WeaponGroupAssignmentMenu_ChangeWeaponAssignment, 0x00486080)\nDECLARE_EVENT_SOURCE(WeaponGroupAssignmentMenu_OnHintButtonActivated, 0x00486120)\nDECLARE_EVENT_SOURCE(Workshop::CargoLinkAddedEvent, 0x00F50380)\nDECLARE_EVENT_SOURCE(Workshop::CargoLinkTargetChangedEvent, 0x00F4FC00)\nDECLARE_EVENT_SOURCE(Workshop::EnterOutpostBeaconModeEvent, 0x00F4FCA0)\nDECLARE_EVENT_SOURCE(Workshop::ItemGrabbedEvent, 0x00F50060)\nDECLARE_EVENT_SOURCE(Workshop::ItemMovedEvent, 0x00F4F840)\nDECLARE_EVENT_SOURCE(Workshop::ItemPlacedEvent, 0x00F4FF20)\nDECLARE_EVENT_SOURCE(Workshop::ItemProducedEvent, 0x00F50100)\nDECLARE_EVENT_SOURCE(Workshop::ItemRemovedEvent, 0x00F4FFC0)\nDECLARE_EVENT_SOURCE(Workshop::ItemRepairedEvent, 0x00F4F7A0)\nDECLARE_EVENT_SOURCE(Workshop::ItemScrappedEvent, 0x00F502E0)\nDECLARE_EVENT_SOURCE(Workshop::OutpostNameChangedEvent, 0x00F4FB60)\nDECLARE_EVENT_SOURCE(Workshop::OutpostPlacedEvent, 0x00F4FD40)\nDECLARE_EVENT_SOURCE(Workshop::PlacementStatusEvent, 0x00F4FA20)\nDECLARE_EVENT_SOURCE(Workshop::PowerOffEvent, 0x00F50240)\nDECLARE_EVENT_SOURCE(Workshop::PowerOnEvent, 0x00F501A0)\nDECLARE_EVENT_SOURCE(Workshop::SnapBehaviorCycledEvent, 0x00F50560)\nDECLARE_EVENT_SOURCE(Workshop::WorkshopFlyCameraEvent, 0x00F4F8E0)\nDECLARE_EVENT_SOURCE(Workshop::WorkshopItemPlacedEvent, 0x00F4FE80)\nDECLARE_EVENT_SOURCE(Workshop::WorkshopModeEvent, 0x00F4F980)\n//DECLARE_EVENT_SOURCE(Workshop::WorkshopObjectModifiedBIEvent, 0x00F3AC60)\nDECLARE_EVENT_SOURCE(Workshop::WorkshopOutputLinkEvent, 0x00F4FDE0)\nDECLARE_EVENT_SOURCE(Workshop::WorkshopStatsChangedEvent, 0x00F50420)\nDECLARE_EVENT_SOURCE(Workshop::WorkshopUpdateStatsEvent, 0x00F504C0)\nDECLARE_EVENT_SOURCE(WorkshopActionButton_HoldFinished, 0x0173FF10)\nDECLARE_EVENT_SOURCE(WorkshopActionButton_HoldStopped, 0x0173FE70)\nDECLARE_EVENT_SOURCE(WorkshopBuilderMenu_ChangeBuildItem, 0x0171B6B0)\nDECLARE_EVENT_SOURCE(WorkshopBuilderMenu_SelectedItem, 0x0171B610)\nDECLARE_EVENT_SOURCE(WorkshopBuilderMenu_ToggleTracking, 0x0171B570)\nDECLARE_EVENT_SOURCE(WorkshopColorMode_ApplyColors, 0x0143EDC0)\nDECLARE_EVENT_SOURCE(WorkshopColorMode_SelectedTab, 0x0143ED20)\nDECLARE_EVENT_SOURCE(WorkshopColorMode_SliderChanged, 0x0143EC80)\nDECLARE_EVENT_SOURCE(WorkshopColorMode_SwatchChanged, 0x0143EBE0)\nDECLARE_EVENT_SOURCE(WorkshopMenu_AttemptBuild, 0x01722210)\nDECLARE_EVENT_SOURCE(WorkshopMenu_CancelAction, 0x01721F90)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ChangeVariant, 0x01722030)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ConnectionEvent, 0x01721DB0)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ExitMenu, 0x01721EF0)\nDECLARE_EVENT_SOURCE(WorkshopMenu_MessageCallback, 0x01721B30)\nDECLARE_EVENT_SOURCE(WorkshopMenu_SelectedCategory, 0x017220D0)\nDECLARE_EVENT_SOURCE(WorkshopMenu_SelectedGridObject, 0x01722170)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ShowExtras, 0x01721D10)\nDECLARE_EVENT_SOURCE(WorkshopMenu_SwitchMode, 0x01721E50)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ToggleDistance, 0x01721BD0)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ToggleTracking, 0x01721A90)\nDECLARE_EVENT_SOURCE(WorkshopMenu_ToggleView, 0x01721C70)\nDECLARE_EVENT_SOURCE(WorkshopQuickMenu_ConfirmAction, 0x01723420)\nDECLARE_EVENT_SOURCE(WorkshopQuickMenu_ExitMenu, 0x01723380)\nDECLARE_EVENT_SOURCE(WorkshopShared_SetActionHandles, 0x0173FFB0)\nDECLARE_EVENT_SOURCE(WorkshopShared_StartAction, 0x01740050)\nDECLARE_EVENT_SOURCE(WorkshopTargetMenu_TargetHovered, 0x01729930)\nDECLARE_EVENT_SOURCE(WorkshopTargetMenu_TargetPicked, 0x017299D0)\nDECLARE_EVENT_SOURCE_EX(Activation::Event, 0x0597F7B0)\nDECLARE_EVENT_SOURCE_EX(ActivityEvents::ActivityCompletedEvent, 0x0597C8A8)\nDECLARE_EVENT_SOURCE_EX(ActorCellChangeEvent, 0x0597F990)\nDECLARE_EVENT_SOURCE_EX(ActorDamage::Event, 0x05981E98)\nDECLARE_EVENT_SOURCE_EX(ActorHeadAttachedEvent, 0x0597F9B8)\nDECLARE_EVENT_SOURCE_EX(ActorItemEquipped::Event, 0x05981E48)\nDECLARE_EVENT_SOURCE_EX(ActorKill::Event, 0x05981E70)\nDECLARE_EVENT_SOURCE_EX(AnimationGraphDependentEvent, 0x05980CA0)\nDECLARE_EVENT_SOURCE_EX(AssaultCrime::Event, 0x05981F10)\nDECLARE_EVENT_SOURCE_EX(AttachReference::Event, 0x059238D0)\nDECLARE_EVENT_SOURCE_EX(BGSAffinityEventEvent, 0x0597F8A0)\nDECLARE_EVENT_SOURCE_EX(BGSHavokWorldCreatedEvent, 0x059809A8)\nDECLARE_EVENT_SOURCE_EX(BGSLocationLoadedEvent, 0x0597FC10)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerCompanionDismiss, 0x05980750)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerCraftItemEvent, 0x059807F0)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerCreateRobotEvent, 0x05980818)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerEnterVertibirdEvent, 0x059808B8)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerFallLongDistances, 0x05980778)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerFireWeaponEvent, 0x05980868)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerHealTeammateEvent, 0x059806D8)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerLoiteringBeginEvent, 0x05980700)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerLoiteringEndEvent, 0x05980728)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerModArmorWeaponEvent, 0x059807A0)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerModRobotEvent, 0x05980840)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerSwimmingEvent, 0x05980890)\nDECLARE_EVENT_SOURCE_EX(BGSOnPlayerUseWorkBenchEvent, 0x059808E0)\nDECLARE_EVENT_SOURCE_EX(BGSOnSpeechChallengeAvailable, 0x05980908)\nDECLARE_EVENT_SOURCE_EX(BGSRadiationDamageEvent, 0x059806B0)\n//DECLARE_EVENT_SOURCE_EX(BNetCallbackHelper::ImageCallbackEvent, 0x0584C7D8)\n//DECLARE_EVENT_SOURCE_EX(BNetCallbackHelper::UGCCallbackEvent, 0x0584C7B0)\n//DECLARE_EVENT_SOURCE_EX(BSMusicEvent, 0x05859648)\n//DECLARE_EVENT_SOURCE_EX(BSSysMonFrameCaptured, 0x0585A770)\nDECLARE_EVENT_SOURCE_EX(Bleedout::Event, 0x05981FC0)\nDECLARE_EVENT_SOURCE_EX(BooksRead::Event, 0x0597DAE0)\nDECLARE_EVENT_SOURCE_EX(Bounty::Event, 0x05982090)\nDECLARE_EVENT_SOURCE_EX(BuilderMenuSelectEvent, 0x05980A48)\n//DECLARE_EVENT_SOURCE_EX(CelestialLocationDiscoveredEvent, 0x058AE488)\nDECLARE_EVENT_SOURCE_EX(ChestLooted::Event, 0x059820B8)\nDECLARE_EVENT_SOURCE_EX(ClearShipHudTarget::Event, 0x05981CA8)\nDECLARE_EVENT_SOURCE_EX(ContractedDisease::Event, 0x05981FE8)\nDECLARE_EVENT_SOURCE_EX(CrewAssignedEvent, 0x0597FBC0)\nDECLARE_EVENT_SOURCE_EX(CrewDismissedEvent, 0x0597FBE8)\nDECLARE_EVENT_SOURCE_EX(CriticalHitEvent::Event, 0x05982068)\nDECLARE_EVENT_SOURCE_EX(CustomMarkerUpdate::Event, 0x059820E0)\nDECLARE_EVENT_SOURCE_EX(DaysJailed::Event, 0x05982108)\nDECLARE_EVENT_SOURCE_EX(DaysPassed::Event, 0x05981DD0)\nDECLARE_EVENT_SOURCE_EX(DestroyedEvent, 0x0597FC88)\nDECLARE_EVENT_SOURCE_EX(DisarmedEvent::Event, 0x05981EC0)\nDECLARE_EVENT_SOURCE_EX(EnteredUnity::Event, 0x05982388)\nDECLARE_EVENT_SOURCE_EX(FactionRankChange::Event, 0x05981EE8)\nDECLARE_EVENT_SOURCE_EX(FinePaid::Event, 0x05982130)\nDECLARE_EVENT_SOURCE_EX(FirstThirdPersonSwitch::Event, 0x05982428)\n//DECLARE_EVENT_SOURCE_EX(GameplayOptionAppliedEvent, 0x058AE438)\n//DECLARE_EVENT_SOURCE_EX(GameplayOptionChangedEvent, 0x058AE3E8)\n//DECLARE_EVENT_SOURCE_EX(GameplayOptionUpdateFinishedEvent, 0x058AE410)\nDECLARE_EVENT_SOURCE_EX(GrandTheftHorse::Event, 0x05981F88)\nDECLARE_EVENT_SOURCE_EX(HideSubtitleEvent::Event, 0x05981BB0)\nDECLARE_EVENT_SOURCE_EX(HourPassed::Event, 0x05981DF8)\nDECLARE_EVENT_SOURCE_EX(HoursPassed::Event, 0x059827F0)\nDECLARE_EVENT_SOURCE_EX(InstantReferenceInteractionEvent, 0x059809F8)\nDECLARE_EVENT_SOURCE_EX(ItemConsumedEvent, 0x05980D18)\nDECLARE_EVENT_SOURCE_EX(ItemCrafted::Event, 0x05982158)\nDECLARE_EVENT_SOURCE_EX(ItemSteal::Event, 0x05982180)\nDECLARE_EVENT_SOURCE_EX(ItemSwappedEvent, 0x05980CC8)\nDECLARE_EVENT_SOURCE_EX(JailEscape::Event, 0x059821A8)\nDECLARE_EVENT_SOURCE_EX(Jailing::Event, 0x059821D0)\nDECLARE_EVENT_SOURCE_EX(LocationExplored::Event, 0x0597F760)\nDECLARE_EVENT_SOURCE_EX(LocationLinked::Event, 0x0597F788)\nDECLARE_EVENT_SOURCE_EX(LocationMarkerArrayUpdate::Event, 0x05982220)\nDECLARE_EVENT_SOURCE_EX(LocationTextEvent::Event, 0x05981CF8)\nDECLARE_EVENT_SOURCE_EX(LockPickedEvent, 0x05980CF0)\n//DECLARE_EVENT_SOURCE_EX(MagicSystem::FlushLogEvent, 0x05839258)\n//DECLARE_EVENT_SOURCE_EX(MagicSystem::LogEvent, 0x05839230)\nDECLARE_EVENT_SOURCE_EX(MapMarkerDiscoveredEvent, 0x05980B10)\nDECLARE_EVENT_SOURCE_EX(MissionMenuStateEvent::Event, 0x05981C80)\nDECLARE_EVENT_SOURCE_EX(MurderCrime::Event, 0x05981F38)\nDECLARE_EVENT_SOURCE_EX(ObjectScannedEvent, 0x05980AC0)\nDECLARE_EVENT_SOURCE_EX(ObjectiveState::Event, 0x05980E80)\nDECLARE_EVENT_SOURCE_EX(PiracyCrime::Event, 0x05981F60)\nDECLARE_EVENT_SOURCE_EX(PlayerActiveEffectChanged::Event, 0x05982450)\nDECLARE_EVENT_SOURCE_EX(PlayerAddItemEvent, 0x05980930)\nDECLARE_EVENT_SOURCE_EX(PlayerAmmoChanged::Event, 0x05982248)\nDECLARE_EVENT_SOURCE_EX(PlayerArrestedEvent, 0x05980B38)\nDECLARE_EVENT_SOURCE_EX(PlayerAssaultActorEvent, 0x05980B60)\nDECLARE_EVENT_SOURCE_EX(PlayerBuyShipEvent, 0x05980C50)\nDECLARE_EVENT_SOURCE_EX(PlayerCrimeGoldEvent, 0x05980BB0)\nDECLARE_EVENT_SOURCE_EX(PlayerDifficultySettingChanged::Event, 0x05982270)\nDECLARE_EVENT_SOURCE_EX(PlayerFailedPlotRouteEvent, 0x0597FF80)\nDECLARE_EVENT_SOURCE_EX(PlayerFastTravel::Event, 0x05982360)\nDECLARE_EVENT_SOURCE_EX(PlayerInDialogueChanged::Event, 0x05982298)\nDECLARE_EVENT_SOURCE_EX(PlayerJailEvent, 0x05980BD8)\nDECLARE_EVENT_SOURCE_EX(PlayerLifeStateChanged::Event, 0x059822C0)\nDECLARE_EVENT_SOURCE_EX(PlayerModifiedShipEvent, 0x0597FFA8)\nDECLARE_EVENT_SOURCE_EX(PlayerMurderActorEvent, 0x05980B88)\n//DECLARE_EVENT_SOURCE_EX(PlayerNameEvent::NameChangedEvent, 0x058AF290)\nDECLARE_EVENT_SOURCE_EX(PlayerPayFineEvent, 0x05980C00)\nDECLARE_EVENT_SOURCE_EX(PlayerPickpocketSuccess::Event, 0x05982478)\nDECLARE_EVENT_SOURCE_EX(PlayerPlanetSurveyCompleteEvent, 0x05980A70)\nDECLARE_EVENT_SOURCE_EX(PlayerPlanetSurveyProgressEvent, 0x05980A98)\nDECLARE_EVENT_SOURCE_EX(PlayerSellShipEvent, 0x05980C78)\nDECLARE_EVENT_SOURCE_EX(PlayerTrespassEvent, 0x05980C28)\nDECLARE_EVENT_SOURCE_EX(PoisonedWeapon::Event, 0x059822E8)\nDECLARE_EVENT_SOURCE_EX(QuestStatus::Event, 0x05981328)\nDECLARE_EVENT_SOURCE_EX(QuickContainerOpenedEvent, 0x05980A20)\n//DECLARE_EVENT_SOURCE_EX(RadioManager::PipboyFrequencyDetectionEvent, 0x0584FB40)\n//DECLARE_EVENT_SOURCE_EX(RadioManager::PipboyRadioTuningEvent, 0x0584FB90)\nDECLARE_EVENT_SOURCE_EX(RadioManager::PipboyTransmitterDetectionEvent, 0x05922338)\nDECLARE_EVENT_SOURCE_EX(RefControlChangedEvent, 0x05980D68)\nDECLARE_EVENT_SOURCE_EX(ReferenceDestroyedEvent, 0x059809D0)\nDECLARE_EVENT_SOURCE_EX(RefillAliasEvent::Event, 0x05981300)\nDECLARE_EVENT_SOURCE_EX(ReloadWeaponEvent::Event, 0x05982010)\nDECLARE_EVENT_SOURCE_EX(RolloverIsCrimeEvent::Event, 0x05981B60)\n//DECLARE_EVENT_SOURCE_EX(ScannableUtils::ScannedEvent, 0x058AF100)\nDECLARE_EVENT_SOURCE_EX(ShowSubtitleEvent::Event, 0x05981B88)\n//DECLARE_EVENT_SOURCE_EX(SpaceshipEditor::TransactionEvent, 0x058A9EB8)\nDECLARE_EVENT_SOURCE_EX(SpeechChallengeCompletionEvent, 0x05980AE8)\nDECLARE_EVENT_SOURCE_EX(SpellsLearned::Event, 0x05982040)\nDECLARE_EVENT_SOURCE_EX(TESActivateEvent, 0x0597F850)\nDECLARE_EVENT_SOURCE_EX(TESActiveEffectApplyFinishEvent, 0x0597F8F0)\nDECLARE_EVENT_SOURCE_EX(TESActiveEffectRemovedEvent, 0x0597F918)\nDECLARE_EVENT_SOURCE_EX(TESActorActivatedRefEvent, 0x0597F878)\nDECLARE_EVENT_SOURCE_EX(TESActorLocationChangeEvent, 0x0597F968)\nDECLARE_EVENT_SOURCE_EX(TESBookReadEvent, 0x0597F9E0)\nDECLARE_EVENT_SOURCE_EX(TESCellGravityChangeEvent, 0x0597FB20)\nDECLARE_EVENT_SOURCE_EX(TESCellNavmeshGeneratedEvent, 0x0597FAA8)\nDECLARE_EVENT_SOURCE_EX(TESCellReadyToApplyDecalsEvent, 0x0597FAD0)\nDECLARE_EVENT_SOURCE_EX(TESCellReferenceAttachDetachEvent, 0x0597FA08)\nDECLARE_EVENT_SOURCE_EX(TESCombatEvent, 0x0597FB48)\nDECLARE_EVENT_SOURCE_EX(TESCombatListEvent, 0x0597FB70)\nDECLARE_EVENT_SOURCE_EX(TESCommandModeCompleteCommandEvent, 0x0597FDA0)\nDECLARE_EVENT_SOURCE_EX(TESCommandModeEnterEvent, 0x0597FDC8)\nDECLARE_EVENT_SOURCE_EX(TESCommandModeExitEvent, 0x0597FDF0)\nDECLARE_EVENT_SOURCE_EX(TESCommandModeGiveCommandEvent, 0x0597FE18)\nDECLARE_EVENT_SOURCE_EX(TESConsciousnessEvent, 0x05980610)\nDECLARE_EVENT_SOURCE_EX(TESContainerChangedEvent, 0x0597FB98)\nDECLARE_EVENT_SOURCE_EX(TESDeathEvent, 0x0597FC60)\nDECLARE_EVENT_SOURCE_EX(TESDeferredKillEvent, 0x0597FC38)\nDECLARE_EVENT_SOURCE_EX(TESDestructionStageChangedEvent, 0x0597FCB0)\nDECLARE_EVENT_SOURCE_EX(TESEnterBleedoutEvent, 0x0597FCD8)\nDECLARE_EVENT_SOURCE_EX(TESEnterSneakingEvent, 0x0597FD28)\nDECLARE_EVENT_SOURCE_EX(TESEquipEvent, 0x0597FE40)\nDECLARE_EVENT_SOURCE_EX(TESEscortWaitStartEvent, 0x0597FD50)\nDECLARE_EVENT_SOURCE_EX(TESEscortWaitStopEvent, 0x0597FD78)\nDECLARE_EVENT_SOURCE_EX(TESExitBleedoutEvent, 0x0597FD00)\nDECLARE_EVENT_SOURCE_EX(TESExitFurnitureEvent, 0x0597F8C8)\nDECLARE_EVENT_SOURCE_EX(TESFormDeleteEvent, 0x0597FE90)\nDECLARE_EVENT_SOURCE_EX(TESFormIDRemapEvent, 0x0597FEB8)\nDECLARE_EVENT_SOURCE_EX(TESFurnitureEvent, 0x0597FEE0)\nDECLARE_EVENT_SOURCE_EX(TESGrabReleaseEvent, 0x0597FF08)\nDECLARE_EVENT_SOURCE_EX(TESHarvestEvent::ItemHarvested, 0x0597C880)\nDECLARE_EVENT_SOURCE_EX(TESHitEvent, 0x0597FF30)\nDECLARE_EVENT_SOURCE_EX(TESInitScriptEvent, 0x0597FFF8)\nDECLARE_EVENT_SOURCE_EX(TESLimbCrippleEvent, 0x05980638)\nDECLARE_EVENT_SOURCE_EX(TESLoadGameEvent, 0x05980070)\nDECLARE_EVENT_SOURCE_EX(TESLocationExploredEvent, 0x05980020)\nDECLARE_EVENT_SOURCE_EX(TESLockChangedEvent, 0x05980048)\nDECLARE_EVENT_SOURCE_EX(TESMagicEffectApplyEvent, 0x05980098)\nDECLARE_EVENT_SOURCE_EX(TESMissionAcceptedEvent, 0x059801D8)\nDECLARE_EVENT_SOURCE_EX(TESObjectLoadedEvent, 0x059800C0)\nDECLARE_EVENT_SOURCE_EX(TESObjectREFRIsReadyForAttachEvent, 0x059800E8)\nDECLARE_EVENT_SOURCE_EX(TESObjectREFRTranslationEvent, 0x059804A8)\nDECLARE_EVENT_SOURCE_EX(TESOnPCDialogueTargetEvent, 0x05980688)\nDECLARE_EVENT_SOURCE_EX(TESPackageEvent, 0x05980138)\nDECLARE_EVENT_SOURCE_EX(TESPerkEntryRunEvent, 0x05980160)\nDECLARE_EVENT_SOURCE_EX(TESPickNewIdleEvent, 0x05980660)\nDECLARE_EVENT_SOURCE_EX(TESPickpocketFailedEvent, 0x05980188)\nDECLARE_EVENT_SOURCE_EX(TESPlayerActiveEffectEvent, 0x0597F940)\nDECLARE_EVENT_SOURCE_EX(TESPlayerFollowerWarpEvent, 0x0597FE68)\nDECLARE_EVENT_SOURCE_EX(TESQuestInitEvent, 0x059801B0)\nDECLARE_EVENT_SOURCE_EX(TESQuestRejectedEvent, 0x05980200)\nDECLARE_EVENT_SOURCE_EX(TESQuestStageEvent, 0x05980228)\nDECLARE_EVENT_SOURCE_EX(TESQuestStageItemDoneEvent, 0x05980250)\nDECLARE_EVENT_SOURCE_EX(TESQuestStartStopEvent, 0x05980278)\nDECLARE_EVENT_SOURCE_EX(TESQuestTimerEvent, 0x05980D40)\nDECLARE_EVENT_SOURCE_EX(TESResetEvent, 0x059802C8)\nDECLARE_EVENT_SOURCE_EX(TESResolveNPCTemplatesEvent, 0x059802F0)\nDECLARE_EVENT_SOURCE_EX(TESSceneActionEvent, 0x05980340)\nDECLARE_EVENT_SOURCE_EX(TESScenePhaseEvent, 0x05980368)\nDECLARE_EVENT_SOURCE_EX(TESSellEvent, 0x05980390)\nDECLARE_EVENT_SOURCE_EX(TESSleepStartEvent, 0x059803B8)\nDECLARE_EVENT_SOURCE_EX(TESSleepStopEvent, 0x059803E0)\nDECLARE_EVENT_SOURCE_EX(TESSpellCastEvent, 0x05980408)\nDECLARE_EVENT_SOURCE_EX(TESSpellCastFailureEvent, 0x05980430)\nDECLARE_EVENT_SOURCE_EX(TESSwitchRaceCompleteEvent, 0x059805E8)\nDECLARE_EVENT_SOURCE_EX(TESTopicInfoEvent, 0x05980458)\nDECLARE_EVENT_SOURCE_EX(TESTrackedStatsEvent, 0x05980480)\nDECLARE_EVENT_SOURCE_EX(TESTrapHitEvent, 0x059804D0)\nDECLARE_EVENT_SOURCE_EX(TESTriggerEnterEvent, 0x05980520)\nDECLARE_EVENT_SOURCE_EX(TESTriggerEvent, 0x059804F8)\nDECLARE_EVENT_SOURCE_EX(TESTriggerLeaveEvent, 0x05980548)\n//DECLARE_EVENT_SOURCE_EX(TESUnconsciousEvent, 0x058AE460)\nDECLARE_EVENT_SOURCE_EX(TESWaitStartEvent, 0x05980598)\nDECLARE_EVENT_SOURCE_EX(TESWaitStopEvent, 0x059805C0)\nDECLARE_EVENT_SOURCE_EX(TerminalHacked::Event, 0x05982310)\nDECLARE_EVENT_SOURCE_EX(TerminalMenuMenuItemRunEvent, 0x0597F800)\nDECLARE_EVENT_SOURCE_EX(TerminalMenuOnEnterEvent, 0x0597F828)\nDECLARE_EVENT_SOURCE_EX(TraitDiscoveryTextEvent::Event, 0x05981D20)\nDECLARE_EVENT_SOURCE_EX(TravelMarkerStateChange::Event, 0x059823D8)\nDECLARE_EVENT_SOURCE_EX(Trespass::Event, 0x05982718)\nDECLARE_EVENT_SOURCE_EX(TryUpdateShipHudTarget::Event, 0x05981CD0)\nDECLARE_EVENT_SOURCE_EX(VATSCommand, 0x05982778)\nDECLARE_EVENT_SOURCE_EX(VATSEvents::ModeChange, 0x05982750)\n//DECLARE_EVENT_SOURCE_EX(VehicleAmmoChanged::Event, 0x058AF9E8)\nDECLARE_EVENT_SOURCE_EX(WeaponAttack::Event, 0x05982338)\nDECLARE_EVENT_SOURCE_EX(WeaponFiredEvent, 0x05912258)\n//DECLARE_EVENT_SOURCE_EX(WorkbenchTracking::TrackingStatusChanged::Event, 0x058AF3E0)\nDECLARE_EVENT_SOURCE_EX(WorkshopNPCTransferEvent, 0x0597FFD0)\nDECLARE_EVENT_SOURCE_EX(XPChange::Event, 0x059238F8)\n//DECLARE_EVENT_SOURCE_EX(nsBarterMenu::CompletedEvent, 0x058AF380)\n"
  },
  {
    "path": "sfse/GameExtraData.cpp",
    "content": "#include \"sfse/GameExtraData.h\"\n\nBSExtraData * BaseExtraList::GetByType(BSExtraData::Type type) const\n{\n\tBSExtraData * result = nullptr;\n\n\tif(HasType(type))\n\t{\n\t\tfor(BSExtraData * iter = _head; iter; iter = iter->next)\n\t\t{\n\t\t\tif(iter->type == type)\n\t\t\t{\n\t\t\t\treturn iter;\n\t\t\t}\n\t\t}\n\t}\n}\n\nbool BaseExtraList::HasType(BSExtraData::Type type) const\n{\n\tu32 flagIdx = type >> 3;\n\tu8 flagBit = 1 << (type & 7);\n\n\treturn _flags && (_flags[flagIdx] & flagBit);\n}\n"
  },
  {
    "path": "sfse/GameExtraData.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameTypes.h\"\n#include \"sfse/GameLock.h\"\n\nclass BSExtraData\n{\npublic:\n\tvirtual ~BSExtraData();  // 00\n\n\t// add\n\tvirtual void Unk_01();  // 01\n\tvirtual void Unk_02();  // 02\n\tvirtual void Unk_03();  // 03\n\tvirtual void Unk_04();  // 04\n\tvirtual void Unk_05();  // 05\n\tvirtual void Unk_06();  // 06\n\n\tenum Type : u8\n\t{\n\t\tkNone,                                     // 0x00\n\t\tkHavok,                                    // 0x01 - ExtraHavok\n\t\tkCell3D,                                   // 0x02 - ExtraCell3D\n\t\tkCellWaterType,                            // 0x03 - ExtraCellWaterType\n\t\tkRegionList,                               // 0x04 - ExtraRegionList\n\t\tkSeenData,                                 // 0x05 - ExtraSeenData\n\t\tkEditorID,                                 // 0x06 - ExtraEditorID\n\t\tkCellMusicType,                            // 0x07 - ExtraCellMusicType\n\t\tkCellSkyRegion,                            // 0x08 - ExtraCellSkyRegion\n\t\tkProcessMiddleLow,                         // 0x09 - ExtraProcessMiddleLow\n\t\tkUnk0A,                                    // 0x0A\n\t\tkPersistentCell,                           // 0x0B - ExtraPersistentCell\n\t\tkKeywords,                                 // 0x0C - ExtraKeywords\n\t\tkAction,                                   // 0x0D - ExtraAction\n\t\tkStartingPosition,                         // 0x0E - ExtraStartingPosition\n\t\tkUnk0F,                                    // 0x0F\n\t\tkAnimGraphManager,                         // 0x10 - ExtraAnimGraphManager\n\t\tkUsedMarkers,                              // 0x11 - ExtraUsedMarkers\n\t\tkUnk12,                                    // 0x12\n\t\tkRagdollData,                              // 0x13 - ExtraRagDollData\n\t\tkInitActions,                              // 0x14 - ExtraInitActions\n\t\tkEssentialProtected,                       // 0x15 - ExtraEssentialProtected\n\t\tkPackagesStartLoc,                         // 0x16 - ExtraPackageStartLocation\n\t\tkPackage,                                  // 0x17 - ExtraPackage\n\t\tkTrespassPackage,                          // 0x18 - ExtraTresPassPackage\n\t\tkRunOncePacks,                             // 0x19 - ExtraRunOncePacks\n\t\tkReferenceHandles,                         // 0x1A - ExtraReferenceHandles\n\t\tkFollower,                                 // 0x1B - ExtraFollower\n\t\tkLevCreaMod,                               // 0x1C - ExtraLevCreaModifier\n\t\tkGhost,                                    // 0x1D - ExtraGhost\n\t\tkOriginalReference,                        // 0x1E - ExtraOriginalReference\n\t\tkOwnership,                                // 0x1F - ExtraOwnership\n\t\tkGlobal,                                   // 0x20 - ExtraGlobal\n\t\tkRank,                                     // 0x21 - ExtraRank\n\t\tkCount,                                    // 0x22 - ExtraCount\n\t\tkHealth,                                   // 0x23 - ExtraHealth\n\t\tkRangeDistOverride,                        // 0x24 - ExtraRangedDistOverride\n\t\tkTimeLeft,                                 // 0x25 - ExtraTimeLeft\n\t\tkCharge,                                   // 0x26 - ExtraCharge\n\t\tkLight,                                    // 0x27 - ExtraLight\n\t\tkLock,                                     // 0x28 - ExtraLock\n\t\tkTeleport,                                 // 0x29 - ExtraTeleport\n\t\tkMapMarker,                                // 0x2A - ExtraMapMarker\n\t\tkLeveledCreature,                          // 0x2B - ExtraLeveledCreature\n\t\tkLeveledItem,                              // 0x2C - ExtraLeveledItem\n\t\tkScale,                                    // 0x2D - ExtraScale\n\t\tkSeed,                                     // 0x2E - ExtraSeed\n\t\tkMagicCaster,                              // 0x2F - ExtraMagicCaster, NonActorMagicCaster\n\t\tkMagicTarget,                              // 0x30 - NonActorMagicTarget\n\t\tkUnk31,                                    // 0x31\n\t\tkPlayerCrimeList,                          // 0x32 - ExtraPlayerCrimeList\n\t\tkObjectInstance,                           // 0x33 - BGSObjectInstanceExtra\n\t\tkEnableStateParent,                        // 0x34 - ExtraEnableStateParent\n\t\tkEnableStateChildren,                      // 0x35 - ExtraEnableStateChildren\n\t\tkItemDropper,                              // 0x36 - ExtraItemDropper\n\t\tkDroppedItemList,                          // 0x37 - ExtraDroppedItemList\n\t\tkRandomTeleportMarker,                     // 0x38 - ExtraRandomTeleportMarker\n\t\tkSavedHavokData,                           // 0x39 - ExtraSavedHavokData\n\t\tkCannotWear,                               // 0x3A - ExtraCannotWear\n\t\tkPoison,                                   // 0x3B - ExtraPoison\n\t\tkUnk3C,                                    // 0x3C\n\t\tkLastFinishedSequence,                     // 0x3D - ExtraLastFinishedSequence\n\t\tkSavedAnimation,                           // 0x3E - ExtraSavedAnimation\n\t\tkNorthRotation,                            // 0x3F - ExtraNorthRotation\n\t\tkSpawnContainer,                           // 0x40 - ExtraSpawnContainer\n\t\tkFriendHits,                               // 0x41 - ExtraFriendHits\n\t\tkHeadingTarget,                            // 0x42 - ExtraHeadingTarget\n\t\tkUnk43,                                    // 0x43\n\t\tkRefractionProperty,                       // 0x44 - ExtraRefractionProperty\n\t\tkStartingWorldOrCell,                      // 0x45 - ExtraStartingWorldOrCell\n\t\tkFavorite,                                 // 0x46 - ExtraFavorite\n\t\tkUnk47,                                    // 0x47\n\t\tkEditorRefMoveData,                        // 0x48 - ExtraEditorRefMoveData\n\t\tkUnk49,                                    // 0x49\n\t\tkNoRumors,                                 // 0x4A - ExtraHasNoRumors\n\t\tkSound,                                    // 0x4B - ExtraSound\n\t\tkLinkedRef,                                // 0x4C - ExtraLinkedRef\n\t\tkLinkedRefChildren,                        // 0x4D - ExtraLinkedRefChildren\n\t\tkActivateRef,                              // 0x4E - ExtraActivateRef\n\t\tkUnk4F,                                    // 0x4F\n\t\tkTalkToPlayer,                             // 0x50 - ExtraCanTalkToPlayer\n\t\tkCellImageSpace,                           // 0x51 - ExtraCellImageSpace\n\t\tkNavMeshPortal,                            // 0x52 - ExtraNavMeshPortal\n\t\tkModelSwap,                                // 0x53 - ExtraModelSwap\n\t\tkRadius,                                   // 0x54 - ExtraRadius\n\t\tkUnk55,                                    // 0x55\n\t\tkFactionChanges,                           // 0x56 - ExtraFactionChanges\n\t\tkActorCause,                               // 0x57 - ExtraActorCause\n\t\tkUnk58,                                    // 0x58\n\t\tkUnk59,                                    // 0x59\n\t\tkUnk5A,                                    // 0x5A\n\t\tkReflectedRefs,                            // 0x5B - ExtraReflectedRefs\n\t\tkReflectorRefs,                            // 0x5C - ExtraReflectorRefs\n\t\tkEmittanceSource,                          // 0x5D - ExtraEmittanceSource\n\t\tkRadioData,                                // 0x5E - ExtraRadioData\n\t\tkCombatStyle,                              // 0x5F - ExtraCombatStyle\n\t\tkUnk60,                                    // 0x60\n\t\tkPrimitive,                                // 0x61 - ExtraPrimitive\n\t\tkOpenCloseActivateRef,                     // 0x62 - ExtraOpenCloseActivateRef\n\t\tkUnk63,                                    // 0x63\n\t\tkAmmo,                                     // 0x64 - ExtraAmmo\n\t\tkPatrolRefData,                            // 0x65 - ExtraPatrolRefData\n\t\tkPackageData,                              // 0x66 - ExtraPackageData\n\t\tkUnk67,                                    // 0x67\n\t\tkCollisionData,                            // 0x68 - ExtraCollisionData\n\t\tkSayOnceADayTopicInfo,                     // 0x69 - ExtraSayTopicInfoOnceADay\n\t\tkEncounterZone,                            // 0x6A - ExtraEncounterZone\n\t\tkSayToTopicInfo,                           // 0x6B - ExtraSayToTopicInfo\n\t\tkOcclusionPlaneRefData,                    // 0x6C - ExtraOcclusionPlaneRefData\n\t\tkUnk6D,                                    // 0x6D\n\t\tkUnk6E,                                    // 0x6E\n\t\tkUnk6F,                                    // 0x6F\n\t\tkRoomRefData,                              // 0x70 - ExtraRoomRefData\n\t\tkGuardedRefData,                           // 0x71 - ExtraGuardedRefData\n\t\tkCreatureAwakeSound,                       // 0x72 - ExtraCreatureAwakeSound\n\t\tkUnk73,                                    // 0x73\n\t\tkHorse,                                    // 0x74\n\t\tkIgnoredBySandbox,                         // 0x75 - ExtraIgnoredBySandbox\n\t\tkCellAcousticSpace,                        // 0x76 - ExtraCellAcousticSpace\n\t\tkReservedMarkers,                          // 0x77 - ExtraReservedMarkers\n\t\tkTransitionCellCount,                      // 0x78 - ExtraTransitionCellCount\n\t\tkWaterLightRefs,                           // 0x79 - ExtraWaterLightRefs\n\t\tkLitWaterRef,                              // 0x7A - ExtraLitWaterRef\n\t\tkRadioRepeater,                            // 0x7B - ExtraRadioRepeater\n\t\tkSoundHook,                                // 0x7C - ExtraSoundHook\n\t\tkPatrolRefInUseData,                       // 0x7D - ExtraPatrolRefInUseData\n\t\tkAshpileRef,                               // 0x7E - ExtraAshPileRef\n\t\tkFollowerSwimBreadcrumbs,                  // 0x7F - ExtraFollowerSwimBreadcrumbs\n\t\tkAliasInstanceArray,                       // 0x80 - ExtraAliasInstanceArray\n\t\tkLocation,                                 // 0x81 - ExtraLocation\n\t\tkUnk82,                                    // 0x82\n\t\tkLocationRefType,                          // 0x83 - ExtraLocationRefType\n\t\tkPromotedRef,                              // 0x84 - ExtraPromotedRef\n\t\tkUnk85,                                    // 0x85\n\t\tkOutfitItem,                               // 0x86 - ExtraOutfitItem\n\t\tkUnk87,                                    // 0x87\n\t\tkLeveledItemBase,                          // 0x88 - ExtraLeveledBaseObject\n\t\tkLightData,                                // 0x89 - ExtraLightData\n\t\tkLightBarndoorData,                        // 0x8A - ExtraLightBarndoorData\n\t\tkLightRoundnessData,                       // 0x8B - ExtraLightRoundnessData\n\t\tkLightAreaData,                            // 0x8C - ExtraLightAreaData\n\t\tkLightLayerData,                           // 0x8D - ExtraLightLayerData\n\t\tkLightVolumetricData,                      // 0x8E - ExtraLightVolumetricData\n\t\tkScene,                                    // 0x8F - ExtraSceneData\n\t\tkBadPosition,                              // 0x90 - ExtraBadPosition\n\t\tkHeadTrackingWeight,                       // 0x91 - ExtraHeadTrackingWeight\n\t\tkFromAlias,                                // 0x92 - ExtraFromAlias\n\t\tkShouldWear,                               // 0x93 - ExtraShouldWear\n\t\tkFavorCost,                                // 0x94 - ExtraFavorCost\n\t\tkAttachedArrows3D,                         // 0x95 - ExtraAttachedArrows3D\n\t\tkTextDisplayData,                          // 0x96 - ExtraTextDisplayData\n\t\tkEnchantment,                              // 0x97 - ExtraEnchantment\n\t\tkSoul,                                     // 0x98 - ExtraSoul\n\t\tkForcedTarget,                             // 0x99 - ExtraForcedTarget\n\t\tkWwiseSwitchData,                          // 0x9A - ExtraWwiseSwitchData\n\t\tkUniqueID,                                 // 0x9B - ExtraUniqueID\n\t\tkFlags,                                    // 0x9C - ExtraFlags\n\t\tkRefrPath,                                 // 0x9D - ExtraRefrPath\n\t\tkUnk9E,                                    // 0x9E\n\t\tkLockList,                                 // 0x9F - ExtraLockList\n\t\tkForcedLandingMarker,                      // 0xA0 - ExtraForcedLandingMarker\n\t\tkLargeRefOwnerCells,                       // 0xA1 - ExtraLargeRefOwnerCells\n\t\tkCellWaterEnvMap,                          // 0xA2 - ExtraCellWaterEnvMap\n\t\tkUnkA3,                                    // 0xA3\n\t\tkTeleportName,                             // 0xA4 - ExtraTeleportName\n\t\tkInteraction,                              // 0xA5 - ExtraInteraction\n\t\tkWaterData,                                // 0xA6 - ExtraWaterData\n\t\tkWaterCurrentZoneData,                     // 0xA7 - ExtraWaterCurrentZoneData\n\t\tkAttachRef,                                // 0xA8 - ExtraAttachRef\n\t\tkAttachRefChildren,                        // 0xA9 - ExtraAttachRefChildren\n\t\tkScriptedAnimDependence,                   // 0xAA - ExtraScriptedAnimDependence\n\t\tkCachedScale,                              // 0xAB - ExtraCachedScale\n\t\tkUnkAC,                                    // 0xAC\n\t\tkUnkAD,                                    // 0xAD\n\t\tkMissingRefIDs,                            // 0xAE - ExtraMissingRefIDs\n\t\tkBendableSplineParams,                     // 0xAF - ExtraBendableSplineParams\n\t\tkNavMeshSplineData,                        // 0xB0 - NavMeshSplineExtraData\n\t\tkReferenceGroup,                           // 0xB1 - ExtraReferenceGroup\n\t\tkUnkB2,                                    // 0xB2\n\t\tkUnkB3,                                    // 0xB3\n\t\tkOriginalItemBase,                         // 0xB4 - ExtraOriginalBaseObject\n\t\tkMaterialSwap,                             // 0xB5 - ExtraMaterialSwap\n\t\tkInstanceData,                             // 0xB6 - ExtraInstanceData\n\t\tkPowerArmor,                               // 0xB7 - ExtraPowerArmor\n\t\tkAcousticParent,                           // 0xB8 - ExtraAcousticParent\n\t\tkInputEnableLayer,                         // 0xB9 - ExtraInputEnableLayer\n\t\tkProjectedDecalRef,                        // 0xBA - ExtraProjectedDecalData\n\t\tkConstrainedDecalRef,                      // 0xBB - ExtraConstrainedDecalData\n\t\tkWorkshop,                                 // 0xBC - Workshop::ExtraData\n\t\tkRadioReceiver,                            // 0xBD - ExtraRadioReceiver\n\t\tkCulledBone,                               // 0xBE - ExtraCulledBone\n\t\tkActorValueStorage,                        // 0xBF - ExtraActorValueStorage\n\t\tkDirectAtTarget,                           // 0xC0 - ExtraDirectAtTarget\n\t\tkActivateText,                             // 0xC1 - ExtraActivateText\n\t\tkObjectBreakable,                          // 0xC2 - ExtraObjectBreakable\n\t\tkSavedDynamicIdles,                        // 0xC3 - ExtraObjectSavedDynamicIdles\n\t\tkIgnoredAttractKeywords,                   // 0xC4 - ExtraIgnoredAttractKeywords\n\t\tkModRank,                                  // 0xC5 - ExtraModRank\n\t\tkActorBoneScaleMap,                        // 0xC6 - ExtraBoneScaleMap\n\t\tkActorFXPickNodes,                         // 0xC7 - ExtraFXPickNodes\n\t\tkPowerArmorPreload,                        // 0xC8 - ExtraPowerArmorPreload\n\t\tkAnimGraphPreload,                         // 0xC9 - ExtraAnimGraphPreload\n\t\tkAnimSounds,                               // 0xCA - ExtraAnimSounds\n\t\tkPowerLinks,                               // 0xCB - ExtraPowerLinks\n\t\tkWorkshopSnapping,                         // 0xCC - ExtraWorkshopSnapping\n\t\tkSavedUnrecoverableSubgraphs,              // 0xCD - ExtraObjectSavedUnrecoverableSubgraphs\n\t\tkRefWeaponSounds,                          // 0xCE - ExtraRefWeaponSounds\n\t\tkRefInvestedGold,                          // 0xCF - ExtraInvestedGold\n\t\tkRefFurnitureEntryData,                    // 0xD0 - ExtraFurnitureEntryData\n\t\tkVoiceType,                                // 0xD1 - ExtraVoiceType\n\t\tkCalcedPackIn,                             // 0xD2 - ExtraCalcedPackIn\n\t\tkBody,                                     // 0xD3 - ExtraBody\n\t\tkSourcePackIn,                             // 0xD4 - ExtraSourcePackIn\n\t\tkTraversalData,                            // 0xD5 - ExtraTraversalData\n\t\tkTerminalMenuItems,                        // 0xD6 - ExtraTerminalMenuItems\n\t\tkCellEnvMap,                               // 0xD7 - ExtraCellEnvMap\n\t\tkModIndex,                                 // 0xD8 - ExtraModIndex\n\t\tkShipArrivalData,                          // 0xD9 - ExtraShipArrivalData\n\t\tkGroupedPackin,                            // 0xDA - ExtraGroupedPackin\n\t\tkUnkDB,                                    // 0xDB\n\t\tkUnkDC,                                    // 0xDC\n\t\tkBlueprintPartOriginData,                  // 0xDD - ExtraBlueprintPartOriginData\n\t\tkSnapLinks,                                // 0xDE - ExtraSnapLinks\n\t\tkUnkDF,                                    // 0xDF\n\t\tkUnkE0,                                    // 0xE0\n\t\tkPropertySheet,                            // 0xE1 - ExtraPropertySheet\n\t\tkCrew,                                     // 0xE2 - CrewExtraData\n\t\tkTerminalMenuMenuItems,                    // 0xE3 - ExtraTerminalMenuMenuItems\n\t\tkVolumeData,                               // 0xE4 - ExtraVolumeData\n\t\tkTerminalMenuBodyTextItems,                // 0xE5 - ExtraTerminalMenuBodyTextItems\n\t\tkCulledSubsegment,                         // 0xE6 - ExtraCulledSubsegment\n\t\tkLinkedChildrenAliasInstanceArray,         // 0xE7 - ExtraLinkedChildrenAliasInstanceArray\n\t\tkUnkE8,                                    // 0xE8\n\t\tkFogVolume,                                // 0xE9 - ExtraFogVolume\n\t\tkOwningInstance,                           // 0xEA - ExtraOwningInstance\n\t\tkDesiredLegendaryRank,                     // 0xEB - ExtraDesiredLegendaryRank\n\t\tkGeometryDirtynessScale,                   // 0xEC - ExtraGeometryDirtynessScale\n\t\tkVolumeReflectionProbeOffsetIntensity,     // 0xED - ExtraVolumeReflectionProbe_OffsetIntensity\n\t\tkTerminalMenuUnlockedItems,                // 0xEE - ExtraTerminalMenuUnlockedItems\n\t\tkProceduralInstanceData,                   // 0xEF - ExtraProceduralInstanceData\n\t\tkTimeOfDayData,                            // 0xF0 - ExtraTimeOfDayData\n\t\tkLightFlickerData,                         // 0xF1 - ExtraLightFlickerData\n\t\tkLightGoboData,                            // 0xF2 - ExtraLightGoboData\n\t\tkLightColorData,                           // 0xF3 - ExtraLightColorData\n\t\tkLightStaticShadowMapData,                 // 0xF4 - ExtraLightStaticShadowMapData\n\t\tkExternalEmittanceData,                    // 0xF5 - ExtraExternalEmittanceData\n\t\tkTempLocationWorldSpace,                   // 0xF6 - ExtraTempLocationWorldSpace\n\t\tkShipBlueprintSnapData,                    // 0xF7 - ExtraShipBlueprintSnapData\n\t\tkRandomAnimStartTime,                      // 0xF8 - ExtraRandomAnimStartTime\n\t\tkExteriorReflectionProbeAdjustmentVolume,  // 0xF9 - ExtraExteriorReflectionProbeAdjustmentVolume\n\t\tkCellGlobalDirtLayer,                      // 0xFA - ExtraCellGlobalDirtLayer\n\t\tkRadiusFalloffExponent,                    // 0xFB - ExtraRadiusFalloffExponent\n\t\tkWaterReflectionData,                      // 0xFC - ExtraWaterReflectionData\n\t\tkPlacedPlanetContent,                      // 0xFD - ExtraPlacedPlanetContent\n\t};\n\n\t// members\n\tBSExtraData*\tnext;   // 08\n\tu16\t\t\t\tflags;  // 10\n\tType\t\t\ttype;   // 12\n};\nstatic_assert(sizeof(BSExtraData) == 0x18);\n\nclass BaseExtraList\n{\npublic:\n\tDEFINE_MEMBER_FN_1(AddExtra, void, 0x00501750, BSExtraData* a_extra);\n\tBSExtraData * GetByType(BSExtraData::Type type) const;\t// inlined everywhere\n\n\tbool HasType(BSExtraData::Type type) const;\n\nprivate:\n\t// members\n\tBSExtraData*  _head;  // 00\n\tBSExtraData** _tail;  // 08\n\tu8*\t\t\t  _flags; // 10\n};\nstatic_assert(sizeof(BaseExtraList) == 0x18);\n\nclass ExtraDataList : public BSIntrusiveRefCounted\n{\npublic:\n\tvoid AddExtra(BSExtraData* a_extra)\n\t{\n\t\tconst BSAutoWriteLock l{ _extraRWLock };\n\t\t_extraData.AddExtra(a_extra);\n\t}\n\n\tBSExtraData* GetByType(BSExtraData::Type a_type)\n\t{\n\t\tconst BSAutoReadLock l{ _extraRWLock };\n\t\treturn _extraData.GetByType(a_type);\n\t}\n\nprivate:\n\t// members\n\tBaseExtraList           _extraData;    // 08\n\tmutable BSReadWriteLock _extraRWLock;  // 20\n};\nstatic_assert(sizeof(ExtraDataList) == 0x28);\n"
  },
  {
    "path": "sfse/GameFormComponents.h",
    "content": "#pragma once\n\n#include \"sfse/GameTypes.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse_common/Types.h\"\n\nclass TESObjectARMO;\nclass ActorValueInfo;\nclass BGSKeyword;\nclass TBO_InstanceData;\nclass BGSPerk;\nclass TESRace;\nclass BGSLocationRefType;\nclass BGSTerminal;\nclass BGSModelMaterialSwap;\nclass BGSBodyPartData;\nclass BGSAimAssistPoseData;\n\nclass BaseFormComponent\n{\npublic:\n\tvirtual ~BaseFormComponent();  // 00\n\n\t// add\n\tvirtual void InitializeDataComponent();                // 01\n\tvirtual void ClearDataComponent();                     // 02\n\tvirtual void CopyComponent(BaseFormComponent* a_rhs);  // 03 - { return; }\n\tvirtual void Unk_04();                                 // 04\n\tvirtual void Unk_05();                                 // 05\n\tvirtual void Unk_06();                                 // 06\n\tvirtual void Unk_07();                                 // 07\n};\nstatic_assert(sizeof(BaseFormComponent) == 0x08);\n\nclass TESFormRefCount : public BaseFormComponent\n{\npublic:\n\tvolatile u64 refCount;  // 00\n};\n\nclass TBO_InstanceData : public BSIntrusiveRefCounted\n{\npublic:\n\tvirtual ~TBO_InstanceData();\n\n\tvirtual void Unk_01();\n\tvirtual void Unk_02();\n\tvirtual void Unk_03();\n\tvirtual void Unk_04();\n\tvirtual void Unk_05();\n\tvirtual void Unk_06();\n\tvirtual void Unk_07();\n\tvirtual void Unk_08();\n\tvirtual void Unk_09();\n\tvirtual void Unk_0A();\n\tvirtual void Unk_0B();\n\tvirtual void Unk_0C();\n\tvirtual void Unk_0D();\n\tvirtual void Unk_0E();\n\tvirtual void Unk_0F();\n\tvirtual void Unk_10();\n};\n\nclass BGSSnapTemplateComponent : public BaseFormComponent\n{\npublic:\n\tvirtual ~BGSSnapTemplateComponent();\n\n\tvirtual void Unk_08();                                 // 08\n\tvirtual void Unk_09();                                 // 09\n\tvirtual void Unk_0A();                                 // 0A\n\n\tu64 unk08;\t// 08\n\tu64 unk10;\t// 10\n};\nstatic_assert(sizeof(BGSSnapTemplateComponent) == 0x18);\n\nclass BGSPreviewTransform : public BaseFormComponent\n{\npublic:\n\tvirtual ~BGSPreviewTransform();\n\n\tvirtual void Unk_08();                                 // 08\n\tvirtual void Unk_09();                                 // 09\n\tvirtual void Unk_0A();                                 // 0A\n\n\tu64\tunk08;\t// 08\n\tu64\tunk10;\t// 10\n\tu64\tunk18;\t// 18\n\tu64\tunk20;\t// 20\n\tu64\tunk28;\t// 28\n\tu64\tunk30;\t// 30\n\tu64\tunk38;\t// 38\n\tu64\tunk40;\t// 40\n};\nstatic_assert(sizeof(BGSPreviewTransform) == 0x48);\n\nclass BGSMod\n{\npublic:\n\tclass Template\n\t{\n\tpublic:\n\t\tclass Items : public BaseFormComponent\n\t\t{\n\t\tpublic:\n\t\t\tvirtual ~Items();\n\n\t\t\tvirtual void\tUnk_08();\t// 08\n\t\t\tvirtual void\tUnk_09();\t// 09\n\t\t\tvirtual void\tUnk_0A();\t// 0A\n\n\t\t\tvoid* unk08;\t// 08\n\t\t\tvoid* unk10;\t// 10\n\t\t\tvoid* unk18;\t// 18\n\t\t};\n\t};\n};\nstatic_assert(sizeof(BGSMod::Template::Items) == 0x20);\n\nclass BGSObjectPlacementDefaults : public BaseFormComponent\n{\npublic:\n\tvirtual void\tUnk_08();\t// 08\n\tvirtual void\tUnk_09();\t// 09\n\tvirtual void\tUnk_0A();\t// 0A\n\n\tu64 unk08;\t// 08\n};\nstatic_assert(sizeof(BGSObjectPlacementDefaults) == 0x10);\n\nstruct alignas(0x4) ACTOR_BASE_DATA\n{\n\tenum Flags\n\t{\n\t\tkFlags_None = 0,\n\t\tkFlags_Gender = (1 << 0),\n\t\tkFlags_Essential = (1 << 1),\n\t\tkFlags_Unique = (1 << 5),\n\t\tkFlags_Protected = (1 << 11),\n\t\tkFlags_WalkStyle = (1 << 19),\n\t};\n\n\tu8 GetSex() const { return iActorBaseFlags & kFlags_Gender; }\n\tbool IsEssential() const { return iActorBaseFlags & kFlags_Essential; }\n\tbool IsUnique() const { return iActorBaseFlags & kFlags_Unique; }\n\tbool IsProtected() const { return iActorBaseFlags & kFlags_Protected; }\n\n\ts32 iActorBaseFlags;\n\ts16 sXPValueOffset;\n\ts16 sLevel;\n\tu16 usCalcLevelMin;\n\tu16 usCalcLevelMax;\n\tu16 usBaseDisposition;\n\ts16 sTemplateUseFlags;\n\ts16 sBleedoutOverride;\n};\nstatic_assert(sizeof(ACTOR_BASE_DATA) == 0x14);\n\nclass TESActorBaseData : public BaseFormComponent\n{\npublic:\n\tvirtual void\tUnk_08();\t// 08\n\tvirtual void\tUnk_09();\t// 09\n\tvirtual void\tUnk_0A();\t// 0A\n\tvirtual void\tUnk_10();\t// 10\n\tvirtual void\tUnk_11();\t// 11\n\tvirtual void\tUnk_12();\t// 12\n\tvirtual void\tUnk_13();\t// 13\n\n\tACTOR_BASE_DATA\tactorData;\t// 08\n\ts32\tunk1C;\t// 1C\n\tu64\tunk20;\t// 20\n\tu64 unkPad; // Added in 1.10.31\n\tu64\tunk28;\t// 28\n\tu64\tunk30;\t// 30\n\tu64\tunk38;\t// 38\n\tu64\tunk40;\t// 40\n\tu64\tunk48;\t// 48\n\tu64\tunk50;\t// 50\n\tu64\tunk58;\t// 58\n\tu64\tunk60;\t// 60\n\tu64\tunk68;\t// 68\n};\nstatic_assert(sizeof(TESActorBaseData) == 0x78);\n\nclass TESContainer : public BaseFormComponent\n{\npublic:\n\tvirtual void\tUnk_08();\t// 08\n\tvirtual void\tUnk_09();\t// 09\n\tvirtual void\tUnk_0A();\t// 0A\n\n\tvoid* pContainerObjectsA;\t// 08\n\tu32\tuiNumContainerObjects;\t// 10\n};\nstatic_assert(sizeof(TESContainer) == 0x18);\n\nclass TESSpellList : public BaseFormComponent\n{\npublic:\n\tu32 unk08;\t// 08\n\tu32\tunk0C;\t// 0C\n\tu64\tunk10;\t// 10\n};\nstatic_assert(sizeof(TESSpellList) == 0x18);\n\nclass PackageList\n{\npublic:\n\tvirtual void Unk_00();\n\n\tu64\tunk08;\t// 08\n\tu64\tunk10;\t// 10\n\tu64\tunk18;\t// 18\n\tu64\tunk20;\t// 20\n};\nstatic_assert(sizeof(PackageList) == 0x28);\n\nstruct alignas(0x4) AIDATA_GAME\n{\n\tu16 unk00;\t// 00\n\tu8  unk02;\t// 02\n\tu8\tpad03;\t// 03\n\tu16 uiAggroRadius[4];\t// 04\n\tu16\tpad0A;\t// 0A\n\tu8\tunk0C;\t// 0C\n};\nstatic_assert(sizeof(AIDATA_GAME) == 0x10);\n\nclass TESAIForm : public BaseFormComponent\n{\npublic:\n\tAIDATA_GAME AIData;\t\t// 08\n\tPackageList AIPackList;\t// 18\n};\nstatic_assert(sizeof(TESAIForm) == 0x40);\n\nclass TESFullName : public BaseFormComponent\n{\npublic:\n\tBSFixedString strFullName;\t// 08\n};\nstatic_assert(sizeof(TESFullName) == 0x10);\n\nclass TESDescription : public BaseFormComponent\n{\npublic:\n\tu32\t\t\t\t\t\tuiFileOffset;\t\t// 08\n\tu32\t\t\t\t\t\tuiChunkOffset;\t\t// 0C\n\tBGSLocalizedStringDL\tDescriptionText;\t// 10\n};\nstatic_assert(sizeof(TESDescription) == 0x18);\n\nclass BGSBipedObjectForm : public BaseFormComponent\n{\npublic:\n\tvoid* unk08; // 08\n};\nstatic_assert(sizeof(BGSBipedObjectForm) == 0x10);\n\nclass BGSPreloadable\n{\npublic:\n\tvirtual ~BGSPreloadable();\n};\n\nenum ACTOR_VALUE_MODIFIER\n{\n\tAVM_PERMANENT,\n\tAVM_TEMPORARY,\n\tAVM_DAMAGE,\n\tAVM_COUNT\n};\n\nclass ActorValueOwner\n{\npublic:\n\tvirtual float GetActorValue(const ActorValueInfo* arInfo);\n\tvirtual float GetPermanentActorValue(const ActorValueInfo* arInfo);\n\tvirtual float GetBaseActorValue(const ActorValueInfo* arInfo);\n\tvirtual void SetBaseActorValue(const ActorValueInfo* arInfo, float afValue);\n\tvirtual void ModBaseActorValue(const ActorValueInfo* arInfo, float afDelta);\n\tvirtual void ModActorValue(ACTOR_VALUE_MODIFIER aeModifier, const ActorValueInfo* arInfo);\n\tvirtual float GetModifier(ACTOR_VALUE_MODIFIER aeModifier, const ActorValueInfo* arInfo);\n\tvirtual void RestorActorValue(const ActorValueInfo* arInfo, float afAmount);\n\tvirtual void SetActorValue(const ActorValueInfo* arInfo, float afValue);\n};\n\nclass BGSDestructibleObjectForm : public BaseFormComponent\n{\npublic:\n\tvoid* pData; // 08\n};\nstatic_assert(sizeof(BGSDestructibleObjectForm) == 0x10);\n\nclass BGSSkinForm : public BaseFormComponent\n{\npublic:\n\tTESObjectARMO* pFormSkin;\t// 08\n};\nstatic_assert(sizeof(BGSSkinForm) == 0x10);\n\nclass IKeywordFormBase\n{\npublic:\n\tvirtual ~IKeywordFormBase();\n\n\tvirtual bool HasKeyword(const BGSKeyword* apKeyword, const TBO_InstanceData* apData);\n\tvirtual void CollectAllKeywords(BSScrapArray<const BGSKeyword>& arOutKeywordA, const TBO_InstanceData* apData);\n};\n\nclass BGSKeywordForm : \n\tpublic BaseFormComponent,\n\tpublic IKeywordFormBase\t// 08\n{\npublic:\n\tu32\tunk10;\n\tu32\tunk14;\n\tu64\tunk18;\n\tu32\tunk20;\n\tu32\tunk24;\n\tu64\tunk28;\n};\nstatic_assert(sizeof(BGSKeywordForm) == 0x30);\n\nclass BGSAttackDataForm : public BaseFormComponent\n{\npublic:\n\tvoid*/*NiPointer<BGSAttackDataMap>*/ spAttackDataMap;\t// 08\n};\nstatic_assert(sizeof(BGSAttackDataForm) == 0x10);\n\nstruct PerkRankData\n{\n\tBGSPerk*\tpPerk;\t\t\t// 00\n\tu8\t\t\tcCurrentRank;\t// 08\n};\n\nclass BGSPerkRankArray : public BaseFormComponent\n{\npublic:\n\tBSTArray<PerkRankData>\tpPerksA;\t\t// 08\n};\nstatic_assert(sizeof(BGSPerkRankArray) == 0x18);\n\nclass BGSPropertySheet : public BaseFormComponent\n{\npublic:\n\tu64\tunk08;\n};\nstatic_assert(sizeof(BGSPropertySheet) == 0x10);\n\nclass TESRaceForm : public BaseFormComponent\n{\npublic:\n\tTESRace* pFormRace;\t// 08\n};\nstatic_assert(sizeof(TESRaceForm) == 0x10);\n\nclass BGSOverridePackCollection : public BaseFormComponent\n{\npublic:\n\tu64\tunk08[8];\n};\nstatic_assert(sizeof(BGSOverridePackCollection) == 0x48);\n\nclass BGSForcedLocRefType : public BaseFormComponent\n{\npublic:\n\tu64\t\t\t\t\t\tunk08;\t// 08\n\tu64\t\t\t\t\t\tunk10;\t// 10\n};\nstatic_assert(sizeof(BGSForcedLocRefType) == 0x18);\n\nclass BGSNativeTerminalForm : public BaseFormComponent\n{\npublic:\n\tBGSTerminal* pTerminal;\t// 08\n};\nstatic_assert(sizeof(BGSNativeTerminalForm) == 0x10);\n\nclass BGSAttachParentArray : public BaseFormComponent\n{\npublic:\n\tvoid*/*BGSTypedKeywordValue<2>*/ pArray;\t// 08\n\tu32\tuiSize;\t// 10\n};\nstatic_assert(sizeof(BGSAttachParentArray) == 0x18);\n\nclass TESModel : public BaseFormComponent\n{\npublic:\n\tvirtual void Unk_08(); // 08 - Record related\n\tvirtual void Unk_09(); // 09\n\tvirtual void Unk_0A(); // 0A\n\tvirtual void Unk_0B(); // 0B\n\tvirtual void Unk_0C(); // 0C\n\tvirtual void Unk_0D(); // 0D\n\tvirtual BGSModelMaterialSwap* GetAsModelMaterialSwap(); // 0E\n\n\tBSFixedString cModel;\t// 08\n\tu64\tunk10;\t\t\t\t// 10\n\tu32\tunk18;\t\t\t\t// 18\n\tu32\tunk1C;\t\t\t\t// 1C\n};\nstatic_assert(sizeof(TESModel) == 0x20);\n\nclass TESModelTri : public TESModel\n{\npublic:\n\n};\nstatic_assert(sizeof(TESModelTri) == 0x20);\n\nclass BGSTextureModel : public TESModel\n{\npublic:\n\n};\nstatic_assert(sizeof(BGSTextureModel) == 0x20);\n\nclass BGSModelMaterialSwap : public TESModel\n{\npublic:\n\tfloat fColorRemappingIndex; // 20\n\tu32 pad24; // 24\n};\nstatic_assert(sizeof(BGSModelMaterialSwap) == 0x28);\n\nclass IAnimationGraphComponent\n{\npublic:\n\tvirtual ~IAnimationGraphComponent();\n\n\tvirtual void Unk_01();\n\tvirtual void Unk_02();\n};\n\nclass BGSAnimationGraphComponent : public BaseFormComponent, public IAnimationGraphComponent\n{\npublic:\n\tBSFixedString\tunk10;\t// 10\n\tBSFixedString\tunk18;\t// 18\n\tBSFixedString\tunk20;\t// 20\n\tBSFixedString\tunk28;\t// 28\n\tu64\tunk30;\n\tu8\tunk38;\n};\nstatic_assert(sizeof(BGSAnimationGraphComponent) == 0x40);\n\nstruct FACEFX_BONESET\n{\n\tvirtual ~FACEFX_BONESET();\n\n\tu64\tunk08;\n\tu64\tunk10;\n\tu64\tunk18;\n\tu64\tunk20;\n};\n\nclass BoneModifierData\n{\npublic:\n\tvirtual ~BoneModifierData();\n\t\n\tvirtual void Unk_01();\n\tvirtual void Unk_02();\n\tvirtual void Unk_03();\n\tvirtual void Unk_04();\n\tvirtual void Unk_05();\n\tvirtual void Unk_06();\n\n\tBSFixedString\tunk08;\t// 08\n\tBSFixedString\tunk10;\t// 10\n\tfloat\t\t\tunk18;\t// 18\n};\n\nclass LookAtChainData : public BoneModifierData\n{\npublic:\n\tBSFixedString\tunk20;\t// 20\n};\n\nclass MorphDriverData : public BoneModifierData\n{\npublic:\n\tfloat\tunk20;\n\tfloat\tunk24;\n\tfloat\tunk28;\n\tfloat\tunk2C;\n\tfloat\tunk30;\n\tu8\t\tunk34;\n};\n\nclass PoseDeformerData : public BoneModifierData\n{\npublic:\n\tfloat\tunk20[(0x58 - 0x20) >> 2];\n\tu8\t\tunk58;\n};\nstatic_assert(sizeof(PoseDeformerData) == 0x60);\n\nclass SpringBoneData : public BoneModifierData\n{\npublic:\n\tfloat\tunk20[(0x60 - 0x20) >> 2];\n\tu8\t\tunk60;\n};\nstatic_assert(sizeof(SpringBoneData) == 0x68);\n\nclass BGSBodyPartInfo : public BaseFormComponent\n{\npublic:\n\tBGSBodyPartData*\t\tunk08;\t// 08\n\tFACEFX_BONESET*\t\t\tunk10;\t// 10\n\tFACEFX_BONESET*\t\t\tunk18;\t// 18\n\tBGSAimAssistPoseData*\tunk20;\t// 20\n};\nstatic_assert(sizeof(BGSBodyPartInfo) == 0x28);"
  },
  {
    "path": "sfse/GameForms.cpp",
    "content": "#include \"sfse/GameForms.h\"\n\nRelocAddr<TESForm::_GetFormByNumericID> TESForm::GetFormByNumericID(0x005DEF30);\nRelocAddr<TESForm::_GetFormByEditorID> TESForm::GetFormByEditorID(0x005DF1E0);\n"
  },
  {
    "path": "sfse/GameForms.h",
    "content": "#pragma once\n\n#include \"sfse/GameFormComponents.h\"\n#include \"sfse/GameReflection.h\"\n#include \"sfse/GameChargen.h\"\n#include \"sfse/NiTypes.h\"\n\nclass TESFile;\nclass TESObjectREFR;\nclass BGSMorphableObject;\nclass TESNPC;\nclass NiAVObject;\nclass TESWaterForm;\n\nenum class FormType : u32\n{\n\tkNONE = 0,  // 00\n\tkTES4,      // 01\n\tkGRUP,      // 02\n\tkGMST,      // 03\n\tkKYWD,      // 04 BGSKeyword\n\tkFFKW,      // 05 BGSFormFolderKeywordList\n\tkLCRT,      // 06 BGSLocationRefType\n\tkAACT,      // 07 BGSAction\n\tkTRNS,      // 08 BGSTransform\n\tkTXST,      // 09 BGSTextureSet\n\tkGLOB,      // 0A TESGlobal\n\tkDMGT,      // 0B BGSDamageType\n\tkCLAS,      // 0C TESClass\n\tkFACT,      // 0D TESFaction\n\tkAFFE,      // 0E BGSAffinityEvent\n\tkHDPT,      // 0F BGSHeadPart\n\tkEYES,      // 10 TESEyes\n\tkRACE,      // 11 TESRace\n\tkSOUN,      // 12 TESSound\n\tkSECH,      // 13 BGSSoundEcho\n\tkASPC,      // 14 BGSAcousticSpace\n\tkAOPF,      // 15 BGSAudioOcclusionPrimitive\n\tkSKIL,      // 16\n\tkMGEF,      // 17 EffectSetting\n\tkSCPT,      // 18 Script\n\tkLTEX,      // 19 TESLandTexture\n\tkPDCL,      // 1A BGSProjectedDecal\n\tkENCH,      // 1B EnchantmentItem\n\tkSPEL,      // 1C SpellItem\n\tkSCRL,      // 1D ScrollItem\n\tkACTI,      // 1E TESObjectACTI\n\tkTACT,      // 1F BGSTalkingActivator\n\tkCURV,      // 20 BGSCurveForm\n\tkCUR3,      // 21 BGSCurve3DForm\n\tkARMO,      // 22 TESObjectARMO\n\tkBOOK,      // 23 TESObjectBOOK\n\tkCONT,      // 24 TESObjectCONT\n\tkDOOR,      // 25 TESObjectDOOR\n\tkINGR,      // 26 IngredientItem\n\tkLIGH,      // 27 TESObjectLIGH\n\tkMISC,      // 28 TESObjectMISC\n\tkSTAT,      // 29 TESObjectSTAT\n\tkSCOL,      // 2A BGSStaticCollection\n\tkPKIN,      // 2B BGSPackIn\n\tkMSTT,      // 2C BGSMovableStatic\n\tkGRAS,      // 2D TESGrass\n\tkFLOR,      // 2E TESFlora\n\tkFURN,      // 2F TESFurniture\n\tkWEAP,      // 30 TESObjectWEAP\n\tkAMMO,      // 31 TESAmmo\n\tkNPC_,      // 32 TESNPC\n\tkLVLN,      // 33 TESLevCharacter\n\tkLVLP,      // 34 BGSLevPackIn\n\tkKEYM,      // 35 TESKey\n\tkALCH,      // 36 AlchemyItem\n\tkIDLM,      // 37 BGSIdleMarker\n\tkBMMO,      // 38 BGSBiomeMarkerObject\n\tkNOTE,      // 39 BGSNote\n\tkPROJ,      // 3A BGSProjectile\n\tkHAZD,      // 3B BGSHazard\n\tkBNDS,      // 3C BGSBendableSpline\n\tkSLGM,      // 3D TESSoulGem\n\tkTERM,      // 3E BGSTerminal\n\tkLVLI,      // 3F TESLevItem\n\tkGBFT,      // 40 BGSGenericBaseFormTemplate\n\tkGBFM,      // 41 BGSGenericBaseForm\n\tkLVLB,      // 42 BGSLevGenericBaseForm\n\tkWTHR,      // 43 TESWeather\n\tkWTHS,      // 44 BGSWeatherSettingsForm\n\tkCLMT,      // 45 TESClimate\n\tkSPGD,      // 46 BGSShaderParticleGeometryData\n\tkREGN,      // 47 TESRegion\n\tkNAVI,      // 48 NavMeshInfoMap\n\tkCELL,      // 49 TESObjectCELL\n\tkREFR,      // 4A TESObjectREFR\n\tkACHR,      // 4B Actor\n\tkPMIS,      // 4C MissileProjectile\n\tkPARW,      // 4D ArrowProjectile\n\tkPGRE,      // 4E GrenadeProjectile\n\tkPBEA,      // 4F BeamProjectile\n\tkPFLA,      // 50 FlameProjectile\n\tkPCON,      // 51 ConeProjectile\n\tkPPLA,      // 52 PlasmaProjectile\n\tkPBAR,      // 53 BarrierProjectile\n\tkPEMI,      // 54 EmitterProjectile\n\tkPHZD,      // 55 Hazard\n\tkWRLD,      // 56 TESWorldSpace\n\tkNAVM,      // 57 NavMesh\n\tkTLOD,      // 58\n\tkDIAL,      // 59 TESTopic\n\tkINFO,      // 5A TESTopicInfo\n\tkQUST,      // 5B TESQuest\n\tkIDLE,      // 5C TESIdleForm\n\tkPACK,      // 5D TESPackage\n\tkCSTY,      // 5E TESCombatStyle\n\tkLSCR,      // 5F TESLoadScreen\n\tkLVSP,      // 60 TESLevSpell\n\tkANIO,      // 61 TESObjectANIO\n\tkWATR,      // 62 TESWaterForm\n\tkEFSH,      // 63 TESEffectShader\n\tkTOFT,      // 64\n\tkEXPL,      // 65 BGSExplosion\n\tkDEBR,      // 66 BGSDebris\n\tkIMGS,      // 67 TESImageSpace\n\tkIMAD,      // 68 TESImageSpaceModifier\n\tkFLST,      // 69 BGSListForm\n\tkPERK,      // 6A BGSPerk\n\tkBPTD,      // 6B BGSBodyPartData\n\tkADDN,      // 6C BGSAddonNode\n\tkAVIF,      // 6D ActorValueInfo\n\tkCAMS,      // 6E BGSCameraShot\n\tkCPTH,      // 6F BGSCameraPath\n\tkVTYP,      // 70 BGSVoiceType\n\tkMATT,      // 71 BGSMaterialType\n\tkIPCT,      // 72 BGSImpactData\n\tkIPDS,      // 73 BGSImpactDataSet\n\tkARMA,      // 74 TESObjectARMA\n\tkLCTN,      // 75 BGSLocation\n\tkMESG,      // 76 BGSMessage\n\tkRGDL,      // 77\n\tkDOBJ,      // 78 BGSDefaultObjectManager\n\tkDFOB,      // 79 BGSDefaultObject\n\tkLGTM,      // 7A BGSLightingTemplate\n\tkMUSC,      // 7B BGSMusicType\n\tkFSTP,      // 7C BGSFootstep\n\tkFSTS,      // 7D BGSFootstepSet\n\tkSMBN,      // 7E BGSStoryManagerBranchNode\n\tkSMQN,      // 7F BGSStoryManagerQuestNode\n\tkSMEN,      // 80 BGSStoryManagerEventNode\n\tkDLBR,      // 81 BGSDialogueBranch\n\tkMUST,      // 82 BGSMusicTrackFormWrapper\n\tkDLVW,      // 83\n\tkWOOP,      // 84 TESWordOfPower\n\tkSHOU,      // 85 TESShout\n\tkEQUP,      // 86 BGSEquipSlot\n\tkRELA,      // 87 BGSRelationship\n\tkSCEN,      // 88 BGSScene\n\tkASTP,      // 89 BGSAssociationType\n\tkOTFT,      // 8A BGSOutfit\n\tkARTO,      // 8B BGSArtObject\n\tkMATO,      // 8C BGSMaterialObject\n\tkMOVT,      // 8D BGSMovementType\n\tkDUAL,      // 8E BGSDualCastData\n\tkCOLL,      // 8F BGSCollisionLayer\n\tkCLFM,      // 90 BGSColorForm\n\tkREVB,      // 91 BGSReverbParameters\n\tkRFGP,      // 92 BGSReferenceGroup\n\tkAMDL,      // 93 BGSAimModel\n\tkAAMD,      // 94 BGSAimAssistModel\n\tkMAAM,      // 95 BGSMeleeAimAssistModel\n\tkLAYR,      // 96\n\tkCOBJ,      // 97 BGSConstructibleObject\n\tkOMOD,      // 98 BGSMod::Attachment::Mod\n\tkZOOM,      // 99 BGSAimDownSightModel\n\tkINNR,      // 9A BGSInstanceNamingRules\n\tkKSSM,      // 9B BGSSoundKeywordMapping\n\tkSCCO,      // 9C\n\tkAORU,      // 9D BGSAttractionRule\n\tkSTAG,      // 9E BGSSoundTagSet\n\tkIRES,      // 9F BGSResource\n\tkBIOM,      // A0 BGSBiome\n\tkNOCM,      // A1 NavMeshObstacleCoverManager\n\tkLENS,      // A2 BGSLensFlare\n\tkLSPR,      // A3\n\tkOVIS,      // A4 BGSObjectVisibilityManager\n\tkDLYR,      // A5\n\tkSTND,      // A6 BGSSnapTemplateNode\n\tkSTMP,      // A7 BGSSnapTemplate\n\tkGCVR,      // A8 BGSGroundCover\n\tkMRPH,      // A9 BGSMorphableObject\n\tkTRAV,      // AA BGSTraversal\n\tkRSGD,      // AB BGSResourceGenerationData\n\tkOSWP,      // AC BGSObjectSwap\n\tkATMO,      // AD BGSAtmosphere\n\tkLVSC,      // AE BGSLevSpaceCell\n\tkSPCH,      // AF BGSSpeechChallengeObject\n\tkRESO,      // B0\n\tkAAPD,      // B1 BGSAimAssistPoseData\n\tkVOLI,      // B2 BGSVolumetricLighting\n\tkSFBK,      // B3 BGSSurface::Block\n\tkSFPC,      // B4\n\tkSFPT,      // B5 BGSSurface::Pattern\n\tkSFTR,      // B6 BGSSurface::Tree\n\tkPCMT,      // B7 BGSPlanetContentManagerTree\n\tkBMOD,      // B8 BGSBoneModifier\n\tkSTBH,      // B9 BGSSnapBehavior\n\tkPNDT,      // BA BGSPlanet::PlanetData\n\tkIUTF,      // BB\n\tkCNDF,      // BC BGSConditionForm\n\tkPCBN,      // BD BGSPlanetContentManagerBranchNode\n\tkPCCN,      // BE BGSPlanetContentManagerContentNode\n\tkSTDT,      // BF BSGalaxy::BGSStar\n\tkWWED,      // C0 BGSWwiseEventForm\n\tkRSPJ,      // C1 BGSResearchProjectForm\n\tkAOPS,      // C2 BGSAimOpticalSightModel\n\tkAMBS,      // C3 BGSAmbienceSet\n\tkWBAR,      // C4 BGSWeaponBarrelModel\n\tkPTST,      // C5 BGSSurface::PatternStyle\n\tkLMSW,      // C6 BGSLayeredMaterialSwap\n\tkFORC,      // C7 BGSForceData\n\tkTMLM,      // C8 BGSTerminalMenu\n\tkEFSQ,      // C9 BGSEffectSequenceForm\n\tkSDLT,      // CA BGSSecondaryDamageList\n\tkMTPT,      // CB BGSMaterialPathForm\n\tkCLDF,      // CC BGSCloudForm\n\tkFOGV,      // CD BGSFogVolumeForm\n\tkWKMF,      // CE BGSWwiseKeywordMapping\n\tkLGDI,      // CF BGSLegendaryItem\n\tkPSDC,      // D0 BGSParticleSystemDefineCollection\n\tkSUNP,      // D1 BSGalaxy::BGSSunPresetForm\n\tkPMFT,      // D2 BGSPhotoModeFeature\n\tkTODD,      // D3 BGSTimeOfDayData\n\tkAVMD,      // D4 BGSAVMData\n\tkPERS,      // D5 TESDataHandlerPersistentCreatedUtil::BGSPersistentIDsForm\n\tkCHAL,      // D6 BGSChallengeForm\n\tkUNK1,      // D7\n\tkUNK2,      // D8\n\tkUNK3,      // D9\n\tkTotal      // DA\n};\n\nclass TESForm : public TESFormRefCount, public BSReflection::IObject\n{\npublic:\n\tvirtual ~TESForm();  // 00\n\n\tstruct ACTIVATE_DATA\n\t{\n\t\tTESObjectREFR*\tactivatedRef;\n\t\tTESObjectREFR*\tactionRef;\n\t\tTESForm*\t\tobjectToGet;\n\t\ts32\t\t\t\tcount;\n\t\tbool\t\t\tunk1C;\n\t};\n\n\t// add\n\tvirtual void          Unk_08();                                                         // 08\n\tvirtual void          Unk_09();                                                         // 09\n\tvirtual void          Unk_0A();                                                         // 0A\n\tvirtual void          Unk_0B();                                                         // 0B\n\tvirtual void          Unk_0C();                                                         // 0C\n\tvirtual void          Unk_0D();                                                         // 0D\n\tvirtual void          Unk_0E();                                                         // 0E\n\tvirtual void          Unk_0F();                                                         // 0F\n\tvirtual void          Unk_10();                                                         // 10\n\tvirtual void          Unk_11();                                                         // 11\n\tvirtual void          Unk_12();                                                         // 12\n\tvirtual void          Unk_13();                                                         // 13\n\tvirtual void          Unk_14();                                                         // 14\n\tvirtual void          Unk_15();                                                         // 15\n\tvirtual void          Unk_16();                                                         // 16\n\tvirtual bool          AddChange(u32 a_changeFlags);                           // 17\n\tvirtual void          RemoveChange(u32 a_changeFlags);                        // 18\n\tvirtual void          Unk_19();                                                         // 19\n\tvirtual void          Unk_1A();                                                         // 1A\n\tvirtual void          Unk_1B();                                                         // 1B\n\tvirtual void          Unk_1C();                                                         // 1C\n\tvirtual void          Unk_1D();                                                         // 1D\n\tvirtual void          Unk_1E();                                                         // 1E\n\tvirtual void          InitItemImpl();                                                   // 1F\n\tvirtual TESFile* GetRevertFile() const;                                            // 20\n\tvirtual TESFile* GetDescriptionOwnerFile() const;                                  // 21\n\tvirtual u8  GetSavedFormType();                                               // 22\n\tvirtual void          GetFormDetailedString(char* a_dest, u32 a_size) const;  // 23\n\tvirtual bool          GetKnown() const;                                                 // 24\n\tvirtual bool          GetRandomAnim() const;                                            // 25\n\tvirtual bool          GetPlayable() const;                                              // 26\n\tvirtual void          SetPlayable(bool a_set);                                          // 27\n\tvirtual void          Unk_28();                                                         // 28\n\tvirtual void          Unk_29();                                                         // 29\n\tvirtual bool          GetDangerous() const;                                             // 2A\n\tvirtual bool          QHasCurrents() const;                                             // 2B\n\tvirtual bool          GetObstacle() const;                                              // 2C\n\tvirtual void          Unk_2D();                                                         // 2D\n\tvirtual bool          GetOnLocalMap() const;                                            // 2E\n\tvirtual bool          GetMustUpdate() const;                                            // 2F\n\tvirtual void          SetOnLocalMap(bool a_val);                                        // 30\n\tvirtual void          Unk_31();                                                         // 31 - new?\n\tvirtual void          Unk_32();                                                         // 32 - GetIgnoredBySandbox()?\n\tvirtual void          SetDelete(bool a_deleted);                                        // 33\n\tvirtual void          SetAltered(bool a_altered);                                       // 34\n\tvirtual void          Unk_35();                                                         // 35\n\tvirtual void          Unk_36();                                                         // 36\n\tvirtual void          Unk_37();                                                         // 37\n\tvirtual void          Unk_38();                                                         // 38\n\tvirtual void          Unk_39();                                                         // 39\n\tvirtual void          Unk_3A();                                                         // 3A\n\tvirtual void          Unk_3B();                                                         // 3B\n\tvirtual void          Unk_3C();                                                         // 3C\n\tvirtual void          Unk_3D();                                                         // 3D\n\tvirtual void          Unk_3E();                                                         // 3E\n\tvirtual void          Unk_3F();                                                         // 3F\n\tvirtual bool          IsFurniture();                                                    // 40 - new\n\tvirtual void          Unk_41();                                                         // 41\n\tvirtual void          Unk_42();                                                         // 42\n\tvirtual void          Unk_43();                                                         // 43\n\tvirtual void          Unk_44();                                                         // 44\n\tvirtual void          Unk_45();                                                         // 45\n\tvirtual void          Unk_46();                                                         // 46\n\tvirtual void          Unk_47();                                                         // 47\n\tvirtual void          Unk_48();                                                         // 48\n\tvirtual void          Unk_49();                                                         // 49\n\tvirtual void          Unk_4A();                                                         // 4A\n\tvirtual void          Unk_4B();                                                         // 4B\n\tvirtual u32 GetFullNameLength() const;                                        // 4C - new\n\tvirtual const char* GetFullName() const;                                              // 4D - new\n\tvirtual void          Unk_4E();                                                         // 4E\n\tvirtual void          Unk_4F();                                                         // 4F\n\tvirtual void          Unk_50();                                                         // 50\n\tvirtual void          Unk_51();                                                         // 51\n\tvirtual void          Unk_52();                                                         // 52\n\tvirtual void          Unk_53();                                                         // 53\n\tvirtual bool          Activate(const ACTIVATE_DATA& a_activateData);                    // 54\n\tvirtual void          Unk_55();                                                         // 55\n\tvirtual void          Unk_56();                                                         // 56\n\tvirtual void          Unk_57();                                                         // 57\n\tvirtual void          Unk_58();                                                         // 58\n\tvirtual void          Unk_59();                                                         // 59\n\tvirtual void          Unk_5A();                                                         // 5A\n\tvirtual void          Unk_5B();                                                         // 5B\n\tvirtual void          Unk_5C();                                                         // 5C\n\tvirtual u32 GetFilledSlots() const;                                           // 5D\n\tvirtual u32 GetFilledSlotsImpl() const;                                       // 5E\n\tvirtual float         GetDesirability() const;                                          // 5F\n\tvirtual void          Unk_60();                                                         // 60\n\tvirtual void          Unk_61();                                                         // 61\n\n\t// members\n\tu32 unk18;        // 18\n\tu32 unk1C;        // 1C\n\tu32 formFlags;    // 20\n\tu32 unk24;        // 24\n\tu32 formID;       // 28\n\tu8  unk2C;        // 2C - also flag\n\tu8  unk2D;        // 2D\n\tu8  formType;     // 2E\n\tu16  modIndex;    // 2F - changed to u16 in 1.14.70\n\n\tusing _GetFormByNumericID = TESForm * (*)(u32 formId);\n\tstatic RelocAddr<_GetFormByNumericID> GetFormByNumericID;\n\n\tusing _GetFormByEditorID = TESForm * (*)(const char*);\n\tstatic RelocAddr<_GetFormByEditorID> GetFormByEditorID;\n};\nstatic_assert(offsetof(TESForm, refCount) == 0x08);\nstatic_assert(sizeof(TESForm) == 0x38);\n\nclass BGSKeyword : public TESForm\n{\npublic:\n\t//...\n};\n\nstruct OBJ_REFR\n{\npublic:\n\t// members\n\tNiPoint3 angle;            // 00\n\tNiPoint3 location;         // 0C\n\tTESForm* objectReference;  // 18 - TESBoundObject\n};\nstatic_assert(sizeof(OBJ_REFR) == 0x20);\n\nstruct LOADED_REF_DATA\n{\npublic:\n\t// members\n\tvoid* handleList;\t\t\t\t\t\t\t\t// 00 - TODO\n\tNiPointer<NiAVObject>\tdata3D;\t\t\t\t\t// 08\n\tTESWaterForm*\t\t\tcurrentWaterType;\t\t// 10\n\tfloat\t\t\t\t\trelevantWaterHeight;\t// 18\n\tfloat\t\t\t\t\tcachedRadius;\t\t\t// 1C\n\tu32\t\t\t\t\t\tflags;\t\t\t\t\t// 20\n\tu16\t\t\t\t\t\tunderwaterCount;\t\t// 24\n};\nstatic_assert(sizeof(LOADED_REF_DATA) == 0x28);\n\nclass BGSListForm :\n\tpublic TESForm\n{\npublic:\n\tBSTArray<TESForm*> ArrayOfForms;\t\t// 30\n\tu64\tunk40;\t// 40\n\tu64\tunk48;\t// 48\n\tu64\tunk50;\t// 50\n\tu64\tunk58;\t// 58\n\tu64\tunk60;\t// 60\n\tu64\tunk68;\t// 68\n\tu64\tunk70;\t// 70\n\tu64\tunk78;\t// 78\n\tu64\tunk80;\t// 80\n};\nstatic_assert(sizeof(BGSListForm) == 0x90);\n\nclass BGSMorphableObject : public TESForm\n{\npublic:\n\tBSFixedString\t\tunk30;\t\t\t\t\t// 30\n\tBGSMorphableObject*\tunk38;\t\t\t\t\t// 38 - Seems to point to itself?\n\tBSFixedString\t\tperformanceMaterial;\t// 40\n\tBSFixedString\t\tchargenMaterial;\t\t// 48\n\tBSFixedString\t\tunk50;\t\t\t\t\t// 50\n\tu32\t\t\t\t\tunk58;\t\t\t\t\t// 58\n\tu32\t\t\t\t\tunk5C;\t\t\t\t\t// 5C\n};\nstatic_assert(sizeof(BGSMorphableObject) == 0x68);\n\nclass BGSHeadPart : \n\tpublic TESForm,\n\tpublic TESFullName,\t\t\t// 30\n\tpublic BGSModelMaterialSwap // 40\n{\npublic:\n\tenum HeadPartType : s32\n\t{\n\t\tHeadPartMisc = 0,\n\t\tHeadPartFace,\n\t\tHeadPartRightEye,\n\t\tHeadPartHair,\n\t\tHeadPartFacialHair,\n\t\tHeadPart5,\n\t\tHeadPartEyebrows,\n\t\tHeadPartJewelry,\n\t\tHeadPart8,\n\t\tHeadPartTeeth,\n\t\tHeadPart10,\n\t\tHeadPart11,\n\t\tHeadPartLeftEye,\n\t\tHeadPartEyelashes,\n\t\tHeadPartCount\n\t};\n\n\tBSFixedString unk68; // 68\n\tBGSHeadPart* unk70;\t// 70\n\tTESModel ChargenModel;\t// 78\n\tTESModelTri MorphsA[3];\t// 98\n\tu8\tunkF8;\t// F8\n\tu8\tpadF9[7];\t// F9\n\tu64\tunk100; // 100\n\tBSTArray<BGSHeadPart*>\textraParts;\t// 108\n\tBGSMorphableObject*\tmorph;\t// 118\n\tu64\tunk120;\t// 120\n\tBGSListForm*\tunk128;\t// 128\n\tBSFixedString\tunk130;\t// 130\n\tBSFixedString\tunk148;\t// 138\n\tHeadPartType\teType;\t// 140\n\tu32\tunk144; // 144\n};\nstatic_assert(sizeof(BGSHeadPart) == 0x150);\nstatic_assert(offsetof(BGSHeadPart, strFullName) == 0x40);\nstatic_assert(offsetof(BGSHeadPart, cModel) == 0x50);\n\nclass BGSBoneModifier : public TESForm\n{\npublic:\n\tvirtual ~BGSBoneModifier();\n\n\tBoneModifierData*\tunk30;\t// 30\n};\nstatic_assert(sizeof(BGSBoneModifier) == 0x40);\n\nclass BGSEquipSlot : public TESForm\n{\npublic:\n\tvirtual ~BGSEquipSlot();\n\n\tBSFixedString\tunk30;\t// 30\n\tvoid*\t\t\tunk38;\t// 38\n\tu64\t\t\t\tunk40;\t// 40\n\tu64\t\t\t\tunk48;\t// 48\n\tu64\t\t\t\tunk50;\t// 50\n\tu64\t\t\t\tunk58;\t// 58\n};\nstatic_assert(sizeof(BGSEquipSlot) == 0x68);\n\nclass BGSBodyPartData : \n\tpublic TESForm,\n\tpublic TESModel,\t\t// 30\n\tpublic BGSPreloadable\n{\npublic:\n\tu64\tunk58[(0x128 - 0x58) >> 3];\t// 58\n\tBSFixedString\tunk128;\t\t\t// 128\n\tBSFixedString\tunk130;\t\t\t// 130\n\tBSFixedString\tunk138;\t\t\t// 138\n\tBSFixedString\tunk140;\t\t\t// 140\n\tBSFixedString\tunk148;\t\t\t// 148\n};\nstatic_assert(sizeof(BGSBodyPartData) == 0x158);\n\nclass BGSMovementType : public TESForm\n{\npublic:\n\tBSFixedString\tunk30;\t// 30\n\tu64\tunk38[(0x140 - 0x38) >> 3];\n};\nstatic_assert(sizeof(BGSMovementType) == 0x148);\n\nclass BGSAimAssistPoseData : public TESForm\n{\npublic:\n\tu64\tunk30;\t// 30\n\tu64\tunk38;\t// 38\n\tu64\tunk40;\t// 40\n\tu64\tunk48;\t// 48\n\tu64\tunk50;\t// 50\n};\n\nclass TESRace :\n\tpublic TESForm,\n\tpublic TESFullName,\n\tpublic TESDescription,\n\tpublic TESSpellList,\n\tpublic BGSSkinForm,\n\tpublic BGSBipedObjectForm,\n\tpublic BGSKeywordForm,\n\tpublic BGSAttackDataForm,\n\tpublic BGSPropertySheet,\n\tpublic BGSPreloadable\n{\npublic:\n\tBSFixedString\teditorID;\t\t// E8\n\tvoid*\t\t\tunkF0;\t\t\t// F0\n\tvoid*\t\t\tunkF8;\t\t\t// F8\n\tfloat\t\t\tunk100;\t\t\t// 100\n\tu32\t\t\t\tunk104;\t\t\t// 104\n\tu32\t\t\t\tunk108;\t\t\t// 108\n\tu32\t\t\t\tunk10C;\t\t\t// 10C\n\tu64\t\t\t\tunk110;\t\t\t// 110\n\tu64\t\t\t\tunk118;\t\t\t// 118\n\tu64\t\t\t\tunk120;\t\t\t// 120\n\tu64\t\t\t\tunk128;\t\t\t// 128\n\tu32\t\t\t\tunk130;\t\t\t// 130\n\tu32\t\t\t\tunk134;\t\t\t// 134\n\tu32\t\t\t\tunk138;\t\t\t// 138\n\tu32\t\t\t\tunk13C;\t\t\t// 13C\n\tu64\t\t\t\tunk140;\t\t\t// 140\n\tu64\t\t\t\tunk148;\t\t\t// 148\n\tu64\t\t\t\tunk150;\t\t\t// 150\n\tu64\t\t\t\tunk158;\t\t\t// 158\n\tBSFixedString\tslotNames[64];\t// 160\n\tvoid*\t\t\tunk360[64];\t\t// 360\n\tBSTHashMap<BSFixedString, u32>\tslotMap;\t// 560\n\tstruct EquipSlot\n\t{\n\t\tBGSEquipSlot*\tunk00;\t// 00\n\t\tvoid*\t\t\tunk08;\t// 08\n\t};\n\tBSTArray<EquipSlot>\t\tunk598;\t\t\t// 598\n\tu64\t\t\t\tunk5A8;\t\t\t// 5A8\n\tu64\t\t\t\tunk5B0;\t\t\t// 5B0\n\tu64\t\t\t\tunk5B8;\t\t\t// 5B8\n\tBSTArray<BGSBoneModifier*>\t\t\tunk5C0[2];\t\t// 5C0\n\tu64\t\t\t\tunk5E0;\t\t\t// 5E0\n\tTESModel\t\tunk5E8[4];\t\t// 5E8\n\tTESModel\t\tfaceBones[2];\t// 668\n\tstruct Unk6A8\n\t{\n\t\ts32\t\t\t\tunk00;\n\t\tfloat\t\t\tunk04;\n\t\tfloat\t\t\tunk08;\n\t\tfloat\t\t\tunk0C;\n\t\tfloat\t\t\tunk10;\n\t\tu32\t\t\t\tunk14;\n\t\tu64\t\t\t\tunk18;\n\t\tfloat\t\t\tunk20;\n\t\tu32\t\t\t\tunk24;\n\t\tfloat\t\t\tunk28;\n\t\tfloat\t\t\tunk2C;\n\t\tfloat\t\t\tunk30;\n\t\tfloat\t\t\tunk34;\n\t\tfloat\t\t\tunk38;\n\t\tfloat\t\t\tunk3C;\n\t\tfloat\t\t\tunk40;\n\t\tfloat\t\t\tunk44;\n\t\tfloat\t\t\tunk48;\n\t\tfloat\t\t\tunk4C;\n\t\tu32\t\t\t\tunk50;\n\t\tfloat\t\t\tunk54;\n\t\tfloat\t\t\tunk58;\n\t\tu32\t\t\t\tunk5C;\n\t\tfloat\t\t\tunk60;\n\t\tfloat\t\t\tunk64;\n\t\tstruct Unk68\n\t\t{\n\t\t\tfloat\t\tunk00;\n\t\t\tfloat\t\tunk08;\n\t\t\tfloat\t\tunk0C;\n\t\t};\n\t\tUnk68\t\t\tunk68[2];\n\t\tvoid*\t\t\tunk80;\n\t\ts32\t\t\t\tunk88;\n\t\ts32\t\t\t\tunk8C;\n\t\ts32\t\t\t\tunk90;\n\t\ts32\t\t\t\tunk94;\n\t\ts32\t\t\t\tunk98;\n\t\ts32\t\t\t\tunk9C;\n\t\tfloat\t\t\tunkA0;\n\t\tfloat\t\t\tunkA4;\n\t\tfloat\t\t\tunkA8;\n\t\tfloat\t\t\tunkAC;\n\t\tfloat\t\t\tunkB0;\n\t\tfloat\t\t\tunkB4;\n\t\tfloat\t\t\tunkB8;\n\t\tfloat\t\t\tunkBC;\n\t\tu32\t\t\t\tunkC0;\n\t\tu32\t\t\t\tunkC4;\n\t\tu32\t\t\t\tunkC8;\n\t\tu32\t\t\t\tunkCC;\n\t\tu64\t\t\t\tunkD0;\n\t\tu64\t\t\t\tunkD8;\n\t\tu64\t\t\t\tunkE0;\n\t\tu32\t\t\t\tunkE8;\n\t\tu32\t\t\t\tunkEC;\n\t\tfloat\t\t\tunkF0;\n\t\tfloat\t\t\tunkF4;\n\t\tu32\t\t\t\tunkF8;\n\t\tu32\t\t\t\tunkFC;\n\t};\n\tUnk6A8\t\t\tunk6A8;\t\t\t\t\t// 6A8\n\tu64\t\t\t\tunk7A8;\t\t\t\t\t// 7A8\n\tBGSTextureModel\tunk7B0[2];\t\t\t\t// 7B0\n\tBGSAnimationGraphComponent unk7F0[4];\t// 7F0\n\tvoid*\t\t\t\t\tunk8F0[2];\t\t// 8F0\n\tBGSBodyPartInfo\t\t\tbodyPartInfo;\t// 900\n\tBGSAttachParentArray\tattachParentA;\t// 928\n\tu64\t\t\t\t\t\tunk940;\t\t\t// 940\n\tu64\t\t\t\t\t\tunk948;\t\t\t// 948\n\tu64\t\t\t\t\t\tunk950;\t\t\t// 950\n\tBGSMovementType*\t\tunk958[4];\t\t// 958\n\tu64\t\t\t\t\t\tunk978;\t\t\t// 978\n\tu64\t\t\t\t\t\tunk980;\t\t\t// 980\n\n\tusing FaceSliderID = u32;\n\tusing FaceMorphID = u32;\n\tstruct ChargenData\n\t{\n\t\tstruct FaceMorphData\n\t\t{\n\t\t\tBSFixedString\t\t\tName;\t\t\t\t\t// 00\n\t\t\tBSFixedString\t\t\tSecondaryMorphName;\t\t// 08\n\t\t\tBSFixedStringCS\t\t\tAssociatedMorphGroup;\t// 10\n\t\t\tu64\t\t\t\t\t\tAssociatedHeadPartType;\t// 18\n\t\t\tBSFixedString\t\t\tunk20;\t\t\t\t\t// 20\n\t\t\tBSFixedString\t\t\tunk28;\t\t\t\t\t// 28\n\t\t\tBSTArray<BSFixedString> BonesA;\t\t\t\t\t// 30 - Probably CS?\n\t\t\tBSTArray<u64>\t\t\tAssociatedMorphs;\t\t// 40\n\t\t\tBSTArray<FaceSliderID>\tPostBlendSliderA;\t\t// 50\n\t\t\tFaceMorphID\t\t\t\tID;\t\t\t\t\t\t// 60\n\t\t\tu8\t\t\t\t\t\tSculptRegion;\t\t\t// 64\n\t\t};\n\t\tBSTHashMap<FaceMorphID, FaceMorphData*>\t\t\t\t\t\t\tfaceMorphMap;\n\t\tBSTHashMap<FaceSliderID, BGSCharacterMorph::FacialBoneSlider*>\tfacialSliderMap;\n\t\tBSTHashMap<FaceSliderID, BGSCharacterMorph::FacialBoneSlider*>\tunk70;\n\t\tBSTHashMap<BSFixedString, BSTHashMap<BSFixedString, float>*>\tfacialBoneRegionCategoryMapping;\n\t\tBSTArray<FaceMorphID>\theadMorphA;\t// E0\n\t\tBSFixedString\t\t\tunkF0;\t// F0\n\t\tu64\t\t\t\t\t\tunkF8;\t// F8\n\t\tu64*\t\t\t\t\tunk100;\t// 100\n\t\tu64\t\t\t\t\t\tsliderCount;\t// 108\n\t\tu64\t\t\t\t\t\tunk110;\t// 110\n\t\tBSTArray<TESNPC*>\t\tunk118;\t// 118\n\t\tstruct MorphGroup\n\t\t{\n\t\t\tBSFixedString\t\t\t\tname;\t// Probably CS?\n\t\t\tBSTArray<BSFixedString>\t\tMorphA;\t// Probably CS?\n\t\t};\n\t\tBSTArray<MorphGroup*>\t\t\tmorphGroupA;\t\t// 128\n\t\tchar*\t\t\t\t\t\t\tunk138;\t\t\t\t// 138 - This is a giant csv of somekind\n\t\tvoid*\t\t\t\t\t\t\tunk140;\t\t\t\t// 140\n\t\tBSFixedString\t\t\t\t\tunk148;\t\t\t\t// 148\n\t};\n\tChargenData*\t\t\tchargenData[2];\t\t\t\t\t// 988\n\tu64\t\t\t\t\t\tunk998;\t\t\t\t\t\t\t// 998\n\tBSFixedString\t\t\thandMaterials[2];\t\t\t\t// 9A0\n\tBSFixedString\t\t\tskinMaterials[2];\t\t\t\t// 9B0\n\tBSFixedString\t\t\tunk9C0[2];\t\t\t\t\t\t// 9C0\n\tBSTArray<BGSHeadPart*>\theadParts[2];\t\t\t\t\t// 9D0\n\tstruct Unk9F0\n\t{\n\t\tvoid* unk00[2];\n\t};\n\tUnk9F0\t\t\t\t\tunk9F0[2];\n\tBSFixedString\t\t\tunkA10;\n};\n\nstatic_assert(offsetof(TESRace, unk360) == 0x368);\nstatic_assert(offsetof(TESRace, unk5C0) == 0x5C8);\nstatic_assert(offsetof(TESRace, unk5E8) == 0x5F0);\nstatic_assert(offsetof(TESRace::Unk6A8, unk80) == 0x80);\nstatic_assert(offsetof(TESRace, unk6A8) == 0x6B0);\nstatic_assert(offsetof(TESRace, unk7B0) == 0x7B8);\nstatic_assert(offsetof(TESRace, unk7F0) == 0x7F8);\nstatic_assert(offsetof(TESRace, unk8F0) == 0x8F8);\nstatic_assert(offsetof(TESRace, bodyPartInfo) == 0x908);\nstatic_assert(offsetof(TESRace, attachParentA) == 0x930);\nstatic_assert(offsetof(TESRace, unk940) == 0x948);\nstatic_assert(offsetof(TESRace, headParts) == 0x9D8);\nstatic_assert(offsetof(TESRace, unk9F0) == 0x9F8);\nstatic_assert(offsetof(TESRace, unkA10) == 0xA18);\nstatic_assert(sizeof(TESRace::Unk6A8) == 0x100);\nstatic_assert(sizeof(TESRace::ChargenData::FaceMorphData) == 0x68);\nstatic_assert(sizeof(TESRace::ChargenData) == 0x150);\nstatic_assert(sizeof(TESRace) == 0xA20);\n\nclass BGSAVMData : public TESForm\n{\npublic:\n\tBSFixedString\teditorName;\t// 30\n\tBGSAVMData*\t\tunk38;\t\t// 38 - Points to itself?\n\tenum Type\n\t{\n\t\tSIMPLE,\n\t\tCOMPLEX,\n\t\tMODULATION\n\t};\n\tu64\t\t\t\ttype;\t\t// 40\n\tBSFixedString\tname;\t\t// 48\n\tBSFixedString\tname2;\t\t// 50\n\tstruct Entry\n\t{\n\t\tBSFixedString\tname;\n\t\tBSFixedString\ttextureOrAVM;\n\t\tstruct Color\n\t\t{\n\t\t\tu8 a, b, g, r;\n\t\t};\n\t\tColor\t\t\tcolor;\n\t\tu32\t\t\t\tunk14;\n\t};\n\tEntry*\t\t\tentryBegin;\t// 58\n\tEntry*\t\t\tentryEnd;\t// 60\n\tEntry*\t\t\tunk68;\t\t// 68 - Why are there 2 end pointers?\n\tu64\t\t\t\tunk70;\t\t// 70\n};\nstatic_assert(sizeof(BGSAVMData) == 0x80);\n"
  },
  {
    "path": "sfse/GameLock.cpp",
    "content": "#include \"sfse/GameLock.h\"\n"
  },
  {
    "path": "sfse/GameLock.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n\nclass BSNonReentrantSpinLock\n{\npublic:\n\tDEFINE_MEMBER_FN_0(lock, void, 0x00323990);\n\t// try_lock and unlock was inlined everywhere\n\nprivate:\n\t// members\n\tvolatile u32 _lock{};  // 0\n};\nstatic_assert(sizeof(BSNonReentrantSpinLock) == 0x4);\n\nclass BSReadWriteLock\n{\npublic:\n\tDEFINE_MEMBER_FN_0(lock_read, void, 0x022CE9B0);\n\tDEFINE_MEMBER_FN_0(lock_write, void, 0x022CEA30);\n\tDEFINE_MEMBER_FN_0(unlock_read, void, 0x002C6280);\n\tDEFINE_MEMBER_FN_0(unlock_write, void, 0x002C4B80);\n\nprivate:\n\t// members\n\tu32          _writerThread{};  // 0\n\tvolatile u32 _lock{};          // 4\n};\nstatic_assert(sizeof(BSReadWriteLock) == 0x8);\n\nclass BSSpinLock\n{\npublic:\n\tDEFINE_MEMBER_FN_0(lock, void, 0x022CB300);\n\tDEFINE_MEMBER_FN_0(try_lock, bool, 0x022CB2B0);\n\tDEFINE_MEMBER_FN_0(unlock, void, 0x002B6600);\n\nprivate:\n\t// members\n\tu32          _owningThread{};  // 0\n\tvolatile u32 _lock{};          // 4\n};\nstatic_assert(sizeof(BSSpinLock) == 0x8);\n\ntemplate <class Mutex>\nstruct BSAutoLockDefaultPolicy\n{\npublic:\n\tstatic void lock(Mutex& a_mutex) { a_mutex.lock(); }\n\tstatic void unlock(Mutex& a_mutex) { a_mutex.unlock(); }\n};\nstatic_assert(std::is_empty_v<BSAutoLockDefaultPolicy<BSSpinLock>>);\n\ntemplate <class Mutex>\nstruct BSAutoLockReadLockPolicy\n{\npublic:\n\tstatic void lock(Mutex& a_mutex) { a_mutex.lock_read(); }\n\tstatic void unlock(Mutex& a_mutex) { a_mutex.unlock_read(); }\n};\nstatic_assert(std::is_empty_v<BSAutoLockReadLockPolicy<BSReadWriteLock>>);\n\ntemplate <class Mutex>\nstruct BSAutoLockWriteLockPolicy\n{\npublic:\n\tstatic void lock(Mutex& a_mutex) { a_mutex.lock_write(); }\n\tstatic void unlock(Mutex& a_mutex) { a_mutex.unlock_write(); }\n};\nstatic_assert(std::is_empty_v<BSAutoLockWriteLockPolicy<BSReadWriteLock>>);\n\ntemplate <class Mutex, template <class> class Policy = BSAutoLockDefaultPolicy>\nclass BSAutoLock\n{\npublic:\n\tusing mutex_type = Mutex;\n\tusing policy_type = Policy<mutex_type>;\n\n\texplicit BSAutoLock(mutex_type& a_mutex) :\n\t\t_lock(std::addressof(a_mutex))\n\t{\n\t\tpolicy_type::lock(*_lock);\n\t}\n\n\texplicit BSAutoLock(mutex_type* a_mutex) :\n\t\t_lock(a_mutex)\n\t{\n\t\tif (_lock) {\n\t\t\tpolicy_type::lock(*_lock);\n\t\t}\n\t}\n\n\t~BSAutoLock()\n\t{\n\t\tif (_lock) {\n\t\t\tpolicy_type::unlock(*_lock);\n\t\t}\n\t}\n\nprivate:\n\t// members\n\tmutex_type* _lock{};  // 00\n};\nstatic_assert(sizeof(BSAutoLock<void*>) == 0x8);\n\nusing BSAutoReadLock = BSAutoLock<BSReadWriteLock, BSAutoLockReadLockPolicy>;\nstatic_assert(sizeof(BSAutoReadLock) == 0x8);\n\nusing BSAutoWriteLock = BSAutoLock<BSReadWriteLock, BSAutoLockWriteLockPolicy>;\nstatic_assert(sizeof(BSAutoWriteLock) == 0x8);\n\ntemplate <class T, class Mutex>\nclass BSGuarded\n{\npublic:\n\ttemplate <class U, template <class> class Policy = BSAutoLockDefaultPolicy>\n\tclass Guard\n\t{\n\tpublic:\n\t\texplicit Guard(U& a_data, Mutex& a_mutex) :\n\t\t\t_guard(a_mutex),\n\t\t\t_data(a_data)\n\t\t{}\n\n\t\tU& operator*() { return _data; }\n\t\tU& operator->() { return _data; }\n\t\tconst U& operator*() const { return _data; }\n\t\tconst U& operator->() const { return _data; }\n\n\tprivate:\n\t\t// members\n\t\tBSAutoLock<Mutex, Policy> _guard{};  // 0 - Lock guard is first here?\n\t\tU& _data;     // 8\n\t};\n\n\tauto lock()\n\t{\n\t\treturn Guard<T>(_data, _lock);\n\t}\n\n\tauto lock_read() const\n\t{\n\t\treturn Guard<const T, BSAutoLockReadLockPolicy>(_data, _lock);\n\t}\n\n\tauto lock_write()\n\t{\n\t\treturn Guard<T, BSAutoLockWriteLockPolicy>(_data, _lock);\n\t}\n\nprivate:\n\t// members\n\tT             _data{};  // ??\n\tmutable Mutex _lock{};  // ??\n};\n"
  },
  {
    "path": "sfse/GameMemory.cpp",
    "content": "#include \"sfse/GameMemory.h\"\n\nRelocAddr<_GetMemoryManager> GetMemoryManager(0x002B81E0);\n\nvoid* Heap_Allocate(size_t size)\n{\n    return GetMemoryManager()->Allocate(size, 0, false);\n}\n\nvoid Heap_Free(void* ptr)\n{\n    GetMemoryManager()->Free(ptr, false);\n}\n"
  },
  {
    "path": "sfse/GameMemory.h",
    "content": "#pragma once\n\n#include \"sfse_common/Utilities.h\"\n\nclass ScrapHeap // Has parent classes\n{\npublic:\n    virtual ~ScrapHeap();\n\n    u64 unk08[(0x4B8 - 0x08) >> 3]; // 08\n    u32 currentThreadId;            // 4B8\n};\nstatic_assert(offsetof(ScrapHeap, currentThreadId) == 0x4B8);\n\nclass MemoryManager\n{\npublic:\n    DEFINE_MEMBER_FN_3(Allocate, void*, 0x022CA0C0, size_t size, size_t alignment, bool aligned);\n    DEFINE_MEMBER_FN_2(Free, void, 0x022CA330, void* buf, bool aligned);\n    // GetThreadScrapHeap appears to be inlined everywhere. did not check all ~2000 instances\n};\n\nusing _GetMemoryManager = MemoryManager * (*)();\nextern RelocAddr<_GetMemoryManager> GetMemoryManager;\n\nvoid* Heap_Allocate(size_t size);\nvoid Heap_Free(void* ptr);\n"
  },
  {
    "path": "sfse/GameMenu.h",
    "content": "#pragma once\n\n#include \"sfse/ScaleformFunctions.h\"\n#include \"sfse/GameUI.h\"\n#include \"sfse/GameEvents.h\"\n#include \"sfse/ScaleformValue.h\"\n\nclass TESNPC;\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nclass MovieImpl;\n}\n}\n\nclass IMenu : \n    public SWFToCodeFunctionHandler,          // 00\n    public BSInputEventUser,                  // 10\n    public BSTEventSink<UpdateSceneRectEvent> // 50\n{\npublic:\n    virtual const char* GetName() const ; // 03\n    virtual const char* GetRootPath() const; // 04\n    virtual void Unk_05(); // 05\n    virtual void Unk_06(); // 06\n    virtual bool LoadMovie(bool addEventDispatcher, bool unk2); // 07\n    virtual void Unk_08(); // 08\n    virtual void Unk_09(); // 09\n    virtual void Unk_0A(); // 0A\n    virtual void Unk_0B(); // 0B\n    virtual void Unk_0C(); // 0C\n    virtual void Unk_0D(); // 0D\n    virtual void Unk_0E(); // 0E\n    virtual void Unk_0F(); // 0F\n    virtual void Unk_10(); // 10\n    virtual void Unk_11(); // 11\n    virtual void Unk_12(); // 12\n    virtual void Unk_13(); // 13\n    virtual void Unk_14(); // 14\n    virtual void Unk_15(); // 15\n    virtual void Unk_16(); // 16\n    virtual void Unk_17(); // 17\n    virtual void Unk_18(); // 18\n    virtual void Unk_19(); // 19\n    virtual void Unk_1A(); // 1A\n\n    Scaleform::GFx::Value MenuObj;  // 58\n    Scaleform::GFx::MovieImpl* pUIMovie;  // 88\n    u64 unk90;  // 90 - EventDispatcherBackend?\n    u64 unk98;  // 98\n    u64 unkA0;  // A0\n    u32 unkA8;  // A8\n    u32 unkAC;  // AC\n    BSFixedString MenuName; // B0\n    BSFixedString unkB8;    // B8\n    u64 unkC0;  // C0 - Flags?\n    u32 unkC8;  // C8\n    u32 unkCC;  // CC\n    u32 unkD0;  // D0\n    u32 unkD4;  // D4\n    u64 unkD8;  // D8\n    u64 unkE0;  // E0\n    u64 unkE8;  // E8\n    u64 unkF0;  // F0\n    u64 unkF8;  // F8\n    u64 unk100; // 100\n    u32 unk108; // 108\n    u32 unk10C; // 10C\n    u64 unk110; // 110\n    u64 unk118; // 118\n    u64 unk120; // 120\n    u64 unk128; // 128\n    u64 unk130; // 130\n};\nstatic_assert(offsetof(IMenu, pUIMovie) == 0x88);\nstatic_assert(offsetof(IMenu, MenuName) == 0xB0);\n\nclass GameMenuBase : public IMenu\n{\npublic:\n\n};\n\n// 658\nclass ChargenMenu : \n    public IMenu,                                               // 00\n    public IDataModel,                                          // 138\n    public BSTEventSink<CharGen_CloseMenu>,                     // 140\n    public BSTEventSink<CharGen_PresetChange>,                  // 148\n    public BSTEventSink<CharGen_HeadpartPresetChange>,          // 150\n    public BSTEventSink<CharGen_SetSex>,                        // 158\n    public BSTEventSink<CharGen_SetSlider>,                     // 160\n    public BSTEventSink<CharGen_StartTextEntry>,                // 168\n    public BSTEventSink<CharGen_EndTextEntry>,                  // 170\n    public BSTEventSink<CharGen_CancelTextEntry>,               // 178\n    public BSTEventSink<CharGen_ShowPlayerRenameMessage>,       // 180\n    public BSTEventSink<CharGen_ShowChooseBackgroundMessage>,   // 188\n    public BSTEventSink<CharGen_SetBodyValues>,                 // 190\n    public BSTEventSink<CharGen_SetCameraPosition>,             // 198\n    public BSTEventSink<CharGen_HeadpartPlusSelectorChange>,    // 1A0\n    public BSTEventSink<CharGen_SkintoneChange>,                // 1A8\n    public BSTEventSink<CharGen_DirtScarsEtcChange>,            // 1B0\n    public BSTEventSink<CharGen_ToggleMarking>,                 // 1B8\n    public BSTEventSink<CharGen_SetTrait>,                      // 1C0\n    public BSTEventSink<CharGen_SetBackground>,                 // 1C8\n    public BSTEventSink<CharGen_EyeColorChange>,                // 1D0\n    public BSTEventSink<CharGen_BrowChange>,                    // 1D8\n    public BSTEventSink<CharGen_HairChange>,                    // 1E0\n    public BSTEventSink<CharGen_HairColorChange>,               // 1E8\n    public BSTEventSink<CharGen_FacialHairChange>,              // 1F0\n    public BSTEventSink<CharGen_FacialHairColorChange>,         // 1F8\n    public BSTEventSink<CharGen_BrowColorChange>,               // 200\n    public BSTEventSink<CharGen_TeethChange>,                   // 208\n    public BSTEventSink<CharGen_CyclePronoun>,                  // 210\n    public BSTEventSink<CharGen_SetPronoun>,                    // 218\n    public BSTEventSink<CharGen_TogglePreviewHabSuit>,          // 220\n    public BSTEventSink<CharGen_SwitchLocomotion>,              // 228\n    public BSTEventSink<CharGen_SwitchBodyType>,                // 230\n    public BSTEventSink<CharGen_RotatePaperdoll>,               // 238\n    public BSTEventSink<CharGen_RollOnLocomotion>,              // 240\n    public BSTEventSink<CharGen_RollOffLocomotion>,             // 248\n    public BSTEventSink<CharGen_TeethRollOn>,                   // 250\n    public BSTEventSink<CharGen_TeethRollOff>,                  // 258\n    public BSTEventSink<CharGen_JewelryChange>,                 // 260\n    public BSTEventSink<CharGen_JewelryColorChange>,            // 268\n    public BSTEventSink<CharGen_StartBodyChange>,               // 270\n    public BSTEventSink<CharGen_EndBodyChange>,                 // 278\n    public BSTEventSink<CharGen_SetAdditionalSlider>,           // 280\n    public BSTEventSink<CharGen_SetBlockInputUnderPopup>,       // 288\n    public BSTEventSink<CharGen_PostBlendFaceChange>,           // 290\n    public BSTEventSink<CharGen_PostBlendColorOptionChange>,    // 298\n    public BSTEventSink<CharGen_PostBlendIntensityChange>,      // 2A0\n    public BSTEventSink<CharGen_MakeupChange>,                  // 2A8\n    public BSTEventSink<CharGen_MarkingsChange>,                // 2B0\n    public BSTEventSink<UIMenuChargenMenuDisablePaperdoll>      // 2B8\n{\npublic:\n    MenuPaperDoll* pPaperDoll;   // 2C8\n    TESNPC* npc;                 // 2D0\n    u64 unk2D8[(0x5B8 - 0x2D8) >> 3];\n    u32 cameraPosition;          // 5B8\n    u32 unk5BC;                  // 5BC\n    u64 unk5C0[(0x650 - 0x5C0) >> 3];\n\n    enum\n    {\n        FACE_CAMERA_POSITION = 0,\n        BODY_CAMERA_POSITION,\n        BACKGROUND_CAMERA_POSITION,\n        PRESET_CAMERA_POSITION,\n        TRAITS_CAMERA_POSITION\n    };\n};\nstatic_assert(offsetof(ChargenMenu, cameraPosition) == 0x5B8);\nstatic_assert(sizeof(ChargenMenu) == 0x650);\n"
  },
  {
    "path": "sfse/GameObjects.h",
    "content": "#pragma once\n\n#include \"sfse/GameForms.h\"\n#include \"sfse/GameFormComponents.h\"\n#include \"sfse/GameEvents.h\"\n\nclass TESClass;\nclass TESCombatStyle;\nclass BGSOutfit;\nclass BGSListForm;\nclass TESFaction;\nclass BGSHeadPart;\n\nclass TESObject : public TESForm\n{\npublic:\n    virtual void    Unk_62(); // 62\n    virtual void    Unk_63(); // 63\n    virtual void    Unk_64(); // 64\n    virtual void    Unk_65(); // 65\n    virtual void    Unk_66(); // 66\n    virtual void    Unk_67(); // 67\n    virtual void    Unk_68(); // 68\n    virtual void    Unk_69(); // 69\n    virtual void    Unk_6A(); // 6A\n    virtual void    Unk_6B(); // 6B\n\n    BGSSnapTemplateComponent    snapTemplate;   // 38\n};\nstatic_assert(sizeof(TESObject) == 0x50);\n\nclass TESBoundObject : public TESObject\n{\npublic:\n    virtual void    Unk_6C(); // 6C\n    virtual void    Unk_6D(); // 6D\n    virtual void    Unk_6E(); // 6E\n    virtual void    Unk_6F(); // 6F\n    virtual void    Unk_70(); // 70\n    virtual void    Unk_71(); // 71\n    virtual void    Unk_72(); // 72\n    virtual void    Unk_73(); // 73\n    virtual void    Unk_74(); // 74\n    virtual void    Unk_75(); // 75\n    virtual void    Unk_76(); // 76\n    virtual void    Unk_77(); // 77\n    virtual void    Unk_78(); // 78\n    virtual void    Unk_79(); // 79\n    virtual void    Unk_7A(); // 7A\n    virtual void    Unk_7B(); // 7B\n    virtual void    Unk_7C(); // 7C\n    virtual void    Unk_7D(); // 7D\n    virtual void    Unk_7E(); // 7E\n    virtual void    Unk_7F(); // 7F\n\n    NiPoint3                    boundMin;           // 48\n    NiPoint3                    boundMax;           // 54\n    BGSMod::Template::Items     templateItems;      // 60\n    BGSPreviewTransform         previewTransform;   // 80\n    BGSObjectPlacementDefaults  placementDefaults;  // C8\n    u32                         unkD8;              // D8\n};\nstatic_assert(offsetof(TESBoundObject, templateItems) == 0x68);\nstatic_assert(offsetof(TESBoundObject, previewTransform) == 0x88);\nstatic_assert(offsetof(TESBoundObject, placementDefaults) == 0xD0);\nstatic_assert(sizeof(TESBoundObject) == 0xE8);\n\nclass TESBoundAnimObject : public TESBoundObject\n{\npublic:\n    virtual ~TESBoundAnimObject();\n\n    virtual void    Unk_80(); // 80\n    virtual void    Unk_81(); // 81\n};\nstatic_assert(sizeof(TESBoundAnimObject) == 0xE8);\n\nclass TESActorBase : \n    public TESBoundAnimObject,\n    public TESActorBaseData,            // E0\n    public TESContainer,                // 150\n    public TESSpellList,                // 168\n    public TESAIForm,                   // 180\n    public TESFullName,                 // 1C0\n    public ActorValueOwner,             // 1D0\n    public BGSDestructibleObjectForm,   // 1D8\n    public BGSSkinForm,                 // 1E8\n    public BGSKeywordForm,              // 1F8\n    public BGSAttackDataForm,           // 200\n    public BGSPerkRankArray,            // 228\n    public BGSPropertySheet             // 238\n{\npublic:\n    virtual void    Unk_82(); // 82\n    virtual void    Unk_83(); // 83\n    virtual void    Unk_84(); // 84\n    virtual void    Unk_85(); // 85\n};\n\nclass TESNPC : \n    public TESActorBase,\n    public TESRaceForm,                     // 250\n    public BGSOverridePackCollection,       // 260\n    public BGSForcedLocRefType,             // 270\n    public BGSNativeTerminalForm,           // 2B8\n    public BSTEventSink<MenuOpenCloseEvent> // 2D0\n{\npublic:\n    class InstanceData : public TBO_InstanceData\n    {\n    public:\n        u64 unk10[(0x158 - 0x10) >> 3];\n    };\n\n    BGSAttachParentArray AttachParents;  // 2E8\n    u64 unk300; // 300\n    u32 unk308; // 308\n    u32 unk30C; // 30C\n    TESClass* pCl;  // 310\n    //u64 unk318; // 318 - Removed 1.10.31\n    u64 unk320; // 320\n    TESCombatStyle* pCombatStyle;   // 328\n    u32 unk330; // 330\n    u32 unk334; // 334\n    u64 unk338; // 338\n    TESNPC* pFaceNPC; // 340\n    NiPoint3 MorphWeight; // 348\n    float fHeight; // 354\n    float fHeightMax; // 358\n    u32     unk35C; // 35C\n    u64     unk360; // 360\n    u64     unk368; // 368\n    u64     unk370; // 370\n    BSFixedString   unk378; // 378\n    u64     unk380; // 380\n    u64     unk388; // 388\n    BGSOutfit* pDefOutfit;  // 390\n    BGSOutfit* pSleepOutfit;    // 398\n    BGSListForm* pDefaultPackList;  // 3A0\n    TESFaction* pCrimeFaction;  // 3A8\n    u64 unk3B0; // 3B0\n    BSTArray<BGSHeadPart*> HeadPartsA;  // 3B8\n    u64 unk3C8; // 3C8\n    BSTArray<float>* unk3D0; // 3D0  -- 5 floats entries?\n    BSTHashMap2<u32, float>* AdditionalSliders;   // 3D8\n    BSTHashMap<u32, BSTHashMap<BSFixedStringCS, float>*>* unk3E0;   // 3E0\n    struct HeadPartData\n    {\n        u32 type;                       // 00 1 - Mask? \n        u32 unk04;                      // 04\n        BSFixedStringCS group;             // 08\n        BSFixedStringCS name;         // 10\n        BSFixedStringCS texture; // 18\n        struct Color\n        {\n            u8 a, b, g, r;\n        };\n        Color color;                    // 20\n        u32 intensity;                  // 24 up to 128 for some reason replaces alpha, color.a does nothing?\n    };\n    BSTArray<HeadPartData> HeadPartDataA;    // 3E0\n    u32 skinTone; // 3F8\n    u32 unk3FC; // 3FC\n    BSFixedStringCS teeth;   // 400\n    BSFixedStringCS jewelryColor;   // 408\n    BSFixedStringCS eyeColor;   // 410\n    BSFixedStringCS hairColor;   // 418\n    BSFixedStringCS facialHairColor;   // 420\n    BSFixedStringCS eyebrowColor;   // 428\n    u64 unk468; // 430\n    BSFixedString unk438; // 438\n    BSTHashMap<BSFixedStringCS, float>* shapeBlendData; // 440 - ShapeBlendData Map\n    u8 pronoun;  // 448\n    u8 pad449[7]; // 449\n\n    DEFINE_MEMBER_FN_1(DeriveGeneticParentAppearance, void, 0x00CD9CB0, TESNPC* source);\n    DEFINE_MEMBER_FN_1(CopyAppearance, void, 0x00CD9B30, TESNPC* source);\n};\nstatic_assert(sizeof(TESNPC) == 0x458); // Un-verified after 1.10.31\nstatic_assert(sizeof(TESNPC::HeadPartData) == 0x28);\nstatic_assert(sizeof(TESNPC::InstanceData) == 0x158);\n"
  },
  {
    "path": "sfse/GameRTTI.cpp",
    "content": "#include \"sfse/GameRTTI.h\"\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Relocation.h\"\n\ntypedef void* (*_Runtime_DynamicCast_Internal)(void* srcObj, u32 arg1, const void* fromType, const void* toType, u32 arg4);\n\nRelocAddr <_Runtime_DynamicCast_Internal> Runtime_DynamicCast_Internal(0x037565E0);\t// __RTDynamicCast\n\nvoid* Runtime_DynamicCast(void* srcObj, const void* fromType, const void* toType)\n{\n\tuintptr_t fromTypeAddr = uintptr_t(fromType) + RelocationManager::s_baseAddr;\n\tuintptr_t toTypeAddr = uintptr_t(toType) + RelocationManager::s_baseAddr;\n\n\treturn Runtime_DynamicCast_Internal(srcObj, 0, (void*)fromTypeAddr, (void*)toTypeAddr, 0);\n}\n\n#include \"GameRTTI.inl\"\n"
  },
  {
    "path": "sfse/GameRTTI.h",
    "content": "#pragma once\r\n\r\nvoid * Runtime_DynamicCast(void * srcObj, const void * fromType, const void * toType);\r\n\r\n#define DYNAMIC_CAST(obj, from, to) ( ## to *) Runtime_DynamicCast((void*)(obj), RTTI_ ## from, RTTI_ ## to)\r\n\r\nextern const void * RTTI_AK__StreamMgr__IAkFileLocationResolver;\r\nextern const void * RTTI_AK__StreamMgr__IAkLowLevelIOHook;\r\nextern const void * RTTI_AabbHitCollector;\r\nextern const void * RTTI_AbsorbEffect;\r\nextern const void * RTTI_AccumulatingValueModifierEffect;\r\nextern const void * RTTI_ActionActivateDoneHandler;\r\nextern const void * RTTI_ActionInput;\r\nextern const void * RTTI_ActionOutput;\r\nextern const void * RTTI_ActiveEffect;\r\nextern const void * RTTI_ActiveEffectReferenceEffectController;\r\nextern const void * RTTI_ActiveModItemDataModel;\r\nextern const void * RTTI_ActiveModItemDataModel__ActiveModItemEventShuttle;\r\nextern const void * RTTI_Actor;\r\nextern const void * RTTI_ActorEquipManager;\r\nextern const void * RTTI_ActorKnowledge;\r\nextern const void * RTTI_ActorMagicCaster;\r\nextern const void * RTTI_ActorMover;\r\nextern const void * RTTI_ActorPackageData;\r\nextern const void * RTTI_ActorSceneNextPhaseHandler;\r\nextern const void * RTTI_ActorUtils__ArmorRatingVisitor;\r\nextern const void * RTTI_ActorUtils__ArmorRatingVisitorBase;\r\nextern const void * RTTI_ActorValueBindingUpdaterService;\r\nextern const void * RTTI_ActorValueInfo;\r\nextern const void * RTTI_ActorValueOwner;\r\nextern const void * RTTI_ActorValueSnapshot;\r\nextern const void * RTTI_Actor__ForEachSpellVisitor;\r\nextern const void * RTTI_AddRagdollHandler;\r\nextern const void * RTTI_AddToInventoryOnDestroyUtils__AddToInventoryOnDestroyEventHandler;\r\nextern const void * RTTI_AimAssistData;\r\nextern const void * RTTI_AimAssist__Circle;\r\nextern const void * RTTI_AimAssist__Ellipse;\r\nextern const void * RTTI_AimAssist__Pill;\r\nextern const void * RTTI_AimDownSightData;\r\nextern const void * RTTI_AimModelData;\r\nextern const void * RTTI_AimOpticalSightData;\r\nextern const void * RTTI_AimOpticalSightStates__Active;\r\nextern const void * RTTI_AimOpticalSightStates__BetweenShots;\r\nextern const void * RTTI_AimOpticalSightStates__Deinitialization;\r\nextern const void * RTTI_AimOpticalSightStates__Inactive;\r\nextern const void * RTTI_AimOpticalSightStates__Initialization;\r\nextern const void * RTTI_AimOpticalSightStates__Ready;\r\nextern const void * RTTI_AlarmPackage;\r\nextern const void * RTTI_AlchemyItem;\r\nextern const void * RTTI_AliasLegendaryRankCalculator;\r\nextern const void * RTTI_AllowRotationHandler;\r\nextern const void * RTTI_AllowRotationHandlerReference;\r\nextern const void * RTTI_Almanac_BodySelected;\r\nextern const void * RTTI_Almanac_Inorganics_ChangeSelection;\r\nextern const void * RTTI_Almanac_Inorganics_ToggleTracking;\r\nextern const void * RTTI_Almanac_Locations_ChangeSelection;\r\nextern const void * RTTI_Almanac_Locations_FavoriteSelection;\r\nextern const void * RTTI_Almanac_Locations_OutpostSelected;\r\nextern const void * RTTI_Almanac_Organics_ChangeSelection;\r\nextern const void * RTTI_Almanac_Organics_ToggleTracking;\r\nextern const void * RTTI_Almanac_PageChanged;\r\nextern const void * RTTI_Almanac_Recipes_ChangeCategory;\r\nextern const void * RTTI_Almanac_Recipes_ChangeSelection;\r\nextern const void * RTTI_Almanac_Recipes_ToggleTracking;\r\nextern const void * RTTI_Almanac_ShowResourceBodyList;\r\nextern const void * RTTI_Almanac_Workshop_ChangeSelection;\r\nextern const void * RTTI_Almanac_Workshop_ToggleTracking;\r\nextern const void * RTTI_Almanac__AlmanacMenu;\r\nextern const void * RTTI_Almanac__AlmanacMenu__AlmanacMenuEventShuttle;\r\nextern const void * RTTI_Almanac__AlmanacState_Inorganics;\r\nextern const void * RTTI_Almanac__AlmanacState_Inorganics__AlmanacInorganicsEventShuttle;\r\nextern const void * RTTI_Almanac__AlmanacState_Locations;\r\nextern const void * RTTI_Almanac__AlmanacState_Locations__AlmanacLocationsEventShuttle;\r\nextern const void * RTTI_Almanac__AlmanacState_Null;\r\nextern const void * RTTI_Almanac__AlmanacState_Organics;\r\nextern const void * RTTI_Almanac__AlmanacState_Organics__AlmanacOrganicsEventShuttle;\r\nextern const void * RTTI_Almanac__AlmanacState_Recipes;\r\nextern const void * RTTI_Almanac__AlmanacState_Recipes__AlmanacRecipesEventShuttle;\r\nextern const void * RTTI_Almanac__AlmanacState_Workshop;\r\nextern const void * RTTI_Almanac__AlmanacState_Workshop__AlmanacWorkshopEventShuttle;\r\nextern const void * RTTI_AmmoData;\r\nextern const void * RTTI_AnimGraph;\r\nextern const void * RTTI_AnimGraphNode;\r\nextern const void * RTTI_AnimatedCameraDeltaStartHandler;\r\nextern const void * RTTI_AnimatedCameraEndHandler;\r\nextern const void * RTTI_AnimatedCameraStartHandler;\r\nextern const void * RTTI_AnimationClipDataSingleton;\r\nextern const void * RTTI_AnimationCompleteHandler;\r\nextern const void * RTTI_AnimationCorrectedNode;\r\nextern const void * RTTI_AnimationCorrectedNodeInstance;\r\nextern const void * RTTI_AnimationDrivenHandler;\r\nextern const void * RTTI_AnimationDrivenHandlerReference;\r\nextern const void * RTTI_AnimationFileManagerSingleton;\r\nextern const void * RTTI_AnimationGraph;\r\nextern const void * RTTI_AnimationGraphInstance;\r\nextern const void * RTTI_AnimationImpactSelector;\r\nextern const void * RTTI_AnimationImpactSelectorInstance;\r\nextern const void * RTTI_AnimationManager;\r\nextern const void * RTTI_AnimationNode;\r\nextern const void * RTTI_AnimationNodeInstance;\r\nextern const void * RTTI_AnimationObjectDrawHandler;\r\nextern const void * RTTI_AnimationObjectHideHandler;\r\nextern const void * RTTI_AnimationObjectLoadHandler;\r\nextern const void * RTTI_AnimationObjectUnequipAllHandler;\r\nextern const void * RTTI_AnimationObjectUnequipHandler;\r\nextern const void * RTTI_AnimationRagdoll;\r\nextern const void * RTTI_AnimationRagdollDrive;\r\nextern const void * RTTI_AnimationRagdollDriveInstance;\r\nextern const void * RTTI_AnimationRagdollInstance;\r\nextern const void * RTTI_AnimationStanceDataHelperSingleton;\r\nextern const void * RTTI_AnimationStanceDataSingletonDBData;\r\nextern const void * RTTI_AnimationStreamLoadGame;\r\nextern const void * RTTI_AnimationStreamSaveGame;\r\nextern const void * RTTI_AnimationSystemUtils__QueuedAnimationHandles;\r\nextern const void * RTTI_AnimationSystemUtils__QueuedModelHandles;\r\nextern const void * RTTI_AnimationSystemUtils__QueuedReferenceAnimationTask;\r\nextern const void * RTTI_AnimationSystemUtils__TESModelAndAnimationHandles;\r\nextern const void * RTTI_AntiGravityEffect;\r\nextern const void * RTTI_AnticipateAttackHandler;\r\nextern const void * RTTI_ArchiveFile;\r\nextern const void * RTTI_ArmorCraftingMenu;\r\nextern const void * RTTI_ArrowAttachHandler;\r\nextern const void * RTTI_ArrowDetachHandler;\r\nextern const void * RTTI_ArrowProjectile;\r\nextern const void * RTTI_AssignVariable;\r\nextern const void * RTTI_AssignVariableInstance;\r\nextern const void * RTTI_AssigniState;\r\nextern const void * RTTI_AssigniStateInstance;\r\nextern const void * RTTI_AttachDistant3DTask;\r\nextern const void * RTTI_AttachReferenceHandler;\r\nextern const void * RTTI_AttackStopHandler;\r\nextern const void * RTTI_AttractionObjectLOSManager;\r\nextern const void * RTTI_AttractionObjectLOSUtils__CacheEntry;\r\nextern const void * RTTI_AutoVanityState;\r\nextern const void * RTTI_AwakeSoundFadeHandler;\r\nextern const void * RTTI_AwakeSoundPauseHandler;\r\nextern const void * RTTI_AwakeSoundResumeHandler;\r\nextern const void * RTTI_AwakeSoundStopHandler;\r\nextern const void * RTTI_BGSAIOperationsMeter;\r\nextern const void * RTTI_BGSAIWorldLocationEditorSpacePointRadius;\r\nextern const void * RTTI_BGSAIWorldLocationInteriorCell;\r\nextern const void * RTTI_BGSAIWorldLocationPointRadius;\r\nextern const void * RTTI_BGSAIWorldLocationPrimitive;\r\nextern const void * RTTI_BGSAIWorldLocationRefRadius;\r\nextern const void * RTTI_BGSAVMData;\r\nextern const void * RTTI_BGSAbilityPerkEntry;\r\nextern const void * RTTI_BGSAcousticSpace;\r\nextern const void * RTTI_BGSAction;\r\nextern const void * RTTI_BGSActionData;\r\nextern const void * RTTI_BGSActivity;\r\nextern const void * RTTI_BGSActivityTrackerFormComponent;\r\nextern const void * RTTI_BGSActorValueActivity;\r\nextern const void * RTTI_BGSActorValueActivity_Runtime;\r\nextern const void * RTTI_BGSAdaptiveTriggerDataComponent;\r\nextern const void * RTTI_BGSAddToInventoryOnDestroy;\r\nextern const void * RTTI_BGSAddonNode;\r\nextern const void * RTTI_BGSAddonNodeSoundHandleExtra;\r\nextern const void * RTTI_BGSAffinityEvent;\r\nextern const void * RTTI_BGSAimAssistModel;\r\nextern const void * RTTI_BGSAimAssistPoseData;\r\nextern const void * RTTI_BGSAimDownSightModel;\r\nextern const void * RTTI_BGSAimModel;\r\nextern const void * RTTI_BGSAimOpticalSightModel;\r\nextern const void * RTTI_BGSAmbienceSet;\r\nextern const void * RTTI_BGSAnimationGraphComponent;\r\nextern const void * RTTI_BGSAnimationPathImplementation;\r\nextern const void * RTTI_BGSAnimationSubGraphDataSingleton;\r\nextern const void * RTTI_BGSApplyMagicEffectActivity;\r\nextern const void * RTTI_BGSApplyMagicEffectActivity_Runtime;\r\nextern const void * RTTI_BGSArtObject;\r\nextern const void * RTTI_BGSArtObjectCloneTask;\r\nextern const void * RTTI_BGSAssociationType;\r\nextern const void * RTTI_BGSAtmosphere;\r\nextern const void * RTTI_BGSAttachParentArray;\r\nextern const void * RTTI_BGSAttachTechniquesUtil__AttachTechniquesFunctor;\r\nextern const void * RTTI_BGSAttachTechniquesUtil__DetachTechniquesFunctor;\r\nextern const void * RTTI_BGSAttachTechniquesUtil__ProcessTechniquesFunctor;\r\nextern const void * RTTI_BGSAttackData;\r\nextern const void * RTTI_BGSAttackDataForm;\r\nextern const void * RTTI_BGSAttackDataMap;\r\nextern const void * RTTI_BGSAttractionRule;\r\nextern const void * RTTI_BGSAudioOcclusionPrimitive;\r\nextern const void * RTTI_BGSAudio_Internal__LooseAudioRegistrar;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr__DelayedEventInfo;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr__PlayingEventInfo;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseEventPreloadMgr;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseGameObjectMgr;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseIODevice;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseIOMgr;\r\nextern const void * RTTI_BGSAudio_Internal__WwiseMetadataMgr;\r\nextern const void * RTTI_BGSAudio__IEmitterResolver;\r\nextern const void * RTTI_BGSAudio__RefNodeResolver;\r\nextern const void * RTTI_BGSAudio__WwiseService;\r\nextern const void * RTTI_BGSAutoWater;\r\nextern const void * RTTI_BGSBarterActivity;\r\nextern const void * RTTI_BGSBarterActivity_Runtime;\r\nextern const void * RTTI_BGSBaseAlias;\r\nextern const void * RTTI_BGSBaseLODBlock;\r\nextern const void * RTTI_BGSBaseLODBlock__AutoDetachBlock;\r\nextern const void * RTTI_BGSBaseLODBlock__GeometryAutoDetachBlock;\r\nextern const void * RTTI_BGSBaseLODRuntimeComponent;\r\nextern const void * RTTI_BGSBendableSpline;\r\nextern const void * RTTI_BGSBiome;\r\nextern const void * RTTI_BGSBiomeMarkerObject;\r\nextern const void * RTTI_BGSBiome__MarkerKeywordData;\r\nextern const void * RTTI_BGSBleedoutActivity;\r\nextern const void * RTTI_BGSBleedoutActivity_Runtime;\r\nextern const void * RTTI_BGSBlockBashData;\r\nextern const void * RTTI_BGSBodyManager;\r\nextern const void * RTTI_BGSBodyPartData;\r\nextern const void * RTTI_BGSBodyPartInfo;\r\nextern const void * RTTI_BGSBodyUtils__SkinColorUpdateNode;\r\nextern const void * RTTI_BGSBoneModifier;\r\nextern const void * RTTI_BGSBuildWorkshopActivity;\r\nextern const void * RTTI_BGSBuildWorkshopActivity_Runtime;\r\nextern const void * RTTI_BGSCameraPath;\r\nextern const void * RTTI_BGSCameraShot;\r\nextern const void * RTTI_BGSChallengeForm;\r\nextern const void * RTTI_BGSCharacterMorph__FacialBoneSculptSlider;\r\nextern const void * RTTI_BGSCharacterMorph__FacialBoneSlider;\r\nextern const void * RTTI_BGSCityMapsUsageComponent;\r\nextern const void * RTTI_BGSCloudForm;\r\nextern const void * RTTI_BGSCollisionLayer;\r\nextern const void * RTTI_BGSColorForm;\r\nextern const void * RTTI_BGSCompleteResearchActivity;\r\nextern const void * RTTI_BGSCompleteResearchActivity_Runtime;\r\nextern const void * RTTI_BGSConditionForm;\r\nextern const void * RTTI_BGSConstructibleObject;\r\nextern const void * RTTI_BGSConsumeActivity;\r\nextern const void * RTTI_BGSConsumeActivity_Runtime;\r\nextern const void * RTTI_BGSContactShadowComponent;\r\nextern const void * RTTI_BGSConveyorBelt__ConveyorBelt;\r\nextern const void * RTTI_BGSCraftActivity;\r\nextern const void * RTTI_BGSCraftActivity_Runtime;\r\nextern const void * RTTI_BGSCraftableForm;\r\nextern const void * RTTI_BGSCraftingResourceOwner;\r\nextern const void * RTTI_BGSCreatedObjectManager;\r\nextern const void * RTTI_BGSCrippleLimbActivity;\r\nextern const void * RTTI_BGSCrippleLimbActivity_Runtime;\r\nextern const void * RTTI_BGSCrowdComponent;\r\nextern const void * RTTI_BGSCurve3DForm;\r\nextern const void * RTTI_BGSCurveForm;\r\nextern const void * RTTI_BGSCustomShipForm;\r\nextern const void * RTTI_BGSDamageType;\r\nextern const void * RTTI_BGSDebris;\r\nextern const void * RTTI_BGSDecalManager;\r\nextern const void * RTTI_BGSDecalNode;\r\nextern const void * RTTI_BGSDefaultObject;\r\nextern const void * RTTI_BGSDefaultObjectManager;\r\nextern const void * RTTI_BGSDestroyShipActivity;\r\nextern const void * RTTI_BGSDestroyShipActivity_Runtime;\r\nextern const void * RTTI_BGSDestructibleObjectForm;\r\nextern const void * RTTI_BGSDialogueBranch;\r\nextern const void * RTTI_BGSDisplayCaseFormComponent;\r\nextern const void * RTTI_BGSDistantObjectBlock;\r\nextern const void * RTTI_BGSDockingActivity;\r\nextern const void * RTTI_BGSDockingActivity_Runtime;\r\nextern const void * RTTI_BGSDualCastData;\r\nextern const void * RTTI_BGSDynamicLODBlock;\r\nextern const void * RTTI_BGSDynamicLODBlock__InstancedAutoDetachBlock;\r\nextern const void * RTTI_BGSEchoListener;\r\nextern const void * RTTI_BGSEffectSequenceForm;\r\nextern const void * RTTI_BGSEffectSequenceFormComponent;\r\nextern const void * RTTI_BGSEntryPointFunctionData;\r\nextern const void * RTTI_BGSEntryPointFunctionDataAVAndValue;\r\nextern const void * RTTI_BGSEntryPointFunctionDataActivateChoice;\r\nextern const void * RTTI_BGSEntryPointFunctionDataBooleanGraphVariable;\r\nextern const void * RTTI_BGSEntryPointFunctionDataLeveledList;\r\nextern const void * RTTI_BGSEntryPointFunctionDataOneValue;\r\nextern const void * RTTI_BGSEntryPointFunctionDataProjectile;\r\nextern const void * RTTI_BGSEntryPointFunctionDataSpellItem;\r\nextern const void * RTTI_BGSEntryPointFunctionDataText;\r\nextern const void * RTTI_BGSEntryPointFunctionDataTwoValue;\r\nextern const void * RTTI_BGSEntryPointPerkEntry;\r\nextern const void * RTTI_BGSEquipSlot;\r\nextern const void * RTTI_BGSExplosion;\r\nextern const void * RTTI_BGSExternalComponentDataSource;\r\nextern const void * RTTI_BGSFaceFX;\r\nextern const void * RTTI_BGSFacialExpressionData;\r\nextern const void * RTTI_BGSFadeManager;\r\nextern const void * RTTI_BGSFogVolumeForm;\r\nextern const void * RTTI_BGSFootIkImplementation;\r\nextern const void * RTTI_BGSFootstep;\r\nextern const void * RTTI_BGSFootstepManager;\r\nextern const void * RTTI_BGSFootstepSet;\r\nextern const void * RTTI_BGSForceData;\r\nextern const void * RTTI_BGSForcedLocRefType;\r\nextern const void * RTTI_BGSFormFolderKeywordList;\r\nextern const void * RTTI_BGSFormLinkData;\r\nextern const void * RTTI_BGSGameRenderSettingsManager;\r\nextern const void * RTTI_BGSGameWarningsHandler__GameWarningsSink;\r\nextern const void * RTTI_BGSGameplayOption;\r\nextern const void * RTTI_BGSGameplayOptionGroup;\r\nextern const void * RTTI_BGSGenericBaseForm;\r\nextern const void * RTTI_BGSGenericBaseFormTemplate;\r\nextern const void * RTTI_BGSGeometryConstructorManager;\r\nextern const void * RTTI_BGSGrassManager;\r\nextern const void * RTTI_BGSGrassManager__AddCellGrassTask;\r\nextern const void * RTTI_BGSGrassManager__CellGrass;\r\nextern const void * RTTI_BGSGravJumpActivity;\r\nextern const void * RTTI_BGSGravJumpActivity_Runtime;\r\nextern const void * RTTI_BGSGravityWielderEffectData;\r\nextern const void * RTTI_BGSGroundCover;\r\nextern const void * RTTI_BGSGroupedInstancedGeometry;\r\nextern const void * RTTI_BGSHarvestActivity;\r\nextern const void * RTTI_BGSHarvestActivity_Runtime;\r\nextern const void * RTTI_BGSHavokGeometryAttach;\r\nextern const void * RTTI_BGSHavokGeometryAttach__ActionPolicy;\r\nextern const void * RTTI_BGSHavokGeometryAttach__AttachPolicy;\r\nextern const void * RTTI_BGSHavokGeometryAttach__DetachPolicy;\r\nextern const void * RTTI_BGSHazard;\r\nextern const void * RTTI_BGSHeadPart;\r\nextern const void * RTTI_BGSIdleCollection;\r\nextern const void * RTTI_BGSIdleMarker;\r\nextern const void * RTTI_BGSImpactData;\r\nextern const void * RTTI_BGSImpactDataSet;\r\nextern const void * RTTI_BGSImpactManager;\r\nextern const void * RTTI_BGSInstanceNamingRules;\r\nextern const void * RTTI_BGSInventoryInterface;\r\nextern const void * RTTI_BGSInventoryList;\r\nextern const void * RTTI_BGSKeyword;\r\nextern const void * RTTI_BGSKeywordForm;\r\nextern const void * RTTI_BGSKillActivity;\r\nextern const void * RTTI_BGSKillActivity_Runtime;\r\nextern const void * RTTI_BGSLODManager;\r\nextern const void * RTTI_BGSLODSharedGeometryCache;\r\nextern const void * RTTI_BGSLODStates__Geometry__Attached;\r\nextern const void * RTTI_BGSLODStates__Geometry__Attaching;\r\nextern const void * RTTI_BGSLODStates__Geometry__DeferredDetach;\r\nextern const void * RTTI_BGSLODStates__Geometry__DeferredDetachComplete;\r\nextern const void * RTTI_BGSLODStates__Geometry__Detached;\r\nextern const void * RTTI_BGSLODStates__Geometry__Invisible;\r\nextern const void * RTTI_BGSLODStates__Geometry__Loaded;\r\nextern const void * RTTI_BGSLODStates__Geometry__Loading;\r\nextern const void * RTTI_BGSLODStates__Geometry__Prepared;\r\nextern const void * RTTI_BGSLODStates__Geometry__Preparing;\r\nextern const void * RTTI_BGSLODStates__Geometry__RequestingResources;\r\nextern const void * RTTI_BGSLODStates__Geometry__Reset;\r\nextern const void * RTTI_BGSLODStates__Geometry__ResourcesBusy;\r\nextern const void * RTTI_BGSLODStates__Geometry__ResourcesReady;\r\nextern const void * RTTI_BGSLODStates__Geometry__Unloaded;\r\nextern const void * RTTI_BGSLODStates__Geometry__Visible;\r\nextern const void * RTTI_BGSLODStates__Node__Active;\r\nextern const void * RTTI_BGSLODStates__Node__FadingIn;\r\nextern const void * RTTI_BGSLODStates__Node__FadingOut;\r\nextern const void * RTTI_BGSLODStates__Node__Inactive;\r\nextern const void * RTTI_BGSLODStates__Node__IntersectsLoadedArea;\r\nextern const void * RTTI_BGSLODStates__Node__Loaded;\r\nextern const void * RTTI_BGSLODStates__Node__OutsideLoadedArea;\r\nextern const void * RTTI_BGSLODStates__Node__PrepareFadingIn;\r\nextern const void * RTTI_BGSLODStates__Node__PrepareFadingOut;\r\nextern const void * RTTI_BGSLODStates__Node__Split;\r\nextern const void * RTTI_BGSLODStates__Node__Unloaded;\r\nextern const void * RTTI_BGSLOSGenerator;\r\nextern const void * RTTI_BGSLandPlanetActivity;\r\nextern const void * RTTI_BGSLandPlanetActivity_Runtime;\r\nextern const void * RTTI_BGSLayeredMaterialSwap;\r\nextern const void * RTTI_BGSLegendaryItem;\r\nextern const void * RTTI_BGSLensFlare;\r\nextern const void * RTTI_BGSLensFlareSprite;\r\nextern const void * RTTI_BGSLevGenericBaseForm;\r\nextern const void * RTTI_BGSLevPackIn;\r\nextern const void * RTTI_BGSLevSpaceCell;\r\nextern const void * RTTI_BGSLightingTemplate;\r\nextern const void * RTTI_BGSLinkedVoiceType;\r\nextern const void * RTTI_BGSListForm;\r\nextern const void * RTTI_BGSLoadFormBuffer;\r\nextern const void * RTTI_BGSLoadGameBuffer;\r\nextern const void * RTTI_BGSLoadGameBufferSimple;\r\nextern const void * RTTI_BGSLoadedReferenceCollection;\r\nextern const void * RTTI_BGSLoadedSceneLODBlock;\r\nextern const void * RTTI_BGSLocAlias;\r\nextern const void * RTTI_BGSLocation;\r\nextern const void * RTTI_BGSLocationDiscoveredActivity;\r\nextern const void * RTTI_BGSLocationDiscoveredActivity_Runtime;\r\nextern const void * RTTI_BGSLocationRefType;\r\nextern const void * RTTI_BGSLockPickActivity;\r\nextern const void * RTTI_BGSLockPickActivity_Runtime;\r\nextern const void * RTTI_BGSLodOwnerComponent;\r\nextern const void * RTTI_BGSLodRuntimeOwnerComponent;\r\nextern const void * RTTI_BGSLootContainerActivity;\r\nextern const void * RTTI_BGSLootContainerActivity_Runtime;\r\nextern const void * RTTI_BGSLoseEnemyActivity;\r\nextern const void * RTTI_BGSLoseEnemyActivity_Runtime;\r\nextern const void * RTTI_BGSMaterialPathForm;\r\nextern const void * RTTI_BGSMaterialPropertyComponent;\r\nextern const void * RTTI_BGSMaterialType;\r\nextern const void * RTTI_BGSMeleeAimAssistModel;\r\nextern const void * RTTI_BGSMessage;\r\nextern const void * RTTI_BGSMod__Attachment__Mod;\r\nextern const void * RTTI_BGSMod__Property__BridgeI;\r\nextern const void * RTTI_BGSMod__Template__Item;\r\nextern const void * RTTI_BGSMod__Template__Items;\r\nextern const void * RTTI_BGSModelMaterialSwap;\r\nextern const void * RTTI_BGSModelNode;\r\nextern const void * RTTI_BGSMorphableObject;\r\nextern const void * RTTI_BGSMotorAction__Action;\r\nextern const void * RTTI_BGSMotorAction__FanMotor;\r\nextern const void * RTTI_BGSMovableStatic;\r\nextern const void * RTTI_BGSMovementType;\r\nextern const void * RTTI_BGSMoviePlayer;\r\nextern const void * RTTI_BGSMultiTechniqueAttach;\r\nextern const void * RTTI_BGSMultiTechniqueAttach__ActionPolicy;\r\nextern const void * RTTI_BGSMultiTechniqueAttach__AttachPolicy;\r\nextern const void * RTTI_BGSMultiTechniqueAttach__DetachPolicy;\r\nextern const void * RTTI_BGSMusicPaletteTrack;\r\nextern const void * RTTI_BGSMusicSilenceTrack;\r\nextern const void * RTTI_BGSMusicSingleTrack;\r\nextern const void * RTTI_BGSMusicTrack;\r\nextern const void * RTTI_BGSMusicTrackFormWrapper;\r\nextern const void * RTTI_BGSMusicType;\r\nextern const void * RTTI_BGSNamedNodeAttach;\r\nextern const void * RTTI_BGSNamedNodeAttach__ActionPolicy;\r\nextern const void * RTTI_BGSNamedNodeAttach__AttachPolicy;\r\nextern const void * RTTI_BGSNamedNodeAttach__DetachPolicy;\r\nextern const void * RTTI_BGSNavigationGridManager;\r\nextern const void * RTTI_BGSNote;\r\nextern const void * RTTI_BGSObjectInstanceExtra;\r\nextern const void * RTTI_BGSObjectPlacementDefaults;\r\nextern const void * RTTI_BGSObjectSwap;\r\nextern const void * RTTI_BGSObjectVisibilityManager;\r\nextern const void * RTTI_BGSObjectWindowFilterComponent;\r\nextern const void * RTTI_BGSOrbitalDataComponent;\r\nextern const void * RTTI_BGSOrbitedDataComponent;\r\nextern const void * RTTI_BGSOutfit;\r\nextern const void * RTTI_BGSOverridePackCollection;\r\nextern const void * RTTI_BGSPackIn;\r\nextern const void * RTTI_BGSPackInUtils__BGSPackInEventHandler;\r\nextern const void * RTTI_BGSPackageDataBool;\r\nextern const void * RTTI_BGSPackageDataFloat;\r\nextern const void * RTTI_BGSPackageDataInt;\r\nextern const void * RTTI_BGSPackageDataLocation;\r\nextern const void * RTTI_BGSPackageDataLocationWrapper;\r\nextern const void * RTTI_BGSPackageDataObjectList;\r\nextern const void * RTTI_BGSPackageDataRef;\r\nextern const void * RTTI_BGSPackageDataRefOLD;\r\nextern const void * RTTI_BGSPackageDataScene;\r\nextern const void * RTTI_BGSPackageDataTargetSelector;\r\nextern const void * RTTI_BGSPackageDataTopic;\r\nextern const void * RTTI_BGSPapyrusScriptsComponent;\r\nextern const void * RTTI_BGSParticleObjectCloneTask;\r\nextern const void * RTTI_BGSParticleSystemDefineCollection;\r\nextern const void * RTTI_BGSPathfindingTaskProcessor;\r\nextern const void * RTTI_BGSPathingData;\r\nextern const void * RTTI_BGSPerk;\r\nextern const void * RTTI_BGSPerkRank;\r\nextern const void * RTTI_BGSPhotoModeFeature;\r\nextern const void * RTTI_BGSPickupPutdownSounds;\r\nextern const void * RTTI_BGSPlanetContentManager;\r\nextern const void * RTTI_BGSPlanetContentManagerBranchNode;\r\nextern const void * RTTI_BGSPlanetContentManagerContentNode;\r\nextern const void * RTTI_BGSPlanetContentManagerContentProperties;\r\nextern const void * RTTI_BGSPlanetContentManagerTree;\r\nextern const void * RTTI_BGSPlanetContentManager__ILogEventData;\r\nextern const void * RTTI_BGSPlanet__Atmosphere;\r\nextern const void * RTTI_BGSPlanet__ContentPlacement;\r\nextern const void * RTTI_BGSPlanet__IModule;\r\nextern const void * RTTI_BGSPlanet__LandingMarkers;\r\nextern const void * RTTI_BGSPlanet__Landscape;\r\nextern const void * RTTI_BGSPlanet__Manager;\r\nextern const void * RTTI_BGSPlanet__Manager__MoveToNode;\r\nextern const void * RTTI_BGSPlanet__Manager__ShiftToTask;\r\nextern const void * RTTI_BGSPlanet__MultiFiles__Grid;\r\nextern const void * RTTI_BGSPlanet__MultiFiles__MasterFile;\r\nextern const void * RTTI_BGSPlanet__NavMeshGen;\r\nextern const void * RTTI_BGSPlanet__OrderedLandTextures;\r\nextern const void * RTTI_BGSPlanet__Overlays;\r\nextern const void * RTTI_BGSPlanet__PlanetData;\r\nextern const void * RTTI_BGSPlanet__ProcGen;\r\nextern const void * RTTI_BGSPlanet__ProcGenRuntimeService;\r\nextern const void * RTTI_BGSPlanet__ScanCollection;\r\nextern const void * RTTI_BGSPlanet__SurfaceMapModule;\r\nextern const void * RTTI_BGSPlanet__UpdateNavMeshTaskNode;\r\nextern const void * RTTI_BGSPlayerMusicChanger;\r\nextern const void * RTTI_BGSPlayerPickpocketActivity;\r\nextern const void * RTTI_BGSPlayerPickpocketActivity_Runtime;\r\nextern const void * RTTI_BGSPreviewTransform;\r\nextern const void * RTTI_BGSPrimitive;\r\nextern const void * RTTI_BGSPrimitiveBox;\r\nextern const void * RTTI_BGSPrimitiveComponent;\r\nextern const void * RTTI_BGSPrimitiveCylinder;\r\nextern const void * RTTI_BGSPrimitiveEllipsoid;\r\nextern const void * RTTI_BGSPrimitiveLine;\r\nextern const void * RTTI_BGSPrimitivePlane;\r\nextern const void * RTTI_BGSPrimitiveSphere;\r\nextern const void * RTTI_BGSProcedureAcquire;\r\nextern const void * RTTI_BGSProcedureAcquireExecState;\r\nextern const void * RTTI_BGSProcedureActivate;\r\nextern const void * RTTI_BGSProcedureActivateExecState;\r\nextern const void * RTTI_BGSProcedureAmbush;\r\nextern const void * RTTI_BGSProcedureAmbushExecState;\r\nextern const void * RTTI_BGSProcedureAvoidVehicle;\r\nextern const void * RTTI_BGSProcedureAvoidVehicleExecState;\r\nextern const void * RTTI_BGSProcedureBase;\r\nextern const void * RTTI_BGSProcedureCombatTravel;\r\nextern const void * RTTI_BGSProcedureCombatTravelExecState;\r\nextern const void * RTTI_BGSProcedureDialogue;\r\nextern const void * RTTI_BGSProcedureDialogueActivate;\r\nextern const void * RTTI_BGSProcedureDialogueActivateExecState;\r\nextern const void * RTTI_BGSProcedureDialogueExecState;\r\nextern const void * RTTI_BGSProcedureDone;\r\nextern const void * RTTI_BGSProcedureDoneExecState;\r\nextern const void * RTTI_BGSProcedureEat;\r\nextern const void * RTTI_BGSProcedureEatExecState;\r\nextern const void * RTTI_BGSProcedureEscort;\r\nextern const void * RTTI_BGSProcedureEscortExecState;\r\nextern const void * RTTI_BGSProcedureFind;\r\nextern const void * RTTI_BGSProcedureFindExecState;\r\nextern const void * RTTI_BGSProcedureFlee;\r\nextern const void * RTTI_BGSProcedureFleeExecState;\r\nextern const void * RTTI_BGSProcedureFlightGrab;\r\nextern const void * RTTI_BGSProcedureFlightGrabExecState;\r\nextern const void * RTTI_BGSProcedureFollow;\r\nextern const void * RTTI_BGSProcedureFollowExecState;\r\nextern const void * RTTI_BGSProcedureFollowTo;\r\nextern const void * RTTI_BGSProcedureForceGreet;\r\nextern const void * RTTI_BGSProcedureGuard;\r\nextern const void * RTTI_BGSProcedureGuardArea;\r\nextern const void * RTTI_BGSProcedureGuardExecState;\r\nextern const void * RTTI_BGSProcedureHeadtrack;\r\nextern const void * RTTI_BGSProcedureHeadtrackExecState;\r\nextern const void * RTTI_BGSProcedureHoldPosition;\r\nextern const void * RTTI_BGSProcedureHoldPositionExecState;\r\nextern const void * RTTI_BGSProcedureHover;\r\nextern const void * RTTI_BGSProcedureHoverExecState;\r\nextern const void * RTTI_BGSProcedureKeepAnEyeOn;\r\nextern const void * RTTI_BGSProcedureKeepAnEyeOnExecState;\r\nextern const void * RTTI_BGSProcedureLock;\r\nextern const void * RTTI_BGSProcedureLockUnlockExecState;\r\nextern const void * RTTI_BGSProcedureOrbit;\r\nextern const void * RTTI_BGSProcedureOrbitExecState;\r\nextern const void * RTTI_BGSProcedurePatrol;\r\nextern const void * RTTI_BGSProcedurePatrolExecState;\r\nextern const void * RTTI_BGSProcedurePlayIdle;\r\nextern const void * RTTI_BGSProcedurePlayIdleExecState;\r\nextern const void * RTTI_BGSProcedurePursue;\r\nextern const void * RTTI_BGSProcedureRange;\r\nextern const void * RTTI_BGSProcedureRangeExecState;\r\nextern const void * RTTI_BGSProcedureSandbox;\r\nextern const void * RTTI_BGSProcedureSandboxExecState;\r\nextern const void * RTTI_BGSProcedureSay;\r\nextern const void * RTTI_BGSProcedureSayExecState;\r\nextern const void * RTTI_BGSProcedureSit;\r\nextern const void * RTTI_BGSProcedureSitSleepExecState;\r\nextern const void * RTTI_BGSProcedureSleep;\r\nextern const void * RTTI_BGSProcedureStayAway;\r\nextern const void * RTTI_BGSProcedureStayAwayExecState;\r\nextern const void * RTTI_BGSProcedureTargetingModeAutopilot;\r\nextern const void * RTTI_BGSProcedureTargetingModeAutopilotExecState;\r\nextern const void * RTTI_BGSProcedureTravel;\r\nextern const void * RTTI_BGSProcedureTravelExecState;\r\nextern const void * RTTI_BGSProcedureTreeBranch;\r\nextern const void * RTTI_BGSProcedureTreeConditionalItem;\r\nextern const void * RTTI_BGSProcedureTreeFallback;\r\nextern const void * RTTI_BGSProcedureTreeFallbackExecState;\r\nextern const void * RTTI_BGSProcedureTreeOneChildExecState;\r\nextern const void * RTTI_BGSProcedureTreeProcedure;\r\nextern const void * RTTI_BGSProcedureTreeRandom;\r\nextern const void * RTTI_BGSProcedureTreeRandomExecState;\r\nextern const void * RTTI_BGSProcedureTreeSequence;\r\nextern const void * RTTI_BGSProcedureTreeSequenceExecState;\r\nextern const void * RTTI_BGSProcedureTreeSimultaneous;\r\nextern const void * RTTI_BGSProcedureTreeSimultaneousExecState;\r\nextern const void * RTTI_BGSProcedureTreeStacked;\r\nextern const void * RTTI_BGSProcedureTreeStackedExecState;\r\nextern const void * RTTI_BGSProcedureUnlock;\r\nextern const void * RTTI_BGSProcedureUseIdleMarker;\r\nextern const void * RTTI_BGSProcedureUseIdleMarkerExecState;\r\nextern const void * RTTI_BGSProcedureUseMagic;\r\nextern const void * RTTI_BGSProcedureUseMagicExecState;\r\nextern const void * RTTI_BGSProcedureUseWeapon;\r\nextern const void * RTTI_BGSProcedureUseWeaponExecState;\r\nextern const void * RTTI_BGSProcedureWait;\r\nextern const void * RTTI_BGSProcedureWaitExecState;\r\nextern const void * RTTI_BGSProcedureWander;\r\nextern const void * RTTI_BGSProcedureWanderExecState;\r\nextern const void * RTTI_BGSProduceActivity;\r\nextern const void * RTTI_BGSProduceActivity_Runtime;\r\nextern const void * RTTI_BGSProjectedDecal;\r\nextern const void * RTTI_BGSProjectile;\r\nextern const void * RTTI_BGSPropertySheet;\r\nextern const void * RTTI_BGSQualityUpgradeFormComponent;\r\nextern const void * RTTI_BGSQuestPerkEntry;\r\nextern const void * RTTI_BGSRangeFormationsSingleton;\r\nextern const void * RTTI_BGSRefAlias;\r\nextern const void * RTTI_BGSRefCollectionAlias;\r\nextern const void * RTTI_BGSReferenceGroup;\r\nextern const void * RTTI_BGSReflectedForm;\r\nextern const void * RTTI_BGSRelationship;\r\nextern const void * RTTI_BGSReloadWeaponActivity;\r\nextern const void * RTTI_BGSReloadWeaponActivity_Runtime;\r\nextern const void * RTTI_BGSResearchProjectForm;\r\nextern const void * RTTI_BGSResource;\r\nextern const void * RTTI_BGSResourceGenerationData;\r\nextern const void * RTTI_BGSRetargetOnDeleteExtraData;\r\nextern const void * RTTI_BGSReverbParameters;\r\nextern const void * RTTI_BGSSaveFormBuffer;\r\nextern const void * RTTI_BGSSaveGameBuffer;\r\nextern const void * RTTI_BGSSaveGameBufferSimple;\r\nextern const void * RTTI_BGSSaveLoadJobSite;\r\nextern const void * RTTI_BGSSaveLoadManager;\r\nextern const void * RTTI_BGSSaveLoadStatsMap;\r\nextern const void * RTTI_BGSSaveLoadThread;\r\nextern const void * RTTI_BGSSaveLoadUtilities__BGSSaveFormBufferIgnoreIDs;\r\nextern const void * RTTI_BGSScanPlanetActivity;\r\nextern const void * RTTI_BGSScanPlanetActivity_Runtime;\r\nextern const void * RTTI_BGSScanSurfaceActivity;\r\nextern const void * RTTI_BGSScanSurfaceActivity_Runtime;\r\nextern const void * RTTI_BGSScannableFormComponent;\r\nextern const void * RTTI_BGSScene;\r\nextern const void * RTTI_BGSSceneActionAnimation;\r\nextern const void * RTTI_BGSSceneActionCamera;\r\nextern const void * RTTI_BGSSceneActionDialogue;\r\nextern const void * RTTI_BGSSceneActionFX;\r\nextern const void * RTTI_BGSSceneActionList;\r\nextern const void * RTTI_BGSSceneActionMove;\r\nextern const void * RTTI_BGSSceneActionPackage;\r\nextern const void * RTTI_BGSSceneActionPlayerDialogue;\r\nextern const void * RTTI_BGSSceneActionRadio;\r\nextern const void * RTTI_BGSSceneActionStartScene;\r\nextern const void * RTTI_BGSSceneActionTimeline;\r\nextern const void * RTTI_BGSSceneActionTimer;\r\nextern const void * RTTI_BGSSceneFillerSingleton;\r\nextern const void * RTTI_BGSSecondaryDamageList;\r\nextern const void * RTTI_BGSShaderParticleGeometryData;\r\nextern const void * RTTI_BGSShipCollectionActivity;\r\nextern const void * RTTI_BGSShipCollectionActivity_Runtime;\r\nextern const void * RTTI_BGSShipManagement;\r\nextern const void * RTTI_BGSShipbuilderActivity;\r\nextern const void * RTTI_BGSShipbuilderActivity_Runtime;\r\nextern const void * RTTI_BGSSkinForm;\r\nextern const void * RTTI_BGSSkinnedDecalChild;\r\nextern const void * RTTI_BGSSkinnedDecalGroup;\r\nextern const void * RTTI_BGSSnapBehavior;\r\nextern const void * RTTI_BGSSnapTemplate;\r\nextern const void * RTTI_BGSSnapTemplateComponent;\r\nextern const void * RTTI_BGSSnapTemplateNode;\r\nextern const void * RTTI_BGSSoundEcho;\r\nextern const void * RTTI_BGSSoundKeywordMapping;\r\nextern const void * RTTI_BGSSoundTagComponent;\r\nextern const void * RTTI_BGSSoundTagSet;\r\nextern const void * RTTI_BGSSpacePhysicsFormComponent;\r\nextern const void * RTTI_BGSSpaceshipAIActor;\r\nextern const void * RTTI_BGSSpaceshipEquipment;\r\nextern const void * RTTI_BGSSpaceshipHullCode;\r\nextern const void * RTTI_BGSSpaceshipWeaponBinding;\r\nextern const void * RTTI_BGSSpatialCombinedGrid;\r\nextern const void * RTTI_BGSSpatialGraph;\r\nextern const void * RTTI_BGSSpatialGraphCellGrid;\r\nextern const void * RTTI_BGSSpatialGraphCellGrid__MergeTask;\r\nextern const void * RTTI_BGSSpatialGraphExteriorCell;\r\nextern const void * RTTI_BGSSpatialGraphInteriorCell;\r\nextern const void * RTTI_BGSSpatialGraphManager;\r\nextern const void * RTTI_BGSSpatialGraphManager__Task;\r\nextern const void * RTTI_BGSSpatialGraphObstacleUpdateTask;\r\nextern const void * RTTI_BGSSpatialGraphParent;\r\nextern const void * RTTI_BGSSpatialGraphSpaceCell;\r\nextern const void * RTTI_BGSSpatialGraphSpaceCollection;\r\nextern const void * RTTI_BGSSpatialGraphSpaceCollectionObstacleGridUpdateTask;\r\nextern const void * RTTI_BGSSpatialGridBase;\r\nextern const void * RTTI_BGSSpatialGridCollection;\r\nextern const void * RTTI_BGSSpatialGridFieldBase;\r\nextern const void * RTTI_BGSSpatialGridSearchCustomDebugData;\r\nextern const void * RTTI_BGSSpatialGridSearchDebugData;\r\nextern const void * RTTI_BGSSpatialGridSearchPolicies__FleeSearchPolicy;\r\nextern const void * RTTI_BGSSpatialGridSearchPolicies__RandomPositionInsideArea;\r\nextern const void * RTTI_BGSSpatialSimpleGrid;\r\nextern const void * RTTI_BGSSpatialSparseGrid;\r\nextern const void * RTTI_BGSSpatialSparseGridSearchDebugData;\r\nextern const void * RTTI_BGSSpatialSparseGrid__ChunkIndexGrid;\r\nextern const void * RTTI_BGSSpatialSparseMultiLayerGrid;\r\nextern const void * RTTI_BGSSpawnOnDestroy;\r\nextern const void * RTTI_BGSSpeechChallengeActivity;\r\nextern const void * RTTI_BGSSpeechChallengeActivity_Runtime;\r\nextern const void * RTTI_BGSSpeechChallengeObject;\r\nextern const void * RTTI_BGSSprintActivity;\r\nextern const void * RTTI_BGSSprintActivity_Runtime;\r\nextern const void * RTTI_BGSStarDataComponent;\r\nextern const void * RTTI_BGSStaticCollection;\r\nextern const void * RTTI_BGSStaticCollection__RootFacade;\r\nextern const void * RTTI_BGSStoredTraversalData;\r\nextern const void * RTTI_BGSStoryManager;\r\nextern const void * RTTI_BGSStoryManagerBranchNode;\r\nextern const void * RTTI_BGSStoryManagerEventNode;\r\nextern const void * RTTI_BGSStoryManagerNodeBase;\r\nextern const void * RTTI_BGSStoryManagerQuestFinder;\r\nextern const void * RTTI_BGSStoryManagerQuestNode;\r\nextern const void * RTTI_BGSStoryManagerTreeForm;\r\nextern const void * RTTI_BGSStoryManagerTreeVisitor;\r\nextern const void * RTTI_BGSStoryTeller;\r\nextern const void * RTTI_BGSSurface__BGSBlockCellHeighGridComponent;\r\nextern const void * RTTI_BGSSurface__Block;\r\nextern const void * RTTI_BGSSurface__Manager;\r\nextern const void * RTTI_BGSSurface__Pattern;\r\nextern const void * RTTI_BGSSurface__PatternStyle;\r\nextern const void * RTTI_BGSSurface__Tree;\r\nextern const void * RTTI_BGSSynchronizedAnimationInstance;\r\nextern const void * RTTI_BGSSynchronizedAnimationManager;\r\nextern const void * RTTI_BGSTDataProxyComponentBase;\r\nextern const void * RTTI_BGSTakeActorDamageActivity;\r\nextern const void * RTTI_BGSTakeActorDamageActivity_Runtime;\r\nextern const void * RTTI_BGSTakeDamageActivity;\r\nextern const void * RTTI_BGSTakeDamageActivity_Runtime;\r\nextern const void * RTTI_BGSTalkingActivator;\r\nextern const void * RTTI_BGSTerminal;\r\nextern const void * RTTI_BGSTerminalMenu;\r\nextern const void * RTTI_BGSTerrainBlock__AlignmentModifier;\r\nextern const void * RTTI_BGSTerrainBlock__ContinentalModifier;\r\nextern const void * RTTI_BGSTerrainBlock__Grid;\r\nextern const void * RTTI_BGSTerrainBlock__GridCell;\r\nextern const void * RTTI_BGSTerrainBlock__GridCornerCell;\r\nextern const void * RTTI_BGSTerrainBlock__GridCornerEdgeXFile;\r\nextern const void * RTTI_BGSTerrainBlock__GridCornerFile;\r\nextern const void * RTTI_BGSTerrainBlock__GridEdgeFile;\r\nextern const void * RTTI_BGSTerrainBlock__GridEdgeXCell;\r\nextern const void * RTTI_BGSTerrainBlock__GridEdgeYCell;\r\nextern const void * RTTI_BGSTerrainBlock__GridFile;\r\nextern const void * RTTI_BGSTerrainBlock__GridFillCell;\r\nextern const void * RTTI_BGSTerrainBlock__GridFillFile;\r\nextern const void * RTTI_BGSTerrainBlock__HeightAdjustmentModifier;\r\nextern const void * RTTI_BGSTerrainBlock__IModifier;\r\nextern const void * RTTI_BGSTerrainBlock__OceanBiomeModifier;\r\nextern const void * RTTI_BGSTerrainBlock__OverlayGrid;\r\nextern const void * RTTI_BGSTerrainBlock__OverlayHeightModifier;\r\nextern const void * RTTI_BGSTerrainBlock__RerangeHeightModifier;\r\nextern const void * RTTI_BGSTerrainBlock__UpdateHeightModifier;\r\nextern const void * RTTI_BGSTerrain__File;\r\nextern const void * RTTI_BGSTerrain__IFileGrid;\r\nextern const void * RTTI_BGSTerrain__Manager;\r\nextern const void * RTTI_BGSTerrain__UniFile__Grid;\r\nextern const void * RTTI_BGSTextureModel;\r\nextern const void * RTTI_BGSTextureSet;\r\nextern const void * RTTI_BGSTimeOfDayData;\r\nextern const void * RTTI_BGSTrackDamageEffectData;\r\nextern const void * RTTI_BGSTransform;\r\nextern const void * RTTI_BGSTraversal;\r\nextern const void * RTTI_BGSUnity__UnityDataCache;\r\nextern const void * RTTI_BGSVehicleConfigFormComponent;\r\nextern const void * RTTI_BGSVehicleManagement;\r\nextern const void * RTTI_BGSVisitProceduresCheckGuardWarnTarget;\r\nextern const void * RTTI_BGSVisitProceduresInitActorAnimPose;\r\nextern const void * RTTI_BGSVisitProceduresInitActorLocation;\r\nextern const void * RTTI_BGSVisitProceduresProcess;\r\nextern const void * RTTI_BGSVoiceType;\r\nextern const void * RTTI_BGSVolumeFormComponent;\r\nextern const void * RTTI_BGSVolumetricLighting;\r\nextern const void * RTTI_BGSWaterCollisionManager__AutoWater;\r\nextern const void * RTTI_BGSWaterCollisionManager__BGSWaterUpdateI;\r\nextern const void * RTTI_BGSWaterCollisionManager__WaterGravityModifier;\r\nextern const void * RTTI_BGSWaterCollisionManager__WaterGravityModifierWorldStepListener;\r\nextern const void * RTTI_BGSWaterCollisionManager__bhkPlaceableWater;\r\nextern const void * RTTI_BGSWaterCollisionManager__bhkWaterfall;\r\nextern const void * RTTI_BGSWeaponBarrelData;\r\nextern const void * RTTI_BGSWeaponBarrelModel;\r\nextern const void * RTTI_BGSWeaponData__Aim;\r\nextern const void * RTTI_BGSWeaponData__Ammunition;\r\nextern const void * RTTI_BGSWeaponData__Audio;\r\nextern const void * RTTI_BGSWeaponData__Charge;\r\nextern const void * RTTI_BGSWeaponData__Damage;\r\nextern const void * RTTI_BGSWeaponData__Firing;\r\nextern const void * RTTI_BGSWeaponData__FiringStrategyBase;\r\nextern const void * RTTI_BGSWeaponData__FiringStrategy_Automatic;\r\nextern const void * RTTI_BGSWeaponData__FiringStrategy_BoltShot;\r\nextern const void * RTTI_BGSWeaponData__FiringStrategy_Burst;\r\nextern const void * RTTI_BGSWeaponData__FiringStrategy_ChargedShot;\r\nextern const void * RTTI_BGSWeaponData__FiringStrategy_SingleShot;\r\nextern const void * RTTI_BGSWeaponData__Flags;\r\nextern const void * RTTI_BGSWeaponData__General;\r\nextern const void * RTTI_BGSWeaponData__Melee;\r\nextern const void * RTTI_BGSWeaponData__Power;\r\nextern const void * RTTI_BGSWeaponData__Reload;\r\nextern const void * RTTI_BGSWeaponData__ShipWeapon;\r\nextern const void * RTTI_BGSWeaponData__Turret;\r\nextern const void * RTTI_BGSWeaponData__VariableRange;\r\nextern const void * RTTI_BGSWeaponData__Visuals;\r\nextern const void * RTTI_BGSWeatherSettingsForm;\r\nextern const void * RTTI_BGSWorkshopItemColorComponent;\r\nextern const void * RTTI_BGSWorldSpaceOverlayComponent;\r\nextern const void * RTTI_BGSWwiseEventForm;\r\nextern const void * RTTI_BGSWwiseKeywordMapping;\r\nextern const void * RTTI_BGSZoneTargetListener;\r\nextern const void * RTTI_BIEventManager;\r\nextern const void * RTTI_BIEventUtils__FindAllStarbornPowerFunctor;\r\nextern const void * RTTI_BNETRequester;\r\nextern const void * RTTI_BSAVMS__AVMNode;\r\nextern const void * RTTI_BSAVMS__AVMNodeInFlightCounted;\r\nextern const void * RTTI_BSAVMS__AVMPartialNode;\r\nextern const void * RTTI_BSAnimNotes;\r\nextern const void * RTTI_BSAnimation;\r\nextern const void * RTTI_BSAnimationAnimDBData;\r\nextern const void * RTTI_BSAnimationDBData;\r\nextern const void * RTTI_BSAnimationFileManager;\r\nextern const void * RTTI_BSAnimationGraph;\r\nextern const void * RTTI_BSAnimationGraphChannel;\r\nextern const void * RTTI_BSAnimationGraphLoadScrapper;\r\nextern const void * RTTI_BSAnimationGraphManager;\r\nextern const void * RTTI_BSAnimationObjectManager;\r\nextern const void * RTTI_BSAnimationUtils__FindEventClipGeneratorsFunctor;\r\nextern const void * RTTI_BSAnimationUtils__MatchEventToClipGeneratorsFunctor;\r\nextern const void * RTTI_BSAttachConfig__ArtObjectAttach;\r\nextern const void * RTTI_BSAttachConfig__AttachmentConfiguration;\r\nextern const void * RTTI_BSAttachConfig__BaseInstance;\r\nextern const void * RTTI_BSAttachConfig__ISearchMethod;\r\nextern const void * RTTI_BSAttachConfig__NodeAttachmentInstance;\r\nextern const void * RTTI_BSAttachConfig__ObjectAttachmentInstance;\r\nextern const void * RTTI_BSAttachConfig__ParticleAttachmentInstance;\r\nextern const void * RTTI_BSAttachConfig__SearchMethodBase;\r\nextern const void * RTTI_BSAttachConfig__SearchMultipleNamesMultipleNodes;\r\nextern const void * RTTI_BSAttachConfig__SearchRootNode;\r\nextern const void * RTTI_BSAttachConfig__SearchSingleNameSingleNode;\r\nextern const void * RTTI_BSAttachRefController;\r\nextern const void * RTTI_BSAttachTechniques__AttachTechniqueInput;\r\nextern const void * RTTI_BSAttachTechniques__BSAttachTechnique;\r\nextern const void * RTTI_BSAutoQueuedDependentNodeBase;\r\nextern const void * RTTI_BSAwardsSystemUtility;\r\nextern const void * RTTI_BSBehaviorGraphExtraData;\r\nextern const void * RTTI_BSBehaviorGraphSwapSingleton;\r\nextern const void * RTTI_BSBind__BGSExternalEmittanceController;\r\nextern const void * RTTI_BSBind__BGSLensFlareController;\r\nextern const void * RTTI_BSBind__ColorCurveController;\r\nextern const void * RTTI_BSBind__ColorLerpController;\r\nextern const void * RTTI_BSBind__ComponentBinding;\r\nextern const void * RTTI_BSBind__ComponentProperty;\r\nextern const void * RTTI_BSBind__Directory;\r\nextern const void * RTTI_BSBind__Float2DCurveController;\r\nextern const void * RTTI_BSBind__Float2DLerpController;\r\nextern const void * RTTI_BSBind__Float3DCurveController;\r\nextern const void * RTTI_BSBind__Float3DLerpController;\r\nextern const void * RTTI_BSBind__Float4DCurveController;\r\nextern const void * RTTI_BSBind__Float4DLerpController;\r\nextern const void * RTTI_BSBind__FloatCurveController;\r\nextern const void * RTTI_BSBind__FloatLerpController;\r\nextern const void * RTTI_BSBind__IAddressControllerStore;\r\nextern const void * RTTI_BSBind__IController;\r\nextern const void * RTTI_BSBind__IDataBinding;\r\nextern const void * RTTI_BSBind__INode;\r\nextern const void * RTTI_BSBind__ModuleState;\r\nextern const void * RTTI_BSBind__MultiBinding;\r\nextern const void * RTTI_BSBind__Multiplex;\r\nextern const void * RTTI_BSBind__Snapshot;\r\nextern const void * RTTI_BSBind__StableBinding;\r\nextern const void * RTTI_BSBind__TimerController;\r\nextern const void * RTTI_BSBlastNode;\r\nextern const void * RTTI_BSBlendTreadTransfInterpolator;\r\nextern const void * RTTI_BSBoneLODExtraData;\r\nextern const void * RTTI_BSBound;\r\nextern const void * RTTI_BSBoxConstructor;\r\nextern const void * RTTI_BSCSVUtils__ParserBuffer;\r\nextern const void * RTTI_BSCapsuleConstructor;\r\nextern const void * RTTI_BSClonePools;\r\nextern const void * RTTI_BSCloneReserver;\r\nextern const void * RTTI_BSClothExtraData;\r\nextern const void * RTTI_BSClothUtils__BSGeometryBuffer;\r\nextern const void * RTTI_BSClothUtils__BSInstantiationUtil;\r\nextern const void * RTTI_BSClothUtils__BSTransformSet;\r\nextern const void * RTTI_BSComponentDB2__DB;\r\nextern const void * RTTI_BSComponentDB2__DBFileIndex__IDFixupVisitor;\r\nextern const void * RTTI_BSComponentDB2__JsonDBIDHandler;\r\nextern const void * RTTI_BSComponentDB2__JsonResourceIDHandler;\r\nextern const void * RTTI_BSComponentDB2__Memory__ConcurrentPageAllocImpl;\r\nextern const void * RTTI_BSComponentDB2__StorageService;\r\nextern const void * RTTI_BSComponentDB2__StorageService__Impl;\r\nextern const void * RTTI_BSComponentDB2__StorageService__ObjectReferenceVisitor;\r\nextern const void * RTTI_BSComponentDB__BaseComponents;\r\nextern const void * RTTI_BSComponentDB__IComponentFactory;\r\nextern const void * RTTI_BSConnectPoint__ChildOrigin;\r\nextern const void * RTTI_BSConnectPoint__Children;\r\nextern const void * RTTI_BSConnectPoint__Parents;\r\nextern const void * RTTI_BSCoreMessage__MessageSource;\r\nextern const void * RTTI_BSCounterStorage;\r\nextern const void * RTTI_BSCrashCache;\r\nextern const void * RTTI_BSCylinderConstructor;\r\nextern const void * RTTI_BSDamageStage;\r\nextern const void * RTTI_BSDebounceManager;\r\nextern const void * RTTI_BSDebrisNode;\r\nextern const void * RTTI_BSDecalLayerManager;\r\nextern const void * RTTI_BSDiagData;\r\nextern const void * RTTI_BSDiscBootSystemUtility;\r\nextern const void * RTTI_BSDistantObjectExtraData;\r\nextern const void * RTTI_BSDynamicGeometry;\r\nextern const void * RTTI_BSExceptionHandler;\r\nextern const void * RTTI_BSExteriorReflectionProbeAdjustmentVolume;\r\nextern const void * RTTI_BSExtraData;\r\nextern const void * RTTI_BSFaceDB__AttachHeadControlNode;\r\nextern const void * RTTI_BSFaceDB__CreateHeadControlNode;\r\nextern const void * RTTI_BSFaceDB__CrowdHairCustomization;\r\nextern const void * RTTI_BSFaceDB__EyeCustomization;\r\nextern const void * RTTI_BSFaceDB__FaceCustomizationTexturesNode;\r\nextern const void * RTTI_BSFaceDB__HairCustomization;\r\nextern const void * RTTI_BSFaceDB__JewelryCustomizationNode;\r\nextern const void * RTTI_BSFaceDB__RequestCompleteNode;\r\nextern const void * RTTI_BSFaceDB__RequestHeadPartResourcesNode;\r\nextern const void * RTTI_BSFaceDB__TeethCustomizationNode;\r\nextern const void * RTTI_BSFaceFX;\r\nextern const void * RTTI_BSFaceGenAnimationData;\r\nextern const void * RTTI_BSFaceGenManager;\r\nextern const void * RTTI_BSFaceGenNiNode;\r\nextern const void * RTTI_BSFaceGenUtils__UpdateFaceCustomizationTexturesNode;\r\nextern const void * RTTI_BSFadeNode;\r\nextern const void * RTTI_BSFile;\r\nextern const void * RTTI_BSFile__PageCache__PhysReadType;\r\nextern const void * RTTI_BSFixedSizeBlockAllocator__IAlloc;\r\nextern const void * RTTI_BSFixedSizeBlockAllocator__UserPoolImplBase;\r\nextern const void * RTTI_BSFocusShadowManager;\r\nextern const void * RTTI_BSFogVolume;\r\nextern const void * RTTI_BSFrameManager;\r\nextern const void * RTTI_BSFrustumFOVController;\r\nextern const void * RTTI_BSFurnitureMarkerNode;\r\nextern const void * RTTI_BSGFxFunctionBase;\r\nextern const void * RTTI_BSGFxFunctionHandler;\r\nextern const void * RTTI_BSGFxObject;\r\nextern const void * RTTI_BSGalaxy__BGSStar;\r\nextern const void * RTTI_BSGalaxy__BGSSunPresetForm;\r\nextern const void * RTTI_BSGalaxy__BiomeMapDB__LoadBiome;\r\nextern const void * RTTI_BSGalaxy__Biomes__Map;\r\nextern const void * RTTI_BSGalaxy__ModuleState;\r\nextern const void * RTTI_BSGalaxy__Physics__Havok__BSGalaxyCollisionObject;\r\nextern const void * RTTI_BSGalaxy__Physics__Havok__bhkSpaceWorld;\r\nextern const void * RTTI_BSGalaxy__Storage__SkipCelestialsAndSpaceCellsFunctor;\r\nextern const void * RTTI_BSGalaxy__Storage__SkipCelestialsFunctor;\r\nextern const void * RTTI_BSGalaxy__hknpBSShiftOffsetCollector;\r\nextern const void * RTTI_BSGameDataSystemUtility;\r\nextern const void * RTTI_BSGameStreamUtility;\r\nextern const void * RTTI_BSGamepadDevice;\r\nextern const void * RTTI_BSGamerProfile;\r\nextern const void * RTTI_BSGdkTaskletGroupData;\r\nextern const void * RTTI_BSGdkTaskletManager;\r\nextern const void * RTTI_BSGeometry;\r\nextern const void * RTTI_BSGeometryConstructorManager;\r\nextern const void * RTTI_BSGeometrySegmentData;\r\nextern const void * RTTI_BSGrabIKNote;\r\nextern const void * RTTI_BSIMusicTrack;\r\nextern const void * RTTI_BSIdleInputWatcher;\r\nextern const void * RTTI_BSInputDevice;\r\nextern const void * RTTI_BSInputDeviceManager;\r\nextern const void * RTTI_BSInputEnableManager;\r\nextern const void * RTTI_BSInputEventQueue;\r\nextern const void * RTTI_BSInputEventReceiver;\r\nextern const void * RTTI_BSInputEventSingleUser;\r\nextern const void * RTTI_BSInputEventUser;\r\nextern const void * RTTI_BSInstancedGeometry;\r\nextern const void * RTTI_BSInvMarker;\r\nextern const void * RTTI_BSJobs2__Detail__ControlNodeJob;\r\nextern const void * RTTI_BSJobs2__Detail__GroupThread;\r\nextern const void * RTTI_BSJobs2__Memory__HeapMemoryPolicy;\r\nextern const void * RTTI_BSJobs2__Memory__LSAMemoryPolicy;\r\nextern const void * RTTI_BSJobs2__Memory__ScrapMemoryPolicy;\r\nextern const void * RTTI_BSJobs__Jobs2Adaptor;\r\nextern const void * RTTI_BSKeyboardDevice;\r\nextern const void * RTTI_BSLagBoneController;\r\nextern const void * RTTI_BSLegacyStreamableStub;\r\nextern const void * RTTI_BSLensFlareRender__BSLensFlareSpriteRenderData;\r\nextern const void * RTTI_BSLight;\r\nextern const void * RTTI_BSLookIKNote;\r\nextern const void * RTTI_BSMaterialBinding__MaterialPropertyNode;\r\nextern const void * RTTI_BSMaterialBinding__MaterialUVStreamPropertyNode;\r\nextern const void * RTTI_BSMaterial__ModuleState;\r\nextern const void * RTTI_BSMemStorage;\r\nextern const void * RTTI_BSMemStorageReadOnly;\r\nextern const void * RTTI_BSMenu3D__SceneManager;\r\nextern const void * RTTI_BSMissionMenu;\r\nextern const void * RTTI_BSMissionMenu__MissionMenuEventShuttle;\r\nextern const void * RTTI_BSModelDB__BSModelProcessor;\r\nextern const void * RTTI_BSModelDB__DependencyCacheManager;\r\nextern const void * RTTI_BSModelDB__ModelResourceNode;\r\nextern const void * RTTI_BSModelDB__QueuedHandles;\r\nextern const void * RTTI_BSModelNode;\r\nextern const void * RTTI_BSModelNodeAnimRig;\r\nextern const void * RTTI_BSModelNodePhysicsComponentI;\r\nextern const void * RTTI_BSModelNodeRigI;\r\nextern const void * RTTI_BSMorphDB__AutoQueuedNode;\r\nextern const void * RTTI_BSMorphDB__QueuedHandles;\r\nextern const void * RTTI_BSMorphTargetData;\r\nextern const void * RTTI_BSMouseDevice;\r\nextern const void * RTTI_BSMsgDialogSystemUtility;\r\nextern const void * RTTI_BSMultiTargetTreadTransfController;\r\nextern const void * RTTI_BSNavMeshGenAntiseedTrimmerTask;\r\nextern const void * RTTI_BSNavMeshGenCollapserTask;\r\nextern const void * RTTI_BSNavMeshGenComputeBoundTask;\r\nextern const void * RTTI_BSNavMeshGenContext;\r\nextern const void * RTTI_BSNavMeshGenContextGroup;\r\nextern const void * RTTI_BSNavMeshGenCoverTask;\r\nextern const void * RTTI_BSNavMeshGenData;\r\nextern const void * RTTI_BSNavMeshGenInputProcessTask;\r\nextern const void * RTTI_BSNavMeshGenInputProcessor;\r\nextern const void * RTTI_BSNavMeshGenLinkDoorTask;\r\nextern const void * RTTI_BSNavMeshGenOutputProcessTask;\r\nextern const void * RTTI_BSNavMeshGenOutputProcessor;\r\nextern const void * RTTI_BSNavMeshGenRecastImport;\r\nextern const void * RTTI_BSNavMeshGenRecastTask;\r\nextern const void * RTTI_BSNavMeshGenRequestPauseTask;\r\nextern const void * RTTI_BSNavMeshGenRequestResumeTask;\r\nextern const void * RTTI_BSNavMeshGenSeedTrimmerTask;\r\nextern const void * RTTI_BSNavMeshGenSmallAreaTrimmerTask;\r\nextern const void * RTTI_BSNavMeshGenSplitter;\r\nextern const void * RTTI_BSNavMeshGenSplitterTask;\r\nextern const void * RTTI_BSNavMeshGenStitcher;\r\nextern const void * RTTI_BSNavMeshGenStitcherTask;\r\nextern const void * RTTI_BSNavMeshGenTask;\r\nextern const void * RTTI_BSNavMeshGenTaskGraphProcessor;\r\nextern const void * RTTI_BSNavMeshGenTaskGroup;\r\nextern const void * RTTI_BSNavMeshGenTaskProgress;\r\nextern const void * RTTI_BSNavMeshGenTaskServer;\r\nextern const void * RTTI_BSNavMeshGenTerrainTrimmerTask;\r\nextern const void * RTTI_BSNavMeshGenTraversalTask;\r\nextern const void * RTTI_BSNavMeshGenTriangleHeightTask;\r\nextern const void * RTTI_BSNavMeshGenTrianglePlatformTask;\r\nextern const void * RTTI_BSNavMeshGenTriangleSplitter;\r\nextern const void * RTTI_BSNavMeshGenTriangleSplitterTask;\r\nextern const void * RTTI_BSNavMeshGenTriangleTunnelTask;\r\nextern const void * RTTI_BSNavMeshGenTriangleWaterTask;\r\nextern const void * RTTI_BSNavMeshGenUpdateNavMeshInfoTask;\r\nextern const void * RTTI_BSNavMeshGenVertexDataTask;\r\nextern const void * RTTI_BSNavMeshGenWaypointTask;\r\nextern const void * RTTI_BSNavMeshGenerator;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenBarrierNode;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenBeginFinalizeAdjacenCellsNode;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenBeginFinalizerNode;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenBeginNode;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenEndFinalizeAdjacentCellsNode;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenEndFinalizerNode;\r\nextern const void * RTTI_BSNavMeshGenerator__BSNavMeshGenParentNode;\r\nextern const void * RTTI_BSNavigationGraph;\r\nextern const void * RTTI_BSNavigationGraphInfo;\r\nextern const void * RTTI_BSNavigationGraphManager;\r\nextern const void * RTTI_BSNavigationGraphRefCount;\r\nextern const void * RTTI_BSNavigationGrid;\r\nextern const void * RTTI_BSNavigationGridBase;\r\nextern const void * RTTI_BSNavigationGridChunk;\r\nextern const void * RTTI_BSNavigationGridFieldBase;\r\nextern const void * RTTI_BSNavigationGridInfo;\r\nextern const void * RTTI_BSNavigationGridManager;\r\nextern const void * RTTI_BSNavigationGridManager__Task;\r\nextern const void * RTTI_BSNavigationGridObstacleUpdateTask;\r\nextern const void * RTTI_BSNavmesh;\r\nextern const void * RTTI_BSNavmeshInfo;\r\nextern const void * RTTI_BSNavmeshInfoMap;\r\nextern const void * RTTI_BSNavmeshInfoMap__IRecursiveVisitor;\r\nextern const void * RTTI_BSNavmeshInfoSearch;\r\nextern const void * RTTI_BSNavmeshObstacleCoverData;\r\nextern const void * RTTI_BSNavmeshObstacleData;\r\nextern const void * RTTI_BSNavmeshReferenceObstacleArray;\r\nextern const void * RTTI_BSNavmeshSearch;\r\nextern const void * RTTI_BSNavmeshSearchAvailableSpaceDirectional;\r\nextern const void * RTTI_BSNavmeshSearchAvailableSpaceRadius;\r\nextern const void * RTTI_BSNavmeshSearchBase;\r\nextern const void * RTTI_BSNavmeshSearchFilters;\r\nextern const void * RTTI_BSNavmeshSearchHideFilter;\r\nextern const void * RTTI_BSNiNode;\r\nextern const void * RTTI_BSNodeReferences;\r\nextern const void * RTTI_BSNoise__Add;\r\nextern const void * RTTI_BSNoise__Billow;\r\nextern const void * RTTI_BSNoise__Crater;\r\nextern const void * RTTI_BSNoise__Invert;\r\nextern const void * RTTI_BSNoise__Perlin;\r\nextern const void * RTTI_BSNoise__Ridged;\r\nextern const void * RTTI_BSNoise__SmoothStep;\r\nextern const void * RTTI_BSNoise__Subtract;\r\nextern const void * RTTI_BSNoise__Turbulence;\r\nextern const void * RTTI_BSNoise__Voronoi;\r\nextern const void * RTTI_BSNonUniformScaleExtraData;\r\nextern const void * RTTI_BSOfflineRTExtraData;\r\nextern const void * RTTI_BSOrderedNode;\r\nextern const void * RTTI_BSPCDualSenseGamepadDevice;\r\nextern const void * RTTI_BSPCGamepadDevice;\r\nextern const void * RTTI_BSPCGamepadDeviceHandler;\r\nextern const void * RTTI_BSPCGamerProfile;\r\nextern const void * RTTI_BSPCKeyboardDevice;\r\nextern const void * RTTI_BSPCMouseDevice;\r\nextern const void * RTTI_BSPCVirtualKeyboardDevice;\r\nextern const void * RTTI_BSPageFile__MemoryWriteStorage;\r\nextern const void * RTTI_BSPageFile__MultiplexWrite;\r\nextern const void * RTTI_BSParseCSV__IGetBufferCB;\r\nextern const void * RTTI_BSParticle;\r\nextern const void * RTTI_BSPathBuilder;\r\nextern const void * RTTI_BSPathEventManager;\r\nextern const void * RTTI_BSPathSmootherPOVSearch;\r\nextern const void * RTTI_BSPathing;\r\nextern const void * RTTI_BSPathingCellManager;\r\nextern const void * RTTI_BSPathingRequest;\r\nextern const void * RTTI_BSPathingRequestPolicies__DestinationArea;\r\nextern const void * RTTI_BSPathingRequestPolicies__EscortRequest;\r\nextern const void * RTTI_BSPathingRequestPolicies__FleeRequestPolicy;\r\nextern const void * RTTI_BSPathingSearchRayCast;\r\nextern const void * RTTI_BSPathingSite;\r\nextern const void * RTTI_BSPathingSpace;\r\nextern const void * RTTI_BSPathingStreamSimpleBufferRead;\r\nextern const void * RTTI_BSPathingStreamSimpleBufferWrite;\r\nextern const void * RTTI_BSPathingTraversal;\r\nextern const void * RTTI_BSPathingTraversalAction;\r\nextern const void * RTTI_BSPathingTraversalData;\r\nextern const void * RTTI_BSPathingTraversalManager;\r\nextern const void * RTTI_BSPathing__CheckLineOfSightFilter;\r\nextern const void * RTTI_BSPathing__DetermineAvailableRadiusAtPositionVisitor;\r\nextern const void * RTTI_BSPathing__DetermineAvailableRadiusInDirectionVisitor;\r\nextern const void * RTTI_BSPathing__EdgeFoundVisitor;\r\nextern const void * RTTI_BSPausableItem;\r\nextern const void * RTTI_BSPauseRequester;\r\nextern const void * RTTI_BSPistonController;\r\nextern const void * RTTI_BSPlatform__BNetAsyncRequestBase;\r\nextern const void * RTTI_BSPlatform__BNetFile__download;\r\nextern const void * RTTI_BSPlatform__BNetFile__marketplaceDownload;\r\nextern const void * RTTI_BSPlatform__BNetImage;\r\nextern const void * RTTI_BSPlatform__BSBethesdaPlatform;\r\nextern const void * RTTI_BSPlatform__BSMarketplaceImage;\r\nextern const void * RTTI_BSPlatform__BSMarketplaceUploader;\r\nextern const void * RTTI_BSPlatform__BSUserContent;\r\nextern const void * RTTI_BSPlatform__BSUserContentCollection;\r\nextern const void * RTTI_BSPlatform__BSUserContentOperations;\r\nextern const void * RTTI_BSPlatform__BSUserContentSearcherAgent;\r\nextern const void * RTTI_BSPlayerDistanceCheckController;\r\nextern const void * RTTI_BSPrecomputedNavmeshInfoSearch;\r\nextern const void * RTTI_BSProbeGridVolume;\r\nextern const void * RTTI_BSProcGen__DataManager;\r\nextern const void * RTTI_BSProcGen__Resources;\r\nextern const void * RTTI_BSProceduralLightningController;\r\nextern const void * RTTI_BSProceduralLightningTasklet;\r\nextern const void * RTTI_BSProjectedDecal;\r\nextern const void * RTTI_BSRecastModule__BSRecastJob;\r\nextern const void * RTTI_BSReference;\r\nextern const void * RTTI_BSReflectionProbe;\r\nextern const void * RTTI_BSReflection__AnyType;\r\nextern const void * RTTI_BSReflection__BSFixedStringType;\r\nextern const void * RTTI_BSReflection__BasicType;\r\nextern const void * RTTI_BSReflection__ClassType;\r\nextern const void * RTTI_BSReflection__ConstCStringType;\r\nextern const void * RTTI_BSReflection__EnumerationType;\r\nextern const void * RTTI_BSReflection__IConstEnumerator;\r\nextern const void * RTTI_BSReflection__IObject;\r\nextern const void * RTTI_BSReflection__ResourceIDStringConverter;\r\nextern const void * RTTI_BSReflection__Serializer;\r\nextern const void * RTTI_BSReflection__TypeManager;\r\nextern const void * RTTI_BSReflection__UIDStringConverter;\r\nextern const void * RTTI_BSRenderSettingsManager;\r\nextern const void * RTTI_BSRendererState;\r\nextern const void * RTTI_BSResource2__CacheBase;\r\nextern const void * RTTI_BSResource2__EntryBase;\r\nextern const void * RTTI_BSResource2__ProxyStream;\r\nextern const void * RTTI_BSResource2__ResourceCreateNode;\r\nextern const void * RTTI_BSResourceNiBinaryStream;\r\nextern const void * RTTI_BSResourceReloadManager;\r\nextern const void * RTTI_BSResourceStreamParser;\r\nextern const void * RTTI_BSResourceStreamStorage;\r\nextern const void * RTTI_BSResource__Archive2__AsyncReaderStream;\r\nextern const void * RTTI_BSResource__Archive2__Index;\r\nextern const void * RTTI_BSResource__Archive2__Manager;\r\nextern const void * RTTI_BSResource__Archive2__Manager__MemoryCacheLocation;\r\nextern const void * RTTI_BSResource__Archive2__ReaderStream;\r\nextern const void * RTTI_BSResource__ArchiveIDConverter;\r\nextern const void * RTTI_BSResource__AsyncStream;\r\nextern const void * RTTI_BSResource__IMemoryFileBuffer;\r\nextern const void * RTTI_BSResource__Location;\r\nextern const void * RTTI_BSResource__LocationTraverser;\r\nextern const void * RTTI_BSResource__LooseFileLocation;\r\nextern const void * RTTI_BSResource__MemoryFileBuffer;\r\nextern const void * RTTI_BSResource__MemoryFileLocation;\r\nextern const void * RTTI_BSResource__MemoryFileStream;\r\nextern const void * RTTI_BSResource__SDirectory2__IDirectoryIDIterator;\r\nextern const void * RTTI_BSResource__SDirectory2__IDirectoryStreamIterator;\r\nextern const void * RTTI_BSResource__SDirectory2__ThreadCursor;\r\nextern const void * RTTI_BSResource__Server__Commands__CancelAll;\r\nextern const void * RTTI_BSResource__Server__Control__Srv;\r\nextern const void * RTTI_BSResource__Server__GraphProcessor;\r\nextern const void * RTTI_BSResource__Server__LinearProcessor;\r\nextern const void * RTTI_BSResource__Server__NodeBase;\r\nextern const void * RTTI_BSResource__Server__PostProcess__Srv;\r\nextern const void * RTTI_BSResource__Server__ResourceServerDebug;\r\nextern const void * RTTI_BSResource__Stream;\r\nextern const void * RTTI_BSResource__StreamBase;\r\nextern const void * RTTI_BSRotAccumTransfInterpolator;\r\nextern const void * RTTI_BSSaveDataSystemUtility;\r\nextern const void * RTTI_BSSaveDataSystemUtilityFile;\r\nextern const void * RTTI_BSScaleformFileOpener;\r\nextern const void * RTTI_BSScaleformImageLoader;\r\nextern const void * RTTI_BSScaleformManager;\r\nextern const void * RTTI_BSScaleformMovieLoadTask;\r\nextern const void * RTTI_BSScaleformTranslator__ScaleformImpl;\r\nextern const void * RTTI_BSSceneNode;\r\nextern const void * RTTI_BSScript__ByteCode__PackedInstructionStream__InstructionFunctor;\r\nextern const void * RTTI_BSScript__CompiledScriptLoader;\r\nextern const void * RTTI_BSScript__ErrorLogger;\r\nextern const void * RTTI_BSScript__ICachedErrorMessage;\r\nextern const void * RTTI_BSScript__IClientVM;\r\nextern const void * RTTI_BSScript__IComplexType;\r\nextern const void * RTTI_BSScript__IFunction;\r\nextern const void * RTTI_BSScript__IHandleReaderWriter;\r\nextern const void * RTTI_BSScript__ILoader;\r\nextern const void * RTTI_BSScript__IMemoryPagePolicy;\r\nextern const void * RTTI_BSScript__IObjectHandlePolicy;\r\nextern const void * RTTI_BSScript__IObjectProcessor;\r\nextern const void * RTTI_BSScript__IProfilePolicy;\r\nextern const void * RTTI_BSScript__ISavePatcherInterface;\r\nextern const void * RTTI_BSScript__IStackCallbackFunctor;\r\nextern const void * RTTI_BSScript__IStackCallbackSaveInterface;\r\nextern const void * RTTI_BSScript__IStore;\r\nextern const void * RTTI_BSScript__IVMDebugInterface;\r\nextern const void * RTTI_BSScript__IVMObjectBindInterface;\r\nextern const void * RTTI_BSScript__IVMSaveLoadInterface;\r\nextern const void * RTTI_BSScript__IVirtualMachine;\r\nextern const void * RTTI_BSScript__Internal__AutoPropGetFunction;\r\nextern const void * RTTI_BSScript__Internal__AutoPropSetFunction;\r\nextern const void * RTTI_BSScript__Internal__CodeTasklet;\r\nextern const void * RTTI_BSScript__Internal__FunctionMessageNode;\r\nextern const void * RTTI_BSScript__Internal__FunctionMessageProcessor;\r\nextern const void * RTTI_BSScript__Internal__IFuncCallQuery;\r\nextern const void * RTTI_BSScript__Internal__IVMFunctionMessageDispatch;\r\nextern const void * RTTI_BSScript__Internal__NativeFunctionStub;\r\nextern const void * RTTI_BSScript__Internal__RawFuncCallQuery;\r\nextern const void * RTTI_BSScript__Internal__ScriptFunction;\r\nextern const void * RTTI_BSScript__Internal__VirtualMachine;\r\nextern const void * RTTI_BSScript__LinkerProcessor;\r\nextern const void * RTTI_BSScript__NF_util__NativeFunctionBase;\r\nextern const void * RTTI_BSScript__ObjectBindPolicy;\r\nextern const void * RTTI_BSScript__ObjectTypeInfo;\r\nextern const void * RTTI_BSScript__SimpleAllocMemoryPagePolicy;\r\nextern const void * RTTI_BSScript__StructTypeInfo;\r\nextern const void * RTTI_BSScript__UnlinkedTypes__InstructionStream__InstructionFunctor;\r\nextern const void * RTTI_BSSequence__AnimationEvent;\r\nextern const void * RTTI_BSSequence__AnimationTrack;\r\nextern const void * RTTI_BSSequence__AnimationVariableTrack;\r\nextern const void * RTTI_BSSequence__AnimationVectorVariableTrack;\r\nextern const void * RTTI_BSSequence__BindingEvent;\r\nextern const void * RTTI_BSSequence__BoundPropertyTrack;\r\nextern const void * RTTI_BSSequence__CameraShakeEvent;\r\nextern const void * RTTI_BSSequence__CameraShakeStrengthTrack;\r\nextern const void * RTTI_BSSequence__CameraShakeTrack;\r\nextern const void * RTTI_BSSequence__ColorCurveEvent;\r\nextern const void * RTTI_BSSequence__ColorLerpEvent;\r\nextern const void * RTTI_BSSequence__ColorNoiseEvent;\r\nextern const void * RTTI_BSSequence__ColorTriggerEvent;\r\nextern const void * RTTI_BSSequence__ConsoleScriptEvent;\r\nextern const void * RTTI_BSSequence__CullEvent;\r\nextern const void * RTTI_BSSequence__DissolveEvent;\r\nextern const void * RTTI_BSSequence__DissolveFrequencyScaleTrack;\r\nextern const void * RTTI_BSSequence__DissolveOffsetTrack;\r\nextern const void * RTTI_BSSequence__DissolveTrack;\r\nextern const void * RTTI_BSSequence__Event;\r\nextern const void * RTTI_BSSequence__ExplosionObjectSpawn;\r\nextern const void * RTTI_BSSequence__Float2CurveEvent;\r\nextern const void * RTTI_BSSequence__Float2LerpEvent;\r\nextern const void * RTTI_BSSequence__Float2TriggerEvent;\r\nextern const void * RTTI_BSSequence__FloatCurveEvent;\r\nextern const void * RTTI_BSSequence__FloatLerpEvent;\r\nextern const void * RTTI_BSSequence__FloatNoiseEvent;\r\nextern const void * RTTI_BSSequence__FloatTriggerEvent;\r\nextern const void * RTTI_BSSequence__ITimeMultiplierProvider;\r\nextern const void * RTTI_BSSequence__ImageSpaceLifetimeEvent;\r\nextern const void * RTTI_BSSequence__ImageSpaceStrengthTrack;\r\nextern const void * RTTI_BSSequence__ImageSpaceTrack;\r\nextern const void * RTTI_BSSequence__ImpactEffectEvent;\r\nextern const void * RTTI_BSSequence__ImpactEffectTrack;\r\nextern const void * RTTI_BSSequence__LightColorTrack;\r\nextern const void * RTTI_BSSequence__LightEffectDirectReferenceTrack;\r\nextern const void * RTTI_BSSequence__LightEffectReferenceTrack;\r\nextern const void * RTTI_BSSequence__LightEffectTrack;\r\nextern const void * RTTI_BSSequence__LightIntensityTrack;\r\nextern const void * RTTI_BSSequence__LightLensFlareVisiblityTrack;\r\nextern const void * RTTI_BSSequence__LightRadiusTrack;\r\nextern const void * RTTI_BSSequence__LightSpawnEvent;\r\nextern const void * RTTI_BSSequence__LightTrackBase;\r\nextern const void * RTTI_BSSequence__LoopMarker;\r\nextern const void * RTTI_BSSequence__MaterialFlipbookIndexGeneratorEvent;\r\nextern const void * RTTI_BSSequence__MaterialFlipbookIndexTrack;\r\nextern const void * RTTI_BSSequence__MaterialPropertyTrack;\r\nextern const void * RTTI_BSSequence__MaterialTrack;\r\nextern const void * RTTI_BSSequence__Mediator;\r\nextern const void * RTTI_BSSequence__NamedSequenceMap;\r\nextern const void * RTTI_BSSequence__NodeTrackBase;\r\nextern const void * RTTI_BSSequence__NoteEvent;\r\nextern const void * RTTI_BSSequence__NoteTrack;\r\nextern const void * RTTI_BSSequence__Object;\r\nextern const void * RTTI_BSSequence__ObjectAttachmentSubnodeTrack;\r\nextern const void * RTTI_BSSequence__ObjectAttachmentTrack;\r\nextern const void * RTTI_BSSequence__ObjectSpawnEvent;\r\nextern const void * RTTI_BSSequence__ObjectSpawnTrack;\r\nextern const void * RTTI_BSSequence__ParticleEffectReferenceTrack;\r\nextern const void * RTTI_BSSequence__ParticleEffectTrack;\r\nextern const void * RTTI_BSSequence__ParticleEvent;\r\nextern const void * RTTI_BSSequence__ParticleMaterialPropertyTrack;\r\nextern const void * RTTI_BSSequence__ParticleParameterTrack;\r\nextern const void * RTTI_BSSequence__PlaySubSequenceEvent;\r\nextern const void * RTTI_BSSequence__PositionTrack;\r\nextern const void * RTTI_BSSequence__PositionTrack__TrackState;\r\nextern const void * RTTI_BSSequence__ProjectedDecalAlphaTrack;\r\nextern const void * RTTI_BSSequence__ProjectedDecalSpawnEvent;\r\nextern const void * RTTI_BSSequence__ProjectedDecalTrack;\r\nextern const void * RTTI_BSSequence__PropertyControllerBase;\r\nextern const void * RTTI_BSSequence__PropertyControllerEvent;\r\nextern const void * RTTI_BSSequence__PropertyLerpControllerEvent;\r\nextern const void * RTTI_BSSequence__ReferenceSpawnEvent;\r\nextern const void * RTTI_BSSequence__RevertMaterialOverrideEvent;\r\nextern const void * RTTI_BSSequence__RotationTrack;\r\nextern const void * RTTI_BSSequence__RotationTrack__TrackState;\r\nextern const void * RTTI_BSSequence__ScaleTrack;\r\nextern const void * RTTI_BSSequence__SceneNodeTrack;\r\nextern const void * RTTI_BSSequence__ScriptTrack;\r\nextern const void * RTTI_BSSequence__SetPropertyEvent;\r\nextern const void * RTTI_BSSequence__SoundEvent;\r\nextern const void * RTTI_BSSequence__SoundTrack;\r\nextern const void * RTTI_BSSequence__SubSequenceTrack;\r\nextern const void * RTTI_BSSequence__Track;\r\nextern const void * RTTI_BSSequence__TrackGroup;\r\nextern const void * RTTI_BSSequence__TriggerMaterialSwap;\r\nextern const void * RTTI_BSSequence__VectorCurveEvent;\r\nextern const void * RTTI_BSSequence__VectorLerpEvent;\r\nextern const void * RTTI_BSSequence__VectorNoiseEvent;\r\nextern const void * RTTI_BSSequence__VectorTriggerEvent;\r\nextern const void * RTTI_BSSequence__VisibilityTrack;\r\nextern const void * RTTI_BSService__JobSite;\r\nextern const void * RTTI_BSShadowLight;\r\nextern const void * RTTI_BSShapeConstructor;\r\nextern const void * RTTI_BSSimpleScaleController;\r\nextern const void * RTTI_BSSkin__BoneData;\r\nextern const void * RTTI_BSSkin__Instance;\r\nextern const void * RTTI_BSSpatialGraph;\r\nextern const void * RTTI_BSSpatialGraphInfo;\r\nextern const void * RTTI_BSSpatialGraphManager;\r\nextern const void * RTTI_BSSpatialGraphSearch;\r\nextern const void * RTTI_BSSplatterExtraData;\r\nextern const void * RTTI_BSSteamSysInfoSystemUtility;\r\nextern const void * RTTI_BSStorage;\r\nextern const void * RTTI_BSStream;\r\nextern const void * RTTI_BSStreamParserData;\r\nextern const void * RTTI_BSStreaming__DataStorage;\r\nextern const void * RTTI_BSSubBehaviorGraphSingleton;\r\nextern const void * RTTI_BSSubBehaviorGraphSingletonData;\r\nextern const void * RTTI_BSSubBehaviorGraphSingletonDataAddToDeferredDeleterTask;\r\nextern const void * RTTI_BSSubSceneNode;\r\nextern const void * RTTI_BSSysInfoSystemUtility;\r\nextern const void * RTTI_BSSystemFileAsyncFunctor;\r\nextern const void * RTTI_BSSystemFileStorage;\r\nextern const void * RTTI_BSSystemFileStreamer__HeapData;\r\nextern const void * RTTI_BSSystemFileStreamer__PhysicalRequest;\r\nextern const void * RTTI_BSSystemFileStreamer__PinnedData;\r\nextern const void * RTTI_BSSystemFileStreamer__Streamer;\r\nextern const void * RTTI_BSSystemFileStreamer__Streamer__ControlThread;\r\nextern const void * RTTI_BSSystemFileStreamer__Streamer__StreamerThread;\r\nextern const void * RTTI_BSSystemUtilitiesStrings;\r\nextern const void * RTTI_BSSystemUtility;\r\nextern const void * RTTI_BSTArrayBase__IAllocatorFunctor;\r\nextern const void * RTTI_BSTEventDetail__SourceBase;\r\nextern const void * RTTI_BSTGlobalEvent;\r\nextern const void * RTTI_BSTSmartPointerPrivate__HandleManagerBase;\r\nextern const void * RTTI_BSTableCurve;\r\nextern const void * RTTI_BSTaskJobber;\r\nextern const void * RTTI_BSTaskJobber__Task;\r\nextern const void * RTTI_BSTaskThread;\r\nextern const void * RTTI_BSTaskletGroupData;\r\nextern const void * RTTI_BSTaskletManager;\r\nextern const void * RTTI_BSTempEffect;\r\nextern const void * RTTI_BSTempEffectDebris;\r\nextern const void * RTTI_BSTempEffectGeometryDecal;\r\nextern const void * RTTI_BSTempEffectParticle;\r\nextern const void * RTTI_BSTempEffectSPG;\r\nextern const void * RTTI_BSTempEffectScreenSpaceDecal;\r\nextern const void * RTTI_BSTempEffectWeaponBlood;\r\nextern const void * RTTI_BSTerrainEffect;\r\nextern const void * RTTI_BSTextureStreamer__ArchiveLayer;\r\nextern const void * RTTI_BSTextureStreamer__LoadQueueService;\r\nextern const void * RTTI_BSTextureStreamer__Manager;\r\nextern const void * RTTI_BSTextureStreamer__ManagerBase;\r\nextern const void * RTTI_BSTextureStreamer__ManagerServiceFramework;\r\nextern const void * RTTI_BSTextureStreamer__TextureArchiveIDConverter;\r\nextern const void * RTTI_BSTextureStreamer__TextureLoad;\r\nextern const void * RTTI_BSThread;\r\nextern const void * RTTI_BSThreadStagesManager;\r\nextern const void * RTTI_BSTransformExtra;\r\nextern const void * RTTI_BSTreadTransfInterpolator;\r\nextern const void * RTTI_BSUIExternalTexture;\r\nextern const void * RTTI_BSUserActivitiesSystemUtility;\r\nextern const void * RTTI_BSVMFileFenceNode;\r\nextern const void * RTTI_BSVMLoadNode;\r\nextern const void * RTTI_BSVMPostProcessNode;\r\nextern const void * RTTI_BSValueNode;\r\nextern const void * RTTI_BSWArray;\r\nextern const void * RTTI_BSWeakReferenceNode;\r\nextern const void * RTTI_BSWin32ExceptionHandler;\r\nextern const void * RTTI_BSWinPCAwardsSystemUtility;\r\nextern const void * RTTI_BSWinPCGameDataSystemUtility;\r\nextern const void * RTTI_BSWinPCGameDataSystemUtility__CCallbackInternal_OnDLCInstalled;\r\nextern const void * RTTI_BSWinPCSaveDataSystemUtility;\r\nextern const void * RTTI_BSWinPCSystemUtility;\r\nextern const void * RTTI_BSWinPCSystemUtility__ConnectionStatusManager;\r\nextern const void * RTTI_BSXFlags;\r\nextern const void * RTTI_BShkbHkxDB__QueuedHandles;\r\nextern const void * RTTI_BShkbUtils__GraphInspectionFunctor;\r\nextern const void * RTTI_BackgroundProcessNode;\r\nextern const void * RTTI_BackgroundProcessThread;\r\nextern const void * RTTI_BanishEffect;\r\nextern const void * RTTI_BarrierProjectile;\r\nextern const void * RTTI_BarterMenu;\r\nextern const void * RTTI_BarterMenu_BuyItem;\r\nextern const void * RTTI_BarterMenu_CloseMenu;\r\nextern const void * RTTI_BarterMenu_HideModel;\r\nextern const void * RTTI_BarterMenu_LoadModel;\r\nextern const void * RTTI_BarterMenu_SellItem;\r\nextern const void * RTTI_BarterMenu_SetMouseOverModel;\r\nextern const void * RTTI_BarterMenu_ShowFailureMessage;\r\nextern const void * RTTI_BarterMenu_ViewedItem;\r\nextern const void * RTTI_BarterMenu__BarterMenuEventShuttle;\r\nextern const void * RTTI_BaseFormComponent;\r\nextern const void * RTTI_BaseLightAnimData;\r\nextern const void * RTTI_BeamProjectile;\r\nextern const void * RTTI_BedEnterHandler;\r\nextern const void * RTTI_BedFurnitureExitHandler;\r\nextern const void * RTTI_BleedoutCameraState;\r\nextern const void * RTTI_BlendNode;\r\nextern const void * RTTI_BlendNodeInstance;\r\nextern const void * RTTI_BlendTree;\r\nextern const void * RTTI_BlendTreeInstance;\r\nextern const void * RTTI_Blueprints__Blueprint;\r\nextern const void * RTTI_Blueprints__BlueprintMainStatusHandler;\r\nextern const void * RTTI_Blueprints__BlueprintVariant;\r\nextern const void * RTTI_BodyCollisionsTask;\r\nextern const void * RTTI_BodyEffects__Effect;\r\nextern const void * RTTI_BodyEffects__ResourceVisualizationEffect;\r\nextern const void * RTTI_BodyEffects__ScanlinesEffect;\r\nextern const void * RTTI_BoneConstraint;\r\nextern const void * RTTI_BoneConstraintInstance;\r\nextern const void * RTTI_BoneModifierData;\r\nextern const void * RTTI_BoneModifierExtra;\r\nextern const void * RTTI_BoneModifierInstance;\r\nextern const void * RTTI_BookMenu;\r\nextern const void * RTTI_BookMenu__BookData;\r\nextern const void * RTTI_BookMenu__BookMenuUIDataEventShuttle;\r\nextern const void * RTTI_BoundaryMenu;\r\nextern const void * RTTI_BoundaryMenu_FastTravel;\r\nextern const void * RTTI_BoundaryMenu_ShowMap;\r\nextern const void * RTTI_BowZoomStartHandler;\r\nextern const void * RTTI_BowZoomStopHandler;\r\nextern const void * RTTI_ButtonEvent;\r\nextern const void * RTTI_CCallbackBase;\r\nextern const void * RTTI_CPUCaptureHandler;\r\nextern const void * RTTI_CalcContainerWeight;\r\nextern const void * RTTI_Calendar;\r\nextern const void * RTTI_CalmEffect;\r\nextern const void * RTTI_CameraOverrideStartHandler;\r\nextern const void * RTTI_CameraOverrideStopHandler;\r\nextern const void * RTTI_CameraShakeHandler;\r\nextern const void * RTTI_CameraShake__ShakeData;\r\nextern const void * RTTI_CameraZoomHandler;\r\nextern const void * RTTI_Camera__DebugCinematicCamera;\r\nextern const void * RTTI_Camera__DebugFollowCamera;\r\nextern const void * RTTI_Camera__DebugFreeCamera;\r\nextern const void * RTTI_Camera__DebugModule;\r\nextern const void * RTTI_Camera__DebugOrbitalCamera;\r\nextern const void * RTTI_Camera__DebugTargetCamera;\r\nextern const void * RTTI_Camera__IBaseModule;\r\nextern const void * RTTI_Camera__IDebugCamera;\r\nextern const void * RTTI_Camera__InteriorModule;\r\nextern const void * RTTI_Camera__Manager;\r\nextern const void * RTTI_Camera__PlayerModule;\r\nextern const void * RTTI_Camera__SpaceModule;\r\nextern const void * RTTI_CapacityValueModifierEffect;\r\nextern const void * RTTI_CellHandleManager;\r\nextern const void * RTTI_CellHfCollision;\r\nextern const void * RTTI_ChainExplosion;\r\nextern const void * RTTI_ChairEnterHandler;\r\nextern const void * RTTI_ChairFurnitureExitHandler;\r\nextern const void * RTTI_ChangeAnimArchetypeHandler;\r\nextern const void * RTTI_CharGen_BrowChange;\r\nextern const void * RTTI_CharGen_BrowColorChange;\r\nextern const void * RTTI_CharGen_CancelTextEntry;\r\nextern const void * RTTI_CharGen_CloseMenu;\r\nextern const void * RTTI_CharGen_CyclePronoun;\r\nextern const void * RTTI_CharGen_DirtScarsEtcChange;\r\nextern const void * RTTI_CharGen_EndBodyChange;\r\nextern const void * RTTI_CharGen_EndTextEntry;\r\nextern const void * RTTI_CharGen_EyeColorChange;\r\nextern const void * RTTI_CharGen_FacialHairChange;\r\nextern const void * RTTI_CharGen_FacialHairColorChange;\r\nextern const void * RTTI_CharGen_HairChange;\r\nextern const void * RTTI_CharGen_HairColorChange;\r\nextern const void * RTTI_CharGen_HeadpartPlusSelectorChange;\r\nextern const void * RTTI_CharGen_HeadpartPresetChange;\r\nextern const void * RTTI_CharGen_JewelryChange;\r\nextern const void * RTTI_CharGen_JewelryColorChange;\r\nextern const void * RTTI_CharGen_MakeupChange;\r\nextern const void * RTTI_CharGen_MarkingsChange;\r\nextern const void * RTTI_CharGen_PostBlendColorOptionChange;\r\nextern const void * RTTI_CharGen_PostBlendFaceChange;\r\nextern const void * RTTI_CharGen_PostBlendIntensityChange;\r\nextern const void * RTTI_CharGen_PresetChange;\r\nextern const void * RTTI_CharGen_RollOffLocomotion;\r\nextern const void * RTTI_CharGen_RollOnLocomotion;\r\nextern const void * RTTI_CharGen_RotatePaperdoll;\r\nextern const void * RTTI_CharGen_SetAdditionalSlider;\r\nextern const void * RTTI_CharGen_SetBackground;\r\nextern const void * RTTI_CharGen_SetBlockInputUnderPopup;\r\nextern const void * RTTI_CharGen_SetBodyValues;\r\nextern const void * RTTI_CharGen_SetCameraPosition;\r\nextern const void * RTTI_CharGen_SetPronoun;\r\nextern const void * RTTI_CharGen_SetSex;\r\nextern const void * RTTI_CharGen_SetSlider;\r\nextern const void * RTTI_CharGen_SetTrait;\r\nextern const void * RTTI_CharGen_ShowChooseBackgroundMessage;\r\nextern const void * RTTI_CharGen_ShowPlayerRenameMessage;\r\nextern const void * RTTI_CharGen_SkintoneChange;\r\nextern const void * RTTI_CharGen_StartBodyChange;\r\nextern const void * RTTI_CharGen_StartTextEntry;\r\nextern const void * RTTI_CharGen_SwitchBodyType;\r\nextern const void * RTTI_CharGen_SwitchLocomotion;\r\nextern const void * RTTI_CharGen_TeethChange;\r\nextern const void * RTTI_CharGen_TeethRollOff;\r\nextern const void * RTTI_CharGen_TeethRollOn;\r\nextern const void * RTTI_CharGen_ToggleMarking;\r\nextern const void * RTTI_CharGen_TogglePreviewHabSuit;\r\nextern const void * RTTI_CharacterCollisionHandler;\r\nextern const void * RTTI_CharacterCollisionMessagePlayerAdapter;\r\nextern const void * RTTI_CharacterEvent;\r\nextern const void * RTTI_ChargenMenu;\r\nextern const void * RTTI_ChargenMenu__ChargenMenuEventShuttle;\r\nextern const void * RTTI_CheckGoalReachedFunctor;\r\nextern const void * RTTI_CheckLineOfSightFilterMisc;\r\nextern const void * RTTI_CheckParameterReachedFunctor;\r\nextern const void * RTTI_CheckStoppedMovingFunctor;\r\nextern const void * RTTI_ClientBIMetrics__CombatHitMetricsI;\r\nextern const void * RTTI_ClientBIMetrics__HeartBeat__EventSink;\r\nextern const void * RTTI_ClientBIMetrics__Performance__EventSink;\r\nextern const void * RTTI_ClientBIMetrics__ShipCombatHitMetricsBPSImp;\r\nextern const void * RTTI_ClientBIPrebuiltHTTPSPostPrivate__CurlHTTPSPost;\r\nextern const void * RTTI_CloakEffect;\r\nextern const void * RTTI_ClonePoseNode;\r\nextern const void * RTTI_ClonePoseNodeInstance;\r\nextern const void * RTTI_CloudSaveWriter;\r\nextern const void * RTTI_CombatAcquireSearchDebugData;\r\nextern const void * RTTI_CombatAimController;\r\nextern const void * RTTI_CombatAlignRollPathController;\r\nextern const void * RTTI_CombatAnimatedPath;\r\nextern const void * RTTI_CombatApproachTargetPathController;\r\nextern const void * RTTI_CombatAreaHoldPosition;\r\nextern const void * RTTI_CombatAreaReference;\r\nextern const void * RTTI_CombatAreaShape;\r\nextern const void * RTTI_CombatAreaStandard;\r\nextern const void * RTTI_CombatBarrelRollPathController;\r\nextern const void * RTTI_CombatBehaviorAttackFromCover;\r\nextern const void * RTTI_CombatBehaviorBlindFireFromCover;\r\nextern const void * RTTI_CombatBehaviorContextCover;\r\nextern const void * RTTI_CombatBehaviorContextGrenade;\r\nextern const void * RTTI_CombatBehaviorMoveInCover;\r\nextern const void * RTTI_CombatBehaviorProvideSuppressiveFire;\r\nextern const void * RTTI_CombatBehaviorResource;\r\nextern const void * RTTI_CombatBehaviorShipAcquire;\r\nextern const void * RTTI_CombatBehaviorShipAttackManeuver;\r\nextern const void * RTTI_CombatBehaviorShipBarrelRoll;\r\nextern const void * RTTI_CombatBehaviorShipBoost;\r\nextern const void * RTTI_CombatBehaviorShipBreak;\r\nextern const void * RTTI_CombatBehaviorShipBreakStalemate;\r\nextern const void * RTTI_CombatBehaviorShipCut;\r\nextern const void * RTTI_CombatBehaviorShipDirectAttack;\r\nextern const void * RTTI_CombatBehaviorShipDisengage;\r\nextern const void * RTTI_CombatBehaviorShipLeadTurn;\r\nextern const void * RTTI_CombatBehaviorShipLurk;\r\nextern const void * RTTI_CombatBehaviorShipOrbitCombatArea;\r\nextern const void * RTTI_CombatBehaviorShipOrbitTarget;\r\nextern const void * RTTI_CombatBehaviorShipPass;\r\nextern const void * RTTI_CombatBehaviorShipPathDestinationRef;\r\nextern const void * RTTI_CombatBehaviorShipPursue;\r\nextern const void * RTTI_CombatBehaviorShipScissors;\r\nextern const void * RTTI_CombatBehaviorShipSliceback;\r\nextern const void * RTTI_CombatBehaviorShipSlideDodge;\r\nextern const void * RTTI_CombatBehaviorShipSlideTurn;\r\nextern const void * RTTI_CombatBehaviorShipStationaryTracking;\r\nextern const void * RTTI_CombatBehaviorShipStrafe;\r\nextern const void * RTTI_CombatBehaviorShipStrafeTurn;\r\nextern const void * RTTI_CombatBehaviorShipTargetingModeAutopilot;\r\nextern const void * RTTI_CombatBehaviorShipTurn;\r\nextern const void * RTTI_CombatBehaviorTree;\r\nextern const void * RTTI_CombatBehaviorTreeAcquireObject;\r\nextern const void * RTTI_CombatBehaviorTreeAction;\r\nextern const void * RTTI_CombatBehaviorTreeActionEquipmentSelector;\r\nextern const void * RTTI_CombatBehaviorTreeAvoidThreat;\r\nextern const void * RTTI_CombatBehaviorTreeBlock;\r\nextern const void * RTTI_CombatBehaviorTreeBow;\r\nextern const void * RTTI_CombatBehaviorTreeChargingCloseMovement;\r\nextern const void * RTTI_CombatBehaviorTreeChargingMovement;\r\nextern const void * RTTI_CombatBehaviorTreeCheckUnreachableTarget;\r\nextern const void * RTTI_CombatBehaviorTreeCloseMovement;\r\nextern const void * RTTI_CombatBehaviorTreeCombat;\r\nextern const void * RTTI_CombatBehaviorTreeCreateContextNodeBase;\r\nextern const void * RTTI_CombatBehaviorTreeFindAttackLocation;\r\nextern const void * RTTI_CombatBehaviorTreeFindValidLocation;\r\nextern const void * RTTI_CombatBehaviorTreeFlankingMovement;\r\nextern const void * RTTI_CombatBehaviorTreeFlee;\r\nextern const void * RTTI_CombatBehaviorTreeFlight;\r\nextern const void * RTTI_CombatBehaviorTreeGrenade;\r\nextern const void * RTTI_CombatBehaviorTreeGun;\r\nextern const void * RTTI_CombatBehaviorTreeHide;\r\nextern const void * RTTI_CombatBehaviorTreeLinkNode;\r\nextern const void * RTTI_CombatBehaviorTreeLowCombat;\r\nextern const void * RTTI_CombatBehaviorTreeMagic;\r\nextern const void * RTTI_CombatBehaviorTreeMelee;\r\nextern const void * RTTI_CombatBehaviorTreeMovement;\r\nextern const void * RTTI_CombatBehaviorTreeMovementRequest;\r\nextern const void * RTTI_CombatBehaviorTreeNode;\r\nextern const void * RTTI_CombatBehaviorTreePlayerShipCombat;\r\nextern const void * RTTI_CombatBehaviorTreeRangedMovement;\r\nextern const void * RTTI_CombatBehaviorTreeRetreatClose;\r\nextern const void * RTTI_CombatBehaviorTreeRetreatRanged;\r\nextern const void * RTTI_CombatBehaviorTreeReturnToCombatArea;\r\nextern const void * RTTI_CombatBehaviorTreeRootNode;\r\nextern const void * RTTI_CombatBehaviorTreeSearch;\r\nextern const void * RTTI_CombatBehaviorTreeShipAction;\r\nextern const void * RTTI_CombatBehaviorTreeShipActionEquipmentSelector;\r\nextern const void * RTTI_CombatBehaviorTreeShipCombat;\r\nextern const void * RTTI_CombatBehaviorTreeShipDetection;\r\nextern const void * RTTI_CombatBehaviorTreeShipFlee;\r\nextern const void * RTTI_CombatBehaviorTreeShipManeuvers;\r\nextern const void * RTTI_CombatBehaviorTreeShipMovement;\r\nextern const void * RTTI_CombatBehaviorTreeShipPowerAllocation;\r\nextern const void * RTTI_CombatBehaviorTreeSpaceshipWeapon;\r\nextern const void * RTTI_CombatBehaviorTreeTargetingMode;\r\nextern const void * RTTI_CombatBehaviorTreeThrow;\r\nextern const void * RTTI_CombatBehaviorTreeUseCover;\r\nextern const void * RTTI_CombatBehaviorTreeUsePotion;\r\nextern const void * RTTI_CombatBehaviorTreeWrapperNode;\r\nextern const void * RTTI_CombatBehaviorWaitBehindCover;\r\nextern const void * RTTI_CombatBlackboardMemberBase;\r\nextern const void * RTTI_CombatChangePositionPathController;\r\nextern const void * RTTI_CombatChargingSearchData;\r\nextern const void * RTTI_CombatCluster;\r\nextern const void * RTTI_CombatCoverLocation;\r\nextern const void * RTTI_CombatCoverMap;\r\nextern const void * RTTI_CombatCoverSearch;\r\nextern const void * RTTI_CombatCoverSearchDebugData;\r\nextern const void * RTTI_CombatCoverSearchResult;\r\nextern const void * RTTI_CombatCoveredPath;\r\nextern const void * RTTI_CombatCoveredPathDebugData;\r\nextern const void * RTTI_CombatDebugManager;\r\nextern const void * RTTI_CombatDialogueDebugData;\r\nextern const void * RTTI_CombatDialogueManager;\r\nextern const void * RTTI_CombatDisableActionController;\r\nextern const void * RTTI_CombatDisableAimController;\r\nextern const void * RTTI_CombatDisableCollisionController;\r\nextern const void * RTTI_CombatEffectSite;\r\nextern const void * RTTI_CombatEncounterBIEvents__CombatEnounterMetricsManager;\r\nextern const void * RTTI_CombatEncounterMetrics;\r\nextern const void * RTTI_CombatEnterCoverPathController;\r\nextern const void * RTTI_CombatFlankingSearchData;\r\nextern const void * RTTI_CombatFleeAimController;\r\nextern const void * RTTI_CombatFollowTargetPathController;\r\nextern const void * RTTI_CombatGroupDetectionListener;\r\nextern const void * RTTI_CombatInceptionDebugData;\r\nextern const void * RTTI_CombatInterface;\r\nextern const void * RTTI_CombatInventoryItem;\r\nextern const void * RTTI_CombatInventoryItemComposite;\r\nextern const void * RTTI_CombatInventoryItemGrenade;\r\nextern const void * RTTI_CombatInventoryItemMagic;\r\nextern const void * RTTI_CombatInventoryItemMelee;\r\nextern const void * RTTI_CombatInventoryItemOneHandedBlock;\r\nextern const void * RTTI_CombatInventoryItemRanged;\r\nextern const void * RTTI_CombatInventoryItemShield;\r\nextern const void * RTTI_CombatInventoryItemThrown;\r\nextern const void * RTTI_CombatInventoryItemTorch;\r\nextern const void * RTTI_CombatMagicCaster;\r\nextern const void * RTTI_CombatMagicCasterArmor;\r\nextern const void * RTTI_CombatMagicCasterBoundItem;\r\nextern const void * RTTI_CombatMagicCasterChameleon;\r\nextern const void * RTTI_CombatMagicCasterCloak;\r\nextern const void * RTTI_CombatMagicCasterDash;\r\nextern const void * RTTI_CombatMagicCasterDisarm;\r\nextern const void * RTTI_CombatMagicCasterInvisibility;\r\nextern const void * RTTI_CombatMagicCasterLight;\r\nextern const void * RTTI_CombatMagicCasterOffensive;\r\nextern const void * RTTI_CombatMagicCasterParalyze;\r\nextern const void * RTTI_CombatMagicCasterReanimate;\r\nextern const void * RTTI_CombatMagicCasterRestore;\r\nextern const void * RTTI_CombatMagicCasterScript;\r\nextern const void * RTTI_CombatMagicCasterStagger;\r\nextern const void * RTTI_CombatMagicCasterSummon;\r\nextern const void * RTTI_CombatMagicCasterTargetEffect;\r\nextern const void * RTTI_CombatMagicCasterWard;\r\nextern const void * RTTI_CombatMagicEffectDataManager;\r\nextern const void * RTTI_CombatMagicItemData;\r\nextern const void * RTTI_CombatMagicItemSkillChecker;\r\nextern const void * RTTI_CombatMaintainDistancePathController;\r\nextern const void * RTTI_CombatManager;\r\nextern const void * RTTI_CombatMantlePathController;\r\nextern const void * RTTI_CombatMatchTargetAimController;\r\nextern const void * RTTI_CombatMeleeAimController;\r\nextern const void * RTTI_CombatMeleeAttackController;\r\nextern const void * RTTI_CombatMeleeDebugData;\r\nextern const void * RTTI_CombatMovementRequestActivateTarget;\r\nextern const void * RTTI_CombatMovementRequestFollowActor;\r\nextern const void * RTTI_CombatNavmeshCoverLocation;\r\nextern const void * RTTI_CombatNavmeshPathingDebugData;\r\nextern const void * RTTI_CombatObjectGlobalSharedSaveLoadManager;\r\nextern const void * RTTI_CombatPath;\r\nextern const void * RTTI_CombatPathBuilder;\r\nextern const void * RTTI_CombatPathBuilderCovered;\r\nextern const void * RTTI_CombatPathBuilderNavmeshOpen;\r\nextern const void * RTTI_CombatPathBuilderNavmeshStandard;\r\nextern const void * RTTI_CombatPathBuilderNavmeshUtilities__CheckNavmeshPathFilter;\r\nextern const void * RTTI_CombatPathBuilderSpaceStandard;\r\nextern const void * RTTI_CombatPathBuilderSpatialGraphOpen;\r\nextern const void * RTTI_CombatPathBuilderSpatialGraphStandard;\r\nextern const void * RTTI_CombatPathBuilderTrackInfo;\r\nextern const void * RTTI_CombatPathBuilderTracker;\r\nextern const void * RTTI_CombatPathDestinationAcquire;\r\nextern const void * RTTI_CombatPathDestinationActor;\r\nextern const void * RTTI_CombatPathDestinationBarrelRoll;\r\nextern const void * RTTI_CombatPathDestinationBreak;\r\nextern const void * RTTI_CombatPathDestinationDirectlyToTarget;\r\nextern const void * RTTI_CombatPathDestinationDisengage;\r\nextern const void * RTTI_CombatPathDestinationEvade;\r\nextern const void * RTTI_CombatPathDestinationFlee;\r\nextern const void * RTTI_CombatPathDestinationFollowActor;\r\nextern const void * RTTI_CombatPathDestinationLeadTurn;\r\nextern const void * RTTI_CombatPathDestinationOrbitRef;\r\nextern const void * RTTI_CombatPathDestinationPursue;\r\nextern const void * RTTI_CombatPathDestinationRef;\r\nextern const void * RTTI_CombatPathDestinationRefs;\r\nextern const void * RTTI_CombatPathDestinationRemainNear;\r\nextern const void * RTTI_CombatPathDestinationSlideDodge;\r\nextern const void * RTTI_CombatPathDestinationSlideTurn;\r\nextern const void * RTTI_CombatPathDestinationStrafe;\r\nextern const void * RTTI_CombatPathDestinationStrafeTurn;\r\nextern const void * RTTI_CombatPathManager;\r\nextern const void * RTTI_CombatPathingDebugData;\r\nextern const void * RTTI_CombatPathingDelayedTweener;\r\nextern const void * RTTI_CombatPathingRequest;\r\nextern const void * RTTI_CombatPathingRequestAdapter;\r\nextern const void * RTTI_CombatPathingRequestCovered;\r\nextern const void * RTTI_CombatPathingRequestDebugData;\r\nextern const void * RTTI_CombatPathingRequestMultiGoal;\r\nextern const void * RTTI_CombatPathingRequestStandard;\r\nextern const void * RTTI_CombatPathingSearch;\r\nextern const void * RTTI_CombatPathingSearchArea;\r\nextern const void * RTTI_CombatPathingTweener;\r\nextern const void * RTTI_CombatPositionMap;\r\nextern const void * RTTI_CombatPositionReservation;\r\nextern const void * RTTI_CombatPositionTracker;\r\nextern const void * RTTI_CombatProjectileAimController;\r\nextern const void * RTTI_CombatProjectileDebugData;\r\nextern const void * RTTI_CombatQueuedEvent;\r\nextern const void * RTTI_CombatRangedMovementPathSpeedController;\r\nextern const void * RTTI_CombatReservation;\r\nextern const void * RTTI_CombatReservationMap;\r\nextern const void * RTTI_CombatSearchLockData;\r\nextern const void * RTTI_CombatSearchMap2D;\r\nextern const void * RTTI_CombatSearchMap3D;\r\nextern const void * RTTI_CombatShipGenericPathController;\r\nextern const void * RTTI_CombatShipPursueTargetPathController;\r\nextern const void * RTTI_CombatSoftCoverLocation;\r\nextern const void * RTTI_CombatSpatialGraphPathingDebugData;\r\nextern const void * RTTI_CombatStandardCoverLocation;\r\nextern const void * RTTI_CombatSuppressiveFireBehavior;\r\nextern const void * RTTI_CombatTargetLocation;\r\nextern const void * RTTI_CombatTargetLocationSearch;\r\nextern const void * RTTI_CombatTargetLocationSearchResult;\r\nextern const void * RTTI_CombatTargetMap;\r\nextern const void * RTTI_CombatTargetSelector;\r\nextern const void * RTTI_CombatTargetSelectorFixed;\r\nextern const void * RTTI_CombatTargetSelectorPreferred;\r\nextern const void * RTTI_CombatTargetSelectorRandom;\r\nextern const void * RTTI_CombatTargetSelectorSpaceship;\r\nextern const void * RTTI_CombatTargetSelectorStandard;\r\nextern const void * RTTI_CombatTargetSelectorWorkshopObject;\r\nextern const void * RTTI_CombatTeleportPathController;\r\nextern const void * RTTI_CombatThreat;\r\nextern const void * RTTI_CombatThreatExplosion;\r\nextern const void * RTTI_CombatThreatLOF;\r\nextern const void * RTTI_CombatThreatMap;\r\nextern const void * RTTI_CombatThreatMelee;\r\nextern const void * RTTI_CombatThreatProjectile;\r\nextern const void * RTTI_CombatTrackTargetAimController;\r\nextern const void * RTTI_CombatTunnelPathController;\r\nextern const void * RTTI_CombatTunnelPathingRequestData;\r\nextern const void * RTTI_CombatViewController;\r\nextern const void * RTTI_CombatViewControllerGlance;\r\nextern const void * RTTI_CombatViewControllerPath;\r\nextern const void * RTTI_CombatViewControllerStandard;\r\nextern const void * RTTI_CommandEffect;\r\nextern const void * RTTI_CommandSummonedEffect;\r\nextern const void * RTTI_CompactingStore__MoveCallback;\r\nextern const void * RTTI_CompactingStore__NoopMoveCallback;\r\nextern const void * RTTI_CompressedArchiveFile;\r\nextern const void * RTTI_ConditionVariable;\r\nextern const void * RTTI_ConeProjectile;\r\nextern const void * RTTI_ConfirmNewWithModsCallback;\r\nextern const void * RTTI_ConfirmResetCallback;\r\nextern const void * RTTI_ConnectionTypeCallback;\r\nextern const void * RTTI_Console;\r\nextern const void * RTTI_ConsoleEngine;\r\nextern const void * RTTI_ConsoleLog;\r\nextern const void * RTTI_ConsoleNativeUIMenu;\r\nextern const void * RTTI_ContainerMenu;\r\nextern const void * RTTI_ContainerMenuDataModel;\r\nextern const void * RTTI_ContainerMenuDataModel__ContainerMenuEventShuttle;\r\nextern const void * RTTI_ContainerMenu_CloseMenu;\r\nextern const void * RTTI_ContainerMenu_HideModel;\r\nextern const void * RTTI_ContainerMenu_Jettison;\r\nextern const void * RTTI_ContainerMenu_LoadModel;\r\nextern const void * RTTI_ContainerMenu_OpenRefuelMenu;\r\nextern const void * RTTI_ContainerMenu_SetMouseOverModel;\r\nextern const void * RTTI_ContainerMenu_TakeAll;\r\nextern const void * RTTI_ContainerMenu_ToggleEquip;\r\nextern const void * RTTI_ContainerMenu_TransferAllResources;\r\nextern const void * RTTI_ContainerMenu_TransferItem;\r\nextern const void * RTTI_ControlMap;\r\nextern const void * RTTI_ControlMapDataModel;\r\nextern const void * RTTI_ControllerInternalState;\r\nextern const void * RTTI_ConvertBoneToVar;\r\nextern const void * RTTI_ConvertBoneToVarInstance;\r\nextern const void * RTTI_CopyBoneWeights;\r\nextern const void * RTTI_CopyBoneWeightsInstance;\r\nextern const void * RTTI_CraftingInfoCardDataModel;\r\nextern const void * RTTI_CraftingInfoCardDataModel__CraftingItemInfoCardEventShuttle;\r\nextern const void * RTTI_CraftingMenuCommon;\r\nextern const void * RTTI_CraftingMenu_CraftItem;\r\nextern const void * RTTI_CraftingMenu_ExitBench;\r\nextern const void * RTTI_CraftingMenu_Highlight3D;\r\nextern const void * RTTI_CraftingMenu_InstallMod;\r\nextern const void * RTTI_CraftingMenu_RenameItem;\r\nextern const void * RTTI_CraftingMenu_RevertHighlight;\r\nextern const void * RTTI_CraftingMenu_RevertedModdedItem;\r\nextern const void * RTTI_CraftingMenu_SelectedMod;\r\nextern const void * RTTI_CraftingMenu_SelectedModSlot;\r\nextern const void * RTTI_CraftingMenu_SelectedModdableItem;\r\nextern const void * RTTI_CraftingMenu_SelectedRecipe;\r\nextern const void * RTTI_CraftingMenu_SetInspectControls;\r\nextern const void * RTTI_CraftingMenu_ToggleTracking;\r\nextern const void * RTTI_CraftingMenu_ViewingModdableItem;\r\nextern const void * RTTI_CraftingRecipesDataModel;\r\nextern const void * RTTI_CraftingRecipesDataModel__CraftingRecipesEventShuttle;\r\nextern const void * RTTI_CraftingRequirementsDataModel;\r\nextern const void * RTTI_CraftingRequirementsDataModel__CraftingRequirementsEventShuttle;\r\nextern const void * RTTI_CreateNavigationGridTask;\r\nextern const void * RTTI_CreationData;\r\nextern const void * RTTI_CreationRendererPrivate__AddProbeBorderRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__AddScatteringOrderRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__AllocateSkinningBuffersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__BindlessArray;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__BindlessBufferArray;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__BindlessTextureArray;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__CmdPool;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__CmdPoolDx12;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__IDynamicResolution;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__PipelineDx12;\r\nextern const void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__ResourceUploader__Impl;\r\nextern const void * RTTI_CreationRendererPrivate__ArtValidationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__AtmosphericScatteringRenderGraphBase;\r\nextern const void * RTTI_CreationRendererPrivate__AtmosphericScatteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BRDFIntegrationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BakeSHBasisRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BinkMovieDrawRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BinkMovieSubgraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BinkUpdatePlanesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendAllReflectionProbesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendProbeRayRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendReflectionProbeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendedDecalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendedDecal_OptionalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendedDecal_OverwriteMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlendedDecalsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurHeightfieldHorizontalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurHeightfieldVerticalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurSpaceGlareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurTerrainHeightClipmapHorizontalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurTerrainHeightClipmapVerticalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurredMipChain_idTech7RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BlurredMipchainSetup_idTech7RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BruteForceRaymarchingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BufferReadbackRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__BuildAccelerationStructureRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CRScaleform__CRScaleformThreadCommandQueue;\r\nextern const void * RTTI_CreationRendererPrivate__CelestialBodiesGeometryRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CelestialBodiesLightingAndCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CelestialBodiesMultiLayerDecalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CelestialBodiesPrepareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CelestialBodiesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ChargenMorphService;\r\nextern const void * RTTI_CreationRendererPrivate__ClearCubemapCaptureArrayRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ClearFallbackCubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ClearRenderGraphOutputRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ClearShadowMapGroupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ClearShadowMapsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ClearSkyCubemapHistogramRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ClearThinDeferredGBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CloudCardsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CloudLayersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CloudsHalfResCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CloudsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ColorGradingMergeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CompositeAdditiveHalfResOITParticlesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CompositeHalfResOITParticlesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CompositeMomentBasedOITRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeLightInfluenceRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeMinMaxShadowMapLevelRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeMinMaxShadowMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeSHCoefRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeScatterRadianceRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeScatteringOrderRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeSkyCubemapHistogramRenderpass;\r\nextern const void * RTTI_CreationRendererPrivate__ComputeSkyCubemapLuminanceDataRenderpass;\r\nextern const void * RTTI_CreationRendererPrivate__ContrastAdaptiveSharpeningRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyAtmosScatteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyAtmosScatteringWithStarfieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyHighOrderScatteringLUTRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyIntegrationToTempLUTRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyLightInfluenceRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyScreenSizeToReadBackRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopySectorIntoHeightfieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyToColorWithoutHighlightRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyToRenderGraphOutputRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyWithShaderLetterboxedRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CopyWithShaderRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__CubemapBackgroundRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DLSSFrameGenerationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DLSSFrameGenerationUIRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DLSSProduceInputsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DLSSUpscaleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DeDitherRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DeferredCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DeferredGBufferOptionalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DeferredGBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DeferredGBufferTranslucentRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthDownsampleAvgRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthDownsampleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthMVFixupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthMVFixupStandardRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldCoCBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldCoCRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldDownsampleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldFloodFillBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldHTileMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldTAARenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthOfFieldTapBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DepthPrepassRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DistantAtmospheresRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DistortionBaseRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DistortionCalculateColorRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DistortionOutputRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DistortionParticlesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DistortionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DoubleVisionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DownsampleHeightfieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DownsampleSpaceGlareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DrawDistantAtmospheresRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DrawDistantAtmospheresTransparencyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DrawGlobalDirtOverlayRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DrawProjectedDecalsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DrawProjectedDecals_HighlightMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DrawProjectedDecals_OptionalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicResolution;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowDepthPyramidRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowDrawMeshInstanceSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowDrawSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowFalseNegativesDrawSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowFilterFocusGeometriesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowFrustumMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowGeometryCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowGeometryOffsetsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowGraph;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowMapBarriersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowMaterialIndexOffsetsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowMeshletCullingFalseNegativesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowMeshletCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowMeshletListBuildFalseNegativesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowMeshletListBuildRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowPrepareDrawParamsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowPrepareGroupedDrawsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowSceneSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowTriangleCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowWithFalseNegativesGraph;\r\nextern const void * RTTI_CreationRendererPrivate__DynamicShadowsMeshInstancePatchPrepareArgsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__EmptyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__EndMultiscatteringIntegrationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__EpipolarSamplingRefineSampleLocationsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__EpipolarSamplingRenderCoordinateTextureRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__EpipolarSamplingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__EpipolarSamplingRenderSliceEndPointsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FSR2ProduceInputsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FSR2UpscaleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FSR3FrameInterpolationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FSR3ProduceUIInputRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FSR3UpscaleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FaceCustomizationCopyMipChainToOutputRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FaceCustomizationMipChainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FaceCustomizationMipChainRoughnessRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FaceCustomizationProduceMipChainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FaceCustomizationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FillCullingDataRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FillHeightfieldCullingDataRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FilmGrainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FilterCulledGeometriesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FilterHeightfieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FirstPersonDepthRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FixupIndirectArgsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FixupSkinningIndirectArgsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FlattenTextureScreensizeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedAlphaOutputRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedCopyToDestRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedCorrectionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedFullResAlwaysRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedMainFullResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedMainHalfResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardBlendedRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ForwardRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FrameInitRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FrameInterpolationSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__FrameRenderGraph;\r\nextern const void * RTTI_CreationRendererPrivate__FrameSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenBlurCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColorRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColor_AlphaFillRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColor_BloomRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColor_CubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColor_DefaultRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColor_MonochromeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenColor_OverlayRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenDownsampleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenScanlineRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__FullScreenTapBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GBufferOverviewRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDataInspectorConvertValuesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDataInspectorDrawQuadsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDataInspectorGenerateIndirectDispatchRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDataInspectorGenerateIndirectDrawRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDataInspectorRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDebugGeometryDrawLinesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDebugGeometryPrepareLinesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDebugGeometryPrintfDraw3DRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDebugGeometryPrintfPrepareBuffersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDebugGeometryRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GPUDebugGeometryResetBuffersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GalaxyStateStarsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GatherGeometryInstancesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GatherHighlightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GatherIndirectRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GatherLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GatherNodeExtraVisualDataRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GatherTransformsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GenerateDepthPyramidBaseRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GenerateDepthPyramidRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GenerateFogMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GenerateGeometryInstanceMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GenerateShadowDepthPyramidRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GenerateShadowDepthPyramidWithMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GeometryCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GeometryCullingShadowsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GeometryParticleBatchDepthRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GeometryParticleBatchRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GeometryRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GlobalDirtOverlayRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__GroupedDynamicShadowMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HDRColorGradingMergeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HDRCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HDRHistogramClearRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HDRHistogramReadLightAdaptRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HDRSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__HeightFieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HeightFieldSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HeightfieldSystemRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HighlightMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HighlightPrepareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__HighlightRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImGuiEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__ImageCaptureData;\r\nextern const void * RTTI_CreationRendererPrivate__ImageCaptureHDR_CopyRenderTargetRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageCapture_CopyRenderTargetRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageCapture_CopyRenderTarget_UseDepthAsAlphaRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageCapture_IconGenerationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageProcessCreateResourceMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageProcessEdgeDetectionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageProcessMedianBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageProcessNearestNeighborUpscaleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ImageProcessRenderGraph;\r\nextern const void * RTTI_CreationRendererPrivate__IndirectRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__IndirectSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InitializeInscatterOrderRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InitializeMinMaxShadowMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InjectDistantAtmosphereLUTRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InjectMotionVectorHistoryCurrentDynamicResolutionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InjectPreviousDepthBufferCurrentDynamicResolutionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InjectSpaceGlareCurrentFrameRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InjectTerrainShadowResourcesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__InterpolateIrradianceRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LensFlareComputeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LensFlareDrawRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LensFlareSystemRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LensFlare_AlphaBlendRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LensFlare_VisibilityRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LightCoarseCullingCompactionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LightCoarseCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LightInfluenceDepthMinRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LightInfluenceSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__LoadMenuHiddenEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__LogicalCell;\r\nextern const void * RTTI_CreationRendererPrivate__MainRenderGraph;\r\nextern const void * RTTI_CreationRendererPrivate__MeshEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchDepthRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchOcclusionCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchPrepareArgsBaseRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchPrepareArgsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchPrepareArgsShadowRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshInstancePatchShadowRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshLODDB;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletBuildIndexBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletFrustumCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletListBuildRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletMaterialOffsetsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletOcclusionCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletPrepareArgsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletPrepareDrawParamsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletProduceResourcesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletProduceResourcesShadowsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletReadbackIndexCountRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MeshletTriangleCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__Messaging__Dependency__GeneralDependencyNode;\r\nextern const void * RTTI_CreationRendererPrivate__Messaging__Dependency__InternalDependencyGraphHolder;\r\nextern const void * RTTI_CreationRendererPrivate__Messaging__Dependency__InternalProcessorType;\r\nextern const void * RTTI_CreationRendererPrivate__MomentBasedOITRenderAdditiveTransparencyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MomentBasedOITRenderMomentsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MomentBasedOITRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MomentBasedOITRenderTransparencyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MorphDB;\r\nextern const void * RTTI_CreationRendererPrivate__MorphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MorphSystemEndFrameRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MotionBlurMaxTileVelocityRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MotionBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MotionBlurSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__MotionVectorCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__MultiscatteringIntegrationStepRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__NV_Streamline__StreamlineEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__PartialClearColorBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel0RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel1RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel2RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel3RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleDataPreFilterRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleLightingClearBuffersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleLightingGenerateIndirectBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticleLightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesCopyToDestRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesCorrectionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesMainFullResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesMainHalfResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesMomentBasedOITRenderMomentsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesMomentBasedOITRenderTransparencyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ParticlesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PauseMenuExitedEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__PointCloudCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PointCloudDrawRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PointCloudEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__PostEffectPreUpscaleRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PostSharpenRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PostUpscaleImageSpaceSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__PostUpscaleSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__PreUpscaleImageSpaceSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__PrecomputeAtmosphericScatteringDataRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrecomputeAtmosphericScatteringTransmittanceRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrecomputeNetDensityToAtmTopRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrecomputePerlinNoise3DRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrecomputeSingleScatteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrefilterCubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareAtmosphericScatteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareEndFrameRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareFirstPersonSkinningRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareProjectedDecalsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareReflectionProbeDataRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareSkinningRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareSkyCubemapCelestialBodiesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__PrepareSkyCubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeClassifyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeCoarseLightCullingCompactionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeCoarseLightCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeFaceSceneSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeGridGPUCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeLightCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProbeSystemRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceAndClearHeightfieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceDynamicShadowMapDataRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITForwardHalfResTargetRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITParticleTargetsHalfResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITTargetsAlwaysFullResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITTargetsHalfResRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITTargetsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceSceneDebugBuffersSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceShadingRateImageRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceShadowMapCullingResourcesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceShadowMaskFrustumRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProduceThinGBufferResourcesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ProjectedDecalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RadialBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RayTraceProbeComputeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RayTraceProbeNonRandomRaysComputeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RaymarchSampleLocationsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RaymarchShadowedSampleLocationsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RaymarchUsingMinMaxShadowMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeBlendingSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeClearThinDeferredGBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeComputeSHRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeCopyDepth;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeCopySky;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeFaceSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeGeometryCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeGeometryOffsetsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeLightCoarseCullingCompactionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeLightCoarseCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeMaterialIndexOffsetsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeMeshletCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeMeshletListBuildRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeMipChainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeOcclusionCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbePrefilterCubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbePrepareDrawParamsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbePrepareGroupedDrawsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeSceneSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeShadowMapSceneSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeTerrainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ReflectionProbeTriangleCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RefractionBlurRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RefractionDownsample0RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RefractionDownsampleMipChainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RefractionMaskDilationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RefractionMaskGenRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RefractionMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RenderCoarseUnshadowedInscatteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RenderGraph;\r\nextern const void * RTTI_CreationRendererPrivate__RenderGraphEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RenderSceneSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__RenderSliceUVDirAndOriginRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__RenderViewSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__ReprojectShadingRateImageRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ResetCullingMemoryRequestHandler;\r\nextern const void * RTTI_CreationRendererPrivate__ResourceLifecycleJobSite;\r\nextern const void * RTTI_CreationRendererPrivate__SAOEmptyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SAORenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ScaleformCompositeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ScaleformEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__ScaleformRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ScaleformText2DRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ScaleformTextRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ScaleformToTextureRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SceneSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ScreenSpaceShadowsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SeparableSSS_HorizontalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SeparableSSS_VerticalRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ServiceLocator;\r\nextern const void * RTTI_CreationRendererPrivate__SetupAtmosphericScatteringBuffersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SetupDynamicShadowRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowInstanceBarriersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowManagerEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowMapInstanceRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowMapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowMapSceneSetupRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowMapSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ShadowSubGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SharedIndexBuffer;\r\nextern const void * RTTI_CreationRendererPrivate__SharedMeshResourcesRegistry;\r\nextern const void * RTTI_CreationRendererPrivate__SharedMeshletCullingDataBuffer;\r\nextern const void * RTTI_CreationRendererPrivate__SiteLocator;\r\nextern const void * RTTI_CreationRendererPrivate__SkinnedDecalPrepareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkinningRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkinningSystemEndFrameRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkinningSystemRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyCubemapCelestialBodiesLightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyCubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyCubemapSystemRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyLightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyOcclusionGenerateSHRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyOcclusionMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyOcclusionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SkyOcclusionSystemRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SobelSpaceGlareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SpaceGlareApplyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SpaceGlareCopyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SpaceGlareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SparseGridCell;\r\nextern const void * RTTI_CreationRendererPrivate__SporadicRenderGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldCoarseCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldProcessStarsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldRenderPassBase;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldTiledCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarfieldTiledRenderRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarmapGravityWavesEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__StarmapGravityWavesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__StarmapOrbitsEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__StarmapOrbitsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SubmitAndPresentThread;\r\nextern const void * RTTI_CreationRendererPrivate__SunDiskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SunDiskSkyCubemapRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__SwapChainEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__TemporalAA_idTech7RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainClipmapAndMIMRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainClipmapUpdateRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainDensityUpdateRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainDepthAndShadowsSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainDepthDrawRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainHeightFieldRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainMIMUpdateRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainShadowsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TerrainTileDescriptionUpdateRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ThinDeferredExteriorPixelCountRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ThinDeferredGBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ThinDeferredLightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__ThinDeferredPrepareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7BinLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7CacheIndirectLightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7ClipLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7CoarseBinLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7CoarseIndirectArgsLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7IndirectArgsLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7InitBuffersRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7RenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7ResolveLightBinsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7SampleIndirectLightingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledBinning_idTech7TransformVerticesLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredContactShadowsBlurXRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredContactShadowsBlurYRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredContactShadowsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredLightingDebugVisualizationRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredLightingPrepareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredLightingProcessLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDeferredLightingRecordIndirectArgsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TiledDepthRangeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__TransparencyAwareShadowedScatteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UIRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UnsortedForwardBlendedPostMBOITRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UnsortedForwardBlendedPreCloudsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UnsortedForwardBlendedPreMBOITRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UnwarpEpipolarSamplingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UpdateMotionVectorHistoryRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UpdatePreviousDepthBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UpdateSharedIndexBufferRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__UpscaleSubGraph;\r\nextern const void * RTTI_CreationRendererPrivate__VignetteRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingApplyRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingCullingRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingDistantRaymarchRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingDistantTemporalFilteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingDownsampleDepthRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingGenerateMaterialVolumeRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingIntegrateRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingNearSpatialFilteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingNearTemporalFilteringRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__VolumetricLightingProcessLightsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterDisplacementRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterDisplacement_ConvertNormalsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterDisplacement_InjectionRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterDisplacement_MainRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterDisplacement_PlaceRipplesRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterMVRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterPrepareRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterRenderGraphRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WaterRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WetnessOcclusionMaskRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__WindowEventHandler;\r\nextern const void * RTTI_CreationRendererPrivate__WorldCell;\r\nextern const void * RTTI_CreationRendererPrivate__XeSSProduceInputsRenderPass;\r\nextern const void * RTTI_CreationRendererPrivate__XeSSUpscaleRenderPass;\r\nextern const void * RTTI_CreationRenderer__ImageCaptureExportToFileNode;\r\nextern const void * RTTI_CreationRenderer__MaterialInstance__TextureVisitor;\r\nextern const void * RTTI_CreationRenderer__Messaging__MessageProcessor;\r\nextern const void * RTTI_CreationRenderer__Messaging__StreamedResourceNode;\r\nextern const void * RTTI_CreationRenderer__RendererQualityPref;\r\nextern const void * RTTI_CreationRenderer__RendererQualitySetting;\r\nextern const void * RTTI_CreationRenderer__RendererQualitySettingCollection;\r\nextern const void * RTTI_CreationUninstalledEventListener;\r\nextern const void * RTTI_CreationsLibraryData;\r\nextern const void * RTTI_CreationsLibraryDataModel;\r\nextern const void * RTTI_CreationsLibraryDataModel__CreationsLibraryModelEventShuttle;\r\nextern const void * RTTI_CreationsLibraryEntryData;\r\nextern const void * RTTI_CreditsDataModel;\r\nextern const void * RTTI_CreditsDataModel__CreditsDataModelEventShuttle;\r\nextern const void * RTTI_CreditsMenu;\r\nextern const void * RTTI_CrewExtraData;\r\nextern const void * RTTI_CriticallyDampenVariable;\r\nextern const void * RTTI_CriticallyDampenVariableInstance;\r\nextern const void * RTTI_CrowdInhibitNullStrategy;\r\nextern const void * RTTI_CrowdInhibitStrategyDefault;\r\nextern const void * RTTI_CrowdInhibitStrategyDisable;\r\nextern const void * RTTI_CrowdManager;\r\nextern const void * RTTI_CrowdWallaBubble;\r\nextern const void * RTTI_CullFurnitureBoneHandler;\r\nextern const void * RTTI_CullWeaponsHandler;\r\nextern const void * RTTI_CumulativeAnimation;\r\nextern const void * RTTI_CumulativeAnimationInstance;\r\nextern const void * RTTI_CureEffect;\r\nextern const void * RTTI_CursorMenu;\r\nextern const void * RTTI_CursorMenu__CursorGameEventShuttle;\r\nextern const void * RTTI_CursorMoveEvent;\r\nextern const void * RTTI_CurvedPathBlender;\r\nextern const void * RTTI_CurvedPathBlenderInstance;\r\nextern const void * RTTI_CustomActorPackageData;\r\nextern const void * RTTI_CustomUtils__HasForceGreetVisitor;\r\nextern const void * RTTI_D3D12MA__BlockMetadata;\r\nextern const void * RTTI_D3D12MA__BlockMetadata_Generic;\r\nextern const void * RTTI_D3D12MA__MemoryBlock;\r\nextern const void * RTTI_D3D12MA__NormalBlock;\r\nextern const void * RTTI_DamageEffect;\r\nextern const void * RTTI_DampenVariable;\r\nextern const void * RTTI_DampenVariableInstance;\r\nextern const void * RTTI_DarknessEffect;\r\nextern const void * RTTI_DataMenu;\r\nextern const void * RTTI_DataMenuDataModel;\r\nextern const void * RTTI_DataMenuDataModel__DataMenuEventShuttle;\r\nextern const void * RTTI_DataMenuInventoryItem;\r\nextern const void * RTTI_DataMenuPersistentDataModel;\r\nextern const void * RTTI_DataMenuPersistentDataModel__DataMenuPersistentDataEventShuttle;\r\nextern const void * RTTI_DataMenu_CloseMenu;\r\nextern const void * RTTI_DataMenu_ClosedForSubMenu;\r\nextern const void * RTTI_DataMenu_Missions;\r\nextern const void * RTTI_DataMenu_OpenPauseMenu;\r\nextern const void * RTTI_DataMenu_PlotToLocation;\r\nextern const void * RTTI_DataMenu_Reopened;\r\nextern const void * RTTI_DataMenu_SelectedAlmanacMenu;\r\nextern const void * RTTI_DataMenu_SelectedAttributesMenu;\r\nextern const void * RTTI_DataMenu_SelectedInventoryMenu;\r\nextern const void * RTTI_DataMenu_SelectedMapMenu;\r\nextern const void * RTTI_DataMenu_SelectedPowersMenu;\r\nextern const void * RTTI_DataMenu_SelectedShipMenu;\r\nextern const void * RTTI_DataMenu_SelectedStatusMenu;\r\nextern const void * RTTI_DataMenu_SetMenuForQuickEntry;\r\nextern const void * RTTI_DataMenu_SetPaperDollActive;\r\nextern const void * RTTI_DataMenu_StartCloseAnim;\r\nextern const void * RTTI_DataSlateButtons;\r\nextern const void * RTTI_DataSlateButtons_acceptClicked;\r\nextern const void * RTTI_DataSlateButtons_cancelClicked;\r\nextern const void * RTTI_DataSlateMenu;\r\nextern const void * RTTI_DataSlateMenu__DataSlateData;\r\nextern const void * RTTI_DataSlateMenu__DataSlateEventShuttle;\r\nextern const void * RTTI_DataSlateMenu_playSFX;\r\nextern const void * RTTI_DataSlateMenu_toggleAudio;\r\nextern const void * RTTI_DeathEmoteHandler;\r\nextern const void * RTTI_DeathStopHandler;\r\nextern const void * RTTI_DefaultCollection;\r\nextern const void * RTTI_DefaultMessageBoxCallback;\r\nextern const void * RTTI_DeferredDeletion__IDeferredDeleter;\r\nextern const void * RTTI_DeferredDeletion__IGCService;\r\nextern const void * RTTI_DemoralizeEffect;\r\nextern const void * RTTI_DependentAnimationGraphManagerHolder;\r\nextern const void * RTTI_DescriptionBox;\r\nextern const void * RTTI_DesyncInteractionHandler;\r\nextern const void * RTTI_DetectLifeEffect;\r\nextern const void * RTTI_DetectionCollector;\r\nextern const void * RTTI_DetectionDebugData;\r\nextern const void * RTTI_DetectionState;\r\nextern const void * RTTI_DeviceChangeEvent;\r\nextern const void * RTTI_DeviceChangeHandler;\r\nextern const void * RTTI_DeviceConnectEvent;\r\nextern const void * RTTI_DialogueCameraState;\r\nextern const void * RTTI_DialogueMenu;\r\nextern const void * RTTI_DialogueMenu_CompleteExit;\r\nextern const void * RTTI_DialogueMenu_OnDialogueSelect;\r\nextern const void * RTTI_DialogueMenu_OnListVisibilityChange;\r\nextern const void * RTTI_DialogueMenu_OnPersuasionAutoWin;\r\nextern const void * RTTI_DialogueMenu_RequestExit;\r\nextern const void * RTTI_DialogueMenu_RequestSkipDialogue;\r\nextern const void * RTTI_DialoguePackage;\r\nextern const void * RTTI_DialogueUIDataModel;\r\nextern const void * RTTI_DialogueUIDataModel__DialogueData;\r\nextern const void * RTTI_DialogueUIDataModel__DialogueEntryData;\r\nextern const void * RTTI_DialogueUIDataModel__DialogueListData;\r\nextern const void * RTTI_DialogueUIDataModel__DialogueUIDataEventShuttle;\r\nextern const void * RTTI_DialogueUIDataModel__PersuasionEntryData;\r\nextern const void * RTTI_DialogueUIDataModel__PersuasionListData;\r\nextern const void * RTTI_DialogueUIDataModel__PersuasionPointsData;\r\nextern const void * RTTI_DirectAtNode;\r\nextern const void * RTTI_DirectAtNodeInstance;\r\nextern const void * RTTI_DisableCharacterBumperHandler;\r\nextern const void * RTTI_DisableCharacterControllerHandler;\r\nextern const void * RTTI_DisableCharacterPitchHandler;\r\nextern const void * RTTI_DisableCollisionHandler;\r\nextern const void * RTTI_DisarmEffect;\r\nextern const void * RTTI_DisconnectHandler;\r\nextern const void * RTTI_DisguiseEffect;\r\nextern const void * RTTI_DisguiseEffect__DetectionChecker;\r\nextern const void * RTTI_DispelEffect;\r\nextern const void * RTTI_DiveBombPathController;\r\nextern const void * RTTI_DoNotInterruptAnimationHandler;\r\nextern const void * RTTI_DocAcceptDataModel;\r\nextern const void * RTTI_DocAcceptDataModel__DocAcceptEventShuttle;\r\nextern const void * RTTI_DocAcceptMenu;\r\nextern const void * RTTI_DocAcceptMenu_Accept;\r\nextern const void * RTTI_DoorObstacleAdapter;\r\nextern const void * RTTI_DownloadAll;\r\nextern const void * RTTI_DownloadProgressBar;\r\nextern const void * RTTI_DownloadableContent;\r\nextern const void * RTTI_DownloadingPopUp;\r\nextern const void * RTTI_DropResourcesEffect;\r\nextern const void * RTTI_DrugsCraftingMenu;\r\nextern const void * RTTI_DualDirectAtNode;\r\nextern const void * RTTI_DualDirectAtNodeInstance;\r\nextern const void * RTTI_DualValueModifierEffect;\r\nextern const void * RTTI_DynamicAnimationNode;\r\nextern const void * RTTI_DynamicAnimationNodeInstance;\r\nextern const void * RTTI_DynamicGraphReference;\r\nextern const void * RTTI_DynamicGraphReferenceInstance;\r\nextern const void * RTTI_DynamicIdleDataSingletonHelper;\r\nextern const void * RTTI_DynamicNavMeshTask;\r\nextern const void * RTTI_DynamicNavMeshTaskCellRemap;\r\nextern const void * RTTI_DynamicNavMeshTaskStitching;\r\nextern const void * RTTI_DynamicNavmesh;\r\nextern const void * RTTI_DynamicNavmeshService;\r\nextern const void * RTTI_EffectArchetypes__MainStatusHandler;\r\nextern const void * RTTI_EffectSequenceMap;\r\nextern const void * RTTI_EffectSequenceNode;\r\nextern const void * RTTI_EffectSequenceNodeInstance;\r\nextern const void * RTTI_EffectSequence__EffectSequenceManager;\r\nextern const void * RTTI_EffectSequence__IFormInitialized;\r\nextern const void * RTTI_EffectSetting;\r\nextern const void * RTTI_EjectShellCasingHandler;\r\nextern const void * RTTI_EmittanceManagerAgent;\r\nextern const void * RTTI_EmitterProjectile;\r\nextern const void * RTTI_EmptyDependencyFormPointerMapValue;\r\nextern const void * RTTI_EnableCharacterBumperHandler;\r\nextern const void * RTTI_EnableCharacterControllerHandler;\r\nextern const void * RTTI_EnableCharacterPitchHandler;\r\nextern const void * RTTI_EnableCollisionHandler;\r\nextern const void * RTTI_EnchantmentItem;\r\nextern const void * RTTI_EndGameCreditsMenu;\r\nextern const void * RTTI_EndSecurityMinigameHandler;\r\nextern const void * RTTI_EndSummonAnimationHandler;\r\nextern const void * RTTI_EnhanceWeaponEffect;\r\nextern const void * RTTI_EnsureAliasCanBePickpocketedFunc;\r\nextern const void * RTTI_EquippedItemData;\r\nextern const void * RTTI_EquippedSpell__Data;\r\nextern const void * RTTI_EquippedWeapon__AimModule;\r\nextern const void * RTTI_EquippedWeapon__AmmunitionModule;\r\nextern const void * RTTI_EquippedWeapon__AudioModule;\r\nextern const void * RTTI_EquippedWeapon__Data;\r\nextern const void * RTTI_EquippedWeapon__IModule;\r\nextern const void * RTTI_EquippedWeapon__MeleeAttackModule;\r\nextern const void * RTTI_EquippedWeapon__PowerModule;\r\nextern const void * RTTI_EquippedWeapon__RangedAttackModule;\r\nextern const void * RTTI_EquippedWeapon__VariableRangeModule;\r\nextern const void * RTTI_EquippedWeapon__VisualModule;\r\nextern const void * RTTI_EtherealizationEffect;\r\nextern const void * RTTI_EvaluateConditionVariable;\r\nextern const void * RTTI_EvaluateConditionVariableInstance;\r\nextern const void * RTTI_EventController;\r\nextern const void * RTTI_EventControllerInstance;\r\nextern const void * RTTI_EventDispatcherBackend;\r\nextern const void * RTTI_EventFromRange;\r\nextern const void * RTTI_EventFromRangeInstance;\r\nextern const void * RTTI_EveryNEvents;\r\nextern const void * RTTI_EveryNEventsInstance;\r\nextern const void * RTTI_ExecuteOnAliasedRefFunc;\r\nextern const void * RTTI_ExitChargen_ConfirmCallback;\r\nextern const void * RTTI_ExitVehicleEvent;\r\nextern const void * RTTI_Explosion;\r\nextern const void * RTTI_ExplosionClosestHitCollector;\r\nextern const void * RTTI_Explosion__Manager;\r\nextern const void * RTTI_ExplosiveIndicatorDataModel;\r\nextern const void * RTTI_ExplosiveIndicatorDataModel__ExplosiveIndicatorEventShuttle;\r\nextern const void * RTTI_ExternalDataSourceMainStatusHandler;\r\nextern const void * RTTI_ExtraAcousticParent;\r\nextern const void * RTTI_ExtraAction;\r\nextern const void * RTTI_ExtraActivateRef;\r\nextern const void * RTTI_ExtraActivateText;\r\nextern const void * RTTI_ExtraActorCause;\r\nextern const void * RTTI_ExtraActorValueStorage;\r\nextern const void * RTTI_ExtraAliasInstanceArray;\r\nextern const void * RTTI_ExtraAmmo;\r\nextern const void * RTTI_ExtraAnimGraphManager;\r\nextern const void * RTTI_ExtraAnimGraphPreload;\r\nextern const void * RTTI_ExtraAnimSounds;\r\nextern const void * RTTI_ExtraAshPileRef;\r\nextern const void * RTTI_ExtraAttachRef;\r\nextern const void * RTTI_ExtraAttachRefChildren;\r\nextern const void * RTTI_ExtraAttachedArrows3D;\r\nextern const void * RTTI_ExtraBadPosition;\r\nextern const void * RTTI_ExtraBendableSplineParams;\r\nextern const void * RTTI_ExtraBlueprintPartOriginData;\r\nextern const void * RTTI_ExtraBody;\r\nextern const void * RTTI_ExtraBoneScaleMap;\r\nextern const void * RTTI_ExtraBountyCrimeList;\r\nextern const void * RTTI_ExtraCachedScale;\r\nextern const void * RTTI_ExtraCalcedPackIn;\r\nextern const void * RTTI_ExtraCanTalkToPlayer;\r\nextern const void * RTTI_ExtraCannotWear;\r\nextern const void * RTTI_ExtraCell3D;\r\nextern const void * RTTI_ExtraCellAcousticSpace;\r\nextern const void * RTTI_ExtraCellEnvMap;\r\nextern const void * RTTI_ExtraCellGlobalDirtLayer;\r\nextern const void * RTTI_ExtraCellImageSpace;\r\nextern const void * RTTI_ExtraCellMusicType;\r\nextern const void * RTTI_ExtraCellSkyRegion;\r\nextern const void * RTTI_ExtraCellWaterEnvMap;\r\nextern const void * RTTI_ExtraCellWaterType;\r\nextern const void * RTTI_ExtraCharge;\r\nextern const void * RTTI_ExtraCollisionData;\r\nextern const void * RTTI_ExtraCombatStyle;\r\nextern const void * RTTI_ExtraConstrainedDecalData;\r\nextern const void * RTTI_ExtraCount;\r\nextern const void * RTTI_ExtraCreatureAwakeSound;\r\nextern const void * RTTI_ExtraCulledBone;\r\nextern const void * RTTI_ExtraCulledSubsegment;\r\nextern const void * RTTI_ExtraDirectAtTarget;\r\nextern const void * RTTI_ExtraDroppedItemList;\r\nextern const void * RTTI_ExtraEditorID;\r\nextern const void * RTTI_ExtraEditorRefMoveData;\r\nextern const void * RTTI_ExtraEmittanceSource;\r\nextern const void * RTTI_ExtraEnableStateChildren;\r\nextern const void * RTTI_ExtraEnableStateParent;\r\nextern const void * RTTI_ExtraEnchantment;\r\nextern const void * RTTI_ExtraEncounterZone;\r\nextern const void * RTTI_ExtraEssentialProtected;\r\nextern const void * RTTI_ExtraExteriorReflectionProbeAdjustmentVolume;\r\nextern const void * RTTI_ExtraExternalEmittanceData;\r\nextern const void * RTTI_ExtraFXPickNodes;\r\nextern const void * RTTI_ExtraFactionChanges;\r\nextern const void * RTTI_ExtraFavorCost;\r\nextern const void * RTTI_ExtraFavorite;\r\nextern const void * RTTI_ExtraFlags;\r\nextern const void * RTTI_ExtraFogVolume;\r\nextern const void * RTTI_ExtraFollower;\r\nextern const void * RTTI_ExtraFollowerSwimBreadcrumbs;\r\nextern const void * RTTI_ExtraForcedLandingMarker;\r\nextern const void * RTTI_ExtraForcedTarget;\r\nextern const void * RTTI_ExtraFriendHits;\r\nextern const void * RTTI_ExtraFromAlias;\r\nextern const void * RTTI_ExtraFurnitureEntryData;\r\nextern const void * RTTI_ExtraGeometryDirtynessScale;\r\nextern const void * RTTI_ExtraGhost;\r\nextern const void * RTTI_ExtraGlobal;\r\nextern const void * RTTI_ExtraGroupedPackin;\r\nextern const void * RTTI_ExtraGuardedRefData;\r\nextern const void * RTTI_ExtraHasNoRumors;\r\nextern const void * RTTI_ExtraHavok;\r\nextern const void * RTTI_ExtraHeadTrackingWeight;\r\nextern const void * RTTI_ExtraHeadingTarget;\r\nextern const void * RTTI_ExtraHealth;\r\nextern const void * RTTI_ExtraHorse;\r\nextern const void * RTTI_ExtraIgnoredAttractKeywords;\r\nextern const void * RTTI_ExtraIgnoredBySandbox;\r\nextern const void * RTTI_ExtraInitActions;\r\nextern const void * RTTI_ExtraInputEnableLayer;\r\nextern const void * RTTI_ExtraInstanceData;\r\nextern const void * RTTI_ExtraInteraction;\r\nextern const void * RTTI_ExtraInvestedGold;\r\nextern const void * RTTI_ExtraItemDropper;\r\nextern const void * RTTI_ExtraKeywords;\r\nextern const void * RTTI_ExtraLargeRefOwnerCells;\r\nextern const void * RTTI_ExtraLastFinishedSequence;\r\nextern const void * RTTI_ExtraLegendary;\r\nextern const void * RTTI_ExtraLevCreaModifier;\r\nextern const void * RTTI_ExtraLeveledBaseObject;\r\nextern const void * RTTI_ExtraLeveledCreature;\r\nextern const void * RTTI_ExtraLeveledItem;\r\nextern const void * RTTI_ExtraLight;\r\nextern const void * RTTI_ExtraLightAreaData;\r\nextern const void * RTTI_ExtraLightBarndoorData;\r\nextern const void * RTTI_ExtraLightColorData;\r\nextern const void * RTTI_ExtraLightData;\r\nextern const void * RTTI_ExtraLightFlickerData;\r\nextern const void * RTTI_ExtraLightGoboData;\r\nextern const void * RTTI_ExtraLightLayerData;\r\nextern const void * RTTI_ExtraLightRoundnessData;\r\nextern const void * RTTI_ExtraLightStaticShadowMapData;\r\nextern const void * RTTI_ExtraLightVolumetricData;\r\nextern const void * RTTI_ExtraLinkedChildrenAliasInstanceArray;\r\nextern const void * RTTI_ExtraLinkedRef;\r\nextern const void * RTTI_ExtraLinkedRefChildren;\r\nextern const void * RTTI_ExtraLitWaterRefs;\r\nextern const void * RTTI_ExtraLocation;\r\nextern const void * RTTI_ExtraLocationRefType;\r\nextern const void * RTTI_ExtraLock;\r\nextern const void * RTTI_ExtraLockList;\r\nextern const void * RTTI_ExtraMagicCaster;\r\nextern const void * RTTI_ExtraMapMarker;\r\nextern const void * RTTI_ExtraMaterialSwap;\r\nextern const void * RTTI_ExtraMissingRefIDs;\r\nextern const void * RTTI_ExtraModIndex;\r\nextern const void * RTTI_ExtraModRank;\r\nextern const void * RTTI_ExtraModelSwap;\r\nextern const void * RTTI_ExtraNavMeshPortal;\r\nextern const void * RTTI_ExtraNorthRotation;\r\nextern const void * RTTI_ExtraObjectBreakable;\r\nextern const void * RTTI_ExtraObjectSavedDynamicIdles;\r\nextern const void * RTTI_ExtraObjectSavedUnrecoverableSubgraphs;\r\nextern const void * RTTI_ExtraOcclusionPlaneRefData;\r\nextern const void * RTTI_ExtraOpenCloseActivateRef;\r\nextern const void * RTTI_ExtraOriginalBaseObject;\r\nextern const void * RTTI_ExtraOriginalReference;\r\nextern const void * RTTI_ExtraOutfitItem;\r\nextern const void * RTTI_ExtraOwnership;\r\nextern const void * RTTI_ExtraOwningInstance;\r\nextern const void * RTTI_ExtraPackage;\r\nextern const void * RTTI_ExtraPackageData;\r\nextern const void * RTTI_ExtraPackageStartLocation;\r\nextern const void * RTTI_ExtraPatrolRefData;\r\nextern const void * RTTI_ExtraPatrolRefInUseData;\r\nextern const void * RTTI_ExtraPersistentCell;\r\nextern const void * RTTI_ExtraPlacedPlanetContent;\r\nextern const void * RTTI_ExtraPlayerCrimeList;\r\nextern const void * RTTI_ExtraPoison;\r\nextern const void * RTTI_ExtraPowerArmor;\r\nextern const void * RTTI_ExtraPowerArmorPreload;\r\nextern const void * RTTI_ExtraPowerLinks;\r\nextern const void * RTTI_ExtraPrimitive;\r\nextern const void * RTTI_ExtraProceduralInstanceData;\r\nextern const void * RTTI_ExtraProcessMiddleLow;\r\nextern const void * RTTI_ExtraProjectedDecalData;\r\nextern const void * RTTI_ExtraPromotedRef;\r\nextern const void * RTTI_ExtraPropertySheet;\r\nextern const void * RTTI_ExtraRadioData;\r\nextern const void * RTTI_ExtraRadioReceiver;\r\nextern const void * RTTI_ExtraRadioRepeater;\r\nextern const void * RTTI_ExtraRadius;\r\nextern const void * RTTI_ExtraRadiusFalloffExponent;\r\nextern const void * RTTI_ExtraRagDollData;\r\nextern const void * RTTI_ExtraRandomAnimStartTime;\r\nextern const void * RTTI_ExtraRandomTeleportMarker;\r\nextern const void * RTTI_ExtraRangedDistOverride;\r\nextern const void * RTTI_ExtraRank;\r\nextern const void * RTTI_ExtraRefWeaponSounds;\r\nextern const void * RTTI_ExtraReferenceGroup;\r\nextern const void * RTTI_ExtraReferenceHandles;\r\nextern const void * RTTI_ExtraReflectedRefs;\r\nextern const void * RTTI_ExtraReflectorRefs;\r\nextern const void * RTTI_ExtraRefrPath;\r\nextern const void * RTTI_ExtraRefractionProperty;\r\nextern const void * RTTI_ExtraRegionList;\r\nextern const void * RTTI_ExtraReservedMarkers;\r\nextern const void * RTTI_ExtraRoomRefData;\r\nextern const void * RTTI_ExtraRunOncePacks;\r\nextern const void * RTTI_ExtraSavedAnimation;\r\nextern const void * RTTI_ExtraSavedHavokData;\r\nextern const void * RTTI_ExtraSayToTopicInfo;\r\nextern const void * RTTI_ExtraSayTopicInfoOnceADay;\r\nextern const void * RTTI_ExtraScale;\r\nextern const void * RTTI_ExtraSceneData;\r\nextern const void * RTTI_ExtraScriptedAnimDependence;\r\nextern const void * RTTI_ExtraSeed;\r\nextern const void * RTTI_ExtraSeenData;\r\nextern const void * RTTI_ExtraShipArrivalData;\r\nextern const void * RTTI_ExtraShipBlueprintSnapData;\r\nextern const void * RTTI_ExtraShouldWear;\r\nextern const void * RTTI_ExtraSnapLinks;\r\nextern const void * RTTI_ExtraSoul;\r\nextern const void * RTTI_ExtraSound;\r\nextern const void * RTTI_ExtraSoundHook;\r\nextern const void * RTTI_ExtraSourcePackIn;\r\nextern const void * RTTI_ExtraSpawnContainer;\r\nextern const void * RTTI_ExtraStartingPosition;\r\nextern const void * RTTI_ExtraStartingWorldOrCell;\r\nextern const void * RTTI_ExtraTeleport;\r\nextern const void * RTTI_ExtraTeleportName;\r\nextern const void * RTTI_ExtraTempLocationWorldSpace;\r\nextern const void * RTTI_ExtraTerminalMenuBodyTextItems;\r\nextern const void * RTTI_ExtraTerminalMenuItems;\r\nextern const void * RTTI_ExtraTerminalMenuMenuItems;\r\nextern const void * RTTI_ExtraTerminalMenuUnlockedItems;\r\nextern const void * RTTI_ExtraTextDisplayData;\r\nextern const void * RTTI_ExtraTimeLeft;\r\nextern const void * RTTI_ExtraTimeOfDayData;\r\nextern const void * RTTI_ExtraTransitionCellCount;\r\nextern const void * RTTI_ExtraTraversalData;\r\nextern const void * RTTI_ExtraTresPassPackage;\r\nextern const void * RTTI_ExtraUniqueID;\r\nextern const void * RTTI_ExtraUsedMarkers;\r\nextern const void * RTTI_ExtraVoiceType;\r\nextern const void * RTTI_ExtraVolumeData;\r\nextern const void * RTTI_ExtraVolumeReflectionProbe_OffsetIntensity;\r\nextern const void * RTTI_ExtraWaterCurrentZoneData;\r\nextern const void * RTTI_ExtraWaterData;\r\nextern const void * RTTI_ExtraWaterLightRefs;\r\nextern const void * RTTI_ExtraWaterReflectionData;\r\nextern const void * RTTI_ExtraWorkshopSnapping;\r\nextern const void * RTTI_ExtraWwiseSwitchData;\r\nextern const void * RTTI_EyeTrackingOffHandler;\r\nextern const void * RTTI_EyeTrackingOnHandler;\r\nextern const void * RTTI_FACEFX_ACTOR;\r\nextern const void * RTTI_FACEFX_BONESET;\r\nextern const void * RTTI_FOCollisionListener;\r\nextern const void * RTTI_FaceEmotionalIdleHandler;\r\nextern const void * RTTI_FaderMenu;\r\nextern const void * RTTI_FanfareData;\r\nextern const void * RTTI_FanfareMenu;\r\nextern const void * RTTI_FanfareMenu__FanfareEventShuttle;\r\nextern const void * RTTI_FarTravel__Arrival;\r\nextern const void * RTTI_FarTravel__Cruise;\r\nextern const void * RTTI_FarTravel__Departure;\r\nextern const void * RTTI_FarTravel__FarTravelOrbitalUpdateFadeDone;\r\nextern const void * RTTI_FarTravel__FarTravelUnloadNode;\r\nextern const void * RTTI_FarTravel__UpdateGalacticPositions;\r\nextern const void * RTTI_FavoritesManager;\r\nextern const void * RTTI_FavoritesManager__FavoritesData;\r\nextern const void * RTTI_FavoritesManager__FavoritesEntryData;\r\nextern const void * RTTI_FavoritesManager__FavoritesUIDataEventShuttle;\r\nextern const void * RTTI_FavoritesMenu;\r\nextern const void * RTTI_FavoritesMenu_AssignQuickkey;\r\nextern const void * RTTI_FavoritesMenu_UseQuickkey;\r\nextern const void * RTTI_FilterSideBar;\r\nextern const void * RTTI_FindConnectedNavmeshInfosVisitor;\r\nextern const void * RTTI_FindDynamicNeighborsTask;\r\nextern const void * RTTI_FindEffectKeywordOnTargetFunctor;\r\nextern const void * RTTI_FindTriangleForLocationFilter;\r\nextern const void * RTTI_FindTriangleForLocationFilterCheckDeltaZ;\r\nextern const void * RTTI_FindTriangleForLocationTraversableFilter;\r\nextern const void * RTTI_FindTriangleForLocationWaterFilter;\r\nextern const void * RTTI_FireForgetModel;\r\nextern const void * RTTI_FireForgetModel__FireForgetEventShuttle;\r\nextern const void * RTTI_FireParticlesCollidedWithBodiesCallbackTask;\r\nextern const void * RTTI_FireParticlesCollidedWithParticlesCallbackTask;\r\nextern const void * RTTI_FireParticlesExitedSafeRegionCallbackTask;\r\nextern const void * RTTI_FirstPersonState;\r\nextern const void * RTTI_FlameProjectile;\r\nextern const void * RTTI_FleePackage;\r\nextern const void * RTTI_FlightActionEndHandler;\r\nextern const void * RTTI_FlightActionEntryEndHandler;\r\nextern const void * RTTI_FlightActionHandler;\r\nextern const void * RTTI_FlightCameraState;\r\nextern const void * RTTI_FlightCrashLandStartHandler;\r\nextern const void * RTTI_FlightCruisingHandler;\r\nextern const void * RTTI_FlightHoveringHandler;\r\nextern const void * RTTI_FlightLandEndHandler;\r\nextern const void * RTTI_FlightLandHandler;\r\nextern const void * RTTI_FlightLandingHandler;\r\nextern const void * RTTI_FlightPerchingHandler;\r\nextern const void * RTTI_FlightTakeOffHandler;\r\nextern const void * RTTI_Float3LightAnimData;\r\nextern const void * RTTI_Float4LightAnimData;\r\nextern const void * RTTI_FloatLightAnimData;\r\nextern const void * RTTI_FoodCraftingMenu;\r\nextern const void * RTTI_FootIKNode;\r\nextern const void * RTTI_FootIKNodeInstance;\r\nextern const void * RTTI_ForceWeaponFireHandler;\r\nextern const void * RTTI_FormStreamerLoadStorageWrapper;\r\nextern const void * RTTI_FormStreamerSaveStorageWrapper;\r\nextern const void * RTTI_FrameInterpolationSwapChainDX12;\r\nextern const void * RTTI_FreeAdvancedCameraState;\r\nextern const void * RTTI_FreeFlyCameraState;\r\nextern const void * RTTI_FreeTetheredCameraState;\r\nextern const void * RTTI_FreeWalkCameraState;\r\nextern const void * RTTI_FrenzyEffect;\r\nextern const void * RTTI_FurnitureCameraState;\r\nextern const void * RTTI_FurnitureMarkerNavmeshPositionCache;\r\nextern const void * RTTI_GPUCaptureHandler;\r\nextern const void * RTTI_Gallery_Entry;\r\nextern const void * RTTI_GameBIEvents__ClientSettingsBIEvents;\r\nextern const void * RTTI_GameBIEvents__PlayerBIEvents;\r\nextern const void * RTTI_GameMenuBase;\r\nextern const void * RTTI_GameScript__ActorValueEventHandler;\r\nextern const void * RTTI_GameScript__AffinityEventHandler;\r\nextern const void * RTTI_GameScript__AnimCallbackMgr;\r\nextern const void * RTTI_GameScript__BasicEventHandler;\r\nextern const void * RTTI_GameScript__BuilderEventHandler;\r\nextern const void * RTTI_GameScript__ChallengeEventHandler;\r\nextern const void * RTTI_GameScript__CombatEventHandler;\r\nextern const void * RTTI_GameScript__CustomEventHandler;\r\nextern const void * RTTI_GameScript__DataFileHandleReaderWriter;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ContinueRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__DisconnectRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__Event;\r\nextern const void * RTTI_GameScript__DebuggerMessages__NextRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__OutputEvent;\r\nextern const void * RTTI_GameScript__DebuggerMessages__PauseRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ProtocolMessage;\r\nextern const void * RTTI_GameScript__DebuggerMessages__Request;\r\nextern const void * RTTI_GameScript__DebuggerMessages__Response;\r\nextern const void * RTTI_GameScript__DebuggerMessages__SetBreakpointsRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__SetBreakpointsResponse;\r\nextern const void * RTTI_GameScript__DebuggerMessages__StackTraceRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__StackTraceResponse;\r\nextern const void * RTTI_GameScript__DebuggerMessages__StepInRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__StepOutRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__StoppedEvent;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ThreadEvent;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ThreadsRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ThreadsResponse;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ValueRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__ValueResponse;\r\nextern const void * RTTI_GameScript__DebuggerMessages__VariablesRequest;\r\nextern const void * RTTI_GameScript__DebuggerMessages__VariablesResponse;\r\nextern const void * RTTI_GameScript__DebuggerMessages__VersionEvent;\r\nextern const void * RTTI_GameScript__DelayFunctor;\r\nextern const void * RTTI_GameScript__DelayFunctorFactory;\r\nextern const void * RTTI_GameScript__DistanceEventHandler;\r\nextern const void * RTTI_GameScript__FragmentEventHandler;\r\nextern const void * RTTI_GameScript__HandlePolicy;\r\nextern const void * RTTI_GameScript__Internal__AnimationCallbacks;\r\nextern const void * RTTI_GameScript__Internal__LOSDetectionEventData;\r\nextern const void * RTTI_GameScript__Internal__LOSDirectEventData;\r\nextern const void * RTTI_GameScript__Internal__LOSEventData;\r\nextern const void * RTTI_GameScript__InventoryEventHandler;\r\nextern const void * RTTI_GameScript__LOSEventHandler;\r\nextern const void * RTTI_GameScript__Logger;\r\nextern const void * RTTI_GameScript__MenuEventHandler;\r\nextern const void * RTTI_GameScript__ObjectBindPolicy;\r\nextern const void * RTTI_GameScript__PathingCallbackMgr;\r\nextern const void * RTTI_GameScript__Profiler;\r\nextern const void * RTTI_GameScript__QuestCallbackMgr;\r\nextern const void * RTTI_GameScript__RemoteDebugger;\r\nextern const void * RTTI_GameScript__SaveFileHandleReaderWriter;\r\nextern const void * RTTI_GameScript__SavePatcher;\r\nextern const void * RTTI_GameScript__ScriptSpaceCellCreateComplete;\r\nextern const void * RTTI_GameScript__ScriptSpaceshipCreateComplete;\r\nextern const void * RTTI_GameScript__SleepEventHandler;\r\nextern const void * RTTI_GameScript__SoundCallbackMgr;\r\nextern const void * RTTI_GameScript__SpaceshipEventHandler;\r\nextern const void * RTTI_GameScript__Store;\r\nextern const void * RTTI_GameScript__TeleportEventHandler;\r\nextern const void * RTTI_GameScript__TimerEventHandler;\r\nextern const void * RTTI_GameScript__TrackedStatsEventHandler;\r\nextern const void * RTTI_GameScript__WaitEventHandler;\r\nextern const void * RTTI_GameSettingCollection;\r\nextern const void * RTTI_GameUIGlobalFunc;\r\nextern const void * RTTI_GameUIModel;\r\nextern const void * RTTI_GameVM;\r\nextern const void * RTTI_GamebryoSequence;\r\nextern const void * RTTI_GamebryoSequenceInstance;\r\nextern const void * RTTI_GenerateMappingToPointsBufferTask;\r\nextern const void * RTTI_GenerateObstacleTask;\r\nextern const void * RTTI_GenericFrameUpdateOperationsService;\r\nextern const void * RTTI_GetBestAmmoFunctor;\r\nextern const void * RTTI_GetBestCutterFunctor;\r\nextern const void * RTTI_GetBestLightFunctor;\r\nextern const void * RTTI_GetBestWeaponFunctor;\r\nextern const void * RTTI_GetMagicItemDescriptionFunctor;\r\nextern const void * RTTI_GetUpEndHandler;\r\nextern const void * RTTI_GetUpStartHandler;\r\nextern const void * RTTI_GlobalDirtOverlayManager;\r\nextern const void * RTTI_GlobalFunc_CloseAllMenus;\r\nextern const void * RTTI_GlobalFunc_CloseMenu;\r\nextern const void * RTTI_GlobalFunc_PlayMenuSound;\r\nextern const void * RTTI_GlobalFunc_StartGameRender;\r\nextern const void * RTTI_GlobalFunc_UserEvent;\r\nextern const void * RTTI_GraphReferenceNode;\r\nextern const void * RTTI_GraphReferenceNodeInstance;\r\nextern const void * RTTI_GraphicsInfoDataModel;\r\nextern const void * RTTI_GravJumpInitiateCompleteHandler;\r\nextern const void * RTTI_GravJumpSearch;\r\nextern const void * RTTI_GravityWielderEffect;\r\nextern const void * RTTI_GrenadeProjectile;\r\nextern const void * RTTI_GridArray;\r\nextern const void * RTTI_GridCellArray;\r\nextern const void * RTTI_GroundPathPathingNodeGenerator;\r\nextern const void * RTTI_GroundPathRayValidator;\r\nextern const void * RTTI_GuardActorPackageData;\r\nextern const void * RTTI_GuideEffect;\r\nextern const void * RTTI_HUDAmmoCountModel;\r\nextern const void * RTTI_HUDAmmoCountModel__HUDAmmoCountModelShuttle;\r\nextern const void * RTTI_HUDCommandIconData;\r\nextern const void * RTTI_HUDCompassDataModel;\r\nextern const void * RTTI_HUDCrewBuffDataModel;\r\nextern const void * RTTI_HUDCrosshairDataModel;\r\nextern const void * RTTI_HUDCrosshairDataModel__HUDCrosshairEventShuttle;\r\nextern const void * RTTI_HUDDataModel;\r\nextern const void * RTTI_HUDDataModel__HUDDataEventShuttle;\r\nextern const void * RTTI_HUDDirectionalHitIndicatorDataModel;\r\nextern const void * RTTI_HUDEnemyDataModel;\r\nextern const void * RTTI_HUDEnemyDataModel__HUDEnemyEventShuttle;\r\nextern const void * RTTI_HUDExperienceMeterDataModel;\r\nextern const void * RTTI_HUDExperienceMeterDataModel__HUDExperienceMeterEventShuttle;\r\nextern const void * RTTI_HUDJetpackDataModel;\r\nextern const void * RTTI_HUDLocationDataModel;\r\nextern const void * RTTI_HUDMenu;\r\nextern const void * RTTI_HUDMessageDataModel;\r\nextern const void * RTTI_HUDMessagesMenu;\r\nextern const void * RTTI_HUDNotification_MissionActiveWidgetUpdate;\r\nextern const void * RTTI_HUDNotification_OpenDataMenu;\r\nextern const void * RTTI_HUDNotification_OpenMissionMenu;\r\nextern const void * RTTI_HUDNotification_SetMissionActive;\r\nextern const void * RTTI_HUDNotificationsModel;\r\nextern const void * RTTI_HUDNotificationsModel__HUDNotificationsEventShuttle;\r\nextern const void * RTTI_HUDOpacityModel;\r\nextern const void * RTTI_HUDOpacityModel__HUDOpacityEventShuttle;\r\nextern const void * RTTI_HUDRolloverActivationButtonEvent;\r\nextern const void * RTTI_HUDRolloverActivationCompanionListener;\r\nextern const void * RTTI_HUDRolloverActivationCorpseListener;\r\nextern const void * RTTI_HUDRolloverActivationDisplayCaseListener;\r\nextern const void * RTTI_HUDRolloverActivationDoorListener;\r\nextern const void * RTTI_HUDRolloverActivationFallbackListener;\r\nextern const void * RTTI_HUDRolloverActivationLootListener;\r\nextern const void * RTTI_HUDRolloverActivationNPCListener;\r\nextern const void * RTTI_HUDRolloverActivationOutpostItemListener;\r\nextern const void * RTTI_HUDRolloverActivationOutpostListener;\r\nextern const void * RTTI_HUDRolloverActivationOutpostQCListener;\r\nextern const void * RTTI_HUDRolloverActivationQCItemPressEvent;\r\nextern const void * RTTI_HUDRolloverActivationQuickContainerListener;\r\nextern const void * RTTI_HUDRolloverActivationShipContainerListener;\r\nextern const void * RTTI_HUDRolloverActivationTeammateListener;\r\nextern const void * RTTI_HUDRolloverActivationTerminalListener;\r\nextern const void * RTTI_HUDRolloverDataModel;\r\nextern const void * RTTI_HUDSocialCommandData;\r\nextern const void * RTTI_HUDSocialCommandDataModel;\r\nextern const void * RTTI_HUDSocialCommandDataModel__HUDSocialCommandDataEventShuttle;\r\nextern const void * RTTI_HUDStarbornPowersDataModel;\r\nextern const void * RTTI_HUDStarbornPowersDataModel__HUDStarbornPowersEventShuttle;\r\nextern const void * RTTI_HUDStealthDataModel;\r\nextern const void * RTTI_HUDStealthDataModel__HUDStealthEventShuttle;\r\nextern const void * RTTI_HUDSubtitleDataModel;\r\nextern const void * RTTI_HUDSubtitleDataModel__HUDSubtitleEventShuttle;\r\nextern const void * RTTI_HUDVehicleData;\r\nextern const void * RTTI_HUDWatchEffectsModel;\r\nextern const void * RTTI_HUDWatchEffectsModel__HUDWatchEffectsModelShuttle;\r\nextern const void * RTTI_HangarShipSelection_ChangeSystemDisplay;\r\nextern const void * RTTI_HangarShipSelection_RepairShip;\r\nextern const void * RTTI_HangarShipSelection_UpgradeSystem;\r\nextern const void * RTTI_HasSpellVisitor;\r\nextern const void * RTTI_HavokErrorCRTestApp;\r\nextern const void * RTTI_HavokFileStreambufWriter;\r\nextern const void * RTTI_HavokParticleDef__BaseShape;\r\nextern const void * RTTI_HavokParticleDef__BoxShape;\r\nextern const void * RTTI_HavokParticleDef__CapsuleShape;\r\nextern const void * RTTI_HavokParticleDef__ConvexShape;\r\nextern const void * RTTI_HavokParticleDef__CubeShape;\r\nextern const void * RTTI_HavokParticleDef__CylinderShape;\r\nextern const void * RTTI_HavokParticleDef__SphereShape;\r\nextern const void * RTTI_HavokStreambufFactory;\r\nextern const void * RTTI_Hazard;\r\nextern const void * RTTI_HazardTargetFinderHavok;\r\nextern const void * RTTI_HeadTrackingOffHandler;\r\nextern const void * RTTI_HeadTrackingOnHandler;\r\nextern const void * RTTI_HeadTrackingRotationOffHandler;\r\nextern const void * RTTI_HeadTrackingRotationOnHandler;\r\nextern const void * RTTI_HealthDamageFunctor;\r\nextern const void * RTTI_HeapAllocator;\r\nextern const void * RTTI_HelpData;\r\nextern const void * RTTI_HelpDataModel;\r\nextern const void * RTTI_HelpDataModel__HelpDataModelEventShuttle;\r\nextern const void * RTTI_HelpTopicData;\r\nextern const void * RTTI_HerdManager;\r\nextern const void * RTTI_HideSubsegmentHandler;\r\nextern const void * RTTI_HighlightManager;\r\nextern const void * RTTI_HitFrameHandler;\r\nextern const void * RTTI_HorseCameraState;\r\nextern const void * RTTI_HudModeDataModel;\r\nextern const void * RTTI_HudModeDataModel__HUDModeEventShuttle;\r\nextern const void * RTTI_IAIWorldLocation;\r\nextern const void * RTTI_IAIWorldLocationHandle;\r\nextern const void * RTTI_IAimAssistImpl;\r\nextern const void * RTTI_IAnimationEventDataForEachFunctor;\r\nextern const void * RTTI_IAnimationGraphManagerLoadingTask;\r\nextern const void * RTTI_IAnimationStanceData;\r\nextern const void * RTTI_IAnimationStreamWrite;\r\nextern const void * RTTI_IBGSBaseFormData;\r\nextern const void * RTTI_ICheckEndReachedFunctor;\r\nextern const void * RTTI_ICheckEndReachedFunctorMapper;\r\nextern const void * RTTI_ICommandLineHandler;\r\nextern const void * RTTI_IConvexOverlapImpl;\r\nextern const void * RTTI_IConvexOverlapImpl__ShapeInterface;\r\nextern const void * RTTI_IDEvent;\r\nextern const void * RTTI_IDataModel;\r\nextern const void * RTTI_IExplosionFactory;\r\nextern const void * RTTI_IFadeDoneCallback;\r\nextern const void * RTTI_IFormComponentFactoryCreator;\r\nextern const void * RTTI_IFormComponentFactoryCreator__ReserveControl;\r\nextern const void * RTTI_IFormFactory;\r\nextern const void * RTTI_IFormFactory__IFactoryVisitor;\r\nextern const void * RTTI_IHUDRolloverActivationListener;\r\nextern const void * RTTI_IMemoryManagerFile;\r\nextern const void * RTTI_IMemoryManagerFileFactory;\r\nextern const void * RTTI_IMemoryStore;\r\nextern const void * RTTI_IMemoryStoreBase;\r\nextern const void * RTTI_IMenu;\r\nextern const void * RTTI_IMessageBoxCallback;\r\nextern const void * RTTI_IMovementAvoidanceManager;\r\nextern const void * RTTI_IMovementControllerNPCFunctor;\r\nextern const void * RTTI_IMovementDirectControl;\r\nextern const void * RTTI_IMovementFormIDManager;\r\nextern const void * RTTI_IMovementPDControllerAccess;\r\nextern const void * RTTI_IMovementParameters;\r\nextern const void * RTTI_IMovementPlannerDirectControl;\r\nextern const void * RTTI_IMovementPlannerSetArbitration;\r\nextern const void * RTTI_IMovementPlayIdleResult;\r\nextern const void * RTTI_IMovementQueryFlight;\r\nextern const void * RTTI_IMovementQueryPathFollowing;\r\nextern const void * RTTI_IMovementQueryState;\r\nextern const void * RTTI_IMovementQueryStaticAvoider;\r\nextern const void * RTTI_IMovementQueryTweener;\r\nextern const void * RTTI_IMovementQueryTweenerState;\r\nextern const void * RTTI_IMovementSetCorrectionData;\r\nextern const void * RTTI_IMovementSetGoal;\r\nextern const void * RTTI_IMovementSetPathFollowing;\r\nextern const void * RTTI_IMovementSetRollTarget;\r\nextern const void * RTTI_IMovementSetSprinting;\r\nextern const void * RTTI_IMovementSetState;\r\nextern const void * RTTI_IMovementSetStaticAvoider;\r\nextern const void * RTTI_IMovementSetWarp;\r\nextern const void * RTTI_INIPrefSetting;\r\nextern const void * RTTI_INIPrefSettingCollection;\r\nextern const void * RTTI_INISettingCollection;\r\nextern const void * RTTI_INavmeshSearchFilterSet;\r\nextern const void * RTTI_IOControlNode;\r\nextern const void * RTTI_IOManager;\r\nextern const void * RTTI_IOManagerThread;\r\nextern const void * RTTI_IOManager__SystemTaskService;\r\nextern const void * RTTI_IOPostProcessTaskNode;\r\nextern const void * RTTI_IOSystemTask;\r\nextern const void * RTTI_IOTask;\r\nextern const void * RTTI_IOTaskNode;\r\nextern const void * RTTI_IPackageData;\r\nextern const void * RTTI_IPackageDataTypeCheck;\r\nextern const void * RTTI_IPathBuilder;\r\nextern const void * RTTI_IPathBuilderFactoryBase;\r\nextern const void * RTTI_IPathBuilderTracker;\r\nextern const void * RTTI_IPathFollowerState;\r\nextern const void * RTTI_IPathSmootherRayCast;\r\nextern const void * RTTI_IPathingNodeGenerator;\r\nextern const void * RTTI_IPostAnimationChannelUpdateFunctor;\r\nextern const void * RTTI_IProcedure;\r\nextern const void * RTTI_IProcedureTreeExecState;\r\nextern const void * RTTI_IProcedureTreeItem;\r\nextern const void * RTTI_IRaceSubGraphDataFunctor;\r\nextern const void * RTTI_ISelectIdleFilter;\r\nextern const void * RTTI_ISmoothingRayValidator;\r\nextern const void * RTTI_ISpecialPurposeComponentHandler;\r\nextern const void * RTTI_IStaticAvoidNodeManager;\r\nextern const void * RTTI_IStringForwarder;\r\nextern const void * RTTI_ITempEffectFactory;\r\nextern const void * RTTI_ITextRenderer;\r\nextern const void * RTTI_ITrianglePathSplitter;\r\nextern const void * RTTI_ITweenerNodeFollowerSetup;\r\nextern const void * RTTI_IUIValue;\r\nextern const void * RTTI_IValidateGoalFunctor;\r\nextern const void * RTTI_IVisitProcedures;\r\nextern const void * RTTI_IdleDialogueEnterHandler;\r\nextern const void * RTTI_IdleDialogueExitHandler;\r\nextern const void * RTTI_IdleFlavorHandler;\r\nextern const void * RTTI_ImageCreationThread;\r\nextern const void * RTTI_ImageFixtureEvent_RequestImage;\r\nextern const void * RTTI_ImageFixtureEvent_UnregisterImage;\r\nextern const void * RTTI_ImageFixtureManager;\r\nextern const void * RTTI_ImageSpaceManagerAgent;\r\nextern const void * RTTI_ImageSpaceModifierInstance;\r\nextern const void * RTTI_ImageSpaceModifierInstanceCinematic;\r\nextern const void * RTTI_ImageSpaceModifierInstanceDOF;\r\nextern const void * RTTI_ImageSpaceModifierInstanceForm;\r\nextern const void * RTTI_ImageSpaceModifierInstanceRB;\r\nextern const void * RTTI_ImmunityEffect;\r\nextern const void * RTTI_IndustrialCraftingMenu;\r\nextern const void * RTTI_InfiniteList;\r\nextern const void * RTTI_IngredientItem;\r\nextern const void * RTTI_InitActionI;\r\nextern const void * RTTI_InitializeTraversalSubgraphDataFunctor;\r\nextern const void * RTTI_InputMemoryStreamBuffer;\r\nextern const void * RTTI_InstalledContent;\r\nextern const void * RTTI_InstalledContentData;\r\nextern const void * RTTI_InstalledContentDataModel;\r\nextern const void * RTTI_InstalledContentDataModel__InstalledContentModelEventShuttle;\r\nextern const void * RTTI_IntSeenData;\r\nextern const void * RTTI_InteractionCombatDataCollectFunctor;\r\nextern const void * RTTI_InterfaceArchiveListener;\r\nextern const void * RTTI_InterfacedClass;\r\nextern const void * RTTI_InterruptCastHandler;\r\nextern const void * RTTI_InventoryDataModelNS__InventoryItem;\r\nextern const void * RTTI_InventoryDataModelNS__LootItem;\r\nextern const void * RTTI_InventoryMenu;\r\nextern const void * RTTI_InventoryMenu_Change3DView;\r\nextern const void * RTTI_InventoryMenu_DropItem;\r\nextern const void * RTTI_InventoryMenu_HideModel;\r\nextern const void * RTTI_InventoryMenu_LoadModel;\r\nextern const void * RTTI_InventoryMenu_OnEnterCategory;\r\nextern const void * RTTI_InventoryMenu_OpenAlmanac;\r\nextern const void * RTTI_InventoryMenu_OpenCargoHold;\r\nextern const void * RTTI_InventoryMenu_PaperDollTryOn;\r\nextern const void * RTTI_InventoryMenu_ResetPaperDollInv;\r\nextern const void * RTTI_InventoryMenu_SelectItem;\r\nextern const void * RTTI_InventoryMenu_SetMouseOverModel;\r\nextern const void * RTTI_InventoryMenu_StartCloseAnim;\r\nextern const void * RTTI_InventoryMenu_ToggleFavorite;\r\nextern const void * RTTI_InventoryMenu_ToggleHelmet;\r\nextern const void * RTTI_InventoryMenu_ToggleSuit;\r\nextern const void * RTTI_Inventory_SetSort;\r\nextern const void * RTTI_InvisibilityEffect;\r\nextern const void * RTTI_IronSightsState;\r\nextern const void * RTTI_ItemCraftingBase;\r\nextern const void * RTTI_ItemModInfoCardDataModel;\r\nextern const void * RTTI_ItemModInfoCardDataModel__ItemModInfoCardEventShuttle;\r\nextern const void * RTTI_ItemModdingBase;\r\nextern const void * RTTI_ItemModsDataModel;\r\nextern const void * RTTI_ItemModsDataModel__ItemModsEventShuttle;\r\nextern const void * RTTI_JetpackEffect;\r\nextern const void * RTTI_JetpackUtils__TESCellReferenceAttachDetachEventSink;\r\nextern const void * RTTI_Json__BuiltStyledStreamWriter;\r\nextern const void * RTTI_Json__CharReader;\r\nextern const void * RTTI_Json__CharReaderBuilder;\r\nextern const void * RTTI_Json__CharReader__Factory;\r\nextern const void * RTTI_Json__OurCharReader;\r\nextern const void * RTTI_Json__StreamWriter;\r\nextern const void * RTTI_Json__StreamWriterBuilder;\r\nextern const void * RTTI_Json__StreamWriter__Factory;\r\nextern const void * RTTI_JumpAnimEventHandler;\r\nextern const void * RTTI_KillActorHandler;\r\nextern const void * RTTI_KillMoveEndHandler;\r\nextern const void * RTTI_KillMoveStartHandler;\r\nextern const void * RTTI_KnockdownHandler;\r\nextern const void * RTTI_KnockdownTargetHandler;\r\nextern const void * RTTI_LODData;\r\nextern const void * RTTI_LeftHandSpellCastHandler;\r\nextern const void * RTTI_LeftHandSpellFireHandler;\r\nextern const void * RTTI_LegacyNif__BSEffectShaderProperty;\r\nextern const void * RTTI_LegacyNif__BSLightingShaderProperty;\r\nextern const void * RTTI_LegacyNif__BSMasterParticleSystem;\r\nextern const void * RTTI_LegacyNif__BSMultiBound;\r\nextern const void * RTTI_LegacyNif__BSMultiBoundNode;\r\nextern const void * RTTI_LegacyNif__BSMultiBoundOBB;\r\nextern const void * RTTI_LegacyNif__BSPSysInheritVelocityModifier;\r\nextern const void * RTTI_LegacyNif__BSPSysLODModifier;\r\nextern const void * RTTI_LegacyNif__BSPSysScaleModifier;\r\nextern const void * RTTI_LegacyNif__BSPSysSimpleColorModifier;\r\nextern const void * RTTI_LegacyNif__BSPSysSubTexModifier;\r\nextern const void * RTTI_LegacyNif__BSPositionData;\r\nextern const void * RTTI_LegacyNif__BSShaderTextureSet;\r\nextern const void * RTTI_LegacyNif__BSSubIndexTriShape;\r\nextern const void * RTTI_LegacyNif__BSWaterShaderProperty;\r\nextern const void * RTTI_LegacyNif__BSWindModifier;\r\nextern const void * RTTI_LegacyNif__NiAlphaProperty;\r\nextern const void * RTTI_LegacyNif__NiPSysAgeDeathModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysBombModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysBoundUpdateModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysBoxEmitter;\r\nextern const void * RTTI_LegacyNif__NiPSysColliderManager;\r\nextern const void * RTTI_LegacyNif__NiPSysCylinderEmitter;\r\nextern const void * RTTI_LegacyNif__NiPSysData;\r\nextern const void * RTTI_LegacyNif__NiPSysDragModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysGravityModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysMeshEmitter;\r\nextern const void * RTTI_LegacyNif__NiPSysPlanarCollider;\r\nextern const void * RTTI_LegacyNif__NiPSysPositionModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysRotationModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysSpawnModifier;\r\nextern const void * RTTI_LegacyNif__NiPSysSphereEmitter;\r\nextern const void * RTTI_LegacyNif__NiParticleSystem;\r\nextern const void * RTTI_LegacyNif__SkyShaderProperty;\r\nextern const void * RTTI_LensFlareAttachmentComponent;\r\nextern const void * RTTI_LevelUp_AnimFinished;\r\nextern const void * RTTI_LevelUp_OnWidgetShown;\r\nextern const void * RTTI_LevelUp_OpenDataMenu;\r\nextern const void * RTTI_LevelUp_ShowSkills;\r\nextern const void * RTTI_LightAnimFormComponent;\r\nextern const void * RTTI_LightAttachmentFormComponent;\r\nextern const void * RTTI_LightAttachmentRuntimeComponentUpdateService;\r\nextern const void * RTTI_LightEffect;\r\nextern const void * RTTI_LinearVariable;\r\nextern const void * RTTI_LinearVariableInstance;\r\nextern const void * RTTI_LinkedBNETLogin__BNetInitializedEventListener;\r\nextern const void * RTTI_LinkedCellProcessHelper;\r\nextern const void * RTTI_LoadBufferStorageWrapper;\r\nextern const void * RTTI_LoadFileStorageWrapper;\r\nextern const void * RTTI_LoadGameMagicCasterVisitor;\r\nextern const void * RTTI_LoadOrder;\r\nextern const void * RTTI_LoadOrderArchive;\r\nextern const void * RTTI_LoadOrderBox;\r\nextern const void * RTTI_LoadOrderEntry;\r\nextern const void * RTTI_LoadOrder_SSB;\r\nextern const void * RTTI_LoadSavePanelDataModel;\r\nextern const void * RTTI_LoadSavePanelDataModel__LoadSavePanelEventShuttle;\r\nextern const void * RTTI_LoadScreenRenderingEventHandler;\r\nextern const void * RTTI_LoadTraversalSubgraphDataFunctor;\r\nextern const void * RTTI_LoadedAreaBound;\r\nextern const void * RTTI_LoadedCellDB__IStateControl;\r\nextern const void * RTTI_LoadedCellDB__LoadCell;\r\nextern const void * RTTI_LoadedCellDB__ModuleState;\r\nextern const void * RTTI_LoadedCellDB__PostProcessCell;\r\nextern const void * RTTI_LoadedCellDB__SignalDoneTask;\r\nextern const void * RTTI_LoadingMenu;\r\nextern const void * RTTI_LoadingMenuDataModel;\r\nextern const void * RTTI_LoadingMenuDataModel__LoadingMenuEventShuttle;\r\nextern const void * RTTI_LoadingMenu_RefreshText;\r\nextern const void * RTTI_LocalEnvData;\r\nextern const void * RTTI_LocalEnvData_Frequent;\r\nextern const void * RTTI_LocalEnvironmentDataModel;\r\nextern const void * RTTI_LocationTextWidget_FinishedQueue;\r\nextern const void * RTTI_LockEffect;\r\nextern const void * RTTI_LocomotionBlend;\r\nextern const void * RTTI_LocomotionBlendInstance;\r\nextern const void * RTTI_LoginDialog;\r\nextern const void * RTTI_LookAtChainData;\r\nextern const void * RTTI_LookAtChainInstance;\r\nextern const void * RTTI_LookAtNode;\r\nextern const void * RTTI_LookAtNodeInstance;\r\nextern const void * RTTI_LoopingActivateHandler;\r\nextern const void * RTTI_MagicCaster;\r\nextern const void * RTTI_MagicCaster__PostCreationCallback;\r\nextern const void * RTTI_MagicItem;\r\nextern const void * RTTI_MagicItemDataCollector;\r\nextern const void * RTTI_MagicItemFindKeywordFunctor;\r\nextern const void * RTTI_MagicItemTraversalFunctor;\r\nextern const void * RTTI_MagicTarget;\r\nextern const void * RTTI_MagicTarget__IPostCreationModification;\r\nextern const void * RTTI_Main;\r\nextern const void * RTTI_MainMenu;\r\nextern const void * RTTI_MainMenuConfirmationDataModel;\r\nextern const void * RTTI_MainMenuConfirmationDataModel__MainMenuConfirmationEventShuttle;\r\nextern const void * RTTI_MainMenuGamerInfoDataModel;\r\nextern const void * RTTI_MainMenuGamerInfoDataModel__MainMenuGamerInfoEventShuttle;\r\nextern const void * RTTI_MainMenuListDataModel;\r\nextern const void * RTTI_MainMenuListDataModel__MainMenuListEventShuttle;\r\nextern const void * RTTI_MainMenuMOTDDataModel;\r\nextern const void * RTTI_MainMenuMOTDDataModel__MOTDDataModelEventShuttle;\r\nextern const void * RTTI_MainMenuPipelineProgressDataModel;\r\nextern const void * RTTI_MainMenuPipelineProgressDataModel__MainMenuPipelineProgressDataEventShuttle;\r\nextern const void * RTTI_MainMenuStateDataModel;\r\nextern const void * RTTI_MainMenuStateDataModel__MainMenuStateEventShuttle;\r\nextern const void * RTTI_MainMenu_ActionCanceled;\r\nextern const void * RTTI_MainMenu_ActionConfirmed;\r\nextern const void * RTTI_MainMenu_CloseAdBanner;\r\nextern const void * RTTI_MainMenu_ConfirmLoad;\r\nextern const void * RTTI_MainMenu_DeleteSave;\r\nextern const void * RTTI_MainMenu_LegalScreenComplete;\r\nextern const void * RTTI_MainMenu_OpenStorePage;\r\nextern const void * RTTI_MainMenu_SetCharacter;\r\nextern const void * RTTI_MainMenu_StartAction;\r\nextern const void * RTTI_MainMenu_StartLoad;\r\nextern const void * RTTI_MainMenu_UploadSave;\r\nextern const void * RTTI_MarketplaceBundleContent;\r\nextern const void * RTTI_MarketplaceCommerce__redeemableListener;\r\nextern const void * RTTI_MarketplaceContent;\r\nextern const void * RTTI_MarketplaceContentCollection;\r\nextern const void * RTTI_MarketplaceDataProducer;\r\nextern const void * RTTI_MarketplaceGameState__gameActiveListener;\r\nextern const void * RTTI_MarketplaceMenu;\r\nextern const void * RTTI_MarketplaceMenu__errorCallback;\r\nextern const void * RTTI_MarketplaceMessages__OkMessageCallback;\r\nextern const void * RTTI_MarketplaceMessages__yesNoMessageCallback;\r\nextern const void * RTTI_MarketplaceObjectPool;\r\nextern const void * RTTI_MassSpringDampenVariable;\r\nextern const void * RTTI_MassSpringDampenVariableInstance;\r\nextern const void * RTTI_MaterialLayerInterface;\r\nextern const void * RTTI_MaterialLayerSequence;\r\nextern const void * RTTI_MaterialLayerSequenceInstance;\r\nextern const void * RTTI_MeleeAimAssistData;\r\nextern const void * RTTI_MeleeAimAssistImpl;\r\nextern const void * RTTI_MemoryManagement__PMPEventSink;\r\nextern const void * RTTI_MemoryManagerFile;\r\nextern const void * RTTI_MenuActor;\r\nextern const void * RTTI_MenuControls;\r\nextern const void * RTTI_MenuCursor;\r\nextern const void * RTTI_MenuOpenHandler;\r\nextern const void * RTTI_MenuPaperDoll;\r\nextern const void * RTTI_MenuTopicManager;\r\nextern const void * RTTI_MergeNode;\r\nextern const void * RTTI_MergeNodeInstance;\r\nextern const void * RTTI_MeshLODDistanceOverride;\r\nextern const void * RTTI_MessageBoxMenu;\r\nextern const void * RTTI_MessageBoxMenu_OnBackOut;\r\nextern const void * RTTI_MessageBoxMenu_OnButtonPress;\r\nextern const void * RTTI_MessageBoxMenu__MessageBoxMenuEventShuttle;\r\nextern const void * RTTI_MessageMenuManager;\r\nextern const void * RTTI_MigrateSharedStateFromPreviousView;\r\nextern const void * RTTI_MirrorModifier;\r\nextern const void * RTTI_MirrorModifierInstance;\r\nextern const void * RTTI_MiscStatManager__FindStatByCRC;\r\nextern const void * RTTI_MissileProjectile;\r\nextern const void * RTTI_MissingContent;\r\nextern const void * RTTI_MissionBoardMenu;\r\nextern const void * RTTI_MissionBoardMenu__MissionBoardMenuEventShuttle;\r\nextern const void * RTTI_MissionBoard_MissionEntryChanged;\r\nextern const void * RTTI_MissionBoard_MissionEntryPressed;\r\nextern const void * RTTI_MissionMenu_ClearState;\r\nextern const void * RTTI_MissionMenu_PlotToLocation;\r\nextern const void * RTTI_MissionMenu_RejectQuest;\r\nextern const void * RTTI_MissionMenu_SaveCategoryIndex;\r\nextern const void * RTTI_MissionMenu_SaveOpenedId;\r\nextern const void * RTTI_MissionMenu_ShowItemLocation;\r\nextern const void * RTTI_MissionMenu_ToggleQTDisplay;\r\nextern const void * RTTI_MissionMenu_ToggleTrackingQuest;\r\nextern const void * RTTI_MobIterOperator;\r\nextern const void * RTTI_ModelLoader;\r\nextern const void * RTTI_ModelReferenceEffect;\r\nextern const void * RTTI_MomentumAnimation;\r\nextern const void * RTTI_MomentumAnimationInstance;\r\nextern const void * RTTI_MomentumSwitchback;\r\nextern const void * RTTI_MomentumSwitchbackInstance;\r\nextern const void * RTTI_MonocleMenu;\r\nextern const void * RTTI_MonocleMenu_Bioscan;\r\nextern const void * RTTI_MonocleMenu_FastTravel;\r\nextern const void * RTTI_MonocleMenu_Harvest;\r\nextern const void * RTTI_MonocleMenu_Initialize;\r\nextern const void * RTTI_MonocleMenu_OpenDoor;\r\nextern const void * RTTI_MonocleMenu_Outpost;\r\nextern const void * RTTI_MonocleMenu_PhotoMode;\r\nextern const void * RTTI_MonocleMenu_Shutdown;\r\nextern const void * RTTI_MonocleMenu_SocialSpell;\r\nextern const void * RTTI_MonocleMenu_StartContainerView;\r\nextern const void * RTTI_MonocleMenu_StopContainerView;\r\nextern const void * RTTI_MonocleMenu_SurfaceMap;\r\nextern const void * RTTI_MonocleMenu_UseListScrollControls;\r\nextern const void * RTTI_MonocleMenu_ZoomIn;\r\nextern const void * RTTI_MonocleMenu_ZoomOut;\r\nextern const void * RTTI_MonocleUIDataModel;\r\nextern const void * RTTI_MonocleUIDataModel__EventData;\r\nextern const void * RTTI_MonocleUIDataModel__LegendaryModData;\r\nextern const void * RTTI_MonocleUIDataModel__MenuData;\r\nextern const void * RTTI_MonocleUIDataModel__MenuFreqData;\r\nextern const void * RTTI_MonocleUIDataModel__MonocleUIDataEventShuttle;\r\nextern const void * RTTI_MonocleUIDataModel__PickRefData;\r\nextern const void * RTTI_MonocleUIDataModel__ResourceArcData;\r\nextern const void * RTTI_MonocleUIDataModel__ResourceData;\r\nextern const void * RTTI_MonocleUIDataModel__ScannableMapMarkerData;\r\nextern const void * RTTI_MonocleUIDataModel__SocialSpellData;\r\nextern const void * RTTI_MorphDriverData;\r\nextern const void * RTTI_MorphDriverInstance;\r\nextern const void * RTTI_MotionDrivenHandler;\r\nextern const void * RTTI_MotionDrivenHandlerReference;\r\nextern const void * RTTI_MountDismountEndHandler;\r\nextern const void * RTTI_MountInteraction;\r\nextern const void * RTTI_MouseMoveEvent;\r\nextern const void * RTTI_MovementAgent;\r\nextern const void * RTTI_MovementAgentActorAvoider;\r\nextern const void * RTTI_MovementAgentActorState;\r\nextern const void * RTTI_MovementAgentFlightController;\r\nextern const void * RTTI_MovementAgentFlightControllerDetached;\r\nextern const void * RTTI_MovementAgentPathFollowerFlight;\r\nextern const void * RTTI_MovementAgentPathFollowerStandard;\r\nextern const void * RTTI_MovementAgentPathFollowerVirtual;\r\nextern const void * RTTI_MovementArbiter;\r\nextern const void * RTTI_MovementArbitrationAverageFloat;\r\nextern const void * RTTI_MovementArbitrationMaxWeightParameters;\r\nextern const void * RTTI_MovementArbitrationMaxWeightPoint;\r\nextern const void * RTTI_MovementArbitrationVectorAdd;\r\nextern const void * RTTI_MovementAvoidBoxEventAdapter;\r\nextern const void * RTTI_MovementAvoidBoxManager;\r\nextern const void * RTTI_MovementAvoidanceManager;\r\nextern const void * RTTI_MovementComponentEventHandler;\r\nextern const void * RTTI_MovementComponentSetDescriptions;\r\nextern const void * RTTI_MovementControllerAI;\r\nextern const void * RTTI_MovementControllerComponent;\r\nextern const void * RTTI_MovementControllerComponentData;\r\nextern const void * RTTI_MovementControllerNPC;\r\nextern const void * RTTI_MovementControllerNullDataTracker;\r\nextern const void * RTTI_MovementControllerRegisterInterface;\r\nextern const void * RTTI_MovementControllerSetDescriptions;\r\nextern const void * RTTI_MovementHandlerAgentAngleGain;\r\nextern const void * RTTI_MovementHandlerAgentDirectControl;\r\nextern const void * RTTI_MovementHandlerAgentDirectionPassThrough;\r\nextern const void * RTTI_MovementHandlerAgentFlightBoostTrigger;\r\nextern const void * RTTI_MovementHandlerAgentGraphDrivenAnimationDriven;\r\nextern const void * RTTI_MovementHandlerAgentPlayerControls;\r\nextern const void * RTTI_MovementHandlerAgentPlayerControlsActionTrigger;\r\nextern const void * RTTI_MovementHandlerAgentPlayerFlightControls;\r\nextern const void * RTTI_MovementHandlerAgentSprintActionTrigger;\r\nextern const void * RTTI_MovementHandlerAgentStairsHelper;\r\nextern const void * RTTI_MovementHandlerAgentStandard;\r\nextern const void * RTTI_MovementHandlerAgentStorePlannerOutput;\r\nextern const void * RTTI_MovementHandlerArbiter;\r\nextern const void * RTTI_MovementLargeDelta__IEnumVisitor;\r\nextern const void * RTTI_MovementMessage;\r\nextern const void * RTTI_MovementMessageActivateDoor;\r\nextern const void * RTTI_MovementMessageActorCollision;\r\nextern const void * RTTI_MovementMessageApproachingDoor;\r\nextern const void * RTTI_MovementMessageBeginLandingApproach;\r\nextern const void * RTTI_MovementMessageBlocked;\r\nextern const void * RTTI_MovementMessageDoor;\r\nextern const void * RTTI_MovementMessageGravJump;\r\nextern const void * RTTI_MovementMessageJump;\r\nextern const void * RTTI_MovementMessageLand;\r\nextern const void * RTTI_MovementMessageNewPath;\r\nextern const void * RTTI_MovementMessagePathCleared;\r\nextern const void * RTTI_MovementMessagePathComplete;\r\nextern const void * RTTI_MovementMessagePathEvent;\r\nextern const void * RTTI_MovementMessagePathFailed;\r\nextern const void * RTTI_MovementMessagePlayIdle;\r\nextern const void * RTTI_MovementMessageSetStaticPath;\r\nextern const void * RTTI_MovementMessageTakeOff;\r\nextern const void * RTTI_MovementMessageTraversal;\r\nextern const void * RTTI_MovementMessageUpdateRequestImmediate;\r\nextern const void * RTTI_MovementMessageWarpToLocation;\r\nextern const void * RTTI_MovementMessageWarpToMultiple;\r\nextern const void * RTTI_MovementNavmeshBoundsManager;\r\nextern const void * RTTI_MovementParameters;\r\nextern const void * RTTI_MovementParametersFixed;\r\nextern const void * RTTI_MovementPathManagerAgentAvoidBox;\r\nextern const void * RTTI_MovementPathManagerAgentLoadedAreaMonitor;\r\nextern const void * RTTI_MovementPathManagerAgentStaticAvoider;\r\nextern const void * RTTI_MovementPathManagerArbiter;\r\nextern const void * RTTI_MovementPathManagerNullTracker;\r\nextern const void * RTTI_MovementPlannerAgentDirectControl;\r\nextern const void * RTTI_MovementPlannerAgentNavmeshBounds;\r\nextern const void * RTTI_MovementPlannerAgentWarp;\r\nextern const void * RTTI_MovementPlannerArbiter;\r\nextern const void * RTTI_MovementPostUpdateArbiter;\r\nextern const void * RTTI_MovementSelectIdleUtils__SelectClosestIdleToMovementSelectionData;\r\nextern const void * RTTI_MovementSelectIdleUtils__SelectClosestIdleToPath;\r\nextern const void * RTTI_MovementStateFollowPath;\r\nextern const void * RTTI_MovementStateTweener;\r\nextern const void * RTTI_MovementTweenerAgentFixedDelta;\r\nextern const void * RTTI_MovementTweenerAgentNodeFollower;\r\nextern const void * RTTI_MovementTweenerAgentTargetPosAndVel;\r\nextern const void * RTTI_MovementTweenerArbiter;\r\nextern const void * RTTI_MoviePlayer;\r\nextern const void * RTTI_MultiFootIKNode;\r\nextern const void * RTTI_MultiFootIKNodeInstance;\r\nextern const void * RTTI_NEW_REFR_DATA;\r\nextern const void * RTTI_NPCAttachHandler;\r\nextern const void * RTTI_NPCDetachHandler;\r\nextern const void * RTTI_NavGenUtil__TunnelTerraintFilter;\r\nextern const void * RTTI_NavMesh;\r\nextern const void * RTTI_NavMeshCoverGenerator;\r\nextern const void * RTTI_NavMeshGenContext;\r\nextern const void * RTTI_NavMeshGenData;\r\nextern const void * RTTI_NavMeshGenFinalizer;\r\nextern const void * RTTI_NavMeshGenInputBorderProcessTask;\r\nextern const void * RTTI_NavMeshGenInputProcessor;\r\nextern const void * RTTI_NavMeshGenOutputProcessor;\r\nextern const void * RTTI_NavMeshGenSplitter;\r\nextern const void * RTTI_NavMeshGenStitcher;\r\nextern const void * RTTI_NavMeshGenerator;\r\nextern const void * RTTI_NavMeshGenerator__NavMeshGenCellsNode;\r\nextern const void * RTTI_NavMeshInfo;\r\nextern const void * RTTI_NavMeshInfoMap;\r\nextern const void * RTTI_NavMeshObstacleCoverManager;\r\nextern const void * RTTI_NavMeshObstacleManager;\r\nextern const void * RTTI_NavMeshSearchClosePoint;\r\nextern const void * RTTI_NavMeshSearchFitSphere;\r\nextern const void * RTTI_NavMeshSearchHide;\r\nextern const void * RTTI_NavMeshSearchLOS;\r\nextern const void * RTTI_NavMeshSearchLargestSpaceNearLocation;\r\nextern const void * RTTI_NavMeshSearchSLPoint;\r\nextern const void * RTTI_NavMeshSplineExtraData;\r\nextern const void * RTTI_NiAVObject;\r\nextern const void * RTTI_NiAdditionalGeometryData;\r\nextern const void * RTTI_NiAmbientLight;\r\nextern const void * RTTI_NiBSplineBasisData;\r\nextern const void * RTTI_NiBSplineColorInterpolator;\r\nextern const void * RTTI_NiBSplineCompColorInterpolator;\r\nextern const void * RTTI_NiBSplineCompFloatInterpolator;\r\nextern const void * RTTI_NiBSplineCompPoint3Interpolator;\r\nextern const void * RTTI_NiBSplineCompTransformInterpolator;\r\nextern const void * RTTI_NiBSplineData;\r\nextern const void * RTTI_NiBSplineFloatInterpolator;\r\nextern const void * RTTI_NiBSplineInterpolator;\r\nextern const void * RTTI_NiBSplinePoint3Interpolator;\r\nextern const void * RTTI_NiBSplineTransformInterpolator;\r\nextern const void * RTTI_NiBillboardNode;\r\nextern const void * RTTI_NiBinaryExtraData;\r\nextern const void * RTTI_NiBinaryStream;\r\nextern const void * RTTI_NiBlendAccumTransformInterpolator;\r\nextern const void * RTTI_NiBlendBoolInterpolator;\r\nextern const void * RTTI_NiBlendColorInterpolator;\r\nextern const void * RTTI_NiBlendFloatInterpolator;\r\nextern const void * RTTI_NiBlendInterpolator;\r\nextern const void * RTTI_NiBlendPoint3Interpolator;\r\nextern const void * RTTI_NiBlendQuaternionInterpolator;\r\nextern const void * RTTI_NiBlendTransformInterpolator;\r\nextern const void * RTTI_NiBoolData;\r\nextern const void * RTTI_NiBoolInterpolator;\r\nextern const void * RTTI_NiBoolTimelineInterpolator;\r\nextern const void * RTTI_NiBooleanExtraData;\r\nextern const void * RTTI_NiCamera;\r\nextern const void * RTTI_NiCollisionObject;\r\nextern const void * RTTI_NiColorData;\r\nextern const void * RTTI_NiColorExtraData;\r\nextern const void * RTTI_NiColorExtraDataController;\r\nextern const void * RTTI_NiColorInterpolator;\r\nextern const void * RTTI_NiControllerManager;\r\nextern const void * RTTI_NiControllerSequence;\r\nextern const void * RTTI_NiDefaultAVObjectPalette;\r\nextern const void * RTTI_NiDirectionalLight;\r\nextern const void * RTTI_NiExtraData;\r\nextern const void * RTTI_NiExtraDataController;\r\nextern const void * RTTI_NiFile;\r\nextern const void * RTTI_NiFloatController;\r\nextern const void * RTTI_NiFloatData;\r\nextern const void * RTTI_NiFloatExtraData;\r\nextern const void * RTTI_NiFloatExtraDataController;\r\nextern const void * RTTI_NiFloatInterpolator;\r\nextern const void * RTTI_NiFloatsExtraData;\r\nextern const void * RTTI_NiFloatsExtraDataController;\r\nextern const void * RTTI_NiFloatsExtraDataPoint3Controller;\r\nextern const void * RTTI_NiFogProperty;\r\nextern const void * RTTI_NiFormArray;\r\nextern const void * RTTI_NiGeometry;\r\nextern const void * RTTI_NiGeometryData;\r\nextern const void * RTTI_NiIntegerExtraData;\r\nextern const void * RTTI_NiIntegersExtraData;\r\nextern const void * RTTI_NiKeyframeManager;\r\nextern const void * RTTI_NiLight;\r\nextern const void * RTTI_NiLightColorController;\r\nextern const void * RTTI_NiLightDimmerController;\r\nextern const void * RTTI_NiLightRadiusController;\r\nextern const void * RTTI_NiLookAtController;\r\nextern const void * RTTI_NiLookAtInterpolator;\r\nextern const void * RTTI_NiMemStream;\r\nextern const void * RTTI_NiMorphData;\r\nextern const void * RTTI_NiMultiTargetTransformController;\r\nextern const void * RTTI_NiNode;\r\nextern const void * RTTI_NiObjectNET;\r\nextern const void * RTTI_NiPathController;\r\nextern const void * RTTI_NiPathInterpolator;\r\nextern const void * RTTI_NiPick__Results;\r\nextern const void * RTTI_NiPoint3Interpolator;\r\nextern const void * RTTI_NiPointLight;\r\nextern const void * RTTI_NiPosData;\r\nextern const void * RTTI_NiQuaternionInterpolator;\r\nextern const void * RTTI_NiRefObject;\r\nextern const void * RTTI_NiRollController;\r\nextern const void * RTTI_NiRotData;\r\nextern const void * RTTI_NiSequence;\r\nextern const void * RTTI_NiSequenceStreamHelper;\r\nextern const void * RTTI_NiSkinData;\r\nextern const void * RTTI_NiSkinInstance;\r\nextern const void * RTTI_NiSkinPartition;\r\nextern const void * RTTI_NiSpotLight;\r\nextern const void * RTTI_NiStream;\r\nextern const void * RTTI_NiStringExtraData;\r\nextern const void * RTTI_NiStringPalette;\r\nextern const void * RTTI_NiStringsExtraData;\r\nextern const void * RTTI_NiSwitchNode;\r\nextern const void * RTTI_NiTextKeyExtraData;\r\nextern const void * RTTI_NiTimeController;\r\nextern const void * RTTI_NiTransformController;\r\nextern const void * RTTI_NiTransformData;\r\nextern const void * RTTI_NiTransformInterpolator;\r\nextern const void * RTTI_NiTriBasedGeom;\r\nextern const void * RTTI_NiTriBasedGeomData;\r\nextern const void * RTTI_NiTriShape;\r\nextern const void * RTTI_NiTriShapeData;\r\nextern const void * RTTI_NiTriStrips;\r\nextern const void * RTTI_NiTriStripsData;\r\nextern const void * RTTI_NiUVData;\r\nextern const void * RTTI_NiVisController;\r\nextern const void * RTTI_NightEyeEffect;\r\nextern const void * RTTI_NonActorMagicCaster;\r\nextern const void * RTTI_NonActorMagicCaster__Manager;\r\nextern const void * RTTI_NonActorMagicTarget;\r\nextern const void * RTTI_NonActorMagicTarget__Manager;\r\nextern const void * RTTI_NormalizeRotation;\r\nextern const void * RTTI_NormalizeRotationInstance;\r\nextern const void * RTTI_NullMovementSelectIdleResult;\r\nextern const void * RTTI_NullMovementState;\r\nextern const void * RTTI_NullPathBuilderTracker;\r\nextern const void * RTTI_ObjectAttachmentFormComponent;\r\nextern const void * RTTI_ObjectListItem;\r\nextern const void * RTTI_ObstacleTaskData;\r\nextern const void * RTTI_OfflineLoadOrder;\r\nextern const void * RTTI_OpenContainerMenuMessage;\r\nextern const void * RTTI_OpenEffect;\r\nextern const void * RTTI_OpenRefuelMenuMessage;\r\nextern const void * RTTI_OpenShipCrewAssignMenuMessage;\r\nextern const void * RTTI_Options;\r\nextern const void * RTTI_OwnedCameraEffectController;\r\nextern const void * RTTI_OwnedController;\r\nextern const void * RTTI_OwnedEntitlements;\r\nextern const void * RTTI_PackageCreator;\r\nextern const void * RTTI_PackageList;\r\nextern const void * RTTI_PackageLocation;\r\nextern const void * RTTI_PageFileBase;\r\nextern const void * RTTI_PairCollector;\r\nextern const void * RTTI_PairedAnimation;\r\nextern const void * RTTI_PairedAnimationInstance;\r\nextern const void * RTTI_PairedAttackDialogueHandler;\r\nextern const void * RTTI_PairedStopHandler;\r\nextern const void * RTTI_ParalysisEffect;\r\nextern const void * RTTI_ParticleFormComponent;\r\nextern const void * RTTI_ParticleParticleCollisionsTask;\r\nextern const void * RTTI_ParticleParticleInterBranchCollisionsTask;\r\nextern const void * RTTI_ParticleParticleInterbranchSolveTask;\r\nextern const void * RTTI_ParticleParticleProcessEarlyOutStateTask;\r\nextern const void * RTTI_ParticleSequence;\r\nextern const void * RTTI_ParticleSequenceInstance;\r\nextern const void * RTTI_ParticleSystemInterface;\r\nextern const void * RTTI_Particles__AnimatedUVMaterialProperties;\r\nextern const void * RTTI_Particles__BaseCustomParameter;\r\nextern const void * RTTI_Particles__BaseOperation;\r\nextern const void * RTTI_Particles__BaseParticleSystemItem;\r\nextern const void * RTTI_Particles__BoundProperty;\r\nextern const void * RTTI_Particles__BundleInfo;\r\nextern const void * RTTI_Particles__EmitterBinding;\r\nextern const void * RTTI_Particles__EmitterDefinition;\r\nextern const void * RTTI_Particles__EmitterMaterialDependency;\r\nextern const void * RTTI_Particles__ForcesProperties;\r\nextern const void * RTTI_Particles__GeometryAsShapeDependency;\r\nextern const void * RTTI_Particles__GeometryParticlesProperties;\r\nextern const void * RTTI_Particles__GroupOperation;\r\nextern const void * RTTI_Particles__ITimeMultiplierProvider;\r\nextern const void * RTTI_Particles__Intrinsics__ApplyAngularVelocityParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ApplyForcesToPositionParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ApplyForcesToVelocityParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ApplyVelocityToPositionParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ApplyWorldVelocityToPositionParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__AssignmentOperationInput;\r\nextern const void * RTTI_Particles__Intrinsics__BindingNameInput;\r\nextern const void * RTTI_Particles__Intrinsics__BoolBoolParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__BoolInput;\r\nextern const void * RTTI_Particles__Intrinsics__BroadcastCollisionEventParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorAlphaCurvesParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorColorColorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorColorFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorCurveParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorInput;\r\nextern const void * RTTI_Particles__Intrinsics__ColorPickerMinMaxParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ColorPickerParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ConditionalJumpParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ConditionalKillParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ConformToHeightmapParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ConformToHeightmapSimParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__CurveParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__CustomHandlingParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__CyclingVolumeParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__DebugAnimateParentTransform;\r\nextern const void * RTTI_Particles__Intrinsics__DebugAttachToCamera;\r\nextern const void * RTTI_Particles__Intrinsics__DebugMoveParentTransform;\r\nextern const void * RTTI_Particles__Intrinsics__DirectionAxisInput;\r\nextern const void * RTTI_Particles__Intrinsics__DirectionToRotation3DParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Double3Double3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Double3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Double3Double3VectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Double3Input;\r\nextern const void * RTTI_Particles__Intrinsics__EmissionTypeInput;\r\nextern const void * RTTI_Particles__Intrinsics__ExpressionInputParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Float5ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Float6ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatBoolParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatColorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatFloatBoolParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatFloatFloatFloatColorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatFloatFloatFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatFloatFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatFloatFloatVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatInput;\r\nextern const void * RTTI_Particles__Intrinsics__FloatMinMaxParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatUIntParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatVector33MatrixParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__FloatVectorVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__GenericResourceParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__GeometryParticleKillParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__GeometryParticleParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__GeometryParticleUpdateParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__GeometryRotToPhysicsQuatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__HexColorHexColorUIntParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__HexColorUIntParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__HexUIntInput;\r\nextern const void * RTTI_Particles__Intrinsics__Input;\r\nextern const void * RTTI_Particles__Intrinsics__IntInput;\r\nextern const void * RTTI_Particles__Intrinsics__JumpParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__KillParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__LODCurvedPropertyBaseParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__LODCurvedPropertyFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__MatrixInput;\r\nextern const void * RTTI_Particles__Intrinsics__MatrixVectorVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__MeshSpawnDimensionInput;\r\nextern const void * RTTI_Particles__Intrinsics__NoOpDeclareBoolParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__NoOpSimulateParticlesMarkerParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Noise2ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Noise3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__NoiseBaseParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__NoiseParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__NoiseTypeInput;\r\nextern const void * RTTI_Particles__Intrinsics__OperationNameInput;\r\nextern const void * RTTI_Particles__Intrinsics__OrbitAroundPointParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ParameterSetBase;\r\nextern const void * RTTI_Particles__Intrinsics__PhysicsQuatToGeometryRotParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__PhysicsQuatToSpriteRotParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__PointInCylinderParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__PointInMeshParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__PointOnAttachedSkeletonParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__RandomVariableParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__RandomVectorOnShapeParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ScaledVectorGivenTwoPointsParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__ShapeTypeInput;\r\nextern const void * RTTI_Particles__Intrinsics__SharedAsset;\r\nextern const void * RTTI_Particles__Intrinsics__SharedAssociatedUID;\r\nextern const void * RTTI_Particles__Intrinsics__SharedCollisionInfo;\r\nextern const void * RTTI_Particles__Intrinsics__SharedColorAlphaCurves;\r\nextern const void * RTTI_Particles__Intrinsics__SharedColorCurve;\r\nextern const void * RTTI_Particles__Intrinsics__SharedCurve;\r\nextern const void * RTTI_Particles__Intrinsics__SharedCustomParameter;\r\nextern const void * RTTI_Particles__Intrinsics__SharedFiniteRandomNumberGenerator;\r\nextern const void * RTTI_Particles__Intrinsics__SharedHeightmapData;\r\nextern const void * RTTI_Particles__Intrinsics__SharedLODCurves;\r\nextern const void * RTTI_Particles__Intrinsics__SharedMesh;\r\nextern const void * RTTI_Particles__Intrinsics__SharedNoiseGenerator;\r\nextern const void * RTTI_Particles__Intrinsics__SharedParticleSystemSpawnParameters;\r\nextern const void * RTTI_Particles__Intrinsics__SharedRGBColorCurve;\r\nextern const void * RTTI_Particles__Intrinsics__SharedRandomVariableDistributionValues;\r\nextern const void * RTTI_Particles__Intrinsics__SharedRuntimeInfo;\r\nextern const void * RTTI_Particles__Intrinsics__SharedSkeletonData;\r\nextern const void * RTTI_Particles__Intrinsics__SharedUpdateForcesParameters;\r\nextern const void * RTTI_Particles__Intrinsics__SpawnParticleParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__StringInput;\r\nextern const void * RTTI_Particles__Intrinsics__TransformInitialParticlePositionToWorldSpaceParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToEmitterSpaceDouble3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToEmitterSpaceFloat3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToEmitterSpaceFloat3Float3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToParentSpaceDouble3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToParentSpaceFloat3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToParentSpaceFloat3Float3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformPositionToPositionInWorldEmitterSpaceFloat3Float3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformRelativeGeometryParticleToParentSpaceParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformRelativePositionFloat3Double3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformRelativePositionFloat3Float3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformRelativePositionToInWorldPositionFloat3Float3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformStretchVectorToWorldParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__TransformVelocityToWorldParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UIntDivisionParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UIntFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UIntInput;\r\nextern const void * RTTI_Particles__Intrinsics__UIntMinMaxParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UIntUIntBoolParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UIntUIntParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UIntUIntUIntParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UpdateChildParticleBindingsParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__UpdateForcesParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VariableInput;\r\nextern const void * RTTI_Particles__Intrinsics__Vector2Input;\r\nextern const void * RTTI_Particles__Intrinsics__Vector2Vector2FloatVector2ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Vector2Vector2Vector2FloatVector2ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Vector2Vector2Vector2Vector2FloatVector2ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Vector3Input;\r\nextern const void * RTTI_Particles__Intrinsics__Vector3MatrixParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Vector3Vector3FloatVector3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Vector3Vector3Vector3FloatVector3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__Vector3Vector3Vector3Vector3FloatVector3ParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorFloatVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorMinMaxParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorScaleAddParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorVectorFloatParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__VectorVectorVectorParamSet;\r\nextern const void * RTTI_Particles__Intrinsics__XMFLOAT4Input;\r\nextern const void * RTTI_Particles__ListFloatCurve;\r\nextern const void * RTTI_Particles__ListParticleCollisionInfo;\r\nextern const void * RTTI_Particles__MaterialDBDependency;\r\nextern const void * RTTI_Particles__MaterialProperties;\r\nextern const void * RTTI_Particles__MeshDependency;\r\nextern const void * RTTI_Particles__ModelDBDependency;\r\nextern const void * RTTI_Particles__PSM__Commands__BaseParticleSystemRequest;\r\nextern const void * RTTI_Particles__PSM__Commands__RequestLoadResources;\r\nextern const void * RTTI_Particles__PSM__Commands__WaitForResourceLoad;\r\nextern const void * RTTI_Particles__ParticleEmitterEngine;\r\nextern const void * RTTI_Particles__ParticleEmitterEngine__GlobalEmitterEngineBinding;\r\nextern const void * RTTI_Particles__ParticleNodeManager;\r\nextern const void * RTTI_Particles__ParticlePerformanceManager;\r\nextern const void * RTTI_Particles__ParticleSystemManagerImpl;\r\nextern const void * RTTI_Particles__ParticleSystemManagerImpl__PSBinding;\r\nextern const void * RTTI_Particles__ParticleSystemStorage;\r\nextern const void * RTTI_Particles__PhysicsProperties;\r\nextern const void * RTTI_Particles__PointInMeshDependency;\r\nextern const void * RTTI_Particles__ResourceDependency;\r\nextern const void * RTTI_Particles__SingleOperation;\r\nextern const void * RTTI_Particles__SystemBinding;\r\nextern const void * RTTI_Particles__SystemDefinition;\r\nextern const void * RTTI_Particles__TiledMaterialProperties;\r\nextern const void * RTTI_PassengerInteraction;\r\nextern const void * RTTI_PathFollowerAnimationMoveStart;\r\nextern const void * RTTI_PathFollowerAnimationMoveStop;\r\nextern const void * RTTI_PathFollowerStateFollowPathToParameter;\r\nextern const void * RTTI_PathFollowerStateKeepLastDirection;\r\nextern const void * RTTI_PathFollowerStatePerformAction;\r\nextern const void * RTTI_PathFollowerStatePlayIdle;\r\nextern const void * RTTI_PathFollowerStateShortcut;\r\nextern const void * RTTI_PathFollowerStateTurnToAngle;\r\nextern const void * RTTI_PathFollowerStateWaitForAction;\r\nextern const void * RTTI_PathManagerImpl;\r\nextern const void * RTTI_PathManagerPositionPlayerAdapter;\r\nextern const void * RTTI_PathSmootherRayCastUsePreferredTris;\r\nextern const void * RTTI_PathSmootherRayCastUseTrianglePath;\r\nextern const void * RTTI_Pathing;\r\nextern const void * RTTI_PathingAnimations;\r\nextern const void * RTTI_PathingAnimationsInstance;\r\nextern const void * RTTI_PathingCell;\r\nextern const void * RTTI_PathingCoverLocation;\r\nextern const void * RTTI_PathingDoor;\r\nextern const void * RTTI_PathingLockData;\r\nextern const void * RTTI_PathingNumericIDDuplicationVisitor;\r\nextern const void * RTTI_PathingRequest;\r\nextern const void * RTTI_PathingRequestClosePoint;\r\nextern const void * RTTI_PathingRequestClosestGoal;\r\nextern const void * RTTI_PathingRequestCover;\r\nextern const void * RTTI_PathingRequestFlee;\r\nextern const void * RTTI_PathingRequestFly;\r\nextern const void * RTTI_PathingRequestFlyAction;\r\nextern const void * RTTI_PathingRequestFlyHover;\r\nextern const void * RTTI_PathingRequestFlyLand;\r\nextern const void * RTTI_PathingRequestFlyOrbit;\r\nextern const void * RTTI_PathingRequestFlyTakeOff;\r\nextern const void * RTTI_PathingRequestHide;\r\nextern const void * RTTI_PathingRequestLOS;\r\nextern const void * RTTI_PathingRequestOpenSpace;\r\nextern const void * RTTI_PathingRequestRotate;\r\nextern const void * RTTI_PathingRequestSafeStraightLine;\r\nextern const void * RTTI_PathingRequestStopMoving;\r\nextern const void * RTTI_PathingSpace;\r\nextern const void * RTTI_PathingStreamLoadGame;\r\nextern const void * RTTI_PathingStreamMasterFileRead;\r\nextern const void * RTTI_PathingStreamSaveGame;\r\nextern const void * RTTI_PathingTraversalAction;\r\nextern const void * RTTI_PathingTraversalActionActivate;\r\nextern const void * RTTI_PathingTraversalActionDoorway;\r\nextern const void * RTTI_PathingTraversalActionJump;\r\nextern const void * RTTI_PathingTraversalActionLadder;\r\nextern const void * RTTI_PathingTraversalActionStandard;\r\nextern const void * RTTI_PathingTraversalData;\r\nextern const void * RTTI_PathingTraversalManager;\r\nextern const void * RTTI_PauseMenu;\r\nextern const void * RTTI_PauseMenuConfirmationDataModel;\r\nextern const void * RTTI_PauseMenuConfirmationDataModel__PauseMenuConfirmatioEventShuttle;\r\nextern const void * RTTI_PauseMenuListDataModel;\r\nextern const void * RTTI_PauseMenuListDataModel__PauseMenuListEventShuttle;\r\nextern const void * RTTI_PauseMenuStateDataModel;\r\nextern const void * RTTI_PauseMenuStateDataModel__PauseMenuStateEventShuttle;\r\nextern const void * RTTI_PauseMenu_ActionCanceled;\r\nextern const void * RTTI_PauseMenu_ConfirmAction;\r\nextern const void * RTTI_PauseMenu_ConfirmLoad;\r\nextern const void * RTTI_PauseMenu_ConfirmSave;\r\nextern const void * RTTI_PauseMenu_DeleteSave;\r\nextern const void * RTTI_PauseMenu_QuitToDesktop;\r\nextern const void * RTTI_PauseMenu_SetCharacter;\r\nextern const void * RTTI_PauseMenu_StartAction;\r\nextern const void * RTTI_PauseMenu_StartLoad;\r\nextern const void * RTTI_PauseMenu_UploadSave;\r\nextern const void * RTTI_PeakValueModifierEffect;\r\nextern const void * RTTI_PenetrationRecoveryUtils__hknpBSIgnoreBodyCollisionFilter;\r\nextern const void * RTTI_PenetrationUtils__hknpBSCommandStreamWriter;\r\nextern const void * RTTI_PerformActivationHandler;\r\nextern const void * RTTI_PerformOpFunc;\r\nextern const void * RTTI_PhotoGalleryMenu;\r\nextern const void * RTTI_PhotoGalleryMenu__PhotoGalleryEventShuttle;\r\nextern const void * RTTI_PhotoGallery_DeletePhoto;\r\nextern const void * RTTI_PhotoModeCameraState;\r\nextern const void * RTTI_PhotoModeDataModel;\r\nextern const void * RTTI_PhotoModeDataModel__PhotoModeEventShuttle;\r\nextern const void * RTTI_PhotoModeDataModel__PhotoModeOverlayData__ImageData;\r\nextern const void * RTTI_PhotoModeDataModel__PhotoModeSettingsData__CategoryData;\r\nextern const void * RTTI_PhotoModeDataModel__PhotoModeSettingsData__SettingData;\r\nextern const void * RTTI_PhotoModeEffectController;\r\nextern const void * RTTI_PhotoModeMenu;\r\nextern const void * RTTI_PhotoMode_InitializeCategory;\r\nextern const void * RTTI_PhotoMode_RefineSetting;\r\nextern const void * RTTI_PhotoMode_ResetToDefaults;\r\nextern const void * RTTI_PhotoMode_SliderChanged;\r\nextern const void * RTTI_PhotoMode_StepperChanged;\r\nextern const void * RTTI_PhotoMode_TakeSnapshot;\r\nextern const void * RTTI_PhotoMode_ToggleHelmet;\r\nextern const void * RTTI_PhotoMode_ToggleUI;\r\nextern const void * RTTI_PhotoMode__PhotoModeCaptureExportNode;\r\nextern const void * RTTI_PhysicsContactListener;\r\nextern const void * RTTI_PhysicsContactListenerInstance;\r\nextern const void * RTTI_PickNewIdleHandler;\r\nextern const void * RTTI_PickpocketInventoryModel;\r\nextern const void * RTTI_PickpocketItemData;\r\nextern const void * RTTI_PickpocketMenu;\r\nextern const void * RTTI_PickpocketMenu_OnItemSelect;\r\nextern const void * RTTI_PickpocketStateData;\r\nextern const void * RTTI_PilotCameraShaker;\r\nextern const void * RTTI_PipelineGenerationEventHandler;\r\nextern const void * RTTI_PitchOverrideEndHandler;\r\nextern const void * RTTI_PitchOverrideStartHandler;\r\nextern const void * RTTI_PlanetSiteSelectEventHelper;\r\nextern const void * RTTI_PlasmaProjectile;\r\nextern const void * RTTI_PlatformDataModel;\r\nextern const void * RTTI_PlayBinkMenu;\r\nextern const void * RTTI_PlayBink_CloseMenu;\r\nextern const void * RTTI_PlayerBedEnterHandler;\r\nextern const void * RTTI_PlayerCamera;\r\nextern const void * RTTI_PlayerCameraTransitionState;\r\nextern const void * RTTI_PlayerChairEnterHandler;\r\nextern const void * RTTI_PlayerCharacter;\r\nextern const void * RTTI_PlayerControls__AlternateAttackHandler;\r\nextern const void * RTTI_PlayerControls__AlternateFlightControlMode;\r\nextern const void * RTTI_PlayerControls__AutoMoveHandler;\r\nextern const void * RTTI_PlayerControls__DebugCameraHandler;\r\nextern const void * RTTI_PlayerControls__FlightControlMode;\r\nextern const void * RTTI_PlayerControls__FlightMovementHandler;\r\nextern const void * RTTI_PlayerControls__GrabRotationHandler;\r\nextern const void * RTTI_PlayerControls__GravJumpHandler;\r\nextern const void * RTTI_PlayerControls__JumpHandler;\r\nextern const void * RTTI_PlayerControls__LookHandler;\r\nextern const void * RTTI_PlayerControls__Manager;\r\nextern const void * RTTI_PlayerControls__MonocleHandler;\r\nextern const void * RTTI_PlayerControls__MovementHandler;\r\nextern const void * RTTI_PlayerControls__NvidiaStreamlineInputHandler;\r\nextern const void * RTTI_PlayerControls__PlayerCameraHandler;\r\nextern const void * RTTI_PlayerControls__RunHandler;\r\nextern const void * RTTI_PlayerControls__ShieldHandler;\r\nextern const void * RTTI_PlayerControls__ShipEquipmentHandler;\r\nextern const void * RTTI_PlayerControls__SneakHandler;\r\nextern const void * RTTI_PlayerControls__SprintHandler;\r\nextern const void * RTTI_PlayerControls__StandardFlightControlMode;\r\nextern const void * RTTI_PlayerControls__StarbornPowerHandler;\r\nextern const void * RTTI_PlayerControls__TogglePOVHandler;\r\nextern const void * RTTI_PlayerControls__ToggleRunHandler;\r\nextern const void * RTTI_PlayerControls__VehicleHandler;\r\nextern const void * RTTI_PlayerControls__WeaponAttackHandler;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__NotTriggered;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__Triggered;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredAutomatic;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredBurst;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredBurstEnd;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredContinuous;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredFirstStage;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredOnRelease;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredSecondStage;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredSingle;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredWaitForRelease;\r\nextern const void * RTTI_PlayerControls__WeaponAttackTriggerStates__Unequipped;\r\nextern const void * RTTI_PlayerControls__WeaponBlockActionHandler;\r\nextern const void * RTTI_PlayerControls__WeaponFocusHandler;\r\nextern const void * RTTI_PlayerControls__WeaponMeleeHandler;\r\nextern const void * RTTI_PlayerControls__WeaponReadyHandler;\r\nextern const void * RTTI_PlayerControls__WeaponReloadHandler;\r\nextern const void * RTTI_PlayerControls__WeaponSightedActionHandler;\r\nextern const void * RTTI_PlayerControls__ZKeyHandler;\r\nextern const void * RTTI_PlayerDataModel;\r\nextern const void * RTTI_PlayerDataModel__PlayerDataEventShuttle;\r\nextern const void * RTTI_PlayerFastEquipSoundHandler;\r\nextern const void * RTTI_PlayerFurnitureExitHandler;\r\nextern const void * RTTI_PlayerInventoryDataModel;\r\nextern const void * RTTI_PlayerInventoryItem;\r\nextern const void * RTTI_PlayerRegionState;\r\nextern const void * RTTI_PlayerSleepWaitMovementControllerAdapter;\r\nextern const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToLoadedSetControllerFunctor;\r\nextern const void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToUnloadedSetControllerFunctor;\r\nextern const void * RTTI_PlayerSpaceUtils__EventSink;\r\nextern const void * RTTI_PlayerSpaceUtils__PlayerSpaceUtilsEventHandler;\r\nextern const void * RTTI_PlayerSpaceUtils___unnamed_type_SpaceAsteroidsWorldStepListener_;\r\nextern const void * RTTI_PlayerStatusDataModel;\r\nextern const void * RTTI_PlayerStatusDataModel__PlayerStatusEventShuttle;\r\nextern const void * RTTI_PlayerTraversalState;\r\nextern const void * RTTI_PoseDeformerData;\r\nextern const void * RTTI_PoseDeformerInstance;\r\nextern const void * RTTI_PostAttachActionsFunctor;\r\nextern const void * RTTI_PostBoneModifierControl;\r\nextern const void * RTTI_PostBoneModifierControlInstance;\r\nextern const void * RTTI_PostStepTask;\r\nextern const void * RTTI_PowerArmor__EventHandler;\r\nextern const void * RTTI_PowerUtils__PowerUtilsReferenceEventSink;\r\nextern const void * RTTI_PowersMenu;\r\nextern const void * RTTI_PowersMenu_ActivateEssence;\r\nextern const void * RTTI_PowersMenu_EquipPower;\r\nextern const void * RTTI_PowersMenu_FavoriteEssence;\r\nextern const void * RTTI_PowersMenu_FavoritePower;\r\nextern const void * RTTI_PowersMenu_UpgradePower;\r\nextern const void * RTTI_PowersMenu__PowersMenuEventShuttle;\r\nextern const void * RTTI_PreStepTask;\r\nextern const void * RTTI_Precipitation;\r\nextern const void * RTTI_PrecipitationEffectController;\r\nextern const void * RTTI_Preload__Manager;\r\nextern const void * RTTI_Preload__PostProcessDependencyNode;\r\nextern const void * RTTI_PreparePartitionTreeBuffers;\r\nextern const void * RTTI_Probe__ReflectionProbeRenderOptions;\r\nextern const void * RTTI_ProcessListMovementInterface;\r\nextern const void * RTTI_ProcessLists;\r\nextern const void * RTTI_ProcessLists__GetActorsFilter;\r\nextern const void * RTTI_Projectile;\r\nextern const void * RTTI_ProjectileLOSCollector;\r\nextern const void * RTTI_Projectile__Manager;\r\nextern const void * RTTI_QuestDataModel;\r\nextern const void * RTTI_QuestDataModel__QuestGameEventShuttle;\r\nextern const void * RTTI_QuestPathingRequest;\r\nextern const void * RTTI_QueuedCellAttachService;\r\nextern const void * RTTI_QueuedCharacter;\r\nextern const void * RTTI_QueuedExplosionArt;\r\nextern const void * RTTI_QueuedFile;\r\nextern const void * RTTI_QueuedLocationLoadTask;\r\nextern const void * RTTI_QueuedPlayer;\r\nextern const void * RTTI_QueuedPromoteLargeReferencesTask;\r\nextern const void * RTTI_QueuedPromoteQuestTask;\r\nextern const void * RTTI_QueuedPromoteReferencesTask;\r\nextern const void * RTTI_QueuedReference;\r\nextern const void * RTTI_QueuedReferenceCallbackNode;\r\nextern const void * RTTI_QuickSaveLoadHandler;\r\nextern const void * RTTI_REFREventCallbacks__IEventCallback;\r\nextern const void * RTTI_REFREventCallbacks__IEventCallbackFactory;\r\nextern const void * RTTI_RagdollAndGetUpHandler;\r\nextern const void * RTTI_RagdollFurnitureModifier;\r\nextern const void * RTTI_RagdollGetUp;\r\nextern const void * RTTI_RagdollGetUpInstance;\r\nextern const void * RTTI_RagdollStartHandler;\r\nextern const void * RTTI_RallyEffect;\r\nextern const void * RTTI_RandomAnimationNode;\r\nextern const void * RTTI_RandomAnimationNodeInstance;\r\nextern const void * RTTI_RangedAimAssistImpl;\r\nextern const void * RTTI_ReanimateEffect;\r\nextern const void * RTTI_RecoilStopHandler;\r\nextern const void * RTTI_ReevaluateGraphStateHandler;\r\nextern const void * RTTI_RefAttachTechniqueInput;\r\nextern const void * RTTI_ReferenceEffect;\r\nextern const void * RTTI_ReferenceEffectController;\r\nextern const void * RTTI_ReferenceEndAnimatedCameraHandler;\r\nextern const void * RTTI_ReferenceRunActionHandler;\r\nextern const void * RTTI_ReferenceStartAnimatedCameraHandler;\r\nextern const void * RTTI_ReferenceStartImagespaceModifierHandler;\r\nextern const void * RTTI_ReferenceStopImagespaceModifierHandler;\r\nextern const void * RTTI_ReflectionProbeCellComponent;\r\nextern const void * RTTI_RefrInteraction;\r\nextern const void * RTTI_Refuel_Accept;\r\nextern const void * RTTI_Refuel_Cancel;\r\nextern const void * RTTI_RegSettingCollection;\r\nextern const void * RTTI_ReloadCompleteHandler;\r\nextern const void * RTTI_ReloadProgressBar;\r\nextern const void * RTTI_ReloadStateChangeHandler;\r\nextern const void * RTTI_RemoveRagdollHandler;\r\nextern const void * RTTI_ResearchDataModel;\r\nextern const void * RTTI_ResearchDataModel__ResearchDataEventShuttle;\r\nextern const void * RTTI_ResearchMenu;\r\nextern const void * RTTI_ResearchMenu_AddMaterial;\r\nextern const void * RTTI_ResearchMenu_CategorySelected;\r\nextern const void * RTTI_ResearchMenu_ExitMenu;\r\nextern const void * RTTI_ResearchMenu_HideModel;\r\nextern const void * RTTI_ResearchMenu_PreviewProject;\r\nextern const void * RTTI_ResearchMenu_ProjectViewed;\r\nextern const void * RTTI_ResearchMenu_SetInspectControls;\r\nextern const void * RTTI_ResearchMenu_ToggleTrackingProject;\r\nextern const void * RTTI_Research__Manager;\r\nextern const void * RTTI_Reset3DMobIterator;\r\nextern const void * RTTI_ResetFloraEffect;\r\nextern const void * RTTI_Reticle_OnCruiseActivate;\r\nextern const void * RTTI_Reticle_OnCruiseExitAnimFinished;\r\nextern const void * RTTI_Reticle_OnCruiseLockCourse;\r\nextern const void * RTTI_Reticle_OnLongAnimFinished;\r\nextern const void * RTTI_RevertSelectedSpellFunctor;\r\nextern const void * RTTI_RigMesh__BoneAttaches;\r\nextern const void * RTTI_RigMesh__BoneTranslations;\r\nextern const void * RTTI_RigSwitch;\r\nextern const void * RTTI_RigSwitchInstance;\r\nextern const void * RTTI_RightHandSpellCastHandler;\r\nextern const void * RTTI_RightHandSpellFireHandler;\r\nextern const void * RTTI_RollingBone;\r\nextern const void * RTTI_RollingBoneInstance;\r\nextern const void * RTTI_RootTwist;\r\nextern const void * RTTI_RootTwistInstance;\r\nextern const void * RTTI_RotationVariable;\r\nextern const void * RTTI_RotationVariableInstance;\r\nextern const void * RTTI_RuntimeComponentDBFactory__UnloadedComponentBase;\r\nextern const void * RTTI_RuntimeComponentDBFactory__UnloadedComponentStorage;\r\nextern const void * RTTI_SKClosestHitCollector;\r\nextern const void * RTTI_SWFToCodeFunctionHandler;\r\nextern const void * RTTI_SandManKillHandler;\r\nextern const void * RTTI_SaveBufferStorageWrapper;\r\nextern const void * RTTI_SaveFileStorageWrapper;\r\nextern const void * RTTI_SaveGameCollection;\r\nextern const void * RTTI_SaveGameMagicCasterVisitor;\r\nextern const void * RTTI_SaveLoadMagicCasterVisitor;\r\nextern const void * RTTI_SaveLoadTester__IgnoreAsserts;\r\nextern const void * RTTI_SaveLoadTester__Service;\r\nextern const void * RTTI_SaveLoad__BlockingIONode;\r\nextern const void * RTTI_SaveLoad__CleanupService__Impl;\r\nextern const void * RTTI_SaveStorageWrapperBase;\r\nextern const void * RTTI_ScalarAnimation;\r\nextern const void * RTTI_ScaleformFile__MemoryFile;\r\nextern const void * RTTI_Scaleform__AcquireInterface;\r\nextern const void * RTTI_Scaleform__AmpMovieObjectDesc;\r\nextern const void * RTTI_Scaleform__BoolFormatter;\r\nextern const void * RTTI_Scaleform__BufferedFile;\r\nextern const void * RTTI_Scaleform__DefaultAcquireInterface;\r\nextern const void * RTTI_Scaleform__DelegatedFile;\r\nextern const void * RTTI_Scaleform__DoubleFormatter;\r\nextern const void * RTTI_Scaleform__Event;\r\nextern const void * RTTI_Scaleform__FILEFile;\r\nextern const void * RTTI_Scaleform__FmtResource;\r\nextern const void * RTTI_Scaleform__GFx__AS3Support;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AS3ByteArray_DIPixelProvider;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AS3Vectoruint_DIPixelProvider;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ASRefCountCollector;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ASVM;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ASVM__AbcFileWithMovieDef;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AbcDataBuffer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Abc__File;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ArrayBase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmBitmap;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmButton;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmDisplayObj;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmInteractiveObj;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmLoader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmMovieClip;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmSprite;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmStage;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmStaticText;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmTextField;\r\nextern const void * RTTI_Scaleform__GFx__AS3__AvmTextField__CSSHolder;\r\nextern const void * RTTI_Scaleform__GFx__AS3__BASlotFunctCalc;\r\nextern const void * RTTI_Scaleform__GFx__AS3__BASlotFunctSrlzFixedName;\r\nextern const void * RTTI_Scaleform__GFx__AS3__BASlotFunctSrlzFixedValue;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Class;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassCallConstruct;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__ClassClass;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__Traits;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__UserDefined;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__ArgumentError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Array;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Boolean;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Catch;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Date;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__DefinitionError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Domain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Error;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__EvalError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Function;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Math;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Namespace;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Number;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__QName;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__RangeError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__ReferenceError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__RegExp;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__SecurityError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__SyntaxError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__TypeError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__URIError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__UninitializedError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__VerifyError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__XML;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__XMLList;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__int_;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__void_;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__Accessibility;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__AccessibilityImplementation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__AccessibilityProperties;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__ISearchableText;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__ISimpleTextSelection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__AVM1Movie;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ActionScriptVersion;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Bitmap;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__BitmapData;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__BitmapDataChannel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__BlendMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__CapsStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__DisplayObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__DisplayObjectContainer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__FrameLabel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GradientType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Graphics;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsBitmapFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsEndFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsGradientFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsPath;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsPathCommand;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsPathWinding;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsSolidFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsStroke;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IBitmapDrawable;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IGraphicsData;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IGraphicsFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IGraphicsPath;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__InteractiveObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__InterpolationMethod;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__JointStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__LineScaleMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Loader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__LoaderInfo;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__MorphShape;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__MovieClip;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__PixelSnapping;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__SWFVersion;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Scene;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Shader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderData;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderInput;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderJob;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderParameter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderParameterType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderPrecision;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Shape;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__SimpleButton;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__SpreadMethod;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Sprite;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Stage;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageAlign;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageDisplayState;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageQuality;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageScaleMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__EOFError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__IOError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__IllegalOperationError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__InvalidSWFError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__MemoryError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__ScriptTimeoutError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__StackOverflowError;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__AccelerometerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ActivityEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__AppLifecycleEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__AsyncErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ContextMenuEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__DataEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__Event;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__EventDispatcher;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__EventPhase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__FocusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__FullScreenEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__GeolocationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__GestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__GesturePhase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__HTTPStatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__IEventDispatcher;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__IMEEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__IOErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__KeyboardEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__MouseEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__NetStatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__PressAndTapGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ProgressEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__SecurityErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__StageOrientation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__StageOrientationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__StatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__SyncEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TextEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TimerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TouchEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TransformGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__UncaughtErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__UncaughtErrorEvents;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_external__ExternalInterface;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BevelFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BitmapFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BitmapFilterQuality;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BitmapFilterType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BlurFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__ColorMatrixFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__ConvolutionFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__DisplacementMapFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__DisplacementMapFilterMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__DropShadowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__GlowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__GradientBevelFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__GradientGlowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__ShaderFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__ColorTransform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Matrix;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Matrix3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__PerspectiveProjection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Point;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Rectangle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Transform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Utils3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Vector3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__DisplayObjectEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__Extensions;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__FocusEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__FocusManager;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__GamePad;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__GamePadAnalogEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__IMECandidateListStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__IMEEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__IMEEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__InteractiveObjectEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__KeyboardEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__MouseCursorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__MouseEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__SystemEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__TextEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__TextFieldEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__Camera;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__ID3Info;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__Microphone;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__Sound;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundChannel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundLoaderContext;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundMixer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundTransform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__FileFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__FileReference;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__FileReferenceList;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__IDynamicPropertyOutput;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__IDynamicPropertyWriter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__LocalConnection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__NetConnection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__ObjectEncoding;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__Responder;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__SharedObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__SharedObjectFlushStatus;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__Socket;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLLoader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLLoaderDataFormat;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLRequest;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLRequestHeader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLRequestMethod;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLStream;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLVariables;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__XMLSocket;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_sensors__Accelerometer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__ApplicationDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__Capabilities;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__IME;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__IMEConversionMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__LoaderContext;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__Security;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__SecurityDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__SecurityPanel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__System;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__AntiAliasType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__CSMSettings;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__Font;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__FontStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__FontType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__GridFitType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__StaticText;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__StyleSheet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextColorType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextDisplayMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextField;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFieldAutoSize;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFieldType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFormat;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFormatAlign;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextLineMetrics;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextRenderer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextSnapshot;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenu;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenuBuiltInItems;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenuClipboardItems;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenuItem;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__KeyLocation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__Keyboard;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__Mouse;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__MouseCursor;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__Multitouch;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__MultitouchInputMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__ByteArray;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Dictionary;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Endian;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__IDataInput;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__IDataOutput;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__IExternalizable;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Proxy;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Timer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_double;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_int;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_xml__XMLDocument;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_xml__XMLNode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_xml__XMLNodeType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__ClassClass;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__UDBase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__UserDefined;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Array;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Boolean;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Catch;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Date;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Domain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Error;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Function;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Math;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Namespace;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Number;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__Object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__QName;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__RegExp;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__XML;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__XMLList;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__int_;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl__uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_accessibility__Accessibility;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__ActionScriptVersion;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__BitmapDataChannel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__BlendMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__CapsStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__GradientType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__GraphicsPathCommand;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__GraphicsPathWinding;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__InterpolationMethod;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__JointStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__LineScaleMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__LoaderInfo;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__PixelSnapping;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__SWFVersion;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__ShaderParameterType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__ShaderPrecision;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__SpreadMethod;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__Stage;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageAlign;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageDisplayState;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageQuality;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageScaleMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__AccelerometerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ActivityEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__AppLifecycleEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__AsyncErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ContextMenuEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__DataEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__Event;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__EventDispatcher;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__EventPhase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__FocusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__FullScreenEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__GeolocationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__GestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__GesturePhase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__HTTPStatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__IMEEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__IOErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__KeyboardEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__MouseEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__NetStatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__PressAndTapGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ProgressEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__SecurityErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__StageOrientation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__StageOrientationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__StatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__SyncEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TextEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TimerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TouchEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TransformGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__UncaughtErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_external__ExternalInterface;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_filters__BitmapFilterQuality;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_filters__BitmapFilterType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_filters__DisplacementMapFilterMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_geom__Point;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_geom__Utils3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_geom__Vector3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__DisplayObjectEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__Extensions;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__FocusManager;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__GamePad;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__GamePadAnalogEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__IMEEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__IMEEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__InteractiveObjectEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__MouseCursorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__MouseEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__SystemEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__TextEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__TextFieldEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_media__Camera;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_media__Microphone;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_media__SoundMixer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__ObjectEncoding;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__SharedObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__SharedObjectFlushStatus;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__URLLoaderDataFormat;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__URLRequestMethod;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_sensors__Accelerometer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__ApplicationDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__Capabilities;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__IME;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__IMEConversionMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__Security;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__SecurityDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__SecurityPanel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__System;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__AntiAliasType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__Font;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__FontStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__FontType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__GridFitType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextColorType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextDisplayMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextField;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextFieldAutoSize;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextFieldType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextFormatAlign;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextRenderer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__KeyLocation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__Keyboard;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__Mouse;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__MouseCursor;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__Multitouch;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__MultitouchInputMode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_utils__ByteArray;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_utils__Endian;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_double;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_int;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Classes__fl_xml__XMLNodeType;\r\nextern const void * RTTI_Scaleform__GFx__AS3__DoAbc;\r\nextern const void * RTTI_Scaleform__GFx__AS3__FlashUI;\r\nextern const void * RTTI_Scaleform__GFx__AS3__FrameCounter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__GASRefCountBase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__IMEManager;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Impl__ArrayFunc;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Impl__Value2NumberCollector;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Impl__Value2StrCollector;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Impl__ValuePtrCollector;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instance;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Activation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Anonimous;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__CTraits;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__ClassClass;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Interface;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Prototype;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__RTraits;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Traits;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__UserDefined;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Array;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Boolean;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Catch;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Date;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Domain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Error;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Function;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__GlobalObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__GlobalObjectScript;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__MethodInd;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Namespace;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Number;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__QName;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__RegExp;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Thunk;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__ThunkFunction;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__VTableInd;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__XML;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__XMLList;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__int_;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_accessibility__AccessibilityImplementation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_accessibility__AccessibilityProperties;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__AVM1Movie;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Bitmap;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__BitmapData;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__DisplayObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__DisplayObjectContainer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__FrameLabel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Graphics;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsBitmapFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsEndFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsGradientFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsPath;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsSolidFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsStroke;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__InteractiveObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Loader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__LoaderInfo;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__MorphShape;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__MovieClip;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Scene;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Shape;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__SimpleButton;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Sprite;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Stage;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__AccelerometerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__AppLifecycleEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__AsyncErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__ErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__Event;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__EventDispatcher;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__FocusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__GeolocationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__GestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__IMEEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__IOErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__KeyboardEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__MouseEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__NetStatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__PressAndTapGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__ProgressEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__StageOrientationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__StatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TextEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TimerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TouchEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TransformGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__UncaughtErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__UncaughtErrorEvents;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__BevelFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__BitmapFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__BlurFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__ColorMatrixFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__DisplacementMapFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__DropShadowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__GlowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__GradientBevelFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__GradientGlowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__ColorTransform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Matrix;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Matrix3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__PerspectiveProjection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Point;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Rectangle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Transform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Vector3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__FocusEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__GamePadAnalogEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__IMECandidateListStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__IMEEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__KeyboardEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__MouseCursorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__MouseEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__TextEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__ID3Info;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__Sound;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__SoundChannel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__SoundLoaderContext;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__SoundTransform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__FileReference;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__NetConnection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__SharedObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__Socket;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLLoader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLRequest;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLRequestHeader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLVariables;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_sensors__Accelerometer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_system__ApplicationDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_system__LoaderContext;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_system__SecurityDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__CSMSettings;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__Font;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__StaticText;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__StyleSheet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextField;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextFormat;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextLineMetrics;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextSnapshot;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_ui__ContextMenu;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_ui__ContextMenuBuiltInItems;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_ui__ContextMenuClipboardItems;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__ByteArray;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__Dictionary;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__Proxy;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__Timer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_double;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_int;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_xml__XMLDocument;\r\nextern const void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_xml__XMLNode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Array;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__AttrGet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__AttrGetFirst;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Catch;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__CheckTypeTF;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__ChildGet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__ChildGetFirst;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Date;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Domain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__EmptyCallBack;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Error;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Function;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__FunctionAOT;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__FunctionBase;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__GlobalObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__GlobalObjectCPP;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__GlobalObjectScript;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__ListGet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Namespace;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__Object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__QName;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__RegExp;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__ThunkFunction;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XML;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLAttr;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLComment;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLElement;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLElement__CallBack;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLList;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLList__CallBack;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLProcInstr;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLText;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_accessibility__AccessibilityImplementation;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_accessibility__AccessibilityProperties;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__AVM1Movie;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Bitmap;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__BitmapData;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__DisplayObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__DisplayObjectContainer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__FrameLabel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Graphics;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsBitmapFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsEndFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsGradientFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsPath;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsSolidFill;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsStroke;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__InteractiveObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Loader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__LoaderInfo;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__MorphShape;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__MovieClip;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Scene;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Shape;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__SimpleButton;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Sprite;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Stage;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__AccelerometerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__AppLifecycleEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__AsyncErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__ErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__Event;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__EventDispatcher;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__FocusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__GeolocationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__GestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__IMEEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__IOErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__KeyboardEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__MouseEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__NetStatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__PressAndTapGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__ProgressEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__StageOrientationEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__StatusEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TextEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TimerEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TouchEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TransformGestureEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__UncaughtErrorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__UncaughtErrorEvents;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__BevelFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__BitmapFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__BlurFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__ColorMatrixFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__DisplacementMapFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__DropShadowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__GlowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__GradientBevelFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__GradientGlowFilter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__ColorTransform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Matrix;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Matrix3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__PerspectiveProjection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Point;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Rectangle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Transform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Vector3D;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__FocusEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__GamePadAnalogEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__IMECandidateListStyle;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__IMEEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__KeyboardEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__MouseCursorEvent;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__MouseEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__TextEventEx;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__ID3Info;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__Sound;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__SoundChannel;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__SoundLoaderContext;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__SoundTransform;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__FileReference;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__NetConnection;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__SharedObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__Socket;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__SocketReader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__SocketWriter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLLoader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLRequest;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLRequestHeader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLVariables;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_sensors__Accelerometer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_system__ApplicationDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_system__LoaderContext;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_system__SecurityDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__CSMSettings;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__Font;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__StaticText;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__StyleSheet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextField;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextFormat;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextLineMetrics;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextSnapshot;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_ui__ContextMenu;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_ui__ContextMenuBuiltInItems;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_ui__ContextMenuClipboardItems;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__BAReader;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__BASlotFunctCalc;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__BAWriter;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__ByteArray;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__Dictionary;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__Proxy;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__Timer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_String;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_double;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_int;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_uint;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_xml__XMLDocument;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Instances__fl_xml__XMLNode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__IntervalTimer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__LoadQueueEntry;\r\nextern const void * RTTI_Scaleform__GFx__AS3__LoadQueueEntryMT_LoadMovie;\r\nextern const void * RTTI_Scaleform__GFx__AS3__MemoryContextImpl;\r\nextern const void * RTTI_Scaleform__GFx__AS3__MemoryContextImpl__HeapLimit;\r\nextern const void * RTTI_Scaleform__GFx__AS3__MovieDefRootNode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__MovieRoot;\r\nextern const void * RTTI_Scaleform__GFx__AS3__MovieRoot__StickyVarNode;\r\nextern const void * RTTI_Scaleform__GFx__AS3__NamespaceInstanceFactory;\r\nextern const void * RTTI_Scaleform__GFx__AS3__NamespaceSet;\r\nextern const void * RTTI_Scaleform__GFx__AS3__NotifyLoadInitCandidateList;\r\nextern const void * RTTI_Scaleform__GFx__AS3__NullObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Object;\r\nextern const void * RTTI_Scaleform__GFx__AS3__SerializeArrDense;\r\nextern const void * RTTI_Scaleform__GFx__AS3__SerializeArrSparse;\r\nextern const void * RTTI_Scaleform__GFx__AS3__ShapeObject;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Slots__SlotFunct;\r\nextern const void * RTTI_Scaleform__GFx__AS3__SocketBuffer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__SocketThreadMgr;\r\nextern const void * RTTI_Scaleform__GFx__AS3__SocketThreadMgr__EventInfo;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Stage;\r\nextern const void * RTTI_Scaleform__GFx__AS3__TextSnapshotGlyphVisitor;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Tracer;\r\nextern const void * RTTI_Scaleform__GFx__AS3__Traits;\r\nextern const void * RTTI_Scaleform__GFx__AS3__UserDefinedFunction;\r\nextern const void * RTTI_Scaleform__GFx__AS3__VM;\r\nextern const void * RTTI_Scaleform__GFx__AS3__VMAbcFile;\r\nextern const void * RTTI_Scaleform__GFx__AS3__VMAppDomain;\r\nextern const void * RTTI_Scaleform__GFx__AS3__VMFile;\r\nextern const void * RTTI_Scaleform__GFx__AS3__XMLSupport;\r\nextern const void * RTTI_Scaleform__GFx__AS3__XMLSupportImpl;\r\nextern const void * RTTI_Scaleform__GFx__ASIMEManager;\r\nextern const void * RTTI_Scaleform__GFx__ASIMEManager__IMEFuncHandler;\r\nextern const void * RTTI_Scaleform__GFx__ASIntervalTimerIntf;\r\nextern const void * RTTI_Scaleform__GFx__ASMovieRootBase;\r\nextern const void * RTTI_Scaleform__GFx__ASStringManager;\r\nextern const void * RTTI_Scaleform__GFx__AvmDisplayObjBase;\r\nextern const void * RTTI_Scaleform__GFx__Button;\r\nextern const void * RTTI_Scaleform__GFx__ButtonDef;\r\nextern const void * RTTI_Scaleform__GFx__Clipboard;\r\nextern const void * RTTI_Scaleform__GFx__ConstShapeNoStyles;\r\nextern const void * RTTI_Scaleform__GFx__ConstShapeWithStyles;\r\nextern const void * RTTI_Scaleform__GFx__DefaultFontLibNameState;\r\nextern const void * RTTI_Scaleform__GFx__DisplayObjContainer;\r\nextern const void * RTTI_Scaleform__GFx__DisplayObject;\r\nextern const void * RTTI_Scaleform__GFx__DisplayObjectBase;\r\nextern const void * RTTI_Scaleform__GFx__DrawText;\r\nextern const void * RTTI_Scaleform__GFx__DrawTextImpl;\r\nextern const void * RTTI_Scaleform__GFx__DrawTextManager;\r\nextern const void * RTTI_Scaleform__GFx__DrawingContext;\r\nextern const void * RTTI_Scaleform__GFx__DrawingContext__PackedShape;\r\nextern const void * RTTI_Scaleform__GFx__ExecuteTag;\r\nextern const void * RTTI_Scaleform__GFx__FontCompactor;\r\nextern const void * RTTI_Scaleform__GFx__FontData;\r\nextern const void * RTTI_Scaleform__GFx__FontDataBound;\r\nextern const void * RTTI_Scaleform__GFx__FontDataCompactedGfx;\r\nextern const void * RTTI_Scaleform__GFx__FontDataCompactedSwf;\r\nextern const void * RTTI_Scaleform__GFx__FontGlyphPacker;\r\nextern const void * RTTI_Scaleform__GFx__FontHandle;\r\nextern const void * RTTI_Scaleform__GFx__FontLib;\r\nextern const void * RTTI_Scaleform__GFx__FontManager;\r\nextern const void * RTTI_Scaleform__GFx__FontManagerStates;\r\nextern const void * RTTI_Scaleform__GFx__FontMap;\r\nextern const void * RTTI_Scaleform__GFx__FontResource;\r\nextern const void * RTTI_Scaleform__GFx__FontResourceCreator;\r\nextern const void * RTTI_Scaleform__GFx__FunctionHandler;\r\nextern const void * RTTI_Scaleform__GFx__GFxInitImportActions;\r\nextern const void * RTTI_Scaleform__GFx__GFxMovieDataDefFileKeyData;\r\nextern const void * RTTI_Scaleform__GFx__GFxMovieDataDefFileKeyInterface;\r\nextern const void * RTTI_Scaleform__GFx__GFxMovieDefImplKey;\r\nextern const void * RTTI_Scaleform__GFx__GFxMovieDefImplKeyInterface;\r\nextern const void * RTTI_Scaleform__GFx__GFxPlaceObjectUnpacked;\r\nextern const void * RTTI_Scaleform__GFx__GFxSocketImpl;\r\nextern const void * RTTI_Scaleform__GFx__GFxSystemFontResourceKey;\r\nextern const void * RTTI_Scaleform__GFx__GFxSystemFontResourceKeyInterface;\r\nextern const void * RTTI_Scaleform__GFx__IMEManagerBase;\r\nextern const void * RTTI_Scaleform__GFx__ImageCreator;\r\nextern const void * RTTI_Scaleform__GFx__ImageFileHandlerRegistry;\r\nextern const void * RTTI_Scaleform__GFx__ImageFileInfo;\r\nextern const void * RTTI_Scaleform__GFx__ImageFileInfoKeyData;\r\nextern const void * RTTI_Scaleform__GFx__ImageFileKeyInterface;\r\nextern const void * RTTI_Scaleform__GFx__ImageFileResourceCreator;\r\nextern const void * RTTI_Scaleform__GFx__ImageResource;\r\nextern const void * RTTI_Scaleform__GFx__ImageResourceCreator;\r\nextern const void * RTTI_Scaleform__GFx__ImageResource__ImageDelegate;\r\nextern const void * RTTI_Scaleform__GFx__ImageShapeCharacterDef;\r\nextern const void * RTTI_Scaleform__GFx__InteractiveObject;\r\nextern const void * RTTI_Scaleform__GFx__KeyboardState;\r\nextern const void * RTTI_Scaleform__GFx__KeyboardState__IListener;\r\nextern const void * RTTI_Scaleform__GFx__LZMAFile;\r\nextern const void * RTTI_Scaleform__GFx__LZMASupport;\r\nextern const void * RTTI_Scaleform__GFx__LoadBinaryTask;\r\nextern const void * RTTI_Scaleform__GFx__LoadProcess;\r\nextern const void * RTTI_Scaleform__GFx__LoadQueueEntry;\r\nextern const void * RTTI_Scaleform__GFx__LoadQueueEntryMT;\r\nextern const void * RTTI_Scaleform__GFx__LoadQueueEntryMT_LoadBinary;\r\nextern const void * RTTI_Scaleform__GFx__LoadQueueEntryMT_LoadVars;\r\nextern const void * RTTI_Scaleform__GFx__LoadStates;\r\nextern const void * RTTI_Scaleform__GFx__LoadUpdateSync;\r\nextern const void * RTTI_Scaleform__GFx__LoadVarsTask;\r\nextern const void * RTTI_Scaleform__GFx__Loader;\r\nextern const void * RTTI_Scaleform__GFx__LoaderImpl;\r\nextern const void * RTTI_Scaleform__GFx__LoaderTask;\r\nextern const void * RTTI_Scaleform__GFx__LogState;\r\nextern const void * RTTI_Scaleform__GFx__MemoryBufferZlibImage;\r\nextern const void * RTTI_Scaleform__GFx__MemoryContext;\r\nextern const void * RTTI_Scaleform__GFx__MorphCharacterDef;\r\nextern const void * RTTI_Scaleform__GFx__Movie;\r\nextern const void * RTTI_Scaleform__GFx__MovieBindProcess;\r\nextern const void * RTTI_Scaleform__GFx__MovieDataDef;\r\nextern const void * RTTI_Scaleform__GFx__MovieDataDef__LoadTaskData;\r\nextern const void * RTTI_Scaleform__GFx__MovieDefBindStates;\r\nextern const void * RTTI_Scaleform__GFx__MovieDefImpl;\r\nextern const void * RTTI_Scaleform__GFx__MovieDefImpl__BindTaskData;\r\nextern const void * RTTI_Scaleform__GFx__MovieDefImpl__ReleaseNotifier;\r\nextern const void * RTTI_Scaleform__GFx__MovieDefRootNode;\r\nextern const void * RTTI_Scaleform__GFx__MovieDef__ResourceVisitor;\r\nextern const void * RTTI_Scaleform__GFx__MovieImageLoadTask;\r\nextern const void * RTTI_Scaleform__GFx__MovieImpl;\r\nextern const void * RTTI_Scaleform__GFx__MovieImpl__StickyVarNode;\r\nextern const void * RTTI_Scaleform__GFx__MovieImpl__WideStringStorage;\r\nextern const void * RTTI_Scaleform__GFx__MoviePreloadTask;\r\nextern const void * RTTI_Scaleform__GFx__ParseControl;\r\nextern const void * RTTI_Scaleform__GFx__PlaceObject2Tag;\r\nextern const void * RTTI_Scaleform__GFx__PlaceObject2Taga;\r\nextern const void * RTTI_Scaleform__GFx__PlaceObject3Tag;\r\nextern const void * RTTI_Scaleform__GFx__PlaceObjectTag;\r\nextern const void * RTTI_Scaleform__GFx__RemoveObject2Tag;\r\nextern const void * RTTI_Scaleform__GFx__RemoveObjectTag;\r\nextern const void * RTTI_Scaleform__GFx__Resource;\r\nextern const void * RTTI_Scaleform__GFx__ResourceData__DataInterface;\r\nextern const void * RTTI_Scaleform__GFx__ResourceFileInfo;\r\nextern const void * RTTI_Scaleform__GFx__ResourceKey__KeyInterface;\r\nextern const void * RTTI_Scaleform__GFx__ResourceLib;\r\nextern const void * RTTI_Scaleform__GFx__ResourceLib__ResourceSlot;\r\nextern const void * RTTI_Scaleform__GFx__ResourceReport;\r\nextern const void * RTTI_Scaleform__GFx__ResourceWeakLib;\r\nextern const void * RTTI_Scaleform__GFx__SetBackgroundColorTag;\r\nextern const void * RTTI_Scaleform__GFx__ShapeBaseCharacterDef;\r\nextern const void * RTTI_Scaleform__GFx__ShapeDataBase;\r\nextern const void * RTTI_Scaleform__GFx__SocketImplFactory;\r\nextern const void * RTTI_Scaleform__GFx__SocketInterface;\r\nextern const void * RTTI_Scaleform__GFx__Sprite;\r\nextern const void * RTTI_Scaleform__GFx__SpriteDef;\r\nextern const void * RTTI_Scaleform__GFx__State;\r\nextern const void * RTTI_Scaleform__GFx__StateBag;\r\nextern const void * RTTI_Scaleform__GFx__StateBagImpl;\r\nextern const void * RTTI_Scaleform__GFx__StaticTextCharacter;\r\nextern const void * RTTI_Scaleform__GFx__StaticTextDef;\r\nextern const void * RTTI_Scaleform__GFx__StaticTextSnapshotData__GlyphVisitor;\r\nextern const void * RTTI_Scaleform__GFx__Stream;\r\nextern const void * RTTI_Scaleform__GFx__SubImageResource;\r\nextern const void * RTTI_Scaleform__GFx__SubImageResourceCreator;\r\nextern const void * RTTI_Scaleform__GFx__SubImageResourceInfo;\r\nextern const void * RTTI_Scaleform__GFx__SwfShapeCharacterDef;\r\nextern const void * RTTI_Scaleform__GFx__Task;\r\nextern const void * RTTI_Scaleform__GFx__TextField;\r\nextern const void * RTTI_Scaleform__GFx__TextFieldDef;\r\nextern const void * RTTI_Scaleform__GFx__TextField__CSSHolderBase;\r\nextern const void * RTTI_Scaleform__GFx__TextField__TextDocumentListener;\r\nextern const void * RTTI_Scaleform__GFx__TextKeyMap;\r\nextern const void * RTTI_Scaleform__GFx__Text__CompositionString;\r\nextern const void * RTTI_Scaleform__GFx__Text__EditorKit;\r\nextern const void * RTTI_Scaleform__GFx__Text__StyleManager;\r\nextern const void * RTTI_Scaleform__GFx__TextureGlyphBinder;\r\nextern const void * RTTI_Scaleform__GFx__TextureGlyphData;\r\nextern const void * RTTI_Scaleform__GFx__TextureGlyphData__TextureGlyphVisitor;\r\nextern const void * RTTI_Scaleform__GFx__URLBuilder;\r\nextern const void * RTTI_Scaleform__GFx__Value__ObjectInterface;\r\nextern const void * RTTI_Scaleform__GFx__ZLibFile;\r\nextern const void * RTTI_Scaleform__GFx__ZlibImageSource;\r\nextern const void * RTTI_Scaleform__GFx__ZlibSupport;\r\nextern const void * RTTI_Scaleform__HeapPT__SysAllocGranulator;\r\nextern const void * RTTI_Scaleform__HeapPT__SysAllocWrapper;\r\nextern const void * RTTI_Scaleform__Log;\r\nextern const void * RTTI_Scaleform__LongFormatter;\r\nextern const void * RTTI_Scaleform__MemoryFile;\r\nextern const void * RTTI_Scaleform__MemoryHeap;\r\nextern const void * RTTI_Scaleform__MemoryHeapMH;\r\nextern const void * RTTI_Scaleform__MemoryHeapPT;\r\nextern const void * RTTI_Scaleform__MemoryHeap__LimitHandler;\r\nextern const void * RTTI_Scaleform__MsgFormat;\r\nextern const void * RTTI_Scaleform__Mutex;\r\nextern const void * RTTI_Scaleform__Mutex_AreadyLockedAcquireInterface;\r\nextern const void * RTTI_Scaleform__RefCountImplCore;\r\nextern const void * RTTI_Scaleform__RefCountNTSImplCore;\r\nextern const void * RTTI_Scaleform__RefCountWeakSupportImpl;\r\nextern const void * RTTI_Scaleform__Render__BevelFilter;\r\nextern const void * RTTI_Scaleform__Render__BlendModeBundle;\r\nextern const void * RTTI_Scaleform__Render__BlendModeEffect;\r\nextern const void * RTTI_Scaleform__Render__BlendPrimitive;\r\nextern const void * RTTI_Scaleform__Render__BlurFilter;\r\nextern const void * RTTI_Scaleform__Render__BlurFilterImpl;\r\nextern const void * RTTI_Scaleform__Render__Bundle;\r\nextern const void * RTTI_Scaleform__Render__CacheAsBitmapFilter;\r\nextern const void * RTTI_Scaleform__Render__CacheBase;\r\nextern const void * RTTI_Scaleform__Render__CacheEffect;\r\nextern const void * RTTI_Scaleform__Render__CacheablePrimitive;\r\nextern const void * RTTI_Scaleform__Render__CacheableTargetEffect;\r\nextern const void * RTTI_Scaleform__Render__ColorMatrixFilter;\r\nextern const void * RTTI_Scaleform__Render__ComplexFill;\r\nextern const void * RTTI_Scaleform__Render__ComplexMesh;\r\nextern const void * RTTI_Scaleform__Render__ComplexMeshVertexOutput;\r\nextern const void * RTTI_Scaleform__Render__ComplexPrimitiveBundle;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotify;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnCapture;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnNextCapture;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnSetCaptureThreadId;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnShutdown;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__ContextLock;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__EntryData;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__RTHandle__HandleData;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__RenderNotify;\r\nextern const void * RTTI_Scaleform__Render__ContextImpl__RenderNotify__ServiceCommand;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__DepthStencilSurface;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__HAL;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__IndexBuffer;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__MappedTexture;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__MeshBufferSet;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__MeshCache;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__MeshCacheItem;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__PendingResourceDestroyEntry;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__RenderEvents;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__RenderSync;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__RenderTargetData;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__ShaderInterface;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__ShaderInterface__MappedUniformBuffer;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__ShaderManager;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__Texture;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__TextureFormat;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__TextureManager;\r\nextern const void * RTTI_Scaleform__Render__CreationRenderer__VertexBuffer;\r\nextern const void * RTTI_Scaleform__Render__DDS__DDSFileImageSource;\r\nextern const void * RTTI_Scaleform__Render__DDS__FileReader;\r\nextern const void * RTTI_Scaleform__Render__DICommand;\r\nextern const void * RTTI_Scaleform__Render__DICommandQueue;\r\nextern const void * RTTI_Scaleform__Render__DICommandQueue__ExecuteCommand;\r\nextern const void * RTTI_Scaleform__Render__DICommand_ApplyFilter;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Clear;\r\nextern const void * RTTI_Scaleform__Render__DICommand_ColorTransform;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Compare;\r\nextern const void * RTTI_Scaleform__Render__DICommand_CopyChannel;\r\nextern const void * RTTI_Scaleform__Render__DICommand_CopyPixels;\r\nextern const void * RTTI_Scaleform__Render__DICommand_CreateTexture;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Dispose;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Draw;\r\nextern const void * RTTI_Scaleform__Render__DICommand_FillRect;\r\nextern const void * RTTI_Scaleform__Render__DICommand_FloodFill;\r\nextern const void * RTTI_Scaleform__Render__DICommand_GetColorBoundsRect;\r\nextern const void * RTTI_Scaleform__Render__DICommand_GetPixel32;\r\nextern const void * RTTI_Scaleform__Render__DICommand_GetPixels;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Histogram;\r\nextern const void * RTTI_Scaleform__Render__DICommand_HitTest;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Merge;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Noise;\r\nextern const void * RTTI_Scaleform__Render__DICommand_PaletteMap;\r\nextern const void * RTTI_Scaleform__Render__DICommand_PerlinNoise;\r\nextern const void * RTTI_Scaleform__Render__DICommand_PixelDissolve;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Scroll;\r\nextern const void * RTTI_Scaleform__Render__DICommand_SetPixel32;\r\nextern const void * RTTI_Scaleform__Render__DICommand_SetPixels;\r\nextern const void * RTTI_Scaleform__Render__DICommand_SourceRect;\r\nextern const void * RTTI_Scaleform__Render__DICommand_Threshold;\r\nextern const void * RTTI_Scaleform__Render__DIPixelProvider;\r\nextern const void * RTTI_Scaleform__Render__DepthStencilBuffer;\r\nextern const void * RTTI_Scaleform__Render__DepthStencilSurface;\r\nextern const void * RTTI_Scaleform__Render__DestroyDrawableImageThreadCommand;\r\nextern const void * RTTI_Scaleform__Render__DisplacementMapFilter;\r\nextern const void * RTTI_Scaleform__Render__DrawableImage;\r\nextern const void * RTTI_Scaleform__Render__DrawableImageContext;\r\nextern const void * RTTI_Scaleform__Render__Fence;\r\nextern const void * RTTI_Scaleform__Render__FenceWrapperList;\r\nextern const void * RTTI_Scaleform__Render__FileImageSource;\r\nextern const void * RTTI_Scaleform__Render__FilterBundle;\r\nextern const void * RTTI_Scaleform__Render__FilterEffect;\r\nextern const void * RTTI_Scaleform__Render__FilterPrimitive;\r\nextern const void * RTTI_Scaleform__Render__FilterSet;\r\nextern const void * RTTI_Scaleform__Render__Font;\r\nextern const void * RTTI_Scaleform__Render__FontCacheHandleManager;\r\nextern const void * RTTI_Scaleform__Render__GlowFilter;\r\nextern const void * RTTI_Scaleform__Render__GlyphCache;\r\nextern const void * RTTI_Scaleform__Render__GlyphCacheConfig;\r\nextern const void * RTTI_Scaleform__Render__GlyphCache__EvictNotifier;\r\nextern const void * RTTI_Scaleform__Render__GlyphEvictNotifier;\r\nextern const void * RTTI_Scaleform__Render__GlyphFitter;\r\nextern const void * RTTI_Scaleform__Render__GlyphRaster;\r\nextern const void * RTTI_Scaleform__Render__GlyphShape;\r\nextern const void * RTTI_Scaleform__Render__GlyphTextureImage;\r\nextern const void * RTTI_Scaleform__Render__GradientData;\r\nextern const void * RTTI_Scaleform__Render__GradientFilter;\r\nextern const void * RTTI_Scaleform__Render__GradientImage;\r\nextern const void * RTTI_Scaleform__Render__HAL;\r\nextern const void * RTTI_Scaleform__Render__HALBeginDisplayItem;\r\nextern const void * RTTI_Scaleform__Render__HALEndDisplayItem;\r\nextern const void * RTTI_Scaleform__Render__HALNotify;\r\nextern const void * RTTI_Scaleform__Render__HALSetUserMatrixItem__HALSetUserMatrixItemInterface;\r\nextern const void * RTTI_Scaleform__Render__Hairliner;\r\nextern const void * RTTI_Scaleform__Render__Image;\r\nextern const void * RTTI_Scaleform__Render__ImageFileHandler;\r\nextern const void * RTTI_Scaleform__Render__ImageFileHandlerRegistry;\r\nextern const void * RTTI_Scaleform__Render__ImageSwizzler;\r\nextern const void * RTTI_Scaleform__Render__ImageUpdate;\r\nextern const void * RTTI_Scaleform__Render__ImageUpdateSync;\r\nextern const void * RTTI_Scaleform__Render__JPEG__ExtraData;\r\nextern const void * RTTI_Scaleform__Render__JPEG__TablesHeader;\r\nextern const void * RTTI_Scaleform__Render__MappedTextureBase;\r\nextern const void * RTTI_Scaleform__Render__MaskBundle;\r\nextern const void * RTTI_Scaleform__Render__MaskEffect;\r\nextern const void * RTTI_Scaleform__Render__MaskNodeState__Interface;\r\nextern const void * RTTI_Scaleform__Render__MaskPrimitive;\r\nextern const void * RTTI_Scaleform__Render__MatrixPoolImpl__MatrixPool;\r\nextern const void * RTTI_Scaleform__Render__MatrixState;\r\nextern const void * RTTI_Scaleform__Render__MatrixStateFactory;\r\nextern const void * RTTI_Scaleform__Render__MemoryBufferImage;\r\nextern const void * RTTI_Scaleform__Render__Mesh;\r\nextern const void * RTTI_Scaleform__Render__MeshBase;\r\nextern const void * RTTI_Scaleform__Render__MeshBuffer;\r\nextern const void * RTTI_Scaleform__Render__MeshCache;\r\nextern const void * RTTI_Scaleform__Render__MeshCacheConfig;\r\nextern const void * RTTI_Scaleform__Render__MeshCacheItem;\r\nextern const void * RTTI_Scaleform__Render__MeshKeyManager;\r\nextern const void * RTTI_Scaleform__Render__MeshKeySet;\r\nextern const void * RTTI_Scaleform__Render__MeshProvider;\r\nextern const void * RTTI_Scaleform__Render__MeshProvider_KeySupport;\r\nextern const void * RTTI_Scaleform__Render__MeshStagingNode;\r\nextern const void * RTTI_Scaleform__Render__MeshVertexOutput;\r\nextern const void * RTTI_Scaleform__Render__MetaImage;\r\nextern const void * RTTI_Scaleform__Render__MorphInterpolator;\r\nextern const void * RTTI_Scaleform__Render__MorphShapeData;\r\nextern const void * RTTI_Scaleform__Render__OrigScale9ParentState__Interface;\r\nextern const void * RTTI_Scaleform__Render__PNG__FileReader;\r\nextern const void * RTTI_Scaleform__Render__PNG__FileWriter;\r\nextern const void * RTTI_Scaleform__Render__PNG__Input;\r\nextern const void * RTTI_Scaleform__Render__PNG__LibPNGInput;\r\nextern const void * RTTI_Scaleform__Render__PNG__MemoryBufferImage;\r\nextern const void * RTTI_Scaleform__Render__PNG__PNGFileImageSource;\r\nextern const void * RTTI_Scaleform__Render__Primitive;\r\nextern const void * RTTI_Scaleform__Render__PrimitiveBundle;\r\nextern const void * RTTI_Scaleform__Render__PrimitiveFill;\r\nextern const void * RTTI_Scaleform__Render__PrimitiveFillManager;\r\nextern const void * RTTI_Scaleform__Render__ProfileModifier;\r\nextern const void * RTTI_Scaleform__Render__ProfileViews;\r\nextern const void * RTTI_Scaleform__Render__ProjectionMatrix3DBundle;\r\nextern const void * RTTI_Scaleform__Render__ProjectionMatrix3DEffect;\r\nextern const void * RTTI_Scaleform__Render__ProjectionMatrix3DPrimitive;\r\nextern const void * RTTI_Scaleform__Render__RBGenericImpl__DepthStencilBuffer;\r\nextern const void * RTTI_Scaleform__Render__RBGenericImpl__RenderBufferManager;\r\nextern const void * RTTI_Scaleform__Render__RBGenericImpl__RenderTarget;\r\nextern const void * RTTI_Scaleform__Render__Rasterizer;\r\nextern const void * RTTI_Scaleform__Render__RawImage;\r\nextern const void * RTTI_Scaleform__Render__RenderBuffer;\r\nextern const void * RTTI_Scaleform__Render__RenderBufferManager;\r\nextern const void * RTTI_Scaleform__Render__RenderEvents;\r\nextern const void * RTTI_Scaleform__Render__RenderQueueItem__Interface;\r\nextern const void * RTTI_Scaleform__Render__RenderSync;\r\nextern const void * RTTI_Scaleform__Render__RenderTarget;\r\nextern const void * RTTI_Scaleform__Render__RenderTargetData;\r\nextern const void * RTTI_Scaleform__Render__SIF__FileReader;\r\nextern const void * RTTI_Scaleform__Render__SIF__SIFFileImageSource;\r\nextern const void * RTTI_Scaleform__Render__SKI_BlendMode;\r\nextern const void * RTTI_Scaleform__Render__SKI_ComplexPrimitive;\r\nextern const void * RTTI_Scaleform__Render__SKI_Filter;\r\nextern const void * RTTI_Scaleform__Render__SKI_MaskEnd;\r\nextern const void * RTTI_Scaleform__Render__SKI_MaskEnd__RQII_EndMask;\r\nextern const void * RTTI_Scaleform__Render__SKI_MaskStart;\r\nextern const void * RTTI_Scaleform__Render__SKI_Primitive;\r\nextern const void * RTTI_Scaleform__Render__SKI_ProjectionMatrix3D;\r\nextern const void * RTTI_Scaleform__Render__SKI_TextPrimitive;\r\nextern const void * RTTI_Scaleform__Render__SKI_UserData;\r\nextern const void * RTTI_Scaleform__Render__SKI_ViewMatrix3D;\r\nextern const void * RTTI_Scaleform__Render__Scale9GridData;\r\nextern const void * RTTI_Scaleform__Render__Scale9GridInfo;\r\nextern const void * RTTI_Scaleform__Render__Scale9GridRect;\r\nextern const void * RTTI_Scaleform__Render__ShadowFilter;\r\nextern const void * RTTI_Scaleform__Render__ShapeDataFloat;\r\nextern const void * RTTI_Scaleform__Render__ShapeDataFloatMP;\r\nextern const void * RTTI_Scaleform__Render__ShapeMeshProvider;\r\nextern const void * RTTI_Scaleform__Render__SortKeyInterface;\r\nextern const void * RTTI_Scaleform__Render__StateData__Interface;\r\nextern const void * RTTI_Scaleform__Render__StateData__Interface_RefCountImpl;\r\nextern const void * RTTI_Scaleform__Render__StateData__Interface_Value;\r\nextern const void * RTTI_Scaleform__Render__StrokeScaler;\r\nextern const void * RTTI_Scaleform__Render__StrokeSorter;\r\nextern const void * RTTI_Scaleform__Render__Stroker;\r\nextern const void * RTTI_Scaleform__Render__StrokerAA;\r\nextern const void * RTTI_Scaleform__Render__SubImage;\r\nextern const void * RTTI_Scaleform__Render__SystemVertexFormat;\r\nextern const void * RTTI_Scaleform__Render__TGA__FileReader;\r\nextern const void * RTTI_Scaleform__Render__TGA__TGAFileImageSource;\r\nextern const void * RTTI_Scaleform__Render__TessBase;\r\nextern const void * RTTI_Scaleform__Render__Tessellator;\r\nextern const void * RTTI_Scaleform__Render__TextLayerPrimitive;\r\nextern const void * RTTI_Scaleform__Render__TextLayout;\r\nextern const void * RTTI_Scaleform__Render__TextMeshProvider;\r\nextern const void * RTTI_Scaleform__Render__TextPrimitiveBundle;\r\nextern const void * RTTI_Scaleform__Render__Text__Allocator;\r\nextern const void * RTTI_Scaleform__Render__Text__Allocator__TextFormatVisitor;\r\nextern const void * RTTI_Scaleform__Render__Text__DocView;\r\nextern const void * RTTI_Scaleform__Render__Text__DocView__DocumentText;\r\nextern const void * RTTI_Scaleform__Render__Text__EditorKitBase;\r\nextern const void * RTTI_Scaleform__Render__Text__FontHandle;\r\nextern const void * RTTI_Scaleform__Render__Text__FontManagerBase;\r\nextern const void * RTTI_Scaleform__Render__Text__HTMLImageTagDesc;\r\nextern const void * RTTI_Scaleform__Render__Text__ImageDesc;\r\nextern const void * RTTI_Scaleform__Render__Text__StyleManagerBase;\r\nextern const void * RTTI_Scaleform__Render__Text__StyledText;\r\nextern const void * RTTI_Scaleform__Render__Text__TextFilter;\r\nextern const void * RTTI_Scaleform__Render__Texture;\r\nextern const void * RTTI_Scaleform__Render__TextureFormat;\r\nextern const void * RTTI_Scaleform__Render__TextureGlyph;\r\nextern const void * RTTI_Scaleform__Render__TextureImage;\r\nextern const void * RTTI_Scaleform__Render__TextureManager;\r\nextern const void * RTTI_Scaleform__Render__TextureManagerLocks;\r\nextern const void * RTTI_Scaleform__Render__TextureManager__ServiceCommand;\r\nextern const void * RTTI_Scaleform__Render__ThreadCommandQueue;\r\nextern const void * RTTI_Scaleform__Render__TransformerBase;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheContainer;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheMeshBase;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheNode;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheRoot;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheShape;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheShapeLayer;\r\nextern const void * RTTI_Scaleform__Render__TreeCacheText;\r\nextern const void * RTTI_Scaleform__Render__TreeContainer__NodeData;\r\nextern const void * RTTI_Scaleform__Render__TreeNode__NodeData;\r\nextern const void * RTTI_Scaleform__Render__TreeRoot__NodeData;\r\nextern const void * RTTI_Scaleform__Render__TreeShape__NodeData;\r\nextern const void * RTTI_Scaleform__Render__TreeText__NodeData;\r\nextern const void * RTTI_Scaleform__Render__UserDataBundle;\r\nextern const void * RTTI_Scaleform__Render__UserDataEffect;\r\nextern const void * RTTI_Scaleform__Render__UserDataPrimitive;\r\nextern const void * RTTI_Scaleform__Render__UserDataState__Data;\r\nextern const void * RTTI_Scaleform__Render__VectorGlyphShape;\r\nextern const void * RTTI_Scaleform__Render__VertexOutput;\r\nextern const void * RTTI_Scaleform__Render__VertexPath;\r\nextern const void * RTTI_Scaleform__Render__ViewMatrix3DBundle;\r\nextern const void * RTTI_Scaleform__Render__ViewMatrix3DEffect;\r\nextern const void * RTTI_Scaleform__Render__ViewMatrix3DPrimitive;\r\nextern const void * RTTI_Scaleform__Render__WrapperImageSource;\r\nextern const void * RTTI_Scaleform__RepeatFormatter;\r\nextern const void * RTTI_Scaleform__ResourceFormatter;\r\nextern const void * RTTI_Scaleform__Semaphore;\r\nextern const void * RTTI_Scaleform__SemaphoreWaitableIncrement;\r\nextern const void * RTTI_Scaleform__StrFormatter;\r\nextern const void * RTTI_Scaleform__String__InitStruct;\r\nextern const void * RTTI_Scaleform__SwitchFormatter;\r\nextern const void * RTTI_Scaleform__SysAllocBase;\r\nextern const void * RTTI_Scaleform__SysAllocMalloc;\r\nextern const void * RTTI_Scaleform__SysAllocMapper;\r\nextern const void * RTTI_Scaleform__SysAllocStatic;\r\nextern const void * RTTI_Scaleform__SysFile;\r\nextern const void * RTTI_Scaleform__SysMemMapper;\r\nextern const void * RTTI_Scaleform__Thread;\r\nextern const void * RTTI_Scaleform__UnopenedFile;\r\nextern const void * RTTI_Scaleform__Waitable;\r\nextern const void * RTTI_SceneNextPhaseHandler;\r\nextern const void * RTTI_ScopeMenu;\r\nextern const void * RTTI_ScopeMenuUtil__FadeCallback;\r\nextern const void * RTTI_ScopeMenu__ScopeMenuDataEventShuttle;\r\nextern const void * RTTI_ScopeMenu__ScopeScalingData;\r\nextern const void * RTTI_ScopeMenu__ZoomLevelData;\r\nextern const void * RTTI_ScrapHeap;\r\nextern const void * RTTI_Script;\r\nextern const void * RTTI_ScriptEffect;\r\nextern const void * RTTI_ScriptedRefEffect;\r\nextern const void * RTTI_ScrollBar;\r\nextern const void * RTTI_ScrollBar_Horizontal;\r\nextern const void * RTTI_ScrollItem;\r\nextern const void * RTTI_SearchPage;\r\nextern const void * RTTI_SearchResultsPage;\r\nextern const void * RTTI_SecurityMenu;\r\nextern const void * RTTI_SecurityMenu_BackOutKey;\r\nextern const void * RTTI_SecurityMenu_CloseMenu;\r\nextern const void * RTTI_SecurityMenu_ConfirmExit;\r\nextern const void * RTTI_SecurityMenu_EliminateUnusedKeys;\r\nextern const void * RTTI_SecurityMenu_GetRingHint;\r\nextern const void * RTTI_SecurityMenu_SelectNewKey;\r\nextern const void * RTTI_SecurityMenu_TryUseKey;\r\nextern const void * RTTI_SecurityMenu__SecurityMenuEventShuttle;\r\nextern const void * RTTI_SeenData;\r\nextern const void * RTTI_Service;\r\nextern const void * RTTI_SetOrientNode;\r\nextern const void * RTTI_SetOrientNodeInstance;\r\nextern const void * RTTI_SetPosNode;\r\nextern const void * RTTI_SetPosNodeInstance;\r\nextern const void * RTTI_Setting;\r\nextern const void * RTTI_SettingsDataModel;\r\nextern const void * RTTI_SettingsDataModel__SettingsEventShuttle;\r\nextern const void * RTTI_SettingsPanel_CheckBoxChanged;\r\nextern const void * RTTI_SettingsPanel_ClearBinding;\r\nextern const void * RTTI_SettingsPanel_LinkClicked;\r\nextern const void * RTTI_SettingsPanel_OpenCategory;\r\nextern const void * RTTI_SettingsPanel_OpenSettings;\r\nextern const void * RTTI_SettingsPanel_RemapConfirmed;\r\nextern const void * RTTI_SettingsPanel_RemapMode;\r\nextern const void * RTTI_SettingsPanel_ResetToDefaults;\r\nextern const void * RTTI_SettingsPanel_SaveControls;\r\nextern const void * RTTI_SettingsPanel_SaveSettings;\r\nextern const void * RTTI_SettingsPanel_SliderChanged;\r\nextern const void * RTTI_SettingsPanel_StepperChanged;\r\nextern const void * RTTI_SettingsPanel_ValidateControls;\r\nextern const void * RTTI_SetupGraphRagdollHandler;\r\nextern const void * RTTI_ShaderReferenceEffect;\r\nextern const void * RTTI_SharedHeapAllocator;\r\nextern const void * RTTI_ShipActionCameraState;\r\nextern const void * RTTI_ShipBuilderBIEvents__ShipBuilderEventManager;\r\nextern const void * RTTI_ShipBuilder_CloseAllMenus;\r\nextern const void * RTTI_ShipCombatOrbitCameraState;\r\nextern const void * RTTI_ShipCrewAssignData;\r\nextern const void * RTTI_ShipCrewAssignData__ShipCrewAssignMenuEventShuttle;\r\nextern const void * RTTI_ShipCrewAssignMenu;\r\nextern const void * RTTI_ShipCrewAssignMenu_Assign;\r\nextern const void * RTTI_ShipCrewAssignMenu_Unassign;\r\nextern const void * RTTI_ShipCrewData;\r\nextern const void * RTTI_ShipCrewData__ShipCrewMenuEventShuttle;\r\nextern const void * RTTI_ShipCrewMenu;\r\nextern const void * RTTI_ShipCrewMenu_Close;\r\nextern const void * RTTI_ShipCrewMenu_OpenAssignMenu;\r\nextern const void * RTTI_ShipCrewMenu_SetSort;\r\nextern const void * RTTI_ShipCrewMenu_ViewedItem;\r\nextern const void * RTTI_ShipEditor_ChangeModuleCategory;\r\nextern const void * RTTI_ShipEditor_OnColorPickerControlChanged;\r\nextern const void * RTTI_ShipEditor_OnColorPickerTabChanged;\r\nextern const void * RTTI_ShipEditor_OnColorSliderMouseInput;\r\nextern const void * RTTI_ShipEditor_OnExitConfirmCancel;\r\nextern const void * RTTI_ShipEditor_OnExitConfirmExit;\r\nextern const void * RTTI_ShipEditor_OnExitConfirmSaveAndExit;\r\nextern const void * RTTI_ShipEditor_OnFlightCheckTabChanged;\r\nextern const void * RTTI_ShipEditor_OnHintButtonActivated;\r\nextern const void * RTTI_ShipEditor_OnRecentColorSwatchClicked;\r\nextern const void * RTTI_ShipEditor_OnRenameEndEditText;\r\nextern const void * RTTI_ShipEditor_OnRenameInputCancelled;\r\nextern const void * RTTI_ShipEditor_OnWeaponGroupChanged;\r\nextern const void * RTTI_ShipEditor_PreviewShipPart;\r\nextern const void * RTTI_ShipEditor_PreviewUpgrade;\r\nextern const void * RTTI_ShipEditor_RemoveAll3D;\r\nextern const void * RTTI_ShipEditor_SelectedShipPart;\r\nextern const void * RTTI_ShipEditor_SelectedUpgrade;\r\nextern const void * RTTI_ShipEditor_SystemSelected;\r\nextern const void * RTTI_ShipFarTravelCameraState;\r\nextern const void * RTTI_ShipHudDataModel;\r\nextern const void * RTTI_ShipHudDataModel__ShipHudEventShuttle;\r\nextern const void * RTTI_ShipHudQuickContainer_TransferItem;\r\nextern const void * RTTI_ShipHudQuickContainer_TransferMenu;\r\nextern const void * RTTI_ShipHud_AbortJump;\r\nextern const void * RTTI_ShipHud_Activate;\r\nextern const void * RTTI_ShipHud_BodyViewMarkerDimensions;\r\nextern const void * RTTI_ShipHud_ChangeComponentSelection;\r\nextern const void * RTTI_ShipHud_CloseMenu;\r\nextern const void * RTTI_ShipHud_Deselect;\r\nextern const void * RTTI_ShipHud_DockRequested;\r\nextern const void * RTTI_ShipHud_FarTravel;\r\nextern const void * RTTI_ShipHud_HailAccepted;\r\nextern const void * RTTI_ShipHud_HailCancelled;\r\nextern const void * RTTI_ShipHud_HailShip;\r\nextern const void * RTTI_ShipHud_JumpToQuestMarker;\r\nextern const void * RTTI_ShipHud_Land;\r\nextern const void * RTTI_ShipHud_LandingMarkerMap;\r\nextern const void * RTTI_ShipHud_Map;\r\nextern const void * RTTI_ShipHud_OnMonocleToggle;\r\nextern const void * RTTI_ShipHud_OpenPhotoMode;\r\nextern const void * RTTI_ShipHud_Repair;\r\nextern const void * RTTI_ShipHud_SetTargetMode;\r\nextern const void * RTTI_ShipHud_Target;\r\nextern const void * RTTI_ShipHud_TargetShipSystem;\r\nextern const void * RTTI_ShipHud_UntargetShipSystem;\r\nextern const void * RTTI_ShipHud_UpdateComponentPower;\r\nextern const void * RTTI_ShipHud_UpdateTargetPanelRect;\r\nextern const void * RTTI_ShipRefuelMenu;\r\nextern const void * RTTI_ShipRefuelMenuDataModel;\r\nextern const void * RTTI_ShipRefuelMenuDataModel__ShipRefuelMenuEventShuttle;\r\nextern const void * RTTI_ShipTargetingCameraState;\r\nextern const void * RTTI_ShowSubsegmentHandler;\r\nextern const void * RTTI_SideBar;\r\nextern const void * RTTI_SimpleAnimationGraphManagerHolder;\r\nextern const void * RTTI_SimpleAnimationGraphManagerLoadingTask;\r\nextern const void * RTTI_SingleBoneIKNode;\r\nextern const void * RTTI_SingleBoneIKNodeInstance;\r\nextern const void * RTTI_SitWaitMenu;\r\nextern const void * RTTI_Sizing__mpBoxSizer;\r\nextern const void * RTTI_Sizing__mpButtonSizer;\r\nextern const void * RTTI_Sizing__mpSizer;\r\nextern const void * RTTI_SkillsMenu;\r\nextern const void * RTTI_SkillsMenu_Accept;\r\nextern const void * RTTI_SkillsMenu_AddPatch;\r\nextern const void * RTTI_SkillsMenu_Cancel;\r\nextern const void * RTTI_SkillsMenu_ChangeCursorVisibility;\r\nextern const void * RTTI_SkillsMenu_SaveLastCategory;\r\nextern const void * RTTI_SkillsMenu__SkillsMenuEventShuttle;\r\nextern const void * RTTI_SkinAttach;\r\nextern const void * RTTI_Sky;\r\nextern const void * RTTI_SkyEffectController;\r\nextern const void * RTTI_SleepWaitMenu;\r\nextern const void * RTTI_SleepWaitMenu_InterruptRest;\r\nextern const void * RTTI_SleepWaitMenu_StartRest;\r\nextern const void * RTTI_SleepWaitMenu__SleepWaitMenuEventShuttle;\r\nextern const void * RTTI_SlideStartHandler;\r\nextern const void * RTTI_SlowTimeEffect;\r\nextern const void * RTTI_SneakStateChangeHandler;\r\nextern const void * RTTI_SortFilter;\r\nextern const void * RTTI_SoulTrapEffect;\r\nextern const void * RTTI_SpaceComponentViewAccessWrite;\r\nextern const void * RTTI_SpaceCruise__CruiseEventHandler;\r\nextern const void * RTTI_SpaceCruise__NearOrbitalCruise;\r\nextern const void * RTTI_SpaceCruise__NearPlanetCruise;\r\nextern const void * RTTI_SpaceCruise__OutsidePlanetOrbitalCruise;\r\nextern const void * RTTI_SpaceCruise__PlanetAndMoonCruise;\r\nextern const void * RTTI_SpaceshipAIComponentEventHandler;\r\nextern const void * RTTI_SpaceshipBIEvents__EventSink;\r\nextern const void * RTTI_SpaceshipBoostPart;\r\nextern const void * RTTI_SpaceshipDockingFinishedHandler;\r\nextern const void * RTTI_SpaceshipEditor__HangarModeState_Null;\r\nextern const void * RTTI_SpaceshipEditor__HangarModeState_ShipInspect;\r\nextern const void * RTTI_SpaceshipEditor__HangarModeState_ShipSelection;\r\nextern const void * RTTI_SpaceshipEditor__HangarModeState_ShipSelection__HangarModeStateShipSelectionEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__IModuleModeSubState;\r\nextern const void * RTTI_SpaceshipEditor__IVehicleHangarModeSubState;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Add;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Add__ModuleModeStateAddEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Color;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Color__ModuleModeState_ColorEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Edit;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Empty;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Null;\r\nextern const void * RTTI_SpaceshipEditor__ModuleModeState_Selection;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Exiting;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Exiting__ShipBuilderState_ExitingEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_FlightCheck;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_FlightCheck__ShipBuilderState_FlightCheckEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_HangarMode;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Loading;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_ModuleMode;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Null;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Popup;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Rename;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_Rename__ShipBuilderState_RenameEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_UpgradeMode;\r\nextern const void * RTTI_SpaceshipEditor__ShipBuilderState_VehicleHangarMode;\r\nextern const void * RTTI_SpaceshipEditor__ShipHangarData;\r\nextern const void * RTTI_SpaceshipEditor__ShipHangarData__ShipHangarEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__Spaceship3DManager;\r\nextern const void * RTTI_SpaceshipEditor__Spaceship3DManager__Spaceship3DManagerEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__SpaceshipEditorColorWidget;\r\nextern const void * RTTI_SpaceshipEditor__SpaceshipEditorGame3DManager;\r\nextern const void * RTTI_SpaceshipEditor__SpaceshipEditorMenu;\r\nextern const void * RTTI_SpaceshipEditor__SpaceshipEditorMenu__ShipBuilderEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__SpaceshipEditorUIColorData;\r\nextern const void * RTTI_SpaceshipEditor__UpgradeModeState_Null;\r\nextern const void * RTTI_SpaceshipEditor__UpgradeModeState_Replace;\r\nextern const void * RTTI_SpaceshipEditor__UpgradeModeState_Replace__UpgradeModeStateRepalceEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__UpgradeModeState_SystemSelect;\r\nextern const void * RTTI_SpaceshipEditor__UpgradeModeState_SystemSelect__UpgradeModeStateEmptyEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__VehicleHangarModeState_ColorVehicle;\r\nextern const void * RTTI_SpaceshipEditor__VehicleHangarModeState_ColorVehicle__VehicleHangarModeState_ColorVehicleEventShuttle;\r\nextern const void * RTTI_SpaceshipEditor__VehicleHangarModeState_Null;\r\nextern const void * RTTI_SpaceshipEditor__VehicleHangarModeState_VehicleSelection;\r\nextern const void * RTTI_SpaceshipEditor__VehicleHangarModeState_VehicleUnlock;\r\nextern const void * RTTI_SpaceshipEffectsUtil__EventSink;\r\nextern const void * RTTI_SpaceshipEquipmentComponent;\r\nextern const void * RTTI_SpaceshipEquipmentUtils__SpaceshipEquipmentEventHandler;\r\nextern const void * RTTI_SpaceshipGravDrivePart;\r\nextern const void * RTTI_SpaceshipHudMenu;\r\nextern const void * RTTI_SpaceshipLandingFinishedFailsafeHandler;\r\nextern const void * RTTI_SpaceshipLandingFinishedHandler;\r\nextern const void * RTTI_SpaceshipLinkedCell__ExteriorShipCell;\r\nextern const void * RTTI_SpaceshipLinkedCell__InteriorShipCell;\r\nextern const void * RTTI_SpaceshipLinkedCell__ShipCell;\r\nextern const void * RTTI_SpaceshipMobilityPart;\r\nextern const void * RTTI_SpaceshipPart;\r\nextern const void * RTTI_SpaceshipPlayerSounds;\r\nextern const void * RTTI_SpaceshipShieldPart;\r\nextern const void * RTTI_SpaceshipSoundsUtils__SpaceshipSoundsEventHandler;\r\nextern const void * RTTI_SpaceshipTakeOffFinishedHandler;\r\nextern const void * RTTI_SpaceshipUndockingFinishedHandler;\r\nextern const void * RTTI_SpaceshipWeapon;\r\nextern const void * RTTI_Spaceship__InstanceData;\r\nextern const void * RTTI_Spaceship__LadderSwapHandler;\r\nextern const void * RTTI_Spaceship__ShipProxyCollisionListener;\r\nextern const void * RTTI_Spaceship__TargetingMode;\r\nextern const void * RTTI_SpawnHazardEffect;\r\nextern const void * RTTI_SpawnOnDestroyUtils__SpawnOnDestroyEventHandler;\r\nextern const void * RTTI_SpecificItemCollector;\r\nextern const void * RTTI_SpectatorPackage;\r\nextern const void * RTTI_SpeedScale;\r\nextern const void * RTTI_SpeedScaleInstance;\r\nextern const void * RTTI_SpellItem;\r\nextern const void * RTTI_SpringBoneData;\r\nextern const void * RTTI_SpringBoneInstance;\r\nextern const void * RTTI_StaggerEffect;\r\nextern const void * RTTI_StaggerMeter;\r\nextern const void * RTTI_StaggerMeterInstance;\r\nextern const void * RTTI_StaggeredStopHandler;\r\nextern const void * RTTI_StarField__LoadNodeBarrier;\r\nextern const void * RTTI_StarField__ModuleState;\r\nextern const void * RTTI_StarField__SpaceReference__RetargetExterior3d;\r\nextern const void * RTTI_StarMapMenu_ExecuteRoute;\r\nextern const void * RTTI_StarMapMenu_Galaxy_FocusSystem;\r\nextern const void * RTTI_StarMapMenu_LandingInputInProgress;\r\nextern const void * RTTI_StarMapMenu_MarkerGroupContainerVisibilityChanged;\r\nextern const void * RTTI_StarMapMenu_MarkerGroupEntryClicked;\r\nextern const void * RTTI_StarMapMenu_MarkerGroupEntryHoverChanged;\r\nextern const void * RTTI_StarMapMenu_OnCancel;\r\nextern const void * RTTI_StarMapMenu_OnClearRoute;\r\nextern const void * RTTI_StarMapMenu_OnExitStarMap;\r\nextern const void * RTTI_StarMapMenu_OnGalaxyViewInitialized;\r\nextern const void * RTTI_StarMapMenu_OnHintButtonClicked;\r\nextern const void * RTTI_StarMapMenu_OnOutpostEntrySelected;\r\nextern const void * RTTI_StarMapMenu_QuickSelectChange;\r\nextern const void * RTTI_StarMapMenu_ReadyToClose;\r\nextern const void * RTTI_StarMapMenu_ScanPlanet;\r\nextern const void * RTTI_StarMapMenu_SelectedLandingSite;\r\nextern const void * RTTI_StarMapMenu_SelectedLandingSiteFailed;\r\nextern const void * RTTI_StarMapMenu_ShowRealCursor;\r\nextern const void * RTTI_StarMap__BodyInfoToUI;\r\nextern const void * RTTI_StarMap__BodyInspectState;\r\nextern const void * RTTI_StarMap__BodyInspectState__BodyInspectStateEventShuttle;\r\nextern const void * RTTI_StarMap__ConfirmCustomMarkerActionCallback;\r\nextern const void * RTTI_StarMap__DelayCommand;\r\nextern const void * RTTI_StarMap__Galaxy3DScene;\r\nextern const void * RTTI_StarMap__GalaxyState;\r\nextern const void * RTTI_StarMap__GalaxyState__GalaxyStateEventShuttle;\r\nextern const void * RTTI_StarMap__IStarMapState;\r\nextern const void * RTTI_StarMap__PlanetInfoToUI;\r\nextern const void * RTTI_StarMap__SelectBodyEventHelper;\r\nextern const void * RTTI_StarMap__StarMapMenu;\r\nextern const void * RTTI_StarMap__StarMapMenuDataModel;\r\nextern const void * RTTI_StarMap__StarMapMenuDataModel__StarMapMenuEventShuttle;\r\nextern const void * RTTI_StarMap__StarMapMenu__StarMapMenuEventShuttle;\r\nextern const void * RTTI_StarMap__StarMapSystemMobile;\r\nextern const void * RTTI_StarMap__SurfaceMap3DScene;\r\nextern const void * RTTI_StarMap__SurfaceMap3DScene__Scene;\r\nextern const void * RTTI_StarMap__SurfaceMap3DScene__TerrainScene;\r\nextern const void * RTTI_StarMap__SurfaceMapMaterialController__DefaultMaterialApplicator;\r\nextern const void * RTTI_StarMap__SurfaceMapMaterialController__MaterialApplicator;\r\nextern const void * RTTI_StarMap__SurfaceMapMaterialController__SpecializedMaterialApplicator;\r\nextern const void * RTTI_StarMap__SurfaceMapState;\r\nextern const void * RTTI_StarMap__SurfaceMapState__SurfaceMapStateEventShuttle;\r\nextern const void * RTTI_StarMap__SurfaceMapUIPlanetModule;\r\nextern const void * RTTI_StarMap__SystemBodyInfoToUI;\r\nextern const void * RTTI_StarMap__SystemState;\r\nextern const void * RTTI_StarMap__SystemState__SystemStateEventShuttle;\r\nextern const void * RTTI_StarMap__Util__ConfirmFastTravelCallback;\r\nextern const void * RTTI_StarMap__Util__ConfirmGravJumpPlotCallback;\r\nextern const void * RTTI_StartFloatingHandler;\r\nextern const void * RTTI_StartPCapVoiceHandler;\r\nextern const void * RTTI_StartSecurityMinigameHandler;\r\nextern const void * RTTI_StateConfirmingAction;\r\nextern const void * RTTI_StateEngagmentPrompt;\r\nextern const void * RTTI_StateInitialLoad;\r\nextern const void * RTTI_StateIntroVideo;\r\nextern const void * RTTI_StateLegalScreen;\r\nextern const void * RTTI_StateLoadPanelInteract;\r\nextern const void * RTTI_StateMachine;\r\nextern const void * RTTI_StateMachineInstance;\r\nextern const void * RTTI_StateMainPanelInteract;\r\nextern const void * RTTI_StateNewContentPrompt;\r\nextern const void * RTTI_StateOpenFromInstallMenu;\r\nextern const void * RTTI_StateOpenFromReset;\r\nextern const void * RTTI_StateOpenFromStartup;\r\nextern const void * RTTI_StateOtherMenuOpen;\r\nextern const void * RTTI_StatePerformingAction;\r\nextern const void * RTTI_StateSettingsPanelInteract;\r\nextern const void * RTTI_StateSplashScreen;\r\nextern const void * RTTI_StateVariableControl;\r\nextern const void * RTTI_StateVariableControlInstance;\r\nextern const void * RTTI_StateWaitingOnLoad;\r\nextern const void * RTTI_StaticAvoidNodeManager;\r\nextern const void * RTTI_StatusMenu;\r\nextern const void * RTTI_SteamVirtualKeyboard;\r\nextern const void * RTTI_SteamVirtualKeyboard__CCallbackInternal_OnSteamGamepadTextInputDismissed;\r\nextern const void * RTTI_StimpakEffect;\r\nextern const void * RTTI_StopFloatingHandler;\r\nextern const void * RTTI_StopMountCameraHandler;\r\nextern const void * RTTI_StorageSpaceBar;\r\nextern const void * RTTI_StorageTableErrorHandlerService;\r\nextern const void * RTTI_StorageTable__AsyncTableColumnBase;\r\nextern const void * RTTI_StorageTable__DirectColumnDataStorageInterface;\r\nextern const void * RTTI_StorageTable__StorageDataBase;\r\nextern const void * RTTI_StreamingInstallMenu;\r\nextern const void * RTTI_StreamingInstallMenu__StreamingInstallEventShuttle;\r\nextern const void * RTTI_StreamingInstallMenu__StreamingProgressData;\r\nextern const void * RTTI_StringUIValue;\r\nextern const void * RTTI_SubgraphAndOffsetDBData;\r\nextern const void * RTTI_SubtitleManager;\r\nextern const void * RTTI_SummonCreatureEffect;\r\nextern const void * RTTI_SummonDuplicateEffect;\r\nextern const void * RTTI_SummonPlacementEffect;\r\nextern const void * RTTI_SupportMaterialHandler;\r\nextern const void * RTTI_SurfaceMapMenu_EnablePointCloud;\r\nextern const void * RTTI_SurfaceMapMenu_MarkerClicked;\r\nextern const void * RTTI_SurfaceMapMenu_TryPlaceCustomMarker;\r\nextern const void * RTTI_SwapGraphNode;\r\nextern const void * RTTI_SwapGraphNodeInstance;\r\nextern const void * RTTI_SwitchNode;\r\nextern const void * RTTI_SwitchNodeInstance;\r\nextern const void * RTTI_SyncDeferDeathHandler;\r\nextern const void * RTTI_SyncEarlyExitHandler;\r\nextern const void * RTTI_SyncQueueObj;\r\nextern const void * RTTI_TBO_InstanceData;\r\nextern const void * RTTI_TES;\r\nextern const void * RTTI_TESAIForm;\r\nextern const void * RTTI_TESActorBase;\r\nextern const void * RTTI_TESActorBaseData;\r\nextern const void * RTTI_TESAmmo;\r\nextern const void * RTTI_TESAudio__ScriptedMusicState;\r\nextern const void * RTTI_TESBipedModelForm;\r\nextern const void * RTTI_TESBoundAnimObject;\r\nextern const void * RTTI_TESBoundObject;\r\nextern const void * RTTI_TESCamera;\r\nextern const void * RTTI_TESCameraState;\r\nextern const void * RTTI_TESChildCell;\r\nextern const void * RTTI_TESClass;\r\nextern const void * RTTI_TESClimate;\r\nextern const void * RTTI_TESCombatStyle;\r\nextern const void * RTTI_TESContainer;\r\nextern const void * RTTI_TESCustomPackageData;\r\nextern const void * RTTI_TESDataHandler;\r\nextern const void * RTTI_TESDataHandlerPersistentCreatedUtil__BGSPersistentIDsForm;\r\nextern const void * RTTI_TESDataHandlerPostBuildFileListSource;\r\nextern const void * RTTI_TESDataHandler__ArchiveRegistrationListener;\r\nextern const void * RTTI_TESDescription;\r\nextern const void * RTTI_TESDialoguePackageData;\r\nextern const void * RTTI_TESEffectShader;\r\nextern const void * RTTI_TESEnchantableForm;\r\nextern const void * RTTI_TESEyes;\r\nextern const void * RTTI_TESFaction;\r\nextern const void * RTTI_TESFile;\r\nextern const void * RTTI_TESFlora;\r\nextern const void * RTTI_TESFloraInstanceData;\r\nextern const void * RTTI_TESFollowPackageData;\r\nextern const void * RTTI_TESForm;\r\nextern const void * RTTI_TESFullName;\r\nextern const void * RTTI_TESFurniture;\r\nextern const void * RTTI_TESGlobal;\r\nextern const void * RTTI_TESGrass;\r\nextern const void * RTTI_TESHandleForm;\r\nextern const void * RTTI_TESHavokUtilities__CellHeightFieldCuller;\r\nextern const void * RTTI_TESHealthForm;\r\nextern const void * RTTI_TESIdleForm;\r\nextern const void * RTTI_TESIdleManager;\r\nextern const void * RTTI_TESImageSpace;\r\nextern const void * RTTI_TESImageSpaceModifiableForm;\r\nextern const void * RTTI_TESImageSpaceModifier;\r\nextern const void * RTTI_TESKey;\r\nextern const void * RTTI_TESLandTexture;\r\nextern const void * RTTI_TESLevCharacter;\r\nextern const void * RTTI_TESLevItem;\r\nextern const void * RTTI_TESLevSpell;\r\nextern const void * RTTI_TESLeveledList;\r\nextern const void * RTTI_TESLoadScreen;\r\nextern const void * RTTI_TESMagicTargetForm;\r\nextern const void * RTTI_TESModel;\r\nextern const void * RTTI_TESModelDB__TESAutoQueuedDependentNode;\r\nextern const void * RTTI_TESModelDB__TESQueuedHandles;\r\nextern const void * RTTI_TESModelTri;\r\nextern const void * RTTI_TESNPC;\r\nextern const void * RTTI_TESNPCData__ChargenDataModel;\r\nextern const void * RTTI_TESNPC__InstanceData;\r\nextern const void * RTTI_TESObject;\r\nextern const void * RTTI_TESObjectACTI;\r\nextern const void * RTTI_TESObjectANIO;\r\nextern const void * RTTI_TESObjectARMA;\r\nextern const void * RTTI_TESObjectARMO;\r\nextern const void * RTTI_TESObjectARMOInstanceData;\r\nextern const void * RTTI_TESObjectBOOK;\r\nextern const void * RTTI_TESObjectCELL;\r\nextern const void * RTTI_TESObjectCONT;\r\nextern const void * RTTI_TESObjectCONT__InstanceData;\r\nextern const void * RTTI_TESObjectDOOR;\r\nextern const void * RTTI_TESObjectLIGH;\r\nextern const void * RTTI_TESObjectMISC;\r\nextern const void * RTTI_TESObjectREFR;\r\nextern const void * RTTI_TESObjectREFRDef__IAliasFunctor;\r\nextern const void * RTTI_TESObjectREFRDef__IAliasLinkedChildFunctor;\r\nextern const void * RTTI_TESObjectREFRDef__ILinkedReferenceFunctor;\r\nextern const void * RTTI_TESObjectREFRSync__REFRSyncController;\r\nextern const void * RTTI_TESObjectSTAT;\r\nextern const void * RTTI_TESObjectWEAP;\r\nextern const void * RTTI_TESObjectWEAPInstanceData;\r\nextern const void * RTTI_TESPackage;\r\nextern const void * RTTI_TESPackedFile;\r\nextern const void * RTTI_TESPlanetModel;\r\nextern const void * RTTI_TESQuest;\r\nextern const void * RTTI_TESRace;\r\nextern const void * RTTI_TESRaceForm;\r\nextern const void * RTTI_TESRegion;\r\nextern const void * RTTI_TESRegionData;\r\nextern const void * RTTI_TESRegionDataManager;\r\nextern const void * RTTI_TESRegionDataMap;\r\nextern const void * RTTI_TESRegionDataSound;\r\nextern const void * RTTI_TESRegionDataWeather;\r\nextern const void * RTTI_TESRegionList;\r\nextern const void * RTTI_TESShout;\r\nextern const void * RTTI_TESSoulGem;\r\nextern const void * RTTI_TESSound;\r\nextern const void * RTTI_TESSpellList;\r\nextern const void * RTTI_TESTexture;\r\nextern const void * RTTI_TESTopic;\r\nextern const void * RTTI_TESTopicInfo;\r\nextern const void * RTTI_TESTrapListener;\r\nextern const void * RTTI_TESValueForm;\r\nextern const void * RTTI_TESWaterForm;\r\nextern const void * RTTI_TESWaterNormals;\r\nextern const void * RTTI_TESWaterObject;\r\nextern const void * RTTI_TESWaterSystem;\r\nextern const void * RTTI_TESWeather;\r\nextern const void * RTTI_TESWeightForm;\r\nextern const void * RTTI_TESWordOfPower;\r\nextern const void * RTTI_TESWorldSpace;\r\nextern const void * RTTI_TES__PostGridLoadNode;\r\nextern const void * RTTI_TagField;\r\nextern const void * RTTI_TagPropagationNode;\r\nextern const void * RTTI_TagPropagationNodeInstance;\r\nextern const void * RTTI_TakeOffInitiateCompleteHandler;\r\nextern const void * RTTI_TakeoffMenu;\r\nextern const void * RTTI_TakeoffMenuDataModel;\r\nextern const void * RTTI_TakeoffMenuDataModel__TakeoffMenuEventShuttle;\r\nextern const void * RTTI_TakeoffMenu_CloseMenu;\r\nextern const void * RTTI_TakeoffMenu_ExitShip;\r\nextern const void * RTTI_TakeoffMenu_Launch;\r\nextern const void * RTTI_TargetEntry;\r\nextern const void * RTTI_TelekinesisEffect;\r\nextern const void * RTTI_TeleportDoorSearch;\r\nextern const void * RTTI_TempLoadedCellDB__LoadTempDataForCell;\r\nextern const void * RTTI_TerminalMenu_CancelEvent;\r\nextern const void * RTTI_TerminalOpenViewCallback;\r\nextern const void * RTTI_TerminalRunResultsCallback;\r\nextern const void * RTTI_Terminal_CloseAllViews;\r\nextern const void * RTTI_Terminal_CloseTopView;\r\nextern const void * RTTI_Terminal_CloseView;\r\nextern const void * RTTI_Terminal_MenuItemClick;\r\nextern const void * RTTI_Terminal__AddAliasedTerminalsFunc;\r\nextern const void * RTTI_Terminal__GenesisTerminalMenu;\r\nextern const void * RTTI_Terminal__GenesisTerminalMenu_UnlockItemConfirm;\r\nextern const void * RTTI_Terminal__GenesisTerminalMenu_UnlockedItemWithKey;\r\nextern const void * RTTI_Terminal__GenesisTerminalMenu__GenesisTerminalMenuEventShuttle;\r\nextern const void * RTTI_TerminateGraphRagdollHandler;\r\nextern const void * RTTI_TerrainDB__TerrainBarrierNode;\r\nextern const void * RTTI_TerrainDB__TerrainGraphProcessor;\r\nextern const void * RTTI_TestMenu;\r\nextern const void * RTTI_TestMenu_DoAction;\r\nextern const void * RTTI_TestMenu_ExitMenu;\r\nextern const void * RTTI_TestMenu_ShowImages;\r\nextern const void * RTTI_TestMenu_ShowResources;\r\nextern const void * RTTI_TestMenu_TestAll;\r\nextern const void * RTTI_TestMenu__TestMenuEventShuttle;\r\nextern const void * RTTI_TestReferencedObject;\r\nextern const void * RTTI_TextInputMenu;\r\nextern const void * RTTI_TextInputMenu_EndEditText;\r\nextern const void * RTTI_TextInputMenu_InputCanceled;\r\nextern const void * RTTI_TextInputMenu_StartEditText;\r\nextern const void * RTTI_TextInputMenu__TextInputEventShuttle;\r\nextern const void * RTTI_TextRenderer;\r\nextern const void * RTTI_TextRenderer3D;\r\nextern const void * RTTI_TextureDB__ErrorStreamer;\r\nextern const void * RTTI_TextureDB__Manager;\r\nextern const void * RTTI_TextureUtils__AutoQueuedDependentNode;\r\nextern const void * RTTI_TextureUtils__WaitStreamedNode;\r\nextern const void * RTTI_ThirdPersonState;\r\nextern const void * RTTI_ThumbstickEvent;\r\nextern const void * RTTI_TimeMultiplierManager;\r\nextern const void * RTTI_TimeMultiplierProvider;\r\nextern const void * RTTI_TimerEvent;\r\nextern const void * RTTI_TimerEventInstance;\r\nextern const void * RTTI_TitleSequenceMenu;\r\nextern const void * RTTI_TitleSequenceMenu_StartMusic;\r\nextern const void * RTTI_TrackDamageEffect;\r\nextern const void * RTTI_TranslationAdjustment;\r\nextern const void * RTTI_TranslationAdjustmentInstance;\r\nextern const void * RTTI_TrapEntry;\r\nextern const void * RTTI_TrapTargetEntry;\r\nextern const void * RTTI_TraversalCollisionFilter;\r\nextern const void * RTTI_TraversalFinishedHandler;\r\nextern const void * RTTI_TraversalStepDoneHandler;\r\nextern const void * RTTI_TrespassPackage;\r\nextern const void * RTTI_TrianglePathWaterLedgeTraversalSplitter;\r\nextern const void * RTTI_TurnUndeadEffect;\r\nextern const void * RTTI_TutorialMessageManager;\r\nextern const void * RTTI_TutorialMessageManager__TutorialMessageEventShuttle;\r\nextern const void * RTTI_TweenMenuCameraState;\r\nextern const void * RTTI_TwoBoneIKNode;\r\nextern const void * RTTI_TwoBoneIKNodeInstance;\r\nextern const void * RTTI_TypeRegistryTest__Ref;\r\nextern const void * RTTI_TypeRegistryTest__TypedefChild;\r\nextern const void * RTTI_UI;\r\nextern const void * RTTI_UIBlurManager;\r\nextern const void * RTTI_UICellRenderer;\r\nextern const void * RTTI_UICellRenderer_InventoryItem;\r\nextern const void * RTTI_UICellRenderer_InventoryItem__ItemModelLoadTask;\r\nextern const void * RTTI_UIDataShuttleConnector;\r\nextern const void * RTTI_UIDataShuttleContainer;\r\nextern const void * RTTI_UIDataShuttleManager;\r\nextern const void * RTTI_UIDataToFlash;\r\nextern const void * RTTI_UIEventDispatcher;\r\nextern const void * RTTI_UIMenuChargenMenuDisablePaperdoll;\r\nextern const void * RTTI_UIMessageQueue;\r\nextern const void * RTTI_UISaveLoadManager;\r\nextern const void * RTTI_UI_BarButton;\r\nextern const void * RTTI_UI_Button3;\r\nextern const void * RTTI_UI_Gallery;\r\nextern const void * RTTI_UI_MarkdownText;\r\nextern const void * RTTI_UI_ScrollingBannerList;\r\nextern const void * RTTI_UI_ScrollingList;\r\nextern const void * RTTI_UI_Text;\r\nextern const void * RTTI_UI_Text3;\r\nextern const void * RTTI_UI_bannerEntry;\r\nextern const void * RTTI_UI_bar;\r\nextern const void * RTTI_UI_bottomBar;\r\nextern const void * RTTI_UI_detailsPage;\r\nextern const void * RTTI_UI_detailsPage__OnSale;\r\nextern const void * RTTI_UI_element;\r\nextern const void * RTTI_UI_homePage;\r\nextern const void * RTTI_UI_image;\r\nextern const void * RTTI_UI_image3;\r\nextern const void * RTTI_UI_listEntry;\r\nextern const void * RTTI_UI_listEntry__OnSale;\r\nextern const void * RTTI_UI_tag;\r\nextern const void * RTTI_UI_topBar;\r\nextern const void * RTTI_UncullFurnitureBoneHandler;\r\nextern const void * RTTI_UncullWeaponsHandler;\r\nextern const void * RTTI_UniqueAVCollector;\r\nextern const void * RTTI_UnitTest__CopyableReferencedObject;\r\nextern const void * RTTI_UnitTest__InterfaceImpl0;\r\nextern const void * RTTI_UnitTest__InterfaceImpl1;\r\nextern const void * RTTI_UnitTest__InterfaceUnregistered0;\r\nextern const void * RTTI_UnitTest__InterfaceUnregistered1;\r\nextern const void * RTTI_UnitTest__NestedRelArray;\r\nextern const void * RTTI_UnitTest__SetterTest__Foo;\r\nextern const void * RTTI_UnitTest__SimpleRelArray;\r\nextern const void * RTTI_UnitTest__TypeVm__Record;\r\nextern const void * RTTI_UnitTest__UrlObject__Shape;\r\nextern const void * RTTI_UnitTest__UrlObject__TestGraph;\r\nextern const void * RTTI_UpdateParticleParticleInDirtyAabbsTask;\r\nextern const void * RTTI_UpdateRigidBodyDirtyAabbsTask;\r\nextern const void * RTTI_UpdateSceneRectEvent;\r\nextern const void * RTTI_Upsell;\r\nextern const void * RTTI_UseStimpakHandler;\r\nextern const void * RTTI_UserContent;\r\nextern const void * RTTI_VATS;\r\nextern const void * RTTI_VATSCameraState;\r\nextern const void * RTTI_VATSUtils__ValidateStrangerLineOfSightGoalToOriginFunctor;\r\nextern const void * RTTI_ValueModifierEffect;\r\nextern const void * RTTI_VariableCombiner;\r\nextern const void * RTTI_VariableCombinerInstance;\r\nextern const void * RTTI_VehicleBIEvents__VehicleBIEventManager;\r\nextern const void * RTTI_VehicleCameraState;\r\nextern const void * RTTI_VehicleRuntimeComponent;\r\nextern const void * RTTI_VelocityObstacle__Utilities__BuildOpenEdgeListsVisitor;\r\nextern const void * RTTI_ViewAllEntry;\r\nextern const void * RTTI_ViewCaster;\r\nextern const void * RTTI_VirtualPathingDoor;\r\nextern const void * RTTI_WaterPathPathingNodeGenerator;\r\nextern const void * RTTI_WaterPathRayValidator;\r\nextern const void * RTTI_WeaponAttachHandler;\r\nextern const void * RTTI_WeaponBeginDrawHandler;\r\nextern const void * RTTI_WeaponBeginSheatheHandler;\r\nextern const void * RTTI_WeaponDetachHandler;\r\nextern const void * RTTI_WeaponDrawHandler;\r\nextern const void * RTTI_WeaponEnchantmentController;\r\nextern const void * RTTI_WeaponFireEndHandler;\r\nextern const void * RTTI_WeaponFireHandler;\r\nextern const void * RTTI_WeaponFireStartHandler;\r\nextern const void * RTTI_WeaponGroupAssignmentMenu_ChangeWeaponAssignment;\r\nextern const void * RTTI_WeaponGroupAssignmentMenu_OnHintButtonActivated;\r\nextern const void * RTTI_WeaponGroupAssignment__WeaponGroupAssignmentMenu;\r\nextern const void * RTTI_WeaponGroupAssignment__WeaponGroupAssignmentMenu__WeaponGroupAssignmentMenuEventShuttle;\r\nextern const void * RTTI_WeaponSheatheHandler;\r\nextern const void * RTTI_WeaponSheatheInterruptHandler;\r\nextern const void * RTTI_WeaponSwingHandler;\r\nextern const void * RTTI_WeaponsCraftingMenu;\r\nextern const void * RTTI_Win32FileSystemWatcher;\r\nextern const void * RTTI_WorkbenchTracking__TrackingSingleton;\r\nextern const void * RTTI_WorkshopActionButton_HoldFinished;\r\nextern const void * RTTI_WorkshopActionButton_HoldStopped;\r\nextern const void * RTTI_WorkshopAreaResourcesDataModel;\r\nextern const void * RTTI_WorkshopAreaResourcesDataModel__WorkshopAreaResourcesEventShuttle;\r\nextern const void * RTTI_WorkshopBIEvents__WorkshopEventManager;\r\nextern const void * RTTI_WorkshopBuilderDataModel;\r\nextern const void * RTTI_WorkshopBuilderDataModel__WorkshopBuilderEventShuttle;\r\nextern const void * RTTI_WorkshopBuilderMenu;\r\nextern const void * RTTI_WorkshopBuilderMenu_ChangeBuildItem;\r\nextern const void * RTTI_WorkshopBuilderMenu_SelectedItem;\r\nextern const void * RTTI_WorkshopBuilderMenu_ToggleTracking;\r\nextern const void * RTTI_WorkshopCamera__CameraHitCollector;\r\nextern const void * RTTI_WorkshopCamera__WorkshopCharacterProxyListener;\r\nextern const void * RTTI_WorkshopCategoryBarDataModel;\r\nextern const void * RTTI_WorkshopCategoryBarDataModel__WorkshopCategoryBarEventShuttle;\r\nextern const void * RTTI_WorkshopCategoryInfoDataModel;\r\nextern const void * RTTI_WorkshopCategoryInfoDataModel__WorkshopCategoryInfoEventShuttle;\r\nextern const void * RTTI_WorkshopColorModeDataModel;\r\nextern const void * RTTI_WorkshopColorModeDataModel__WorkshopColorModeEventShuttle;\r\nextern const void * RTTI_WorkshopColorMode_ApplyColors;\r\nextern const void * RTTI_WorkshopColorMode_SelectedTab;\r\nextern const void * RTTI_WorkshopColorMode_SliderChanged;\r\nextern const void * RTTI_WorkshopColorMode_SwatchChanged;\r\nextern const void * RTTI_WorkshopEngine__ActivateItemEvent;\r\nextern const void * RTTI_WorkshopEngine__BulldozeItemEvent;\r\nextern const void * RTTI_WorkshopEngine__CancelEvent;\r\nextern const void * RTTI_WorkshopEngine__CommitEvent;\r\nextern const void * RTTI_WorkshopEngine__ConnectTransferLinkEvent;\r\nextern const void * RTTI_WorkshopEngine__ConnectWireEvent;\r\nextern const void * RTTI_WorkshopEngine__CycleBehaviorEvent;\r\nextern const void * RTTI_WorkshopEngine__EditColorsEvent;\r\nextern const void * RTTI_WorkshopEngine__EditItemEvent;\r\nextern const void * RTTI_WorkshopEngine__EngineFrame;\r\nextern const void * RTTI_WorkshopEngine__ExitEvent;\r\nextern const void * RTTI_WorkshopEngine__FinishRepairEvent;\r\nextern const void * RTTI_WorkshopEngine__InspectColorItemsEvent;\r\nextern const void * RTTI_WorkshopEngine__ItemCombatChangedEvent;\r\nextern const void * RTTI_WorkshopEngine__NewItemEvent;\r\nextern const void * RTTI_WorkshopEngine__PlaceOutpostEvent;\r\nextern const void * RTTI_WorkshopEngine__PreviewColorsEvent;\r\nextern const void * RTTI_WorkshopEngine__RemoveItemEvent;\r\nextern const void * RTTI_WorkshopEngine__RemoveOutpostEvent;\r\nextern const void * RTTI_WorkshopEngine__RemoveSingleWorkshopItemEvent;\r\nextern const void * RTTI_WorkshopEngine__RemoveWorkshopItemsEvent;\r\nextern const void * RTTI_WorkshopEngine__RequestRepairItemEvent;\r\nextern const void * RTTI_WorkshopEngine__ResetColorsToDefaultEvent;\r\nextern const void * RTTI_WorkshopEngine__RevertBehaviorEvent;\r\nextern const void * RTTI_WorkshopEngine__RotateItemEvent;\r\nextern const void * RTTI_WorkshopEngine__StartQuickMenuEvent;\r\nextern const void * RTTI_WorkshopEngine__StartSnappedEvent;\r\nextern const void * RTTI_WorkshopEngine__StartWorkshopEvent;\r\nextern const void * RTTI_WorkshopEngine__StateBulldoze;\r\nextern const void * RTTI_WorkshopEngine__StateCreatePowerLink;\r\nextern const void * RTTI_WorkshopEngine__StateCreateReferences;\r\nextern const void * RTTI_WorkshopEngine__StateCreateTransferLink;\r\nextern const void * RTTI_WorkshopEngine__StateCycleSnapBehavior;\r\nextern const void * RTTI_WorkshopEngine__StateDuplicateReferences;\r\nextern const void * RTTI_WorkshopEngine__StateIdle;\r\nextern const void * RTTI_WorkshopEngine__StateInspect;\r\nextern const void * RTTI_WorkshopEngine__StateInspectColorItems;\r\nextern const void * RTTI_WorkshopEngine__StateModifyColors;\r\nextern const void * RTTI_WorkshopEngine__StatePostCommitEdit;\r\nextern const void * RTTI_WorkshopEngine__StateSetupReferences;\r\nextern const void * RTTI_WorkshopEngine__StateUpdateAutoFoundation;\r\nextern const void * RTTI_WorkshopEngine__StateUpdateCommitSnapEdit;\r\nextern const void * RTTI_WorkshopEngine__StateUpdatePlacement;\r\nextern const void * RTTI_WorkshopEngine__StateUpdatePowerLink;\r\nextern const void * RTTI_WorkshopEngine__StateUpdateSnapped;\r\nextern const void * RTTI_WorkshopEngine__StateUpdateTransferLink;\r\nextern const void * RTTI_WorkshopEngine__StateWait3D;\r\nextern const void * RTTI_WorkshopEngine__TrackItemEvent;\r\nextern const void * RTTI_WorkshopEngine__UntrackItemEvent;\r\nextern const void * RTTI_WorkshopEngine__UpdateEvent;\r\nextern const void * RTTI_WorkshopHavokUtils__AutoFoundationHeightCastCollisionfilter;\r\nextern const void * RTTI_WorkshopHavokUtils__ClosestCanHaveAutoFoundationsCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__ForwardCastCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__GroundInfoCollisionfilter;\r\nextern const void * RTTI_WorkshopHavokUtils__IgnoreBulldozedReferencesCollisionFilter;\r\nextern const void * RTTI_WorkshopHavokUtils__IntersectionTestCollisionfilter;\r\nextern const void * RTTI_WorkshopHavokUtils__ItemPlacementForwardCastCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__TempItemPlacementCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__WorkshopClosestHitGroundCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__WorkshopGroundCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__hknpWorkshopCastCollector;\r\nextern const void * RTTI_WorkshopHavokUtils__hknpWorkshopIntersectCollector;\r\nextern const void * RTTI_WorkshopHighlightUtils__EventListener;\r\nextern const void * RTTI_WorkshopInteractiveMessageDataModel;\r\nextern const void * RTTI_WorkshopInteractiveMessageDataModel__ICallback;\r\nextern const void * RTTI_WorkshopInteractiveMessageDataModel__WorkshopInteractiveMessageEventShuttle;\r\nextern const void * RTTI_WorkshopIsoCameraState;\r\nextern const void * RTTI_WorkshopLOD__WorkshopLODManager;\r\nextern const void * RTTI_WorkshopMenu;\r\nextern const void * RTTI_WorkshopMenuShared;\r\nextern const void * RTTI_WorkshopMenu_AttemptBuild;\r\nextern const void * RTTI_WorkshopMenu_CancelAction;\r\nextern const void * RTTI_WorkshopMenu_ChangeVariant;\r\nextern const void * RTTI_WorkshopMenu_ConnectionEvent;\r\nextern const void * RTTI_WorkshopMenu_ExitMenu;\r\nextern const void * RTTI_WorkshopMenu_MessageCallback;\r\nextern const void * RTTI_WorkshopMenu_SelectedCategory;\r\nextern const void * RTTI_WorkshopMenu_SelectedGridObject;\r\nextern const void * RTTI_WorkshopMenu_ShowExtras;\r\nextern const void * RTTI_WorkshopMenu_SwitchMode;\r\nextern const void * RTTI_WorkshopMenu_ToggleDistance;\r\nextern const void * RTTI_WorkshopMenu_ToggleTracking;\r\nextern const void * RTTI_WorkshopMenu_ToggleView;\r\nextern const void * RTTI_WorkshopMessageDataModel;\r\nextern const void * RTTI_WorkshopMessageDataModel__WorkshopMessageEventShuttle;\r\nextern const void * RTTI_WorkshopObjectInfoCardDataModel;\r\nextern const void * RTTI_WorkshopObjectInfoCardDataModel__WorkshopObjectInfoCardEventShuttle;\r\nextern const void * RTTI_WorkshopOperations__CandidateSnapper;\r\nextern const void * RTTI_WorkshopPickRefDataModel;\r\nextern const void * RTTI_WorkshopPickRefDataModel__WorkshopPickRefEventShuttle;\r\nextern const void * RTTI_WorkshopQuickMenu;\r\nextern const void * RTTI_WorkshopQuickMenuDataModel;\r\nextern const void * RTTI_WorkshopQuickMenuDataModel__WorkshopQuickMenuEventShuttle;\r\nextern const void * RTTI_WorkshopQuickMenu_ConfirmAction;\r\nextern const void * RTTI_WorkshopQuickMenu_ExitMenu;\r\nextern const void * RTTI_WorkshopResources__WorkshopResourcesManager;\r\nextern const void * RTTI_WorkshopShared_SetActionHandles;\r\nextern const void * RTTI_WorkshopShared_StartAction;\r\nextern const void * RTTI_WorkshopStateDataModel;\r\nextern const void * RTTI_WorkshopStateDataModel__WorkshopStateEventShuttle;\r\nextern const void * RTTI_WorkshopStatusDataModel;\r\nextern const void * RTTI_WorkshopStatusDataModel__WorkshopStatusEventShuttle;\r\nextern const void * RTTI_WorkshopTargetMenu;\r\nextern const void * RTTI_WorkshopTargetMenu_TargetHovered;\r\nextern const void * RTTI_WorkshopTargetMenu_TargetPicked;\r\nextern const void * RTTI_WorkshopTargetMenu__OutpostData;\r\nextern const void * RTTI_WorkshopTargetMenu__ResourceData;\r\nextern const void * RTTI_WorkshopTargetMenu__SourceData;\r\nextern const void * RTTI_WorkshopTargetMenu__TargetData;\r\nextern const void * RTTI_WorkshopTargetMenu__TargetMenuData;\r\nextern const void * RTTI_WorkshopTargetMenu__WorkshopTargetEventShuttle;\r\nextern const void * RTTI_WorkshopUI__ConfirmDeferDeleteCallback;\r\nextern const void * RTTI_WorkshopUI__StateBulldoze;\r\nextern const void * RTTI_WorkshopUI__StateIdle;\r\nextern const void * RTTI_WorkshopUI__StateInspectColors;\r\nextern const void * RTTI_WorkshopUI__StateInspectIdle;\r\nextern const void * RTTI_WorkshopUI__StateInspectItem;\r\nextern const void * RTTI_WorkshopUI__StateModifyColors;\r\nextern const void * RTTI_WorkshopUI__StateUpdateExistingItemPlacement;\r\nextern const void * RTTI_WorkshopUI__StateUpdateNewDeployablePlacement;\r\nextern const void * RTTI_WorkshopUI__StateUpdateNewItemPlacement;\r\nextern const void * RTTI_WorkshopUI__StateUpdateTransferLinkPlacement;\r\nextern const void * RTTI_WorkshopUI__StateUpdateWirePlacement;\r\nextern const void * RTTI_WorkshopUI__UIStateMachine;\r\nextern const void * RTTI_Workshop_BlueprintMenu;\r\nextern const void * RTTI_Workshop__BulldozeOnlyWorkshopItem;\r\nextern const void * RTTI_Workshop__DecoratedHabWorkshopItem;\r\nextern const void * RTTI_Workshop__ExtraData;\r\nextern const void * RTTI_Workshop__InventoryItemWorkshopItem;\r\nextern const void * RTTI_Workshop__MainStatusHandler;\r\nextern const void * RTTI_Workshop__PackinWorkshopItem;\r\nextern const void * RTTI_Workshop__PowerLinkWorkshopItem;\r\nextern const void * RTTI_Workshop__SingleWorkshopItem;\r\nextern const void * RTTI_Workshop__TESObjectREFRGameEventListener;\r\nextern const void * RTTI_Workshop__TransferLinkWorkshopItem;\r\nextern const void * RTTI_Workshop__WireWorkshopItem;\r\nextern const void * RTTI_Workshop__WorkshopMenuNode;\r\nextern const void * RTTI_Workshop__WorkshopMenuNodeBuildableObject;\r\nextern const void * RTTI_Workshop__WorkshopMenuNodeBulldozer;\r\nextern const void * RTTI_Workshop__WorkshopMenuNodeDecoratedHab;\r\nextern const void * RTTI_Workshop__WorkshopMenuNodeLockLevel;\r\nextern const void * RTTI_Workshop__WorkshopMenuNodeOutpost;\r\nextern const void * RTTI_Workshop__WorkshopStatisticsEventSink;\r\nextern const void * RTTI_ZeroOverheadHeap;\r\nextern const void * RTTI_ZeroPitchHandler;\r\nextern const void * RTTI_ZoneEntry;\r\nextern const void * RTTI_allCreationsDownloadedCallback;\r\nextern const void * RTTI_bhkBipedOrientationController;\r\nextern const void * RTTI_bhkBlockStreamAllocatorBase;\r\nextern const void * RTTI_bhkCharProxyController;\r\nextern const void * RTTI_bhkCharProxyControllerCinfo;\r\nextern const void * RTTI_bhkCharProxyManager;\r\nextern const void * RTTI_bhkCharRigidBodyController;\r\nextern const void * RTTI_bhkCharRigidBodyControllerCinfo;\r\nextern const void * RTTI_bhkCharRigidBodyManager;\r\nextern const void * RTTI_bhkCharacterCollisionHandler;\r\nextern const void * RTTI_bhkCharacterController;\r\nextern const void * RTTI_bhkCharacterControllerCinfo;\r\nextern const void * RTTI_bhkCharacterControllerShapeManager;\r\nextern const void * RTTI_bhkCharacterControllerShapeManager__hknpConvexShapeEx;\r\nextern const void * RTTI_bhkCharacterPointCollector;\r\nextern const void * RTTI_bhkCharacterProxy;\r\nextern const void * RTTI_bhkCharacterRigidBody;\r\nextern const void * RTTI_bhkCharacterRigidBodyCinfo;\r\nextern const void * RTTI_bhkCharacterStateClimbing;\r\nextern const void * RTTI_bhkCharacterStateFloating;\r\nextern const void * RTTI_bhkCharacterStateFlying;\r\nextern const void * RTTI_bhkCharacterStateInAir;\r\nextern const void * RTTI_bhkCharacterStateJumping;\r\nextern const void * RTTI_bhkCharacterStateOnGround;\r\nextern const void * RTTI_bhkCharacterStateSpaceship;\r\nextern const void * RTTI_bhkCharacterStateSwimming;\r\nextern const void * RTTI_bhkCollisionFilter;\r\nextern const void * RTTI_bhkICharOrientationController;\r\nextern const void * RTTI_bhkIWorldStepListener;\r\nextern const void * RTTI_bhkMemorySystem;\r\nextern const void * RTTI_bhkMultithreadedSystem;\r\nextern const void * RTTI_bhkNPCollisionObject;\r\nextern const void * RTTI_bhkNPCollisionObjectUnlinked;\r\nextern const void * RTTI_bhkNPCollisionObjectUnlinked__LinkExtraData;\r\nextern const void * RTTI_bhkNPCollisionProxyObject;\r\nextern const void * RTTI_bhkNPModelNodeComponent;\r\nextern const void * RTTI_bhkParticlesManagerModifier;\r\nextern const void * RTTI_bhkPhysicsSystem;\r\nextern const void * RTTI_bhkQuadOrientationController;\r\nextern const void * RTTI_bhkRagdollPenetrationManager;\r\nextern const void * RTTI_bhkRagdollSystem;\r\nextern const void * RTTI_bhkRandomVelocityGenerator__INISettingCollectionEx;\r\nextern const void * RTTI_bhkRandomVelocityGenerator__INISettingEx;\r\nextern const void * RTTI_bhkThreadMemorySource;\r\nextern const void * RTTI_bhkThreadMemorySource__RowBlockAllocatorImpl;\r\nextern const void * RTTI_bhkThreadPool;\r\nextern const void * RTTI_bhkTrapListener;\r\nextern const void * RTTI_bhkVehicleSetup;\r\nextern const void * RTTI_bhkWorld;\r\nextern const void * RTTI_bhkWorldM;\r\nextern const void * RTTI_bnet__Account__ExternalAuthInfo;\r\nextern const void * RTTI_bnet__AsyncOperationProxy;\r\nextern const void * RTTI_bnet__Mods__BaseUpdatePreferenceInfo;\r\nextern const void * RTTI_bnet__Mods__UpdateContentPreferenceInfo;\r\nextern const void * RTTI_bnet__impl__AsyncOperation;\r\nextern const void * RTTI_bps__client__BIEventClient__BulkEventsResult;\r\nextern const void * RTTI_bps__client__BIEventClient__CreateSessionResult;\r\nextern const void * RTTI_bps__client__BaseRequestImpl;\r\nextern const void * RTTI_bps__client__Services;\r\nextern const void * RTTI_castTest__Interface0;\r\nextern const void * RTTI_castTest__Interface1;\r\nextern const void * RTTI_castTest__Interface2;\r\nextern const void * RTTI_castTest__InterfaceBase;\r\nextern const void * RTTI_castTest__InterfaceOtherBase;\r\nextern const void * RTTI_castTest__Leaf;\r\nextern const void * RTTI_castTest__OtherLeaf;\r\nextern const void * RTTI_castTest__Root;\r\nextern const void * RTTI_castTest__WithInterfaces;\r\nextern const void * RTTI_downloadConfirmResetCallback;\r\nextern const void * RTTI_errorCallback;\r\nextern const void * RTTI_hclAction;\r\nextern const void * RTTI_hclAntiPinchConstraintInstanceData;\r\nextern const void * RTTI_hclAntiPinchConstraintSet;\r\nextern const void * RTTI_hclBSClothParameterizedWindAction;\r\nextern const void * RTTI_hclBSClothPickingAction;\r\nextern const void * RTTI_hclBSWorld;\r\nextern const void * RTTI_hclBendLinkConstraintSet;\r\nextern const void * RTTI_hclBendLinkConstraintSetMx;\r\nextern const void * RTTI_hclBendStiffnessConstraintSet;\r\nextern const void * RTTI_hclBendStiffnessConstraintSetMx;\r\nextern const void * RTTI_hclBlendOperatorInstanceData;\r\nextern const void * RTTI_hclBlendSomeVerticesOperator;\r\nextern const void * RTTI_hclBonePlanesConstraintSet;\r\nextern const void * RTTI_hclBoneSpaceMeshMeshDeformOperator;\r\nextern const void * RTTI_hclBoneSpaceMeshMeshDeformPNOperator;\r\nextern const void * RTTI_hclBoneSpaceMeshMeshDeformPNTBOperator;\r\nextern const void * RTTI_hclBoneSpaceMeshMeshDeformPNTOperator;\r\nextern const void * RTTI_hclBoneSpaceMeshMeshDeformPOperator;\r\nextern const void * RTTI_hclBoneSpaceSkinOperator;\r\nextern const void * RTTI_hclBoneSpaceSkinPNOperator;\r\nextern const void * RTTI_hclBoneSpaceSkinPNTBOperator;\r\nextern const void * RTTI_hclBoneSpaceSkinPNTOperator;\r\nextern const void * RTTI_hclBoneSpaceSkinPOperator;\r\nextern const void * RTTI_hclBoneSpaceTransferSimulationOperator;\r\nextern const void * RTTI_hclBuffer;\r\nextern const void * RTTI_hclBufferDefinition;\r\nextern const void * RTTI_hclCapsuleShape;\r\nextern const void * RTTI_hclClothContainer;\r\nextern const void * RTTI_hclClothData;\r\nextern const void * RTTI_hclClothInstance;\r\nextern const void * RTTI_hclClothLeafShapeSensor;\r\nextern const void * RTTI_hclClothPickingAction;\r\nextern const void * RTTI_hclClothState;\r\nextern const void * RTTI_hclClothStateInstanceData;\r\nextern const void * RTTI_hclCollidable;\r\nextern const void * RTTI_hclCollisionConvexes;\r\nextern const void * RTTI_hclCollisionTriangles;\r\nextern const void * RTTI_hclCompressibleLinkConstraintSet;\r\nextern const void * RTTI_hclCompressibleLinkConstraintSetMx;\r\nextern const void * RTTI_hclConstraintSet;\r\nextern const void * RTTI_hclConstraintStiffnessDispatcher;\r\nextern const void * RTTI_hclConvexGeometryShape;\r\nextern const void * RTTI_hclConvexHeightFieldShape;\r\nextern const void * RTTI_hclConvexPlanesShape;\r\nextern const void * RTTI_hclCopyVerticesOperator;\r\nextern const void * RTTI_hclFullClothTask;\r\nextern const void * RTTI_hclGatherAllVerticesOperator;\r\nextern const void * RTTI_hclGatherSomeVerticesOperator;\r\nextern const void * RTTI_hclInputConvertOperator;\r\nextern const void * RTTI_hclLocalRangeConstraintSet;\r\nextern const void * RTTI_hclMeshBoneDeformOperator;\r\nextern const void * RTTI_hclMeshMeshDeformOperator;\r\nextern const void * RTTI_hclMoveParticlesOperator;\r\nextern const void * RTTI_hclObjectSpaceMeshMeshDeformOperator;\r\nextern const void * RTTI_hclObjectSpaceMeshMeshDeformPNOperator;\r\nextern const void * RTTI_hclObjectSpaceMeshMeshDeformPNTBOperator;\r\nextern const void * RTTI_hclObjectSpaceMeshMeshDeformPNTOperator;\r\nextern const void * RTTI_hclObjectSpaceMeshMeshDeformPOperator;\r\nextern const void * RTTI_hclObjectSpaceSkinOperator;\r\nextern const void * RTTI_hclObjectSpaceSkinPNOperator;\r\nextern const void * RTTI_hclObjectSpaceSkinPNTBOperator;\r\nextern const void * RTTI_hclObjectSpaceSkinPNTOperator;\r\nextern const void * RTTI_hclObjectSpaceSkinPOperator;\r\nextern const void * RTTI_hclObjectSpaceTransferSimulationOperator;\r\nextern const void * RTTI_hclOperator;\r\nextern const void * RTTI_hclOperatorSequenceTask;\r\nextern const void * RTTI_hclOutputConvertOperator;\r\nextern const void * RTTI_hclPlaneShape;\r\nextern const void * RTTI_hclPointContactPlanesShape;\r\nextern const void * RTTI_hclPostExecuteClothTask;\r\nextern const void * RTTI_hclPreExecuteClothTask;\r\nextern const void * RTTI_hclScratchBuffer;\r\nextern const void * RTTI_hclScratchBufferDefinition;\r\nextern const void * RTTI_hclShadowBuffer;\r\nextern const void * RTTI_hclShadowBufferDefinition;\r\nextern const void * RTTI_hclShape;\r\nextern const void * RTTI_hclSimClothData;\r\nextern const void * RTTI_hclSimClothInstance;\r\nextern const void * RTTI_hclSimClothPose;\r\nextern const void * RTTI_hclSimpleMeshBoneDeformOperator;\r\nextern const void * RTTI_hclSimpleWindAction;\r\nextern const void * RTTI_hclSimulateOperator;\r\nextern const void * RTTI_hclSimulateOperatorInstanceData;\r\nextern const void * RTTI_hclSkinOperator;\r\nextern const void * RTTI_hclSphereShape;\r\nextern const void * RTTI_hclStandardLinkConstraintSet;\r\nextern const void * RTTI_hclStandardLinkConstraintSetMx;\r\nextern const void * RTTI_hclStateDependencyGraph;\r\nextern const void * RTTI_hclStateTransition;\r\nextern const void * RTTI_hclStaticShadowBuffer;\r\nextern const void * RTTI_hclStaticShadowBufferDefinition;\r\nextern const void * RTTI_hclStretchLinkConstraintSet;\r\nextern const void * RTTI_hclStretchLinkConstraintSetMx;\r\nextern const void * RTTI_hclTaperedCapsuleShape;\r\nextern const void * RTTI_hclTransformSetDefinition;\r\nextern const void * RTTI_hclTransitionConstraintInstanceData;\r\nextern const void * RTTI_hclTransitionConstraintSet;\r\nextern const void * RTTI_hclUpdateAllVertexFramesOperator;\r\nextern const void * RTTI_hclUpdateSomeVertexFramesOperator;\r\nextern const void * RTTI_hclVdbObjectNode__SimulateOperatorInstanceData;\r\nextern const void * RTTI_hclVolumeConstraint;\r\nextern const void * RTTI_hclVolumeConstraintInstanceData;\r\nextern const void * RTTI_hclVolumeConstraintMx;\r\nextern const void * RTTI_hclVolumeConstraintMxInstanceData;\r\nextern const void * RTTI_hclWorld;\r\nextern const void * RTTI_hctClothSetup20151Options;\r\nextern const void * RTTI_hctClothSetupClothData20151Options;\r\nextern const void * RTTI_hctClothSetupObjectData20151;\r\nextern const void * RTTI_hkBSErrorEmpty;\r\nextern const void * RTTI_hkBaseObject;\r\nextern const void * RTTI_hkBlockStreamAllocator;\r\nextern const void * RTTI_hkBlockStreamCommandWriter;\r\nextern const void * RTTI_hkBmpFileFormat;\r\nextern const void * RTTI_hkBsdSocket;\r\nextern const void * RTTI_hkBufferedStreamReader;\r\nextern const void * RTTI_hkBufferedStreamWriter;\r\nextern const void * RTTI_hkConcurrency;\r\nextern const void * RTTI_hkDdsFileFormat;\r\nextern const void * RTTI_hkDebugCommandProcessor;\r\nextern const void * RTTI_hkDebugDisplay;\r\nextern const void * RTTI_hkDebugDisplayHandler;\r\nextern const void * RTTI_hkDefaultCompoundMeshBody;\r\nextern const void * RTTI_hkDefaultCompoundMeshShape;\r\nextern const void * RTTI_hkDefaultError;\r\nextern const void * RTTI_hkDefaultTaskQueue;\r\nextern const void * RTTI_hkDefaultTaskQueueDetail__AsyncThreadPoolContext;\r\nextern const void * RTTI_hkDefaultTaskQueueDetail__BlockingThreadContext;\r\nextern const void * RTTI_hkDefaultTaskQueueDetail__SpinningThreadContext;\r\nextern const void * RTTI_hkDefaultTaskQueueEx__ExecutionContext;\r\nextern const void * RTTI_hkDefaultTaskQueue__CriticalSection;\r\nextern const void * RTTI_hkDefaultTaskQueue__EmptyTask;\r\nextern const void * RTTI_hkDefaultTaskQueue__ThreadContext;\r\nextern const void * RTTI_hkDisplayAABB;\r\nextern const void * RTTI_hkDisplayCapsule;\r\nextern const void * RTTI_hkDisplayGeometry;\r\nextern const void * RTTI_hkDisplaySphere;\r\nextern const void * RTTI_hkDisplayWireframe;\r\nextern const void * RTTI_hkErrStream;\r\nextern const void * RTTI_hkError;\r\nextern const void * RTTI_hkErrorRouter;\r\nextern const void * RTTI_hkFileSystem;\r\nextern const void * RTTI_hkFileSystem__Watcher;\r\nextern const void * RTTI_hkGeometry;\r\nextern const void * RTTI_hkGeometryUtils__IVertices;\r\nextern const void * RTTI_hkHardwareInfo;\r\nextern const void * RTTI_hkHdrFileFormat;\r\nextern const void * RTTI_hkImageConversionStep;\r\nextern const void * RTTI_hkImageConversion_AddAlpha;\r\nextern const void * RTTI_hkImageConversion_Decode555;\r\nextern const void * RTTI_hkImageConversion_DiscardChannels;\r\nextern const void * RTTI_hkImageConversion_FLOAT16_to_32;\r\nextern const void * RTTI_hkImageConversion_FLOAT32_to_16;\r\nextern const void * RTTI_hkImageConversion_FLOAT_to_R11G11B10;\r\nextern const void * RTTI_hkImageConversion_FLOAT_to_SNORM8;\r\nextern const void * RTTI_hkImageConversion_FLOAT_to_UNORM16;\r\nextern const void * RTTI_hkImageConversion_FLOAT_to_UNORM8;\r\nextern const void * RTTI_hkImageConversion_FLOAT_to_UNORM8_SRGB;\r\nextern const void * RTTI_hkImageConversion_Pad_to_RGBA32;\r\nextern const void * RTTI_hkImageConversion_Pad_to_RGBA8;\r\nextern const void * RTTI_hkImageConversion_R11G11B10_to_FLOAT;\r\nextern const void * RTTI_hkImageConversion_R11G11B10_to_HALF;\r\nextern const void * RTTI_hkImageConversion_R32_G32_B32_FLOAT_to_B8_G8_R8_UNSIGNED_NORMALIZED;\r\nextern const void * RTTI_hkImageConversion_R32_G32_B32_FLOAT_to_R8_G8_B8_A8_UNSIGNED_NORMALIZED;\r\nextern const void * RTTI_hkImageConversion_R32_G32_B32_FLOAT_to_R8_G8_B8_UNSIGNED_NORMALIZED;\r\nextern const void * RTTI_hkImageConversion_R8G8B8A8_to_R8G8B8;\r\nextern const void * RTTI_hkImageConversion_SNORM8_to_FLOAT;\r\nextern const void * RTTI_hkImageConversion_SetAlpha;\r\nextern const void * RTTI_hkImageConversion_UNORM16_to_FLOAT;\r\nextern const void * RTTI_hkImageConversion_UNORM8_SRGB_to_FLOAT;\r\nextern const void * RTTI_hkImageConversion_UNORM8_to_FLOAT;\r\nextern const void * RTTI_hkImageRef;\r\nextern const void * RTTI_hkImageSwizzleConversion32_2103;\r\nextern const void * RTTI_hkIndexedTransformSet;\r\nextern const void * RTTI_hkIo__Detail__ArrayWriteBufferImpl;\r\nextern const void * RTTI_hkIo__Detail__ReadBufferImpl;\r\nextern const void * RTTI_hkIo__Detail__StreamReaderImpl;\r\nextern const void * RTTI_hkIo__Detail__StreamWriteBufferImpl;\r\nextern const void * RTTI_hkKeycodeData;\r\nextern const void * RTTI_hkLifoAllocator;\r\nextern const void * RTTI_hkLocalFrameGroup;\r\nextern const void * RTTI_hkLog__Output;\r\nextern const void * RTTI_hkMallocAllocator;\r\nextern const void * RTTI_hkMemoryAllocator;\r\nextern const void * RTTI_hkMemoryMeshBody;\r\nextern const void * RTTI_hkMemoryMeshMaterial;\r\nextern const void * RTTI_hkMemoryMeshShape;\r\nextern const void * RTTI_hkMemoryMeshTexture;\r\nextern const void * RTTI_hkMemoryMeshTexture__Sampler;\r\nextern const void * RTTI_hkMemoryMeshVertexBuffer;\r\nextern const void * RTTI_hkMemoryResourceContainer;\r\nextern const void * RTTI_hkMemoryResourceHandle;\r\nextern const void * RTTI_hkMemorySystem;\r\nextern const void * RTTI_hkMemory__ScopedStats__Collector;\r\nextern const void * RTTI_hkMeshTexture__Sampler;\r\nextern const void * RTTI_hkMeshVertexBuffer;\r\nextern const void * RTTI_hkMonitorStreamColorTable;\r\nextern const void * RTTI_hkMonitorStreamContainer;\r\nextern const void * RTTI_hkMonitorStreamStringMap;\r\nextern const void * RTTI_hkMonitorStreamTypeMap;\r\nextern const void * RTTI_hkMultipleVertexBuffer;\r\nextern const void * RTTI_hkObjectResource;\r\nextern const void * RTTI_hkOstream;\r\nextern const void * RTTI_hkParserBuffer;\r\nextern const void * RTTI_hkPrimaryCommandDispatcher;\r\nextern const void * RTTI_hkProcessFactory;\r\nextern const void * RTTI_hkRefCountedProperties;\r\nextern const void * RTTI_hkReferencedObject;\r\nextern const void * RTTI_hkReferencedObjectLock;\r\nextern const void * RTTI_hkReflect__Any__ArrayImpl;\r\nextern const void * RTTI_hkReflect__AttributeArrayWithOwnership__AllocImpl;\r\nextern const void * RTTI_hkReflect__ClonerCallback;\r\nextern const void * RTTI_hkReflect__Detail__AllocationImpl;\r\nextern const void * RTTI_hkReflect__Detail__AttributeAllocImpl;\r\nextern const void * RTTI_hkReflect__Detail__BuiltinTypeReg;\r\nextern const void * RTTI_hkReflect__Detail__BuiltinTypeReg__SubscriptionImpl;\r\nextern const void * RTTI_hkReflect__Detail__CharBufferImpl;\r\nextern const void * RTTI_hkReflect__Detail__CloneOnHeap;\r\nextern const void * RTTI_hkReflect__Detail__DerivedDataCache;\r\nextern const void * RTTI_hkReflect__Detail__HavokRecordImpl;\r\nextern const void * RTTI_hkReflect__Detail__HavokStringImpl;\r\nextern const void * RTTI_hkReflect__Detail__HeapAllocImpl;\r\nextern const void * RTTI_hkReflect__Detail__HomogeneousArrayImpl;\r\nextern const void * RTTI_hkReflect__Detail__Impl;\r\nextern const void * RTTI_hkReflect__Detail__NullptrImpl;\r\nextern const void * RTTI_hkReflect__Detail__OpaqueImpl;\r\nextern const void * RTTI_hkReflect__Detail__RawPointerImpl;\r\nextern const void * RTTI_hkReflect__Detail__ReferenceImpl;\r\nextern const void * RTTI_hkReflect__Detail__ReferencedObjectAllocImpl;\r\nextern const void * RTTI_hkReflect__Detail__ReferencedObjectPointerImpl;\r\nextern const void * RTTI_hkReflect__Detail__RepeatImpl;\r\nextern const void * RTTI_hkReflect__Detail__ScopedPtrImpl;\r\nextern const void * RTTI_hkReflect__Detail__SetterArrayImpl;\r\nextern const void * RTTI_hkReflect__Detail__SetterRecordImpl;\r\nextern const void * RTTI_hkReflect__Detail__StaticArrayImpl;\r\nextern const void * RTTI_hkReflect__Detail__StaticStringImpl;\r\nextern const void * RTTI_hkReflect__Detail__StringOut__StringOutImpl;\r\nextern const void * RTTI_hkReflect__Detail__ViewPointerImpl;\r\nextern const void * RTTI_hkReflect__Detail__VoidImpl;\r\nextern const void * RTTI_hkReflect__Detail__hkArrayImpl;\r\nextern const void * RTTI_hkReflect__Detail__hkInplaceArrayImpl;\r\nextern const void * RTTI_hkReflect__MutableTypeReg;\r\nextern const void * RTTI_hkReflect__TypeBuilder;\r\nextern const void * RTTI_hkReflect__TypeCopier;\r\nextern const void * RTTI_hkReflect__TypeReg;\r\nextern const void * RTTI_hkReflect__Var__VarImpl;\r\nextern const void * RTTI_hkReflect__Version__PatchInfoCache;\r\nextern const void * RTTI_hkReflect__Version__PatchRegistry;\r\nextern const void * RTTI_hkReflect__Version__PatchSet;\r\nextern const void * RTTI_hkReflect__Version__Patcher;\r\nextern const void * RTTI_hkRelArray_ArrayImpl;\r\nextern const void * RTTI_hkResource;\r\nextern const void * RTTI_hkScalarF_FloatImpl;\r\nextern const void * RTTI_hkSecondaryCommandDispatcher;\r\nextern const void * RTTI_hkSeekableStreamReader;\r\nextern const void * RTTI_hkSerialize__Bundle;\r\nextern const void * RTTI_hkSerialize__BundleBuilder;\r\nextern const void * RTTI_hkSerialize__Detail__ChainingCloneCallback;\r\nextern const void * RTTI_hkSerialize__Detail__CloneToRegistered;\r\nextern const void * RTTI_hkSerialize__Detail__SkipDyingCallback;\r\nextern const void * RTTI_hkSerialize__Detail__TagfileArrayImpl;\r\nextern const void * RTTI_hkSerialize__Detail__TagfileBundle;\r\nextern const void * RTTI_hkSerialize__Detail__TagfilePointerImpl;\r\nextern const void * RTTI_hkSerialize__Detail__TagfileStringImpl;\r\nextern const void * RTTI_hkSerialize__NoteHandler;\r\nextern const void * RTTI_hkSerialize__ReadFormat;\r\nextern const void * RTTI_hkSerialize__TagfileReadFormat;\r\nextern const void * RTTI_hkSerialize__TagfileWriteFormat;\r\nextern const void * RTTI_hkSerialize__TagfileWriteFormat__Impl;\r\nextern const void * RTTI_hkSerialize__WriteFormat;\r\nextern const void * RTTI_hkSimdDouble64_FloatImpl;\r\nextern const void * RTTI_hkSimpleLocalFrame;\r\nextern const void * RTTI_hkSkinBinding;\r\nextern const void * RTTI_hkSkinnedRefMeshShape;\r\nextern const void * RTTI_hkSlot;\r\nextern const void * RTTI_hkSocket;\r\nextern const void * RTTI_hkSocket__ReaderAdapter;\r\nextern const void * RTTI_hkSocket__WriterAdapter;\r\nextern const void * RTTI_hkSolverAllocator;\r\nextern const void * RTTI_hkStackTracer;\r\nextern const void * RTTI_hkStdioStreamReader;\r\nextern const void * RTTI_hkStorageSkinnedMeshShape;\r\nextern const void * RTTI_hkStreamReader;\r\nextern const void * RTTI_hkStreamWriter;\r\nextern const void * RTTI_hkStringBuf__StringImpl;\r\nextern const void * RTTI_hkStringObject;\r\nextern const void * RTTI_hkStringPtr__StringImpl;\r\nextern const void * RTTI_hkStringView__StringImpl;\r\nextern const void * RTTI_hkTask;\r\nextern const void * RTTI_hkTaskGraph;\r\nextern const void * RTTI_hkTaskQueue;\r\nextern const void * RTTI_hkTaskQueue_BatchingTask;\r\nextern const void * RTTI_hkTask__ExecutionContext;\r\nextern const void * RTTI_hkTgaFileFormat;\r\nextern const void * RTTI_hkThread;\r\nextern const void * RTTI_hkThreadMemory;\r\nextern const void * RTTI_hkThreadPool;\r\nextern const void * RTTI_hkTransientAllocator;\r\nextern const void * RTTI_hkTypeVm__ArrayInstruction;\r\nextern const void * RTTI_hkTypeVm__BlockInstruction;\r\nextern const void * RTTI_hkTypeVm__BlockPass;\r\nextern const void * RTTI_hkTypeVm__CheckTypeKindsPass;\r\nextern const void * RTTI_hkTypeVm__DefaultInstruction;\r\nextern const void * RTTI_hkTypeVm__GenerateConvertNumericKindPass;\r\nextern const void * RTTI_hkTypeVm__InlineFixedArrayPass;\r\nextern const void * RTTI_hkTypeVm__InlineRecordPass;\r\nextern const void * RTTI_hkTypeVm__Instruction;\r\nextern const void * RTTI_hkTypeVm__IntAndFloatConversionPass;\r\nextern const void * RTTI_hkTypeVm__NopInstruction;\r\nextern const void * RTTI_hkTypeVm__Pass;\r\nextern const void * RTTI_hkTypeVm__ProgramInstruction;\r\nextern const void * RTTI_hkTypeVm__RecordInstruction;\r\nextern const void * RTTI_hkUuidObject;\r\nextern const void * RTTI_hkUuidPseudoRandomGenerator;\r\nextern const void * RTTI_hkViewport;\r\nextern const void * RTTI_hkWin32FileSystem;\r\nextern const void * RTTI_hkWin32FileSystem__WatcherImpl;\r\nextern const void * RTTI_hkWin32StreamWriter;\r\nextern const void * RTTI_hkXmlLexAnalyzer;\r\nextern const void * RTTI_hkXmlStreamParser;\r\nextern const void * RTTI_hk__IsValueArray__Impl;\r\nextern const void * RTTI_hkaSkeleton;\r\nextern const void * RTTI_hkcdDynamicAabbTree;\r\nextern const void * RTTI_hkcdDynamicAabbTree__Impl;\r\nextern const void * RTTI_hkcdGsk_Float3ShapeAOnlyInterface;\r\nextern const void * RTTI_hkcdGsk_Float3ShapeInterface;\r\nextern const void * RTTI_hkcdPlanarCsgOperand;\r\nextern const void * RTTI_hkcdPlanarEntity;\r\nextern const void * RTTI_hkcdPlanarGeometry;\r\nextern const void * RTTI_hkcdPlanarGeometryPlanesCollection;\r\nextern const void * RTTI_hkcdPlanarGeometryPolygonCollection;\r\nextern const void * RTTI_hkcdPlanarGeometry__VertexStorage;\r\nextern const void * RTTI_hkcdPlanarSolid;\r\nextern const void * RTTI_hkcdPlanarSolid__NodeStorage;\r\nextern const void * RTTI_hkcdSimdTreeUtils__Build__EmptyRunnable;\r\nextern const void * RTTI_hkcdSimdTreeUtils__Build__Task;\r\nextern const void * RTTI_hkcdSimdTreeUtils__Build__hkcdRefitWithAabbFloat3Wrapper;\r\nextern const void * RTTI_hkcdSimdTreeUtils__Build__hkcdRefitWithAabbWrapper;\r\nextern const void * RTTI_hkcdSimdTree__BuildContext;\r\nextern const void * RTTI_hkcdSimdTree__ICustomRefit;\r\nextern const void * RTTI_hkcdSimdTree__IParallelBuild__IRunnable;\r\nextern const void * RTTI_hkcdSimdTree__LeafCollector;\r\nextern const void * RTTI_hkcdSimdTree__PairCollector;\r\nextern const void * RTTI_hkcdStaticAabbTree;\r\nextern const void * RTTI_hkcdStaticAabbTree__Impl;\r\nextern const void * RTTI_hkcdStaticMeshTree__GeometryProvider;\r\nextern const void * RTTI_hkgpCgo__Config;\r\nextern const void * RTTI_hkgpConvexHull;\r\nextern const void * RTTI_hkgpDeprecatedConvexDecompositionImpl__DefaultProgress;\r\nextern const void * RTTI_hkgpDeprecatedConvexDecompositionInternal__IInternal;\r\nextern const void * RTTI_hkgpDeprecatedConvexDecomposition__IProgress;\r\nextern const void * RTTI_hkgpMesh__IConvexOverlap;\r\nextern const void * RTTI_hknpAction;\r\nextern const void * RTTI_hknpActionManager;\r\nextern const void * RTTI_hknpAddActiveBodyPairsTask;\r\nextern const void * RTTI_hknpAllHitsCollector;\r\nextern const void * RTTI_hknpAnimatedShapeSurfaceVelocityModifier;\r\nextern const void * RTTI_hknpAnyHitCollector;\r\nextern const void * RTTI_hknpApiCommandProcessor;\r\nextern const void * RTTI_hknpApplyDragTask;\r\nextern const void * RTTI_hknpArrayAction;\r\nextern const void * RTTI_hknpBSCharacterProxy;\r\nextern const void * RTTI_hknpBSCharacterRigidBody;\r\nextern const void * RTTI_hknpBSCustomCollisionFilter;\r\nextern const void * RTTI_hknpBSMaterial;\r\nextern const void * RTTI_hknpBSMaterialProperties;\r\nextern const void * RTTI_hknpBSMotionPropertiesLibrary;\r\nextern const void * RTTI_hknpBSMouseSpringAction;\r\nextern const void * RTTI_hknpBSMoveLimitModifier;\r\nextern const void * RTTI_hknpBSPlacementStreamCache;\r\nextern const void * RTTI_hknpBSShapeCodec;\r\nextern const void * RTTI_hknpBSVehicleInstance;\r\nextern const void * RTTI_hknpBSVehicleRayCastWheelCollide;\r\nextern const void * RTTI_hknpBSVehicleSuspension;\r\nextern const void * RTTI_hknpBSWorld;\r\nextern const void * RTTI_hknpBSWorldUtil__hknpBSPhysicsSystem;\r\nextern const void * RTTI_hknpBSWorldUtil__hknpBSRagdoll;\r\nextern const void * RTTI_hknpBackfaceCollisionModifier;\r\nextern const void * RTTI_hknpBallGun;\r\nextern const void * RTTI_hknpBinaryAction;\r\nextern const void * RTTI_hknpBodyData;\r\nextern const void * RTTI_hknpBodyIntegrator;\r\nextern const void * RTTI_hknpBodyQuality;\r\nextern const void * RTTI_hknpBodyQualityLibrary;\r\nextern const void * RTTI_hknpBodyReference;\r\nextern const void * RTTI_hknpBoxShape;\r\nextern const void * RTTI_hknpBreakableConstraintData;\r\nextern const void * RTTI_hknpBroadPhase;\r\nextern const void * RTTI_hknpBroadphaseTriggerCollisionDetector;\r\nextern const void * RTTI_hknpBuildConstraintJacobiansTask;\r\nextern const void * RTTI_hknpCapsuleCapsuleConvexConvexManifoldGenerator;\r\nextern const void * RTTI_hknpCapsuleShape;\r\nextern const void * RTTI_hknpCharacterContext;\r\nextern const void * RTTI_hknpCharacterProxy;\r\nextern const void * RTTI_hknpCharacterProxyCinfo;\r\nextern const void * RTTI_hknpCharacterProxyInternals__QueryCollector;\r\nextern const void * RTTI_hknpCharacterProxyListener;\r\nextern const void * RTTI_hknpCharacterRigidBody;\r\nextern const void * RTTI_hknpCharacterRigidBodyCinfo;\r\nextern const void * RTTI_hknpCharacterStateManager;\r\nextern const void * RTTI_hknpCircularSurfaceVelocity;\r\nextern const void * RTTI_hknpClosestHitCollector;\r\nextern const void * RTTI_hknpClosestUniqueBodyIdHitCollector;\r\nextern const void * RTTI_hknpClosestUniqueBodyIdHitCollectorDeprecated;\r\nextern const void * RTTI_hknpCollideSyncTask;\r\nextern const void * RTTI_hknpCollisionDetector;\r\nextern const void * RTTI_hknpCollisionFilter;\r\nextern const void * RTTI_hknpCollisionQueryCollector;\r\nextern const void * RTTI_hknpCollisionQueryDispatcher;\r\nextern const void * RTTI_hknpCompositeCompositeCollisionDetector;\r\nextern const void * RTTI_hknpCompositeShape;\r\nextern const void * RTTI_hknpCompoundShape;\r\nextern const void * RTTI_hknpCompoundShapeData;\r\nextern const void * RTTI_hknpCompoundShapeInternalsCdDynamicTreeKeyMask;\r\nextern const void * RTTI_hknpCompoundShapeInternalsSimdTreeKeyMask;\r\nextern const void * RTTI_hknpCompressedMeshShape;\r\nextern const void * RTTI_hknpCompressedMeshShapeCinfo;\r\nextern const void * RTTI_hknpCompressedMeshShapeData;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GeometryProvider;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToConvexQuery;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToConvexQueryScaled;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryScaled0;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryScaled1;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryScaled2;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryUnscaled;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToMeshQueryScaled;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToMeshQueryUnscaled;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__KeyMask;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__RayCastQueryBase;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__ShapeCastQuery;\r\nextern const void * RTTI_hknpCompressedMeshShapeInternals__ShapeCastQueryScaled;\r\nextern const void * RTTI_hknpConstraintAtomSolver;\r\nextern const void * RTTI_hknpConstraintCollisionFilter;\r\nextern const void * RTTI_hknpConstraintForceEventCreator;\r\nextern const void * RTTI_hknpConstraintForceExceededEventCreator;\r\nextern const void * RTTI_hknpContactImpulseClippedEventCreator;\r\nextern const void * RTTI_hknpContactImpulseEventCreator;\r\nextern const void * RTTI_hknpConvexCompositeCollisionDetector;\r\nextern const void * RTTI_hknpConvexConvexCollisionDetector;\r\nextern const void * RTTI_hknpConvexConvexShapeBaseInterface;\r\nextern const void * RTTI_hknpConvexShape;\r\nextern const void * RTTI_hknpCylinderShape;\r\nextern const void * RTTI_hknpDeactivationMaintenanceTask;\r\nextern const void * RTTI_hknpDecoratorShape;\r\nextern const void * RTTI_hknpDefaultBroadPhaseConfig;\r\nextern const void * RTTI_hknpDefaultCompressedMeshShapeCinfo;\r\nextern const void * RTTI_hknpDefaultExternMeshShapeGeometry;\r\nextern const void * RTTI_hknpDefaultHeightFieldGeometry;\r\nextern const void * RTTI_hknpDefaultModifierSet;\r\nextern const void * RTTI_hknpDeflectedLinearCast__CheckStartCollector;\r\nextern const void * RTTI_hknpDeflectedLinearCast__FilteredQueryCollector;\r\nextern const void * RTTI_hknpDeflectedLinearCast__QueryFilter;\r\nextern const void * RTTI_hknpDestructionShapeProperties;\r\nextern const void * RTTI_hknpDisableCollisionFilter;\r\nextern const void * RTTI_hknpDummyShape;\r\nextern const void * RTTI_hknpDynamicSpaceSplitter;\r\nextern const void * RTTI_hknpEaseConstraintsAction;\r\nextern const void * RTTI_hknpEasePenetrationsAction;\r\nextern const void * RTTI_hknpEventDispatcher;\r\nextern const void * RTTI_hknpEventMergeAndDispatcher;\r\nextern const void * RTTI_hknpExtendedExternMeshShapeGeometry;\r\nextern const void * RTTI_hknpExternMeshShape;\r\nextern const void * RTTI_hknpExternMeshShapeBuildContext;\r\nextern const void * RTTI_hknpExternMeshShapeData;\r\nextern const void * RTTI_hknpFaceClipConvexConvexManifoldGenerator;\r\nextern const void * RTTI_hknpFinalizeNarrowPhaseGridTask;\r\nextern const void * RTTI_hknpFinalizeNarrowPhasePairsTask;\r\nextern const void * RTTI_hknpFireSignalTask;\r\nextern const void * RTTI_hknpFirstPersonCharacter;\r\nextern const void * RTTI_hknpFirstPersonGun;\r\nextern const void * RTTI_hknpFixedClosestHitCollector;\r\nextern const void * RTTI_hknpFixedClosestUniqueBodyHitCollector;\r\nextern const void * RTTI_hknpFlipBackfaceCollisionModifier;\r\nextern const void * RTTI_hknpFlippedGetClosestPointsQueryCollector;\r\nextern const void * RTTI_hknpFlippedShapeCastQueryCollector;\r\nextern const void * RTTI_hknpForwardClosestHitCollector;\r\nextern const void * RTTI_hknpFullCast__ManifoldGenerator;\r\nextern const void * RTTI_hknpGenSolverTasksTask;\r\nextern const void * RTTI_hknpGlobals;\r\nextern const void * RTTI_hknpGravityGun;\r\nextern const void * RTTI_hknpGroupCollisionFilter;\r\nextern const void * RTTI_hknpHeightFieldBoundingVolume;\r\nextern const void * RTTI_hknpHeightFieldGeometry;\r\nextern const void * RTTI_hknpHeightFieldShape;\r\nextern const void * RTTI_hknpHitScalingCollector;\r\nextern const void * RTTI_hknpInternalCommandProcessor;\r\nextern const void * RTTI_hknpLeafShapeSensor;\r\nextern const void * RTTI_hknpLegacyRestitutionModifier;\r\nextern const void * RTTI_hknpLinearSurfaceVelocity;\r\nextern const void * RTTI_hknpLodShape;\r\nextern const void * RTTI_hknpMalleableConstraintData;\r\nextern const void * RTTI_hknpManifoldEventCreator;\r\nextern const void * RTTI_hknpMaskedCompoundShape;\r\nextern const void * RTTI_hknpMaskedShape;\r\nextern const void * RTTI_hknpMaskedShape__MaskWrapper;\r\nextern const void * RTTI_hknpMassChangerModifier;\r\nextern const void * RTTI_hknpMaterialData;\r\nextern const void * RTTI_hknpMaterialLibrary;\r\nextern const void * RTTI_hknpMaterialPalette;\r\nextern const void * RTTI_hknpModifier;\r\nextern const void * RTTI_hknpMotionPropertiesData;\r\nextern const void * RTTI_hknpMotionPropertiesLibrary;\r\nextern const void * RTTI_hknpMotionWeldingModifier;\r\nextern const void * RTTI_hknpMountedBallGun;\r\nextern const void * RTTI_hknpMultithreadedSimulation;\r\nextern const void * RTTI_hknpNeighborWeldingModifier;\r\nextern const void * RTTI_hknpNullShapeTagCodec;\r\nextern const void * RTTI_hknpPairCollisionFilter;\r\nextern const void * RTTI_hknpParticleEventCreator;\r\nextern const void * RTTI_hknpParticleShapeLibrary;\r\nextern const void * RTTI_hknpParticleSimulationContext;\r\nextern const void * RTTI_hknpParticlesClosestHitOnMeshCollector;\r\nextern const void * RTTI_hknpParticlesCollider;\r\nextern const void * RTTI_hknpParticlesColliderShape;\r\nextern const void * RTTI_hknpParticlesCollisionFilter;\r\nextern const void * RTTI_hknpParticlesDynamicHitsCollector;\r\nextern const void * RTTI_hknpParticlesStaticCollector;\r\nextern const void * RTTI_hknpPhysicsSceneData;\r\nextern const void * RTTI_hknpPhysicsSystem;\r\nextern const void * RTTI_hknpPhysicsSystemData;\r\nextern const void * RTTI_hknpPostCollideTask;\r\nextern const void * RTTI_hknpPostSolveTask;\r\nextern const void * RTTI_hknpPreSolveTask;\r\nextern const void * RTTI_hknpPrepareConstraintsTask;\r\nextern const void * RTTI_hknpPrepareNarrowPhasePairsTask;\r\nextern const void * RTTI_hknpPrepareNarrowPhaseTask;\r\nextern const void * RTTI_hknpPrepareSolverData;\r\nextern const void * RTTI_hknpProcessFullCastsTask;\r\nextern const void * RTTI_hknpProcessNarrowPhaseGridTask;\r\nextern const void * RTTI_hknpProcessNarrowPhasePairsTask;\r\nextern const void * RTTI_hknpProjectileGun;\r\nextern const void * RTTI_hknpRagdoll;\r\nextern const void * RTTI_hknpRagdollData;\r\nextern const void * RTTI_hknpRefDragProperties;\r\nextern const void * RTTI_hknpRefMassDistribution;\r\nextern const void * RTTI_hknpRefMaterial;\r\nextern const void * RTTI_hknpRefWorldCinfo;\r\nextern const void * RTTI_hknpReorientAction;\r\nextern const void * RTTI_hknpRestitutionModifier;\r\nextern const void * RTTI_hknpSafeEaseConstraintsAction;\r\nextern const void * RTTI_hknpScaledConvexShape;\r\nextern const void * RTTI_hknpScaledConvexShapeBase;\r\nextern const void * RTTI_hknpSetShapeKeyACdDetector;\r\nextern const void * RTTI_hknpShape;\r\nextern const void * RTTI_hknpShapeBuffer;\r\nextern const void * RTTI_hknpShapeFunctionsSingleton;\r\nextern const void * RTTI_hknpShapeKeyArrayCacheCdDetector;\r\nextern const void * RTTI_hknpShapeKeyMask;\r\nextern const void * RTTI_hknpShapeManager;\r\nextern const void * RTTI_hknpShapeMassProperties;\r\nextern const void * RTTI_hknpShapeScalingUtil;\r\nextern const void * RTTI_hknpShape__MassConfig;\r\nextern const void * RTTI_hknpSignedDistanceFieldCollisionDetector;\r\nextern const void * RTTI_hknpSimdTreeBroadPhase;\r\nextern const void * RTTI_hknpSimdTreeBroadPhaseTasks__CollideTrees;\r\nextern const void * RTTI_hknpSimdTreeBroadPhaseTasks__CopyAabbsAndMarkActiveBodiesDirty;\r\nextern const void * RTTI_hknpSimdTreeBroadPhaseTasks__Finalize;\r\nextern const void * RTTI_hknpSimdTreeBroadPhaseTasks__PrepareTreeBuildData;\r\nextern const void * RTTI_hknpSimulation;\r\nextern const void * RTTI_hknpSingleCellSpaceSplitter;\r\nextern const void * RTTI_hknpSingleThreadedSimulation;\r\nextern const void * RTTI_hknpSingleThreadedSolverData;\r\nextern const void * RTTI_hknpSoftContactModifier;\r\nextern const void * RTTI_hknpSolveFinalizeTask;\r\nextern const void * RTTI_hknpSolverData;\r\nextern const void * RTTI_hknpSolverFactoryTask;\r\nextern const void * RTTI_hknpSolverSchedulerTask;\r\nextern const void * RTTI_hknpSortFinalizeNarrowPhasePairsTask;\r\nextern const void * RTTI_hknpSpaceSplitter;\r\nextern const void * RTTI_hknpSphereShape;\r\nextern const void * RTTI_hknpSpringAction;\r\nextern const void * RTTI_hknpStreamContactSolver;\r\nextern const void * RTTI_hknpSurfaceVelocityModifier;\r\nextern const void * RTTI_hknpTaskGraph;\r\nextern const void * RTTI_hknpTriangleShape;\r\nextern const void * RTTI_hknpTriangleWeldingModifier;\r\nextern const void * RTTI_hknpTriggerModifier;\r\nextern const void * RTTI_hknpTyremarksInfo;\r\nextern const void * RTTI_hknpTyremarksWheel;\r\nextern const void * RTTI_hknpUnaryAction;\r\nextern const void * RTTI_hknpUniqueBodyIdHitCollector;\r\nextern const void * RTTI_hknpVariableTimeStepUtil;\r\nextern const void * RTTI_hknpVehicleData;\r\nextern const void * RTTI_hknpVehicleDefaultAerodynamics;\r\nextern const void * RTTI_hknpVehicleDefaultAnalogDriverInput;\r\nextern const void * RTTI_hknpVehicleDefaultBrake;\r\nextern const void * RTTI_hknpVehicleDefaultEngine;\r\nextern const void * RTTI_hknpVehicleDefaultSteering;\r\nextern const void * RTTI_hknpVehicleDefaultSuspension;\r\nextern const void * RTTI_hknpVehicleDefaultTransmission;\r\nextern const void * RTTI_hknpVehicleDefaultVelocityDamper;\r\nextern const void * RTTI_hknpVehicleDriverInputAnalogStatus;\r\nextern const void * RTTI_hknpVehicleInstance;\r\nextern const void * RTTI_hknpVehicleLinearCastWheelCollide;\r\nextern const void * RTTI_hknpVehicleRayCastWheelCollide;\r\nextern const void * RTTI_hknpVehicleSuspension;\r\nextern const void * RTTI_hknpVehicleWheelCollide;\r\nextern const void * RTTI_hknpVehicleWheelCollide__WheelHitCollector;\r\nextern const void * RTTI_hknpWeldingModifier;\r\nextern const void * RTTI_hknpWorld;\r\nextern const void * RTTI_hknpWorldSnapshot;\r\nextern const void * RTTI_hkp6DofConstraintData;\r\nextern const void * RTTI_hkpAngularFrictionConstraintData;\r\nextern const void * RTTI_hkpBallAndSocketConstraintData;\r\nextern const void * RTTI_hkpCallbackConstraintMotor;\r\nextern const void * RTTI_hkpCogWheelConstraintData;\r\nextern const void * RTTI_hkpConstraintData;\r\nextern const void * RTTI_hkpConstraintMotor;\r\nextern const void * RTTI_hkpDeformableFixedConstraintData;\r\nextern const void * RTTI_hkpFixedConstraintData;\r\nextern const void * RTTI_hkpHingeConstraintData;\r\nextern const void * RTTI_hkpHingeLimitsData;\r\nextern const void * RTTI_hkpLimitedForceConstraintMotor;\r\nextern const void * RTTI_hkpLimitedHingeConstraintData;\r\nextern const void * RTTI_hkpLinearClearanceConstraintData;\r\nextern const void * RTTI_hkpLinearParametricCurve;\r\nextern const void * RTTI_hkpPointToPathConstraintData;\r\nextern const void * RTTI_hkpPointToPlaneConstraintData;\r\nextern const void * RTTI_hkpPositionConstraintMotor;\r\nextern const void * RTTI_hkpPrismaticConstraintData;\r\nextern const void * RTTI_hkpPulleyConstraintData;\r\nextern const void * RTTI_hkpRackAndPinionConstraintData;\r\nextern const void * RTTI_hkpRagdollConstraintData;\r\nextern const void * RTTI_hkpRagdollLimitsData;\r\nextern const void * RTTI_hkpRotationalConstraintData;\r\nextern const void * RTTI_hkpSpringDamperConstraintMotor;\r\nextern const void * RTTI_hkpStiffSpringConstraintData;\r\nextern const void * RTTI_hkpVehicleFrictionDescription;\r\nextern const void * RTTI_hkpVelocityConstraintMotor;\r\nextern const void * RTTI_hkpWheelConstraintData;\r\nextern const void * RTTI_hkpWheelFrictionConstraintData;\r\nextern const void * RTTI_hkpWrappedConstraintData;\r\nextern const void * RTTI_idLogging__ILogger;\r\nextern const void * RTTI_idTCP;\r\nextern const void * RTTI_nlohmann__detail__exception;\r\nextern const void * RTTI_nlohmann__detail__input_buffer_adapter;\r\nextern const void * RTTI_nlohmann__detail__input_stream_adapter;\r\nextern const void * RTTI_nlohmann__detail__out_of_range;\r\nextern const void * RTTI_nlohmann__detail__parse_error;\r\nextern const void * RTTI_nsContainerMenu__ConfirmTakeAllTheThingsCallback;\r\nextern const void * RTTI_nsControlMappingData__RemapHandler;\r\nextern const void * RTTI_nsDataMenuData__GameLoadListener;\r\nextern const void * RTTI_nsDialogueMenu__MenuEventCatcher;\r\nextern const void * RTTI_nsMainMenu__DisplayCreditsCTACallback;\r\nextern const void * RTTI_nsMainMenu__InvalidUserCallback;\r\nextern const void * RTTI_nsMonocle__MenuEventCatcher;\r\nextern const void * RTTI_nsMonocle__MonocleFastTravelConfirmFunc;\r\nextern const void * RTTI_nsPauseMenu__UserDisengagedCallback;\r\nextern const void * RTTI_nsPickpocketMenu__MenuEventCatcher;\r\nextern const void * RTTI_nsWorkshop_BlueprintMenu__WarnAboutInvalidNameCallback;\r\nextern const void * RTTI_rcContext;\r\nextern const void * RTTI_returnToMainMenuCallback;\r\nextern const void * RTTI_std___Node_assert;\r\nextern const void * RTTI_std___Node_back;\r\nextern const void * RTTI_std___Node_base;\r\nextern const void * RTTI_std___Node_capture;\r\nextern const void * RTTI_std___Node_end_group;\r\nextern const void * RTTI_std___Node_end_rep;\r\nextern const void * RTTI_std___Node_endif;\r\nextern const void * RTTI_std___Node_if;\r\nextern const void * RTTI_std___Node_rep;\r\nextern const void * RTTI_std___Root_node;\r\nextern const void * RTTI_std__bad_alloc;\r\nextern const void * RTTI_std__bad_array_new_length;\r\nextern const void * RTTI_std__bad_cast;\r\nextern const void * RTTI_std__bad_optional_access;\r\nextern const void * RTTI_std__bad_variant_access;\r\nextern const void * RTTI_std__exception;\r\nextern const void * RTTI_std__invalid_argument;\r\nextern const void * RTTI_std__logic_error;\r\nextern const void * RTTI_std__out_of_range;\r\nextern const void * RTTI_std__overflow_error;\r\nextern const void * RTTI_std__range_error;\r\nextern const void * RTTI_std__runtime_error;\r\nextern const void * RTTI_std__underflow_error;\r\nextern const void * RTTI_type_info;\r\nextern const void * RTTI_winrt__impl__error_info_fallback;\r\n"
  },
  {
    "path": "sfse/GameRTTI.inl",
    "content": "const void * RTTI_AK__StreamMgr__IAkFileLocationResolver = (void *)0x05AA5168;\r\nconst void * RTTI_AK__StreamMgr__IAkLowLevelIOHook = (void *)0x05AA50B8;\r\nconst void * RTTI_AabbHitCollector = (void *)0x0598E8A0;\r\nconst void * RTTI_AbsorbEffect = (void *)0x05B7E948;\r\nconst void * RTTI_AccumulatingValueModifierEffect = (void *)0x05B7E998;\r\nconst void * RTTI_ActionActivateDoneHandler = (void *)0x05BCF350;\r\nconst void * RTTI_ActionInput = (void *)0x059C2B40;\r\nconst void * RTTI_ActionOutput = (void *)0x059C2B18;\r\nconst void * RTTI_ActiveEffect = (void *)0x05B7E970;\r\nconst void * RTTI_ActiveEffectReferenceEffectController = (void *)0x05B7E9D0;\r\nconst void * RTTI_ActiveModItemDataModel = (void *)0x05AFF180;\r\nconst void * RTTI_ActiveModItemDataModel__ActiveModItemEventShuttle = (void *)0x05AFF270;\r\nconst void * RTTI_Actor = (void *)0x05992138;\r\nconst void * RTTI_ActorEquipManager = (void *)0x05B9EB18;\r\nconst void * RTTI_ActorKnowledge = (void *)0x05BB8A88;\r\nconst void * RTTI_ActorMagicCaster = (void *)0x05B7EB98;\r\nconst void * RTTI_ActorMover = (void *)0x05BB6968;\r\nconst void * RTTI_ActorPackageData = (void *)0x05BAFB50;\r\nconst void * RTTI_ActorSceneNextPhaseHandler = (void *)0x05BCA318;\r\nconst void * RTTI_ActorUtils__ArmorRatingVisitor = (void *)0x05BAE9B0;\r\nconst void * RTTI_ActorUtils__ArmorRatingVisitorBase = (void *)0x05B819B0;\r\nconst void * RTTI_ActorValueBindingUpdaterService = (void *)0x059D2F10;\r\nconst void * RTTI_ActorValueInfo = (void *)0x05A88040;\r\nconst void * RTTI_ActorValueOwner = (void *)0x05A68848;\r\nconst void * RTTI_ActorValueSnapshot = (void *)0x059921C8;\r\nconst void * RTTI_Actor__ForEachSpellVisitor = (void *)0x05B82C40;\r\nconst void * RTTI_AddRagdollHandler = (void *)0x05BCF1C0;\r\nconst void * RTTI_AddToInventoryOnDestroyUtils__AddToInventoryOnDestroyEventHandler = (void *)0x059DEE90;\r\nconst void * RTTI_AimAssistData = (void *)0x05A415E0;\r\nconst void * RTTI_AimAssist__Circle = (void *)0x05AA9B30;\r\nconst void * RTTI_AimAssist__Ellipse = (void *)0x05AA9AA8;\r\nconst void * RTTI_AimAssist__Pill = (void *)0x05AAFAD8;\r\nconst void * RTTI_AimDownSightData = (void *)0x05A41C70;\r\nconst void * RTTI_AimModelData = (void *)0x05A41CC8;\r\nconst void * RTTI_AimOpticalSightData = (void *)0x05A41EA0;\r\nconst void * RTTI_AimOpticalSightStates__Active = (void *)0x05995FA8;\r\nconst void * RTTI_AimOpticalSightStates__BetweenShots = (void *)0x05996090;\r\nconst void * RTTI_AimOpticalSightStates__Deinitialization = (void *)0x05995F68;\r\nconst void * RTTI_AimOpticalSightStates__Inactive = (void *)0x05996058;\r\nconst void * RTTI_AimOpticalSightStates__Initialization = (void *)0x05995FE0;\r\nconst void * RTTI_AimOpticalSightStates__Ready = (void *)0x05996020;\r\nconst void * RTTI_AlarmPackage = (void *)0x05998258;\r\nconst void * RTTI_AlchemyItem = (void *)0x059F5A68;\r\nconst void * RTTI_AliasLegendaryRankCalculator = (void *)0x05A81B98;\r\nconst void * RTTI_AllowRotationHandler = (void *)0x05BCF768;\r\nconst void * RTTI_AllowRotationHandlerReference = (void *)0x05BCA3C0;\r\nconst void * RTTI_Almanac_BodySelected = (void *)0x05ADA6F8;\r\nconst void * RTTI_Almanac_Inorganics_ChangeSelection = (void *)0x05ADBCD8;\r\nconst void * RTTI_Almanac_Inorganics_ToggleTracking = (void *)0x05ADBC18;\r\nconst void * RTTI_Almanac_Locations_ChangeSelection = (void *)0x05ADD620;\r\nconst void * RTTI_Almanac_Locations_FavoriteSelection = (void *)0x05ADD588;\r\nconst void * RTTI_Almanac_Locations_OutpostSelected = (void *)0x05ADD740;\r\nconst void * RTTI_Almanac_Organics_ChangeSelection = (void *)0x05ADEE10;\r\nconst void * RTTI_Almanac_Organics_ToggleTracking = (void *)0x05ADED80;\r\nconst void * RTTI_Almanac_PageChanged = (void *)0x05ADA580;\r\nconst void * RTTI_Almanac_Recipes_ChangeCategory = (void *)0x05AE01D0;\r\nconst void * RTTI_Almanac_Recipes_ChangeSelection = (void *)0x05AE00B0;\r\nconst void * RTTI_Almanac_Recipes_ToggleTracking = (void *)0x05AE0140;\r\nconst void * RTTI_Almanac_ShowResourceBodyList = (void *)0x05ADA778;\r\nconst void * RTTI_Almanac_Workshop_ChangeSelection = (void *)0x05AE11D8;\r\nconst void * RTTI_Almanac_Workshop_ToggleTracking = (void *)0x05AE1320;\r\nconst void * RTTI_Almanac__AlmanacMenu = (void *)0x05ADA5F8;\r\nconst void * RTTI_Almanac__AlmanacMenu__AlmanacMenuEventShuttle = (void *)0x05ADAA30;\r\nconst void * RTTI_Almanac__AlmanacState_Inorganics = (void *)0x05ADBCA0;\r\nconst void * RTTI_Almanac__AlmanacState_Inorganics__AlmanacInorganicsEventShuttle = (void *)0x05ADBD20;\r\nconst void * RTTI_Almanac__AlmanacState_Locations = (void *)0x05ADD6B8;\r\nconst void * RTTI_Almanac__AlmanacState_Locations__AlmanacLocationsEventShuttle = (void *)0x05ADD970;\r\nconst void * RTTI_Almanac__AlmanacState_Null = (void *)0x05ADAA78;\r\nconst void * RTTI_Almanac__AlmanacState_Organics = (void *)0x05ADEF40;\r\nconst void * RTTI_Almanac__AlmanacState_Organics__AlmanacOrganicsEventShuttle = (void *)0x05ADEC90;\r\nconst void * RTTI_Almanac__AlmanacState_Recipes = (void *)0x05AE02F8;\r\nconst void * RTTI_Almanac__AlmanacState_Recipes__AlmanacRecipesEventShuttle = (void *)0x05AE0330;\r\nconst void * RTTI_Almanac__AlmanacState_Workshop = (void *)0x05AE1298;\r\nconst void * RTTI_Almanac__AlmanacState_Workshop__AlmanacWorkshopEventShuttle = (void *)0x05AE15A0;\r\nconst void * RTTI_AmmoData = (void *)0x05B265E8;\r\nconst void * RTTI_AnimGraph = (void *)0x05C8B448;\r\nconst void * RTTI_AnimGraphNode = (void *)0x05C8B4B0;\r\nconst void * RTTI_AnimatedCameraDeltaStartHandler = (void *)0x05BCEC68;\r\nconst void * RTTI_AnimatedCameraEndHandler = (void *)0x05BCEBD0;\r\nconst void * RTTI_AnimatedCameraStartHandler = (void *)0x05BCEC30;\r\nconst void * RTTI_AnimationClipDataSingleton = (void *)0x05C9A4A8;\r\nconst void * RTTI_AnimationCompleteHandler = (void *)0x05BCF380;\r\nconst void * RTTI_AnimationCorrectedNode = (void *)0x05C997A8;\r\nconst void * RTTI_AnimationCorrectedNodeInstance = (void *)0x05C997D8;\r\nconst void * RTTI_AnimationDrivenHandler = (void *)0x05BCF738;\r\nconst void * RTTI_AnimationDrivenHandlerReference = (void *)0x05BCA470;\r\nconst void * RTTI_AnimationFileManagerSingleton = (void *)0x05C9A888;\r\nconst void * RTTI_AnimationGraph = (void *)0x05BCF958;\r\nconst void * RTTI_AnimationGraphInstance = (void *)0x05C8C4F0;\r\nconst void * RTTI_AnimationImpactSelector = (void *)0x05C99368;\r\nconst void * RTTI_AnimationImpactSelectorInstance = (void *)0x05C99398;\r\nconst void * RTTI_AnimationManager = (void *)0x05C8B488;\r\nconst void * RTTI_AnimationNode = (void *)0x05C99B28;\r\nconst void * RTTI_AnimationNodeInstance = (void *)0x05C99B50;\r\nconst void * RTTI_AnimationObjectDrawHandler = (void *)0x05BCEE10;\r\nconst void * RTTI_AnimationObjectHideHandler = (void *)0x05BCED68;\r\nconst void * RTTI_AnimationObjectLoadHandler = (void *)0x05BCEE48;\r\nconst void * RTTI_AnimationObjectUnequipAllHandler = (void *)0x05BCEDD8;\r\nconst void * RTTI_AnimationObjectUnequipHandler = (void *)0x05BCEE80;\r\nconst void * RTTI_AnimationRagdoll = (void *)0x05C99668;\r\nconst void * RTTI_AnimationRagdollDrive = (void *)0x05C99600;\r\nconst void * RTTI_AnimationRagdollDriveInstance = (void *)0x05C99630;\r\nconst void * RTTI_AnimationRagdollInstance = (void *)0x05C99690;\r\nconst void * RTTI_AnimationStanceDataHelperSingleton = (void *)0x05C9B4E8;\r\nconst void * RTTI_AnimationStanceDataSingletonDBData = (void *)0x05C9B2D0;\r\nconst void * RTTI_AnimationStreamLoadGame = (void *)0x05A710C0;\r\nconst void * RTTI_AnimationStreamSaveGame = (void *)0x05A71090;\r\nconst void * RTTI_AnimationSystemUtils__QueuedAnimationHandles = (void *)0x05AA2D30;\r\nconst void * RTTI_AnimationSystemUtils__QueuedModelHandles = (void *)0x05AA2CE8;\r\nconst void * RTTI_AnimationSystemUtils__QueuedReferenceAnimationTask = (void *)0x05AA2D80;\r\nconst void * RTTI_AnimationSystemUtils__TESModelAndAnimationHandles = (void *)0x059C7100;\r\nconst void * RTTI_AntiGravityEffect = (void *)0x05B7EDD0;\r\nconst void * RTTI_AnticipateAttackHandler = (void *)0x05BCE540;\r\nconst void * RTTI_ArchiveFile = (void *)0x05D0BED8;\r\nconst void * RTTI_ArmorCraftingMenu = (void *)0x05B2C050;\r\nconst void * RTTI_ArrowAttachHandler = (void *)0x05BCE690;\r\nconst void * RTTI_ArrowDetachHandler = (void *)0x05BCE5F8;\r\nconst void * RTTI_ArrowProjectile = (void *)0x05BD1510;\r\nconst void * RTTI_AssignVariable = (void *)0x05C99540;\r\nconst void * RTTI_AssignVariableInstance = (void *)0x05C99568;\r\nconst void * RTTI_AssigniState = (void *)0x05C994E8;\r\nconst void * RTTI_AssigniStateInstance = (void *)0x05C99510;\r\nconst void * RTTI_AttachDistant3DTask = (void *)0x059FA510;\r\nconst void * RTTI_AttachReferenceHandler = (void *)0x05BCB2F8;\r\nconst void * RTTI_AttackStopHandler = (void *)0x05BCEAF8;\r\nconst void * RTTI_AttractionObjectLOSManager = (void *)0x05AA8DB8;\r\nconst void * RTTI_AttractionObjectLOSUtils__CacheEntry = (void *)0x05AA8D78;\r\nconst void * RTTI_AutoVanityState = (void *)0x05C483F0;\r\nconst void * RTTI_AwakeSoundFadeHandler = (void *)0x05BCB2C8;\r\nconst void * RTTI_AwakeSoundPauseHandler = (void *)0x05BCB270;\r\nconst void * RTTI_AwakeSoundResumeHandler = (void *)0x05BCB1D8;\r\nconst void * RTTI_AwakeSoundStopHandler = (void *)0x05BCB240;\r\nconst void * RTTI_BGSAIOperationsMeter = (void *)0x05A88380;\r\nconst void * RTTI_BGSAIWorldLocationEditorSpacePointRadius = (void *)0x059C0020;\r\nconst void * RTTI_BGSAIWorldLocationInteriorCell = (void *)0x059BFC48;\r\nconst void * RTTI_BGSAIWorldLocationPointRadius = (void *)0x059BFCE0;\r\nconst void * RTTI_BGSAIWorldLocationPrimitive = (void *)0x059BFEB8;\r\nconst void * RTTI_BGSAIWorldLocationRefRadius = (void *)0x059BFF88;\r\nconst void * RTTI_BGSAVMData = (void *)0x059D5F08;\r\nconst void * RTTI_BGSAbilityPerkEntry = (void *)0x05A819F8;\r\nconst void * RTTI_BGSAcousticSpace = (void *)0x05992C68;\r\nconst void * RTTI_BGSAction = (void *)0x05A80BB0;\r\nconst void * RTTI_BGSActionData = (void *)0x059C2B68;\r\nconst void * RTTI_BGSActivity = (void *)0x059BD900;\r\nconst void * RTTI_BGSActivityTrackerFormComponent = (void *)0x059DEDC0;\r\nconst void * RTTI_BGSActorValueActivity = (void *)0x059BD980;\r\nconst void * RTTI_BGSActorValueActivity_Runtime = (void *)0x059BD8C8;\r\nconst void * RTTI_BGSAdaptiveTriggerDataComponent = (void *)0x059CB3E8;\r\nconst void * RTTI_BGSAddToInventoryOnDestroy = (void *)0x059DF148;\r\nconst void * RTTI_BGSAddonNode = (void *)0x05A60DA0;\r\nconst void * RTTI_BGSAddonNodeSoundHandleExtra = (void *)0x05A60D68;\r\nconst void * RTTI_BGSAffinityEvent = (void *)0x05A5C748;\r\nconst void * RTTI_BGSAimAssistModel = (void *)0x05A41578;\r\nconst void * RTTI_BGSAimAssistPoseData = (void *)0x05A5F658;\r\nconst void * RTTI_BGSAimDownSightModel = (void *)0x05A41C98;\r\nconst void * RTTI_BGSAimModel = (void *)0x05A41CF0;\r\nconst void * RTTI_BGSAimOpticalSightModel = (void *)0x05A41ED0;\r\nconst void * RTTI_BGSAmbienceSet = (void *)0x05A41FA8;\r\nconst void * RTTI_BGSAnimationGraphComponent = (void *)0x059C4318;\r\nconst void * RTTI_BGSAnimationPathImplementation = (void *)0x05BAE948;\r\nconst void * RTTI_BGSAnimationSubGraphDataSingleton = (void *)0x059C41A0;\r\nconst void * RTTI_BGSApplyMagicEffectActivity = (void *)0x059BDE20;\r\nconst void * RTTI_BGSApplyMagicEffectActivity_Runtime = (void *)0x059BDDE0;\r\nconst void * RTTI_BGSArtObject = (void *)0x05A60EA0;\r\nconst void * RTTI_BGSArtObjectCloneTask = (void *)0x05A60E70;\r\nconst void * RTTI_BGSAssociationType = (void *)0x05A80C78;\r\nconst void * RTTI_BGSAtmosphere = (void *)0x05A5F630;\r\nconst void * RTTI_BGSAttachParentArray = (void *)0x059DF630;\r\nconst void * RTTI_BGSAttachTechniquesUtil__AttachTechniquesFunctor = (void *)0x05A09930;\r\nconst void * RTTI_BGSAttachTechniquesUtil__DetachTechniquesFunctor = (void *)0x05A098E0;\r\nconst void * RTTI_BGSAttachTechniquesUtil__ProcessTechniquesFunctor = (void *)0x05A09890;\r\nconst void * RTTI_BGSAttackData = (void *)0x05A883D8;\r\nconst void * RTTI_BGSAttackDataForm = (void *)0x05A01C90;\r\nconst void * RTTI_BGSAttackDataMap = (void *)0x05A883B0;\r\nconst void * RTTI_BGSAttractionRule = (void *)0x05A5C7B8;\r\nconst void * RTTI_BGSAudioOcclusionPrimitive = (void *)0x059D4210;\r\nconst void * RTTI_BGSAudio_Internal__LooseAudioRegistrar = (void *)0x05AA3CA0;\r\nconst void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr = (void *)0x05AA4CC0;\r\nconst void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr__DelayedEventInfo = (void *)0x05AA4C20;\r\nconst void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr__PlayingEventInfo = (void *)0x05AA4C70;\r\nconst void * RTTI_BGSAudio_Internal__WwiseEventPreloadMgr = (void *)0x05AA49F8;\r\nconst void * RTTI_BGSAudio_Internal__WwiseGameObjectMgr = (void *)0x05AA4F80;\r\nconst void * RTTI_BGSAudio_Internal__WwiseIODevice = (void *)0x05AA4418;\r\nconst void * RTTI_BGSAudio_Internal__WwiseIOMgr = (void *)0x05AA43E0;\r\nconst void * RTTI_BGSAudio_Internal__WwiseMetadataMgr = (void *)0x05AA4450;\r\nconst void * RTTI_BGSAudio__IEmitterResolver = (void *)0x05AA5228;\r\nconst void * RTTI_BGSAudio__RefNodeResolver = (void *)0x05AA51F8;\r\nconst void * RTTI_BGSAudio__WwiseService = (void *)0x05AA4758;\r\nconst void * RTTI_BGSAutoWater = (void *)0x05AA0F58;\r\nconst void * RTTI_BGSBarterActivity = (void *)0x059BF288;\r\nconst void * RTTI_BGSBarterActivity_Runtime = (void *)0x059BF208;\r\nconst void * RTTI_BGSBaseAlias = (void *)0x05A5C8E0;\r\nconst void * RTTI_BGSBaseLODBlock = (void *)0x059D6A98;\r\nconst void * RTTI_BGSBaseLODBlock__AutoDetachBlock = (void *)0x059D6B00;\r\nconst void * RTTI_BGSBaseLODBlock__GeometryAutoDetachBlock = (void *)0x059D6AC0;\r\nconst void * RTTI_BGSBaseLODRuntimeComponent = (void *)0x059D6E90;\r\nconst void * RTTI_BGSBendableSpline = (void *)0x05A60F78;\r\nconst void * RTTI_BGSBiome = (void *)0x05992D80;\r\nconst void * RTTI_BGSBiomeMarkerObject = (void *)0x05A42D10;\r\nconst void * RTTI_BGSBiome__MarkerKeywordData = (void *)0x05A5F9F0;\r\nconst void * RTTI_BGSBleedoutActivity = (void *)0x059BDF60;\r\nconst void * RTTI_BGSBleedoutActivity_Runtime = (void *)0x059BDF28;\r\nconst void * RTTI_BGSBlockBashData = (void *)0x05A01CB8;\r\nconst void * RTTI_BGSBodyManager = (void *)0x059C7BE8;\r\nconst void * RTTI_BGSBodyPartData = (void *)0x05995610;\r\nconst void * RTTI_BGSBodyPartInfo = (void *)0x05992850;\r\nconst void * RTTI_BGSBodyUtils__SkinColorUpdateNode = (void *)0x059C7BB0;\r\nconst void * RTTI_BGSBoneModifier = (void *)0x05A431F8;\r\nconst void * RTTI_BGSBuildWorkshopActivity = (void *)0x059BE0A0;\r\nconst void * RTTI_BGSBuildWorkshopActivity_Runtime = (void *)0x059BE068;\r\nconst void * RTTI_BGSCameraPath = (void *)0x05A7BFE8;\r\nconst void * RTTI_BGSCameraShot = (void *)0x05A7C100;\r\nconst void * RTTI_BGSChallengeForm = (void *)0x059D5DC0;\r\nconst void * RTTI_BGSCharacterMorph__FacialBoneSculptSlider = (void *)0x05A5C838;\r\nconst void * RTTI_BGSCharacterMorph__FacialBoneSlider = (void *)0x05A5C878;\r\nconst void * RTTI_BGSCityMapsUsageComponent = (void *)0x059CB890;\r\nconst void * RTTI_BGSCloudForm = (void *)0x05A4FCC0;\r\nconst void * RTTI_BGSCollisionLayer = (void *)0x05A7C298;\r\nconst void * RTTI_BGSColorForm = (void *)0x05A7C358;\r\nconst void * RTTI_BGSCompleteResearchActivity = (void *)0x059BE160;\r\nconst void * RTTI_BGSCompleteResearchActivity_Runtime = (void *)0x059BE120;\r\nconst void * RTTI_BGSConditionForm = (void *)0x059921F8;\r\nconst void * RTTI_BGSConstructibleObject = (void *)0x05A61050;\r\nconst void * RTTI_BGSConsumeActivity = (void *)0x059BE270;\r\nconst void * RTTI_BGSConsumeActivity_Runtime = (void *)0x059BE238;\r\nconst void * RTTI_BGSContactShadowComponent = (void *)0x059CBB68;\r\nconst void * RTTI_BGSConveyorBelt__ConveyorBelt = (void *)0x059EAA30;\r\nconst void * RTTI_BGSCraftActivity = (void *)0x059BE390;\r\nconst void * RTTI_BGSCraftActivity_Runtime = (void *)0x059BE360;\r\nconst void * RTTI_BGSCraftableForm = (void *)0x05A42D40;\r\nconst void * RTTI_BGSCraftingResourceOwner = (void *)0x05992878;\r\nconst void * RTTI_BGSCreatedObjectManager = (void *)0x05B8CB20;\r\nconst void * RTTI_BGSCrippleLimbActivity = (void *)0x059BE480;\r\nconst void * RTTI_BGSCrippleLimbActivity_Runtime = (void *)0x059BE448;\r\nconst void * RTTI_BGSCrowdComponent = (void *)0x059DFEA0;\r\nconst void * RTTI_BGSCurve3DForm = (void *)0x05A416B8;\r\nconst void * RTTI_BGSCurveForm = (void *)0x05A417D8;\r\nconst void * RTTI_BGSCustomShipForm = (void *)0x059CBB98;\r\nconst void * RTTI_BGSDamageType = (void *)0x05A5FBB0;\r\nconst void * RTTI_BGSDebris = (void *)0x05A61138;\r\nconst void * RTTI_BGSDecalManager = (void *)0x05A0A550;\r\nconst void * RTTI_BGSDecalNode = (void *)0x05A0A678;\r\nconst void * RTTI_BGSDefaultObject = (void *)0x05A5FBD8;\r\nconst void * RTTI_BGSDefaultObjectManager = (void *)0x05A7C428;\r\nconst void * RTTI_BGSDestroyShipActivity = (void *)0x059BE538;\r\nconst void * RTTI_BGSDestroyShipActivity_Runtime = (void *)0x059BE4B0;\r\nconst void * RTTI_BGSDestructibleObjectForm = (void *)0x059F5A90;\r\nconst void * RTTI_BGSDialogueBranch = (void *)0x05992BF8;\r\nconst void * RTTI_BGSDisplayCaseFormComponent = (void *)0x059E0138;\r\nconst void * RTTI_BGSDistantObjectBlock = (void *)0x05995CB8;\r\nconst void * RTTI_BGSDockingActivity = (void *)0x059BE628;\r\nconst void * RTTI_BGSDockingActivity_Runtime = (void *)0x059BE5A8;\r\nconst void * RTTI_BGSDualCastData = (void *)0x059F5B68;\r\nconst void * RTTI_BGSDynamicLODBlock = (void *)0x059D7478;\r\nconst void * RTTI_BGSDynamicLODBlock__InstancedAutoDetachBlock = (void *)0x059D74B0;\r\nconst void * RTTI_BGSEchoListener = (void *)0x05A606C8;\r\nconst void * RTTI_BGSEffectSequenceForm = (void *)0x05A42E18;\r\nconst void * RTTI_BGSEffectSequenceFormComponent = (void *)0x059E0650;\r\nconst void * RTTI_BGSEntryPointFunctionData = (void *)0x05A80DA8;\r\nconst void * RTTI_BGSEntryPointFunctionDataAVAndValue = (void *)0x05A80ED8;\r\nconst void * RTTI_BGSEntryPointFunctionDataActivateChoice = (void *)0x05A80FC8;\r\nconst void * RTTI_BGSEntryPointFunctionDataBooleanGraphVariable = (void *)0x05A80E90;\r\nconst void * RTTI_BGSEntryPointFunctionDataLeveledList = (void *)0x05A80F18;\r\nconst void * RTTI_BGSEntryPointFunctionDataOneValue = (void *)0x05A80F58;\r\nconst void * RTTI_BGSEntryPointFunctionDataProjectile = (void *)0x05A80E10;\r\nconst void * RTTI_BGSEntryPointFunctionDataSpellItem = (void *)0x05A80E50;\r\nconst void * RTTI_BGSEntryPointFunctionDataText = (void *)0x05A80DD8;\r\nconst void * RTTI_BGSEntryPointFunctionDataTwoValue = (void *)0x05A80F90;\r\nconst void * RTTI_BGSEntryPointPerkEntry = (void *)0x05A81A50;\r\nconst void * RTTI_BGSEquipSlot = (void *)0x05A81170;\r\nconst void * RTTI_BGSExplosion = (void *)0x05A61200;\r\nconst void * RTTI_BGSExternalComponentDataSource = (void *)0x059E0B40;\r\nconst void * RTTI_BGSFaceFX = (void *)0x059DA390;\r\nconst void * RTTI_BGSFacialExpressionData = (void *)0x059D3F00;\r\nconst void * RTTI_BGSFadeManager = (void *)0x059C8508;\r\nconst void * RTTI_BGSFogVolumeForm = (void *)0x05A4FD88;\r\nconst void * RTTI_BGSFootIkImplementation = (void *)0x05BAE980;\r\nconst void * RTTI_BGSFootstep = (void *)0x05A7C540;\r\nconst void * RTTI_BGSFootstepManager = (void *)0x05BB0CE8;\r\nconst void * RTTI_BGSFootstepSet = (void *)0x05A7C608;\r\nconst void * RTTI_BGSForceData = (void *)0x05A42018;\r\nconst void * RTTI_BGSForcedLocRefType = (void *)0x059E0BA8;\r\nconst void * RTTI_BGSFormFolderKeywordList = (void *)0x059D62C0;\r\nconst void * RTTI_BGSFormLinkData = (void *)0x059E1030;\r\nconst void * RTTI_BGSGameRenderSettingsManager = (void *)0x05B9CFA8;\r\nconst void * RTTI_BGSGameWarningsHandler__GameWarningsSink = (void *)0x05B819E8;\r\nconst void * RTTI_BGSGameplayOption = (void *)0x059D3F58;\r\nconst void * RTTI_BGSGameplayOptionGroup = (void *)0x059D4028;\r\nconst void * RTTI_BGSGenericBaseForm = (void *)0x05A61228;\r\nconst void * RTTI_BGSGenericBaseFormTemplate = (void *)0x05A61390;\r\nconst void * RTTI_BGSGeometryConstructorManager = (void *)0x05B9E230;\r\nconst void * RTTI_BGSGrassManager = (void *)0x05A0B728;\r\nconst void * RTTI_BGSGrassManager__AddCellGrassTask = (void *)0x05A0B8A0;\r\nconst void * RTTI_BGSGrassManager__CellGrass = (void *)0x05A0B810;\r\nconst void * RTTI_BGSGravJumpActivity = (void *)0x059BE6F0;\r\nconst void * RTTI_BGSGravJumpActivity_Runtime = (void *)0x059BE720;\r\nconst void * RTTI_BGSGravityWielderEffectData = (void *)0x05A7C688;\r\nconst void * RTTI_BGSGroundCover = (void *)0x05A67368;\r\nconst void * RTTI_BGSGroupedInstancedGeometry = (void *)0x059CB0D8;\r\nconst void * RTTI_BGSHarvestActivity = (void *)0x059BE828;\r\nconst void * RTTI_BGSHarvestActivity_Runtime = (void *)0x059BE7A8;\r\nconst void * RTTI_BGSHavokGeometryAttach = (void *)0x05A099B8;\r\nconst void * RTTI_BGSHavokGeometryAttach__ActionPolicy = (void *)0x05A09978;\r\nconst void * RTTI_BGSHavokGeometryAttach__AttachPolicy = (void *)0x05A09708;\r\nconst void * RTTI_BGSHavokGeometryAttach__DetachPolicy = (void *)0x05A096C8;\r\nconst void * RTTI_BGSHazard = (void *)0x05A614C0;\r\nconst void * RTTI_BGSHeadPart = (void *)0x05A811C0;\r\nconst void * RTTI_BGSIdleCollection = (void *)0x05992EA8;\r\nconst void * RTTI_BGSIdleMarker = (void *)0x05A81280;\r\nconst void * RTTI_BGSImpactData = (void *)0x05A7C808;\r\nconst void * RTTI_BGSImpactDataSet = (void *)0x05A7C998;\r\nconst void * RTTI_BGSImpactManager = (void *)0x05B8CE40;\r\nconst void * RTTI_BGSInstanceNamingRules = (void *)0x05994EC8;\r\nconst void * RTTI_BGSInventoryInterface = (void *)0x05B9FEF8;\r\nconst void * RTTI_BGSInventoryList = (void *)0x05A0C138;\r\nconst void * RTTI_BGSKeyword = (void *)0x05992DA0;\r\nconst void * RTTI_BGSKeywordForm = (void *)0x059E92F0;\r\nconst void * RTTI_BGSKillActivity = (void *)0x059BE8C8;\r\nconst void * RTTI_BGSKillActivity_Runtime = (void *)0x059BE858;\r\nconst void * RTTI_BGSLODManager = (void *)0x05A9FE68;\r\nconst void * RTTI_BGSLODSharedGeometryCache = (void *)0x05A9F750;\r\nconst void * RTTI_BGSLODStates__Geometry__Attached = (void *)0x059927B0;\r\nconst void * RTTI_BGSLODStates__Geometry__Attaching = (void *)0x05992598;\r\nconst void * RTTI_BGSLODStates__Geometry__DeferredDetach = (void *)0x05992618;\r\nconst void * RTTI_BGSLODStates__Geometry__DeferredDetachComplete = (void *)0x059925D0;\r\nconst void * RTTI_BGSLODStates__Geometry__Detached = (void *)0x059924E0;\r\nconst void * RTTI_BGSLODStates__Geometry__Invisible = (void *)0x05992778;\r\nconst void * RTTI_BGSLODStates__Geometry__Loaded = (void *)0x05992740;\r\nconst void * RTTI_BGSLODStates__Geometry__Loading = (void *)0x05992690;\r\nconst void * RTTI_BGSLODStates__Geometry__Prepared = (void *)0x059926C8;\r\nconst void * RTTI_BGSLODStates__Geometry__Preparing = (void *)0x059924A8;\r\nconst void * RTTI_BGSLODStates__Geometry__RequestingResources = (void *)0x05992700;\r\nconst void * RTTI_BGSLODStates__Geometry__Reset = (void *)0x05992658;\r\nconst void * RTTI_BGSLODStates__Geometry__ResourcesBusy = (void *)0x05992518;\r\nconst void * RTTI_BGSLODStates__Geometry__ResourcesReady = (void *)0x05992558;\r\nconst void * RTTI_BGSLODStates__Geometry__Unloaded = (void *)0x05992470;\r\nconst void * RTTI_BGSLODStates__Geometry__Visible = (void *)0x059927E8;\r\nconst void * RTTI_BGSLODStates__Node__Active = (void *)0x05995E80;\r\nconst void * RTTI_BGSLODStates__Node__FadingIn = (void *)0x05995E10;\r\nconst void * RTTI_BGSLODStates__Node__FadingOut = (void *)0x05995D98;\r\nconst void * RTTI_BGSLODStates__Node__Inactive = (void *)0x05995CE8;\r\nconst void * RTTI_BGSLODStates__Node__IntersectsLoadedArea = (void *)0x05995D58;\r\nconst void * RTTI_BGSLODStates__Node__Loaded = (void *)0x05995EB0;\r\nconst void * RTTI_BGSLODStates__Node__OutsideLoadedArea = (void *)0x05995F10;\r\nconst void * RTTI_BGSLODStates__Node__PrepareFadingIn = (void *)0x05995E48;\r\nconst void * RTTI_BGSLODStates__Node__PrepareFadingOut = (void *)0x05995DD0;\r\nconst void * RTTI_BGSLODStates__Node__Split = (void *)0x05995EE0;\r\nconst void * RTTI_BGSLODStates__Node__Unloaded = (void *)0x05995D20;\r\nconst void * RTTI_BGSLOSGenerator = (void *)0x05A80808;\r\nconst void * RTTI_BGSLandPlanetActivity = (void *)0x059BE9E8;\r\nconst void * RTTI_BGSLandPlanetActivity_Runtime = (void *)0x059BE968;\r\nconst void * RTTI_BGSLayeredMaterialSwap = (void *)0x05A42AA8;\r\nconst void * RTTI_BGSLegendaryItem = (void *)0x05A42E48;\r\nconst void * RTTI_BGSLensFlare = (void *)0x05A61528;\r\nconst void * RTTI_BGSLensFlareSprite = (void *)0x05A615E0;\r\nconst void * RTTI_BGSLevGenericBaseForm = (void *)0x05A61710;\r\nconst void * RTTI_BGSLevPackIn = (void *)0x05A617D8;\r\nconst void * RTTI_BGSLevSpaceCell = (void *)0x05A674B8;\r\nconst void * RTTI_BGSLightingTemplate = (void *)0x05A67528;\r\nconst void * RTTI_BGSLinkedVoiceType = (void *)0x059E12C0;\r\nconst void * RTTI_BGSListForm = (void *)0x05A7CA18;\r\nconst void * RTTI_BGSLoadFormBuffer = (void *)0x059F82C0;\r\nconst void * RTTI_BGSLoadGameBuffer = (void *)0x059F82E8;\r\nconst void * RTTI_BGSLoadGameBufferSimple = (void *)0x059F8310;\r\nconst void * RTTI_BGSLoadedReferenceCollection = (void *)0x05A675B8;\r\nconst void * RTTI_BGSLoadedSceneLODBlock = (void *)0x05AA0618;\r\nconst void * RTTI_BGSLocAlias = (void *)0x05A814D8;\r\nconst void * RTTI_BGSLocation = (void *)0x05992AF0;\r\nconst void * RTTI_BGSLocationDiscoveredActivity = (void *)0x059BEB50;\r\nconst void * RTTI_BGSLocationDiscoveredActivity_Runtime = (void *)0x059BEAC0;\r\nconst void * RTTI_BGSLocationRefType = (void *)0x05992CD8;\r\nconst void * RTTI_BGSLockPickActivity = (void *)0x059BF470;\r\nconst void * RTTI_BGSLockPickActivity_Runtime = (void *)0x059BF4E8;\r\nconst void * RTTI_BGSLodOwnerComponent = (void *)0x059E16B0;\r\nconst void * RTTI_BGSLodRuntimeOwnerComponent = (void *)0x059D6F20;\r\nconst void * RTTI_BGSLootContainerActivity = (void *)0x059BEBD8;\r\nconst void * RTTI_BGSLootContainerActivity_Runtime = (void *)0x059BEC08;\r\nconst void * RTTI_BGSLoseEnemyActivity = (void *)0x059BED48;\r\nconst void * RTTI_BGSLoseEnemyActivity_Runtime = (void *)0x059BED78;\r\nconst void * RTTI_BGSMaterialPathForm = (void *)0x05A42768;\r\nconst void * RTTI_BGSMaterialPropertyComponent = (void *)0x059E19C8;\r\nconst void * RTTI_BGSMaterialType = (void *)0x05A7CC58;\r\nconst void * RTTI_BGSMeleeAimAssistModel = (void *)0x05A41920;\r\nconst void * RTTI_BGSMessage = (void *)0x05992B18;\r\nconst void * RTTI_BGSMod__Attachment__Mod = (void *)0x05992820;\r\nconst void * RTTI_BGSMod__Property__BridgeI = (void *)0x05A55948;\r\nconst void * RTTI_BGSMod__Template__Item = (void *)0x059E1A00;\r\nconst void * RTTI_BGSMod__Template__Items = (void *)0x05A65590;\r\nconst void * RTTI_BGSModelMaterialSwap = (void *)0x059E1C78;\r\nconst void * RTTI_BGSModelNode = (void *)0x05A0C2C8;\r\nconst void * RTTI_BGSMorphableObject = (void *)0x05A61800;\r\nconst void * RTTI_BGSMotorAction__Action = (void *)0x059EABB0;\r\nconst void * RTTI_BGSMotorAction__FanMotor = (void *)0x059EABE0;\r\nconst void * RTTI_BGSMovableStatic = (void *)0x05A618D8;\r\nconst void * RTTI_BGSMovementType = (void *)0x05A81548;\r\nconst void * RTTI_BGSMoviePlayer = (void *)0x05B8D018;\r\nconst void * RTTI_BGSMultiTechniqueAttach = (void *)0x05A09860;\r\nconst void * RTTI_BGSMultiTechniqueAttach__ActionPolicy = (void *)0x05A09820;\r\nconst void * RTTI_BGSMultiTechniqueAttach__AttachPolicy = (void *)0x05A09688;\r\nconst void * RTTI_BGSMultiTechniqueAttach__DetachPolicy = (void *)0x05A09648;\r\nconst void * RTTI_BGSMusicPaletteTrack = (void *)0x05A7CD60;\r\nconst void * RTTI_BGSMusicSilenceTrack = (void *)0x05A7CF40;\r\nconst void * RTTI_BGSMusicSingleTrack = (void *)0x05A7D308;\r\nconst void * RTTI_BGSMusicTrack = (void *)0x05A7CD38;\r\nconst void * RTTI_BGSMusicTrackFormWrapper = (void *)0x05A7D338;\r\nconst void * RTTI_BGSMusicType = (void *)0x05992C20;\r\nconst void * RTTI_BGSNamedNodeAttach = (void *)0x05A09780;\r\nconst void * RTTI_BGSNamedNodeAttach__ActionPolicy = (void *)0x05A09748;\r\nconst void * RTTI_BGSNamedNodeAttach__AttachPolicy = (void *)0x05A097E8;\r\nconst void * RTTI_BGSNamedNodeAttach__DetachPolicy = (void *)0x05A097B0;\r\nconst void * RTTI_BGSNavigationGridManager = (void *)0x05A13AB0;\r\nconst void * RTTI_BGSNote = (void *)0x05995230;\r\nconst void * RTTI_BGSObjectInstanceExtra = (void *)0x059DA1C8;\r\nconst void * RTTI_BGSObjectPlacementDefaults = (void *)0x059E2018;\r\nconst void * RTTI_BGSObjectSwap = (void *)0x05A601F8;\r\nconst void * RTTI_BGSObjectVisibilityManager = (void *)0x05A0C350;\r\nconst void * RTTI_BGSObjectWindowFilterComponent = (void *)0x059CC050;\r\nconst void * RTTI_BGSOrbitalDataComponent = (void *)0x059E21D8;\r\nconst void * RTTI_BGSOrbitedDataComponent = (void *)0x059E2618;\r\nconst void * RTTI_BGSOutfit = (void *)0x05A61E90;\r\nconst void * RTTI_BGSOverridePackCollection = (void *)0x05A025A8;\r\nconst void * RTTI_BGSPackIn = (void *)0x05994F30;\r\nconst void * RTTI_BGSPackInUtils__BGSPackInEventHandler = (void *)0x05A63478;\r\nconst void * RTTI_BGSPackageDataBool = (void *)0x05995AD8;\r\nconst void * RTTI_BGSPackageDataFloat = (void *)0x05A89018;\r\nconst void * RTTI_BGSPackageDataInt = (void *)0x05A89118;\r\nconst void * RTTI_BGSPackageDataLocation = (void *)0x05A89178;\r\nconst void * RTTI_BGSPackageDataLocationWrapper = (void *)0x05A89140;\r\nconst void * RTTI_BGSPackageDataObjectList = (void *)0x05995B08;\r\nconst void * RTTI_BGSPackageDataRef = (void *)0x05A89400;\r\nconst void * RTTI_BGSPackageDataRefOLD = (void *)0x05A89048;\r\nconst void * RTTI_BGSPackageDataScene = (void *)0x059920B8;\r\nconst void * RTTI_BGSPackageDataTargetSelector = (void *)0x05A888C8;\r\nconst void * RTTI_BGSPackageDataTopic = (void *)0x05995BC8;\r\nconst void * RTTI_BGSPapyrusScriptsComponent = (void *)0x059E2F00;\r\nconst void * RTTI_BGSParticleObjectCloneTask = (void *)0x05A986B8;\r\nconst void * RTTI_BGSParticleSystemDefineCollection = (void *)0x05A42F18;\r\nconst void * RTTI_BGSPathfindingTaskProcessor = (void *)0x059D14E8;\r\nconst void * RTTI_BGSPathingData = (void *)0x059E33D0;\r\nconst void * RTTI_BGSPerk = (void *)0x05995250;\r\nconst void * RTTI_BGSPerkRank = (void *)0x05A81A80;\r\nconst void * RTTI_BGSPhotoModeFeature = (void *)0x059D5DE8;\r\nconst void * RTTI_BGSPickupPutdownSounds = (void *)0x059F59C8;\r\nconst void * RTTI_BGSPlanetContentManager = (void *)0x05BA0E38;\r\nconst void * RTTI_BGSPlanetContentManagerBranchNode = (void *)0x05A282D0;\r\nconst void * RTTI_BGSPlanetContentManagerContentNode = (void *)0x05993228;\r\nconst void * RTTI_BGSPlanetContentManagerContentProperties = (void *)0x05A20358;\r\nconst void * RTTI_BGSPlanetContentManagerTree = (void *)0x05A28D70;\r\nconst void * RTTI_BGSPlanetContentManager__ILogEventData = (void *)0x05A28290;\r\nconst void * RTTI_BGSPlanet__Atmosphere = (void *)0x05A205F8;\r\nconst void * RTTI_BGSPlanet__ContentPlacement = (void *)0x05A24D60;\r\nconst void * RTTI_BGSPlanet__IModule = (void *)0x05A205D0;\r\nconst void * RTTI_BGSPlanet__LandingMarkers = (void *)0x05A24448;\r\nconst void * RTTI_BGSPlanet__Landscape = (void *)0x05A24988;\r\nconst void * RTTI_BGSPlanet__Manager = (void *)0x05A24AD0;\r\nconst void * RTTI_BGSPlanet__Manager__MoveToNode = (void *)0x05A24C90;\r\nconst void * RTTI_BGSPlanet__Manager__ShiftToTask = (void *)0x05A24CC8;\r\nconst void * RTTI_BGSPlanet__MultiFiles__Grid = (void *)0x05A246A0;\r\nconst void * RTTI_BGSPlanet__MultiFiles__MasterFile = (void *)0x05A246D0;\r\nconst void * RTTI_BGSPlanet__NavMeshGen = (void *)0x05A255A0;\r\nconst void * RTTI_BGSPlanet__OrderedLandTextures = (void *)0x05A24DD0;\r\nconst void * RTTI_BGSPlanet__Overlays = (void *)0x05A24C60;\r\nconst void * RTTI_BGSPlanet__PlanetData = (void *)0x05A238B0;\r\nconst void * RTTI_BGSPlanet__ProcGen = (void *)0x05A269E8;\r\nconst void * RTTI_BGSPlanet__ProcGenRuntimeService = (void *)0x05A26CE0;\r\nconst void * RTTI_BGSPlanet__ScanCollection = (void *)0x05AD3FD0;\r\nconst void * RTTI_BGSPlanet__SurfaceMapModule = (void *)0x05A24D98;\r\nconst void * RTTI_BGSPlanet__UpdateNavMeshTaskNode = (void *)0x05A25250;\r\nconst void * RTTI_BGSPlayerMusicChanger = (void *)0x05B812E8;\r\nconst void * RTTI_BGSPlayerPickpocketActivity = (void *)0x059BEE48;\r\nconst void * RTTI_BGSPlayerPickpocketActivity_Runtime = (void *)0x059BEE80;\r\nconst void * RTTI_BGSPreviewTransform = (void *)0x059E33F8;\r\nconst void * RTTI_BGSPrimitive = (void *)0x05A0C6C0;\r\nconst void * RTTI_BGSPrimitiveBox = (void *)0x05A0C6E8;\r\nconst void * RTTI_BGSPrimitiveComponent = (void *)0x059E3530;\r\nconst void * RTTI_BGSPrimitiveCylinder = (void *)0x05A0C668;\r\nconst void * RTTI_BGSPrimitiveEllipsoid = (void *)0x05A0C638;\r\nconst void * RTTI_BGSPrimitiveLine = (void *)0x05A0C698;\r\nconst void * RTTI_BGSPrimitivePlane = (void *)0x05A0C5E0;\r\nconst void * RTTI_BGSPrimitiveSphere = (void *)0x05A0C608;\r\nconst void * RTTI_BGSProcedureAcquire = (void *)0x05A8F7D0;\r\nconst void * RTTI_BGSProcedureAcquireExecState = (void *)0x05A8F798;\r\nconst void * RTTI_BGSProcedureActivate = (void *)0x05A8FB60;\r\nconst void * RTTI_BGSProcedureActivateExecState = (void *)0x05A8FAE8;\r\nconst void * RTTI_BGSProcedureAmbush = (void *)0x059C0448;\r\nconst void * RTTI_BGSProcedureAmbushExecState = (void *)0x059C04D8;\r\nconst void * RTTI_BGSProcedureAvoidVehicle = (void *)0x059C1D00;\r\nconst void * RTTI_BGSProcedureAvoidVehicleExecState = (void *)0x059C1A88;\r\nconst void * RTTI_BGSProcedureBase = (void *)0x059C0570;\r\nconst void * RTTI_BGSProcedureCombatTravel = (void *)0x05A8FE38;\r\nconst void * RTTI_BGSProcedureCombatTravelExecState = (void *)0x05A8FE00;\r\nconst void * RTTI_BGSProcedureDialogue = (void *)0x05A900B8;\r\nconst void * RTTI_BGSProcedureDialogueActivate = (void *)0x05A90390;\r\nconst void * RTTI_BGSProcedureDialogueActivateExecState = (void *)0x05A90350;\r\nconst void * RTTI_BGSProcedureDialogueExecState = (void *)0x05A8F230;\r\nconst void * RTTI_BGSProcedureDone = (void *)0x05A8F588;\r\nconst void * RTTI_BGSProcedureDoneExecState = (void *)0x05A8EE80;\r\nconst void * RTTI_BGSProcedureEat = (void *)0x05A905B8;\r\nconst void * RTTI_BGSProcedureEatExecState = (void *)0x05A8F2D0;\r\nconst void * RTTI_BGSProcedureEscort = (void *)0x05A92370;\r\nconst void * RTTI_BGSProcedureEscortExecState = (void *)0x05A92338;\r\nconst void * RTTI_BGSProcedureFind = (void *)0x05A926E8;\r\nconst void * RTTI_BGSProcedureFindExecState = (void *)0x05A8E440;\r\nconst void * RTTI_BGSProcedureFlee = (void *)0x05A929D8;\r\nconst void * RTTI_BGSProcedureFleeExecState = (void *)0x05A929A8;\r\nconst void * RTTI_BGSProcedureFlightGrab = (void *)0x05A92C48;\r\nconst void * RTTI_BGSProcedureFlightGrabExecState = (void *)0x05A92BA0;\r\nconst void * RTTI_BGSProcedureFollow = (void *)0x05A930F8;\r\nconst void * RTTI_BGSProcedureFollowExecState = (void *)0x05A931E8;\r\nconst void * RTTI_BGSProcedureFollowTo = (void *)0x05A930C8;\r\nconst void * RTTI_BGSProcedureForceGreet = (void *)0x05A93410;\r\nconst void * RTTI_BGSProcedureGuard = (void *)0x05A93820;\r\nconst void * RTTI_BGSProcedureGuardArea = (void *)0x05A93938;\r\nconst void * RTTI_BGSProcedureGuardExecState = (void *)0x05A938A8;\r\nconst void * RTTI_BGSProcedureHeadtrack = (void *)0x059C28F8;\r\nconst void * RTTI_BGSProcedureHeadtrackExecState = (void *)0x059C2868;\r\nconst void * RTTI_BGSProcedureHoldPosition = (void *)0x05A93B08;\r\nconst void * RTTI_BGSProcedureHoldPositionExecState = (void *)0x05A8E308;\r\nconst void * RTTI_BGSProcedureHover = (void *)0x05A93DC0;\r\nconst void * RTTI_BGSProcedureHoverExecState = (void *)0x05A93D88;\r\nconst void * RTTI_BGSProcedureKeepAnEyeOn = (void *)0x05A93FE8;\r\nconst void * RTTI_BGSProcedureKeepAnEyeOnExecState = (void *)0x05A8E3A8;\r\nconst void * RTTI_BGSProcedureLock = (void *)0x05A94418;\r\nconst void * RTTI_BGSProcedureLockUnlockExecState = (void *)0x05A94498;\r\nconst void * RTTI_BGSProcedureOrbit = (void *)0x05A946C8;\r\nconst void * RTTI_BGSProcedureOrbitExecState = (void *)0x05A94748;\r\nconst void * RTTI_BGSProcedurePatrol = (void *)0x05A94A00;\r\nconst void * RTTI_BGSProcedurePatrolExecState = (void *)0x05A94968;\r\nconst void * RTTI_BGSProcedurePlayIdle = (void *)0x059C2CC8;\r\nconst void * RTTI_BGSProcedurePlayIdleExecState = (void *)0x059C2C30;\r\nconst void * RTTI_BGSProcedurePursue = (void *)0x05A94C18;\r\nconst void * RTTI_BGSProcedureRange = (void *)0x059C3058;\r\nconst void * RTTI_BGSProcedureRangeExecState = (void *)0x059C2FC0;\r\nconst void * RTTI_BGSProcedureSandbox = (void *)0x05A94E98;\r\nconst void * RTTI_BGSProcedureSandboxExecState = (void *)0x05A94EC8;\r\nconst void * RTTI_BGSProcedureSay = (void *)0x05A95170;\r\nconst void * RTTI_BGSProcedureSayExecState = (void *)0x05A8EA20;\r\nconst void * RTTI_BGSProcedureSit = (void *)0x05A95500;\r\nconst void * RTTI_BGSProcedureSitSleepExecState = (void *)0x05A95610;\r\nconst void * RTTI_BGSProcedureSleep = (void *)0x05A95588;\r\nconst void * RTTI_BGSProcedureStayAway = (void *)0x059C3398;\r\nconst void * RTTI_BGSProcedureStayAwayExecState = (void *)0x059C3430;\r\nconst void * RTTI_BGSProcedureTargetingModeAutopilot = (void *)0x059C3808;\r\nconst void * RTTI_BGSProcedureTargetingModeAutopilotExecState = (void *)0x059C3750;\r\nconst void * RTTI_BGSProcedureTravel = (void *)0x05A957D8;\r\nconst void * RTTI_BGSProcedureTravelExecState = (void *)0x05A95808;\r\nconst void * RTTI_BGSProcedureTreeBranch = (void *)0x05A8EEE8;\r\nconst void * RTTI_BGSProcedureTreeConditionalItem = (void *)0x05A8EF18;\r\nconst void * RTTI_BGSProcedureTreeFallback = (void *)0x05A8EB60;\r\nconst void * RTTI_BGSProcedureTreeFallbackExecState = (void *)0x05A8EAC0;\r\nconst void * RTTI_BGSProcedureTreeOneChildExecState = (void *)0x05A8EEB0;\r\nconst void * RTTI_BGSProcedureTreeProcedure = (void *)0x05A95900;\r\nconst void * RTTI_BGSProcedureTreeRandom = (void *)0x05A8EDE8;\r\nconst void * RTTI_BGSProcedureTreeRandomExecState = (void *)0x05A8ED50;\r\nconst void * RTTI_BGSProcedureTreeSequence = (void *)0x05A8F060;\r\nconst void * RTTI_BGSProcedureTreeSequenceExecState = (void *)0x05A8EFC0;\r\nconst void * RTTI_BGSProcedureTreeSimultaneous = (void *)0x05A8ECA0;\r\nconst void * RTTI_BGSProcedureTreeSimultaneousExecState = (void *)0x05A8EBF8;\r\nconst void * RTTI_BGSProcedureTreeStacked = (void *)0x05A8F1A0;\r\nconst void * RTTI_BGSProcedureTreeStackedExecState = (void *)0x05A8F100;\r\nconst void * RTTI_BGSProcedureUnlock = (void *)0x05A94390;\r\nconst void * RTTI_BGSProcedureUseIdleMarker = (void *)0x05A95BA0;\r\nconst void * RTTI_BGSProcedureUseIdleMarkerExecState = (void *)0x05A95C38;\r\nconst void * RTTI_BGSProcedureUseMagic = (void *)0x05A95E10;\r\nconst void * RTTI_BGSProcedureUseMagicExecState = (void *)0x05A95E40;\r\nconst void * RTTI_BGSProcedureUseWeapon = (void *)0x05A96168;\r\nconst void * RTTI_BGSProcedureUseWeaponExecState = (void *)0x05A96208;\r\nconst void * RTTI_BGSProcedureWait = (void *)0x05A96400;\r\nconst void * RTTI_BGSProcedureWaitExecState = (void *)0x05A8E4D0;\r\nconst void * RTTI_BGSProcedureWander = (void *)0x05A98090;\r\nconst void * RTTI_BGSProcedureWanderExecState = (void *)0x05A980C0;\r\nconst void * RTTI_BGSProduceActivity = (void *)0x059BEF88;\r\nconst void * RTTI_BGSProduceActivity_Runtime = (void *)0x059BEF08;\r\nconst void * RTTI_BGSProjectedDecal = (void *)0x05A423C8;\r\nconst void * RTTI_BGSProjectile = (void *)0x05992DC8;\r\nconst void * RTTI_BGSPropertySheet = (void *)0x059E38C0;\r\nconst void * RTTI_BGSQualityUpgradeFormComponent = (void *)0x059CC088;\r\nconst void * RTTI_BGSQuestPerkEntry = (void *)0x05A819D0;\r\nconst void * RTTI_BGSRangeFormationsSingleton = (void *)0x05B9F2D0;\r\nconst void * RTTI_BGSRefAlias = (void *)0x05A5C8B8;\r\nconst void * RTTI_BGSRefCollectionAlias = (void *)0x05A5C908;\r\nconst void * RTTI_BGSReferenceGroup = (void *)0x05A68998;\r\nconst void * RTTI_BGSReflectedForm = (void *)0x059D5D98;\r\nconst void * RTTI_BGSRelationship = (void *)0x05A81C78;\r\nconst void * RTTI_BGSReloadWeaponActivity = (void *)0x059BF080;\r\nconst void * RTTI_BGSReloadWeaponActivity_Runtime = (void *)0x059BF008;\r\nconst void * RTTI_BGSResearchProjectForm = (void *)0x05A430D0;\r\nconst void * RTTI_BGSResource = (void *)0x05994EA0;\r\nconst void * RTTI_BGSResourceGenerationData = (void *)0x05A60330;\r\nconst void * RTTI_BGSRetargetOnDeleteExtraData = (void *)0x059C4248;\r\nconst void * RTTI_BGSReverbParameters = (void *)0x05A7D5C0;\r\nconst void * RTTI_BGSSaveFormBuffer = (void *)0x05B8A8F8;\r\nconst void * RTTI_BGSSaveGameBuffer = (void *)0x05B8AA08;\r\nconst void * RTTI_BGSSaveGameBufferSimple = (void *)0x05B8A9D8;\r\nconst void * RTTI_BGSSaveLoadJobSite = (void *)0x05B8A6B8;\r\nconst void * RTTI_BGSSaveLoadManager = (void *)0x05B8A660;\r\nconst void * RTTI_BGSSaveLoadStatsMap = (void *)0x05B8AA30;\r\nconst void * RTTI_BGSSaveLoadThread = (void *)0x05B8A690;\r\nconst void * RTTI_BGSSaveLoadUtilities__BGSSaveFormBufferIgnoreIDs = (void *)0x05B8A880;\r\nconst void * RTTI_BGSScanPlanetActivity = (void *)0x059BF0E8;\r\nconst void * RTTI_BGSScanPlanetActivity_Runtime = (void *)0x059BF0B0;\r\nconst void * RTTI_BGSScanSurfaceActivity = (void *)0x059BF370;\r\nconst void * RTTI_BGSScanSurfaceActivity_Runtime = (void *)0x059BF338;\r\nconst void * RTTI_BGSScannableFormComponent = (void *)0x059E2AA8;\r\nconst void * RTTI_BGSScene = (void *)0x05992B40;\r\nconst void * RTTI_BGSSceneActionAnimation = (void *)0x05A5C990;\r\nconst void * RTTI_BGSSceneActionCamera = (void *)0x05A5C9C0;\r\nconst void * RTTI_BGSSceneActionDialogue = (void *)0x05A81E78;\r\nconst void * RTTI_BGSSceneActionFX = (void *)0x05A5C9F0;\r\nconst void * RTTI_BGSSceneActionList = (void *)0x05A5C960;\r\nconst void * RTTI_BGSSceneActionMove = (void *)0x05A5CA18;\r\nconst void * RTTI_BGSSceneActionPackage = (void *)0x05A81E48;\r\nconst void * RTTI_BGSSceneActionPlayerDialogue = (void *)0x05A81F10;\r\nconst void * RTTI_BGSSceneActionRadio = (void *)0x05A81EA8;\r\nconst void * RTTI_BGSSceneActionStartScene = (void *)0x05A5CE48;\r\nconst void * RTTI_BGSSceneActionTimeline = (void *)0x05A5CE78;\r\nconst void * RTTI_BGSSceneActionTimer = (void *)0x05A82008;\r\nconst void * RTTI_BGSSceneFillerSingleton = (void *)0x05B9FC88;\r\nconst void * RTTI_BGSSecondaryDamageList = (void *)0x05A42450;\r\nconst void * RTTI_BGSShaderParticleGeometryData = (void *)0x05A68A18;\r\nconst void * RTTI_BGSShipCollectionActivity = (void *)0x059BF6E0;\r\nconst void * RTTI_BGSShipCollectionActivity_Runtime = (void *)0x059BF6A8;\r\nconst void * RTTI_BGSShipManagement = (void *)0x059E2D70;\r\nconst void * RTTI_BGSShipbuilderActivity = (void *)0x059BF5F0;\r\nconst void * RTTI_BGSShipbuilderActivity_Runtime = (void *)0x059BF5B8;\r\nconst void * RTTI_BGSSkinForm = (void *)0x05A02818;\r\nconst void * RTTI_BGSSkinnedDecalChild = (void *)0x05A0A6A0;\r\nconst void * RTTI_BGSSkinnedDecalGroup = (void *)0x05A0A6D0;\r\nconst void * RTTI_BGSSnapBehavior = (void *)0x05A63758;\r\nconst void * RTTI_BGSSnapTemplate = (void *)0x05A638D8;\r\nconst void * RTTI_BGSSnapTemplateComponent = (void *)0x059E38E8;\r\nconst void * RTTI_BGSSnapTemplateNode = (void *)0x05A639A8;\r\nconst void * RTTI_BGSSoundEcho = (void *)0x05A60720;\r\nconst void * RTTI_BGSSoundKeywordMapping = (void *)0x05A60410;\r\nconst void * RTTI_BGSSoundTagComponent = (void *)0x059E3B50;\r\nconst void * RTTI_BGSSoundTagSet = (void *)0x05A60898;\r\nconst void * RTTI_BGSSpacePhysicsFormComponent = (void *)0x059E3E70;\r\nconst void * RTTI_BGSSpaceshipAIActor = (void *)0x059E40E0;\r\nconst void * RTTI_BGSSpaceshipEquipment = (void *)0x059E4188;\r\nconst void * RTTI_BGSSpaceshipHullCode = (void *)0x059E45B0;\r\nconst void * RTTI_BGSSpaceshipWeaponBinding = (void *)0x059E45E0;\r\nconst void * RTTI_BGSSpatialCombinedGrid = (void *)0x05A1CD58;\r\nconst void * RTTI_BGSSpatialGraph = (void *)0x05A1CF30;\r\nconst void * RTTI_BGSSpatialGraphCellGrid = (void *)0x05A1CB90;\r\nconst void * RTTI_BGSSpatialGraphCellGrid__MergeTask = (void *)0x05A1CBF8;\r\nconst void * RTTI_BGSSpatialGraphExteriorCell = (void *)0x05A1CE68;\r\nconst void * RTTI_BGSSpatialGraphInteriorCell = (void *)0x05A1CF80;\r\nconst void * RTTI_BGSSpatialGraphManager = (void *)0x05A1DCC8;\r\nconst void * RTTI_BGSSpatialGraphManager__Task = (void *)0x05A1CBC0;\r\nconst void * RTTI_BGSSpatialGraphObstacleUpdateTask = (void *)0x05A1C3A0;\r\nconst void * RTTI_BGSSpatialGraphParent = (void *)0x05A1CEA0;\r\nconst void * RTTI_BGSSpatialGraphSpaceCell = (void *)0x05A1CED0;\r\nconst void * RTTI_BGSSpatialGraphSpaceCollection = (void *)0x05A1CB58;\r\nconst void * RTTI_BGSSpatialGraphSpaceCollectionObstacleGridUpdateTask = (void *)0x05A1C2B0;\r\nconst void * RTTI_BGSSpatialGridBase = (void *)0x05A1CB28;\r\nconst void * RTTI_BGSSpatialGridCollection = (void *)0x05A1CC80;\r\nconst void * RTTI_BGSSpatialGridFieldBase = (void *)0x05A0D4C8;\r\nconst void * RTTI_BGSSpatialGridSearchCustomDebugData = (void *)0x05A1FFB8;\r\nconst void * RTTI_BGSSpatialGridSearchDebugData = (void *)0x05A20070;\r\nconst void * RTTI_BGSSpatialGridSearchPolicies__FleeSearchPolicy = (void *)0x059C1FA0;\r\nconst void * RTTI_BGSSpatialGridSearchPolicies__RandomPositionInsideArea = (void *)0x05A1F3D0;\r\nconst void * RTTI_BGSSpatialSimpleGrid = (void *)0x05A1F2B8;\r\nconst void * RTTI_BGSSpatialSparseGrid = (void *)0x05A1C3D8;\r\nconst void * RTTI_BGSSpatialSparseGridSearchDebugData = (void *)0x05A1FFF8;\r\nconst void * RTTI_BGSSpatialSparseGrid__ChunkIndexGrid = (void *)0x05A1F2E8;\r\nconst void * RTTI_BGSSpatialSparseMultiLayerGrid = (void *)0x05A1C230;\r\nconst void * RTTI_BGSSpawnOnDestroy = (void *)0x059E4B60;\r\nconst void * RTTI_BGSSpeechChallengeActivity = (void *)0x059BF880;\r\nconst void * RTTI_BGSSpeechChallengeActivity_Runtime = (void *)0x059BF840;\r\nconst void * RTTI_BGSSpeechChallengeObject = (void *)0x05A608C0;\r\nconst void * RTTI_BGSSprintActivity = (void *)0x059BF978;\r\nconst void * RTTI_BGSSprintActivity_Runtime = (void *)0x059BF908;\r\nconst void * RTTI_BGSStarDataComponent = (void *)0x059E4C90;\r\nconst void * RTTI_BGSStaticCollection = (void *)0x05A63CD0;\r\nconst void * RTTI_BGSStaticCollection__RootFacade = (void *)0x05A63C98;\r\nconst void * RTTI_BGSStoredTraversalData = (void *)0x059923D8;\r\nconst void * RTTI_BGSStoryManager = (void *)0x05AA2378;\r\nconst void * RTTI_BGSStoryManagerBranchNode = (void *)0x05A01658;\r\nconst void * RTTI_BGSStoryManagerEventNode = (void *)0x05AA2480;\r\nconst void * RTTI_BGSStoryManagerNodeBase = (void *)0x05A01628;\r\nconst void * RTTI_BGSStoryManagerQuestFinder = (void *)0x05AA2340;\r\nconst void * RTTI_BGSStoryManagerQuestNode = (void *)0x05AA2510;\r\nconst void * RTTI_BGSStoryManagerTreeForm = (void *)0x059BD808;\r\nconst void * RTTI_BGSStoryManagerTreeVisitor = (void *)0x05AA23A0;\r\nconst void * RTTI_BGSStoryTeller = (void *)0x05AA2AE0;\r\nconst void * RTTI_BGSSurface__BGSBlockCellHeighGridComponent = (void *)0x05A40350;\r\nconst void * RTTI_BGSSurface__Block = (void *)0x05A59848;\r\nconst void * RTTI_BGSSurface__Manager = (void *)0x05A20510;\r\nconst void * RTTI_BGSSurface__Pattern = (void *)0x05A59910;\r\nconst void * RTTI_BGSSurface__PatternStyle = (void *)0x05A40B70;\r\nconst void * RTTI_BGSSurface__Tree = (void *)0x05A59A98;\r\nconst void * RTTI_BGSSynchronizedAnimationInstance = (void *)0x05AA33D0;\r\nconst void * RTTI_BGSSynchronizedAnimationManager = (void *)0x05AA2F80;\r\nconst void * RTTI_BGSTDataProxyComponentBase = (void *)0x059E2158;\r\nconst void * RTTI_BGSTakeActorDamageActivity = (void *)0x059BF9A0;\r\nconst void * RTTI_BGSTakeActorDamageActivity_Runtime = (void *)0x059BFA30;\r\nconst void * RTTI_BGSTakeDamageActivity = (void *)0x059BFBC0;\r\nconst void * RTTI_BGSTakeDamageActivity_Runtime = (void *)0x059BFB88;\r\nconst void * RTTI_BGSTalkingActivator = (void *)0x05A63DA8;\r\nconst void * RTTI_BGSTerminal = (void *)0x05992D30;\r\nconst void * RTTI_BGSTerminalMenu = (void *)0x05992D58;\r\nconst void * RTTI_BGSTerrainBlock__AlignmentModifier = (void *)0x05A59C20;\r\nconst void * RTTI_BGSTerrainBlock__ContinentalModifier = (void *)0x05A59D30;\r\nconst void * RTTI_BGSTerrainBlock__Grid = (void *)0x05A5A128;\r\nconst void * RTTI_BGSTerrainBlock__GridCell = (void *)0x05A5A190;\r\nconst void * RTTI_BGSTerrainBlock__GridCornerCell = (void *)0x05A5A158;\r\nconst void * RTTI_BGSTerrainBlock__GridCornerEdgeXFile = (void *)0x05A59EE8;\r\nconst void * RTTI_BGSTerrainBlock__GridCornerFile = (void *)0x05A59F28;\r\nconst void * RTTI_BGSTerrainBlock__GridEdgeFile = (void *)0x05A59F60;\r\nconst void * RTTI_BGSTerrainBlock__GridEdgeXCell = (void *)0x05A5A040;\r\nconst void * RTTI_BGSTerrainBlock__GridEdgeYCell = (void *)0x05A5A008;\r\nconst void * RTTI_BGSTerrainBlock__GridFile = (void *)0x05A59F98;\r\nconst void * RTTI_BGSTerrainBlock__GridFillCell = (void *)0x05A5A078;\r\nconst void * RTTI_BGSTerrainBlock__GridFillFile = (void *)0x05A59E28;\r\nconst void * RTTI_BGSTerrainBlock__HeightAdjustmentModifier = (void *)0x05A41338;\r\nconst void * RTTI_BGSTerrainBlock__IModifier = (void *)0x05A41378;\r\nconst void * RTTI_BGSTerrainBlock__OceanBiomeModifier = (void *)0x05A59CF0;\r\nconst void * RTTI_BGSTerrainBlock__OverlayGrid = (void *)0x05A5A0F0;\r\nconst void * RTTI_BGSTerrainBlock__OverlayHeightModifier = (void *)0x05A59FC8;\r\nconst void * RTTI_BGSTerrainBlock__RerangeHeightModifier = (void *)0x05A5A0B0;\r\nconst void * RTTI_BGSTerrainBlock__UpdateHeightModifier = (void *)0x05A5A2F0;\r\nconst void * RTTI_BGSTerrain__File = (void *)0x05A24838;\r\nconst void * RTTI_BGSTerrain__IFileGrid = (void *)0x05A24630;\r\nconst void * RTTI_BGSTerrain__Manager = (void *)0x05A5C618;\r\nconst void * RTTI_BGSTerrain__UniFile__Grid = (void *)0x05A5A7C8;\r\nconst void * RTTI_BGSTextureModel = (void *)0x05A84AA0;\r\nconst void * RTTI_BGSTextureSet = (void *)0x05A7D730;\r\nconst void * RTTI_BGSTimeOfDayData = (void *)0x05A68AB0;\r\nconst void * RTTI_BGSTrackDamageEffectData = (void *)0x05A7D4E0;\r\nconst void * RTTI_BGSTransform = (void *)0x05A609A0;\r\nconst void * RTTI_BGSTraversal = (void *)0x05A60A60;\r\nconst void * RTTI_BGSUnity__UnityDataCache = (void *)0x05B81BB8;\r\nconst void * RTTI_BGSVehicleConfigFormComponent = (void *)0x059CC8C8;\r\nconst void * RTTI_BGSVehicleManagement = (void *)0x059CCB30;\r\nconst void * RTTI_BGSVisitProceduresCheckGuardWarnTarget = (void *)0x05A98200;\r\nconst void * RTTI_BGSVisitProceduresInitActorAnimPose = (void *)0x05BAFBA8;\r\nconst void * RTTI_BGSVisitProceduresInitActorLocation = (void *)0x05A981C0;\r\nconst void * RTTI_BGSVisitProceduresProcess = (void *)0x05BAFB78;\r\nconst void * RTTI_BGSVoiceType = (void *)0x05992D08;\r\nconst void * RTTI_BGSVolumeFormComponent = (void *)0x059E57B0;\r\nconst void * RTTI_BGSVolumetricLighting = (void *)0x05A63FA0;\r\nconst void * RTTI_BGSWaterCollisionManager__AutoWater = (void *)0x05AA1938;\r\nconst void * RTTI_BGSWaterCollisionManager__BGSWaterUpdateI = (void *)0x05AA1A08;\r\nconst void * RTTI_BGSWaterCollisionManager__WaterGravityModifier = (void *)0x05AA1510;\r\nconst void * RTTI_BGSWaterCollisionManager__WaterGravityModifierWorldStepListener = (void *)0x05AA14B0;\r\nconst void * RTTI_BGSWaterCollisionManager__bhkPlaceableWater = (void *)0x05AA1980;\r\nconst void * RTTI_BGSWaterCollisionManager__bhkWaterfall = (void *)0x05AA19C8;\r\nconst void * RTTI_BGSWeaponBarrelData = (void *)0x05A42500;\r\nconst void * RTTI_BGSWeaponBarrelModel = (void *)0x05A424D0;\r\nconst void * RTTI_BGSWeaponData__Aim = (void *)0x05A43918;\r\nconst void * RTTI_BGSWeaponData__Ammunition = (void *)0x05A43940;\r\nconst void * RTTI_BGSWeaponData__Audio = (void *)0x05A43970;\r\nconst void * RTTI_BGSWeaponData__Charge = (void *)0x05A439A0;\r\nconst void * RTTI_BGSWeaponData__Damage = (void *)0x05A439D0;\r\nconst void * RTTI_BGSWeaponData__Firing = (void *)0x05A43A00;\r\nconst void * RTTI_BGSWeaponData__FiringStrategyBase = (void *)0x05A43B70;\r\nconst void * RTTI_BGSWeaponData__FiringStrategy_Automatic = (void *)0x05A43AB0;\r\nconst void * RTTI_BGSWeaponData__FiringStrategy_BoltShot = (void *)0x05A43AF0;\r\nconst void * RTTI_BGSWeaponData__FiringStrategy_Burst = (void *)0x05A43B30;\r\nconst void * RTTI_BGSWeaponData__FiringStrategy_ChargedShot = (void *)0x05A43A30;\r\nconst void * RTTI_BGSWeaponData__FiringStrategy_SingleShot = (void *)0x05A43A70;\r\nconst void * RTTI_BGSWeaponData__Flags = (void *)0x05A43BA8;\r\nconst void * RTTI_BGSWeaponData__General = (void *)0x05A43BD8;\r\nconst void * RTTI_BGSWeaponData__Melee = (void *)0x05A43C08;\r\nconst void * RTTI_BGSWeaponData__Power = (void *)0x05A43C38;\r\nconst void * RTTI_BGSWeaponData__Reload = (void *)0x05A43C68;\r\nconst void * RTTI_BGSWeaponData__ShipWeapon = (void *)0x059D61D8;\r\nconst void * RTTI_BGSWeaponData__Turret = (void *)0x05A43C98;\r\nconst void * RTTI_BGSWeaponData__VariableRange = (void *)0x05A43CC8;\r\nconst void * RTTI_BGSWeaponData__Visuals = (void *)0x05A43D00;\r\nconst void * RTTI_BGSWeatherSettingsForm = (void *)0x05A4FF10;\r\nconst void * RTTI_BGSWorkshopItemColorComponent = (void *)0x059CCD48;\r\nconst void * RTTI_BGSWorldSpaceOverlayComponent = (void *)0x059E5A80;\r\nconst void * RTTI_BGSWwiseEventForm = (void *)0x05992220;\r\nconst void * RTTI_BGSWwiseKeywordMapping = (void *)0x05A42630;\r\nconst void * RTTI_BGSZoneTargetListener = (void *)0x05A851F0;\r\nconst void * RTTI_BIEventManager = (void *)0x059C5AE8;\r\nconst void * RTTI_BIEventUtils__FindAllStarbornPowerFunctor = (void *)0x05B82C70;\r\nconst void * RTTI_BNETRequester = (void *)0x05C80D38;\r\nconst void * RTTI_BSAVMS__AVMNode = (void *)0x059C4FC8;\r\nconst void * RTTI_BSAVMS__AVMNodeInFlightCounted = (void *)0x059C4F90;\r\nconst void * RTTI_BSAVMS__AVMPartialNode = (void *)0x059C5060;\r\nconst void * RTTI_BSAnimNotes = (void *)0x05D511C0;\r\nconst void * RTTI_BSAnimation = (void *)0x05C8B030;\r\nconst void * RTTI_BSAnimationAnimDBData = (void *)0x05C8B180;\r\nconst void * RTTI_BSAnimationDBData = (void *)0x05C8A488;\r\nconst void * RTTI_BSAnimationFileManager = (void *)0x05C8BFE0;\r\nconst void * RTTI_BSAnimationGraph = (void *)0x05C8B9F8;\r\nconst void * RTTI_BSAnimationGraphChannel = (void *)0x05A71030;\r\nconst void * RTTI_BSAnimationGraphLoadScrapper = (void *)0x05C8BB38;\r\nconst void * RTTI_BSAnimationGraphManager = (void *)0x05C99DE0;\r\nconst void * RTTI_BSAnimationObjectManager = (void *)0x05AA8BD8;\r\nconst void * RTTI_BSAnimationUtils__FindEventClipGeneratorsFunctor = (void *)0x05C8B400;\r\nconst void * RTTI_BSAnimationUtils__MatchEventToClipGeneratorsFunctor = (void *)0x05C8AC30;\r\nconst void * RTTI_BSAttachConfig__ArtObjectAttach = (void *)0x05A4F8D8;\r\nconst void * RTTI_BSAttachConfig__AttachmentConfiguration = (void *)0x059E7B50;\r\nconst void * RTTI_BSAttachConfig__BaseInstance = (void *)0x059C48B0;\r\nconst void * RTTI_BSAttachConfig__ISearchMethod = (void *)0x05A4FBE0;\r\nconst void * RTTI_BSAttachConfig__NodeAttachmentInstance = (void *)0x059C48E8;\r\nconst void * RTTI_BSAttachConfig__ObjectAttachmentInstance = (void *)0x059C4A68;\r\nconst void * RTTI_BSAttachConfig__ParticleAttachmentInstance = (void *)0x059C4870;\r\nconst void * RTTI_BSAttachConfig__SearchMethodBase = (void *)0x05A4FC18;\r\nconst void * RTTI_BSAttachConfig__SearchMultipleNamesMultipleNodes = (void *)0x05CB9910;\r\nconst void * RTTI_BSAttachConfig__SearchRootNode = (void *)0x05CAF710;\r\nconst void * RTTI_BSAttachConfig__SearchSingleNameSingleNode = (void *)0x05A4FC50;\r\nconst void * RTTI_BSAttachRefController = (void *)0x05A0D4F8;\r\nconst void * RTTI_BSAttachTechniques__AttachTechniqueInput = (void *)0x05B7EB28;\r\nconst void * RTTI_BSAttachTechniques__BSAttachTechnique = (void *)0x05A099E8;\r\nconst void * RTTI_BSAutoQueuedDependentNodeBase = (void *)0x05A019F8;\r\nconst void * RTTI_BSAwardsSystemUtility = (void *)0x05D67E40;\r\nconst void * RTTI_BSBehaviorGraphExtraData = (void *)0x05CC0F20;\r\nconst void * RTTI_BSBehaviorGraphSwapSingleton = (void *)0x05AA32F8;\r\nconst void * RTTI_BSBind__BGSExternalEmittanceController = (void *)0x05A08B88;\r\nconst void * RTTI_BSBind__BGSLensFlareController = (void *)0x05A08BC8;\r\nconst void * RTTI_BSBind__ColorCurveController = (void *)0x05CB99A8;\r\nconst void * RTTI_BSBind__ColorLerpController = (void *)0x05CBA010;\r\nconst void * RTTI_BSBind__ComponentBinding = (void *)0x05CC0B88;\r\nconst void * RTTI_BSBind__ComponentProperty = (void *)0x05CB9B88;\r\nconst void * RTTI_BSBind__Directory = (void *)0x05CB9958;\r\nconst void * RTTI_BSBind__Float2DCurveController = (void *)0x05CB9B20;\r\nconst void * RTTI_BSBind__Float2DLerpController = (void *)0x05CB9FD8;\r\nconst void * RTTI_BSBind__Float3DCurveController = (void *)0x05CB9AE8;\r\nconst void * RTTI_BSBind__Float3DLerpController = (void *)0x05CB9FA0;\r\nconst void * RTTI_BSBind__Float4DCurveController = (void *)0x05CB99E0;\r\nconst void * RTTI_BSBind__Float4DLerpController = (void *)0x05CBA048;\r\nconst void * RTTI_BSBind__FloatCurveController = (void *)0x05CB9A80;\r\nconst void * RTTI_BSBind__FloatLerpController = (void *)0x05CB9A18;\r\nconst void * RTTI_BSBind__IAddressControllerStore = (void *)0x05A6A520;\r\nconst void * RTTI_BSBind__IController = (void *)0x05A08B58;\r\nconst void * RTTI_BSBind__IDataBinding = (void *)0x059D9FD8;\r\nconst void * RTTI_BSBind__INode = (void *)0x05CB9980;\r\nconst void * RTTI_BSBind__ModuleState = (void *)0x05CBA350;\r\nconst void * RTTI_BSBind__MultiBinding = (void *)0x059DA008;\r\nconst void * RTTI_BSBind__Multiplex = (void *)0x05CB98E8;\r\nconst void * RTTI_BSBind__Snapshot = (void *)0x059921A0;\r\nconst void * RTTI_BSBind__StableBinding = (void *)0x05A4FC90;\r\nconst void * RTTI_BSBind__TimerController = (void *)0x05CB9A50;\r\nconst void * RTTI_BSBlastNode = (void *)0x05CBBD18;\r\nconst void * RTTI_BSBlendTreadTransfInterpolator = (void *)0x05D50658;\r\nconst void * RTTI_BSBoneLODExtraData = (void *)0x05CC0EF0;\r\nconst void * RTTI_BSBound = (void *)0x05CA64A8;\r\nconst void * RTTI_BSBoxConstructor = (void *)0x05CBB438;\r\nconst void * RTTI_BSCSVUtils__ParserBuffer = (void *)0x05CBDE80;\r\nconst void * RTTI_BSCapsuleConstructor = (void *)0x05CBB408;\r\nconst void * RTTI_BSClonePools = (void *)0x05A0D528;\r\nconst void * RTTI_BSCloneReserver = (void *)0x05A0D6E8;\r\nconst void * RTTI_BSClothExtraData = (void *)0x05CA4598;\r\nconst void * RTTI_BSClothUtils__BSGeometryBuffer = (void *)0x05CA49D8;\r\nconst void * RTTI_BSClothUtils__BSInstantiationUtil = (void *)0x05CA4A98;\r\nconst void * RTTI_BSClothUtils__BSTransformSet = (void *)0x05CA4A30;\r\nconst void * RTTI_BSComponentDB2__DB = (void *)0x05CAF0B8;\r\nconst void * RTTI_BSComponentDB2__DBFileIndex__IDFixupVisitor = (void *)0x05D68500;\r\nconst void * RTTI_BSComponentDB2__JsonDBIDHandler = (void *)0x05CC1BF8;\r\nconst void * RTTI_BSComponentDB2__JsonResourceIDHandler = (void *)0x05CC1DA0;\r\nconst void * RTTI_BSComponentDB2__Memory__ConcurrentPageAllocImpl = (void *)0x05CAEC60;\r\nconst void * RTTI_BSComponentDB2__StorageService = (void *)0x05CC2E28;\r\nconst void * RTTI_BSComponentDB2__StorageService__Impl = (void *)0x05CC27D0;\r\nconst void * RTTI_BSComponentDB2__StorageService__ObjectReferenceVisitor = (void *)0x05CC2780;\r\nconst void * RTTI_BSComponentDB__BaseComponents = (void *)0x05CADC38;\r\nconst void * RTTI_BSComponentDB__IComponentFactory = (void *)0x05A59390;\r\nconst void * RTTI_BSConnectPoint__ChildOrigin = (void *)0x05A0C1A8;\r\nconst void * RTTI_BSConnectPoint__Children = (void *)0x05CA4248;\r\nconst void * RTTI_BSConnectPoint__Parents = (void *)0x05CA4218;\r\nconst void * RTTI_BSCoreMessage__MessageSource = (void *)0x05C9CA40;\r\nconst void * RTTI_BSCounterStorage = (void *)0x05C64578;\r\nconst void * RTTI_BSCrashCache = (void *)0x05C9F300;\r\nconst void * RTTI_BSCylinderConstructor = (void *)0x05AA6370;\r\nconst void * RTTI_BSDamageStage = (void *)0x05CBBD68;\r\nconst void * RTTI_BSDebounceManager = (void *)0x05C9DB18;\r\nconst void * RTTI_BSDebrisNode = (void *)0x05CBBD40;\r\nconst void * RTTI_BSDecalLayerManager = (void *)0x05BA04C8;\r\nconst void * RTTI_BSDiagData = (void *)0x05C9F070;\r\nconst void * RTTI_BSDiscBootSystemUtility = (void *)0x05D684D0;\r\nconst void * RTTI_BSDistantObjectExtraData = (void *)0x05CC0F80;\r\nconst void * RTTI_BSDynamicGeometry = (void *)0x05D52010;\r\nconst void * RTTI_BSExceptionHandler = (void *)0x05C9F098;\r\nconst void * RTTI_BSExteriorReflectionProbeAdjustmentVolume = (void *)0x05CBD4F0;\r\nconst void * RTTI_BSExtraData = (void *)0x059DA1F8;\r\nconst void * RTTI_BSFaceDB__AttachHeadControlNode = (void *)0x059DBD48;\r\nconst void * RTTI_BSFaceDB__CreateHeadControlNode = (void *)0x059DBB48;\r\nconst void * RTTI_BSFaceDB__CrowdHairCustomization = (void *)0x059DC3C8;\r\nconst void * RTTI_BSFaceDB__EyeCustomization = (void *)0x059DC400;\r\nconst void * RTTI_BSFaceDB__FaceCustomizationTexturesNode = (void *)0x059DC430;\r\nconst void * RTTI_BSFaceDB__HairCustomization = (void *)0x059DC390;\r\nconst void * RTTI_BSFaceDB__JewelryCustomizationNode = (void *)0x059DBDB8;\r\nconst void * RTTI_BSFaceDB__RequestCompleteNode = (void *)0x059DBB80;\r\nconst void * RTTI_BSFaceDB__RequestHeadPartResourcesNode = (void *)0x059DC1E0;\r\nconst void * RTTI_BSFaceDB__TeethCustomizationNode = (void *)0x059DBD80;\r\nconst void * RTTI_BSFaceFX = (void *)0x059DAEC0;\r\nconst void * RTTI_BSFaceGenAnimationData = (void *)0x05A872D8;\r\nconst void * RTTI_BSFaceGenManager = (void *)0x05A87398;\r\nconst void * RTTI_BSFaceGenNiNode = (void *)0x05A87650;\r\nconst void * RTTI_BSFaceGenUtils__UpdateFaceCustomizationTexturesNode = (void *)0x059DBCD0;\r\nconst void * RTTI_BSFadeNode = (void *)0x05994A80;\r\nconst void * RTTI_BSFile = (void *)0x05B86D98;\r\nconst void * RTTI_BSFile__PageCache__PhysReadType = (void *)0x05D0B658;\r\nconst void * RTTI_BSFixedSizeBlockAllocator__IAlloc = (void *)0x05B8C720;\r\nconst void * RTTI_BSFixedSizeBlockAllocator__UserPoolImplBase = (void *)0x05C9CAC0;\r\nconst void * RTTI_BSFocusShadowManager = (void *)0x05BA0750;\r\nconst void * RTTI_BSFogVolume = (void *)0x05CBD4C8;\r\nconst void * RTTI_BSFrameManager = (void *)0x05CBF2D8;\r\nconst void * RTTI_BSFrustumFOVController = (void *)0x05D50420;\r\nconst void * RTTI_BSFurnitureMarkerNode = (void *)0x05CBCFA8;\r\nconst void * RTTI_BSGFxFunctionBase = (void *)0x05CD3058;\r\nconst void * RTTI_BSGFxFunctionHandler = (void *)0x05CD58F0;\r\nconst void * RTTI_BSGFxObject = (void *)0x05B26D88;\r\nconst void * RTTI_BSGalaxy__BGSStar = (void *)0x059E9340;\r\nconst void * RTTI_BSGalaxy__BGSSunPresetForm = (void *)0x059E93C0;\r\nconst void * RTTI_BSGalaxy__BiomeMapDB__LoadBiome = (void *)0x059E9450;\r\nconst void * RTTI_BSGalaxy__Biomes__Map = (void *)0x059E9A78;\r\nconst void * RTTI_BSGalaxy__ModuleState = (void *)0x05C9F490;\r\nconst void * RTTI_BSGalaxy__Physics__Havok__BSGalaxyCollisionObject = (void *)0x05CA0E50;\r\nconst void * RTTI_BSGalaxy__Physics__Havok__bhkSpaceWorld = (void *)0x05CA0C18;\r\nconst void * RTTI_BSGalaxy__Storage__SkipCelestialsAndSpaceCellsFunctor = (void *)0x05AEAE50;\r\nconst void * RTTI_BSGalaxy__Storage__SkipCelestialsFunctor = (void *)0x05AEAEA0;\r\nconst void * RTTI_BSGalaxy__hknpBSShiftOffsetCollector = (void *)0x05CA0BB8;\r\nconst void * RTTI_BSGameDataSystemUtility = (void *)0x05D67B58;\r\nconst void * RTTI_BSGameStreamUtility = (void *)0x05D67D88;\r\nconst void * RTTI_BSGamepadDevice = (void *)0x05C9E140;\r\nconst void * RTTI_BSGamerProfile = (void *)0x05D67DE0;\r\nconst void * RTTI_BSGdkTaskletGroupData = (void *)0x05D0D1D0;\r\nconst void * RTTI_BSGdkTaskletManager = (void *)0x05D0D170;\r\nconst void * RTTI_BSGeometry = (void *)0x05995C70;\r\nconst void * RTTI_BSGeometryConstructorManager = (void *)0x05BA02F8;\r\nconst void * RTTI_BSGeometrySegmentData = (void *)0x05D517A0;\r\nconst void * RTTI_BSGrabIKNote = (void *)0x05D511E8;\r\nconst void * RTTI_BSIMusicTrack = (void *)0x05A7CD10;\r\nconst void * RTTI_BSIdleInputWatcher = (void *)0x05B21378;\r\nconst void * RTTI_BSInputDevice = (void *)0x05C9E168;\r\nconst void * RTTI_BSInputDeviceManager = (void *)0x05C9D470;\r\nconst void * RTTI_BSInputEnableManager = (void *)0x05C9E110;\r\nconst void * RTTI_BSInputEventQueue = (void *)0x05C9D180;\r\nconst void * RTTI_BSInputEventReceiver = (void *)0x05ACFF08;\r\nconst void * RTTI_BSInputEventSingleUser = (void *)0x05B10FD0;\r\nconst void * RTTI_BSInputEventUser = (void *)0x059EBB28;\r\nconst void * RTTI_BSInstancedGeometry = (void *)0x059CB178;\r\nconst void * RTTI_BSInvMarker = (void *)0x05CC0E78;\r\nconst void * RTTI_BSJobs2__Detail__ControlNodeJob = (void *)0x059FD880;\r\nconst void * RTTI_BSJobs2__Detail__GroupThread = (void *)0x05D0AE00;\r\nconst void * RTTI_BSJobs2__Memory__HeapMemoryPolicy = (void *)0x05D0AFD8;\r\nconst void * RTTI_BSJobs2__Memory__LSAMemoryPolicy = (void *)0x05D0B048;\r\nconst void * RTTI_BSJobs2__Memory__ScrapMemoryPolicy = (void *)0x05D0B010;\r\nconst void * RTTI_BSJobs__Jobs2Adaptor = (void *)0x05D0AD38;\r\nconst void * RTTI_BSKeyboardDevice = (void *)0x05C9E270;\r\nconst void * RTTI_BSLagBoneController = (void *)0x05CC0F50;\r\nconst void * RTTI_BSLegacyStreamableStub = (void *)0x05D52988;\r\nconst void * RTTI_BSLensFlareRender__BSLensFlareSpriteRenderData = (void *)0x05A61610;\r\nconst void * RTTI_BSLight = (void *)0x059965D8;\r\nconst void * RTTI_BSLookIKNote = (void *)0x05D51210;\r\nconst void * RTTI_BSMaterialBinding__MaterialPropertyNode = (void *)0x05CCD828;\r\nconst void * RTTI_BSMaterialBinding__MaterialUVStreamPropertyNode = (void *)0x05CCD540;\r\nconst void * RTTI_BSMaterial__ModuleState = (void *)0x05CC4408;\r\nconst void * RTTI_BSMemStorage = (void *)0x059E52D8;\r\nconst void * RTTI_BSMemStorageReadOnly = (void *)0x05C9D920;\r\nconst void * RTTI_BSMenu3D__SceneManager = (void *)0x05CD3510;\r\nconst void * RTTI_BSMissionMenu = (void *)0x05B30C20;\r\nconst void * RTTI_BSMissionMenu__MissionMenuEventShuttle = (void *)0x05B308D0;\r\nconst void * RTTI_BSModelDB__BSModelProcessor = (void *)0x05A01900;\r\nconst void * RTTI_BSModelDB__DependencyCacheManager = (void *)0x05CBB600;\r\nconst void * RTTI_BSModelDB__ModelResourceNode = (void *)0x05CB2458;\r\nconst void * RTTI_BSModelDB__QueuedHandles = (void *)0x059FA438;\r\nconst void * RTTI_BSModelNode = (void *)0x05A0C2F0;\r\nconst void * RTTI_BSModelNodeAnimRig = (void *)0x05C8BE90;\r\nconst void * RTTI_BSModelNodePhysicsComponentI = (void *)0x05A0C318;\r\nconst void * RTTI_BSModelNodeRigI = (void *)0x05C8BE68;\r\nconst void * RTTI_BSMorphDB__AutoQueuedNode = (void *)0x05CB0850;\r\nconst void * RTTI_BSMorphDB__QueuedHandles = (void *)0x05AA2E58;\r\nconst void * RTTI_BSMorphTargetData = (void *)0x05D516B8;\r\nconst void * RTTI_BSMouseDevice = (void *)0x05C9E190;\r\nconst void * RTTI_BSMsgDialogSystemUtility = (void *)0x05D68220;\r\nconst void * RTTI_BSMultiTargetTreadTransfController = (void *)0x05D50118;\r\nconst void * RTTI_BSNavMeshGenAntiseedTrimmerTask = (void *)0x05CEEFB8;\r\nconst void * RTTI_BSNavMeshGenCollapserTask = (void *)0x05CEDFC8;\r\nconst void * RTTI_BSNavMeshGenComputeBoundTask = (void *)0x05CEED78;\r\nconst void * RTTI_BSNavMeshGenContext = (void *)0x059D1180;\r\nconst void * RTTI_BSNavMeshGenContextGroup = (void *)0x05CF6068;\r\nconst void * RTTI_BSNavMeshGenCoverTask = (void *)0x05CEEDE0;\r\nconst void * RTTI_BSNavMeshGenData = (void *)0x059D08B0;\r\nconst void * RTTI_BSNavMeshGenInputProcessTask = (void *)0x05CEDFF8;\r\nconst void * RTTI_BSNavMeshGenInputProcessor = (void *)0x05A163A8;\r\nconst void * RTTI_BSNavMeshGenLinkDoorTask = (void *)0x05CEEDB0;\r\nconst void * RTTI_BSNavMeshGenOutputProcessTask = (void *)0x05CEE030;\r\nconst void * RTTI_BSNavMeshGenOutputProcessor = (void *)0x05A163E0;\r\nconst void * RTTI_BSNavMeshGenRecastImport = (void *)0x05CFACF8;\r\nconst void * RTTI_BSNavMeshGenRecastTask = (void *)0x05CEE068;\r\nconst void * RTTI_BSNavMeshGenRequestPauseTask = (void *)0x05CF6030;\r\nconst void * RTTI_BSNavMeshGenRequestResumeTask = (void *)0x05CF5FF8;\r\nconst void * RTTI_BSNavMeshGenSeedTrimmerTask = (void *)0x05CEEF80;\r\nconst void * RTTI_BSNavMeshGenSmallAreaTrimmerTask = (void *)0x05CEECD0;\r\nconst void * RTTI_BSNavMeshGenSplitter = (void *)0x05A16448;\r\nconst void * RTTI_BSNavMeshGenSplitterTask = (void *)0x05CEEE40;\r\nconst void * RTTI_BSNavMeshGenStitcher = (void *)0x05A165E0;\r\nconst void * RTTI_BSNavMeshGenStitcherTask = (void *)0x05CEE098;\r\nconst void * RTTI_BSNavMeshGenTask = (void *)0x059D1130;\r\nconst void * RTTI_BSNavMeshGenTaskGraphProcessor = (void *)0x05CEE1C0;\r\nconst void * RTTI_BSNavMeshGenTaskGroup = (void *)0x05CEE118;\r\nconst void * RTTI_BSNavMeshGenTaskProgress = (void *)0x05CF5FC8;\r\nconst void * RTTI_BSNavMeshGenTaskServer = (void *)0x05A15760;\r\nconst void * RTTI_BSNavMeshGenTerrainTrimmerTask = (void *)0x05CEED08;\r\nconst void * RTTI_BSNavMeshGenTraversalTask = (void *)0x05CEEE70;\r\nconst void * RTTI_BSNavMeshGenTriangleHeightTask = (void *)0x05CEEED8;\r\nconst void * RTTI_BSNavMeshGenTrianglePlatformTask = (void *)0x05CEEEA0;\r\nconst void * RTTI_BSNavMeshGenTriangleSplitter = (void *)0x05CF5E90;\r\nconst void * RTTI_BSNavMeshGenTriangleSplitterTask = (void *)0x05CEEF10;\r\nconst void * RTTI_BSNavMeshGenTriangleTunnelTask = (void *)0x05CEEF48;\r\nconst void * RTTI_BSNavMeshGenTriangleWaterTask = (void *)0x05CEED40;\r\nconst void * RTTI_BSNavMeshGenUpdateNavMeshInfoTask = (void *)0x05CEE868;\r\nconst void * RTTI_BSNavMeshGenVertexDataTask = (void *)0x05CEE8A0;\r\nconst void * RTTI_BSNavMeshGenWaypointTask = (void *)0x05CEEE10;\r\nconst void * RTTI_BSNavMeshGenerator = (void *)0x05A15000;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenBarrierNode = (void *)0x05CEE0D0;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenBeginFinalizeAdjacenCellsNode = (void *)0x05CEDF10;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenBeginFinalizerNode = (void *)0x05CF6470;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenBeginNode = (void *)0x05CF60E0;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenEndFinalizeAdjacentCellsNode = (void *)0x05CEDF70;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenEndFinalizerNode = (void *)0x05CF6420;\r\nconst void * RTTI_BSNavMeshGenerator__BSNavMeshGenParentNode = (void *)0x05CF60A0;\r\nconst void * RTTI_BSNavigationGraph = (void *)0x05A1CF58;\r\nconst void * RTTI_BSNavigationGraphInfo = (void *)0x05A98AF8;\r\nconst void * RTTI_BSNavigationGraphManager = (void *)0x05A13780;\r\nconst void * RTTI_BSNavigationGraphRefCount = (void *)0x05A1CE38;\r\nconst void * RTTI_BSNavigationGrid = (void *)0x05CF7D78;\r\nconst void * RTTI_BSNavigationGridBase = (void *)0x05CF7D48;\r\nconst void * RTTI_BSNavigationGridChunk = (void *)0x05CF7DA0;\r\nconst void * RTTI_BSNavigationGridFieldBase = (void *)0x05AAF388;\r\nconst void * RTTI_BSNavigationGridInfo = (void *)0x05CF7CB0;\r\nconst void * RTTI_BSNavigationGridManager = (void *)0x05A13838;\r\nconst void * RTTI_BSNavigationGridManager__Task = (void *)0x05A13800;\r\nconst void * RTTI_BSNavigationGridObstacleUpdateTask = (void *)0x05CF7DD0;\r\nconst void * RTTI_BSNavmesh = (void *)0x05A98A80;\r\nconst void * RTTI_BSNavmeshInfo = (void *)0x05A98B28;\r\nconst void * RTTI_BSNavmeshInfoMap = (void *)0x05A98C80;\r\nconst void * RTTI_BSNavmeshInfoMap__IRecursiveVisitor = (void *)0x05A9A2B0;\r\nconst void * RTTI_BSNavmeshInfoSearch = (void *)0x05CF7758;\r\nconst void * RTTI_BSNavmeshObstacleCoverData = (void *)0x05CF6690;\r\nconst void * RTTI_BSNavmeshObstacleData = (void *)0x059D4620;\r\nconst void * RTTI_BSNavmeshReferenceObstacleArray = (void *)0x05A99070;\r\nconst void * RTTI_BSNavmeshSearch = (void *)0x05A9B648;\r\nconst void * RTTI_BSNavmeshSearchAvailableSpaceDirectional = (void *)0x05CF77F0;\r\nconst void * RTTI_BSNavmeshSearchAvailableSpaceRadius = (void *)0x05CF7908;\r\nconst void * RTTI_BSNavmeshSearchBase = (void *)0x059C2138;\r\nconst void * RTTI_BSNavmeshSearchFilters = (void *)0x05A9B5E8;\r\nconst void * RTTI_BSNavmeshSearchHideFilter = (void *)0x05A9B618;\r\nconst void * RTTI_BSNiNode = (void *)0x059C6CE0;\r\nconst void * RTTI_BSNodeReferences = (void *)0x05CBD5B0;\r\nconst void * RTTI_BSNoise__Add = (void *)0x05CBF408;\r\nconst void * RTTI_BSNoise__Billow = (void *)0x05CBF430;\r\nconst void * RTTI_BSNoise__Crater = (void *)0x05CC0FE0;\r\nconst void * RTTI_BSNoise__Invert = (void *)0x05CBF388;\r\nconst void * RTTI_BSNoise__Perlin = (void *)0x05CBDF30;\r\nconst void * RTTI_BSNoise__Ridged = (void *)0x05CC0E50;\r\nconst void * RTTI_BSNoise__SmoothStep = (void *)0x05CBF3B0;\r\nconst void * RTTI_BSNoise__Subtract = (void *)0x05CBF3E0;\r\nconst void * RTTI_BSNoise__Turbulence = (void *)0x05CC1038;\r\nconst void * RTTI_BSNoise__Voronoi = (void *)0x05CBF480;\r\nconst void * RTTI_BSNonUniformScaleExtraData = (void *)0x059E5778;\r\nconst void * RTTI_BSOfflineRTExtraData = (void *)0x05CC0BB8;\r\nconst void * RTTI_BSOrderedNode = (void *)0x059C6C40;\r\nconst void * RTTI_BSPCDualSenseGamepadDevice = (void *)0x05C9E478;\r\nconst void * RTTI_BSPCGamepadDevice = (void *)0x05C9E678;\r\nconst void * RTTI_BSPCGamepadDeviceHandler = (void *)0x05C9E1E0;\r\nconst void * RTTI_BSPCGamerProfile = (void *)0x05D67DB8;\r\nconst void * RTTI_BSPCKeyboardDevice = (void *)0x05C9E298;\r\nconst void * RTTI_BSPCMouseDevice = (void *)0x05C9E1B8;\r\nconst void * RTTI_BSPCVirtualKeyboardDevice = (void *)0x05C9E210;\r\nconst void * RTTI_BSPageFile__MemoryWriteStorage = (void *)0x05B86C98;\r\nconst void * RTTI_BSPageFile__MultiplexWrite = (void *)0x05D0CFD8;\r\nconst void * RTTI_BSParseCSV__IGetBufferCB = (void *)0x05CBDEB0;\r\nconst void * RTTI_BSParticle = (void *)0x05CE99F0;\r\nconst void * RTTI_BSPathBuilder = (void *)0x059C2098;\r\nconst void * RTTI_BSPathEventManager = (void *)0x05CF80B0;\r\nconst void * RTTI_BSPathSmootherPOVSearch = (void *)0x05CEDCF8;\r\nconst void * RTTI_BSPathing = (void *)0x05A9A498;\r\nconst void * RTTI_BSPathingCellManager = (void *)0x05A9A5D8;\r\nconst void * RTTI_BSPathingRequest = (void *)0x059C2298;\r\nconst void * RTTI_BSPathingRequestPolicies__DestinationArea = (void *)0x05A97108;\r\nconst void * RTTI_BSPathingRequestPolicies__EscortRequest = (void *)0x05A921C8;\r\nconst void * RTTI_BSPathingRequestPolicies__FleeRequestPolicy = (void *)0x05CEDAA0;\r\nconst void * RTTI_BSPathingSearchRayCast = (void *)0x05CFA478;\r\nconst void * RTTI_BSPathingSite = (void *)0x05B9F468;\r\nconst void * RTTI_BSPathingSpace = (void *)0x05A9AEF8;\r\nconst void * RTTI_BSPathingStreamSimpleBufferRead = (void *)0x05CF5D80;\r\nconst void * RTTI_BSPathingStreamSimpleBufferWrite = (void *)0x05A116C0;\r\nconst void * RTTI_BSPathingTraversal = (void *)0x05A1A4F8;\r\nconst void * RTTI_BSPathingTraversalAction = (void *)0x05A195C8;\r\nconst void * RTTI_BSPathingTraversalData = (void *)0x05A19960;\r\nconst void * RTTI_BSPathingTraversalManager = (void *)0x05A1B2B8;\r\nconst void * RTTI_BSPathing__CheckLineOfSightFilter = (void *)0x05A149F8;\r\nconst void * RTTI_BSPathing__DetermineAvailableRadiusAtPositionVisitor = (void *)0x05CEBEB0;\r\nconst void * RTTI_BSPathing__DetermineAvailableRadiusInDirectionVisitor = (void *)0x05CEBF00;\r\nconst void * RTTI_BSPathing__EdgeFoundVisitor = (void *)0x05BB7278;\r\nconst void * RTTI_BSPausableItem = (void *)0x05A99048;\r\nconst void * RTTI_BSPauseRequester = (void *)0x059D5A28;\r\nconst void * RTTI_BSPistonController = (void *)0x05CAC7F8;\r\nconst void * RTTI_BSPlatform__BNetAsyncRequestBase = (void *)0x05D560D0;\r\nconst void * RTTI_BSPlatform__BNetFile__download = (void *)0x05D63980;\r\nconst void * RTTI_BSPlatform__BNetFile__marketplaceDownload = (void *)0x05D639B8;\r\nconst void * RTTI_BSPlatform__BNetImage = (void *)0x059A2BC8;\r\nconst void * RTTI_BSPlatform__BSBethesdaPlatform = (void *)0x05D55E88;\r\nconst void * RTTI_BSPlatform__BSMarketplaceImage = (void *)0x059A2B90;\r\nconst void * RTTI_BSPlatform__BSMarketplaceUploader = (void *)0x05D624D8;\r\nconst void * RTTI_BSPlatform__BSUserContent = (void *)0x05AD7A20;\r\nconst void * RTTI_BSPlatform__BSUserContentCollection = (void *)0x05AE4238;\r\nconst void * RTTI_BSPlatform__BSUserContentOperations = (void *)0x05D61D68;\r\nconst void * RTTI_BSPlatform__BSUserContentSearcherAgent = (void *)0x05D67750;\r\nconst void * RTTI_BSPlayerDistanceCheckController = (void *)0x05BB0F20;\r\nconst void * RTTI_BSPrecomputedNavmeshInfoSearch = (void *)0x05CF75E0;\r\nconst void * RTTI_BSProbeGridVolume = (void *)0x05CBB308;\r\nconst void * RTTI_BSProcGen__DataManager = (void *)0x05CFAD28;\r\nconst void * RTTI_BSProcGen__Resources = (void *)0x05CFB028;\r\nconst void * RTTI_BSProceduralLightningController = (void *)0x05CBE258;\r\nconst void * RTTI_BSProceduralLightningTasklet = (void *)0x05CBE300;\r\nconst void * RTTI_BSProjectedDecal = (void *)0x05CBAC40;\r\nconst void * RTTI_BSRecastModule__BSRecastJob = (void *)0x05CFACC0;\r\nconst void * RTTI_BSReference = (void *)0x05CBD5D8;\r\nconst void * RTTI_BSReflectionProbe = (void *)0x05CBD000;\r\nconst void * RTTI_BSReflection__AnyType = (void *)0x05CFC2A8;\r\nconst void * RTTI_BSReflection__BSFixedStringType = (void *)0x05CFBF80;\r\nconst void * RTTI_BSReflection__BasicType = (void *)0x05CFB890;\r\nconst void * RTTI_BSReflection__ClassType = (void *)0x05CFB8C0;\r\nconst void * RTTI_BSReflection__ConstCStringType = (void *)0x05CFC7B0;\r\nconst void * RTTI_BSReflection__EnumerationType = (void *)0x05CFBF48;\r\nconst void * RTTI_BSReflection__IConstEnumerator = (void *)0x05A4FA78;\r\nconst void * RTTI_BSReflection__IObject = (void *)0x059BD928;\r\nconst void * RTTI_BSReflection__ResourceIDStringConverter = (void *)0x05CFBB58;\r\nconst void * RTTI_BSReflection__Serializer = (void *)0x05CBB330;\r\nconst void * RTTI_BSReflection__TypeManager = (void *)0x05CFBB28;\r\nconst void * RTTI_BSReflection__UIDStringConverter = (void *)0x05CE9A18;\r\nconst void * RTTI_BSRenderSettingsManager = (void *)0x05BA0380;\r\nconst void * RTTI_BSRendererState = (void *)0x05CBBCA8;\r\nconst void * RTTI_BSResource2__CacheBase = (void *)0x059C9790;\r\nconst void * RTTI_BSResource2__EntryBase = (void *)0x059C8D18;\r\nconst void * RTTI_BSResource2__ProxyStream = (void *)0x05CFC870;\r\nconst void * RTTI_BSResource2__ResourceCreateNode = (void *)0x05CFCB18;\r\nconst void * RTTI_BSResourceNiBinaryStream = (void *)0x05CD4090;\r\nconst void * RTTI_BSResourceReloadManager = (void *)0x05CBE818;\r\nconst void * RTTI_BSResourceStreamParser = (void *)0x05CD4060;\r\nconst void * RTTI_BSResourceStreamStorage = (void *)0x05D00A98;\r\nconst void * RTTI_BSResource__Archive2__AsyncReaderStream = (void *)0x05CFE328;\r\nconst void * RTTI_BSResource__Archive2__Index = (void *)0x05CFE270;\r\nconst void * RTTI_BSResource__Archive2__Manager = (void *)0x05CFE200;\r\nconst void * RTTI_BSResource__Archive2__Manager__MemoryCacheLocation = (void *)0x05CFE4B0;\r\nconst void * RTTI_BSResource__Archive2__ReaderStream = (void *)0x05CFE238;\r\nconst void * RTTI_BSResource__ArchiveIDConverter = (void *)0x05CFCD88;\r\nconst void * RTTI_BSResource__AsyncStream = (void *)0x05CFE568;\r\nconst void * RTTI_BSResource__IMemoryFileBuffer = (void *)0x05D00D38;\r\nconst void * RTTI_BSResource__Location = (void *)0x05CFCDC0;\r\nconst void * RTTI_BSResource__LocationTraverser = (void *)0x05CC2740;\r\nconst void * RTTI_BSResource__LooseFileLocation = (void *)0x05D009E8;\r\nconst void * RTTI_BSResource__MemoryFileBuffer = (void *)0x05D00CC8;\r\nconst void * RTTI_BSResource__MemoryFileLocation = (void *)0x05CFE2F0;\r\nconst void * RTTI_BSResource__MemoryFileStream = (void *)0x05D00D00;\r\nconst void * RTTI_BSResource__SDirectory2__IDirectoryIDIterator = (void *)0x05C8A440;\r\nconst void * RTTI_BSResource__SDirectory2__IDirectoryStreamIterator = (void *)0x059C3F00;\r\nconst void * RTTI_BSResource__SDirectory2__ThreadCursor = (void *)0x05CFDF20;\r\nconst void * RTTI_BSResource__Server__Commands__CancelAll = (void *)0x05CB1948;\r\nconst void * RTTI_BSResource__Server__Control__Srv = (void *)0x05CFF460;\r\nconst void * RTTI_BSResource__Server__GraphProcessor = (void *)0x05A5B158;\r\nconst void * RTTI_BSResource__Server__LinearProcessor = (void *)0x059FA930;\r\nconst void * RTTI_BSResource__Server__NodeBase = (void *)0x059C5090;\r\nconst void * RTTI_BSResource__Server__PostProcess__Srv = (void *)0x05CFF6D0;\r\nconst void * RTTI_BSResource__Server__ResourceServerDebug = (void *)0x05CFFD08;\r\nconst void * RTTI_BSResource__Stream = (void *)0x05CFC7E8;\r\nconst void * RTTI_BSResource__StreamBase = (void *)0x05CFC810;\r\nconst void * RTTI_BSRotAccumTransfInterpolator = (void *)0x05D51238;\r\nconst void * RTTI_BSSaveDataSystemUtility = (void *)0x05D67C70;\r\nconst void * RTTI_BSSaveDataSystemUtilityFile = (void *)0x05B86DD8;\r\nconst void * RTTI_BSScaleformFileOpener = (void *)0x05CD5790;\r\nconst void * RTTI_BSScaleformImageLoader = (void *)0x05CD5D28;\r\nconst void * RTTI_BSScaleformManager = (void *)0x05CD3F40;\r\nconst void * RTTI_BSScaleformMovieLoadTask = (void *)0x05CD58C0;\r\nconst void * RTTI_BSScaleformTranslator__ScaleformImpl = (void *)0x05CD5DF0;\r\nconst void * RTTI_BSSceneNode = (void *)0x05CB2710;\r\nconst void * RTTI_BSScript__ByteCode__PackedInstructionStream__InstructionFunctor = (void *)0x05D06BD0;\r\nconst void * RTTI_BSScript__CompiledScriptLoader = (void *)0x05D037A0;\r\nconst void * RTTI_BSScript__ErrorLogger = (void *)0x05C5E258;\r\nconst void * RTTI_BSScript__ICachedErrorMessage = (void *)0x05AD1968;\r\nconst void * RTTI_BSScript__IClientVM = (void *)0x05C63FC8;\r\nconst void * RTTI_BSScript__IComplexType = (void *)0x05D01950;\r\nconst void * RTTI_BSScript__IFunction = (void *)0x05AEB0F8;\r\nconst void * RTTI_BSScript__IHandleReaderWriter = (void *)0x05C5B8D0;\r\nconst void * RTTI_BSScript__ILoader = (void *)0x05C64508;\r\nconst void * RTTI_BSScript__IMemoryPagePolicy = (void *)0x05D03020;\r\nconst void * RTTI_BSScript__IObjectHandlePolicy = (void *)0x05C63F50;\r\nconst void * RTTI_BSScript__IObjectProcessor = (void *)0x05D064E0;\r\nconst void * RTTI_BSScript__IProfilePolicy = (void *)0x05C603C8;\r\nconst void * RTTI_BSScript__ISavePatcherInterface = (void *)0x05C60728;\r\nconst void * RTTI_BSScript__IStackCallbackFunctor = (void *)0x05C63FF8;\r\nconst void * RTTI_BSScript__IStackCallbackSaveInterface = (void *)0x05C63EE0;\r\nconst void * RTTI_BSScript__IStore = (void *)0x05C60DD8;\r\nconst void * RTTI_BSScript__IVMDebugInterface = (void *)0x05D019E8;\r\nconst void * RTTI_BSScript__IVMObjectBindInterface = (void *)0x05D00D70;\r\nconst void * RTTI_BSScript__IVMSaveLoadInterface = (void *)0x05D019B0;\r\nconst void * RTTI_BSScript__IVirtualMachine = (void *)0x05D01980;\r\nconst void * RTTI_BSScript__Internal__AutoPropGetFunction = (void *)0x05D06C28;\r\nconst void * RTTI_BSScript__Internal__AutoPropSetFunction = (void *)0x05D06C68;\r\nconst void * RTTI_BSScript__Internal__CodeTasklet = (void *)0x05D084D8;\r\nconst void * RTTI_BSScript__Internal__FunctionMessageNode = (void *)0x05D0A320;\r\nconst void * RTTI_BSScript__Internal__FunctionMessageProcessor = (void *)0x05D0A360;\r\nconst void * RTTI_BSScript__Internal__IFuncCallQuery = (void *)0x05D05588;\r\nconst void * RTTI_BSScript__Internal__IVMFunctionMessageDispatch = (void *)0x05D05500;\r\nconst void * RTTI_BSScript__Internal__NativeFunctionStub = (void *)0x05D06A80;\r\nconst void * RTTI_BSScript__Internal__RawFuncCallQuery = (void *)0x05D055C0;\r\nconst void * RTTI_BSScript__Internal__ScriptFunction = (void *)0x05D0A7D0;\r\nconst void * RTTI_BSScript__Internal__VirtualMachine = (void *)0x05D05600;\r\nconst void * RTTI_BSScript__LinkerProcessor = (void *)0x05D09830;\r\nconst void * RTTI_BSScript__NF_util__NativeFunctionBase = (void *)0x05AEB068;\r\nconst void * RTTI_BSScript__ObjectBindPolicy = (void *)0x05C63F20;\r\nconst void * RTTI_BSScript__ObjectTypeInfo = (void *)0x05D01760;\r\nconst void * RTTI_BSScript__SimpleAllocMemoryPagePolicy = (void *)0x05D03058;\r\nconst void * RTTI_BSScript__StructTypeInfo = (void *)0x05D025C0;\r\nconst void * RTTI_BSScript__UnlinkedTypes__InstructionStream__InstructionFunctor = (void *)0x05D06AC0;\r\nconst void * RTTI_BSSequence__AnimationEvent = (void *)0x05A4F478;\r\nconst void * RTTI_BSSequence__AnimationTrack = (void *)0x05A4F448;\r\nconst void * RTTI_BSSequence__AnimationVariableTrack = (void *)0x05A4F4A8;\r\nconst void * RTTI_BSSequence__AnimationVectorVariableTrack = (void *)0x05A4F4E0;\r\nconst void * RTTI_BSSequence__BindingEvent = (void *)0x05CB9F40;\r\nconst void * RTTI_BSSequence__BoundPropertyTrack = (void *)0x05A4EB80;\r\nconst void * RTTI_BSSequence__CameraShakeEvent = (void *)0x05A4F558;\r\nconst void * RTTI_BSSequence__CameraShakeStrengthTrack = (void *)0x05A4F590;\r\nconst void * RTTI_BSSequence__CameraShakeTrack = (void *)0x05A4F520;\r\nconst void * RTTI_BSSequence__ColorCurveEvent = (void *)0x05CB4148;\r\nconst void * RTTI_BSSequence__ColorLerpEvent = (void *)0x05CB40C8;\r\nconst void * RTTI_BSSequence__ColorNoiseEvent = (void *)0x05CB4180;\r\nconst void * RTTI_BSSequence__ColorTriggerEvent = (void *)0x05CB4228;\r\nconst void * RTTI_BSSequence__ConsoleScriptEvent = (void *)0x05A4E2C0;\r\nconst void * RTTI_BSSequence__CullEvent = (void *)0x05A4F838;\r\nconst void * RTTI_BSSequence__DissolveEvent = (void *)0x05A4F180;\r\nconst void * RTTI_BSSequence__DissolveFrequencyScaleTrack = (void *)0x05A4F248;\r\nconst void * RTTI_BSSequence__DissolveOffsetTrack = (void *)0x05A4F1B0;\r\nconst void * RTTI_BSSequence__DissolveTrack = (void *)0x059D9F28;\r\nconst void * RTTI_BSSequence__Event = (void *)0x05A4F978;\r\nconst void * RTTI_BSSequence__ExplosionObjectSpawn = (void *)0x05A4E050;\r\nconst void * RTTI_BSSequence__Float2CurveEvent = (void *)0x05CB4298;\r\nconst void * RTTI_BSSequence__Float2LerpEvent = (void *)0x05CB42D0;\r\nconst void * RTTI_BSSequence__Float2TriggerEvent = (void *)0x05CB9C78;\r\nconst void * RTTI_BSSequence__FloatCurveEvent = (void *)0x05CB9BB8;\r\nconst void * RTTI_BSSequence__FloatLerpEvent = (void *)0x05CB9CE8;\r\nconst void * RTTI_BSSequence__FloatNoiseEvent = (void *)0x05CB9BF0;\r\nconst void * RTTI_BSSequence__FloatTriggerEvent = (void *)0x05CB9CB0;\r\nconst void * RTTI_BSSequence__ITimeMultiplierProvider = (void *)0x05A50200;\r\nconst void * RTTI_BSSequence__ImageSpaceLifetimeEvent = (void *)0x05A4EC50;\r\nconst void * RTTI_BSSequence__ImageSpaceStrengthTrack = (void *)0x05A4EC90;\r\nconst void * RTTI_BSSequence__ImageSpaceTrack = (void *)0x05A4EBB8;\r\nconst void * RTTI_BSSequence__ImpactEffectEvent = (void *)0x05A4EB48;\r\nconst void * RTTI_BSSequence__ImpactEffectTrack = (void *)0x059DA0E8;\r\nconst void * RTTI_BSSequence__LightColorTrack = (void *)0x05A4EE60;\r\nconst void * RTTI_BSSequence__LightEffectDirectReferenceTrack = (void *)0x059D9940;\r\nconst void * RTTI_BSSequence__LightEffectReferenceTrack = (void *)0x059D98D0;\r\nconst void * RTTI_BSSequence__LightEffectTrack = (void *)0x05A4ED28;\r\nconst void * RTTI_BSSequence__LightIntensityTrack = (void *)0x05A4EE28;\r\nconst void * RTTI_BSSequence__LightLensFlareVisiblityTrack = (void *)0x05A4EE98;\r\nconst void * RTTI_BSSequence__LightRadiusTrack = (void *)0x05A4ED98;\r\nconst void * RTTI_BSSequence__LightSpawnEvent = (void *)0x05A4ED60;\r\nconst void * RTTI_BSSequence__LightTrackBase = (void *)0x059D9910;\r\nconst void * RTTI_BSSequence__LoopMarker = (void *)0x05CB4098;\r\nconst void * RTTI_BSSequence__MaterialFlipbookIndexGeneratorEvent = (void *)0x05A4F100;\r\nconst void * RTTI_BSSequence__MaterialFlipbookIndexTrack = (void *)0x05A4F058;\r\nconst void * RTTI_BSSequence__MaterialPropertyTrack = (void *)0x05A4EFB8;\r\nconst void * RTTI_BSSequence__MaterialTrack = (void *)0x05A4EF18;\r\nconst void * RTTI_BSSequence__Mediator = (void *)0x059D95E8;\r\nconst void * RTTI_BSSequence__NamedSequenceMap = (void *)0x059D9868;\r\nconst void * RTTI_BSSequence__NodeTrackBase = (void *)0x059D98A0;\r\nconst void * RTTI_BSSequence__NoteEvent = (void *)0x05CB9F10;\r\nconst void * RTTI_BSSequence__NoteTrack = (void *)0x05CB9F70;\r\nconst void * RTTI_BSSequence__Object = (void *)0x059D9A18;\r\nconst void * RTTI_BSSequence__ObjectAttachmentSubnodeTrack = (void *)0x05A4F2F8;\r\nconst void * RTTI_BSSequence__ObjectAttachmentTrack = (void *)0x05A4F288;\r\nconst void * RTTI_BSSequence__ObjectSpawnEvent = (void *)0x05A4F2C0;\r\nconst void * RTTI_BSSequence__ObjectSpawnTrack = (void *)0x059DA070;\r\nconst void * RTTI_BSSequence__ParticleEffectReferenceTrack = (void *)0x05A4E100;\r\nconst void * RTTI_BSSequence__ParticleEffectTrack = (void *)0x05A4E140;\r\nconst void * RTTI_BSSequence__ParticleEvent = (void *)0x05A4E178;\r\nconst void * RTTI_BSSequence__ParticleMaterialPropertyTrack = (void *)0x05A4E250;\r\nconst void * RTTI_BSSequence__ParticleParameterTrack = (void *)0x05A4E1A8;\r\nconst void * RTTI_BSSequence__PlaySubSequenceEvent = (void *)0x05A4EB10;\r\nconst void * RTTI_BSSequence__PositionTrack = (void *)0x05A4F7A8;\r\nconst void * RTTI_BSSequence__PositionTrack__TrackState = (void *)0x059DA188;\r\nconst void * RTTI_BSSequence__ProjectedDecalAlphaTrack = (void *)0x05A4F668;\r\nconst void * RTTI_BSSequence__ProjectedDecalSpawnEvent = (void *)0x05A4F628;\r\nconst void * RTTI_BSSequence__ProjectedDecalTrack = (void *)0x059DA150;\r\nconst void * RTTI_BSSequence__PropertyControllerBase = (void *)0x05CB9E20;\r\nconst void * RTTI_BSSequence__PropertyControllerEvent = (void *)0x05CB9ED0;\r\nconst void * RTTI_BSSequence__PropertyLerpControllerEvent = (void *)0x05CB9E90;\r\nconst void * RTTI_BSSequence__ReferenceSpawnEvent = (void *)0x05A4E088;\r\nconst void * RTTI_BSSequence__RevertMaterialOverrideEvent = (void *)0x05A4EED8;\r\nconst void * RTTI_BSSequence__RotationTrack = (void *)0x05A4F7D8;\r\nconst void * RTTI_BSSequence__RotationTrack__TrackState = (void *)0x059DA0A8;\r\nconst void * RTTI_BSSequence__ScaleTrack = (void *)0x05A4F808;\r\nconst void * RTTI_BSSequence__SceneNodeTrack = (void *)0x059DA120;\r\nconst void * RTTI_BSSequence__ScriptTrack = (void *)0x05A4E290;\r\nconst void * RTTI_BSSequence__SetPropertyEvent = (void *)0x05CB9E58;\r\nconst void * RTTI_BSSequence__SoundEvent = (void *)0x05A4E328;\r\nconst void * RTTI_BSSequence__SoundTrack = (void *)0x05A4E2F8;\r\nconst void * RTTI_BSSequence__SubSequenceTrack = (void *)0x05A4F868;\r\nconst void * RTTI_BSSequence__Track = (void *)0x059D9988;\r\nconst void * RTTI_BSSequence__TrackGroup = (void *)0x059D99B0;\r\nconst void * RTTI_BSSequence__TriggerMaterialSwap = (void *)0x05A4F148;\r\nconst void * RTTI_BSSequence__VectorCurveEvent = (void *)0x05CB4260;\r\nconst void * RTTI_BSSequence__VectorLerpEvent = (void *)0x05CB41F0;\r\nconst void * RTTI_BSSequence__VectorNoiseEvent = (void *)0x05CB41B8;\r\nconst void * RTTI_BSSequence__VectorTriggerEvent = (void *)0x05CB4348;\r\nconst void * RTTI_BSSequence__VisibilityTrack = (void *)0x05A4F710;\r\nconst void * RTTI_BSService__JobSite = (void *)0x05B8A6E8;\r\nconst void * RTTI_BSShadowLight = (void *)0x059965B0;\r\nconst void * RTTI_BSShapeConstructor = (void *)0x05AA63A0;\r\nconst void * RTTI_BSSimpleScaleController = (void *)0x05BB0F58;\r\nconst void * RTTI_BSSkin__BoneData = (void *)0x05D51EC8;\r\nconst void * RTTI_BSSkin__Instance = (void *)0x05D51EF0;\r\nconst void * RTTI_BSSpatialGraph = (void *)0x05A1CFB8;\r\nconst void * RTTI_BSSpatialGraphInfo = (void *)0x05CED508;\r\nconst void * RTTI_BSSpatialGraphManager = (void *)0x05A1DC98;\r\nconst void * RTTI_BSSpatialGraphSearch = (void *)0x059C1DC0;\r\nconst void * RTTI_BSSplatterExtraData = (void *)0x05A11660;\r\nconst void * RTTI_BSSteamSysInfoSystemUtility = (void *)0x05D67A18;\r\nconst void * RTTI_BSStorage = (void *)0x059E5300;\r\nconst void * RTTI_BSStream = (void *)0x05A85920;\r\nconst void * RTTI_BSStreamParserData = (void *)0x05CD40C0;\r\nconst void * RTTI_BSStreaming__DataStorage = (void *)0x05D0D118;\r\nconst void * RTTI_BSSubBehaviorGraphSingleton = (void *)0x05C9B7E0;\r\nconst void * RTTI_BSSubBehaviorGraphSingletonData = (void *)0x05C9B818;\r\nconst void * RTTI_BSSubBehaviorGraphSingletonDataAddToDeferredDeleterTask = (void *)0x05C9B930;\r\nconst void * RTTI_BSSubSceneNode = (void *)0x05CBCFD8;\r\nconst void * RTTI_BSSysInfoSystemUtility = (void *)0x05D67A50;\r\nconst void * RTTI_BSSystemFileAsyncFunctor = (void *)0x05D00B58;\r\nconst void * RTTI_BSSystemFileStorage = (void *)0x05D0D0E8;\r\nconst void * RTTI_BSSystemFileStreamer__HeapData = (void *)0x05D0B508;\r\nconst void * RTTI_BSSystemFileStreamer__PhysicalRequest = (void *)0x05D0B430;\r\nconst void * RTTI_BSSystemFileStreamer__PinnedData = (void *)0x05D0B540;\r\nconst void * RTTI_BSSystemFileStreamer__Streamer = (void *)0x05D0B3A0;\r\nconst void * RTTI_BSSystemFileStreamer__Streamer__ControlThread = (void *)0x05D0B4C0;\r\nconst void * RTTI_BSSystemFileStreamer__Streamer__StreamerThread = (void *)0x05D0B470;\r\nconst void * RTTI_BSSystemUtilitiesStrings = (void *)0x05D68180;\r\nconst void * RTTI_BSSystemUtility = (void *)0x05D67A80;\r\nconst void * RTTI_BSTArrayBase__IAllocatorFunctor = (void *)0x059BF300;\r\nconst void * RTTI_BSTEventDetail__SourceBase = (void *)0x059BDB90;\r\nconst void * RTTI_BSTGlobalEvent = (void *)0x05C9CD78;\r\nconst void * RTTI_BSTSmartPointerPrivate__HandleManagerBase = (void *)0x059D5A50;\r\nconst void * RTTI_BSTableCurve = (void *)0x05D68540;\r\nconst void * RTTI_BSTaskJobber = (void *)0x05CBE230;\r\nconst void * RTTI_BSTaskJobber__Task = (void *)0x05A99340;\r\nconst void * RTTI_BSTaskThread = (void *)0x059FA4C0;\r\nconst void * RTTI_BSTaskletGroupData = (void *)0x05D0D1A0;\r\nconst void * RTTI_BSTaskletManager = (void *)0x05D0D148;\r\nconst void * RTTI_BSTempEffect = (void *)0x05A983D8;\r\nconst void * RTTI_BSTempEffectDebris = (void *)0x05A985F8;\r\nconst void * RTTI_BSTempEffectGeometryDecal = (void *)0x05A98688;\r\nconst void * RTTI_BSTempEffectParticle = (void *)0x05A986F0;\r\nconst void * RTTI_BSTempEffectSPG = (void *)0x05A98808;\r\nconst void * RTTI_BSTempEffectScreenSpaceDecal = (void *)0x05A98720;\r\nconst void * RTTI_BSTempEffectWeaponBlood = (void *)0x05A98830;\r\nconst void * RTTI_BSTerrainEffect = (void *)0x05A989F0;\r\nconst void * RTTI_BSTextureStreamer__ArchiveLayer = (void *)0x05CBC818;\r\nconst void * RTTI_BSTextureStreamer__LoadQueueService = (void *)0x05CBCC00;\r\nconst void * RTTI_BSTextureStreamer__Manager = (void *)0x05CBC888;\r\nconst void * RTTI_BSTextureStreamer__ManagerBase = (void *)0x05CBC850;\r\nconst void * RTTI_BSTextureStreamer__ManagerServiceFramework = (void *)0x05CBCC40;\r\nconst void * RTTI_BSTextureStreamer__TextureArchiveIDConverter = (void *)0x05CBC490;\r\nconst void * RTTI_BSTextureStreamer__TextureLoad = (void *)0x05CC0C38;\r\nconst void * RTTI_BSThread = (void *)0x059FA4A0;\r\nconst void * RTTI_BSThreadStagesManager = (void *)0x05D0C2F0;\r\nconst void * RTTI_BSTransformExtra = (void *)0x05A82F10;\r\nconst void * RTTI_BSTreadTransfInterpolator = (void *)0x05D51270;\r\nconst void * RTTI_BSUIExternalTexture = (void *)0x05CD4D10;\r\nconst void * RTTI_BSUserActivitiesSystemUtility = (void *)0x05D68050;\r\nconst void * RTTI_BSVMFileFenceNode = (void *)0x05A03120;\r\nconst void * RTTI_BSVMLoadNode = (void *)0x05A030F8;\r\nconst void * RTTI_BSVMPostProcessNode = (void *)0x05A03090;\r\nconst void * RTTI_BSValueNode = (void *)0x05CBD4A0;\r\nconst void * RTTI_BSWArray = (void *)0x05CC0ED0;\r\nconst void * RTTI_BSWeakReferenceNode = (void *)0x05CB25D0;\r\nconst void * RTTI_BSWin32ExceptionHandler = (void *)0x05C9F0C8;\r\nconst void * RTTI_BSWinPCAwardsSystemUtility = (void *)0x05D67E08;\r\nconst void * RTTI_BSWinPCGameDataSystemUtility = (void *)0x05D67CC8;\r\nconst void * RTTI_BSWinPCGameDataSystemUtility__CCallbackInternal_OnDLCInstalled = (void *)0x05D67D00;\r\nconst void * RTTI_BSWinPCSaveDataSystemUtility = (void *)0x05D67C38;\r\nconst void * RTTI_BSWinPCSystemUtility = (void *)0x05D67AA8;\r\nconst void * RTTI_BSWinPCSystemUtility__ConnectionStatusManager = (void *)0x05D67AE0;\r\nconst void * RTTI_BSXFlags = (void *)0x05CBB2E8;\r\nconst void * RTTI_BShkbHkxDB__QueuedHandles = (void *)0x05A80830;\r\nconst void * RTTI_BShkbUtils__GraphInspectionFunctor = (void *)0x05C8AEB8;\r\nconst void * RTTI_BackgroundProcessNode = (void *)0x059FA8C8;\r\nconst void * RTTI_BackgroundProcessThread = (void *)0x059FA578;\r\nconst void * RTTI_BanishEffect = (void *)0x05B80C30;\r\nconst void * RTTI_BarrierProjectile = (void *)0x05BD1538;\r\nconst void * RTTI_BarterMenu = (void *)0x05B2E3F0;\r\nconst void * RTTI_BarterMenu_BuyItem = (void *)0x05B2E768;\r\nconst void * RTTI_BarterMenu_CloseMenu = (void *)0x05B2E7E8;\r\nconst void * RTTI_BarterMenu_HideModel = (void *)0x05B2E868;\r\nconst void * RTTI_BarterMenu_LoadModel = (void *)0x05B2E8E8;\r\nconst void * RTTI_BarterMenu_SellItem = (void *)0x05B2E6F0;\r\nconst void * RTTI_BarterMenu_SetMouseOverModel = (void *)0x05B2E458;\r\nconst void * RTTI_BarterMenu_ShowFailureMessage = (void *)0x05B2E668;\r\nconst void * RTTI_BarterMenu_ViewedItem = (void *)0x05B2E5E8;\r\nconst void * RTTI_BarterMenu__BarterMenuEventShuttle = (void *)0x05B2E088;\r\nconst void * RTTI_BaseFormComponent = (void *)0x059BDB68;\r\nconst void * RTTI_BaseLightAnimData = (void *)0x059E6488;\r\nconst void * RTTI_BeamProjectile = (void *)0x05BD1560;\r\nconst void * RTTI_BedEnterHandler = (void *)0x05BCE490;\r\nconst void * RTTI_BedFurnitureExitHandler = (void *)0x05BCE460;\r\nconst void * RTTI_BleedoutCameraState = (void *)0x05C48970;\r\nconst void * RTTI_BlendNode = (void *)0x05C996C0;\r\nconst void * RTTI_BlendNodeInstance = (void *)0x05C996E0;\r\nconst void * RTTI_BlendTree = (void *)0x05C8B468;\r\nconst void * RTTI_BlendTreeInstance = (void *)0x05C988D8;\r\nconst void * RTTI_Blueprints__Blueprint = (void *)0x059E5E18;\r\nconst void * RTTI_Blueprints__BlueprintMainStatusHandler = (void *)0x059E5CF0;\r\nconst void * RTTI_Blueprints__BlueprintVariant = (void *)0x05992408;\r\nconst void * RTTI_BodyCollisionsTask = (void *)0x0598E380;\r\nconst void * RTTI_BodyEffects__Effect = (void *)0x059C6CB0;\r\nconst void * RTTI_BodyEffects__ResourceVisualizationEffect = (void *)0x059C6BC8;\r\nconst void * RTTI_BodyEffects__ScanlinesEffect = (void *)0x059C6C08;\r\nconst void * RTTI_BoneConstraint = (void *)0x05C990F0;\r\nconst void * RTTI_BoneConstraintInstance = (void *)0x05C99118;\r\nconst void * RTTI_BoneModifierData = (void *)0x059D6180;\r\nconst void * RTTI_BoneModifierExtra = (void *)0x05A43220;\r\nconst void * RTTI_BoneModifierInstance = (void *)0x059D6150;\r\nconst void * RTTI_BookMenu = (void *)0x05C48BC0;\r\nconst void * RTTI_BookMenu__BookData = (void *)0x05C48B58;\r\nconst void * RTTI_BookMenu__BookMenuUIDataEventShuttle = (void *)0x05C48BE0;\r\nconst void * RTTI_BoundaryMenu = (void *)0x05AE1DC8;\r\nconst void * RTTI_BoundaryMenu_FastTravel = (void *)0x05AE1D98;\r\nconst void * RTTI_BoundaryMenu_ShowMap = (void *)0x05AE1E38;\r\nconst void * RTTI_BowZoomStartHandler = (void *)0x05BCE628;\r\nconst void * RTTI_BowZoomStopHandler = (void *)0x05BCF448;\r\nconst void * RTTI_ButtonEvent = (void *)0x05C9D6E8;\r\nconst void * RTTI_CCallbackBase = (void *)0x05D67CA0;\r\nconst void * RTTI_CPUCaptureHandler = (void *)0x05C53E10;\r\nconst void * RTTI_CalcContainerWeight = (void *)0x05A6F9D0;\r\nconst void * RTTI_Calendar = (void *)0x05B8D1C8;\r\nconst void * RTTI_CalmEffect = (void *)0x05B80C08;\r\nconst void * RTTI_CameraOverrideStartHandler = (void *)0x05BCE948;\r\nconst void * RTTI_CameraOverrideStopHandler = (void *)0x05BCE5A0;\r\nconst void * RTTI_CameraShakeHandler = (void *)0x05BCF270;\r\nconst void * RTTI_CameraShake__ShakeData = (void *)0x05AA3928;\r\nconst void * RTTI_CameraZoomHandler = (void *)0x05C53E60;\r\nconst void * RTTI_Camera__DebugCinematicCamera = (void *)0x05AD2010;\r\nconst void * RTTI_Camera__DebugFollowCamera = (void *)0x05AD20A8;\r\nconst void * RTTI_Camera__DebugFreeCamera = (void *)0x05AD20D8;\r\nconst void * RTTI_Camera__DebugModule = (void *)0x05AD2138;\r\nconst void * RTTI_Camera__DebugOrbitalCamera = (void *)0x05AD2108;\r\nconst void * RTTI_Camera__DebugTargetCamera = (void *)0x05AD2078;\r\nconst void * RTTI_Camera__IBaseModule = (void *)0x05AD1F68;\r\nconst void * RTTI_Camera__IDebugCamera = (void *)0x05AD2048;\r\nconst void * RTTI_Camera__InteriorModule = (void *)0x05AD2168;\r\nconst void * RTTI_Camera__Manager = (void *)0x05AD1F10;\r\nconst void * RTTI_Camera__PlayerModule = (void *)0x05AD1F38;\r\nconst void * RTTI_Camera__SpaceModule = (void *)0x05AD1EE0;\r\nconst void * RTTI_CapacityValueModifierEffect = (void *)0x05B7EE20;\r\nconst void * RTTI_CellHandleManager = (void *)0x059D5BD0;\r\nconst void * RTTI_CellHfCollision = (void *)0x059EADE0;\r\nconst void * RTTI_ChainExplosion = (void *)0x05B8D440;\r\nconst void * RTTI_ChairEnterHandler = (void *)0x05BCE4E8;\r\nconst void * RTTI_ChairFurnitureExitHandler = (void *)0x05BCE430;\r\nconst void * RTTI_ChangeAnimArchetypeHandler = (void *)0x05BCEEB8;\r\nconst void * RTTI_CharGen_BrowChange = (void *)0x05B576A8;\r\nconst void * RTTI_CharGen_BrowColorChange = (void *)0x05B57538;\r\nconst void * RTTI_CharGen_CancelTextEntry = (void *)0x05B57CD8;\r\nconst void * RTTI_CharGen_CloseMenu = (void *)0x05B57FB8;\r\nconst void * RTTI_CharGen_CyclePronoun = (void *)0x05B57238;\r\nconst void * RTTI_CharGen_DirtScarsEtcChange = (void *)0x05B57838;\r\nconst void * RTTI_CharGen_EndBodyChange = (void *)0x05B55AE0;\r\nconst void * RTTI_CharGen_EndTextEntry = (void *)0x05B57C60;\r\nconst void * RTTI_CharGen_EyeColorChange = (void *)0x05B57630;\r\nconst void * RTTI_CharGen_FacialHairChange = (void *)0x05B57438;\r\nconst void * RTTI_CharGen_FacialHairColorChange = (void *)0x05B574B8;\r\nconst void * RTTI_CharGen_HairChange = (void *)0x05B57728;\r\nconst void * RTTI_CharGen_HairColorChange = (void *)0x05B573B8;\r\nconst void * RTTI_CharGen_HeadpartPlusSelectorChange = (void *)0x05B57B58;\r\nconst void * RTTI_CharGen_HeadpartPresetChange = (void *)0x05B57E50;\r\nconst void * RTTI_CharGen_JewelryChange = (void *)0x05B55D58;\r\nconst void * RTTI_CharGen_JewelryColorChange = (void *)0x05B559D8;\r\nconst void * RTTI_CharGen_MakeupChange = (void *)0x05B55578;\r\nconst void * RTTI_CharGen_MarkingsChange = (void *)0x05B55600;\r\nconst void * RTTI_CharGen_PostBlendColorOptionChange = (void *)0x05B558B0;\r\nconst void * RTTI_CharGen_PostBlendFaceChange = (void *)0x05B55820;\r\nconst void * RTTI_CharGen_PostBlendIntensityChange = (void *)0x05B55940;\r\nconst void * RTTI_CharGen_PresetChange = (void *)0x05B57DD8;\r\nconst void * RTTI_CharGen_RollOffLocomotion = (void *)0x05B55BD8;\r\nconst void * RTTI_CharGen_RollOnLocomotion = (void *)0x05B55F58;\r\nconst void * RTTI_CharGen_RotatePaperdoll = (void *)0x05B55ED8;\r\nconst void * RTTI_CharGen_SetAdditionalSlider = (void *)0x05B55B58;\r\nconst void * RTTI_CharGen_SetBackground = (void *)0x05B575C0;\r\nconst void * RTTI_CharGen_SetBlockInputUnderPopup = (void *)0x05B55790;\r\nconst void * RTTI_CharGen_SetBodyValues = (void *)0x05B57A50;\r\nconst void * RTTI_CharGen_SetCameraPosition = (void *)0x05B57AD8;\r\nconst void * RTTI_CharGen_SetPronoun = (void *)0x05B572B8;\r\nconst void * RTTI_CharGen_SetSex = (void *)0x05B57ED8;\r\nconst void * RTTI_CharGen_SetSlider = (void *)0x05B57F50;\r\nconst void * RTTI_CharGen_SetTrait = (void *)0x05B57940;\r\nconst void * RTTI_CharGen_ShowChooseBackgroundMessage = (void *)0x05B579B8;\r\nconst void * RTTI_CharGen_ShowPlayerRenameMessage = (void *)0x05B57D58;\r\nconst void * RTTI_CharGen_SkintoneChange = (void *)0x05B577A8;\r\nconst void * RTTI_CharGen_StartBodyChange = (void *)0x05B55A58;\r\nconst void * RTTI_CharGen_StartTextEntry = (void *)0x05B57BE8;\r\nconst void * RTTI_CharGen_SwitchBodyType = (void *)0x05B55E60;\r\nconst void * RTTI_CharGen_SwitchLocomotion = (void *)0x05B55DD8;\r\nconst void * RTTI_CharGen_TeethChange = (void *)0x05B571C0;\r\nconst void * RTTI_CharGen_TeethRollOff = (void *)0x05B55CD8;\r\nconst void * RTTI_CharGen_TeethRollOn = (void *)0x05B55C58;\r\nconst void * RTTI_CharGen_ToggleMarking = (void *)0x05B578B8;\r\nconst void * RTTI_CharGen_TogglePreviewHabSuit = (void *)0x05B57338;\r\nconst void * RTTI_CharacterCollisionHandler = (void *)0x05BB6B88;\r\nconst void * RTTI_CharacterCollisionMessagePlayerAdapter = (void *)0x05B99130;\r\nconst void * RTTI_CharacterEvent = (void *)0x05C9D4F8;\r\nconst void * RTTI_ChargenMenu = (void *)0x05B55100;\r\nconst void * RTTI_ChargenMenu__ChargenMenuEventShuttle = (void *)0x05B54738;\r\nconst void * RTTI_CheckGoalReachedFunctor = (void *)0x05CF3738;\r\nconst void * RTTI_CheckLineOfSightFilterMisc = (void *)0x05B808A0;\r\nconst void * RTTI_CheckParameterReachedFunctor = (void *)0x05CF36D0;\r\nconst void * RTTI_CheckStoppedMovingFunctor = (void *)0x05CF3768;\r\nconst void * RTTI_ClientBIMetrics__CombatHitMetricsI = (void *)0x05B82868;\r\nconst void * RTTI_ClientBIMetrics__HeartBeat__EventSink = (void *)0x059C5FE0;\r\nconst void * RTTI_ClientBIMetrics__Performance__EventSink = (void *)0x059C66F8;\r\nconst void * RTTI_ClientBIMetrics__ShipCombatHitMetricsBPSImp = (void *)0x05B827E0;\r\nconst void * RTTI_ClientBIPrebuiltHTTPSPostPrivate__CurlHTTPSPost = (void *)0x059C6A60;\r\nconst void * RTTI_CloakEffect = (void *)0x05B7EE58;\r\nconst void * RTTI_ClonePoseNode = (void *)0x05C95E08;\r\nconst void * RTTI_ClonePoseNodeInstance = (void *)0x05C95DB0;\r\nconst void * RTTI_CloudSaveWriter = (void *)0x05B86D38;\r\nconst void * RTTI_CombatAcquireSearchDebugData = (void *)0x05BF22A0;\r\nconst void * RTTI_CombatAimController = (void *)0x05BD4F90;\r\nconst void * RTTI_CombatAlignRollPathController = (void *)0x05AC4500;\r\nconst void * RTTI_CombatAnimatedPath = (void *)0x05C2FBB8;\r\nconst void * RTTI_CombatApproachTargetPathController = (void *)0x05AC4FF0;\r\nconst void * RTTI_CombatAreaHoldPosition = (void *)0x05BD5958;\r\nconst void * RTTI_CombatAreaReference = (void *)0x05BD5928;\r\nconst void * RTTI_CombatAreaShape = (void *)0x05AC68C0;\r\nconst void * RTTI_CombatAreaStandard = (void *)0x05BD5988;\r\nconst void * RTTI_CombatBarrelRollPathController = (void *)0x05AC3BC0;\r\nconst void * RTTI_CombatBehaviorAttackFromCover = (void *)0x05C2CD78;\r\nconst void * RTTI_CombatBehaviorBlindFireFromCover = (void *)0x05C2CA00;\r\nconst void * RTTI_CombatBehaviorContextCover = (void *)0x05C2C880;\r\nconst void * RTTI_CombatBehaviorContextGrenade = (void *)0x05AB99A8;\r\nconst void * RTTI_CombatBehaviorMoveInCover = (void *)0x05C2C800;\r\nconst void * RTTI_CombatBehaviorProvideSuppressiveFire = (void *)0x05C1D1D0;\r\nconst void * RTTI_CombatBehaviorResource = (void *)0x05BF1728;\r\nconst void * RTTI_CombatBehaviorShipAcquire = (void *)0x05AC5860;\r\nconst void * RTTI_CombatBehaviorShipAttackManeuver = (void *)0x05AC5990;\r\nconst void * RTTI_CombatBehaviorShipBarrelRoll = (void *)0x05AC57C0;\r\nconst void * RTTI_CombatBehaviorShipBoost = (void *)0x05AC5890;\r\nconst void * RTTI_CombatBehaviorShipBreak = (void *)0x05AC57F8;\r\nconst void * RTTI_CombatBehaviorShipBreakStalemate = (void *)0x05AC5A28;\r\nconst void * RTTI_CombatBehaviorShipCut = (void *)0x05AC5790;\r\nconst void * RTTI_CombatBehaviorShipDirectAttack = (void *)0x05AC5B38;\r\nconst void * RTTI_CombatBehaviorShipDisengage = (void *)0x05AC5BE0;\r\nconst void * RTTI_CombatBehaviorShipLeadTurn = (void *)0x05AC5920;\r\nconst void * RTTI_CombatBehaviorShipLurk = (void *)0x05AC59F8;\r\nconst void * RTTI_CombatBehaviorShipOrbitCombatArea = (void *)0x05AC5BA8;\r\nconst void * RTTI_CombatBehaviorShipOrbitTarget = (void *)0x05AC5B70;\r\nconst void * RTTI_CombatBehaviorShipPass = (void *)0x05AC59C8;\r\nconst void * RTTI_CombatBehaviorShipPathDestinationRef = (void *)0x05AC5198;\r\nconst void * RTTI_CombatBehaviorShipPursue = (void *)0x05AC5AD8;\r\nconst void * RTTI_CombatBehaviorShipScissors = (void *)0x05AC5758;\r\nconst void * RTTI_CombatBehaviorShipSliceback = (void *)0x05AC58C0;\r\nconst void * RTTI_CombatBehaviorShipSlideDodge = (void *)0x05AC5A60;\r\nconst void * RTTI_CombatBehaviorShipSlideTurn = (void *)0x05AC5958;\r\nconst void * RTTI_CombatBehaviorShipStationaryTracking = (void *)0x05AC5A98;\r\nconst void * RTTI_CombatBehaviorShipStrafe = (void *)0x05AC5C18;\r\nconst void * RTTI_CombatBehaviorShipStrafeTurn = (void *)0x05AC5828;\r\nconst void * RTTI_CombatBehaviorShipTargetingModeAutopilot = (void *)0x05AACEE8;\r\nconst void * RTTI_CombatBehaviorShipTurn = (void *)0x05AC5B08;\r\nconst void * RTTI_CombatBehaviorTree = (void *)0x05AA9C88;\r\nconst void * RTTI_CombatBehaviorTreeAcquireObject = (void *)0x05BF18E8;\r\nconst void * RTTI_CombatBehaviorTreeAction = (void *)0x05BF2578;\r\nconst void * RTTI_CombatBehaviorTreeActionEquipmentSelector = (void *)0x05BF25B0;\r\nconst void * RTTI_CombatBehaviorTreeAvoidThreat = (void *)0x05BF43D0;\r\nconst void * RTTI_CombatBehaviorTreeBlock = (void *)0x05BF7030;\r\nconst void * RTTI_CombatBehaviorTreeBow = (void *)0x05C1C688;\r\nconst void * RTTI_CombatBehaviorTreeChargingCloseMovement = (void *)0x05AB6BD0;\r\nconst void * RTTI_CombatBehaviorTreeChargingMovement = (void *)0x05AB6AB0;\r\nconst void * RTTI_CombatBehaviorTreeCheckUnreachableTarget = (void *)0x05C1AA48;\r\nconst void * RTTI_CombatBehaviorTreeCloseMovement = (void *)0x05BF9330;\r\nconst void * RTTI_CombatBehaviorTreeCombat = (void *)0x05AC67F0;\r\nconst void * RTTI_CombatBehaviorTreeCreateContextNodeBase = (void *)0x05AA9BB0;\r\nconst void * RTTI_CombatBehaviorTreeFindAttackLocation = (void *)0x05BFE1E0;\r\nconst void * RTTI_CombatBehaviorTreeFindValidLocation = (void *)0x05C18D40;\r\nconst void * RTTI_CombatBehaviorTreeFlankingMovement = (void *)0x05C04EB0;\r\nconst void * RTTI_CombatBehaviorTreeFlee = (void *)0x05C0F9B0;\r\nconst void * RTTI_CombatBehaviorTreeFlight = (void *)0x05C11750;\r\nconst void * RTTI_CombatBehaviorTreeGrenade = (void *)0x05AB94C0;\r\nconst void * RTTI_CombatBehaviorTreeGun = (void *)0x05ABA058;\r\nconst void * RTTI_CombatBehaviorTreeHide = (void *)0x05C09C80;\r\nconst void * RTTI_CombatBehaviorTreeLinkNode = (void *)0x05BF1790;\r\nconst void * RTTI_CombatBehaviorTreeLowCombat = (void *)0x05C120B0;\r\nconst void * RTTI_CombatBehaviorTreeMagic = (void *)0x05C12688;\r\nconst void * RTTI_CombatBehaviorTreeMelee = (void *)0x05C12E78;\r\nconst void * RTTI_CombatBehaviorTreeMovement = (void *)0x05C1BE70;\r\nconst void * RTTI_CombatBehaviorTreeMovementRequest = (void *)0x05AB90C8;\r\nconst void * RTTI_CombatBehaviorTreeNode = (void *)0x05AA9BF0;\r\nconst void * RTTI_CombatBehaviorTreePlayerShipCombat = (void *)0x05AC6858;\r\nconst void * RTTI_CombatBehaviorTreeRangedMovement = (void *)0x05C1CEF0;\r\nconst void * RTTI_CombatBehaviorTreeRetreatClose = (void *)0x05ABAD38;\r\nconst void * RTTI_CombatBehaviorTreeRetreatRanged = (void *)0x05ABABD8;\r\nconst void * RTTI_CombatBehaviorTreeReturnToCombatArea = (void *)0x05C1AA08;\r\nconst void * RTTI_CombatBehaviorTreeRootNode = (void *)0x05BF1758;\r\nconst void * RTTI_CombatBehaviorTreeSearch = (void *)0x05C28D50;\r\nconst void * RTTI_CombatBehaviorTreeShipAction = (void *)0x05ABDD18;\r\nconst void * RTTI_CombatBehaviorTreeShipActionEquipmentSelector = (void *)0x05ABDD50;\r\nconst void * RTTI_CombatBehaviorTreeShipCombat = (void *)0x05AC6820;\r\nconst void * RTTI_CombatBehaviorTreeShipDetection = (void *)0x05AA9CB8;\r\nconst void * RTTI_CombatBehaviorTreeShipFlee = (void *)0x05ABE230;\r\nconst void * RTTI_CombatBehaviorTreeShipManeuvers = (void *)0x05AC5490;\r\nconst void * RTTI_CombatBehaviorTreeShipMovement = (void *)0x05AC5FB0;\r\nconst void * RTTI_CombatBehaviorTreeShipPowerAllocation = (void *)0x05AC6508;\r\nconst void * RTTI_CombatBehaviorTreeSpaceshipWeapon = (void *)0x05AADAD8;\r\nconst void * RTTI_CombatBehaviorTreeTargetingMode = (void *)0x05AACEB0;\r\nconst void * RTTI_CombatBehaviorTreeThrow = (void *)0x05ABAB30;\r\nconst void * RTTI_CombatBehaviorTreeUseCover = (void *)0x05C2C490;\r\nconst void * RTTI_CombatBehaviorTreeUsePotion = (void *)0x05C2F890;\r\nconst void * RTTI_CombatBehaviorTreeWrapperNode = (void *)0x05AAD930;\r\nconst void * RTTI_CombatBehaviorWaitBehindCover = (void *)0x05C2C9C8;\r\nconst void * RTTI_CombatBlackboardMemberBase = (void *)0x05AAD8F8;\r\nconst void * RTTI_CombatChangePositionPathController = (void *)0x05C2EB78;\r\nconst void * RTTI_CombatChargingSearchData = (void *)0x05AB87D0;\r\nconst void * RTTI_CombatCluster = (void *)0x05BD8D00;\r\nconst void * RTTI_CombatCoverLocation = (void *)0x05BD74D0;\r\nconst void * RTTI_CombatCoverMap = (void *)0x05BD5AA8;\r\nconst void * RTTI_CombatCoverSearch = (void *)0x05BD7568;\r\nconst void * RTTI_CombatCoverSearchDebugData = (void *)0x05BD7688;\r\nconst void * RTTI_CombatCoverSearchResult = (void *)0x05BD7500;\r\nconst void * RTTI_CombatCoveredPath = (void *)0x05AAC9D0;\r\nconst void * RTTI_CombatCoveredPathDebugData = (void *)0x05AC9700;\r\nconst void * RTTI_CombatDebugManager = (void *)0x05A803A0;\r\nconst void * RTTI_CombatDialogueDebugData = (void *)0x05BD8750;\r\nconst void * RTTI_CombatDialogueManager = (void *)0x05BEB0D0;\r\nconst void * RTTI_CombatDisableActionController = (void *)0x05C18C18;\r\nconst void * RTTI_CombatDisableAimController = (void *)0x05BD3F10;\r\nconst void * RTTI_CombatDisableCollisionController = (void *)0x05C18C50;\r\nconst void * RTTI_CombatEffectSite = (void *)0x05B9EE68;\r\nconst void * RTTI_CombatEncounterBIEvents__CombatEnounterMetricsManager = (void *)0x05B828A0;\r\nconst void * RTTI_CombatEncounterMetrics = (void *)0x05B82C10;\r\nconst void * RTTI_CombatEnterCoverPathController = (void *)0x05BD75C8;\r\nconst void * RTTI_CombatFlankingSearchData = (void *)0x05C04658;\r\nconst void * RTTI_CombatFleeAimController = (void *)0x05C0F980;\r\nconst void * RTTI_CombatFollowTargetPathController = (void *)0x05C451A0;\r\nconst void * RTTI_CombatGroupDetectionListener = (void *)0x05BD8D28;\r\nconst void * RTTI_CombatInceptionDebugData = (void *)0x05BD8720;\r\nconst void * RTTI_CombatInterface = (void *)0x05AAD1F8;\r\nconst void * RTTI_CombatInventoryItem = (void *)0x05BD9E08;\r\nconst void * RTTI_CombatInventoryItemComposite = (void *)0x05BD9DD0;\r\nconst void * RTTI_CombatInventoryItemGrenade = (void *)0x05BD9CE0;\r\nconst void * RTTI_CombatInventoryItemMagic = (void *)0x05BD9EC8;\r\nconst void * RTTI_CombatInventoryItemMelee = (void *)0x05BD9CB0;\r\nconst void * RTTI_CombatInventoryItemOneHandedBlock = (void *)0x05BD9E60;\r\nconst void * RTTI_CombatInventoryItemRanged = (void *)0x05BD9C80;\r\nconst void * RTTI_CombatInventoryItemShield = (void *)0x05BD9E98;\r\nconst void * RTTI_CombatInventoryItemThrown = (void *)0x05BD9D18;\r\nconst void * RTTI_CombatInventoryItemTorch = (void *)0x05BD9EF8;\r\nconst void * RTTI_CombatMagicCaster = (void *)0x05BEAD40;\r\nconst void * RTTI_CombatMagicCasterArmor = (void *)0x05BEA7B0;\r\nconst void * RTTI_CombatMagicCasterBoundItem = (void *)0x05BEA708;\r\nconst void * RTTI_CombatMagicCasterChameleon = (void *)0x05BEA740;\r\nconst void * RTTI_CombatMagicCasterCloak = (void *)0x05BEA7E0;\r\nconst void * RTTI_CombatMagicCasterDash = (void *)0x05BEAB10;\r\nconst void * RTTI_CombatMagicCasterDisarm = (void *)0x05BEA810;\r\nconst void * RTTI_CombatMagicCasterInvisibility = (void *)0x05BEA840;\r\nconst void * RTTI_CombatMagicCasterLight = (void *)0x05BEA878;\r\nconst void * RTTI_CombatMagicCasterOffensive = (void *)0x05BEAA38;\r\nconst void * RTTI_CombatMagicCasterParalyze = (void *)0x05BEAAA8;\r\nconst void * RTTI_CombatMagicCasterReanimate = (void *)0x05BEAAD8;\r\nconst void * RTTI_CombatMagicCasterRestore = (void *)0x05BEA8A8;\r\nconst void * RTTI_CombatMagicCasterScript = (void *)0x05BEAB40;\r\nconst void * RTTI_CombatMagicCasterStagger = (void *)0x05BEA908;\r\nconst void * RTTI_CombatMagicCasterSummon = (void *)0x05BEA938;\r\nconst void * RTTI_CombatMagicCasterTargetEffect = (void *)0x05BEA778;\r\nconst void * RTTI_CombatMagicCasterWard = (void *)0x05BEA8D8;\r\nconst void * RTTI_CombatMagicEffectDataManager = (void *)0x05BEAB70;\r\nconst void * RTTI_CombatMagicItemData = (void *)0x05BEABA8;\r\nconst void * RTTI_CombatMagicItemSkillChecker = (void *)0x05BEAA70;\r\nconst void * RTTI_CombatMaintainDistancePathController = (void *)0x05AACAD8;\r\nconst void * RTTI_CombatManager = (void *)0x05BEB1C8;\r\nconst void * RTTI_CombatMantlePathController = (void *)0x05BD7530;\r\nconst void * RTTI_CombatMatchTargetAimController = (void *)0x05BD3FB0;\r\nconst void * RTTI_CombatMeleeAimController = (void *)0x05BD4FC0;\r\nconst void * RTTI_CombatMeleeAttackController = (void *)0x05C12B20;\r\nconst void * RTTI_CombatMeleeDebugData = (void *)0x05C12AF0;\r\nconst void * RTTI_CombatMovementRequestActivateTarget = (void *)0x05AB91D0;\r\nconst void * RTTI_CombatMovementRequestFollowActor = (void *)0x05AB9198;\r\nconst void * RTTI_CombatNavmeshCoverLocation = (void *)0x05BD7650;\r\nconst void * RTTI_CombatNavmeshPathingDebugData = (void *)0x05AC9928;\r\nconst void * RTTI_CombatObjectGlobalSharedSaveLoadManager = (void *)0x05B8A470;\r\nconst void * RTTI_CombatPath = (void *)0x05AAD220;\r\nconst void * RTTI_CombatPathBuilder = (void *)0x05AACD10;\r\nconst void * RTTI_CombatPathBuilderCovered = (void *)0x05AC96D0;\r\nconst void * RTTI_CombatPathBuilderNavmeshOpen = (void *)0x05AB3610;\r\nconst void * RTTI_CombatPathBuilderNavmeshStandard = (void *)0x05AAA0D8;\r\nconst void * RTTI_CombatPathBuilderNavmeshUtilities__CheckNavmeshPathFilter = (void *)0x05AC9B60;\r\nconst void * RTTI_CombatPathBuilderSpaceStandard = (void *)0x05AAA1B0;\r\nconst void * RTTI_CombatPathBuilderSpatialGraphOpen = (void *)0x05AB2B60;\r\nconst void * RTTI_CombatPathBuilderSpatialGraphStandard = (void *)0x05AAA2B8;\r\nconst void * RTTI_CombatPathBuilderTrackInfo = (void *)0x05AADDC0;\r\nconst void * RTTI_CombatPathBuilderTracker = (void *)0x05AADD90;\r\nconst void * RTTI_CombatPathDestinationAcquire = (void *)0x05AC4AD0;\r\nconst void * RTTI_CombatPathDestinationActor = (void *)0x05AB8800;\r\nconst void * RTTI_CombatPathDestinationBarrelRoll = (void *)0x05AC3B10;\r\nconst void * RTTI_CombatPathDestinationBreak = (void *)0x05AC5258;\r\nconst void * RTTI_CombatPathDestinationDirectlyToTarget = (void *)0x05AACF28;\r\nconst void * RTTI_CombatPathDestinationDisengage = (void *)0x05AC43D8;\r\nconst void * RTTI_CombatPathDestinationEvade = (void *)0x05AC3630;\r\nconst void * RTTI_CombatPathDestinationFlee = (void *)0x05ABE268;\r\nconst void * RTTI_CombatPathDestinationFollowActor = (void *)0x05C2F9F0;\r\nconst void * RTTI_CombatPathDestinationLeadTurn = (void *)0x05AC34D0;\r\nconst void * RTTI_CombatPathDestinationOrbitRef = (void *)0x05AC0EF8;\r\nconst void * RTTI_CombatPathDestinationPursue = (void *)0x05AC1148;\r\nconst void * RTTI_CombatPathDestinationRef = (void *)0x05AAC9A0;\r\nconst void * RTTI_CombatPathDestinationRefs = (void *)0x05C45638;\r\nconst void * RTTI_CombatPathDestinationRemainNear = (void *)0x05AC15D0;\r\nconst void * RTTI_CombatPathDestinationSlideDodge = (void *)0x05AC47F0;\r\nconst void * RTTI_CombatPathDestinationSlideTurn = (void *)0x05AC2B88;\r\nconst void * RTTI_CombatPathDestinationStrafe = (void *)0x05AC0DD8;\r\nconst void * RTTI_CombatPathDestinationStrafeTurn = (void *)0x05AC4140;\r\nconst void * RTTI_CombatPathManager = (void *)0x05C2FB90;\r\nconst void * RTTI_CombatPathingDebugData = (void *)0x05AC98F8;\r\nconst void * RTTI_CombatPathingDelayedTweener = (void *)0x05C45208;\r\nconst void * RTTI_CombatPathingRequest = (void *)0x05AAC800;\r\nconst void * RTTI_CombatPathingRequestAdapter = (void *)0x05C30F48;\r\nconst void * RTTI_CombatPathingRequestCovered = (void *)0x05AC9698;\r\nconst void * RTTI_CombatPathingRequestDebugData = (void *)0x05C30F80;\r\nconst void * RTTI_CombatPathingRequestMultiGoal = (void *)0x05C30FB8;\r\nconst void * RTTI_CombatPathingRequestStandard = (void *)0x05AAC798;\r\nconst void * RTTI_CombatPathingSearch = (void *)0x05AAA030;\r\nconst void * RTTI_CombatPathingSearchArea = (void *)0x05AC97B0;\r\nconst void * RTTI_CombatPathingTweener = (void *)0x05C451D8;\r\nconst void * RTTI_CombatPositionMap = (void *)0x05ACA030;\r\nconst void * RTTI_CombatPositionReservation = (void *)0x05AC9F68;\r\nconst void * RTTI_CombatPositionTracker = (void *)0x05ACA128;\r\nconst void * RTTI_CombatProjectileAimController = (void *)0x05BD3F48;\r\nconst void * RTTI_CombatProjectileDebugData = (void *)0x05BD3F80;\r\nconst void * RTTI_CombatQueuedEvent = (void *)0x05BAE920;\r\nconst void * RTTI_CombatRangedMovementPathSpeedController = (void *)0x05ABAB60;\r\nconst void * RTTI_CombatReservation = (void *)0x05AC58F8;\r\nconst void * RTTI_CombatReservationMap = (void *)0x05ACA1C0;\r\nconst void * RTTI_CombatSearchLockData = (void *)0x05C27268;\r\nconst void * RTTI_CombatSearchMap2D = (void *)0x05AAF1F0;\r\nconst void * RTTI_CombatSearchMap3D = (void *)0x05AAF240;\r\nconst void * RTTI_CombatShipGenericPathController = (void *)0x05AC54C8;\r\nconst void * RTTI_CombatShipPursueTargetPathController = (void *)0x05AC48A0;\r\nconst void * RTTI_CombatSoftCoverLocation = (void *)0x05BD76C0;\r\nconst void * RTTI_CombatSpatialGraphPathingDebugData = (void *)0x05ACA408;\r\nconst void * RTTI_CombatStandardCoverLocation = (void *)0x05BD7590;\r\nconst void * RTTI_CombatSuppressiveFireBehavior = (void *)0x05ACA8D0;\r\nconst void * RTTI_CombatTargetLocation = (void *)0x05BEE7E8;\r\nconst void * RTTI_CombatTargetLocationSearch = (void *)0x05BEE650;\r\nconst void * RTTI_CombatTargetLocationSearchResult = (void *)0x05BEE7B0;\r\nconst void * RTTI_CombatTargetMap = (void *)0x05BEE688;\r\nconst void * RTTI_CombatTargetSelector = (void *)0x05BF0958;\r\nconst void * RTTI_CombatTargetSelectorFixed = (void *)0x05BF08F0;\r\nconst void * RTTI_CombatTargetSelectorPreferred = (void *)0x05BF08B8;\r\nconst void * RTTI_CombatTargetSelectorRandom = (void *)0x05BF0920;\r\nconst void * RTTI_CombatTargetSelectorSpaceship = (void *)0x05BF0848;\r\nconst void * RTTI_CombatTargetSelectorStandard = (void *)0x05BF0880;\r\nconst void * RTTI_CombatTargetSelectorWorkshopObject = (void *)0x05BF0808;\r\nconst void * RTTI_CombatTeleportPathController = (void *)0x05ACAF08;\r\nconst void * RTTI_CombatThreat = (void *)0x05BF1250;\r\nconst void * RTTI_CombatThreatExplosion = (void *)0x05BF11F0;\r\nconst void * RTTI_CombatThreatLOF = (void *)0x05BF10E8;\r\nconst void * RTTI_CombatThreatMap = (void *)0x05BF1278;\r\nconst void * RTTI_CombatThreatMelee = (void *)0x05BF1110;\r\nconst void * RTTI_CombatThreatProjectile = (void *)0x05BF1220;\r\nconst void * RTTI_CombatTrackTargetAimController = (void *)0x05BD4FF0;\r\nconst void * RTTI_CombatTunnelPathController = (void *)0x05ACAED0;\r\nconst void * RTTI_CombatTunnelPathingRequestData = (void *)0x05ACAE98;\r\nconst void * RTTI_CombatViewController = (void *)0x05ACB5D8;\r\nconst void * RTTI_CombatViewControllerGlance = (void *)0x05ACB638;\r\nconst void * RTTI_CombatViewControllerPath = (void *)0x05ACB608;\r\nconst void * RTTI_CombatViewControllerStandard = (void *)0x05ACB5A0;\r\nconst void * RTTI_CommandEffect = (void *)0x05B7EF00;\r\nconst void * RTTI_CommandSummonedEffect = (void *)0x05B7EF28;\r\nconst void * RTTI_CompactingStore__MoveCallback = (void *)0x05C9CB98;\r\nconst void * RTTI_CompactingStore__NoopMoveCallback = (void *)0x05C9CB60;\r\nconst void * RTTI_CompressedArchiveFile = (void *)0x05D0BF00;\r\nconst void * RTTI_ConditionVariable = (void *)0x05C985A0;\r\nconst void * RTTI_ConeProjectile = (void *)0x05AAFB00;\r\nconst void * RTTI_ConfirmNewWithModsCallback = (void *)0x05B037B0;\r\nconst void * RTTI_ConfirmResetCallback = (void *)0x05AE3C98;\r\nconst void * RTTI_ConnectionTypeCallback = (void *)0x05B787F0;\r\nconst void * RTTI_Console = (void *)0x05C49420;\r\nconst void * RTTI_ConsoleEngine = (void *)0x05C49520;\r\nconst void * RTTI_ConsoleLog = (void *)0x05C497B8;\r\nconst void * RTTI_ConsoleNativeUIMenu = (void *)0x05C49888;\r\nconst void * RTTI_ContainerMenu = (void *)0x05C4C828;\r\nconst void * RTTI_ContainerMenuDataModel = (void *)0x05AF0F88;\r\nconst void * RTTI_ContainerMenuDataModel__ContainerMenuEventShuttle = (void *)0x05AF0FC0;\r\nconst void * RTTI_ContainerMenu_CloseMenu = (void *)0x05C4C728;\r\nconst void * RTTI_ContainerMenu_HideModel = (void *)0x05C4CAA0;\r\nconst void * RTTI_ContainerMenu_Jettison = (void *)0x05C4C7A8;\r\nconst void * RTTI_ContainerMenu_LoadModel = (void *)0x05C4C920;\r\nconst void * RTTI_ContainerMenu_OpenRefuelMenu = (void *)0x05C4CA18;\r\nconst void * RTTI_ContainerMenu_SetMouseOverModel = (void *)0x05C4C898;\r\nconst void * RTTI_ContainerMenu_TakeAll = (void *)0x05C4C998;\r\nconst void * RTTI_ContainerMenu_ToggleEquip = (void *)0x05C4C6A8;\r\nconst void * RTTI_ContainerMenu_TransferAllResources = (void *)0x05C4C610;\r\nconst void * RTTI_ContainerMenu_TransferItem = (void *)0x05C4C580;\r\nconst void * RTTI_ControlMap = (void *)0x05C9DAF0;\r\nconst void * RTTI_ControlMapDataModel = (void *)0x05CD4F00;\r\nconst void * RTTI_ControllerInternalState = (void *)0x05CF5C78;\r\nconst void * RTTI_ConvertBoneToVar = (void *)0x05C98F90;\r\nconst void * RTTI_ConvertBoneToVarInstance = (void *)0x05C98FB8;\r\nconst void * RTTI_CopyBoneWeights = (void *)0x05C99970;\r\nconst void * RTTI_CopyBoneWeightsInstance = (void *)0x05C99998;\r\nconst void * RTTI_CraftingInfoCardDataModel = (void *)0x05AFEC78;\r\nconst void * RTTI_CraftingInfoCardDataModel__CraftingItemInfoCardEventShuttle = (void *)0x05AFED80;\r\nconst void * RTTI_CraftingMenuCommon = (void *)0x05AF3EE8;\r\nconst void * RTTI_CraftingMenu_CraftItem = (void *)0x05AF4F40;\r\nconst void * RTTI_CraftingMenu_ExitBench = (void *)0x05AF4D18;\r\nconst void * RTTI_CraftingMenu_Highlight3D = (void *)0x05B75DD8;\r\nconst void * RTTI_CraftingMenu_InstallMod = (void *)0x05AF4FB8;\r\nconst void * RTTI_CraftingMenu_RenameItem = (void *)0x05AF3E70;\r\nconst void * RTTI_CraftingMenu_RevertHighlight = (void *)0x05B75D50;\r\nconst void * RTTI_CraftingMenu_RevertedModdedItem = (void *)0x05AF3DE8;\r\nconst void * RTTI_CraftingMenu_SelectedMod = (void *)0x05AF51E0;\r\nconst void * RTTI_CraftingMenu_SelectedModSlot = (void *)0x05AF5150;\r\nconst void * RTTI_CraftingMenu_SelectedModdableItem = (void *)0x05AF50C0;\r\nconst void * RTTI_CraftingMenu_SelectedRecipe = (void *)0x05AF4EB0;\r\nconst void * RTTI_CraftingMenu_SetInspectControls = (void *)0x05AF4D98;\r\nconst void * RTTI_CraftingMenu_ToggleTracking = (void *)0x05AF4E20;\r\nconst void * RTTI_CraftingMenu_ViewingModdableItem = (void *)0x05AF5038;\r\nconst void * RTTI_CraftingRecipesDataModel = (void *)0x05AFEFB0;\r\nconst void * RTTI_CraftingRecipesDataModel__CraftingRecipesEventShuttle = (void *)0x05AFEF60;\r\nconst void * RTTI_CraftingRequirementsDataModel = (void *)0x05AF4698;\r\nconst void * RTTI_CraftingRequirementsDataModel__CraftingRequirementsEventShuttle = (void *)0x05AF46D0;\r\nconst void * RTTI_CreateNavigationGridTask = (void *)0x05A13638;\r\nconst void * RTTI_CreationData = (void *)0x05AD83E8;\r\nconst void * RTTI_CreationRendererPrivate__AddProbeBorderRenderPass = (void *)0x05D34530;\r\nconst void * RTTI_CreationRendererPrivate__AddScatteringOrderRenderPass = (void *)0x05D40AE0;\r\nconst void * RTTI_CreationRendererPrivate__AllocateSkinningBuffersRenderPass = (void *)0x05D4D9D0;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__BindlessArray = (void *)0x05D35AB0;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__BindlessBufferArray = (void *)0x05D35B90;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__BindlessTextureArray = (void *)0x05D359C0;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__CmdPool = (void *)0x05D35970;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__CmdPoolDx12 = (void *)0x05D35920;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__IDynamicResolution = (void *)0x05D391E0;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__PipelineDx12 = (void *)0x05D46C90;\r\nconst void * RTTI_CreationRendererPrivate__ApiAbstractionLayer__ResourceUploader__Impl = (void *)0x05D357D0;\r\nconst void * RTTI_CreationRendererPrivate__ArtValidationRenderPass = (void *)0x05D4A830;\r\nconst void * RTTI_CreationRendererPrivate__AtmosphericScatteringRenderGraphBase = (void *)0x05D404E0;\r\nconst void * RTTI_CreationRendererPrivate__AtmosphericScatteringRenderPass = (void *)0x05D40540;\r\nconst void * RTTI_CreationRendererPrivate__BRDFIntegrationRenderPass = (void *)0x05D2AC10;\r\nconst void * RTTI_CreationRendererPrivate__BakeSHBasisRenderPass = (void *)0x05D2ABC0;\r\nconst void * RTTI_CreationRendererPrivate__BinkMovieDrawRenderPass = (void *)0x05D26A20;\r\nconst void * RTTI_CreationRendererPrivate__BinkMovieSubgraphRenderPass = (void *)0x05D26A70;\r\nconst void * RTTI_CreationRendererPrivate__BinkUpdatePlanesRenderPass = (void *)0x05D26AC0;\r\nconst void * RTTI_CreationRendererPrivate__BlendAllReflectionProbesRenderPass = (void *)0x05D49F20;\r\nconst void * RTTI_CreationRendererPrivate__BlendProbeRayRenderPass = (void *)0x05D34580;\r\nconst void * RTTI_CreationRendererPrivate__BlendReflectionProbeRenderPass = (void *)0x05D49F80;\r\nconst void * RTTI_CreationRendererPrivate__BlendedDecalRenderPass = (void *)0x05D4A920;\r\nconst void * RTTI_CreationRendererPrivate__BlendedDecal_OptionalRenderPass = (void *)0x05D4A8D0;\r\nconst void * RTTI_CreationRendererPrivate__BlendedDecal_OverwriteMaskRenderPass = (void *)0x05D4A970;\r\nconst void * RTTI_CreationRendererPrivate__BlendedDecalsRenderPass = (void *)0x05D4A880;\r\nconst void * RTTI_CreationRendererPrivate__BlurHeightfieldHorizontalRenderPass = (void *)0x05D3E1D0;\r\nconst void * RTTI_CreationRendererPrivate__BlurHeightfieldVerticalRenderPass = (void *)0x05D3E180;\r\nconst void * RTTI_CreationRendererPrivate__BlurSpaceGlareRenderPass = (void *)0x05D38950;\r\nconst void * RTTI_CreationRendererPrivate__BlurTerrainHeightClipmapHorizontalRenderPass = (void *)0x05D4B900;\r\nconst void * RTTI_CreationRendererPrivate__BlurTerrainHeightClipmapVerticalRenderPass = (void *)0x05D4B8A0;\r\nconst void * RTTI_CreationRendererPrivate__BlurredMipChain_idTech7RenderPass = (void *)0x05D4A9D0;\r\nconst void * RTTI_CreationRendererPrivate__BlurredMipchainSetup_idTech7RenderPass = (void *)0x05D4AAC0;\r\nconst void * RTTI_CreationRendererPrivate__BruteForceRaymarchingRenderPass = (void *)0x05D40760;\r\nconst void * RTTI_CreationRendererPrivate__BufferReadbackRenderPass = (void *)0x05D49800;\r\nconst void * RTTI_CreationRendererPrivate__BuildAccelerationStructureRenderPass = (void *)0x05D4AC20;\r\nconst void * RTTI_CreationRendererPrivate__CRScaleform__CRScaleformThreadCommandQueue = (void *)0x05D30930;\r\nconst void * RTTI_CreationRendererPrivate__CelestialBodiesGeometryRenderPass = (void *)0x05D48E00;\r\nconst void * RTTI_CreationRendererPrivate__CelestialBodiesLightingAndCompositeRenderPass = (void *)0x05D48CF0;\r\nconst void * RTTI_CreationRendererPrivate__CelestialBodiesMultiLayerDecalRenderPass = (void *)0x05D48D50;\r\nconst void * RTTI_CreationRendererPrivate__CelestialBodiesPrepareRenderPass = (void *)0x05D48E50;\r\nconst void * RTTI_CreationRendererPrivate__CelestialBodiesRenderPass = (void *)0x05D48DB0;\r\nconst void * RTTI_CreationRendererPrivate__ChargenMorphService = (void *)0x05D45720;\r\nconst void * RTTI_CreationRendererPrivate__ClearCubemapCaptureArrayRenderPass = (void *)0x05D49C40;\r\nconst void * RTTI_CreationRendererPrivate__ClearFallbackCubemapRenderPass = (void *)0x05D2AD00;\r\nconst void * RTTI_CreationRendererPrivate__ClearRenderGraphOutputRenderPass = (void *)0x05D436C0;\r\nconst void * RTTI_CreationRendererPrivate__ClearShadowMapGroupRenderPass = (void *)0x05D42FE0;\r\nconst void * RTTI_CreationRendererPrivate__ClearShadowMapsRenderPass = (void *)0x05D42F90;\r\nconst void * RTTI_CreationRendererPrivate__ClearSkyCubemapHistogramRenderPass = (void *)0x05D387F0;\r\nconst void * RTTI_CreationRendererPrivate__ClearThinDeferredGBufferRenderPass = (void *)0x05D49CA0;\r\nconst void * RTTI_CreationRendererPrivate__CloudCardsRenderPass = (void *)0x05D48EE0;\r\nconst void * RTTI_CreationRendererPrivate__CloudLayersRenderPass = (void *)0x05D49090;\r\nconst void * RTTI_CreationRendererPrivate__CloudsHalfResCompositeRenderPass = (void *)0x05D49040;\r\nconst void * RTTI_CreationRendererPrivate__CloudsRenderPass = (void *)0x05D48F28;\r\nconst void * RTTI_CreationRendererPrivate__ColorGradingMergeRenderPass = (void *)0x05D44580;\r\nconst void * RTTI_CreationRendererPrivate__CompositeAdditiveHalfResOITParticlesRenderPass = (void *)0x05D34CF0;\r\nconst void * RTTI_CreationRendererPrivate__CompositeHalfResOITParticlesRenderPass = (void *)0x05D34DA0;\r\nconst void * RTTI_CreationRendererPrivate__CompositeMomentBasedOITRenderPass = (void *)0x05D34D50;\r\nconst void * RTTI_CreationRendererPrivate__ComputeLightInfluenceRenderPass = (void *)0x05D4C540;\r\nconst void * RTTI_CreationRendererPrivate__ComputeMinMaxShadowMapLevelRenderPass = (void *)0x05D40200;\r\nconst void * RTTI_CreationRendererPrivate__ComputeMinMaxShadowMapRenderPass = (void *)0x05D40260;\r\nconst void * RTTI_CreationRendererPrivate__ComputeSHCoefRenderPass = (void *)0x05D2AC60;\r\nconst void * RTTI_CreationRendererPrivate__ComputeScatterRadianceRenderPass = (void *)0x05D40A40;\r\nconst void * RTTI_CreationRendererPrivate__ComputeScatteringOrderRenderPass = (void *)0x05D40A90;\r\nconst void * RTTI_CreationRendererPrivate__ComputeSkyCubemapHistogramRenderpass = (void *)0x05D384D0;\r\nconst void * RTTI_CreationRendererPrivate__ComputeSkyCubemapLuminanceDataRenderpass = (void *)0x05D38590;\r\nconst void * RTTI_CreationRendererPrivate__ContrastAdaptiveSharpeningRenderPass = (void *)0x05D28470;\r\nconst void * RTTI_CreationRendererPrivate__CopyAtmosScatteringRenderPass = (void *)0x05D386A0;\r\nconst void * RTTI_CreationRendererPrivate__CopyAtmosScatteringWithStarfieldRenderPass = (void *)0x05D38530;\r\nconst void * RTTI_CreationRendererPrivate__CopyHighOrderScatteringLUTRenderPass = (void *)0x05D40920;\r\nconst void * RTTI_CreationRendererPrivate__CopyIntegrationToTempLUTRenderPass = (void *)0x05D40B30;\r\nconst void * RTTI_CreationRendererPrivate__CopyLightInfluenceRenderPass = (void *)0x05D4C4F0;\r\nconst void * RTTI_CreationRendererPrivate__CopyRenderPass = (void *)0x05D43710;\r\nconst void * RTTI_CreationRendererPrivate__CopyScreenSizeToReadBackRenderPass = (void *)0x05D4AF10;\r\nconst void * RTTI_CreationRendererPrivate__CopySectorIntoHeightfieldRenderPass = (void *)0x05D47210;\r\nconst void * RTTI_CreationRendererPrivate__CopyToColorWithoutHighlightRenderPass = (void *)0x05D43510;\r\nconst void * RTTI_CreationRendererPrivate__CopyToRenderGraphOutputRenderPass = (void *)0x05D43750;\r\nconst void * RTTI_CreationRendererPrivate__CopyWithShaderLetterboxedRenderPass = (void *)0x05D435D0;\r\nconst void * RTTI_CreationRendererPrivate__CopyWithShaderRenderPass = (void *)0x05D437A0;\r\nconst void * RTTI_CreationRendererPrivate__CubemapBackgroundRenderPass = (void *)0x05D4ACD0;\r\nconst void * RTTI_CreationRendererPrivate__DLSSFrameGenerationRenderPass = (void *)0x05D4B1B0;\r\nconst void * RTTI_CreationRendererPrivate__DLSSFrameGenerationUIRenderPass = (void *)0x05D4B200;\r\nconst void * RTTI_CreationRendererPrivate__DLSSProduceInputsRenderPass = (void *)0x05D4B4C0;\r\nconst void * RTTI_CreationRendererPrivate__DLSSUpscaleRenderPass = (void *)0x05D44620;\r\nconst void * RTTI_CreationRendererPrivate__DeDitherRenderPass = (void *)0x05D4AD20;\r\nconst void * RTTI_CreationRendererPrivate__DeferredCompositeRenderPass = (void *)0x05D4AD70;\r\nconst void * RTTI_CreationRendererPrivate__DeferredGBufferOptionalRenderPass = (void *)0x05D4AE70;\r\nconst void * RTTI_CreationRendererPrivate__DeferredGBufferRenderPass = (void *)0x05D4ADC0;\r\nconst void * RTTI_CreationRendererPrivate__DeferredGBufferTranslucentRenderPass = (void *)0x05D4AE10;\r\nconst void * RTTI_CreationRendererPrivate__DepthDownsampleAvgRenderPass = (void *)0x05D48370;\r\nconst void * RTTI_CreationRendererPrivate__DepthDownsampleRenderPass = (void *)0x05D483C0;\r\nconst void * RTTI_CreationRendererPrivate__DepthGraphRenderPass = (void *)0x05D4AEC0;\r\nconst void * RTTI_CreationRendererPrivate__DepthMVFixupRenderPass = (void *)0x05D45BE0;\r\nconst void * RTTI_CreationRendererPrivate__DepthMVFixupStandardRenderPass = (void *)0x05D45FF0;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldBlurRenderPass = (void *)0x05D4F200;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldCoCBlurRenderPass = (void *)0x05D4F1B0;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldCoCRenderPass = (void *)0x05D4F300;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldCompositeRenderPass = (void *)0x05D4F350;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldDownsampleRenderPass = (void *)0x05D4F3A0;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldFloodFillBlurRenderPass = (void *)0x05D4F250;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldHTileMaskRenderPass = (void *)0x05D4F3F0;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldSubGraph = (void *)0x05D4AF70;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldTAARenderPass = (void *)0x05D4F440;\r\nconst void * RTTI_CreationRendererPrivate__DepthOfFieldTapBlurRenderPass = (void *)0x05D4F2B0;\r\nconst void * RTTI_CreationRendererPrivate__DepthPrepassRenderPass = (void *)0x05D4AFC0;\r\nconst void * RTTI_CreationRendererPrivate__DistantAtmospheresRenderPass = (void *)0x05D34280;\r\nconst void * RTTI_CreationRendererPrivate__DistortionBaseRenderPass = (void *)0x05D4B060;\r\nconst void * RTTI_CreationRendererPrivate__DistortionCalculateColorRenderPass = (void *)0x05D4B100;\r\nconst void * RTTI_CreationRendererPrivate__DistortionOutputRenderPass = (void *)0x05D4B0B0;\r\nconst void * RTTI_CreationRendererPrivate__DistortionParticlesRenderPass = (void *)0x05D480C0;\r\nconst void * RTTI_CreationRendererPrivate__DistortionRenderPass = (void *)0x05D4B160;\r\nconst void * RTTI_CreationRendererPrivate__DoubleVisionRenderPass = (void *)0x05D4F860;\r\nconst void * RTTI_CreationRendererPrivate__DownsampleHeightfieldRenderPass = (void *)0x05D3E040;\r\nconst void * RTTI_CreationRendererPrivate__DownsampleSpaceGlareRenderPass = (void *)0x05D38850;\r\nconst void * RTTI_CreationRendererPrivate__DrawDistantAtmospheresRenderPass = (void *)0x05D34330;\r\nconst void * RTTI_CreationRendererPrivate__DrawDistantAtmospheresTransparencyRenderPass = (void *)0x05D342D0;\r\nconst void * RTTI_CreationRendererPrivate__DrawGlobalDirtOverlayRenderPass = (void *)0x05D4BC00;\r\nconst void * RTTI_CreationRendererPrivate__DrawProjectedDecalsRenderPass = (void *)0x05D4CA00;\r\nconst void * RTTI_CreationRendererPrivate__DrawProjectedDecals_HighlightMaskRenderPass = (void *)0x05D4C920;\r\nconst void * RTTI_CreationRendererPrivate__DrawProjectedDecals_OptionalRenderPass = (void *)0x05D4CA50;\r\nconst void * RTTI_CreationRendererPrivate__DynamicResolution = (void *)0x05D39240;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowDepthPyramidRenderPass = (void *)0x05D4D470;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowDrawMeshInstanceSubGraph = (void *)0x05D4D7D0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowDrawSubGraph = (void *)0x05D4D360;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowFalseNegativesDrawSubGraph = (void *)0x05D42F30;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowFilterFocusGeometriesRenderPass = (void *)0x05D4D6C0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowFrustumMaskRenderPass = (void *)0x05D4D580;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowGeometryCullingRenderPass = (void *)0x05D4D4D0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowGeometryOffsetsRenderPass = (void *)0x05D4D180;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowGraph = (void *)0x05D4D130;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowMapBarriersRenderPass = (void *)0x05D4D410;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowMaterialIndexOffsetsRenderPass = (void *)0x05D4D3B0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowMeshletCullingFalseNegativesRenderPass = (void *)0x05D4D650;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowMeshletCullingRenderPass = (void *)0x05D4D240;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowMeshletListBuildFalseNegativesRenderPass = (void *)0x05D4D5E0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowMeshletListBuildRenderPass = (void *)0x05D4D720;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowPrepareDrawParamsRenderPass = (void *)0x05D4D1E0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowPrepareGroupedDrawsRenderPass = (void *)0x05D4D300;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowSceneSetupRenderPass = (void *)0x05D4D830;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowTriangleCullingRenderPass = (void *)0x05D4D2A0;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowWithFalseNegativesGraph = (void *)0x05D4D070;\r\nconst void * RTTI_CreationRendererPrivate__DynamicShadowsMeshInstancePatchPrepareArgsRenderPass = (void *)0x05D43950;\r\nconst void * RTTI_CreationRendererPrivate__EmptyRenderPass = (void *)0x05D43628;\r\nconst void * RTTI_CreationRendererPrivate__EndMultiscatteringIntegrationRenderPass = (void *)0x05D408C0;\r\nconst void * RTTI_CreationRendererPrivate__EpipolarSamplingRefineSampleLocationsRenderPass = (void *)0x05D407B0;\r\nconst void * RTTI_CreationRendererPrivate__EpipolarSamplingRenderCoordinateTextureRenderPass = (void *)0x05D409E0;\r\nconst void * RTTI_CreationRendererPrivate__EpipolarSamplingRenderPass = (void *)0x05D405F0;\r\nconst void * RTTI_CreationRendererPrivate__EpipolarSamplingRenderSliceEndPointsRenderPass = (void *)0x05D40980;\r\nconst void * RTTI_CreationRendererPrivate__FSR2ProduceInputsRenderPass = (void *)0x05D4B510;\r\nconst void * RTTI_CreationRendererPrivate__FSR2UpscaleRenderPass = (void *)0x05D4B560;\r\nconst void * RTTI_CreationRendererPrivate__FSR3FrameInterpolationRenderPass = (void *)0x05D44710;\r\nconst void * RTTI_CreationRendererPrivate__FSR3ProduceUIInputRenderPass = (void *)0x05D446C0;\r\nconst void * RTTI_CreationRendererPrivate__FSR3UpscaleRenderPass = (void *)0x05D4B5B0;\r\nconst void * RTTI_CreationRendererPrivate__FaceCustomizationCopyMipChainToOutputRenderPass = (void *)0x05D4B2A0;\r\nconst void * RTTI_CreationRendererPrivate__FaceCustomizationMipChainRenderPass = (void *)0x05D4B360;\r\nconst void * RTTI_CreationRendererPrivate__FaceCustomizationMipChainRoughnessRenderPass = (void *)0x05D4B300;\r\nconst void * RTTI_CreationRendererPrivate__FaceCustomizationProduceMipChainRenderPass = (void *)0x05D4B3C0;\r\nconst void * RTTI_CreationRendererPrivate__FaceCustomizationRenderPass = (void *)0x05D4B250;\r\nconst void * RTTI_CreationRendererPrivate__FillCullingDataRenderPass = (void *)0x05D4BD60;\r\nconst void * RTTI_CreationRendererPrivate__FillHeightfieldCullingDataRenderPass = (void *)0x05D47310;\r\nconst void * RTTI_CreationRendererPrivate__FilmGrainRenderPass = (void *)0x05D4FB90;\r\nconst void * RTTI_CreationRendererPrivate__FilterCulledGeometriesRenderPass = (void *)0x05D4CDC0;\r\nconst void * RTTI_CreationRendererPrivate__FilterHeightfieldRenderPass = (void *)0x05D3E130;\r\nconst void * RTTI_CreationRendererPrivate__FirstPersonDepthRenderPass = (void *)0x05D4B010;\r\nconst void * RTTI_CreationRendererPrivate__FixupIndirectArgsRenderPass = (void *)0x05D4D8D0;\r\nconst void * RTTI_CreationRendererPrivate__FixupSkinningIndirectArgsRenderPass = (void *)0x05D4D970;\r\nconst void * RTTI_CreationRendererPrivate__FlattenTextureScreensizeRenderPass = (void *)0x05D4BCA0;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedAlphaOutputRenderPass = (void *)0x05D45B80;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedCopyToDestRenderPass = (void *)0x05D45F90;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedCorrectionRenderPass = (void *)0x05D45E70;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedFullResAlwaysRenderPass = (void *)0x05D45A70;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedMainFullResRenderPass = (void *)0x05D45A10;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedMainHalfResRenderPass = (void *)0x05D45E10;\r\nconst void * RTTI_CreationRendererPrivate__ForwardBlendedRenderPass = (void *)0x05D45B30;\r\nconst void * RTTI_CreationRendererPrivate__ForwardRenderPass = (void *)0x05D45980;\r\nconst void * RTTI_CreationRendererPrivate__FrameInitRenderPass = (void *)0x05D4B420;\r\nconst void * RTTI_CreationRendererPrivate__FrameInterpolationSubGraph = (void *)0x05D43160;\r\nconst void * RTTI_CreationRendererPrivate__FrameRenderGraph = (void *)0x05D4E5B0;\r\nconst void * RTTI_CreationRendererPrivate__FrameSetupRenderPass = (void *)0x05D4B470;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenBlurCompositeRenderPass = (void *)0x05D4F8B0;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenBlurRenderPass = (void *)0x05D4F950;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColorRenderPass = (void *)0x05D4FC30;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColor_AlphaFillRenderPass = (void *)0x05D4FCD0;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColor_BloomRenderPass = (void *)0x05D4FC80;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColor_CubemapRenderPass = (void *)0x05D4FD90;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColor_DefaultRenderPass = (void *)0x05D4FBE0;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColor_MonochromeRenderPass = (void *)0x05D4FD30;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenColor_OverlayRenderPass = (void *)0x05D4FDE0;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenDownsampleRenderPass = (void *)0x05D4F9A0;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenScanlineRenderPass = (void *)0x05D4B650;\r\nconst void * RTTI_CreationRendererPrivate__FullScreenTapBlurRenderPass = (void *)0x05D4F900;\r\nconst void * RTTI_CreationRendererPrivate__GBufferOverviewRenderPass = (void *)0x05D43670;\r\nconst void * RTTI_CreationRendererPrivate__GPUDataInspectorConvertValuesRenderPass = (void *)0x05D4BEA0;\r\nconst void * RTTI_CreationRendererPrivate__GPUDataInspectorDrawQuadsRenderPass = (void *)0x05D4BF70;\r\nconst void * RTTI_CreationRendererPrivate__GPUDataInspectorGenerateIndirectDispatchRenderPass = (void *)0x05D4BF00;\r\nconst void * RTTI_CreationRendererPrivate__GPUDataInspectorGenerateIndirectDrawRenderPass = (void *)0x05D4BFD0;\r\nconst void * RTTI_CreationRendererPrivate__GPUDataInspectorRenderPass = (void *)0x05D4BE50;\r\nconst void * RTTI_CreationRendererPrivate__GPUDebugGeometryDrawLinesRenderPass = (void *)0x05D3F9F0;\r\nconst void * RTTI_CreationRendererPrivate__GPUDebugGeometryPrepareLinesRenderPass = (void *)0x05D3FA50;\r\nconst void * RTTI_CreationRendererPrivate__GPUDebugGeometryPrintfDraw3DRenderPass = (void *)0x05D3F8D0;\r\nconst void * RTTI_CreationRendererPrivate__GPUDebugGeometryPrintfPrepareBuffersRenderPass = (void *)0x05D3F930;\r\nconst void * RTTI_CreationRendererPrivate__GPUDebugGeometryRenderPass = (void *)0x05D3F880;\r\nconst void * RTTI_CreationRendererPrivate__GPUDebugGeometryResetBuffersRenderPass = (void *)0x05D3F990;\r\nconst void * RTTI_CreationRendererPrivate__GalaxyStateStarsRenderPass = (void *)0x05D4B6A0;\r\nconst void * RTTI_CreationRendererPrivate__GatherGeometryInstancesRenderPass = (void *)0x05D37810;\r\nconst void * RTTI_CreationRendererPrivate__GatherHighlightsRenderPass = (void *)0x05D43370;\r\nconst void * RTTI_CreationRendererPrivate__GatherIndirectRenderPass = (void *)0x05D2AD50;\r\nconst void * RTTI_CreationRendererPrivate__GatherLightsRenderPass = (void *)0x05D4B6F0;\r\nconst void * RTTI_CreationRendererPrivate__GatherNodeExtraVisualDataRenderPass = (void *)0x05D4B740;\r\nconst void * RTTI_CreationRendererPrivate__GatherTransformsRenderPass = (void *)0x05D3FAB0;\r\nconst void * RTTI_CreationRendererPrivate__GenerateDepthPyramidBaseRenderPass = (void *)0x05D4B7A0;\r\nconst void * RTTI_CreationRendererPrivate__GenerateDepthPyramidRenderPass = (void *)0x05D4B800;\r\nconst void * RTTI_CreationRendererPrivate__GenerateFogMapRenderPass = (void *)0x05D4B850;\r\nconst void * RTTI_CreationRendererPrivate__GenerateGeometryInstanceMaskRenderPass = (void *)0x05D4BD00;\r\nconst void * RTTI_CreationRendererPrivate__GenerateShadowDepthPyramidRenderPass = (void *)0x05D4CF60;\r\nconst void * RTTI_CreationRendererPrivate__GenerateShadowDepthPyramidWithMaskRenderPass = (void *)0x05D4D010;\r\nconst void * RTTI_CreationRendererPrivate__GeometryCullingRenderPass = (void *)0x05D4BE00;\r\nconst void * RTTI_CreationRendererPrivate__GeometryCullingShadowsRenderPass = (void *)0x05D4BDB0;\r\nconst void * RTTI_CreationRendererPrivate__GeometryParticleBatchDepthRenderPass = (void *)0x05D434B0;\r\nconst void * RTTI_CreationRendererPrivate__GeometryParticleBatchRenderPass = (void *)0x05D4B960;\r\nconst void * RTTI_CreationRendererPrivate__GeometryRenderPass = (void *)0x05D459C0;\r\nconst void * RTTI_CreationRendererPrivate__GlobalDirtOverlayRenderPass = (void *)0x05D4BC50;\r\nconst void * RTTI_CreationRendererPrivate__GroupedDynamicShadowMapRenderPass = (void *)0x05D4D780;\r\nconst void * RTTI_CreationRendererPrivate__HDRColorGradingMergeRenderPass = (void *)0x05D445D0;\r\nconst void * RTTI_CreationRendererPrivate__HDRCompositeRenderPass = (void *)0x05D272A0;\r\nconst void * RTTI_CreationRendererPrivate__HDRHistogramClearRenderPass = (void *)0x05D272F0;\r\nconst void * RTTI_CreationRendererPrivate__HDRHistogramReadLightAdaptRenderPass = (void *)0x05D273E0;\r\nconst void * RTTI_CreationRendererPrivate__HDRSubGraph = (void *)0x05D27438;\r\nconst void * RTTI_CreationRendererPrivate__HeightFieldRenderPass = (void *)0x05D472C0;\r\nconst void * RTTI_CreationRendererPrivate__HeightFieldSubGraphRenderPass = (void *)0x05D46EA0;\r\nconst void * RTTI_CreationRendererPrivate__HeightfieldSystemRenderPass = (void *)0x05D46EF0;\r\nconst void * RTTI_CreationRendererPrivate__HighlightMaskRenderPass = (void *)0x05D4C030;\r\nconst void * RTTI_CreationRendererPrivate__HighlightPrepareRenderPass = (void *)0x05D4C0D0;\r\nconst void * RTTI_CreationRendererPrivate__HighlightRenderPass = (void *)0x05D4C080;\r\nconst void * RTTI_CreationRendererPrivate__ImGuiEventHandler = (void *)0x05D496D0;\r\nconst void * RTTI_CreationRendererPrivate__ImageCaptureData = (void *)0x05D10DC0;\r\nconst void * RTTI_CreationRendererPrivate__ImageCaptureHDR_CopyRenderTargetRenderPass = (void *)0x05D4C190;\r\nconst void * RTTI_CreationRendererPrivate__ImageCapture_CopyRenderTargetRenderPass = (void *)0x05D4C1F0;\r\nconst void * RTTI_CreationRendererPrivate__ImageCapture_CopyRenderTarget_UseDepthAsAlphaRenderPass = (void *)0x05D4C120;\r\nconst void * RTTI_CreationRendererPrivate__ImageCapture_IconGenerationRenderPass = (void *)0x05D43570;\r\nconst void * RTTI_CreationRendererPrivate__ImageProcessCreateResourceMapRenderPass = (void *)0x05D4C250;\r\nconst void * RTTI_CreationRendererPrivate__ImageProcessEdgeDetectionRenderPass = (void *)0x05D4C2B0;\r\nconst void * RTTI_CreationRendererPrivate__ImageProcessMedianBlurRenderPass = (void *)0x05D4C310;\r\nconst void * RTTI_CreationRendererPrivate__ImageProcessNearestNeighborUpscaleRenderPass = (void *)0x05D4FB30;\r\nconst void * RTTI_CreationRendererPrivate__ImageProcessRenderGraph = (void *)0x05D4E5F0;\r\nconst void * RTTI_CreationRendererPrivate__IndirectRenderPass = (void *)0x05D2ADF0;\r\nconst void * RTTI_CreationRendererPrivate__IndirectSetupRenderPass = (void *)0x05D2ADA0;\r\nconst void * RTTI_CreationRendererPrivate__InitializeInscatterOrderRenderPass = (void *)0x05D40CA0;\r\nconst void * RTTI_CreationRendererPrivate__InitializeMinMaxShadowMapRenderPass = (void *)0x05D40480;\r\nconst void * RTTI_CreationRendererPrivate__InjectDistantAtmosphereLUTRenderPass = (void *)0x05D406A0;\r\nconst void * RTTI_CreationRendererPrivate__InjectMotionVectorHistoryCurrentDynamicResolutionRenderPass = (void *)0x05D432A0;\r\nconst void * RTTI_CreationRendererPrivate__InjectPreviousDepthBufferCurrentDynamicResolutionRenderPass = (void *)0x05D43090;\r\nconst void * RTTI_CreationRendererPrivate__InjectSpaceGlareCurrentFrameRenderPass = (void *)0x05D388F0;\r\nconst void * RTTI_CreationRendererPrivate__InjectTerrainShadowResourcesRenderPass = (void *)0x05D2A0F0;\r\nconst void * RTTI_CreationRendererPrivate__InterpolateIrradianceRenderPass = (void *)0x05D402B0;\r\nconst void * RTTI_CreationRendererPrivate__LensFlareComputeRenderPass = (void *)0x05D4C360;\r\nconst void * RTTI_CreationRendererPrivate__LensFlareDrawRenderPass = (void *)0x05D43410;\r\nconst void * RTTI_CreationRendererPrivate__LensFlareSystemRenderPass = (void *)0x05D433C0;\r\nconst void * RTTI_CreationRendererPrivate__LensFlare_AlphaBlendRenderPass = (void *)0x05D4C400;\r\nconst void * RTTI_CreationRendererPrivate__LensFlare_VisibilityRenderPass = (void *)0x05D4C3B0;\r\nconst void * RTTI_CreationRendererPrivate__LightCoarseCullingCompactionRenderPass = (void *)0x05D4F490;\r\nconst void * RTTI_CreationRendererPrivate__LightCoarseCullingRenderPass = (void *)0x05D4F4F0;\r\nconst void * RTTI_CreationRendererPrivate__LightInfluenceDepthMinRenderPass = (void *)0x05D4C450;\r\nconst void * RTTI_CreationRendererPrivate__LightInfluenceSubGraphRenderPass = (void *)0x05D4C4A0;\r\nconst void * RTTI_CreationRendererPrivate__LightingRenderPass = (void *)0x05D4C590;\r\nconst void * RTTI_CreationRendererPrivate__LoadMenuHiddenEventHandler = (void *)0x05D126B0;\r\nconst void * RTTI_CreationRendererPrivate__LogicalCell = (void *)0x05D3E3D8;\r\nconst void * RTTI_CreationRendererPrivate__MainRenderGraph = (void *)0x05D4E570;\r\nconst void * RTTI_CreationRendererPrivate__MeshEventHandler = (void *)0x05D14760;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchCullingRenderPass = (void *)0x05D437F0;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchDepthRenderPass = (void *)0x05D43A80;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchOcclusionCullingRenderPass = (void *)0x05D43A20;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchPrepareArgsBaseRenderPass = (void *)0x05D439C0;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchPrepareArgsRenderPass = (void *)0x05D4C640;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchPrepareArgsShadowRenderPass = (void *)0x05D4C5E0;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchRenderPass = (void *)0x05D43B20;\r\nconst void * RTTI_CreationRendererPrivate__MeshInstancePatchShadowRenderPass = (void *)0x05D43AD0;\r\nconst void * RTTI_CreationRendererPrivate__MeshLODDB = (void *)0x05D2E5D0;\r\nconst void * RTTI_CreationRendererPrivate__MeshletBuildIndexBufferRenderPass = (void *)0x05D4A530;\r\nconst void * RTTI_CreationRendererPrivate__MeshletFrustumCullingRenderPass = (void *)0x05D4A6C0;\r\nconst void * RTTI_CreationRendererPrivate__MeshletListBuildRenderPass = (void *)0x05D4A5D0;\r\nconst void * RTTI_CreationRendererPrivate__MeshletMaterialOffsetsRenderPass = (void *)0x05D4A580;\r\nconst void * RTTI_CreationRendererPrivate__MeshletOcclusionCullingRenderPass = (void *)0x05D4A670;\r\nconst void * RTTI_CreationRendererPrivate__MeshletPrepareArgsRenderPass = (void *)0x05D4A710;\r\nconst void * RTTI_CreationRendererPrivate__MeshletPrepareDrawParamsRenderPass = (void *)0x05D4A4D0;\r\nconst void * RTTI_CreationRendererPrivate__MeshletProduceResourcesRenderPass = (void *)0x05D43B70;\r\nconst void * RTTI_CreationRendererPrivate__MeshletProduceResourcesShadowsRenderPass = (void *)0x05D438F0;\r\nconst void * RTTI_CreationRendererPrivate__MeshletReadbackIndexCountRenderPass = (void *)0x05D4A760;\r\nconst void * RTTI_CreationRendererPrivate__MeshletTriangleCullingRenderPass = (void *)0x05D4A620;\r\nconst void * RTTI_CreationRendererPrivate__Messaging__Dependency__GeneralDependencyNode = (void *)0x05D0E6C0;\r\nconst void * RTTI_CreationRendererPrivate__Messaging__Dependency__InternalDependencyGraphHolder = (void *)0x05D11E30;\r\nconst void * RTTI_CreationRendererPrivate__Messaging__Dependency__InternalProcessorType = (void *)0x05D11B50;\r\nconst void * RTTI_CreationRendererPrivate__MomentBasedOITRenderAdditiveTransparencyRenderPass = (void *)0x05D45DA0;\r\nconst void * RTTI_CreationRendererPrivate__MomentBasedOITRenderMomentsRenderPass = (void *)0x05D45CE0;\r\nconst void * RTTI_CreationRendererPrivate__MomentBasedOITRenderPass = (void *)0x05D34CA0;\r\nconst void * RTTI_CreationRendererPrivate__MomentBasedOITRenderTransparencyRenderPass = (void *)0x05D45D40;\r\nconst void * RTTI_CreationRendererPrivate__MorphDB = (void *)0x05D47868;\r\nconst void * RTTI_CreationRendererPrivate__MorphRenderPass = (void *)0x05D4C698;\r\nconst void * RTTI_CreationRendererPrivate__MorphSystemEndFrameRenderPass = (void *)0x05D43850;\r\nconst void * RTTI_CreationRendererPrivate__MotionBlurMaxTileVelocityRenderPass = (void *)0x05D4F800;\r\nconst void * RTTI_CreationRendererPrivate__MotionBlurRenderPass = (void *)0x05D4E430;\r\nconst void * RTTI_CreationRendererPrivate__MotionBlurSubGraph = (void *)0x05D4E3E0;\r\nconst void * RTTI_CreationRendererPrivate__MotionVectorCompositeRenderPass = (void *)0x05D4C6E0;\r\nconst void * RTTI_CreationRendererPrivate__MultiscatteringIntegrationStepRenderPass = (void *)0x05D40300;\r\nconst void * RTTI_CreationRendererPrivate__NV_Streamline__StreamlineEventHandler = (void *)0x05D28010;\r\nconst void * RTTI_CreationRendererPrivate__PartialClearColorBufferRenderPass = (void *)0x05D4AC80;\r\nconst void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel0RenderPass = (void *)0x05D2EA80;\r\nconst void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel1RenderPass = (void *)0x05D2EAE0;\r\nconst void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel2RenderPass = (void *)0x05D2EB40;\r\nconst void * RTTI_CreationRendererPrivate__ParticleComputeLightingLevel3RenderPass = (void *)0x05D2EBA0;\r\nconst void * RTTI_CreationRendererPrivate__ParticleDataPreFilterRenderPass = (void *)0x05D2E970;\r\nconst void * RTTI_CreationRendererPrivate__ParticleLightingClearBuffersRenderPass = (void *)0x05D2E9C0;\r\nconst void * RTTI_CreationRendererPrivate__ParticleLightingGenerateIndirectBufferRenderPass = (void *)0x05D2F310;\r\nconst void * RTTI_CreationRendererPrivate__ParticleLightingRenderPass = (void *)0x05D2F2C0;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesCopyToDestRenderPass = (void *)0x05D48070;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesCorrectionRenderPass = (void *)0x05D482D0;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesMainFullResRenderPass = (void *)0x05D48160;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesMainHalfResRenderPass = (void *)0x05D48320;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesMomentBasedOITRenderMomentsRenderPass = (void *)0x05D48270;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesMomentBasedOITRenderTransparencyRenderPass = (void *)0x05D48200;\r\nconst void * RTTI_CreationRendererPrivate__ParticlesRenderPass = (void *)0x05D48110;\r\nconst void * RTTI_CreationRendererPrivate__PauseMenuExitedEventHandler = (void *)0x05D34B70;\r\nconst void * RTTI_CreationRendererPrivate__PointCloudCullingRenderPass = (void *)0x05D4C730;\r\nconst void * RTTI_CreationRendererPrivate__PointCloudDrawRenderPass = (void *)0x05D4C780;\r\nconst void * RTTI_CreationRendererPrivate__PointCloudEventHandler = (void *)0x05D30EE0;\r\nconst void * RTTI_CreationRendererPrivate__PostEffectPreUpscaleRenderPass = (void *)0x05D4E480;\r\nconst void * RTTI_CreationRendererPrivate__PostSharpenRenderPass = (void *)0x05D4FE30;\r\nconst void * RTTI_CreationRendererPrivate__PostUpscaleImageSpaceSubGraph = (void *)0x05D4FA40;\r\nconst void * RTTI_CreationRendererPrivate__PostUpscaleSubGraph = (void *)0x05D4FA90;\r\nconst void * RTTI_CreationRendererPrivate__PreUpscaleImageSpaceSubGraph = (void *)0x05D4F9F0;\r\nconst void * RTTI_CreationRendererPrivate__PrecomputeAtmosphericScatteringDataRenderPass = (void *)0x05D40700;\r\nconst void * RTTI_CreationRendererPrivate__PrecomputeAtmosphericScatteringTransmittanceRenderPass = (void *)0x05D4A7C0;\r\nconst void * RTTI_CreationRendererPrivate__PrecomputeNetDensityToAtmTopRenderPass = (void *)0x05D40BE0;\r\nconst void * RTTI_CreationRendererPrivate__PrecomputePerlinNoise3DRenderPass = (void *)0x05D4E520;\r\nconst void * RTTI_CreationRendererPrivate__PrecomputeSingleScatteringRenderPass = (void *)0x05D40C40;\r\nconst void * RTTI_CreationRendererPrivate__PrefilterCubemapRenderPass = (void *)0x05D2ACB0;\r\nconst void * RTTI_CreationRendererPrivate__PrepareAtmosphericScatteringRenderPass = (void *)0x05D43310;\r\nconst void * RTTI_CreationRendererPrivate__PrepareEndFrameRenderPass = (void *)0x05D438A0;\r\nconst void * RTTI_CreationRendererPrivate__PrepareFirstPersonSkinningRenderPass = (void *)0x05D42E80;\r\nconst void * RTTI_CreationRendererPrivate__PrepareProjectedDecalsRenderPass = (void *)0x05D4C880;\r\nconst void * RTTI_CreationRendererPrivate__PrepareReflectionProbeDataRenderPass = (void *)0x05D4A140;\r\nconst void * RTTI_CreationRendererPrivate__PrepareSkinningRenderPass = (void *)0x05D431B0;\r\nconst void * RTTI_CreationRendererPrivate__PrepareSkyCubemapCelestialBodiesRenderPass = (void *)0x05D38640;\r\nconst void * RTTI_CreationRendererPrivate__PrepareSkyCubemapRenderPass = (void *)0x05D43250;\r\nconst void * RTTI_CreationRendererPrivate__ProbeClassifyRenderPass = (void *)0x05D344E0;\r\nconst void * RTTI_CreationRendererPrivate__ProbeCoarseLightCullingCompactionRenderPass = (void *)0x05D34430;\r\nconst void * RTTI_CreationRendererPrivate__ProbeCoarseLightCullingRenderPass = (void *)0x05D34490;\r\nconst void * RTTI_CreationRendererPrivate__ProbeFaceSceneSetupRenderPass = (void *)0x05D4A250;\r\nconst void * RTTI_CreationRendererPrivate__ProbeGridGPUCullingRenderPass = (void *)0x05D45420;\r\nconst void * RTTI_CreationRendererPrivate__ProbeLightCullingRenderPass = (void *)0x05D343E0;\r\nconst void * RTTI_CreationRendererPrivate__ProbeRenderPass = (void *)0x05D346C8;\r\nconst void * RTTI_CreationRendererPrivate__ProbeSystemRenderPass = (void *)0x05D34680;\r\nconst void * RTTI_CreationRendererPrivate__ProduceAndClearHeightfieldRenderPass = (void *)0x05D471B0;\r\nconst void * RTTI_CreationRendererPrivate__ProduceDynamicShadowMapDataRenderPass = (void *)0x05D4D0D0;\r\nconst void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITForwardHalfResTargetRenderPass = (void *)0x05D34E70;\r\nconst void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITParticleTargetsHalfResRenderPass = (void *)0x05D34E00;\r\nconst void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITTargetsAlwaysFullResRenderPass = (void *)0x05D34FA0;\r\nconst void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITTargetsHalfResRenderPass = (void *)0x05D34F40;\r\nconst void * RTTI_CreationRendererPrivate__ProduceMomentBasedOITTargetsRenderPass = (void *)0x05D34EE0;\r\nconst void * RTTI_CreationRendererPrivate__ProduceSceneDebugBuffersSubGraphRenderPass = (void *)0x05D42E20;\r\nconst void * RTTI_CreationRendererPrivate__ProduceShadingRateImageRenderPass = (void *)0x05D4C7D0;\r\nconst void * RTTI_CreationRendererPrivate__ProduceShadowMapCullingResourcesRenderPass = (void *)0x05D4A470;\r\nconst void * RTTI_CreationRendererPrivate__ProduceShadowMaskFrustumRenderPass = (void *)0x05D4F700;\r\nconst void * RTTI_CreationRendererPrivate__ProduceThinGBufferResourcesRenderPass = (void *)0x05D49D00;\r\nconst void * RTTI_CreationRendererPrivate__ProjectedDecalRenderPass = (void *)0x05D4C8D0;\r\nconst void * RTTI_CreationRendererPrivate__RadialBlurRenderPass = (void *)0x05D4CB90;\r\nconst void * RTTI_CreationRendererPrivate__RayTraceProbeComputeRenderPass = (void *)0x05D34630;\r\nconst void * RTTI_CreationRendererPrivate__RayTraceProbeNonRandomRaysComputeRenderPass = (void *)0x05D345D0;\r\nconst void * RTTI_CreationRendererPrivate__RaymarchSampleLocationsRenderPass = (void *)0x05D40870;\r\nconst void * RTTI_CreationRendererPrivate__RaymarchShadowedSampleLocationsRenderPass = (void *)0x05D40360;\r\nconst void * RTTI_CreationRendererPrivate__RaymarchUsingMinMaxShadowMapRenderPass = (void *)0x05D403C0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeBlendingSubGraphRenderPass = (void *)0x05D49EC0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeClearThinDeferredGBufferRenderPass = (void *)0x05D49AC0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeComputeSHRenderPass = (void *)0x05D4A030;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeCopyDepth = (void *)0x05D499C0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeCopySky = (void *)0x05D49970;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeFaceSubGraphRenderPass = (void *)0x05D49FD0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeGeometryCullingRenderPass = (void *)0x05D4A410;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeGeometryOffsetsRenderPass = (void *)0x05D49BE0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeLightCoarseCullingCompactionRenderPass = (void *)0x05D498A0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeLightCoarseCullingRenderPass = (void *)0x05D49910;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeMaterialIndexOffsetsRenderPass = (void *)0x05D49B20;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeMeshletCullingRenderPass = (void *)0x05D4A350;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeMeshletListBuildRenderPass = (void *)0x05D4A3B0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeMipChainRenderPass = (void *)0x05D49E70;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeOcclusionCullingRenderPass = (void *)0x05D4F150;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbePrefilterCubemapRenderPass = (void *)0x05D4A0E0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbePrepareDrawParamsRenderPass = (void *)0x05D49B80;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbePrepareGroupedDrawsRenderPass = (void *)0x05D49D60;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeRenderPass = (void *)0x05D4A1A0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeSceneSetupRenderPass = (void *)0x05D4A1F0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeShadowMapSceneSetupRenderPass = (void *)0x05D49DC0;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeSubGraphRenderPass = (void *)0x05D49E20;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeTerrainRenderPass = (void *)0x05D4A090;\r\nconst void * RTTI_CreationRendererPrivate__ReflectionProbeTriangleCullingRenderPass = (void *)0x05D4A2F0;\r\nconst void * RTTI_CreationRendererPrivate__RefractionBlurRenderPass = (void *)0x05D4AB20;\r\nconst void * RTTI_CreationRendererPrivate__RefractionDownsample0RenderPass = (void *)0x05D4ABD0;\r\nconst void * RTTI_CreationRendererPrivate__RefractionDownsampleMipChainRenderPass = (void *)0x05D4AB70;\r\nconst void * RTTI_CreationRendererPrivate__RefractionMaskDilationRenderPass = (void *)0x05D4AA20;\r\nconst void * RTTI_CreationRendererPrivate__RefractionMaskGenRenderPass = (void *)0x05D4AA70;\r\nconst void * RTTI_CreationRendererPrivate__RefractionMaskRenderPass = (void *)0x05D45C30;\r\nconst void * RTTI_CreationRendererPrivate__RenderCoarseUnshadowedInscatteringRenderPass = (void *)0x05D40810;\r\nconst void * RTTI_CreationRendererPrivate__RenderGraph = (void *)0x05D26B10;\r\nconst void * RTTI_CreationRendererPrivate__RenderGraphEventHandler = (void *)0x05D27740;\r\nconst void * RTTI_CreationRendererPrivate__RenderPass = (void *)0x05D12B00;\r\nconst void * RTTI_CreationRendererPrivate__RenderSceneSubGraph = (void *)0x05D4FAE0;\r\nconst void * RTTI_CreationRendererPrivate__RenderSliceUVDirAndOriginRenderPass = (void *)0x05D40420;\r\nconst void * RTTI_CreationRendererPrivate__RenderViewSubGraph = (void *)0x05D4E4D0;\r\nconst void * RTTI_CreationRendererPrivate__ReprojectShadingRateImageRenderPass = (void *)0x05D4C820;\r\nconst void * RTTI_CreationRendererPrivate__ResetCullingMemoryRequestHandler = (void *)0x05D3E420;\r\nconst void * RTTI_CreationRendererPrivate__ResourceLifecycleJobSite = (void *)0x05D38F70;\r\nconst void * RTTI_CreationRendererPrivate__SAOEmptyRenderPass = (void *)0x05D2E920;\r\nconst void * RTTI_CreationRendererPrivate__SAORenderPass = (void *)0x05D2E7D0;\r\nconst void * RTTI_CreationRendererPrivate__ScaleformCompositeRenderPass = (void *)0x05D4CBE0;\r\nconst void * RTTI_CreationRendererPrivate__ScaleformEventHandler = (void *)0x05D30990;\r\nconst void * RTTI_CreationRendererPrivate__ScaleformRenderPass = (void *)0x05D4F7B0;\r\nconst void * RTTI_CreationRendererPrivate__ScaleformText2DRenderPass = (void *)0x05D37770;\r\nconst void * RTTI_CreationRendererPrivate__ScaleformTextRenderPass = (void *)0x05D377C0;\r\nconst void * RTTI_CreationRendererPrivate__ScaleformToTextureRenderPass = (void *)0x05D4F760;\r\nconst void * RTTI_CreationRendererPrivate__SceneSetupRenderPass = (void *)0x05D12BA0;\r\nconst void * RTTI_CreationRendererPrivate__ScreenSpaceShadowsRenderPass = (void *)0x05D2B6E0;\r\nconst void * RTTI_CreationRendererPrivate__SeparableSSS_HorizontalRenderPass = (void *)0x05D4CCD0;\r\nconst void * RTTI_CreationRendererPrivate__SeparableSSS_VerticalRenderPass = (void *)0x05D4CC30;\r\nconst void * RTTI_CreationRendererPrivate__ServiceLocator = (void *)0x05D38BF0;\r\nconst void * RTTI_CreationRendererPrivate__SetupAtmosphericScatteringBuffersRenderPass = (void *)0x05D40640;\r\nconst void * RTTI_CreationRendererPrivate__SetupDynamicShadowRenderPass = (void *)0x05D4D530;\r\nconst void * RTTI_CreationRendererPrivate__ShadowInstanceBarriersRenderPass = (void *)0x05D4CEB0;\r\nconst void * RTTI_CreationRendererPrivate__ShadowManagerEventHandler = (void *)0x05D2F870;\r\nconst void * RTTI_CreationRendererPrivate__ShadowMapInstanceRenderPass = (void *)0x05D4CD70;\r\nconst void * RTTI_CreationRendererPrivate__ShadowMapRenderPass = (void *)0x05D4CD20;\r\nconst void * RTTI_CreationRendererPrivate__ShadowMapSceneSetupRenderPass = (void *)0x05D4CFC0;\r\nconst void * RTTI_CreationRendererPrivate__ShadowMapSubGraphRenderPass = (void *)0x05D4CE10;\r\nconst void * RTTI_CreationRendererPrivate__ShadowMaskRenderPass = (void *)0x05D4F6B0;\r\nconst void * RTTI_CreationRendererPrivate__ShadowSubGraphRenderPass = (void *)0x05D4CE60;\r\nconst void * RTTI_CreationRendererPrivate__SharedIndexBuffer = (void *)0x05D41A20;\r\nconst void * RTTI_CreationRendererPrivate__SharedMeshResourcesRegistry = (void *)0x05D426C0;\r\nconst void * RTTI_CreationRendererPrivate__SharedMeshletCullingDataBuffer = (void *)0x05D42130;\r\nconst void * RTTI_CreationRendererPrivate__SiteLocator = (void *)0x05D10D80;\r\nconst void * RTTI_CreationRendererPrivate__SkinnedDecalPrepareRenderPass = (void *)0x05D4D880;\r\nconst void * RTTI_CreationRendererPrivate__SkinningRenderPass = (void *)0x05D4D920;\r\nconst void * RTTI_CreationRendererPrivate__SkinningSystemEndFrameRenderPass = (void *)0x05D37F20;\r\nconst void * RTTI_CreationRendererPrivate__SkinningSystemRenderPass = (void *)0x05D37F70;\r\nconst void * RTTI_CreationRendererPrivate__SkyCubemapCelestialBodiesLightingRenderPass = (void *)0x05D38790;\r\nconst void * RTTI_CreationRendererPrivate__SkyCubemapRenderPass = (void *)0x05D38480;\r\nconst void * RTTI_CreationRendererPrivate__SkyCubemapSystemRenderPass = (void *)0x05D43200;\r\nconst void * RTTI_CreationRendererPrivate__SkyLightingRenderPass = (void *)0x05D4DA20;\r\nconst void * RTTI_CreationRendererPrivate__SkyOcclusionGenerateSHRenderPass = (void *)0x05D3E090;\r\nconst void * RTTI_CreationRendererPrivate__SkyOcclusionMaskRenderPass = (void *)0x05D3E0E0;\r\nconst void * RTTI_CreationRendererPrivate__SkyOcclusionRenderPass = (void *)0x05D3DFA0;\r\nconst void * RTTI_CreationRendererPrivate__SkyOcclusionSystemRenderPass = (void *)0x05D3DFF0;\r\nconst void * RTTI_CreationRendererPrivate__SobelSpaceGlareRenderPass = (void *)0x05D389A0;\r\nconst void * RTTI_CreationRendererPrivate__SpaceGlareApplyRenderPass = (void *)0x05D38A40;\r\nconst void * RTTI_CreationRendererPrivate__SpaceGlareCopyRenderPass = (void *)0x05D389F0;\r\nconst void * RTTI_CreationRendererPrivate__SpaceGlareRenderPass = (void *)0x05D388A0;\r\nconst void * RTTI_CreationRendererPrivate__SparseGridCell = (void *)0x05D3E320;\r\nconst void * RTTI_CreationRendererPrivate__SporadicRenderGraphRenderPass = (void *)0x05D4DA70;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldCoarseCullingRenderPass = (void *)0x05D4DC00;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldEventHandler = (void *)0x05D2AFE0;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldProcessStarsRenderPass = (void *)0x05D4DB10;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldRenderPass = (void *)0x05D4DB60;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldRenderPassBase = (void *)0x05D4DAC0;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldTiledCullingRenderPass = (void *)0x05D4DC50;\r\nconst void * RTTI_CreationRendererPrivate__StarfieldTiledRenderRenderPass = (void *)0x05D4DBB0;\r\nconst void * RTTI_CreationRendererPrivate__StarmapGravityWavesEventHandler = (void *)0x05D33D00;\r\nconst void * RTTI_CreationRendererPrivate__StarmapGravityWavesRenderPass = (void *)0x05D33760;\r\nconst void * RTTI_CreationRendererPrivate__StarmapOrbitsEventHandler = (void *)0x05D32E50;\r\nconst void * RTTI_CreationRendererPrivate__StarmapOrbitsRenderPass = (void *)0x05D32AF0;\r\nconst void * RTTI_CreationRendererPrivate__SubmitAndPresentThread = (void *)0x05D35EF0;\r\nconst void * RTTI_CreationRendererPrivate__SunDiskRenderPass = (void *)0x05D48EA0;\r\nconst void * RTTI_CreationRendererPrivate__SunDiskSkyCubemapRenderPass = (void *)0x05D385F0;\r\nconst void * RTTI_CreationRendererPrivate__SwapChainEventHandler = (void *)0x05D2AB70;\r\nconst void * RTTI_CreationRendererPrivate__TemporalAA_idTech7RenderPass = (void *)0x05D4FE80;\r\nconst void * RTTI_CreationRendererPrivate__TerrainClipmapAndMIMRenderPass = (void *)0x05D2A0A0;\r\nconst void * RTTI_CreationRendererPrivate__TerrainClipmapUpdateRenderPass = (void *)0x05D29E90;\r\nconst void * RTTI_CreationRendererPrivate__TerrainDensityUpdateRenderPass = (void *)0x05D29F30;\r\nconst void * RTTI_CreationRendererPrivate__TerrainDepthAndShadowsSubGraph = (void *)0x05D2A150;\r\nconst void * RTTI_CreationRendererPrivate__TerrainDepthDrawRenderPass = (void *)0x05D29EE0;\r\nconst void * RTTI_CreationRendererPrivate__TerrainHeightFieldRenderPass = (void *)0x05D47270;\r\nconst void * RTTI_CreationRendererPrivate__TerrainMIMUpdateRenderPass = (void *)0x05D29E40;\r\nconst void * RTTI_CreationRendererPrivate__TerrainRenderPass = (void *)0x05D2A200;\r\nconst void * RTTI_CreationRendererPrivate__TerrainShadowsRenderPass = (void *)0x05D2A050;\r\nconst void * RTTI_CreationRendererPrivate__TerrainTileDescriptionUpdateRenderPass = (void *)0x05D2A1A0;\r\nconst void * RTTI_CreationRendererPrivate__ThinDeferredExteriorPixelCountRenderPass = (void *)0x05D49A60;\r\nconst void * RTTI_CreationRendererPrivate__ThinDeferredGBufferRenderPass = (void *)0x05D49850;\r\nconst void * RTTI_CreationRendererPrivate__ThinDeferredLightingRenderPass = (void *)0x05D49A10;\r\nconst void * RTTI_CreationRendererPrivate__ThinDeferredPrepareRenderPass = (void *)0x05D4A2A0;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7BinLightsRenderPass = (void *)0x05D3F6E0;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7CacheIndirectLightingRenderPass = (void *)0x05D3F7A0;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7ClipLightsRenderPass = (void *)0x05D3F430;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7CoarseBinLightsRenderPass = (void *)0x05D3F500;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7CoarseIndirectArgsLightsRenderPass = (void *)0x05D3F560;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7IndirectArgsLightsRenderPass = (void *)0x05D3F740;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7InitBuffersRenderPass = (void *)0x05D3F5D0;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7RenderPass = (void *)0x05D3F630;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7ResolveLightBinsRenderPass = (void *)0x05D3F680;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7SampleIndirectLightingRenderPass = (void *)0x05D3F810;\r\nconst void * RTTI_CreationRendererPrivate__TiledBinning_idTech7TransformVerticesLightsRenderPass = (void *)0x05D3F490;\r\nconst void * RTTI_CreationRendererPrivate__TiledCullingRenderPass = (void *)0x05D4DCA0;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredContactShadowsBlurXRenderPass = (void *)0x05D2B790;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredContactShadowsBlurYRenderPass = (void *)0x05D2B730;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredContactShadowsRenderPass = (void *)0x05D2B680;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredLightingDebugVisualizationRenderPass = (void *)0x05D4DDB0;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredLightingPrepareRenderPass = (void *)0x05D4DCF0;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredLightingProcessLightsRenderPass = (void *)0x05D4DE10;\r\nconst void * RTTI_CreationRendererPrivate__TiledDeferredLightingRecordIndirectArgsRenderPass = (void *)0x05D4DD50;\r\nconst void * RTTI_CreationRendererPrivate__TiledDepthRangeRenderPass = (void *)0x05D4DE70;\r\nconst void * RTTI_CreationRendererPrivate__TransparencyAwareShadowedScatteringRenderPass = (void *)0x05D40590;\r\nconst void * RTTI_CreationRendererPrivate__UIRenderPass = (void *)0x05D4DF78;\r\nconst void * RTTI_CreationRendererPrivate__UnsortedForwardBlendedPostMBOITRenderPass = (void *)0x05D45C80;\r\nconst void * RTTI_CreationRendererPrivate__UnsortedForwardBlendedPreCloudsRenderPass = (void *)0x05D45ED0;\r\nconst void * RTTI_CreationRendererPrivate__UnsortedForwardBlendedPreMBOITRenderPass = (void *)0x05D45F30;\r\nconst void * RTTI_CreationRendererPrivate__UnwarpEpipolarSamplingRenderPass = (void *)0x05D40B90;\r\nconst void * RTTI_CreationRendererPrivate__UpdateMotionVectorHistoryRenderPass = (void *)0x05D43030;\r\nconst void * RTTI_CreationRendererPrivate__UpdatePreviousDepthBufferRenderPass = (void *)0x05D43100;\r\nconst void * RTTI_CreationRendererPrivate__UpdateSharedIndexBufferRenderPass = (void *)0x05D4DFC0;\r\nconst void * RTTI_CreationRendererPrivate__UpscaleSubGraph = (void *)0x05D28430;\r\nconst void * RTTI_CreationRendererPrivate__VignetteRenderPass = (void *)0x05D4FED0;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingApplyRenderPass = (void *)0x05D2F370;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingCullingRenderPass = (void *)0x05D4E010;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingDistantRaymarchRenderPass = (void *)0x05D4E070;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingDistantTemporalFilteringRenderPass = (void *)0x05D4E0D0;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingDownsampleDepthRenderPass = (void *)0x05D460B0;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingGenerateMaterialVolumeRenderPass = (void *)0x05D46040;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingIntegrateRenderPass = (void *)0x05D4E140;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingNearSpatialFilteringRenderPass = (void *)0x05D4E1A0;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingNearTemporalFilteringRenderPass = (void *)0x05D4E200;\r\nconst void * RTTI_CreationRendererPrivate__VolumetricLightingProcessLightsRenderPass = (void *)0x05D4E260;\r\nconst void * RTTI_CreationRendererPrivate__WaterDisplacementRenderPass = (void *)0x05D2E610;\r\nconst void * RTTI_CreationRendererPrivate__WaterDisplacement_ConvertNormalsRenderPass = (void *)0x05D2E770;\r\nconst void * RTTI_CreationRendererPrivate__WaterDisplacement_InjectionRenderPass = (void *)0x05D2E660;\r\nconst void * RTTI_CreationRendererPrivate__WaterDisplacement_MainRenderPass = (void *)0x05D2E720;\r\nconst void * RTTI_CreationRendererPrivate__WaterDisplacement_PlaceRipplesRenderPass = (void *)0x05D2E6C0;\r\nconst void * RTTI_CreationRendererPrivate__WaterMVRenderPass = (void *)0x05D4E350;\r\nconst void * RTTI_CreationRendererPrivate__WaterPrepareRenderPass = (void *)0x05D4E300;\r\nconst void * RTTI_CreationRendererPrivate__WaterRenderGraphRenderPass = (void *)0x05D4E390;\r\nconst void * RTTI_CreationRendererPrivate__WaterRenderPass = (void *)0x05D4E2B8;\r\nconst void * RTTI_CreationRendererPrivate__WetnessOcclusionMaskRenderPass = (void *)0x05D3E230;\r\nconst void * RTTI_CreationRendererPrivate__WindowEventHandler = (void *)0x05D28E40;\r\nconst void * RTTI_CreationRendererPrivate__WorldCell = (void *)0x05D3E280;\r\nconst void * RTTI_CreationRendererPrivate__XeSSProduceInputsRenderPass = (void *)0x05D4B600;\r\nconst void * RTTI_CreationRendererPrivate__XeSSUpscaleRenderPass = (void *)0x05D44670;\r\nconst void * RTTI_CreationRenderer__ImageCaptureExportToFileNode = (void *)0x05B3D740;\r\nconst void * RTTI_CreationRenderer__MaterialInstance__TextureVisitor = (void *)0x05A0E8D0;\r\nconst void * RTTI_CreationRenderer__Messaging__MessageProcessor = (void *)0x05D10FC0;\r\nconst void * RTTI_CreationRenderer__Messaging__StreamedResourceNode = (void *)0x05CB04E0;\r\nconst void * RTTI_CreationRenderer__RendererQualityPref = (void *)0x05D12248;\r\nconst void * RTTI_CreationRenderer__RendererQualitySetting = (void *)0x059D74F8;\r\nconst void * RTTI_CreationRenderer__RendererQualitySettingCollection = (void *)0x05D12290;\r\nconst void * RTTI_CreationUninstalledEventListener = (void *)0x05AE3790;\r\nconst void * RTTI_CreationsLibraryData = (void *)0x05AD78D0;\r\nconst void * RTTI_CreationsLibraryDataModel = (void *)0x05AD7CE8;\r\nconst void * RTTI_CreationsLibraryDataModel__CreationsLibraryModelEventShuttle = (void *)0x05AD7BD0;\r\nconst void * RTTI_CreationsLibraryEntryData = (void *)0x05AD7AA8;\r\nconst void * RTTI_CreditsDataModel = (void *)0x05AD83C0;\r\nconst void * RTTI_CreditsDataModel__CreditsDataModelEventShuttle = (void *)0x05AD8270;\r\nconst void * RTTI_CreditsMenu = (void *)0x05C4CB18;\r\nconst void * RTTI_CrewExtraData = (void *)0x059DA220;\r\nconst void * RTTI_CriticallyDampenVariable = (void *)0x05C98EC0;\r\nconst void * RTTI_CriticallyDampenVariableInstance = (void *)0x05C98EF0;\r\nconst void * RTTI_CrowdInhibitNullStrategy = (void *)0x05ACC650;\r\nconst void * RTTI_CrowdInhibitStrategyDefault = (void *)0x05ACC6B8;\r\nconst void * RTTI_CrowdInhibitStrategyDisable = (void *)0x05ACC680;\r\nconst void * RTTI_CrowdManager = (void *)0x05ACC5A0;\r\nconst void * RTTI_CrowdWallaBubble = (void *)0x05AD1D08;\r\nconst void * RTTI_CullFurnitureBoneHandler = (void *)0x05BCF018;\r\nconst void * RTTI_CullWeaponsHandler = (void *)0x05BCEFB0;\r\nconst void * RTTI_CumulativeAnimation = (void *)0x05C98E28;\r\nconst void * RTTI_CumulativeAnimationInstance = (void *)0x05C98DF0;\r\nconst void * RTTI_CureEffect = (void *)0x05B7EF58;\r\nconst void * RTTI_CursorMenu = (void *)0x05CD59D0;\r\nconst void * RTTI_CursorMenu__CursorGameEventShuttle = (void *)0x05CD59F8;\r\nconst void * RTTI_CursorMoveEvent = (void *)0x05C9D548;\r\nconst void * RTTI_CurvedPathBlender = (void *)0x05C95DE0;\r\nconst void * RTTI_CurvedPathBlenderInstance = (void *)0x05C989B0;\r\nconst void * RTTI_CustomActorPackageData = (void *)0x05BB8910;\r\nconst void * RTTI_CustomUtils__HasForceGreetVisitor = (void *)0x05A98318;\r\nconst void * RTTI_D3D12MA__BlockMetadata = (void *)0x05D46BA0;\r\nconst void * RTTI_D3D12MA__BlockMetadata_Generic = (void *)0x05D46C00;\r\nconst void * RTTI_D3D12MA__MemoryBlock = (void *)0x05D46BD0;\r\nconst void * RTTI_D3D12MA__NormalBlock = (void *)0x05D46B70;\r\nconst void * RTTI_DamageEffect = (void *)0x05B7EF80;\r\nconst void * RTTI_DampenVariable = (void *)0x05C99400;\r\nconst void * RTTI_DampenVariableInstance = (void *)0x05C993D0;\r\nconst void * RTTI_DarknessEffect = (void *)0x05B7EFA8;\r\nconst void * RTTI_DataMenu = (void *)0x05B5AEC8;\r\nconst void * RTTI_DataMenuDataModel = (void *)0x05AF6680;\r\nconst void * RTTI_DataMenuDataModel__DataMenuEventShuttle = (void *)0x05AF6A50;\r\nconst void * RTTI_DataMenuInventoryItem = (void *)0x05AF6438;\r\nconst void * RTTI_DataMenuPersistentDataModel = (void *)0x05AF6500;\r\nconst void * RTTI_DataMenuPersistentDataModel__DataMenuPersistentDataEventShuttle = (void *)0x05AF6590;\r\nconst void * RTTI_DataMenu_CloseMenu = (void *)0x05B5B268;\r\nconst void * RTTI_DataMenu_ClosedForSubMenu = (void *)0x05B5B1E8;\r\nconst void * RTTI_DataMenu_Missions = (void *)0x05B5AFD0;\r\nconst void * RTTI_DataMenu_OpenPauseMenu = (void *)0x05B5ADB8;\r\nconst void * RTTI_DataMenu_PlotToLocation = (void *)0x05B5B168;\r\nconst void * RTTI_DataMenu_Reopened = (void *)0x05B5B2E0;\r\nconst void * RTTI_DataMenu_SelectedAlmanacMenu = (void *)0x05B5AE40;\r\nconst void * RTTI_DataMenu_SelectedAttributesMenu = (void *)0x05B5B610;\r\nconst void * RTTI_DataMenu_SelectedInventoryMenu = (void *)0x05B5B3F0;\r\nconst void * RTTI_DataMenu_SelectedMapMenu = (void *)0x05B5B478;\r\nconst void * RTTI_DataMenu_SelectedPowersMenu = (void *)0x05B5B0E0;\r\nconst void * RTTI_DataMenu_SelectedShipMenu = (void *)0x05B5B4F8;\r\nconst void * RTTI_DataMenu_SelectedStatusMenu = (void *)0x05B5B580;\r\nconst void * RTTI_DataMenu_SetMenuForQuickEntry = (void *)0x05B5B050;\r\nconst void * RTTI_DataMenu_SetPaperDollActive = (void *)0x05B5B360;\r\nconst void * RTTI_DataMenu_StartCloseAnim = (void *)0x05AF7400;\r\nconst void * RTTI_DataSlateButtons = (void *)0x05B31190;\r\nconst void * RTTI_DataSlateButtons_acceptClicked = (void *)0x05B32618;\r\nconst void * RTTI_DataSlateButtons_cancelClicked = (void *)0x05B323E8;\r\nconst void * RTTI_DataSlateMenu = (void *)0x05B32378;\r\nconst void * RTTI_DataSlateMenu__DataSlateData = (void *)0x05B322F8;\r\nconst void * RTTI_DataSlateMenu__DataSlateEventShuttle = (void *)0x05B321D0;\r\nconst void * RTTI_DataSlateMenu_playSFX = (void *)0x05B326A0;\r\nconst void * RTTI_DataSlateMenu_toggleAudio = (void *)0x05B32598;\r\nconst void * RTTI_DeathEmoteHandler = (void *)0x05BCF248;\r\nconst void * RTTI_DeathStopHandler = (void *)0x05BCF328;\r\nconst void * RTTI_DefaultCollection = (void *)0x05CB2878;\r\nconst void * RTTI_DefaultMessageBoxCallback = (void *)0x05A7E5A0;\r\nconst void * RTTI_DeferredDeletion__IDeferredDeleter = (void *)0x05B8E618;\r\nconst void * RTTI_DeferredDeletion__IGCService = (void *)0x05B92198;\r\nconst void * RTTI_DemoralizeEffect = (void *)0x05B80BE0;\r\nconst void * RTTI_DependentAnimationGraphManagerHolder = (void *)0x059C42D8;\r\nconst void * RTTI_DescriptionBox = (void *)0x05D55378;\r\nconst void * RTTI_DesyncInteractionHandler = (void *)0x05BCB5E0;\r\nconst void * RTTI_DetectLifeEffect = (void *)0x05B7EFD0;\r\nconst void * RTTI_DetectionCollector = (void *)0x05B7F0D0;\r\nconst void * RTTI_DetectionDebugData = (void *)0x05BB8AD8;\r\nconst void * RTTI_DetectionState = (void *)0x05BB8AB0;\r\nconst void * RTTI_DeviceChangeEvent = (void *)0x05C9D4A0;\r\nconst void * RTTI_DeviceChangeHandler = (void *)0x05C540A8;\r\nconst void * RTTI_DeviceConnectEvent = (void *)0x05C9D4C8;\r\nconst void * RTTI_DialogueCameraState = (void *)0x05AA9228;\r\nconst void * RTTI_DialogueMenu = (void *)0x05C4D238;\r\nconst void * RTTI_DialogueMenu_CompleteExit = (void *)0x05B22C48;\r\nconst void * RTTI_DialogueMenu_OnDialogueSelect = (void *)0x05C4E338;\r\nconst void * RTTI_DialogueMenu_OnListVisibilityChange = (void *)0x05C4E078;\r\nconst void * RTTI_DialogueMenu_OnPersuasionAutoWin = (void *)0x05C4E248;\r\nconst void * RTTI_DialogueMenu_RequestExit = (void *)0x05C4D180;\r\nconst void * RTTI_DialogueMenu_RequestSkipDialogue = (void *)0x05C4D1B0;\r\nconst void * RTTI_DialoguePackage = (void *)0x05A98240;\r\nconst void * RTTI_DialogueUIDataModel = (void *)0x05B22B78;\r\nconst void * RTTI_DialogueUIDataModel__DialogueData = (void *)0x05B22490;\r\nconst void * RTTI_DialogueUIDataModel__DialogueEntryData = (void *)0x05B22AA8;\r\nconst void * RTTI_DialogueUIDataModel__DialogueListData = (void *)0x05B228B0;\r\nconst void * RTTI_DialogueUIDataModel__DialogueUIDataEventShuttle = (void *)0x05B22A60;\r\nconst void * RTTI_DialogueUIDataModel__PersuasionEntryData = (void *)0x05B22AE8;\r\nconst void * RTTI_DialogueUIDataModel__PersuasionListData = (void *)0x05B22808;\r\nconst void * RTTI_DialogueUIDataModel__PersuasionPointsData = (void *)0x05B22450;\r\nconst void * RTTI_DirectAtNode = (void *)0x05C99918;\r\nconst void * RTTI_DirectAtNodeInstance = (void *)0x05C99940;\r\nconst void * RTTI_DisableCharacterBumperHandler = (void *)0x05BCF5A0;\r\nconst void * RTTI_DisableCharacterControllerHandler = (void *)0x05BCA2B0;\r\nconst void * RTTI_DisableCharacterPitchHandler = (void *)0x05BCED00;\r\nconst void * RTTI_DisableCollisionHandler = (void *)0x05BCF538;\r\nconst void * RTTI_DisarmEffect = (void *)0x05B7EFF8;\r\nconst void * RTTI_DisconnectHandler = (void *)0x05C54000;\r\nconst void * RTTI_DisguiseEffect = (void *)0x05B7F048;\r\nconst void * RTTI_DisguiseEffect__DetectionChecker = (void *)0x05B7F098;\r\nconst void * RTTI_DispelEffect = (void *)0x05B7F100;\r\nconst void * RTTI_DiveBombPathController = (void *)0x05C11720;\r\nconst void * RTTI_DoNotInterruptAnimationHandler = (void *)0x05BCF3B0;\r\nconst void * RTTI_DocAcceptDataModel = (void *)0x05B02A58;\r\nconst void * RTTI_DocAcceptDataModel__DocAcceptEventShuttle = (void *)0x05B029A0;\r\nconst void * RTTI_DocAcceptMenu = (void *)0x05AE2088;\r\nconst void * RTTI_DocAcceptMenu_Accept = (void *)0x05AE20F8;\r\nconst void * RTTI_DoorObstacleAdapter = (void *)0x05B99258;\r\nconst void * RTTI_DownloadAll = (void *)0x05C81750;\r\nconst void * RTTI_DownloadProgressBar = (void *)0x05D53B60;\r\nconst void * RTTI_DownloadableContent = (void *)0x05C81248;\r\nconst void * RTTI_DownloadingPopUp = (void *)0x05D54A28;\r\nconst void * RTTI_DropResourcesEffect = (void *)0x05B7FF00;\r\nconst void * RTTI_DrugsCraftingMenu = (void *)0x05B5C518;\r\nconst void * RTTI_DualDirectAtNode = (void *)0x05C998C0;\r\nconst void * RTTI_DualDirectAtNodeInstance = (void *)0x05C998E8;\r\nconst void * RTTI_DualValueModifierEffect = (void *)0x05B7F128;\r\nconst void * RTTI_DynamicAnimationNode = (void *)0x05C99598;\r\nconst void * RTTI_DynamicAnimationNodeInstance = (void *)0x05C995C8;\r\nconst void * RTTI_DynamicGraphReference = (void *)0x05C987F8;\r\nconst void * RTTI_DynamicGraphReferenceInstance = (void *)0x05C987C0;\r\nconst void * RTTI_DynamicIdleDataSingletonHelper = (void *)0x059C45D8;\r\nconst void * RTTI_DynamicNavMeshTask = (void *)0x059D0858;\r\nconst void * RTTI_DynamicNavMeshTaskCellRemap = (void *)0x059D0820;\r\nconst void * RTTI_DynamicNavMeshTaskStitching = (void *)0x059D07E8;\r\nconst void * RTTI_DynamicNavmesh = (void *)0x05A13F68;\r\nconst void * RTTI_DynamicNavmeshService = (void *)0x059D5958;\r\nconst void * RTTI_EffectArchetypes__MainStatusHandler = (void *)0x059F5B90;\r\nconst void * RTTI_EffectSequenceMap = (void *)0x059D96A8;\r\nconst void * RTTI_EffectSequenceNode = (void *)0x05C95E30;\r\nconst void * RTTI_EffectSequenceNodeInstance = (void *)0x05C989E0;\r\nconst void * RTTI_EffectSequence__EffectSequenceManager = (void *)0x059D9378;\r\nconst void * RTTI_EffectSequence__IFormInitialized = (void *)0x059D99E0;\r\nconst void * RTTI_EffectSetting = (void *)0x05992A78;\r\nconst void * RTTI_EjectShellCasingHandler = (void *)0x05BCB148;\r\nconst void * RTTI_EmittanceManagerAgent = (void *)0x059C46B8;\r\nconst void * RTTI_EmitterProjectile = (void *)0x05AAFBF0;\r\nconst void * RTTI_EmptyDependencyFormPointerMapValue = (void *)0x05A60440;\r\nconst void * RTTI_EnableCharacterBumperHandler = (void *)0x05BCF568;\r\nconst void * RTTI_EnableCharacterControllerHandler = (void *)0x05BCA1A8;\r\nconst void * RTTI_EnableCharacterPitchHandler = (void *)0x05BCEDA0;\r\nconst void * RTTI_EnableCollisionHandler = (void *)0x05BCF508;\r\nconst void * RTTI_EnchantmentItem = (void *)0x059F5D48;\r\nconst void * RTTI_EndGameCreditsMenu = (void *)0x05AE2528;\r\nconst void * RTTI_EndSecurityMinigameHandler = (void *)0x05BCB3D0;\r\nconst void * RTTI_EndSummonAnimationHandler = (void *)0x05BCF3E8;\r\nconst void * RTTI_EnhanceWeaponEffect = (void *)0x05B8D630;\r\nconst void * RTTI_EnsureAliasCanBePickpocketedFunc = (void *)0x05AFA0A0;\r\nconst void * RTTI_EquippedItemData = (void *)0x05ACC970;\r\nconst void * RTTI_EquippedSpell__Data = (void *)0x05ACC940;\r\nconst void * RTTI_EquippedWeapon__AimModule = (void *)0x05ACC9C8;\r\nconst void * RTTI_EquippedWeapon__AmmunitionModule = (void *)0x05ACCA28;\r\nconst void * RTTI_EquippedWeapon__AudioModule = (void *)0x05ACCB58;\r\nconst void * RTTI_EquippedWeapon__Data = (void *)0x05ACC998;\r\nconst void * RTTI_EquippedWeapon__IModule = (void *)0x05ACC9F8;\r\nconst void * RTTI_EquippedWeapon__MeleeAttackModule = (void *)0x05ACCA98;\r\nconst void * RTTI_EquippedWeapon__PowerModule = (void *)0x05ACCAD0;\r\nconst void * RTTI_EquippedWeapon__RangedAttackModule = (void *)0x05ACCC68;\r\nconst void * RTTI_EquippedWeapon__VariableRangeModule = (void *)0x05ACCCA0;\r\nconst void * RTTI_EquippedWeapon__VisualModule = (void *)0x05ACCCE0;\r\nconst void * RTTI_EtherealizationEffect = (void *)0x05B7F158;\r\nconst void * RTTI_EvaluateConditionVariable = (void *)0x05C98E90;\r\nconst void * RTTI_EvaluateConditionVariableInstance = (void *)0x05C98E58;\r\nconst void * RTTI_EventController = (void *)0x05C99490;\r\nconst void * RTTI_EventControllerInstance = (void *)0x05C994B8;\r\nconst void * RTTI_EventDispatcherBackend = (void *)0x05CD5960;\r\nconst void * RTTI_EventFromRange = (void *)0x05C991A0;\r\nconst void * RTTI_EventFromRangeInstance = (void *)0x05C991C8;\r\nconst void * RTTI_EveryNEvents = (void *)0x05C99310;\r\nconst void * RTTI_EveryNEventsInstance = (void *)0x05C99338;\r\nconst void * RTTI_ExecuteOnAliasedRefFunc = (void *)0x059F6FE8;\r\nconst void * RTTI_ExitChargen_ConfirmCallback = (void *)0x05B536A8;\r\nconst void * RTTI_ExitVehicleEvent = (void *)0x05AD87C8;\r\nconst void * RTTI_Explosion = (void *)0x05B8D420;\r\nconst void * RTTI_ExplosionClosestHitCollector = (void *)0x05BD1ED8;\r\nconst void * RTTI_Explosion__Manager = (void *)0x05B9E800;\r\nconst void * RTTI_ExplosiveIndicatorDataModel = (void *)0x05AF7880;\r\nconst void * RTTI_ExplosiveIndicatorDataModel__ExplosiveIndicatorEventShuttle = (void *)0x05AF78C0;\r\nconst void * RTTI_ExternalDataSourceMainStatusHandler = (void *)0x059E0AA0;\r\nconst void * RTTI_ExtraAcousticParent = (void *)0x059F8CB8;\r\nconst void * RTTI_ExtraAction = (void *)0x059F9558;\r\nconst void * RTTI_ExtraActivateRef = (void *)0x059F9778;\r\nconst void * RTTI_ExtraActivateText = (void *)0x059F7250;\r\nconst void * RTTI_ExtraActorCause = (void *)0x059F79E8;\r\nconst void * RTTI_ExtraActorValueStorage = (void *)0x059F7220;\r\nconst void * RTTI_ExtraAliasInstanceArray = (void *)0x059F9240;\r\nconst void * RTTI_ExtraAmmo = (void *)0x059F77B8;\r\nconst void * RTTI_ExtraAnimGraphManager = (void *)0x059F9580;\r\nconst void * RTTI_ExtraAnimGraphPreload = (void *)0x059F8B68;\r\nconst void * RTTI_ExtraAnimSounds = (void *)0x059F71C8;\r\nconst void * RTTI_ExtraAshPileRef = (void *)0x059F8D68;\r\nconst void * RTTI_ExtraAttachRef = (void *)0x059F7600;\r\nconst void * RTTI_ExtraAttachRefChildren = (void *)0x059F75D0;\r\nconst void * RTTI_ExtraAttachedArrows3D = (void *)0x059F6E58;\r\nconst void * RTTI_ExtraBadPosition = (void *)0x059F7D90;\r\nconst void * RTTI_ExtraBendableSplineParams = (void *)0x059DA248;\r\nconst void * RTTI_ExtraBlueprintPartOriginData = (void *)0x059F7800;\r\nconst void * RTTI_ExtraBody = (void *)0x059F90E8;\r\nconst void * RTTI_ExtraBoneScaleMap = (void *)0x059F7168;\r\nconst void * RTTI_ExtraBountyCrimeList = (void *)0x059F97A0;\r\nconst void * RTTI_ExtraCachedScale = (void *)0x059F7360;\r\nconst void * RTTI_ExtraCalcedPackIn = (void *)0x059F6CE8;\r\nconst void * RTTI_ExtraCanTalkToPlayer = (void *)0x059F91A8;\r\nconst void * RTTI_ExtraCannotWear = (void *)0x059F9698;\r\nconst void * RTTI_ExtraCell3D = (void *)0x059F6448;\r\nconst void * RTTI_ExtraCellAcousticSpace = (void *)0x059F64A0;\r\nconst void * RTTI_ExtraCellEnvMap = (void *)0x059F6EB8;\r\nconst void * RTTI_ExtraCellGlobalDirtLayer = (void *)0x059F64D0;\r\nconst void * RTTI_ExtraCellImageSpace = (void *)0x059F63F0;\r\nconst void * RTTI_ExtraCellMusicType = (void *)0x059F6560;\r\nconst void * RTTI_ExtraCellSkyRegion = (void *)0x059F6370;\r\nconst void * RTTI_ExtraCellWaterEnvMap = (void *)0x059F6E88;\r\nconst void * RTTI_ExtraCellWaterType = (void *)0x059F6470;\r\nconst void * RTTI_ExtraCharge = (void *)0x059F7C10;\r\nconst void * RTTI_ExtraCollisionData = (void *)0x059F7018;\r\nconst void * RTTI_ExtraCombatStyle = (void *)0x059F6FC0;\r\nconst void * RTTI_ExtraConstrainedDecalData = (void *)0x059F7278;\r\nconst void * RTTI_ExtraCount = (void *)0x059F7FE8;\r\nconst void * RTTI_ExtraCreatureAwakeSound = (void *)0x059F7AC0;\r\nconst void * RTTI_ExtraCulledBone = (void *)0x059F7EA0;\r\nconst void * RTTI_ExtraCulledSubsegment = (void *)0x059F73B0;\r\nconst void * RTTI_ExtraDirectAtTarget = (void *)0x059F8E18;\r\nconst void * RTTI_ExtraDroppedItemList = (void *)0x059F95D8;\r\nconst void * RTTI_ExtraEditorID = (void *)0x059F78F8;\r\nconst void * RTTI_ExtraEditorRefMoveData = (void *)0x059F8F90;\r\nconst void * RTTI_ExtraEmittanceSource = (void *)0x059F8BF8;\r\nconst void * RTTI_ExtraEnableStateChildren = (void *)0x059F9828;\r\nconst void * RTTI_ExtraEnableStateParent = (void *)0x059F97F8;\r\nconst void * RTTI_ExtraEnchantment = (void *)0x059F7D68;\r\nconst void * RTTI_ExtraEncounterZone = (void *)0x059F92C8;\r\nconst void * RTTI_ExtraEssentialProtected = (void *)0x059F7048;\r\nconst void * RTTI_ExtraExteriorReflectionProbeAdjustmentVolume = (void *)0x059F9160;\r\nconst void * RTTI_ExtraExternalEmittanceData = (void *)0x059F6BC0;\r\nconst void * RTTI_ExtraFXPickNodes = (void *)0x059F7078;\r\nconst void * RTTI_ExtraFactionChanges = (void *)0x059F93A8;\r\nconst void * RTTI_ExtraFavorCost = (void *)0x059F7DE0;\r\nconst void * RTTI_ExtraFavorite = (void *)0x059F78D0;\r\nconst void * RTTI_ExtraFlags = (void *)0x059F7C38;\r\nconst void * RTTI_ExtraFogVolume = (void *)0x059F9270;\r\nconst void * RTTI_ExtraFollower = (void *)0x059F7B20;\r\nconst void * RTTI_ExtraFollowerSwimBreadcrumbs = (void *)0x059F9208;\r\nconst void * RTTI_ExtraForcedLandingMarker = (void *)0x059F6E28;\r\nconst void * RTTI_ExtraForcedTarget = (void *)0x059F7D40;\r\nconst void * RTTI_ExtraFriendHits = (void *)0x059F8BD0;\r\nconst void * RTTI_ExtraFromAlias = (void *)0x059F7410;\r\nconst void * RTTI_ExtraFurnitureEntryData = (void *)0x059F8A78;\r\nconst void * RTTI_ExtraGeometryDirtynessScale = (void *)0x059F7898;\r\nconst void * RTTI_ExtraGhost = (void *)0x059F96F0;\r\nconst void * RTTI_ExtraGlobal = (void *)0x059F80B0;\r\nconst void * RTTI_ExtraGroupedPackin = (void *)0x059F6AD0;\r\nconst void * RTTI_ExtraGuardedRefData = (void *)0x059F8FC0;\r\nconst void * RTTI_ExtraHasNoRumors = (void *)0x059F7460;\r\nconst void * RTTI_ExtraHavok = (void *)0x059F6420;\r\nconst void * RTTI_ExtraHeadTrackingWeight = (void *)0x059F7E08;\r\nconst void * RTTI_ExtraHeadingTarget = (void *)0x059F7A40;\r\nconst void * RTTI_ExtraHealth = (void *)0x059F7BC0;\r\nconst void * RTTI_ExtraHorse = (void *)0x059F7CE8;\r\nconst void * RTTI_ExtraIgnoredAttractKeywords = (void *)0x059F7190;\r\nconst void * RTTI_ExtraIgnoredBySandbox = (void *)0x059F8FF0;\r\nconst void * RTTI_ExtraInitActions = (void *)0x059DA278;\r\nconst void * RTTI_ExtraInputEnableLayer = (void *)0x059F8DE8;\r\nconst void * RTTI_ExtraInstanceData = (void *)0x059F8EA8;\r\nconst void * RTTI_ExtraInteraction = (void *)0x059F9020;\r\nconst void * RTTI_ExtraInvestedGold = (void *)0x059F70C8;\r\nconst void * RTTI_ExtraItemDropper = (void *)0x059F95B0;\r\nconst void * RTTI_ExtraKeywords = (void *)0x059F6D78;\r\nconst void * RTTI_ExtraLargeRefOwnerCells = (void *)0x059F6F08;\r\nconst void * RTTI_ExtraLastFinishedSequence = (void *)0x059F96C0;\r\nconst void * RTTI_ExtraLegendary = (void *)0x059F7680;\r\nconst void * RTTI_ExtraLevCreaModifier = (void *)0x059F8C58;\r\nconst void * RTTI_ExtraLeveledBaseObject = (void *)0x059F8C28;\r\nconst void * RTTI_ExtraLeveledCreature = (void *)0x059F9500;\r\nconst void * RTTI_ExtraLeveledItem = (void *)0x059F8058;\r\nconst void * RTTI_ExtraLight = (void *)0x059F94D8;\r\nconst void * RTTI_ExtraLightAreaData = (void *)0x059F81D8;\r\nconst void * RTTI_ExtraLightBarndoorData = (void *)0x059F7EF8;\r\nconst void * RTTI_ExtraLightColorData = (void *)0x059F8208;\r\nconst void * RTTI_ExtraLightData = (void *)0x059F6EE0;\r\nconst void * RTTI_ExtraLightFlickerData = (void *)0x059F81A8;\r\nconst void * RTTI_ExtraLightGoboData = (void *)0x059F8238;\r\nconst void * RTTI_ExtraLightLayerData = (void *)0x059F8130;\r\nconst void * RTTI_ExtraLightRoundnessData = (void *)0x059F7EC8;\r\nconst void * RTTI_ExtraLightStaticShadowMapData = (void *)0x059F6F60;\r\nconst void * RTTI_ExtraLightVolumetricData = (void *)0x059F8100;\r\nconst void * RTTI_ExtraLinkedChildrenAliasInstanceArray = (void *)0x059F8ED0;\r\nconst void * RTTI_ExtraLinkedRef = (void *)0x059F7B70;\r\nconst void * RTTI_ExtraLinkedRefChildren = (void *)0x059F9718;\r\nconst void * RTTI_ExtraLitWaterRefs = (void *)0x059F7548;\r\nconst void * RTTI_ExtraLocation = (void *)0x059F7628;\r\nconst void * RTTI_ExtraLocationRefType = (void *)0x059F9748;\r\nconst void * RTTI_ExtraLock = (void *)0x059F8188;\r\nconst void * RTTI_ExtraLockList = (void *)0x059F7388;\r\nconst void * RTTI_ExtraMagicCaster = (void *)0x059F6AA8;\r\nconst void * RTTI_ExtraMapMarker = (void *)0x059F9530;\r\nconst void * RTTI_ExtraMaterialSwap = (void *)0x059F6DD0;\r\nconst void * RTTI_ExtraMissingRefIDs = (void *)0x059F7C88;\r\nconst void * RTTI_ExtraModIndex = (void *)0x059F6C98;\r\nconst void * RTTI_ExtraModRank = (void *)0x059F6F38;\r\nconst void * RTTI_ExtraModelSwap = (void *)0x059F7438;\r\nconst void * RTTI_ExtraNavMeshPortal = (void *)0x059F7E70;\r\nconst void * RTTI_ExtraNorthRotation = (void *)0x059F6530;\r\nconst void * RTTI_ExtraObjectBreakable = (void *)0x059F71F0;\r\nconst void * RTTI_ExtraObjectSavedDynamicIdles = (void *)0x059F7130;\r\nconst void * RTTI_ExtraObjectSavedUnrecoverableSubgraphs = (void *)0x059F70F0;\r\nconst void * RTTI_ExtraOcclusionPlaneRefData = (void *)0x059F7E38;\r\nconst void * RTTI_ExtraOpenCloseActivateRef = (void *)0x059F73E0;\r\nconst void * RTTI_ExtraOriginalBaseObject = (void *)0x059F7308;\r\nconst void * RTTI_ExtraOriginalReference = (void *)0x059F7AF0;\r\nconst void * RTTI_ExtraOutfitItem = (void *)0x059F8030;\r\nconst void * RTTI_ExtraOwnership = (void *)0x059F80D8;\r\nconst void * RTTI_ExtraOwningInstance = (void *)0x059F75A0;\r\nconst void * RTTI_ExtraPackage = (void *)0x059F9480;\r\nconst void * RTTI_ExtraPackageData = (void *)0x059F6F98;\r\nconst void * RTTI_ExtraPackageStartLocation = (void *)0x059F9128;\r\nconst void * RTTI_ExtraPatrolRefData = (void *)0x059F7A10;\r\nconst void * RTTI_ExtraPatrolRefInUseData = (void *)0x059F9320;\r\nconst void * RTTI_ExtraPersistentCell = (void *)0x059F9048;\r\nconst void * RTTI_ExtraPlacedPlanetContent = (void *)0x059F6788;\r\nconst void * RTTI_ExtraPlayerCrimeList = (void *)0x059F94A8;\r\nconst void * RTTI_ExtraPoison = (void *)0x059F7A70;\r\nconst void * RTTI_ExtraPowerArmor = (void *)0x059F8D90;\r\nconst void * RTTI_ExtraPowerArmorPreload = (void *)0x059F8DB8;\r\nconst void * RTTI_ExtraPowerLinks = (void *)0x059F7B48;\r\nconst void * RTTI_ExtraPrimitive = (void *)0x059F77D8;\r\nconst void * RTTI_ExtraProceduralInstanceData = (void *)0x059F6B58;\r\nconst void * RTTI_ExtraProcessMiddleLow = (void *)0x059F6500;\r\nconst void * RTTI_ExtraProjectedDecalData = (void *)0x059F7868;\r\nconst void * RTTI_ExtraPromotedRef = (void *)0x059F8F10;\r\nconst void * RTTI_ExtraPropertySheet = (void *)0x059F6C68;\r\nconst void * RTTI_ExtraRadioData = (void *)0x059F79C0;\r\nconst void * RTTI_ExtraRadioReceiver = (void *)0x059F72D8;\r\nconst void * RTTI_ExtraRadioRepeater = (void *)0x059F72A8;\r\nconst void * RTTI_ExtraRadius = (void *)0x059F74C0;\r\nconst void * RTTI_ExtraRadiusFalloffExponent = (void *)0x059F7488;\r\nconst void * RTTI_ExtraRagDollData = (void *)0x059F8CE8;\r\nconst void * RTTI_ExtraRandomAnimStartTime = (void *)0x059F6B90;\r\nconst void * RTTI_ExtraRandomTeleportMarker = (void *)0x059F9668;\r\nconst void * RTTI_ExtraRangedDistOverride = (void *)0x059F7920;\r\nconst void * RTTI_ExtraRank = (void *)0x059F8010;\r\nconst void * RTTI_ExtraRefWeaponSounds = (void *)0x059F8B38;\r\nconst void * RTTI_ExtraReferenceGroup = (void *)0x059F6DF8;\r\nconst void * RTTI_ExtraReferenceHandles = (void *)0x059F7650;\r\nconst void * RTTI_ExtraReflectedRefs = (void *)0x059F7518;\r\nconst void * RTTI_ExtraReflectorRefs = (void *)0x059F74E8;\r\nconst void * RTTI_ExtraRefrPath = (void *)0x059F8F38;\r\nconst void * RTTI_ExtraRefractionProperty = (void *)0x059F9350;\r\nconst void * RTTI_ExtraRegionList = (void *)0x059F63A0;\r\nconst void * RTTI_ExtraReservedMarkers = (void *)0x059F8D38;\r\nconst void * RTTI_ExtraRoomRefData = (void *)0x059F92F8;\r\nconst void * RTTI_ExtraRunOncePacks = (void *)0x059F97D0;\r\nconst void * RTTI_ExtraSavedAnimation = (void *)0x059F9608;\r\nconst void * RTTI_ExtraSavedHavokData = (void *)0x059F9638;\r\nconst void * RTTI_ExtraSayToTopicInfo = (void *)0x059F91D8;\r\nconst void * RTTI_ExtraSayTopicInfoOnceADay = (void *)0x059F9298;\r\nconst void * RTTI_ExtraScale = (void *)0x059F7BE8;\r\nconst void * RTTI_ExtraSceneData = (void *)0x059F7DB8;\r\nconst void * RTTI_ExtraScriptedAnimDependence = (void *)0x059F8E70;\r\nconst void * RTTI_ExtraSeed = (void *)0x059F9460;\r\nconst void * RTTI_ExtraSeenData = (void *)0x059F63C8;\r\nconst void * RTTI_ExtraShipArrivalData = (void *)0x059F7838;\r\nconst void * RTTI_ExtraShipBlueprintSnapData = (void *)0x059F90B0;\r\nconst void * RTTI_ExtraShouldWear = (void *)0x059F9438;\r\nconst void * RTTI_ExtraSnapLinks = (void *)0x059F6B00;\r\nconst void * RTTI_ExtraSoul = (void *)0x059F9108;\r\nconst void * RTTI_ExtraSound = (void *)0x059F9380;\r\nconst void * RTTI_ExtraSoundHook = (void *)0x059F7A98;\r\nconst void * RTTI_ExtraSourcePackIn = (void *)0x059F6CC0;\r\nconst void * RTTI_ExtraSpawnContainer = (void *)0x059F8C88;\r\nconst void * RTTI_ExtraStartingPosition = (void *)0x059F8080;\r\nconst void * RTTI_ExtraStartingWorldOrCell = (void *)0x059F8F60;\r\nconst void * RTTI_ExtraTeleport = (void *)0x059F8160;\r\nconst void * RTTI_ExtraTeleportName = (void *)0x059F7338;\r\nconst void * RTTI_ExtraTempLocationWorldSpace = (void *)0x059F9078;\r\nconst void * RTTI_ExtraTerminalMenuBodyTextItems = (void *)0x059F6C30;\r\nconst void * RTTI_ExtraTerminalMenuItems = (void *)0x059F6D48;\r\nconst void * RTTI_ExtraTerminalMenuMenuItems = (void *)0x059F6D10;\r\nconst void * RTTI_ExtraTerminalMenuUnlockedItems = (void *)0x059F6BF8;\r\nconst void * RTTI_ExtraTextDisplayData = (void *)0x059F7D10;\r\nconst void * RTTI_ExtraTimeLeft = (void *)0x059F7B98;\r\nconst void * RTTI_ExtraTimeOfDayData = (void *)0x059F6B28;\r\nconst void * RTTI_ExtraTransitionCellCount = (void *)0x059F76D8;\r\nconst void * RTTI_ExtraTraversalData = (void *)0x059F8AA8;\r\nconst void * RTTI_ExtraTresPassPackage = (void *)0x059F76A8;\r\nconst void * RTTI_ExtraUniqueID = (void *)0x059F7C60;\r\nconst void * RTTI_ExtraUsedMarkers = (void *)0x059F8D10;\r\nconst void * RTTI_ExtraVoiceType = (void *)0x059F70A0;\r\nconst void * RTTI_ExtraVolumeData = (void *)0x059F7998;\r\nconst void * RTTI_ExtraVolumeReflectionProbe_OffsetIntensity = (void *)0x059F7950;\r\nconst void * RTTI_ExtraWaterCurrentZoneData = (void *)0x059F7CB8;\r\nconst void * RTTI_ExtraWaterData = (void *)0x059F8E48;\r\nconst void * RTTI_ExtraWaterLightRefs = (void *)0x059F7570;\r\nconst void * RTTI_ExtraWaterReflectionData = (void *)0x059F6DA0;\r\nconst void * RTTI_ExtraWorkshopSnapping = (void *)0x05A50808;\r\nconst void * RTTI_ExtraWwiseSwitchData = (void *)0x05A7A760;\r\nconst void * RTTI_EyeTrackingOffHandler = (void *)0x05BCE340;\r\nconst void * RTTI_EyeTrackingOnHandler = (void *)0x05BCE310;\r\nconst void * RTTI_FACEFX_ACTOR = (void *)0x059DA7A8;\r\nconst void * RTTI_FACEFX_BONESET = (void *)0x059DAE98;\r\nconst void * RTTI_FOCollisionListener = (void *)0x05A85340;\r\nconst void * RTTI_FaceEmotionalIdleHandler = (void *)0x05BCB328;\r\nconst void * RTTI_FaderMenu = (void *)0x05C4E928;\r\nconst void * RTTI_FanfareData = (void *)0x05AE26F0;\r\nconst void * RTTI_FanfareMenu = (void *)0x05AE27D8;\r\nconst void * RTTI_FanfareMenu__FanfareEventShuttle = (void *)0x05AE27A0;\r\nconst void * RTTI_FarTravel__Arrival = (void *)0x05B83BB0;\r\nconst void * RTTI_FarTravel__Cruise = (void *)0x05B83C80;\r\nconst void * RTTI_FarTravel__Departure = (void *)0x05B83C50;\r\nconst void * RTTI_FarTravel__FarTravelOrbitalUpdateFadeDone = (void *)0x05B83BD8;\r\nconst void * RTTI_FarTravel__FarTravelUnloadNode = (void *)0x05A59598;\r\nconst void * RTTI_FarTravel__UpdateGalacticPositions = (void *)0x05B83C18;\r\nconst void * RTTI_FavoritesManager = (void *)0x05C4FE10;\r\nconst void * RTTI_FavoritesManager__FavoritesData = (void *)0x05C50288;\r\nconst void * RTTI_FavoritesManager__FavoritesEntryData = (void *)0x05C501A0;\r\nconst void * RTTI_FavoritesManager__FavoritesUIDataEventShuttle = (void *)0x05C501E0;\r\nconst void * RTTI_FavoritesMenu = (void *)0x05C500C0;\r\nconst void * RTTI_FavoritesMenu_AssignQuickkey = (void *)0x05C4FAF0;\r\nconst void * RTTI_FavoritesMenu_UseQuickkey = (void *)0x05C4FCA8;\r\nconst void * RTTI_FilterSideBar = (void *)0x05D54E20;\r\nconst void * RTTI_FindConnectedNavmeshInfosVisitor = (void *)0x05A99908;\r\nconst void * RTTI_FindDynamicNeighborsTask = (void *)0x0598E2D0;\r\nconst void * RTTI_FindEffectKeywordOnTargetFunctor = (void *)0x05B7F8D8;\r\nconst void * RTTI_FindTriangleForLocationFilter = (void *)0x059BFF50;\r\nconst void * RTTI_FindTriangleForLocationFilterCheckDeltaZ = (void *)0x059BFE78;\r\nconst void * RTTI_FindTriangleForLocationTraversableFilter = (void *)0x05CEC178;\r\nconst void * RTTI_FindTriangleForLocationWaterFilter = (void *)0x05CEBE70;\r\nconst void * RTTI_FireForgetModel = (void *)0x05AF79C0;\r\nconst void * RTTI_FireForgetModel__FireForgetEventShuttle = (void *)0x05AF7A30;\r\nconst void * RTTI_FireParticlesCollidedWithBodiesCallbackTask = (void *)0x0598E400;\r\nconst void * RTTI_FireParticlesCollidedWithParticlesCallbackTask = (void *)0x0598E3B0;\r\nconst void * RTTI_FireParticlesExitedSafeRegionCallbackTask = (void *)0x0598E450;\r\nconst void * RTTI_FirstPersonState = (void *)0x05C48418;\r\nconst void * RTTI_FlameProjectile = (void *)0x05BD1F58;\r\nconst void * RTTI_FleePackage = (void *)0x05998230;\r\nconst void * RTTI_FlightActionEndHandler = (void *)0x05BCE6F8;\r\nconst void * RTTI_FlightActionEntryEndHandler = (void *)0x05BCE6C0;\r\nconst void * RTTI_FlightActionHandler = (void *)0x05BCE758;\r\nconst void * RTTI_FlightCameraState = (void *)0x05C48720;\r\nconst void * RTTI_FlightCrashLandStartHandler = (void *)0x05BCE658;\r\nconst void * RTTI_FlightCruisingHandler = (void *)0x05BCE870;\r\nconst void * RTTI_FlightHoveringHandler = (void *)0x05BCE7E0;\r\nconst void * RTTI_FlightLandEndHandler = (void *)0x05BCE728;\r\nconst void * RTTI_FlightLandHandler = (void *)0x05BCE7B8;\r\nconst void * RTTI_FlightLandingHandler = (void *)0x05BCE810;\r\nconst void * RTTI_FlightPerchingHandler = (void *)0x05BCE788;\r\nconst void * RTTI_FlightTakeOffHandler = (void *)0x05BCE840;\r\nconst void * RTTI_Float3LightAnimData = (void *)0x059E64B0;\r\nconst void * RTTI_Float4LightAnimData = (void *)0x059E64E0;\r\nconst void * RTTI_FloatLightAnimData = (void *)0x059E6458;\r\nconst void * RTTI_FoodCraftingMenu = (void *)0x05B32718;\r\nconst void * RTTI_FootIKNode = (void *)0x05C95E60;\r\nconst void * RTTI_FootIKNodeInstance = (void *)0x05C98B10;\r\nconst void * RTTI_ForceWeaponFireHandler = (void *)0x05BCF190;\r\nconst void * RTTI_FormStreamerLoadStorageWrapper = (void *)0x05B8C1F8;\r\nconst void * RTTI_FormStreamerSaveStorageWrapper = (void *)0x05B8C1C0;\r\nconst void * RTTI_FrameInterpolationSwapChainDX12 = (void *)0x059BD1D0;\r\nconst void * RTTI_FreeAdvancedCameraState = (void *)0x05C486F0;\r\nconst void * RTTI_FreeFlyCameraState = (void *)0x05C48780;\r\nconst void * RTTI_FreeTetheredCameraState = (void *)0x05C487B0;\r\nconst void * RTTI_FreeWalkCameraState = (void *)0x05C486C0;\r\nconst void * RTTI_FrenzyEffect = (void *)0x05B80B90;\r\nconst void * RTTI_FurnitureCameraState = (void *)0x05C48440;\r\nconst void * RTTI_FurnitureMarkerNavmeshPositionCache = (void *)0x05A0BB00;\r\nconst void * RTTI_GPUCaptureHandler = (void *)0x05C53E38;\r\nconst void * RTTI_Gallery_Entry = (void *)0x05D55460;\r\nconst void * RTTI_GameBIEvents__ClientSettingsBIEvents = (void *)0x05B82ED8;\r\nconst void * RTTI_GameBIEvents__PlayerBIEvents = (void *)0x05B83428;\r\nconst void * RTTI_GameMenuBase = (void *)0x05ADAAD8;\r\nconst void * RTTI_GameScript__ActorValueEventHandler = (void *)0x05C5AE48;\r\nconst void * RTTI_GameScript__AffinityEventHandler = (void *)0x05C5B500;\r\nconst void * RTTI_GameScript__AnimCallbackMgr = (void *)0x05C70710;\r\nconst void * RTTI_GameScript__BasicEventHandler = (void *)0x05C75750;\r\nconst void * RTTI_GameScript__BuilderEventHandler = (void *)0x05C5BAD8;\r\nconst void * RTTI_GameScript__ChallengeEventHandler = (void *)0x05AEB458;\r\nconst void * RTTI_GameScript__CombatEventHandler = (void *)0x05C5CB10;\r\nconst void * RTTI_GameScript__CustomEventHandler = (void *)0x05C5DC80;\r\nconst void * RTTI_GameScript__DataFileHandleReaderWriter = (void *)0x05C5B850;\r\nconst void * RTTI_GameScript__DebuggerMessages__ContinueRequest = (void *)0x05C58590;\r\nconst void * RTTI_GameScript__DebuggerMessages__DisconnectRequest = (void *)0x05C588A0;\r\nconst void * RTTI_GameScript__DebuggerMessages__Event = (void *)0x05C587D8;\r\nconst void * RTTI_GameScript__DebuggerMessages__NextRequest = (void *)0x05C58758;\r\nconst void * RTTI_GameScript__DebuggerMessages__OutputEvent = (void *)0x05C581A8;\r\nconst void * RTTI_GameScript__DebuggerMessages__PauseRequest = (void *)0x05C585D8;\r\nconst void * RTTI_GameScript__DebuggerMessages__ProtocolMessage = (void *)0x05C58850;\r\nconst void * RTTI_GameScript__DebuggerMessages__Request = (void *)0x05C58810;\r\nconst void * RTTI_GameScript__DebuggerMessages__Response = (void *)0x05C588E8;\r\nconst void * RTTI_GameScript__DebuggerMessages__SetBreakpointsRequest = (void *)0x05C58710;\r\nconst void * RTTI_GameScript__DebuggerMessages__SetBreakpointsResponse = (void *)0x05C58280;\r\nconst void * RTTI_GameScript__DebuggerMessages__StackTraceRequest = (void *)0x05C58620;\r\nconst void * RTTI_GameScript__DebuggerMessages__StackTraceResponse = (void *)0x05C582D0;\r\nconst void * RTTI_GameScript__DebuggerMessages__StepInRequest = (void *)0x05C584F0;\r\nconst void * RTTI_GameScript__DebuggerMessages__StepOutRequest = (void *)0x05C584A0;\r\nconst void * RTTI_GameScript__DebuggerMessages__StoppedEvent = (void *)0x05C58168;\r\nconst void * RTTI_GameScript__DebuggerMessages__ThreadEvent = (void *)0x05C58238;\r\nconst void * RTTI_GameScript__DebuggerMessages__ThreadsRequest = (void *)0x05C58670;\r\nconst void * RTTI_GameScript__DebuggerMessages__ThreadsResponse = (void *)0x05C581F0;\r\nconst void * RTTI_GameScript__DebuggerMessages__ValueRequest = (void *)0x05C58798;\r\nconst void * RTTI_GameScript__DebuggerMessages__ValueResponse = (void *)0x05C58320;\r\nconst void * RTTI_GameScript__DebuggerMessages__VariablesRequest = (void *)0x05C586C0;\r\nconst void * RTTI_GameScript__DebuggerMessages__VariablesResponse = (void *)0x05C58360;\r\nconst void * RTTI_GameScript__DebuggerMessages__VersionEvent = (void *)0x05C583A8;\r\nconst void * RTTI_GameScript__DelayFunctor = (void *)0x05C59490;\r\nconst void * RTTI_GameScript__DelayFunctorFactory = (void *)0x05C594C0;\r\nconst void * RTTI_GameScript__DistanceEventHandler = (void *)0x05C787C0;\r\nconst void * RTTI_GameScript__FragmentEventHandler = (void *)0x05C5D978;\r\nconst void * RTTI_GameScript__HandlePolicy = (void *)0x05C64250;\r\nconst void * RTTI_GameScript__Internal__AnimationCallbacks = (void *)0x05C5B810;\r\nconst void * RTTI_GameScript__Internal__LOSDetectionEventData = (void *)0x05C5EFE0;\r\nconst void * RTTI_GameScript__Internal__LOSDirectEventData = (void *)0x05C5F020;\r\nconst void * RTTI_GameScript__Internal__LOSEventData = (void *)0x05C5F698;\r\nconst void * RTTI_GameScript__InventoryEventHandler = (void *)0x05C5EC90;\r\nconst void * RTTI_GameScript__LOSEventHandler = (void *)0x05C5F6D0;\r\nconst void * RTTI_GameScript__Logger = (void *)0x05C5E288;\r\nconst void * RTTI_GameScript__MenuEventHandler = (void *)0x05C5FE78;\r\nconst void * RTTI_GameScript__ObjectBindPolicy = (void *)0x05C64218;\r\nconst void * RTTI_GameScript__PathingCallbackMgr = (void *)0x05C600E0;\r\nconst void * RTTI_GameScript__Profiler = (void *)0x05C603F8;\r\nconst void * RTTI_GameScript__QuestCallbackMgr = (void *)0x05C605E0;\r\nconst void * RTTI_GameScript__RemoteDebugger = (void *)0x05C58560;\r\nconst void * RTTI_GameScript__SaveFileHandleReaderWriter = (void *)0x05C5B890;\r\nconst void * RTTI_GameScript__SavePatcher = (void *)0x05C60760;\r\nconst void * RTTI_GameScript__ScriptSpaceCellCreateComplete = (void *)0x05C5BA20;\r\nconst void * RTTI_GameScript__ScriptSpaceshipCreateComplete = (void *)0x05C5BA60;\r\nconst void * RTTI_GameScript__SleepEventHandler = (void *)0x05C60960;\r\nconst void * RTTI_GameScript__SoundCallbackMgr = (void *)0x05C60DA0;\r\nconst void * RTTI_GameScript__SpaceshipEventHandler = (void *)0x05C76FC8;\r\nconst void * RTTI_GameScript__Store = (void *)0x05C60E00;\r\nconst void * RTTI_GameScript__TeleportEventHandler = (void *)0x05C77328;\r\nconst void * RTTI_GameScript__TimerEventHandler = (void *)0x05C77C70;\r\nconst void * RTTI_GameScript__TrackedStatsEventHandler = (void *)0x05C78020;\r\nconst void * RTTI_GameScript__WaitEventHandler = (void *)0x05C787F8;\r\nconst void * RTTI_GameSettingCollection = (void *)0x059C2520;\r\nconst void * RTTI_GameUIGlobalFunc = (void *)0x05B26398;\r\nconst void * RTTI_GameUIModel = (void *)0x05B26118;\r\nconst void * RTTI_GameVM = (void *)0x05C641F8;\r\nconst void * RTTI_GamebryoSequence = (void *)0x05C95EB8;\r\nconst void * RTTI_GamebryoSequenceInstance = (void *)0x05C98B40;\r\nconst void * RTTI_GenerateMappingToPointsBufferTask = (void *)0x0598E1E0;\r\nconst void * RTTI_GenerateObstacleTask = (void *)0x05A1CFE0;\r\nconst void * RTTI_GenericFrameUpdateOperationsService = (void *)0x059D3958;\r\nconst void * RTTI_GetBestAmmoFunctor = (void *)0x05A6F668;\r\nconst void * RTTI_GetBestCutterFunctor = (void *)0x05A6F698;\r\nconst void * RTTI_GetBestLightFunctor = (void *)0x05A6F6C8;\r\nconst void * RTTI_GetBestWeaponFunctor = (void *)0x05A6FA40;\r\nconst void * RTTI_GetMagicItemDescriptionFunctor = (void *)0x059F5FD8;\r\nconst void * RTTI_GetUpEndHandler = (void *)0x05BCF6B0;\r\nconst void * RTTI_GetUpStartHandler = (void *)0x05BCF688;\r\nconst void * RTTI_GlobalDirtOverlayManager = (void *)0x05CBD218;\r\nconst void * RTTI_GlobalFunc_CloseAllMenus = (void *)0x05B25B78;\r\nconst void * RTTI_GlobalFunc_CloseMenu = (void *)0x05B25D18;\r\nconst void * RTTI_GlobalFunc_PlayMenuSound = (void *)0x05B26090;\r\nconst void * RTTI_GlobalFunc_StartGameRender = (void *)0x05B26058;\r\nconst void * RTTI_GlobalFunc_UserEvent = (void *)0x05B25EC0;\r\nconst void * RTTI_GraphReferenceNode = (void *)0x05C8B540;\r\nconst void * RTTI_GraphReferenceNodeInstance = (void *)0x05C8B508;\r\nconst void * RTTI_GraphicsInfoDataModel = (void *)0x05AFB668;\r\nconst void * RTTI_GravJumpInitiateCompleteHandler = (void *)0x05BCB4E8;\r\nconst void * RTTI_GravJumpSearch = (void *)0x05A18688;\r\nconst void * RTTI_GravityWielderEffect = (void *)0x05B7F188;\r\nconst void * RTTI_GrenadeProjectile = (void *)0x05BD1F80;\r\nconst void * RTTI_GridArray = (void *)0x05A0E9D0;\r\nconst void * RTTI_GridCellArray = (void *)0x05A0EE90;\r\nconst void * RTTI_GroundPathPathingNodeGenerator = (void *)0x05CFA4A8;\r\nconst void * RTTI_GroundPathRayValidator = (void *)0x05CFA5A8;\r\nconst void * RTTI_GuardActorPackageData = (void *)0x05BB8940;\r\nconst void * RTTI_GuideEffect = (void *)0x05B7F368;\r\nconst void * RTTI_HUDAmmoCountModel = (void *)0x05B265C0;\r\nconst void * RTTI_HUDAmmoCountModel__HUDAmmoCountModelShuttle = (void *)0x05B26680;\r\nconst void * RTTI_HUDCommandIconData = (void *)0x05B26B58;\r\nconst void * RTTI_HUDCompassDataModel = (void *)0x05AFB9B0;\r\nconst void * RTTI_HUDCrewBuffDataModel = (void *)0x05AF0C88;\r\nconst void * RTTI_HUDCrosshairDataModel = (void *)0x05AFC3E0;\r\nconst void * RTTI_HUDCrosshairDataModel__HUDCrosshairEventShuttle = (void *)0x05AFC2B0;\r\nconst void * RTTI_HUDDataModel = (void *)0x05B295F8;\r\nconst void * RTTI_HUDDataModel__HUDDataEventShuttle = (void *)0x05B29580;\r\nconst void * RTTI_HUDDirectionalHitIndicatorDataModel = (void *)0x05B26F48;\r\nconst void * RTTI_HUDEnemyDataModel = (void *)0x05AFC6B8;\r\nconst void * RTTI_HUDEnemyDataModel__HUDEnemyEventShuttle = (void *)0x05AFC5D8;\r\nconst void * RTTI_HUDExperienceMeterDataModel = (void *)0x05B280C8;\r\nconst void * RTTI_HUDExperienceMeterDataModel__HUDExperienceMeterEventShuttle = (void *)0x05B27D10;\r\nconst void * RTTI_HUDJetpackDataModel = (void *)0x05AFC878;\r\nconst void * RTTI_HUDLocationDataModel = (void *)0x05AFC9D0;\r\nconst void * RTTI_HUDMenu = (void *)0x05C50378;\r\nconst void * RTTI_HUDMessageDataModel = (void *)0x05AFCEA0;\r\nconst void * RTTI_HUDMessagesMenu = (void *)0x05B32740;\r\nconst void * RTTI_HUDNotification_MissionActiveWidgetUpdate = (void *)0x05B2B220;\r\nconst void * RTTI_HUDNotification_OpenDataMenu = (void *)0x05B2AFD0;\r\nconst void * RTTI_HUDNotification_OpenMissionMenu = (void *)0x05B2B180;\r\nconst void * RTTI_HUDNotification_SetMissionActive = (void *)0x05B2B060;\r\nconst void * RTTI_HUDNotificationsModel = (void *)0x05B2ABB8;\r\nconst void * RTTI_HUDNotificationsModel__HUDNotificationsEventShuttle = (void *)0x05B2A880;\r\nconst void * RTTI_HUDOpacityModel = (void *)0x05B2B260;\r\nconst void * RTTI_HUDOpacityModel__HUDOpacityEventShuttle = (void *)0x05B2B318;\r\nconst void * RTTI_HUDRolloverActivationButtonEvent = (void *)0x05AFAC50;\r\nconst void * RTTI_HUDRolloverActivationCompanionListener = (void *)0x05AFB300;\r\nconst void * RTTI_HUDRolloverActivationCorpseListener = (void *)0x05AFB340;\r\nconst void * RTTI_HUDRolloverActivationDisplayCaseListener = (void *)0x05AF9FB0;\r\nconst void * RTTI_HUDRolloverActivationDoorListener = (void *)0x05AFB380;\r\nconst void * RTTI_HUDRolloverActivationFallbackListener = (void *)0x05AF7FA8;\r\nconst void * RTTI_HUDRolloverActivationLootListener = (void *)0x05AFB3F8;\r\nconst void * RTTI_HUDRolloverActivationNPCListener = (void *)0x05AFB430;\r\nconst void * RTTI_HUDRolloverActivationOutpostItemListener = (void *)0x05AF80A8;\r\nconst void * RTTI_HUDRolloverActivationOutpostListener = (void *)0x05AF83E0;\r\nconst void * RTTI_HUDRolloverActivationOutpostQCListener = (void *)0x05AF8468;\r\nconst void * RTTI_HUDRolloverActivationQCItemPressEvent = (void *)0x05AFABB8;\r\nconst void * RTTI_HUDRolloverActivationQuickContainerListener = (void *)0x05AF8420;\r\nconst void * RTTI_HUDRolloverActivationShipContainerListener = (void *)0x05AFB520;\r\nconst void * RTTI_HUDRolloverActivationTeammateListener = (void *)0x05AFB568;\r\nconst void * RTTI_HUDRolloverActivationTerminalListener = (void *)0x05AFB5A8;\r\nconst void * RTTI_HUDRolloverDataModel = (void *)0x05AFAB28;\r\nconst void * RTTI_HUDSocialCommandData = (void *)0x05B26B28;\r\nconst void * RTTI_HUDSocialCommandDataModel = (void *)0x05B26A60;\r\nconst void * RTTI_HUDSocialCommandDataModel__HUDSocialCommandDataEventShuttle = (void *)0x05B269B0;\r\nconst void * RTTI_HUDStarbornPowersDataModel = (void *)0x05AFD4A0;\r\nconst void * RTTI_HUDStarbornPowersDataModel__HUDStarbornPowersEventShuttle = (void *)0x05AFD410;\r\nconst void * RTTI_HUDStealthDataModel = (void *)0x05AFD840;\r\nconst void * RTTI_HUDStealthDataModel__HUDStealthEventShuttle = (void *)0x05AFD720;\r\nconst void * RTTI_HUDSubtitleDataModel = (void *)0x05AFDD50;\r\nconst void * RTTI_HUDSubtitleDataModel__HUDSubtitleEventShuttle = (void *)0x05AFDBE0;\r\nconst void * RTTI_HUDVehicleData = (void *)0x05AD86E0;\r\nconst void * RTTI_HUDWatchEffectsModel = (void *)0x05AFE5F8;\r\nconst void * RTTI_HUDWatchEffectsModel__HUDWatchEffectsModelShuttle = (void *)0x05AFE3D0;\r\nconst void * RTTI_HangarShipSelection_ChangeSystemDisplay = (void *)0x05AE7F80;\r\nconst void * RTTI_HangarShipSelection_RepairShip = (void *)0x05AE7B30;\r\nconst void * RTTI_HangarShipSelection_UpgradeSystem = (void *)0x05AE7EF0;\r\nconst void * RTTI_HasSpellVisitor = (void *)0x05BAF3E8;\r\nconst void * RTTI_HavokErrorCRTestApp = (void *)0x05CA2AE0;\r\nconst void * RTTI_HavokFileStreambufWriter = (void *)0x05A858C8;\r\nconst void * RTTI_HavokParticleDef__BaseShape = (void *)0x05CAD870;\r\nconst void * RTTI_HavokParticleDef__BoxShape = (void *)0x05CAD728;\r\nconst void * RTTI_HavokParticleDef__CapsuleShape = (void *)0x05CAD7C8;\r\nconst void * RTTI_HavokParticleDef__ConvexShape = (void *)0x05CAD590;\r\nconst void * RTTI_HavokParticleDef__CubeShape = (void *)0x05CAD758;\r\nconst void * RTTI_HavokParticleDef__CylinderShape = (void *)0x05CAD790;\r\nconst void * RTTI_HavokParticleDef__SphereShape = (void *)0x05CAD838;\r\nconst void * RTTI_HavokStreambufFactory = (void *)0x05A85628;\r\nconst void * RTTI_Hazard = (void *)0x05997B68;\r\nconst void * RTTI_HazardTargetFinderHavok = (void *)0x05AAF818;\r\nconst void * RTTI_HeadTrackingOffHandler = (void *)0x05BCE3A0;\r\nconst void * RTTI_HeadTrackingOnHandler = (void *)0x05BCE370;\r\nconst void * RTTI_HeadTrackingRotationOffHandler = (void *)0x05BCE8D8;\r\nconst void * RTTI_HeadTrackingRotationOnHandler = (void *)0x05BCE8A0;\r\nconst void * RTTI_HealthDamageFunctor = (void *)0x05BD38F0;\r\nconst void * RTTI_HeapAllocator = (void *)0x05C9C900;\r\nconst void * RTTI_HelpData = (void *)0x05AEE950;\r\nconst void * RTTI_HelpDataModel = (void *)0x05AEEAF0;\r\nconst void * RTTI_HelpDataModel__HelpDataModelEventShuttle = (void *)0x05AEEB18;\r\nconst void * RTTI_HelpTopicData = (void *)0x05AEE928;\r\nconst void * RTTI_HerdManager = (void *)0x05ACCEC0;\r\nconst void * RTTI_HideSubsegmentHandler = (void *)0x05BCB5B0;\r\nconst void * RTTI_HighlightManager = (void *)0x05A0C710;\r\nconst void * RTTI_HitFrameHandler = (void *)0x05BCE5D0;\r\nconst void * RTTI_HorseCameraState = (void *)0x05C48470;\r\nconst void * RTTI_HudModeDataModel = (void *)0x05AFD1B8;\r\nconst void * RTTI_HudModeDataModel__HUDModeEventShuttle = (void *)0x05AFD0D0;\r\nconst void * RTTI_IAIWorldLocation = (void *)0x059BFC20;\r\nconst void * RTTI_IAIWorldLocationHandle = (void *)0x05A89200;\r\nconst void * RTTI_IAimAssistImpl = (void *)0x05AA9B88;\r\nconst void * RTTI_IAnimationEventDataForEachFunctor = (void *)0x059C3EC8;\r\nconst void * RTTI_IAnimationGraphManagerLoadingTask = (void *)0x05A7FD90;\r\nconst void * RTTI_IAnimationStanceData = (void *)0x05C9AE08;\r\nconst void * RTTI_IAnimationStreamWrite = (void *)0x05A71000;\r\nconst void * RTTI_IBGSBaseFormData = (void *)0x059BD958;\r\nconst void * RTTI_ICheckEndReachedFunctor = (void *)0x05CF3708;\r\nconst void * RTTI_ICheckEndReachedFunctorMapper = (void *)0x05CF39B8;\r\nconst void * RTTI_ICommandLineHandler = (void *)0x05B99010;\r\nconst void * RTTI_IConvexOverlapImpl = (void *)0x059888C0;\r\nconst void * RTTI_IConvexOverlapImpl__ShapeInterface = (void *)0x059888F0;\r\nconst void * RTTI_IDEvent = (void *)0x05C9D598;\r\nconst void * RTTI_IDataModel = (void *)0x059CE0A8;\r\nconst void * RTTI_IExplosionFactory = (void *)0x05B8D3F8;\r\nconst void * RTTI_IFadeDoneCallback = (void *)0x05A66740;\r\nconst void * RTTI_IFormComponentFactoryCreator = (void *)0x059CB3B0;\r\nconst void * RTTI_IFormComponentFactoryCreator__ReserveControl = (void *)0x059CB420;\r\nconst void * RTTI_IFormFactory = (void *)0x059D3F30;\r\nconst void * RTTI_IFormFactory__IFactoryVisitor = (void *)0x05A033C8;\r\nconst void * RTTI_IHUDRolloverActivationListener = (void *)0x05AF8028;\r\nconst void * RTTI_IMemoryManagerFile = (void *)0x05BA0CF8;\r\nconst void * RTTI_IMemoryManagerFileFactory = (void *)0x05BA0CC8;\r\nconst void * RTTI_IMemoryStore = (void *)0x05B8C630;\r\nconst void * RTTI_IMemoryStoreBase = (void *)0x05B8C608;\r\nconst void * RTTI_IMenu = (void *)0x059EBB90;\r\nconst void * RTTI_IMessageBoxCallback = (void *)0x05A64A30;\r\nconst void * RTTI_IMovementAvoidanceManager = (void *)0x05BB7030;\r\nconst void * RTTI_IMovementControllerNPCFunctor = (void *)0x05B9AF58;\r\nconst void * RTTI_IMovementDirectControl = (void *)0x05BB7318;\r\nconst void * RTTI_IMovementFormIDManager = (void *)0x05BB6020;\r\nconst void * RTTI_IMovementPDControllerAccess = (void *)0x05CF3E90;\r\nconst void * RTTI_IMovementParameters = (void *)0x059C23F0;\r\nconst void * RTTI_IMovementPlannerDirectControl = (void *)0x05BB72E0;\r\nconst void * RTTI_IMovementPlannerSetArbitration = (void *)0x05CF2458;\r\nconst void * RTTI_IMovementPlayIdleResult = (void *)0x05CF35B8;\r\nconst void * RTTI_IMovementQueryFlight = (void *)0x05CFA198;\r\nconst void * RTTI_IMovementQueryPathFollowing = (void *)0x05CF3950;\r\nconst void * RTTI_IMovementQueryState = (void *)0x05BB7FF8;\r\nconst void * RTTI_IMovementQueryStaticAvoider = (void *)0x05CF4648;\r\nconst void * RTTI_IMovementQueryTweener = (void *)0x05CF2FB0;\r\nconst void * RTTI_IMovementQueryTweenerState = (void *)0x05CF49F0;\r\nconst void * RTTI_IMovementSetCorrectionData = (void *)0x05CF49B8;\r\nconst void * RTTI_IMovementSetGoal = (void *)0x05CF1E40;\r\nconst void * RTTI_IMovementSetPathFollowing = (void *)0x05CF3988;\r\nconst void * RTTI_IMovementSetRollTarget = (void *)0x05CF3E60;\r\nconst void * RTTI_IMovementSetSprinting = (void *)0x05A12A20;\r\nconst void * RTTI_IMovementSetState = (void *)0x05CF39F0;\r\nconst void * RTTI_IMovementSetStaticAvoider = (void *)0x05CF4618;\r\nconst void * RTTI_IMovementSetWarp = (void *)0x05BB8268;\r\nconst void * RTTI_INIPrefSetting = (void *)0x059CD430;\r\nconst void * RTTI_INIPrefSettingCollection = (void *)0x059CD3C0;\r\nconst void * RTTI_INISettingCollection = (void *)0x059C3110;\r\nconst void * RTTI_INavmeshSearchFilterSet = (void *)0x05A9B6F8;\r\nconst void * RTTI_IOControlNode = (void *)0x059DBD20;\r\nconst void * RTTI_IOManager = (void *)0x05CB1988;\r\nconst void * RTTI_IOManagerThread = (void *)0x05CB1D20;\r\nconst void * RTTI_IOManager__SystemTaskService = (void *)0x05CB1D48;\r\nconst void * RTTI_IOPostProcessTaskNode = (void *)0x05CB1CF0;\r\nconst void * RTTI_IOSystemTask = (void *)0x059DD7B8;\r\nconst void * RTTI_IOTask = (void *)0x059EC8D8;\r\nconst void * RTTI_IOTaskNode = (void *)0x05CB1D80;\r\nconst void * RTTI_IPackageData = (void *)0x059920E8;\r\nconst void * RTTI_IPackageDataTypeCheck = (void *)0x059C1D30;\r\nconst void * RTTI_IPathBuilder = (void *)0x059C2020;\r\nconst void * RTTI_IPathBuilderFactoryBase = (void *)0x059C2308;\r\nconst void * RTTI_IPathBuilderTracker = (void *)0x05AADDF8;\r\nconst void * RTTI_IPathFollowerState = (void *)0x05CFA710;\r\nconst void * RTTI_IPathSmootherRayCast = (void *)0x05CEC148;\r\nconst void * RTTI_IPathingNodeGenerator = (void *)0x05CFA548;\r\nconst void * RTTI_IPostAnimationChannelUpdateFunctor = (void *)0x05A70C78;\r\nconst void * RTTI_IProcedure = (void *)0x059C05C8;\r\nconst void * RTTI_IProcedureTreeExecState = (void *)0x059C0598;\r\nconst void * RTTI_IProcedureTreeItem = (void *)0x05A8F378;\r\nconst void * RTTI_IRaceSubGraphDataFunctor = (void *)0x059C3FC0;\r\nconst void * RTTI_ISelectIdleFilter = (void *)0x05CF5E68;\r\nconst void * RTTI_ISmoothingRayValidator = (void *)0x05CFA578;\r\nconst void * RTTI_ISpecialPurposeComponentHandler = (void *)0x059E6058;\r\nconst void * RTTI_IStaticAvoidNodeManager = (void *)0x05BB8808;\r\nconst void * RTTI_IStringForwarder = (void *)0x05C494F8;\r\nconst void * RTTI_ITempEffectFactory = (void *)0x05A983A8;\r\nconst void * RTTI_ITextRenderer = (void *)0x05A0B0C8;\r\nconst void * RTTI_ITrianglePathSplitter = (void *)0x05CEC118;\r\nconst void * RTTI_ITweenerNodeFollowerSetup = (void *)0x05BB8518;\r\nconst void * RTTI_IUIValue = (void *)0x059CE0D0;\r\nconst void * RTTI_IValidateGoalFunctor = (void *)0x05BD3EE0;\r\nconst void * RTTI_IVisitProcedures = (void *)0x05A7DC00;\r\nconst void * RTTI_IdleDialogueEnterHandler = (void *)0x05BCECA0;\r\nconst void * RTTI_IdleDialogueExitHandler = (void *)0x05BCECD0;\r\nconst void * RTTI_IdleFlavorHandler = (void *)0x05BCEF50;\r\nconst void * RTTI_ImageCreationThread = (void *)0x05AE3988;\r\nconst void * RTTI_ImageFixtureEvent_RequestImage = (void *)0x05CD4CD8;\r\nconst void * RTTI_ImageFixtureEvent_UnregisterImage = (void *)0x05CD4B60;\r\nconst void * RTTI_ImageFixtureManager = (void *)0x05CD4AE0;\r\nconst void * RTTI_ImageSpaceManagerAgent = (void *)0x059EAE08;\r\nconst void * RTTI_ImageSpaceModifierInstance = (void *)0x05A6A2D8;\r\nconst void * RTTI_ImageSpaceModifierInstanceCinematic = (void *)0x05A6A310;\r\nconst void * RTTI_ImageSpaceModifierInstanceDOF = (void *)0x05A6A350;\r\nconst void * RTTI_ImageSpaceModifierInstanceForm = (void *)0x05A6A2A0;\r\nconst void * RTTI_ImageSpaceModifierInstanceRB = (void *)0x05A6A388;\r\nconst void * RTTI_ImmunityEffect = (void *)0x05B7F390;\r\nconst void * RTTI_IndustrialCraftingMenu = (void *)0x05B32768;\r\nconst void * RTTI_InfiniteList = (void *)0x05D54040;\r\nconst void * RTTI_IngredientItem = (void *)0x059F5D70;\r\nconst void * RTTI_InitActionI = (void *)0x059EAB88;\r\nconst void * RTTI_InitializeTraversalSubgraphDataFunctor = (void *)0x05A19B80;\r\nconst void * RTTI_InputMemoryStreamBuffer = (void *)0x05D0B340;\r\nconst void * RTTI_InstalledContent = (void *)0x05C81D60;\r\nconst void * RTTI_InstalledContentData = (void *)0x05AD8548;\r\nconst void * RTTI_InstalledContentDataModel = (void *)0x05AD84B8;\r\nconst void * RTTI_InstalledContentDataModel__InstalledContentModelEventShuttle = (void *)0x05AD84F0;\r\nconst void * RTTI_IntSeenData = (void *)0x05995098;\r\nconst void * RTTI_InteractionCombatDataCollectFunctor = (void *)0x05A0BB40;\r\nconst void * RTTI_InterfaceArchiveListener = (void *)0x05B992F8;\r\nconst void * RTTI_InterfacedClass = (void *)0x05AE3AC0;\r\nconst void * RTTI_InterruptCastHandler = (void *)0x05BCF478;\r\nconst void * RTTI_InventoryDataModelNS__InventoryItem = (void *)0x05AE2C20;\r\nconst void * RTTI_InventoryDataModelNS__LootItem = (void *)0x05AFA5D0;\r\nconst void * RTTI_InventoryMenu = (void *)0x05B35D88;\r\nconst void * RTTI_InventoryMenu_Change3DView = (void *)0x05B35FA0;\r\nconst void * RTTI_InventoryMenu_DropItem = (void *)0x05B355F0;\r\nconst void * RTTI_InventoryMenu_HideModel = (void *)0x05B35868;\r\nconst void * RTTI_InventoryMenu_LoadModel = (void *)0x05B35768;\r\nconst void * RTTI_InventoryMenu_OnEnterCategory = (void *)0x05B361C0;\r\nconst void * RTTI_InventoryMenu_OpenAlmanac = (void *)0x05B356F0;\r\nconst void * RTTI_InventoryMenu_OpenCargoHold = (void *)0x05B36130;\r\nconst void * RTTI_InventoryMenu_PaperDollTryOn = (void *)0x05B36250;\r\nconst void * RTTI_InventoryMenu_ResetPaperDollInv = (void *)0x05B35F18;\r\nconst void * RTTI_InventoryMenu_SelectItem = (void *)0x05B357E8;\r\nconst void * RTTI_InventoryMenu_SetMouseOverModel = (void *)0x05B35668;\r\nconst void * RTTI_InventoryMenu_StartCloseAnim = (void *)0x05B362E0;\r\nconst void * RTTI_InventoryMenu_ToggleFavorite = (void *)0x05B35568;\r\nconst void * RTTI_InventoryMenu_ToggleHelmet = (void *)0x05B360A8;\r\nconst void * RTTI_InventoryMenu_ToggleSuit = (void *)0x05B36030;\r\nconst void * RTTI_Inventory_SetSort = (void *)0x05AFE9C8;\r\nconst void * RTTI_InvisibilityEffect = (void *)0x05B7F3B8;\r\nconst void * RTTI_IronSightsState = (void *)0x05C48498;\r\nconst void * RTTI_ItemCraftingBase = (void *)0x05AF40E8;\r\nconst void * RTTI_ItemModInfoCardDataModel = (void *)0x05AFF2B8;\r\nconst void * RTTI_ItemModInfoCardDataModel__ItemModInfoCardEventShuttle = (void *)0x05AFF3C0;\r\nconst void * RTTI_ItemModdingBase = (void *)0x05AF4238;\r\nconst void * RTTI_ItemModsDataModel = (void *)0x05AFFBF8;\r\nconst void * RTTI_ItemModsDataModel__ItemModsEventShuttle = (void *)0x05AFFC70;\r\nconst void * RTTI_JetpackEffect = (void *)0x05B7F420;\r\nconst void * RTTI_JetpackUtils__TESCellReferenceAttachDetachEventSink = (void *)0x05B7F700;\r\nconst void * RTTI_Json__BuiltStyledStreamWriter = (void *)0x0598F0D0;\r\nconst void * RTTI_Json__CharReader = (void *)0x0598EF90;\r\nconst void * RTTI_Json__CharReaderBuilder = (void *)0x0598EFE8;\r\nconst void * RTTI_Json__CharReader__Factory = (void *)0x0598EFB8;\r\nconst void * RTTI_Json__OurCharReader = (void *)0x0598F0A0;\r\nconst void * RTTI_Json__StreamWriter = (void *)0x0598F018;\r\nconst void * RTTI_Json__StreamWriterBuilder = (void *)0x0598F070;\r\nconst void * RTTI_Json__StreamWriter__Factory = (void *)0x0598F040;\r\nconst void * RTTI_JumpAnimEventHandler = (void *)0x05BCED38;\r\nconst void * RTTI_KillActorHandler = (void *)0x05BCE408;\r\nconst void * RTTI_KillMoveEndHandler = (void *)0x05BCF218;\r\nconst void * RTTI_KillMoveStartHandler = (void *)0x05BCF2A0;\r\nconst void * RTTI_KnockdownHandler = (void *)0x05BCB0F0;\r\nconst void * RTTI_KnockdownTargetHandler = (void *)0x05BCB060;\r\nconst void * RTTI_LODData = (void *)0x059E1690;\r\nconst void * RTTI_LeftHandSpellCastHandler = (void *)0x05BCEA38;\r\nconst void * RTTI_LeftHandSpellFireHandler = (void *)0x05BCEA98;\r\nconst void * RTTI_LegacyNif__BSEffectShaderProperty = (void *)0x05D52918;\r\nconst void * RTTI_LegacyNif__BSLightingShaderProperty = (void *)0x05D52868;\r\nconst void * RTTI_LegacyNif__BSMasterParticleSystem = (void *)0x05D52388;\r\nconst void * RTTI_LegacyNif__BSMultiBound = (void *)0x05D529B8;\r\nconst void * RTTI_LegacyNif__BSMultiBoundNode = (void *)0x05D529E8;\r\nconst void * RTTI_LegacyNif__BSMultiBoundOBB = (void *)0x05D52328;\r\nconst void * RTTI_LegacyNif__BSPSysInheritVelocityModifier = (void *)0x05D52728;\r\nconst void * RTTI_LegacyNif__BSPSysLODModifier = (void *)0x05D52198;\r\nconst void * RTTI_LegacyNif__BSPSysScaleModifier = (void *)0x05D52640;\r\nconst void * RTTI_LegacyNif__BSPSysSimpleColorModifier = (void *)0x05D52240;\r\nconst void * RTTI_LegacyNif__BSPSysSubTexModifier = (void *)0x05D52208;\r\nconst void * RTTI_LegacyNif__BSPositionData = (void *)0x05D52358;\r\nconst void * RTTI_LegacyNif__BSShaderTextureSet = (void *)0x05D52800;\r\nconst void * RTTI_LegacyNif__BSSubIndexTriShape = (void *)0x05D522F0;\r\nconst void * RTTI_LegacyNif__BSWaterShaderProperty = (void *)0x05D52950;\r\nconst void * RTTI_LegacyNif__BSWindModifier = (void *)0x05D527D0;\r\nconst void * RTTI_LegacyNif__NiAlphaProperty = (void *)0x05D52838;\r\nconst void * RTTI_LegacyNif__NiPSysAgeDeathModifier = (void *)0x05D52130;\r\nconst void * RTTI_LegacyNif__NiPSysBombModifier = (void *)0x05D526F0;\r\nconst void * RTTI_LegacyNif__NiPSysBoundUpdateModifier = (void *)0x05D52678;\r\nconst void * RTTI_LegacyNif__NiPSysBoxEmitter = (void *)0x05D52530;\r\nconst void * RTTI_LegacyNif__NiPSysColliderManager = (void *)0x05D52568;\r\nconst void * RTTI_LegacyNif__NiPSysCylinderEmitter = (void *)0x05D524F8;\r\nconst void * RTTI_LegacyNif__NiPSysData = (void *)0x05D523C0;\r\nconst void * RTTI_LegacyNif__NiPSysDragModifier = (void *)0x05D522B8;\r\nconst void * RTTI_LegacyNif__NiPSysGravityModifier = (void *)0x05D52768;\r\nconst void * RTTI_LegacyNif__NiPSysMeshEmitter = (void *)0x05D525A0;\r\nconst void * RTTI_LegacyNif__NiPSysPlanarCollider = (void *)0x05D525D8;\r\nconst void * RTTI_LegacyNif__NiPSysPositionModifier = (void *)0x05D52280;\r\nconst void * RTTI_LegacyNif__NiPSysRotationModifier = (void *)0x05D526B8;\r\nconst void * RTTI_LegacyNif__NiPSysSpawnModifier = (void *)0x05D521D0;\r\nconst void * RTTI_LegacyNif__NiPSysSphereEmitter = (void *)0x05D52488;\r\nconst void * RTTI_LegacyNif__NiParticleSystem = (void *)0x05D52420;\r\nconst void * RTTI_LegacyNif__SkyShaderProperty = (void *)0x05D528E0;\r\nconst void * RTTI_LensFlareAttachmentComponent = (void *)0x059CD388;\r\nconst void * RTTI_LevelUp_AnimFinished = (void *)0x05B28D88;\r\nconst void * RTTI_LevelUp_OnWidgetShown = (void *)0x05B28248;\r\nconst void * RTTI_LevelUp_OpenDataMenu = (void *)0x05B28DB8;\r\nconst void * RTTI_LevelUp_ShowSkills = (void *)0x05B28E38;\r\nconst void * RTTI_LightAnimFormComponent = (void *)0x059928D8;\r\nconst void * RTTI_LightAttachmentFormComponent = (void *)0x059E6800;\r\nconst void * RTTI_LightAttachmentRuntimeComponentUpdateService = (void *)0x05B9DA90;\r\nconst void * RTTI_LightEffect = (void *)0x05997B88;\r\nconst void * RTTI_LinearVariable = (void *)0x05C992E8;\r\nconst void * RTTI_LinearVariableInstance = (void *)0x05C992B8;\r\nconst void * RTTI_LinkedBNETLogin__BNetInitializedEventListener = (void *)0x05C81E20;\r\nconst void * RTTI_LinkedCellProcessHelper = (void *)0x05A54530;\r\nconst void * RTTI_LoadBufferStorageWrapper = (void *)0x05B8C460;\r\nconst void * RTTI_LoadFileStorageWrapper = (void *)0x05B8C430;\r\nconst void * RTTI_LoadGameMagicCasterVisitor = (void *)0x05BABCA0;\r\nconst void * RTTI_LoadOrder = (void *)0x05D551A0;\r\nconst void * RTTI_LoadOrderArchive = (void *)0x05D54988;\r\nconst void * RTTI_LoadOrderBox = (void *)0x05D559E0;\r\nconst void * RTTI_LoadOrderEntry = (void *)0x05D559B8;\r\nconst void * RTTI_LoadOrder_SSB = (void *)0x05D556B8;\r\nconst void * RTTI_LoadSavePanelDataModel = (void *)0x05B010B8;\r\nconst void * RTTI_LoadSavePanelDataModel__LoadSavePanelEventShuttle = (void *)0x05B010F0;\r\nconst void * RTTI_LoadScreenRenderingEventHandler = (void *)0x05AEDEA0;\r\nconst void * RTTI_LoadTraversalSubgraphDataFunctor = (void *)0x05A19990;\r\nconst void * RTTI_LoadedAreaBound = (void *)0x05A85A08;\r\nconst void * RTTI_LoadedCellDB__IStateControl = (void *)0x059DDC90;\r\nconst void * RTTI_LoadedCellDB__LoadCell = (void *)0x059DDA00;\r\nconst void * RTTI_LoadedCellDB__ModuleState = (void *)0x059DD788;\r\nconst void * RTTI_LoadedCellDB__PostProcessCell = (void *)0x059DD808;\r\nconst void * RTTI_LoadedCellDB__SignalDoneTask = (void *)0x059DD638;\r\nconst void * RTTI_LoadingMenu = (void *)0x05C504C8;\r\nconst void * RTTI_LoadingMenuDataModel = (void *)0x05B00648;\r\nconst void * RTTI_LoadingMenuDataModel__LoadingMenuEventShuttle = (void *)0x05AFFCF0;\r\nconst void * RTTI_LoadingMenu_RefreshText = (void *)0x05C50498;\r\nconst void * RTTI_LocalEnvData = (void *)0x05B01640;\r\nconst void * RTTI_LocalEnvData_Frequent = (void *)0x05B01610;\r\nconst void * RTTI_LocalEnvironmentDataModel = (void *)0x05B016A0;\r\nconst void * RTTI_LocationTextWidget_FinishedQueue = (void *)0x05B281C8;\r\nconst void * RTTI_LockEffect = (void *)0x05B7F878;\r\nconst void * RTTI_LocomotionBlend = (void *)0x05C99A88;\r\nconst void * RTTI_LocomotionBlendInstance = (void *)0x05C99AB0;\r\nconst void * RTTI_LoginDialog = (void *)0x05AE2D70;\r\nconst void * RTTI_LookAtChainData = (void *)0x059D6128;\r\nconst void * RTTI_LookAtChainInstance = (void *)0x059D60F8;\r\nconst void * RTTI_LookAtNode = (void *)0x05C99868;\r\nconst void * RTTI_LookAtNodeInstance = (void *)0x05C99890;\r\nconst void * RTTI_LoopingActivateHandler = (void *)0x05BCF078;\r\nconst void * RTTI_MagicCaster = (void *)0x059F6A50;\r\nconst void * RTTI_MagicCaster__PostCreationCallback = (void *)0x05B7F8A0;\r\nconst void * RTTI_MagicItem = (void *)0x059F5A48;\r\nconst void * RTTI_MagicItemDataCollector = (void *)0x05B7ECB8;\r\nconst void * RTTI_MagicItemFindKeywordFunctor = (void *)0x059F5F08;\r\nconst void * RTTI_MagicItemTraversalFunctor = (void *)0x059F5FA8;\r\nconst void * RTTI_MagicTarget = (void *)0x05B2BF58;\r\nconst void * RTTI_MagicTarget__IPostCreationModification = (void *)0x05B7EE80;\r\nconst void * RTTI_Main = (void *)0x05B9CA38;\r\nconst void * RTTI_MainMenu = (void *)0x05C535C8;\r\nconst void * RTTI_MainMenuConfirmationDataModel = (void *)0x05B02D08;\r\nconst void * RTTI_MainMenuConfirmationDataModel__MainMenuConfirmationEventShuttle = (void *)0x05B02CB0;\r\nconst void * RTTI_MainMenuGamerInfoDataModel = (void *)0x05B02688;\r\nconst void * RTTI_MainMenuGamerInfoDataModel__MainMenuGamerInfoEventShuttle = (void *)0x05B02770;\r\nconst void * RTTI_MainMenuListDataModel = (void *)0x05B02E58;\r\nconst void * RTTI_MainMenuListDataModel__MainMenuListEventShuttle = (void *)0x05B02E10;\r\nconst void * RTTI_MainMenuMOTDDataModel = (void *)0x05B027C0;\r\nconst void * RTTI_MainMenuMOTDDataModel__MOTDDataModelEventShuttle = (void *)0x05B02880;\r\nconst void * RTTI_MainMenuPipelineProgressDataModel = (void *)0x05B02500;\r\nconst void * RTTI_MainMenuPipelineProgressDataModel__MainMenuPipelineProgressDataEventShuttle = (void *)0x05B02620;\r\nconst void * RTTI_MainMenuStateDataModel = (void *)0x05B03218;\r\nconst void * RTTI_MainMenuStateDataModel__MainMenuStateEventShuttle = (void *)0x05B02FD0;\r\nconst void * RTTI_MainMenu_ActionCanceled = (void *)0x05C53148;\r\nconst void * RTTI_MainMenu_ActionConfirmed = (void *)0x05C530C8;\r\nconst void * RTTI_MainMenu_CloseAdBanner = (void *)0x05C534D8;\r\nconst void * RTTI_MainMenu_ConfirmLoad = (void *)0x05C53638;\r\nconst void * RTTI_MainMenu_DeleteSave = (void *)0x05C536B8;\r\nconst void * RTTI_MainMenu_LegalScreenComplete = (void *)0x05C53450;\r\nconst void * RTTI_MainMenu_OpenStorePage = (void *)0x05C53558;\r\nconst void * RTTI_MainMenu_SetCharacter = (void *)0x05C53738;\r\nconst void * RTTI_MainMenu_StartAction = (void *)0x05C53048;\r\nconst void * RTTI_MainMenu_StartLoad = (void *)0x05C531C8;\r\nconst void * RTTI_MainMenu_UploadSave = (void *)0x05C537B8;\r\nconst void * RTTI_MarketplaceBundleContent = (void *)0x05AE3928;\r\nconst void * RTTI_MarketplaceCommerce__redeemableListener = (void *)0x05AE3578;\r\nconst void * RTTI_MarketplaceContent = (void *)0x05996A98;\r\nconst void * RTTI_MarketplaceContentCollection = (void *)0x05996A60;\r\nconst void * RTTI_MarketplaceDataProducer = (void *)0x05AE3958;\r\nconst void * RTTI_MarketplaceGameState__gameActiveListener = (void *)0x05AE3B30;\r\nconst void * RTTI_MarketplaceMenu = (void *)0x05AE3D08;\r\nconst void * RTTI_MarketplaceMenu__errorCallback = (void *)0x05AE3D30;\r\nconst void * RTTI_MarketplaceMessages__OkMessageCallback = (void *)0x05AE3D68;\r\nconst void * RTTI_MarketplaceMessages__yesNoMessageCallback = (void *)0x05AE3DA8;\r\nconst void * RTTI_MarketplaceObjectPool = (void *)0x05D55708;\r\nconst void * RTTI_MassSpringDampenVariable = (void *)0x05C98F28;\r\nconst void * RTTI_MassSpringDampenVariableInstance = (void *)0x05C98F58;\r\nconst void * RTTI_MaterialLayerInterface = (void *)0x059FD1C0;\r\nconst void * RTTI_MaterialLayerSequence = (void *)0x05C95E88;\r\nconst void * RTTI_MaterialLayerSequenceInstance = (void *)0x05C98B70;\r\nconst void * RTTI_MeleeAimAssistData = (void *)0x05A418F0;\r\nconst void * RTTI_MeleeAimAssistImpl = (void *)0x05AA9B58;\r\nconst void * RTTI_MemoryManagement__PMPEventSink = (void *)0x05D0A938;\r\nconst void * RTTI_MemoryManagerFile = (void *)0x05BA0D28;\r\nconst void * RTTI_MenuActor = (void *)0x05B2BE00;\r\nconst void * RTTI_MenuControls = (void *)0x05C53EE8;\r\nconst void * RTTI_MenuCursor = (void *)0x05CD3D68;\r\nconst void * RTTI_MenuOpenHandler = (void *)0x05C53DE8;\r\nconst void * RTTI_MenuPaperDoll = (void *)0x05B2BD20;\r\nconst void * RTTI_MenuTopicManager = (void *)0x05B81768;\r\nconst void * RTTI_MergeNode = (void *)0x05C99AE0;\r\nconst void * RTTI_MergeNodeInstance = (void *)0x05C99B00;\r\nconst void * RTTI_MeshLODDistanceOverride = (void *)0x059E15F0;\r\nconst void * RTTI_MessageBoxMenu = (void *)0x05C54618;\r\nconst void * RTTI_MessageBoxMenu_OnBackOut = (void *)0x05C542E8;\r\nconst void * RTTI_MessageBoxMenu_OnButtonPress = (void *)0x05C54260;\r\nconst void * RTTI_MessageBoxMenu__MessageBoxMenuEventShuttle = (void *)0x05C54780;\r\nconst void * RTTI_MessageMenuManager = (void *)0x05C543B0;\r\nconst void * RTTI_MigrateSharedStateFromPreviousView = (void *)0x05B894A8;\r\nconst void * RTTI_MirrorModifier = (void *)0x05C95230;\r\nconst void * RTTI_MirrorModifierInstance = (void *)0x05C98BA8;\r\nconst void * RTTI_MiscStatManager__FindStatByCRC = (void *)0x05A7DBC8;\r\nconst void * RTTI_MissileProjectile = (void *)0x05BD14E8;\r\nconst void * RTTI_MissingContent = (void *)0x05D55760;\r\nconst void * RTTI_MissionBoardMenu = (void *)0x05B36928;\r\nconst void * RTTI_MissionBoardMenu__MissionBoardMenuEventShuttle = (void *)0x05B364A0;\r\nconst void * RTTI_MissionBoard_MissionEntryChanged = (void *)0x05B36A40;\r\nconst void * RTTI_MissionBoard_MissionEntryPressed = (void *)0x05B36BC8;\r\nconst void * RTTI_MissionMenu_ClearState = (void *)0x05B30F50;\r\nconst void * RTTI_MissionMenu_PlotToLocation = (void *)0x05B31120;\r\nconst void * RTTI_MissionMenu_RejectQuest = (void *)0x05B30ED0;\r\nconst void * RTTI_MissionMenu_SaveCategoryIndex = (void *)0x05B30FC8;\r\nconst void * RTTI_MissionMenu_SaveOpenedId = (void *)0x05B30E48;\r\nconst void * RTTI_MissionMenu_ShowItemLocation = (void *)0x05B31000;\r\nconst void * RTTI_MissionMenu_ToggleQTDisplay = (void *)0x05B30C98;\r\nconst void * RTTI_MissionMenu_ToggleTrackingQuest = (void *)0x05B31090;\r\nconst void * RTTI_MobIterOperator = (void *)0x05A801B8;\r\nconst void * RTTI_ModelLoader = (void *)0x059FA740;\r\nconst void * RTTI_ModelReferenceEffect = (void *)0x05995680;\r\nconst void * RTTI_MomentumAnimation = (void *)0x05C99260;\r\nconst void * RTTI_MomentumAnimationInstance = (void *)0x05C99288;\r\nconst void * RTTI_MomentumSwitchback = (void *)0x05C991F8;\r\nconst void * RTTI_MomentumSwitchbackInstance = (void *)0x05C99228;\r\nconst void * RTTI_MonocleMenu = (void *)0x05B3BB30;\r\nconst void * RTTI_MonocleMenu_Bioscan = (void *)0x05B3B568;\r\nconst void * RTTI_MonocleMenu_FastTravel = (void *)0x05B3A840;\r\nconst void * RTTI_MonocleMenu_Harvest = (void *)0x05B3BA48;\r\nconst void * RTTI_MonocleMenu_Initialize = (void *)0x05B3A038;\r\nconst void * RTTI_MonocleMenu_OpenDoor = (void *)0x05B3A4D8;\r\nconst void * RTTI_MonocleMenu_Outpost = (void *)0x05B3B8A8;\r\nconst void * RTTI_MonocleMenu_PhotoMode = (void *)0x05B3B228;\r\nconst void * RTTI_MonocleMenu_Shutdown = (void *)0x05B3A128;\r\nconst void * RTTI_MonocleMenu_SocialSpell = (void *)0x05B3B708;\r\nconst void * RTTI_MonocleMenu_StartContainerView = (void *)0x05B3AB88;\r\nconst void * RTTI_MonocleMenu_StopContainerView = (void *)0x05B3AD30;\r\nconst void * RTTI_MonocleMenu_SurfaceMap = (void *)0x05B3B088;\r\nconst void * RTTI_MonocleMenu_UseListScrollControls = (void *)0x05B3A9E8;\r\nconst void * RTTI_MonocleMenu_ZoomIn = (void *)0x05B3B3C8;\r\nconst void * RTTI_MonocleMenu_ZoomOut = (void *)0x05B3AEE8;\r\nconst void * RTTI_MonocleUIDataModel = (void *)0x05B24988;\r\nconst void * RTTI_MonocleUIDataModel__EventData = (void *)0x05B23C10;\r\nconst void * RTTI_MonocleUIDataModel__LegendaryModData = (void *)0x05B24340;\r\nconst void * RTTI_MonocleUIDataModel__MenuData = (void *)0x05B24380;\r\nconst void * RTTI_MonocleUIDataModel__MenuFreqData = (void *)0x05B24030;\r\nconst void * RTTI_MonocleUIDataModel__MonocleUIDataEventShuttle = (void *)0x05B24590;\r\nconst void * RTTI_MonocleUIDataModel__PickRefData = (void *)0x05B23FB8;\r\nconst void * RTTI_MonocleUIDataModel__ResourceArcData = (void *)0x05B24650;\r\nconst void * RTTI_MonocleUIDataModel__ResourceData = (void *)0x05B24618;\r\nconst void * RTTI_MonocleUIDataModel__ScannableMapMarkerData = (void *)0x05B23FF0;\r\nconst void * RTTI_MonocleUIDataModel__SocialSpellData = (void *)0x05B245D8;\r\nconst void * RTTI_MorphDriverData = (void *)0x05A43128;\r\nconst void * RTTI_MorphDriverInstance = (void *)0x05A43248;\r\nconst void * RTTI_MotionDrivenHandler = (void *)0x05BCF1E8;\r\nconst void * RTTI_MotionDrivenHandlerReference = (void *)0x05BCA438;\r\nconst void * RTTI_MountDismountEndHandler = (void *)0x05BCF658;\r\nconst void * RTTI_MountInteraction = (void *)0x05BB0F88;\r\nconst void * RTTI_MouseMoveEvent = (void *)0x05C9D570;\r\nconst void * RTTI_MovementAgent = (void *)0x05A129B8;\r\nconst void * RTTI_MovementAgentActorAvoider = (void *)0x05CF1730;\r\nconst void * RTTI_MovementAgentActorState = (void *)0x05CF3A18;\r\nconst void * RTTI_MovementAgentFlightController = (void *)0x05CF3EC8;\r\nconst void * RTTI_MovementAgentFlightControllerDetached = (void *)0x05CF5838;\r\nconst void * RTTI_MovementAgentPathFollowerFlight = (void *)0x05CFA160;\r\nconst void * RTTI_MovementAgentPathFollowerStandard = (void *)0x05CF3798;\r\nconst void * RTTI_MovementAgentPathFollowerVirtual = (void *)0x05CF53A8;\r\nconst void * RTTI_MovementArbiter = (void *)0x05CF2320;\r\nconst void * RTTI_MovementArbitrationAverageFloat = (void *)0x05CF58B0;\r\nconst void * RTTI_MovementArbitrationMaxWeightParameters = (void *)0x05CF5A08;\r\nconst void * RTTI_MovementArbitrationMaxWeightPoint = (void *)0x05CF5AD8;\r\nconst void * RTTI_MovementArbitrationVectorAdd = (void *)0x05CFAA50;\r\nconst void * RTTI_MovementAvoidBoxEventAdapter = (void *)0x05B990A0;\r\nconst void * RTTI_MovementAvoidBoxManager = (void *)0x05CF8B88;\r\nconst void * RTTI_MovementAvoidanceManager = (void *)0x05BB7248;\r\nconst void * RTTI_MovementComponentEventHandler = (void *)0x05A11A40;\r\nconst void * RTTI_MovementComponentSetDescriptions = (void *)0x05A11D78;\r\nconst void * RTTI_MovementControllerAI = (void *)0x05A123D8;\r\nconst void * RTTI_MovementControllerComponent = (void *)0x05A12408;\r\nconst void * RTTI_MovementControllerComponentData = (void *)0x05A12440;\r\nconst void * RTTI_MovementControllerNPC = (void *)0x05BB72B0;\r\nconst void * RTTI_MovementControllerNullDataTracker = (void *)0x05CF5D48;\r\nconst void * RTTI_MovementControllerRegisterInterface = (void *)0x05CF5CA8;\r\nconst void * RTTI_MovementControllerSetDescriptions = (void *)0x05B9E3F0;\r\nconst void * RTTI_MovementHandlerAgentAngleGain = (void *)0x05CFA3E0;\r\nconst void * RTTI_MovementHandlerAgentDirectControl = (void *)0x05BB75A0;\r\nconst void * RTTI_MovementHandlerAgentDirectionPassThrough = (void *)0x05CF9EF8;\r\nconst void * RTTI_MovementHandlerAgentFlightBoostTrigger = (void *)0x05A129E0;\r\nconst void * RTTI_MovementHandlerAgentGraphDrivenAnimationDriven = (void *)0x05A12CA0;\r\nconst void * RTTI_MovementHandlerAgentPlayerControls = (void *)0x05A12CE8;\r\nconst void * RTTI_MovementHandlerAgentPlayerControlsActionTrigger = (void *)0x05A13250;\r\nconst void * RTTI_MovementHandlerAgentPlayerFlightControls = (void *)0x05A134F0;\r\nconst void * RTTI_MovementHandlerAgentSprintActionTrigger = (void *)0x05BB7818;\r\nconst void * RTTI_MovementHandlerAgentStairsHelper = (void *)0x05BB7920;\r\nconst void * RTTI_MovementHandlerAgentStandard = (void *)0x05CF5370;\r\nconst void * RTTI_MovementHandlerAgentStorePlannerOutput = (void *)0x05CF4ED8;\r\nconst void * RTTI_MovementHandlerArbiter = (void *)0x05CF29D0;\r\nconst void * RTTI_MovementLargeDelta__IEnumVisitor = (void *)0x05A7DEB8;\r\nconst void * RTTI_MovementMessage = (void *)0x05A18720;\r\nconst void * RTTI_MovementMessageActivateDoor = (void *)0x05CF7300;\r\nconst void * RTTI_MovementMessageActorCollision = (void *)0x05BB7D00;\r\nconst void * RTTI_MovementMessageApproachingDoor = (void *)0x05CF7338;\r\nconst void * RTTI_MovementMessageBeginLandingApproach = (void *)0x05A186B0;\r\nconst void * RTTI_MovementMessageBlocked = (void *)0x05CF92A8;\r\nconst void * RTTI_MovementMessageDoor = (void *)0x05CF7370;\r\nconst void * RTTI_MovementMessageGravJump = (void *)0x05A1C200;\r\nconst void * RTTI_MovementMessageJump = (void *)0x05CF99F8;\r\nconst void * RTTI_MovementMessageLand = (void *)0x05A1C198;\r\nconst void * RTTI_MovementMessageNewPath = (void *)0x05CF20B0;\r\nconst void * RTTI_MovementMessagePathCleared = (void *)0x05CF6BC8;\r\nconst void * RTTI_MovementMessagePathComplete = (void *)0x05CF7020;\r\nconst void * RTTI_MovementMessagePathEvent = (void *)0x05CF20E0;\r\nconst void * RTTI_MovementMessagePathFailed = (void *)0x05CF6FF0;\r\nconst void * RTTI_MovementMessagePlayIdle = (void *)0x05CF9518;\r\nconst void * RTTI_MovementMessageSetStaticPath = (void *)0x05CF9790;\r\nconst void * RTTI_MovementMessageTakeOff = (void *)0x05A186F0;\r\nconst void * RTTI_MovementMessageTraversal = (void *)0x05CF72A0;\r\nconst void * RTTI_MovementMessageUpdateRequestImmediate = (void *)0x05CF2110;\r\nconst void * RTTI_MovementMessageWarpToLocation = (void *)0x05CF9040;\r\nconst void * RTTI_MovementMessageWarpToMultiple = (void *)0x05CF9C70;\r\nconst void * RTTI_MovementNavmeshBoundsManager = (void *)0x05CF8DC0;\r\nconst void * RTTI_MovementParameters = (void *)0x059C2390;\r\nconst void * RTTI_MovementParametersFixed = (void *)0x05ACD650;\r\nconst void * RTTI_MovementPathManagerAgentAvoidBox = (void *)0x05CF4940;\r\nconst void * RTTI_MovementPathManagerAgentLoadedAreaMonitor = (void *)0x05CF4150;\r\nconst void * RTTI_MovementPathManagerAgentStaticAvoider = (void *)0x05CF4680;\r\nconst void * RTTI_MovementPathManagerArbiter = (void *)0x05CF22E8;\r\nconst void * RTTI_MovementPathManagerNullTracker = (void *)0x05CF2020;\r\nconst void * RTTI_MovementPlannerAgentDirectControl = (void *)0x05BB7FC0;\r\nconst void * RTTI_MovementPlannerAgentNavmeshBounds = (void *)0x05CF43A8;\r\nconst void * RTTI_MovementPlannerAgentWarp = (void *)0x05BB8238;\r\nconst void * RTTI_MovementPlannerArbiter = (void *)0x05CF2490;\r\nconst void * RTTI_MovementPostUpdateArbiter = (void *)0x05CF3588;\r\nconst void * RTTI_MovementSelectIdleUtils__SelectClosestIdleToMovementSelectionData = (void *)0x05CF5DC0;\r\nconst void * RTTI_MovementSelectIdleUtils__SelectClosestIdleToPath = (void *)0x05CF5E20;\r\nconst void * RTTI_MovementStateFollowPath = (void *)0x05CF1BE0;\r\nconst void * RTTI_MovementStateTweener = (void *)0x05CF19A8;\r\nconst void * RTTI_MovementTweenerAgentFixedDelta = (void *)0x05CF4A28;\r\nconst void * RTTI_MovementTweenerAgentNodeFollower = (void *)0x05BB84E0;\r\nconst void * RTTI_MovementTweenerAgentTargetPosAndVel = (void *)0x05CF4C70;\r\nconst void * RTTI_MovementTweenerArbiter = (void *)0x05CF2F08;\r\nconst void * RTTI_MoviePlayer = (void *)0x05B8D040;\r\nconst void * RTTI_MultiFootIKNode = (void *)0x05C99040;\r\nconst void * RTTI_MultiFootIKNodeInstance = (void *)0x05C99068;\r\nconst void * RTTI_NEW_REFR_DATA = (void *)0x059E4B38;\r\nconst void * RTTI_NPCAttachHandler = (void *)0x05BCF5D8;\r\nconst void * RTTI_NPCDetachHandler = (void *)0x05BCF600;\r\nconst void * RTTI_NavGenUtil__TunnelTerraintFilter = (void *)0x05A14AB8;\r\nconst void * RTTI_NavMesh = (void *)0x05995C98;\r\nconst void * RTTI_NavMeshCoverGenerator = (void *)0x05A805D8;\r\nconst void * RTTI_NavMeshGenContext = (void *)0x059D1158;\r\nconst void * RTTI_NavMeshGenData = (void *)0x059D0888;\r\nconst void * RTTI_NavMeshGenFinalizer = (void *)0x05A16058;\r\nconst void * RTTI_NavMeshGenInputBorderProcessTask = (void *)0x059D0FF8;\r\nconst void * RTTI_NavMeshGenInputProcessor = (void *)0x05A16378;\r\nconst void * RTTI_NavMeshGenOutputProcessor = (void *)0x05A16418;\r\nconst void * RTTI_NavMeshGenSplitter = (void *)0x05A16478;\r\nconst void * RTTI_NavMeshGenStitcher = (void *)0x05A165B0;\r\nconst void * RTTI_NavMeshGenerator = (void *)0x05A14FD8;\r\nconst void * RTTI_NavMeshGenerator__NavMeshGenCellsNode = (void *)0x05A15570;\r\nconst void * RTTI_NavMeshInfo = (void *)0x05A98AD0;\r\nconst void * RTTI_NavMeshInfoMap = (void *)0x05A98C58;\r\nconst void * RTTI_NavMeshObstacleCoverManager = (void *)0x05A18268;\r\nconst void * RTTI_NavMeshObstacleManager = (void *)0x05A990A8;\r\nconst void * RTTI_NavMeshSearchClosePoint = (void *)0x05A9B2B0;\r\nconst void * RTTI_NavMeshSearchFitSphere = (void *)0x05A9B458;\r\nconst void * RTTI_NavMeshSearchHide = (void *)0x05A9B6D0;\r\nconst void * RTTI_NavMeshSearchLOS = (void *)0x05A9B808;\r\nconst void * RTTI_NavMeshSearchLargestSpaceNearLocation = (void *)0x05A9B2E0;\r\nconst void * RTTI_NavMeshSearchSLPoint = (void *)0x05A9B830;\r\nconst void * RTTI_NavMeshSplineExtraData = (void *)0x05A4F948;\r\nconst void * RTTI_NiAVObject = (void *)0x059C6C88;\r\nconst void * RTTI_NiAdditionalGeometryData = (void *)0x05D52B98;\r\nconst void * RTTI_NiAmbientLight = (void *)0x05D52B70;\r\nconst void * RTTI_NiBSplineBasisData = (void *)0x05D50820;\r\nconst void * RTTI_NiBSplineColorInterpolator = (void *)0x05D50878;\r\nconst void * RTTI_NiBSplineCompColorInterpolator = (void *)0x05D508B0;\r\nconst void * RTTI_NiBSplineCompFloatInterpolator = (void *)0x05D50920;\r\nconst void * RTTI_NiBSplineCompPoint3Interpolator = (void *)0x05D50990;\r\nconst void * RTTI_NiBSplineCompTransformInterpolator = (void *)0x05D506B8;\r\nconst void * RTTI_NiBSplineData = (void *)0x05D50850;\r\nconst void * RTTI_NiBSplineFloatInterpolator = (void *)0x05D508E8;\r\nconst void * RTTI_NiBSplineInterpolator = (void *)0x05D50730;\r\nconst void * RTTI_NiBSplinePoint3Interpolator = (void *)0x05D50958;\r\nconst void * RTTI_NiBSplineTransformInterpolator = (void *)0x05D506F8;\r\nconst void * RTTI_NiBillboardNode = (void *)0x05D51E10;\r\nconst void * RTTI_NiBinaryExtraData = (void *)0x05D52BC8;\r\nconst void * RTTI_NiBinaryStream = (void *)0x05A7FF18;\r\nconst void * RTTI_NiBlendAccumTransformInterpolator = (void *)0x05D501B8;\r\nconst void * RTTI_NiBlendBoolInterpolator = (void *)0x05D504E8;\r\nconst void * RTTI_NiBlendColorInterpolator = (void *)0x05D50760;\r\nconst void * RTTI_NiBlendFloatInterpolator = (void *)0x05D50320;\r\nconst void * RTTI_NiBlendInterpolator = (void *)0x05D501F0;\r\nconst void * RTTI_NiBlendPoint3Interpolator = (void *)0x05D50790;\r\nconst void * RTTI_NiBlendQuaternionInterpolator = (void *)0x05D507C0;\r\nconst void * RTTI_NiBlendTransformInterpolator = (void *)0x05D503B8;\r\nconst void * RTTI_NiBoolData = (void *)0x05D507F8;\r\nconst void * RTTI_NiBoolInterpolator = (void *)0x05D50488;\r\nconst void * RTTI_NiBoolTimelineInterpolator = (void *)0x05D50450;\r\nconst void * RTTI_NiBooleanExtraData = (void *)0x05D52BF0;\r\nconst void * RTTI_NiCamera = (void *)0x05D516E0;\r\nconst void * RTTI_NiCollisionObject = (void *)0x05BB0B58;\r\nconst void * RTTI_NiColorData = (void *)0x05D509C8;\r\nconst void * RTTI_NiColorExtraData = (void *)0x05D52038;\r\nconst void * RTTI_NiColorExtraDataController = (void *)0x05D509F0;\r\nconst void * RTTI_NiColorInterpolator = (void *)0x05D50A28;\r\nconst void * RTTI_NiControllerManager = (void *)0x05D50050;\r\nconst void * RTTI_NiControllerSequence = (void *)0x05D500E8;\r\nconst void * RTTI_NiDefaultAVObjectPalette = (void *)0x05D50080;\r\nconst void * RTTI_NiDirectionalLight = (void *)0x05D52C20;\r\nconst void * RTTI_NiExtraData = (void *)0x059C4200;\r\nconst void * RTTI_NiExtraDataController = (void *)0x05D50388;\r\nconst void * RTTI_NiFile = (void *)0x05B86DB8;\r\nconst void * RTTI_NiFloatController = (void *)0x05D50E50;\r\nconst void * RTTI_NiFloatData = (void *)0x05D502F8;\r\nconst void * RTTI_NiFloatExtraData = (void *)0x05D52C50;\r\nconst void * RTTI_NiFloatExtraDataController = (void *)0x05D50350;\r\nconst void * RTTI_NiFloatInterpolator = (void *)0x05D504B8;\r\nconst void * RTTI_NiFloatsExtraData = (void *)0x05D52060;\r\nconst void * RTTI_NiFloatsExtraDataController = (void *)0x05D50A58;\r\nconst void * RTTI_NiFloatsExtraDataPoint3Controller = (void *)0x05D50A90;\r\nconst void * RTTI_NiFogProperty = (void *)0x05D52B48;\r\nconst void * RTTI_NiFormArray = (void *)0x05A82700;\r\nconst void * RTTI_NiGeometry = (void *)0x05D52D70;\r\nconst void * RTTI_NiGeometryData = (void *)0x05D51EA0;\r\nconst void * RTTI_NiIntegerExtraData = (void *)0x05CA40D0;\r\nconst void * RTTI_NiIntegersExtraData = (void *)0x05CC0EA0;\r\nconst void * RTTI_NiKeyframeManager = (void *)0x05D50C00;\r\nconst void * RTTI_NiLight = (void *)0x05D52110;\r\nconst void * RTTI_NiLightColorController = (void *)0x05D50C80;\r\nconst void * RTTI_NiLightDimmerController = (void *)0x05D50CE0;\r\nconst void * RTTI_NiLightRadiusController = (void *)0x05D50D10;\r\nconst void * RTTI_NiLookAtController = (void *)0x05D50D40;\r\nconst void * RTTI_NiLookAtInterpolator = (void *)0x05D50D70;\r\nconst void * RTTI_NiMemStream = (void *)0x05D52E90;\r\nconst void * RTTI_NiMorphData = (void *)0x05D50DA0;\r\nconst void * RTTI_NiMultiTargetTransformController = (void *)0x05D500B0;\r\nconst void * RTTI_NiNode = (void *)0x059C6C68;\r\nconst void * RTTI_NiObjectNET = (void *)0x059C6BA0;\r\nconst void * RTTI_NiPathController = (void *)0x05D50DC8;\r\nconst void * RTTI_NiPathInterpolator = (void *)0x05D502C8;\r\nconst void * RTTI_NiPick__Results = (void *)0x05D51F58;\r\nconst void * RTTI_NiPoint3Interpolator = (void *)0x05D50DF0;\r\nconst void * RTTI_NiPointLight = (void *)0x05D52C78;\r\nconst void * RTTI_NiPosData = (void *)0x05D502A8;\r\nconst void * RTTI_NiQuaternionInterpolator = (void *)0x05D50E20;\r\nconst void * RTTI_NiRefObject = (void *)0x059C41D8;\r\nconst void * RTTI_NiRollController = (void *)0x05D50E78;\r\nconst void * RTTI_NiRotData = (void *)0x05D50EA0;\r\nconst void * RTTI_NiSequence = (void *)0x05D50EF0;\r\nconst void * RTTI_NiSequenceStreamHelper = (void *)0x05D51098;\r\nconst void * RTTI_NiSkinData = (void *)0x05D52CA0;\r\nconst void * RTTI_NiSkinInstance = (void *)0x05D52CC8;\r\nconst void * RTTI_NiSkinPartition = (void *)0x05D52CF0;\r\nconst void * RTTI_NiSpotLight = (void *)0x05D52D18;\r\nconst void * RTTI_NiStream = (void *)0x05A85940;\r\nconst void * RTTI_NiStringExtraData = (void *)0x05D51690;\r\nconst void * RTTI_NiStringPalette = (void *)0x05D510C8;\r\nconst void * RTTI_NiStringsExtraData = (void *)0x05D52D40;\r\nconst void * RTTI_NiSwitchNode = (void *)0x05D51E38;\r\nconst void * RTTI_NiTextKeyExtraData = (void *)0x05D510F0;\r\nconst void * RTTI_NiTimeController = (void *)0x05A022E0;\r\nconst void * RTTI_NiTransformController = (void *)0x05D50188;\r\nconst void * RTTI_NiTransformData = (void *)0x05D50690;\r\nconst void * RTTI_NiTransformInterpolator = (void *)0x05D50248;\r\nconst void * RTTI_NiTriBasedGeom = (void *)0x05D52DC0;\r\nconst void * RTTI_NiTriBasedGeomData = (void *)0x05D52DE8;\r\nconst void * RTTI_NiTriShape = (void *)0x05D52D98;\r\nconst void * RTTI_NiTriShapeData = (void *)0x05D52E18;\r\nconst void * RTTI_NiTriStrips = (void *)0x05D52E40;\r\nconst void * RTTI_NiTriStripsData = (void *)0x05D52E68;\r\nconst void * RTTI_NiUVData = (void *)0x05D51120;\r\nconst void * RTTI_NiVisController = (void *)0x05D51140;\r\nconst void * RTTI_NightEyeEffect = (void *)0x05B7FE70;\r\nconst void * RTTI_NonActorMagicCaster = (void *)0x059F6A78;\r\nconst void * RTTI_NonActorMagicCaster__Manager = (void *)0x05B80348;\r\nconst void * RTTI_NonActorMagicTarget = (void *)0x059950C0;\r\nconst void * RTTI_NonActorMagicTarget__Manager = (void *)0x05B80490;\r\nconst void * RTTI_NormalizeRotation = (void *)0x05C951E0;\r\nconst void * RTTI_NormalizeRotationInstance = (void *)0x05C98BD8;\r\nconst void * RTTI_NullMovementSelectIdleResult = (void *)0x05CF5878;\r\nconst void * RTTI_NullMovementState = (void *)0x05C2F9C8;\r\nconst void * RTTI_NullPathBuilderTracker = (void *)0x05CED810;\r\nconst void * RTTI_ObjectAttachmentFormComponent = (void *)0x059E7090;\r\nconst void * RTTI_ObjectListItem = (void *)0x05A89230;\r\nconst void * RTTI_ObstacleTaskData = (void *)0x05A99318;\r\nconst void * RTTI_OfflineLoadOrder = (void *)0x05D54410;\r\nconst void * RTTI_OpenContainerMenuMessage = (void *)0x05996E10;\r\nconst void * RTTI_OpenEffect = (void *)0x05B805B8;\r\nconst void * RTTI_OpenRefuelMenuMessage = (void *)0x05997220;\r\nconst void * RTTI_OpenShipCrewAssignMenuMessage = (void *)0x059971E8;\r\nconst void * RTTI_Options = (void *)0x05D54EF0;\r\nconst void * RTTI_OwnedCameraEffectController = (void *)0x05A709F8;\r\nconst void * RTTI_OwnedController = (void *)0x059C7570;\r\nconst void * RTTI_OwnedEntitlements = (void *)0x05C81E68;\r\nconst void * RTTI_PackageCreator = (void *)0x05A982C0;\r\nconst void * RTTI_PackageList = (void *)0x05A02BF8;\r\nconst void * RTTI_PackageLocation = (void *)0x05A98380;\r\nconst void * RTTI_PageFileBase = (void *)0x05B86E10;\r\nconst void * RTTI_PairCollector = (void *)0x0598E7C8;\r\nconst void * RTTI_PairedAnimation = (void *)0x05C98FE8;\r\nconst void * RTTI_PairedAnimationInstance = (void *)0x05C99010;\r\nconst void * RTTI_PairedAttackDialogueHandler = (void *)0x05BCB208;\r\nconst void * RTTI_PairedStopHandler = (void *)0x05BCF300;\r\nconst void * RTTI_ParalysisEffect = (void *)0x05B7EDF8;\r\nconst void * RTTI_ParticleFormComponent = (void *)0x059E7B20;\r\nconst void * RTTI_ParticleParticleCollisionsTask = (void *)0x0598E300;\r\nconst void * RTTI_ParticleParticleInterBranchCollisionsTask = (void *)0x0598E340;\r\nconst void * RTTI_ParticleParticleInterbranchSolveTask = (void *)0x0598E290;\r\nconst void * RTTI_ParticleParticleProcessEarlyOutStateTask = (void *)0x0598E168;\r\nconst void * RTTI_ParticleSequence = (void *)0x05C95208;\r\nconst void * RTTI_ParticleSequenceInstance = (void *)0x05C98C08;\r\nconst void * RTTI_ParticleSystemInterface = (void *)0x059FD108;\r\nconst void * RTTI_Particles__AnimatedUVMaterialProperties = (void *)0x05CD64D0;\r\nconst void * RTTI_Particles__BaseCustomParameter = (void *)0x05AAFBB8;\r\nconst void * RTTI_Particles__BaseOperation = (void *)0x05CE4F10;\r\nconst void * RTTI_Particles__BaseParticleSystemItem = (void *)0x05CE5250;\r\nconst void * RTTI_Particles__BoundProperty = (void *)0x05CD6510;\r\nconst void * RTTI_Particles__BundleInfo = (void *)0x05CE4FA8;\r\nconst void * RTTI_Particles__EmitterBinding = (void *)0x05CE9208;\r\nconst void * RTTI_Particles__EmitterDefinition = (void *)0x05CE9D30;\r\nconst void * RTTI_Particles__EmitterMaterialDependency = (void *)0x05CE52E8;\r\nconst void * RTTI_Particles__ForcesProperties = (void *)0x05CE5490;\r\nconst void * RTTI_Particles__GeometryAsShapeDependency = (void *)0x05CE5328;\r\nconst void * RTTI_Particles__GeometryParticlesProperties = (void *)0x05CE5500;\r\nconst void * RTTI_Particles__GroupOperation = (void *)0x05CE5288;\r\nconst void * RTTI_Particles__ITimeMultiplierProvider = (void *)0x05A501C8;\r\nconst void * RTTI_Particles__Intrinsics__ApplyAngularVelocityParamSet = (void *)0x05CE6520;\r\nconst void * RTTI_Particles__Intrinsics__ApplyForcesToPositionParamSet = (void *)0x05CE60A0;\r\nconst void * RTTI_Particles__Intrinsics__ApplyForcesToVelocityParamSet = (void *)0x05CE61B0;\r\nconst void * RTTI_Particles__Intrinsics__ApplyVelocityToPositionParamSet = (void *)0x05CE5F50;\r\nconst void * RTTI_Particles__Intrinsics__ApplyWorldVelocityToPositionParamSet = (void *)0x05CE6050;\r\nconst void * RTTI_Particles__Intrinsics__AssignmentOperationInput = (void *)0x05CE3A10;\r\nconst void * RTTI_Particles__Intrinsics__BindingNameInput = (void *)0x05CE5758;\r\nconst void * RTTI_Particles__Intrinsics__BoolBoolParamSet = (void *)0x05CE3D40;\r\nconst void * RTTI_Particles__Intrinsics__BoolInput = (void *)0x05CE55B0;\r\nconst void * RTTI_Particles__Intrinsics__BroadcastCollisionEventParamSet = (void *)0x05CE3640;\r\nconst void * RTTI_Particles__Intrinsics__ColorAlphaCurvesParamSet = (void *)0x05CE3A60;\r\nconst void * RTTI_Particles__Intrinsics__ColorColorColorParamSet = (void *)0x05CE3E10;\r\nconst void * RTTI_Particles__Intrinsics__ColorColorFloatParamSet = (void *)0x05CE3D80;\r\nconst void * RTTI_Particles__Intrinsics__ColorCurveParamSet = (void *)0x05CE3AA8;\r\nconst void * RTTI_Particles__Intrinsics__ColorFloatParamSet = (void *)0x05CE3E58;\r\nconst void * RTTI_Particles__Intrinsics__ColorInput = (void *)0x05CE5660;\r\nconst void * RTTI_Particles__Intrinsics__ColorPickerMinMaxParamSet = (void *)0x05CE3EA0;\r\nconst void * RTTI_Particles__Intrinsics__ColorPickerParamSet = (void *)0x05CE3DC8;\r\nconst void * RTTI_Particles__Intrinsics__ConditionalJumpParamSet = (void *)0x05CE38B0;\r\nconst void * RTTI_Particles__Intrinsics__ConditionalKillParamSet = (void *)0x05CE3790;\r\nconst void * RTTI_Particles__Intrinsics__ConformToHeightmapParamSet = (void *)0x05CE4280;\r\nconst void * RTTI_Particles__Intrinsics__ConformToHeightmapSimParamSet = (void *)0x05CE4370;\r\nconst void * RTTI_Particles__Intrinsics__CurveParamSet = (void *)0x05CE39C8;\r\nconst void * RTTI_Particles__Intrinsics__CustomHandlingParamSet = (void *)0x05CE6730;\r\nconst void * RTTI_Particles__Intrinsics__CyclingVolumeParamSet = (void *)0x05CE42D0;\r\nconst void * RTTI_Particles__Intrinsics__DebugAnimateParentTransform = (void *)0x05CE4450;\r\nconst void * RTTI_Particles__Intrinsics__DebugAttachToCamera = (void *)0x05CE4410;\r\nconst void * RTTI_Particles__Intrinsics__DebugMoveParentTransform = (void *)0x05CE44E0;\r\nconst void * RTTI_Particles__Intrinsics__DirectionAxisInput = (void *)0x05CE66B0;\r\nconst void * RTTI_Particles__Intrinsics__DirectionToRotation3DParamSet = (void *)0x05CE40B0;\r\nconst void * RTTI_Particles__Intrinsics__Double3Double3Double3ParamSet = (void *)0x05CE3010;\r\nconst void * RTTI_Particles__Intrinsics__Double3Double3ParamSet = (void *)0x05CE2F70;\r\nconst void * RTTI_Particles__Intrinsics__Double3Double3VectorParamSet = (void *)0x05CE3060;\r\nconst void * RTTI_Particles__Intrinsics__Double3Input = (void *)0x05CE5798;\r\nconst void * RTTI_Particles__Intrinsics__EmissionTypeInput = (void *)0x05CE66F0;\r\nconst void * RTTI_Particles__Intrinsics__ExpressionInputParamSet = (void *)0x05CEB630;\r\nconst void * RTTI_Particles__Intrinsics__Float5ParamSet = (void *)0x05CE3568;\r\nconst void * RTTI_Particles__Intrinsics__Float6ParamSet = (void *)0x05CE3528;\r\nconst void * RTTI_Particles__Intrinsics__FloatBoolParamSet = (void *)0x05CE35F8;\r\nconst void * RTTI_Particles__Intrinsics__FloatColorParamSet = (void *)0x05CE3D00;\r\nconst void * RTTI_Particles__Intrinsics__FloatFloatBoolParamSet = (void *)0x05CE35B0;\r\nconst void * RTTI_Particles__Intrinsics__FloatFloatFloatFloatColorParamSet = (void *)0x05CE3EF0;\r\nconst void * RTTI_Particles__Intrinsics__FloatFloatFloatFloatParamSet = (void *)0x05CE34A0;\r\nconst void * RTTI_Particles__Intrinsics__FloatFloatFloatParamSet = (void *)0x05CE3860;\r\nconst void * RTTI_Particles__Intrinsics__FloatFloatFloatVectorParamSet = (void *)0x05CE3810;\r\nconst void * RTTI_Particles__Intrinsics__FloatFloatParamSet = (void *)0x05CE3240;\r\nconst void * RTTI_Particles__Intrinsics__FloatInput = (void *)0x05CE57D0;\r\nconst void * RTTI_Particles__Intrinsics__FloatMinMaxParamSet = (void *)0x05CE34E8;\r\nconst void * RTTI_Particles__Intrinsics__FloatUIntParamSet = (void *)0x05CE3200;\r\nconst void * RTTI_Particles__Intrinsics__FloatVector33MatrixParamSet = (void *)0x05CE3450;\r\nconst void * RTTI_Particles__Intrinsics__FloatVectorParamSet = (void *)0x05CE3280;\r\nconst void * RTTI_Particles__Intrinsics__FloatVectorVectorParamSet = (void *)0x05CE4530;\r\nconst void * RTTI_Particles__Intrinsics__GenericResourceParamSet = (void *)0x05CE6780;\r\nconst void * RTTI_Particles__Intrinsics__GeometryParticleKillParamSet = (void *)0x05CE63E0;\r\nconst void * RTTI_Particles__Intrinsics__GeometryParticleParamSet = (void *)0x05CE6820;\r\nconst void * RTTI_Particles__Intrinsics__GeometryParticleUpdateParamSet = (void *)0x05CE67D0;\r\nconst void * RTTI_Particles__Intrinsics__GeometryRotToPhysicsQuatParamSet = (void *)0x05CE6390;\r\nconst void * RTTI_Particles__Intrinsics__HexColorHexColorUIntParamSet = (void *)0x05CE3B70;\r\nconst void * RTTI_Particles__Intrinsics__HexColorUIntParamSet = (void *)0x05CE3BC0;\r\nconst void * RTTI_Particles__Intrinsics__HexUIntInput = (void *)0x05CE55E8;\r\nconst void * RTTI_Particles__Intrinsics__Input = (void *)0x05CE5B48;\r\nconst void * RTTI_Particles__Intrinsics__IntInput = (void *)0x05CE5878;\r\nconst void * RTTI_Particles__Intrinsics__JumpParamSet = (void *)0x05CE38F8;\r\nconst void * RTTI_Particles__Intrinsics__KillParamSet = (void *)0x05CE37D8;\r\nconst void * RTTI_Particles__Intrinsics__LODCurvedPropertyBaseParamSet = (void *)0x05CE4320;\r\nconst void * RTTI_Particles__Intrinsics__LODCurvedPropertyFloatParamSet = (void *)0x05CE43C0;\r\nconst void * RTTI_Particles__Intrinsics__MatrixInput = (void *)0x05CE58B0;\r\nconst void * RTTI_Particles__Intrinsics__MatrixVectorVectorParamSet = (void *)0x05CE3930;\r\nconst void * RTTI_Particles__Intrinsics__MeshSpawnDimensionInput = (void *)0x05CE5710;\r\nconst void * RTTI_Particles__Intrinsics__NoOpDeclareBoolParamSet = (void *)0x05CE64D0;\r\nconst void * RTTI_Particles__Intrinsics__NoOpSimulateParticlesMarkerParamSet = (void *)0x05CE6160;\r\nconst void * RTTI_Particles__Intrinsics__Noise2ParamSet = (void *)0x05CE33C0;\r\nconst void * RTTI_Particles__Intrinsics__Noise3ParamSet = (void *)0x05CE3380;\r\nconst void * RTTI_Particles__Intrinsics__NoiseBaseParamSet = (void *)0x05CE3340;\r\nconst void * RTTI_Particles__Intrinsics__NoiseParamSet = (void *)0x05CE3300;\r\nconst void * RTTI_Particles__Intrinsics__NoiseTypeInput = (void *)0x05CE6630;\r\nconst void * RTTI_Particles__Intrinsics__OperationNameInput = (void *)0x05CE5698;\r\nconst void * RTTI_Particles__Intrinsics__OrbitAroundPointParamSet = (void *)0x05CE4230;\r\nconst void * RTTI_Particles__Intrinsics__ParameterSetBase = (void *)0x05CE5B08;\r\nconst void * RTTI_Particles__Intrinsics__PhysicsQuatToGeometryRotParamSet = (void *)0x05CE6480;\r\nconst void * RTTI_Particles__Intrinsics__PhysicsQuatToSpriteRotParamSet = (void *)0x05CE6430;\r\nconst void * RTTI_Particles__Intrinsics__PointInCylinderParamSet = (void *)0x05CE3980;\r\nconst void * RTTI_Particles__Intrinsics__PointInMeshParamSet = (void *)0x05CE45C8;\r\nconst void * RTTI_Particles__Intrinsics__PointOnAttachedSkeletonParamSet = (void *)0x05CE41E0;\r\nconst void * RTTI_Particles__Intrinsics__RandomVariableParamSet = (void *)0x05CE2FC0;\r\nconst void * RTTI_Particles__Intrinsics__RandomVectorOnShapeParamSet = (void *)0x05CE4610;\r\nconst void * RTTI_Particles__Intrinsics__ScaledVectorGivenTwoPointsParamSet = (void *)0x05CE4190;\r\nconst void * RTTI_Particles__Intrinsics__ShapeTypeInput = (void *)0x05CE6670;\r\nconst void * RTTI_Particles__Intrinsics__SharedAsset = (void *)0x05CE53E0;\r\nconst void * RTTI_Particles__Intrinsics__SharedAssociatedUID = (void *)0x05CE5AC8;\r\nconst void * RTTI_Particles__Intrinsics__SharedCollisionInfo = (void *)0x05CE5A88;\r\nconst void * RTTI_Particles__Intrinsics__SharedColorAlphaCurves = (void *)0x05CE5B80;\r\nconst void * RTTI_Particles__Intrinsics__SharedColorCurve = (void *)0x05CE5BC8;\r\nconst void * RTTI_Particles__Intrinsics__SharedCurve = (void *)0x05CE5458;\r\nconst void * RTTI_Particles__Intrinsics__SharedCustomParameter = (void *)0x05CE5A40;\r\nconst void * RTTI_Particles__Intrinsics__SharedFiniteRandomNumberGenerator = (void *)0x05CE5D60;\r\nconst void * RTTI_Particles__Intrinsics__SharedHeightmapData = (void *)0x05CE5A00;\r\nconst void * RTTI_Particles__Intrinsics__SharedLODCurves = (void *)0x05CE5C40;\r\nconst void * RTTI_Particles__Intrinsics__SharedMesh = (void *)0x05CE5C08;\r\nconst void * RTTI_Particles__Intrinsics__SharedNoiseGenerator = (void *)0x05CE5C80;\r\nconst void * RTTI_Particles__Intrinsics__SharedParticleSystemSpawnParameters = (void *)0x05CE59B0;\r\nconst void * RTTI_Particles__Intrinsics__SharedRGBColorCurve = (void *)0x05CE5418;\r\nconst void * RTTI_Particles__Intrinsics__SharedRandomVariableDistributionValues = (void *)0x05CE5D00;\r\nconst void * RTTI_Particles__Intrinsics__SharedRuntimeInfo = (void *)0x05CE53A0;\r\nconst void * RTTI_Particles__Intrinsics__SharedSkeletonData = (void *)0x05CE5CC0;\r\nconst void * RTTI_Particles__Intrinsics__SharedUpdateForcesParameters = (void *)0x05CE5960;\r\nconst void * RTTI_Particles__Intrinsics__SpawnParticleParamSet = (void *)0x05CE3740;\r\nconst void * RTTI_Particles__Intrinsics__StringInput = (void *)0x05CE56D8;\r\nconst void * RTTI_Particles__Intrinsics__TransformInitialParticlePositionToWorldSpaceParamSet = (void *)0x05CE5FA0;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToEmitterSpaceDouble3Double3ParamSet = (void *)0x05CE5E80;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToEmitterSpaceFloat3Double3ParamSet = (void *)0x05CE5EF0;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToEmitterSpaceFloat3Float3ParamSet = (void *)0x05CE5E20;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToParentSpaceDouble3Double3ParamSet = (void *)0x05CE6330;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToParentSpaceFloat3Double3ParamSet = (void *)0x05CE6200;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToParentSpaceFloat3Float3ParamSet = (void *)0x05CE6260;\r\nconst void * RTTI_Particles__Intrinsics__TransformPositionToPositionInWorldEmitterSpaceFloat3Float3ParamSet = (void *)0x05CE5DB0;\r\nconst void * RTTI_Particles__Intrinsics__TransformRelativeGeometryParticleToParentSpaceParamSet = (void *)0x05CE62C0;\r\nconst void * RTTI_Particles__Intrinsics__TransformRelativePositionFloat3Double3ParamSet = (void *)0x05CE6570;\r\nconst void * RTTI_Particles__Intrinsics__TransformRelativePositionFloat3Float3ParamSet = (void *)0x05CE65D0;\r\nconst void * RTTI_Particles__Intrinsics__TransformRelativePositionToInWorldPositionFloat3Float3ParamSet = (void *)0x05CE60F0;\r\nconst void * RTTI_Particles__Intrinsics__TransformStretchVectorToWorldParamSet = (void *)0x05CE3690;\r\nconst void * RTTI_Particles__Intrinsics__TransformVelocityToWorldParamSet = (void *)0x05CE6000;\r\nconst void * RTTI_Particles__Intrinsics__UIntDivisionParamSet = (void *)0x05CE3C00;\r\nconst void * RTTI_Particles__Intrinsics__UIntFloatParamSet = (void *)0x05CE3C80;\r\nconst void * RTTI_Particles__Intrinsics__UIntInput = (void *)0x05CE5928;\r\nconst void * RTTI_Particles__Intrinsics__UIntMinMaxParamSet = (void *)0x05CE3CC0;\r\nconst void * RTTI_Particles__Intrinsics__UIntUIntBoolParamSet = (void *)0x05CE3AF0;\r\nconst void * RTTI_Particles__Intrinsics__UIntUIntParamSet = (void *)0x05CE3B30;\r\nconst void * RTTI_Particles__Intrinsics__UIntUIntUIntParamSet = (void *)0x05CE3C40;\r\nconst void * RTTI_Particles__Intrinsics__UpdateChildParticleBindingsParamSet = (void *)0x05CE36F0;\r\nconst void * RTTI_Particles__Intrinsics__UpdateForcesParamSet = (void *)0x05CEBAD0;\r\nconst void * RTTI_Particles__Intrinsics__VariableInput = (void *)0x05CE58E8;\r\nconst void * RTTI_Particles__Intrinsics__Vector2Input = (void *)0x05CE5840;\r\nconst void * RTTI_Particles__Intrinsics__Vector2Vector2FloatVector2ParamSet = (void *)0x05CE31B0;\r\nconst void * RTTI_Particles__Intrinsics__Vector2Vector2Vector2FloatVector2ParamSet = (void *)0x05CE3150;\r\nconst void * RTTI_Particles__Intrinsics__Vector2Vector2Vector2Vector2FloatVector2ParamSet = (void *)0x05CE3F90;\r\nconst void * RTTI_Particles__Intrinsics__Vector3Input = (void *)0x05CE5808;\r\nconst void * RTTI_Particles__Intrinsics__Vector3MatrixParamSet = (void *)0x05CE3400;\r\nconst void * RTTI_Particles__Intrinsics__Vector3Vector3FloatVector3ParamSet = (void *)0x05CE3F40;\r\nconst void * RTTI_Particles__Intrinsics__Vector3Vector3Vector3FloatVector3ParamSet = (void *)0x05CE4050;\r\nconst void * RTTI_Particles__Intrinsics__Vector3Vector3Vector3Vector3FloatVector3ParamSet = (void *)0x05CE3FF0;\r\nconst void * RTTI_Particles__Intrinsics__VectorFloatParamSet = (void *)0x05CE4498;\r\nconst void * RTTI_Particles__Intrinsics__VectorFloatVectorParamSet = (void *)0x05CE4580;\r\nconst void * RTTI_Particles__Intrinsics__VectorMinMaxParamSet = (void *)0x05CE4100;\r\nconst void * RTTI_Particles__Intrinsics__VectorScaleAddParamSet = (void *)0x05CE4140;\r\nconst void * RTTI_Particles__Intrinsics__VectorVectorFloatParamSet = (void *)0x05CE30B0;\r\nconst void * RTTI_Particles__Intrinsics__VectorVectorParamSet = (void *)0x05CE32C0;\r\nconst void * RTTI_Particles__Intrinsics__VectorVectorVectorParamSet = (void *)0x05CE3100;\r\nconst void * RTTI_Particles__Intrinsics__XMFLOAT4Input = (void *)0x05CE5620;\r\nconst void * RTTI_Particles__ListFloatCurve = (void *)0x05CD64A0;\r\nconst void * RTTI_Particles__ListParticleCollisionInfo = (void *)0x05AAFB78;\r\nconst void * RTTI_Particles__MaterialDBDependency = (void *)0x05CE5540;\r\nconst void * RTTI_Particles__MaterialProperties = (void *)0x05CD6540;\r\nconst void * RTTI_Particles__MeshDependency = (void *)0x05CE52B8;\r\nconst void * RTTI_Particles__ModelDBDependency = (void *)0x05CE5578;\r\nconst void * RTTI_Particles__PSM__Commands__BaseParticleSystemRequest = (void *)0x05CE7370;\r\nconst void * RTTI_Particles__PSM__Commands__RequestLoadResources = (void *)0x05CE6EF0;\r\nconst void * RTTI_Particles__PSM__Commands__WaitForResourceLoad = (void *)0x05CE6EA0;\r\nconst void * RTTI_Particles__ParticleEmitterEngine = (void *)0x05CE96E8;\r\nconst void * RTTI_Particles__ParticleEmitterEngine__GlobalEmitterEngineBinding = (void *)0x05CE9810;\r\nconst void * RTTI_Particles__ParticleNodeManager = (void *)0x05CD72D8;\r\nconst void * RTTI_Particles__ParticlePerformanceManager = (void *)0x05CE6C68;\r\nconst void * RTTI_Particles__ParticleSystemManagerImpl = (void *)0x05CE7000;\r\nconst void * RTTI_Particles__ParticleSystemManagerImpl__PSBinding = (void *)0x05CE6AF0;\r\nconst void * RTTI_Particles__ParticleSystemStorage = (void *)0x05CD7188;\r\nconst void * RTTI_Particles__PhysicsProperties = (void *)0x05CD6468;\r\nconst void * RTTI_Particles__PointInMeshDependency = (void *)0x05CE5368;\r\nconst void * RTTI_Particles__ResourceDependency = (void *)0x05CE54C8;\r\nconst void * RTTI_Particles__SingleOperation = (void *)0x05CE4EE0;\r\nconst void * RTTI_Particles__SystemBinding = (void *)0x05CD8028;\r\nconst void * RTTI_Particles__SystemDefinition = (void *)0x05CD7FF0;\r\nconst void * RTTI_Particles__TiledMaterialProperties = (void *)0x05CD6430;\r\nconst void * RTTI_PassengerInteraction = (void *)0x05ACE218;\r\nconst void * RTTI_PathFollowerAnimationMoveStart = (void *)0x05CFA8C8;\r\nconst void * RTTI_PathFollowerAnimationMoveStop = (void *)0x05CFA900;\r\nconst void * RTTI_PathFollowerStateFollowPathToParameter = (void *)0x05CFA7A8;\r\nconst void * RTTI_PathFollowerStateKeepLastDirection = (void *)0x05CFA7E8;\r\nconst void * RTTI_PathFollowerStatePerformAction = (void *)0x05CFA890;\r\nconst void * RTTI_PathFollowerStatePlayIdle = (void *)0x05CFA740;\r\nconst void * RTTI_PathFollowerStateShortcut = (void *)0x05CFA828;\r\nconst void * RTTI_PathFollowerStateTurnToAngle = (void *)0x05CFA770;\r\nconst void * RTTI_PathFollowerStateWaitForAction = (void *)0x05CFA858;\r\nconst void * RTTI_PathManagerImpl = (void *)0x05CED298;\r\nconst void * RTTI_PathManagerPositionPlayerAdapter = (void *)0x05B99170;\r\nconst void * RTTI_PathSmootherRayCastUsePreferredTris = (void *)0x05CF7C70;\r\nconst void * RTTI_PathSmootherRayCastUseTrianglePath = (void *)0x05CF7C30;\r\nconst void * RTTI_Pathing = (void *)0x05A9A2F0;\r\nconst void * RTTI_PathingAnimations = (void *)0x05C8C4C8;\r\nconst void * RTTI_PathingAnimationsInstance = (void *)0x05C8C440;\r\nconst void * RTTI_PathingCell = (void *)0x05A9A8A0;\r\nconst void * RTTI_PathingCoverLocation = (void *)0x05A9A258;\r\nconst void * RTTI_PathingDoor = (void *)0x05A9A8C8;\r\nconst void * RTTI_PathingLockData = (void *)0x05A9AA70;\r\nconst void * RTTI_PathingNumericIDDuplicationVisitor = (void *)0x05A9ACA0;\r\nconst void * RTTI_PathingRequest = (void *)0x059C3688;\r\nconst void * RTTI_PathingRequestClosePoint = (void *)0x05A99998;\r\nconst void * RTTI_PathingRequestClosestGoal = (void *)0x05A9BD68;\r\nconst void * RTTI_PathingRequestCover = (void *)0x05A9BFB0;\r\nconst void * RTTI_PathingRequestFlee = (void *)0x05A9C1F0;\r\nconst void * RTTI_PathingRequestFly = (void *)0x05A9C430;\r\nconst void * RTTI_PathingRequestFlyAction = (void *)0x05A9C458;\r\nconst void * RTTI_PathingRequestFlyHover = (void *)0x05A9C8E8;\r\nconst void * RTTI_PathingRequestFlyLand = (void *)0x05A9C918;\r\nconst void * RTTI_PathingRequestFlyOrbit = (void *)0x05A9CD98;\r\nconst void * RTTI_PathingRequestFlyTakeOff = (void *)0x05A9CFF8;\r\nconst void * RTTI_PathingRequestHide = (void *)0x05A9D240;\r\nconst void * RTTI_PathingRequestLOS = (void *)0x05A9D270;\r\nconst void * RTTI_PathingRequestOpenSpace = (void *)0x059C36B0;\r\nconst void * RTTI_PathingRequestRotate = (void *)0x05A9D6C0;\r\nconst void * RTTI_PathingRequestSafeStraightLine = (void *)0x05A999C8;\r\nconst void * RTTI_PathingRequestStopMoving = (void *)0x05A9DB48;\r\nconst void * RTTI_PathingSpace = (void *)0x05A9AED0;\r\nconst void * RTTI_PathingStreamLoadGame = (void *)0x05BB8578;\r\nconst void * RTTI_PathingStreamMasterFileRead = (void *)0x05A18200;\r\nconst void * RTTI_PathingStreamSaveGame = (void *)0x05BB8548;\r\nconst void * RTTI_PathingTraversalAction = (void *)0x05A195F8;\r\nconst void * RTTI_PathingTraversalActionActivate = (void *)0x05A19698;\r\nconst void * RTTI_PathingTraversalActionDoorway = (void *)0x05A19708;\r\nconst void * RTTI_PathingTraversalActionJump = (void *)0x05A19628;\r\nconst void * RTTI_PathingTraversalActionLadder = (void *)0x05A196D0;\r\nconst void * RTTI_PathingTraversalActionStandard = (void *)0x05A19660;\r\nconst void * RTTI_PathingTraversalData = (void *)0x05A19740;\r\nconst void * RTTI_PathingTraversalManager = (void *)0x05A1B488;\r\nconst void * RTTI_PauseMenu = (void *)0x05B5EDE8;\r\nconst void * RTTI_PauseMenuConfirmationDataModel = (void *)0x05B03DC8;\r\nconst void * RTTI_PauseMenuConfirmationDataModel__PauseMenuConfirmatioEventShuttle = (void *)0x05B03D70;\r\nconst void * RTTI_PauseMenuListDataModel = (void *)0x05B03EE8;\r\nconst void * RTTI_PauseMenuListDataModel__PauseMenuListEventShuttle = (void *)0x05B03EA0;\r\nconst void * RTTI_PauseMenuStateDataModel = (void *)0x05B04260;\r\nconst void * RTTI_PauseMenuStateDataModel__PauseMenuStateEventShuttle = (void *)0x05B04170;\r\nconst void * RTTI_PauseMenu_ActionCanceled = (void *)0x05B5F1E8;\r\nconst void * RTTI_PauseMenu_ConfirmAction = (void *)0x05B5F168;\r\nconst void * RTTI_PauseMenu_ConfirmLoad = (void *)0x05B5F2E8;\r\nconst void * RTTI_PauseMenu_ConfirmSave = (void *)0x05B5F068;\r\nconst void * RTTI_PauseMenu_DeleteSave = (void *)0x05B5EF68;\r\nconst void * RTTI_PauseMenu_QuitToDesktop = (void *)0x05B5F0E8;\r\nconst void * RTTI_PauseMenu_SetCharacter = (void *)0x05B5EFE8;\r\nconst void * RTTI_PauseMenu_StartAction = (void *)0x05B5F368;\r\nconst void * RTTI_PauseMenu_StartLoad = (void *)0x05B5F268;\r\nconst void * RTTI_PauseMenu_UploadSave = (void *)0x05B5ED78;\r\nconst void * RTTI_PeakValueModifierEffect = (void *)0x05997BB0;\r\nconst void * RTTI_PenetrationRecoveryUtils__hknpBSIgnoreBodyCollisionFilter = (void *)0x05CA7510;\r\nconst void * RTTI_PenetrationUtils__hknpBSCommandStreamWriter = (void *)0x05CABF10;\r\nconst void * RTTI_PerformActivationHandler = (void *)0x05BCEEF0;\r\nconst void * RTTI_PerformOpFunc = (void *)0x05D51588;\r\nconst void * RTTI_PhotoGalleryMenu = (void *)0x05AE4568;\r\nconst void * RTTI_PhotoGalleryMenu__PhotoGalleryEventShuttle = (void *)0x05AE45C0;\r\nconst void * RTTI_PhotoGallery_DeletePhoto = (void *)0x05AE4590;\r\nconst void * RTTI_PhotoModeCameraState = (void *)0x05AA94B8;\r\nconst void * RTTI_PhotoModeDataModel = (void *)0x05B05DE8;\r\nconst void * RTTI_PhotoModeDataModel__PhotoModeEventShuttle = (void *)0x05B05DA8;\r\nconst void * RTTI_PhotoModeDataModel__PhotoModeOverlayData__ImageData = (void *)0x05B05CA0;\r\nconst void * RTTI_PhotoModeDataModel__PhotoModeSettingsData__CategoryData = (void *)0x05B05CF0;\r\nconst void * RTTI_PhotoModeDataModel__PhotoModeSettingsData__SettingData = (void *)0x05B05B20;\r\nconst void * RTTI_PhotoModeEffectController = (void *)0x05A87100;\r\nconst void * RTTI_PhotoModeMenu = (void *)0x05B3DB98;\r\nconst void * RTTI_PhotoMode_InitializeCategory = (void *)0x05B3DF68;\r\nconst void * RTTI_PhotoMode_RefineSetting = (void *)0x05B3DC08;\r\nconst void * RTTI_PhotoMode_ResetToDefaults = (void *)0x05B3E070;\r\nconst void * RTTI_PhotoMode_SliderChanged = (void *)0x05B3DFE8;\r\nconst void * RTTI_PhotoMode_StepperChanged = (void *)0x05B3DE38;\r\nconst void * RTTI_PhotoMode_TakeSnapshot = (void *)0x05B3DDB8;\r\nconst void * RTTI_PhotoMode_ToggleHelmet = (void *)0x05B3DEB8;\r\nconst void * RTTI_PhotoMode_ToggleUI = (void *)0x05B3DF38;\r\nconst void * RTTI_PhotoMode__PhotoModeCaptureExportNode = (void *)0x05B3D700;\r\nconst void * RTTI_PhysicsContactListener = (void *)0x05C8C3D8;\r\nconst void * RTTI_PhysicsContactListenerInstance = (void *)0x05C8C408;\r\nconst void * RTTI_PickNewIdleHandler = (void *)0x05BCF418;\r\nconst void * RTTI_PickpocketInventoryModel = (void *)0x05B3FA48;\r\nconst void * RTTI_PickpocketItemData = (void *)0x05B3FA18;\r\nconst void * RTTI_PickpocketMenu = (void *)0x05B3ED10;\r\nconst void * RTTI_PickpocketMenu_OnItemSelect = (void *)0x05B3EAC8;\r\nconst void * RTTI_PickpocketStateData = (void *)0x05B3FA78;\r\nconst void * RTTI_PilotCameraShaker = (void *)0x05AD2360;\r\nconst void * RTTI_PipelineGenerationEventHandler = (void *)0x05B9C498;\r\nconst void * RTTI_PitchOverrideEndHandler = (void *)0x05BCEB78;\r\nconst void * RTTI_PitchOverrideStartHandler = (void *)0x05BCEC00;\r\nconst void * RTTI_PlanetSiteSelectEventHelper = (void *)0x05B9B030;\r\nconst void * RTTI_PlasmaProjectile = (void *)0x05AAFB50;\r\nconst void * RTTI_PlatformDataModel = (void *)0x05CD5138;\r\nconst void * RTTI_PlayBinkMenu = (void *)0x05B5F7C0;\r\nconst void * RTTI_PlayBink_CloseMenu = (void *)0x05B5F790;\r\nconst void * RTTI_PlayerBedEnterHandler = (void *)0x05BCE4B8;\r\nconst void * RTTI_PlayerCamera = (void *)0x05C484C0;\r\nconst void * RTTI_PlayerCameraTransitionState = (void *)0x05C48748;\r\nconst void * RTTI_PlayerChairEnterHandler = (void *)0x05BCE510;\r\nconst void * RTTI_PlayerCharacter = (void *)0x05BB4EA8;\r\nconst void * RTTI_PlayerControls__AlternateAttackHandler = (void *)0x05ACE520;\r\nconst void * RTTI_PlayerControls__AlternateFlightControlMode = (void *)0x05ACE3B0;\r\nconst void * RTTI_PlayerControls__AutoMoveHandler = (void *)0x05ACE340;\r\nconst void * RTTI_PlayerControls__DebugCameraHandler = (void *)0x05ACE378;\r\nconst void * RTTI_PlayerControls__FlightControlMode = (void *)0x05ACE470;\r\nconst void * RTTI_PlayerControls__FlightMovementHandler = (void *)0x05ACE430;\r\nconst void * RTTI_PlayerControls__GrabRotationHandler = (void *)0x05ACE4A8;\r\nconst void * RTTI_PlayerControls__GravJumpHandler = (void *)0x05ACE4E8;\r\nconst void * RTTI_PlayerControls__JumpHandler = (void *)0x05ACE918;\r\nconst void * RTTI_PlayerControls__LookHandler = (void *)0x05ACE950;\r\nconst void * RTTI_PlayerControls__Manager = (void *)0x05ACFE68;\r\nconst void * RTTI_PlayerControls__MonocleHandler = (void *)0x05ACE988;\r\nconst void * RTTI_PlayerControls__MovementHandler = (void *)0x05ACE9C0;\r\nconst void * RTTI_PlayerControls__NvidiaStreamlineInputHandler = (void *)0x05ACEA00;\r\nconst void * RTTI_PlayerControls__PlayerCameraHandler = (void *)0x05ACEA48;\r\nconst void * RTTI_PlayerControls__RunHandler = (void *)0x05ACEA88;\r\nconst void * RTTI_PlayerControls__ShieldHandler = (void *)0x05ACEAB8;\r\nconst void * RTTI_PlayerControls__ShipEquipmentHandler = (void *)0x05ACEAF0;\r\nconst void * RTTI_PlayerControls__SneakHandler = (void *)0x05ACECE8;\r\nconst void * RTTI_PlayerControls__SprintHandler = (void *)0x05ACF128;\r\nconst void * RTTI_PlayerControls__StandardFlightControlMode = (void *)0x05ACE3F0;\r\nconst void * RTTI_PlayerControls__StarbornPowerHandler = (void *)0x05ACFF68;\r\nconst void * RTTI_PlayerControls__TogglePOVHandler = (void *)0x05ACF160;\r\nconst void * RTTI_PlayerControls__ToggleRunHandler = (void *)0x05ACF198;\r\nconst void * RTTI_PlayerControls__VehicleHandler = (void *)0x05ACFFA8;\r\nconst void * RTTI_PlayerControls__WeaponAttackHandler = (void *)0x05ACF210;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__NotTriggered = (void *)0x05996560;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__Triggered = (void *)0x05996300;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredAutomatic = (void *)0x05996400;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredBurst = (void *)0x059964C0;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredBurstEnd = (void *)0x05996240;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredContinuous = (void *)0x05996460;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredFirstStage = (void *)0x059963A0;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredOnRelease = (void *)0x059961E0;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredSecondStage = (void *)0x059962A0;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredSingle = (void *)0x05996510;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__TriggeredWaitForRelease = (void *)0x05996180;\r\nconst void * RTTI_PlayerControls__WeaponAttackTriggerStates__Unequipped = (void *)0x05996350;\r\nconst void * RTTI_PlayerControls__WeaponBlockActionHandler = (void *)0x05ACF870;\r\nconst void * RTTI_PlayerControls__WeaponFocusHandler = (void *)0x05ACF8B0;\r\nconst void * RTTI_PlayerControls__WeaponMeleeHandler = (void *)0x05ACF8E8;\r\nconst void * RTTI_PlayerControls__WeaponReadyHandler = (void *)0x05ACF920;\r\nconst void * RTTI_PlayerControls__WeaponReloadHandler = (void *)0x05ACF958;\r\nconst void * RTTI_PlayerControls__WeaponSightedActionHandler = (void *)0x05ACFD80;\r\nconst void * RTTI_PlayerControls__ZKeyHandler = (void *)0x05ACE298;\r\nconst void * RTTI_PlayerDataModel = (void *)0x05B076D0;\r\nconst void * RTTI_PlayerDataModel__PlayerDataEventShuttle = (void *)0x05B073F0;\r\nconst void * RTTI_PlayerFastEquipSoundHandler = (void *)0x05BCB670;\r\nconst void * RTTI_PlayerFurnitureExitHandler = (void *)0x05BCE3D0;\r\nconst void * RTTI_PlayerInventoryDataModel = (void *)0x05B07F08;\r\nconst void * RTTI_PlayerInventoryItem = (void *)0x05B08010;\r\nconst void * RTTI_PlayerRegionState = (void *)0x05BB53C8;\r\nconst void * RTTI_PlayerSleepWaitMovementControllerAdapter = (void *)0x05B99218;\r\nconst void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToLoadedSetControllerFunctor = (void *)0x05B991B0;\r\nconst void * RTTI_PlayerSleepWaitMovementControllerAdapter__SwitchToUnloadedSetControllerFunctor = (void *)0x05B99290;\r\nconst void * RTTI_PlayerSpaceUtils__EventSink = (void *)0x05B85C18;\r\nconst void * RTTI_PlayerSpaceUtils__PlayerSpaceUtilsEventHandler = (void *)0x05B85BD0;\r\nconst void * RTTI_PlayerSpaceUtils___unnamed_type_SpaceAsteroidsWorldStepListener_ = (void *)0x05B85C50;\r\nconst void * RTTI_PlayerStatusDataModel = (void *)0x05B08D60;\r\nconst void * RTTI_PlayerStatusDataModel__PlayerStatusEventShuttle = (void *)0x05B08E30;\r\nconst void * RTTI_PlayerTraversalState = (void *)0x05BB4C80;\r\nconst void * RTTI_PoseDeformerData = (void *)0x05A43100;\r\nconst void * RTTI_PoseDeformerInstance = (void *)0x05A434B0;\r\nconst void * RTTI_PostAttachActionsFunctor = (void *)0x05D51558;\r\nconst void * RTTI_PostBoneModifierControl = (void *)0x05C952A0;\r\nconst void * RTTI_PostBoneModifierControlInstance = (void *)0x05C952D0;\r\nconst void * RTTI_PostStepTask = (void *)0x0598DE38;\r\nconst void * RTTI_PowerArmor__EventHandler = (void *)0x05AD0258;\r\nconst void * RTTI_PowerUtils__PowerUtilsReferenceEventSink = (void *)0x05A0EFA0;\r\nconst void * RTTI_PowersMenu = (void *)0x05AE6958;\r\nconst void * RTTI_PowersMenu_ActivateEssence = (void *)0x05AE6760;\r\nconst void * RTTI_PowersMenu_EquipPower = (void *)0x05AE6878;\r\nconst void * RTTI_PowersMenu_FavoriteEssence = (void *)0x05AE66D8;\r\nconst void * RTTI_PowersMenu_FavoritePower = (void *)0x05AE65D8;\r\nconst void * RTTI_PowersMenu_UpgradePower = (void *)0x05AE6658;\r\nconst void * RTTI_PowersMenu__PowersMenuEventShuttle = (void *)0x05AE6470;\r\nconst void * RTTI_PreStepTask = (void *)0x0598DE10;\r\nconst void * RTTI_Precipitation = (void *)0x05A86808;\r\nconst void * RTTI_PrecipitationEffectController = (void *)0x05A867D0;\r\nconst void * RTTI_Preload__Manager = (void *)0x05AEE4F0;\r\nconst void * RTTI_Preload__PostProcessDependencyNode = (void *)0x05AEE6D0;\r\nconst void * RTTI_PreparePartitionTreeBuffers = (void *)0x0598E1A8;\r\nconst void * RTTI_Probe__ReflectionProbeRenderOptions = (void *)0x05CBD640;\r\nconst void * RTTI_ProcessListMovementInterface = (void *)0x05BB6290;\r\nconst void * RTTI_ProcessLists = (void *)0x05BB64B8;\r\nconst void * RTTI_ProcessLists__GetActorsFilter = (void *)0x05B8D5B8;\r\nconst void * RTTI_Projectile = (void *)0x05AAFB28;\r\nconst void * RTTI_ProjectileLOSCollector = (void *)0x05BF1680;\r\nconst void * RTTI_Projectile__Manager = (void *)0x05BD39F0;\r\nconst void * RTTI_QuestDataModel = (void *)0x05B0A2A8;\r\nconst void * RTTI_QuestDataModel__QuestGameEventShuttle = (void *)0x05B0A368;\r\nconst void * RTTI_QuestPathingRequest = (void *)0x05A1B860;\r\nconst void * RTTI_QueuedCellAttachService = (void *)0x05A0E6B0;\r\nconst void * RTTI_QueuedCharacter = (void *)0x059FA4E8;\r\nconst void * RTTI_QueuedExplosionArt = (void *)0x059F9EA8;\r\nconst void * RTTI_QueuedFile = (void *)0x059EC8B0;\r\nconst void * RTTI_QueuedLocationLoadTask = (void *)0x05A68818;\r\nconst void * RTTI_QueuedPlayer = (void *)0x059F9E80;\r\nconst void * RTTI_QueuedPromoteLargeReferencesTask = (void *)0x05A673D0;\r\nconst void * RTTI_QueuedPromoteQuestTask = (void *)0x05A847C8;\r\nconst void * RTTI_QueuedPromoteReferencesTask = (void *)0x05A0B038;\r\nconst void * RTTI_QueuedReference = (void *)0x059FA6F0;\r\nconst void * RTTI_QueuedReferenceCallbackNode = (void *)0x059FA540;\r\nconst void * RTTI_QuickSaveLoadHandler = (void *)0x05C54078;\r\nconst void * RTTI_REFREventCallbacks__IEventCallback = (void *)0x05A79568;\r\nconst void * RTTI_REFREventCallbacks__IEventCallbackFactory = (void *)0x05A798D8;\r\nconst void * RTTI_RagdollAndGetUpHandler = (void *)0x05BCF628;\r\nconst void * RTTI_RagdollFurnitureModifier = (void *)0x05A85728;\r\nconst void * RTTI_RagdollGetUp = (void *)0x05C99178;\r\nconst void * RTTI_RagdollGetUpInstance = (void *)0x05C99148;\r\nconst void * RTTI_RagdollStartHandler = (void *)0x05BCF708;\r\nconst void * RTTI_RallyEffect = (void *)0x05B80B38;\r\nconst void * RTTI_RandomAnimationNode = (void *)0x05C99A20;\r\nconst void * RTTI_RandomAnimationNodeInstance = (void *)0x05C99A50;\r\nconst void * RTTI_RangedAimAssistImpl = (void *)0x05AA9AD0;\r\nconst void * RTTI_ReanimateEffect = (void *)0x05B805E0;\r\nconst void * RTTI_RecoilStopHandler = (void *)0x05BCEB20;\r\nconst void * RTTI_ReevaluateGraphStateHandler = (void *)0x05BCEFE0;\r\nconst void * RTTI_RefAttachTechniqueInput = (void *)0x05B7EB68;\r\nconst void * RTTI_ReferenceEffect = (void *)0x05995658;\r\nconst void * RTTI_ReferenceEffectController = (void *)0x059C7540;\r\nconst void * RTTI_ReferenceEndAnimatedCameraHandler = (void *)0x05BCA4E8;\r\nconst void * RTTI_ReferenceRunActionHandler = (void *)0x05BCA390;\r\nconst void * RTTI_ReferenceStartAnimatedCameraHandler = (void *)0x05BCA4A8;\r\nconst void * RTTI_ReferenceStartImagespaceModifierHandler = (void *)0x05BCA3F8;\r\nconst void * RTTI_ReferenceStopImagespaceModifierHandler = (void *)0x05BCA350;\r\nconst void * RTTI_ReflectionProbeCellComponent = (void *)0x059D23C8;\r\nconst void * RTTI_RefrInteraction = (void *)0x05ACE270;\r\nconst void * RTTI_Refuel_Accept = (void *)0x05B46788;\r\nconst void * RTTI_Refuel_Cancel = (void *)0x05B467B0;\r\nconst void * RTTI_RegSettingCollection = (void *)0x05B83A08;\r\nconst void * RTTI_ReloadCompleteHandler = (void *)0x05BCF0D8;\r\nconst void * RTTI_ReloadProgressBar = (void *)0x05D55A28;\r\nconst void * RTTI_ReloadStateChangeHandler = (void *)0x05BCF0A8;\r\nconst void * RTTI_RemoveRagdollHandler = (void *)0x05BCF6D8;\r\nconst void * RTTI_ResearchDataModel = (void *)0x05B0A968;\r\nconst void * RTTI_ResearchDataModel__ResearchDataEventShuttle = (void *)0x05B0A920;\r\nconst void * RTTI_ResearchMenu = (void *)0x05B414F8;\r\nconst void * RTTI_ResearchMenu_AddMaterial = (void *)0x05B41698;\r\nconst void * RTTI_ResearchMenu_CategorySelected = (void *)0x05B418B0;\r\nconst void * RTTI_ResearchMenu_ExitMenu = (void *)0x05B41718;\r\nconst void * RTTI_ResearchMenu_HideModel = (void *)0x05B41798;\r\nconst void * RTTI_ResearchMenu_PreviewProject = (void *)0x05B41940;\r\nconst void * RTTI_ResearchMenu_ProjectViewed = (void *)0x05B419D0;\r\nconst void * RTTI_ResearchMenu_SetInspectControls = (void *)0x05B41820;\r\nconst void * RTTI_ResearchMenu_ToggleTrackingProject = (void *)0x05B41468;\r\nconst void * RTTI_Research__Manager = (void *)0x05B86998;\r\nconst void * RTTI_Reset3DMobIterator = (void *)0x05A821A0;\r\nconst void * RTTI_ResetFloraEffect = (void *)0x05B80008;\r\nconst void * RTTI_Reticle_OnCruiseActivate = (void *)0x05B63450;\r\nconst void * RTTI_Reticle_OnCruiseExitAnimFinished = (void *)0x05B630A8;\r\nconst void * RTTI_Reticle_OnCruiseLockCourse = (void *)0x05B63130;\r\nconst void * RTTI_Reticle_OnLongAnimFinished = (void *)0x05B633C0;\r\nconst void * RTTI_RevertSelectedSpellFunctor = (void *)0x05BABCD8;\r\nconst void * RTTI_RigMesh__BoneAttaches = (void *)0x05CA4130;\r\nconst void * RTTI_RigMesh__BoneTranslations = (void *)0x05CA4100;\r\nconst void * RTTI_RigSwitch = (void *)0x05C95258;\r\nconst void * RTTI_RigSwitchInstance = (void *)0x05C95278;\r\nconst void * RTTI_RightHandSpellCastHandler = (void *)0x05BCEA68;\r\nconst void * RTTI_RightHandSpellFireHandler = (void *)0x05BCEAC8;\r\nconst void * RTTI_RollingBone = (void *)0x05C990C8;\r\nconst void * RTTI_RollingBoneInstance = (void *)0x05C99098;\r\nconst void * RTTI_RootTwist = (void *)0x05C99760;\r\nconst void * RTTI_RootTwistInstance = (void *)0x05C99780;\r\nconst void * RTTI_RotationVariable = (void *)0x05C95360;\r\nconst void * RTTI_RotationVariableInstance = (void *)0x05C98C38;\r\nconst void * RTTI_RuntimeComponentDBFactory__UnloadedComponentBase = (void *)0x05A115C0;\r\nconst void * RTTI_RuntimeComponentDBFactory__UnloadedComponentStorage = (void *)0x05A11610;\r\nconst void * RTTI_SKClosestHitCollector = (void *)0x05A7DAB0;\r\nconst void * RTTI_SWFToCodeFunctionHandler = (void *)0x059EC1D0;\r\nconst void * RTTI_SandManKillHandler = (void *)0x05BCB0C0;\r\nconst void * RTTI_SaveBufferStorageWrapper = (void *)0x05B8C490;\r\nconst void * RTTI_SaveFileStorageWrapper = (void *)0x05B8C3A0;\r\nconst void * RTTI_SaveGameCollection = (void *)0x05B87CF8;\r\nconst void * RTTI_SaveGameMagicCasterVisitor = (void *)0x05BABC68;\r\nconst void * RTTI_SaveLoadMagicCasterVisitor = (void *)0x05BADEB0;\r\nconst void * RTTI_SaveLoadTester__IgnoreAsserts = (void *)0x05B8B528;\r\nconst void * RTTI_SaveLoadTester__Service = (void *)0x05B8B7E8;\r\nconst void * RTTI_SaveLoad__BlockingIONode = (void *)0x05A541D8;\r\nconst void * RTTI_SaveLoad__CleanupService__Impl = (void *)0x05AEAA58;\r\nconst void * RTTI_SaveStorageWrapperBase = (void *)0x05B8C370;\r\nconst void * RTTI_ScalarAnimation = (void *)0x05C8B158;\r\nconst void * RTTI_ScaleformFile__MemoryFile = (void *)0x05CD5410;\r\nconst void * RTTI_Scaleform__AcquireInterface = (void *)0x05B8C910;\r\nconst void * RTTI_Scaleform__AmpMovieObjectDesc = (void *)0x059A7250;\r\nconst void * RTTI_Scaleform__BoolFormatter = (void *)0x059A7F30;\r\nconst void * RTTI_Scaleform__BufferedFile = (void *)0x059A95E0;\r\nconst void * RTTI_Scaleform__DefaultAcquireInterface = (void *)0x05B8C8A8;\r\nconst void * RTTI_Scaleform__DelegatedFile = (void *)0x059A95B0;\r\nconst void * RTTI_Scaleform__DoubleFormatter = (void *)0x059A7FC0;\r\nconst void * RTTI_Scaleform__Event = (void *)0x059A3D58;\r\nconst void * RTTI_Scaleform__FILEFile = (void *)0x059ABBE0;\r\nconst void * RTTI_Scaleform__FmtResource = (void *)0x059A7EA0;\r\nconst void * RTTI_Scaleform__GFx__AS3Support = (void *)0x059BB008;\r\nconst void * RTTI_Scaleform__GFx__AS3__AS3ByteArray_DIPixelProvider = (void *)0x059B5550;\r\nconst void * RTTI_Scaleform__GFx__AS3__AS3Vectoruint_DIPixelProvider = (void *)0x059B55A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ASRefCountCollector = (void *)0x059ACE18;\r\nconst void * RTTI_Scaleform__GFx__AS3__ASVM = (void *)0x059AD968;\r\nconst void * RTTI_Scaleform__GFx__AS3__ASVM__AbcFileWithMovieDef = (void *)0x059ADDD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__AbcDataBuffer = (void *)0x059BB038;\r\nconst void * RTTI_Scaleform__GFx__AS3__Abc__File = (void *)0x059ACD20;\r\nconst void * RTTI_Scaleform__GFx__AS3__ArrayBase = (void *)0x059B1460;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmBitmap = (void *)0x059AD4F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmButton = (void *)0x059ADEA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmDisplayObj = (void *)0x059AD2C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmInteractiveObj = (void *)0x059AD928;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmLoader = (void *)0x059ADED8;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmMovieClip = (void *)0x059ADC30;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmSprite = (void *)0x059ADBF8;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmStage = (void *)0x059ADC68;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmStaticText = (void *)0x059ADF48;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmTextField = (void *)0x059ADF80;\r\nconst void * RTTI_Scaleform__GFx__AS3__AvmTextField__CSSHolder = (void *)0x059B9600;\r\nconst void * RTTI_Scaleform__GFx__AS3__BASlotFunctCalc = (void *)0x059AD560;\r\nconst void * RTTI_Scaleform__GFx__AS3__BASlotFunctSrlzFixedName = (void *)0x059AD5A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__BASlotFunctSrlzFixedValue = (void *)0x059AD5F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Class = (void *)0x059ACB10;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassCallConstruct = (void *)0x059AE368;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__ClassClass = (void *)0x059AE4C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__Traits = (void *)0x059ACBE8;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__UserDefined = (void *)0x059AE480;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__ArgumentError = (void *)0x059AFB40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Array = (void *)0x059AF080;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Boolean = (void *)0x059AEF40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Catch = (void *)0x059AF0C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Date = (void *)0x059AFBC8;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__DefinitionError = (void *)0x059AF830;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Domain = (void *)0x059AF1C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Error = (void *)0x059AF7A8;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__EvalError = (void *)0x059AF880;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Function = (void *)0x059AE500;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Math = (void *)0x059AFC48;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Namespace = (void *)0x059AE9A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Number = (void *)0x059AEF80;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__Object = (void *)0x059AE540;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__QName = (void *)0x059AF100;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__RangeError = (void *)0x059AF8D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__ReferenceError = (void *)0x059AF920;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__RegExp = (void *)0x059AF6D8;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__SecurityError = (void *)0x059AF970;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__String = (void *)0x059AF040;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__SyntaxError = (void *)0x059AF9C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__TypeError = (void *)0x059AFA10;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__URIError = (void *)0x059AFA60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__UninitializedError = (void *)0x059AFAF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__VerifyError = (void *)0x059AFAA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__XML = (void *)0x059AF140;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__XMLList = (void *)0x059AF180;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__int_ = (void *)0x059AEFC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__uint = (void *)0x059AF000;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl__void_ = (void *)0x059AF200;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__Accessibility = (void *)0x059B7DC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__AccessibilityImplementation = (void *)0x059B7ED0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__AccessibilityProperties = (void *)0x059B8010;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__ISearchableText = (void *)0x059B7D00;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_accessibility__ISimpleTextSelection = (void *)0x059B7D60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__AVM1Movie = (void *)0x059B5170;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ActionScriptVersion = (void *)0x059B4C60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Bitmap = (void *)0x059B5300;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__BitmapData = (void *)0x059B5260;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__BitmapDataChannel = (void *)0x059B55F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__BlendMode = (void *)0x059B54B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__CapsStyle = (void *)0x059B56A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__DisplayObject = (void *)0x059B4EF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__DisplayObjectContainer = (void *)0x059B5740;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__FrameLabel = (void *)0x059B5AD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GradientType = (void *)0x059B5B70;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Graphics = (void *)0x059B5C60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsBitmapFill = (void *)0x059B5E40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsEndFill = (void *)0x059B5F50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsGradientFill = (void *)0x059B6060;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsPath = (void *)0x059B6170;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsPathCommand = (void *)0x059B6420;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsPathWinding = (void *)0x059B64D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsSolidFill = (void *)0x059B6260;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__GraphicsStroke = (void *)0x059B6370;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IBitmapDrawable = (void *)0x059B5460;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IGraphicsData = (void *)0x059B5D00;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IGraphicsFill = (void *)0x059B5D50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__IGraphicsPath = (void *)0x059B5DA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__InteractiveObject = (void *)0x059B53A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__InterpolationMethod = (void *)0x059B6580;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__JointStyle = (void *)0x059B6630;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__LineScaleMode = (void *)0x059B66D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Loader = (void *)0x059B5800;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__LoaderInfo = (void *)0x059B5990;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__MorphShape = (void *)0x059B67C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__MovieClip = (void *)0x059B69A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__PixelSnapping = (void *)0x059B6AE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__SWFVersion = (void *)0x059B6FF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Scene = (void *)0x059B6A40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Shader = (void *)0x059B70E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderData = (void *)0x059B7090;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderInput = (void *)0x059B7320;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderJob = (void *)0x059B72D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderParameter = (void *)0x059B7130;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderParameterType = (void *)0x059B7180;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__ShaderPrecision = (void *)0x059B7230;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Shape = (void *)0x059B6B80;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__SimpleButton = (void *)0x059B6C20;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__SpreadMethod = (void *)0x059B6CC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Sprite = (void *)0x059B6860;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__Stage = (void *)0x059B58A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageAlign = (void *)0x059B6D60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageDisplayState = (void *)0x059B6E00;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageQuality = (void *)0x059B6EB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_display__StageScaleMode = (void *)0x059B6F50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__EOFError = (void *)0x059B7BA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__IOError = (void *)0x059B7B50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__IllegalOperationError = (void *)0x059B7AA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__InvalidSWFError = (void *)0x059B7B00;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__MemoryError = (void *)0x059B7BF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__ScriptTimeoutError = (void *)0x059B7C40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_errors__StackOverflowError = (void *)0x059B7CA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__AccelerometerEvent = (void *)0x059B2960;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ActivityEvent = (void *)0x059B3270;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__AppLifecycleEvent = (void *)0x059B49B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__AsyncErrorEvent = (void *)0x059B3360;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ContextMenuEvent = (void *)0x059B3460;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__DataEvent = (void *)0x059B3500;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ErrorEvent = (void *)0x059B3070;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__Event = (void *)0x059B2830;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__EventDispatcher = (void *)0x059B0350;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__EventPhase = (void *)0x059B4360;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__FocusEvent = (void *)0x059B3D40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__FullScreenEvent = (void *)0x059B4400;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__GeolocationEvent = (void *)0x059B4100;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__GestureEvent = (void *)0x059B3780;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__GesturePhase = (void *)0x059B4910;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__HTTPStatusEvent = (void *)0x059B44A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__IEventDispatcher = (void *)0x059B4200;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__IMEEvent = (void *)0x059B4590;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__IOErrorEvent = (void *)0x059B3E30;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__KeyboardEvent = (void *)0x059B3B60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__MouseEvent = (void *)0x059B35A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__NetStatusEvent = (void *)0x059B3F20;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__PressAndTapGestureEvent = (void *)0x059B3A40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__ProgressEvent = (void *)0x059B3C50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__SecurityErrorEvent = (void *)0x059B4680;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__StageOrientation = (void *)0x059B4BC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__StageOrientationEvent = (void *)0x059B4AB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__StatusEvent = (void *)0x059B4010;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__SyncEvent = (void *)0x059B4730;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TextEvent = (void *)0x059B2F80;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TimerEvent = (void *)0x059B4820;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TouchEvent = (void *)0x059B3690;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__TransformGestureEvent = (void *)0x059B38D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__UncaughtErrorEvent = (void *)0x059B3160;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_events__UncaughtErrorEvents = (void *)0x059B42A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_external__ExternalInterface = (void *)0x059BB1F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BevelFilter = (void *)0x059B9B40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BitmapFilter = (void *)0x059B9A50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BitmapFilterQuality = (void *)0x059B9BE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BitmapFilterType = (void *)0x059B9C90;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__BlurFilter = (void *)0x059B9D80;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__ColorMatrixFilter = (void *)0x059B9E70;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__ConvolutionFilter = (void *)0x059B9F30;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__DisplacementMapFilter = (void *)0x059B9FF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__DisplacementMapFilterMode = (void *)0x059BA0B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__DropShadowFilter = (void *)0x059BA1C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__GlowFilter = (void *)0x059BA2C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__GradientBevelFilter = (void *)0x059BA3C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__GradientGlowFilter = (void *)0x059BA4D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_filters__ShaderFilter = (void *)0x059BA590;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__ColorTransform = (void *)0x059B8120;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Matrix = (void *)0x059B8520;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Matrix3D = (void *)0x059B8350;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__PerspectiveProjection = (void *)0x059B86F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Point = (void *)0x059B85C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Rectangle = (void *)0x059B87B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Transform = (void *)0x059B8850;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Utils3D = (void *)0x059B88F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_geom__Vector3D = (void *)0x059B8210;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__DisplayObjectEx = (void *)0x059BBE40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__Extensions = (void *)0x059BBCB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__FocusEventEx = (void *)0x059BC430;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__FocusManager = (void *)0x059BBC10;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__GamePad = (void *)0x059BC250;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__GamePadAnalogEvent = (void *)0x059BC2E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__IMECandidateListStyle = (void *)0x059BC7A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__IMEEventEx = (void *)0x059BC660;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__IMEEx = (void *)0x059BC860;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__InteractiveObjectEx = (void *)0x059BBEE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__KeyboardEventEx = (void *)0x059BC1B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__MouseCursorEvent = (void *)0x059BBD50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__MouseEventEx = (void *)0x059BC070;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__SystemEx = (void *)0x059BBAE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__TextEventEx = (void *)0x059BC520;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_gfx__TextFieldEx = (void *)0x059BBF80;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__Camera = (void *)0x059BA5E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__ID3Info = (void *)0x059BA6C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__Microphone = (void *)0x059BA7B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__Sound = (void *)0x059BAA80;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundChannel = (void *)0x059BA940;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundLoaderContext = (void *)0x059BAB20;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundMixer = (void *)0x059BABD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_media__SoundTransform = (void *)0x059BA850;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__FileFilter = (void *)0x059B01C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__FileReference = (void *)0x059B0300;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__FileReferenceList = (void *)0x059B0550;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__IDynamicPropertyOutput = (void *)0x059B05A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__IDynamicPropertyWriter = (void *)0x059B0600;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__LocalConnection = (void *)0x059B0660;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__NetConnection = (void *)0x059B0700;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__ObjectEncoding = (void *)0x059B07A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__Responder = (void *)0x059B0840;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__SharedObject = (void *)0x059B08E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__SharedObjectFlushStatus = (void *)0x059B0A60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__Socket = (void *)0x059B0B10;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLLoader = (void *)0x059B0C50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLLoaderDataFormat = (void *)0x059B0DE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLRequest = (void *)0x059B0450;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLRequestHeader = (void *)0x059B0ED0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLRequestMethod = (void *)0x059B0F70;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLStream = (void *)0x059B1010;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__URLVariables = (void *)0x059B0D40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_net__XMLSocket = (void *)0x059B1060;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_sensors__Accelerometer = (void *)0x059BB2F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__ApplicationDomain = (void *)0x059B7370;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__Capabilities = (void *)0x059B74C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__IME = (void *)0x059B7560;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__IMEConversionMode = (void *)0x059B75F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__LoaderContext = (void *)0x059B7820;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__Security = (void *)0x059B78C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__SecurityDomain = (void *)0x059B76E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__SecurityPanel = (void *)0x059B7960;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_system__System = (void *)0x059B7A00;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__AntiAliasType = (void *)0x059B8980;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__CSMSettings = (void *)0x059B8A70;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__Font = (void *)0x059B8B50;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__FontStyle = (void *)0x059B8D20;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__FontType = (void *)0x059B8DC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__GridFitType = (void *)0x059B8E60;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__StaticText = (void *)0x059B8FA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__StyleSheet = (void *)0x059B9160;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextColorType = (void *)0x059B92A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextDisplayMode = (void *)0x059B9340;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextField = (void *)0x059B9470;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFieldAutoSize = (void *)0x059B9640;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFieldType = (void *)0x059B96E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFormat = (void *)0x059B9200;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextFormatAlign = (void *)0x059B9780;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextLineMetrics = (void *)0x059B9560;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextRenderer = (void *)0x059B9820;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_text__TextSnapshot = (void *)0x059B9910;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenu = (void *)0x059BB6B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenuBuiltInItems = (void *)0x059BB430;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenuClipboardItems = (void *)0x059BB550;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__ContextMenuItem = (void *)0x059BB610;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__KeyLocation = (void *)0x059BB7E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__Keyboard = (void *)0x059BB750;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__Mouse = (void *)0x059BB880;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__MouseCursor = (void *)0x059BB900;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__Multitouch = (void *)0x059BB9A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_ui__MultitouchInputMode = (void *)0x059BBA40;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__ByteArray = (void *)0x059B2250;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Dictionary = (void *)0x059B23E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Endian = (void *)0x059B24D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__IDataInput = (void *)0x059B2560;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__IDataOutput = (void *)0x059B25B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__IExternalizable = (void *)0x059B2430;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Proxy = (void *)0x059B2650;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_utils__Timer = (void *)0x059B2740;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector = (void *)0x059B10B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_String = (void *)0x059B13C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_double = (void *)0x059B1370;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_int = (void *)0x059B12D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_object = (void *)0x059B1410;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_vec__Vector_uint = (void *)0x059B1320;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_xml__XMLDocument = (void *)0x059BCA30;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_xml__XMLNode = (void *)0x059BC940;\r\nconst void * RTTI_Scaleform__GFx__AS3__ClassTraits__fl_xml__XMLNodeType = (void *)0x059BCAD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__ClassClass = (void *)0x059AE3A8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__UDBase = (void *)0x059AD078;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__UserDefined = (void *)0x059AE3E8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Array = (void *)0x059AED18;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Boolean = (void *)0x059AEBE8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Catch = (void *)0x059AED58;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Date = (void *)0x059AEDD8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Domain = (void *)0x059B0148;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Error = (void *)0x059AED98;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Function = (void *)0x059AE6F8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Math = (void *)0x059AEE10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Namespace = (void *)0x059AEA38;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Number = (void *)0x059AEC28;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__Object = (void *)0x059AE5C8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__QName = (void *)0x059AEE88;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__RegExp = (void *)0x059AEE48;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__String = (void *)0x059AECD8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__XML = (void *)0x059AEEC8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__XMLList = (void *)0x059AEF00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__int_ = (void *)0x059AEC68;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl__uint = (void *)0x059AECA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_accessibility__Accessibility = (void *)0x059B7E20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__ActionScriptVersion = (void *)0x059B4CC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__BitmapDataChannel = (void *)0x059B5650;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__BlendMode = (void *)0x059B5500;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__CapsStyle = (void *)0x059B56F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__GradientType = (void *)0x059B5BC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__GraphicsPathCommand = (void *)0x059B6480;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__GraphicsPathWinding = (void *)0x059B6530;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__InterpolationMethod = (void *)0x059B65E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__JointStyle = (void *)0x059B6680;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__LineScaleMode = (void *)0x059B6720;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__LoaderInfo = (void *)0x059B5A30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__PixelSnapping = (void *)0x059B6B30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__SWFVersion = (void *)0x059B7040;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__ShaderParameterType = (void *)0x059B71E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__ShaderPrecision = (void *)0x059B7280;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__SpreadMethod = (void *)0x059B6D10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__Stage = (void *)0x059B5940;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageAlign = (void *)0x059B6DB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageDisplayState = (void *)0x059B6E60;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageQuality = (void *)0x059B6F00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_display__StageScaleMode = (void *)0x059B6FA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__AccelerometerEvent = (void *)0x059B2A20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ActivityEvent = (void *)0x059B32C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__AppLifecycleEvent = (void *)0x059B4A60;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__AsyncErrorEvent = (void *)0x059B3410;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ContextMenuEvent = (void *)0x059B34B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__DataEvent = (void *)0x059B3550;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ErrorEvent = (void *)0x059B3110;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__Event = (void *)0x059B28D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__EventDispatcher = (void *)0x059B2A70;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__EventPhase = (void *)0x059B43B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__FocusEvent = (void *)0x059B3DE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__FullScreenEvent = (void *)0x059B4450;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__GeolocationEvent = (void *)0x059B41B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__GestureEvent = (void *)0x059B3820;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__GesturePhase = (void *)0x059B4960;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__HTTPStatusEvent = (void *)0x059B44F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__IMEEvent = (void *)0x059B4630;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__IOErrorEvent = (void *)0x059B3ED0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__KeyboardEvent = (void *)0x059B3C00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__MouseEvent = (void *)0x059B3640;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__NetStatusEvent = (void *)0x059B3FC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__PressAndTapGestureEvent = (void *)0x059B3B00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__ProgressEvent = (void *)0x059B3CF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__SecurityErrorEvent = (void *)0x059B46E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__StageOrientation = (void *)0x059B4C10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__StageOrientationEvent = (void *)0x059B4B70;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__StatusEvent = (void *)0x059B40B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__SyncEvent = (void *)0x059B4780;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TextEvent = (void *)0x059B3020;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TimerEvent = (void *)0x059B48C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TouchEvent = (void *)0x059B3730;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__TransformGestureEvent = (void *)0x059B3990;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_events__UncaughtErrorEvent = (void *)0x059B3220;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_external__ExternalInterface = (void *)0x059BB250;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_filters__BitmapFilterQuality = (void *)0x059B9C40;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_filters__BitmapFilterType = (void *)0x059B9CE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_filters__DisplacementMapFilterMode = (void *)0x059BA110;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_geom__Point = (void *)0x059B8658;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_geom__Utils3D = (void *)0x059B8940;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_geom__Vector3D = (void *)0x059B82B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__DisplayObjectEx = (void *)0x059BBE90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__Extensions = (void *)0x059BBD00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__FocusManager = (void *)0x059BBC60;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__GamePad = (void *)0x059BC298;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__GamePadAnalogEvent = (void *)0x059BC390;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__IMEEventEx = (void *)0x059BC700;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__IMEEx = (void *)0x059BC8A8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__InteractiveObjectEx = (void *)0x059BBF30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__MouseCursorEvent = (void *)0x059BBDF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__MouseEventEx = (void *)0x059BC110;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__SystemEx = (void *)0x059BBB30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__TextEventEx = (void *)0x059BC5C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_gfx__TextFieldEx = (void *)0x059BBFD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_media__Camera = (void *)0x059BA630;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_media__Microphone = (void *)0x059BA800;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_media__SoundMixer = (void *)0x059BAC20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__ObjectEncoding = (void *)0x059B07F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__SharedObject = (void *)0x059B0980;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__SharedObjectFlushStatus = (void *)0x059B0AC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__URLLoaderDataFormat = (void *)0x059B0E30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_net__URLRequestMethod = (void *)0x059B0FC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_sensors__Accelerometer = (void *)0x059BB390;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__ApplicationDomain = (void *)0x059B7470;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__Capabilities = (void *)0x059B7510;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__IME = (void *)0x059B75A8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__IMEConversionMode = (void *)0x059B7640;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__Security = (void *)0x059B7910;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__SecurityDomain = (void *)0x059B7780;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__SecurityPanel = (void *)0x059B79B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_system__System = (void *)0x059B7A50;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__AntiAliasType = (void *)0x059B89D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__Font = (void *)0x059B8BE8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__FontStyle = (void *)0x059B8D70;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__FontType = (void *)0x059B8E10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__GridFitType = (void *)0x059B8EB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextColorType = (void *)0x059B92F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextDisplayMode = (void *)0x059B9390;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextField = (void *)0x059B9510;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextFieldAutoSize = (void *)0x059B9690;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextFieldType = (void *)0x059B9730;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextFormatAlign = (void *)0x059B97D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_text__TextRenderer = (void *)0x059B9870;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__KeyLocation = (void *)0x059BB830;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__Keyboard = (void *)0x059BB798;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__Mouse = (void *)0x059BB8C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__MouseCursor = (void *)0x059BB950;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__Multitouch = (void *)0x059BB9F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_ui__MultitouchInputMode = (void *)0x059BBA90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_utils__ByteArray = (void *)0x059B22F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_utils__Endian = (void *)0x059B2520;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector = (void *)0x059B10F8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_String = (void *)0x059B1230;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_double = (void *)0x059B11E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_int = (void *)0x059B1140;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_object = (void *)0x059B1280;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_vec__Vector_uint = (void *)0x059B1190;\r\nconst void * RTTI_Scaleform__GFx__AS3__Classes__fl_xml__XMLNodeType = (void *)0x059BCB20;\r\nconst void * RTTI_Scaleform__GFx__AS3__DoAbc = (void *)0x059BB1B8;\r\nconst void * RTTI_Scaleform__GFx__AS3__FlashUI = (void *)0x059AD258;\r\nconst void * RTTI_Scaleform__GFx__AS3__FrameCounter = (void *)0x059ADF10;\r\nconst void * RTTI_Scaleform__GFx__AS3__GASRefCountBase = (void *)0x059ACA50;\r\nconst void * RTTI_Scaleform__GFx__AS3__IMEManager = (void *)0x059BCED8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Impl__ArrayFunc = (void *)0x059AD528;\r\nconst void * RTTI_Scaleform__GFx__AS3__Impl__Value2NumberCollector = (void *)0x059AF4A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Impl__Value2StrCollector = (void *)0x059AF460;\r\nconst void * RTTI_Scaleform__GFx__AS3__Impl__ValuePtrCollector = (void *)0x059AF420;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instance = (void *)0x059AD008;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Activation = (void *)0x059AE950;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Anonimous = (void *)0x059AD180;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__CTraits = (void *)0x059AD0B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__ClassClass = (void *)0x059AEBA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Interface = (void *)0x059AE610;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Prototype = (void *)0x059AD130;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__RTraits = (void *)0x059AD0F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__Traits = (void *)0x059ACDD8;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__UserDefined = (void *)0x059AE250;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Array = (void *)0x059AF3E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Boolean = (void *)0x059AF600;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Catch = (void *)0x059AF300;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Date = (void *)0x059AFC08;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Domain = (void *)0x059B0100;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Error = (void *)0x059AF7F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Function = (void *)0x059AE660;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__GlobalObject = (void *)0x059AF340;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__GlobalObjectScript = (void *)0x059AF390;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__MethodInd = (void *)0x059AE8B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Namespace = (void *)0x059AE9F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Number = (void *)0x059AF530;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Object = (void *)0x059AE580;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__QName = (void *)0x059AF2C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__RegExp = (void *)0x059AF720;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__String = (void *)0x059AF650;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__Thunk = (void *)0x059AE870;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__ThunkFunction = (void *)0x059AE6B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__VTableInd = (void *)0x059AE900;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__XML = (void *)0x059AFC88;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__XMLList = (void *)0x059AFE70;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__int_ = (void *)0x059AF578;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl__uint = (void *)0x059AF5B8;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_accessibility__AccessibilityImplementation = (void *)0x059B7F40;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_accessibility__AccessibilityProperties = (void *)0x059B8070;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__AVM1Movie = (void *)0x059B51C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Bitmap = (void *)0x059B5350;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__BitmapData = (void *)0x059B52B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__DisplayObject = (void *)0x059B4F40;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__DisplayObjectContainer = (void *)0x059B57A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__FrameLabel = (void *)0x059B5B20;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Graphics = (void *)0x059B5CB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsBitmapFill = (void *)0x059B5EA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsEndFill = (void *)0x059B5FA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsGradientFill = (void *)0x059B60C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsPath = (void *)0x059B61C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsSolidFill = (void *)0x059B62C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__GraphicsStroke = (void *)0x059B63C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__InteractiveObject = (void *)0x059B5400;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Loader = (void *)0x059B5850;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__LoaderInfo = (void *)0x059B59E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__MorphShape = (void *)0x059B6810;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__MovieClip = (void *)0x059B69F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Scene = (void *)0x059B6A90;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Shape = (void *)0x059B6BD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__SimpleButton = (void *)0x059B6C70;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Sprite = (void *)0x059B68B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_display__Stage = (void *)0x059B58F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__AccelerometerEvent = (void *)0x059B29C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__AppLifecycleEvent = (void *)0x059B4A00;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__AsyncErrorEvent = (void *)0x059B33B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__ErrorEvent = (void *)0x059B30C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__Event = (void *)0x059B2880;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__EventDispatcher = (void *)0x059B03F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__FocusEvent = (void *)0x059B3D90;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__GeolocationEvent = (void *)0x059B4150;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__GestureEvent = (void *)0x059B37D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__IMEEvent = (void *)0x059B45E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__IOErrorEvent = (void *)0x059B3E80;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__KeyboardEvent = (void *)0x059B3BB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__MouseEvent = (void *)0x059B35F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__NetStatusEvent = (void *)0x059B3F70;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__PressAndTapGestureEvent = (void *)0x059B3AA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__ProgressEvent = (void *)0x059B3CA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__StageOrientationEvent = (void *)0x059B4B10;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__StatusEvent = (void *)0x059B4060;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TextEvent = (void *)0x059B2FD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TimerEvent = (void *)0x059B4870;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TouchEvent = (void *)0x059B36E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__TransformGestureEvent = (void *)0x059B3930;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__UncaughtErrorEvent = (void *)0x059B31C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_events__UncaughtErrorEvents = (void *)0x059B4300;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__BevelFilter = (void *)0x059B9B90;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__BitmapFilter = (void *)0x059B9AA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__BlurFilter = (void *)0x059B9DD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__ColorMatrixFilter = (void *)0x059B9ED0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__DisplacementMapFilter = (void *)0x059BA050;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__DropShadowFilter = (void *)0x059BA210;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__GlowFilter = (void *)0x059BA310;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__GradientBevelFilter = (void *)0x059BA420;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_filters__GradientGlowFilter = (void *)0x059BA530;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__ColorTransform = (void *)0x059B8170;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Matrix = (void *)0x059B8570;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Matrix3D = (void *)0x059B83A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__PerspectiveProjection = (void *)0x059B8750;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Point = (void *)0x059B8610;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Rectangle = (void *)0x059B8800;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Transform = (void *)0x059B88A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_geom__Vector3D = (void *)0x059B8260;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__FocusEventEx = (void *)0x059BC480;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__GamePadAnalogEvent = (void *)0x059BC330;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__IMECandidateListStyle = (void *)0x059BC800;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__IMEEventEx = (void *)0x059BC6B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__KeyboardEventEx = (void *)0x059BC200;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__MouseCursorEvent = (void *)0x059BBDA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__MouseEventEx = (void *)0x059BC0C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_gfx__TextEventEx = (void *)0x059BC570;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__ID3Info = (void *)0x059BA710;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__Sound = (void *)0x059BAAD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__SoundChannel = (void *)0x059BA990;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__SoundLoaderContext = (void *)0x059BAB70;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_media__SoundTransform = (void *)0x059BA8A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__FileReference = (void *)0x059B03A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__NetConnection = (void *)0x059B0750;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__SharedObject = (void *)0x059B0930;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__Socket = (void *)0x059B0B60;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLLoader = (void *)0x059B0CA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLRequest = (void *)0x059B04A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLRequestHeader = (void *)0x059B0F20;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_net__URLVariables = (void *)0x059B0D90;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_sensors__Accelerometer = (void *)0x059BB340;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_system__ApplicationDomain = (void *)0x059B7410;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_system__LoaderContext = (void *)0x059B7870;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_system__SecurityDomain = (void *)0x059B7730;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__CSMSettings = (void *)0x059B8AC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__Font = (void *)0x059B8BA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__StaticText = (void *)0x059B8FF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__StyleSheet = (void *)0x059B91B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextField = (void *)0x059B94C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextFormat = (void *)0x059B9250;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextLineMetrics = (void *)0x059B95B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_text__TextSnapshot = (void *)0x059B9960;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_ui__ContextMenu = (void *)0x059BB700;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_ui__ContextMenuBuiltInItems = (void *)0x059BB490;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_ui__ContextMenuClipboardItems = (void *)0x059BB5B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__ByteArray = (void *)0x059B22A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__Dictionary = (void *)0x059B2200;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__Proxy = (void *)0x059B26A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_utils__Timer = (void *)0x059B2790;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_String = (void *)0x059B1FB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_double = (void *)0x059B1D90;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_int = (void *)0x059B1950;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_object = (void *)0x059B2050;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_vec__Vector_uint = (void *)0x059B1B70;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_xml__XMLDocument = (void *)0x059BCA80;\r\nconst void * RTTI_Scaleform__GFx__AS3__InstanceTraits__fl_xml__XMLNode = (void *)0x059BC990;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Array = (void *)0x059AE298;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__AttrGet = (void *)0x059B0038;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__AttrGetFirst = (void *)0x059AFF60;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Catch = (void *)0x059AF4E8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__CheckTypeTF = (void *)0x059AE820;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__ChildGet = (void *)0x059AFFF8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__ChildGetFirst = (void *)0x059AFFB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Date = (void *)0x059AFB88;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Domain = (void *)0x059B00B8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__EmptyCallBack = (void *)0x059AFF10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Error = (void *)0x059AF768;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Function = (void *)0x059AE788;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__FunctionAOT = (void *)0x059AE740;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__FunctionBase = (void *)0x059AD1D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__GlobalObject = (void *)0x059AE1C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__GlobalObjectCPP = (void *)0x059AE320;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__GlobalObjectScript = (void *)0x059AE430;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__ListGet = (void *)0x059B0078;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Namespace = (void *)0x059AE208;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__Object = (void *)0x059AD218;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__QName = (void *)0x059AF280;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__RegExp = (void *)0x059AF698;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__ThunkFunction = (void *)0x059AE7D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XML = (void *)0x059AF240;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLAttr = (void *)0x059AFD50;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLComment = (void *)0x059AFDE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLElement = (void *)0x059AFCD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLElement__CallBack = (void *)0x059AFE20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLList = (void *)0x059AE2D8;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLList__CallBack = (void *)0x059AFEC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLProcInstr = (void *)0x059AFD90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl__XMLText = (void *)0x059AFD10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_accessibility__AccessibilityImplementation = (void *)0x059B7E70;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_accessibility__AccessibilityProperties = (void *)0x059B7FB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__AVM1Movie = (void *)0x059B5120;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Bitmap = (void *)0x059B4FE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__BitmapData = (void *)0x059B5210;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__DisplayObject = (void *)0x059B4D50;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__DisplayObjectContainer = (void *)0x059B4DF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__FrameLabel = (void *)0x059B5A80;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Graphics = (void *)0x059B5C10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsBitmapFill = (void *)0x059B5DF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsEndFill = (void *)0x059B5F00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsGradientFill = (void *)0x059B6000;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsPath = (void *)0x059B6120;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsSolidFill = (void *)0x059B6210;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__GraphicsStroke = (void *)0x059B6320;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__InteractiveObject = (void *)0x059B4E50;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Loader = (void *)0x059B4F90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__LoaderInfo = (void *)0x059B4DA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__MorphShape = (void *)0x059B6770;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__MovieClip = (void *)0x059B6900;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Scene = (void *)0x059B6950;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Shape = (void *)0x059B5030;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__SimpleButton = (void *)0x059B5080;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Sprite = (void *)0x059B50D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_display__Stage = (void *)0x059B4EA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__AccelerometerEvent = (void *)0x059B2910;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__AppLifecycleEvent = (void *)0x059B2D90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__AsyncErrorEvent = (void *)0x059B3310;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__ErrorEvent = (void *)0x059B2CF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__Event = (void *)0x059B27E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__EventDispatcher = (void *)0x059B0260;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__FocusEvent = (void *)0x059B2B60;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__GeolocationEvent = (void *)0x059B2EE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__GestureEvent = (void *)0x059B2C00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__IMEEvent = (void *)0x059B4540;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__IOErrorEvent = (void *)0x059B2CA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__KeyboardEvent = (void *)0x059B2B10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__MouseEvent = (void *)0x059B2AC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__NetStatusEvent = (void *)0x059B2E40;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__PressAndTapGestureEvent = (void *)0x059B39E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__ProgressEvent = (void *)0x059B2C50;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__StageOrientationEvent = (void *)0x059B2DE0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__StatusEvent = (void *)0x059B2E90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TextEvent = (void *)0x059B2D40;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TimerEvent = (void *)0x059B47D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TouchEvent = (void *)0x059B2BB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__TransformGestureEvent = (void *)0x059B3870;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__UncaughtErrorEvent = (void *)0x059B2F30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_events__UncaughtErrorEvents = (void *)0x059B4250;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__BevelFilter = (void *)0x059B9AF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__BitmapFilter = (void *)0x059B9A00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__BlurFilter = (void *)0x059B9D30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__ColorMatrixFilter = (void *)0x059B9E20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__DisplacementMapFilter = (void *)0x059B9F90;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__DropShadowFilter = (void *)0x059BA170;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__GlowFilter = (void *)0x059BA270;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__GradientBevelFilter = (void *)0x059BA360;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_filters__GradientGlowFilter = (void *)0x059BA480;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__ColorTransform = (void *)0x059B80D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Matrix = (void *)0x059B84D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Matrix3D = (void *)0x059B8300;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__PerspectiveProjection = (void *)0x059B86A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Point = (void *)0x059B8490;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Rectangle = (void *)0x059B83F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Transform = (void *)0x059B8440;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_geom__Vector3D = (void *)0x059B81C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__FocusEventEx = (void *)0x059BC3E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__GamePadAnalogEvent = (void *)0x059BBBC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__IMECandidateListStyle = (void *)0x059BC750;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__IMEEventEx = (void *)0x059BC610;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__KeyboardEventEx = (void *)0x059BC160;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__MouseCursorEvent = (void *)0x059BBB70;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__MouseEventEx = (void *)0x059BC020;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_gfx__TextEventEx = (void *)0x059BC4D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__ID3Info = (void *)0x059BA670;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__Sound = (void *)0x059BA9E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__SoundChannel = (void *)0x059BA8F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__SoundLoaderContext = (void *)0x059BAA30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_media__SoundTransform = (void *)0x059BA760;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__FileReference = (void *)0x059B0210;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__NetConnection = (void *)0x059B06B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__SharedObject = (void *)0x059B0890;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__Socket = (void *)0x059B0A20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__SocketReader = (void *)0x059B0C00;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__SocketWriter = (void *)0x059B0BB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLLoader = (void *)0x059B09D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLRequest = (void *)0x059B02B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLRequestHeader = (void *)0x059B0E80;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_net__URLVariables = (void *)0x059B0CF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_sensors__Accelerometer = (void *)0x059BB2A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_system__ApplicationDomain = (void *)0x059B73C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_system__LoaderContext = (void *)0x059B77D0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_system__SecurityDomain = (void *)0x059B7690;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__CSMSettings = (void *)0x059B8A20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__Font = (void *)0x059B8B10;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__StaticText = (void *)0x059B8F50;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__StyleSheet = (void *)0x059B90C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextField = (void *)0x059B8C30;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextFormat = (void *)0x059B9110;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextLineMetrics = (void *)0x059B9420;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_text__TextSnapshot = (void *)0x059B98C0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_ui__ContextMenu = (void *)0x059BB660;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_ui__ContextMenuBuiltInItems = (void *)0x059BB3E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_ui__ContextMenuClipboardItems = (void *)0x059BB4F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__BAReader = (void *)0x059B2390;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__BASlotFunctCalc = (void *)0x059B2480;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__BAWriter = (void *)0x059B2340;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__ByteArray = (void *)0x059B2160;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__Dictionary = (void *)0x059B21B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__Proxy = (void *)0x059B2600;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_utils__Timer = (void *)0x059B26F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_String = (void *)0x059B1F60;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_double = (void *)0x059B1D40;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_int = (void *)0x059B1900;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_object = (void *)0x059B2000;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_vec__Vector_uint = (void *)0x059B1B20;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_xml__XMLDocument = (void *)0x059BC9E0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Instances__fl_xml__XMLNode = (void *)0x059BC8F0;\r\nconst void * RTTI_Scaleform__GFx__AS3__IntervalTimer = (void *)0x059ADFF8;\r\nconst void * RTTI_Scaleform__GFx__AS3__LoadQueueEntry = (void *)0x059ADD40;\r\nconst void * RTTI_Scaleform__GFx__AS3__LoadQueueEntryMT_LoadMovie = (void *)0x059ADD80;\r\nconst void * RTTI_Scaleform__GFx__AS3__MemoryContextImpl = (void *)0x059BB128;\r\nconst void * RTTI_Scaleform__GFx__AS3__MemoryContextImpl__HeapLimit = (void *)0x059BB170;\r\nconst void * RTTI_Scaleform__GFx__AS3__MovieDefRootNode = (void *)0x059ADE18;\r\nconst void * RTTI_Scaleform__GFx__AS3__MovieRoot = (void *)0x059AD3A0;\r\nconst void * RTTI_Scaleform__GFx__AS3__MovieRoot__StickyVarNode = (void *)0x059ADE60;\r\nconst void * RTTI_Scaleform__GFx__AS3__NamespaceInstanceFactory = (void *)0x059AEA80;\r\nconst void * RTTI_Scaleform__GFx__AS3__NamespaceSet = (void *)0x059ACFD0;\r\nconst void * RTTI_Scaleform__GFx__AS3__NotifyLoadInitCandidateList = (void *)0x059BCF10;\r\nconst void * RTTI_Scaleform__GFx__AS3__NullObject = (void *)0x059B0188;\r\nconst void * RTTI_Scaleform__GFx__AS3__Object = (void *)0x059ACA20;\r\nconst void * RTTI_Scaleform__GFx__AS3__SerializeArrDense = (void *)0x059AD678;\r\nconst void * RTTI_Scaleform__GFx__AS3__SerializeArrSparse = (void *)0x059AD638;\r\nconst void * RTTI_Scaleform__GFx__AS3__ShapeObject = (void *)0x059AD998;\r\nconst void * RTTI_Scaleform__GFx__AS3__Slots__SlotFunct = (void *)0x059AD040;\r\nconst void * RTTI_Scaleform__GFx__AS3__SocketBuffer = (void *)0x059AE030;\r\nconst void * RTTI_Scaleform__GFx__AS3__SocketThreadMgr = (void *)0x059ADCA0;\r\nconst void * RTTI_Scaleform__GFx__AS3__SocketThreadMgr__EventInfo = (void *)0x059AE070;\r\nconst void * RTTI_Scaleform__GFx__AS3__Stage = (void *)0x059AD370;\r\nconst void * RTTI_Scaleform__GFx__AS3__TextSnapshotGlyphVisitor = (void *)0x059B99B0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Tracer = (void *)0x059ACCF0;\r\nconst void * RTTI_Scaleform__GFx__AS3__Traits = (void *)0x059ACC28;\r\nconst void * RTTI_Scaleform__GFx__AS3__UserDefinedFunction = (void *)0x059ADFB8;\r\nconst void * RTTI_Scaleform__GFx__AS3__VM = (void *)0x059ACB40;\r\nconst void * RTTI_Scaleform__GFx__AS3__VMAbcFile = (void *)0x059ACC88;\r\nconst void * RTTI_Scaleform__GFx__AS3__VMAppDomain = (void *)0x059ACBB0;\r\nconst void * RTTI_Scaleform__GFx__AS3__VMFile = (void *)0x059ACCC0;\r\nconst void * RTTI_Scaleform__GFx__AS3__XMLSupport = (void *)0x059AD288;\r\nconst void * RTTI_Scaleform__GFx__AS3__XMLSupportImpl = (void *)0x059AD4B8;\r\nconst void * RTTI_Scaleform__GFx__ASIMEManager = (void *)0x059BCD28;\r\nconst void * RTTI_Scaleform__GFx__ASIMEManager__IMEFuncHandler = (void *)0x059A7E30;\r\nconst void * RTTI_Scaleform__GFx__ASIntervalTimerIntf = (void *)0x059ADA18;\r\nconst void * RTTI_Scaleform__GFx__ASMovieRootBase = (void *)0x059AD3D8;\r\nconst void * RTTI_Scaleform__GFx__ASStringManager = (void *)0x059A4088;\r\nconst void * RTTI_Scaleform__GFx__AvmDisplayObjBase = (void *)0x059AD338;\r\nconst void * RTTI_Scaleform__GFx__Button = (void *)0x059BAC68;\r\nconst void * RTTI_Scaleform__GFx__ButtonDef = (void *)0x059A9D98;\r\nconst void * RTTI_Scaleform__GFx__Clipboard = (void *)0x059A92F0;\r\nconst void * RTTI_Scaleform__GFx__ConstShapeNoStyles = (void *)0x059A6C90;\r\nconst void * RTTI_Scaleform__GFx__ConstShapeWithStyles = (void *)0x059A8A58;\r\nconst void * RTTI_Scaleform__GFx__DefaultFontLibNameState = (void *)0x059A9640;\r\nconst void * RTTI_Scaleform__GFx__DisplayObjContainer = (void *)0x059A72E8;\r\nconst void * RTTI_Scaleform__GFx__DisplayObject = (void *)0x059A64A8;\r\nconst void * RTTI_Scaleform__GFx__DisplayObjectBase = (void *)0x059A6330;\r\nconst void * RTTI_Scaleform__GFx__DrawText = (void *)0x059BCBA0;\r\nconst void * RTTI_Scaleform__GFx__DrawTextImpl = (void *)0x059BCB68;\r\nconst void * RTTI_Scaleform__GFx__DrawTextManager = (void *)0x059BCC90;\r\nconst void * RTTI_Scaleform__GFx__DrawingContext = (void *)0x059A7820;\r\nconst void * RTTI_Scaleform__GFx__DrawingContext__PackedShape = (void *)0x059A79E8;\r\nconst void * RTTI_Scaleform__GFx__ExecuteTag = (void *)0x059A6798;\r\nconst void * RTTI_Scaleform__GFx__FontCompactor = (void *)0x059AC1E8;\r\nconst void * RTTI_Scaleform__GFx__FontData = (void *)0x059A98E0;\r\nconst void * RTTI_Scaleform__GFx__FontDataBound = (void *)0x059A9AC8;\r\nconst void * RTTI_Scaleform__GFx__FontDataCompactedGfx = (void *)0x059A99A0;\r\nconst void * RTTI_Scaleform__GFx__FontDataCompactedSwf = (void *)0x059A9960;\r\nconst void * RTTI_Scaleform__GFx__FontGlyphPacker = (void *)0x059A9DC8;\r\nconst void * RTTI_Scaleform__GFx__FontHandle = (void *)0x059A7AB8;\r\nconst void * RTTI_Scaleform__GFx__FontLib = (void *)0x059A9610;\r\nconst void * RTTI_Scaleform__GFx__FontManager = (void *)0x059A7C20;\r\nconst void * RTTI_Scaleform__GFx__FontManagerStates = (void *)0x059A38F0;\r\nconst void * RTTI_Scaleform__GFx__FontMap = (void *)0x059AB130;\r\nconst void * RTTI_Scaleform__GFx__FontResource = (void *)0x059A97A8;\r\nconst void * RTTI_Scaleform__GFx__FontResourceCreator = (void *)0x059A6EA8;\r\nconst void * RTTI_Scaleform__GFx__FunctionHandler = (void *)0x059EC328;\r\nconst void * RTTI_Scaleform__GFx__GFxInitImportActions = (void *)0x059A8A18;\r\nconst void * RTTI_Scaleform__GFx__GFxMovieDataDefFileKeyData = (void *)0x059A6CC8;\r\nconst void * RTTI_Scaleform__GFx__GFxMovieDataDefFileKeyInterface = (void *)0x059A66D0;\r\nconst void * RTTI_Scaleform__GFx__GFxMovieDefImplKey = (void *)0x059A6DD0;\r\nconst void * RTTI_Scaleform__GFx__GFxMovieDefImplKeyInterface = (void *)0x059A6720;\r\nconst void * RTTI_Scaleform__GFx__GFxPlaceObjectUnpacked = (void *)0x059A6C50;\r\nconst void * RTTI_Scaleform__GFx__GFxSocketImpl = (void *)0x059BAD08;\r\nconst void * RTTI_Scaleform__GFx__GFxSystemFontResourceKey = (void *)0x059A9B38;\r\nconst void * RTTI_Scaleform__GFx__GFxSystemFontResourceKeyInterface = (void *)0x059A9680;\r\nconst void * RTTI_Scaleform__GFx__IMEManagerBase = (void *)0x059A7DF0;\r\nconst void * RTTI_Scaleform__GFx__ImageCreator = (void *)0x05CD5D58;\r\nconst void * RTTI_Scaleform__GFx__ImageFileHandlerRegistry = (void *)0x059A9570;\r\nconst void * RTTI_Scaleform__GFx__ImageFileInfo = (void *)0x059A6FD8;\r\nconst void * RTTI_Scaleform__GFx__ImageFileInfoKeyData = (void *)0x059A9E98;\r\nconst void * RTTI_Scaleform__GFx__ImageFileKeyInterface = (void *)0x059A9E58;\r\nconst void * RTTI_Scaleform__GFx__ImageFileResourceCreator = (void *)0x059A7158;\r\nconst void * RTTI_Scaleform__GFx__ImageResource = (void *)0x059A32A0;\r\nconst void * RTTI_Scaleform__GFx__ImageResourceCreator = (void *)0x059A7198;\r\nconst void * RTTI_Scaleform__GFx__ImageResource__ImageDelegate = (void *)0x059A3730;\r\nconst void * RTTI_Scaleform__GFx__ImageShapeCharacterDef = (void *)0x059A9D58;\r\nconst void * RTTI_Scaleform__GFx__InteractiveObject = (void *)0x059A7218;\r\nconst void * RTTI_Scaleform__GFx__KeyboardState = (void *)0x059A3FF8;\r\nconst void * RTTI_Scaleform__GFx__KeyboardState__IListener = (void *)0x059ACD98;\r\nconst void * RTTI_Scaleform__GFx__LZMAFile = (void *)0x059AB790;\r\nconst void * RTTI_Scaleform__GFx__LZMASupport = (void *)0x059A3E58;\r\nconst void * RTTI_Scaleform__GFx__LoadBinaryTask = (void *)0x059A7D78;\r\nconst void * RTTI_Scaleform__GFx__LoadProcess = (void *)0x059A6EE0;\r\nconst void * RTTI_Scaleform__GFx__LoadQueueEntry = (void *)0x059AD6F8;\r\nconst void * RTTI_Scaleform__GFx__LoadQueueEntryMT = (void *)0x059A7C90;\r\nconst void * RTTI_Scaleform__GFx__LoadQueueEntryMT_LoadBinary = (void *)0x059A7DB0;\r\nconst void * RTTI_Scaleform__GFx__LoadQueueEntryMT_LoadVars = (void *)0x059A7D38;\r\nconst void * RTTI_Scaleform__GFx__LoadStates = (void *)0x059A7010;\r\nconst void * RTTI_Scaleform__GFx__LoadUpdateSync = (void *)0x059A69B8;\r\nconst void * RTTI_Scaleform__GFx__LoadVarsTask = (void *)0x059A7D00;\r\nconst void * RTTI_Scaleform__GFx__Loader = (void *)0x059A3DF0;\r\nconst void * RTTI_Scaleform__GFx__LoaderImpl = (void *)0x059A64E0;\r\nconst void * RTTI_Scaleform__GFx__LoaderTask = (void *)0x059A6628;\r\nconst void * RTTI_Scaleform__GFx__LogState = (void *)0x059A44A0;\r\nconst void * RTTI_Scaleform__GFx__MemoryBufferZlibImage = (void *)0x059AB830;\r\nconst void * RTTI_Scaleform__GFx__MemoryContext = (void *)0x059BAF40;\r\nconst void * RTTI_Scaleform__GFx__MorphCharacterDef = (void *)0x059AB8B0;\r\nconst void * RTTI_Scaleform__GFx__Movie = (void *)0x059A3160;\r\nconst void * RTTI_Scaleform__GFx__MovieBindProcess = (void *)0x059A6908;\r\nconst void * RTTI_Scaleform__GFx__MovieDataDef = (void *)0x059A67C8;\r\nconst void * RTTI_Scaleform__GFx__MovieDataDef__LoadTaskData = (void *)0x059A6B68;\r\nconst void * RTTI_Scaleform__GFx__MovieDefBindStates = (void *)0x059A70C8;\r\nconst void * RTTI_Scaleform__GFx__MovieDefImpl = (void *)0x059A6868;\r\nconst void * RTTI_Scaleform__GFx__MovieDefImpl__BindTaskData = (void *)0x059A6BA8;\r\nconst void * RTTI_Scaleform__GFx__MovieDefImpl__ReleaseNotifier = (void *)0x059AD470;\r\nconst void * RTTI_Scaleform__GFx__MovieDefRootNode = (void *)0x059AD730;\r\nconst void * RTTI_Scaleform__GFx__MovieDef__ResourceVisitor = (void *)0x059A6940;\r\nconst void * RTTI_Scaleform__GFx__MovieImageLoadTask = (void *)0x059A6658;\r\nconst void * RTTI_Scaleform__GFx__MovieImpl = (void *)0x059A3130;\r\nconst void * RTTI_Scaleform__GFx__MovieImpl__StickyVarNode = (void *)0x059ADBB8;\r\nconst void * RTTI_Scaleform__GFx__MovieImpl__WideStringStorage = (void *)0x059ADB10;\r\nconst void * RTTI_Scaleform__GFx__MoviePreloadTask = (void *)0x059A7CC8;\r\nconst void * RTTI_Scaleform__GFx__ParseControl = (void *)0x059A3E20;\r\nconst void * RTTI_Scaleform__GFx__PlaceObject2Tag = (void *)0x059A8638;\r\nconst void * RTTI_Scaleform__GFx__PlaceObject2Taga = (void *)0x059A89E0;\r\nconst void * RTTI_Scaleform__GFx__PlaceObject3Tag = (void *)0x059A8670;\r\nconst void * RTTI_Scaleform__GFx__PlaceObjectTag = (void *)0x059A9CA0;\r\nconst void * RTTI_Scaleform__GFx__RemoveObject2Tag = (void *)0x059A86E0;\r\nconst void * RTTI_Scaleform__GFx__RemoveObjectTag = (void *)0x059A86A8;\r\nconst void * RTTI_Scaleform__GFx__Resource = (void *)0x059A32D8;\r\nconst void * RTTI_Scaleform__GFx__ResourceData__DataInterface = (void *)0x059A6E68;\r\nconst void * RTTI_Scaleform__GFx__ResourceFileInfo = (void *)0x059A4308;\r\nconst void * RTTI_Scaleform__GFx__ResourceKey__KeyInterface = (void *)0x059A6690;\r\nconst void * RTTI_Scaleform__GFx__ResourceLib = (void *)0x059A41B8;\r\nconst void * RTTI_Scaleform__GFx__ResourceLib__ResourceSlot = (void *)0x059A43F8;\r\nconst void * RTTI_Scaleform__GFx__ResourceReport = (void *)0x059A6760;\r\nconst void * RTTI_Scaleform__GFx__ResourceWeakLib = (void *)0x059A4240;\r\nconst void * RTTI_Scaleform__GFx__SetBackgroundColorTag = (void *)0x059A89A0;\r\nconst void * RTTI_Scaleform__GFx__ShapeBaseCharacterDef = (void *)0x059A9CD8;\r\nconst void * RTTI_Scaleform__GFx__ShapeDataBase = (void *)0x059A6980;\r\nconst void * RTTI_Scaleform__GFx__SocketImplFactory = (void *)0x059BACD0;\r\nconst void * RTTI_Scaleform__GFx__SocketInterface = (void *)0x059BAC98;\r\nconst void * RTTI_Scaleform__GFx__Sprite = (void *)0x059A7A88;\r\nconst void * RTTI_Scaleform__GFx__SpriteDef = (void *)0x059A9C70;\r\nconst void * RTTI_Scaleform__GFx__State = (void *)0x05CD43E0;\r\nconst void * RTTI_Scaleform__GFx__StateBag = (void *)0x059A3238;\r\nconst void * RTTI_Scaleform__GFx__StateBagImpl = (void *)0x059A3658;\r\nconst void * RTTI_Scaleform__GFx__StaticTextCharacter = (void *)0x059AB0F8;\r\nconst void * RTTI_Scaleform__GFx__StaticTextDef = (void *)0x059AB0C0;\r\nconst void * RTTI_Scaleform__GFx__StaticTextSnapshotData__GlyphVisitor = (void *)0x059B8F00;\r\nconst void * RTTI_Scaleform__GFx__Stream = (void *)0x059A9420;\r\nconst void * RTTI_Scaleform__GFx__SubImageResource = (void *)0x059A7090;\r\nconst void * RTTI_Scaleform__GFx__SubImageResourceCreator = (void *)0x059A71D8;\r\nconst void * RTTI_Scaleform__GFx__SubImageResourceInfo = (void *)0x059A8718;\r\nconst void * RTTI_Scaleform__GFx__SwfShapeCharacterDef = (void *)0x059A9D18;\r\nconst void * RTTI_Scaleform__GFx__Task = (void *)0x059A65B0;\r\nconst void * RTTI_Scaleform__GFx__TextField = (void *)0x059AB220;\r\nconst void * RTTI_Scaleform__GFx__TextFieldDef = (void *)0x059A9350;\r\nconst void * RTTI_Scaleform__GFx__TextField__CSSHolderBase = (void *)0x059B93D8;\r\nconst void * RTTI_Scaleform__GFx__TextField__TextDocumentListener = (void *)0x059AB250;\r\nconst void * RTTI_Scaleform__GFx__TextKeyMap = (void *)0x059A9320;\r\nconst void * RTTI_Scaleform__GFx__Text__CompositionString = (void *)0x059AC748;\r\nconst void * RTTI_Scaleform__GFx__Text__EditorKit = (void *)0x059AC710;\r\nconst void * RTTI_Scaleform__GFx__Text__StyleManager = (void *)0x059B9080;\r\nconst void * RTTI_Scaleform__GFx__TextureGlyphBinder = (void *)0x059A9B00;\r\nconst void * RTTI_Scaleform__GFx__TextureGlyphData = (void *)0x059A8900;\r\nconst void * RTTI_Scaleform__GFx__TextureGlyphData__TextureGlyphVisitor = (void *)0x059A9910;\r\nconst void * RTTI_Scaleform__GFx__URLBuilder = (void *)0x059BCE18;\r\nconst void * RTTI_Scaleform__GFx__Value__ObjectInterface = (void *)0x059AD6B8;\r\nconst void * RTTI_Scaleform__GFx__ZLibFile = (void *)0x059BCF58;\r\nconst void * RTTI_Scaleform__GFx__ZlibImageSource = (void *)0x059AB7C0;\r\nconst void * RTTI_Scaleform__GFx__ZlibSupport = (void *)0x05CD3E38;\r\nconst void * RTTI_Scaleform__HeapPT__SysAllocGranulator = (void *)0x059AB8E8;\r\nconst void * RTTI_Scaleform__HeapPT__SysAllocWrapper = (void *)0x059AB928;\r\nconst void * RTTI_Scaleform__Log = (void *)0x059A3F88;\r\nconst void * RTTI_Scaleform__LongFormatter = (void *)0x059A7F60;\r\nconst void * RTTI_Scaleform__MemoryFile = (void *)0x05CD57E8;\r\nconst void * RTTI_Scaleform__MemoryHeap = (void *)0x059A2FE0;\r\nconst void * RTTI_Scaleform__MemoryHeapMH = (void *)0x059A3F58;\r\nconst void * RTTI_Scaleform__MemoryHeapPT = (void *)0x059A8A98;\r\nconst void * RTTI_Scaleform__MemoryHeap__LimitHandler = (void *)0x059BAF08;\r\nconst void * RTTI_Scaleform__MsgFormat = (void *)0x059A7E70;\r\nconst void * RTTI_Scaleform__Mutex = (void *)0x059A3EB8;\r\nconst void * RTTI_Scaleform__Mutex_AreadyLockedAcquireInterface = (void *)0x059A3F10;\r\nconst void * RTTI_Scaleform__RefCountImplCore = (void *)0x059EC200;\r\nconst void * RTTI_Scaleform__RefCountNTSImplCore = (void *)0x059A3088;\r\nconst void * RTTI_Scaleform__RefCountWeakSupportImpl = (void *)0x059A30C0;\r\nconst void * RTTI_Scaleform__Render__BevelFilter = (void *)0x059A8DE0;\r\nconst void * RTTI_Scaleform__Render__BlendModeBundle = (void *)0x059AAF30;\r\nconst void * RTTI_Scaleform__Render__BlendModeEffect = (void *)0x059ABAD0;\r\nconst void * RTTI_Scaleform__Render__BlendPrimitive = (void *)0x059A9180;\r\nconst void * RTTI_Scaleform__Render__BlurFilter = (void *)0x059A8D38;\r\nconst void * RTTI_Scaleform__Render__BlurFilterImpl = (void *)0x059A8D00;\r\nconst void * RTTI_Scaleform__Render__Bundle = (void *)0x059AAA80;\r\nconst void * RTTI_Scaleform__Render__CacheAsBitmapFilter = (void *)0x059A8E90;\r\nconst void * RTTI_Scaleform__Render__CacheBase = (void *)0x05D4E7A8;\r\nconst void * RTTI_Scaleform__Render__CacheEffect = (void *)0x059AB960;\r\nconst void * RTTI_Scaleform__Render__CacheablePrimitive = (void *)0x059A90E0;\r\nconst void * RTTI_Scaleform__Render__CacheableTargetEffect = (void *)0x059ABA08;\r\nconst void * RTTI_Scaleform__Render__ColorMatrixFilter = (void *)0x059A8E50;\r\nconst void * RTTI_Scaleform__Render__ComplexFill = (void *)0x059A5030;\r\nconst void * RTTI_Scaleform__Render__ComplexMesh = (void *)0x059AA398;\r\nconst void * RTTI_Scaleform__Render__ComplexMeshVertexOutput = (void *)0x059AC320;\r\nconst void * RTTI_Scaleform__Render__ComplexPrimitiveBundle = (void *)0x059AAE80;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotify = (void *)0x059A4520;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor = (void *)0x059A4860;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnCapture = (void *)0x059A4990;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnNextCapture = (void *)0x059A4920;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnSetCaptureThreadId = (void *)0x059A49F0;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextCaptureNotifyListVisitor_OnShutdown = (void *)0x059A48C0;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__ContextLock = (void *)0x059A4640;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__EntryData = (void *)0x059A3440;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__RTHandle__HandleData = (void *)0x059A4740;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__RenderNotify = (void *)0x05D46500;\r\nconst void * RTTI_Scaleform__Render__ContextImpl__RenderNotify__ServiceCommand = (void *)0x059A8370;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__DepthStencilSurface = (void *)0x05D466D0;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__HAL = (void *)0x05D46210;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__IndexBuffer = (void *)0x05D4E9B0;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__MappedTexture = (void *)0x05D46800;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__MeshBufferSet = (void *)0x05D4EC90;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__MeshCache = (void *)0x05D4EB00;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__MeshCacheItem = (void *)0x05D4ECE0;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__PendingResourceDestroyEntry = (void *)0x05D46620;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__RenderEvents = (void *)0x05D4E760;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__RenderSync = (void *)0x05D4EDC0;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__RenderTargetData = (void *)0x05D46350;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__ShaderInterface = (void *)0x05D4EEA0;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__ShaderInterface__MappedUniformBuffer = (void *)0x05D4EF80;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__ShaderManager = (void *)0x05D4F100;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__Texture = (void *)0x05D465E0;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__TextureFormat = (void *)0x05D46680;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__TextureManager = (void *)0x05D46720;\r\nconst void * RTTI_Scaleform__Render__CreationRenderer__VertexBuffer = (void *)0x05D4EB80;\r\nconst void * RTTI_Scaleform__Render__DDS__DDSFileImageSource = (void *)0x059AC1A8;\r\nconst void * RTTI_Scaleform__Render__DDS__FileReader = (void *)0x059AC0F8;\r\nconst void * RTTI_Scaleform__Render__DICommand = (void *)0x059A5108;\r\nconst void * RTTI_Scaleform__Render__DICommandQueue = (void *)0x059A8F10;\r\nconst void * RTTI_Scaleform__Render__DICommandQueue__ExecuteCommand = (void *)0x059A9000;\r\nconst void * RTTI_Scaleform__Render__DICommand_ApplyFilter = (void *)0x059A53A0;\r\nconst void * RTTI_Scaleform__Render__DICommand_Clear = (void *)0x059A52B0;\r\nconst void * RTTI_Scaleform__Render__DICommand_ColorTransform = (void *)0x059A5660;\r\nconst void * RTTI_Scaleform__Render__DICommand_Compare = (void *)0x059A5710;\r\nconst void * RTTI_Scaleform__Render__DICommand_CopyChannel = (void *)0x059A54F8;\r\nconst void * RTTI_Scaleform__Render__DICommand_CopyPixels = (void *)0x059A55B0;\r\nconst void * RTTI_Scaleform__Render__DICommand_CreateTexture = (void *)0x059A5140;\r\nconst void * RTTI_Scaleform__Render__DICommand_Dispose = (void *)0x059A51F8;\r\nconst void * RTTI_Scaleform__Render__DICommand_Draw = (void *)0x059A5450;\r\nconst void * RTTI_Scaleform__Render__DICommand_FillRect = (void *)0x059A57B8;\r\nconst void * RTTI_Scaleform__Render__DICommand_FloodFill = (void *)0x059A5870;\r\nconst void * RTTI_Scaleform__Render__DICommand_GetColorBoundsRect = (void *)0x059A5920;\r\nconst void * RTTI_Scaleform__Render__DICommand_GetPixel32 = (void *)0x059A59E8;\r\nconst void * RTTI_Scaleform__Render__DICommand_GetPixels = (void *)0x059A5AA0;\r\nconst void * RTTI_Scaleform__Render__DICommand_Histogram = (void *)0x059A5B50;\r\nconst void * RTTI_Scaleform__Render__DICommand_HitTest = (void *)0x059A5C00;\r\nconst void * RTTI_Scaleform__Render__DICommand_Merge = (void *)0x059A5CB0;\r\nconst void * RTTI_Scaleform__Render__DICommand_Noise = (void *)0x059A5D58;\r\nconst void * RTTI_Scaleform__Render__DICommand_PaletteMap = (void *)0x059A5E00;\r\nconst void * RTTI_Scaleform__Render__DICommand_PerlinNoise = (void *)0x059A5EB0;\r\nconst void * RTTI_Scaleform__Render__DICommand_PixelDissolve = (void *)0x059A5F60;\r\nconst void * RTTI_Scaleform__Render__DICommand_Scroll = (void *)0x059A6180;\r\nconst void * RTTI_Scaleform__Render__DICommand_SetPixel32 = (void *)0x059A6018;\r\nconst void * RTTI_Scaleform__Render__DICommand_SetPixels = (void *)0x059A60D0;\r\nconst void * RTTI_Scaleform__Render__DICommand_SourceRect = (void *)0x059A5360;\r\nconst void * RTTI_Scaleform__Render__DICommand_Threshold = (void *)0x059A6228;\r\nconst void * RTTI_Scaleform__Render__DIPixelProvider = (void *)0x059B4D10;\r\nconst void * RTTI_Scaleform__Render__DepthStencilBuffer = (void *)0x05D30DC8;\r\nconst void * RTTI_Scaleform__Render__DepthStencilSurface = (void *)0x05D46AD0;\r\nconst void * RTTI_Scaleform__Render__DestroyDrawableImageThreadCommand = (void *)0x059A62E0;\r\nconst void * RTTI_Scaleform__Render__DisplacementMapFilter = (void *)0x059A8ED0;\r\nconst void * RTTI_Scaleform__Render__DrawableImage = (void *)0x059A4FA8;\r\nconst void * RTTI_Scaleform__Render__DrawableImageContext = (void *)0x059A50C8;\r\nconst void * RTTI_Scaleform__Render__Fence = (void *)0x059A8088;\r\nconst void * RTTI_Scaleform__Render__FenceWrapperList = (void *)0x059A8168;\r\nconst void * RTTI_Scaleform__Render__FileImageSource = (void *)0x059AB7F8;\r\nconst void * RTTI_Scaleform__Render__FilterBundle = (void *)0x059AAEF8;\r\nconst void * RTTI_Scaleform__Render__FilterEffect = (void *)0x059AB9D0;\r\nconst void * RTTI_Scaleform__Render__FilterPrimitive = (void *)0x059A90A8;\r\nconst void * RTTI_Scaleform__Render__FilterSet = (void *)0x059A8BF8;\r\nconst void * RTTI_Scaleform__Render__Font = (void *)0x059A96C8;\r\nconst void * RTTI_Scaleform__Render__FontCacheHandleManager = (void *)0x059AB2D8;\r\nconst void * RTTI_Scaleform__Render__GlowFilter = (void *)0x059A8DA8;\r\nconst void * RTTI_Scaleform__Render__GlyphCache = (void *)0x059AB380;\r\nconst void * RTTI_Scaleform__Render__GlyphCacheConfig = (void *)0x059AB418;\r\nconst void * RTTI_Scaleform__Render__GlyphCache__EvictNotifier = (void *)0x059AB750;\r\nconst void * RTTI_Scaleform__Render__GlyphEvictNotifier = (void *)0x059AB690;\r\nconst void * RTTI_Scaleform__Render__GlyphFitter = (void *)0x059AC810;\r\nconst void * RTTI_Scaleform__Render__GlyphRaster = (void *)0x059AB450;\r\nconst void * RTTI_Scaleform__Render__GlyphShape = (void *)0x059AB550;\r\nconst void * RTTI_Scaleform__Render__GlyphTextureImage = (void *)0x059AB708;\r\nconst void * RTTI_Scaleform__Render__GradientData = (void *)0x059A9F38;\r\nconst void * RTTI_Scaleform__Render__GradientFilter = (void *)0x059A8E18;\r\nconst void * RTTI_Scaleform__Render__GradientImage = (void *)0x059AA028;\r\nconst void * RTTI_Scaleform__Render__HAL = (void *)0x05D46160;\r\nconst void * RTTI_Scaleform__Render__HALBeginDisplayItem = (void *)0x059A81E8;\r\nconst void * RTTI_Scaleform__Render__HALEndDisplayItem = (void *)0x059A8228;\r\nconst void * RTTI_Scaleform__Render__HALNotify = (void *)0x05D46428;\r\nconst void * RTTI_Scaleform__Render__HALSetUserMatrixItem__HALSetUserMatrixItemInterface = (void *)0x059A8270;\r\nconst void * RTTI_Scaleform__Render__Hairliner = (void *)0x059AA570;\r\nconst void * RTTI_Scaleform__Render__Image = (void *)0x05CD5CC0;\r\nconst void * RTTI_Scaleform__Render__ImageFileHandler = (void *)0x059ABC10;\r\nconst void * RTTI_Scaleform__Render__ImageFileHandlerRegistry = (void *)0x059A9530;\r\nconst void * RTTI_Scaleform__Render__ImageSwizzler = (void *)0x059A3B30;\r\nconst void * RTTI_Scaleform__Render__ImageUpdate = (void *)0x059A3B68;\r\nconst void * RTTI_Scaleform__Render__ImageUpdateSync = (void *)0x05D46A20;\r\nconst void * RTTI_Scaleform__Render__JPEG__ExtraData = (void *)0x059A87C0;\r\nconst void * RTTI_Scaleform__Render__JPEG__TablesHeader = (void *)0x059A8858;\r\nconst void * RTTI_Scaleform__Render__MappedTextureBase = (void *)0x05D46A90;\r\nconst void * RTTI_Scaleform__Render__MaskBundle = (void *)0x059AAEC0;\r\nconst void * RTTI_Scaleform__Render__MaskEffect = (void *)0x059AB998;\r\nconst void * RTTI_Scaleform__Render__MaskNodeState__Interface = (void *)0x059A8B68;\r\nconst void * RTTI_Scaleform__Render__MaskPrimitive = (void *)0x059AAB70;\r\nconst void * RTTI_Scaleform__Render__MatrixPoolImpl__MatrixPool = (void *)0x059AA650;\r\nconst void * RTTI_Scaleform__Render__MatrixState = (void *)0x05D46540;\r\nconst void * RTTI_Scaleform__Render__MatrixStateFactory = (void *)0x059AB298;\r\nconst void * RTTI_Scaleform__Render__MemoryBufferImage = (void *)0x059AB870;\r\nconst void * RTTI_Scaleform__Render__Mesh = (void *)0x059AA1D0;\r\nconst void * RTTI_Scaleform__Render__MeshBase = (void *)0x059AA060;\r\nconst void * RTTI_Scaleform__Render__MeshBuffer = (void *)0x05D4E818;\r\nconst void * RTTI_Scaleform__Render__MeshCache = (void *)0x05D4EB48;\r\nconst void * RTTI_Scaleform__Render__MeshCacheConfig = (void *)0x05D4E7E0;\r\nconst void * RTTI_Scaleform__Render__MeshCacheItem = (void *)0x05D4EC50;\r\nconst void * RTTI_Scaleform__Render__MeshKeyManager = (void *)0x059A84D0;\r\nconst void * RTTI_Scaleform__Render__MeshKeySet = (void *)0x059AA3D0;\r\nconst void * RTTI_Scaleform__Render__MeshProvider = (void *)0x059A7320;\r\nconst void * RTTI_Scaleform__Render__MeshProvider_KeySupport = (void *)0x059A7400;\r\nconst void * RTTI_Scaleform__Render__MeshStagingNode = (void *)0x059AA148;\r\nconst void * RTTI_Scaleform__Render__MeshVertexOutput = (void *)0x059AC2E8;\r\nconst void * RTTI_Scaleform__Render__MetaImage = (void *)0x059A3C48;\r\nconst void * RTTI_Scaleform__Render__MorphInterpolator = (void *)0x059A75D0;\r\nconst void * RTTI_Scaleform__Render__MorphShapeData = (void *)0x059A7478;\r\nconst void * RTTI_Scaleform__Render__OrigScale9ParentState__Interface = (void *)0x059A8BB0;\r\nconst void * RTTI_Scaleform__Render__PNG__FileReader = (void *)0x059ABEA0;\r\nconst void * RTTI_Scaleform__Render__PNG__FileWriter = (void *)0x059ABF58;\r\nconst void * RTTI_Scaleform__Render__PNG__Input = (void *)0x059AC008;\r\nconst void * RTTI_Scaleform__Render__PNG__LibPNGInput = (void *)0x059AC040;\r\nconst void * RTTI_Scaleform__Render__PNG__MemoryBufferImage = (void *)0x059AC078;\r\nconst void * RTTI_Scaleform__Render__PNG__PNGFileImageSource = (void *)0x059AC0B8;\r\nconst void * RTTI_Scaleform__Render__Primitive = (void *)0x059AA300;\r\nconst void * RTTI_Scaleform__Render__PrimitiveBundle = (void *)0x059AAE48;\r\nconst void * RTTI_Scaleform__Render__PrimitiveFill = (void *)0x059AA200;\r\nconst void * RTTI_Scaleform__Render__PrimitiveFillManager = (void *)0x059A82D0;\r\nconst void * RTTI_Scaleform__Render__ProfileModifier = (void *)0x059A83C0;\r\nconst void * RTTI_Scaleform__Render__ProfileViews = (void *)0x059A8430;\r\nconst void * RTTI_Scaleform__Render__ProjectionMatrix3DBundle = (void *)0x059AAFB0;\r\nconst void * RTTI_Scaleform__Render__ProjectionMatrix3DEffect = (void *)0x059ABA90;\r\nconst void * RTTI_Scaleform__Render__ProjectionMatrix3DPrimitive = (void *)0x059AACB0;\r\nconst void * RTTI_Scaleform__Render__RBGenericImpl__DepthStencilBuffer = (void *)0x059BD430;\r\nconst void * RTTI_Scaleform__Render__RBGenericImpl__RenderBufferManager = (void *)0x059BD2F0;\r\nconst void * RTTI_Scaleform__Render__RBGenericImpl__RenderTarget = (void *)0x059BD340;\r\nconst void * RTTI_Scaleform__Render__Rasterizer = (void *)0x059AC278;\r\nconst void * RTTI_Scaleform__Render__RawImage = (void *)0x059A3C80;\r\nconst void * RTTI_Scaleform__Render__RenderBuffer = (void *)0x05D30E68;\r\nconst void * RTTI_Scaleform__Render__RenderBufferManager = (void *)0x059BD208;\r\nconst void * RTTI_Scaleform__Render__RenderEvents = (void *)0x05D46250;\r\nconst void * RTTI_Scaleform__Render__RenderQueueItem__Interface = (void *)0x059A81A0;\r\nconst void * RTTI_Scaleform__Render__RenderSync = (void *)0x05D4ED80;\r\nconst void * RTTI_Scaleform__Render__RenderTarget = (void *)0x059BD2B0;\r\nconst void * RTTI_Scaleform__Render__RenderTargetData = (void *)0x05D46460;\r\nconst void * RTTI_Scaleform__Render__SIF__FileReader = (void *)0x059ABD78;\r\nconst void * RTTI_Scaleform__Render__SIF__SIFFileImageSource = (void *)0x059ABE28;\r\nconst void * RTTI_Scaleform__Render__SKI_BlendMode = (void *)0x059AA960;\r\nconst void * RTTI_Scaleform__Render__SKI_ComplexPrimitive = (void *)0x059AA870;\r\nconst void * RTTI_Scaleform__Render__SKI_Filter = (void *)0x059AA998;\r\nconst void * RTTI_Scaleform__Render__SKI_MaskEnd = (void *)0x059AA8E8;\r\nconst void * RTTI_Scaleform__Render__SKI_MaskEnd__RQII_EndMask = (void *)0x059AA920;\r\nconst void * RTTI_Scaleform__Render__SKI_MaskStart = (void *)0x059AA8B0;\r\nconst void * RTTI_Scaleform__Render__SKI_Primitive = (void *)0x059AA838;\r\nconst void * RTTI_Scaleform__Render__SKI_ProjectionMatrix3D = (void *)0x059AAA08;\r\nconst void * RTTI_Scaleform__Render__SKI_TextPrimitive = (void *)0x059AC960;\r\nconst void * RTTI_Scaleform__Render__SKI_UserData = (void *)0x059AAA48;\r\nconst void * RTTI_Scaleform__Render__SKI_ViewMatrix3D = (void *)0x059AA9D0;\r\nconst void * RTTI_Scaleform__Render__Scale9GridData = (void *)0x059A76D0;\r\nconst void * RTTI_Scaleform__Render__Scale9GridInfo = (void *)0x059A91F0;\r\nconst void * RTTI_Scaleform__Render__Scale9GridRect = (void *)0x059A4C58;\r\nconst void * RTTI_Scaleform__Render__ShadowFilter = (void *)0x059A8D70;\r\nconst void * RTTI_Scaleform__Render__ShapeDataFloat = (void *)0x059A3770;\r\nconst void * RTTI_Scaleform__Render__ShapeDataFloatMP = (void *)0x059A91B8;\r\nconst void * RTTI_Scaleform__Render__ShapeMeshProvider = (void *)0x059A7590;\r\nconst void * RTTI_Scaleform__Render__SortKeyInterface = (void *)0x059AA7B8;\r\nconst void * RTTI_Scaleform__Render__StateData__Interface = (void *)0x059A4178;\r\nconst void * RTTI_Scaleform__Render__StateData__Interface_RefCountImpl = (void *)0x059A8B20;\r\nconst void * RTTI_Scaleform__Render__StateData__Interface_Value = (void *)0x059A8AD0;\r\nconst void * RTTI_Scaleform__Render__StrokeScaler = (void *)0x059AB6D0;\r\nconst void * RTTI_Scaleform__Render__StrokeSorter = (void *)0x059AA500;\r\nconst void * RTTI_Scaleform__Render__Stroker = (void *)0x059AA498;\r\nconst void * RTTI_Scaleform__Render__StrokerAA = (void *)0x059AA538;\r\nconst void * RTTI_Scaleform__Render__SubImage = (void *)0x059A3CB0;\r\nconst void * RTTI_Scaleform__Render__SystemVertexFormat = (void *)0x059AA5A8;\r\nconst void * RTTI_Scaleform__Render__TGA__FileReader = (void *)0x059ABC80;\r\nconst void * RTTI_Scaleform__Render__TGA__TGAFileImageSource = (void *)0x059ABD38;\r\nconst void * RTTI_Scaleform__Render__TessBase = (void *)0x059A8468;\r\nconst void * RTTI_Scaleform__Render__Tessellator = (void *)0x059AA460;\r\nconst void * RTTI_Scaleform__Render__TextLayerPrimitive = (void *)0x059AC9E0;\r\nconst void * RTTI_Scaleform__Render__TextLayout = (void *)0x059AC360;\r\nconst void * RTTI_Scaleform__Render__TextMeshProvider = (void *)0x059AC788;\r\nconst void * RTTI_Scaleform__Render__TextPrimitiveBundle = (void *)0x059AC9A0;\r\nconst void * RTTI_Scaleform__Render__Text__Allocator = (void *)0x059A9388;\r\nconst void * RTTI_Scaleform__Render__Text__Allocator__TextFormatVisitor = (void *)0x059AD9D0;\r\nconst void * RTTI_Scaleform__Render__Text__DocView = (void *)0x059AC4C0;\r\nconst void * RTTI_Scaleform__Render__Text__DocView__DocumentText = (void *)0x059AC560;\r\nconst void * RTTI_Scaleform__Render__Text__EditorKitBase = (void *)0x059AC668;\r\nconst void * RTTI_Scaleform__Render__Text__FontHandle = (void *)0x059A7AE8;\r\nconst void * RTTI_Scaleform__Render__Text__FontManagerBase = (void *)0x059A7B78;\r\nconst void * RTTI_Scaleform__Render__Text__HTMLImageTagDesc = (void *)0x059AC920;\r\nconst void * RTTI_Scaleform__Render__Text__ImageDesc = (void *)0x059AC880;\r\nconst void * RTTI_Scaleform__Render__Text__StyleManagerBase = (void *)0x059B9040;\r\nconst void * RTTI_Scaleform__Render__Text__StyledText = (void *)0x059ABB40;\r\nconst void * RTTI_Scaleform__Render__Text__TextFilter = (void *)0x059AB028;\r\nconst void * RTTI_Scaleform__Render__Texture = (void *)0x05D46988;\r\nconst void * RTTI_Scaleform__Render__TextureFormat = (void *)0x05D46A58;\r\nconst void * RTTI_Scaleform__Render__TextureGlyph = (void *)0x059A85A0;\r\nconst void * RTTI_Scaleform__Render__TextureImage = (void *)0x05CD5CF0;\r\nconst void * RTTI_Scaleform__Render__TextureManager = (void *)0x05D467C8;\r\nconst void * RTTI_Scaleform__Render__TextureManagerLocks = (void *)0x059A3A88;\r\nconst void * RTTI_Scaleform__Render__TextureManager__ServiceCommand = (void *)0x059A3C00;\r\nconst void * RTTI_Scaleform__Render__ThreadCommandQueue = (void *)0x05D30EA0;\r\nconst void * RTTI_Scaleform__Render__TransformerBase = (void *)0x059A7440;\r\nconst void * RTTI_Scaleform__Render__TreeCacheContainer = (void *)0x059A4EA0;\r\nconst void * RTTI_Scaleform__Render__TreeCacheMeshBase = (void *)0x059A77A8;\r\nconst void * RTTI_Scaleform__Render__TreeCacheNode = (void *)0x059A4EE0;\r\nconst void * RTTI_Scaleform__Render__TreeCacheRoot = (void *)0x059A8568;\r\nconst void * RTTI_Scaleform__Render__TreeCacheShape = (void *)0x059A77E8;\r\nconst void * RTTI_Scaleform__Render__TreeCacheShapeLayer = (void *)0x059A7768;\r\nconst void * RTTI_Scaleform__Render__TreeCacheText = (void *)0x059AC848;\r\nconst void * RTTI_Scaleform__Render__TreeContainer__NodeData = (void *)0x059A34C0;\r\nconst void * RTTI_Scaleform__Render__TreeNode__NodeData = (void *)0x059A3480;\r\nconst void * RTTI_Scaleform__Render__TreeRoot__NodeData = (void *)0x059A3588;\r\nconst void * RTTI_Scaleform__Render__TreeShape__NodeData = (void *)0x059A3828;\r\nconst void * RTTI_Scaleform__Render__TreeText__NodeData = (void *)0x059AC3F8;\r\nconst void * RTTI_Scaleform__Render__UserDataBundle = (void *)0x059AAFF0;\r\nconst void * RTTI_Scaleform__Render__UserDataEffect = (void *)0x059ABB08;\r\nconst void * RTTI_Scaleform__Render__UserDataPrimitive = (void *)0x059AAD68;\r\nconst void * RTTI_Scaleform__Render__UserDataState__Data = (void *)0x059A4DF8;\r\nconst void * RTTI_Scaleform__Render__VectorGlyphShape = (void *)0x059AB608;\r\nconst void * RTTI_Scaleform__Render__VertexOutput = (void *)0x059AC2B0;\r\nconst void * RTTI_Scaleform__Render__VertexPath = (void *)0x059A8498;\r\nconst void * RTTI_Scaleform__Render__ViewMatrix3DBundle = (void *)0x059AAF68;\r\nconst void * RTTI_Scaleform__Render__ViewMatrix3DEffect = (void *)0x059ABA48;\r\nconst void * RTTI_Scaleform__Render__ViewMatrix3DPrimitive = (void *)0x059AAC08;\r\nconst void * RTTI_Scaleform__Render__WrapperImageSource = (void *)0x059A6F98;\r\nconst void * RTTI_Scaleform__RepeatFormatter = (void *)0x059A8058;\r\nconst void * RTTI_Scaleform__ResourceFormatter = (void *)0x059A7FF0;\r\nconst void * RTTI_Scaleform__Semaphore = (void *)0x059A3D80;\r\nconst void * RTTI_Scaleform__SemaphoreWaitableIncrement = (void *)0x059A3DB0;\r\nconst void * RTTI_Scaleform__StrFormatter = (void *)0x059A7F00;\r\nconst void * RTTI_Scaleform__String__InitStruct = (void *)0x059A30F8;\r\nconst void * RTTI_Scaleform__SwitchFormatter = (void *)0x059A8028;\r\nconst void * RTTI_Scaleform__SysAllocBase = (void *)0x05B8C8E0;\r\nconst void * RTTI_Scaleform__SysAllocMalloc = (void *)0x05B8C878;\r\nconst void * RTTI_Scaleform__SysAllocMapper = (void *)0x059BAED8;\r\nconst void * RTTI_Scaleform__SysAllocStatic = (void *)0x059A3E88;\r\nconst void * RTTI_Scaleform__SysFile = (void *)0x059BADA0;\r\nconst void * RTTI_Scaleform__SysMemMapper = (void *)0x05CD4490;\r\nconst void * RTTI_Scaleform__Thread = (void *)0x059A3EE0;\r\nconst void * RTTI_Scaleform__UnopenedFile = (void *)0x059BADC8;\r\nconst void * RTTI_Scaleform__Waitable = (void *)0x059A3CE0;\r\nconst void * RTTI_SceneNextPhaseHandler = (void *)0x05BCA2E8;\r\nconst void * RTTI_ScopeMenu = (void *)0x05B5FAA8;\r\nconst void * RTTI_ScopeMenuUtil__FadeCallback = (void *)0x05B5FAC8;\r\nconst void * RTTI_ScopeMenu__ScopeMenuDataEventShuttle = (void *)0x05B5FB00;\r\nconst void * RTTI_ScopeMenu__ScopeScalingData = (void *)0x05B5FB90;\r\nconst void * RTTI_ScopeMenu__ZoomLevelData = (void *)0x05B5FBC8;\r\nconst void * RTTI_ScrapHeap = (void *)0x05C9C990;\r\nconst void * RTTI_Script = (void *)0x05A7DE20;\r\nconst void * RTTI_ScriptEffect = (void *)0x05B80690;\r\nconst void * RTTI_ScriptedRefEffect = (void *)0x05B80738;\r\nconst void * RTTI_ScrollBar = (void *)0x05D55A50;\r\nconst void * RTTI_ScrollBar_Horizontal = (void *)0x05D55A70;\r\nconst void * RTTI_ScrollItem = (void *)0x059F62B0;\r\nconst void * RTTI_SearchPage = (void *)0x05D543E8;\r\nconst void * RTTI_SearchResultsPage = (void *)0x05D54018;\r\nconst void * RTTI_SecurityMenu = (void *)0x05B44618;\r\nconst void * RTTI_SecurityMenu_BackOutKey = (void *)0x05B44C88;\r\nconst void * RTTI_SecurityMenu_CloseMenu = (void *)0x05B44E98;\r\nconst void * RTTI_SecurityMenu_ConfirmExit = (void *)0x05B44E18;\r\nconst void * RTTI_SecurityMenu_EliminateUnusedKeys = (void *)0x05B44D90;\r\nconst void * RTTI_SecurityMenu_GetRingHint = (void *)0x05B44D08;\r\nconst void * RTTI_SecurityMenu_SelectNewKey = (void *)0x05B44A18;\r\nconst void * RTTI_SecurityMenu_TryUseKey = (void *)0x05B44F18;\r\nconst void * RTTI_SecurityMenu__SecurityMenuEventShuttle = (void *)0x05B42858;\r\nconst void * RTTI_SeenData = (void *)0x05995078;\r\nconst void * RTTI_Service = (void *)0x05AA13F8;\r\nconst void * RTTI_SetOrientNode = (void *)0x05C98958;\r\nconst void * RTTI_SetOrientNodeInstance = (void *)0x05C98980;\r\nconst void * RTTI_SetPosNode = (void *)0x05C99810;\r\nconst void * RTTI_SetPosNodeInstance = (void *)0x05C99838;\r\nconst void * RTTI_Setting = (void *)0x059C2550;\r\nconst void * RTTI_SettingsDataModel = (void *)0x05B11CA8;\r\nconst void * RTTI_SettingsDataModel__SettingsEventShuttle = (void *)0x05B11408;\r\nconst void * RTTI_SettingsPanel_CheckBoxChanged = (void *)0x05B0FE80;\r\nconst void * RTTI_SettingsPanel_ClearBinding = (void *)0x05B11EC0;\r\nconst void * RTTI_SettingsPanel_LinkClicked = (void *)0x05B11E38;\r\nconst void * RTTI_SettingsPanel_OpenCategory = (void *)0x05B0FDF0;\r\nconst void * RTTI_SettingsPanel_OpenSettings = (void *)0x05B0FD60;\r\nconst void * RTTI_SettingsPanel_RemapConfirmed = (void *)0x05B11F50;\r\nconst void * RTTI_SettingsPanel_RemapMode = (void *)0x05B102B8;\r\nconst void * RTTI_SettingsPanel_ResetToDefaults = (void *)0x05B0FF10;\r\nconst void * RTTI_SettingsPanel_SaveControls = (void *)0x05B100C0;\r\nconst void * RTTI_SettingsPanel_SaveSettings = (void *)0x05B10150;\r\nconst void * RTTI_SettingsPanel_SliderChanged = (void *)0x05B0FFA0;\r\nconst void * RTTI_SettingsPanel_StepperChanged = (void *)0x05B10030;\r\nconst void * RTTI_SettingsPanel_ValidateControls = (void *)0x05B11DB0;\r\nconst void * RTTI_SetupGraphRagdollHandler = (void *)0x05BCB550;\r\nconst void * RTTI_ShaderReferenceEffect = (void *)0x05B807B0;\r\nconst void * RTTI_SharedHeapAllocator = (void *)0x05C9CB08;\r\nconst void * RTTI_ShipActionCameraState = (void *)0x05AA9518;\r\nconst void * RTTI_ShipBuilderBIEvents__ShipBuilderEventManager = (void *)0x05B824E0;\r\nconst void * RTTI_ShipBuilder_CloseAllMenus = (void *)0x059F4D88;\r\nconst void * RTTI_ShipCombatOrbitCameraState = (void *)0x05AA9910;\r\nconst void * RTTI_ShipCrewAssignData = (void *)0x05B12F68;\r\nconst void * RTTI_ShipCrewAssignData__ShipCrewAssignMenuEventShuttle = (void *)0x05B12FA0;\r\nconst void * RTTI_ShipCrewAssignMenu = (void *)0x05B45D08;\r\nconst void * RTTI_ShipCrewAssignMenu_Assign = (void *)0x05B45EA8;\r\nconst void * RTTI_ShipCrewAssignMenu_Unassign = (void *)0x05B45E28;\r\nconst void * RTTI_ShipCrewData = (void *)0x05B13340;\r\nconst void * RTTI_ShipCrewData__ShipCrewMenuEventShuttle = (void *)0x05B130C8;\r\nconst void * RTTI_ShipCrewMenu = (void *)0x05B45F30;\r\nconst void * RTTI_ShipCrewMenu_Close = (void *)0x05B46040;\r\nconst void * RTTI_ShipCrewMenu_OpenAssignMenu = (void *)0x05B136A8;\r\nconst void * RTTI_ShipCrewMenu_SetSort = (void *)0x05B13778;\r\nconst void * RTTI_ShipCrewMenu_ViewedItem = (void *)0x05B46070;\r\nconst void * RTTI_ShipEditor_ChangeModuleCategory = (void *)0x059F1240;\r\nconst void * RTTI_ShipEditor_OnColorPickerControlChanged = (void *)0x059D0248;\r\nconst void * RTTI_ShipEditor_OnColorPickerTabChanged = (void *)0x059D0388;\r\nconst void * RTTI_ShipEditor_OnColorSliderMouseInput = (void *)0x059D01A8;\r\nconst void * RTTI_ShipEditor_OnExitConfirmCancel = (void *)0x059ED8D0;\r\nconst void * RTTI_ShipEditor_OnExitConfirmExit = (void *)0x059ED960;\r\nconst void * RTTI_ShipEditor_OnExitConfirmSaveAndExit = (void *)0x059ED838;\r\nconst void * RTTI_ShipEditor_OnFlightCheckTabChanged = (void *)0x059EE718;\r\nconst void * RTTI_ShipEditor_OnHintButtonActivated = (void *)0x059F4560;\r\nconst void * RTTI_ShipEditor_OnRecentColorSwatchClicked = (void *)0x059D02E8;\r\nconst void * RTTI_ShipEditor_OnRenameEndEditText = (void *)0x059EFD70;\r\nconst void * RTTI_ShipEditor_OnRenameInputCancelled = (void *)0x059EFDA8;\r\nconst void * RTTI_ShipEditor_OnWeaponGroupChanged = (void *)0x059EE680;\r\nconst void * RTTI_ShipEditor_PreviewShipPart = (void *)0x059F12D0;\r\nconst void * RTTI_ShipEditor_PreviewUpgrade = (void *)0x059CEC08;\r\nconst void * RTTI_ShipEditor_RemoveAll3D = (void *)0x059F45E8;\r\nconst void * RTTI_ShipEditor_SelectedShipPart = (void *)0x059F1308;\r\nconst void * RTTI_ShipEditor_SelectedUpgrade = (void *)0x059CEC90;\r\nconst void * RTTI_ShipEditor_SystemSelected = (void *)0x059CE040;\r\nconst void * RTTI_ShipFarTravelCameraState = (void *)0x05AA9948;\r\nconst void * RTTI_ShipHudDataModel = (void *)0x05B1ADB8;\r\nconst void * RTTI_ShipHudDataModel__ShipHudEventShuttle = (void *)0x05B1BF58;\r\nconst void * RTTI_ShipHudQuickContainer_TransferItem = (void *)0x05B632B8;\r\nconst void * RTTI_ShipHudQuickContainer_TransferMenu = (void *)0x05B1B580;\r\nconst void * RTTI_ShipHud_AbortJump = (void *)0x05B63358;\r\nconst void * RTTI_ShipHud_Activate = (void *)0x05B1B518;\r\nconst void * RTTI_ShipHud_BodyViewMarkerDimensions = (void *)0x05B1AFC8;\r\nconst void * RTTI_ShipHud_ChangeComponentSelection = (void *)0x05B1B770;\r\nconst void * RTTI_ShipHud_CloseMenu = (void *)0x05B1B888;\r\nconst void * RTTI_ShipHud_Deselect = (void *)0x05B1B678;\r\nconst void * RTTI_ShipHud_DockRequested = (void *)0x05B63630;\r\nconst void * RTTI_ShipHud_FarTravel = (void *)0x05B1AED8;\r\nconst void * RTTI_ShipHud_HailAccepted = (void *)0x05B1B248;\r\nconst void * RTTI_ShipHud_HailCancelled = (void *)0x05B1B3B8;\r\nconst void * RTTI_ShipHud_HailShip = (void *)0x05B635C8;\r\nconst void * RTTI_ShipHud_JumpToQuestMarker = (void *)0x05B1AF48;\r\nconst void * RTTI_ShipHud_Land = (void *)0x05B1B448;\r\nconst void * RTTI_ShipHud_LandingMarkerMap = (void *)0x05B1B338;\r\nconst void * RTTI_ShipHud_Map = (void *)0x05B1B4B0;\r\nconst void * RTTI_ShipHud_OnMonocleToggle = (void *)0x05B1B2C8;\r\nconst void * RTTI_ShipHud_OpenPhotoMode = (void *)0x05B1B0D0;\r\nconst void * RTTI_ShipHud_Repair = (void *)0x05B1AE70;\r\nconst void * RTTI_ShipHud_SetTargetMode = (void *)0x05B1B148;\r\nconst void * RTTI_ShipHud_Target = (void *)0x05B1B610;\r\nconst void * RTTI_ShipHud_TargetShipSystem = (void *)0x05B1B1C8;\r\nconst void * RTTI_ShipHud_UntargetShipSystem = (void *)0x05B1B048;\r\nconst void * RTTI_ShipHud_UpdateComponentPower = (void *)0x05B1B6E0;\r\nconst void * RTTI_ShipHud_UpdateTargetPanelRect = (void *)0x05B60980;\r\nconst void * RTTI_ShipRefuelMenu = (void *)0x05B46818;\r\nconst void * RTTI_ShipRefuelMenuDataModel = (void *)0x05B1CFB8;\r\nconst void * RTTI_ShipRefuelMenuDataModel__ShipRefuelMenuEventShuttle = (void *)0x05B1CFF0;\r\nconst void * RTTI_ShipTargetingCameraState = (void *)0x05AA9978;\r\nconst void * RTTI_ShowSubsegmentHandler = (void *)0x05BCB520;\r\nconst void * RTTI_SideBar = (void *)0x05D53140;\r\nconst void * RTTI_SimpleAnimationGraphManagerHolder = (void *)0x059F8B98;\r\nconst void * RTTI_SimpleAnimationGraphManagerLoadingTask = (void *)0x05AA3710;\r\nconst void * RTTI_SingleBoneIKNode = (void *)0x05C98D30;\r\nconst void * RTTI_SingleBoneIKNodeInstance = (void *)0x05C98D58;\r\nconst void * RTTI_SitWaitMenu = (void *)0x05C55260;\r\nconst void * RTTI_Sizing__mpBoxSizer = (void *)0x05D55350;\r\nconst void * RTTI_Sizing__mpButtonSizer = (void *)0x059A11E0;\r\nconst void * RTTI_Sizing__mpSizer = (void *)0x05D55328;\r\nconst void * RTTI_SkillsMenu = (void *)0x05B48200;\r\nconst void * RTTI_SkillsMenu_Accept = (void *)0x05B48830;\r\nconst void * RTTI_SkillsMenu_AddPatch = (void *)0x05B488A0;\r\nconst void * RTTI_SkillsMenu_Cancel = (void *)0x05B48808;\r\nconst void * RTTI_SkillsMenu_ChangeCursorVisibility = (void *)0x05B48910;\r\nconst void * RTTI_SkillsMenu_SaveLastCategory = (void *)0x05B485C0;\r\nconst void * RTTI_SkillsMenu__SkillsMenuEventShuttle = (void *)0x05B47D38;\r\nconst void * RTTI_SkinAttach = (void *)0x05CC0AA8;\r\nconst void * RTTI_Sky = (void *)0x05A871F0;\r\nconst void * RTTI_SkyEffectController = (void *)0x05A867A0;\r\nconst void * RTTI_SleepWaitMenu = (void *)0x05C56088;\r\nconst void * RTTI_SleepWaitMenu_InterruptRest = (void *)0x05C56008;\r\nconst void * RTTI_SleepWaitMenu_StartRest = (void *)0x05C56218;\r\nconst void * RTTI_SleepWaitMenu__SleepWaitMenuEventShuttle = (void *)0x05C562E8;\r\nconst void * RTTI_SlideStartHandler = (void *)0x05BCA288;\r\nconst void * RTTI_SlowTimeEffect = (void *)0x05B80828;\r\nconst void * RTTI_SneakStateChangeHandler = (void *)0x05BCF048;\r\nconst void * RTTI_SortFilter = (void *)0x05D54DF8;\r\nconst void * RTTI_SoulTrapEffect = (void *)0x05B80850;\r\nconst void * RTTI_SpaceComponentViewAccessWrite = (void *)0x05A50908;\r\nconst void * RTTI_SpaceCruise__CruiseEventHandler = (void *)0x05AE8CC0;\r\nconst void * RTTI_SpaceCruise__NearOrbitalCruise = (void *)0x05AE8C88;\r\nconst void * RTTI_SpaceCruise__NearPlanetCruise = (void *)0x05AE8D30;\r\nconst void * RTTI_SpaceCruise__OutsidePlanetOrbitalCruise = (void *)0x05AE8D68;\r\nconst void * RTTI_SpaceCruise__PlanetAndMoonCruise = (void *)0x05AE8CF8;\r\nconst void * RTTI_SpaceshipAIComponentEventHandler = (void *)0x05C7B420;\r\nconst void * RTTI_SpaceshipBIEvents__EventSink = (void *)0x05B81F88;\r\nconst void * RTTI_SpaceshipBoostPart = (void *)0x05C7CA78;\r\nconst void * RTTI_SpaceshipDockingFinishedHandler = (void *)0x05BCA520;\r\nconst void * RTTI_SpaceshipEditor__HangarModeState_Null = (void *)0x059F4AE8;\r\nconst void * RTTI_SpaceshipEditor__HangarModeState_ShipInspect = (void *)0x059F4B70;\r\nconst void * RTTI_SpaceshipEditor__HangarModeState_ShipSelection = (void *)0x05AE7A90;\r\nconst void * RTTI_SpaceshipEditor__HangarModeState_ShipSelection__HangarModeStateShipSelectionEventShuttle = (void *)0x05AE7E80;\r\nconst void * RTTI_SpaceshipEditor__IModuleModeSubState = (void *)0x059F1340;\r\nconst void * RTTI_SpaceshipEditor__IVehicleHangarModeSubState = (void *)0x059F49B0;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Add = (void *)0x059F11B0;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Add__ModuleModeStateAddEventShuttle = (void *)0x059F0F20;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Color = (void *)0x059F1978;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Color__ModuleModeState_ColorEventShuttle = (void *)0x059F18C0;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Edit = (void *)0x059F4E38;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Empty = (void *)0x059F4DF8;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Null = (void *)0x059F4EC0;\r\nconst void * RTTI_SpaceshipEditor__ModuleModeState_Selection = (void *)0x059F4E80;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Exiting = (void *)0x059ED798;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Exiting__ShipBuilderState_ExitingEventShuttle = (void *)0x059EDA50;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_FlightCheck = (void *)0x059EE5E0;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_FlightCheck__ShipBuilderState_FlightCheckEventShuttle = (void *)0x059EE880;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_HangarMode = (void *)0x059F4C20;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Loading = (void *)0x059F4F98;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_ModuleMode = (void *)0x059EF180;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Null = (void *)0x059F4D48;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Popup = (void *)0x059F4D08;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Rename = (void *)0x059EFCE0;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_Rename__ShipBuilderState_RenameEventShuttle = (void *)0x059EFFD0;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_UpgradeMode = (void *)0x059CD540;\r\nconst void * RTTI_SpaceshipEditor__ShipBuilderState_VehicleHangarMode = (void *)0x059F4A00;\r\nconst void * RTTI_SpaceshipEditor__ShipHangarData = (void *)0x05AD97C0;\r\nconst void * RTTI_SpaceshipEditor__ShipHangarData__ShipHangarEventShuttle = (void *)0x05AD9800;\r\nconst void * RTTI_SpaceshipEditor__Spaceship3DManager = (void *)0x059F2820;\r\nconst void * RTTI_SpaceshipEditor__Spaceship3DManager__Spaceship3DManagerEventShuttle = (void *)0x059F26B0;\r\nconst void * RTTI_SpaceshipEditor__SpaceshipEditorColorWidget = (void *)0x059D05B0;\r\nconst void * RTTI_SpaceshipEditor__SpaceshipEditorGame3DManager = (void *)0x059F2890;\r\nconst void * RTTI_SpaceshipEditor__SpaceshipEditorMenu = (void *)0x059F5018;\r\nconst void * RTTI_SpaceshipEditor__SpaceshipEditorMenu__ShipBuilderEventShuttle = (void *)0x059F4310;\r\nconst void * RTTI_SpaceshipEditor__SpaceshipEditorUIColorData = (void *)0x059F1B30;\r\nconst void * RTTI_SpaceshipEditor__UpgradeModeState_Null = (void *)0x059F4DB8;\r\nconst void * RTTI_SpaceshipEditor__UpgradeModeState_Replace = (void *)0x059CEF28;\r\nconst void * RTTI_SpaceshipEditor__UpgradeModeState_Replace__UpgradeModeStateRepalceEventShuttle = (void *)0x059CED80;\r\nconst void * RTTI_SpaceshipEditor__UpgradeModeState_SystemSelect = (void *)0x059CDF80;\r\nconst void * RTTI_SpaceshipEditor__UpgradeModeState_SystemSelect__UpgradeModeStateEmptyEventShuttle = (void *)0x059CDE70;\r\nconst void * RTTI_SpaceshipEditor__VehicleHangarModeState_ColorVehicle = (void *)0x05AE8560;\r\nconst void * RTTI_SpaceshipEditor__VehicleHangarModeState_ColorVehicle__VehicleHangarModeState_ColorVehicleEventShuttle = (void *)0x05AE85B0;\r\nconst void * RTTI_SpaceshipEditor__VehicleHangarModeState_Null = (void *)0x059F4AA0;\r\nconst void * RTTI_SpaceshipEditor__VehicleHangarModeState_VehicleSelection = (void *)0x05AE87B0;\r\nconst void * RTTI_SpaceshipEditor__VehicleHangarModeState_VehicleUnlock = (void *)0x059F4A50;\r\nconst void * RTTI_SpaceshipEffectsUtil__EventSink = (void *)0x05C7BB58;\r\nconst void * RTTI_SpaceshipEquipmentComponent = (void *)0x05C7CAA8;\r\nconst void * RTTI_SpaceshipEquipmentUtils__SpaceshipEquipmentEventHandler = (void *)0x05C7CBA0;\r\nconst void * RTTI_SpaceshipGravDrivePart = (void *)0x05C7C9C8;\r\nconst void * RTTI_SpaceshipHudMenu = (void *)0x05B62FF8;\r\nconst void * RTTI_SpaceshipLandingFinishedFailsafeHandler = (void *)0x05BCB390;\r\nconst void * RTTI_SpaceshipLandingFinishedHandler = (void *)0x05BCB358;\r\nconst void * RTTI_SpaceshipLinkedCell__ExteriorShipCell = (void *)0x05A543A8;\r\nconst void * RTTI_SpaceshipLinkedCell__InteriorShipCell = (void *)0x05A543E8;\r\nconst void * RTTI_SpaceshipLinkedCell__ShipCell = (void *)0x05A54370;\r\nconst void * RTTI_SpaceshipMobilityPart = (void *)0x05C7CA48;\r\nconst void * RTTI_SpaceshipPart = (void *)0x05C7C9F8;\r\nconst void * RTTI_SpaceshipPlayerSounds = (void *)0x05C7FC08;\r\nconst void * RTTI_SpaceshipShieldPart = (void *)0x05C7C998;\r\nconst void * RTTI_SpaceshipSoundsUtils__SpaceshipSoundsEventHandler = (void *)0x05C7FD60;\r\nconst void * RTTI_SpaceshipTakeOffFinishedHandler = (void *)0x05BCB408;\r\nconst void * RTTI_SpaceshipUndockingFinishedHandler = (void *)0x05BCA558;\r\nconst void * RTTI_SpaceshipWeapon = (void *)0x05C7CA20;\r\nconst void * RTTI_Spaceship__InstanceData = (void *)0x05A55C18;\r\nconst void * RTTI_Spaceship__LadderSwapHandler = (void *)0x05A55910;\r\nconst void * RTTI_Spaceship__ShipProxyCollisionListener = (void *)0x05A59558;\r\nconst void * RTTI_Spaceship__TargetingMode = (void *)0x05B9F0A8;\r\nconst void * RTTI_SpawnHazardEffect = (void *)0x05BA1F88;\r\nconst void * RTTI_SpawnOnDestroyUtils__SpawnOnDestroyEventHandler = (void *)0x059E4AF0;\r\nconst void * RTTI_SpecificItemCollector = (void *)0x05A85AD0;\r\nconst void * RTTI_SpectatorPackage = (void *)0x05998280;\r\nconst void * RTTI_SpeedScale = (void *)0x05C99708;\r\nconst void * RTTI_SpeedScaleInstance = (void *)0x05C99730;\r\nconst void * RTTI_SpellItem = (void *)0x059F6250;\r\nconst void * RTTI_SpringBoneData = (void *)0x05A438C0;\r\nconst void * RTTI_SpringBoneInstance = (void *)0x05A438E8;\r\nconst void * RTTI_StaggerEffect = (void *)0x05B7F020;\r\nconst void * RTTI_StaggerMeter = (void *)0x05C95388;\r\nconst void * RTTI_StaggerMeterInstance = (void *)0x05C98C68;\r\nconst void * RTTI_StaggeredStopHandler = (void *)0x05BCE570;\r\nconst void * RTTI_StarField__LoadNodeBarrier = (void *)0x05A59198;\r\nconst void * RTTI_StarField__ModuleState = (void *)0x05A590B8;\r\nconst void * RTTI_StarField__SpaceReference__RetargetExterior3d = (void *)0x05A59150;\r\nconst void * RTTI_StarMapMenu_ExecuteRoute = (void *)0x05B6CC58;\r\nconst void * RTTI_StarMapMenu_Galaxy_FocusSystem = (void *)0x05B6A258;\r\nconst void * RTTI_StarMapMenu_LandingInputInProgress = (void *)0x05B66EB0;\r\nconst void * RTTI_StarMapMenu_MarkerGroupContainerVisibilityChanged = (void *)0x05B66BA0;\r\nconst void * RTTI_StarMapMenu_MarkerGroupEntryClicked = (void *)0x05B66C50;\r\nconst void * RTTI_StarMapMenu_MarkerGroupEntryHoverChanged = (void *)0x05B66CE8;\r\nconst void * RTTI_StarMapMenu_OnCancel = (void *)0x05B6C998;\r\nconst void * RTTI_StarMapMenu_OnClearRoute = (void *)0x05B6CBD8;\r\nconst void * RTTI_StarMapMenu_OnExitStarMap = (void *)0x05B6CD60;\r\nconst void * RTTI_StarMapMenu_OnGalaxyViewInitialized = (void *)0x05B6A1B8;\r\nconst void * RTTI_StarMapMenu_OnHintButtonClicked = (void *)0x05B6CCD8;\r\nconst void * RTTI_StarMapMenu_OnOutpostEntrySelected = (void *)0x05B6CA98;\r\nconst void * RTTI_StarMapMenu_QuickSelectChange = (void *)0x05B683A8;\r\nconst void * RTTI_StarMapMenu_ReadyToClose = (void *)0x05B6CA18;\r\nconst void * RTTI_StarMapMenu_ScanPlanet = (void *)0x05B6C658;\r\nconst void * RTTI_StarMapMenu_SelectedLandingSite = (void *)0x05B66D88;\r\nconst void * RTTI_StarMapMenu_SelectedLandingSiteFailed = (void *)0x05B66900;\r\nconst void * RTTI_StarMapMenu_ShowRealCursor = (void *)0x05B6C580;\r\nconst void * RTTI_StarMap__BodyInfoToUI = (void *)0x05ADD1C8;\r\nconst void * RTTI_StarMap__BodyInspectState = (void *)0x05B66428;\r\nconst void * RTTI_StarMap__BodyInspectState__BodyInspectStateEventShuttle = (void *)0x05B66320;\r\nconst void * RTTI_StarMap__ConfirmCustomMarkerActionCallback = (void *)0x05B6E6B0;\r\nconst void * RTTI_StarMap__DelayCommand = (void *)0x05B64490;\r\nconst void * RTTI_StarMap__Galaxy3DScene = (void *)0x05B636D8;\r\nconst void * RTTI_StarMap__GalaxyState = (void *)0x05B68288;\r\nconst void * RTTI_StarMap__GalaxyState__GalaxyStateEventShuttle = (void *)0x05B67E70;\r\nconst void * RTTI_StarMap__IStarMapState = (void *)0x05B65FA8;\r\nconst void * RTTI_StarMap__PlanetInfoToUI = (void *)0x05ADD198;\r\nconst void * RTTI_StarMap__SelectBodyEventHelper = (void *)0x05B9CB08;\r\nconst void * RTTI_StarMap__StarMapMenu = (void *)0x05B6CFB0;\r\nconst void * RTTI_StarMap__StarMapMenuDataModel = (void *)0x05B6A348;\r\nconst void * RTTI_StarMap__StarMapMenuDataModel__StarMapMenuEventShuttle = (void *)0x05B69D70;\r\nconst void * RTTI_StarMap__StarMapMenu__StarMapMenuEventShuttle = (void *)0x05B6C950;\r\nconst void * RTTI_StarMap__StarMapSystemMobile = (void *)0x05B6D2D0;\r\nconst void * RTTI_StarMap__SurfaceMap3DScene = (void *)0x05AEB950;\r\nconst void * RTTI_StarMap__SurfaceMap3DScene__Scene = (void *)0x05AEB9C0;\r\nconst void * RTTI_StarMap__SurfaceMap3DScene__TerrainScene = (void *)0x05AEB980;\r\nconst void * RTTI_StarMap__SurfaceMapMaterialController__DefaultMaterialApplicator = (void *)0x05AEBDA0;\r\nconst void * RTTI_StarMap__SurfaceMapMaterialController__MaterialApplicator = (void *)0x05AEBD50;\r\nconst void * RTTI_StarMap__SurfaceMapMaterialController__SpecializedMaterialApplicator = (void *)0x05AEBE00;\r\nconst void * RTTI_StarMap__SurfaceMapState = (void *)0x05B6E6F0;\r\nconst void * RTTI_StarMap__SurfaceMapState__SurfaceMapStateEventShuttle = (void *)0x05B6E860;\r\nconst void * RTTI_StarMap__SurfaceMapUIPlanetModule = (void *)0x05B6F070;\r\nconst void * RTTI_StarMap__SystemBodyInfoToUI = (void *)0x05ADD440;\r\nconst void * RTTI_StarMap__SystemState = (void *)0x05B6F360;\r\nconst void * RTTI_StarMap__SystemState__SystemStateEventShuttle = (void *)0x05B6F0B0;\r\nconst void * RTTI_StarMap__Util__ConfirmFastTravelCallback = (void *)0x05B64530;\r\nconst void * RTTI_StarMap__Util__ConfirmGravJumpPlotCallback = (void *)0x05B64570;\r\nconst void * RTTI_StartFloatingHandler = (void *)0x05BCF4A8;\r\nconst void * RTTI_StartPCapVoiceHandler = (void *)0x05BCB118;\r\nconst void * RTTI_StartSecurityMinigameHandler = (void *)0x05BCB478;\r\nconst void * RTTI_StateConfirmingAction = (void *)0x05B03868;\r\nconst void * RTTI_StateEngagmentPrompt = (void *)0x05B03930;\r\nconst void * RTTI_StateInitialLoad = (void *)0x05B03A98;\r\nconst void * RTTI_StateIntroVideo = (void *)0x05B039E8;\r\nconst void * RTTI_StateLegalScreen = (void *)0x05B03A10;\r\nconst void * RTTI_StateLoadPanelInteract = (void *)0x05B03988;\r\nconst void * RTTI_StateMachine = (void *)0x05C98858;\r\nconst void * RTTI_StateMachineInstance = (void *)0x05C98828;\r\nconst void * RTTI_StateMainPanelInteract = (void *)0x05B039B8;\r\nconst void * RTTI_StateNewContentPrompt = (void *)0x05B03838;\r\nconst void * RTTI_StateOpenFromInstallMenu = (void *)0x05B03AF0;\r\nconst void * RTTI_StateOpenFromReset = (void *)0x05B03A68;\r\nconst void * RTTI_StateOpenFromStartup = (void *)0x05B03B20;\r\nconst void * RTTI_StateOtherMenuOpen = (void *)0x05B038D0;\r\nconst void * RTTI_StatePerformingAction = (void *)0x05B03900;\r\nconst void * RTTI_StateSettingsPanelInteract = (void *)0x05B03898;\r\nconst void * RTTI_StateSplashScreen = (void *)0x05B03960;\r\nconst void * RTTI_StateVariableControl = (void *)0x05C99428;\r\nconst void * RTTI_StateVariableControlInstance = (void *)0x05C99458;\r\nconst void * RTTI_StateWaitingOnLoad = (void *)0x05B03A38;\r\nconst void * RTTI_StaticAvoidNodeManager = (void *)0x05BB8788;\r\nconst void * RTTI_StatusMenu = (void *)0x05B6FFE8;\r\nconst void * RTTI_SteamVirtualKeyboard = (void *)0x05D68250;\r\nconst void * RTTI_SteamVirtualKeyboard__CCallbackInternal_OnSteamGamepadTextInputDismissed = (void *)0x05D68440;\r\nconst void * RTTI_StimpakEffect = (void *)0x05B80878;\r\nconst void * RTTI_StopFloatingHandler = (void *)0x05BCF4D8;\r\nconst void * RTTI_StopMountCameraHandler = (void *)0x05BCF2D0;\r\nconst void * RTTI_StorageSpaceBar = (void *)0x05D556E0;\r\nconst void * RTTI_StorageTableErrorHandlerService = (void *)0x05CBD2C0;\r\nconst void * RTTI_StorageTable__AsyncTableColumnBase = (void *)0x05A3E8F8;\r\nconst void * RTTI_StorageTable__DirectColumnDataStorageInterface = (void *)0x05A3E930;\r\nconst void * RTTI_StorageTable__StorageDataBase = (void *)0x05A3DAE0;\r\nconst void * RTTI_StreamingInstallMenu = (void *)0x05B704F8;\r\nconst void * RTTI_StreamingInstallMenu__StreamingInstallEventShuttle = (void *)0x05B704B0;\r\nconst void * RTTI_StreamingInstallMenu__StreamingProgressData = (void *)0x05B70460;\r\nconst void * RTTI_StringUIValue = (void *)0x059F2860;\r\nconst void * RTTI_SubgraphAndOffsetDBData = (void *)0x05C9A478;\r\nconst void * RTTI_SubtitleManager = (void *)0x05C56528;\r\nconst void * RTTI_SummonCreatureEffect = (void *)0x05B808D8;\r\nconst void * RTTI_SummonDuplicateEffect = (void *)0x05B809B8;\r\nconst void * RTTI_SummonPlacementEffect = (void *)0x05B80908;\r\nconst void * RTTI_SupportMaterialHandler = (void *)0x05B9E990;\r\nconst void * RTTI_SurfaceMapMenu_EnablePointCloud = (void *)0x05B6E9D8;\r\nconst void * RTTI_SurfaceMapMenu_MarkerClicked = (void *)0x05B6E8B0;\r\nconst void * RTTI_SurfaceMapMenu_TryPlaceCustomMarker = (void *)0x05B6E940;\r\nconst void * RTTI_SwapGraphNode = (void *)0x05C98798;\r\nconst void * RTTI_SwapGraphNodeInstance = (void *)0x05C98768;\r\nconst void * RTTI_SwitchNode = (void *)0x05C98880;\r\nconst void * RTTI_SwitchNodeInstance = (void *)0x05C988A8;\r\nconst void * RTTI_SyncDeferDeathHandler = (void *)0x05BCB090;\r\nconst void * RTTI_SyncEarlyExitHandler = (void *)0x05BCB640;\r\nconst void * RTTI_SyncQueueObj = (void *)0x05ACE248;\r\nconst void * RTTI_TBO_InstanceData = (void *)0x05A55BF0;\r\nconst void * RTTI_TES = (void *)0x059FD690;\r\nconst void * RTTI_TESAIForm = (void *)0x05993070;\r\nconst void * RTTI_TESActorBase = (void *)0x05992AA0;\r\nconst void * RTTI_TESActorBaseData = (void *)0x05992FC8;\r\nconst void * RTTI_TESAmmo = (void *)0x05A64250;\r\nconst void * RTTI_TESAudio__ScriptedMusicState = (void *)0x05B81508;\r\nconst void * RTTI_TESBipedModelForm = (void *)0x05992F70;\r\nconst void * RTTI_TESBoundAnimObject = (void *)0x05A606F0;\r\nconst void * RTTI_TESBoundObject = (void *)0x059D4170;\r\nconst void * RTTI_TESCamera = (void *)0x05AA3958;\r\nconst void * RTTI_TESCameraState = (void *)0x05AA9280;\r\nconst void * RTTI_TESChildCell = (void *)0x05A98A58;\r\nconst void * RTTI_TESClass = (void *)0x05A82300;\r\nconst void * RTTI_TESClimate = (void *)0x05A6A450;\r\nconst void * RTTI_TESCombatStyle = (void *)0x05992AC8;\r\nconst void * RTTI_TESContainer = (void *)0x05A02E40;\r\nconst void * RTTI_TESCustomPackageData = (void *)0x05A98350;\r\nconst void * RTTI_TESDataHandler = (void *)0x05A01278;\r\nconst void * RTTI_TESDataHandlerPersistentCreatedUtil__BGSPersistentIDsForm = (void *)0x05A00DB0;\r\nconst void * RTTI_TESDataHandlerPostBuildFileListSource = (void *)0x05B9FE60;\r\nconst void * RTTI_TESDataHandler__ArchiveRegistrationListener = (void *)0x05A00F60;\r\nconst void * RTTI_TESDescription = (void *)0x059F59A0;\r\nconst void * RTTI_TESDialoguePackageData = (void *)0x05995C40;\r\nconst void * RTTI_TESEffectShader = (void *)0x05A64558;\r\nconst void * RTTI_TESEnchantableForm = (void *)0x05992F98;\r\nconst void * RTTI_TESEyes = (void *)0x05A82360;\r\nconst void * RTTI_TESFaction = (void *)0x05992BB0;\r\nconst void * RTTI_TESFile = (void *)0x05A01788;\r\nconst void * RTTI_TESFlora = (void *)0x05A64768;\r\nconst void * RTTI_TESFloraInstanceData = (void *)0x05A64788;\r\nconst void * RTTI_TESFollowPackageData = (void *)0x05A98290;\r\nconst void * RTTI_TESForm = (void *)0x059BD4B8;\r\nconst void * RTTI_TESFullName = (void *)0x059BDB40;\r\nconst void * RTTI_TESFurniture = (void *)0x05A63F78;\r\nconst void * RTTI_TESGlobal = (void *)0x05992CB8;\r\nconst void * RTTI_TESGrass = (void *)0x05A64AF0;\r\nconst void * RTTI_TESHandleForm = (void *)0x05A68870;\r\nconst void * RTTI_TESHavokUtilities__CellHeightFieldCuller = (void *)0x05A86600;\r\nconst void * RTTI_TESHealthForm = (void *)0x05993090;\r\nconst void * RTTI_TESIdleForm = (void *)0x05992110;\r\nconst void * RTTI_TESIdleManager = (void *)0x059FD2D0;\r\nconst void * RTTI_TESImageSpace = (void *)0x05992930;\r\nconst void * RTTI_TESImageSpaceModifiableForm = (void *)0x05A03AA8;\r\nconst void * RTTI_TESImageSpaceModifier = (void *)0x05995048;\r\nconst void * RTTI_TESKey = (void *)0x05992C48;\r\nconst void * RTTI_TESLandTexture = (void *)0x05A6A6B8;\r\nconst void * RTTI_TESLevCharacter = (void *)0x05A64C78;\r\nconst void * RTTI_TESLevItem = (void *)0x05A64CA0;\r\nconst void * RTTI_TESLevSpell = (void *)0x05A64DF0;\r\nconst void * RTTI_TESLeveledList = (void *)0x05992F20;\r\nconst void * RTTI_TESLoadScreen = (void *)0x05A7DD60;\r\nconst void * RTTI_TESMagicTargetForm = (void *)0x05A08A70;\r\nconst void * RTTI_TESModel = (void *)0x059E1CA8;\r\nconst void * RTTI_TESModelDB__TESAutoQueuedDependentNode = (void *)0x05A01A30;\r\nconst void * RTTI_TESModelDB__TESQueuedHandles = (void *)0x059FA468;\r\nconst void * RTTI_TESModelTri = (void *)0x05A81198;\r\nconst void * RTTI_TESNPC = (void *)0x059952B0;\r\nconst void * RTTI_TESNPCData__ChargenDataModel = (void *)0x05A5D1A8;\r\nconst void * RTTI_TESNPC__InstanceData = (void *)0x05A82F38;\r\nconst void * RTTI_TESObject = (void *)0x059D41F0;\r\nconst void * RTTI_TESObjectACTI = (void *)0x05A63E00;\r\nconst void * RTTI_TESObjectANIO = (void *)0x05A65660;\r\nconst void * RTTI_TESObjectARMA = (void *)0x05994FF0;\r\nconst void * RTTI_TESObjectARMO = (void *)0x05A65A10;\r\nconst void * RTTI_TESObjectARMOInstanceData = (void *)0x059923A8;\r\nconst void * RTTI_TESObjectBOOK = (void *)0x05A65BD0;\r\nconst void * RTTI_TESObjectCELL = (void *)0x05992050;\r\nconst void * RTTI_TESObjectCONT = (void *)0x05A65E80;\r\nconst void * RTTI_TESObjectCONT__InstanceData = (void *)0x05A65E48;\r\nconst void * RTTI_TESObjectDOOR = (void *)0x05A66768;\r\nconst void * RTTI_TESObjectLIGH = (void *)0x05A64F78;\r\nconst void * RTTI_TESObjectMISC = (void *)0x05A64BA0;\r\nconst void * RTTI_TESObjectREFR = (void *)0x05991FD8;\r\nconst void * RTTI_TESObjectREFRDef__IAliasFunctor = (void *)0x059F7F70;\r\nconst void * RTTI_TESObjectREFRDef__IAliasLinkedChildFunctor = (void *)0x059F7F30;\r\nconst void * RTTI_TESObjectREFRDef__ILinkedReferenceFunctor = (void *)0x059F7FA8;\r\nconst void * RTTI_TESObjectREFRSync__REFRSyncController = (void *)0x05A7A848;\r\nconst void * RTTI_TESObjectSTAT = (void *)0x05A61900;\r\nconst void * RTTI_TESObjectWEAP = (void *)0x05A671D0;\r\nconst void * RTTI_TESObjectWEAPInstanceData = (void *)0x05A671A0;\r\nconst void * RTTI_TESPackage = (void *)0x05992B88;\r\nconst void * RTTI_TESPackedFile = (void *)0x05A01840;\r\nconst void * RTTI_TESPlanetModel = (void *)0x05992908;\r\nconst void * RTTI_TESQuest = (void *)0x059BD7B0;\r\nconst void * RTTI_TESRace = (void *)0x05995638;\r\nconst void * RTTI_TESRaceForm = (void *)0x05992ED0;\r\nconst void * RTTI_TESRegion = (void *)0x05A50280;\r\nconst void * RTTI_TESRegionData = (void *)0x05994BA0;\r\nconst void * RTTI_TESRegionDataManager = (void *)0x05A502A0;\r\nconst void * RTTI_TESRegionDataMap = (void *)0x05A502D0;\r\nconst void * RTTI_TESRegionDataSound = (void *)0x05A502F8;\r\nconst void * RTTI_TESRegionDataWeather = (void *)0x05994B70;\r\nconst void * RTTI_TESRegionList = (void *)0x05A50328;\r\nconst void * RTTI_TESShout = (void *)0x05A80980;\r\nconst void * RTTI_TESSoulGem = (void *)0x05A67290;\r\nconst void * RTTI_TESSound = (void *)0x05A80A30;\r\nconst void * RTTI_TESSpellList = (void *)0x05992EF8;\r\nconst void * RTTI_TESTexture = (void *)0x05993180;\r\nconst void * RTTI_TESTopic = (void *)0x05992BD8;\r\nconst void * RTTI_TESTopicInfo = (void *)0x05992B60;\r\nconst void * RTTI_TESTrapListener = (void *)0x05A86750;\r\nconst void * RTTI_TESValueForm = (void *)0x059F5D98;\r\nconst void * RTTI_TESWaterForm = (void *)0x05992C90;\r\nconst void * RTTI_TESWaterNormals = (void *)0x05AA1F80;\r\nconst void * RTTI_TESWaterObject = (void *)0x05AA1FD0;\r\nconst void * RTTI_TESWaterSystem = (void *)0x05AA1FA8;\r\nconst void * RTTI_TESWeather = (void *)0x05A7A928;\r\nconst void * RTTI_TESWeightForm = (void *)0x059F5A20;\r\nconst void * RTTI_TESWordOfPower = (void *)0x05A80AF8;\r\nconst void * RTTI_TESWorldSpace = (void *)0x05994B48;\r\nconst void * RTTI_TES__PostGridLoadNode = (void *)0x059FD660;\r\nconst void * RTTI_TagField = (void *)0x05D553A0;\r\nconst void * RTTI_TagPropagationNode = (void *)0x05C98D88;\r\nconst void * RTTI_TagPropagationNodeInstance = (void *)0x05C98DB8;\r\nconst void * RTTI_TakeOffInitiateCompleteHandler = (void *)0x05BCB440;\r\nconst void * RTTI_TakeoffMenu = (void *)0x05B631C0;\r\nconst void * RTTI_TakeoffMenuDataModel = (void *)0x05B1D108;\r\nconst void * RTTI_TakeoffMenuDataModel__TakeoffMenuEventShuttle = (void *)0x05B1D040;\r\nconst void * RTTI_TakeoffMenu_CloseMenu = (void *)0x05B63548;\r\nconst void * RTTI_TakeoffMenu_ExitShip = (void *)0x05B634C8;\r\nconst void * RTTI_TakeoffMenu_Launch = (void *)0x05B636A8;\r\nconst void * RTTI_TargetEntry = (void *)0x05A85140;\r\nconst void * RTTI_TelekinesisEffect = (void *)0x05B80C58;\r\nconst void * RTTI_TeleportDoorSearch = (void *)0x05A9B020;\r\nconst void * RTTI_TempLoadedCellDB__LoadTempDataForCell = (void *)0x059DE190;\r\nconst void * RTTI_TerminalMenu_CancelEvent = (void *)0x05B717E8;\r\nconst void * RTTI_TerminalOpenViewCallback = (void *)0x05B714D0;\r\nconst void * RTTI_TerminalRunResultsCallback = (void *)0x05B71500;\r\nconst void * RTTI_Terminal_CloseAllViews = (void *)0x05B71868;\r\nconst void * RTTI_Terminal_CloseTopView = (void *)0x05B718E8;\r\nconst void * RTTI_Terminal_CloseView = (void *)0x05B71968;\r\nconst void * RTTI_Terminal_MenuItemClick = (void *)0x05B719E8;\r\nconst void * RTTI_Terminal__AddAliasedTerminalsFunc = (void *)0x05B72388;\r\nconst void * RTTI_Terminal__GenesisTerminalMenu = (void *)0x05B71498;\r\nconst void * RTTI_Terminal__GenesisTerminalMenu_UnlockItemConfirm = (void *)0x05B72410;\r\nconst void * RTTI_Terminal__GenesisTerminalMenu_UnlockedItemWithKey = (void *)0x05B723C0;\r\nconst void * RTTI_Terminal__GenesisTerminalMenu__GenesisTerminalMenuEventShuttle = (void *)0x05B71580;\r\nconst void * RTTI_TerminateGraphRagdollHandler = (void *)0x05BCB4B0;\r\nconst void * RTTI_TerrainDB__TerrainBarrierNode = (void *)0x05A5A900;\r\nconst void * RTTI_TerrainDB__TerrainGraphProcessor = (void *)0x05A5A978;\r\nconst void * RTTI_TestMenu = (void *)0x05B73198;\r\nconst void * RTTI_TestMenu_DoAction = (void *)0x05B732D0;\r\nconst void * RTTI_TestMenu_ExitMenu = (void *)0x05B73200;\r\nconst void * RTTI_TestMenu_ShowImages = (void *)0x05B74B98;\r\nconst void * RTTI_TestMenu_ShowResources = (void *)0x05B74C18;\r\nconst void * RTTI_TestMenu_TestAll = (void *)0x05B73268;\r\nconst void * RTTI_TestMenu__TestMenuEventShuttle = (void *)0x05B72DC0;\r\nconst void * RTTI_TestReferencedObject = (void *)0x0598A2F8;\r\nconst void * RTTI_TextInputMenu = (void *)0x05B75808;\r\nconst void * RTTI_TextInputMenu_EndEditText = (void *)0x05B75878;\r\nconst void * RTTI_TextInputMenu_InputCanceled = (void *)0x05B75990;\r\nconst void * RTTI_TextInputMenu_StartEditText = (void *)0x05B75900;\r\nconst void * RTTI_TextInputMenu__TextInputEventShuttle = (void *)0x05B75A08;\r\nconst void * RTTI_TextRenderer = (void *)0x05CD5898;\r\nconst void * RTTI_TextRenderer3D = (void *)0x05A0B138;\r\nconst void * RTTI_TextureDB__ErrorStreamer = (void *)0x05D0E720;\r\nconst void * RTTI_TextureDB__Manager = (void *)0x05D0EA18;\r\nconst void * RTTI_TextureUtils__AutoQueuedDependentNode = (void *)0x05CBAE50;\r\nconst void * RTTI_TextureUtils__WaitStreamedNode = (void *)0x05CBAEF8;\r\nconst void * RTTI_ThirdPersonState = (void *)0x05AA9258;\r\nconst void * RTTI_ThumbstickEvent = (void *)0x05C9D520;\r\nconst void * RTTI_TimeMultiplierManager = (void *)0x05A4FFB8;\r\nconst void * RTTI_TimeMultiplierProvider = (void *)0x05A4FF88;\r\nconst void * RTTI_TimerEvent = (void *)0x05C999C8;\r\nconst void * RTTI_TimerEventInstance = (void *)0x05C999F0;\r\nconst void * RTTI_TitleSequenceMenu = (void *)0x05C56B68;\r\nconst void * RTTI_TitleSequenceMenu_StartMusic = (void *)0x05C56AE0;\r\nconst void * RTTI_TrackDamageEffect = (void *)0x05B80C80;\r\nconst void * RTTI_TranslationAdjustment = (void *)0x05C95308;\r\nconst void * RTTI_TranslationAdjustmentInstance = (void *)0x05C98C98;\r\nconst void * RTTI_TrapEntry = (void *)0x05A86730;\r\nconst void * RTTI_TrapTargetEntry = (void *)0x05A85220;\r\nconst void * RTTI_TraversalCollisionFilter = (void *)0x05A19B50;\r\nconst void * RTTI_TraversalFinishedHandler = (void *)0x05BCB610;\r\nconst void * RTTI_TraversalStepDoneHandler = (void *)0x05BCB580;\r\nconst void * RTTI_TrespassPackage = (void *)0x05BB8970;\r\nconst void * RTTI_TrianglePathWaterLedgeTraversalSplitter = (void *)0x05CEBF50;\r\nconst void * RTTI_TurnUndeadEffect = (void *)0x05B80BB8;\r\nconst void * RTTI_TutorialMessageManager = (void *)0x05B24C30;\r\nconst void * RTTI_TutorialMessageManager__TutorialMessageEventShuttle = (void *)0x05AEEBD0;\r\nconst void * RTTI_TweenMenuCameraState = (void *)0x05C489D0;\r\nconst void * RTTI_TwoBoneIKNode = (void *)0x05C95338;\r\nconst void * RTTI_TwoBoneIKNodeInstance = (void *)0x05C98CD0;\r\nconst void * RTTI_TypeRegistryTest__Ref = (void *)0x05984CB0;\r\nconst void * RTTI_TypeRegistryTest__TypedefChild = (void *)0x05985230;\r\nconst void * RTTI_UI = (void *)0x05CD2640;\r\nconst void * RTTI_UIBlurManager = (void *)0x05C56C68;\r\nconst void * RTTI_UICellRenderer = (void *)0x059EC850;\r\nconst void * RTTI_UICellRenderer_InventoryItem = (void *)0x059EC948;\r\nconst void * RTTI_UICellRenderer_InventoryItem__ItemModelLoadTask = (void *)0x059EC900;\r\nconst void * RTTI_UIDataShuttleConnector = (void *)0x05CD31D0;\r\nconst void * RTTI_UIDataShuttleContainer = (void *)0x059CE180;\r\nconst void * RTTI_UIDataShuttleManager = (void *)0x05CD3310;\r\nconst void * RTTI_UIDataToFlash = (void *)0x059CDBF8;\r\nconst void * RTTI_UIEventDispatcher = (void *)0x059CE018;\r\nconst void * RTTI_UIMenuChargenMenuDisablePaperdoll = (void *)0x05B55678;\r\nconst void * RTTI_UIMessageQueue = (void *)0x05CD26E8;\r\nconst void * RTTI_UISaveLoadManager = (void *)0x05B9C3A0;\r\nconst void * RTTI_UI_BarButton = (void *)0x05D55300;\r\nconst void * RTTI_UI_Button3 = (void *)0x059A11B8;\r\nconst void * RTTI_UI_Gallery = (void *)0x05D553C0;\r\nconst void * RTTI_UI_MarkdownText = (void *)0x05D55AA0;\r\nconst void * RTTI_UI_ScrollingBannerList = (void *)0x05D55240;\r\nconst void * RTTI_UI_ScrollingList = (void *)0x05D540E8;\r\nconst void * RTTI_UI_Text = (void *)0x05D538F0;\r\nconst void * RTTI_UI_Text3 = (void *)0x05D538D0;\r\nconst void * RTTI_UI_bannerEntry = (void *)0x05D54D30;\r\nconst void * RTTI_UI_bar = (void *)0x05D53848;\r\nconst void * RTTI_UI_bottomBar = (void *)0x05D53868;\r\nconst void * RTTI_UI_detailsPage = (void *)0x05D53B38;\r\nconst void * RTTI_UI_detailsPage__OnSale = (void *)0x05D53DB8;\r\nconst void * RTTI_UI_element = (void *)0x05D53250;\r\nconst void * RTTI_UI_homePage = (void *)0x05D53298;\r\nconst void * RTTI_UI_image = (void *)0x05D538B0;\r\nconst void * RTTI_UI_image3 = (void *)0x05D53890;\r\nconst void * RTTI_UI_listEntry = (void *)0x05D54D58;\r\nconst void * RTTI_UI_listEntry__OnSale = (void *)0x05D54E48;\r\nconst void * RTTI_UI_tag = (void *)0x05D55A08;\r\nconst void * RTTI_UI_topBar = (void *)0x05D55270;\r\nconst void * RTTI_UncullFurnitureBoneHandler = (void *)0x05BCEF78;\r\nconst void * RTTI_UncullWeaponsHandler = (void *)0x05BCEF20;\r\nconst void * RTTI_UniqueAVCollector = (void *)0x05AD0860;\r\nconst void * RTTI_UnitTest__CopyableReferencedObject = (void *)0x05984C48;\r\nconst void * RTTI_UnitTest__InterfaceImpl0 = (void *)0x05984EE8;\r\nconst void * RTTI_UnitTest__InterfaceImpl1 = (void *)0x05984F18;\r\nconst void * RTTI_UnitTest__InterfaceUnregistered0 = (void *)0x05984F48;\r\nconst void * RTTI_UnitTest__InterfaceUnregistered1 = (void *)0x05984F80;\r\nconst void * RTTI_UnitTest__NestedRelArray = (void *)0x05984C18;\r\nconst void * RTTI_UnitTest__SetterTest__Foo = (void *)0x05984C80;\r\nconst void * RTTI_UnitTest__SimpleRelArray = (void *)0x05984BE8;\r\nconst void * RTTI_UnitTest__TypeVm__Record = (void *)0x05984CE0;\r\nconst void * RTTI_UnitTest__UrlObject__Shape = (void *)0x05984FB8;\r\nconst void * RTTI_UnitTest__UrlObject__TestGraph = (void *)0x05984FE8;\r\nconst void * RTTI_UpdateParticleParticleInDirtyAabbsTask = (void *)0x0598E250;\r\nconst void * RTTI_UpdateRigidBodyDirtyAabbsTask = (void *)0x0598E218;\r\nconst void * RTTI_UpdateSceneRectEvent = (void *)0x05CD3C48;\r\nconst void * RTTI_Upsell = (void *)0x05C829B8;\r\nconst void * RTTI_UseStimpakHandler = (void *)0x05BCB2A0;\r\nconst void * RTTI_UserContent = (void *)0x05C82BE0;\r\nconst void * RTTI_VATS = (void *)0x05BD3EC0;\r\nconst void * RTTI_VATSCameraState = (void *)0x05C48A00;\r\nconst void * RTTI_VATSUtils__ValidateStrangerLineOfSightGoalToOriginFunctor = (void *)0x05BD3CC0;\r\nconst void * RTTI_ValueModifierEffect = (void *)0x05B7E918;\r\nconst void * RTTI_VariableCombiner = (void *)0x05C95440;\r\nconst void * RTTI_VariableCombinerInstance = (void *)0x05C98D00;\r\nconst void * RTTI_VehicleBIEvents__VehicleBIEventManager = (void *)0x05AE88B8;\r\nconst void * RTTI_VehicleCameraState = (void *)0x05AA99A8;\r\nconst void * RTTI_VehicleRuntimeComponent = (void *)0x05AD54C8;\r\nconst void * RTTI_VelocityObstacle__Utilities__BuildOpenEdgeListsVisitor = (void *)0x05CFAA00;\r\nconst void * RTTI_ViewAllEntry = (void *)0x05D55738;\r\nconst void * RTTI_ViewCaster = (void *)0x05AD0888;\r\nconst void * RTTI_VirtualPathingDoor = (void *)0x05A0D498;\r\nconst void * RTTI_WaterPathPathingNodeGenerator = (void *)0x05CFA4E0;\r\nconst void * RTTI_WaterPathRayValidator = (void *)0x05CFA518;\r\nconst void * RTTI_WeaponAttachHandler = (void *)0x05BCB178;\r\nconst void * RTTI_WeaponBeginDrawHandler = (void *)0x05BCE9D8;\r\nconst void * RTTI_WeaponBeginSheatheHandler = (void *)0x05BCEA08;\r\nconst void * RTTI_WeaponDetachHandler = (void *)0x05BCB1A8;\r\nconst void * RTTI_WeaponDrawHandler = (void *)0x05BCE980;\r\nconst void * RTTI_WeaponEnchantmentController = (void *)0x05B80658;\r\nconst void * RTTI_WeaponFireEndHandler = (void *)0x05BCF138;\r\nconst void * RTTI_WeaponFireHandler = (void *)0x05BCF168;\r\nconst void * RTTI_WeaponFireStartHandler = (void *)0x05BCF108;\r\nconst void * RTTI_WeaponGroupAssignmentMenu_ChangeWeaponAssignment = (void *)0x059EC000;\r\nconst void * RTTI_WeaponGroupAssignmentMenu_OnHintButtonActivated = (void *)0x059EBF50;\r\nconst void * RTTI_WeaponGroupAssignment__WeaponGroupAssignmentMenu = (void *)0x059EBAE0;\r\nconst void * RTTI_WeaponGroupAssignment__WeaponGroupAssignmentMenu__WeaponGroupAssignmentMenuEventShuttle = (void *)0x059EBD30;\r\nconst void * RTTI_WeaponSheatheHandler = (void *)0x05BCE9A8;\r\nconst void * RTTI_WeaponSheatheInterruptHandler = (void *)0x05BCE910;\r\nconst void * RTTI_WeaponSwingHandler = (void *)0x05BCEB48;\r\nconst void * RTTI_WeaponsCraftingMenu = (void *)0x05B75CC8;\r\nconst void * RTTI_Win32FileSystemWatcher = (void *)0x05985548;\r\nconst void * RTTI_WorkbenchTracking__TrackingSingleton = (void *)0x05B86428;\r\nconst void * RTTI_WorkshopActionButton_HoldFinished = (void *)0x05B7D718;\r\nconst void * RTTI_WorkshopActionButton_HoldStopped = (void *)0x05B7DA30;\r\nconst void * RTTI_WorkshopAreaResourcesDataModel = (void *)0x05B1E8B0;\r\nconst void * RTTI_WorkshopAreaResourcesDataModel__WorkshopAreaResourcesEventShuttle = (void *)0x05B1E8F0;\r\nconst void * RTTI_WorkshopBIEvents__WorkshopEventManager = (void *)0x05B82338;\r\nconst void * RTTI_WorkshopBuilderDataModel = (void *)0x05B1F898;\r\nconst void * RTTI_WorkshopBuilderDataModel__WorkshopBuilderEventShuttle = (void *)0x05B1F8D0;\r\nconst void * RTTI_WorkshopBuilderMenu = (void *)0x05B773D0;\r\nconst void * RTTI_WorkshopBuilderMenu_ChangeBuildItem = (void *)0x05B771B8;\r\nconst void * RTTI_WorkshopBuilderMenu_SelectedItem = (void *)0x05B77250;\r\nconst void * RTTI_WorkshopBuilderMenu_ToggleTracking = (void *)0x05B77458;\r\nconst void * RTTI_WorkshopCamera__CameraHitCollector = (void *)0x05AA9A28;\r\nconst void * RTTI_WorkshopCamera__WorkshopCharacterProxyListener = (void *)0x05AA9A60;\r\nconst void * RTTI_WorkshopCategoryBarDataModel = (void *)0x05B1E638;\r\nconst void * RTTI_WorkshopCategoryBarDataModel__WorkshopCategoryBarEventShuttle = (void *)0x05B1E670;\r\nconst void * RTTI_WorkshopCategoryInfoDataModel = (void *)0x05B1E228;\r\nconst void * RTTI_WorkshopCategoryInfoDataModel__WorkshopCategoryInfoEventShuttle = (void *)0x05B1DF90;\r\nconst void * RTTI_WorkshopColorModeDataModel = (void *)0x05AF0238;\r\nconst void * RTTI_WorkshopColorModeDataModel__WorkshopColorModeEventShuttle = (void *)0x05AF04F0;\r\nconst void * RTTI_WorkshopColorMode_ApplyColors = (void *)0x05AF0750;\r\nconst void * RTTI_WorkshopColorMode_SelectedTab = (void *)0x05AF07E0;\r\nconst void * RTTI_WorkshopColorMode_SliderChanged = (void *)0x05AF0870;\r\nconst void * RTTI_WorkshopColorMode_SwatchChanged = (void *)0x05AF0900;\r\nconst void * RTTI_WorkshopEngine__ActivateItemEvent = (void *)0x05C84F80;\r\nconst void * RTTI_WorkshopEngine__BulldozeItemEvent = (void *)0x05C87C48;\r\nconst void * RTTI_WorkshopEngine__CancelEvent = (void *)0x05C87AC8;\r\nconst void * RTTI_WorkshopEngine__CommitEvent = (void *)0x05C87940;\r\nconst void * RTTI_WorkshopEngine__ConnectTransferLinkEvent = (void *)0x05C87900;\r\nconst void * RTTI_WorkshopEngine__ConnectWireEvent = (void *)0x05C877E0;\r\nconst void * RTTI_WorkshopEngine__CycleBehaviorEvent = (void *)0x05C87A90;\r\nconst void * RTTI_WorkshopEngine__EditColorsEvent = (void *)0x05C87CB8;\r\nconst void * RTTI_WorkshopEngine__EditItemEvent = (void *)0x05C878C8;\r\nconst void * RTTI_WorkshopEngine__EngineFrame = (void *)0x05C85320;\r\nconst void * RTTI_WorkshopEngine__ExitEvent = (void *)0x05C87978;\r\nconst void * RTTI_WorkshopEngine__FinishRepairEvent = (void *)0x05C879E8;\r\nconst void * RTTI_WorkshopEngine__InspectColorItemsEvent = (void *)0x05C84F40;\r\nconst void * RTTI_WorkshopEngine__ItemCombatChangedEvent = (void *)0x05C879A8;\r\nconst void * RTTI_WorkshopEngine__NewItemEvent = (void *)0x05C87818;\r\nconst void * RTTI_WorkshopEngine__PlaceOutpostEvent = (void *)0x05C87770;\r\nconst void * RTTI_WorkshopEngine__PreviewColorsEvent = (void *)0x05C87C80;\r\nconst void * RTTI_WorkshopEngine__RemoveItemEvent = (void *)0x05C87890;\r\nconst void * RTTI_WorkshopEngine__RemoveOutpostEvent = (void *)0x05C87A20;\r\nconst void * RTTI_WorkshopEngine__RemoveSingleWorkshopItemEvent = (void *)0x05C87B80;\r\nconst void * RTTI_WorkshopEngine__RemoveWorkshopItemsEvent = (void *)0x05C87BC8;\r\nconst void * RTTI_WorkshopEngine__RequestRepairItemEvent = (void *)0x05C87850;\r\nconst void * RTTI_WorkshopEngine__ResetColorsToDefaultEvent = (void *)0x05C87C08;\r\nconst void * RTTI_WorkshopEngine__RevertBehaviorEvent = (void *)0x05C87B38;\r\nconst void * RTTI_WorkshopEngine__RotateItemEvent = (void *)0x05C87B00;\r\nconst void * RTTI_WorkshopEngine__StartQuickMenuEvent = (void *)0x05C876F8;\r\nconst void * RTTI_WorkshopEngine__StartSnappedEvent = (void *)0x05C87A58;\r\nconst void * RTTI_WorkshopEngine__StartWorkshopEvent = (void *)0x05C87738;\r\nconst void * RTTI_WorkshopEngine__StateBulldoze = (void *)0x05C85738;\r\nconst void * RTTI_WorkshopEngine__StateCreatePowerLink = (void *)0x05C85600;\r\nconst void * RTTI_WorkshopEngine__StateCreateReferences = (void *)0x05C84FF0;\r\nconst void * RTTI_WorkshopEngine__StateCreateTransferLink = (void *)0x05C853C8;\r\nconst void * RTTI_WorkshopEngine__StateCycleSnapBehavior = (void *)0x05C856B8;\r\nconst void * RTTI_WorkshopEngine__StateDuplicateReferences = (void *)0x05C85150;\r\nconst void * RTTI_WorkshopEngine__StateIdle = (void *)0x05C85030;\r\nconst void * RTTI_WorkshopEngine__StateInspect = (void *)0x05C85868;\r\nconst void * RTTI_WorkshopEngine__StateInspectColorItems = (void *)0x05C856F8;\r\nconst void * RTTI_WorkshopEngine__StateModifyColors = (void *)0x05C85770;\r\nconst void * RTTI_WorkshopEngine__StatePostCommitEdit = (void *)0x05C85828;\r\nconst void * RTTI_WorkshopEngine__StateSetupReferences = (void *)0x05C850D8;\r\nconst void * RTTI_WorkshopEngine__StateUpdateAutoFoundation = (void *)0x05C857E8;\r\nconst void * RTTI_WorkshopEngine__StateUpdateCommitSnapEdit = (void *)0x05C857A8;\r\nconst void * RTTI_WorkshopEngine__StateUpdatePlacement = (void *)0x05C85098;\r\nconst void * RTTI_WorkshopEngine__StateUpdatePowerLink = (void *)0x05C855C0;\r\nconst void * RTTI_WorkshopEngine__StateUpdateSnapped = (void *)0x05C85358;\r\nconst void * RTTI_WorkshopEngine__StateUpdateTransferLink = (void *)0x05C85678;\r\nconst void * RTTI_WorkshopEngine__StateWait3D = (void *)0x05C85118;\r\nconst void * RTTI_WorkshopEngine__TrackItemEvent = (void *)0x05C84F08;\r\nconst void * RTTI_WorkshopEngine__UntrackItemEvent = (void *)0x05C84ED0;\r\nconst void * RTTI_WorkshopEngine__UpdateEvent = (void *)0x05C877A8;\r\nconst void * RTTI_WorkshopHavokUtils__AutoFoundationHeightCastCollisionfilter = (void *)0x05AA6110;\r\nconst void * RTTI_WorkshopHavokUtils__ClosestCanHaveAutoFoundationsCollector = (void *)0x05AA8290;\r\nconst void * RTTI_WorkshopHavokUtils__ForwardCastCollector = (void *)0x05AA6258;\r\nconst void * RTTI_WorkshopHavokUtils__GroundInfoCollisionfilter = (void *)0x05AA8A40;\r\nconst void * RTTI_WorkshopHavokUtils__IgnoreBulldozedReferencesCollisionFilter = (void *)0x05AA6200;\r\nconst void * RTTI_WorkshopHavokUtils__IntersectionTestCollisionfilter = (void *)0x05AA6070;\r\nconst void * RTTI_WorkshopHavokUtils__ItemPlacementForwardCastCollector = (void *)0x05AA7D40;\r\nconst void * RTTI_WorkshopHavokUtils__TempItemPlacementCollector = (void *)0x05C87F60;\r\nconst void * RTTI_WorkshopHavokUtils__WorkshopClosestHitGroundCollector = (void *)0x05AA7D90;\r\nconst void * RTTI_WorkshopHavokUtils__WorkshopGroundCollector = (void *)0x05AA7CF0;\r\nconst void * RTTI_WorkshopHavokUtils__hknpWorkshopCastCollector = (void *)0x05AA60C0;\r\nconst void * RTTI_WorkshopHavokUtils__hknpWorkshopIntersectCollector = (void *)0x05AA61B0;\r\nconst void * RTTI_WorkshopHighlightUtils__EventListener = (void *)0x05C87CF0;\r\nconst void * RTTI_WorkshopInteractiveMessageDataModel = (void *)0x05B1FC48;\r\nconst void * RTTI_WorkshopInteractiveMessageDataModel__ICallback = (void *)0x05B7AF00;\r\nconst void * RTTI_WorkshopInteractiveMessageDataModel__WorkshopInteractiveMessageEventShuttle = (void *)0x05B1FB30;\r\nconst void * RTTI_WorkshopIsoCameraState = (void *)0x05C489A0;\r\nconst void * RTTI_WorkshopLOD__WorkshopLODManager = (void *)0x05C83AB8;\r\nconst void * RTTI_WorkshopMenu = (void *)0x05B7AC18;\r\nconst void * RTTI_WorkshopMenuShared = (void *)0x05B7D9A8;\r\nconst void * RTTI_WorkshopMenu_AttemptBuild = (void *)0x05B7AEC8;\r\nconst void * RTTI_WorkshopMenu_CancelAction = (void *)0x05B7B098;\r\nconst void * RTTI_WorkshopMenu_ChangeVariant = (void *)0x05B7B120;\r\nconst void * RTTI_WorkshopMenu_ConnectionEvent = (void *)0x05B7AAF0;\r\nconst void * RTTI_WorkshopMenu_ExitMenu = (void *)0x05B7B018;\r\nconst void * RTTI_WorkshopMenu_MessageCallback = (void *)0x05B7AD20;\r\nconst void * RTTI_WorkshopMenu_SelectedCategory = (void *)0x05B7ADB0;\r\nconst void * RTTI_WorkshopMenu_SelectedGridObject = (void *)0x05B7AE40;\r\nconst void * RTTI_WorkshopMenu_ShowExtras = (void *)0x05B7AA68;\r\nconst void * RTTI_WorkshopMenu_SwitchMode = (void *)0x05B7AF98;\r\nconst void * RTTI_WorkshopMenu_ToggleDistance = (void *)0x05B7A960;\r\nconst void * RTTI_WorkshopMenu_ToggleTracking = (void *)0x05B7AC90;\r\nconst void * RTTI_WorkshopMenu_ToggleView = (void *)0x05B7A9E8;\r\nconst void * RTTI_WorkshopMessageDataModel = (void *)0x05B1FD68;\r\nconst void * RTTI_WorkshopMessageDataModel__WorkshopMessageEventShuttle = (void *)0x05B1FDA0;\r\nconst void * RTTI_WorkshopObjectInfoCardDataModel = (void *)0x05B1DB08;\r\nconst void * RTTI_WorkshopObjectInfoCardDataModel__WorkshopObjectInfoCardEventShuttle = (void *)0x05B1DB40;\r\nconst void * RTTI_WorkshopOperations__CandidateSnapper = (void *)0x05C88098;\r\nconst void * RTTI_WorkshopPickRefDataModel = (void *)0x05B20218;\r\nconst void * RTTI_WorkshopPickRefDataModel__WorkshopPickRefEventShuttle = (void *)0x05B20040;\r\nconst void * RTTI_WorkshopQuickMenu = (void *)0x05B7BAC8;\r\nconst void * RTTI_WorkshopQuickMenuDataModel = (void *)0x05B20500;\r\nconst void * RTTI_WorkshopQuickMenuDataModel__WorkshopQuickMenuEventShuttle = (void *)0x05B203C0;\r\nconst void * RTTI_WorkshopQuickMenu_ConfirmAction = (void *)0x05B7BBD0;\r\nconst void * RTTI_WorkshopQuickMenu_ExitMenu = (void *)0x05B7BB40;\r\nconst void * RTTI_WorkshopResources__WorkshopResourcesManager = (void *)0x05AA85A0;\r\nconst void * RTTI_WorkshopShared_SetActionHandles = (void *)0x05B7D7A0;\r\nconst void * RTTI_WorkshopShared_StartAction = (void *)0x05B7D830;\r\nconst void * RTTI_WorkshopStateDataModel = (void *)0x05B21118;\r\nconst void * RTTI_WorkshopStateDataModel__WorkshopStateEventShuttle = (void *)0x05B211A0;\r\nconst void * RTTI_WorkshopStatusDataModel = (void *)0x05AF0A08;\r\nconst void * RTTI_WorkshopStatusDataModel__WorkshopStatusEventShuttle = (void *)0x05AF0A90;\r\nconst void * RTTI_WorkshopTargetMenu = (void *)0x05B7CBA8;\r\nconst void * RTTI_WorkshopTargetMenu_TargetHovered = (void *)0x05B7CC30;\r\nconst void * RTTI_WorkshopTargetMenu_TargetPicked = (void *)0x05B7CCC0;\r\nconst void * RTTI_WorkshopTargetMenu__OutpostData = (void *)0x05B7C740;\r\nconst void * RTTI_WorkshopTargetMenu__ResourceData = (void *)0x05B7CEA0;\r\nconst void * RTTI_WorkshopTargetMenu__SourceData = (void *)0x05B7C8A0;\r\nconst void * RTTI_WorkshopTargetMenu__TargetData = (void *)0x05B7CE68;\r\nconst void * RTTI_WorkshopTargetMenu__TargetMenuData = (void *)0x05B7C538;\r\nconst void * RTTI_WorkshopTargetMenu__WorkshopTargetEventShuttle = (void *)0x05B7CEE0;\r\nconst void * RTTI_WorkshopUI__ConfirmDeferDeleteCallback = (void *)0x05C89208;\r\nconst void * RTTI_WorkshopUI__StateBulldoze = (void *)0x05C89550;\r\nconst void * RTTI_WorkshopUI__StateIdle = (void *)0x05C894E8;\r\nconst void * RTTI_WorkshopUI__StateInspectColors = (void *)0x05C89518;\r\nconst void * RTTI_WorkshopUI__StateInspectIdle = (void *)0x05C89310;\r\nconst void * RTTI_WorkshopUI__StateInspectItem = (void *)0x05C89380;\r\nconst void * RTTI_WorkshopUI__StateModifyColors = (void *)0x05C89580;\r\nconst void * RTTI_WorkshopUI__StateUpdateExistingItemPlacement = (void *)0x05C894A0;\r\nconst void * RTTI_WorkshopUI__StateUpdateNewDeployablePlacement = (void *)0x05C89450;\r\nconst void * RTTI_WorkshopUI__StateUpdateNewItemPlacement = (void *)0x05C892D0;\r\nconst void * RTTI_WorkshopUI__StateUpdateTransferLinkPlacement = (void *)0x05C893C0;\r\nconst void * RTTI_WorkshopUI__StateUpdateWirePlacement = (void *)0x05C89408;\r\nconst void * RTTI_WorkshopUI__UIStateMachine = (void *)0x05C896F8;\r\nconst void * RTTI_Workshop_BlueprintMenu = (void *)0x05B7D1F0;\r\nconst void * RTTI_Workshop__BulldozeOnlyWorkshopItem = (void *)0x05C875E8;\r\nconst void * RTTI_Workshop__DecoratedHabWorkshopItem = (void *)0x05AA82E0;\r\nconst void * RTTI_Workshop__ExtraData = (void *)0x05AA78D0;\r\nconst void * RTTI_Workshop__InventoryItemWorkshopItem = (void *)0x05C87620;\r\nconst void * RTTI_Workshop__MainStatusHandler = (void *)0x05AA59D8;\r\nconst void * RTTI_Workshop__PackinWorkshopItem = (void *)0x05AA81D8;\r\nconst void * RTTI_Workshop__PowerLinkWorkshopItem = (void *)0x05C87660;\r\nconst void * RTTI_Workshop__SingleWorkshopItem = (void *)0x05AA8160;\r\nconst void * RTTI_Workshop__TESObjectREFRGameEventListener = (void *)0x05C87448;\r\nconst void * RTTI_Workshop__TransferLinkWorkshopItem = (void *)0x05C875B0;\r\nconst void * RTTI_Workshop__WireWorkshopItem = (void *)0x05C87D30;\r\nconst void * RTTI_Workshop__WorkshopMenuNode = (void *)0x05AA6298;\r\nconst void * RTTI_Workshop__WorkshopMenuNodeBuildableObject = (void *)0x05AA6528;\r\nconst void * RTTI_Workshop__WorkshopMenuNodeBulldozer = (void *)0x05AA6568;\r\nconst void * RTTI_Workshop__WorkshopMenuNodeDecoratedHab = (void *)0x05C87F18;\r\nconst void * RTTI_Workshop__WorkshopMenuNodeLockLevel = (void *)0x05AA64E8;\r\nconst void * RTTI_Workshop__WorkshopMenuNodeOutpost = (void *)0x05AA6030;\r\nconst void * RTTI_Workshop__WorkshopStatisticsEventSink = (void *)0x05C874E0;\r\nconst void * RTTI_ZeroOverheadHeap = (void *)0x05C9CB38;\r\nconst void * RTTI_ZeroPitchHandler = (void *)0x05BCEBA8;\r\nconst void * RTTI_ZoneEntry = (void *)0x05A85120;\r\nconst void * RTTI_allCreationsDownloadedCallback = (void *)0x05C819E0;\r\nconst void * RTTI_bhkBipedOrientationController = (void *)0x05CAC620;\r\nconst void * RTTI_bhkBlockStreamAllocatorBase = (void *)0x05CA2B30;\r\nconst void * RTTI_bhkCharProxyController = (void *)0x05CA6620;\r\nconst void * RTTI_bhkCharProxyControllerCinfo = (void *)0x05CA6650;\r\nconst void * RTTI_bhkCharProxyManager = (void *)0x05CA3820;\r\nconst void * RTTI_bhkCharRigidBodyController = (void *)0x05CA7620;\r\nconst void * RTTI_bhkCharRigidBodyControllerCinfo = (void *)0x05CA7820;\r\nconst void * RTTI_bhkCharRigidBodyManager = (void *)0x05CA37F0;\r\nconst void * RTTI_bhkCharacterCollisionHandler = (void *)0x05BB6C10;\r\nconst void * RTTI_bhkCharacterController = (void *)0x05CA63B8;\r\nconst void * RTTI_bhkCharacterControllerCinfo = (void *)0x05CA62F8;\r\nconst void * RTTI_bhkCharacterControllerShapeManager = (void *)0x05CA6010;\r\nconst void * RTTI_bhkCharacterControllerShapeManager__hknpConvexShapeEx = (void *)0x05CA5EA0;\r\nconst void * RTTI_bhkCharacterPointCollector = (void *)0x05CACA50;\r\nconst void * RTTI_bhkCharacterProxy = (void *)0x05CA65F8;\r\nconst void * RTTI_bhkCharacterRigidBody = (void *)0x05CA7858;\r\nconst void * RTTI_bhkCharacterRigidBodyCinfo = (void *)0x05CA78C0;\r\nconst void * RTTI_bhkCharacterStateClimbing = (void *)0x05CA6418;\r\nconst void * RTTI_bhkCharacterStateFloating = (void *)0x05CAC8B8;\r\nconst void * RTTI_bhkCharacterStateFlying = (void *)0x05CA63E8;\r\nconst void * RTTI_bhkCharacterStateInAir = (void *)0x05CAC888;\r\nconst void * RTTI_bhkCharacterStateJumping = (void *)0x05CAC858;\r\nconst void * RTTI_bhkCharacterStateOnGround = (void *)0x05CAC828;\r\nconst void * RTTI_bhkCharacterStateSpaceship = (void *)0x05CA0C58;\r\nconst void * RTTI_bhkCharacterStateSwimming = (void *)0x05CA75F0;\r\nconst void * RTTI_bhkCollisionFilter = (void *)0x05CA59C8;\r\nconst void * RTTI_bhkICharOrientationController = (void *)0x05CA6330;\r\nconst void * RTTI_bhkIWorldStepListener = (void *)0x05AA18B8;\r\nconst void * RTTI_bhkMemorySystem = (void *)0x05CAC518;\r\nconst void * RTTI_bhkMultithreadedSystem = (void *)0x05CA6E70;\r\nconst void * RTTI_bhkNPCollisionObject = (void *)0x05BB0B28;\r\nconst void * RTTI_bhkNPCollisionObjectUnlinked = (void *)0x05BB0BB0;\r\nconst void * RTTI_bhkNPCollisionObjectUnlinked__LinkExtraData = (void *)0x05CA4520;\r\nconst void * RTTI_bhkNPCollisionProxyObject = (void *)0x05CA4568;\r\nconst void * RTTI_bhkNPModelNodeComponent = (void *)0x05A0C298;\r\nconst void * RTTI_bhkParticlesManagerModifier = (void *)0x05CA3D08;\r\nconst void * RTTI_bhkPhysicsSystem = (void *)0x05CA5B40;\r\nconst void * RTTI_bhkQuadOrientationController = (void *)0x05CAC8E8;\r\nconst void * RTTI_bhkRagdollPenetrationManager = (void *)0x05CABF58;\r\nconst void * RTTI_bhkRagdollSystem = (void *)0x05CA5B68;\r\nconst void * RTTI_bhkRandomVelocityGenerator__INISettingCollectionEx = (void *)0x05CA5060;\r\nconst void * RTTI_bhkRandomVelocityGenerator__INISettingEx = (void *)0x05CA50A8;\r\nconst void * RTTI_bhkThreadMemorySource = (void *)0x05CACF68;\r\nconst void * RTTI_bhkThreadMemorySource__RowBlockAllocatorImpl = (void *)0x05CACF20;\r\nconst void * RTTI_bhkThreadPool = (void *)0x05CA7088;\r\nconst void * RTTI_bhkTrapListener = (void *)0x05A86778;\r\nconst void * RTTI_bhkVehicleSetup = (void *)0x05AD5ED8;\r\nconst void * RTTI_bhkWorld = (void *)0x05CA0BF8;\r\nconst void * RTTI_bhkWorldM = (void *)0x05CA67E8;\r\nconst void * RTTI_bnet__Account__ExternalAuthInfo = (void *)0x05D5CA60;\r\nconst void * RTTI_bnet__AsyncOperationProxy = (void *)0x05D55B30;\r\nconst void * RTTI_bnet__Mods__BaseUpdatePreferenceInfo = (void *)0x05D61B10;\r\nconst void * RTTI_bnet__Mods__UpdateContentPreferenceInfo = (void *)0x05D61B50;\r\nconst void * RTTI_bnet__impl__AsyncOperation = (void *)0x05D56E50;\r\nconst void * RTTI_bps__client__BIEventClient__BulkEventsResult = (void *)0x059C5D50;\r\nconst void * RTTI_bps__client__BIEventClient__CreateSessionResult = (void *)0x05C899B0;\r\nconst void * RTTI_bps__client__BaseRequestImpl = (void *)0x05C89850;\r\nconst void * RTTI_bps__client__Services = (void *)0x05C8A410;\r\nconst void * RTTI_castTest__Interface0 = (void *)0x05984DF8;\r\nconst void * RTTI_castTest__Interface1 = (void *)0x05984E28;\r\nconst void * RTTI_castTest__Interface2 = (void *)0x05984E58;\r\nconst void * RTTI_castTest__InterfaceBase = (void *)0x05984D90;\r\nconst void * RTTI_castTest__InterfaceOtherBase = (void *)0x05984DC0;\r\nconst void * RTTI_castTest__Leaf = (void *)0x05984D38;\r\nconst void * RTTI_castTest__OtherLeaf = (void *)0x05984D60;\r\nconst void * RTTI_castTest__Root = (void *)0x05984D10;\r\nconst void * RTTI_castTest__WithInterfaces = (void *)0x05984E88;\r\nconst void * RTTI_downloadConfirmResetCallback = (void *)0x05C81A18;\r\nconst void * RTTI_errorCallback = (void *)0x05AE2EA8;\r\nconst void * RTTI_hclAction = (void *)0x05BB4D50;\r\nconst void * RTTI_hclAntiPinchConstraintInstanceData = (void *)0x0598A2B8;\r\nconst void * RTTI_hclAntiPinchConstraintSet = (void *)0x05988E28;\r\nconst void * RTTI_hclBSClothParameterizedWindAction = (void *)0x05CAC570;\r\nconst void * RTTI_hclBSClothPickingAction = (void *)0x05BB4D70;\r\nconst void * RTTI_hclBSWorld = (void *)0x05CA21B8;\r\nconst void * RTTI_hclBendLinkConstraintSet = (void *)0x05988E58;\r\nconst void * RTTI_hclBendLinkConstraintSetMx = (void *)0x05988E88;\r\nconst void * RTTI_hclBendStiffnessConstraintSet = (void *)0x05988EC0;\r\nconst void * RTTI_hclBendStiffnessConstraintSetMx = (void *)0x05988EF8;\r\nconst void * RTTI_hclBlendOperatorInstanceData = (void *)0x05988B58;\r\nconst void * RTTI_hclBlendSomeVerticesOperator = (void *)0x05988B20;\r\nconst void * RTTI_hclBonePlanesConstraintSet = (void *)0x05988F30;\r\nconst void * RTTI_hclBoneSpaceMeshMeshDeformOperator = (void *)0x05989180;\r\nconst void * RTTI_hclBoneSpaceMeshMeshDeformPNOperator = (void *)0x059891C0;\r\nconst void * RTTI_hclBoneSpaceMeshMeshDeformPNTBOperator = (void *)0x05989200;\r\nconst void * RTTI_hclBoneSpaceMeshMeshDeformPNTOperator = (void *)0x05989240;\r\nconst void * RTTI_hclBoneSpaceMeshMeshDeformPOperator = (void *)0x05989280;\r\nconst void * RTTI_hclBoneSpaceSkinOperator = (void *)0x059892C0;\r\nconst void * RTTI_hclBoneSpaceSkinPNOperator = (void *)0x059892F0;\r\nconst void * RTTI_hclBoneSpaceSkinPNTBOperator = (void *)0x05989328;\r\nconst void * RTTI_hclBoneSpaceSkinPNTOperator = (void *)0x05989360;\r\nconst void * RTTI_hclBoneSpaceSkinPOperator = (void *)0x05989398;\r\nconst void * RTTI_hclBoneSpaceTransferSimulationOperator = (void *)0x0598A0B8;\r\nconst void * RTTI_hclBuffer = (void *)0x05CA4A10;\r\nconst void * RTTI_hclBufferDefinition = (void *)0x059889D0;\r\nconst void * RTTI_hclCapsuleShape = (void *)0x05988CC0;\r\nconst void * RTTI_hclClothContainer = (void *)0x05989158;\r\nconst void * RTTI_hclClothData = (void *)0x05988A28;\r\nconst void * RTTI_hclClothInstance = (void *)0x05988950;\r\nconst void * RTTI_hclClothLeafShapeSensor = (void *)0x059909A8;\r\nconst void * RTTI_hclClothPickingAction = (void *)0x05BB4D20;\r\nconst void * RTTI_hclClothState = (void *)0x05988A00;\r\nconst void * RTTI_hclClothStateInstanceData = (void *)0x059898C8;\r\nconst void * RTTI_hclCollidable = (void *)0x05988978;\r\nconst void * RTTI_hclCollisionConvexes = (void *)0x05990AD8;\r\nconst void * RTTI_hclCollisionTriangles = (void *)0x05990AA8;\r\nconst void * RTTI_hclCompressibleLinkConstraintSet = (void *)0x05988F68;\r\nconst void * RTTI_hclCompressibleLinkConstraintSetMx = (void *)0x05988FA0;\r\nconst void * RTTI_hclConstraintSet = (void *)0x05988AA8;\r\nconst void * RTTI_hclConstraintStiffnessDispatcher = (void *)0x05989FA8;\r\nconst void * RTTI_hclConvexGeometryShape = (void *)0x05988CE8;\r\nconst void * RTTI_hclConvexHeightFieldShape = (void *)0x05988D18;\r\nconst void * RTTI_hclConvexPlanesShape = (void *)0x05988D48;\r\nconst void * RTTI_hclCopyVerticesOperator = (void *)0x059897E0;\r\nconst void * RTTI_hclFullClothTask = (void *)0x0598A138;\r\nconst void * RTTI_hclGatherAllVerticesOperator = (void *)0x05989810;\r\nconst void * RTTI_hclGatherSomeVerticesOperator = (void *)0x05989848;\r\nconst void * RTTI_hclInputConvertOperator = (void *)0x059893C8;\r\nconst void * RTTI_hclLocalRangeConstraintSet = (void *)0x05988FE0;\r\nconst void * RTTI_hclMeshBoneDeformOperator = (void *)0x05989428;\r\nconst void * RTTI_hclMeshMeshDeformOperator = (void *)0x05989490;\r\nconst void * RTTI_hclMoveParticlesOperator = (void *)0x059894C0;\r\nconst void * RTTI_hclObjectSpaceMeshMeshDeformOperator = (void *)0x059894F0;\r\nconst void * RTTI_hclObjectSpaceMeshMeshDeformPNOperator = (void *)0x05989530;\r\nconst void * RTTI_hclObjectSpaceMeshMeshDeformPNTBOperator = (void *)0x05989570;\r\nconst void * RTTI_hclObjectSpaceMeshMeshDeformPNTOperator = (void *)0x059895B0;\r\nconst void * RTTI_hclObjectSpaceMeshMeshDeformPOperator = (void *)0x059895F0;\r\nconst void * RTTI_hclObjectSpaceSkinOperator = (void *)0x05989630;\r\nconst void * RTTI_hclObjectSpaceSkinPNOperator = (void *)0x05989668;\r\nconst void * RTTI_hclObjectSpaceSkinPNTBOperator = (void *)0x059896A0;\r\nconst void * RTTI_hclObjectSpaceSkinPNTOperator = (void *)0x059896D8;\r\nconst void * RTTI_hclObjectSpaceSkinPOperator = (void *)0x05989710;\r\nconst void * RTTI_hclObjectSpaceTransferSimulationOperator = (void *)0x0598A0F8;\r\nconst void * RTTI_hclOperator = (void *)0x05988A80;\r\nconst void * RTTI_hclOperatorSequenceTask = (void *)0x0598A160;\r\nconst void * RTTI_hclOutputConvertOperator = (void *)0x059893F8;\r\nconst void * RTTI_hclPlaneShape = (void *)0x05988D78;\r\nconst void * RTTI_hclPointContactPlanesShape = (void *)0x05989FE0;\r\nconst void * RTTI_hclPostExecuteClothTask = (void *)0x0598A1C0;\r\nconst void * RTTI_hclPreExecuteClothTask = (void *)0x0598A190;\r\nconst void * RTTI_hclScratchBuffer = (void *)0x05990B08;\r\nconst void * RTTI_hclScratchBufferDefinition = (void *)0x0598A018;\r\nconst void * RTTI_hclShadowBuffer = (void *)0x05990B30;\r\nconst void * RTTI_hclShadowBufferDefinition = (void *)0x0598A050;\r\nconst void * RTTI_hclShape = (void *)0x05988CA0;\r\nconst void * RTTI_hclSimClothData = (void *)0x05988AF8;\r\nconst void * RTTI_hclSimClothInstance = (void *)0x059889A0;\r\nconst void * RTTI_hclSimClothPose = (void *)0x05988AD0;\r\nconst void * RTTI_hclSimpleMeshBoneDeformOperator = (void *)0x05989458;\r\nconst void * RTTI_hclSimpleWindAction = (void *)0x05CAC540;\r\nconst void * RTTI_hclSimulateOperator = (void *)0x05988DF8;\r\nconst void * RTTI_hclSimulateOperatorInstanceData = (void *)0x05988C68;\r\nconst void * RTTI_hclSkinOperator = (void *)0x05989748;\r\nconst void * RTTI_hclSphereShape = (void *)0x05988DA0;\r\nconst void * RTTI_hclStandardLinkConstraintSet = (void *)0x05989018;\r\nconst void * RTTI_hclStandardLinkConstraintSetMx = (void *)0x05989050;\r\nconst void * RTTI_hclStateDependencyGraph = (void *)0x05988A50;\r\nconst void * RTTI_hclStateTransition = (void *)0x05988B90;\r\nconst void * RTTI_hclStaticShadowBuffer = (void *)0x05990B58;\r\nconst void * RTTI_hclStaticShadowBufferDefinition = (void *)0x0598A080;\r\nconst void * RTTI_hclStretchLinkConstraintSet = (void *)0x05989088;\r\nconst void * RTTI_hclStretchLinkConstraintSetMx = (void *)0x059890C0;\r\nconst void * RTTI_hclTaperedCapsuleShape = (void *)0x05988DC8;\r\nconst void * RTTI_hclTransformSetDefinition = (void *)0x05988BC0;\r\nconst void * RTTI_hclTransitionConstraintInstanceData = (void *)0x05988C28;\r\nconst void * RTTI_hclTransitionConstraintSet = (void *)0x05988BF0;\r\nconst void * RTTI_hclUpdateAllVertexFramesOperator = (void *)0x05989770;\r\nconst void * RTTI_hclUpdateSomeVertexFramesOperator = (void *)0x059897A8;\r\nconst void * RTTI_hclVdbObjectNode__SimulateOperatorInstanceData = (void *)0x05989880;\r\nconst void * RTTI_hclVolumeConstraint = (void *)0x059890F8;\r\nconst void * RTTI_hclVolumeConstraintInstanceData = (void *)0x0598A248;\r\nconst void * RTTI_hclVolumeConstraintMx = (void *)0x05989128;\r\nconst void * RTTI_hclVolumeConstraintMxInstanceData = (void *)0x0598A280;\r\nconst void * RTTI_hclWorld = (void *)0x05CA2130;\r\nconst void * RTTI_hctClothSetup20151Options = (void *)0x05984B58;\r\nconst void * RTTI_hctClothSetupClothData20151Options = (void *)0x05984B18;\r\nconst void * RTTI_hctClothSetupObjectData20151 = (void *)0x05984AE0;\r\nconst void * RTTI_hkBSErrorEmpty = (void *)0x05CA6BD8;\r\nconst void * RTTI_hkBaseObject = (void *)0x059C31E8;\r\nconst void * RTTI_hkBlockStreamAllocator = (void *)0x05CA2BD8;\r\nconst void * RTTI_hkBlockStreamCommandWriter = (void *)0x0598F360;\r\nconst void * RTTI_hkBmpFileFormat = (void *)0x05990C18;\r\nconst void * RTTI_hkBsdSocket = (void *)0x05988690;\r\nconst void * RTTI_hkBufferedStreamReader = (void *)0x059874E8;\r\nconst void * RTTI_hkBufferedStreamWriter = (void *)0x05987518;\r\nconst void * RTTI_hkConcurrency = (void *)0x0598F2C0;\r\nconst void * RTTI_hkDdsFileFormat = (void *)0x05990BF0;\r\nconst void * RTTI_hkDebugCommandProcessor = (void *)0x0598B7A8;\r\nconst void * RTTI_hkDebugDisplay = (void *)0x0598A508;\r\nconst void * RTTI_hkDebugDisplayHandler = (void *)0x0598A460;\r\nconst void * RTTI_hkDefaultCompoundMeshBody = (void *)0x0598FFB8;\r\nconst void * RTTI_hkDefaultCompoundMeshShape = (void *)0x0598FF80;\r\nconst void * RTTI_hkDefaultError = (void *)0x05CA2A78;\r\nconst void * RTTI_hkDefaultTaskQueue = (void *)0x059877B0;\r\nconst void * RTTI_hkDefaultTaskQueueDetail__AsyncThreadPoolContext = (void *)0x05987930;\r\nconst void * RTTI_hkDefaultTaskQueueDetail__BlockingThreadContext = (void *)0x05987890;\r\nconst void * RTTI_hkDefaultTaskQueueDetail__SpinningThreadContext = (void *)0x059878E0;\r\nconst void * RTTI_hkDefaultTaskQueueEx__ExecutionContext = (void *)0x05987A48;\r\nconst void * RTTI_hkDefaultTaskQueue__CriticalSection = (void *)0x059877E0;\r\nconst void * RTTI_hkDefaultTaskQueue__EmptyTask = (void *)0x05987858;\r\nconst void * RTTI_hkDefaultTaskQueue__ThreadContext = (void *)0x05987820;\r\nconst void * RTTI_hkDisplayAABB = (void *)0x0598A4E0;\r\nconst void * RTTI_hkDisplayCapsule = (void *)0x0598A490;\r\nconst void * RTTI_hkDisplayGeometry = (void *)0x0598A438;\r\nconst void * RTTI_hkDisplaySphere = (void *)0x0598A4B8;\r\nconst void * RTTI_hkDisplayWireframe = (void *)0x0598A530;\r\nconst void * RTTI_hkErrStream = (void *)0x059855E0;\r\nconst void * RTTI_hkError = (void *)0x05CA2B10;\r\nconst void * RTTI_hkErrorRouter = (void *)0x05987AB0;\r\nconst void * RTTI_hkFileSystem = (void *)0x05A855D8;\r\nconst void * RTTI_hkFileSystem__Watcher = (void *)0x059854B0;\r\nconst void * RTTI_hkGeometry = (void *)0x059853B8;\r\nconst void * RTTI_hkGeometryUtils__IVertices = (void *)0x059914E8;\r\nconst void * RTTI_hkHardwareInfo = (void *)0x05987A88;\r\nconst void * RTTI_hkHdrFileFormat = (void *)0x05990C68;\r\nconst void * RTTI_hkImageConversionStep = (void *)0x05990C90;\r\nconst void * RTTI_hkImageConversion_AddAlpha = (void *)0x05990DA8;\r\nconst void * RTTI_hkImageConversion_Decode555 = (void *)0x059912F8;\r\nconst void * RTTI_hkImageConversion_DiscardChannels = (void *)0x059912C0;\r\nconst void * RTTI_hkImageConversion_FLOAT16_to_32 = (void *)0x05990FF8;\r\nconst void * RTTI_hkImageConversion_FLOAT32_to_16 = (void *)0x05990FC0;\r\nconst void * RTTI_hkImageConversion_FLOAT_to_R11G11B10 = (void *)0x059911C0;\r\nconst void * RTTI_hkImageConversion_FLOAT_to_SNORM8 = (void *)0x05990F08;\r\nconst void * RTTI_hkImageConversion_FLOAT_to_UNORM16 = (void *)0x05990F40;\r\nconst void * RTTI_hkImageConversion_FLOAT_to_UNORM8 = (void *)0x05990ED0;\r\nconst void * RTTI_hkImageConversion_FLOAT_to_UNORM8_SRGB = (void *)0x05990F80;\r\nconst void * RTTI_hkImageConversion_Pad_to_RGBA32 = (void *)0x05991150;\r\nconst void * RTTI_hkImageConversion_Pad_to_RGBA8 = (void *)0x05991188;\r\nconst void * RTTI_hkImageConversion_R11G11B10_to_FLOAT = (void *)0x05991200;\r\nconst void * RTTI_hkImageConversion_R11G11B10_to_HALF = (void *)0x05991240;\r\nconst void * RTTI_hkImageConversion_R32_G32_B32_FLOAT_to_B8_G8_R8_UNSIGNED_NORMALIZED = (void *)0x05991030;\r\nconst void * RTTI_hkImageConversion_R32_G32_B32_FLOAT_to_R8_G8_B8_A8_UNSIGNED_NORMALIZED = (void *)0x059910F0;\r\nconst void * RTTI_hkImageConversion_R32_G32_B32_FLOAT_to_R8_G8_B8_UNSIGNED_NORMALIZED = (void *)0x05991090;\r\nconst void * RTTI_hkImageConversion_R8G8B8A8_to_R8G8B8 = (void *)0x05991280;\r\nconst void * RTTI_hkImageConversion_SNORM8_to_FLOAT = (void *)0x05990E18;\r\nconst void * RTTI_hkImageConversion_SetAlpha = (void *)0x05990D70;\r\nconst void * RTTI_hkImageConversion_UNORM16_to_FLOAT = (void *)0x05990E50;\r\nconst void * RTTI_hkImageConversion_UNORM8_SRGB_to_FLOAT = (void *)0x05990E90;\r\nconst void * RTTI_hkImageConversion_UNORM8_to_FLOAT = (void *)0x05990DE0;\r\nconst void * RTTI_hkImageRef = (void *)0x05990208;\r\nconst void * RTTI_hkImageSwizzleConversion32_2103 = (void *)0x05990D38;\r\nconst void * RTTI_hkIndexedTransformSet = (void *)0x05990150;\r\nconst void * RTTI_hkIo__Detail__ArrayWriteBufferImpl = (void *)0x05986FD8;\r\nconst void * RTTI_hkIo__Detail__ReadBufferImpl = (void *)0x05986EF8;\r\nconst void * RTTI_hkIo__Detail__StreamReaderImpl = (void *)0x05986F30;\r\nconst void * RTTI_hkIo__Detail__StreamWriteBufferImpl = (void *)0x05986FA0;\r\nconst void * RTTI_hkKeycodeData = (void *)0x05990338;\r\nconst void * RTTI_hkLifoAllocator = (void *)0x059852C8;\r\nconst void * RTTI_hkLocalFrameGroup = (void *)0x05986C28;\r\nconst void * RTTI_hkLog__Output = (void *)0x05985390;\r\nconst void * RTTI_hkMallocAllocator = (void *)0x05988708;\r\nconst void * RTTI_hkMemoryAllocator = (void *)0x05CAC4C8;\r\nconst void * RTTI_hkMemoryMeshBody = (void *)0x0598FFE8;\r\nconst void * RTTI_hkMemoryMeshMaterial = (void *)0x05990040;\r\nconst void * RTTI_hkMemoryMeshShape = (void *)0x05990070;\r\nconst void * RTTI_hkMemoryMeshTexture = (void *)0x05990010;\r\nconst void * RTTI_hkMemoryMeshTexture__Sampler = (void *)0x05990278;\r\nconst void * RTTI_hkMemoryMeshVertexBuffer = (void *)0x059902E0;\r\nconst void * RTTI_hkMemoryResourceContainer = (void *)0x05986B90;\r\nconst void * RTTI_hkMemoryResourceHandle = (void *)0x05986B60;\r\nconst void * RTTI_hkMemorySystem = (void *)0x05CAC4F0;\r\nconst void * RTTI_hkMemory__ScopedStats__Collector = (void *)0x05986D48;\r\nconst void * RTTI_hkMeshTexture__Sampler = (void *)0x059902B0;\r\nconst void * RTTI_hkMeshVertexBuffer = (void *)0x059901B0;\r\nconst void * RTTI_hkMonitorStreamColorTable = (void *)0x05986A80;\r\nconst void * RTTI_hkMonitorStreamContainer = (void *)0x05986AB0;\r\nconst void * RTTI_hkMonitorStreamStringMap = (void *)0x05986A20;\r\nconst void * RTTI_hkMonitorStreamTypeMap = (void *)0x05986A50;\r\nconst void * RTTI_hkMultipleVertexBuffer = (void *)0x05990180;\r\nconst void * RTTI_hkObjectResource = (void *)0x05987130;\r\nconst void * RTTI_hkOstream = (void *)0x05985608;\r\nconst void * RTTI_hkParserBuffer = (void *)0x059886B8;\r\nconst void * RTTI_hkPrimaryCommandDispatcher = (void *)0x0598D218;\r\nconst void * RTTI_hkProcessFactory = (void *)0x0598A410;\r\nconst void * RTTI_hkRefCountedProperties = (void *)0x05985200;\r\nconst void * RTTI_hkReferencedObject = (void *)0x059D46E0;\r\nconst void * RTTI_hkReferencedObjectLock = (void *)0x05985268;\r\nconst void * RTTI_hkReflect__Any__ArrayImpl = (void *)0x05985928;\r\nconst void * RTTI_hkReflect__AttributeArrayWithOwnership__AllocImpl = (void *)0x05985830;\r\nconst void * RTTI_hkReflect__ClonerCallback = (void *)0x05985418;\r\nconst void * RTTI_hkReflect__Detail__AllocationImpl = (void *)0x059852F0;\r\nconst void * RTTI_hkReflect__Detail__AttributeAllocImpl = (void *)0x05985658;\r\nconst void * RTTI_hkReflect__Detail__BuiltinTypeReg = (void *)0x05987600;\r\nconst void * RTTI_hkReflect__Detail__BuiltinTypeReg__SubscriptionImpl = (void *)0x05987640;\r\nconst void * RTTI_hkReflect__Detail__CharBufferImpl = (void *)0x05985DC0;\r\nconst void * RTTI_hkReflect__Detail__CloneOnHeap = (void *)0x05985448;\r\nconst void * RTTI_hkReflect__Detail__DerivedDataCache = (void *)0x05985700;\r\nconst void * RTTI_hkReflect__Detail__HavokRecordImpl = (void *)0x05986898;\r\nconst void * RTTI_hkReflect__Detail__HavokStringImpl = (void *)0x059868D0;\r\nconst void * RTTI_hkReflect__Detail__HeapAllocImpl = (void *)0x05985988;\r\nconst void * RTTI_hkReflect__Detail__HomogeneousArrayImpl = (void *)0x05986858;\r\nconst void * RTTI_hkReflect__Detail__Impl = (void *)0x05985160;\r\nconst void * RTTI_hkReflect__Detail__NullptrImpl = (void *)0x05985E30;\r\nconst void * RTTI_hkReflect__Detail__OpaqueImpl = (void *)0x05987C68;\r\nconst void * RTTI_hkReflect__Detail__RawPointerImpl = (void *)0x05985DF8;\r\nconst void * RTTI_hkReflect__Detail__ReferenceImpl = (void *)0x05985EB8;\r\nconst void * RTTI_hkReflect__Detail__ReferencedObjectAllocImpl = (void *)0x05986760;\r\nconst void * RTTI_hkReflect__Detail__ReferencedObjectPointerImpl = (void *)0x05985E70;\r\nconst void * RTTI_hkReflect__Detail__RepeatImpl = (void *)0x05985D50;\r\nconst void * RTTI_hkReflect__Detail__ScopedPtrImpl = (void *)0x059866F8;\r\nconst void * RTTI_hkReflect__Detail__SetterArrayImpl = (void *)0x05984A58;\r\nconst void * RTTI_hkReflect__Detail__SetterRecordImpl = (void *)0x059849C8;\r\nconst void * RTTI_hkReflect__Detail__StaticArrayImpl = (void *)0x059867A8;\r\nconst void * RTTI_hkReflect__Detail__StaticStringImpl = (void *)0x05985D88;\r\nconst void * RTTI_hkReflect__Detail__StringOut__StringOutImpl = (void *)0x059869B0;\r\nconst void * RTTI_hkReflect__Detail__ViewPointerImpl = (void *)0x05986908;\r\nconst void * RTTI_hkReflect__Detail__VoidImpl = (void *)0x05987CA0;\r\nconst void * RTTI_hkReflect__Detail__hkArrayImpl = (void *)0x059867E0;\r\nconst void * RTTI_hkReflect__Detail__hkInplaceArrayImpl = (void *)0x05986818;\r\nconst void * RTTI_hkReflect__MutableTypeReg = (void *)0x05986E98;\r\nconst void * RTTI_hkReflect__TypeBuilder = (void *)0x059857F8;\r\nconst void * RTTI_hkReflect__TypeCopier = (void *)0x05986EC8;\r\nconst void * RTTI_hkReflect__TypeReg = (void *)0x05985368;\r\nconst void * RTTI_hkReflect__Var__VarImpl = (void *)0x05985480;\r\nconst void * RTTI_hkReflect__Version__PatchInfoCache = (void *)0x059876F0;\r\nconst void * RTTI_hkReflect__Version__PatchRegistry = (void *)0x05987728;\r\nconst void * RTTI_hkReflect__Version__PatchSet = (void *)0x059876B8;\r\nconst void * RTTI_hkReflect__Version__Patcher = (void *)0x05986980;\r\nconst void * RTTI_hkRelArray_ArrayImpl = (void *)0x059858F8;\r\nconst void * RTTI_hkResource = (void *)0x05986E40;\r\nconst void * RTTI_hkScalarF_FloatImpl = (void *)0x059869F0;\r\nconst void * RTTI_hkSecondaryCommandDispatcher = (void *)0x0598B6A0;\r\nconst void * RTTI_hkSeekableStreamReader = (void *)0x059854E0;\r\nconst void * RTTI_hkSerialize__Bundle = (void *)0x05987BA8;\r\nconst void * RTTI_hkSerialize__BundleBuilder = (void *)0x05987C38;\r\nconst void * RTTI_hkSerialize__Detail__ChainingCloneCallback = (void *)0x05986DC0;\r\nconst void * RTTI_hkSerialize__Detail__CloneToRegistered = (void *)0x05986D80;\r\nconst void * RTTI_hkSerialize__Detail__SkipDyingCallback = (void *)0x05986E00;\r\nconst void * RTTI_hkSerialize__Detail__TagfileArrayImpl = (void *)0x05987D80;\r\nconst void * RTTI_hkSerialize__Detail__TagfileBundle = (void *)0x05987D08;\r\nconst void * RTTI_hkSerialize__Detail__TagfilePointerImpl = (void *)0x05987D40;\r\nconst void * RTTI_hkSerialize__Detail__TagfileStringImpl = (void *)0x05987DC0;\r\nconst void * RTTI_hkSerialize__NoteHandler = (void *)0x05987048;\r\nconst void * RTTI_hkSerialize__ReadFormat = (void *)0x05987C08;\r\nconst void * RTTI_hkSerialize__TagfileReadFormat = (void *)0x05987CD0;\r\nconst void * RTTI_hkSerialize__TagfileWriteFormat = (void *)0x05987158;\r\nconst void * RTTI_hkSerialize__TagfileWriteFormat__Impl = (void *)0x059871C0;\r\nconst void * RTTI_hkSerialize__WriteFormat = (void *)0x05987190;\r\nconst void * RTTI_hkSimdDouble64_FloatImpl = (void *)0x059856D0;\r\nconst void * RTTI_hkSimpleLocalFrame = (void *)0x05986C78;\r\nconst void * RTTI_hkSkinBinding = (void *)0x05990098;\r\nconst void * RTTI_hkSkinnedRefMeshShape = (void *)0x05990120;\r\nconst void * RTTI_hkSlot = (void *)0x05A1E1D8;\r\nconst void * RTTI_hkSocket = (void *)0x05987AD8;\r\nconst void * RTTI_hkSocket__ReaderAdapter = (void *)0x05987AF8;\r\nconst void * RTTI_hkSocket__WriterAdapter = (void *)0x05987B28;\r\nconst void * RTTI_hkSolverAllocator = (void *)0x05988758;\r\nconst void * RTTI_hkStackTracer = (void *)0x05987B58;\r\nconst void * RTTI_hkStdioStreamReader = (void *)0x05987548;\r\nconst void * RTTI_hkStorageSkinnedMeshShape = (void *)0x059900F0;\r\nconst void * RTTI_hkStreamReader = (void *)0x05A85878;\r\nconst void * RTTI_hkStreamWriter = (void *)0x05A858A0;\r\nconst void * RTTI_hkStringBuf__StringImpl = (void *)0x05986730;\r\nconst void * RTTI_hkStringObject = (void *)0x059849A0;\r\nconst void * RTTI_hkStringPtr__StringImpl = (void *)0x05985298;\r\nconst void * RTTI_hkStringView__StringImpl = (void *)0x059857C8;\r\nconst void * RTTI_hkTask = (void *)0x05CA3978;\r\nconst void * RTTI_hkTaskGraph = (void *)0x05CA39F0;\r\nconst void * RTTI_hkTaskQueue = (void *)0x05987760;\r\nconst void * RTTI_hkTaskQueue_BatchingTask = (void *)0x05988660;\r\nconst void * RTTI_hkTask__ExecutionContext = (void *)0x05CA3998;\r\nconst void * RTTI_hkTgaFileFormat = (void *)0x05990C40;\r\nconst void * RTTI_hkThread = (void *)0x05987578;\r\nconst void * RTTI_hkThreadMemory = (void *)0x05988730;\r\nconst void * RTTI_hkThreadPool = (void *)0x05CA7060;\r\nconst void * RTTI_hkTransientAllocator = (void *)0x05987688;\r\nconst void * RTTI_hkTypeVm__ArrayInstruction = (void *)0x05987338;\r\nconst void * RTTI_hkTypeVm__BlockInstruction = (void *)0x05987368;\r\nconst void * RTTI_hkTypeVm__BlockPass = (void *)0x05987398;\r\nconst void * RTTI_hkTypeVm__CheckTypeKindsPass = (void *)0x05987470;\r\nconst void * RTTI_hkTypeVm__DefaultInstruction = (void *)0x05987290;\r\nconst void * RTTI_hkTypeVm__GenerateConvertNumericKindPass = (void *)0x059874A8;\r\nconst void * RTTI_hkTypeVm__InlineFixedArrayPass = (void *)0x059873C8;\r\nconst void * RTTI_hkTypeVm__InlineRecordPass = (void *)0x05987400;\r\nconst void * RTTI_hkTypeVm__Instruction = (void *)0x05987230;\r\nconst void * RTTI_hkTypeVm__IntAndFloatConversionPass = (void *)0x05987430;\r\nconst void * RTTI_hkTypeVm__NopInstruction = (void *)0x05987260;\r\nconst void * RTTI_hkTypeVm__Pass = (void *)0x05986CE0;\r\nconst void * RTTI_hkTypeVm__ProgramInstruction = (void *)0x059872C8;\r\nconst void * RTTI_hkTypeVm__RecordInstruction = (void *)0x05987300;\r\nconst void * RTTI_hkUuidObject = (void *)0x05985768;\r\nconst void * RTTI_hkUuidPseudoRandomGenerator = (void *)0x05985790;\r\nconst void * RTTI_hkViewport = (void *)0x05984B88;\r\nconst void * RTTI_hkWin32FileSystem = (void *)0x05A85600;\r\nconst void * RTTI_hkWin32FileSystem__WatcherImpl = (void *)0x05985578;\r\nconst void * RTTI_hkWin32StreamWriter = (void *)0x059875D0;\r\nconst void * RTTI_hkXmlLexAnalyzer = (void *)0x059886E0;\r\nconst void * RTTI_hkXmlStreamParser = (void *)0x05987B80;\r\nconst void * RTTI_hk__IsValueArray__Impl = (void *)0x05985628;\r\nconst void * RTTI_hkaSkeleton = (void *)0x059901E0;\r\nconst void * RTTI_hkcdDynamicAabbTree = (void *)0x0598FEB0;\r\nconst void * RTTI_hkcdDynamicAabbTree__Impl = (void *)0x0598FE20;\r\nconst void * RTTI_hkcdGsk_Float3ShapeAOnlyInterface = (void *)0x0598F770;\r\nconst void * RTTI_hkcdGsk_Float3ShapeInterface = (void *)0x0598F738;\r\nconst void * RTTI_hkcdPlanarCsgOperand = (void *)0x0598F448;\r\nconst void * RTTI_hkcdPlanarEntity = (void *)0x0598F3E8;\r\nconst void * RTTI_hkcdPlanarGeometry = (void *)0x0598F610;\r\nconst void * RTTI_hkcdPlanarGeometryPlanesCollection = (void *)0x0598F4B8;\r\nconst void * RTTI_hkcdPlanarGeometryPolygonCollection = (void *)0x0598F478;\r\nconst void * RTTI_hkcdPlanarGeometry__VertexStorage = (void *)0x0598F640;\r\nconst void * RTTI_hkcdPlanarSolid = (void *)0x0598F4F8;\r\nconst void * RTTI_hkcdPlanarSolid__NodeStorage = (void *)0x0598F410;\r\nconst void * RTTI_hkcdSimdTreeUtils__Build__EmptyRunnable = (void *)0x0598F7E8;\r\nconst void * RTTI_hkcdSimdTreeUtils__Build__Task = (void *)0x0598F940;\r\nconst void * RTTI_hkcdSimdTreeUtils__Build__hkcdRefitWithAabbFloat3Wrapper = (void *)0x0598F9D0;\r\nconst void * RTTI_hkcdSimdTreeUtils__Build__hkcdRefitWithAabbWrapper = (void *)0x0598F980;\r\nconst void * RTTI_hkcdSimdTree__BuildContext = (void *)0x0598E108;\r\nconst void * RTTI_hkcdSimdTree__ICustomRefit = (void *)0x0598F708;\r\nconst void * RTTI_hkcdSimdTree__IParallelBuild__IRunnable = (void *)0x0598F7A8;\r\nconst void * RTTI_hkcdSimdTree__LeafCollector = (void *)0x0598BE50;\r\nconst void * RTTI_hkcdSimdTree__PairCollector = (void *)0x0598E790;\r\nconst void * RTTI_hkcdStaticAabbTree = (void *)0x0598FE50;\r\nconst void * RTTI_hkcdStaticAabbTree__Impl = (void *)0x0598FE80;\r\nconst void * RTTI_hkcdStaticMeshTree__GeometryProvider = (void *)0x05991598;\r\nconst void * RTTI_hkgpCgo__Config = (void *)0x05CA50E8;\r\nconst void * RTTI_hkgpConvexHull = (void *)0x05988780;\r\nconst void * RTTI_hkgpDeprecatedConvexDecompositionImpl__DefaultProgress = (void *)0x0598F5C0;\r\nconst void * RTTI_hkgpDeprecatedConvexDecompositionInternal__IInternal = (void *)0x0598F570;\r\nconst void * RTTI_hkgpDeprecatedConvexDecomposition__IProgress = (void *)0x0598F520;\r\nconst void * RTTI_hkgpMesh__IConvexOverlap = (void *)0x05988828;\r\nconst void * RTTI_hknpAction = (void *)0x059EAD90;\r\nconst void * RTTI_hknpActionManager = (void *)0x0598C318;\r\nconst void * RTTI_hknpAddActiveBodyPairsTask = (void *)0x0598D320;\r\nconst void * RTTI_hknpAllHitsCollector = (void *)0x059D46B0;\r\nconst void * RTTI_hknpAnimatedShapeSurfaceVelocityModifier = (void *)0x0598D850;\r\nconst void * RTTI_hknpAnyHitCollector = (void *)0x059D45F0;\r\nconst void * RTTI_hknpApiCommandProcessor = (void *)0x0598B8C0;\r\nconst void * RTTI_hknpApplyDragTask = (void *)0x0598E530;\r\nconst void * RTTI_hknpArrayAction = (void *)0x05CA7380;\r\nconst void * RTTI_hknpBSCharacterProxy = (void *)0x05CA7560;\r\nconst void * RTTI_hknpBSCharacterRigidBody = (void *)0x05CACAB8;\r\nconst void * RTTI_hknpBSCustomCollisionFilter = (void *)0x059D4650;\r\nconst void * RTTI_hknpBSMaterial = (void *)0x05CA5848;\r\nconst void * RTTI_hknpBSMaterialProperties = (void *)0x05A5A330;\r\nconst void * RTTI_hknpBSMotionPropertiesLibrary = (void *)0x05CA21E0;\r\nconst void * RTTI_hknpBSMouseSpringAction = (void *)0x05CA75C0;\r\nconst void * RTTI_hknpBSMoveLimitModifier = (void *)0x05CA6108;\r\nconst void * RTTI_hknpBSPlacementStreamCache = (void *)0x05CA5AD8;\r\nconst void * RTTI_hknpBSShapeCodec = (void *)0x05CA1E60;\r\nconst void * RTTI_hknpBSVehicleInstance = (void *)0x05CA70E0;\r\nconst void * RTTI_hknpBSVehicleRayCastWheelCollide = (void *)0x05CA68D8;\r\nconst void * RTTI_hknpBSVehicleSuspension = (void *)0x05CA6950;\r\nconst void * RTTI_hknpBSWorld = (void *)0x05CA3950;\r\nconst void * RTTI_hknpBSWorldUtil__hknpBSPhysicsSystem = (void *)0x05CA29B8;\r\nconst void * RTTI_hknpBSWorldUtil__hknpBSRagdoll = (void *)0x05CA2938;\r\nconst void * RTTI_hknpBackfaceCollisionModifier = (void *)0x05CA20F8;\r\nconst void * RTTI_hknpBallGun = (void *)0x0598AC70;\r\nconst void * RTTI_hknpBinaryAction = (void *)0x0598ABF0;\r\nconst void * RTTI_hknpBodyData = (void *)0x0598ADA8;\r\nconst void * RTTI_hknpBodyIntegrator = (void *)0x0598A6A0;\r\nconst void * RTTI_hknpBodyQuality = (void *)0x05CA3770;\r\nconst void * RTTI_hknpBodyQualityLibrary = (void *)0x0598A670;\r\nconst void * RTTI_hknpBodyReference = (void *)0x0598A560;\r\nconst void * RTTI_hknpBoxShape = (void *)0x0598B320;\r\nconst void * RTTI_hknpBreakableConstraintData = (void *)0x0598B3E8;\r\nconst void * RTTI_hknpBroadPhase = (void *)0x05991C78;\r\nconst void * RTTI_hknpBroadphaseTriggerCollisionDetector = (void *)0x0598DBB8;\r\nconst void * RTTI_hknpBuildConstraintJacobiansTask = (void *)0x0598E600;\r\nconst void * RTTI_hknpCapsuleCapsuleConvexConvexManifoldGenerator = (void *)0x0598DAF0;\r\nconst void * RTTI_hknpCapsuleShape = (void *)0x0598B348;\r\nconst void * RTTI_hknpCharacterContext = (void *)0x0598B5E0;\r\nconst void * RTTI_hknpCharacterProxy = (void *)0x05CA7590;\r\nconst void * RTTI_hknpCharacterProxyCinfo = (void *)0x05AA94E8;\r\nconst void * RTTI_hknpCharacterProxyInternals__QueryCollector = (void *)0x0598C6A0;\r\nconst void * RTTI_hknpCharacterProxyListener = (void *)0x05A59768;\r\nconst void * RTTI_hknpCharacterRigidBody = (void *)0x05CACA88;\r\nconst void * RTTI_hknpCharacterRigidBodyCinfo = (void *)0x05CA7888;\r\nconst void * RTTI_hknpCharacterStateManager = (void *)0x0598B610;\r\nconst void * RTTI_hknpCircularSurfaceVelocity = (void *)0x0598AB88;\r\nconst void * RTTI_hknpClosestHitCollector = (void *)0x059C3180;\r\nconst void * RTTI_hknpClosestUniqueBodyIdHitCollector = (void *)0x05CA6570;\r\nconst void * RTTI_hknpClosestUniqueBodyIdHitCollectorDeprecated = (void *)0x05CA65B0;\r\nconst void * RTTI_hknpCollideSyncTask = (void *)0x0598D618;\r\nconst void * RTTI_hknpCollisionDetector = (void *)0x0598D9D0;\r\nconst void * RTTI_hknpCollisionFilter = (void *)0x059D4710;\r\nconst void * RTTI_hknpCollisionQueryCollector = (void *)0x059C31B0;\r\nconst void * RTTI_hknpCollisionQueryDispatcher = (void *)0x0598CF68;\r\nconst void * RTTI_hknpCompositeCompositeCollisionDetector = (void *)0x0598DB38;\r\nconst void * RTTI_hknpCompositeShape = (void *)0x0598A588;\r\nconst void * RTTI_hknpCompoundShape = (void *)0x0599CA78;\r\nconst void * RTTI_hknpCompoundShapeData = (void *)0x0598A830;\r\nconst void * RTTI_hknpCompoundShapeInternalsCdDynamicTreeKeyMask = (void *)0x0598A930;\r\nconst void * RTTI_hknpCompoundShapeInternalsSimdTreeKeyMask = (void *)0x0598A8F0;\r\nconst void * RTTI_hknpCompressedMeshShape = (void *)0x0598A978;\r\nconst void * RTTI_hknpCompressedMeshShapeCinfo = (void *)0x05AED7B8;\r\nconst void * RTTI_hknpCompressedMeshShapeData = (void *)0x05991518;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GeometryProvider = (void *)0x05991550;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToConvexQuery = (void *)0x05991920;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToConvexQueryScaled = (void *)0x05991980;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryScaled0 = (void *)0x05991AB0;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryScaled1 = (void *)0x05991B20;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryScaled2 = (void *)0x05991B90;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToHeightFieldQueryUnscaled = (void *)0x05991A40;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToMeshQueryScaled = (void *)0x05991860;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__GetClosestPointsToMeshQueryUnscaled = (void *)0x05991800;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__KeyMask = (void *)0x059915D8;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__RayCastQueryBase = (void *)0x05991700;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__ShapeCastQuery = (void *)0x0598C7F0;\r\nconst void * RTTI_hknpCompressedMeshShapeInternals__ShapeCastQueryScaled = (void *)0x0598C840;\r\nconst void * RTTI_hknpConstraintAtomSolver = (void *)0x0598B6D8;\r\nconst void * RTTI_hknpConstraintCollisionFilter = (void *)0x0598CA50;\r\nconst void * RTTI_hknpConstraintForceEventCreator = (void *)0x0598DBF8;\r\nconst void * RTTI_hknpConstraintForceExceededEventCreator = (void *)0x0598DC30;\r\nconst void * RTTI_hknpContactImpulseClippedEventCreator = (void *)0x0598D6A8;\r\nconst void * RTTI_hknpContactImpulseEventCreator = (void *)0x0598D6E8;\r\nconst void * RTTI_hknpConvexCompositeCollisionDetector = (void *)0x0598DAA8;\r\nconst void * RTTI_hknpConvexConvexCollisionDetector = (void *)0x0598E6E0;\r\nconst void * RTTI_hknpConvexConvexShapeBaseInterface = (void *)0x05991C38;\r\nconst void * RTTI_hknpConvexShape = (void *)0x05CA6070;\r\nconst void * RTTI_hknpCylinderShape = (void *)0x0598B370;\r\nconst void * RTTI_hknpDeactivationMaintenanceTask = (void *)0x0598D470;\r\nconst void * RTTI_hknpDecoratorShape = (void *)0x0598A8B8;\r\nconst void * RTTI_hknpDefaultBroadPhaseConfig = (void *)0x05CA3850;\r\nconst void * RTTI_hknpDefaultCompressedMeshShapeCinfo = (void *)0x05AED7F0;\r\nconst void * RTTI_hknpDefaultExternMeshShapeGeometry = (void *)0x0598AA10;\r\nconst void * RTTI_hknpDefaultHeightFieldGeometry = (void *)0x0598B288;\r\nconst void * RTTI_hknpDefaultModifierSet = (void *)0x0598D648;\r\nconst void * RTTI_hknpDeflectedLinearCast__CheckStartCollector = (void *)0x0598E050;\r\nconst void * RTTI_hknpDeflectedLinearCast__FilteredQueryCollector = (void *)0x0598E000;\r\nconst void * RTTI_hknpDeflectedLinearCast__QueryFilter = (void *)0x0598E098;\r\nconst void * RTTI_hknpDestructionShapeProperties = (void *)0x0598AD18;\r\nconst void * RTTI_hknpDisableCollisionFilter = (void *)0x0598A780;\r\nconst void * RTTI_hknpDummyShape = (void *)0x0598AB28;\r\nconst void * RTTI_hknpDynamicSpaceSplitter = (void *)0x0598D2F0;\r\nconst void * RTTI_hknpEaseConstraintsAction = (void *)0x05CA71B8;\r\nconst void * RTTI_hknpEasePenetrationsAction = (void *)0x0598C5B0;\r\nconst void * RTTI_hknpEventDispatcher = (void *)0x0598D170;\r\nconst void * RTTI_hknpEventMergeAndDispatcher = (void *)0x0598D1A0;\r\nconst void * RTTI_hknpExtendedExternMeshShapeGeometry = (void *)0x0598AA50;\r\nconst void * RTTI_hknpExternMeshShape = (void *)0x0598B2F0;\r\nconst void * RTTI_hknpExternMeshShapeBuildContext = (void *)0x059914B0;\r\nconst void * RTTI_hknpExternMeshShapeData = (void *)0x0598A9A8;\r\nconst void * RTTI_hknpFaceClipConvexConvexManifoldGenerator = (void *)0x0598E6A0;\r\nconst void * RTTI_hknpFinalizeNarrowPhaseGridTask = (void *)0x0598D570;\r\nconst void * RTTI_hknpFinalizeNarrowPhasePairsTask = (void *)0x0598D538;\r\nconst void * RTTI_hknpFireSignalTask = (void *)0x0598E138;\r\nconst void * RTTI_hknpFirstPersonCharacter = (void *)0x0598ACE8;\r\nconst void * RTTI_hknpFirstPersonGun = (void *)0x0598AC40;\r\nconst void * RTTI_hknpFixedClosestHitCollector = (void *)0x05CA5AA0;\r\nconst void * RTTI_hknpFixedClosestUniqueBodyHitCollector = (void *)0x05CA5A60;\r\nconst void * RTTI_hknpFlipBackfaceCollisionModifier = (void *)0x0598D8C0;\r\nconst void * RTTI_hknpFlippedGetClosestPointsQueryCollector = (void *)0x0598CE60;\r\nconst void * RTTI_hknpFlippedShapeCastQueryCollector = (void *)0x0598CFA0;\r\nconst void * RTTI_hknpForwardClosestHitCollector = (void *)0x0598CE20;\r\nconst void * RTTI_hknpFullCast__ManifoldGenerator = (void *)0x0598E4F8;\r\nconst void * RTTI_hknpGenSolverTasksTask = (void *)0x0598D4D8;\r\nconst void * RTTI_hknpGlobals = (void *)0x0598CF10;\r\nconst void * RTTI_hknpGravityGun = (void *)0x0598AC98;\r\nconst void * RTTI_hknpGroupCollisionFilter = (void *)0x0598C9A8;\r\nconst void * RTTI_hknpHeightFieldBoundingVolume = (void *)0x0598B488;\r\nconst void * RTTI_hknpHeightFieldGeometry = (void *)0x0598B2C0;\r\nconst void * RTTI_hknpHeightFieldShape = (void *)0x0598A5B8;\r\nconst void * RTTI_hknpHitScalingCollector = (void *)0x0598BEC0;\r\nconst void * RTTI_hknpInternalCommandProcessor = (void *)0x0598B668;\r\nconst void * RTTI_hknpLeafShapeSensor = (void *)0x059909D8;\r\nconst void * RTTI_hknpLegacyRestitutionModifier = (void *)0x0598D7B0;\r\nconst void * RTTI_hknpLinearSurfaceVelocity = (void *)0x0598ABC0;\r\nconst void * RTTI_hknpLodShape = (void *)0x0598A728;\r\nconst void * RTTI_hknpMalleableConstraintData = (void *)0x0598B450;\r\nconst void * RTTI_hknpManifoldEventCreator = (void *)0x0598D890;\r\nconst void * RTTI_hknpMaskedCompoundShape = (void *)0x0598B258;\r\nconst void * RTTI_hknpMaskedShape = (void *)0x0598A890;\r\nconst void * RTTI_hknpMaskedShape__MaskWrapper = (void *)0x0598AAF0;\r\nconst void * RTTI_hknpMassChangerModifier = (void *)0x0598D720;\r\nconst void * RTTI_hknpMaterialData = (void *)0x0598AD50;\r\nconst void * RTTI_hknpMaterialLibrary = (void *)0x05CA2C08;\r\nconst void * RTTI_hknpMaterialPalette = (void *)0x0598A750;\r\nconst void * RTTI_hknpModifier = (void *)0x05A858F8;\r\nconst void * RTTI_hknpMotionPropertiesData = (void *)0x0598AD78;\r\nconst void * RTTI_hknpMotionPropertiesLibrary = (void *)0x05CA2180;\r\nconst void * RTTI_hknpMotionWeldingModifier = (void *)0x0598D968;\r\nconst void * RTTI_hknpMountedBallGun = (void *)0x0598CC00;\r\nconst void * RTTI_hknpMultithreadedSimulation = (void *)0x0598D358;\r\nconst void * RTTI_hknpNeighborWeldingModifier = (void *)0x0598D930;\r\nconst void * RTTI_hknpNullShapeTagCodec = (void *)0x0598CF38;\r\nconst void * RTTI_hknpPairCollisionFilter = (void *)0x0598B228;\r\nconst void * RTTI_hknpParticleEventCreator = (void *)0x0598DC70;\r\nconst void * RTTI_hknpParticleShapeLibrary = (void *)0x0598E490;\r\nconst void * RTTI_hknpParticleSimulationContext = (void *)0x0598DDD8;\r\nconst void * RTTI_hknpParticlesClosestHitOnMeshCollector = (void *)0x0598E750;\r\nconst void * RTTI_hknpParticlesCollider = (void *)0x0598E0D8;\r\nconst void * RTTI_hknpParticlesColliderShape = (void *)0x0598AB50;\r\nconst void * RTTI_hknpParticlesCollisionFilter = (void *)0x0598E718;\r\nconst void * RTTI_hknpParticlesDynamicHitsCollector = (void *)0x0598E868;\r\nconst void * RTTI_hknpParticlesStaticCollector = (void *)0x0598E830;\r\nconst void * RTTI_hknpPhysicsSceneData = (void *)0x0598ADF8;\r\nconst void * RTTI_hknpPhysicsSystem = (void *)0x05CA2910;\r\nconst void * RTTI_hknpPhysicsSystemData = (void *)0x059E57E0;\r\nconst void * RTTI_hknpPostCollideTask = (void *)0x0598D390;\r\nconst void * RTTI_hknpPostSolveTask = (void *)0x0598D410;\r\nconst void * RTTI_hknpPreSolveTask = (void *)0x0598D3E8;\r\nconst void * RTTI_hknpPrepareConstraintsTask = (void *)0x0598E5C8;\r\nconst void * RTTI_hknpPrepareNarrowPhasePairsTask = (void *)0x0598E590;\r\nconst void * RTTI_hknpPrepareNarrowPhaseTask = (void *)0x0598E558;\r\nconst void * RTTI_hknpPrepareSolverData = (void *)0x0598E668;\r\nconst void * RTTI_hknpProcessFullCastsTask = (void *)0x0598D4A8;\r\nconst void * RTTI_hknpProcessNarrowPhaseGridTask = (void *)0x0598D438;\r\nconst void * RTTI_hknpProcessNarrowPhasePairsTask = (void *)0x0598E4C0;\r\nconst void * RTTI_hknpProjectileGun = (void *)0x0598ACC0;\r\nconst void * RTTI_hknpRagdoll = (void *)0x05CA2880;\r\nconst void * RTTI_hknpRagdollData = (void *)0x0598CDF8;\r\nconst void * RTTI_hknpRefDragProperties = (void *)0x0598A640;\r\nconst void * RTTI_hknpRefMassDistribution = (void *)0x05CA5B90;\r\nconst void * RTTI_hknpRefMaterial = (void *)0x0598A700;\r\nconst void * RTTI_hknpRefWorldCinfo = (void *)0x0598ADD0;\r\nconst void * RTTI_hknpReorientAction = (void *)0x05CA2150;\r\nconst void * RTTI_hknpRestitutionModifier = (void *)0x0598D780;\r\nconst void * RTTI_hknpSafeEaseConstraintsAction = (void *)0x05CA71E8;\r\nconst void * RTTI_hknpScaledConvexShape = (void *)0x0598AAC0;\r\nconst void * RTTI_hknpScaledConvexShapeBase = (void *)0x0598AA90;\r\nconst void * RTTI_hknpSetShapeKeyACdDetector = (void *)0x0598DA38;\r\nconst void * RTTI_hknpShape = (void *)0x05CA6050;\r\nconst void * RTTI_hknpShapeBuffer = (void *)0x059D4688;\r\nconst void * RTTI_hknpShapeFunctionsSingleton = (void *)0x0598B4C0;\r\nconst void * RTTI_hknpShapeKeyArrayCacheCdDetector = (void *)0x0598DA70;\r\nconst void * RTTI_hknpShapeKeyMask = (void *)0x0598A5E8;\r\nconst void * RTTI_hknpShapeManager = (void *)0x0598CFE0;\r\nconst void * RTTI_hknpShapeMassProperties = (void *)0x0598A610;\r\nconst void * RTTI_hknpShapeScalingUtil = (void *)0x05991ED8;\r\nconst void * RTTI_hknpShape__MassConfig = (void *)0x05CA5B10;\r\nconst void * RTTI_hknpSignedDistanceFieldCollisionDetector = (void *)0x0598DB78;\r\nconst void * RTTI_hknpSimdTreeBroadPhase = (void *)0x05991CA0;\r\nconst void * RTTI_hknpSimdTreeBroadPhaseTasks__CollideTrees = (void *)0x05991DD8;\r\nconst void * RTTI_hknpSimdTreeBroadPhaseTasks__CopyAabbsAndMarkActiveBodiesDirty = (void *)0x05991D30;\r\nconst void * RTTI_hknpSimdTreeBroadPhaseTasks__Finalize = (void *)0x05991E18;\r\nconst void * RTTI_hknpSimdTreeBroadPhaseTasks__PrepareTreeBuildData = (void *)0x05991D90;\r\nconst void * RTTI_hknpSimulation = (void *)0x0598B640;\r\nconst void * RTTI_hknpSingleCellSpaceSplitter = (void *)0x0598D2B8;\r\nconst void * RTTI_hknpSingleThreadedSimulation = (void *)0x0598B770;\r\nconst void * RTTI_hknpSingleThreadedSolverData = (void *)0x0598D138;\r\nconst void * RTTI_hknpSoftContactModifier = (void *)0x0598D7E8;\r\nconst void * RTTI_hknpSolveFinalizeTask = (void *)0x0598D508;\r\nconst void * RTTI_hknpSolverData = (void *)0x0598D110;\r\nconst void * RTTI_hknpSolverFactoryTask = (void *)0x0598D5A8;\r\nconst void * RTTI_hknpSolverSchedulerTask = (void *)0x0598E638;\r\nconst void * RTTI_hknpSortFinalizeNarrowPhasePairsTask = (void *)0x0598D5D8;\r\nconst void * RTTI_hknpSpaceSplitter = (void *)0x0598D290;\r\nconst void * RTTI_hknpSphereShape = (void *)0x0598B398;\r\nconst void * RTTI_hknpSpringAction = (void *)0x0598AC18;\r\nconst void * RTTI_hknpStreamContactSolver = (void *)0x0598BA08;\r\nconst void * RTTI_hknpSurfaceVelocityModifier = (void *)0x0598D818;\r\nconst void * RTTI_hknpTaskGraph = (void *)0x05CA39C8;\r\nconst void * RTTI_hknpTriangleShape = (void *)0x0598B200;\r\nconst void * RTTI_hknpTriangleWeldingModifier = (void *)0x0598D8F8;\r\nconst void * RTTI_hknpTriggerModifier = (void *)0x0598D750;\r\nconst void * RTTI_hknpTyremarksInfo = (void *)0x0598B0D8;\r\nconst void * RTTI_hknpTyremarksWheel = (void *)0x0598B0A8;\r\nconst void * RTTI_hknpUnaryAction = (void *)0x059EADB8;\r\nconst void * RTTI_hknpUniqueBodyIdHitCollector = (void *)0x05A508D0;\r\nconst void * RTTI_hknpVariableTimeStepUtil = (void *)0x0598DD50;\r\nconst void * RTTI_hknpVehicleData = (void *)0x0598B080;\r\nconst void * RTTI_hknpVehicleDefaultAerodynamics = (void *)0x0598AE58;\r\nconst void * RTTI_hknpVehicleDefaultAnalogDriverInput = (void *)0x0598AF18;\r\nconst void * RTTI_hknpVehicleDefaultBrake = (void *)0x0598AEE8;\r\nconst void * RTTI_hknpVehicleDefaultEngine = (void *)0x0598AFB0;\r\nconst void * RTTI_hknpVehicleDefaultSteering = (void *)0x0598B010;\r\nconst void * RTTI_hknpVehicleDefaultSuspension = (void *)0x05CA6868;\r\nconst void * RTTI_hknpVehicleDefaultTransmission = (void *)0x0598B048;\r\nconst void * RTTI_hknpVehicleDefaultVelocityDamper = (void *)0x0598B130;\r\nconst void * RTTI_hknpVehicleDriverInputAnalogStatus = (void *)0x05CA6910;\r\nconst void * RTTI_hknpVehicleInstance = (void *)0x05CA70B0;\r\nconst void * RTTI_hknpVehicleLinearCastWheelCollide = (void *)0x0598B168;\r\nconst void * RTTI_hknpVehicleRayCastWheelCollide = (void *)0x05CA68A0;\r\nconst void * RTTI_hknpVehicleSuspension = (void *)0x05CA6838;\r\nconst void * RTTI_hknpVehicleWheelCollide = (void *)0x05CA6808;\r\nconst void * RTTI_hknpVehicleWheelCollide__WheelHitCollector = (void *)0x0598DFC0;\r\nconst void * RTTI_hknpWeldingModifier = (void *)0x0598D678;\r\nconst void * RTTI_hknpWorld = (void *)0x05CA1CC8;\r\nconst void * RTTI_hknpWorldSnapshot = (void *)0x0598B1D8;\r\nconst void * RTTI_hkp6DofConstraintData = (void *)0x0598E8F8;\r\nconst void * RTTI_hkpAngularFrictionConstraintData = (void *)0x0598EE88;\r\nconst void * RTTI_hkpBallAndSocketConstraintData = (void *)0x0598E928;\r\nconst void * RTTI_hkpCallbackConstraintMotor = (void *)0x0598EDA8;\r\nconst void * RTTI_hkpCogWheelConstraintData = (void *)0x0598E998;\r\nconst void * RTTI_hkpConstraintData = (void *)0x0598B3C0;\r\nconst void * RTTI_hkpConstraintMotor = (void *)0x0598E8C8;\r\nconst void * RTTI_hkpDeformableFixedConstraintData = (void *)0x0598E9C8;\r\nconst void * RTTI_hkpFixedConstraintData = (void *)0x0598EA00;\r\nconst void * RTTI_hkpHingeConstraintData = (void *)0x0598EA60;\r\nconst void * RTTI_hkpHingeLimitsData = (void *)0x0598EA30;\r\nconst void * RTTI_hkpLimitedForceConstraintMotor = (void *)0x0598ED70;\r\nconst void * RTTI_hkpLimitedHingeConstraintData = (void *)0x0598EA90;\r\nconst void * RTTI_hkpLinearClearanceConstraintData = (void *)0x0598E960;\r\nconst void * RTTI_hkpLinearParametricCurve = (void *)0x0598EAF8;\r\nconst void * RTTI_hkpPointToPathConstraintData = (void *)0x0598EB28;\r\nconst void * RTTI_hkpPointToPlaneConstraintData = (void *)0x0598EB60;\r\nconst void * RTTI_hkpPositionConstraintMotor = (void *)0x0598EDE0;\r\nconst void * RTTI_hkpPrismaticConstraintData = (void *)0x0598EB98;\r\nconst void * RTTI_hkpPulleyConstraintData = (void *)0x0598EBD0;\r\nconst void * RTTI_hkpRackAndPinionConstraintData = (void *)0x0598EC00;\r\nconst void * RTTI_hkpRagdollConstraintData = (void *)0x0598EC68;\r\nconst void * RTTI_hkpRagdollLimitsData = (void *)0x0598EC38;\r\nconst void * RTTI_hkpRotationalConstraintData = (void *)0x0598EC98;\r\nconst void * RTTI_hkpSpringDamperConstraintMotor = (void *)0x0598EE18;\r\nconst void * RTTI_hkpStiffSpringConstraintData = (void *)0x0598ECD0;\r\nconst void * RTTI_hkpVehicleFrictionDescription = (void *)0x0598B1A0;\r\nconst void * RTTI_hkpVelocityConstraintMotor = (void *)0x0598EE50;\r\nconst void * RTTI_hkpWheelConstraintData = (void *)0x0598ED40;\r\nconst void * RTTI_hkpWheelFrictionConstraintData = (void *)0x0598ED08;\r\nconst void * RTTI_hkpWrappedConstraintData = (void *)0x0598B420;\r\nconst void * RTTI_idLogging__ILogger = (void *)0x05B99078;\r\nconst void * RTTI_idTCP = (void *)0x05D52EB8;\r\nconst void * RTTI_nlohmann__detail__exception = (void *)0x05B72820;\r\nconst void * RTTI_nlohmann__detail__input_buffer_adapter = (void *)0x05B72778;\r\nconst void * RTTI_nlohmann__detail__input_stream_adapter = (void *)0x05B8ADD0;\r\nconst void * RTTI_nlohmann__detail__out_of_range = (void *)0x05B72AC8;\r\nconst void * RTTI_nlohmann__detail__parse_error = (void *)0x05B72B00;\r\nconst void * RTTI_nsContainerMenu__ConfirmTakeAllTheThingsCallback = (void *)0x05C49B00;\r\nconst void * RTTI_nsControlMappingData__RemapHandler = (void *)0x05B0CFD0;\r\nconst void * RTTI_nsDataMenuData__GameLoadListener = (void *)0x05AF6CC8;\r\nconst void * RTTI_nsDialogueMenu__MenuEventCatcher = (void *)0x05C4D5A0;\r\nconst void * RTTI_nsMainMenu__DisplayCreditsCTACallback = (void *)0x05C52F80;\r\nconst void * RTTI_nsMainMenu__InvalidUserCallback = (void *)0x05C52FC0;\r\nconst void * RTTI_nsMonocle__MenuEventCatcher = (void *)0x05B3A290;\r\nconst void * RTTI_nsMonocle__MonocleFastTravelConfirmFunc = (void *)0x05B3A688;\r\nconst void * RTTI_nsPauseMenu__UserDisengagedCallback = (void *)0x05B5E108;\r\nconst void * RTTI_nsPickpocketMenu__MenuEventCatcher = (void *)0x05B3EBC0;\r\nconst void * RTTI_nsWorkshop_BlueprintMenu__WarnAboutInvalidNameCallback = (void *)0x05B7D1A0;\r\nconst void * RTTI_rcContext = (void *)0x059D11E8;\r\nconst void * RTTI_returnToMainMenuCallback = (void *)0x05AE3C68;\r\nconst void * RTTI_std___Node_assert = (void *)0x059C53C8;\r\nconst void * RTTI_std___Node_back = (void *)0x059C5378;\r\nconst void * RTTI_std___Node_base = (void *)0x059C5350;\r\nconst void * RTTI_std___Node_capture = (void *)0x059C53F0;\r\nconst void * RTTI_std___Node_end_group = (void *)0x059C5320;\r\nconst void * RTTI_std___Node_end_rep = (void *)0x059C50C8;\r\nconst void * RTTI_std___Node_endif = (void *)0x059C53A0;\r\nconst void * RTTI_std___Node_if = (void *)0x059C5138;\r\nconst void * RTTI_std___Node_rep = (void *)0x059C5160;\r\nconst void * RTTI_std___Root_node = (void *)0x059C52F8;\r\nconst void * RTTI_std__bad_alloc = (void *)0x05991F08;\r\nconst void * RTTI_std__bad_array_new_length = (void *)0x05991F58;\r\nconst void * RTTI_std__bad_cast = (void *)0x05992248;\r\nconst void * RTTI_std__bad_optional_access = (void *)0x05996D60;\r\nconst void * RTTI_std__bad_variant_access = (void *)0x05992440;\r\nconst void * RTTI_std__exception = (void *)0x05991F30;\r\nconst void * RTTI_std__invalid_argument = (void *)0x05997BE0;\r\nconst void * RTTI_std__logic_error = (void *)0x05991FB0;\r\nconst void * RTTI_std__out_of_range = (void *)0x05991F88;\r\nconst void * RTTI_std__overflow_error = (void *)0x0598EF30;\r\nconst void * RTTI_std__range_error = (void *)0x0598F108;\r\nconst void * RTTI_std__runtime_error = (void *)0x05997AA0;\r\nconst void * RTTI_std__underflow_error = (void *)0x0598EF60;\r\nconst void * RTTI_type_info = (void *)0x059BD478;\r\nconst void * RTTI_winrt__impl__error_info_fallback = (void *)0x05C9E4B0;\r\n"
  },
  {
    "path": "sfse/GameReferences.h",
    "content": "#pragma once\n\n#include \"sfse/GameForms.h\"\n#include \"sfse/GameExtraData.h\"\n#include \"sfse/NiTypes.h\"\n\nclass BGSLocation;\nclass TESTopicInfo;\nclass BGSScene;\nclass TESRace;\nclass TESObjectCELL;\nclass CombatGroup;\n\nclass TESObjectREFR : public TESForm\n{\npublic:\n\t~TESObjectREFR() override;  // 00\n\n\t// add\n\tvirtual void         Predestroy();                                                                                                                      // 062\n\tvirtual bool         Unk_63();                                                                                                                          // 063 - { return extraList.HasExtraData(14);};\n\tvirtual bool         GetEditorLocation(NiPoint3& a_originalLocation, NiPoint3& a_originalAngle, TESForm*& a_locationFormOut);                           // 064 - new\n\tvirtual void         Unk_65();                                                                                                                          // 065\n\tvirtual BGSLocation* GetEditorLocation() const;                                                                                                         // 066\n\tvirtual bool         GetEditorLocation(NiPoint3& a_originalLocation, NiPoint3& a_originalAngle, TESForm*& a_locationFormOut, TESForm* a_locationForm);  // 067\n\tvirtual bool         IsTalking() const;                                                                                                                 // 068\n\tvirtual void         ForceEditorLocation(BGSLocation* a_location);                                                                                      // 069\n\tvirtual void         Unk_6A();                                                                                                                          // 06A\n\tvirtual void         UpdateSoundCallBack(bool a_endSceneAction);                                                                                        // 06B\n\tvirtual bool         SetDialoguewithPlayer(bool a_flag, bool a_forceGreet, TESTopicInfo* a_topicInfo);                                                  // 06C\n\tvirtual void         Unk_6D();                                                                                                                          // 06D\n\tvirtual void         Unk_6E();                                                                                                                          // 06E\n\tvirtual void         Unk_6F();                                                                                                                          // 06F\n\tvirtual void         Unk_70();                                                                                                                          // 070\n\tvirtual void         Unk_71();                                                                                                                          // 071\n\tvirtual void         Unk_72();                                                                                                                          // 072\n\tvirtual void         Unk_73();                                                                                                                          // 073\n\tvirtual void         Unk_74();                                                                                                                          // 074\n\tvirtual void         Unk_75();                                                                                                                          // 075\n\tvirtual void         Unk_76();                                                                                                                          // 076\n\tvirtual void         Unk_77();                                                                                                                          // 077\n\tvirtual void         Unk_78();                                                                                                                          // 078\n\tvirtual void         Unk_79();                                                                                                                          // 079\n\tvirtual BGSScene* GetCurrentScene() const;                                                                                                           // 07A\n\tvirtual void         Unk_7B();                                                                                                                          // 07B\n\tvirtual void         Unk_7C();                                                                                                                          // 07C\n\tvirtual void         Unk_7D();                                                                                                                          // 07D\n\tvirtual void         Unk_7E();                                                                                                                          // 07E\n\tvirtual void         Unk_7F();                                                                                                                          // 07F\n\tvirtual void         Unk_80();                                                                                                                          // 080\n\tvirtual void         Unk_81();                                                                                                                          // 081\n\tvirtual void         Unk_82();                                                                                                                          // 082\n\tvirtual void         Unk_83();                                                                                                                          // 083\n\tvirtual void         Unk_84();                                                                                                                          // 084\n\tvirtual void         Unk_85();                                                                                                                          // 085\n\tvirtual void         Unk_86();                                                                                                                          // 086\n\tvirtual void         Unk_87();                                                                                                                          // 087\n\tvirtual void         Unk_88();                                                                                                                          // 088\n\tvirtual void         Unk_89();                                                                                                                          // 089\n\tvirtual void         Unk_8A();                                                                                                                          // 08A\n\tvirtual void         Unk_8B();                                                                                                                          // 08B\n\tvirtual void         Unk_8C();                                                                                                                          // 08C\n\tvirtual void         Unk_8D();                                                                                                                          // 08D\n\tvirtual void         Unk_8E();                                                                                                                          // 08E\n\tvirtual void         Unk_8F();                                                                                                                          // 08F\n\tvirtual void         Unk_90();                                                                                                                          // 090\n\tvirtual void         Unk_91();                                                                                                                          // 091\n\tvirtual void         Unk_92();                                                                                                                          // 092\n\tvirtual void         Unk_93();                                                                                                                          // 093\n\tvirtual void         Unk_94();                                                                                                                          // 094\n\tvirtual void         Unk_95();                                                                                                                          // 095\n\tvirtual void         Unk_96();                                                                                                                          // 096\n\tvirtual void         Unk_97();                                                                                                                          // 097\n\tvirtual float        GetGravityScale();                                                                                                                 // 098 - new\n\tvirtual void         Unk_99();                                                                                                                          // 099\n\tvirtual void         Unk_9A();                                                                                                                          // 09A\n\tvirtual void         Unk_9B();                                                                                                                          // 09B\n\tvirtual void         Unk_9C();                                                                                                                          // 09C\n\tvirtual void         Unk_9D();                                                                                                                          // 09D\n\tvirtual void         Unk_9E();                                                                                                                          // 09E\n\tvirtual bool         IsChild() const;                                                                                                                   // 09F\n\tvirtual void         Unk_A0();                                                                                                                          // 0A0\n\tvirtual void         Unk_A1();                                                                                                                          // 0A1\n\tvirtual void         Unk_A2();                                                                                                                          // 0A2\n\tvirtual void         Unk_A3();                                                                                                                          // 0A3\n\tvirtual void         Unk_A4();                                                                                                                          // 0A4\n\tvirtual void         Unk_A5();                                                                                                                          // 0A5\n\tvirtual void         Unk_A6();                                                                                                                          // 0A6\n\tvirtual void         Unk_A7();                                                                                                                          // 0A7\n\tvirtual void         Unk_A8();                                                                                                                          // 0A8\n\tvirtual void         Unk_A9();                                                                                                                          // 0A9\n\tvirtual void         Unk_AA();                                                                                                                          // 0AA\n\tvirtual void         Unk_AB();                                                                                                                          // 0AB - { return Get3D(a_objectOut) };?\n\tvirtual void         Unk_AC();                                                                                                                          // 0AC - Get3D(NiPointer<NiAVObject>&)?\n\tvirtual void         Unk_AD();                                                                                                                          // 0AD\n\tvirtual void         Unk_AE();                                                                                                                          // 0AE\n\tvirtual void         Unk_AF();                                                                                                                          // 0AF\n\tvirtual TESRace* GetVisualsRace() const;                                                                                                            // 0B0\n\tvirtual void         Unk_B1();                                                                                                                          // 0B1\n\tvirtual void         Unk_B2();                                                                                                                          // 0B2\n\tvirtual void         Unk_B3();                                                                                                                          // 0B3\n\tvirtual NiPoint3     GetBoundMin() const;                                                                                                               // 0B4\n\tvirtual NiPoint3     GetBoundMax() const;                                                                                                               // 0B5\n\tvirtual void         Unk_B6();                                                                                                                          // 0B6\n\tvirtual void         Unk_B7();                                                                                                                          // 0B7\n\tvirtual void         Unk_B8();                                                                                                                          // 0B8\n\tvirtual void         Unk_B9();                                                                                                                          // 0B9\n\tvirtual void         Unk_BA();                                                                                                                          // 0BA\n\tvirtual void         Unk_BB();                                                                                                                          // 0BB\n\tvirtual void         Unk_BC();                                                                                                                          // 0BC\n\tvirtual void         Unk_BD();                                                                                                                          // 0BD\n\tvirtual void         Unk_BE();                                                                                                                          // 0BE\n\tvirtual void         Unk_BF();                                                                                                                          // 0BF\n\tvirtual void         Unk_C0();                                                                                                                          // 0C0\n\tvirtual void         Unk_C1();                                                                                                                          // 0C1\n\tvirtual void         Unk_C2();                                                                                                                          // 0C2\n\tvirtual void         Unk_C3();                                                                                                                          // 0C3\n\tvirtual void         Unk_C4();                                                                                                                          // 0C4\n\tvirtual void         Unk_C5();                                                                                                                          // 0C5\n\tvirtual void         Unk_C6();                                                                                                                          // 0C6\n\tvirtual void         Unk_C7();                                                                                                                          // 0C7\n\tvirtual void         Unk_C8();                                                                                                                          // 0C8\n\tvirtual void         Unk_C9();                                                                                                                          // 0C9\n\tvirtual void         Unk_CA();                                                                                                                          // 0CA\n\tvirtual void         Unk_CB();                                                                                                                          // 0CB\n\tvirtual void         Unk_CC();                                                                                                                          // 0CC\n\tvirtual void         Unk_CD();                                                                                                                          // 0CD\n\tvirtual void         Unk_CE();                                                                                                                          // 0CE\n\tvirtual void         Unk_CF();                                                                                                                          // 0CF\n\tvirtual void         Unk_D0();                                                                                                                          // 0D0\n\tvirtual void         Unk_D1();                                                                                                                          // 0D1\n\tvirtual void         Unk_D2();                                                                                                                          // 0D2\n\tvirtual void         Unk_D3();                                                                                                                          // 0D3\n\tvirtual void         Unk_D4();                                                                                                                          // 0D4\n\tvirtual void         Unk_D5();                                                                                                                          // 0D5\n\tvirtual void         Unk_D6();                                                                                                                          // 0D6\n\tvirtual void         Unk_D7();                                                                                                                          // 0D7\n\tvirtual void         Unk_D8();                                                                                                                          // 0D8\n\tvirtual void         Unk_D9();                                                                                                                          // 0D9\n\tvirtual void         Unk_DA();                                                                                                                          // 0DA\n\tvirtual void         Unk_DB();                                                                                                                          // 0DB\n\tvirtual void         Unk_DC();                                                                                                                          // 0DC\n\tvirtual void         Unk_DD();                                                                                                                          // 0DD\n\tvirtual void         Unk_DE();                                                                                                                          // 0DE\n\tvirtual void         Unk_DF();                                                                                                                          // 0DF\n\tvirtual void         Unk_E0();                                                                                                                          // 0E0\n\tvirtual void         Unk_E1();                                                                                                                          // 0E1\n\tvirtual void         Unk_E2();                                                                                                                          // 0E2\n\tvirtual void         Unk_E3();                                                                                                                          // 0E3\n\tvirtual void         Unk_E4();                                                                                                                          // 0E4\n\tvirtual void         Unk_E5();                                                                                                                          // 0E5\n\tvirtual void         Unk_E6();                                                                                                                          // 0E6\n\tvirtual void         Unk_E7();                                                                                                                          // 0E7\n\tvirtual void         Unk_E8();                                                                                                                          // 0E8\n\tvirtual void         Unk_E9();                                                                                                                          // 0E9\n\tvirtual void         Unk_EA();                                                                                                                          // 0EA\n\tvirtual void         Unk_EB();                                                                                                                          // 0EB\n\tvirtual void         Unk_EC();                                                                                                                          // 0EC\n\tvirtual void         Unk_ED();                                                                                                                          // 0ED\n\tvirtual void         Unk_EE();                                                                                                                          // 0EE\n\tvirtual void         Unk_EF();                                                                                                                          // 0EF\n\tvirtual void         Unk_F0();                                                                                                                          // 0F0\n\tvirtual void         Unk_F1();                                                                                                                          // 0F1\n\tvirtual void         Unk_F2();                                                                                                                          // 0F2\n\tvirtual void         Unk_F3();                                                                                                                          // 0F3\n\tvirtual void         Unk_F4();                                                                                                                          // 0F4\n\tvirtual void         Unk_F5();                                                                                                                          // 0F5\n\tvirtual void         Unk_F6();                                                                                                                          // 0F6\n\tvirtual void         Unk_F7();                                                                                                                          // 0F7\n\tvirtual void         Unk_F8();                                                                                                                          // 0F8\n\tvirtual void         Unk_F9();                                                                                                                          // 0F9\n\tvirtual void         Unk_FA();                                                                                                                          // 0FA\n\tvirtual void         Unk_FB();                                                                                                                          // 0FB\n\tvirtual void         Unk_FC();                                                                                                                          // 0FC\n\tvirtual void         Unk_FD();                                                                                                                          // 0FD\n\tvirtual void         Unk_FE();                                                                                                                          // 0FE\n\tvirtual void         Unk_FF();                                                                                                                          // 0FF\n\tvirtual void         Unk_100();                                                                                                                         // 100\n\tvirtual void         Unk_101();                                                                                                                         // 101\n\tvirtual void         Unk_102();                                                                                                                         // 102\n\tvirtual void         Unk_103();                                                                                                                         // 103\n\tvirtual void         Unk_104();                                                                                                                         // 104\n\tvirtual void         Unk_105();                                                                                                                         // 105\n\tvirtual void         Unk_106();                                                                                                                         // 106\n\tvirtual void         Unk_107();                                                                                                                         // 107\n\tvirtual void         Unk_108();                                                                                                                         // 108\n\tvirtual void         Unk_109();                                                                                                                         // 109\n\tvirtual void         Unk_10A();                                                                                                                         // 10A\n\tvirtual void         Unk_10B();                                                                                                                         // 10B\n\tvirtual void         Unk_10C();                                                                                                                         // 10C\n\tvirtual bool         IsDead(bool a_notEssential) const;                                                                                                 // 10D\n\tvirtual bool         ProcessInWater(u32 a_bodyID, float a_waterHeight, float a_deltaTime);                                                    // 10E\n\tvirtual void         Unk_10F();                                                                                                                         // 10F\n\tvirtual void         Unk_110();                                                                                                                         // 110\n\tvirtual void         Unk_111();                                                                                                                         // 111\n\tvirtual void         Unk_112();                                                                                                                         // 112\n\tvirtual void         Unk_113();                                                                                                                         // 113\n\tvirtual void         Unk_114();                                                                                                                         // 114\n\tvirtual void         Unk_115();                                                                                                                         // 115\n\tvirtual void         Unk_116();                                                                                                                         // 116\n\tvirtual void         Unk_117();                                                                                                                         // 117\n\tvirtual void         Unk_118();                                                                                                                         // 118\n\tvirtual void         Unk_119();                                                                                                                         // 119\n\tvirtual void         Unk_11A();                                                                                                                         // 11A\n\tvirtual void         Unk_11B();                                                                                                                         // 11B\n\tvirtual void         Unk_11C();                                                                                                                         // 11C\n\tvirtual void         Unk_11D();                                                                                                                         // 11D\n\tvirtual void         Unk_11E();                                                                                                                         // 11E\n\tvirtual void         Unk_11F();                                                                                                                         // 11F\n\tvirtual void         Unk_120();                                                                                                                         // 120\n\tvirtual void         Unk_121();                                                                                                                         // 121\n\tvirtual void         Unk_122();                                                                                                                         // 122\n\tvirtual void         Unk_123();                                                                                                                         // 123\n\tvirtual void         Unk_124();                                                                                                                         // 124\n\tvirtual void         Unk_125();                                                                                                                         // 125\n\tvirtual void         Unk_126();                                                                                                                         // 126\n\tvirtual void         Unk_127();                                                                                                                         // 127\n\tvirtual void         Unk_128();                                                                                                                         // 128\n\tvirtual void         Unk_129();                                                                                                                         // 129\n\tvirtual void         Unk_12A();                                                                                                                         // 12A\n\tvirtual void         Unk_12B();                                                                                                                         // 12B\n\tvirtual void         Unk_12C();                                                                                                                         // 12C\n\tvirtual void         Unk_12D();                                                                                                                         // 12D\n\tvirtual void         Unk_12E();                                                                                                                         // 12E\n\tvirtual void         Unk_12F();                                                                                                                         // 12F\n\n\t// the following should be inherited when decoded properly\n\tvoid* BSTransformDeltaEvent;               // 30\n\tvoid* IMovementProcessMessageInterface;    // 38\n\tvoid* IPostAnimationChannelUpdateFunctor;  // 40\n\tvoid* BSAnimationGraphEvent;               // 48\n\tvoid* BGSInventoryListEvent;               // 50\n\tvoid* IAnimationGraphManagerHolder;        // 58\n\tvoid* IKeywordFormBase;                    // 60\n\tvoid* ActorValueOwner;                     // 68\n\tvoid* ActorValueChangedEvent;              // 70\n\n\t// members\n\tOBJ_REFR\t\tdata;           // 78\n\tBSGuarded<void*, BSReadWriteLock>\tinventoryList;  // A0\n\tTESObjectCELL*\tparentCell;     // A8\n\tBSGuarded<LOADED_REF_DATA*, BSReadWriteLock>\tloadedData;     // B0\n\tBSTSmartPointer<ExtraDataList>\textraDataList;  // C0\n\tu16\t\t\t\tscale;          // C8\n\tu8\t\t\t\tunkE2;          // CB\n\tu8\t\t\t\tflags;          // CC\n\n\tDEFINE_MEMBER_FN_0(IsInSpaceship, bool, 0x02119780)\n\tDEFINE_MEMBER_FN_0(IsInSpace, bool, 0x00B59470)\n\tDEFINE_MEMBER_FN_1(HasKeyword, bool, 0x004804C0, BGSKeyword*);\n};\nstatic_assert(offsetof(TESObjectREFR, data) == 0x80);\nstatic_assert(offsetof(TESObjectREFR, parentCell) == 0xB0);\nstatic_assert(offsetof(TESObjectREFR, scale) == 0xD0);\nstatic_assert(sizeof(TESObjectREFR) == 0xD8);\n\nclass Actor : public TESObjectREFR\n{\npublic:\n\t~Actor() override;  // 00\n\n\t// add\n\tvirtual void         Unk_130();                                     // 130\n\tvirtual void         Unk_131();                                     // 131\n\tvirtual void         Unk_132();                                     // 132\n\tvirtual void         Unk_133();                                     // 133\n\tvirtual void         Unk_134();                                     // 134\n\tvirtual void         Unk_135();                                     // 135\n\tvirtual void         Unk_136();                                     // 136\n\tvirtual void         Unk_137();                                     // 137\n\tvirtual void         Unk_138();                                     // 138\n\tvirtual void         Unk_139();                                     // 139\n\tvirtual void         Unk_13A();                                     // 13A\n\tvirtual void         Unk_13B();                                     // 13B\n\tvirtual void         Unk_13C();                                     // 13C\n\tvirtual void         Unk_13D();                                     // 13D\n\tvirtual void         Unk_13E();                                     // 13E\n\tvirtual void         Update(float a_delta);                         // 13F\n\tvirtual void         Unk_140();                                     // 140\n\tvirtual void         Unk_141();                                     // 141\n\tvirtual void         Unk_142();                                     // 142\n\tvirtual void         Unk_143();                                     // 143\n\tvirtual void         Unk_144();                                     // 144\n\tvirtual void         Unk_145();                                     // 145\n\tvirtual void         Unk_146();                                     // 146\n\tvirtual void         Unk_147();                                     // 147\n\tvirtual void         Unk_148();                                     // 148\n\tvirtual void         Unk_149();                                     // 149\n\tvirtual void         Unk_14A();                                     // 14A\n\tvirtual void         Unk_14B();                                     // 14B\n\tvirtual void         Unk_14C();                                     // 14C\n\tvirtual void         Unk_14D();                                     // 14D\n\tvirtual void         Unk_14E();                                     // 14E\n\tvirtual void         Unk_14F();                                     // 14F\n\tvirtual void         Unk_150();                                     // 150\n\tvirtual void         Unk_151();                                     // 151\n\tvirtual void         Unk_152();                                     // 152\n\tvirtual void         Unk_153();                                     // 153\n\tvirtual void         Unk_154();                                     // 154\n\tvirtual void         Unk_155();                                     // 155\n\tvirtual void         Unk_156();                                     // 156\n\tvirtual void         Unk_157();                                     // 157\n\tvirtual void         Unk_158();                                     // 158\n\tvirtual void         Unk_159();                                     // 159\n\tvirtual void         Unk_15A();                                     // 15A\n\tvirtual void         Unk_15B();                                     // 15B\n\tvirtual void         Unk_15C();                                     // 15C\n\tvirtual void         Unk_15D();                                     // 15D\n\tvirtual void         Unk_15E();                                     // 15E\n\tvirtual void         Unk_15F();                                     // 15F\n\tvirtual CombatGroup* GetCombatGroup();                              // 160\n\tvirtual void         SetCombatGroup(CombatGroup* a_group);          // 161\n\tvirtual bool         CheckValidTarget(TESObjectREFR& a_ref) const;  // 162\n\tvirtual void         Unk_163();                                     // 163\n\tvirtual void         Unk_164();                                     // 164\n\tvirtual void         Unk_165();                                     // 165\n\tvirtual void         Unk_166();                                     // 166\n\tvirtual void         Unk_167();                                     // 167\n\tvirtual void         Unk_168();                                     // 168\n\tvirtual void         Unk_169();                                     // 169\n\tvirtual void         Unk_16A();                                     // 16A\n\tvirtual void         Unk_16B();                                     // 16B\n\tvirtual bool         IsInCombat() const;                            // 16C\n\tvirtual void         Unk_16D();                                     // 16D\n\tvirtual void         Unk_16E();                                     // 16E\n\tvirtual void         Unk_16F();                                     // 16F\n\tvirtual void         SetLifeState(u32 a_state);           // 170\n\tvirtual void         Unk_171();                                     // 171\n\tvirtual void         Unk_172();                                     // 172\n\tvirtual void         Unk_173();                                     // 173\n\tvirtual void         Unk_174();                                     // 174\n\tvirtual void         Unk_175();                                     // 175\n\tvirtual void         Unk_176();                                     // 176\n\tvirtual void         Unk_177();                                     // 177\n\tvirtual void         Unk_178();                                     // 178\n\tvirtual void         Unk_179();                                     // 179\n\tvirtual void         Unk_17A();                                     // 17A\n\tvirtual void         Unk_17B();                                     // 17B\n\tvirtual void         Unk_17C();                                     // 17C\n\tvirtual void         Unk_17D();                                     // 17D\n\tvirtual void         Unk_17E();                                     // 17E\n\tvirtual void         Unk_17F();                                     // 17F\n\tvirtual void         Unk_180();                                     // 180\n\tvirtual void         Unk_181();                                     // 181\n\tvirtual void         Unk_182();                                     // 182\n\tvirtual void         Unk_183();                                     // 183\n\tvirtual void         Unk_184();                                     // 184\n\tvirtual void         Unk_185();                                     // 185\n\tvirtual void         Unk_186();                                     // 186\n\tvirtual void         Unk_187();                                     // 187\n\tvirtual void         Unk_188();                                     // 188\n\tvirtual void         Unk_189();                                     // 189\n\tvirtual void         Unk_18A();                                     // 18A\n\tvirtual void         Unk_18B();                                     // 18B\n\tvirtual void         Unk_18C();                                     // 18C\n\tvirtual void         Unk_18D();                                     // 18D\n\tvirtual void         Unk_18E();                                     // 18E\n\tvirtual void         Unk_18F();                                     // 18F\n\tvirtual void         Unk_190();                                     // 190\n\tvirtual void         Unk_191();                                     // 191\n\tvirtual void         Unk_192();                                     // 192\n\tvirtual void         Unk_193();                                     // 193\n\tvirtual void         Unk_194();                                     // 194\n\tvirtual void         Unk_195();                                     // 195\n\tvirtual void         Unk_196();                                     // 196\n\tvirtual void         Unk_197();                                     // 197\n\tvirtual void         Unk_198();                                     // 198\n\tvirtual void         Unk_199();                                     // 199\n\tvirtual void         Unk_19A();                                     // 19A\n\tvirtual void         Unk_19B();                                     // 19B\n\tvirtual void         Unk_19C();                                     // 19C\n\tvirtual void         Unk_19D();                                     // 19D\n\tvirtual void         Unk_19E();                                     // 19E\n\tvirtual void         Unk_19F();                                     // 19F\n\tvirtual void         Unk_1A0();                                     // 1A0\n\tvirtual void         Unk_1A1();                                     // 1A1\n\n\t// This function is very slow, do not use for realtime updates, mainly used for \"entire character changed\"\n\t// The fields represent which subsets of chargen to update, usually you want (false, 0x28, false)\n\tDEFINE_MEMBER_FN_3(UpdateAppearance, void, 0x0195FDE0, bool unk1, u32 flags, bool changeRace);\n\n\tDEFINE_MEMBER_FN_0(UpdateChargenAppearance, void, 0x017AB4B0);\n\tDEFINE_MEMBER_FN_1(SetSkinTone, void, 0x017ABD60, u32 skinToneIndex);\n\n\tu64\tunkF0[(0x240 - 0xF0) >> 3];\t// F0\n\tvoid* unk240;\t\t\t\t\t// 240\n};\n\nclass MenuActor : public Actor\n{\npublic:\n\tvirtual ~MenuActor();\n};\n\n//inline RelocPtr<Actor*>     g_playerCharacter(0x05598CB8);\n"
  },
  {
    "path": "sfse/GameReflection.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/Types.h\"\r\n\r\nnamespace BSReflection\r\n{\r\n\r\nclass IType;\r\n\r\n// 10\r\nstruct TypedData\r\n{\r\n\tIType\t* type;\t// 00\r\n\tvoid\t* data;\t// 08\r\n};\r\n\r\n// 08\r\nclass IType\r\n{\r\n\tvirtual TypedData * GetZeroed(TypedData * dst, void * buf) = 0;\r\n\tvirtual TypedData * Copy(TypedData * dst, void * buf, TypedData * src) = 0;\r\n\tvirtual TypedData * Copy2(TypedData * dst, void * buf, TypedData * src) = 0;\t// presumably these are not the same thing\r\n\tvirtual void Unk03() = 0;\r\n\tvirtual const char * GetName() = 0;\r\n\r\n//\tvoid\t** _vtbl;\t// 00\r\n};\r\n\r\n// 20\r\nclass BasicType : public IType\r\n{\r\n\tu32\t\t\tsize;\t\t// 08\r\n\tu16\t\t\tsize2;\t\t// 0C - repeat of size field?\r\n\tunk8\t\tunk0E;\t\t// 0E - 00\r\n\tunk8\t\tunk0F;\t\t// 0F - FF\r\n\tconst char\t* name;\t\t// 10\r\n\tu8\t\t\tid;\t\t\t// 18\r\n\tu8\t\t\tisSigned;\t// 19\r\n\tunk16\t\tunk1A;\t\t// 1A\r\n\tunk32\t\tunk1C;\t\t// 1C\r\n};\r\n\r\n//\t\t\t\tsize\tsize2\t0E\t0F\tid\tisSigned\r\n//\tint8_t\t\t1\t\t1\t\t00\tFF\t00\t1\r\n//\tint16_t\t\t2\t\t2\t\t00\tFF\t02\t1\r\n//\tint32_t\t\t4\t\t4\t\t00\tFF\t04\t1\r\n//\tint64_t\t\t8\t\t8\t\t00\tFF\t06\t1\r\n//\tuint8_t\t\t1\t\t1\t\t00\tFF\t01\t0\r\n//\tuint16_t\t2\t\t2\t\t00\tFF\t03\t0\r\n//\tuint32_t\t4\t\t4\t\t00\tFF\t05\t0\r\n//\tuint64_t\t8\t\t8\t\t00\tFF\t07\t0\r\n//\tbool\t\t1\t\t1\t\t00\tFF\t08\t0\r\n//\tfloat\t\t4\t\t4\t\t00\tFF\t09\t1\r\n//\tdouble\t\t8\t\t8\t\t00\tFF\t0A\t1\r\n\r\nclass IObject\r\n{\r\npublic:\r\n\tvirtual void Unk_00();  // 00\r\n\r\n\tvirtual ~IObject();  // 01\r\n};\r\n\r\n}\r\n"
  },
  {
    "path": "sfse/GameScript.cpp",
    "content": "#include \"GameScript.h\"\n\nRelocPtr <Script::SCRIPT_FUNCTION>\tg_firstScriptCommand(0x05EC5780);\nRelocPtr <Script::SCRIPT_FUNCTION>\tg_firstConsoleCommand(0x05EB8E10);\n"
  },
  {
    "path": "sfse/GameScript.h",
    "content": "#pragma once\n\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameTypes.h\"\n\nclass TESObjectREFR;\nclass TESForm;\nclass TESQuest;\n\nstruct ACTION_OBJECT\n{\n\tTESForm*\tpForm;\t// 00\n\tu32\t\t\tiFlags;\t// 08\n};\n\nstruct alignas(4) SCRIPT_LOCAL\n{\n\tu32 uiID;\n\tfloat fValue;\n\tbool bIsInteger;\n};\n\nstruct ScriptVariable\n{\n\tSCRIPT_LOCAL\t\t\t\tdata;\n\tvoid*/*BSStringT<char>*/\tcName;\n};\n\nstruct alignas(4) SCRIPT_HEADER\n{\n\tu32 variableCount;\n\tu32 refObjectCount;\n\tu32 dataSize;\n\tu32 m_uiLastID;\n\tbool bIsQuestScript;\n\tbool bIsMagicEffectScript;\n\tbool bIsCompiled;\n};\n\nstruct SCRIPT_REFERENCED_OBJECT\n{\n\tvoid*/*BSStringT<char>*/\tcEditorID;\n\tTESForm*\t\t\t\t\tpForm;\n\tu32\t\t\t\t\t\t\tuiVariableID;\n};\n\nstruct SCRIPT_EFFECT_DATA\n{\n\tbool m_bScriptEffectStart;\n\tbool m_bScriptEffectFinish;\n\tfloat m_fSecondsElapsed;\n};\n\nstruct SCRIPT_PARAMETER_DEF\n{\n\tu32 eParamType;\t\t\t// 00\n\tu8\tbCanBeVariable;\t\t// 04\n\tu8\tbReferencedObject;\t// 05\n};\n\n// 0C\nstruct SCRIPT_PARAMETER\n{\n\tconst char* pParamName;\t// 00\n\tu32\t\t\teParamType;\t// 04\n\tu32\t\t\tbOptional;\t// 08\n};\n\nstruct SCRIPT_OPERATOR\n{\n\tu32 eCode;\t\t\t// 00\n\tu8\tcPrecedence;\t// 04\n\tu8\tpOperator;\t\t// 05\n};\n\nclass Script;\nstruct ScriptLocals\n{\n\tScript*\t\t\t\t\t\t\tm_pMasterScript;\t\t// 00\n\tu8\t\t\t\t\t\t\t\tm_cFlags;\t\t\t\t// 08\n\tu8\t\t\t\t\t\t\t\tpad09[7];\t\t\t\t// 09\n\tBSSimpleList<ACTION_OBJECT*>*\tm_pActionList;\t\t\t// 10\n\tBSSimpleList<SCRIPT_LOCAL*>*\tm_pLocalList;\t\t\t// 20\n\tSCRIPT_EFFECT_DATA*\t\t\t\tm_pScriptEffectData;\t// 38\n};\n\ntypedef bool (*ExecuteFunction)(const SCRIPT_PARAMETER* paramInfo, const char*, TESObjectREFR* thisObj, TESObjectREFR* containingObj, Script* script, ScriptLocals* locals, float* result, u32* opcodeOffsetPtr);\n\nclass Script\n{\npublic:\n\t// 58\n\tstruct SCRIPT_FUNCTION\n\t{\n\t\tconst char*\t\t\tpFunctionName;\t\t\t// 00\n\t\tconst char*\t\t\tpShortName;\t\t\t\t// 08\n\t\tu32\t\t\t\t\teOutput;\t\t\t\t// 10\n\t\tu32\t\t\t\t\tpad14;\t\t\t\t\t// 14\n\t\tconst char*\t\t\tpHelpString;\t\t\t// 18\n\t\tu8\t\t\t\t\tbReferenceFunction;\t\t// 20\n\t\tu8\t\t\t\t\tpad21;\t\t\t\t\t// 21\n\t\tu16\t\t\t\t\tsParamCount;\t\t\t// 22\n\t\tu32\t\t\t\t\tpad24;\t\t\t\t\t// 24\n\t\tSCRIPT_PARAMETER*\tpParameters;\t\t\t// 28\n\t\tExecuteFunction\t\tpExecuteFunction;\t\t// 30\n\t\tvoid*\t\t\t\tpCompileFunction;\t\t// 38\n\t\tvoid*\t\t\t\tpConditionFunction;\t\t// 40\n\t\tu8\t\t\t\t\tbEditorFilter;\t\t\t// 48\n\t\tu8\t\t\t\t\tbInvalidatesCellList;\t// 49\n\t\tu8\t\t\t\t\tunk4A;\t\t\t\t\t// 4A\n\t\tu8\t\t\t\t\tunk4B;\t\t\t\t\t// 4B\n\t\tu8\t\t\t\t\tunk4C;\t\t\t\t\t// 4C\n\t\tu8\t\t\t\t\tunk4E;\t\t\t\t\t// 4D\n\t\tu8\t\t\t\t\tunk4F;\t\t\t\t\t// 4F\n\t\tu8\t\t\t\t\tunk50;\t\t\t\t\t// 50\n\t\tu8\t\t\t\t\tunk51;\t\t\t\t\t// 51\n\t};\n\n\tenum\n\t{\n\t\tkScript_NumScriptCommands = 0x03C0,\n\t\tkScript_NumConsoleCommands = 0x0247,\n\n\t\tkScript_ScriptOpBase = 0x1000,\n\t\tkScript_ConsoleOpBase = 0x0100,\n\t};\n\n\tSCRIPT_HEADER m_header;\n\tchar*\t\t\t\t\t\t\t\t\tm_text;\n\tchar*\t\t\t\t\t\t\t\t\tm_data;\n\tfloat\t\t\t\t\t\t\t\t\tfProfilerTimer;\n\tfloat\t\t\t\t\t\t\t\t\tfQuestScriptDelay;\n\tfloat\t\t\t\t\t\t\t\t\tfQuestScriptGetSecondsBuffer;\n\tTESQuest*\t\t\t\t\t\t\t\tpParentQuest;\n\tBSSimpleList<SCRIPT_REFERENCED_OBJECT*>\tlistRefObjects;\n\tBSSimpleList<ScriptVariable*>\t\t\tlistVariables;\n};\n\nextern RelocPtr<Script::SCRIPT_FUNCTION>\tg_firstScriptCommand;\nextern RelocPtr<Script::SCRIPT_FUNCTION>\tg_firstConsoleCommand;\n"
  },
  {
    "path": "sfse/GameSettings.cpp",
    "content": "#include \"sfse/GameSettings.h\"\n\nRelocPtr <INISettingCollection *> SettingT<INISettingCollection>::pCollection(0x06202A48);\nRelocPtr <INIPrefSettingCollection *> SettingT<INIPrefSettingCollection>::pCollection(0x06202A58);\nRelocPtr <RegSettingCollection *> SettingT<RegSettingCollection>::pCollection(0x062020C0);\nRelocPtr <GameSettingCollection *> SettingT<GameSettingCollection>::pCollection(0x061E7FD0);\n\nu32 Setting::GetType(void) const\n{\n\tif (!name || !name[0]) return kType_None;\n\n\tswitch (name[0])\n\t{\n\tcase 'b':\treturn kType_Binary;\n\tcase 'c':\treturn kType_Char;\n\tcase 'h':\treturn kType_UChar;\n\tcase 'i':\treturn kType_Int;\n\tcase 'u':\treturn kType_UInt;\n\tcase 'f':\treturn kType_Float;\n\tcase 'S':\treturn kType_String;\t// dynamically allocated string\n\tcase 's':\treturn kType_String;\t// statically allocated string\n\tcase 'r':\treturn kType_RGB;\n\tcase 'a':\treturn kType_RGBA;\n\t}\n\n\treturn kType_None;\n}\n\nbool Setting::GetDouble(double* out) const\n{\n\tswitch (GetType())\n\t{\n\tcase kType_Int:\t*out = data.s32; break;\n\tcase kType_Float:\t*out = data.f32; break;\n\tcase kType_String:\treturn false;\n\tcase kType_Binary:\t*out = data.u8 ? 1 : 0; break;\n\tdefault:\t\t\treturn false;\n\tcase kType_None:\treturn false;\n\t}\n\n\treturn true;\n}\n\nbool Setting::SetDouble(double value)\n{\n\tswitch (GetType())\n\t{\n\tcase kType_Int:\tdata.s32 = static_cast<s32>(value); break;\n\tcase kType_Float:\tdata.f32 = static_cast<float>(value); break;\n\tcase kType_String:\treturn false;\n\tcase kType_Binary:\tdata.u8 = value ? 1 : 0; break;\n\tdefault:\t\t\treturn false;\n\tcase kType_None:\treturn false;\n\t}\n\n\treturn true;\n}\n\nSetting* INISettingCollection::GetSetting(const char* name)\n{\n\tauto node = &SettingsA.node;\n\tdo\n\t{\n\t\tauto item = node->m_item;\n\t\tif (item)\n\t\t{\n\t\t\tif (_stricmp(name, item->name) == 0)\n\t\t\t{\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t\tnode = node->m_pkNext;\n\t} while (node);\n\treturn nullptr;\n}\n"
  },
  {
    "path": "sfse/GameSettings.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameTypes.h\"\n\nclass Setting\n{\npublic:\n\tvirtual ~Setting();\n\n\tenum\n\t{\n\t\tkType_Binary,        // b\n\t\tkType_Char,        // c\n\t\tkType_UChar,        // h\n\t\tkType_Int,        // i\n\t\tkType_UInt,        // u\n\t\tkType_Float,        // f\n\t\tkType_String,        // s/S\n\t\tkType_RGB,        // r\n\t\tkType_RGBA,        // a\n\t\tkType_None\n\t};\n\n\tunion Data\n\t{\n\t\tu32\tu32;\n\t\ts32\ts32;\n\t\tfloat\tf32;\n\t\tu8\tu8;\t\t// used for bool\n\t\tchar* s;\n\t};\n\n\tData\tdata;\t\t\t// 08\n\tData\tdefaultData;\t// 10\n\tchar*\tname;\t\t\t// 18\n\n\tu32\tGetType(void) const;\n\tbool GetDouble(double* out) const;\n\tbool SetDouble(double value);\n\tbool SetString(const char* value);\n};\n\ntemplate<typename T>\nclass SettingCollection\n{\npublic:\n\tvirtual ~SettingCollection();\n\n\tvirtual void Add(T* apSetting) = 0;\t\t\t// 01\n\tvirtual void Remove(T* apSetting) = 0;\t\t// 02\n\tvirtual void Unk_03() = 0;\t\t\t\t\t// 03\n\tvirtual void WriteSetting(T& arSetting) = 0; // 04\n\tvirtual void ReadSetting(T& arSetting) = 0;\t// 05\n\tvirtual bool Open();\t\t\t\t\t\t// 06\n\tvirtual bool Close();\t\t\t\t\t\t// 07\n\tvirtual bool ReadSettingsFromProfile();\t\t// 08\n\tvirtual void Unk_09();\t\t\t\t\t\t// 09\n\tvirtual bool WriteSettings();\t\t\t\t// 0A\n\tvirtual bool ReadSettings();\t\t\t\t// 0B\n\n\tchar\t\t\t\tpSettingFile[260];\t// 008\n\tu32\t\t\t\t\tpad10C;\t\t\t\t// 10C\n\tvoid*\t\t\t\tpHandle;\t\t\t// 110\n};\n\ntemplate<typename T>\nclass SettingCollectionList : public SettingCollection<T>\n{\npublic:\n\tvirtual ~SettingCollectionList();\n\n\tBSSimpleList<T*>\tSettingsA;\t\t\t// 118\n\tu64\t\t\t\t\tunk128;\t\t\t\t// 128\n\tu64\t\t\t\t\tunk130;\t\t\t\t// 130\n};\n\ntemplate<typename T>\nclass SettingCollectionMap : public SettingCollection<T>\n{\npublic:\n\tvirtual ~SettingCollectionMap();\n\n\tu64\tunk118; // BSTBTree ? Doesnt match F4 exactly\n\tu64\tunk120;\n\tu64\tunk128;\n\tu64\tunk130;\n\tu64\tunk138;\n\tu64\tunk140;\n\tu64\tunk148;\n\tu64\tunk150;\n};\n\nclass INISettingCollection : public SettingCollectionList<Setting>\n{\npublic:\n\tvirtual ~INISettingCollection();\n\n\tSetting* GetSetting(const char* name);\n};\n\nclass INIPrefSettingCollection : public INISettingCollection\n{\npublic:\n\tvirtual ~INIPrefSettingCollection();\n};\n\nclass RegSettingCollection : public SettingCollectionList<Setting>\n{\npublic:\n\tvirtual ~RegSettingCollection();\n};\n\nclass GameSettingCollection : public SettingCollectionMap<Setting>\n{\npublic:\n\tvirtual ~GameSettingCollection();\n\n\tDEFINE_MEMBER_FN_1(GetSetting, Setting*, 0x00685440, const char*);\n};\nstatic_assert(sizeof(GameSettingCollection) == 0x158);\n\ntemplate<typename T>\nclass SettingT\n{\npublic:\n\tstatic RelocPtr<T*> pCollection;\n};\n"
  },
  {
    "path": "sfse/GameSingleton.h",
    "content": "#pragma once\n\ntemplate <class T>\nclass BSTSingletonImplicit\n{\npublic:\n\tusing value_type = T;\n};\n\ntemplate <class T>\nclass BSTSingletonExplicit\n{\npublic:\n\tusing value_type = T;\n};\n\ntemplate <class T>\nstruct BSTSingletonSDMOpStaticBuffer\n{\npublic:\n\tusing value_type = T;\n};\n\ntemplate <class Traits>\nstruct BSTSingletonSDMBase :\n\tpublic Traits,\n\tpublic BSTSingletonSDMOpStaticBuffer<typename Traits::value_type>\n{\npublic:\n};\n\ntemplate <class T, class Buffer>\nstruct BSTSDMTraits\n{\npublic:\n\tusing value_type = T;\n};\n\ntemplate <class T, template <class> class Buffer = BSTSingletonSDMOpStaticBuffer>\nstruct BSTSingletonSDM :\n\tpublic BSTSingletonSDMBase<BSTSDMTraits<T, Buffer<T>>>\n{\npublic:\n\tusing value_type = T;\n};\n"
  },
  {
    "path": "sfse/GameStreams.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n\nnamespace BSResource\n{\nenum ErrorCode\n{\n    EC_NONE = 0,\n    EC_NOT_EXIST,\n    EC_INVALID_PATH,\n    EC_FILE_ERROR,\n    EC_INVALID_TYPE,\n    EC_MEMORY_ERROR,\n    EC_BUSY,\n    EC_INVALID_PARAM,\n    EC_UNSUPPORTED,\n};\n\nclass Info\n{\npublic:\n    struct FILETIME\n    {\n        u32 dwLowDateTime;\n        u32 dwHighDateTime;\n    };\n    FILETIME ModifyTime;\n    FILETIME CreateTime;\n    u64 uiFileSize;\n};\n\nclass StreamBase\n{\npublic:\n    virtual ~StreamBase();\n\n    virtual BSResource::ErrorCode DoOpen() = 0;\n    virtual void DoClose() = 0;\n    virtual u64 DoGetKey() = 0;\n    virtual BSResource::ErrorCode DoGetInfo(Info*) = 0;\n\n    u32 uiTotalSize;\n    u32 uiFlags;\n};\n\n};\n\nclass NiBinaryStream\n{\npublic:\n    NiBinaryStream() : m_uiAbsoluteCurrentPos(0) { }\n    virtual ~NiBinaryStream() { }\n    virtual operator bool() = 0;\n    virtual void Seek(s64 iNumBytes) = 0;\n    virtual u64 GetPosition() const = 0;\n\n    struct BufferInfo\n    {\n        void* pvBuffer;\n        u64 uiTotalSize;\n        u64 uiBufferAllocSize;\n        u64 uiBufferReadSize;\n        u64 uiBufferPos;\n        u64 uiStreamPos;\n    };\n\n    virtual void GetBufferInfo(BufferInfo& info)\n    {\n        info.pvBuffer = nullptr;\n        info.uiTotalSize = 0;\n        info.uiBufferAllocSize = 0;\n        info.uiBufferReadSize = 0;\n        info.uiBufferPos = 0;\n        info.uiStreamPos = 0;\n    }\n\n    virtual u64 DoRead(void* apBuffer, u64 auiBytes) = 0;\n    virtual u64 DoWrite(const void* apBuffer, u64 auiBytes) = 0;\n\n    u64 m_uiAbsoluteCurrentPos; // 08\n};\n\nclass BSResourceNiBinaryStream : public NiBinaryStream\n{\npublic:\n    BSResourceNiBinaryStream() = delete;\n    BSResourceNiBinaryStream(const char* apName) { Construct(apName); }\n    virtual ~BSResourceNiBinaryStream() { Destroy(); }\n    virtual operator bool() override { return spStream != nullptr; }\n    virtual void Seek(s64 iNumBytes) override { Seek_Impl(iNumBytes); }\n    virtual u64 GetPosition() const override { return uiStreamPos; }\n    virtual void GetBufferInfo(BufferInfo& info) override { GetBufferInfo_Impl(info); }\n    virtual u64 DoRead(void* apBuffer, u64 auiBytes) override { return DoRead_Impl(apBuffer, auiBytes); };\n    virtual u64 DoWrite(const void* apBuffer, u64 auiBytes) override { return DoWrite_Impl(apBuffer, auiBytes); };\n\n    u32 GetSize() const { return spStream ? spStream->uiTotalSize : 0; }\n\n    template<typename T>\n    void GetLine(T* apDest, u32 auiBufferSize, int aiDelim)\n    {\n        T* iter = apDest;\n        if (auiBufferSize == 0)\n            return 0;\n\n        for (u32 i = 0; i < auiBufferSize - 1; i++)\n        {\n            T\tdata;\n            u64 bytesRead = DoRead(&data, sizeof(T)) != sizeof(T);\n            m_uiAbsoluteCurrentPos += bytesRead;\n            if (!bytesRead)\n                break;\n            if (data == aiDelim)\n                break;\n            *iter++ = data;\n        }\n\n        // null terminate\n        *iter = 0;\n        return iter - apDest;\n    }\n\n    BSResource::StreamBase*/*BSTSmartPointer<BSResource::Stream, BSTSmartPointerIntrusiveRefCount>*/ spStream;    // 10\n    void/*BSResourceNiBinaryStream::BufferType*/* pBuffer;                                      // 18\n    u64                   uiStreamPos;                                                          // 20\n    BSResource::ErrorCode eLastError;                                                           // 28\n\n    DEFINE_MEMBER_FN_1(Construct, void, 0x02BD2E10, const char* apName);\n    DEFINE_MEMBER_FN_0(Destroy, void, 0x02BD3100);\n    DEFINE_MEMBER_FN_1(Seek_Impl, void, 0x02BD3250, s64 iNumBytes);\n    DEFINE_MEMBER_FN_1(GetBufferInfo_Impl, void, 0x02BD33A0, BufferInfo& info);\n    DEFINE_MEMBER_FN_2(DoRead_Impl, u64, 0x02BD32A0, void* apBuffer, u64 auiBytes);\n    DEFINE_MEMBER_FN_2(DoWrite_Impl, u64, 0x02BD3320, const void* apBuffer, u64 auiBytes);\n};\nstatic_assert(sizeof(BSResourceNiBinaryStream) == 0x30);\n"
  },
  {
    "path": "sfse/GameTypes.cpp",
    "content": "#include \"sfse/GameTypes.h\"\n\nRelocAddr <BSStringPool::Entry::GetEntryT> BSStringPool::Entry::GetEntry(0x028CFB80);\nRelocAddr <BSStringPool::Entry::GetEntryWT> BSStringPool::Entry::GetEntryW(0x028D0230);\nRelocAddr <BSStringPool::Entry::ReleaseT> BSStringPool::Entry::Release(0x028CEF30);\n\nRelocPtr<u32> BSCRC32::uiCRCTable(0x04D5CD80);\n"
  },
  {
    "path": "sfse/GameTypes.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse/GameMemory.h\"\n\n#include <intrin.h>\n#include <functional>\n#include <memory>\n#if _HAS_CXX20\n#include <span>\n#endif\n#include <algorithm>\n\ntemplate<typename T>\nclass BSSimpleList\n{\npublic:\n    struct Node\n    {\n        T m_item;\n        Node* m_pkNext;\n    };\n    Node node;\n};\n\n// Does not actually do refcounting atm, just a wrapper\ntemplate<typename element_type>\nclass BSTSmartPointer\n{\npublic:\n    constexpr element_type* get() const noexcept { return _ptr; }\n    explicit constexpr operator bool() const noexcept { return _ptr != nullptr; }\n    constexpr element_type& operator*() const noexcept\n    {\n        return *_ptr;\n    }\n    constexpr element_type* operator->() const noexcept\n    {\n        return _ptr;\n    }\n\nprivate:\n    element_type* _ptr;\n};\n\n\nclass BSTArrayBase\n{\npublic:\n    using size_type = u32;\n\n    BSTArrayBase() : uiSize(0), uiAllocSize(0) { }\n\n    struct IAllocatorFunctor\n    {\n        virtual bool Allocate(u32 auiMinNewSize, u32 auiElemSize) = 0;\n        virtual bool Reallocate(u32 auiMinNewSizeInItems, u32 auiFrontCopyCount, u32 auiShiftCount, u32 auiBackCopyCount, u32 auiElemSize) = 0;\n        virtual void Deallocate() = 0;\n        virtual ~IAllocatorFunctor() { };\n    };\n\n    size_type uiSize;         // 00\n    size_type uiAllocSize;    // 04\n\n    [[nodiscard]] size_type size() const noexcept { return uiSize; }\n    [[nodiscard]] size_type capacity() const noexcept { return uiAllocSize; }\n    void set_capacity(size_type a_capacity, size_type) noexcept { uiAllocSize = a_capacity; }\n};\n\ntemplate<typename T>\nclass BSTArrayAllocatorFunctor : public BSTArrayBase::IAllocatorFunctor\n{\npublic:\n    T* pAllocator; // 00\n};\n\nclass BSTArrayHeapAllocator\n{\npublic:\n    [[nodiscard]] void* allocate(u32 a_bytes) { return GetMemoryManager()->Allocate(a_bytes, 0, false); }\n    void deallocate(void* a_ptr) { GetMemoryManager()->Free(a_ptr, false); }\n};\n\nclass BSScrapArrayAllocator\n{\npublic:\n    void* pScrapHeap;   // 00\n};\n\ntemplate<typename T, class Allocator = BSTArrayHeapAllocator>\nclass BSTArray : public BSTArrayBase, public Allocator\n{\npublic:\n    using value_type = T;\n    using allocator_type = Allocator;\n    using size_type = std::uint32_t;\n    using difference_type = std::ptrdiff_t;\n    using reference = value_type&;\n    using const_reference = const value_type&;\n    using pointer = value_type*;\n    using const_pointer = const value_type*;\n    using iterator = pointer;\n    using const_iterator = const_pointer;\n    using reverse_iterator = std::reverse_iterator<iterator>;\n    using const_reverse_iterator = std::reverse_iterator<const_iterator>;\n\n    BSTArray() : pData(nullptr) { }\n\n    [[nodiscard]] iterator begin() noexcept { return pData; }\n    [[nodiscard]] iterator end() noexcept { return begin() + uiSize; }\n    [[nodiscard]] reference front() noexcept { return *begin(); }\n    [[nodiscard]] reference back() noexcept { return *std::prev(end()); }\n    [[nodiscard]] const_iterator cbegin() const noexcept { return pData; }\n    [[nodiscard]] const_iterator cend() const noexcept { return cbegin() + uiSize; }\n    [[nodiscard]] size_type max_size() const noexcept { return (std::numeric_limits<size_type>::max)(); }\n    [[nodiscard]] size_type capacity() const noexcept { return uiAllocSize; }\n\n    void clear() { erase(begin(), end()); }\n    value_type& at(u32 i) const noexcept { return pData[i]; }\n    void push_back(value_type&& x) { emplace_back(std::move(x)); }\n    reference operator[](size_type n) { return pData[n]; }\n    const_reference operator[](size_type n) const { return pData[n]; }\n\n#if !_HAS_CXX20\n    template<typename _Tp, typename... _Args>\n    constexpr auto\n        construct_at(_Tp* __location, _Args&&... __args)\n        noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...)))\n        -> decltype(::new((void*)0) _Tp(std::declval<_Args>()...))\n    {\n        return ::new((void*)__location) _Tp(std::forward<_Args>(__args)...);\n    }\n#endif\n\n    bool empty() const { return size() == 0; }\n\n    template <class ForwardIt>\n    iterator insert(const_iterator a_pos, ForwardIt a_first, ForwardIt a_last)  //\n    {\n        const auto distance = static_cast<size_type>(std::distance(a_first, a_last));\n        if (distance == 0) {\n            return decay_iterator(a_pos);\n        }\n\n        const auto pos = static_cast<size_type>(std::distance(cbegin(), a_pos));\n        resize(size() + distance);\n        const auto iter = begin() + pos;\n        std::move_backward(iter, iter + distance, end());\n        std::copy(a_first, a_last, iter);\n        return iter;\n    }\n\n    template <class... Args>\n    iterator emplace(const_iterator a_pos, Args&&... a_args)\n    {\n        const auto pos = static_cast<size_type>(std::distance(cbegin(), a_pos));\n        if (pos < size()) {\n            emplace_back(std::move(back()));\n            std::move_backward(begin() + pos, end() - 2, end() - 1);\n        }\n        else {\n            reserve_auto(size() + 1);\n            uiSize += 1;\n        }\n#if _HAS_CXX20\n        std::construct_at(data() + pos, std::forward<Args>(a_args)...);\n#else\n        construct_at(data() + pos, std::forward<Args>(a_args)...);\n#endif\n        return begin() + pos;\n    }\n\n    iterator erase(const_iterator a_first, const_iterator a_last)\n    {\n        const auto first = decay_iterator(a_first);\n        const auto last = decay_iterator(a_last);\n        const auto distance = static_cast<size_type>(std::distance(first, last));\n        if (distance == 0) {\n            return last;\n        }\n\n        std::move(last, end(), first);\n        std::destroy(end() - distance, end());\n        uiSize -= distance;\n        return end();\n    }\n\n    iterator erase(const_iterator a_pos)\n    {\n        return erase(a_pos, std::next(a_pos));\n    }\n\n    template <class... Args>\n    reference emplace_back(Args&&... a_args)\n    {\n        return *emplace(end(), std::forward<Args>(a_args)...);\n    }\n\n    void pop_back() { erase(std::prev(end())); }\n\n    void resize(size_type a_count) { resize_impl(a_count, nullptr); }\n    void resize(size_type a_count, const value_type& a_value) { resize_impl(a_count, std::addressof(a_value)); }\n\n    void swap(BSTArray& a_rhs)\n    {\n        auto tmp = std::move(*this);\n        *this = std::move(a_rhs);\n        a_rhs = std::move(tmp);\n    }\n\n    DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free)\n\nprivate:\n    [[nodiscard]] iterator decay_iterator(const_iterator a_iter) noexcept\n    {\n        return const_cast<pointer>(std::addressof(*a_iter));\n    }\n\n    void reserve_auto(size_type a_capacity)\n    {\n        if (a_capacity > capacity()) {\n            const auto grow = (std::max)(a_capacity, capacity() * 2);\n            reserve_exact(grow);\n        }\n    }\n\n    void reserve_exact(size_type a_capacity)\n    {\n        if (a_capacity == capacity()) {\n            return;\n        }\n\n        const auto ndata = static_cast<pointer>(allocator_type().allocate(a_capacity * sizeof(value_type)));\n        const auto odata = data();\n        if (ndata != odata) {\n            std::uninitialized_move_n(odata, size(), ndata);\n            std::destroy_n(odata, size());\n            allocator_type().deallocate(odata);\n            set_data(ndata);\n            set_capacity(a_capacity, a_capacity * sizeof(value_type));\n        }\n    }\n\n    void resize_impl(size_type a_count, const value_type* a_value)\n    {\n        if (a_count < size()) {\n            erase(begin() + a_count, end());\n        }\n        else if (a_count > size()) {\n            reserve_auto(a_count);\n#if _HAS_CXX20\n            std::span<value_type> range{ data() + uiSize, a_count - uiSize };\n            if (a_value) {\n                std::for_each(\n                    range.begin(),\n                    range.end(),\n                    [=](auto& a_elem) {\n                    std::construct_at(std::addressof(a_elem), *a_value);\n                });\n            }\n            else {\n                std::uninitialized_default_construct(\n                    range.begin(),\n                    range.end());\n            }\n#else\n            if (a_value) {\n                for (size_type i = uiSize; i < a_count - uiSize; ++i)\n                {\n                    construct_at(std::addressof(data() + i), *a_value);\n                }\n            }\n            else {\n                std::uninitialized_default_construct_n(data() + uiSize, a_count - uiSize);\n            }\n#endif\n            uiSize = a_count;\n        }\n    }\n\n    [[nodiscard]] T* data() noexcept { return pData; }\n    [[nodiscard]] const T* data() const noexcept { return pData; }\n    void set_data(T* a_data) noexcept { pData = a_data; }\n\n    T* pData;       // 08 or 10\n};\nstatic_assert(sizeof(BSTArray<void*>) == 0x10);\n\ntemplate<typename T>\nclass BSScrapArray : public BSTArray<T, BSScrapArrayAllocator>\n{\npublic:\n\n};\nstatic_assert(sizeof(BSScrapArray<void*>) == 0x18);\n\nnamespace BSStringPool\n{\n    class Entry\n    {\n    public:\n        Entry() = delete;\n        Entry(const Entry& other) = delete;\n        Entry& operator=(const Entry& other) = delete;\n        Entry(Entry&& other) = delete;\n\n        enum\n        {\n            kFlags_External = 0x2\n        };\n        BSStringPool::Entry* pLeft;             // 00\n        u64                  uiLengthOrPtr;     // 08\n        volatile long        refCount;          // 10\n        u8                   uFlags;            // 14\n        u8                   pad[3];            // 15\n        char                 pData[0];          // 18\n\n        template<typename C>\n        const C* GetStringC()\n        {\n            Entry* iter = this;\n            while (iter->uFlags & kFlags_External)\n                iter = reinterpret_cast<BSStringPool::Entry*>(uiLengthOrPtr);\n            return reinterpret_cast<const C*>(&iter->pData[0]);\n        }\n        size_t GetLength()\n        {\n            Entry * iter = this;\n            while (iter->uFlags & kFlags_External)\n                iter = reinterpret_cast<BSStringPool::Entry*>(uiLengthOrPtr);\n            return iter->uiLengthOrPtr;\n        }\n\n        using GetEntryT = void (*)(Entry*& entry, const char* apString, bool abCaseSensitive);\n        static RelocAddr<GetEntryT>\tGetEntry;\n\n        using GetEntryWT = void (*)(Entry*& entry, const wchar_t* apString, bool abCaseSensitive);\n        static RelocAddr<GetEntryWT>\tGetEntryW;\n\n        using ReleaseT = void (*)(Entry*& entry);\n        static RelocAddr<ReleaseT>\tRelease;\n    };\n}\n\nclass BSFixedString\n{\npublic:\n    BSFixedString(const char* apString, bool abCaseSensitive = false)\n    {\n        pData = nullptr;\n        if(apString)\n            BSStringPool::Entry::GetEntry(pData, apString, abCaseSensitive);\n    }\n    ~BSFixedString()\n    {\n        if (pData)\n            BSStringPool::Entry::Release(pData);\n    }\n    BSFixedString(const BSFixedString& other)\n    {\n        if (other.pData)\n        {\n            _InterlockedExchangeAdd(&other.pData->refCount, 1);\n        }\n        pData = other.pData;\n    }\n    BSFixedString& operator=(const BSFixedString& other)\n    {\n        if (pData != other.pData)\n        {\n            if (other.pData)\n            {\n                _InterlockedExchangeAdd(&other.pData->refCount, 1);\n            }\n            BSStringPool::Entry* prevData = pData;\n            pData = other.pData;\n            BSStringPool::Entry::Release(prevData);\n        }\n        return *this;\n    }\n    BSFixedString(BSFixedString&& other) noexcept\n    {\n        pData = other.pData;\n        other.pData = nullptr;\n    }\n    bool operator==(const char* lhs) const\n    {\n        BSFixedString tmp(lhs);\n        return pData == tmp.pData;\n    }\n    size_t size() const { return pData ? pData->GetLength() : 0; }\n    bool operator==(const BSFixedString& lhs) const { return pData == lhs.pData; }\n    bool operator<(const BSFixedString& lhs) const { return pData < lhs.pData; }\n    const char* c_str() const { return pData ? pData->GetStringC<char>() : nullptr; }\n    operator const char* () const { return pData ? pData->GetStringC<char>() : nullptr; }\n\n    static BSFixedString& Empty()\n    {\n        static BSFixedString empty(\"\");\n        return empty;\n    }\n\n    BSStringPool::Entry* pData;\n};\n\nclass BSFixedStringW\n{\npublic:\n    BSFixedStringW(const wchar_t* apString, bool abCaseSensitive = false)\n    {\n        pData = nullptr;\n        if(apString)\n            BSStringPool::Entry::GetEntryW(pData, apString, abCaseSensitive);\n    }\n    ~BSFixedStringW()\n    {\n        if (pData)\n            BSStringPool::Entry::Release(pData);\n    }\n    BSFixedStringW(const BSFixedStringW& other)\n    {\n        if (other.pData)\n        {\n            _InterlockedExchangeAdd(&other.pData->refCount, 1);\n        }\n        pData = other.pData;\n    }\n    BSFixedStringW& operator=(const BSFixedStringW& other)\n    {\n        if (pData != other.pData)\n        {\n            if (other.pData)\n            {\n                _InterlockedExchangeAdd(&other.pData->refCount, 1);\n            }\n            BSStringPool::Entry* prevData = pData;\n            pData = other.pData;\n            BSStringPool::Entry::Release(prevData);\n        }\n        return *this;\n    }\n    BSFixedStringW(BSFixedStringW&& other) noexcept\n    {\n        pData = other.pData;\n        other.pData = nullptr;\n    }\n    bool operator==(const wchar_t* lhs) const\n    {\n        BSFixedStringW tmp(lhs);\n        return pData == tmp.pData;\n    }\n    size_t size() const { return pData ? pData->GetLength() : 0; }\n    bool operator==(const BSFixedString& lhs) const { return pData == lhs.pData; }\n    bool operator<(const BSFixedString& lhs) const { return pData < lhs.pData; }\n    const wchar_t* c_str() const { return pData ? pData->GetStringC<wchar_t>() : nullptr; }\n    operator const wchar_t* () const { return pData ? pData->GetStringC<wchar_t>() : nullptr; }\n\n    BSStringPool::Entry* pData;\n};\n\nclass BSFixedStringWCS : public BSFixedStringW\n{\npublic:\n    BSFixedStringWCS(const wchar_t* apString) : BSFixedStringW(apString, true) { }\n\n    static BSFixedStringWCS& Empty()\n    {\n        static BSFixedStringWCS empty(L\"\");\n        return empty;\n    }\n};\n\nclass BSFixedStringCS : public BSFixedString\n{\npublic:\n    BSFixedStringCS(const char* apString) : BSFixedString(apString, true) { }\n\n    static BSFixedStringCS& Empty()\n    {\n        static BSFixedStringCS empty(\"\");\n        return empty;\n    }\n};\n\nclass BGSLocalizedStringDL\n{\npublic:\n    u32 uiID;\n};\n\n// 08\nstruct BSIntrusiveRefCounted\n{\npublic:\n\tvolatile long\tm_refCount;\t// 00\n\tu32\t\t\t\tunk04;\t\t// 04\n};\n\nstruct BSCRC32\n{\n    static RelocPtr<u32> uiCRCTable;\n\n    static u32 GenerateCRC(u32 initial, const void* buf, size_t len)\n    {\n        u32 c = initial;\n        const u8* u = static_cast<const u8*>(buf);\n        for (size_t i = 0; i < len; ++i)\n        {\n            c = uiCRCTable[(c ^ u[i]) & 0xFF] ^ (c >> 8);\n        }\n        return c;\n    }\n};\n\nnamespace BSHash\n{\n    class FNV1a\n    {\n    public:\n        size_t operator()(const u32& key)\n        {\n            return std::_Fnv1a_append_bytes(0xCBF29CE484222325, reinterpret_cast<const unsigned char*>(&key), 4);\n        }\n    };\n\n    template<typename T>\n    class String\n    {\n        size_t operator()(const T& key)\n        {\n            return BSCRC32::GenerateCRC(0, key.c_str(), key.size());\n        }\n    };\n\n    class XOR\n    {\n    public:\n        size_t operator()(const BSFixedString& key)\n        {\n            return (reinterpret_cast<u64>(key.c_str()) >> 32) ^ (reinterpret_cast<u64>(key.c_str()) & 0xFFFFFFFF);\n        }\n        size_t operator()(const BSFixedStringW& key)\n        {\n            return (reinterpret_cast<u64>(key.c_str()) >> 32) ^ (reinterpret_cast<u64>(key.c_str()) & 0xFFFFFFFF);\n        }\n    };\n}\n\n\ntemplate<typename T>\nclass BSTScatterTableDefaultHashPolicy\n{\npublic:\n    size_t operator()(const T& key) = delete;\n};\n\ntemplate<> class BSTScatterTableDefaultHashPolicy<BSFixedString>\n{\npublic:\n    size_t operator()(const BSFixedString& key)\n    {\n        return BSHash::XOR()(key);\n    }\n};\n\ntemplate<> class BSTScatterTableDefaultHashPolicy<BSFixedStringCS>\n{\npublic:\n    size_t operator()(const BSFixedStringCS& key)\n    {\n        return BSHash::XOR()(key);\n    }\n};\n\ntemplate<> class BSTScatterTableDefaultHashPolicy<BSFixedStringW>\n{\npublic:\n    size_t operator()(const BSFixedStringW& key)\n    {\n        return BSHash::XOR()(key);\n    }\n};\n\ntemplate<> class BSTScatterTableDefaultHashPolicy<BSFixedStringWCS>\n{\npublic:\n    size_t operator()(const BSFixedStringW& key)\n    {\n        return BSHash::XOR()(key);\n    }\n};\n\ntemplate<> class BSTScatterTableDefaultHashPolicy<u32>\n{\npublic:\n    size_t operator()(const u32& key)\n    {\n        return BSCRC32::GenerateCRC(0, &key, 4);\n    }\n};\n\ntemplate <class T1, class T2>\nstruct BSTScatterTableDefaultKVStorage\n{\npublic:\n    BSTScatterTableDefaultKVStorage() :\n        Key(),\n        Value()\n    {}\n\n    BSTScatterTableDefaultKVStorage(const T1& a_first, const T2& a_second) :\n        Key(a_first),\n        Value(a_second)\n    {}\n\n    BSTScatterTableDefaultKVStorage(const BSTScatterTableDefaultKVStorage& a_rhs) :\n        Key(a_rhs.Key),\n        Value(a_rhs.Value)\n    {}\n\n    BSTScatterTableDefaultKVStorage(BSTScatterTableDefaultKVStorage&& a_rhs) :\n        Key(std::move(a_rhs.Key)),\n        Value(std::move(a_rhs.Value))\n    {\n    }\n\n    BSTScatterTableDefaultKVStorage& operator=(const BSTScatterTableDefaultKVStorage& a_rhs)\n    {\n        Key = a_rhs.Key;\n        Value = a_rhs.Value;\n    }\n\n    BSTScatterTableDefaultKVStorage& operator=(BSTScatterTableDefaultKVStorage&& a_rhs)\n    {\n        Key = std::move(a_rhs.Key);\n        Value = std::move(a_rhs.Value);\n    }\n\n    // Convenience to convert from std::make_pair\n    BSTScatterTableDefaultKVStorage(const std::pair<T1, T2>& pair) : \n        Key(pair.first), \n        Value(pair.second)\n    {}\n\n\n    T1 Key;\t// 00\n    T2 Value;\t// ??\n};\n\ntemplate <class Key, class T, template<class, class> class Storage = BSTScatterTableDefaultKVStorage>\nstruct BSTScatterTableTraits\n{\npublic:\n    using key_type = Key;\n    using mapped_type = T;\n    using value_type = Storage<Key, T>;\n\n\n    const key_type& operator()(const value_type& a_value) const\n    {\n        return a_value.Key;\n    }\n};\n\ntemplate <class Key, class T, template<class,class> class Storage = BSTScatterTableDefaultKVStorage>\nstruct BSTScatterTableEntry\n{\n    Storage<Key, T> Value;\n    s32 iNextIndex;\n    s32 iIndex;\n\n    BSTScatterTableEntry(BSTScatterTableEntry&& a_rhs) :\n        Value(std::move(a_rhs.Value)),\n        iNextIndex(std::move(a_rhs.iNextIndex)),\n        iIndex(std::move(a_rhs.iIndex))\n    {\n        a_rhs.iIndex = -1;\n        a_rhs.iNextIndex = -1;\n    }\n};\n\ntemplate <class T, u32 N = 8>\nstruct BSTScatterTableHeapAllocator\n{\npublic:\n    using entry_type = T;\n    using size_type = u32;\n\n    BSTScatterTableHeapAllocator() {}\n\n    entry_type* allocate(std::size_t a_num)\n    {\n        auto size = a_num * sizeof(entry_type);\n        auto mem = (entry_type*)GetMemoryManager()->Allocate(size, 8, 1);\n        memset(mem, 0, size);\n        for (u64 i = 0; i < a_num; ++i)\n        {\n            mem[i].iNextIndex = -1;\n            mem[i].iIndex = -1;\n        }\n        return mem;\n    }\n\n    void deallocate(entry_type* a_ptr)\n    {\n        GetMemoryManager()->Free(a_ptr, true);\n    }\n\n    size_type min_size() const\n    {\n        return static_cast<size_type>(1) << 3;\n    }\n\n    size_type max_size() const\n    {\n        return static_cast<size_type>(1) << 31;\n    }\n};\n\n// Maybe related to the allocator type?\nstruct BSTScatterTableParent1\n{\n    void* unk00 = nullptr;\n    u64 unk08 = 0;\n    u64 unk10 = 0;\n};\n\n// Maybe related to the allocator type?\nstruct BSTScatterTableParent2\n{\n    void* unk00 = nullptr;\n    u64 unk08 = 0;\n};\n\ntemplate <\n    class Traits,\n    u32 N, \n    template <class, u32> class Allocator, \n    class Hash, \n    class KeyEqual,\n    class Parent\n>\nclass BSTScatterTableBase : public Parent\n{\npublic:\n    using traits_type = Traits;\n    using key_type = typename traits_type::key_type;\n    using mapped_type = typename traits_type::mapped_type;\n    using value_type = typename traits_type::value_type;\n    using hasher = Hash;\n    using key_equal = KeyEqual;\n    using size_type = u32;\n\n    using entry_type = BSTScatterTableEntry<key_type, mapped_type>;\n    using allocator_type = Allocator<entry_type, N>;\n\n    BSTScatterTableBase() : Parent(),\n        pTable(nullptr),\n        uiSize(0),\n        uiFree(0),\n        uiLastFree(0)\n    {\n    }\n    ~BSTScatterTableBase()\n    {\n        if (pTable)\n        {\n            deallocate(pTable);\n            pTable = nullptr;\n        }\n    }\n\n    DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free)\n\n    template <class U>\n    struct iterator_base\n    {\n    public:\n        typedef std::ptrdiff_t difference_type;\n        typedef U value_type;\n        typedef U* pointer;\n        typedef U& reference;\n        typedef std::forward_iterator_tag iterator_category;\n\n        iterator_base() :\n            _entry(nullptr),\n            _end(nullptr)\n        {}\n\n        iterator_base(const iterator_base& a_rhs) :\n            _entry(a_rhs._entry),\n            _end(a_rhs._end)\n        {}\n\n        iterator_base(iterator_base&& a_rhs) noexcept :\n            _entry(std::move(a_rhs._entry)),\n            _end(a_rhs._end)\n        {\n            a_rhs._entry = a_rhs._end;\n        }\n\n        iterator_base(entry_type* a_entry, entry_type* a_end) :\n            _entry(a_entry),\n            _end(a_end)\n        {\n            while (_entry != _end && _entry->iNextIndex == -1) {\n                ++_entry;\n            }\n        }\n\n        ~iterator_base(){}\n\n        iterator_base& operator=(const iterator_base& a_rhs)\n        {\n            _entry = a_rhs._entry;\n        }\n\n        iterator_base& operator=(iterator_base&& a_rhs)\n        {\n            _entry = std::move(a_rhs._entry);\n            a_rhs._entry = a_rhs._end;\n        }\n\n        void swap(iterator_base& a_rhs)\n        {\n            std::swap(_entry, a_rhs._entry);\n        }\n\n        reference operator*() const\n        {\n            return _entry->Value;\n        }\n\n        pointer operator->() const\n        {\n            return std::addressof(_entry->Value);\n        }\n\n        bool operator==(const iterator_base& a_rhs) const\n        {\n            return _entry == a_rhs._entry;\n        }\n\n        bool operator!=(const iterator_base& a_rhs) const\n        {\n            return !operator==(a_rhs);\n        }\n\n        iterator_base& operator++()\n        {\n            do {\n                ++_entry;\n            } while (_entry != _end && _entry->iNextIndex == -1);\n            return *this;\n        }\n\n        iterator_base operator++(int)\n        {\n            iterator_base tmp{ *this };\n            operator++();\n            return tmp;\n        }\n\n    private:\n        entry_type* _entry;\n        entry_type* _end;\n    };\n\n\n    using iterator = iterator_base<value_type>;\n    using const_iterator = iterator_base<const value_type>;\n\n    hasher hash_function() const\n    {\n        return hasher();\n    }\n\n    key_equal key_eq() const\n    {\n        return key_equal();\n    }\n\n    bool comp_key(const key_type& a_lhs, const key_type& a_rhs) const\n    {\n        return key_eq()(a_lhs, a_rhs);\n    }\n\n    iterator begin()\n    {\n        return get_entries() ? make_iterator(get_entries()) : iterator();\n    }\n\n\n    const_iterator begin() const\n    {\n        return get_entries() ? make_iterator(get_entries()) : const_iterator();\n    }\n\n\n    const_iterator cbegin() const\n    {\n        return begin();\n    }\n\n    iterator end()\n    {\n        return get_entries() ? make_iterator(get_entries() + uiSize) : iterator();\n    }\n\n\n    const_iterator end() const\n    {\n        return get_entries() ? make_iterator(get_entries() + uiSize) : const_iterator();\n    }\n\n\n    const_iterator cend() const\n    {\n        return end();\n    }\n\n\n    bool empty() const\n    {\n        return !get_entries() || uiFree == 0;\n    }\n\n\n    size_type size() const\n    {\n        return uiSize - uiFree;\n    }\n\n    size_type max_size() const\n    {\n        return allocator_type().max_size();\n    }\n\n    std::pair<iterator, bool> insert(const value_type& a_value)\n    {\n        return insert_impl(false, a_value);\n    }\n\n    std::pair<iterator, bool> insert(value_type&& a_value)\n    {\n        return insert_impl(false, std::move(a_value));\n    }\n\n    std::pair<iterator, bool> insert_or_assign(const value_type& a_value)\n    {\n        return insert_impl(true, a_value);\n    }\n\n    std::pair<iterator, bool> insert_or_assign(value_type&& a_value)\n    {\n        return insert_impl(true, std::move(a_value));\n    }\n\n    std::pair<iterator, bool> insert_or_assign(const key_type& a_key, const mapped_type& a_value)\n    {\n        return insert_impl(true, value_type(a_key, a_value));\n    }\n\n    size_type erase(const key_type& a_key)\n    {\n        if (!get_entries()) {  // no entries\n            return 0;\n        }\n\n        auto entry = get_pos(calc_idx(a_key));\n        if (entry->iNextIndex == -1) {\t // key not in table\n            return 0;\n        }\n\n        entry_type* tail = nullptr;\n        while (!comp_key(get_key(entry->Value), a_key)) {  // find key in table\n            tail = entry;\n            entry = get_pos(entry->iNextIndex);\n            if (entry == get_pos(uiSize)) {\n                return 0;\n            }\n        }\n\n        entry->Value.~value_type();\n\n        if (entry->iNextIndex == uiSize) {\t // if no chain\n            if (tail) {\n                tail->iNextIndex = static_cast<u32>(uiSize);\n            }\n            entry->iNextIndex = -1;\n            entry->iIndex = -1;\n        }\n        else {  // else move next entry into current and clear the old entry\n            new (entry) entry_type(std::move(*get_pos(entry->iNextIndex)));\n        }\n\n        ++uiFree;\n        return 1;\n    }\n\n    iterator find(const key_type& a_key)\n    {\n        auto entry = find_impl(a_key);\n        return entry ? make_iterator(entry) : end();\n    }\n\n\n    const_iterator find(const key_type& a_key) const\n    {\n        auto entry = find_impl(a_key);\n        return entry ? make_iterator(entry) : end();\n    }\n\n    void reserve(size_type a_count)\n    {\n        if (a_count <= uiSize) {\n            return;\n        }\n\n        u32 leftShifts = 0;\n        while ((a_count & static_cast<u32>(1 << 31)) == 0) {\n            a_count <<= 1;\n            ++leftShifts;\n        }\n        auto bitPos = 31 - leftShifts;\n        auto newCount = static_cast<u32>(1 << bitPos);\n        grow(newCount);\n    }\n\n    void clear()\n    {\n        auto entries = get_entries();\n        clear_entries(0, uiSize);\n        uiFree = uiSize;\n    }\n\nprivate:\n     bool grow()\n     {\n         if (uiSize == (u32)1 << 31) {\n             return false;\n         }\n\n         u32 newCapacity = static_cast<u32>(uiSize ? uiSize << 1 : min_size());\n         return grow(newCapacity);\n     }\n\n     void clear_entries(u64 start, u64 end)\n     {\n         for (u64 i = start; i < end; ++i)\n         {\n             auto entry = get_pos(i);\n             if (entry->iNextIndex != -1)\n             {\n                 entry->Value.~value_type();\n                 entry->iNextIndex = -1;\n                 entry->iIndex = -1;\n             }\n         }\n     }\n\n     bool grow(u32 a_newCapacity)\n     {\n         auto oldEntries = get_entries();\n         auto begIter = begin();\n         auto endIter = end();\n\n         auto newEntries = allocate(a_newCapacity);\n         if (!newEntries) {\n             return false;\n         }\n         else if (newEntries == oldEntries) {\n             uiSize = a_newCapacity;\n             return true;\n         }\n         else {\n             uiSize = a_newCapacity;\n             uiLastFree = a_newCapacity;\n             uiFree = a_newCapacity;\n             set_entries(newEntries);\n\n             while (begIter != endIter) {\n                 insert(std::move(*begIter));\n                 ++begIter;\n             }\n\n             deallocate(oldEntries);\n             return true;\n         }\n     }\n\n     size_t calc_hash(const key_type& a_key) const\n     {\n         return hash_function()(a_key);\n     }\n\n     u64 calc_idx(const key_type& a_key) const\n     {\n         return calc_hash(a_key) & (uiSize - 1);\t// capacity is always a factor of 2, so this is a faster modulo\n     }\n\n     entry_type* find_impl(const key_type& a_key) const\n     {\n         if (!get_entries()) {\n             return nullptr;\n         }\n\n         auto probe = get_pos(calc_idx(a_key));  // try ideal pos\n         if (probe->iNextIndex == -1) {\n             return nullptr;\t // nothing there\n         }\n\n         do {\n             if (comp_key(get_key(probe->Value), a_key)) {\n                 return probe;\n             }\n             else {\n                 probe = get_pos(probe->iNextIndex);\n             }\n         } while (probe != get_pos(uiSize));  // follow chain\n\n         return nullptr;\n     }\n\n     template <class Arg>\n     std::pair<iterator, bool> insert_impl(bool a_overwrite, Arg&& a_value)\n     {\n         if (!get_entries() || !uiFree) {\n             if (!grow()) {\n                 return std::make_pair(end(), false);  // maybe throw?\n             }\n         }\n\n         auto idealEntry = calc_pos(get_key(a_value));\n\n         // Slot is empty, fill it\n         if (idealEntry->iNextIndex == -1) {\n             new (std::addressof(idealEntry->Value)) value_type(std::forward<Arg>(a_value));\n             idealEntry->iNextIndex = static_cast<s32>(uiSize);\n             idealEntry->iIndex = static_cast<s32>(std::distance(get_pos(0), idealEntry));\n             --uiFree;\n             return std::make_pair(make_iterator(idealEntry), true);\n         }\n\n         for (auto iter = idealEntry; iter != get_pos(uiSize); iter = get_pos(iter->iNextIndex)) {\n             if (comp_key(get_key(iter->Value), get_key(a_value))) {\n                 if (a_overwrite) {\n                     iter->Value.~value_type();\n                     new (std::addressof(iter->Value)) value_type(std::forward<Arg>(a_value));\n                 }\n                 return std::make_pair(make_iterator(iter), false);\n             }\n         }\n\n         auto freeEntry = get_free_entry();\n\n         auto takenIdealEntry = calc_pos(get_key(idealEntry->Value));\n         if (takenIdealEntry == idealEntry) {  // if entry occupying our slot would've hashed here anyway\n             freeEntry->iIndex = idealEntry->iIndex;\n             freeEntry->iNextIndex = idealEntry->iNextIndex;\n             idealEntry->iNextIndex = static_cast<s32>(std::distance(get_pos(0), freeEntry));\n             new (std::addressof(freeEntry->Value)) value_type(std::forward<Arg>(a_value));\n             --uiFree;\n             return std::make_pair(make_iterator(freeEntry), true);\n         }\n\n         while (takenIdealEntry->iNextIndex != static_cast<s32>(std::distance(get_pos(0), idealEntry))) {  // find entry that links here\n             takenIdealEntry = get_pos(takenIdealEntry->iNextIndex);\n         }\n\n         // move taken slot out, so we can move in\n         new (std::addressof(freeEntry->Value)) value_type(std::move(idealEntry->Value));\n         freeEntry->iNextIndex = idealEntry->iNextIndex;\n         freeEntry->iIndex = idealEntry->iIndex;\n         takenIdealEntry->iNextIndex = static_cast<s32>(std::distance(get_pos(0), freeEntry));\n         new (std::addressof(idealEntry->Value)) value_type(std::forward<Arg>(a_value));\n         idealEntry->iNextIndex = static_cast<s32>(uiSize);\n         --uiFree;\n         return std::make_pair(make_iterator(idealEntry), true);\n     }\n\n     entry_type* get_pos(u64 index) const\n     {\n         return const_cast<entry_type*>(get_entries() + index);\n     }\n\n     entry_type* calc_pos(const key_type& a_key) const\n     {\n         return get_pos(calc_idx(a_key));\n     }\n\n     entry_type* get_free_entry()\n     {\n         entry_type* entry = nullptr;\n         do {\n             uiLastFree = (uiSize - 1) & (uiLastFree - 1);\n             entry = get_pos(uiLastFree);\n         } while (entry->iNextIndex != -1);\n\n         return entry;\n     }\n\n     const key_type& get_key(const value_type& a_value) const\n     {\n         traits_type traits;\n         return traits(a_value);\n     }\n\n     iterator make_iterator(entry_type* a_entry)\n     {\n         return iterator(a_entry, pTable + uiSize);\n     }\n\n     const_iterator make_iterator(entry_type* a_entry) const\n     {\n         return const_iterator(a_entry, pTable + uiSize);\n     }\n\n     entry_type* allocate(std::size_t a_num)\n     {\n         return allocator_type().allocate(a_num);\n     }\n     void deallocate(entry_type* a_ptr)\n     {\n         allocator_type().deallocate(a_ptr);\n     }\n     entry_type* get_entries() const\n     {\n         return pTable;\n     }\n     void set_entries(entry_type* a_entries)\n     {\n         pTable = a_entries;\n     }\n     size_type min_size() const\n     {\n         return allocator_type().min_size();\n     }\n\n    entry_type* pTable;\n    u64 uiSize;\n    u64 uiFree;\n    u64 uiLastFree;\n};\n\ntemplate <class Key, class T, class Hash = BSTScatterTableDefaultHashPolicy<Key>, class KeyEqual = std::equal_to<Key>>\nclass BSTHashMap : public BSTScatterTableBase<BSTScatterTableTraits<Key, T>, 8, BSTScatterTableHeapAllocator, Hash, KeyEqual, BSTScatterTableParent1>\n{\npublic:\n};\nstatic_assert(sizeof(BSTHashMap<void*, void*>) == 0x38);\n\ntemplate <class Key, class T, class Hash = BSTScatterTableDefaultHashPolicy<Key>, class KeyEqual = std::equal_to<Key>>\nclass BSTHashMap2 : public BSTScatterTableBase<BSTScatterTableTraits<Key, T>, 8, BSTScatterTableHeapAllocator, Hash, KeyEqual, BSTScatterTableParent2>\n{\npublic:\n};\nstatic_assert(sizeof(BSTHashMap2<void*, void*>) == 0x30);"
  },
  {
    "path": "sfse/GameUI.cpp",
    "content": "#include \"sfse/GameUI.h\""
  },
  {
    "path": "sfse/GameUI.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameSingleton.h\"\n#include \"sfse/GameEvents.h\"\n#include <cstddef>\n\nclass IMenu;\nclass TESObjectCELL;\nclass MenuActor;\nclass BGSKeyword;\nclass TESObjectREFR;\n\nclass UICellRenderer : public BSIntrusiveRefCounted\n{\npublic:\n    virtual ~UICellRenderer();\n\n    TESObjectCELL* unk10;  // 10\n    void* unk18;  // 18 - const BSResource2::TEntryType<0,LoadedCellDB::DBTraits,BSResource2::DBDefaultStreamPolicy>\n    float unk20;  // 20\n    float unk24;  // 24\n    u64 unk28;  // 28\n    void* unk30[4];   // 30 - const BSResource2::TEntryType<0,TextureDB::DBTraits,BSResource2::DBDefaultStreamPolicy>\n    u64 unk50;  // 50\n    u8 unk58[8];  // 58\n    u64 unk60;  // 60\n    u64 unk68;  // 68 - BSMenu3D::Scene\n};\n\nclass MenuPaperDoll : public UICellRenderer\n{\npublic:\n    virtual ~MenuPaperDoll();\n\n    u64 unk70;  // 70\n    u64 unk78;  // 78\n    u64 unk80;  // 80\n    u64 unk88;  // 88\n    u64 unk90;  // 90\n    u64 unk98;  // 98\n    u64 unkA0;  // A0\n    u64 unkA8;  // A8\n    MenuActor* menuActor;   // B0\n    u64 unkB8[(0x1A0 - 0xB8) >> 3];\n    BGSKeyword* unk1A0;     // 1A0\n    TESObjectREFR* unk1A8;  // 1A8\n};\nstatic_assert(offsetof(MenuPaperDoll, menuActor) == 0xB0);\nstatic_assert(offsetof(MenuPaperDoll, unk1A0) == 0x1A0);\n\nclass IDataModel\n{\npublic:\n    virtual ~IDataModel();\n\n    virtual void Unk_01();\n    virtual void Unk_02();\n    virtual void Unk_03();\n\n    void* unk08;    // 08 - Model object?\n};\n\nclass BSInputEventUser\n{\npublic:\n    virtual ~BSInputEventUser();\n\n    virtual void Unk_01();\n    virtual void Unk_02();\n    virtual void Unk_03();\n    virtual void Unk_04();\n    virtual void Unk_05();\n    virtual void Unk_06();\n    virtual void Unk_07();\n    virtual void Unk_08();\n    virtual void Unk_09();\n\n    u64 unk08[(0x38 - 0x08) >> 3];  // 08\n    bool InputEventHandlingEnabled; // 38\n};\nstatic_assert(sizeof(BSInputEventUser) == 0x40);\n\nclass BSInputEventReceiver\n{\npublic:\n    virtual ~BSInputEventReceiver();\n    virtual void Unk_01() = 0;\n\n    void* unk08; // 08\n};\nstatic_assert(sizeof(BSInputEventReceiver) == 0x10);\n\nclass UI :\n    //public BSTSingletonSDM<UI>,\n    public BSInputEventReceiver,                            // 00\n    public BSTEventSource<MenuOpenCloseEvent>,              // 10\n    public BSTEventSource<MenuModeChangeEvent>,             // 38\n    public BSTEventSource<MenuPauseChangeEvent>,            // 60\n    public BSTEventSource<MenuPauseCounterChangeEvent>,     // 88\n    public BSTEventSource<TutorialEvent>,                   // B0\n    public BSTEventSource<BSCursorTypeChange>,              // D8\n    public BSTEventSource<BSCursorRotationChange>,          // 100\n    public BSTEventSource<BIUIMenuVisiblePausedBeginEvent>, // 128\n    public BSTEventSource<BIUIMenuVisiblePausedEndEvent>    // 150\n{\npublic:\n    virtual ~UI();\n\n    virtual void Unk_01();\n\n    u64 unk178[(0x430 - 0x178) >> 3]; // 178\n    BSTArray<IMenu*> openMenus; // 430\n    u64 unk440[(0x4F8 - 0x440) >> 3]; // 440\n\n    // This properly locks the data structure, use this\n    DEFINE_MEMBER_FN_2(IsMenuOpen, bool, 0x02547180, const BSFixedString&);\n\n    static UI* GetSingleton()\n    {\n        RelocPtr<UI*> singleton(0x05FE1900);\n        return *singleton;\n    }\n};\nstatic_assert(offsetof(UI, openMenus) == 0x430);\n"
  },
  {
    "path": "sfse/Hooks_Command.cpp",
    "content": "#include \"Hooks_Command.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Log.h\"\n#include \"sfse_common/SafeWrite.h\"\n#include \"sfse_common/BranchTrampoline.h\"\n#include \"xbyak/xbyak.h\"\n\n#include <mutex>\n#include <queue>\n#include <vector>\n\nusing _Command_Process = bool (*)(void* __this);\nRelocAddr <_Command_Process> Command_Process(0x028DC380);\n_Command_Process Command_Process_Original = nullptr;\n\nnamespace TaskInterface\n{\nstd::recursive_mutex s_taskQueueLock;\nstd::queue<SFSETaskInterface::ITaskDelegate*> s_tasks;\nstd::vector<SFSETaskInterface::ITaskDelegate*> s_tasksPermanent;\n\nbool Command_Process_Hook(void* __this)\n{\n\tbool ret = Command_Process_Original(__this);\n\n\tstd::lock_guard<std::recursive_mutex> lock(s_taskQueueLock);\n\n\tfor (auto task : s_tasksPermanent)\n\t{\n\t\ttask->Run();\n\t}\n\n\twhile (!s_tasks.empty())\n\t{\n\t\tauto cmd = s_tasks.front();\n\t\ts_tasks.pop();\n\t\tcmd->Run();\n\t\tcmd->Destroy();\n\t}\n\n\treturn ret;\n}\n\nvoid addTask(SFSETaskInterface::ITaskDelegate* task)\n{\n\tstd::lock_guard<std::recursive_mutex> lock(s_taskQueueLock);\n\ts_tasks.push(task);\n}\n\nvoid addTaskPermanent(SFSETaskInterface::ITaskDelegate* task)\n{\n\tstd::lock_guard<std::recursive_mutex> lock(s_taskQueueLock);\n\ts_tasksPermanent.push_back(task);\n}\n}\n\nvoid Hooks_Command_Apply()\n{\n\t{\n\t\tstruct Command_Process_Code : Xbyak::CodeGenerator {\n\t\t\tCommand_Process_Code(void* buf) : Xbyak::CodeGenerator(4096, buf)\n\t\t\t{\n\t\t\t\tXbyak::Label retnLabel;\n\t\t\t\tmov(ptr[rsp + 0x10], rbx);\n\t\t\t\tpush(rdi);\n\t\t\t\tsub(rsp, 0x20);\n\t\t\t\tjmp(ptr[rip + retnLabel]);\n\t\t\t\tL(retnLabel);\n\t\t\t\tdq(Command_Process.getUIntPtr() + 0x0A);\n\t\t\t}\n\t\t};\n\t\tvoid* codeBuf = g_localTrampoline.startAlloc();\n\t\tCommand_Process_Code code(codeBuf);\n\t\tg_localTrampoline.endAlloc(code.getCurr());\n\t\tCommand_Process_Original = (_Command_Process)codeBuf;\n\t\tg_branchTrampoline.write6Branch(Command_Process.getUIntPtr(), (uintptr_t)TaskInterface::Command_Process_Hook);\n\t}\n}\n"
  },
  {
    "path": "sfse/Hooks_Command.h",
    "content": "#pragma once\n\n#include \"PluginAPI.h\"\n\nnamespace TaskInterface\n{\n    void addTask(SFSETaskInterface::ITaskDelegate* task);\n    void addTaskPermanent(SFSETaskInterface::ITaskDelegate* task);\n}\n\nvoid Hooks_Command_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Data.cpp",
    "content": "#include \"Hooks_Data.h\"\n#include \"sfse/GameData.h\"\n#include \"sfse/PluginManager.h\"\n#include \"sfse_common/BranchTrampoline.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"xbyak/xbyak.h\"\n\n#if _DEBUG\n#include \"sfse/GameSettings.h\"\n#endif\n\nRelocAddr <uintptr_t> GameDataLoad_Target(0x018966E0 + 0xFBF);\ntypedef void (*_Hooks_GameData_Original)(uint32_t a);\nRelocAddr <_Hooks_GameData_Original> Hooks_GameData_Original(0x0033BF90);\n\nvoid Hook_GameData_Loaded(uint32_t a)\n{\n\tHooks_GameData_Original(a);\n\n\tauto dataHandler = TESDataHandler::GetSingleton();\n\n#if 0\n\tauto settings = &(*SettingT<INISettingCollection>::pCollection)->SettingsA.node;\n\tdo\n\t{\n\t\tif (settings->m_item)\n\t\t{\n\t\t\tif (stricmp(settings->m_item->name, \"sTestFile1:General\") == 0)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tsettings = settings->m_pkNext;\n\t} while (settings != nullptr);\n\tfor (auto item : dataHandler->pFormArray[static_cast<u32>(FormType::kRACE)].pFormsA)\n\t{\n\t\tauto race = static_cast<TESRace*>(item);\n\t\tif (race->editorID == \"HumanRace\")\n\t\t{\n\t\t\tauto& chargenData = race->chargenData[0];\n\t\t\tfor (u32 i = 0; i < 30; ++i)\n\t\t\t{\n\t\t\t\tauto slider = new BGSCharacterMorph::FacialBoneSculptSlider();\n\t\t\t\tslider->BoneExtentMap.insert_or_assign({\n\t\t\t\t\t\"faceBone_C_MouthPivot\", new BGSCharacterMorph::FacialBoneSlider::SliderExtents(\n\t\t\t\t\t\t{ { 0,0,0 }, { 0,0,0 }, { -0.1, -0.1, -0.1 } },\n\t\t\t\t\t\t{ { 0,0,0 }, { 0,0,0 }, { 1.0, 1.0, 1.0 } }\n\t\t\t\t\t)\n\t\t\t\t});\n\t\t\t\tslider->BoneExtentMap.insert_or_assign({\n\t\t\t\t\t\"faceBone_C_TopTeeth\", new BGSCharacterMorph::FacialBoneSlider::SliderExtents(\n\t\t\t\t\t\t{ { 0,0,0 }, { 0,0,0 }, { -0.1, -0.1, -0.1 } },\n\t\t\t\t\t\t{ { 0,0,0 }, { 0,0,0 }, { 1.0, 1.0, 1.0 } }\n\t\t\t\t\t)\n\t\t\t\t});\n\t\t\t\tslider->BoneExtentMap.insert_or_assign({\n\t\t\t\t\t\"faceBone_C_BottomTeeth\", new BGSCharacterMorph::FacialBoneSlider::SliderExtents(\n\t\t\t\t\t\t{ { 0,0,0 }, { 0,0,0 }, { -0.1, -0.1, -0.1 } },\n\t\t\t\t\t\t{ { 0,0,0 }, { 0,0,0 }, { 1.0, 1.0, 1.0 } }\n\t\t\t\t\t)\n\t\t\t\t});\n\t\t\t\tslider->ID = i + 666;\n\t\t\t\tchar buff[256];\n\t\t\t\tsprintf_s(buff, \"mouth - scale - %d\", i);\n\t\t\t\tslider->unk40 = buff;\n\t\t\t\tslider->unk48 = buff;\n\t\t\t\tslider->zeroToOne = false;\n\n\t\t\t\tauto mouthKey = chargenData->faceMorphMap.find(22);\n\t\t\t\tif (mouthKey != chargenData->faceMorphMap.end())\n\t\t\t\t{\n\t\t\t\t\tmouthKey->Value->PostBlendSliderA.push_back(i + 666);\n\t\t\t\t}\n\n\t\t\t\tchargenData->facialSliderMap.insert_or_assign({ (i + 666), slider });\n\t\t\t\tchargenData->sliderCount++;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n#endif\n\n\tPluginManager::dispatchMessage(0, SFSEMessagingInterface::kMessage_PostDataLoad, dataHandler, sizeof(u64), nullptr);\n\tPluginManager::dispatchMessage(0, SFSEMessagingInterface::kMessage_PostPostDataLoad, dataHandler, sizeof(u64), nullptr);\n}\n\nvoid Hooks_Data_Apply()\n{\n\tg_branchTrampoline.write5Branch(GameDataLoad_Target.getUIntPtr(), uintptr_t(Hook_GameData_Loaded));\n}\n"
  },
  {
    "path": "sfse/Hooks_Data.h",
    "content": "#pragma once\n\nvoid Hooks_Data_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Scaleform.cpp",
    "content": "#include \"Hooks_Scaleform.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Log.h\"\n#include \"sfse_common/SafeWrite.h\"\n#include \"sfse_common/BranchTrampoline.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"xbyak/xbyak.h\"\n\n#include \"sfse/GameMenu.h\"\n\n#include \"sfse/ScaleformManager.h\"\n#include \"sfse/ScaleformMemory.h\"\n#include \"sfse/ScaleformLog.h\"\n#include \"sfse/ScaleformTranslator.h\"\n\n#include <stdarg.h>\n#ifdef _DEBUG\n#include <windows.h>\n#endif\n\ntypedef bool(*_IMenu_LoadMovie)(IMenu* menu, bool addEventDispatcher, bool unk2);\nRelocAddr <_IMenu_LoadMovie> IMenu_LoadMovie(0x02553D70); // IMenu vtable +7\n_IMenu_LoadMovie IMenu_LoadMovie_Original = nullptr;\n\nusing _BSScaleformManager_ctor = BSScaleformManager*(*)(BSScaleformManager* __this);\nRelocAddr <_BSScaleformManager_ctor> BSScaleformManager_ctor(0x02558C90);\n_BSScaleformManager_ctor BSScaleformManager_ctor_Original = nullptr;\n\nstatic bool s_enableScaleformLog = false;\n\nstatic std::list<SFSEMenuInterface::MenuMovieCreatedCallback> s_menuPlugins;\nvoid RegisterMenuPlugin(SFSEMenuInterface::MenuMovieCreatedCallback callback)\n{\n\ts_menuPlugins.push_back(callback);\n}\n\nstatic std::list<SFSEMenuInterface::ScaleformManagerCreatedCallback> s_managerPlugins;\nvoid RegisterManagerPlugin(SFSEMenuInterface::ScaleformManagerCreatedCallback callback)\n{\n\ts_managerPlugins.push_back(callback);\n}\n\n\nbool IMenu_LoadMovie_Hook(IMenu* menu, bool addEventDispatcher, bool unk2)\n{\n\tbool ret = IMenu_LoadMovie_Original(menu, addEventDispatcher, unk2);\n\n\tfor (auto cb : s_menuPlugins)\n\t{\n\t\tcb(menu);\n\t}\n\n\treturn ret;\n}\n\nclass SFSEScaleformLogger : public Scaleform::Log\n{\npublic:\n\tvirtual void LogMessageVarg(Scaleform::LogMessageId messageId, const char* fmt, va_list argList) final override\n\t{\n\t\tif(!s_enableScaleformLog)\n\t\t\treturn;\n\n\t\tDebugLog::log(DebugLog::kLevel_Message, fmt, argList);\n#ifdef _DEBUG\n\t\tchar szBuff[1024];\n\t\tvsnprintf_s(szBuff, sizeof(szBuff), fmt, argList);\n\t\tstrcat_s(szBuff, \"\\n\");\n\t\tOutputDebugString(szBuff);\n#endif\n\t}\n\n\tDEFINE_STATIC_HEAP(ScaleformHeap_Allocate, ScaleformHeap_Free);\n};\n\nBSScaleformManager* BSScaleformManager_ctor_Hook(BSScaleformManager* __this)\n{\n\tauto ret = BSScaleformManager_ctor_Original(__this);\n\tif (ret->pLoader)\n\t{\n\t\tret->pLoader->SetState(Scaleform::GFx::State::State_Log, new Scaleform::GFx::LogState(new SFSEScaleformLogger));\n\t}\n\n\tfor (auto cb : s_managerPlugins)\n\t{\n\t\tcb(ret);\n\t}\n\t\n\treturn ret;\n}\n\nvoid Hooks_Scaleform_Apply()\n{\n\t{\n\t\tstruct IMenu_LoadMovie_Code : Xbyak::CodeGenerator {\n\t\t\tIMenu_LoadMovie_Code(void* buf) : Xbyak::CodeGenerator(4096, buf)\n\t\t\t{\n\t\t\t\tXbyak::Label retnLabel;\n\t\t\t\tmov(ptr[rsp + 0x10], rbx);\n\t\t\t\tjmp(ptr[rip + retnLabel]);\n\t\t\t\tL(retnLabel);\n\t\t\t\tdq(IMenu_LoadMovie.getUIntPtr() + 5);\n\t\t\t}\n\t\t};\n\t\tvoid* codeBuf = g_localTrampoline.startAlloc();\n\t\tIMenu_LoadMovie_Code code(codeBuf);\n\t\tg_localTrampoline.endAlloc(code.getCurr());\n\t\tIMenu_LoadMovie_Original = (_IMenu_LoadMovie)codeBuf;\n\t\tg_branchTrampoline.write5Branch(IMenu_LoadMovie.getUIntPtr(), (uintptr_t)IMenu_LoadMovie_Hook);\n\t}\n\n\tu32 enableScaleformLog = 0;\n\tif(getConfigOption_u32(\"Scaleform\", \"EnableLog\", &enableScaleformLog))\n\t\ts_enableScaleformLog = enableScaleformLog != 0;\n\n\t{\n\t\tstruct BSScaleformManager_ctor_Code : Xbyak::CodeGenerator {\n\t\t\tBSScaleformManager_ctor_Code(void* buf) : Xbyak::CodeGenerator(4096, buf)\n\t\t\t{\n\t\t\t\tXbyak::Label retnLabel;\n\t\t\t\tmov(ptr[rsp + 0x08], rcx);\n\t\t\t\tjmp(ptr[rip + retnLabel]);\n\t\t\t\tL(retnLabel);\n\t\t\t\tdq(BSScaleformManager_ctor.getUIntPtr() + 5);\n\t\t\t}\n\t\t};\n\t\tvoid* codeBuf = g_localTrampoline.startAlloc();\n\t\tBSScaleformManager_ctor_Code code(codeBuf);\n\t\tg_localTrampoline.endAlloc(code.getCurr());\n\t\tBSScaleformManager_ctor_Original = (_BSScaleformManager_ctor)codeBuf;\n\t\tg_branchTrampoline.write5Branch(BSScaleformManager_ctor.getUIntPtr(), (uintptr_t)BSScaleformManager_ctor_Hook);\n\t}\n}\n"
  },
  {
    "path": "sfse/Hooks_Scaleform.h",
    "content": "#pragma once\n\n#include \"sfse/PluginAPI.h\"\n\nvoid RegisterMenuPlugin(SFSEMenuInterface::MenuMovieCreatedCallback callback);\nvoid RegisterManagerPlugin(SFSEMenuInterface::ScaleformManagerCreatedCallback callback);\n\nvoid Hooks_Scaleform_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Script.cpp",
    "content": "#include \"Hooks_Script.h\"\n#include \"sfse/GameConsole.h\"\n#include \"sfse/GameScript.h\"\n#include \"sfse/GameReferences.h\"\n#include \"sfse_common/SafeWrite.h\"\n#include \"sfse_common/sfse_version.h\"\n#include \"sfse_common/BranchTrampoline.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Log.h\"\n#include \"xbyak/xbyak.h\"\n\n#ifdef _DEBUG\n#include \"sfse/GameObjects.h\"\n#include \"sfse/GameChargen.h\"\n#include \"sfse/GameSettings.h\"\n#include \"sfse/GameUI.h\"\n#include \"sfse/GameMenu.h\"\n\nbool Test_Execute(const SCRIPT_PARAMETER* paramInfo, const char*, TESObjectREFR* thisObj, TESObjectREFR* containingObj, Script* script, ScriptLocals* locals, float* result, u32* opcodeOffsetPtr)\n{\n\tif (thisObj) {\n\t\tTESNPC* npc = (TESNPC*)thisObj->data.objectReference;\n\n\t\t/*dumpClass(thisObj, 0x1100 >> 3);\n\t\t_MESSAGE(\"Name: %s\", npc->strFullName.c_str());\n\t\tdumpClass(npc, 0x488 >> 3);\n\t\tdumpClass(TESNPCData::ChargenDataModel::GetSingleton(), 0x700 >> 3);*/\n\n\t\tnpc->MorphWeight.x = 1.0f;\n\t\tnpc->MorphWeight.y = 1.0f;\n\t\tnpc->MorphWeight.z = 1.0f;\n\t\tbool unk1 = false;\n\t\tu32 unk2 = 0x28;\n\t\tbool unk3 = false;\n\t\tstatic_cast<Actor*>(thisObj)->UpdateAppearance(unk1, unk2, unk3);\n\t}\n\telse\n\t{\n\t\t/*auto ui = UI::GetSingleton();\n\t\t//dumpClass(ui, 0x500 >> 3);\n\t\tfor (u32 i = 0; i < ui->openMenus.size; ++i)\n\t\t{\n\t\t\t//dumpClass(ui->openMenus.pData[i], 0x658);\n\t\t\tif (ui->openMenus.pData[i]->MenuName == BSFixedString(\"ChargenMenu\"))\n\t\t\t{\n\t\t\t\tauto chargenMenu = static_cast<ChargenMenu*>(ui->openMenus.pData[i]);\n\t\t\t\tif (chargenMenu->pPaperDoll)\n\t\t\t\t{\n\t\t\t\t\tdumpClass(chargenMenu->npc, sizeof(TESNPC) >> 3);\n\t\t\t\t}\n\t\t\t}\n\t\t}*/\n\t\tauto& gameSettings = (*SettingT<GameSettingCollection>::pCollection);\n\t\tauto setting = gameSettings->GetSetting(\"sSkinToneDisplayName\");\n\t\tConsole_Print(\"Game Settings: %s\", setting->name);\n\t}\n\tConsole_Print(\"Dump Complete\");\n\treturn true;\n}\n#endif\n\nbool GetSFSEVersion_Execute(const SCRIPT_PARAMETER* paramInfo, const char*, TESObjectREFR* thisObj, TESObjectREFR* containingObj, Script* script, ScriptLocals* locals, float* result, u32* opcodeOffsetPtr)\n{\n\t_MESSAGE(\"GetSFSEVersion_Execute\");\n\n\tConsole_Print(\"SFSE version: %d.%d.%d, release idx %d, runtime %08X\",\n\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA,\n\t\tSFSE_VERSION_RELEASEIDX, RUNTIME_VERSION);\n\n\treturn true;\n}\n\ntypedef bool (*_ConsoleCommandInit)(void* unk1);\nRelocAddr <_ConsoleCommandInit> ConsoleCommandInit(0x005838D0);\n_ConsoleCommandInit ConsoleCommandInit_Original = nullptr;\n\nvoid ConsoleCommandInit_Hook(void* unk1)\n{\n\tConsoleCommandInit_Original(unk1);\n\n\tfor (Script::SCRIPT_FUNCTION* iter = g_firstConsoleCommand; iter->eOutput < (Script::kScript_NumConsoleCommands + Script::kScript_ConsoleOpBase); ++iter)\n\t{\n\t\tif (!iter->pExecuteFunction)\n\t\t\tcontinue;\n\n\t\tif (!strcmp(iter->pFunctionName, \"BetaComment\"))\n\t\t{\n\t\t\tScript::SCRIPT_FUNCTION& cmd = *iter;\n\t\t\tcmd.pFunctionName = \"GetSFSEVersion\";\n\t\t\tcmd.pShortName = \"\";\n\t\t\tcmd.pHelpString = \"\";\n\t\t\tcmd.bReferenceFunction = 0;\n\t\t\tcmd.sParamCount = 0;\n\t\t\tcmd.pExecuteFunction = GetSFSEVersion_Execute;\n\t\t\tcmd.bEditorFilter = 0;\n\t\t\tcmd.bInvalidatesCellList = 0;\n\t\t}\n#ifdef _DEBUG\n\t\telse if (!strcmp(iter->pFunctionName, \"GameComment\"))\n\t\t{\n\t\t\tScript::SCRIPT_FUNCTION& cmd = *iter;\n\t\t\tcmd.pFunctionName = \"test\";\n\t\t\tcmd.pShortName = \"\";\n\t\t\tcmd.pHelpString = \"\";\n\t\t\tcmd.bReferenceFunction = 0;\n\t\t\tcmd.sParamCount = 0;\n\t\t\tcmd.pExecuteFunction = Test_Execute;\n\t\t\tcmd.bEditorFilter = 0;\n\t\t\tcmd.bInvalidatesCellList = 0;\n\t\t}\n\n\t\tRelocAddr<void*> EmptyFunc(0x01217900);\n\t\t_MESSAGE(\"%s (%s)\", iter->pFunctionName, iter->pExecuteFunction == EmptyFunc ? \"Empty\" : \"Implemented\");\n#endif\n\t}\n}\n\nvoid Hooks_Script_Apply()\n{\n\t{\n\t\tstruct ConsoleCommandInit_Code : Xbyak::CodeGenerator {\n\t\t\tConsoleCommandInit_Code(void* buf) : Xbyak::CodeGenerator(4096, buf)\n\t\t\t{\n\t\t\t\tXbyak::Label retnLabel;\n\n\t\t\t\tpush(rbx);\n\t\t\t\tpush(rbp);\n\t\t\t\tpush(rsi);\n\t\t\t\tpush(rdi);\n\t\t\t\tpush(r14);\n\n\t\t\t\tjmp(ptr[rip + retnLabel]);\n\n\t\t\t\tL(retnLabel);\n\t\t\t\tdq(ConsoleCommandInit.getUIntPtr() + 7);\n\t\t\t}\n\t\t};\n\n\t\tvoid* codeBuf = g_localTrampoline.startAlloc();\n\t\tConsoleCommandInit_Code code(codeBuf);\n\t\tg_localTrampoline.endAlloc(code.getCurr());\n\n\t\tConsoleCommandInit_Original = (_ConsoleCommandInit)codeBuf;\n\n\t\tg_branchTrampoline.write6Branch(ConsoleCommandInit.getUIntPtr(), (uintptr_t)ConsoleCommandInit_Hook);\n\t}\n}\n"
  },
  {
    "path": "sfse/Hooks_Script.h",
    "content": "#pragma once\n\nvoid Hooks_Script_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Serialization.cpp",
    "content": "#include \"Hooks_Serialization.h\"\n\n#include \"sfse_common/BranchTrampoline.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/SafeWrite.h\"\n\n#include \"sfse/PluginManager.h\"\n#include \"sfse/Serialization.h\"\n\n#include \"xbyak/xbyak.h\"\n\nclass BGSSaveLoadGame;\nclass BGSSaveLoadManager;\n\ntypedef void (*_SaveGame)(BGSSaveLoadGame* a_this, void* a_unk1, void* a_unk2, const char* a_name);\nRelocAddr <_SaveGame> SaveGame_Call(0x02551DF0 + 0x12B);\nRelocAddr <_SaveGame> SaveGame_Original(0x02554FD0);\n\ntypedef bool (*_LoadGame)(BGSSaveLoadGame* a_this, const char* a_name, void* a_unk1, void* a_unk2);\nRelocAddr <_LoadGame> LoadGame_Call(0x02585C00 + 0x572);\nRelocAddr <_LoadGame> LoadGame_Original(0x0255B7D0);\n\ntypedef bool (*_DeleteSaveFile)(const char* a_filePath);\nRelocAddr <_DeleteSaveFile> DeleteSaveFile_Call(0x025853DC + 0x65);\nRelocAddr <_DeleteSaveFile> DeleteSaveFile_Original(0x02583D98);\n\ntypedef bool (*_VM_SaveGame)(void* a_this, void* a_storage, void* a_handleReaderWriter, bool a_flag);\ntypedef bool (*_VM_LoadGame)(void* a_this, void* a_storage, void* a_handleReaderWriter, bool* a_flag, bool* b_flag);\ntypedef void* (*_VM_DropAllRunningData)(void* a_this);\n_VM_SaveGame VM_SaveGame_Original = nullptr;\n_VM_LoadGame VM_LoadGame_Original = nullptr;\n_VM_DropAllRunningData VM_DropAllRunningData_Original = nullptr;\nRelocAddr <uintptr_t> VirtualMachine_IVMSaveLoadInterface_VTable(0x055DDB58);\n\nvoid SaveGame_Hook(BGSSaveLoadGame* a_this, void* a_unk1, void* a_unk2, const char* a_name)\n{\n\tSerialization::SetSaveName(a_name, true);\n\tPluginManager::dispatchMessage(0, SFSEMessagingInterface::kMessage_PreSaveGame, (void*)a_name, (u32)strlen(a_name), NULL);\n\t\n\tSaveGame_Original(a_this, a_unk1, a_unk2, a_name);\n\t\n\tPluginManager::dispatchMessage(0, SFSEMessagingInterface::kMessage_PostSaveGame, (void*)a_name, (u32)strlen(a_name), NULL);\n\tSerialization::SetSaveName(NULL);\n}\n\nbool LoadGame_Hook(BGSSaveLoadGame* a_this, const char* a_name, void* a_unk1, void* a_unk2)\n{\n\tSerialization::SetSaveName(a_name, false);\n\tSerialization::HandleBeginLoad();\n\tPluginManager::dispatchMessage(0, SFSEMessagingInterface::kMessage_PreLoadGame, (void*)a_name, (u32)strlen(a_name), NULL);\n\t\n\tbool result = LoadGame_Original(a_this, a_name, a_unk1, a_unk2);\n\t\n\tPluginManager::dispatchMessage(0, SFSEMessagingInterface::kMessage_PostLoadGame, (void*)a_name, (u32)strlen(a_name), NULL);\n\tSerialization::HandleEndLoad();\n\tSerialization::SetSaveName(NULL);\n\treturn result;\n}\n\nbool DeleteSaveFile_Hook(const char* a_filePath)\n{\n\tbool result = DeleteSaveFile_Original(a_filePath);\n\tSerialization::HandleDeleteSave(a_filePath);\n\treturn result;\n}\n\nvoid* VM_DropAllRunningData_Hook(void* a_this)\n{\n\tvoid* result = VM_DropAllRunningData_Original(a_this);\n\tSerialization::HandleRevertGlobalData();\n\treturn result;\n}\n\nbool VM_SaveGame_Hook(void* a_this, void* a_storage, void* a_handleReaderWriter, bool a_flag)\n{\n\tbool result = VM_SaveGame_Original(a_this, a_storage, a_handleReaderWriter, a_flag);\n\tSerialization::HandleSaveGlobalData();\n\treturn result;\n}\n\nbool VM_LoadGame_Hook(void* a_this, void* a_storage, void* a_handleReaderWriter, bool* a_flag, bool* b_flag)\n{\n\tbool result = VM_LoadGame_Original(a_this, a_storage, a_handleReaderWriter, a_flag, b_flag);\n\tSerialization::HandleLoadGlobalData();\n\treturn result;\n}\n\nvoid Hooks_Serialization_Apply()\n{\n#if 0\n\t// write call hooks for SaveGame, LoadGame & DeleteSaveFile\n\tg_branchTrampoline.write5Call(SaveGame_Call.getUIntPtr(), (uintptr_t)SaveGame_Hook);\n\tg_branchTrampoline.write5Call(LoadGame_Call.getUIntPtr(), (uintptr_t)LoadGame_Hook);\n\tg_branchTrampoline.write5Call(DeleteSaveFile_Call.getUIntPtr(), (uintptr_t)DeleteSaveFile_Hook);\n\n\t// get pointers to IVMSaveLoadInterface vfunc entries\n\tuintptr_t VM_SaveGame_VFunc = VirtualMachine_IVMSaveLoadInterface_VTable.getUIntPtr() + (0x1 * 0x8);\n\tuintptr_t VM_LoadGame_VFunc = VirtualMachine_IVMSaveLoadInterface_VTable.getUIntPtr() + (0x2 * 0x8);\n\tuintptr_t VM_DropAllRunningData_VFunc = VirtualMachine_IVMSaveLoadInterface_VTable.getUIntPtr() + (0x7 * 0x8);\n\n\t// save original vfuncs\n\tVM_SaveGame_Original = *reinterpret_cast<_VM_SaveGame*>(VM_SaveGame_VFunc);\n\tVM_LoadGame_Original = *reinterpret_cast<_VM_LoadGame*>(VM_LoadGame_VFunc);\n\tVM_DropAllRunningData_Original = *reinterpret_cast<_VM_DropAllRunningData*>(VM_DropAllRunningData_VFunc);\n\n\t// overwrite vfuncs\n\tsafeWrite64(VM_SaveGame_VFunc, (uintptr_t)VM_SaveGame_Hook);\n\tsafeWrite64(VM_LoadGame_VFunc, (uintptr_t)VM_LoadGame_Hook);\n\tsafeWrite64(VM_DropAllRunningData_VFunc, (uintptr_t)VM_DropAllRunningData_Hook);\n#endif\n}\n"
  },
  {
    "path": "sfse/Hooks_Serialization.h",
    "content": "#pragma once\n\nvoid Hooks_Serialization_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Version.cpp",
    "content": "#include \"Hooks_Version.h\"\r\n#include \"sfse_common/SafeWrite.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_common/Errors.h\"\r\n#include \"sfse_common/BranchTrampoline.h\"\r\n#include \"sfse_common/Relocation.h\"\r\n#include \"xbyak/xbyak.h\"\r\n#include <cstring>\r\n\r\nconst char * kHook_ShowVersion_FormatString =\r\n\t\"%08x v%s %s [SFSE \" __PREPRO_TOKEN_STR__(SFSE_VERSION_INTEGER) \".\"\r\n\t__PREPRO_TOKEN_STR__(SFSE_VERSION_INTEGER_MINOR) \".\"\r\n\t__PREPRO_TOKEN_STR__(SFSE_VERSION_INTEGER_BETA) \"]\";\r\nRelocAddr <uintptr_t> kHook_ShowVersion_Offset(0x017D6EA0 + 0x10C);\r\n\r\nvoid Hooks_Version_Apply()\r\n{\r\n\t// show SFSE version in main menu settings (not hooking ingame settings)\r\n\t{\r\n\t\tstruct ShowVersion_Code: Xbyak::CodeGenerator {\r\n\t\t\tShowVersion_Code(void * buf) : Xbyak::CodeGenerator(4096, buf)\r\n\t\t\t{\r\n\t\t\t\tXbyak::Label retnLabel;\r\n\t\t\t\tXbyak::Label dataLabel;\r\n\r\n\t\t\t\tmov(rdx, ptr[rip + dataLabel]);\r\n\t\t\t\tjmp(ptr[rip + retnLabel]);\r\n\r\n\t\t\t\tL(retnLabel);\r\n\t\t\t\tdq(kHook_ShowVersion_Offset.getUIntPtr() + 0x7);\r\n\r\n\t\t\t\tL(dataLabel);\r\n\t\t\t\tdq(uintptr_t(kHook_ShowVersion_FormatString));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvoid * codeBuf = g_localTrampoline.startAlloc();\r\n\t\tShowVersion_Code code(codeBuf);\r\n\t\tg_localTrampoline.endAlloc(code.getCurr());\r\n\r\n\t\tg_branchTrampoline.write6Branch(kHook_ShowVersion_Offset.getUIntPtr(), uintptr_t(code.getCode()));\r\n\t\tsafeWrite8(kHook_ShowVersion_Offset.getUIntPtr() + 6, 0x90);\r\n\t}\r\n}\r\n"
  },
  {
    "path": "sfse/Hooks_Version.h",
    "content": "#pragma once\r\n\r\nvoid Hooks_Version_Apply();\r\n"
  },
  {
    "path": "sfse/NiExtraData.cpp",
    "content": "#include \"sfse/NiExtraData.h\""
  },
  {
    "path": "sfse/NiExtraData.h",
    "content": "#pragma once\n\n#include \"sfse/NiObject.h\"\n#include \"sfse/GameTypes.h\"\n\nclass NiExtraData : public NiObject\n{\npublic:\n\tBSFixedString\tm_kName;\t// 10\n};\n\nclass BSTransformExtra : public NiExtraData\n{\npublic:\n\tu64\t\t\tunk18;\t\t\t// 18 - Probably just padding, doesnt get initialized\n\tNiTransform m_transform;\t// 20\n};\nstatic_assert(offsetof(BSTransformExtra, m_transform) == 0x20);\nstatic_assert(sizeof(BSTransformExtra) == 0x60);\n"
  },
  {
    "path": "sfse/NiObject.cpp",
    "content": "#include \"sfse/NiObject.h\"\n"
  },
  {
    "path": "sfse/NiObject.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse/GameLock.h\"\n#include \"sfse/GameTypes.h\"\n#include \"sfse/NiTypes.h\"\n\nclass NiRTTI;\nclass NiCamera;\nclass NiNode;\nclass NiCollisionObject;\nclass BSGeometry;\nclass BSDynamicGeometry;\nclass NiExtraData;\n\nclass NiRefObject\n{\npublic:\n\tNiRefObject() : m_uiRefCount(0), pad0C(-1) { };\n\tvirtual ~NiRefObject() { };\n\n\tvirtual void\tDeleteThis(void) { delete this; };\t// calls virtual dtor\n\n\tvoid IncRef()\n\t{\n\t\t_InterlockedIncrement(&m_uiRefCount);\n\t}\n\n\tbool Release()\n\t{\n\t\treturn _InterlockedDecrement(&m_uiRefCount) == 0;\n\t}\n\n\tvoid DecRef()\n\t{\n\t\tif (Release())\n\t\t\tDeleteThis();\n\t}\n\n\tvolatile long\tm_uiRefCount;\t// 08\n\ts32\t\t\t\tpad0C;\t\t\t// 0C\n};\n\nclass NiObject : public NiRefObject\n{\npublic:\n\tvirtual NiRTTI* GetRTTI() const;\n\tvirtual const NiNode* IsNode() const;\n\tvirtual NiNode* IsNode();\n\tvirtual NiNode* IsSwitchNode();\n\tvirtual NiNode* IsFadeNode();\n\tvirtual NiNode* IsMultiBoundNode();\n\tvirtual const BSGeometry* IsGeometry() const;\n\tvirtual BSGeometry* IsGeometry();\n\tvirtual void Unk_0A();\n\tvirtual void Unk_0B();\n\tvirtual void Unk_0C();\n\tvirtual void Unk_0D();\n\tvirtual void Unk_0E();\n\tvirtual void Unk_0F();\n\tvirtual void Unk_10();\n\tvirtual void Unk_11();\n\tvirtual void Unk_12();\n\tvirtual void Unk_13();\n\tvirtual const BSDynamicGeometry* IsDynamicGeometry() const;\n\tvirtual BSDynamicGeometry* IsDynamicGeometry();\n\tvirtual void Unk_16();\n\tvirtual void Unk_17();\n\tvirtual void Unk_18();\n\tvirtual void Unk_19();\n\tvirtual void Unk_1A();\n\tvirtual void Unk_1B();\n\tvirtual void Unk_1C();\n\tvirtual void Unk_1D();\n\tvirtual void Unk_1E();\n\tvirtual void Unk_1F();\n\tvirtual void Unk_20();\n\tvirtual void Unk_21();\n\tvirtual void Unk_22();\n\tvirtual void Unk_23();\n\tvirtual void Unk_24();\n\tvirtual void Unk_25();\n\tvirtual void Unk_26();\n\tvirtual void Unk_27();\n\tvirtual void Unk_28();\n\tvirtual void Unk_29();\n\tvirtual void Unk_2A();\n\tvirtual void Unk_2B();\n\tvirtual void Unk_2C();\n\tvirtual void Unk_2D();\n\tvirtual void Unk_2E();\n\tvirtual void Unk_2F();\n\tvirtual void Unk_30();\n\tvirtual void Unk_31();\n\tvirtual void Unk_32();\n\tvirtual void Unk_33();\n\tvirtual void Unk_34();\n\tvirtual void Unk_35();\n};\n\nclass NiObjectNET : public NiObject\n{\npublic:\n\tBSFixedString\t\t\t\t\t\tm_kName;\t// 10\n\tu64\t\t\t\t\t\t\t\t\tunk18;\t\t// 18\n\tu64\t\t\t\t\t\t\t\t\tunk20;\t\t// 20\n\tBSReadWriteLock\t\t\t\t\t\textraLock;\t// 28\n\tBSTArray<NiPointer<NiExtraData>>*\tpExtra;\t\t// 30\n\n//\tDEFINE_MEMBER_FN_1(AddExtraData, bool, 0x037E6D0C, NiExtraData* pkExtra);\n\tDEFINE_MEMBER_FN_1(AddExtraData_NoLock, bool, 0x02BE4270, NiExtraData * pkExtra);\t// version that doesn't take the lock\n};\nstatic_assert(sizeof(NiObjectNET) == 0x38);\n\nstruct NiUpdateData\n{\n\tenum UPDATE_FLAGS : u32\n\t{\n\t\tUF_UPDATE_CONTROLLERS = 0x1,\n\t\tUF_UPDATE_PARALLEL = 0x2,\n\t\tUF_FADENODE_CULLED = 0x4,\n\t\tUF_SKIP_MULTIBOUNDS = 0x8,\n\t\tUF_MOVE_COLLISION_USING_VEL = 0x100,\n\t\tUF_NO_UPWARD_PASS = 0x200,\n\t\tUF_NO_USING_CHECKS = 0x400,\n\t\tUF_TRANSFORMS_ONLY = 0x800,\n\t\tUF_FOUND_PARTICLES = 0x10000,\n\t\tUF_FOUND_MORPHS = 0x20000,\n\t\tUF_SCENEGRAPH_CHANGE = 0x40000,\n\t\tUF_BOUND_CHANGE = 0x80000,\n\t\tUF_FOUND_TRANSF_CONTROL_UD = 0x100000,\n\t\tUF_FOUND_EFFECT_LIGHTING = 0x200000,\n\t\tUF_SETONUPDATE_MASK = 0xFFFF0000,\n\t};\n\n\tu64\tunk00 = 0;\t// 00\n\tu64\tunk08 = 0;\t// 08\n\tu64\tunk10 = 0;\t// 10\n\tu64\tunk18 = 0;\t// 18\n\tu64\tunk20 = 0;\t// 20\n\tu64\tunk28 = 0;\t// 28\n\tu64\tunk30 = 0;\t// 30\n\tu32\tFlags = 0;\t// 38\n\tu32\tunk3C = 0;\t// 3C\n\tu32\tunk40 = 0;\t// 40\n\tu32\tunk44 = 0;\t// 44\n};\nstatic_assert(sizeof(NiUpdateData) == 0x48);\n\nstruct NiBound\n{\n\tNiPoint3 m_kCenter;\n\tunion\n\t{\n\t\tfloat\tm_fRadius;\n\t\ts32\t\tm_iRadiusAsInt;\n\t};\n};\n\nclass NiAVObject : public NiObjectNET\n{\npublic:\n\tvirtual void Unk_36();\n\tvirtual void UpdateControllers();\n\tvirtual void PerformOp();\n\tvirtual void Unk_39();\n\tvirtual void Unk_3A();\n\tvirtual void Unk_3B();\n\tvirtual void SetAppCulled(bool bAppCulled);\n\tvirtual NiAVObject* GetObjectByName(const BSFixedString& name);\n\tvirtual void SetSelectiveUpdateFlags(bool& bSelectedUpdate, bool bSelectiveUpdateTransforms, bool& bRigid);\n\tvirtual void Unk_3F();\n\tvirtual void Unk_40();\n\tvirtual void Unk_41();\n\tvirtual void Unk_42();\n\tvirtual void Unk_43();\n\tvirtual void Unk_44();\n\tvirtual void Unk_45();\n\tvirtual void Unk_46();\n\tvirtual void Unk_47();\n\tvirtual void Unk_48();\n\tvirtual void Unk_49();\n\tvirtual void Unk_4A();\n\tvirtual void Unk_4B();\n\tvirtual void Unk_4C();\n\tvirtual void Unk_4D();\n\tvirtual void Unk_4E();\n\tvirtual void UpdateWorldData(NiUpdateData& apData);\n\tvirtual void UpdateTransformAndBounds(NiUpdateData& apData);\n\tvirtual void UpdateTransforms(NiUpdateData& apData);\n\tvirtual void Unk_52();\n\tvirtual void Unk_53();\n\n\tNiNode* m_pkParent;\t\t\t\t// 38\n\tNiTransform m_kLocal;\t\t\t// 40\n\tNiTransform m_kWorld;\t\t\t// 80\n\tNiTransform m_kPreviousWorld;\t// C0\n\tNiBound m_kWorldBound;\t\t\t// 100\n\tNiPointer<NiCollisionObject>\tm_spCollisionObject;\t// 110\n\tu64\tm_uFlags;\t\t\t\t\t// 118\n\tu64\tunk120;\t\t\t\t\t\t// 120\n\tu32\tunk128;\t\t\t\t\t\t// 128\n\tu32\tunk12C;\t\t\t\t\t\t// 12C\n\n\tDEFINE_MEMBER_FN_1(Update, void, 0x02BD89A0, NiUpdateData& apData);\n};\nstatic_assert(sizeof(NiAVObject) == 0x130);\nstatic_assert(offsetof(NiAVObject, m_pkParent) == 0x38);\nstatic_assert(offsetof(NiAVObject, m_kLocal) == 0x40);\nstatic_assert(offsetof(NiAVObject, m_kWorld) == 0x80);\nstatic_assert(offsetof(NiAVObject, m_kPreviousWorld) == 0xC0);\n\nclass NiNode : public NiAVObject\n{\npublic:\n\tvirtual void AttachChild(NiAVObject* pkChild, bool bFirstAvail);\n\tvirtual void InsertChildAt(u32 i, NiAVObject* pkChild);\n\tvirtual void DetachChild(NiAVObject* pkChild, NiPointer<NiAVObject>& aspAVObject);\n\tvirtual void DetachChild(NiAVObject* pkChild);\n\tvirtual void Unk_58();\n\tvirtual void DetachChildAt(u32 i, NiPointer<NiAVObject>& aspAVObject);\n\tvirtual void DetachChildAt(u32 i);\n\tvirtual void SetAt(u32 i, NiAVObject* pkChild, NiPointer<NiAVObject>& aspAVObject);\n\tvirtual void SetAt(u32 i, NiAVObject* pkChild);\n\tvirtual void UpdateUpwardPass(NiUpdateData& apData);\n\tvirtual void Unk_5E();\n\n\tNiTArray<NiPointer<NiAVObject>> m_kChildren;\t// 130\n};\nstatic_assert(sizeof(NiNode) == 0x150);\n"
  },
  {
    "path": "sfse/NiRTTI.cpp",
    "content": "#include \"sfse/NiRTTI.h\"\n#include \"sfse/NiObject.h\"\n\nNiObject* DoNiRTTICast(NiObject* src, const NiRTTI* typeInfo)\n{\n\tif (src)\n\t\tfor (NiRTTI* iter = src->GetRTTI(); iter; iter = iter->parent)\n\t\t\tif (iter == typeInfo)\n\t\t\t\treturn src;\n\n\treturn nullptr;\n}\n"
  },
  {
    "path": "sfse/NiRTTI.h",
    "content": "#pragma once\n\nclass NiObject;\n\nclass NiRTTI\n{\npublic:\n\tconst char* name;\n\tNiRTTI* parent;\n};\n\nNiObject* DoNiRTTICast(NiObject* src, const NiRTTI* typeInfo);\n"
  },
  {
    "path": "sfse/NiTypes.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n\ntemplate <typename T>\nclass NiPointer\n{\npublic:\n\tT* m_pObject;\n\n\tinline NiPointer(const NiPointer& rhs) :\n\t\tm_pObject(rhs.m_pObject)\n\t{\n\t\tif (m_pObject) {\n\t\t\tm_pObject->IncRef();\n\t\t}\n\t}\n\n\tinline NiPointer(T* pObject = (T*)0)\n\t{\n\t\tm_pObject = pObject;\n\t\tif (m_pObject) m_pObject->IncRef();\n\t}\n\n\tinline ~NiPointer()\n\t{\n\t\tif (m_pObject) m_pObject->DecRef();\n\t}\n\n\tinline operator T* () const\n\t{\n\t\treturn m_pObject;\n\t}\n\n\tinline T& operator*() const\n\t{\n\t\treturn *m_pObject;\n\t}\n\n\tinline T* operator->() const\n\t{\n\t\treturn m_pObject;\n\t}\n\n\tinline NiPointer <T>& operator=(const NiPointer& rhs)\n\t{\n\t\tif (m_pObject != rhs.m_pObject)\n\t\t{\n\t\t\tif (rhs) rhs.m_pObject->IncRef();\n\t\t\tif (m_pObject) m_pObject->DecRef();\n\n\t\t\tm_pObject = rhs.m_pObject;\n\t\t}\n\n\t\treturn *this;\n\t}\n\n\tinline NiPointer <T>& operator=(T* rhs)\n\t{\n\t\tif (m_pObject != rhs)\n\t\t{\n\t\t\tif (rhs) rhs->IncRef();\n\t\t\tif (m_pObject) m_pObject->DecRef();\n\n\t\t\tm_pObject = rhs;\n\t\t}\n\n\t\treturn *this;\n\t}\n\n\tinline bool operator==(T* pObject) const\n\t{\n\t\treturn m_pObject == pObject;\n\t}\n\n\tinline bool operator!=(T* pObject) const\n\t{\n\t\treturn m_pObject != pObject;\n\t}\n\n\tinline bool operator==(const NiPointer& ptr) const\n\t{\n\t\treturn m_pObject == ptr.m_pObject;\n\t}\n\n\tinline bool operator!=(const NiPointer& ptr) const\n\t{\n\t\treturn m_pObject != ptr.m_pObject;\n\t}\n\n\tinline T* get()\n\t{\n\t\treturn m_pObject;\n\t}\n};\n\nclass NiPoint3\n{\npublic:\n\tNiPoint3() : x(0), y(0), z(0) { }\n\tNiPoint3(float _x, float _y, float _z) : x(_x), y(_y), z(_z) { }\n\n\tfloat x;\n\tfloat y;\n\tfloat z;\n};\nstatic_assert(sizeof(NiPoint3) == 0xC);\n\nclass alignas(0x10) NiPoint3A :\n\tpublic NiPoint3\n{\npublic:\n};\nstatic_assert(sizeof(NiPoint3A) == 0x10);\n\nclass NiPoint4\n{\npublic:\n\tstruct NiPoint4Struct\n\t{\n\tpublic:\n\t\t// members\n\t\tfloat x;  // 00\n\t\tfloat y;  // 04\n\t\tfloat z;  // 08\n\t\tfloat w;  // 0C\n\t};\n\tstatic_assert(sizeof(NiPoint4Struct) == 0x10);\n\n\t// members\n\tunion\n\t{\n\t\tNiPoint4Struct v;\n\t\tfloat          pt[4]{ 0.0F };\n\t};  // 00\n};\nstatic_assert(sizeof(NiPoint4) == 0x10);\n\ntemplate<typename T>\nclass NiTArray\n{\npublic:\n\tvirtual ~NiTArray();\n\n\tT* m_pBase;\n\tu16 m_usMaxSize;\n\tu16 m_usSize;\n\tu16 m_usESize;\n\tu16 m_usGrowBy;\n};\n\ntemplate<typename T>\nclass NiTPrimitiveArray : public NiTArray<T>\n{\npublic:\n\tvirtual ~NiTPrimitiveArray();\n};\n\nclass alignas(0x10) NiMatrix3\n{\npublic:\n\tvoid MakeIdentity() noexcept\n\t{\n\t\tentry[0].v = { 1.0F, 0.0F, 0.0F, 0.0F };\n\t\tentry[1].v = { 0.0F, 1.0F, 0.0F, 0.0F };\n\t\tentry[2].v = { 0.0F, 0.0F, 1.0F, 0.0F };\n\t}\n\n\tNiMatrix3 operator*(const NiMatrix3& rhs) const\n\t{\n\t\tNiMatrix3 tmp;\n\t\ttmp.entry[0].pt[0] =\n\t\t\tentry[0].pt[0] * rhs.entry[0].pt[0] +\n\t\t\tentry[0].pt[1] * rhs.entry[1].pt[0] +\n\t\t\tentry[0].pt[2] * rhs.entry[2].pt[0];\n\t\ttmp.entry[1].pt[0] =\n\t\t\tentry[1].pt[0] * rhs.entry[0].pt[0] +\n\t\t\tentry[1].pt[1] * rhs.entry[1].pt[0] +\n\t\t\tentry[1].pt[2] * rhs.entry[2].pt[0];\n\t\ttmp.entry[2].pt[0] =\n\t\t\tentry[2].pt[0] * rhs.entry[0].pt[0] +\n\t\t\tentry[2].pt[1] * rhs.entry[1].pt[0] +\n\t\t\tentry[2].pt[2] * rhs.entry[2].pt[0];\n\t\ttmp.entry[0].pt[1] =\n\t\t\tentry[0].pt[0] * rhs.entry[0].pt[1] +\n\t\t\tentry[0].pt[1] * rhs.entry[1].pt[1] +\n\t\t\tentry[0].pt[2] * rhs.entry[2].pt[1];\n\t\ttmp.entry[1].pt[1] =\n\t\t\tentry[1].pt[0] * rhs.entry[0].pt[1] +\n\t\t\tentry[1].pt[1] * rhs.entry[1].pt[1] +\n\t\t\tentry[1].pt[2] * rhs.entry[2].pt[1];\n\t\ttmp.entry[2].pt[1] =\n\t\t\tentry[2].pt[0] * rhs.entry[0].pt[1] +\n\t\t\tentry[2].pt[1] * rhs.entry[1].pt[1] +\n\t\t\tentry[2].pt[2] * rhs.entry[2].pt[1];\n\t\ttmp.entry[0].pt[2] =\n\t\t\tentry[0].pt[0] * rhs.entry[0].pt[2] +\n\t\t\tentry[0].pt[1] * rhs.entry[1].pt[2] +\n\t\t\tentry[0].pt[2] * rhs.entry[2].pt[2];\n\t\ttmp.entry[1].pt[2] =\n\t\t\tentry[1].pt[0] * rhs.entry[0].pt[2] +\n\t\t\tentry[1].pt[1] * rhs.entry[1].pt[2] +\n\t\t\tentry[1].pt[2] * rhs.entry[2].pt[2];\n\t\ttmp.entry[2].pt[2] =\n\t\t\tentry[2].pt[0] * rhs.entry[0].pt[2] +\n\t\t\tentry[2].pt[1] * rhs.entry[1].pt[2] +\n\t\t\tentry[2].pt[2] * rhs.entry[2].pt[2];\n\t\treturn tmp;\n\t}\n\n\tNiMatrix3 operator*(float scalar) const\n\t{\n\t\tNiMatrix3 result;\n\t\tresult.entry[0].pt[0] = entry[0].pt[0] * scalar;\n\t\tresult.entry[0].pt[1] = entry[0].pt[1] * scalar;\n\t\tresult.entry[0].pt[2] = entry[0].pt[2] * scalar;\n\t\tresult.entry[1].pt[0] = entry[1].pt[0] * scalar;\n\t\tresult.entry[1].pt[1] = entry[1].pt[1] * scalar;\n\t\tresult.entry[1].pt[2] = entry[1].pt[2] * scalar;\n\t\tresult.entry[2].pt[0] = entry[2].pt[0] * scalar;\n\t\tresult.entry[2].pt[1] = entry[2].pt[1] * scalar;\n\t\tresult.entry[2].pt[2] = entry[2].pt[2] * scalar;\n\t\treturn result;\n\t}\n\n\tNiPoint3 operator*(const NiPoint3& p) const\n\t{\n\t\treturn NiPoint3(\n\t\t\tentry[0].pt[0] * p.x + entry[0].pt[1] * p.y + entry[0].pt[2] * p.z,\n\t\t\tentry[1].pt[0] * p.x + entry[1].pt[1] * p.y + entry[1].pt[2] * p.z,\n\t\t\tentry[2].pt[0] * p.x + entry[2].pt[1] * p.y + entry[2].pt[2] * p.z);\n\t}\n\n\t// members\n\tNiPoint4 entry[3];  // 00\n};\nstatic_assert(sizeof(NiMatrix3) == 0x30);\n\nclass NiTransform\n{\npublic:\n\tvoid MakeIdentity() noexcept\n\t{\n\t\trotate.MakeIdentity();\n\t\ttranslate = NiPoint3{};\n\t\tscale = 1.0F;\n\t}\n\n\t// members\n\tNiMatrix3 rotate;         // 00\n\tNiPoint3  translate;      // 30\n\tfloat     scale{ 1.0F };  // 3C\n};\nstatic_assert(sizeof(NiTransform) == 0x40);\n"
  },
  {
    "path": "sfse/PapyrusNativeFunctions.h",
    "content": "#include \"sfse/GameTypes.h\"\r\n#include \"sfse/GameReflection.h\"\r\n#include \"sfse_common/Types.h\"\r\n#include \"sfse_common/Utilities.h\"\r\n#include \"sfse_common/Errors.h\"\r\n\r\n// this is all inside the BSScript namespace\r\n\r\nclass VMClassInfo;\r\nclass VMClassRegistry;\r\nclass VMState;\r\nclass VMValue;\r\n\r\n// 10\r\nclass IFunction\r\n{\r\npublic:\r\n\tIFunction() { }\r\n\tvirtual ~IFunction() { }\r\n\r\n\tstruct Unk13\r\n\t{\r\n\t\tu64\tunk00;\r\n\t\tu32\tunk08;\r\n\t};\r\n\r\n//\tvoid\t** _vtbl;\t// 00\r\n\r\n\tBSIntrusiveRefCounted\trefCount;\t// 08\r\n\r\n\tvirtual BSFixedString *\tGetName(void) = 0;\r\n\tvirtual BSFixedString *\tGetClassName(void) = 0;\r\n\tvirtual BSFixedString *\tGetStr20(void) = 0;\r\n\tvirtual u64 *\t\t\tGetReturnType(u64 * dst) = 0;\r\n\tvirtual u64\t\t\t\tGetNumParams(void) = 0;\r\n\tvirtual u64 *\t\t\tGetParam(u32 idx, BSFixedString * nameOut, u64 * typeOut) = 0;\r\n\tvirtual u64\t\t\t\tGetNumParams2(void) = 0;\r\n\tvirtual bool\t\t\tIsNative(void) = 0;\r\n\tvirtual bool\t\t\tIsStatic(void) = 0;\r\n\tvirtual bool\t\t\tUnk_0A(void) = 0;\r\n\tvirtual u32\t\t\t\tUnk_0B(void) = 0;\r\n\tvirtual u32\t\t\t\tGetUnk44(void) = 0;\r\n\tvirtual BSFixedString *\tGetStr48(void) = 0;\r\n\tvirtual void\t\t\tUnk_0E(u32 unk) = 0;\r\n\tvirtual u32\t\t\t\tInvoke(u64 unk0, u64 unk1, VMClassRegistry * registry, VMState * unk3) = 0;\r\n\tvirtual BSFixedString *\tUnk_10(void) = 0;\t// file/line number?\r\n\tvirtual bool\t\t\tUnk_11(u32 unk0, u32 * unk1) = 0;\r\n\tvirtual u64 *\t\t\tUnk_12(u64 * out) = 0;\t\t// new, might be type reflection\r\n\tvirtual Unk13\t\t\tUnk_13(Unk13 * out) = 0;\t// new, might be type reflection\r\n\tvirtual bool\t\t\tGetParamInfo(u32 idx, void * out) = 0;\t// param list stuff\r\n\tvirtual void *\t\t\tUnk_15(u64 arg0, u64 arg1) = 0;\t// param list stuff, loop\r\n\tvirtual u8\t\t\t\tGetUnk41(void) = 0;\r\n\tvirtual void\t\t\tSetUnk41(u8 arg) = 0;\r\n};\r\n\r\n// this is inside the NF_util namespace\r\n// 50\r\nclass NativeFunctionBase : public IFunction\r\n{\r\npublic:\r\n\tNativeFunctionBase() { }\r\n\tvirtual ~NativeFunctionBase() { }\r\n\r\n\t// 0C (10 aligned)\r\n\tstruct ParameterInfo\r\n\t{\r\n\t\t// 08\r\n\t\tstruct Entry\r\n\t\t{\r\n\t\t\tBSFixedString\tname;\t\t// 00\r\n\r\n\t\t\tunion\r\n\t\t\t{\r\n\t\t\t\tu64\t\t\ttype;\t\t// 08 - shared with VMValue::type\r\n\t\t\t\tVMClassInfo * typePtr;\t// 08\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tEntry * data;\t// 00 length = numParams + unk0A\r\n\t\tu16\tnumParams;\t// 08\r\n\t\tu16\tunk0A;\t\t// 0A\r\n\r\n\t\tMEMBER_FN_PREFIX(ParameterInfo);\r\n\t\tDEFINE_MEMBER_FN(GetParam, u64 *, 0x02827190, u32 idx, BSFixedString * nameOut, u64 * typeOut);\r\n\t};\r\n\r\n\tvirtual BSFixedString * GetName(void) override { return &m_fnName; }\r\n\tvirtual BSFixedString * GetClassName(void) override { return &m_className; }\r\n\tvirtual BSFixedString * GetStr20(void) override { return &unk20; }\r\n\tvirtual u64 *\t\t\tGetReturnType(u64 * dst) override { *dst = m_retnType; return dst; }\r\n\tvirtual u64\t\t\t\tGetNumParams(void) override { return m_params.unk0A; }\r\n\tvirtual u64 *\t\t\tGetParam(u32 idx, BSFixedString * nameOut, u64 * typeOut)\r\n\t{\r\n\t\treturn CALL_MEMBER_FN(&m_params, GetParam)(idx, nameOut, typeOut);\r\n\t}\r\n\tvirtual u64\t\t\t\tGetNumParams2(void) override { return m_params.unk0A; }\r\n\tvirtual bool\t\t\tIsNative(void) override { return true; }\r\n\tvirtual bool\t\t\tIsStatic(void) override { return m_isStatic; }\r\n\tvirtual bool\t\t\tUnk_0A(void) override { return false; }\r\n\tvirtual u32\t\t\t\tUnk_0B(void) override { return 0; }\r\n\tvirtual u32\t\t\t\tGetUnk44(void) override { return unk44; }\r\n\tvirtual BSFixedString *\tGetStr48(void) override { return &unk48; }\r\n\tvirtual void\t\t\tUnk_0E(u32 unk) override { }\t// always nop?\r\n\tvirtual u32\t\t\t\tInvoke(u64 unk0, u64 unk1, VMClassRegistry * registry, VMState * unk3) override\r\n\t{\r\n\t\treturn CALL_MEMBER_FN(this, Impl_Invoke)(unk0, unk1, registry, unk3);\r\n\t}\r\n\tvirtual BSFixedString *\tUnk_10(void) override { return CALL_MEMBER_FN(this, Impl_Fn10)(); }\t// static BSFixedString result(\"<native>\"); return result;\r\n\tvirtual bool\t\t\tUnk_11(u32 unk0, u32 * unk1) override { *unk1 = 0; return false; }\r\n\tvirtual u64 *\t\t\tUnk_12(u64 * out) override\r\n\t{\r\n\t\t*out = 0;\r\n\t\t// out[4] = 0; // as u8?\r\n\r\n\t\treturn out;\r\n\t}\r\n\tvirtual Unk13\t\t\tUnk_13(Unk13 * out) override\r\n\t{\r\n\t\tout->unk00 = 0;\r\n\t\tout->unk08 = 0;\r\n\t\t// out[8] = 0; // as u8?\r\n\t}\r\n\tvirtual bool\t\t\tGetParamInfo(u32 idx, void * out) override\r\n\t{\r\n\t\treturn CALL_MEMBER_FN(this, Impl_GetParamInfo)(idx, out);\r\n\t}\r\n\tvirtual void *\t\t\tUnk_15(u64 arg0, u64 arg1)\r\n\t{\r\n\t\treturn CALL_MEMBER_FN(this, Impl_Fn15)(arg0, arg1);\r\n\t}\r\n\tvirtual u8\t\t\t\tGetUnk41(void) override { return unk41; }\r\n\tvirtual void\t\t\tSetUnk41(u8 arg) override { unk41 = arg; }\r\n\tvirtual bool\t\t\tHasCallback() = 0;\r\n\tvirtual bool\t\t\tRun(VMValue * baseValue, VMClassRegistry * registry, u32 arg2, VMValue * resultValue, VMState * state) = 0;\r\n\r\n\tMEMBER_FN_PREFIX(NativeFunctionBase);\r\n\tDEFINE_MEMBER_FN(Impl_Invoke, u32, 0x02827860, u64 unk0, u64 unk1, VMClassRegistry * registry, VMState * unk3);\r\n\t// ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x10\r\n\tDEFINE_MEMBER_FN(Impl_Fn10, BSFixedString *, 0x02827240);\r\n\tDEFINE_MEMBER_FN(Impl_GetParamInfo, bool, 0x02827260, u32 idx, void * out);\r\n\tDEFINE_MEMBER_FN(Impl_Fn15, void *, 0x02827320, u64 arg0, u64 arg1);\r\n\r\nprotected:\r\n\tBSFixedString\tm_fnName;\t\t// 10\r\n\tBSFixedString\tm_className;\t// 18\r\n\tBSFixedString\tunk20;\t\t\t// 20\r\n\tu64\t\t\t\tm_retnType;\t\t// 28\r\n\tParameterInfo\tm_params;\t\t// 30\r\n\tbool\t\t\tm_isStatic;\t\t// 40\r\n\tu8\t\t\t\tunk41;\t\t\t// 41\r\n\tu8\t\t\t\tm_isLatent;\t\t// 42\r\n\tu8\t\t\t\tpad43;\t\t\t// 43\r\n\tu32\t\t\t\tunk44;\t\t\t// 44\r\n\tBSFixedString\tunk48;\t\t\t// 48\r\n};\r\n\r\nSTATIC_ASSERT(sizeof(NativeFunctionBase) == 0x50);\r\n\r\n// 58\r\n// this should be fully functional for deriving\r\nclass NativeFunction : public NativeFunctionBase\r\n{\r\npublic:\r\n\tNativeFunction() = delete;\r\n\tNativeFunction(const char * fnName, const char * className, u8 isStatic, u32 numParams)\r\n\t{\r\n\t\tCALL_MEMBER_FN(this, Impl_ctor)(fnName, className, isStatic, numParams);\r\n\t}\r\n\r\n\tvirtual ~NativeFunction()\t{ CALL_MEMBER_FN(this, Impl_dtor)(); }\r\n\r\n\tvirtual bool\tHasCallback(void) override { return m_callback != 0; }\r\n\r\n\tMEMBER_FN_PREFIX(NativeFunction);\r\n\tDEFINE_MEMBER_FN(Impl_ctor, NativeFunction *, 0x028273F0, const char * fnName, const char * className, u8 unk0, u32 numParams);\r\n\tDEFINE_MEMBER_FN(Impl_dtor, void, 0x028277C0);\t// same as NativeFunctionBase dtor\r\n\r\nprotected:\r\n\tvoid * m_callback;\t// 50\r\n};\r\n\r\nSTATIC_ASSERT(sizeof(NativeFunction) == 0x58);\r\n"
  },
  {
    "path": "sfse/PluginAPI.h",
    "content": "#pragma once\r\n\r\n#include <cstdint>\r\n\r\ntypedef std::uint32_t PluginHandle;\t// treat this as an opaque type\r\n\r\nclass BranchTrampoline;\r\nclass IMenu;\r\nclass BSScaleformManager;\r\n\r\nstruct PluginInfo\r\n{\r\n\tenum\r\n\t{\r\n\t\tkInfoVersion = 1\r\n\t};\r\n\r\n\tstd::uint32_t\tinfoVersion;\r\n\tconst char *\tname;\r\n\tstd::uint32_t\tversion;\r\n};\r\n\r\nenum\r\n{\r\n\tkPluginHandle_Invalid = 0xFFFFFFFF\r\n};\r\n\r\nenum\r\n{\r\n\tkInterface_Invalid = 0,\r\n\tkInterface_Messaging,\r\n\tkInterface_Trampoline,\r\n\tkInterface_Menu,\r\n\tkInterface_Task,\r\n\tkInterface_Max,\r\n};\r\n\r\nstruct SFSEInterface\r\n{\r\n\tenum\r\n\t{\r\n\t\tkInterfaceVersion = 1\r\n\t};\r\n\r\n\tstd::uint32_t\tsfseVersion;\r\n\tstd::uint32_t\truntimeVersion;\r\n\tstd::uint32_t\tinterfaceVersion;\r\n\tvoid *\t(* QueryInterface)(std::uint32_t id);\r\n\r\n\t// call during your Query or Load functions to get a PluginHandle uniquely identifying your plugin\r\n\t// invalid if called at any other time, so call it once and save the result\r\n\tPluginHandle\t\t(* GetPluginHandle)(void);\r\n\r\n\t// returns the plugin info structure for a plugin by name, only valid to be called after PostLoad message\r\n\tconst PluginInfo*\t(* GetPluginInfo)(const char * name);\r\n};\r\n\r\n/**** Messaging API docs ********************************************************************\r\n *\r\n *\tMessaging API allows inter-plugin communication at run-time. A plugin may register\r\n *\tone callback for each plugin from which it wishes to receive messages, specifying\r\n *\tthe sender by name in the call to RegisterListener(). RegisterListener returns false\r\n *\tif the specified plugin is not loaded, true otherwise. Any messages dispatched by\r\n *\tthe specified plugin will then be forwarded to the listener as they occur. Passing NULL as \r\n *\tthe sender registers the calling plugin as a listener to every loaded plugin.\r\n *\r\n *\tMessages may be dispatched via Dispatch() to either a specific listener (specified\r\n *\tby name) or to all listeners (with NULL passed as the receiver). The contents and format of\r\n *\tmessageData are left up to the sender, and the receiver is responsible for casting the message\r\n *\tto the expected type. If no plugins are registered as listeners for the sender, \r\n *\tDispatch() returns false, otherwise it returns true.\r\n *\r\n *\tCalling RegisterListener() or Dispatch() during plugin load is not advised as the requested plugin\r\n *\tmay not yet be loaded at that point. Instead, if you wish to register as a listener or dispatch a\r\n *\tmessage immediately after plugin load, use RegisterListener() during load to register to receive\r\n *\tmessages from SFSE (sender name: \"SFSE\"). You will then receive a message from SFSE once \r\n *\tall plugins have been loaded, at which point it is safe to establish communications between\r\n *\tplugins.\r\n *\r\n *\tSome plugin authors may wish to use strings instead of integers to denote message type. In\r\n *\tthat case the receiver can pass the address of the string as an integer and require the receiver\r\n *\tto cast it back to a char* on receipt.\r\n *\r\n *********************************************************************************************/\r\n\r\nstruct SFSEMessagingInterface\r\n{\r\n\tstruct Message {\r\n\t\tconst char\t\t* sender;\r\n\t\tstd::uint32_t\ttype;\r\n\t\tstd::uint32_t\tdataLen;\r\n\t\tvoid\t\t\t* data;\r\n\t};\r\n\r\n\ttypedef void (* EventCallback)(Message* msg);\r\n\r\n\tenum {\r\n\t\tkInterfaceVersion = 1\r\n\t};\r\n\r\n\t// SFSE messages\r\n\tenum {\r\n\t\tkMessage_PostLoad,\t\t// sent to registered plugins once all plugins have been loaded (no data)\r\n\t\tkMessage_PostPostLoad,\t// sent right after kMessage_PostPostLoad to facilitate the correct dispatching/registering of messages/listeners\r\n\t\tkMessage_PostDataLoad,\t// sent right after all game data has loaded (Passes TESDataHandler as pointer)\r\n\t\tkMessage_PostPostDataLoad, // sent after all game data has loaded, and all PostDataLoad events have handled (Passes TESDataHandler as pointer)\r\n\t\tkMessage_PreSaveGame,\r\n\t\tkMessage_PostSaveGame,\r\n\t\tkMessage_PreLoadGame,\r\n\t\tkMessage_PostLoadGame,\r\n\t};\r\n\r\n\tstd::uint32_t interfaceVersion;\r\n\tbool\t(* RegisterListener)(PluginHandle listener, const char* sender, EventCallback handler);\r\n\tbool\t(* Dispatch)(PluginHandle sender, std::uint32_t messageType, void * data, std::uint32_t dataLen, const char* receiver);\r\n};\r\n\r\nstruct SFSEMenuInterface\r\n{\r\n\tenum\r\n\t{\r\n\t\tkInterfaceVersion = 2\r\n\t};\r\n\r\n\tstd::uint32_t\tinterfaceVersion;\r\n\r\n\t// This callback will be called once for every new menu where its MovieImpl is loaded.\r\n\ttypedef void (*MenuMovieCreatedCallback)(IMenu* menu);\r\n\tvoid (*RegisterMenuMovieCreated)(MenuMovieCreatedCallback callback); // v1\r\n\r\n\t// This callback will be invoked when the BSScaleformManager is initialized\r\n\ttypedef void (*ScaleformManagerCreatedCallback)(BSScaleformManager* manager);\r\n\tvoid (*RegisterScaleformManagerCreated)(ScaleformManagerCreatedCallback callback); // v2\r\n};\r\n\r\nstruct SFSETaskInterface\r\n{\r\n\tenum\r\n\t{\r\n\t\tkInterfaceVersion = 1\r\n\t};\r\n\tstd::uint32_t interfaceVersion;\r\n\r\n\tclass ITaskDelegate\r\n\t{\r\n\tpublic:\r\n\t\tvirtual void Run() = 0;\r\n\t\tvirtual void Destroy() = 0; // delete this or free/release here\r\n\t};\r\n\r\n\t// This task will be executed once on the Main thread, then deleted\r\n\tvoid (*AddTask)(ITaskDelegate* task);\r\n\r\n\t// This task will be executed every frame on the Main thread without deleting\r\n\tvoid (*AddTaskPermanent)(ITaskDelegate* task);\r\n};\r\n\r\nstruct SFSETrampolineInterface\r\n{\r\n\tenum\r\n\t{\r\n\t\tkInterfaceVersion = 1\r\n\t};\r\n\r\n\tstd::uint32_t interfaceVersion;\r\n\r\n\tvoid * (* AllocateFromBranchPool)(PluginHandle plugin, size_t size);\r\n\tvoid * (* AllocateFromLocalPool)(PluginHandle plugin, size_t size);\r\n};\r\n\r\ntypedef bool (* _SFSEPlugin_Load)(const SFSEInterface * sfse);\r\n\r\n/**** plugin versioning ********************************************************\r\n *\r\n *\tSFSE does not call any code to determine plugin compatibility. Checks are\r\n *\tmade against \r\n *\tno longer calls any code. Plugins declare their compatibility, and SFSE\r\n *\tdetermines whether to load the plugin. Setting this up is simple, just\r\n *\tadd something like this to your project:\r\n *\t\r\n\r\nextern \"C\" {\r\n__declspec(dllexport) SFSEPluginVersionData SFSEPlugin_Version =\r\n{\r\n\tSFSEPluginVersionData::kVersion,\r\n\t\r\n\t1,\r\n\t\"my awesome plugin\",\r\n\t\"my name\",\r\n\r\n\t0,\t// not address independent\r\n\t0,\t// not structure independent\r\n\t{ RUNTIME_VERSION_1_7_23, 0 },\t// compatible with 1.7.23 and that's it\r\n\r\n\t0,\t// works with any version of the script extender. you probably do not need to put anything here\r\n\t0, 0,\t// set these reserved fields to 0\r\n};\r\n};\r\n\r\n *\t\r\n ******************************************************************************/\r\n\r\nstruct SFSEPluginVersionData\r\n{\r\n\tenum\r\n\t{\r\n\t\tkVersion = 1,\r\n\t};\r\n\r\n\t// describe how you find your addresses\r\n\tenum\r\n\t{\r\n\t\t// signature matching only\r\n\t\tkAddressIndependence_Signatures = 1 << 0,\r\n\t\t\r\n\t\t// Address Library v1 (https://www.nexusmods.com/starfield/mods/3256)\r\n\t\tkAddressIndependence_AddressLibrary = 1 << 1,\r\n\r\n\t\t// Address Library for 1.15.216+\r\n\t\tkAddressIndependence_AddressLibraryV2 = 1 << 2,\r\n\t};\r\n\t\r\n\t// describe your structure compatibility\r\n\tenum\r\n\t{\r\n\t\t// doesn't use any game structures\r\n\t\tkStructureIndependence_NoStructs = 1 << 0,\r\n\t\t\r\n\t\t// works with the structure layout the game shipped with\r\n\t\tkStructureIndependence_InitialLayout = 1 << 1,\r\n\r\n\t\t// works with 1.8.86+ structure layout\r\n\t\tkStructureIndependence_1_8_86_Layout = 1 << 2,\r\n\r\n\t\t// works with 1.14.70+ structure layout\r\n\t\tkStructureIndependence_1_14_70_Layout = 1 << 3,\r\n\t\t\r\n\t\t// additional bits will be added here when breaking changes happen\r\n\t};\r\n\r\n\tstd::uint32_t\tdataVersion;\t\t// set to kVersion\r\n\r\n\tstd::uint32_t\tpluginVersion;\t\t// version number of your plugin\r\n\tchar\t\t\tname[256];\t\t\t// null-terminated ASCII plugin name (please make this recognizable to users)\r\n\tchar\t\t\tauthor[256];\t\t// null-terminated ASCII plugin author name\r\n\t\r\n\t// version compatibility\r\n\tstd::uint32_t\taddressIndependence;\t// bitfield. describe how you find your addresses using the kAddressIndependence_ enums\r\n\tstd::uint32_t\tstructureIndependence;\t// bitfield. describe how you handle structure layout using the kStructureIndependence_ enums\r\n\tstd::uint32_t\tcompatibleVersions[16];\t// zero-terminated list of RUNTIME_VERSION_ defines your plugin is compatible with\r\n\t\r\n\tstd::uint32_t\tseVersionRequired;\t\t// minimum version of the script extender required, compared against PACKED_SFSE_VERSION\r\n\t\t\t\t\t\t\t\t\t\t\t// you probably should just set this to 0 unless you know what you are doing\r\n\tstd::uint32_t\treservedNonBreaking;\t// bitfield. set to 0\r\n\tstd::uint32_t\treservedBreaking;\t\t// bitfield. set to 0\r\n};\r\n\r\n/**** plugin API docs **********************************************************\r\n *\t\r\n *\tThe base API is pretty simple. Add version data as shown in the\r\n *\tSFSEPluginVersionData docs above, and export this function:\r\n *\t\r\n *\tbool SFSEPlugin_Load(const SFSEInterface * sfse)\r\n *\t\r\n *\tIn this function, use the interfaces above to register your commands, patch\r\n *\tmemory, generally do whatever you need to for integration with the runtime.\r\n *\t\r\n *\tAt this time, or at any point forward you can call the QueryInterface\r\n *\tcallback to retrieve an interface structure for the base services provided\r\n *\tby the SFSE core.\r\n *\t\r\n *\tNote that all structure versions are backwards-compatible, so you only need\r\n *\tto check against the latest version that you need. New fields will be only\r\n *\tadded to the end, and all old fields will remain compatible with their\r\n *\tprevious implementations.\r\n *\t\r\n *\tIf your plugin needs to make modifications before global initializers, add\r\n *\tand export this:\r\n *\t\r\n *\tbool SFSEPlugin_Preload(const SFSEInterface * sfse)\r\n *\t\r\n *\tGame and SFSE functionality may be limited during preload.\r\n *\t\r\n ******************************************************************************/\r\n"
  },
  {
    "path": "sfse/PluginManager.cpp",
    "content": "#include \"PluginManager.h\"\r\n#include \"sfse_common/DirectoryIterator.h\"\r\n#include \"sfse_common/FileStream.h\"\r\n#include \"sfse_common/Utilities.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_common/BranchTrampoline.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/Errors.h\"\r\n\r\n#include \"sfse/Hooks_Scaleform.h\"\r\n#include \"sfse/Hooks_Command.h\"\r\n\r\nPluginManager\tg_pluginManager;\r\n\r\nPluginManager::LoadedPlugin *\tPluginManager::s_currentLoadingPlugin = nullptr;\r\nPluginHandle\t\t\t\t\tPluginManager::s_currentPluginHandle = 0;\r\nu32\t\t\t\t\t\t\t\ts_trampolineLog = 1;\r\n\r\nBranchTrampolineManager g_branchTrampolineManager(g_branchTrampoline);\r\nBranchTrampolineManager g_localTrampolineManager(g_localTrampoline);\r\n\r\nstatic const SFSEInterface g_SFSEInterface =\r\n{\r\n\tPACKED_SFSE_VERSION,\r\n\tRUNTIME_VERSION,\r\n\tSFSEInterface::kInterfaceVersion,\r\n\r\n\tPluginManager::queryInterface,\r\n\tPluginManager::getPluginHandle,\r\n\tPluginManager::getPluginInfo\r\n};\r\n\r\nstatic const SFSETrampolineInterface g_SFSETrampolineInterface =\r\n{\r\n\tSFSETrampolineInterface::kInterfaceVersion,\r\n\tAllocateFromSFSEBranchPool,\r\n\tAllocateFromSFSELocalPool\r\n};\r\n\r\nstatic SFSEMessagingInterface g_SFSEMessagingInterface =\r\n{\r\n\tSFSEMessagingInterface::kInterfaceVersion,\r\n\tPluginManager::registerListener,\r\n\tPluginManager::dispatchMessage,\r\n};\r\n\r\nstatic const SFSEMenuInterface g_SFSEMenuInterface =\r\n{\r\n\tSFSEMenuInterface::kInterfaceVersion,\r\n\tRegisterMenuPlugin,\r\n\tRegisterManagerPlugin,\r\n};\r\n\r\nstatic const SFSETaskInterface g_SFSETaskInterface =\r\n{\r\n\tSFSETaskInterface::kInterfaceVersion,\r\n\tTaskInterface::addTask,\r\n\tTaskInterface::addTaskPermanent\r\n};\r\n\r\nPluginManager::PluginManager()\r\n{\r\n\t//\r\n}\r\n\r\nPluginManager::~PluginManager()\r\n{\r\n\tdeinit();\r\n}\r\n\r\nPluginManager::LoadedPlugin::LoadedPlugin()\r\n{\r\n\tmemset(&info, 0, sizeof(info));\r\n\tmemset(&version, 0, sizeof(version));\r\n}\r\n\r\nvoid PluginManager::init()\r\n{\r\n\tif(findPluginDirectory())\r\n\t{\r\n\t\t_MESSAGE(\"plugin directory = %s\", m_pluginDirectory.c_str());\r\n\r\n\t\t// avoid realloc\r\n\t\tm_plugins.reserve(5);\r\n\r\n\t\t__try\r\n\t\t{\r\n\t\t\tscanPlugins();\r\n\t\t}\r\n\t\t__except(EXCEPTION_EXECUTE_HANDLER)\r\n\t\t{\r\n\t\t\t// something very bad happened\r\n\t\t\t_ERROR(\"exception occurred while loading plugins\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvoid PluginManager::installPlugins(u32 phase)\r\n{\r\n\tfor(size_t i = 0; i < m_plugins.size(); i++)\r\n\t{\r\n\t\tauto & plugin = m_plugins[i];\r\n\r\n\t\t// skip plugins that don't care about this phase\r\n\t\tif(phase == kPhase_Preload)\r\n\t\t{\r\n\t\t\tif(!plugin.hasPreload)\r\n\t\t\t\tcontinue;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tif(!plugin.hasLoad)\r\n\t\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\t_MESSAGE(\"%sloading plugin \\\"%s\\\"\", (phase == kPhase_Preload) ? \"pre\" : \"\", plugin.version.name);\r\n\r\n\t\ts_currentLoadingPlugin = &plugin;\r\n\t\ts_currentPluginHandle = plugin.internalHandle;\r\n\r\n\t\tstd::string pluginPath = m_pluginDirectory + plugin.dllName;\r\n\r\n\t\tif(!plugin.handle)\r\n\t\t{\r\n\t\t\tplugin.handle = (HMODULE)LoadLibrary(pluginPath.c_str());\r\n\t\t\tif(!plugin.handle)\r\n\t\t\t\tlogPluginLoadError(plugin, \"couldn't load plugin\", GetLastError());\r\n\t\t}\r\n\r\n\t\tbool\tsuccess = false;\r\n\r\n\t\tif(plugin.handle)\r\n\t\t{\r\n\t\t\tplugin.load[phase] = (_SFSEPlugin_Load)GetProcAddress(plugin.handle, (phase == kPhase_Preload) ? \"SFSEPlugin_Preload\" : \"SFSEPlugin_Load\");\r\n\t\t\tif(plugin.load)\r\n\t\t\t{\r\n\t\t\t\tconst char * loadStatus = nullptr;\r\n\r\n\t\t\t\tloadStatus = safeCallLoadPlugin(&plugin, &g_SFSEInterface, phase);\r\n\r\n\t\t\t\tif(!loadStatus)\r\n\t\t\t\t{\r\n\t\t\t\t\tsuccess = true;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlogPluginLoadError(plugin, loadStatus);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlogPluginLoadError(plugin, \"does not appear to be an SFSE plugin\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif(!success)\r\n\t\t{\r\n\t\t\t// failed, unload the library\r\n\t\t\tif(plugin.handle) FreeLibrary(plugin.handle);\r\n\r\n\t\t\t// and remove from plugins list\r\n\t\t\tm_plugins.erase(m_plugins.begin() + i);\r\n\r\n\t\t\t// fix iterator\r\n\t\t\ti--;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\ts_currentLoadingPlugin = nullptr;\r\n\ts_currentPluginHandle = 0;\r\n}\r\n\r\nvoid PluginManager::loadComplete()\r\n{\r\n\tfor(size_t i = 0; i < m_plugins.size(); i++)\r\n\t{\r\n\t\tauto & plugin = m_plugins[i];\r\n\r\n\t\t_MESSAGE(\"plugin %s (%08X %s %08X) %s (handle %d)\",\r\n\t\t\tplugin.dllName.c_str(),\r\n\t\t\tplugin.version.dataVersion,\r\n\t\t\tplugin.version.name,\r\n\t\t\tplugin.version.pluginVersion,\r\n\t\t\t\"loaded correctly\",\r\n\t\t\tplugin.internalHandle);\r\n\t}\r\n\r\n\treportPluginErrors();\r\n\r\n\t// make fake PluginInfo structs after m_plugins is locked\r\n\tfor(auto & plugin : m_plugins)\r\n\t{\r\n\t\tplugin.info.infoVersion = PluginInfo::kInfoVersion;\r\n\t\tplugin.info.name = plugin.version.name;\r\n\t\tplugin.info.version = plugin.version.pluginVersion;\r\n\t}\r\n\r\n\t// alert any listeners that plugin load has finished\r\n\tdispatchMessage(0, SFSEMessagingInterface::kMessage_PostLoad, nullptr, 0, nullptr);\r\n\t// second post-load dispatch\r\n\tdispatchMessage(0, SFSEMessagingInterface::kMessage_PostPostLoad, nullptr, 0, nullptr);\r\n}\r\n\r\nvoid PluginManager::deinit()\r\n{\r\n\tfor(LoadedPluginList::iterator iter = m_plugins.begin(); iter != m_plugins.end(); ++iter)\r\n\t{\r\n\t\tLoadedPlugin\t* plugin = &(*iter);\r\n\r\n\t\tif(plugin->handle)\r\n\t\t{\r\n\t\t\tFreeLibrary(plugin->handle);\r\n\t\t}\r\n\t}\r\n\r\n\tm_plugins.clear();\r\n}\r\n\r\nconst PluginInfo * PluginManager::infoByName(const char * name) const\r\n{\r\n\tfor(LoadedPluginList::const_iterator iter = m_plugins.begin(); iter != m_plugins.end(); ++iter)\r\n\t{\r\n\t\tconst LoadedPlugin * plugin = &(*iter);\r\n\r\n\t\tif(plugin->info.name && !_stricmp(name, plugin->info.name))\r\n\t\t\treturn &plugin->info;\r\n\t}\r\n\r\n\treturn nullptr;\r\n}\r\n\r\nu32 PluginManager::numPlugins() const\r\n{\r\n\tu32\tresult = (u32)m_plugins.size();\r\n\r\n\t// is one currently loading?\r\n\tif(s_currentLoadingPlugin) result++;\r\n\r\n\treturn result;\r\n}\r\n\r\nconst char * PluginManager::pluginNameFromHandle(PluginHandle handle) const\r\n{\r\n\tif(handle > 0 && handle <= m_plugins.size())\r\n\t\treturn (m_plugins[handle - 1].version.name);\r\n\telse if(handle == 0)\r\n\t\treturn \"SFSE\";\r\n\r\n\treturn nullptr;\r\n}\r\n\r\nPluginHandle PluginManager::lookupHandleFromName(const char * pluginName) const\r\n{\r\n\tif(!_stricmp(\"SFSE\", pluginName))\r\n\t\treturn 0;\r\n\r\n\tu32\tidx = 1;\r\n\tfor(LoadedPluginList::const_iterator iter = m_plugins.begin(); iter != m_plugins.end(); ++iter)\r\n\t{\r\n\t\tconst LoadedPlugin * plugin = &(*iter);\r\n\t\tif(!_stricmp(plugin->version.name, pluginName))\r\n\t\t{\r\n\t\t\treturn idx;\r\n\t\t}\r\n\t\tidx++;\r\n\t}\r\n\treturn kPluginHandle_Invalid;\r\n}\r\n\r\nvoid * PluginManager::queryInterface(u32 id)\r\n{\r\n\tvoid\t* result = nullptr;\r\n\r\n\tswitch(id)\r\n\t{\r\n\tcase kInterface_Messaging:\r\n\t\tresult = (void *)&g_SFSEMessagingInterface;\r\n\t\tbreak;\r\n\tcase kInterface_Trampoline:\r\n\t\tresult = (void *)&g_SFSETrampolineInterface;\r\n\t\tbreak;\r\n\tcase kInterface_Menu:\r\n\t\tresult = (void*)&g_SFSEMenuInterface;\r\n\t\tbreak;\r\n\tcase kInterface_Task:\r\n\t\tresult = (void*)&g_SFSETaskInterface;\r\n\t\tbreak;\r\n\r\n\tdefault:\r\n\t\t_WARNING(\"unknown QueryInterface %08X\", id);\r\n\t\tbreak;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nPluginHandle PluginManager::getPluginHandle(void)\r\n{\r\n\tASSERT_STR(s_currentPluginHandle, \"A plugin has called SFSEInterface::GetPluginHandle outside of its Query/Load handlers\");\r\n\r\n\treturn s_currentPluginHandle;\r\n}\r\n\r\nconst PluginInfo*\tPluginManager::getPluginInfo(const char* name)\r\n{\r\n\treturn g_pluginManager.infoByName(name);\r\n}\r\n\r\nbool PluginManager::findPluginDirectory(void)\r\n{\r\n\tbool\tresult = false;\r\n\r\n\t// find the path <runtime directory>/data/sfse/\r\n\tstd::string\truntimeDirectory = getRuntimeDirectory();\r\n\r\n\tif(!runtimeDirectory.empty())\r\n\t{\r\n\t\tm_pluginDirectory = runtimeDirectory + \"Data\\\\SFSE\\\\Plugins\\\\\";\r\n\t\tresult = true;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nvoid PluginManager::scanPlugins(void)\r\n{\r\n\t_MESSAGE(\"scanning plugin directory %s\", m_pluginDirectory.c_str());\r\n\r\n\tu32 handleIdx = 1;\t// start at 1, 0 is reserved for internal use\r\n\r\n\tfor(DirectoryIterator iter(m_pluginDirectory.c_str(), \"*.dll\"); !iter.done(); iter.next())\r\n\t{\r\n\t\tstd::string\tpluginPath = iter.fullPath();\r\n\r\n\t\tLoadedPlugin\tplugin;\r\n\t\tplugin.dllName = iter.get()->cFileName;\r\n\r\n\t\t_MESSAGE(\"checking plugin %s\", plugin.dllName.c_str());\r\n\r\n\t\tHMODULE resourceHandle = (HMODULE)LoadLibraryEx(pluginPath.c_str(), nullptr, LOAD_LIBRARY_AS_IMAGE_RESOURCE);\r\n\t\tif(resourceHandle)\r\n\t\t{\r\n\t\t\tif(is64BitDLL(resourceHandle))\r\n\t\t\t{\r\n\t\t\t\tauto * version = (const SFSEPluginVersionData *)getResourceLibraryProcAddress(resourceHandle, \"SFSEPlugin_Version\");\r\n\t\t\t\tif(version)\r\n\t\t\t\t{\r\n\t\t\t\t\tplugin.version = *version;\r\n\t\t\t\t\tsanitize(&plugin.version);\r\n\r\n\t\t\t\t\tauto * loadStatus = checkPluginCompatibility(plugin.version);\r\n\t\t\t\t\tif(!loadStatus)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// compatible, add to list\r\n\r\n\t\t\t\t\t\tplugin.internalHandle = handleIdx;\r\n\t\t\t\t\t\thandleIdx++;\r\n\r\n\t\t\t\t\t\tplugin.hasLoad = getResourceLibraryProcAddress(resourceHandle, \"SFSEPlugin_Load\") != nullptr;\r\n\t\t\t\t\t\tplugin.hasPreload = getResourceLibraryProcAddress(resourceHandle, \"SFSEPlugin_Preload\") != nullptr;\r\n\r\n\t\t\t\t\t\tm_plugins.push_back(plugin);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlogPluginLoadError(plugin, loadStatus);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tlogPluginLoadError(plugin, \"no version data\", 0, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlogPluginLoadError(plugin, \"32-bit plugins can never work\");\r\n\t\t\t}\r\n\r\n\t\t\tFreeLibrary(resourceHandle);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlogPluginLoadError(plugin, \"couldn't load plugin\", GetLastError());\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst char * PluginManager::checkAddressLibrary(void)\r\n{\r\n\tstatic bool s_checked = false;\r\n\tstatic const char * s_status = nullptr;\r\n\r\n\tif(s_checked)\r\n\t{\r\n\t\treturn s_status;\r\n\t}\r\n\r\n\tconst char * buildType = \"\";\r\n\r\n\tchar fileName[256];\r\n\t_snprintf_s(fileName, 256, \"Data\\\\SFSE\\\\Plugins\\\\versionlib-%d-%d-%d-%d%s.bin\",\r\n\t\tGET_EXE_VERSION_MAJOR(RUNTIME_VERSION),\r\n\t\tGET_EXE_VERSION_MINOR(RUNTIME_VERSION),\r\n\t\tGET_EXE_VERSION_BUILD(RUNTIME_VERSION),\r\n\t\t0, buildType);\r\n\r\n\tFileStream versionLib;\r\n\tif(!versionLib.open(fileName))\r\n\t{\r\n\t\tm_oldAddressLibrary = true;\r\n\t\ts_status = \"disabled, address library needs to be updated\";\r\n\t}\r\n\r\n\ts_checked = true;\r\n\r\n\treturn s_status;\r\n}\r\n\r\nconst char * PluginManager::safeCallLoadPlugin(LoadedPlugin * plugin, const SFSEInterface * sfse, u32 phase)\r\n{\r\n\t__try\r\n\t{\r\n\t\tif(!plugin->load[phase](sfse))\r\n\t\t{\r\n\t\t\treturn \"reported as incompatible during load\";\r\n\t\t}\r\n\t}\r\n\t__except(EXCEPTION_EXECUTE_HANDLER)\r\n\t{\r\n\t\t// something very bad happened\r\n\t\treturn \"disabled, fatal error occurred while loading plugin\";\r\n\t}\r\n\r\n\treturn nullptr;\r\n}\r\n\r\nvoid PluginManager::sanitize(SFSEPluginVersionData * version)\r\n{\r\n\tversion->name[sizeof(version->name) - 1] = 0;\r\n\tversion->author[sizeof(version->author) - 1] = 0;\r\n}\r\n\r\nenum\r\n{\r\n\tkCompat_BlockFromRuntime =\t\t1 << 0,\r\n\tkCompat_BlockFromEditor =\t\t1 << 1,\r\n\tkCompat_NotVersionIndependent =\t1 << 2,\r\n};\r\n\r\nstruct PluginCompatEntry\r\n{\r\n\tconst char\t* name;\r\n\tu32\t\t\tminVersion;\r\n\tconst char\t* reason;\r\n\tu32\t\t\tcompatFlags;\r\n};\r\n\r\nstatic const PluginCompatEntry\tkPluginCompatList[] =\r\n{\r\n\t{\t\"BakaAchievementEnabler\",\tMAKE_EXE_VERSION(2, 0, 0),\t\t\"broken before plugin version 2.0.0\",\tkCompat_BlockFromRuntime\t},\r\n\t{\t\"BakaKillMyGames\",\t\t\tMAKE_EXE_VERSION(2, 0, 0),\t\t\"broken before plugin version 2.0.0\",\tkCompat_BlockFromRuntime\t},\r\n\t{\t\"BakaQuitGameFix\",\t\t\tMAKE_EXE_VERSION(2, 0, 0),\t\t\"broken before plugin version 2.0.0\",\tkCompat_BlockFromRuntime\t},\r\n\t{\t\"BakaQuickFullSaves\",\t\tMAKE_EXE_VERSION(2, 0, 0),\t\t\"broken before plugin version 2.0.0\",\tkCompat_BlockFromRuntime\t},\r\n\r\n\t// version data doesn't match the version listed on nexus, have contacted the author to update this\r\n\t{\t\"StarfieldRadio\",\t\t\t10001,\t\t\"crashes due to bad version data (update past version 1.0.3)\",\t\tkCompat_BlockFromRuntime\t},\r\n\r\n\t{\t\"SaveTweaks\",\t\t\t\t4,\t\t\t\"crashes due to bad version data (update past version 3)\",\t\t\tkCompat_BlockFromRuntime\t},\r\n\r\n\t{\t\"Starfield-NoAffinityLoss\",\t10301,\t\t\"crashes due to bad version data (update past version 1.3.0)\",\t\tkCompat_BlockFromRuntime\t},\r\n\r\n\t// didn't set up version data correctly and implemented its own version check\r\n\t{\t\"Starfield Engine Fixes - SFSE Plugin by LarannKiar\",\t0,\t\"not version independent\",\tkCompat_NotVersionIndependent },\r\n\r\n\t{\tnullptr, 0, nullptr }\r\n};\r\n\r\nconst char * PluginManager::checkPluginCompatibility(const SFSEPluginVersionData & version)\r\n{\r\n\t__try\r\n\t{\r\n\t\t// basic validity\r\n\t\tif(!version.dataVersion)\r\n\t\t{\r\n\t\t\treturn \"disabled, bad version data\";\r\n\t\t}\r\n\r\n\t\tif(!version.name[0])\r\n\t\t{\r\n\t\t\treturn \"disabled, no name specified\";\r\n\t\t}\r\n\r\n\t\t// check for 'known bad' versions of plugins\r\n\t\tconst PluginCompatEntry * compat = nullptr;\r\n\r\n\t\tfor(const PluginCompatEntry * iter = kPluginCompatList; iter->name; ++iter)\r\n\t\t{\r\n\t\t\tif(!strcmp(iter->name, version.name))\r\n\t\t\t{\r\n\t\t\t\tcompat = iter;\r\n\r\n\t\t\t\tif(version.pluginVersion < iter->minVersion)\r\n\t\t\t\t{\r\n#ifdef RUNTIME\r\n\t\t\t\t\tif(iter->compatFlags & kCompat_BlockFromRuntime)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn iter->reason;\r\n\t\t\t\t\t}\r\n#endif\r\n\r\n#ifdef EDITOR\r\n\t\t\t\t\tif(iter->compatFlags & kCompat_BlockFromEditor)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treturn iter->reason;\r\n\t\t\t\t\t}\r\n#endif\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// version compatibility means both address independence and structure independence\r\n\t\tbool hasAddressIndependence = version.addressIndependence &\r\n\t\t\t(SFSEPluginVersionData::kAddressIndependence_Signatures |\r\n\t\t\tSFSEPluginVersionData::kAddressIndependence_AddressLibraryV2);\r\n\t\tbool hasStructureIndependence = version.structureIndependence &\r\n\t\t\t(SFSEPluginVersionData::kStructureIndependence_NoStructs |\r\n\t\t\tSFSEPluginVersionData::kStructureIndependence_1_14_70_Layout);\r\n\r\n\t\tbool versionIndependent = hasAddressIndependence && hasStructureIndependence;\r\n\r\n\t\t// plugins with bad version data are not version independent\r\n\t\tif(compat && compat->compatFlags & kCompat_NotVersionIndependent)\r\n\t\t\tversionIndependent = false;\r\n\r\n\t\t// currently anything in the \"breaking change\" field means that compatibility has been broken by an update\r\n\t\tif(version.reservedBreaking)\r\n\t\t\tversionIndependent = false;\r\n\r\n\t\t// verify that address library is there to centralize error message\r\n\t\tif(version.addressIndependence & (SFSEPluginVersionData::kAddressIndependence_AddressLibrary | SFSEPluginVersionData::kAddressIndependence_AddressLibraryV2))\r\n\t\t{\r\n\t\t\tconst char * result = checkAddressLibrary();\r\n\t\t\tif(result) return result;\r\n\t\t}\r\n\r\n\t\t// simple version list\r\n\t\tif(!versionIndependent)\r\n\t\t{\r\n\t\t\tbool found = false;\r\n\r\n\t\t\tfor(u32 i = 0; i < _countof(version.compatibleVersions); i++)\r\n\t\t\t{\r\n\t\t\t\tu32 compatibleVersion = version.compatibleVersions[i];\r\n\r\n\t\t\t\tif(compatibleVersion == RUNTIME_VERSION)\r\n\t\t\t\t{\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!compatibleVersion)\r\n\t\t\t\t{\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(!found)\r\n\t\t\t{\r\n\t\t\t\treturn \"disabled, incompatible with current version of the game\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// SE version compatibility\r\n\t\tif(version.seVersionRequired > PACKED_SFSE_VERSION)\r\n\t\t{\r\n\t\t\treturn \"disabled, requires newer script extender\";\r\n\t\t}\r\n\t}\r\n\t__except(EXCEPTION_EXECUTE_HANDLER)\r\n\t{\r\n\t\t// paranoia\r\n\t\treturn \"disabled, fatal error occurred while checking plugin compatibility\";\r\n\t}\r\n\r\n\treturn nullptr;\r\n}\r\n\r\nvoid PluginManager::logPluginLoadError(const LoadedPlugin & pluginSrc, const char * errStr, u32 errCode, bool isError)\r\n{\r\n\tLoadedPlugin plugin = pluginSrc;\r\n\r\n\tplugin.errorState = errStr;\r\n\tplugin.errorCode = errCode;\r\n\r\n\tif(isError)\r\n\t\tm_erroredPlugins.push_back(plugin);\r\n\r\n\t_MESSAGE(\"plugin %s (%08X %s %08X) %s %d (handle %d)\",\r\n\t\tplugin.dllName.c_str(),\r\n\t\tplugin.version.dataVersion,\r\n\t\tplugin.version.name,\r\n\t\tplugin.version.pluginVersion,\r\n\t\tplugin.errorState,\r\n\t\tplugin.errorCode,\r\n\t\ts_currentPluginHandle);\r\n}\r\n\r\nstruct BetterPluginName\r\n{\r\n\tconst char * dllName;\r\n\tconst char * userReportedName;\r\n};\r\n\r\n// some plugins have non-descriptive names resulting in bad bug reports\r\nstatic const BetterPluginName kBetterPluginNames[] =\r\n{\r\n\t{ \"sfee.dll\", \"CharGenMenu\" },\r\n\t{ nullptr, nullptr }\r\n};\r\n\r\nvoid PluginManager::reportPluginErrors()\r\n{\r\n\tif(m_erroredPlugins.empty())\r\n\t\treturn;\r\n\r\n\tif(m_oldAddressLibrary)\r\n\t\tupdateAddressLibraryPrompt();\r\n\r\n\t// With this plugin DLL load error, the thread of prophecy is severed. Update your plugins to restore the weave of fate, or persist in the doomed world you have created\r\n\r\n\tstd::string message = \"Mods you have installed have failed to load correctly. Check for updates to the mods listed below.\\n\";\r\n\r\n\tfor(auto & plugin : m_erroredPlugins)\r\n\t{\r\n\t\tmessage += \"\\n\";\r\n\r\n\t\tbool foundReplacementName = false;\r\n\t\tfor(auto * iter = kBetterPluginNames; iter->dllName; ++iter)\r\n\t\t{\r\n\t\t\tif(!_stricmp(iter->dllName, plugin.dllName.c_str()))\r\n\t\t\t{\r\n\t\t\t\tfoundReplacementName = true;\r\n\r\n\t\t\t\tmessage += iter->userReportedName;\r\n\t\t\t\tmessage += \" (\" + plugin.dllName + \")\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(!foundReplacementName)\r\n\t\t\tmessage += plugin.dllName;\r\n\r\n\t\tif(plugin.version.pluginVersion)\r\n\t\t{\r\n\t\t\tchar verStr[256];\r\n\r\n\t\t\t// heuristic to determine if we have a packed version from commonlib\r\n\t\t\tif(GET_EXE_VERSION_MAJOR(plugin.version.pluginVersion))\r\n\t\t\t\tsprintf_s(verStr, \"%d.%d.%d.%d\",\r\n\t\t\t\t\tGET_EXE_VERSION_MAJOR(plugin.version.pluginVersion),\r\n\t\t\t\t\tGET_EXE_VERSION_MINOR(plugin.version.pluginVersion),\r\n\t\t\t\t\tGET_EXE_VERSION_BUILD(plugin.version.pluginVersion),\r\n\t\t\t\t\tGET_EXE_VERSION_SUB(plugin.version.pluginVersion));\r\n\t\t\telse\r\n\t\t\t\tsprintf_s(verStr, \"%d\", plugin.version.pluginVersion);\r\n\r\n\t\t\tmessage += \" v\";\r\n\t\t\tmessage += verStr;\r\n\t\t}\r\n\r\n\t\tmessage += \": \";\r\n\t\tmessage += plugin.errorState;\r\n\r\n\t\tif(plugin.errorCode)\r\n\t\t{\r\n\t\t\tchar codeStr[128];\r\n\t\t\tsprintf_s(codeStr, \"%08X\", plugin.errorCode);\r\n\r\n\t\t\tmessage += \" (\";\r\n\t\t\tmessage += codeStr;\r\n\t\t\tmessage += \")\";\r\n\t\t}\r\n\t}\r\n\r\n\tmessage += \"\\n\\nContinuing to load may result in lost save data or other undesired behavior.\";\r\n\tmessage += \"\\nExit game? (yes highly suggested)\";\r\n\r\n\tint result = MessageBox(0, message.c_str(),\r\n\t\t\"SFSE Plugin Loader (\" __PREPRO_TOKEN_STR__(SFSE_VERSION_INTEGER) \".\"\r\n\t\t__PREPRO_TOKEN_STR__(SFSE_VERSION_INTEGER_MINOR) \".\"\r\n\t\t__PREPRO_TOKEN_STR__(SFSE_VERSION_INTEGER_BETA) \")\",\r\n\t\tMB_YESNO);\r\n\r\n\tif(result == IDYES)\r\n\t{\r\n\t\tDebugLog::flush();\r\n\t\tTerminateProcess(GetCurrentProcess(), 0);\r\n\t}\r\n}\r\n\r\nvoid PluginManager::updateAddressLibraryPrompt()\r\n{\r\n\tint result = MessageBox(0,\r\n\t\t\"DLL plugins you have installed require a new version of the Address Library. Either this is a new install, or Starfield was just updated. Visit the Address Library webpage for updates?\",\r\n\t\t\"SFSE Plugin Loader\", MB_YESNO);\r\n\r\n\tif(result == IDYES)\r\n\t{\r\n\t\tShellExecute(0, nullptr, \"https://www.nexusmods.com/starfield/mods/3256\", nullptr, nullptr, 0);\r\n\t\tTerminateProcess(GetCurrentProcess(), 0);\r\n\t}\r\n}\r\n\r\n// Plugin communication interface\r\nstruct PluginListener {\r\n\tPluginHandle\tlistener;\r\n\tSFSEMessagingInterface::EventCallback\thandleMessage;\r\n};\r\n\r\ntypedef std::vector<std::vector<PluginListener> > PluginListeners;\r\nstatic PluginListeners s_pluginListeners;\r\n\r\nbool PluginManager::registerListener(PluginHandle listener, const char* sender, SFSEMessagingInterface::EventCallback handler)\r\n{\r\n\t// because this can be called while plugins are loading, gotta make sure number of plugins hasn't increased\r\n\tu32 numPlugins = g_pluginManager.numPlugins() + 1;\r\n\tif (s_pluginListeners.size() < numPlugins)\r\n\t{\r\n\t\ts_pluginListeners.resize(numPlugins + 5);\t// add some extra room to avoid unnecessary re-alloc\r\n\t}\r\n\r\n\t_MESSAGE(\"registering plugin listener for %s at %u of %u\", sender, listener, numPlugins);\r\n\r\n\t// handle > num plugins = invalid\r\n\tif (listener > g_pluginManager.numPlugins() || !handler) \r\n\t{\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (sender)\r\n\t{\r\n\t\t// is target loaded?\r\n\t\tPluginHandle target = g_pluginManager.lookupHandleFromName(sender);\r\n\t\tif (target == kPluginHandle_Invalid)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t// is listener already registered?\r\n\t\tfor (std::vector<PluginListener>::iterator iter = s_pluginListeners[target].begin(); iter != s_pluginListeners[target].end(); ++iter)\r\n\t\t{\r\n\t\t\tif (iter->listener == listener)\r\n\t\t\t{\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// register new listener\r\n\t\tPluginListener newListener;\r\n\t\tnewListener.handleMessage = handler;\r\n\t\tnewListener.listener = listener;\r\n\r\n\t\ts_pluginListeners[target].push_back(newListener);\r\n\t}\r\n\telse\r\n\t{\r\n\t\t// register listener to every loaded plugin\r\n\t\tu32 idx = 0;\r\n\t\tfor(PluginListeners::iterator iter = s_pluginListeners.begin(); iter != s_pluginListeners.end(); ++iter)\r\n\t\t{\r\n\t\t\t// don't add the listener to its own list\r\n\t\t\tif (idx && idx != listener)\r\n\t\t\t{\r\n\t\t\t\tbool skipCurrentList = false;\r\n\t\t\t\tfor (std::vector<PluginListener>::iterator iterEx = iter->begin(); iterEx != iter->end(); ++iterEx)\r\n\t\t\t\t{\r\n\t\t\t\t\t// already registered with this plugin, skip it\r\n\t\t\t\t\tif (iterEx->listener == listener)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tskipCurrentList = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (skipCurrentList)\r\n\t\t\t\t{\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tPluginListener newListener;\r\n\t\t\t\tnewListener.handleMessage = handler;\r\n\t\t\t\tnewListener.listener = listener;\r\n\r\n\t\t\t\titer->push_back(newListener);\r\n\t\t\t}\r\n\t\t\tidx++;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n}\r\n\r\nbool PluginManager::dispatchMessage(PluginHandle sender, u32 messageType, void * data, u32 dataLen, const char* receiver)\r\n{\r\n\t_MESSAGE(\"dispatch message (%d) to plugin listeners\", messageType);\r\n\tu32 numRespondents = 0;\r\n\tPluginHandle target = kPluginHandle_Invalid;\r\n\r\n\tif (!s_pluginListeners.size())\t// no listeners yet registered\r\n\t{\r\n\t\t_MESSAGE(\"no listeners registered\");\r\n\t\treturn false;\r\n\t}\r\n\telse if (sender >= s_pluginListeners.size())\r\n\t{\r\n\t\t_MESSAGE(\"sender is not in the list\");\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (receiver)\r\n\t{\r\n\t\ttarget = g_pluginManager.lookupHandleFromName(receiver);\r\n\t\tif (target == kPluginHandle_Invalid)\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tconst char* senderName = g_pluginManager.pluginNameFromHandle(sender);\r\n\tif (!senderName)\r\n\t\treturn false;\r\n\tfor (std::vector<PluginListener>::iterator iter = s_pluginListeners[sender].begin(); iter != s_pluginListeners[sender].end(); ++iter)\r\n\t{\r\n\t\tSFSEMessagingInterface::Message msg;\r\n\t\tmsg.data = data;\r\n\t\tmsg.type = messageType;\r\n\t\tmsg.sender = senderName;\r\n\t\tmsg.dataLen = dataLen;\r\n\r\n\t\tif (target != kPluginHandle_Invalid)\t// sending message to specific plugin\r\n\t\t{\r\n\t\t\tif (iter->listener == target)\r\n\t\t\t{\r\n\t\t\t\titer->handleMessage(&msg);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_DMESSAGE(\"sending message type %u to plugin %u\", messageType, iter->listener);\r\n\t\t\titer->handleMessage(&msg);\r\n\t\t\tnumRespondents++;\r\n\t\t}\r\n\t}\r\n\t_DMESSAGE(\"dispatched message.\");\r\n\treturn numRespondents ? true : false;\r\n}\r\n\r\ninline void * BranchTrampolineManager::allocate(PluginHandle plugin, size_t size)\r\n{\r\n\tauto mem = m_trampoline.allocate(size);\r\n\tif (mem) {\r\n\t\tstd::lock_guard<decltype(m_lock)> locker(m_lock);\r\n\r\n\t\tauto findIt = m_stats.find(plugin);\r\n\t\tif (findIt != m_stats.end()) {\r\n\t\t\tfindIt->second += size;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tauto insIt = m_stats.insert(std::make_pair(plugin, size));\r\n\t\t\tASSERT(insIt.second);   // insertion failed\r\n\t\t}\r\n\t}\r\n\telse {\r\n\t\tASSERT(false);  // alloc failed\r\n\t}\r\n\treturn mem;\r\n}\r\n\r\n\r\nvoid * AllocateFromSFSEBranchPool(PluginHandle plugin, size_t size)\r\n{\r\n\tif (s_trampolineLog) {\r\n\t\t_DMESSAGE(\"plugin %d allocated %lld bytes from branch pool\", plugin, size);\r\n\t}\r\n\treturn g_branchTrampolineManager.allocate(plugin, size);\r\n}\r\n\r\nvoid * AllocateFromSFSELocalPool(PluginHandle plugin, size_t size)\r\n{\r\n\tif (s_trampolineLog) {\r\n\t\t_DMESSAGE(\"plugin %d allocated %lld bytes from local pool\", plugin, size);\r\n\t}\r\n\treturn g_localTrampolineManager.allocate(plugin, size);\r\n}\r\n"
  },
  {
    "path": "sfse/PluginManager.h",
    "content": "#pragma once\r\n\r\n#include <string>\r\n#include <vector>\r\n#include <mutex>\r\n#include <unordered_map>\r\n\r\n#include \"sfse/PluginAPI.h\"\r\n#include \"sfse_common/Types.h\"\r\n\r\n#include <Windows.h>\r\n\r\nclass PluginManager\r\n{\r\npublic:\r\n\tPluginManager();\r\n\t~PluginManager();\r\n\r\n\tenum\r\n\t{\r\n\t\tkPhase_Preload = 0,\r\n\t\tkPhase_Load,\r\n\r\n\t\tkPhase_Num,\r\n\t};\r\n\r\n\tvoid\tinit();\r\n\tvoid\tinstallPlugins(u32 phase);\r\n\tvoid\tloadComplete();\r\n\tvoid\tdeinit();\r\n\r\n\tconst PluginInfo *\tinfoByName(const char * name) const;\r\n\tu32\t\t\t\t\tnumPlugins() const;\r\n\r\n\tconst char *\tpluginNameFromHandle(PluginHandle handle) const;\r\n\tPluginHandle\tlookupHandleFromName(const char * pluginName) const;\r\n\r\n\t// interface handlers\r\n\tstatic void *\t\t\t\tqueryInterface(u32 id);\r\n\tstatic PluginHandle\t\t\tgetPluginHandle();\r\n\tstatic const PluginInfo *\tgetPluginInfo(const char* name);\r\n\r\n\tstatic bool dispatchMessage(PluginHandle sender, u32 messageType, void * data, u32 dataLen, const char* receiver);\r\n\tstatic bool\tregisterListener(PluginHandle listener, const char* sender, SFSEMessagingInterface::EventCallback handler);\r\n\r\nprivate:\r\n\tstruct LoadedPlugin\r\n\t{\r\n\t\tLoadedPlugin();\r\n\r\n\t\tstd::string dllName;\r\n\r\n\t\tHMODULE\t\thandle = 0;\r\n\t\tPluginInfo\tinfo;\r\n\t\tu32\t\t\tinternalHandle = 0;\r\n\r\n\t\tSFSEPluginVersionData\tversion;\r\n\r\n\t\t_SFSEPlugin_Load\tload[kPhase_Num] = { nullptr };\r\n\r\n\t\tconst char\t\t* errorState = nullptr;\r\n\t\tu32\t\t\t\terrorCode = 0;\r\n\r\n\t\tbool\thasLoad = false;\r\n\t\tbool\thasPreload = false;\r\n\t};\r\n\r\n\tbool\tfindPluginDirectory(void);\r\n\tvoid\tscanPlugins(void);\r\n\r\n\tconst char *\tsafeCallLoadPlugin(LoadedPlugin * plugin, const SFSEInterface * sfse, u32 phase);\r\n\r\n\tvoid\t\t\tsanitize(SFSEPluginVersionData * version);\r\n\tconst char *\tcheckPluginCompatibility(const SFSEPluginVersionData & version);\r\n\tconst char *\tcheckAddressLibrary(void);\r\n\r\n\tvoid\t\t\tlogPluginLoadError(const LoadedPlugin & plugin, const char * errStr, u32 errCode = 0, bool isError = true);\r\n\tvoid\t\t\treportPluginErrors();\r\n\tvoid\t\t\tupdateAddressLibraryPrompt();\r\n\r\n\ttypedef std::vector <LoadedPlugin>\tLoadedPluginList;\r\n\r\n\tstd::string\t\t\tm_pluginDirectory;\r\n\tLoadedPluginList\tm_plugins;\r\n\r\n\tLoadedPluginList\tm_erroredPlugins;\r\n\r\n\tbool\t\t\t\tm_oldAddressLibrary = false;\r\n\r\n\tstatic LoadedPlugin\t\t* s_currentLoadingPlugin;\r\n\tstatic PluginHandle\t\ts_currentPluginHandle;\r\n};\r\n\r\nclass BranchTrampolineManager\r\n{\r\npublic:\r\n\tBranchTrampolineManager(BranchTrampoline& trampoline) :\r\n\t\tm_trampoline(trampoline)\r\n\t{}\r\n\r\n\tvoid* allocate(PluginHandle plugin, size_t size);\r\n\r\nprivate:\r\n\tBranchTrampoline& m_trampoline;\r\n\tstd::mutex m_lock;\r\n\tstd::unordered_map<PluginHandle, size_t> m_stats;\r\n};\r\n\r\nextern BranchTrampolineManager g_branchTrampolineManager;\r\nextern BranchTrampolineManager g_localTrampolineManager;\r\n\r\nvoid * AllocateFromSFSEBranchPool(PluginHandle plugin, size_t size);\r\nvoid * AllocateFromSFSELocalPool(PluginHandle plugin, size_t size);\r\n\r\nextern PluginManager\tg_pluginManager;\r\n"
  },
  {
    "path": "sfse/ScaleformFunctions.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/ScaleformTypes.h\"\n#include \"sfse/ScaleformMemory.h\"\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nclass Value;\nclass Movie;\nclass FunctionHandler : public RefCountBase<FunctionHandler>\n{\npublic:\n    virtual ~FunctionHandler() { };\n\n    struct Params\n    {\n        Value* pRetVal;\n        Movie* pMovie;\n        Value* pThis;\n        Value* pArgsWithThisRef;\n        Value* pArgs;\n        u32 ArgCount;\n        void* pUserData;\n    };\n\n    virtual void Call(const Params*) = 0;\n\n    DEFINE_STATIC_HEAP(ScaleformHeap_Allocate, ScaleformHeap_Free);\n};\n}\n}\n\nclass SWFToCodeFunctionHandler : public Scaleform::GFx::FunctionHandler\n{\npublic:\n    virtual void MapCodeObjectFunctions() { };\n};\n"
  },
  {
    "path": "sfse/ScaleformLoader.h",
    "content": "#pragma once\n\n#include \"sfse/ScaleformState.h\"\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nclass ResourceLib;\nclass Loader : public StateBag\n{\n    class LoaderImpl* pImpl;\n    ResourceLib* pStrongResourceLib;\n    unsigned            DefLoadFlags;\nprotected:\n    virtual StateBag* GetStateBagImpl() const;\n    virtual bool CheckTagLoader(int tagType) const;\npublic:\n    virtual ~Loader();\n\n    class LoaderImpl* GetLoaderImpl() const { return pImpl; }\n};\n}\n}"
  },
  {
    "path": "sfse/ScaleformLog.h",
    "content": "#pragma once\n\n#include \"sfse_common/Relocation.h\"\n#include \"sfse/ScaleformState.h\"\n\nnamespace Scaleform\n{\nenum LogMessageType\n{\n    LogMessage_Text = 0x00000,\n    LogMessage_Warning = 0x20000,\n    LogMessage_Error = 0x30000,\n    LogMessage_Assert = 0x40000,\n    LogMessage_Mask = 0xF0000\n};\n\nenum LogChannel\n{\n    LogChannel_General = 0x1000,\n    LogChannel_Debug = 0x2000,\n    LogChannel_Script = 0x3000,\n    LogChannel_Parse = 0x4000,\n    LogChannel_Action = 0x5000,\n    LogChannel_Mask = 0xF000,\n};\n\nclass LogMessageId\n{\n    int Id;\npublic:\n\n    LogMessageId(int id = 0) : Id(id) { }\n    LogMessageId(const LogMessageId& other) : Id(other.Id) { }\n\n    LogMessageId& operator = (int id) { Id = id; return *this; }\n    LogMessageId& operator = (LogMessageId& other) { Id = other.Id; return *this; }\n\n    operator int() const { return Id; }\n\n    LogMessageType  GetMessageType() const { return (LogMessageType)(Id & LogMessage_Mask); }\n    LogChannel      GetChannel() const { return (LogChannel)(Id & LogChannel_Mask); }\n};\n\nenum LogConstants\n{\n    Log_Message = LogChannel_General | LogMessage_Text,\n    Log_Warning = LogChannel_General | LogMessage_Warning,\n    Log_Error = LogChannel_General | LogMessage_Error,\n    Log_DebugMessage = LogChannel_Debug | LogMessage_Text,\n    Log_DebugWarning = LogChannel_Debug | LogMessage_Warning,\n    Log_DebugError = LogChannel_Debug | LogMessage_Error,\n    Log_DebugAssert = LogChannel_Debug | LogMessage_Assert\n};\nclass Log : public RefCountBase<Log>\n{\npublic:\n    Log() { }\n    virtual ~Log() { };\n\n    virtual void LogMessageVarg(LogMessageId messageId, const char* fmt, va_list argList) { };\n};\n\nnamespace GFx\n{\ntemplate<class Derived>\nclass LogBase\n{\npublic:\n    virtual ~LogBase() { }\n    virtual bool    IsVerboseActionErrors() const { return true; }\n};\n\nclass LogState : public State, public LogBase<LogState>\n{\n    Ptr<Log> pLog;\npublic:\n    LogState(Log* log) : State(State_Log), pLog(log) { }\n    virtual ~LogState() { }\n\n    virtual void LogMessageVarg(LogMessageId messageType, const char* pfmt, va_list argList)\n    {\n        Log* log = GetLog();\n        if (log)\n        {\n            log->LogMessageVarg(messageType, pfmt, argList);\n        }\n    }\n\n    Log* GetLog() const { return pLog ? pLog.GetPtr() : nullptr; }\n};\n}\n}"
  },
  {
    "path": "sfse/ScaleformManager.h",
    "content": "#pragma once\n\n#include \"sfse/ScaleformLoader.h\"\n\nclass BSScaleformManager\n{\npublic:\n    void* unk00;                        // 00\n    void* unk08;                        // 08\n    Scaleform::GFx::Loader* pLoader;    // 10\n    void* unk18;                        // 18\n    void* unk20;                        // 20\n    void* unk28;                        // 28\n\n    static BSScaleformManager* GetSingleton()\n    {\n        RelocPtr<BSScaleformManager*> singleton(0x061E6400);\n        return *singleton;\n    }\n};\n"
  },
  {
    "path": "sfse/ScaleformMemory.cpp",
    "content": "#include \"sfse/ScaleformMemory.h\"\n\nRelocPtr<Scaleform::MemoryHeap*> Scaleform::Memory::pGlobalHeap(0x05D84198);\n\nvoid* ScaleformHeap_Allocate(u64 size)\n{\n\treturn (*Scaleform::Memory::pGlobalHeap)->Alloc(size);\n}\n\nvoid ScaleformHeap_Free(void* ptr)\n{\n\t(*Scaleform::Memory::pGlobalHeap)->Free(ptr);\n}"
  },
  {
    "path": "sfse/ScaleformMemory.h",
    "content": "#pragma once\n\n#include \"sfse/ScaleformTypes.h\"\n#include \"sfse_common/Relocation.h\"\n\nnamespace Scaleform\n{\nclass StatBag;\nclass SysAllocPaged;\nclass AllocInfo;\n\nclass Heap\n{\npublic:\n    class SegVisitor {};\n    class MemVisitor {};\n};\n\nclass MemoryHeap\n{\npublic:\n    virtual ~MemoryHeap();\n\n    class HeapDesc {};\n    class LimitHandler {};\n    class HeapTracer {};\n    class RootStats {};\n    class SegVisitor {};\n\n    virtual void CreateArena(UPInt arena, SysAllocPaged*) = 0;\n    virtual void DestroyArena(UPInt arena) = 0;\n    virtual bool ArenaIsEmpty(UPInt arena) = 0;\n    virtual MemoryHeap* CreateHeap(const char* name, const HeapDesc& desc) = 0;\n    virtual void SetLimitHandler(LimitHandler* handler) = 0;\n    virtual void SetLimit(UPInt newLimit) = 0;\n    virtual void AddRef() = 0;\n    virtual void Release() = 0;\n    virtual void* Alloc(UPInt size, UPInt align, const AllocInfo* info = nullptr) = 0;\n    virtual void* Alloc(UPInt size, const AllocInfo* info = nullptr) = 0;\n    virtual void* Realloc(void* oldPtr, UPInt newSize) = 0;\n    virtual void Free(void* ptr) = 0;\n    virtual void* AllocAutoHeap(const void* thisPtr, UPInt size, UPInt align, const AllocInfo* info) = 0;\n    virtual void* AllocAutoHeap(const void* thisPtr, UPInt size, const AllocInfo* info) = 0;\n    virtual MemoryHeap* GetAllocHeap(const void* thisPtr) = 0;\n    virtual UPInt GetUsableSize(const void* ptr) = 0;\n    virtual void* AllocSysDirect(UPInt size) = 0;\n    virtual void FreeSysDirect(void* ptr, UPInt size) = 0;\n    virtual bool GetStats(StatBag* bag) = 0;\n    virtual UPInt GetFootprint() const = 0;\n    virtual UPInt GetTotalFootprint() const = 0;\n    virtual UPInt GetUsedSpace() const = 0;\n    virtual UPInt GetTotalUsedSpace() const = 0;\n    virtual void GetRootStats(RootStats* stats) = 0;\n    virtual void VisitMem(Heap::MemVisitor* visitor, unsigned int flags) = 0;\n    virtual void VisitRootSegments(SegVisitor* visitor) = 0;\n    virtual void VisitHeapSegments(SegVisitor* visitor) const = 0;\n    virtual void SetTracer(HeapTracer* tracer) = 0;\n    virtual void destroyItself() = 0;\n    virtual void ultimateCheck() = 0;\n    virtual void releaseCachedMem() = 0;\n    virtual bool dumpMemoryLeaks() = 0;\n    virtual void checkIntegrity() const = 0;\n    virtual void getUserDebugStats(RootStats* stats) const = 0;\n\n    // Members...\n};\nclass Memory\n{\npublic:\n    static RelocPtr<MemoryHeap*> pGlobalHeap;\n};\n}\n\nextern void* ScaleformHeap_Allocate(u64 size);\nextern void ScaleformHeap_Free(void* ptr);"
  },
  {
    "path": "sfse/ScaleformMovie.h",
    "content": "#pragma once\n\n#include \"sfse/ScaleformState.h\"\n\nnamespace Scaleform\n{\nclass MemoryHeap;\nclass Log;\nclass AmpMovieObjectDesc;\nclass String;\n\nnamespace Render\n{\ntemplate<typename T>\nclass Point\n{\n    T x;\n    T y;\n};\nnamespace Text\n{\nclass Allocator;\n}\n}\n\nnamespace GFx\n{\nclass ASMovieRootBase;\nclass Movie : \n    public RefCountBase<Movie>,\n    public StateBag\n{\npublic:\n    virtual ~Movie();\n\n    enum SetVarType\n    {\n      SV_Normal,\n      SV_Sticky1,\n      SV_Permanent,\n    };\n\n    enum SetArrayType\n    {\n        SA_Int,\n        SA_Double,\n        SA_Float,\n        SA_String,\n        SA_StringW,\n        SA_Value,\n    };\n\n    Ptr<ASMovieRootBase> pASMovieRoot;\n};\n\nclass MovieImpl : public Movie\n{\npublic:\n    // More...\n};\n\nclass MovieDefImpl;\nclass ASString;\nclass DisplayObject;\nclass InputEventsQueueEntry;\nclass InteractiveObject;\nclass ProcessFocusKeyInfo;\nclass EventId;\nclass OrientationEvent;\nclass AppLifecycleEvent;\nclass AccelerometerEvent;\nclass GeolocationEvent;\nclass Value;\nclass MemoryContext;\nclass ASStringManager;\nclass FunctionHandler;\nclass MouseState;\nstruct MovieDefRootNode;\nclass DisplayObjContainer;\nclass LoadQueueEntry;\nclass LoadStates;\n\nclass ASMovieRootBase : public RefCountBase<ASMovieRootBase>\n{\npublic:\n    virtual ~ASMovieRootBase() { };\n\n    virtual void SetMovie(MovieImpl* pmovie) = 0;\n    virtual void AdvanceFrame(bool nextFrame) = 0;\n    virtual void ChangeMouseCursorType(unsigned int mouseIdx, unsigned int newCursorType) = 0;\n    virtual bool CheckAvm() = 0;\n    virtual void ClearDisplayList() = 0;\n    virtual MovieDefRootNode* CreateMovieDefRootNode(MemoryHeap*, MovieDefImpl*, bool) = 0;\n    virtual void DoActions() = 0;\n    virtual InteractiveObject* FindTarget(const ASString& path) = 0;\n    virtual void ForceCollect(unsigned int) = 0;\n    virtual void ForceEmergencyCollect() = 0;\n    virtual void SuspendGC(bool) = 0;\n    virtual void ScheduleGC(unsigned int) = 0;\n    virtual void GenerateMouseEvents(unsigned int) = 0;\n    virtual void GenerateTouchEvents(unsigned int) = 0;\n    virtual void GenerateGestureEvents(InteractiveObject*, unsigned int, const Render::Point<float>*, const Render::Point<float>*, const Render::Point<float>*, float, unsigned int) = 0;\n    virtual DisplayObjContainer* GetRootMovie(DisplayObject*) = 0;\n    virtual bool Init(MovieDefImpl*) = 0;\n    virtual void NotifyMouseEvent(const InputEventsQueueEntry*, const MouseState*, int) = 0;\n    virtual void NotifyOnResize() = 0;\n    virtual void NotifyQueueSetFocus(InteractiveObject*, unsigned int, FocusMovedType) = 0;\n    virtual void NotifyTransferFocus(InteractiveObject*, InteractiveObject*, unsigned int) = 0;\n    virtual bool NotifyOnFocusChange(InteractiveObject*, InteractiveObject*, unsigned int, FocusMovedType, ProcessFocusKeyInfo*) = 0;\n    virtual void NotifyGamePadAnalogEvent(const EventId*) = 0;\n    virtual void NotifyStatusEvent(const EventId*) = 0;\n    virtual void NotifyAccelerometerEvent(const EventId*, int) = 0;\n    virtual void NotifyGeolocationEvent(const EventId*, int) = 0;\n    virtual void OnMovieFocus(bool) = 0;\n    virtual void OnNextFrame() = 0;\n    virtual void OnDeviceOrientationChanged(const OrientationEvent*) = 0;\n    virtual void OnAppLifecycleEvent(const AppLifecycleEvent*) = 0;\n    virtual void OnAccelerometerEvent(const AccelerometerEvent*) = 0;\n    virtual void OnGeolocationEvent(const GeolocationEvent*) = 0;\n    virtual void PrintObjectsReport(unsigned int, Log*, const char*) = 0;\n    virtual void GetObjectsTree(/*Array<Ptr<AmpMovieObjectDesc>, 2, ArrayDefaultPolicy>**/void*, MemoryHeap*) = 0;\n    virtual AmpMovieObjectDesc* GetDisplayObjectsTree(MemoryHeap*) = 0;\n    virtual void ProcessLoadQueueEntry(LoadQueueEntry*, LoadStates*) = 0;\n    virtual void ProcessLoadVarsMT(LoadQueueEntry*, LoadStates*, const String*, unsigned __int64, bool) = 0;\n    virtual void ProcessLoadBinaryMT(LoadQueueEntry*, LoadStates*, const /*ArrayPOD<unsigned char, 2, ArrayDefaultPolicy>**/void*, unsigned __int64, bool) = 0;\n    virtual void RegisterAuxASClasses() = 0;\n    virtual void ResolveStickyVariables(InteractiveObject*) = 0;\n    virtual void SetExternalInterfaceRetVal(const Value&) = 0;\n    virtual void SetMemoryParams(unsigned int, unsigned int) = 0;\n    virtual void Shutdown() = 0;\n    virtual void CreateString(Value* pvalue, const char* pstring) = 0;\n    virtual void CreateStringW(Value* pvalue, const wchar_t* pstring) = 0;\n    virtual void CreateObject(Value* pvalue, const char* className = nullptr, const Value* pargs = nullptr, unsigned int nargs = 0) = 0;\n    virtual void CreateArray(Value* pvalue) = 0;\n    virtual void CreateFunction(Value* pvalue, FunctionHandler* pfc, void* puserData = nullptr) = 0;\n    virtual bool SetVariable(const char* ppathToVar, const Value& value, Movie::SetVarType setType = Movie::SV_Sticky1) = 0;\n    virtual bool GetVariable(Value* pval, const char* ppathToVar) = 0;\n    virtual bool SetVariableArray(Movie::SetArrayType type, const char* ppathToVar, unsigned int index, const void* pdata, unsigned int count, Movie::SetVarType = Movie::SV_Sticky1) = 0;\n    virtual bool SetVariableArraySize(const char* ppathToVar, unsigned int count, Movie::SetVarType setType = Movie::SV_Sticky1) = 0;\n    virtual unsigned int GetVariableArraySize(const char* ppathToVar) = 0;\n    virtual bool GetVariableArray(Movie::SetArrayType type, const char* ppathToVar, unsigned int index, void* pdata, unsigned int count) = 0;\n    virtual bool IsAvailable(const char* ppathToVar) = 0;\n    virtual bool Invoke(const char* ppathToMethod, Value* presult, const char* pargFmt, ...) = 0;\n    virtual bool Invoke(const char* ppathToMethod, Value* presult, const Value* pargs, unsigned int numArgs) = 0;\n    virtual bool InvokeArgs(const char* ppathToMethod, Value* presult, const char* pargFmt, va_list args) = 0;\n    virtual MemoryContext*  GetMemoryContext() = 0;\n    virtual ASStringManager*  GetStringManager() = 0;\n    virtual Render::Text::Allocator*  GetTextAllocator() = 0;\n};\n}\n}\n"
  },
  {
    "path": "sfse/ScaleformState.h",
    "content": "#pragma once\n\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/ScaleformMemory.h\"\n#include \"sfse/ScaleformTypes.h\"\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nstruct FileTypeConstants{};\n\nclass State : public RefCountBase<State>\n{\npublic:\n    // States with numbers have been code-verified\n    enum StateType\n    {\n        State_None,\n        State_Translator = 1,                // BSScaleformTranslator::ScaleformImpl\n        State_Log = 2,\n        State_ActionControl = 3,\n        State_UserEventHandler = 4,\n        State_FSCommandHandler = 5,\n        State_ExternalInterface = 6,\n        State_FileOpener = 12,               // BSScaleformFileOpener\n        State_URLBuilder,\n        State_ImageCreator = 14,             // BSScaleformImageLoader\n        State_ImageFileHandlerRegistry = 15, // Scaleform::GFx::ImageFileHandlerRegistry\n        State_ParseControl = 16,             // Scaleform::GFx::ParseControl\n        State_ProgressHandler,\n        State_ImportVisitor,\n        State_FontPackParams,\n        State_FontLib = 20,                  // Scaleform::GFx::FontLib\n        State_DefaultFontLibNameState = 21,  // Scaleform::Gfx::DefaultFontLibNameState\n        State_FontProvider = 22,\n        State_FontMap = 23,                  // Scaleform::GFx::FontMap\n        State_TaskManager,\n        State_TextClipboard = 25,            // Scaleform::GFx::Clipboard\n        State_TextKeyMap = 26,               // Scaleform::GFx::TextKeyMap\n        State_PreprocessParams,\n        State_IMEManager,\n        State_XMLSupport,\n        State_ZlibSupport = 29,              // Scaleform::GFx::ZlibSupport\n        State_LZMASupport = 30,              // Scaleform::GFx::ZLMASupport\n        State_FontCompactorParams,\n        State_ImagePackerParams,\n        State_Audio = 41,\n        State_Video,\n        State_TestStream,\n        State_SharedObject,\n        State_LocSupport,\n        State_AS2Support = 40,\n        State_AS3Support = 41                // Scaleform::GFx::AS3Support\n    };\npublic:\n    State(StateType st = State_None) : SType(st) { }\n    virtual ~State() { }\n\n    StateType       SType;\n\n    DEFINE_STATIC_HEAP(ScaleformHeap_Allocate, ScaleformHeap_Free);\n};\n\nclass StateBag : public FileTypeConstants\n{\nprotected:\n    virtual StateBag* GetStateBagImpl() const { return 0; }\n\npublic:\n    virtual ~StateBag() { }\n\n    virtual void SetState(State::StateType state, State* pstate) = 0;\n    virtual State* GetStateAddRef(State::StateType state) const = 0;\n    virtual void GetStatesAddRef(State** pstateList, const State::StateType* pstates, unsigned count) const = 0;\n};\n}\n}\n"
  },
  {
    "path": "sfse/ScaleformTranslator.h",
    "content": "#pragma once\n\n#include \"sfse/ScaleformState.h\"\n#include \"sfse/GameTypes.h\"\n\nnamespace Scaleform\n{\nclass WStringBuffer;\nnamespace GFx\n{\nclass Translator : public State\n{\npublic:\n    unsigned WWMode;\n\n    class TranslateInfo\n    {\n    protected:\n        const wchar_t* pKey;\n        WStringBuffer* pResult;\n        const char* pInstanceName;\n        enum\n        {\n            Flag_Translated = 0x01,\n            Flag_ResultHtml = 0x02,\n            Flag_SourceHtml = 0x04\n        };\n        u8               Flags;\n    public:\n        TranslateInfo() :pKey(NULL), pResult(NULL), pInstanceName(NULL), Flags(0) {}\n    };\n\n    struct LineFormatDesc\n    {\n        const wchar_t* pParaText;\n        UPInt ParaTextLen;\n        const float* pWidths;\n        UPInt LineStartPos;\n        UPInt NumCharsInLine;\n        float VisibleRectWidth;\n        float CurrentLineWidth;\n        float LineWidthBeforeWordWrap;\n        float DashSymbolWidth;\n        enum\n        {\n            Align_Left = 0,\n            Align_Right = 1,\n            Align_Center = 2,\n            Align_Justify = 3\n        };\n        u8 Alignment;\n        UPInt ProposedWordWrapPoint;\n        bool UseHyphenation;\n    };\n\n    virtual unsigned GetCaps() const { return 0; }\n    virtual void Translate(TranslateInfo* ptranslateInfo) { }\n    virtual bool OnWordWrapping(LineFormatDesc* pdesc) { }\n    virtual s64 OnBidirectionalText(const wchar_t* text, unsigned __int64 textLen, wchar_t* newText, uint* indexMap, bool* mirrorBits) { }\n};\n}\n}\n\nnamespace BSScaleformTranslator\n{\nclass ScaleformImpl : public Scaleform::GFx::Translator\n{\npublic:\n    // Dont know why this uses the trash XOR hash function\n    BSTHashMap<BSFixedStringWCS, BSFixedStringWCS>* translationMap;\n};\n}"
  },
  {
    "path": "sfse/ScaleformTypes.h",
    "content": "#pragma once\n\n#include \"sfse_common/Types.h\"\n\nnamespace Scaleform\n{\nusing UPInt = unsigned __int64;\n\nclass RefCountImplCore\n{\npublic:\n\tRefCountImplCore() : RefCount(1) { }\n\tvirtual ~RefCountImplCore() { }\n\n\tvolatile long   RefCount;\t// 08\n};\n\nclass RefCountImpl : public RefCountImplCore\n{\npublic:\n\tRefCountImpl() { }\n\tvirtual ~RefCountImpl() { }\n\n    void AddRef()\n    {\n        _InterlockedExchangeAdd(&RefCount, 1);\n    }\n    void Release()\n    {\n        if ((_InterlockedExchangeAdd(&RefCount, -1) - 1) == 0)\n            delete this;\n    }\n};\n\ntemplate<class T>\nclass RefCountBaseStatImpl : public T\n{\npublic:\n\tRefCountBaseStatImpl() { }\n\tvirtual ~RefCountBaseStatImpl() { }\n};\n\ntemplate<class T>\nclass RefCountBase : public RefCountBaseStatImpl<RefCountImpl>\n{\npublic:\n\tRefCountBase() { }\n\tvirtual ~RefCountBase() { }\n};\n\ntemplate<class C>\nclass Ptr\n{\npublic:\n\tC* pObject;\t// 00\n\npublic:\n    Ptr() : pObject(0) { }\n    Ptr(C& robj) { pObject = &robj; }\n    Ptr(C* pobj)\n    {\n        if (pobj) pobj->AddRef();\n        pObject = pobj;\n    }\n    Ptr(const Ptr<C>& src)\n    {\n        if (src.pObject) src.pObject->AddRef();\n        pObject = src.pObject;\n    }\n    template<class R>\n    Ptr(Ptr<R>& src)\n    {\n        if (src) src->AddRef();\n        pObject = src;\n    }\n    ~Ptr()\n    {\n        if (pObject) pObject->Release();\n    }\n\n    bool operator == (const Ptr& other) const { return pObject == other.pObject; }\n    bool operator != (const Ptr& other) const { return pObject != other.pObject; }\n    bool operator == (const C* pother) const { return pObject == pother; }\n    bool operator != (const C* pother) const { return pObject != pother; }\n    bool operator == (C* pother) const { return pObject == pother; }\n    bool operator != (C* pother) const { return pObject != pother; }\n    bool operator < (const Ptr& other) const { return pObject < other.pObject; }\n\n    template<class R>\n    const Ptr<C>& operator=(const Ptr<R>& src)\n    {\n        if (src) src->AddRef();\n        if (pObject) pObject->Release();\n        pObject = src;\n        return *this;\n    }\n\n    const Ptr<C>& operator=(const Ptr<C>& src)\n    {\n        if (src) src->AddRef();\n        if (pObject) pObject->Release();\n        pObject = src;\n        return *this;\n    }\n\n    const Ptr<C>& operator = (C* psrc)\n    {\n        if (psrc) psrc->AddRef();\n        if (pObject) pObject->Release();\n        pObject = psrc;\n        return *this;\n    }\n    const Ptr<C>& operator = (C& src)\n    {\n        if (pObject) pObject->Release();\n        pObject = &src;\n        return *this;\n    }\n\n    template<class R>\n    Ptr<C>& SetPtr(const Ptr<R>& src)\n    {\n        if (src) src->AddRef();\n        if (pObject) pObject->Release();\n        pObject = src;\n        return *this;\n    }\n\n    Ptr<C>& SetPtr(const Ptr<C>& src)\n    {\n        if (src) src->AddRef();\n        if (pObject) pObject->Release();\n        pObject = src;\n        return *this;\n    }\n\n    Ptr<C>& SetPtr(C* psrc)\n    {\n        if (psrc) psrc->AddRef();\n        if (pObject) pObject->Release();\n        pObject = psrc;\n        return *this;\n    }\n    Ptr<C>& SetPtr(C& src)\n    {\n        if (pObject) pObject->Release();\n        pObject = &src;\n        return *this;\n    }\n\n    void NullWithoutRelease()\n    {\n        pObject = 0;\n    }\n\n    void Clear()\n    {\n        if (pObject) pObject->Release();\n        pObject = 0;\n    }\n\n    C*& GetRawRef() { return pObject; }\n    C* GetPtr() const { return pObject; }\n    C& operator*() const { return *pObject; }\n    C* operator->()  const { return pObject; }\n    operator C* () const { return pObject; }\n};\n\nnamespace GFx\n{\nenum PlayState\n{\n\tState_Playing,\n\tState_Stopped\n};\nenum FocusMovedType\n{\n\tGFx_FocusMovedByMouse = 1,\n\tGFx_FocusMovedByKeyboard = 2\n};\n}\n}"
  },
  {
    "path": "sfse/ScaleformValue.h",
    "content": "#pragma once\n\n#include <cstring>\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nclass MovieImpl;\nclass Value\n{\npublic:\n\tenum ValueType\n\t{\n\t\tVT_Undefined = 0,\n\t\tVT_Null,\n\t\tVT_Boolean,\n\t\tVT_Int,\n\t\tVT_UInt,\n\t\tVT_Number,\n\t\tVT_String,\n\t\tVT_StringW,\n\t\tVT_Object,\n\t\tVT_Array,\n\t\tVT_DisplayObject,\n\t\tVT_Function,\n\t};\n    enum ValueTypeControl\n    {\n        VTC_ConvertBit = 0x80,\n        VTC_ManagedBit = 0x40,\n        VTC_TypeMask = VTC_ConvertBit | 0x0F,\n    };\n    union ValueUnion\n    {\n        int IValue;\n        unsigned int UIValue;\n        long double NValue;\n        bool BValue;\n        const char* pString;\n        const char** pStringManaged;\n        const wchar_t* pStringW;\n        void* pData;\n    };\n\n    class ObjectInterface\n    {\n    public:\n        class ArrVisitor\n        {\n        public:\n            virtual ~ArrVisitor() {}\n            virtual void Visit(unsigned int idx, Value* val) = 0;\n        };\n        class ObjVisitor\n        {\n        public:\n            virtual ~ObjVisitor() { }\n            virtual bool ShowDisplayMembers() { return false; }\n            virtual void Visit(const char* member, Value* value) = 0;\n        };\n\n\t\tvirtual ~ObjectInterface();\n\n        DEFINE_MEMBER_FN_3(HasMember, bool, 0x03356260, void* pData, const char* name, bool isDisplayObj);\n        DEFINE_MEMBER_FN_4(GetMember, bool, 0x033565A0, void* pData, const char* name, Value* pValue, bool isDisplayObj);\n        DEFINE_MEMBER_FN_4(SetMember, bool, 0x03356990, void* pData, const char* name, const Value& pValue, bool isDisplayObj);\n        DEFINE_MEMBER_FN_6(Invoke, bool, 0x03356DB0, void* pData, Value* result, const char* name, const Value* args, unsigned long long numArgs, bool isDisplayObj);\n        DEFINE_MEMBER_FN_4(CreateEmptyMovieClip, bool, 0x0335A4D0, void* pData, Value* pValue, const char* instanceName, int depth);\n        DEFINE_MEMBER_FN_6(AttachMovie, bool, 0x0335A790, void* pData, Value* pValue, const char* symbolName, const char* instanceName, int depth, const void* initArgs);\n        DEFINE_MEMBER_FN_1(GetArraySize, unsigned int, 0x03358090, void* pData);\n        DEFINE_MEMBER_FN_2(SetArraySize, bool, 0x033580A0, void* pData, unsigned int size);\n        DEFINE_MEMBER_FN_3(GetElement, bool, 0x033580C0, void* pData, unsigned int index, Value* value);\n        DEFINE_MEMBER_FN_3(SetElement, bool, 0x03358150, void* pData, unsigned int index, const Value& value);\n        DEFINE_MEMBER_FN_2(PushBack, bool, 0x03358390, void* pData, const Value& value);\n        DEFINE_MEMBER_FN_2(PopBack, bool, 0x033583F0, void* pData, Value* value);\n        DEFINE_MEMBER_FN_3(RemoveElements, bool, 0x033584A0, void* pData, unsigned idx, int count);\n        DEFINE_MEMBER_FN_4(VisitElements, void, 0x033581B0, void* pData, ArrVisitor* visitor, unsigned long idx, int count);\n        DEFINE_MEMBER_FN_3(VisitMembers, void, 0x03357950, void* pData, ObjVisitor* visitor, bool isDisplayObj);\n        // DeleteMember TBD\n        DEFINE_MEMBER_FN_3(GetText, bool, 0x0335A160, void* pData, Value* value, bool html);\n        DEFINE_MEMBER_FN_3(SetText, bool, 0x0335A2C0, void* pData, const char* text, bool html);\n        DEFINE_MEMBER_FN_3(SetTextW, bool, 0x0335A3E0, void* pData, const wchar_t* text, bool html);\n        DEFINE_MEMBER_FN_3(GotoAndPlayL, bool, 0x0335AC40, void* pData, const char* frame, bool stop);\n        DEFINE_MEMBER_FN_3(GotoAndPlay, bool, 0x0335AD40, void* pData, unsigned frame, bool stop);\n        DEFINE_MEMBER_FN_2(GetParent, bool, 0x033589C0, void* pData, Value* value);\n        // GetDisplayInfo TBD\n        // SetDisplayInfo TBD\n        // GetDisplayMatrix TBD\n        // SetDisplayMatrix TBD\n        // GetColorTransform TBD\n        // SetColorTransform TBD\n\n        DEFINE_MEMBER_FN_2(ObjectAddRef, void, 0x03356100, Value* value, void* pData);\n        DEFINE_MEMBER_FN_2(ObjectRelease, void, 0x033561A0, Value* value, void* pData);\n\n\t\tMovieImpl* pMovieRoot;\n    };\n\n    using ObjectVisitor = ObjectInterface::ObjVisitor;\n    using ArrayVisitor = ObjectInterface::ArrVisitor;\n\n    Value() : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_Undefined), DataAux(0) { mValue.pData = nullptr; }\n    Value(ValueType type) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(type), DataAux(0) { mValue.pString = 0; }\n    Value(u32 v) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_UInt), DataAux(0) { mValue.UIValue = v; }\n    Value(s32 v) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_Int), DataAux(0) { mValue.IValue = v; }\n    Value(double v) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_Number), DataAux(0) { mValue.NValue = v; }\n    Value(bool v) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_Boolean), DataAux(0) { mValue.BValue = v; }\n    Value(const char* ps) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_String), DataAux(0) { mValue.pString = ps; }\n    Value(const wchar_t* ps) : unk00(nullptr), unk08(nullptr), pObjectInterface(nullptr), Type(VT_StringW), DataAux(0) { mValue.pStringW = ps; }\n    Value(const Value& src) : unk00(src.unk00), unk08(src.unk08), pObjectInterface(nullptr), Type(src.Type), DataAux(src.DataAux)\n    {\n        mValue = src.mValue;\n        if (src.IsManagedValue()) AcquireManagedValue(src);\n    }\n    ~Value() { if (IsManagedValue()) ReleaseManagedValue(); }\n\n    const Value& operator=(const Value& src)\n    {\n        if (this != &src)\n        {\n            if (IsManagedValue()) ReleaseManagedValue();\n            Type = src.Type;\n            mValue = src.mValue;\n            if (src.IsManagedValue()) AcquireManagedValue(src);\n        }\n        return *this;\n    }\n\n    bool operator==(const Value& other) const\n    {\n        if (Type != other.Type) return false;\n        switch (Type & 0x0F)\n        {\n        case VT_Boolean:\treturn mValue.BValue == other.mValue.BValue;\n        case VT_Number:\t\treturn mValue.NValue == other.mValue.NValue;\n        case VT_String:\t\treturn !strcmp(GetString(), other.GetString());\n        case VT_StringW:\treturn !wcscmp(GetStringW(), other.GetStringW());\n        default:\t\t\treturn mValue.pData == other.mValue.pData;\n        }\n    }\n\n    bool IsManagedValue() const { return (Type & VTC_ManagedBit) != 0; }\n    ValueType   GetType() const { return ValueType(Type & VTC_TypeMask); }\n    bool        IsUndefined() const { return GetType() == VT_Undefined; }\n    bool        IsNull() const { return GetType() == VT_Null; }\n    bool        IsBool() const { return GetType() == VT_Boolean; }\n    bool        IsNumber() const { return GetType() == VT_Number; }\n    bool        IsString() const { return GetType() == VT_String; }\n    bool        IsStringW() const { return GetType() == VT_StringW; }\n    bool        IsObject() const { return (GetType() == VT_Object) || GetType() == VT_Array || GetType() == VT_DisplayObject; }\n    bool        IsArray() const { return GetType() == VT_Array; }\n    bool        IsDisplayObject() const { return GetType() == VT_DisplayObject; }\n    bool        GetBool() const { return mValue.BValue; }\n    long double GetNumber() const { return mValue.NValue; }\n    u32         GetUInt() const { return mValue.UIValue; }\n    s32         GetInt() const { return mValue.IValue; }\n    const char* GetString() const { return IsManagedValue() ? *mValue.pStringManaged : mValue.pString; }\n    const wchar_t* GetStringW() const { return mValue.pStringW; }\n\n    void SetUndefined() { ChangeType(VT_Undefined); }\n    void SetNull() { ChangeType(VT_Null); }\n    void SetBoolean(bool v) { ChangeType(VT_Boolean); mValue.BValue = v; }\n    void SetNumber(double v) { ChangeType(VT_Number); mValue.NValue = v; }\n    void SetUInt(u32 v) { ChangeType(VT_UInt); mValue.UIValue = v; }\n    void SetInt(s32 v) { ChangeType(VT_Int); mValue.IValue = v; }\n\n    // You probably want to a Managed String via CreateString from the owning Movie\n    void SetString(const char* p) { ChangeType(VT_String); mValue.pString = p; }\n    void SetStringW(const wchar_t* p) { ChangeType(VT_StringW); mValue.pStringW = p; }\n\n    void ChangeType(ValueType type)\n    {\n        if (IsManagedValue()) ReleaseManagedValue();\n        Type = type;\n    }\n    void AcquireManagedValue(const Value& src)\n    {\n        pObjectInterface = src.pObjectInterface;\n        pObjectInterface->ObjectAddRef(this, mValue.pData);\n    }\n    void ReleaseManagedValue()\n    {\n        pObjectInterface->ObjectRelease(this, mValue.pData);\n        pObjectInterface = nullptr;\n    }\n\n    bool HasMember(const char* name) const { return pObjectInterface->HasMember(mValue.pData, name, IsDisplayObject()); }\n    bool GetMember(const char* name, Value* pval) const { return pObjectInterface->GetMember(mValue.pData, name, pval, IsDisplayObject()); }\n    bool SetMember(const char* name, const Value& val) { return pObjectInterface->SetMember(mValue.pData, name, val, IsDisplayObject()); }\n    bool Invoke(const char* name, Value* presult, const Value* pargs, unsigned long long nargs) { return pObjectInterface->Invoke(mValue.pData, presult, name, pargs, nargs, IsDisplayObject()); }\n    bool Invoke(const char* name, Value* presult = nullptr) { return Invoke(name, presult, nullptr, 0); }\n    void VisitMembers(ObjectVisitor* visitor) const { return pObjectInterface->VisitMembers(mValue.pData, visitor, IsDisplayObject()); }\n    unsigned int GetArraySize() { return pObjectInterface->GetArraySize(mValue.pData); };\n    bool SetArraySize(unsigned sz) { return pObjectInterface->SetArraySize(mValue.pData, sz); }\n    bool GetElement(unsigned idx, Value* pval) const { return pObjectInterface->GetElement(mValue.pData, idx, pval); }\n    bool SetElement(unsigned idx, const Value& val) { return pObjectInterface->SetElement(mValue.pData, idx, val); }\n    void VisitElements(ArrayVisitor* visitor, unsigned idx, int count = -1) const { return pObjectInterface->VisitElements(mValue.pData, visitor, idx, count); }\n    void VisitElements(ArrayVisitor* visitor) const { VisitElements(visitor, 0); }\n    bool PushBack(const Value& val) { return pObjectInterface->PushBack(mValue.pData, val); }\n    bool PopBack(Value* pval = nullptr) { return pObjectInterface->PopBack(mValue.pData, pval); }\n    bool RemoveElements(unsigned idx, int count = -1) { return pObjectInterface->RemoveElements(mValue.pData, idx, count); }\n    bool RemoveElement(unsigned idx) { return RemoveElements(idx, 1); }\n    bool ClearElements() { return RemoveElements(0); }\n    bool SetText(const char* ptext) { return pObjectInterface->SetText(mValue.pData, ptext, false); }\n    bool SetText(const wchar_t* ptext) { return pObjectInterface->SetTextW(mValue.pData, ptext, false); }\n    bool SetTextHTML(const char* phtml) { return pObjectInterface->SetText(mValue.pData, phtml, true); }\n    bool SetTextHTML(const wchar_t* phtml) { return pObjectInterface->SetTextW(mValue.pData, phtml, true); }\n    bool GetText(Value* pval) const { return pObjectInterface->GetText(mValue.pData, pval, false); }\n    bool GetTextHTML(Value* pval) const { return pObjectInterface->GetText(mValue.pData, pval, true); }\n    bool CreateEmptyMovieClip(Value* pmc, const char* instanceName, int depth = -1) { return pObjectInterface->CreateEmptyMovieClip(mValue.pData, pmc, instanceName, depth); }\n    bool AttachMovie(Value* pmc, const char* symbolName, const char* instanceName, int depth = -1, const void* initArgs = nullptr){ return pObjectInterface->AttachMovie(mValue.pData, pmc, symbolName, instanceName, depth, initArgs); }\n    bool GotoAndPlay(const char* frame) { return pObjectInterface->GotoAndPlayL(mValue.pData, frame, false); }\n    bool GotoAndStop(const char* frame) { return pObjectInterface->GotoAndPlayL(mValue.pData, frame, true); }\n    bool GotoAndPlay(unsigned frame) { return pObjectInterface->GotoAndPlay(mValue.pData, frame, false); }\n    bool GotoAndStop(unsigned frame) { return pObjectInterface->GotoAndPlay(mValue.pData, frame, true); }\n    bool GetParent(Value* val) { return pObjectInterface->GetParent(mValue.pData, val); }\n\n    void*               unk00;              // 00\n    void*               unk08;              // 08\n    ObjectInterface*    pObjectInterface;   // 10\n\tValueType           Type;               // 18\n\tValueUnion          mValue;             // 20\n\tu64\t                DataAux;            // 28\n};\n}\n}\n"
  },
  {
    "path": "sfse/Serialization.cpp",
    "content": "#include \"Serialization.h\"\n#include \"GameEvents.h\"\n\n#include \"sfse_common/Log.h\"\n#include \"sfse_common/Errors.h\"\n#include \"sfse_common/sfse_version.h\"\n#include \"sfse_common/FileStream.h\"\n#include \"sfse/GameSettings.h\"\n\n#include <ShlObj.h>\n#include <unordered_map>\n#include <unordered_set>\n#include <io.h>\n\nnamespace Serialization\n{\n\tconst char* kSavegamePath = \"\\\\My Games\\\\\" SAVE_FOLDER_NAME \"\\\\\";\n\n\tstd::unordered_map<u32, u32> changedIDs;\n\tstd::unordered_set<u32> deletedIDs;\n\tstd::string s_savePath;\n\n\tstruct IDRemapDeleteListener :\n\t\tpublic BSTEventSink<TESFormIDRemapEvent>,\n\t\tpublic BSTEventSink<TESFormDeleteEvent>\n\t{\n\t\tIDRemapDeleteListener()\n\t\t{\n\t\t\tGetEventSource<TESFormIDRemapEvent>()->RegisterSink(static_cast<BSTEventSink<TESFormIDRemapEvent>*>(this));\n\t\t\tGetEventSource<TESFormDeleteEvent>()->RegisterSink(static_cast<BSTEventSink<TESFormDeleteEvent>*>(this));\n\t\t}\n\n\t\tvirtual\tEventResult\tProcessEvent(const TESFormIDRemapEvent& arEvent, BSTEventSource<TESFormIDRemapEvent>* eventSource)\n\t\t{\n\t\t\tchangedIDs[arEvent.oldID] = arEvent.newID;\n\t\t\treturn EventResult::kContinue;\n\t\t};\n\n\t\tvirtual\tEventResult\tProcessEvent(const TESFormDeleteEvent& arEvent, BSTEventSource<TESFormDeleteEvent>* eventSource)\n\t\t{\n\t\t\tdeletedIDs.insert(arEvent.formId);\n\t\t\treturn EventResult::kContinue;\n\t\t};\n\t};\n\n\tvoid RemoveFileExtension(std::string& path)\n\t{\n\t\tsize_t lastDot = path.find_last_of('.');\n\t\tif (lastDot != std::string::npos) {\n\t\t\tpath.erase(lastDot);\n\t\t}\n\t}\n\n\tstd::string MakeSavePath(std::string name, const char* extension, bool hasExtension)\n\t{\n\t\tif (hasExtension)\n\t\t{\n\t\t\tRemoveFileExtension(name);\n\t\t}\n\n\t\tchar path[MAX_PATH];\n\t\tASSERT(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, path)));\n\n\t\tstd::string\tresult = path;\n\t\tresult += kSavegamePath;\n\t\tSetting* localSavePath = (*SettingT<INISettingCollection>::pCollection)->GetSetting(\"sLocalSavePath:General\");\n\t\tif (localSavePath && (localSavePath->GetType() == Setting::kType_String))\n\t\t\tresult += localSavePath->data.s;\n\t\telse\n\t\t\tresult += \"Saves\\\\\";\n\n\t\tresult += \"\\\\\";\n\t\tresult += name;\n\t\tif (extension)\n\t\t\tresult += extension;\n\t\treturn result;\n\t}\n\n\tvoid SetSaveName(const char* name, bool hasExtension)\n\t{\n\t\tif (name)\n\t\t{\n\t\t\t_MESSAGE(\"save name is %s\", name);\n\t\t\ts_savePath = MakeSavePath(name, \".sfse\", hasExtension);\n\t\t\t_MESSAGE(\"full save path: %s\", s_savePath.c_str());\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_MESSAGE(\"cleared save path\");\n\t\t\ts_savePath.clear();\n\t\t}\n\t}\n\n\tvoid HandleBeginLoad()\n\t{\n\t\t//if the remap listener isn't already registered, register it now.\n\t\tstatic IDRemapDeleteListener listener{};\n\t\tchangedIDs.clear();\n\t\tdeletedIDs.clear();\n\t}\n\n\tvoid HandleEndLoad()\n\t{\n\t\tchangedIDs.clear();\n\t\tdeletedIDs.clear();\n\t}\n\n\tbool ResolveFormId(u32 formId, u32* formIdOut)\n\t{\n\t\tif (auto iter = changedIDs.find(formId); iter != changedIDs.end()) {\n\t\t\t(*formIdOut) = iter->second;\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\tif (deletedIDs.find(formId) == deletedIDs.end())\n\t\t{\n\t\t\t(*formIdOut) = formId;\n\t\t\treturn true;\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tbool ResolveHandle(u64 handle, u64* handleOut)\n\t{\n\t\tu32 formId = static_cast<u32>(handle & 0x00000000FFFFFFFF);\n\t\tif (auto iter = changedIDs.find(formId); iter != changedIDs.end()) {\n\t\t\t(*handleOut) = (handle & 0xFFFFFFFF00000000) | static_cast<u64>(iter->second);\n\t\t\treturn true;\n\t\t}\n\n\t\tif (deletedIDs.find(formId) == deletedIDs.end())\n\t\t{\n\t\t\t(*handleOut) = handle;\n\t\t\treturn true;\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tvoid HandleRevertGlobalData()\n\t{\n\t\t_MESSAGE(\"RevertGlobalData\");\n\n\t\t// TODO: add implementation for revert callbacks.\n\t}\n\n\tvoid HandleSaveGlobalData()\n\t{\n\t\t_MESSAGE(\"SaveGlobalData\");\n\n\t\t// TODO: add implementation for serialization & save callbacks.\n\t}\n\n\tvoid HandleLoadGlobalData()\n\t{\n\t\t_MESSAGE(\"LoadGlobalData\");\n\n\t\t// TODO: add implementation for deserialization & load callbacks.\n\t}\n\n\tvoid HandleDeleteSave(std::string filePath)\n\t{\n\t\t// check if old file is gone\n\t\tFileStream saveFile;\n\t\tif (!saveFile.open(filePath.c_str()))\n\t\t{\n\t\t\tRemoveFileExtension(filePath);\n\t\t\tfilePath += \".sfse\";\n\t\t\t_MESSAGE(\"deleting co-save %s\", filePath.c_str());\n\t\t\tDeleteFile(filePath.c_str());\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_MESSAGE(\"skipped delete of co-save for file %s\", filePath.c_str());\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "sfse/Serialization.h",
    "content": "#pragma once\n#include <string>\n#include \"sfse_common/Types.h\"\n\nnamespace Serialization\n{\n\tvoid SetSaveName(const char* name, bool hasExtension = false);\n\tvoid HandleBeginLoad();\n\tvoid HandleEndLoad();\n\tbool ResolveFormId(u32 formId, u32* formIdOut);\n\tbool ResolveHandle(u64 handle, u64* handleOut);\n\tvoid HandleRevertGlobalData();\n\tvoid HandleSaveGlobalData();\n\tvoid HandleLoadGlobalData();\n\n\tvoid HandleDeleteSave(std::string filePath);\n}\n"
  },
  {
    "path": "sfse/cmake/config.cmake.in",
    "content": "include(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "sfse/sfse.cpp",
    "content": "#include <Windows.h>\r\n#include <ShlObj.h>\r\n#include <corecrt_startup.h>\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_common/Utilities.h\"\r\n#include \"sfse_common/SafeWrite.h\"\r\n#include \"sfse_common/BranchTrampoline.h\"\r\n#include \"sfse_common/CoreInfo.h\"\r\n#include \"PluginManager.h\"\r\n\r\n#include \"Hooks_Version.h\"\r\n#include \"Hooks_Script.h\"\r\n#include \"Hooks_Scaleform.h\"\r\n#include \"Hooks_Serialization.h\"\r\n#include \"Hooks_Data.h\"\r\n#include \"Hooks_Command.h\"\r\n\r\nHINSTANCE g_moduleHandle = nullptr;\r\n\r\nvoid SFSE_Preinit();\r\nvoid SFSE_Initialize();\r\n\r\n// api-ms-win-crt-runtime-l1-1-0.dll\r\ntypedef int (*__initterm_e)(_PIFV *, _PIFV *);\r\n__initterm_e _initterm_e_Original = nullptr;\r\n\r\ntypedef char * (*__get_narrow_winmain_command_line)();\r\n__get_narrow_winmain_command_line _get_narrow_winmain_command_line_Original = NULL;\r\n\r\n// runs before global initializers\r\nint __initterm_e_Hook(_PIFV * a, _PIFV * b)\r\n{\r\n\t// could be used for plugin optional preload\r\n\r\n\tSFSE_Preinit();\r\n\r\n\treturn _initterm_e_Original(a, b);\r\n}\r\n\r\n// runs after global initializers\r\nchar * __get_narrow_winmain_command_line_Hook()\r\n{\r\n\t// the usual load time\r\n\r\n\tSFSE_Initialize();\r\n\r\n\treturn _get_narrow_winmain_command_line_Original();\r\n}\r\n\r\nvoid installBaseHooks(void)\r\n{\r\n\tDebugLog::openRelative(CSIDL_MYDOCUMENTS, \"\\\\My Games\\\\\" SAVE_FOLDER_NAME \"\\\\SFSE\\\\Logs\\\\sfse.txt\");\r\n\r\n\tHANDLE exe = GetModuleHandle(nullptr);\r\n\r\n\t// fetch functions to hook\r\n\tauto * initterm = (__initterm_e *)getIATAddr(exe, \"api-ms-win-crt-runtime-l1-1-0.dll\", \"_initterm_e\");\r\n\tauto * cmdline = (__get_narrow_winmain_command_line *)getIATAddr(exe, \"api-ms-win-crt-runtime-l1-1-0.dll\", \"_get_narrow_winmain_command_line\");\r\n\r\n\t// hook them\r\n\tif(initterm)\r\n\t{\r\n\t\t_initterm_e_Original = *initterm;\r\n\t\tsafeWrite64(uintptr_t(initterm), u64(__initterm_e_Hook));\r\n\t}\r\n\telse\r\n\t{\r\n\t\t_ERROR(\"couldn't find _initterm_e\");\r\n\t}\r\n\r\n\tif(cmdline)\r\n\t{\r\n\t\t_get_narrow_winmain_command_line_Original = *cmdline;\r\n\t\tsafeWrite64(uintptr_t(cmdline), u64(__get_narrow_winmain_command_line_Hook));\r\n\t}\r\n\telse\r\n\t{\r\n\t\t_ERROR(\"couldn't find _get_narrow_winmain_command_line\");\r\n\t}\r\n}\r\n\r\nvoid WaitForDebugger(void)\r\n{\r\n\twhile(!IsDebuggerPresent())\r\n\t{\r\n\t\tSleep(10);\r\n\t}\r\n\r\n\tSleep(1000 * 2);\r\n}\r\n\r\nvoid SFSE_Preinit()\r\n{\r\n\tstatic bool runOnce = false;\r\n\tif(runOnce) return;\r\n\trunOnce = true;\r\n\r\n\tSYSTEMTIME now;\r\n\tGetSystemTime(&now);\r\n\r\n\t_MESSAGE(\"SFSE runtime: initialize (version = %d.%d.%d %08X %04d-%02d-%02d %02d:%02d:%02d, os = %s)\",\r\n\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA, RUNTIME_VERSION,\r\n\t\tnow.wYear, now.wMonth, now.wDay, now.wHour, now.wMinute, now.wSecond,\r\n\t\tgetOSInfoStr().c_str());\r\n\r\n\t_MESSAGE(\"imagebase = %016I64X\", g_moduleHandle);\r\n\t_MESSAGE(\"reloc mgr imagebase = %016I64X\", RelocationManager::s_baseAddr);\r\n\r\n#ifdef _DEBUG\r\n\tSetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);\r\n\r\n\tWaitForDebugger();\r\n#endif\r\n\r\n\tif(!g_branchTrampoline.create(1024 * 64))\r\n\t{\r\n\t\t_ERROR(\"couldn't create branch trampoline. this is fatal. skipping remainder of init process.\");\r\n\t\treturn;\r\n\t}\r\n\r\n\tif(!g_localTrampoline.create(1024 * 64, g_moduleHandle))\r\n\t{\r\n\t\t_ERROR(\"couldn't create codegen buffer. this is fatal. skipping remainder of init process.\");\r\n\t\treturn;\r\n\t}\r\n\r\n\t// scan plugin folder\r\n\tg_pluginManager.init();\r\n\r\n\t// preload plugins\r\n\tg_pluginManager.installPlugins(PluginManager::kPhase_Preload);\r\n\r\n\t_MESSAGE(\"preinit complete\");\r\n}\r\n\r\nvoid SFSE_Initialize()\r\n{\r\n\tstatic bool runOnce = false;\r\n\tif(runOnce) return;\r\n\trunOnce = true;\r\n\r\n\t// load plugins\r\n\tg_pluginManager.installPlugins(PluginManager::kPhase_Load);\r\n\tg_pluginManager.loadComplete();\r\n\r\n\tHooks_Version_Apply();\r\n\tHooks_Script_Apply();\r\n\tHooks_Scaleform_Apply();\r\n\tHooks_Serialization_Apply();\r\n\tHooks_Data_Apply();\r\n\tHooks_Command_Apply();\r\n\r\n\tFlushInstructionCache(GetCurrentProcess(), NULL, 0);\r\n\r\n\t_MESSAGE(\"init complete\");\r\n\r\n\tDebugLog::flush();\r\n}\r\n\r\nextern \"C\" {\r\n\tvoid StartSFSE()\r\n\t{\r\n\t\tinstallBaseHooks();\r\n\t}\r\n\t\r\n\tBOOL WINAPI DllMain(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)\r\n\t{\r\n\t\tswitch(dwReason)\r\n\t\t{\r\n\t\tcase DLL_PROCESS_ATTACH:\r\n\t\t\tg_moduleHandle = (HINSTANCE)hDllHandle;\r\n\t\t\tbreak;\r\n\r\n\t\tcase DLL_PROCESS_DETACH:\r\n\t\t\tbreak;\r\n\t\t};\r\n\r\n\t\treturn TRUE;\r\n\t}\r\n\r\n\t__declspec(dllexport) SFSECoreVersionData SFSECore_Version =\r\n\t{\r\n\t\tSFSECoreVersionData::kVersion,\r\n\r\n\t\tRUNTIME_VERSION,\r\n\t};\r\n}\r\n"
  },
  {
    "path": "sfse/sfse.def",
    "content": "EXPORTS\r\nStartSFSE @1\r\n"
  },
  {
    "path": "sfse/sfse_version.rc",
    "content": "#include \"sfse_common/sfse_version.h\"\n\n1 VERSIONINFO\n FILEVERSION 0,SFSE_VERSION_INTEGER,SFSE_VERSION_INTEGER_MINOR,SFSE_VERSION_INTEGER_BETA\n PRODUCTVERSION 0,SFSE_VERSION_INTEGER,SFSE_VERSION_INTEGER_MINOR,SFSE_VERSION_INTEGER_BETA\n FILEFLAGSMASK 0x17L\n#ifdef _DEBUG\n FILEFLAGS 0x1L\n#else\n FILEFLAGS 0x0L\n#endif\n FILEOS 0x4L\n FILETYPE 0x1L\n FILESUBTYPE 0x0L\nBEGIN\n    BLOCK \"StringFileInfo\"\n    BEGIN\n        BLOCK \"040904b0\"\n        BEGIN\n            VALUE \"FileDescription\", \"Starfield Script Extender core DLL\"\n\t\t\tVALUE \"FileVersion\", SFSE_VERSION_VERSTRING\n            VALUE \"InternalName\", \"SFSE\"\n            VALUE \"LegalCopyright\", \"Copyright (C) 2006-2024\"\n            VALUE \"ProductName\", \"SFSE\"\n\t\t\tVALUE \"ProductVersion\", SFSE_VERSION_VERSTRING\n        END\n    END\n    BLOCK \"VarFileInfo\"\n    BEGIN\n        VALUE \"Translation\", 0x409, 1200\n    END\nEND\n"
  },
  {
    "path": "sfse_common/BranchTrampoline.cpp",
    "content": "#include \"BranchTrampoline.h\"\r\n#include \"SafeWrite.h\"\r\n#include <climits>\r\n#include <Windows.h>\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/Errors.h\"\r\n\r\nBranchTrampoline g_branchTrampoline;\r\nBranchTrampoline g_localTrampoline;\r\n\r\nBranchTrampoline::BranchTrampoline()\r\n\t:m_base(nullptr)\r\n\t, m_len(0)\r\n\t, m_allocated(0)\r\n\t, m_curAlloc(nullptr)\r\n{\r\n\t//\r\n}\r\n\r\nBranchTrampoline::~BranchTrampoline()\r\n{\r\n\tdestroy();\r\n}\r\n\r\nbool BranchTrampoline::create(size_t len, void * module)\r\n{\r\n\tif (!module) module = GetModuleHandle(NULL);\r\n\r\n\t// search backwards from module base\r\n\tuintptr_t moduleBase = uintptr_t(module);\r\n\tuintptr_t addr = moduleBase;\r\n\tuintptr_t maxDisplacement = 0x80000000 - (1024 * 1024 * 128); // largest 32-bit displacement with 128MB scratch space\r\n\tuintptr_t lowestOKAddress = (moduleBase >= maxDisplacement) ? moduleBase - maxDisplacement : 0;\r\n\taddr--;\r\n\r\n\twhile (!m_base)\r\n\t{\r\n\t\tMEMORY_BASIC_INFORMATION info;\r\n\r\n\t\tif (!VirtualQuery((void *)addr, &info, sizeof(info)))\r\n\t\t{\r\n\t\t\t_ERROR(\"VirtualQuery failed: %08X\", GetLastError());\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif (info.State == MEM_FREE)\r\n\t\t{\r\n\t\t\t// free block, big enough?\r\n\t\t\tif (info.RegionSize >= len)\r\n\t\t\t{\r\n\t\t\t\t// try to allocate it\r\n\t\t\t\taddr = ((uintptr_t)info.BaseAddress) + info.RegionSize - len;\r\n\r\n\t\t\t\tm_base = (void *)VirtualAlloc((void *)addr, len, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);\r\n\t\t\t\tif (m_base)\r\n\t\t\t\t{\r\n\t\t\t\t\tm_len = len;\r\n\t\t\t\t\tm_allocated = 0;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_WARNING(\"trampoline alloc %016I64Xx%016I64X failed (%08X)\", addr, len, GetLastError());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// move back and try again\r\n\t\tif (!m_base)\r\n\t\t{\r\n\t\t\taddr = ((uintptr_t)info.BaseAddress) - 1;\r\n\t\t}\r\n\r\n\t\tif (addr < lowestOKAddress)\r\n\t\t{\r\n\t\t\t_ERROR(\"couldn't allocate trampoline, no free space before image\");\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn m_base != nullptr;\r\n}\r\n\r\nvoid BranchTrampoline::destroy()\r\n{\r\n\tif (m_base)\r\n\t{\r\n\t\tVirtualFree(m_base, 0, MEM_RELEASE);\r\n\t\tm_base = nullptr;\r\n\t}\r\n}\r\n\r\nvoid BranchTrampoline::setBase(size_t len, void * base)\r\n{\r\n\tASSERT(!m_base);\r\n\tm_base = base;\r\n\tm_len = len;\r\n\tm_allocated = 0;\r\n\tm_curAlloc = nullptr;\r\n}\r\n\r\nvoid * BranchTrampoline::startAlloc()\r\n{\r\n\tASSERT(m_base);\r\n\tASSERT(!m_curAlloc);\r\n\r\n\tm_curAlloc = ((u8 *)m_base) + m_allocated;\r\n\r\n\treturn m_curAlloc;\r\n}\r\n\r\nvoid BranchTrampoline::endAlloc(const void * end)\r\n{\r\n\tASSERT(m_base);\r\n\tASSERT(m_curAlloc);\r\n\r\n\tsize_t len = uintptr_t(end) - uintptr_t(m_curAlloc);\r\n\tASSERT(len <= remain());\r\n\r\n\tm_allocated += len;\r\n\tm_curAlloc = nullptr;\r\n}\r\n\r\nvoid * BranchTrampoline::allocate(size_t size)\r\n{\r\n\tASSERT(m_base);\r\n\r\n\tvoid * result = nullptr;\r\n\r\n\tif (size <= remain())\r\n\t{\r\n\t\tresult = ((u8 *)m_base) + m_allocated;\r\n\t\tm_allocated += size;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nbool BranchTrampoline::write6Branch(uintptr_t src, uintptr_t dst)\r\n{\r\n\treturn write6Branch_Internal(src, dst, 0x25);\r\n}\r\n\r\nbool BranchTrampoline::write6Call(uintptr_t src, uintptr_t dst)\r\n{\r\n\treturn write6Branch_Internal(src, dst, 0x15);\r\n}\r\n\r\nbool BranchTrampoline::write5Branch(uintptr_t src, uintptr_t dst)\r\n{\r\n\treturn write5Branch_Internal(src, dst, 0xE9);\r\n}\r\n\r\nbool BranchTrampoline::write5Call(uintptr_t src, uintptr_t dst)\r\n{\r\n\treturn write5Branch_Internal(src, dst, 0xE8);\r\n}\r\n\r\nbool BranchTrampoline::write6Branch_Internal(uintptr_t src, uintptr_t dst, u8 op)\r\n{\r\n\tbool result = false;\r\n\r\n\tuintptr_t * trampoline = (uintptr_t *)allocate();\r\n\tif (trampoline)\r\n\t{\r\n\t\tuintptr_t\ttrampolineAddr = (uintptr_t)trampoline;\r\n\t\tuintptr_t\tnextInstr = src + 6;\r\n\t\tptrdiff_t\ttrampolineDispl = trampolineAddr - nextInstr;\r\n\r\n\t\tif ((trampolineDispl >= _I32_MIN) && (trampolineDispl <= _I32_MAX))\r\n\t\t{\r\n\t\t\tu8\tcode[6];\r\n\r\n\t\t\t// jmp [rip+imm32]\r\n\t\t\tcode[0] = 0xFF;\r\n\t\t\tcode[1] = op;\r\n\t\t\t*((s32 *)&code[2]) = (s32)trampolineDispl;\r\n\r\n\t\t\tsafeWriteBuf(src, code, sizeof(code));\r\n\r\n\t\t\t*trampoline = dst;\r\n\r\n\t\t\tresult = true;\r\n\t\t}\r\n\t}\r\n\r\n\t// do this for now so it's obvious when something goes wrong\r\n\tASSERT(result);\r\n\r\n\treturn result;\r\n}\r\n\r\nbool BranchTrampoline::write5Branch_Internal(uintptr_t src, uintptr_t dst, u8 op)\r\n{\r\n\tbool result = false;\r\n\r\n#pragma pack(push, 1)\r\n\t// code placed in trampoline\r\n\tstruct TrampolineCode\r\n\t{\r\n\t\t// jmp [rip]\r\n\t\tu8\tescape;\t// FF\r\n\t\tu8\tmodrm;\t// 25\r\n\t\tu32\tdispl;\t// 00000000\r\n\t\t// rip points here\r\n\t\tu64\tdst;\t// target\r\n\r\n\t\tvoid Init(uintptr_t _dst)\r\n\t\t{\r\n\t\t\tescape = 0xFF;\r\n\t\t\tmodrm = 0x25;\r\n\t\t\tdispl = 0;\r\n\t\t\tdst = _dst;\r\n\t\t}\r\n\t};\r\n\r\n\tstruct HookCode\r\n\t{\r\n\t\t// jmp disp32\r\n\t\tu8\top;\t\t// E9 for jmp, E8 for call\r\n\t\ts32\tdispl;\t// \r\n\r\n\t\tvoid Init(s32 _displ, u8 _op)\r\n\t\t{\r\n\t\t\top = _op;\r\n\t\t\tdispl = _displ;\r\n\t\t}\r\n\t};\r\n#pragma pack(pop)\r\n\r\n\tSTATIC_ASSERT(sizeof(TrampolineCode) == 14);\r\n\tSTATIC_ASSERT(sizeof(HookCode) == 5);\r\n\r\n\tTrampolineCode * trampolineCode = (TrampolineCode *)allocate(sizeof(TrampolineCode));\r\n\tif (trampolineCode)\r\n\t{\r\n\t\ttrampolineCode->Init(dst);\r\n\r\n\t\tHookCode hookCode;\r\n\r\n\t\tuintptr_t\ttrampolineAddr = uintptr_t(trampolineCode);\r\n\t\tuintptr_t\tnextInstr = src + sizeof(hookCode);\r\n\t\tptrdiff_t\ttrampolineDispl = trampolineAddr - nextInstr;\r\n\r\n\t\t// should never fail because we're branching in to the trampoline\r\n\t\tASSERT((trampolineDispl >= _I32_MIN) && (trampolineDispl <= _I32_MAX));\r\n\r\n\t\thookCode.Init(trampolineDispl, op);\r\n\r\n\t\tsafeWriteBuf(src, &hookCode, sizeof(hookCode));\r\n\r\n\t\tresult = true;\r\n\t}\r\n\r\n\t// do this for now so it's obvious when something goes wrong\r\n\tASSERT(result);\r\n\r\n\treturn result;\r\n}\r\n"
  },
  {
    "path": "sfse_common/BranchTrampoline.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/Types.h\"\r\n\r\nclass BranchTrampoline\r\n{\r\npublic:\r\n\tBranchTrampoline();\r\n\t~BranchTrampoline();\r\n\r\n\tbool create(size_t len, void * module = nullptr);\r\n\tvoid destroy();\r\n\tvoid setBase(size_t len, void* base);\r\n\r\n\t// allocate unsized\r\n\tvoid * startAlloc();\r\n\tvoid endAlloc(const void * end);\r\n\r\n\tvoid * allocate(size_t size = sizeof(void *));\r\n\r\n\tsize_t remain() { return m_len - m_allocated; }\r\n\r\n\t// takes 6 bytes of space at src, 8 bytes in trampoline\r\n\tbool write6Branch(uintptr_t src, uintptr_t dst);\r\n\tbool write6Call(uintptr_t src, uintptr_t dst);\r\n\r\n\t// takes 5 bytes of space at src, 14 bytes in trampoline\r\n\tbool write5Branch(uintptr_t src, uintptr_t dst);\r\n\tbool write5Call(uintptr_t src, uintptr_t dst);\r\n\r\nprivate:\r\n\t// takes 6 bytes of space at src, 8 bytes in trampoline\r\n\tbool write6Branch_Internal(uintptr_t src, uintptr_t dst, u8 op);\r\n\r\n\t// takes 5 bytes of space at src, 14 bytes in trampoline\r\n\tbool write5Branch_Internal(uintptr_t src, uintptr_t dst, u8 op);\r\n\r\n\tvoid\t* m_base;\r\n\tsize_t\tm_len;\t\t\t// bytes\r\n\tsize_t\tm_allocated;\t// bytes\r\n\r\n\tvoid\t* m_curAlloc;\t// currently active StartAlloc base\r\n};\r\n\r\nextern BranchTrampoline g_branchTrampoline;\r\nextern BranchTrampoline g_localTrampoline;\r\n"
  },
  {
    "path": "sfse_common/BufferStream.cpp",
    "content": "#include \"BufferStream.h\"\r\n#include <cstring>\r\n\r\nu64 BufferStream::read(void * dst, u64 len)\r\n{\r\n\tmemcpy(dst, &m_buf[m_offset], len);\r\n\tm_offset += len;\r\n\r\n\treturn len;\r\n}\r\n\r\nu64 BufferStream::write(const void * src, u64 len)\r\n{\r\n\tmemcpy(&m_buf[m_offset], src, len);\r\n\tm_offset += len;\r\n\r\n\treturn len;\r\n}\r\n"
  },
  {
    "path": "sfse_common/BufferStream.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/DataStream.h\"\r\n\r\nclass BufferStream : public DataStream\r\n{\r\npublic:\r\n\tBufferStream() :m_buf(nullptr) { }\r\n\r\n\tvoid attach(void * buf, u64 len) { m_buf = (u8 *)buf; m_len = len; }\r\n\r\n\tvirtual u64 seek(u64 offset) { m_offset = offset; return offset; }\r\n\r\n\tvirtual u64 read(void * dst, u64 len);\r\n\tvirtual u64 write(const void * src, u64 len);\r\n\r\nprotected:\r\n\tu8 * m_buf;\r\n};\r\n"
  },
  {
    "path": "sfse_common/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake)\n\nproject(\n\tsfse_common\n\tVERSION ${SFSE_VERSION_MAJOR}.${SFSE_VERSION_MINOR}.${SFSE_VERSION_PATCH}\n\tLANGUAGES CXX\n)\n\n# ---- Include guards ----\n\nif(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)\n\tmessage(\n\t\tFATAL_ERROR\n\t\t\t\"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.\"\n)\nendif()\n\n# ---- Add source files ----\n\nfile(GLOB headers CONFIGURE_DEPENDS *.h)\nfile(GLOB sources CONFIGURE_DEPENDS *.cpp)\n\nsource_group(\n\t${PROJECT_NAME}\n\tFILES\n\t\t${headers}\n\t\t${sources}\n)\n\n# ---- Create library ----\n\nadd_library(\n\t${PROJECT_NAME}\n\tSTATIC\n\t${headers}\n\t${sources}\n)\n\nadd_library(sfse::${PROJECT_NAME} ALIAS ${PROJECT_NAME})\n\ntarget_compile_features(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\tcxx_std_11\n)\n\ntarget_include_directories(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\t$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>\n\t\t$<INSTALL_INTERFACE:include>\n)\n\ntarget_link_libraries(\n\t${PROJECT_NAME}\n\tPUBLIC\n)\n\n# ---- Create an installable target ----\n\ninclude(GNUInstallDirs)\n\ninstall(\n\tTARGETS\n\t\t${PROJECT_NAME}\n\tEXPORT\n\t\t${PROJECT_NAME}-targets\n)\n\ninstall(\n\tFILES\n\t\t${headers}\n\tDESTINATION\n\t\t${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}\n)\n\nconfigure_file(\n\tcmake/config.cmake.in\n\t${PROJECT_NAME}-config.cmake\n\t@ONLY\n)\n\ninstall(\n\tFILES\n\t\t${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake\n\tDESTINATION\n\t\t${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n)\n\ninstall(\n\tEXPORT\n\t\t${PROJECT_NAME}-targets\n\tNAMESPACE\n\t\tsfse::\n\tDESTINATION\n\t\t${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n)\n"
  },
  {
    "path": "sfse_common/CoreInfo.h",
    "content": "#pragma once\n\n#include <cstdint>\n\nstruct SFSECoreVersionData\n{\n\tenum\n\t{\n\t\tkVersion = 1,\n\t};\n\n\tstd::uint32_t\tdataVersion;\n\n\tstd::uint32_t\truntimeVersion;\n};\n"
  },
  {
    "path": "sfse_common/DataStream.cpp",
    "content": "#include \"DataStream.h\"\r\n\r\nvoid copy(DataStream * src, DataStream * dst, size_t len, void * buf, size_t bufLen)\r\n{\r\n\tbool localBuf = false;\r\n\r\n\tif (!buf)\r\n\t{\r\n\t\tlocalBuf = true;\r\n\t\tbufLen = 1024 * 1024 * 1;\t// 1MB\r\n\t\tbuf = new u8[bufLen];\r\n\t}\r\n\r\n\twhile (len > 0)\r\n\t{\r\n\t\tsize_t copyLen = len;\r\n\t\tif (copyLen > bufLen)\r\n\t\t\tcopyLen = bufLen;\r\n\r\n\t\tsrc->read(buf, copyLen);\r\n\t\tdst->write(buf, copyLen);\r\n\r\n\t\tlen -= copyLen;\r\n\t}\r\n\r\n\tif (localBuf)\r\n\t\tdelete [] buf;\r\n}\r\n"
  },
  {
    "path": "sfse_common/DataStream.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/Types.h\"\r\n\r\nclass DataStream\r\n{\r\npublic:\r\n\tDataStream() : m_len(0), m_offset(0) { }\r\n\tvirtual ~DataStream() { }\r\n\r\n\tvirtual u64 seek(u64 offset) = 0;\r\n\r\n\tvirtual u64 read(void * dst, u64 len) = 0;\r\n\tvirtual u64 write(const void * src, u64 len) = 0;\r\n\r\n\tu64 offset() { return m_offset; }\r\n\tu64 length() { return m_len; }\r\n\tu64 remain() { return (m_offset <= m_len) ? m_len - m_offset : 0; }\r\n\tvoid skip(u64 len) { seek(offset() + len); }\r\n\t\r\n\ttemplate <typename T>\r\n\tT read() { T t; read(&t, sizeof(t)); return t; }\r\n\r\n\ttemplate <typename T>\r\n\tu64 read(T * t) { return read(t, sizeof(T)); }\r\n\r\n\ttemplate <typename T>\r\n\tvoid write(T t) { write(&t, sizeof(t)); }\r\n\r\n\tu8 r8() { return read <u8>(); }\r\n\tu16 r16() { return read <u16>(); }\r\n\tu32 r32() { return read <u32>(); }\r\n\tu64 r64() { return read <u64>(); }\r\n\tf32 rf32() { return read <f32>(); }\r\n\tf64 rf64() { return read <f64>(); }\r\n\r\n\tvoid w8(u8 d) { write <u8>(d); }\r\n\tvoid w16(u16 d) { write <u16>(d); }\r\n\tvoid w32(u32 d) { write <u32>(d); }\r\n\tvoid w64(u64 d) { write <u64>(d); }\r\n\tvoid wf32(f32 d) { write <f32>(d); }\r\n\tvoid wf64(f64 d) { write <f64>(d); }\r\n\r\nprotected:\r\n\tu64 m_len;\r\n\tu64 m_offset;\r\n};\r\n\r\nvoid copy(DataStream * src, DataStream * dst, size_t len, void * buf = nullptr, size_t bufLen = 0);\r\n\r\nclass SubStream : public DataStream\r\n{\r\npublic:\r\n\tSubStream() : m_subBase(0), m_parent(nullptr) { }\r\n\tvirtual ~SubStream() { }\r\n\r\n\tvoid attach(DataStream * stream, u64 base, u64 len)\r\n\t{\r\n\t\tm_len = len;\r\n\t\tm_subBase = base;\r\n\t\tm_parent = stream;\r\n\t}\r\n\r\n\tvirtual u64 seek(u64 offset)\r\n\t{\r\n\t\tm_offset = offset;\r\n\r\n\t\tfixOffset();\r\n\r\n\t\treturn m_offset;\r\n\t}\r\n\r\n\tvirtual u64 read(void * dst, u64 len)\r\n\t{\r\n\t\tfixOffset();\r\n\r\n\t\treturn m_parent->read(dst, len);\r\n\t}\r\n\r\n\tvirtual u64 write(const void * src, u64 len)\r\n\t{\r\n\t\tfixOffset();\r\n\r\n\t\treturn m_parent->write(src, len);\r\n\t}\r\n\r\nprotected:\r\n\tu64\t\t\tm_subBase;\r\n\tDataStream\t* m_parent;\r\n\r\n\tvoid fixOffset()\r\n\t{\r\n\t\tu64 realOffset = m_subBase + m_offset;\r\n\r\n\t\tif (m_parent->offset() != realOffset)\r\n\t\t\tm_parent->seek(realOffset);\r\n\t}\r\n};\r\n"
  },
  {
    "path": "sfse_common/DirectoryIterator.cpp",
    "content": "#include \"DirectoryIterator.h\"\n\nDirectoryIterator::DirectoryIterator(const char * path, const char * match)\n:m_searchHandle(INVALID_HANDLE_VALUE), m_done(false)\n{\n\tif(!match) match = \"*\";\n\n\tstrcpy_s(m_path, sizeof(m_path), path);\n\n\tchar\twildcardPath[MAX_PATH];\n\tsprintf_s(wildcardPath, sizeof(wildcardPath), \"%s\\\\%s\", path, match);\n\n\tm_searchHandle = FindFirstFile(wildcardPath, &m_result);\n\tif(m_searchHandle == INVALID_HANDLE_VALUE)\n\t\tm_done = true;\n}\n\nDirectoryIterator::~DirectoryIterator()\n{\n\tif(m_searchHandle != INVALID_HANDLE_VALUE)\n\t\tFindClose(m_searchHandle);\n}\n\nvoid DirectoryIterator::fullPath(char * out, size_t outLen)\n{\n\tsprintf_s(out, outLen, \"%s\\\\%s\", m_path, m_result.cFileName);\n}\n\nstd::string DirectoryIterator::fullPath()\n{\n\treturn std::string(m_path) + \"\\\\\" + std::string(m_result.cFileName);\n}\n\nvoid DirectoryIterator::next()\n{\n\tBOOL\tresult = FindNextFile(m_searchHandle, &m_result);\n\tif(!result)\n\t\tm_done = true;\n}\n"
  },
  {
    "path": "sfse_common/DirectoryIterator.h",
    "content": "#pragma once\n\n#include <string>\n#include <Windows.h>\n\nclass DirectoryIterator\n{\npublic:\n\tDirectoryIterator() = delete;\n\tDirectoryIterator(const char * path, const char * match = nullptr);\n\t~DirectoryIterator();\n\n\tWIN32_FIND_DATA *\tget()\t{ return &m_result; }\n\tvoid\t\tfullPath(char * out, size_t outLen);\n\tstd::string\tfullPath();\n\n\tvoid\tnext();\n\tbool\tdone() { return m_done; }\n\nprivate:\n\tHANDLE\t\t\tm_searchHandle;\n\tWIN32_FIND_DATA\tm_result;\n\tbool\t\t\tm_done;\n\n\tchar\tm_path[MAX_PATH];\n};\n"
  },
  {
    "path": "sfse_common/Errors.cpp",
    "content": "#include \"Errors.h\"\n#include \"Log.h\"\n#include \"Types.h\"\n#include <cstdlib>\n#include <intrin.h>\n\n[[noreturn]] static void IErrors_Halt(void)\n{\n\t__ud2();\n}\n\n/**\n *\tReport a failed assertion and exit the program\n *\t\n *\t@param file the file where the error occured\n *\t@param line the line number where the error occured\n *\t@param desc an error message\n */\n[[noreturn]] void _AssertionFailed(const char * file, unsigned long line, const char * desc)\n{\n\t_FATALERROR(\"Assertion failed in %s (%d): %s\", file, line, desc);\n\n\tIErrors_Halt();\n}\n\n/**\n *\tReport a failed assertion and exit the program\n *\t\n *\t@param file the file where the error occured\n *\t@param line the line number where the error occured\n *\t@param desc an error message\n *\t@param code the error code\n */\n[[noreturn]] void _AssertionFailed_ErrCode(const char * file, unsigned long line, const char * desc, unsigned long long code)\n{\n\tif(code & 0xFFFFFFFF00000000)\n\t\t_FATALERROR(\"Assertion failed in %s (%d): %s (code = %16I64X (%I64d))\", file, line, desc, code, code);\n\telse\n\t{\n\t\tu32\tcode32 = code;\n\t\t_FATALERROR(\"Assertion failed in %s (%d): %s (code = %08X (%d))\", file, line, desc, code32, code32);\n\t}\n\t\n\tIErrors_Halt();\n}\n\n/**\n *\tReport a failed assertion and exit the program\n *\t\n *\t@param file the file where the error occured\n *\t@param line the line number where the error occured\n *\t@param desc an error message\n *\t@param code the error code\n */\n[[noreturn]]void _AssertionFailed_ErrCode(const char * file, unsigned long line, const char * desc, const char * code)\n{\n\t_FATALERROR(\"Assertion failed in %s (%d): %s (code = %s)\", file, line, desc, code);\n\n\tIErrors_Halt();\n}\n"
  },
  {
    "path": "sfse_common/Errors.h",
    "content": "#pragma once\r\n\r\n[[noreturn]] void _AssertionFailed(const char * file, unsigned long line, const char * desc);\r\n[[noreturn]] void _AssertionFailed_ErrCode(const char * file, unsigned long line, const char * desc, unsigned long long code);\r\n[[noreturn]] void _AssertionFailed_ErrCode(const char * file, unsigned long line, const char * desc, const char * code);\r\n\r\n//! Exit the program if the condition is not true\r\n#define ASSERT(a)\t\t\t\t\tdo { if(!(a)) _AssertionFailed(__FILE__, __LINE__, #a); } while(0)\r\n//! Exit the program if the condition is not true, with an error message\r\n#define ASSERT_STR(a, b)\t\t\tdo { if(!(a)) _AssertionFailed(__FILE__, __LINE__, b); } while(0)\r\n//! Exit the program if the condition is not true, reporting an error code\r\n#define ASSERT_CODE(a, b)\t\t\tdo { if(!(a)) _AssertionFailed_ErrCode(__FILE__, __LINE__, #a, b); } while(0)\r\n//! Exit the program if the condition is not true, reporting an error code and message\r\n#define ASSERT_STR_CODE(a, b, c)\tdo { if(!(a)) _AssertionFailed_ErrCode(__FILE__, __LINE__, b, c); } while(0)\r\n//! Exit the program with an error message\r\n#define HALT(a)\t\t\t\t\t\tdo { _AssertionFailed(__FILE__, __LINE__, a); } while(0)\r\n//! Exit the program with and error code and message\r\n#define HALT_CODE(a, b)\t\t\t\tdo { _AssertionFailed_ErrCode(__FILE__, __LINE__, a, b); } while(0)\r\n\r\n// based on the boost implementation of static asserts\r\ntemplate <bool x> struct StaticAssertFailure;\r\ntemplate <> struct StaticAssertFailure <true> { enum { a = 1 }; };\r\ntemplate <int x> struct static_assert_test { };\r\n\r\n#define __MACRO_JOIN__(a, b)\t\t__MACRO_JOIN_2__(a, b)\r\n#define __MACRO_JOIN_2__(a, b)\t\t__MACRO_JOIN_3__(a, b)\r\n#define __MACRO_JOIN_3__(a, b)\t\ta##b\r\n#define __PREPRO_TOKEN_STR2__(a)\t#a\r\n#define __PREPRO_TOKEN_STR__(a)\t\t__PREPRO_TOKEN_STR2__(a)\r\n#define __LOC__\t\t\t\t\t\t__FILE__ \"(\"__PREPRO_TOKEN_STR__(__LINE__)\") : \"\r\n\r\n#define STATIC_ASSERT(a)\ttypedef static_assert_test <sizeof(StaticAssertFailure<(bool)(a)>)> __MACRO_JOIN__(static_assert_typedef_, __COUNTER__)\r\n"
  },
  {
    "path": "sfse_common/FileStream.cpp",
    "content": "#include \"FileStream.h\"\r\n#include <string>\r\n#include <direct.h>\r\n\r\nFileStream::FileStream()\r\n: m_file(nullptr)\r\n{\r\n\t//\r\n}\r\n\r\nFileStream::~FileStream()\r\n{\r\n\tclose();\r\n}\r\n\r\nbool FileStream::open(const char * path)\r\n{\r\n\treturn internalOpen(path, \"rb\");\r\n}\r\n\r\nbool FileStream::open(const wchar_t * path)\r\n{\r\n\treturn internalOpen(path, L\"rb\");\r\n}\r\n\r\nbool FileStream::create(const char * path)\r\n{\r\n\treturn internalOpen(path, \"wb\");\r\n}\r\n\r\nbool FileStream::create(const wchar_t * path)\r\n{\r\n\treturn internalOpen(path, L\"wb\");\r\n}\r\n\r\nvoid FileStream::close()\r\n{\r\n\tif (m_file)\r\n\t{\r\n\t\tfclose(m_file);\r\n\r\n\t\tm_file = nullptr;\r\n\t\tm_len = 0;\r\n\t\tm_offset = 0;\r\n\t}\r\n}\r\n\r\nvoid FileStream::flush()\r\n{\r\n\tfflush(m_file);\r\n}\r\n\r\nu64 FileStream::seek(u64 offset)\r\n{\r\n\t_fseeki64_nolock(m_file, offset, SEEK_SET);\r\n\r\n\tm_offset = offset;\r\n\r\n\treturn offset;\r\n}\r\n\r\nu64 FileStream::read(void * dst, u64 len)\r\n{\r\n\tu64 bytesRead = _fread_nolock(dst, 1, len, m_file);\r\n\r\n\tm_offset += bytesRead;\r\n\r\n\treturn bytesRead;\r\n}\r\n\r\nu64 FileStream::write(const void * src, u64 len)\r\n{\r\n\tu64 bytesWritten = _fwrite_nolock(src, 1, len, m_file);\r\n\r\n\tm_offset += bytesWritten;\r\n\r\n\treturn bytesWritten;\r\n}\r\n\r\nbool FileStream::internalOpen(const char * path, const char * mode)\r\n{\r\n\tclose();\r\n\r\n\tfopen_s(&m_file, path, mode);\r\n\tif (!m_file) return false;\r\n\r\n\tinternalSetup();\r\n\r\n\treturn true;\r\n}\r\n\r\nbool FileStream::internalOpen(const wchar_t * path, const wchar_t * mode)\r\n{\r\n\tclose();\r\n\r\n\t_wfopen_s(&m_file, path, mode);\r\n\tif (!m_file) return false;\r\n\r\n\tinternalSetup();\r\n\r\n\treturn true;\r\n}\r\n\r\nvoid FileStream::internalSetup()\r\n{\r\n\tfseek(m_file, 0, SEEK_END);\r\n\tm_len = _ftelli64_nolock(m_file);\r\n\r\n\tfseek(m_file, 0, SEEK_SET);\r\n\tm_offset = 0;\r\n}\r\n\r\nvoid FileStream::makeDirs(const char * path)\r\n{\r\n\tstd::string fullPath = path;\r\n\r\n\tfor (uint i = 1; i < fullPath.size(); i++)\r\n\t{\r\n\t\tchar data = fullPath[i];\r\n\r\n\t\tif ((data == '\\\\') || (data == '/'))\r\n\t\t{\r\n\t\t\t_mkdir(fullPath.substr(0, i).c_str());\r\n\t\t}\r\n\t}\r\n}\r\n"
  },
  {
    "path": "sfse_common/FileStream.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/DataStream.h\"\r\n#include <cstdio>\r\n\r\nclass FileStream : public DataStream\r\n{\r\npublic:\r\n\tFileStream();\r\n\tvirtual ~FileStream();\r\n\r\n\tbool open(const char * path);\r\n\tbool open(const wchar_t * path);\r\n\tbool create(const char * path);\r\n\tbool create(const wchar_t * path);\r\n\tvoid close();\r\n\r\n\tvoid flush();\r\n\r\n\t// DataStream interface\r\n\tvirtual u64 seek(u64 offset);\r\n\r\n\tvirtual u64 read(void * dst, u64 len);\r\n\tvirtual u64 write(const void * src, u64 len);\r\n\r\n\tstatic void makeDirs(const char * path);\r\n\r\nprotected:\r\n\tFILE\t* m_file;\r\n\r\n\tbool internalOpen(const char * path, const char * mode);\r\n\tbool internalOpen(const wchar_t * path, const wchar_t * mode);\r\n\tvoid internalSetup();\r\n};\r\n"
  },
  {
    "path": "sfse_common/Log.cpp",
    "content": "#include \"Log.h\"\r\n#include \"Errors.h\"\r\n#include \"FileStream.h\"\r\n#include <share.h>\r\n#include <shlobj.h>\r\n\r\nFILE * DebugLog::s_log = nullptr;\r\nDebugLog::LogLevel DebugLog::s_fileLevel = DebugLog::kLevel_DebugMessage;\r\nDebugLog::LogLevel DebugLog::s_printLevel = DebugLog::kLevel_Message;\r\nchar DebugLog::s_formatBuf[8192] = { 0 };\r\n\r\nvoid DebugLog::open(const char * path)\r\n{\r\n\ts_log = _fsopen(path, \"w\", _SH_DENYWR);\r\n}\r\n\r\nvoid DebugLog::openRelative(int folderID, const char * relPath)\r\n{\r\n\tchar\tpath[MAX_PATH];\r\n\r\n\tHRESULT err = SHGetFolderPath(NULL, folderID | CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, path);\r\n\tif(!SUCCEEDED(err))\r\n\t{\r\n\t\t_FATALERROR(\"Your virus scanner is blocking access to your My Documents folder. SHGetFolderPath %08X failed (result = %08X lasterr = %08X)\", folderID, err, GetLastError());\r\n\t}\r\n\tASSERT_CODE(SUCCEEDED(err), err);\r\n\r\n\tstrcat_s(path, sizeof(path), relPath);\r\n\r\n\tFileStream::makeDirs(path);\r\n\r\n\topen(path);\r\n}\r\n\r\nvoid DebugLog::log(LogLevel level, const char * fmt, va_list args)\r\n{\r\n\tbool\ttoFile = (level <= s_fileLevel);\r\n\tbool\ttoConsole = (level <= s_printLevel);\r\n\r\n\tstatic FILE * s_stdout = nullptr;\r\n\r\n\tif(toFile || toConsole)\r\n\t{\r\n\t\tvsprintf_s(s_formatBuf, sizeof(s_formatBuf), fmt, args);\r\n\t\tstrcat_s(s_formatBuf, sizeof(s_formatBuf), \"\\n\");\r\n\t}\r\n\r\n\tif(toFile && s_log)\r\n\t\tfputs(s_formatBuf, s_log);\r\n\r\n\tif(toConsole)\r\n\t{\r\n\t\tif(!s_stdout)\r\n\t\t\ts_stdout = stdout;\r\n\r\n\t\tif(s_stdout)\r\n\t\t\tfputs(s_formatBuf, s_stdout);\r\n\t}\r\n}\r\n\r\nvoid DebugLog::flush()\r\n{\r\n\tif(s_log)\r\n\t\tfflush(s_log);\r\n}\r\n"
  },
  {
    "path": "sfse_common/Log.h",
    "content": "#pragma once\r\n\r\n#include <cstdarg>\r\n#include <cstdio>\r\n\r\nclass DebugLog\r\n{\r\npublic:\r\n\tstatic void open(const char * path);\r\n\tstatic void openRelative(int folderID, const char * relPath);\r\n\r\n\tenum LogLevel\r\n\t{\r\n\t\tkLevel_FatalError = 0,\r\n\t\tkLevel_Error,\r\n\t\tkLevel_Warning,\r\n\t\tkLevel_Message,\r\n\t\tkLevel_VerboseMessage,\r\n\t\tkLevel_DebugMessage\r\n\t};\r\n\r\n\tstatic void log(LogLevel level, const char * fmt, va_list args);\r\n\r\n\tstatic void flush();\r\n\r\nprivate:\r\n\tstatic FILE * s_log;\r\n\r\n\tstatic LogLevel s_fileLevel;\r\n\tstatic LogLevel s_printLevel;\r\n\r\n\tstatic char s_formatBuf[8192];\r\n};\r\n\r\ninline void _FATALERROR(const char * fmt, ...)\r\n{\r\n\tva_list args;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_FatalError, fmt, args);\r\n\tva_end(args);\r\n}\r\n\r\ninline void _ERROR(const char * fmt, ...)\r\n{\r\n\tva_list args;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_Error, fmt, args);\r\n\tva_end(args);\r\n}\r\n\r\ninline void _WARNING(const char * fmt, ...)\r\n{\r\n\tva_list args;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_Warning, fmt, args);\r\n\tva_end(args);\r\n}\r\n\r\ninline void _MESSAGE(const char * fmt, ...)\r\n{\r\n\tva_list args;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_Message, fmt, args);\r\n\tva_end(args);\r\n}\r\n\r\ninline void _VMESSAGE(const char * fmt, ...)\r\n{\r\n\tva_list args;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_VerboseMessage, fmt, args);\r\n\tva_end(args);\r\n}\r\n\r\ninline void _DMESSAGE(const char * fmt, ...)\r\n{\r\n\tva_list args;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_DebugMessage, fmt, args);\r\n\tva_end(args);\r\n}\r\n"
  },
  {
    "path": "sfse_common/Relocation.cpp",
    "content": "#include \"Relocation.h\"\r\n#include <Windows.h>\r\n\r\n// the goal of this file is to support pointers in to a relocated binary with as little runtime overhead, code bloat, and hassle as possible\r\n// \r\n// since the main executable will always be loaded before the dll, the easiest solution is to perform the relocation in the constructor of\r\n// a pointer class that supports conversion to T*. however, since we can't control anything about initialization order, each constructor\r\n// must call GetModuleHandle(NULL) locally, which sucks. each pointer will need an entry in the static init table, and nothing can be done\r\n// with the pointers in any other static constructors.\r\n// \r\n// one solution to this problem is init_seg(lib). any objects constructed in a file containing this pragma will be constructed before standard\r\n// 'user' level code. this means we can use the constructor of that object to call GetModuleHandle once and initialize a global with the load\r\n// address, which the pointer class constructor then references to fix up the addresses. this still creates an entry in the static init table\r\n// for each pointer, but only calls GetModuleHandle once. pointers are not fixed up until all static init has finished, so other static ctors\r\n// can't safely use pointers.\r\n// \r\n// the problem can't be solved further without moving the RelocPtr constructors in to init_seg(lib), which doesn't appear to be possible\r\n// without forcing all pointers to be defined in a file with init_seg(lib). that is really ugly and doesn't seem like a good idea.\r\n\r\n// anything in this file will initialized after the crt but before any user code\r\n#pragma warning(disable: 4073)\t// yes this is intentional\r\n#pragma init_seg(lib)\r\n\r\nstatic RelocationManager s_relocMgr;\r\n\r\nuintptr_t RelocationManager::s_baseAddr = 0;\r\n\r\nRelocationManager::RelocationManager()\r\n{\r\n\ts_baseAddr = reinterpret_cast<uintptr_t>(GetModuleHandle(NULL));\r\n}\r\n"
  },
  {
    "path": "sfse_common/Relocation.h",
    "content": "#pragma once\r\n\r\n#include <cstdint>\r\n\r\nclass RelocationManager\r\n{\r\npublic:\r\n\tRelocationManager();\r\n\r\n\tstatic uintptr_t\ts_baseAddr;\r\n};\r\n\r\n// use this for addresses that represent pointers to a type T\r\ntemplate <typename T>\r\nclass RelocPtr\r\n{\r\npublic:\r\n\tRelocPtr(uintptr_t offset)\r\n\t\t:m_offset(offset + RelocationManager::s_baseAddr)\r\n\t{\r\n\t\t//\r\n\t}\r\n\r\n\toperator T *() const\r\n\t{\r\n\t\treturn getPtr();\r\n\t}\r\n\r\n\tT * operator->() const\r\n\t{\r\n\t\treturn getPtr();\r\n\t}\r\n\r\n\tT * getPtr() const\r\n\t{\r\n\t\treturn reinterpret_cast <T *>(m_offset);\r\n\t}\r\n\r\n\tconst T * getConst() const\r\n\t{\r\n\t\treturn reinterpret_cast <T *>(m_offset);\r\n\t}\r\n\r\n\tuintptr_t getUIntPtr() const\r\n\t{\r\n\t\treturn m_offset;\r\n\t}\r\n\r\nprivate:\r\n\tuintptr_t\tm_offset;\r\n\r\n\t// hide\r\n\tRelocPtr() = delete;\r\n\tRelocPtr(RelocPtr & rhs) = delete;\r\n\tRelocPtr & operator=(RelocPtr & rhs) = delete;\r\n};\r\n\r\n// use this for direct addresses to types T. needed to avoid ambiguity\r\ntemplate <typename T>\r\nclass RelocAddr\r\n{\r\npublic:\r\n\tRelocAddr(uintptr_t offset)\r\n\t\t:m_offset(reinterpret_cast <BlockConversionType *>(offset + RelocationManager::s_baseAddr))\r\n\t{\r\n\t\t//\r\n\t}\r\n\r\n\toperator T()\r\n\t{\r\n\t\treturn reinterpret_cast <T>(m_offset);\r\n\t}\r\n\r\n\tuintptr_t getUIntPtr() const\r\n\t{\r\n\t\treturn reinterpret_cast <uintptr_t>(m_offset);\r\n\t}\r\n\r\nprivate:\r\n\t// apparently you can't reinterpret_cast from a type to the same type\r\n\t// that's kind of stupid and makes it impossible to use this for uintptr_ts if I use the same type\r\n\t// so we make a new type by storing the data in a pointer to this useless struct\r\n\t// at least this is hidden by a wrapper\r\n\tstruct BlockConversionType { };\r\n\tBlockConversionType * m_offset;\r\n\r\n\t// hide\r\n\tRelocAddr() = delete;\r\n\tRelocAddr(RelocAddr & rhs) = delete;\r\n\tRelocAddr & operator=(RelocAddr & rhs) = delete;\r\n};\r\n"
  },
  {
    "path": "sfse_common/SafeWrite.cpp",
    "content": "#include \"SafeWrite.h\"\r\n#include <Windows.h>\r\n#include \"sfse_common/Errors.h\"\r\n\r\nvoid safeWriteBuf(uintptr_t addr, void * data, size_t len)\r\n{\r\n\tDWORD oldProtect;\r\n\r\n\tVirtualProtect((void *)addr, len, PAGE_EXECUTE_READWRITE, &oldProtect);\r\n\tmemcpy((void *)addr, data, len);\r\n\tVirtualProtect((void *)addr, len, oldProtect, &oldProtect);\r\n}\r\n\r\nvoid safeWrite8(uintptr_t addr, u8 data)\r\n{\r\n\tsafeWriteBuf(addr, &data, sizeof(data));\r\n}\r\n\r\nvoid safeWrite16(uintptr_t addr, u16 data)\r\n{\r\n\tsafeWriteBuf(addr, &data, sizeof(data));\r\n}\r\n\r\nvoid safeWrite32(uintptr_t addr, u32 data)\r\n{\r\n\tsafeWriteBuf(addr, &data, sizeof(data));\r\n}\r\n\r\nvoid safeWrite64(uintptr_t addr, u64 data)\r\n{\r\n\tsafeWriteBuf(addr, &data, sizeof(data));\r\n}\r\n\r\nstatic bool safeWriteJump_Internal(uintptr_t src, uintptr_t dst, u8 op)\r\n{\r\n#pragma pack(push, 1)\r\n\tstruct Code\r\n\t{\r\n\t\tu8\top;\r\n\t\ts32\tdispl;\r\n\t};\r\n#pragma pack(pop)\r\n\r\n\tSTATIC_ASSERT(sizeof(Code) == 5);\r\n\r\n\tptrdiff_t delta = dst - (src + sizeof(Code));\r\n\tif((delta < INT_MIN) || (delta > INT_MAX))\r\n\t\treturn false;\r\n\r\n\tCode code;\r\n\r\n\tcode.op = op;\r\n\tcode.displ = delta;\r\n\r\n\tsafeWriteBuf(src, &code, sizeof(code));\r\n\r\n\treturn true;\r\n}\r\n\r\nbool safeWriteJump(uintptr_t src, uintptr_t dst)\r\n{\r\n\treturn safeWriteJump_Internal(src, dst, 0xE9);\r\n}\r\n\r\nbool safeWriteCall(uintptr_t src, uintptr_t dst)\r\n{\r\n\treturn safeWriteJump_Internal(src, dst, 0xE8);\r\n}\r\n"
  },
  {
    "path": "sfse_common/SafeWrite.h",
    "content": "#pragma once\r\n\r\n#include <cstdint>\r\n#include \"sfse_common/Types.h\"\r\n\r\nvoid safeWriteBuf(uintptr_t addr, void * data, size_t len);\r\nvoid safeWrite8(uintptr_t addr, u8 data);\r\nvoid safeWrite16(uintptr_t addr, u16 data);\r\nvoid safeWrite32(uintptr_t addr, u32 data);\r\nvoid safeWrite64(uintptr_t addr, u64 data);\r\n\r\n// ### warning: if you try to branch more than +/- 2GB with these, they will fail and return false\r\n// ### this is a limitation of the 'jmp' instruction and more generally the x64 ISA\r\n// 5 bytes written to src\r\nbool safeWriteJump(uintptr_t src, uintptr_t dst);\r\nbool safeWriteCall(uintptr_t src, uintptr_t dst);\r\n"
  },
  {
    "path": "sfse_common/Types.h",
    "content": "#pragma once\r\n\r\n#include <intrin.h>\r\n\r\ntypedef unsigned __int8\t\tu8;\r\ntypedef unsigned __int16\tu16;\r\ntypedef unsigned __int32\tu32;\r\ntypedef unsigned __int64\tu64;\r\ntypedef signed __int8\t\ts8;\r\ntypedef signed __int16\t\ts16;\r\ntypedef signed __int32\t\ts32;\r\ntypedef signed __int64\t\ts64;\r\ntypedef float\t\t\t\tf32;\r\ntypedef double\t\t\t\tf64;\r\ntypedef u64\t\t\t\t\tuint;\r\n\r\ntypedef u8\tunk8;\r\ntypedef u16\tunk16;\r\ntypedef u32\tunk32;\r\ntypedef u64\tunk64;\r\n\r\ninline u16 swap16(u16 a)\r\n{\r\n\treturn _byteswap_ushort(a);\r\n}\r\n\r\ninline u32 swap32(u32 a)\r\n{\r\n\treturn _byteswap_ulong(a);\r\n}\r\n\r\ninline u64 swap64(u64 a)\r\n{\r\n\treturn _byteswap_uint64(a);\r\n}\r\n"
  },
  {
    "path": "sfse_common/Utilities.cpp",
    "content": "#include \"Utilities.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/Errors.h\"\r\n#include <string>\r\n#include <Windows.h>\r\n\r\nstd::string getRuntimePath()\r\n{\r\n\tstatic char\tappPath[4096] = { 0 };\r\n\r\n\tif(appPath[0])\r\n\t\treturn appPath;\r\n\r\n\tASSERT(GetModuleFileName(GetModuleHandle(NULL), appPath, sizeof(appPath)));\r\n\r\n\treturn appPath;\r\n}\r\n\r\nstd::string getRuntimeName()\r\n{\r\n\tstd::string appPath = getRuntimePath();\r\n\r\n\tstd::string::size_type slashOffset = appPath.rfind('\\\\');\r\n\tif(slashOffset == std::string::npos)\r\n\t\treturn appPath;\r\n\r\n\treturn appPath.substr(slashOffset + 1);\r\n}\r\n\r\nconst std::string & getRuntimeDirectory()\r\n{\r\n\tstatic std::string s_runtimeDirectory;\r\n\r\n\tif(s_runtimeDirectory.empty())\r\n\t{\r\n\t\tstd::string\truntimePath = getRuntimePath();\r\n\r\n\t\t// truncate at last slash\r\n\t\tstd::string::size_type\tlastSlash = runtimePath.rfind('\\\\');\r\n\t\tif(lastSlash != std::string::npos)\t// if we don't find a slash something is VERY WRONG\r\n\t\t{\r\n\t\t\ts_runtimeDirectory = runtimePath.substr(0, lastSlash + 1);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_WARNING(\"no slash in runtime path? (%s)\", runtimePath.c_str());\r\n\t\t}\r\n\t}\r\n\r\n\treturn s_runtimeDirectory;\r\n}\r\n\r\nconst std::string & getConfigPath()\r\n{\r\n\tstatic std::string s_configPath;\r\n\r\n\tif(s_configPath.empty())\r\n\t{\r\n\t\tstd::string\truntimePath = getRuntimeDirectory();\r\n\t\tif(!runtimePath.empty())\r\n\t\t{\r\n\t\t\ts_configPath = runtimePath + \"Data\\\\SFSE\\\\sfse.ini\";\r\n\r\n\t\t\t_MESSAGE(\"config path = %s\", s_configPath.c_str());\r\n\t\t}\r\n\t}\r\n\r\n\treturn s_configPath;\r\n}\r\n\r\nstd::string getConfigOption(const char * section, const char * key)\r\n{\r\n\tstd::string\tresult;\r\n\r\n\tconst std::string & configPath = getConfigPath();\r\n\tif(!configPath.empty())\r\n\t{\r\n\t\tchar\tresultBuf[256];\r\n\t\tresultBuf[0] = 0;\r\n\r\n\t\tu32\tresultLen = GetPrivateProfileString(section, key, NULL, resultBuf, sizeof(resultBuf), configPath.c_str());\r\n\r\n\t\tresult = resultBuf;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nbool getConfigOption_u32(const char * section, const char * key, u32 * dataOut)\r\n{\r\n\tstd::string\tdata = getConfigOption(section, key);\r\n\tif(data.empty())\r\n\t\treturn false;\r\n\r\n\treturn (sscanf_s(data.c_str(), \"%u\", dataOut) == 1);\r\n}\r\n\r\nconst std::string & getOSInfoStr()\r\n{\r\n\tstatic std::string\tresult;\r\n\r\n\tif(result.empty())\r\n\t{\r\n\t\tOSVERSIONINFO\tinfo;\r\n\r\n\t\tinfo.dwOSVersionInfoSize = sizeof(info);\r\n\r\n#pragma warning (disable : 4996)\r\n\t\tif(GetVersionEx(&info))\r\n\t\t{\r\n\t\t\tchar\tbuf[256];\r\n\r\n\t\t\tsprintf_s(buf, sizeof(buf), \"%d.%d (%d)\", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber);\r\n\r\n\t\t\tresult = buf;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tresult = \"unknown\";\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nvoid * getIATAddr(void * module, const char * searchDllName, const char * searchImportName)\r\n{\r\n\tu8\t\t\t\t\t\t* base = (u8 *)module;\r\n\tIMAGE_DOS_HEADER\t\t* dosHeader = (IMAGE_DOS_HEADER *)base;\r\n\tIMAGE_NT_HEADERS\t\t* ntHeader = (IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew);\r\n\tIMAGE_IMPORT_DESCRIPTOR\t* importTable =\r\n\t\t(IMAGE_IMPORT_DESCRIPTOR *)(base + ntHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);\r\n\r\n\tfor(; importTable->Characteristics; ++importTable)\r\n\t{\r\n\t\tconst char\t* dllName = (const char *)(base + importTable->Name);\r\n\r\n\t\tif(!_stricmp(dllName, searchDllName))\r\n\t\t{\r\n\t\t\t// found the dll\r\n\r\n\t\t\tIMAGE_THUNK_DATA\t* thunkData = (IMAGE_THUNK_DATA *)(base + importTable->OriginalFirstThunk);\r\n\t\t\tuintptr_t\t\t\t* iat = (uintptr_t *)(base + importTable->FirstThunk);\r\n\r\n\t\t\tfor(; thunkData->u1.Ordinal; ++thunkData, ++iat)\r\n\t\t\t{\r\n\t\t\t\tif(!IMAGE_SNAP_BY_ORDINAL(thunkData->u1.Ordinal))\r\n\t\t\t\t{\r\n\t\t\t\t\tIMAGE_IMPORT_BY_NAME\t* importInfo = (IMAGE_IMPORT_BY_NAME *)(base + thunkData->u1.AddressOfData);\r\n\r\n\t\t\t\t\tif(!_stricmp((char *)importInfo->Name, searchImportName))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t// found the import\r\n\t\t\t\t\t\treturn iat;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn NULL;\r\n\t\t}\r\n\t}\r\n\r\n\treturn NULL;\r\n}\r\n\r\nconst void * getResourceLibraryProcAddress(const void * module, const char * exportName)\r\n{\r\n\tauto * base = (const u8 *)(uintptr_t(module) & ~3);\r\n\tauto * dosHeader = (const IMAGE_DOS_HEADER *)base;\r\n\tauto * ntHeader = (const IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew);\r\n\tauto * exportTable =\r\n\t\t(const IMAGE_EXPORT_DIRECTORY *)(base + ntHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);\r\n\r\n\tauto * exportAddresses = (const u32 *)(base + exportTable->AddressOfFunctions);\t// RVA array\r\n\tauto * exportNameOrdinals = (const u16 *)(base + exportTable->AddressOfNameOrdinals);\t// index in to exportAddresses\r\n\tauto * exportNames = (const u32 *)(base + exportTable->AddressOfNames);\t// RVA array\r\n\r\n\tconst void * result = nullptr;\r\n\r\n\tfor(u32 i = 0; i < exportTable->NumberOfNames; i++)\r\n\t{\r\n\t\tu32 nameRVA = exportNames[i];\r\n\t\tauto * name = (const char *)(base + nameRVA);\r\n\r\n\t\tif(!strcmp(exportName, name))\r\n\t\t{\r\n\t\t\tu32 addrIdx = exportNameOrdinals[i];\r\n\t\t\tif(addrIdx < exportTable->NumberOfFunctions)\r\n\t\t\t{\r\n\t\t\t\tu32 addrRVA = exportAddresses[addrIdx];\r\n\t\t\t\tresult = (const void *)(base + addrRVA);\r\n\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nbool is64BitDLL(const void * module)\r\n{\r\n\tauto * base = (const u8 *)(uintptr_t(module) & ~3);\r\n\tauto * dosHeader = (const IMAGE_DOS_HEADER *)base;\r\n\tauto * ntHeader = (const IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew);\r\n\r\n\t// FileHeader is PE32/64 independent\r\n\treturn ntHeader->FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64;\r\n}\r\n\r\n#pragma warning (push)\r\n#pragma warning (disable : 4200)\r\nstruct RTTIType\r\n{\r\n\tvoid\t* typeInfo;\r\n\tu64\t\tdata;\r\n\tchar\tname[0];\r\n};\r\n\r\nstruct RTTILocator\r\n{\r\n\tu32\t\tsig, offset, cdOffset;\r\n\tu32\t\ttypeDesc;\r\n\tu32\t\tclassDesc;\r\n};\r\n#pragma warning (pop)\r\n\r\n// use the RTTI information to return an object's class name\r\nconst char * getObjectClassName(void * objBase)\r\n{\r\n\tconst char\t* result = \"<no rtti>\";\r\n\t__try\r\n\t{\r\n\t\tvoid\t\t** obj = (void **)objBase;\r\n\t\tRTTILocator\t** vtbl = (RTTILocator **)obj[0];\r\n\t\tRTTILocator\t* rtti = vtbl[-1];\r\n\t\tu64 typeDesc = rtti->typeDesc;\r\n\t\tRelocPtr<RTTIType> type(typeDesc);\r\n\r\n\t\t// starts with ,?\r\n\t\tif((type->name[0] == '.') && (type->name[1] == '?'))\r\n\t\t{\r\n\t\t\t// is at most 100 chars long\r\n\t\t\tfor(u32 i = 0; i < 100; i++)\r\n\t\t\t{\r\n\t\t\t\tif(type->name[i] == 0)\r\n\t\t\t\t{\r\n\t\t\t\t\t// remove the .?AV\r\n\t\t\t\t\tresult = type->name + 4;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t__except(EXCEPTION_EXECUTE_HANDLER)\r\n\t{\r\n\t\t// return the default\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n"
  },
  {
    "path": "sfse_common/Utilities.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/Types.h\"\r\n#include \"sfse_common/Relocation.h\"\r\n#include <string>\r\n\r\n// this has been tested to work for non-varargs functions\r\n// varargs functions end up with 'this' passed as the last parameter (ie. probably broken)\r\n// do NOT use with classes that have multiple inheritance\r\n\r\n// if many member functions are to be declared, use MEMBER_FN_PREFIX to create a type with a known name\r\n// so it doesn't need to be restated throughout the member list\r\n\r\n// all of the weirdness with the _GetType function is because you can't declare a static const pointer\r\n// inside the class definition. we sadly can't inline anymore because of relocation.\r\n\r\n// RelocPtr only works at a global scope, which we can't handle or we'd be bypassing the function route altogether\r\n\r\n#define MEMBER_FN_PREFIX(className)\t\\\r\n\ttypedef className _MEMBER_FN_BASE_TYPE\r\n\r\n#define DEFINE_MEMBER_FN_LONG(className, functionName, retnType, address, ...)\t\t\\\r\n\ttypedef retnType (className::* _##functionName##_type)(__VA_ARGS__);\t\t\t\\\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t functionName##_Address = address;\t\t\t\t\t\\\r\n\tinline _##functionName##_type * _##functionName##_GetPtr(void)\t\t\t\t\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\tstatic uintptr_t _address;\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\t_address = address + RelocationManager::s_baseAddr;\t\t\t\t\t\t\t\\\r\n\t\treturn (_##functionName##_type *)&_address;\t\t\t\t\t\t\t\t\t\\\r\n\t}\r\n\r\n#define DEFINE_MEMBER_FN(functionName, retnType, address, ...)\t\\\r\n\tDEFINE_MEMBER_FN_LONG(_MEMBER_FN_BASE_TYPE, functionName, retnType, address, __VA_ARGS__)\r\n\r\n#define DEFINE_STATIC_HEAP(staticAllocate, staticFree)\t\t\t\t\t\t\\\r\n\tstatic void * operator new(std::size_t size)\t\t\t\t\t\t\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\treturn staticAllocate(size);\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic void * operator new(std::size_t size, const std::nothrow_t &)\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\treturn staticAllocate(size);\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic void * operator new(std::size_t size, void * ptr)\t\t\t\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\treturn ptr;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic void operator delete(void * ptr)\t\t\t\t\t\t\t\t\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\tstaticFree(ptr);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic void operator delete(void * ptr, const std::nothrow_t &)\t\t\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t\tstaticFree(ptr);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic void operator delete(void *, void *)\t\t\t\t\t\t\t\t\\\r\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\r\n\r\n#define CALL_MEMBER_FN(obj, fn)\t\\\r\n\t((*(obj)).*(*((obj)->_##fn##_GetPtr())))\r\n\r\n// Using the original implementation does very broken things in a Release build\r\n#define FORCE_INLINE  __forceinline\r\n#define DEFINE_MEMBER_FN_0(fnName, retnType, addr)\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\\\r\n\tFORCE_INLINE retnType fnName() {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)();\t\t\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)();\t\t\t\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_1(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1) {\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address =  fnName##_Address + RelocationManager::s_baseAddr;\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1);\t\t\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_2(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2) {\t\t\t\t\t\t\t\t\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2);\t\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_3(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3>\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3) {\t\t\t\t\t\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3);\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_4(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4>\t\t\t\t\t\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4) {\t\t\t\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4);\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_5(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4, typename T5>\t\t\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4, T5 && t5) {\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4, t5);\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_6(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4, T5 && t5, T6 && t6) {\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4, t5, t6);\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_7(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>\t\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4, T5 && t5, T6 && t6, T7 && t7) {\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\t\t\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4, t5, t6, t7);\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_8(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4, T5 && t5, T6 && t6, T7 && t7, T8 && t8) {\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\t\t\t\t\t\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4, t5, t6, t7, t8);\t\t\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_9(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4, T5 && t5, T6 && t6, T7 && t7, T8 && t8, T9 && t9) {\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4, t5, t6, t7, t8, t9);\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\r\n#define DEFINE_MEMBER_FN_10(fnName, retnType, addr, ...)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tstatic const std::uintptr_t fnName##_Address = addr;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttemplate<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>\t\\\r\n\tFORCE_INLINE retnType fnName(T1 && t1, T2 && t2, T3 && t3, T4 && t4, T5 && t5, T6 && t6, T7 && t7, T8 && t8, T9 && t9, T10 && t10) {\t\t\\\r\n\tstruct empty_struct {};\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\ttypedef retnType(empty_struct::*_##fnName##_type)(__VA_ARGS__);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\tconst static uintptr_t address = fnName##_Address + RelocationManager::s_baseAddr;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t_##fnName##_type fn = *(_##fnName##_type*)&address;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\treturn (reinterpret_cast<empty_struct*>(this)->*fn)(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);\t\t\t\t\t\t\t\t\t\t\t\t\\\r\n\t}\r\n\r\n// this is the solution to getting a pointer-to-member-function pointer\r\ntemplate <typename T>\r\nuintptr_t getFnAddr(T src)\r\n{\r\n\tunion\r\n\t{\r\n\t\tuintptr_t\tu;\r\n\t\tT\t\t\tt;\r\n\t} data;\r\n\r\n\tdata.t = src;\r\n\r\n\treturn data.u;\r\n}\r\n\r\nstd::string getRuntimePath();\r\nstd::string getRuntimeName();\r\nconst std::string & getRuntimeDirectory();\r\n\r\nconst std::string & getConfigPath();\r\nstd::string getConfigOption(const char * section, const char * key);\r\nbool getConfigOption_u32(const char * section, const char * key, u32 * dataOut);\r\n\r\nconst std::string & getOSInfoStr();\r\n\r\nvoid * getIATAddr(void * module, const char * searchDllName, const char * searchImportName);\r\nconst void * getResourceLibraryProcAddress(const void * module, const char * exportName);\r\nbool is64BitDLL(const void * module);\r\n\r\nconst char * getObjectClassName(void * objBase);\r\n"
  },
  {
    "path": "sfse_common/cmake/config.cmake.in",
    "content": "include(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "sfse_common/sfse_version.h",
    "content": "#ifndef __SFSE_VERSION_H__\r\n#define __SFSE_VERSION_H__\r\n\r\n// these have to be macros so they can be used in the .rc\r\n#define SFSE_VERSION_INTEGER\t\t0\r\n#define SFSE_VERSION_INTEGER_MINOR\t2\r\n#define SFSE_VERSION_INTEGER_BETA\t19\r\n#define SFSE_VERSION_VERSTRING\t\t\"0, 0, 2, 19\"\r\n#define SFSE_VERSION_PADDEDSTRING\t\"0001\"\r\n#define SFSE_VERSION_RELEASEIDX\t\t25\r\n\r\n#define MAKE_EXE_VERSION_EX(major, minor, build, sub)\t((((major) & 0xFF) << 24) | (((minor) & 0xFF) << 16) | (((build) & 0xFFF) << 4) | ((sub) & 0xF))\r\n#define MAKE_EXE_VERSION(major, minor, build)\t\t\tMAKE_EXE_VERSION_EX(major, minor, build, 0)\r\n\r\n#define GET_EXE_VERSION_MAJOR(a)\t(((a) & 0xFF000000) >> 24)\r\n#define GET_EXE_VERSION_MINOR(a)\t(((a) & 0x00FF0000) >> 16)\r\n#define GET_EXE_VERSION_BUILD(a)\t(((a) & 0x0000FFF0) >> 4)\r\n#define GET_EXE_VERSION_SUB(a)\t\t(((a) & 0x0000000F) >> 0)\r\n\r\n#define RUNTIME_TYPE_BETHESDA\t0\r\n#define RUNTIME_TYPE_GOG\t\t1\r\n#define\tRUNTIME_TYPE_EPIC\t\t2\r\n#define\tRUNTIME_TYPE_MSSTORE\t3\r\n\r\n#define RUNTIME_VERSION_0_0_3\t\tMAKE_EXE_VERSION(0, 0, 3)\t\t// 0x00000030\tms store early versions (no one has these)\r\n#define RUNTIME_VERSION_1_0_17\t\tMAKE_EXE_VERSION(1, 0, 17)\t\t// 0x01000110\tms store early versions (no one has these)\r\n#define RUNTIME_VERSION_1_2_20\t\tMAKE_EXE_VERSION(1, 2, 20)\t\t// 0x01020140\tms store early versions (no one has these)\r\n#define RUNTIME_VERSION_1_6_35\t\tMAKE_EXE_VERSION(1, 6, 35)\t\t// 0x01060230\tversion reported by ms store before release (no one has these)\r\n#define RUNTIME_VERSION_1_7_23\t\tMAKE_EXE_VERSION(1, 7, 23)\t\t// 0x01070170\tearly access/wide release patch\r\n#define RUNTIME_VERSION_1_7_29\t\tMAKE_EXE_VERSION(1, 7, 29)\t\t// 0x010701D0\r\n#define RUNTIME_VERSION_1_7_33\t\tMAKE_EXE_VERSION(1, 7, 33)\t\t// 0x01070210\r\n#define RUNTIME_VERSION_1_7_36\t\tMAKE_EXE_VERSION(1, 7, 36)\t\t// 0x01070240\r\n#define RUNTIME_VERSION_1_8_83\t\tMAKE_EXE_VERSION(1, 8, 83)\t\t// 0x01080530\tbeta\r\n#define RUNTIME_VERSION_1_8_84\t\tMAKE_EXE_VERSION(1, 8, 84)\t\t// 0x01080540\tbeta\r\n#define RUNTIME_VERSION_1_8_86\t\tMAKE_EXE_VERSION(1, 8, 86)\t\t// 0x01080560\tbeta released to main branch\r\n#define RUNTIME_VERSION_1_8_87\t\tMAKE_EXE_VERSION(1, 8, 87)\t\t// 0x01080570\tbeta\r\n#define RUNTIME_VERSION_1_8_88\t\tMAKE_EXE_VERSION(1, 8, 88)\t\t// 0x01080580\t(very) small patch\r\n#define RUNTIME_VERSION_1_9_51\t\tMAKE_EXE_VERSION(1, 9, 51)\t\t// 0x01090330\r\n#define RUNTIME_VERSION_1_9_67\t\tMAKE_EXE_VERSION(1, 9, 67)\t\t// 0x01090430\tbeta released to main branch\r\n#define RUNTIME_VERSION_1_9_71\t\tMAKE_EXE_VERSION(1, 9, 71)\t\t// 0x01090470\thotfix\r\n#define RUNTIME_VERSION_1_10_30\t\tMAKE_EXE_VERSION(1, 10, 30)\t\t// 0x010A01E0\tbeta\r\n#define RUNTIME_VERSION_1_10_31\t\tMAKE_EXE_VERSION(1, 10, 31)\t\t// 0x010A01F0\t\r\n#define RUNTIME_VERSION_1_10_32\t\tMAKE_EXE_VERSION(1, 10, 32)\t\t// 0x010A0200\thotfix\r\n#define RUNTIME_VERSION_1_11_33\t\tMAKE_EXE_VERSION(1, 11, 33)\t\t// 0x010B0210\tbeta\r\n#define RUNTIME_VERSION_1_11_36\t\tMAKE_EXE_VERSION(1, 11, 36)\t\t// 0x010B0240\t\r\n#define RUNTIME_VERSION_1_12_30\t\tMAKE_EXE_VERSION(1, 12, 30)\t\t// 0x010C01E0\teditor released\r\n#define RUNTIME_VERSION_1_12_32\t\tMAKE_EXE_VERSION(1, 12, 32)\t\t// 0x010C0200\thotfix\r\n#define RUNTIME_VERSION_1_12_36\t\tMAKE_EXE_VERSION(1, 12, 36)\t\t// 0x010C0240\r\n#define RUNTIME_VERSION_1_13_61\t\tMAKE_EXE_VERSION(1, 13, 61)\t\t// 0x010D03D0\tcar\r\n#define RUNTIME_VERSION_1_14_70\t\tMAKE_EXE_VERSION(1, 14, 70)\t\t// 0x010E0460\txp1\r\n#define RUNTIME_VERSION_1_14_74\t\tMAKE_EXE_VERSION(1, 14, 74)\t\t// 0x010E04A0\tbeta released to main branch\r\n#define RUNTIME_VERSION_1_15_214\tMAKE_EXE_VERSION(1, 15, 214)\t// 0x010F0D60\tbeta\r\n#define RUNTIME_VERSION_1_15_215\tMAKE_EXE_VERSION(1, 15, 215)\t// 0x010F0D70\tbeta\r\n#define RUNTIME_VERSION_1_15_216\tMAKE_EXE_VERSION(1, 15, 216)\t// 0x010F0D80\tinlining options changed\r\n#define RUNTIME_VERSION_1_15_222\tMAKE_EXE_VERSION(1, 15, 222)\t// 0x010F0DE0\tbeta released to main branch\r\n#define RUNTIME_VERSION_1_16_236\tMAKE_EXE_VERSION(1, 16, 236)\t// 0x01100EC0\tbeta\r\n\r\n#define PACKED_SFSE_VERSION\t\tMAKE_EXE_VERSION(SFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA)\r\n\r\n// information about the state of the game at the time of release\r\n#define SFSE_TARGETING_BETA_VERSION\t0\r\n#define CURRENT_RELEASE_RUNTIME\t\tRUNTIME_VERSION_1_16_236\r\n#define CURRENT_RELEASE_SFSE_STR\t\"0.2.19\"\r\n\r\n#if GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_BETHESDA\r\n#define SAVE_FOLDER_NAME \"Starfield\"\r\n#elif GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_GOG\r\n#define SAVE_FOLDER_NAME \"Starfield GOG\"\r\n#elif GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_EPIC\r\n#define SAVE_FOLDER_NAME \"Starfield EPIC\"\r\n#elif GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_MSSTORE\r\n#define SAVE_FOLDER_NAME \"Starfield MS\"\r\n#else\r\n#error unknown runtime type\r\n#endif\r\n\r\n#define LOADER_VERSION_1_0_0\tMAKE_EXE_VERSION(1, 0, 0)\r\n#define LOADER_VERSION_1_1_0\tMAKE_EXE_VERSION(1, 1, 0)\t// code signing\r\n#define LOADER_VERSION_1_1_1\tMAKE_EXE_VERSION(1, 1, 1)\t// code signing bugfix\r\n#define LOADER_VERSION\t\t\tLOADER_VERSION_1_1_1\r\n\r\n#endif /* __SFSE_VERSION_H__ */\r\n"
  },
  {
    "path": "sfse_loader/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake)\n\nproject(\n\tsfse_loader\n\tVERSION 1.1.1\n\tLANGUAGES CXX\n)\n\n# ---- Include guards ----\n\nif(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)\n\tmessage(\n\t\tFATAL_ERROR\n\t\t\t\"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there.\"\n)\nendif()\n\n# ---- Build options ----\n\nset(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)\nset(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF)\n\n# ---- Dependencies ----\n\nif (NOT TARGET sfse_common)\n\tadd_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../sfse_common sfse_common)\t# bundled\nendif()\n\n# ---- Add source files ----\n\nfile(GLOB headers CONFIGURE_DEPENDS *.h)\nfile(GLOB sources CONFIGURE_DEPENDS *.cpp)\n\nsource_group(\n\t${PROJECT_NAME}\n\tFILES\n\t\t${headers}\n\t\t${sources}\n\t\tsfse_loader_version.rc\n\t\tsfse_loader.manifest\n)\n\n# ---- Create library ----\n\nadd_executable(\n\t${PROJECT_NAME}\n\t${headers}\n\t${sources}\n\tsfse_loader_version.rc\n\tsfse_loader.manifest\n)\n\nadd_executable(sfse::${PROJECT_NAME} ALIAS ${PROJECT_NAME})\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/configuration.cmake)\n\ntarget_compile_features(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\tcxx_std_17\n)\n\ntarget_include_directories(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\t$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>\n\t\t$<INSTALL_INTERFACE:include>\n)\n\ntarget_link_libraries(\n\t${PROJECT_NAME}\n\tPUBLIC\n\t\tsfse::sfse_common\n\t\tShlwapi.lib\n\t\tVersion.lib\n\t\tWintrust.lib\n\t\tCrypt32.lib\n)\n\n# ---- Configure all targets ----\n\nset_target_properties(\n\t${PROJECT_NAME}\n\tsfse_common\n\tPROPERTIES\n\t\tMSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Debug>:Debug>DLL\"\n)\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/installation.cmake)\n"
  },
  {
    "path": "sfse_loader/IdentifyEXE.cpp",
    "content": "#include \"IdentifyEXE.h\"\r\n#include \"LoaderError.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include <string>\r\n#include <Windows.h>\r\n\r\nbool GetFileVersion(const char * path, VS_FIXEDFILEINFO * info, std::string * outProductName, std::string * outProductVersion)\r\n{\r\n\tbool result = false;\r\n\r\n\tu32\tversionSize = GetFileVersionInfoSize(path, NULL);\r\n\tif(!versionSize)\r\n\t{\r\n\t\t_ERROR(\"GetFileVersionInfoSize failed (%08X)\", GetLastError());\r\n\t\treturn false;\r\n\t}\r\n\r\n\tu8\t* versionBuf = new u8[versionSize];\r\n\tif(versionBuf)\r\n\t{\r\n\t\tif(GetFileVersionInfo(path, NULL, versionSize, versionBuf))\r\n\t\t{\r\n\t\t\tVS_FIXEDFILEINFO\t* retrievedInfo = NULL;\r\n\t\t\tu32\t\t\t\trealVersionSize = sizeof(VS_FIXEDFILEINFO);\r\n\r\n\t\t\tif(VerQueryValue(versionBuf, \"\\\\\", (void **)&retrievedInfo, (PUINT)&realVersionSize) && retrievedInfo)\r\n\t\t\t{\r\n\t\t\t\t*info = *retrievedInfo;\r\n\t\t\t\tresult = true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t_ERROR(\"VerQueryValue failed (%08X)\", GetLastError());\r\n\t\t\t}\r\n\r\n\t\t\tif(outProductName)\r\n\t\t\t{\r\n\t\t\t\t// try to get the product name, failure is ok\r\n\t\t\t\tchar * productName = NULL;\r\n\t\t\t\tu32 productNameLen = 0;\r\n\t\t\t\tif(VerQueryValue(versionBuf, \"\\\\StringFileInfo\\\\040904B0\\\\ProductName\", (void **)&productName, (PUINT)&productNameLen) && productNameLen && productName)\r\n\t\t\t\t{\r\n\t\t\t\t\t*outProductName = productName;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t{\r\n\t\t\t\tchar * productVersion = NULL;\r\n\t\t\t\tu32 productVersionLen = 0;\r\n\t\t\t\tif (VerQueryValue(versionBuf, \"\\\\StringFileInfo\\\\040904B0\\\\ProductVersion\", (void **)&productVersion, (PUINT)&productVersionLen) && productVersionLen && productVersion)\r\n\t\t\t\t{\r\n\t\t\t\t\t*outProductVersion = productVersion;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_ERROR(\"GetFileVersionInfo failed (%08X)\", GetLastError());\r\n\t\t}\r\n\r\n\t\tdelete [] versionBuf;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nbool VersionStrToInt(const std::string & verStr, u64 * out)\r\n{\r\n\tu64 result = 0;\r\n\tint parts[4];\r\n\r\n\tif (sscanf_s(verStr.c_str(), \"%d.%d.%d.%d\", &parts[0], &parts[1], &parts[2], &parts[3]) != 4)\r\n\t\treturn false;\r\n\r\n\tfor (int i = 0; i < 4; i++)\r\n\t{\r\n\t\tif (parts[i] > 0xFFFF)\r\n\t\t\treturn false;\r\n\r\n\t\tresult <<= 16;\r\n\t\tresult |= parts[i];\r\n\t}\r\n\r\n\t*out = result;\r\n\r\n\treturn true;\r\n}\r\n\r\nstatic bool GetFileVersionData(const char * path, u64 * out, std::string * outProductName)\r\n{\r\n\tstd::string productVersionStr;\r\n\tVS_FIXEDFILEINFO\tversionInfo;\r\n\tif(!GetFileVersion(path, &versionInfo, outProductName, &productVersionStr))\r\n\t\treturn false;\r\n\r\n\tDumpVersionInfo(versionInfo);\r\n\t_MESSAGE(\"productVersionStr = %s\", productVersionStr.c_str());\r\n\r\n\tu64 version = 0;\r\n\tif (!VersionStrToInt(productVersionStr, &version))\r\n\t\treturn false;\r\n\r\n\t*out = version;\r\n\r\n\treturn true;\r\n}\r\n\r\nvoid DumpVersionInfo(const VS_FIXEDFILEINFO & info)\r\n{\r\n\t_MESSAGE(\"dwSignature = %08X\", info.dwSignature);\r\n\t_MESSAGE(\"dwStrucVersion = %08X\", info.dwStrucVersion);\r\n\t_MESSAGE(\"dwFileVersionMS = %08X\", info.dwFileVersionMS);\r\n\t_MESSAGE(\"dwFileVersionLS = %08X\", info.dwFileVersionLS);\r\n\t_MESSAGE(\"dwProductVersionMS = %08X\", info.dwProductVersionMS);\r\n\t_MESSAGE(\"dwProductVersionLS = %08X\", info.dwProductVersionLS);\r\n\t_MESSAGE(\"dwFileFlagsMask = %08X\", info.dwFileFlagsMask);\r\n\t_MESSAGE(\"dwFileFlags = %08X\", info.dwFileFlags);\r\n\t_MESSAGE(\"dwFileOS = %08X\", info.dwFileOS);\r\n\t_MESSAGE(\"dwFileType = %08X\", info.dwFileType);\r\n\t_MESSAGE(\"dwFileSubtype = %08X\", info.dwFileSubtype);\r\n\t_MESSAGE(\"dwFileDateMS = %08X\", info.dwFileDateMS);\r\n\t_MESSAGE(\"dwFileDateLS = %08X\", info.dwFileDateLS);\r\n}\r\n\r\n// non-relocated image\r\nconst IMAGE_SECTION_HEADER * GetImageSection(const u8 * base, const char * name)\r\n{\r\n\tconst IMAGE_DOS_HEADER\t\t* dosHeader = (IMAGE_DOS_HEADER *)base;\r\n\tconst IMAGE_NT_HEADERS\t\t* ntHeader = (IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew);\r\n\tconst IMAGE_SECTION_HEADER\t* sectionHeader = IMAGE_FIRST_SECTION(ntHeader);\r\n\r\n\tfor(u32 i = 0; i < ntHeader->FileHeader.NumberOfSections; i++)\r\n\t{\r\n\t\tconst IMAGE_SECTION_HEADER\t* section = &sectionHeader[i];\r\n\r\n\t\tif(!strcmp((const char *)section->Name, name))\r\n\t\t{\r\n\t\t\treturn section;\r\n\t\t}\r\n\t}\r\n\r\n\treturn NULL;\r\n}\r\n\r\n// non-relocated image\r\nbool HasImportedLibrary(const u8 * base, const char * name)\r\n{\r\n\tauto * dosHeader = (const IMAGE_DOS_HEADER *)base;\r\n\tauto * ntHeader = (const IMAGE_NT_HEADERS *)(base + dosHeader->e_lfanew);\r\n\tauto * importDir = (const IMAGE_DATA_DIRECTORY *)&ntHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];\r\n\r\n\tif(!importDir->Size || !importDir->VirtualAddress) return false;\r\n\r\n\t// resolve RVA -> file offset\r\n\tconst auto * sectionHeader = IMAGE_FIRST_SECTION(ntHeader);\r\n\r\n\tauto LookupRVA = [ntHeader, sectionHeader, base](u32 rva) -> const u8 *\r\n\t{\r\n\t\tfor(u32 i = 0; i < ntHeader->FileHeader.NumberOfSections; i++)\r\n\t\t{\r\n\t\t\tconst auto * section = &sectionHeader[i];\r\n\r\n\t\t\tif(\t(rva >= section->VirtualAddress) &&\r\n\t\t\t\t(rva < section->VirtualAddress + section->SizeOfRawData))\r\n\t\t\t{\r\n\t\t\t\treturn base + rva - section->VirtualAddress + section->PointerToRawData;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn nullptr;\r\n\t};\r\n\r\n\tif(const auto * importTable = (const IMAGE_IMPORT_DESCRIPTOR *)LookupRVA(importDir->VirtualAddress))\r\n\t{\r\n\t\tfor(; importTable->Characteristics; ++importTable)\r\n\t\t{\r\n\t\t\tauto * dllName = (const char *)LookupRVA(importTable->Name);\r\n\r\n\t\t\tif(dllName && !_stricmp(dllName, name))\r\n\t\t\t{\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\n// steam EXE will have the .bind section\r\nstatic bool IsSteamImage(const u8 * base)\r\n{\r\n\treturn GetImageSection(base, \".bind\") != NULL;\r\n}\r\n\r\nstatic bool IsUPXImage(const u8 * base)\r\n{\r\n\treturn GetImageSection(base, \"UPX0\") != NULL;\r\n}\r\n\r\nstatic bool IsWinStoreImage(const u8 * base)\r\n{\r\n\treturn HasImportedLibrary(base, \"XCurl.dll\");\t// or api-ms-win-core-psm-appnotify-l1-1-0.dll\r\n}\r\n\r\nstatic bool IsGOGImage(const u8 * base)\r\n{\r\n\treturn HasImportedLibrary(base, \"Galaxy64.dll\");\r\n}\r\n\r\nstatic bool IsEpicImage(const u8 * base)\r\n{\r\n\treturn HasImportedLibrary(base, \"eossdk-win64-shipping.dll\");\r\n}\r\n\r\nbool ScanEXE(const char * path, ProcHookInfo * hookInfo)\r\n{\r\n\t// open and map the file in to memory\r\n\tHANDLE\tfile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);\r\n\tif(file == INVALID_HANDLE_VALUE)\r\n\t{\r\n\t\t_ERROR(\"ScanEXE: couldn't open file (%d)\", GetLastError());\r\n\t\treturn false;\r\n\t}\r\n\r\n\tbool result = false;\r\n\r\n\tHANDLE\tmapping = CreateFileMapping(file, NULL, PAGE_READONLY, 0, 0, NULL);\r\n\tif(mapping)\r\n\t{\r\n\t\tconst u8\t* fileBase = (const u8 *)MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0);\r\n\t\tif(fileBase)\r\n\t\t{\r\n\t\t\t// scan for packing type\r\n\t\t\tbool\tisWinStore = IsWinStoreImage(fileBase);\r\n\r\n\t\t\tif(IsUPXImage(fileBase))\r\n\t\t\t{\r\n\t\t\t\thookInfo->procType = kProcType_Packed;\r\n\t\t\t}\r\n\t\t\telse if(IsSteamImage(fileBase))\r\n\t\t\t{\r\n\t\t\t\thookInfo->procType = kProcType_Steam;\r\n\t\t\t}\r\n\t\t\telse if(IsWinStoreImage(fileBase))\r\n\t\t\t{\r\n\t\t\t\thookInfo->procType = kProcType_WinStore;\r\n\t\t\t}\r\n\t\t\telse if(IsGOGImage(fileBase))\r\n\t\t\t{\r\n\t\t\t\thookInfo->procType = kProcType_GOG;\r\n\t\t\t}\r\n\t\t\telse if(IsEpicImage(fileBase))\r\n\t\t\t{\r\n\t\t\t\thookInfo->procType = kProcType_Epic;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\thookInfo->procType = kProcType_Normal;\r\n\t\t\t}\r\n\r\n\t\t\tresult = true;\r\n\r\n\t\t\tUnmapViewOfFile(fileBase);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\t_ERROR(\"ScanEXE: couldn't map file (%d)\", GetLastError());\r\n\t\t}\r\n\r\n\t\tCloseHandle(mapping);\r\n\t}\r\n\telse\r\n\t{\r\n\t\t_ERROR(\"ScanEXE: couldn't create file mapping (%d)\", GetLastError());\r\n\t}\r\n\r\n\tCloseHandle(file);\r\n\r\n\treturn result;\r\n}\r\n\r\nbool IdentifyEXE(const char * procName, bool isEditor, std::string * dllSuffix, ProcHookInfo * hookInfo)\r\n{\r\n\tu64\tversion;\r\n\tstd::string\tproductName;\r\n\r\n\t// check file version\r\n\tif(!GetFileVersionData(procName, &version, &productName))\r\n\t{\r\n\t\tPrintLoaderError(\"Couldn't retrieve EXE version information.\");\r\n\t\treturn false;\r\n\t}\r\n\r\n\t_MESSAGE(\"version = %016I64X\", version);\r\n\t_MESSAGE(\"product name = %s\", productName.c_str());\r\n\r\n\thookInfo->version = version;\r\n\thookInfo->packedVersion = MAKE_EXE_VERSION(version >> 48, version >> 32, version >> 16);\r\n\r\n\tif(productName == \"SFSE\")\r\n\t{\r\n\t\t_MESSAGE(\"found an SFSE component\");\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// check protection type\r\n\tif(!ScanEXE(procName, hookInfo))\r\n\t{\r\n\t\tPrintLoaderError(\"Failed to identify EXE type.\");\r\n\t\treturn false;\r\n\t}\r\n\r\n\tswitch(hookInfo->procType)\r\n\t{\r\n\tcase kProcType_Steam:\t\t_MESSAGE(\"steam exe\"); break;\r\n\tcase kProcType_Normal:\t\t_MESSAGE(\"normal exe\"); break;\r\n\tcase kProcType_Packed:\t\t_MESSAGE(\"packed exe\"); break;\r\n\tcase kProcType_WinStore:\t_MESSAGE(\"winstore exe\"); break;\r\n\tcase kProcType_GOG:\t\t\t_MESSAGE(\"gog exe\"); break;\r\n\tcase kProcType_Epic:\t\t_MESSAGE(\"epic exe\"); break;\r\n\tcase kProcType_Unknown:\r\n\tdefault:\t\t\t\t\t_MESSAGE(\"unknown exe type\"); break;\r\n\t}\r\n\r\n\tif(hookInfo->procType == kProcType_WinStore)\r\n\t{\r\n\t\tPrintLoaderError(\"The Windows Store (gamepass) version of Starfield is not supported.\");\r\n\t\treturn false;\r\n\t}\r\n\t\r\n\tif(hookInfo->procType == kProcType_Epic)\r\n\t{\r\n\t\tPrintLoaderError(\"The Epic Store version of Starfield is not supported.\");\r\n\t\treturn false;\r\n\t}\r\n\r\n\tbool result = false;\r\n\r\n\tif(isEditor)\r\n\t{\r\n\t\tswitch(hookInfo->procType)\r\n\t\t{\r\n\t\tcase kProcType_Steam:\r\n\t\tcase kProcType_Normal:\r\n\t\tcase kProcType_WinStore:\r\n\t\tcase kProcType_GOG:\r\n\t\t\t*dllSuffix = \"\";\r\n\r\n\t\t\tresult = true;\r\n\r\n\t\t\tbreak;\r\n\t\tcase kProcType_Unknown:\r\n\t\tdefault:\r\n\t\t\tPrintLoaderError(\"Unsupported editor executable type.\");\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\tchar versionStr[256];\r\n\t\tsprintf_s(versionStr, \"%d_%d_%d\", hookInfo->getVersionMajor(), hookInfo->getVersionMinor(), hookInfo->getVersionBuild());\r\n\t\t*dllSuffix = versionStr;\r\n\r\n\t\tswitch(hookInfo->procType)\r\n\t\t{\r\n\t\tcase kProcType_Steam:\r\n\t\tcase kProcType_Normal:\r\n\t\t\tresult = true;\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase kProcType_GOG:\r\n\t\t\t*dllSuffix += \"_gog\";\r\n\r\n\t\t\tresult = true;\r\n\t\t\tbreak;\r\n\r\n\t\tcase kProcType_WinStore:\r\n\t\t\t*dllSuffix += \"_winstore\";\r\n\r\n\t\t\tresult = true;\r\n\r\n\t\t\tbreak;\r\n\r\n\t\tcase kProcType_Packed:\r\n\t\t\tPrintLoaderError(\"Packed versions of Starfield are not supported.\");\r\n\t\t\tbreak;\r\n\r\n\t\tcase kProcType_Unknown:\r\n\t\tdefault:\r\n\t\t\tPrintLoaderError(\"Unknown executable type.\");\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\nbool VersionCheck(const ProcHookInfo & procInfo, u64 RUNTIME_VERSION)\r\n{\r\n\tconst u64 kCurVersion =\r\n\t\t(u64(GET_EXE_VERSION_MAJOR(RUNTIME_VERSION)) << 48) |\r\n\t\t(u64(GET_EXE_VERSION_MINOR(RUNTIME_VERSION)) << 32) |\r\n\t\t(u64(GET_EXE_VERSION_BUILD(RUNTIME_VERSION)) << 16);\r\n\r\n\t// convert version resource to internal version format\r\n\tu32 versionInternal = MAKE_EXE_VERSION(procInfo.version >> 48, procInfo.version >> 32, procInfo.version >> 16);\r\n\r\n\t// version mismatch could mean exe type mismatch\r\n\tif(procInfo.version != kCurVersion)\r\n\t{\r\n#if GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_BETHESDA\r\n\t\tconst int expectedProcType = kProcType_Steam;\r\n\t\tconst char * expectedProcTypeName = \"Steam\";\r\n#elif GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_GOG\r\n\t\tconst int expectedProcType = kProcType_GOG;\r\n\t\tconst char * expectedProcTypeName = \"GOG\";\r\n#else\r\n#error unknown runtime type\r\n#endif\r\n\r\n\t\t// we only care about steam/gog for this check\r\n\t\tconst char * foundProcTypeName = nullptr;\r\n\r\n\t\tswitch(procInfo.procType)\r\n\t\t{\r\n\t\t\tcase kProcType_Steam:\r\n\t\t\t\tfoundProcTypeName = \"Steam\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase kProcType_GOG:\r\n\t\t\t\tfoundProcTypeName = \"GOG\";\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tif(foundProcTypeName && (procInfo.procType != expectedProcType))\r\n\t\t{\r\n\t\t\t// different build\r\n\t\t\tPrintLoaderError(\r\n\t\t\t\t\"This version of SFSE is compatible with the %s version of the game.\\n\"\r\n\t\t\t\t\"You have the %s version of the game. Please download the correct version from the website.\\n\"\r\n\t\t\t\t\"Runtime: %d.%d.%d\\n\"\r\n\t\t\t\t\"SFSE: %d.%d.%d\",\r\n\t\t\t\texpectedProcTypeName, foundProcTypeName,\r\n\t\t\t\tGET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal),\r\n\t\t\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA);\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tif(procInfo.version < kCurVersion)\r\n\t{\r\n#if SFSE_TARGETING_BETA_VERSION\r\n\t\tif(versionInternal == CURRENT_RELEASE_RUNTIME)\r\n\t\t\tPrintLoaderError(\r\n\t\t\t\t\"You are using the version of SFSE intended for the Steam beta branch (%d.%d.%d).\\n\"\r\n\t\t\t\t\"Download and install the non-beta branch version (%s) from http://sfse.silverlock.org/.\",\r\n\t\t\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA, CURRENT_RELEASE_SFSE_STR);\r\n\t\telse\r\n\t\t\tPrintLoaderError(\r\n\t\t\t\t\"You are using Starfield version %d.%d.%d, which is out of date and incompatible with this version of SFSE (%d.%d.%d). Update to the latest beta version.\",\r\n\t\t\t\tGET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal),\r\n\t\t\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA);\r\n#else\r\n\t\tPrintLoaderError(\r\n\t\t\t\"You are using Starfield version %d.%d.%d, which is out of date and incompatible with this version of SFSE (%d.%d.%d). Update to the latest version.\",\r\n\t\t\tGET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal),\r\n\t\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA);\r\n#endif\r\n\t}\r\n\telse if(procInfo.version > kCurVersion)\r\n\t{\r\n\t\tPrintLoaderError(\r\n\t\t\t\"You are using a newer version of Starfield than this version of SFSE supports.\\n\"\r\n\t\t\t\"If this version just came out, please be patient while we update our code.\\n\"\r\n\t\t\t\"In the meantime, please check http://sfse.silverlock.org for updates.\\n\"\r\n\t\t\t\"Do not email about this!\\n\"\r\n\t\t\t\"Runtime: %d.%d.%d\\n\"\r\n\t\t\t\"SFSE: %d.%d.%d\",\r\n\t\t\tGET_EXE_VERSION_MAJOR(versionInternal), GET_EXE_VERSION_MINOR(versionInternal), GET_EXE_VERSION_BUILD(versionInternal),\r\n\t\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA);\r\n\t}\r\n\r\n\treturn true;\r\n}\r\n"
  },
  {
    "path": "sfse_loader/IdentifyEXE.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/Types.h\"\r\n#include <string>\r\n#include <Windows.h>\r\n\r\nenum\r\n{\r\n\tkProcType_Steam,\r\n\tkProcType_Normal,\r\n\tkProcType_WinStore,\r\n\tkProcType_GOG,\r\n\tkProcType_Epic,\r\n\r\n\tkProcType_Packed,\r\n\r\n\tkProcType_Unknown\r\n};\r\n\r\nstruct ProcHookInfo\r\n{\r\n\tu64\tversion;\t\t// version from resource\r\n\tu32\tpackedVersion;\t// internal packed version number\r\n\tu32\tprocType;\t\t// kProcType_*\r\n\r\n\tu16 getVersionMajor() { return u16(version >> 48); }\r\n\tu16 getVersionMinor() { return u16(version >> 32); }\r\n\tu16 getVersionBuild() { return u16(version >> 16); }\r\n};\r\n\r\nbool IdentifyEXE(const char * procName, bool isEditor, std::string * dllSuffix, ProcHookInfo * hookInfo);\r\n\r\nbool GetFileVersion(const char * path, VS_FIXEDFILEINFO * info, std::string * outProductName, std::string * outProductVersion);\r\nvoid DumpVersionInfo(const VS_FIXEDFILEINFO & info);\r\nbool VersionStrToInt(const std::string & verStr, u64 * out);\r\n"
  },
  {
    "path": "sfse_loader/Inject.cpp",
    "content": "#include \"LoaderError.h\"\r\n#include \"IdentifyEXE.h\"\r\n#include \"sfse_common/FileStream.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include <Windows.h>\r\n\r\n// remote thread creation\r\n\r\nstatic bool DoInjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, bool sync, bool noTimeout);\r\n\r\nbool InjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, bool sync, bool noTimeout)\r\n{\r\n\tbool\tresult = false;\r\n\r\n\t// wrap DLL injection in SEH, if it crashes print a message\r\n\t__try {\r\n\t\tresult = DoInjectDLLThread(info, dllPath, sync, noTimeout);\r\n\t}\r\n\t__except(EXCEPTION_EXECUTE_HANDLER)\r\n\t{\r\n\t\tPrintLoaderError(\"DLL injection failed. In most cases, this is caused by an overly paranoid software firewall or antivirus package. Disabling either of these may solve the problem.\");\r\n\t\tresult = false;\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n\r\n/*\r\n\t48:83EC 28               | sub rsp, 28                             |\r\n\t48:8BD9                  | mov rbx,rcx                             | save to non-volatile register\r\n\t48:8D4B 10               | lea rcx,qword ptr ds:[rbx+10]           | offsetof(InjectDLLThreadData, dllPath)\r\n\tFF13                     | call qword ptr ds:[rbx]                 | offsetof(InjectDLLThreadData, loadLibraryA)\r\n\t48:8BC8                  | mov rcx,rax                             |\r\n\tBA 01000000              | mov edx,1                               |\r\n\tFF53 08                  | call qword ptr ds:[rbx+8]               | offsetof(InjectDLLThreadData, getProcAddress)\r\n\tFFD0                     | call rax                                |\r\n\t48:83C4 28               | add rsp, 28                             |\r\n\tC3                       | ret                                     |\r\n*/\r\n\r\nstruct InjectDLLThreadData\r\n{\r\n\tInjectDLLThreadData(uintptr_t _loadLibraryA, uintptr_t _getProcAddress, const char * _dllPath)\r\n\t{\r\n\t\tmemset(this, 0, sizeof(*this));\r\n\t\tloadLibraryA = _loadLibraryA;\r\n\t\tgetProcAddress = _getProcAddress;\r\n\t\tstrcpy_s(dllPath, sizeof(dllPath), _dllPath);\r\n\t\t\r\n\t\tstatic const u8 kCode[] =\r\n\t\t{\r\n\t\t\t0x48, 0x83, 0xEC, 0x28,\r\n\t\t\t0x48, 0x8B, 0xD9,\r\n\t\t\t0x48, 0x8D, 0x4B, 0x10,\r\n\t\t\t0xFF, 0x13,\r\n\t\t\t0x48, 0x8B, 0xC8,\r\n\t\t\t0xBA, 0x01, 0x00, 0x00, 0x00,\r\n\t\t\t0xFF, 0x53, 0x08,\r\n\t\t\t0xFF, 0xD0,\r\n\t\t\t0x48, 0x83, 0xC4, 0x28,\r\n\t\t\t0xC3,\r\n\t\t};\r\n\t\t\r\n\t\tmemcpy(code, kCode, sizeof(kCode));\r\n\t}\r\n\t\r\n\tuintptr_t\tloadLibraryA;\t\t// 00\r\n\tuintptr_t\tgetProcAddress;\t\t// 08\r\n\tchar\t\tdllPath[2048];\t\t// 10\r\n\tu8\t\t\tcode[128];\t\t\t// 810\r\n};\r\n\r\nstatic bool DoInjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, bool sync, bool noTimeout)\r\n{\r\n\tbool\tresult = false;\r\n\r\n\t// make sure the dll exists\r\n\t{\r\n\t\tFileStream\tfileCheck;\r\n\t\tif(!fileCheck.open(dllPath))\r\n\t\t{\r\n\t\t\tPrintLoaderError(\"Couldn't find %s.\", dllPath);\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tHANDLE\tprocess = OpenProcess(\r\n\t\tPROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, FALSE, info->dwProcessId);\r\n\tif(process)\r\n\t{\r\n\t\tuintptr_t\thookBase = (uintptr_t)VirtualAllocEx(process, NULL, 8192, MEM_COMMIT, PAGE_EXECUTE_READWRITE);\r\n\t\tif(hookBase)\r\n\t\t{\r\n\t\t\t// safe because kernel32 is loaded at the same address in all processes\r\n\t\t\t// (can change across restarts)\r\n\t\t\tuintptr_t\tloadLibraryAAddr = (uintptr_t)GetProcAddress(GetModuleHandle(\"kernel32.dll\"), \"LoadLibraryA\");\r\n\t\t\tuintptr_t\tgetProcAddressAddr = (uintptr_t)GetProcAddress(GetModuleHandle(\"kernel32.dll\"), \"GetProcAddress\");\r\n\r\n\t\t\t_MESSAGE(\"hookBase = %016I64X\", hookBase);\r\n\t\t\t_MESSAGE(\"loadLibraryAAddr = %016I64X\", loadLibraryAAddr);\r\n\t\t\t_MESSAGE(\"getProcAddressAddr = %016I64X\", getProcAddressAddr);\r\n\t\t\t\r\n\t\t\tInjectDLLThreadData data(loadLibraryAAddr, getProcAddressAddr, dllPath);\r\n\r\n\t\t\tsize_t\tbytesWritten;\r\n\t\t\tWriteProcessMemory(process, (LPVOID)hookBase, (void *)&data, sizeof(data), &bytesWritten);\r\n\r\n\t\t\tauto * remoteData = (InjectDLLThreadData *)hookBase;\r\n\r\n\t\t\tHANDLE\tthread = CreateRemoteThread(process, NULL, 0, (LPTHREAD_START_ROUTINE)(&remoteData->code), (void *)remoteData, 0, NULL);\r\n\t\t\tif(thread)\r\n\t\t\t{\r\n\t\t\t\tif(sync)\r\n\t\t\t\t{\r\n\t\t\t\t\tswitch(WaitForSingleObject(thread, noTimeout ? INFINITE : 1000 * 60))\t// timeout = one minute\r\n\t\t\t\t\t{\r\n\t\t\t\t\tcase WAIT_OBJECT_0:\r\n\t\t\t\t\t\t_MESSAGE(\"hook thread complete\");\r\n\t\t\t\t\t\tresult = true;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase WAIT_ABANDONED:\r\n\t\t\t\t\t\t_ERROR(\"Process::InstallHook: waiting for thread = WAIT_ABANDONED\");\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase WAIT_TIMEOUT:\r\n\t\t\t\t\t\t_ERROR(\"Process::InstallHook: waiting for thread = WAIT_TIMEOUT\");\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\tresult = true;\r\n\r\n\t\t\t\tCloseHandle(thread);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\t_ERROR(\"CreateRemoteThread failed (%d)\", GetLastError());\r\n\r\n\t\t\tVirtualFreeEx(process, (LPVOID)hookBase, 0, MEM_RELEASE);\r\n\t\t}\r\n\t\telse\r\n\t\t\t_ERROR(\"Process::InstallHook: couldn't allocate memory in target process\");\r\n\r\n\t\tCloseHandle(process);\r\n\t}\r\n\telse\r\n\t\t_ERROR(\"Process::InstallHook: couldn't get process handle\");\r\n\r\n\treturn result;\r\n}\r\n"
  },
  {
    "path": "sfse_loader/Inject.h",
    "content": "#pragma once\r\n\r\n#include \"IdentifyEXE.h\"\r\n\r\nbool InjectDLL(PROCESS_INFORMATION * info, const char * dllPath, ProcHookInfo * hookInfo);\r\nbool InjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, bool sync, bool noTimeout);\r\n"
  },
  {
    "path": "sfse_loader/LoaderError.cpp",
    "content": "#include \"LoaderError.h\"\r\n#include <cstdarg>\r\n#include <cstdio>\r\n#include <Windows.h>\r\n#include \"sfse_common/Log.h\"\r\n\r\nvoid PrintLoaderError(const char * fmt, ...)\r\n{\r\n\tchar\tbuf[4096];\r\n\r\n\tva_list\targs;\r\n\r\n\tva_start(args, fmt);\r\n\tDebugLog::log(DebugLog::kLevel_FatalError, fmt, args);\r\n\tva_end(args);\r\n\r\n\tva_start(args, fmt);\r\n\tvsprintf_s(buf, sizeof(buf), fmt, args);\r\n\tva_end(args);\r\n\r\n\tMessageBox(NULL, buf, \"SFSE Loader\", MB_OK | MB_ICONEXCLAMATION);\r\n}\r\n"
  },
  {
    "path": "sfse_loader/LoaderError.h",
    "content": "#pragma once\r\n\r\nvoid PrintLoaderError(const char * fmt, ...);\r\n"
  },
  {
    "path": "sfse_loader/Options.cpp",
    "content": "#include \"Options.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/Errors.h\"\r\n#include <Windows.h>\r\n\r\nOptions g_options;\r\n\r\nOptions::Options()\r\n\t:m_launchCS(false)\r\n\t,m_setPriority(false)\r\n\t,m_priority(0)\r\n\t,m_crcOnly(false)\r\n\t,m_optionsOnly(false)\r\n\t,m_waitForClose(false)\r\n\t,m_verbose(false)\r\n\t,m_skipLauncher(true)\r\n\t,m_launchSteam(false)\r\n\t,m_noTimeout(false)\r\n\t,m_affinity(0)\r\n{\r\n\t//\r\n}\r\n\r\nOptions::~Options()\r\n{\r\n\t//\r\n}\r\n\r\n// disable \"switch statement contains 'default' but no 'case' labels\"\r\n#pragma warning (push)\r\n#pragma warning (disable : 4065)\r\n\r\nbool Options::Read(int argc, char ** argv)\r\n{\r\n\tif(argc >= 1)\r\n\t{\r\n\t\t// remove app name\r\n\t\targc--;\r\n\t\targv++;\r\n\r\n\t\tint\tfreeArgCount = 0;\r\n\r\n\t\twhile(argc > 0)\r\n\t\t{\r\n\t\t\tchar\t* arg = *argv++;\r\n\t\t\targc--;\r\n\r\n\t\t\tif(arg[0] == '-')\r\n\t\t\t{\r\n\t\t\t\t// switch\r\n\t\t\t\targ++;\r\n\r\n\t\t\t\tif(!_stricmp(arg, \"editor\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_launchCS = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"priority\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(argc >= 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\targ = *argv++;\r\n\t\t\t\t\t\targc--;\r\n\r\n\t\t\t\t\t\tm_setPriority = true;\r\n\r\n\t\t\t\t\t\tif(!_stricmp(arg, \"above_normal\"))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_priority = ABOVE_NORMAL_PRIORITY_CLASS;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(!_stricmp(arg, \"below_normal\"))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_priority = BELOW_NORMAL_PRIORITY_CLASS;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(!_stricmp(arg, \"high\"))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_priority = HIGH_PRIORITY_CLASS;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(!_stricmp(arg, \"idle\"))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_priority = IDLE_PRIORITY_CLASS;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(!_stricmp(arg, \"normal\"))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_priority = NORMAL_PRIORITY_CLASS;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(!_stricmp(arg, \"realtime\"))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_priority = REALTIME_PRIORITY_CLASS;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tm_setPriority = false;\r\n\r\n\t\t\t\t\t\t\t_ERROR(\"couldn't read priority argument (%s)\", arg);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_ERROR(\"priority not specified\");\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"altexe\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(argc >= 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tm_altEXE = *argv++;\r\n\t\t\t\t\t\targc--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_ERROR(\"exe path not specified\");\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"altdll\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(argc >= 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tm_altDLL = *argv++;\r\n\t\t\t\t\t\targc--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_ERROR(\"dll path not specified\");\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"crconly\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_crcOnly = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"h\") || !_stricmp(arg, \"help\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_optionsOnly = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"waitforclose\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_waitForClose = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"v\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_verbose = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"noskiplauncher\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_skipLauncher = false;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"launchsteam\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_launchSteam = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"notimeout\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tm_noTimeout = true;\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"affinity\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(argc >= 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tconst char\t* maskStr = *argv++;\r\n\t\t\t\t\t\targc--;\r\n\r\n\t\t\t\t\t\tif(sscanf_s(maskStr, \"%I64i\", &m_affinity) != 1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t_ERROR(\"couldn't read affinity mask as an integer (%s)\", maskStr);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t_ERROR(\"affinity mask not specified\");\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"forcesteamloader\"))\r\n\t\t\t\t{\r\n\t\t\t\t\t// does nothing\r\n\t\t\t\t}\r\n\t\t\t\telse if(!_stricmp(arg, \"-\"))\r\n\t\t\t\t{\r\n\t\t\t\t\t// terminator for arguments\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t_ERROR(\"unknown switch (%s)\", arg);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// free arg\r\n\r\n\t\t\t\tswitch(freeArgCount)\r\n\t\t\t\t{\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t_ERROR(\"too many free args (%s)\", arg);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn Verify();\r\n}\r\n\r\n#pragma warning (pop)\r\n\r\nvoid Options::PrintUsage(void)\r\n{\r\n\t//gLog.SetPrintLevel(IDebugLog::kLevel_VerboseMessage);\r\n\r\n\t_MESSAGE(\"usage: sfse_loader [options]\");\r\n\t_MESSAGE(\"\");\r\n\t_MESSAGE(\"options:\");\r\n\t_MESSAGE(\"  -h, -help - print this options list\");\r\n\t_MESSAGE(\"  -editor - launch the construction set\");\r\n\t_MESSAGE(\"  -priority <level> - set the launched program\\'s priority\");\r\n\t_MESSAGE(\"    above_normal\");\r\n\t_MESSAGE(\"    below_normal\");\r\n\t_MESSAGE(\"    high\");\r\n\t_MESSAGE(\"    idle\");\r\n\t_MESSAGE(\"    normal\");\r\n\t_MESSAGE(\"    realtime\");\r\n\t_MESSAGE(\"  -altexe <path> - set alternate exe path\");\r\n\t_MESSAGE(\"  -altdll <path> - set alternate dll path\");\r\n\t_MESSAGE(\"  -crconly - just identify the EXE, don't launch anything\");\r\n\t_MESSAGE(\"  -waitforclose - wait for the launched program to close\");\r\n\t_MESSAGE(\"  -v - print verbose messages to the console\");\r\n\t_MESSAGE(\"  -minfo - log information about the DLLs loaded in to the target process\");\r\n\t_MESSAGE(\"  -noskiplauncher - does not skip the default Bethesda launcher window\");\r\n\t_MESSAGE(\"                    note: specifying this option may cause compatibility problems\");\r\n\t_MESSAGE(\"  -launchsteam - ignored for backwards compatibility\");\r\n\t_MESSAGE(\"  -affinity <mask> - set the processor affinity mask\");\r\n\t_MESSAGE(\"  -forcesteamloader - ignored for backwards compatibility\");\r\n\t_MESSAGE(\"  -- - ignore arguments after this marker\");\r\n}\r\n\r\nbool Options::Verify(void)\r\n{\r\n\t// nothing to verify currently\r\n\r\n\treturn true;\r\n}\r\n"
  },
  {
    "path": "sfse_loader/Options.h",
    "content": "#pragma once\r\n\r\n#include \"sfse_common/Types.h\"\r\n#include <string>\r\n\r\nclass Options\r\n{\r\npublic:\r\n\tOptions();\r\n\t~Options();\r\n\r\n\tbool\tRead(int argc, char ** argv);\r\n\r\n\tvoid\tPrintUsage(void);\r\n\r\n\tbool\tm_launchCS;\r\n\r\n\tbool\tm_setPriority;\r\n\tu32\t\tm_priority;\r\n\r\n\tbool\tm_optionsOnly;\r\n\tbool\tm_crcOnly;\r\n\tbool\tm_waitForClose;\r\n\tbool\tm_verbose;\r\n\tbool\tm_skipLauncher;\r\n\tbool\tm_launchSteam;\r\n\tbool\tm_noTimeout;\r\n\r\n\tu64\t\tm_affinity;\r\n\r\n\tstd::string\tm_altEXE;\r\n\tstd::string\tm_altDLL;\r\n\r\nprivate:\r\n\tbool\tVerify(void);\r\n};\r\n\r\nextern Options g_options;\r\n"
  },
  {
    "path": "sfse_loader/SigCheck.cpp",
    "content": "#include \"SigCheck.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse_common/Log.h\"\n#include \"sfse_common/Errors.h\"\n#include <Windows.h>\n#include <cstring>\n#include <vector>\n\n// no, plugins will not need signature checks ever\n// this exists to prevent misuse (by malware) of one of the loaders\n// locally built loaders will not be signed and will pass this check on everything\n\n// use wintrust for authenticode validation\n// use wincrypt for examining the cert\n\n#include <WinTrust.h>\n#include <SoftPub.h>\n#include <wincrypt.h>\n\nclass FileCertVerifier\n{\npublic:\n\tbool verify(const WCHAR * path);\n\n\tbool noSignature() const;\n\tbool trusted() const;\n\n\tconst std::vector <u8> & serial() const { return m_serial; }\n\nprivate:\n\tbool getLeafCertSerial(const WCHAR * path, std::vector <u8> * outSerial) const;\n\n\tLONG m_trustResult;\n\tDWORD m_trustError;\n\n\tstd::vector <u8> m_serial;\n};\n\nbool FileCertVerifier::verify(const WCHAR * path)\n{\n\tWINTRUST_FILE_INFO fileInfo = {};\n\tfileInfo.cbStruct = sizeof(fileInfo);\n\tfileInfo.pcwszFilePath = path;\n\n\t// authenticode verify, save data in hWVTStateData\n\tWINTRUST_DATA winTrustData = {};\n\twinTrustData.cbStruct = sizeof(winTrustData);\n\twinTrustData.dwUIChoice = WTD_UI_NONE;\n\twinTrustData.fdwRevocationChecks = WTD_REVOKE_NONE;\n\twinTrustData.dwUnionChoice = WTD_CHOICE_FILE;\n\twinTrustData.pFile = &fileInfo;\n\twinTrustData.dwStateAction = WTD_STATEACTION_VERIFY;\n\twinTrustData.dwProvFlags = 0;\n\n\tGUID authenticodeVerify = WINTRUST_ACTION_GENERIC_VERIFY_V2;\n\n\t// validation status is stored in these result codes\n\tm_trustResult = WinVerifyTrust(nullptr, &authenticodeVerify, &winTrustData);\n\tm_trustError = GetLastError();\n\n\t_MESSAGE(\"WinVerifyTrust: %08X %08X %S\", m_trustResult, m_trustError, path);\n\n\t// dispose hWVTStateData\n\twinTrustData.dwStateAction = WTD_STATEACTION_CLOSE;\n\tWinVerifyTrust(nullptr, &authenticodeVerify, &winTrustData);\n\n\t// anything else is an error\n\tif(!noSignature() && !trusted())\n\t{\n\t\t_ERROR(\"WinVerifyTrust failed: %08X %08X\", m_trustResult, m_trustError);\n\t\treturn false;\n\t}\n\n\tif(trusted())\n\t{\n\t\t// fetch cert info if the chain validates\n\t\tif(!getLeafCertSerial(path, &m_serial))\n\t\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nbool FileCertVerifier::noSignature() const\n{\n\treturn (m_trustResult == TRUST_E_NOSIGNATURE) && (m_trustError == TRUST_E_NOSIGNATURE);\n}\n\nbool FileCertVerifier::trusted() const\n{\n\treturn m_trustResult == ERROR_SUCCESS;\n}\n\n#if 0\n\n// unsupported function version (WTHelperProvDataFromStateData)\n\nstd::vector <u8> FileCertVerifier::getLeafCertSerial(const WINTRUST_DATA & src) const\n{\n\tstd::vector <u8> result;\n\n\tconst CRYPT_PROVIDER_DATA * providerData = WTHelperProvDataFromStateData(src.hWVTStateData);\n\tASSERT(providerData && providerData->csSigners && providerData->pasSigners && providerData->pasSigners->csCertChain);\n\n\tconst CRYPT_PROVIDER_CERT * leafCert = providerData->pasSigners->pasCertChain;\n\tif(leafCert->fTrustedRoot || leafCert->fSelfSigned || leafCert->fTestCert)\n\t{\n\t\t// what\n\t\treturn result;\n\t}\n\n\tif(leafCert->pCert && leafCert->pCert->pCertInfo)\n\t{\n\t\tconst CERT_INFO * info = leafCert->pCert->pCertInfo;\n\t\tASSERT(info->SerialNumber.pbData && info->SerialNumber.cbData > 0);\n\n\t\tresult.resize(info->SerialNumber.cbData);\n\t\tmemcpy(result.data(), info->SerialNumber.pbData, info->SerialNumber.cbData);\n\t}\n\n\treturn result;\n}\n\n#else\n\nbool FileCertVerifier::getLeafCertSerial(const WCHAR * path, std::vector <u8> * outSerial) const\n{\n\tHCRYPTMSG cryptMsg = nullptr;\n\n\t// authenticode is a PKCS #7 signed embedded message\n\t// extract it from the PE file\n\tBOOL status = CryptQueryObject(\n\t\tCERT_QUERY_OBJECT_FILE, path,\n\t\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED, CERT_QUERY_FORMAT_FLAG_BINARY, 0,\n\t\tnullptr, nullptr, nullptr, nullptr, &cryptMsg, nullptr);\n\tif(!status)\n\t{\n\t\t_ERROR(\"CryptQueryObject failed %08X\", GetLastError());\n\t\treturn false;\n\t}\n\n\t// get the cert signing the message (leaf cert)\n\tDWORD signerInfoLen = 0;\n\tif(!CryptMsgGetParam(cryptMsg, CMSG_SIGNER_INFO_PARAM, 0, nullptr, &signerInfoLen))\n\t{\n\t\t_ERROR(\"CryptMsgGetParam signer info length failed %08X\", GetLastError());\n\t\treturn false;\n\t}\n\n\tstd::vector <u8> signerInfoBuf(signerInfoLen);\n\tif(!CryptMsgGetParam(cryptMsg, CMSG_SIGNER_INFO_PARAM, 0, signerInfoBuf.data(), &signerInfoLen))\n\t{\n\t\t_ERROR(\"CryptMsgGetParam signer info fetch failed %08X\", GetLastError());\n\t\treturn false;\n\t}\n\n\t// signing cert info contains a serial number and issuer (and some other data)\n\tauto * signerInfo = (CMSG_SIGNER_INFO *)signerInfoBuf.data();\n\n\tif(signerInfo->SerialNumber.cbData <= 0)\n\t{\n\t\t_ERROR(\"no cert serial\");\n\t\treturn false;\n\t}\n\n\toutSerial->resize(signerInfo->SerialNumber.cbData);\n\tmemcpy(outSerial->data(), signerInfo->SerialNumber.pbData, signerInfo->SerialNumber.cbData);\n\n\tCryptMsgClose(cryptMsg);\n\n\treturn true;\n}\n\n#endif\n\nbool CheckDLLSignature(const std::string & dllPath)\n{\n\t// verify ourselves, get the signature\n\tWCHAR exePath[2048];\n\tGetModuleFileNameW(GetModuleHandle(NULL), exePath, _countof(exePath));\n\n\tFileCertVerifier exeVerifier;\n\tif(!exeVerifier.verify(exePath))\n\t{\n\t\t_ERROR(\"exe failed validation\");\n\t\treturn false;\n\t}\n\n\t// unsigned exe, don't bother verifying dll\n\tif(exeVerifier.noSignature())\n\t{\n\t\t_MESSAGE(\"unsigned exe, not verifying dll\");\n\t\treturn true;\n\t}\n\n\t// signed but bad signature? what\n\tif(!exeVerifier.trusted())\n\t{\n\t\t_ERROR(\"bad exe signature\");\n\t\treturn false;\n\t}\n\n\tint numWideChars = MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS, dllPath.data(), (int)dllPath.size(), nullptr, 0);\n\tif(!numWideChars)\n\t{\n\t\tDWORD error = GetLastError();\n\n\t\t_ERROR(\"error converting DLL path to wide characters (count) (%08X)\", error);\n\t\treturn false;\n\t}\n\n\tstd::vector <WCHAR> dllPathWide;\n\tdllPathWide.resize(numWideChars);\n\n\tnumWideChars = MultiByteToWideChar(CP_ACP, MB_ERR_INVALID_CHARS, dllPath.data(), (int)dllPath.size(), dllPathWide.data(), (int)dllPathWide.size());\n\tif(!numWideChars)\n\t{\n\t\tDWORD error = GetLastError();\n\n\t\t_ERROR(\"error converting DLL path to wide characters (convert) (%08X)\", error);\n\t\treturn false;\n\t}\n\n\t// null terminator\n\tdllPathWide.push_back(0);\n\n\tFileCertVerifier dllVerifier;\n\tif(!dllVerifier.verify(dllPathWide.data()))\n\t{\n\t\t_ERROR(\"dll failed validation\");\n\t\treturn false;\n\t}\n\n\tif(!dllVerifier.trusted())\n\t{\n\t\t_ERROR(\"dll untrusted\");\n\t\treturn false;\n\t}\n\n\tif(exeVerifier.serial() != dllVerifier.serial())\n\t{\n\t\t_ERROR(\"serials don't match\");\n\t\treturn false;\n\t}\n\n\t_MESSAGE(\"DLL and EXE signature/serial match\");\n\n\treturn true;\n}\n"
  },
  {
    "path": "sfse_loader/SigCheck.h",
    "content": "#pragma once\n\n#include <string>\n\nbool CheckDLLSignature(const std::string & dllPath);\n"
  },
  {
    "path": "sfse_loader/cmake/config.cmake.in",
    "content": "include(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "sfse_loader/main.cpp",
    "content": "#include <ShlObj.h>\r\n#include <tlhelp32.h>\r\n#include \"sfse_common/Types.h\"\r\n#include \"sfse_common/Errors.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_common/Utilities.h\"\r\n#include \"sfse_common/FileStream.h\"\r\n#include \"sfse_common/CoreInfo.h\"\r\n#include \"LoaderError.h\"\r\n#include \"IdentifyEXE.h\"\r\n#include \"Inject.h\"\r\n#include \"Options.h\"\r\n#include \"SigCheck.h\"\r\n#include <string>\r\n\r\nint main(int argc, char ** argv)\r\n{\r\n\tDebugLog::openRelative(CSIDL_MYDOCUMENTS, \"\\\\My Games\\\\\" SAVE_FOLDER_NAME \"\\\\SFSE\\\\Logs\\\\sfse_loader.txt\");\r\n\t//gLog.SetPrintLevel(IDebugLog::kLevel_FatalError);\r\n\t//gLog.SetLogLevel(IDebugLog::kLevel_DebugMessage);\r\n\r\n\tSYSTEMTIME now;\r\n\tGetSystemTime(&now);\r\n\r\n\t_MESSAGE(\"SFSE loader: initialize (version = %d.%d.%d %08X %04d-%02d-%02d %02d:%02d:%02d, os = %s)\",\r\n\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA, LOADER_VERSION,\r\n\t\tnow.wYear, now.wMonth, now.wDay, now.wHour, now.wMinute, now.wSecond,\r\n\t\tgetOSInfoStr().c_str());\r\n\r\n\tif(!g_options.Read(argc, argv))\r\n\t{\r\n\t\tPrintLoaderError(\"Couldn't read arguments.\");\r\n\t\tg_options.PrintUsage();\r\n\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tif(g_options.m_optionsOnly)\r\n\t{\r\n\t\tg_options.PrintUsage();\r\n\t\treturn 0;\r\n\t}\r\n\r\n//\tif(g_options.m_verbose)\r\n//\t\tgLog.SetPrintLevel(IDebugLog::kLevel_VerboseMessage);\r\n\r\n\tif(g_options.m_launchCS)\r\n\t{\r\n\t\tPrintLoaderError(\"The editor should be launched directly.\");\r\n\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t// get process/dll names\r\n\tbool\t\tdllHasFullPath = false;\r\n\tconst char\t* baseDllName = g_options.m_launchCS ? \"sfse_editor\" : \"sfse\";\r\n\tbool\t\tusedCustomRuntimeName = false;\r\n\r\n\tstd::string\tprocName;\r\n\r\n\tif(g_options.m_launchCS)\r\n\t{\r\n\t\tprocName = \"CreationKit.exe\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tprocName = getConfigOption(\"Loader\", \"RuntimeName\");\r\n\t\tif(!procName.empty())\r\n\t\t{\r\n\t\t\t_MESSAGE(\"using runtime name from config: %s\", procName.c_str());\r\n\t\t\tusedCustomRuntimeName = true;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tprocName = \"Starfield.exe\";\r\n\r\n\t\t\t// check to see if someone screwed up their install\r\n\t\t\tstd::string appName = getRuntimeName();\r\n\t\t\tif(!_stricmp(appName.c_str(), procName.c_str()))\r\n\t\t\t{\r\n\t\t\t\tPrintLoaderError(\"You have renamed sfse_loader and have not specified the name of the runtime.\");\r\n\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst std::string & runtimeDir = getRuntimeDirectory();\r\n\tstd::string procPath = runtimeDir + procName;\r\n\r\n\tif(g_options.m_altEXE.size())\r\n\t{\r\n\t\tprocPath = g_options.m_altEXE;\r\n\t\t_MESSAGE(\"launching alternate exe (%s)\", procPath.c_str());\r\n\t}\r\n\r\n\t_MESSAGE(\"procPath = %s\", procPath.c_str());\r\n\r\n\t// check if the exe exists\r\n\t{\r\n\t\tFileStream\tfileCheck;\r\n\t\tif(!fileCheck.open(procPath.c_str()))\r\n\t\t{\r\n\t\t\tDWORD err = GetLastError();\r\n\t\t\tif(err)\r\n\t\t\t\t_MESSAGE(\"exe open check error = %08X\", err);\r\n\r\n\t\t\tbool msStore = false;\r\n\r\n\t\t\tif(err == ERROR_ACCESS_DENIED)\r\n\t\t\t{\r\n\t\t\t\t// this might be ms store\r\n\t\t\t\tstd::string manifestPath = runtimeDir + \"appxmanifest.xml\";\r\n\r\n\t\t\t\tif(fileCheck.open(manifestPath.c_str()))\r\n\t\t\t\t{\r\n\t\t\t\t\tmsStore = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(msStore)\r\n\t\t\t{\r\n\t\t\t\tPrintLoaderError(\"You have the MS Store/Gamepass version of Starfield, which is not compatible with SFSE.\");\r\n\t\t\t}\r\n\t\t\telse if(usedCustomRuntimeName)\r\n\t\t\t{\r\n\t\t\t\tPrintLoaderError(\"Couldn't find %s. You have customized the runtime name via SFSE's .ini file, and that file does not exist. This can usually be fixed by removing the RuntimeName line from the .ini file.)\", procName.c_str());\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tPrintLoaderError(\"Couldn't find %s.\", procName.c_str());\r\n\t\t\t}\r\n\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\t_MESSAGE(\"launching: %s (%s)\", procName.c_str(), procPath.c_str());\r\n\r\n\tif(g_options.m_altDLL.size())\r\n\t{\r\n\t\tbaseDllName = g_options.m_altDLL.c_str();\r\n\t\t_MESSAGE(\"launching alternate dll (%s)\", baseDllName);\r\n\r\n\t\tdllHasFullPath = true;\r\n\t}\r\n\r\n\tstd::string\t\tdllSuffix;\r\n\tProcHookInfo\tprocHookInfo;\r\n\r\n\t// check exe version\r\n\tif(!IdentifyEXE(procPath.c_str(), g_options.m_launchCS, &dllSuffix, &procHookInfo))\r\n\t{\r\n\t\t_ERROR(\"unknown exe\");\r\n\r\n\t\tif(usedCustomRuntimeName)\r\n\t\t{\r\n\t\t\tPrintLoaderError(\"You have customized the runtime name via SFSE's .ini file. Version errors can usually be fixed by removing the RuntimeName line from the .ini file.\");\r\n\t\t}\r\n\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tif(g_options.m_crcOnly)\r\n\t\treturn 0;\r\n\r\n\t// build dll path\r\n\tstd::string\tdllPath;\r\n\tif(dllHasFullPath)\r\n\t{\r\n\t\tdllPath = baseDllName;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tdllPath = runtimeDir + baseDllName + \"_\" + dllSuffix + \".dll\";\r\n\t}\r\n\r\n\t_MESSAGE(\"dll = %s\", dllPath.c_str());\r\n\r\n\t// check to make sure the dll exists\r\n\t{\r\n\t\tFileStream\ttempFile;\r\n\r\n\t\tif(!tempFile.open(dllPath.c_str()))\r\n\t\t{\r\n\t\t\tPrintLoaderError(\r\n\t\t\t\t\"Couldn't find SFSE DLL (%s).\\n\"\r\n\t\t\t\t\"Either you have not installed SFSE correctly, or a new version of Starfield has been released.\\n\"\r\n\t\t\t\t\"Please make sure you have installed SFSE correctly and are running it from your Starfield folder.\\n\"\r\n\t\t\t\t\"If a game patch was released since you last ran the game, please check the website for updates.\\n\"\r\n\t\t\t\t\"You have game version %d.%d.%d installed. The loader is not lying to you.\\n\"\r\n\t\t\t\t\"Check your game installation if you are still confused.\", dllPath.c_str(), procHookInfo.getVersionMajor(), procHookInfo.getVersionMinor(), procHookInfo.getVersionBuild());\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\t// check to make sure the dll makes sense\r\n\t{\r\n\t\tbool dllOK = false;\r\n\t\tu32 dllVersion = 0;\r\n\r\n\t\tHMODULE resourceHandle = (HMODULE)LoadLibraryEx(dllPath.c_str(), nullptr, LOAD_LIBRARY_AS_IMAGE_RESOURCE);\r\n\t\tif(resourceHandle)\r\n\t\t{\r\n\t\t\tif(is64BitDLL(resourceHandle))\r\n\t\t\t{\r\n\t\t\t\tauto * version = (const SFSECoreVersionData *)getResourceLibraryProcAddress(resourceHandle, \"SFSECore_Version\");\r\n\t\t\t\tif(version)\r\n\t\t\t\t{\r\n\t\t\t\t\tdllVersion = version->runtimeVersion;\r\n\r\n\t\t\t\t\tif(\t(version->dataVersion == SFSECoreVersionData::kVersion) &&\r\n\t\t\t\t\t\t(version->runtimeVersion == procHookInfo.packedVersion))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdllOK = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tFreeLibrary(resourceHandle);\r\n\t\t}\r\n\r\n\t\tif(dllOK)\r\n\t\t{\r\n\t\t\tif(!CheckDLLSignature(dllPath))\r\n\t\t\t\tdllOK = false;\r\n\t\t}\r\n\r\n\t\tif(!dllOK)\r\n\t\t{\r\n\t\t\tbool preSigning = false;\r\n\r\n\t\t\tVS_FIXEDFILEINFO info;\r\n\t\t\tstd::string productName;\r\n\t\t\tstd::string productVersion;\r\n\r\n\t\t\tif(GetFileVersion(dllPath.c_str(), &info, &productName, &productVersion))\r\n\t\t\t{\r\n\t\t\t\t_MESSAGE(\"SFSE DLL version\");\r\n\t\t\t\tDumpVersionInfo(info);\r\n\t\t\t\t_MESSAGE(\"productName = %s\", productName.c_str());\r\n\t\t\t\t_MESSAGE(\"productVersion = %s\", productVersion.c_str());\r\n\r\n\t\t\t\tu64 fullVersion = (u64(info.dwFileVersionMS) << 32) | info.dwFileVersionLS;\r\n\t\t\t\tu64 kFirstSignedVersion = 0x000000000002000E;\r\n\r\n\t\t\t\tif(fullVersion < kFirstSignedVersion)\r\n\t\t\t\t\tpreSigning = true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t_MESSAGE(\"couldn't get file version info\");\r\n\t\t\t}\r\n\r\n\t\t\tif(preSigning)\r\n\t\t\t{\r\n\t\t\t\tPrintLoaderError(\r\n\t\t\t\t\t\"Old SFSE DLL (%s).\\n\"\r\n\t\t\t\t\t\"Please make sure that you have replaced all files with their new versions.\\n\"\r\n\t\t\t\t\t\"DLL version (%s) EXE version (%d.%d.%d)\",\r\n\t\t\t\t\tdllPath.c_str(),\r\n\t\t\t\t\tproductVersion.c_str(),\r\n\t\t\t\t\tSFSE_VERSION_INTEGER, SFSE_VERSION_INTEGER_MINOR, SFSE_VERSION_INTEGER_BETA);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tPrintLoaderError(\r\n\t\t\t\t\t\"Bad SFSE DLL (%s).\\n\"\r\n\t\t\t\t\t\"Do not rename files; it will not magically make anything work.\\n\"\r\n\t\t\t\t\t\"%08X %08X\", dllPath.c_str(), procHookInfo.packedVersion, dllVersion);\r\n\t\t\t}\r\n\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\t// steam setup\r\n\tif(procHookInfo.procType == kProcType_Steam)\r\n\t{\r\n\t\t// ### might not be needed now that there's no intermediate launcher\r\n\t\t\r\n\t\t// same for standard and nogore\r\n\t\tconst char * kAppID = (g_options.m_launchCS == false ? \"1716740\" : \"???\");\r\n\r\n\t\t// set this no matter what to work around launch issues\r\n\t\tSetEnvironmentVariable(\"SteamGameId\", kAppID);\r\n\r\n\t\tif(g_options.m_skipLauncher)\r\n\t\t{\r\n\t\t\tSetEnvironmentVariable(\"SteamAppID\", kAppID);\r\n\t\t}\r\n\t}\r\n\r\n\t// launch the app (suspended)\r\n\tSTARTUPINFO\t\t\tstartupInfo = { 0 };\r\n\tPROCESS_INFORMATION\tprocInfo = { 0 };\r\n\r\n\tstartupInfo.cb = sizeof(startupInfo);\r\n\r\n\tDWORD createFlags = CREATE_SUSPENDED;\r\n\tif(g_options.m_setPriority)\r\n\t\tcreateFlags |= g_options.m_priority;\r\n\r\n\tif(!CreateProcess(\r\n\t\tprocPath.c_str(),\r\n\t\tNULL,\t// no args\r\n\t\tNULL,\t// default process security\r\n\t\tNULL,\t// default thread security\r\n\t\tFALSE,\t// don't inherit handles\r\n\t\tcreateFlags,\r\n\t\tNULL,\t// no new environment\r\n\t\tNULL,\t// no new cwd\r\n\t\t&startupInfo, &procInfo))\r\n\t{\r\n\t\tif(GetLastError() == 740)\r\n\t\t{\r\n\t\t\tPrintLoaderError(\"Launching %s failed (%d). Please try running sfse_loader as an administrator.\", procPath.c_str(), GetLastError());\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tPrintLoaderError(\"Launching %s failed (%d).\", procPath.c_str(), GetLastError());\r\n\t\t}\r\n\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t_MESSAGE(\"main thread id = %d\", procInfo.dwThreadId);\r\n\r\n\t// set affinity if requested\r\n\tif(g_options.m_affinity)\r\n\t{\r\n\t\t_MESSAGE(\"setting affinity mask to %016I64X\", g_options.m_affinity);\r\n\r\n\t\tif(!SetProcessAffinityMask(procInfo.hProcess, g_options.m_affinity))\r\n\t\t{\r\n\t\t\t_WARNING(\"couldn't set affinity mask (%08X)\", GetLastError());\r\n\t\t}\r\n\t}\r\n\r\n\tbool\tinjectionSucceeded = false;\r\n\tu32\t\tprocType = procHookInfo.procType;\r\n\r\n\t// inject the dll\r\n\tswitch(procType)\r\n\t{\r\n\tcase kProcType_Steam:\r\n\tcase kProcType_Normal:\r\n\tcase kProcType_GOG:\r\n\t\tinjectionSucceeded = InjectDLLThread(&procInfo, dllPath.c_str(), true, g_options.m_noTimeout);\r\n\t\tbreak;\r\n\r\n\tdefault:\r\n\t\tHALT(\"impossible\");\r\n\t}\r\n\r\n\t// start the process if successful\r\n\tif(!injectionSucceeded)\r\n\t{\r\n\t\tPrintLoaderError(\"Couldn't inject DLL.\");\r\n\r\n\t\t_ERROR(\"terminating process\");\r\n\r\n\t\tTerminateProcess(procInfo.hProcess, 0);\r\n\t}\r\n\telse\r\n\t{\r\n\t\t_MESSAGE(\"launching\");\r\n\r\n\t\tif(!ResumeThread(procInfo.hThread))\r\n\t\t{\r\n\t\t\t_WARNING(\"WARNING: something has started the runtime outside of sfse_loader's control.\");\r\n\t\t\t_WARNING(\"SFSE will probably not function correctly.\");\r\n\t\t\t_WARNING(\"Try running sfse_loader as an administrator, or check for conflicts with a virus scanner.\");\r\n\t\t}\r\n\r\n\t\tif(g_options.m_waitForClose)\r\n\t\t\tWaitForSingleObject(procInfo.hProcess, INFINITE);\r\n\t}\r\n\r\n\t// clean up\r\n\tCloseHandle(procInfo.hProcess);\r\n\tCloseHandle(procInfo.hThread);\r\n\r\n\treturn 0;\r\n}\r\n"
  },
  {
    "path": "sfse_loader/sfse_loader.manifest",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\r\n\t<application xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n\t\t<windowsSettings>\r\n\t\t\t<dpiAware xmlns=\"http://schemas.microsoft.com/SMI/2005/WindowsSettings\">True/PM</dpiAware>\r\n\t\t</windowsSettings>\r\n\t</application>\r\n</assembly>"
  },
  {
    "path": "sfse_loader/sfse_loader_version.rc",
    "content": "1 VERSIONINFO\n FILEVERSION 0,1,1,1\n PRODUCTVERSION 0,1,1,1\n FILEFLAGSMASK 0x17L\n#ifdef _DEBUG\n FILEFLAGS 0x1L\n#else\n FILEFLAGS 0x0L\n#endif\n FILEOS 0x4L\n FILETYPE 0x1L\n FILESUBTYPE 0x0L\nBEGIN\n    BLOCK \"StringFileInfo\"\n    BEGIN\n        BLOCK \"040904b0\"\n        BEGIN\n            VALUE \"FileDescription\", \"Starfield Script Extender (SFSE) Loader\"\n\t\t\tVALUE \"FileVersion\", \"1.1.1\"\n            VALUE \"InternalName\", \"SFSE\"\n            VALUE \"LegalCopyright\", \"Copyright (C) 2006-2024\"\n            VALUE \"ProductName\", \"SFSE\"\n\t\t\tVALUE \"ProductVersion\", \"1.1.1\"\n        END\n    END\n    BLOCK \"VarFileInfo\"\n    BEGIN\n        VALUE \"Translation\", 0x409, 1200\n    END\nEND\n"
  },
  {
    "path": "sfse_readme.txt",
    "content": "Starfield Script Extender v0.2.19 pre-alpha\r\nby Ian Patterson, Stephen Abel, and Expired\r\n\r\nThe Starfield Script Extender, or SFSE for short, is a modder's resource that expands the scripting capabilities of Starfield. As the editor is not out, it's mostly a plugin loader for now. Depending on where modders show interest, this will expand to Scaleform and Papyrus (or other things) over time.\r\n\r\n[ Compatibility ]\r\n\r\nSFSE will support the latest version of Starfield available on Steam, currently 1.16.236. The Gamepass/MS Store/EGS version is unsupported. Do not email asking for support.\r\n\r\n[ Installation ]\r\n\r\n1. Copy the dll and exe files in to your Starfield folder. This is usually C:\\Program Files\\Steam\\SteamApps\\common\\Starfield\\. Do not put it in your Data folder.\r\n2. Ignore the src folder. It is there for programmers only.\r\n3. Make sure Steam is running, then launch the game by running sfse_loader.exe.\r\n\r\n[ FAQ ]\r\n\r\n* Console version?\r\n- No, not possible due to restrictions put in place by the manufacturers.\r\n\r\n* My virus scanner complains about sfse_loader!\r\n- It is not a virus. To extend the game, we use a technique called DLL injection to load our code. Since this technique can also be used by viruses, some badly-written virus scanners assume that any program doing it is a virus. Adding an exception to your scanner's rules may be necessary.\r\n\r\n* Can I modify and release my own version of SFSE based on the included source code?\r\n- No; the suggested method for extending SFSE is to write a plugin. If this does not meet your needs, please email the contact addresses listed below.\r\n\r\n* Can I include SFSE as part of a mod pack/collection or otherwise rehost the files?\r\n- No. Providing a link to https://www.nexusmods.com/starfield/mods/106 is the suggested method of distribution. Exceptions may be given under applicable circumstances; contact us at the email addresses below. This means that if you see this file available for download anywhere other than https://sfse.silverlock.org, https://www.github.com/ianpatt/sfse, or on Nexus by any user other than https://www.nexusmods.com/users/2166624, that service is violating copyright. I don't like having to explicitly spell this out, but my hand has been forced.\r\n\r\n* Where did the log files go?\r\n- <My Documents>\\My Games\\Starfield\\SFSE\\Logs\\\r\n\r\n* Where does the SFSE.ini file go?\r\n- Data\\SFSE\\SFSE.ini. The .ini is generally not needed. See the whatsnew for .ini options.\r\n\r\n* How do I uninstall SFSE?\r\n- Delete the .dll and .exe files starting with sfse_ from your Starfield folder.\r\n\r\n[ Contact ]\r\n\r\nBefore contacting, make sure that your game launches properly without SFSE first. If SFSE doesn't appear to be working, follow the steps in the FAQ first, then attach everything from <My Documents>\\My Games\\Starfield\\SFSE\\Logs\\ to an email.\r\n\r\n### MAKE SURE TO INCLUDE YOUR LOG FILES AS ATTACHMENTS ###\r\nI cannot help you solve load order problems.\r\nDo not email when a new version of the game is released.\r\n\r\nIan Patterson (ianpatt)\r\nSend email to ianpatt+sfse [at] gmail [dot] com\r\n\r\n[ Standard Disclaimer ]\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n"
  },
  {
    "path": "sfse_whatsnew.txt",
    "content": "0.2.19\r\n- support for 1.16.236\r\n\r\n0.2.18\r\n- support for 1.15.222\r\n\r\n0.2.17\r\n- support for 1.15.216\r\n- compiler setting changes in the most recent game patch have changed the code enough to invalidate the Address Library and most if not all existing plugins. plugins using the Address Library must flag themselves as using version 2 in their compatibility data (see PluginAPI.h)\r\n\r\n0.2.16\r\n- support for 1.14.74\r\n\r\n0.2.15\r\n- fixed sign check compatibility\r\n\r\n0.2.14\r\n- in order to reduce virus scanner false positives, the SFSE components now use a code signature. no, plugins will not need signing.\r\n- removed some unused command line options (mostly ignored rather than removed to reduce end user breakage)\r\n\r\n0.2.13\r\n- support for 1.14.70\r\n- note that major changes have been made to the root game form class, so many older plugins will need to be recompiled to work with game version 1.14.70. this is not an SFSE change, Bethesda updated the game code.\r\n\r\n0.2.12\r\n- disabled preliminary serialization API (stability issues to be resolved later)\r\n\r\n0.2.11\r\n- support for 1.13.61\r\n\r\n0.2.10\r\n- support for 1.12.36\r\n\r\n0.2.9\r\n- support for 1.12.32\r\n\r\n0.2.8\r\n- support for 1.12.30\r\n\r\n0.2.7\r\n- support for 1.11.36\r\n\r\n0.2.6\r\n- the loader has been made version-independent due to continued problems with false positives. it should not need to be updated. this means that we lose out on a bit of diagnostic information (the loader no longer knows the latest version of the game). feel free to blame microsoft for this.\r\n- support for 1.10.32\r\n\r\n0.2.5\r\n- support for 1.10.31\r\n\r\n0.2.4\r\n- support for 1.9.71\r\n\r\n0.2.3\r\n- support for 1.9.67\r\n\r\n0.2.2\r\n- support for 1.9.51\r\n- better error message for ms store\r\n- better error reporting for sfee.dll (CharGenMenu)\r\n\r\n0.2.1\r\n- support for 1.8.88\r\n\r\n0.2.0\r\n- plugin compatibility flag update for the breaking changes in 1.8.86\r\n- plugin developers using SFSE headers: these are not currently up to date. getting a release out with the loader compatibility flags is higher priority. please check github for updates.\r\n\r\n0.1.6\r\n- internal class decoding\r\n- scaleform log enabled via SFSE.ini to avoid spamming the log file\r\n\t[Scaleform]\r\n\tEnableLog=1\r\n- add task interface for plugins\r\n- support for 1.8.86\r\n\r\n0.1.5\r\n- fix crash from PostDataLoad hook\r\n\r\n0.1.4\r\n- internal class decoding\r\n- Post/PostDataLoad messages for plugins\r\n- support for 1.7.36\r\n\r\n0.1.3\r\n- scaleform menu plugin interface\r\n- sfse_loader now reports as dpi-aware\r\n- internal class decoding\r\n- version-independent plugins allowed to work cross-version\r\n- support for 1.7.33\r\n\r\n0.1.2\r\n- switch to DLL CRT so defender stops complaining\r\n- internal class decoding\r\n\r\n0.1.1\r\n- GetSFSEVersion console command\r\n- preliminary custom papyrus native function support\r\n- internal class decoding\r\n- support for 1.7.29\r\n\r\n0.1.0\r\n- plugin manager\r\n- SFSE version shown in pause menu\r\n- support for 1.7.23"
  },
  {
    "path": "xbyak/CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 2.6...4.0.2)\n\nproject(xbyak LANGUAGES CXX VERSION 6.73)\n\nfile(GLOB headers xbyak/*.h)\n\nif (DEFINED CMAKE_VERSION AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.0.2)\n\tinclude(GNUInstallDirs)\n\tadd_library(${PROJECT_NAME} INTERFACE)\n\tadd_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})\n\t\n\ttarget_include_directories(\n\t\t${PROJECT_NAME} INTERFACE\n\t\t\"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>\"\n\t\t\"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>\"\n\t)\n\n\tinstall(\n\t\tTARGETS ${PROJECT_NAME}\n\t\tEXPORT ${PROJECT_NAME}-targets\n\t\tINCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}\n\t)\n\n\tinclude(CMakePackageConfigHelpers)\n\tconfigure_package_config_file(\n\t\tcmake/config.cmake.in\n\t\t\"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake\"\n\t\tINSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n\t)\n\twrite_basic_package_version_file(\n\t\t\"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake\"\n\t\tCOMPATIBILITY SameMajorVersion\n\t)\n\n\tinstall(\n\t\tFILES\n\t\t\t\"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake\"\n\t\t\t\"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake\"\n\t\tDESTINATION\n\t\t\t${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n\t)\n\n\tinstall(\n\t\tEXPORT ${PROJECT_NAME}-targets\n\t\tNAMESPACE ${PROJECT_NAME}::\n\t\tDESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}\n\t)\nelseif(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)\n\tset(CMAKE_INSTALL_INCLUDEDIR \"include\")\nendif()\n\ninstall(\n\tFILES ${headers}\n\tDESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/xbyak\n)\n"
  },
  {
    "path": "xbyak/COPYRIGHT",
    "content": "\r\nCopyright (c) 2007 MITSUNARI Shigeo\r\nAll rights reserved.\r\n\r\nRedistribution and use in source and binary forms, with or without\r\nmodification, are permitted provided that the following conditions are met:\r\n\r\nRedistributions of source code must retain the above copyright notice, this\r\nlist of conditions and the following disclaimer.\r\nRedistributions in binary form must reproduce the above copyright notice,\r\nthis list of conditions and the following disclaimer in the documentation\r\nand/or other materials provided with the distribution.\r\nNeither the name of the copyright owner nor the names of its contributors may\r\nbe used to endorse or promote products derived from this software without\r\nspecific prior written permission.\r\n\r\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r\nARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\r\nLIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r\nSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\nARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\r\nTHE POSSIBILITY OF SUCH DAMAGE.\r\n"
  },
  {
    "path": "xbyak/cmake/config.cmake.in",
    "content": "@PACKAGE_INIT@\n\ninclude(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "xbyak/cmake/meson-config.cmake.in",
    "content": "@PACKAGE_INIT@\n\nif(NOT TARGET @TARGET_NAME@)\n\tadd_library(@TARGET_NAME@ INTERFACE IMPORTED)\n\tset_target_properties(@TARGET_NAME@ PROPERTIES\n\t\tINTERFACE_INCLUDE_DIRECTORIES \"@ABSOLUTE_INCLUDE_DIR@\"\n\t)\nendif()\n"
  },
  {
    "path": "xbyak/readme.md",
    "content": "\n# Xbyak 6.73 [![Badge Build]][Build Status]\n\n*A C++ JIT assembler for x86 (IA32), x64 (AMD64, x86-64)*\n\n## Menu\n\n- [Install]\n- [Usage]\n- [Changelog]\n\n## Abstract\n\nXbyak is a C++ header library that enables dynamically to assemble x86(IA32), x64(AMD64, x86-64) mnemonic.\n\nThe pronunciation of Xbyak is `kəi-bja-k`.\nIt is named from a Japanese word [開闢](https://translate.google.com/?hl=ja&sl=ja&tl=en&text=%E9%96%8B%E9%97%A2&op=translate), which means the beginning of the world.\n\n## Feature\n\n- header file only\n- Intel/MASM like syntax\n- fully support AVX-512\n\n**Note**:\nUse `and_()`, `or_()`, ... instead of `and()`, `or()`.\nIf you want to use them, then specify `-fno-operator-names` option to gcc/clang.\n\n### Derived Projects\n- [Xbyak_aarch64](https://github.com/fujitsu/xbyak_aarch64/) : for AArch64\n- [Xbyak_riscv](https://github.com/herumi/xbyak_riscv) : for RISC-V\n\n### News\n\n- add amx_fp16/avx_vnni_int8/avx_ne_convert/avx-ifma\n- add movdiri, movdir64b, clwb, cldemote\n- WAITPKG instructions (tpause, umonitor, umwait) are supported.\n- MmapAllocator supports memfd with user-defined strings. see sample/memfd.cpp\n- strictly check address offset disp32 in a signed 32-bit integer. e.g., `ptr[(void*)0xffffffff]` causes an error.\n  - define `XBYAK_OLD_DISP_CHECK` if you need an old check, but the option will be remoevd.\n- add `jmp(mem, T_FAR)`, `call(mem, T_FAR)` `retf()` for far absolute indirect jump.\n- vnni instructions such as vpdpbusd supports vex encoding.\n- (break backward compatibility) `push(byte, imm)` (resp. `push(word, imm)`) forces to cast `imm` to 8(resp. 16) bit.\n- (Windows) `#include <winsock2.h>` has been removed from xbyak.h, so add it explicitly if you need it.\n- support exception-less mode see. [Exception-less mode](#exception-less-mode)\n- `XBYAK_USE_MMAP_ALLOCATOR` will be defined on Linux/macOS unless `XBYAK_DONT_USE_MMAP_ALLOCATOR` is defined.\n\n### Supported OS\n\n- Windows (Xp, Vista, 7, 10, 11) (32 / 64 bit)\n- Linux (32 / 64 bit)\n- macOS (Intel CPU)\n\n### Supported Compilers\n\nAlmost C++03 or later compilers for x86/x64 such as Visual Studio, g++, clang++, Intel C++ compiler and g++ on mingw/cygwin.\n\n## License\n\n[BSD-3-Clause License](http://opensource.org/licenses/BSD-3-Clause)\n\n## Author\n\n#### 光成滋生 Mitsunari Shigeo\n [GitHub](https://github.com/herumi) | [Website (Japanese)](http://herumi.in.coocan.jp/) | [herumi@nifty.com](mailto:herumi@nifty.com)\n\n## Sponsors welcome\n[GitHub Sponsor](https://github.com/sponsors/herumi)\n\n<!----------------------------------------------------------------------------->\n\n[Badge Build]: https://github.com/herumi/xbyak/actions/workflows/main.yml/badge.svg\n[Build Status]: https://github.com/herumi/xbyak/actions/workflows/main.yml\n\n[License]: COPYRIGHT\n\n[Changelog]: doc/changelog.md\n[Install]: doc/install.md\n[Usage]: doc/usage.md\n\n"
  },
  {
    "path": "xbyak/readme.txt",
    "content": "\r\n    C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.73\r\n\r\n-----------------------------------------------------------------------------\r\n◎概要\r\n\r\nこれはx86, x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです。\r\nプログラム実行時に動的にアセンブルすることが可能です。\r\n\r\n-----------------------------------------------------------------------------\r\n◎特徴\r\n\r\n・ヘッダファイルオンリー\r\n    xbyak.hをインクルードするだけですぐ利用することができます。\r\n    C++の枠組み内で閉じているため、外部アセンブラは不要です。\r\n    32bit/64bit両対応です。\r\n    対応ニーモニック:特権命令除くx86, MMX/MMX2/SSE/SSE2/SSE3/SSSE3/SSE4/FPU(一部)/AVX/AVX2/FMA/VEX-encoded GPR\r\n\r\n・Windows Xp(32bit, 64bit), Windows 7/Linux(32bit, 64bit)/Intel Mac対応\r\n    Windows Xp, Windows 7上ではVC2008, VC2010, VC2012\r\n    Linux (kernel 3.8)上ではgcc 4.7.3, clang 3.3\r\n    Intel Mac\r\n    などで動作確認をしています。\r\n\r\n※ and, orなどの代わりにand_, or_を使用してください。\r\nand, orなどを使いたい場合は-fno-operator-namesをgcc/clangに指定してください。\r\n\r\n-----------------------------------------------------------------------------\r\n◎準備\r\nxbyak.h\r\nxbyak_bin2hex.h\r\nこれらを同一のパスに入れてインクルードパスに追加してください。\r\n\r\nLinuxではmake installで/usr/local/include/xbyakにコピーされます。\r\n-----------------------------------------------------------------------------\r\n◎下位互換性の破れ\r\n* push byte, immまたはpush word, immが下位8bit, 16bitにキャストした値を使うように変更。\r\n* (Windows) `<winsock2.h>`をincludeしなくなったので必要なら明示的にincludeしてください。\r\n* XBYAK_USE_MMAP_ALLOCATORがデフォルトで有効になりました。従来の方式にする場合はXBYAK_DONT_USE_MMAP_ALLOCATORを定義してください。\r\n* Xbyak::Errorの型をenumからclassに変更\r\n** 従来のenumの値をとるにはintにキャストしてください。\r\n* (古い)Reg32eクラスを(新しい)Reg32eとRegExpに分ける。\r\n** (新しい)Reg32eはReg32かReg64\r\n** (新しい)RegExpは'Reg32e + (Reg32e|Xmm|Ymm) * scale + disp'の型\r\n\r\n-----------------------------------------------------------------------------\r\n◎新機能\r\n\r\n例外なしモード追加\r\nXBYAK_NO_EXCEPTIONを定義してコンパイルするとgcc/clangで-fno-exceptionsオプションでコンパイルできます。\r\nエラーは例外の代わりに`Xbyak::GetError()`で通達されます。\r\nこの値が0でなければ何か問題が発生しています。\r\nこの値は自動的に変更されないので`Xbyak::ClearError()`でリセットしてください。\r\n`CodeGenerator::reset()`は`ClearError()`を呼びます。\r\n\r\nMmapAllocator追加\r\nこれはUnix系OSでのみの仕様です。XBYAK_USE_MMAP_ALLOCATORを使うと利用できます。\r\nデフォルトのAllocatorはメモリ確保時にposix_memalignを使います。\r\nこの領域に対するmprotectはmap countを減らします。\r\nmap countの最大値は/proc/sys/vm/max_map_countに書かれています。\r\nデフォルトでは3万個ほどのXbyak::CodeGeneratorインスタンスを生成するとエラーになります。\r\ntest/mprotect_test.cppで確認できます。\r\nこれを避けるためにはmmapを使うMmapAllocatorを使ってください。\r\n\r\n\r\nAutoGrowモード追加\r\nこれはメモリ伸長を動的に行うモードです。\r\n今まではXbyak::CodeGenerator()に渡したメモリサイズを超えると例外が発生して\r\nいましたが、このモードでは内部でメモリを再確保して伸長します。\r\nただし、getCode()を呼び出す前にジャンプ命令のアドレス解決をするためにready()\r\n関数を呼ぶ必要があります。\r\n\r\n次のように使います。\r\n\r\n struct Code : Xbyak::CodeGenerator {\r\n   Code()\r\n     : Xbyak::CodeGenerator(<default memory size>, Xbyak::AutoGrow)\r\n   {\r\n      ...\r\n   }\r\n };\r\n Code c;\r\n c.ready(); // この呼び出しを忘れてはいけない\r\n\r\n注意1. ready()を呼んで確定するまではgetCurr()で得たポインタは無効化されている\r\n可能性があります。getSize()でoffsetを保持しておきready()のあとにgetCode()を\r\n呼び出してからgetCode() + offsetで新しいポインタを取得してください。\r\n\r\n注意2. AutoGrowモードでは64bitモードの相対アドレッシング[rip]は非サポートです。\r\n\r\n-----------------------------------------------------------------------------\r\n◎文法\r\n\r\nXbyak::CodeGeneratorクラスを継承し、そのクラスメソッド内でx86, x64アセンブラを\r\n記述します。そのメソッドを呼び出した後、getCode()メソッドを呼び出し、その戻\r\nり値を自分が使いたい関数ポインタに変換して利用します。アセンブルエラーは例外\r\nにより通知されます(cf. main.cpp)。\r\n\r\n・基本的にnasmの命令で括弧をつければよいです。\r\n\r\nmov eax, ebx  --> mov(eax, ebx);\r\ninc ecx           inc(ecx);\r\nret           --> ret();\r\n\r\n・アドレッシング\r\n\r\n(ptr|dword|word|byte) [base + index * (1|2|4|8) + displacement]\r\n                      [rip + 32bit disp] ; x64 only\r\nという形で指定します。サイズを指定する必要がない限りptrを使えばよいです。\r\n\r\nセレクター(セグメントレジスタ)をサポートしました。\r\n(注意)セグメントレジスタはOperandを継承していません。\r\n\r\nmov eax, [fs:eax]  --> putSeg(fs); mov(eax, ptr [eax]);\r\nmov ax, cs         --> mov(ax, cs);\r\n\r\nmov eax, [ebx+ecx] --> mov (eax, ptr[ebx+ecx]);\r\ntest byte [esp], 4 --> test (byte [esp], 4);\r\n\r\n(注意) dword, word, byteはメンバ変数です。従ってたとえばunsigned intの\r\nつもりでdwordをtypedefしないでください。\r\n\r\n・AVX\r\n\r\nFMAについては簡略表記を導入するか検討中です(アイデア募集中)。\r\n\r\nvaddps(xmm1, xmm2, xmm3); // xmm1 <- xmm2 + xmm3\r\nvaddps(xmm2, xmm3, ptr [rax]); // メモリアクセスはptrで\r\n\r\nvfmadd231pd(xmm1, xmm2, xmm3); // xmm1 <- (xmm2 * xmm3) + xmm1\r\n\r\n*注意*\r\nデスティネーションの省略形はサポートされなくなりました。\r\n\r\nvaddps(xmm2, xmm3); // xmm2 <- xmm2 + xmm3\r\n\r\nXBYAK_ENABLE_OMITTED_OPERANDを定義すると使えますが、将来はそれも非サポートになるでしょう。\r\n\r\n・AVX-512\r\n\r\nvaddpd zmm2, zmm5, zmm30                --> vaddpd(zmm2, zmm5, zmm30);\r\nvaddpd xmm30, xmm20, [rax]              --> vaddpd(xmm30, xmm20, ptr [rax]);\r\nvaddps xmm30, xmm20, [rax]              --> vaddps(xmm30, xmm20, ptr [rax]);\r\nvaddpd zmm2{k5}, zmm4, zmm2             --> vaddpd(zmm2 | k5, zmm4, zmm2);\r\nvaddpd zmm2{k5}{z}, zmm4, zmm2          --> vaddpd(zmm2 | k5 | T_z, zmm4, zmm2);\r\nvaddpd zmm2{k5}{z}, zmm4, zmm2,{rd-sae} --> vaddpd(zmm2 | k5 | T_z, zmm4, zmm2 | T_rd_sae);\r\n                                            vaddpd(zmm2 | k5 | T_z | T_rd_sae, zmm4, zmm2); // the position of `|` is arbitrary.\r\nvcmppd k4{k3}, zmm1, zmm2, {sae}, 5     --> vcmppd(k4 | k3, zmm1, zmm2 | T_sae, 5);\r\n\r\nvaddpd xmm1, xmm2, [rax+256]{1to2}      --> vaddpd(xmm1, xmm2, ptr_b [rax+256]);\r\nvaddpd ymm1, ymm2, [rax+256]{1to4}      --> vaddpd(ymm1, ymm2, ptr_b [rax+256]);\r\nvaddpd zmm1, zmm2, [rax+256]{1to8}      --> vaddpd(zmm1, zmm2, ptr_b [rax+256]);\r\nvaddps zmm1, zmm2, [rax+rcx*8+8]{1to16} --> vaddps(zmm1, zmm2, ptr_b [rax+rcx*8+8]);\r\nvmovsd [rax]{k1}, xmm4                  --> vmovsd(ptr [rax] | k1, xmm4);\r\n\r\nvcvtpd2dq xmm16, oword [eax+33]         --> vcvtpd2dq(xmm16, xword [eax+33]); // use xword for m128 instead of oword\r\n                                            vcvtpd2dq(xmm16, ptr [eax+33]); // default xword\r\nvcvtpd2dq xmm21, [eax+32]{1to2}         --> vcvtpd2dq(xmm21, ptr_b [eax+32]);\r\nvcvtpd2dq xmm0, yword [eax+33]          --> vcvtpd2dq(xmm0, yword [eax+33]); // use yword for m256\r\nvcvtpd2dq xmm19, [eax+32]{1to4}         --> vcvtpd2dq(xmm19, yword_b [eax+32]); // use yword_b to broadcast\r\n\r\nvfpclassps k5{k3}, zword [rax+64], 5    --> vfpclassps(k5|k3, zword [rax+64], 5); // specify m512\r\nvfpclasspd k5{k3}, [rax+64]{1to2}, 5    --> vfpclasspd(k5|k3, xword_b [rax+64], 5); // broadcast 64-bit to 128-bit\r\nvfpclassps k5{k3}, [rax+64]{1to4}, 5    --> vfpclassps(k5|k3, xword_b [rax+64], 5); // broadcast 64-bit to 256-bit\r\n\r\nvpdpbusd(xm0, xm1, xm2); // default encoding is EVEX\r\nvpdpbusd(xm0, xm1, xm2, EvexEncoding); // same as the above\r\nvpdpbusd(xm0, xm1, xm2, VexEncoding); // VEX encoding\r\nsetDefaultEncoding(VexEncoding); // default encoding is VEX\r\nvpdpbusd(xm0, xm1, xm2); // VEX encoding\r\n注意\r\n* k1, ..., k7 は新しいopmaskレジスタです。\r\n* z, sae, rn-sae, rd-sae, ru-sae, rz-saeの代わりにT_z, T_sae, T_rn_sae, T_rd_sae, T_ru_sae, T_rz_saeを使ってください。\r\n* `k4 | k3`と`k3 | k4`は意味が異なります。\r\n* {1toX}の代わりにptr_bを使ってください。Xは自動的に決まります。\r\n* 一部の命令はメモリサイズを指定するためにxword/yword/zword(_b)を使ってください。\r\n* setDefaultEncoding()でencoding省略時のEVEX/VEXを設定できます。\r\n\r\n・ラベル\r\n\r\nL(文字列);\r\nで定義します。ジャンプするときはその文字列を指定します。後方参照も可能ですが、\r\n相対アドレスが8ビットに収まらない場合はT_NEARをつけないと実行時に例外が発生\r\nします。\r\nmov(eax, \"L2\");の様にラベルが表すアドレスをmovの即値として使えます。\r\n\r\n・hasUndefinedLabel()を呼び出して真ならジャンプ先が存在しないことを示します。\r\nコードを見直してください。\r\n\r\nL(\"L1\");\r\n    jmp (\"L1\");\r\n\r\n    jmp (\"L2\");\r\n    ...\r\n    少しの命令の場合。\r\n    ...\r\nL(\"L2\");\r\n\r\n    jmp (\"L3\", T_NEAR);\r\n    ...\r\n    沢山の命令がある場合\r\n    ...\r\nL(\"L3\");\r\n\r\n<応用編>\r\n\r\n1. MASMライクな@@, @f, @bをサポート\r\n\r\n  L(\"@@\"); // <A>\r\n  jmp(\"@b\"); // jmp to <A>\r\n  jmp(\"@f\"); // jmp to <B>\r\n  L(\"@@\"); // <B>\r\n  jmp(\"@b\"); // jmp to <B>\r\n  mov(eax, \"@b\");\r\n  jmp(eax); // jmp to <B>\r\n\r\n2. ラベルの局所化\r\n\r\nピリオドで始まるラベルをinLocalLabel(), outLocalLabel()で挟むことで局所化できます。\r\ninLocalLabel(), outLocalLabel()は入れ子にすることができます。\r\n\r\nvoid func1()\r\n{\r\n    inLocalLabel();\r\n   L(\".lp\"); // <A> ; ローカルラベル\r\n    ...\r\n    jmp(\".lp\"); // jmpt to <A>\r\n   L(\"aaa\"); // グローバルラベル\r\n    outLocalLabel();\r\n}\r\n\r\nvoid func2()\r\n{\r\n    inLocalLabel();\r\n    L(\".lp\"); // <B> ; ローカルラベル\r\n    func1();\r\n    jmp(\".lp\"); // jmp to <B>\r\n    outLocalLabel();\r\n}\r\n\r\n上記サンプルではinLocalLabel(), outLocalLabel()が無いと、\r\n\".lp\"ラベルの二重定義エラーになります。\r\n\r\n3. 新しいLabelクラスによるジャンプ命令\r\n\r\nジャンプ先を文字列による指定だけでなくラベルクラスを使えるようになりました。\r\n\r\n      Label label1, label2;\r\n    L(label1);\r\n      ...\r\n      jmp(label1);\r\n      ...\r\n      jmp(label2);\r\n      ...\r\n    L(label2);\r\n\r\n更にラベルの割り当てを行うassignL(dstLabel, srcLabel)という命令も追加されました。\r\n\r\n      Label label2;\r\n    Label label1 = L(); // Label label1; L(label1);と同じ意味\r\n      ...\r\n      jmp(label2);\r\n      ...\r\n      assignL(label2, label1);\r\n\r\n上記jmp命令はlabel1にジャンプします。\r\n\r\n制限\r\n* srcLabelはL()により飛び先が確定していないといけません。\r\n* dstLabelはL()により飛び先が確定していてはいけません。\r\n\r\nラベルは`getAddress()`によりそのアドレスを取得できます。\r\n未定義のときは0が返ります。\r\n```\r\n// not AutoGrow mode\r\nLabel label;\r\nassert(label.getAddress(), 0);\r\nL(label);\r\nassert(label.getAddress(), getCurr());\r\n```\r\n\r\n4. farジャンプ\r\n\r\n`jmp(mem, T_FAR)`, `call(mem, T_FAR)`, `retf()`をサポートします。\r\nサイズを明示するために`ptr`の代わりに`word|dword|qword`を利用してください。\r\n\r\n32bit\r\n```\r\njmp(word[eax], T_FAR);  // jmp m16:16(FF /5)\r\njmp(dword[eax], T_FAR); // jmp m16:32(FF /5)\r\n```\r\n\r\n64bit\r\n```\r\njmp(word[rax], T_FAR);  // jmp m16:16(FF /5)\r\njmp(dword[rax], T_FAR); // jmp m16:32(FF /5)\r\njmp(qword[rax], T_FAR); // jmp m16:64(REX.W FF /5)\r\n```\r\n\r\n・Xbyak::CodeGenerator()コンストラクタインタフェース\r\n\r\n@param maxSize [in] コード生成最大サイズ(デフォルト4096byte)\r\n@param userPtr [in] ユーザ指定メモリ\r\n\r\nCodeGenerator(size_t maxSize = DEFAULT_MAX_CODE_SIZE, void *userPtr = 0);\r\n\r\nデフォルトコードサイズは4096(=DEFAULT_MAX_CODE_SIZE)バイトです。\r\nそれより大きなコードを生成する場合はCodeGenerator()のコンストラクタに指定してください。\r\n\r\nclass Quantize : public Xbyak::CodeGenerator {\r\npublic:\r\n    Quantize()\r\n        : CodeGenerator(8192)\r\n    {\r\n    }\r\n    ...\r\n};\r\n\r\nまたユーザ指定メモリをコード生成最大サイズと共に指定すると、CodeGeneratorは\r\n指定されたメモリ上にバイト列を生成します。\r\n\r\n補助関数として指定されたアドレスの実行属性を変更するCodeArray::protect()と\r\n与えられたポインタからアライメントされたポインタを取得するCodeArray::getAlignedAddress()\r\nも用意しました。詳細はsample/test0.cppのuse memory allocated by userを参考に\r\nしてください。\r\n\r\n/**\r\n    change exec permission of memory\r\n    @param addr [in] buffer address\r\n    @param size [in] buffer size\r\n    @param canExec [in] true(enable to exec), false(disable to exec)\r\n    @return true(success), false(failure)\r\n*/\r\nbool CodeArray::protect(const void *addr, size_t size, bool canExec);\r\n\r\n/**\r\n    get aligned memory pointer\r\n*/\r\nuint8 *CodeArray::getAlignedAddress(uint8 *addr, size_t alignedSize = ALIGN_SIZE);\r\n\r\n・read/execモード\r\nデフォルトのCodeGeneratorはコンストラクト時にJIT用の領域をread/write/execモードに設定して利用します。\r\nコード生成時はread/writeでコード実行時にはread/execにしたい場合、次のようにしてください。\r\n\r\nstruct Code : Xbyak::CodeGenerator {\r\n    Code()\r\n        : Xbyak::CodeGenerator(4096, Xbyak::DontUseProtect) // JIT領域をread/writeのままコード生成\r\n    {\r\n        mov(eax, 123);\r\n        ret();\r\n    }\r\n};\r\n\r\nCode c;\r\nc.setProtectModeRE(); // read/execモードに変更\r\n// JIT領域を実行\r\n\r\nAutoGrowの場合はreadyの代わりにreadyRE()を読んでください。\r\n\r\nstruct Code : Xbyak::CodeGenerator {\r\n    Code()\r\n        : Xbyak::CodeGenerator(4096, Xbyak::AutoGrow) // JIT領域をread/writeのままコード生成\r\n    {\r\n        mov(eax, 123);\r\n        ret();\r\n    }\r\n};\r\n\r\nCode c;\r\nc.readyRE(); // read/exeモードに変更\r\n// JIT領域を実行\r\n\r\nsetProtectModeRW()を呼ぶと領域が元のread/execモードに戻ります。\r\n\r\n\r\nその他詳細は各種サンプルを参照してください。\r\n-----------------------------------------------------------------------------\r\n◎マクロ\r\n\r\n32bit環境上でコンパイルするとXBYAK32が、64bit環境上でコンパイルするとXBYAK64が\r\n定義されます。さらに64bit環境上ではWindows(VC)ならXBYAK64_WIN、cygwin, gcc上では\r\nXBYAK64_GCCが定義されます。\r\n\r\n-----------------------------------------------------------------------------\r\n◎使用例\r\n\r\ntest0.cpp ; 簡単な例(x86, x64)\r\nquantize.cpp ; 割り算のJITアセンブルによる量子化の高速化(x86)\r\ncalc.cpp ; 与えられた多項式をアセンブルして実行(x86, x64)\r\n           boost(http://www.boost.org/)が必要\r\nbf.cpp ; JIT Brainfuck(x86, x64)\r\n\r\n-----------------------------------------------------------------------------\r\n◎ライセンス\r\n\r\n修正された新しいBSDライセンスに従います。\r\nhttp://opensource.org/licenses/BSD-3-Clause\r\n\r\nsample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から\r\nいただきました。\r\n\r\n-----------------------------------------------------------------------------\r\n◎履歴\r\n\r\n2023/08/07 ver 6.73 sha512/sm3/sm4/avx-vnni-int16追加\r\n2023/08/02 ver 6.72 xabort, xbegin, xend追加\r\n2023/07/27 ver 6.71 Allocatorでhuge pageを考慮する。\r\n2023/07/05 ver 6.70 vpclmulqdqのailas追加\r\n2023/06/27 ver 6.69.2 `TypeT operator|`にconstexpr追加(thanks to Wunkolo)\r\n2023/03/23 ver 6.69.1 xsave判定追加(thanks to Wunkolo)\r\n2023/02/20 ver 6.69 util::CpuがAMD対応 UINTR命令対応\r\n2022/12/07 ver 6.68 prefetchit{0,1}サポート\r\n2022/11/30 ver 6.67 CMPccXADDサポート\r\n2022/11/25 ver 6.66 RAO-INTサポート\r\n2022/11/22 ver 6.65 x32動作確認\r\n2022/11/04 ver 6.64 vmov*命令をmaskつきアドレッシング対応修正\r\n2022/10/06 ver 6.63 AVX-IFMA用のvpmadd52{h,l}uq対応\r\n2022/10/05          amx_fp16/avx_vnni_int8/avx_ne_convertt対応とsetDefaultEncoding()追加\r\n2022/09/15 ver 6.62 serialize追加\r\n2022/08/02 ver 6.61.1 noexceptはVisual Studio 2015以降対応\r\n2022/07/29 ver 6.61 movzx eax, ahがエラーになるのを修正\r\n2022/06/16 ver 6.60.2 GFNI, VAES, VPCLMULQDQの判定修正\r\n2022/06/15 ver 6.60.1 Visual Studio /O0でXbyak::util::Cpuがリンクエラーになるのに対応\r\n2022/06/06 ver 6.60 バージョンのつけ方を数値が戻らないように変更\r\n2022/06/01 ver 6.06 Cpu::TypeクラスのリファクタリングとXBYAK_USE_MEMFDが定義されたときのMmapAllocatorの改善\r\n2022/05/20 ver 6.052 Cpu::operator==()を正しく定義\r\n2022/05/13 ver 6.051 XYBAK_NO_EXCEPTIONを定義したときのCpuクラスのコンパイルエラー修正\r\n2022/05/12 ver 6.05 movdiri, movdir64b, clwb, cldemoteを追加\r\n2022/04/05 ver 6.04 tpause, umonitor, umwaitを追加\r\n2022/03/08 ver 6.03 MmapAllocatorがmemfd用のユーザ定義文字列をサポート\r\n2022/01/28 ver 6.02 dispacementの32bit範囲チェックの厳密化\r\n2021/12/14 ver 6.01 T_FAR jump/callとretfをサポート\r\n2021/09/14 ver 6.00 AVX512-FP16を完全サポート\r\n2021/09/09 ver 5.997 vrndscale*を{sae}をサポートするよう修正\r\n2021/09/03 ver 5.996 v{add,sub,mul,div,max,min}{sd,ss}をT_rd_saeなどをサポートするよう修正\r\n2021/08/15 ver 5.995 Linux上でXBYAK_USE_MEMFDが定義されたなら/proc/self/mapsにラベル追加\r\n2021/06/17 ver 5.994 マスクレジスタ用のvcmpXX{ps,pd,ss,sd}のalias追加\r\n2021/06/06 ver 5.993 gather/scatterのレジスタの組み合わせの厳密なチェック\r\n2021/05/09 ver 5.992 endbr32とendbr64のサポート\r\n2020/11/16 ver 5.991 g++-5のC++14でconstexpr機能の抑制\r\n2020/10/19 ver 5.99 VNNI命令サポート(Thanks to akharito)\r\n2020/10/17 ver 5.98 [scale * reg]のサポート\r\n2020/09/08 ver 5.97 uint32などをuint32_tに置換\r\n2020/08/28 ver 5.95 レジスタクラスのコンストラクタがconstexprに対応(C++14以降)\r\n2020/08/04 ver 5.941 `CodeGenerator::reset()`が`ClearError()`を呼ぶように変更\r\n2020/07/28 ver 5.94 #include <winsock2.h>の削除 (only windows)\r\n2020/07/21 ver 5.93 例外なしモード追加\r\n2020/06/30 ver 5.92 Intel AMX命令サポート (Thanks to nshustrov)\r\n2020/06/19 ver 5.913 32ビット環境でXBYAK64を定義したときのmov(r64, imm64)を修正\r\n2020/06/19 ver 5.912 macOSの古いXcodeでもMAP_JITを有効にする(Thanks to rsdubtso)\r\n2020/05/10 ver 5.911 Linux/macOSでXBYAK_USE_MMAP_ALLOCATORがデフォルト有効になる\r\n2020/04/20 ver 5.91 マスクレジスタk0を受け入れる(マスクをしない)\r\n2020/04/09 ver 5.90 kmov{b,w,d,q}がサポートされないレジスタを受けると例外を投げる\r\n2020/02/26 ver 5.891 zm0のtype修正\r\n2020/01/03 ver 5.89 vfpclasspdの処理エラー修正\r\n2019/12/20 ver 5.88 Windowsでのコンパイルエラー修正\r\n2019/12/19 ver 5.87 未定義ラベルへのjmp命令のデフォルト挙動をT_NEARにするsetDefaultJmpNEAR()を追加\r\n2019/12/13 ver 5.86 [変更] -fno-operator-namesが指定されたときは5.84以前の挙動に戻す\r\n2019/12/07 ver 5.85 mmapにMAP_JITフラグを追加(macOS mojave以上)\r\n2019/11/29 ver 5.84 [変更] XBYAK_USE_OP_NAMESが定義されていない限りXBYAK_NO_OP_NAMESが定義されるように変更\r\n2019/10/12 ver 5.83 exit(1)の除去\r\n2019/09/23 ver 5.82 monitorx, mwaitx, clzero対応 (thanks to MagurosanTeam)\r\n2019/09/14 ver 5.81 いくつかの一般命令をサポート\r\n2019/08/01 ver 5.802 AVX512_BF16判定修正 (thanks to vpirogov)\r\n2019/05/27 support vp2intersectd, vp2intersectq (not tested)\r\n2019/05/26 ver 5.80 support vcvtne2ps2bf16, vcvtneps2bf16, vdpbf16ps\r\n2019/04/27 ver 5.79 vcmppd/vcmppsのptr_b対応忘れ(thanks to jkopinsky)\r\n2019/04/15 ver 5.78 Reg::changeBit()のリファクタリング(thanks to MerryMage)\r\n2019/03/06 ver 5.77 LLCキャッシュを共有数CPU数の修整(by densamoilov)\r\n2019/01/17 ver 5.76 Cpu::getNumCores()追加(by shelleygoel)\r\n2018/10/31 ver 5.751 互換性のためにXbyak::CastToの復元\r\n2018/10/29 ver 5.75 LabelManagerのデストラクタでLabelから参照を切り離す\r\n2018/10/21 ver 5.74 RegRip +/intの形をサポート Xbyak::CastToを削除\r\n2018/10/15 util::StackFrameでmovの代わりにpush/popを使う\r\n2018/09/19 ver 5.73 vpslld, vpslldq, vpsllwなどの(reg, mem, imm8)に対するevexエンコーディング修整\r\n2018/09/19 ver 5.72 fix the encoding of vinsertps for disp8N(Thanks to petercaday)\r\n2018/08/27 ver 5.71 新しいlabelインスタンスを返すL()を追加\r\n2018/08/27 ver 5.70 read/exec設定のためのsetProtectMode()とDontUseProtectの追加\r\n2018/08/24 ver 5.68 indexが16以上のVSIBエンコーディングのバグ修正(thanks to petercaday)\r\n2018/08/14 ver 5.67 Addressクラス内のmutableを削除 ; fix setCacheHierarchy for cloud vm\r\n2018/07/26 ver 5.661 mingw64対応\r\n2018/07/24 ver 5.66 protect()のmodeにCodeArray::PROTECT_REを追加\r\n2018/06/26 ver 5.65 fix push(qword [mem])\r\n2018/03/07 ver 5.64 Cpu()の中でzero divisionが出ることがあるのを修正\r\n2018/02/14 ver 5.63 Cpu::setCacheHierarchy()の修正とclang<3.9のためのEvexModifierZero修正(thanks to mgouicem)\r\n2018/02/13 ver 5.62 Cpu::setCacheHierarchy() by mgouicem and rsdubtso\r\n2018/02/07 ver 5.61 vmov*がmem{k}{z}形式対応(忘れてた)\r\n2018/01/24 ver 5.601 xword, ywordなどをXbyak::util名前空間に追加\r\n2018/01/05 ver 5.60 Ice lake系命令対応(319433-030.pdf)\r\n2017/08/22 ver 5.53 mpxエンコーディングバグ修正, bnd()プレフィクス追加\r\n2017/08/18 ver 5.52 align修正(thanks to MerryMage)\r\n2017/08/17 ver 5.51 multi-byte nop追加 align()はそれを使用する(thanks to inolen)\r\n2017/08/08 ver 5.50 mpx追加(thanks to magurosan)\r\n2017/08/08 ver 5.45 sha追加(thanks to magurosan)\r\n2017/08/08 ver 5.44 prefetchw追加(thanks to rsdubtso)\r\n2017/07/12 ver 5.432 PVS-studioの警告を減らす\r\n2017/07/09 ver 5.431 hasRex()修正 (影響なし) (thanks to drillsar)\r\n2017/05/14 ver 5.43 CodeGenerator::resetSize()修正(thanks to gibbed)\r\n2017/05/13 ver 5.42 movs{b,w,d,q}追加\r\n2017/01/26 ver 5.41 prefetcwt1追加とscale == 0対応(thanks to rsdubtso)\r\n2016/12/14 ver 5.40 Labelが示すアドレスを取得するLabel::getAddress()追加\r\n2016/12/07 ver 5.34 disp8N時の負のオフセット処理の修正(thanks to rsdubtso)\r\n2016/12/06 ver 5.33 disp8N時のvpbroadcast{b,w,d,q}, vpinsr{b,w}, vpextr{b,w}のバグ修正\r\n2016/12/01 ver 5.32 clang for Visual Studioサポートのために__xgetbv()を_xgetbv()に変更(thanks to freiro)\r\n2016/11/27 ver 5.31 AVX512_4VNNIをAVX512_4VNNIWに変更\r\n2016/11/27 ver 5.30 AVX512_4VNNI, AVX512_4FMAPS命令の追加(thanks to rsdubtso)\r\n2016/11/26 ver 5.20 AVX512_4VNNIとAVX512_4FMAPSの判定追加(thanks to rsdubtso)\r\n2016/11/20 ver 5.11 何故か消えていたvptest for ymm追加(thanks to gregory38)\r\n2016/11/20 ver 5.10 [rip+&var]の形のアドレッシング追加\r\n2016/09/29 ver 5.03 ERR_INVALID_OPMASK_WITH_MEMORYの判定ミス修正(thanks to PVS-Studio)\r\n2016/08/15 ver 5.02 xbyak_bin2hex.hをincludeしない\r\n2016/08/15 ver 5.011 gcc 5.4のバージョン取得ミスの修正\r\n2016/08/03 ver 5.01 AVXの省略表記非サポート\r\n2016/07/24 ver 5.00 avx-512フルサポート\r\n2016/06/13 avx-512 opmask命令サポート\r\n2016/05/05 ver 4.91 AVX-512命令の検出サポート\r\n2016/03/14 ver 4.901 ready()関数にコメント加筆(thanks to skmp)\r\n2016/02/04 ver 4.90 条件分岐命令にjcc(const void *addr);のタイプを追加\r\n2016/01/30 ver 4.89 vpblendvbがymmレジスタをサポートしていなかった(thanks to John Funnell)\r\n2016/01/24 ver 4.88 lea, cmovの16bitレジスタ対応(thanks to whyisthisfieldhere)\r\n2015/08/16 ver 4.87 セグメントセレクタに対応\r\n2015/08/16 ver 4.86 [rip + label]アドレッシングで即値を使うと壊れる(thanks to whyisthisfieldhere)\r\n2015/08/10 ver 4.85 Address::operator==()が間違っている(thanks to inolen)\r\n2015/07/22 ver 4.84 call()がvariadic template対応\r\n2015/05/24 ver 4.83 mobveサポート(thanks to benvanik)\r\n2015/05/24 ver 4.82 F16Cが使えるかどうかの判定追加\r\n2015/04/25 ver 4.81 setSizeが例外を投げる条件を修正(thanks to whyisthisfieldhere)\r\n2015/04/22 ver 4.80 rip相対でLabelのサポート(thanks to whyisthisfieldhere)\r\n2015/01/28 ver 4.71 adcx, adox, cmpxchg, rdseed, stacのサポート\r\n2014/10/14 ver 4.70 MmapAllocatorのサポート\r\n2014/06/13 ver 4.62 VC2014で警告抑制\r\n2014/05/30 ver 4.61 bt, bts, btr, btcのサポート\r\n2014/05/28 ver 4.60 vcvtph2ps, vcvtps2phのサポート\r\n2014/04/11 ver 4.52 rdrandの判定追加\r\n2014/03/25 ver 4.51 参照されなくなったラベルの状態を削除する\r\n2014/03/16 ver 4.50 新しいラベルクラスのサポート\r\n2014/03/05 ver 4.40 VirtualBox上でBMI/enhanced repのサポート判定を間違うことがあるのを修正\r\n2013/12/03 ver 4.30 Reg::cvt8(), cvt16(), cvt32()のサポート\r\n2013/10/16 ver 4.21 ラベルでstd::stringを受け付ける。\r\n2013/07/30 ver 4.20 [break backward compatibility] 従来のReg32eクラスをアドレッシング用のRegExpとReg32, Reg64を表すReg32eに分離\r\n2013/07/04 ver 4.10 [break backward compatibility] Xbyak::Errorの型をenumからclassに変更\r\n2013/06/21 ver 4.02 LABELの指すアドレスを書き込むputL(LABEL)関数の追加。\r\n2013/06/21 ver 4.01 vpsllw, vpslld, vpsllq, vpsraw, vpsrad, vpsrlw, vpsrld, vpsrlq support (ymm, ymm, xmm)\r\n                    support vpbroadcastb, vpbroadcastw, vpbroadcastd, vpbroadcastq(thanks to Gabest)\r\n2013/05/30 ver 4.00 AVX2, VEX-encoded GPR-instructionをサポート\r\n2013/03/27 ver 3.80 mov(reg, \"label\");をサポート\r\n2013/03/13 ver 3.76 cqo, jcxz, jecxz, jrcxz追加\r\n2013/01/15 ver 3.75 生成されたコードを修正するためにsetSize()を追加\r\n2013/01/12 ver 3.74 CodeGenerator::reset()とAllocator::useProtect()を追加\r\n2013/01/06 ver 3.73 可能ならunordered_mapを使う\r\n2012/12/04 ver 3.72 eaxなどをCodeGeneratorのメンバ変数に戻す. Xbyak::util::eaxはstatic const変数\r\n2012/11/17 ver 3.71 and_(), or_(), xor_(), not_()をXBYAK_NO_OP_NAMESが定義されていないときでも使えるようにした\r\n2012/11/17 CodeGeneratorのeax, ecx, ptrなどのメンバ変数をstaticにし、const参照をXbyak::utilにも定義\r\n2012/11/09 ver 3.70 and()をand_()にするためのマクロXBYAK_NO_OP_NAMESを追加(thanks to Mattias)\r\n2012/11/01 ver 3.62 add fwait/fnwait/finit/fninit\r\n2012/11/01 ver 3.61 add fldcw/fstcw\r\n2012/05/03 ver 3.60 Allocatorクラスのインタフェースを変更\r\n2012/03/23 ver 3.51 userPtrモードがバグったのを修正\r\n2012/03/19 ver 3.50 AutoGrowモードサポート\r\n2011/11/09 ver 3.05 rip相対の64bitサイズ以外の扱いのバグ修正 / movsxdサポート\r\n2011/08/15 ver 3.04 add(dword [ebp-8], 0xda);などにおけるimm8の扱いのバグ修正(thanks to lolcat)\r\n2011/06/16 ver 3.03 Macのgcc上での__GNUC_PREREQがミスってたのを修正(thanks to t_teruya)\r\n2011/04/28 ver 3.02 Macのgcc上ではxgetbvをdisable\r\n2011/03/24 ver 3.01 fix typo of OSXSAVE\r\n2011/03/23 ver 3.00  vcmpeqpsなどを追加\r\n2011/02/16 ver 2.994 beta add vmovq for 32-bit mode(I forgot it)\r\n2011/02/16 ver 2.993 beta remove cvtReg to avoid thread unsafe\r\n2011/02/10 ver 2.992 beta support one argument syntax for fadd like nasm\r\n2011/02/07 ver 2.991 beta fix pextrw reg, xmm, imm(Thanks to Gabest)\r\n2011/02/04 ver 2.99 beta support AVX\r\n2010/12/08 ver 2.31 fix ptr [rip + 32bit offset], support rtdscp\r\n2010/10/19 ver 2.30 support pclmulqdq, aesdec, aesdeclast, aesenc, aesenclast, aesimc, aeskeygenassist\r\n2010/07/07 ver 2.29 fix call(<label>)\r\n2010/06/17 ver 2.28 move some member functions to public\r\n2010/06/01 ver 2.27 support encoding of mov(reg64, imm) like yasm(not nasm)\r\n2010/05/24 ver 2.26 fix sub(rsp, 1000)\r\n2010/04/26 ver 2.25 add jc/jnc(I forgot to implement them...)\r\n2010/04/16 ver 2.24 change the prototype of rewrite() method\r\n2010/04/15 ver 2.23 fix align() and xbyak_util.h for Mac\r\n2010/02/16 ver 2.22 fix inLocalLabel()/outLocalLabel()\r\n2009/12/09 ver 2.21 support cygwin(gcc 4.3.2)\r\n2009/11/28 ver 2.20 FPUの一部命令サポート\r\n2009/06/25 ver 2.11 64bitモードでの mov(qword[rax], imm); 修正(thanks to Martinさん)\r\n2009/03/10 ver 2.10 jmp/call reg64の冗長なREG.W削除\r\n2009/02/24 ver 2.09 movq reg64, mmx/xmm; movq mmx/xmm, reg64追加\r\n2009/02/13 ver 2.08 movd(xmm7, dword[eax])が0x66を落とすバグ修正(thanks to Gabestさん)\r\n2008/12/30 ver 2.07 call()の相対アドレスが8bit以下のときのバグ修正(thanks to katoさん)\r\n2008/09/18 ver 2.06 @@, @f, @bとラベルの局所化機能追加(thanks to nobu-qさん)\r\n2008/09/18 ver 2.05 ptr [rip + 32bit offset]サポート(thanks to 団子厨(Dango-Chu)さん)\r\n2008/06/03 ver 2.04 align()のポカミス修正。mov(ptr[eax],1);などをエラーに\r\n2008/06/02 ver 2.03 ユーザ定義メモリインタフェースサポート\r\n2008/05/26 ver 2.02 protect()(on Linux)で不正な設定になることがあるのを修正(thanks to sinichiro_hさん)\r\n2008/04/30 ver 2.01 cmpxchg16b, cdqe追加\r\n2008/04/29 ver 2.00 x86/x64-64版公開\r\n2008/04/25 ver 1.90 x64版β公開\r\n2008/04/18 ver 1.12 コード整理\r\n2008/04/14 ver 1.11 コード整理\r\n2008/03/12 ver 1.10 bsf/bsr追加(忘れていた)\r\n2008/02/14 ver 1.09 sub eax, 1234が16bitモードで出力されていたのを修正(thanks to Robertさん)\r\n2007/11/05 ver 1.08 lock, xadd, xchg追加\r\n2007/11/02 ver 1.07 SSSE3/SSE4対応(thanks to 団子厨(Dango-Chu)さん)\r\n2007/09/25 ver 1.06 call((int)関数ポインタ); jmp((int)関数ポインタ);のサポート\r\n2007/08/04 ver 1.05 細かい修正\r\n2007/02/04 後方へのジャンプでT_NEARをつけないときに8bit相対アドレスに入らない\r\n           場合に例外が発生しないバグの修正\r\n2007/01/21 [disp]の形のアドレス生成のバグ修正\r\n           mov (eax|ax|al, [disp]); mov([disp], eax|ax|al);の短い表現選択\r\n2007/01/17 webページ作成\r\n2007/01/04 公開開始\r\n\r\n-----------------------------------------------------------------------------\r\n◎著作権者\r\n\r\n光成滋生(MITSUNARI Shigeo, herumi@nifty.com)\r\n"
  },
  {
    "path": "xbyak/xbyak/xbyak.h",
    "content": "#pragma once\n#ifndef XBYAK_XBYAK_H_\n#define XBYAK_XBYAK_H_\n/*!\n\t@file xbyak.h\n\t@brief Xbyak ; JIT assembler for x86(IA32)/x64 by C++\n\t@author herumi\n\t@url https://github.com/herumi/xbyak\n\t@note modified new BSD license\n\thttp://opensource.org/licenses/BSD-3-Clause\n*/\n#if (not +0) && !defined(XBYAK_NO_OP_NAMES) // trick to detect whether 'not' is operator or not\n\t#define XBYAK_NO_OP_NAMES\n#endif\n\n#include <stdio.h> // for debug print\n#include <assert.h>\n#include <list>\n#include <string>\n#include <algorithm>\n#ifndef NDEBUG\n#include <iostream>\n#endif\n\n// #define XBYAK_DISABLE_AVX512\n\n#if !defined(XBYAK_USE_MMAP_ALLOCATOR) && !defined(XBYAK_DONT_USE_MMAP_ALLOCATOR)\n\t#define XBYAK_USE_MMAP_ALLOCATOR\n#endif\n#if !defined(__GNUC__) || defined(__MINGW32__)\n\t#undef XBYAK_USE_MMAP_ALLOCATOR\n#endif\n\n#ifdef __GNUC__\n\t#define XBYAK_GNUC_PREREQ(major, minor) ((__GNUC__) * 100 + (__GNUC_MINOR__) >= (major) * 100 + (minor))\n#else\n\t#define XBYAK_GNUC_PREREQ(major, minor) 0\n#endif\n\n// This covers -std=(gnu|c)++(0x|11|1y), -stdlib=libc++, and modern Microsoft.\n#if ((defined(_MSC_VER) && (_MSC_VER >= 1600)) || defined(_LIBCPP_VERSION) ||\\\n\t \t\t\t ((__cplusplus >= 201103) || defined(__GXX_EXPERIMENTAL_CXX0X__)))\n\t#include <unordered_set>\n\t#define XBYAK_STD_UNORDERED_SET std::unordered_set\n\t#include <unordered_map>\n\t#define XBYAK_STD_UNORDERED_MAP std::unordered_map\n\t#define XBYAK_STD_UNORDERED_MULTIMAP std::unordered_multimap\n\n/*\n\tClang/llvm-gcc and ICC-EDG in 'GCC-mode' always claim to be GCC 4.2, using\n\tlibstdcxx 20070719 (from GCC 4.2.1, the last GPL 2 version).\n*/\n#elif XBYAK_GNUC_PREREQ(4, 5) || (XBYAK_GNUC_PREREQ(4, 2) && __GLIBCXX__ >= 20070719) || defined(__INTEL_COMPILER) || defined(__llvm__)\n\t#include <tr1/unordered_set>\n\t#define XBYAK_STD_UNORDERED_SET std::tr1::unordered_set\n\t#include <tr1/unordered_map>\n\t#define XBYAK_STD_UNORDERED_MAP std::tr1::unordered_map\n\t#define XBYAK_STD_UNORDERED_MULTIMAP std::tr1::unordered_multimap\n\n#elif defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER < 1600)\n\t#include <unordered_set>\n\t#define XBYAK_STD_UNORDERED_SET std::tr1::unordered_set\n\t#include <unordered_map>\n\t#define XBYAK_STD_UNORDERED_MAP std::tr1::unordered_map\n\t#define XBYAK_STD_UNORDERED_MULTIMAP std::tr1::unordered_multimap\n\n#else\n\t#include <set>\n\t#define XBYAK_STD_UNORDERED_SET std::set\n\t#include <map>\n\t#define XBYAK_STD_UNORDERED_MAP std::map\n\t#define XBYAK_STD_UNORDERED_MULTIMAP std::multimap\n#endif\n#ifdef _WIN32\n\t#ifndef WIN32_LEAN_AND_MEAN\n\t\t#define WIN32_LEAN_AND_MEAN\n\t#endif\n\t#include <windows.h>\n\t#include <malloc.h>\n\t#ifdef _MSC_VER\n\t\t#define XBYAK_TLS __declspec(thread)\n\t#else\n\t\t#define XBYAK_TLS __thread\n\t#endif\n#elif defined(__GNUC__)\n\t#include <unistd.h>\n\t#include <sys/mman.h>\n\t#include <stdlib.h>\n\t#define XBYAK_TLS __thread\n#endif\n#if defined(__APPLE__) && !defined(XBYAK_DONT_USE_MAP_JIT)\n\t#define XBYAK_USE_MAP_JIT\n\t#include <sys/sysctl.h>\n\t#ifndef MAP_JIT\n\t\t#define MAP_JIT 0x800\n\t#endif\n#endif\n#if !defined(_MSC_VER) || (_MSC_VER >= 1600)\n\t#include <stdint.h>\n#endif\n\n// MFD_CLOEXEC defined only linux 3.17 or later.\n// Android wraps the memfd_create syscall from API version 30.\n#if !defined(MFD_CLOEXEC) || (defined(__ANDROID__) && __ANDROID_API__ < 30)\n\t#undef XBYAK_USE_MEMFD\n#endif\n\n#if defined(_WIN64) || defined(__MINGW64__) || (defined(__CYGWIN__) && defined(__x86_64__))\n\t#define XBYAK64_WIN\n#elif defined(__x86_64__)\n\t#define XBYAK64_GCC\n#endif\n#if !defined(XBYAK64) && !defined(XBYAK32)\n\t#if defined(XBYAK64_GCC) || defined(XBYAK64_WIN)\n\t\t#define XBYAK64\n\t#else\n\t\t#define XBYAK32\n\t#endif\n#endif\n\n#if (__cplusplus >= 201103) || (defined(_MSC_VER) && _MSC_VER >= 1900)\n\t#undef XBYAK_TLS\n\t#define XBYAK_TLS thread_local\n\t#define XBYAK_VARIADIC_TEMPLATE\n\t#define XBYAK_NOEXCEPT noexcept\n#else\n\t#define XBYAK_NOEXCEPT throw()\n#endif\n\n// require c++14 or later\n// Visual Studio 2017 version 15.0 or later\n// g++-6 or later\n#if ((__cplusplus >= 201402L) && !(!defined(__clang__) && defined(__GNUC__) && (__GNUC__ <= 5))) || (defined(_MSC_VER) && _MSC_VER >= 1910)\n\t#define XBYAK_CONSTEXPR constexpr\n#else\n\t#define XBYAK_CONSTEXPR\n#endif\n\n#ifdef _MSC_VER\n\t#pragma warning(push)\n\t#pragma warning(disable : 4514) /* remove inline function */\n\t#pragma warning(disable : 4786) /* identifier is too long */\n\t#pragma warning(disable : 4503) /* name is too long */\n\t#pragma warning(disable : 4127) /* constant expresison */\n#endif\n\n// disable -Warray-bounds because it may be a bug of gcc. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104603\n#if defined(__GNUC__) && !defined(__clang__)\n\t#define XBYAK_DISABLE_WARNING_ARRAY_BOUNDS\n\t#pragma GCC diagnostic push\n\t#pragma GCC diagnostic ignored \"-Warray-bounds\"\n#endif\n\nnamespace Xbyak {\n\nenum {\n\tDEFAULT_MAX_CODE_SIZE = 4096,\n\tVERSION = 0x6730 /* 0xABCD = A.BC(.D) */\n};\n\n#ifndef MIE_INTEGER_TYPE_DEFINED\n#define MIE_INTEGER_TYPE_DEFINED\n// for backward compatibility\ntypedef uint64_t uint64;\ntypedef int64_t sint64;\ntypedef uint32_t uint32;\ntypedef uint16_t uint16;\ntypedef uint8_t uint8;\n#endif\n\n#ifndef MIE_ALIGN\n\t#ifdef _MSC_VER\n\t\t#define MIE_ALIGN(x) __declspec(align(x))\n\t#else\n\t\t#define MIE_ALIGN(x) __attribute__((aligned(x)))\n\t#endif\n#endif\n#ifndef MIE_PACK // for shufps\n\t#define MIE_PACK(x, y, z, w) ((x) * 64 + (y) * 16 + (z) * 4 + (w))\n#endif\n\nenum {\n\tERR_NONE = 0,\n\tERR_BAD_ADDRESSING,\n\tERR_CODE_IS_TOO_BIG,\n\tERR_BAD_SCALE,\n\tERR_ESP_CANT_BE_INDEX,\n\tERR_BAD_COMBINATION,\n\tERR_BAD_SIZE_OF_REGISTER,\n\tERR_IMM_IS_TOO_BIG,\n\tERR_BAD_ALIGN,\n\tERR_LABEL_IS_REDEFINED,\n\tERR_LABEL_IS_TOO_FAR,\n\tERR_LABEL_IS_NOT_FOUND,\n\tERR_CODE_ISNOT_COPYABLE,\n\tERR_BAD_PARAMETER,\n\tERR_CANT_PROTECT,\n\tERR_CANT_USE_64BIT_DISP,\n\tERR_OFFSET_IS_TOO_BIG,\n\tERR_MEM_SIZE_IS_NOT_SPECIFIED,\n\tERR_BAD_MEM_SIZE,\n\tERR_BAD_ST_COMBINATION,\n\tERR_OVER_LOCAL_LABEL, // not used\n\tERR_UNDER_LOCAL_LABEL,\n\tERR_CANT_ALLOC,\n\tERR_ONLY_T_NEAR_IS_SUPPORTED_IN_AUTO_GROW,\n\tERR_BAD_PROTECT_MODE,\n\tERR_BAD_PNUM,\n\tERR_BAD_TNUM,\n\tERR_BAD_VSIB_ADDRESSING,\n\tERR_CANT_CONVERT,\n\tERR_LABEL_ISNOT_SET_BY_L,\n\tERR_LABEL_IS_ALREADY_SET_BY_L,\n\tERR_BAD_LABEL_STR,\n\tERR_MUNMAP,\n\tERR_OPMASK_IS_ALREADY_SET,\n\tERR_ROUNDING_IS_ALREADY_SET,\n\tERR_K0_IS_INVALID,\n\tERR_EVEX_IS_INVALID,\n\tERR_SAE_IS_INVALID,\n\tERR_ER_IS_INVALID,\n\tERR_INVALID_BROADCAST,\n\tERR_INVALID_OPMASK_WITH_MEMORY,\n\tERR_INVALID_ZERO,\n\tERR_INVALID_RIP_IN_AUTO_GROW,\n\tERR_INVALID_MIB_ADDRESS,\n\tERR_X2APIC_IS_NOT_SUPPORTED,\n\tERR_NOT_SUPPORTED,\n\tERR_SAME_REGS_ARE_INVALID,\n\tERR_INTERNAL // Put it at last.\n};\n\ninline const char *ConvertErrorToString(int err)\n{\n\tstatic const char *errTbl[] = {\n\t\t\"none\",\n\t\t\"bad addressing\",\n\t\t\"code is too big\",\n\t\t\"bad scale\",\n\t\t\"esp can't be index\",\n\t\t\"bad combination\",\n\t\t\"bad size of register\",\n\t\t\"imm is too big\",\n\t\t\"bad align\",\n\t\t\"label is redefined\",\n\t\t\"label is too far\",\n\t\t\"label is not found\",\n\t\t\"code is not copyable\",\n\t\t\"bad parameter\",\n\t\t\"can't protect\",\n\t\t\"can't use 64bit disp(use (void*))\",\n\t\t\"offset is too big\",\n\t\t\"MEM size is not specified\",\n\t\t\"bad mem size\",\n\t\t\"bad st combination\",\n\t\t\"over local label\",\n\t\t\"under local label\",\n\t\t\"can't alloc\",\n\t\t\"T_SHORT is not supported in AutoGrow\",\n\t\t\"bad protect mode\",\n\t\t\"bad pNum\",\n\t\t\"bad tNum\",\n\t\t\"bad vsib addressing\",\n\t\t\"can't convert\",\n\t\t\"label is not set by L()\",\n\t\t\"label is already set by L()\",\n\t\t\"bad label string\",\n\t\t\"err munmap\",\n\t\t\"opmask is already set\",\n\t\t\"rounding is already set\",\n\t\t\"k0 is invalid\",\n\t\t\"evex is invalid\",\n\t\t\"sae(suppress all exceptions) is invalid\",\n\t\t\"er(embedded rounding) is invalid\",\n\t\t\"invalid broadcast\",\n\t\t\"invalid opmask with memory\",\n\t\t\"invalid zero\",\n\t\t\"invalid rip in AutoGrow\",\n\t\t\"invalid mib address\",\n\t\t\"x2APIC is not supported\",\n\t\t\"not supported\",\n\t\t\"same regs are invalid\",\n\t\t\"internal error\"\n\t};\n\tassert(ERR_INTERNAL + 1 == sizeof(errTbl) / sizeof(*errTbl));\n\treturn err <= ERR_INTERNAL ? errTbl[err] : \"unknown err\";\n}\n\n#ifdef XBYAK_NO_EXCEPTION\nnamespace local {\n\ninline int& GetErrorRef() {\n\tstatic XBYAK_TLS int err = 0;\n\treturn err;\n}\n\ninline void SetError(int err) {\n\tif (local::GetErrorRef()) return; // keep the first err code\n\tlocal::GetErrorRef() = err;\n}\n\n} // local\n\ninline void ClearError() {\n\tlocal::GetErrorRef() = 0;\n}\ninline int GetError() { return Xbyak::local::GetErrorRef(); }\n\n#define XBYAK_THROW(err) { Xbyak::local::SetError(err); return; }\n#define XBYAK_THROW_RET(err, r) { Xbyak::local::SetError(err); return r; }\n\n#else\nclass Error : public std::exception {\n\tint err_;\npublic:\n\texplicit Error(int err) : err_(err)\n\t{\n\t\tif (err_ < 0 || err_ > ERR_INTERNAL) {\n\t\t\terr_ = ERR_INTERNAL;\n\t\t}\n\t}\n\toperator int() const { return err_; }\n\tconst char *what() const XBYAK_NOEXCEPT\n\t{\n\t\treturn ConvertErrorToString(err_);\n\t}\n};\n\n// dummy functions\ninline void ClearError() { }\ninline int GetError() { return 0; }\n\ninline const char *ConvertErrorToString(const Error& err)\n{\n\treturn err.what();\n}\n\n#define XBYAK_THROW(err) { throw Error(err); }\n#define XBYAK_THROW_RET(err, r) { throw Error(err); }\n\n#endif\n\ninline void *AlignedMalloc(size_t size, size_t alignment)\n{\n#ifdef __MINGW32__\n\treturn __mingw_aligned_malloc(size, alignment);\n#elif defined(_WIN32)\n\treturn _aligned_malloc(size, alignment);\n#else\n\tvoid *p;\n\tint ret = posix_memalign(&p, alignment, size);\n\treturn (ret == 0) ? p : 0;\n#endif\n}\n\ninline void AlignedFree(void *p)\n{\n#ifdef __MINGW32__\n\t__mingw_aligned_free(p);\n#elif defined(_MSC_VER)\n\t_aligned_free(p);\n#else\n\tfree(p);\n#endif\n}\n\ntemplate<class To, class From>\ninline const To CastTo(From p) XBYAK_NOEXCEPT\n{\n\treturn (const To)(size_t)(p);\n}\nnamespace inner {\n\n#ifdef _WIN32\nstruct SystemInfo {\n\tSYSTEM_INFO info;\n\tSystemInfo()\n\t{\n\t\tGetSystemInfo(&info);\n\t}\n};\n#endif\n//static const size_t ALIGN_PAGE_SIZE = 4096;\ninline size_t getPageSize()\n{\n#ifdef _WIN32\n\tstatic const SystemInfo si;\n\treturn si.info.dwPageSize;\n#elif defined(__GNUC__)\n\tstatic const long pageSize = sysconf(_SC_PAGESIZE);\n\tif (pageSize > 0) {\n\t\treturn (size_t)pageSize;\n\t}\n#endif\n\treturn 4096;\n}\n\ninline bool IsInDisp8(uint32_t x) { return 0xFFFFFF80 <= x || x <= 0x7F; }\ninline bool IsInInt32(uint64_t x) { return ~uint64_t(0x7fffffffu) <= x || x <= 0x7FFFFFFFU; }\n\ninline uint32_t VerifyInInt32(uint64_t x)\n{\n#if defined(XBYAK64) && !defined(__ILP32__)\n\tif (!IsInInt32(x)) XBYAK_THROW_RET(ERR_OFFSET_IS_TOO_BIG, 0)\n#endif\n\treturn static_cast<uint32_t>(x);\n}\n\nenum LabelMode {\n\tLasIs, // as is\n\tLabs, // absolute\n\tLaddTop // (addr + top) for mov(reg, label) with AutoGrow\n};\n\n} // inner\n\n/*\n\tcustom allocator\n*/\nstruct Allocator {\n\texplicit Allocator(const std::string& = \"\") {} // same interface with MmapAllocator\n\tvirtual uint8_t *alloc(size_t size) { return reinterpret_cast<uint8_t*>(AlignedMalloc(size, inner::getPageSize())); }\n\tvirtual void free(uint8_t *p) { AlignedFree(p); }\n\tvirtual ~Allocator() {}\n\t/* override to return false if you call protect() manually */\n\tvirtual bool useProtect() const { return true; }\n};\n\n#ifdef XBYAK_USE_MMAP_ALLOCATOR\n#ifdef XBYAK_USE_MAP_JIT\nnamespace util {\n\ninline int getMacOsVersionPure()\n{\n\tchar buf[64];\n\tsize_t size = sizeof(buf);\n\tint err = sysctlbyname(\"kern.osrelease\", buf, &size, NULL, 0);\n\tif (err != 0) return 0;\n\tchar *endp;\n\tint major = strtol(buf, &endp, 10);\n\tif (*endp != '.') return 0;\n\treturn major;\n}\n\ninline int getMacOsVersion()\n{\n\tstatic const int version = getMacOsVersionPure();\n\treturn version;\n}\n\n} // util\n#endif\nclass MmapAllocator : public Allocator {\n\tstruct Allocation {\n\t\tsize_t size;\n#if defined(XBYAK_USE_MEMFD)\n\t\t// fd_ is only used with XBYAK_USE_MEMFD. We keep the file open\n\t\t// during the lifetime of each allocation in order to support\n\t\t// checkpoint/restore by unprivileged users.\n\t\tint fd;\n#endif\n\t};\n\tconst std::string name_; // only used with XBYAK_USE_MEMFD\n\ttypedef XBYAK_STD_UNORDERED_MAP<uintptr_t, Allocation> AllocationList;\n\tAllocationList allocList_;\npublic:\n\texplicit MmapAllocator(const std::string& name = \"xbyak\") : name_(name) {}\n\tuint8_t *alloc(size_t size)\n\t{\n\t\tconst size_t alignedSizeM1 = inner::getPageSize() - 1;\n\t\tsize = (size + alignedSizeM1) & ~alignedSizeM1;\n#if defined(MAP_ANONYMOUS)\n\t\tint mode = MAP_PRIVATE | MAP_ANONYMOUS;\n#elif defined(MAP_ANON)\n\t\tint mode = MAP_PRIVATE | MAP_ANON;\n#else\n\t\t#error \"not supported\"\n#endif\n#if defined(XBYAK_USE_MAP_JIT)\n\t\tconst int mojaveVersion = 18;\n\t\tif (util::getMacOsVersion() >= mojaveVersion) mode |= MAP_JIT;\n#endif\n\t\tint fd = -1;\n#if defined(XBYAK_USE_MEMFD)\n\t\tfd = memfd_create(name_.c_str(), MFD_CLOEXEC);\n\t\tif (fd != -1) {\n\t\t\tmode = MAP_SHARED;\n\t\t\tif (ftruncate(fd, size) != 0) {\n\t\t\t\tclose(fd);\n\t\t\t\tXBYAK_THROW_RET(ERR_CANT_ALLOC, 0)\n\t\t\t}\n\t\t}\n#endif\n\t\tvoid *p = mmap(NULL, size, PROT_READ | PROT_WRITE, mode, fd, 0);\n\t\tif (p == MAP_FAILED) {\n\t\t\tif (fd != -1) close(fd);\n\t\t\tXBYAK_THROW_RET(ERR_CANT_ALLOC, 0)\n\t\t}\n\t\tassert(p);\n\t\tAllocation &alloc = allocList_[(uintptr_t)p];\n\t\talloc.size = size;\n#if defined(XBYAK_USE_MEMFD)\n\t\talloc.fd = fd;\n#endif\n\t\treturn (uint8_t*)p;\n\t}\n\tvoid free(uint8_t *p)\n\t{\n\t\tif (p == 0) return;\n\t\tAllocationList::iterator i = allocList_.find((uintptr_t)p);\n\t\tif (i == allocList_.end()) XBYAK_THROW(ERR_BAD_PARAMETER)\n\t\tif (munmap((void*)i->first, i->second.size) < 0) XBYAK_THROW(ERR_MUNMAP)\n#if defined(XBYAK_USE_MEMFD)\n\t\tif (i->second.fd != -1) close(i->second.fd);\n#endif\n\t\tallocList_.erase(i);\n\t}\n};\n#else\ntypedef Allocator MmapAllocator;\n#endif\n\nclass Address;\nclass Reg;\n\nclass Operand {\n\tstatic const uint8_t EXT8BIT = 0x20;\n\tunsigned int idx_:6; // 0..31 + EXT8BIT = 1 if spl/bpl/sil/dil\n\tunsigned int kind_:10;\n\tunsigned int bit_:14;\nprotected:\n\tunsigned int zero_:1;\n\tunsigned int mask_:3;\n\tunsigned int rounding_:3;\n\tvoid setIdx(int idx) { idx_ = idx; }\npublic:\n\tenum Kind {\n\t\tNONE = 0,\n\t\tMEM = 1 << 0,\n\t\tREG = 1 << 1,\n\t\tMMX = 1 << 2,\n\t\tFPU = 1 << 3,\n\t\tXMM = 1 << 4,\n\t\tYMM = 1 << 5,\n\t\tZMM = 1 << 6,\n\t\tOPMASK = 1 << 7,\n\t\tBNDREG = 1 << 8,\n\t\tTMM = 1 << 9\n\t};\n\tenum Code {\n#ifdef XBYAK64\n\t\tRAX = 0, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8, R9, R10, R11, R12, R13, R14, R15,\n\t\tR8D = 8, R9D, R10D, R11D, R12D, R13D, R14D, R15D,\n\t\tR8W = 8, R9W, R10W, R11W, R12W, R13W, R14W, R15W,\n\t\tR8B = 8, R9B, R10B, R11B, R12B, R13B, R14B, R15B,\n\t\tSPL = 4, BPL, SIL, DIL,\n#endif\n\t\tEAX = 0, ECX, EDX, EBX, ESP, EBP, ESI, EDI,\n\t\tAX = 0, CX, DX, BX, SP, BP, SI, DI,\n\t\tAL = 0, CL, DL, BL, AH, CH, DH, BH\n\t};\n\tXBYAK_CONSTEXPR Operand() : idx_(0), kind_(0), bit_(0), zero_(0), mask_(0), rounding_(0) { }\n\tXBYAK_CONSTEXPR Operand(int idx, Kind kind, int bit, bool ext8bit = 0)\n\t\t: idx_(static_cast<uint8_t>(idx | (ext8bit ? EXT8BIT : 0)))\n\t\t, kind_(kind)\n\t\t, bit_(bit)\n\t\t, zero_(0), mask_(0), rounding_(0)\n\t{\n\t\tassert((bit_ & (bit_ - 1)) == 0); // bit must be power of two\n\t}\n\tXBYAK_CONSTEXPR Kind getKind() const { return static_cast<Kind>(kind_); }\n\tXBYAK_CONSTEXPR int getIdx() const { return idx_ & (EXT8BIT - 1); }\n\tXBYAK_CONSTEXPR bool isNone() const { return kind_ == 0; }\n\tXBYAK_CONSTEXPR bool isMMX() const { return is(MMX); }\n\tXBYAK_CONSTEXPR bool isXMM() const { return is(XMM); }\n\tXBYAK_CONSTEXPR bool isYMM() const { return is(YMM); }\n\tXBYAK_CONSTEXPR bool isZMM() const { return is(ZMM); }\n\tXBYAK_CONSTEXPR bool isTMM() const { return is(TMM); }\n\tXBYAK_CONSTEXPR bool isXMEM() const { return is(XMM | MEM); }\n\tXBYAK_CONSTEXPR bool isYMEM() const { return is(YMM | MEM); }\n\tXBYAK_CONSTEXPR bool isZMEM() const { return is(ZMM | MEM); }\n\tXBYAK_CONSTEXPR bool isOPMASK() const { return is(OPMASK); }\n\tXBYAK_CONSTEXPR bool isBNDREG() const { return is(BNDREG); }\n\tXBYAK_CONSTEXPR bool isREG(int bit = 0) const { return is(REG, bit); }\n\tXBYAK_CONSTEXPR bool isMEM(int bit = 0) const { return is(MEM, bit); }\n\tXBYAK_CONSTEXPR bool isFPU() const { return is(FPU); }\n\tXBYAK_CONSTEXPR bool isExt8bit() const { return (idx_ & EXT8BIT) != 0; }\n\tXBYAK_CONSTEXPR bool isExtIdx() const { return (getIdx() & 8) != 0; }\n\tXBYAK_CONSTEXPR bool isExtIdx2() const { return (getIdx() & 16) != 0; }\n\tXBYAK_CONSTEXPR bool hasEvex() const { return isZMM() || isExtIdx2() || getOpmaskIdx() || getRounding(); }\n\tXBYAK_CONSTEXPR bool hasRex() const { return isExt8bit() || isREG(64) || isExtIdx(); }\n\tXBYAK_CONSTEXPR bool hasZero() const { return zero_; }\n\tXBYAK_CONSTEXPR int getOpmaskIdx() const { return mask_; }\n\tXBYAK_CONSTEXPR int getRounding() const { return rounding_; }\n\tvoid setKind(Kind kind)\n\t{\n\t\tif ((kind & (XMM|YMM|ZMM|TMM)) == 0) return;\n\t\tkind_ = kind;\n\t\tbit_ = kind == XMM ? 128 : kind == YMM ? 256 : kind == ZMM ? 512 : 8192;\n\t}\n\t// err if MMX/FPU/OPMASK/BNDREG\n\tvoid setBit(int bit);\n\tvoid setOpmaskIdx(int idx, bool /*ignore_idx0*/ = true)\n\t{\n\t\tif (mask_) XBYAK_THROW(ERR_OPMASK_IS_ALREADY_SET)\n\t\tmask_ = idx;\n\t}\n\tvoid setRounding(int idx)\n\t{\n\t\tif (rounding_) XBYAK_THROW(ERR_ROUNDING_IS_ALREADY_SET)\n\t\trounding_ = idx;\n\t}\n\tvoid setZero() { zero_ = true; }\n\t// ah, ch, dh, bh?\n\tbool isHigh8bit() const\n\t{\n\t\tif (!isBit(8)) return false;\n\t\tif (isExt8bit()) return false;\n\t\tconst int idx = getIdx();\n\t\treturn AH <= idx && idx <= BH;\n\t}\n\t// any bit is accetable if bit == 0\n\tXBYAK_CONSTEXPR bool is(int kind, uint32_t bit = 0) const\n\t{\n\t\treturn (kind == 0 || (kind_ & kind)) && (bit == 0 || (bit_ & bit)); // cf. you can set (8|16)\n\t}\n\tXBYAK_CONSTEXPR bool isBit(uint32_t bit) const { return (bit_ & bit) != 0; }\n\tXBYAK_CONSTEXPR uint32_t getBit() const { return bit_; }\n\tconst char *toString() const\n\t{\n\t\tconst int idx = getIdx();\n\t\tif (kind_ == REG) {\n\t\t\tif (isExt8bit()) {\n\t\t\t\tstatic const char *tbl[4] = { \"spl\", \"bpl\", \"sil\", \"dil\" };\n\t\t\t\treturn tbl[idx - 4];\n\t\t\t}\n\t\t\tstatic const char *tbl[4][16] = {\n\t\t\t\t{ \"al\", \"cl\", \"dl\", \"bl\", \"ah\", \"ch\", \"dh\", \"bh\", \"r8b\", \"r9b\", \"r10b\",  \"r11b\", \"r12b\", \"r13b\", \"r14b\", \"r15b\" },\n\t\t\t\t{ \"ax\", \"cx\", \"dx\", \"bx\", \"sp\", \"bp\", \"si\", \"di\", \"r8w\", \"r9w\", \"r10w\",  \"r11w\", \"r12w\", \"r13w\", \"r14w\", \"r15w\" },\n\t\t\t\t{ \"eax\", \"ecx\", \"edx\", \"ebx\", \"esp\", \"ebp\", \"esi\", \"edi\", \"r8d\", \"r9d\", \"r10d\",  \"r11d\", \"r12d\", \"r13d\", \"r14d\", \"r15d\" },\n\t\t\t\t{ \"rax\", \"rcx\", \"rdx\", \"rbx\", \"rsp\", \"rbp\", \"rsi\", \"rdi\", \"r8\", \"r9\", \"r10\",  \"r11\", \"r12\", \"r13\", \"r14\", \"r15\" },\n\t\t\t};\n\t\t\treturn tbl[bit_ == 8 ? 0 : bit_ == 16 ? 1 : bit_ == 32 ? 2 : 3][idx];\n\t\t} else if (isOPMASK()) {\n\t\t\tstatic const char *tbl[8] = { \"k0\", \"k1\", \"k2\", \"k3\", \"k4\", \"k5\", \"k6\", \"k7\" };\n\t\t\treturn tbl[idx];\n\t\t} else if (isTMM()) {\n\t\t\tstatic const char *tbl[8] = {\n\t\t\t\t\"tmm0\", \"tmm1\", \"tmm2\", \"tmm3\", \"tmm4\", \"tmm5\", \"tmm6\", \"tmm7\"\n\t\t\t};\n\t\t\treturn tbl[idx];\n\t\t} else if (isZMM()) {\n\t\t\tstatic const char *tbl[32] = {\n\t\t\t\t\"zmm0\", \"zmm1\", \"zmm2\", \"zmm3\", \"zmm4\", \"zmm5\", \"zmm6\", \"zmm7\", \"zmm8\", \"zmm9\", \"zmm10\", \"zmm11\", \"zmm12\", \"zmm13\", \"zmm14\", \"zmm15\",\n\t\t\t\t\"zmm16\", \"zmm17\", \"zmm18\", \"zmm19\", \"zmm20\", \"zmm21\", \"zmm22\", \"zmm23\", \"zmm24\", \"zmm25\", \"zmm26\", \"zmm27\", \"zmm28\", \"zmm29\", \"zmm30\", \"zmm31\"\n\t\t\t};\n\t\t\treturn tbl[idx];\n\t\t} else if (isYMM()) {\n\t\t\tstatic const char *tbl[32] = {\n\t\t\t\t\"ymm0\", \"ymm1\", \"ymm2\", \"ymm3\", \"ymm4\", \"ymm5\", \"ymm6\", \"ymm7\", \"ymm8\", \"ymm9\", \"ymm10\", \"ymm11\", \"ymm12\", \"ymm13\", \"ymm14\", \"ymm15\",\n\t\t\t\t\"ymm16\", \"ymm17\", \"ymm18\", \"ymm19\", \"ymm20\", \"ymm21\", \"ymm22\", \"ymm23\", \"ymm24\", \"ymm25\", \"ymm26\", \"ymm27\", \"ymm28\", \"ymm29\", \"ymm30\", \"ymm31\"\n\t\t\t};\n\t\t\treturn tbl[idx];\n\t\t} else if (isXMM()) {\n\t\t\tstatic const char *tbl[32] = {\n\t\t\t\t\"xmm0\", \"xmm1\", \"xmm2\", \"xmm3\", \"xmm4\", \"xmm5\", \"xmm6\", \"xmm7\", \"xmm8\", \"xmm9\", \"xmm10\", \"xmm11\", \"xmm12\", \"xmm13\", \"xmm14\", \"xmm15\",\n\t\t\t\t\"xmm16\", \"xmm17\", \"xmm18\", \"xmm19\", \"xmm20\", \"xmm21\", \"xmm22\", \"xmm23\", \"xmm24\", \"xmm25\", \"xmm26\", \"xmm27\", \"xmm28\", \"xmm29\", \"xmm30\", \"xmm31\"\n\t\t\t};\n\t\t\treturn tbl[idx];\n\t\t} else if (isMMX()) {\n\t\t\tstatic const char *tbl[8] = { \"mm0\", \"mm1\", \"mm2\", \"mm3\", \"mm4\", \"mm5\", \"mm6\", \"mm7\" };\n\t\t\treturn tbl[idx];\n\t\t} else if (isFPU()) {\n\t\t\tstatic const char *tbl[8] = { \"st0\", \"st1\", \"st2\", \"st3\", \"st4\", \"st5\", \"st6\", \"st7\" };\n\t\t\treturn tbl[idx];\n\t\t} else if (isBNDREG()) {\n\t\t\tstatic const char *tbl[4] = { \"bnd0\", \"bnd1\", \"bnd2\", \"bnd3\" };\n\t\t\treturn tbl[idx];\n\t\t}\n\t\tXBYAK_THROW_RET(ERR_INTERNAL, 0);\n\t}\n\tbool isEqualIfNotInherited(const Operand& rhs) const { return idx_ == rhs.idx_ && kind_ == rhs.kind_ && bit_ == rhs.bit_ && zero_ == rhs.zero_ && mask_ == rhs.mask_ && rounding_ == rhs.rounding_; }\n\tbool operator==(const Operand& rhs) const;\n\tbool operator!=(const Operand& rhs) const { return !operator==(rhs); }\n\tconst Address& getAddress() const;\n\tconst Reg& getReg() const;\n};\n\ninline void Operand::setBit(int bit)\n{\n\tif (bit != 8 && bit != 16 && bit != 32 && bit != 64 && bit != 128 && bit != 256 && bit != 512 && bit != 8192) goto ERR;\n\tif (isBit(bit)) return;\n\tif (is(MEM | OPMASK)) {\n\t\tbit_ = bit;\n\t\treturn;\n\t}\n\tif (is(REG | XMM | YMM | ZMM | TMM)) {\n\t\tint idx = getIdx();\n\t\t// err if converting ah, bh, ch, dh\n\t\tif (isREG(8) && (4 <= idx && idx < 8) && !isExt8bit()) goto ERR;\n\t\tKind kind = REG;\n\t\tswitch (bit) {\n\t\tcase 8:\n\t\t\tif (idx >= 16) goto ERR;\n#ifdef XBYAK32\n\t\t\tif (idx >= 4) goto ERR;\n#else\n\t\t\tif (4 <= idx && idx < 8) idx |= EXT8BIT;\n#endif\n\t\t\tbreak;\n\t\tcase 16:\n\t\tcase 32:\n\t\tcase 64:\n\t\t\tif (idx >= 16) goto ERR;\n\t\t\tbreak;\n\t\tcase 128: kind = XMM; break;\n\t\tcase 256: kind = YMM; break;\n\t\tcase 512: kind = ZMM; break;\n\t\tcase 8192: kind = TMM; break;\n\t\t}\n\t\tidx_ = idx;\n\t\tkind_ = kind;\n\t\tbit_ = bit;\n\t\tif (bit >= 128) return; // keep mask_ and rounding_\n\t\tmask_ = 0;\n\t\trounding_ = 0;\n\t\treturn;\n\t}\nERR:\n\tXBYAK_THROW(ERR_CANT_CONVERT)\n}\n\nclass Label;\n\nstruct Reg8;\nstruct Reg16;\nstruct Reg32;\n#ifdef XBYAK64\nstruct Reg64;\n#endif\nclass Reg : public Operand {\npublic:\n\tXBYAK_CONSTEXPR Reg() { }\n\tXBYAK_CONSTEXPR Reg(int idx, Kind kind, int bit = 0, bool ext8bit = false) : Operand(idx, kind, bit, ext8bit) { }\n\t// convert to Reg8/Reg16/Reg32/Reg64/XMM/YMM/ZMM\n\tReg changeBit(int bit) const { Reg r(*this); r.setBit(bit); return r; }\n\tuint8_t getRexW() const { return isREG(64) ? 8 : 0; }\n\tuint8_t getRexR() const { return isExtIdx() ? 4 : 0; }\n\tuint8_t getRexX() const { return isExtIdx() ? 2 : 0; }\n\tuint8_t getRexB() const { return isExtIdx() ? 1 : 0; }\n\tuint8_t getRex(const Reg& base = Reg()) const\n\t{\n\t\tuint8_t rex = getRexW() | getRexR() | base.getRexW() | base.getRexB();\n\t\tif (rex || isExt8bit() || base.isExt8bit()) rex |= 0x40;\n\t\treturn rex;\n\t}\n\tReg8 cvt8() const;\n\tReg16 cvt16() const;\n\tReg32 cvt32() const;\n#ifdef XBYAK64\n\tReg64 cvt64() const;\n#endif\n};\n\ninline const Reg& Operand::getReg() const\n{\n\tassert(!isMEM());\n\treturn static_cast<const Reg&>(*this);\n}\n\nstruct Reg8 : public Reg {\n\texplicit XBYAK_CONSTEXPR Reg8(int idx = 0, bool ext8bit = false) : Reg(idx, Operand::REG, 8, ext8bit) { }\n};\n\nstruct Reg16 : public Reg {\n\texplicit XBYAK_CONSTEXPR Reg16(int idx = 0) : Reg(idx, Operand::REG, 16) { }\n};\n\nstruct Mmx : public Reg {\n\texplicit XBYAK_CONSTEXPR Mmx(int idx = 0, Kind kind = Operand::MMX, int bit = 64) : Reg(idx, kind, bit) { }\n};\n\nstruct EvexModifierRounding {\n\tenum {\n\t\tT_RN_SAE = 1,\n\t\tT_RD_SAE = 2,\n\t\tT_RU_SAE = 3,\n\t\tT_RZ_SAE = 4,\n\t\tT_SAE = 5\n\t};\n\texplicit XBYAK_CONSTEXPR EvexModifierRounding(int rounding) : rounding(rounding) {}\n\tint rounding;\n};\nstruct EvexModifierZero{ XBYAK_CONSTEXPR EvexModifierZero() {}};\n\nstruct Xmm : public Mmx {\n\texplicit XBYAK_CONSTEXPR Xmm(int idx = 0, Kind kind = Operand::XMM, int bit = 128) : Mmx(idx, kind, bit) { }\n\tXBYAK_CONSTEXPR Xmm(Kind kind, int idx) : Mmx(idx, kind, kind == XMM ? 128 : kind == YMM ? 256 : 512) { }\n\tXmm operator|(const EvexModifierRounding& emr) const { Xmm r(*this); r.setRounding(emr.rounding); return r; }\n\tXmm copyAndSetIdx(int idx) const { Xmm ret(*this); ret.setIdx(idx); return ret; }\n\tXmm copyAndSetKind(Operand::Kind kind) const { Xmm ret(*this); ret.setKind(kind); return ret; }\n};\n\nstruct Ymm : public Xmm {\n\texplicit XBYAK_CONSTEXPR Ymm(int idx = 0, Kind kind = Operand::YMM, int bit = 256) : Xmm(idx, kind, bit) { }\n\tYmm operator|(const EvexModifierRounding& emr) const { Ymm r(*this); r.setRounding(emr.rounding); return r; }\n};\n\nstruct Zmm : public Ymm {\n\texplicit XBYAK_CONSTEXPR Zmm(int idx = 0) : Ymm(idx, Operand::ZMM, 512) { }\n\tZmm operator|(const EvexModifierRounding& emr) const { Zmm r(*this); r.setRounding(emr.rounding); return r; }\n};\n\n#ifdef XBYAK64\nstruct Tmm : public Reg {\n\texplicit XBYAK_CONSTEXPR Tmm(int idx = 0, Kind kind = Operand::TMM, int bit = 8192) : Reg(idx, kind, bit) { }\n};\n#endif\n\nstruct Opmask : public Reg {\n\texplicit XBYAK_CONSTEXPR Opmask(int idx = 0) : Reg(idx, Operand::OPMASK, 64) {}\n};\n\nstruct BoundsReg : public Reg {\n\texplicit XBYAK_CONSTEXPR BoundsReg(int idx = 0) : Reg(idx, Operand::BNDREG, 128) {}\n};\n\ntemplate<class T>T operator|(const T& x, const Opmask& k) { T r(x); r.setOpmaskIdx(k.getIdx()); return r; }\ntemplate<class T>T operator|(const T& x, const EvexModifierZero&) { T r(x); r.setZero(); return r; }\ntemplate<class T>T operator|(const T& x, const EvexModifierRounding& emr) { T r(x); r.setRounding(emr.rounding); return r; }\n\nstruct Fpu : public Reg {\n\texplicit XBYAK_CONSTEXPR Fpu(int idx = 0) : Reg(idx, Operand::FPU, 32) { }\n};\n\nstruct Reg32e : public Reg {\n\texplicit XBYAK_CONSTEXPR Reg32e(int idx, int bit) : Reg(idx, Operand::REG, bit) {}\n};\nstruct Reg32 : public Reg32e {\n\texplicit XBYAK_CONSTEXPR Reg32(int idx = 0) : Reg32e(idx, 32) {}\n};\n#ifdef XBYAK64\nstruct Reg64 : public Reg32e {\n\texplicit XBYAK_CONSTEXPR Reg64(int idx = 0) : Reg32e(idx, 64) {}\n};\nstruct RegRip {\n\tint64_t disp_;\n\tconst Label* label_;\n\tbool isAddr_;\n\texplicit XBYAK_CONSTEXPR RegRip(int64_t disp = 0, const Label* label = 0, bool isAddr = false) : disp_(disp), label_(label), isAddr_(isAddr) {}\n\tfriend const RegRip operator+(const RegRip& r, int disp) {\n\t\treturn RegRip(r.disp_ + disp, r.label_, r.isAddr_);\n\t}\n\tfriend const RegRip operator-(const RegRip& r, int disp) {\n\t\treturn RegRip(r.disp_ - disp, r.label_, r.isAddr_);\n\t}\n\tfriend const RegRip operator+(const RegRip& r, int64_t disp) {\n\t\treturn RegRip(r.disp_ + disp, r.label_, r.isAddr_);\n\t}\n\tfriend const RegRip operator-(const RegRip& r, int64_t disp) {\n\t\treturn RegRip(r.disp_ - disp, r.label_, r.isAddr_);\n\t}\n\tfriend const RegRip operator+(const RegRip& r, const Label& label) {\n\t\tif (r.label_ || r.isAddr_) XBYAK_THROW_RET(ERR_BAD_ADDRESSING, RegRip());\n\t\treturn RegRip(r.disp_, &label);\n\t}\n\tfriend const RegRip operator+(const RegRip& r, const void *addr) {\n\t\tif (r.label_ || r.isAddr_) XBYAK_THROW_RET(ERR_BAD_ADDRESSING, RegRip());\n\t\treturn RegRip(r.disp_ + (int64_t)addr, 0, true);\n\t}\n};\n#endif\n\ninline Reg8 Reg::cvt8() const\n{\n\tReg r = changeBit(8); return Reg8(r.getIdx(), r.isExt8bit());\n}\n\ninline Reg16 Reg::cvt16() const\n{\n\treturn Reg16(changeBit(16).getIdx());\n}\n\ninline Reg32 Reg::cvt32() const\n{\n\treturn Reg32(changeBit(32).getIdx());\n}\n\n#ifdef XBYAK64\ninline Reg64 Reg::cvt64() const\n{\n\treturn Reg64(changeBit(64).getIdx());\n}\n#endif\n\n#ifndef XBYAK_DISABLE_SEGMENT\n// not derived from Reg\nclass Segment {\n\tint idx_;\npublic:\n\tenum {\n\t\tes, cs, ss, ds, fs, gs\n\t};\n\texplicit XBYAK_CONSTEXPR Segment(int idx) : idx_(idx) { assert(0 <= idx_ && idx_ < 6); }\n\tint getIdx() const { return idx_; }\n\tconst char *toString() const\n\t{\n\t\tstatic const char tbl[][3] = {\n\t\t\t\"es\", \"cs\", \"ss\", \"ds\", \"fs\", \"gs\"\n\t\t};\n\t\treturn tbl[idx_];\n\t}\n};\n#endif\n\nclass RegExp {\npublic:\n#ifdef XBYAK64\n\tenum { i32e = 32 | 64 };\n#else\n\tenum { i32e = 32 };\n#endif\n\tXBYAK_CONSTEXPR RegExp(size_t disp = 0) : scale_(0), disp_(disp) { }\n\tXBYAK_CONSTEXPR RegExp(const Reg& r, int scale = 1)\n\t\t: scale_(scale)\n\t\t, disp_(0)\n\t{\n\t\tif (!r.isREG(i32e) && !r.is(Reg::XMM|Reg::YMM|Reg::ZMM|Reg::TMM)) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)\n\t\tif (scale == 0) return;\n\t\tif (scale != 1 && scale != 2 && scale != 4 && scale != 8) XBYAK_THROW(ERR_BAD_SCALE)\n\t\tif (r.getBit() >= 128 || scale != 1) { // xmm/ymm is always index\n\t\t\tindex_ = r;\n\t\t} else {\n\t\t\tbase_ = r;\n\t\t}\n\t}\n\tbool isVsib(int bit = 128 | 256 | 512) const { return index_.isBit(bit); }\n\tRegExp optimize() const\n\t{\n\t\tRegExp exp = *this;\n\t\t// [reg * 2] => [reg + reg]\n\t\tif (index_.isBit(i32e) && !base_.getBit() && scale_ == 2) {\n\t\t\texp.base_ = index_;\n\t\t\texp.scale_ = 1;\n\t\t}\n\t\treturn exp;\n\t}\n\tbool operator==(const RegExp& rhs) const\n\t{\n\t\treturn base_ == rhs.base_ && index_ == rhs.index_ && disp_ == rhs.disp_ && scale_ == rhs.scale_;\n\t}\n\tconst Reg& getBase() const { return base_; }\n\tconst Reg& getIndex() const { return index_; }\n\tint getScale() const { return scale_; }\n\tsize_t getDisp() const { return disp_; }\n\tXBYAK_CONSTEXPR void verify() const\n\t{\n\t\tif (base_.getBit() >= 128) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)\n\t\tif (index_.getBit() && index_.getBit() <= 64) {\n\t\t\tif (index_.getIdx() == Operand::ESP) XBYAK_THROW(ERR_ESP_CANT_BE_INDEX)\n\t\t\tif (base_.getBit() && base_.getBit() != index_.getBit()) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)\n\t\t}\n\t}\n\tfriend RegExp operator+(const RegExp& a, const RegExp& b);\n\tfriend RegExp operator-(const RegExp& e, size_t disp);\n\tuint8_t getRex() const\n\t{\n\t\tuint8_t rex = index_.getRexX() | base_.getRexB();\n\t\treturn rex ? uint8_t(rex | 0x40) : 0;\n\t}\nprivate:\n\t/*\n\t\t[base_ + index_ * scale_ + disp_]\n\t\tbase : Reg32e, index : Reg32e(w/o esp), Xmm, Ymm\n\t*/\n\tReg base_;\n\tReg index_;\n\tint scale_;\n\tsize_t disp_;\n};\n\ninline RegExp operator+(const RegExp& a, const RegExp& b)\n{\n\tif (a.index_.getBit() && b.index_.getBit()) XBYAK_THROW_RET(ERR_BAD_ADDRESSING, RegExp())\n\tRegExp ret = a;\n\tif (!ret.index_.getBit()) { ret.index_ = b.index_; ret.scale_ = b.scale_; }\n\tif (b.base_.getBit()) {\n\t\tif (ret.base_.getBit()) {\n\t\t\tif (ret.index_.getBit()) XBYAK_THROW_RET(ERR_BAD_ADDRESSING, RegExp())\n\t\t\t// base + base => base + index * 1\n\t\t\tret.index_ = b.base_;\n\t\t\t// [reg + esp] => [esp + reg]\n\t\t\tif (ret.index_.getIdx() == Operand::ESP) std::swap(ret.base_, ret.index_);\n\t\t\tret.scale_ = 1;\n\t\t} else {\n\t\t\tret.base_ = b.base_;\n\t\t}\n\t}\n\tret.disp_ += b.disp_;\n\treturn ret;\n}\ninline RegExp operator*(const Reg& r, int scale)\n{\n\treturn RegExp(r, scale);\n}\ninline RegExp operator*(int scale, const Reg& r)\n{\n\treturn r * scale;\n}\ninline RegExp operator-(const RegExp& e, size_t disp)\n{\n\tRegExp ret = e;\n\tret.disp_ -= disp;\n\treturn ret;\n}\n\n// 2nd parameter for constructor of CodeArray(maxSize, userPtr, alloc)\nvoid *const AutoGrow = (void*)1; //-V566\nvoid *const DontSetProtectRWE = (void*)2; //-V566\n\nclass CodeArray {\n\tenum Type {\n\t\tUSER_BUF = 1, // use userPtr(non alignment, non protect)\n\t\tALLOC_BUF, // use new(alignment, protect)\n\t\tAUTO_GROW // automatically move and grow memory if necessary\n\t};\n\tCodeArray(const CodeArray& rhs);\n\tvoid operator=(const CodeArray&);\n\tbool isAllocType() const { return type_ == ALLOC_BUF || type_ == AUTO_GROW; }\n\tstruct AddrInfo {\n\t\tsize_t codeOffset; // position to write\n\t\tsize_t jmpAddr; // value to write\n\t\tint jmpSize; // size of jmpAddr\n\t\tinner::LabelMode mode;\n\t\tAddrInfo(size_t _codeOffset, size_t _jmpAddr, int _jmpSize, inner::LabelMode _mode)\n\t\t\t: codeOffset(_codeOffset), jmpAddr(_jmpAddr), jmpSize(_jmpSize), mode(_mode) {}\n\t\tuint64_t getVal(const uint8_t *top) const\n\t\t{\n\t\t\tuint64_t disp = (mode == inner::LaddTop) ? jmpAddr + size_t(top) : (mode == inner::LasIs) ? jmpAddr : jmpAddr - size_t(top);\n\t\t\tif (jmpSize == 4) disp = inner::VerifyInInt32(disp);\n\t\t\treturn disp;\n\t\t}\n\t};\n\ttypedef std::list<AddrInfo> AddrInfoList;\n\tAddrInfoList addrInfoList_;\n\tconst Type type_;\n#ifdef XBYAK_USE_MMAP_ALLOCATOR\n\tMmapAllocator defaultAllocator_;\n#else\n\tAllocator defaultAllocator_;\n#endif\n\tAllocator *alloc_;\nprotected:\n\tsize_t maxSize_;\n\tuint8_t *top_;\n\tsize_t size_;\n\tbool isCalledCalcJmpAddress_;\n\n\tbool useProtect() const { return alloc_->useProtect(); }\n\t/*\n\t\tallocate new memory and copy old data to the new area\n\t*/\n\tvoid growMemory()\n\t{\n\t\tconst size_t newSize = (std::max<size_t>)(DEFAULT_MAX_CODE_SIZE, maxSize_ * 2);\n\t\tuint8_t *newTop = alloc_->alloc(newSize);\n\t\tif (newTop == 0) XBYAK_THROW(ERR_CANT_ALLOC)\n\t\tfor (size_t i = 0; i < size_; i++) newTop[i] = top_[i];\n\t\talloc_->free(top_);\n\t\ttop_ = newTop;\n\t\tmaxSize_ = newSize;\n\t}\n\t/*\n\t\tcalc jmp address for AutoGrow mode\n\t*/\n\tvoid calcJmpAddress()\n\t{\n\t\tif (isCalledCalcJmpAddress_) return;\n\t\tfor (AddrInfoList::const_iterator i = addrInfoList_.begin(), ie = addrInfoList_.end(); i != ie; ++i) {\n\t\t\tuint64_t disp = i->getVal(top_);\n\t\t\trewrite(i->codeOffset, disp, i->jmpSize);\n\t\t}\n\t\tisCalledCalcJmpAddress_ = true;\n\t}\npublic:\n\tenum ProtectMode {\n\t\tPROTECT_RW = 0, // read/write\n\t\tPROTECT_RWE = 1, // read/write/exec\n\t\tPROTECT_RE = 2 // read/exec\n\t};\n\texplicit CodeArray(size_t maxSize, void *userPtr = 0, Allocator *allocator = 0)\n\t\t: type_(userPtr == AutoGrow ? AUTO_GROW : (userPtr == 0 || userPtr == DontSetProtectRWE) ? ALLOC_BUF : USER_BUF)\n\t\t, alloc_(allocator ? allocator : (Allocator*)&defaultAllocator_)\n\t\t, maxSize_(maxSize)\n\t\t, top_(type_ == USER_BUF ? reinterpret_cast<uint8_t*>(userPtr) : alloc_->alloc((std::max<size_t>)(maxSize, 1)))\n\t\t, size_(0)\n\t\t, isCalledCalcJmpAddress_(false)\n\t{\n\t\tif (maxSize_ > 0 && top_ == 0) XBYAK_THROW(ERR_CANT_ALLOC)\n\t\tif ((type_ == ALLOC_BUF && userPtr != DontSetProtectRWE && useProtect()) && !setProtectMode(PROTECT_RWE, false)) {\n\t\t\talloc_->free(top_);\n\t\t\tXBYAK_THROW(ERR_CANT_PROTECT)\n\t\t}\n\t}\n\tvirtual ~CodeArray()\n\t{\n\t\tif (isAllocType()) {\n\t\t\tif (useProtect()) setProtectModeRW(false);\n\t\t\talloc_->free(top_);\n\t\t}\n\t}\n\tbool setProtectMode(ProtectMode mode, bool throwException = true)\n\t{\n\t\tbool isOK = protect(top_, maxSize_, mode);\n\t\tif (isOK) return true;\n\t\tif (throwException) XBYAK_THROW_RET(ERR_CANT_PROTECT, false)\n\t\treturn false;\n\t}\n\tbool setProtectModeRE(bool throwException = true) { return setProtectMode(PROTECT_RE, throwException); }\n\tbool setProtectModeRW(bool throwException = true) { return setProtectMode(PROTECT_RW, throwException); }\n\tvoid resetSize()\n\t{\n\t\tsize_ = 0;\n\t\taddrInfoList_.clear();\n\t\tisCalledCalcJmpAddress_ = false;\n\t}\n\tvoid db(int code)\n\t{\n\t\tif (size_ >= maxSize_) {\n\t\t\tif (type_ == AUTO_GROW) {\n\t\t\t\tgrowMemory();\n\t\t\t} else {\n\t\t\t\tXBYAK_THROW(ERR_CODE_IS_TOO_BIG)\n\t\t\t}\n\t\t}\n\t\ttop_[size_++] = static_cast<uint8_t>(code);\n\t}\n\tvoid db(const uint8_t *code, size_t codeSize)\n\t{\n\t\tfor (size_t i = 0; i < codeSize; i++) db(code[i]);\n\t}\n\tvoid db(uint64_t code, size_t codeSize)\n\t{\n\t\tif (codeSize > 8) XBYAK_THROW(ERR_BAD_PARAMETER)\n\t\tfor (size_t i = 0; i < codeSize; i++) db(static_cast<uint8_t>(code >> (i * 8)));\n\t}\n\tvoid dw(uint32_t code) { db(code, 2); }\n\tvoid dd(uint32_t code) { db(code, 4); }\n\tvoid dq(uint64_t code) { db(code, 8); }\n\tconst uint8_t *getCode() const { return top_; }\n\ttemplate<class F>\n\tconst F getCode() const { return reinterpret_cast<F>(top_); }\n\tconst uint8_t *getCurr() const { return &top_[size_]; }\n\ttemplate<class F>\n\tconst F getCurr() const { return reinterpret_cast<F>(&top_[size_]); }\n\tsize_t getSize() const { return size_; }\n\tvoid setSize(size_t size)\n\t{\n\t\tif (size > maxSize_) XBYAK_THROW(ERR_OFFSET_IS_TOO_BIG)\n\t\tsize_ = size;\n\t}\n\tvoid dump() const\n\t{\n\t\tconst uint8_t *p = getCode();\n\t\tsize_t bufSize = getSize();\n\t\tsize_t remain = bufSize;\n\t\tfor (int i = 0; i < 4; i++) {\n\t\t\tsize_t disp = 16;\n\t\t\tif (remain < 16) {\n\t\t\t\tdisp = remain;\n\t\t\t}\n\t\t\tfor (size_t j = 0; j < 16; j++) {\n\t\t\t\tif (j < disp) {\n\t\t\t\t\tprintf(\"%02X\", p[i * 16 + j]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tputchar('\\n');\n\t\t\tremain -= disp;\n\t\t\tif (remain == 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t/*\n\t\t@param offset [in] offset from top\n\t\t@param disp [in] offset from the next of jmp\n\t\t@param size [in] write size(1, 2, 4, 8)\n\t*/\n\tvoid rewrite(size_t offset, uint64_t disp, size_t size)\n\t{\n\t\tassert(offset < maxSize_);\n\t\tif (size != 1 && size != 2 && size != 4 && size != 8) XBYAK_THROW(ERR_BAD_PARAMETER)\n\t\tuint8_t *const data = top_ + offset;\n\t\tfor (size_t i = 0; i < size; i++) {\n\t\t\tdata[i] = static_cast<uint8_t>(disp >> (i * 8));\n\t\t}\n\t}\n\tvoid save(size_t offset, size_t val, int size, inner::LabelMode mode)\n\t{\n\t\taddrInfoList_.push_back(AddrInfo(offset, val, size, mode));\n\t}\n\tbool isAutoGrow() const { return type_ == AUTO_GROW; }\n\tbool isCalledCalcJmpAddress() const { return isCalledCalcJmpAddress_; }\n\t/**\n\t\tchange exec permission of memory\n\t\t@param addr [in] buffer address\n\t\t@param size [in] buffer size\n\t\t@param protectMode [in] mode(RW/RWE/RE)\n\t\t@return true(success), false(failure)\n\t*/\n\tstatic inline bool protect(const void *addr, size_t size, int protectMode)\n\t{\n#if defined(_WIN32)\n\t\tconst DWORD c_rw = PAGE_READWRITE;\n\t\tconst DWORD c_rwe = PAGE_EXECUTE_READWRITE;\n\t\tconst DWORD c_re = PAGE_EXECUTE_READ;\n\t\tDWORD mode;\n#else\n\t\tconst int c_rw = PROT_READ | PROT_WRITE;\n\t\tconst int c_rwe = PROT_READ | PROT_WRITE | PROT_EXEC;\n\t\tconst int c_re = PROT_READ | PROT_EXEC;\n\t\tint mode;\n#endif\n\t\tswitch (protectMode) {\n\t\tcase PROTECT_RW: mode = c_rw; break;\n\t\tcase PROTECT_RWE: mode = c_rwe; break;\n\t\tcase PROTECT_RE: mode = c_re; break;\n\t\tdefault:\n\t\t\treturn false;\n\t\t}\n#if defined(_WIN32)\n\t\tDWORD oldProtect;\n\t\treturn VirtualProtect(const_cast<void*>(addr), size, mode, &oldProtect) != 0;\n#elif defined(__GNUC__)\n\t\tsize_t pageSize = sysconf(_SC_PAGESIZE);\n\t\tsize_t iaddr = reinterpret_cast<size_t>(addr);\n\t\tsize_t roundAddr = iaddr & ~(pageSize - static_cast<size_t>(1));\n\t\treturn mprotect(reinterpret_cast<void*>(roundAddr), size + (iaddr - roundAddr), mode) == 0;\n#else\n\t\treturn true;\n#endif\n\t}\n\t/**\n\t\tget aligned memory pointer\n\t\t@param addr [in] address\n\t\t@param alignedSize [in] power of two\n\t\t@return aligned addr by alingedSize\n\t*/\n\tstatic inline uint8_t *getAlignedAddress(uint8_t *addr, size_t alignedSize = 16)\n\t{\n\t\treturn reinterpret_cast<uint8_t*>((reinterpret_cast<size_t>(addr) + alignedSize - 1) & ~(alignedSize - static_cast<size_t>(1)));\n\t}\n};\n\nclass Address : public Operand {\npublic:\n\tenum Mode {\n\t\tM_ModRM,\n\t\tM_64bitDisp,\n\t\tM_rip,\n\t\tM_ripAddr\n\t};\n\tXBYAK_CONSTEXPR Address(uint32_t sizeBit, bool broadcast, const RegExp& e)\n\t\t: Operand(0, MEM, sizeBit), e_(e), label_(0), mode_(M_ModRM), broadcast_(broadcast)\n\t{\n\t\te_.verify();\n\t}\n#ifdef XBYAK64\n\texplicit XBYAK_CONSTEXPR Address(size_t disp)\n\t\t: Operand(0, MEM, 64), e_(disp), label_(0), mode_(M_64bitDisp), broadcast_(false){ }\n\tXBYAK_CONSTEXPR Address(uint32_t sizeBit, bool broadcast, const RegRip& addr)\n\t\t: Operand(0, MEM, sizeBit), e_(addr.disp_), label_(addr.label_), mode_(addr.isAddr_ ? M_ripAddr : M_rip), broadcast_(broadcast) { }\n#endif\n\tRegExp getRegExp(bool optimize = true) const\n\t{\n\t\treturn optimize ? e_.optimize() : e_;\n\t}\n\tMode getMode() const { return mode_; }\n\tbool is32bit() const { return e_.getBase().getBit() == 32 || e_.getIndex().getBit() == 32; }\n\tbool isOnlyDisp() const { return !e_.getBase().getBit() && !e_.getIndex().getBit(); } // for mov eax\n\tsize_t getDisp() const { return e_.getDisp(); }\n\tuint8_t getRex() const\n\t{\n\t\tif (mode_ != M_ModRM) return 0;\n\t\treturn getRegExp().getRex();\n\t}\n\tbool is64bitDisp() const { return mode_ == M_64bitDisp; } // for moffset\n\tbool isBroadcast() const { return broadcast_; }\n\tconst Label* getLabel() const { return label_; }\n\tbool operator==(const Address& rhs) const\n\t{\n\t\treturn getBit() == rhs.getBit() && e_ == rhs.e_ && label_ == rhs.label_ && mode_ == rhs.mode_ && broadcast_ == rhs.broadcast_;\n\t}\n\tbool operator!=(const Address& rhs) const { return !operator==(rhs); }\n\tbool isVsib() const { return e_.isVsib(); }\nprivate:\n\tRegExp e_;\n\tconst Label* label_;\n\tMode mode_;\n\tbool broadcast_;\n};\n\ninline const Address& Operand::getAddress() const\n{\n\tassert(isMEM());\n\treturn static_cast<const Address&>(*this);\n}\n\ninline bool Operand::operator==(const Operand& rhs) const\n{\n\tif (isMEM() && rhs.isMEM()) return this->getAddress() == rhs.getAddress();\n\treturn isEqualIfNotInherited(rhs);\n}\n\nclass AddressFrame {\n\tvoid operator=(const AddressFrame&);\n\tAddressFrame(const AddressFrame&);\npublic:\n\tconst uint32_t bit_;\n\tconst bool broadcast_;\n\texplicit XBYAK_CONSTEXPR AddressFrame(uint32_t bit, bool broadcast = false) : bit_(bit), broadcast_(broadcast) { }\n\tAddress operator[](const RegExp& e) const\n\t{\n\t\treturn Address(bit_, broadcast_, e);\n\t}\n\tAddress operator[](const void *disp) const\n\t{\n\t\treturn Address(bit_, broadcast_, RegExp(reinterpret_cast<size_t>(disp)));\n\t}\n#ifdef XBYAK64\n\tAddress operator[](uint64_t disp) const { return Address(disp); }\n\tAddress operator[](const RegRip& addr) const { return Address(bit_, broadcast_, addr); }\n#endif\n};\n\nstruct JmpLabel {\n\tsize_t endOfJmp; /* offset from top to the end address of jmp */\n\tint jmpSize;\n\tinner::LabelMode mode;\n\tsize_t disp; // disp for [rip + disp]\n\texplicit JmpLabel(size_t endOfJmp = 0, int jmpSize = 0, inner::LabelMode mode = inner::LasIs, size_t disp = 0)\n\t\t: endOfJmp(endOfJmp), jmpSize(jmpSize), mode(mode), disp(disp)\n\t{\n\t}\n};\n\nclass LabelManager;\n\nclass Label {\n\tmutable LabelManager *mgr;\n\tmutable int id;\n\tfriend class LabelManager;\npublic:\n\tLabel() : mgr(0), id(0) {}\n\tLabel(const Label& rhs);\n\tLabel& operator=(const Label& rhs);\n\t~Label();\n\tvoid clear() { mgr = 0; id = 0; }\n\tint getId() const { return id; }\n\tconst uint8_t *getAddress() const;\n\n\t// backward compatibility\n\tstatic inline std::string toStr(int num)\n\t{\n\t\tchar buf[16];\n#if defined(_MSC_VER) && (_MSC_VER < 1900)\n\t\t_snprintf_s\n#else\n\t\tsnprintf\n#endif\n\t\t(buf, sizeof(buf), \".%08x\", num);\n\t\treturn buf;\n\t}\n};\n\nclass LabelManager {\n\t// for string label\n\tstruct SlabelVal {\n\t\tsize_t offset;\n\t\tSlabelVal(size_t offset) : offset(offset) {}\n\t};\n\ttypedef XBYAK_STD_UNORDERED_MAP<std::string, SlabelVal> SlabelDefList;\n\ttypedef XBYAK_STD_UNORDERED_MULTIMAP<std::string, const JmpLabel> SlabelUndefList;\n\tstruct SlabelState {\n\t\tSlabelDefList defList;\n\t\tSlabelUndefList undefList;\n\t};\n\ttypedef std::list<SlabelState> StateList;\n\t// for Label class\n\tstruct ClabelVal {\n\t\tClabelVal(size_t offset = 0) : offset(offset), refCount(1) {}\n\t\tsize_t offset;\n\t\tint refCount;\n\t};\n\ttypedef XBYAK_STD_UNORDERED_MAP<int, ClabelVal> ClabelDefList;\n\ttypedef XBYAK_STD_UNORDERED_MULTIMAP<int, const JmpLabel> ClabelUndefList;\n\ttypedef XBYAK_STD_UNORDERED_SET<Label*> LabelPtrList;\n\n\tCodeArray *base_;\n\t// global : stateList_.front(), local : stateList_.back()\n\tStateList stateList_;\n\tmutable int labelId_;\n\tClabelDefList clabelDefList_;\n\tClabelUndefList clabelUndefList_;\n\tLabelPtrList labelPtrList_;\n\n\tint getId(const Label& label) const\n\t{\n\t\tif (label.id == 0) label.id = labelId_++;\n\t\treturn label.id;\n\t}\n\ttemplate<class DefList, class UndefList, class T>\n\tvoid define_inner(DefList& defList, UndefList& undefList, const T& labelId, size_t addrOffset)\n\t{\n\t\t// add label\n\t\ttypename DefList::value_type item(labelId, addrOffset);\n\t\tstd::pair<typename DefList::iterator, bool> ret = defList.insert(item);\n\t\tif (!ret.second) XBYAK_THROW(ERR_LABEL_IS_REDEFINED)\n\t\t// search undefined label\n\t\tfor (;;) {\n\t\t\ttypename UndefList::iterator itr = undefList.find(labelId);\n\t\t\tif (itr == undefList.end()) break;\n\t\t\tconst JmpLabel *jmp = &itr->second;\n\t\t\tconst size_t offset = jmp->endOfJmp - jmp->jmpSize;\n\t\t\tsize_t disp;\n\t\t\tif (jmp->mode == inner::LaddTop) {\n\t\t\t\tdisp = addrOffset;\n\t\t\t} else if (jmp->mode == inner::Labs) {\n\t\t\t\tdisp = size_t(base_->getCurr());\n\t\t\t} else {\n\t\t\t\tdisp = addrOffset - jmp->endOfJmp + jmp->disp;\n#ifdef XBYAK64\n\t\t\t\tif (jmp->jmpSize <= 4 && !inner::IsInInt32(disp)) XBYAK_THROW(ERR_OFFSET_IS_TOO_BIG)\n#endif\n\t\t\t\tif (jmp->jmpSize == 1 && !inner::IsInDisp8((uint32_t)disp)) XBYAK_THROW(ERR_LABEL_IS_TOO_FAR)\n\t\t\t}\n\t\t\tif (base_->isAutoGrow()) {\n\t\t\t\tbase_->save(offset, disp, jmp->jmpSize, jmp->mode);\n\t\t\t} else {\n\t\t\t\tbase_->rewrite(offset, disp, jmp->jmpSize);\n\t\t\t}\n\t\t\tundefList.erase(itr);\n\t\t}\n\t}\n\ttemplate<class DefList, class T>\n\tbool getOffset_inner(const DefList& defList, size_t *offset, const T& label) const\n\t{\n\t\ttypename DefList::const_iterator i = defList.find(label);\n\t\tif (i == defList.end()) return false;\n\t\t*offset = i->second.offset;\n\t\treturn true;\n\t}\n\tfriend class Label;\n\tvoid incRefCount(int id, Label *label)\n\t{\n\t\tclabelDefList_[id].refCount++;\n\t\tlabelPtrList_.insert(label);\n\t}\n\tvoid decRefCount(int id, Label *label)\n\t{\n\t\tlabelPtrList_.erase(label);\n\t\tClabelDefList::iterator i = clabelDefList_.find(id);\n\t\tif (i == clabelDefList_.end()) return;\n\t\tif (i->second.refCount == 1) {\n\t\t\tclabelDefList_.erase(id);\n\t\t} else {\n\t\t\t--i->second.refCount;\n\t\t}\n\t}\n\ttemplate<class T>\n\tbool hasUndefinedLabel_inner(const T& list) const\n\t{\n#ifndef NDEBUG\n\t\tfor (typename T::const_iterator i = list.begin(); i != list.end(); ++i) {\n\t\t\tstd::cerr << \"undefined label:\" << i->first << std::endl;\n\t\t}\n#endif\n\t\treturn !list.empty();\n\t}\n\t// detach all labels linked to LabelManager\n\tvoid resetLabelPtrList()\n\t{\n\t\tfor (LabelPtrList::iterator i = labelPtrList_.begin(), ie = labelPtrList_.end(); i != ie; ++i) {\n\t\t\t(*i)->clear();\n\t\t}\n\t\tlabelPtrList_.clear();\n\t}\npublic:\n\tLabelManager()\n\t{\n\t\treset();\n\t}\n\t~LabelManager()\n\t{\n\t\tresetLabelPtrList();\n\t}\n\tvoid reset()\n\t{\n\t\tbase_ = 0;\n\t\tlabelId_ = 1;\n\t\tstateList_.clear();\n\t\tstateList_.push_back(SlabelState());\n\t\tstateList_.push_back(SlabelState());\n\t\tclabelDefList_.clear();\n\t\tclabelUndefList_.clear();\n\t\tresetLabelPtrList();\n\t}\n\tvoid enterLocal()\n\t{\n\t\tstateList_.push_back(SlabelState());\n\t}\n\tvoid leaveLocal()\n\t{\n\t\tif (stateList_.size() <= 2) XBYAK_THROW(ERR_UNDER_LOCAL_LABEL)\n\t\tif (hasUndefinedLabel_inner(stateList_.back().undefList)) XBYAK_THROW(ERR_LABEL_IS_NOT_FOUND)\n\t\tstateList_.pop_back();\n\t}\n\tvoid set(CodeArray *base) { base_ = base; }\n\tvoid defineSlabel(std::string label)\n\t{\n\t\tif (label == \"@b\" || label == \"@f\") XBYAK_THROW(ERR_BAD_LABEL_STR)\n\t\tif (label == \"@@\") {\n\t\t\tSlabelDefList& defList = stateList_.front().defList;\n\t\t\tSlabelDefList::iterator i = defList.find(\"@f\");\n\t\t\tif (i != defList.end()) {\n\t\t\t\tdefList.erase(i);\n\t\t\t\tlabel = \"@b\";\n\t\t\t} else {\n\t\t\t\ti = defList.find(\"@b\");\n\t\t\t\tif (i != defList.end()) {\n\t\t\t\t\tdefList.erase(i);\n\t\t\t\t}\n\t\t\t\tlabel = \"@f\";\n\t\t\t}\n\t\t}\n\t\tSlabelState& st = *label.c_str() == '.' ? stateList_.back() : stateList_.front();\n\t\tdefine_inner(st.defList, st.undefList, label, base_->getSize());\n\t}\n\tvoid defineClabel(Label& label)\n\t{\n\t\tdefine_inner(clabelDefList_, clabelUndefList_, getId(label), base_->getSize());\n\t\tlabel.mgr = this;\n\t\tlabelPtrList_.insert(&label);\n\t}\n\tvoid assign(Label& dst, const Label& src)\n\t{\n\t\tClabelDefList::const_iterator i = clabelDefList_.find(src.id);\n\t\tif (i == clabelDefList_.end()) XBYAK_THROW(ERR_LABEL_ISNOT_SET_BY_L)\n\t\tdefine_inner(clabelDefList_, clabelUndefList_, dst.id, i->second.offset);\n\t\tdst.mgr = this;\n\t\tlabelPtrList_.insert(&dst);\n\t}\n\tbool getOffset(size_t *offset, std::string& label) const\n\t{\n\t\tconst SlabelDefList& defList = stateList_.front().defList;\n\t\tif (label == \"@b\") {\n\t\t\tif (defList.find(\"@f\") != defList.end()) {\n\t\t\t\tlabel = \"@f\";\n\t\t\t} else if (defList.find(\"@b\") == defList.end()) {\n\t\t\t\tXBYAK_THROW_RET(ERR_LABEL_IS_NOT_FOUND, false)\n\t\t\t}\n\t\t} else if (label == \"@f\") {\n\t\t\tif (defList.find(\"@f\") != defList.end()) {\n\t\t\t\tlabel = \"@b\";\n\t\t\t}\n\t\t}\n\t\tconst SlabelState& st = *label.c_str() == '.' ? stateList_.back() : stateList_.front();\n\t\treturn getOffset_inner(st.defList, offset, label);\n\t}\n\tbool getOffset(size_t *offset, const Label& label) const\n\t{\n\t\treturn getOffset_inner(clabelDefList_, offset, getId(label));\n\t}\n\tvoid addUndefinedLabel(const std::string& label, const JmpLabel& jmp)\n\t{\n\t\tSlabelState& st = *label.c_str() == '.' ? stateList_.back() : stateList_.front();\n\t\tst.undefList.insert(SlabelUndefList::value_type(label, jmp));\n\t}\n\tvoid addUndefinedLabel(const Label& label, const JmpLabel& jmp)\n\t{\n\t\tclabelUndefList_.insert(ClabelUndefList::value_type(label.id, jmp));\n\t}\n\tbool hasUndefSlabel() const\n\t{\n\t\tfor (StateList::const_iterator i = stateList_.begin(), ie = stateList_.end(); i != ie; ++i) {\n\t\t\tif (hasUndefinedLabel_inner(i->undefList)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\tbool hasUndefClabel() const { return hasUndefinedLabel_inner(clabelUndefList_); }\n\tconst uint8_t *getCode() const { return base_->getCode(); }\n\tbool isReady() const { return !base_->isAutoGrow() || base_->isCalledCalcJmpAddress(); }\n};\n\ninline Label::Label(const Label& rhs)\n{\n\tid = rhs.id;\n\tmgr = rhs.mgr;\n\tif (mgr) mgr->incRefCount(id, this);\n}\ninline Label& Label::operator=(const Label& rhs)\n{\n\tif (id) XBYAK_THROW_RET(ERR_LABEL_IS_ALREADY_SET_BY_L, *this)\n\tid = rhs.id;\n\tmgr = rhs.mgr;\n\tif (mgr) mgr->incRefCount(id, this);\n\treturn *this;\n}\ninline Label::~Label()\n{\n\tif (id && mgr) mgr->decRefCount(id, this);\n}\ninline const uint8_t* Label::getAddress() const\n{\n\tif (mgr == 0 || !mgr->isReady()) return 0;\n\tsize_t offset;\n\tif (!mgr->getOffset(&offset, *this)) return 0;\n\treturn mgr->getCode() + offset;\n}\n\ntypedef enum {\n\tDefaultEncoding,\n\tVexEncoding,\n\tEvexEncoding\n} PreferredEncoding;\n\nclass CodeGenerator : public CodeArray {\npublic:\n\tenum LabelType {\n\t\tT_SHORT,\n\t\tT_NEAR,\n\t\tT_FAR, // far jump\n\t\tT_AUTO // T_SHORT if possible\n\t};\nprivate:\n\tCodeGenerator operator=(const CodeGenerator&); // don't call\n#ifdef XBYAK64\n\tenum { i32e = 32 | 64, BIT = 64 };\n\tstatic const uint64_t dummyAddr = uint64_t(0x1122334455667788ull);\n\ttypedef Reg64 NativeReg;\n#else\n\tenum { i32e = 32, BIT = 32 };\n\tstatic const size_t dummyAddr = 0x12345678;\n\ttypedef Reg32 NativeReg;\n#endif\n\t// (XMM, XMM|MEM)\n\tstatic inline bool isXMM_XMMorMEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn op1.isXMM() && (op2.isXMM() || op2.isMEM());\n\t}\n\t// (MMX, MMX|MEM) or (XMM, XMM|MEM)\n\tstatic inline bool isXMMorMMX_MEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn (op1.isMMX() && (op2.isMMX() || op2.isMEM())) || isXMM_XMMorMEM(op1, op2);\n\t}\n\t// (XMM, MMX|MEM)\n\tstatic inline bool isXMM_MMXorMEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn op1.isXMM() && (op2.isMMX() || op2.isMEM());\n\t}\n\t// (MMX, XMM|MEM)\n\tstatic inline bool isMMX_XMMorMEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn op1.isMMX() && (op2.isXMM() || op2.isMEM());\n\t}\n\t// (XMM, REG32|MEM)\n\tstatic inline bool isXMM_REG32orMEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn op1.isXMM() && (op2.isREG(i32e) || op2.isMEM());\n\t}\n\t// (REG32, XMM|MEM)\n\tstatic inline bool isREG32_XMMorMEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn op1.isREG(i32e) && (op2.isXMM() || op2.isMEM());\n\t}\n\t// (REG32, REG32|MEM)\n\tstatic inline bool isREG32_REG32orMEM(const Operand& op1, const Operand& op2)\n\t{\n\t\treturn op1.isREG(i32e) && ((op2.isREG(i32e) && op1.getBit() == op2.getBit()) || op2.isMEM());\n\t}\n\tstatic inline bool isValidSSE(const Operand& op1)\n\t{\n\t\t// SSE instructions do not support XMM16 - XMM31\n\t\treturn !(op1.isXMM() && op1.getIdx() >= 16);\n\t}\n\tvoid rex(const Operand& op1, const Operand& op2 = Operand())\n\t{\n\t\tuint8_t rex = 0;\n\t\tconst Operand *p1 = &op1, *p2 = &op2;\n\t\tif (p1->isMEM()) std::swap(p1, p2);\n\t\tif (p1->isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tif (p2->isMEM()) {\n\t\t\tconst Address& addr = p2->getAddress();\n\t\t\tif (BIT == 64 && addr.is32bit()) db(0x67);\n\t\t\trex = addr.getRex() | p1->getReg().getRex();\n\t\t} else {\n\t\t\t// ModRM(reg, base);\n\t\t\trex = op2.getReg().getRex(op1.getReg());\n\t\t}\n\t\t// except movsx(16bit, 32/64bit)\n\t\tif ((op1.isBit(16) && !op2.isBit(i32e)) || (op2.isBit(16) && !op1.isBit(i32e))) db(0x66);\n\t\tif (rex) db(rex);\n\t}\n\tenum AVXtype {\n\t\t// low 3 bit\n\t\tT_N1 = 1,\n\t\tT_N2 = 2,\n\t\tT_N4 = 3,\n\t\tT_N8 = 4,\n\t\tT_N16 = 5,\n\t\tT_N32 = 6,\n\t\tT_NX_MASK = 7,\n\t\t//\n\t\tT_N_VL = 1 << 3, // N * (1, 2, 4) for VL\n\t\tT_DUP = 1 << 4, // N = (8, 32, 64)\n\t\tT_66 = 1 << 5, // pp = 1\n\t\tT_F3 = 1 << 6, // pp = 2\n\t\tT_F2 = T_66 | T_F3, // pp = 3\n\t\tT_ER_R = 1 << 7, // reg{er}\n\t\tT_0F = 1 << 8,\n\t\tT_0F38 = 1 << 9,\n\t\tT_0F3A = 1 << 10,\n\t\tT_L0 = 1 << 11,\n\t\tT_L1 = 1 << 12,\n\t\tT_W0 = 1 << 13,\n\t\tT_W1 = 1 << 14,\n\t\tT_EW0 = 1 << 15,\n\t\tT_EW1 = 1 << 16,\n\t\tT_YMM = 1 << 17, // support YMM, ZMM\n\t\tT_EVEX = 1 << 18,\n\t\tT_ER_X = 1 << 19, // xmm{er}\n\t\tT_ER_Y = 1 << 20, // ymm{er}\n\t\tT_ER_Z = 1 << 21, // zmm{er}\n\t\tT_SAE_X = 1 << 22, // xmm{sae}\n\t\tT_SAE_Y = 1 << 23, // ymm{sae}\n\t\tT_SAE_Z = 1 << 24, // zmm{sae}\n\t\tT_MUST_EVEX = 1 << 25, // contains T_EVEX\n\t\tT_B32 = 1 << 26, // m32bcst\n\t\tT_B64 = 1 << 27, // m64bcst\n\t\tT_B16 = T_B32 | T_B64, // m16bcst (Be careful)\n\t\tT_M_K = 1 << 28, // mem{k}\n\t\tT_VSIB = 1 << 29,\n\t\tT_MEM_EVEX = 1 << 30, // use evex if mem\n\t\tT_FP16 = 1 << 31, // avx512-fp16\n\t\tT_MAP5 = T_FP16 | T_0F,\n\t\tT_MAP6 = T_FP16 | T_0F38,\n\t\tT_XXX\n\t};\n\t// T_66 = 1, T_F3 = 2, T_F2 = 3\n\tuint32_t getPP(int type) const { return (type >> 5) & 3; }\n\tvoid vex(const Reg& reg, const Reg& base, const Operand *v, int type, int code, bool x = false)\n\t{\n\t\tint w = (type & T_W1) ? 1 : 0;\n\t\tbool is256 = (type & T_L1) ? true : (type & T_L0) ? false : reg.isYMM();\n\t\tbool r = reg.isExtIdx();\n\t\tbool b = base.isExtIdx();\n\t\tint idx = v ? v->getIdx() : 0;\n\t\tif ((idx | reg.getIdx() | base.getIdx()) >= 16) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tuint32_t pp = getPP(type);\n\t\tuint32_t vvvv = (((~idx) & 15) << 3) | (is256 ? 4 : 0) | pp;\n\t\tif (!b && !x && !w && (type & T_0F)) {\n\t\t\tdb(0xC5); db((r ? 0 : 0x80) | vvvv);\n\t\t} else {\n\t\t\tuint32_t mmmm = (type & T_0F) ? 1 : (type & T_0F38) ? 2 : (type & T_0F3A) ? 3 : 0;\n\t\t\tdb(0xC4); db((r ? 0 : 0x80) | (x ? 0 : 0x40) | (b ? 0 : 0x20) | mmmm); db((w << 7) | vvvv);\n\t\t}\n\t\tdb(code);\n\t}\n\tvoid verifySAE(const Reg& r, int type) const\n\t{\n\t\tif (((type & T_SAE_X) && r.isXMM()) || ((type & T_SAE_Y) && r.isYMM()) || ((type & T_SAE_Z) && r.isZMM())) return;\n\t\tXBYAK_THROW(ERR_SAE_IS_INVALID)\n\t}\n\tvoid verifyER(const Reg& r, int type) const\n\t{\n\t\tif ((type & T_ER_R) && r.isREG(32|64)) return;\n\t\tif (((type & T_ER_X) && r.isXMM()) || ((type & T_ER_Y) && r.isYMM()) || ((type & T_ER_Z) && r.isZMM())) return;\n\t\tXBYAK_THROW(ERR_ER_IS_INVALID)\n\t}\n\t// (a, b, c) contains non zero two or three values then err\n\tint verifyDuplicate(int a, int b, int c, int err)\n\t{\n\t\tint v = a | b | c;\n\t\tif ((a > 0 && a != v) + (b > 0 && b != v) + (c > 0 && c != v) > 0) XBYAK_THROW_RET(err, 0)\n\t\treturn v;\n\t}\n\tint evex(const Reg& reg, const Reg& base, const Operand *v, int type, int code, bool x = false, bool b = false, int aaa = 0, uint32_t VL = 0, bool Hi16Vidx = false)\n\t{\n\t\tif (!(type & (T_EVEX | T_MUST_EVEX))) XBYAK_THROW_RET(ERR_EVEX_IS_INVALID, 0)\n\t\tint w = (type & T_EW1) ? 1 : 0;\n\t\tuint32_t mmm = (type & T_0F) ? 1 : (type & T_0F38) ? 2 : (type & T_0F3A) ? 3 : 0;\n\t\tif (type & T_FP16) mmm |= 4;\n\t\tuint32_t pp = getPP(type);\n\t\tint idx = v ? v->getIdx() : 0;\n\t\tuint32_t vvvv = ~idx;\n\n\t\tbool R = !reg.isExtIdx();\n\t\tbool X = x ? false : !base.isExtIdx2();\n\t\tbool B = !base.isExtIdx();\n\t\tbool Rp = !reg.isExtIdx2();\n\t\tint LL;\n\t\tint rounding = verifyDuplicate(reg.getRounding(), base.getRounding(), v ? v->getRounding() : 0, ERR_ROUNDING_IS_ALREADY_SET);\n\t\tint disp8N = 1;\n\t\tif (rounding) {\n\t\t\tif (rounding == EvexModifierRounding::T_SAE) {\n\t\t\t\tverifySAE(base, type); LL = 0;\n\t\t\t} else {\n\t\t\t\tverifyER(base, type); LL = rounding - 1;\n\t\t\t}\n\t\t\tb = true;\n\t\t} else {\n\t\t\tif (v) VL = (std::max)(VL, v->getBit());\n\t\t\tVL = (std::max)((std::max)(reg.getBit(), base.getBit()), VL);\n\t\t\tLL = (VL == 512) ? 2 : (VL == 256) ? 1 : 0;\n\t\t\tif (b) {\n\t\t\t\tdisp8N = ((type & T_B16) == T_B16) ? 2 : (type & T_B32) ? 4 : 8;\n\t\t\t} else if (type & T_DUP) {\n\t\t\t\tdisp8N = VL == 128 ? 8 : VL == 256 ? 32 : 64;\n\t\t\t} else {\n\t\t\t\tif ((type & (T_NX_MASK | T_N_VL)) == 0) {\n\t\t\t\t\ttype |= T_N16 | T_N_VL; // default\n\t\t\t\t}\n\t\t\t\tint low = type & T_NX_MASK;\n\t\t\t\tif (low > 0) {\n\t\t\t\t\tdisp8N = 1 << (low - 1);\n\t\t\t\t\tif (type & T_N_VL) disp8N *= (VL == 512 ? 4 : VL == 256 ? 2 : 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbool Vp = !((v ? v->isExtIdx2() : 0) | Hi16Vidx);\n\t\tbool z = reg.hasZero() || base.hasZero() || (v ? v->hasZero() : false);\n\t\tif (aaa == 0) aaa = verifyDuplicate(base.getOpmaskIdx(), reg.getOpmaskIdx(), (v ? v->getOpmaskIdx() : 0), ERR_OPMASK_IS_ALREADY_SET);\n\t\tif (aaa == 0) z = 0; // clear T_z if mask is not set\n\t\tdb(0x62);\n\t\tdb((R ? 0x80 : 0) | (X ? 0x40 : 0) | (B ? 0x20 : 0) | (Rp ? 0x10 : 0) | mmm);\n\t\tdb((w == 1 ? 0x80 : 0) | ((vvvv & 15) << 3) | 4 | (pp & 3));\n\t\tdb((z ? 0x80 : 0) | ((LL & 3) << 5) | (b ? 0x10 : 0) | (Vp ? 8 : 0) | (aaa & 7));\n\t\tdb(code);\n\t\treturn disp8N;\n\t}\n\tvoid setModRM(int mod, int r1, int r2)\n\t{\n\t\tdb(static_cast<uint8_t>((mod << 6) | ((r1 & 7) << 3) | (r2 & 7)));\n\t}\n\tvoid setSIB(const RegExp& e, int reg, int disp8N = 0)\n\t{\n\t\tuint64_t disp64 = e.getDisp();\n#if defined(XBYAK64) && !defined(__ILP32__)\n#ifdef XBYAK_OLD_DISP_CHECK\n\t\t// treat 0xffffffff as 0xffffffffffffffff\n\t\tuint64_t high = disp64 >> 32;\n\t\tif (high != 0 && high != 0xFFFFFFFF) XBYAK_THROW(ERR_OFFSET_IS_TOO_BIG)\n#else\n\t\t// displacement should be a signed 32-bit value, so also check sign bit\n\t\tuint64_t high = disp64 >> 31;\n\t\tif (high != 0 && high != 0x1FFFFFFFF) XBYAK_THROW(ERR_OFFSET_IS_TOO_BIG)\n#endif\n#endif\n\t\tuint32_t disp = static_cast<uint32_t>(disp64);\n\t\tconst Reg& base = e.getBase();\n\t\tconst Reg& index = e.getIndex();\n\t\tconst int baseIdx = base.getIdx();\n\t\tconst int baseBit = base.getBit();\n\t\tconst int indexBit = index.getBit();\n\t\tenum {\n\t\t\tmod00 = 0, mod01 = 1, mod10 = 2\n\t\t};\n\t\tint mod = mod10; // disp32\n\t\tif (!baseBit || ((baseIdx & 7) != Operand::EBP && disp == 0)) {\n\t\t\tmod = mod00;\n\t\t} else {\n\t\t\tif (disp8N == 0) {\n\t\t\t\tif (inner::IsInDisp8(disp)) {\n\t\t\t\t\tmod = mod01;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// disp must be casted to signed\n\t\t\t\tuint32_t t = static_cast<uint32_t>(static_cast<int>(disp) / disp8N);\n\t\t\t\tif ((disp % disp8N) == 0 && inner::IsInDisp8(t)) {\n\t\t\t\t\tdisp = t;\n\t\t\t\t\tmod = mod01;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst int newBaseIdx = baseBit ? (baseIdx & 7) : Operand::EBP;\n\t\t/* ModR/M = [2:3:3] = [Mod:reg/code:R/M] */\n\t\tbool hasSIB = indexBit || (baseIdx & 7) == Operand::ESP;\n#ifdef XBYAK64\n\t\tif (!baseBit && !indexBit) hasSIB = true;\n#endif\n\t\tif (hasSIB) {\n\t\t\tsetModRM(mod, reg, Operand::ESP);\n\t\t\t/* SIB = [2:3:3] = [SS:index:base(=rm)] */\n\t\t\tconst int idx = indexBit ? (index.getIdx() & 7) : Operand::ESP;\n\t\t\tconst int scale = e.getScale();\n\t\t\tconst int SS = (scale == 8) ? 3 : (scale == 4) ? 2 : (scale == 2) ? 1 : 0;\n\t\t\tsetModRM(SS, idx, newBaseIdx);\n\t\t} else {\n\t\t\tsetModRM(mod, reg, newBaseIdx);\n\t\t}\n\t\tif (mod == mod01) {\n\t\t\tdb(disp);\n\t\t} else if (mod == mod10 || (mod == mod00 && !baseBit)) {\n\t\t\tdd(disp);\n\t\t}\n\t}\n\tLabelManager labelMgr_;\n\tbool isInDisp16(uint32_t x) const { return 0xFFFF8000 <= x || x <= 0x7FFF; }\n\tvoid opModR(const Reg& reg1, const Reg& reg2, int code0, int code1 = NONE, int code2 = NONE)\n\t{\n\t\trex(reg2, reg1);\n\t\tdb(code0 | (reg1.isBit(8) ? 0 : 1)); if (code1 != NONE) db(code1); if (code2 != NONE) db(code2);\n\t\tsetModRM(3, reg1.getIdx(), reg2.getIdx());\n\t}\n\tvoid opModM(const Address& addr, const Reg& reg, int code0, int code1 = NONE, int code2 = NONE, int immSize = 0)\n\t{\n\t\tif (addr.is64bitDisp()) XBYAK_THROW(ERR_CANT_USE_64BIT_DISP)\n\t\trex(addr, reg);\n\t\tdb(code0 | (reg.isBit(8) ? 0 : 1)); if (code1 != NONE) db(code1); if (code2 != NONE) db(code2);\n\t\topAddr(addr, reg.getIdx(), immSize);\n\t}\n\tvoid opLoadSeg(const Address& addr, const Reg& reg, int code0, int code1 = NONE)\n\t{\n\t\tif (addr.is64bitDisp()) XBYAK_THROW(ERR_CANT_USE_64BIT_DISP)\n\t\tif (reg.isBit(8)) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)\n\t\trex(addr, reg);\n\t\tdb(code0); if (code1 != NONE) db(code1);\n\t\topAddr(addr, reg.getIdx());\n\t}\n\tvoid opMIB(const Address& addr, const Reg& reg, int code0, int code1)\n\t{\n\t\tif (addr.is64bitDisp()) XBYAK_THROW(ERR_CANT_USE_64BIT_DISP)\n\t\tif (addr.getMode() != Address::M_ModRM) XBYAK_THROW(ERR_INVALID_MIB_ADDRESS)\n\t\tif (BIT == 64 && addr.is32bit()) db(0x67);\n\t\tconst RegExp& regExp = addr.getRegExp(false);\n\t\tuint8_t rex = regExp.getRex();\n\t\tif (rex) db(rex);\n\t\tdb(code0); db(code1);\n\t\tsetSIB(regExp, reg.getIdx());\n\t}\n\tvoid makeJmp(uint32_t disp, LabelType type, uint8_t shortCode, uint8_t longCode, uint8_t longPref)\n\t{\n\t\tconst int shortJmpSize = 2;\n\t\tconst int longHeaderSize = longPref ? 2 : 1;\n\t\tconst int longJmpSize = longHeaderSize + 4;\n\t\tif (type != T_NEAR && inner::IsInDisp8(disp - shortJmpSize)) {\n\t\t\tdb(shortCode); db(disp - shortJmpSize);\n\t\t} else {\n\t\t\tif (type == T_SHORT) XBYAK_THROW(ERR_LABEL_IS_TOO_FAR)\n\t\t\tif (longPref) db(longPref);\n\t\t\tdb(longCode); dd(disp - longJmpSize);\n\t\t}\n\t}\n\tbool isNEAR(LabelType type) const { return type == T_NEAR || (type == T_AUTO && isDefaultJmpNEAR_); }\n\ttemplate<class T>\n\tvoid opJmp(T& label, LabelType type, uint8_t shortCode, uint8_t longCode, uint8_t longPref)\n\t{\n\t\tif (type == T_FAR) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\tif (isAutoGrow() && size_ + 16 >= maxSize_) growMemory(); /* avoid splitting code of jmp */\n\t\tsize_t offset = 0;\n\t\tif (labelMgr_.getOffset(&offset, label)) { /* label exists */\n\t\t\tmakeJmp(inner::VerifyInInt32(offset - size_), type, shortCode, longCode, longPref);\n\t\t} else {\n\t\t\tint jmpSize = 0;\n\t\t\tif (isNEAR(type)) {\n\t\t\t\tjmpSize = 4;\n\t\t\t\tif (longPref) db(longPref);\n\t\t\t\tdb(longCode); dd(0);\n\t\t\t} else {\n\t\t\t\tjmpSize = 1;\n\t\t\t\tdb(shortCode); db(0);\n\t\t\t}\n\t\t\tJmpLabel jmp(size_, jmpSize, inner::LasIs);\n\t\t\tlabelMgr_.addUndefinedLabel(label, jmp);\n\t\t}\n\t}\n\tvoid opJmpAbs(const void *addr, LabelType type, uint8_t shortCode, uint8_t longCode, uint8_t longPref = 0)\n\t{\n\t\tif (type == T_FAR) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\tif (isAutoGrow()) {\n\t\t\tif (!isNEAR(type)) XBYAK_THROW(ERR_ONLY_T_NEAR_IS_SUPPORTED_IN_AUTO_GROW)\n\t\t\tif (size_ + 16 >= maxSize_) growMemory();\n\t\t\tif (longPref) db(longPref);\n\t\t\tdb(longCode);\n\t\t\tdd(0);\n\t\t\tsave(size_ - 4, size_t(addr) - size_, 4, inner::Labs);\n\t\t} else {\n\t\t\tmakeJmp(inner::VerifyInInt32(reinterpret_cast<const uint8_t*>(addr) - getCurr()), type, shortCode, longCode, longPref);\n\t\t}\n\n\t}\n\tvoid opJmpOp(const Operand& op, LabelType type, int ext)\n\t{\n\t\tconst int bit = 16|i32e;\n\t\tif (type == T_FAR) {\n\t\t\tif (!op.isMEM(bit)) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\t\topR_ModM(op, bit, ext + 1, 0xFF, NONE, NONE, false);\n\t\t} else {\n\t\t\topR_ModM(op, bit, ext, 0xFF, NONE, NONE, true);\n\t\t}\n\t}\n\t// reg is reg field of ModRM\n\t// immSize is the size for immediate value\n\t// disp8N = 0(normal), disp8N = 1(force disp32), disp8N = {2, 4, 8} ; compressed displacement\n\tvoid opAddr(const Address &addr, int reg, int immSize = 0, int disp8N = 0, bool permitVisb = false)\n\t{\n\t\tif (!permitVisb && addr.isVsib()) XBYAK_THROW(ERR_BAD_VSIB_ADDRESSING)\n\t\tif (addr.getMode() == Address::M_ModRM) {\n\t\t\tsetSIB(addr.getRegExp(), reg, disp8N);\n\t\t} else if (addr.getMode() == Address::M_rip || addr.getMode() == Address::M_ripAddr) {\n\t\t\tsetModRM(0, reg, 5);\n\t\t\tif (addr.getLabel()) { // [rip + Label]\n\t\t\t\tputL_inner(*addr.getLabel(), true, addr.getDisp() - immSize);\n\t\t\t} else {\n\t\t\t\tsize_t disp = addr.getDisp();\n\t\t\t\tif (addr.getMode() == Address::M_ripAddr) {\n\t\t\t\t\tif (isAutoGrow()) XBYAK_THROW(ERR_INVALID_RIP_IN_AUTO_GROW)\n\t\t\t\t\tdisp -= (size_t)getCurr() + 4 + immSize;\n\t\t\t\t}\n\t\t\t\tdd(inner::VerifyInInt32(disp));\n\t\t\t}\n\t\t}\n\t}\n\t/* preCode is for SSSE3/SSE4 */\n\tvoid opGen(const Operand& reg, const Operand& op, int code, int pref, bool isValid(const Operand&, const Operand&), int imm8 = NONE, int preCode = NONE)\n\t{\n\t\tif (isValid && !isValid(reg, op)) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tif (!isValidSSE(reg) || !isValidSSE(op)) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\tif (pref != NONE) db(pref);\n\t\tif (op.isMEM()) {\n\t\t\topModM(op.getAddress(), reg.getReg(), 0x0F, preCode, code, (imm8 != NONE) ? 1 : 0);\n\t\t} else {\n\t\t\topModR(reg.getReg(), op.getReg(), 0x0F, preCode, code);\n\t\t}\n\t\tif (imm8 != NONE) db(imm8);\n\t}\n\tvoid opMMX_IMM(const Mmx& mmx, int imm8, int code, int ext)\n\t{\n\t\tif (!isValidSSE(mmx)) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\tif (mmx.isXMM()) db(0x66);\n\t\topModR(Reg32(ext), mmx, 0x0F, code);\n\t\tdb(imm8);\n\t}\n\tvoid opMMX(const Mmx& mmx, const Operand& op, int code, int pref = 0x66, int imm8 = NONE, int preCode = NONE)\n\t{\n\t\topGen(mmx, op, code, mmx.isXMM() ? pref : NONE, isXMMorMMX_MEM, imm8, preCode);\n\t}\n\tvoid opMovXMM(const Operand& op1, const Operand& op2, int code, int pref)\n\t{\n\t\tif (!isValidSSE(op1) || !isValidSSE(op2)) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\tif (pref != NONE) db(pref);\n\t\tif (op1.isXMM() && op2.isMEM()) {\n\t\t\topModM(op2.getAddress(), op1.getReg(), 0x0F, code);\n\t\t} else if (op1.isMEM() && op2.isXMM()) {\n\t\t\topModM(op1.getAddress(), op2.getReg(), 0x0F, code | 1);\n\t\t} else {\n\t\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t}\n\t}\n\tvoid opExt(const Operand& op, const Mmx& mmx, int code, int imm, bool hasMMX2 = false)\n\t{\n\t\tif (!isValidSSE(op) || !isValidSSE(mmx)) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\tif (hasMMX2 && op.isREG(i32e)) { /* pextrw is special */\n\t\t\tif (mmx.isXMM()) db(0x66);\n\t\t\topModR(op.getReg(), mmx, 0x0F, 0xC5); db(imm);\n\t\t} else {\n\t\t\topGen(mmx, op, code, 0x66, isXMM_REG32orMEM, imm, 0x3A);\n\t\t}\n\t}\n\tvoid opR_ModM(const Operand& op, int bit, int ext, int code0, int code1 = NONE, int code2 = NONE, bool disableRex = false, int immSize = 0)\n\t{\n\t\tint opBit = op.getBit();\n\t\tif (disableRex && opBit == 64) opBit = 32;\n\t\tif (op.isREG(bit)) {\n\t\t\topModR(Reg(ext, Operand::REG, opBit), op.getReg().changeBit(opBit), code0, code1, code2);\n\t\t} else if (op.isMEM()) {\n\t\t\topModM(op.getAddress(), Reg(ext, Operand::REG, opBit), code0, code1, code2, immSize);\n\t\t} else {\n\t\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t}\n\t}\n\tvoid opShift(const Operand& op, int imm, int ext)\n\t{\n\t\tverifyMemHasSize(op);\n\t\topR_ModM(op, 0, ext, (0xC0 | ((imm == 1 ? 1 : 0) << 4)), NONE, NONE, false, (imm != 1) ? 1 : 0);\n\t\tif (imm != 1) db(imm);\n\t}\n\tvoid opShift(const Operand& op, const Reg8& _cl, int ext)\n\t{\n\t\tif (_cl.getIdx() != Operand::CL) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\topR_ModM(op, 0, ext, 0xD2);\n\t}\n\tvoid opModRM(const Operand& op1, const Operand& op2, bool condR, bool condM, int code0, int code1 = NONE, int code2 = NONE, int immSize = 0)\n\t{\n\t\tif (condR) {\n\t\t\topModR(op1.getReg(), op2.getReg(), code0, code1, code2);\n\t\t} else if (condM) {\n\t\t\topModM(op2.getAddress(), op1.getReg(), code0, code1, code2, immSize);\n\t\t} else {\n\t\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t}\n\t}\n\tvoid opShxd(const Operand& op, const Reg& reg, uint8_t imm, int code, const Reg8 *_cl = 0)\n\t{\n\t\tif (_cl && _cl->getIdx() != Operand::CL) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\topModRM(reg, op, (op.isREG(16 | i32e) && op.getBit() == reg.getBit()), op.isMEM() && (reg.isREG(16 | i32e)), 0x0F, code | (_cl ? 1 : 0), NONE, _cl ? 0 : 1);\n\t\tif (!_cl) db(imm);\n\t}\n\t// (REG, REG|MEM), (MEM, REG)\n\tvoid opRM_RM(const Operand& op1, const Operand& op2, int code)\n\t{\n\t\tif (op1.isREG() && op2.isMEM()) {\n\t\t\topModM(op2.getAddress(), op1.getReg(), code | 2);\n\t\t} else {\n\t\t\topModRM(op2, op1, op1.isREG() && op1.getKind() == op2.getKind(), op1.isMEM() && op2.isREG(), code);\n\t\t}\n\t}\n\t// (REG|MEM, IMM)\n\tvoid opRM_I(const Operand& op, uint32_t imm, int code, int ext)\n\t{\n\t\tverifyMemHasSize(op);\n\t\tuint32_t immBit = inner::IsInDisp8(imm) ? 8 : isInDisp16(imm) ? 16 : 32;\n\t\tif (op.isBit(8)) immBit = 8;\n\t\tif (op.getBit() < immBit) XBYAK_THROW(ERR_IMM_IS_TOO_BIG)\n\t\tif (op.isBit(32|64) && immBit == 16) immBit = 32; /* don't use MEM16 if 32/64bit mode */\n\t\tif (op.isREG() && op.getIdx() == 0 && (op.getBit() == immBit || (op.isBit(64) && immBit == 32))) { // rax, eax, ax, al\n\t\t\trex(op);\n\t\t\tdb(code | 4 | (immBit == 8 ? 0 : 1));\n\t\t} else {\n\t\t\tint tmp = immBit < (std::min)(op.getBit(), 32U) ? 2 : 0;\n\t\t\topR_ModM(op, 0, ext, 0x80 | tmp, NONE, NONE, false, immBit / 8);\n\t\t}\n\t\tdb(imm, immBit / 8);\n\t}\n\tvoid opIncDec(const Operand& op, int code, int ext)\n\t{\n\t\tverifyMemHasSize(op);\n#ifndef XBYAK64\n\t\tif (op.isREG() && !op.isBit(8)) {\n\t\t\trex(op); db(code | op.getIdx());\n\t\t\treturn;\n\t\t}\n#endif\n\t\tcode = 0xFE;\n\t\tif (op.isREG()) {\n\t\t\topModR(Reg(ext, Operand::REG, op.getBit()), op.getReg(), code);\n\t\t} else {\n\t\t\topModM(op.getAddress(), Reg(ext, Operand::REG, op.getBit()), code);\n\t\t}\n\t}\n\tvoid opPushPop(const Operand& op, int code, int ext, int alt)\n\t{\n\t\tint bit = op.getBit();\n\t\tif (bit == 16 || bit == BIT) {\n\t\t\tif (bit == 16) db(0x66);\n\t\t\tif (op.isREG()) {\n\t\t\t\tif (op.getReg().getIdx() >= 8) db(0x41);\n\t\t\t\tdb(alt | (op.getIdx() & 7));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (op.isMEM()) {\n\t\t\t\topModM(op.getAddress(), Reg(ext, Operand::REG, 32), code);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t}\n\tvoid verifyMemHasSize(const Operand& op) const\n\t{\n\t\tif (op.isMEM() && op.getBit() == 0) XBYAK_THROW(ERR_MEM_SIZE_IS_NOT_SPECIFIED)\n\t}\n\t/*\n\t\tmov(r, imm) = db(imm, mov_imm(r, imm))\n\t*/\n\tint mov_imm(const Reg& reg, uint64_t imm)\n\t{\n\t\tint bit = reg.getBit();\n\t\tconst int idx = reg.getIdx();\n\t\tint code = 0xB0 | ((bit == 8 ? 0 : 1) << 3);\n\t\tif (bit == 64 && (imm & ~uint64_t(0xffffffffu)) == 0) {\n\t\t\trex(Reg32(idx));\n\t\t\tbit = 32;\n\t\t} else {\n\t\t\trex(reg);\n\t\t\tif (bit == 64 && inner::IsInInt32(imm)) {\n\t\t\t\tdb(0xC7);\n\t\t\t\tcode = 0xC0;\n\t\t\t\tbit = 32;\n\t\t\t}\n\t\t}\n\t\tdb(code | (idx & 7));\n\t\treturn bit / 8;\n\t}\n\ttemplate<class T>\n\tvoid putL_inner(T& label, bool relative = false, size_t disp = 0)\n\t{\n\t\tconst int jmpSize = relative ? 4 : (int)sizeof(size_t);\n\t\tif (isAutoGrow() && size_ + 16 >= maxSize_) growMemory();\n\t\tsize_t offset = 0;\n\t\tif (labelMgr_.getOffset(&offset, label)) {\n\t\t\tif (relative) {\n\t\t\t\tdb(inner::VerifyInInt32(offset + disp - size_ - jmpSize), jmpSize);\n\t\t\t} else if (isAutoGrow()) {\n\t\t\t\tdb(uint64_t(0), jmpSize);\n\t\t\t\tsave(size_ - jmpSize, offset, jmpSize, inner::LaddTop);\n\t\t\t} else {\n\t\t\t\tdb(size_t(top_) + offset, jmpSize);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tdb(uint64_t(0), jmpSize);\n\t\tJmpLabel jmp(size_, jmpSize, (relative ? inner::LasIs : isAutoGrow() ? inner::LaddTop : inner::Labs), disp);\n\t\tlabelMgr_.addUndefinedLabel(label, jmp);\n\t}\n\tvoid opMovxx(const Reg& reg, const Operand& op, uint8_t code)\n\t{\n\t\tif (op.isBit(32)) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tint w = op.isBit(16);\n\t\tbool cond = reg.isREG() && (reg.getBit() > op.getBit());\n\t\topModRM(reg, op, cond && op.isREG(), cond && op.isMEM(), 0x0F, code | w);\n\t}\n\tvoid opFpuMem(const Address& addr, uint8_t m16, uint8_t m32, uint8_t m64, uint8_t ext, uint8_t m64ext)\n\t{\n\t\tif (addr.is64bitDisp()) XBYAK_THROW(ERR_CANT_USE_64BIT_DISP)\n\t\tuint8_t code = addr.isBit(16) ? m16 : addr.isBit(32) ? m32 : addr.isBit(64) ? m64 : 0;\n\t\tif (!code) XBYAK_THROW(ERR_BAD_MEM_SIZE)\n\t\tif (m64ext && addr.isBit(64)) ext = m64ext;\n\n\t\trex(addr, st0);\n\t\tdb(code);\n\t\topAddr(addr, ext);\n\t}\n\t// use code1 if reg1 == st0\n\t// use code2 if reg1 != st0 && reg2 == st0\n\tvoid opFpuFpu(const Fpu& reg1, const Fpu& reg2, uint32_t code1, uint32_t code2)\n\t{\n\t\tuint32_t code = reg1.getIdx() == 0 ? code1 : reg2.getIdx() == 0 ? code2 : 0;\n\t\tif (!code) XBYAK_THROW(ERR_BAD_ST_COMBINATION)\n\t\tdb(uint8_t(code >> 8));\n\t\tdb(uint8_t(code | (reg1.getIdx() | reg2.getIdx())));\n\t}\n\tvoid opFpu(const Fpu& reg, uint8_t code1, uint8_t code2)\n\t{\n\t\tdb(code1); db(code2 | reg.getIdx());\n\t}\n\tvoid opVex(const Reg& r, const Operand *p1, const Operand& op2, int type, int code, int imm8 = NONE)\n\t{\n\t\tif (op2.isMEM()) {\n\t\t\tconst Address& addr = op2.getAddress();\n\t\t\tconst RegExp& regExp = addr.getRegExp();\n\t\t\tconst Reg& base = regExp.getBase();\n\t\t\tconst Reg& index = regExp.getIndex();\n\t\t\tif (BIT == 64 && addr.is32bit()) db(0x67);\n\t\t\tint disp8N = 0;\n\t\t\tbool x = index.isExtIdx();\n\t\t\tif ((type & (T_MUST_EVEX|T_MEM_EVEX)) || r.hasEvex() || (p1 && p1->hasEvex()) || addr.isBroadcast() || addr.getOpmaskIdx()) {\n\t\t\t\tint aaa = addr.getOpmaskIdx();\n\t\t\t\tif (aaa && !(type & T_M_K)) XBYAK_THROW(ERR_INVALID_OPMASK_WITH_MEMORY)\n\t\t\t\tbool b = false;\n\t\t\t\tif (addr.isBroadcast()) {\n\t\t\t\t\tif (!(type & (T_B32 | T_B64))) XBYAK_THROW(ERR_INVALID_BROADCAST)\n\t\t\t\t\tb = true;\n\t\t\t\t}\n\t\t\t\tint VL = regExp.isVsib() ? index.getBit() : 0;\n\t\t\t\tdisp8N = evex(r, base, p1, type, code, x, b, aaa, VL, index.isExtIdx2());\n\t\t\t} else {\n\t\t\t\tvex(r, base, p1, type, code, x);\n\t\t\t}\n\t\t\topAddr(addr, r.getIdx(), (imm8 != NONE) ? 1 : 0, disp8N, (type & T_VSIB) != 0);\n\t\t} else {\n\t\t\tconst Reg& base = op2.getReg();\n\t\t\tif ((type & T_MUST_EVEX) || r.hasEvex() || (p1 && p1->hasEvex()) || base.hasEvex()) {\n\t\t\t\tevex(r, base, p1, type, code);\n\t\t\t} else {\n\t\t\t\tvex(r, base, p1, type, code);\n\t\t\t}\n\t\t\tsetModRM(3, r.getIdx(), base.getIdx());\n\t\t}\n\t\tif (imm8 != NONE) db(imm8);\n\t}\n\t// (r, r, r/m) if isR_R_RM\n\t// (r, r/m, r)\n\tvoid opGpr(const Reg32e& r, const Operand& op1, const Operand& op2, int type, uint8_t code, bool isR_R_RM, int imm8 = NONE)\n\t{\n\t\tconst Operand *p1 = &op1;\n\t\tconst Operand *p2 = &op2;\n\t\tif (!isR_R_RM) std::swap(p1, p2);\n\t\tconst unsigned int bit = r.getBit();\n\t\tif (p1->getBit() != bit || (p2->isREG() && p2->getBit() != bit)) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\ttype |= (bit == 64) ? T_W1 : T_W0;\n\t\topVex(r, p1, *p2, type, code, imm8);\n\t}\n\tvoid opAVX_X_X_XM(const Xmm& x1, const Operand& op1, const Operand& op2, int type, int code0, int imm8 = NONE)\n\t{\n\t\tconst Xmm *x2 = static_cast<const Xmm*>(&op1);\n\t\tconst Operand *op = &op2;\n\t\tif (op2.isNone()) { // (x1, op1) -> (x1, x1, op1)\n\t\t\tx2 = &x1;\n\t\t\top = &op1;\n\t\t}\n\t\t// (x1, x2, op)\n\t\tif (!((x1.isXMM() && x2->isXMM()) || ((type & T_YMM) && ((x1.isYMM() && x2->isYMM()) || (x1.isZMM() && x2->isZMM()))))) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\topVex(x1, x2, *op, type, code0, imm8);\n\t}\n\tvoid opAVX_K_X_XM(const Opmask& k, const Xmm& x2, const Operand& op3, int type, int code0, int imm8 = NONE)\n\t{\n\t\tif (!op3.isMEM() && (x2.getKind() != op3.getKind())) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\topVex(k, &x2, op3, type, code0, imm8);\n\t}\n\t// (x, x/m), (y, x/m256), (z, y/m)\n\tvoid checkCvt1(const Operand& x, const Operand& op) const\n\t{\n\t\tif (!op.isMEM() && !(x.is(Operand::XMM | Operand::YMM) && op.isXMM()) && !(x.isZMM() && op.isYMM())) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t}\n\t// (x, x/m), (x, y/m256), (y, z/m)\n\tvoid checkCvt2(const Xmm& x, const Operand& op) const\n\t{\n\t\tif (!(x.isXMM() && op.is(Operand::XMM | Operand::YMM | Operand::MEM)) && !(x.isYMM() && op.is(Operand::ZMM | Operand::MEM))) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t}\n\tvoid opCvt(const Xmm& x, const Operand& op, int type, int code)\n\t{\n\t\tOperand::Kind kind = x.isXMM() ? (op.isBit(256) ? Operand::YMM : Operand::XMM) : Operand::ZMM;\n\t\topVex(x.copyAndSetKind(kind), &xm0, op, type, code);\n\t}\n\tvoid opCvt2(const Xmm& x, const Operand& op, int type, int code)\n\t{\n\t\tcheckCvt2(x, op);\n\t\topCvt(x, op, type, code);\n\t}\n\tvoid opCvt3(const Xmm& x1, const Xmm& x2, const Operand& op, int type, int type64, int type32, uint8_t code)\n\t{\n\t\tif (!(x1.isXMM() && x2.isXMM() && (op.isREG(i32e) || op.isMEM()))) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)\n\t\tXmm x(op.getIdx());\n\t\tconst Operand *p = op.isREG() ? &x : &op;\n\t\topVex(x1, &x2, *p, type | (op.isBit(64) ? type64 : type32), code);\n\t}\n\t// (x, x/y/xword/yword), (y, z/m)\n\tvoid checkCvt4(const Xmm& x, const Operand& op) const\n\t{\n\t\tif (!(x.isXMM() && op.is(Operand::XMM | Operand::YMM | Operand::MEM) && op.isBit(128|256)) && !(x.isYMM() && op.is(Operand::ZMM | Operand::MEM))) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t}\n\t// (x, x/y/z/xword/yword/zword)\n\tvoid opCvt5(const Xmm& x, const Operand& op, int type, int code)\n\t{\n\t\tif (!(x.isXMM() && op.isBit(128|256|512))) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tOperand::Kind kind = op.isBit(128) ? Operand::XMM : op.isBit(256) ? Operand::YMM : Operand::ZMM;\n\t\topVex(x.copyAndSetKind(kind), &xm0, op, type, code);\n\t}\n\tconst Xmm& cvtIdx0(const Operand& x) const\n\t{\n\t\treturn x.isZMM() ? zm0 : x.isYMM() ? ym0 : xm0;\n\t}\n\t// support (x, x/m, imm), (y, y/m, imm)\n\tvoid opAVX_X_XM_IMM(const Xmm& x, const Operand& op, int type, int code, int imm8 = NONE)\n\t{\n\t\topAVX_X_X_XM(x, cvtIdx0(x), op, type, code, imm8);\n\t}\n\t// QQQ:need to refactor\n\tvoid opSp1(const Reg& reg, const Operand& op, uint8_t pref, uint8_t code0, uint8_t code1)\n\t{\n\t\tif (reg.isBit(8)) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER)\n\t\tbool is16bit = reg.isREG(16) && (op.isREG(16) || op.isMEM());\n\t\tif (!is16bit && !(reg.isREG(i32e) && (op.isREG(reg.getBit()) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tif (is16bit) db(0x66);\n\t\tdb(pref); opModRM(reg.changeBit(i32e == 32 ? 32 : reg.getBit()), op, op.isREG(), true, code0, code1);\n\t}\n\tvoid opGather(const Xmm& x1, const Address& addr, const Xmm& x2, int type, uint8_t code, int mode)\n\t{\n\t\tconst RegExp& regExp = addr.getRegExp();\n\t\tif (!regExp.isVsib(128 | 256)) XBYAK_THROW(ERR_BAD_VSIB_ADDRESSING)\n\t\tconst int y_vx_y = 0;\n\t\tconst int y_vy_y = 1;\n//\t\tconst int x_vy_x = 2;\n\t\tconst bool isAddrYMM = regExp.getIndex().getBit() == 256;\n\t\tif (!x1.isXMM() || isAddrYMM || !x2.isXMM()) {\n\t\t\tbool isOK = false;\n\t\t\tif (mode == y_vx_y) {\n\t\t\t\tisOK = x1.isYMM() && !isAddrYMM && x2.isYMM();\n\t\t\t} else if (mode == y_vy_y) {\n\t\t\t\tisOK = x1.isYMM() && isAddrYMM && x2.isYMM();\n\t\t\t} else { // x_vy_x\n\t\t\t\tisOK = !x1.isYMM() && isAddrYMM && !x2.isYMM();\n\t\t\t}\n\t\t\tif (!isOK) XBYAK_THROW(ERR_BAD_VSIB_ADDRESSING)\n\t\t}\n\t\tint i1 = x1.getIdx();\n\t\tint i2 = regExp.getIndex().getIdx();\n\t\tint i3 = x2.getIdx();\n\t\tif (i1 == i2 || i1 == i3 || i2 == i3) XBYAK_THROW(ERR_SAME_REGS_ARE_INVALID);\n\t\topAVX_X_X_XM(isAddrYMM ? Ymm(i1) : x1, isAddrYMM ? Ymm(i3) : x2, addr, type, code);\n\t}\n\tenum {\n\t\txx_yy_zz = 0,\n\t\txx_yx_zy = 1,\n\t\txx_xy_yz = 2\n\t};\n\tvoid checkGather2(const Xmm& x1, const Reg& x2, int mode) const\n\t{\n\t\tif (x1.isXMM() && x2.isXMM()) return;\n\t\tswitch (mode) {\n\t\tcase xx_yy_zz: if ((x1.isYMM() && x2.isYMM()) || (x1.isZMM() && x2.isZMM())) return;\n\t\t\tbreak;\n\t\tcase xx_yx_zy: if ((x1.isYMM() && x2.isXMM()) || (x1.isZMM() && x2.isYMM())) return;\n\t\t\tbreak;\n\t\tcase xx_xy_yz: if ((x1.isXMM() && x2.isYMM()) || (x1.isYMM() && x2.isZMM())) return;\n\t\t\tbreak;\n\t\t}\n\t\tXBYAK_THROW(ERR_BAD_VSIB_ADDRESSING)\n\t}\n\tvoid opGather2(const Xmm& x, const Address& addr, int type, uint8_t code, int mode)\n\t{\n\t\tif (x.hasZero()) XBYAK_THROW(ERR_INVALID_ZERO)\n\t\tconst RegExp& regExp = addr.getRegExp();\n\t\tcheckGather2(x, regExp.getIndex(), mode);\n\t\tint maskIdx = x.getOpmaskIdx();\n\t\tif ((type & T_M_K) && addr.getOpmaskIdx()) maskIdx = addr.getOpmaskIdx();\n\t\tif (maskIdx == 0) XBYAK_THROW(ERR_K0_IS_INVALID);\n\t\tif (!(type & T_M_K) && x.getIdx() == regExp.getIndex().getIdx()) XBYAK_THROW(ERR_SAME_REGS_ARE_INVALID);\n\t\topVex(x, 0, addr, type, code);\n\t}\n\t/*\n\t\txx_xy_yz ; mode = true\n\t\txx_xy_xz ; mode = false\n\t*/\n\tvoid opVmov(const Operand& op, const Xmm& x, int type, uint8_t code, bool mode)\n\t{\n\t\tif (mode) {\n\t\t\tif (!op.isMEM() && !((op.isXMM() && x.isXMM()) || (op.isXMM() && x.isYMM()) || (op.isYMM() && x.isZMM()))) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t} else {\n\t\t\tif (!op.isMEM() && !op.isXMM()) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t}\n\t\topVex(x, 0, op, type, code);\n\t}\n\tvoid opGatherFetch(const Address& addr, const Xmm& x, int type, uint8_t code, Operand::Kind kind)\n\t{\n\t\tif (addr.hasZero()) XBYAK_THROW(ERR_INVALID_ZERO)\n\t\tif (addr.getRegExp().getIndex().getKind() != kind) XBYAK_THROW(ERR_BAD_VSIB_ADDRESSING)\n\t\topVex(x, 0, addr, type, code);\n\t}\n\tvoid opEncoding(const Xmm& x1, const Xmm& x2, const Operand& op, int type, int code0, PreferredEncoding encoding)\n\t{\n\t\topAVX_X_X_XM(x1, x2, op, type | orEvexIf(encoding), code0);\n\t}\n\tint orEvexIf(PreferredEncoding encoding) {\n\t\tif (encoding == DefaultEncoding) {\n\t\t\tencoding = defaultEncoding_;\n\t\t}\n\t\tif (encoding == EvexEncoding) {\n#ifdef XBYAK_DISABLE_AVX512\n\t\t\tXBYAK_THROW(ERR_EVEX_IS_INVALID)\n#endif\n\t\t\treturn T_MUST_EVEX;\n\t\t}\n\t\treturn 0;\n\t}\n\tvoid opInOut(const Reg& a, const Reg& d, uint8_t code)\n\t{\n\t\tif (a.getIdx() == Operand::AL && d.getIdx() == Operand::DX && d.getBit() == 16) {\n\t\t\tswitch (a.getBit()) {\n\t\t\tcase 8: db(code); return;\n\t\t\tcase 16: db(0x66); db(code + 1); return;\n\t\t\tcase 32: db(code + 1); return;\n\t\t\t}\n\t\t}\n\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t}\n\tvoid opInOut(const Reg& a, uint8_t code, uint8_t v)\n\t{\n\t\tif (a.getIdx() == Operand::AL) {\n\t\t\tswitch (a.getBit()) {\n\t\t\tcase 8: db(code); db(v); return;\n\t\t\tcase 16: db(0x66); db(code + 1); db(v); return;\n\t\t\tcase 32: db(code + 1); db(v); return;\n\t\t\t}\n\t\t}\n\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t}\n#ifdef XBYAK64\n\tvoid opAMX(const Tmm& t1, const Address& addr, int type, int code0)\n\t{\n\t\t// require both base and index\n\t\tconst RegExp exp = addr.getRegExp(false);\n\t\tif (exp.getBase().getBit() == 0 || exp.getIndex().getBit() == 0) XBYAK_THROW(ERR_NOT_SUPPORTED)\n\t\topVex(t1, &tmm0, addr, type, code0);\n\t}\n#endif\npublic:\n\tunsigned int getVersion() const { return VERSION; }\n\tusing CodeArray::db;\n\tconst Mmx mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;\n\tconst Xmm xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7;\n\tconst Ymm ymm0, ymm1, ymm2, ymm3, ymm4, ymm5, ymm6, ymm7;\n\tconst Zmm zmm0, zmm1, zmm2, zmm3, zmm4, zmm5, zmm6, zmm7;\n\tconst Xmm &xm0, &xm1, &xm2, &xm3, &xm4, &xm5, &xm6, &xm7;\n\tconst Ymm &ym0, &ym1, &ym2, &ym3, &ym4, &ym5, &ym6, &ym7;\n\tconst Zmm &zm0, &zm1, &zm2, &zm3, &zm4, &zm5, &zm6, &zm7;\n\tconst Reg32 eax, ecx, edx, ebx, esp, ebp, esi, edi;\n\tconst Reg16 ax, cx, dx, bx, sp, bp, si, di;\n\tconst Reg8 al, cl, dl, bl, ah, ch, dh, bh;\n\tconst AddressFrame ptr, byte, word, dword, qword, xword, yword, zword; // xword is same as oword of NASM\n\tconst AddressFrame ptr_b, xword_b, yword_b, zword_b; // broadcast such as {1to2}, {1to4}, {1to8}, {1to16}, {b}\n\tconst Fpu st0, st1, st2, st3, st4, st5, st6, st7;\n\tconst Opmask k0, k1, k2, k3, k4, k5, k6, k7;\n\tconst BoundsReg bnd0, bnd1, bnd2, bnd3;\n\tconst EvexModifierRounding T_sae, T_rn_sae, T_rd_sae, T_ru_sae, T_rz_sae; // {sae}, {rn-sae}, {rd-sae}, {ru-sae}, {rz-sae}\n\tconst EvexModifierZero T_z; // {z}\n#ifdef XBYAK64\n\tconst Reg64 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;\n\tconst Reg32 r8d, r9d, r10d, r11d, r12d, r13d, r14d, r15d;\n\tconst Reg16 r8w, r9w, r10w, r11w, r12w, r13w, r14w, r15w;\n\tconst Reg8 r8b, r9b, r10b, r11b, r12b, r13b, r14b, r15b;\n\tconst Reg8 spl, bpl, sil, dil;\n\tconst Xmm xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15;\n\tconst Xmm xmm16, xmm17, xmm18, xmm19, xmm20, xmm21, xmm22, xmm23;\n\tconst Xmm xmm24, xmm25, xmm26, xmm27, xmm28, xmm29, xmm30, xmm31;\n\tconst Ymm ymm8, ymm9, ymm10, ymm11, ymm12, ymm13, ymm14, ymm15;\n\tconst Ymm ymm16, ymm17, ymm18, ymm19, ymm20, ymm21, ymm22, ymm23;\n\tconst Ymm ymm24, ymm25, ymm26, ymm27, ymm28, ymm29, ymm30, ymm31;\n\tconst Zmm zmm8, zmm9, zmm10, zmm11, zmm12, zmm13, zmm14, zmm15;\n\tconst Zmm zmm16, zmm17, zmm18, zmm19, zmm20, zmm21, zmm22, zmm23;\n\tconst Zmm zmm24, zmm25, zmm26, zmm27, zmm28, zmm29, zmm30, zmm31;\n\tconst Tmm tmm0, tmm1, tmm2, tmm3, tmm4, tmm5, tmm6, tmm7;\n\tconst Xmm &xm8, &xm9, &xm10, &xm11, &xm12, &xm13, &xm14, &xm15; // for my convenience\n\tconst Xmm &xm16, &xm17, &xm18, &xm19, &xm20, &xm21, &xm22, &xm23;\n\tconst Xmm &xm24, &xm25, &xm26, &xm27, &xm28, &xm29, &xm30, &xm31;\n\tconst Ymm &ym8, &ym9, &ym10, &ym11, &ym12, &ym13, &ym14, &ym15;\n\tconst Ymm &ym16, &ym17, &ym18, &ym19, &ym20, &ym21, &ym22, &ym23;\n\tconst Ymm &ym24, &ym25, &ym26, &ym27, &ym28, &ym29, &ym30, &ym31;\n\tconst Zmm &zm8, &zm9, &zm10, &zm11, &zm12, &zm13, &zm14, &zm15;\n\tconst Zmm &zm16, &zm17, &zm18, &zm19, &zm20, &zm21, &zm22, &zm23;\n\tconst Zmm &zm24, &zm25, &zm26, &zm27, &zm28, &zm29, &zm30, &zm31;\n\tconst RegRip rip;\n#endif\n#ifndef XBYAK_DISABLE_SEGMENT\n\tconst Segment es, cs, ss, ds, fs, gs;\n#endif\nprivate:\n\tbool isDefaultJmpNEAR_;\n\tPreferredEncoding defaultEncoding_;\npublic:\n\tvoid L(const std::string& label) { labelMgr_.defineSlabel(label); }\n\tvoid L(Label& label) { labelMgr_.defineClabel(label); }\n\tLabel L() { Label label; L(label); return label; }\n\tvoid inLocalLabel() { labelMgr_.enterLocal(); }\n\tvoid outLocalLabel() { labelMgr_.leaveLocal(); }\n\t/*\n\t\tassign src to dst\n\t\trequire\n\t\tdst : does not used by L()\n\t\tsrc : used by L()\n\t*/\n\tvoid assignL(Label& dst, const Label& src) { labelMgr_.assign(dst, src); }\n\t/*\n\t\tput address of label to buffer\n\t\t@note the put size is 4(32-bit), 8(64-bit)\n\t*/\n\tvoid putL(std::string label) { putL_inner(label); }\n\tvoid putL(const Label& label) { putL_inner(label); }\n\n\t// set default type of `jmp` of undefined label to T_NEAR\n\tvoid setDefaultJmpNEAR(bool isNear) { isDefaultJmpNEAR_ = isNear; }\n\tvoid jmp(const Operand& op, LabelType type = T_AUTO) { opJmpOp(op, type, 4); }\n\tvoid jmp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0xEB, 0xE9, 0); }\n\tvoid jmp(const char *label, LabelType type = T_AUTO) { jmp(std::string(label), type); }\n\tvoid jmp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0xEB, 0xE9, 0); }\n\tvoid jmp(const void *addr, LabelType type = T_AUTO) { opJmpAbs(addr, type, 0xEB, 0xE9); }\n\n\tvoid call(const Operand& op, LabelType type = T_AUTO) { opJmpOp(op, type, 2); }\n\t// call(string label), not const std::string&\n\tvoid call(std::string label) { opJmp(label, T_NEAR, 0, 0xE8, 0); }\n\tvoid call(const char *label) { call(std::string(label)); }\n\tvoid call(const Label& label) { opJmp(label, T_NEAR, 0, 0xE8, 0); }\n\t// call(function pointer)\n#ifdef XBYAK_VARIADIC_TEMPLATE\n\ttemplate<class Ret, class... Params>\n\tvoid call(Ret(*func)(Params...)) { call(reinterpret_cast<const void*>(func)); }\n#endif\n\tvoid call(const void *addr) { opJmpAbs(addr, T_NEAR, 0, 0xE8); }\n\n\tvoid test(const Operand& op, const Reg& reg)\n\t{\n\t\topModRM(reg, op, op.isREG() && (op.getKind() == reg.getKind()), op.isMEM(), 0x84);\n\t}\n\tvoid test(const Operand& op, uint32_t imm)\n\t{\n\t\tverifyMemHasSize(op);\n        int immSize = (std::min)(op.getBit() / 8, 4U);\n\t\tif (op.isREG() && op.getIdx() == 0) { // al, ax, eax\n\t\t\trex(op);\n\t\t\tdb(0xA8 | (op.isBit(8) ? 0 : 1));\n\t\t} else {\n\t\t\topR_ModM(op, 0, 0, 0xF6, NONE, NONE, false, immSize);\n\t\t}\n\t\tdb(imm, immSize);\n\t}\n\tvoid imul(const Reg& reg, const Operand& op)\n\t{\n\t\topModRM(reg, op, op.isREG() && (reg.getKind() == op.getKind()), op.isMEM(), 0x0F, 0xAF);\n\t}\n\tvoid imul(const Reg& reg, const Operand& op, int imm)\n\t{\n\t\tint s = inner::IsInDisp8(imm) ? 1 : 0;\n        int immSize = s ? 1 : reg.isREG(16) ? 2 : 4;\n\t\topModRM(reg, op, op.isREG() && (reg.getKind() == op.getKind()), op.isMEM(), 0x69 | (s << 1), NONE, NONE, immSize);\n\t\tdb(imm, immSize);\n\t}\n\tvoid push(const Operand& op) { opPushPop(op, 0xFF, 6, 0x50); }\n\tvoid pop(const Operand& op) { opPushPop(op, 0x8F, 0, 0x58); }\n\tvoid push(const AddressFrame& af, uint32_t imm)\n\t{\n\t\tif (af.bit_ == 8) {\n\t\t\tdb(0x6A); db(imm);\n\t\t} else if (af.bit_ == 16) {\n\t\t\tdb(0x66); db(0x68); dw(imm);\n\t\t} else {\n\t\t\tdb(0x68); dd(imm);\n\t\t}\n\t}\n\t/* use \"push(word, 4)\" if you want \"push word 4\" */\n\tvoid push(uint32_t imm)\n\t{\n\t\tif (inner::IsInDisp8(imm)) {\n\t\t\tpush(byte, imm);\n\t\t} else {\n\t\t\tpush(dword, imm);\n\t\t}\n\t}\n\tvoid mov(const Operand& reg1, const Operand& reg2)\n\t{\n\t\tconst Reg *reg = 0;\n\t\tconst Address *addr = 0;\n\t\tuint8_t code = 0;\n\t\tif (reg1.isREG() && reg1.getIdx() == 0 && reg2.isMEM()) { // mov eax|ax|al, [disp]\n\t\t\treg = &reg1.getReg();\n\t\t\taddr= &reg2.getAddress();\n\t\t\tcode = 0xA0;\n\t\t} else\n\t\tif (reg1.isMEM() && reg2.isREG() && reg2.getIdx() == 0) { // mov [disp], eax|ax|al\n\t\t\treg = &reg2.getReg();\n\t\t\taddr= &reg1.getAddress();\n\t\t\tcode = 0xA2;\n\t\t}\n#ifdef XBYAK64\n\t\tif (addr && addr->is64bitDisp()) {\n\t\t\tif (code) {\n\t\t\t\trex(*reg);\n\t\t\t\tdb(reg1.isREG(8) ? 0xA0 : reg1.isREG() ? 0xA1 : reg2.isREG(8) ? 0xA2 : 0xA3);\n\t\t\t\tdb(addr->getDisp(), 8);\n\t\t\t} else {\n\t\t\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t\t}\n\t\t} else\n#else\n\t\tif (code && addr->isOnlyDisp()) {\n\t\t\trex(*reg, *addr);\n\t\t\tdb(code | (reg->isBit(8) ? 0 : 1));\n\t\t\tdd(static_cast<uint32_t>(addr->getDisp()));\n\t\t} else\n#endif\n\t\t{\n\t\t\topRM_RM(reg1, reg2, 0x88);\n\t\t}\n\t}\n\tvoid mov(const Operand& op, uint64_t imm)\n\t{\n\t\tif (op.isREG()) {\n\t\t\tconst int size = mov_imm(op.getReg(), imm);\n\t\t\tdb(imm, size);\n\t\t} else if (op.isMEM()) {\n\t\t\tverifyMemHasSize(op);\n\t\t\tint immSize = op.getBit() / 8;\n\t\t\tif (immSize <= 4) {\n\t\t\t\tint64_t s = int64_t(imm) >> (immSize * 8);\n\t\t\t\tif (s != 0 && s != -1) XBYAK_THROW(ERR_IMM_IS_TOO_BIG)\n\t\t\t} else {\n\t\t\t\tif (!inner::IsInInt32(imm)) XBYAK_THROW(ERR_IMM_IS_TOO_BIG)\n\t\t\t\timmSize = 4;\n\t\t\t}\n\t\t\topModM(op.getAddress(), Reg(0, Operand::REG, op.getBit()), 0xC6, NONE, NONE, immSize);\n\t\t\tdb(static_cast<uint32_t>(imm), immSize);\n\t\t} else {\n\t\t\tXBYAK_THROW(ERR_BAD_COMBINATION)\n\t\t}\n\t}\n\n\t// The template is used to avoid ambiguity when the 2nd argument is 0.\n\t// When the 2nd argument is 0 the call goes to\n\t// `void mov(const Operand& op, uint64_t imm)`.\n\ttemplate <typename T1, typename T2>\n\tvoid mov(const T1&, const T2 *) { T1::unexpected; }\n\tvoid mov(const NativeReg& reg, const Label& label)\n\t{\n\t\tmov_imm(reg, dummyAddr);\n\t\tputL(label);\n\t}\n\tvoid xchg(const Operand& op1, const Operand& op2)\n\t{\n\t\tconst Operand *p1 = &op1, *p2 = &op2;\n\t\tif (p1->isMEM() || (p2->isREG(16 | i32e) && p2->getIdx() == 0)) {\n\t\t\tp1 = &op2; p2 = &op1;\n\t\t}\n\t\tif (p1->isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tif (p2->isREG() && (p1->isREG(16 | i32e) && p1->getIdx() == 0)\n#ifdef XBYAK64\n\t\t\t&& (p2->getIdx() != 0 || !p1->isREG(32))\n#endif\n\t\t) {\n\t\t\trex(*p2, *p1); db(0x90 | (p2->getIdx() & 7));\n\t\t\treturn;\n\t\t}\n\t\topModRM(*p1, *p2, (p1->isREG() && p2->isREG() && (p1->getBit() == p2->getBit())), p2->isMEM(), 0x86 | (p1->isBit(8) ? 0 : 1));\n\t}\n\n#ifndef XBYAK_DISABLE_SEGMENT\n\tvoid push(const Segment& seg)\n\t{\n\t\tswitch (seg.getIdx()) {\n\t\tcase Segment::es: db(0x06); break;\n\t\tcase Segment::cs: db(0x0E); break;\n\t\tcase Segment::ss: db(0x16); break;\n\t\tcase Segment::ds: db(0x1E); break;\n\t\tcase Segment::fs: db(0x0F); db(0xA0); break;\n\t\tcase Segment::gs: db(0x0F); db(0xA8); break;\n\t\tdefault:\n\t\t\tassert(0);\n\t\t}\n\t}\n\tvoid pop(const Segment& seg)\n\t{\n\t\tswitch (seg.getIdx()) {\n\t\tcase Segment::es: db(0x07); break;\n\t\tcase Segment::cs: XBYAK_THROW(ERR_BAD_COMBINATION)\n\t\tcase Segment::ss: db(0x17); break;\n\t\tcase Segment::ds: db(0x1F); break;\n\t\tcase Segment::fs: db(0x0F); db(0xA1); break;\n\t\tcase Segment::gs: db(0x0F); db(0xA9); break;\n\t\tdefault:\n\t\t\tassert(0);\n\t\t}\n\t}\n\tvoid putSeg(const Segment& seg)\n\t{\n\t\tswitch (seg.getIdx()) {\n\t\tcase Segment::es: db(0x2E); break;\n\t\tcase Segment::cs: db(0x36); break;\n\t\tcase Segment::ss: db(0x3E); break;\n\t\tcase Segment::ds: db(0x26); break;\n\t\tcase Segment::fs: db(0x64); break;\n\t\tcase Segment::gs: db(0x65); break;\n\t\tdefault:\n\t\t\tassert(0);\n\t\t}\n\t}\n\tvoid mov(const Operand& op, const Segment& seg)\n\t{\n\t\topModRM(Reg8(seg.getIdx()), op, op.isREG(16|i32e), op.isMEM(), 0x8C);\n\t}\n\tvoid mov(const Segment& seg, const Operand& op)\n\t{\n\t\topModRM(Reg8(seg.getIdx()), op.isREG(16|i32e) ? static_cast<const Operand&>(op.getReg().cvt32()) : op, op.isREG(16|i32e), op.isMEM(), 0x8E);\n\t}\n#endif\n\n\tenum { NONE = 256 };\n\t// constructor\n\tCodeGenerator(size_t maxSize = DEFAULT_MAX_CODE_SIZE, void *userPtr = 0, Allocator *allocator = 0)\n\t\t: CodeArray(maxSize, userPtr, allocator)\n\t\t, mm0(0), mm1(1), mm2(2), mm3(3), mm4(4), mm5(5), mm6(6), mm7(7)\n\t\t, xmm0(0), xmm1(1), xmm2(2), xmm3(3), xmm4(4), xmm5(5), xmm6(6), xmm7(7)\n\t\t, ymm0(0), ymm1(1), ymm2(2), ymm3(3), ymm4(4), ymm5(5), ymm6(6), ymm7(7)\n\t\t, zmm0(0), zmm1(1), zmm2(2), zmm3(3), zmm4(4), zmm5(5), zmm6(6), zmm7(7)\n\t\t// for my convenience\n\t\t, xm0(xmm0), xm1(xmm1), xm2(xmm2), xm3(xmm3), xm4(xmm4), xm5(xmm5), xm6(xmm6), xm7(xmm7)\n\t\t, ym0(ymm0), ym1(ymm1), ym2(ymm2), ym3(ymm3), ym4(ymm4), ym5(ymm5), ym6(ymm6), ym7(ymm7)\n\t\t, zm0(zmm0), zm1(zmm1), zm2(zmm2), zm3(zmm3), zm4(zmm4), zm5(zmm5), zm6(zmm6), zm7(zmm7)\n\n\t\t, eax(Operand::EAX), ecx(Operand::ECX), edx(Operand::EDX), ebx(Operand::EBX), esp(Operand::ESP), ebp(Operand::EBP), esi(Operand::ESI), edi(Operand::EDI)\n\t\t, ax(Operand::AX), cx(Operand::CX), dx(Operand::DX), bx(Operand::BX), sp(Operand::SP), bp(Operand::BP), si(Operand::SI), di(Operand::DI)\n\t\t, al(Operand::AL), cl(Operand::CL), dl(Operand::DL), bl(Operand::BL), ah(Operand::AH), ch(Operand::CH), dh(Operand::DH), bh(Operand::BH)\n\t\t, ptr(0), byte(8), word(16), dword(32), qword(64), xword(128), yword(256), zword(512)\n\t\t, ptr_b(0, true), xword_b(128, true), yword_b(256, true), zword_b(512, true)\n\t\t, st0(0), st1(1), st2(2), st3(3), st4(4), st5(5), st6(6), st7(7)\n\t\t, k0(0), k1(1), k2(2), k3(3), k4(4), k5(5), k6(6), k7(7)\n\t\t, bnd0(0), bnd1(1), bnd2(2), bnd3(3)\n\t\t, T_sae(EvexModifierRounding::T_SAE), T_rn_sae(EvexModifierRounding::T_RN_SAE), T_rd_sae(EvexModifierRounding::T_RD_SAE), T_ru_sae(EvexModifierRounding::T_RU_SAE), T_rz_sae(EvexModifierRounding::T_RZ_SAE)\n\t\t, T_z()\n#ifdef XBYAK64\n\t\t, rax(Operand::RAX), rcx(Operand::RCX), rdx(Operand::RDX), rbx(Operand::RBX), rsp(Operand::RSP), rbp(Operand::RBP), rsi(Operand::RSI), rdi(Operand::RDI), r8(Operand::R8), r9(Operand::R9), r10(Operand::R10), r11(Operand::R11), r12(Operand::R12), r13(Operand::R13), r14(Operand::R14), r15(Operand::R15)\n\t\t, r8d(8), r9d(9), r10d(10), r11d(11), r12d(12), r13d(13), r14d(14), r15d(15)\n\t\t, r8w(8), r9w(9), r10w(10), r11w(11), r12w(12), r13w(13), r14w(14), r15w(15)\n\t\t, r8b(8), r9b(9), r10b(10), r11b(11), r12b(12), r13b(13), r14b(14), r15b(15)\n\t\t, spl(Operand::SPL, true), bpl(Operand::BPL, true), sil(Operand::SIL, true), dil(Operand::DIL, true)\n\t\t, xmm8(8), xmm9(9), xmm10(10), xmm11(11), xmm12(12), xmm13(13), xmm14(14), xmm15(15)\n\t\t, xmm16(16), xmm17(17), xmm18(18), xmm19(19), xmm20(20), xmm21(21), xmm22(22), xmm23(23)\n\t\t, xmm24(24), xmm25(25), xmm26(26), xmm27(27), xmm28(28), xmm29(29), xmm30(30), xmm31(31)\n\t\t, ymm8(8), ymm9(9), ymm10(10), ymm11(11), ymm12(12), ymm13(13), ymm14(14), ymm15(15)\n\t\t, ymm16(16), ymm17(17), ymm18(18), ymm19(19), ymm20(20), ymm21(21), ymm22(22), ymm23(23)\n\t\t, ymm24(24), ymm25(25), ymm26(26), ymm27(27), ymm28(28), ymm29(29), ymm30(30), ymm31(31)\n\t\t, zmm8(8), zmm9(9), zmm10(10), zmm11(11), zmm12(12), zmm13(13), zmm14(14), zmm15(15)\n\t\t, zmm16(16), zmm17(17), zmm18(18), zmm19(19), zmm20(20), zmm21(21), zmm22(22), zmm23(23)\n\t\t, zmm24(24), zmm25(25), zmm26(26), zmm27(27), zmm28(28), zmm29(29), zmm30(30), zmm31(31)\n\t\t, tmm0(0), tmm1(1), tmm2(2), tmm3(3), tmm4(4), tmm5(5), tmm6(6), tmm7(7)\n\t\t// for my convenience\n\t\t, xm8(xmm8), xm9(xmm9), xm10(xmm10), xm11(xmm11), xm12(xmm12), xm13(xmm13), xm14(xmm14), xm15(xmm15)\n\t\t, xm16(xmm16), xm17(xmm17), xm18(xmm18), xm19(xmm19), xm20(xmm20), xm21(xmm21), xm22(xmm22), xm23(xmm23)\n\t\t, xm24(xmm24), xm25(xmm25), xm26(xmm26), xm27(xmm27), xm28(xmm28), xm29(xmm29), xm30(xmm30), xm31(xmm31)\n\t\t, ym8(ymm8), ym9(ymm9), ym10(ymm10), ym11(ymm11), ym12(ymm12), ym13(ymm13), ym14(ymm14), ym15(ymm15)\n\t\t, ym16(ymm16), ym17(ymm17), ym18(ymm18), ym19(ymm19), ym20(ymm20), ym21(ymm21), ym22(ymm22), ym23(ymm23)\n\t\t, ym24(ymm24), ym25(ymm25), ym26(ymm26), ym27(ymm27), ym28(ymm28), ym29(ymm29), ym30(ymm30), ym31(ymm31)\n\t\t, zm8(zmm8), zm9(zmm9), zm10(zmm10), zm11(zmm11), zm12(zmm12), zm13(zmm13), zm14(zmm14), zm15(zmm15)\n\t\t, zm16(zmm16), zm17(zmm17), zm18(zmm18), zm19(zmm19), zm20(zmm20), zm21(zmm21), zm22(zmm22), zm23(zmm23)\n\t\t, zm24(zmm24), zm25(zmm25), zm26(zmm26), zm27(zmm27), zm28(zmm28), zm29(zmm29), zm30(zmm30), zm31(zmm31)\n\t\t, rip()\n#endif\n#ifndef XBYAK_DISABLE_SEGMENT\n\t\t, es(Segment::es), cs(Segment::cs), ss(Segment::ss), ds(Segment::ds), fs(Segment::fs), gs(Segment::gs)\n#endif\n\t\t, isDefaultJmpNEAR_(false)\n\t\t, defaultEncoding_(EvexEncoding)\n\t{\n\t\tlabelMgr_.set(this);\n\t}\n\tvoid reset()\n\t{\n\t\tClearError();\n\t\tresetSize();\n\t\tlabelMgr_.reset();\n\t\tlabelMgr_.set(this);\n\t}\n\tbool hasUndefinedLabel() const { return labelMgr_.hasUndefSlabel() || labelMgr_.hasUndefClabel(); }\n\t/*\n\t\tMUST call ready() to complete generating code if you use AutoGrow mode.\n\t\tIt is not necessary for the other mode if hasUndefinedLabel() is true.\n\t*/\n\tvoid ready(ProtectMode mode = PROTECT_RWE)\n\t{\n\t\tif (hasUndefinedLabel()) XBYAK_THROW(ERR_LABEL_IS_NOT_FOUND)\n\t\tif (isAutoGrow()) {\n\t\t\tcalcJmpAddress();\n\t\t\tif (useProtect()) setProtectMode(mode);\n\t\t}\n\t}\n\t// set read/exec\n\tvoid readyRE() { return ready(PROTECT_RE); }\n#ifdef XBYAK_TEST\n\tvoid dump(bool doClear = true)\n\t{\n\t\tCodeArray::dump();\n\t\tif (doClear) size_ = 0;\n\t}\n#endif\n\n#ifdef XBYAK_UNDEF_JNL\n\t#undef jnl\n#endif\n\n\t// set default encoding to select Vex or Evex\n\tvoid setDefaultEncoding(PreferredEncoding encoding) { defaultEncoding_ = encoding; }\n\n\t/*\n\t\tuse single byte nop if useMultiByteNop = false\n\t*/\n\tvoid nop(size_t size = 1, bool useMultiByteNop = true)\n\t{\n\t\tif (!useMultiByteNop) {\n\t\t\tfor (size_t i = 0; i < size; i++) {\n\t\t\t\tdb(0x90);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t/*\n\t\t\tIntel Architectures Software Developer's Manual Volume 2\n\t\t\trecommended multi-byte sequence of NOP instruction\n\t\t\tAMD and Intel seem to agree on the same sequences for up to 9 bytes:\n\t\t\thttps://support.amd.com/TechDocs/55723_SOG_Fam_17h_Processors_3.00.pdf\n\t\t*/\n\t\tstatic const uint8_t nopTbl[9][9] = {\n\t\t\t{0x90},\n\t\t\t{0x66, 0x90},\n\t\t\t{0x0F, 0x1F, 0x00},\n\t\t\t{0x0F, 0x1F, 0x40, 0x00},\n\t\t\t{0x0F, 0x1F, 0x44, 0x00, 0x00},\n\t\t\t{0x66, 0x0F, 0x1F, 0x44, 0x00, 0x00},\n\t\t\t{0x0F, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00},\n\t\t\t{0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},\n\t\t\t{0x66, 0x0F, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},\n\t\t};\n\t\tconst size_t n = sizeof(nopTbl) / sizeof(nopTbl[0]);\n\t\twhile (size > 0) {\n\t\t\tsize_t len = (std::min)(n, size);\n\t\t\tconst uint8_t *seq = nopTbl[len - 1];\n\t\t\tdb(seq, len);\n\t\t\tsize -= len;\n\t\t}\n\t}\n\n#ifndef XBYAK_DONT_READ_LIST\n#include \"xbyak_mnemonic.h\"\n\t/*\n\t\tuse single byte nop if useMultiByteNop = false\n\t*/\n\tvoid align(size_t x = 16, bool useMultiByteNop = true)\n\t{\n\t\tif (x == 1) return;\n\t\tif (x < 1 || (x & (x - 1))) XBYAK_THROW(ERR_BAD_ALIGN)\n\t\tif (isAutoGrow()) XBYAK_THROW(ERR_BAD_ALIGN)\n\t\tsize_t remain = size_t(getCurr()) % x;\n\t\tif (remain) {\n\t\t\tnop(x - remain, useMultiByteNop);\n\t\t}\n\t}\n#endif\n};\n\ntemplate <>\ninline void CodeGenerator::mov(const NativeReg& reg, const char *label) // can't use std::string\n{\n\tassert(label);\n\tmov_imm(reg, dummyAddr);\n\tputL(label);\n}\n\nnamespace util {\nstatic const XBYAK_CONSTEXPR Mmx mm0(0), mm1(1), mm2(2), mm3(3), mm4(4), mm5(5), mm6(6), mm7(7);\nstatic const XBYAK_CONSTEXPR Xmm xmm0(0), xmm1(1), xmm2(2), xmm3(3), xmm4(4), xmm5(5), xmm6(6), xmm7(7);\nstatic const XBYAK_CONSTEXPR Ymm ymm0(0), ymm1(1), ymm2(2), ymm3(3), ymm4(4), ymm5(5), ymm6(6), ymm7(7);\nstatic const XBYAK_CONSTEXPR Zmm zmm0(0), zmm1(1), zmm2(2), zmm3(3), zmm4(4), zmm5(5), zmm6(6), zmm7(7);\nstatic const XBYAK_CONSTEXPR Reg32 eax(Operand::EAX), ecx(Operand::ECX), edx(Operand::EDX), ebx(Operand::EBX), esp(Operand::ESP), ebp(Operand::EBP), esi(Operand::ESI), edi(Operand::EDI);\nstatic const XBYAK_CONSTEXPR Reg16 ax(Operand::AX), cx(Operand::CX), dx(Operand::DX), bx(Operand::BX), sp(Operand::SP), bp(Operand::BP), si(Operand::SI), di(Operand::DI);\nstatic const XBYAK_CONSTEXPR Reg8 al(Operand::AL), cl(Operand::CL), dl(Operand::DL), bl(Operand::BL), ah(Operand::AH), ch(Operand::CH), dh(Operand::DH), bh(Operand::BH);\nstatic const XBYAK_CONSTEXPR AddressFrame ptr(0), byte(8), word(16), dword(32), qword(64), xword(128), yword(256), zword(512);\nstatic const XBYAK_CONSTEXPR AddressFrame ptr_b(0, true), xword_b(128, true), yword_b(256, true), zword_b(512, true);\nstatic const XBYAK_CONSTEXPR Fpu st0(0), st1(1), st2(2), st3(3), st4(4), st5(5), st6(6), st7(7);\nstatic const XBYAK_CONSTEXPR Opmask k0(0), k1(1), k2(2), k3(3), k4(4), k5(5), k6(6), k7(7);\nstatic const XBYAK_CONSTEXPR BoundsReg bnd0(0), bnd1(1), bnd2(2), bnd3(3);\nstatic const XBYAK_CONSTEXPR EvexModifierRounding T_sae(EvexModifierRounding::T_SAE), T_rn_sae(EvexModifierRounding::T_RN_SAE), T_rd_sae(EvexModifierRounding::T_RD_SAE), T_ru_sae(EvexModifierRounding::T_RU_SAE), T_rz_sae(EvexModifierRounding::T_RZ_SAE);\nstatic const XBYAK_CONSTEXPR EvexModifierZero T_z;\n#ifdef XBYAK64\nstatic const XBYAK_CONSTEXPR Reg64 rax(Operand::RAX), rcx(Operand::RCX), rdx(Operand::RDX), rbx(Operand::RBX), rsp(Operand::RSP), rbp(Operand::RBP), rsi(Operand::RSI), rdi(Operand::RDI), r8(Operand::R8), r9(Operand::R9), r10(Operand::R10), r11(Operand::R11), r12(Operand::R12), r13(Operand::R13), r14(Operand::R14), r15(Operand::R15);\nstatic const XBYAK_CONSTEXPR Reg32 r8d(8), r9d(9), r10d(10), r11d(11), r12d(12), r13d(13), r14d(14), r15d(15);\nstatic const XBYAK_CONSTEXPR Reg16 r8w(8), r9w(9), r10w(10), r11w(11), r12w(12), r13w(13), r14w(14), r15w(15);\nstatic const XBYAK_CONSTEXPR Reg8 r8b(8), r9b(9), r10b(10), r11b(11), r12b(12), r13b(13), r14b(14), r15b(15), spl(Operand::SPL, true), bpl(Operand::BPL, true), sil(Operand::SIL, true), dil(Operand::DIL, true);\nstatic const XBYAK_CONSTEXPR Xmm xmm8(8), xmm9(9), xmm10(10), xmm11(11), xmm12(12), xmm13(13), xmm14(14), xmm15(15);\nstatic const XBYAK_CONSTEXPR Xmm xmm16(16), xmm17(17), xmm18(18), xmm19(19), xmm20(20), xmm21(21), xmm22(22), xmm23(23);\nstatic const XBYAK_CONSTEXPR Xmm xmm24(24), xmm25(25), xmm26(26), xmm27(27), xmm28(28), xmm29(29), xmm30(30), xmm31(31);\nstatic const XBYAK_CONSTEXPR Ymm ymm8(8), ymm9(9), ymm10(10), ymm11(11), ymm12(12), ymm13(13), ymm14(14), ymm15(15);\nstatic const XBYAK_CONSTEXPR Ymm ymm16(16), ymm17(17), ymm18(18), ymm19(19), ymm20(20), ymm21(21), ymm22(22), ymm23(23);\nstatic const XBYAK_CONSTEXPR Ymm ymm24(24), ymm25(25), ymm26(26), ymm27(27), ymm28(28), ymm29(29), ymm30(30), ymm31(31);\nstatic const XBYAK_CONSTEXPR Zmm zmm8(8), zmm9(9), zmm10(10), zmm11(11), zmm12(12), zmm13(13), zmm14(14), zmm15(15);\nstatic const XBYAK_CONSTEXPR Zmm zmm16(16), zmm17(17), zmm18(18), zmm19(19), zmm20(20), zmm21(21), zmm22(22), zmm23(23);\nstatic const XBYAK_CONSTEXPR Zmm zmm24(24), zmm25(25), zmm26(26), zmm27(27), zmm28(28), zmm29(29), zmm30(30), zmm31(31);\nstatic const XBYAK_CONSTEXPR Zmm tmm0(0), tmm1(1), tmm2(2), tmm3(3), tmm4(4), tmm5(5), tmm6(6), tmm7(7);\nstatic const XBYAK_CONSTEXPR RegRip rip;\n#endif\n#ifndef XBYAK_DISABLE_SEGMENT\nstatic const XBYAK_CONSTEXPR Segment es(Segment::es), cs(Segment::cs), ss(Segment::ss), ds(Segment::ds), fs(Segment::fs), gs(Segment::gs);\n#endif\n} // util\n\n#ifdef _MSC_VER\n\t#pragma warning(pop)\n#endif\n\n#if defined(__GNUC__) && !defined(__clang__)\n\t#pragma GCC diagnostic pop\n#endif\n\n} // end of namespace\n\n#endif // XBYAK_XBYAK_H_\n"
  },
  {
    "path": "xbyak/xbyak/xbyak_bin2hex.h",
    "content": "enum {\n\tB00000000= 0,\n\tB00000001= 1,\n\tB00000010= 2,\n\tB00000011= 3,\n\tB00000100= 4,\n\tB00000101= 5,\n\tB00000110= 6,\n\tB00000111= 7,\n\tB00001000= 8,\n\tB00001001= 9,\n\tB00001010= 10,\n\tB00001011= 11,\n\tB00001100= 12,\n\tB00001101= 13,\n\tB00001110= 14,\n\tB00001111= 15,\n\tB00010000= 16,\n\tB00010001= 17,\n\tB00010010= 18,\n\tB00010011= 19,\n\tB00010100= 20,\n\tB00010101= 21,\n\tB00010110= 22,\n\tB00010111= 23,\n\tB00011000= 24,\n\tB00011001= 25,\n\tB00011010= 26,\n\tB00011011= 27,\n\tB00011100= 28,\n\tB00011101= 29,\n\tB00011110= 30,\n\tB00011111= 31,\n\tB00100000= 32,\n\tB00100001= 33,\n\tB00100010= 34,\n\tB00100011= 35,\n\tB00100100= 36,\n\tB00100101= 37,\n\tB00100110= 38,\n\tB00100111= 39,\n\tB00101000= 40,\n\tB00101001= 41,\n\tB00101010= 42,\n\tB00101011= 43,\n\tB00101100= 44,\n\tB00101101= 45,\n\tB00101110= 46,\n\tB00101111= 47,\n\tB00110000= 48,\n\tB00110001= 49,\n\tB00110010= 50,\n\tB00110011= 51,\n\tB00110100= 52,\n\tB00110101= 53,\n\tB00110110= 54,\n\tB00110111= 55,\n\tB00111000= 56,\n\tB00111001= 57,\n\tB00111010= 58,\n\tB00111011= 59,\n\tB00111100= 60,\n\tB00111101= 61,\n\tB00111110= 62,\n\tB00111111= 63,\n\tB01000000= 64,\n\tB01000001= 65,\n\tB01000010= 66,\n\tB01000011= 67,\n\tB01000100= 68,\n\tB01000101= 69,\n\tB01000110= 70,\n\tB01000111= 71,\n\tB01001000= 72,\n\tB01001001= 73,\n\tB01001010= 74,\n\tB01001011= 75,\n\tB01001100= 76,\n\tB01001101= 77,\n\tB01001110= 78,\n\tB01001111= 79,\n\tB01010000= 80,\n\tB01010001= 81,\n\tB01010010= 82,\n\tB01010011= 83,\n\tB01010100= 84,\n\tB01010101= 85,\n\tB01010110= 86,\n\tB01010111= 87,\n\tB01011000= 88,\n\tB01011001= 89,\n\tB01011010= 90,\n\tB01011011= 91,\n\tB01011100= 92,\n\tB01011101= 93,\n\tB01011110= 94,\n\tB01011111= 95,\n\tB01100000= 96,\n\tB01100001= 97,\n\tB01100010= 98,\n\tB01100011= 99,\n\tB01100100= 100,\n\tB01100101= 101,\n\tB01100110= 102,\n\tB01100111= 103,\n\tB01101000= 104,\n\tB01101001= 105,\n\tB01101010= 106,\n\tB01101011= 107,\n\tB01101100= 108,\n\tB01101101= 109,\n\tB01101110= 110,\n\tB01101111= 111,\n\tB01110000= 112,\n\tB01110001= 113,\n\tB01110010= 114,\n\tB01110011= 115,\n\tB01110100= 116,\n\tB01110101= 117,\n\tB01110110= 118,\n\tB01110111= 119,\n\tB01111000= 120,\n\tB01111001= 121,\n\tB01111010= 122,\n\tB01111011= 123,\n\tB01111100= 124,\n\tB01111101= 125,\n\tB01111110= 126,\n\tB01111111= 127,\n\tB10000000= 128,\n\tB10000001= 129,\n\tB10000010= 130,\n\tB10000011= 131,\n\tB10000100= 132,\n\tB10000101= 133,\n\tB10000110= 134,\n\tB10000111= 135,\n\tB10001000= 136,\n\tB10001001= 137,\n\tB10001010= 138,\n\tB10001011= 139,\n\tB10001100= 140,\n\tB10001101= 141,\n\tB10001110= 142,\n\tB10001111= 143,\n\tB10010000= 144,\n\tB10010001= 145,\n\tB10010010= 146,\n\tB10010011= 147,\n\tB10010100= 148,\n\tB10010101= 149,\n\tB10010110= 150,\n\tB10010111= 151,\n\tB10011000= 152,\n\tB10011001= 153,\n\tB10011010= 154,\n\tB10011011= 155,\n\tB10011100= 156,\n\tB10011101= 157,\n\tB10011110= 158,\n\tB10011111= 159,\n\tB10100000= 160,\n\tB10100001= 161,\n\tB10100010= 162,\n\tB10100011= 163,\n\tB10100100= 164,\n\tB10100101= 165,\n\tB10100110= 166,\n\tB10100111= 167,\n\tB10101000= 168,\n\tB10101001= 169,\n\tB10101010= 170,\n\tB10101011= 171,\n\tB10101100= 172,\n\tB10101101= 173,\n\tB10101110= 174,\n\tB10101111= 175,\n\tB10110000= 176,\n\tB10110001= 177,\n\tB10110010= 178,\n\tB10110011= 179,\n\tB10110100= 180,\n\tB10110101= 181,\n\tB10110110= 182,\n\tB10110111= 183,\n\tB10111000= 184,\n\tB10111001= 185,\n\tB10111010= 186,\n\tB10111011= 187,\n\tB10111100= 188,\n\tB10111101= 189,\n\tB10111110= 190,\n\tB10111111= 191,\n\tB11000000= 192,\n\tB11000001= 193,\n\tB11000010= 194,\n\tB11000011= 195,\n\tB11000100= 196,\n\tB11000101= 197,\n\tB11000110= 198,\n\tB11000111= 199,\n\tB11001000= 200,\n\tB11001001= 201,\n\tB11001010= 202,\n\tB11001011= 203,\n\tB11001100= 204,\n\tB11001101= 205,\n\tB11001110= 206,\n\tB11001111= 207,\n\tB11010000= 208,\n\tB11010001= 209,\n\tB11010010= 210,\n\tB11010011= 211,\n\tB11010100= 212,\n\tB11010101= 213,\n\tB11010110= 214,\n\tB11010111= 215,\n\tB11011000= 216,\n\tB11011001= 217,\n\tB11011010= 218,\n\tB11011011= 219,\n\tB11011100= 220,\n\tB11011101= 221,\n\tB11011110= 222,\n\tB11011111= 223,\n\tB11100000= 224,\n\tB11100001= 225,\n\tB11100010= 226,\n\tB11100011= 227,\n\tB11100100= 228,\n\tB11100101= 229,\n\tB11100110= 230,\n\tB11100111= 231,\n\tB11101000= 232,\n\tB11101001= 233,\n\tB11101010= 234,\n\tB11101011= 235,\n\tB11101100= 236,\n\tB11101101= 237,\n\tB11101110= 238,\n\tB11101111= 239,\n\tB11110000= 240,\n\tB11110001= 241,\n\tB11110010= 242,\n\tB11110011= 243,\n\tB11110100= 244,\n\tB11110101= 245,\n\tB11110110= 246,\n\tB11110111= 247,\n\tB11111000= 248,\n\tB11111001= 249,\n\tB11111010= 250,\n\tB11111011= 251,\n\tB11111100= 252,\n\tB11111101= 253,\n\tB11111110= 254,\n\tB11111111= 255\n};\n"
  },
  {
    "path": "xbyak/xbyak/xbyak_mnemonic.h",
    "content": "const char *getVersionString() const { return \"6.73\"; }\nvoid aadd(const Address& addr, const Reg32e &reg) { opModM(addr, reg, 0x0F, 0x38, 0x0FC); }\nvoid aand(const Address& addr, const Reg32e &reg) { db(0x66); opModM(addr, reg, 0x0F, 0x38, 0x0FC); }\nvoid adc(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x10, 2); }\nvoid adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x10); }\nvoid adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); }\nvoid add(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x00, 0); }\nvoid add(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x00); }\nvoid addpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0x66, isXMM_XMMorMEM); }\nvoid addps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0x100, isXMM_XMMorMEM); }\nvoid addsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0xF2, isXMM_XMMorMEM); }\nvoid addss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0xF3, isXMM_XMMorMEM); }\nvoid addsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xD0, 0x66, isXMM_XMMorMEM); }\nvoid addsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xD0, 0xF2, isXMM_XMMorMEM); }\nvoid adox(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0xF3, isREG32_REG32orMEM, NONE, 0x38); }\nvoid aesdec(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDE, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid aesdeclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDF, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid aesenc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDC, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid aesenclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDD, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid aesimc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDB, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid aeskeygenassist(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0xDF, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid and_(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x20, 4); }\nvoid and_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x20); }\nvoid andn(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_0F38, 0xf2, true); }\nvoid andnpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x66, isXMM_XMMorMEM); }\nvoid andnps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x100, isXMM_XMMorMEM); }\nvoid andpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x66, isXMM_XMMorMEM); }\nvoid andps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x100, isXMM_XMMorMEM); }\nvoid aor(const Address& addr, const Reg32e &reg) { db(0xF2); opModM(addr, reg, 0x0F, 0x38, 0x0FC); }\nvoid axor(const Address& addr, const Reg32e &reg) { db(0xF3); opModM(addr, reg, 0x0F, 0x38, 0x0FC); }\nvoid bextr(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_0F38, 0xf7, false); }\nvoid blendpd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0D, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid blendps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0C, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid blendvpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid blendvps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid blsi(const Reg32e& r, const Operand& op) { opGpr(Reg32e(3, r.getBit()), op, r, T_0F38, 0xf3, false); }\nvoid blsmsk(const Reg32e& r, const Operand& op) { opGpr(Reg32e(2, r.getBit()), op, r, T_0F38, 0xf3, false); }\nvoid blsr(const Reg32e& r, const Operand& op) { opGpr(Reg32e(1, r.getBit()), op, r, T_0F38, 0xf3, false); }\nvoid bnd() { db(0xF2); }\nvoid bndcl(const BoundsReg& bnd, const Operand& op) { db(0xF3); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1A, NONE, !op.isMEM()); }\nvoid bndcn(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1B, NONE, !op.isMEM()); }\nvoid bndcu(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1A, NONE, !op.isMEM()); }\nvoid bndldx(const BoundsReg& bnd, const Address& addr) { opMIB(addr, bnd, 0x0F, 0x1A); }\nvoid bndmk(const BoundsReg& bnd, const Address& addr) { db(0xF3); opModM(addr, bnd, 0x0F, 0x1B); }\nvoid bndmov(const Address& addr, const BoundsReg& bnd) { db(0x66); opModM(addr, bnd, 0x0F, 0x1B); }\nvoid bndmov(const BoundsReg& bnd, const Operand& op) { db(0x66); opModRM(bnd, op, op.isBNDREG(), op.isMEM(), 0x0F, 0x1A); }\nvoid bndstx(const Address& addr, const BoundsReg& bnd) { opMIB(addr, bnd, 0x0F, 0x1B); }\nvoid bsf(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBC); }\nvoid bsr(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBD); }\nvoid bswap(const Reg32e& reg) { opModR(Reg32(1), reg, 0x0F); }\nvoid bt(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xA3); }\nvoid bt(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 4, 0x0f, 0xba, NONE, false, 1); db(imm); }\nvoid btc(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xBB); }\nvoid btc(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 7, 0x0f, 0xba, NONE, false, 1); db(imm); }\nvoid btr(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xB3); }\nvoid btr(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 6, 0x0f, 0xba, NONE, false, 1); db(imm); }\nvoid bts(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xAB); }\nvoid bts(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 5, 0x0f, 0xba, NONE, false, 1); db(imm); }\nvoid bzhi(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_0F38, 0xf5, false); }\nvoid cbw() { db(0x66); db(0x98); }\nvoid cdq() { db(0x99); }\nvoid clc() { db(0xF8); }\nvoid cld() { db(0xFC); }\nvoid cldemote(const Address& addr) { opMIB(addr, eax, 0x0F, 0x1C); }\nvoid clflush(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0xAE); }\nvoid clflushopt(const Address& addr) { db(0x66); opModM(addr, Reg32(7), 0x0F, 0xAE); }\nvoid cli() { db(0xFA); }\nvoid clwb(const Address& addr) { db(0x66); opMIB(addr, esi, 0x0F, 0xAE); }\nvoid clzero() { db(0x0F); db(0x01); db(0xFC); }\nvoid cmc() { db(0xF5); }\nvoid cmova(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }//-V524\nvoid cmovae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }//-V524\nvoid cmovb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }//-V524\nvoid cmovbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 6); }//-V524\nvoid cmovc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }//-V524\nvoid cmove(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 4); }//-V524\nvoid cmovg(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 15); }//-V524\nvoid cmovge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 13); }//-V524\nvoid cmovl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 12); }//-V524\nvoid cmovle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 14); }//-V524\nvoid cmovna(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 6); }//-V524\nvoid cmovnae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }//-V524\nvoid cmovnb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }//-V524\nvoid cmovnbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }//-V524\nvoid cmovnc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }//-V524\nvoid cmovne(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 5); }//-V524\nvoid cmovng(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 14); }//-V524\nvoid cmovnge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 12); }//-V524\nvoid cmovnl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 13); }//-V524\nvoid cmovnle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 15); }//-V524\nvoid cmovno(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 1); }//-V524\nvoid cmovnp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 11); }//-V524\nvoid cmovns(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 9); }//-V524\nvoid cmovnz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 5); }//-V524\nvoid cmovo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 0); }//-V524\nvoid cmovp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 10); }//-V524\nvoid cmovpe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 10); }//-V524\nvoid cmovpo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 11); }//-V524\nvoid cmovs(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 8); }//-V524\nvoid cmovz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 4); }//-V524\nvoid cmp(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x38, 7); }\nvoid cmp(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x38); }\nvoid cmpeqpd(const Xmm& x, const Operand& op) { cmppd(x, op, 0); }\nvoid cmpeqps(const Xmm& x, const Operand& op) { cmpps(x, op, 0); }\nvoid cmpeqsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 0); }\nvoid cmpeqss(const Xmm& x, const Operand& op) { cmpss(x, op, 0); }\nvoid cmplepd(const Xmm& x, const Operand& op) { cmppd(x, op, 2); }\nvoid cmpleps(const Xmm& x, const Operand& op) { cmpps(x, op, 2); }\nvoid cmplesd(const Xmm& x, const Operand& op) { cmpsd(x, op, 2); }\nvoid cmpless(const Xmm& x, const Operand& op) { cmpss(x, op, 2); }\nvoid cmpltpd(const Xmm& x, const Operand& op) { cmppd(x, op, 1); }\nvoid cmpltps(const Xmm& x, const Operand& op) { cmpps(x, op, 1); }\nvoid cmpltsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 1); }\nvoid cmpltss(const Xmm& x, const Operand& op) { cmpss(x, op, 1); }\nvoid cmpneqpd(const Xmm& x, const Operand& op) { cmppd(x, op, 4); }\nvoid cmpneqps(const Xmm& x, const Operand& op) { cmpps(x, op, 4); }\nvoid cmpneqsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 4); }\nvoid cmpneqss(const Xmm& x, const Operand& op) { cmpss(x, op, 4); }\nvoid cmpnlepd(const Xmm& x, const Operand& op) { cmppd(x, op, 6); }\nvoid cmpnleps(const Xmm& x, const Operand& op) { cmpps(x, op, 6); }\nvoid cmpnlesd(const Xmm& x, const Operand& op) { cmpsd(x, op, 6); }\nvoid cmpnless(const Xmm& x, const Operand& op) { cmpss(x, op, 6); }\nvoid cmpnltpd(const Xmm& x, const Operand& op) { cmppd(x, op, 5); }\nvoid cmpnltps(const Xmm& x, const Operand& op) { cmpps(x, op, 5); }\nvoid cmpnltsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 5); }\nvoid cmpnltss(const Xmm& x, const Operand& op) { cmpss(x, op, 5); }\nvoid cmpordpd(const Xmm& x, const Operand& op) { cmppd(x, op, 7); }\nvoid cmpordps(const Xmm& x, const Operand& op) { cmpps(x, op, 7); }\nvoid cmpordsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 7); }\nvoid cmpordss(const Xmm& x, const Operand& op) { cmpss(x, op, 7); }\nvoid cmppd(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm, op, 0xC2, 0x66, isXMM_XMMorMEM, imm8); }\nvoid cmpps(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm, op, 0xC2, 0x100, isXMM_XMMorMEM, imm8); }\nvoid cmpsb() { db(0xA6); }\nvoid cmpsd() { db(0xA7); }\nvoid cmpsd(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm, op, 0xC2, 0xF2, isXMM_XMMorMEM, imm8); }\nvoid cmpss(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm, op, 0xC2, 0xF3, isXMM_XMMorMEM, imm8); }\nvoid cmpsw() { db(0x66); db(0xA7); }\nvoid cmpunordpd(const Xmm& x, const Operand& op) { cmppd(x, op, 3); }\nvoid cmpunordps(const Xmm& x, const Operand& op) { cmpps(x, op, 3); }\nvoid cmpunordsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 3); }\nvoid cmpunordss(const Xmm& x, const Operand& op) { cmpss(x, op, 3); }\nvoid cmpxchg(const Operand& op, const Reg& reg) { opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xB0 | (reg.isBit(8) ? 0 : 1)); }\nvoid cmpxchg8b(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0xC7); }\nvoid comisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2F, 0x66, isXMM_XMMorMEM); }\nvoid comiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2F, 0x100, isXMM_XMMorMEM); }\nvoid cpuid() { db(0x0F); db(0xA2); }\nvoid crc32(const Reg32e& reg, const Operand& op) { if (reg.isBit(32) && op.isBit(16)) db(0x66); db(0xF2); opModRM(reg, op, op.isREG(), op.isMEM(), 0x0F, 0x38, 0xF0 | (op.isBit(8) ? 0 : 1)); }\nvoid cvtdq2pd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, 0xF3, isXMM_XMMorMEM); }\nvoid cvtdq2ps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, 0x100, isXMM_XMMorMEM); }\nvoid cvtpd2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, 0xF2, isXMM_XMMorMEM); }\nvoid cvtpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0x66, isMMX_XMMorMEM); }\nvoid cvtpd2ps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0x66, isXMM_XMMorMEM); }\nvoid cvtpi2pd(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0x66, isXMM_MMXorMEM); }\nvoid cvtpi2ps(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0x100, isXMM_MMXorMEM); }\nvoid cvtps2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, 0x66, isXMM_XMMorMEM); }\nvoid cvtps2pd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0x100, isXMM_XMMorMEM); }\nvoid cvtps2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0x100, isMMX_XMMorMEM); }\nvoid cvtsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0xF2, isREG32_XMMorMEM); }\nvoid cvtsd2ss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0xF2, isXMM_XMMorMEM); }\nvoid cvtsi2sd(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0xF2, isXMM_REG32orMEM); }\nvoid cvtsi2ss(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0xF3, isXMM_REG32orMEM); }\nvoid cvtss2sd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0xF3, isXMM_XMMorMEM); }\nvoid cvtss2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0xF3, isREG32_XMMorMEM); }\nvoid cvttpd2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, 0x66, isXMM_XMMorMEM); }\nvoid cvttpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0x66, isMMX_XMMorMEM); }\nvoid cvttps2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, 0xF3, isXMM_XMMorMEM); }\nvoid cvttps2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0x100, isMMX_XMMorMEM); }\nvoid cvttsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0xF2, isREG32_XMMorMEM); }\nvoid cvttss2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0xF3, isREG32_XMMorMEM); }\nvoid cwd() { db(0x66); db(0x99); }\nvoid cwde() { db(0x98); }\nvoid dec(const Operand& op) { opIncDec(op, 0x48, 1); }\nvoid div(const Operand& op) { opR_ModM(op, 0, 6, 0xF6); }\nvoid divpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0x66, isXMM_XMMorMEM); }\nvoid divps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0x100, isXMM_XMMorMEM); }\nvoid divsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0xF2, isXMM_XMMorMEM); }\nvoid divss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0xF3, isXMM_XMMorMEM); }\nvoid dppd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid dpps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x40, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid emms() { db(0x0F); db(0x77); }\nvoid endbr32() { db(0xF3); db(0x0F); db(0x1E); db(0xFB); }\nvoid endbr64() { db(0xF3); db(0x0F); db(0x1E); db(0xFA); }\nvoid enter(uint16_t x, uint8_t y) { db(0xC8); dw(x); db(y); }\nvoid extractps(const Operand& op, const Xmm& xmm, uint8_t imm) { opExt(op, xmm, 0x17, imm); }\nvoid f2xm1() { db(0xD9); db(0xF0); }\nvoid fabs() { db(0xD9); db(0xE1); }\nvoid fadd(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 0, 0); }\nvoid fadd(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8C0, 0xDCC0); }\nvoid fadd(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8C0, 0xDCC0); }\nvoid faddp() { db(0xDE); db(0xC1); }\nvoid faddp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEC0); }\nvoid faddp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEC0); }\nvoid fbld(const Address& addr) { opModM(addr, Reg32(4), 0xDF, 0x100); }\nvoid fbstp(const Address& addr) { opModM(addr, Reg32(6), 0xDF, 0x100); }\nvoid fchs() { db(0xD9); db(0xE0); }\nvoid fclex() { db(0x9B); db(0xDB); db(0xE2); }\nvoid fcmovb(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAC0, 0x00C0); }\nvoid fcmovb(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAC0, 0x00C0); }\nvoid fcmovbe(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAD0, 0x00D0); }\nvoid fcmovbe(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAD0, 0x00D0); }\nvoid fcmove(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAC8, 0x00C8); }\nvoid fcmove(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAC8, 0x00C8); }\nvoid fcmovnb(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBC0, 0x00C0); }\nvoid fcmovnb(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBC0, 0x00C0); }\nvoid fcmovnbe(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBD0, 0x00D0); }\nvoid fcmovnbe(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBD0, 0x00D0); }\nvoid fcmovne(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBC8, 0x00C8); }\nvoid fcmovne(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBC8, 0x00C8); }\nvoid fcmovnu(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBD8, 0x00D8); }\nvoid fcmovnu(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBD8, 0x00D8); }\nvoid fcmovu(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAD8, 0x00D8); }\nvoid fcmovu(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAD8, 0x00D8); }\nvoid fcom() { db(0xD8); db(0xD1); }\nvoid fcom(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 2, 0); }\nvoid fcom(const Fpu& reg) { opFpu(reg, 0xD8, 0xD0); }\nvoid fcomi(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBF0, 0x00F0); }\nvoid fcomi(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBF0, 0x00F0); }\nvoid fcomip(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDFF0, 0x00F0); }\nvoid fcomip(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDFF0, 0x00F0); }\nvoid fcomp() { db(0xD8); db(0xD9); }\nvoid fcomp(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 3, 0); }\nvoid fcomp(const Fpu& reg) { opFpu(reg, 0xD8, 0xD8); }\nvoid fcompp() { db(0xDE); db(0xD9); }\nvoid fcos() { db(0xD9); db(0xFF); }\nvoid fdecstp() { db(0xD9); db(0xF6); }\nvoid fdiv(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 6, 0); }\nvoid fdiv(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8F0, 0xDCF8); }\nvoid fdiv(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8F0, 0xDCF8); }\nvoid fdivp() { db(0xDE); db(0xF9); }\nvoid fdivp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEF8); }\nvoid fdivp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEF8); }\nvoid fdivr(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 7, 0); }\nvoid fdivr(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8F8, 0xDCF0); }\nvoid fdivr(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8F8, 0xDCF0); }\nvoid fdivrp() { db(0xDE); db(0xF1); }\nvoid fdivrp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEF0); }\nvoid fdivrp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEF0); }\nvoid ffree(const Fpu& reg) { opFpu(reg, 0xDD, 0xC0); }\nvoid fiadd(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 0, 0); }\nvoid ficom(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 2, 0); }\nvoid ficomp(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 3, 0); }\nvoid fidiv(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 6, 0); }\nvoid fidivr(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 7, 0); }\nvoid fild(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDF, 0, 5); }\nvoid fimul(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 1, 0); }\nvoid fincstp() { db(0xD9); db(0xF7); }\nvoid finit() { db(0x9B); db(0xDB); db(0xE3); }\nvoid fist(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0x00, 2, 0); }\nvoid fistp(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDF, 3, 7); }\nvoid fisttp(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDD, 1, 0); }\nvoid fisub(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 4, 0); }\nvoid fisubr(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 5, 0); }\nvoid fld(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 0, 0); }\nvoid fld(const Fpu& reg) { opFpu(reg, 0xD9, 0xC0); }\nvoid fld1() { db(0xD9); db(0xE8); }\nvoid fldcw(const Address& addr) { opModM(addr, Reg32(5), 0xD9, 0x100); }\nvoid fldenv(const Address& addr) { opModM(addr, Reg32(4), 0xD9, 0x100); }\nvoid fldl2e() { db(0xD9); db(0xEA); }\nvoid fldl2t() { db(0xD9); db(0xE9); }\nvoid fldlg2() { db(0xD9); db(0xEC); }\nvoid fldln2() { db(0xD9); db(0xED); }\nvoid fldpi() { db(0xD9); db(0xEB); }\nvoid fldz() { db(0xD9); db(0xEE); }\nvoid fmul(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 1, 0); }\nvoid fmul(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8C8, 0xDCC8); }\nvoid fmul(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8C8, 0xDCC8); }\nvoid fmulp() { db(0xDE); db(0xC9); }\nvoid fmulp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEC8); }\nvoid fmulp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEC8); }\nvoid fnclex() { db(0xDB); db(0xE2); }\nvoid fninit() { db(0xDB); db(0xE3); }\nvoid fnop() { db(0xD9); db(0xD0); }\nvoid fnsave(const Address& addr) { opModM(addr, Reg32(6), 0xDD, 0x100); }\nvoid fnstcw(const Address& addr) { opModM(addr, Reg32(7), 0xD9, 0x100); }\nvoid fnstenv(const Address& addr) { opModM(addr, Reg32(6), 0xD9, 0x100); }\nvoid fnstsw(const Address& addr) { opModM(addr, Reg32(7), 0xDD, 0x100); }\nvoid fnstsw(const Reg16& r) { if (r.getIdx() != Operand::AX) XBYAK_THROW(ERR_BAD_PARAMETER) db(0xDF); db(0xE0); }\nvoid fpatan() { db(0xD9); db(0xF3); }\nvoid fprem() { db(0xD9); db(0xF8); }\nvoid fprem1() { db(0xD9); db(0xF5); }\nvoid fptan() { db(0xD9); db(0xF2); }\nvoid frndint() { db(0xD9); db(0xFC); }\nvoid frstor(const Address& addr) { opModM(addr, Reg32(4), 0xDD, 0x100); }\nvoid fsave(const Address& addr) { db(0x9B); opModM(addr, Reg32(6), 0xDD, 0x100); }\nvoid fscale() { db(0xD9); db(0xFD); }\nvoid fsin() { db(0xD9); db(0xFE); }\nvoid fsincos() { db(0xD9); db(0xFB); }\nvoid fsqrt() { db(0xD9); db(0xFA); }\nvoid fst(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 2, 0); }\nvoid fst(const Fpu& reg) { opFpu(reg, 0xDD, 0xD0); }\nvoid fstcw(const Address& addr) { db(0x9B); opModM(addr, Reg32(7), 0xD9, 0x100); }\nvoid fstenv(const Address& addr) { db(0x9B); opModM(addr, Reg32(6), 0xD9, 0x100); }\nvoid fstp(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 3, 0); }\nvoid fstp(const Fpu& reg) { opFpu(reg, 0xDD, 0xD8); }\nvoid fstsw(const Address& addr) { db(0x9B); opModM(addr, Reg32(7), 0xDD, 0x100); }\nvoid fstsw(const Reg16& r) { if (r.getIdx() != Operand::AX) XBYAK_THROW(ERR_BAD_PARAMETER) db(0x9B); db(0xDF); db(0xE0); }\nvoid fsub(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 4, 0); }\nvoid fsub(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8E0, 0xDCE8); }\nvoid fsub(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8E0, 0xDCE8); }\nvoid fsubp() { db(0xDE); db(0xE9); }\nvoid fsubp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEE8); }\nvoid fsubp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEE8); }\nvoid fsubr(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 5, 0); }\nvoid fsubr(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8E8, 0xDCE0); }\nvoid fsubr(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8E8, 0xDCE0); }\nvoid fsubrp() { db(0xDE); db(0xE1); }\nvoid fsubrp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEE0); }\nvoid fsubrp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEE0); }\nvoid ftst() { db(0xD9); db(0xE4); }\nvoid fucom() { db(0xDD); db(0xE1); }\nvoid fucom(const Fpu& reg) { opFpu(reg, 0xDD, 0xE0); }\nvoid fucomi(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBE8, 0x00E8); }\nvoid fucomi(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBE8, 0x00E8); }\nvoid fucomip(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDFE8, 0x00E8); }\nvoid fucomip(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDFE8, 0x00E8); }\nvoid fucomp() { db(0xDD); db(0xE9); }\nvoid fucomp(const Fpu& reg) { opFpu(reg, 0xDD, 0xE8); }\nvoid fucompp() { db(0xDA); db(0xE9); }\nvoid fwait() { db(0x9B); }\nvoid fxam() { db(0xD9); db(0xE5); }\nvoid fxch() { db(0xD9); db(0xC9); }\nvoid fxch(const Fpu& reg) { opFpu(reg, 0xD9, 0xC8); }\nvoid fxrstor(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0xAE); }\nvoid fxtract() { db(0xD9); db(0xF4); }\nvoid fyl2x() { db(0xD9); db(0xF1); }\nvoid fyl2xp1() { db(0xD9); db(0xF9); }\nvoid gf2p8affineinvqb(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0xCF, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid gf2p8affineqb(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0xCE, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid gf2p8mulb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCF, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid haddpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0x66, isXMM_XMMorMEM); }\nvoid haddps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0xF2, isXMM_XMMorMEM); }\nvoid hlt() { db(0xF4); }\nvoid hsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0x66, isXMM_XMMorMEM); }\nvoid hsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0xF2, isXMM_XMMorMEM); }\nvoid idiv(const Operand& op) { opR_ModM(op, 0, 7, 0xF6); }\nvoid imul(const Operand& op) { opR_ModM(op, 0, 5, 0xF6); }\nvoid in_(const Reg& a, const Reg& d) { opInOut(a, d, 0xEC); }\nvoid in_(const Reg& a, uint8_t v) { opInOut(a, 0xE4, v); }\nvoid inc(const Operand& op) { opIncDec(op, 0x40, 0); }\nvoid insertps(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid int3() { db(0xCC); }\nvoid int_(uint8_t x) { db(0xCD); db(x); }\nvoid ja(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524\nvoid ja(const char *label, LabelType type = T_AUTO) { ja(std::string(label), type); }//-V524\nvoid ja(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }//-V524\nvoid ja(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524\nvoid jae(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524\nvoid jae(const char *label, LabelType type = T_AUTO) { jae(std::string(label), type); }//-V524\nvoid jae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }//-V524\nvoid jae(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524\nvoid jb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524\nvoid jb(const char *label, LabelType type = T_AUTO) { jb(std::string(label), type); }//-V524\nvoid jb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }//-V524\nvoid jb(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524\nvoid jbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524\nvoid jbe(const char *label, LabelType type = T_AUTO) { jbe(std::string(label), type); }//-V524\nvoid jbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }//-V524\nvoid jbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524\nvoid jc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524\nvoid jc(const char *label, LabelType type = T_AUTO) { jc(std::string(label), type); }//-V524\nvoid jc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }//-V524\nvoid jc(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524\nvoid je(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524\nvoid je(const char *label, LabelType type = T_AUTO) { je(std::string(label), type); }//-V524\nvoid je(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }//-V524\nvoid je(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524\nvoid jg(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524\nvoid jg(const char *label, LabelType type = T_AUTO) { jg(std::string(label), type); }//-V524\nvoid jg(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }//-V524\nvoid jg(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524\nvoid jge(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524\nvoid jge(const char *label, LabelType type = T_AUTO) { jge(std::string(label), type); }//-V524\nvoid jge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }//-V524\nvoid jge(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524\nvoid jl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524\nvoid jl(const char *label, LabelType type = T_AUTO) { jl(std::string(label), type); }//-V524\nvoid jl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }//-V524\nvoid jl(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524\nvoid jle(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524\nvoid jle(const char *label, LabelType type = T_AUTO) { jle(std::string(label), type); }//-V524\nvoid jle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }//-V524\nvoid jle(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524\nvoid jna(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524\nvoid jna(const char *label, LabelType type = T_AUTO) { jna(std::string(label), type); }//-V524\nvoid jna(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }//-V524\nvoid jna(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524\nvoid jnae(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524\nvoid jnae(const char *label, LabelType type = T_AUTO) { jnae(std::string(label), type); }//-V524\nvoid jnae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }//-V524\nvoid jnae(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524\nvoid jnb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524\nvoid jnb(const char *label, LabelType type = T_AUTO) { jnb(std::string(label), type); }//-V524\nvoid jnb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }//-V524\nvoid jnb(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524\nvoid jnbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524\nvoid jnbe(const char *label, LabelType type = T_AUTO) { jnbe(std::string(label), type); }//-V524\nvoid jnbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }//-V524\nvoid jnbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524\nvoid jnc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524\nvoid jnc(const char *label, LabelType type = T_AUTO) { jnc(std::string(label), type); }//-V524\nvoid jnc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }//-V524\nvoid jnc(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524\nvoid jne(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524\nvoid jne(const char *label, LabelType type = T_AUTO) { jne(std::string(label), type); }//-V524\nvoid jne(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }//-V524\nvoid jne(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524\nvoid jng(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524\nvoid jng(const char *label, LabelType type = T_AUTO) { jng(std::string(label), type); }//-V524\nvoid jng(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }//-V524\nvoid jng(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524\nvoid jnge(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524\nvoid jnge(const char *label, LabelType type = T_AUTO) { jnge(std::string(label), type); }//-V524\nvoid jnge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }//-V524\nvoid jnge(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524\nvoid jnl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524\nvoid jnl(const char *label, LabelType type = T_AUTO) { jnl(std::string(label), type); }//-V524\nvoid jnl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }//-V524\nvoid jnl(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524\nvoid jnle(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524\nvoid jnle(const char *label, LabelType type = T_AUTO) { jnle(std::string(label), type); }//-V524\nvoid jnle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }//-V524\nvoid jnle(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524\nvoid jno(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }//-V524\nvoid jno(const char *label, LabelType type = T_AUTO) { jno(std::string(label), type); }//-V524\nvoid jno(const void *addr) { opJmpAbs(addr, T_NEAR, 0x71, 0x81, 0x0F); }//-V524\nvoid jno(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }//-V524\nvoid jnp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524\nvoid jnp(const char *label, LabelType type = T_AUTO) { jnp(std::string(label), type); }//-V524\nvoid jnp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }//-V524\nvoid jnp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524\nvoid jns(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }//-V524\nvoid jns(const char *label, LabelType type = T_AUTO) { jns(std::string(label), type); }//-V524\nvoid jns(const void *addr) { opJmpAbs(addr, T_NEAR, 0x79, 0x89, 0x0F); }//-V524\nvoid jns(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }//-V524\nvoid jnz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524\nvoid jnz(const char *label, LabelType type = T_AUTO) { jnz(std::string(label), type); }//-V524\nvoid jnz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }//-V524\nvoid jnz(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524\nvoid jo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }//-V524\nvoid jo(const char *label, LabelType type = T_AUTO) { jo(std::string(label), type); }//-V524\nvoid jo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x70, 0x80, 0x0F); }//-V524\nvoid jo(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }//-V524\nvoid jp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524\nvoid jp(const char *label, LabelType type = T_AUTO) { jp(std::string(label), type); }//-V524\nvoid jp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }//-V524\nvoid jp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524\nvoid jpe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524\nvoid jpe(const char *label, LabelType type = T_AUTO) { jpe(std::string(label), type); }//-V524\nvoid jpe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }//-V524\nvoid jpe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524\nvoid jpo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524\nvoid jpo(const char *label, LabelType type = T_AUTO) { jpo(std::string(label), type); }//-V524\nvoid jpo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }//-V524\nvoid jpo(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524\nvoid js(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }//-V524\nvoid js(const char *label, LabelType type = T_AUTO) { js(std::string(label), type); }//-V524\nvoid js(const void *addr) { opJmpAbs(addr, T_NEAR, 0x78, 0x88, 0x0F); }//-V524\nvoid js(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }//-V524\nvoid jz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524\nvoid jz(const char *label, LabelType type = T_AUTO) { jz(std::string(label), type); }//-V524\nvoid jz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }//-V524\nvoid jz(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524\nvoid lahf() { db(0x9F); }\nvoid lddqu(const Xmm& xmm, const Address& addr) { db(0xF2); opModM(addr, xmm, 0x0F, 0xF0); }\nvoid ldmxcsr(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0xAE); }\nvoid lea(const Reg& reg, const Address& addr) { if (!reg.isBit(16 | i32e)) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER) opModM(addr, reg, 0x8D); }\nvoid leave() { db(0xC9); }\nvoid lfence() { db(0x0F); db(0xAE); db(0xE8); }\nvoid lfs(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0x0F, 0xB4); }\nvoid lgs(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0x0F, 0xB5); }\nvoid lock() { db(0xF0); }\nvoid lodsb() { db(0xAC); }\nvoid lodsd() { db(0xAD); }\nvoid lodsw() { db(0x66); db(0xAD); }\nvoid loop(const Label& label) { opJmp(label, T_SHORT, 0xE2, 0, 0); }\nvoid loop(const char *label) { loop(std::string(label)); }\nvoid loop(std::string label) { opJmp(label, T_SHORT, 0xE2, 0, 0); }\nvoid loope(const Label& label) { opJmp(label, T_SHORT, 0xE1, 0, 0); }\nvoid loope(const char *label) { loope(std::string(label)); }\nvoid loope(std::string label) { opJmp(label, T_SHORT, 0xE1, 0, 0); }\nvoid loopne(const Label& label) { opJmp(label, T_SHORT, 0xE0, 0, 0); }\nvoid loopne(const char *label) { loopne(std::string(label)); }\nvoid loopne(std::string label) { opJmp(label, T_SHORT, 0xE0, 0, 0); }\nvoid lss(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0x0F, 0xB2); }\nvoid lzcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xBD); }\nvoid maskmovdqu(const Xmm& reg1, const Xmm& reg2) { db(0x66);  opModR(reg1, reg2, 0x0F, 0xF7); }\nvoid maskmovq(const Mmx& reg1, const Mmx& reg2) { if (!reg1.isMMX() || !reg2.isMMX()) XBYAK_THROW(ERR_BAD_COMBINATION) opModR(reg1, reg2, 0x0F, 0xF7); }\nvoid maxpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0x66, isXMM_XMMorMEM); }\nvoid maxps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0x100, isXMM_XMMorMEM); }\nvoid maxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0xF2, isXMM_XMMorMEM); }\nvoid maxss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0xF3, isXMM_XMMorMEM); }\nvoid mfence() { db(0x0F); db(0xAE); db(0xF0); }\nvoid minpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0x66, isXMM_XMMorMEM); }\nvoid minps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0x100, isXMM_XMMorMEM); }\nvoid minsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0xF2, isXMM_XMMorMEM); }\nvoid minss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0xF3, isXMM_XMMorMEM); }\nvoid monitor() { db(0x0F); db(0x01); db(0xC8); }\nvoid monitorx() { db(0x0F); db(0x01); db(0xFA); }\nvoid movapd(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x29); }\nvoid movapd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x28, 0x66); }\nvoid movaps(const Address& addr, const Xmm& xmm) { opModM(addr, xmm, 0x0F, 0x29); }\nvoid movaps(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x28, 0x100); }\nvoid movbe(const Address& addr, const Reg& reg) { opModM(addr, reg, 0x0F, 0x38, 0xF1); }\nvoid movbe(const Reg& reg, const Address& addr) { opModM(addr, reg, 0x0F, 0x38, 0xF0); }\nvoid movd(const Address& addr, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModM(addr, mmx, 0x0F, 0x7E); }\nvoid movd(const Mmx& mmx, const Address& addr) { if (mmx.isXMM()) db(0x66); opModM(addr, mmx, 0x0F, 0x6E); }\nvoid movd(const Mmx& mmx, const Reg32& reg) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x6E); }\nvoid movd(const Reg32& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x7E); }\nvoid movddup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, 0xF2, isXMM_XMMorMEM, NONE, NONE); }\nvoid movdir64b(const Reg& reg, const Address& addr) { db(0x66); opModM(addr, reg.cvt32(), 0x0F, 0x38, 0xF8); }\nvoid movdiri(const Address& addr, const Reg32e& reg) { opModM(addr, reg, 0x0F, 0x38, 0xF9); }\nvoid movdq2q(const Mmx& mmx, const Xmm& xmm) { db(0xF2); opModR(mmx, xmm, 0x0F, 0xD6); }\nvoid movdqa(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x7F); }\nvoid movdqa(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0x66); }\nvoid movdqu(const Address& addr, const Xmm& xmm) { db(0xF3); opModM(addr, xmm, 0x0F, 0x7F); }\nvoid movdqu(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0xF3); }\nvoid movhlps(const Xmm& reg1, const Xmm& reg2) {  opModR(reg1, reg2, 0x0F, 0x12); }\nvoid movhpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0x66); }\nvoid movhps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0x100); }\nvoid movlhps(const Xmm& reg1, const Xmm& reg2) {  opModR(reg1, reg2, 0x0F, 0x16); }\nvoid movlpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x66); }\nvoid movlps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x100); }\nvoid movmskpd(const Reg32e& reg, const Xmm& xmm) { db(0x66); movmskps(reg, xmm); }\nvoid movmskps(const Reg32e& reg, const Xmm& xmm) { opModR(reg, xmm, 0x0F, 0x50); }\nvoid movntdq(const Address& addr, const Xmm& reg) { opModM(addr, Reg16(reg.getIdx()), 0x0F, 0xE7); }\nvoid movntdqa(const Xmm& xmm, const Address& addr) { db(0x66); opModM(addr, xmm, 0x0F, 0x38, 0x2A); }\nvoid movnti(const Address& addr, const Reg32e& reg) { opModM(addr, reg, 0x0F, 0xC3); }\nvoid movntpd(const Address& addr, const Xmm& reg) { opModM(addr, Reg16(reg.getIdx()), 0x0F, 0x2B); }\nvoid movntps(const Address& addr, const Xmm& xmm) { opModM(addr, Mmx(xmm.getIdx()), 0x0F, 0x2B); }\nvoid movntq(const Address& addr, const Mmx& mmx) { if (!mmx.isMMX()) XBYAK_THROW(ERR_BAD_COMBINATION) opModM(addr, mmx, 0x0F, 0xE7); }\nvoid movq(const Address& addr, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModM(addr, mmx, 0x0F, mmx.isXMM() ? 0xD6 : 0x7F); }\nvoid movq(const Mmx& mmx, const Operand& op) { if (mmx.isXMM()) db(0xF3); opModRM(mmx, op, (mmx.getKind() == op.getKind()), op.isMEM(), 0x0F, mmx.isXMM() ? 0x7E : 0x6F); }\nvoid movq2dq(const Xmm& xmm, const Mmx& mmx) { db(0xF3); opModR(xmm, mmx, 0x0F, 0xD6); }\nvoid movsb() { db(0xA4); }\nvoid movsd() { db(0xA5); }\nvoid movsd(const Address& addr, const Xmm& xmm) { db(0xF2); opModM(addr, xmm, 0x0F, 0x11); }\nvoid movsd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0xF2); }\nvoid movshdup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x16, 0xF3, isXMM_XMMorMEM, NONE, NONE); }\nvoid movsldup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, 0xF3, isXMM_XMMorMEM, NONE, NONE); }\nvoid movss(const Address& addr, const Xmm& xmm) { db(0xF3); opModM(addr, xmm, 0x0F, 0x11); }\nvoid movss(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0xF3); }\nvoid movsw() { db(0x66); db(0xA5); }\nvoid movsx(const Reg& reg, const Operand& op) { opMovxx(reg, op, 0xBE); }\nvoid movupd(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x11); }\nvoid movupd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0x66); }\nvoid movups(const Address& addr, const Xmm& xmm) { opModM(addr, xmm, 0x0F, 0x11); }\nvoid movups(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0x100); }\nvoid movzx(const Reg& reg, const Operand& op) { opMovxx(reg, op, 0xB6); }\nvoid mpsadbw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x42, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid mul(const Operand& op) { opR_ModM(op, 0, 4, 0xF6); }\nvoid mulpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0x66, isXMM_XMMorMEM); }\nvoid mulps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0x100, isXMM_XMMorMEM); }\nvoid mulsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0xF2, isXMM_XMMorMEM); }\nvoid mulss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0xF3, isXMM_XMMorMEM); }\nvoid mulx(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_F2 | T_0F38, 0xf6, true); }\nvoid mwait() { db(0x0F); db(0x01); db(0xC9); }\nvoid mwaitx() { db(0x0F); db(0x01); db(0xFB); }\nvoid neg(const Operand& op) { opR_ModM(op, 0, 3, 0xF6); }\nvoid not_(const Operand& op) { opR_ModM(op, 0, 2, 0xF6); }\nvoid or_(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x08, 1); }\nvoid or_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x08); }\nvoid orpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x56, 0x66, isXMM_XMMorMEM); }\nvoid orps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x56, 0x100, isXMM_XMMorMEM); }\nvoid out_(const Reg& d, const Reg& a) { opInOut(a, d, 0xEE); }\nvoid out_(uint8_t v, const Reg& a) { opInOut(a, 0xE6, v); }\nvoid outsb() { db(0x6E); }\nvoid outsd() { db(0x6F); }\nvoid outsw() { db(0x66); db(0x6F); }\nvoid pabsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1C, 0x66, NONE, 0x38); }\nvoid pabsd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1E, 0x66, NONE, 0x38); }\nvoid pabsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1D, 0x66, NONE, 0x38); }\nvoid packssdw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6B); }\nvoid packsswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x63); }\nvoid packusdw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2B, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid packuswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x67); }\nvoid paddb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFC); }\nvoid paddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFE); }\nvoid paddq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD4); }\nvoid paddsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEC); }\nvoid paddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xED); }\nvoid paddusb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDC); }\nvoid paddusw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDD); }\nvoid paddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFD); }\nvoid palignr(const Mmx& mmx, const Operand& op, int imm) { opMMX(mmx, op, 0x0f, 0x66, static_cast<uint8_t>(imm), 0x3a); }\nvoid pand(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDB); }\nvoid pandn(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDF); }\nvoid pause() { db(0xF3); db(0x90); }\nvoid pavgb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE0); }\nvoid pavgw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE3); }\nvoid pblendvb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x10, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pblendw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0E, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid pclmulhqhqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x11); }\nvoid pclmulhqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x01); }\nvoid pclmullqhqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x10); }\nvoid pclmullqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x00); }\nvoid pclmulqdq(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x44, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid pcmpeqb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x74); }\nvoid pcmpeqd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x76); }\nvoid pcmpeqq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x29, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pcmpeqw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x75); }\nvoid pcmpestri(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x61, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid pcmpestrm(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x60, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid pcmpgtb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x64); }\nvoid pcmpgtd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x66); }\nvoid pcmpgtq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x37, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pcmpgtw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x65); }\nvoid pcmpistri(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x63, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid pcmpistrm(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x62, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid pdep(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_F2 | T_0F38, 0xf5, true); }\nvoid pext(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_F3 | T_0F38, 0xf5, true); }\nvoid pextrb(const Operand& op, const Xmm& xmm, uint8_t imm) { opExt(op, xmm, 0x14, imm); }\nvoid pextrd(const Operand& op, const Xmm& xmm, uint8_t imm) { opExt(op, xmm, 0x16, imm); }\nvoid pextrw(const Operand& op, const Mmx& xmm, uint8_t imm) { opExt(op, xmm, 0x15, imm, true); }\nvoid phaddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x02, 0x66, NONE, 0x38); }\nvoid phaddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x03, 0x66, NONE, 0x38); }\nvoid phaddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x01, 0x66, NONE, 0x38); }\nvoid phminposuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid phsubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x06, 0x66, NONE, 0x38); }\nvoid phsubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x07, 0x66, NONE, 0x38); }\nvoid phsubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x05, 0x66, NONE, 0x38); }\nvoid pinsrb(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x20, 0x66, isXMM_REG32orMEM, imm, 0x3A); }\nvoid pinsrd(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x22, 0x66, isXMM_REG32orMEM, imm, 0x3A); }\nvoid pinsrw(const Mmx& mmx, const Operand& op, int imm) { if (!op.isREG(32) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(mmx, op, 0xC4, mmx.isXMM() ? 0x66 : NONE, 0, imm); }\nvoid pmaddubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x04, 0x66, NONE, 0x38); }\nvoid pmaddwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF5); }\nvoid pmaxsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3C, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmaxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3D, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmaxsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEE); }\nvoid pmaxub(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDE); }\nvoid pmaxud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3F, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmaxuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3E, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pminsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x38, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pminsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x39, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pminsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEA); }\nvoid pminub(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDA); }\nvoid pminud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3B, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pminuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3A, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovmskb(const Reg32e& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(reg, mmx, 0x0F, 0xD7); }\nvoid pmovsxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovsxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x22, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovsxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x20, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovsxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x25, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovsxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x23, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovsxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x24, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovzxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x31, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovzxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x32, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovzxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x30, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovzxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x35, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovzxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x33, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmovzxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x34, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmuldq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x28, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmulhrsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0B, 0x66, NONE, 0x38); }\nvoid pmulhuw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE4); }\nvoid pmulhw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE5); }\nvoid pmulld(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x40, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid pmullw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD5); }\nvoid pmuludq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF4); }\nvoid popcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xB8); }\nvoid popf() { db(0x9D); }\nvoid por(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEB); }\nvoid prefetchit0(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0x18); }\nvoid prefetchit1(const Address& addr) { opModM(addr, Reg32(6), 0x0F, 0x18); }\nvoid prefetchnta(const Address& addr) { opModM(addr, Reg32(0), 0x0F, 0x18); }\nvoid prefetcht0(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x18); }\nvoid prefetcht1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x18); }\nvoid prefetcht2(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0x18); }\nvoid prefetchw(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x0D); }\nvoid prefetchwt1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x0D); }\nvoid psadbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF6); }\nvoid pshufb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x00, 0x66, NONE, 0x38); }\nvoid pshufd(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mmx, op, 0x70, 0x66, imm8); }\nvoid pshufhw(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mmx, op, 0x70, 0xF3, imm8); }\nvoid pshuflw(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mmx, op, 0x70, 0xF2, imm8); }\nvoid pshufw(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mmx, op, 0x70, 0x00, imm8); }\nvoid psignb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x08, 0x66, NONE, 0x38); }\nvoid psignd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0A, 0x66, NONE, 0x38); }\nvoid psignw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x09, 0x66, NONE, 0x38); }\nvoid pslld(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF2); }\nvoid pslld(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 6); }\nvoid pslldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x73, 7); }\nvoid psllq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF3); }\nvoid psllq(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x73, 6); }\nvoid psllw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF1); }\nvoid psllw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 6); }\nvoid psrad(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE2); }\nvoid psrad(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 4); }\nvoid psraw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE1); }\nvoid psraw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 4); }\nvoid psrld(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD2); }\nvoid psrld(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 2); }\nvoid psrldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x73, 3); }\nvoid psrlq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD3); }\nvoid psrlq(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x73, 2); }\nvoid psrlw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD1); }\nvoid psrlw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 2); }\nvoid psubb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF8); }\nvoid psubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFA); }\nvoid psubq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFB); }\nvoid psubsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE8); }\nvoid psubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE9); }\nvoid psubusb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD8); }\nvoid psubusw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD9); }\nvoid psubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF9); }\nvoid ptest(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x17, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\nvoid punpckhbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x68); }\nvoid punpckhdq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6A); }\nvoid punpckhqdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x6D, 0x66, isXMM_XMMorMEM); }\nvoid punpckhwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x69); }\nvoid punpcklbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x60); }\nvoid punpckldq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x62); }\nvoid punpcklqdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x6C, 0x66, isXMM_XMMorMEM); }\nvoid punpcklwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x61); }\nvoid pushf() { db(0x9C); }\nvoid pxor(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEF); }\nvoid rcl(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 2); }\nvoid rcl(const Operand& op, int imm) { opShift(op, imm, 2); }\nvoid rcpps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x53, 0x100, isXMM_XMMorMEM); }\nvoid rcpss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x53, 0xF3, isXMM_XMMorMEM); }\nvoid rcr(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 3); }\nvoid rcr(const Operand& op, int imm) { opShift(op, imm, 3); }\nvoid rdmsr() { db(0x0F); db(0x32); }\nvoid rdpmc() { db(0x0F); db(0x33); }\nvoid rdrand(const Reg& r) { if (r.isBit(8)) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER) opModR(Reg(6, Operand::REG, r.getBit()), r, 0x0F, 0xC7); }\nvoid rdseed(const Reg& r) { if (r.isBit(8)) XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER) opModR(Reg(7, Operand::REG, r.getBit()), r, 0x0F, 0xC7); }\nvoid rdtsc() { db(0x0F); db(0x31); }\nvoid rdtscp() { db(0x0F); db(0x01); db(0xF9); }\nvoid rep() { db(0xF3); }\nvoid repe() { db(0xF3); }\nvoid repne() { db(0xF2); }\nvoid repnz() { db(0xF2); }\nvoid repz() { db(0xF3); }\nvoid ret(int imm = 0) { if (imm) { db(0xC2); dw(imm); } else { db(0xC3); } }\nvoid retf(int imm = 0) { if (imm) { db(0xCA); dw(imm); } else { db(0xCB); } }\nvoid rol(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 0); }\nvoid rol(const Operand& op, int imm) { opShift(op, imm, 0); }\nvoid ror(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 1); }\nvoid ror(const Operand& op, int imm) { opShift(op, imm, 1); }\nvoid rorx(const Reg32e& r, const Operand& op, uint8_t imm) { opGpr(r, op, Reg32e(0, r.getBit()), T_0F3A | T_F2, 0xF0, false, imm); }\nvoid roundpd(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x09, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid roundps(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0x08, 0x66, isXMM_XMMorMEM, imm, 0x3A); }\nvoid roundsd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0B, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid roundss(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0A, 0x66, isXMM_XMMorMEM, static_cast<uint8_t>(imm), 0x3A); }\nvoid rsqrtps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x52, 0x100, isXMM_XMMorMEM); }\nvoid rsqrtss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x52, 0xF3, isXMM_XMMorMEM); }\nvoid sahf() { db(0x9E); }\nvoid sal(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 4); }\nvoid sal(const Operand& op, int imm) { opShift(op, imm, 4); }\nvoid sar(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 7); }\nvoid sar(const Operand& op, int imm) { opShift(op, imm, 7); }\nvoid sarx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_F3 | T_0F38, 0xf7, false); }\nvoid sbb(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x18, 3); }\nvoid sbb(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x18); }\nvoid scasb() { db(0xAE); }\nvoid scasd() { db(0xAF); }\nvoid scasw() { db(0x66); db(0xAF); }\nvoid serialize() { db(0x0F); db(0x01); db(0xE8); }\nvoid seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }//-V524\nvoid setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524\nvoid setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524\nvoid setbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }//-V524\nvoid setc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524\nvoid sete(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }//-V524\nvoid setg(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }//-V524\nvoid setge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }//-V524\nvoid setl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }//-V524\nvoid setle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }//-V524\nvoid setna(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }//-V524\nvoid setnae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524\nvoid setnb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524\nvoid setnbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }//-V524\nvoid setnc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524\nvoid setne(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }//-V524\nvoid setng(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }//-V524\nvoid setnge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }//-V524\nvoid setnl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }//-V524\nvoid setnle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }//-V524\nvoid setno(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 1); }//-V524\nvoid setnp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }//-V524\nvoid setns(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 9); }//-V524\nvoid setnz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }//-V524\nvoid seto(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 0); }//-V524\nvoid setp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }//-V524\nvoid setpe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }//-V524\nvoid setpo(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }//-V524\nvoid sets(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 8); }//-V524\nvoid setz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }//-V524\nvoid sfence() { db(0x0F); db(0xAE); db(0xF8); }\nvoid sha1msg1(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC9, NONE, isXMM_XMMorMEM, NONE, 0x38); }\nvoid sha1msg2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCA, NONE, isXMM_XMMorMEM, NONE, 0x38); }\nvoid sha1nexte(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC8, NONE, isXMM_XMMorMEM, NONE, 0x38); }\nvoid sha1rnds4(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm, op, 0xCC, NONE, isXMM_XMMorMEM, imm, 0x3A); }\nvoid sha256msg1(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCC, NONE, isXMM_XMMorMEM, NONE, 0x38); }\nvoid sha256msg2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCD, NONE, isXMM_XMMorMEM, NONE, 0x38); }\nvoid sha256rnds2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCB, NONE, isXMM_XMMorMEM, NONE, 0x38); }\nvoid shl(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 4); }\nvoid shl(const Operand& op, int imm) { opShift(op, imm, 4); }\nvoid shld(const Operand& op, const Reg& reg, const Reg8& _cl) { opShxd(op, reg, 0, 0xA4, &_cl); }\nvoid shld(const Operand& op, const Reg& reg, uint8_t imm) { opShxd(op, reg, imm, 0xA4); }\nvoid shlx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_66 | T_0F38, 0xf7, false); }\nvoid shr(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 5); }\nvoid shr(const Operand& op, int imm) { opShift(op, imm, 5); }\nvoid shrd(const Operand& op, const Reg& reg, const Reg8& _cl) { opShxd(op, reg, 0, 0xAC, &_cl); }\nvoid shrd(const Operand& op, const Reg& reg, uint8_t imm) { opShxd(op, reg, imm, 0xAC); }\nvoid shrx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_F2 | T_0F38, 0xf7, false); }\nvoid shufpd(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm, op, 0xC6, 0x66, isXMM_XMMorMEM, imm8); }\nvoid shufps(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm, op, 0xC6, 0x100, isXMM_XMMorMEM, imm8); }\nvoid sqrtpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x66, isXMM_XMMorMEM); }\nvoid sqrtps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x100, isXMM_XMMorMEM); }\nvoid sqrtsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0xF2, isXMM_XMMorMEM); }\nvoid sqrtss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0xF3, isXMM_XMMorMEM); }\nvoid stac() { db(0x0F); db(0x01); db(0xCB); }\nvoid stc() { db(0xF9); }\nvoid std() { db(0xFD); }\nvoid sti() { db(0xFB); }\nvoid stmxcsr(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0xAE); }\nvoid stosb() { db(0xAA); }\nvoid stosd() { db(0xAB); }\nvoid stosw() { db(0x66); db(0xAB); }\nvoid sub(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x28, 5); }\nvoid sub(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x28); }\nvoid subpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0x66, isXMM_XMMorMEM); }\nvoid subps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0x100, isXMM_XMMorMEM); }\nvoid subsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF2, isXMM_XMMorMEM); }\nvoid subss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF3, isXMM_XMMorMEM); }\nvoid sysenter() { db(0x0F); db(0x34); }\nvoid sysexit() { db(0x0F); db(0x35); }\nvoid tpause(const Reg32& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) db(0x66); db(0x0F); db(0xAE); setModRM(3, 6, idx); }\nvoid tzcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xBC); }\nvoid ucomisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0x66, isXMM_XMMorMEM); }\nvoid ucomiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0x100, isXMM_XMMorMEM); }\nvoid ud2() { db(0x0F); db(0x0B); }\nvoid umonitor(const Reg& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) int bit = r.getBit(); if (BIT != bit) { if ((BIT == 32 && bit == 16) || (BIT == 64 && bit == 32)) { db(0x67); } else { XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER) } } db(0xF3); db(0x0F); db(0xAE); setModRM(3, 6, idx); }\nvoid umwait(const Reg32& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) db(0xF2); db(0x0F); db(0xAE); setModRM(3, 6, idx); }\nvoid unpckhpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM); }\nvoid unpckhps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x100, isXMM_XMMorMEM); }\nvoid unpcklpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM); }\nvoid unpcklps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x100, isXMM_XMMorMEM); }\nvoid vaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x58); }\nvoid vaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x58); }\nvoid vaddsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_X | T_N8, 0x58); }\nvoid vaddss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_X | T_N4, 0x58); }\nvoid vaddsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F | T_YMM, 0xD0); }\nvoid vaddsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_F2 | T_0F | T_YMM, 0xD0); }\nvoid vaesdec(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDE); }\nvoid vaesdeclast(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDF); }\nvoid vaesenc(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDC); }\nvoid vaesenclast(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDD); }\nvoid vaesimc(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_W0, 0xDB); }\nvoid vaeskeygenassist(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0xDF, imm); }\nvoid vandnpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x55); }\nvoid vandnps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x55); }\nvoid vandpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x54); }\nvoid vandps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x54); }\nvoid vbcstnebf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_F3 | T_0F38 | T_W0 | T_YMM | T_B16, 0xB1); }\nvoid vbcstnesh2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_66 | T_0F38 | T_W0 | T_YMM | T_B16, 0xB1); }\nvoid vblendpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0D, imm); }\nvoid vblendps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0C, imm); }\nvoid vblendvpd(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4B, x4.getIdx() << 4); }\nvoid vblendvps(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4A, x4.getIdx() << 4); }\nvoid vbroadcastf128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x1A); }\nvoid vbroadcasti128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x5A); }\nvoid vbroadcastsd(const Ymm& y, const Operand& op) { if (!op.isMEM() && !(y.isYMM() && op.isXMM()) && !(y.isZMM() && op.isXMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(y, op, T_0F38 | T_66 | T_W0 | T_YMM | T_EVEX | T_EW1 | T_N8, 0x19); }\nvoid vbroadcastss(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x18); }\nvoid vcmpeq_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 16); }\nvoid vcmpeq_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 16); }\nvoid vcmpeq_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 16); }\nvoid vcmpeq_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 16); }\nvoid vcmpeq_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 8); }\nvoid vcmpeq_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 8); }\nvoid vcmpeq_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 8); }\nvoid vcmpeq_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 8); }\nvoid vcmpeq_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 24); }\nvoid vcmpeq_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 24); }\nvoid vcmpeq_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 24); }\nvoid vcmpeq_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 24); }\nvoid vcmpeqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 0); }\nvoid vcmpeqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 0); }\nvoid vcmpeqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 0); }\nvoid vcmpeqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 0); }\nvoid vcmpfalse_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 27); }\nvoid vcmpfalse_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 27); }\nvoid vcmpfalse_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 27); }\nvoid vcmpfalse_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 27); }\nvoid vcmpfalsepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 11); }\nvoid vcmpfalseps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 11); }\nvoid vcmpfalsesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 11); }\nvoid vcmpfalsess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 11); }\nvoid vcmpge_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 29); }\nvoid vcmpge_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 29); }\nvoid vcmpge_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 29); }\nvoid vcmpge_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 29); }\nvoid vcmpgepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 13); }\nvoid vcmpgeps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 13); }\nvoid vcmpgesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 13); }\nvoid vcmpgess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 13); }\nvoid vcmpgt_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 30); }\nvoid vcmpgt_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 30); }\nvoid vcmpgt_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 30); }\nvoid vcmpgt_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 30); }\nvoid vcmpgtpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 14); }\nvoid vcmpgtps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 14); }\nvoid vcmpgtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 14); }\nvoid vcmpgtss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 14); }\nvoid vcmple_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 18); }\nvoid vcmple_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 18); }\nvoid vcmple_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 18); }\nvoid vcmple_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 18); }\nvoid vcmplepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 2); }\nvoid vcmpleps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 2); }\nvoid vcmplesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 2); }\nvoid vcmpless(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 2); }\nvoid vcmplt_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 17); }\nvoid vcmplt_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 17); }\nvoid vcmplt_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 17); }\nvoid vcmplt_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 17); }\nvoid vcmpltpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 1); }\nvoid vcmpltps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 1); }\nvoid vcmpltsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 1); }\nvoid vcmpltss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 1); }\nvoid vcmpneq_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 12); }\nvoid vcmpneq_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 12); }\nvoid vcmpneq_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 12); }\nvoid vcmpneq_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 12); }\nvoid vcmpneq_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 28); }\nvoid vcmpneq_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 28); }\nvoid vcmpneq_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 28); }\nvoid vcmpneq_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 28); }\nvoid vcmpneq_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 20); }\nvoid vcmpneq_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 20); }\nvoid vcmpneq_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 20); }\nvoid vcmpneq_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 20); }\nvoid vcmpneqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 4); }\nvoid vcmpneqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 4); }\nvoid vcmpneqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 4); }\nvoid vcmpneqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 4); }\nvoid vcmpnge_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 25); }\nvoid vcmpnge_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 25); }\nvoid vcmpnge_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 25); }\nvoid vcmpnge_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 25); }\nvoid vcmpngepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 9); }\nvoid vcmpngeps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 9); }\nvoid vcmpngesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 9); }\nvoid vcmpngess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 9); }\nvoid vcmpngt_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 26); }\nvoid vcmpngt_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 26); }\nvoid vcmpngt_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 26); }\nvoid vcmpngt_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 26); }\nvoid vcmpngtpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 10); }\nvoid vcmpngtps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 10); }\nvoid vcmpngtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 10); }\nvoid vcmpngtss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 10); }\nvoid vcmpnle_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 22); }\nvoid vcmpnle_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 22); }\nvoid vcmpnle_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 22); }\nvoid vcmpnle_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 22); }\nvoid vcmpnlepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 6); }\nvoid vcmpnleps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 6); }\nvoid vcmpnlesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 6); }\nvoid vcmpnless(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 6); }\nvoid vcmpnlt_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 21); }\nvoid vcmpnlt_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 21); }\nvoid vcmpnlt_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 21); }\nvoid vcmpnlt_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 21); }\nvoid vcmpnltpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 5); }\nvoid vcmpnltps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 5); }\nvoid vcmpnltsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 5); }\nvoid vcmpnltss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 5); }\nvoid vcmpord_spd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 23); }\nvoid vcmpord_sps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 23); }\nvoid vcmpord_ssd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 23); }\nvoid vcmpord_sss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 23); }\nvoid vcmpordpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 7); }\nvoid vcmpordps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 7); }\nvoid vcmpordsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 7); }\nvoid vcmpordss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 7); }\nvoid vcmppd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xC2, imm); }\nvoid vcmpps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_0F | T_YMM, 0xC2, imm); }\nvoid vcmpsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F, 0xC2, imm); }\nvoid vcmpss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0xC2, imm); }\nvoid vcmptrue_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 31); }\nvoid vcmptrue_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 31); }\nvoid vcmptrue_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 31); }\nvoid vcmptrue_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 31); }\nvoid vcmptruepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 15); }\nvoid vcmptrueps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 15); }\nvoid vcmptruesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 15); }\nvoid vcmptruess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 15); }\nvoid vcmpunord_spd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 19); }\nvoid vcmpunord_sps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 19); }\nvoid vcmpunord_ssd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 19); }\nvoid vcmpunord_sss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 19); }\nvoid vcmpunordpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 3); }\nvoid vcmpunordps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 3); }\nvoid vcmpunordsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 3); }\nvoid vcmpunordss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 3); }\nvoid vcomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_66 | T_0F | T_EW1 | T_EVEX | T_SAE_X, 0x2F); }\nvoid vcomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x2F); }\nvoid vcvtdq2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F | T_F3 | T_YMM | T_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL, 0xE6); }\nvoid vcvtdq2ps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5B); }\nvoid vcvtneebf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_F3 | T_0F38 | T_W0 | T_YMM, 0xB0); }\nvoid vcvtneeph2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_66 | T_0F38 | T_W0 | T_YMM, 0xB0); }\nvoid vcvtneobf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_F2 | T_0F38 | T_W0 | T_YMM, 0xB0); }\nvoid vcvtneoph2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_0F38 | T_W0 | T_YMM, 0xB0); }\nvoid vcvtneps2bf16(const Xmm& x, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opCvt2(x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32 | orEvexIf(encoding), 0x72); }\nvoid vcvtpd2dq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_F2 | T_YMM | T_EVEX | T_EW1 | T_B64 | T_ER_Z, 0xE6); }\nvoid vcvtpd2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_66 | T_YMM | T_EVEX | T_EW1 | T_B64 | T_ER_Z, 0x5A); }\nvoid vcvtph2ps(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F38 | T_66 | T_W0 | T_EVEX | T_EW0 | T_N8 | T_N_VL | T_SAE_Y, 0x13); }\nvoid vcvtps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5B); }\nvoid vcvtps2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F | T_YMM | T_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL | T_SAE_Y, 0x5A); }\nvoid vcvtps2ph(const Operand& op, const Xmm& x, uint8_t imm) { checkCvt1(x, op); opVex(x, 0, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N8 | T_N_VL | T_SAE_Y | T_M_K, 0x1D, imm); }\nvoid vcvtsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W0 | T_EVEX | T_EW0 | T_N4 | T_ER_X, 0x2D); }\nvoid vcvtsd2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_ER_X, 0x5A); }\nvoid vcvtsi2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_0F | T_F2 | T_EVEX, T_W1 | T_EW1 | T_ER_X | T_N8, T_W0 | T_EW0 | T_N4, 0x2A); }\nvoid vcvtsi2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_0F | T_F3 | T_EVEX | T_ER_X, T_W1 | T_EW1 | T_N8, T_W0 | T_EW0 | T_N4, 0x2A); }\nvoid vcvtss2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x5A); }\nvoid vcvtss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W0 | T_EVEX | T_EW0 | T_ER_X | T_N8, 0x2D); }\nvoid vcvttpd2dq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_66 | T_0F | T_YMM | T_EVEX |T_EW1 | T_B64 | T_ER_Z, 0xE6); }\nvoid vcvttps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_EW0 | T_YMM | T_EVEX | T_SAE_Z | T_B32, 0x5B); }\nvoid vcvttsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W0 | T_EVEX | T_EW0 | T_N4 | T_SAE_X, 0x2C); }\nvoid vcvttss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W0 | T_EVEX | T_EW0 | T_SAE_X | T_N8, 0x2C); }\nvoid vdivpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5E); }\nvoid vdivps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5E); }\nvoid vdivsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_X | T_N8, 0x5E); }\nvoid vdivss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_X | T_N4, 0x5E); }\nvoid vdppd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x41, imm); }\nvoid vdpps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x40, imm); }\nvoid vextractf128(const Operand& op, const Ymm& y, uint8_t imm) { if (!(op.isXMEM() && y.isYMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y, 0, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x19, imm); }\nvoid vextracti128(const Operand& op, const Ymm& y, uint8_t imm) { if (!(op.isXMEM() && y.isYMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y, 0, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x39, imm); }\nvoid vextractps(const Operand& op, const Xmm& x, uint8_t imm) { if (!((op.isREG(32) || op.isMEM()) && x.isXMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x, 0, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_N4, 0x17, imm); }\nvoid vfmadd132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x98); }\nvoid vfmadd132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x98); }\nvoid vfmadd132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x99); }\nvoid vfmadd132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x99); }\nvoid vfmadd213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xA8); }\nvoid vfmadd213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xA8); }\nvoid vfmadd213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xA9); }\nvoid vfmadd213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xA9); }\nvoid vfmadd231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xB8); }\nvoid vfmadd231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xB8); }\nvoid vfmadd231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xB9); }\nvoid vfmadd231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xB9); }\nvoid vfmaddsub132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x96); }\nvoid vfmaddsub132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x96); }\nvoid vfmaddsub213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xA6); }\nvoid vfmaddsub213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xA6); }\nvoid vfmaddsub231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xB6); }\nvoid vfmaddsub231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xB6); }\nvoid vfmsub132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x9A); }\nvoid vfmsub132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x9A); }\nvoid vfmsub132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x9B); }\nvoid vfmsub132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x9B); }\nvoid vfmsub213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xAA); }\nvoid vfmsub213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xAA); }\nvoid vfmsub213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xAB); }\nvoid vfmsub213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xAB); }\nvoid vfmsub231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xBA); }\nvoid vfmsub231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xBA); }\nvoid vfmsub231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xBB); }\nvoid vfmsub231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xBB); }\nvoid vfmsubadd132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x97); }\nvoid vfmsubadd132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x97); }\nvoid vfmsubadd213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xA7); }\nvoid vfmsubadd213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xA7); }\nvoid vfmsubadd231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xB7); }\nvoid vfmsubadd231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xB7); }\nvoid vfnmadd132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x9C); }\nvoid vfnmadd132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x9C); }\nvoid vfnmadd132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x9D); }\nvoid vfnmadd132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x9D); }\nvoid vfnmadd213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xAC); }\nvoid vfnmadd213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xAC); }\nvoid vfnmadd213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xAD); }\nvoid vfnmadd213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xAD); }\nvoid vfnmadd231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xBC); }\nvoid vfnmadd231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xBC); }\nvoid vfnmadd231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xBD); }\nvoid vfnmadd231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xBD); }\nvoid vfnmsub132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x9E); }\nvoid vfnmsub132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x9E); }\nvoid vfnmsub132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x9F); }\nvoid vfnmsub132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x9F); }\nvoid vfnmsub213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xAE); }\nvoid vfnmsub213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xAE); }\nvoid vfnmsub213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xAF); }\nvoid vfnmsub213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xAF); }\nvoid vfnmsub231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xBE); }\nvoid vfnmsub231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xBE); }\nvoid vfnmsub231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xBF); }\nvoid vfnmsub231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xBF); }\nvoid vgatherdpd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W1, 0x92, 0); }\nvoid vgatherdps(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W0, 0x92, 1); }\nvoid vgatherqpd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W1, 0x93, 1); }\nvoid vgatherqps(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W0, 0x93, 2); }\nvoid vgf2p8affineinvqb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_SAE_Z | T_B64, 0xCF, imm); }\nvoid vgf2p8affineqb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_SAE_Z | T_B64, 0xCE, imm); }\nvoid vgf2p8mulb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_SAE_Z, 0xCF); }\nvoid vhaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F | T_YMM, 0x7C); }\nvoid vhaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_F2 | T_0F | T_YMM, 0x7C); }\nvoid vhsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F | T_YMM, 0x7D); }\nvoid vhsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_F2 | T_0F | T_YMM, 0x7D); }\nvoid vinsertf128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { if (!(y1.isYMM() && y2.isYMM() && op.isXMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x18, imm); }\nvoid vinserti128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { if (!(y1.isYMM() && y2.isYMM() && op.isXMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x38, imm); }\nvoid vinsertps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_W0 | T_EW0 | T_EVEX, 0x21, imm); }\nvoid vlddqu(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, cvtIdx0(x), addr, T_0F | T_F2 | T_W0 | T_YMM, 0xF0); }\nvoid vldmxcsr(const Address& addr) { opAVX_X_X_XM(xm2, xm0, addr, T_0F, 0xAE); }\nvoid vmaskmovdqu(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, T_0F | T_66, 0xF7); }\nvoid vmaskmovpd(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2F); }\nvoid vmaskmovpd(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2D); }\nvoid vmaskmovps(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2E); }\nvoid vmaskmovps(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2C); }\nvoid vmaxpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5F); }\nvoid vmaxps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5F); }\nvoid vmaxsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_X | T_N8, 0x5F); }\nvoid vmaxss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_X | T_N4, 0x5F); }\nvoid vminpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5D); }\nvoid vminps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5D); }\nvoid vminsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_X | T_N8, 0x5D); }\nvoid vminss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_X | T_N4, 0x5D); }\nvoid vmovapd(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_M_K, 0x29); }\nvoid vmovapd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0x28); }\nvoid vmovaps(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_0F | T_EW0 | T_YMM | T_EVEX | T_M_K, 0x29); }\nvoid vmovaps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX, 0x28); }\nvoid vmovd(const Operand& op, const Xmm& x) { if (!op.isREG(32) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, xm0, op, T_0F | T_66 | T_W0 | T_EVEX | T_N4, 0x7E); }\nvoid vmovd(const Xmm& x, const Operand& op) { if (!op.isREG(32) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, xm0, op, T_0F | T_66 | T_W0 | T_EVEX | T_N4, 0x6E); }\nvoid vmovddup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_DUP | T_F2 | T_0F | T_EW1 | T_YMM | T_EVEX | T_ER_X | T_ER_Y | T_ER_Z, 0x12); }\nvoid vmovdqa(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_66 | T_0F | T_YMM, 0x7F); }\nvoid vmovdqa(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_YMM, 0x6F); }\nvoid vmovdqu(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_F3 | T_0F | T_YMM, 0x7F); }\nvoid vmovdqu(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_YMM, 0x6F); }\nvoid vmovhlps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x1, x2, op, T_0F | T_EVEX | T_EW0, 0x12); }\nvoid vmovhpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x17); }\nvoid vmovhpd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, op1, op2, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x16); }\nvoid vmovhps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_EVEX | T_EW0 | T_N8, 0x17); }\nvoid vmovhps(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, op1, op2, T_0F | T_EVEX | T_EW0 | T_N8, 0x16); }\nvoid vmovlhps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x1, x2, op, T_0F | T_EVEX | T_EW0, 0x16); }\nvoid vmovlpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x13); }\nvoid vmovlpd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, op1, op2, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x12); }\nvoid vmovlps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_EVEX | T_EW0 | T_N8, 0x13); }\nvoid vmovlps(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, op1, op2, T_0F | T_EVEX | T_EW0 | T_N8, 0x12); }\nvoid vmovmskpd(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), cvtIdx0(x), x, T_0F | T_66 | T_W0 | T_YMM, 0x50); }\nvoid vmovmskps(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), cvtIdx0(x), x, T_0F | T_W0 | T_YMM, 0x50); }\nvoid vmovntdq(const Address& addr, const Xmm& x) { opVex(x, 0, addr, T_0F | T_66 | T_YMM | T_EVEX | T_EW0, 0xE7); }\nvoid vmovntdqa(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_0F38 | T_66 | T_YMM | T_EVEX | T_EW0, 0x2A); }\nvoid vmovntpd(const Address& addr, const Xmm& x) { opVex(x, 0, addr, T_0F | T_66 | T_YMM | T_EVEX | T_EW1, 0x2B); }\nvoid vmovntps(const Address& addr, const Xmm& x) { opVex(x, 0, addr, T_0F | T_YMM | T_EVEX | T_EW0, 0x2B); }\nvoid vmovq(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, x.getIdx() < 16 ? 0xD6 : 0x7E); }\nvoid vmovq(const Xmm& x, const Address& addr) { int type, code; if (x.getIdx() < 16) { type = T_0F | T_F3; code = 0x7E; } else { type = T_0F | T_66 | T_EVEX | T_EW1 | T_N8; code = 0x6E; } opAVX_X_X_XM(x, xm0, addr, type, code); }\nvoid vmovq(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, T_0F | T_F3 | T_EVEX | T_EW1 | T_N8, 0x7E); }\nvoid vmovsd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_M_K, 0x11); }\nvoid vmovsd(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX, 0x10); }\nvoid vmovsd(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX, 0x10); }\nvoid vmovshdup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_EW0 | T_YMM | T_EVEX, 0x16); }\nvoid vmovsldup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_EW0 | T_YMM | T_EVEX, 0x12); }\nvoid vmovss(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX | T_M_K, 0x11); }\nvoid vmovss(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX, 0x10); }\nvoid vmovss(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x1, x2, op, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX, 0x10); }\nvoid vmovupd(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_M_K, 0x11); }\nvoid vmovupd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0x10); }\nvoid vmovups(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_0F | T_EW0 | T_YMM | T_EVEX | T_M_K, 0x11); }\nvoid vmovups(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX, 0x10); }\nvoid vmpsadbw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x42, imm); }\nvoid vmulpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x59); }\nvoid vmulps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x59); }\nvoid vmulsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_X | T_N8, 0x59); }\nvoid vmulss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_X | T_N4, 0x59); }\nvoid vorpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x56); }\nvoid vorps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x56); }\nvoid vpabsb(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x1C); }\nvoid vpabsd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x1E); }\nvoid vpabsw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x1D); }\nvoid vpackssdw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x6B); }\nvoid vpacksswb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x63); }\nvoid vpackusdw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x2B); }\nvoid vpackuswb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x67); }\nvoid vpaddb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xFC); }\nvoid vpaddd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xFE); }\nvoid vpaddq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xD4); }\nvoid vpaddsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xEC); }\nvoid vpaddsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xED); }\nvoid vpaddusb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDC); }\nvoid vpaddusw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDD); }\nvoid vpaddw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xFD); }\nvoid vpalignr(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_YMM | T_EVEX, 0x0F, imm); }\nvoid vpand(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xDB); }\nvoid vpandn(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xDF); }\nvoid vpavgb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE0); }\nvoid vpavgw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE3); }\nvoid vpblendd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x02, imm); }\nvoid vpblendvb(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4C, x4.getIdx() << 4); }\nvoid vpblendw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0E, imm); }\nvoid vpbroadcastb(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x78); }\nvoid vpbroadcastd(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x58); }\nvoid vpbroadcastq(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX, 0x59); }\nvoid vpbroadcastw(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x79); }\nvoid vpclmulhqhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x11); }\nvoid vpclmulhqlqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x01); }\nvoid vpclmullqhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x10); }\nvoid vpclmullqlqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { vpclmulqdq(x1, x2, op, 0x00); }\nvoid vpclmulqdq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM | T_EVEX, 0x44, imm); }\nvoid vpcmpeqb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x74); }\nvoid vpcmpeqd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x76); }\nvoid vpcmpeqq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x29); }\nvoid vpcmpeqw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x75); }\nvoid vpcmpestri(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x61, imm); }\nvoid vpcmpestrm(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x60, imm); }\nvoid vpcmpgtb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x64); }\nvoid vpcmpgtd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x66); }\nvoid vpcmpgtq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x37); }\nvoid vpcmpgtw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x65); }\nvoid vpcmpistri(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x63, imm); }\nvoid vpcmpistrm(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x62, imm); }\nvoid vpdpbssd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_W0 | T_YMM, 0x50); }\nvoid vpdpbssds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_W0 | T_YMM, 0x51); }\nvoid vpdpbsud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0x50); }\nvoid vpdpbsuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0x51); }\nvoid vpdpbusd(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x50, encoding); }\nvoid vpdpbusds(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x51, encoding); }\nvoid vpdpbuud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0x50); }\nvoid vpdpbuuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0x51); }\nvoid vpdpwssd(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x52, encoding); }\nvoid vpdpwssds(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_B32, 0x53, encoding); }\nvoid vpdpwsud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0xD2); }\nvoid vpdpwsuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_YMM, 0xD3); }\nvoid vpdpwusd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_YMM, 0xD2); }\nvoid vpdpwusds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_YMM, 0xD3); }\nvoid vpdpwuud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0xD2); }\nvoid vpdpwuuds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_YMM, 0xD3); }\nvoid vperm2f128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { if (!(y1.isYMM() && y2.isYMM() && op.isYMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x06, imm); }\nvoid vperm2i128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { if (!(y1.isYMM() && y2.isYMM() && op.isYMEM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x46, imm); }\nvoid vpermd(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x36); }\nvoid vpermilpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x0D); }\nvoid vpermilpd(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_EVEX | T_B64, 0x05, imm); }\nvoid vpermilps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x0C); }\nvoid vpermilps(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_EVEX | T_B32, 0x04, imm); }\nvoid vpermpd(const Ymm& y, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(y, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x01, imm); }\nvoid vpermpd(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x16); }\nvoid vpermps(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x16); }\nvoid vpermq(const Ymm& y, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(y, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x00, imm); }\nvoid vpermq(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x36); }\nvoid vpextrb(const Operand& op, const Xmm& x, uint8_t imm) { if (!((op.isREG(8|16|i32e) || op.isMEM()) && x.isXMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x, 0, op, T_0F3A | T_66 | T_EVEX | T_N1, 0x14, imm); }\nvoid vpextrd(const Operand& op, const Xmm& x, uint8_t imm) { if (!((op.isREG(32) || op.isMEM()) && x.isXMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x, 0, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N4, 0x16, imm); }\nvoid vpextrq(const Operand& op, const Xmm& x, uint8_t imm) { if (!((op.isREG(64) || op.isMEM()) && x.isXMM())) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x, 0, op, T_0F3A | T_66 | T_W1 | T_EVEX | T_EW1 | T_N8, 0x16, imm); }\nvoid vpextrw(const Operand& op, const Xmm& x, uint8_t imm) { if (!((op.isREG(16|i32e) || op.isMEM()) && x.isXMM())) XBYAK_THROW(ERR_BAD_COMBINATION) if (op.isREG() && x.getIdx() < 16) { opAVX_X_X_XM(Xmm(op.getIdx()), xm0, x, T_0F | T_66, 0xC5, imm); } else { opVex(x, 0, op, T_0F3A | T_66 | T_EVEX | T_N2, 0x15, imm); } }\nvoid vpgatherdd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W0, 0x90, 1); }\nvoid vpgatherdq(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W1, 0x90, 0); }\nvoid vpgatherqd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W0, 0x91, 2); }\nvoid vpgatherqq(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_YMM | T_VSIB | T_W1, 0x91, 1); }\nvoid vphaddd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x02); }\nvoid vphaddsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x03); }\nvoid vphaddw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x01); }\nvoid vphminposuw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38, 0x41); }\nvoid vphsubd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x06); }\nvoid vphsubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x07); }\nvoid vphsubw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x05); }\nvoid vpinsrb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F3A | T_66 | T_EVEX | T_N1, 0x20, imm); }\nvoid vpinsrd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N4, 0x22, imm); }\nvoid vpinsrq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(64) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F3A | T_66 | T_W1 | T_EVEX | T_EW1 | T_N8, 0x22, imm); }\nvoid vpinsrw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x1, &x2, op, T_0F | T_66 | T_EVEX | T_N2, 0xC4, imm); }\nvoid vpmadd52huq(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_B64, 0xB5, encoding); }\nvoid vpmadd52luq(const Xmm& x1, const Xmm& x2, const Operand& op, PreferredEncoding encoding = DefaultEncoding) { opEncoding(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_B64, 0xB4, encoding); }\nvoid vpmaddubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x04); }\nvoid vpmaddwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF5); }\nvoid vpmaskmovd(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x8E); }\nvoid vpmaskmovd(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x8C); }\nvoid vpmaskmovq(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W1 | T_YMM, 0x8E); }\nvoid vpmaskmovq(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W1 | T_YMM, 0x8C); }\nvoid vpmaxsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x3C); }\nvoid vpmaxsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x3D); }\nvoid vpmaxsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xEE); }\nvoid vpmaxub(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDE); }\nvoid vpmaxud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x3F); }\nvoid vpmaxuw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x3E); }\nvoid vpminsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x38); }\nvoid vpminsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x39); }\nvoid vpminsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xEA); }\nvoid vpminub(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDA); }\nvoid vpminud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x3B); }\nvoid vpminuw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x3A); }\nvoid vpmovmskb(const Reg32e& r, const Xmm& x) { if (!x.is(Operand::XMM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(x.isYMM() ? Ymm(r.getIdx()) : Xmm(r.getIdx()), 0, x, T_0F | T_66 | T_YMM, 0xD7); }\nvoid vpmovsxbd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x21); }\nvoid vpmovsxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N2 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x22); }\nvoid vpmovsxbw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x20); }\nvoid vpmovsxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX, 0x25); }\nvoid vpmovsxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x23); }\nvoid vpmovsxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x24); }\nvoid vpmovzxbd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x31); }\nvoid vpmovzxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N2 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x32); }\nvoid vpmovzxbw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x30); }\nvoid vpmovzxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX, 0x35); }\nvoid vpmovzxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x33); }\nvoid vpmovzxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x34); }\nvoid vpmuldq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x28); }\nvoid vpmulhrsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x0B); }\nvoid vpmulhuw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE4); }\nvoid vpmulhw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE5); }\nvoid vpmulld(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x40); }\nvoid vpmullw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD5); }\nvoid vpmuludq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xF4); }\nvoid vpor(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xEB); }\nvoid vpsadbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF6); }\nvoid vpshufb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x00); }\nvoid vpshufd(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x70, imm); }\nvoid vpshufhw(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_YMM | T_EVEX, 0x70, imm); }\nvoid vpshuflw(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_F2 | T_0F | T_YMM | T_EVEX, 0x70, imm); }\nvoid vpsignb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x08); }\nvoid vpsignd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x0A); }\nvoid vpsignw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x09); }\nvoid vpslld(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 6), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32 | T_MEM_EVEX, 0x72, imm); }\nvoid vpslld(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW0 | T_YMM | T_EVEX, 0xF2); }\nvoid vpslldq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 7), x, op, T_66 | T_0F | T_YMM | T_EVEX | T_MEM_EVEX, 0x73, imm); }\nvoid vpsllq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 6), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64 | T_MEM_EVEX, 0x73, imm); }\nvoid vpsllq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0xF3); }\nvoid vpsllvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x47); }\nvoid vpsllvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x47); }\nvoid vpsllw(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 6), x, op, T_66 | T_0F | T_YMM | T_EVEX | T_MEM_EVEX, 0x71, imm); }\nvoid vpsllw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_YMM | T_EVEX, 0xF1); }\nvoid vpsrad(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 4), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32 | T_MEM_EVEX, 0x72, imm); }\nvoid vpsrad(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW0 | T_YMM | T_EVEX, 0xE2); }\nvoid vpsravd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x46); }\nvoid vpsraw(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 4), x, op, T_66 | T_0F | T_YMM | T_EVEX | T_MEM_EVEX, 0x71, imm); }\nvoid vpsraw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_YMM | T_EVEX, 0xE1); }\nvoid vpsrld(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 2), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32 | T_MEM_EVEX, 0x72, imm); }\nvoid vpsrld(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW0 | T_YMM | T_EVEX, 0xD2); }\nvoid vpsrldq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 3), x, op, T_66 | T_0F | T_YMM | T_EVEX | T_MEM_EVEX, 0x73, imm); }\nvoid vpsrlq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 2), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64 | T_MEM_EVEX, 0x73, imm); }\nvoid vpsrlq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0xD3); }\nvoid vpsrlvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x45); }\nvoid vpsrlvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x45); }\nvoid vpsrlw(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 2), x, op, T_66 | T_0F | T_YMM | T_EVEX | T_MEM_EVEX, 0x71, imm); }\nvoid vpsrlw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_YMM | T_EVEX, 0xD1); }\nvoid vpsubb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF8); }\nvoid vpsubd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xFA); }\nvoid vpsubq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xFB); }\nvoid vpsubsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE8); }\nvoid vpsubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE9); }\nvoid vpsubusb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD8); }\nvoid vpsubusw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD9); }\nvoid vpsubw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF9); }\nvoid vptest(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x17); }\nvoid vpunpckhbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x68); }\nvoid vpunpckhdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x6A); }\nvoid vpunpckhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x6D); }\nvoid vpunpckhwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x69); }\nvoid vpunpcklbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x60); }\nvoid vpunpckldq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x62); }\nvoid vpunpcklqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x6C); }\nvoid vpunpcklwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x61); }\nvoid vpxor(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xEF); }\nvoid vrcpps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_YMM, 0x53); }\nvoid vrcpss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0x53); }\nvoid vroundpd(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_YMM, 0x09, imm); }\nvoid vroundps(const Xmm& xm, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_YMM, 0x08, imm); }\nvoid vroundsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x0B, imm); }\nvoid vroundss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x0A, imm); }\nvoid vrsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_YMM, 0x52); }\nvoid vrsqrtss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0x52); }\nvoid vsha512msg1(const Ymm& y, const Xmm& x) { if (!(y.isYMM() && x.isXMM())) XBYAK_THROW(ERR_BAD_PARAMETER) opVex(y, 0, x, T_F2 | T_0F38 | T_W0 | T_YMM, 0xCC); }\nvoid vsha512msg2(const Ymm& y1, const Ymm& y2) { if (!(y1.isYMM() && y2.isYMM())) XBYAK_THROW(ERR_BAD_PARAMETER) opVex(y1, 0, y2, T_F2 | T_0F38 | T_W0 | T_YMM, 0xCD); }\nvoid vsha512rnds2(const Ymm& y1, const Ymm& y2, const Xmm& x) { if (!(y1.isYMM() && y2.isYMM() && x.isXMM())) XBYAK_THROW(ERR_BAD_PARAMETER) opVex(y1, &y2, x, T_F2 | T_0F38 | T_W0 | T_YMM, 0xCB); }\nvoid vshufpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xC6, imm); }\nvoid vshufps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xC6, imm); }\nvoid vsm3msg1(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); }\nvoid vsm3msg2(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); }\nvoid vsm3rnds2(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_EW0 | T_EVEX, 0xDE, imm); }\nvoid vsm4key4(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); }\nvoid vsm4rnds4(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_W0 | T_EW0 | T_EVEX, 0xDA); }\nvoid vsqrtpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x51); }\nvoid vsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x51); }\nvoid vsqrtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_ER_X, 0x51); }\nvoid vsqrtss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX | T_ER_X, 0x51); }\nvoid vstmxcsr(const Address& addr) { opAVX_X_X_XM(xm3, xm0, addr, T_0F, 0xAE); }\nvoid vsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5C); }\nvoid vsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5C); }\nvoid vsubsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_X | T_N8, 0x5C); }\nvoid vsubss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_X | T_N4, 0x5C); }\nvoid vtestpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x0F); }\nvoid vtestps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x0E); }\nvoid vucomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_66 | T_0F | T_EW1 | T_EVEX | T_SAE_X, 0x2E); }\nvoid vucomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x2E); }\nvoid vunpckhpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x15); }\nvoid vunpckhps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x15); }\nvoid vunpcklpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x14); }\nvoid vunpcklps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x14); }\nvoid vxorpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x57); }\nvoid vxorps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x57); }\nvoid vzeroall() { db(0xC5); db(0xFC); db(0x77); }\nvoid vzeroupper() { db(0xC5); db(0xF8); db(0x77); }\nvoid wait() { db(0x9B); }\nvoid wbinvd() { db(0x0F); db(0x09); }\nvoid wrmsr() { db(0x0F); db(0x30); }\nvoid xabort(uint8_t imm) { db(0xC6); db(0xF8); db(imm); }\nvoid xadd(const Operand& op, const Reg& reg) { opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xC0 | (reg.isBit(8) ? 0 : 1)); }\nvoid xbegin(uint32_t rel) { db(0xC7); db(0xF8); dd(rel); }\nvoid xend() { db(0x0F); db(0x01); db(0xD5); }\nvoid xgetbv() { db(0x0F); db(0x01); db(0xD0); }\nvoid xlatb() { db(0xD7); }\nvoid xor_(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x30, 6); }\nvoid xor_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x30); }\nvoid xorpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x57, 0x66, isXMM_XMMorMEM); }\nvoid xorps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x57, 0x100, isXMM_XMMorMEM); }\n#ifdef XBYAK_ENABLE_OMITTED_OPERAND\nvoid vblendpd(const Xmm& x, const Operand& op, uint8_t imm) { vblendpd(x, x, op, imm); }\nvoid vblendps(const Xmm& x, const Operand& op, uint8_t imm) { vblendps(x, x, op, imm); }\nvoid vblendvpd(const Xmm& x1, const Operand& op, const Xmm& x4) { vblendvpd(x1, x1, op, x4); }\nvoid vblendvps(const Xmm& x1, const Operand& op, const Xmm& x4) { vblendvps(x1, x1, op, x4); }\nvoid vcmpeq_ospd(const Xmm& x, const Operand& op) { vcmpeq_ospd(x, x, op); }\nvoid vcmpeq_osps(const Xmm& x, const Operand& op) { vcmpeq_osps(x, x, op); }\nvoid vcmpeq_ossd(const Xmm& x, const Operand& op) { vcmpeq_ossd(x, x, op); }\nvoid vcmpeq_osss(const Xmm& x, const Operand& op) { vcmpeq_osss(x, x, op); }\nvoid vcmpeq_uqpd(const Xmm& x, const Operand& op) { vcmpeq_uqpd(x, x, op); }\nvoid vcmpeq_uqps(const Xmm& x, const Operand& op) { vcmpeq_uqps(x, x, op); }\nvoid vcmpeq_uqsd(const Xmm& x, const Operand& op) { vcmpeq_uqsd(x, x, op); }\nvoid vcmpeq_uqss(const Xmm& x, const Operand& op) { vcmpeq_uqss(x, x, op); }\nvoid vcmpeq_uspd(const Xmm& x, const Operand& op) { vcmpeq_uspd(x, x, op); }\nvoid vcmpeq_usps(const Xmm& x, const Operand& op) { vcmpeq_usps(x, x, op); }\nvoid vcmpeq_ussd(const Xmm& x, const Operand& op) { vcmpeq_ussd(x, x, op); }\nvoid vcmpeq_usss(const Xmm& x, const Operand& op) { vcmpeq_usss(x, x, op); }\nvoid vcmpeqpd(const Xmm& x, const Operand& op) { vcmpeqpd(x, x, op); }\nvoid vcmpeqps(const Xmm& x, const Operand& op) { vcmpeqps(x, x, op); }\nvoid vcmpeqsd(const Xmm& x, const Operand& op) { vcmpeqsd(x, x, op); }\nvoid vcmpeqss(const Xmm& x, const Operand& op) { vcmpeqss(x, x, op); }\nvoid vcmpfalse_ospd(const Xmm& x, const Operand& op) { vcmpfalse_ospd(x, x, op); }\nvoid vcmpfalse_osps(const Xmm& x, const Operand& op) { vcmpfalse_osps(x, x, op); }\nvoid vcmpfalse_ossd(const Xmm& x, const Operand& op) { vcmpfalse_ossd(x, x, op); }\nvoid vcmpfalse_osss(const Xmm& x, const Operand& op) { vcmpfalse_osss(x, x, op); }\nvoid vcmpfalsepd(const Xmm& x, const Operand& op) { vcmpfalsepd(x, x, op); }\nvoid vcmpfalseps(const Xmm& x, const Operand& op) { vcmpfalseps(x, x, op); }\nvoid vcmpfalsesd(const Xmm& x, const Operand& op) { vcmpfalsesd(x, x, op); }\nvoid vcmpfalsess(const Xmm& x, const Operand& op) { vcmpfalsess(x, x, op); }\nvoid vcmpge_oqpd(const Xmm& x, const Operand& op) { vcmpge_oqpd(x, x, op); }\nvoid vcmpge_oqps(const Xmm& x, const Operand& op) { vcmpge_oqps(x, x, op); }\nvoid vcmpge_oqsd(const Xmm& x, const Operand& op) { vcmpge_oqsd(x, x, op); }\nvoid vcmpge_oqss(const Xmm& x, const Operand& op) { vcmpge_oqss(x, x, op); }\nvoid vcmpgepd(const Xmm& x, const Operand& op) { vcmpgepd(x, x, op); }\nvoid vcmpgeps(const Xmm& x, const Operand& op) { vcmpgeps(x, x, op); }\nvoid vcmpgesd(const Xmm& x, const Operand& op) { vcmpgesd(x, x, op); }\nvoid vcmpgess(const Xmm& x, const Operand& op) { vcmpgess(x, x, op); }\nvoid vcmpgt_oqpd(const Xmm& x, const Operand& op) { vcmpgt_oqpd(x, x, op); }\nvoid vcmpgt_oqps(const Xmm& x, const Operand& op) { vcmpgt_oqps(x, x, op); }\nvoid vcmpgt_oqsd(const Xmm& x, const Operand& op) { vcmpgt_oqsd(x, x, op); }\nvoid vcmpgt_oqss(const Xmm& x, const Operand& op) { vcmpgt_oqss(x, x, op); }\nvoid vcmpgtpd(const Xmm& x, const Operand& op) { vcmpgtpd(x, x, op); }\nvoid vcmpgtps(const Xmm& x, const Operand& op) { vcmpgtps(x, x, op); }\nvoid vcmpgtsd(const Xmm& x, const Operand& op) { vcmpgtsd(x, x, op); }\nvoid vcmpgtss(const Xmm& x, const Operand& op) { vcmpgtss(x, x, op); }\nvoid vcmple_oqpd(const Xmm& x, const Operand& op) { vcmple_oqpd(x, x, op); }\nvoid vcmple_oqps(const Xmm& x, const Operand& op) { vcmple_oqps(x, x, op); }\nvoid vcmple_oqsd(const Xmm& x, const Operand& op) { vcmple_oqsd(x, x, op); }\nvoid vcmple_oqss(const Xmm& x, const Operand& op) { vcmple_oqss(x, x, op); }\nvoid vcmplepd(const Xmm& x, const Operand& op) { vcmplepd(x, x, op); }\nvoid vcmpleps(const Xmm& x, const Operand& op) { vcmpleps(x, x, op); }\nvoid vcmplesd(const Xmm& x, const Operand& op) { vcmplesd(x, x, op); }\nvoid vcmpless(const Xmm& x, const Operand& op) { vcmpless(x, x, op); }\nvoid vcmplt_oqpd(const Xmm& x, const Operand& op) { vcmplt_oqpd(x, x, op); }\nvoid vcmplt_oqps(const Xmm& x, const Operand& op) { vcmplt_oqps(x, x, op); }\nvoid vcmplt_oqsd(const Xmm& x, const Operand& op) { vcmplt_oqsd(x, x, op); }\nvoid vcmplt_oqss(const Xmm& x, const Operand& op) { vcmplt_oqss(x, x, op); }\nvoid vcmpltpd(const Xmm& x, const Operand& op) { vcmpltpd(x, x, op); }\nvoid vcmpltps(const Xmm& x, const Operand& op) { vcmpltps(x, x, op); }\nvoid vcmpltsd(const Xmm& x, const Operand& op) { vcmpltsd(x, x, op); }\nvoid vcmpltss(const Xmm& x, const Operand& op) { vcmpltss(x, x, op); }\nvoid vcmpneq_oqpd(const Xmm& x, const Operand& op) { vcmpneq_oqpd(x, x, op); }\nvoid vcmpneq_oqps(const Xmm& x, const Operand& op) { vcmpneq_oqps(x, x, op); }\nvoid vcmpneq_oqsd(const Xmm& x, const Operand& op) { vcmpneq_oqsd(x, x, op); }\nvoid vcmpneq_oqss(const Xmm& x, const Operand& op) { vcmpneq_oqss(x, x, op); }\nvoid vcmpneq_ospd(const Xmm& x, const Operand& op) { vcmpneq_ospd(x, x, op); }\nvoid vcmpneq_osps(const Xmm& x, const Operand& op) { vcmpneq_osps(x, x, op); }\nvoid vcmpneq_ossd(const Xmm& x, const Operand& op) { vcmpneq_ossd(x, x, op); }\nvoid vcmpneq_osss(const Xmm& x, const Operand& op) { vcmpneq_osss(x, x, op); }\nvoid vcmpneq_uspd(const Xmm& x, const Operand& op) { vcmpneq_uspd(x, x, op); }\nvoid vcmpneq_usps(const Xmm& x, const Operand& op) { vcmpneq_usps(x, x, op); }\nvoid vcmpneq_ussd(const Xmm& x, const Operand& op) { vcmpneq_ussd(x, x, op); }\nvoid vcmpneq_usss(const Xmm& x, const Operand& op) { vcmpneq_usss(x, x, op); }\nvoid vcmpneqpd(const Xmm& x, const Operand& op) { vcmpneqpd(x, x, op); }\nvoid vcmpneqps(const Xmm& x, const Operand& op) { vcmpneqps(x, x, op); }\nvoid vcmpneqsd(const Xmm& x, const Operand& op) { vcmpneqsd(x, x, op); }\nvoid vcmpneqss(const Xmm& x, const Operand& op) { vcmpneqss(x, x, op); }\nvoid vcmpnge_uqpd(const Xmm& x, const Operand& op) { vcmpnge_uqpd(x, x, op); }\nvoid vcmpnge_uqps(const Xmm& x, const Operand& op) { vcmpnge_uqps(x, x, op); }\nvoid vcmpnge_uqsd(const Xmm& x, const Operand& op) { vcmpnge_uqsd(x, x, op); }\nvoid vcmpnge_uqss(const Xmm& x, const Operand& op) { vcmpnge_uqss(x, x, op); }\nvoid vcmpngepd(const Xmm& x, const Operand& op) { vcmpngepd(x, x, op); }\nvoid vcmpngeps(const Xmm& x, const Operand& op) { vcmpngeps(x, x, op); }\nvoid vcmpngesd(const Xmm& x, const Operand& op) { vcmpngesd(x, x, op); }\nvoid vcmpngess(const Xmm& x, const Operand& op) { vcmpngess(x, x, op); }\nvoid vcmpngt_uqpd(const Xmm& x, const Operand& op) { vcmpngt_uqpd(x, x, op); }\nvoid vcmpngt_uqps(const Xmm& x, const Operand& op) { vcmpngt_uqps(x, x, op); }\nvoid vcmpngt_uqsd(const Xmm& x, const Operand& op) { vcmpngt_uqsd(x, x, op); }\nvoid vcmpngt_uqss(const Xmm& x, const Operand& op) { vcmpngt_uqss(x, x, op); }\nvoid vcmpngtpd(const Xmm& x, const Operand& op) { vcmpngtpd(x, x, op); }\nvoid vcmpngtps(const Xmm& x, const Operand& op) { vcmpngtps(x, x, op); }\nvoid vcmpngtsd(const Xmm& x, const Operand& op) { vcmpngtsd(x, x, op); }\nvoid vcmpngtss(const Xmm& x, const Operand& op) { vcmpngtss(x, x, op); }\nvoid vcmpnle_uqpd(const Xmm& x, const Operand& op) { vcmpnle_uqpd(x, x, op); }\nvoid vcmpnle_uqps(const Xmm& x, const Operand& op) { vcmpnle_uqps(x, x, op); }\nvoid vcmpnle_uqsd(const Xmm& x, const Operand& op) { vcmpnle_uqsd(x, x, op); }\nvoid vcmpnle_uqss(const Xmm& x, const Operand& op) { vcmpnle_uqss(x, x, op); }\nvoid vcmpnlepd(const Xmm& x, const Operand& op) { vcmpnlepd(x, x, op); }\nvoid vcmpnleps(const Xmm& x, const Operand& op) { vcmpnleps(x, x, op); }\nvoid vcmpnlesd(const Xmm& x, const Operand& op) { vcmpnlesd(x, x, op); }\nvoid vcmpnless(const Xmm& x, const Operand& op) { vcmpnless(x, x, op); }\nvoid vcmpnlt_uqpd(const Xmm& x, const Operand& op) { vcmpnlt_uqpd(x, x, op); }\nvoid vcmpnlt_uqps(const Xmm& x, const Operand& op) { vcmpnlt_uqps(x, x, op); }\nvoid vcmpnlt_uqsd(const Xmm& x, const Operand& op) { vcmpnlt_uqsd(x, x, op); }\nvoid vcmpnlt_uqss(const Xmm& x, const Operand& op) { vcmpnlt_uqss(x, x, op); }\nvoid vcmpnltpd(const Xmm& x, const Operand& op) { vcmpnltpd(x, x, op); }\nvoid vcmpnltps(const Xmm& x, const Operand& op) { vcmpnltps(x, x, op); }\nvoid vcmpnltsd(const Xmm& x, const Operand& op) { vcmpnltsd(x, x, op); }\nvoid vcmpnltss(const Xmm& x, const Operand& op) { vcmpnltss(x, x, op); }\nvoid vcmpord_spd(const Xmm& x, const Operand& op) { vcmpord_spd(x, x, op); }\nvoid vcmpord_sps(const Xmm& x, const Operand& op) { vcmpord_sps(x, x, op); }\nvoid vcmpord_ssd(const Xmm& x, const Operand& op) { vcmpord_ssd(x, x, op); }\nvoid vcmpord_sss(const Xmm& x, const Operand& op) { vcmpord_sss(x, x, op); }\nvoid vcmpordpd(const Xmm& x, const Operand& op) { vcmpordpd(x, x, op); }\nvoid vcmpordps(const Xmm& x, const Operand& op) { vcmpordps(x, x, op); }\nvoid vcmpordsd(const Xmm& x, const Operand& op) { vcmpordsd(x, x, op); }\nvoid vcmpordss(const Xmm& x, const Operand& op) { vcmpordss(x, x, op); }\nvoid vcmppd(const Xmm& x, const Operand& op, uint8_t imm) { vcmppd(x, x, op, imm); }\nvoid vcmpps(const Xmm& x, const Operand& op, uint8_t imm) { vcmpps(x, x, op, imm); }\nvoid vcmpsd(const Xmm& x, const Operand& op, uint8_t imm) { vcmpsd(x, x, op, imm); }\nvoid vcmpss(const Xmm& x, const Operand& op, uint8_t imm) { vcmpss(x, x, op, imm); }\nvoid vcmptrue_uspd(const Xmm& x, const Operand& op) { vcmptrue_uspd(x, x, op); }\nvoid vcmptrue_usps(const Xmm& x, const Operand& op) { vcmptrue_usps(x, x, op); }\nvoid vcmptrue_ussd(const Xmm& x, const Operand& op) { vcmptrue_ussd(x, x, op); }\nvoid vcmptrue_usss(const Xmm& x, const Operand& op) { vcmptrue_usss(x, x, op); }\nvoid vcmptruepd(const Xmm& x, const Operand& op) { vcmptruepd(x, x, op); }\nvoid vcmptrueps(const Xmm& x, const Operand& op) { vcmptrueps(x, x, op); }\nvoid vcmptruesd(const Xmm& x, const Operand& op) { vcmptruesd(x, x, op); }\nvoid vcmptruess(const Xmm& x, const Operand& op) { vcmptruess(x, x, op); }\nvoid vcmpunord_spd(const Xmm& x, const Operand& op) { vcmpunord_spd(x, x, op); }\nvoid vcmpunord_sps(const Xmm& x, const Operand& op) { vcmpunord_sps(x, x, op); }\nvoid vcmpunord_ssd(const Xmm& x, const Operand& op) { vcmpunord_ssd(x, x, op); }\nvoid vcmpunord_sss(const Xmm& x, const Operand& op) { vcmpunord_sss(x, x, op); }\nvoid vcmpunordpd(const Xmm& x, const Operand& op) { vcmpunordpd(x, x, op); }\nvoid vcmpunordps(const Xmm& x, const Operand& op) { vcmpunordps(x, x, op); }\nvoid vcmpunordsd(const Xmm& x, const Operand& op) { vcmpunordsd(x, x, op); }\nvoid vcmpunordss(const Xmm& x, const Operand& op) { vcmpunordss(x, x, op); }\nvoid vcvtsd2ss(const Xmm& x, const Operand& op) { vcvtsd2ss(x, x, op); }\nvoid vcvtsi2sd(const Xmm& x, const Operand& op) { vcvtsi2sd(x, x, op); }\nvoid vcvtsi2ss(const Xmm& x, const Operand& op) { vcvtsi2ss(x, x, op); }\nvoid vcvtss2sd(const Xmm& x, const Operand& op) { vcvtss2sd(x, x, op); }\nvoid vdppd(const Xmm& x, const Operand& op, uint8_t imm) { vdppd(x, x, op, imm); }\nvoid vdpps(const Xmm& x, const Operand& op, uint8_t imm) { vdpps(x, x, op, imm); }\nvoid vinsertps(const Xmm& x, const Operand& op, uint8_t imm) { vinsertps(x, x, op, imm); }\nvoid vmpsadbw(const Xmm& x, const Operand& op, uint8_t imm) { vmpsadbw(x, x, op, imm); }\nvoid vpackssdw(const Xmm& x, const Operand& op) { vpackssdw(x, x, op); }\nvoid vpacksswb(const Xmm& x, const Operand& op) { vpacksswb(x, x, op); }\nvoid vpackusdw(const Xmm& x, const Operand& op) { vpackusdw(x, x, op); }\nvoid vpackuswb(const Xmm& x, const Operand& op) { vpackuswb(x, x, op); }\nvoid vpaddb(const Xmm& x, const Operand& op) { vpaddb(x, x, op); }\nvoid vpaddd(const Xmm& x, const Operand& op) { vpaddd(x, x, op); }\nvoid vpaddq(const Xmm& x, const Operand& op) { vpaddq(x, x, op); }\nvoid vpaddsb(const Xmm& x, const Operand& op) { vpaddsb(x, x, op); }\nvoid vpaddsw(const Xmm& x, const Operand& op) { vpaddsw(x, x, op); }\nvoid vpaddusb(const Xmm& x, const Operand& op) { vpaddusb(x, x, op); }\nvoid vpaddusw(const Xmm& x, const Operand& op) { vpaddusw(x, x, op); }\nvoid vpaddw(const Xmm& x, const Operand& op) { vpaddw(x, x, op); }\nvoid vpalignr(const Xmm& x, const Operand& op, uint8_t imm) { vpalignr(x, x, op, imm); }\nvoid vpand(const Xmm& x, const Operand& op) { vpand(x, x, op); }\nvoid vpandn(const Xmm& x, const Operand& op) { vpandn(x, x, op); }\nvoid vpavgb(const Xmm& x, const Operand& op) { vpavgb(x, x, op); }\nvoid vpavgw(const Xmm& x, const Operand& op) { vpavgw(x, x, op); }\nvoid vpblendd(const Xmm& x, const Operand& op, uint8_t imm) { vpblendd(x, x, op, imm); }\nvoid vpblendvb(const Xmm& x1, const Operand& op, const Xmm& x4) { vpblendvb(x1, x1, op, x4); }\nvoid vpblendw(const Xmm& x, const Operand& op, uint8_t imm) { vpblendw(x, x, op, imm); }\nvoid vpclmulqdq(const Xmm& x, const Operand& op, uint8_t imm) { vpclmulqdq(x, x, op, imm); }\nvoid vpcmpeqb(const Xmm& x, const Operand& op) { vpcmpeqb(x, x, op); }\nvoid vpcmpeqd(const Xmm& x, const Operand& op) { vpcmpeqd(x, x, op); }\nvoid vpcmpeqq(const Xmm& x, const Operand& op) { vpcmpeqq(x, x, op); }\nvoid vpcmpeqw(const Xmm& x, const Operand& op) { vpcmpeqw(x, x, op); }\nvoid vpcmpgtb(const Xmm& x, const Operand& op) { vpcmpgtb(x, x, op); }\nvoid vpcmpgtd(const Xmm& x, const Operand& op) { vpcmpgtd(x, x, op); }\nvoid vpcmpgtq(const Xmm& x, const Operand& op) { vpcmpgtq(x, x, op); }\nvoid vpcmpgtw(const Xmm& x, const Operand& op) { vpcmpgtw(x, x, op); }\nvoid vphaddd(const Xmm& x, const Operand& op) { vphaddd(x, x, op); }\nvoid vphaddsw(const Xmm& x, const Operand& op) { vphaddsw(x, x, op); }\nvoid vphaddw(const Xmm& x, const Operand& op) { vphaddw(x, x, op); }\nvoid vphsubd(const Xmm& x, const Operand& op) { vphsubd(x, x, op); }\nvoid vphsubsw(const Xmm& x, const Operand& op) { vphsubsw(x, x, op); }\nvoid vphsubw(const Xmm& x, const Operand& op) { vphsubw(x, x, op); }\nvoid vpinsrb(const Xmm& x, const Operand& op, uint8_t imm) { vpinsrb(x, x, op, imm); }\nvoid vpinsrd(const Xmm& x, const Operand& op, uint8_t imm) { vpinsrd(x, x, op, imm); }\nvoid vpinsrq(const Xmm& x, const Operand& op, uint8_t imm) { vpinsrq(x, x, op, imm); }\nvoid vpinsrw(const Xmm& x, const Operand& op, uint8_t imm) { vpinsrw(x, x, op, imm); }\nvoid vpmaddubsw(const Xmm& x, const Operand& op) { vpmaddubsw(x, x, op); }\nvoid vpmaddwd(const Xmm& x, const Operand& op) { vpmaddwd(x, x, op); }\nvoid vpmaxsb(const Xmm& x, const Operand& op) { vpmaxsb(x, x, op); }\nvoid vpmaxsd(const Xmm& x, const Operand& op) { vpmaxsd(x, x, op); }\nvoid vpmaxsw(const Xmm& x, const Operand& op) { vpmaxsw(x, x, op); }\nvoid vpmaxub(const Xmm& x, const Operand& op) { vpmaxub(x, x, op); }\nvoid vpmaxud(const Xmm& x, const Operand& op) { vpmaxud(x, x, op); }\nvoid vpmaxuw(const Xmm& x, const Operand& op) { vpmaxuw(x, x, op); }\nvoid vpminsb(const Xmm& x, const Operand& op) { vpminsb(x, x, op); }\nvoid vpminsd(const Xmm& x, const Operand& op) { vpminsd(x, x, op); }\nvoid vpminsw(const Xmm& x, const Operand& op) { vpminsw(x, x, op); }\nvoid vpminub(const Xmm& x, const Operand& op) { vpminub(x, x, op); }\nvoid vpminud(const Xmm& x, const Operand& op) { vpminud(x, x, op); }\nvoid vpminuw(const Xmm& x, const Operand& op) { vpminuw(x, x, op); }\nvoid vpmuldq(const Xmm& x, const Operand& op) { vpmuldq(x, x, op); }\nvoid vpmulhrsw(const Xmm& x, const Operand& op) { vpmulhrsw(x, x, op); }\nvoid vpmulhuw(const Xmm& x, const Operand& op) { vpmulhuw(x, x, op); }\nvoid vpmulhw(const Xmm& x, const Operand& op) { vpmulhw(x, x, op); }\nvoid vpmulld(const Xmm& x, const Operand& op) { vpmulld(x, x, op); }\nvoid vpmullw(const Xmm& x, const Operand& op) { vpmullw(x, x, op); }\nvoid vpmuludq(const Xmm& x, const Operand& op) { vpmuludq(x, x, op); }\nvoid vpor(const Xmm& x, const Operand& op) { vpor(x, x, op); }\nvoid vpsadbw(const Xmm& x, const Operand& op) { vpsadbw(x, x, op); }\nvoid vpsignb(const Xmm& x, const Operand& op) { vpsignb(x, x, op); }\nvoid vpsignd(const Xmm& x, const Operand& op) { vpsignd(x, x, op); }\nvoid vpsignw(const Xmm& x, const Operand& op) { vpsignw(x, x, op); }\nvoid vpslld(const Xmm& x, const Operand& op) { vpslld(x, x, op); }\nvoid vpslld(const Xmm& x, uint8_t imm) { vpslld(x, x, imm); }\nvoid vpslldq(const Xmm& x, uint8_t imm) { vpslldq(x, x, imm); }\nvoid vpsllq(const Xmm& x, const Operand& op) { vpsllq(x, x, op); }\nvoid vpsllq(const Xmm& x, uint8_t imm) { vpsllq(x, x, imm); }\nvoid vpsllw(const Xmm& x, const Operand& op) { vpsllw(x, x, op); }\nvoid vpsllw(const Xmm& x, uint8_t imm) { vpsllw(x, x, imm); }\nvoid vpsrad(const Xmm& x, const Operand& op) { vpsrad(x, x, op); }\nvoid vpsrad(const Xmm& x, uint8_t imm) { vpsrad(x, x, imm); }\nvoid vpsraw(const Xmm& x, const Operand& op) { vpsraw(x, x, op); }\nvoid vpsraw(const Xmm& x, uint8_t imm) { vpsraw(x, x, imm); }\nvoid vpsrld(const Xmm& x, const Operand& op) { vpsrld(x, x, op); }\nvoid vpsrld(const Xmm& x, uint8_t imm) { vpsrld(x, x, imm); }\nvoid vpsrldq(const Xmm& x, uint8_t imm) { vpsrldq(x, x, imm); }\nvoid vpsrlq(const Xmm& x, const Operand& op) { vpsrlq(x, x, op); }\nvoid vpsrlq(const Xmm& x, uint8_t imm) { vpsrlq(x, x, imm); }\nvoid vpsrlw(const Xmm& x, const Operand& op) { vpsrlw(x, x, op); }\nvoid vpsrlw(const Xmm& x, uint8_t imm) { vpsrlw(x, x, imm); }\nvoid vpsubb(const Xmm& x, const Operand& op) { vpsubb(x, x, op); }\nvoid vpsubd(const Xmm& x, const Operand& op) { vpsubd(x, x, op); }\nvoid vpsubq(const Xmm& x, const Operand& op) { vpsubq(x, x, op); }\nvoid vpsubsb(const Xmm& x, const Operand& op) { vpsubsb(x, x, op); }\nvoid vpsubsw(const Xmm& x, const Operand& op) { vpsubsw(x, x, op); }\nvoid vpsubusb(const Xmm& x, const Operand& op) { vpsubusb(x, x, op); }\nvoid vpsubusw(const Xmm& x, const Operand& op) { vpsubusw(x, x, op); }\nvoid vpsubw(const Xmm& x, const Operand& op) { vpsubw(x, x, op); }\nvoid vpunpckhbw(const Xmm& x, const Operand& op) { vpunpckhbw(x, x, op); }\nvoid vpunpckhdq(const Xmm& x, const Operand& op) { vpunpckhdq(x, x, op); }\nvoid vpunpckhqdq(const Xmm& x, const Operand& op) { vpunpckhqdq(x, x, op); }\nvoid vpunpckhwd(const Xmm& x, const Operand& op) { vpunpckhwd(x, x, op); }\nvoid vpunpcklbw(const Xmm& x, const Operand& op) { vpunpcklbw(x, x, op); }\nvoid vpunpckldq(const Xmm& x, const Operand& op) { vpunpckldq(x, x, op); }\nvoid vpunpcklqdq(const Xmm& x, const Operand& op) { vpunpcklqdq(x, x, op); }\nvoid vpunpcklwd(const Xmm& x, const Operand& op) { vpunpcklwd(x, x, op); }\nvoid vpxor(const Xmm& x, const Operand& op) { vpxor(x, x, op); }\nvoid vrcpss(const Xmm& x, const Operand& op) { vrcpss(x, x, op); }\nvoid vroundsd(const Xmm& x, const Operand& op, uint8_t imm) { vroundsd(x, x, op, imm); }\nvoid vroundss(const Xmm& x, const Operand& op, uint8_t imm) { vroundss(x, x, op, imm); }\nvoid vrsqrtss(const Xmm& x, const Operand& op) { vrsqrtss(x, x, op); }\nvoid vshufpd(const Xmm& x, const Operand& op, uint8_t imm) { vshufpd(x, x, op, imm); }\nvoid vshufps(const Xmm& x, const Operand& op, uint8_t imm) { vshufps(x, x, op, imm); }\nvoid vsqrtsd(const Xmm& x, const Operand& op) { vsqrtsd(x, x, op); }\nvoid vsqrtss(const Xmm& x, const Operand& op) { vsqrtss(x, x, op); }\nvoid vunpckhpd(const Xmm& x, const Operand& op) { vunpckhpd(x, x, op); }\nvoid vunpckhps(const Xmm& x, const Operand& op) { vunpckhps(x, x, op); }\nvoid vunpcklpd(const Xmm& x, const Operand& op) { vunpcklpd(x, x, op); }\nvoid vunpcklps(const Xmm& x, const Operand& op) { vunpcklps(x, x, op); }\n#endif\n#ifdef XBYAK64\nvoid jecxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid jecxz(const Label& label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid jrcxz(std::string label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid jrcxz(const Label& label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid cdqe() { db(0x48); db(0x98); }\nvoid cqo() { db(0x48); db(0x99); }\nvoid cmpsq() { db(0x48); db(0xA7); }\nvoid popfq() { db(0x9D); }\nvoid pushfq() { db(0x9C); }\nvoid lodsq() { db(0x48); db(0xAD); }\nvoid movsq() { db(0x48); db(0xA5); }\nvoid scasq() { db(0x48); db(0xAF); }\nvoid stosq() { db(0x48); db(0xAB); }\nvoid syscall() { db(0x0F); db(0x05); }\nvoid sysret() { db(0x0F); db(0x07); }\nvoid clui() { db(0xF3); db(0x0F); db(0x01); db(0xEE); }\nvoid stui() { db(0xF3); db(0x0F); db(0x01); db(0xEF); }\nvoid testui() { db(0xF3); db(0x0F); db(0x01); db(0xED); }\nvoid uiret() { db(0xF3); db(0x0F); db(0x01); db(0xEC); }\nvoid cmpxchg16b(const Address& addr) { opModM(addr, Reg64(1), 0x0F, 0xC7); }\nvoid fxrstor64(const Address& addr) { opModM(addr, Reg64(1), 0x0F, 0xAE); }\nvoid movq(const Reg64& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x7E); }\nvoid movq(const Mmx& mmx, const Reg64& reg) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x6E); }\nvoid movsxd(const Reg64& reg, const Operand& op) { if (!op.isBit(32)) XBYAK_THROW(ERR_BAD_COMBINATION) opModRM(reg, op, op.isREG(), op.isMEM(), 0x63); }\nvoid pextrq(const Operand& op, const Xmm& xmm, uint8_t imm) { if (!op.isREG(64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, 0x3A); }\nvoid pinsrq(const Xmm& xmm, const Operand& op, uint8_t imm) { if (!op.isREG(64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, 0x3A); }\nvoid senduipi(const Reg64& r) { db(0xF3); opModR(Reg32(6), r.cvt32(), 0x0F, 0xC7); }\nvoid vcvtss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_ER_X | T_N8, 0x2D); }\nvoid vcvttss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_SAE_X | T_N8, 0x2C); }\nvoid vcvtsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W1 | T_EVEX | T_EW1 | T_N4 | T_ER_X, 0x2D); }\nvoid vcvttsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W1 | T_EVEX | T_EW1 | T_N4 | T_SAE_X, 0x2C); }\nvoid vmovq(const Xmm& x, const Reg64& r) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), T_66 | T_0F | T_W1 | T_EVEX | T_EW1, 0x6E); }\nvoid vmovq(const Reg64& r, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), T_66 | T_0F | T_W1 | T_EVEX | T_EW1, 0x7E); }\nvoid cmpbexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE6, false); }\nvoid cmpbxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE2, false); }\nvoid cmplexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEE, false); }\nvoid cmplxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEC, false); }\nvoid cmpnbexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE7, false); }\nvoid cmpnbxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE3, false); }\nvoid cmpnlexadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEF, false); }\nvoid cmpnlxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xED, false); }\nvoid cmpnoxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE1, false); }\nvoid cmpnpxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEB, false); }\nvoid cmpnsxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE9, false); }\nvoid cmpnzxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE5, false); }\nvoid cmpoxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE0, false); }\nvoid cmppxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xEA, false); }\nvoid cmpsxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE8, false); }\nvoid cmpzxadd(const Address& addr, const Reg32e& r1, const Reg32e& r2) { opGpr(r1, addr, r2, T_66 | T_0F38, 0xE4, false); }\nvoid ldtilecfg(const Address& addr) { opVex(tmm0, &tmm0, addr, T_0F38 | T_W0, 0x49); }\nvoid sttilecfg(const Address& addr) { opVex(tmm0, &tmm0, addr, T_66 | T_0F38 | T_W0, 0x49); }\nvoid tileloadd(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_F2 | T_0F38 | T_W0, 0x4b); }\nvoid tileloaddt1(const Tmm& tm, const Address& addr) { opAMX(tm, addr, T_66 | T_0F38 | T_W0, 0x4b); }\nvoid tilerelease() { db(0xc4); db(0xe2); db(0x78); db(0x49); db(0xc0); }\nvoid tilestored(const Address& addr, const Tmm& tm) { opVex(tm, &tmm0, addr, T_F3 | T_0F38 | T_W0, 0x4b); }\nvoid tilezero(const Tmm& Tmm) { opVex(Tmm, &tmm0, tmm0, T_F2 | T_0F38 | T_W0, 0x49); }\nvoid tdpbssd(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_F2 | T_0F38 | T_W0, 0x5e); }\nvoid tdpbsud(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_F3 | T_0F38 | T_W0, 0x5e); }\nvoid tdpbusd(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_66 | T_0F38 | T_W0, 0x5e); }\nvoid tdpbuud(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_0F38 | T_W0, 0x5e); }\nvoid tdpfp16ps(const Tmm &x1, const Tmm &x2, const Tmm &x3) { opVex(x1, &x3, x2, T_F2 | T_0F38 | T_W0, 0x5c); }\nvoid tdpbf16ps(const Tmm& x1, const Tmm& x2, const Tmm& x3) { opVex(x1, &x3, x2, T_F3 | T_0F38 | T_W0, 0x5c); }\n#else\nvoid jcxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid jcxz(const Label& label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid jecxz(std::string label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid jecxz(const Label& label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }\nvoid aaa() { db(0x37); }\nvoid aad() { db(0xD5); db(0x0A); }\nvoid aam() { db(0xD4); db(0x0A); }\nvoid aas() { db(0x3F); }\nvoid daa() { db(0x27); }\nvoid das() { db(0x2F); }\nvoid into() { db(0xCE); }\nvoid popad() { db(0x61); }\nvoid popfd() { db(0x9D); }\nvoid pusha() { db(0x60); }\nvoid pushad() { db(0x60); }\nvoid pushfd() { db(0x9C); }\nvoid popa() { db(0x61); }\nvoid lds(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0xC5, 0x100); }\nvoid les(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0xC4, 0x100); }\n#endif\n#ifndef XBYAK_NO_OP_NAMES\nvoid and(const Operand& op1, const Operand& op2) { and_(op1, op2); }\nvoid and(const Operand& op, uint32_t imm) { and_(op, imm); }\nvoid or(const Operand& op1, const Operand& op2) { or_(op1, op2); }\nvoid or(const Operand& op, uint32_t imm) { or_(op, imm); }\nvoid xor(const Operand& op1, const Operand& op2) { xor_(op1, op2); }\nvoid xor(const Operand& op, uint32_t imm) { xor_(op, imm); }\nvoid not(const Operand& op) { not_(op); }\n#endif\n#ifndef XBYAK_DISABLE_AVX512\nvoid kaddb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x4A); }\nvoid kaddd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x4A); }\nvoid kaddq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x4A); }\nvoid kaddw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x4A); }\nvoid kandb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x41); }\nvoid kandd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x41); }\nvoid kandnb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x42); }\nvoid kandnd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x42); }\nvoid kandnq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x42); }\nvoid kandnw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x42); }\nvoid kandq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x41); }\nvoid kandw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x41); }\nvoid kmovb(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_66 | T_W0, 0x91); }\nvoid kmovb(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W0, 0x90); }\nvoid kmovb(const Opmask& k, const Reg32& r) { opVex(k, 0, r, T_L0 | T_0F | T_66 | T_W0, 0x92); }\nvoid kmovb(const Reg32& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_66 | T_W0, 0x93); }\nvoid kmovd(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_66 | T_W1, 0x91); }\nvoid kmovd(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W1, 0x90); }\nvoid kmovd(const Opmask& k, const Reg32& r) { opVex(k, 0, r, T_L0 | T_0F | T_F2 | T_W0, 0x92); }\nvoid kmovd(const Reg32& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_F2 | T_W0, 0x93); }\nvoid kmovq(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_W1, 0x91); }\nvoid kmovq(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(k, 0, op, T_L0 | T_0F | T_W1, 0x90); }\nvoid kmovw(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_W0, 0x91); }\nvoid kmovw(const Opmask& k, const Operand& op) { if (!op.isMEM() && !op.isOPMASK()) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(k, 0, op, T_L0 | T_0F | T_W0, 0x90); }\nvoid kmovw(const Opmask& k, const Reg32& r) { opVex(k, 0, r, T_L0 | T_0F | T_W0, 0x92); }\nvoid kmovw(const Reg32& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_W0, 0x93); }\nvoid knotb(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W0, 0x44); }\nvoid knotd(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W1, 0x44); }\nvoid knotq(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W1, 0x44); }\nvoid knotw(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W0, 0x44); }\nvoid korb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x45); }\nvoid kord(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x45); }\nvoid korq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x45); }\nvoid kortestb(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W0, 0x98); }\nvoid kortestd(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W1, 0x98); }\nvoid kortestq(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W1, 0x98); }\nvoid kortestw(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W0, 0x98); }\nvoid korw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x45); }\nvoid kshiftlb(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x32, imm); }\nvoid kshiftld(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x33, imm); }\nvoid kshiftlq(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x33, imm); }\nvoid kshiftlw(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x32, imm); }\nvoid kshiftrb(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x30, imm); }\nvoid kshiftrd(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x31, imm); }\nvoid kshiftrq(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x31, imm); }\nvoid kshiftrw(const Opmask& r1, const Opmask& r2, uint8_t imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x30, imm); }\nvoid ktestb(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W0, 0x99); }\nvoid ktestd(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W1, 0x99); }\nvoid ktestq(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W1, 0x99); }\nvoid ktestw(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W0, 0x99); }\nvoid kunpckbw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x4B); }\nvoid kunpckdq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x4B); }\nvoid kunpckwd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x4B); }\nvoid kxnorb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x46); }\nvoid kxnord(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x46); }\nvoid kxnorq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x46); }\nvoid kxnorw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x46); }\nvoid kxorb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x47); }\nvoid kxord(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x47); }\nvoid kxorq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x47); }\nvoid kxorw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x47); }\nvoid v4fmaddps(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0x9A); }\nvoid v4fmaddss(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_F2 | T_EW0 | T_MUST_EVEX | T_N16, 0x9B); }\nvoid v4fnmaddps(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0xAA); }\nvoid v4fnmaddss(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_F2 | T_EW0 | T_MUST_EVEX | T_N16, 0xAB); }\nvoid vaddph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x58); }\nvoid vaddsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x58); }\nvoid valignd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x03, imm); }\nvoid valignq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x03, imm); }\nvoid vblendmpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x65); }\nvoid vblendmps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x65); }\nvoid vbroadcastf32x2(const Ymm& y, const Operand& op) { opAVX_X_XM_IMM(y, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N8, 0x19); }\nvoid vbroadcastf32x4(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N16, 0x1A); }\nvoid vbroadcastf32x8(const Zmm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N32, 0x1B); }\nvoid vbroadcastf64x2(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N16, 0x1A); }\nvoid vbroadcastf64x4(const Zmm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N32, 0x1B); }\nvoid vbroadcasti32x2(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N8, 0x59); }\nvoid vbroadcasti32x4(const Ymm& y, const Operand& op) { opAVX_X_XM_IMM(y, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N16, 0x5A); }\nvoid vbroadcasti32x8(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N32, 0x5B); }\nvoid vbroadcasti64x2(const Ymm& y, const Operand& op) { opAVX_X_XM_IMM(y, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N16, 0x5A); }\nvoid vbroadcasti64x4(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N32, 0x5B); }\nvoid vcmpeq_ospd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 16); }\nvoid vcmpeq_osps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 16); }\nvoid vcmpeq_ossd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 16); }\nvoid vcmpeq_osss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 16); }\nvoid vcmpeq_uqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 8); }\nvoid vcmpeq_uqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 8); }\nvoid vcmpeq_uqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 8); }\nvoid vcmpeq_uqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 8); }\nvoid vcmpeq_uspd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 24); }\nvoid vcmpeq_usps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 24); }\nvoid vcmpeq_ussd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 24); }\nvoid vcmpeq_usss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 24); }\nvoid vcmpeqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 0); }\nvoid vcmpeqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 0); }\nvoid vcmpeqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 0); }\nvoid vcmpeqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 0); }\nvoid vcmpfalse_ospd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 27); }\nvoid vcmpfalse_osps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 27); }\nvoid vcmpfalse_ossd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 27); }\nvoid vcmpfalse_osss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 27); }\nvoid vcmpfalsepd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 11); }\nvoid vcmpfalseps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 11); }\nvoid vcmpfalsesd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 11); }\nvoid vcmpfalsess(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 11); }\nvoid vcmpge_oqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 29); }\nvoid vcmpge_oqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 29); }\nvoid vcmpge_oqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 29); }\nvoid vcmpge_oqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 29); }\nvoid vcmpgepd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 13); }\nvoid vcmpgeps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 13); }\nvoid vcmpgesd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 13); }\nvoid vcmpgess(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 13); }\nvoid vcmpgt_oqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 30); }\nvoid vcmpgt_oqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 30); }\nvoid vcmpgt_oqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 30); }\nvoid vcmpgt_oqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 30); }\nvoid vcmpgtpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 14); }\nvoid vcmpgtps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 14); }\nvoid vcmpgtsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 14); }\nvoid vcmpgtss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 14); }\nvoid vcmple_oqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 18); }\nvoid vcmple_oqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 18); }\nvoid vcmple_oqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 18); }\nvoid vcmple_oqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 18); }\nvoid vcmplepd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 2); }\nvoid vcmpleps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 2); }\nvoid vcmplesd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 2); }\nvoid vcmpless(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 2); }\nvoid vcmplt_oqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 17); }\nvoid vcmplt_oqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 17); }\nvoid vcmplt_oqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 17); }\nvoid vcmplt_oqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 17); }\nvoid vcmpltpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 1); }\nvoid vcmpltps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 1); }\nvoid vcmpltsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 1); }\nvoid vcmpltss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 1); }\nvoid vcmpneq_oqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 12); }\nvoid vcmpneq_oqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 12); }\nvoid vcmpneq_oqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 12); }\nvoid vcmpneq_oqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 12); }\nvoid vcmpneq_ospd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 28); }\nvoid vcmpneq_osps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 28); }\nvoid vcmpneq_ossd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 28); }\nvoid vcmpneq_osss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 28); }\nvoid vcmpneq_uspd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 20); }\nvoid vcmpneq_usps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 20); }\nvoid vcmpneq_ussd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 20); }\nvoid vcmpneq_usss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 20); }\nvoid vcmpneqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 4); }\nvoid vcmpneqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 4); }\nvoid vcmpneqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 4); }\nvoid vcmpneqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 4); }\nvoid vcmpnge_uqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 25); }\nvoid vcmpnge_uqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 25); }\nvoid vcmpnge_uqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 25); }\nvoid vcmpnge_uqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 25); }\nvoid vcmpngepd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 9); }\nvoid vcmpngeps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 9); }\nvoid vcmpngesd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 9); }\nvoid vcmpngess(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 9); }\nvoid vcmpngt_uqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 26); }\nvoid vcmpngt_uqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 26); }\nvoid vcmpngt_uqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 26); }\nvoid vcmpngt_uqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 26); }\nvoid vcmpngtpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 10); }\nvoid vcmpngtps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 10); }\nvoid vcmpngtsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 10); }\nvoid vcmpngtss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 10); }\nvoid vcmpnle_uqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 22); }\nvoid vcmpnle_uqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 22); }\nvoid vcmpnle_uqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 22); }\nvoid vcmpnle_uqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 22); }\nvoid vcmpnlepd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 6); }\nvoid vcmpnleps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 6); }\nvoid vcmpnlesd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 6); }\nvoid vcmpnless(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 6); }\nvoid vcmpnlt_uqpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 21); }\nvoid vcmpnlt_uqps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 21); }\nvoid vcmpnlt_uqsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 21); }\nvoid vcmpnlt_uqss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 21); }\nvoid vcmpnltpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 5); }\nvoid vcmpnltps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 5); }\nvoid vcmpnltsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 5); }\nvoid vcmpnltss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 5); }\nvoid vcmpord_spd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 23); }\nvoid vcmpord_sps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 23); }\nvoid vcmpord_ssd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 23); }\nvoid vcmpord_sss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 23); }\nvoid vcmpordpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 7); }\nvoid vcmpordps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 7); }\nvoid vcmpordsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 7); }\nvoid vcmpordss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 7); }\nvoid vcmppd(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0xC2, imm); }\nvoid vcmpph(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0xC2, imm); }\nvoid vcmpps(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_0F | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0xC2, imm); }\nvoid vcmpsd(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_N8 | T_F2 | T_0F | T_EW1 | T_SAE_Z | T_MUST_EVEX, 0xC2, imm); }\nvoid vcmpsh(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_N2 | T_F3 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0xC2, imm); }\nvoid vcmpss(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_N4 | T_F3 | T_0F | T_EW0 | T_SAE_Z | T_MUST_EVEX, 0xC2, imm); }\nvoid vcmptrue_uspd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 31); }\nvoid vcmptrue_usps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 31); }\nvoid vcmptrue_ussd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 31); }\nvoid vcmptrue_usss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 31); }\nvoid vcmptruepd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 15); }\nvoid vcmptrueps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 15); }\nvoid vcmptruesd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 15); }\nvoid vcmptruess(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 15); }\nvoid vcmpunord_spd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 19); }\nvoid vcmpunord_sps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 19); }\nvoid vcmpunord_ssd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 19); }\nvoid vcmpunord_sss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 19); }\nvoid vcmpunordpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x, op, 3); }\nvoid vcmpunordps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 3); }\nvoid vcmpunordsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 3); }\nvoid vcmpunordss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 3); }\nvoid vcomish(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_MUST_EVEX | T_EW0 | T_SAE_X | T_N2, 0x2F); }\nvoid vcompressb(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x63); }\nvoid vcompresspd(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8A); }\nvoid vcompressps(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8A); }\nvoid vcompressw(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x63); }\nvoid vcvtdq2ph(const Xmm& x, const Operand& op) { checkCvt4(x, op); opCvt(x, op, T_N16 | T_N_VL | T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x5B); }\nvoid vcvtne2ps2bf16(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x72); }\nvoid vcvtpd2ph(const Xmm& x, const Operand& op) { opCvt5(x, op, T_N16 | T_N_VL | T_66 | T_MAP5 | T_EW1 | T_ER_Z | T_MUST_EVEX | T_B64, 0x5A); }\nvoid vcvtpd2qq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x7B); }\nvoid vcvtpd2udq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x79); }\nvoid vcvtpd2uqq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x79); }\nvoid vcvtph2dq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_66 | T_MAP5 | T_EW0 | T_YMM | T_ER_Y | T_MUST_EVEX | T_B16, 0x5B); }\nvoid vcvtph2pd(const Xmm& x, const Operand& op) { if (!op.isXMM() && !op.isMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(x, 0, op, T_N4 | T_N_VL | T_MAP5 | T_EW0 | T_YMM | T_SAE_X | T_MUST_EVEX | T_B16, 0x5A); }\nvoid vcvtph2psx(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_66 | T_MAP6 | T_EW0 | T_YMM | T_SAE_Y | T_MUST_EVEX | T_B16, 0x13); }\nvoid vcvtph2qq(const Xmm& x, const Operand& op) { if (!op.isXMM() && !op.isMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(x, 0, op, T_N4 | T_N_VL | T_66 | T_MAP5 | T_EW0 | T_YMM | T_ER_X | T_MUST_EVEX | T_B16, 0x7B); }\nvoid vcvtph2udq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_MAP5 | T_EW0 | T_YMM | T_ER_Y | T_MUST_EVEX | T_B16, 0x79); }\nvoid vcvtph2uqq(const Xmm& x, const Operand& op) { if (!op.isXMM() && !op.isMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(x, 0, op, T_N4 | T_N_VL | T_66 | T_MAP5 | T_EW0 | T_YMM | T_ER_X | T_MUST_EVEX | T_B16, 0x79); }\nvoid vcvtph2uw(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x7D); }\nvoid vcvtph2w(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x7D); }\nvoid vcvtps2phx(const Xmm& x, const Operand& op) { checkCvt4(x, op); opCvt(x, op, T_N16 | T_N_VL | T_66 | T_MAP5 | T_EW0 | T_ER_Z | T_MUST_EVEX | T_B32, 0x1D); }\nvoid vcvtps2qq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_66 | T_0F | T_EW0 | T_YMM | T_ER_Y | T_MUST_EVEX | T_B32, 0x7B); }\nvoid vcvtps2udq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_0F | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x79); }\nvoid vcvtps2uqq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_66 | T_0F | T_EW0 | T_YMM | T_ER_Y | T_MUST_EVEX | T_B32, 0x79); }\nvoid vcvtqq2pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0xE6); }\nvoid vcvtqq2ph(const Xmm& x, const Operand& op) { opCvt5(x, op, T_N16 | T_N_VL | T_MAP5 | T_EW1 | T_ER_Z | T_MUST_EVEX | T_B64, 0x5B); }\nvoid vcvtqq2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x5B); }\nvoid vcvtsd2sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_MAP5 | T_EW1 | T_ER_X | T_MUST_EVEX, 0x5A); }\nvoid vcvtsd2usi(const Reg32e& r, const Operand& op) { int type = (T_N8 | T_F2 | T_0F | T_ER_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x79); }\nvoid vcvtsh2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_F3 | T_MAP5 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x5A); }\nvoid vcvtsh2si(const Reg32e& r, const Operand& op) { int type = (T_N2 | T_F3 | T_MAP5 | T_ER_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x2D); }\nvoid vcvtsh2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_MAP6 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x13); }\nvoid vcvtsh2usi(const Reg32e& r, const Operand& op) { int type = (T_N2 | T_F3 | T_MAP5 | T_ER_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x79); }\nvoid vcvtsi2sh(const Xmm& x1, const Xmm& x2, const Operand& op) { if (!(x1.isXMM() && x2.isXMM() && op.isBit(32|64))) XBYAK_THROW(ERR_BAD_COMBINATION) int type = (T_F3 | T_MAP5 | T_ER_R | T_MUST_EVEX | T_M_K) | (op.isBit(32) ? (T_EW0 | T_N4) : (T_EW1 | T_N8)); opVex(x1, &x2, op, type, 0x2A); }\nvoid vcvtss2sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_MAP5 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x1D); }\nvoid vcvtss2usi(const Reg32e& r, const Operand& op) { int type = (T_N4 | T_F3 | T_0F | T_ER_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x79); }\nvoid vcvttpd2qq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x7A); }\nvoid vcvttpd2udq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x78); }\nvoid vcvttpd2uqq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x78); }\nvoid vcvttph2dq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_F3 | T_MAP5 | T_EW0 | T_YMM | T_SAE_Y | T_MUST_EVEX | T_B16, 0x5B); }\nvoid vcvttph2qq(const Xmm& x, const Operand& op) { if (!op.isXMM() && !op.isMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(x, 0, op, T_N4 | T_N_VL | T_66 | T_MAP5 | T_EW0 | T_YMM | T_SAE_X | T_MUST_EVEX | T_B16, 0x7A); }\nvoid vcvttph2udq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_MAP5 | T_EW0 | T_YMM | T_SAE_Y | T_MUST_EVEX | T_B16, 0x78); }\nvoid vcvttph2uqq(const Xmm& x, const Operand& op) { if (!op.isXMM() && !op.isMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(x, 0, op, T_N4 | T_N_VL | T_66 | T_MAP5 | T_EW0 | T_YMM | T_SAE_X | T_MUST_EVEX | T_B16, 0x78); }\nvoid vcvttph2uw(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0x7C); }\nvoid vcvttph2w(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_MAP5 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0x7C); }\nvoid vcvttps2qq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_66 | T_0F | T_EW0 | T_YMM | T_SAE_Y | T_MUST_EVEX | T_B32, 0x7A); }\nvoid vcvttps2udq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_0F | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x78); }\nvoid vcvttps2uqq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_66 | T_0F | T_EW0 | T_YMM | T_SAE_Y | T_MUST_EVEX | T_B32, 0x78); }\nvoid vcvttsd2usi(const Reg32e& r, const Operand& op) { int type = (T_N8 | T_F2 | T_0F | T_SAE_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x78); }\nvoid vcvttsh2si(const Reg32e& r, const Operand& op) { int type = (T_N2 | T_F3 | T_MAP5 | T_EW0 | T_SAE_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x2C); }\nvoid vcvttsh2usi(const Reg32e& r, const Operand& op) { int type = (T_N2 | T_F3 | T_MAP5 | T_EW0 | T_SAE_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x78); }\nvoid vcvttss2usi(const Reg32e& r, const Operand& op) { int type = (T_N4 | T_F3 | T_0F | T_SAE_X | T_MUST_EVEX) | (r.isREG(64) ? T_EW1 : T_EW0); opVex(r, &xm0, op, type, 0x78); }\nvoid vcvtudq2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_N8 | T_N_VL | T_F3 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x7A); }\nvoid vcvtudq2ph(const Xmm& x, const Operand& op) { checkCvt4(x, op); opCvt(x, op, T_N16 | T_N_VL | T_F2 | T_MAP5 | T_EW0 | T_ER_Z | T_MUST_EVEX | T_B32, 0x7A); }\nvoid vcvtudq2ps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_0F | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x7A); }\nvoid vcvtuqq2pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x7A); }\nvoid vcvtuqq2ph(const Xmm& x, const Operand& op) { opCvt5(x, op, T_N16 | T_N_VL | T_F2 | T_MAP5 | T_EW1 | T_ER_Z | T_MUST_EVEX | T_B64, 0x7A); }\nvoid vcvtuqq2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_F2 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x7A); }\nvoid vcvtusi2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_F2 | T_0F | T_MUST_EVEX, T_W1 | T_EW1 | T_ER_X | T_N8, T_W0 | T_EW0 | T_N4, 0x7B); }\nvoid vcvtusi2sh(const Xmm& x1, const Xmm& x2, const Operand& op) { if (!(x1.isXMM() && x2.isXMM() && op.isBit(32|64))) XBYAK_THROW(ERR_BAD_COMBINATION) int type = (T_F3 | T_MAP5 | T_ER_R | T_MUST_EVEX | T_M_K) | (op.isBit(32) ? (T_EW0 | T_N4) : (T_EW1 | T_N8)); opVex(x1, &x2, op, type, 0x7B); }\nvoid vcvtusi2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_F3 | T_0F | T_MUST_EVEX | T_ER_X, T_W1 | T_EW1 | T_N8, T_W0 | T_EW0 | T_N4, 0x7B); }\nvoid vcvtuw2ph(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x7D); }\nvoid vcvtw2ph(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x7D); }\nvoid vdbpsadbw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x42, imm); }\nvoid vdivph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x5E); }\nvoid vdivsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x5E); }\nvoid vdpbf16ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x52); }\nvoid vexp2pd(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1 | T_B64 | T_SAE_Z, 0xC8); }\nvoid vexp2ps(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0 | T_B32 | T_SAE_Z, 0xC8); }\nvoid vexpandpd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x88); }\nvoid vexpandps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x88); }\nvoid vextractf32x4(const Operand& op, const Ymm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::XMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x19, imm); }\nvoid vextractf32x8(const Operand& op, const Zmm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x1B, imm); }\nvoid vextractf64x2(const Operand& op, const Ymm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::XMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x19, imm); }\nvoid vextractf64x4(const Operand& op, const Zmm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x1B, imm); }\nvoid vextracti32x4(const Operand& op, const Ymm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::XMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x39, imm); }\nvoid vextracti32x8(const Operand& op, const Zmm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3B, imm); }\nvoid vextracti64x2(const Operand& op, const Ymm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::XMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x39, imm); }\nvoid vextracti64x4(const Operand& op, const Zmm& r, uint8_t imm) { if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3B, imm); }\nvoid vfcmaddcph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x56); }\nvoid vfcmulcph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0xD6); }\nvoid vfixupimmpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x54, imm); }\nvoid vfixupimmps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x54, imm); }\nvoid vfixupimmsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_Z | T_MUST_EVEX, 0x55, imm); }\nvoid vfixupimmss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_Z | T_MUST_EVEX, 0x55, imm); }\nvoid vfmadd132ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x98); }\nvoid vfmadd132sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x99); }\nvoid vfmadd213ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xA8); }\nvoid vfmadd213sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xA9); }\nvoid vfmadd231ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xB8); }\nvoid vfmadd231sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xB9); }\nvoid vfmaddcph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x56); }\nvoid vfmaddsub132ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x96); }\nvoid vfmaddsub213ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xA6); }\nvoid vfmaddsub231ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xB6); }\nvoid vfmsub132ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x9A); }\nvoid vfmsub132sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x9B); }\nvoid vfmsub213ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xAA); }\nvoid vfmsub213sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xAB); }\nvoid vfmsub231ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xBA); }\nvoid vfmsub231sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xBB); }\nvoid vfmsubadd132ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x97); }\nvoid vfmsubadd213ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xA7); }\nvoid vfmsubadd231ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xB7); }\nvoid vfmulcph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0xD6); }\nvoid vfnmadd132ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x9C); }\nvoid vfnmadd132sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x9D); }\nvoid vfnmadd213ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xAC); }\nvoid vfnmadd213sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xAD); }\nvoid vfnmadd231ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xBC); }\nvoid vfnmadd231sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xBD); }\nvoid vfnmsub132ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x9E); }\nvoid vfnmsub132sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x9F); }\nvoid vfnmsub213ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xAE); }\nvoid vfnmsub213sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xAF); }\nvoid vfnmsub231ph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0xBE); }\nvoid vfnmsub231sh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0xBF); }\nvoid vfpclasspd(const Opmask& k, const Operand& op, uint8_t imm) { if (!op.isBit(128|256|512)) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(k.changeBit(op.getBit()), 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_YMM | T_EW1 | T_B64, 0x66, imm); }\nvoid vfpclassph(const Opmask& k, const Operand& op, uint8_t imm) { if (!op.isBit(128|256|512)) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(k.changeBit(op.getBit()), 0, op, T_0F3A | T_MUST_EVEX | T_YMM | T_EW0 | T_B16, 0x66, imm); }\nvoid vfpclassps(const Opmask& k, const Operand& op, uint8_t imm) { if (!op.isBit(128|256|512)) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(k.changeBit(op.getBit()), 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_YMM | T_EW0 | T_B32, 0x66, imm); }\nvoid vfpclasssd(const Opmask& k, const Operand& op, uint8_t imm) { if (!op.isXMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(k, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_EW1 | T_N8, 0x67, imm); }\nvoid vfpclasssh(const Opmask& k, const Operand& op, uint8_t imm) { if (!op.isXMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(k, 0, op, T_0F3A | T_MUST_EVEX | T_EW0 | T_N2, 0x67, imm); }\nvoid vfpclassss(const Opmask& k, const Operand& op, uint8_t imm) { if (!op.isXMEM()) XBYAK_THROW(ERR_BAD_MEM_SIZE) opVex(k, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_EW0 | T_N4, 0x67, imm); }\nvoid vgatherdpd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_VSIB, 0x92, 1); }\nvoid vgatherdps(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_VSIB, 0x92, 0); }\nvoid vgatherpf0dpd(const Address& addr) { opGatherFetch(addr, zm1, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::YMM); }\nvoid vgatherpf0dps(const Address& addr) { opGatherFetch(addr, zm1, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::ZMM); }\nvoid vgatherpf0qpd(const Address& addr) { opGatherFetch(addr, zm1, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vgatherpf0qps(const Address& addr) { opGatherFetch(addr, zm1, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vgatherpf1dpd(const Address& addr) { opGatherFetch(addr, zm2, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::YMM); }\nvoid vgatherpf1dps(const Address& addr) { opGatherFetch(addr, zm2, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::ZMM); }\nvoid vgatherpf1qpd(const Address& addr) { opGatherFetch(addr, zm2, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vgatherpf1qps(const Address& addr) { opGatherFetch(addr, zm2, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vgatherqpd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_VSIB, 0x93, 0); }\nvoid vgatherqps(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_VSIB, 0x93, 2); }\nvoid vgetexppd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x42); }\nvoid vgetexpph(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0x42); }\nvoid vgetexpps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x42); }\nvoid vgetexpsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x43); }\nvoid vgetexpsh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x43); }\nvoid vgetexpss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x43); }\nvoid vgetmantpd(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x26, imm); }\nvoid vgetmantph(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0x26, imm); }\nvoid vgetmantps(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x26, imm); }\nvoid vgetmantsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x27, imm); }\nvoid vgetmantsh(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x27, imm); }\nvoid vgetmantss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x27, imm); }\nvoid vinsertf32x4(const Ymm& r1, const Ymm& r2, const Operand& op, uint8_t imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x18, imm); }\nvoid vinsertf32x8(const Zmm& r1, const Zmm& r2, const Operand& op, uint8_t imm) {if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x1A, imm); }\nvoid vinsertf64x2(const Ymm& r1, const Ymm& r2, const Operand& op, uint8_t imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x18, imm); }\nvoid vinsertf64x4(const Zmm& r1, const Zmm& r2, const Operand& op, uint8_t imm) {if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x1A, imm); }\nvoid vinserti32x4(const Ymm& r1, const Ymm& r2, const Operand& op, uint8_t imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x38, imm); }\nvoid vinserti32x8(const Zmm& r1, const Zmm& r2, const Operand& op, uint8_t imm) {if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3A, imm); }\nvoid vinserti64x2(const Ymm& r1, const Ymm& r2, const Operand& op, uint8_t imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x38, imm); }\nvoid vinserti64x4(const Zmm& r1, const Zmm& r2, const Operand& op, uint8_t imm) {if (!op.is(Operand::MEM | Operand::YMM)) XBYAK_THROW(ERR_BAD_COMBINATION) opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3A, imm); }\nvoid vmaxph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x5F); }\nvoid vmaxsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x5F); }\nvoid vminph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x5D); }\nvoid vminsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x5D); }\nvoid vmovdqa32(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_66 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }\nvoid vmovdqa32(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }\nvoid vmovdqa64(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_66 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }\nvoid vmovdqa64(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }\nvoid vmovdqu16(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F2 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }\nvoid vmovdqu16(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }\nvoid vmovdqu32(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F3 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }\nvoid vmovdqu32(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }\nvoid vmovdqu64(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }\nvoid vmovdqu64(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }\nvoid vmovdqu8(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F2 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }\nvoid vmovdqu8(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }\nvoid vmovsh(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_N2 | T_F3 | T_MAP5 | T_EW0 | T_MUST_EVEX | T_M_K, 0x11); }\nvoid vmovsh(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, T_N2 | T_F3 | T_MAP5 | T_EW0 | T_MUST_EVEX, 0x10); }\nvoid vmovsh(const Xmm& x1, const Xmm& x2, const Xmm& x3) { opAVX_X_X_XM(x1, x2, x3, T_N2 | T_F3 | T_MAP5 | T_EW0 | T_MUST_EVEX, 0x10); }\nvoid vmovw(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_N2 | T_66 | T_MAP5 | T_MUST_EVEX, 0x7E); }\nvoid vmovw(const Reg32e& r, const Xmm& x) { opAVX_X_X_XM(x, xm0, r, T_N2 | T_66 | T_MAP5 | T_MUST_EVEX, 0x7E); }\nvoid vmovw(const Xmm& x, const Operand& op) { if (!op.isREG(32|64) && !op.isMEM()) XBYAK_THROW(ERR_BAD_COMBINATION) opAVX_X_X_XM(x, xm0, op, T_N2 | T_66 | T_MAP5 | T_MUST_EVEX, 0x6E); }\nvoid vmulph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x59); }\nvoid vmulsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x59); }\nvoid vp2intersectd(const Opmask& k, const Xmm& x, const Operand& op) { if (k.getOpmaskIdx() != 0) XBYAK_THROW(ERR_OPMASK_IS_ALREADY_SET) opAVX_K_X_XM(k, x, op, T_F2 | T_0F38 | T_YMM | T_EVEX | T_EW0 | T_B32, 0x68); }\nvoid vp2intersectq(const Opmask& k, const Xmm& x, const Operand& op) { if (k.getOpmaskIdx() != 0) XBYAK_THROW(ERR_OPMASK_IS_ALREADY_SET) opAVX_K_X_XM(k, x, op, T_F2 | T_0F38 | T_YMM | T_EVEX | T_EW1 | T_B64, 0x68); }\nvoid vp4dpwssd(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0x52); }\nvoid vp4dpwssds(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0x53); }\nvoid vpabsq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_MUST_EVEX | T_EW1 | T_B64 | T_YMM, 0x1F); }\nvoid vpandd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xDB); }\nvoid vpandnd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xDF); }\nvoid vpandnq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xDF); }\nvoid vpandq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xDB); }\nvoid vpblendmb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x66); }\nvoid vpblendmd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x64); }\nvoid vpblendmq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x64); }\nvoid vpblendmw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x66); }\nvoid vpbroadcastb(const Xmm& x, const Reg8& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7A); }\nvoid vpbroadcastd(const Xmm& x, const Reg32& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7C); }\nvoid vpbroadcastmb2q(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1, 0x2A); }\nvoid vpbroadcastmw2d(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0, 0x3A); }\nvoid vpbroadcastw(const Xmm& x, const Reg16& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7B); }\nvoid vpcmpb(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3F, imm); }\nvoid vpcmpd(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x1F, imm); }\nvoid vpcmpeqb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x74); }\nvoid vpcmpeqd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX | T_B32, 0x76); }\nvoid vpcmpeqq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x29); }\nvoid vpcmpeqw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x75); }\nvoid vpcmpgtb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x64); }\nvoid vpcmpgtd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x66); }\nvoid vpcmpgtq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x37); }\nvoid vpcmpgtw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x65); }\nvoid vpcmpq(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x1F, imm); }\nvoid vpcmpub(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3E, imm); }\nvoid vpcmpud(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x1E, imm); }\nvoid vpcmpuq(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x1E, imm); }\nvoid vpcmpuw(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3E, imm); }\nvoid vpcmpw(const Opmask& k, const Xmm& x, const Operand& op, uint8_t imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3F, imm); }\nvoid vpcompressd(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8B); }\nvoid vpcompressq(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8B); }\nvoid vpconflictd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xC4); }\nvoid vpconflictq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xC4); }\nvoid vpermb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8D); }\nvoid vpermi2b(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x75); }\nvoid vpermi2d(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x76); }\nvoid vpermi2pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x77); }\nvoid vpermi2ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x77); }\nvoid vpermi2q(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x76); }\nvoid vpermi2w(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x75); }\nvoid vpermt2b(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7D); }\nvoid vpermt2d(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x7E); }\nvoid vpermt2pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x7F); }\nvoid vpermt2ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x7F); }\nvoid vpermt2q(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x7E); }\nvoid vpermt2w(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x7D); }\nvoid vpermw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8D); }\nvoid vpexpandb(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x62); }\nvoid vpexpandd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x89); }\nvoid vpexpandq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x89); }\nvoid vpexpandw(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x62); }\nvoid vpgatherdd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_VSIB, 0x90, 0); }\nvoid vpgatherdq(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_VSIB, 0x90, 1); }\nvoid vpgatherqd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_VSIB, 0x91, 2); }\nvoid vpgatherqq(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_VSIB, 0x91, 0); }\nvoid vplzcntd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x44); }\nvoid vplzcntq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x44); }\nvoid vpmaxsq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3D); }\nvoid vpmaxuq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3F); }\nvoid vpminsq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x39); }\nvoid vpminuq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3B); }\nvoid vpmovb2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x29); }\nvoid vpmovd2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x39); }\nvoid vpmovdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x31, false); }\nvoid vpmovdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x33, true); }\nvoid vpmovm2b(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x28); }\nvoid vpmovm2d(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x38); }\nvoid vpmovm2q(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x38); }\nvoid vpmovm2w(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x28); }\nvoid vpmovq2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x39); }\nvoid vpmovqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x32, false); }\nvoid vpmovqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x35, true); }\nvoid vpmovqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x34, false); }\nvoid vpmovsdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x21, false); }\nvoid vpmovsdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x23, true); }\nvoid vpmovsqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x22, false); }\nvoid vpmovsqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x25, true); }\nvoid vpmovsqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x24, false); }\nvoid vpmovswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x20, true); }\nvoid vpmovusdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x11, false); }\nvoid vpmovusdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x13, true); }\nvoid vpmovusqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x12, false); }\nvoid vpmovusqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x15, true); }\nvoid vpmovusqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x14, false); }\nvoid vpmovuswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x10, true); }\nvoid vpmovw2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x29); }\nvoid vpmovwb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0x30, true); }\nvoid vpmullq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x40); }\nvoid vpmultishiftqb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x83); }\nvoid vpopcntb(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x54); }\nvoid vpopcntd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x55); }\nvoid vpopcntq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x55); }\nvoid vpopcntw(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x54); }\nvoid vpord(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xEB); }\nvoid vporq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xEB); }\nvoid vprold(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 1), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x72, imm); }\nvoid vprolq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 1), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x72, imm); }\nvoid vprolvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x15); }\nvoid vprolvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x15); }\nvoid vprord(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 0), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x72, imm); }\nvoid vprorq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 0), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x72, imm); }\nvoid vprorvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x14); }\nvoid vprorvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x14); }\nvoid vpscatterdd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA0, 0); }\nvoid vpscatterdq(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA0, 1); }\nvoid vpscatterqd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA1, 2); }\nvoid vpscatterqq(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA1, 0); }\nvoid vpshldd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x71, imm); }\nvoid vpshldq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x71, imm); }\nvoid vpshldvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x71); }\nvoid vpshldvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x71); }\nvoid vpshldvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x70); }\nvoid vpshldw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x70, imm); }\nvoid vpshrdd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x73, imm); }\nvoid vpshrdq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x73, imm); }\nvoid vpshrdvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x73); }\nvoid vpshrdvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x73); }\nvoid vpshrdvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x72); }\nvoid vpshrdw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x72, imm); }\nvoid vpshufbitqmb(const Opmask& k, const Xmm& x, const Operand& op) { opVex(k, &x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8F); }\nvoid vpsllvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x12); }\nvoid vpsraq(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_X_XM(Xmm(x.getKind(), 4), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x72, imm); }\nvoid vpsraq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX, 0xE2); }\nvoid vpsravq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x46); }\nvoid vpsravw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x11); }\nvoid vpsrlvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x10); }\nvoid vpternlogd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x25, imm); }\nvoid vpternlogq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x25, imm); }\nvoid vptestmb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x26); }\nvoid vptestmd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x27); }\nvoid vptestmq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x27); }\nvoid vptestmw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x26); }\nvoid vptestnmb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x26); }\nvoid vptestnmd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x27); }\nvoid vptestnmq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x27); }\nvoid vptestnmw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x26); }\nvoid vpxord(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xEF); }\nvoid vpxorq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xEF); }\nvoid vrangepd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x50, imm); }\nvoid vrangeps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x50, imm); }\nvoid vrangesd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x51, imm); }\nvoid vrangess(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x51, imm); }\nvoid vrcp14pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x4C); }\nvoid vrcp14ps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x4C); }\nvoid vrcp14sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX, 0x4D); }\nvoid vrcp14ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX, 0x4D); }\nvoid vrcp28pd(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1 | T_B64 | T_SAE_Z, 0xCA); }\nvoid vrcp28ps(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0 | T_B32 | T_SAE_Z, 0xCA); }\nvoid vrcp28sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_SAE_X | T_MUST_EVEX, 0xCB); }\nvoid vrcp28ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0xCB); }\nvoid vrcpph(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_MUST_EVEX | T_B16, 0x4C); }\nvoid vrcpsh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_MUST_EVEX, 0x4D); }\nvoid vreducepd(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x56, imm); }\nvoid vreduceph(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0x56, imm); }\nvoid vreduceps(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x56, imm); }\nvoid vreducesd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x57, imm); }\nvoid vreducesh(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x57, imm); }\nvoid vreducess(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x57, imm); }\nvoid vrndscalepd(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x09, imm); }\nvoid vrndscaleph(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B16, 0x08, imm); }\nvoid vrndscaleps(const Xmm& x, const Operand& op, uint8_t imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x08, imm); }\nvoid vrndscalesd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x0B, imm); }\nvoid vrndscalesh(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x0A, imm); }\nvoid vrndscaless(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x0A, imm); }\nvoid vrsqrt14pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x4E); }\nvoid vrsqrt14ps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x4E); }\nvoid vrsqrt14sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x4F); }\nvoid vrsqrt14ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x4F); }\nvoid vrsqrt28pd(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1 | T_B64 | T_SAE_Z, 0xCC); }\nvoid vrsqrt28ps(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0 | T_B32 | T_SAE_Z, 0xCC); }\nvoid vrsqrt28sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_SAE_X | T_MUST_EVEX, 0xCD); }\nvoid vrsqrt28ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0xCD); }\nvoid vrsqrtph(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_MUST_EVEX | T_B16, 0x4E); }\nvoid vrsqrtsh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_MUST_EVEX, 0x4F); }\nvoid vscalefpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x2C); }\nvoid vscalefph(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_MAP6 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x2C); }\nvoid vscalefps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x2C); }\nvoid vscalefsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_ER_X | T_MUST_EVEX, 0x2D); }\nvoid vscalefsh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_66 | T_MAP6 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x2D); }\nvoid vscalefss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x2D); }\nvoid vscatterdpd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA2, 1); }\nvoid vscatterdps(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA2, 0); }\nvoid vscatterpf0dpd(const Address& addr) { opGatherFetch(addr, zm5, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::YMM); }\nvoid vscatterpf0dps(const Address& addr) { opGatherFetch(addr, zm5, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::ZMM); }\nvoid vscatterpf0qpd(const Address& addr) { opGatherFetch(addr, zm5, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vscatterpf0qps(const Address& addr) { opGatherFetch(addr, zm5, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vscatterpf1dpd(const Address& addr) { opGatherFetch(addr, zm6, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::YMM); }\nvoid vscatterpf1dps(const Address& addr) { opGatherFetch(addr, zm6, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC6, Operand::ZMM); }\nvoid vscatterpf1qpd(const Address& addr) { opGatherFetch(addr, zm6, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vscatterpf1qps(const Address& addr) { opGatherFetch(addr, zm6, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_M_K | T_VSIB, 0xC7, Operand::ZMM); }\nvoid vscatterqpd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA3, 0); }\nvoid vscatterqps(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K | T_VSIB, 0xA3, 2); }\nvoid vshuff32x4(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW0 | T_B32, 0x23, imm); }\nvoid vshuff64x2(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW1 | T_B64, 0x23, imm); }\nvoid vshufi32x4(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW0 | T_B32, 0x43, imm); }\nvoid vshufi64x2(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW1 | T_B64, 0x43, imm); }\nvoid vsqrtph(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B16, 0x51); }\nvoid vsqrtsh(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N2 | T_F3 | T_MAP5 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x51); }\nvoid vsubph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x5C); }\nvoid vsubsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x5C); }\nvoid vucomish(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_MUST_EVEX | T_EW0 | T_SAE_X | T_N2, 0x2E); }\n#ifdef XBYAK64\nvoid kmovq(const Opmask& k, const Reg64& r) { opVex(k, 0, r, T_L0 | T_0F | T_F2 | T_W1, 0x92); }\nvoid kmovq(const Reg64& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_F2 | T_W1, 0x93); }\nvoid vpbroadcastq(const Xmm& x, const Reg64& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x7C); }\n#endif\n#endif\n"
  },
  {
    "path": "xbyak/xbyak/xbyak_util.h",
    "content": "#ifndef XBYAK_XBYAK_UTIL_H_\n#define XBYAK_XBYAK_UTIL_H_\n\n#ifdef XBYAK_ONLY_CLASS_CPU\n#include <stdint.h>\n#include <stdlib.h>\n#include <assert.h>\n#ifndef XBYAK_THROW\n\t#define XBYAK_THROW(x) ;\n\t#define XBYAK_THROW_RET(x, y) return y;\n#endif\n#ifndef XBYAK_CONSTEXPR\n#if ((__cplusplus >= 201402L) && !(!defined(__clang__) && defined(__GNUC__) && (__GNUC__ <= 5))) || (defined(_MSC_VER) && _MSC_VER >= 1910)\n\t#define XBYAK_CONSTEXPR constexpr\n#else\n\t#define XBYAK_CONSTEXPR\n#endif\n#endif\n#else\n#include <string.h>\n\n/**\n\tutility class and functions for Xbyak\n\tXbyak::util::Clock ; rdtsc timer\n\tXbyak::util::Cpu ; detect CPU\n*/\n#include \"xbyak.h\"\n#endif // XBYAK_ONLY_CLASS_CPU\n\n#if defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_X64)\n\t#define XBYAK_INTEL_CPU_SPECIFIC\n#endif\n\n#ifdef XBYAK_INTEL_CPU_SPECIFIC\n#ifdef _WIN32\n\t#if defined(_MSC_VER) && (_MSC_VER < 1400) && defined(XBYAK32)\n\t\tstatic inline __declspec(naked) void __cpuid(int[4], int)\n\t\t{\n\t\t\t__asm {\n\t\t\t\tpush\tebx\n\t\t\t\tpush\tesi\n\t\t\t\tmov\t\teax, dword ptr [esp + 4 * 2 + 8] // eaxIn\n\t\t\t\tcpuid\n\t\t\t\tmov\t\tesi, dword ptr [esp + 4 * 2 + 4] // data\n\t\t\t\tmov\t\tdword ptr [esi], eax\n\t\t\t\tmov\t\tdword ptr [esi + 4], ebx\n\t\t\t\tmov\t\tdword ptr [esi + 8], ecx\n\t\t\t\tmov\t\tdword ptr [esi + 12], edx\n\t\t\t\tpop\t\tesi\n\t\t\t\tpop\t\tebx\n\t\t\t\tret\n\t\t\t}\n\t\t}\n\t#else\n\t\t#include <intrin.h> // for __cpuid\n\t#endif\n#else\n\t#ifndef __GNUC_PREREQ\n    \t#define __GNUC_PREREQ(major, minor) ((((__GNUC__) << 16) + (__GNUC_MINOR__)) >= (((major) << 16) + (minor)))\n\t#endif\n\t#if __GNUC_PREREQ(4, 3) && !defined(__APPLE__)\n\t\t#include <cpuid.h>\n\t#else\n\t\t#if defined(__APPLE__) && defined(XBYAK32) // avoid err : can't find a register in class `BREG' while reloading `asm'\n\t\t\t#define __cpuid(eaxIn, a, b, c, d) __asm__ __volatile__(\"pushl %%ebx\\ncpuid\\nmovl %%ebp, %%esi\\npopl %%ebx\" : \"=a\"(a), \"=S\"(b), \"=c\"(c), \"=d\"(d) : \"0\"(eaxIn))\n\t\t\t#define __cpuid_count(eaxIn, ecxIn, a, b, c, d) __asm__ __volatile__(\"pushl %%ebx\\ncpuid\\nmovl %%ebp, %%esi\\npopl %%ebx\" : \"=a\"(a), \"=S\"(b), \"=c\"(c), \"=d\"(d) : \"0\"(eaxIn), \"2\"(ecxIn))\n\t\t#else\n\t\t\t#define __cpuid(eaxIn, a, b, c, d) __asm__ __volatile__(\"cpuid\\n\" : \"=a\"(a), \"=b\"(b), \"=c\"(c), \"=d\"(d) : \"0\"(eaxIn))\n\t\t\t#define __cpuid_count(eaxIn, ecxIn, a, b, c, d) __asm__ __volatile__(\"cpuid\\n\" : \"=a\"(a), \"=b\"(b), \"=c\"(c), \"=d\"(d) : \"0\"(eaxIn), \"2\"(ecxIn))\n\t\t#endif\n\t#endif\n#endif\n#endif\n\n#ifdef XBYAK_USE_VTUNE\n\t// -I /opt/intel/vtune_amplifier/include/ -L /opt/intel/vtune_amplifier/lib64 -ljitprofiling -ldl\n\t#include <jitprofiling.h>\n\t#ifdef _MSC_VER\n\t\t#pragma comment(lib, \"libittnotify.lib\")\n\t#endif\n\t#ifdef __linux__\n\t\t#include <dlfcn.h>\n\t#endif\n#endif\n#ifdef __linux__\n\t#define XBYAK_USE_PERF\n#endif\n\nnamespace Xbyak { namespace util {\n\ntypedef enum {\n   SmtLevel = 1,\n   CoreLevel = 2\n} IntelCpuTopologyLevel;\n\nnamespace local {\n\ntemplate<uint64_t L, uint64_t H = 0>\nstruct TypeT {\n};\n\ntemplate<uint64_t L1, uint64_t H1, uint64_t L2, uint64_t H2>\nXBYAK_CONSTEXPR TypeT<L1 | L2, H1 | H2> operator|(TypeT<L1, H1>, TypeT<L2, H2>) { return TypeT<L1 | L2, H1 | H2>(); }\n\ntemplate<typename T>\ninline T max_(T x, T y) { return x >= y ? x : y; }\ntemplate<typename T>\ninline T min_(T x, T y) { return x < y ? x : y; }\n\n} // local\n\n/**\n\tCPU detection class\n\t@note static inline const member is supported by c++17 or later, so use template hack\n*/\nclass Cpu {\npublic:\n\tclass Type {\n\t\tuint64_t L;\n\t\tuint64_t H;\n\tpublic:\n\t\tType(uint64_t L = 0, uint64_t H = 0) : L(L), H(H) { }\n\t\ttemplate<uint64_t L_, uint64_t H_>\n\t\tType(local::TypeT<L_, H_>) : L(L_), H(H_) {}\n\t\tType& operator&=(const Type& rhs) { L &= rhs.L; H &= rhs.H; return *this; }\n\t\tType& operator|=(const Type& rhs) { L |= rhs.L; H |= rhs.H; return *this; }\n\t\tType operator&(const Type& rhs) const { Type t = *this; t &= rhs; return t; }\n\t\tType operator|(const Type& rhs) const { Type t = *this; t |= rhs; return t; }\n\t\tbool operator==(const Type& rhs) const { return H == rhs.H && L == rhs.L; }\n\t\tbool operator!=(const Type& rhs) const { return !operator==(rhs); }\n\t\t// without explicit because backward compatilibity\n\t\toperator bool() const { return (H | L) != 0; }\n\t\tuint64_t getL() const { return L; }\n\t\tuint64_t getH() const { return H; }\n\t};\nprivate:\n\tType type_;\n\t//system topology\n\tbool x2APIC_supported_;\n\tstatic const size_t maxTopologyLevels = 2;\n\tuint32_t numCores_[maxTopologyLevels];\n\n\tstatic const uint32_t maxNumberCacheLevels = 10;\n\tuint32_t dataCacheSize_[maxNumberCacheLevels];\n\tuint32_t coresSharignDataCache_[maxNumberCacheLevels];\n\tuint32_t dataCacheLevels_;\n\n\tuint32_t get32bitAsBE(const char *x) const\n\t{\n\t\treturn x[0] | (x[1] << 8) | (x[2] << 16) | (x[3] << 24);\n\t}\n\tuint32_t mask(int n) const\n\t{\n\t\treturn (1U << n) - 1;\n\t}\n\tvoid setFamily()\n\t{\n\t\tuint32_t data[4] = {};\n\t\tgetCpuid(1, data);\n\t\tstepping = data[0] & mask(4);\n\t\tmodel = (data[0] >> 4) & mask(4);\n\t\tfamily = (data[0] >> 8) & mask(4);\n\t\t// type = (data[0] >> 12) & mask(2);\n\t\textModel = (data[0] >> 16) & mask(4);\n\t\textFamily = (data[0] >> 20) & mask(8);\n\t\tif (family == 0x0f) {\n\t\t\tdisplayFamily = family + extFamily;\n\t\t} else {\n\t\t\tdisplayFamily = family;\n\t\t}\n\t\tif (family == 6 || family == 0x0f) {\n\t\t\tdisplayModel = (extModel << 4) + model;\n\t\t} else {\n\t\t\tdisplayModel = model;\n\t\t}\n\t}\n\tuint32_t extractBit(uint32_t val, uint32_t base, uint32_t end)\n\t{\n\t\treturn (val >> base) & ((1u << (end - base)) - 1);\n\t}\n\tvoid setNumCores()\n\t{\n\t\tif (!has(tINTEL) && !has(tAMD)) return;\n\n\t\tuint32_t data[4] = {};\n\t\tgetCpuidEx(0x0, 0, data);\n\t\tif (data[0] >= 0xB) {\n\t\t\t /*\n\t\t\t\tif leaf 11 exists(x2APIC is supported),\n\t\t\t\twe use it to get the number of smt cores and cores on socket\n\n\t\t\t\tleaf 0xB can be zeroed-out by a hypervisor\n\t\t\t*/\n\t\t\tx2APIC_supported_ = true;\n\t\t\tfor (uint32_t i = 0; i < maxTopologyLevels; i++) {\n\t\t\t\tgetCpuidEx(0xB, i, data);\n\t\t\t\tIntelCpuTopologyLevel level = (IntelCpuTopologyLevel)extractBit(data[2], 8, 15);\n\t\t\t\tif (level == SmtLevel || level == CoreLevel) {\n\t\t\t\t\tnumCores_[level - 1] = extractBit(data[1], 0, 15);\n\t\t\t\t}\n\t\t\t}\n\t\t\t/*\n\t\t\t\tFallback values in case a hypervisor has 0xB leaf zeroed-out.\n\t\t\t*/\n\t\t\tnumCores_[SmtLevel - 1] = local::max_(1u, numCores_[SmtLevel - 1]);\n\t\t\tnumCores_[CoreLevel - 1] = local::max_(numCores_[SmtLevel - 1], numCores_[CoreLevel - 1]);\n\t\t} else {\n\t\t\t/*\n\t\t\t\tFailed to deremine num of cores without x2APIC support.\n\t\t\t\tTODO: USE initial APIC ID to determine ncores.\n\t\t\t*/\n\t\t\tnumCores_[SmtLevel - 1] = 0;\n\t\t\tnumCores_[CoreLevel - 1] = 0;\n\t\t}\n\n\t}\n\tvoid setCacheHierarchy()\n\t{\n\t\tif (!has(tINTEL) && !has(tAMD)) return;\n\n\t\t// https://github.com/amd/ZenDNN/blob/a08bf9a9efc160a69147cdecfb61cc85cc0d4928/src/cpu/x64/xbyak/xbyak_util.h#L236-L288\n\t\tif (has(tAMD)) {\n\t\t\t// There are 3 Data Cache Levels (L1, L2, L3)\n\t\t\tdataCacheLevels_ = 3;\n\t\t\tconst uint32_t leaf = 0x8000001D; // for modern AMD CPus\n\t\t\t// Sub leaf value ranges from 0 to 3\n\t\t\t// Sub leaf value 0 refers to L1 Data Cache\n\t\t\t// Sub leaf value 1 refers to L1 Instruction Cache\n\t\t\t// Sub leaf value 2 refers to L2 Cache\n\t\t\t// Sub leaf value 3 refers to L3 Cache\n\t\t\t// For legacy AMD CPU, use leaf 0x80000005 for L1 cache\n\t\t\t// and 0x80000006 for L2 and L3 cache\n\t\t\tint cache_index = 0;\n\t\t\tfor (uint32_t sub_leaf = 0; sub_leaf <= dataCacheLevels_; sub_leaf++) {\n\t\t\t\t// Skip sub_leaf = 1 as it refers to\n\t\t\t\t// L1 Instruction Cache (not required)\n\t\t\t\tif (sub_leaf == 1) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tuint32_t data[4] = {};\n\t\t\t\tgetCpuidEx(leaf, sub_leaf, data);\n\t\t\t\t// Cache Size = Line Size * Partitions * Associativity * Cache Sets\n\t\t\t\tdataCacheSize_[cache_index] =\n\t\t\t\t\t(extractBit(data[1], 22, 31) + 1) // Associativity-1\n\t\t\t\t\t* (extractBit(data[1], 12, 21) + 1) // Partitions-1\n\t\t\t\t\t* (extractBit(data[1], 0, 11) + 1) // Line Size\n\t\t\t\t\t* (data[2] + 1);\n\t\t\t\t// Calculate the number of cores sharing the current data cache\n\t\t\t\tint smt_width = numCores_[0];\n\t\t\t\tint logical_cores = numCores_[1];\n\t\t\t\tint actual_logical_cores = extractBit(data[0], 14, 25) /* # of cores * # of threads */ + 1;\n\t\t\t\tif (logical_cores != 0) {\n\t\t\t\t\tactual_logical_cores = local::min_(actual_logical_cores, logical_cores);\n\t\t\t\t}\n\t\t\t\tcoresSharignDataCache_[cache_index] = local::max_(actual_logical_cores / smt_width, 1);\n\t\t\t\t++cache_index;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// intel\n\t\tconst uint32_t NO_CACHE = 0;\n\t\tconst uint32_t DATA_CACHE = 1;\n//\t\tconst uint32_t INSTRUCTION_CACHE = 2;\n\t\tconst uint32_t UNIFIED_CACHE = 3;\n\t\tuint32_t smt_width = 0;\n\t\tuint32_t logical_cores = 0;\n\t\tuint32_t data[4] = {};\n\n\t\tif (x2APIC_supported_) {\n\t\t\tsmt_width = numCores_[0];\n\t\t\tlogical_cores = numCores_[1];\n\t\t}\n\n\t\t/*\n\t\t\tAssumptions:\n\t\t\tthe first level of data cache is not shared (which is the\n\t\t\tcase for every existing architecture) and use this to\n\t\t\tdetermine the SMT width for arch not supporting leaf 11.\n\t\t\twhen leaf 4 reports a number of core less than numCores_\n\t\t\ton socket reported by leaf 11, then it is a correct number\n\t\t\tof cores not an upperbound.\n\t\t*/\n\t\tfor (int i = 0; dataCacheLevels_ < maxNumberCacheLevels; i++) {\n\t\t\tgetCpuidEx(0x4, i, data);\n\t\t\tuint32_t cacheType = extractBit(data[0], 0, 4);\n\t\t\tif (cacheType == NO_CACHE) break;\n\t\t\tif (cacheType == DATA_CACHE || cacheType == UNIFIED_CACHE) {\n\t\t\t\tuint32_t actual_logical_cores = extractBit(data[0], 14, 25) + 1;\n\t\t\t\tif (logical_cores != 0) { // true only if leaf 0xB is supported and valid\n\t\t\t\t\tactual_logical_cores = local::min_(actual_logical_cores, logical_cores);\n\t\t\t\t}\n\t\t\t\tassert(actual_logical_cores != 0);\n\t\t\t\tdataCacheSize_[dataCacheLevels_] =\n\t\t\t\t\t(extractBit(data[1], 22, 31) + 1)\n\t\t\t\t\t* (extractBit(data[1], 12, 21) + 1)\n\t\t\t\t\t* (extractBit(data[1], 0, 11) + 1)\n\t\t\t\t\t* (data[2] + 1);\n\t\t\t\tif (cacheType == DATA_CACHE && smt_width == 0) smt_width = actual_logical_cores;\n\t\t\t\tassert(smt_width != 0);\n\t\t\t\tcoresSharignDataCache_[dataCacheLevels_] = local::max_(actual_logical_cores / smt_width, 1u);\n\t\t\t\tdataCacheLevels_++;\n\t\t\t}\n\t\t}\n\t}\n\npublic:\n\tint model;\n\tint family;\n\tint stepping;\n\tint extModel;\n\tint extFamily;\n\tint displayFamily; // family + extFamily\n\tint displayModel; // model + extModel\n\n\tuint32_t getNumCores(IntelCpuTopologyLevel level) const {\n\t\tif (!x2APIC_supported_) XBYAK_THROW_RET(ERR_X2APIC_IS_NOT_SUPPORTED, 0)\n\t\tswitch (level) {\n\t\tcase SmtLevel: return numCores_[level - 1];\n\t\tcase CoreLevel: return numCores_[level - 1] / numCores_[SmtLevel - 1];\n\t\tdefault: XBYAK_THROW_RET(ERR_X2APIC_IS_NOT_SUPPORTED, 0)\n\t\t}\n\t}\n\n\tuint32_t getDataCacheLevels() const { return dataCacheLevels_; }\n\tuint32_t getCoresSharingDataCache(uint32_t i) const\n\t{\n\t\tif (i >= dataCacheLevels_) XBYAK_THROW_RET(ERR_BAD_PARAMETER, 0)\n\t\treturn coresSharignDataCache_[i];\n\t}\n\tuint32_t getDataCacheSize(uint32_t i) const\n\t{\n\t\tif (i >= dataCacheLevels_) XBYAK_THROW_RET(ERR_BAD_PARAMETER, 0)\n\t\treturn dataCacheSize_[i];\n\t}\n\n\t/*\n\t\tdata[] = { eax, ebx, ecx, edx }\n\t*/\n\tstatic inline void getCpuid(uint32_t eaxIn, uint32_t data[4])\n\t{\n#ifdef XBYAK_INTEL_CPU_SPECIFIC\n\t#ifdef _WIN32\n\t\t__cpuid(reinterpret_cast<int*>(data), eaxIn);\n\t#else\n\t\t__cpuid(eaxIn, data[0], data[1], data[2], data[3]);\n\t#endif\n#else\n\t\t(void)eaxIn;\n\t\t(void)data;\n#endif\n\t}\n\tstatic inline void getCpuidEx(uint32_t eaxIn, uint32_t ecxIn, uint32_t data[4])\n\t{\n#ifdef XBYAK_INTEL_CPU_SPECIFIC\n\t#ifdef _WIN32\n\t\t__cpuidex(reinterpret_cast<int*>(data), eaxIn, ecxIn);\n\t#else\n\t\t__cpuid_count(eaxIn, ecxIn, data[0], data[1], data[2], data[3]);\n\t#endif\n#else\n\t\t(void)eaxIn;\n\t\t(void)ecxIn;\n\t\t(void)data;\n#endif\n\t}\n\tstatic inline uint64_t getXfeature()\n\t{\n#ifdef XBYAK_INTEL_CPU_SPECIFIC\n\t#ifdef _MSC_VER\n\t\treturn _xgetbv(0);\n\t#else\n\t\tuint32_t eax, edx;\n\t\t// xgetvb is not support on gcc 4.2\n//\t\t__asm__ volatile(\"xgetbv\" : \"=a\"(eax), \"=d\"(edx) : \"c\"(0));\n\t\t__asm__ volatile(\".byte 0x0f, 0x01, 0xd0\" : \"=a\"(eax), \"=d\"(edx) : \"c\"(0));\n\t\treturn ((uint64_t)edx << 32) | eax;\n\t#endif\n#else\n\t\treturn 0;\n#endif\n\t}\n\n#define XBYAK_SPLIT_ID(id) ((0 <= id && id < 64) ? (1ull << (id % 64)) : 0), (id >= 64 ? (1ull << (id % 64)) : 0)\n#if (__cplusplus >= 201103) || (defined(_MSC_VER) && (_MSC_VER >= 1700)) /* VS2012 */\n\t#define XBYAK_DEFINE_TYPE(id, NAME) static const constexpr local::TypeT<XBYAK_SPLIT_ID(id)> NAME{}\n#else\n\t#define XBYAK_DEFINE_TYPE(id, NAME) static const local::TypeT<XBYAK_SPLIT_ID(id)> NAME\n#endif\n\tXBYAK_DEFINE_TYPE(0, tMMX);\n\tXBYAK_DEFINE_TYPE(1, tMMX2);\n\tXBYAK_DEFINE_TYPE(2, tCMOV);\n\tXBYAK_DEFINE_TYPE(3, tSSE);\n\tXBYAK_DEFINE_TYPE(4, tSSE2);\n\tXBYAK_DEFINE_TYPE(5, tSSE3);\n\tXBYAK_DEFINE_TYPE(6, tSSSE3);\n\tXBYAK_DEFINE_TYPE(7, tSSE41);\n\tXBYAK_DEFINE_TYPE(8, tSSE42);\n\tXBYAK_DEFINE_TYPE(9, tPOPCNT);\n\tXBYAK_DEFINE_TYPE(10, tAESNI);\n\tXBYAK_DEFINE_TYPE(11, tAVX512_FP16);\n\tXBYAK_DEFINE_TYPE(12, tOSXSAVE);\n\tXBYAK_DEFINE_TYPE(13, tPCLMULQDQ);\n\tXBYAK_DEFINE_TYPE(14, tAVX);\n\tXBYAK_DEFINE_TYPE(15, tFMA);\n\tXBYAK_DEFINE_TYPE(16, t3DN);\n\tXBYAK_DEFINE_TYPE(17, tE3DN);\n\tXBYAK_DEFINE_TYPE(18, tWAITPKG);\n\tXBYAK_DEFINE_TYPE(19, tRDTSCP);\n\tXBYAK_DEFINE_TYPE(20, tAVX2);\n\tXBYAK_DEFINE_TYPE(21, tBMI1); // andn, bextr, blsi, blsmsk, blsr, tzcnt\n\tXBYAK_DEFINE_TYPE(22, tBMI2); // bzhi, mulx, pdep, pext, rorx, sarx, shlx, shrx\n\tXBYAK_DEFINE_TYPE(23, tLZCNT);\n\tXBYAK_DEFINE_TYPE(24, tINTEL);\n\tXBYAK_DEFINE_TYPE(25, tAMD);\n\tXBYAK_DEFINE_TYPE(26, tENHANCED_REP); // enhanced rep movsb/stosb\n\tXBYAK_DEFINE_TYPE(27, tRDRAND);\n\tXBYAK_DEFINE_TYPE(28, tADX); // adcx, adox\n\tXBYAK_DEFINE_TYPE(29, tRDSEED); // rdseed\n\tXBYAK_DEFINE_TYPE(30, tSMAP); // stac\n\tXBYAK_DEFINE_TYPE(31, tHLE); // xacquire, xrelease, xtest\n\tXBYAK_DEFINE_TYPE(32, tRTM); // xbegin, xend, xabort\n\tXBYAK_DEFINE_TYPE(33, tF16C); // vcvtph2ps, vcvtps2ph\n\tXBYAK_DEFINE_TYPE(34, tMOVBE); // mobve\n\tXBYAK_DEFINE_TYPE(35, tAVX512F);\n\tXBYAK_DEFINE_TYPE(36, tAVX512DQ);\n\tXBYAK_DEFINE_TYPE(37, tAVX512_IFMA);\n\tXBYAK_DEFINE_TYPE(37, tAVX512IFMA);// = tAVX512_IFMA;\n\tXBYAK_DEFINE_TYPE(38, tAVX512PF);\n\tXBYAK_DEFINE_TYPE(39, tAVX512ER);\n\tXBYAK_DEFINE_TYPE(40, tAVX512CD);\n\tXBYAK_DEFINE_TYPE(41, tAVX512BW);\n\tXBYAK_DEFINE_TYPE(42, tAVX512VL);\n\tXBYAK_DEFINE_TYPE(43, tAVX512_VBMI);\n\tXBYAK_DEFINE_TYPE(43, tAVX512VBMI); // = tAVX512_VBMI; // changed by Intel's manual\n\tXBYAK_DEFINE_TYPE(44, tAVX512_4VNNIW);\n\tXBYAK_DEFINE_TYPE(45, tAVX512_4FMAPS);\n\tXBYAK_DEFINE_TYPE(46, tPREFETCHWT1);\n\tXBYAK_DEFINE_TYPE(47, tPREFETCHW);\n\tXBYAK_DEFINE_TYPE(48, tSHA);\n\tXBYAK_DEFINE_TYPE(49, tMPX);\n\tXBYAK_DEFINE_TYPE(50, tAVX512_VBMI2);\n\tXBYAK_DEFINE_TYPE(51, tGFNI);\n\tXBYAK_DEFINE_TYPE(52, tVAES);\n\tXBYAK_DEFINE_TYPE(53, tVPCLMULQDQ);\n\tXBYAK_DEFINE_TYPE(54, tAVX512_VNNI);\n\tXBYAK_DEFINE_TYPE(55, tAVX512_BITALG);\n\tXBYAK_DEFINE_TYPE(56, tAVX512_VPOPCNTDQ);\n\tXBYAK_DEFINE_TYPE(57, tAVX512_BF16);\n\tXBYAK_DEFINE_TYPE(58, tAVX512_VP2INTERSECT);\n\tXBYAK_DEFINE_TYPE(59, tAMX_TILE);\n\tXBYAK_DEFINE_TYPE(60, tAMX_INT8);\n\tXBYAK_DEFINE_TYPE(61, tAMX_BF16);\n\tXBYAK_DEFINE_TYPE(62, tAVX_VNNI);\n\tXBYAK_DEFINE_TYPE(63, tCLFLUSHOPT);\n\tXBYAK_DEFINE_TYPE(64, tCLDEMOTE);\n\tXBYAK_DEFINE_TYPE(65, tMOVDIRI);\n\tXBYAK_DEFINE_TYPE(66, tMOVDIR64B);\n\tXBYAK_DEFINE_TYPE(67, tCLZERO); // AMD Zen\n\tXBYAK_DEFINE_TYPE(68, tAMX_FP16);\n\tXBYAK_DEFINE_TYPE(69, tAVX_VNNI_INT8);\n\tXBYAK_DEFINE_TYPE(70, tAVX_NE_CONVERT);\n\tXBYAK_DEFINE_TYPE(71, tAVX_IFMA);\n\tXBYAK_DEFINE_TYPE(72, tRAO_INT);\n\tXBYAK_DEFINE_TYPE(73, tCMPCCXADD);\n\tXBYAK_DEFINE_TYPE(74, tPREFETCHITI);\n\tXBYAK_DEFINE_TYPE(75, tSERIALIZE);\n\tXBYAK_DEFINE_TYPE(76, tUINTR);\n\tXBYAK_DEFINE_TYPE(77, tXSAVE);\n\tXBYAK_DEFINE_TYPE(78, tSHA512);\n\tXBYAK_DEFINE_TYPE(79, tSM3);\n\tXBYAK_DEFINE_TYPE(80, tSM4);\n\tXBYAK_DEFINE_TYPE(81, tAVX_VNNI_INT16);\n\n#undef XBYAK_SPLIT_ID\n#undef XBYAK_DEFINE_TYPE\n\n\tCpu()\n\t\t: type_()\n\t\t, x2APIC_supported_(false)\n\t\t, numCores_()\n\t\t, dataCacheSize_()\n\t\t, coresSharignDataCache_()\n\t\t, dataCacheLevels_(0)\n\t{\n\t\tuint32_t data[4] = {};\n\t\tconst uint32_t& EAX = data[0];\n\t\tconst uint32_t& EBX = data[1];\n\t\tconst uint32_t& ECX = data[2];\n\t\tconst uint32_t& EDX = data[3];\n\t\tgetCpuid(0, data);\n\t\tconst uint32_t maxNum = EAX;\n\t\tstatic const char intel[] = \"ntel\";\n\t\tstatic const char amd[] = \"cAMD\";\n\t\tif (ECX == get32bitAsBE(amd)) {\n\t\t\ttype_ |= tAMD;\n\t\t\tgetCpuid(0x80000001, data);\n\t\t\tif (EDX & (1U << 31)) {\n\t\t\t\ttype_ |= t3DN;\n\t\t\t\t// 3DNow! implies support for PREFETCHW on AMD\n\t\t\t\ttype_ |= tPREFETCHW;\n\t\t\t}\n\n\t\t\tif (EDX & (1U << 29)) {\n\t\t\t\t// Long mode implies support for PREFETCHW on AMD\n\t\t\t\ttype_ |= tPREFETCHW;\n\t\t\t}\n\t\t}\n\t\tif (ECX == get32bitAsBE(intel)) {\n\t\t\ttype_ |= tINTEL;\n\t\t}\n\n\t\t// Extended flags information\n\t\tgetCpuid(0x80000000, data);\n\t\tconst uint32_t maxExtendedNum = EAX;\n\t\tif (maxExtendedNum >= 0x80000001) {\n\t\t\tgetCpuid(0x80000001, data);\n\n\t\t\tif (EDX & (1U << 31)) type_ |= t3DN;\n\t\t\tif (EDX & (1U << 30)) type_ |= tE3DN;\n\t\t\tif (EDX & (1U << 27)) type_ |= tRDTSCP;\n\t\t\tif (EDX & (1U << 22)) type_ |= tMMX2;\n\t\t\tif (EDX & (1U << 15)) type_ |= tCMOV;\n\t\t\tif (ECX & (1U << 5)) type_ |= tLZCNT;\n\t\t\tif (ECX & (1U << 8)) type_ |= tPREFETCHW;\n\t\t}\n\n\t\tif (maxExtendedNum >= 0x80000008) {\n\t\t\tgetCpuid(0x80000008, data);\n\t\t\tif (EBX & (1U << 0)) type_ |= tCLZERO;\n\t\t}\n\n\t\tgetCpuid(1, data);\n\t\tif (ECX & (1U << 0)) type_ |= tSSE3;\n\t\tif (ECX & (1U << 1)) type_ |= tPCLMULQDQ;\n\t\tif (ECX & (1U << 9)) type_ |= tSSSE3;\n\t\tif (ECX & (1U << 19)) type_ |= tSSE41;\n\t\tif (ECX & (1U << 20)) type_ |= tSSE42;\n\t\tif (ECX & (1U << 22)) type_ |= tMOVBE;\n\t\tif (ECX & (1U << 23)) type_ |= tPOPCNT;\n\t\tif (ECX & (1U << 25)) type_ |= tAESNI;\n\t\tif (ECX & (1U << 26)) type_ |= tXSAVE;\n\t\tif (ECX & (1U << 27)) type_ |= tOSXSAVE;\n\t\tif (ECX & (1U << 30)) type_ |= tRDRAND;\n\t\tif (ECX & (1U << 29)) type_ |= tF16C;\n\n\t\tif (EDX & (1U << 15)) type_ |= tCMOV;\n\t\tif (EDX & (1U << 23)) type_ |= tMMX;\n\t\tif (EDX & (1U << 25)) type_ |= tMMX2 | tSSE;\n\t\tif (EDX & (1U << 26)) type_ |= tSSE2;\n\n\t\tif (type_ & tOSXSAVE) {\n\t\t\t// check XFEATURE_ENABLED_MASK[2:1] = '11b'\n\t\t\tuint64_t bv = getXfeature();\n\t\t\tif ((bv & 6) == 6) {\n\t\t\t\tif (ECX & (1U << 28)) type_ |= tAVX;\n\t\t\t\tif (ECX & (1U << 12)) type_ |= tFMA;\n\t\t\t\t// do *not* check AVX-512 state on macOS because it has on-demand AVX-512 support\n#if !defined(__APPLE__)\n\t\t\t\tif (((bv >> 5) & 7) == 7)\n#endif\n\t\t\t\t{\n\t\t\t\t\tgetCpuidEx(7, 0, data);\n\t\t\t\t\tif (EBX & (1U << 16)) type_ |= tAVX512F;\n\t\t\t\t\tif (type_ & tAVX512F) {\n\t\t\t\t\t\tif (EBX & (1U << 17)) type_ |= tAVX512DQ;\n\t\t\t\t\t\tif (EBX & (1U << 21)) type_ |= tAVX512_IFMA;\n\t\t\t\t\t\tif (EBX & (1U << 26)) type_ |= tAVX512PF;\n\t\t\t\t\t\tif (EBX & (1U << 27)) type_ |= tAVX512ER;\n\t\t\t\t\t\tif (EBX & (1U << 28)) type_ |= tAVX512CD;\n\t\t\t\t\t\tif (EBX & (1U << 30)) type_ |= tAVX512BW;\n\t\t\t\t\t\tif (EBX & (1U << 31)) type_ |= tAVX512VL;\n\t\t\t\t\t\tif (ECX & (1U << 1)) type_ |= tAVX512_VBMI;\n\t\t\t\t\t\tif (ECX & (1U << 6)) type_ |= tAVX512_VBMI2;\n\t\t\t\t\t\tif (ECX & (1U << 11)) type_ |= tAVX512_VNNI;\n\t\t\t\t\t\tif (ECX & (1U << 12)) type_ |= tAVX512_BITALG;\n\t\t\t\t\t\tif (ECX & (1U << 14)) type_ |= tAVX512_VPOPCNTDQ;\n\t\t\t\t\t\tif (EDX & (1U << 2)) type_ |= tAVX512_4VNNIW;\n\t\t\t\t\t\tif (EDX & (1U << 3)) type_ |= tAVX512_4FMAPS;\n\t\t\t\t\t\tif (EDX & (1U << 8)) type_ |= tAVX512_VP2INTERSECT;\n\t\t\t\t\t\tif ((type_ & tAVX512BW) && (EDX & (1U << 23))) type_ |= tAVX512_FP16;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (maxNum >= 7) {\n\t\t\tgetCpuidEx(7, 0, data);\n\t\t\tconst uint32_t maxNumSubLeaves = EAX;\n\t\t\tif (type_ & tAVX && (EBX & (1U << 5))) type_ |= tAVX2;\n\t\t\tif (EBX & (1U << 3)) type_ |= tBMI1;\n\t\t\tif (EBX & (1U << 8)) type_ |= tBMI2;\n\t\t\tif (EBX & (1U << 9)) type_ |= tENHANCED_REP;\n\t\t\tif (EBX & (1U << 18)) type_ |= tRDSEED;\n\t\t\tif (EBX & (1U << 19)) type_ |= tADX;\n\t\t\tif (EBX & (1U << 20)) type_ |= tSMAP;\n\t\t\tif (EBX & (1U << 23)) type_ |= tCLFLUSHOPT;\n\t\t\tif (EBX & (1U << 4)) type_ |= tHLE;\n\t\t\tif (EBX & (1U << 11)) type_ |= tRTM;\n\t\t\tif (EBX & (1U << 14)) type_ |= tMPX;\n\t\t\tif (EBX & (1U << 29)) type_ |= tSHA;\n\t\t\tif (ECX & (1U << 0)) type_ |= tPREFETCHWT1;\n\t\t\tif (ECX & (1U << 5)) type_ |= tWAITPKG;\n\t\t\tif (ECX & (1U << 8)) type_ |= tGFNI;\n\t\t\tif (ECX & (1U << 9)) type_ |= tVAES;\n\t\t\tif (ECX & (1U << 10)) type_ |= tVPCLMULQDQ;\n\t\t\tif (ECX & (1U << 25)) type_ |= tCLDEMOTE;\n\t\t\tif (ECX & (1U << 27)) type_ |= tMOVDIRI;\n\t\t\tif (ECX & (1U << 28)) type_ |= tMOVDIR64B;\n\t\t\tif (EDX & (1U << 5)) type_ |= tUINTR;\n\t\t\tif (EDX & (1U << 14)) type_ |= tSERIALIZE;\n\t\t\tif (EDX & (1U << 22)) type_ |= tAMX_BF16;\n\t\t\tif (EDX & (1U << 24)) type_ |= tAMX_TILE;\n\t\t\tif (EDX & (1U << 25)) type_ |= tAMX_INT8;\n\t\t\tif (maxNumSubLeaves >= 1) {\n\t\t\t\tgetCpuidEx(7, 1, data);\n\t\t\t\tif (EAX & (1U << 0)) type_ |= tSHA512;\n\t\t\t\tif (EAX & (1U << 1)) type_ |= tSM3;\n\t\t\t\tif (EAX & (1U << 2)) type_ |= tSM4;\n\t\t\t\tif (EAX & (1U << 3)) type_ |= tRAO_INT;\n\t\t\t\tif (EAX & (1U << 4)) type_ |= tAVX_VNNI;\n\t\t\t\tif (type_ & tAVX512F) {\n\t\t\t\t\tif (EAX & (1U << 5)) type_ |= tAVX512_BF16;\n\t\t\t\t}\n\t\t\t\tif (EAX & (1U << 7)) type_ |= tCMPCCXADD;\n\t\t\t\tif (EAX & (1U << 21)) type_ |= tAMX_FP16;\n\t\t\t\tif (EAX & (1U << 23)) type_ |= tAVX_IFMA;\n\t\t\t\tif (EDX & (1U << 4)) type_ |= tAVX_VNNI_INT8;\n\t\t\t\tif (EDX & (1U << 5)) type_ |= tAVX_NE_CONVERT;\n\t\t\t\tif (EDX & (1U << 10)) type_ |= tAVX_VNNI_INT16;\n\t\t\t\tif (EDX & (1U << 14)) type_ |= tPREFETCHITI;\n\t\t\t}\n\t\t}\n\t\tsetFamily();\n\t\tsetNumCores();\n\t\tsetCacheHierarchy();\n\t}\n\tvoid putFamily() const\n\t{\n#ifndef XBYAK_ONLY_CLASS_CPU\n\t\tprintf(\"family=%d, model=%X, stepping=%d, extFamily=%d, extModel=%X\\n\",\n\t\t\tfamily, model, stepping, extFamily, extModel);\n\t\tprintf(\"display:family=%X, model=%X\\n\", displayFamily, displayModel);\n#endif\n\t}\n\tbool has(const Type& type) const\n\t{\n\t\treturn (type & type_) == type;\n\t}\n};\n\n#ifndef XBYAK_ONLY_CLASS_CPU\nclass Clock {\npublic:\n\tstatic inline uint64_t getRdtsc()\n\t{\n#ifdef XBYAK_INTEL_CPU_SPECIFIC\n\t#ifdef _MSC_VER\n\t\treturn __rdtsc();\n\t#else\n\t\tuint32_t eax, edx;\n\t\t__asm__ volatile(\"rdtsc\" : \"=a\"(eax), \"=d\"(edx));\n\t\treturn ((uint64_t)edx << 32) | eax;\n\t#endif\n#else\n\t\t// TODO: Need another impl of Clock or rdtsc-equivalent for non-x86 cpu\n\t\treturn 0;\n#endif\n\t}\n\tClock()\n\t\t: clock_(0)\n\t\t, count_(0)\n\t{\n\t}\n\tvoid begin()\n\t{\n\t\tclock_ -= getRdtsc();\n\t}\n\tvoid end()\n\t{\n\t\tclock_ += getRdtsc();\n\t\tcount_++;\n\t}\n\tint getCount() const { return count_; }\n\tuint64_t getClock() const { return clock_; }\n\tvoid clear() { count_ = 0; clock_ = 0; }\nprivate:\n\tuint64_t clock_;\n\tint count_;\n};\n\n#ifdef XBYAK64\nconst int UseRCX = 1 << 6;\nconst int UseRDX = 1 << 7;\n\nclass Pack {\n\tstatic const size_t maxTblNum = 15;\n\tXbyak::Reg64 tbl_[maxTblNum];\n\tsize_t n_;\npublic:\n\tPack() : tbl_(), n_(0) {}\n\tPack(const Xbyak::Reg64 *tbl, size_t n) { init(tbl, n); }\n\tPack(const Pack& rhs)\n\t\t: n_(rhs.n_)\n\t{\n\t\tfor (size_t i = 0; i < n_; i++) tbl_[i] = rhs.tbl_[i];\n\t}\n\tPack& operator=(const Pack& rhs)\n\t{\n\t\tn_ = rhs.n_;\n\t\tfor (size_t i = 0; i < n_; i++) tbl_[i] = rhs.tbl_[i];\n\t\treturn *this;\n\t}\n\tPack(const Xbyak::Reg64& t0)\n\t{ n_ = 1; tbl_[0] = t0; }\n\tPack(const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 2; tbl_[0] = t0; tbl_[1] = t1; }\n\tPack(const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 3; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; }\n\tPack(const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 4; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; }\n\tPack(const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 5; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; }\n\tPack(const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 6; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; }\n\tPack(const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 7; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; }\n\tPack(const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 8; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; }\n\tPack(const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 9; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; }\n\tPack(const Xbyak::Reg64& t9, const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 10; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; tbl_[9] = t9; }\n\tPack(const Xbyak::Reg64& ta, const Xbyak::Reg64& t9, const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 11; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; tbl_[9] = t9; tbl_[10] = ta; }\n\tPack(const Xbyak::Reg64& tb, const Xbyak::Reg64& ta, const Xbyak::Reg64& t9, const Xbyak::Reg64& t8, const Xbyak::Reg64& t7, const Xbyak::Reg64& t6, const Xbyak::Reg64& t5, const Xbyak::Reg64& t4, const Xbyak::Reg64& t3, const Xbyak::Reg64& t2, const Xbyak::Reg64& t1, const Xbyak::Reg64& t0)\n\t{ n_ = 12; tbl_[0] = t0; tbl_[1] = t1; tbl_[2] = t2; tbl_[3] = t3; tbl_[4] = t4; tbl_[5] = t5; tbl_[6] = t6; tbl_[7] = t7; tbl_[8] = t8; tbl_[9] = t9; tbl_[10] = ta; tbl_[11] = tb; }\n\tPack& append(const Xbyak::Reg64& t)\n\t{\n\t\tif (n_ == maxTblNum) {\n\t\t\tfprintf(stderr, \"ERR Pack::can't append\\n\");\n\t\t\tXBYAK_THROW_RET(ERR_BAD_PARAMETER, *this)\n\t\t}\n\t\ttbl_[n_++] = t;\n\t\treturn *this;\n\t}\n\tvoid init(const Xbyak::Reg64 *tbl, size_t n)\n\t{\n\t\tif (n > maxTblNum) {\n\t\t\tfprintf(stderr, \"ERR Pack::init bad n=%d\\n\", (int)n);\n\t\t\tXBYAK_THROW(ERR_BAD_PARAMETER)\n\t\t}\n\t\tn_ = n;\n\t\tfor (size_t i = 0; i < n; i++) {\n\t\t\ttbl_[i] = tbl[i];\n\t\t}\n\t}\n\tconst Xbyak::Reg64& operator[](size_t n) const\n\t{\n\t\tif (n >= n_) {\n\t\t\tfprintf(stderr, \"ERR Pack bad n=%d(%d)\\n\", (int)n, (int)n_);\n\t\t\tXBYAK_THROW_RET(ERR_BAD_PARAMETER, rax)\n\t\t}\n\t\treturn tbl_[n];\n\t}\n\tsize_t size() const { return n_; }\n\t/*\n\t\tget tbl[pos, pos + num)\n\t*/\n\tPack sub(size_t pos, size_t num = size_t(-1)) const\n\t{\n\t\tif (num == size_t(-1)) num = n_ - pos;\n\t\tif (pos + num > n_) {\n\t\t\tfprintf(stderr, \"ERR Pack::sub bad pos=%d, num=%d\\n\", (int)pos, (int)num);\n\t\t\tXBYAK_THROW_RET(ERR_BAD_PARAMETER, Pack())\n\t\t}\n\t\tPack pack;\n\t\tpack.n_ = num;\n\t\tfor (size_t i = 0; i < num; i++) {\n\t\t\tpack.tbl_[i] = tbl_[pos + i];\n\t\t}\n\t\treturn pack;\n\t}\n\tvoid put() const\n\t{\n\t\tfor (size_t i = 0; i < n_; i++) {\n\t\t\tprintf(\"%s \", tbl_[i].toString());\n\t\t}\n\t\tprintf(\"\\n\");\n\t}\n};\n\nclass StackFrame {\n#ifdef XBYAK64_WIN\n\tstatic const int noSaveNum = 6;\n\tstatic const int rcxPos = 0;\n\tstatic const int rdxPos = 1;\n#else\n\tstatic const int noSaveNum = 8;\n\tstatic const int rcxPos = 3;\n\tstatic const int rdxPos = 2;\n#endif\n\tstatic const int maxRegNum = 14; // maxRegNum = 16 - rsp - rax\n\tXbyak::CodeGenerator *code_;\n\tint pNum_;\n\tint tNum_;\n\tbool useRcx_;\n\tbool useRdx_;\n\tint saveNum_;\n\tint P_;\n\tbool makeEpilog_;\n\tXbyak::Reg64 pTbl_[4];\n\tXbyak::Reg64 tTbl_[maxRegNum];\n\tPack p_;\n\tPack t_;\n\tStackFrame(const StackFrame&);\n\tvoid operator=(const StackFrame&);\npublic:\n\tconst Pack& p;\n\tconst Pack& t;\n\t/*\n\t\tmake stack frame\n\t\t@param sf [in] this\n\t\t@param pNum [in] num of function parameter(0 <= pNum <= 4)\n\t\t@param tNum [in] num of temporary register(0 <= tNum, with UseRCX, UseRDX) #{pNum + tNum [+rcx] + [rdx]} <= 14\n\t\t@param stackSizeByte [in] local stack size\n\t\t@param makeEpilog [in] automatically call close() if true\n\n\t\tyou can use\n\t\trax\n\t\tgp0, ..., gp(pNum - 1)\n\t\tgt0, ..., gt(tNum-1)\n\t\trcx if tNum & UseRCX\n\t\trdx if tNum & UseRDX\n\t\trsp[0..stackSizeByte - 1]\n\t*/\n\tStackFrame(Xbyak::CodeGenerator *code, int pNum, int tNum = 0, int stackSizeByte = 0, bool makeEpilog = true)\n\t\t: code_(code)\n\t\t, pNum_(pNum)\n\t\t, tNum_(tNum & ~(UseRCX | UseRDX))\n\t\t, useRcx_((tNum & UseRCX) != 0)\n\t\t, useRdx_((tNum & UseRDX) != 0)\n\t\t, saveNum_(0)\n\t\t, P_(0)\n\t\t, makeEpilog_(makeEpilog)\n\t\t, p(p_)\n\t\t, t(t_)\n\t{\n\t\tusing namespace Xbyak;\n\t\tif (pNum < 0 || pNum > 4) XBYAK_THROW(ERR_BAD_PNUM)\n\t\tconst int allRegNum = pNum + tNum_ + (useRcx_ ? 1 : 0) + (useRdx_ ? 1 : 0);\n\t\tif (tNum_ < 0 || allRegNum > maxRegNum) XBYAK_THROW(ERR_BAD_TNUM)\n\t\tconst Reg64& _rsp = code->rsp;\n\t\tsaveNum_ = local::max_(0, allRegNum - noSaveNum);\n\t\tconst int *tbl = getOrderTbl() + noSaveNum;\n\t\tfor (int i = 0; i < saveNum_; i++) {\n\t\t\tcode->push(Reg64(tbl[i]));\n\t\t}\n\t\tP_ = (stackSizeByte + 7) / 8;\n\t\tif (P_ > 0 && (P_ & 1) == (saveNum_ & 1)) P_++; // (rsp % 16) == 8, then increment P_ for 16 byte alignment\n\t\tP_ *= 8;\n\t\tif (P_ > 0) code->sub(_rsp, P_);\n\t\tint pos = 0;\n\t\tfor (int i = 0; i < pNum; i++) {\n\t\t\tpTbl_[i] = Xbyak::Reg64(getRegIdx(pos));\n\t\t}\n\t\tfor (int i = 0; i < tNum_; i++) {\n\t\t\ttTbl_[i] = Xbyak::Reg64(getRegIdx(pos));\n\t\t}\n\t\tif (useRcx_ && rcxPos < pNum) code_->mov(code_->r10, code_->rcx);\n\t\tif (useRdx_ && rdxPos < pNum) code_->mov(code_->r11, code_->rdx);\n\t\tp_.init(pTbl_, pNum);\n\t\tt_.init(tTbl_, tNum_);\n\t}\n\t/*\n\t\tmake epilog manually\n\t\t@param callRet [in] call ret() if true\n\t*/\n\tvoid close(bool callRet = true)\n\t{\n\t\tusing namespace Xbyak;\n\t\tconst Reg64& _rsp = code_->rsp;\n\t\tconst int *tbl = getOrderTbl() + noSaveNum;\n\t\tif (P_ > 0) code_->add(_rsp, P_);\n\t\tfor (int i = 0; i < saveNum_; i++) {\n\t\t\tcode_->pop(Reg64(tbl[saveNum_ - 1 - i]));\n\t\t}\n\n\t\tif (callRet) code_->ret();\n\t}\n\t~StackFrame()\n\t{\n\t\tif (!makeEpilog_) return;\n\t\tclose();\n\t}\nprivate:\n\tconst int *getOrderTbl() const\n\t{\n\t\tusing namespace Xbyak;\n\t\tstatic const int tbl[] = {\n#ifdef XBYAK64_WIN\n\t\t\tOperand::RCX, Operand::RDX, Operand::R8, Operand::R9, Operand::R10, Operand::R11, Operand::RDI, Operand::RSI,\n#else\n\t\t\tOperand::RDI, Operand::RSI, Operand::RDX, Operand::RCX, Operand::R8, Operand::R9, Operand::R10, Operand::R11,\n#endif\n\t\t\tOperand::RBX, Operand::RBP, Operand::R12, Operand::R13, Operand::R14, Operand::R15\n\t\t};\n\t\treturn &tbl[0];\n\t}\n\tint getRegIdx(int& pos) const\n\t{\n\t\tassert(pos < maxRegNum);\n\t\tusing namespace Xbyak;\n\t\tconst int *tbl = getOrderTbl();\n\t\tint r = tbl[pos++];\n\t\tif (useRcx_) {\n\t\t\tif (r == Operand::RCX) { return Operand::R10; }\n\t\t\tif (r == Operand::R10) { r = tbl[pos++]; }\n\t\t}\n\t\tif (useRdx_) {\n\t\t\tif (r == Operand::RDX) { return Operand::R11; }\n\t\t\tif (r == Operand::R11) { return tbl[pos++]; }\n\t\t}\n\t\treturn r;\n\t}\n};\n#endif\n\nclass Profiler {\n\tint mode_;\n\tconst char *suffix_;\n\tconst void *startAddr_;\n#ifdef XBYAK_USE_PERF\n\tFILE *fp_;\n#endif\npublic:\n\tenum {\n\t\tNone = 0,\n\t\tPerf = 1,\n\t\tVTune = 2\n\t};\n\tProfiler()\n\t\t: mode_(None)\n\t\t, suffix_(\"\")\n\t\t, startAddr_(0)\n#ifdef XBYAK_USE_PERF\n\t\t, fp_(0)\n#endif\n\t{\n\t}\n\t// append suffix to funcName\n\tvoid setNameSuffix(const char *suffix)\n\t{\n\t\tsuffix_ = suffix;\n\t}\n\tvoid setStartAddr(const void *startAddr)\n\t{\n\t\tstartAddr_ = startAddr;\n\t}\n\tvoid init(int mode)\n\t{\n\t\tmode_ = None;\n\t\tswitch (mode) {\n\t\tdefault:\n\t\tcase None:\n\t\t\treturn;\n\t\tcase Perf:\n#ifdef XBYAK_USE_PERF\n\t\t\tclose();\n\t\t\t{\n\t\t\t\tconst int pid = getpid();\n\t\t\t\tchar name[128];\n\t\t\t\tsnprintf(name, sizeof(name), \"/tmp/perf-%d.map\", pid);\n\t\t\t\tfp_ = fopen(name, \"a+\");\n\t\t\t\tif (fp_ == 0) {\n\t\t\t\t\tfprintf(stderr, \"can't open %s\\n\", name);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmode_ = Perf;\n#endif\n\t\t\treturn;\n\t\tcase VTune:\n#ifdef XBYAK_USE_VTUNE\n\t\t\tdlopen(\"dummy\", RTLD_LAZY); // force to load dlopen to enable jit profiling\n\t\t\tif (iJIT_IsProfilingActive() != iJIT_SAMPLING_ON) {\n\t\t\t\tfprintf(stderr, \"VTune profiling is not active\\n\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tmode_ = VTune;\n#endif\n\t\t\treturn;\n\t\t}\n\t}\n\t~Profiler()\n\t{\n\t\tclose();\n\t}\n\tvoid close()\n\t{\n#ifdef XBYAK_USE_PERF\n\t\tif (fp_ == 0) return;\n\t\tfclose(fp_);\n\t\tfp_ = 0;\n#endif\n\t}\n\tvoid set(const char *funcName, const void *startAddr, size_t funcSize) const\n\t{\n\t\tif (mode_ == None) return;\n#if !defined(XBYAK_USE_PERF) && !defined(XBYAK_USE_VTUNE)\n\t\t(void)funcName;\n\t\t(void)startAddr;\n\t\t(void)funcSize;\n#endif\n#ifdef XBYAK_USE_PERF\n\t\tif (mode_ == Perf) {\n\t\t\tif (fp_ == 0) return;\n\t\t\tfprintf(fp_, \"%llx %zx %s%s\", (long long)startAddr, funcSize, funcName, suffix_);\n\t\t\t/*\n\t\t\t\tperf does not recognize the function name which is less than 3,\n\t\t\t\tso append '_' at the end of the name if necessary\n\t\t\t*/\n\t\t\tsize_t n = strlen(funcName) + strlen(suffix_);\n\t\t\tfor (size_t i = n; i < 3; i++) {\n\t\t\t\tfprintf(fp_, \"_\");\n\t\t\t}\n\t\t\tfprintf(fp_, \"\\n\");\n\t\t\tfflush(fp_);\n\t\t}\n#endif\n#ifdef XBYAK_USE_VTUNE\n\t\tif (mode_ != VTune) return;\n\t\tchar className[] = \"\";\n\t\tchar fileName[] = \"\";\n\t\tiJIT_Method_Load jmethod = {};\n\t\tjmethod.method_id = iJIT_GetNewMethodID();\n\t\tjmethod.class_file_name = className;\n\t\tjmethod.source_file_name = fileName;\n\t\tjmethod.method_load_address = const_cast<void*>(startAddr);\n\t\tjmethod.method_size = funcSize;\n\t\tjmethod.line_number_size = 0;\n\t\tchar buf[128];\n\t\tsnprintf(buf, sizeof(buf), \"%s%s\", funcName, suffix_);\n\t\tjmethod.method_name = buf;\n\t\tiJIT_NotifyEvent(iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED, (void*)&jmethod);\n#endif\n\t}\n\t/*\n\t\tfor continuous set\n\t\tfuncSize = endAddr - <previous set endAddr>\n\t*/\n\tvoid set(const char *funcName, const void *endAddr)\n\t{\n\t\tset(funcName, startAddr_, (size_t)endAddr - (size_t)startAddr_);\n\t\tstartAddr_ = endAddr;\n\t}\n};\n#endif // XBYAK_ONLY_CLASS_CPU\n\n} } // end of util\n\n#endif\n"
  }
]