; 
; Exports of file NETUI0.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NETUI0.dll
EXPORTS
; public: __thiscall ALIAS_STR::ALIAS_STR(unsigned short const *)
??0ALIAS_STR@@QAE@PBG@Z
; public: __thiscall ALLOC_STR::ALLOC_STR(unsigned short *,unsigned int,unsigned short const *)
??0ALLOC_STR@@QAE@PAGIPBG@Z
; protected: __thiscall BASE::BASE(void)
??0BASE@@IAE@XZ
; public: __thiscall BITFIELD::BITFIELD(class BITFIELD const &)
??0BITFIELD@@QAE@ABV0@@Z
; public: __thiscall BITFIELD::BITFIELD(unsigned short)
??0BITFIELD@@QAE@G@Z
; public: __thiscall BITFIELD::BITFIELD(unsigned int,enum BITVALUES)
??0BITFIELD@@QAE@IW4BITVALUES@@@Z
; public: __thiscall BITFIELD::BITFIELD(unsigned long)
??0BITFIELD@@QAE@K@Z
; public: __thiscall BITFIELD::BITFIELD(unsigned char const *,unsigned int,unsigned int)
??0BITFIELD@@QAE@PBEII@Z
; public: __thiscall BUFFER::BUFFER(unsigned int)
??0BUFFER@@QAE@I@Z
; public: __thiscall CHAR_STRING::CHAR_STRING(unsigned short const *,unsigned int)
??0CHAR_STRING@@QAE@PBGI@Z
; public: __thiscall DBGSTREAM::DBGSTREAM(class OUTPUTSINK *)
??0DBGSTREAM@@QAE@PAVOUTPUTSINK@@@Z
; public: __thiscall DEC_STR::DEC_STR(unsigned long,unsigned int)
??0DEC_STR@@QAE@KI@Z
; public: __thiscall DFSITER_TREE::DFSITER_TREE(class DFSITER_TREE const *)
??0DFSITER_TREE@@QAE@PBV0@@Z
; public: __thiscall DFSITER_TREE::DFSITER_TREE(class TREE const *,unsigned int)
??0DFSITER_TREE@@QAE@PBVTREE@@I@Z
; public: __thiscall DIR_BLOCK::DIR_BLOCK(void)
??0DIR_BLOCK@@QAE@XZ
; public: __thiscall DLIST::DLIST(void)
??0DLIST@@QAE@XZ
; public: __thiscall DL_NODE::DL_NODE(class DL_NODE *,class DL_NODE *,void *)
??0DL_NODE@@QAE@PAV0@0PAX@Z
; public: __thiscall ELAPSED_TIME_STR::ELAPSED_TIME_STR(unsigned long,unsigned short,int)
??0ELAPSED_TIME_STR@@QAE@KGH@Z
; public: __thiscall FMX::FMX(struct HWND__ *)
??0FMX@@QAE@PAUHWND__@@@Z
; protected: __thiscall FORWARDING_BASE::FORWARDING_BASE(class BASE *)
??0FORWARDING_BASE@@IAE@PAVBASE@@@Z
; protected: __thiscall FS_ENUM::FS_ENUM(unsigned short const *,unsigned short const *,enum FILE_TYPE,int,unsigned int)
??0FS_ENUM@@IAE@PBG0W4FILE_TYPE@@HI@Z
; protected: __thiscall HEAP_BASE::HEAP_BASE(int,int)
??0HEAP_BASE@@IAE@HH@Z
; public: __thiscall HEX_STR::HEX_STR(unsigned long,unsigned int)
??0HEX_STR@@QAE@KI@Z
; public: __thiscall HUATOM::HUATOM(unsigned short const *,int)
??0HUATOM@@QAE@PBGH@Z
; public: __thiscall INTL_PROFILE::INTL_PROFILE(void)
??0INTL_PROFILE@@QAE@XZ
; public: __thiscall ISTR::ISTR(class ISTR const &)
??0ISTR@@QAE@ABV0@@Z
; public: __thiscall ISTR::ISTR(class NLS_STR const &)
??0ISTR@@QAE@ABVNLS_STR@@@Z
; public: __thiscall ITER_DL::ITER_DL(class ITER_DL const &)
??0ITER_DL@@QAE@ABV0@@Z
; public: __thiscall ITER_DL::ITER_DL(class DLIST *)
??0ITER_DL@@QAE@PAVDLIST@@@Z
; public: __thiscall ITER_L::ITER_L(void)
??0ITER_L@@QAE@XZ
; public: __thiscall ITER_SL::ITER_SL(class ITER_SL const &)
??0ITER_SL@@QAE@ABV0@@Z
; public: __thiscall ITER_SL::ITER_SL(class SLIST *)
??0ITER_SL@@QAE@PAVSLIST@@@Z
; public: __thiscall ITER_SL_DIR_BLOCK::ITER_SL_DIR_BLOCK(class SLIST &)
??0ITER_SL_DIR_BLOCK@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_NLS_STR::ITER_SL_NLS_STR(class SLIST &)
??0ITER_SL_NLS_STR@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_NLS_STR::ITER_SL_NLS_STR(class ITER_SL_NLS_STR const &)
??0ITER_SL_NLS_STR@@QAE@ABV0@@Z
; public: __thiscall ITER_STRLIST::ITER_STRLIST(class STRLIST &)
??0ITER_STRLIST@@QAE@AAVSTRLIST@@@Z
; public: __thiscall ITER_STRLIST::ITER_STRLIST(class ITER_STRLIST const &)
??0ITER_STRLIST@@QAE@ABV0@@Z
; public: __thiscall LOGON_HOURS_SETTING::LOGON_HOURS_SETTING(class LOGON_HOURS_SETTING const &)
??0LOGON_HOURS_SETTING@@QAE@ABV0@@Z
; public: __thiscall LOGON_HOURS_SETTING::LOGON_HOURS_SETTING(unsigned char const *,unsigned int)
??0LOGON_HOURS_SETTING@@QAE@PBEI@Z
; protected: __thiscall NLS_STR::NLS_STR(unsigned short *,unsigned int,int)
??0NLS_STR@@IAE@PAGIH@Z
; public: __thiscall NLS_STR::NLS_STR(class NLS_STR const &)
??0NLS_STR@@QAE@ABV0@@Z
; public: __thiscall NLS_STR::NLS_STR(unsigned int)
??0NLS_STR@@QAE@I@Z
; public: __thiscall NLS_STR::NLS_STR(unsigned short const *)
??0NLS_STR@@QAE@PBG@Z
; public: __thiscall NLS_STR::NLS_STR(unsigned short const *,unsigned short)
??0NLS_STR@@QAE@PBGG@Z
; public: __thiscall NLS_STR::NLS_STR(void)
??0NLS_STR@@QAE@XZ
; public: __thiscall NUM_NLS_STR::NUM_NLS_STR(unsigned long)
??0NUM_NLS_STR@@QAE@K@Z
; public: __thiscall ONE_SHOT_HEAP::ONE_SHOT_HEAP(unsigned int,int)
??0ONE_SHOT_HEAP@@QAE@IH@Z
; public: __thiscall REG_KEY::REG_KEY(class REG_KEY &)
??0REG_KEY@@QAE@AAV0@@Z
; public: __thiscall REG_KEY::REG_KEY(class REG_KEY &,class NLS_STR const &,unsigned long)
??0REG_KEY@@QAE@AAV0@ABVNLS_STR@@K@Z
; public: __thiscall REG_KEY::REG_KEY(class REG_KEY &,class NLS_STR const &,class REG_KEY_CREATE_STRUCT *)
??0REG_KEY@@QAE@AAV0@ABVNLS_STR@@PAVREG_KEY_CREATE_STRUCT@@@Z
; public: __thiscall REG_KEY::REG_KEY(class NLS_STR const &,unsigned long)
??0REG_KEY@@QAE@ABVNLS_STR@@K@Z
; public: __thiscall REG_KEY::REG_KEY(struct HKEY__ *,unsigned long)
??0REG_KEY@@QAE@PAUHKEY__@@K@Z
; public: __thiscall REG_KEY::REG_KEY(struct HKEY__ *,unsigned short const *,unsigned long)
??0REG_KEY@@QAE@PAUHKEY__@@PBGK@Z
; public: __thiscall REG_KEY_CREATE_STRUCT::REG_KEY_CREATE_STRUCT(void)
??0REG_KEY_CREATE_STRUCT@@QAE@XZ
; public: __thiscall REG_KEY_INFO_STRUCT::REG_KEY_INFO_STRUCT(void)
??0REG_KEY_INFO_STRUCT@@QAE@XZ
; public: __thiscall REG_VALUE_INFO_STRUCT::REG_VALUE_INFO_STRUCT(void)
??0REG_VALUE_INFO_STRUCT@@QAE@XZ
; public: __thiscall RESOURCE_STR::RESOURCE_STR(long,struct HINSTANCE__ *)
??0RESOURCE_STR@@QAE@JPAUHINSTANCE__@@@Z
; public: __thiscall RITER_DL::RITER_DL(class RITER_DL const &)
??0RITER_DL@@QAE@ABV0@@Z
; public: __thiscall RITER_DL::RITER_DL(class DLIST *)
??0RITER_DL@@QAE@PAVDLIST@@@Z
; public: __thiscall SLIST::SLIST(void)
??0SLIST@@QAE@XZ
; public: __thiscall SLIST_OF_DIR_BLOCK::SLIST_OF_DIR_BLOCK(int)
??0SLIST_OF_DIR_BLOCK@@QAE@H@Z
; public: __thiscall SLIST_OF_NLS_STR::SLIST_OF_NLS_STR(int)
??0SLIST_OF_NLS_STR@@QAE@H@Z
; public: __thiscall SL_NODE::SL_NODE(class SL_NODE *,void *)
??0SL_NODE@@QAE@PAV0@PAX@Z
; public: __thiscall STRLIST::STRLIST(class NLS_STR const &,class NLS_STR const &,int)
??0STRLIST@@QAE@ABVNLS_STR@@0H@Z
; public: __thiscall STRLIST::STRLIST(int)
??0STRLIST@@QAE@H@Z
; public: __thiscall STRLIST::STRLIST(unsigned short const *,unsigned short const *,int)
??0STRLIST@@QAE@PBG0H@Z
; public: __thiscall TCHAR_STR::TCHAR_STR(unsigned short)
??0TCHAR_STR@@QAE@G@Z
; public: __thiscall TCHAR_STR_IMPL::TCHAR_STR_IMPL(unsigned short)
??0TCHAR_STR_IMPL@@QAE@G@Z
; public: __thiscall TREE::TREE(void *)
??0TREE@@QAE@PAX@Z
; public: __thiscall UATOM::UATOM(class NLS_STR &)
??0UATOM@@QAE@AAVNLS_STR@@@Z
; public: __thiscall UATOM_LINKAGE::UATOM_LINKAGE(void)
??0UATOM_LINKAGE@@QAE@XZ
; private: __thiscall UATOM_MANAGER::UATOM_MANAGER(void)
??0UATOM_MANAGER@@AAE@XZ
; public: __thiscall UATOM_REGION::UATOM_REGION(void)
??0UATOM_REGION@@QAE@XZ
; public: __thiscall W32_DIR_BLOCK::W32_DIR_BLOCK(void)
??0W32_DIR_BLOCK@@QAE@XZ
; public: __thiscall W32_FS_ENUM::W32_FS_ENUM(unsigned short const *,unsigned short const *,enum FILE_TYPE,int,unsigned int)
??0W32_FS_ENUM@@QAE@PBG0W4FILE_TYPE@@HI@Z
; public: __thiscall WCHAR_STRING::WCHAR_STRING(char const *,unsigned int)
??0WCHAR_STRING@@QAE@PBDI@Z
; public: __thiscall WIN_TIME::WIN_TIME(int)
??0WIN_TIME@@QAE@H@Z
; public: __thiscall WIN_TIME::WIN_TIME(unsigned long,int)
??0WIN_TIME@@QAE@KH@Z
; public: __thiscall WIN_TIME::WIN_TIME(struct _FILETIME,int)
??0WIN_TIME@@QAE@U_FILETIME@@H@Z
; public: __thiscall ALIAS_STR::~ALIAS_STR(void)
??1ALIAS_STR@@QAE@XZ
; public: __thiscall BITFIELD::~BITFIELD(void)
??1BITFIELD@@QAE@XZ
; public: __thiscall BUFFER::~BUFFER(void)
??1BUFFER@@QAE@XZ
; public: __thiscall CHAR_STRING::~CHAR_STRING(void)
??1CHAR_STRING@@QAE@XZ
; public: __thiscall DBGSTREAM::~DBGSTREAM(void)
??1DBGSTREAM@@QAE@XZ
; public: __thiscall DEC_STR::~DEC_STR(void)
??1DEC_STR@@QAE@XZ
; public: __thiscall DFSITER_TREE::~DFSITER_TREE(void)
??1DFSITER_TREE@@QAE@XZ
; public: virtual __thiscall DIR_BLOCK::~DIR_BLOCK(void)
??1DIR_BLOCK@@UAE@XZ
; public: __thiscall DLIST::~DLIST(void)
??1DLIST@@QAE@XZ
; public: __thiscall ELAPSED_TIME_STR::~ELAPSED_TIME_STR(void)
??1ELAPSED_TIME_STR@@QAE@XZ
; public: virtual __thiscall FS_ENUM::~FS_ENUM(void)
??1FS_ENUM@@UAE@XZ
; protected: __thiscall HEAP_BASE::~HEAP_BASE(void)
??1HEAP_BASE@@IAE@XZ
; public: __thiscall ITER_DL::~ITER_DL(void)
??1ITER_DL@@QAE@XZ
; public: __thiscall ITER_SL::~ITER_SL(void)
??1ITER_SL@@QAE@XZ
; public: __thiscall ITER_SL_DIR_BLOCK::~ITER_SL_DIR_BLOCK(void)
??1ITER_SL_DIR_BLOCK@@QAE@XZ
; public: __thiscall ITER_SL_NLS_STR::~ITER_SL_NLS_STR(void)
??1ITER_SL_NLS_STR@@QAE@XZ
; public: __thiscall ITER_STRLIST::~ITER_STRLIST(void)
??1ITER_STRLIST@@QAE@XZ
; public: __thiscall LOGON_HOURS_SETTING::~LOGON_HOURS_SETTING(void)
??1LOGON_HOURS_SETTING@@QAE@XZ
; public: __thiscall NLS_STR::~NLS_STR(void)
??1NLS_STR@@QAE@XZ
; public: __thiscall REG_KEY::~REG_KEY(void)
??1REG_KEY@@QAE@XZ
; public: __thiscall REG_KEY_INFO_STRUCT::~REG_KEY_INFO_STRUCT(void)
??1REG_KEY_INFO_STRUCT@@QAE@XZ
; public: __thiscall REG_VALUE_INFO_STRUCT::~REG_VALUE_INFO_STRUCT(void)
??1REG_VALUE_INFO_STRUCT@@QAE@XZ
; public: __thiscall RITER_DL::~RITER_DL(void)
??1RITER_DL@@QAE@XZ
; public: __thiscall SLIST::~SLIST(void)
??1SLIST@@QAE@XZ
; public: __thiscall SLIST_OF_DIR_BLOCK::~SLIST_OF_DIR_BLOCK(void)
??1SLIST_OF_DIR_BLOCK@@QAE@XZ
; public: __thiscall SLIST_OF_NLS_STR::~SLIST_OF_NLS_STR(void)
??1SLIST_OF_NLS_STR@@QAE@XZ
; public: __thiscall STRLIST::~STRLIST(void)
??1STRLIST@@QAE@XZ
; public: __thiscall TCHAR_STR::~TCHAR_STR(void)
??1TCHAR_STR@@QAE@XZ
; public: __thiscall TREE::~TREE(void)
??1TREE@@QAE@XZ
; public: __thiscall UATOM::~UATOM(void)
??1UATOM@@QAE@XZ
; public: __thiscall UATOM_LINKAGE::~UATOM_LINKAGE(void)
??1UATOM_LINKAGE@@QAE@XZ
; private: __thiscall UATOM_MANAGER::~UATOM_MANAGER(void)
??1UATOM_MANAGER@@AAE@XZ
; public: __thiscall UATOM_REGION::~UATOM_REGION(void)
??1UATOM_REGION@@QAE@XZ
; public: virtual __thiscall W32_DIR_BLOCK::~W32_DIR_BLOCK(void)
??1W32_DIR_BLOCK@@UAE@XZ
; public: virtual __thiscall W32_FS_ENUM::~W32_FS_ENUM(void)
??1W32_FS_ENUM@@UAE@XZ
; public: __thiscall WCHAR_STRING::~WCHAR_STRING(void)
??1WCHAR_STRING@@QAE@XZ
; public: static void * __stdcall ALLOC_BASE::operator new(unsigned int)
??2ALLOC_BASE@@SGPAXI@Z
; public: static void * __stdcall ALLOC_BASE::operator new(unsigned int,void *)
??2ALLOC_BASE@@SGPAXIPAX@Z
; public: static void __stdcall ALLOC_BASE::operator delete(void *)
??3ALLOC_BASE@@SGXPAX@Z
; public: class ALIAS_STR const & __thiscall ALIAS_STR::operator=(class NLS_STR const &)
??4ALIAS_STR@@QAEABV0@ABVNLS_STR@@@Z
; public: class ALIAS_STR const & __thiscall ALIAS_STR::operator=(unsigned short const *)
??4ALIAS_STR@@QAEABV0@PBG@Z
; public: class ALLOC_STR & __thiscall ALLOC_STR::operator=(unsigned short const *)
??4ALLOC_STR@@QAEAAV0@PBG@Z
; public: class BITFIELD & __thiscall BITFIELD::operator=(class BITFIELD const &)
??4BITFIELD@@QAEAAV0@ABV0@@Z
; public: class BITFIELD & __thiscall BITFIELD::operator=(unsigned short)
??4BITFIELD@@QAEAAV0@G@Z
; public: class BITFIELD & __thiscall BITFIELD::operator=(unsigned long)
??4BITFIELD@@QAEAAV0@K@Z
; public: class ISTR & __thiscall ISTR::operator=(class ISTR const &)
??4ISTR@@QAEAAV0@ABV0@@Z
; public: class NLS_STR & __thiscall NLS_STR::operator=(class NLS_STR const &)
??4NLS_STR@@QAEAAV0@ABV0@@Z
; public: class NLS_STR & __thiscall NLS_STR::operator=(unsigned short const *)
??4NLS_STR@@QAEAAV0@PBG@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(char)
??6DBGSTREAM@@QAEAAV0@D@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(short)
??6DBGSTREAM@@QAEAAV0@F@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(unsigned short)
??6DBGSTREAM@@QAEAAV0@G@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(int)
??6DBGSTREAM@@QAEAAV0@H@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(unsigned int)
??6DBGSTREAM@@QAEAAV0@I@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(long)
??6DBGSTREAM@@QAEAAV0@J@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(unsigned long)
??6DBGSTREAM@@QAEAAV0@K@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(char const *)
??6DBGSTREAM@@QAEAAV0@PBD@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(unsigned short const *)
??6DBGSTREAM@@QAEAAV0@PBG@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(enum DBGSTR_SPECIAL)
??6DBGSTREAM@@QAEAAV0@W4DBGSTR_SPECIAL@@@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(__int64)
??6DBGSTREAM@@QAEAAV0@_J@Z
; public: class DBGSTREAM & __thiscall DBGSTREAM::operator<<(unsigned __int64)
??6DBGSTREAM@@QAEAAV0@_K@Z
; public: int __thiscall BASE::operator!(void)const 
??7BASE@@QBEHXZ
; public: int __thiscall BITFIELD::operator==(class BITFIELD &)
??8BITFIELD@@QAEHAAV0@@Z
; public: int __thiscall BITFIELD::operator==(unsigned short)const 
??8BITFIELD@@QBEHG@Z
; public: int __thiscall BITFIELD::operator==(unsigned long)const 
??8BITFIELD@@QBEHK@Z
; public: int __thiscall ISTR::operator==(class ISTR const &)const 
??8ISTR@@QBEHABV0@@Z
; public: int __thiscall NLS_STR::operator==(class NLS_STR const &)const 
??8NLS_STR@@QBEHABV0@@Z
; public: int __thiscall NLS_STR::operator!=(class NLS_STR const &)const 
??9NLS_STR@@QBEHABV0@@Z
; public: __thiscall BITFIELD::operator unsigned short(void)
??BBITFIELD@@QAEGXZ
; public: __thiscall BITFIELD::operator unsigned long(void)
??BBITFIELD@@QAEKXZ
; public: __thiscall NLS_STR::operator unsigned short const *(void)const 
??BNLS_STR@@QBEPBGXZ
; public: __thiscall REG_KEY::operator struct HKEY__ *(void)const 
??BREG_KEY@@QBEPAUHKEY__@@XZ
; public: __thiscall TCHAR_STR::operator class ALIAS_STR const &(void)
??BTCHAR_STR@@QAEABVALIAS_STR@@XZ
; public: class ISTR & __thiscall ISTR::operator++(void)
??EISTR@@QAEAAV0@XZ
; public: int __thiscall ISTR::operator-(class ISTR const &)const 
??GISTR@@QBEHABV0@@Z
; public: int __thiscall BITFIELD::operator&(class BITFIELD const &)
??IBITFIELD@@QAEHABV0@@Z
; public: int __thiscall ISTR::operator<(class ISTR const &)const 
??MISTR@@QBEHABV0@@Z
; public: int __thiscall ISTR::operator>(class ISTR const &)const 
??OISTR@@QBEHABV0@@Z
; public: class NLS_STR * __thiscall ITER_SL_NLS_STR::operator()(void)
??RITER_SL_NLS_STR@@QAEPAVNLS_STR@@XZ
; public: void __thiscall ISTR::operator+=(int)
??YISTR@@QAEXH@Z
; public: class NLS_STR & __thiscall NLS_STR::operator+=(class NLS_STR const &)
??YNLS_STR@@QAEAAV0@ABV0@@Z
; public: void __thiscall BITFIELD::operator&=(class BITFIELD const &)
??_4BITFIELD@@QAEXABV0@@Z
; public: void __thiscall BITFIELD::operator&=(unsigned short)
??_4BITFIELD@@QAEXG@Z
; public: void __thiscall BITFIELD::operator&=(unsigned long)
??_4BITFIELD@@QAEXK@Z
; public: void __thiscall BITFIELD::operator|=(class BITFIELD const &)
??_5BITFIELD@@QAEXABV0@@Z
; public: void __thiscall BITFIELD::operator|=(unsigned short)
??_5BITFIELD@@QAEXG@Z
; public: void __thiscall BITFIELD::operator|=(unsigned long)
??_5BITFIELD@@QAEXK@Z
; void __stdcall `vector constructor iterator'(void *,unsigned int,int,void * (__thiscall*)(void *))
??_H@YGXPAXIHP6EPAX0@Z@Z
; void __stdcall `vector destructor iterator'(void *,unsigned int,int,void (__thiscall*)(void *))
??_I@YGXPAXIHP6EX0@Z@Z
; void __stdcall `vector vbase constructor iterator'(void *,unsigned int,int,void * (__thiscall*)(void *))
??_J@YGXPAXIHP6EPAX0@Z@Z
; public: long __thiscall DLIST::Add(void *)
?Add@DLIST@@QAEJPAX@Z
; public: long __thiscall SLIST::Add(void *)
?Add@SLIST@@QAEJPAX@Z
; public: long __thiscall SLIST_OF_DIR_BLOCK::Add(class DIR_BLOCK const *)
?Add@SLIST_OF_DIR_BLOCK@@QAEJPBVDIR_BLOCK@@@Z
; public: long __thiscall SLIST_OF_NLS_STR::Add(class NLS_STR const *)
?Add@SLIST_OF_NLS_STR@@QAEJPBVNLS_STR@@@Z
; private: int __thiscall NLS_STR::Alloc(unsigned int)
?Alloc@NLS_STR@@AAEHI@Z
; public: unsigned char * __thiscall ONE_SHOT_HEAP::Alloc(unsigned int)
?Alloc@ONE_SHOT_HEAP@@QAEPAEI@Z
; protected: long __thiscall BITFIELD::AllocBitfield(unsigned int)
?AllocBitfield@BITFIELD@@IAEJI@Z
; public: long __thiscall DLIST::Append(void *)
?Append@DLIST@@QAEJPAX@Z
; public: long __thiscall NLS_STR::Append(class NLS_STR const &)
?Append@NLS_STR@@QAEJABV1@@Z
; public: long __thiscall SLIST::Append(void *)
?Append@SLIST@@QAEJPAX@Z
; public: long __thiscall SLIST_OF_NLS_STR::Append(class NLS_STR const *)
?Append@SLIST_OF_NLS_STR@@QAEJPBVNLS_STR@@@Z
; public: long __thiscall NLS_STR::AppendChar(unsigned short)
?AppendChar@NLS_STR@@QAEJG@Z
; public: class TREE * __thiscall TREE::BreakOut(void)
?BreakOut@TREE@@QAEPAV1@XZ
; protected: void __thiscall DLIST::BumpIters(class DL_NODE *)
?BumpIters@DLIST@@IAEXPAVDL_NODE@@@Z
; protected: void __thiscall SLIST::BumpIters(class SL_NODE *)
?BumpIters@SLIST@@IAEXPAVSL_NODE@@@Z
; private: void __thiscall NLS_STR::CheckIstr(class ISTR const &)const 
?CheckIstr@NLS_STR@@ABEXABVISTR@@@Z
; protected: int __thiscall DLIST::CheckIter(class ITER_L *)
?CheckIter@DLIST@@IAEHPAVITER_L@@@Z
; protected: int __thiscall SLIST::CheckIter(class ITER_SL *)
?CheckIter@SLIST@@IAEHPAVITER_SL@@@Z
; long __stdcall CheckLocalComm(unsigned short const *)
?CheckLocalComm@@YGJPBG@Z
; long __stdcall CheckLocalDrive(unsigned short const *)
?CheckLocalDrive@@YGJPBG@Z
; long __stdcall CheckLocalLpt(unsigned short const *)
?CheckLocalLpt@@YGJPBG@Z
; long __stdcall CheckUnavailDevice(unsigned short const *,unsigned short *,int *)
?CheckUnavailDevice@@YGJPBGPAGPAH@Z
; public: void __thiscall SLIST_OF_DIR_BLOCK::Clear(void)
?Clear@SLIST_OF_DIR_BLOCK@@QAEXXZ
; public: void __thiscall SLIST_OF_NLS_STR::Clear(void)
?Clear@SLIST_OF_NLS_STR@@QAEXXZ
; private: long __thiscall REG_KEY::Close(void)
?Close@REG_KEY@@AAEJXZ
; private: unsigned long __thiscall FMX::Command(unsigned int,unsigned int,long)const 
?Command@FMX@@ABEKIIJ@Z
; public: int __cdecl NLS_STR::Compare(class NLS_STR const *)const 
?Compare@NLS_STR@@QBAHPBV1@@Z
; public: int __thiscall LOGON_HOURS_SETTING::ConvertFromGMT(void)
?ConvertFromGMT@LOGON_HOURS_SETTING@@QAEHXZ
; public: int __thiscall LOGON_HOURS_SETTING::ConvertToGMT(void)
?ConvertToGMT@LOGON_HOURS_SETTING@@QAEHXZ
; public: long __thiscall LOGON_HOURS_SETTING::ConvertToHoursPerWeek(void)
?ConvertToHoursPerWeek@LOGON_HOURS_SETTING@@QAEJXZ
; public: long __thiscall NLS_STR::CopyFrom(class NLS_STR const &)
?CopyFrom@NLS_STR@@QAEJABV1@@Z
; public: long __thiscall NLS_STR::CopyFrom(unsigned short const *,unsigned int)
?CopyFrom@NLS_STR@@QAEJPBGI@Z
; public: long __thiscall NLS_STR::CopyTo(unsigned short *,unsigned int)const 
?CopyTo@NLS_STR@@QBEJPAGI@Z
; private: long __thiscall REG_KEY::CreateChild(class REG_KEY *,class NLS_STR const &,class REG_KEY_CREATE_STRUCT *)const 
?CreateChild@REG_KEY@@ABEJPAV1@ABVNLS_STR@@PAVREG_KEY_CREATE_STRUCT@@@Z
; protected: virtual class DIR_BLOCK * __thiscall W32_FS_ENUM::CreateDirBlock(void)
?CreateDirBlock@W32_FS_ENUM@@MAEPAVDIR_BLOCK@@XZ
; private: void __thiscall STRLIST::CreateList(unsigned short const *,unsigned short const *)
?CreateList@STRLIST@@AAEXPBG0@Z
; private: void __thiscall NLS_STR::DelSubStr(class ISTR &,unsigned int)
?DelSubStr@NLS_STR@@AAEXAAVISTR@@I@Z
; public: void __thiscall NLS_STR::DelSubStr(class ISTR &)
?DelSubStr@NLS_STR@@QAEXAAVISTR@@@Z
; public: void __thiscall NLS_STR::DelSubStr(class ISTR &,class ISTR const &)
?DelSubStr@NLS_STR@@QAEXAAVISTR@@ABV2@@Z
; public: long __thiscall REG_KEY::Delete(void)
?Delete@REG_KEY@@QAEJXZ
; public: long __thiscall REG_KEY::DeleteValue(class NLS_STR const &)
?DeleteValue@REG_KEY@@QAEJABVNLS_STR@@@Z
; protected: void __thiscall DLIST::Deregister(class ITER_L *)
?Deregister@DLIST@@IAEXPAVITER_L@@@Z
; protected: void __thiscall SLIST::Deregister(class ITER_SL *)
?Deregister@SLIST@@IAEXPAVITER_SL@@@Z
; public: int __thiscall DIR_BLOCK::DoBreadthFirstDirs(void)const 
?DoBreadthFirstDirs@DIR_BLOCK@@QBEHXZ
; public: virtual void __thiscall OUTPUT_TO_AUX::EndOfLine(void)
?EndOfLine@OUTPUT_TO_AUX@@UAEXXZ
; private: virtual void __thiscall OUTPUT_TO_NUL::EndOfLine(void)
?EndOfLine@OUTPUT_TO_NUL@@EAEXXZ
; public: virtual void __thiscall OUTPUT_TO_STDERR::EndOfLine(void)
?EndOfLine@OUTPUT_TO_STDERR@@UAEXXZ
; public: virtual void __thiscall OUTPUT_TO_STDOUT::EndOfLine(void)
?EndOfLine@OUTPUT_TO_STDOUT@@UAEXXZ
; public: void __thiscall BUFFER::FillOut(void)
?FillOut@BUFFER@@QAEXXZ
; protected: virtual long __thiscall W32_FS_ENUM::FindFirst(class DIR_BLOCK *,class NLS_STR const &,unsigned int)
?FindFirst@W32_FS_ENUM@@MAEJPAVDIR_BLOCK@@ABVNLS_STR@@I@Z
; protected: virtual long __thiscall W32_FS_ENUM::FindNext(class DIR_BLOCK *,unsigned int)
?FindNext@W32_FS_ENUM@@MAEJPAVDIR_BLOCK@@I@Z
; protected: class SL_NODE * __thiscall SLIST::FindPrev(class SL_NODE *)
?FindPrev@SLIST@@IAEPAVSL_NODE@@PAV2@@Z
; public: long __thiscall REG_KEY::Flush(void)
?Flush@REG_KEY@@QAEJXZ
; public: class UATOM * __thiscall UATOM_LINKAGE::Fwd(void)
?Fwd@UATOM_LINKAGE@@QAEPAVUATOM@@XZ
; private: long __thiscall BUFFER::GetNewStorage(unsigned int)
?GetNewStorage@BUFFER@@AAEJI@Z
; long __stdcall GetSelItem(struct HWND__ *,unsigned int,class NLS_STR *,int *)
?GetSelItem@@YGJPAUHWND__@@IPAVNLS_STR@@PAH@Z
; long __stdcall GetSelItem(struct HWND__ *,class NLS_STR *,int,int *)
?GetSelItem@@YGJPAUHWND__@@PAVNLS_STR@@HPAH@Z
; private: static int __stdcall REG_KEY::HandlePrefix(class NLS_STR const &,struct HKEY__ * *,class NLS_STR *,class NLS_STR *)
?HandlePrefix@REG_KEY@@CGHABVNLS_STR@@PAPAUHKEY__@@PAV2@2@Z
; public: int __thiscall DIR_BLOCK::HasFindFirstBeenCalled(void)
?HasFindFirstBeenCalled@DIR_BLOCK@@QAEHXZ
; void __stdcall HeapResidueIter(unsigned int,int)
?HeapResidueIter@@YGXIH@Z
; protected: long __thiscall HEAP_BASE::I_AddItem(void *)
?I_AddItem@HEAP_BASE@@IAEJPAX@Z
; protected: void * __thiscall HEAP_BASE::I_RemoveTopItem(void)
?I_RemoveTopItem@HEAP_BASE@@IAEPAXXZ
; protected: void __thiscall NLS_STR::IncVers(void)
?IncVers@NLS_STR@@IAEXXZ
; public: static void __stdcall NUM_NLS_STR::Init(void)
?Init@NUM_NLS_STR@@SGXXZ
; public: void __thiscall UATOM_LINKAGE::Init(void)
?Init@UATOM_LINKAGE@@QAEXXZ
; public: static long __stdcall UATOM_MANAGER::Initialize(void)
?Initialize@UATOM_MANAGER@@SGJXZ
; protected: void __thiscall NLS_STR::InitializeVers(void)
?InitializeVers@NLS_STR@@IAEXXZ
; public: long __thiscall DLIST::Insert(void *,class ITER_DL &)
?Insert@DLIST@@QAEJPAXAAVITER_DL@@@Z
; public: long __thiscall DLIST::Insert(void *,class RITER_DL &)
?Insert@DLIST@@QAEJPAXAAVRITER_DL@@@Z
; public: long __thiscall SLIST::Insert(void *,class ITER_SL &)
?Insert@SLIST@@QAEJPAXAAVITER_SL@@@Z
; public: long __cdecl NLS_STR::InsertParams(unsigned int,class NLS_STR const *,...)
?InsertParams@NLS_STR@@QAAJIPBV1@ZZ
; public: long __thiscall NLS_STR::InsertParams(class NLS_STR const &,class NLS_STR const &,class NLS_STR const &)
?InsertParams@NLS_STR@@QAEJABV1@00@Z
; public: long __thiscall NLS_STR::InsertParams(class NLS_STR const * *)
?InsertParams@NLS_STR@@QAEJPAPBV1@@Z
; private: long __thiscall NLS_STR::InsertParamsAux(class NLS_STR const * *,unsigned int,int,unsigned int *)
?InsertParamsAux@NLS_STR@@AAEJPAPBV1@IHPAI@Z
; public: int __thiscall NLS_STR::InsertStr(class NLS_STR const &,class ISTR &)
?InsertStr@NLS_STR@@QAEHABV1@AAVISTR@@@Z
; public: int __thiscall INTL_PROFILE::Is24Hour(void)const 
?Is24Hour@INTL_PROFILE@@QBEHXZ
; protected: int __thiscall BITFIELD::IsAllocated(void)const 
?IsAllocated@BITFIELD@@IBEHXZ
; public: int __thiscall BITFIELD::IsBitSet(unsigned int)const 
?IsBitSet@BITFIELD@@QBEHI@Z
; public: int __thiscall INTL_PROFILE::IsDayLZero(void)const 
?IsDayLZero@INTL_PROFILE@@QBEHXZ
; public: int __thiscall DIR_BLOCK::IsDir(void)
?IsDir@DIR_BLOCK@@QAEHXZ
; public: int __thiscall FMX::IsHeterogeneousSelection(int *)
?IsHeterogeneousSelection@FMX@@QAEHPAH@Z
; public: int __thiscall INTL_PROFILE::IsHourLZero(void)const 
?IsHourLZero@INTL_PROFILE@@QBEHXZ
; public: int __thiscall LOGON_HOURS_SETTING::IsIdenticalToBits(unsigned char const *,unsigned int)const 
?IsIdenticalToBits@LOGON_HOURS_SETTING@@QBEHPBEI@Z
; public: int __thiscall ISTR::IsLastPos(void)const 
?IsLastPos@ISTR@@QBEHXZ
; public: int __thiscall SLIST_OF_NLS_STR::IsMember(class NLS_STR const &)
?IsMember@SLIST_OF_NLS_STR@@QAEHABVNLS_STR@@@Z
; public: int __thiscall INTL_PROFILE::IsMonthLZero(void)const 
?IsMonthLZero@INTL_PROFILE@@QBEHXZ
; public: int __thiscall NLS_STR::IsOwnerAlloc(void)const 
?IsOwnerAlloc@NLS_STR@@QBEHXZ
; public: int __thiscall INTL_PROFILE::IsTimePrefix(void)const 
?IsTimePrefix@INTL_PROFILE@@QBEHXZ
; public: int __thiscall INTL_PROFILE::IsYrCentury(void)const 
?IsYrCentury@INTL_PROFILE@@QBEHXZ
; public: void __thiscall TREE::JoinSiblingLeft(class TREE *)
?JoinSiblingLeft@TREE@@QAEXPAV1@@Z
; public: void __thiscall TREE::JoinSiblingRight(class TREE *)
?JoinSiblingRight@TREE@@QAEXPAV1@@Z
; public: void __thiscall TREE::JoinSubtreeLeft(class TREE *)
?JoinSubtreeLeft@TREE@@QAEXPAV1@@Z
; public: void __thiscall TREE::JoinSubtreeRight(class TREE *)
?JoinSubtreeRight@TREE@@QAEXPAV1@@Z
; private: unsigned short const * __thiscall REG_KEY::LeafKeyName(void)const 
?LeafKeyName@REG_KEY@@ABEPBGXZ
; public: void __thiscall UATOM_LINKAGE::Link(class UATOM_LINKAGE *)
?Link@UATOM_LINKAGE@@QAEXPAV1@@Z
; public: long __thiscall NLS_STR::Load(long,struct HINSTANCE__ *)
?Load@NLS_STR@@QAEJJPAUHINSTANCE__@@@Z
; public: long __thiscall NLS_STR::LoadSystem(long)
?LoadSystem@NLS_STR@@QAEJJ@Z
; public: long __thiscall LOGON_HOURS_SETTING::MakeDefault(void)
?MakeDefault@LOGON_HOURS_SETTING@@QAEJXZ
; public: long __thiscall NLS_STR::MapCopyFrom(char const *,unsigned int)
?MapCopyFrom@NLS_STR@@QAEJPBDI@Z
; public: long __thiscall NLS_STR::MapCopyFrom(unsigned short const *,unsigned int)
?MapCopyFrom@NLS_STR@@QAEJPBGI@Z
; public: long __thiscall NLS_STR::MapCopyTo(char *,unsigned int)const 
?MapCopyTo@NLS_STR@@QBEJPADI@Z
; public: long __thiscall NLS_STR::MapCopyTo(unsigned short *,unsigned int)const 
?MapCopyTo@NLS_STR@@QBEJPAGI@Z
; public: static long __stdcall ERRMAP::MapNTStatus(long,int *,long)
?MapNTStatus@ERRMAP@@SGJJPAHJ@Z
; private: long __thiscall REG_KEY::NameChild(class REG_KEY *,class NLS_STR const &)const 
?NameChild@REG_KEY@@ABEJPAV1@ABVNLS_STR@@@Z
; public: void * __thiscall DFSITER_TREE::Next(void)
?Next@DFSITER_TREE@@QAEPAXXZ
; public: int __thiscall FS_ENUM::Next(void)
?Next@FS_ENUM@@QAEHXZ
; public: void * __thiscall ITER_SL::Next(void)
?Next@ITER_SL@@QAEPAXXZ
; public: class DIR_BLOCK * __thiscall ITER_SL_DIR_BLOCK::Next(void)
?Next@ITER_SL_DIR_BLOCK@@QAEPAVDIR_BLOCK@@XZ
; public: class NLS_STR * __thiscall ITER_SL_NLS_STR::Next(void)
?Next@ITER_SL_NLS_STR@@QAEPAVNLS_STR@@XZ
; protected: int __thiscall FS_ENUM::NextBreadthFirst(void)
?NextBreadthFirst@FS_ENUM@@IAEHXZ
; protected: int __thiscall FS_ENUM::NextDepthFirst(void)
?NextDepthFirst@FS_ENUM@@IAEHXZ
; public: long __thiscall WIN_TIME::Normalize(void)
?Normalize@WIN_TIME@@QAEJXZ
; public: void __thiscall BITFIELD::Not(void)
?Not@BITFIELD@@QAEXXZ
; private: long __thiscall REG_KEY::OpenByName(class NLS_STR const &,unsigned long)
?OpenByName@REG_KEY@@AAEJABVNLS_STR@@K@Z
; private: long __thiscall REG_KEY::OpenChild(class REG_KEY *,class NLS_STR const &,unsigned long,unsigned long)
?OpenChild@REG_KEY@@AAEJPAV1@ABVNLS_STR@@KK@Z
; private: class REG_KEY * __thiscall REG_KEY::OpenParent(unsigned long)
?OpenParent@REG_KEY@@AAEPAV1@K@Z
; private: long __thiscall REG_KEY::ParentName(class NLS_STR *)const 
?ParentName@REG_KEY@@ABEJPAVNLS_STR@@@Z
; protected: void * __thiscall HEAP_BASE::PeekItem(int)const 
?PeekItem@HEAP_BASE@@IBEPAXH@Z
; public: long __thiscall LOGON_HOURS_SETTING::PermitAll(void)
?PermitAll@LOGON_HOURS_SETTING@@QAEJXZ
; protected: long __thiscall FS_ENUM::PopDir(void)
?PopDir@FS_ENUM@@IAEJXZ
; protected: long __thiscall FS_ENUM::PushDir(unsigned short const *)
?PushDir@FS_ENUM@@IAEJPBG@Z
; public: long __thiscall INTL_PROFILE::QueryAMStr(class NLS_STR *)const 
?QueryAMStr@INTL_PROFILE@@QBEJPAVNLS_STR@@@Z
; private: unsigned int __thiscall BUFFER::QueryActualSize(void)
?QueryActualSize@BUFFER@@AAEIXZ
; public: unsigned int __thiscall BITFIELD::QueryAllocSize(void)const 
?QueryAllocSize@BITFIELD@@QBEIXZ
; public: unsigned int __thiscall NLS_STR::QueryAllocSize(void)const 
?QueryAllocSize@NLS_STR@@QBEIXZ
; public: unsigned int __thiscall NLS_STR::QueryAnsiTextLength(void)const 
?QueryAnsiTextLength@NLS_STR@@QBEIXZ
; public: virtual unsigned int __thiscall W32_DIR_BLOCK::QueryAttr(void)
?QueryAttr@W32_DIR_BLOCK@@UAEIXZ
; protected: unsigned char * __thiscall BITFIELD::QueryBitPos(unsigned int,unsigned int)const 
?QueryBitPos@BITFIELD@@IBEPAEII@Z
; public: int __thiscall STRLIST::QueryBufferSize(unsigned short *)
?QueryBufferSize@STRLIST@@QAEHPAG@Z
; private: static unsigned int __stdcall LOGON_HOURS_SETTING::QueryByteCount(unsigned int)
?QueryByteCount@LOGON_HOURS_SETTING@@CGII@Z
; public: unsigned int __thiscall LOGON_HOURS_SETTING::QueryByteCount(void)const 
?QueryByteCount@LOGON_HOURS_SETTING@@QBEIXZ
; public: unsigned short __thiscall NLS_STR::QueryChar(class ISTR const &)const 
?QueryChar@NLS_STR@@QBEGABVISTR@@@Z
; public: unsigned int __thiscall BITFIELD::QueryCount(void)const 
?QueryCount@BITFIELD@@QBEIXZ
; protected: unsigned int __thiscall DFSITER_TREE::QueryCurDepth(void)const 
?QueryCurDepth@DFSITER_TREE@@IBEIXZ
; public: static class DBGSTREAM & __stdcall DBGSTREAM::QueryCurrent(void)
?QueryCurrent@DBGSTREAM@@SGAAV1@XZ
; public: unsigned int __thiscall FS_ENUM::QueryCurrentDepth(void)
?QueryCurrentDepth@FS_ENUM@@QAEIXZ
; public: class DIR_BLOCK * __thiscall FS_ENUM::QueryCurrentDirBlock(void)const 
?QueryCurrentDirBlock@FS_ENUM@@QBEPAVDIR_BLOCK@@XZ
; unsigned long __stdcall QueryCurrentTimeStamp(void)
?QueryCurrentTimeStamp@@YGKXZ
; public: static class REG_KEY * __stdcall REG_KEY::QueryCurrentUser(unsigned long)
?QueryCurrentUser@REG_KEY@@SGPAV1@K@Z
; public: char const * __thiscall CHAR_STRING::QueryData(void)const 
?QueryData@CHAR_STRING@@QBEPBDXZ
; public: unsigned short const * __thiscall WCHAR_STRING::QueryData(void)const 
?QueryData@WCHAR_STRING@@QBEPBGXZ
; public: long __thiscall INTL_PROFILE::QueryDateSeparator(class NLS_STR *)const 
?QueryDateSeparator@INTL_PROFILE@@QBEJPAVNLS_STR@@@Z
; public: int __thiscall WIN_TIME::QueryDay(void)const 
?QueryDay@WIN_TIME@@QBEHXZ
; public: int __thiscall WIN_TIME::QueryDayOfWeek(void)const 
?QueryDayOfWeek@WIN_TIME@@QBEHXZ
; public: int __thiscall INTL_PROFILE::QueryDayPos(void)const 
?QueryDayPos@INTL_PROFILE@@QBEHXZ
; public: class STRLIST * __thiscall DIR_BLOCK::QueryDirs(void)
?QueryDirs@DIR_BLOCK@@QAEPAVSTRLIST@@XZ
; public: class ITER_STRLIST * __thiscall DIR_BLOCK::QueryDirsIter(void)
?QueryDirsIter@DIR_BLOCK@@QAEPAVITER_STRLIST@@XZ
; public: long __thiscall FMX::QueryDriveInfo(struct _FMS_GETDRIVEINFOW *)
?QueryDriveInfo@FMX@@QAEJPAU_FMS_GETDRIVEINFOW@@@Z
; public: long __thiscall INTL_PROFILE::QueryDurationStr(int,int,int,int,class NLS_STR *)const 
?QueryDurationStr@INTL_PROFILE@@QBEJHHHHPAVNLS_STR@@@Z
; public: long __thiscall BASE::QueryError(void)const 
?QueryError@BASE@@QBEJXZ
; public: long __thiscall FORWARDING_BASE::QueryError(void)const 
?QueryError@FORWARDING_BASE@@QBEJXZ
; public: long __thiscall HUATOM::QueryError(void)const 
?QueryError@HUATOM@@QBEJXZ
; public: virtual unsigned short const * __thiscall W32_DIR_BLOCK::QueryFileName(void)
?QueryFileName@W32_DIR_BLOCK@@UAEPBGXZ
; public: long __thiscall WIN_TIME::QueryFileTime(struct _FILETIME *)const 
?QueryFileTime@WIN_TIME@@QBEJPAU_FILETIME@@@Z
; public: long __thiscall WIN_TIME::QueryFileTimeLocal(struct _FILETIME *)const 
?QueryFileTimeLocal@WIN_TIME@@QBEJPAU_FILETIME@@@Z
; public: class TREE * __thiscall TREE::QueryFirstSubtree(void)const 
?QueryFirstSubtree@TREE@@QBEPAV1@XZ
; public: unsigned int __thiscall FMX::QueryFocus(void)const 
?QueryFocus@FMX@@QBEIXZ
; public: int __thiscall WIN_TIME::QueryHour(void)const 
?QueryHour@WIN_TIME@@QBEHXZ
; public: int __thiscall LOGON_HOURS_SETTING::QueryHourInDay(unsigned int,unsigned int)const 
?QueryHourInDay@LOGON_HOURS_SETTING@@QBEHII@Z
; public: int __thiscall LOGON_HOURS_SETTING::QueryHourInWeek(unsigned int)const 
?QueryHourInWeek@LOGON_HOURS_SETTING@@QBEHI@Z
; public: unsigned char * __thiscall LOGON_HOURS_SETTING::QueryHoursBlock(void)const 
?QueryHoursBlock@LOGON_HOURS_SETTING@@QBEPAEXZ
; private: int __thiscall ISTR::QueryIch(void)const 
?QueryIch@ISTR@@ABEHXZ
; public: long __thiscall REG_KEY::QueryInfo(class REG_KEY_INFO_STRUCT *)
?QueryInfo@REG_KEY@@QAEJPAVREG_KEY_INFO_STRUCT@@@Z
; public: long __thiscall REG_KEY::QueryKeyName(class NLS_STR *)const 
?QueryKeyName@REG_KEY@@QBEJPAVNLS_STR@@@Z
; private: long __thiscall REG_KEY::QueryKeyValueBinary(unsigned short const *,unsigned char * *,long *,long,unsigned long *,unsigned long)
?QueryKeyValueBinary@REG_KEY@@AAEJPBGPAPAEPAJJPAKK@Z
; private: long __thiscall REG_KEY::QueryKeyValueLong(unsigned short const *,long *,unsigned long *)
?QueryKeyValueLong@REG_KEY@@AAEJPBGPAJPAK@Z
; private: long __thiscall REG_KEY::QueryKeyValueString(unsigned short const *,unsigned short * *,class NLS_STR *,unsigned long *,long,long *,unsigned long)
?QueryKeyValueString@REG_KEY@@AAEJPBGPAPAGPAVNLS_STR@@PAKJPAJK@Z
; public: class TREE * __thiscall TREE::QueryLastSubtree(void)const 
?QueryLastSubtree@TREE@@QBEPAV1@XZ
; public: class TREE * __thiscall TREE::QueryLeft(void)const 
?QueryLeft@TREE@@QBEPAV1@XZ
; public: int __thiscall UATOM_LINKAGE::QueryLinked(void)
?QueryLinked@UATOM_LINKAGE@@QAEHXZ
; public: static class REG_KEY * __stdcall REG_KEY::QueryLocalMachine(unsigned long)
?QueryLocalMachine@REG_KEY@@SGPAV1@K@Z
; public: long __thiscall INTL_PROFILE::QueryLongDateString(class WIN_TIME const &,class NLS_STR *)const 
?QueryLongDateString@INTL_PROFILE@@QBEJABVWIN_TIME@@PAVNLS_STR@@@Z
; protected: unsigned int __thiscall DFSITER_TREE::QueryMaxDepth(void)const 
?QueryMaxDepth@DFSITER_TREE@@IBEIXZ
; public: unsigned int __thiscall FS_ENUM::QueryMaxDepth(void)
?QueryMaxDepth@FS_ENUM@@QAEIXZ
; protected: unsigned int __thiscall BITFIELD::QueryMaxNonAllocBitCount(void)const 
?QueryMaxNonAllocBitCount@BITFIELD@@IBEIXZ
; public: int __thiscall WIN_TIME::QueryMinute(void)const 
?QueryMinute@WIN_TIME@@QBEHXZ
; public: int __thiscall WIN_TIME::QueryMonth(void)const 
?QueryMonth@WIN_TIME@@QBEHXZ
; public: int __thiscall INTL_PROFILE::QueryMonthPos(void)const 
?QueryMonthPos@INTL_PROFILE@@QBEHXZ
; public: long __thiscall FS_ENUM::QueryName(class NLS_STR *)const 
?QueryName@FS_ENUM@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall REG_KEY::QueryName(class NLS_STR *,int)const 
?QueryName@REG_KEY@@QBEJPAVNLS_STR@@H@Z
; public: class NLS_STR const * __thiscall HUATOM::QueryNls(void)const 
?QueryNls@HUATOM@@QBEPBVNLS_STR@@XZ
; protected: class TREE const * __thiscall DFSITER_TREE::QueryNode(void)const 
?QueryNode@DFSITER_TREE@@IBEPBVTREE@@XZ
; public: unsigned int __thiscall NLS_STR::QueryNumChar(void)const 
?QueryNumChar@NLS_STR@@QBEIXZ
; public: unsigned int __thiscall DLIST::QueryNumElem(void)
?QueryNumElem@DLIST@@QAEIXZ
; public: unsigned int __thiscall SLIST::QueryNumElem(void)
?QueryNumElem@SLIST@@QAEIXZ
; public: unsigned int __thiscall TREE::QueryNumElem(void)const 
?QueryNumElem@TREE@@QBEIXZ
; public: unsigned int __thiscall BITFIELD::QueryOffset(unsigned int)const 
?QueryOffset@BITFIELD@@QBEII@Z
; public: long __thiscall INTL_PROFILE::QueryPMStr(class NLS_STR *)const 
?QueryPMStr@INTL_PROFILE@@QBEJPAVNLS_STR@@@Z
; public: class TREE * __thiscall TREE::QueryParent(void)const 
?QueryParent@TREE@@QBEPAV1@XZ
; public: unsigned short const * __thiscall NLS_STR::QueryPch(class ISTR const &)const 
?QueryPch@NLS_STR@@QBEPBGABVISTR@@@Z
; public: unsigned short const * __thiscall NLS_STR::QueryPch(void)const 
?QueryPch@NLS_STR@@QBEPBGXZ
; public: void * __thiscall ITER_SL::QueryProp(void)
?QueryProp@ITER_SL@@QAEPAXXZ
; public: void * __thiscall TREE::QueryProp(void)const 
?QueryProp@TREE@@QBEPAXXZ
; public: unsigned char * __thiscall BUFFER::QueryPtr(void)const 
?QueryPtr@BUFFER@@QBEPAEXZ
; public: class TREE * __thiscall TREE::QueryRight(void)const 
?QueryRight@TREE@@QBEPAV1@XZ
; protected: unsigned int __thiscall FS_ENUM::QuerySearchAttr(void)const 
?QuerySearchAttr@FS_ENUM@@IBEIXZ
; public: int __thiscall WIN_TIME::QuerySecond(void)const 
?QuerySecond@WIN_TIME@@QBEHXZ
; public: unsigned int __thiscall FMX::QuerySelCount(void)const 
?QuerySelCount@FMX@@QBEIXZ
; public: long __thiscall FMX::QuerySelection(int,struct _FMS_GETFILESELW *,int)
?QuerySelection@FMX@@QAEJHPAU_FMS_GETFILESELW@@H@Z
; public: long __thiscall INTL_PROFILE::QueryShortDateString(class WIN_TIME const &,class NLS_STR *)const 
?QueryShortDateString@INTL_PROFILE@@QBEJABVWIN_TIME@@PAVNLS_STR@@@Z
; public: unsigned int __thiscall BUFFER::QuerySize(void)const 
?QuerySize@BUFFER@@QBEIXZ
; protected: class TREE const * __thiscall DFSITER_TREE::QueryStartNode(void)const 
?QueryStartNode@DFSITER_TREE@@IBEPBVTREE@@XZ
; private: class NLS_STR const * __thiscall ISTR::QueryString(void)const 
?QueryString@ISTR@@ABEPBVNLS_STR@@XZ
; private: class NLS_STR * __thiscall NLS_STR::QuerySubStr(class ISTR const &,unsigned int)const 
?QuerySubStr@NLS_STR@@ABEPAV1@ABVISTR@@I@Z
; public: class NLS_STR * __thiscall NLS_STR::QuerySubStr(class ISTR const &,class ISTR const &)const 
?QuerySubStr@NLS_STR@@QBEPAV1@ABVISTR@@0@Z
; public: class NLS_STR * __thiscall NLS_STR::QuerySubStr(class ISTR const &)const 
?QuerySubStr@NLS_STR@@QBEPAV1@ABVISTR@@@Z
; public: unsigned short const * __thiscall HUATOM::QueryText(void)const 
?QueryText@HUATOM@@QBEPBGXZ
; public: unsigned int __thiscall NLS_STR::QueryTextLength(void)const 
?QueryTextLength@NLS_STR@@QBEIXZ
; public: unsigned int __thiscall NLS_STR::QueryTextSize(void)const 
?QueryTextSize@NLS_STR@@QBEIXZ
; public: long __thiscall WIN_TIME::QueryTime(unsigned long *)const 
?QueryTime@WIN_TIME@@QBEJPAK@Z
; public: long __thiscall WIN_TIME::QueryTimeLocal(unsigned long *)const 
?QueryTimeLocal@WIN_TIME@@QBEJPAK@Z
; public: long __thiscall INTL_PROFILE::QueryTimeSeparator(class NLS_STR *)const 
?QueryTimeSeparator@INTL_PROFILE@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall INTL_PROFILE::QueryTimeString(class WIN_TIME const &,class NLS_STR *)const 
?QueryTimeString@INTL_PROFILE@@QBEJABVWIN_TIME@@PAVNLS_STR@@@Z
; public: unsigned int __thiscall LOGON_HOURS_SETTING::QueryUnitsPerWeek(void)const 
?QueryUnitsPerWeek@LOGON_HOURS_SETTING@@QBEIXZ
; public: long __thiscall REG_KEY::QueryValue(class REG_VALUE_INFO_STRUCT *)
?QueryValue@REG_KEY@@QAEJPAVREG_VALUE_INFO_STRUCT@@@Z
; public: long __thiscall REG_KEY::QueryValue(unsigned short const *,unsigned long *,unsigned long *)
?QueryValue@REG_KEY@@QAEJPBGPAK1@Z
; public: long __thiscall REG_KEY::QueryValue(unsigned short const *,unsigned char * *,long *,long,unsigned long *)
?QueryValue@REG_KEY@@QAEJPBGPAPAEPAJJPAK@Z
; public: long __thiscall REG_KEY::QueryValue(unsigned short const *,unsigned short * *,unsigned long,unsigned long *,int)
?QueryValue@REG_KEY@@QAEJPBGPAPAGKPAKH@Z
; public: long __thiscall REG_KEY::QueryValue(unsigned short const *,class STRLIST * *,unsigned long *)
?QueryValue@REG_KEY@@QAEJPBGPAPAVSTRLIST@@PAK@Z
; public: long __thiscall REG_KEY::QueryValue(unsigned short const *,class NLS_STR *,unsigned long,unsigned long *,int)
?QueryValue@REG_KEY@@QAEJPBGPAVNLS_STR@@KPAKH@Z
; public: int __thiscall WIN_TIME::QueryYear(void)const 
?QueryYear@WIN_TIME@@QBEHXZ
; public: int __thiscall INTL_PROFILE::QueryYearPos(void)const 
?QueryYearPos@INTL_PROFILE@@QBEHXZ
; private: int __thiscall NLS_STR::Realloc(unsigned int)
?Realloc@NLS_STR@@AAEHI@Z
; private: long __thiscall BUFFER::ReallocStorage(unsigned int)
?ReallocStorage@BUFFER@@AAEJI@Z
; public: void __thiscall FMX::Refresh(void)
?Refresh@FMX@@QAEXXZ
; public: long __thiscall INTL_PROFILE::Refresh(void)
?Refresh@INTL_PROFILE@@QAEJXZ
; protected: void __thiscall DLIST::Register(class ITER_L *)
?Register@DLIST@@IAEXPAVITER_L@@@Z
; protected: void __thiscall SLIST::Register(class ITER_SL *)
?Register@SLIST@@IAEXPAVITER_SL@@@Z
; public: void __thiscall FMX::Reload(void)
?Reload@FMX@@QAEXXZ
; public: void * __thiscall DLIST::Remove(class ITER_DL &)
?Remove@DLIST@@QAEPAXAAVITER_DL@@@Z
; public: void * __thiscall DLIST::Remove(class RITER_DL &)
?Remove@DLIST@@QAEPAXAAVRITER_DL@@@Z
; public: void * __thiscall SLIST::Remove(class ITER_SL &)
?Remove@SLIST@@QAEPAXAAVITER_SL@@@Z
; public: class DIR_BLOCK * __thiscall SLIST_OF_DIR_BLOCK::Remove(class ITER_SL_DIR_BLOCK &)
?Remove@SLIST_OF_DIR_BLOCK@@QAEPAVDIR_BLOCK@@AAVITER_SL_DIR_BLOCK@@@Z
; public: class NLS_STR * __thiscall SLIST_OF_NLS_STR::Remove(class NLS_STR &)
?Remove@SLIST_OF_NLS_STR@@QAEPAVNLS_STR@@AAV2@@Z
; public: virtual void __thiscall OUTPUT_TO_AUX::Render(unsigned short const *)
?Render@OUTPUT_TO_AUX@@UAEXPBG@Z
; public: virtual void __thiscall OUTPUT_TO_AUX::Render(unsigned short const *,unsigned int)
?Render@OUTPUT_TO_AUX@@UAEXPBGI@Z
; private: virtual void __thiscall OUTPUT_TO_NUL::Render(unsigned short const *)
?Render@OUTPUT_TO_NUL@@EAEXPBG@Z
; private: virtual void __thiscall OUTPUT_TO_NUL::Render(unsigned short const *,unsigned int)
?Render@OUTPUT_TO_NUL@@EAEXPBGI@Z
; public: virtual void __thiscall OUTPUT_TO_STDERR::Render(unsigned short const *)
?Render@OUTPUT_TO_STDERR@@UAEXPBG@Z
; public: virtual void __thiscall OUTPUT_TO_STDERR::Render(unsigned short const *,unsigned int)
?Render@OUTPUT_TO_STDERR@@UAEXPBGI@Z
; public: virtual void __thiscall OUTPUT_TO_STDOUT::Render(unsigned short const *)
?Render@OUTPUT_TO_STDOUT@@UAEXPBG@Z
; public: virtual void __thiscall OUTPUT_TO_STDOUT::Render(unsigned short const *,unsigned int)
?Render@OUTPUT_TO_STDOUT@@UAEXPBGI@Z
; private: void __thiscall NLS_STR::ReplSubStr(class NLS_STR const &,class ISTR &,unsigned int)
?ReplSubStr@NLS_STR@@AAEXABV1@AAVISTR@@I@Z
; public: void __thiscall NLS_STR::ReplSubStr(class NLS_STR const &,class ISTR &)
?ReplSubStr@NLS_STR@@QAEXABV1@AAVISTR@@@Z
; public: void __thiscall NLS_STR::ReplSubStr(class NLS_STR const &,class ISTR &,class ISTR const &)
?ReplSubStr@NLS_STR@@QAEXABV1@AAVISTR@@ABV2@@Z
; protected: void __thiscall BASE::ReportError(long)
?ReportError@BASE@@IAEXJ@Z
; protected: void __thiscall FS_ENUM::ReportLastError(long)
?ReportLastError@FS_ENUM@@IAEXJ@Z
; public: void __thiscall DFSITER_TREE::Reset(void)
?Reset@DFSITER_TREE@@QAEXXZ
; public: void __thiscall ISTR::Reset(void)
?Reset@ISTR@@QAEXXZ
; public: void __thiscall ITER_DL::Reset(void)
?Reset@ITER_DL@@QAEXXZ
; public: void __thiscall ITER_SL::Reset(void)
?Reset@ITER_SL@@QAEXXZ
; public: int __thiscall NLS_STR::Reset(void)
?Reset@NLS_STR@@QAEHXZ
; public: void __thiscall RITER_DL::Reset(void)
?Reset@RITER_DL@@QAEXXZ
; protected: void __thiscall BASE::ResetError(void)
?ResetError@BASE@@IAEXXZ
; public: long __thiscall BITFIELD::Resize(unsigned int)
?Resize@BITFIELD@@QAEJI@Z
; public: long __thiscall BUFFER::Resize(unsigned int)
?Resize@BUFFER@@QAEJI@Z
; public: long __thiscall NLS_STR::RtlOemUpcase(void)
?RtlOemUpcase@NLS_STR@@QAEJXZ
; private: long __thiscall INTL_PROFILE::ScanLongDate(class NLS_STR *)const 
?ScanLongDate@INTL_PROFILE@@ABEJPAVNLS_STR@@@Z
; public: void __thiscall DL_NODE::Set(class DL_NODE *,class DL_NODE *,void *)
?Set@DL_NODE@@QAEXPAV1@0PAX@Z
; public: long __thiscall LOGON_HOURS_SETTING::Set(class LOGON_HOURS_SETTING const &)
?Set@LOGON_HOURS_SETTING@@QAEJABV1@@Z
; public: void __thiscall SL_NODE::Set(class SL_NODE *,void *)
?Set@SL_NODE@@QAEXPAV1@PAX@Z
; public: void __thiscall BITFIELD::SetAllBits(enum BITVALUES)
?SetAllBits@BITFIELD@@QAEXW4BITVALUES@@@Z
; public: long __thiscall HEAP_BASE::SetAllocCount(int)
?SetAllocCount@HEAP_BASE@@QAEJH@Z
; public: void __thiscall BITFIELD::SetBit(unsigned int,enum BITVALUES)
?SetBit@BITFIELD@@QAEXIW4BITVALUES@@@Z
; private: void __thiscall DFSITER_TREE::SetCurDepth(unsigned int)
?SetCurDepth@DFSITER_TREE@@AAEXI@Z
; public: static void __stdcall DBGSTREAM::SetCurrent(class DBGSTREAM *)
?SetCurrent@DBGSTREAM@@SGXPAV1@@Z
; protected: void __thiscall FS_ENUM::SetCurrentDirBlock(class DIR_BLOCK *)
?SetCurrentDirBlock@FS_ENUM@@IAEXPAVDIR_BLOCK@@@Z
; public: long __thiscall WIN_TIME::SetCurrentTime(void)
?SetCurrentTime@WIN_TIME@@QAEJXZ
; public: void __thiscall DIR_BLOCK::SetDoBreadthFirstDirs(int)
?SetDoBreadthFirstDirs@DIR_BLOCK@@QAEXH@Z
; public: void __thiscall DIR_BLOCK::SetFindFirstFlag(int)
?SetFindFirstFlag@DIR_BLOCK@@QAEXH@Z
; private: void __thiscall TREE::SetFirstSubtree(class TREE *)
?SetFirstSubtree@TREE@@AAEXPAV1@@Z
; public: long __thiscall LOGON_HOURS_SETTING::SetFromBits(unsigned char const *,unsigned int)
?SetFromBits@LOGON_HOURS_SETTING@@QAEJPBEI@Z
; public: long __thiscall WIN_TIME::SetGMT(int)
?SetGMT@WIN_TIME@@QAEJH@Z
; public: long __thiscall LOGON_HOURS_SETTING::SetHourInDay(int,unsigned int,unsigned int)
?SetHourInDay@LOGON_HOURS_SETTING@@QAEJHII@Z
; public: long __thiscall LOGON_HOURS_SETTING::SetHourInWeek(int,unsigned int)
?SetHourInWeek@LOGON_HOURS_SETTING@@QAEJHI@Z
; private: void __thiscall ISTR::SetIch(int)
?SetIch@ISTR@@AAEXH@Z
; protected: void __thiscall HEAP_BASE::SetItem(int,void *)
?SetItem@HEAP_BASE@@IAEXHPAX@Z
; protected: void __thiscall DLIST::SetIters(class DL_NODE *)
?SetIters@DLIST@@IAEXPAVDL_NODE@@@Z
; protected: void __thiscall SLIST::SetIters(class SL_NODE *,class SL_NODE *)
?SetIters@SLIST@@IAEXPAVSL_NODE@@0@Z
; protected: void __thiscall SLIST::SetIters(class SL_NODE *)
?SetIters@SLIST@@IAEXPAVSL_NODE@@@Z
; private: long __thiscall REG_KEY::SetKeyValueBinary(unsigned short const *,unsigned char const *,long,unsigned long,unsigned long)
?SetKeyValueBinary@REG_KEY@@AAEJPBGPBEJKK@Z
; private: long __thiscall REG_KEY::SetKeyValueLong(unsigned short const *,long,unsigned long)
?SetKeyValueLong@REG_KEY@@AAEJPBGJK@Z
; private: long __thiscall REG_KEY::SetKeyValueString(unsigned short const *,unsigned short const *,unsigned long,long,unsigned long)
?SetKeyValueString@REG_KEY@@AAEJPBG0KJK@Z
; private: void __thiscall TREE::SetLeft(class TREE *)
?SetLeft@TREE@@AAEXPAV1@@Z
; private: void __thiscall DFSITER_TREE::SetMaxDepth(unsigned int)
?SetMaxDepth@DFSITER_TREE@@AAEXI@Z
; private: void __thiscall DFSITER_TREE::SetNode(class TREE const *)
?SetNode@DFSITER_TREE@@AAEXPBVTREE@@@Z
; private: void __thiscall TREE::SetParent(class TREE *)
?SetParent@TREE@@AAEXPAV1@@Z
; public: void __thiscall TREE::SetProp(void * const)
?SetProp@TREE@@QAEXQAX@Z
; private: void __thiscall TREE::SetRight(class TREE *)
?SetRight@TREE@@AAEXPAV1@@Z
; public: void __thiscall DBGSTREAM::SetSink(class OUTPUTSINK *)
?SetSink@DBGSTREAM@@QAEXPAVOUTPUTSINK@@@Z
; private: void __thiscall DFSITER_TREE::SetStartNode(class TREE const *)
?SetStartNode@DFSITER_TREE@@AAEXPBVTREE@@@Z
; public: long __thiscall WIN_TIME::SetTime(unsigned long)
?SetTime@WIN_TIME@@QAEJK@Z
; public: long __thiscall WIN_TIME::SetTime(struct _FILETIME)
?SetTime@WIN_TIME@@QAEJU_FILETIME@@@Z
; public: long __thiscall WIN_TIME::SetTimeLocal(unsigned long)
?SetTimeLocal@WIN_TIME@@QAEJK@Z
; public: long __thiscall WIN_TIME::SetTimeLocal(struct _FILETIME)
?SetTimeLocal@WIN_TIME@@QAEJU_FILETIME@@@Z
; public: long __thiscall REG_KEY::SetValue(class REG_VALUE_INFO_STRUCT *)
?SetValue@REG_KEY@@QAEJPAVREG_VALUE_INFO_STRUCT@@@Z
; public: long __thiscall REG_KEY::SetValue(unsigned short const *,unsigned short const *,unsigned long,unsigned long const *,int)
?SetValue@REG_KEY@@QAEJPBG0KPBKH@Z
; public: long __thiscall REG_KEY::SetValue(unsigned short const *,unsigned long,unsigned long const *)
?SetValue@REG_KEY@@QAEJPBGKPBK@Z
; public: long __thiscall REG_KEY::SetValue(unsigned short const *,unsigned char const *,long,unsigned long const *)
?SetValue@REG_KEY@@QAEJPBGPBEJPBK@Z
; public: long __thiscall REG_KEY::SetValue(unsigned short const *,class NLS_STR const *,unsigned long const *,int)
?SetValue@REG_KEY@@QAEJPBGPBVNLS_STR@@PBKH@Z
; public: long __thiscall REG_KEY::SetValue(unsigned short const *,class STRLIST const *,unsigned long const *)
?SetValue@REG_KEY@@QAEJPBGPBVSTRLIST@@PBK@Z
; protected: int __thiscall FS_ENUM::ShouldThisFileBeIncluded(unsigned int)const 
?ShouldThisFileBeIncluded@FS_ENUM@@IBEHI@Z
; public: static long __stdcall UATOM_MANAGER::Terminate(void)
?Terminate@UATOM_MANAGER@@SGJXZ
; private: class UATOM * __thiscall UATOM_MANAGER::Tokenize(unsigned short const *,int)
?Tokenize@UATOM_MANAGER@@AAEPAVUATOM@@PBGH@Z
; public: void __thiscall BUFFER::Trim(void)
?Trim@BUFFER@@QAEXXZ
; public: void __thiscall HEAP_BASE::Trim(void)
?Trim@HEAP_BASE@@QAEXXZ
; void __stdcall UIAssertCommand(char const *)
?UIAssertCommand@@YGXPBD@Z
; void __stdcall UIAssertHlp(char const *,char const *,unsigned int)
?UIAssertHlp@@YGXPBD0I@Z
; void __stdcall UIAssertHlp(char const *,unsigned int)
?UIAssertHlp@@YGXPBDI@Z
; protected: void * __thiscall DLIST::Unlink(class DL_NODE *)
?Unlink@DLIST@@IAEPAXPAVDL_NODE@@@Z
; protected: void __thiscall TREE::Unlink(void)
?Unlink@TREE@@IAEXXZ
; public: void __thiscall UATOM_LINKAGE::Unlink(void)
?Unlink@UATOM_LINKAGE@@QAEXXZ
; private: void __thiscall NLS_STR::UpdateIstr(class ISTR *)const 
?UpdateIstr@NLS_STR@@ABEXPAVISTR@@@Z
; public: int __thiscall STRLIST::WriteToBuffer(unsigned short *,int,unsigned short *)
?WriteToBuffer@STRLIST@@QAEHPAGH0@Z
; public: void __thiscall DLIST::_DebugPrint(void)const 
?_DebugPrint@DLIST@@QBEXXZ
; public: void __thiscall SLIST::_DebugPrint(void)const 
?_DebugPrint@SLIST@@QBEXXZ
; public: void __thiscall TREE::_DebugPrint(void)const 
?_DebugPrint@TREE@@QBEXXZ
; public: int __thiscall NLS_STR::_IsOwnerAlloc(void)const 
?_IsOwnerAlloc@NLS_STR@@QBEHXZ
; public: unsigned int __thiscall NLS_STR::_QueryAllocSize(void)const 
?_QueryAllocSize@NLS_STR@@QBEIXZ
; public: unsigned short const * __thiscall NLS_STR::_QueryPch(void)const 
?_QueryPch@NLS_STR@@QBEPBGXZ
; public: unsigned int __thiscall NLS_STR::_QueryTextLength(void)const 
?_QueryTextLength@NLS_STR@@QBEIXZ
; protected: void __thiscall BASE::_ReportError(long)
?_ReportError@BASE@@IAEXJ@Z
; public: int __thiscall NLS_STR::_stricmp(class NLS_STR const &)const 
?_stricmp@NLS_STR@@QBEHABV1@@Z
; public: int __thiscall NLS_STR::_stricmp(class NLS_STR const &,class ISTR const &,class ISTR const &)const 
?_stricmp@NLS_STR@@QBEHABV1@ABVISTR@@1@Z
; public: int __thiscall NLS_STR::_stricmp(class NLS_STR const &,class ISTR const &)const 
?_stricmp@NLS_STR@@QBEHABV1@ABVISTR@@@Z
; public: int __thiscall NLS_STR::_strnicmp(class NLS_STR const &,class ISTR const &,class ISTR const &,class ISTR const &)const 
?_strnicmp@NLS_STR@@QBEHABV1@ABVISTR@@11@Z
; public: int __thiscall NLS_STR::_strnicmp(class NLS_STR const &,class ISTR const &,class ISTR const &)const 
?_strnicmp@NLS_STR@@QBEHABV1@ABVISTR@@1@Z
; public: int __thiscall NLS_STR::_strnicmp(class NLS_STR const &,class ISTR const &)const 
?_strnicmp@NLS_STR@@QBEHABV1@ABVISTR@@@Z
; public: class NLS_STR & __thiscall NLS_STR::_strupr(void)
?_strupr@NLS_STR@@QAEAAV1@XZ
; public: int __thiscall NLS_STR::atoi(class ISTR const &)const 
?atoi@NLS_STR@@QBEHABVISTR@@@Z
; public: int __thiscall NLS_STR::atoi(void)const 
?atoi@NLS_STR@@QBEHXZ
; public: long __thiscall NLS_STR::atol(class ISTR const &)const 
?atol@NLS_STR@@QBEJABVISTR@@@Z
; public: long __thiscall NLS_STR::atol(void)const 
?atol@NLS_STR@@QBEJXZ
; public: unsigned long __thiscall NLS_STR::atoul(class ISTR const &)const 
?atoul@NLS_STR@@QBEKABVISTR@@@Z
; public: unsigned long __thiscall NLS_STR::atoul(void)const 
?atoul@NLS_STR@@QBEKXZ
; public: class NLS_STR & __thiscall NLS_STR::strcat(class NLS_STR const &)
?strcat@NLS_STR@@QAEAAV1@ABV1@@Z
; public: int __thiscall NLS_STR::strchr(class ISTR *,unsigned short)const 
?strchr@NLS_STR@@QBEHPAVISTR@@G@Z
; public: int __thiscall NLS_STR::strchr(class ISTR *,unsigned short,class ISTR const &)const 
?strchr@NLS_STR@@QBEHPAVISTR@@GABV2@@Z
; public: int __thiscall NLS_STR::strcmp(class NLS_STR const &)const 
?strcmp@NLS_STR@@QBEHABV1@@Z
; public: int __thiscall NLS_STR::strcmp(class NLS_STR const &,class ISTR const &,class ISTR const &)const 
?strcmp@NLS_STR@@QBEHABV1@ABVISTR@@1@Z
; public: int __thiscall NLS_STR::strcmp(class NLS_STR const &,class ISTR const &)const 
?strcmp@NLS_STR@@QBEHABV1@ABVISTR@@@Z
; unsigned short * __stdcall strcpy(unsigned short *,class NLS_STR const &)
?strcpy@@YGPAGPAGABVNLS_STR@@@Z
; public: int __thiscall NLS_STR::strcspn(class ISTR *,class NLS_STR const &)const 
?strcspn@NLS_STR@@QBEHPAVISTR@@ABV1@@Z
; public: int __thiscall NLS_STR::strcspn(class ISTR *,class NLS_STR const &,class ISTR const &)const 
?strcspn@NLS_STR@@QBEHPAVISTR@@ABV1@ABV2@@Z
; public: unsigned int __thiscall NLS_STR::strlen(void)const 
?strlen@NLS_STR@@QBEIXZ
; public: int __thiscall NLS_STR::strncmp(class NLS_STR const &,class ISTR const &,class ISTR const &,class ISTR const &)const 
?strncmp@NLS_STR@@QBEHABV1@ABVISTR@@11@Z
; public: int __thiscall NLS_STR::strncmp(class NLS_STR const &,class ISTR const &,class ISTR const &)const 
?strncmp@NLS_STR@@QBEHABV1@ABVISTR@@1@Z
; public: int __thiscall NLS_STR::strncmp(class NLS_STR const &,class ISTR const &)const 
?strncmp@NLS_STR@@QBEHABV1@ABVISTR@@@Z
; public: int __thiscall NLS_STR::strrchr(class ISTR *,unsigned short)const 
?strrchr@NLS_STR@@QBEHPAVISTR@@G@Z
; public: int __thiscall NLS_STR::strrchr(class ISTR *,unsigned short,class ISTR const &)const 
?strrchr@NLS_STR@@QBEHPAVISTR@@GABV2@@Z
; public: int __thiscall NLS_STR::strspn(class ISTR *,class NLS_STR const &)const 
?strspn@NLS_STR@@QBEHPAVISTR@@ABV1@@Z
; public: int __thiscall NLS_STR::strspn(class ISTR *,class NLS_STR const &,class ISTR const &)const 
?strspn@NLS_STR@@QBEHPAVISTR@@ABV1@ABV2@@Z
; public: int __thiscall NLS_STR::strstr(class ISTR *,class NLS_STR const &)const 
?strstr@NLS_STR@@QBEHPAVISTR@@ABV1@@Z
; public: int __thiscall NLS_STR::strstr(class ISTR *,class NLS_STR const &,class ISTR const &)const 
?strstr@NLS_STR@@QBEHPAVISTR@@ABV1@ABV2@@Z
; public: virtual void * __thiscall ITER_DL::vNext(void)
?vNext@ITER_DL@@UAEPAXXZ
; public: virtual void * __thiscall RITER_DL::vNext(void)
?vNext@RITER_DL@@UAEPAXXZ
InitCompareParam
NETUI_InitIsDBCS
NETUI_IsDBCS
NETUI_strcmp
NETUI_stricmp
NETUI_strncmp2
NETUI_strncmp
NETUI_strnicmp2
NETUI_strnicmp
QueryNocaseCompareParam
QueryStdCompareParam
QueryUserDefaultLCID
UserPreferenceQuery
UserPreferenceQueryBool
UserPreferenceSet
UserPreferenceSetBool
UserProfileEnum
UserProfileFree
UserProfileInit
UserProfileQuery
UserProfileRead
UserProfileSet
UserProfileWrite
