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 fab6265..1fb2ce9 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 @@ -6,25 +6,39 @@ static import_data_types() { apply_type(0x00401030, "void __stdcall func(void* ptr)"); apply_type(0x00408070, "void __stdcall func(float* minX, float* maxX, float* minY, float* maxY, float* minZ, float* maxZ)"); apply_type(0x00409670, "void __thiscall func(CGxDevice* this)"); - apply_type(0x004271D0, "bool __stdcall func(char* name, Blizzard__File__Info* info)"); - apply_type(0x00427250, "Blizzard__File__Info* __stdcall func(Blizzard__File__StreamRecord* file)"); + apply_type(0x004271D0, "bool __stdcall func(char* name, Blizzard__File__FileInfo* info)"); + apply_type(0x00427250, "Blizzard__File__FileInfo* __stdcall func(Blizzard__File__StreamRecord* file)"); apply_type(0x004272C0, "bool __stdcall func(Blizzard__File__StreamRecord* file, Blizzard__File__FileInfo* info)"); + apply_type(0x00427560, "bool __stdcall func(char* src, char* dst)"); + apply_type(0x004275B0, "bool __stdcall func(char* src, char* dst, bool overwrite)"); + apply_type(0x00427660, "bool __stdcall func(char* name, void* param, Blizzard__File__ProcessDirCallback callback, bool flag)"); + apply_type(0x00427720, "bool __stdcall func(Blizzard__File__StreamRecord* file, void* data, int64_t offset, uint32_t* count)"); + apply_type(0x00427910, "bool __stdcall func(Blizzard__File__StreamRecord* file, int64_t offset, int32_t whence)"); + apply_type(0x004279B0, "bool __stdcall func(Blizzard__File__StreamRecord* file, void *data, uint32_t* count)"); apply_type(0x00427CC0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00427D10, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); + apply_type(0x00428210, "bool __stdcall func(char* name, char* pattern)"); apply_type(0x00428500, "char* __stdcall func(char* str)"); apply_type(0x00428670, "int32_t __stdcall func(char* dst, const char* src, int32_t count)"); + apply_type(0x004286C0, "int32_t __stdcall func(char* dst, char* src, int32_t count)"); apply_type(0x00428940, "int32_t __stdcall func(uint8_t* dst, uint32_t dstmaxchars, const uint16_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)"); apply_type(0x00428B00, "int32_t __stdcall func(uint16_t* dst, uint32_t dstmaxchars, const uint8_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)"); apply_type(0x00428F00, "Blizzard__Time__Timestamp __stdcall func(uint64_t fileTime)"); + apply_type(0x0042A9B0, "void __stdcall func(char* src, char* dst, int32_t count)"); + apply_type(0x0042AA00, "void __stdcall func(char* src, char* dst, int32_t count)"); apply_type(0x0042D440, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x0042D620, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); + apply_type(0x0042E4B0, "void __stdcall func(char* dst, int32_t count, char separator)"); apply_type(0x004325C0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); + apply_type(0x00433510, "void __stdcall func(char* a1, int32_t a2, char* a3, char* a4)"); apply_type(0x00433590, "void __stdcall func(uint8_t *buffer, uint32_t buffersize, const char *str)"); apply_type(0x00435580, "void __stdcall func(Blizzard__File__StreamRecord* file)"); apply_type(0x004356B0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00435790, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00435890, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x004359C0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); + apply_type(0x0044FA10, "bool __stdcall func(Blizzard__File__ProcessDirParms* dirwalkparms)"); + apply_type(0x004549B0, "bool __stdcall func(uint32_t flags, DWORD* sharemode, DWORD* desiredaccess, DWORD* creationdisposition, DWORD* flagsandattributes)"); apply_type(0x00454A50, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00454AC0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00454AE0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); @@ -45,6 +59,26 @@ static import_data_types() { apply_type(0x00455BA0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00455CA0, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); apply_type(0x00455D20, "int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"); + apply_type(0x00461B00, "void __stdcall func(HOSFILE fileHandle)"); + apply_type(0x00461B10, "int32_t __stdcall func(char* path)"); + apply_type(0x00461B30, "int32_t __stdcall func(char* dirName)"); + apply_type(0x00461B50, "int32_t __stdcall func(HOSFILE fileHandle, void* buffer, uint32_t bytesToRead, uint32_t* bytesRead)"); + apply_type(0x00461B90, "int32_t __stdcall func(HOSFILE fileHandle, void* buffer, uint32_t bytesToWrite, uint32_t* bytesWritten)"); + apply_type(0x00461BD0, "void __stdcall func(HOSFILE fileHandle)"); + apply_type(0x00461C00, "uint32_t __stdcall func(char* fileName)"); + apply_type(0x00461C40, "int32_t __stdcall func(char* fileName, uint32_t attributes)"); + apply_type(0x00461C70, "int32_t __stdcall func(char* existingFileName, char* newFileName)"); + apply_type(0x00461CA0, "int32_t __stdcall func(char* existingFileName, char* newFileName, int32_t failIfExists)"); + apply_type(0x00461CE0, "int32_t __stdcall func(char* fileName)"); + apply_type(0x00461D10, "int32_t __stdcall func(char* pathName, int32_t recursive)"); + apply_type(0x00461D40, "int32_t __stdcall func(char* pathName)"); + apply_type(0x00461D70, "int32_t __stdcall func(char* pathName, uint32_t flags)"); + apply_type(0x00461DB0, "int32_t __stdcall func(char* pathName)"); + apply_type(0x00461DE0, "int32_t __stdcall func(uint32_t buffersize, char* buffer)"); + apply_type(0x00461E10, "bool __stdcall func(Blizzard__File__ProcessDirParms* parms)"); + apply_type(0x00461EF0, "Blizzard__File__Mode __stdcall func(uint32_t desiredAcccess, uint8_t shareMode, uint32_t createDisposition)"); + apply_type(0x00461F70, "char* __stdcall func()"); + apply_type(0x00461FA0, "HOSFILE __stdcall func(char* fileName, uint32_t desiredAccess, uint32_t shareMode, uint32_t createDisposition, uint32_t flagsAndAttributes, uint32_t extendedFileType)"); apply_type(0x0047B6F0, "int32_t __stdcall func(CMDOPT)"); apply_type(0x0047B700, "char* __stdcall func(CMDOPT)"); apply_type(0x0047B720, "int32_t __stdcall func()"); @@ -97,6 +131,7 @@ static import_data_types() { apply_type(0x00681790, "void __stdcall func(uint32_t maxFPSBk)"); apply_type(0x006817C0, "void __stdcall func()"); apply_type(0x006817E0, "int __stdcall func(char* format, ...)"); + apply_type(0x00681950, "CGxFormat* __thiscall func(CGxFormat* this)"); apply_type(0x00681A60, "void __stdcall func()"); apply_type(0x00681AB0, "void __stdcall func(uint32_t indexCount, uint16_t* indices)"); apply_type(0x00681B00, "void __stdcall func(CGxBuf* buf, EGxVertexBufferFormat format)"); @@ -473,6 +508,7 @@ static import_data_types() { apply_type(0x009AD000, "void __thiscall func(DayNight__DNGlare* this, char* a1)"); apply_type(0x009E537C, "uint32_t[7]"); apply_type(0x009E5398, "uint8_t[256]"); + apply_type(0x009E5630, "Blizzard__File__FileInfo"); apply_type(0x009E9EC8, "uint32_t[7]"); apply_type(0x00A2DDC0, "CGxDevice__vtable"); apply_type(0x00AB90AC, "Blizzard__File__Filesystem*"); 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 6ee3808..31c85d9 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 @@ -8,10 +8,16 @@ static import_functions() { set_func_cmt(0x004010D0, "CDataStore::IsRead() const", 0); set_func_cmt(0x004010E0, "CDataStore::Reset()", 0); set_func_cmt(0x00401130, "CDataStore::Finalize()", 0); + set_func_cmt(0x00401200, "int __cdecl PatchFiles::qsortpatchfiles(char **, char **)", 0); set_func_cmt(0x004038A0, "CDataStore::~CDataStore()", 0); + set_func_cmt(0x00405A10, "int __cdecl PatchFiles::EnumPatchArchives(OS_FILE_DATA *fileData, PatchOnDemand__Cache *cbParam)", 0); + set_func_cmt(0x00405AB0, "int __thiscall PatchFiles::LoadArchives(PatchFiles *this, const char *localeCode, char a3)", 0); set_func_cmt(0x00427130, "Blizzard::File::Delete(char const*)", 0); set_func_cmt(0x00427500, "Blizzard::File::MakeAbsolutePath(char const*, char*, int, bool)", 0); set_func_cmt(0x00427560, "Blizzard::File::Move(char const*, char const*)", 0); + set_func_cmt(0x00427720, "Blizzard::File::Read(Blizzard::File::StreamRecord*, void*, long long, int*, int)", 0); + set_func_cmt(0x00433510, "Blizzard::String::JoinPath(char*, int, char const*, char const*)", 0); + set_func_cmt(0x0044FA10, "Blizzard::File::RemoveDirectoryAndContents(char const*, bool)::Internal::Callback(Blizzard::File::ProcessDirParms const&)", 0); set_func_cmt(0x0047ADE0, "CDataStore::GetBufferParams(void const**, unsigned int*, unsigned int*)", 0); set_func_cmt(0x0047AE10, "CDataStore::DetachBuffer(void**, unsigned int*, unsigned int*)", 0); set_func_cmt(0x0047AE50, "virtual void __thiscall CDataStore::InternalDestroy(unsigned char * &,unsigned int &,unsigned int &)", 0); @@ -33,6 +39,7 @@ static import_functions() { set_func_cmt(0x0047B480, "CDataStore::GetString(char*, unsigned int)", 0); set_func_cmt(0x0047B560, "CDataStore::GetArray(unsigned char*, unsigned int)", 0); set_func_cmt(0x0047B6B0, "CDataStore::GetDataInSitu(void*&, unsigned int)", 0); + set_func_cmt(0x0047B800, "void __cdecl quicksort(unsigned int, unsigned int, int, int (__cdecl *)(unsigned int, unsigned int, int), int)", 0); set_func_cmt(0x0047F230, "IEvtSchedulerProcess as an independent function appears to be optimized out", 0); set_func_cmt(0x004A2780, "_CBackdropGenerator::LoadXML(linkObject*, CStatus*)", 0); set_func_cmt(0x004A81B0, "FrameScript_GetObjectThis(lua_State*, int)", 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 4dd0c20..24c6312 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 @@ -8,9 +8,12 @@ static import_symbols() { set_name(0x004010D0, "CDataStore__IsRead"); set_name(0x004010E0, "CDataStore__Reset"); set_name(0x00401130, "CDataStore__Finalize"); + set_name(0x00401200, "PatchFiles__qsortpatchfiles"); set_name(0x00402B20, "SetPaths"); set_name(0x004033B0, "ClientKillTimer"); set_name(0x004038A0, "CDataStore__destructor"); + set_name(0x00405A10, "PatchFiles__EnumPatchArchives"); + set_name(0x00405AB0, "PatchFiles__LoadArchives"); set_name(0x004067F0, "InitializeGlobal"); set_name(0x00406B70, "DestroyGlobal"); set_name(0x00406C70, "CommonMain"); @@ -42,6 +45,7 @@ static import_symbols() { set_name(0x00424F80, "SFile__Open"); set_name(0x004270F0, "Blizzard__File__Close"); set_name(0x00427130, "Blizzard__File__Delete"); + set_name(0x00427170, "Blizzard__File__Exists"); set_name(0x004271D0, "Blizzard__File__GetFileInfo"); set_name(0x00427250, "Blizzard__File__GetFileInfo@2"); set_name(0x004272C0, "Blizzard__File__GetFileInfo@3"); @@ -53,22 +57,40 @@ static import_symbols() { set_name(0x00427560, "Blizzard__File__Move"); set_name(0x004275B0, "Blizzard__File__Copy"); set_name(0x00427600, "Blizzard__File__Open"); + set_name(0x00427660, "Blizzard__File__ProcessDirFast"); set_name(0x004276C0, "Blizzard__File__Read"); + set_name(0x00427720, "Blizzard__File__Read@2"); + set_name(0x00427800, "Blizzard__File__RemoveDirectory"); + set_name(0x00427850, "Blizzard__File__SetAttributes"); + set_name(0x00427910, "Blizzard__File__SetPos"); + set_name(0x00427970, "Blizzard__File__SetWorkingDirectory"); set_name(0x004279B0, "Blizzard__File__Write"); + set_name(0x00427C20, "System_File__ToNativeAttributes"); set_name(0x00427C70, "System_File__FromNativeAttributes"); set_name(0x00427CC0, "System_File__ReadP"); set_name(0x00427D10, "System_File__WriteP"); + set_name(0x004281D0, "Blizzard__File__IsDirectory"); + set_name(0x004281F0, "Blizzard__File__IsFile"); + set_name(0x00428210, "Blizzard__File__SimpleGlob"); set_name(0x00428500, "Blizzard__String__FindFilename"); + set_name(0x00428640, "Blizzard__String__FirstPathSeparator"); set_name(0x00428670, "Blizzard__String__Copy"); + set_name(0x004286C0, "Blizzard__String__Append"); set_name(0x00428940, "Blizzard__Unicode__ConvertUTF16to8"); set_name(0x00428B00, "Blizzard__Unicode__ConvertUTF8to16"); set_name(0x00428F00, "Blizzard__Time__FromFileTime"); + set_name(0x0042A9B0, "Blizzard__String__MakeUnivPath"); + set_name(0x0042AA00, "Blizzard__String__MakeBackslashPath"); set_name(0x0042CEA0, "Blizzard__File__CreateDirectory"); set_name(0x0042CFB0, "HoistAll"); set_name(0x0042D440, "System_File__Stacked__file_init"); set_name(0x0042D620, "System_File__Close"); + set_name(0x0042E420, "Blizzard__String__MakeConsistentPath"); + set_name(0x0042E4B0, "Blizzard__File__ForceTrailingSeparator"); + set_name(0x0042E630, "Blizzard__String__FindPathSeparatorReverse"); set_name(0x0042E670, "Blizzard__String__Format"); set_name(0x004325C0, "System_File__GetRootChars"); + set_name(0x00433510, "Blizzard__String__JoinPath"); set_name(0x00433590, "System_File__FromNativeName"); set_name(0x00433650, "Blizzard__String__QuickNativePath_300__QuickNativePath"); set_name(0x00435580, "System_File__GetFileInfoByFile"); @@ -76,8 +98,11 @@ static import_symbols() { set_name(0x00435790, "System_File__MakeAbsolutePath"); set_name(0x00435890, "System_File__Move"); set_name(0x004359C0, "System_File__Delete"); + set_name(0x0044FA10, "Blizzard__File__RemoveDirectoryAndContents__Internal__Callback"); + set_name(0x004518C0, "Blizzard__File__RemoveDirectoryAndContents"); set_name(0x00454870, "System_File__read_overlapped"); set_name(0x00454910, "System_File__write_overlapped"); + set_name(0x004549B0, "System_File__ToCreateFlags"); set_name(0x00454A50, "System_File__SetWorkingDirectory"); set_name(0x00454AC0, "System_File__Create"); set_name(0x00454AE0, "System_File__GetWorkingDirectory"); @@ -102,11 +127,26 @@ static import_symbols() { set_name(0x00457910, "System_File__write_locked"); set_name(0x00459910, "System_File__detect_io_mode"); set_name(0x00461B00, "OsCloseFile"); + set_name(0x00461B10, "OsFileExists"); + set_name(0x00461B30, "OsDirectoryExists"); set_name(0x00461B50, "OsReadFile"); + set_name(0x00461B90, "OsWriteFile"); set_name(0x00461BD0, "OsGetFileSize"); + set_name(0x00461C00, "OsGetFileAttributes"); + set_name(0x00461C40, "OsSetFileAttributes"); + set_name(0x00461C70, "OsMoveFile"); + set_name(0x00461CA0, "OsCopyFile"); + set_name(0x00461CE0, "OsDeleteFile"); set_name(0x00461D10, "OsCreateDirectory"); + set_name(0x00461D40, "OsRemoveDirectory"); + set_name(0x00461D70, "OsRemoveDirectoryRecurse"); set_name(0x00461DB0, "OsSetCurrentDirectory"); + set_name(0x00461DE0, "OsGetCurrentDirectory"); + set_name(0x00461E10, "OsFileList__Internal__Callback"); + set_name(0x00461EF0, "OsCreateFileMode"); + set_name(0x00461F70, "OsFileGetDownloadFolder"); set_name(0x00461FA0, "OsCreateFile"); + set_name(0x00462000, "OsFileList"); set_name(0x0047ADD0, "nullsub_2"); set_name(0x0047ADE0, "CDataStore__GetBufferParams"); set_name(0x0047AE10, "CDataStore__DetachBuffer"); @@ -133,6 +173,7 @@ static import_symbols() { set_name(0x0047B700, "CmdLineGetString"); set_name(0x0047B720, "CmdLineProcess"); set_name(0x0047B760, "j_nullsub_3"); + set_name(0x0047B800, "quicksort"); set_name(0x0047B9E0, "ConvertUTF16toUTF8"); set_name(0x0047BF30, "HandleClose"); set_name(0x0047BF50, "HandleCreate"); @@ -2204,6 +2245,7 @@ static import_symbols() { set_name(0x00681790, "GxSetMaxFPSBk"); set_name(0x006817C0, "GxLogOpen"); set_name(0x006817E0, "GxLog"); + set_name(0x00681950, "CGxFormat__CGxFormat"); set_name(0x00681A60, "GxDrawLockedElements"); set_name(0x00681AB0, "GxPrimIndexPtr"); set_name(0x00681B00, "GxPrimVertexPtr"); @@ -3015,6 +3057,7 @@ static import_symbols() { set_name(0x009DE1D0, "nullsub_150"); set_name(0x009E537C, "firstByteMark"); set_name(0x009E5398, "bytesFromUTF8"); + set_name(0x009E5630, "s_noinfo"); set_name(0x009E9EC8, "firstByteMark@2"); set_name(0x009F1074, "s_pixelFormatToMipBitsCache"); set_name(0x00A2DDC0, "CGxDevice__vtable"); @@ -3287,6 +3330,7 @@ static import_symbols() { set_name(0x00AF4A28, "g_lightDB"); set_name(0x00B38A5C, "System_File__s_read_init"); set_name(0x00B38A64, "System_File__s_write_init"); + set_name(0x00B38A88, "OsFileGetDownloadFolder__s_downloadfolder"); set_name(0x00B417C8, "s_mainThread"); set_name(0x00B417D0, "s_interactiveCount"); set_name(0x00B41850, "s_messageRecycler"); diff --git a/profile/3.3.5a-windows-386/include/bc/file/info.h b/profile/3.3.5a-windows-386/include/bc/file/info.h index 7e21c7d..0766eb7 100644 --- a/profile/3.3.5a-windows-386/include/bc/file/info.h +++ b/profile/3.3.5a-windows-386/include/bc/file/info.h @@ -11,11 +11,11 @@ struct Blizzard__File__FileInfo { // uint32_t unk08; // uint32_t unk0C; uint64_t size; // 08 - uint32_t attributes; - Blizzard__Time__Timestamp creationTime; - Blizzard__Time__Timestamp lastWriteTime; - Blizzard__Time__Timestamp lastAccessTime; - int32_t exists; + int32_t attributes; + Blizzard__Time__Timestamp createtime; + Blizzard__Time__Timestamp lastwritetime; + Blizzard__Time__Timestamp lastaccesstime; + int32_t filetype; int32_t normal; }; diff --git a/profile/3.3.5a-windows-386/include/bc/file/mode.h b/profile/3.3.5a-windows-386/include/bc/file/mode.h new file mode 100644 index 0000000..e9cbf36 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/bc/file/mode.h @@ -0,0 +1,20 @@ +#ifndef BC_FILE_MODE_H +#define BC_FILE_MODE_H + +DECLARE_ENUM(Blizzard__File__Mode); + +enum Blizzard__File__Mode { + read = 0x0001, + write = 0x0002, + shareread = 0x0004, + sharewrite = 0x0008, + nocache = 0x0040, + temporary = 0x0080, + truncate = 0x0100, + append = 0x0200, + create = 0x0400, + mustnotexist = 0x0800, + mustexist = 0x1000 +}; + +#endif diff --git a/profile/3.3.5a-windows-386/include/bc/file/removedirectory.h b/profile/3.3.5a-windows-386/include/bc/file/removedirectory.h new file mode 100644 index 0000000..552387d --- /dev/null +++ b/profile/3.3.5a-windows-386/include/bc/file/removedirectory.h @@ -0,0 +1,11 @@ +#ifndef BC_FILE_REMOVE_DIRECTORY_H +#define BC_FILE_REMOVE_DIRECTORY_H + +DECLARE_STRUCT(Blizzard__File__RemoveDirectoryAndContents__Internal__RemoveDirectoryAndContentsParms); + +struct Blizzard__File__RemoveDirectoryAndContents__Internal__RemoveDirectoryRecurseData { + bool unk00; + bool unk01; // set normal? +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/bc/file/stream.h b/profile/3.3.5a-windows-386/include/bc/file/stream.h index 6f5aae7..ca9d97b 100644 --- a/profile/3.3.5a-windows-386/include/bc/file/stream.h +++ b/profile/3.3.5a-windows-386/include/bc/file/stream.h @@ -7,10 +7,11 @@ DECLARE_STRUCT(Blizzard__File__StreamRecord); struct Blizzard__File__StreamRecord { void* filehandle; - uint32_t flags; + int32_t mode; bool haveinfo; uint32_t unk0C; Blizzard__File__FileInfo info; + // GetFileInfo only gets a size if this is null or points to a zero value int32_t* unk48; char* name; // name is a pointer to &filehandle (0x00) + sizeof(StreamRecord) // extra buffer that holds the actual data of name diff --git a/profile/3.3.5a-windows-386/include/bc/main.h b/profile/3.3.5a-windows-386/include/bc/main.h new file mode 100644 index 0000000..e2838a8 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/bc/main.h @@ -0,0 +1,14 @@ +#ifndef BC_MAIN_H +#define BC_MAIN_H + +#include "bc/file/filesystem.h" +#include "bc/file/stream.h" +#include "bc/file/processdir.h" +#include "bc/lock/do_once.h" +#include "bc/string/quicknativepath.h" +#include "bc/systemfile/stacked.h" +#include "bc/os/file.h" +#include "bc/os/file_data.h" +#include "bc/time/timestamp.h" + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/bc/os/file.h b/profile/3.3.5a-windows-386/include/bc/os/file.h new file mode 100644 index 0000000..916cfbe --- /dev/null +++ b/profile/3.3.5a-windows-386/include/bc/os/file.h @@ -0,0 +1,12 @@ +#ifndef BC_OS_FILE_H +#define BC_OS_FILE_H + +DECLARE_STRUCT(HOSFILE__); + +struct HOSFILE__ { + int32_t unused__; +}; + +typedef HOSFILE__* HOSFILE; + +#endif diff --git a/profile/3.3.5a-windows-386/include/bc/os/file_data.h b/profile/3.3.5a-windows-386/include/bc/os/file_data.h new file mode 100644 index 0000000..de2d882 --- /dev/null +++ b/profile/3.3.5a-windows-386/include/bc/os/file_data.h @@ -0,0 +1,20 @@ +#ifndef BC_OS_FILE_DATA_H +#define BC_OS_FILE_DATA_H + +DECLARE_STRUCT(OS_FILE_DATA); +DECLARE_STRUCT(FileListParms); + +struct OS_FILE_DATA { + uint32_t size; + uint32_t flags; + char fileName[260]; +}; + +struct OsFileList__Internal__FileListParms { + void* callback; + void* param; + uint32_t flags; + char* pattern; +}; + +#endif \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/include/bc/osfile.h b/profile/3.3.5a-windows-386/include/bc/osfile.h deleted file mode 100644 index 06417c3..0000000 --- a/profile/3.3.5a-windows-386/include/bc/osfile.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef BC_OS_FILE_H -#define BC_OS_FILE_H - -#include "common/handle.h" - -DECLARE_HANDLE(HOSFILE); - -#endif diff --git a/profile/3.3.5a-windows-386/include/bc/systemfile/stacked.h b/profile/3.3.5a-windows-386/include/bc/systemfile/stacked.h index 60b0216..1723d64 100644 --- a/profile/3.3.5a-windows-386/include/bc/systemfile/stacked.h +++ b/profile/3.3.5a-windows-386/include/bc/systemfile/stacked.h @@ -5,6 +5,7 @@ #include "bc/file/stream.h" #include "bc/file/info.h" #include "bc/file/processdir.h" +#include "bc/file/mode.h" DECLARE_STRUCT(System_File__Stacked__FileParms); @@ -17,19 +18,31 @@ struct System_File__Stacked__FileParms { char* newname; // 0x8 Blizzard__File__StreamRecord* file; // 0xC Blizzard__File__FileInfo* info; - uint32_t extra[17]; // 0x10 - uint32_t flags; + uint32_t extra; + Blizzard__File__FileInfo noinfo; + uint32_t setinfo; + // something to do with file info + // used by: + // Blizzard::File::GetFileInfo + // set to -1 + uint32_t getinfo; + Blizzard__File__Mode mode; // 0x58 void* data; // uint32_t count; int64_t offset; - uint32_t unk__; + int32_t whence; char* buffer; int32_t buffersize; - bool unkbool1; - bool unkbool2; + bool recurse; + // something to do with MakeAbsolutePath? (normalize? resolve? resolvesymlinks?) + bool canonicalize; void* dirwalkparam; Blizzard__File__ProcessDirCallback dirwalkcallback; - uint32_t extra3[2]; + // set to false by Blizzard::File::ProcessDirFast + bool unk88; + bool overwrite; + bool set_acl; // something that causes a security descriptor to be generated in mkdir() (takeownership? chown? ) + uint32_t unk8C; }; #endif diff --git a/profile/3.3.5a-windows-386/include/main.h b/profile/3.3.5a-windows-386/include/main.h index ede534b..edb58c8 100644 --- a/profile/3.3.5a-windows-386/include/main.h +++ b/profile/3.3.5a-windows-386/include/main.h @@ -13,14 +13,7 @@ #include "async/object.h" #include "async/queue.h" -#include "bc/file/filesystem.h" -#include "bc/file/stream.h" -#include "bc/file/processdir.h" -#include "bc/lock/do_once.h" -#include "bc/string/quicknativepath.h" -#include "bc/systemfile/stacked.h" -#include "bc/osfile.h" -#include "bc/time/timestamp.h" +#include "bc/main.h" #include "camera/camera.h" diff --git a/profile/3.3.5a-windows-386/symbol/bc/func.sym b/profile/3.3.5a-windows-386/symbol/bc/func.sym index e9960bf..6034c60 100644 --- a/profile/3.3.5a-windows-386/symbol/bc/func.sym +++ b/profile/3.3.5a-windows-386/symbol/bc/func.sym @@ -1,34 +1,53 @@ Blizzard__Memory__Allocate 00401010 f end=00401067 type="void* __stdcall func(uint32_t count)" Blizzard__Memory__Free 00401030 f end=0040104B type="void __stdcall func(void* ptr)" ; void operator delete(void*) -Blizzard__File__Close 004270F0 f end=0042712f +Blizzard__File__Close 004270F0 f end=0042712F Blizzard__File__Delete 00427130 f end=0042716F ; Blizzard::File::Delete(char const*) -Blizzard__File__GetFileInfo 004271D0 f end=00427242 type="bool __stdcall func(char* name, Blizzard__File__Info* info)" -Blizzard__File__GetFileInfo 00427250 f end=004272B8 type="Blizzard__File__Info* __stdcall func(Blizzard__File__StreamRecord* file)" +Blizzard__File__Exists 00427170 f end=004271C3 +Blizzard__File__GetFileInfo 004271D0 f end=00427242 type="bool __stdcall func(char* name, Blizzard__File__FileInfo* info)" +Blizzard__File__GetFileInfo 00427250 f end=004272B8 type="Blizzard__File__FileInfo* __stdcall func(Blizzard__File__StreamRecord* file)" Blizzard__File__GetFileInfo 004272C0 f end=00427325 type="bool __stdcall func(Blizzard__File__StreamRecord* file, Blizzard__File__FileInfo* info)" Blizzard__File__GetPos 004273A0 f end=00427406 Blizzard__File__GetRootChars 00427410 f end=00427466 Blizzard__File__GetWorkingDirectory 00427470 f end=004274B5 Blizzard__File__IsAbsolutePath 004274C0 f end=004274FF Blizzard__File__MakeAbsolutePath 00427500 f end=00427551 ; Blizzard::File::MakeAbsolutePath(char const*, char*, int, bool) -Blizzard__File__Move 00427560 f end=004275A8 ; Blizzard::File::Move(char const*, char const*) -Blizzard__File__Copy 004275B0 f end=004275FE +Blizzard__File__Move 00427560 f end=004275A8 type="bool __stdcall func(char* src, char* dst)" ; Blizzard::File::Move(char const*, char const*) +Blizzard__File__Copy 004275B0 f end=004275FE type="bool __stdcall func(char* src, char* dst, bool overwrite)" Blizzard__File__Open 00427600 f end=0042765E +Blizzard__File__ProcessDirFast 00427660 f end=004276BA type="bool __stdcall func(char* name, void* param, Blizzard__File__ProcessDirCallback callback, bool flag)" Blizzard__File__Read 004276C0 f end=0042771F -Blizzard__File__Write 004279B0 f end=00427A12 +Blizzard__File__Read 00427720 f end=0042778B type="bool __stdcall func(Blizzard__File__StreamRecord* file, void* data, int64_t offset, uint32_t* count)" ; Blizzard::File::Read(Blizzard::File::StreamRecord*, void*, long long, int*, int) +Blizzard__File__RemoveDirectory 00427800 f end=00427843 +Blizzard__File__SetAttributes 00427850 f end=004278A2 +Blizzard__File__SetPos 00427910 f end=00427961 type="bool __stdcall func(Blizzard__File__StreamRecord* file, int64_t offset, int32_t whence)" +Blizzard__File__SetWorkingDirectory 00427970 f end=004279AF +Blizzard__File__Write 004279B0 f end=00427A12 type="bool __stdcall func(Blizzard__File__StreamRecord* file, void *data, uint32_t* count)" +System_File__ToNativeAttributes 00427C20 f end=00427C68 System_File__FromNativeAttributes 00427C70 f end=00427CBC System_File__ReadP 00427CC0 f type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__WriteP 00427D10 f end=00427D5C type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__File__IsDirectory 004281D0 f end=004281EB +Blizzard__File__IsFile 004281F0 f end=0042820B +Blizzard__File__SimpleGlob 00428210 f end=004282F2 type="bool __stdcall func(char* name, char* pattern)" Blizzard__String__FindFilename 00428500 f end=00428538 type="char* __stdcall func(char* str)" +Blizzard__String__FirstPathSeparator 00428640 f end=00428668 Blizzard__String__Copy 00428670 f end=004286BB type="int32_t __stdcall func(char* dst, const char* src, int32_t count)" +Blizzard__String__Append 004286C0 f end=00428721 type="int32_t __stdcall func(char* dst, char* src, int32_t count)" Blizzard__Unicode__ConvertUTF16to8 00428940 f end=00428AFC type="int32_t __stdcall func(uint8_t* dst, uint32_t dstmaxchars, const uint16_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)" Blizzard__Unicode__ConvertUTF8to16 00428B00 f end=00428C94 type="int32_t __stdcall func(uint16_t* dst, uint32_t dstmaxchars, const uint8_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)" Blizzard__Time__FromFileTime 00428F00 f end=00428F56 type="Blizzard__Time__Timestamp __stdcall func(uint64_t fileTime)" +Blizzard__String__MakeUnivPath 0042A9B0 f end=0042A9FB type="void __stdcall func(char* src, char* dst, int32_t count)" +Blizzard__String__MakeBackslashPath 0042AA00 f end=0042AA4B type="void __stdcall func(char* src, char* dst, int32_t count)" Blizzard__File__CreateDirectory 0042CEA0 f end=0042CEE9 HoistAll 0042CFB0 f end=0042D43E System_File__Stacked__file_init 0042D440 f end=0042D4F4 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Close 0042D620 f end=0042D64F type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__String__MakeConsistentPath 0042E420 f end=0042E4AA +Blizzard__File__ForceTrailingSeparator 0042E4B0 f end=0042E522 type="void __stdcall func(char* dst, int32_t count, char separator)" +Blizzard__String__FindPathSeparatorReverse 0042E630 f end=0042E663 Blizzard__String__Format 0042E670 f end=0042E6A1 System_File__GetRootChars 004325C0 f type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__String__JoinPath 00433510 f end=0043356B type="void __stdcall func(char* a1, int32_t a2, char* a3, char* a4)" ; Blizzard::String::JoinPath(char*, int, char const*, char const*) System_File__FromNativeName 00433590 f end=00433650 type="void __stdcall func(uint8_t *buffer, uint32_t buffersize, const char *str)" Blizzard__String__QuickNativePath_300__QuickNativePath 00433650 f end=0043375A System_File__GetFileInfoByFile 00435580 f end=004356A2 type="void __stdcall func(Blizzard__File__StreamRecord* file)" @@ -36,8 +55,11 @@ System_File__Exists 004356B0 f end=00435781 type="int32_t __stdcall func(Blizzar System_File__MakeAbsolutePath 00435790 f end=00435889 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Move 00435890 f end=004359B6 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Delete 004359C0 f end=00435A57 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__File__RemoveDirectoryAndContents__Internal__Callback 0044FA10 f end=0044FB29 type="bool __stdcall func(Blizzard__File__ProcessDirParms* dirwalkparms)" ; Blizzard::File::RemoveDirectoryAndContents(char const*, bool)::Internal::Callback(Blizzard::File::ProcessDirParms const&) +Blizzard__File__RemoveDirectoryAndContents 004518C0 f end=004519A7 System_File__read_overlapped 00454870 f end=00454904 System_File__write_overlapped 00454910 f end=004549A9 +System_File__ToCreateFlags 004549B0 f end=00454A4E type="bool __stdcall func(uint32_t flags, DWORD* sharemode, DWORD* desiredaccess, DWORD* creationdisposition, DWORD* flagsandattributes)" System_File__SetWorkingDirectory 00454A50 f end=00454AB5 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Create 00454AC0 f end=00454AD3 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__GetWorkingDirectory 00454AE0 f end=00454B44 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" @@ -61,9 +83,24 @@ System_File__Write 00455D20 f end=00455D3E type="int32_t __stdcall func(Blizzard System_File__read_locked 00457820 f end=00457904 System_File__write_locked 00457910 f end=004579f4 System_File__detect_io_mode 00459910 f end=00459998 -OsCloseFile 00461B00 f end=00461B09 -OsReadFile 00461B50 f end=00461B88 -OsGetFileSize 00461BD0 f end=00461BF4 -OsCreateDirectory 00461D10 f end=00461D3F -OsSetCurrentDirectory 00461DB0 f end=00461DD7 -OsCreateFile 00461FA0 f end=00461FFA +OsCloseFile 00461B00 f end=00461B09 type="void __stdcall func(HOSFILE fileHandle)" +OsFileExists 00461B10 f end=00461B27 type="int32_t __stdcall func(char* path)" +OsDirectoryExists 00461B30 f end=00461B47 type="int32_t __stdcall func(char* dirName)" +OsReadFile 00461B50 f end=00461B88 type="int32_t __stdcall func(HOSFILE fileHandle, void* buffer, uint32_t bytesToRead, uint32_t* bytesRead)" +OsWriteFile 00461B90 f end=00461BC8 type="int32_t __stdcall func(HOSFILE fileHandle, void* buffer, uint32_t bytesToWrite, uint32_t* bytesWritten)" +OsGetFileSize 00461BD0 f end=00461BF4 type="void __stdcall func(HOSFILE fileHandle)" +OsGetFileAttributes 00461C00 f end=00461C3A type="uint32_t __stdcall func(char* fileName)" +OsSetFileAttributes 00461C40 f end=00461C6B type="int32_t __stdcall func(char* fileName, uint32_t attributes)" +OsMoveFile 00461C70 f end=00461C9F type="int32_t __stdcall func(char* existingFileName, char* newFileName)" +OsCopyFile 00461CA0 f end=00461CD7 type="int32_t __stdcall func(char* existingFileName, char* newFileName, int32_t failIfExists)" +OsDeleteFile 00461CE0 f end=00461D07 type="int32_t __stdcall func(char* fileName)" +OsCreateDirectory 00461D10 f end=00461D3F type="int32_t __stdcall func(char* pathName, int32_t recursive)" +OsRemoveDirectory 00461D40 f end=00461D67 type="int32_t __stdcall func(char* pathName)" +OsRemoveDirectoryRecurse 00461D70 f end=00461DA2 type="int32_t __stdcall func(char* pathName, uint32_t flags)" +OsSetCurrentDirectory 00461DB0 f end=00461DD7 type="int32_t __stdcall func(char* pathName)" +OsGetCurrentDirectory 00461DE0 f end=00461E0B type="int32_t __stdcall func(uint32_t buffersize, char* buffer)" +OsFileList__Internal__Callback 00461E10 f end=00461EEB type="bool __stdcall func(Blizzard__File__ProcessDirParms* parms)" +OsCreateFileMode 00461EF0 f end=00461F68 type="Blizzard__File__Mode __stdcall func(uint32_t desiredAcccess, uint8_t shareMode, uint32_t createDisposition)" +OsCreateFile 00461FA0 f end=00461FFA type="HOSFILE __stdcall func(char* fileName, uint32_t desiredAccess, uint32_t shareMode, uint32_t createDisposition, uint32_t flagsAndAttributes, uint32_t extendedFileType)" +OsFileList 00462000 f end=0046209C +OsFileGetDownloadFolder 00461F70 f end=00461F91 type="char* __stdcall func()" diff --git a/profile/3.3.5a-windows-386/symbol/bc/label.sym b/profile/3.3.5a-windows-386/symbol/bc/label.sym index fb636ec..0416aa8 100644 --- a/profile/3.3.5a-windows-386/symbol/bc/label.sym +++ b/profile/3.3.5a-windows-386/symbol/bc/label.sym @@ -1,3 +1,6 @@ +firstByteMark 009E537C l type="uint32_t[7]" +bytesFromUTF8 009E5398 l type="uint8_t[256]" +s_noinfo 009E5630 l type="Blizzard__File__FileInfo" System_File__Stacked__s_manager 00AB90AC l type="Blizzard__File__Filesystem*" System_File__read_func 00AB912C l ; type="int32_t (*)(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__write_func 00AB91B4 l ; type="int32_t (*)(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" @@ -5,5 +8,4 @@ System_File__Stacked__s_nullstack 00AB91C0 l type="Blizzard__File__Filesystem" System_File__Stacked__s_basestack 00AB92C0 l type="Blizzard__File__Filesystem" System_File__s_read_init 00B38A5C l type="Blizzard__Lock__DoOnceData" System_File__s_write_init 00B38A64 l type="Blizzard__Lock__DoOnceData" -firstByteMark 009E537C l type="uint32_t[7]" -bytesFromUTF8 009E5398 l type="uint8_t[256]" \ No newline at end of file +OsFileGetDownloadFolder__s_downloadfolder 00B38A88 l ; OsFileGetDownloadFolder()::s_downloadfolder; diff --git a/profile/3.3.5a-windows-386/symbol/client/func.sym b/profile/3.3.5a-windows-386/symbol/client/func.sym index 7908d27..5288276 100644 --- a/profile/3.3.5a-windows-386/symbol/client/func.sym +++ b/profile/3.3.5a-windows-386/symbol/client/func.sym @@ -5,4 +5,8 @@ DestroyGlobal 00406B70 f end=00406C65 ConvertPosition 0047FC90 f end=0047FDD4 ScrnLayerCreate 004A8BB0 f end=004A8C83 ScrnLayerSetRect 004A8500 f end=004A8522 -ClientKillTimer 004033B0 f end=004033B9 \ No newline at end of file +ClientKillTimer 004033B0 f end=004033B9 +PatchFiles__qsortpatchfiles 00401200 f ; int __cdecl PatchFiles::qsortpatchfiles(char **, char **) +quicksort 0047B800 f ; void __cdecl quicksort(unsigned int, unsigned int, int, int (__cdecl *)(unsigned int, unsigned int, int), int) +PatchFiles__EnumPatchArchives 00405A10 f ; int __cdecl PatchFiles::EnumPatchArchives(OS_FILE_DATA *fileData, PatchOnDemand__Cache *cbParam) +PatchFiles__LoadArchives 00405AB0 f ; int __thiscall PatchFiles::LoadArchives(PatchFiles *this, const char *localeCode, char a3) \ No newline at end of file diff --git a/profile/3.3.5a-windows-386/symbol/gxformat/func.sym b/profile/3.3.5a-windows-386/symbol/gxformat/func.sym new file mode 100644 index 0000000..53e8806 --- /dev/null +++ b/profile/3.3.5a-windows-386/symbol/gxformat/func.sym @@ -0,0 +1 @@ +CGxFormat__CGxFormat 00681950 f type="CGxFormat* __thiscall func(CGxFormat* this)" \ 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 8ebc725..5a55143 100644 --- a/profile/3.3.5a-windows-386/symbol/main.sym +++ b/profile/3.3.5a-windows-386/symbol/main.sym @@ -4,9 +4,12 @@ CDataStore__FetchWrite 00401070 f ; protected: int __thiscall CDataStore::FetchW CDataStore__IsRead 004010D0 f ; CDataStore::IsRead() const CDataStore__Reset 004010E0 f ; CDataStore::Reset() CDataStore__Finalize 00401130 f ; CDataStore::Finalize() +PatchFiles__qsortpatchfiles 00401200 f ; int __cdecl PatchFiles::qsortpatchfiles(char **, char **) SetPaths 00402B20 f end=00402B8B ClientKillTimer 004033B0 f end=004033B9 CDataStore__destructor 004038A0 f ; CDataStore::~CDataStore() +PatchFiles__EnumPatchArchives 00405A10 f ; int __cdecl PatchFiles::EnumPatchArchives(OS_FILE_DATA *fileData, PatchOnDemand__Cache *cbParam) +PatchFiles__LoadArchives 00405AB0 f ; int __thiscall PatchFiles::LoadArchives(PatchFiles *this, const char *localeCode, char a3) InitializeGlobal 004067F0 f end=00406B67 DestroyGlobal 00406B70 f end=00406C65 CommonMain 00406C70 f end=00406D64 @@ -36,35 +39,54 @@ SFile__FileExistsEx 00424B10 f end=00424B41 SFile__OpenEx 00424B50 f end=00424E44 SFile__Load 00424E80 f end=00424F46 SFile__Open 00424F80 f end=00424F98 -Blizzard__File__Close 004270F0 f end=0042712f +Blizzard__File__Close 004270F0 f end=0042712F Blizzard__File__Delete 00427130 f end=0042716F ; Blizzard::File::Delete(char const*) -Blizzard__File__GetFileInfo 004271D0 f end=00427242 type="bool __stdcall func(char* name, Blizzard__File__Info* info)" -Blizzard__File__GetFileInfo 00427250 f end=004272B8 type="Blizzard__File__Info* __stdcall func(Blizzard__File__StreamRecord* file)" +Blizzard__File__Exists 00427170 f end=004271C3 +Blizzard__File__GetFileInfo 004271D0 f end=00427242 type="bool __stdcall func(char* name, Blizzard__File__FileInfo* info)" +Blizzard__File__GetFileInfo 00427250 f end=004272B8 type="Blizzard__File__FileInfo* __stdcall func(Blizzard__File__StreamRecord* file)" Blizzard__File__GetFileInfo 004272C0 f end=00427325 type="bool __stdcall func(Blizzard__File__StreamRecord* file, Blizzard__File__FileInfo* info)" Blizzard__File__GetPos 004273A0 f end=00427406 Blizzard__File__GetRootChars 00427410 f end=00427466 Blizzard__File__GetWorkingDirectory 00427470 f end=004274B5 Blizzard__File__IsAbsolutePath 004274C0 f end=004274FF Blizzard__File__MakeAbsolutePath 00427500 f end=00427551 ; Blizzard::File::MakeAbsolutePath(char const*, char*, int, bool) -Blizzard__File__Move 00427560 f end=004275A8 ; Blizzard::File::Move(char const*, char const*) -Blizzard__File__Copy 004275B0 f end=004275FE +Blizzard__File__Move 00427560 f end=004275A8 type="bool __stdcall func(char* src, char* dst)" ; Blizzard::File::Move(char const*, char const*) +Blizzard__File__Copy 004275B0 f end=004275FE type="bool __stdcall func(char* src, char* dst, bool overwrite)" Blizzard__File__Open 00427600 f end=0042765E +Blizzard__File__ProcessDirFast 00427660 f end=004276BA type="bool __stdcall func(char* name, void* param, Blizzard__File__ProcessDirCallback callback, bool flag)" Blizzard__File__Read 004276C0 f end=0042771F -Blizzard__File__Write 004279B0 f end=00427A12 +Blizzard__File__Read 00427720 f end=0042778B type="bool __stdcall func(Blizzard__File__StreamRecord* file, void* data, int64_t offset, uint32_t* count)" ; Blizzard::File::Read(Blizzard::File::StreamRecord*, void*, long long, int*, int) +Blizzard__File__RemoveDirectory 00427800 f end=00427843 +Blizzard__File__SetAttributes 00427850 f end=004278A2 +Blizzard__File__SetPos 00427910 f end=00427961 type="bool __stdcall func(Blizzard__File__StreamRecord* file, int64_t offset, int32_t whence)" +Blizzard__File__SetWorkingDirectory 00427970 f end=004279AF +Blizzard__File__Write 004279B0 f end=00427A12 type="bool __stdcall func(Blizzard__File__StreamRecord* file, void *data, uint32_t* count)" +System_File__ToNativeAttributes 00427C20 f end=00427C68 System_File__FromNativeAttributes 00427C70 f end=00427CBC System_File__ReadP 00427CC0 f type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__WriteP 00427D10 f end=00427D5C type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__File__IsDirectory 004281D0 f end=004281EB +Blizzard__File__IsFile 004281F0 f end=0042820B +Blizzard__File__SimpleGlob 00428210 f end=004282F2 type="bool __stdcall func(char* name, char* pattern)" Blizzard__String__FindFilename 00428500 f end=00428538 type="char* __stdcall func(char* str)" +Blizzard__String__FirstPathSeparator 00428640 f end=00428668 Blizzard__String__Copy 00428670 f end=004286BB type="int32_t __stdcall func(char* dst, const char* src, int32_t count)" +Blizzard__String__Append 004286C0 f end=00428721 type="int32_t __stdcall func(char* dst, char* src, int32_t count)" Blizzard__Unicode__ConvertUTF16to8 00428940 f end=00428AFC type="int32_t __stdcall func(uint8_t* dst, uint32_t dstmaxchars, const uint16_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)" Blizzard__Unicode__ConvertUTF8to16 00428B00 f end=00428C94 type="int32_t __stdcall func(uint16_t* dst, uint32_t dstmaxchars, const uint8_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)" Blizzard__Time__FromFileTime 00428F00 f end=00428F56 type="Blizzard__Time__Timestamp __stdcall func(uint64_t fileTime)" +Blizzard__String__MakeUnivPath 0042A9B0 f end=0042A9FB type="void __stdcall func(char* src, char* dst, int32_t count)" +Blizzard__String__MakeBackslashPath 0042AA00 f end=0042AA4B type="void __stdcall func(char* src, char* dst, int32_t count)" Blizzard__File__CreateDirectory 0042CEA0 f end=0042CEE9 HoistAll 0042CFB0 f end=0042D43E System_File__Stacked__file_init 0042D440 f end=0042D4F4 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Close 0042D620 f end=0042D64F type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__String__MakeConsistentPath 0042E420 f end=0042E4AA +Blizzard__File__ForceTrailingSeparator 0042E4B0 f end=0042E522 type="void __stdcall func(char* dst, int32_t count, char separator)" +Blizzard__String__FindPathSeparatorReverse 0042E630 f end=0042E663 Blizzard__String__Format 0042E670 f end=0042E6A1 System_File__GetRootChars 004325C0 f type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__String__JoinPath 00433510 f end=0043356B type="void __stdcall func(char* a1, int32_t a2, char* a3, char* a4)" ; Blizzard::String::JoinPath(char*, int, char const*, char const*) System_File__FromNativeName 00433590 f end=00433650 type="void __stdcall func(uint8_t *buffer, uint32_t buffersize, const char *str)" Blizzard__String__QuickNativePath_300__QuickNativePath 00433650 f end=0043375A System_File__GetFileInfoByFile 00435580 f end=004356A2 type="void __stdcall func(Blizzard__File__StreamRecord* file)" @@ -72,8 +94,11 @@ System_File__Exists 004356B0 f end=00435781 type="int32_t __stdcall func(Blizzar System_File__MakeAbsolutePath 00435790 f end=00435889 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Move 00435890 f end=004359B6 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Delete 004359C0 f end=00435A57 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" +Blizzard__File__RemoveDirectoryAndContents__Internal__Callback 0044FA10 f end=0044FB29 type="bool __stdcall func(Blizzard__File__ProcessDirParms* dirwalkparms)" ; Blizzard::File::RemoveDirectoryAndContents(char const*, bool)::Internal::Callback(Blizzard::File::ProcessDirParms const&) +Blizzard__File__RemoveDirectoryAndContents 004518C0 f end=004519A7 System_File__read_overlapped 00454870 f end=00454904 System_File__write_overlapped 00454910 f end=004549A9 +System_File__ToCreateFlags 004549B0 f end=00454A4E type="bool __stdcall func(uint32_t flags, DWORD* sharemode, DWORD* desiredaccess, DWORD* creationdisposition, DWORD* flagsandattributes)" System_File__SetWorkingDirectory 00454A50 f end=00454AB5 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__Create 00454AC0 f end=00454AD3 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" System_File__GetWorkingDirectory 00454AE0 f end=00454B44 type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)" @@ -97,12 +122,27 @@ System_File__Write 00455D20 f end=00455D3E type="int32_t __stdcall func(Blizzard System_File__read_locked 00457820 f end=00457904 System_File__write_locked 00457910 f end=004579f4 System_File__detect_io_mode 00459910 f end=00459998 -OsCloseFile 00461B00 f end=00461B09 -OsReadFile 00461B50 f end=00461B88 -OsGetFileSize 00461BD0 f end=00461BF4 -OsCreateDirectory 00461D10 f end=00461D3F -OsSetCurrentDirectory 00461DB0 f end=00461DD7 -OsCreateFile 00461FA0 f end=00461FFA +OsCloseFile 00461B00 f end=00461B09 type="void __stdcall func(HOSFILE fileHandle)" +OsFileExists 00461B10 f end=00461B27 type="int32_t __stdcall func(char* path)" +OsDirectoryExists 00461B30 f end=00461B47 type="int32_t __stdcall func(char* dirName)" +OsReadFile 00461B50 f end=00461B88 type="int32_t __stdcall func(HOSFILE fileHandle, void* buffer, uint32_t bytesToRead, uint32_t* bytesRead)" +OsWriteFile 00461B90 f end=00461BC8 type="int32_t __stdcall func(HOSFILE fileHandle, void* buffer, uint32_t bytesToWrite, uint32_t* bytesWritten)" +OsGetFileSize 00461BD0 f end=00461BF4 type="void __stdcall func(HOSFILE fileHandle)" +OsGetFileAttributes 00461C00 f end=00461C3A type="uint32_t __stdcall func(char* fileName)" +OsSetFileAttributes 00461C40 f end=00461C6B type="int32_t __stdcall func(char* fileName, uint32_t attributes)" +OsMoveFile 00461C70 f end=00461C9F type="int32_t __stdcall func(char* existingFileName, char* newFileName)" +OsCopyFile 00461CA0 f end=00461CD7 type="int32_t __stdcall func(char* existingFileName, char* newFileName, int32_t failIfExists)" +OsDeleteFile 00461CE0 f end=00461D07 type="int32_t __stdcall func(char* fileName)" +OsCreateDirectory 00461D10 f end=00461D3F type="int32_t __stdcall func(char* pathName, int32_t recursive)" +OsRemoveDirectory 00461D40 f end=00461D67 type="int32_t __stdcall func(char* pathName)" +OsRemoveDirectoryRecurse 00461D70 f end=00461DA2 type="int32_t __stdcall func(char* pathName, uint32_t flags)" +OsSetCurrentDirectory 00461DB0 f end=00461DD7 type="int32_t __stdcall func(char* pathName)" +OsGetCurrentDirectory 00461DE0 f end=00461E0B type="int32_t __stdcall func(uint32_t buffersize, char* buffer)" +OsFileList__Internal__Callback 00461E10 f end=00461EEB type="bool __stdcall func(Blizzard__File__ProcessDirParms* parms)" +OsCreateFileMode 00461EF0 f end=00461F68 type="Blizzard__File__Mode __stdcall func(uint32_t desiredAcccess, uint8_t shareMode, uint32_t createDisposition)" +OsFileGetDownloadFolder 00461F70 f end=00461F91 type="char* __stdcall func()" +OsCreateFile 00461FA0 f end=00461FFA type="HOSFILE __stdcall func(char* fileName, uint32_t desiredAccess, uint32_t shareMode, uint32_t createDisposition, uint32_t flagsAndAttributes, uint32_t extendedFileType)" +OsFileList 00462000 f end=0046209C nullsub_2 0047ADD0 f CDataStore__GetBufferParams 0047ADE0 f ; CDataStore::GetBufferParams(void const**, unsigned int*, unsigned int*) CDataStore__DetachBuffer 0047AE10 f ; CDataStore::DetachBuffer(void**, unsigned int*, unsigned int*) @@ -129,6 +169,7 @@ CmdLineGetBool 0047B6F0 f end=0047B6FE type="int32_t __stdcall func(CMDOPT)" CmdLineGetString 0047B700 f end=0047B71D type="char* __stdcall func(CMDOPT)" CmdLineProcess 0047B720 f end=0047B736 type="int32_t __stdcall func()" j_nullsub_3 0047B760 f +quicksort 0047B800 f ; void __cdecl quicksort(unsigned int, unsigned int, int, int (__cdecl *)(unsigned int, unsigned int, int), int) ConvertUTF16toUTF8 0047B9E0 f end=0047BB9C type="int __stdcall func(char* dst, uint32_t dstMaxChars, uint16_t* src, uint32_t srcMaxChars, uint32_t* dstChars, uint32_t* srcChars)" HandleClose 0047BF30 f end=0047BF46 HandleCreate 0047BF50 f end=0047BF6B @@ -2200,6 +2241,7 @@ GxSetMaxFPS 00681770 f end=0068177D type="void __stdcall func(uint32_t maxFPS)" GxSetMaxFPSBk 00681790 f end=0068179D type="void __stdcall func(uint32_t maxFPSBk)" GxLogOpen 006817C0 f end=006817C5 type="void __stdcall func()" GxLog 006817E0 f end=006817F5 type="int __stdcall func(char* format, ...)" +CGxFormat__CGxFormat 00681950 f type="CGxFormat* __thiscall func(CGxFormat* this)" GxDrawLockedElements 00681A60 f end=00681AAB type="void __stdcall func()" GxPrimIndexPtr 00681AB0 f end=00681AFB type="void __stdcall func(uint32_t indexCount, uint16_t* indices)" GxPrimVertexPtr 00681B00 f end=00681B4B type="void __stdcall func(CGxBuf* buf, EGxVertexBufferFormat format)" @@ -3011,6 +3053,7 @@ nullsub_149 009DE1C0 f nullsub_150 009DE1D0 f firstByteMark 009E537C l type="uint32_t[7]" bytesFromUTF8 009E5398 l type="uint8_t[256]" +s_noinfo 009E5630 l type="Blizzard__File__FileInfo" firstByteMark 009e9ec8 l type="uint32_t[7]" s_pixelFormatToMipBitsCache 009F1074 l CGxDevice__vtable 00A2DDC0 l type="CGxDevice__vtable" @@ -3283,6 +3326,7 @@ g_lightParamsDB 00AF4A04 l type="WowClientDB_LightParamsRec" ; 0x15E g_lightDB 00AF4A28 l type="WowClientDB_LightRec" ; 0x15B System_File__s_read_init 00B38A5C l type="Blizzard__Lock__DoOnceData" System_File__s_write_init 00B38A64 l type="Blizzard__Lock__DoOnceData" +OsFileGetDownloadFolder__s_downloadfolder 00B38A88 l ; OsFileGetDownloadFolder()::s_downloadfolder; s_mainThread 00b417c8 l type="uint32_t" s_interactiveCount 00B417D0 l type="int32_t" s_messageRecycler 00B41850 l type="CDataRecycler" diff --git a/profile/3.3.5a-windows-386/x64dbg/game.dd32 b/profile/3.3.5a-windows-386/x64dbg/game.dd32 index cf0aed8..bf4db8f 100644 Binary files a/profile/3.3.5a-windows-386/x64dbg/game.dd32 and b/profile/3.3.5a-windows-386/x64dbg/game.dd32 differ diff --git a/profile/3.3.5a-windows-386/x64dbg/types.json b/profile/3.3.5a-windows-386/x64dbg/types.json index 780b919..46664bb 100644 --- a/profile/3.3.5a-windows-386/x64dbg/types.json +++ b/profile/3.3.5a-windows-386/x64dbg/types.json @@ -8,6 +8,10 @@ "type": "int", "name": "BlitFormat" }, + { + "type": "int", + "name": "Blizzard__File__Mode" + }, { "type": "int", "name": "Blizzard__File__Operation" @@ -11421,7 +11425,7 @@ "members": [ { "type": "int32_t", - "name": "unused", + "name": "unused__", "offset": 0 } ] @@ -21210,6 +21214,28 @@ } ] }, + { + "name": "OS_FILE_DATA", + "size": 268, + "members": [ + { + "type": "uint32_t", + "name": "size", + "offset": 0 + }, + { + "type": "uint32_t", + "name": "flags", + "offset": 4 + }, + { + "type": "char", + "name": "fileName", + "arrsize": 260, + "offset": 8 + } + ] + }, { "name": "ObjectEffectGroupRec", "size": 8, @@ -21357,6 +21383,32 @@ } ] }, + { + "name": "OsFileList__Internal__FileListParms", + "size": 16, + "members": [ + { + "type": "void*", + "name": "callback", + "offset": 0 + }, + { + "type": "void*", + "name": "param", + "offset": 4 + }, + { + "type": "uint32_t", + "name": "flags", + "offset": 8 + }, + { + "type": "char*", + "name": "pattern", + "offset": 12 + } + ] + }, { "name": "OverrideSpellDataRec", "size": 48, @@ -29376,104 +29428,6 @@ } ] }, - { - "name": "System_File__Stacked__FileParms", - "size": 144, - "members": [ - { - "type": "uint32_t", - "name": "op", - "offset": 0 - }, - { - "type": "char*", - "name": "name", - "offset": 4 - }, - { - "type": "char*", - "name": "newname", - "offset": 8 - }, - { - "type": "Blizzard__File__StreamRecord*", - "name": "file", - "offset": 12 - }, - { - "type": "Blizzard__File__FileInfo*", - "name": "info", - "offset": 16 - }, - { - "type": "uint32_t", - "name": "extra", - "arrsize": 17, - "offset": 20 - }, - { - "type": "uint32_t", - "name": "flags", - "offset": 88 - }, - { - "type": "void*", - "name": "data", - "offset": 92 - }, - { - "type": "uint32_t", - "name": "count", - "offset": 96 - }, - { - "type": "int64_t", - "name": "offset", - "offset": 104 - }, - { - "type": "uint32_t", - "name": "unk__", - "offset": 112 - }, - { - "type": "char*", - "name": "buffer", - "offset": 116 - }, - { - "type": "int32_t", - "name": "buffersize", - "offset": 120 - }, - { - "type": "bool", - "name": "unkbool1", - "offset": 124 - }, - { - "type": "bool", - "name": "unkbool2", - "offset": 125 - }, - { - "type": "void*", - "name": "dirwalkparam", - "offset": 128 - }, - { - "type": "Blizzard__File__ProcessDirCallback", - "name": "dirwalkcallback", - "offset": 132 - }, - { - "type": "uint32_t", - "name": "extra3", - "arrsize": 2, - "offset": 136 - } - ] - }, { "name": "Blizzard__File__FileInfo", "size": 56, @@ -29494,28 +29448,28 @@ "offset": 8 }, { - "type": "uint32_t", + "type": "int32_t", "name": "attributes", "offset": 16 }, { "type": "Blizzard__Time__Timestamp", - "name": "creationTime", + "name": "createtime", "offset": 24 }, { "type": "Blizzard__Time__Timestamp", - "name": "lastWriteTime", + "name": "lastwritetime", "offset": 32 }, { "type": "Blizzard__Time__Timestamp", - "name": "lastAccessTime", + "name": "lastaccesstime", "offset": 40 }, { "type": "int32_t", - "name": "exists", + "name": "filetype", "offset": 48 }, { @@ -37531,6 +37485,132 @@ } ] }, + { + "name": "System_File__Stacked__FileParms", + "size": 144, + "members": [ + { + "type": "uint32_t", + "name": "op", + "offset": 0 + }, + { + "type": "char*", + "name": "name", + "offset": 4 + }, + { + "type": "char*", + "name": "newname", + "offset": 8 + }, + { + "type": "Blizzard__File__StreamRecord*", + "name": "file", + "offset": 12 + }, + { + "type": "Blizzard__File__FileInfo*", + "name": "info", + "offset": 16 + }, + { + "type": "uint32_t", + "name": "extra", + "offset": 20 + }, + { + "type": "Blizzard__File__FileInfo", + "name": "noinfo", + "offset": 24 + }, + { + "type": "uint32_t", + "name": "setinfo", + "offset": 80 + }, + { + "type": "uint32_t", + "name": "getinfo", + "offset": 84 + }, + { + "type": "Blizzard__File__Mode", + "name": "mode", + "offset": 88 + }, + { + "type": "void*", + "name": "data", + "offset": 92 + }, + { + "type": "uint32_t", + "name": "count", + "offset": 96 + }, + { + "type": "int64_t", + "name": "offset", + "offset": 104 + }, + { + "type": "int32_t", + "name": "whence", + "offset": 112 + }, + { + "type": "char*", + "name": "buffer", + "offset": 116 + }, + { + "type": "int32_t", + "name": "buffersize", + "offset": 120 + }, + { + "type": "bool", + "name": "recurse", + "offset": 124 + }, + { + "type": "bool", + "name": "canonicalize", + "offset": 125 + }, + { + "type": "void*", + "name": "dirwalkparam", + "offset": 128 + }, + { + "type": "Blizzard__File__ProcessDirCallback", + "name": "dirwalkcallback", + "offset": 132 + }, + { + "type": "bool", + "name": "unk88", + "offset": 136 + }, + { + "type": "bool", + "name": "overwrite", + "offset": 137 + }, + { + "type": "bool", + "name": "set_acl", + "offset": 138 + }, + { + "type": "uint32_t", + "name": "unk8C", + "offset": 140 + } + ] + }, { "name": "Blizzard__File__StreamRecord", "size": 80, @@ -37541,8 +37621,8 @@ "offset": 0 }, { - "type": "uint32_t", - "name": "flags", + "type": "int32_t", + "name": "mode", "offset": 4 }, {