; 
; 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
