; 
; Exports of file ulib.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY ulib.dll
EXPORTS
; public: __cdecl ARGUMENT_LEXEMIZER::ARGUMENT_LEXEMIZER(void) __ptr64
??0ARGUMENT_LEXEMIZER@@QEAA@XZ
; public: __cdecl ARRAY::ARRAY(void) __ptr64
??0ARRAY@@QEAA@XZ
; public: __cdecl BDSTRING::BDSTRING(class BDSTRING const & __ptr64) __ptr64
??0BDSTRING@@QEAA@AEBV0@@Z
; public: __cdecl BDSTRING::BDSTRING(void) __ptr64
??0BDSTRING@@QEAA@XZ
; public: __cdecl BITVECTOR::BITVECTOR(void) __ptr64
??0BITVECTOR@@QEAA@XZ
; protected: __cdecl BSTRING::BSTRING(void) __ptr64
??0BSTRING@@IEAA@XZ
; public: __cdecl BSTRING::BSTRING(class BSTRING const & __ptr64) __ptr64
??0BSTRING@@QEAA@AEBV0@@Z
; public: __cdecl BYTE_STREAM::BYTE_STREAM(void) __ptr64
??0BYTE_STREAM@@QEAA@XZ
; public: __cdecl CHKDSK_MESSAGE::CHKDSK_MESSAGE(void) __ptr64
??0CHKDSK_MESSAGE@@QEAA@XZ
; public: __cdecl CLASS_DESCRIPTOR::CLASS_DESCRIPTOR(void) __ptr64
??0CLASS_DESCRIPTOR@@QEAA@XZ
; public: __cdecl COMM_DEVICE::COMM_DEVICE(void) __ptr64
??0COMM_DEVICE@@QEAA@XZ
; public: __cdecl CONT_MEM::CONT_MEM(void) __ptr64
??0CONT_MEM@@QEAA@XZ
; public: __cdecl DSTRING::DSTRING(class DSTRING const & __ptr64) __ptr64
??0DSTRING@@QEAA@AEBV0@@Z
; public: __cdecl DSTRING::DSTRING(void) __ptr64
??0DSTRING@@QEAA@XZ
; public: __cdecl FLAG_ARGUMENT::FLAG_ARGUMENT(void) __ptr64
??0FLAG_ARGUMENT@@QEAA@XZ
; public: __cdecl FSN_FILTER::FSN_FILTER(void) __ptr64
??0FSN_FILTER@@QEAA@XZ
; public: __cdecl FSTRING::FSTRING(class FSTRING const & __ptr64) __ptr64
??0FSTRING@@QEAA@AEBV0@@Z
; public: __cdecl FSTRING::FSTRING(void) __ptr64
??0FSTRING@@QEAA@XZ
; public: __cdecl HMEM::HMEM(void) __ptr64
??0HMEM@@QEAA@XZ
; public: __cdecl KEYBOARD::KEYBOARD(void) __ptr64
??0KEYBOARD@@QEAA@XZ
; public: __cdecl LIST::LIST(void) __ptr64
??0LIST@@QEAA@XZ
; public: __cdecl LONG_ARGUMENT::LONG_ARGUMENT(void) __ptr64
??0LONG_ARGUMENT@@QEAA@XZ
; public: __cdecl MEM_ALLOCATOR::MEM_ALLOCATOR(void) __ptr64
??0MEM_ALLOCATOR@@QEAA@XZ
; public: __cdecl MEM_BLOCK_MGR::MEM_BLOCK_MGR(void) __ptr64
??0MEM_BLOCK_MGR@@QEAA@XZ
; public: __cdecl MESSAGE::MESSAGE(void) __ptr64
??0MESSAGE@@QEAA@XZ
; public: __cdecl MULTIPLE_PATH_ARGUMENT::MULTIPLE_PATH_ARGUMENT(void) __ptr64
??0MULTIPLE_PATH_ARGUMENT@@QEAA@XZ
; protected: __cdecl OBJECT::OBJECT(void) __ptr64
??0OBJECT@@IEAA@XZ
; public: __cdecl OBJECT::OBJECT(class OBJECT const & __ptr64) __ptr64
??0OBJECT@@QEAA@AEBV0@@Z
; public: __cdecl PATH::PATH(void) __ptr64
??0PATH@@QEAA@XZ
; public: __cdecl PATH_ARGUMENT::PATH_ARGUMENT(void) __ptr64
??0PATH_ARGUMENT@@QEAA@XZ
; public: __cdecl PRINT_STREAM::PRINT_STREAM(void) __ptr64
??0PRINT_STREAM@@QEAA@XZ
; protected: __cdecl PROGRAM::PROGRAM(void) __ptr64
??0PROGRAM@@IEAA@XZ
; public: __cdecl REST_OF_LINE_ARGUMENT::REST_OF_LINE_ARGUMENT(void) __ptr64
??0REST_OF_LINE_ARGUMENT@@QEAA@XZ
; public: __cdecl SCREEN::SCREEN(void) __ptr64
??0SCREEN@@QEAA@XZ
; public: __cdecl SORTED_LIST::SORTED_LIST(void) __ptr64
??0SORTED_LIST@@QEAA@XZ
; public: __cdecl STREAM_MESSAGE::STREAM_MESSAGE(void) __ptr64
??0STREAM_MESSAGE@@QEAA@XZ
; public: __cdecl STRING_ARGUMENT::STRING_ARGUMENT(void) __ptr64
??0STRING_ARGUMENT@@QEAA@XZ
; public: __cdecl STRING_ARRAY::STRING_ARRAY(void) __ptr64
??0STRING_ARRAY@@QEAA@XZ
; public: __cdecl TIMEINFO::TIMEINFO(void) __ptr64
??0TIMEINFO@@QEAA@XZ
; public: __cdecl TIMEINFO_ARGUMENT::TIMEINFO_ARGUMENT(void) __ptr64
??0TIMEINFO_ARGUMENT@@QEAA@XZ
; protected: __cdecl WSTRING::WSTRING(void) __ptr64
??0WSTRING@@IEAA@XZ
; public: __cdecl WSTRING::WSTRING(class WSTRING const & __ptr64) __ptr64
??0WSTRING@@QEAA@AEBV0@@Z
; public: virtual __cdecl ARGUMENT_LEXEMIZER::~ARGUMENT_LEXEMIZER(void) __ptr64
??1ARGUMENT_LEXEMIZER@@UEAA@XZ
; public: virtual __cdecl ARRAY::~ARRAY(void) __ptr64
??1ARRAY@@UEAA@XZ
; public: virtual __cdecl BDSTRING::~BDSTRING(void) __ptr64
??1BDSTRING@@UEAA@XZ
; public: virtual __cdecl BITVECTOR::~BITVECTOR(void) __ptr64
??1BITVECTOR@@UEAA@XZ
; public: virtual __cdecl BSTRING::~BSTRING(void) __ptr64
??1BSTRING@@UEAA@XZ
; public: virtual __cdecl BYTE_STREAM::~BYTE_STREAM(void) __ptr64
??1BYTE_STREAM@@UEAA@XZ
; public: virtual __cdecl CHKDSK_MESSAGE::~CHKDSK_MESSAGE(void) __ptr64
??1CHKDSK_MESSAGE@@UEAA@XZ
; public: virtual __cdecl COMM_DEVICE::~COMM_DEVICE(void) __ptr64
??1COMM_DEVICE@@UEAA@XZ
; public: virtual __cdecl DSTRING::~DSTRING(void) __ptr64
??1DSTRING@@UEAA@XZ
; public: virtual __cdecl FSN_FILTER::~FSN_FILTER(void) __ptr64
??1FSN_FILTER@@UEAA@XZ
; public: virtual __cdecl FSTRING::~FSTRING(void) __ptr64
??1FSTRING@@UEAA@XZ
; public: virtual __cdecl HMEM::~HMEM(void) __ptr64
??1HMEM@@UEAA@XZ
; public: virtual __cdecl LIST::~LIST(void) __ptr64
??1LIST@@UEAA@XZ
; public: virtual __cdecl MEM_ALLOCATOR::~MEM_ALLOCATOR(void) __ptr64
??1MEM_ALLOCATOR@@UEAA@XZ
; public: virtual __cdecl MEM_BLOCK_MGR::~MEM_BLOCK_MGR(void) __ptr64
??1MEM_BLOCK_MGR@@UEAA@XZ
; public: virtual __cdecl MESSAGE::~MESSAGE(void) __ptr64
??1MESSAGE@@UEAA@XZ
; public: virtual __cdecl MULTIPLE_PATH_ARGUMENT::~MULTIPLE_PATH_ARGUMENT(void) __ptr64
??1MULTIPLE_PATH_ARGUMENT@@UEAA@XZ
; public: virtual __cdecl OBJECT::~OBJECT(void) __ptr64
??1OBJECT@@UEAA@XZ
; public: virtual __cdecl PATH::~PATH(void) __ptr64
??1PATH@@UEAA@XZ
; public: virtual __cdecl PATH_ARGUMENT::~PATH_ARGUMENT(void) __ptr64
??1PATH_ARGUMENT@@UEAA@XZ
; public: virtual __cdecl PRINT_STREAM::~PRINT_STREAM(void) __ptr64
??1PRINT_STREAM@@UEAA@XZ
; public: virtual __cdecl PROGRAM::~PROGRAM(void) __ptr64
??1PROGRAM@@UEAA@XZ
; public: virtual __cdecl SCREEN::~SCREEN(void) __ptr64
??1SCREEN@@UEAA@XZ
; public: virtual __cdecl SORTED_LIST::~SORTED_LIST(void) __ptr64
??1SORTED_LIST@@UEAA@XZ
; public: virtual __cdecl STREAM_MESSAGE::~STREAM_MESSAGE(void) __ptr64
??1STREAM_MESSAGE@@UEAA@XZ
; public: virtual __cdecl STRING_ARGUMENT::~STRING_ARGUMENT(void) __ptr64
??1STRING_ARGUMENT@@UEAA@XZ
; public: virtual __cdecl TIMEINFO_ARGUMENT::~TIMEINFO_ARGUMENT(void) __ptr64
??1TIMEINFO_ARGUMENT@@UEAA@XZ
; public: virtual __cdecl WSTRING::~WSTRING(void) __ptr64
??1WSTRING@@UEAA@XZ
; public: class BDSTRING & __ptr64 __cdecl BDSTRING::operator=(class BDSTRING const & __ptr64) __ptr64
??4BDSTRING@@QEAAAEAV0@AEBV0@@Z
; public: class BSTRING & __ptr64 __cdecl BSTRING::operator=(class BSTRING const & __ptr64) __ptr64
??4BSTRING@@QEAAAEAV0@AEBV0@@Z
; public: class DSTRING & __ptr64 __cdecl DSTRING::operator=(class DSTRING const & __ptr64) __ptr64
??4DSTRING@@QEAAAEAV0@AEBV0@@Z
; public: class FSTRING & __ptr64 __cdecl FSTRING::operator=(class FSTRING const & __ptr64) __ptr64
??4FSTRING@@QEAAAEAV0@AEBV0@@Z
; public: class OBJECT & __ptr64 __cdecl OBJECT::operator=(class OBJECT const & __ptr64) __ptr64
??4OBJECT@@QEAAAEAV0@AEBV0@@Z
; public: class WSTRING & __ptr64 __cdecl WSTRING::operator=(class WSTRING const & __ptr64) __ptr64
??4WSTRING@@QEAAAEAV0@AEBV0@@Z
; public: unsigned char __cdecl WSTRING::operator==(class WSTRING const & __ptr64)const  __ptr64
??8WSTRING@@QEBAEAEBV0@@Z
; public: unsigned char __cdecl WSTRING::operator!=(class WSTRING const & __ptr64)const  __ptr64
??9WSTRING@@QEBAEAEBV0@@Z
; public: unsigned char __cdecl TIMEINFO::operator<(class TIMEINFO)const  __ptr64
??MTIMEINFO@@QEBAEV0@@Z
; public: unsigned char __cdecl WSTRING::operator<(class WSTRING const & __ptr64)const  __ptr64
??MWSTRING@@QEBAEAEBV0@@Z
; public: unsigned char __cdecl WSTRING::operator<=(class WSTRING const & __ptr64)const  __ptr64
??NWSTRING@@QEBAEAEBV0@@Z
; public: unsigned char __cdecl TIMEINFO::operator>(class TIMEINFO)const  __ptr64
??OTIMEINFO@@QEBAEV0@@Z
; public: unsigned char __cdecl WSTRING::operator>(class WSTRING const & __ptr64)const  __ptr64
??OWSTRING@@QEBAEAEBV0@@Z
; public: unsigned char __cdecl WSTRING::operator>=(class WSTRING const & __ptr64)const  __ptr64
??PWSTRING@@QEBAEAEBV0@@Z
; const  BDSTRING::`vftable'
??_7BDSTRING@@6B@
; const  BSTRING::`vftable'
??_7BSTRING@@6B@
; const  DSTRING::`vftable'
??_7DSTRING@@6B@
; const  FSTRING::`vftable'
??_7FSTRING@@6B@
; const  OBJECT::`vftable'
??_7OBJECT@@6B@
; const  WSTRING::`vftable'
??_7WSTRING@@6B@
; public: virtual void * __ptr64 __cdecl CONT_MEM::Acquire(unsigned long,unsigned long) __ptr64
?Acquire@CONT_MEM@@UEAAPEAXKK@Z
; public: virtual void * __ptr64 __cdecl HMEM::Acquire(unsigned long,unsigned long) __ptr64
?Acquire@HMEM@@UEAAPEAXKK@Z
; public: void * __ptr64 __cdecl MEM_BLOCK_MGR::Alloc(void) __ptr64
?Alloc@MEM_BLOCK_MGR@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl MEM_ALLOCATOR::Allocate(unsigned long) __ptr64
?Allocate@MEM_ALLOCATOR@@QEAAPEAXK@Z
; public: enum PATH_ANALYZE_CODE  __cdecl PATH::AnalyzePath(class WSTRING * __ptr64,class PATH * __ptr64,class WSTRING * __ptr64) __ptr64
?AnalyzePath@PATH@@QEAA?AW4PATH_ANALYZE_CODE@@PEAVWSTRING@@PEAV1@0@Z
; public: unsigned char __cdecl PATH::AppendBase(class WSTRING const * __ptr64,unsigned char) __ptr64
?AppendBase@PATH@@QEAAEPEBVWSTRING@@E@Z
; public: unsigned char __cdecl PATH::AppendDelimiter(void) __ptr64
?AppendDelimiter@PATH@@QEAAEXZ
; public: unsigned char __cdecl PATH::AppendString(class WSTRING const * __ptr64) __ptr64
?AppendString@PATH@@QEAAEPEBVWSTRING@@@Z
; public: static class FILE_STREAM * __ptr64 __cdecl FILE_STREAM::Cast(class OBJECT const * __ptr64)
?Cast@FILE_STREAM@@SAPEAV1@PEBVOBJECT@@@Z
; public: static class KEYBOARD * __ptr64 __cdecl KEYBOARD::Cast(class OBJECT const * __ptr64)
?Cast@KEYBOARD@@SAPEAV1@PEBVOBJECT@@@Z
; public: static class SCREEN * __ptr64 __cdecl SCREEN::Cast(class OBJECT const * __ptr64)
?Cast@SCREEN@@SAPEAV1@PEBVOBJECT@@@Z
; public: unsigned char __cdecl SCREEN::ChangeScreenSize(unsigned short,unsigned short,unsigned char * __ptr64) __ptr64
?ChangeScreenSize@SCREEN@@QEAAEGGPEAE@Z
; public: static char * __ptr64 __cdecl MBSTR::CharNextW(char * __ptr64)
?CharNextW@MBSTR@@SAPEADPEAD@Z
; private: static int __cdecl WSTRING::CheckSpace(unsigned short * __ptr64)
?CheckSpace@WSTRING@@CAHPEAG@Z
; public: unsigned char __cdecl COMM_DEVICE::CommitState(void) __ptr64
?CommitState@COMM_DEVICE@@QEAAEXZ
; public: virtual long __cdecl OBJECT::Compare(class OBJECT const * __ptr64)const  __ptr64
?Compare@OBJECT@@UEBAJPEBV1@@Z
; private: unsigned long __cdecl BITVECTOR::ComputeCountSet(void)const  __ptr64
?ComputeCountSet@BITVECTOR@@AEBAKXZ
; private: void __cdecl BDSTRING::Construct(void) __ptr64
?Construct@BDSTRING@@AEAAXXZ
; protected: void __cdecl BSTRING::Construct(void) __ptr64
?Construct@BSTRING@@IEAAXXZ
; private: void __cdecl DSTRING::Construct(void) __ptr64
?Construct@DSTRING@@AEAAXXZ
; protected: void __cdecl OBJECT::Construct(void) __ptr64
?Construct@OBJECT@@IEAAXXZ
; protected: void __cdecl WSTRING::Construct(void) __ptr64
?Construct@WSTRING@@IEAAXXZ
; private: static unsigned char __cdecl WSTRING::ConvertOemToUnicodeN(unsigned short * __ptr64,unsigned long,unsigned long * __ptr64,char * __ptr64,unsigned long)
?ConvertOemToUnicodeN@WSTRING@@CAEPEAGKPEAKPEADK@Z
; public: unsigned char __cdecl TIMEINFO::ConvertToLocal(void) __ptr64
?ConvertToLocal@TIMEINFO@@QEAAEXZ
; public: unsigned char __cdecl TIMEINFO::ConvertToUTC(void) __ptr64
?ConvertToUTC@TIMEINFO@@QEAAEXZ
; private: static unsigned char __cdecl WSTRING::ConvertUnicodeToOemN(char * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short * __ptr64,unsigned long)
?ConvertUnicodeToOemN@WSTRING@@CAEPEADKPEAKPEAGK@Z
; public: unsigned char __cdecl FSN_FILE::Copy(class PATH * __ptr64,enum _COPY_ERROR * __ptr64,unsigned long,unsigned long (__cdecl*)(union _LARGE_INTEGER,union _LARGE_INTEGER,union _LARGE_INTEGER,union _LARGE_INTEGER,unsigned long,unsigned long,void * __ptr64,void * __ptr64,void * __ptr64),void * __ptr64,int * __ptr64)const  __ptr64
?Copy@FSN_FILE@@QEBAEPEAVPATH@@PEAW4_COPY_ERROR@@KP6AKT_LARGE_INTEGER@@222KKPEAX33@Z3PEAH@Z
; public: class FSN_DIRECTORY * __ptr64 __cdecl FSN_DIRECTORY::CreateDirectoryPath(class PATH const * __ptr64)const  __ptr64
?CreateDirectoryPath@FSN_DIRECTORY@@QEBAPEAV1@PEBVPATH@@@Z
; public: virtual unsigned char __cdecl ARRAY::DeleteAllMembers(void) __ptr64
?DeleteAllMembers@ARRAY@@UEAAEXZ
; public: virtual unsigned char __cdecl SEQUENTIAL_CONTAINER::DeleteAllMembers(void) __ptr64
?DeleteAllMembers@SEQUENTIAL_CONTAINER@@UEAAEXZ
; public: virtual unsigned char __cdecl SORTED_LIST::DeleteAllMembers(void) __ptr64
?DeleteAllMembers@SORTED_LIST@@UEAAEXZ
; public: void __cdecl BSTRING::DeleteChAt(unsigned long,unsigned long) __ptr64
?DeleteChAt@BSTRING@@QEAAXKK@Z
; public: void __cdecl WSTRING::DeleteChAt(unsigned long,unsigned long) __ptr64
?DeleteChAt@WSTRING@@QEAAXKK@Z
; public: unsigned char __cdecl FSN_DIRECTORY::DeleteDirectory(void) __ptr64
?DeleteDirectory@FSN_DIRECTORY@@QEAAEXZ
; public: static unsigned char __cdecl KEYBOARD::DisableBreakHandling(void)
?DisableBreakHandling@KEYBOARD@@SAEXZ
; public: unsigned char __cdecl KEYBOARD::DisableLineMode(void) __ptr64
?DisableLineMode@KEYBOARD@@QEAAEXZ
; public: unsigned char __cdecl MESSAGE::Display(char const * __ptr64,...) __ptr64
?Display@MESSAGE@@QEAAEPEBDZZ
; public: virtual unsigned char __cdecl PROGRAM::DisplayMessage(unsigned long,enum MESSAGE_TYPE)const  __ptr64
?DisplayMessage@PROGRAM@@UEBAEKW4MESSAGE_TYPE@@@Z
; public: virtual unsigned char __cdecl PROGRAM::DisplayMessage(unsigned long,enum MESSAGE_TYPE,char * __ptr64,...)const  __ptr64
?DisplayMessage@PROGRAM@@UEBAEKW4MESSAGE_TYPE@@PEADZZ
; public: unsigned char __cdecl MESSAGE::DisplayMsg(unsigned long) __ptr64
?DisplayMsg@MESSAGE@@QEAAEK@Z
; public: unsigned char __cdecl MESSAGE::DisplayMsg(unsigned long,char const * __ptr64,...) __ptr64
?DisplayMsg@MESSAGE@@QEAAEKPEBDZZ
; public: unsigned char __cdecl MESSAGE::DisplayMsg(unsigned long,enum MESSAGE_TYPE,unsigned long) __ptr64
?DisplayMsg@MESSAGE@@QEAAEKW4MESSAGE_TYPE@@K@Z
; public: unsigned char __cdecl MESSAGE::DisplayMsg(unsigned long,enum MESSAGE_TYPE,unsigned long,char const * __ptr64,...) __ptr64
?DisplayMsg@MESSAGE@@QEAAEKW4MESSAGE_TYPE@@KPEBDZZ
; public: static void __cdecl SYSTEM::DisplaySystemError(unsigned long,int)
?DisplaySystemError@SYSTEM@@SAXKH@Z
; public: virtual void __cdecl KEYBOARD::DoNotRestoreConsoleMode(void) __ptr64
?DoNotRestoreConsoleMode@KEYBOARD@@UEAAXXZ
; public: unsigned char __cdecl ARGUMENT_LEXEMIZER::DoParsing(class ARRAY * __ptr64) __ptr64
?DoParsing@ARGUMENT_LEXEMIZER@@QEAAEPEAVARRAY@@@Z
; public: unsigned char __cdecl FSN_FILTER::DoesNodeMatch(class FSNODE * __ptr64) __ptr64
?DoesNodeMatch@FSN_FILTER@@QEAAEPEAVFSNODE@@@Z
; public: unsigned char __cdecl MESSAGE::DumpDataToLog(void * __ptr64,unsigned long) __ptr64
?DumpDataToLog@MESSAGE@@QEAAEPEAXK@Z
; public: static unsigned char __cdecl KEYBOARD::EnableBreakHandling(void)
?EnableBreakHandling@KEYBOARD@@SAEXZ
; public: unsigned char __cdecl KEYBOARD::EnableLineMode(void) __ptr64
?EnableLineMode@KEYBOARD@@QEAAEXZ
; public: unsigned char __cdecl PATH::EndsWithDelimiter(void)const  __ptr64
?EndsWithDelimiter@PATH@@QEBAEXZ
; public: unsigned char __cdecl SCREEN::EraseScreen(void) __ptr64
?EraseScreen@SCREEN@@QEAAEXZ
; public: unsigned char __cdecl SCREEN::EraseScreenAndResetAttribute(void) __ptr64
?EraseScreenAndResetAttribute@SCREEN@@QEAAEXZ
; public: static void __cdecl PROGRAM::ExitProgram(unsigned long)
?ExitProgram@PROGRAM@@SAXK@Z
; public: virtual void __cdecl PROGRAM::Fatal(unsigned long,unsigned long,char * __ptr64,...)const  __ptr64
?Fatal@PROGRAM@@UEBAXKKPEADZZ
; public: virtual void __cdecl PROGRAM::Fatal(void)const  __ptr64
?Fatal@PROGRAM@@UEBAXXZ
; private: unsigned char __cdecl BYTE_STREAM::FillAndReadByte(unsigned char * __ptr64) __ptr64
?FillAndReadByte@BYTE_STREAM@@AEAAEPEAE@Z
; void * __ptr64 __cdecl FindFirstFileW(class PATH const * __ptr64,struct _WIN32_FIND_DATAW * __ptr64)
?FindFirstFileW@@YAPEAXPEBVPATH@@PEAU_WIN32_FIND_DATAW@@@Z
; public: unsigned char __cdecl KEYBOARD::Flush(void) __ptr64
?Flush@KEYBOARD@@QEAAEXZ
; public: unsigned char __cdecl MEM_BLOCK_MGR::Free(void * __ptr64) __ptr64
?Free@MEM_BLOCK_MGR@@QEAAEPEAX@Z
; public: static void __cdecl SYSTEM::FreeLibraryHandle(void * __ptr64)
?FreeLibraryHandle@SYSTEM@@SAXPEAX@Z
; public: class CLASS_DESCRIPTOR const * __ptr64 __cdecl OBJECT::GetClassDescriptor(void)const  __ptr64
?GetClassDescriptor@OBJECT@@QEBAPEBVCLASS_DESCRIPTOR@@XZ
; public: static unsigned char __cdecl SYSTEM::GetFileSecurityBackup(class PATH const * __ptr64,unsigned long,struct _SECURITY_ATTRIBUTES * __ptr64,unsigned long * __ptr64)
?GetFileSecurityBackup@SYSTEM@@SAEPEBVPATH@@KPEAU_SECURITY_ATTRIBUTES@@PEAK@Z
; public: class WSTRING * __ptr64 __cdecl ARGUMENT::GetLexeme(void) __ptr64
?GetLexeme@ARGUMENT@@QEAAPEAVWSTRING@@XZ
; public: class WSTRING * __ptr64 __cdecl ARGUMENT_LEXEMIZER::GetLexemeAt(unsigned long) __ptr64
?GetLexemeAt@ARGUMENT_LEXEMIZER@@QEAAPEAVWSTRING@@K@Z
; public: class FSNODE * __ptr64 __cdecl FSN_DIRECTORY::GetNext(void * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?GetNext@FSN_DIRECTORY@@QEAAPEAVFSNODE@@PEAPEAXPEAK@Z
; public: int * __ptr64 __cdecl KEYBOARD::GetPFlagBreak(void)const  __ptr64
?GetPFlagBreak@KEYBOARD@@QEBAQEAHXZ
; public: class WSTRING * __ptr64 __cdecl ARGUMENT::GetPattern(void) __ptr64
?GetPattern@ARGUMENT@@QEAAPEAVWSTRING@@XZ
; public: virtual class STREAM * __ptr64 __cdecl PROGRAM::GetStandardError(void) __ptr64
?GetStandardError@PROGRAM@@UEAAPEAVSTREAM@@XZ
; public: virtual class STREAM * __ptr64 __cdecl PROGRAM::GetStandardInput(void) __ptr64
?GetStandardInput@PROGRAM@@UEAAPEAVSTREAM@@XZ
; public: virtual class STREAM * __ptr64 __cdecl PROGRAM::GetStandardOutput(void) __ptr64
?GetStandardOutput@PROGRAM@@UEAAPEAVSTREAM@@XZ
; public: unsigned short const * __ptr64 __cdecl WSTRING::GetWSTR(void)const  __ptr64
?GetWSTR@WSTRING@@QEBAPEBGXZ
; class STREAM * __ptr64 __cdecl Get_Standard_Error_Stream(void)
?Get_Standard_Error_Stream@@YAPEAVSTREAM@@XZ
; class STREAM * __ptr64 __cdecl Get_Standard_Input_Stream(void)
?Get_Standard_Input_Stream@@YAPEAVSTREAM@@XZ
; class STREAM * __ptr64 __cdecl Get_Standard_Output_Stream(void)
?Get_Standard_Output_Stream@@YAPEAVSTREAM@@XZ
; public: static unsigned char __cdecl KEYBOARD::GotABreak(void)
?GotABreak@KEYBOARD@@SAEXZ
; public: unsigned char __cdecl PATH::HasWildCard(void)const  __ptr64
?HasWildCard@PATH@@QEBAEXZ
; public: unsigned char __cdecl ARGUMENT_LEXEMIZER::Initialize(class ARRAY * __ptr64) __ptr64
?Initialize@ARGUMENT_LEXEMIZER@@QEAAEPEAVARRAY@@@Z
; public: unsigned char __cdecl ARRAY::Initialize(unsigned long,unsigned long) __ptr64
?Initialize@ARRAY@@QEAAEKK@Z
; public: unsigned char __cdecl BITVECTOR::Initialize(unsigned long,enum BIT,unsigned long * __ptr64) __ptr64
?Initialize@BITVECTOR@@QEAAEKW4BIT@@PEAK@Z
; public: unsigned char __cdecl BSTRING::Initialize(char const * __ptr64,unsigned long) __ptr64
?Initialize@BSTRING@@QEAAEPEBDK@Z
; public: unsigned char __cdecl BSTRING::Initialize(void) __ptr64
?Initialize@BSTRING@@QEAAEXZ
; public: unsigned char __cdecl BYTE_STREAM::Initialize(class STREAM * __ptr64,unsigned long) __ptr64
?Initialize@BYTE_STREAM@@QEAAEPEAVSTREAM@@K@Z
; public: unsigned char __cdecl CHKDSK_MESSAGE::Initialize(class STREAM * __ptr64,class STREAM * __ptr64,class STREAM * __ptr64) __ptr64
?Initialize@CHKDSK_MESSAGE@@QEAAEPEAVSTREAM@@00@Z
; public: unsigned char __cdecl CLASS_DESCRIPTOR::Initialize(void) __ptr64
?Initialize@CLASS_DESCRIPTOR@@QEAAEXZ
; public: unsigned char __cdecl COMM_DEVICE::Initialize(class PATH const * __ptr64,unsigned char * __ptr64) __ptr64
?Initialize@COMM_DEVICE@@QEAAEPEBVPATH@@PEAE@Z
; public: unsigned char __cdecl CONT_MEM::Initialize(void * __ptr64,unsigned long) __ptr64
?Initialize@CONT_MEM@@QEAAEPEAXK@Z
; public: unsigned char __cdecl FLAG_ARGUMENT::Initialize(char * __ptr64) __ptr64
?Initialize@FLAG_ARGUMENT@@QEAAEPEAD@Z
; public: unsigned char __cdecl FLAG_ARGUMENT::Initialize(class WSTRING * __ptr64) __ptr64
?Initialize@FLAG_ARGUMENT@@QEAAEPEAVWSTRING@@@Z
; public: unsigned char __cdecl FSN_FILTER::Initialize(void) __ptr64
?Initialize@FSN_FILTER@@QEAAEXZ
; public: class WSTRING * __ptr64 __cdecl FSTRING::Initialize(unsigned short * __ptr64,unsigned long) __ptr64
?Initialize@FSTRING@@QEAAPEAVWSTRING@@PEAGK@Z
; public: unsigned char __cdecl HMEM::Initialize(void) __ptr64
?Initialize@HMEM@@QEAAEXZ
; public: unsigned char __cdecl KEYBOARD::Initialize(unsigned char,unsigned char) __ptr64
?Initialize@KEYBOARD@@QEAAEEE@Z
; public: unsigned char __cdecl LIST::Initialize(void) __ptr64
?Initialize@LIST@@QEAAEXZ
; public: unsigned char __cdecl LONG_ARGUMENT::Initialize(char * __ptr64) __ptr64
?Initialize@LONG_ARGUMENT@@QEAAEPEAD@Z
; public: unsigned char __cdecl MEM_ALLOCATOR::Initialize(unsigned __int64,unsigned long) __ptr64
?Initialize@MEM_ALLOCATOR@@QEAAE_KK@Z
; public: unsigned char __cdecl MEM_BLOCK_MGR::Initialize(unsigned long,unsigned long) __ptr64
?Initialize@MEM_BLOCK_MGR@@QEAAEKK@Z
; public: unsigned char __cdecl MESSAGE::Initialize(void) __ptr64
?Initialize@MESSAGE@@QEAAEXZ
; public: unsigned char __cdecl MULTIPLE_PATH_ARGUMENT::Initialize(char * __ptr64,unsigned char,unsigned char) __ptr64
?Initialize@MULTIPLE_PATH_ARGUMENT@@QEAAEPEADEE@Z
; public: unsigned char __cdecl PATH::Initialize(unsigned short const * __ptr64,unsigned char) __ptr64
?Initialize@PATH@@QEAAEPEBGE@Z
; public: unsigned char __cdecl PATH::Initialize(class PATH const * __ptr64,unsigned char) __ptr64
?Initialize@PATH@@QEAAEPEBV1@E@Z
; public: unsigned char __cdecl PATH::Initialize(class WSTRING const * __ptr64,unsigned char) __ptr64
?Initialize@PATH@@QEAAEPEBVWSTRING@@E@Z
; public: unsigned char __cdecl PATH_ARGUMENT::Initialize(char * __ptr64,unsigned char) __ptr64
?Initialize@PATH_ARGUMENT@@QEAAEPEADE@Z
; public: unsigned char __cdecl PRINT_STREAM::Initialize(class PATH const * __ptr64) __ptr64
?Initialize@PRINT_STREAM@@QEAAEPEBVPATH@@@Z
; public: unsigned char __cdecl PROGRAM::Initialize(unsigned long,unsigned long,unsigned long) __ptr64
?Initialize@PROGRAM@@QEAAEKKK@Z
; public: unsigned char __cdecl REST_OF_LINE_ARGUMENT::Initialize(void) __ptr64
?Initialize@REST_OF_LINE_ARGUMENT@@QEAAEXZ
; public: unsigned char __cdecl SCREEN::Initialize(void) __ptr64
?Initialize@SCREEN@@QEAAEXZ
; public: unsigned char __cdecl SORTED_LIST::Initialize(unsigned char) __ptr64
?Initialize@SORTED_LIST@@QEAAEE@Z
; public: unsigned char __cdecl STREAM_MESSAGE::Initialize(class STREAM * __ptr64,class STREAM * __ptr64,class STREAM * __ptr64) __ptr64
?Initialize@STREAM_MESSAGE@@QEAAEPEAVSTREAM@@00@Z
; public: unsigned char __cdecl STRING_ARGUMENT::Initialize(char * __ptr64) __ptr64
?Initialize@STRING_ARGUMENT@@QEAAEPEAD@Z
; public: unsigned char __cdecl STRING_ARRAY::Initialize(unsigned long,unsigned long,unsigned long) __ptr64
?Initialize@STRING_ARRAY@@QEAAEKKK@Z
; public: unsigned char __cdecl TIMEINFO::Initialize(struct _FILETIME * __ptr64) __ptr64
?Initialize@TIMEINFO@@QEAAEPEAU_FILETIME@@@Z
; public: void __cdecl TIMEINFO::Initialize(class TIMEINFO const * __ptr64) __ptr64
?Initialize@TIMEINFO@@QEAAXPEBV1@@Z
; public: unsigned char __cdecl TIMEINFO_ARGUMENT::Initialize(char * __ptr64) __ptr64
?Initialize@TIMEINFO_ARGUMENT@@QEAAEPEAD@Z
; public: unsigned char __cdecl WSTRING::Initialize(long) __ptr64
?Initialize@WSTRING@@QEAAEJ@Z
; public: unsigned char __cdecl WSTRING::Initialize(char const * __ptr64,unsigned long) __ptr64
?Initialize@WSTRING@@QEAAEPEBDK@Z
; public: unsigned char __cdecl WSTRING::Initialize(unsigned short const * __ptr64,unsigned long) __ptr64
?Initialize@WSTRING@@QEAAEPEBGK@Z
; public: unsigned char __cdecl WSTRING::Initialize(class WSTRING const * __ptr64,unsigned long,unsigned long) __ptr64
?Initialize@WSTRING@@QEAAEPEBV1@KK@Z
; public: unsigned char __cdecl WSTRING::Initialize(void) __ptr64
?Initialize@WSTRING@@QEAAEXZ
; public: unsigned char __cdecl LIST::Insert(class OBJECT * __ptr64,class ITERATOR * __ptr64) __ptr64
?Insert@LIST@@QEAAEPEAVOBJECT@@PEAVITERATOR@@@Z
; public: unsigned char __cdecl WSTRING::InsertString(unsigned long,class WSTRING const * __ptr64,unsigned long,unsigned long) __ptr64
?InsertString@WSTRING@@QEAAEKPEBV1@KK@Z
; public: static unsigned char __cdecl SYSTEM::IsCorrectVersion(void)
?IsCorrectVersion@SYSTEM@@SAEXZ
; public: unsigned char __cdecl PATH::IsDrive(void)const  __ptr64
?IsDrive@PATH@@QEBAEXZ
; public: unsigned char __cdecl FSN_DIRECTORY::IsEmpty(void)const  __ptr64
?IsEmpty@FSN_DIRECTORY@@QEBAEXZ
; public: unsigned char __cdecl PATH::IsGuidVolName(void) __ptr64
?IsGuidVolName@PATH@@QEAAEXZ
; public: virtual unsigned char __cdecl MESSAGE::IsInAutoChk(void) __ptr64
?IsInAutoChk@MESSAGE@@UEAAEXZ
; public: virtual unsigned char __cdecl MESSAGE::IsInSetup(void) __ptr64
?IsInSetup@MESSAGE@@UEAAEXZ
; public: unsigned char __cdecl KEYBOARD::IsKeyAvailable(unsigned char * __ptr64)const  __ptr64
?IsKeyAvailable@KEYBOARD@@QEBAEPEAE@Z
; public: virtual unsigned char __cdecl MESSAGE::IsKeyPressed(unsigned long,unsigned long) __ptr64
?IsKeyPressed@MESSAGE@@UEAAEKK@Z
; public: unsigned char __cdecl MESSAGE::IsLoggingEnabled(void) __ptr64
?IsLoggingEnabled@MESSAGE@@QEAAEXZ
; public: unsigned char __cdecl OBJECT::IsSameClass(class OBJECT const * __ptr64)const  __ptr64
?IsSameClass@OBJECT@@QEBAEPEBV1@@Z
; public: unsigned char __cdecl OBJECT::IsSameObject(class OBJECT const * __ptr64)const  __ptr64
?IsSameObject@OBJECT@@QEBAEPEBV1@@Z
; public: virtual unsigned char __cdecl MESSAGE::IsSuppressedMessage(void) __ptr64
?IsSuppressedMessage@MESSAGE@@UEAAEXZ
; public: unsigned char __cdecl ARGUMENT::IsValueSet(void) __ptr64
?IsValueSet@ARGUMENT@@QEAAEXZ
; public: virtual unsigned char __cdecl CHKDSK_MESSAGE::IsYesResponse(unsigned char) __ptr64
?IsYesResponse@CHKDSK_MESSAGE@@UEAAEE@Z
; public: virtual unsigned char __cdecl MESSAGE::IsYesResponse(unsigned char) __ptr64
?IsYesResponse@MESSAGE@@UEAAEE@Z
; public: virtual unsigned char __cdecl STREAM_MESSAGE::IsYesResponse(unsigned char) __ptr64
?IsYesResponse@STREAM_MESSAGE@@UEAAEE@Z
; public: void __cdecl MESSAGE::Lock(void) __ptr64
?Lock@MESSAGE@@QEAAXXZ
; public: unsigned char __cdecl MESSAGE::Log(char const * __ptr64,...) __ptr64
?Log@MESSAGE@@QEAAEPEBDZZ
; public: unsigned char __cdecl MESSAGE::LogMessage(class WSTRING const * __ptr64) __ptr64
?LogMessage@MESSAGE@@QEAAEPEBVWSTRING@@@Z
; public: unsigned char __cdecl MESSAGE::LogMsg(unsigned long) __ptr64
?LogMsg@MESSAGE@@QEAAEK@Z
; public: unsigned char __cdecl MESSAGE::LogMsg(unsigned long,char const * __ptr64,...) __ptr64
?LogMsg@MESSAGE@@QEAAEKPEBDZZ
; public: static class FSN_DIRECTORY * __ptr64 __cdecl SYSTEM::MakeDirectory(class PATH const * __ptr64,class PATH const * __ptr64,enum _COPY_ERROR * __ptr64,unsigned long (__cdecl*)(union _LARGE_INTEGER,union _LARGE_INTEGER,union _LARGE_INTEGER,union _LARGE_INTEGER,unsigned long,unsigned long,void * __ptr64,void * __ptr64,void * __ptr64),void * __ptr64,int * __ptr64,unsigned long)
?MakeDirectory@SYSTEM@@SAPEAVFSN_DIRECTORY@@PEBVPATH@@0PEAW4_COPY_ERROR@@P6AKT_LARGE_INTEGER@@222KKPEAX33@Z3PEAHK@Z
; public: static class FSN_FILE * __ptr64 __cdecl SYSTEM::MakeFile(class PATH const * __ptr64)
?MakeFile@SYSTEM@@SAPEAVFSN_FILE@@PEBVPATH@@@Z
; public: static class FSN_FILE * __ptr64 __cdecl SYSTEM::MakeTemporaryFile(class WSTRING const * __ptr64,class PATH const * __ptr64)
?MakeTemporaryFile@SYSTEM@@SAPEAVFSN_FILE@@PEBVWSTRING@@PEBVPATH@@@Z
; public: unsigned char __cdecl PATH::ModifyName(class WSTRING const * __ptr64) __ptr64
?ModifyName@PATH@@QEAAEPEBVWSTRING@@@Z
; public: unsigned char __cdecl SCREEN::MoveCursorTo(unsigned short,unsigned short) __ptr64
?MoveCursorTo@SCREEN@@QEAAEGG@Z
; public: virtual unsigned char __cdecl BDSTRING::NewBuf(unsigned long) __ptr64
?NewBuf@BDSTRING@@UEAAEK@Z
; public: virtual unsigned char __cdecl DSTRING::NewBuf(unsigned long) __ptr64
?NewBuf@DSTRING@@UEAAEK@Z
; public: virtual unsigned char __cdecl FSTRING::NewBuf(unsigned long) __ptr64
?NewBuf@FSTRING@@UEAAEK@Z
; public: unsigned long __cdecl BSTRING::NextChar(unsigned long) __ptr64
?NextChar@BSTRING@@QEAAKK@Z
; public: unsigned char __cdecl ARGUMENT_LEXEMIZER::PrepareToParse(class WSTRING * __ptr64) __ptr64
?PrepareToParse@ARGUMENT_LEXEMIZER@@QEAAEPEAVWSTRING@@@Z
; public: virtual unsigned char __cdecl ARRAY::Put(class OBJECT * __ptr64) __ptr64
?Put@ARRAY@@UEAAEPEAVOBJECT@@@Z
; public: virtual unsigned char __cdecl LIST::Put(class OBJECT * __ptr64) __ptr64
?Put@LIST@@UEAAEPEAVOBJECT@@@Z
; public: virtual unsigned char __cdecl SORTED_LIST::Put(class OBJECT * __ptr64) __ptr64
?Put@SORTED_LIST@@UEAAEPEAVOBJECT@@@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::PutMultipleSwitch(char const * __ptr64) __ptr64
?PutMultipleSwitch@ARGUMENT_LEXEMIZER@@QEAAXPEBD@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::PutMultipleSwitch(class WSTRING const * __ptr64) __ptr64
?PutMultipleSwitch@ARGUMENT_LEXEMIZER@@QEAAXPEBVWSTRING@@@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::PutSeparators(char const * __ptr64) __ptr64
?PutSeparators@ARGUMENT_LEXEMIZER@@QEAAXPEBD@Z
; protected: void __cdecl BSTRING::PutString(char * __ptr64,unsigned long) __ptr64
?PutString@BSTRING@@IEAAXPEADK@Z
; protected: void __cdecl WSTRING::PutString(unsigned short * __ptr64) __ptr64
?PutString@WSTRING@@IEAAXPEAG@Z
; protected: void __cdecl WSTRING::PutString(unsigned short * __ptr64,unsigned long) __ptr64
?PutString@WSTRING@@IEAAXPEAGK@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::PutSwitches(char const * __ptr64) __ptr64
?PutSwitches@ARGUMENT_LEXEMIZER@@QEAAXPEBD@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::PutSwitches(class WSTRING const * __ptr64) __ptr64
?PutSwitches@ARGUMENT_LEXEMIZER@@QEAAXPEBVWSTRING@@@Z
; public: unsigned long __cdecl WSTRING::QueryByteCount(void)const  __ptr64
?QueryByteCount@WSTRING@@QEBAKXZ
; public: unsigned short __cdecl WSTRING::QueryChAt(unsigned long)const  __ptr64
?QueryChAt@WSTRING@@QEBAGK@Z
; public: unsigned long __cdecl BSTRING::QueryChCount(void)const  __ptr64
?QueryChCount@BSTRING@@QEBAKXZ
; public: unsigned long __cdecl WSTRING::QueryChCount(void)const  __ptr64
?QueryChCount@WSTRING@@QEBAKXZ
; public: unsigned __int64 __cdecl OBJECT::QueryClassId(void)const  __ptr64
?QueryClassId@OBJECT@@QEBA_KXZ
; public: unsigned long __cdecl SCREEN::QueryCodePage(void) __ptr64
?QueryCodePage@SCREEN@@QEAAKXZ
; public: class ARRAY * __ptr64 __cdecl PATH::QueryComponentArray(class ARRAY * __ptr64)const  __ptr64
?QueryComponentArray@PATH@@QEBAPEAVARRAY@@PEAV2@@Z
; public: static unsigned char __cdecl SYSTEM::QueryCurrentDosDriveName(class WSTRING * __ptr64)
?QueryCurrentDosDriveName@SYSTEM@@SAEPEAVWSTRING@@@Z
; public: unsigned char __cdecl TIMEINFO::QueryDate(class WSTRING * __ptr64)const  __ptr64
?QueryDate@TIMEINFO@@QEBAEPEAVWSTRING@@@Z
; public: static class FSN_DIRECTORY * __ptr64 __cdecl SYSTEM::QueryDirectory(class PATH const * __ptr64,unsigned char)
?QueryDirectory@SYSTEM@@SAPEAVFSN_DIRECTORY@@PEBVPATH@@E@Z
; public: static enum DRIVE_TYPE  __cdecl SYSTEM::QueryDriveType(class WSTRING const * __ptr64)
?QueryDriveType@SYSTEM@@SA?AW4DRIVE_TYPE@@PEBVWSTRING@@@Z
; public: static class WSTRING * __ptr64 __cdecl SYSTEM::QueryEnvironmentVariable(class WSTRING const * __ptr64)
?QueryEnvironmentVariable@SYSTEM@@SAPEAVWSTRING@@PEBV2@@Z
; public: static class FSN_FILE * __ptr64 __cdecl SYSTEM::QueryFile(class PATH const * __ptr64,unsigned char,unsigned char * __ptr64)
?QueryFile@SYSTEM@@SAPEAVFSN_FILE@@PEBVPATH@@EPEAE@Z
; public: static enum FILE_TYPE  __cdecl SYSTEM::QueryFileType(class WSTRING const * __ptr64)
?QueryFileType@SYSTEM@@SA?AW4FILE_TYPE@@PEBVWSTRING@@@Z
; public: class ARRAY * __ptr64 __cdecl FSN_DIRECTORY::QueryFsnodeArray(class FSN_FILTER * __ptr64)const  __ptr64
?QueryFsnodeArray@FSN_DIRECTORY@@QEBAPEAVARRAY@@PEAVFSN_FILTER@@@Z
; public: class PATH * __ptr64 __cdecl PATH::QueryFullPath(void)const  __ptr64
?QueryFullPath@PATH@@QEBAPEAV1@XZ
; public: class WSTRING * __ptr64 __cdecl PATH::QueryFullPathString(void)const  __ptr64
?QueryFullPathString@PATH@@QEBAPEAVWSTRING@@XZ
; public: class WSTRING * __ptr64 __cdecl PATH::QueryGuidString(class WSTRING * __ptr64,unsigned char * __ptr64,class WSTRING * __ptr64) __ptr64
?QueryGuidString@PATH@@QEAAPEAVWSTRING@@PEAV2@PEAE0@Z
; public: class WSTRING * __ptr64 __cdecl ARGUMENT_LEXEMIZER::QueryInvalidArgument(void) __ptr64
?QueryInvalidArgument@ARGUMENT_LEXEMIZER@@QEAAPEAVWSTRING@@XZ
; public: virtual class ITERATOR * __ptr64 __cdecl ARRAY::QueryIterator(void)const  __ptr64
?QueryIterator@ARRAY@@UEBAPEAVITERATOR@@XZ
; public: virtual class ITERATOR * __ptr64 __cdecl LIST::QueryIterator(void)const  __ptr64
?QueryIterator@LIST@@UEBAPEAVITERATOR@@XZ
; public: virtual class ITERATOR * __ptr64 __cdecl SORTED_LIST::QueryIterator(void)const  __ptr64
?QueryIterator@SORTED_LIST@@UEBAPEAVITERATOR@@XZ
; public: static __int64 (__cdecl*__cdecl SYSTEM::QueryLibraryEntryPoint(class WSTRING const * __ptr64,class WSTRING const * __ptr64,void * __ptr64 * __ptr64))(void)
?QueryLibraryEntryPoint@SYSTEM@@SAP6A_JXZPEBVWSTRING@@0PEAPEAX@Z
; public: static unsigned char __cdecl SYSTEM::QueryLocalTimeFromUTime(class TIMEINFO const * __ptr64,class TIMEINFO * __ptr64)
?QueryLocalTimeFromUTime@SYSTEM@@SAEPEBVTIMEINFO@@PEAV2@@Z
; public: virtual unsigned long __cdecl SORTED_LIST::QueryMemberCount(void)const  __ptr64
?QueryMemberCount@SORTED_LIST@@UEBAKXZ
; public: class PATH * __ptr64 __cdecl PATH::QueryMountPointPath(void) __ptr64
?QueryMountPointPath@PATH@@QEAAPEAV1@XZ
; public: unsigned char __cdecl MESSAGE::QueryNextLoggedMessage(class FSTRING * __ptr64) __ptr64
?QueryNextLoggedMessage@MESSAGE@@QEAAEPEAVFSTRING@@@Z
; public: unsigned char __cdecl WSTRING::QueryNumber(long * __ptr64,unsigned long,unsigned long)const  __ptr64
?QueryNumber@WSTRING@@QEBAEPEAJKK@Z
; public: unsigned char __cdecl MESSAGE::QueryPackedLog(class HMEM * __ptr64,unsigned long * __ptr64) __ptr64
?QueryPackedLog@MESSAGE@@QEAAEPEAVHMEM@@PEAK@Z
; public: class PATH * __ptr64 __cdecl PATH::QueryPath(void)const  __ptr64
?QueryPath@PATH@@QEBAPEAV1@XZ
; public: static unsigned char __cdecl BASE_SYSTEM::QueryResourceString(class WSTRING * __ptr64,unsigned long,char const * __ptr64,...)
?QueryResourceString@BASE_SYSTEM@@SAEPEAVWSTRING@@KPEBDZZ
; public: static unsigned char __cdecl BASE_SYSTEM::QueryResourceStringV(class WSTRING * __ptr64,unsigned long,char const * __ptr64,char * __ptr64)
?QueryResourceStringV@BASE_SYSTEM@@SAEPEAVWSTRING@@KPEBDPEAD@Z
; public: class WSTRING * __ptr64 __cdecl PATH::QueryRoot(void) __ptr64
?QueryRoot@PATH@@QEAAPEAVWSTRING@@XZ
; public: char * __ptr64 __cdecl BSTRING::QuerySTR(unsigned long,unsigned long,char * __ptr64,unsigned long,unsigned char)const  __ptr64
?QuerySTR@BSTRING@@QEBAPEADKKPEADKE@Z
; public: char * __ptr64 __cdecl WSTRING::QuerySTR(unsigned long,unsigned long,char * __ptr64,unsigned long,unsigned char)const  __ptr64
?QuerySTR@WSTRING@@QEBAPEADKKPEADKE@Z
; public: void __cdecl SCREEN::QueryScreenSize(unsigned short * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64)const  __ptr64
?QueryScreenSize@SCREEN@@QEBAXPEAG000@Z
; public: class FILE_STREAM * __ptr64 __cdecl FSN_FILE::QueryStream(enum STREAMACCESS,unsigned long) __ptr64
?QueryStream@FSN_FILE@@QEAAPEAVFILE_STREAM@@W4STREAMACCESS@@K@Z
; public: class WSTRING * __ptr64 __cdecl WSTRING::QueryString(unsigned long,unsigned long)const  __ptr64
?QueryString@WSTRING@@QEBAPEAV1@KK@Z
; public: virtual unsigned char __cdecl MESSAGE::QueryStringInput(class WSTRING * __ptr64) __ptr64
?QueryStringInput@MESSAGE@@UEAAEPEAVWSTRING@@@Z
; public: static class PATH * __ptr64 __cdecl SYSTEM::QuerySystemDirectory(void)
?QuerySystemDirectory@SYSTEM@@SAPEAVPATH@@XZ
; public: unsigned char __cdecl TIMEINFO::QueryTime(class WSTRING * __ptr64)const  __ptr64
?QueryTime@TIMEINFO@@QEBAEPEAVWSTRING@@@Z
; public: unsigned char __cdecl COMM_DEVICE::QueryTimeOut(void)const  __ptr64
?QueryTimeOut@COMM_DEVICE@@QEBAEXZ
; public: static class WSTRING * __ptr64 __cdecl SYSTEM::QueryVolumeLabel(class PATH * __ptr64,struct _VOL_SERIAL_NUMBER * __ptr64)
?QueryVolumeLabel@SYSTEM@@SAPEAVWSTRING@@PEAVPATH@@PEAU_VOL_SERIAL_NUMBER@@@Z
; public: class PATH * __ptr64 __cdecl PATH::QueryWCExpansion(class PATH * __ptr64) __ptr64
?QueryWCExpansion@PATH@@QEAAPEAV1@PEAV1@@Z
; public: unsigned short * __ptr64 __cdecl WSTRING::QueryWSTR(unsigned long,unsigned long,unsigned short * __ptr64,unsigned long,unsigned char)const  __ptr64
?QueryWSTR@WSTRING@@QEBAPEAGKKPEAGKE@Z
; public: static unsigned char __cdecl SYSTEM::QueryWindowsErrorMessage(unsigned long,class WSTRING * __ptr64)
?QueryWindowsErrorMessage@SYSTEM@@SAEKPEAVWSTRING@@@Z
; public: unsigned char __cdecl FILE_STREAM::ReadAt(unsigned char * __ptr64,unsigned long,__int64,enum SEEKORIGIN,unsigned long * __ptr64) __ptr64
?ReadAt@FILE_STREAM@@QEAAEPEAEK_JW4SEEKORIGIN@@PEAK@Z
; public: unsigned char __cdecl STREAM::ReadLine(class WSTRING * __ptr64,unsigned char) __ptr64
?ReadLine@STREAM@@QEAAEPEAVWSTRING@@E@Z
; public: unsigned char __cdecl STREAM::ReadMbLine(char * __ptr64,unsigned long,unsigned long * __ptr64,unsigned char,unsigned long) __ptr64
?ReadMbLine@STREAM@@QEAAEPEADKPEAKEK@Z
; public: unsigned char __cdecl STREAM::ReadWLine(unsigned short * __ptr64,unsigned long,unsigned long * __ptr64,unsigned char,unsigned long) __ptr64
?ReadWLine@STREAM@@QEAAEPEAGKPEAKEK@Z
; public: virtual class OBJECT * __ptr64 __cdecl ARRAY::Remove(class ITERATOR * __ptr64) __ptr64
?Remove@ARRAY@@UEAAPEAVOBJECT@@PEAVITERATOR@@@Z
; public: static unsigned char __cdecl SYSTEM::RemoveNode(class FSNODE * __ptr64 * __ptr64,unsigned char)
?RemoveNode@SYSTEM@@SAEPEAPEAVFSNODE@@E@Z
; public: unsigned char __cdecl WSTRING::Replace(unsigned long,unsigned long,class WSTRING const * __ptr64,unsigned long,unsigned long) __ptr64
?Replace@WSTRING@@QEAAEKKPEBV1@KK@Z
; public: unsigned char __cdecl BSTRING::ReplaceWithChars(unsigned long,unsigned long,char,unsigned long) __ptr64
?ReplaceWithChars@BSTRING@@QEAAEKKDK@Z
; public: unsigned char __cdecl WSTRING::ReplaceWithChars(unsigned long,unsigned long,unsigned short,unsigned long) __ptr64
?ReplaceWithChars@WSTRING@@QEAAEKKGK@Z
; public: void __cdecl BITVECTOR::ResetBit(unsigned long,unsigned long) __ptr64
?ResetBit@BITVECTOR@@QEAAXKK@Z
; public: static void __cdecl WSTRING::ResetConversions(void)
?ResetConversions@WSTRING@@SAXXZ
; public: void __cdecl MESSAGE::ResetLoggingIterator(void) __ptr64
?ResetLoggingIterator@MESSAGE@@QEAAXXZ
; public: virtual unsigned char __cdecl BDSTRING::Resize(unsigned long) __ptr64
?Resize@BDSTRING@@UEAAEK@Z
; public: virtual unsigned char __cdecl DSTRING::Resize(unsigned long) __ptr64
?Resize@DSTRING@@UEAAEK@Z
; public: virtual unsigned char __cdecl FSTRING::Resize(unsigned long) __ptr64
?Resize@FSTRING@@UEAAEK@Z
; public: unsigned char __cdecl HMEM::Resize(unsigned long,unsigned long) __ptr64
?Resize@HMEM@@QEAAEKK@Z
; public: static class PATH * __ptr64 __cdecl SYSTEM::SearchPathW(class WSTRING * __ptr64,class WSTRING * __ptr64)
?SearchPathW@SYSTEM@@SAPEAVPATH@@PEAVWSTRING@@0@Z
; public: virtual unsigned long __cdecl MESSAGE::SelectResponse(unsigned long,...) __ptr64
?SelectResponse@MESSAGE@@UEAAKKZZ
; public: virtual unsigned char __cdecl CHKDSK_MESSAGE::Set(unsigned long,enum MESSAGE_TYPE,unsigned long) __ptr64
?Set@CHKDSK_MESSAGE@@UEAAEKW4MESSAGE_TYPE@@K@Z
; public: virtual unsigned char __cdecl STREAM_MESSAGE::Set(unsigned long,enum MESSAGE_TYPE,unsigned long) __ptr64
?Set@STREAM_MESSAGE@@UEAAEKW4MESSAGE_TYPE@@K@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::SetAllowSwitchGlomming(unsigned char) __ptr64
?SetAllowSwitchGlomming@ARGUMENT_LEXEMIZER@@QEAAXE@Z
; public: static void __cdecl WSTRING::SetAnsiConversions(void)
?SetAnsiConversions@WSTRING@@SAXXZ
; public: unsigned char __cdecl FSN_FILTER::SetAttributes(unsigned long,unsigned long,unsigned long) __ptr64
?SetAttributes@FSN_FILTER@@QEAAEKKK@Z
; public: unsigned char __cdecl COMM_DEVICE::SetBaudRate(unsigned long) __ptr64
?SetBaudRate@COMM_DEVICE@@QEAAEK@Z
; public: void __cdecl BITVECTOR::SetBit(unsigned long,unsigned long) __ptr64
?SetBit@BITVECTOR@@QEAAXKK@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::SetCaseSensitive(unsigned char) __ptr64
?SetCaseSensitive@ARGUMENT_LEXEMIZER@@QEAAXE@Z
; public: unsigned short __cdecl WSTRING::SetChAt(unsigned short,unsigned long) __ptr64
?SetChAt@WSTRING@@QEAAGGK@Z
; protected: void __cdecl OBJECT::SetClassDescriptor(class CLASS_DESCRIPTOR const * __ptr64) __ptr64
?SetClassDescriptor@OBJECT@@IEAAXPEBVCLASS_DESCRIPTOR@@@Z
; public: unsigned char __cdecl SCREEN::SetCodePage(unsigned long) __ptr64
?SetCodePage@SCREEN@@QEAAEK@Z
; public: static void __cdecl WSTRING::SetConsoleConversions(void)
?SetConsoleConversions@WSTRING@@SAXXZ
; public: unsigned char __cdecl COMM_DEVICE::SetDataBits(unsigned long) __ptr64
?SetDataBits@COMM_DEVICE@@QEAAEK@Z
; public: unsigned char __cdecl PATH::SetDevice(class WSTRING const * __ptr64) __ptr64
?SetDevice@PATH@@QEAAEPEBVWSTRING@@@Z
; public: virtual unsigned char __cdecl MESSAGE::SetDotsOnly(unsigned char) __ptr64
?SetDotsOnly@MESSAGE@@UEAAEE@Z
; public: unsigned char __cdecl COMM_DEVICE::SetDtrControl(enum DTR_CONTROL) __ptr64
?SetDtrControl@COMM_DEVICE@@QEAAEW4DTR_CONTROL@@@Z
; public: unsigned char __cdecl FSN_FILTER::SetFileName(char const * __ptr64) __ptr64
?SetFileName@FSN_FILTER@@QEAAEPEBD@Z
; public: unsigned char __cdecl FSN_FILTER::SetFileName(class WSTRING const * __ptr64) __ptr64
?SetFileName@FSN_FILTER@@QEAAEPEBVWSTRING@@@Z
; public: unsigned char __cdecl COMM_DEVICE::SetIdsr(unsigned char) __ptr64
?SetIdsr@COMM_DEVICE@@QEAAEE@Z
; public: void __cdecl MESSAGE::SetLoggingEnabled(unsigned char) __ptr64
?SetLoggingEnabled@MESSAGE@@QEAAXE@Z
; public: unsigned char __cdecl PATH::SetName(class WSTRING const * __ptr64) __ptr64
?SetName@PATH@@QEAAEPEBVWSTRING@@@Z
; public: void __cdecl ARGUMENT_LEXEMIZER::SetNoSpcBetweenDstAndSwitch(unsigned char) __ptr64
?SetNoSpcBetweenDstAndSwitch@ARGUMENT_LEXEMIZER@@QEAAXE@Z
; public: unsigned char __cdecl COMM_DEVICE::SetOcts(unsigned char) __ptr64
?SetOcts@COMM_DEVICE@@QEAAEE@Z
; public: unsigned char __cdecl COMM_DEVICE::SetOdsr(unsigned char) __ptr64
?SetOdsr@COMM_DEVICE@@QEAAEE@Z
; public: static void __cdecl WSTRING::SetOemConversions(void)
?SetOemConversions@WSTRING@@SAXXZ
; public: unsigned char __cdecl SCREEN::SetOutputCodePage(unsigned long) __ptr64
?SetOutputCodePage@SCREEN@@QEAAEK@Z
; public: unsigned char __cdecl COMM_DEVICE::SetParity(enum PARITY) __ptr64
?SetParity@COMM_DEVICE@@QEAAEW4PARITY@@@Z
; public: unsigned char __cdecl COMM_DEVICE::SetRtsControl(enum RTS_CONTROL) __ptr64
?SetRtsControl@COMM_DEVICE@@QEAAEW4RTS_CONTROL@@@Z
; public: unsigned long __cdecl BITVECTOR::SetSize(unsigned long,enum BIT) __ptr64
?SetSize@BITVECTOR@@QEAAKKW4BIT@@@Z
; public: unsigned char __cdecl COMM_DEVICE::SetStopBits(enum STOPBITS) __ptr64
?SetStopBits@COMM_DEVICE@@QEAAEW4STOPBITS@@@Z
; public: unsigned char __cdecl FSN_FILTER::SetTimeInfo(class TIMEINFO const * __ptr64,enum FSN_TIME,unsigned short) __ptr64
?SetTimeInfo@FSN_FILTER@@QEAAEPEBVTIMEINFO@@W4FSN_TIME@@G@Z
; public: unsigned char __cdecl COMM_DEVICE::SetTimeOut(unsigned char) __ptr64
?SetTimeOut@COMM_DEVICE@@QEAAEE@Z
; public: unsigned char __cdecl COMM_DEVICE::SetXon(unsigned char) __ptr64
?SetXon@COMM_DEVICE@@QEAAEE@Z
; public: static unsigned short * __ptr64 __cdecl WSTRING::SkipWhite(unsigned short * __ptr64)
?SkipWhite@WSTRING@@SAPEAGPEAG@Z
; public: virtual unsigned char __cdecl STRING_ARRAY::Sort(unsigned char) __ptr64
?Sort@STRING_ARRAY@@UEAAEE@Z
; public: unsigned char __cdecl WSTRING::Strcat(class WSTRING const * __ptr64) __ptr64
?Strcat@WSTRING@@QEAAEPEBV1@@Z
; public: unsigned long __cdecl BSTRING::Strchr(char,unsigned long)const  __ptr64
?Strchr@BSTRING@@QEBAKDK@Z
; public: unsigned long __cdecl WSTRING::Strchr(unsigned short,unsigned long)const  __ptr64
?Strchr@WSTRING@@QEBAKGK@Z
; public: long __cdecl WSTRING::Strcmp(class WSTRING const * __ptr64)const  __ptr64
?Strcmp@WSTRING@@QEBAJPEBV1@@Z
; public: long __cdecl WSTRING::Strcmp(class WSTRING const * __ptr64,unsigned long)const  __ptr64
?Strcmp@WSTRING@@QEBAJPEBV1@K@Z
; public: long __cdecl WSTRING::Strcmp(class WSTRING const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long)const  __ptr64
?Strcmp@WSTRING@@QEBAJPEBV1@KKKK@Z
; public: static int __cdecl WSTRING::Strcmp(unsigned short * __ptr64,unsigned short * __ptr64)
?Strcmp@WSTRING@@SAHPEAG0@Z
; public: static int __cdecl MBSTR::Strcmpis(char * __ptr64,char * __ptr64)
?Strcmpis@MBSTR@@SAHPEAD0@Z
; public: static int __cdecl WSTRING::Strcmpis(unsigned short * __ptr64,unsigned short * __ptr64)
?Strcmpis@WSTRING@@SAHPEAG0@Z
; public: static int __cdecl MBSTR::Strcmps(char * __ptr64,char * __ptr64)
?Strcmps@MBSTR@@SAHPEAD0@Z
; public: static int __cdecl WSTRING::Strcmps(unsigned short * __ptr64,unsigned short * __ptr64)
?Strcmps@WSTRING@@SAHPEAG0@Z
; public: unsigned long __cdecl WSTRING::Strcspn(class WSTRING const * __ptr64,unsigned long)const  __ptr64
?Strcspn@WSTRING@@QEBAKPEBV1@K@Z
; public: static int __cdecl MBSTR::Stricmp(char * __ptr64,char * __ptr64)
?Stricmp@MBSTR@@SAHPEAD0@Z
; public: long __cdecl WSTRING::Stricmp(class WSTRING const * __ptr64)const  __ptr64
?Stricmp@WSTRING@@QEBAJPEBV1@@Z
; public: long __cdecl WSTRING::Stricmp(class WSTRING const * __ptr64,unsigned long)const  __ptr64
?Stricmp@WSTRING@@QEBAJPEBV1@K@Z
; public: long __cdecl WSTRING::Stricmp(class WSTRING const * __ptr64,unsigned long,unsigned long,unsigned long,unsigned long)const  __ptr64
?Stricmp@WSTRING@@QEBAJPEBV1@KKKK@Z
; public: static int __cdecl WSTRING::Stricmp(unsigned short * __ptr64,unsigned short * __ptr64)
?Stricmp@WSTRING@@SAHPEAG0@Z
; public: class WSTRING * __ptr64 __cdecl WSTRING::Strlwr(unsigned long,unsigned long) __ptr64
?Strlwr@WSTRING@@QEAAPEAV1@KK@Z
; public: class WSTRING * __ptr64 __cdecl WSTRING::Strlwr(void) __ptr64
?Strlwr@WSTRING@@QEAAPEAV1@XZ
; public: unsigned long __cdecl WSTRING::Strrchr(unsigned short,unsigned long)const  __ptr64
?Strrchr@WSTRING@@QEBAKGK@Z
; public: unsigned long __cdecl WSTRING::Strspn(class WSTRING const * __ptr64,unsigned long)const  __ptr64
?Strspn@WSTRING@@QEBAKPEBV1@K@Z
; public: static char * __ptr64 __cdecl MBSTR::Strstr(char * __ptr64,char * __ptr64)
?Strstr@MBSTR@@SAPEADPEAD0@Z
; public: unsigned long __cdecl WSTRING::Strstr(class WSTRING const * __ptr64)const  __ptr64
?Strstr@WSTRING@@QEBAKPEBV1@@Z
; public: class WSTRING * __ptr64 __cdecl WSTRING::Strupr(unsigned long,unsigned long) __ptr64
?Strupr@WSTRING@@QEAAPEAV1@KK@Z
; public: class WSTRING * __ptr64 __cdecl WSTRING::Strupr(void) __ptr64
?Strupr@WSTRING@@QEAAPEAV1@XZ
; public: unsigned long __cdecl WSTRING::SyncLength(void) __ptr64
?SyncLength@WSTRING@@QEAAKXZ
; public: unsigned char __cdecl FSN_DIRECTORY::Traverse(void * __ptr64,class FSN_FILTER * __ptr64,class PATH * __ptr64,unsigned char (__cdecl*)(void * __ptr64,class FSNODE * __ptr64,class PATH * __ptr64))const  __ptr64
?Traverse@FSN_DIRECTORY@@QEBAEPEAXPEAVFSN_FILTER@@PEAVPATH@@P6AE0PEAVFSNODE@@2@Z@Z
; public: unsigned long __cdecl WSTRING::Truncate(unsigned long) __ptr64
?Truncate@WSTRING@@QEAAKK@Z
; public: unsigned char __cdecl PATH::TruncateBase(void) __ptr64
?TruncateBase@PATH@@QEAAEXZ
; public: void __cdecl PATH::TruncateDelimiter(void) __ptr64
?TruncateDelimiter@PATH@@QEAAXXZ
; public: void __cdecl PATH::TruncateNameAtColon(void) __ptr64
?TruncateNameAtColon@PATH@@QEAAXXZ
; void * __ptr64 __cdecl UlibRealloc(void * __ptr64,unsigned long)
?UlibRealloc@@YAPEAXPEAXK@Z
; public: void __cdecl MESSAGE::Unlock(void) __ptr64
?Unlock@MESSAGE@@QEAAXXZ
; public: virtual void __cdecl PROGRAM::Usage(void)const  __ptr64
?Usage@PROGRAM@@UEBAXXZ
; public: unsigned char __cdecl FSNODE::UseAlternateName(void) __ptr64
?UseAlternateName@FSNODE@@QEAAEXZ
; public: virtual void __cdecl PROGRAM::ValidateVersion(unsigned long,unsigned long)const  __ptr64
?ValidateVersion@PROGRAM@@UEBAXKK@Z
; public: virtual unsigned char __cdecl MESSAGE::WaitForUserSignal(void) __ptr64
?WaitForUserSignal@MESSAGE@@UEAAEXZ
; public: unsigned char __cdecl STREAM::WriteByte(unsigned char) __ptr64
?WriteByte@STREAM@@QEAAEE@Z
; private: static unsigned char  WSTRING::_UseAnsiConversions
?_UseAnsiConversions@WSTRING@@0EA DATA
; private: static unsigned char  WSTRING::_UseAnsiConversionsPrev
?_UseAnsiConversionsPrev@WSTRING@@0EA DATA
; private: static unsigned char  WSTRING::_UseConsoleConversions
?_UseConsoleConversions@WSTRING@@0EA DATA
; private: static unsigned char  WSTRING::_UseConsoleConversionsPrev
?_UseConsoleConversionsPrev@WSTRING@@0EA DATA
