Full Code of ianpatt/sfse for AI

master cad2464ca0b1 cached
134 files
1.7 MB
590.5k tokens
3608 symbols
1 requests
Download .txt
Showing preview only (1,854K chars total). Download the full file or copy to clipboard to get everything.
Repository: ianpatt/sfse
Branch: master
Commit: cad2464ca0b1
Files: 134
Total size: 1.7 MB

Directory structure:
gitextract_3s2zrmmm/

├── .github/
│   └── workflows/
│       └── testbuild.yaml
├── .gitignore
├── CMakeLists.txt
├── LICENSE
├── README.md
├── cmake/
│   ├── configuration.cmake
│   ├── installation.cmake
│   └── versioning.cmake
├── sfse/
│   ├── CMakeLists.txt
│   ├── GameChargen.cpp
│   ├── GameChargen.h
│   ├── GameConsole.cpp
│   ├── GameConsole.h
│   ├── GameData.cpp
│   ├── GameData.h
│   ├── GameEvents.h
│   ├── GameExtraData.cpp
│   ├── GameExtraData.h
│   ├── GameFormComponents.h
│   ├── GameForms.cpp
│   ├── GameForms.h
│   ├── GameLock.cpp
│   ├── GameLock.h
│   ├── GameMemory.cpp
│   ├── GameMemory.h
│   ├── GameMenu.h
│   ├── GameObjects.h
│   ├── GameRTTI.cpp
│   ├── GameRTTI.h
│   ├── GameRTTI.inl
│   ├── GameReferences.h
│   ├── GameReflection.h
│   ├── GameScript.cpp
│   ├── GameScript.h
│   ├── GameSettings.cpp
│   ├── GameSettings.h
│   ├── GameSingleton.h
│   ├── GameStreams.h
│   ├── GameTypes.cpp
│   ├── GameTypes.h
│   ├── GameUI.cpp
│   ├── GameUI.h
│   ├── Hooks_Command.cpp
│   ├── Hooks_Command.h
│   ├── Hooks_Data.cpp
│   ├── Hooks_Data.h
│   ├── Hooks_Scaleform.cpp
│   ├── Hooks_Scaleform.h
│   ├── Hooks_Script.cpp
│   ├── Hooks_Script.h
│   ├── Hooks_Serialization.cpp
│   ├── Hooks_Serialization.h
│   ├── Hooks_Version.cpp
│   ├── Hooks_Version.h
│   ├── NiExtraData.cpp
│   ├── NiExtraData.h
│   ├── NiObject.cpp
│   ├── NiObject.h
│   ├── NiRTTI.cpp
│   ├── NiRTTI.h
│   ├── NiTypes.h
│   ├── PapyrusNativeFunctions.h
│   ├── PluginAPI.h
│   ├── PluginManager.cpp
│   ├── PluginManager.h
│   ├── ScaleformFunctions.h
│   ├── ScaleformLoader.h
│   ├── ScaleformLog.h
│   ├── ScaleformManager.h
│   ├── ScaleformMemory.cpp
│   ├── ScaleformMemory.h
│   ├── ScaleformMovie.h
│   ├── ScaleformState.h
│   ├── ScaleformTranslator.h
│   ├── ScaleformTypes.h
│   ├── ScaleformValue.h
│   ├── Serialization.cpp
│   ├── Serialization.h
│   ├── cmake/
│   │   └── config.cmake.in
│   ├── sfse.cpp
│   ├── sfse.def
│   └── sfse_version.rc
├── sfse_common/
│   ├── BranchTrampoline.cpp
│   ├── BranchTrampoline.h
│   ├── BufferStream.cpp
│   ├── BufferStream.h
│   ├── CMakeLists.txt
│   ├── CoreInfo.h
│   ├── DataStream.cpp
│   ├── DataStream.h
│   ├── DirectoryIterator.cpp
│   ├── DirectoryIterator.h
│   ├── Errors.cpp
│   ├── Errors.h
│   ├── FileStream.cpp
│   ├── FileStream.h
│   ├── Log.cpp
│   ├── Log.h
│   ├── Relocation.cpp
│   ├── Relocation.h
│   ├── SafeWrite.cpp
│   ├── SafeWrite.h
│   ├── Types.h
│   ├── Utilities.cpp
│   ├── Utilities.h
│   ├── cmake/
│   │   └── config.cmake.in
│   └── sfse_version.h
├── sfse_loader/
│   ├── CMakeLists.txt
│   ├── IdentifyEXE.cpp
│   ├── IdentifyEXE.h
│   ├── Inject.cpp
│   ├── Inject.h
│   ├── LoaderError.cpp
│   ├── LoaderError.h
│   ├── Options.cpp
│   ├── Options.h
│   ├── SigCheck.cpp
│   ├── SigCheck.h
│   ├── cmake/
│   │   └── config.cmake.in
│   ├── main.cpp
│   ├── sfse_loader.manifest
│   └── sfse_loader_version.rc
├── sfse_readme.txt
├── sfse_whatsnew.txt
└── xbyak/
    ├── CMakeLists.txt
    ├── COPYRIGHT
    ├── cmake/
    │   ├── config.cmake.in
    │   └── meson-config.cmake.in
    ├── readme.md
    ├── readme.txt
    └── xbyak/
        ├── xbyak.h
        ├── xbyak_bin2hex.h
        ├── xbyak_mnemonic.h
        └── xbyak_util.h

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/testbuild.yaml
================================================
name: testbuild
on: [push]
jobs:
    run-testbuild:
        runs-on: windows-latest
        steps:
            - uses: actions/checkout@v2
              with:
                path: sfse
            - run: cmake -B sfse/build -S sfse -DCMAKE_INSTALL_PREFIX=extern sfse
            - run: cmake --build sfse/build --config Release

================================================
FILE: .gitignore
================================================
# visual studio
*.sdf
*.opensdf
*.suo
.vs
*.VC.db
*.VC.opendb
*.ncb
*.user
*.aps
*.vspscc

# build output
*.tlog
*.lastbuildstate
*.unsuccessfulbuild
*.lib
*.log
*.obj
*.idb
*.pdb
*.res
*.cache
BuildLog.htm
*.exe
*.dll
*.exp
*.ilk

# scripts
scripts/build_bin
scripts/build_src
scripts/compiler
scripts/merged

# cmake
build/*

out/*
CMakeSettings.json

# update temp files
sfse_update

================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.18...4.0.2)

# ---- Project ----

project(
	umbrella
	LANGUAGES CXX
)

# ---- Include guards ----

if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
	message(
		FATAL_ERROR
			"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there."
)
endif()

# ---- Add sub projects ----

if (NOT TARGET sfse)
	add_subdirectory(sfse)
endif()

if (NOT TARGET sfse_common)
	add_subdirectory(sfse_common)
endif()

if (NOT TARGET sfse_loader)
	add_subdirectory(sfse_loader)
endif()


================================================
FILE: LICENSE
================================================
This applies to sfse/PluginAPI.h:

Copyright (c) 2023 Ian Patterson

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE 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.

====

The remainder of the files are currently not under a permissive license.

================================================
FILE: README.md
================================================
![testbuild](https://github.com/ianpatt/sfse/workflows/testbuild/badge.svg)
## Building
```
git clone https://github.com/ianpatt/sfse
cmake -B sfse/build -S sfse
cmake --build sfse/build --config Release
```
Solution will be generated at sfse/build/umbrella.sln.
## Runtime Support
SFSE 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.


================================================
FILE: cmake/configuration.cmake
================================================
if (MSVC)
	set(COMPILE_OPTIONS_DEBUG
		/JMC	# Just My Code debugging
		/ZI	# Debug Information Format
	)
	
	set(COMPILE_OPTIONS_RELEASE
		/Oi	# Generate Intrinsic Functions
		/Zi	# Debug Information Format
	)

	target_compile_options(
		${PROJECT_NAME}
		PRIVATE
			/MP	# Build with Multiple Processes
			/W3	# Warning level
			
			"$<$<CONFIG:Debug>:${COMPILE_OPTIONS_DEBUG}>"
			"$<$<CONFIG:Release>:${COMPILE_OPTIONS_RELEASE}>"
	)
	
	set(LINK_OPTIONS_DEBUG
		/INCREMENTAL	# Link Incrementally
	)
	
	set(LINK_OPTIONS_RELEASE
		/DEBUG:FULL	# Generate Debug Info
		/INCREMENTAL:NO	# Link Incrementally
		/OPT:REF	# Optimizations (eliminate functions/data never referenced)
		/OPT:ICF	# Optimizations (perform identical COMDAT folding)
	)
	
	target_link_options(
		${PROJECT_NAME}
		PRIVATE
			"$<$<CONFIG:Debug>:${LINK_OPTIONS_DEBUG}>"
			"$<$<CONFIG:Release>:${LINK_OPTIONS_RELEASE}>"
	)
endif()


================================================
FILE: cmake/installation.cmake
================================================
option(SFSE_COPY_OUTPUT "Copies output files to the starfield directory" OFF)

if (SFSE_COPY_OUTPUT)
	add_custom_command(
		TARGET ${PROJECT_NAME}
		POST_BUILD
		COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${PROJECT_NAME}> "$ENV{StarfieldPath}"
		COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PDB_FILE:${PROJECT_NAME}> "$ENV{StarfieldPath}"
	)
endif()


================================================
FILE: cmake/versioning.cmake
================================================
set(SFSE_VERSION_MAJOR 0)
set(SFSE_VERSION_MINOR 2)
set(SFSE_VERSION_PATCH 19)

set(RUNTIME_VERSION_MAJOR 1)
set(RUNTIME_VERSION_MINOR 16)
set(RUNTIME_VERSION_PATCH 236)
set(RUNTIME_VERSION_TYPE 0)

math(
	EXPR
	RUNTIME_VERSION_PACKED
	"((${RUNTIME_VERSION_MAJOR} & 0xFF) << 24) | ((${RUNTIME_VERSION_MINOR} & 0xFF) << 16) | ((${RUNTIME_VERSION_PATCH} & 0xFFF) << 4) | (${RUNTIME_VERSION_TYPE} & 0xF)"
	OUTPUT_FORMAT
		HEXADECIMAL
)


================================================
FILE: sfse/CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.18...4.0.2)

# ---- Project ----

include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioning.cmake)

project(
	sfse
	VERSION ${SFSE_VERSION_MAJOR}.${SFSE_VERSION_MINOR}.${SFSE_VERSION_PATCH}
	LANGUAGES CXX
)

# ---- Include guards ----

if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
	message(
		FATAL_ERROR
			"In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there."
)
endif()

# ---- Build options ----

set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_DEBUG OFF)

# ---- Dependencies ----

if (NOT TARGET sfse_common)
	add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../sfse_common sfse_common)	# bundled
endif()

if (NOT TARGET xbyak)
	add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../xbyak xbyak)	# bundled
endif()

# ---- Add source files ----

file(GLOB headers CONFIGURE_DEPENDS *.h)
file(GLOB sources CONFIGURE_DEPENDS *.cpp)

source_group(
	${PROJECT_NAME}
	FILES
		sfse.cpp
		sfse.def
		sfse_version.rc
)

source_group(
	${PROJECT_NAME}/api
	FILES
		GameChargen.cpp
		GameChargen.h
		GameData.cpp
		GameData.h
		GameConsole.cpp
		GameConsole.h
		GameEvents.h
		GameExtraData.cpp
		GameExtraData.h
		GameFormComponents.h
		GameForms.cpp
		GameForms.h
		GameLock.cpp
		GameLock.h
		GameMemory.cpp
		GameMemory.h
		GameMenu.h
		GameObjects.h
		GameReferences.h
		GameReflection.h
		GameRTTI.cpp
		GameRTTI.h
		GameRTTI.inl
		GameScript.cpp
		GameScript.h
		GameSettings.cpp
		GameSettings.h
		GameStreams.h
		GameSingleton.h
		GameTypes.cpp
		GameTypes.h
		GameUI.cpp
		GameUI.h
		NiExtraData.cpp
		NiExtraData.h
		NiObject.cpp
		NiObject.h
		NiRTTI.cpp
		NiRTTI.h
)

source_group(
	${PROJECT_NAME}/hooks
	FILES
		Hooks_Data.cpp
		Hooks_Data.h
		Hooks_Version.cpp
		Hooks_Version.h
		Hooks_Script.cpp
		Hooks_Script.h
		Hooks_Scaleform.cpp
		Hooks_Scaleform.h
		Hooks_Command.cpp
		Hooks_Command.h
		Hooks_Serialization.cpp
		Hooks_Serialization.h
)

source_group(
	${PROJECT_NAME}/internal
	FILES
		PluginAPI.h
		PluginManager.cpp
		PluginManager.h
		Serialization.cpp
		Serialization.h
)

source_group(
	${PROJECT_NAME}/netimmerse
	FILES
		NiTypes.h
)

source_group(
	${PROJECT_NAME}/papyrus/functions
	FILES
)

source_group(
	${PROJECT_NAME}/papyrus/vm
	FILES
		PapyrusNativeFunctions.h
)

source_group(
	${PROJECT_NAME}/scaleform
	FILES
		ScaleformFunctions.h
		ScaleformLog.h
		ScaleformMemory.cpp
		ScaleformMemory.h
		ScaleformMovie.h
		ScaleformState.h
		ScaleformTypes.h
		ScaleformValue.h
		ScaleformLoader.h
		ScaleformManager.h
		ScaleformTranslator.h
)

# ---- Create library ----

add_library(
	${PROJECT_NAME}
	SHARED
	${headers}
	${sources}
	sfse.def
	sfse_version.rc
)

add_library(sfse64::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/configuration.cmake)

set_target_properties(
	${PROJECT_NAME}
	PROPERTIES
		OUTPUT_NAME "${PROJECT_NAME}_${RUNTIME_VERSION_MAJOR}_${RUNTIME_VERSION_MINOR}_${RUNTIME_VERSION_PATCH}"
)

target_compile_definitions(
	${PROJECT_NAME}
	PRIVATE
		RUNTIME
		RUNTIME_VERSION=${RUNTIME_VERSION_PACKED}
)

target_compile_features(
	${PROJECT_NAME}
	PUBLIC
		cxx_std_17
)

target_include_directories(
	${PROJECT_NAME}
	PUBLIC
		$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
		$<INSTALL_INTERFACE:include>
)

target_link_libraries(
	${PROJECT_NAME}
	PUBLIC
		sfse::sfse_common
		xbyak::xbyak
)

target_compile_options(
	${PROJECT_NAME}
	PUBLIC
		/wd4200
)

# ---- Configure all targets ----

set_target_properties(
	${PROJECT_NAME}
	sfse_common
	PROPERTIES
		MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL"
)

# ---- Create an installable target ----

include(GNUInstallDirs)

install(
	TARGETS
		${PROJECT_NAME}
	EXPORT
		${PROJECT_NAME}-targets
)

install(
	FILES
		${headers}
	DESTINATION
		${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
)

configure_file(
	cmake/config.cmake.in
	${PROJECT_NAME}-config.cmake
	@ONLY
)

install(
	FILES
		${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
	DESTINATION
		${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
)

install(
	EXPORT
		${PROJECT_NAME}-targets
	NAMESPACE
		sfse::
	DESTINATION
		${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
)

include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/installation.cmake)


================================================
FILE: sfse/GameChargen.cpp
================================================
#include "sfse/GameChargen.h"

RelocPtr<MenuActor*> TESNPCData::g_actorCheckpoint(0x061F7618);


================================================
FILE: sfse/GameChargen.h
================================================
#pragma once

#include "sfse/GameUI.h"
#include "sfse/GameSingleton.h"
#include "sfse_common/Relocation.h"
#include "sfse_common/Utilities.h"
#include "sfse/NiTypes.h"

class MenuActor;

namespace TESNPCData
{
class ChargenDataModel : public IDataModel, public BSTSingletonSDM<ChargenDataModel>
{
public:
    virtual ~ChargenDataModel();

	static ChargenDataModel* GetSingleton()
	{
		RelocPtr<ChargenDataModel*> singleton(0x061EA138);
		return *singleton;
	}

	// Contains main UI data model wrappers, decode these later
	// This function will pull data from the TESNPC into this wrapper
	DEFINE_MEMBER_FN_1(Update, void, 0x016388A0, MenuActor*); // unk2 removed in 1.9.51
};

extern RelocPtr<MenuActor*> g_actorCheckpoint;
}

namespace BGSCharacterMorph
{
class FacialBoneSlider
{
public:
	FacialBoneSlider() : ID(0), unk54(-1), unk58(0), unk40(""), unk48("") { }
	virtual ~FacialBoneSlider() { };

	virtual const BSFixedString& GetName() { return BSFixedString::Empty(); };
	virtual void Unk_02() { };
	virtual bool IsZeroToOne() { return true; };
	virtual void Unk_04(bool a_arg1) { };
	virtual const char* Unk_05() { return BSFixedStringCS::Empty().c_str(); };
	virtual void Unk_06(const char* a_arg1) { };

	DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free)

	struct SliderExtents
	{
		struct Extents
		{
			NiPoint3 Position;
			NiPoint3 Rotation;
			NiPoint3 Scale;
		};

		Extents Minima;
		Extents Maxima;

		DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free)
	};

	BSTHashMap<BSFixedStringCS, SliderExtents*>	BoneExtentMap;	// 08
	BSFixedString								unk40;			// 40
	BSFixedStringCS								unk48;			// 48
	u32											ID;				// 50
	s32											unk54;			// 54
	s64											unk58;			// 58
};
static_assert(sizeof(FacialBoneSlider::SliderExtents) == 0x48);
static_assert(sizeof(FacialBoneSlider) == 0x60);

class FacialBoneSculptSlider : public FacialBoneSlider
{
public:
	FacialBoneSculptSlider() : unk60(""), unk68(""), zeroToOne(false) { }
	virtual ~FacialBoneSculptSlider() { };

	virtual const BSFixedString& GetName() override { return unk60; };
	virtual void Unk_02() override  { };
	virtual bool IsZeroToOne() override { return zeroToOne; };
	virtual void Unk_04(bool a_arg1) override  { zeroToOne = a_arg1; };
	virtual const char* Unk_05() override  { return unk68.c_str(); }; // ret 0x68 cstring
	virtual void Unk_06(const char* a_arg1) override { unk68 = a_arg1; }; // set 0x68 cstring

	BSFixedString	unk60;		// 60
	BSFixedStringCS	unk68;		// 68
	bool			zeroToOne;	// 70
};
static_assert(sizeof(FacialBoneSculptSlider) == 0x78);

}

================================================
FILE: sfse/GameConsole.cpp
================================================
#include "sfse/GameConsole.h"
#include <stdarg.h>

RelocPtr <ConsoleLog*> g_console(0x061E7540);

void Console_Print(const char* fmt, ...)
{
	ConsoleLog* mgr = *g_console;
	if (mgr)
	{
		va_list args;
		va_start(args, fmt);

		mgr->VPrint(fmt, args);

		va_end(args);
	}
}


================================================
FILE: sfse/GameConsole.h
================================================
#pragma once

#include "sfse_common/Relocation.h"
#include "sfse_common/Utilities.h"

class ConsoleLog
{
public:
	DEFINE_MEMBER_FN_2(VPrint, void, 0x01EAD440, const char* fmt, va_list args);
};

extern RelocPtr <ConsoleLog*> g_console;

void Console_Print(const char* fmt, ...);


================================================
FILE: sfse/GameData.cpp
================================================
#include "sfse/GameData.h"

RelocPtr<MaterialDatabase> g_materialDatabase(0x05E84D88);


================================================
FILE: sfse/GameData.h
================================================
#pragma once

#include "sfse/GameTypes.h"
#include "sfse/GameForms.h"
#include "sfse/GameEvents.h"
#include "sfse/NiTypes.h"

class TESForm;
class TESRegionList;
class BGSAddonNode;
class TESPackedFile;
class TESFile;
class BGSAVMData;

struct TESFileCollection
{
	BSTArray<TESFile*> FileA;
	BSTArray<TESFile*> SmallFileA;
	BSTArray<TESFile*> MediumFileA;
};

class TESFile
{
public:
	virtual ~TESFile();

	struct PLUGIN_HEADER
	{
		float	version;
		u32	numRecords;
		u32 nextObjectID;

		enum Flags
		{
			kFlags_Active = (1 << 2)
		};

		u32	flags;
	};

	u64	unk08;
	void*	unk10;
	u64	unk18;
	u64	unk20;
	u64	unk28;
	u64	unk30;
	char filePath[0x104]; // 38
	u32	unk13C;
	u64	unk140;
	u64	unk148;
	u64	unk150;
	u64	unk158;
	u64	unk160;
	u64	unk168;
	u64	unk170;
	u64	unk178;
	u64	unk180;
	u64	unk188;
	u64	unk190;
	u64	unk198;
	u64	unk1A0;
	u32	unk1A8;
	PLUGIN_HEADER header;
	u32	unk1BC;
	BSTArray<BSFixedString> masterNames;
	BSTArray<TESFile*> masterFiles;
	TESFileCollection fileCollection;	// 1E0
	u64	unkPad2;
	u8	cCompileIndex;			// 218
	u16	sSmallFileCompileIndex;	// 21A
	u8	pad21C[10];
	u16	unk226;
	u16 unk228;
	u8	unk22C[4];
	u64	unk230;
	u16	unk238;
	u16	unk23A;
	u32	unk23C;
	u64	unk240;
	u32	unk248;
	u32	unk24C;
	char* unk250;
	u32	unk258;
	u32	unk25C;

	static const u8 LightIndex = 0xFE;
	static const u8 MediumIndex = 0xFD;

	static bool IsActive(u8 index) { return index != 0xFF; }
	static bool IsLight(u8 index) { return index == LightIndex; }
	static bool IsMedium(u8 index) { return index == MediumIndex; }

	bool IsActive() const { return IsActive(cCompileIndex); }
	bool IsLight() const { return IsLight(cCompileIndex); }
	bool IsMedium() const { return IsMedium(cCompileIndex); }
};
static_assert(sizeof(TESFile) == 0x260);
static_assert(offsetof(TESFile, cCompileIndex) == 0x218);
static_assert(offsetof(TESFile, sSmallFileCompileIndex) == 0x21A);

class TESPackedFile : public TESFile
{
public:
	virtual ~TESPackedFile();

	u64	unk250[(0x3C8 - 0x260) >> 3];
};
static_assert(sizeof(TESPackedFile) == 0x3C8);

class TESDataHandler :
	public BSTEventSource<BGSHotloadCompletedEvent>
{
public:
	virtual ~TESDataHandler();

	struct FormItem
	{
		u64	unk00;
		BSTArray<TESForm*> pFormsA;
	};



	void* unk28; // BSService::Detail::TService<BSService::Detail::TServiceTraits<TESDataHandler,BSService::Detail::ReferenceGetterDefaultPointer<TESDataHandler *>>>
	u64	unk30;
	u64	unk38;
	u64	unk40;
	u64	unk48;
	u64	unk50;
	u64	unk58;
	u64	unk60;
	u64	unk68;
	FormItem pFormArray[static_cast<u64>(FormType::kTotal)];	// 70
	u64 unk14E0;
	TESRegionList* regionList;
	BSTArray<TESObjectCELL*> unk14F0;
	u64	unk1500;
	NiTPrimitiveArray<BGSAddonNode*> unk1508;
	u64	unk1520;
	u64	unk1528;
	u64	unk1530;
	u64	unk1538;
	u64 unk1540;
	u64 unk1548;
	u64 unk1550;
	u64 unk1558;
	u64 unk1560;
	u64 unk1568;

	BSSimpleList<TESPackedFile*> listFiles; // 1570
	TESFileCollection CompiledFileCollection; // 1580
	u64 unk1578[(0x17C8 - 0x15B0) >> 3];

	static TESDataHandler* GetSingleton()
	{
		RelocPtr<TESDataHandler*> singleton(0x05FE18A8);
		return *singleton;
	}

	uint32_t GetSubIndex(const TESFile* file) const
	{
		if (!file->IsActive())
			return -1;

		if (file->IsLight())
		{
			return file->sSmallFileCompileIndex;
		}
		else if (file->IsMedium())
		{
			int32_t foundIndex = -1;
			for(uint32_t i = 0; i < CompiledFileCollection.MediumFileA.size(); ++i)
			{
				if (file == CompiledFileCollection.MediumFileA[i])
				{
					foundIndex = i;
					break;
				}
			}
			return foundIndex;
		}

		return file->cCompileIndex;
	}

	const TESFile* GetModByFormId(const uint32_t formId)
	{
		uint8_t modIndex = formId >> 24;
		uint16_t middleIndex = (formId >> 12) & 0xFFF;
		if (TESFile::IsLight(modIndex))
		{
			if (middleIndex < CompiledFileCollection.SmallFileA.size())
			{
				return CompiledFileCollection.SmallFileA[middleIndex];
			}
		}
		else if (TESFile::IsMedium(modIndex))
		{
			if (middleIndex < CompiledFileCollection.MediumFileA.size())
			{
				return CompiledFileCollection.MediumFileA[middleIndex];
			}
		}
		else if (modIndex < CompiledFileCollection.FileA.size())
		{
			return CompiledFileCollection.FileA[modIndex];
		}
		return nullptr;
	}
};
static_assert(offsetof(TESDataHandler, pFormArray) == 0x70);
static_assert(offsetof(TESDataHandler, listFiles) == 0x1570);
static_assert(offsetof(TESDataHandler, CompiledFileCollection) == 0x1580);

struct MaterialDatabase
{
	BSTHashMap<BSFixedString, BGSAVMData*>	materialMaps[3]; // Simple, Complex, Modulation
	BSTHashMap<BSFixedString, void*>		fullMap; // This is probably a set, every value is 0
};

extern RelocPtr<MaterialDatabase> g_materialDatabase;


================================================
FILE: sfse/GameEvents.h
================================================
#pragma once

#include "sfse/GameTypes.h"
#include "sfse_common/Utilities.h"

class Actor;
struct BGSHotloadCompletedEvent {};

// BSTGlobalEvent

struct SnapTemplateUtils
{
    struct SnapReplaceEvent {};
};
struct ImageFixtureEvent_RequestImage {};
struct ImageFixtureEvent_UnregisterImage {};
struct Spaceship
{
    struct TakeOffEvent {};
    struct PlayerMovementOutputEvent {};
    struct GravJumpEvent {};
    struct LandedSetEvent {};
    struct BoughtEvent {};
    struct ContrabandScanWarningEvent {};
    struct DockEvent {};
    struct DynamicNavmeshCompleted {};
    struct FarTravelEvent {};
    struct LandingEvent {};
    struct PlanetScanEvent {};
    struct RampDownEvent {};
    struct RefueledEvent {};
    struct RegisteredEvent {};
    struct ShieldEvent {};
    struct ShipAddedEvent {};
    struct ShipCollisionEvent {};
    struct ShipCustomizedEvent {};
    struct SoldEvent {};
    struct SystemDamagedEvent {};
    struct SystemPowerAllocationEvent {};
    struct SystemPowerChangeEvent {};
    struct SystemRepairedBIEvent {};
    struct SystemRepairedEvent {};
    struct TakeDamagEvent {};
};
struct HUDActivityIncreaseEvent {};
struct AnimationDataCleanupEvent {};
struct AnimationDataSetupEvent {};
struct EndLoadGameEvent {};
struct StartLoadGameEvent {};
struct ShipEditor_SystemSelected {};
struct ShipEditor_PreviewUpgrade {};
struct ShipEditor_SelectedUpgrade {};
struct RuntimeComponentDBFactory
{
    struct ReferenceAttach {};
    struct ReferenceDetach {};
    struct ReferenceCleared3d {};
    struct ReferenceDestroy {};
    struct ReferenceInit {};
    struct ReferenceRecycle {};
    struct ReferenceSet3d {};
    struct Release3DRelatedData {};
};
struct WeaponGroupAssignmentMenu_ChangeWeaponAssignment {};
struct WeaponGroupAssignmentMenu_OnHintButtonActivated {};
struct ShipEditor_OnExitConfirmCancel {};
struct ShipEditor_OnExitConfirmExit {};
struct ShipEditor_OnExitConfirmSaveAndExit {};
struct ShipEditor_OnFlightCheckTabChanged {};
struct ShipEditor_OnWeaponGroupChanged {};
struct ShipEditor_OnRenameEndEditText {};
struct ShipEditor_OnRenameInputCancelled {};
struct ShipEditor_ChangeModuleCategory {};
struct ShipEditor_PreviewShipPart {};
struct ShipEditor_SelectedShipPart {};
struct ShipEditor_OnColorPickerControlChanged {};
struct ShipEditor_OnColorPickerTabChanged {};
struct ShipEditor_OnColorSliderMouseInput {};
struct ShipEditor_OnRecentColorSwatchClicked {};
struct ShipBuilder_CloseAllMenus {};
struct ShipEditor_OnHintButtonActivated {};
struct ShipEditor_RemoveAll3D {};
struct ReferenceQueuedEvent {};
struct LoadScreenEndEvent {};
struct LoadScreenStartEvent {};
struct CellAttachDetachEvent {};
struct PickRefStateChangedEvent {};
struct ActivityTrackerActivityStartedEvent {};
struct BSWorldOriginShiftEvent {};
struct BGSPlanet
{
    struct PlayerKnowledgeFlagSetEvent {};
};
struct StarMap
{
    struct PlanetTraitKnownEvent {};
};
struct ResetHistoryDataEvent {};
struct TESQuestRewardEvent {};
struct HUDWeaponWorldFOVMultChangedEvent {};
struct BGSSceneActionPlayerDialogue
{
    struct ActionEndEvent {};
    struct ActionStartEvent {};
};

struct AutoLoadDoorRolloverEvent {};
struct ClearQuickContainerEvent {};
struct ReferenceCellLoadedTemps {};
struct Workshop
{
    struct CargoLinkAddedEvent {};
    struct CargoLinkTargetChangedEvent {};
    struct EnterOutpostBeaconModeEvent {};
    struct ItemGrabbedEvent {};
    struct ItemMovedEvent {};
    struct ItemPlacedEvent {};
    struct ItemProducedEvent {};
    struct ItemRemovedEvent {};
    struct ItemRepairedEvent {};
    struct ItemScrappedEvent {};
    struct OutpostNameChangedEvent {};
    struct OutpostPlacedEvent {};
    struct PlacementStatusEvent {};
    struct PowerOffEvent {};
    struct PowerOnEvent {};
    struct SnapBehaviorCycledEvent {};
    struct WorkshopFlyCameraEvent {};
    struct WorkshopItemPlacedEvent {};
    struct WorkshopModeEvent {};
    struct WorkshopOutputLinkEvent {};
    struct WorkshopStatsChangedEvent {};
    struct WorkshopUpdateStatsEvent {};
};

struct PickRefUpdateEvent {};

struct ShipCameraStateToggled {};
struct PlayerControls
{
    struct PlayerJumpPressEvent {};
    struct PlayerJumpReleaseEvent {};
    struct PlayerZeroGSprintJustPressedEvent {};
    struct PlayerZeroGSprintReleasedEvent {};
    struct PlayerIronSightsEndEvent {};
    struct PlayerIronSightsStartEvent {};
};
struct PlayerSneakingChangeEvent {};
struct SaveLoadEvent {};
struct SpaceshipWeaponBinding
{
    struct SpaceshipWeaponBindingChangedEvent {};
};
struct BoundaryMenu_FastTravel {};
struct BoundaryMenu_ShowMap {};
struct PhotoGallery_DeletePhoto {};
struct PowersMenu_ActivateEssence {};
struct PowersMenu_EquipPower {};
struct PowersMenu_FavoritePower {};
struct ContainerMenuClosed
{
    struct Event {};
};
struct HangarShipSelection_ChangeSystemDisplay {};
struct HangarShipSelection_RepairShip {};
struct HangarShipSelection_UpgradeSystem {};
struct ShipCrewMenu_Close {};
struct BinkMovieStoppedPlayingEvent {};
struct WorkshopColorMode_ApplyColors {};
struct WorkshopColorMode_SelectedTab {};
struct WorkshopColorMode_SliderChanged {};
struct WorkshopColorMode_SwatchChanged {};
struct HUDCrewBuffMessageEvent {};
struct CraftingMenu_SessionSummaryEvent {};
struct CraftingMenu_CraftItem {};
struct CraftingMenu_ExitBench {};
struct CraftingMenu_InstallMod {};
struct CraftingMenu_RenameItem {};
struct CraftingMenu_RevertedModdedItem {};
struct CraftingMenu_SelectedMod {};
struct CraftingMenu_SelectedModSlot {};
struct CraftingMenu_SelectedModdableItem {};
struct CraftingMenu_SelectedRecipe {};
struct CraftingMenu_SetInspectControls {};
struct CraftingMenu_ToggleTracking {};
struct CraftingMenu_ViewingModdableItem {};
struct ContainerMenu_CloseMenu {};
struct InventoryMenu_Change3DView {};
struct InventoryMenu_PaperDollTryOn {};
struct InventoryMenu_ResetPaperDollInv {};
struct UpdateActivateListenerEvent {};
struct StartOutpostFromListenerEvent {};
struct HUDModeEvent {};
struct OpenContainerMenuEventData {};
struct OpenContainerMenuFromListenerEvent {};
struct HUDRolloverActivationButtonEvent {};
struct HUDRolloverActivationQCItemPressEvent {};
struct Inventory_SetSort {};
struct ShowingQuestMarketTextEvent {};
struct TargetHitEvent {};
struct PlayerCrosshairModeEvent {};
struct ClearHUDMessagesEvent {};
struct ShowHUDMessageEvent {};
struct PlayerDetectionLevelChangeEvent {};
struct ShowCustomWatchAlert {};
struct PlayerUpdateEvent {};
struct InventoryMenu_ToggleHelmet {};
struct InventoryMenu_ToggleSuit {};
struct ControlsRemappedEvent {};
struct SettingsPanel_CheckBoxChanged {};
struct SettingsPanel_ClearBinding {};
struct SettingsPanel_OpenCategory {};
struct SettingsPanel_OpenSettings {};
struct SettingsPanel_RemapConfirmed {};
struct SettingsPanel_RemapMode {};
struct SettingsPanel_ResetToDefaults {};
struct SettingsPanel_SaveControls {};
struct SettingsPanel_SaveSettings {};
struct SettingsPanel_SliderChanged {};
struct SettingsPanel_StepperChanged {};
struct SettingsPanel_ValidateControls {};
struct ShipCrewMenu_OpenAssignMenu {};
struct ShipCrewMenu_SetSort {};
struct ShowLongShipBootup {};
struct ShipHudQuickContainer_TransferMenu {};
struct ShipHud_Activate {};
struct ShipHud_BodyViewMarkerDimensions {};
struct ShipHud_ChangeComponentSelection {};
struct ShipHud_CloseMenu {};
struct ShipHud_Deselect {};
struct ShipHud_FarTravel {};
struct ShipHud_HailAccepted {};
struct ShipHud_HailCancelled {};
struct ShipHud_JumpToQuestMarker {};
struct ShipHud_Land {};
struct ShipHud_LandingMarkerMap {};
struct ShipHud_Map {};
struct ShipHud_OnMonocleToggle {};
struct ShipHud_OpenPhotoMode {};
struct ShipHud_Repair {};
struct ShipHud_SetTargetMode {};
struct ShipHud_Target {};
struct ShipHud_TargetShipSystem {};
struct ShipHud_UntargetShipSystem {};
struct ShipHud_UpdateComponentPower {};
struct DialogueMenu_CompleteExit {};
struct BGSScannerGuideEffectStatusUpdateEvent {};
struct GlobalFunc_CloseAllMenus {};
struct GlobalFunc_CloseMenu {};
struct GlobalFunc_PlayMenuSound {};
struct GlobalFunc_StartGameRender {};
struct GlobalFunc_UserEvent {};
struct ExperienceMeterDisplayData {};
struct LevelUp_AnimFinished {};
struct LevelUp_OnWidgetShown {};
struct LevelUp_OpenDataMenu {};
struct LevelUp_ShowSkills {};
struct LocationTextWidget_FinishedQueue {};
struct DisplayFatigueWarningEvent {};
struct SaveLoadMessageStringEvent {};
struct HUDNotificationEvent {};
struct HUDNotification_MissionActiveWidgetUpdate {};
struct HUDNotification_OpenDataMenu {};
struct HUDNotification_OpenMissionMenu {};
struct HUDNotification_SetMissionActive {};
struct PlayerSetWeaponStateEvent {};
struct BarterMenu_BuyItem {};
struct BarterMenu_CloseMenu {};
struct BarterMenu_HideModel {};
struct BarterMenu_LoadModel {};
struct BarterMenu_SellItem {};
struct BarterMenu_SetMouseOverModel {};
struct BarterMenu_ShowFailureMessage {};
struct BarterMenu_ViewedItem {};
struct MissionMenu_ClearState {};
struct MissionMenu_PlotToLocation {};
struct MissionMenu_RejectQuest {};
struct MissionMenu_SaveCategoryIndex {};
struct MissionMenu_SaveOpenedId {};
struct MissionMenu_ShowItemLocation {};
struct MissionMenu_ToggleTrackingQuest {};
struct DataSlateButtons_acceptClicked {};
struct DataSlateButtons_cancelClicked {};
struct DataSlateMenu_playSFX {};
struct DataSlateMenu_toggleAudio {};
struct InventoryMenu_DropItem {};
struct InventoryMenu_HideModel {};
struct InventoryMenu_LoadModel {};
struct InventoryMenu_OnEnterCategory {};
struct InventoryMenu_OpenCargoHold {};
struct InventoryMenu_SelectItem {};
struct InventoryMenu_SetMouseOverModel {};
struct InventoryMenu_ToggleFavorite {};
struct MissionBoard_MissionEntryChanged {};
struct MissionBoard_MissionEntryPressed {};
struct MonocleMenu_Bioscan {};
struct MonocleMenu_FastTravel {};
struct MonocleMenu_Harvest {};
struct MonocleMenu_Initialize {};
struct MonocleMenu_Outpost {};
struct MonocleMenu_PhotoMode {};
struct MonocleMenu_Shutdown {};
struct MonocleMenu_SocialSpell {};
struct MonocleMenu_StartContainerView {};
struct MonocleMenu_StopContainerView {};
struct MonocleMenu_SurfaceMap {};
struct MonocleMenu_UseListScrollControls {};
struct MonocleMenu_ZoomIn {};
struct MonocleMenu_ZoomOut {};
struct PhotoMode_InitializeCategory {};
struct PhotoMode_ResetToDefaults {};
struct PhotoMode_SliderChanged {};
struct PhotoMode_StepperChanged {};
struct PhotoMode_TakeSnapshot {};
struct PhotoMode_ToggleHelmet {};
struct PhotoMode_ToggleUI {};
struct PickpocketMenu_OnItemSelect {};
struct ResearchMenu_AddMaterial {};
struct ResearchMenu_CategorySelected {};
struct ResearchMenu_ExitMenu {};
struct ResearchMenu_HideModel {};
struct ResearchMenu_PreviewProject {};
struct ResearchMenu_ProjectViewed {};
struct ResearchMenu_SetInspectControls {};
struct ResearchMenu_ToggleTrackingProject {};
struct UnlockedTerminalElementEvent {};
struct SecurityMenu_BackOutKey {};
struct SecurityMenu_CloseMenu {};
struct SecurityMenu_ConfirmExit {};
struct SecurityMenu_EliminateUnusedKeys {};
struct SecurityMenu_GetRingHint {};
struct SecurityMenu_SelectNewKey {};
struct SecurityMenu_TryUseKey {};
struct ShipCrewAssignMenu_Assign {};
struct ShipCrewAssignMenu_Unassign {};
struct ShipCrewMenu_ViewedItem {};
struct Refuel_Accept {};
struct Refuel_Cancel {};
struct SkillsMenu_Accept {};
struct SkillsMenu_AddPatch {};
struct SkillsMenu_Cancel {};
struct SkillsMenu_ChangeCursorVisibility {};
struct SkillsMenu_SaveLastCategory {};
struct BSChargenAPI
{
    struct BIDataUtils
    {
        struct MenuClosedEvent {};
        struct PresetNPCChangedEvent {};
    };
};
struct CharGen_BrowChange {};
struct CharGen_BrowColorChange {};
struct CharGen_CancelTextEntry {};
struct CharGen_CloseMenu {};
struct CharGen_CyclePronoun {};
struct CharGen_DirtScarsEtcChange {};
struct CharGen_EndBodyChange {};
struct CharGen_EndTextEntry {};
struct CharGen_EyeColorChange {};
struct CharGen_FacialHairChange {};
struct CharGen_FacialHairColorChange {};
struct CharGen_HairChange {};
struct CharGen_HairColorChange {};
struct CharGen_HeadpartPlusSelectorChange {};
struct CharGen_HeadpartPresetChange {};
struct CharGen_JewelryChange {};
struct CharGen_JewelryColorChange {};
struct CharGen_MakeupChange {};
struct CharGen_MarkingsChange {};
struct CharGen_PostBlendColorOptionChange {};
struct CharGen_PostBlendFaceChange {};
struct CharGen_PostBlendIntensityChange {};
struct CharGen_PresetChange {};
struct CharGen_RollOffLocomotion {};
struct CharGen_RollOnLocomotion {};
struct CharGen_RotatePaperdoll {};
struct CharGen_SetAdditionalSlider {};
struct CharGen_SetBackground {};
struct CharGen_SetBlockInputUnderPopup {};
struct CharGen_SetBodyValues {};
struct CharGen_SetCameraPosition {};
struct CharGen_SetPronoun {};
struct CharGen_SetSex {};
struct CharGen_SetSlider {};
struct CharGen_SetTrait {};
struct CharGen_ShowChooseBackgroundMessage {};
struct CharGen_ShowPlayerRenameMessage {};
struct CharGen_SkintoneChange {};
struct CharGen_StartBodyChange {};
struct CharGen_StartTextEntry {};
struct CharGen_SwitchBodyType {};
struct CharGen_SwitchLocomotion {};
struct CharGen_TeethChange {};
struct CharGen_TeethRollOff {};
struct CharGen_TeethRollOn {};
struct CharGen_ToggleMarking {};
struct CharGen_TogglePreviewHabSuit {};
struct UIMenuChargenMenuDisablePaperdoll {};
struct DataMenu_CloseMenu {};
struct DataMenu_ClosedForSubMenu {};
struct DataMenu_Missions {};
struct DataMenu_PlotToLocation {};
struct DataMenu_Reopened {};
struct DataMenu_SelectedAttributesMenu {};
struct DataMenu_SelectedInventoryMenu {};
struct DataMenu_SelectedMapMenu {};
struct DataMenu_SelectedPowersMenu {};
struct DataMenu_SelectedShipMenu {};
struct DataMenu_SelectedStatusMenu {};
struct DataMenu_SetMenuForQuickEntry {};
struct DataMenu_SetPaperDollActive {};
struct PauseMenu_ActionCanceled {};
struct PauseMenu_ConfirmAction {};
struct PauseMenu_ConfirmLoad {};
struct PauseMenu_ConfirmSave {};
struct PauseMenu_DeleteSave {};
struct PauseMenu_QuitToDesktop {};
struct PauseMenu_SetCharacter {};
struct PauseMenu_StartAction {};
struct PauseMenu_StartLoad {};
struct PauseMenu_UploadSave {};
struct PlayBink_CloseMenu {};
struct Reticle_OnLongAnimFinished {};
struct ShipHudQuickContainer_TransferItem {};
struct ShipHud_AbortJump {};
struct ShipHud_DockRequested {};
struct ShipHud_HailShip {};
struct ShipHud_UpdateTargetPanelRect {};
struct TakeoffMenu_CloseMenu {};
struct TakeoffMenu_ExitShip {};
struct TakeoffMenu_Launch {};
struct StarMapMenu_LandingInputInProgress {};
struct StarMapMenu_MarkerGroupContainerVisibilityChanged {};
struct StarMapMenu_MarkerGroupEntryClicked {};
struct StarMapMenu_MarkerGroupEntryHoverChanged {};
struct StarMapMenu_ScanPlanet {};
struct StarMapMenu_SelectedLandingSite {};
struct StarMapMenu_SelectedLandingSiteFailed {};
struct StarMapMenu_ShowRealCursor {};
struct StarMapMenu_QuickSelectChange {};
struct StarMapMenu_Galaxy_FocusSystem {};
struct StarMapMenu_OnGalaxyViewInitialized {};
struct StarMapMenu_ExecuteRoute {};
struct StarMapMenu_OnCancel {};
struct StarMapMenu_OnClearRoute {};
struct StarMapMenu_OnExitStarMap {};
struct StarMapMenu_OnHintButtonClicked {};
struct StarMapMenu_OnOutpostEntrySelected {};
struct StarMapMenu_ReadyToClose {};
struct SurfaceMapMenu_MarkerClicked {};
struct SurfaceMapMenu_TryPlaceCustomMarker {};
struct TerminalMenu_CancelEvent {};
struct Terminal_CloseAllViews {};
struct Terminal_CloseTopView {};
struct Terminal_CloseView {};
struct Terminal_MenuItemClick {};
struct TestMenu_DoAction {};
struct TestMenu_ExitMenu {};
struct TestMenu_ShowImages {};
struct TestMenu_ShowResources {};
struct TestMenu_TestAll {};
struct TextInputMenu_EndEditText {};
struct TextInputMenu_InputCanceled {};
struct TextInputMenu_StartEditText {};
struct CraftingMenu_Highlight3D {};
struct CraftingMenu_RevertHighlight {};
struct WorkshopBuilderMenu_ChangeBuildItem {};
struct WorkshopBuilderMenu_SelectedItem {};
struct WorkshopBuilderMenu_ToggleTracking {};
struct WorkshopMenu_AttemptBuild {};
struct WorkshopMenu_CancelAction {};
struct WorkshopMenu_ChangeVariant {};
struct WorkshopMenu_ConnectionEvent {};
struct WorkshopMenu_ExitMenu {};
struct WorkshopMenu_MessageCallback {};
struct WorkshopMenu_SelectedCategory {};
struct WorkshopMenu_SelectedGridObject {};
struct WorkshopMenu_ShowExtras {};
struct WorkshopMenu_SwitchMode {};
struct WorkshopMenu_ToggleDistance {};
struct WorkshopMenu_ToggleTracking {};
struct WorkshopMenu_ToggleView {};
struct WorkshopQuickMenu_ConfirmAction {};
struct WorkshopQuickMenu_ExitMenu {};
struct WorkshopTargetMenu_TargetHovered {};
struct WorkshopTargetMenu_TargetPicked {};
struct WorkshopActionButton_HoldFinished {};
struct WorkshopActionButton_HoldStopped {};
struct WorkshopShared_SetActionHandles {};
struct WorkshopShared_StartAction {};
struct ModelReferenceEffectEvents
{
    struct ReferenceEffectFinished {};
};
struct BGSAcousticSpaceListener
{
    struct StackChangedEvent {};
};
struct SpaceshipBIEvents
{
    struct ShipPowerAllocationBIEventSent {};
};
struct BGSActorDeathEvent {};
struct Research
{
    struct ResearchProgressEvent {};
};
struct PlayerAutoAimActorEvent {};
struct PlayerInCombatChangeEvent {};
struct BlurEvent {};
struct ContainerMenu_HideModel {};
struct ContainerMenu_Jettison {};
struct ContainerMenu_LoadModel {};
struct ContainerMenu_OpenRefuelMenu {};
struct ContainerMenu_SetMouseOverModel {};
struct ContainerMenu_TakeAll {};
struct ContainerMenu_ToggleEquip {};
struct ContainerMenu_TransferItem {};
struct DialogueMenu_OnDialogueSelect {};
struct DialogueMenu_OnListVisibilityChange {};
struct DialogueMenu_OnPersuasionAutoWin {};
struct DialogueMenu_OnScriptedDialogueSelect {};
struct DialogueMenu_RequestExit {};
struct DialogueMenu_RequestSkipDialogue {};
struct FaderMenuDisplayState {};
struct FavoritesMenu_AssignQuickkey {};
struct FavoritesMenu_UseQuickkey {};
struct LoadingMenu_RefreshText {};
struct MainMenu_ActionCanceled {};
struct MainMenu_ActionConfirmed {};
struct MainMenu_ConfirmLoad {};
struct MainMenu_DeleteSave {};
struct MainMenu_SetCharacter {};
struct MainMenu_StartAction {};
struct MainMenu_StartLoad {};
struct MainMenu_UploadSave {};
struct BGSAppPausedEvent {};
struct MessageBoxMenu_OnBackOut {};
struct MessageBoxMenu_OnButtonPress {};
struct MessageBoxMenu_OnScriptedButtonPress {};
struct SleepWaitMenu_InterruptRest {};
struct SleepWaitMenu_StartRest {};

struct ContextStackChangedEvent {};
struct UpdateSceneRectEvent {};
struct GameStalledEvent {};

// more

struct TESCellNavmeshGeneratedEvent {};
struct TESHitEvent {};
struct FirstThirdPersonSwitch
{
    struct Event {};
};
struct PerkChanged
{
    struct Event {};
};
struct TESHarvestEvent
{
    struct ItemHarvested {};
};
struct ActivityEvents
{
    struct ActivityCompletedEvent {};
};
struct ChallengeCompletedEvent
{
    struct Event {};
};
struct InventoryItemEvent
{
    struct Event {};
};
struct BooksRead
{
    struct Event {};
};
struct LocationExplored
{
    struct Event {};
};
struct LocationLinked
{
    struct Event {};
};
struct Activation
{
    struct Event {};
};
struct ActorCellChangeEvent {};
struct ActorHeadAttachedEvent {};
struct ActorValueEvents
{
    struct ActorValueChangedEvent {};
};
struct AliasChangeEvent {};
struct AnimationGraphDependentEvent {};
struct BGSAffinityEventEvent {};
struct BGSCellGridLoadEvent {};
struct BGSEventProcessedEvent {};
struct BGSHavokWorldCreatedEvent {};
struct BGSLocationLoadedEvent {};
struct BGSOnPlayerCompanionDismiss {};
struct BGSOnPlayerCompleteResearchEvent {};
struct BGSOnPlayerCraftItemEvent {};
struct BGSOnPlayerCreateRobotEvent {};
struct BGSOnPlayerEnterVertibirdEvent {};
struct BGSOnPlayerFallLongDistances {};
struct BGSOnPlayerFireWeaponEvent {};
struct BGSOnPlayerHealTeammateEvent {};
struct BGSOnPlayerLoiteringBeginEvent {};
struct BGSOnPlayerLoiteringEndEvent {};
struct BGSOnPlayerModArmorWeaponEvent {};
struct BGSOnPlayerModRobotEvent {};
struct BGSOnPlayerSwimmingEvent {};
struct BGSOnPlayerUseWorkBenchEvent {};
struct BGSOnSpeechChallengeAvailable {};
struct BGSRadiationDamageEvent {};
struct BuilderMenuSelectEvent {};
struct CrewAssignedEvent {};
struct CrewDismissedEvent {};
struct DestroyedEvent {};
struct HomeShipSetEvent {};
struct InstantReferenceInteractionEvent {};
struct ItemConsumedEvent {};
struct ItemSwappedEvent {};
struct LockPickedEvent {};
struct MapMarkerDiscoveredEvent {};
struct ObjectScannedEvent {};
struct PlayerAddItemEvent {};
struct PlayerArrestedEvent {};
struct PlayerAssaultActorEvent {};
struct PlayerBuyShipEvent {};
struct PlayerCrimeGoldEvent {};
struct PlayerFailedPlotRouteEvent {};
struct PlayerJailEvent {};
struct PlayerModifiedShipEvent {};
struct PlayerMurderActorEvent {};
struct PlayerPayFineEvent {};
struct PlayerPlanetSurveyCompleteEvent {};
struct PlayerPlanetSurveyProgressEvent {};
struct PlayerSellShipEvent {};
struct PlayerTrespassEvent {};
struct QuickContainerOpenedEvent {};
struct RefControlChangedEvent {};
struct ReferenceDestroyedEvent {};
struct SpeechChallengeCompletionEvent {};
struct TESActivateEvent {};
struct TESActiveEffectApplyFinishEvent {};
struct TESActiveEffectRemovedEvent {};
struct TESActorActivatedRefEvent {};
struct TESActorLocationChangeEvent {};
struct TESBookReadEvent {};
struct TESCellCriticalRefsAttachedEvent {};
struct TESCellFullyLoadedEvent {};
struct TESCellGravityChangeEvent {};
struct TESCellReadyToApplyDecalsEvent {};
struct TESCellReference3DAttachEvent {};
struct TESCellReferenceAttachDetachEvent {};
struct TESCombatEvent {};
struct TESCombatListEvent {};
struct TESCommandModeCompleteCommandEvent {};
struct TESCommandModeEnterEvent {};
struct TESCommandModeExitEvent {};
struct TESCommandModeGiveCommandEvent {};
struct TESConsciousnessEvent {};
struct TESContainerChangedEvent
{
    u32          sourceContainerFormID;              // 00
    u32          targetContainerFormID;                // 04
    u32          itemFormID;                            // 08
    u32          count;                                // 0C
    //...
};
struct TESDeathEvent {};
struct TESDeferredKillEvent {};
struct TESDestructionStageChangedEvent {};
struct TESEnterBleedoutEvent {};
struct TESEnterSneakingEvent {};
struct TESEquipEvent {};
struct TESEscortWaitStartEvent {};
struct TESEscortWaitStopEvent {};
struct TESExitBleedoutEvent {};
struct TESExitFurnitureEvent {};
struct TESFormDeleteEvent
{
    u32 formId; // 00
};
struct TESFormIDRemapEvent
{
    u32 oldID;  // 00
    u32 newID;  // 04
};
struct TESFurnitureEvent {};
struct TESGrabReleaseEvent {};
struct TESInitScriptEvent {};
struct TESLimbCrippleEvent {};
struct TESLoadGameEvent {};
struct TESLocationExploredEvent {};
struct TESLockChangedEvent {};
struct TESMagicEffectApplyEvent {};
struct TESMissionAcceptedEvent {};
struct TESObjectLoadedEvent {};
struct TESObjectREFRTranslationEvent {};
struct TESOnPCDialogueTargetEvent {};
struct TESOpenCloseEvent {};
struct TESPackageEvent {};
struct TESPerkEntryRunEvent {};
struct TESPickNewIdleEvent {};
struct TESPickpocketFailedEvent {};
struct TESPlayerActiveEffectEvent {};
struct TESPlayerFollowerWarpEvent {};
struct TESQuestInitEvent {};
struct TESQuestRejectedEvent {};
struct TESQuestStageEvent {};
struct TESQuestStageItemDoneEvent {};
struct TESQuestStartStopEvent {};
struct TESQuestTimerEvent {};
struct TESResetEvent {};
struct TESResolveNPCTemplatesEvent {};
struct TESSceneActionEvent {};
struct TESSceneEvent {};
struct TESScenePhaseEvent {};
struct TESSellEvent {};
struct TESSleepStartEvent {};
struct TESSleepStopEvent {};
struct TESSpellCastEvent {};
struct TESSpellCastFailureEvent {};
struct TESSwitchRaceCompleteEvent {};
struct TESTopicInfoEvent {};
struct TESTrackedStatsEvent {};
struct TESTrapHitEvent {};
struct TESTriggerEnterEvent {};
struct TESTriggerEvent {};
struct TESTriggerLeaveEvent {};
struct TESUniqueIDChangeEvent {};
struct TESWaitStartEvent {};
struct TESWaitStopEvent {};
struct TerminalMenuMenuItemRunEvent {};
struct TerminalMenuOnEnterEvent {};
struct WorkshopNPCTransferEvent {};
struct TESObjectREFRIsReadyForAttachEvent {};
struct DefaultObjectsReadyEvent
{
    struct Event {};
};
struct ObjectiveState
{
    struct Event {};
};
struct QuestStatus
{
    struct Event {};
};
struct RefillAliasEvent
{
    struct Event {};
};
struct TESQuestEvent
{
    struct Event {};
};
struct RolloverIsCrimeEvent
{
    struct Event {};
};
struct HideSubtitleEvent
{
    struct Event {};
};
struct ShowSubtitleEvent
{
    struct Event {};
};
struct MissionMenuStateEvent
{
    struct Event {};
};
struct ClearShipHudTarget
{
    struct Event {};
};
struct TryUpdateShipHudTarget
{
    struct Event {};
};
struct LocationTextEvent
{
    struct Event {};
};
struct TraitDiscoveryTextEvent
{
    struct Event {};
};
struct DaysPassed
{
    struct Event {};
};
struct HourPassed
{
    struct Event {};
};
struct ActorDamage
{
    struct Event {};
};
struct ActorItemEquipped
{
    struct Event {};
};
struct ActorKill
{
    struct Event {};
};
struct AssaultCrime
{
    struct Event {};
};
struct DisarmedEvent
{
    struct Event {};
};
struct FactionRankChange
{
    struct Event {};
};
struct GrandTheftHorse
{
    struct Event {};
};
struct MurderCrime
{
    struct Event {};
};
struct PiracyCrime
{
    struct Event {};
};
struct Bleedout
{
    struct Event {};
};
struct ContractedDisease
{
    struct Event {};
};
struct ReloadWeaponEvent
{
    struct Event {};
};
struct SpellsLearned
{
    struct Event {};
};
struct Bounty
{
    struct Event {};
};
struct ChestLooted
{
    struct Event {};
};
struct CriticalHitEvent
{
    struct Event {};
};
struct CustomMarkerUpdate
{
    struct Event {};
};
struct DaysJailed
{
    struct Event {};
};
struct EnteredUnity
{
    struct Event {};
};
struct FinePaid
{
    struct Event {};
};
struct ItemCrafted
{
    struct Event {};
};
struct ItemSteal
{
    struct Event {};
};
struct JailEscape
{
    struct Event {};
};
struct Jailing
{
    struct Event {};
};
struct LevelIncrease
{
    struct Event {};
};
struct LocationMarkerArrayUpdate
{
    struct Event {};
};
struct PlayerActiveEffectChanged
{
    struct Event {};
};
struct PlayerAmmoChanged
{
    struct Event {};
};
struct PlayerCharacterQuestEvent
{
    struct Event {};
};
struct PlayerDifficultySettingChanged
{
    struct Event {};
};
struct PlayerFastTravel
{
    struct Event {};
};
struct PlayerInDialogueChanged
{
    struct Event {};
};
struct PlayerLifeStateChanged
{
    struct Event {};
};
struct PlayerPickpocketSuccess
{
    struct Event {};
};
struct PoisonedWeapon
{
    struct Event {};
};
struct TerminalHacked
{
    struct Event {};
};
struct TravelMarkerStateChange
{
    struct Event {};
};
struct WeaponAttack
{
    struct Event {};
};
struct Trespass
{
    struct Event {};
};
struct VATSEvents
{
    struct ModeChange {};
};
struct VATSCommand {};
struct HoursPassed
{
    struct Event {};
};

// UI events

struct MenuOpenCloseEvent
{
    BSFixedString	MenuName;
    bool			bOpening;
};
struct MenuModeChangeEvent {};
struct MenuPauseChangeEvent {};
struct MenuPauseCounterChangeEvent {};
struct TutorialEvent {};
struct BSCursorTypeChange {};
struct BSCursorRotationChange {};
struct BIUIMenuVisiblePausedBeginEvent {};
struct BIUIMenuVisiblePausedEndEvent {};

// other events

struct RadioManager
{
    struct PipboyTransmitterDetectionEvent {};
};
struct XPChange
{
    struct Event
    {
        Actor* actor;
        void* unk08;
        float totalXP;
        float recievedXP;
        //...
    };
};
struct WeaponFiredEvent
{
    void* unk00;
    void* unk08;
    Actor* actor;
    //...
};
struct ActorEquipManagerEvent
{
    struct Event {};
    struct SpellEvent {};
};
struct AttachReference
{
    struct Event {};
};
//

namespace BSTEventDetail
{
    class SinkBase
    {
    public:
        virtual ~SinkBase() {};
    };

    class SourceBase
    {
    public:
        virtual ~SourceBase() {};
        DEFINE_MEMBER_FN_1(RegisterSink, void, 0x022CB470, SinkBase* sink);
        DEFINE_MEMBER_FN_1(UnregisterSink, void, 0x022CB600, SinkBase* sink);
    };
}

enum class BSEventNotifyControl
{
    kContinue,
    kStop
};
using EventResult = BSEventNotifyControl;

template <typename T>
class BSTEventSource;

template <typename T>
class BSTEventSink : public BSTEventDetail::SinkBase
{
public:
    virtual ~BSTEventSink() { };
    virtual	EventResult	ProcessEvent(const T& arEvent, BSTEventSource<T>* eventSource) { return EventResult::kContinue; }; // pure
};

template<typename T>
class BSTEventSource : public BSTEventDetail::SourceBase
{
public:
    virtual ~BSTEventSource();

    BSTArray<BSTEventSink<T>> pSinksA;
    u32 unk18;
    u32 unk1C;
    u32 unk20;
    u32 unk24;
};

class BSTGlobalEvent
{
public:
    virtual ~BSTGlobalEvent();

    template <typename T>
    class EventSource : public BSTEventSource<T>
    {
    public:
        virtual ~EventSource();
        virtual EventResult ProcessEvent(const T& arEvent, BSTEventSource<T>* eventSource);
    };
};

template <class T>
class BSTValueEventSink :
    public BSTEventSink<T>  // 00
{
};

template <class T>
class BSTValueRequestEvent
{
};

template<typename EventT>
BSTEventSource<EventT>* GetEventSource() { };

#define DECLARE_EVENT_SOURCE(Event, address) \
template<> inline BSTEventSource<Event> * GetEventSource() \
{ \
    typedef BSTEventSource<Event> * (*_GetEventSource)(); \
    RelocAddr<_GetEventSource> GetEventSource(address); \
    return GetEventSource(); \
}

#define DECLARE_EVENT_SOURCE_EX(Event, address) \
template<> inline BSTEventSource<Event> * GetEventSource() \
{ \
RelocPtr<BSTEventSource<Event>> es(address); \
return es.getPtr(); \
}

DECLARE_EVENT_SOURCE(ActivityTrackerActivityStartedEvent, 0x00603C30)
DECLARE_EVENT_SOURCE(ActorEquipManagerEvent::Event, 0x0189AF40)
DECLARE_EVENT_SOURCE(ActorEquipManagerEvent::SpellEvent, 0x0189AF40)
//DECLARE_EVENT_SOURCE(ActorInventoryEvent, 0x01984830)
DECLARE_EVENT_SOURCE(ActorValueEvents::ActorValueChangedEvent, 0x002B69E0)
//DECLARE_EVENT_SOURCE(AddSaveLoadEntryEvent, 0x01453850)
DECLARE_EVENT_SOURCE(AliasChangeEvent, 0x00CFB890)
DECLARE_EVENT_SOURCE(AnimationDataCleanupEvent, 0x0030DE70)
DECLARE_EVENT_SOURCE(AnimationDataSetupEvent, 0x0030DF10)
DECLARE_EVENT_SOURCE(AutoLoadDoorRolloverEvent, 0x00A93C20)
DECLARE_EVENT_SOURCE(BGSAcousticSpaceListener::StackChangedEvent, 0x017911E0)
DECLARE_EVENT_SOURCE(BGSActorDeathEvent, 0x013F8760)
DECLARE_EVENT_SOURCE(BGSAppPausedEvent, 0x01ED76C0)
DECLARE_EVENT_SOURCE(BGSCellGridLoadEvent, 0x00579770)
DECLARE_EVENT_SOURCE(BGSEventProcessedEvent, 0x00EED200)
//DECLARE_EVENT_SOURCE(BGSKeyword::OnDestroyEvent, 0x00C88300)
DECLARE_EVENT_SOURCE(BGSOnPlayerCompleteResearchEvent, 0x018036F0)
DECLARE_EVENT_SOURCE(BGSPlanet::PlayerKnowledgeFlagSetEvent, 0x007C0880)
DECLARE_EVENT_SOURCE(BGSScannerGuideEffectStatusUpdateEvent, 0x015A9960)
DECLARE_EVENT_SOURCE(BGSSceneActionPlayerDialogue::ActionEndEvent, 0x009C29A0)
DECLARE_EVENT_SOURCE(BGSSceneActionPlayerDialogue::ActionStartEvent, 0x009C2A40)
//DECLARE_EVENT_SOURCE(BSBethesdaPlatformBlocklistAvailableEvent, 0x02114360)
//DECLARE_EVENT_SOURCE(BSBethesdaPlatformCuratedListAvailableEvent, 0x0145FC20)
//DECLARE_EVENT_SOURCE(BSBethesdaPlatformInitializedEvent, 0x0145FB80)
//DECLARE_EVENT_SOURCE(BSBethesdaPlatformLinkedLoginEvent, 0x02108630)
//DECLARE_EVENT_SOURCE(BSBethesdaPlatformLoginEvent, 0x0145B940)
//DECLARE_EVENT_SOURCE(BSBethesdaPlatformShutdownEvent, 0x02BFA470)
DECLARE_EVENT_SOURCE(BSChargenAPI::BIDataUtils::MenuClosedEvent, 0x0165D4F0)
DECLARE_EVENT_SOURCE(BSChargenAPI::BIDataUtils::PresetNPCChangedEvent, 0x0165B620)
//DECLARE_EVENT_SOURCE(BSEntitlementFoundEvent, 0x021086D0)
//DECLARE_EVENT_SOURCE(BSMaterial::MaterialsReloadedEvent, 0x02454BA0)
//DECLARE_EVENT_SOURCE(BSRedeemableFoundEvent, 0x01343180)
//DECLARE_EVENT_SOURCE(BSResource::Archive2::ClearRegistryEvent, 0x02760390)
//DECLARE_EVENT_SOURCE(BSResource::Archive2::RegisteredEvent, 0x02760390)
//DECLARE_EVENT_SOURCE(BSResource::Archive2::StreamOpenedEvent, 0x02760390)
//DECLARE_EVENT_SOURCE(BSResource::ArchiveRegisteredEvent, 0x02760390)
//DECLARE_EVENT_SOURCE(BSResource::NameFoundEvent, 0x0275BE40)
//DECLARE_EVENT_SOURCE(BSScript::StatsEvent, 0x027D0600)
//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < FaderMenuDisplayState, 0x01E45A30)
//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < PlayerAutoAimActorEvent, 0x019FCAC0)
//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < PlayerCrosshairModeEvent, 0x0142AC00)
//DECLARE_EVENT_SOURCE(BSTValueRequestEvent < SaveLoadMessageStringEvent, 0x0155D990)
DECLARE_EVENT_SOURCE(BSWorldOriginShiftEvent, 0x006922F0)
DECLARE_EVENT_SOURCE(BarterMenu_BuyItem, 0x015DB010)
DECLARE_EVENT_SOURCE(BarterMenu_CloseMenu, 0x015DB330)
DECLARE_EVENT_SOURCE(BarterMenu_HideModel, 0x015DB1F0)
DECLARE_EVENT_SOURCE(BarterMenu_LoadModel, 0x015DB290)
DECLARE_EVENT_SOURCE(BarterMenu_SellItem, 0x015DAF70)
DECLARE_EVENT_SOURCE(BarterMenu_SetMouseOverModel, 0x015DAED0)
DECLARE_EVENT_SOURCE(BarterMenu_ShowFailureMessage, 0x015DB150)
DECLARE_EVENT_SOURCE(BarterMenu_ViewedItem, 0x015DB0B0)
DECLARE_EVENT_SOURCE(BinkMovieStoppedPlayingEvent, 0x01402B10)
DECLARE_EVENT_SOURCE(BlurEvent, 0x01E96C40)
DECLARE_EVENT_SOURCE(BoundaryMenu_FastTravel, 0x013884A0)
DECLARE_EVENT_SOURCE(BoundaryMenu_ShowMap, 0x01388400)
//DECLARE_EVENT_SOURCE(CameraCutEvent, 0x00F8AF90)
DECLARE_EVENT_SOURCE(CellAttachDetachEvent, 0x00586EB0)
DECLARE_EVENT_SOURCE(ChallengeCompletedEvent::Event, 0x00602A60)
DECLARE_EVENT_SOURCE(CharGen_BrowChange, 0x0165C870)
DECLARE_EVENT_SOURCE(CharGen_BrowColorChange, 0x0165C550)
DECLARE_EVENT_SOURCE(CharGen_CancelTextEntry, 0x0165CFF0)
DECLARE_EVENT_SOURCE(CharGen_CloseMenu, 0x0165D450)
DECLARE_EVENT_SOURCE(CharGen_CyclePronoun, 0x0165C410)
DECLARE_EVENT_SOURCE(CharGen_DirtScarsEtcChange, 0x0165CB90)
DECLARE_EVENT_SOURCE(CharGen_EndBodyChange, 0x0165BBF0)
DECLARE_EVENT_SOURCE(CharGen_EndTextEntry, 0x0165D090)
DECLARE_EVENT_SOURCE(CharGen_EyeColorChange, 0x0165C910)
DECLARE_EVENT_SOURCE(CharGen_FacialHairChange, 0x0165C690)
DECLARE_EVENT_SOURCE(CharGen_FacialHairColorChange, 0x0165C5F0)
DECLARE_EVENT_SOURCE(CharGen_HairChange, 0x0165C7D0)
DECLARE_EVENT_SOURCE(CharGen_HairColorChange, 0x0165C730)
DECLARE_EVENT_SOURCE(CharGen_HeadpartPlusSelectorChange, 0x0165CCD0)
DECLARE_EVENT_SOURCE(CharGen_HeadpartPresetChange, 0x0165D310)
DECLARE_EVENT_SOURCE(CharGen_JewelryChange, 0x0165BDD0)
DECLARE_EVENT_SOURCE(CharGen_JewelryColorChange, 0x0165BD30)
DECLARE_EVENT_SOURCE(CharGen_MakeupChange, 0x0165B830)
DECLARE_EVENT_SOURCE(CharGen_MarkingsChange, 0x0165B790)
DECLARE_EVENT_SOURCE(CharGen_PostBlendColorOptionChange, 0x0165B970)
DECLARE_EVENT_SOURCE(CharGen_PostBlendFaceChange, 0x0165BA10)
DECLARE_EVENT_SOURCE(CharGen_PostBlendIntensityChange, 0x0165B8D0)
DECLARE_EVENT_SOURCE(CharGen_PresetChange, 0x0165D3B0)
DECLARE_EVENT_SOURCE(CharGen_RollOffLocomotion, 0x0165BFB0)
DECLARE_EVENT_SOURCE(CharGen_RollOnLocomotion, 0x0165C050)
DECLARE_EVENT_SOURCE(CharGen_RotatePaperdoll, 0x0165C0F0)
DECLARE_EVENT_SOURCE(CharGen_SetAdditionalSlider, 0x0165BB50)
DECLARE_EVENT_SOURCE(CharGen_SetBackground, 0x0165C9B0)
DECLARE_EVENT_SOURCE(CharGen_SetBlockInputUnderPopup, 0x0165BAB0)
DECLARE_EVENT_SOURCE(CharGen_SetBodyValues, 0x0165CE10)
DECLARE_EVENT_SOURCE(CharGen_SetCameraPosition, 0x0165CD70)
DECLARE_EVENT_SOURCE(CharGen_SetPronoun, 0x0165C370)
DECLARE_EVENT_SOURCE(CharGen_SetSex, 0x0165D270)
DECLARE_EVENT_SOURCE(CharGen_SetSlider, 0x0165D1D0)
DECLARE_EVENT_SOURCE(CharGen_SetTrait, 0x0165CA50)
DECLARE_EVENT_SOURCE(CharGen_ShowChooseBackgroundMessage, 0x0165CEB0)
DECLARE_EVENT_SOURCE(CharGen_ShowPlayerRenameMessage, 0x0165CF50)
DECLARE_EVENT_SOURCE(CharGen_SkintoneChange, 0x0165CC30)
DECLARE_EVENT_SOURCE(CharGen_StartBodyChange, 0x0165BC90)
DECLARE_EVENT_SOURCE(CharGen_StartTextEntry, 0x0165D130)
DECLARE_EVENT_SOURCE(CharGen_SwitchBodyType, 0x0165C190)
DECLARE_EVENT_SOURCE(CharGen_SwitchLocomotion, 0x0165C230)
DECLARE_EVENT_SOURCE(CharGen_TeethChange, 0x0165C4B0)
DECLARE_EVENT_SOURCE(CharGen_TeethRollOff, 0x0165BE70)
DECLARE_EVENT_SOURCE(CharGen_TeethRollOn, 0x0165BF10)
DECLARE_EVENT_SOURCE(CharGen_ToggleMarking, 0x0165CAF0)
DECLARE_EVENT_SOURCE(CharGen_TogglePreviewHabSuit, 0x0165C2D0)
//DECLARE_EVENT_SOURCE(CharacterBeginLevelUpEvent, 0x01750070)
//DECLARE_EVENT_SOURCE(CharacterFinishLevelUpEvent, 0x0147DCF0)
DECLARE_EVENT_SOURCE(ClearHUDMessagesEvent, 0x01491A00)
DECLARE_EVENT_SOURCE(ClearQuickContainerEvent, 0x00A93CC0)
DECLARE_EVENT_SOURCE(ContainerMenuClosed::Event, 0x013F2700)
DECLARE_EVENT_SOURCE(ContainerMenu_CloseMenu, 0x0145B1A0)
DECLARE_EVENT_SOURCE(ContainerMenu_HideModel, 0x01EB8A00)
DECLARE_EVENT_SOURCE(ContainerMenu_Jettison, 0x01EB88C0)
DECLARE_EVENT_SOURCE(ContainerMenu_LoadModel, 0x01EB8AA0)
DECLARE_EVENT_SOURCE(ContainerMenu_OpenRefuelMenu, 0x01EB8960)
DECLARE_EVENT_SOURCE(ContainerMenu_SetMouseOverModel, 0x01EB8820)
DECLARE_EVENT_SOURCE(ContainerMenu_TakeAll, 0x01EB8B40)
DECLARE_EVENT_SOURCE(ContainerMenu_ToggleEquip, 0x01EB8C80)
//DECLARE_EVENT_SOURCE(ContainerMenu_TransferAllResources, 0x01E3FA50)
DECLARE_EVENT_SOURCE(ContainerMenu_TransferItem, 0x01EB8D20)
DECLARE_EVENT_SOURCE(ContextStackChangedEvent, 0x022F8690)
DECLARE_EVENT_SOURCE(ControlsRemappedEvent, 0x01534A60)
DECLARE_EVENT_SOURCE(CraftingMenu_CraftItem, 0x0144C8D0)
DECLARE_EVENT_SOURCE(CraftingMenu_ExitBench, 0x0144CB50)
DECLARE_EVENT_SOURCE(CraftingMenu_Highlight3D, 0x01719B00)
DECLARE_EVENT_SOURCE(CraftingMenu_InstallMod, 0x0144C790)
DECLARE_EVENT_SOURCE(CraftingMenu_RenameItem, 0x0144C3D0)
DECLARE_EVENT_SOURCE(CraftingMenu_RevertHighlight, 0x01719A60)
DECLARE_EVENT_SOURCE(CraftingMenu_RevertedModdedItem, 0x0144C470)
DECLARE_EVENT_SOURCE(CraftingMenu_SelectedMod, 0x0144C510)
DECLARE_EVENT_SOURCE(CraftingMenu_SelectedModSlot, 0x0144C5B0)
DECLARE_EVENT_SOURCE(CraftingMenu_SelectedModdableItem, 0x0144C650)
DECLARE_EVENT_SOURCE(CraftingMenu_SelectedRecipe, 0x0144C830)
DECLARE_EVENT_SOURCE(CraftingMenu_SessionSummaryEvent, 0x0144C970)
DECLARE_EVENT_SOURCE(CraftingMenu_SetInspectControls, 0x0144CAB0)
DECLARE_EVENT_SOURCE(CraftingMenu_ToggleTracking, 0x0144CA10)
DECLARE_EVENT_SOURCE(CraftingMenu_ViewingModdableItem, 0x0144C6F0)
//DECLARE_EVENT_SOURCE(CreationUninstalledEvent, 0x01350880)
DECLARE_EVENT_SOURCE(DataMenu_CloseMenu, 0x016684C0)
DECLARE_EVENT_SOURCE(DataMenu_ClosedForSubMenu, 0x01668560)
DECLARE_EVENT_SOURCE(DataMenu_Missions, 0x01668740)
//DECLARE_EVENT_SOURCE(DataMenu_OpenPauseMenu, 0x01606520)
DECLARE_EVENT_SOURCE(DataMenu_PlotToLocation, 0x01667FC0)
DECLARE_EVENT_SOURCE(DataMenu_Reopened, 0x01668420)
DECLARE_EVENT_SOURCE(DataMenu_SelectedAttributesMenu, 0x01668100)
DECLARE_EVENT_SOURCE(DataMenu_SelectedInventoryMenu, 0x016681A0)
DECLARE_EVENT_SOURCE(DataMenu_SelectedMapMenu, 0x01668240)
DECLARE_EVENT_SOURCE(DataMenu_SelectedPowersMenu, 0x01668060)
DECLARE_EVENT_SOURCE(DataMenu_SelectedShipMenu, 0x016682E0)
DECLARE_EVENT_SOURCE(DataMenu_SelectedStatusMenu, 0x01668380)
DECLARE_EVENT_SOURCE(DataMenu_SetMenuForQuickEntry, 0x016686A0)
DECLARE_EVENT_SOURCE(DataMenu_SetPaperDollActive, 0x01668600)
//DECLARE_EVENT_SOURCE(DataMenu_StartCloseAnim, 0x013FB180)
DECLARE_EVENT_SOURCE(DataSlateButtons_acceptClicked, 0x015E62B0)
DECLARE_EVENT_SOURCE(DataSlateButtons_cancelClicked, 0x015E6210)
DECLARE_EVENT_SOURCE(DataSlateMenu_playSFX, 0x015E6350)
DECLARE_EVENT_SOURCE(DataSlateMenu_toggleAudio, 0x015E63F0)
DECLARE_EVENT_SOURCE(DefaultObjectsReadyEvent::Event, 0x00BCFCD0)
//DECLARE_EVENT_SOURCE(DeferredDeleter::QueueStatusEvent, 0x0180A6F0)
DECLARE_EVENT_SOURCE(DialogueMenu_CompleteExit, 0x015965F0)
DECLARE_EVENT_SOURCE(DialogueMenu_OnDialogueSelect, 0x01EBD1B0)
DECLARE_EVENT_SOURCE(DialogueMenu_OnListVisibilityChange, 0x01EBCFD0)
DECLARE_EVENT_SOURCE(DialogueMenu_OnPersuasionAutoWin, 0x01EBD250)
DECLARE_EVENT_SOURCE(DialogueMenu_OnScriptedDialogueSelect, 0x01EBCF30)
DECLARE_EVENT_SOURCE(DialogueMenu_RequestExit, 0x01EBD070)
DECLARE_EVENT_SOURCE(DialogueMenu_RequestSkipDialogue, 0x01EBD110)
DECLARE_EVENT_SOURCE(DisplayFatigueWarningEvent, 0x015BB970)
//DECLARE_EVENT_SOURCE(DocAcceptMenu_Accept, 0x01335B90)
//DECLARE_EVENT_SOURCE(DynNavMeshOpRecord::CompleteEvent, 0x006862D0)
//DECLARE_EVENT_SOURCE(DynamicNavMeshBuildCompleteEvent, 0x003B4240)
DECLARE_EVENT_SOURCE(EndLoadGameEvent, 0x0035DA70)
//DECLARE_EVENT_SOURCE(ExitVehicleEvent, 0x0132E070)
DECLARE_EVENT_SOURCE(ExperienceMeterDisplayData, 0x015BAC90)
DECLARE_EVENT_SOURCE(FaderMenuDisplayState, 0x01EBEB30)
DECLARE_EVENT_SOURCE(FavoritesMenu_AssignQuickkey, 0x01EC6AD0)
DECLARE_EVENT_SOURCE(FavoritesMenu_UseQuickkey, 0x01EC6A30)
//DECLARE_EVENT_SOURCE(GameActiveChangeEvent, 0x01372540)
//DECLARE_EVENT_SOURCE(GameResetEvent, 0x01830280)
DECLARE_EVENT_SOURCE(GameStalledEvent, 0x027F6E10)
DECLARE_EVENT_SOURCE(GlobalFunc_CloseAllMenus, 0x015AFA90)
DECLARE_EVENT_SOURCE(GlobalFunc_CloseMenu, 0x015AFB30)
DECLARE_EVENT_SOURCE(GlobalFunc_PlayMenuSound, 0x015AFD10)
DECLARE_EVENT_SOURCE(GlobalFunc_StartGameRender, 0x015AFC70)
DECLARE_EVENT_SOURCE(GlobalFunc_UserEvent, 0x015AFBD0)
DECLARE_EVENT_SOURCE(HUDActivityIncreaseEvent, 0x002B7430)
DECLARE_EVENT_SOURCE(HUDCrewBuffMessageEvent, 0x01440C20)
DECLARE_EVENT_SOURCE(HUDModeEvent, 0x0146DC60)
DECLARE_EVENT_SOURCE(HUDNotificationEvent, 0x015C8470)
DECLARE_EVENT_SOURCE(HUDNotification_MissionActiveWidgetUpdate, 0x015C83D0)
DECLARE_EVENT_SOURCE(HUDNotification_OpenDataMenu, 0x015C8290)
DECLARE_EVENT_SOURCE(HUDNotification_OpenMissionMenu, 0x015C81F0)
DECLARE_EVENT_SOURCE(HUDNotification_SetMissionActive, 0x015C8330)
DECLARE_EVENT_SOURCE(HUDRolloverActivationButtonEvent, 0x0146DB20)
DECLARE_EVENT_SOURCE(HUDRolloverActivationQCItemPressEvent, 0x0146DA80)
DECLARE_EVENT_SOURCE(HUDWeaponWorldFOVMultChangedEvent, 0x0085A5E0)
DECLARE_EVENT_SOURCE(HangarShipSelection_ChangeSystemDisplay, 0x013F28E0)
DECLARE_EVENT_SOURCE(HangarShipSelection_RepairShip, 0x013F27A0)
DECLARE_EVENT_SOURCE(HangarShipSelection_UpgradeSystem, 0x013F2840)
DECLARE_EVENT_SOURCE(HomeShipSetEvent, 0x0130DEA0)
DECLARE_EVENT_SOURCE(ImageFixtureEvent_RequestImage, 0x0255DB70)
DECLARE_EVENT_SOURCE(ImageFixtureEvent_UnregisterImage, 0x0255DAD0)
DECLARE_EVENT_SOURCE(InventoryItemEvent::Event, 0x012D5100)
DECLARE_EVENT_SOURCE(InventoryMenu_Change3DView, 0x0145B100)
DECLARE_EVENT_SOURCE(InventoryMenu_DropItem, 0x015EE150)
DECLARE_EVENT_SOURCE(InventoryMenu_HideModel, 0x015EE290)
DECLARE_EVENT_SOURCE(InventoryMenu_LoadModel, 0x015EE330)
DECLARE_EVENT_SOURCE(InventoryMenu_OnEnterCategory, 0x015EDE30)
DECLARE_EVENT_SOURCE(InventoryMenu_OpenCargoHold, 0x015EE0B0)
DECLARE_EVENT_SOURCE(InventoryMenu_PaperDollTryOn, 0x0145B060)
DECLARE_EVENT_SOURCE(InventoryMenu_ResetPaperDollInv, 0x0145AFC0)
DECLARE_EVENT_SOURCE(InventoryMenu_SelectItem, 0x015EE1F0)
DECLARE_EVENT_SOURCE(InventoryMenu_SetMouseOverModel, 0x015EDED0)
//DECLARE_EVENT_SOURCE(InventoryMenu_StartCloseAnim, 0x0158B230)
DECLARE_EVENT_SOURCE(InventoryMenu_ToggleFavorite, 0x015EE010)
DECLARE_EVENT_SOURCE(InventoryMenu_ToggleHelmet, 0x014DDAF0)
DECLARE_EVENT_SOURCE(InventoryMenu_ToggleSuit, 0x014DDA50)
DECLARE_EVENT_SOURCE(Inventory_SetSort, 0x0146D9E0)
DECLARE_EVENT_SOURCE(LevelIncrease::Event, 0x01A3F2A0)
DECLARE_EVENT_SOURCE(LevelUp_AnimFinished, 0x015BABF0)
DECLARE_EVENT_SOURCE(LevelUp_OnWidgetShown, 0x015BAA10)
DECLARE_EVENT_SOURCE(LevelUp_OpenDataMenu, 0x015BAAB0)
DECLARE_EVENT_SOURCE(LevelUp_ShowSkills, 0x015BAB50)
DECLARE_EVENT_SOURCE(LoadScreenEndEvent, 0x00589F50)
DECLARE_EVENT_SOURCE(LoadScreenStartEvent, 0x00589FF0)
DECLARE_EVENT_SOURCE(LoadingMenu_RefreshText, 0x01ECD020)
DECLARE_EVENT_SOURCE(LocationTextWidget_FinishedQueue, 0x015BA970)
DECLARE_EVENT_SOURCE(MainMenu_ActionCanceled, 0x01ED53E0)
DECLARE_EVENT_SOURCE(MainMenu_ActionConfirmed, 0x01ED5480)
DECLARE_EVENT_SOURCE(MainMenu_ConfirmLoad, 0x01ED52A0)
DECLARE_EVENT_SOURCE(MainMenu_DeleteSave, 0x01ED5200)
//DECLARE_EVENT_SOURCE(MainMenu_LegalScreenComplete, 0x01E5BAE0)
DECLARE_EVENT_SOURCE(MainMenu_SetCharacter, 0x01ED5160)
DECLARE_EVENT_SOURCE(MainMenu_StartAction, 0x01ED5520)
DECLARE_EVENT_SOURCE(MainMenu_StartLoad, 0x01ED5340)
DECLARE_EVENT_SOURCE(MainMenu_UploadSave, 0x01ED50C0)
DECLARE_EVENT_SOURCE(MessageBoxMenu_OnBackOut, 0x01EDDC70)
DECLARE_EVENT_SOURCE(MessageBoxMenu_OnButtonPress, 0x01EDDDB0)
DECLARE_EVENT_SOURCE(MessageBoxMenu_OnScriptedButtonPress, 0x01EDDD10)
DECLARE_EVENT_SOURCE(MissionBoard_MissionEntryChanged, 0x015F3810)
DECLARE_EVENT_SOURCE(MissionBoard_MissionEntryPressed, 0x015F38B0)
DECLARE_EVENT_SOURCE(MissionMenu_ClearState, 0x015E1230)
DECLARE_EVENT_SOURCE(MissionMenu_PlotToLocation, 0x015E1550)
DECLARE_EVENT_SOURCE(MissionMenu_RejectQuest, 0x015E1410)
DECLARE_EVENT_SOURCE(MissionMenu_SaveCategoryIndex, 0x015E12D0)
DECLARE_EVENT_SOURCE(MissionMenu_SaveOpenedId, 0x015E1370)
DECLARE_EVENT_SOURCE(MissionMenu_ShowItemLocation, 0x015E15F0)
//DECLARE_EVENT_SOURCE(MissionMenu_ToggleQTDisplay, 0x0157EBC0)
DECLARE_EVENT_SOURCE(MissionMenu_ToggleTrackingQuest, 0x015E14B0)
DECLARE_EVENT_SOURCE(ModelReferenceEffectEvents::ReferenceEffectFinished, 0x01775630)
DECLARE_EVENT_SOURCE(MonocleMenu_Bioscan, 0x015FE830)
DECLARE_EVENT_SOURCE(MonocleMenu_FastTravel, 0x015FE330)
DECLARE_EVENT_SOURCE(MonocleMenu_Harvest, 0x015FE8D0)
DECLARE_EVENT_SOURCE(MonocleMenu_Initialize, 0x015FEAB0)
//DECLARE_EVENT_SOURCE(MonocleMenu_OpenDoor, 0x0159B470)
DECLARE_EVENT_SOURCE(MonocleMenu_Outpost, 0x015FE970)
DECLARE_EVENT_SOURCE(MonocleMenu_PhotoMode, 0x015FE650)
DECLARE_EVENT_SOURCE(MonocleMenu_Shutdown, 0x015FEA10)
DECLARE_EVENT_SOURCE(MonocleMenu_SocialSpell, 0x015FE790)
DECLARE_EVENT_SOURCE(MonocleMenu_StartContainerView, 0x015FE470)
DECLARE_EVENT_SOURCE(MonocleMenu_StopContainerView, 0x015FE3D0)
DECLARE_EVENT_SOURCE(MonocleMenu_SurfaceMap, 0x015FE6F0)
DECLARE_EVENT_SOURCE(MonocleMenu_UseListScrollControls, 0x015FE290)
DECLARE_EVENT_SOURCE(MonocleMenu_ZoomIn, 0x015FE5B0)
DECLARE_EVENT_SOURCE(MonocleMenu_ZoomOut, 0x015FE510)
DECLARE_EVENT_SOURCE(OpenContainerMenuEventData, 0x0146DD00)
DECLARE_EVENT_SOURCE(OpenContainerMenuFromListenerEvent, 0x0146DBC0)
DECLARE_EVENT_SOURCE(PauseMenu_ActionCanceled, 0x016713C0)
DECLARE_EVENT_SOURCE(PauseMenu_ConfirmAction, 0x01671460)
DECLARE_EVENT_SOURCE(PauseMenu_ConfirmLoad, 0x01671280)
DECLARE_EVENT_SOURCE(PauseMenu_ConfirmSave, 0x016710A0)
DECLARE_EVENT_SOURCE(PauseMenu_DeleteSave, 0x016711E0)
DECLARE_EVENT_SOURCE(PauseMenu_QuitToDesktop, 0x01671000)
DECLARE_EVENT_SOURCE(PauseMenu_SetCharacter, 0x01671140)
DECLARE_EVENT_SOURCE(PauseMenu_StartAction, 0x01671500)
DECLARE_EVENT_SOURCE(PauseMenu_StartLoad, 0x01671320)
DECLARE_EVENT_SOURCE(PauseMenu_UploadSave, 0x01670F60)
DECLARE_EVENT_SOURCE(PerkChanged::Event, 0x00CA46A0)
DECLARE_EVENT_SOURCE(PhotoGallery_DeletePhoto, 0x013D8A10)
DECLARE_EVENT_SOURCE(PhotoMode_InitializeCategory, 0x01604F40)
//DECLARE_EVENT_SOURCE(PhotoMode_RefineSetting, 0x015A1D50)
DECLARE_EVENT_SOURCE(PhotoMode_ResetToDefaults, 0x01604EA0)
DECLARE_EVENT_SOURCE(PhotoMode_SliderChanged, 0x01604E00)
DECLARE_EVENT_SOURCE(PhotoMode_StepperChanged, 0x01604D60)
DECLARE_EVENT_SOURCE(PhotoMode_TakeSnapshot, 0x01604CC0)
DECLARE_EVENT_SOURCE(PhotoMode_ToggleHelmet, 0x01604B80)
DECLARE_EVENT_SOURCE(PhotoMode_ToggleUI, 0x01604C20)
DECLARE_EVENT_SOURCE(PickRefStateChangedEvent, 0x005F8590)
DECLARE_EVENT_SOURCE(PickRefUpdateEvent, 0x00F4FAC0)
DECLARE_EVENT_SOURCE(PickpocketMenu_OnItemSelect, 0x01609590)
DECLARE_EVENT_SOURCE(PlayBink_CloseMenu, 0x016724A0)
DECLARE_EVENT_SOURCE(PlayerAutoAimActorEvent, 0x01A74670)
DECLARE_EVENT_SOURCE(PlayerCharacterQuestEvent::Event, 0x00D0E3A0)
DECLARE_EVENT_SOURCE(PlayerControls::PlayerIronSightsEndEvent, 0x012C48C0)
DECLARE_EVENT_SOURCE(PlayerControls::PlayerIronSightsStartEvent, 0x012C4960)
DECLARE_EVENT_SOURCE(PlayerControls::PlayerJumpPressEvent, 0x012BCB20)
DECLARE_EVENT_SOURCE(PlayerControls::PlayerJumpReleaseEvent, 0x012BCA80)
DECLARE_EVENT_SOURCE(PlayerControls::PlayerZeroGSprintJustPressedEvent, 0x012BEB40)
DECLARE_EVENT_SOURCE(PlayerControls::PlayerZeroGSprintReleasedEvent, 0x012BEAA0)
DECLARE_EVENT_SOURCE(PlayerCrosshairModeEvent, 0x014894A0)
DECLARE_EVENT_SOURCE(PlayerDetectionLevelChangeEvent, 0x01496070)
//DECLARE_EVENT_SOURCE(PlayerFastTravelFromVehicleEvent, 0x0211EFB0)
DECLARE_EVENT_SOURCE(PlayerInCombatChangeEvent, 0x01A7B850)
DECLARE_EVENT_SOURCE(PlayerSetWeaponStateEvent, 0x015CB7F0)
DECLARE_EVENT_SOURCE(PlayerSneakingChangeEvent, 0x012BE5F0)
DECLARE_EVENT_SOURCE(PlayerUpdateEvent, 0x014DDB90)
DECLARE_EVENT_SOURCE(PowersMenu_ActivateEssence, 0x013DFBF0)
DECLARE_EVENT_SOURCE(PowersMenu_EquipPower, 0x013DFD30)
DECLARE_EVENT_SOURCE(PowersMenu_FavoritePower, 0x013DFC90)
//DECLARE_EVENT_SOURCE(ProjectileBeginUpdateEvent, 0x01AC2CB0)
//DECLARE_EVENT_SOURCE(ProjectileKillEvent, 0x01AC2CB0)
//DECLARE_EVENT_SOURCE(QueuedReferenceFinishedEvent, 0x0055FBE0)
DECLARE_EVENT_SOURCE(ReferenceCellLoadedTemps, 0x009284A0)
DECLARE_EVENT_SOURCE(ReferenceQueuedEvent, 0x00572D80)
//DECLARE_EVENT_SOURCE(RefreshDataMenuForSkillsChangeEvent, 0x013FB0E0)
DECLARE_EVENT_SOURCE(Refuel_Accept, 0x0162A100)
DECLARE_EVENT_SOURCE(Refuel_Cancel, 0x0162A060)
DECLARE_EVENT_SOURCE(Research::ResearchProgressEvent, 0x01803200)
DECLARE_EVENT_SOURCE(ResearchMenu_AddMaterial, 0x01614630)
DECLARE_EVENT_SOURCE(ResearchMenu_CategorySelected, 0x01614810)
DECLARE_EVENT_SOURCE(ResearchMenu_ExitMenu, 0x01614590)
DECLARE_EVENT_SOURCE(ResearchMenu_HideModel, 0x016144F0)
DECLARE_EVENT_SOURCE(ResearchMenu_PreviewProject, 0x01614770)
DECLARE_EVENT_SOURCE(ResearchMenu_ProjectViewed, 0x016146D0)
DECLARE_EVENT_SOURCE(ResearchMenu_SetInspectControls, 0x01614450)
DECLARE_EVENT_SOURCE(ResearchMenu_ToggleTrackingProject, 0x016143B0)
DECLARE_EVENT_SOURCE(ResetHistoryDataEvent, 0x00841F10)
//DECLARE_EVENT_SOURCE(ResourceServerLogDumped, 0x02774EF0)
DECLARE_EVENT_SOURCE(Reticle_OnLongAnimFinished, 0x0167B650)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceAttach, 0x003EA520)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceCleared3d, 0x006809A0)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceDestroy, 0x00680860)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceDetach, 0x003EA480)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceInit, 0x00680900)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceRecycle, 0x006807C0)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::ReferenceSet3d, 0x00680A40)
DECLARE_EVENT_SOURCE(RuntimeComponentDBFactory::Release3DRelatedData, 0x00681560)
DECLARE_EVENT_SOURCE(SaveLoadEvent, 0x012EE230)
DECLARE_EVENT_SOURCE(SaveLoadMessageStringEvent, 0x015C0870)
DECLARE_EVENT_SOURCE(SecurityMenu_BackOutKey, 0x01622BC0)
DECLARE_EVENT_SOURCE(SecurityMenu_CloseMenu, 0x01622D00)
DECLARE_EVENT_SOURCE(SecurityMenu_ConfirmExit, 0x016229E0)
DECLARE_EVENT_SOURCE(SecurityMenu_EliminateUnusedKeys, 0x01622A80)
DECLARE_EVENT_SOURCE(SecurityMenu_GetRingHint, 0x01622B20)
DECLARE_EVENT_SOURCE(SecurityMenu_SelectNewKey, 0x01622940)
DECLARE_EVENT_SOURCE(SecurityMenu_TryUseKey, 0x01622C60)
DECLARE_EVENT_SOURCE(SettingsPanel_CheckBoxChanged, 0x01537890)
DECLARE_EVENT_SOURCE(SettingsPanel_ClearBinding, 0x01537610)
//DECLARE_EVENT_SOURCE(SettingsPanel_LinkClicked, 0x014D64F0)
DECLARE_EVENT_SOURCE(SettingsPanel_OpenCategory, 0x015376B0)
DECLARE_EVENT_SOURCE(SettingsPanel_OpenSettings, 0x01537750)
DECLARE_EVENT_SOURCE(SettingsPanel_RemapConfirmed, 0x01537570)
DECLARE_EVENT_SOURCE(SettingsPanel_RemapMode, 0x01537BB0)
DECLARE_EVENT_SOURCE(SettingsPanel_ResetToDefaults, 0x015377F0)
DECLARE_EVENT_SOURCE(SettingsPanel_SaveControls, 0x01537B10)
DECLARE_EVENT_SOURCE(SettingsPanel_SaveSettings, 0x01537A70)
DECLARE_EVENT_SOURCE(SettingsPanel_SliderChanged, 0x015379D0)
DECLARE_EVENT_SOURCE(SettingsPanel_StepperChanged, 0x01537930)
DECLARE_EVENT_SOURCE(SettingsPanel_ValidateControls, 0x015374D0)
//DECLARE_EVENT_SOURCE(SettingsSavedEvent, 0x014D6380)
DECLARE_EVENT_SOURCE(ShipBuilder_CloseAllMenus, 0x004ED0E0)
DECLARE_EVENT_SOURCE(ShipCameraStateToggled, 0x00FA5100)
DECLARE_EVENT_SOURCE(ShipCrewAssignMenu_Assign, 0x01628820)
DECLARE_EVENT_SOURCE(ShipCrewAssignMenu_Unassign, 0x01628780)
DECLARE_EVENT_SOURCE(ShipCrewMenu_Close, 0x013F2660)
DECLARE_EVENT_SOURCE(ShipCrewMenu_OpenAssignMenu, 0x01542650)
DECLARE_EVENT_SOURCE(ShipCrewMenu_SetSort, 0x015426F0)
DECLARE_EVENT_SOURCE(ShipCrewMenu_ViewedItem, 0x016288D0)
DECLARE_EVENT_SOURCE(ShipEditor_ChangeModuleCategory, 0x004BCB90)
DECLARE_EVENT_SOURCE(ShipEditor_OnColorPickerControlChanged, 0x0039A530)
DECLARE_EVENT_SOURCE(ShipEditor_OnColorPickerTabChanged, 0x0039A670)
DECLARE_EVENT_SOURCE(ShipEditor_OnColorSliderMouseInput, 0x0039A490)
DECLARE_EVENT_SOURCE(ShipEditor_OnExitConfirmCancel, 0x004AAC50)
DECLARE_EVENT_SOURCE(ShipEditor_OnExitConfirmExit, 0x004AACF0)
DECLARE_EVENT_SOURCE(ShipEditor_OnExitConfirmSaveAndExit, 0x004AABB0)
DECLARE_EVENT_SOURCE(ShipEditor_OnFlightCheckTabChanged, 0x004B0DE0)
DECLARE_EVENT_SOURCE(ShipEditor_OnHintButtonActivated, 0x004ED040)
DECLARE_EVENT_SOURCE(ShipEditor_OnRecentColorSwatchClicked, 0x0039A5D0)
DECLARE_EVENT_SOURCE(ShipEditor_OnRenameEndEditText, 0x004B6BF0)
DECLARE_EVENT_SOURCE(ShipEditor_OnRenameInputCancelled, 0x004B6C90)
DECLARE_EVENT_SOURCE(ShipEditor_OnWeaponGroupChanged, 0x004B0D40)
DECLARE_EVENT_SOURCE(ShipEditor_PreviewShipPart, 0x004BCC30)
DECLARE_EVENT_SOURCE(ShipEditor_PreviewUpgrade, 0x00394420)
DECLARE_EVENT_SOURCE(ShipEditor_RemoveAll3D, 0x004ECFA0)
DECLARE_EVENT_SOURCE(ShipEditor_SelectedShipPart, 0x004BCCD0)
DECLARE_EVENT_SOURCE(ShipEditor_SelectedUpgrade, 0x00394380)
DECLARE_EVENT_SOURCE(ShipEditor_SystemSelected, 0x0038DB90)
DECLARE_EVENT_SOURCE(ShipHudQuickContainer_TransferItem, 0x0167B790)
DECLARE_EVENT_SOURCE(ShipHudQuickContainer_TransferMenu, 0x015702A0)
DECLARE_EVENT_SOURCE(ShipHud_AbortJump, 0x0167B6F0)
DECLARE_EVENT_SOURCE(ShipHud_Activate, 0x01570340)
DECLARE_EVENT_SOURCE(ShipHud_BodyViewMarkerDimensions, 0x0156FB20)
DECLARE_EVENT_SOURCE(ShipHud_ChangeComponentSelection, 0x01570660)
DECLARE_EVENT_SOURCE(ShipHud_CloseMenu, 0x015707A0)
DECLARE_EVENT_SOURCE(ShipHud_Deselect, 0x015703E0)
DECLARE_EVENT_SOURCE(ShipHud_DockRequested, 0x0167B830)
DECLARE_EVENT_SOURCE(ShipHud_FarTravel, 0x0156F9E0)
DECLARE_EVENT_SOURCE(ShipHud_HailAccepted, 0x0156FF80)
DECLARE_EVENT_SOURCE(ShipHud_HailCancelled, 0x01570020)
DECLARE_EVENT_SOURCE(ShipHud_HailShip, 0x0167B8D0)
DECLARE_EVENT_SOURCE(ShipHud_JumpToQuestMarker, 0x0156FE40)
DECLARE_EVENT_SOURCE(ShipHud_Land, 0x01570200)
DECLARE_EVENT_SOURCE(ShipHud_LandingMarkerMap, 0x015700C0)
DECLARE_EVENT_SOURCE(ShipHud_Map, 0x01570160)
DECLARE_EVENT_SOURCE(ShipHud_OnMonocleToggle, 0x0156FEE0)
DECLARE_EVENT_SOURCE(ShipHud_OpenPhotoMode, 0x0156FBC0)
DECLARE_EVENT_SOURCE(ShipHud_Repair, 0x0156FA80)
DECLARE_EVENT_SOURCE(ShipHud_SetTargetMode, 0x0156FDA0)
DECLARE_EVENT_SOURCE(ShipHud_Target, 0x01570480)
DECLARE_EVENT_SOURCE(ShipHud_TargetShipSystem, 0x0156FD00)
DECLARE_EVENT_SOURCE(ShipHud_UntargetShipSystem, 0x0156FC60)
DECLARE_EVENT_SOURCE(ShipHud_UpdateComponentPower, 0x01570700)
DECLARE_EVENT_SOURCE(ShipHud_UpdateTargetPanelRect, 0x0167B090)
DECLARE_EVENT_SOURCE(ShowCustomWatchAlert, 0x0149BF20)
DECLARE_EVENT_SOURCE(ShowHUDMessageEvent, 0x01491AA0)
DECLARE_EVENT_SOURCE(ShowLongShipBootup, 0x015705C0)
DECLARE_EVENT_SOURCE(ShowingQuestMarketTextEvent, 0x01486000)
DECLARE_EVENT_SOURCE(SkillsMenu_Accept, 0x01630290)
DECLARE_EVENT_SOURCE(SkillsMenu_AddPatch, 0x016301F0)
DECLARE_EVENT_SOURCE(SkillsMenu_Cancel, 0x01630330)
DECLARE_EVENT_SOURCE(SkillsMenu_ChangeCursorVisibility, 0x01630150)
DECLARE_EVENT_SOURCE(SkillsMenu_SaveLastCategory, 0x016300B0)
DECLARE_EVENT_SOURCE(SleepWaitMenu_InterruptRest, 0x01EE2160)
DECLARE_EVENT_SOURCE(SleepWaitMenu_StartRest, 0x01EE2200)
DECLARE_EVENT_SOURCE(SnapTemplateUtils::SnapReplaceEvent, 0x00941D80)
DECLARE_EVENT_SOURCE(Spaceship::BoughtEvent, 0x02162DC0)
DECLARE_EVENT_SOURCE(Spaceship::ContrabandScanWarningEvent, 0x021635E0)
DECLARE_EVENT_SOURCE(Spaceship::DockEvent, 0x02162F00)
DECLARE_EVENT_SOURCE(Spaceship::DynamicNavmeshCompleted, 0x021632C0)
DECLARE_EVENT_SOURCE(Spaceship::FarTravelEvent, 0x021634A0)
DECLARE_EVENT_SOURCE(Spaceship::GravJumpEvent, 0x0167B3D0)
DECLARE_EVENT_SOURCE(Spaceship::LandedSetEvent, 0x0167B330)
DECLARE_EVENT_SOURCE(Spaceship::LandingEvent, 0x02163360)
DECLARE_EVENT_SOURCE(Spaceship::PlanetScanEvent, 0x02163540)
DECLARE_EVENT_SOURCE(Spaceship::PlayerMovementOutputEvent, 0x01570520)
DECLARE_EVENT_SOURCE(Spaceship::RampDownEvent, 0x02162AA0)
DECLARE_EVENT_SOURCE(Spaceship::RefueledEvent, 0x02162E60)
DECLARE_EVENT_SOURCE(Spaceship::RegisteredEvent, 0x02162BE0)
DECLARE_EVENT_SOURCE(Spaceship::ShieldEvent, 0x02162A00)
DECLARE_EVENT_SOURCE(Spaceship::ShipAddedEvent, 0x02162B40)
DECLARE_EVENT_SOURCE(Spaceship::ShipCollisionEvent, 0x02162960)
DECLARE_EVENT_SOURCE(Spaceship::ShipCustomizedEvent, 0x02162820)
DECLARE_EVENT_SOURCE(Spaceship::SoldEvent, 0x02162D20)
DECLARE_EVENT_SOURCE(Spaceship::SystemDamagedEvent, 0x021630E0)
DECLARE_EVENT_SOURCE(Spaceship::SystemPowerAllocationEvent, 0x02163180)
DECLARE_EVENT_SOURCE(Spaceship::SystemPowerChangeEvent, 0x02163220)
DECLARE_EVENT_SOURCE(Spaceship::SystemRepairedBIEvent, 0x02162FA0)
DECLARE_EVENT_SOURCE(Spaceship::SystemRepairedEvent, 0x02163040)
DECLARE_EVENT_SOURCE(Spaceship::TakeDamagEvent, 0x021628C0)
DECLARE_EVENT_SOURCE(Spaceship::TakeOffEvent, 0x02163400)
DECLARE_EVENT_SOURCE(SpaceshipBIEvents::ShipPowerAllocationBIEventSent, 0x017A28D0)
DECLARE_EVENT_SOURCE(SpaceshipWeaponBinding::SpaceshipWeaponBindingChangedEvent, 0x01311680)
DECLARE_EVENT_SOURCE(StarMap::PlanetTraitKnownEvent, 0x007C0920)
DECLARE_EVENT_SOURCE(StarMapMenu_ExecuteRoute, 0x016C5A20)
DECLARE_EVENT_SOURCE(StarMapMenu_Galaxy_FocusSystem, 0x016B4C70)
DECLARE_EVENT_SOURCE(StarMapMenu_LandingInputInProgress, 0x016961D0)
DECLARE_EVENT_SOURCE(StarMapMenu_MarkerGroupContainerVisibilityChanged, 0x01695FF0)
DECLARE_EVENT_SOURCE(StarMapMenu_MarkerGroupEntryClicked, 0x01695F50)
DECLARE_EVENT_SOURCE(StarMapMenu_MarkerGroupEntryHoverChanged, 0x01695EB0)
DECLARE_EVENT_SOURCE(StarMapMenu_OnCancel, 0x016C57A0)
DECLARE_EVENT_SOURCE(StarMapMenu_OnClearRoute, 0x016C5AC0)
DECLARE_EVENT_SOURCE(StarMapMenu_OnExitStarMap, 0x016C58E0)
DECLARE_EVENT_SOURCE(StarMapMenu_OnGalaxyViewInitialized, 0x016B4BD0)
DECLARE_EVENT_SOURCE(StarMapMenu_OnHintButtonClicked, 0x016C5980)
DECLARE_EVENT_SOURCE(StarMapMenu_OnOutpostEntrySelected, 0x016C5840)
DECLARE_EVENT_SOURCE(StarMapMenu_QuickSelectChange, 0x016A71D0)
DECLARE_EVENT_SOURCE(StarMapMenu_ReadyToClose, 0x016C5700)
DECLARE_EVENT_SOURCE(StarMapMenu_ScanPlanet, 0x01696270)
DECLARE_EVENT_SOURCE(StarMapMenu_SelectedLandingSite, 0x01696090)
DECLARE_EVENT_SOURCE(StarMapMenu_SelectedLandingSiteFailed, 0x016954F0)
DECLARE_EVENT_SOURCE(StarMapMenu_ShowRealCursor, 0x01696130)
DECLARE_EVENT_SOURCE(StartLoadGameEvent, 0x0035DB10)
DECLARE_EVENT_SOURCE(StartOutpostFromListenerEvent, 0x01465250)
//DECLARE_EVENT_SOURCE(SurfaceMapMenu_EnablePointCloud, 0x01682090)
DECLARE_EVENT_SOURCE(SurfaceMapMenu_MarkerClicked, 0x016E4DC0)
DECLARE_EVENT_SOURCE(SurfaceMapMenu_TryPlaceCustomMarker, 0x016E4D20)
DECLARE_EVENT_SOURCE(TESCellCriticalRefsAttachedEvent, 0x00581CA0)
DECLARE_EVENT_SOURCE(TESCellFullyLoadedEvent, 0x00581CA0)
DECLARE_EVENT_SOURCE(TESCellReference3DAttachEvent, 0x0046B770)
//DECLARE_EVENT_SOURCE(TESFilesCompiledEvent, 0x005A6830)
//DECLARE_EVENT_SOURCE(TESObjectREFRDuplicate::Event, 0x00B611F0)
DECLARE_EVENT_SOURCE(TESOpenCloseEvent, 0x01885AE0)
DECLARE_EVENT_SOURCE(TESQuestEvent::Event, 0x00D0E3A0)
DECLARE_EVENT_SOURCE(TESQuestRewardEvent, 0x00857350)
DECLARE_EVENT_SOURCE(TESSceneEvent, 0x00CB5420)
DECLARE_EVENT_SOURCE(TESUniqueIDChangeEvent, 0x00B656E0)
DECLARE_EVENT_SOURCE(TakeoffMenu_CloseMenu, 0x0167B150)
DECLARE_EVENT_SOURCE(TakeoffMenu_ExitShip, 0x0167B1F0)
DECLARE_EVENT_SOURCE(TakeoffMenu_Launch, 0x0167B290)
DECLARE_EVENT_SOURCE(TargetHitEvent, 0x01489680)
DECLARE_EVENT_SOURCE(TerminalMenu_CancelEvent, 0x01700970)
DECLARE_EVENT_SOURCE(Terminal_CloseAllViews, 0x017006F0)
DECLARE_EVENT_SOURCE(Terminal_CloseTopView, 0x01700790)
DECLARE_EVENT_SOURCE(Terminal_CloseView, 0x01700830)
DECLARE_EVENT_SOURCE(Terminal_MenuItemClick, 0x017008D0)
DECLARE_EVENT_SOURCE(TestMenu_DoAction, 0x0170A230)
DECLARE_EVENT_SOURCE(TestMenu_ExitMenu, 0x0170A0F0)
DECLARE_EVENT_SOURCE(TestMenu_ShowImages, 0x0170A2D0)
DECLARE_EVENT_SOURCE(TestMenu_ShowResources, 0x0170A370)
DECLARE_EVENT_SOURCE(TestMenu_TestAll, 0x0170A190)
DECLARE_EVENT_SOURCE(TextInputMenu_EndEditText, 0x017175A0)
DECLARE_EVENT_SOURCE(TextInputMenu_InputCanceled, 0x017176E0)
DECLARE_EVENT_SOURCE(TextInputMenu_StartEditText, 0x01717640)
//DECLARE_EVENT_SOURCE(TitleSequenceMenu_StartMusic, 0x01E6B910)
//DECLARE_EVENT_SOURCE(UGCServicesStatusChangeEvent, 0x01E5BA40)
DECLARE_EVENT_SOURCE(UIMenuChargenMenuDisablePaperdoll, 0x0165B6F0)
DECLARE_EVENT_SOURCE(UnlockedTerminalElementEvent, 0x016228A0)
DECLARE_EVENT_SOURCE(UpdateActivateListenerEvent, 0x01462DF0)
DECLARE_EVENT_SOURCE(UpdateSceneRectEvent, 0x02557510)
//DECLARE_EVENT_SOURCE(VehicleDriverEnterExitEvent, 0x0211F050)
DECLARE_EVENT_SOURCE(WeaponGroupAssignmentMenu_ChangeWeaponAssignment, 0x00486080)
DECLARE_EVENT_SOURCE(WeaponGroupAssignmentMenu_OnHintButtonActivated, 0x00486120)
DECLARE_EVENT_SOURCE(Workshop::CargoLinkAddedEvent, 0x00F50380)
DECLARE_EVENT_SOURCE(Workshop::CargoLinkTargetChangedEvent, 0x00F4FC00)
DECLARE_EVENT_SOURCE(Workshop::EnterOutpostBeaconModeEvent, 0x00F4FCA0)
DECLARE_EVENT_SOURCE(Workshop::ItemGrabbedEvent, 0x00F50060)
DECLARE_EVENT_SOURCE(Workshop::ItemMovedEvent, 0x00F4F840)
DECLARE_EVENT_SOURCE(Workshop::ItemPlacedEvent, 0x00F4FF20)
DECLARE_EVENT_SOURCE(Workshop::ItemProducedEvent, 0x00F50100)
DECLARE_EVENT_SOURCE(Workshop::ItemRemovedEvent, 0x00F4FFC0)
DECLARE_EVENT_SOURCE(Workshop::ItemRepairedEvent, 0x00F4F7A0)
DECLARE_EVENT_SOURCE(Workshop::ItemScrappedEvent, 0x00F502E0)
DECLARE_EVENT_SOURCE(Workshop::OutpostNameChangedEvent, 0x00F4FB60)
DECLARE_EVENT_SOURCE(Workshop::OutpostPlacedEvent, 0x00F4FD40)
DECLARE_EVENT_SOURCE(Workshop::PlacementStatusEvent, 0x00F4FA20)
DECLARE_EVENT_SOURCE(Workshop::PowerOffEvent, 0x00F50240)
DECLARE_EVENT_SOURCE(Workshop::PowerOnEvent, 0x00F501A0)
DECLARE_EVENT_SOURCE(Workshop::SnapBehaviorCycledEvent, 0x00F50560)
DECLARE_EVENT_SOURCE(Workshop::WorkshopFlyCameraEvent, 0x00F4F8E0)
DECLARE_EVENT_SOURCE(Workshop::WorkshopItemPlacedEvent, 0x00F4FE80)
DECLARE_EVENT_SOURCE(Workshop::WorkshopModeEvent, 0x00F4F980)
//DECLARE_EVENT_SOURCE(Workshop::WorkshopObjectModifiedBIEvent, 0x00F3AC60)
DECLARE_EVENT_SOURCE(Workshop::WorkshopOutputLinkEvent, 0x00F4FDE0)
DECLARE_EVENT_SOURCE(Workshop::WorkshopStatsChangedEvent, 0x00F50420)
DECLARE_EVENT_SOURCE(Workshop::WorkshopUpdateStatsEvent, 0x00F504C0)
DECLARE_EVENT_SOURCE(WorkshopActionButton_HoldFinished, 0x0173FF10)
DECLARE_EVENT_SOURCE(WorkshopActionButton_HoldStopped, 0x0173FE70)
DECLARE_EVENT_SOURCE(WorkshopBuilderMenu_ChangeBuildItem, 0x0171B6B0)
DECLARE_EVENT_SOURCE(WorkshopBuilderMenu_SelectedItem, 0x0171B610)
DECLARE_EVENT_SOURCE(WorkshopBuilderMenu_ToggleTracking, 0x0171B570)
DECLARE_EVENT_SOURCE(WorkshopColorMode_ApplyColors, 0x0143EDC0)
DECLARE_EVENT_SOURCE(WorkshopColorMode_SelectedTab, 0x0143ED20)
DECLARE_EVENT_SOURCE(WorkshopColorMode_SliderChanged, 0x0143EC80)
DECLARE_EVENT_SOURCE(WorkshopColorMode_SwatchChanged, 0x0143EBE0)
DECLARE_EVENT_SOURCE(WorkshopMenu_AttemptBuild, 0x01722210)
DECLARE_EVENT_SOURCE(WorkshopMenu_CancelAction, 0x01721F90)
DECLARE_EVENT_SOURCE(WorkshopMenu_ChangeVariant, 0x01722030)
DECLARE_EVENT_SOURCE(WorkshopMenu_ConnectionEvent, 0x01721DB0)
DECLARE_EVENT_SOURCE(WorkshopMenu_ExitMenu, 0x01721EF0)
DECLARE_EVENT_SOURCE(WorkshopMenu_MessageCallback, 0x01721B30)
DECLARE_EVENT_SOURCE(WorkshopMenu_SelectedCategory, 0x017220D0)
DECLARE_EVENT_SOURCE(WorkshopMenu_SelectedGridObject, 0x01722170)
DECLARE_EVENT_SOURCE(WorkshopMenu_ShowExtras, 0x01721D10)
DECLARE_EVENT_SOURCE(WorkshopMenu_SwitchMode, 0x01721E50)
DECLARE_EVENT_SOURCE(WorkshopMenu_ToggleDistance, 0x01721BD0)
DECLARE_EVENT_SOURCE(WorkshopMenu_ToggleTracking, 0x01721A90)
DECLARE_EVENT_SOURCE(WorkshopMenu_ToggleView, 0x01721C70)
DECLARE_EVENT_SOURCE(WorkshopQuickMenu_ConfirmAction, 0x01723420)
DECLARE_EVENT_SOURCE(WorkshopQuickMenu_ExitMenu, 0x01723380)
DECLARE_EVENT_SOURCE(WorkshopShared_SetActionHandles, 0x0173FFB0)
DECLARE_EVENT_SOURCE(WorkshopShared_StartAction, 0x01740050)
DECLARE_EVENT_SOURCE(WorkshopTargetMenu_TargetHovered, 0x01729930)
DECLARE_EVENT_SOURCE(WorkshopTargetMenu_TargetPicked, 0x017299D0)
DECLARE_EVENT_SOURCE_EX(Activation::Event, 0x0597F7B0)
DECLARE_EVENT_SOURCE_EX(ActivityEvents::ActivityCompletedEvent, 0x0597C8A8)
DECLARE_EVENT_SOURCE_EX(ActorCellChangeEvent, 0x0597F990)
DECLARE_EVENT_SOURCE_EX(ActorDamage::Event, 0x05981E98)
DECLARE_EVENT_SOURCE_EX(ActorHeadAttachedEvent, 0x0597F9B8)
DECLARE_EVENT_SOURCE_EX(ActorItemEquipped::Event, 0x05981E48)
DECLARE_EVENT_SOURCE_EX(ActorKill::Event, 0x05981E70)
DECLARE_EVENT_SOURCE_EX(AnimationGraphDependentEvent, 0x05980CA0)
DECLARE_EVENT_SOURCE_EX(AssaultCrime::Event, 0x05981F10)
DECLARE_EVENT_SOURCE_EX(AttachReference::Event, 0x059238D0)
DECLARE_EVENT_SOURCE_EX(BGSAffinityEventEvent, 0x0597F8A0)
DECLARE_EVENT_SOURCE_EX(BGSHavokWorldCreatedEvent, 0x059809A8)
DECLARE_EVENT_SOURCE_EX(BGSLocationLoadedEvent, 0x0597FC10)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerCompanionDismiss, 0x05980750)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerCraftItemEvent, 0x059807F0)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerCreateRobotEvent, 0x05980818)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerEnterVertibirdEvent, 0x059808B8)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerFallLongDistances, 0x05980778)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerFireWeaponEvent, 0x05980868)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerHealTeammateEvent, 0x059806D8)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerLoiteringBeginEvent, 0x05980700)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerLoiteringEndEvent, 0x05980728)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerModArmorWeaponEvent, 0x059807A0)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerModRobotEvent, 0x05980840)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerSwimmingEvent, 0x05980890)
DECLARE_EVENT_SOURCE_EX(BGSOnPlayerUseWorkBenchEvent, 0x059808E0)
DECLARE_EVENT_SOURCE_EX(BGSOnSpeechChallengeAvailable, 0x05980908)
DECLARE_EVENT_SOURCE_EX(BGSRadiationDamageEvent, 0x059806B0)
//DECLARE_EVENT_SOURCE_EX(BNetCallbackHelper::ImageCallbackEvent, 0x0584C7D8)
//DECLARE_EVENT_SOURCE_EX(BNetCallbackHelper::UGCCallbackEvent, 0x0584C7B0)
//DECLARE_EVENT_SOURCE_EX(BSMusicEvent, 0x05859648)
//DECLARE_EVENT_SOURCE_EX(BSSysMonFrameCaptured, 0x0585A770)
DECLARE_EVENT_SOURCE_EX(Bleedout::Event, 0x05981FC0)
DECLARE_EVENT_SOURCE_EX(BooksRead::Event, 0x0597DAE0)
DECLARE_EVENT_SOURCE_EX(Bounty::Event, 0x05982090)
DECLARE_EVENT_SOURCE_EX(BuilderMenuSelectEvent, 0x05980A48)
//DECLARE_EVENT_SOURCE_EX(CelestialLocationDiscoveredEvent, 0x058AE488)
DECLARE_EVENT_SOURCE_EX(ChestLooted::Event, 0x059820B8)
DECLARE_EVENT_SOURCE_EX(ClearShipHudTarget::Event, 0x05981CA8)
DECLARE_EVENT_SOURCE_EX(ContractedDisease::Event, 0x05981FE8)
DECLARE_EVENT_SOURCE_EX(CrewAssignedEvent, 0x0597FBC0)
DECLARE_EVENT_SOURCE_EX(CrewDismissedEvent, 0x0597FBE8)
DECLARE_EVENT_SOURCE_EX(CriticalHitEvent::Event, 0x05982068)
DECLARE_EVENT_SOURCE_EX(CustomMarkerUpdate::Event, 0x059820E0)
DECLARE_EVENT_SOURCE_EX(DaysJailed::Event, 0x05982108)
DECLARE_EVENT_SOURCE_EX(DaysPassed::Event, 0x05981DD0)
DECLARE_EVENT_SOURCE_EX(DestroyedEvent, 0x0597FC88)
DECLARE_EVENT_SOURCE_EX(DisarmedEvent::Event, 0x05981EC0)
DECLARE_EVENT_SOURCE_EX(EnteredUnity::Event, 0x05982388)
DECLARE_EVENT_SOURCE_EX(FactionRankChange::Event, 0x05981EE8)
DECLARE_EVENT_SOURCE_EX(FinePaid::Event, 0x05982130)
DECLARE_EVENT_SOURCE_EX(FirstThirdPersonSwitch::Event, 0x05982428)
//DECLARE_EVENT_SOURCE_EX(GameplayOptionAppliedEvent, 0x058AE438)
//DECLARE_EVENT_SOURCE_EX(GameplayOptionChangedEvent, 0x058AE3E8)
//DECLARE_EVENT_SOURCE_EX(GameplayOptionUpdateFinishedEvent, 0x058AE410)
DECLARE_EVENT_SOURCE_EX(GrandTheftHorse::Event, 0x05981F88)
DECLARE_EVENT_SOURCE_EX(HideSubtitleEvent::Event, 0x05981BB0)
DECLARE_EVENT_SOURCE_EX(HourPassed::Event, 0x05981DF8)
DECLARE_EVENT_SOURCE_EX(HoursPassed::Event, 0x059827F0)
DECLARE_EVENT_SOURCE_EX(InstantReferenceInteractionEvent, 0x059809F8)
DECLARE_EVENT_SOURCE_EX(ItemConsumedEvent, 0x05980D18)
DECLARE_EVENT_SOURCE_EX(ItemCrafted::Event, 0x05982158)
DECLARE_EVENT_SOURCE_EX(ItemSteal::Event, 0x05982180)
DECLARE_EVENT_SOURCE_EX(ItemSwappedEvent, 0x05980CC8)
DECLARE_EVENT_SOURCE_EX(JailEscape::Event, 0x059821A8)
DECLARE_EVENT_SOURCE_EX(Jailing::Event, 0x059821D0)
DECLARE_EVENT_SOURCE_EX(LocationExplored::Event, 0x0597F760)
DECLARE_EVENT_SOURCE_EX(LocationLinked::Event, 0x0597F788)
DECLARE_EVENT_SOURCE_EX(LocationMarkerArrayUpdate::Event, 0x05982220)
DECLARE_EVENT_SOURCE_EX(LocationTextEvent::Event, 0x05981CF8)
DECLARE_EVENT_SOURCE_EX(LockPickedEvent, 0x05980CF0)
//DECLARE_EVENT_SOURCE_EX(MagicSystem::FlushLogEvent, 0x05839258)
//DECLARE_EVENT_SOURCE_EX(MagicSystem::LogEvent, 0x05839230)
DECLARE_EVENT_SOURCE_EX(MapMarkerDiscoveredEvent, 0x05980B10)
DECLARE_EVENT_SOURCE_EX(MissionMenuStateEvent::Event, 0x05981C80)
DECLARE_EVENT_SOURCE_EX(MurderCrime::Event, 0x05981F38)
DECLARE_EVENT_SOURCE_EX(ObjectScannedEvent, 0x05980AC0)
DECLARE_EVENT_SOURCE_EX(ObjectiveState::Event, 0x05980E80)
DECLARE_EVENT_SOURCE_EX(PiracyCrime::Event, 0x05981F60)
DECLARE_EVENT_SOURCE_EX(PlayerActiveEffectChanged::Event, 0x05982450)
DECLARE_EVENT_SOURCE_EX(PlayerAddItemEvent, 0x05980930)
DECLARE_EVENT_SOURCE_EX(PlayerAmmoChanged::Event, 0x05982248)
DECLARE_EVENT_SOURCE_EX(PlayerArrestedEvent, 0x05980B38)
DECLARE_EVENT_SOURCE_EX(PlayerAssaultActorEvent, 0x05980B60)
DECLARE_EVENT_SOURCE_EX(PlayerBuyShipEvent, 0x05980C50)
DECLARE_EVENT_SOURCE_EX(PlayerCrimeGoldEvent, 0x05980BB0)
DECLARE_EVENT_SOURCE_EX(PlayerDifficultySettingChanged::Event, 0x05982270)
DECLARE_EVENT_SOURCE_EX(PlayerFailedPlotRouteEvent, 0x0597FF80)
DECLARE_EVENT_SOURCE_EX(PlayerFastTravel::Event, 0x05982360)
DECLARE_EVENT_SOURCE_EX(PlayerInDialogueChanged::Event, 0x05982298)
DECLARE_EVENT_SOURCE_EX(PlayerJailEvent, 0x05980BD8)
DECLARE_EVENT_SOURCE_EX(PlayerLifeStateChanged::Event, 0x059822C0)
DECLARE_EVENT_SOURCE_EX(PlayerModifiedShipEvent, 0x0597FFA8)
DECLARE_EVENT_SOURCE_EX(PlayerMurderActorEvent, 0x05980B88)
//DECLARE_EVENT_SOURCE_EX(PlayerNameEvent::NameChangedEvent, 0x058AF290)
DECLARE_EVENT_SOURCE_EX(PlayerPayFineEvent, 0x05980C00)
DECLARE_EVENT_SOURCE_EX(PlayerPickpocketSuccess::Event, 0x05982478)
DECLARE_EVENT_SOURCE_EX(PlayerPlanetSurveyCompleteEvent, 0x05980A70)
DECLARE_EVENT_SOURCE_EX(PlayerPlanetSurveyProgressEvent, 0x05980A98)
DECLARE_EVENT_SOURCE_EX(PlayerSellShipEvent, 0x05980C78)
DECLARE_EVENT_SOURCE_EX(PlayerTrespassEvent, 0x05980C28)
DECLARE_EVENT_SOURCE_EX(PoisonedWeapon::Event, 0x059822E8)
DECLARE_EVENT_SOURCE_EX(QuestStatus::Event, 0x05981328)
DECLARE_EVENT_SOURCE_EX(QuickContainerOpenedEvent, 0x05980A20)
//DECLARE_EVENT_SOURCE_EX(RadioManager::PipboyFrequencyDetectionEvent, 0x0584FB40)
//DECLARE_EVENT_SOURCE_EX(RadioManager::PipboyRadioTuningEvent, 0x0584FB90)
DECLARE_EVENT_SOURCE_EX(RadioManager::PipboyTransmitterDetectionEvent, 0x05922338)
DECLARE_EVENT_SOURCE_EX(RefControlChangedEvent, 0x05980D68)
DECLARE_EVENT_SOURCE_EX(ReferenceDestroyedEvent, 0x059809D0)
DECLARE_EVENT_SOURCE_EX(RefillAliasEvent::Event, 0x05981300)
DECLARE_EVENT_SOURCE_EX(ReloadWeaponEvent::Event, 0x05982010)
DECLARE_EVENT_SOURCE_EX(RolloverIsCrimeEvent::Event, 0x05981B60)
//DECLARE_EVENT_SOURCE_EX(ScannableUtils::ScannedEvent, 0x058AF100)
DECLARE_EVENT_SOURCE_EX(ShowSubtitleEvent::Event, 0x05981B88)
//DECLARE_EVENT_SOURCE_EX(SpaceshipEditor::TransactionEvent, 0x058A9EB8)
DECLARE_EVENT_SOURCE_EX(SpeechChallengeCompletionEvent, 0x05980AE8)
DECLARE_EVENT_SOURCE_EX(SpellsLearned::Event, 0x05982040)
DECLARE_EVENT_SOURCE_EX(TESActivateEvent, 0x0597F850)
DECLARE_EVENT_SOURCE_EX(TESActiveEffectApplyFinishEvent, 0x0597F8F0)
DECLARE_EVENT_SOURCE_EX(TESActiveEffectRemovedEvent, 0x0597F918)
DECLARE_EVENT_SOURCE_EX(TESActorActivatedRefEvent, 0x0597F878)
DECLARE_EVENT_SOURCE_EX(TESActorLocationChangeEvent, 0x0597F968)
DECLARE_EVENT_SOURCE_EX(TESBookReadEvent, 0x0597F9E0)
DECLARE_EVENT_SOURCE_EX(TESCellGravityChangeEvent, 0x0597FB20)
DECLARE_EVENT_SOURCE_EX(TESCellNavmeshGeneratedEvent, 0x0597FAA8)
DECLARE_EVENT_SOURCE_EX(TESCellReadyToApplyDecalsEvent, 0x0597FAD0)
DECLARE_EVENT_SOURCE_EX(TESCellReferenceAttachDetachEvent, 0x0597FA08)
DECLARE_EVENT_SOURCE_EX(TESCombatEvent, 0x0597FB48)
DECLARE_EVENT_SOURCE_EX(TESCombatListEvent, 0x0597FB70)
DECLARE_EVENT_SOURCE_EX(TESCommandModeCompleteCommandEvent, 0x0597FDA0)
DECLARE_EVENT_SOURCE_EX(TESCommandModeEnterEvent, 0x0597FDC8)
DECLARE_EVENT_SOURCE_EX(TESCommandModeExitEvent, 0x0597FDF0)
DECLARE_EVENT_SOURCE_EX(TESCommandModeGiveCommandEvent, 0x0597FE18)
DECLARE_EVENT_SOURCE_EX(TESConsciousnessEvent, 0x05980610)
DECLARE_EVENT_SOURCE_EX(TESContainerChangedEvent, 0x0597FB98)
DECLARE_EVENT_SOURCE_EX(TESDeathEvent, 0x0597FC60)
DECLARE_EVENT_SOURCE_EX(TESDeferredKillEvent, 0x0597FC38)
DECLARE_EVENT_SOURCE_EX(TESDestructionStageChangedEvent, 0x0597FCB0)
DECLARE_EVENT_SOURCE_EX(TESEnterBleedoutEvent, 0x0597FCD8)
DECLARE_EVENT_SOURCE_EX(TESEnterSneakingEvent, 0x0597FD28)
DECLARE_EVENT_SOURCE_EX(TESEquipEvent, 0x0597FE40)
DECLARE_EVENT_SOURCE_EX(TESEscortWaitStartEvent, 0x0597FD50)
DECLARE_EVENT_SOURCE_EX(TESEscortWaitStopEvent, 0x0597FD78)
DECLARE_EVENT_SOURCE_EX(TESExitBleedoutEvent, 0x0597FD00)
DECLARE_EVENT_SOURCE_EX(TESExitFurnitureEvent, 0x0597F8C8)
DECLARE_EVENT_SOURCE_EX(TESFormDeleteEvent, 0x0597FE90)
DECLARE_EVENT_SOURCE_EX(TESFormIDRemapEvent, 0x0597FEB8)
DECLARE_EVENT_SOURCE_EX(TESFurnitureEvent, 0x0597FEE0)
DECLARE_EVENT_SOURCE_EX(TESGrabReleaseEvent, 0x0597FF08)
DECLARE_EVENT_SOURCE_EX(TESHarvestEvent::ItemHarvested, 0x0597C880)
DECLARE_EVENT_SOURCE_EX(TESHitEvent, 0x0597FF30)
DECLARE_EVENT_SOURCE_EX(TESInitScriptEvent, 0x0597FFF8)
DECLARE_EVENT_SOURCE_EX(TESLimbCrippleEvent, 0x05980638)
DECLARE_EVENT_SOURCE_EX(TESLoadGameEvent, 0x05980070)
DECLARE_EVENT_SOURCE_EX(TESLocationExploredEvent, 0x05980020)
DECLARE_EVENT_SOURCE_EX(TESLockChangedEvent, 0x05980048)
DECLARE_EVENT_SOURCE_EX(TESMagicEffectApplyEvent, 0x05980098)
DECLARE_EVENT_SOURCE_EX(TESMissionAcceptedEvent, 0x059801D8)
DECLARE_EVENT_SOURCE_EX(TESObjectLoadedEvent, 0x059800C0)
DECLARE_EVENT_SOURCE_EX(TESObjectREFRIsReadyForAttachEvent, 0x059800E8)
DECLARE_EVENT_SOURCE_EX(TESObjectREFRTranslationEvent, 0x059804A8)
DECLARE_EVENT_SOURCE_EX(TESOnPCDialogueTargetEvent, 0x05980688)
DECLARE_EVENT_SOURCE_EX(TESPackageEvent, 0x05980138)
DECLARE_EVENT_SOURCE_EX(TESPerkEntryRunEvent, 0x05980160)
DECLARE_EVENT_SOURCE_EX(TESPickNewIdleEvent, 0x05980660)
DECLARE_EVENT_SOURCE_EX(TESPickpocketFailedEvent, 0x05980188)
DECLARE_EVENT_SOURCE_EX(TESPlayerActiveEffectEvent, 0x0597F940)
DECLARE_EVENT_SOURCE_EX(TESPlayerFollowerWarpEvent, 0x0597FE68)
DECLARE_EVENT_SOURCE_EX(TESQuestInitEvent, 0x059801B0)
DECLARE_EVENT_SOURCE_EX(TESQuestRejectedEvent, 0x05980200)
DECLARE_EVENT_SOURCE_EX(TESQuestStageEvent, 0x05980228)
DECLARE_EVENT_SOURCE_EX(TESQuestStageItemDoneEvent, 0x05980250)
DECLARE_EVENT_SOURCE_EX(TESQuestStartStopEvent, 0x05980278)
DECLARE_EVENT_SOURCE_EX(TESQuestTimerEvent, 0x05980D40)
DECLARE_EVENT_SOURCE_EX(TESResetEvent, 0x059802C8)
DECLARE_EVENT_SOURCE_EX(TESResolveNPCTemplatesEvent, 0x059802F0)
DECLARE_EVENT_SOURCE_EX(TESSceneActionEvent, 0x05980340)
DECLARE_EVENT_SOURCE_EX(TESScenePhaseEvent, 0x05980368)
DECLARE_EVENT_SOURCE_EX(TESSellEvent, 0x05980390)
DECLARE_EVENT_SOURCE_EX(TESSleepStartEvent, 0x059803B8)
DECLARE_EVENT_SOURCE_EX(TESSleepStopEvent, 0x059803E0)
DECLARE_EVENT_SOURCE_EX(TESSpellCastEvent, 0x05980408)
DECLARE_EVENT_SOURCE_EX(TESSpellCastFailureEvent, 0x05980430)
DECLARE_EVENT_SOURCE_EX(TESSwitchRaceCompleteEvent, 0x059805E8)
DECLARE_EVENT_SOURCE_EX(TESTopicInfoEvent, 0x05980458)
DECLARE_EVENT_SOURCE_EX(TESTrackedStatsEvent, 0x05980480)
DECLARE_EVENT_SOURCE_EX(TESTrapHitEvent, 0x059804D0)
DECLARE_EVENT_SOURCE_EX(TESTriggerEnterEvent, 0x05980520)
DECLARE_EVENT_SOURCE_EX(TESTriggerEvent, 0x059804F8)
DECLARE_EVENT_SOURCE_EX(TESTriggerLeaveEvent, 0x05980548)
//DECLARE_EVENT_SOURCE_EX(TESUnconsciousEvent, 0x058AE460)
DECLARE_EVENT_SOURCE_EX(TESWaitStartEvent, 0x05980598)
DECLARE_EVENT_SOURCE_EX(TESWaitStopEvent, 0x059805C0)
DECLARE_EVENT_SOURCE_EX(TerminalHacked::Event, 0x05982310)
DECLARE_EVENT_SOURCE_EX(TerminalMenuMenuItemRunEvent, 0x0597F800)
DECLARE_EVENT_SOURCE_EX(TerminalMenuOnEnterEvent, 0x0597F828)
DECLARE_EVENT_SOURCE_EX(TraitDiscoveryTextEvent::Event, 0x05981D20)
DECLARE_EVENT_SOURCE_EX(TravelMarkerStateChange::Event, 0x059823D8)
DECLARE_EVENT_SOURCE_EX(Trespass::Event, 0x05982718)
DECLARE_EVENT_SOURCE_EX(TryUpdateShipHudTarget::Event, 0x05981CD0)
DECLARE_EVENT_SOURCE_EX(VATSCommand, 0x05982778)
DECLARE_EVENT_SOURCE_EX(VATSEvents::ModeChange, 0x05982750)
//DECLARE_EVENT_SOURCE_EX(VehicleAmmoChanged::Event, 0x058AF9E8)
DECLARE_EVENT_SOURCE_EX(WeaponAttack::Event, 0x05982338)
DECLARE_EVENT_SOURCE_EX(WeaponFiredEvent, 0x05912258)
//DECLARE_EVENT_SOURCE_EX(WorkbenchTracking::TrackingStatusChanged::Event, 0x058AF3E0)
DECLARE_EVENT_SOURCE_EX(WorkshopNPCTransferEvent, 0x0597FFD0)
DECLARE_EVENT_SOURCE_EX(XPChange::Event, 0x059238F8)
//DECLARE_EVENT_SOURCE_EX(nsBarterMenu::CompletedEvent, 0x058AF380)


================================================
FILE: sfse/GameExtraData.cpp
================================================
#include "sfse/GameExtraData.h"

BSExtraData * BaseExtraList::GetByType(BSExtraData::Type type) const
{
	BSExtraData * result = nullptr;

	if(HasType(type))
	{
		for(BSExtraData * iter = _head; iter; iter = iter->next)
		{
			if(iter->type == type)
			{
				return iter;
			}
		}
	}
}

bool BaseExtraList::HasType(BSExtraData::Type type) const
{
	u32 flagIdx = type >> 3;
	u8 flagBit = 1 << (type & 7);

	return _flags && (_flags[flagIdx] & flagBit);
}


================================================
FILE: sfse/GameExtraData.h
================================================
#pragma once

#include "sfse_common/Types.h"
#include "sfse_common/Utilities.h"
#include "sfse/GameTypes.h"
#include "sfse/GameLock.h"

class BSExtraData
{
public:
	virtual ~BSExtraData();  // 00

	// add
	virtual void Unk_01();  // 01
	virtual void Unk_02();  // 02
	virtual void Unk_03();  // 03
	virtual void Unk_04();  // 04
	virtual void Unk_05();  // 05
	virtual void Unk_06();  // 06

	enum Type : u8
	{
		kNone,                                     // 0x00
		kHavok,                                    // 0x01 - ExtraHavok
		kCell3D,                                   // 0x02 - ExtraCell3D
		kCellWaterType,                            // 0x03 - ExtraCellWaterType
		kRegionList,                               // 0x04 - ExtraRegionList
		kSeenData,                                 // 0x05 - ExtraSeenData
		kEditorID,                                 // 0x06 - ExtraEditorID
		kCellMusicType,                            // 0x07 - ExtraCellMusicType
		kCellSkyRegion,                            // 0x08 - ExtraCellSkyRegion
		kProcessMiddleLow,                         // 0x09 - ExtraProcessMiddleLow
		kUnk0A,                                    // 0x0A
		kPersistentCell,                           // 0x0B - ExtraPersistentCell
		kKeywords,                                 // 0x0C - ExtraKeywords
		kAction,                                   // 0x0D - ExtraAction
		kStartingPosition,                         // 0x0E - ExtraStartingPosition
		kUnk0F,                                    // 0x0F
		kAnimGraphManager,                         // 0x10 - ExtraAnimGraphManager
		kUsedMarkers,                              // 0x11 - ExtraUsedMarkers
		kUnk12,                                    // 0x12
		kRagdollData,                              // 0x13 - ExtraRagDollData
		kInitActions,                              // 0x14 - ExtraInitActions
		kEssentialProtected,                       // 0x15 - ExtraEssentialProtected
		kPackagesStartLoc,                         // 0x16 - ExtraPackageStartLocation
		kPackage,                                  // 0x17 - ExtraPackage
		kTrespassPackage,                          // 0x18 - ExtraTresPassPackage
		kRunOncePacks,                             // 0x19 - ExtraRunOncePacks
		kReferenceHandles,                         // 0x1A - ExtraReferenceHandles
		kFollower,                                 // 0x1B - ExtraFollower
		kLevCreaMod,                               // 0x1C - ExtraLevCreaModifier
		kGhost,                                    // 0x1D - ExtraGhost
		kOriginalReference,                        // 0x1E - ExtraOriginalReference
		kOwnership,                                // 0x1F - ExtraOwnership
		kGlobal,                                   // 0x20 - ExtraGlobal
		kRank,                                     // 0x21 - ExtraRank
		kCount,                                    // 0x22 - ExtraCount
		kHealth,                                   // 0x23 - ExtraHealth
		kRangeDistOverride,                        // 0x24 - ExtraRangedDistOverride
		kTimeLeft,                                 // 0x25 - ExtraTimeLeft
		kCharge,                                   // 0x26 - ExtraCharge
		kLight,                                    // 0x27 - ExtraLight
		kLock,                                     // 0x28 - ExtraLock
		kTeleport,                                 // 0x29 - ExtraTeleport
		kMapMarker,                                // 0x2A - ExtraMapMarker
		kLeveledCreature,                          // 0x2B - ExtraLeveledCreature
		kLeveledItem,                              // 0x2C - ExtraLeveledItem
		kScale,                                    // 0x2D - ExtraScale
		kSeed,                                     // 0x2E - ExtraSeed
		kMagicCaster,                              // 0x2F - ExtraMagicCaster, NonActorMagicCaster
		kMagicTarget,                              // 0x30 - NonActorMagicTarget
		kUnk31,                                    // 0x31
		kPlayerCrimeList,                          // 0x32 - ExtraPlayerCrimeList
		kObjectInstance,                           // 0x33 - BGSObjectInstanceExtra
		kEnableStateParent,                        // 0x34 - ExtraEnableStateParent
		kEnableStateChildren,                      // 0x35 - ExtraEnableStateChildren
		kItemDropper,                              // 0x36 - ExtraItemDropper
		kDroppedItemList,                          // 0x37 - ExtraDroppedItemList
		kRandomTeleportMarker,                     // 0x38 - ExtraRandomTeleportMarker
		kSavedHavokData,                           // 0x39 - ExtraSavedHavokData
		kCannotWear,                               // 0x3A - ExtraCannotWear
		kPoison,                                   // 0x3B - ExtraPoison
		kUnk3C,                                    // 0x3C
		kLastFinishedSequence,                     // 0x3D - ExtraLastFinishedSequence
		kSavedAnimation,                           // 0x3E - ExtraSavedAnimation
		kNorthRotation,                            // 0x3F - ExtraNorthRotation
		kSpawnContainer,                           // 0x40 - ExtraSpawnContainer
		kFriendHits,                               // 0x41 - ExtraFriendHits
		kHeadingTarget,                            // 0x42 - ExtraHeadingTarget
		kUnk43,                                    // 0x43
		kRefractionProperty,                       // 0x44 - ExtraRefractionProperty
		kStartingWorldOrCell,                      // 0x45 - ExtraStartingWorldOrCell
		kFavorite,                                 // 0x46 - ExtraFavorite
		kUnk47,                                    // 0x47
		kEditorRefMoveData,                        // 0x48 - ExtraEditorRefMoveData
		kUnk49,                                    // 0x49
		kNoRumors,                                 // 0x4A - ExtraHasNoRumors
		kSound,                                    // 0x4B - ExtraSound
		kLinkedRef,                                // 0x4C - ExtraLinkedRef
		kLinkedRefChildren,                        // 0x4D - ExtraLinkedRefChildren
		kActivateRef,                              // 0x4E - ExtraActivateRef
		kUnk4F,                                    // 0x4F
		kTalkToPlayer,                             // 0x50 - ExtraCanTalkToPlayer
		kCellImageSpace,                           // 0x51 - ExtraCellImageSpace
		kNavMeshPortal,                            // 0x52 - ExtraNavMeshPortal
		kModelSwap,                                // 0x53 - ExtraModelSwap
		kRadius,                                   // 0x54 - ExtraRadius
		kUnk55,                                    // 0x55
		kFactionChanges,                           // 0x56 - ExtraFactionChanges
		kActorCause,                               // 0x57 - ExtraActorCause
		kUnk58,                                    // 0x58
		kUnk59,                                    // 0x59
		kUnk5A,                                    // 0x5A
		kReflectedRefs,                            // 0x5B - ExtraReflectedRefs
		kReflectorRefs,                            // 0x5C - ExtraReflectorRefs
		kEmittanceSource,                          // 0x5D - ExtraEmittanceSource
		kRadioData,                                // 0x5E - ExtraRadioData
		kCombatStyle,                              // 0x5F - ExtraCombatStyle
		kUnk60,                                    // 0x60
		kPrimitive,                                // 0x61 - ExtraPrimitive
		kOpenCloseActivateRef,                     // 0x62 - ExtraOpenCloseActivateRef
		kUnk63,                                    // 0x63
		kAmmo,                                     // 0x64 - ExtraAmmo
		kPatrolRefData,                            // 0x65 - ExtraPatrolRefData
		kPackageData,                              // 0x66 - ExtraPackageData
		kUnk67,                                    // 0x67
		kCollisionData,                            // 0x68 - ExtraCollisionData
		kSayOnceADayTopicInfo,                     // 0x69 - ExtraSayTopicInfoOnceADay
		kEncounterZone,                            // 0x6A - ExtraEncounterZone
		kSayToTopicInfo,                           // 0x6B - ExtraSayToTopicInfo
		kOcclusionPlaneRefData,                    // 0x6C - ExtraOcclusionPlaneRefData
		kUnk6D,                                    // 0x6D
		kUnk6E,                                    // 0x6E
		kUnk6F,                                    // 0x6F
		kRoomRefData,                              // 0x70 - ExtraRoomRefData
		kGuardedRefData,                           // 0x71 - ExtraGuardedRefData
		kCreatureAwakeSound,                       // 0x72 - ExtraCreatureAwakeSound
		kUnk73,                                    // 0x73
		kHorse,                                    // 0x74
		kIgnoredBySandbox,                         // 0x75 - ExtraIgnoredBySandbox
		kCellAcousticSpace,                        // 0x76 - ExtraCellAcousticSpace
		kReservedMarkers,                          // 0x77 - ExtraReservedMarkers
		kTransitionCellCount,                      // 0x78 - ExtraTransitionCellCount
		kWaterLightRefs,                           // 0x79 - ExtraWaterLightRefs
		kLitWaterRef,                              // 0x7A - ExtraLitWaterRef
		kRadioRepeater,                            // 0x7B - ExtraRadioRepeater
		kSoundHook,                                // 0x7C - ExtraSoundHook
		kPatrolRefInUseData,                       // 0x7D - ExtraPatrolRefInUseData
		kAshpileRef,                               // 0x7E - ExtraAshPileRef
		kFollowerSwimBreadcrumbs,                  // 0x7F - ExtraFollowerSwimBreadcrumbs
		kAliasInstanceArray,                       // 0x80 - ExtraAliasInstanceArray
		kLocation,                                 // 0x81 - ExtraLocation
		kUnk82,                                    // 0x82
		kLocationRefType,                          // 0x83 - ExtraLocationRefType
		kPromotedRef,                              // 0x84 - ExtraPromotedRef
		kUnk85,                                    // 0x85
		kOutfitItem,                               // 0x86 - ExtraOutfitItem
		kUnk87,                                    // 0x87
		kLeveledItemBase,                          // 0x88 - ExtraLeveledBaseObject
		kLightData,                                // 0x89 - ExtraLightData
		kLightBarndoorData,                        // 0x8A - ExtraLightBarndoorData
		kLightRoundnessData,                       // 0x8B - ExtraLightRoundnessData
		kLightAreaData,                            // 0x8C - ExtraLightAreaData
		kLightLayerData,                           // 0x8D - ExtraLightLayerData
		kLightVolumetricData,                      // 0x8E - ExtraLightVolumetricData
		kScene,                                    // 0x8F - ExtraSceneData
		kBadPosition,                              // 0x90 - ExtraBadPosition
		kHeadTrackingWeight,                       // 0x91 - ExtraHeadTrackingWeight
		kFromAlias,                                // 0x92 - ExtraFromAlias
		kShouldWear,                               // 0x93 - ExtraShouldWear
		kFavorCost,                                // 0x94 - ExtraFavorCost
		kAttachedArrows3D,                         // 0x95 - ExtraAttachedArrows3D
		kTextDisplayData,                          // 0x96 - ExtraTextDisplayData
		kEnchantment,                              // 0x97 - ExtraEnchantment
		kSoul,                                     // 0x98 - ExtraSoul
		kForcedTarget,                             // 0x99 - ExtraForcedTarget
		kWwiseSwitchData,                          // 0x9A - ExtraWwiseSwitchData
		kUniqueID,                                 // 0x9B - ExtraUniqueID
		kFlags,                                    // 0x9C - ExtraFlags
		kRefrPath,                                 // 0x9D - ExtraRefrPath
		kUnk9E,                                    // 0x9E
		kLockList,                                 // 0x9F - ExtraLockList
		kForcedLandingMarker,                      // 0xA0 - ExtraForcedLandingMarker
		kLargeRefOwnerCells,                       // 0xA1 - ExtraLargeRefOwnerCells
		kCellWaterEnvMap,                          // 0xA2 - ExtraCellWaterEnvMap
		kUnkA3,                                    // 0xA3
		kTeleportName,                             // 0xA4 - ExtraTeleportName
		kInteraction,                              // 0xA5 - ExtraInteraction
		kWaterData,                                // 0xA6 - ExtraWaterData
		kWaterCurrentZoneData,                     // 0xA7 - ExtraWaterCurrentZoneData
		kAttachRef,                                // 0xA8 - ExtraAttachRef
		kAttachRefChildren,                        // 0xA9 - ExtraAttachRefChildren
		kScriptedAnimDependence,                   // 0xAA - ExtraScriptedAnimDependence
		kCachedScale,                              // 0xAB - ExtraCachedScale
		kUnkAC,                                    // 0xAC
		kUnkAD,                                    // 0xAD
		kMissingRefIDs,                            // 0xAE - ExtraMissingRefIDs
		kBendableSplineParams,                     // 0xAF - ExtraBendableSplineParams
		kNavMeshSplineData,                        // 0xB0 - NavMeshSplineExtraData
		kReferenceGroup,                           // 0xB1 - ExtraReferenceGroup
		kUnkB2,                                    // 0xB2
		kUnkB3,                                    // 0xB3
		kOriginalItemBase,                         // 0xB4 - ExtraOriginalBaseObject
		kMaterialSwap,                             // 0xB5 - ExtraMaterialSwap
		kInstanceData,                             // 0xB6 - ExtraInstanceData
		kPowerArmor,                               // 0xB7 - ExtraPowerArmor
		kAcousticParent,                           // 0xB8 - ExtraAcousticParent
		kInputEnableLayer,                         // 0xB9 - ExtraInputEnableLayer
		kProjectedDecalRef,                        // 0xBA - ExtraProjectedDecalData
		kConstrainedDecalRef,                      // 0xBB - ExtraConstrainedDecalData
		kWorkshop,                                 // 0xBC - Workshop::ExtraData
		kRadioReceiver,                            // 0xBD - ExtraRadioReceiver
		kCulledBone,                               // 0xBE - ExtraCulledBone
		kActorValueStorage,                        // 0xBF - ExtraActorValueStorage
		kDirectAtTarget,                           // 0xC0 - ExtraDirectAtTarget
		kActivateText,                             // 0xC1 - ExtraActivateText
		kObjectBreakable,                          // 0xC2 - ExtraObjectBreakable
		kSavedDynamicIdles,                        // 0xC3 - ExtraObjectSavedDynamicIdles
		kIgnoredAttractKeywords,                   // 0xC4 - ExtraIgnoredAttractKeywords
		kModRank,                                  // 0xC5 - ExtraModRank
		kActorBoneScaleMap,                        // 0xC6 - ExtraBoneScaleMap
		kActorFXPickNodes,                         // 0xC7 - ExtraFXPickNodes
		kPowerArmorPreload,                        // 0xC8 - ExtraPowerArmorPreload
		kAnimGraphPreload,                         // 0xC9 - ExtraAnimGraphPreload
		kAnimSounds,                               // 0xCA - ExtraAnimSounds
		kPowerLinks,                               // 0xCB - ExtraPowerLinks
		kWorkshopSnapping,                         // 0xCC - ExtraWorkshopSnapping
		kSavedUnrecoverableSubgraphs,              // 0xCD - ExtraObjectSavedUnrecoverableSubgraphs
		kRefWeaponSounds,                          // 0xCE - ExtraRefWeaponSounds
		kRefInvestedGold,                          // 0xCF - ExtraInvestedGold
		kRefFurnitureEntryData,                    // 0xD0 - ExtraFurnitureEntryData
		kVoiceType,                                // 0xD1 - ExtraVoiceType
		kCalcedPackIn,                             // 0xD2 - ExtraCalcedPackIn
		kBody,                                     // 0xD3 - ExtraBody
		kSourcePackIn,                             // 0xD4 - ExtraSourcePackIn
		kTraversalData,                            // 0xD5 - ExtraTraversalData
		kTerminalMenuItems,                        // 0xD6 - ExtraTerminalMenuItems
		kCellEnvMap,                               // 0xD7 - ExtraCellEnvMap
		kModIndex,                                 // 0xD8 - ExtraModIndex
		kShipArrivalData,                          // 0xD9 - ExtraShipArrivalData
		kGroupedPackin,                            // 0xDA - ExtraGroupedPackin
		kUnkDB,                                    // 0xDB
		kUnkDC,                                    // 0xDC
		kBlueprintPartOriginData,                  // 0xDD - ExtraBlueprintPartOriginData
		kSnapLinks,                                // 0xDE - ExtraSnapLinks
		kUnkDF,                                    // 0xDF
		kUnkE0,                                    // 0xE0
		kPropertySheet,                            // 0xE1 - ExtraPropertySheet
		kCrew,                                     // 0xE2 - CrewExtraData
		kTerminalMenuMenuItems,                    // 0xE3 - ExtraTerminalMenuMenuItems
		kVolumeData,                               // 0xE4 - ExtraVolumeData
		kTerminalMenuBodyTextItems,                // 0xE5 - ExtraTerminalMenuBodyTextItems
		kCulledSubsegment,                         // 0xE6 - ExtraCulledSubsegment
		kLinkedChildrenAliasInstanceArray,         // 0xE7 - ExtraLinkedChildrenAliasInstanceArray
		kUnkE8,                                    // 0xE8
		kFogVolume,                                // 0xE9 - ExtraFogVolume
		kOwningInstance,                           // 0xEA - ExtraOwningInstance
		kDesiredLegendaryRank,                     // 0xEB - ExtraDesiredLegendaryRank
		kGeometryDirtynessScale,                   // 0xEC - ExtraGeometryDirtynessScale
		kVolumeReflectionProbeOffsetIntensity,     // 0xED - ExtraVolumeReflectionProbe_OffsetIntensity
		kTerminalMenuUnlockedItems,                // 0xEE - ExtraTerminalMenuUnlockedItems
		kProceduralInstanceData,                   // 0xEF - ExtraProceduralInstanceData
		kTimeOfDayData,                            // 0xF0 - ExtraTimeOfDayData
		kLightFlickerData,                         // 0xF1 - ExtraLightFlickerData
		kLightGoboData,                            // 0xF2 - ExtraLightGoboData
		kLightColorData,                           // 0xF3 - ExtraLightColorData
		kLightStaticShadowMapData,                 // 0xF4 - ExtraLightStaticShadowMapData
		kExternalEmittanceData,                    // 0xF5 - ExtraExternalEmittanceData
		kTempLocationWorldSpace,                   // 0xF6 - ExtraTempLocationWorldSpace
		kShipBlueprintSnapData,                    // 0xF7 - ExtraShipBlueprintSnapData
		kRandomAnimStartTime,                      // 0xF8 - ExtraRandomAnimStartTime
		kExteriorReflectionProbeAdjustmentVolume,  // 0xF9 - ExtraExteriorReflectionProbeAdjustmentVolume
		kCellGlobalDirtLayer,                      // 0xFA - ExtraCellGlobalDirtLayer
		kRadiusFalloffExponent,                    // 0xFB - ExtraRadiusFalloffExponent
		kWaterReflectionData,                      // 0xFC - ExtraWaterReflectionData
		kPlacedPlanetContent,                      // 0xFD - ExtraPlacedPlanetContent
	};

	// members
	BSExtraData*	next;   // 08
	u16				flags;  // 10
	Type			type;   // 12
};
static_assert(sizeof(BSExtraData) == 0x18);

class BaseExtraList
{
public:
	DEFINE_MEMBER_FN_1(AddExtra, void, 0x00501750, BSExtraData* a_extra);
	BSExtraData * GetByType(BSExtraData::Type type) const;	// inlined everywhere

	bool HasType(BSExtraData::Type type) const;

private:
	// members
	BSExtraData*  _head;  // 00
	BSExtraData** _tail;  // 08
	u8*			  _flags; // 10
};
static_assert(sizeof(BaseExtraList) == 0x18);

class ExtraDataList : public BSIntrusiveRefCounted
{
public:
	void AddExtra(BSExtraData* a_extra)
	{
		const BSAutoWriteLock l{ _extraRWLock };
		_extraData.AddExtra(a_extra);
	}

	BSExtraData* GetByType(BSExtraData::Type a_type)
	{
		const BSAutoReadLock l{ _extraRWLock };
		return _extraData.GetByType(a_type);
	}

private:
	// members
	BaseExtraList           _extraData;    // 08
	mutable BSReadWriteLock _extraRWLock;  // 20
};
static_assert(sizeof(ExtraDataList) == 0x28);


================================================
FILE: sfse/GameFormComponents.h
================================================
#pragma once

#include "sfse/GameTypes.h"
#include "sfse_common/Utilities.h"
#include "sfse_common/Types.h"

class TESObjectARMO;
class ActorValueInfo;
class BGSKeyword;
class TBO_InstanceData;
class BGSPerk;
class TESRace;
class BGSLocationRefType;
class BGSTerminal;
class BGSModelMaterialSwap;
class BGSBodyPartData;
class BGSAimAssistPoseData;

class BaseFormComponent
{
public:
	virtual ~BaseFormComponent();  // 00

	// add
	virtual void InitializeDataComponent();                // 01
	virtual void ClearDataComponent();                     // 02
	virtual void CopyComponent(BaseFormComponent* a_rhs);  // 03 - { return; }
	virtual void Unk_04();                                 // 04
	virtual void Unk_05();                                 // 05
	virtual void Unk_06();                                 // 06
	virtual void Unk_07();                                 // 07
};
static_assert(sizeof(BaseFormComponent) == 0x08);

class TESFormRefCount : public BaseFormComponent
{
public:
	volatile u64 refCount;  // 00
};

class TBO_InstanceData : public BSIntrusiveRefCounted
{
public:
	virtual ~TBO_InstanceData();

	virtual void Unk_01();
	virtual void Unk_02();
	virtual void Unk_03();
	virtual void Unk_04();
	virtual void Unk_05();
	virtual void Unk_06();
	virtual void Unk_07();
	virtual void Unk_08();
	virtual void Unk_09();
	virtual void Unk_0A();
	virtual void Unk_0B();
	virtual void Unk_0C();
	virtual void Unk_0D();
	virtual void Unk_0E();
	virtual void Unk_0F();
	virtual void Unk_10();
};

class BGSSnapTemplateComponent : public BaseFormComponent
{
public:
	virtual ~BGSSnapTemplateComponent();

	virtual void Unk_08();                                 // 08
	virtual void Unk_09();                                 // 09
	virtual void Unk_0A();                                 // 0A

	u64 unk08;	// 08
	u64 unk10;	// 10
};
static_assert(sizeof(BGSSnapTemplateComponent) == 0x18);

class BGSPreviewTransform : public BaseFormComponent
{
public:
	virtual ~BGSPreviewTransform();

	virtual void Unk_08();                                 // 08
	virtual void Unk_09();                                 // 09
	virtual void Unk_0A();                                 // 0A

	u64	unk08;	// 08
	u64	unk10;	// 10
	u64	unk18;	// 18
	u64	unk20;	// 20
	u64	unk28;	// 28
	u64	unk30;	// 30
	u64	unk38;	// 38
	u64	unk40;	// 40
};
static_assert(sizeof(BGSPreviewTransform) == 0x48);

class BGSMod
{
public:
	class Template
	{
	public:
		class Items : public BaseFormComponent
		{
		public:
			virtual ~Items();

			virtual void	Unk_08();	// 08
			virtual void	Unk_09();	// 09
			virtual void	Unk_0A();	// 0A

			void* unk08;	// 08
			void* unk10;	// 10
			void* unk18;	// 18
		};
	};
};
static_assert(sizeof(BGSMod::Template::Items) == 0x20);

class BGSObjectPlacementDefaults : public BaseFormComponent
{
public:
	virtual void	Unk_08();	// 08
	virtual void	Unk_09();	// 09
	virtual void	Unk_0A();	// 0A

	u64 unk08;	// 08
};
static_assert(sizeof(BGSObjectPlacementDefaults) == 0x10);

struct alignas(0x4) ACTOR_BASE_DATA
{
	enum Flags
	{
		kFlags_None = 0,
		kFlags_Gender = (1 << 0),
		kFlags_Essential = (1 << 1),
		kFlags_Unique = (1 << 5),
		kFlags_Protected = (1 << 11),
		kFlags_WalkStyle = (1 << 19),
	};

	u8 GetSex() const { return iActorBaseFlags & kFlags_Gender; }
	bool IsEssential() const { return iActorBaseFlags & kFlags_Essential; }
	bool IsUnique() const { return iActorBaseFlags & kFlags_Unique; }
	bool IsProtected() const { return iActorBaseFlags & kFlags_Protected; }

	s32 iActorBaseFlags;
	s16 sXPValueOffset;
	s16 sLevel;
	u16 usCalcLevelMin;
	u16 usCalcLevelMax;
	u16 usBaseDisposition;
	s16 sTemplateUseFlags;
	s16 sBleedoutOverride;
};
static_assert(sizeof(ACTOR_BASE_DATA) == 0x14);

class TESActorBaseData : public BaseFormComponent
{
public:
	virtual void	Unk_08();	// 08
	virtual void	Unk_09();	// 09
	virtual void	Unk_0A();	// 0A
	virtual void	Unk_10();	// 10
	virtual void	Unk_11();	// 11
	virtual void	Unk_12();	// 12
	virtual void	Unk_13();	// 13

	ACTOR_BASE_DATA	actorData;	// 08
	s32	unk1C;	// 1C
	u64	unk20;	// 20
	u64 unkPad; // Added in 1.10.31
	u64	unk28;	// 28
	u64	unk30;	// 30
	u64	unk38;	// 38
	u64	unk40;	// 40
	u64	unk48;	// 48
	u64	unk50;	// 50
	u64	unk58;	// 58
	u64	unk60;	// 60
	u64	unk68;	// 68
};
static_assert(sizeof(TESActorBaseData) == 0x78);

class TESContainer : public BaseFormComponent
{
public:
	virtual void	Unk_08();	// 08
	virtual void	Unk_09();	// 09
	virtual void	Unk_0A();	// 0A

	void* pContainerObjectsA;	// 08
	u32	uiNumContainerObjects;	// 10
};
static_assert(sizeof(TESContainer) == 0x18);

class TESSpellList : public BaseFormComponent
{
public:
	u32 unk08;	// 08
	u32	unk0C;	// 0C
	u64	unk10;	// 10
};
static_assert(sizeof(TESSpellList) == 0x18);

class PackageList
{
public:
	virtual void Unk_00();

	u64	unk08;	// 08
	u64	unk10;	// 10
	u64	unk18;	// 18
	u64	unk20;	// 20
};
static_assert(sizeof(PackageList) == 0x28);

struct alignas(0x4) AIDATA_GAME
{
	u16 unk00;	// 00
	u8  unk02;	// 02
	u8	pad03;	// 03
	u16 uiAggroRadius[4];	// 04
	u16	pad0A;	// 0A
	u8	unk0C;	// 0C
};
static_assert(sizeof(AIDATA_GAME) == 0x10);

class TESAIForm : public BaseFormComponent
{
public:
	AIDATA_GAME AIData;		// 08
	PackageList AIPackList;	// 18
};
static_assert(sizeof(TESAIForm) == 0x40);

class TESFullName : public BaseFormComponent
{
public:
	BSFixedString strFullName;	// 08
};
static_assert(sizeof(TESFullName) == 0x10);

class TESDescription : public BaseFormComponent
{
public:
	u32						uiFileOffset;		// 08
	u32						uiChunkOffset;		// 0C
	BGSLocalizedStringDL	DescriptionText;	// 10
};
static_assert(sizeof(TESDescription) == 0x18);

class BGSBipedObjectForm : public BaseFormComponent
{
public:
	void* unk08; // 08
};
static_assert(sizeof(BGSBipedObjectForm) == 0x10);

class BGSPreloadable
{
public:
	virtual ~BGSPreloadable();
};

enum ACTOR_VALUE_MODIFIER
{
	AVM_PERMANENT,
	AVM_TEMPORARY,
	AVM_DAMAGE,
	AVM_COUNT
};

class ActorValueOwner
{
public:
	virtual float GetActorValue(const ActorValueInfo* arInfo);
	virtual float GetPermanentActorValue(const ActorValueInfo* arInfo);
	virtual float GetBaseActorValue(const ActorValueInfo* arInfo);
	virtual void SetBaseActorValue(const ActorValueInfo* arInfo, float afValue);
	virtual void ModBaseActorValue(const ActorValueInfo* arInfo, float afDelta);
	virtual void ModActorValue(ACTOR_VALUE_MODIFIER aeModifier, const ActorValueInfo* arInfo);
	virtual float GetModifier(ACTOR_VALUE_MODIFIER aeModifier, const ActorValueInfo* arInfo);
	virtual void RestorActorValue(const ActorValueInfo* arInfo, float afAmount);
	virtual void SetActorValue(const ActorValueInfo* arInfo, float afValue);
};

class BGSDestructibleObjectForm : public BaseFormComponent
{
public:
	void* pData; // 08
};
static_assert(sizeof(BGSDestructibleObjectForm) == 0x10);

class BGSSkinForm : public BaseFormComponent
{
public:
	TESObjectARMO* pFormSkin;	// 08
};
static_assert(sizeof(BGSSkinForm) == 0x10);

class IKeywordFormBase
{
public:
	virtual ~IKeywordFormBase();

	virtual bool HasKeyword(const BGSKeyword* apKeyword, const TBO_InstanceData* apData);
	virtual void CollectAllKeywords(BSScrapArray<const BGSKeyword>& arOutKeywordA, const TBO_InstanceData* apData);
};

class BGSKeywordForm : 
	public BaseFormComponent,
	public IKeywordFormBase	// 08
{
public:
	u32	unk10;
	u32	unk14;
	u64	unk18;
	u32	unk20;
	u32	unk24;
	u64	unk28;
};
static_assert(sizeof(BGSKeywordForm) == 0x30);

class BGSAttackDataForm : public BaseFormComponent
{
public:
	void*/*NiPointer<BGSAttackDataMap>*/ spAttackDataMap;	// 08
};
static_assert(sizeof(BGSAttackDataForm) == 0x10);

struct PerkRankData
{
	BGSPerk*	pPerk;			// 00
	u8			cCurrentRank;	// 08
};

class BGSPerkRankArray : public BaseFormComponent
{
public:
	BSTArray<PerkRankData>	pPerksA;		// 08
};
static_assert(sizeof(BGSPerkRankArray) == 0x18);

class BGSPropertySheet : public BaseFormComponent
{
public:
	u64	unk08;
};
static_assert(sizeof(BGSPropertySheet) == 0x10);

class TESRaceForm : public BaseFormComponent
{
public:
	TESRace* pFormRace;	// 08
};
static_assert(sizeof(TESRaceForm) == 0x10);

class BGSOverridePackCollection : public BaseFormComponent
{
public:
	u64	unk08[8];
};
static_assert(sizeof(BGSOverridePackCollection) == 0x48);

class BGSForcedLocRefType : public BaseFormComponent
{
public:
	u64						unk08;	// 08
	u64						unk10;	// 10
};
static_assert(sizeof(BGSForcedLocRefType) == 0x18);

class BGSNativeTerminalForm : public BaseFormComponent
{
public:
	BGSTerminal* pTerminal;	// 08
};
static_assert(sizeof(BGSNativeTerminalForm) == 0x10);

class BGSAttachParentArray : public BaseFormComponent
{
public:
	void*/*BGSTypedKeywordValue<2>*/ pArray;	// 08
	u32	uiSize;	// 10
};
static_assert(sizeof(BGSAttachParentArray) == 0x18);

class TESModel : public BaseFormComponent
{
public:
	virtual void Unk_08(); // 08 - Record related
	virtual void Unk_09(); // 09
	virtual void Unk_0A(); // 0A
	virtual void Unk_0B(); // 0B
	virtual void Unk_0C(); // 0C
	virtual void Unk_0D(); // 0D
	virtual BGSModelMaterialSwap* GetAsModelMaterialSwap(); // 0E

	BSFixedString cModel;	// 08
	u64	unk10;				// 10
	u32	unk18;				// 18
	u32	unk1C;				// 1C
};
static_assert(sizeof(TESModel) == 0x20);

class TESModelTri : public TESModel
{
public:

};
static_assert(sizeof(TESModelTri) == 0x20);

class BGSTextureModel : public TESModel
{
public:

};
static_assert(sizeof(BGSTextureModel) == 0x20);

class BGSModelMaterialSwap : public TESModel
{
public:
	float fColorRemappingIndex; // 20
	u32 pad24; // 24
};
static_assert(sizeof(BGSModelMaterialSwap) == 0x28);

class IAnimationGraphComponent
{
public:
	virtual ~IAnimationGraphComponent();

	virtual void Unk_01();
	virtual void Unk_02();
};

class BGSAnimationGraphComponent : public BaseFormComponent, public IAnimationGraphComponent
{
public:
	BSFixedString	unk10;	// 10
	BSFixedString	unk18;	// 18
	BSFixedString	unk20;	// 20
	BSFixedString	unk28;	// 28
	u64	unk30;
	u8	unk38;
};
static_assert(sizeof(BGSAnimationGraphComponent) == 0x40);

struct FACEFX_BONESET
{
	virtual ~FACEFX_BONESET();

	u64	unk08;
	u64	unk10;
	u64	unk18;
	u64	unk20;
};

class BoneModifierData
{
public:
	virtual ~BoneModifierData();
	
	virtual void Unk_01();
	virtual void Unk_02();
	virtual void Unk_03();
	virtual void Unk_04();
	virtual void Unk_05();
	virtual void Unk_06();

	BSFixedString	unk08;	// 08
	BSFixedString	unk10;	// 10
	float			unk18;	// 18
};

class LookAtChainData : public BoneModifierData
{
public:
	BSFixedString	unk20;	// 20
};

class MorphDriverData : public BoneModifierData
{
public:
	float	unk20;
	float	unk24;
	float	unk28;
	float	unk2C;
	float	unk30;
	u8		unk34;
};

class PoseDeformerData : public BoneModifierData
{
public:
	float	unk20[(0x58 - 0x20) >> 2];
	u8		unk58;
};
static_assert(sizeof(PoseDeformerData) == 0x60);

class SpringBoneData : public BoneModifierData
{
public:
	float	unk20[(0x60 - 0x20) >> 2];
	u8		unk60;
};
static_assert(sizeof(SpringBoneData) == 0x68);

class BGSBodyPartInfo : public BaseFormComponent
{
public:
	BGSBodyPartData*		unk08;	// 08
	FACEFX_BONESET*			unk10;	// 10
	FACEFX_BONESET*			unk18;	// 18
	BGSAimAssistPoseData*	unk20;	// 20
};
static_assert(sizeof(BGSBodyPartInfo) == 0x28);

================================================
FILE: sfse/GameForms.cpp
================================================
#include "sfse/GameForms.h"

RelocAddr<TESForm::_GetFormByNumericID> TESForm::GetFormByNumericID(0x005DEF30);
RelocAddr<TESForm::_GetFormByEditorID> TESForm::GetFormByEditorID(0x005DF1E0);


================================================
FILE: sfse/GameForms.h
================================================
#pragma once

#include "sfse/GameFormComponents.h"
#include "sfse/GameReflection.h"
#include "sfse/GameChargen.h"
#include "sfse/NiTypes.h"

class TESFile;
class TESObjectREFR;
class BGSMorphableObject;
class TESNPC;
class NiAVObject;
class TESWaterForm;

enum class FormType : u32
{
	kNONE = 0,  // 00
	kTES4,      // 01
	kGRUP,      // 02
	kGMST,      // 03
	kKYWD,      // 04 BGSKeyword
	kFFKW,      // 05 BGSFormFolderKeywordList
	kLCRT,      // 06 BGSLocationRefType
	kAACT,      // 07 BGSAction
	kTRNS,      // 08 BGSTransform
	kTXST,      // 09 BGSTextureSet
	kGLOB,      // 0A TESGlobal
	kDMGT,      // 0B BGSDamageType
	kCLAS,      // 0C TESClass
	kFACT,      // 0D TESFaction
	kAFFE,      // 0E BGSAffinityEvent
	kHDPT,      // 0F BGSHeadPart
	kEYES,      // 10 TESEyes
	kRACE,      // 11 TESRace
	kSOUN,      // 12 TESSound
	kSECH,      // 13 BGSSoundEcho
	kASPC,      // 14 BGSAcousticSpace
	kAOPF,      // 15 BGSAudioOcclusionPrimitive
	kSKIL,      // 16
	kMGEF,      // 17 EffectSetting
	kSCPT,      // 18 Script
	kLTEX,      // 19 TESLandTexture
	kPDCL,      // 1A BGSProjectedDecal
	kENCH,      // 1B EnchantmentItem
	kSPEL,      // 1C SpellItem
	kSCRL,      // 1D ScrollItem
	kACTI,      // 1E TESObjectACTI
	kTACT,      // 1F BGSTalkingActivator
	kCURV,      // 20 BGSCurveForm
	kCUR3,      // 21 BGSCurve3DForm
	kARMO,      // 22 TESObjectARMO
	kBOOK,      // 23 TESObjectBOOK
	kCONT,      // 24 TESObjectCONT
	kDOOR,      // 25 TESObjectDOOR
	kINGR,      // 26 IngredientItem
	kLIGH,      // 27 TESObjectLIGH
	kMISC,      // 28 TESObjectMISC
	kSTAT,      // 29 TESObjectSTAT
	kSCOL,      // 2A BGSStaticCollection
	kPKIN,      // 2B BGSPackIn
	kMSTT,      // 2C BGSMovableStatic
	kGRAS,      // 2D TESGrass
	kFLOR,      // 2E TESFlora
	kFURN,      // 2F TESFurniture
	kWEAP,      // 30 TESObjectWEAP
	kAMMO,      // 31 TESAmmo
	kNPC_,      // 32 TESNPC
	kLVLN,      // 33 TESLevCharacter
	kLVLP,      // 34 BGSLevPackIn
	kKEYM,      // 35 TESKey
	kALCH,      // 36 AlchemyItem
	kIDLM,      // 37 BGSIdleMarker
	kBMMO,      // 38 BGSBiomeMarkerObject
	kNOTE,      // 39 BGSNote
	kPROJ,      // 3A BGSProjectile
	kHAZD,      // 3B BGSHazard
	kBNDS,      // 3C BGSBendableSpline
	kSLGM,      // 3D TESSoulGem
	kTERM,      // 3E BGSTerminal
	kLVLI,      // 3F TESLevItem
	kGBFT,      // 40 BGSGenericBaseFormTemplate
	kGBFM,      // 41 BGSGenericBaseForm
	kLVLB,      // 42 BGSLevGenericBaseForm
	kWTHR,      // 43 TESWeather
	kWTHS,      // 44 BGSWeatherSettingsForm
	kCLMT,      // 45 TESClimate
	kSPGD,      // 46 BGSShaderParticleGeometryData
	kREGN,      // 47 TESRegion
	kNAVI,      // 48 NavMeshInfoMap
	kCELL,      // 49 TESObjectCELL
	kREFR,      // 4A TESObjectREFR
	kACHR,      // 4B Actor
	kPMIS,      // 4C MissileProjectile
	kPARW,      // 4D ArrowProjectile
	kPGRE,      // 4E GrenadeProjectile
	kPBEA,      // 4F BeamProjectile
	kPFLA,      // 50 FlameProjectile
	kPCON,      // 51 ConeProjectile
	kPPLA,      // 52 PlasmaProjectile
	kPBAR,      // 53 BarrierProjectile
	kPEMI,      // 54 EmitterProjectile
	kPHZD,      // 55 Hazard
	kWRLD,      // 56 TESWorldSpace
	kNAVM,      // 57 NavMesh
	kTLOD,      // 58
	kDIAL,      // 59 TESTopic
	kINFO,      // 5A TESTopicInfo
	kQUST,      // 5B TESQuest
	kIDLE,      // 5C TESIdleForm
	kPACK,      // 5D TESPackage
	kCSTY,      // 5E TESCombatStyle
	kLSCR,      // 5F TESLoadScreen
	kLVSP,      // 60 TESLevSpell
	kANIO,      // 61 TESObjectANIO
	kWATR,      // 62 TESWaterForm
	kEFSH,      // 63 TESEffectShader
	kTOFT,      // 64
	kEXPL,      // 65 BGSExplosion
	kDEBR,      // 66 BGSDebris
	kIMGS,      // 67 TESImageSpace
	kIMAD,      // 68 TESImageSpaceModifier
	kFLST,      // 69 BGSListForm
	kPERK,      // 6A BGSPerk
	kBPTD,      // 6B BGSBodyPartData
	kADDN,      // 6C BGSAddonNode
	kAVIF,      // 6D ActorValueInfo
	kCAMS,      // 6E BGSCameraShot
	kCPTH,      // 6F BGSCameraPath
	kVTYP,      // 70 BGSVoiceType
	kMATT,      // 71 BGSMaterialType
	kIPCT,      // 72 BGSImpactData
	kIPDS,      // 73 BGSImpactDataSet
	kARMA,      // 74 TESObjectARMA
	kLCTN,      // 75 BGSLocation
	kMESG,      // 76 BGSMessage
	kRGDL,      // 77
	kDOBJ,      // 78 BGSDefaultObjectManager
	kDFOB,      // 79 BGSDefaultObject
	kLGTM,      // 7A BGSLightingTemplate
	kMUSC,      // 7B BGSMusicType
	kFSTP,      // 7C BGSFootstep
	kFSTS,      // 7D BGSFootstepSet
	kSMBN,      // 7E BGSStoryManagerBranchNode
	kSMQN,      // 7F BGSStoryManagerQuestNode
	kSMEN,      // 80 BGSStoryManagerEventNode
	kDLBR,      // 81 BGSDialogueBranch
	kMUST,      // 82 BGSMusicTrackFormWrapper
	kDLVW,      // 83
	kWOOP,      // 84 TESWordOfPower
	kSHOU,      // 85 TESShout
	kEQUP,      // 86 BGSEquipSlot
	kRELA,      // 87 BGSRelationship
	kSCEN,      // 88 BGSScene
	kASTP,      // 89 BGSAssociationType
	kOTFT,      // 8A BGSOutfit
	kARTO,      // 8B BGSArtObject
	kMATO,      // 8C BGSMaterialObject
	kMOVT,      // 8D BGSMovementType
	kDUAL,      // 8E BGSDualCastData
	kCOLL,      // 8F BGSCollisionLayer
	kCLFM,      // 90 BGSColorForm
	kREVB,      // 91 BGSReverbParameters
	kRFGP,      // 92 BGSReferenceGroup
	kAMDL,      // 93 BGSAimModel
	kAAMD,      // 94 BGSAimAssistModel
	kMAAM,      // 95 BGSMeleeAimAssistModel
	kLAYR,      // 96
	kCOBJ,      // 97 BGSConstructibleObject
	kOMOD,      // 98 BGSMod::Attachment::Mod
	kZOOM,      // 99 BGSAimDownSightModel
	kINNR,      // 9A BGSInstanceNamingRules
	kKSSM,      // 9B BGSSoundKeywordMapping
	kSCCO,      // 9C
	kAORU,      // 9D BGSAttractionRule
	kSTAG,      // 9E BGSSoundTagSet
	kIRES,      // 9F BGSResource
	kBIOM,      // A0 BGSBiome
	kNOCM,      // A1 NavMeshObstacleCoverManager
	kLENS,      // A2 BGSLensFlare
	kLSPR,      // A3
	kOVIS,      // A4 BGSObjectVisibilityManager
	kDLYR,      // A5
	kSTND,      // A6 BGSSnapTemplateNode
	kSTMP,      // A7 BGSSnapTemplate
	kGCVR,      // A8 BGSGroundCover
	kMRPH,      // A9 BGSMorphableObject
	kTRAV,      // AA BGSTraversal
	kRSGD,      // AB BGSResourceGenerationData
	kOSWP,      // AC BGSObjectSwap
	kATMO,      // AD BGSAtmosphere
	kLVSC,      // AE BGSLevSpaceCell
	kSPCH,      // AF BGSSpeechChallengeObject
	kRESO,      // B0
	kAAPD,      // B1 BGSAimAssistPoseData
	kVOLI,      // B2 BGSVolumetricLighting
	kSFBK,      // B3 BGSSurface::Block
	kSFPC,      // B4
	kSFPT,      // B5 BGSSurface::Pattern
	kSFTR,      // B6 BGSSurface::Tree
	kPCMT,      // B7 BGSPlanetContentManagerTree
	kBMOD,      // B8 BGSBoneModifier
	kSTBH,      // B9 BGSSnapBehavior
	kPNDT,      // BA BGSPlanet::PlanetData
	kIUTF,      // BB
	kCNDF,      // BC BGSConditionForm
	kPCBN,      // BD BGSPlanetContentManagerBranchNode
	kPCCN,      // BE BGSPlanetContentManagerContentNode
	kSTDT,      // BF BSGalaxy::BGSStar
	kWWED,      // C0 BGSWwiseEventForm
	kRSPJ,      // C1 BGSResearchProjectForm
	kAOPS,      // C2 BGSAimOpticalSightModel
	kAMBS,      // C3 BGSAmbienceSet
	kWBAR,      // C4 BGSWeaponBarrelModel
	kPTST,      // C5 BGSSurface::PatternStyle
	kLMSW,      // C6 BGSLayeredMaterialSwap
	kFORC,      // C7 BGSForceData
	kTMLM,      // C8 BGSTerminalMenu
	kEFSQ,      // C9 BGSEffectSequenceForm
	kSDLT,      // CA BGSSecondaryDamageList
	kMTPT,      // CB BGSMaterialPathForm
	kCLDF,      // CC BGSCloudForm
	kFOGV,      // CD BGSFogVolumeForm
	kWKMF,      // CE BGSWwiseKeywordMapping
	kLGDI,      // CF BGSLegendaryItem
	kPSDC,      // D0 BGSParticleSystemDefineCollection
	kSUNP,      // D1 BSGalaxy::BGSSunPresetForm
	kPMFT,      // D2 BGSPhotoModeFeature
	kTODD,      // D3 BGSTimeOfDayData
	kAVMD,      // D4 BGSAVMData
	kPERS,      // D5 TESDataHandlerPersistentCreatedUtil::BGSPersistentIDsForm
	kCHAL,      // D6 BGSChallengeForm
	kUNK1,      // D7
	kUNK2,      // D8
	kUNK3,      // D9
	kTotal      // DA
};

class TESForm : public TESFormRefCount, public BSReflection::IObject
{
public:
	virtual ~TESForm();  // 00

	struct ACTIVATE_DATA
	{
		TESObjectREFR*	activatedRef;
		TESObjectREFR*	actionRef;
		TESForm*		objectToGet;
		s32				count;
		bool			unk1C;
	};

	// add
	virtual void          Unk_08();                                                         // 08
	virtual void          Unk_09();                                                         // 09
	virtual void          Unk_0A();                                                         // 0A
	virtual void          Unk_0B();                                                         // 0B
	virtual void          Unk_0C();                                                         // 0C
	virtual void          Unk_0D();                                                         // 0D
	virtual void          Unk_0E();                                                         // 0E
	virtual void          Unk_0F();                                                         // 0F
	virtual void          Unk_10();                                                         // 10
	virtual void          Unk_11();                                                         // 11
	virtual void          Unk_12();                                                         // 12
	virtual void          Unk_13();                                                         // 13
	virtual void          Unk_14();                                                         // 14
	virtual void          Unk_15();                                                         // 15
	virtual void          Unk_16();                                                         // 16
	virtual bool          AddChange(u32 a_changeFlags);                           // 17
	virtual void          RemoveChange(u32 a_changeFlags);                        // 18
	virtual void          Unk_19();                                                         // 19
	virtual void          Unk_1A();                                                         // 1A
	virtual void          Unk_1B();                                                         // 1B
	virtual void          Unk_1C();                                                         // 1C
	virtual void          Unk_1D();                                                         // 1D
	virtual void          Unk_1E();                                                         // 1E
	virtual void          InitItemImpl();                                                   // 1F
	virtual TESFile* GetRevertFile() const;                                            // 20
	virtual TESFile* GetDescriptionOwnerFile() const;                                  // 21
	virtual u8  GetSavedFormType();                                               // 22
	virtual void          GetFormDetailedString(char* a_dest, u32 a_size) const;  // 23
	virtual bool          GetKnown() const;                                                 // 24
	virtual bool          GetRandomAnim() const;                                            // 25
	virtual bool          GetPlayable() const;                                              // 26
	virtual void          SetPlayable(bool a_set);                                          // 27
	virtual void          Unk_28();                                                         // 28
	virtual void          Unk_29();                                                         // 29
	virtual bool          GetDangerous() const;                                             // 2A
	virtual bool          QHasCurrents() const;                                             // 2B
	virtual bool          GetObstacle() const;                                              // 2C
	virtual void          Unk_2D();                                                         // 2D
	virtual bool          GetOnLocalMap() const;                                            // 2E
	virtual bool          GetMustUpdate() const;                                            // 2F
	virtual void          SetOnLocalMap(bool a_val);                                        // 30
	virtual void          Unk_31();                                                         // 31 - new?
	virtual void          Unk_32();                                                         // 32 - GetIgnoredBySandbox()?
	virtual void          SetDelete(bool a_deleted);                                        // 33
	virtual void          SetAltered(bool a_altered);                                       // 34
	virtual void          Unk_35();                                                         // 35
	virtual void          Unk_36();                                                         // 36
	virtual void          Unk_37();                                                         // 37
	virtual void          Unk_38();                                                         // 38
	virtual void          Unk_39();                                                         // 39
	virtual void          Unk_3A();                                                         // 3A
	virtual void          Unk_3B();                                                         // 3B
	virtual void          Unk_3C();                                                         // 3C
	virtual void          Unk_3D();                                                         // 3D
	virtual void          Unk_3E();                                                         // 3E
	virtual void          Unk_3F();                                                         // 3F
	virtual bool          IsFurniture();                                                    // 40 - new
	virtual void          Unk_41();                                                         // 41
	virtual void          Unk_42();                                                         // 42
	virtual void          Unk_43();                                                         // 43
	virtual void          Unk_44();                                                         // 44
	virtual void          Unk_45();                                                         // 45
	virtual void          Unk_46();                                                         // 46
	virtual void          Unk_47();                                                         // 47
	virtual void          Unk_48();                                                         // 48
	virtual void          Unk_49();                                                         // 49
	virtual void          Unk_4A();                                                         // 4A
	virtual void          Unk_4B();                                                         // 4B
	virtual u32 GetFullNameLength() const;                                        // 4C - new
	virtual const char* GetFullName() const;                                              // 4D - new
	virtual void          Unk_4E();                                                         // 4E
	virtual void          Unk_4F();                                                         // 4F
	virtual void          Unk_50();                                                         // 50
	virtual void          Unk_51();                                                         // 51
	virtual void          Unk_52();                                                         // 52
	virtual void          Unk_53();                                                         // 53
	virtual bool          Activate(const ACTIVATE_DATA& a_activateData);                    // 54
	virtual void          Unk_55();                                                         // 55
	virtual void          Unk_56();                                                         // 56
	virtual void          Unk_57();                                                         // 57
	virtual void          Unk_58();                                                         // 58
	virtual void          Unk_59();                                                         // 59
	virtual void          Unk_5A();                                                         // 5A
	virtual void          Unk_5B();                                                         // 5B
	virtual void          Unk_5C();                                                         // 5C
	virtual u32 GetFilledSlots() const;                                           // 5D
	virtual u32 GetFilledSlotsImpl() const;                                       // 5E
	virtual float         GetDesirability() const;                                          // 5F
	virtual void          Unk_60();                                                         // 60
	virtual void          Unk_61();                                                         // 61

	// members
	u32 unk18;        // 18
	u32 unk1C;        // 1C
	u32 formFlags;    // 20
	u32 unk24;        // 24
	u32 formID;       // 28
	u8  unk2C;        // 2C - also flag
	u8  unk2D;        // 2D
	u8  formType;     // 2E
	u16  modIndex;    // 2F - changed to u16 in 1.14.70

	using _GetFormByNumericID = TESForm * (*)(u32 formId);
	static RelocAddr<_GetFormByNumericID> GetFormByNumericID;

	using _GetFormByEditorID = TESForm * (*)(const char*);
	static RelocAddr<_GetFormByEditorID> GetFormByEditorID;
};
static_assert(offsetof(TESForm, refCount) == 0x08);
static_assert(sizeof(TESForm) == 0x38);

class BGSKeyword : public TESForm
{
public:
	//...
};

struct OBJ_REFR
{
public:
	// members
	NiPoint3 angle;            // 00
	NiPoint3 location;         // 0C
	TESForm* objectReference;  // 18 - TESBoundObject
};
static_assert(sizeof(OBJ_REFR) == 0x20);

struct LOADED_REF_DATA
{
public:
	// members
	void* handleList;								// 00 - TODO
	NiPointer<NiAVObject>	data3D;					// 08
	TESWaterForm*			currentWaterType;		// 10
	float					relevantWaterHeight;	// 18
	float					cachedRadius;			// 1C
	u32						flags;					// 20
	u16						underwaterCount;		// 24
};
static_assert(sizeof(LOADED_REF_DATA) == 0x28);

class BGSListForm :
	public TESForm
{
public:
	BSTArray<TESForm*> ArrayOfForms;		// 30
	u64	unk40;	// 40
	u64	unk48;	// 48
	u64	unk50;	// 50
	u64	unk58;	// 58
	u64	unk60;	// 60
	u64	unk68;	// 68
	u64	unk70;	// 70
	u64	unk78;	// 78
	u64	unk80;	// 80
};
static_assert(sizeof(BGSListForm) == 0x90);

class BGSMorphableObject : public TESForm
{
public:
	BSFixedString		unk30;					// 30
	BGSMorphableObject*	unk38;					// 38 - Seems to point to itself?
	BSFixedString		performanceMaterial;	// 40
	BSFixedString		chargenMaterial;		// 48
	BSFixedString		unk50;					// 50
	u32					unk58;					// 58
	u32					unk5C;					// 5C
};
static_assert(sizeof(BGSMorphableObject) == 0x68);

class BGSHeadPart : 
	public TESForm,
	public TESFullName,			// 30
	public BGSModelMaterialSwap // 40
{
public:
	enum HeadPartType : s32
	{
		HeadPartMisc = 0,
		HeadPartFace,
		HeadPartRightEye,
		HeadPartHair,
		HeadPartFacialHair,
		HeadPart5,
		HeadPartEyebrows,
		HeadPartJewelry,
		HeadPart8,
		HeadPartTeeth,
		HeadPart10,
		HeadPart11,
		HeadPartLeftEye,
		HeadPartEyelashes,
		HeadPartCount
	};

	BSFixedString unk68; // 68
	BGSHeadPart* unk70;	// 70
	TESModel ChargenModel;	// 78
	TESModelTri MorphsA[3];	// 98
	u8	unkF8;	// F8
	u8	padF9[7];	// F9
	u64	unk100; // 100
	BSTArray<BGSHeadPart*>	extraParts;	// 108
	BGSMorphableObject*	morph;	// 118
	u64	unk120;	// 120
	BGSListForm*	unk128;	// 128
	BSFixedString	unk130;	// 130
	BSFixedString	unk148;	// 138
	HeadPartType	eType;	// 140
	u32	unk144; // 144
};
static_assert(sizeof(BGSHeadPart) == 0x150);
static_assert(offsetof(BGSHeadPart, strFullName) == 0x40);
static_assert(offsetof(BGSHeadPart, cModel) == 0x50);

class BGSBoneModifier : public TESForm
{
public:
	virtual ~BGSBoneModifier();

	BoneModifierData*	unk30;	// 30
};
static_assert(sizeof(BGSBoneModifier) == 0x40);

class BGSEquipSlot : public TESForm
{
public:
	virtual ~BGSEquipSlot();

	BSFixedString	unk30;	// 30
	void*			unk38;	// 38
	u64				unk40;	// 40
	u64				unk48;	// 48
	u64				unk50;	// 50
	u64				unk58;	// 58
};
static_assert(sizeof(BGSEquipSlot) == 0x68);

class BGSBodyPartData : 
	public TESForm,
	public TESModel,		// 30
	public BGSPreloadable
{
public:
	u64	unk58[(0x128 - 0x58) >> 3];	// 58
	BSFixedString	unk128;			// 128
	BSFixedString	unk130;			// 130
	BSFixedString	unk138;			// 138
	BSFixedString	unk140;			// 140
	BSFixedString	unk148;			// 148
};
static_assert(sizeof(BGSBodyPartData) == 0x158);

class BGSMovementType : public TESForm
{
public:
	BSFixedString	unk30;	// 30
	u64	unk38[(0x140 - 0x38) >> 3];
};
static_assert(sizeof(BGSMovementType) == 0x148);

class BGSAimAssistPoseData : public TESForm
{
public:
	u64	unk30;	// 30
	u64	unk38;	// 38
	u64	unk40;	// 40
	u64	unk48;	// 48
	u64	unk50;	// 50
};

class TESRace :
	public TESForm,
	public TESFullName,
	public TESDescription,
	public TESSpellList,
	public BGSSkinForm,
	public BGSBipedObjectForm,
	public BGSKeywordForm,
	public BGSAttackDataForm,
	public BGSPropertySheet,
	public BGSPreloadable
{
public:
	BSFixedString	editorID;		// E8
	void*			unkF0;			// F0
	void*			unkF8;			// F8
	float			unk100;			// 100
	u32				unk104;			// 104
	u32				unk108;			// 108
	u32				unk10C;			// 10C
	u64				unk110;			// 110
	u64				unk118;			// 118
	u64				unk120;			// 120
	u64				unk128;			// 128
	u32				unk130;			// 130
	u32				unk134;			// 134
	u32				unk138;			// 138
	u32				unk13C;			// 13C
	u64				unk140;			// 140
	u64				unk148;			// 148
	u64				unk150;			// 150
	u64				unk158;			// 158
	BSFixedString	slotNames[64];	// 160
	void*			unk360[64];		// 360
	BSTHashMap<BSFixedString, u32>	slotMap;	// 560
	struct EquipSlot
	{
		BGSEquipSlot*	unk00;	// 00
		void*			unk08;	// 08
	};
	BSTArray<EquipSlot>		unk598;			// 598
	u64				unk5A8;			// 5A8
	u64				unk5B0;			// 5B0
	u64				unk5B8;			// 5B8
	BSTArray<BGSBoneModifier*>			unk5C0[2];		// 5C0
	u64				unk5E0;			// 5E0
	TESModel		unk5E8[4];		// 5E8
	TESModel		faceBones[2];	// 668
	struct Unk6A8
	{
		s32				unk00;
		float			unk04;
		float			unk08;
		float			unk0C;
		float			unk10;
		u32				unk14;
		u64				unk18;
		float			unk20;
		u32				unk24;
		float			unk28;
		float			unk2C;
		float			unk30;
		float			unk34;
		float			unk38;
		float			unk3C;
		float			unk40;
		float			unk44;
		float			unk48;
		float			unk4C;
		u32				unk50;
		float			unk54;
		float			unk58;
		u32				unk5C;
		float			unk60;
		float			unk64;
		struct Unk68
		{
			float		unk00;
			float		unk08;
			float		unk0C;
		};
		Unk68			unk68[2];
		void*			unk80;
		s32				unk88;
		s32				unk8C;
		s32				unk90;
		s32				unk94;
		s32				unk98;
		s32				unk9C;
		float			unkA0;
		float			unkA4;
		float			unkA8;
		float			unkAC;
		float			unkB0;
		float			unkB4;
		float			unkB8;
		float			unkBC;
		u32				unkC0;
		u32				unkC4;
		u32				unkC8;
		u32				unkCC;
		u64				unkD0;
		u64				unkD8;
		u64				unkE0;
		u32				unkE8;
		u32				unkEC;
		float			unkF0;
		float			unkF4;
		u32				unkF8;
		u32				unkFC;
	};
	Unk6A8			unk6A8;					// 6A8
	u64				unk7A8;					// 7A8
	BGSTextureModel	unk7B0[2];				// 7B0
	BGSAnimationGraphComponent unk7F0[4];	// 7F0
	void*					unk8F0[2];		// 8F0
	BGSBodyPartInfo			bodyPartInfo;	// 900
	BGSAttachParentArray	attachParentA;	// 928
	u64						unk940;			// 940
	u64						unk948;			// 948
	u64						unk950;			// 950
	BGSMovementType*		unk958[4];		// 958
	u64						unk978;			// 978
	u64						unk980;			// 980

	using FaceSliderID = u32;
	using FaceMorphID = u32;
	struct ChargenData
	{
		struct FaceMorphData
		{
			BSFixedString			Name;					// 00
			BSFixedString			SecondaryMorphName;		// 08
			BSFixedStringCS			AssociatedMorphGroup;	// 10
			u64						AssociatedHeadPartType;	// 18
			BSFixedString			unk20;					// 20
			BSFixedString			unk28;					// 28
			BSTArray<BSFixedString> BonesA;					// 30 - Probably CS?
			BSTArray<u64>			AssociatedMorphs;		// 40
			BSTArray<FaceSliderID>	PostBlendSliderA;		// 50
			FaceMorphID				ID;						// 60
			u8						SculptRegion;			// 64
		};
		BSTHashMap<FaceMorphID, FaceMorphData*>							faceMorphMap;
		BSTHashMap<FaceSliderID, BGSCharacterMorph::FacialBoneSlider*>	facialSliderMap;
		BSTHashMap<FaceSliderID, BGSCharacterMorph::FacialBoneSlider*>	unk70;
		BSTHashMap<BSFixedString, BSTHashMap<BSFixedString, float>*>	facialBoneRegionCategoryMapping;
		BSTArray<FaceMorphID>	headMorphA;	// E0
		BSFixedString			unkF0;	// F0
		u64						unkF8;	// F8
		u64*					unk100;	// 100
		u64						sliderCount;	// 108
		u64						unk110;	// 110
		BSTArray<TESNPC*>		unk118;	// 118
		struct MorphGroup
		{
			BSFixedString				name;	// Probably CS?
			BSTArray<BSFixedString>		MorphA;	// Probably CS?
		};
		BSTArray<MorphGroup*>			morphGroupA;		// 128
		char*							unk138;				// 138 - This is a giant csv of somekind
		void*							unk140;				// 140
		BSFixedString					unk148;				// 148
	};
	ChargenData*			chargenData[2];					// 988
	u64						unk998;							// 998
	BSFixedString			handMaterials[2];				// 9A0
	BSFixedString			skinMaterials[2];				// 9B0
	BSFixedString			unk9C0[2];						// 9C0
	BSTArray<BGSHeadPart*>	headParts[2];					// 9D0
	struct Unk9F0
	{
		void* unk00[2];
	};
	Unk9F0					unk9F0[2];
	BSFixedString			unkA10;
};

static_assert(offsetof(TESRace, unk360) == 0x368);
static_assert(offsetof(TESRace, unk5C0) == 0x5C8);
static_assert(offsetof(TESRace, unk5E8) == 0x5F0);
static_assert(offsetof(TESRace::Unk6A8, unk80) == 0x80);
static_assert(offsetof(TESRace, unk6A8) == 0x6B0);
static_assert(offsetof(TESRace, unk7B0) == 0x7B8);
static_assert(offsetof(TESRace, unk7F0) == 0x7F8);
static_assert(offsetof(TESRace, unk8F0) == 0x8F8);
static_assert(offsetof(TESRace, bodyPartInfo) == 0x908);
static_assert(offsetof(TESRace, attachParentA) == 0x930);
static_assert(offsetof(TESRace, unk940) == 0x948);
static_assert(offsetof(TESRace, headParts) == 0x9D8);
static_assert(offsetof(TESRace, unk9F0) == 0x9F8);
static_assert(offsetof(TESRace, unkA10) == 0xA18);
static_assert(sizeof(TESRace::Unk6A8) == 0x100);
static_assert(sizeof(TESRace::ChargenData::FaceMorphData) == 0x68);
static_assert(sizeof(TESRace::ChargenData) == 0x150);
static_assert(sizeof(TESRace) == 0xA20);

class BGSAVMData : public TESForm
{
public:
	BSFixedString	editorName;	// 30
	BGSAVMData*		unk38;		// 38 - Points to itself?
	enum Type
	{
		SIMPLE,
		COMPLEX,
		MODULATION
	};
	u64				type;		// 40
	BSFixedString	name;		// 48
	BSFixedString	name2;		// 50
	struct Entry
	{
		BSFixedString	name;
		BSFixedString	textureOrAVM;
		struct Color
		{
			u8 a, b, g, r;
		};
		Color			color;
		u32				unk14;
	};
	Entry*			entryBegin;	// 58
	Entry*			entryEnd;	// 60
	Entry*			unk68;		// 68 - Why are there 2 end pointers?
	u64				unk70;		// 70
};
static_assert(sizeof(BGSAVMData) == 0x80);


================================================
FILE: sfse/GameLock.cpp
================================================
#include "sfse/GameLock.h"


================================================
FILE: sfse/GameLock.h
================================================
#pragma once

#include "sfse_common/Types.h"
#include "sfse_common/Utilities.h"

class BSNonReentrantSpinLock
{
public:
	DEFINE_MEMBER_FN_0(lock, void, 0x00323990);
	// try_lock and unlock was inlined everywhere

private:
	// members
	volatile u32 _lock{};  // 0
};
static_assert(sizeof(BSNonReentrantSpinLock) == 0x4);

class BSReadWriteLock
{
public:
	DEFINE_MEMBER_FN_0(lock_read, void, 0x022CE9B0);
	DEFINE_MEMBER_FN_0(lock_write, void, 0x022CEA30);
	DEFINE_MEMBER_FN_0(unlock_read, void, 0x002C6280);
	DEFINE_MEMBER_FN_0(unlock_write, void, 0x002C4B80);

private:
	// members
	u32          _writerThread{};  // 0
	volatile u32 _lock{};          // 4
};
static_assert(sizeof(BSReadWriteLock) == 0x8);

class BSSpinLock
{
public:
	DEFINE_MEMBER_FN_0(lock, void, 0x022CB300);
	DEFINE_MEMBER_FN_0(try_lock, bool, 0x022CB2B0);
	DEFINE_MEMBER_FN_0(unlock, void, 0x002B6600);

private:
	// members
	u32          _owningThread{};  // 0
	volatile u32 _lock{};          // 4
};
static_assert(sizeof(BSSpinLock) == 0x8);

template <class Mutex>
struct BSAutoLockDefaultPolicy
{
public:
	static void lock(Mutex& a_mutex) { a_mutex.lock(); }
	static void unlock(Mutex& a_mutex) { a_mutex.unlock(); }
};
static_assert(std::is_empty_v<BSAutoLockDefaultPolicy<BSSpinLock>>);

template <class Mutex>
struct BSAutoLockReadLockPolicy
{
public:
	static void lock(Mutex& a_mutex) { a_mutex.lock_read(); }
	static void unlock(Mutex& a_mutex) { a_mutex.unlock_read(); }
};
static_assert(std::is_empty_v<BSAutoLockReadLockPolicy<BSReadWriteLock>>);

template <class Mutex>
struct BSAutoLockWriteLockPolicy
{
public:
	static void lock(Mutex& a_mutex) { a_mutex.lock_write(); }
	static void unlock(Mutex& a_mutex) { a_mutex.unlock_write(); }
};
static_assert(std::is_empty_v<BSAutoLockWriteLockPolicy<BSReadWriteLock>>);

template <class Mutex, template <class> class Policy = BSAutoLockDefaultPolicy>
class BSAutoLock
{
public:
	using mutex_type = Mutex;
	using policy_type = Policy<mutex_type>;

	explicit BSAutoLock(mutex_type& a_mutex) :
		_lock(std::addressof(a_mutex))
	{
		policy_type::lock(*_lock);
	}

	explicit BSAutoLock(mutex_type* a_mutex) :
		_lock(a_mutex)
	{
		if (_lock) {
			policy_type::lock(*_lock);
		}
	}

	~BSAutoLock()
	{
		if (_lock) {
			policy_type::unlock(*_lock);
		}
	}

private:
	// members
	mutex_type* _lock{};  // 00
};
static_assert(sizeof(BSAutoLock<void*>) == 0x8);

using BSAutoReadLock = BSAutoLock<BSReadWriteLock, BSAutoLockReadLockPolicy>;
static_assert(sizeof(BSAutoReadLock) == 0x8);

using BSAutoWriteLock = BSAutoLock<BSReadWriteLock, BSAutoLockWriteLockPolicy>;
static_assert(sizeof(BSAutoWriteLock) == 0x8);

template <class T, class Mutex>
class BSGuarded
{
public:
	template <class U, template <class> class Policy = BSAutoLockDefaultPolicy>
	class Guard
	{
	public:
		explicit Guard(U& a_data, Mutex& a_mutex) :
			_guard(a_mutex),
			_data(a_data)
		{}

		U& operator*() { return _data; }
		U& operator->() { return _data; }
		const U& operator*() const { return _data; }
		const U& operator->() const { return _data; }

	private:
		// members
		BSAutoLock<Mutex, Policy> _guard{};  // 0 - Lock guard is first here?
		U& _data;     // 8
	};

	auto lock()
	{
		return Guard<T>(_data, _lock);
	}

	auto lock_read() const
	{
		return Guard<const T, BSAutoLockReadLockPolicy>(_data, _lock);
	}

	auto lock_write()
	{
		return Guard<T, BSAutoLockWriteLockPolicy>(_data, _lock);
	}

private:
	// members
	T             _data{};  // ??
	mutable Mutex _lock{};  // ??
};


================================================
FILE: sfse/GameMemory.cpp
================================================
#include "sfse/GameMemory.h"

RelocAddr<_GetMemoryManager> GetMemoryManager(0x002B81E0);

void* Heap_Allocate(size_t size)
{
    return GetMemoryManager()->Allocate(size, 0, false);
}

void Heap_Free(void* ptr)
{
    GetMemoryManager()->Free(ptr, false);
}


================================================
FILE: sfse/GameMemory.h
================================================
#pragma once

#include "sfse_common/Utilities.h"

class ScrapHeap // Has parent classes
{
public:
    virtual ~ScrapHeap();

    u64 unk08[(0x4B8 - 0x08) >> 3]; // 08
    u32 currentThreadId;            // 4B8
};
static_assert(offsetof(ScrapHeap, currentThreadId) == 0x4B8);

class MemoryManager
{
public:
    DEFINE_MEMBER_FN_3(Allocate, void*, 0x022CA0C0, size_t size, size_t alignment, bool aligned);
    DEFINE_MEMBER_FN_2(Free, void, 0x022CA330, void* buf, bool aligned);
    // GetThreadScrapHeap appears to be inlined everywhere. did not check all ~2000 instances
};

using _GetMemoryManager = MemoryManager * (*)();
extern RelocAddr<_GetMemoryManager> GetMemoryManager;

void* Heap_Allocate(size_t size);
void Heap_Free(void* ptr);


================================================
FILE: sfse/GameMenu.h
================================================
#pragma once

#include "sfse/ScaleformFunctions.h"
#include "sfse/GameUI.h"
#include "sfse/GameEvents.h"
#include "sfse/ScaleformValue.h"

class TESNPC;

namespace Scaleform
{
namespace GFx
{
class MovieImpl;
}
}

class IMenu : 
    public SWFToCodeFunctionHandler,          // 00
    public BSInputEventUser,                  // 10
    public BSTEventSink<UpdateSceneRectEvent> // 50
{
public:
    virtual const char* GetName() const ; // 03
    virtual const char* GetRootPath() const; // 04
    virtual void Unk_05(); // 05
    virtual void Unk_06(); // 06
    virtual bool LoadMovie(bool addEventDispatcher, bool unk2); // 07
    virtual void Unk_08(); // 08
    virtual void Unk_09(); // 09
    virtual void Unk_0A(); // 0A
    virtual void Unk_0B(); // 0B
    virtual void Unk_0C(); // 0C
    virtual void Unk_0D(); // 0D
    virtual void Unk_0E(); // 0E
    virtual void Unk_0F(); // 0F
    virtual void Unk_10(); // 10
    virtual void Unk_11(); // 11
    virtual void Unk_12(); // 12
    virtual void Unk_13(); // 13
    virtual void Unk_14(); // 14
    virtual void Unk_15(); // 15
    virtual void Unk_16(); // 16
    virtual void Unk_17(); // 17
    virtual void Unk_18(); // 18
    virtual void Unk_19(); // 19
    virtual void Unk_1A(); // 1A

    Scaleform::GFx::Value MenuObj;  // 58
    Scaleform::GFx::MovieImpl* pUIMovie;  // 88
    u64 unk90;  // 90 - EventDispatcherBackend?
    u64 unk98;  // 98
    u64 unkA0;  // A0
    u32 unkA8;  // A8
    u32 unkAC;  // AC
    BSFixedString MenuName; // B0
    BSFixedString unkB8;    // B8
    u64 unkC0;  // C0 - Flags?
    u32 unkC8;  // C8
    u32 unkCC;  // CC
    u32 unkD0;  // D0
    u32 unkD4;  // D4
    u64 unkD8;  // D8
    u64 unkE0;  // E0
    u64 unkE8;  // E8
    u64 unkF0;  // F0
    u64 unkF8;  // F8
    u64 unk100; // 100
    u32 unk108; // 108
    u32 unk10C; // 10C
    u64 unk110; // 110
    u64 unk118; // 118
    u64 unk120; // 120
    u64 unk128; // 128
    u64 unk130; // 130
};
static_assert(offsetof(IMenu, pUIMovie) == 0x88);
static_assert(offsetof(IMenu, MenuName) == 0xB0);

class GameMenuBase : public IMenu
{
public:

};

// 658
class ChargenMenu : 
    public IMenu,                                               // 00
    public IDataModel,                                          // 138
    public BSTEventSink<CharGen_CloseMenu>,                     // 140
    public BSTEventSink<CharGen_PresetChange>,                  // 148
    public BSTEventSink<CharGen_HeadpartPresetChange>,          // 150
    public BSTEventSink<CharGen_SetSex>,                        // 158
    public BSTEventSink<CharGen_SetSlider>,                     // 160
    public BSTEventSink<CharGen_StartTextEntry>,                // 168
    public BSTEventSink<CharGen_EndTextEntry>,                  // 170
    public BSTEventSink<CharGen_CancelTextEntry>,               // 178
    public BSTEventSink<CharGen_ShowPlayerRenameMessage>,       // 180
    public BSTEventSink<CharGen_ShowChooseBackgroundMessage>,   // 188
    public BSTEventSink<CharGen_SetBodyValues>,                 // 190
    public BSTEventSink<CharGen_SetCameraPosition>,             // 198
    public BSTEventSink<CharGen_HeadpartPlusSelectorChange>,    // 1A0
    public BSTEventSink<CharGen_SkintoneChange>,                // 1A8
    public BSTEventSink<CharGen_DirtScarsEtcChange>,            // 1B0
    public BSTEventSink<CharGen_ToggleMarking>,                 // 1B8
    public BSTEventSink<CharGen_SetTrait>,                      // 1C0
    public BSTEventSink<CharGen_SetBackground>,                 // 1C8
    public BSTEventSink<CharGen_EyeColorChange>,                // 1D0
    public BSTEventSink<CharGen_BrowChange>,                    // 1D8
    public BSTEventSink<CharGen_HairChange>,                    // 1E0
    public BSTEventSink<CharGen_HairColorChange>,               // 1E8
    public BSTEventSink<CharGen_FacialHairChange>,              // 1F0
    public BSTEventSink<CharGen_FacialHairColorChange>,         // 1F8
    public BSTEventSink<CharGen_BrowColorChange>,               // 200
    public BSTEventSink<CharGen_TeethChange>,                   // 208
    public BSTEventSink<CharGen_CyclePronoun>,                  // 210
    public BSTEventSink<CharGen_SetPronoun>,                    // 218
    public BSTEventSink<CharGen_TogglePreviewHabSuit>,          // 220
    public BSTEventSink<CharGen_SwitchLocomotion>,              // 228
    public BSTEventSink<CharGen_SwitchBodyType>,                // 230
    public BSTEventSink<CharGen_RotatePaperdoll>,               // 238
    public BSTEventSink<CharGen_RollOnLocomotion>,              // 240
    public BSTEventSink<CharGen_RollOffLocomotion>,             // 248
    public BSTEventSink<CharGen_TeethRollOn>,                   // 250
    public BSTEventSink<CharGen_TeethRollOff>,                  // 258
    public BSTEventSink<CharGen_JewelryChange>,                 // 260
    public BSTEventSink<CharGen_JewelryColorChange>,            // 268
    public BSTEventSink<CharGen_StartBodyChange>,               // 270
    public BSTEventSink<CharGen_EndBodyChange>,                 // 278
    public BSTEventSink<CharGen_SetAdditionalSlider>,           // 280
    public BSTEventSink<CharGen_SetBlockInputUnderPopup>,       // 288
    public BSTEventSink<CharGen_PostBlendFaceChange>,           // 290
    public BSTEventSink<CharGen_PostBlendColorOptionChange>,    // 298
    public BSTEventSink<CharGen_PostBlendIntensityChange>,      // 2A0
    public BSTEventSink<CharGen_MakeupChange>,                  // 2A8
    public BSTEventSink<CharGen_MarkingsChange>,                // 2B0
    public BSTEventSink<UIMenuChargenMenuDisablePaperdoll>      // 2B8
{
public:
    MenuPaperDoll* pPaperDoll;   // 2C8
    TESNPC* npc;                 // 2D0
    u64 unk2D8[(0x5B8 - 0x2D8) >> 3];
    u32 cameraPosition;          // 5B8
    u32 unk5BC;                  // 5BC
    u64 unk5C0[(0x650 - 0x5C0) >> 3];

    enum
    {
        FACE_CAMERA_POSITION = 0,
        BODY_CAMERA_POSITION,
        BACKGROUND_CAMERA_POSITION,
        PRESET_CAMERA_POSITION,
        TRAITS_CAMERA_POSITION
    };
};
static_assert(offsetof(ChargenMenu, cameraPosition) == 0x5B8);
static_assert(sizeof(ChargenMenu) == 0x650);


================================================
FILE: sfse/GameObjects.h
================================================
#pragma once

#include "sfse/GameForms.h"
#include "sfse/GameFormComponents.h"
#include "sfse/GameEvents.h"

class TESClass;
class TESCombatStyle;
class BGSOutfit;
class BGSListForm;
class TESFaction;
class BGSHeadPart;

class TESObject : public TESForm
{
public:
    virtual void    Unk_62(); // 62
    virtual void    Unk_63(); // 63
    virtual void    Unk_64(); // 64
    virtual void    Unk_65(); // 65
    virtual void    Unk_66(); // 66
    virtual void    Unk_67(); // 67
    virtual void    Unk_68(); // 68
    virtual void    Unk_69(); // 69
    virtual void    Unk_6A(); // 6A
    virtual void    Unk_6B(); // 6B

    BGSSnapTemplateComponent    snapTemplate;   // 38
};
static_assert(sizeof(TESObject) == 0x50);

class TESBoundObject : public TESObject
{
public:
    virtual void    Unk_6C(); // 6C
    virtual void    Unk_6D(); // 6D
    virtual void    Unk_6E(); // 6E
    virtual void    Unk_6F(); // 6F
    virtual void    Unk_70(); // 70
    virtual void    Unk_71(); // 71
    virtual void    Unk_72(); // 72
    virtual void    Unk_73(); // 73
    virtual void    Unk_74(); // 74
    virtual void    Unk_75(); // 75
    virtual void    Unk_76(); // 76
    virtual void    Unk_77(); // 77
    virtual void    Unk_78(); // 78
    virtual void    Unk_79(); // 79
    virtual void    Unk_7A(); // 7A
    virtual void    Unk_7B(); // 7B
    virtual void    Unk_7C(); // 7C
    virtual void    Unk_7D(); // 7D
    virtual void    Unk_7E(); // 7E
    virtual void    Unk_7F(); // 7F

    NiPoint3                    boundMin;           // 48
    NiPoint3                    boundMax;           // 54
    BGSMod::Template::Items     templateItems;      // 60
    BGSPreviewTransform         previewTransform;   // 80
    BGSObjectPlacementDefaults  placementDefaults;  // C8
    u32                         unkD8;              // D8
};
static_assert(offsetof(TESBoundObject, templateItems) == 0x68);
static_assert(offsetof(TESBoundObject, previewTransform) == 0x88);
static_assert(offsetof(TESBoundObject, placementDefaults) == 0xD0);
static_assert(sizeof(TESBoundObject) == 0xE8);

class TESBoundAnimObject : public TESBoundObject
{
public:
    virtual ~TESBoundAnimObject();

    virtual void    Unk_80(); // 80
    virtual void    Unk_81(); // 81
};
static_assert(sizeof(TESBoundAnimObject) == 0xE8);

class TESActorBase : 
    public TESBoundAnimObject,
    public TESActorBaseData,            // E0
    public TESContainer,                // 150
    public TESSpellList,                // 168
    public TESAIForm,                   // 180
    public TESFullName,                 // 1C0
    public ActorValueOwner,             // 1D0
    public BGSDestructibleObjectForm,   // 1D8
    public BGSSkinForm,                 // 1E8
    public BGSKeywordForm,              // 1F8
    public BGSAttackDataForm,           // 200
    public BGSPerkRankArray,            // 228
    public BGSPropertySheet             // 238
{
public:
    virtual void    Unk_82(); // 82
    virtual void    Unk_83(); // 83
    virtual void    Unk_84(); // 84
    virtual void    Unk_85(); // 85
};

class TESNPC : 
    public TESActorBase,
    public TESRaceForm,                     // 250
    public BGSOverridePackCollection,       // 260
    public BGSForcedLocRefType,             // 270
    public BGSNativeTerminalForm,           // 2B8
    public BSTEventSink<MenuOpenCloseEvent> // 2D0
{
public:
    class InstanceData : public TBO_InstanceData
    {
    public:
        u64 unk10[(0x158 - 0x10) >> 3];
    };

    BGSAttachParentArray AttachParents;  // 2E8
    u64 unk300; // 300
    u32 unk308; // 308
    u32 unk30C; // 30C
    TESClass* pCl;  // 310
    //u64 unk318; // 318 - Removed 1.10.31
    u64 unk320; // 320
    TESCombatStyle* pCombatStyle;   // 328
    u32 unk330; // 330
    u32 unk334; // 334
    u64 unk338; // 338
    TESNPC* pFaceNPC; // 340
    NiPoint3 MorphWeight; // 348
    float fHeight; // 354
    float fHeightMax; // 358
    u32     unk35C; // 35C
    u64     unk360; // 360
    u64     unk368; // 368
    u64     unk370; // 370
    BSFixedString   unk378; // 378
    u64     unk380; // 380
    u64     unk388; // 388
    BGSOutfit* pDefOutfit;  // 390
    BGSOutfit* pSleepOutfit;    // 398
    BGSListForm* pDefaultPackList;  // 3A0
    TESFaction* pCrimeFaction;  // 3A8
    u64 unk3B0; // 3B0
    BSTArray<BGSHeadPart*> HeadPartsA;  // 3B8
    u64 unk3C8; // 3C8
    BSTArray<float>* unk3D0; // 3D0  -- 5 floats entries?
    BSTHashMap2<u32, float>* AdditionalSliders;   // 3D8
    BSTHashMap<u32, BSTHashMap<BSFixedStringCS, float>*>* unk3E0;   // 3E0
    struct HeadPartData
    {
        u32 type;                       // 00 1 - Mask? 
        u32 unk04;                      // 04
        BSFixedStringCS group;             // 08
        BSFixedStringCS name;         // 10
        BSFixedStringCS texture; // 18
        struct Color
        {
            u8 a, b, g, r;
        };
        Color color;                    // 20
        u32 intensity;                  // 24 up to 128 for some reason replaces alpha, color.a does nothing?
    };
    BSTArray<HeadPartData> HeadPartDataA;    // 3E0
    u32 skinTone; // 3F8
    u32 unk3FC; // 3FC
    BSFixedStringCS teeth;   // 400
    BSFixedStringCS jewelryColor;   // 408
    BSFixedStringCS eyeColor;   // 410
    BSFixedStringCS hairColor;   // 418
    BSFixedStringCS facialHairColor;   // 420
    BSFixedStringCS eyebrowColor;   // 428
    u64 unk468; // 430
    BSFixedString unk438; // 438
    BSTHashMap<BSFixedStringCS, float>* shapeBlendData; // 440 - ShapeBlendData Map
    u8 pronoun;  // 448
    u8 pad449[7]; // 449

    DEFINE_MEMBER_FN_1(DeriveGeneticParentAppearance, void, 0x00CD9CB0, TESNPC* source);
    DEFINE_MEMBER_FN_1(CopyAppearance, void, 0x00CD9B30, TESNPC* source);
};
static_assert(sizeof(TESNPC) == 0x458); // Un-verified after 1.10.31
static_assert(sizeof(TESNPC::HeadPartData) == 0x28);
static_assert(sizeof(TESNPC::InstanceData) == 0x158);


================================================
FILE: sfse/GameRTTI.cpp
================================================
#include "sfse/GameRTTI.h"
#include "sfse_common/Types.h"
#include "sfse_common/Relocation.h"

typedef void* (*_Runtime_DynamicCast_Internal)(void* srcObj, u32 arg1, const void* fromType, const void* toType, u32 arg4);

RelocAddr <_Runtime_DynamicCast_Internal> Runtime_DynamicCast_Internal(0x037565E0);	// __RTDynamicCast

void* Runtime_DynamicCast(void* srcObj, const void* fromType, const void* toType)
{
	uintptr_t fromTypeAddr = uintptr_t(fromType) + RelocationManager::s_baseAddr;
	uintptr_t toTypeAddr = uintptr_t(toType) + RelocationManager::s_baseAddr;

	return Runtime_DynamicCast_Internal(srcObj, 0, (void*)fromTypeAddr, (void*)toTypeAddr, 0);
}

#include "GameRTTI.inl"


================================================
FILE: sfse/GameRTTI.h
================================================
#pragma once

void * Runtime_DynamicCast(void * srcObj, const void * fromType, const void * toType);

#define DYNAMIC_CAST(obj, from, to) ( ## to *) Runtime_DynamicCast((void*)(obj), RTTI_ ## from, RTTI_ ## to)

extern const void * RTTI_AK__StreamMgr__IAkFileLocationResolver;
extern const void * RTTI_AK__StreamMgr__IAkLowLevelIOHook;
extern const void * RTTI_AabbHitCollector;
extern const void * RTTI_AbsorbEffect;
extern const void * RTTI_AccumulatingValueModifierEffect;
extern const void * RTTI_ActionActivateDoneHandler;
extern const void * RTTI_ActionInput;
extern const void * RTTI_ActionOutput;
extern const void * RTTI_ActiveEffect;
extern const void * RTTI_ActiveEffectReferenceEffectController;
extern const void * RTTI_ActiveModItemDataModel;
extern const void * RTTI_ActiveModItemDataModel__ActiveModItemEventShuttle;
extern const void * RTTI_Actor;
extern const void * RTTI_ActorEquipManager;
extern const void * RTTI_ActorKnowledge;
extern const void * RTTI_ActorMagicCaster;
extern const void * RTTI_ActorMover;
extern const void * RTTI_ActorPackageData;
extern const void * RTTI_ActorSceneNextPhaseHandler;
extern const void * RTTI_ActorUtils__ArmorRatingVisitor;
extern const void * RTTI_ActorUtils__ArmorRatingVisitorBase;
extern const void * RTTI_ActorValueBindingUpdaterService;
extern const void * RTTI_ActorValueInfo;
extern const void * RTTI_ActorValueOwner;
extern const void * RTTI_ActorValueSnapshot;
extern const void * RTTI_Actor__ForEachSpellVisitor;
extern const void * RTTI_AddRagdollHandler;
extern const void * RTTI_AddToInventoryOnDestroyUtils__AddToInventoryOnDestroyEventHandler;
extern const void * RTTI_AimAssistData;
extern const void * RTTI_AimAssist__Circle;
extern const void * RTTI_AimAssist__Ellipse;
extern const void * RTTI_AimAssist__Pill;
extern const void * RTTI_AimDownSightData;
extern const void * RTTI_AimModelData;
extern const void * RTTI_AimOpticalSightData;
extern const void * RTTI_AimOpticalSightStates__Active;
extern const void * RTTI_AimOpticalSightStates__BetweenShots;
extern const void * RTTI_AimOpticalSightStates__Deinitialization;
extern const void * RTTI_AimOpticalSightStates__Inactive;
extern const void * RTTI_AimOpticalSightStates__Initialization;
extern const void * RTTI_AimOpticalSightStates__Ready;
extern const void * RTTI_AlarmPackage;
extern const void * RTTI_AlchemyItem;
extern const void * RTTI_AliasLegendaryRankCalculator;
extern const void * RTTI_AllowRotationHandler;
extern const void * RTTI_AllowRotationHandlerReference;
extern const void * RTTI_Almanac_BodySelected;
extern const void * RTTI_Almanac_Inorganics_ChangeSelection;
extern const void * RTTI_Almanac_Inorganics_ToggleTracking;
extern const void * RTTI_Almanac_Locations_ChangeSelection;
extern const void * RTTI_Almanac_Locations_FavoriteSelection;
extern const void * RTTI_Almanac_Locations_OutpostSelected;
extern const void * RTTI_Almanac_Organics_ChangeSelection;
extern const void * RTTI_Almanac_Organics_ToggleTracking;
extern const void * RTTI_Almanac_PageChanged;
extern const void * RTTI_Almanac_Recipes_ChangeCategory;
extern const void * RTTI_Almanac_Recipes_ChangeSelection;
extern const void * RTTI_Almanac_Recipes_ToggleTracking;
extern const void * RTTI_Almanac_ShowResourceBodyList;
extern const void * RTTI_Almanac_Workshop_ChangeSelection;
extern const void * RTTI_Almanac_Workshop_ToggleTracking;
extern const void * RTTI_Almanac__AlmanacMenu;
extern const void * RTTI_Almanac__AlmanacMenu__AlmanacMenuEventShuttle;
extern const void * RTTI_Almanac__AlmanacState_Inorganics;
extern const void * RTTI_Almanac__AlmanacState_Inorganics__AlmanacInorganicsEventShuttle;
extern const void * RTTI_Almanac__AlmanacState_Locations;
extern const void * RTTI_Almanac__AlmanacState_Locations__AlmanacLocationsEventShuttle;
extern const void * RTTI_Almanac__AlmanacState_Null;
extern const void * RTTI_Almanac__AlmanacState_Organics;
extern const void * RTTI_Almanac__AlmanacState_Organics__AlmanacOrganicsEventShuttle;
extern const void * RTTI_Almanac__AlmanacState_Recipes;
extern const void * RTTI_Almanac__AlmanacState_Recipes__AlmanacRecipesEventShuttle;
extern const void * RTTI_Almanac__AlmanacState_Workshop;
extern const void * RTTI_Almanac__AlmanacState_Workshop__AlmanacWorkshopEventShuttle;
extern const void * RTTI_AmmoData;
extern const void * RTTI_AnimGraph;
extern const void * RTTI_AnimGraphNode;
extern const void * RTTI_AnimatedCameraDeltaStartHandler;
extern const void * RTTI_AnimatedCameraEndHandler;
extern const void * RTTI_AnimatedCameraStartHandler;
extern const void * RTTI_AnimationClipDataSingleton;
extern const void * RTTI_AnimationCompleteHandler;
extern const void * RTTI_AnimationCorrectedNode;
extern const void * RTTI_AnimationCorrectedNodeInstance;
extern const void * RTTI_AnimationDrivenHandler;
extern const void * RTTI_AnimationDrivenHandlerReference;
extern const void * RTTI_AnimationFileManagerSingleton;
extern const void * RTTI_AnimationGraph;
extern const void * RTTI_AnimationGraphInstance;
extern const void * RTTI_AnimationImpactSelector;
extern const void * RTTI_AnimationImpactSelectorInstance;
extern const void * RTTI_AnimationManager;
extern const void * RTTI_AnimationNode;
extern const void * RTTI_AnimationNodeInstance;
extern const void * RTTI_AnimationObjectDrawHandler;
extern const void * RTTI_AnimationObjectHideHandler;
extern const void * RTTI_AnimationObjectLoadHandler;
extern const void * RTTI_AnimationObjectUnequipAllHandler;
extern const void * RTTI_AnimationObjectUnequipHandler;
extern const void * RTTI_AnimationRagdoll;
extern const void * RTTI_AnimationRagdollDrive;
extern const void * RTTI_AnimationRagdollDriveInstance;
extern const void * RTTI_AnimationRagdollInstance;
extern const void * RTTI_AnimationStanceDataHelperSingleton;
extern const void * RTTI_AnimationStanceDataSingletonDBData;
extern const void * RTTI_AnimationStreamLoadGame;
extern const void * RTTI_AnimationStreamSaveGame;
extern const void * RTTI_AnimationSystemUtils__QueuedAnimationHandles;
extern const void * RTTI_AnimationSystemUtils__QueuedModelHandles;
extern const void * RTTI_AnimationSystemUtils__QueuedReferenceAnimationTask;
extern const void * RTTI_AnimationSystemUtils__TESModelAndAnimationHandles;
extern const void * RTTI_AntiGravityEffect;
extern const void * RTTI_AnticipateAttackHandler;
extern const void * RTTI_ArchiveFile;
extern const void * RTTI_ArmorCraftingMenu;
extern const void * RTTI_ArrowAttachHandler;
extern const void * RTTI_ArrowDetachHandler;
extern const void * RTTI_ArrowProjectile;
extern const void * RTTI_AssignVariable;
extern const void * RTTI_AssignVariableInstance;
extern const void * RTTI_AssigniState;
extern const void * RTTI_AssigniStateInstance;
extern const void * RTTI_AttachDistant3DTask;
extern const void * RTTI_AttachReferenceHandler;
extern const void * RTTI_AttackStopHandler;
extern const void * RTTI_AttractionObjectLOSManager;
extern const void * RTTI_AttractionObjectLOSUtils__CacheEntry;
extern const void * RTTI_AutoVanityState;
extern const void * RTTI_AwakeSoundFadeHandler;
extern const void * RTTI_AwakeSoundPauseHandler;
extern const void * RTTI_AwakeSoundResumeHandler;
extern const void * RTTI_AwakeSoundStopHandler;
extern const void * RTTI_BGSAIOperationsMeter;
extern const void * RTTI_BGSAIWorldLocationEditorSpacePointRadius;
extern const void * RTTI_BGSAIWorldLocationInteriorCell;
extern const void * RTTI_BGSAIWorldLocationPointRadius;
extern const void * RTTI_BGSAIWorldLocationPrimitive;
extern const void * RTTI_BGSAIWorldLocationRefRadius;
extern const void * RTTI_BGSAVMData;
extern const void * RTTI_BGSAbilityPerkEntry;
extern const void * RTTI_BGSAcousticSpace;
extern const void * RTTI_BGSAction;
extern const void * RTTI_BGSActionData;
extern const void * RTTI_BGSActivity;
extern const void * RTTI_BGSActivityTrackerFormComponent;
extern const void * RTTI_BGSActorValueActivity;
extern const void * RTTI_BGSActorValueActivity_Runtime;
extern const void * RTTI_BGSAdaptiveTriggerDataComponent;
extern const void * RTTI_BGSAddToInventoryOnDestroy;
extern const void * RTTI_BGSAddonNode;
extern const void * RTTI_BGSAddonNodeSoundHandleExtra;
extern const void * RTTI_BGSAffinityEvent;
extern const void * RTTI_BGSAimAssistModel;
extern const void * RTTI_BGSAimAssistPoseData;
extern const void * RTTI_BGSAimDownSightModel;
extern const void * RTTI_BGSAimModel;
extern const void * RTTI_BGSAimOpticalSightModel;
extern const void * RTTI_BGSAmbienceSet;
extern const void * RTTI_BGSAnimationGraphComponent;
extern const void * RTTI_BGSAnimationPathImplementation;
extern const void * RTTI_BGSAnimationSubGraphDataSingleton;
extern const void * RTTI_BGSApplyMagicEffectActivity;
extern const void * RTTI_BGSApplyMagicEffectActivity_Runtime;
extern const void * RTTI_BGSArtObject;
extern const void * RTTI_BGSArtObjectCloneTask;
extern const void * RTTI_BGSAssociationType;
extern const void * RTTI_BGSAtmosphere;
extern const void * RTTI_BGSAttachParentArray;
extern const void * RTTI_BGSAttachTechniquesUtil__AttachTechniquesFunctor;
extern const void * RTTI_BGSAttachTechniquesUtil__DetachTechniquesFunctor;
extern const void * RTTI_BGSAttachTechniquesUtil__ProcessTechniquesFunctor;
extern const void * RTTI_BGSAttackData;
extern const void * RTTI_BGSAttackDataForm;
extern const void * RTTI_BGSAttackDataMap;
extern const void * RTTI_BGSAttractionRule;
extern const void * RTTI_BGSAudioOcclusionPrimitive;
extern const void * RTTI_BGSAudio_Internal__LooseAudioRegistrar;
extern const void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr;
extern const void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr__DelayedEventInfo;
extern const void * RTTI_BGSAudio_Internal__WwiseActiveEventMgr__PlayingEventInfo;
extern const void * RTTI_BGSAudio_Internal__WwiseEventPreloadMgr;
extern const void * RTTI_BGSAudio_Internal__WwiseGameObjectMgr;
extern const void * RTTI_BGSAudio_Internal__WwiseIODevice;
extern const void * RTTI_BGSAudio_Internal__WwiseIOMgr;
extern const void * RTTI_BGSAudio_Internal__WwiseMetadataMgr;
extern const void * RTTI_BGSAudio__IEmitterResolver;
extern const void * RTTI_BGSAudio__RefNodeResolver;
extern const void * RTTI_BGSAudio__WwiseService;
extern const void * RTTI_BGSAutoWater;
extern const void * RTTI_BGSBarterActivity;
extern const void * RTTI_BGSBarterActivity_Runtime;
extern const void * RTTI_BGSBaseAlias;
extern const void * RTTI_BGSBaseLODBlock;
extern const void * RTTI_BGSBaseLODBlock__AutoDetachBlock;
extern const void * RTTI_BGSBaseLODBlock__GeometryAutoDetachBlock;
extern const void * RTTI_BGSBaseLODRuntimeComponent;
extern const void * RTTI_BGSBendableSpline;
extern const void * RTTI_BGSBiome;
extern const void * RTTI_BGSBiomeMarkerObject;
extern const void * RTTI_BGSBiome__MarkerKeywordData;
extern const void * RTTI_BGSBleedoutActivity;
extern const void * RTTI_BGSBleedoutActivity_Runtime;
extern const void * RTTI_BGSBlockBashData;
extern const void * RTTI_BGSBodyManager;
extern const void * RTTI_BGSBodyPartData;
extern const void * RTTI_BGSBodyPartInfo;
extern const void * RTTI_BGSBodyUtils__SkinColorUpdateNode;
extern const void * RTTI_BGSBoneModifier;
extern const void * RTTI_BGSBuildWorkshopActivity;
extern const void * RTTI_BGSBuildWorkshopActivity_Runtime;
extern const void * RTTI_BGSCameraPath;
extern const void * RTTI_BGSCameraShot;
extern const void * RTTI_BGSChallengeForm;
extern const void * RTTI_BGSCharacterMorph__FacialBoneSculptSlider;
extern const void * RTTI_BGSCharacterMorph__FacialBoneSlider;
extern const void * RTTI_BGSCityMapsUsageComponent;
extern const void * RTTI_BGSCloudForm;
extern const void * RTTI_BGSCollisionLayer;
extern const void * RTTI_BGSColorForm;
extern const void * RTTI_BGSCompleteResearchActivity;
extern const void * RTTI_BGSCompleteResearchActivity_Runtime;
extern const void * RTTI_BGSConditionForm;
extern const void * RTTI_BGSConstructibleObject;
extern const void * RTTI_BGSConsumeActivity;
extern const void * RTTI_BGSConsumeActivity_Runtime;
extern const void * RTTI_BGSContactShadowComponent;
extern const void * RTTI_BGSConveyorBelt__ConveyorBelt;
extern const void * RTTI_BGSCraftActivity;
extern const void * RTTI_BGSCraftActivity_Runtime;
extern const void * RTTI_BGSCraftableForm;
extern const void * RTTI_BGSCraftingResourceOwner;
extern const void * RTTI_BGSCreatedObjectManager;
extern const void * RTTI_BGSCrippleLimbActivity;
extern const void * RTTI_BGSCrippleLimbActivity_Runtime;
extern const void * RTTI_BGSCrowdComponent;
extern const void * RTTI_BGSCurve3DForm;
extern const void * RTTI_BGSCurveForm;
extern const void * RTTI_BGSCustomShipForm;
extern const void * RTTI_BGSDamageType;
extern const void * RTTI_BGSDebris;
extern const void * RTTI_BGSDecalManager;
extern const void * RTTI_BGSDecalNode;
extern const void * RTTI_BGSDefaultObject;
extern const void * RTTI_BGSDefaultObjectManager;
extern const void * RTTI_BGSDestroyShipActivity;
extern const void * RTTI_BGSDestroyShipActivity_Runtime;
extern const void * RTTI_BGSDestructibleObjectForm;
extern const void * RTTI_BGSDialogueBranch;
extern const void * RTTI_BGSDisplayCaseFormComponent;
extern const void * RTTI_BGSDistantObjectBlock;
extern const void * RTTI_BGSDockingActivity;
extern const void * RTTI_BGSDockingActivity_Runtime;
extern const void * RTTI_BGSDualCastData;
extern const void * RTTI_BGSDynamicLODBlock;
extern const void * RTTI_BGSDynamicLODBlock__InstancedAutoDetachBlock;
extern const void * RTTI_BGSEchoListener;
extern const void * RTTI_BGSEffectSequenceForm;
extern const void * RTTI_BGSEffectSequenceFormComponent;
extern const void * RTTI_BGSEntryPointFunctionData;
extern const void * RTTI_BGSEntryPointFunctionDataAVAndValue;
extern const void * RTTI_BGSEntryPointFunctionDataActivateChoice;
extern const void * RTTI_BGSEntryPointFunctionDataBooleanGraphVariable;
extern const void * RTTI_BGSEntryPointFunctionDataLeveledList;
extern const void * RTTI_BGSEntryPointFunctionDataOneValue;
extern const void * RTTI_BGSEntryPointFunctionDataProjectile;
extern const void * RTTI_BGSEntryPointFunctionDataSpellItem;
extern const void * RTTI_BGSEntryPointFunctionDataText;
extern const void * RTTI_BGSEntryPointFunctionDataTwoValue;
extern const void * RTTI_BGSEntryPointPerkEntry;
extern const void * RTTI_BGSEquipSlot;
extern const void * RTTI_BGSExplosion;
extern const void * RTTI_BGSExternalComponentDataSource;
extern const void * RTTI_BGSFaceFX;
extern const void * RTTI_BGSFacialExpressionData;
extern const void * RTTI_BGSFadeManager;
extern const void * RTTI_BGSFogVolumeForm;
extern const void * RTTI_BGSFootIkImplementation;
extern const void * RTTI_BGSFootstep;
extern const void * RTTI_BGSFootstepManager;
extern const void * RTTI_BGSFootstepSet;
extern const void * RTTI_BGSForceData;
extern const void * RTTI_BGSForcedLocRefType;
extern const void * RTTI_BGSFormFolderKeywordList;
extern const void * RTTI_BGSFormLinkData;
extern const void * RTTI_BGSGameRenderSettingsManager;
extern const void * RTTI_BGSGameWarningsHandler__GameWarningsSink;
extern const void * RTTI_BGSGameplayOption;
extern const void * RTTI_BGSGameplayOptionGroup;
extern const void * RTTI_BGSGenericBaseForm;
extern const void * RTTI_BGSGenericBaseFormTemplate;
extern const void * RTTI_BGSGeometryConstructorManager;
extern const void * RTTI_BGSGrassManager;
extern const void * RTTI_BGSGrassManager__AddCellGrassTask;
extern const void * RTTI_BGSGrassManager__CellGrass;
extern const void * RTTI_BGSGravJumpActivity;
extern const void * RTTI_BGSGravJumpActivity_Runtime;
extern const void * RTTI_BGSGravityWielderEffectData;
extern const void * RTTI_BGSGroundCover;
extern const void * RTTI_BGSGroupedInstancedGeometry;
extern const void * RTTI_BGSHarvestActivity;
extern const void * RTTI_BGSHarvestActivity_Runtime;
extern const void * RTTI_BGSHavokGeometryAttach;
extern const void * RTTI_BGSHavokGeometryAttach__ActionPolicy;
extern const void * RTTI_BGSHavokGeometryAttach__AttachPolicy;
extern const void * RTTI_BGSHavokGeometryAttach__DetachPolicy;
extern const void * RTTI_BGSHazard;
extern const void * RTTI_BGSHeadPart;
extern const void * RTTI_BGSIdleCollection;
extern const void * RTTI_BGSIdleMarker;
extern const void * RTTI_BGSImpactData;
extern const void * RTTI_BGSImpactDataSet;
extern const void * RTTI_BGSImpactManager;
extern const void * RTTI_BGSInstanceNamingRules;
extern const void * RTTI_BGSInventoryInterface;
extern const void * RTTI_BGSInventoryList;
extern const void * RTTI_BGSKeyword;
extern const void * RTTI_BGSKeywordForm;
extern const void * RTTI_BGSKillActivity;
extern const void * RTTI_BGSKillActivity_Runtime;
extern const void * RTTI_BGSLODManager;
extern const void * RTTI_BGSLODSharedGeometryCache;
extern const void * RTTI_BGSLODStates__Geometry__Attached;
extern const void * RTTI_BGSLODStates__Geometry__Attaching;
extern const void * RTTI_BGSLODStates__Geometry__DeferredDetach;
extern const void * RTTI_BGSLODStates__Geometry__DeferredDetachComplete;
extern const void * RTTI_BGSLODStates__Geometry__Detached;
extern const void * RTTI_BGSLODStates__Geometry__Invisible;
extern const void * RTTI_BGSLODStates__Geometry__Loaded;
extern const void * RTTI_BGSLODStates__Geometry__Loading;
extern const void * RTTI_BGSLODStates__Geometry__Prepared;
extern const void * RTTI_BGSLODStates__Geometry__Preparing;
extern const void * RTTI_BGSLODStates__Geometry__RequestingResources;
extern const void * RTTI_BGSLODStates__Geometry__Reset;
extern const void * RTTI_BGSLODStates__Geometry__ResourcesBusy;
extern const void * RTTI_BGSLODStates__Geometry__ResourcesReady;
extern const void * RTTI_BGSLODStates__Geometry__Unloaded;
extern const void * RTTI_BGSLODStates__Geometry__Visible;
extern const void * RTTI_BGSLODStates__Node__Active;
extern const void * RTTI_BGSLODStates__Node__FadingIn;
extern const void * RTTI_BGSLODStates__Node__FadingOut;
extern const void * RTTI_BGSLODStates__Node__Inactive;
extern const void * RTTI_BGSLODStates__Node__IntersectsLoadedArea;
extern const void * RTTI_BGSLODStates__Node__Loaded;
extern const void * RTTI_BGSLODStates__Node__OutsideLoadedArea;
extern const void * RTTI_BGSLODStates__Node__PrepareFadingIn;
extern const void * RTTI_BGSLODStates__Node__PrepareFadingOut;
extern const void * RTTI_BGSLODStates__Node__Split;
extern const void * RTTI_BGSLODStates__Node__Unloaded;
extern const void * RTTI_BGSLOSGenerator;
extern const void * RTTI_BGSLandPlanetActivity;
extern const void * RTTI_BGSLandPlanetActivity_Runtime;
extern const void * RTTI_BGSLayeredMaterialSwap;
extern const void * RTTI_BGSLegendaryItem;
extern const void * RTTI_BGSLensFlare;
extern const void * RTTI_BGSLensFlareSprite;
extern const void * RTTI_BGSLevGenericBaseForm;
extern const void * RTTI_BGSLevPackIn;
extern const void * RTTI_BGSLevSpaceCell;
extern const void * RTTI_BGSLightingTemplate;
extern const void * RTTI_BGSLinkedVoiceType;
extern const void * RTTI_BGSListForm;
extern const void * RTTI_BGSLoadFormBuffer;
extern const void * RTTI_BGSLoadGameBuffer;
extern const void * RTTI_BGSLoadGameBufferSimple;
extern const void * RTTI_BGSLoadedReferenceCollection;
extern const void * RTTI_BGSLoadedSceneLODBlock;
extern const void * RTTI_BGSLocAlias;
extern const void * RTTI_BGSLocation;
extern const void * RTTI_BGSLocationDiscoveredActivity;
extern const void * RTTI_BGSLocationDiscoveredActivity_Runtime;
extern const void * RTTI_BGSLocationRefType;
extern const void * RTTI_BGSLockPickActivity;
extern const void * RTTI_BGSLockPickActivity_Runtime;
extern const void * RTTI_BGSLodOwnerComponent;
extern const void * RTTI_BGSLodRuntimeOwnerComponent;
extern const void * RTTI_BGSLootContainerActivity;
extern const void * RTTI_BGSLootContainerActivity_Runtime;
extern const void * RTTI_BGSLoseEnemyActivity;
extern const void * RTTI_BGSLoseEnemyActivity_Runtime;
extern const void * RTTI_BGSMaterialPathForm;
extern const void * RTTI_BGSMaterialPropertyComponent;
extern const void * RTTI_BGSMaterialType;
extern const void * RTTI_BGSMeleeAimAssistModel;
extern const void * RTTI_BGSMessage;
extern const void * RTTI_BGSMod__Attachment__Mod;
extern const void * RTTI_BGSMod__Property__BridgeI;
extern const void * RTTI_BGSMod__Template__Item;
extern const void * RTTI_BGSMod__Template__Items;
extern const void * RTTI_BGSModelMaterialSwap;
extern const void * RTTI_BGSModelNode;
extern const void * RTTI_BGSMorphableObject;
extern const void * RTTI_BGSMotorAction__Action;
extern const void * RTTI_BGSMotorAction__FanMotor;
extern const void * RTTI_BGSMovableStatic;
extern const void * RTTI_BGSMovementType;
extern const void * RTTI_BGSMoviePlayer;
extern const void * RTTI_BGSMultiTechniqueAttach;
extern const void * RTTI_BGSMultiTechniqueAttach__ActionPolicy;
extern const void * RTTI_BGSMultiTechniqueAttach__AttachPolicy;
extern const void * RTTI_BGSMultiTechniqueAttach__DetachPolicy;
extern const void * RTTI_BGSMusicPaletteTrack;
extern const void * RTTI_BGSMusicSilenceTrack;
extern const void * RTTI_BGSMusicSingleTrack;
extern const void * RTTI_BGSMusicTrack;
extern const void * RTTI_BGSMusicTrackFormWrapper;
extern const void * RTTI_BGSMusicType;
extern const void * RTTI_BGSNamedNodeAttach;
extern const void * RTTI_BGSNamedNodeAttach__ActionPolicy;
extern const void * RTTI_BGSNamedNodeAttach__AttachPolicy;
extern const void * RTTI_BGSNamedNodeAttach__DetachPolicy;
extern const void * RTTI_BGSNavigationGridManager;
extern const void * RTTI_BGSNote;
extern const void * RTTI_BGSObjectInstanceExtra;
extern const void * RTTI_BGSObjectPlacementDefaults;
extern const void * RTTI_BGSObjectSwap;
extern const void * RTTI_BGSObjectVisibilityManager;
extern const void * RTTI_BGSObjectWindowFilterComponent;
extern const void * RTTI_BGSOrbitalDataComponent;
extern const void * RTTI_BGSOrbitedDataComponent;
extern const void * RTTI_BGSOutfit;
extern const void * RTTI_BGSOverridePackCollection;
extern const void * RTTI_BGSPackIn;
extern const void * RTTI_BGSPackInUtils__BGSPackInEventHandler;
extern const void * RTTI_BGSPackageDataBool;
extern const void * RTTI_BGSPackageDataFloat;
extern const void * RTTI_BGSPackageDataInt;
extern const void * RTTI_BGSPackageDataLocation;
extern const void * RTTI_BGSPackageDataLocationWrapper;
extern const void * RTTI_BGSPackageDataObjectList;
extern const void * RTTI_BGSPackageDataRef;
extern const void * RTTI_BGSPackageDataRefOLD;
extern const void * RTTI_BGSPackageDataScene;
extern const void * RTTI_BGSPackageDataTargetSelector;
extern const void * RTTI_BGSPackageDataTopic;
extern const void * RTTI_BGSPapyrusScriptsComponent;
extern const void * RTTI_BGSParticleObjectCloneTask;
extern const void * RTTI_BGSParticleSystemDefineCollection;
extern const void * RTTI_BGSPathfindingTaskProcessor;
extern const void * RTTI_BGSPathingData;
extern const void * RTTI_BGSPerk;
extern const void * RTTI_BGSPerkRank;
extern const void * RTTI_BGSPhotoModeFeature;
extern const void * RTTI_BGSPickupPutdownSounds;
extern const void * RTTI_BGSPlanetContentManager;
extern const void * RTTI_BGSPlanetContentManagerBranchNode;
extern const void * RTTI_BGSPlanetContentManagerContentNode;
extern const void * RTTI_BGSPlanetContentManagerContentProperties;
extern const void * RTTI_BGSPlanetContentManagerTree;
extern const void * RTTI_BGSPlanetContentManager__ILogEventData;
extern const void * RTTI_BGSPlanet__Atmosphere;
extern const void * RTTI_BGSPlanet__ContentPlacement;
extern const void * RTTI_BGSPlanet__IModule;
extern const void * RTTI_BGSPlanet__LandingMarkers;
extern const void * RTTI_BGSPlanet__Landscape;
extern const void * RTTI_BGSPlanet__Manager;
extern const void * RTTI_BGSPlanet__Manager__MoveToNode;
extern const void * RTTI_BGSPlanet__Manager__ShiftToTask;
extern const void * RTTI_BGSPlanet__MultiFiles__Grid;
extern const void * RTTI_BGSPlanet__MultiFiles__MasterFile;
extern const void * RTTI_BGSPlanet__NavMeshGen;
extern const void * RTTI_BGSPlanet__OrderedLandTextures;
extern const void * RTTI_BGSPlanet__Overlays;
extern const void * RTTI_BGSPlanet__PlanetData;
extern const void * RTTI_BGSPlanet__ProcGen;
extern const void * RTTI_BGSPlanet__ProcGenRuntimeService;
extern const void * RTTI_BGSPlanet__ScanCollection;
extern const void * RTTI_BGSPlanet__SurfaceMapModule;
extern const void * RTTI_BGSPlanet__UpdateNavMeshTaskNode;
extern const void * RTTI_BGSPlayerMusicChanger;
extern const void * RTTI_BGSPlayerPickpocketActivity;
extern const void * RTTI_BGSPlayerPickpocketActivity_Runtime;
extern const void * RTTI_BGSPreviewTransform;
extern const void * RTTI_BGSPrimitive;
extern const void * RTTI_BGSPrimitiveBox;
extern const void * RTTI_BGSPrimitiveComponent;
extern const void * RTTI_BGSPrimitiveCylinder;
extern const void * RTTI_BGSPrimitiveEllipsoid;
extern const void * RTTI_BGSPrimitiveLine;
extern const void * RTTI_BGSPrimitivePlane;
extern const void * RTTI_BGSPrimitiveSphere;
extern const void * RTTI_BGSProcedureAcquire;
extern const void * RTTI_BGSProcedureAcquireExecState;
extern const void * RTTI_BGSProcedureActivate;
extern const void * RTTI_BGSProcedureActivateExecState;
extern const void * RTTI_BGSProcedureAmbush;
extern const void * RTTI_BGSProcedureAmbushExecState;
extern const void * RTTI_BGSProcedureAvoidVehicle;
extern const void * RTTI_BGSProcedureAvoidVehicleExecState;
extern const void * RTTI_BGSProcedureBase;
extern const void * RTTI_BGSProcedureCombatTravel;
extern const void * RTTI_BGSProcedureCombatTravelExecState;
extern const void * RTTI_BGSProcedureDialogue;
extern const void * RTTI_BGSProcedureDialogueActivate;
extern const void * RTTI_BGSProcedureDialogueActivateExecState;
extern const void * RTTI_BGSProcedureDialogueExecState;
extern const void * RTTI_BGSProcedureDone;
extern const void * RTTI_BGSProcedureDoneExecState;
extern const void * RTTI_BGSProcedureEat;
extern const void * RTTI_BGSProcedureEatExecState;
extern const void * RTTI_BGSProcedureEscort;
extern const void * RTTI_BGSProcedureEscortExecState;
extern const void * RTTI_BGSProcedureFind;
extern const void * RTTI_BGSProcedureFindExecState;
extern const void * RTTI_BGSProcedureFlee;
extern const void * RTTI_BGSProcedureFleeExecState;
extern const void * RTTI_BGSProcedureFlightGrab;
extern const void * RTTI_BGSProcedureFlightGrabExecState;
extern const void * RTTI_BGSProcedureFollow;
extern const void * RTTI_BGSProcedureFollowExecState;
extern const void * RTTI_BGSProcedureFollowTo;
extern const void * RTTI_BGSProcedureForceGreet;
extern const void * RTTI_BGSProcedureGuard;
extern const void * RTTI_BGSProcedureGuardArea;
extern const void * RTTI_BGSProcedureGuardExecState;
extern const void * RTTI_BGSProcedureHeadtrack;
extern const void * RTTI_BGSProcedureHeadtrackExecState;
extern const void * RTTI_BGSProcedureHoldPosition;
extern const void * RTTI_BGSProcedureHoldPositionExecState;
extern const void * RTTI_BGSProcedureHover;
extern const void * RTTI_BGSProcedureHoverExecState;
extern const void * RTTI_BGSProcedureKeepAnEyeOn;
extern const void * RTTI_BGSProcedureKeepAnEyeOnExecState;
extern const void * RTTI
Download .txt
gitextract_3s2zrmmm/

├── .github/
│   └── workflows/
│       └── testbuild.yaml
├── .gitignore
├── CMakeLists.txt
├── LICENSE
├── README.md
├── cmake/
│   ├── configuration.cmake
│   ├── installation.cmake
│   └── versioning.cmake
├── sfse/
│   ├── CMakeLists.txt
│   ├── GameChargen.cpp
│   ├── GameChargen.h
│   ├── GameConsole.cpp
│   ├── GameConsole.h
│   ├── GameData.cpp
│   ├── GameData.h
│   ├── GameEvents.h
│   ├── GameExtraData.cpp
│   ├── GameExtraData.h
│   ├── GameFormComponents.h
│   ├── GameForms.cpp
│   ├── GameForms.h
│   ├── GameLock.cpp
│   ├── GameLock.h
│   ├── GameMemory.cpp
│   ├── GameMemory.h
│   ├── GameMenu.h
│   ├── GameObjects.h
│   ├── GameRTTI.cpp
│   ├── GameRTTI.h
│   ├── GameRTTI.inl
│   ├── GameReferences.h
│   ├── GameReflection.h
│   ├── GameScript.cpp
│   ├── GameScript.h
│   ├── GameSettings.cpp
│   ├── GameSettings.h
│   ├── GameSingleton.h
│   ├── GameStreams.h
│   ├── GameTypes.cpp
│   ├── GameTypes.h
│   ├── GameUI.cpp
│   ├── GameUI.h
│   ├── Hooks_Command.cpp
│   ├── Hooks_Command.h
│   ├── Hooks_Data.cpp
│   ├── Hooks_Data.h
│   ├── Hooks_Scaleform.cpp
│   ├── Hooks_Scaleform.h
│   ├── Hooks_Script.cpp
│   ├── Hooks_Script.h
│   ├── Hooks_Serialization.cpp
│   ├── Hooks_Serialization.h
│   ├── Hooks_Version.cpp
│   ├── Hooks_Version.h
│   ├── NiExtraData.cpp
│   ├── NiExtraData.h
│   ├── NiObject.cpp
│   ├── NiObject.h
│   ├── NiRTTI.cpp
│   ├── NiRTTI.h
│   ├── NiTypes.h
│   ├── PapyrusNativeFunctions.h
│   ├── PluginAPI.h
│   ├── PluginManager.cpp
│   ├── PluginManager.h
│   ├── ScaleformFunctions.h
│   ├── ScaleformLoader.h
│   ├── ScaleformLog.h
│   ├── ScaleformManager.h
│   ├── ScaleformMemory.cpp
│   ├── ScaleformMemory.h
│   ├── ScaleformMovie.h
│   ├── ScaleformState.h
│   ├── ScaleformTranslator.h
│   ├── ScaleformTypes.h
│   ├── ScaleformValue.h
│   ├── Serialization.cpp
│   ├── Serialization.h
│   ├── cmake/
│   │   └── config.cmake.in
│   ├── sfse.cpp
│   ├── sfse.def
│   └── sfse_version.rc
├── sfse_common/
│   ├── BranchTrampoline.cpp
│   ├── BranchTrampoline.h
│   ├── BufferStream.cpp
│   ├── BufferStream.h
│   ├── CMakeLists.txt
│   ├── CoreInfo.h
│   ├── DataStream.cpp
│   ├── DataStream.h
│   ├── DirectoryIterator.cpp
│   ├── DirectoryIterator.h
│   ├── Errors.cpp
│   ├── Errors.h
│   ├── FileStream.cpp
│   ├── FileStream.h
│   ├── Log.cpp
│   ├── Log.h
│   ├── Relocation.cpp
│   ├── Relocation.h
│   ├── SafeWrite.cpp
│   ├── SafeWrite.h
│   ├── Types.h
│   ├── Utilities.cpp
│   ├── Utilities.h
│   ├── cmake/
│   │   └── config.cmake.in
│   └── sfse_version.h
├── sfse_loader/
│   ├── CMakeLists.txt
│   ├── IdentifyEXE.cpp
│   ├── IdentifyEXE.h
│   ├── Inject.cpp
│   ├── Inject.h
│   ├── LoaderError.cpp
│   ├── LoaderError.h
│   ├── Options.cpp
│   ├── Options.h
│   ├── SigCheck.cpp
│   ├── SigCheck.h
│   ├── cmake/
│   │   └── config.cmake.in
│   ├── main.cpp
│   ├── sfse_loader.manifest
│   └── sfse_loader_version.rc
├── sfse_readme.txt
├── sfse_whatsnew.txt
└── xbyak/
    ├── CMakeLists.txt
    ├── COPYRIGHT
    ├── cmake/
    │   ├── config.cmake.in
    │   └── meson-config.cmake.in
    ├── readme.md
    ├── readme.txt
    └── xbyak/
        ├── xbyak.h
        ├── xbyak_bin2hex.h
        ├── xbyak_mnemonic.h
        └── xbyak_util.h
Download .txt
Showing preview only (347K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3608 symbols across 79 files)

FILE: sfse/GameChargen.h
  function namespace (line 11) | namespace TESNPCData
  function namespace (line 32) | namespace BGSCharacterMorph

FILE: sfse/GameConsole.cpp
  function Console_Print (line 6) | void Console_Print(const char* fmt, ...)

FILE: sfse/GameConsole.h
  function class (line 6) | class ConsoleLog

FILE: sfse/GameData.h
  type TESFileCollection (line 15) | struct TESFileCollection
  function class (line 22) | class TESFile
  function class (line 101) | class TESPackedFile : public TESFile
  type FormItem (line 116) | struct FormItem
  function TESDataHandler (line 154) | static TESDataHandler* GetSingleton()
  function GetSubIndex (line 160) | uint32_t GetSubIndex(const TESFile* file) const
  function TESFile (line 186) | const TESFile* GetModByFormId(const uint32_t formId)
  type MaterialDatabase (line 215) | struct MaterialDatabase

FILE: sfse/GameEvents.h
  type BGSHotloadCompletedEvent (line 7) | struct BGSHotloadCompletedEvent {}
  type SnapTemplateUtils (line 11) | struct SnapTemplateUtils
  type ImageFixtureEvent_RequestImage (line 15) | struct ImageFixtureEvent_RequestImage {}
  type ImageFixtureEvent_UnregisterImage (line 16) | struct ImageFixtureEvent_UnregisterImage {}
  type Spaceship (line 17) | struct Spaceship
  type HUDActivityIncreaseEvent (line 45) | struct HUDActivityIncreaseEvent {}
  type AnimationDataCleanupEvent (line 46) | struct AnimationDataCleanupEvent {}
  type AnimationDataSetupEvent (line 47) | struct AnimationDataSetupEvent {}
  type EndLoadGameEvent (line 48) | struct EndLoadGameEvent {}
  type StartLoadGameEvent (line 49) | struct StartLoadGameEvent {}
  type ShipEditor_SystemSelected (line 50) | struct ShipEditor_SystemSelected {}
  type ShipEditor_PreviewUpgrade (line 51) | struct ShipEditor_PreviewUpgrade {}
  type ShipEditor_SelectedUpgrade (line 52) | struct ShipEditor_SelectedUpgrade {}
  type RuntimeComponentDBFactory (line 53) | struct RuntimeComponentDBFactory
  type WeaponGroupAssignmentMenu_ChangeWeaponAssignment (line 64) | struct WeaponGroupAssignmentMenu_ChangeWeaponAssignment {}
  type WeaponGroupAssignmentMenu_OnHintButtonActivated (line 65) | struct WeaponGroupAssignmentMenu_OnHintButtonActivated {}
  type ShipEditor_OnExitConfirmCancel (line 66) | struct ShipEditor_OnExitConfirmCancel {}
  type ShipEditor_OnExitConfirmExit (line 67) | struct ShipEditor_OnExitConfirmExit {}
  type ShipEditor_OnExitConfirmSaveAndExit (line 68) | struct ShipEditor_OnExitConfirmSaveAndExit {}
  type ShipEditor_OnFlightCheckTabChanged (line 69) | struct ShipEditor_OnFlightCheckTabChanged {}
  type ShipEditor_OnWeaponGroupChanged (line 70) | struct ShipEditor_OnWeaponGroupChanged {}
  type ShipEditor_OnRenameEndEditText (line 71) | struct ShipEditor_OnRenameEndEditText {}
  type ShipEditor_OnRenameInputCancelled (line 72) | struct ShipEditor_OnRenameInputCancelled {}
  type ShipEditor_ChangeModuleCategory (line 73) | struct ShipEditor_ChangeModuleCategory {}
  type ShipEditor_PreviewShipPart (line 74) | struct ShipEditor_PreviewShipPart {}
  type ShipEditor_SelectedShipPart (line 75) | struct ShipEditor_SelectedShipPart {}
  type ShipEditor_OnColorPickerControlChanged (line 76) | struct ShipEditor_OnColorPickerControlChanged {}
  type ShipEditor_OnColorPickerTabChanged (line 77) | struct ShipEditor_OnColorPickerTabChanged {}
  type ShipEditor_OnColorSliderMouseInput (line 78) | struct ShipEditor_OnColorSliderMouseInput {}
  type ShipEditor_OnRecentColorSwatchClicked (line 79) | struct ShipEditor_OnRecentColorSwatchClicked {}
  type ShipBuilder_CloseAllMenus (line 80) | struct ShipBuilder_CloseAllMenus {}
  type ShipEditor_OnHintButtonActivated (line 81) | struct ShipEditor_OnHintButtonActivated {}
  type ShipEditor_RemoveAll3D (line 82) | struct ShipEditor_RemoveAll3D {}
  type ReferenceQueuedEvent (line 83) | struct ReferenceQueuedEvent {}
  type LoadScreenEndEvent (line 84) | struct LoadScreenEndEvent {}
  type LoadScreenStartEvent (line 85) | struct LoadScreenStartEvent {}
  type CellAttachDetachEvent (line 86) | struct CellAttachDetachEvent {}
  type PickRefStateChangedEvent (line 87) | struct PickRefStateChangedEvent {}
  type ActivityTrackerActivityStartedEvent (line 88) | struct ActivityTrackerActivityStartedEvent {}
  type BSWorldOriginShiftEvent (line 89) | struct BSWorldOriginShiftEvent {}
  type BGSPlanet (line 90) | struct BGSPlanet
  type StarMap (line 94) | struct StarMap
  type ResetHistoryDataEvent (line 98) | struct ResetHistoryDataEvent {}
  type TESQuestRewardEvent (line 99) | struct TESQuestRewardEvent {}
  type HUDWeaponWorldFOVMultChangedEvent (line 100) | struct HUDWeaponWorldFOVMultChangedEvent {}
  type BGSSceneActionPlayerDialogue (line 101) | struct BGSSceneActionPlayerDialogue
  type AutoLoadDoorRolloverEvent (line 107) | struct AutoLoadDoorRolloverEvent {}
  type ClearQuickContainerEvent (line 108) | struct ClearQuickContainerEvent {}
  type ReferenceCellLoadedTemps (line 109) | struct ReferenceCellLoadedTemps {}
  type Workshop (line 110) | struct Workshop
  type PickRefUpdateEvent (line 136) | struct PickRefUpdateEvent {}
  type ShipCameraStateToggled (line 138) | struct ShipCameraStateToggled {}
  type PlayerControls (line 139) | struct PlayerControls
  type PlayerSneakingChangeEvent (line 148) | struct PlayerSneakingChangeEvent {}
  type SaveLoadEvent (line 149) | struct SaveLoadEvent {}
  type SpaceshipWeaponBinding (line 150) | struct SpaceshipWeaponBinding
  type BoundaryMenu_FastTravel (line 154) | struct BoundaryMenu_FastTravel {}
  type BoundaryMenu_ShowMap (line 155) | struct BoundaryMenu_ShowMap {}
  type PhotoGallery_DeletePhoto (line 156) | struct PhotoGallery_DeletePhoto {}
  type PowersMenu_ActivateEssence (line 157) | struct PowersMenu_ActivateEssence {}
  type PowersMenu_EquipPower (line 158) | struct PowersMenu_EquipPower {}
  type PowersMenu_FavoritePower (line 159) | struct PowersMenu_FavoritePower {}
  type ContainerMenuClosed (line 160) | struct ContainerMenuClosed
  type HangarShipSelection_ChangeSystemDisplay (line 164) | struct HangarShipSelection_ChangeSystemDisplay {}
  type HangarShipSelection_RepairShip (line 165) | struct HangarShipSelection_RepairShip {}
  type HangarShipSelection_UpgradeSystem (line 166) | struct HangarShipSelection_UpgradeSystem {}
  type ShipCrewMenu_Close (line 167) | struct ShipCrewMenu_Close {}
  type BinkMovieStoppedPlayingEvent (line 168) | struct BinkMovieStoppedPlayingEvent {}
  type WorkshopColorMode_ApplyColors (line 169) | struct WorkshopColorMode_ApplyColors {}
  type WorkshopColorMode_SelectedTab (line 170) | struct WorkshopColorMode_SelectedTab {}
  type WorkshopColorMode_SliderChanged (line 171) | struct WorkshopColorMode_SliderChanged {}
  type WorkshopColorMode_SwatchChanged (line 172) | struct WorkshopColorMode_SwatchChanged {}
  type HUDCrewBuffMessageEvent (line 173) | struct HUDCrewBuffMessageEvent {}
  type CraftingMenu_SessionSummaryEvent (line 174) | struct CraftingMenu_SessionSummaryEvent {}
  type CraftingMenu_CraftItem (line 175) | struct CraftingMenu_CraftItem {}
  type CraftingMenu_ExitBench (line 176) | struct CraftingMenu_ExitBench {}
  type CraftingMenu_InstallMod (line 177) | struct CraftingMenu_InstallMod {}
  type CraftingMenu_RenameItem (line 178) | struct CraftingMenu_RenameItem {}
  type CraftingMenu_RevertedModdedItem (line 179) | struct CraftingMenu_RevertedModdedItem {}
  type CraftingMenu_SelectedMod (line 180) | struct CraftingMenu_SelectedMod {}
  type CraftingMenu_SelectedModSlot (line 181) | struct CraftingMenu_SelectedModSlot {}
  type CraftingMenu_SelectedModdableItem (line 182) | struct CraftingMenu_SelectedModdableItem {}
  type CraftingMenu_SelectedRecipe (line 183) | struct CraftingMenu_SelectedRecipe {}
  type CraftingMenu_SetInspectControls (line 184) | struct CraftingMenu_SetInspectControls {}
  type CraftingMenu_ToggleTracking (line 185) | struct CraftingMenu_ToggleTracking {}
  type CraftingMenu_ViewingModdableItem (line 186) | struct CraftingMenu_ViewingModdableItem {}
  type ContainerMenu_CloseMenu (line 187) | struct ContainerMenu_CloseMenu {}
  type InventoryMenu_Change3DView (line 188) | struct InventoryMenu_Change3DView {}
  type InventoryMenu_PaperDollTryOn (line 189) | struct InventoryMenu_PaperDollTryOn {}
  type InventoryMenu_ResetPaperDollInv (line 190) | struct InventoryMenu_ResetPaperDollInv {}
  type UpdateActivateListenerEvent (line 191) | struct UpdateActivateListenerEvent {}
  type StartOutpostFromListenerEvent (line 192) | struct StartOutpostFromListenerEvent {}
  type HUDModeEvent (line 193) | struct HUDModeEvent {}
  type OpenContainerMenuEventData (line 194) | struct OpenContainerMenuEventData {}
  type OpenContainerMenuFromListenerEvent (line 195) | struct OpenContainerMenuFromListenerEvent {}
  type HUDRolloverActivationButtonEvent (line 196) | struct HUDRolloverActivationButtonEvent {}
  type HUDRolloverActivationQCItemPressEvent (line 197) | struct HUDRolloverActivationQCItemPressEvent {}
  type Inventory_SetSort (line 198) | struct Inventory_SetSort {}
  type ShowingQuestMarketTextEvent (line 199) | struct ShowingQuestMarketTextEvent {}
  type TargetHitEvent (line 200) | struct TargetHitEvent {}
  type PlayerCrosshairModeEvent (line 201) | struct PlayerCrosshairModeEvent {}
  type ClearHUDMessagesEvent (line 202) | struct ClearHUDMessagesEvent {}
  type ShowHUDMessageEvent (line 203) | struct ShowHUDMessageEvent {}
  type PlayerDetectionLevelChangeEvent (line 204) | struct PlayerDetectionLevelChangeEvent {}
  type ShowCustomWatchAlert (line 205) | struct ShowCustomWatchAlert {}
  type PlayerUpdateEvent (line 206) | struct PlayerUpdateEvent {}
  type InventoryMenu_ToggleHelmet (line 207) | struct InventoryMenu_ToggleHelmet {}
  type InventoryMenu_ToggleSuit (line 208) | struct InventoryMenu_ToggleSuit {}
  type ControlsRemappedEvent (line 209) | struct ControlsRemappedEvent {}
  type SettingsPanel_CheckBoxChanged (line 210) | struct SettingsPanel_CheckBoxChanged {}
  type SettingsPanel_ClearBinding (line 211) | struct SettingsPanel_ClearBinding {}
  type SettingsPanel_OpenCategory (line 212) | struct SettingsPanel_OpenCategory {}
  type SettingsPanel_OpenSettings (line 213) | struct SettingsPanel_OpenSettings {}
  type SettingsPanel_RemapConfirmed (line 214) | struct SettingsPanel_RemapConfirmed {}
  type SettingsPanel_RemapMode (line 215) | struct SettingsPanel_RemapMode {}
  type SettingsPanel_ResetToDefaults (line 216) | struct SettingsPanel_ResetToDefaults {}
  type SettingsPanel_SaveControls (line 217) | struct SettingsPanel_SaveControls {}
  type SettingsPanel_SaveSettings (line 218) | struct SettingsPanel_SaveSettings {}
  type SettingsPanel_SliderChanged (line 219) | struct SettingsPanel_SliderChanged {}
  type SettingsPanel_StepperChanged (line 220) | struct SettingsPanel_StepperChanged {}
  type SettingsPanel_ValidateControls (line 221) | struct SettingsPanel_ValidateControls {}
  type ShipCrewMenu_OpenAssignMenu (line 222) | struct ShipCrewMenu_OpenAssignMenu {}
  type ShipCrewMenu_SetSort (line 223) | struct ShipCrewMenu_SetSort {}
  type ShowLongShipBootup (line 224) | struct ShowLongShipBootup {}
  type ShipHudQuickContainer_TransferMenu (line 225) | struct ShipHudQuickContainer_TransferMenu {}
  type ShipHud_Activate (line 226) | struct ShipHud_Activate {}
  type ShipHud_BodyViewMarkerDimensions (line 227) | struct ShipHud_BodyViewMarkerDimensions {}
  type ShipHud_ChangeComponentSelection (line 228) | struct ShipHud_ChangeComponentSelection {}
  type ShipHud_CloseMenu (line 229) | struct ShipHud_CloseMenu {}
  type ShipHud_Deselect (line 230) | struct ShipHud_Deselect {}
  type ShipHud_FarTravel (line 231) | struct ShipHud_FarTravel {}
  type ShipHud_HailAccepted (line 232) | struct ShipHud_HailAccepted {}
  type ShipHud_HailCancelled (line 233) | struct ShipHud_HailCancelled {}
  type ShipHud_JumpToQuestMarker (line 234) | struct ShipHud_JumpToQuestMarker {}
  type ShipHud_Land (line 235) | struct ShipHud_Land {}
  type ShipHud_LandingMarkerMap (line 236) | struct ShipHud_LandingMarkerMap {}
  type ShipHud_Map (line 237) | struct ShipHud_Map {}
  type ShipHud_OnMonocleToggle (line 238) | struct ShipHud_OnMonocleToggle {}
  type ShipHud_OpenPhotoMode (line 239) | struct ShipHud_OpenPhotoMode {}
  type ShipHud_Repair (line 240) | struct ShipHud_Repair {}
  type ShipHud_SetTargetMode (line 241) | struct ShipHud_SetTargetMode {}
  type ShipHud_Target (line 242) | struct ShipHud_Target {}
  type ShipHud_TargetShipSystem (line 243) | struct ShipHud_TargetShipSystem {}
  type ShipHud_UntargetShipSystem (line 244) | struct ShipHud_UntargetShipSystem {}
  type ShipHud_UpdateComponentPower (line 245) | struct ShipHud_UpdateComponentPower {}
  type DialogueMenu_CompleteExit (line 246) | struct DialogueMenu_CompleteExit {}
  type BGSScannerGuideEffectStatusUpdateEvent (line 247) | struct BGSScannerGuideEffectStatusUpdateEvent {}
  type GlobalFunc_CloseAllMenus (line 248) | struct GlobalFunc_CloseAllMenus {}
  type GlobalFunc_CloseMenu (line 249) | struct GlobalFunc_CloseMenu {}
  type GlobalFunc_PlayMenuSound (line 250) | struct GlobalFunc_PlayMenuSound {}
  type GlobalFunc_StartGameRender (line 251) | struct GlobalFunc_StartGameRender {}
  type GlobalFunc_UserEvent (line 252) | struct GlobalFunc_UserEvent {}
  type ExperienceMeterDisplayData (line 253) | struct ExperienceMeterDisplayData {}
  type LevelUp_AnimFinished (line 254) | struct LevelUp_AnimFinished {}
  type LevelUp_OnWidgetShown (line 255) | struct LevelUp_OnWidgetShown {}
  type LevelUp_OpenDataMenu (line 256) | struct LevelUp_OpenDataMenu {}
  type LevelUp_ShowSkills (line 257) | struct LevelUp_ShowSkills {}
  type LocationTextWidget_FinishedQueue (line 258) | struct LocationTextWidget_FinishedQueue {}
  type DisplayFatigueWarningEvent (line 259) | struct DisplayFatigueWarningEvent {}
  type SaveLoadMessageStringEvent (line 260) | struct SaveLoadMessageStringEvent {}
  type HUDNotificationEvent (line 261) | struct HUDNotificationEvent {}
  type HUDNotification_MissionActiveWidgetUpdate (line 262) | struct HUDNotification_MissionActiveWidgetUpdate {}
  type HUDNotification_OpenDataMenu (line 263) | struct HUDNotification_OpenDataMenu {}
  type HUDNotification_OpenMissionMenu (line 264) | struct HUDNotification_OpenMissionMenu {}
  type HUDNotification_SetMissionActive (line 265) | struct HUDNotification_SetMissionActive {}
  type PlayerSetWeaponStateEvent (line 266) | struct PlayerSetWeaponStateEvent {}
  type BarterMenu_BuyItem (line 267) | struct BarterMenu_BuyItem {}
  type BarterMenu_CloseMenu (line 268) | struct BarterMenu_CloseMenu {}
  type BarterMenu_HideModel (line 269) | struct BarterMenu_HideModel {}
  type BarterMenu_LoadModel (line 270) | struct BarterMenu_LoadModel {}
  type BarterMenu_SellItem (line 271) | struct BarterMenu_SellItem {}
  type BarterMenu_SetMouseOverModel (line 272) | struct BarterMenu_SetMouseOverModel {}
  type BarterMenu_ShowFailureMessage (line 273) | struct BarterMenu_ShowFailureMessage {}
  type BarterMenu_ViewedItem (line 274) | struct BarterMenu_ViewedItem {}
  type MissionMenu_ClearState (line 275) | struct MissionMenu_ClearState {}
  type MissionMenu_PlotToLocation (line 276) | struct MissionMenu_PlotToLocation {}
  type MissionMenu_RejectQuest (line 277) | struct MissionMenu_RejectQuest {}
  type MissionMenu_SaveCategoryIndex (line 278) | struct MissionMenu_SaveCategoryIndex {}
  type MissionMenu_SaveOpenedId (line 279) | struct MissionMenu_SaveOpenedId {}
  type MissionMenu_ShowItemLocation (line 280) | struct MissionMenu_ShowItemLocation {}
  type MissionMenu_ToggleTrackingQuest (line 281) | struct MissionMenu_ToggleTrackingQuest {}
  type DataSlateButtons_acceptClicked (line 282) | struct DataSlateButtons_acceptClicked {}
  type DataSlateButtons_cancelClicked (line 283) | struct DataSlateButtons_cancelClicked {}
  type DataSlateMenu_playSFX (line 284) | struct DataSlateMenu_playSFX {}
  type DataSlateMenu_toggleAudio (line 285) | struct DataSlateMenu_toggleAudio {}
  type InventoryMenu_DropItem (line 286) | struct InventoryMenu_DropItem {}
  type InventoryMenu_HideModel (line 287) | struct InventoryMenu_HideModel {}
  type InventoryMenu_LoadModel (line 288) | struct InventoryMenu_LoadModel {}
  type InventoryMenu_OnEnterCategory (line 289) | struct InventoryMenu_OnEnterCategory {}
  type InventoryMenu_OpenCargoHold (line 290) | struct InventoryMenu_OpenCargoHold {}
  type InventoryMenu_SelectItem (line 291) | struct InventoryMenu_SelectItem {}
  type InventoryMenu_SetMouseOverModel (line 292) | struct InventoryMenu_SetMouseOverModel {}
  type InventoryMenu_ToggleFavorite (line 293) | struct InventoryMenu_ToggleFavorite {}
  type MissionBoard_MissionEntryChanged (line 294) | struct MissionBoard_MissionEntryChanged {}
  type MissionBoard_MissionEntryPressed (line 295) | struct MissionBoard_MissionEntryPressed {}
  type MonocleMenu_Bioscan (line 296) | struct MonocleMenu_Bioscan {}
  type MonocleMenu_FastTravel (line 297) | struct MonocleMenu_FastTravel {}
  type MonocleMenu_Harvest (line 298) | struct MonocleMenu_Harvest {}
  type MonocleMenu_Initialize (line 299) | struct MonocleMenu_Initialize {}
  type MonocleMenu_Outpost (line 300) | struct MonocleMenu_Outpost {}
  type MonocleMenu_PhotoMode (line 301) | struct MonocleMenu_PhotoMode {}
  type MonocleMenu_Shutdown (line 302) | struct MonocleMenu_Shutdown {}
  type MonocleMenu_SocialSpell (line 303) | struct MonocleMenu_SocialSpell {}
  type MonocleMenu_StartContainerView (line 304) | struct MonocleMenu_StartContainerView {}
  type MonocleMenu_StopContainerView (line 305) | struct MonocleMenu_StopContainerView {}
  type MonocleMenu_SurfaceMap (line 306) | struct MonocleMenu_SurfaceMap {}
  type MonocleMenu_UseListScrollControls (line 307) | struct MonocleMenu_UseListScrollControls {}
  type MonocleMenu_ZoomIn (line 308) | struct MonocleMenu_ZoomIn {}
  type MonocleMenu_ZoomOut (line 309) | struct MonocleMenu_ZoomOut {}
  type PhotoMode_InitializeCategory (line 310) | struct PhotoMode_InitializeCategory {}
  type PhotoMode_ResetToDefaults (line 311) | struct PhotoMode_ResetToDefaults {}
  type PhotoMode_SliderChanged (line 312) | struct PhotoMode_SliderChanged {}
  type PhotoMode_StepperChanged (line 313) | struct PhotoMode_StepperChanged {}
  type PhotoMode_TakeSnapshot (line 314) | struct PhotoMode_TakeSnapshot {}
  type PhotoMode_ToggleHelmet (line 315) | struct PhotoMode_ToggleHelmet {}
  type PhotoMode_ToggleUI (line 316) | struct PhotoMode_ToggleUI {}
  type PickpocketMenu_OnItemSelect (line 317) | struct PickpocketMenu_OnItemSelect {}
  type ResearchMenu_AddMaterial (line 318) | struct ResearchMenu_AddMaterial {}
  type ResearchMenu_CategorySelected (line 319) | struct ResearchMenu_CategorySelected {}
  type ResearchMenu_ExitMenu (line 320) | struct ResearchMenu_ExitMenu {}
  type ResearchMenu_HideModel (line 321) | struct ResearchMenu_HideModel {}
  type ResearchMenu_PreviewProject (line 322) | struct ResearchMenu_PreviewProject {}
  type ResearchMenu_ProjectViewed (line 323) | struct ResearchMenu_ProjectViewed {}
  type ResearchMenu_SetInspectControls (line 324) | struct ResearchMenu_SetInspectControls {}
  type ResearchMenu_ToggleTrackingProject (line 325) | struct ResearchMenu_ToggleTrackingProject {}
  type UnlockedTerminalElementEvent (line 326) | struct UnlockedTerminalElementEvent {}
  type SecurityMenu_BackOutKey (line 327) | struct SecurityMenu_BackOutKey {}
  type SecurityMenu_CloseMenu (line 328) | struct SecurityMenu_CloseMenu {}
  type SecurityMenu_ConfirmExit (line 329) | struct SecurityMenu_ConfirmExit {}
  type SecurityMenu_EliminateUnusedKeys (line 330) | struct SecurityMenu_EliminateUnusedKeys {}
  type SecurityMenu_GetRingHint (line 331) | struct SecurityMenu_GetRingHint {}
  type SecurityMenu_SelectNewKey (line 332) | struct SecurityMenu_SelectNewKey {}
  type SecurityMenu_TryUseKey (line 333) | struct SecurityMenu_TryUseKey {}
  type ShipCrewAssignMenu_Assign (line 334) | struct ShipCrewAssignMenu_Assign {}
  type ShipCrewAssignMenu_Unassign (line 335) | struct ShipCrewAssignMenu_Unassign {}
  type ShipCrewMenu_ViewedItem (line 336) | struct ShipCrewMenu_ViewedItem {}
  type Refuel_Accept (line 337) | struct Refuel_Accept {}
  type Refuel_Cancel (line 338) | struct Refuel_Cancel {}
  type SkillsMenu_Accept (line 339) | struct SkillsMenu_Accept {}
  type SkillsMenu_AddPatch (line 340) | struct SkillsMenu_AddPatch {}
  type SkillsMenu_Cancel (line 341) | struct SkillsMenu_Cancel {}
  type SkillsMenu_ChangeCursorVisibility (line 342) | struct SkillsMenu_ChangeCursorVisibility {}
  type SkillsMenu_SaveLastCategory (line 343) | struct SkillsMenu_SaveLastCategory {}
  type BSChargenAPI (line 344) | struct BSChargenAPI
  type CharGen_BrowChange (line 352) | struct CharGen_BrowChange {}
  type CharGen_BrowColorChange (line 353) | struct CharGen_BrowColorChange {}
  type CharGen_CancelTextEntry (line 354) | struct CharGen_CancelTextEntry {}
  type CharGen_CloseMenu (line 355) | struct CharGen_CloseMenu {}
  type CharGen_CyclePronoun (line 356) | struct CharGen_CyclePronoun {}
  type CharGen_DirtScarsEtcChange (line 357) | struct CharGen_DirtScarsEtcChange {}
  type CharGen_EndBodyChange (line 358) | struct CharGen_EndBodyChange {}
  type CharGen_EndTextEntry (line 359) | struct CharGen_EndTextEntry {}
  type CharGen_EyeColorChange (line 360) | struct CharGen_EyeColorChange {}
  type CharGen_FacialHairChange (line 361) | struct CharGen_FacialHairChange {}
  type CharGen_FacialHairColorChange (line 362) | struct CharGen_FacialHairColorChange {}
  type CharGen_HairChange (line 363) | struct CharGen_HairChange {}
  type CharGen_HairColorChange (line 364) | struct CharGen_HairColorChange {}
  type CharGen_HeadpartPlusSelectorChange (line 365) | struct CharGen_HeadpartPlusSelectorChange {}
  type CharGen_HeadpartPresetChange (line 366) | struct CharGen_HeadpartPresetChange {}
  type CharGen_JewelryChange (line 367) | struct CharGen_JewelryChange {}
  type CharGen_JewelryColorChange (line 368) | struct CharGen_JewelryColorChange {}
  type CharGen_MakeupChange (line 369) | struct CharGen_MakeupChange {}
  type CharGen_MarkingsChange (line 370) | struct CharGen_MarkingsChange {}
  type CharGen_PostBlendColorOptionChange (line 371) | struct CharGen_PostBlendColorOptionChange {}
  type CharGen_PostBlendFaceChange (line 372) | struct CharGen_PostBlendFaceChange {}
  type CharGen_PostBlendIntensityChange (line 373) | struct CharGen_PostBlendIntensityChange {}
  type CharGen_PresetChange (line 374) | struct CharGen_PresetChange {}
  type CharGen_RollOffLocomotion (line 375) | struct CharGen_RollOffLocomotion {}
  type CharGen_RollOnLocomotion (line 376) | struct CharGen_RollOnLocomotion {}
  type CharGen_RotatePaperdoll (line 377) | struct CharGen_RotatePaperdoll {}
  type CharGen_SetAdditionalSlider (line 378) | struct CharGen_SetAdditionalSlider {}
  type CharGen_SetBackground (line 379) | struct CharGen_SetBackground {}
  type CharGen_SetBlockInputUnderPopup (line 380) | struct CharGen_SetBlockInputUnderPopup {}
  type CharGen_SetBodyValues (line 381) | struct CharGen_SetBodyValues {}
  type CharGen_SetCameraPosition (line 382) | struct CharGen_SetCameraPosition {}
  type CharGen_SetPronoun (line 383) | struct CharGen_SetPronoun {}
  type CharGen_SetSex (line 384) | struct CharGen_SetSex {}
  type CharGen_SetSlider (line 385) | struct CharGen_SetSlider {}
  type CharGen_SetTrait (line 386) | struct CharGen_SetTrait {}
  type CharGen_ShowChooseBackgroundMessage (line 387) | struct CharGen_ShowChooseBackgroundMessage {}
  type CharGen_ShowPlayerRenameMessage (line 388) | struct CharGen_ShowPlayerRenameMessage {}
  type CharGen_SkintoneChange (line 389) | struct CharGen_SkintoneChange {}
  type CharGen_StartBodyChange (line 390) | struct CharGen_StartBodyChange {}
  type CharGen_StartTextEntry (line 391) | struct CharGen_StartTextEntry {}
  type CharGen_SwitchBodyType (line 392) | struct CharGen_SwitchBodyType {}
  type CharGen_SwitchLocomotion (line 393) | struct CharGen_SwitchLocomotion {}
  type CharGen_TeethChange (line 394) | struct CharGen_TeethChange {}
  type CharGen_TeethRollOff (line 395) | struct CharGen_TeethRollOff {}
  type CharGen_TeethRollOn (line 396) | struct CharGen_TeethRollOn {}
  type CharGen_ToggleMarking (line 397) | struct CharGen_ToggleMarking {}
  type CharGen_TogglePreviewHabSuit (line 398) | struct CharGen_TogglePreviewHabSuit {}
  type UIMenuChargenMenuDisablePaperdoll (line 399) | struct UIMenuChargenMenuDisablePaperdoll {}
  type DataMenu_CloseMenu (line 400) | struct DataMenu_CloseMenu {}
  type DataMenu_ClosedForSubMenu (line 401) | struct DataMenu_ClosedForSubMenu {}
  type DataMenu_Missions (line 402) | struct DataMenu_Missions {}
  type DataMenu_PlotToLocation (line 403) | struct DataMenu_PlotToLocation {}
  type DataMenu_Reopened (line 404) | struct DataMenu_Reopened {}
  type DataMenu_SelectedAttributesMenu (line 405) | struct DataMenu_SelectedAttributesMenu {}
  type DataMenu_SelectedInventoryMenu (line 406) | struct DataMenu_SelectedInventoryMenu {}
  type DataMenu_SelectedMapMenu (line 407) | struct DataMenu_SelectedMapMenu {}
  type DataMenu_SelectedPowersMenu (line 408) | struct DataMenu_SelectedPowersMenu {}
  type DataMenu_SelectedShipMenu (line 409) | struct DataMenu_SelectedShipMenu {}
  type DataMenu_SelectedStatusMenu (line 410) | struct DataMenu_SelectedStatusMenu {}
  type DataMenu_SetMenuForQuickEntry (line 411) | struct DataMenu_SetMenuForQuickEntry {}
  type DataMenu_SetPaperDollActive (line 412) | struct DataMenu_SetPaperDollActive {}
  type PauseMenu_ActionCanceled (line 413) | struct PauseMenu_ActionCanceled {}
  type PauseMenu_ConfirmAction (line 414) | struct PauseMenu_ConfirmAction {}
  type PauseMenu_ConfirmLoad (line 415) | struct PauseMenu_ConfirmLoad {}
  type PauseMenu_ConfirmSave (line 416) | struct PauseMenu_ConfirmSave {}
  type PauseMenu_DeleteSave (line 417) | struct PauseMenu_DeleteSave {}
  type PauseMenu_QuitToDesktop (line 418) | struct PauseMenu_QuitToDesktop {}
  type PauseMenu_SetCharacter (line 419) | struct PauseMenu_SetCharacter {}
  type PauseMenu_StartAction (line 420) | struct PauseMenu_StartAction {}
  type PauseMenu_StartLoad (line 421) | struct PauseMenu_StartLoad {}
  type PauseMenu_UploadSave (line 422) | struct PauseMenu_UploadSave {}
  type PlayBink_CloseMenu (line 423) | struct PlayBink_CloseMenu {}
  type Reticle_OnLongAnimFinished (line 424) | struct Reticle_OnLongAnimFinished {}
  type ShipHudQuickContainer_TransferItem (line 425) | struct ShipHudQuickContainer_TransferItem {}
  type ShipHud_AbortJump (line 426) | struct ShipHud_AbortJump {}
  type ShipHud_DockRequested (line 427) | struct ShipHud_DockRequested {}
  type ShipHud_HailShip (line 428) | struct ShipHud_HailShip {}
  type ShipHud_UpdateTargetPanelRect (line 429) | struct ShipHud_UpdateTargetPanelRect {}
  type TakeoffMenu_CloseMenu (line 430) | struct TakeoffMenu_CloseMenu {}
  type TakeoffMenu_ExitShip (line 431) | struct TakeoffMenu_ExitShip {}
  type TakeoffMenu_Launch (line 432) | struct TakeoffMenu_Launch {}
  type StarMapMenu_LandingInputInProgress (line 433) | struct StarMapMenu_LandingInputInProgress {}
  type StarMapMenu_MarkerGroupContainerVisibilityChanged (line 434) | struct StarMapMenu_MarkerGroupContainerVisibilityChanged {}
  type StarMapMenu_MarkerGroupEntryClicked (line 435) | struct StarMapMenu_MarkerGroupEntryClicked {}
  type StarMapMenu_MarkerGroupEntryHoverChanged (line 436) | struct StarMapMenu_MarkerGroupEntryHoverChanged {}
  type StarMapMenu_ScanPlanet (line 437) | struct StarMapMenu_ScanPlanet {}
  type StarMapMenu_SelectedLandingSite (line 438) | struct StarMapMenu_SelectedLandingSite {}
  type StarMapMenu_SelectedLandingSiteFailed (line 439) | struct StarMapMenu_SelectedLandingSiteFailed {}
  type StarMapMenu_ShowRealCursor (line 440) | struct StarMapMenu_ShowRealCursor {}
  type StarMapMenu_QuickSelectChange (line 441) | struct StarMapMenu_QuickSelectChange {}
  type StarMapMenu_Galaxy_FocusSystem (line 442) | struct StarMapMenu_Galaxy_FocusSystem {}
  type StarMapMenu_OnGalaxyViewInitialized (line 443) | struct StarMapMenu_OnGalaxyViewInitialized {}
  type StarMapMenu_ExecuteRoute (line 444) | struct StarMapMenu_ExecuteRoute {}
  type StarMapMenu_OnCancel (line 445) | struct StarMapMenu_OnCancel {}
  type StarMapMenu_OnClearRoute (line 446) | struct StarMapMenu_OnClearRoute {}
  type StarMapMenu_OnExitStarMap (line 447) | struct StarMapMenu_OnExitStarMap {}
  type StarMapMenu_OnHintButtonClicked (line 448) | struct StarMapMenu_OnHintButtonClicked {}
  type StarMapMenu_OnOutpostEntrySelected (line 449) | struct StarMapMenu_OnOutpostEntrySelected {}
  type StarMapMenu_ReadyToClose (line 450) | struct StarMapMenu_ReadyToClose {}
  type SurfaceMapMenu_MarkerClicked (line 451) | struct SurfaceMapMenu_MarkerClicked {}
  type SurfaceMapMenu_TryPlaceCustomMarker (line 452) | struct SurfaceMapMenu_TryPlaceCustomMarker {}
  type TerminalMenu_CancelEvent (line 453) | struct TerminalMenu_CancelEvent {}
  type Terminal_CloseAllViews (line 454) | struct Terminal_CloseAllViews {}
  type Terminal_CloseTopView (line 455) | struct Terminal_CloseTopView {}
  type Terminal_CloseView (line 456) | struct Terminal_CloseView {}
  type Terminal_MenuItemClick (line 457) | struct Terminal_MenuItemClick {}
  type TestMenu_DoAction (line 458) | struct TestMenu_DoAction {}
  type TestMenu_ExitMenu (line 459) | struct TestMenu_ExitMenu {}
  type TestMenu_ShowImages (line 460) | struct TestMenu_ShowImages {}
  type TestMenu_ShowResources (line 461) | struct TestMenu_ShowResources {}
  type TestMenu_TestAll (line 462) | struct TestMenu_TestAll {}
  type TextInputMenu_EndEditText (line 463) | struct TextInputMenu_EndEditText {}
  type TextInputMenu_InputCanceled (line 464) | struct TextInputMenu_InputCanceled {}
  type TextInputMenu_StartEditText (line 465) | struct TextInputMenu_StartEditText {}
  type CraftingMenu_Highlight3D (line 466) | struct CraftingMenu_Highlight3D {}
  type CraftingMenu_RevertHighlight (line 467) | struct CraftingMenu_RevertHighlight {}
  type WorkshopBuilderMenu_ChangeBuildItem (line 468) | struct WorkshopBuilderMenu_ChangeBuildItem {}
  type WorkshopBuilderMenu_SelectedItem (line 469) | struct WorkshopBuilderMenu_SelectedItem {}
  type WorkshopBuilderMenu_ToggleTracking (line 470) | struct WorkshopBuilderMenu_ToggleTracking {}
  type WorkshopMenu_AttemptBuild (line 471) | struct WorkshopMenu_AttemptBuild {}
  type WorkshopMenu_CancelAction (line 472) | struct WorkshopMenu_CancelAction {}
  type WorkshopMenu_ChangeVariant (line 473) | struct WorkshopMenu_ChangeVariant {}
  type WorkshopMenu_ConnectionEvent (line 474) | struct WorkshopMenu_ConnectionEvent {}
  type WorkshopMenu_ExitMenu (line 475) | struct WorkshopMenu_ExitMenu {}
  type WorkshopMenu_MessageCallback (line 476) | struct WorkshopMenu_MessageCallback {}
  type WorkshopMenu_SelectedCategory (line 477) | struct WorkshopMenu_SelectedCategory {}
  type WorkshopMenu_SelectedGridObject (line 478) | struct WorkshopMenu_SelectedGridObject {}
  type WorkshopMenu_ShowExtras (line 479) | struct WorkshopMenu_ShowExtras {}
  type WorkshopMenu_SwitchMode (line 480) | struct WorkshopMenu_SwitchMode {}
  type WorkshopMenu_ToggleDistance (line 481) | struct WorkshopMenu_ToggleDistance {}
  type WorkshopMenu_ToggleTracking (line 482) | struct WorkshopMenu_ToggleTracking {}
  type WorkshopMenu_ToggleView (line 483) | struct WorkshopMenu_ToggleView {}
  type WorkshopQuickMenu_ConfirmAction (line 484) | struct WorkshopQuickMenu_ConfirmAction {}
  type WorkshopQuickMenu_ExitMenu (line 485) | struct WorkshopQuickMenu_ExitMenu {}
  type WorkshopTargetMenu_TargetHovered (line 486) | struct WorkshopTargetMenu_TargetHovered {}
  type WorkshopTargetMenu_TargetPicked (line 487) | struct WorkshopTargetMenu_TargetPicked {}
  type WorkshopActionButton_HoldFinished (line 488) | struct WorkshopActionButton_HoldFinished {}
  type WorkshopActionButton_HoldStopped (line 489) | struct WorkshopActionButton_HoldStopped {}
  type WorkshopShared_SetActionHandles (line 490) | struct WorkshopShared_SetActionHandles {}
  type WorkshopShared_StartAction (line 491) | struct WorkshopShared_StartAction {}
  type ModelReferenceEffectEvents (line 492) | struct ModelReferenceEffectEvents
  type BGSAcousticSpaceListener (line 496) | struct BGSAcousticSpaceListener
  type SpaceshipBIEvents (line 500) | struct SpaceshipBIEvents
  type BGSActorDeathEvent (line 504) | struct BGSActorDeathEvent {}
  type Research (line 505) | struct Research
  type PlayerAutoAimActorEvent (line 509) | struct PlayerAutoAimActorEvent {}
  type PlayerInCombatChangeEvent (line 510) | struct PlayerInCombatChangeEvent {}
  type BlurEvent (line 511) | struct BlurEvent {}
  type ContainerMenu_HideModel (line 512) | struct ContainerMenu_HideModel {}
  type ContainerMenu_Jettison (line 513) | struct ContainerMenu_Jettison {}
  type ContainerMenu_LoadModel (line 514) | struct ContainerMenu_LoadModel {}
  type ContainerMenu_OpenRefuelMenu (line 515) | struct ContainerMenu_OpenRefuelMenu {}
  type ContainerMenu_SetMouseOverModel (line 516) | struct ContainerMenu_SetMouseOverModel {}
  type ContainerMenu_TakeAll (line 517) | struct ContainerMenu_TakeAll {}
  type ContainerMenu_ToggleEquip (line 518) | struct ContainerMenu_ToggleEquip {}
  type ContainerMenu_TransferItem (line 519) | struct ContainerMenu_TransferItem {}
  type DialogueMenu_OnDialogueSelect (line 520) | struct DialogueMenu_OnDialogueSelect {}
  type DialogueMenu_OnListVisibilityChange (line 521) | struct DialogueMenu_OnListVisibilityChange {}
  type DialogueMenu_OnPersuasionAutoWin (line 522) | struct DialogueMenu_OnPersuasionAutoWin {}
  type DialogueMenu_OnScriptedDialogueSelect (line 523) | struct DialogueMenu_OnScriptedDialogueSelect {}
  type DialogueMenu_RequestExit (line 524) | struct DialogueMenu_RequestExit {}
  type DialogueMenu_RequestSkipDialogue (line 525) | struct DialogueMenu_RequestSkipDialogue {}
  type FaderMenuDisplayState (line 526) | struct FaderMenuDisplayState {}
  type FavoritesMenu_AssignQuickkey (line 527) | struct FavoritesMenu_AssignQuickkey {}
  type FavoritesMenu_UseQuickkey (line 528) | struct FavoritesMenu_UseQuickkey {}
  type LoadingMenu_RefreshText (line 529) | struct LoadingMenu_RefreshText {}
  type MainMenu_ActionCanceled (line 530) | struct MainMenu_ActionCanceled {}
  type MainMenu_ActionConfirmed (line 531) | struct MainMenu_ActionConfirmed {}
  type MainMenu_ConfirmLoad (line 532) | struct MainMenu_ConfirmLoad {}
  type MainMenu_DeleteSave (line 533) | struct MainMenu_DeleteSave {}
  type MainMenu_SetCharacter (line 534) | struct MainMenu_SetCharacter {}
  type MainMenu_StartAction (line 535) | struct MainMenu_StartAction {}
  type MainMenu_StartLoad (line 536) | struct MainMenu_StartLoad {}
  type MainMenu_UploadSave (line 537) | struct MainMenu_UploadSave {}
  type BGSAppPausedEvent (line 538) | struct BGSAppPausedEvent {}
  type MessageBoxMenu_OnBackOut (line 539) | struct MessageBoxMenu_OnBackOut {}
  type MessageBoxMenu_OnButtonPress (line 540) | struct MessageBoxMenu_OnButtonPress {}
  type MessageBoxMenu_OnScriptedButtonPress (line 541) | struct MessageBoxMenu_OnScriptedButtonPress {}
  type SleepWaitMenu_InterruptRest (line 542) | struct SleepWaitMenu_InterruptRest {}
  type SleepWaitMenu_StartRest (line 543) | struct SleepWaitMenu_StartRest {}
  type ContextStackChangedEvent (line 545) | struct ContextStackChangedEvent {}
  type UpdateSceneRectEvent (line 546) | struct UpdateSceneRectEvent {}
  type GameStalledEvent (line 547) | struct GameStalledEvent {}
  type TESCellNavmeshGeneratedEvent (line 551) | struct TESCellNavmeshGeneratedEvent {}
  type TESHitEvent (line 552) | struct TESHitEvent {}
  type FirstThirdPersonSwitch (line 553) | struct FirstThirdPersonSwitch
  type PerkChanged (line 557) | struct PerkChanged
  type TESHarvestEvent (line 561) | struct TESHarvestEvent
  type ActivityEvents (line 565) | struct ActivityEvents
  type ChallengeCompletedEvent (line 569) | struct ChallengeCompletedEvent
  type InventoryItemEvent (line 573) | struct InventoryItemEvent
  type BooksRead (line 577) | struct BooksRead
  type LocationExplored (line 581) | struct LocationExplored
  type LocationLinked (line 585) | struct LocationLinked
  type Activation (line 589) | struct Activation
  type ActorCellChangeEvent (line 593) | struct ActorCellChangeEvent {}
  type ActorHeadAttachedEvent (line 594) | struct ActorHeadAttachedEvent {}
  type ActorValueEvents (line 595) | struct ActorValueEvents
  type AliasChangeEvent (line 599) | struct AliasChangeEvent {}
  type AnimationGraphDependentEvent (line 600) | struct AnimationGraphDependentEvent {}
  type BGSAffinityEventEvent (line 601) | struct BGSAffinityEventEvent {}
  type BGSCellGridLoadEvent (line 602) | struct BGSCellGridLoadEvent {}
  type BGSEventProcessedEvent (line 603) | struct BGSEventProcessedEvent {}
  type BGSHavokWorldCreatedEvent (line 604) | struct BGSHavokWorldCreatedEvent {}
  type BGSLocationLoadedEvent (line 605) | struct BGSLocationLoadedEvent {}
  type BGSOnPlayerCompanionDismiss (line 606) | struct BGSOnPlayerCompanionDismiss {}
  type BGSOnPlayerCompleteResearchEvent (line 607) | struct BGSOnPlayerCompleteResearchEvent {}
  type BGSOnPlayerCraftItemEvent (line 608) | struct BGSOnPlayerCraftItemEvent {}
  type BGSOnPlayerCreateRobotEvent (line 609) | struct BGSOnPlayerCreateRobotEvent {}
  type BGSOnPlayerEnterVertibirdEvent (line 610) | struct BGSOnPlayerEnterVertibirdEvent {}
  type BGSOnPlayerFallLongDistances (line 611) | struct BGSOnPlayerFallLongDistances {}
  type BGSOnPlayerFireWeaponEvent (line 612) | struct BGSOnPlayerFireWeaponEvent {}
  type BGSOnPlayerHealTeammateEvent (line 613) | struct BGSOnPlayerHealTeammateEvent {}
  type BGSOnPlayerLoiteringBeginEvent (line 614) | struct BGSOnPlayerLoiteringBeginEvent {}
  type BGSOnPlayerLoiteringEndEvent (line 615) | struct BGSOnPlayerLoiteringEndEvent {}
  type BGSOnPlayerModArmorWeaponEvent (line 616) | struct BGSOnPlayerModArmorWeaponEvent {}
  type BGSOnPlayerModRobotEvent (line 617) | struct BGSOnPlayerModRobotEvent {}
  type BGSOnPlayerSwimmingEvent (line 618) | struct BGSOnPlayerSwimmingEvent {}
  type BGSOnPlayerUseWorkBenchEvent (line 619) | struct BGSOnPlayerUseWorkBenchEvent {}
  type BGSOnSpeechChallengeAvailable (line 620) | struct BGSOnSpeechChallengeAvailable {}
  type BGSRadiationDamageEvent (line 621) | struct BGSRadiationDamageEvent {}
  type BuilderMenuSelectEvent (line 622) | struct BuilderMenuSelectEvent {}
  type CrewAssignedEvent (line 623) | struct CrewAssignedEvent {}
  type CrewDismissedEvent (line 624) | struct CrewDismissedEvent {}
  type DestroyedEvent (line 625) | struct DestroyedEvent {}
  type HomeShipSetEvent (line 626) | struct HomeShipSetEvent {}
  type InstantReferenceInteractionEvent (line 627) | struct InstantReferenceInteractionEvent {}
  type ItemConsumedEvent (line 628) | struct ItemConsumedEvent {}
  type ItemSwappedEvent (line 629) | struct ItemSwappedEvent {}
  type LockPickedEvent (line 630) | struct LockPickedEvent {}
  type MapMarkerDiscoveredEvent (line 631) | struct MapMarkerDiscoveredEvent {}
  type ObjectScannedEvent (line 632) | struct ObjectScannedEvent {}
  type PlayerAddItemEvent (line 633) | struct PlayerAddItemEvent {}
  type PlayerArrestedEvent (line 634) | struct PlayerArrestedEvent {}
  type PlayerAssaultActorEvent (line 635) | struct PlayerAssaultActorEvent {}
  type PlayerBuyShipEvent (line 636) | struct PlayerBuyShipEvent {}
  type PlayerCrimeGoldEvent (line 637) | struct PlayerCrimeGoldEvent {}
  type PlayerFailedPlotRouteEvent (line 638) | struct PlayerFailedPlotRouteEvent {}
  type PlayerJailEvent (line 639) | struct PlayerJailEvent {}
  type PlayerModifiedShipEvent (line 640) | struct PlayerModifiedShipEvent {}
  type PlayerMurderActorEvent (line 641) | struct PlayerMurderActorEvent {}
  type PlayerPayFineEvent (line 642) | struct PlayerPayFineEvent {}
  type PlayerPlanetSurveyCompleteEvent (line 643) | struct PlayerPlanetSurveyCompleteEvent {}
  type PlayerPlanetSurveyProgressEvent (line 644) | struct PlayerPlanetSurveyProgressEvent {}
  type PlayerSellShipEvent (line 645) | struct PlayerSellShipEvent {}
  type PlayerTrespassEvent (line 646) | struct PlayerTrespassEvent {}
  type QuickContainerOpenedEvent (line 647) | struct QuickContainerOpenedEvent {}
  type RefControlChangedEvent (line 648) | struct RefControlChangedEvent {}
  type ReferenceDestroyedEvent (line 649) | struct ReferenceDestroyedEvent {}
  type SpeechChallengeCompletionEvent (line 650) | struct SpeechChallengeCompletionEvent {}
  type TESActivateEvent (line 651) | struct TESActivateEvent {}
  type TESActiveEffectApplyFinishEvent (line 652) | struct TESActiveEffectApplyFinishEvent {}
  type TESActiveEffectRemovedEvent (line 653) | struct TESActiveEffectRemovedEvent {}
  type TESActorActivatedRefEvent (line 654) | struct TESActorActivatedRefEvent {}
  type TESActorLocationChangeEvent (line 655) | struct TESActorLocationChangeEvent {}
  type TESBookReadEvent (line 656) | struct TESBookReadEvent {}
  type TESCellCriticalRefsAttachedEvent (line 657) | struct TESCellCriticalRefsAttachedEvent {}
  type TESCellFullyLoadedEvent (line 658) | struct TESCellFullyLoadedEvent {}
  type TESCellGravityChangeEvent (line 659) | struct TESCellGravityChangeEvent {}
  type TESCellReadyToApplyDecalsEvent (line 660) | struct TESCellReadyToApplyDecalsEvent {}
  type TESCellReference3DAttachEvent (line 661) | struct TESCellReference3DAttachEvent {}
  type TESCellReferenceAttachDetachEvent (line 662) | struct TESCellReferenceAttachDetachEvent {}
  type TESCombatEvent (line 663) | struct TESCombatEvent {}
  type TESCombatListEvent (line 664) | struct TESCombatListEvent {}
  type TESCommandModeCompleteCommandEvent (line 665) | struct TESCommandModeCompleteCommandEvent {}
  type TESCommandModeEnterEvent (line 666) | struct TESCommandModeEnterEvent {}
  type TESCommandModeExitEvent (line 667) | struct TESCommandModeExitEvent {}
  type TESCommandModeGiveCommandEvent (line 668) | struct TESCommandModeGiveCommandEvent {}
  type TESConsciousnessEvent (line 669) | struct TESConsciousnessEvent {}
  type TESContainerChangedEvent (line 670) | struct TESContainerChangedEvent
  type TESDeathEvent (line 678) | struct TESDeathEvent {}
  type TESDeferredKillEvent (line 679) | struct TESDeferredKillEvent {}
  type TESDestructionStageChangedEvent (line 680) | struct TESDestructionStageChangedEvent {}
  type TESEnterBleedoutEvent (line 681) | struct TESEnterBleedoutEvent {}
  type TESEnterSneakingEvent (line 682) | struct TESEnterSneakingEvent {}
  type TESEquipEvent (line 683) | struct TESEquipEvent {}
  type TESEscortWaitStartEvent (line 684) | struct TESEscortWaitStartEvent {}
  type TESEscortWaitStopEvent (line 685) | struct TESEscortWaitStopEvent {}
  type TESExitBleedoutEvent (line 686) | struct TESExitBleedoutEvent {}
  type TESExitFurnitureEvent (line 687) | struct TESExitFurnitureEvent {}
  type TESFormDeleteEvent (line 688) | struct TESFormDeleteEvent
  type TESFormIDRemapEvent (line 692) | struct TESFormIDRemapEvent
  type TESFurnitureEvent (line 697) | struct TESFurnitureEvent {}
  type TESGrabReleaseEvent (line 698) | struct TESGrabReleaseEvent {}
  type TESInitScriptEvent (line 699) | struct TESInitScriptEvent {}
  type TESLimbCrippleEvent (line 700) | struct TESLimbCrippleEvent {}
  type TESLoadGameEvent (line 701) | struct TESLoadGameEvent {}
  type TESLocationExploredEvent (line 702) | struct TESLocationExploredEvent {}
  type TESLockChangedEvent (line 703) | struct TESLockChangedEvent {}
  type TESMagicEffectApplyEvent (line 704) | struct TESMagicEffectApplyEvent {}
  type TESMissionAcceptedEvent (line 705) | struct TESMissionAcceptedEvent {}
  type TESObjectLoadedEvent (line 706) | struct TESObjectLoadedEvent {}
  type TESObjectREFRTranslationEvent (line 707) | struct TESObjectREFRTranslationEvent {}
  type TESOnPCDialogueTargetEvent (line 708) | struct TESOnPCDialogueTargetEvent {}
  type TESOpenCloseEvent (line 709) | struct TESOpenCloseEvent {}
  type TESPackageEvent (line 710) | struct TESPackageEvent {}
  type TESPerkEntryRunEvent (line 711) | struct TESPerkEntryRunEvent {}
  type TESPickNewIdleEvent (line 712) | struct TESPickNewIdleEvent {}
  type TESPickpocketFailedEvent (line 713) | struct TESPickpocketFailedEvent {}
  type TESPlayerActiveEffectEvent (line 714) | struct TESPlayerActiveEffectEvent {}
  type TESPlayerFollowerWarpEvent (line 715) | struct TESPlayerFollowerWarpEvent {}
  type TESQuestInitEvent (line 716) | struct TESQuestInitEvent {}
  type TESQuestRejectedEvent (line 717) | struct TESQuestRejectedEvent {}
  type TESQuestStageEvent (line 718) | struct TESQuestStageEvent {}
  type TESQuestStageItemDoneEvent (line 719) | struct TESQuestStageItemDoneEvent {}
  type TESQuestStartStopEvent (line 720) | struct TESQuestStartStopEvent {}
  type TESQuestTimerEvent (line 721) | struct TESQuestTimerEvent {}
  type TESResetEvent (line 722) | struct TESResetEvent {}
  type TESResolveNPCTemplatesEvent (line 723) | struct TESResolveNPCTemplatesEvent {}
  type TESSceneActionEvent (line 724) | struct TESSceneActionEvent {}
  type TESSceneEvent (line 725) | struct TESSceneEvent {}
  type TESScenePhaseEvent (line 726) | struct TESScenePhaseEvent {}
  type TESSellEvent (line 727) | struct TESSellEvent {}
  type TESSleepStartEvent (line 728) | struct TESSleepStartEvent {}
  type TESSleepStopEvent (line 729) | struct TESSleepStopEvent {}
  type TESSpellCastEvent (line 730) | struct TESSpellCastEvent {}
  type TESSpellCastFailureEvent (line 731) | struct TESSpellCastFailureEvent {}
  type TESSwitchRaceCompleteEvent (line 732) | struct TESSwitchRaceCompleteEvent {}
  type TESTopicInfoEvent (line 733) | struct TESTopicInfoEvent {}
  type TESTrackedStatsEvent (line 734) | struct TESTrackedStatsEvent {}
  type TESTrapHitEvent (line 735) | struct TESTrapHitEvent {}
  type TESTriggerEnterEvent (line 736) | struct TESTriggerEnterEvent {}
  type TESTriggerEvent (line 737) | struct TESTriggerEvent {}
  type TESTriggerLeaveEvent (line 738) | struct TESTriggerLeaveEvent {}
  type TESUniqueIDChangeEvent (line 739) | struct TESUniqueIDChangeEvent {}
  type TESWaitStartEvent (line 740) | struct TESWaitStartEvent {}
  type TESWaitStopEvent (line 741) | struct TESWaitStopEvent {}
  type TerminalMenuMenuItemRunEvent (line 742) | struct TerminalMenuMenuItemRunEvent {}
  type TerminalMenuOnEnterEvent (line 743) | struct TerminalMenuOnEnterEvent {}
  type WorkshopNPCTransferEvent (line 744) | struct WorkshopNPCTransferEvent {}
  type TESObjectREFRIsReadyForAttachEvent (line 745) | struct TESObjectREFRIsReadyForAttachEvent {}
  type DefaultObjectsReadyEvent (line 746) | struct DefaultObjectsReadyEvent
  type ObjectiveState (line 750) | struct ObjectiveState
  type QuestStatus (line 754) | struct QuestStatus
  type RefillAliasEvent (line 758) | struct RefillAliasEvent
  type TESQuestEvent (line 762) | struct TESQuestEvent
  type RolloverIsCrimeEvent (line 766) | struct RolloverIsCrimeEvent
  type HideSubtitleEvent (line 770) | struct HideSubtitleEvent
  type ShowSubtitleEvent (line 774) | struct ShowSubtitleEvent
  type MissionMenuStateEvent (line 778) | struct MissionMenuStateEvent
  type ClearShipHudTarget (line 782) | struct ClearShipHudTarget
  type TryUpdateShipHudTarget (line 786) | struct TryUpdateShipHudTarget
  type LocationTextEvent (line 790) | struct LocationTextEvent
  type TraitDiscoveryTextEvent (line 794) | struct TraitDiscoveryTextEvent
  type DaysPassed (line 798) | struct DaysPassed
  type HourPassed (line 802) | struct HourPassed
  type ActorDamage (line 806) | struct ActorDamage
  type ActorItemEquipped (line 810) | struct ActorItemEquipped
  type ActorKill (line 814) | struct ActorKill
  type AssaultCrime (line 818) | struct AssaultCrime
  type DisarmedEvent (line 822) | struct DisarmedEvent
  type FactionRankChange (line 826) | struct FactionRankChange
  type GrandTheftHorse (line 830) | struct GrandTheftHorse
  type MurderCrime (line 834) | struct MurderCrime
  type PiracyCrime (line 838) | struct PiracyCrime
  type Bleedout (line 842) | struct Bleedout
  type ContractedDisease (line 846) | struct ContractedDisease
  type ReloadWeaponEvent (line 850) | struct ReloadWeaponEvent
  type SpellsLearned (line 854) | struct SpellsLearned
  type Bounty (line 858) | struct Bounty
  type ChestLooted (line 862) | struct ChestLooted
  type CriticalHitEvent (line 866) | struct CriticalHitEvent
  type CustomMarkerUpdate (line 870) | struct CustomMarkerUpdate
  type DaysJailed (line 874) | struct DaysJailed
  type EnteredUnity (line 878) | struct EnteredUnity
  type FinePaid (line 882) | struct FinePaid
  type ItemCrafted (line 886) | struct ItemCrafted
  type ItemSteal (line 890) | struct ItemSteal
  type JailEscape (line 894) | struct JailEscape
  type Jailing (line 898) | struct Jailing
  type LevelIncrease (line 902) | struct LevelIncrease
  type LocationMarkerArrayUpdate (line 906) | struct LocationMarkerArrayUpdate
  type PlayerActiveEffectChanged (line 910) | struct PlayerActiveEffectChanged
  type PlayerAmmoChanged (line 914) | struct PlayerAmmoChanged
  type PlayerCharacterQuestEvent (line 918) | struct PlayerCharacterQuestEvent
  type PlayerDifficultySettingChanged (line 922) | struct PlayerDifficultySettingChanged
  type PlayerFastTravel (line 926) | struct PlayerFastTravel
  type PlayerInDialogueChanged (line 930) | struct PlayerInDialogueChanged
  type PlayerLifeStateChanged (line 934) | struct PlayerLifeStateChanged
  type PlayerPickpocketSuccess (line 938) | struct PlayerPickpocketSuccess
  type PoisonedWeapon (line 942) | struct PoisonedWeapon
  type TerminalHacked (line 946) | struct TerminalHacked
  type TravelMarkerStateChange (line 950) | struct TravelMarkerStateChange
  type WeaponAttack (line 954) | struct WeaponAttack
  type Trespass (line 958) | struct Trespass
  type VATSEvents (line 962) | struct VATSEvents
  type VATSCommand (line 966) | struct VATSCommand {}
  type HoursPassed (line 967) | struct HoursPassed
  type MenuOpenCloseEvent (line 974) | struct MenuOpenCloseEvent
  type MenuModeChangeEvent (line 979) | struct MenuModeChangeEvent {}
  type MenuPauseChangeEvent (line 980) | struct MenuPauseChangeEvent {}
  type MenuPauseCounterChangeEvent (line 981) | struct MenuPauseCounterChangeEvent {}
  type TutorialEvent (line 982) | struct TutorialEvent {}
  type BSCursorTypeChange (line 983) | struct BSCursorTypeChange {}
  type BSCursorRotationChange (line 984) | struct BSCursorRotationChange {}
  type BIUIMenuVisiblePausedBeginEvent (line 985) | struct BIUIMenuVisiblePausedBeginEvent {}
  type BIUIMenuVisiblePausedEndEvent (line 986) | struct BIUIMenuVisiblePausedEndEvent {}
  type RadioManager (line 990) | struct RadioManager
  type XPChange (line 994) | struct XPChange
  type WeaponFiredEvent (line 1005) | struct WeaponFiredEvent
  type ActorEquipManagerEvent (line 1012) | struct ActorEquipManagerEvent
  type AttachReference (line 1017) | struct AttachReference
  function namespace (line 1023) | namespace BSTEventDetail
  type class (line 1040) | enum class
  function class (line 1071) | class BSTGlobalEvent

FILE: sfse/GameExtraData.cpp
  function BSExtraData (line 3) | BSExtraData * BaseExtraList::GetByType(BSExtraData::Type type) const

FILE: sfse/GameExtraData.h
  function u8 (line 21) | enum Type : u8
  function class (line 286) | class BaseExtraList
  function BSAutoWriteLock (line 307) | const BSAutoWriteLock l{ _extraRWLock };
  function Type (line 311) | Type a_type)

FILE: sfse/GameFormComponents.h
  function class (line 19) | class BaseFormComponent
  function class (line 35) | class TESFormRefCount : public BaseFormComponent
  function class (line 41) | class TBO_InstanceData : public BSIntrusiveRefCounted
  function class (line 64) | class BGSSnapTemplateComponent : public BaseFormComponent
  function class (line 78) | class BGSPreviewTransform : public BaseFormComponent
  function class (line 98) | class BGSMod
  function class (line 121) | class BGSObjectPlacementDefaults : public BaseFormComponent
  type alignas (line 132) | struct alignas
  type Flags (line 134) | enum Flags
  function class (line 160) | class TESActorBaseData : public BaseFormComponent
  function class (line 187) | class TESContainer : public BaseFormComponent
  function class (line 199) | class TESSpellList : public BaseFormComponent
  function class (line 208) | class PackageList
  type alignas (line 220) | struct alignas
  function class (line 231) | class TESAIForm : public BaseFormComponent
  function class (line 239) | class TESFullName : public BaseFormComponent
  function class (line 246) | class TESDescription : public BaseFormComponent
  function class (line 255) | class BGSBipedObjectForm : public BaseFormComponent
  function class (line 262) | class BGSPreloadable
  type ACTOR_VALUE_MODIFIER (line 268) | enum ACTOR_VALUE_MODIFIER
  function class (line 276) | class ActorValueOwner
  function class (line 290) | class BGSDestructibleObjectForm : public BaseFormComponent
  function class (line 297) | class BGSSkinForm : public BaseFormComponent
  function class (line 304) | class IKeywordFormBase
  function class (line 327) | class BGSAttackDataForm : public BaseFormComponent
  type PerkRankData (line 334) | struct PerkRankData
  function class (line 340) | class BGSPerkRankArray : public BaseFormComponent
  function class (line 347) | class BGSPropertySheet : public BaseFormComponent
  function class (line 354) | class TESRaceForm : public BaseFormComponent
  function class (line 361) | class BGSOverridePackCollection : public BaseFormComponent
  function class (line 368) | class BGSForcedLocRefType : public BaseFormComponent
  function class (line 376) | class BGSNativeTerminalForm : public BaseFormComponent
  function class (line 383) | class BGSAttachParentArray : public BaseFormComponent
  function class (line 391) | class TESModel : public BaseFormComponent
  function class (line 423) | class BGSModelMaterialSwap : public TESModel
  function class (line 431) | class IAnimationGraphComponent
  type FACEFX_BONESET (line 452) | struct FACEFX_BONESET
  function class (line 462) | class BoneModifierData
  function class (line 479) | class LookAtChainData : public BoneModifierData
  function class (line 485) | class MorphDriverData : public BoneModifierData
  function class (line 496) | class PoseDeformerData : public BoneModifierData
  function class (line 504) | class SpringBoneData : public BoneModifierData
  function class (line 512) | class BGSBodyPartInfo : public BaseFormComponent

FILE: sfse/GameForms.h
  function FormType (line 15) | enum class FormType : u32
  function class (line 722) | class BGSAVMData : public TESForm

FILE: sfse/GameLock.h
  function class (line 6) | class BSNonReentrantSpinLock
  function class (line 18) | class BSReadWriteLock
  function class (line 33) | class BSSpinLock
  function unlock (line 52) | static void unlock(Mutex& a_mutex) { a_mutex.unlock(); }
  function unlock (line 61) | static void unlock(Mutex& a_mutex) { a_mutex.unlock_read(); }
  function unlock (line 70) | static void unlock(Mutex& a_mutex) { a_mutex.unlock_write(); }
  function explicit (line 81) | explicit BSAutoLock(mutex_type& a_mutex) :
  function explicit (line 87) | explicit BSAutoLock(mutex_type* a_mutex) :

FILE: sfse/GameMemory.cpp
  function Heap_Free (line 10) | void Heap_Free(void* ptr)

FILE: sfse/GameMemory.h
  function class (line 5) | class ScrapHeap // Has parent classes
  function class (line 15) | class MemoryManager

FILE: sfse/GameMenu.h
  function namespace (line 10) | namespace Scaleform
  function class (line 80) | class GameMenuBase : public IMenu

FILE: sfse/GameObjects.h
  function class (line 14) | class TESObject : public TESForm
  function class (line 32) | class TESBoundObject : public TESObject
  function class (line 68) | class TESBoundAnimObject : public TESBoundObject
  type HeadPartData (line 147) | struct HeadPartData

FILE: sfse/GameReferences.h
  function class (line 14) | class TESObjectREFR : public TESForm

FILE: sfse/GameReflection.h
  function namespace (line 5) | namespace BSReflection

FILE: sfse/GameScript.h
  type ACTION_OBJECT (line 11) | struct ACTION_OBJECT
  type alignas (line 17) | struct alignas
  type ScriptVariable (line 24) | struct ScriptVariable
  type alignas (line 30) | struct alignas
  type SCRIPT_REFERENCED_OBJECT (line 41) | struct SCRIPT_REFERENCED_OBJECT
  type SCRIPT_EFFECT_DATA (line 48) | struct SCRIPT_EFFECT_DATA
  type SCRIPT_PARAMETER_DEF (line 55) | struct SCRIPT_PARAMETER_DEF
  type SCRIPT_PARAMETER (line 63) | struct SCRIPT_PARAMETER
  type SCRIPT_OPERATOR (line 70) | struct SCRIPT_OPERATOR
  type ScriptLocals (line 78) | struct ScriptLocals
  function class (line 90) | class Script

FILE: sfse/GameSettings.cpp
  function u32 (line 8) | u32 Setting::GetType(void) const
  function Setting (line 59) | Setting* INISettingCollection::GetSetting(const char* name)

FILE: sfse/GameSettings.h
  function class (line 8) | class Setting
  function class (line 96) | class INISettingCollection : public SettingCollectionList<Setting>
  function class (line 104) | class INIPrefSettingCollection : public INISettingCollection
  function class (line 110) | class RegSettingCollection : public SettingCollectionList<Setting>
  function class (line 116) | class GameSettingCollection : public SettingCollectionMap<Setting>

FILE: sfse/GameStreams.h
  function namespace (line 6) | namespace BSResource
  function class (line 50) | class NiBinaryStream
  function class (line 85) | class BSResourceNiBinaryStream : public NiBinaryStream
  function virtual (line 90) | virtual ~BSResourceNiBinaryStream() { Destroy(); }
  function virtual (line 91) | virtual operator bool() override { return spStream != nullptr; }
  function virtual (line 92) | virtual void Seek(s64 iNumBytes) override { Seek_Impl(iNumBytes); }
  function virtual (line 95) | virtual u64 DoRead(void* apBuffer, u64 auiBytes) override { return DoRea...
  function virtual (line 96) | virtual u64 DoWrite(const void* apBuffer, u64 auiBytes) override { retur...

FILE: sfse/GameTypes.h
  type Node (line 19) | struct Node
  type IAllocatorFunctor (line 55) | struct IAllocatorFunctor
  function size_type (line 66) | [[nodiscard]] size_type size() const noexcept { return uiSize; }
  function set_capacity (line 68) | void set_capacity(size_type a_capacity, size_type) noexcept { uiAllocSiz...
  function class (line 78) | class BSTArrayHeapAllocator
  function class (line 85) | class BSScrapArrayAllocator
  function iterator (line 110) | [[nodiscard]] iterator begin() noexcept { return pData; }
  function iterator (line 111) | [[nodiscard]] iterator end() noexcept { return begin() + uiSize; }
  function reference (line 112) | [[nodiscard]] reference front() noexcept { return *begin(); }
  function reference (line 113) | [[nodiscard]] reference back() noexcept { return *std::prev(end()); }
  function const_iterator (line 114) | [[nodiscard]] const_iterator cbegin() const noexcept { return pData; }
  function size_type (line 116) | [[nodiscard]] size_type max_size() const noexcept { return (std::numeric...
  function clear (line 119) | void clear() { erase(begin(), end()); }
  function noexcept (line 120) | const noexcept { return pData[i]; }
  function push_back (line 121) | void push_back(value_type&& x) { emplace_back(std::move(x)); }
  function reference (line 122) | reference operator[](size_type n) { return pData[n]; }
  function const_reference (line 123) | const_reference operator[](size_type n) const { return pData[n]; }
  function iterator (line 174) | iterator erase(const_iterator a_first, const_iterator a_last)
  function iterator (line 189) | iterator erase(const_iterator a_pos)
  function pop_back (line 200) | void pop_back() { erase(std::prev(end())); }
  function resize (line 202) | void resize(size_type a_count) { resize_impl(a_count, nullptr); }
  function resize (line 203) | void resize(size_type a_count, const value_type& a_value) { resize_impl(...
  function swap (line 205) | void swap(BSTArray& a_rhs)
  function reserve_auto (line 220) | void reserve_auto(size_type a_capacity)
  function reserve_exact (line 228) | void reserve_exact(size_type a_capacity)
  function resize_impl (line 245) | void resize_impl(size_type a_count, const value_type* a_value)
  function namespace (line 298) | namespace BSStringPool
  function class (line 346) | class BSFixedString
  function BSFixedString (line 398) | static BSFixedString& Empty()
  function class (line 407) | class BSFixedStringW
  function wchar_t (line 456) | const wchar_t* c_str() const { return pData ? pData->GetStringC<wchar_t>...
  function class (line 462) | class BSFixedStringWCS : public BSFixedStringW
  function class (line 474) | class BSFixedStringCS : public BSFixedString
  function class (line 486) | class BGSLocalizedStringDL
  type BSIntrusiveRefCounted (line 493) | struct BSIntrusiveRefCounted
  type BSCRC32 (line 500) | struct BSCRC32
  function namespace (line 516) | namespace BSHash
  function key_type (line 660) | const key_type& operator()(const value_type& a_value) const
  function deallocate (line 705) | void deallocate(entry_type* a_ptr)
  type BSTScatterTableParent1 (line 722) | struct BSTScatterTableParent1
  type BSTScatterTableParent2 (line 730) | struct BSTScatterTableParent2
  type U (line 781) | typedef U value_type;
  type U (line 782) | typedef U* pointer;
  type U (line 783) | typedef U& reference;
  type std (line 784) | typedef std::forward_iterator_tag iterator_category;
  function swap (line 825) | void swap(iterator_base& a_rhs)
  function reference (line 830) | reference operator*() const
  function pointer (line 835) | pointer operator->() const
  function comp_key (line 884) | bool comp_key(const key_type& a_lhs, const key_type& a_rhs) const
  function iterator (line 889) | iterator begin()
  function iterator (line 906) | iterator end()
  function size_type (line 965) | size_type erase(const key_type& a_key)
  function iterator (line 1002) | iterator find(const key_type& a_key)
  function const_iterator (line 1009) | const_iterator find(const key_type& a_key) const
  function reserve (line 1015) | void reserve(size_type a_count)
  function clear (line 1031) | void clear()
  function clear_entries (line 1049) | void clear_entries(u64 start, u64 end)
  function grow (line 1063) | bool grow(u32 a_newCapacity)
  function calc_hash (line 1093) | size_t calc_hash(const key_type& a_key) const
  function u64 (line 1098) | u64 calc_idx(const key_type& a_key) const
  function entry_type (line 1103) | entry_type* find_impl(const key_type& a_key) const
  function entry_type (line 1183) | entry_type* get_pos(u64 index) const
  function entry_type (line 1188) | entry_type* calc_pos(const key_type& a_key) const
  function entry_type (line 1193) | entry_type* get_free_entry()
  function key_type (line 1204) | const key_type& get_key(const value_type& a_value) const
  function iterator (line 1210) | iterator make_iterator(entry_type* a_entry)
  function const_iterator (line 1215) | const_iterator make_iterator(entry_type* a_entry) const
  function deallocate (line 1224) | void deallocate(entry_type* a_ptr)
  function entry_type (line 1228) | entry_type* get_entries() const
  function set_entries (line 1232) | void set_entries(entry_type* a_entries)

FILE: sfse/GameUI.h
  function class (line 15) | class UICellRenderer : public BSIntrusiveRefCounted
  function class (line 32) | class MenuPaperDoll : public UICellRenderer
  function class (line 53) | class IDataModel
  function class (line 65) | class BSInputEventUser
  function class (line 85) | class BSInputEventReceiver
  function UI (line 120) | static UI* GetSingleton()

FILE: sfse/Hooks_Command.cpp
  type TaskInterface (line 17) | namespace TaskInterface
    function Command_Process_Hook (line 23) | bool Command_Process_Hook(void* __this)
    function addTask (line 45) | void addTask(SFSETaskInterface::ITaskDelegate* task)
    function addTaskPermanent (line 51) | void addTaskPermanent(SFSETaskInterface::ITaskDelegate* task)
  function Hooks_Command_Apply (line 58) | void Hooks_Command_Apply()

FILE: sfse/Hooks_Command.h
  function namespace (line 5) | namespace TaskInterface

FILE: sfse/Hooks_Data.cpp
  function Hook_GameData_Loaded (line 16) | void Hook_GameData_Loaded(uint32_t a)
  function Hooks_Data_Apply (line 87) | void Hooks_Data_Apply()

FILE: sfse/Hooks_Scaleform.cpp
  function RegisterMenuPlugin (line 33) | void RegisterMenuPlugin(SFSEMenuInterface::MenuMovieCreatedCallback call...
  function RegisterManagerPlugin (line 39) | void RegisterManagerPlugin(SFSEMenuInterface::ScaleformManagerCreatedCal...
  function IMenu_LoadMovie_Hook (line 45) | bool IMenu_LoadMovie_Hook(IMenu* menu, bool addEventDispatcher, bool unk2)
  class SFSEScaleformLogger (line 57) | class SFSEScaleformLogger : public Scaleform::Log
    method LogMessageVarg (line 60) | virtual void LogMessageVarg(Scaleform::LogMessageId messageId, const c...
  function BSScaleformManager (line 77) | BSScaleformManager* BSScaleformManager_ctor_Hook(BSScaleformManager* __t...
  function Hooks_Scaleform_Apply (line 93) | void Hooks_Scaleform_Apply()

FILE: sfse/Hooks_Script.cpp
  function Test_Execute (line 19) | bool Test_Execute(const SCRIPT_PARAMETER* paramInfo, const char*, TESObj...
  function GetSFSEVersion_Execute (line 62) | bool GetSFSEVersion_Execute(const SCRIPT_PARAMETER* paramInfo, const cha...
  function ConsoleCommandInit_Hook (line 77) | void ConsoleCommandInit_Hook(void* unk1)
  function Hooks_Script_Apply (line 118) | void Hooks_Script_Apply()

FILE: sfse/Hooks_Serialization.cpp
  class BGSSaveLoadGame (line 12) | class BGSSaveLoadGame
  class BGSSaveLoadManager (line 13) | class BGSSaveLoadManager
  function SaveGame_Hook (line 35) | void SaveGame_Hook(BGSSaveLoadGame* a_this, void* a_unk1, void* a_unk2, ...
  function LoadGame_Hook (line 46) | bool LoadGame_Hook(BGSSaveLoadGame* a_this, const char* a_name, void* a_...
  function DeleteSaveFile_Hook (line 60) | bool DeleteSaveFile_Hook(const char* a_filePath)
  function VM_SaveGame_Hook (line 74) | bool VM_SaveGame_Hook(void* a_this, void* a_storage, void* a_handleReade...
  function VM_LoadGame_Hook (line 81) | bool VM_LoadGame_Hook(void* a_this, void* a_storage, void* a_handleReade...
  function Hooks_Serialization_Apply (line 88) | void Hooks_Serialization_Apply()

FILE: sfse/Hooks_Version.cpp
  function Hooks_Version_Apply (line 16) | void Hooks_Version_Apply()

FILE: sfse/NiExtraData.h
  function class (line 6) | class NiExtraData : public NiObject
  function class (line 12) | class BSTransformExtra : public NiExtraData

FILE: sfse/NiObject.h
  function class (line 16) | class NiRefObject
  function class (line 44) | class NiObject : public NiRefObject
  function class (line 101) | class NiObjectNET : public NiObject
  type NiUpdateData (line 115) | struct NiUpdateData
  type NiBound (line 150) | struct NiBound
  function class (line 160) | class NiAVObject : public NiObjectNET
  function class (line 213) | class NiNode : public NiAVObject

FILE: sfse/NiRTTI.cpp
  function NiObject (line 4) | NiObject* DoNiRTTICast(NiObject* src, const NiRTTI* typeInfo)

FILE: sfse/NiRTTI.h
  function class (line 5) | class NiRTTI

FILE: sfse/NiTypes.h
  function m_pObject (line 11) | inline NiPointer(const NiPointer& rhs) :
  function class (line 116) | class NiPoint4
  function class (line 159) | class alignas(0x10) NiMatrix3
  function scale (line 252) | float     scale{ 1.0F };  // 3C

FILE: sfse/PapyrusNativeFunctions.h
  function class (line 15) | class IFunction
  function class (line 58) | class NativeFunctionBase : public IFunction
  function class (line 161) | class NativeFunction : public NativeFunctionBase
  function virtual (line 170) | virtual ~NativeFunction()	{ CALL_MEMBER_FN(this, Impl_dtor)(); }
  function virtual (line 172) | virtual bool	HasCallback(void) override { return m_callback != 0; }

FILE: sfse/PluginAPI.h
  type std (line 5) | typedef std::uint32_t PluginHandle;
  type PluginInfo (line 11) | struct PluginInfo
  type SFSEInterface (line 38) | struct SFSEInterface
  type SFSEMessagingInterface (line 86) | struct SFSEMessagingInterface
  type SFSEMenuInterface (line 118) | struct SFSEMenuInterface
  type SFSETaskInterface (line 136) | struct SFSETaskInterface
  type SFSETrampolineInterface (line 158) | struct SFSETrampolineInterface
  type SFSEPluginVersionData (line 203) | struct SFSEPluginVersionData

FILE: sfse/PluginManager.cpp
  function PluginInfo (line 220) | const PluginInfo * PluginManager::infoByName(const char * name) const
  function u32 (line 233) | u32 PluginManager::numPlugins() const
  function PluginHandle (line 253) | PluginHandle PluginManager::lookupHandleFromName(const char * pluginName...
  function PluginHandle (line 298) | PluginHandle PluginManager::getPluginHandle(void)
  function PluginInfo (line 305) | const PluginInfo*	PluginManager::getPluginInfo(const char* name)
  type PluginCompatEntry (line 451) | struct PluginCompatEntry
  type BetterPluginName (line 610) | struct BetterPluginName
  type PluginListener (line 715) | struct PluginListener {

FILE: sfse/PluginManager.h
  function class (line 13) | class PluginManager

FILE: sfse/ScaleformFunctions.h
  function namespace (line 8) | namespace Scaleform
  function class (line 37) | class SWFToCodeFunctionHandler : public Scaleform::GFx::FunctionHandler

FILE: sfse/ScaleformLoader.h
  function namespace (line 5) | namespace Scaleform

FILE: sfse/ScaleformLog.h
  function namespace (line 6) | namespace Scaleform
  type LogConstants (line 44) | enum LogConstants
  function virtual (line 58) | virtual ~Log() { }
  function virtual (line 60) | virtual void LogMessageVarg(LogMessageId messageId, const char* fmt, va_...
  function namespace (line 63) | namespace GFx

FILE: sfse/ScaleformManager.h
  function class (line 5) | class BSScaleformManager

FILE: sfse/ScaleformMemory.cpp
  function ScaleformHeap_Free (line 10) | void ScaleformHeap_Free(void* ptr)

FILE: sfse/ScaleformMemory.h
  function namespace (line 6) | namespace Scaleform

FILE: sfse/ScaleformMovie.h
  function namespace (line 5) | namespace Scaleform

FILE: sfse/ScaleformState.h
  function namespace (line 7) | namespace Scaleform

FILE: sfse/ScaleformTranslator.h
  function namespace (line 6) | namespace Scaleform
  function namespace (line 64) | namespace BSScaleformTranslator

FILE: sfse/ScaleformTypes.h
  function namespace (line 5) | namespace Scaleform

FILE: sfse/ScaleformValue.h
  function namespace (line 5) | namespace Scaleform
  function wchar_t (line 159) | const wchar_t* GetStringW() const { return mValue.pStringW; }
  function SetUndefined (line 161) | void SetUndefined() { ChangeType(VT_Undefined); }
  function SetNull (line 162) | void SetNull() { ChangeType(VT_Null); }
  function SetBoolean (line 163) | void SetBoolean(bool v) { ChangeType(VT_Boolean); mValue.BValue = v; }
  function SetNumber (line 164) | void SetNumber(double v) { ChangeType(VT_Number); mValue.NValue = v; }
  function SetUInt (line 165) | void SetUInt(u32 v) { ChangeType(VT_UInt); mValue.UIValue = v; }
  function SetInt (line 166) | void SetInt(s32 v) { ChangeType(VT_Int); mValue.IValue = v; }
  function SetString (line 169) | void SetString(const char* p) { ChangeType(VT_String); mValue.pString = ...
  function SetStringW (line 170) | void SetStringW(const wchar_t* p) { ChangeType(VT_StringW); mValue.pStri...
  function ChangeType (line 172) | void ChangeType(ValueType type)
  function AcquireManagedValue (line 177) | void AcquireManagedValue(const Value& src)
  function ReleaseManagedValue (line 182) | void ReleaseManagedValue()
  function HasMember (line 188) | bool HasMember(const char* name) const { return pObjectInterface->HasMem...
  function GetMember (line 189) | bool GetMember(const char* name, Value* pval) const { return pObjectInte...
  function SetMember (line 190) | bool SetMember(const char* name, const Value& val) { return pObjectInter...
  function Invoke (line 191) | bool Invoke(const char* name, Value* presult, const Value* pargs, unsign...
  function VisitMembers (line 193) | void VisitMembers(ObjectVisitor* visitor) const { return pObjectInterfac...
  function GetArraySize (line 194) | unsigned int GetArraySize() { return pObjectInterface->GetArraySize(mVal...
  function SetArraySize (line 195) | bool SetArraySize(unsigned sz) { return pObjectInterface->SetArraySize(m...
  function GetElement (line 196) | bool GetElement(unsigned idx, Value* pval) const { return pObjectInterfa...
  function SetElement (line 197) | bool SetElement(unsigned idx, const Value& val) { return pObjectInterfac...
  function VisitElements (line 199) | void VisitElements(ArrayVisitor* visitor) const { VisitElements(visitor,...
  function PushBack (line 200) | bool PushBack(const Value& val) { return pObjectInterface->PushBack(mVal...
  function RemoveElement (line 203) | bool RemoveElement(unsigned idx) { return RemoveElements(idx, 1); }
  function ClearElements (line 204) | bool ClearElements() { return RemoveElements(0); }
  function SetText (line 205) | bool SetText(const char* ptext) { return pObjectInterface->SetText(mValu...
  function SetText (line 206) | bool SetText(const wchar_t* ptext) { return pObjectInterface->SetTextW(m...
  function SetTextHTML (line 207) | bool SetTextHTML(const char* phtml) { return pObjectInterface->SetText(m...
  function SetTextHTML (line 208) | bool SetTextHTML(const wchar_t* phtml) { return pObjectInterface->SetTex...
  function GetText (line 209) | bool GetText(Value* pval) const { return pObjectInterface->GetText(mValu...
  function GetTextHTML (line 210) | bool GetTextHTML(Value* pval) const { return pObjectInterface->GetText(m...
  function GotoAndPlay (line 213) | bool GotoAndPlay(const char* frame) { return pObjectInterface->GotoAndPl...
  function GotoAndStop (line 214) | bool GotoAndStop(const char* frame) { return pObjectInterface->GotoAndPl...
  function GotoAndPlay (line 215) | bool GotoAndPlay(unsigned frame) { return pObjectInterface->GotoAndPlay(...
  function GotoAndStop (line 216) | bool GotoAndStop(unsigned frame) { return pObjectInterface->GotoAndPlay(...
  function GetParent (line 217) | bool GetParent(Value* val) { return pObjectInterface->GetParent(mValue.p...

FILE: sfse/Serialization.cpp
  type Serialization (line 15) | namespace Serialization
    type IDRemapDeleteListener (line 23) | struct IDRemapDeleteListener :
      method IDRemapDeleteListener (line 27) | IDRemapDeleteListener()
      method EventResult (line 33) | virtual	EventResult	ProcessEvent(const TESFormIDRemapEvent& arEvent,...
      method EventResult (line 39) | virtual	EventResult	ProcessEvent(const TESFormDeleteEvent& arEvent, ...
    function RemoveFileExtension (line 46) | void RemoveFileExtension(std::string& path)
    function MakeSavePath (line 54) | std::string MakeSavePath(std::string name, const char* extension, bool...
    function SetSaveName (line 79) | void SetSaveName(const char* name, bool hasExtension)
    function HandleBeginLoad (line 94) | void HandleBeginLoad()
    function HandleEndLoad (line 102) | void HandleEndLoad()
    function ResolveFormId (line 108) | bool ResolveFormId(u32 formId, u32* formIdOut)
    function ResolveHandle (line 126) | bool ResolveHandle(u64 handle, u64* handleOut)
    function HandleRevertGlobalData (line 145) | void HandleRevertGlobalData()
    function HandleSaveGlobalData (line 152) | void HandleSaveGlobalData()
    function HandleLoadGlobalData (line 159) | void HandleLoadGlobalData()
    function HandleDeleteSave (line 166) | void HandleDeleteSave(std::string filePath)

FILE: sfse/Serialization.h
  function namespace (line 5) | namespace Serialization

FILE: sfse/sfse.cpp
  function __initterm_e_Hook (line 32) | int __initterm_e_Hook(_PIFV * a, _PIFV * b)
  function installBaseHooks (line 51) | void installBaseHooks(void)
  function WaitForDebugger (line 83) | void WaitForDebugger(void)
  function SFSE_Preinit (line 93) | void SFSE_Preinit()
  function SFSE_Initialize (line 137) | void SFSE_Initialize()
  function StartSFSE (line 162) | void StartSFSE()
  function BOOL (line 167) | BOOL WINAPI DllMain(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)

FILE: sfse_common/BranchTrampoline.cpp
  type TrampolineCode (line 198) | struct TrampolineCode
    method Init (line 207) | void Init(uintptr_t _dst)
  type HookCode (line 216) | struct HookCode
    method Init (line 222) | void Init(s32 _displ, u8 _op)

FILE: sfse_common/BranchTrampoline.h
  function class (line 5) | class BranchTrampoline

FILE: sfse_common/BufferStream.cpp
  function u64 (line 4) | u64 BufferStream::read(void * dst, u64 len)
  function u64 (line 12) | u64 BufferStream::write(const void * src, u64 len)

FILE: sfse_common/BufferStream.h
  function class (line 5) | class BufferStream : public DataStream

FILE: sfse_common/CoreInfo.h
  type SFSECoreVersionData (line 5) | struct SFSECoreVersionData

FILE: sfse_common/DataStream.cpp
  function copy (line 3) | void copy(DataStream * src, DataStream * dst, size_t len, void * buf, si...

FILE: sfse_common/DataStream.h
  function class (line 5) | class DataStream
  function u8 (line 30) | u8 r8() { return read <u8>(); }
  function u16 (line 31) | u16 r16() { return read <u16>(); }
  function u32 (line 32) | u32 r32() { return read <u32>(); }
  function u64 (line 33) | u64 r64() { return read <u64>(); }
  function f32 (line 34) | f32 rf32() { return read <f32>(); }
  function f64 (line 35) | f64 rf64() { return read <f64>(); }
  function w8 (line 37) | void w8(u8 d) { write <u8>(d); }
  function w16 (line 38) | void w16(u16 d) { write <u16>(d); }
  function w32 (line 39) | void w32(u32 d) { write <u32>(d); }
  function w64 (line 40) | void w64(u64 d) { write <u64>(d); }
  function wf32 (line 41) | void wf32(f32 d) { write <f32>(d); }
  function wf64 (line 42) | void wf64(f64 d) { write <f64>(d); }
  function class (line 51) | class SubStream : public DataStream

FILE: sfse_common/DirectoryIterator.h
  function class (line 6) | class DirectoryIterator

FILE: sfse_common/Errors.cpp
  function IErrors_Halt (line 7) | [[noreturn]] static void IErrors_Halt(void)
  function _AssertionFailed (line 19) | [[noreturn]] void _AssertionFailed(const char * file, unsigned long line...
  function _AssertionFailed_ErrCode (line 34) | [[noreturn]] void _AssertionFailed_ErrCode(const char * file, unsigned l...
  function _AssertionFailed_ErrCode (line 55) | [[noreturn]]void _AssertionFailed_ErrCode(const char * file, unsigned lo...

FILE: sfse_common/Errors.h
  type StaticAssertFailure (line 22) | struct StaticAssertFailure

FILE: sfse_common/FileStream.cpp
  function u64 (line 53) | u64 FileStream::seek(u64 offset)
  function u64 (line 62) | u64 FileStream::read(void * dst, u64 len)
  function u64 (line 71) | u64 FileStream::write(const void * src, u64 len)

FILE: sfse_common/FileStream.h
  function class (line 6) | class FileStream : public DataStream

FILE: sfse_common/Log.h
  function class (line 6) | class DebugLog
  function _FATALERROR (line 35) | inline void _FATALERROR(const char * fmt, ...)
  function _ERROR (line 44) | inline void _ERROR(const char * fmt, ...)
  function _WARNING (line 53) | inline void _WARNING(const char * fmt, ...)
  function _MESSAGE (line 62) | inline void _MESSAGE(const char * fmt, ...)
  function _VMESSAGE (line 71) | inline void _VMESSAGE(const char * fmt, ...)
  function _DMESSAGE (line 80) | inline void _DMESSAGE(const char * fmt, ...)

FILE: sfse_common/Relocation.h
  function class (line 5) | class RelocationManager
  function operator (line 24) | operator T *() const
  function T (line 34) | T * getPtr() const
  function T (line 39) | const T * getConst() const
  function operator (line 69) | operator T()
  type BlockConversionType (line 84) | struct BlockConversionType { }

FILE: sfse_common/SafeWrite.cpp
  function safeWriteBuf (line 5) | void safeWriteBuf(uintptr_t addr, void * data, size_t len)
  function safeWrite8 (line 14) | void safeWrite8(uintptr_t addr, u8 data)
  function safeWrite16 (line 19) | void safeWrite16(uintptr_t addr, u16 data)
  function safeWrite32 (line 24) | void safeWrite32(uintptr_t addr, u32 data)
  function safeWrite64 (line 29) | void safeWrite64(uintptr_t addr, u64 data)
  function safeWriteJump_Internal (line 34) | static bool safeWriteJump_Internal(uintptr_t src, uintptr_t dst, u8 op)
  function safeWriteJump (line 60) | bool safeWriteJump(uintptr_t src, uintptr_t dst)
  function safeWriteCall (line 65) | bool safeWriteCall(uintptr_t src, uintptr_t dst)

FILE: sfse_common/Types.h
  type u8 (line 5) | typedef unsigned __int8		u8;
  type u16 (line 6) | typedef unsigned __int16	u16;
  type u32 (line 7) | typedef unsigned __int32	u32;
  type u64 (line 8) | typedef unsigned __int64	u64;
  type s8 (line 9) | typedef signed __int8		s8;
  type s16 (line 10) | typedef signed __int16		s16;
  type s32 (line 11) | typedef signed __int32		s32;
  type s64 (line 12) | typedef signed __int64		s64;
  type f32 (line 13) | typedef float				f32;
  type f64 (line 14) | typedef double				f64;
  type u64 (line 15) | typedef u64					uint;
  type u8 (line 17) | typedef u8	unk8;
  type u16 (line 18) | typedef u16	unk16;
  type u32 (line 19) | typedef u32	unk32;
  type u64 (line 20) | typedef u64	unk64;
  function u16 (line 22) | inline u16 swap16(u16 a)
  function u32 (line 27) | inline u32 swap32(u32 a)
  function u64 (line 32) | inline u64 swap64(u64 a)

FILE: sfse_common/Utilities.cpp
  function getRuntimePath (line 7) | std::string getRuntimePath()
  function getRuntimeName (line 19) | std::string getRuntimeName()
  function getConfigOption (line 71) | std::string getConfigOption(const char * section, const char * key)
  function getConfigOption_u32 (line 89) | bool getConfigOption_u32(const char * section, const char * key, u32 * d...
  function is64BitDLL (line 201) | bool is64BitDLL(const void * module)
  type RTTIType (line 213) | struct RTTIType
  type RTTILocator (line 220) | struct RTTILocator

FILE: sfse_loader/IdentifyEXE.cpp
  function GetFileVersion (line 8) | bool GetFileVersion(const char * path, VS_FIXEDFILEINFO * info, std::str...
  function VersionStrToInt (line 68) | bool VersionStrToInt(const std::string & verStr, u64 * out)
  function GetFileVersionData (line 90) | static bool GetFileVersionData(const char * path, u64 * out, std::string...
  function DumpVersionInfo (line 109) | void DumpVersionInfo(const VS_FIXEDFILEINFO & info)
  function IMAGE_SECTION_HEADER (line 127) | const IMAGE_SECTION_HEADER * GetImageSection(const u8 * base, const char...
  function HasImportedLibrary (line 147) | bool HasImportedLibrary(const u8 * base, const char * name)
  function IsSteamImage (line 191) | static bool IsSteamImage(const u8 * base)
  function IsUPXImage (line 196) | static bool IsUPXImage(const u8 * base)
  function IsWinStoreImage (line 201) | static bool IsWinStoreImage(const u8 * base)
  function IsGOGImage (line 206) | static bool IsGOGImage(const u8 * base)
  function IsEpicImage (line 211) | static bool IsEpicImage(const u8 * base)
  function ScanEXE (line 216) | bool ScanEXE(const char * path, ProcHookInfo * hookInfo)
  function IdentifyEXE (line 283) | bool IdentifyEXE(const char * procName, bool isEditor, std::string * dll...
  function VersionCheck (line 400) | bool VersionCheck(const ProcHookInfo & procInfo, u64 RUNTIME_VERSION)

FILE: sfse_loader/IdentifyEXE.h
  function getVersionMinor (line 20) | struct ProcHookInfo
  function u16 (line 28) | u16 getVersionBuild() { return u16(version >> 16); }

FILE: sfse_loader/Inject.cpp
  function InjectDLLThread (line 11) | bool InjectDLLThread(PROCESS_INFORMATION * info, const char * dllPath, b...
  type InjectDLLThreadData (line 41) | struct InjectDLLThreadData
    method InjectDLLThreadData (line 43) | InjectDLLThreadData(uintptr_t _loadLibraryA, uintptr_t _getProcAddress...
  function DoInjectDLLThread (line 73) | static bool DoInjectDLLThread(PROCESS_INFORMATION * info, const char * d...

FILE: sfse_loader/LoaderError.cpp
  function PrintLoaderError (line 7) | void PrintLoaderError(const char * fmt, ...)

FILE: sfse_loader/Options.h
  function class (line 6) | class Options

FILE: sfse_loader/SigCheck.cpp
  class FileCertVerifier (line 20) | class FileCertVerifier
  function CheckDLLSignature (line 176) | bool CheckDLLSignature(const std::string & dllPath)

FILE: sfse_loader/main.cpp
  function main (line 17) | int main(int argc, char ** argv)

FILE: xbyak/xbyak/xbyak.h
  function namespace (line 154) | namespace Xbyak {
  function namespace (line 431) | namespace util {
  function class (line 453) | class MmapAllocator : public Allocator {
  type Allocator (line 520) | typedef Allocator MmapAllocator;
  function class (line 526) | class Operand {
  function else (line 644) | else if (isOPMASK()) {
  function else (line 647) | else if (isTMM()) {
  function else (line 652) | else if (isZMM()) {
  function else (line 658) | else if (isYMM()) {
  function else (line 664) | else if (isXMM()) {
  function else (line 670) | else if (isMMX()) {
  function else (line 673) | else if (isFPU()) {
  function else (line 676) | else if (isBNDREG()) {
  function isEqualIfNotInherited (line 682) | bool isEqualIfNotInherited(const Operand& rhs) const { return idx_ == rh...
  function operator (line 684) | bool operator!=(const Operand& rhs) const { return !operator==(rhs); }
  function Address (line 685) | const Address& getAddress() const;
  type Reg8 (line 735) | struct Reg8
  type Reg16 (line 736) | struct Reg16
  type Reg32 (line 737) | struct Reg32
  type Reg64 (line 739) | struct Reg64
  function class (line 741) | class Reg : public Operand {
  function Reg (line 765) | inline const Reg& Operand::getReg() const
  function Reg (line 775) | struct Reg16 : public Reg {
  function Reg (line 779) | struct Mmx : public Reg {
  type EvexModifierRounding (line 783) | struct EvexModifierRounding {
  function copyAndSetIdx (line 794) | struct EvexModifierZero{ XBYAK_CONSTEXPR EvexModifierZero() {}};
  function Xmm (line 801) | Xmm copyAndSetKind(Operand::Kind kind) const { Xmm ret(*this); ret.setKi...
  function Xmm (line 804) | struct Ymm : public Xmm {
  function Ymm (line 809) | struct Zmm : public Ymm {
  function Reg (line 815) | struct Tmm : public Reg {
  function Reg (line 820) | struct Opmask : public Reg {
  function Reg (line 824) | struct BoundsReg : public Reg {
  type Fpu (line 832) | struct Fpu
  type Reg32e (line 836) | struct Reg32e
  function explicit (line 837) | explicit XBYAK_CONSTEXPR Reg32e(int idx, int bit) : Reg(idx, Operand::RE...
  type Reg32 (line 839) | struct Reg32
  function Reg32e (line 843) | struct Reg64 : public Reg32e {
  type RegRip (line 846) | struct RegRip {
  function Reg8 (line 874) | inline Reg8 Reg::cvt8() const
  function class (line 898) | class Segment {
  function class (line 916) | class RegExp {
  function RegExp (line 938) | RegExp optimize() const
  function getRex (line 966) | uint8_t getRex() const
  function class (line 1021) | class CodeArray {
  function resetSize (line 1121) | void resetSize()
  function db (line 1127) | void db(int code)
  function db (line 1138) | void db(const uint8_t *code, size_t codeSize)
  function db (line 1142) | void db(uint64_t code, size_t codeSize)
  function dw (line 1147) | void dw(uint32_t code) { db(code, 2); }
  function dd (line 1148) | void dd(uint32_t code) { db(code, 4); }
  function dq (line 1149) | void dq(uint64_t code) { db(code, 8); }
  function setSize (line 1157) | void setSize(size_t size)
  function dump (line 1162) | void dump() const
  function rewrite (line 1189) | void rewrite(size_t offset, uint64_t disp, size_t size)
  function save (line 1198) | void save(size_t offset, size_t val, int size, inner::LabelMode mode)
  function protect (line 1211) | static inline bool protect(const void *addr, size_t size, int protectMode)
  function class (line 1255) | class Address : public Operand {
  function Label (line 1289) | const Label* getLabel() const { return label_; }
  function operator (line 1290) | bool operator==(const Address& rhs) const
  function operator (line 1294) | bool operator!=(const Address& rhs) const { return !operator==(rhs); }
  function Address (line 1303) | inline const Address& Operand::getAddress() const
  function class (line 1315) | class AddressFrame {
  function getId (line 1336) | struct JmpLabel {
  function incRefCount (line 1454) | void incRefCount(int id, Label *label)
  function decRefCount (line 1459) | void decRefCount(int id, Label *label)
  function resetLabelPtrList (line 1481) | void resetLabelPtrList()
  function reset (line 1497) | void reset()
  function enterLocal (line 1508) | void enterLocal()
  function leaveLocal (line 1512) | void leaveLocal()
  function set (line 1518) | void set(CodeArray *base) { base_ = base; }
  function defineSlabel (line 1519) | void defineSlabel(std::string label)
  function defineClabel (line 1539) | void defineClabel(Label& label)
  function assign (line 1545) | void assign(Label& dst, const Label& src)
  function getOffset (line 1553) | bool getOffset(size_t *offset, std::string& label) const
  function getOffset (line 1570) | bool getOffset(size_t *offset, const Label& label) const
  function addUndefinedLabel (line 1574) | void addUndefinedLabel(const std::string& label, const JmpLabel& jmp)
  function addUndefinedLabel (line 1579) | void addUndefinedLabel(const Label& label, const JmpLabel& jmp)
  function Label (line 1595) | inline Label::Label(const Label& rhs)
  function Label (line 1609) | inline Label::~Label()
  type PreferredEncoding (line 1621) | typedef enum {
  function class (line 1627) | class CodeGenerator : public CodeArray {
  function verifySAE (line 1769) | void verifySAE(const Reg& r, int type) const
  function verifyER (line 1774) | void verifyER(const Reg& r, int type) const
  function verifyDuplicate (line 1781) | int verifyDuplicate(int a, int b, int c, int err)
  function setModRM (line 1841) | void setModRM(int mod, int r1, int r2)
  function isInDisp16 (line 1908) | bool isInDisp16(uint32_t x) const { return 0xFFFF8000 <= x || x <= 0x7FF...
  function opModR (line 1909) | void opModR(const Reg& reg1, const Reg& reg2, int code0, int code1 = NON...
  function opLoadSeg (line 1922) | void opLoadSeg(const Address& addr, const Reg& reg, int code0, int code1...
  function opMIB (line 1930) | void opMIB(const Address& addr, const Reg& reg, int code0, int code1)
  function makeJmp (line 1941) | void makeJmp(uint32_t disp, LabelType type, uint8_t shortCode, uint8_t l...
  function isNEAR (line 1954) | bool isNEAR(LabelType type) const { return type == T_NEAR || (type == T_...
  function opJmpOp (line 1992) | void opJmpOp(const Operand& op, LabelType type, int ext)
  function opGen (line 2025) | void opGen(const Operand& reg, const Operand& op, int code, int pref, bo...
  function opMMX_IMM (line 2037) | void opMMX_IMM(const Mmx& mmx, int imm8, int code, int ext)
  function opMovXMM (line 2048) | void opMovXMM(const Operand& op1, const Operand& op2, int code, int pref)
  function opShift (line 2082) | void opShift(const Operand& op, int imm, int ext)
  function opShift (line 2088) | void opShift(const Operand& op, const Reg8& _cl, int ext)
  function opRM_RM (line 2110) | void opRM_RM(const Operand& op1, const Operand& op2, int code)
  function opRM_I (line 2119) | void opRM_I(const Operand& op, uint32_t imm, int code, int ext)
  function opIncDec (line 2135) | void opIncDec(const Operand& op, int code, int ext)
  function opPushPop (line 2151) | void opPushPop(const Operand& op, int code, int ext, int alt)
  function verifyMemHasSize (line 2168) | void verifyMemHasSize(const Operand& op) const
  function mov_imm (line 2175) | int mov_imm(const Reg& reg, uint64_t imm)
  function JmpLabel (line 2212) | JmpLabel jmp(size_, jmpSize, (relative ? inner::LasIs : isAutoGrow() ? i...
  function opFpuMem (line 2222) | void opFpuMem(const Address& addr, uint8_t m16, uint8_t m32, uint8_t m64...
  function opFpuFpu (line 2235) | void opFpuFpu(const Fpu& reg1, const Fpu& reg2, uint32_t code1, uint32_t...
  function opFpu (line 2242) | void opFpu(const Fpu& reg, uint8_t code1, uint8_t code2)
  function opVex (line 2246) | void opVex(const Reg& r, const Operand *p1, const Operand& op2, int type...
  function opGpr (line 2283) | void opGpr(const Reg32e& r, const Operand& op1, const Operand& op2, int ...
  function opAVX_X_X_XM (line 2293) | void opAVX_X_X_XM(const Xmm& x1, const Operand& op1, const Operand& op2,...
  function opAVX_K_X_XM (line 2305) | void opAVX_K_X_XM(const Opmask& k, const Xmm& x2, const Operand& op3, in...
  function checkCvt1 (line 2311) | void checkCvt1(const Operand& x, const Operand& op) const
  function checkCvt2 (line 2316) | void checkCvt2(const Xmm& x, const Operand& op) const
  function opCvt (line 2320) | void opCvt(const Xmm& x, const Operand& op, int type, int code)
  function opCvt2 (line 2325) | void opCvt2(const Xmm& x, const Operand& op, int type, int code)
  function opCvt3 (line 2330) | void opCvt3(const Xmm& x1, const Xmm& x2, const Operand& op, int type, i...
  function checkCvt4 (line 2338) | void checkCvt4(const Xmm& x, const Operand& op) const
  function opCvt5 (line 2343) | void opCvt5(const Xmm& x, const Operand& op, int type, int code)
  function Xmm (line 2349) | const Xmm& cvtIdx0(const Operand& x) const
  function opAVX_X_XM_IMM (line 2354) | void opAVX_X_XM_IMM(const Xmm& x, const Operand& op, int type, int code,...
  function opSp1 (line 2359) | void opSp1(const Reg& reg, const Operand& op, uint8_t pref, uint8_t code...
  function opGather (line 2367) | void opGather(const Xmm& x1, const Address& addr, const Xmm& x2, int typ...
  function checkGather2 (line 2397) | void checkGather2(const Xmm& x1, const Reg& x2, int mode) const
  function opGather2 (line 2410) | void opGather2(const Xmm& x, const Address& addr, int type, uint8_t code...
  function opVmov (line 2425) | void opVmov(const Operand& op, const Xmm& x, int type, uint8_t code, boo...
  function opGatherFetch (line 2434) | void opGatherFetch(const Address& addr, const Xmm& x, int type, uint8_t ...
  function opEncoding (line 2440) | void opEncoding(const Xmm& x1, const Xmm& x2, const Operand& op, int typ...
  function orEvexIf (line 2444) | int orEvexIf(PreferredEncoding encoding) {
  function opInOut (line 2456) | void opInOut(const Reg& a, const Reg& d, uint8_t code)
  function opInOut (line 2467) | void opInOut(const Reg& a, uint8_t code, uint8_t v)
  function opAMX (line 2479) | void opAMX(const Tmm& t1, const Address& addr, int type, int code0)
  function L (line 2542) | void L(Label& label) { labelMgr_.defineClabel(label); }
  function Label (line 2543) | Label L() { Label label; L(label); return label; }
  function inLocalLabel (line 2544) | void inLocalLabel() { labelMgr_.enterLocal(); }
  function outLocalLabel (line 2545) | void outLocalLabel() { labelMgr_.leaveLocal(); }
  function assignL (line 2552) | void assignL(Label& dst, const Label& src) { labelMgr_.assign(dst, src); }
  function putL (line 2557) | void putL(std::string label) { putL_inner(label); }
  function putL (line 2558) | void putL(const Label& label) { putL_inner(label); }
  function setDefaultJmpNEAR (line 2561) | void setDefaultJmpNEAR(bool isNear) { isDefaultJmpNEAR_ = isNear; }
  function jmp (line 2562) | void jmp(const Operand& op, LabelType type = T_AUTO) { opJmpOp(op, type,...
  function jmp (line 2563) | void jmp(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jmp (line 2564) | void jmp(const char *label, LabelType type = T_AUTO) { jmp(std::string(l...
  function jmp (line 2565) | void jmp(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jmp (line 2566) | void jmp(const void *addr, LabelType type = T_AUTO) { opJmpAbs(addr, typ...
  function call (line 2568) | void call(const Operand& op, LabelType type = T_AUTO) { opJmpOp(op, type...
  function call (line 2570) | void call(std::string label) { opJmp(label, T_NEAR, 0, 0xE8, 0); }
  function call (line 2571) | void call(const char *label) { call(std::string(label)); }
  function call (line 2572) | void call(const Label& label) { opJmp(label, T_NEAR, 0, 0xE8, 0); }
  function call (line 2578) | void call(const void *addr) { opJmpAbs(addr, T_NEAR, 0, 0xE8); }
  function test (line 2580) | void test(const Operand& op, const Reg& reg)
  function test (line 2584) | void test(const Operand& op, uint32_t imm)
  function imul (line 2596) | void imul(const Reg& reg, const Operand& op)
  function imul (line 2600) | void imul(const Reg& reg, const Operand& op, int imm)
  function push (line 2607) | void push(const Operand& op) { opPushPop(op, 0xFF, 6, 0x50); }
  function pop (line 2608) | void pop(const Operand& op) { opPushPop(op, 0x8F, 0, 0x58); }
  function push (line 2609) | void push(const AddressFrame& af, uint32_t imm)
  function push (line 2620) | void push(uint32_t imm)
  function mov (line 2628) | void mov(const Operand& reg1, const Operand& reg2)
  function mov (line 2664) | void mov(const Operand& op, uint64_t imm)
  function mov (line 2691) | void mov(const NativeReg& reg, const Label& label)
  function xchg (line 2696) | void xchg(const Operand& op1, const Operand& op2)
  function push (line 2715) | void push(const Segment& seg)
  function pop (line 2728) | void pop(const Segment& seg)
  function putSeg (line 2741) | void putSeg(const Segment& seg)
  function mov (line 2754) | void mov(const Operand& op, const Segment& seg)
  function mov (line 2758) | void mov(const Segment& seg, const Operand& op)
  function reset (line 2823) | void reset()
  function ready (line 2835) | void ready(ProtectMode mode = PROTECT_RWE)
  function readyRE (line 2844) | void readyRE() { return ready(PROTECT_RE); }
  function setDefaultEncoding (line 2858) | void setDefaultEncoding(PreferredEncoding encoding) { defaultEncoding_ =...
  function mov (line 2916) | inline void CodeGenerator::mov(const NativeReg& reg, const char *label) ...
  function namespace (line 2923) | namespace util {

FILE: xbyak/xbyak/xbyak_mnemonic.h
  function aadd (line 2) | void aadd(const Address& addr, const Reg32e &reg) { opModM(addr, reg, 0x...
  function aand (line 3) | void aand(const Address& addr, const Reg32e &reg) { db(0x66); opModM(add...
  function adc (line 4) | void adc(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x10, 2); }
  function adc (line 5) | void adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x1...
  function adcx (line 6) | void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0...
  function add (line 7) | void add(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x00, 0); }
  function add (line 8) | void add(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x0...
  function addpd (line 9) | void addpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0x6...
  function addps (line 10) | void addps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0x1...
  function addsd (line 11) | void addsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0xF...
  function addss (line 12) | void addss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0xF...
  function addsubpd (line 13) | void addsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xD0, ...
  function addsubps (line 14) | void addsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xD0, ...
  function adox (line 15) | void adox(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0...
  function aesdec (line 16) | void aesdec(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDE, 0x...
  function aesdeclast (line 17) | void aesdeclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDF...
  function aesenc (line 18) | void aesenc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDC, 0x...
  function aesenclast (line 19) | void aesenclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDD...
  function aesimc (line 20) | void aesimc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDB, 0x...
  function aeskeygenassist (line 21) | void aeskeygenassist(const Xmm& xmm, const Operand& op, uint8_t imm) { o...
  function and_ (line 22) | void and_(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x20, 4); }
  function and_ (line 23) | void and_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x...
  function andn (line 24) | void andn(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr...
  function andnpd (line 25) | void andnpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x...
  function andnps (line 26) | void andnps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x...
  function andpd (line 27) | void andpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x6...
  function andps (line 28) | void andps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x1...
  function aor (line 29) | void aor(const Address& addr, const Reg32e &reg) { db(0xF2); opModM(addr...
  function axor (line 30) | void axor(const Address& addr, const Reg32e &reg) { db(0xF3); opModM(add...
  function bextr (line 31) | void bextr(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGp...
  function blendpd (line 32) | void blendpd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op...
  function blendps (line 33) | void blendps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op...
  function blendvpd (line 34) | void blendvpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, ...
  function blendvps (line 35) | void blendvps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, ...
  function blsi (line 36) | void blsi(const Reg32e& r, const Operand& op) { opGpr(Reg32e(3, r.getBit...
  function blsmsk (line 37) | void blsmsk(const Reg32e& r, const Operand& op) { opGpr(Reg32e(2, r.getB...
  function blsr (line 38) | void blsr(const Reg32e& r, const Operand& op) { opGpr(Reg32e(1, r.getBit...
  function bnd (line 39) | void bnd() { db(0xF2); }
  function bndcl (line 40) | void bndcl(const BoundsReg& bnd, const Operand& op) { db(0xF3); opR_ModM...
  function bndcn (line 41) | void bndcn(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM...
  function bndcu (line 42) | void bndcu(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM...
  function bndldx (line 43) | void bndldx(const BoundsReg& bnd, const Address& addr) { opMIB(addr, bnd...
  function bndmk (line 44) | void bndmk(const BoundsReg& bnd, const Address& addr) { db(0xF3); opModM...
  function bndmov (line 45) | void bndmov(const Address& addr, const BoundsReg& bnd) { db(0x66); opMod...
  function bndmov (line 46) | void bndmov(const BoundsReg& bnd, const Operand& op) { db(0x66); opModRM...
  function bndstx (line 47) | void bndstx(const Address& addr, const BoundsReg& bnd) { opMIB(addr, bnd...
  function bsf (line 48) | void bsf(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(1...
  function bsr (line 49) | void bsr(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(1...
  function bswap (line 50) | void bswap(const Reg32e& reg) { opModR(Reg32(1), reg, 0x0F); }
  function bt (line 51) | void bt(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(1...
  function bt (line 52) | void bt(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 4, 0x0f...
  function btc (line 53) | void btc(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(...
  function btc (line 54) | void btc(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 7, 0x0...
  function btr (line 55) | void btr(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(...
  function btr (line 56) | void btr(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 6, 0x0...
  function bts (line 57) | void bts(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(...
  function bts (line 58) | void bts(const Operand& op, uint8_t imm) { opR_ModM(op, 16|32|64, 5, 0x0...
  function bzhi (line 59) | void bzhi(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr...
  function cbw (line 60) | void cbw() { db(0x66); db(0x98); }
  function cdq (line 61) | void cdq() { db(0x99); }
  function clc (line 62) | void clc() { db(0xF8); }
  function cld (line 63) | void cld() { db(0xFC); }
  function cldemote (line 64) | void cldemote(const Address& addr) { opMIB(addr, eax, 0x0F, 0x1C); }
  function clflush (line 65) | void clflush(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0xAE); }
  function clflushopt (line 66) | void clflushopt(const Address& addr) { db(0x66); opModM(addr, Reg32(7), ...
  function cli (line 67) | void cli() { db(0xFA); }
  function clwb (line 68) | void clwb(const Address& addr) { db(0x66); opMIB(addr, esi, 0x0F, 0xAE); }
  function clzero (line 69) | void clzero() { db(0x0F); db(0x01); db(0xFC); }
  function cmc (line 70) | void cmc() { db(0xF5); }
  function cmova (line 71) | void cmova(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovae (line 72) | void cmovae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovb (line 73) | void cmovb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovbe (line 74) | void cmovbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovc (line 75) | void cmovc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmove (line 76) | void cmove(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovg (line 77) | void cmovg(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovge (line 78) | void cmovge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovl (line 79) | void cmovl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovle (line 80) | void cmovle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovna (line 81) | void cmovna(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovnae (line 82) | void cmovnae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.is...
  function cmovnb (line 83) | void cmovnb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovnbe (line 84) | void cmovnbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.is...
  function cmovnc (line 85) | void cmovnc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovne (line 86) | void cmovne(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovng (line 87) | void cmovng(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovnge (line 88) | void cmovnge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.is...
  function cmovnl (line 89) | void cmovnl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovnle (line 90) | void cmovnle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.is...
  function cmovno (line 91) | void cmovno(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovnp (line 92) | void cmovnp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovns (line 93) | void cmovns(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovnz (line 94) | void cmovnz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovo (line 95) | void cmovo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovp (line 96) | void cmovp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovpe (line 97) | void cmovpe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovpo (line 98) | void cmovpo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isR...
  function cmovs (line 99) | void cmovs(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmovz (line 100) | void cmovz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isRE...
  function cmp (line 101) | void cmp(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x38, 7); }
  function cmp (line 102) | void cmp(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x3...
  function cmpeqpd (line 103) | void cmpeqpd(const Xmm& x, const Operand& op) { cmppd(x, op, 0); }
  function cmpeqps (line 104) | void cmpeqps(const Xmm& x, const Operand& op) { cmpps(x, op, 0); }
  function cmpeqsd (line 105) | void cmpeqsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 0); }
  function cmpeqss (line 106) | void cmpeqss(const Xmm& x, const Operand& op) { cmpss(x, op, 0); }
  function cmplepd (line 107) | void cmplepd(const Xmm& x, const Operand& op) { cmppd(x, op, 2); }
  function cmpleps (line 108) | void cmpleps(const Xmm& x, const Operand& op) { cmpps(x, op, 2); }
  function cmplesd (line 109) | void cmplesd(const Xmm& x, const Operand& op) { cmpsd(x, op, 2); }
  function cmpless (line 110) | void cmpless(const Xmm& x, const Operand& op) { cmpss(x, op, 2); }
  function cmpltpd (line 111) | void cmpltpd(const Xmm& x, const Operand& op) { cmppd(x, op, 1); }
  function cmpltps (line 112) | void cmpltps(const Xmm& x, const Operand& op) { cmpps(x, op, 1); }
  function cmpltsd (line 113) | void cmpltsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 1); }
  function cmpltss (line 114) | void cmpltss(const Xmm& x, const Operand& op) { cmpss(x, op, 1); }
  function cmpneqpd (line 115) | void cmpneqpd(const Xmm& x, const Operand& op) { cmppd(x, op, 4); }
  function cmpneqps (line 116) | void cmpneqps(const Xmm& x, const Operand& op) { cmpps(x, op, 4); }
  function cmpneqsd (line 117) | void cmpneqsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 4); }
  function cmpneqss (line 118) | void cmpneqss(const Xmm& x, const Operand& op) { cmpss(x, op, 4); }
  function cmpnlepd (line 119) | void cmpnlepd(const Xmm& x, const Operand& op) { cmppd(x, op, 6); }
  function cmpnleps (line 120) | void cmpnleps(const Xmm& x, const Operand& op) { cmpps(x, op, 6); }
  function cmpnlesd (line 121) | void cmpnlesd(const Xmm& x, const Operand& op) { cmpsd(x, op, 6); }
  function cmpnless (line 122) | void cmpnless(const Xmm& x, const Operand& op) { cmpss(x, op, 6); }
  function cmpnltpd (line 123) | void cmpnltpd(const Xmm& x, const Operand& op) { cmppd(x, op, 5); }
  function cmpnltps (line 124) | void cmpnltps(const Xmm& x, const Operand& op) { cmpps(x, op, 5); }
  function cmpnltsd (line 125) | void cmpnltsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 5); }
  function cmpnltss (line 126) | void cmpnltss(const Xmm& x, const Operand& op) { cmpss(x, op, 5); }
  function cmpordpd (line 127) | void cmpordpd(const Xmm& x, const Operand& op) { cmppd(x, op, 7); }
  function cmpordps (line 128) | void cmpordps(const Xmm& x, const Operand& op) { cmpps(x, op, 7); }
  function cmpordsd (line 129) | void cmpordsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 7); }
  function cmpordss (line 130) | void cmpordss(const Xmm& x, const Operand& op) { cmpss(x, op, 7); }
  function cmppd (line 131) | void cmppd(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm,...
  function cmpps (line 132) | void cmpps(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm,...
  function cmpsb (line 133) | void cmpsb() { db(0xA6); }
  function cmpsd (line 134) | void cmpsd() { db(0xA7); }
  function cmpsd (line 135) | void cmpsd(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm,...
  function cmpss (line 136) | void cmpss(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm,...
  function cmpsw (line 137) | void cmpsw() { db(0x66); db(0xA7); }
  function cmpunordpd (line 138) | void cmpunordpd(const Xmm& x, const Operand& op) { cmppd(x, op, 3); }
  function cmpunordps (line 139) | void cmpunordps(const Xmm& x, const Operand& op) { cmpps(x, op, 3); }
  function cmpunordsd (line 140) | void cmpunordsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 3); }
  function cmpunordss (line 141) | void cmpunordss(const Xmm& x, const Operand& op) { cmpss(x, op, 3); }
  function cmpxchg (line 142) | void cmpxchg(const Operand& op, const Reg& reg) { opModRM(reg, op, (op.i...
  function cmpxchg8b (line 143) | void cmpxchg8b(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0xC7); }
  function comisd (line 144) | void comisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2F, 0x...
  function comiss (line 145) | void comiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2F, 0x...
  function cpuid (line 146) | void cpuid() { db(0x0F); db(0xA2); }
  function crc32 (line 147) | void crc32(const Reg32e& reg, const Operand& op) { if (reg.isBit(32) && ...
  function cvtdq2pd (line 148) | void cvtdq2pd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, ...
  function cvtdq2ps (line 149) | void cvtdq2ps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, ...
  function cvtpd2dq (line 150) | void cvtpd2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, ...
  function cvtpd2pi (line 151) | void cvtpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtpd2ps (line 152) | void cvtpd2ps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, ...
  function cvtpi2pd (line 153) | void cvtpi2pd(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtpi2ps (line 154) | void cvtpi2ps(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtps2dq (line 155) | void cvtps2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, ...
  function cvtps2pd (line 156) | void cvtps2pd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, ...
  function cvtps2pi (line 157) | void cvtps2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtsd2si (line 158) | void cvtsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtsd2ss (line 159) | void cvtsd2ss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, ...
  function cvtsi2sd (line 160) | void cvtsi2sd(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtsi2ss (line 161) | void cvtsi2ss(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvtss2sd (line 162) | void cvtss2sd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, ...
  function cvtss2si (line 163) | void cvtss2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x...
  function cvttpd2dq (line 164) | void cvttpd2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6,...
  function cvttpd2pi (line 165) | void cvttpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0...
  function cvttps2dq (line 166) | void cvttps2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B,...
  function cvttps2pi (line 167) | void cvttps2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0...
  function cvttsd2si (line 168) | void cvttsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0...
  function cvttss2si (line 169) | void cvttss2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0...
  function cwd (line 170) | void cwd() { db(0x66); db(0x99); }
  function cwde (line 171) | void cwde() { db(0x98); }
  function dec (line 172) | void dec(const Operand& op) { opIncDec(op, 0x48, 1); }
  function div (line 173) | void div(const Operand& op) { opR_ModM(op, 0, 6, 0xF6); }
  function divpd (line 174) | void divpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0x6...
  function divps (line 175) | void divps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0x1...
  function divsd (line 176) | void divsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0xF...
  function divss (line 177) | void divss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0xF...
  function dppd (line 178) | void dppd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0...
  function dpps (line 179) | void dpps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0...
  function emms (line 180) | void emms() { db(0x0F); db(0x77); }
  function endbr32 (line 181) | void endbr32() { db(0xF3); db(0x0F); db(0x1E); db(0xFB); }
  function endbr64 (line 182) | void endbr64() { db(0xF3); db(0x0F); db(0x1E); db(0xFA); }
  function enter (line 183) | void enter(uint16_t x, uint8_t y) { db(0xC8); dw(x); db(y); }
  function extractps (line 184) | void extractps(const Operand& op, const Xmm& xmm, uint8_t imm) { opExt(o...
  function f2xm1 (line 185) | void f2xm1() { db(0xD9); db(0xF0); }
  function fabs (line 186) | void fabs() { db(0xD9); db(0xE1); }
  function fadd (line 187) | void fadd(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 0, 0); }
  function fadd (line 188) | void fadd(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8C0, 0xDCC0); }
  function fadd (line 189) | void fadd(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8C...
  function faddp (line 190) | void faddp() { db(0xDE); db(0xC1); }
  function faddp (line 191) | void faddp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEC0); }
  function faddp (line 192) | void faddp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x00...
  function fbld (line 193) | void fbld(const Address& addr) { opModM(addr, Reg32(4), 0xDF, 0x100); }
  function fbstp (line 194) | void fbstp(const Address& addr) { opModM(addr, Reg32(6), 0xDF, 0x100); }
  function fchs (line 195) | void fchs() { db(0xD9); db(0xE0); }
  function fclex (line 196) | void fclex() { db(0x9B); db(0xDB); db(0xE2); }
  function fcmovb (line 197) | void fcmovb(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAC0, 0x00C0); }
  function fcmovb (line 198) | void fcmovb(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD...
  function fcmovbe (line 199) | void fcmovbe(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAD0, 0x00D0); }
  function fcmovbe (line 200) | void fcmovbe(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x...
  function fcmove (line 201) | void fcmove(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAC8, 0x00C8); }
  function fcmove (line 202) | void fcmove(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD...
  function fcmovnb (line 203) | void fcmovnb(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBC0, 0x00C0); }
  function fcmovnb (line 204) | void fcmovnb(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x...
  function fcmovnbe (line 205) | void fcmovnbe(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBD0, 0x00D0); }
  function fcmovnbe (line 206) | void fcmovnbe(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0...
  function fcmovne (line 207) | void fcmovne(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBC8, 0x00C8); }
  function fcmovne (line 208) | void fcmovne(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x...
  function fcmovnu (line 209) | void fcmovnu(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBD8, 0x00D8); }
  function fcmovnu (line 210) | void fcmovnu(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x...
  function fcmovu (line 211) | void fcmovu(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAD8, 0x00D8); }
  function fcmovu (line 212) | void fcmovu(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD...
  function fcom (line 213) | void fcom() { db(0xD8); db(0xD1); }
  function fcom (line 214) | void fcom(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 2, 0); }
  function fcom (line 215) | void fcom(const Fpu& reg) { opFpu(reg, 0xD8, 0xD0); }
  function fcomi (line 216) | void fcomi(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBF0, 0x00F0); }
  function fcomi (line 217) | void fcomi(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDB...
  function fcomip (line 218) | void fcomip(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDFF0, 0x00F0); }
  function fcomip (line 219) | void fcomip(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD...
  function fcomp (line 220) | void fcomp() { db(0xD8); db(0xD9); }
  function fcomp (line 221) | void fcomp(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 3, 0); }
  function fcomp (line 222) | void fcomp(const Fpu& reg) { opFpu(reg, 0xD8, 0xD8); }
  function fcompp (line 223) | void fcompp() { db(0xDE); db(0xD9); }
  function fcos (line 224) | void fcos() { db(0xD9); db(0xFF); }
  function fdecstp (line 225) | void fdecstp() { db(0xD9); db(0xF6); }
  function fdiv (line 226) | void fdiv(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 6, 0); }
  function fdiv (line 227) | void fdiv(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8F0, 0xDCF8); }
  function fdiv (line 228) | void fdiv(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8F...
  function fdivp (line 229) | void fdivp() { db(0xDE); db(0xF9); }
  function fdivp (line 230) | void fdivp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEF8); }
  function fdivp (line 231) | void fdivp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x00...
  function fdivr (line 232) | void fdivr(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 7, 0); }
  function fdivr (line 233) | void fdivr(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8F8, 0xDCF0); }
  function fdivr (line 234) | void fdivr(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8...
  function fdivrp (line 235) | void fdivrp() { db(0xDE); db(0xF1); }
  function fdivrp (line 236) | void fdivrp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEF0); }
  function fdivrp (line 237) | void fdivrp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0...
  function ffree (line 238) | void ffree(const Fpu& reg) { opFpu(reg, 0xDD, 0xC0); }
  function fiadd (line 239) | void fiadd(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 0, 0); }
  function ficom (line 240) | void ficom(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 2, 0); }
  function ficomp (line 241) | void ficomp(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 3, 0...
  function fidiv (line 242) | void fidiv(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 6, 0); }
  function fidivr (line 243) | void fidivr(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 7, 0...
  function fild (line 244) | void fild(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDF, 0, 5); }
  function fimul (line 245) | void fimul(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 1, 0); }
  function fincstp (line 246) | void fincstp() { db(0xD9); db(0xF7); }
  function finit (line 247) | void finit() { db(0x9B); db(0xDB); db(0xE3); }
  function fist (line 248) | void fist(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0x00, 2, 0); }
  function fistp (line 249) | void fistp(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDF, 3, 7); }
  function fisttp (line 250) | void fisttp(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDD, 1, 0...
  function fisub (line 251) | void fisub(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 4, 0); }
  function fisubr (line 252) | void fisubr(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 5, 0...
  function fld (line 253) | void fld(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 0, 0); }
  function fld (line 254) | void fld(const Fpu& reg) { opFpu(reg, 0xD9, 0xC0); }
  function fld1 (line 255) | void fld1() { db(0xD9); db(0xE8); }
  function fldcw (line 256) | void fldcw(const Address& addr) { opModM(addr, Reg32(5), 0xD9, 0x100); }
  function fldenv (line 257) | void fldenv(const Address& addr) { opModM(addr, Reg32(4), 0xD9, 0x100); }
  function fldl2e (line 258) | void fldl2e() { db(0xD9); db(0xEA); }
  function fldl2t (line 259) | void fldl2t() { db(0xD9); db(0xE9); }
  function fldlg2 (line 260) | void fldlg2() { db(0xD9); db(0xEC); }
  function fldln2 (line 261) | void fldln2() { db(0xD9); db(0xED); }
  function fldpi (line 262) | void fldpi() { db(0xD9); db(0xEB); }
  function fldz (line 263) | void fldz() { db(0xD9); db(0xEE); }
  function fmul (line 264) | void fmul(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 1, 0); }
  function fmul (line 265) | void fmul(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8C8, 0xDCC8); }
  function fmul (line 266) | void fmul(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8C...
  function fmulp (line 267) | void fmulp() { db(0xDE); db(0xC9); }
  function fmulp (line 268) | void fmulp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEC8); }
  function fmulp (line 269) | void fmulp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x00...
  function fnclex (line 270) | void fnclex() { db(0xDB); db(0xE2); }
  function fninit (line 271) | void fninit() { db(0xDB); db(0xE3); }
  function fnop (line 272) | void fnop() { db(0xD9); db(0xD0); }
  function fnsave (line 273) | void fnsave(const Address& addr) { opModM(addr, Reg32(6), 0xDD, 0x100); }
  function fnstcw (line 274) | void fnstcw(const Address& addr) { opModM(addr, Reg32(7), 0xD9, 0x100); }
  function fnstenv (line 275) | void fnstenv(const Address& addr) { opModM(addr, Reg32(6), 0xD9, 0x100); }
  function fnstsw (line 276) | void fnstsw(const Address& addr) { opModM(addr, Reg32(7), 0xDD, 0x100); }
  function fnstsw (line 277) | void fnstsw(const Reg16& r) { if (r.getIdx() != Operand::AX) XBYAK_THROW...
  function fpatan (line 278) | void fpatan() { db(0xD9); db(0xF3); }
  function fprem (line 279) | void fprem() { db(0xD9); db(0xF8); }
  function fprem1 (line 280) | void fprem1() { db(0xD9); db(0xF5); }
  function fptan (line 281) | void fptan() { db(0xD9); db(0xF2); }
  function frndint (line 282) | void frndint() { db(0xD9); db(0xFC); }
  function frstor (line 283) | void frstor(const Address& addr) { opModM(addr, Reg32(4), 0xDD, 0x100); }
  function fsave (line 284) | void fsave(const Address& addr) { db(0x9B); opModM(addr, Reg32(6), 0xDD,...
  function fscale (line 285) | void fscale() { db(0xD9); db(0xFD); }
  function fsin (line 286) | void fsin() { db(0xD9); db(0xFE); }
  function fsincos (line 287) | void fsincos() { db(0xD9); db(0xFB); }
  function fsqrt (line 288) | void fsqrt() { db(0xD9); db(0xFA); }
  function fst (line 289) | void fst(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 2, 0); }
  function fst (line 290) | void fst(const Fpu& reg) { opFpu(reg, 0xDD, 0xD0); }
  function fstcw (line 291) | void fstcw(const Address& addr) { db(0x9B); opModM(addr, Reg32(7), 0xD9,...
  function fstenv (line 292) | void fstenv(const Address& addr) { db(0x9B); opModM(addr, Reg32(6), 0xD9...
  function fstp (line 293) | void fstp(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 3, 0); }
  function fstp (line 294) | void fstp(const Fpu& reg) { opFpu(reg, 0xDD, 0xD8); }
  function fstsw (line 295) | void fstsw(const Address& addr) { db(0x9B); opModM(addr, Reg32(7), 0xDD,...
  function fstsw (line 296) | void fstsw(const Reg16& r) { if (r.getIdx() != Operand::AX) XBYAK_THROW(...
  function fsub (line 297) | void fsub(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 4, 0); }
  function fsub (line 298) | void fsub(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8E0, 0xDCE8); }
  function fsub (line 299) | void fsub(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8E...
  function fsubp (line 300) | void fsubp() { db(0xDE); db(0xE9); }
  function fsubp (line 301) | void fsubp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEE8); }
  function fsubp (line 302) | void fsubp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x00...
  function fsubr (line 303) | void fsubr(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 5, 0); }
  function fsubr (line 304) | void fsubr(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8E8, 0xDCE0); }
  function fsubr (line 305) | void fsubr(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8...
  function fsubrp (line 306) | void fsubrp() { db(0xDE); db(0xE1); }
  function fsubrp (line 307) | void fsubrp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEE0); }
  function fsubrp (line 308) | void fsubrp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0...
  function ftst (line 309) | void ftst() { db(0xD9); db(0xE4); }
  function fucom (line 310) | void fucom() { db(0xDD); db(0xE1); }
  function fucom (line 311) | void fucom(const Fpu& reg) { opFpu(reg, 0xDD, 0xE0); }
  function fucomi (line 312) | void fucomi(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBE8, 0x00E8); }
  function fucomi (line 313) | void fucomi(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD...
  function fucomip (line 314) | void fucomip(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDFE8, 0x00E8); }
  function fucomip (line 315) | void fucomip(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x...
  function fucomp (line 316) | void fucomp() { db(0xDD); db(0xE9); }
  function fucomp (line 317) | void fucomp(const Fpu& reg) { opFpu(reg, 0xDD, 0xE8); }
  function fucompp (line 318) | void fucompp() { db(0xDA); db(0xE9); }
  function fwait (line 319) | void fwait() { db(0x9B); }
  function fxam (line 320) | void fxam() { db(0xD9); db(0xE5); }
  function fxch (line 321) | void fxch() { db(0xD9); db(0xC9); }
  function fxch (line 322) | void fxch(const Fpu& reg) { opFpu(reg, 0xD9, 0xC8); }
  function fxrstor (line 323) | void fxrstor(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0xAE); }
  function fxtract (line 324) | void fxtract() { db(0xD9); db(0xF4); }
  function fyl2x (line 325) | void fyl2x() { db(0xD9); db(0xF1); }
  function fyl2xp1 (line 326) | void fyl2xp1() { db(0xD9); db(0xF9); }
  function gf2p8affineinvqb (line 327) | void gf2p8affineinvqb(const Xmm& xmm, const Operand& op, int imm) { opGe...
  function gf2p8affineqb (line 328) | void gf2p8affineqb(const Xmm& xmm, const Operand& op, int imm) { opGen(x...
  function gf2p8mulb (line 329) | void gf2p8mulb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCF,...
  function haddpd (line 330) | void haddpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0x...
  function haddps (line 331) | void haddps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0x...
  function hlt (line 332) | void hlt() { db(0xF4); }
  function hsubpd (line 333) | void hsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0x...
  function hsubps (line 334) | void hsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0x...
  function idiv (line 335) | void idiv(const Operand& op) { opR_ModM(op, 0, 7, 0xF6); }
  function imul (line 336) | void imul(const Operand& op) { opR_ModM(op, 0, 5, 0xF6); }
  function in_ (line 337) | void in_(const Reg& a, const Reg& d) { opInOut(a, d, 0xEC); }
  function in_ (line 338) | void in_(const Reg& a, uint8_t v) { opInOut(a, 0xE4, v); }
  function inc (line 339) | void inc(const Operand& op) { opIncDec(op, 0x40, 0); }
  function insertps (line 340) | void insertps(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xm...
  function int3 (line 341) | void int3() { db(0xCC); }
  function int_ (line 342) | void int_(uint8_t x) { db(0xCD); db(x); }
  function ja (line 343) | void ja(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function ja (line 344) | void ja(const char *label, LabelType type = T_AUTO) { ja(std::string(lab...
  function ja (line 345) | void ja(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }
  function ja (line 346) | void ja(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jae (line 347) | void jae(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jae (line 348) | void jae(const char *label, LabelType type = T_AUTO) { jae(std::string(l...
  function jae (line 349) | void jae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }
  function jae (line 350) | void jae(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jb (line 351) | void jb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jb (line 352) | void jb(const char *label, LabelType type = T_AUTO) { jb(std::string(lab...
  function jb (line 353) | void jb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }
  function jb (line 354) | void jb(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jbe (line 355) | void jbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jbe (line 356) | void jbe(const char *label, LabelType type = T_AUTO) { jbe(std::string(l...
  function jbe (line 357) | void jbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }
  function jbe (line 358) | void jbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jc (line 359) | void jc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jc (line 360) | void jc(const char *label, LabelType type = T_AUTO) { jc(std::string(lab...
  function jc (line 361) | void jc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }
  function jc (line 362) | void jc(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function je (line 363) | void je(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function je (line 364) | void je(const char *label, LabelType type = T_AUTO) { je(std::string(lab...
  function je (line 365) | void je(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }
  function je (line 366) | void je(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jg (line 367) | void jg(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jg (line 368) | void jg(const char *label, LabelType type = T_AUTO) { jg(std::string(lab...
  function jg (line 369) | void jg(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }
  function jg (line 370) | void jg(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jge (line 371) | void jge(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jge (line 372) | void jge(const char *label, LabelType type = T_AUTO) { jge(std::string(l...
  function jge (line 373) | void jge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }
  function jge (line 374) | void jge(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jl (line 375) | void jl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jl (line 376) | void jl(const char *label, LabelType type = T_AUTO) { jl(std::string(lab...
  function jl (line 377) | void jl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }
  function jl (line 378) | void jl(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jle (line 379) | void jle(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jle (line 380) | void jle(const char *label, LabelType type = T_AUTO) { jle(std::string(l...
  function jle (line 381) | void jle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }
  function jle (line 382) | void jle(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jna (line 383) | void jna(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jna (line 384) | void jna(const char *label, LabelType type = T_AUTO) { jna(std::string(l...
  function jna (line 385) | void jna(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }
  function jna (line 386) | void jna(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jnae (line 387) | void jnae(const Label& label, LabelType type = T_AUTO) { opJmp(label, ty...
  function jnae (line 388) | void jnae(const char *label, LabelType type = T_AUTO) { jnae(std::string...
  function jnae (line 389) | void jnae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }
  function jnae (line 390) | void jnae(std::string label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnb (line 391) | void jnb(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnb (line 392) | void jnb(const char *label, LabelType type = T_AUTO) { jnb(std::string(l...
  function jnb (line 393) | void jnb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }
  function jnb (line 394) | void jnb(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jnbe (line 395) | void jnbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, ty...
  function jnbe (line 396) | void jnbe(const char *label, LabelType type = T_AUTO) { jnbe(std::string...
  function jnbe (line 397) | void jnbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }
  function jnbe (line 398) | void jnbe(std::string label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnc (line 399) | void jnc(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnc (line 400) | void jnc(const char *label, LabelType type = T_AUTO) { jnc(std::string(l...
  function jnc (line 401) | void jnc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }
  function jnc (line 402) | void jnc(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jne (line 403) | void jne(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jne (line 404) | void jne(const char *label, LabelType type = T_AUTO) { jne(std::string(l...
  function jne (line 405) | void jne(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }
  function jne (line 406) | void jne(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jng (line 407) | void jng(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jng (line 408) | void jng(const char *label, LabelType type = T_AUTO) { jng(std::string(l...
  function jng (line 409) | void jng(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }
  function jng (line 410) | void jng(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jnge (line 411) | void jnge(const Label& label, LabelType type = T_AUTO) { opJmp(label, ty...
  function jnge (line 412) | void jnge(const char *label, LabelType type = T_AUTO) { jnge(std::string...
  function jnge (line 413) | void jnge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }
  function jnge (line 414) | void jnge(std::string label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnl (line 415) | void jnl(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnl (line 416) | void jnl(const char *label, LabelType type = T_AUTO) { jnl(std::string(l...
  function jnl (line 417) | void jnl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }
  function jnl (line 418) | void jnl(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jnle (line 419) | void jnle(const Label& label, LabelType type = T_AUTO) { opJmp(label, ty...
  function jnle (line 420) | void jnle(const char *label, LabelType type = T_AUTO) { jnle(std::string...
  function jnle (line 421) | void jnle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }
  function jnle (line 422) | void jnle(std::string label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jno (line 423) | void jno(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jno (line 424) | void jno(const char *label, LabelType type = T_AUTO) { jno(std::string(l...
  function jno (line 425) | void jno(const void *addr) { opJmpAbs(addr, T_NEAR, 0x71, 0x81, 0x0F); }
  function jno (line 426) | void jno(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jnp (line 427) | void jnp(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnp (line 428) | void jnp(const char *label, LabelType type = T_AUTO) { jnp(std::string(l...
  function jnp (line 429) | void jnp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }
  function jnp (line 430) | void jnp(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jns (line 431) | void jns(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jns (line 432) | void jns(const char *label, LabelType type = T_AUTO) { jns(std::string(l...
  function jns (line 433) | void jns(const void *addr) { opJmpAbs(addr, T_NEAR, 0x79, 0x89, 0x0F); }
  function jns (line 434) | void jns(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jnz (line 435) | void jnz(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jnz (line 436) | void jnz(const char *label, LabelType type = T_AUTO) { jnz(std::string(l...
  function jnz (line 437) | void jnz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }
  function jnz (line 438) | void jnz(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jo (line 439) | void jo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jo (line 440) | void jo(const char *label, LabelType type = T_AUTO) { jo(std::string(lab...
  function jo (line 441) | void jo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x70, 0x80, 0x0F); }
  function jo (line 442) | void jo(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jp (line 443) | void jp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jp (line 444) | void jp(const char *label, LabelType type = T_AUTO) { jp(std::string(lab...
  function jp (line 445) | void jp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }
  function jp (line 446) | void jp(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jpe (line 447) | void jpe(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jpe (line 448) | void jpe(const char *label, LabelType type = T_AUTO) { jpe(std::string(l...
  function jpe (line 449) | void jpe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }
  function jpe (line 450) | void jpe(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function jpo (line 451) | void jpo(const Label& label, LabelType type = T_AUTO) { opJmp(label, typ...
  function jpo (line 452) | void jpo(const char *label, LabelType type = T_AUTO) { jpo(std::string(l...
  function jpo (line 453) | void jpo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }
  function jpo (line 454) | void jpo(std::string label, LabelType type = T_AUTO) { opJmp(label, type...
  function js (line 455) | void js(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function js (line 456) | void js(const char *label, LabelType type = T_AUTO) { js(std::string(lab...
  function js (line 457) | void js(const void *addr) { opJmpAbs(addr, T_NEAR, 0x78, 0x88, 0x0F); }
  function js (line 458) | void js(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function jz (line 459) | void jz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type...
  function jz (line 460) | void jz(const char *label, LabelType type = T_AUTO) { jz(std::string(lab...
  function jz (line 461) | void jz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }
  function jz (line 462) | void jz(std::string label, LabelType type = T_AUTO) { opJmp(label, type,...
  function lahf (line 463) | void lahf() { db(0x9F); }
  function lddqu (line 464) | void lddqu(const Xmm& xmm, const Address& addr) { db(0xF2); opModM(addr,...
  function ldmxcsr (line 465) | void ldmxcsr(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0xAE); }
  function lea (line 466) | void lea(const Reg& reg, const Address& addr) { if (!reg.isBit(16 | i32e...
  function leave (line 467) | void leave() { db(0xC9); }
  function lfence (line 468) | void lfence() { db(0x0F); db(0xAE); db(0xE8); }
  function lfs (line 469) | void lfs(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0x0...
  function lgs (line 470) | void lgs(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0x0...
  function lock (line 471) | void lock() { db(0xF0); }
  function lodsb (line 472) | void lodsb() { db(0xAC); }
  function lodsd (line 473) | void lodsd() { db(0xAD); }
  function lodsw (line 474) | void lodsw() { db(0x66); db(0xAD); }
  function loop (line 475) | void loop(const Label& label) { opJmp(label, T_SHORT, 0xE2, 0, 0); }
  function loop (line 476) | void loop(const char *label) { loop(std::string(label)); }
  function loop (line 477) | void loop(std::string label) { opJmp(label, T_SHORT, 0xE2, 0, 0); }
  function loope (line 478) | void loope(const Label& label) { opJmp(label, T_SHORT, 0xE1, 0, 0); }
  function loope (line 479) | void loope(const char *label) { loope(std::string(label)); }
  function loope (line 480) | void loope(std::string label) { opJmp(label, T_SHORT, 0xE1, 0, 0); }
  function loopne (line 481) | void loopne(const Label& label) { opJmp(label, T_SHORT, 0xE0, 0, 0); }
  function loopne (line 482) | void loopne(const char *label) { loopne(std::string(label)); }
  function loopne (line 483) | void loopne(std::string label) { opJmp(label, T_SHORT, 0xE0, 0, 0); }
  function lss (line 484) | void lss(const Reg& reg, const Address& addr) { opLoadSeg(addr, reg, 0x0...
  function lzcnt (line 485) | void lzcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F...
  function maskmovdqu (line 486) | void maskmovdqu(const Xmm& reg1, const Xmm& reg2) { db(0x66);  opModR(re...
  function maskmovq (line 487) | void maskmovq(const Mmx& reg1, const Mmx& reg2) { if (!reg1.isMMX() || !...
  function maxpd (line 488) | void maxpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0x6...
  function maxps (line 489) | void maxps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0x1...
  function maxsd (line 490) | void maxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0xF...
  function maxss (line 491) | void maxss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0xF...
  function mfence (line 492) | void mfence() { db(0x0F); db(0xAE); db(0xF0); }
  function minpd (line 493) | void minpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0x6...
  function minps (line 494) | void minps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0x1...
  function minsd (line 495) | void minsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0xF...
  function minss (line 496) | void minss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0xF...
  function monitor (line 497) | void monitor() { db(0x0F); db(0x01); db(0xC8); }
  function monitorx (line 498) | void monitorx() { db(0x0F); db(0x01); db(0xFA); }
  function movapd (line 499) | void movapd(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr...
  function movapd (line 500) | void movapd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x28, 0x...
  function movaps (line 501) | void movaps(const Address& addr, const Xmm& xmm) { opModM(addr, xmm, 0x0...
  function movaps (line 502) | void movaps(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x28, 0x...
  function movbe (line 503) | void movbe(const Address& addr, const Reg& reg) { opModM(addr, reg, 0x0F...
  function movbe (line 504) | void movbe(const Reg& reg, const Address& addr) { opModM(addr, reg, 0x0F...
  function movd (line 505) | void movd(const Address& addr, const Mmx& mmx) { if (mmx.isXMM()) db(0x6...
  function movd (line 506) | void movd(const Mmx& mmx, const Address& addr) { if (mmx.isXMM()) db(0x6...
  function movd (line 507) | void movd(const Mmx& mmx, const Reg32& reg) { if (mmx.isXMM()) db(0x66);...
  function movd (line 508) | void movd(const Reg32& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66);...
  function movddup (line 509) | void movddup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, 0...
  function movdir64b (line 510) | void movdir64b(const Reg& reg, const Address& addr) { db(0x66); opModM(a...
  function movdiri (line 511) | void movdiri(const Address& addr, const Reg32e& reg) { opModM(addr, reg,...
  function movdq2q (line 512) | void movdq2q(const Mmx& mmx, const Xmm& xmm) { db(0xF2); opModR(mmx, xmm...
  function movdqa (line 513) | void movdqa(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr...
  function movdqa (line 514) | void movdqa(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0x...
  function movdqu (line 515) | void movdqu(const Address& addr, const Xmm& xmm) { db(0xF3); opModM(addr...
  function movdqu (line 516) | void movdqu(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0x...
  function movhlps (line 517) | void movhlps(const Xmm& reg1, const Xmm& reg2) {  opModR(reg1, reg2, 0x0...
  function movhpd (line 518) | void movhpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2,...
  function movhps (line 519) | void movhps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2,...
  function movlhps (line 520) | void movlhps(const Xmm& reg1, const Xmm& reg2) {  opModR(reg1, reg2, 0x0...
  function movlpd (line 521) | void movlpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2,...
  function movlps (line 522) | void movlps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2,...
  function movmskpd (line 523) | void movmskpd(const Reg32e& reg, const Xmm& xmm) { db(0x66); movmskps(re...
  function movmskps (line 524) | void movmskps(const Reg32e& reg, const Xmm& xmm) { opModR(reg, xmm, 0x0F...
  function movntdq (line 525) | void movntdq(const Address& addr, const Xmm& reg) { opModM(addr, Reg16(r...
  function movntdqa (line 526) | void movntdqa(const Xmm& xmm, const Address& addr) { db(0x66); opModM(ad...
  function movnti (line 527) | void movnti(const Address& addr, const Reg32e& reg) { opModM(addr, reg, ...
  function movntpd (line 528) | void movntpd(const Address& addr, const Xmm& reg) { opModM(addr, Reg16(r...
  function movntps (line 529) | void movntps(const Address& addr, const Xmm& xmm) { opModM(addr, Mmx(xmm...
  function movntq (line 530) | void movntq(const Address& addr, const Mmx& mmx) { if (!mmx.isMMX()) XBY...
  function movq (line 531) | void movq(const Address& addr, const Mmx& mmx) { if (mmx.isXMM()) db(0x6...
  function movq (line 532) | void movq(const Mmx& mmx, const Operand& op) { if (mmx.isXMM()) db(0xF3)...
  function movq2dq (line 533) | void movq2dq(const Xmm& xmm, const Mmx& mmx) { db(0xF3); opModR(xmm, mmx...
  function movsb (line 534) | void movsb() { db(0xA4); }
  function movsd (line 535) | void movsd() { db(0xA5); }
  function movsd (line 536) | void movsd(const Address& addr, const Xmm& xmm) { db(0xF2); opModM(addr,...
  function movsd (line 537) | void movsd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0xF...
  function movshdup (line 538) | void movshdup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x16, ...
  function movsldup (line 539) | void movsldup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, ...
  function movss (line 540) | void movss(const Address& addr, const Xmm& xmm) { db(0xF3); opModM(addr,...
  function movss (line 541) | void movss(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0xF...
  function movsw (line 542) | void movsw() { db(0x66); db(0xA5); }
  function movsx (line 543) | void movsx(const Reg& reg, const Operand& op) { opMovxx(reg, op, 0xBE); }
  function movupd (line 544) | void movupd(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr...
  function movupd (line 545) | void movupd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0x...
  function movups (line 546) | void movups(const Address& addr, const Xmm& xmm) { opModM(addr, xmm, 0x0...
  function movups (line 547) | void movups(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0x...
  function movzx (line 548) | void movzx(const Reg& reg, const Operand& op) { opMovxx(reg, op, 0xB6); }
  function mpsadbw (line 549) | void mpsadbw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op...
  function mul (line 550) | void mul(const Operand& op) { opR_ModM(op, 0, 4, 0xF6); }
  function mulpd (line 551) | void mulpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0x6...
  function mulps (line 552) | void mulps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0x1...
  function mulsd (line 553) | void mulsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0xF...
  function mulss (line 554) | void mulss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0xF...
  function mulx (line 555) | void mulx(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr...
  function mwait (line 556) | void mwait() { db(0x0F); db(0x01); db(0xC9); }
  function mwaitx (line 557) | void mwaitx() { db(0x0F); db(0x01); db(0xFB); }
  function neg (line 558) | void neg(const Operand& op) { opR_ModM(op, 0, 3, 0xF6); }
  function not_ (line 559) | void not_(const Operand& op) { opR_ModM(op, 0, 2, 0xF6); }
  function or_ (line 560) | void or_(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x08, 1); }
  function or_ (line 561) | void or_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x0...
  function orpd (line 562) | void orpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x56, 0x66...
  function orps (line 563) | void orps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x56, 0x10...
  function out_ (line 564) | void out_(const Reg& d, const Reg& a) { opInOut(a, d, 0xEE); }
  function out_ (line 565) | void out_(uint8_t v, const Reg& a) { opInOut(a, 0xE6, v); }
  function outsb (line 566) | void outsb() { db(0x6E); }
  function outsd (line 567) | void outsd() { db(0x6F); }
  function outsw (line 568) | void outsw() { db(0x66); db(0x6F); }
  function pabsb (line 569) | void pabsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1C, 0x6...
  function pabsd (line 570) | void pabsd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1E, 0x6...
  function pabsw (line 571) | void pabsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1D, 0x6...
  function packssdw (line 572) | void packssdw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6B); }
  function packsswb (line 573) | void packsswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x63); }
  function packusdw (line 574) | void packusdw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2B, ...
  function packuswb (line 575) | void packuswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x67); }
  function paddb (line 576) | void paddb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFC); }
  function paddd (line 577) | void paddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFE); }
  function paddq (line 578) | void paddq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD4); }
  function paddsb (line 579) | void paddsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEC); }
  function paddsw (line 580) | void paddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xED); }
  function paddusb (line 581) | void paddusb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDC); }
  function paddusw (line 582) | void paddusw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDD); }
  function paddw (line 583) | void paddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFD); }
  function palignr (line 584) | void palignr(const Mmx& mmx, const Operand& op, int imm) { opMMX(mmx, op...
  function pand (line 585) | void pand(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDB); }
  function pandn (line 586) | void pandn(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDF); }
  function pause (line 587) | void pause() { db(0xF3); db(0x90); }
  function pavgb (line 588) | void pavgb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE0); }
  function pavgw (line 589) | void pavgw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE3); }
  function pblendvb (line 590) | void pblendvb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x10, ...
  function pblendw (line 591) | void pblendw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op...
  function pclmulhqhqdq (line 592) | void pclmulhqhqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op...
  function pclmulhqlqdq (line 593) | void pclmulhqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op...
  function pclmullqhqdq (line 594) | void pclmullqhqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op...
  function pclmullqlqdq (line 595) | void pclmullqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op...
  function pclmulqdq (line 596) | void pclmulqdq(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, ...
  function pcmpeqb (line 597) | void pcmpeqb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x74); }
  function pcmpeqd (line 598) | void pcmpeqd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x76); }
  function pcmpeqq (line 599) | void pcmpeqq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x29, 0...
  function pcmpeqw (line 600) | void pcmpeqw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x75); }
  function pcmpestri (line 601) | void pcmpestri(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(x...
  function pcmpestrm (line 602) | void pcmpestrm(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(x...
  function pcmpgtb (line 603) | void pcmpgtb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x64); }
  function pcmpgtd (line 604) | void pcmpgtd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x66); }
  function pcmpgtq (line 605) | void pcmpgtq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x37, 0...
  function pcmpgtw (line 606) | void pcmpgtw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x65); }
  function pcmpistri (line 607) | void pcmpistri(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(x...
  function pcmpistrm (line 608) | void pcmpistrm(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(x...
  function pdep (line 609) | void pdep(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr...
  function pext (line 610) | void pext(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr...
  function pextrb (line 611) | void pextrb(const Operand& op, const Xmm& xmm, uint8_t imm) { opExt(op, ...
  function pextrd (line 612) | void pextrd(const Operand& op, const Xmm& xmm, uint8_t imm) { opExt(op, ...
  function pextrw (line 613) | void pextrw(const Operand& op, const Mmx& xmm, uint8_t imm) { opExt(op, ...
  function phaddd (line 614) | void phaddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x02, 0x...
  function phaddsw (line 615) | void phaddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x03, 0...
  function phaddw (line 616) | void phaddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x01, 0x...
  function phminposuw (line 617) | void phminposuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x41...
  function phsubd (line 618) | void phsubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x06, 0x...
  function phsubsw (line 619) | void phsubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x07, 0...
  function phsubw (line 620) | void phsubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x05, 0x...
  function pinsrb (line 621) | void pinsrb(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm,...
  function pinsrd (line 622) | void pinsrd(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm,...
  function pinsrw (line 623) | void pinsrw(const Mmx& mmx, const Operand& op, int imm) { if (!op.isREG(...
  function pmaddubsw (line 624) | void pmaddubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x04,...
  function pmaddwd (line 625) | void pmaddwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF5); }
  function pmaxsb (line 626) | void pmaxsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3C, 0x...
  function pmaxsd (line 627) | void pmaxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3D, 0x...
  function pmaxsw (line 628) | void pmaxsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEE); }
  function pmaxub (line 629) | void pmaxub(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDE); }
  function pmaxud (line 630) | void pmaxud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3F, 0x...
  function pmaxuw (line 631) | void pmaxuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3E, 0x...
  function pminsb (line 632) | void pminsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x38, 0x...
  function pminsd (line 633) | void pminsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x39, 0x...
  function pminsw (line 634) | void pminsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEA); }
  function pminub (line 635) | void pminub(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDA); }
  function pminud (line 636) | void pminud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3B, 0x...
  function pminuw (line 637) | void pminuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3A, 0x...
  function pmovmskb (line 638) | void pmovmskb(const Reg32e& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0...
  function pmovsxbd (line 639) | void pmovsxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x21, ...
  function pmovsxbq (line 640) | void pmovsxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x22, ...
  function pmovsxbw (line 641) | void pmovsxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x20, ...
  function pmovsxdq (line 642) | void pmovsxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x25, ...
  function pmovsxwd (line 643) | void pmovsxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x23, ...
  function pmovsxwq (line 644) | void pmovsxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x24, ...
  function pmovzxbd (line 645) | void pmovzxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x31, ...
  function pmovzxbq (line 646) | void pmovzxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x32, ...
  function pmovzxbw (line 647) | void pmovzxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x30, ...
  function pmovzxdq (line 648) | void pmovzxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x35, ...
  function pmovzxwd (line 649) | void pmovzxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x33, ...
  function pmovzxwq (line 650) | void pmovzxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x34, ...
  function pmuldq (line 651) | void pmuldq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x28, 0x...
  function pmulhrsw (line 652) | void pmulhrsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0B, ...
  function pmulhuw (line 653) | void pmulhuw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE4); }
  function pmulhw (line 654) | void pmulhw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE5); }
  function pmulld (line 655) | void pmulld(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x40, 0x...
  function pmullw (line 656) | void pmullw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD5); }
  function pmuludq (line 657) | void pmuludq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF4); }
  function popcnt (line 658) | void popcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0...
  function popf (line 659) | void popf() { db(0x9D); }
  function por (line 660) | void por(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEB); }
  function prefetchit0 (line 661) | void prefetchit0(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0x1...
  function prefetchit1 (line 662) | void prefetchit1(const Address& addr) { opModM(addr, Reg32(6), 0x0F, 0x1...
  function prefetchnta (line 663) | void prefetchnta(const Address& addr) { opModM(addr, Reg32(0), 0x0F, 0x1...
  function prefetcht0 (line 664) | void prefetcht0(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x18...
  function prefetcht1 (line 665) | void prefetcht1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x18...
  function prefetcht2 (line 666) | void prefetcht2(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0x18...
  function prefetchw (line 667) | void prefetchw(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x0D); }
  function prefetchwt1 (line 668) | void prefetchwt1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x0...
  function psadbw (line 669) | void psadbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF6); }
  function pshufb (line 670) | void pshufb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x00, 0x...
  function pshufd (line 671) | void pshufd(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mmx...
  function pshufhw (line 672) | void pshufhw(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mm...
  function pshuflw (line 673) | void pshuflw(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mm...
  function pshufw (line 674) | void pshufw(const Mmx& mmx, const Operand& op, uint8_t imm8) { opMMX(mmx...
  function psignb (line 675) | void psignb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x08, 0x...
  function psignd (line 676) | void psignd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0A, 0x...
  function psignw (line 677) | void psignw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x09, 0x...
  function pslld (line 678) | void pslld(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF2); }
  function pslld (line 679) | void pslld(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 6); }
  function pslldq (line 680) | void pslldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x73, 7); }
  function psllq (line 681) | void psllq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF3); }
  function psllq (line 682) | void psllq(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x73, 6); }
  function psllw (line 683) | void psllw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF1); }
  function psllw (line 684) | void psllw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 6); }
  function psrad (line 685) | void psrad(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE2); }
  function psrad (line 686) | void psrad(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 4); }
  function psraw (line 687) | void psraw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE1); }
  function psraw (line 688) | void psraw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 4); }
  function psrld (line 689) | void psrld(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD2); }
  function psrld (line 690) | void psrld(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 2); }
  function psrldq (line 691) | void psrldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x73, 3); }
  function psrlq (line 692) | void psrlq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD3); }
  function psrlq (line 693) | void psrlq(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x73, 2); }
  function psrlw (line 694) | void psrlw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD1); }
  function psrlw (line 695) | void psrlw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 2); }
  function psubb (line 696) | void psubb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF8); }
  function psubd (line 697) | void psubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFA); }
  function psubq (line 698) | void psubq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFB); }
  function psubsb (line 699) | void psubsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE8); }
  function psubsw (line 700) | void psubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE9); }
  function psubusb (line 701) | void psubusb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD8); }
  function psubusw (line 702) | void psubusw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD9); }
  function psubw (line 703) | void psubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF9); }
  function ptest (line 704) | void ptest(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x17, 0x6...
  function punpckhbw (line 705) | void punpckhbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x68); }
  function punpckhdq (line 706) | void punpckhdq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6A); }
  function punpckhqdq (line 707) | void punpckhqdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x6D...
  function punpckhwd (line 708) | void punpckhwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x69); }
  function punpcklbw (line 709) | void punpcklbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x60); }
  function punpckldq (line 710) | void punpckldq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x62); }
  function punpcklqdq (line 711) | void punpcklqdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x6C...
  function punpcklwd (line 712) | void punpcklwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x61); }
  function pushf (line 713) | void pushf() { db(0x9C); }
  function pxor (line 714) | void pxor(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEF); }
  function rcl (line 715) | void rcl(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 2); }
  function rcl (line 716) | void rcl(const Operand& op, int imm) { opShift(op, imm, 2); }
  function rcpps (line 717) | void rcpps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x53, 0x1...
  function rcpss (line 718) | void rcpss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x53, 0xF...
  function rcr (line 719) | void rcr(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 3); }
  function rcr (line 720) | void rcr(const Operand& op, int imm) { opShift(op, imm, 3); }
  function rdmsr (line 721) | void rdmsr() { db(0x0F); db(0x32); }
  function rdpmc (line 722) | void rdpmc() { db(0x0F); db(0x33); }
  function rdrand (line 723) | void rdrand(const Reg& r) { if (r.isBit(8)) XBYAK_THROW(ERR_BAD_SIZE_OF_...
  function rdseed (line 724) | void rdseed(const Reg& r) { if (r.isBit(8)) XBYAK_THROW(ERR_BAD_SIZE_OF_...
  function rdtsc (line 725) | void rdtsc() { db(0x0F); db(0x31); }
  function rdtscp (line 726) | void rdtscp() { db(0x0F); db(0x01); db(0xF9); }
  function rep (line 727) | void rep() { db(0xF3); }
  function repe (line 728) | void repe() { db(0xF3); }
  function repne (line 729) | void repne() { db(0xF2); }
  function repnz (line 730) | void repnz() { db(0xF2); }
  function repz (line 731) | void repz() { db(0xF3); }
  function rol (line 734) | void rol(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 0); }
  function rol (line 735) | void rol(const Operand& op, int imm) { opShift(op, imm, 0); }
  function ror (line 736) | void ror(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 1); }
  function ror (line 737) | void ror(const Operand& op, int imm) { opShift(op, imm, 1); }
  function rorx (line 738) | void rorx(const Reg32e& r, const Operand& op, uint8_t imm) { opGpr(r, op...
  function roundpd (line 739) | void roundpd(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm...
  function roundps (line 740) | void roundps(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(xmm...
  function roundsd (line 741) | void roundsd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op...
  function roundss (line 742) | void roundss(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op...
  function rsqrtps (line 743) | void rsqrtps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x52, 0...
  function rsqrtss (line 744) | void rsqrtss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x52, 0...
  function sahf (line 745) | void sahf() { db(0x9E); }
  function sal (line 746) | void sal(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 4); }
  function sal (line 747) | void sal(const Operand& op, int imm) { opShift(op, imm, 4); }
  function sar (line 748) | void sar(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 7); }
  function sar (line 749) | void sar(const Operand& op, int imm) { opShift(op, imm, 7); }
  function sarx (line 750) | void sarx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr...
  function sbb (line 751) | void sbb(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x18, 3); }
  function sbb (line 752) | void sbb(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x1...
  function scasb (line 753) | void scasb() { db(0xAE); }
  function scasd (line 754) | void scasd() { db(0xAF); }
  function scasw (line 755) | void scasw() { db(0x66); db(0xAF); }
  function serialize (line 756) | void serialize() { db(0x0F); db(0x01); db(0xE8); }
  function seta (line 757) | void seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }
  function setae (line 758) | void setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }
  function setb (line 759) | void setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }
  function setbe (line 760) | void setbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }
  function setc (line 761) | void setc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }
  function sete (line 762) | void sete(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }
  function setg (line 763) | void setg(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }
  function setge (line 764) | void setge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }
  function setl (line 765) | void setl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }
  function setle (line 766) | void setle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }
  function setna (line 767) | void setna(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }
  function setnae (line 768) | void setnae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }
  function setnb (line 769) | void setnb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }
  function setnbe (line 770) | void setnbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }
  function setnc (line 771) | void setnc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }
  function setne (line 772) | void setne(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }
  function setng (line 773) | void setng(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }
  function setnge (line 774) | void setnge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }
  function setnl (line 775) | void setnl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }
  function setnle (line 776) | void setnle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }
  function setno (line 777) | void setno(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 1); }
  function setnp (line 778) | void setnp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }
  function setns (line 779) | void setns(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 9); }
  function setnz (line 780) | void setnz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }
  function seto (line 781) | void seto(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 0); }
  function setp (line 782) | void setp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }
  function setpe (line 783) | void setpe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }
  function setpo (line 784) | void setpo(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }
  function sets (line 785) | void sets(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 8); }
  function setz (line 786) | void setz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }
  function sfence (line 787) | void sfence() { db(0x0F); db(0xAE); db(0xF8); }
  function sha1msg1 (line 788) | void sha1msg1(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC9, ...
  function sha1msg2 (line 789) | void sha1msg2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCA, ...
  function sha1nexte (line 790) | void sha1nexte(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC8,...
  function sha1rnds4 (line 791) | void sha1rnds4(const Xmm& xmm, const Operand& op, uint8_t imm) { opGen(x...
  function sha256msg1 (line 792) | void sha256msg1(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCC...
  function sha256msg2 (line 793) | void sha256msg2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCD...
  function sha256rnds2 (line 794) | void sha256rnds2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC...
  function shl (line 795) | void shl(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 4); }
  function shl (line 796) | void shl(const Operand& op, int imm) { opShift(op, imm, 4); }
  function shld (line 797) | void shld(const Operand& op, const Reg& reg, const Reg8& _cl) { opShxd(o...
  function shld (line 798) | void shld(const Operand& op, const Reg& reg, uint8_t imm) { opShxd(op, r...
  function shlx (line 799) | void shlx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr...
  function shr (line 800) | void shr(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 5); }
  function shr (line 801) | void shr(const Operand& op, int imm) { opShift(op, imm, 5); }
  function shrd (line 802) | void shrd(const Operand& op, const Reg& reg, const Reg8& _cl) { opShxd(o...
  function shrd (line 803) | void shrd(const Operand& op, const Reg& reg, uint8_t imm) { opShxd(op, r...
  function shrx (line 804) | void shrx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr...
  function shufpd (line 805) | void shufpd(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm...
  function shufps (line 806) | void shufps(const Xmm& xmm, const Operand& op, uint8_t imm8) { opGen(xmm...
  function sqrtpd (line 807) | void sqrtpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x...
  function sqrtps (line 808) | void sqrtps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x...
  function sqrtsd (line 809) | void sqrtsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x...
  function sqrtss (line 810) | void sqrtss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x...
  function stac (line 811) | void stac() { db(0x0F); db(0x01); db(0xCB); }
  function stc (line 812) | void stc() { db(0xF9); }
  function std (line 813) | void std() { db(0xFD); }
  function sti (line 814) | void sti() { db(0xFB); }
  function stmxcsr (line 815) | void stmxcsr(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0xAE); }
  function stosb (line 816) | void stosb() { db(0xAA); }
  function stosd (line 817) | void stosd() { db(0xAB); }
  function stosw (line 818) | void stosw() { db(0x66); db(0xAB); }
  function sub (line 819) | void sub(const Operand& op, uint32_t imm) { opRM_I(op, imm, 0x28, 5); }
  function sub (line 820) | void sub(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x2...
  function subpd (line 821) | void subpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0x6...
  function subps (line 822) | void subps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0x1...
  function subsd (line 823) | void subsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF...
  function subss (line 824) | void subss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF...
  function sysenter (line 825) | void sysenter() { db(0x0F); db(0x34); }
  function sysexit (line 826) | void sysexit() { db(0x0F); db(0x35); }
  function tpause (line 827) | void tpause(const Reg32& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_T...
  function tzcnt (line 828) | void tzcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F...
  function ucomisd (line 829) | void ucomisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0...
  function ucomiss (line 830) | void ucomiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0...
  function ud2 (line 831) | void ud2() { db(0x0F); db(0x0B); }
  function umonitor (line 832) | void umonitor(const Reg& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_T...
  function umwait (line 833) | void umwait(const Reg32& r) { int idx = r.getIdx(); if (idx > 7) XBYAK_T...
  function unpckhpd (line 834) | void unpckhpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, ...
  function unpckhps (line 835) | void unpckhps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, ...
  function unpcklpd (line 836) | void unpcklpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, ...
  function unpcklps (line 837) | void unpcklps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, ...
  function vaddpd (line 838) | void vaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Ope...
  function vaddps (line 839) | void vaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Ope...
  function vaddsd (line 840) | void vaddsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Ope...
  function vaddss (line 841) | void vaddss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Ope...
  function vaddsubpd (line 842) | void vaddsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = ...
  function vaddsubps (line 843) | void vaddsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = ...
  function vaesdec (line 844) | void vaesdec(const Xmm& xmm, const Operand& op1, const Operand& op2 = Op...
  function vaesdeclast (line 845) | void vaesdeclast(const Xmm& xmm, const Operand& op1, const Operand& op2 ...
  function vaesenc (line 846) | void vaesenc(const Xmm& xmm, const Operand& op1, const Operand& op2 = Op...
  function vaesenclast (line 847) | void vaesenclast(const Xmm& xmm, const Operand& op1, const Operand& op2 ...
  function vaesimc (line 848) | void vaesimc(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, ...
  function vaeskeygenassist (line 849) | void vaeskeygenassist(const Xmm& xm, const Operand& op, uint8_t imm) { o...
  function vandnpd (line 850) | void vandnpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Op...
  function vandnps (line 851) | void vandnps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Op...
  function vandpd (line 852) | void vandpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Ope...
  function vandps (line 853) | void vandps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Ope...
  function vbcstnebf162ps (line 854) | void vbcstnebf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, add...
  function vbcstnesh2ps (line 855) | void vbcstnesh2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr,...
  function vblendpd (line 856) | void vblendpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t i...
  function vblendps (line 857) | void vblendps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t i...
  function vblendvpd (line 858) | void vblendvpd(const Xmm& x1, const Xmm& x2, const Operand& op, const Xm...
  function vblendvps (line 859) | void vblendvps(const Xmm& x1, const Xmm& x2, const Operand& op, const Xm...
  function vbroadcastf128 (line 860) | void vbroadcastf128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(...
  function vbroadcasti128 (line 861) | void vbroadcasti128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(...
  function vbroadcastsd (line 862) | void vbroadcastsd(const Ymm& y, const Operand& op) { if (!op.isMEM() && ...
  function vbroadcastss (line 863) | void vbroadcastss(const Xmm& x, const Operand& op) { if (!(op.isXMM() ||...
  function vcmpeq_ospd (line 864) | void vcmpeq_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_osps (line 865) | void vcmpeq_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_ossd (line 866) | void vcmpeq_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_osss (line 867) | void vcmpeq_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_uqpd (line 868) | void vcmpeq_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_uqps (line 869) | void vcmpeq_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_uqsd (line 870) | void vcmpeq_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_uqss (line 871) | void vcmpeq_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_uspd (line 872) | void vcmpeq_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_usps (line 873) | void vcmpeq_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_ussd (line 874) | void vcmpeq_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeq_usss (line 875) | void vcmpeq_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpeqpd (line 876) | void vcmpeqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(...
  function vcmpeqps (line 877) | void vcmpeqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(...
  function vcmpeqsd (line 878) | void vcmpeqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(...
  function vcmpeqss (line 879) | void vcmpeqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(...
  function vcmpfalse_ospd (line 880) | void vcmpfalse_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { v...
  function vcmpfalse_osps (line 881) | void vcmpfalse_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { v...
  function vcmpfalse_ossd (line 882) | void vcmpfalse_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { v...
  function vcmpfalse_osss (line 883) | void vcmpfalse_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { v...
  function vcmpfalsepd (line 884) | void vcmpfalsepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpfalseps (line 885) | void vcmpfalseps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpfalsesd (line 886) | void vcmpfalsesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpfalsess (line 887) | void vcmpfalsess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpge_oqpd (line 888) | void vcmpge_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpge_oqps (line 889) | void vcmpge_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpge_oqsd (line 890) | void vcmpge_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpge_oqss (line 891) | void vcmpge_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpgepd (line 892) | void vcmpgepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(...
  function vcmpgeps (line 893) | void vcmpgeps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(...
  function vcmpgesd (line 894) | void vcmpgesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(...
  function vcmpgess (line 895) | void vcmpgess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(...
  function vcmpgt_oqpd (line 896) | void vcmpgt_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpgt_oqps (line 897) | void vcmpgt_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpgt_oqsd (line 898) | void vcmpgt_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpgt_oqss (line 899) | void vcmpgt_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpgtpd (line 900) | void vcmpgtpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(...
  function vcmpgtps (line 901) | void vcmpgtps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(...
  function vcmpgtsd (line 902) | void vcmpgtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(...
  function vcmpgtss (line 903) | void vcmpgtss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(...
  function vcmple_oqpd (line 904) | void vcmple_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmple_oqps (line 905) | void vcmple_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmple_oqsd (line 906) | void vcmple_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmple_oqss (line 907) | void vcmple_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmplepd (line 908) | void vcmplepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(...
  function vcmpleps (line 909) | void vcmpleps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(...
  function vcmplesd (line 910) | void vcmplesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(...
  function vcmpless (line 911) | void vcmpless(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(...
  function vcmplt_oqpd (line 912) | void vcmplt_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmplt_oqps (line 913) | void vcmplt_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmplt_oqsd (line 914) | void vcmplt_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmplt_oqss (line 915) | void vcmplt_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpltpd (line 916) | void vcmpltpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(...
  function vcmpltps (line 917) | void vcmpltps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(...
  function vcmpltsd (line 918) | void vcmpltsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(...
  function vcmpltss (line 919) | void vcmpltss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(...
  function vcmpneq_oqpd (line 920) | void vcmpneq_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_oqps (line 921) | void vcmpneq_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_oqsd (line 922) | void vcmpneq_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_oqss (line 923) | void vcmpneq_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_ospd (line 924) | void vcmpneq_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_osps (line 925) | void vcmpneq_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_ossd (line 926) | void vcmpneq_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_osss (line 927) | void vcmpneq_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_uspd (line 928) | void vcmpneq_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_usps (line 929) | void vcmpneq_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_ussd (line 930) | void vcmpneq_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneq_usss (line 931) | void vcmpneq_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpneqpd (line 932) | void vcmpneqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd...
  function vcmpneqps (line 933) | void vcmpneqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps...
  function vcmpneqsd (line 934) | void vcmpneqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd...
  function vcmpneqss (line 935) | void vcmpneqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss...
  function vcmpnge_uqpd (line 936) | void vcmpnge_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnge_uqps (line 937) | void vcmpnge_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnge_uqsd (line 938) | void vcmpnge_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnge_uqss (line 939) | void vcmpnge_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpngepd (line 940) | void vcmpngepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd...
  function vcmpngeps (line 941) | void vcmpngeps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps...
  function vcmpngesd (line 942) | void vcmpngesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd...
  function vcmpngess (line 943) | void vcmpngess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss...
  function vcmpngt_uqpd (line 944) | void vcmpngt_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpngt_uqps (line 945) | void vcmpngt_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpngt_uqsd (line 946) | void vcmpngt_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpngt_uqss (line 947) | void vcmpngt_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpngtpd (line 948) | void vcmpngtpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd...
  function vcmpngtps (line 949) | void vcmpngtps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps...
  function vcmpngtsd (line 950) | void vcmpngtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd...
  function vcmpngtss (line 951) | void vcmpngtss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss...
  function vcmpnle_uqpd (line 952) | void vcmpnle_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnle_uqps (line 953) | void vcmpnle_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnle_uqsd (line 954) | void vcmpnle_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnle_uqss (line 955) | void vcmpnle_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnlepd (line 956) | void vcmpnlepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd...
  function vcmpnleps (line 957) | void vcmpnleps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps...
  function vcmpnlesd (line 958) | void vcmpnlesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd...
  function vcmpnless (line 959) | void vcmpnless(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss...
  function vcmpnlt_uqpd (line 960) | void vcmpnlt_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnlt_uqps (line 961) | void vcmpnlt_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnlt_uqsd (line 962) | void vcmpnlt_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnlt_uqss (line 963) | void vcmpnlt_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcm...
  function vcmpnltpd (line 964) | void vcmpnltpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd...
  function vcmpnltps (line 965) | void vcmpnltps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps...
  function vcmpnltsd (line 966) | void vcmpnltsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd...
  function vcmpnltss (line 967) | void vcmpnltss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss...
  function vcmpord_spd (line 968) | void vcmpord_spd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpord_sps (line 969) | void vcmpord_sps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpord_ssd (line 970) | void vcmpord_ssd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpord_sss (line 971) | void vcmpord_sss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpordpd (line 972) | void vcmpordpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd...
  function vcmpordps (line 973) | void vcmpordps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps...
  function vcmpordsd (line 974) | void vcmpordsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd...
  function vcmpordss (line 975) | void vcmpordss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss...
  function vcmppd (line 976) | void vcmppd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm...
  function vcmpps (line 977) | void vcmpps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm...
  function vcmpsd (line 978) | void vcmpsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm...
  function vcmpss (line 979) | void vcmpss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8_t imm...
  function vcmptrue_uspd (line 980) | void vcmptrue_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmptrue_usps (line 981) | void vcmptrue_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmptrue_ussd (line 982) | void vcmptrue_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmptrue_usss (line 983) | void vcmptrue_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmptruepd (line 984) | void vcmptruepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpp...
  function vcmptrueps (line 985) | void vcmptrueps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpp...
  function vcmptruesd (line 986) | void vcmptruesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmps...
  function vcmptruess (line 987) | void vcmptruess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmps...
  function vcmpunord_spd (line 988) | void vcmpunord_spd(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmpunord_sps (line 989) | void vcmpunord_sps(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmpunord_ssd (line 990) | void vcmpunord_ssd(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmpunord_sss (line 991) | void vcmpunord_sss(const Xmm& x1, const Xmm& x2, const Operand& op) { vc...
  function vcmpunordpd (line 992) | void vcmpunordpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpunordps (line 993) | void vcmpunordps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpunordsd (line 994) | void vcmpunordsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcmpunordss (line 995) | void vcmpunordss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmp...
  function vcomisd (line 996) | void vcomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, ...
  function vcomiss (line 997) | void vcomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, ...
  function vcvtdq2pd (line 998) | void vcvtdq2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVe...
  function vcvtdq2ps (line 999) | void vcvtdq2ps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op...
  function vcvtneebf162ps (line 1000) | void vcvtneebf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, add...
  function vcvtneeph2ps (line 1001) | void vcvtneeph2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr,...
  function vcvtneobf162ps (line 1002) | void vcvtneobf162ps(const Xmm& x, const Address& addr) { opVex(x, 0, add...
  function vcvtneoph2ps (line 1003) | void vcvtneoph2ps(const Xmm& x, const Address& addr) { opVex(x, 0, addr,...
  function vcvtneps2bf16 (line 1004) | void vcvtneps2bf16(const Xmm& x, const Operand& op, PreferredEncoding en...
  function vcvtpd2dq (line 1005) | void vcvtpd2dq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T...
  function vcvtpd2ps (line 1006) | void vcvtpd2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T...
  function vcvtph2ps (line 1007) | void vcvtph2ps(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVe...
  function vcvtps2dq (line 1008) | void vcvtps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op...
  function vcvtps2pd (line 1009) | void vcvtps2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVe...
  function vcvtps2ph (line 101
Condensed preview — 134 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,919K chars).
[
  {
    "path": ".github/workflows/testbuild.yaml",
    "chars": 338,
    "preview": "name: testbuild\r\non: [push]\r\njobs:\r\n    run-testbuild:\r\n        runs-on: windows-latest\r\n        steps:\r\n            - u"
  },
  {
    "path": ".gitignore",
    "chars": 425,
    "preview": "# 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*"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 553,
    "preview": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\nproject(\n\tumbrella\n\tLANGUAGES CXX\n)\n\n# ---- Include g"
  },
  {
    "path": "LICENSE",
    "chars": 1195,
    "preview": "This applies to sfse/PluginAPI.h:\r\n\r\nCopyright (c) 2023 Ian Patterson\r\n\r\nPermission is hereby granted, free of charge, t"
  },
  {
    "path": "README.md",
    "chars": 452,
    "preview": "![testbuild](https://github.com/ianpatt/sfse/workflows/testbuild/badge.svg)\n## Building\n```\ngit clone https://github.com"
  },
  {
    "path": "cmake/configuration.cmake",
    "chars": 897,
    "preview": "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_"
  },
  {
    "path": "cmake/installation.cmake",
    "chars": 351,
    "preview": "option(SFSE_COPY_OUTPUT \"Copies output files to the starfield directory\" OFF)\n\nif (SFSE_COPY_OUTPUT)\n\tadd_custom_command"
  },
  {
    "path": "cmake/versioning.cmake",
    "chars": 433,
    "preview": "set(SFSE_VERSION_MAJOR 0)\nset(SFSE_VERSION_MINOR 2)\nset(SFSE_VERSION_PATCH 19)\n\nset(RUNTIME_VERSION_MAJOR 1)\nset(RUNTIME"
  },
  {
    "path": "sfse/CMakeLists.txt",
    "chars": 4277,
    "preview": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioni"
  },
  {
    "path": "sfse/GameChargen.cpp",
    "chars": 98,
    "preview": "#include \"sfse/GameChargen.h\"\r\n\r\nRelocPtr<MenuActor*> TESNPCData::g_actorCheckpoint(0x061F7618);\r\n"
  },
  {
    "path": "sfse/GameChargen.h",
    "chars": 2547,
    "preview": "#pragma once\n\n#include \"sfse/GameUI.h\"\n#include \"sfse/GameSingleton.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfs"
  },
  {
    "path": "sfse/GameConsole.cpp",
    "chars": 273,
    "preview": "#include \"sfse/GameConsole.h\"\n#include <stdarg.h>\n\nRelocPtr <ConsoleLog*> g_console(0x061E7540);\n\nvoid Console_Print(con"
  },
  {
    "path": "sfse/GameConsole.h",
    "chars": 279,
    "preview": "#pragma once\n\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n\nclass ConsoleLog\n{\npublic:\n\tDEFINE"
  },
  {
    "path": "sfse/GameData.cpp",
    "chars": 87,
    "preview": "#include \"sfse/GameData.h\"\n\nRelocPtr<MaterialDatabase> g_materialDatabase(0x05E84D88);\n"
  },
  {
    "path": "sfse/GameData.h",
    "chars": 4641,
    "preview": "#pragma once\n\n#include \"sfse/GameTypes.h\"\n#include \"sfse/GameForms.h\"\n#include \"sfse/GameEvents.h\"\n#include \"sfse/NiType"
  },
  {
    "path": "sfse/GameEvents.h",
    "chars": 76986,
    "preview": "#pragma once\n\n#include \"sfse/GameTypes.h\"\n#include \"sfse_common/Utilities.h\"\n\nclass Actor;\nstruct BGSHotloadCompletedEve"
  },
  {
    "path": "sfse/GameExtraData.cpp",
    "chars": 453,
    "preview": "#include \"sfse/GameExtraData.h\"\n\nBSExtraData * BaseExtraList::GetByType(BSExtraData::Type type) const\n{\n\tBSExtraData * r"
  },
  {
    "path": "sfse/GameExtraData.h",
    "chars": 19630,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameTypes.h\"\n#include \"sf"
  },
  {
    "path": "sfse/GameFormComponents.h",
    "chars": 11130,
    "preview": "#pragma once\n\n#include \"sfse/GameTypes.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse_common/Types.h\"\n\nclass TESOb"
  },
  {
    "path": "sfse/GameForms.cpp",
    "chars": 189,
    "preview": "#include \"sfse/GameForms.h\"\n\nRelocAddr<TESForm::_GetFormByNumericID> TESForm::GetFormByNumericID(0x005DEF30);\nRelocAddr<"
  },
  {
    "path": "sfse/GameForms.h",
    "chars": 26305,
    "preview": "#pragma once\n\n#include \"sfse/GameFormComponents.h\"\n#include \"sfse/GameReflection.h\"\n#include \"sfse/GameChargen.h\"\n#inclu"
  },
  {
    "path": "sfse/GameLock.cpp",
    "chars": 27,
    "preview": "#include \"sfse/GameLock.h\"\n"
  },
  {
    "path": "sfse/GameLock.h",
    "chars": 3494,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n\nclass BSNonReentrantSpinLock\n{\npublic:\n"
  },
  {
    "path": "sfse/GameMemory.cpp",
    "chars": 257,
    "preview": "#include \"sfse/GameMemory.h\"\n\nRelocAddr<_GetMemoryManager> GetMemoryManager(0x002B81E0);\n\nvoid* Heap_Allocate(size_t siz"
  },
  {
    "path": "sfse/GameMemory.h",
    "chars": 740,
    "preview": "#pragma once\n\n#include \"sfse_common/Utilities.h\"\n\nclass ScrapHeap // Has parent classes\n{\npublic:\n    virtual ~ScrapHeap"
  },
  {
    "path": "sfse/GameMenu.h",
    "chars": 6238,
    "preview": "#pragma once\n\n#include \"sfse/ScaleformFunctions.h\"\n#include \"sfse/GameUI.h\"\n#include \"sfse/GameEvents.h\"\n#include \"sfse/"
  },
  {
    "path": "sfse/GameObjects.h",
    "chars": 5962,
    "preview": "#pragma once\n\n#include \"sfse/GameForms.h\"\n#include \"sfse/GameFormComponents.h\"\n#include \"sfse/GameEvents.h\"\n\nclass TESCl"
  },
  {
    "path": "sfse/GameRTTI.cpp",
    "chars": 682,
    "preview": "#include \"sfse/GameRTTI.h\"\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Relocation.h\"\n\ntypedef void* (*_Runtime_"
  },
  {
    "path": "sfse/GameRTTI.h",
    "chars": 411023,
    "preview": "#pragma once\r\n\r\nvoid * Runtime_DynamicCast(void * srcObj, const void * fromType, const void * toType);\r\n\r\n#define DYNAMI"
  },
  {
    "path": "sfse/GameRTTI.inl",
    "chars": 506943,
    "preview": "const void * RTTI_AK__StreamMgr__IAkFileLocationResolver = (void *)0x05AA5168;\r\nconst void * RTTI_AK__StreamMgr__IAkLowL"
  },
  {
    "path": "sfse/GameReferences.h",
    "chars": 43988,
    "preview": "#pragma once\n\n#include \"sfse/GameForms.h\"\n#include \"sfse/GameExtraData.h\"\n#include \"sfse/NiTypes.h\"\n\nclass BGSLocation;\n"
  },
  {
    "path": "sfse/GameReflection.h",
    "chars": 1305,
    "preview": "#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"
  },
  {
    "path": "sfse/GameScript.cpp",
    "chars": 164,
    "preview": "#include \"GameScript.h\"\n\nRelocPtr <Script::SCRIPT_FUNCTION>\tg_firstScriptCommand(0x05EC5780);\nRelocPtr <Script::SCRIPT_F"
  },
  {
    "path": "sfse/GameScript.h",
    "chars": 3019,
    "preview": "#pragma once\n\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameTypes.h\"\n\nclass "
  },
  {
    "path": "sfse/GameSettings.cpp",
    "chars": 1846,
    "preview": "#include \"sfse/GameSettings.h\"\n\nRelocPtr <INISettingCollection *> SettingT<INISettingCollection>::pCollection(0x06202A48"
  },
  {
    "path": "sfse/GameSettings.h",
    "chars": 2592,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Utilities.h\"\n#inc"
  },
  {
    "path": "sfse/GameSingleton.h",
    "chars": 712,
    "preview": "#pragma once\n\ntemplate <class T>\nclass BSTSingletonImplicit\n{\npublic:\n\tusing value_type = T;\n};\n\ntemplate <class T>\nclas"
  },
  {
    "path": "sfse/GameStreams.h",
    "chars": 3963,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n\nnamespace BSResource\n{\nenum ErrorCode\n{"
  },
  {
    "path": "sfse/GameTypes.cpp",
    "chars": 335,
    "preview": "#include \"sfse/GameTypes.h\"\n\nRelocAddr <BSStringPool::Entry::GetEntryT> BSStringPool::Entry::GetEntry(0x028CFB80);\nReloc"
  },
  {
    "path": "sfse/GameTypes.h",
    "chars": 33657,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse/GameMemory.h\"\n\n#include "
  },
  {
    "path": "sfse/GameUI.cpp",
    "chars": 24,
    "preview": "#include \"sfse/GameUI.h\""
  },
  {
    "path": "sfse/GameUI.h",
    "chars": 3329,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/GameSingleton.h\"\n#include"
  },
  {
    "path": "sfse/Hooks_Command.cpp",
    "chars": 1937,
    "preview": "#include \"Hooks_Command.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Log."
  },
  {
    "path": "sfse/Hooks_Command.h",
    "chars": 220,
    "preview": "#pragma once\n\n#include \"PluginAPI.h\"\n\nnamespace TaskInterface\n{\n    void addTask(SFSETaskInterface::ITaskDelegate* task)"
  },
  {
    "path": "sfse/Hooks_Data.cpp",
    "chars": 2768,
    "preview": "#include \"Hooks_Data.h\"\n#include \"sfse/GameData.h\"\n#include \"sfse/PluginManager.h\"\n#include \"sfse_common/BranchTrampolin"
  },
  {
    "path": "sfse/Hooks_Data.h",
    "chars": 39,
    "preview": "#pragma once\n\nvoid Hooks_Data_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Scaleform.cpp",
    "chars": 3863,
    "preview": "#include \"Hooks_Scaleform.h\"\n#include \"sfse_common/Relocation.h\"\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Lo"
  },
  {
    "path": "sfse/Hooks_Scaleform.h",
    "chars": 242,
    "preview": "#pragma once\n\n#include \"sfse/PluginAPI.h\"\n\nvoid RegisterMenuPlugin(SFSEMenuInterface::MenuMovieCreatedCallback callback)"
  },
  {
    "path": "sfse/Hooks_Script.cpp",
    "chars": 4320,
    "preview": "#include \"Hooks_Script.h\"\n#include \"sfse/GameConsole.h\"\n#include \"sfse/GameScript.h\"\n#include \"sfse/GameReferences.h\"\n#i"
  },
  {
    "path": "sfse/Hooks_Script.h",
    "chars": 41,
    "preview": "#pragma once\n\nvoid Hooks_Script_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Serialization.cpp",
    "chars": 4576,
    "preview": "#include \"Hooks_Serialization.h\"\n\n#include \"sfse_common/BranchTrampoline.h\"\n#include \"sfse_common/Relocation.h\"\n#include"
  },
  {
    "path": "sfse/Hooks_Serialization.h",
    "chars": 48,
    "preview": "#pragma once\n\nvoid Hooks_Serialization_Apply();\n"
  },
  {
    "path": "sfse/Hooks_Version.cpp",
    "chars": 1396,
    "preview": "#include \"Hooks_Version.h\"\r\n#include \"sfse_common/SafeWrite.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_co"
  },
  {
    "path": "sfse/Hooks_Version.h",
    "chars": 45,
    "preview": "#pragma once\r\n\r\nvoid Hooks_Version_Apply();\r\n"
  },
  {
    "path": "sfse/NiExtraData.cpp",
    "chars": 29,
    "preview": "#include \"sfse/NiExtraData.h\""
  },
  {
    "path": "sfse/NiExtraData.h",
    "chars": 422,
    "preview": "#pragma once\n\n#include \"sfse/NiObject.h\"\n#include \"sfse/GameTypes.h\"\n\nclass NiExtraData : public NiObject\n{\npublic:\n\tBSF"
  },
  {
    "path": "sfse/NiObject.cpp",
    "chars": 27,
    "preview": "#include \"sfse/NiObject.h\"\n"
  },
  {
    "path": "sfse/NiObject.h",
    "chars": 5978,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse/GameLock.h\"\n#include \"sfse/GameTypes.h\"\n#include \"sfse/NiTyp"
  },
  {
    "path": "sfse/NiRTTI.cpp",
    "chars": 253,
    "preview": "#include \"sfse/NiRTTI.h\"\n#include \"sfse/NiObject.h\"\n\nNiObject* DoNiRTTICast(NiObject* src, const NiRTTI* typeInfo)\n{\n\tif"
  },
  {
    "path": "sfse/NiRTTI.h",
    "chars": 157,
    "preview": "#pragma once\n\nclass NiObject;\n\nclass NiRTTI\n{\npublic:\n\tconst char* name;\n\tNiRTTI* parent;\n};\n\nNiObject* DoNiRTTICast(NiO"
  },
  {
    "path": "sfse/NiTypes.h",
    "chars": 5085,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n\ntemplate <typename T>\nclass NiPointer\n{\npublic:\n\tT* m_pObject;\n\n\tinline Ni"
  },
  {
    "path": "sfse/PapyrusNativeFunctions.h",
    "chars": 6183,
    "preview": "#include \"sfse/GameTypes.h\"\r\n#include \"sfse/GameReflection.h\"\r\n#include \"sfse_common/Types.h\"\r\n#include \"sfse_common/Uti"
  },
  {
    "path": "sfse/PluginAPI.h",
    "chars": 9691,
    "preview": "#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 Branc"
  },
  {
    "path": "sfse/PluginManager.cpp",
    "chars": 23114,
    "preview": "#include \"PluginManager.h\"\r\n#include \"sfse_common/DirectoryIterator.h\"\r\n#include \"sfse_common/FileStream.h\"\r\n#include \"s"
  },
  {
    "path": "sfse/PluginManager.h",
    "chars": 2881,
    "preview": "#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/Plugi"
  },
  {
    "path": "sfse/ScaleformFunctions.h",
    "chars": 774,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/ScaleformTypes.h\"\n#includ"
  },
  {
    "path": "sfse/ScaleformLoader.h",
    "chars": 452,
    "preview": "#pragma once\n\n#include \"sfse/ScaleformState.h\"\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nclass ResourceLib;\nclass Loader : "
  },
  {
    "path": "sfse/ScaleformLog.h",
    "chars": 2281,
    "preview": "#pragma once\n\n#include \"sfse_common/Relocation.h\"\n#include \"sfse/ScaleformState.h\"\n\nnamespace Scaleform\n{\nenum LogMessag"
  },
  {
    "path": "sfse/ScaleformManager.h",
    "chars": 510,
    "preview": "#pragma once\n\n#include \"sfse/ScaleformLoader.h\"\n\nclass BSScaleformManager\n{\npublic:\n    void* unk00;                    "
  },
  {
    "path": "sfse/ScaleformMemory.cpp",
    "chars": 298,
    "preview": "#include \"sfse/ScaleformMemory.h\"\n\nRelocPtr<Scaleform::MemoryHeap*> Scaleform::Memory::pGlobalHeap(0x05D84198);\n\nvoid* S"
  },
  {
    "path": "sfse/ScaleformMemory.h",
    "chars": 2503,
    "preview": "#pragma once\n\n#include \"sfse/ScaleformTypes.h\"\n#include \"sfse_common/Relocation.h\"\n\nnamespace Scaleform\n{\nclass StatBag;"
  },
  {
    "path": "sfse/ScaleformMovie.h",
    "chars": 5995,
    "preview": "#pragma once\n\n#include \"sfse/ScaleformState.h\"\n\nnamespace Scaleform\n{\nclass MemoryHeap;\nclass Log;\nclass AmpMovieObjectD"
  },
  {
    "path": "sfse/ScaleformState.h",
    "chars": 2588,
    "preview": "#pragma once\n\n#include \"sfse_common/Utilities.h\"\n#include \"sfse/ScaleformMemory.h\"\n#include \"sfse/ScaleformTypes.h\"\n\nnam"
  },
  {
    "path": "sfse/ScaleformTranslator.h",
    "chars": 1730,
    "preview": "#pragma once\n\n#include \"sfse/ScaleformState.h\"\n#include \"sfse/GameTypes.h\"\n\nnamespace Scaleform\n{\nclass WStringBuffer;\nn"
  },
  {
    "path": "sfse/ScaleformTypes.h",
    "chars": 3743,
    "preview": "#pragma once\n\n#include \"sfse_common/Types.h\"\n\nnamespace Scaleform\n{\nusing UPInt = unsigned __int64;\n\nclass RefCountImplC"
  },
  {
    "path": "sfse/ScaleformValue.h",
    "chars": 12308,
    "preview": "#pragma once\n\n#include <cstring>\n\nnamespace Scaleform\n{\nnamespace GFx\n{\nclass MovieImpl;\nclass Value\n{\npublic:\n\tenum Val"
  },
  {
    "path": "sfse/Serialization.cpp",
    "chars": 4218,
    "preview": "#include \"Serialization.h\"\n#include \"GameEvents.h\"\n\n#include \"sfse_common/Log.h\"\n#include \"sfse_common/Errors.h\"\n#includ"
  },
  {
    "path": "sfse/Serialization.h",
    "chars": 440,
    "preview": "#pragma once\n#include <string>\n#include \"sfse_common/Types.h\"\n\nnamespace Serialization\n{\n\tvoid SetSaveName(const char* n"
  },
  {
    "path": "sfse/cmake/config.cmake.in",
    "chars": 66,
    "preview": "include(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "sfse/sfse.cpp",
    "chars": 4404,
    "preview": "#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_co"
  },
  {
    "path": "sfse/sfse.def",
    "chars": 23,
    "preview": "EXPORTS\r\nStartSFSE @1\r\n"
  },
  {
    "path": "sfse/sfse_version.rc",
    "chars": 863,
    "preview": "#include \"sfse_common/sfse_version.h\"\n\n1 VERSIONINFO\n FILEVERSION 0,SFSE_VERSION_INTEGER,SFSE_VERSION_INTEGER_MINOR,SFSE"
  },
  {
    "path": "sfse_common/BranchTrampoline.cpp",
    "chars": 5404,
    "preview": "#include \"BranchTrampoline.h\"\r\n#include \"SafeWrite.h\"\r\n#include <climits>\r\n#include <Windows.h>\r\n#include \"sfse_common/L"
  },
  {
    "path": "sfse_common/BranchTrampoline.h",
    "chars": 1245,
    "preview": "#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~BranchTram"
  },
  {
    "path": "sfse_common/BufferStream.cpp",
    "chars": 306,
    "preview": "#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_o"
  },
  {
    "path": "sfse_common/BufferStream.h",
    "chars": 411,
    "preview": "#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"
  },
  {
    "path": "sfse_common/CMakeLists.txt",
    "chars": 1640,
    "preview": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioni"
  },
  {
    "path": "sfse_common/CoreInfo.h",
    "chars": 156,
    "preview": "#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;"
  },
  {
    "path": "sfse_common/DataStream.cpp",
    "chars": 463,
    "preview": "#include \"DataStream.h\"\r\n\r\nvoid copy(DataStream * src, DataStream * dst, size_t len, void * buf, size_t bufLen)\r\n{\r\n\tboo"
  },
  {
    "path": "sfse_common/DataStream.h",
    "chars": 2081,
    "preview": "#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) { "
  },
  {
    "path": "sfse_common/DirectoryIterator.cpp",
    "chars": 939,
    "preview": "#include \"DirectoryIterator.h\"\n\nDirectoryIterator::DirectoryIterator(const char * path, const char * match)\n:m_searchHan"
  },
  {
    "path": "sfse_common/DirectoryIterator.h",
    "chars": 482,
    "preview": "#pragma once\n\n#include <string>\n#include <Windows.h>\n\nclass DirectoryIterator\n{\npublic:\n\tDirectoryIterator() = delete;\n\t"
  },
  {
    "path": "sfse_common/Errors.cpp",
    "chars": 1637,
    "preview": "#include \"Errors.h\"\n#include \"Log.h\"\n#include \"Types.h\"\n#include <cstdlib>\n#include <intrin.h>\n\n[[noreturn]] static void"
  },
  {
    "path": "sfse_common/Errors.h",
    "chars": 2014,
    "preview": "#pragma once\r\n\r\n[[noreturn]] void _AssertionFailed(const char * file, unsigned long line, const char * desc);\r\n[[noretur"
  },
  {
    "path": "sfse_common/FileStream.cpp",
    "chars": 1962,
    "preview": "#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"
  },
  {
    "path": "sfse_common/FileStream.h",
    "chars": 720,
    "preview": "#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\npubli"
  },
  {
    "path": "sfse_common/Log.cpp",
    "chars": 1534,
    "preview": "#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 * DebugL"
  },
  {
    "path": "sfse_common/Log.h",
    "chars": 1578,
    "preview": "#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"
  },
  {
    "path": "sfse_common/Relocation.cpp",
    "chars": 1923,
    "preview": "#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 binar"
  },
  {
    "path": "sfse_common/Relocation.h",
    "chars": 1764,
    "preview": "#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_"
  },
  {
    "path": "sfse_common/SafeWrite.cpp",
    "chars": 1368,
    "preview": "#include \"SafeWrite.h\"\r\n#include <Windows.h>\r\n#include \"sfse_common/Errors.h\"\r\n\r\nvoid safeWriteBuf(uintptr_t addr, void "
  },
  {
    "path": "sfse_common/SafeWrite.h",
    "chars": 625,
    "preview": "#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, siz"
  },
  {
    "path": "sfse_common/Types.h",
    "chars": 621,
    "preview": "#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 __i"
  },
  {
    "path": "sfse_common/Utilities.cpp",
    "chars": 6299,
    "preview": "#include \"Utilities.h\"\r\n#include \"sfse_common/Log.h\"\r\n#include \"sfse_common/Errors.h\"\r\n#include <string>\r\n#include <Wind"
  },
  {
    "path": "sfse_common/Utilities.h",
    "chars": 10954,
    "preview": "#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 be"
  },
  {
    "path": "sfse_common/cmake/config.cmake.in",
    "chars": 66,
    "preview": "include(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "sfse_common/sfse_version.h",
    "chars": 4972,
    "preview": "#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#de"
  },
  {
    "path": "sfse_loader/CMakeLists.txt",
    "chars": 1743,
    "preview": "cmake_minimum_required(VERSION 3.18...4.0.2)\n\n# ---- Project ----\n\ninclude(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/versioni"
  },
  {
    "path": "sfse_loader/IdentifyEXE.cpp",
    "chars": 13697,
    "preview": "#include \"IdentifyEXE.h\"\r\n#include \"LoaderError.h\"\r\n#include \"sfse_common/sfse_version.h\"\r\n#include \"sfse_common/Log.h\"\r"
  },
  {
    "path": "sfse_loader/IdentifyEXE.h",
    "chars": 925,
    "preview": "#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\t"
  },
  {
    "path": "sfse_loader/Inject.cpp",
    "chars": 4904,
    "preview": "#include \"LoaderError.h\"\r\n#include \"IdentifyEXE.h\"\r\n#include \"sfse_common/FileStream.h\"\r\n#include \"sfse_common/Log.h\"\r\n#"
  },
  {
    "path": "sfse_loader/Inject.h",
    "chars": 236,
    "preview": "#pragma once\r\n\r\n#include \"IdentifyEXE.h\"\r\n\r\nbool InjectDLL(PROCESS_INFORMATION * info, const char * dllPath, ProcHookInf"
  },
  {
    "path": "sfse_loader/LoaderError.cpp",
    "chars": 459,
    "preview": "#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\nv"
  },
  {
    "path": "sfse_loader/LoaderError.h",
    "chars": 63,
    "preview": "#pragma once\r\n\r\nvoid PrintLoaderError(const char * fmt, ...);\r\n"
  },
  {
    "path": "sfse_loader/Options.cpp",
    "chars": 5346,
    "preview": "#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_o"
  },
  {
    "path": "sfse_loader/Options.h",
    "chars": 538,
    "preview": "#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()"
  },
  {
    "path": "sfse_loader/SigCheck.cpp",
    "chars": 6441,
    "preview": "#include \"SigCheck.h\"\n#include \"sfse_common/Utilities.h\"\n#include \"sfse_common/Log.h\"\n#include \"sfse_common/Errors.h\"\n#i"
  },
  {
    "path": "sfse_loader/SigCheck.h",
    "chars": 86,
    "preview": "#pragma once\n\n#include <string>\n\nbool CheckDLLSignature(const std::string & dllPath);\n"
  },
  {
    "path": "sfse_loader/cmake/config.cmake.in",
    "chars": 66,
    "preview": "include(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "sfse_loader/main.cpp",
    "chars": 10060,
    "preview": "#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 \"s"
  },
  {
    "path": "sfse_loader/sfse_loader.manifest",
    "chars": 355,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVers"
  },
  {
    "path": "sfse_loader/sfse_loader_version.rc",
    "chars": 663,
    "preview": "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 FIL"
  },
  {
    "path": "sfse_readme.txt",
    "chars": 3561,
    "preview": "Starfield Script Extender v0.2.19 pre-alpha\r\nby Ian Patterson, Stephen Abel, and Expired\r\n\r\nThe Starfield Script Extende"
  },
  {
    "path": "sfse_whatsnew.txt",
    "chars": 2894,
    "preview": "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 c"
  },
  {
    "path": "xbyak/CMakeLists.txt",
    "chars": 1521,
    "preview": "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"
  },
  {
    "path": "xbyak/COPYRIGHT",
    "chars": 1501,
    "preview": "\r\nCopyright (c) 2007 MITSUNARI Shigeo\r\nAll rights reserved.\r\n\r\nRedistribution and use in source and binary forms, with o"
  },
  {
    "path": "xbyak/cmake/config.cmake.in",
    "chars": 82,
    "preview": "@PACKAGE_INIT@\n\ninclude(\"${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake\")\n"
  },
  {
    "path": "xbyak/cmake/meson-config.cmake.in",
    "chars": 208,
    "preview": "@PACKAGE_INIT@\n\nif(NOT TARGET @TARGET_NAME@)\n\tadd_library(@TARGET_NAME@ INTERFACE IMPORTED)\n\tset_target_properties(@TARG"
  },
  {
    "path": "xbyak/readme.md",
    "chars": 2818,
    "preview": "\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- [Ins"
  },
  {
    "path": "xbyak/readme.txt",
    "chars": 23172,
    "preview": "\r\n    C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak 6.73\r\n\r\n--------------------------------------------------------"
  },
  {
    "path": "xbyak/xbyak/xbyak.h",
    "chars": 99584,
    "preview": "#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"
  },
  {
    "path": "xbyak/xbyak/xbyak_bin2hex.h",
    "chars": 4251,
    "preview": "enum {\n\tB00000000= 0,\n\tB00000001= 1,\n\tB00000010= 2,\n\tB00000011= 3,\n\tB00000100= 4,\n\tB00000101= 5,\n\tB00000110= 6,\n\tB000001"
  },
  {
    "path": "xbyak/xbyak/xbyak_mnemonic.h",
    "chars": 255983,
    "preview": "const char *getVersionString() const { return \"6.73\"; }\nvoid aadd(const Address& addr, const Reg32e &reg) { opModM(addr,"
  },
  {
    "path": "xbyak/xbyak/xbyak_util.h",
    "chars": 33101,
    "preview": "#ifndef XBYAK_XBYAK_UTIL_H_\n#define XBYAK_XBYAK_UTIL_H_\n\n#ifdef XBYAK_ONLY_CLASS_CPU\n#include <stdint.h>\n#include <stdli"
  }
]

About this extraction

This page contains the full source code of the ianpatt/sfse GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 134 files (1.7 MB), approximately 590.5k tokens, and a symbol index with 3608 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!