From d8dd554f5b0261985166dd61214ea550f97e148c Mon Sep 17 00:00:00 2001 From: superp00t Date: Sun, 20 Apr 2025 15:54:44 -0400 Subject: [PATCH] chore(build): regenerate files --- .../ida/batch/import_data_types.idc | 37 ++++++++ .../ida/batch/import_functions.idc | 3 + .../ida/batch/import_symbols.idc | 10 +++ .../3.3.5a-windows-386/include/gx/device.h | 13 +-- .../include/gx/emergencymem.h | 14 +++ .../symbol/emergencymem/func.sym | 1 + profile/3.3.5a-windows-386/symbol/main.sym | 78 +++++++++-------- profile/3.3.5a-windows-386/x64dbg/game.dd32 | Bin 149472 -> 149837 bytes profile/3.3.5a-windows-386/x64dbg/types.json | 81 ++++++++---------- 9 files changed, 146 insertions(+), 91 deletions(-) create mode 100644 profile/3.3.5a-windows-386/include/gx/emergencymem.h create mode 100644 profile/3.3.5a-windows-386/symbol/emergencymem/func.sym diff --git a/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc b/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc index a741c45..93df4d9 100644 --- a/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc +++ b/profile/3.3.5a-windows-386/ida/batch/import_data_types.idc @@ -204,6 +204,7 @@ static import_data_types() { apply_type(0x00684C20, "void __stdcall func(char* format, ...)"); apply_type(0x00684C40, "void __stdcall func(CGxCaps* caps)"); apply_type(0x00684D10, "void __stdcall func(CGxFormat* format)"); + apply_type(0x00684D70, "int32_t __stdcall func(float aspectRatio, C2iVector* adjust, RECT* rect)"); apply_type(0x00684FE0, "void __thiscall func(CGxDevice* this, EGxOverride override, uint32_t value)"); apply_type(0x006853B0, "void __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)"); apply_type(0x006853D0, "int32_t __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)"); @@ -218,6 +219,7 @@ static import_data_types() { apply_type(0x00685A70, "void __thiscall func(CGxDevice* this)"); apply_type(0x00685B50, "void __thiscall func(CGxDevice* this, int32_t force)"); apply_type(0x00685C60, "void __thiscall func(CGxDevice* this, EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth, EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, void (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t*, void**), char* name, CGxTex** texId)"); + apply_type(0x00685E90, "void* __thiscall func(EmergencyMem* this, uint32_t a1)"); apply_type(0x00685EB0, "void __thiscall func(CGxDevice* this, EGxMasterEnables state, int32_t enable)"); apply_type(0x00685F50, "void __thiscall func(CGxDevice* this, EGxRenderState which, void* value)"); apply_type(0x00685FB0, "void __thiscall func(CGxDevice* this)"); @@ -246,6 +248,9 @@ static import_data_types() { apply_type(0x0068BBC0, "void __thiscall func(CGxDeviceOpenGl* this)"); apply_type(0x0068BF20, "CGxDevice* __stdcall func()"); apply_type(0x0068C220, "CGxDevice* __stdcall func()"); + apply_type(0x0068E140, "void __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)"); + apply_type(0x0068E180, "LPDIRECT3DINDEXBUFFER9 __thiscall func(CGxDeviceD3d* this, EGxPoolUsage usage, uint32_t size)"); + apply_type(0x0068E250, "void __thiscall func(CGxDeviceD3d* this, D3DPRESENT_PARAMETERS* d3dpp, CGxFormat* format)"); apply_type(0x0068E450, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x0068E4A0, "void __thiscall func(CGxDeviceD3d* this, uint32_t level)"); apply_type(0x0068E4C0, "void __thiscall func(CGxDeviceD3d* this, float gamma)"); @@ -260,20 +265,31 @@ static import_data_types() { apply_type(0x0068E9C0, "void __thiscall func(CGxDeviceD3d* this, CGxQuery** query, EGxQueryType queryType)"); apply_type(0x0068EA10, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)"); apply_type(0x0068EA90, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, EGxQueryParam param, uint32_t* data)"); + apply_type(0x0068EBB0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); + apply_type(0x0068ED80, "int32_t __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)"); + apply_type(0x0068EE20, "void __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); + apply_type(0x0068F3D0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); apply_type(0x0068F770, "void __thiscall func(CGxDeviceD3d* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)"); apply_type(0x0068F900, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); apply_type(0x0068F950, "void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, int32_t a2, CGxTex* a3, int32_t a4)"); + apply_type(0x0068FA60, "int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"); apply_type(0x0068FAE0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, uint32_t size)"); + apply_type(0x0068FB10, "uint8_t* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"); apply_type(0x0068FCE0, "char* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"); apply_type(0x0068FD00, "void __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, const void* data, uint32_t size, uint32_t offset)"); apply_type(0x0068FD50, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x0068FE80, "void __thiscall func(CGxDeviceD3d* this, uint8_t __flags)"); apply_type(0x0068FED0, "void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_CImVector* pixels)"); + apply_type(0x00690150, "void __thiscall func(CGxDeviceD3d* this, int32_t a2)"); apply_type(0x00690230, "void __thiscall func(CGxDeviceD3d* this, EGxWM wm, int32_t param1, int32_t param2)"); apply_type(0x006904D0, "int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"); apply_type(0x006905F0, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x00690680, "int32_t __thiscall func(CGxDeviceD3d* this)"); apply_type(0x00690750, "void __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)"); apply_type(0x00690830, "void __thiscall func(CGxDeviceD3d* this, uintptr_t hwnd, CGxFormat* format)"); + apply_type(0x0069FB00, "LPDIRECT3DVERTEXBUFFER9 __thiscall func(EGxPoolUsage usage, uint32_t size)"); + apply_type(0x0069FB70, "int32_t __thiscall func(CGxDeviceD3d* this, CGxPool* pool)"); + apply_type(0x0069FE10, "void __thiscall func(CGxDeviceD3d* this, int32_t a1)"); apply_type(0x0069FE80, "void __thiscall func(CGxDeviceD3d* this, CGxGammaRamp* ramp)"); apply_type(0x0069FED0, "void* __thiscall func(CGxDeviceD3d* this)"); apply_type(0x0069FF40, "void __thiscall func(CGxDeviceD3d* this, EGxOverride override, uint32_t value)"); @@ -285,16 +301,34 @@ static import_data_types() { apply_type(0x006A0190, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery** query)"); apply_type(0x006A0240, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)"); apply_type(0x006A0310, "bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, uint32_t* data)"); + apply_type(0x006A0360, "LRESULT __stdcall func(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)"); apply_type(0x006A1950, "void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_float* depths)"); apply_type(0x006A2BB0, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); + apply_type(0x006A2C00, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); + apply_type(0x006A2D80, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); apply_type(0x006A3070, "void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)"); apply_type(0x006A30D0, "void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, C2iVector* a3, C2iVector* a4, uint32_t a5, uint32_t a6)"); apply_type(0x006A31E0, "void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, CiRect* a3, CiRect* a4, uint32_t a5, uint32_t a6)"); + apply_type(0x006A3350, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A3420, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x006A3450, "void __thiscall func(CGxDeviceD3d* this, uint32_t mask)"); apply_type(0x006A3620, "void __thiscall func(CGxDeviceD3d* this, CGxBatch* batch)"); + apply_type(0x006A3810, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A39E0, "void __thiscall func(CGxDeviceD3d* this, uint32_t stream, LPDIRECT3DVERTEXBUFFER9 buffer, uint32_t offset, uint32_t stride)"); + apply_type(0x006A3A60, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A3C40, "void __thiscall func(CGxDeviceD3d* this, CGxDeviceD3d__EDeviceState state, uint32_t val)"); + apply_type(0x006A4190, "void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)"); + apply_type(0x006A41F0, "void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)"); + apply_type(0x006A4700, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A4850, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A4900, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, CGxTex* texId)"); apply_type(0x006A4C30, "void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)"); + apply_type(0x006A5540, "LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)"); + apply_type(0x006A5700, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A5940, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x006A5A00, "void __thiscall func(CGxDeviceD3d* this, CRect* dst)"); apply_type(0x006A5A30, "void __thiscall func(CGxDeviceD3d* this)"); + apply_type(0x006A5C70, "void __thiscall func(CGxDeviceD3d* this, CGxShader* ps)"); apply_type(0x006A5D50, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader, const char* a2, const char* a3)"); apply_type(0x006A5E10, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"); apply_type(0x006A5EF0, "void __thiscall func(CGxDevice* this, CGxTex* texId, uint32_t* width, uint32_t* height, uint32_t* baseMip, uint32_t* mipCount)"); @@ -302,10 +336,12 @@ static import_data_types() { apply_type(0x006A9920, "void __thiscall func(CGxDeviceD3d* this, CRect* dst)"); apply_type(0x006A9B40, "void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)"); apply_type(0x006A9E00, "void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)"); + apply_type(0x006A9FE0, "void __thiscall func(CGxDeviceD3d* this)"); apply_type(0x006AA070, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"); apply_type(0x006AA0D0, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"); apply_type(0x006AA130, "void __thiscall func(CGxDeviceD3d* this, CGxShader** shaders, EGxShTarget target, char* a3, char* a4, int32_t permutations)"); apply_type(0x006AA190, "void __thiscall func(CGxDeviceD3d* this, CGxShader** shader)"); + apply_type(0x006AA2F0, "void __thiscall func(CGxDeviceD3d* this, CGxShader* vs)"); apply_type(0x006AA3B0, "int32_t __thiscall func(CTgaFile* this)"); apply_type(0x006AA3E0, "uint32_t __thiscall func(CTgaFile* this)"); apply_type(0x006AA420, "void __thiscall func(CTgaFile* this, uint8_t* pAlphaData, uint8_t* pNoAlphaData, uint8_t* alpha)"); @@ -844,6 +880,7 @@ static import_data_types() { apply_type(0x00C5DF88, "CGxDevice*"); apply_type(0x00C5FFF4, "uint32_t"); apply_type(0x00C5FFF8, "HSLOG"); + apply_type(0x00C60300, "C2iVector"); apply_type(0x00CA1690, "float"); apply_type(0x00CA1694, "int32_t"); apply_type(0x00CA1718, "float"); diff --git a/profile/3.3.5a-windows-386/ida/batch/import_functions.idc b/profile/3.3.5a-windows-386/ida/batch/import_functions.idc index 30ea37e..5888b5d 100644 --- a/profile/3.3.5a-windows-386/ida/batch/import_functions.idc +++ b/profile/3.3.5a-windows-386/ida/batch/import_functions.idc @@ -204,6 +204,9 @@ static import_functions() { set_func_cmt(0x006859E0, "CGxDevice::IRsForceUpdate(EGxRenderState)", 0); set_func_cmt(0x00685A70, "CGxDevice::IRsForceUpdate()", 0); set_func_cmt(0x00689EA0, "UC", 0); + set_func_cmt(0x0068E140, "void CGxDeviceD3d::IUnloadD3dLib(HINSTANCE& d3dLib, LPDIRECT3D9& d3d)", 0); + set_func_cmt(0x0068E180, "LPDIRECT3DINDEXBUFFER9 CGxDeviceD3d::ICreateD3dIB(EGxPoolUsage usage, uint32_t size)", 0); + set_func_cmt(0x0068E250, "void CGxDeviceD3d::ISetPresentParms(D3DPRESENT_PARAMETERS& d3dpp, const CGxFormat& format)", 0); set_func_cmt(0x0069FE10, "UC (invented name)", 0); set_func_cmt(0x006AA350, "UC", 0); set_func_cmt(0x006AA420, "private utility method", 0); diff --git a/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc b/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc index 6a705f5..36eb1bb 100644 --- a/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc +++ b/profile/3.3.5a-windows-386/ida/batch/import_symbols.idc @@ -491,9 +491,11 @@ static import_symbols() { set_name(0x004C5990, "SE2SoundKitProperties__ResetToDefaults"); set_name(0x004C6390, "SE2__StopSound"); set_name(0x004C6A40, "SE2__PlaySoundKit"); + set_name(0x004C82E0, "SI2__Init"); set_name(0x004C8610, "SI2__SetWeatherKitID"); set_name(0x004C93B0, "SI2__StopAllMusic"); set_name(0x004D0090, "SI2__PlayItemSound"); + set_name(0x004D1600, "SI2__RegisterCVars"); set_name(0x004D27D0, "HeapUsageDestroy"); set_name(0x004D2A30, "HeapUsageInitialize"); set_name(0x004D7D20, "CGlueMgr__InitializeFFX"); @@ -2751,6 +2753,7 @@ static import_symbols() { set_name(0x00684C20, "CGxDevice__Log"); set_name(0x00684C40, "CGxDevice__Log@2"); set_name(0x00684D10, "CGxDevice__Log@3"); + set_name(0x00684D70, "CGxDevice__Sub684D70"); set_name(0x00684FE0, "CGxDevice__DeviceOverride"); set_name(0x006853B0, "CGxDevice__AddDeviceRestoredCallback"); set_name(0x006853D0, "CGxDevice__RemoveDeviceRestoredCallback"); @@ -2765,6 +2768,7 @@ static import_symbols() { set_name(0x00685A70, "CGxDevice__IRsForceUpdate"); set_name(0x00685B50, "CGxDevice__IRsSync"); set_name(0x00685C60, "CGxDevice__TexCreate"); + set_name(0x00685E90, "EmergencyMem__Lock"); set_name(0x00685EB0, "CGxDevice__MasterEnableSet"); set_name(0x00685F50, "CGxDevice__RsSet_pointer_to_void"); set_name(0x00685FB0, "CGxDevice__RsPop"); @@ -2772,6 +2776,7 @@ static import_symbols() { set_name(0x006876D0, "CGxDevice__PoolCreate"); set_name(0x006877C0, "CGxDevice__QueryCreate"); set_name(0x00687820, "CGxDevice__ShaderDestroy"); + set_name(0x00687940, "CGxDevice__DeviceCreatePools"); set_name(0x00687980, "CGxDevice__TexDestroy"); set_name(0x006879F0, "CGxDevice__QueryDestroy"); set_name(0x00687A90, "CGxDevice__ICursorDraw"); @@ -3361,6 +3366,7 @@ static import_symbols() { set_name(0x007DC910, "Script_VoiceIsDisabledByClient"); set_name(0x007DEEF0, "Script_GetVoiceSessionMemberInfoBySessionID"); set_name(0x007DF0B0, "Script_UnitIsTalking"); + set_name(0x007DFAF0, "ComSatClient_Init"); set_name(0x007E1030, "IsRussian"); set_name(0x007ECD00, "DayNight__CalcFogRate"); set_name(0x007ECEC0, "DayNight__SetOverrideLightParamsID"); @@ -3682,6 +3688,9 @@ static import_symbols() { set_name(0x00876BE0, "CShaderEffectManager__CreateEffect"); set_name(0x00876CA0, "CShaderEffectManager__ParseEffectCallback"); set_name(0x00876D90, "CShaderEffectManager__AddEffectFile"); + set_name(0x00877E10, "SI2__Log_Write"); + set_name(0x00878010, "SI2__Log_Write@2"); + set_name(0x0087E020, "SI2__InitCapture"); set_name(0x008A1420, "stub_return_one_byte"); set_name(0x008C0360, "FFX__Destroy"); set_name(0x008C8DE0, "stub_return_int32_one"); @@ -4452,6 +4461,7 @@ static import_symbols() { set_name(0x00C5FFF4, "CGxDevice__m_logBytes"); set_name(0x00C5FFF8, "CGxDevice__m_log"); set_name(0x00C5FFFC, "CGxDevice__s_uiPixelShader"); + set_name(0x00C60300, "CGxDevice__s_clientAdjust"); set_name(0x00C60760, "isIdent"); set_name(0x00C79CE4, "ClientServices__m_instance"); set_name(0x00C79CE9, "ClientServices__m_selectRealmInfoValid"); diff --git a/profile/3.3.5a-windows-386/include/gx/device.h b/profile/3.3.5a-windows-386/include/gx/device.h index 97ac1db..5a884c2 100644 --- a/profile/3.3.5a-windows-386/include/gx/device.h +++ b/profile/3.3.5a-windows-386/include/gx/device.h @@ -24,6 +24,7 @@ #include "gx/buffer.h" #include "gx/texture.h" #include "gx/query.h" +#include "gx/emergencymem.h" DECLARE_STRUCT(CGxAppRenderState); DECLARE_STRUCT(CGxPushedRenderState); @@ -334,16 +335,8 @@ struct CGxDevice { uint32_t m_primVertexSize; CGxBuf* m_primIndexBuf; int32_t m_primIndexDirty; - uint32_t unk28C4; - uint32_t unk28C8; - uint32_t unk28CC; - uint32_t unk28D0; - uint8_t unk28D4; - uint32_t unk28D8; - uint32_t unk28DC; - uint32_t unk28E0; - uint32_t unk28E4; - uint32_t unk28E8; + // EmergencyMem unk28C4[GxPoolTargets_Last]; + EmergencyMem m_emergencyMem[2]; // 0x28C4 TSFixedArray_CGxAppRenderState m_appRenderStates; TSFixedArray_CGxStateBom m_hwRenderStates; uint32_t unk2904[3]; // 0x2904 (size 0xC) diff --git a/profile/3.3.5a-windows-386/include/gx/emergencymem.h b/profile/3.3.5a-windows-386/include/gx/emergencymem.h new file mode 100644 index 0000000..43c2c2b --- /dev/null +++ b/profile/3.3.5a-windows-386/include/gx/emergencymem.h @@ -0,0 +1,14 @@ +#ifndef GX_EMERGENCY_MEM_H +#define GX_EMERGENCY_MEM_H + +DECLARE_STRUCT(EmergencyMem); + +struct EmergencyMem { + uint32_t unk00; + uint32_t unk04; + uint32_t unk08; + uint32_t unk0C; + uint32_t unk10; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym b/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym new file mode 100644 index 0000000..b46d84f --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/emergencymem/func.sym @@ -0,0 +1 @@ +EmergencyMem__Lock 00685E90 f end=00685EB0 type="void* __thiscall func(EmergencyMem* this, uint32_t a1)" \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/main.sym b/profile/3.3.5a-windows-386/symbol/main.sym index 7f73e7e..fdd7776 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -487,9 +487,11 @@ C33Matrix__Rotation 004C5550 f end=004C55A2 SE2SoundKitProperties__ResetToDefaults 004C5990 f end=004C5A18 SE2__StopSound 004C6390 f end=004C6410 SE2__PlaySoundKit 004C6A40 f end=004C713B +SI2__Init 004C82E0 f end=004C8584 SI2__SetWeatherKitID 004C8610 f end=004C8622 SI2__StopAllMusic 004C93B0 f end=004C941B SI2__PlayItemSound 004D0090 f end=004D0102 +SI2__RegisterCVars 004D1600 f end=004D1EB8 HeapUsageDestroy 004D27D0 f end=004D27DC HeapUsageInitialize 004D2A30 f end=004D2A95 CGlueMgr__InitializeFFX 004D7D20 f end=004D7D93 @@ -2747,6 +2749,7 @@ CGxDevice__VLog 00684BA0 f end=00684C15 type="void __stdcall func(char* format, CGxDevice__Log 00684C20 f end=00684C3E type="void __stdcall func(char* format, ...)" CGxDevice__Log 00684C40 f end=00684D07 type="void __stdcall func(CGxCaps* caps)" ; CGxDevice::Log(CGxCaps const&) const CGxDevice__Log 00684D10 f end=00684D6C type="void __stdcall func(CGxFormat* format)" +CGxDevice__Sub684D70 00684D70 f type="int32_t __stdcall func(float aspectRatio, C2iVector* adjust, RECT* rect)" CGxDevice__DeviceOverride 00684FE0 f end=00685036 type="void __thiscall func(CGxDevice* this, EGxOverride override, uint32_t value)" CGxDevice__AddDeviceRestoredCallback 006853B0 f end=006853C6 type="void __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)" CGxDevice__RemoveDeviceRestoredCallback 006853D0 f end=0068545C type="int32_t __thiscall func(CGxDevice* this, DEVICERESTOREDCALLBACK fn)" @@ -2761,6 +2764,7 @@ CGxDevice__IRsForceUpdate_EGxRenderState 006859E0 f end=00685A65 type="void __th CGxDevice__IRsForceUpdate 00685A70 f end=00685B4E type="void __thiscall func(CGxDevice* this)" ; CGxDevice::IRsForceUpdate() CGxDevice__IRsSync 00685B50 f end=00685BFE type="void __thiscall func(CGxDevice* this, int32_t force)" CGxDevice__TexCreate 00685C60 f end=00685CCB type="void __thiscall func(CGxDevice* this, EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth, EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, void (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t*, void**), char* name, CGxTex** texId)" +EmergencyMem__Lock 00685E90 f end=00685EB0 type="void* __thiscall func(EmergencyMem* this, uint32_t a1)" CGxDevice__MasterEnableSet 00685EB0 f end=00685F33 type="void __thiscall func(CGxDevice* this, EGxMasterEnables state, int32_t enable)" CGxDevice__RsSet_pointer_to_void 00685F50 f end=00685FB0 type="void __thiscall func(CGxDevice* this, EGxRenderState which, void* value)" CGxDevice__RsPop 00685FB0 f end=00686116 type="void __thiscall func(CGxDevice* this)" @@ -2768,6 +2772,7 @@ CGxDevice__BufCreate 00687660 f end=006876C9 type="CGxBuf* __thiscall func(CGxDe CGxDevice__PoolCreate 006876D0 f end=0068773F type="CGxPool* __thiscall func(CGxDevice* this, EGxPoolTarget target, EGxPoolUsage usage, uint32_t size, EGxPoolHintBits hint, char* name)" CGxDevice__QueryCreate 006877C0 f end=00687811 type="void __thiscall func(CGxDevice* this, CGxQuery** query, EGxQueryType queryType)" CGxDevice__ShaderDestroy 00687820 f end=00687862 type="void __thiscall func(CGxDevice* this, CGxShader** shader)" +CGxDevice__DeviceCreatePools 00687940 f end=00687980 CGxDevice__TexDestroy 00687980 f end=006879E1 type="void __thiscall func(CGxDevice* this, CGxTex* texId)" CGxDevice__QueryDestroy 006879F0 f end=00687A8E type="void __thiscall func(CGxDevice* this, CGxQuery** query)" CGxDevice__ICursorDraw 00687A90 f end=00687FCA type="void __thiscall func(CGxDevice* this)" @@ -2792,9 +2797,9 @@ CGxDevice__AdapterMonitorModes 0068A4C0 f end=0068A589 type="void __stdcall func CGxDeviceOpenGl__CGxDeviceOpenGl 0068BBC0 f end=0068BD15 type="void __thiscall func(CGxDeviceOpenGl* this)" CGxDevice__NewOpenGl 0068BF20 f end=0068BF44 type="CGxDevice* __stdcall func()" CGxDevice__NewD3d9Ex 0068C220 f end=0068C244 type="CGxDevice* __stdcall func()" -CGxDeviceD3d__IUnloadD3dLib 0068E140 f end=0068E174 -CGxDeviceD3d__ICreateD3dIB 0068E180 f end=0068E1E8 -CGxDeviceD3d__ISetPresentParms 0068E250 f end=0068E448 +CGxDeviceD3d__IUnloadD3dLib 0068E140 f end=0068E174 type="void __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)" ; void CGxDeviceD3d::IUnloadD3dLib(HINSTANCE& d3dLib, LPDIRECT3D9& d3d) +CGxDeviceD3d__ICreateD3dIB 0068E180 f end=0068E1E8 type="LPDIRECT3DINDEXBUFFER9 __thiscall func(CGxDeviceD3d* this, EGxPoolUsage usage, uint32_t size)" ; LPDIRECT3DINDEXBUFFER9 CGxDeviceD3d::ICreateD3dIB(EGxPoolUsage usage, uint32_t size) +CGxDeviceD3d__ISetPresentParms 0068E250 f end=0068E448 type="void __thiscall func(CGxDeviceD3d* this, D3DPRESENT_PARAMETERS* d3dpp, CGxFormat* format)" ; void CGxDeviceD3d::ISetPresentParms(D3DPRESENT_PARAMETERS& d3dpp, const CGxFormat& format) CGxDeviceD3d__DeviceEvictResources 0068E450 f end=0068E49E type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__DeviceSetBaseMipLevel 0068E4A0 f end=0068E4BD type="void __thiscall func(CGxDeviceD3d* this, uint32_t level)" CGxDeviceD3d__DeviceSetGamma 0068E4C0 f end=0068E507 type="void __thiscall func(CGxDeviceD3d* this, float gamma)" @@ -2809,31 +2814,31 @@ CGxDeviceD3d__StereoSetSeparation 0068E9A0 f end=0068E9BA type="void __thiscall CGxDeviceD3d__QueryCreate 0068E9C0 f end=0068EA0A type="void __thiscall func(CGxDeviceD3d* this, CGxQuery** query, EGxQueryType queryType)" CGxDeviceD3d__QueryBegin 0068EA10 f end=0068EA81 type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)" CGxDeviceD3d__QueryGetParam 0068EA90 f end=0068EB1D type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, EGxQueryParam param, uint32_t* data)" -CGxDeviceD3d__ICreateWindow 0068EBB0 f end=0068ED78 -CGxDeviceD3d__ILoadD3dLib 0068ED80 f end=0068EE13 -CGxDeviceD3d__ISetCaps 0068EE20 f end=0068F36D -CGxDeviceD3d__ICreateD3dDevice 0068F3D0 f end=0068F692 +CGxDeviceD3d__ICreateWindow 0068EBB0 f end=0068ED78 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" +CGxDeviceD3d__ILoadD3dLib 0068ED80 f end=0068EE13 type="int32_t __stdcall func(HINSTANCE* hInstance, LPDIRECT3D9* d3dLib)" +CGxDeviceD3d__ISetCaps 0068EE20 f end=0068F36D type="void __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" +CGxDeviceD3d__ICreateD3dDevice 0068F3D0 f end=0068F692 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" CGxDeviceD3d__DeviceSetRenderTarget 0068F770 f end=0068F8F2 type="void __thiscall func(CGxDeviceD3d* this, EGxBuffer buffer, CGxTex* texture, uint32_t plane)" CGxDeviceD3d__DeviceResolveDepthBuffer 0068F900 f end=0068F94A type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" CGxDeviceD3d__DeviceCopyTex 0068F950 f end=0068FA5E type="void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, int32_t a2, CGxTex* a3, int32_t a4)" -CGxDeviceD3d__IBufUnlock 0068FA60 f end=0068FADC +CGxDeviceD3d__IBufUnlock 0068FA60 f end=0068FADC type="int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)" CGxDeviceD3d__BufUnlock 0068FAE0 f end=0068FB07 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, uint32_t size)" -CGxDeviceD3d__IBufLock 0068FB10 f end=0068FCDC +CGxDeviceD3d__IBufLock 0068FB10 f end=0068FCDC type="uint8_t* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)" CGxDeviceD3d__BufLock 0068FCE0 f end=0068FCFE type="char* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)" CGxDeviceD3d__BufData 0068FD00 f end=0068FD49 type="void __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, const void* data, uint32_t size, uint32_t offset)" CGxDeviceD3d__CGxDeviceD3d 0068FD50 f end=0068FE80 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__scalar_deleting_destructor 0068FE80 f end=0068FEC8 type="void __thiscall func(CGxDeviceD3d* this, uint8_t __flags)" CGxDeviceD3d__DeviceReadPixels 0068FED0 f end=00690144 type="void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_CImVector* pixels)" -CGxDeviceD3d__IReleaseD3dResources 00690150 f end=00690223 +CGxDeviceD3d__IReleaseD3dResources 00690150 f end=00690223 type="void __thiscall func(CGxDeviceD3d* this, int32_t a2)" CGxDeviceD3d__DeviceWM 00690230 f end=0069038D type="void __thiscall func(CGxDeviceD3d* this, EGxWM wm, int32_t param1, int32_t param2)" CGxDeviceD3d__DeviceSetFormat 006904D0 f end=006905E8 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)" CGxDeviceD3d__DeviceDestroy 006905F0 f end=00690679 type="void __thiscall func(CGxDeviceD3d* this)" -CGxDeviceD3d__ICreateD3d 00690680 f end=00690742 +CGxDeviceD3d__ICreateD3d 00690680 f end=00690742 type="int32_t __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__DeviceCreate 00690750 f end=00690821 type="void __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)" CGxDeviceD3d__DeviceCreate 00690830 f end=00690897 type="void __thiscall func(CGxDeviceD3d* this, uintptr_t hwnd, CGxFormat* format)" -CGxDeviceD3d__ICreateD3dVB 0069FB00 f end=0069FB68 -CGxDeviceD3d__CreatePoolAPI 0069FB70 f end=0069FBB8 -CGxDeviceD3d__ICursorClip 0069FE10 f end=0069FE57 ; UC (invented name) +CGxDeviceD3d__ICreateD3dVB 0069FB00 f end=0069FB68 type="LPDIRECT3DVERTEXBUFFER9 __thiscall func(EGxPoolUsage usage, uint32_t size)" +CGxDeviceD3d__CreatePoolAPI 0069FB70 f end=0069FBB8 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxPool* pool)" +CGxDeviceD3d__ICursorClip 0069FE10 f end=0069FE57 type="void __thiscall func(CGxDeviceD3d* this, int32_t a1)" ; UC (invented name) CGxDeviceD3d__DeviceSetGamma 0069FE80 f end=0069FEC4 type="void __thiscall func(CGxDeviceD3d* this, CGxGammaRamp* ramp)" CGxDeviceD3d__DeviceWindow 0069FED0 f end=0069FED7 type="void* __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__DeviceOverride 0069FF40 f end=0069FF7F type="void __thiscall func(CGxDeviceD3d* this, EGxOverride override, uint32_t value)" @@ -2845,35 +2850,35 @@ CGxDeviceD3d__StereoEnabled 006A0130 f end=006A013D type="bool __thiscall func(C CGxDeviceD3d__QueryDestroy 006A0190 f end=006A01C0 type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery** query)" CGxDeviceD3d__QueryEnd 006A0240 f end=006A0272 type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query)" CGxDeviceD3d__QueryGetData 006A0310 f end=006A035F type="bool __thiscall func(CGxDeviceD3d* this, CGxQuery* query, uint32_t* data)" -CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 +CGxDeviceD3d__WindowProcD3d 006A0360 f end=006A0834 type="LRESULT __stdcall func(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)" CGxDeviceD3d__DeviceReadDepths 006A1950 f end=006A19C4 type="void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_float* depths)" CGxDeviceD3d9Ex__CGxDeviceD3d9Ex 006A1A90 f end=006A1C24 CGxDeviceD3d__TexDestroy 006A2BB0 f end=006A2BF1 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" -CGxDeviceD3d__ITexCreate 006A2C00 f end=006A2D7E -CGxDeviceD3d__ITexUpload 006A2D80 f end=006A3062 +CGxDeviceD3d__ITexCreate 006A2C00 f end=006A2D7E type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" +CGxDeviceD3d__ITexUpload 006A2D80 f end=006A3062 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" CGxDeviceD3d__ITexMarkAsUpdated 006A3070 f end=006A30CF type="void __thiscall func(CGxDeviceD3d* this, CGxTex* texId)" CGxDeviceD3d__TexCopy 006A30D0 f end=006A31D6 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, C2iVector* a3, C2iVector* a4, uint32_t a5, uint32_t a6)" CGxDeviceD3d__TexStretch 006A31E0 f end=006A3349 type="void __thiscall func(CGxDeviceD3d* this, CGxTex* a1, CGxTex* a2, CiRect* a3, CiRect* a4, uint32_t a5, uint32_t a6)" -CGxDeviceD3d__ISceneBegin 006A3350 f end=006A3417 -CGxDeviceD3d__ISceneEnd 006A3420 f end=006A3449 +CGxDeviceD3d__ISceneBegin 006A3350 f end=006A3417 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__ISceneEnd 006A3420 f end=006A3449 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__ScenePresent 006A3450 f end=006A3611 type="void __thiscall func(CGxDeviceD3d* this, uint32_t mask)" CGxDeviceD3d__Draw 006A3620 f end=006A3716 type="void __thiscall func(CGxDeviceD3d* this, CGxBatch* batch)" -CGxDeviceD3d__IStateSyncEnables 006A3810 f end=006A386E -CGxDeviceD3d__ISetVertexBuffer 006A39E0 f end=006A3A59 -CGxDeviceD3d__IStateSetD3DDefaults 006A3A60 f end=006A3C34 -CGxDeviceD3d__DsSet 006A3C40 f end=006A40F2 -CGxDeviceD3d__ISetColorOp 006A4190 f end=006A41EC -CGxDeviceD3d__ISetAlphaOp 006A41F0 f end=006A424C -CGxDeviceD3d__IStateSyncMaterial 006A4700 f end=006A4846 -CGxDeviceD3d__IStateSyncXforms 006A4850 f end=006A48FE -CGxDeviceD3d__ISetTexture 006A4900 f end=006A4AB3 +CGxDeviceD3d__IStateSyncEnables 006A3810 f end=006A386E type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__ISetVertexBuffer 006A39E0 f end=006A3A59 type="void __thiscall func(CGxDeviceD3d* this, uint32_t stream, LPDIRECT3DVERTEXBUFFER9 buffer, uint32_t offset, uint32_t stride)" +CGxDeviceD3d__IStateSetD3DDefaults 006A3A60 f end=006A3C34 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__DsSet 006A3C40 f end=006A40F2 type="void __thiscall func(CGxDeviceD3d* this, CGxDeviceD3d__EDeviceState state, uint32_t val)" +CGxDeviceD3d__ISetColorOp 006A4190 f end=006A41EC type="void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)" +CGxDeviceD3d__ISetAlphaOp 006A41F0 f end=006A424C type="void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)" +CGxDeviceD3d__IStateSyncMaterial 006A4700 f end=006A4846 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__IStateSyncXforms 006A4850 f end=006A48FE type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__ISetTexture 006A4900 f end=006A4AB3 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, CGxTex* texId)" CGxDeviceD3d__IRsSendToHw 006A4C30 f end=006A5499 type="void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)" -CGxDeviceD3d__ICreateD3dVertexDecl 006A5540 f end=006A5677 -CGxDeviceD3d__IStateSyncVertexPtrs 006A5700 f end=006A5934 -CGxDeviceD3d__IStateSync 006A5940 f end=006A59f5 +CGxDeviceD3d__ICreateD3dVertexDecl 006A5540 f end=006A5677 type="LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)" +CGxDeviceD3d__IStateSyncVertexPtrs 006A5700 f end=006A5934 type="void __thiscall func(CGxDeviceD3d* this)" +CGxDeviceD3d__IStateSync 006A5940 f end=006A59f5 type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__CapsWindowSize 006A5A00 f end=006A5A25 type="void __thiscall func(CGxDeviceD3d* this, CRect* dst)" CGxDeviceD3d__IXformSetWorld 006A5A30 f end=006A5A92 type="void __thiscall func(CGxDeviceD3d* this)" -CGxDeviceD3d__IBindPixelShader 006A5C70 f end=006A5D48 +CGxDeviceD3d__IBindPixelShader 006A5C70 f end=006A5D48 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* ps)" CGxDeviceD3d__IShaderReload 006A5D50 f end=006A5E07 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader, const char* a2, const char* a3)" CGxDeviceD3d__IShaderCreate 006A5E10 f end=006A5E36 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)" CGxDevice__ITexWHDStartEnd 006A5EF0 f end=006A5FDF type="void __thiscall func(CGxDevice* this, CGxTex* texId, uint32_t* width, uint32_t* height, uint32_t* baseMip, uint32_t* mipCount)" @@ -2881,12 +2886,12 @@ CGxDeviceD3d__SceneClear 006A74B0 f end=006A7538 type="void __thiscall func(CGxD CGxDeviceD3d__CapsWindowSizeInScreenCoords 006A9920 f end=006A99D4 type="void __thiscall func(CGxDeviceD3d* this, CRect* dst)" CGxDeviceD3d__XformSetProjection 006A9B40 f end=006A9D88 type="void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)" CGxDeviceD3d__XformSetView 006A9E00 f end=006A9E09 type="void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)" -CGxDeviceD3d__IShaderConstantsFlush 006A9FE0 f end=006AA06D +CGxDeviceD3d__IShaderConstantsFlush 006A9FE0 f end=006AA06D type="void __thiscall func(CGxDeviceD3d* this)" CGxDeviceD3d__IShaderCreatePixel 006AA070 f end=006AA0C5 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)" CGxDeviceD3d__IShaderCreateVertex 006AA0D0 f end=006AA125 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)" CGxDeviceD3d__ShaderCreate 006AA130 f end=006AA18A type="void __thiscall func(CGxDeviceD3d* this, CGxShader** shaders, EGxShTarget target, char* a3, char* a4, int32_t permutations)" CGxDeviceD3d__ShaderDestroy 006AA190 f end=006AA207 type="void __thiscall func(CGxDeviceD3d* this, CGxShader** shader)" -CGxDeviceD3d__IBindVertexShader 006AA2F0 f end=006AA346 +CGxDeviceD3d__IBindVertexShader 006AA2F0 f end=006AA346 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* vs)" CTgaFile__ColorMapEntryBytes 006AA350 f end=006AA379 ; UC CTgaFile__ColorMapBytes 006AA380 f end=006AA3B0 CTgaFile__ValidateColorDepth 006AA3B0 f end=006AA3E0 type="int32_t __thiscall func(CTgaFile* this)" @@ -3357,6 +3362,7 @@ Script_GetVoiceStatus 007DB8D0 f end=007DB9AC Script_VoiceIsDisabledByClient 007DC910 f end=007DC94A Script_GetVoiceSessionMemberInfoBySessionID 007DEEF0 f end=007DF0AF Script_UnitIsTalking 007DF0B0 f end=007DF142 +ComSatClient_Init 007DFAF0 f end=007DFE9C IsRussian 007E1030 f end=007E1049 DayNight__CalcFogRate 007ECD00 f end=007ECD76 ; DayNight::CalcFogRate(float, float) DayNight__SetOverrideLightParamsID 007ECEC0 f end=007ECEDC ; DayNight::SetOverrideLightParamsID(int) @@ -3678,6 +3684,9 @@ CShaderEffectManager__GetEffect 00876530 f end=00876543 ; CShaderEffectManager:: CShaderEffectManager__CreateEffect 00876BE0 f end=00876C97 ; CShaderEffectManager::CreateEffect(char const*) CShaderEffectManager__ParseEffectCallback 00876CA0 f end=00876D8D ; CShaderEffectManager::ParseEffectCallback(CShaderEffectParser::ParsedEffect const&, void*) CShaderEffectManager__AddEffectFile 00876D90 f end=00876E2C ; CShaderEffectManager::AddEffectFile(char const*) +SI2__Log_Write 00877E10 f end=00878005 +SI2__Log_Write 00878010 f end=0087807E +SI2__InitCapture 0087E020 f end=0087EBBD stub_return_one_byte 008A1420 f end=008A1423 ; known names: System_File::Shutdown, CVGxVideoOptionsVersionCallback FFX__Destroy 008C0360 f end=008C0589 stub_return_int32_one 008C8DE0 f type="int32_t __stdcall func()" ; Known names: GxDefaultApi, CCommand_Perf @@ -4448,6 +4457,7 @@ CGxDevice__s_shadowConstants 00C5DFE0 l CGxDevice__m_logBytes 00C5FFF4 l type="uint32_t" CGxDevice__m_log 00C5FFF8 l type="HSLOG" CGxDevice__s_uiPixelShader 00C5FFFC l +CGxDevice__s_clientAdjust 00C60300 l type="C2iVector" isIdent 00C60760 l ClientServices__m_instance 00C79CE4 l ClientServices__m_selectRealmInfoValid 00C79CE9 l diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index 232919707a6063272ee55d9e613cd4a530824572..5d9606b1700015f4689674b1d41b2701a90fde47 100644 GIT binary patch delta 35730 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 C2xy1^ delta 35754 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 H8BP0tw8dz4 diff --git a/profile/3.3.5a-windows-386/x64dbg/types.json b/profile/3.3.5a-windows-386/x64dbg/types.json index e4e70c2..926627a 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -10540,6 +10540,37 @@ } ] }, + { + "name": "EmergencyMem", + "size": 20, + "members": [ + { + "type": "uint32_t", + "name": "unk00", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "unk04", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "unk08", + "offset": 8 + }, + { + "type": "uint32_t", + "name": "unk0C", + "offset": 12 + }, + { + "type": "uint32_t", + "name": "unk10", + "offset": 16 + } + ] + }, { "name": "EmotesRec", "size": 28, @@ -47058,55 +47089,11 @@ "offset": 10432 }, { - "type": "uint32_t", - "name": "unk28C4", + "type": "EmergencyMem", + "name": "m_emergencyMem", + "arrsize": 2, "offset": 10436 }, - { - "type": "uint32_t", - "name": "unk28C8", - "offset": 10440 - }, - { - "type": "uint32_t", - "name": "unk28CC", - "offset": 10444 - }, - { - "type": "uint32_t", - "name": "unk28D0", - "offset": 10448 - }, - { - "type": "uint8_t", - "name": "unk28D4", - "offset": 10452 - }, - { - "type": "uint32_t", - "name": "unk28D8", - "offset": 10456 - }, - { - "type": "uint32_t", - "name": "unk28DC", - "offset": 10460 - }, - { - "type": "uint32_t", - "name": "unk28E0", - "offset": 10464 - }, - { - "type": "uint32_t", - "name": "unk28E4", - "offset": 10468 - }, - { - "type": "uint32_t", - "name": "unk28E8", - "offset": 10472 - }, { "type": "TSFixedArray_CGxAppRenderState", "name": "m_appRenderStates",