; 
; Exports of file NETUI0.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NETUI0.dll
EXPORTS
; public: __cdecl ALIAS_STR::ALIAS_STR(unsigned short const * __ptr64) __ptr64
??0ALIAS_STR@@QEAA@PEBG@Z
; public: __cdecl ALLOC_STR::ALLOC_STR(unsigned short * __ptr64,unsigned int,unsigned short const * __ptr64) __ptr64
??0ALLOC_STR@@QEAA@PEAGIPEBG@Z
; protected: __cdecl BASE::BASE(void) __ptr64
??0BASE@@IEAA@XZ
; public: __cdecl BITFIELD::BITFIELD(class BITFIELD const & __ptr64) __ptr64
??0BITFIELD@@QEAA@AEBV0@@Z
; public: __cdecl BITFIELD::BITFIELD(unsigned short) __ptr64
??0BITFIELD@@QEAA@G@Z
; public: __cdecl BITFIELD::BITFIELD(unsigned int,enum BITVALUES) __ptr64
??0BITFIELD@@QEAA@IW4BITVALUES@@@Z
; public: __cdecl BITFIELD::BITFIELD(unsigned long) __ptr64
??0BITFIELD@@QEAA@K@Z
; public: __cdecl BITFIELD::BITFIELD(unsigned char const * __ptr64,unsigned int,unsigned int) __ptr64
??0BITFIELD@@QEAA@PEBEII@Z
; public: __cdecl BUFFER::BUFFER(unsigned int) __ptr64
??0BUFFER@@QEAA@I@Z
; public: __cdecl CHAR_STRING::CHAR_STRING(unsigned short const * __ptr64,unsigned int) __ptr64
??0CHAR_STRING@@QEAA@PEBGI@Z
; public: __cdecl DBGSTREAM::DBGSTREAM(class OUTPUTSINK * __ptr64) __ptr64
??0DBGSTREAM@@QEAA@PEAVOUTPUTSINK@@@Z
; public: __cdecl DEC_STR::DEC_STR(unsigned long,unsigned int) __ptr64
??0DEC_STR@@QEAA@KI@Z
; public: __cdecl DFSITER_TREE::DFSITER_TREE(class DFSITER_TREE const * __ptr64) __ptr64
??0DFSITER_TREE@@QEAA@PEBV0@@Z
; public: __cdecl DFSITER_TREE::DFSITER_TREE(class TREE const * __ptr64,unsigned int) __ptr64
??0DFSITER_TREE@@QEAA@PEBVTREE@@I@Z
; public: __cdecl DIR_BLOCK::DIR_BLOCK(void) __ptr64
??0DIR_BLOCK@@QEAA@XZ
; public: __cdecl DLIST::DLIST(void) __ptr64
??0DLIST@@QEAA@XZ
; public: __cdecl DL_NODE::DL_NODE(class DL_NODE * __ptr64,class DL_NODE * __ptr64,void * __ptr64) __ptr64
??0DL_NODE@@QEAA@PEAV0@0PEAX@Z
; public: __cdecl ELAPSED_TIME_STR::ELAPSED_TIME_STR(unsigned long,unsigned short,int) __ptr64
??0ELAPSED_TIME_STR@@QEAA@KGH@Z
; public: __cdecl FMX::FMX(struct HWND__ * __ptr64) __ptr64
??0FMX@@QEAA@PEAUHWND__@@@Z
; protected: __cdecl FORWARDING_BASE::FORWARDING_BASE(class BASE * __ptr64) __ptr64
??0FORWARDING_BASE@@IEAA@PEAVBASE@@@Z
; protected: __cdecl FS_ENUM::FS_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,enum FILE_TYPE,int,unsigned int) __ptr64
??0FS_ENUM@@IEAA@PEBG0W4FILE_TYPE@@HI@Z
; protected: __cdecl HEAP_BASE::HEAP_BASE(int,int) __ptr64
??0HEAP_BASE@@IEAA@HH@Z
; public: __cdecl HEX_STR::HEX_STR(unsigned long,unsigned int) __ptr64
??0HEX_STR@@QEAA@KI@Z
; public: __cdecl HUATOM::HUATOM(unsigned short const * __ptr64,int) __ptr64
??0HUATOM@@QEAA@PEBGH@Z
; public: __cdecl INTL_PROFILE::INTL_PROFILE(void) __ptr64
??0INTL_PROFILE@@QEAA@XZ
; public: __cdecl ISTR::ISTR(class ISTR const & __ptr64) __ptr64
??0ISTR@@QEAA@AEBV0@@Z
; public: __cdecl ISTR::ISTR(class NLS_STR const & __ptr64) __ptr64
??0ISTR@@QEAA@AEBVNLS_STR@@@Z
; public: __cdecl ITER_DL::ITER_DL(class ITER_DL const & __ptr64) __ptr64
??0ITER_DL@@QEAA@AEBV0@@Z
; public: __cdecl ITER_DL::ITER_DL(class DLIST * __ptr64) __ptr64
??0ITER_DL@@QEAA@PEAVDLIST@@@Z
; public: __cdecl ITER_L::ITER_L(void) __ptr64
??0ITER_L@@QEAA@XZ
; public: __cdecl ITER_SL::ITER_SL(class ITER_SL const & __ptr64) __ptr64
??0ITER_SL@@QEAA@AEBV0@@Z
; public: __cdecl ITER_SL::ITER_SL(class SLIST * __ptr64) __ptr64
??0ITER_SL@@QEAA@PEAVSLIST@@@Z
; public: __cdecl ITER_SL_DIR_BLOCK::ITER_SL_DIR_BLOCK(class SLIST & __ptr64) __ptr64
??0ITER_SL_DIR_BLOCK@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_NLS_STR::ITER_SL_NLS_STR(class SLIST & __ptr64) __ptr64
??0ITER_SL_NLS_STR@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_NLS_STR::ITER_SL_NLS_STR(class ITER_SL_NLS_STR const & __ptr64) __ptr64
??0ITER_SL_NLS_STR@@QEAA@AEBV0@@Z
; public: __cdecl ITER_STRLIST::ITER_STRLIST(class STRLIST & __ptr64) __ptr64
??0ITER_STRLIST@@QEAA@AEAVSTRLIST@@@Z
; public: __cdecl ITER_STRLIST::ITER_STRLIST(class ITER_STRLIST const & __ptr64) __ptr64
??0ITER_STRLIST@@QEAA@AEBV0@@Z
; public: __cdecl LOGON_HOURS_SETTING::LOGON_HOURS_SETTING(class LOGON_HOURS_SETTING const & __ptr64) __ptr64
??0LOGON_HOURS_SETTING@@QEAA@AEBV0@@Z
; public: __cdecl LOGON_HOURS_SETTING::LOGON_HOURS_SETTING(unsigned char const * __ptr64,unsigned int) __ptr64
??0LOGON_HOURS_SETTING@@QEAA@PEBEI@Z
; protected: __cdecl NLS_STR::NLS_STR(unsigned short * __ptr64,unsigned int,int) __ptr64
??0NLS_STR@@IEAA@PEAGIH@Z
; public: __cdecl NLS_STR::NLS_STR(class NLS_STR const & __ptr64) __ptr64
??0NLS_STR@@QEAA@AEBV0@@Z
; public: __cdecl NLS_STR::NLS_STR(unsigned int) __ptr64
??0NLS_STR@@QEAA@I@Z
; public: __cdecl NLS_STR::NLS_STR(unsigned short const * __ptr64) __ptr64
??0NLS_STR@@QEAA@PEBG@Z
; public: __cdecl NLS_STR::NLS_STR(unsigned short const * __ptr64,unsigned short) __ptr64
??0NLS_STR@@QEAA@PEBGG@Z
; public: __cdecl NLS_STR::NLS_STR(void) __ptr64
??0NLS_STR@@QEAA@XZ
; public: __cdecl NUM_NLS_STR::NUM_NLS_STR(unsigned long) __ptr64
??0NUM_NLS_STR@@QEAA@K@Z
; public: __cdecl ONE_SHOT_HEAP::ONE_SHOT_HEAP(unsigned int,int) __ptr64
??0ONE_SHOT_HEAP@@QEAA@IH@Z
; public: __cdecl REG_KEY::REG_KEY(class REG_KEY & __ptr64) __ptr64
??0REG_KEY@@QEAA@AEAV0@@Z
; public: __cdecl REG_KEY::REG_KEY(class REG_KEY & __ptr64,class NLS_STR const & __ptr64,unsigned long) __ptr64
??0REG_KEY@@QEAA@AEAV0@AEBVNLS_STR@@K@Z
; public: __cdecl REG_KEY::REG_KEY(class REG_KEY & __ptr64,class NLS_STR const & __ptr64,class REG_KEY_CREATE_STRUCT * __ptr64) __ptr64
??0REG_KEY@@QEAA@AEAV0@AEBVNLS_STR@@PEAVREG_KEY_CREATE_STRUCT@@@Z
; public: __cdecl REG_KEY::REG_KEY(class NLS_STR const & __ptr64,unsigned long) __ptr64
??0REG_KEY@@QEAA@AEBVNLS_STR@@K@Z
; public: __cdecl REG_KEY::REG_KEY(struct HKEY__ * __ptr64,unsigned long) __ptr64
??0REG_KEY@@QEAA@PEAUHKEY__@@K@Z
; public: __cdecl REG_KEY::REG_KEY(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0REG_KEY@@QEAA@PEAUHKEY__@@PEBGK@Z
; public: __cdecl REG_KEY_CREATE_STRUCT::REG_KEY_CREATE_STRUCT(void) __ptr64
??0REG_KEY_CREATE_STRUCT@@QEAA@XZ
; public: __cdecl REG_KEY_INFO_STRUCT::REG_KEY_INFO_STRUCT(void) __ptr64
??0REG_KEY_INFO_STRUCT@@QEAA@XZ
; public: __cdecl REG_VALUE_INFO_STRUCT::REG_VALUE_INFO_STRUCT(void) __ptr64
??0REG_VALUE_INFO_STRUCT@@QEAA@XZ
; public: __cdecl RESOURCE_STR::RESOURCE_STR(long,struct HINSTANCE__ * __ptr64) __ptr64
??0RESOURCE_STR@@QEAA@JPEAUHINSTANCE__@@@Z
; public: __cdecl RITER_DL::RITER_DL(class RITER_DL const & __ptr64) __ptr64
??0RITER_DL@@QEAA@AEBV0@@Z
; public: __cdecl RITER_DL::RITER_DL(class DLIST * __ptr64) __ptr64
??0RITER_DL@@QEAA@PEAVDLIST@@@Z
; public: __cdecl SLIST::SLIST(void) __ptr64
??0SLIST@@QEAA@XZ
; public: __cdecl SLIST_OF_DIR_BLOCK::SLIST_OF_DIR_BLOCK(int) __ptr64
??0SLIST_OF_DIR_BLOCK@@QEAA@H@Z
; public: __cdecl SLIST_OF_NLS_STR::SLIST_OF_NLS_STR(int) __ptr64
??0SLIST_OF_NLS_STR@@QEAA@H@Z
; public: __cdecl SL_NODE::SL_NODE(class SL_NODE * __ptr64,void * __ptr64) __ptr64
??0SL_NODE@@QEAA@PEAV0@PEAX@Z
; public: __cdecl STRLIST::STRLIST(class NLS_STR const & __ptr64,class NLS_STR const & __ptr64,int) __ptr64
??0STRLIST@@QEAA@AEBVNLS_STR@@0H@Z
; public: __cdecl STRLIST::STRLIST(int) __ptr64
??0STRLIST@@QEAA@H@Z
; public: __cdecl STRLIST::STRLIST(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
??0STRLIST@@QEAA@PEBG0H@Z
; public: __cdecl TCHAR_STR::TCHAR_STR(unsigned short) __ptr64
??0TCHAR_STR@@QEAA@G@Z
; public: __cdecl TCHAR_STR_IMPL::TCHAR_STR_IMPL(unsigned short) __ptr64
??0TCHAR_STR_IMPL@@QEAA@G@Z
; public: __cdecl TREE::TREE(void * __ptr64) __ptr64
??0TREE@@QEAA@PEAX@Z
; public: __cdecl UATOM::UATOM(class NLS_STR & __ptr64) __ptr64
??0UATOM@@QEAA@AEAVNLS_STR@@@Z
; public: __cdecl UATOM_LINKAGE::UATOM_LINKAGE(void) __ptr64
??0UATOM_LINKAGE@@QEAA@XZ
; private: __cdecl UATOM_MANAGER::UATOM_MANAGER(void) __ptr64
??0UATOM_MANAGER@@AEAA@XZ
; public: __cdecl UATOM_REGION::UATOM_REGION(void) __ptr64
??0UATOM_REGION@@QEAA@XZ
; public: __cdecl W32_DIR_BLOCK::W32_DIR_BLOCK(void) __ptr64
??0W32_DIR_BLOCK@@QEAA@XZ
; public: __cdecl W32_FS_ENUM::W32_FS_ENUM(unsigned short const * __ptr64,unsigned short const * __ptr64,enum FILE_TYPE,int,unsigned int) __ptr64
??0W32_FS_ENUM@@QEAA@PEBG0W4FILE_TYPE@@HI@Z
; public: __cdecl WCHAR_STRING::WCHAR_STRING(char const * __ptr64,unsigned int) __ptr64
??0WCHAR_STRING@@QEAA@PEBDI@Z
; public: __cdecl WIN_TIME::WIN_TIME(int) __ptr64
??0WIN_TIME@@QEAA@H@Z
; public: __cdecl WIN_TIME::WIN_TIME(unsigned long,int) __ptr64
??0WIN_TIME@@QEAA@KH@Z
; public: __cdecl WIN_TIME::WIN_TIME(struct _FILETIME,int) __ptr64
??0WIN_TIME@@QEAA@U_FILETIME@@H@Z
; public: __cdecl ALIAS_STR::~ALIAS_STR(void) __ptr64
??1ALIAS_STR@@QEAA@XZ
; public: __cdecl BITFIELD::~BITFIELD(void) __ptr64
??1BITFIELD@@QEAA@XZ
; public: __cdecl BUFFER::~BUFFER(void) __ptr64
??1BUFFER@@QEAA@XZ
; public: __cdecl CHAR_STRING::~CHAR_STRING(void) __ptr64
??1CHAR_STRING@@QEAA@XZ
; public: __cdecl DBGSTREAM::~DBGSTREAM(void) __ptr64
??1DBGSTREAM@@QEAA@XZ
; public: __cdecl DEC_STR::~DEC_STR(void) __ptr64
??1DEC_STR@@QEAA@XZ
; public: __cdecl DFSITER_TREE::~DFSITER_TREE(void) __ptr64
??1DFSITER_TREE@@QEAA@XZ
; public: virtual __cdecl DIR_BLOCK::~DIR_BLOCK(void) __ptr64
??1DIR_BLOCK@@UEAA@XZ
; public: __cdecl DLIST::~DLIST(void) __ptr64
??1DLIST@@QEAA@XZ
; public: __cdecl ELAPSED_TIME_STR::~ELAPSED_TIME_STR(void) __ptr64
??1ELAPSED_TIME_STR@@QEAA@XZ
; public: virtual __cdecl FS_ENUM::~FS_ENUM(void) __ptr64
??1FS_ENUM@@UEAA@XZ
; protected: __cdecl HEAP_BASE::~HEAP_BASE(void) __ptr64
??1HEAP_BASE@@IEAA@XZ
; public: __cdecl ITER_DL::~ITER_DL(void) __ptr64
??1ITER_DL@@QEAA@XZ
; public: __cdecl ITER_SL::~ITER_SL(void) __ptr64
??1ITER_SL@@QEAA@XZ
; public: __cdecl ITER_SL_DIR_BLOCK::~ITER_SL_DIR_BLOCK(void) __ptr64
??1ITER_SL_DIR_BLOCK@@QEAA@XZ
; public: __cdecl ITER_SL_NLS_STR::~ITER_SL_NLS_STR(void) __ptr64
??1ITER_SL_NLS_STR@@QEAA@XZ
; public: __cdecl ITER_STRLIST::~ITER_STRLIST(void) __ptr64
??1ITER_STRLIST@@QEAA@XZ
; public: __cdecl LOGON_HOURS_SETTING::~LOGON_HOURS_SETTING(void) __ptr64
??1LOGON_HOURS_SETTING@@QEAA@XZ
; public: __cdecl NLS_STR::~NLS_STR(void) __ptr64
??1NLS_STR@@QEAA@XZ
; public: __cdecl REG_KEY::~REG_KEY(void) __ptr64
??1REG_KEY@@QEAA@XZ
; public: __cdecl REG_KEY_INFO_STRUCT::~REG_KEY_INFO_STRUCT(void) __ptr64
??1REG_KEY_INFO_STRUCT@@QEAA@XZ
; public: __cdecl REG_VALUE_INFO_STRUCT::~REG_VALUE_INFO_STRUCT(void) __ptr64
??1REG_VALUE_INFO_STRUCT@@QEAA@XZ
; public: __cdecl RITER_DL::~RITER_DL(void) __ptr64
??1RITER_DL@@QEAA@XZ
; public: __cdecl SLIST::~SLIST(void) __ptr64
??1SLIST@@QEAA@XZ
; public: __cdecl SLIST_OF_DIR_BLOCK::~SLIST_OF_DIR_BLOCK(void) __ptr64
??1SLIST_OF_DIR_BLOCK@@QEAA@XZ
; public: __cdecl SLIST_OF_NLS_STR::~SLIST_OF_NLS_STR(void) __ptr64
??1SLIST_OF_NLS_STR@@QEAA@XZ
; public: __cdecl STRLIST::~STRLIST(void) __ptr64
??1STRLIST@@QEAA@XZ
; public: __cdecl TCHAR_STR::~TCHAR_STR(void) __ptr64
??1TCHAR_STR@@QEAA@XZ
; public: __cdecl TREE::~TREE(void) __ptr64
??1TREE@@QEAA@XZ
; public: __cdecl UATOM::~UATOM(void) __ptr64
??1UATOM@@QEAA@XZ
; public: __cdecl UATOM_LINKAGE::~UATOM_LINKAGE(void) __ptr64
??1UATOM_LINKAGE@@QEAA@XZ
; private: __cdecl UATOM_MANAGER::~UATOM_MANAGER(void) __ptr64
??1UATOM_MANAGER@@AEAA@XZ
; public: __cdecl UATOM_REGION::~UATOM_REGION(void) __ptr64
??1UATOM_REGION@@QEAA@XZ
; public: virtual __cdecl W32_DIR_BLOCK::~W32_DIR_BLOCK(void) __ptr64
??1W32_DIR_BLOCK@@UEAA@XZ
; public: virtual __cdecl W32_FS_ENUM::~W32_FS_ENUM(void) __ptr64
??1W32_FS_ENUM@@UEAA@XZ
; public: __cdecl WCHAR_STRING::~WCHAR_STRING(void) __ptr64
??1WCHAR_STRING@@QEAA@XZ
; public: static void * __ptr64 __cdecl ALLOC_BASE::operator new(unsigned __int64)
??2ALLOC_BASE@@SAPEAX_K@Z
; public: static void * __ptr64 __cdecl ALLOC_BASE::operator new(unsigned __int64,void * __ptr64)
??2ALLOC_BASE@@SAPEAX_KPEAX@Z
; public: static void __cdecl ALLOC_BASE::operator delete(void * __ptr64)
??3ALLOC_BASE@@SAXPEAX@Z
; public: class ALIAS_STR const & __ptr64 __cdecl ALIAS_STR::operator=(class NLS_STR const & __ptr64) __ptr64
??4ALIAS_STR@@QEAAAEBV0@AEBVNLS_STR@@@Z
; public: class ALIAS_STR const & __ptr64 __cdecl ALIAS_STR::operator=(unsigned short const * __ptr64) __ptr64
??4ALIAS_STR@@QEAAAEBV0@PEBG@Z
; public: class ALLOC_STR & __ptr64 __cdecl ALLOC_STR::operator=(unsigned short const * __ptr64) __ptr64
??4ALLOC_STR@@QEAAAEAV0@PEBG@Z
; public: class BITFIELD & __ptr64 __cdecl BITFIELD::operator=(class BITFIELD const & __ptr64) __ptr64
??4BITFIELD@@QEAAAEAV0@AEBV0@@Z
; public: class BITFIELD & __ptr64 __cdecl BITFIELD::operator=(unsigned short) __ptr64
??4BITFIELD@@QEAAAEAV0@G@Z
; public: class BITFIELD & __ptr64 __cdecl BITFIELD::operator=(unsigned long) __ptr64
??4BITFIELD@@QEAAAEAV0@K@Z
; public: class ISTR & __ptr64 __cdecl ISTR::operator=(class ISTR const & __ptr64) __ptr64
??4ISTR@@QEAAAEAV0@AEBV0@@Z
; public: class NLS_STR & __ptr64 __cdecl NLS_STR::operator=(class NLS_STR const & __ptr64) __ptr64
??4NLS_STR@@QEAAAEAV0@AEBV0@@Z
; public: class NLS_STR & __ptr64 __cdecl NLS_STR::operator=(unsigned short const * __ptr64) __ptr64
??4NLS_STR@@QEAAAEAV0@PEBG@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(char) __ptr64
??6DBGSTREAM@@QEAAAEAV0@D@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(short) __ptr64
??6DBGSTREAM@@QEAAAEAV0@F@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(unsigned short) __ptr64
??6DBGSTREAM@@QEAAAEAV0@G@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(int) __ptr64
??6DBGSTREAM@@QEAAAEAV0@H@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(unsigned int) __ptr64
??6DBGSTREAM@@QEAAAEAV0@I@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(long) __ptr64
??6DBGSTREAM@@QEAAAEAV0@J@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(unsigned long) __ptr64
??6DBGSTREAM@@QEAAAEAV0@K@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(char const * __ptr64) __ptr64
??6DBGSTREAM@@QEAAAEAV0@PEBD@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(unsigned short const * __ptr64) __ptr64
??6DBGSTREAM@@QEAAAEAV0@PEBG@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(enum DBGSTR_SPECIAL) __ptr64
??6DBGSTREAM@@QEAAAEAV0@W4DBGSTR_SPECIAL@@@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(__int64) __ptr64
??6DBGSTREAM@@QEAAAEAV0@_J@Z
; public: class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::operator<<(unsigned __int64) __ptr64
??6DBGSTREAM@@QEAAAEAV0@_K@Z
; public: int __cdecl BASE::operator!(void)const  __ptr64
??7BASE@@QEBAHXZ
; public: int __cdecl BITFIELD::operator==(class BITFIELD & __ptr64) __ptr64
??8BITFIELD@@QEAAHAEAV0@@Z
; public: int __cdecl BITFIELD::operator==(unsigned short)const  __ptr64
??8BITFIELD@@QEBAHG@Z
; public: int __cdecl BITFIELD::operator==(unsigned long)const  __ptr64
??8BITFIELD@@QEBAHK@Z
; public: int __cdecl ISTR::operator==(class ISTR const & __ptr64)const  __ptr64
??8ISTR@@QEBAHAEBV0@@Z
; public: int __cdecl NLS_STR::operator==(class NLS_STR const & __ptr64)const  __ptr64
??8NLS_STR@@QEBAHAEBV0@@Z
; public: int __cdecl NLS_STR::operator!=(class NLS_STR const & __ptr64)const  __ptr64
??9NLS_STR@@QEBAHAEBV0@@Z
; public: __cdecl BITFIELD::operator unsigned short(void) __ptr64
??BBITFIELD@@QEAAGXZ
; public: __cdecl BITFIELD::operator unsigned long(void) __ptr64
??BBITFIELD@@QEAAKXZ
; public: __cdecl NLS_STR::operator unsigned short const * __ptr64(void)const  __ptr64
??BNLS_STR@@QEBAPEBGXZ
; public: __cdecl REG_KEY::operator struct HKEY__ * __ptr64(void)const  __ptr64
??BREG_KEY@@QEBAPEAUHKEY__@@XZ
; public: __cdecl TCHAR_STR::operator class ALIAS_STR const & __ptr64(void) __ptr64
??BTCHAR_STR@@QEAAAEBVALIAS_STR@@XZ
; public: class ISTR & __ptr64 __cdecl ISTR::operator++(void) __ptr64
??EISTR@@QEAAAEAV0@XZ
; public: int __cdecl ISTR::operator-(class ISTR const & __ptr64)const  __ptr64
??GISTR@@QEBAHAEBV0@@Z
; public: int __cdecl BITFIELD::operator&(class BITFIELD const & __ptr64) __ptr64
??IBITFIELD@@QEAAHAEBV0@@Z
; public: int __cdecl ISTR::operator<(class ISTR const & __ptr64)const  __ptr64
??MISTR@@QEBAHAEBV0@@Z
; public: int __cdecl ISTR::operator>(class ISTR const & __ptr64)const  __ptr64
??OISTR@@QEBAHAEBV0@@Z
; public: class NLS_STR * __ptr64 __cdecl ITER_SL_NLS_STR::operator()(void) __ptr64
??RITER_SL_NLS_STR@@QEAAPEAVNLS_STR@@XZ
; public: void __cdecl ISTR::operator+=(int) __ptr64
??YISTR@@QEAAXH@Z
; public: class NLS_STR & __ptr64 __cdecl NLS_STR::operator+=(class NLS_STR const & __ptr64) __ptr64
??YNLS_STR@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl BITFIELD::operator&=(class BITFIELD const & __ptr64) __ptr64
??_4BITFIELD@@QEAAXAEBV0@@Z
; public: void __cdecl BITFIELD::operator&=(unsigned short) __ptr64
??_4BITFIELD@@QEAAXG@Z
; public: void __cdecl BITFIELD::operator&=(unsigned long) __ptr64
??_4BITFIELD@@QEAAXK@Z
; public: void __cdecl BITFIELD::operator|=(class BITFIELD const & __ptr64) __ptr64
??_5BITFIELD@@QEAAXAEBV0@@Z
; public: void __cdecl BITFIELD::operator|=(unsigned short) __ptr64
??_5BITFIELD@@QEAAXG@Z
; public: void __cdecl BITFIELD::operator|=(unsigned long) __ptr64
??_5BITFIELD@@QEAAXK@Z
; void __cdecl `vector constructor iterator'(void * __ptr64,unsigned __int64,int,void * __ptr64 (__cdecl*)(void * __ptr64))
??_H@YAXPEAX_KHP6APEAX0@Z@Z
; void __cdecl `vector destructor iterator'(void * __ptr64,unsigned __int64,int,void (__cdecl*)(void * __ptr64))
??_I@YAXPEAX_KHP6AX0@Z@Z
; void __cdecl `vector vbase constructor iterator'(void * __ptr64,unsigned __int64,int,void * __ptr64 (__cdecl*)(void * __ptr64))
??_J@YAXPEAX_KHP6APEAX0@Z@Z
; public: long __cdecl DLIST::Add(void * __ptr64) __ptr64
?Add@DLIST@@QEAAJPEAX@Z
; public: long __cdecl SLIST::Add(void * __ptr64) __ptr64
?Add@SLIST@@QEAAJPEAX@Z
; public: long __cdecl SLIST_OF_DIR_BLOCK::Add(class DIR_BLOCK const * __ptr64) __ptr64
?Add@SLIST_OF_DIR_BLOCK@@QEAAJPEBVDIR_BLOCK@@@Z
; public: long __cdecl SLIST_OF_NLS_STR::Add(class NLS_STR const * __ptr64) __ptr64
?Add@SLIST_OF_NLS_STR@@QEAAJPEBVNLS_STR@@@Z
; private: int __cdecl NLS_STR::Alloc(unsigned int) __ptr64
?Alloc@NLS_STR@@AEAAHI@Z
; public: unsigned char * __ptr64 __cdecl ONE_SHOT_HEAP::Alloc(unsigned int) __ptr64
?Alloc@ONE_SHOT_HEAP@@QEAAPEAEI@Z
; protected: long __cdecl BITFIELD::AllocBitfield(unsigned int) __ptr64
?AllocBitfield@BITFIELD@@IEAAJI@Z
; public: long __cdecl DLIST::Append(void * __ptr64) __ptr64
?Append@DLIST@@QEAAJPEAX@Z
; public: long __cdecl NLS_STR::Append(class NLS_STR const & __ptr64) __ptr64
?Append@NLS_STR@@QEAAJAEBV1@@Z
; public: long __cdecl SLIST::Append(void * __ptr64) __ptr64
?Append@SLIST@@QEAAJPEAX@Z
; public: long __cdecl SLIST_OF_NLS_STR::Append(class NLS_STR const * __ptr64) __ptr64
?Append@SLIST_OF_NLS_STR@@QEAAJPEBVNLS_STR@@@Z
; public: long __cdecl NLS_STR::AppendChar(unsigned short) __ptr64
?AppendChar@NLS_STR@@QEAAJG@Z
; public: class TREE * __ptr64 __cdecl TREE::BreakOut(void) __ptr64
?BreakOut@TREE@@QEAAPEAV1@XZ
; protected: void __cdecl DLIST::BumpIters(class DL_NODE * __ptr64) __ptr64
?BumpIters@DLIST@@IEAAXPEAVDL_NODE@@@Z
; protected: void __cdecl SLIST::BumpIters(class SL_NODE * __ptr64) __ptr64
?BumpIters@SLIST@@IEAAXPEAVSL_NODE@@@Z
; private: void __cdecl NLS_STR::CheckIstr(class ISTR const & __ptr64)const  __ptr64
?CheckIstr@NLS_STR@@AEBAXAEBVISTR@@@Z
; protected: int __cdecl DLIST::CheckIter(class ITER_L * __ptr64) __ptr64
?CheckIter@DLIST@@IEAAHPEAVITER_L@@@Z
; protected: int __cdecl SLIST::CheckIter(class ITER_SL * __ptr64) __ptr64
?CheckIter@SLIST@@IEAAHPEAVITER_SL@@@Z
; long __cdecl CheckLocalComm(unsigned short const * __ptr64)
?CheckLocalComm@@YAJPEBG@Z
; long __cdecl CheckLocalDrive(unsigned short const * __ptr64)
?CheckLocalDrive@@YAJPEBG@Z
; long __cdecl CheckLocalLpt(unsigned short const * __ptr64)
?CheckLocalLpt@@YAJPEBG@Z
; long __cdecl CheckUnavailDevice(unsigned short const * __ptr64,unsigned short * __ptr64,int * __ptr64)
?CheckUnavailDevice@@YAJPEBGPEAGPEAH@Z
; public: void __cdecl SLIST_OF_DIR_BLOCK::Clear(void) __ptr64
?Clear@SLIST_OF_DIR_BLOCK@@QEAAXXZ
; public: void __cdecl SLIST_OF_NLS_STR::Clear(void) __ptr64
?Clear@SLIST_OF_NLS_STR@@QEAAXXZ
; private: long __cdecl REG_KEY::Close(void) __ptr64
?Close@REG_KEY@@AEAAJXZ
; private: unsigned __int64 __cdecl FMX::Command(unsigned int,unsigned int,__int64)const  __ptr64
?Command@FMX@@AEBA_KII_J@Z
; public: int __cdecl NLS_STR::Compare(class NLS_STR const * __ptr64)const  __ptr64
?Compare@NLS_STR@@QEBAHPEBV1@@Z
; public: int __cdecl LOGON_HOURS_SETTING::ConvertFromGMT(void) __ptr64
?ConvertFromGMT@LOGON_HOURS_SETTING@@QEAAHXZ
; public: int __cdecl LOGON_HOURS_SETTING::ConvertToGMT(void) __ptr64
?ConvertToGMT@LOGON_HOURS_SETTING@@QEAAHXZ
; public: long __cdecl LOGON_HOURS_SETTING::ConvertToHoursPerWeek(void) __ptr64
?ConvertToHoursPerWeek@LOGON_HOURS_SETTING@@QEAAJXZ
; public: long __cdecl NLS_STR::CopyFrom(class NLS_STR const & __ptr64) __ptr64
?CopyFrom@NLS_STR@@QEAAJAEBV1@@Z
; public: long __cdecl NLS_STR::CopyFrom(unsigned short const * __ptr64,unsigned int) __ptr64
?CopyFrom@NLS_STR@@QEAAJPEBGI@Z
; public: long __cdecl NLS_STR::CopyTo(unsigned short * __ptr64,unsigned int)const  __ptr64
?CopyTo@NLS_STR@@QEBAJPEAGI@Z
; private: long __cdecl REG_KEY::CreateChild(class REG_KEY * __ptr64,class NLS_STR const & __ptr64,class REG_KEY_CREATE_STRUCT * __ptr64)const  __ptr64
?CreateChild@REG_KEY@@AEBAJPEAV1@AEBVNLS_STR@@PEAVREG_KEY_CREATE_STRUCT@@@Z
; protected: virtual class DIR_BLOCK * __ptr64 __cdecl W32_FS_ENUM::CreateDirBlock(void) __ptr64
?CreateDirBlock@W32_FS_ENUM@@MEAAPEAVDIR_BLOCK@@XZ
; private: void __cdecl STRLIST::CreateList(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?CreateList@STRLIST@@AEAAXPEBG0@Z
; private: void __cdecl NLS_STR::DelSubStr(class ISTR & __ptr64,unsigned int) __ptr64
?DelSubStr@NLS_STR@@AEAAXAEAVISTR@@I@Z
; public: void __cdecl NLS_STR::DelSubStr(class ISTR & __ptr64) __ptr64
?DelSubStr@NLS_STR@@QEAAXAEAVISTR@@@Z
; public: void __cdecl NLS_STR::DelSubStr(class ISTR & __ptr64,class ISTR const & __ptr64) __ptr64
?DelSubStr@NLS_STR@@QEAAXAEAVISTR@@AEBV2@@Z
; public: long __cdecl REG_KEY::Delete(void) __ptr64
?Delete@REG_KEY@@QEAAJXZ
; public: long __cdecl REG_KEY::DeleteValue(class NLS_STR const & __ptr64) __ptr64
?DeleteValue@REG_KEY@@QEAAJAEBVNLS_STR@@@Z
; protected: void __cdecl DLIST::Deregister(class ITER_L * __ptr64) __ptr64
?Deregister@DLIST@@IEAAXPEAVITER_L@@@Z
; protected: void __cdecl SLIST::Deregister(class ITER_SL * __ptr64) __ptr64
?Deregister@SLIST@@IEAAXPEAVITER_SL@@@Z
; public: int __cdecl DIR_BLOCK::DoBreadthFirstDirs(void)const  __ptr64
?DoBreadthFirstDirs@DIR_BLOCK@@QEBAHXZ
; public: virtual void __cdecl OUTPUT_TO_AUX::EndOfLine(void) __ptr64
?EndOfLine@OUTPUT_TO_AUX@@UEAAXXZ
; private: virtual void __cdecl OUTPUT_TO_NUL::EndOfLine(void) __ptr64
?EndOfLine@OUTPUT_TO_NUL@@EEAAXXZ
; public: virtual void __cdecl OUTPUT_TO_STDERR::EndOfLine(void) __ptr64
?EndOfLine@OUTPUT_TO_STDERR@@UEAAXXZ
; public: virtual void __cdecl OUTPUT_TO_STDOUT::EndOfLine(void) __ptr64
?EndOfLine@OUTPUT_TO_STDOUT@@UEAAXXZ
; public: void __cdecl BUFFER::FillOut(void) __ptr64
?FillOut@BUFFER@@QEAAXXZ
; protected: virtual long __cdecl W32_FS_ENUM::FindFirst(class DIR_BLOCK * __ptr64,class NLS_STR const & __ptr64,unsigned int) __ptr64
?FindFirst@W32_FS_ENUM@@MEAAJPEAVDIR_BLOCK@@AEBVNLS_STR@@I@Z
; protected: virtual long __cdecl W32_FS_ENUM::FindNext(class DIR_BLOCK * __ptr64,unsigned int) __ptr64
?FindNext@W32_FS_ENUM@@MEAAJPEAVDIR_BLOCK@@I@Z
; protected: class SL_NODE * __ptr64 __cdecl SLIST::FindPrev(class SL_NODE * __ptr64) __ptr64
?FindPrev@SLIST@@IEAAPEAVSL_NODE@@PEAV2@@Z
; public: long __cdecl REG_KEY::Flush(void) __ptr64
?Flush@REG_KEY@@QEAAJXZ
; public: class UATOM * __ptr64 __cdecl UATOM_LINKAGE::Fwd(void) __ptr64
?Fwd@UATOM_LINKAGE@@QEAAPEAVUATOM@@XZ
; private: long __cdecl BUFFER::GetNewStorage(unsigned int) __ptr64
?GetNewStorage@BUFFER@@AEAAJI@Z
; long __cdecl GetSelItem(struct HWND__ * __ptr64,unsigned int,class NLS_STR * __ptr64,int * __ptr64)
?GetSelItem@@YAJPEAUHWND__@@IPEAVNLS_STR@@PEAH@Z
; long __cdecl GetSelItem(struct HWND__ * __ptr64,class NLS_STR * __ptr64,int,int * __ptr64)
?GetSelItem@@YAJPEAUHWND__@@PEAVNLS_STR@@HPEAH@Z
; private: static int __cdecl REG_KEY::HandlePrefix(class NLS_STR const & __ptr64,struct HKEY__ * __ptr64 * __ptr64,class NLS_STR * __ptr64,class NLS_STR * __ptr64)
?HandlePrefix@REG_KEY@@CAHAEBVNLS_STR@@PEAPEAUHKEY__@@PEAV2@2@Z
; public: int __cdecl DIR_BLOCK::HasFindFirstBeenCalled(void) __ptr64
?HasFindFirstBeenCalled@DIR_BLOCK@@QEAAHXZ
; void __cdecl HeapResidueIter(unsigned int,int)
?HeapResidueIter@@YAXIH@Z
; protected: long __cdecl HEAP_BASE::I_AddItem(void * __ptr64) __ptr64
?I_AddItem@HEAP_BASE@@IEAAJPEAX@Z
; protected: void * __ptr64 __cdecl HEAP_BASE::I_RemoveTopItem(void) __ptr64
?I_RemoveTopItem@HEAP_BASE@@IEAAPEAXXZ
; protected: void __cdecl NLS_STR::IncVers(void) __ptr64
?IncVers@NLS_STR@@IEAAXXZ
; public: static void __cdecl NUM_NLS_STR::Init(void)
?Init@NUM_NLS_STR@@SAXXZ
; public: void __cdecl UATOM_LINKAGE::Init(void) __ptr64
?Init@UATOM_LINKAGE@@QEAAXXZ
; public: static long __cdecl UATOM_MANAGER::Initialize(void)
?Initialize@UATOM_MANAGER@@SAJXZ
; protected: void __cdecl NLS_STR::InitializeVers(void) __ptr64
?InitializeVers@NLS_STR@@IEAAXXZ
; public: long __cdecl DLIST::Insert(void * __ptr64,class ITER_DL & __ptr64) __ptr64
?Insert@DLIST@@QEAAJPEAXAEAVITER_DL@@@Z
; public: long __cdecl DLIST::Insert(void * __ptr64,class RITER_DL & __ptr64) __ptr64
?Insert@DLIST@@QEAAJPEAXAEAVRITER_DL@@@Z
; public: long __cdecl SLIST::Insert(void * __ptr64,class ITER_SL & __ptr64) __ptr64
?Insert@SLIST@@QEAAJPEAXAEAVITER_SL@@@Z
; public: long __cdecl NLS_STR::InsertParams(class NLS_STR const & __ptr64,class NLS_STR const & __ptr64,class NLS_STR const & __ptr64) __ptr64
?InsertParams@NLS_STR@@QEAAJAEBV1@00@Z
; public: long __cdecl NLS_STR::InsertParams(unsigned int,class NLS_STR const * __ptr64,...) __ptr64
?InsertParams@NLS_STR@@QEAAJIPEBV1@ZZ
; public: long __cdecl NLS_STR::InsertParams(class NLS_STR const * __ptr64 * __ptr64) __ptr64
?InsertParams@NLS_STR@@QEAAJPEAPEBV1@@Z
; private: long __cdecl NLS_STR::InsertParamsAux(class NLS_STR const * __ptr64 * __ptr64,unsigned int,int,unsigned int * __ptr64) __ptr64
?InsertParamsAux@NLS_STR@@AEAAJPEAPEBV1@IHPEAI@Z
; public: int __cdecl NLS_STR::InsertStr(class NLS_STR const & __ptr64,class ISTR & __ptr64) __ptr64
?InsertStr@NLS_STR@@QEAAHAEBV1@AEAVISTR@@@Z
; public: int __cdecl INTL_PROFILE::Is24Hour(void)const  __ptr64
?Is24Hour@INTL_PROFILE@@QEBAHXZ
; protected: int __cdecl BITFIELD::IsAllocated(void)const  __ptr64
?IsAllocated@BITFIELD@@IEBAHXZ
; public: int __cdecl BITFIELD::IsBitSet(unsigned int)const  __ptr64
?IsBitSet@BITFIELD@@QEBAHI@Z
; public: int __cdecl INTL_PROFILE::IsDayLZero(void)const  __ptr64
?IsDayLZero@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl DIR_BLOCK::IsDir(void) __ptr64
?IsDir@DIR_BLOCK@@QEAAHXZ
; public: int __cdecl FMX::IsHeterogeneousSelection(int * __ptr64) __ptr64
?IsHeterogeneousSelection@FMX@@QEAAHPEAH@Z
; public: int __cdecl INTL_PROFILE::IsHourLZero(void)const  __ptr64
?IsHourLZero@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl LOGON_HOURS_SETTING::IsIdenticalToBits(unsigned char const * __ptr64,unsigned int)const  __ptr64
?IsIdenticalToBits@LOGON_HOURS_SETTING@@QEBAHPEBEI@Z
; public: int __cdecl ISTR::IsLastPos(void)const  __ptr64
?IsLastPos@ISTR@@QEBAHXZ
; public: int __cdecl SLIST_OF_NLS_STR::IsMember(class NLS_STR const & __ptr64) __ptr64
?IsMember@SLIST_OF_NLS_STR@@QEAAHAEBVNLS_STR@@@Z
; public: int __cdecl INTL_PROFILE::IsMonthLZero(void)const  __ptr64
?IsMonthLZero@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl NLS_STR::IsOwnerAlloc(void)const  __ptr64
?IsOwnerAlloc@NLS_STR@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::IsTimePrefix(void)const  __ptr64
?IsTimePrefix@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::IsYrCentury(void)const  __ptr64
?IsYrCentury@INTL_PROFILE@@QEBAHXZ
; public: void __cdecl TREE::JoinSiblingLeft(class TREE * __ptr64) __ptr64
?JoinSiblingLeft@TREE@@QEAAXPEAV1@@Z
; public: void __cdecl TREE::JoinSiblingRight(class TREE * __ptr64) __ptr64
?JoinSiblingRight@TREE@@QEAAXPEAV1@@Z
; public: void __cdecl TREE::JoinSubtreeLeft(class TREE * __ptr64) __ptr64
?JoinSubtreeLeft@TREE@@QEAAXPEAV1@@Z
; public: void __cdecl TREE::JoinSubtreeRight(class TREE * __ptr64) __ptr64
?JoinSubtreeRight@TREE@@QEAAXPEAV1@@Z
; private: unsigned short const * __ptr64 __cdecl REG_KEY::LeafKeyName(void)const  __ptr64
?LeafKeyName@REG_KEY@@AEBAPEBGXZ
; public: void __cdecl UATOM_LINKAGE::Link(class UATOM_LINKAGE * __ptr64) __ptr64
?Link@UATOM_LINKAGE@@QEAAXPEAV1@@Z
; public: long __cdecl NLS_STR::Load(long,struct HINSTANCE__ * __ptr64) __ptr64
?Load@NLS_STR@@QEAAJJPEAUHINSTANCE__@@@Z
; public: long __cdecl NLS_STR::LoadSystem(long) __ptr64
?LoadSystem@NLS_STR@@QEAAJJ@Z
; public: long __cdecl LOGON_HOURS_SETTING::MakeDefault(void) __ptr64
?MakeDefault@LOGON_HOURS_SETTING@@QEAAJXZ
; public: long __cdecl NLS_STR::MapCopyFrom(char const * __ptr64,unsigned int) __ptr64
?MapCopyFrom@NLS_STR@@QEAAJPEBDI@Z
; public: long __cdecl NLS_STR::MapCopyFrom(unsigned short const * __ptr64,unsigned int) __ptr64
?MapCopyFrom@NLS_STR@@QEAAJPEBGI@Z
; public: long __cdecl NLS_STR::MapCopyTo(char * __ptr64,unsigned int)const  __ptr64
?MapCopyTo@NLS_STR@@QEBAJPEADI@Z
; public: long __cdecl NLS_STR::MapCopyTo(unsigned short * __ptr64,unsigned int)const  __ptr64
?MapCopyTo@NLS_STR@@QEBAJPEAGI@Z
; public: static long __cdecl ERRMAP::MapNTStatus(long,int * __ptr64,long)
?MapNTStatus@ERRMAP@@SAJJPEAHJ@Z
; private: long __cdecl REG_KEY::NameChild(class REG_KEY * __ptr64,class NLS_STR const & __ptr64)const  __ptr64
?NameChild@REG_KEY@@AEBAJPEAV1@AEBVNLS_STR@@@Z
; public: void * __ptr64 __cdecl DFSITER_TREE::Next(void) __ptr64
?Next@DFSITER_TREE@@QEAAPEAXXZ
; public: int __cdecl FS_ENUM::Next(void) __ptr64
?Next@FS_ENUM@@QEAAHXZ
; public: void * __ptr64 __cdecl ITER_SL::Next(void) __ptr64
?Next@ITER_SL@@QEAAPEAXXZ
; public: class DIR_BLOCK * __ptr64 __cdecl ITER_SL_DIR_BLOCK::Next(void) __ptr64
?Next@ITER_SL_DIR_BLOCK@@QEAAPEAVDIR_BLOCK@@XZ
; public: class NLS_STR * __ptr64 __cdecl ITER_SL_NLS_STR::Next(void) __ptr64
?Next@ITER_SL_NLS_STR@@QEAAPEAVNLS_STR@@XZ
; protected: int __cdecl FS_ENUM::NextBreadthFirst(void) __ptr64
?NextBreadthFirst@FS_ENUM@@IEAAHXZ
; protected: int __cdecl FS_ENUM::NextDepthFirst(void) __ptr64
?NextDepthFirst@FS_ENUM@@IEAAHXZ
; public: long __cdecl WIN_TIME::Normalize(void) __ptr64
?Normalize@WIN_TIME@@QEAAJXZ
; public: void __cdecl BITFIELD::Not(void) __ptr64
?Not@BITFIELD@@QEAAXXZ
; private: long __cdecl REG_KEY::OpenByName(class NLS_STR const & __ptr64,unsigned long) __ptr64
?OpenByName@REG_KEY@@AEAAJAEBVNLS_STR@@K@Z
; private: long __cdecl REG_KEY::OpenChild(class REG_KEY * __ptr64,class NLS_STR const & __ptr64,unsigned long,unsigned long) __ptr64
?OpenChild@REG_KEY@@AEAAJPEAV1@AEBVNLS_STR@@KK@Z
; private: class REG_KEY * __ptr64 __cdecl REG_KEY::OpenParent(unsigned long) __ptr64
?OpenParent@REG_KEY@@AEAAPEAV1@K@Z
; private: long __cdecl REG_KEY::ParentName(class NLS_STR * __ptr64)const  __ptr64
?ParentName@REG_KEY@@AEBAJPEAVNLS_STR@@@Z
; protected: void * __ptr64 __cdecl HEAP_BASE::PeekItem(int)const  __ptr64
?PeekItem@HEAP_BASE@@IEBAPEAXH@Z
; public: long __cdecl LOGON_HOURS_SETTING::PermitAll(void) __ptr64
?PermitAll@LOGON_HOURS_SETTING@@QEAAJXZ
; protected: long __cdecl FS_ENUM::PopDir(void) __ptr64
?PopDir@FS_ENUM@@IEAAJXZ
; protected: long __cdecl FS_ENUM::PushDir(unsigned short const * __ptr64) __ptr64
?PushDir@FS_ENUM@@IEAAJPEBG@Z
; public: long __cdecl INTL_PROFILE::QueryAMStr(class NLS_STR * __ptr64)const  __ptr64
?QueryAMStr@INTL_PROFILE@@QEBAJPEAVNLS_STR@@@Z
; private: unsigned int __cdecl BUFFER::QueryActualSize(void) __ptr64
?QueryActualSize@BUFFER@@AEAAIXZ
; public: unsigned int __cdecl BITFIELD::QueryAllocSize(void)const  __ptr64
?QueryAllocSize@BITFIELD@@QEBAIXZ
; public: unsigned int __cdecl NLS_STR::QueryAllocSize(void)const  __ptr64
?QueryAllocSize@NLS_STR@@QEBAIXZ
; public: unsigned int __cdecl NLS_STR::QueryAnsiTextLength(void)const  __ptr64
?QueryAnsiTextLength@NLS_STR@@QEBAIXZ
; public: virtual unsigned int __cdecl W32_DIR_BLOCK::QueryAttr(void) __ptr64
?QueryAttr@W32_DIR_BLOCK@@UEAAIXZ
; protected: unsigned char * __ptr64 __cdecl BITFIELD::QueryBitPos(unsigned int,unsigned int)const  __ptr64
?QueryBitPos@BITFIELD@@IEBAPEAEII@Z
; public: int __cdecl STRLIST::QueryBufferSize(unsigned short * __ptr64) __ptr64
?QueryBufferSize@STRLIST@@QEAAHPEAG@Z
; private: static unsigned int __cdecl LOGON_HOURS_SETTING::QueryByteCount(unsigned int)
?QueryByteCount@LOGON_HOURS_SETTING@@CAII@Z
; public: unsigned int __cdecl LOGON_HOURS_SETTING::QueryByteCount(void)const  __ptr64
?QueryByteCount@LOGON_HOURS_SETTING@@QEBAIXZ
; public: unsigned short __cdecl NLS_STR::QueryChar(class ISTR const & __ptr64)const  __ptr64
?QueryChar@NLS_STR@@QEBAGAEBVISTR@@@Z
; public: unsigned int __cdecl BITFIELD::QueryCount(void)const  __ptr64
?QueryCount@BITFIELD@@QEBAIXZ
; protected: unsigned int __cdecl DFSITER_TREE::QueryCurDepth(void)const  __ptr64
?QueryCurDepth@DFSITER_TREE@@IEBAIXZ
; public: static class DBGSTREAM & __ptr64 __cdecl DBGSTREAM::QueryCurrent(void)
?QueryCurrent@DBGSTREAM@@SAAEAV1@XZ
; public: unsigned int __cdecl FS_ENUM::QueryCurrentDepth(void) __ptr64
?QueryCurrentDepth@FS_ENUM@@QEAAIXZ
; public: class DIR_BLOCK * __ptr64 __cdecl FS_ENUM::QueryCurrentDirBlock(void)const  __ptr64
?QueryCurrentDirBlock@FS_ENUM@@QEBAPEAVDIR_BLOCK@@XZ
; unsigned long __cdecl QueryCurrentTimeStamp(void)
?QueryCurrentTimeStamp@@YAKXZ
; public: static class REG_KEY * __ptr64 __cdecl REG_KEY::QueryCurrentUser(unsigned long)
?QueryCurrentUser@REG_KEY@@SAPEAV1@K@Z
; public: char const * __ptr64 __cdecl CHAR_STRING::QueryData(void)const  __ptr64
?QueryData@CHAR_STRING@@QEBAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl WCHAR_STRING::QueryData(void)const  __ptr64
?QueryData@WCHAR_STRING@@QEBAPEBGXZ
; public: long __cdecl INTL_PROFILE::QueryDateSeparator(class NLS_STR * __ptr64)const  __ptr64
?QueryDateSeparator@INTL_PROFILE@@QEBAJPEAVNLS_STR@@@Z
; public: int __cdecl WIN_TIME::QueryDay(void)const  __ptr64
?QueryDay@WIN_TIME@@QEBAHXZ
; public: int __cdecl WIN_TIME::QueryDayOfWeek(void)const  __ptr64
?QueryDayOfWeek@WIN_TIME@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::QueryDayPos(void)const  __ptr64
?QueryDayPos@INTL_PROFILE@@QEBAHXZ
; public: class STRLIST * __ptr64 __cdecl DIR_BLOCK::QueryDirs(void) __ptr64
?QueryDirs@DIR_BLOCK@@QEAAPEAVSTRLIST@@XZ
; public: class ITER_STRLIST * __ptr64 __cdecl DIR_BLOCK::QueryDirsIter(void) __ptr64
?QueryDirsIter@DIR_BLOCK@@QEAAPEAVITER_STRLIST@@XZ
; public: long __cdecl FMX::QueryDriveInfo(struct _FMS_GETDRIVEINFOW * __ptr64) __ptr64
?QueryDriveInfo@FMX@@QEAAJPEAU_FMS_GETDRIVEINFOW@@@Z
; public: long __cdecl INTL_PROFILE::QueryDurationStr(int,int,int,int,class NLS_STR * __ptr64)const  __ptr64
?QueryDurationStr@INTL_PROFILE@@QEBAJHHHHPEAVNLS_STR@@@Z
; public: long __cdecl BASE::QueryError(void)const  __ptr64
?QueryError@BASE@@QEBAJXZ
; public: long __cdecl FORWARDING_BASE::QueryError(void)const  __ptr64
?QueryError@FORWARDING_BASE@@QEBAJXZ
; public: long __cdecl HUATOM::QueryError(void)const  __ptr64
?QueryError@HUATOM@@QEBAJXZ
; public: virtual unsigned short const * __ptr64 __cdecl W32_DIR_BLOCK::QueryFileName(void) __ptr64
?QueryFileName@W32_DIR_BLOCK@@UEAAPEBGXZ
; public: long __cdecl WIN_TIME::QueryFileTime(struct _FILETIME * __ptr64)const  __ptr64
?QueryFileTime@WIN_TIME@@QEBAJPEAU_FILETIME@@@Z
; public: long __cdecl WIN_TIME::QueryFileTimeLocal(struct _FILETIME * __ptr64)const  __ptr64
?QueryFileTimeLocal@WIN_TIME@@QEBAJPEAU_FILETIME@@@Z
; public: class TREE * __ptr64 __cdecl TREE::QueryFirstSubtree(void)const  __ptr64
?QueryFirstSubtree@TREE@@QEBAPEAV1@XZ
; public: unsigned int __cdecl FMX::QueryFocus(void)const  __ptr64
?QueryFocus@FMX@@QEBAIXZ
; public: int __cdecl WIN_TIME::QueryHour(void)const  __ptr64
?QueryHour@WIN_TIME@@QEBAHXZ
; public: int __cdecl LOGON_HOURS_SETTING::QueryHourInDay(unsigned int,unsigned int)const  __ptr64
?QueryHourInDay@LOGON_HOURS_SETTING@@QEBAHII@Z
; public: int __cdecl LOGON_HOURS_SETTING::QueryHourInWeek(unsigned int)const  __ptr64
?QueryHourInWeek@LOGON_HOURS_SETTING@@QEBAHI@Z
; public: unsigned char * __ptr64 __cdecl LOGON_HOURS_SETTING::QueryHoursBlock(void)const  __ptr64
?QueryHoursBlock@LOGON_HOURS_SETTING@@QEBAPEAEXZ
; private: int __cdecl ISTR::QueryIch(void)const  __ptr64
?QueryIch@ISTR@@AEBAHXZ
; public: long __cdecl REG_KEY::QueryInfo(class REG_KEY_INFO_STRUCT * __ptr64) __ptr64
?QueryInfo@REG_KEY@@QEAAJPEAVREG_KEY_INFO_STRUCT@@@Z
; public: long __cdecl REG_KEY::QueryKeyName(class NLS_STR * __ptr64)const  __ptr64
?QueryKeyName@REG_KEY@@QEBAJPEAVNLS_STR@@@Z
; private: long __cdecl REG_KEY::QueryKeyValueBinary(unsigned short const * __ptr64,unsigned char * __ptr64 * __ptr64,long * __ptr64,long,unsigned long * __ptr64,unsigned long) __ptr64
?QueryKeyValueBinary@REG_KEY@@AEAAJPEBGPEAPEAEPEAJJPEAKK@Z
; private: long __cdecl REG_KEY::QueryKeyValueLong(unsigned short const * __ptr64,long * __ptr64,unsigned long * __ptr64) __ptr64
?QueryKeyValueLong@REG_KEY@@AEAAJPEBGPEAJPEAK@Z
; private: long __cdecl REG_KEY::QueryKeyValueString(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,class NLS_STR * __ptr64,unsigned long * __ptr64,long,long * __ptr64,unsigned long) __ptr64
?QueryKeyValueString@REG_KEY@@AEAAJPEBGPEAPEAGPEAVNLS_STR@@PEAKJPEAJK@Z
; public: class TREE * __ptr64 __cdecl TREE::QueryLastSubtree(void)const  __ptr64
?QueryLastSubtree@TREE@@QEBAPEAV1@XZ
; public: class TREE * __ptr64 __cdecl TREE::QueryLeft(void)const  __ptr64
?QueryLeft@TREE@@QEBAPEAV1@XZ
; public: int __cdecl UATOM_LINKAGE::QueryLinked(void) __ptr64
?QueryLinked@UATOM_LINKAGE@@QEAAHXZ
; public: static class REG_KEY * __ptr64 __cdecl REG_KEY::QueryLocalMachine(unsigned long)
?QueryLocalMachine@REG_KEY@@SAPEAV1@K@Z
; public: long __cdecl INTL_PROFILE::QueryLongDateString(class WIN_TIME const & __ptr64,class NLS_STR * __ptr64)const  __ptr64
?QueryLongDateString@INTL_PROFILE@@QEBAJAEBVWIN_TIME@@PEAVNLS_STR@@@Z
; protected: unsigned int __cdecl DFSITER_TREE::QueryMaxDepth(void)const  __ptr64
?QueryMaxDepth@DFSITER_TREE@@IEBAIXZ
; public: unsigned int __cdecl FS_ENUM::QueryMaxDepth(void) __ptr64
?QueryMaxDepth@FS_ENUM@@QEAAIXZ
; protected: unsigned int __cdecl BITFIELD::QueryMaxNonAllocBitCount(void)const  __ptr64
?QueryMaxNonAllocBitCount@BITFIELD@@IEBAIXZ
; public: int __cdecl WIN_TIME::QueryMinute(void)const  __ptr64
?QueryMinute@WIN_TIME@@QEBAHXZ
; public: int __cdecl WIN_TIME::QueryMonth(void)const  __ptr64
?QueryMonth@WIN_TIME@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::QueryMonthPos(void)const  __ptr64
?QueryMonthPos@INTL_PROFILE@@QEBAHXZ
; public: long __cdecl FS_ENUM::QueryName(class NLS_STR * __ptr64)const  __ptr64
?QueryName@FS_ENUM@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl REG_KEY::QueryName(class NLS_STR * __ptr64,int)const  __ptr64
?QueryName@REG_KEY@@QEBAJPEAVNLS_STR@@H@Z
; public: class NLS_STR const * __ptr64 __cdecl HUATOM::QueryNls(void)const  __ptr64
?QueryNls@HUATOM@@QEBAPEBVNLS_STR@@XZ
; protected: class TREE const * __ptr64 __cdecl DFSITER_TREE::QueryNode(void)const  __ptr64
?QueryNode@DFSITER_TREE@@IEBAPEBVTREE@@XZ
; public: unsigned int __cdecl NLS_STR::QueryNumChar(void)const  __ptr64
?QueryNumChar@NLS_STR@@QEBAIXZ
; public: unsigned int __cdecl DLIST::QueryNumElem(void) __ptr64
?QueryNumElem@DLIST@@QEAAIXZ
; public: unsigned int __cdecl SLIST::QueryNumElem(void) __ptr64
?QueryNumElem@SLIST@@QEAAIXZ
; public: unsigned int __cdecl TREE::QueryNumElem(void)const  __ptr64
?QueryNumElem@TREE@@QEBAIXZ
; public: unsigned int __cdecl BITFIELD::QueryOffset(unsigned int)const  __ptr64
?QueryOffset@BITFIELD@@QEBAII@Z
; public: long __cdecl INTL_PROFILE::QueryPMStr(class NLS_STR * __ptr64)const  __ptr64
?QueryPMStr@INTL_PROFILE@@QEBAJPEAVNLS_STR@@@Z
; public: class TREE * __ptr64 __cdecl TREE::QueryParent(void)const  __ptr64
?QueryParent@TREE@@QEBAPEAV1@XZ
; public: unsigned short const * __ptr64 __cdecl NLS_STR::QueryPch(class ISTR const & __ptr64)const  __ptr64
?QueryPch@NLS_STR@@QEBAPEBGAEBVISTR@@@Z
; public: unsigned short const * __ptr64 __cdecl NLS_STR::QueryPch(void)const  __ptr64
?QueryPch@NLS_STR@@QEBAPEBGXZ
; public: void * __ptr64 __cdecl ITER_SL::QueryProp(void) __ptr64
?QueryProp@ITER_SL@@QEAAPEAXXZ
; public: void * __ptr64 __cdecl TREE::QueryProp(void)const  __ptr64
?QueryProp@TREE@@QEBAPEAXXZ
; public: unsigned char * __ptr64 __cdecl BUFFER::QueryPtr(void)const  __ptr64
?QueryPtr@BUFFER@@QEBAPEAEXZ
; public: class TREE * __ptr64 __cdecl TREE::QueryRight(void)const  __ptr64
?QueryRight@TREE@@QEBAPEAV1@XZ
; protected: unsigned int __cdecl FS_ENUM::QuerySearchAttr(void)const  __ptr64
?QuerySearchAttr@FS_ENUM@@IEBAIXZ
; public: int __cdecl WIN_TIME::QuerySecond(void)const  __ptr64
?QuerySecond@WIN_TIME@@QEBAHXZ
; public: unsigned int __cdecl FMX::QuerySelCount(void)const  __ptr64
?QuerySelCount@FMX@@QEBAIXZ
; public: long __cdecl FMX::QuerySelection(int,struct _FMS_GETFILESELW * __ptr64,int) __ptr64
?QuerySelection@FMX@@QEAAJHPEAU_FMS_GETFILESELW@@H@Z
; public: long __cdecl INTL_PROFILE::QueryShortDateString(class WIN_TIME const & __ptr64,class NLS_STR * __ptr64)const  __ptr64
?QueryShortDateString@INTL_PROFILE@@QEBAJAEBVWIN_TIME@@PEAVNLS_STR@@@Z
; public: unsigned int __cdecl BUFFER::QuerySize(void)const  __ptr64
?QuerySize@BUFFER@@QEBAIXZ
; protected: class TREE const * __ptr64 __cdecl DFSITER_TREE::QueryStartNode(void)const  __ptr64
?QueryStartNode@DFSITER_TREE@@IEBAPEBVTREE@@XZ
; private: class NLS_STR const * __ptr64 __cdecl ISTR::QueryString(void)const  __ptr64
?QueryString@ISTR@@AEBAPEBVNLS_STR@@XZ
; private: class NLS_STR * __ptr64 __cdecl NLS_STR::QuerySubStr(class ISTR const & __ptr64,unsigned int)const  __ptr64
?QuerySubStr@NLS_STR@@AEBAPEAV1@AEBVISTR@@I@Z
; public: class NLS_STR * __ptr64 __cdecl NLS_STR::QuerySubStr(class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?QuerySubStr@NLS_STR@@QEBAPEAV1@AEBVISTR@@0@Z
; public: class NLS_STR * __ptr64 __cdecl NLS_STR::QuerySubStr(class ISTR const & __ptr64)const  __ptr64
?QuerySubStr@NLS_STR@@QEBAPEAV1@AEBVISTR@@@Z
; public: unsigned short const * __ptr64 __cdecl HUATOM::QueryText(void)const  __ptr64
?QueryText@HUATOM@@QEBAPEBGXZ
; public: unsigned int __cdecl NLS_STR::QueryTextLength(void)const  __ptr64
?QueryTextLength@NLS_STR@@QEBAIXZ
; public: unsigned int __cdecl NLS_STR::QueryTextSize(void)const  __ptr64
?QueryTextSize@NLS_STR@@QEBAIXZ
; public: long __cdecl WIN_TIME::QueryTime(unsigned long * __ptr64)const  __ptr64
?QueryTime@WIN_TIME@@QEBAJPEAK@Z
; public: long __cdecl WIN_TIME::QueryTimeLocal(unsigned long * __ptr64)const  __ptr64
?QueryTimeLocal@WIN_TIME@@QEBAJPEAK@Z
; public: long __cdecl INTL_PROFILE::QueryTimeSeparator(class NLS_STR * __ptr64)const  __ptr64
?QueryTimeSeparator@INTL_PROFILE@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl INTL_PROFILE::QueryTimeString(class WIN_TIME const & __ptr64,class NLS_STR * __ptr64)const  __ptr64
?QueryTimeString@INTL_PROFILE@@QEBAJAEBVWIN_TIME@@PEAVNLS_STR@@@Z
; public: unsigned int __cdecl LOGON_HOURS_SETTING::QueryUnitsPerWeek(void)const  __ptr64
?QueryUnitsPerWeek@LOGON_HOURS_SETTING@@QEBAIXZ
; public: long __cdecl REG_KEY::QueryValue(class REG_VALUE_INFO_STRUCT * __ptr64) __ptr64
?QueryValue@REG_KEY@@QEAAJPEAVREG_VALUE_INFO_STRUCT@@@Z
; public: long __cdecl REG_KEY::QueryValue(unsigned short const * __ptr64,unsigned long * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@REG_KEY@@QEAAJPEBGPEAK1@Z
; public: long __cdecl REG_KEY::QueryValue(unsigned short const * __ptr64,unsigned char * __ptr64 * __ptr64,long * __ptr64,long,unsigned long * __ptr64) __ptr64
?QueryValue@REG_KEY@@QEAAJPEBGPEAPEAEPEAJJPEAK@Z
; public: long __cdecl REG_KEY::QueryValue(unsigned short const * __ptr64,unsigned short * __ptr64 * __ptr64,unsigned long,unsigned long * __ptr64,int) __ptr64
?QueryValue@REG_KEY@@QEAAJPEBGPEAPEAGKPEAKH@Z
; public: long __cdecl REG_KEY::QueryValue(unsigned short const * __ptr64,class STRLIST * __ptr64 * __ptr64,unsigned long * __ptr64) __ptr64
?QueryValue@REG_KEY@@QEAAJPEBGPEAPEAVSTRLIST@@PEAK@Z
; public: long __cdecl REG_KEY::QueryValue(unsigned short const * __ptr64,class NLS_STR * __ptr64,unsigned long,unsigned long * __ptr64,int) __ptr64
?QueryValue@REG_KEY@@QEAAJPEBGPEAVNLS_STR@@KPEAKH@Z
; public: int __cdecl WIN_TIME::QueryYear(void)const  __ptr64
?QueryYear@WIN_TIME@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::QueryYearPos(void)const  __ptr64
?QueryYearPos@INTL_PROFILE@@QEBAHXZ
; private: int __cdecl NLS_STR::Realloc(unsigned int) __ptr64
?Realloc@NLS_STR@@AEAAHI@Z
; private: long __cdecl BUFFER::ReallocStorage(unsigned int) __ptr64
?ReallocStorage@BUFFER@@AEAAJI@Z
; public: void __cdecl FMX::Refresh(void) __ptr64
?Refresh@FMX@@QEAAXXZ
; public: long __cdecl INTL_PROFILE::Refresh(void) __ptr64
?Refresh@INTL_PROFILE@@QEAAJXZ
; protected: void __cdecl DLIST::Register(class ITER_L * __ptr64) __ptr64
?Register@DLIST@@IEAAXPEAVITER_L@@@Z
; protected: void __cdecl SLIST::Register(class ITER_SL * __ptr64) __ptr64
?Register@SLIST@@IEAAXPEAVITER_SL@@@Z
; public: void __cdecl FMX::Reload(void) __ptr64
?Reload@FMX@@QEAAXXZ
; public: void * __ptr64 __cdecl DLIST::Remove(class ITER_DL & __ptr64) __ptr64
?Remove@DLIST@@QEAAPEAXAEAVITER_DL@@@Z
; public: void * __ptr64 __cdecl DLIST::Remove(class RITER_DL & __ptr64) __ptr64
?Remove@DLIST@@QEAAPEAXAEAVRITER_DL@@@Z
; public: void * __ptr64 __cdecl SLIST::Remove(class ITER_SL & __ptr64) __ptr64
?Remove@SLIST@@QEAAPEAXAEAVITER_SL@@@Z
; public: class DIR_BLOCK * __ptr64 __cdecl SLIST_OF_DIR_BLOCK::Remove(class ITER_SL_DIR_BLOCK & __ptr64) __ptr64
?Remove@SLIST_OF_DIR_BLOCK@@QEAAPEAVDIR_BLOCK@@AEAVITER_SL_DIR_BLOCK@@@Z
; public: class NLS_STR * __ptr64 __cdecl SLIST_OF_NLS_STR::Remove(class NLS_STR & __ptr64) __ptr64
?Remove@SLIST_OF_NLS_STR@@QEAAPEAVNLS_STR@@AEAV2@@Z
; public: virtual void __cdecl OUTPUT_TO_AUX::Render(unsigned short const * __ptr64) __ptr64
?Render@OUTPUT_TO_AUX@@UEAAXPEBG@Z
; public: virtual void __cdecl OUTPUT_TO_AUX::Render(unsigned short const * __ptr64,unsigned int) __ptr64
?Render@OUTPUT_TO_AUX@@UEAAXPEBGI@Z
; private: virtual void __cdecl OUTPUT_TO_NUL::Render(unsigned short const * __ptr64) __ptr64
?Render@OUTPUT_TO_NUL@@EEAAXPEBG@Z
; private: virtual void __cdecl OUTPUT_TO_NUL::Render(unsigned short const * __ptr64,unsigned int) __ptr64
?Render@OUTPUT_TO_NUL@@EEAAXPEBGI@Z
; public: virtual void __cdecl OUTPUT_TO_STDERR::Render(unsigned short const * __ptr64) __ptr64
?Render@OUTPUT_TO_STDERR@@UEAAXPEBG@Z
; public: virtual void __cdecl OUTPUT_TO_STDERR::Render(unsigned short const * __ptr64,unsigned int) __ptr64
?Render@OUTPUT_TO_STDERR@@UEAAXPEBGI@Z
; public: virtual void __cdecl OUTPUT_TO_STDOUT::Render(unsigned short const * __ptr64) __ptr64
?Render@OUTPUT_TO_STDOUT@@UEAAXPEBG@Z
; public: virtual void __cdecl OUTPUT_TO_STDOUT::Render(unsigned short const * __ptr64,unsigned int) __ptr64
?Render@OUTPUT_TO_STDOUT@@UEAAXPEBGI@Z
; private: void __cdecl NLS_STR::ReplSubStr(class NLS_STR const & __ptr64,class ISTR & __ptr64,unsigned int) __ptr64
?ReplSubStr@NLS_STR@@AEAAXAEBV1@AEAVISTR@@I@Z
; public: void __cdecl NLS_STR::ReplSubStr(class NLS_STR const & __ptr64,class ISTR & __ptr64) __ptr64
?ReplSubStr@NLS_STR@@QEAAXAEBV1@AEAVISTR@@@Z
; public: void __cdecl NLS_STR::ReplSubStr(class NLS_STR const & __ptr64,class ISTR & __ptr64,class ISTR const & __ptr64) __ptr64
?ReplSubStr@NLS_STR@@QEAAXAEBV1@AEAVISTR@@AEBV2@@Z
; protected: void __cdecl BASE::ReportError(long) __ptr64
?ReportError@BASE@@IEAAXJ@Z
; protected: void __cdecl FS_ENUM::ReportLastError(long) __ptr64
?ReportLastError@FS_ENUM@@IEAAXJ@Z
; public: void __cdecl DFSITER_TREE::Reset(void) __ptr64
?Reset@DFSITER_TREE@@QEAAXXZ
; public: void __cdecl ISTR::Reset(void) __ptr64
?Reset@ISTR@@QEAAXXZ
; public: void __cdecl ITER_DL::Reset(void) __ptr64
?Reset@ITER_DL@@QEAAXXZ
; public: void __cdecl ITER_SL::Reset(void) __ptr64
?Reset@ITER_SL@@QEAAXXZ
; public: int __cdecl NLS_STR::Reset(void) __ptr64
?Reset@NLS_STR@@QEAAHXZ
; public: void __cdecl RITER_DL::Reset(void) __ptr64
?Reset@RITER_DL@@QEAAXXZ
; protected: void __cdecl BASE::ResetError(void) __ptr64
?ResetError@BASE@@IEAAXXZ
; public: long __cdecl BITFIELD::Resize(unsigned int) __ptr64
?Resize@BITFIELD@@QEAAJI@Z
; public: long __cdecl BUFFER::Resize(unsigned int) __ptr64
?Resize@BUFFER@@QEAAJI@Z
; public: long __cdecl NLS_STR::RtlOemUpcase(void) __ptr64
?RtlOemUpcase@NLS_STR@@QEAAJXZ
; private: long __cdecl INTL_PROFILE::ScanLongDate(class NLS_STR * __ptr64)const  __ptr64
?ScanLongDate@INTL_PROFILE@@AEBAJPEAVNLS_STR@@@Z
; public: void __cdecl DL_NODE::Set(class DL_NODE * __ptr64,class DL_NODE * __ptr64,void * __ptr64) __ptr64
?Set@DL_NODE@@QEAAXPEAV1@0PEAX@Z
; public: long __cdecl LOGON_HOURS_SETTING::Set(class LOGON_HOURS_SETTING const & __ptr64) __ptr64
?Set@LOGON_HOURS_SETTING@@QEAAJAEBV1@@Z
; public: void __cdecl SL_NODE::Set(class SL_NODE * __ptr64,void * __ptr64) __ptr64
?Set@SL_NODE@@QEAAXPEAV1@PEAX@Z
; public: void __cdecl BITFIELD::SetAllBits(enum BITVALUES) __ptr64
?SetAllBits@BITFIELD@@QEAAXW4BITVALUES@@@Z
; public: long __cdecl HEAP_BASE::SetAllocCount(int) __ptr64
?SetAllocCount@HEAP_BASE@@QEAAJH@Z
; public: void __cdecl BITFIELD::SetBit(unsigned int,enum BITVALUES) __ptr64
?SetBit@BITFIELD@@QEAAXIW4BITVALUES@@@Z
; private: void __cdecl DFSITER_TREE::SetCurDepth(unsigned int) __ptr64
?SetCurDepth@DFSITER_TREE@@AEAAXI@Z
; public: static void __cdecl DBGSTREAM::SetCurrent(class DBGSTREAM * __ptr64)
?SetCurrent@DBGSTREAM@@SAXPEAV1@@Z
; protected: void __cdecl FS_ENUM::SetCurrentDirBlock(class DIR_BLOCK * __ptr64) __ptr64
?SetCurrentDirBlock@FS_ENUM@@IEAAXPEAVDIR_BLOCK@@@Z
; public: long __cdecl WIN_TIME::SetCurrentTime(void) __ptr64
?SetCurrentTime@WIN_TIME@@QEAAJXZ
; public: void __cdecl DIR_BLOCK::SetDoBreadthFirstDirs(int) __ptr64
?SetDoBreadthFirstDirs@DIR_BLOCK@@QEAAXH@Z
; public: void __cdecl DIR_BLOCK::SetFindFirstFlag(int) __ptr64
?SetFindFirstFlag@DIR_BLOCK@@QEAAXH@Z
; private: void __cdecl TREE::SetFirstSubtree(class TREE * __ptr64) __ptr64
?SetFirstSubtree@TREE@@AEAAXPEAV1@@Z
; public: long __cdecl LOGON_HOURS_SETTING::SetFromBits(unsigned char const * __ptr64,unsigned int) __ptr64
?SetFromBits@LOGON_HOURS_SETTING@@QEAAJPEBEI@Z
; public: long __cdecl WIN_TIME::SetGMT(int) __ptr64
?SetGMT@WIN_TIME@@QEAAJH@Z
; public: long __cdecl LOGON_HOURS_SETTING::SetHourInDay(int,unsigned int,unsigned int) __ptr64
?SetHourInDay@LOGON_HOURS_SETTING@@QEAAJHII@Z
; public: long __cdecl LOGON_HOURS_SETTING::SetHourInWeek(int,unsigned int) __ptr64
?SetHourInWeek@LOGON_HOURS_SETTING@@QEAAJHI@Z
; private: void __cdecl ISTR::SetIch(int) __ptr64
?SetIch@ISTR@@AEAAXH@Z
; protected: void __cdecl HEAP_BASE::SetItem(int,void * __ptr64) __ptr64
?SetItem@HEAP_BASE@@IEAAXHPEAX@Z
; protected: void __cdecl DLIST::SetIters(class DL_NODE * __ptr64) __ptr64
?SetIters@DLIST@@IEAAXPEAVDL_NODE@@@Z
; protected: void __cdecl SLIST::SetIters(class SL_NODE * __ptr64,class SL_NODE * __ptr64) __ptr64
?SetIters@SLIST@@IEAAXPEAVSL_NODE@@0@Z
; protected: void __cdecl SLIST::SetIters(class SL_NODE * __ptr64) __ptr64
?SetIters@SLIST@@IEAAXPEAVSL_NODE@@@Z
; private: long __cdecl REG_KEY::SetKeyValueBinary(unsigned short const * __ptr64,unsigned char const * __ptr64,long,unsigned long,unsigned long) __ptr64
?SetKeyValueBinary@REG_KEY@@AEAAJPEBGPEBEJKK@Z
; private: long __cdecl REG_KEY::SetKeyValueLong(unsigned short const * __ptr64,long,unsigned long) __ptr64
?SetKeyValueLong@REG_KEY@@AEAAJPEBGJK@Z
; private: long __cdecl REG_KEY::SetKeyValueString(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,long,unsigned long) __ptr64
?SetKeyValueString@REG_KEY@@AEAAJPEBG0KJK@Z
; private: void __cdecl TREE::SetLeft(class TREE * __ptr64) __ptr64
?SetLeft@TREE@@AEAAXPEAV1@@Z
; private: void __cdecl DFSITER_TREE::SetMaxDepth(unsigned int) __ptr64
?SetMaxDepth@DFSITER_TREE@@AEAAXI@Z
; private: void __cdecl DFSITER_TREE::SetNode(class TREE const * __ptr64) __ptr64
?SetNode@DFSITER_TREE@@AEAAXPEBVTREE@@@Z
; private: void __cdecl TREE::SetParent(class TREE * __ptr64) __ptr64
?SetParent@TREE@@AEAAXPEAV1@@Z
; public: void __cdecl TREE::SetProp(void * __ptr64 const) __ptr64
?SetProp@TREE@@QEAAXQEAX@Z
; private: void __cdecl TREE::SetRight(class TREE * __ptr64) __ptr64
?SetRight@TREE@@AEAAXPEAV1@@Z
; public: void __cdecl DBGSTREAM::SetSink(class OUTPUTSINK * __ptr64) __ptr64
?SetSink@DBGSTREAM@@QEAAXPEAVOUTPUTSINK@@@Z
; private: void __cdecl DFSITER_TREE::SetStartNode(class TREE const * __ptr64) __ptr64
?SetStartNode@DFSITER_TREE@@AEAAXPEBVTREE@@@Z
; public: long __cdecl WIN_TIME::SetTime(unsigned long) __ptr64
?SetTime@WIN_TIME@@QEAAJK@Z
; public: long __cdecl WIN_TIME::SetTime(struct _FILETIME) __ptr64
?SetTime@WIN_TIME@@QEAAJU_FILETIME@@@Z
; public: long __cdecl WIN_TIME::SetTimeLocal(unsigned long) __ptr64
?SetTimeLocal@WIN_TIME@@QEAAJK@Z
; public: long __cdecl WIN_TIME::SetTimeLocal(struct _FILETIME) __ptr64
?SetTimeLocal@WIN_TIME@@QEAAJU_FILETIME@@@Z
; public: long __cdecl REG_KEY::SetValue(class REG_VALUE_INFO_STRUCT * __ptr64) __ptr64
?SetValue@REG_KEY@@QEAAJPEAVREG_VALUE_INFO_STRUCT@@@Z
; public: long __cdecl REG_KEY::SetValue(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long const * __ptr64,int) __ptr64
?SetValue@REG_KEY@@QEAAJPEBG0KPEBKH@Z
; public: long __cdecl REG_KEY::SetValue(unsigned short const * __ptr64,unsigned long,unsigned long const * __ptr64) __ptr64
?SetValue@REG_KEY@@QEAAJPEBGKPEBK@Z
; public: long __cdecl REG_KEY::SetValue(unsigned short const * __ptr64,unsigned char const * __ptr64,long,unsigned long const * __ptr64) __ptr64
?SetValue@REG_KEY@@QEAAJPEBGPEBEJPEBK@Z
; public: long __cdecl REG_KEY::SetValue(unsigned short const * __ptr64,class NLS_STR const * __ptr64,unsigned long const * __ptr64,int) __ptr64
?SetValue@REG_KEY@@QEAAJPEBGPEBVNLS_STR@@PEBKH@Z
; public: long __cdecl REG_KEY::SetValue(unsigned short const * __ptr64,class STRLIST const * __ptr64,unsigned long const * __ptr64) __ptr64
?SetValue@REG_KEY@@QEAAJPEBGPEBVSTRLIST@@PEBK@Z
; protected: int __cdecl FS_ENUM::ShouldThisFileBeIncluded(unsigned int)const  __ptr64
?ShouldThisFileBeIncluded@FS_ENUM@@IEBAHI@Z
; public: static long __cdecl UATOM_MANAGER::Terminate(void)
?Terminate@UATOM_MANAGER@@SAJXZ
; private: class UATOM * __ptr64 __cdecl UATOM_MANAGER::Tokenize(unsigned short const * __ptr64,int) __ptr64
?Tokenize@UATOM_MANAGER@@AEAAPEAVUATOM@@PEBGH@Z
; public: void __cdecl BUFFER::Trim(void) __ptr64
?Trim@BUFFER@@QEAAXXZ
; public: void __cdecl HEAP_BASE::Trim(void) __ptr64
?Trim@HEAP_BASE@@QEAAXXZ
; void __cdecl UIAssertCommand(char const * __ptr64)
?UIAssertCommand@@YAXPEBD@Z
; void __cdecl UIAssertHlp(char const * __ptr64,char const * __ptr64,unsigned int)
?UIAssertHlp@@YAXPEBD0I@Z
; void __cdecl UIAssertHlp(char const * __ptr64,unsigned int)
?UIAssertHlp@@YAXPEBDI@Z
; protected: void * __ptr64 __cdecl DLIST::Unlink(class DL_NODE * __ptr64) __ptr64
?Unlink@DLIST@@IEAAPEAXPEAVDL_NODE@@@Z
; protected: void __cdecl TREE::Unlink(void) __ptr64
?Unlink@TREE@@IEAAXXZ
; public: void __cdecl UATOM_LINKAGE::Unlink(void) __ptr64
?Unlink@UATOM_LINKAGE@@QEAAXXZ
; private: void __cdecl NLS_STR::UpdateIstr(class ISTR * __ptr64)const  __ptr64
?UpdateIstr@NLS_STR@@AEBAXPEAVISTR@@@Z
; public: int __cdecl STRLIST::WriteToBuffer(unsigned short * __ptr64,int,unsigned short * __ptr64) __ptr64
?WriteToBuffer@STRLIST@@QEAAHPEAGH0@Z
; public: void __cdecl DLIST::_DebugPrint(void)const  __ptr64
?_DebugPrint@DLIST@@QEBAXXZ
; public: void __cdecl SLIST::_DebugPrint(void)const  __ptr64
?_DebugPrint@SLIST@@QEBAXXZ
; public: void __cdecl TREE::_DebugPrint(void)const  __ptr64
?_DebugPrint@TREE@@QEBAXXZ
; public: int __cdecl NLS_STR::_IsOwnerAlloc(void)const  __ptr64
?_IsOwnerAlloc@NLS_STR@@QEBAHXZ
; public: unsigned int __cdecl NLS_STR::_QueryAllocSize(void)const  __ptr64
?_QueryAllocSize@NLS_STR@@QEBAIXZ
; public: unsigned short const * __ptr64 __cdecl NLS_STR::_QueryPch(void)const  __ptr64
?_QueryPch@NLS_STR@@QEBAPEBGXZ
; public: unsigned int __cdecl NLS_STR::_QueryTextLength(void)const  __ptr64
?_QueryTextLength@NLS_STR@@QEBAIXZ
; protected: void __cdecl BASE::_ReportError(long) __ptr64
?_ReportError@BASE@@IEAAXJ@Z
; public: int __cdecl NLS_STR::_stricmp(class NLS_STR const & __ptr64)const  __ptr64
?_stricmp@NLS_STR@@QEBAHAEBV1@@Z
; public: int __cdecl NLS_STR::_stricmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?_stricmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@1@Z
; public: int __cdecl NLS_STR::_stricmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?_stricmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@@Z
; public: int __cdecl NLS_STR::_strnicmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?_strnicmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@11@Z
; public: int __cdecl NLS_STR::_strnicmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?_strnicmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@1@Z
; public: int __cdecl NLS_STR::_strnicmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?_strnicmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@@Z
; public: class NLS_STR & __ptr64 __cdecl NLS_STR::_strupr(void) __ptr64
?_strupr@NLS_STR@@QEAAAEAV1@XZ
; public: int __cdecl NLS_STR::atoi(class ISTR const & __ptr64)const  __ptr64
?atoi@NLS_STR@@QEBAHAEBVISTR@@@Z
; public: int __cdecl NLS_STR::atoi(void)const  __ptr64
?atoi@NLS_STR@@QEBAHXZ
; public: long __cdecl NLS_STR::atol(class ISTR const & __ptr64)const  __ptr64
?atol@NLS_STR@@QEBAJAEBVISTR@@@Z
; public: long __cdecl NLS_STR::atol(void)const  __ptr64
?atol@NLS_STR@@QEBAJXZ
; public: unsigned long __cdecl NLS_STR::atoul(class ISTR const & __ptr64)const  __ptr64
?atoul@NLS_STR@@QEBAKAEBVISTR@@@Z
; public: unsigned long __cdecl NLS_STR::atoul(void)const  __ptr64
?atoul@NLS_STR@@QEBAKXZ
; public: class NLS_STR & __ptr64 __cdecl NLS_STR::strcat(class NLS_STR const & __ptr64) __ptr64
?strcat@NLS_STR@@QEAAAEAV1@AEBV1@@Z
; public: int __cdecl NLS_STR::strchr(class ISTR * __ptr64,unsigned short)const  __ptr64
?strchr@NLS_STR@@QEBAHPEAVISTR@@G@Z
; public: int __cdecl NLS_STR::strchr(class ISTR * __ptr64,unsigned short,class ISTR const & __ptr64)const  __ptr64
?strchr@NLS_STR@@QEBAHPEAVISTR@@GAEBV2@@Z
; public: int __cdecl NLS_STR::strcmp(class NLS_STR const & __ptr64)const  __ptr64
?strcmp@NLS_STR@@QEBAHAEBV1@@Z
; public: int __cdecl NLS_STR::strcmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strcmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@1@Z
; public: int __cdecl NLS_STR::strcmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strcmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@@Z
; unsigned short * __ptr64 __cdecl strcpy(unsigned short * __ptr64,class NLS_STR const & __ptr64)
?strcpy@@YAPEAGPEAGAEBVNLS_STR@@@Z
; public: int __cdecl NLS_STR::strcspn(class ISTR * __ptr64,class NLS_STR const & __ptr64)const  __ptr64
?strcspn@NLS_STR@@QEBAHPEAVISTR@@AEBV1@@Z
; public: int __cdecl NLS_STR::strcspn(class ISTR * __ptr64,class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strcspn@NLS_STR@@QEBAHPEAVISTR@@AEBV1@AEBV2@@Z
; public: unsigned int __cdecl NLS_STR::strlen(void)const  __ptr64
?strlen@NLS_STR@@QEBAIXZ
; public: int __cdecl NLS_STR::strncmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strncmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@11@Z
; public: int __cdecl NLS_STR::strncmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strncmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@1@Z
; public: int __cdecl NLS_STR::strncmp(class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strncmp@NLS_STR@@QEBAHAEBV1@AEBVISTR@@@Z
; public: int __cdecl NLS_STR::strrchr(class ISTR * __ptr64,unsigned short)const  __ptr64
?strrchr@NLS_STR@@QEBAHPEAVISTR@@G@Z
; public: int __cdecl NLS_STR::strrchr(class ISTR * __ptr64,unsigned short,class ISTR const & __ptr64)const  __ptr64
?strrchr@NLS_STR@@QEBAHPEAVISTR@@GAEBV2@@Z
; public: int __cdecl NLS_STR::strspn(class ISTR * __ptr64,class NLS_STR const & __ptr64)const  __ptr64
?strspn@NLS_STR@@QEBAHPEAVISTR@@AEBV1@@Z
; public: int __cdecl NLS_STR::strspn(class ISTR * __ptr64,class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strspn@NLS_STR@@QEBAHPEAVISTR@@AEBV1@AEBV2@@Z
; public: int __cdecl NLS_STR::strstr(class ISTR * __ptr64,class NLS_STR const & __ptr64)const  __ptr64
?strstr@NLS_STR@@QEBAHPEAVISTR@@AEBV1@@Z
; public: int __cdecl NLS_STR::strstr(class ISTR * __ptr64,class NLS_STR const & __ptr64,class ISTR const & __ptr64)const  __ptr64
?strstr@NLS_STR@@QEBAHPEAVISTR@@AEBV1@AEBV2@@Z
; public: virtual void * __ptr64 __cdecl ITER_DL::vNext(void) __ptr64
?vNext@ITER_DL@@UEAAPEAXXZ
; public: virtual void * __ptr64 __cdecl RITER_DL::vNext(void) __ptr64
?vNext@RITER_DL@@UEAAPEAXXZ
InitCompareParam
NETUI_InitIsDBCS
NETUI_IsDBCS
NETUI_strcmp
NETUI_stricmp
NETUI_strncmp
NETUI_strncmp2
NETUI_strnicmp
NETUI_strnicmp2
QueryNocaseCompareParam
QueryStdCompareParam
QueryUserDefaultLCID
UserPreferenceQuery
UserPreferenceQueryBool
UserPreferenceSet
UserPreferenceSetBool
UserProfileEnum
UserProfileFree
UserProfileInit
UserProfileQuery
UserProfileRead
UserProfileSet
UserProfileWrite
