; 
; Exports of file IISUTIL.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY IISUTIL.dll
EXPORTS
; public: __thiscall CDataCache<struct DATETIME_FORMAT_ENTRY>::CDataCache<struct DATETIME_FORMAT_ENTRY>(void)
??0?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QAE@XZ
; public: __thiscall CDataCache<class CDateTime>::CDataCache<class CDateTime>(void)
??0?$CDataCache@VCDateTime@@@@QAE@XZ
; public: __thiscall ALLOC_CACHE_HANDLER::ALLOC_CACHE_HANDLER(char const *,struct _ALLOC_CACHE_CONFIGURATION const *,int)
??0ALLOC_CACHE_HANDLER@@QAE@PBDPBU_ALLOC_CACHE_CONFIGURATION@@H@Z
; public: __thiscall ASCLOG_DATETIME_CACHE::ASCLOG_DATETIME_CACHE(void)
??0ASCLOG_DATETIME_CACHE@@QAE@XZ
; public: __thiscall BUFFER::BUFFER(unsigned int)
??0BUFFER@@QAE@I@Z
; public: __thiscall BUFFER::BUFFER(unsigned char *,unsigned int)
??0BUFFER@@QAE@PAEI@Z
; public: __thiscall BUFFER_CHAIN::BUFFER_CHAIN(void)
??0BUFFER_CHAIN@@QAE@XZ
; public: __thiscall BUFFER_CHAIN_ITEM::BUFFER_CHAIN_ITEM(unsigned int)
??0BUFFER_CHAIN_ITEM@@QAE@I@Z
; public: __thiscall CACHED_DATETIME_FORMATS::CACHED_DATETIME_FORMATS(void)
??0CACHED_DATETIME_FORMATS@@QAE@XZ
; public: __thiscall CCritSec::CCritSec(void)
??0CCritSec@@QAE@XZ
; public: __thiscall CDFTCache::CDFTCache(void)
??0CDFTCache@@QAE@XZ
; public: __thiscall CDateTime::CDateTime(struct _FILETIME const &)
??0CDateTime@@QAE@ABU_FILETIME@@@Z
; public: __thiscall CDateTime::CDateTime(struct _FILETIME const &,struct _SYSTEMTIME const &)
??0CDateTime@@QAE@ABU_FILETIME@@ABU_SYSTEMTIME@@@Z
; public: __thiscall CDateTime::CDateTime(struct _SYSTEMTIME const &)
??0CDateTime@@QAE@ABU_SYSTEMTIME@@@Z
; public: __thiscall CDateTime::CDateTime(void)
??0CDateTime@@QAE@XZ
; public: __thiscall CDoubleList::CDoubleList(void)
??0CDoubleList@@QAE@XZ
; public: __thiscall CEtwTracer::CEtwTracer(void)
??0CEtwTracer@@QAE@XZ
; public: __thiscall CFakeLock::CFakeLock(void)
??0CFakeLock@@QAE@XZ
; public: __thiscall CHUNK_BUFFER::CHUNK_BUFFER(void)
??0CHUNK_BUFFER@@QAE@XZ
; public: __thiscall CLKRHashTable::CLKRHashTable(char const *,unsigned long const  (__stdcall*)(void const *),unsigned long (__stdcall*)(unsigned long),bool (__stdcall*)(unsigned long,unsigned long),void (__stdcall*)(void const *,int),double,unsigned long,unsigned long,bool)
??0CLKRHashTable@@QAE@PBDP6G?BKPBX@ZP6GKK@ZP6G_NKK@ZP6GX1H@ZNKK_N@Z
; public: __thiscall CLKRHashTableStats::CLKRHashTableStats(void)
??0CLKRHashTableStats@@QAE@XZ
; protected: __thiscall CLKRHashTable_Iterator::CLKRHashTable_Iterator(class CLKRHashTable *,short)
??0CLKRHashTable_Iterator@@IAE@PAVCLKRHashTable@@F@Z
; public: __thiscall CLKRHashTable_Iterator::CLKRHashTable_Iterator(class CLKRHashTable_Iterator const &)
??0CLKRHashTable_Iterator@@QAE@ABV0@@Z
; public: __thiscall CLKRHashTable_Iterator::CLKRHashTable_Iterator(void)
??0CLKRHashTable_Iterator@@QAE@XZ
; private: __thiscall CLKRLinearHashTable::CLKRLinearHashTable(char const *,unsigned long const  (__stdcall*)(void const *),unsigned long (__stdcall*)(unsigned long),bool (__stdcall*)(unsigned long,unsigned long),void (__stdcall*)(void const *,int),double,unsigned long,class CLKRHashTable *,bool)
??0CLKRLinearHashTable@@AAE@PBDP6G?BKPBX@ZP6GKK@ZP6G_NKK@ZP6GX1H@ZNKPAVCLKRHashTable@@_N@Z
; public: __thiscall CLKRLinearHashTable::CLKRLinearHashTable(char const *,unsigned long const  (__stdcall*)(void const *),unsigned long (__stdcall*)(unsigned long),bool (__stdcall*)(unsigned long,unsigned long),void (__stdcall*)(void const *,int),double,unsigned long,unsigned long,bool)
??0CLKRLinearHashTable@@QAE@PBDP6G?BKPBX@ZP6GKK@ZP6G_NKK@ZP6GX1H@ZNKK_N@Z
; protected: __thiscall CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(class CLKRLinearHashTable *,class CNodeClump *,unsigned long,short)
??0CLKRLinearHashTable_Iterator@@IAE@PAVCLKRLinearHashTable@@PAVCNodeClump@@KF@Z
; public: __thiscall CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(class CLKRLinearHashTable_Iterator const &)
??0CLKRLinearHashTable_Iterator@@QAE@ABV0@@Z
; public: __thiscall CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(void)
??0CLKRLinearHashTable_Iterator@@QAE@XZ
; public: __thiscall CLockedDoubleList::CLockedDoubleList(void)
??0CLockedDoubleList@@QAE@XZ
; public: __thiscall CLockedSingleList::CLockedSingleList(void)
??0CLockedSingleList@@QAE@XZ
; public: __thiscall CReaderWriterLock2::CReaderWriterLock2(void)
??0CReaderWriterLock2@@QAE@XZ
; public: __thiscall CReaderWriterLock3::CReaderWriterLock3(void)
??0CReaderWriterLock3@@QAE@XZ
; public: __thiscall CReaderWriterLock::CReaderWriterLock(void)
??0CReaderWriterLock@@QAE@XZ
; public: __thiscall CRtlResource::CRtlResource(void)
??0CRtlResource@@QAE@XZ
; public: __thiscall CSecurityDispenser::CSecurityDispenser(void)
??0CSecurityDispenser@@QAE@XZ
; public: __thiscall CShareLock::CShareLock(void)
??0CShareLock@@QAE@XZ
; public: __thiscall CSharelock::CSharelock(int,int)
??0CSharelock@@QAE@HH@Z
; public: __thiscall CSingleList::CSingleList(void)
??0CSingleList@@QAE@XZ
; public: __thiscall CSmallSpinLock::CSmallSpinLock(void)
??0CSmallSpinLock@@QAE@XZ
; public: __thiscall CSpinLock::CSpinLock(void)
??0CSpinLock@@QAE@XZ
; public: __thiscall EVENT_LOG::EVENT_LOG(unsigned short const *)
??0EVENT_LOG@@QAE@PBG@Z
; public: __thiscall EXTLOG_DATETIME_CACHE::EXTLOG_DATETIME_CACHE(void)
??0EXTLOG_DATETIME_CACHE@@QAE@XZ
; private: __thiscall IPM_MESSAGE_PIPE::IPM_MESSAGE_PIPE(void)
??0IPM_MESSAGE_PIPE@@AAE@XZ
; public: __thiscall MB::MB(struct IMSAdminBaseW *)
??0MB@@QAE@PAUIMSAdminBaseW@@@Z
; public: __thiscall MB_BASE_NOTIFICATION_SINK::MB_BASE_NOTIFICATION_SINK(void)
??0MB_BASE_NOTIFICATION_SINK@@QAE@XZ
; public: __thiscall MULTISZ::MULTISZ(class MULTISZ const &)
??0MULTISZ@@QAE@ABV0@@Z
; public: __thiscall MULTISZ::MULTISZ(unsigned short *,unsigned long)
??0MULTISZ@@QAE@PAGK@Z
; public: __thiscall MULTISZ::MULTISZ(unsigned short const *)
??0MULTISZ@@QAE@PBG@Z
; public: __thiscall MULTISZ::MULTISZ(void)
??0MULTISZ@@QAE@XZ
; public: __thiscall MULTISZA::MULTISZA(class MULTISZA const &)
??0MULTISZA@@QAE@ABV0@@Z
; public: __thiscall MULTISZA::MULTISZA(char *,unsigned long)
??0MULTISZA@@QAE@PADK@Z
; public: __thiscall MULTISZA::MULTISZA(char const *)
??0MULTISZA@@QAE@PBD@Z
; public: __thiscall MULTISZA::MULTISZA(void)
??0MULTISZA@@QAE@XZ
; private: __thiscall STRA::STRA(class STRA const &)
??0STRA@@AAE@ABV0@@Z
; private: __thiscall STRA::STRA(char *)
??0STRA@@AAE@PAD@Z
; private: __thiscall STRA::STRA(char const *)
??0STRA@@AAE@PBD@Z
; public: __thiscall STRA::STRA(char *,unsigned long)
??0STRA@@QAE@PADK@Z
; public: __thiscall STRA::STRA(void)
??0STRA@@QAE@XZ
; public: __thiscall STRAU::STRAU(class STRAU &)
??0STRAU@@QAE@AAV0@@Z
; public: __thiscall STRAU::STRAU(char const *)
??0STRAU@@QAE@PBD@Z
; public: __thiscall STRAU::STRAU(char const *,int)
??0STRAU@@QAE@PBDH@Z
; public: __thiscall STRAU::STRAU(unsigned short const *)
??0STRAU@@QAE@PBG@Z
; public: __thiscall STRAU::STRAU(void)
??0STRAU@@QAE@XZ
; private: __thiscall STRU::STRU(class STRU const &)
??0STRU@@AAE@ABV0@@Z
; private: __thiscall STRU::STRU(unsigned short *)
??0STRU@@AAE@PAG@Z
; private: __thiscall STRU::STRU(unsigned short const *)
??0STRU@@AAE@PBG@Z
; public: __thiscall STRU::STRU(unsigned short *,unsigned long)
??0STRU@@QAE@PAGK@Z
; public: __thiscall STRU::STRU(void)
??0STRU@@QAE@XZ
; public: __thiscall TS_RESOURCE::TS_RESOURCE(void)
??0TS_RESOURCE@@QAE@XZ
; public: __thiscall W3_DATETIME_CACHE::W3_DATETIME_CACHE(void)
??0W3_DATETIME_CACHE@@QAE@XZ
; public: __thiscall W3_TRACE_LOG::W3_TRACE_LOG(class W3_TRACE_LOG_FACTORY *)
??0W3_TRACE_LOG@@QAE@PAVW3_TRACE_LOG_FACTORY@@@Z
; private: __thiscall W3_TRACE_LOG_FACTORY::W3_TRACE_LOG_FACTORY(void)
??0W3_TRACE_LOG_FACTORY@@AAE@XZ
; public: __thiscall ALLOC_CACHE_HANDLER::~ALLOC_CACHE_HANDLER(void)
??1ALLOC_CACHE_HANDLER@@QAE@XZ
; public: virtual __thiscall ASCLOG_DATETIME_CACHE::~ASCLOG_DATETIME_CACHE(void)
??1ASCLOG_DATETIME_CACHE@@UAE@XZ
; public: __thiscall BUFFER::~BUFFER(void)
??1BUFFER@@QAE@XZ
; public: __thiscall BUFFER_CHAIN::~BUFFER_CHAIN(void)
??1BUFFER_CHAIN@@QAE@XZ
; public: __thiscall BUFFER_CHAIN_ITEM::~BUFFER_CHAIN_ITEM(void)
??1BUFFER_CHAIN_ITEM@@QAE@XZ
; public: virtual __thiscall CACHED_DATETIME_FORMATS::~CACHED_DATETIME_FORMATS(void)
??1CACHED_DATETIME_FORMATS@@UAE@XZ
; public: __thiscall CCritSec::~CCritSec(void)
??1CCritSec@@QAE@XZ
; public: __thiscall CDoubleList::~CDoubleList(void)
??1CDoubleList@@QAE@XZ
; public: __thiscall CEtwTracer::~CEtwTracer(void)
??1CEtwTracer@@QAE@XZ
; public: __thiscall CFakeLock::~CFakeLock(void)
??1CFakeLock@@QAE@XZ
; public: __thiscall CHUNK_BUFFER::~CHUNK_BUFFER(void)
??1CHUNK_BUFFER@@QAE@XZ
; public: __thiscall CLKRHashTable::~CLKRHashTable(void)
??1CLKRHashTable@@QAE@XZ
; public: __thiscall CLKRHashTable_Iterator::~CLKRHashTable_Iterator(void)
??1CLKRHashTable_Iterator@@QAE@XZ
; public: __thiscall CLKRLinearHashTable::~CLKRLinearHashTable(void)
??1CLKRLinearHashTable@@QAE@XZ
; public: __thiscall CLKRLinearHashTable_Iterator::~CLKRLinearHashTable_Iterator(void)
??1CLKRLinearHashTable_Iterator@@QAE@XZ
; public: __thiscall CLockedDoubleList::~CLockedDoubleList(void)
??1CLockedDoubleList@@QAE@XZ
; public: __thiscall CLockedSingleList::~CLockedSingleList(void)
??1CLockedSingleList@@QAE@XZ
; public: __thiscall CRtlResource::~CRtlResource(void)
??1CRtlResource@@QAE@XZ
; public: __thiscall CSecurityDispenser::~CSecurityDispenser(void)
??1CSecurityDispenser@@QAE@XZ
; public: __thiscall CShareLock::~CShareLock(void)
??1CShareLock@@QAE@XZ
; public: __thiscall CSharelock::~CSharelock(void)
??1CSharelock@@QAE@XZ
; public: __thiscall CSingleList::~CSingleList(void)
??1CSingleList@@QAE@XZ
; public: __thiscall EVENT_LOG::~EVENT_LOG(void)
??1EVENT_LOG@@QAE@XZ
; public: virtual __thiscall EXTLOG_DATETIME_CACHE::~EXTLOG_DATETIME_CACHE(void)
??1EXTLOG_DATETIME_CACHE@@UAE@XZ
; private: __thiscall IPM_MESSAGE_PIPE::~IPM_MESSAGE_PIPE(void)
??1IPM_MESSAGE_PIPE@@AAE@XZ
; public: __thiscall MB::~MB(void)
??1MB@@QAE@XZ
; public: virtual __thiscall MB_BASE_NOTIFICATION_SINK::~MB_BASE_NOTIFICATION_SINK(void)
??1MB_BASE_NOTIFICATION_SINK@@UAE@XZ
; public: __thiscall MULTISZ::~MULTISZ(void)
??1MULTISZ@@QAE@XZ
; public: __thiscall MULTISZA::~MULTISZA(void)
??1MULTISZA@@QAE@XZ
; public: __thiscall STRA::~STRA(void)
??1STRA@@QAE@XZ
; public: __thiscall STRAU::~STRAU(void)
??1STRAU@@QAE@XZ
; public: __thiscall STRU::~STRU(void)
??1STRU@@QAE@XZ
; public: __thiscall TS_RESOURCE::~TS_RESOURCE(void)
??1TS_RESOURCE@@QAE@XZ
; public: virtual __thiscall W3_DATETIME_CACHE::~W3_DATETIME_CACHE(void)
??1W3_DATETIME_CACHE@@UAE@XZ
; private: __thiscall W3_TRACE_LOG::~W3_TRACE_LOG(void)
??1W3_TRACE_LOG@@AAE@XZ
; private: __thiscall W3_TRACE_LOG_FACTORY::~W3_TRACE_LOG_FACTORY(void)
??1W3_TRACE_LOG_FACTORY@@AAE@XZ
; public: static void * __stdcall CLKRLinearHashTable::operator new(unsigned int)
??2CLKRLinearHashTable@@SGPAXI@Z
; public: static void __stdcall CLKRLinearHashTable::operator delete(void *)
??3CLKRLinearHashTable@@SGXPAX@Z
; public: class CDataCache<struct DATETIME_FORMAT_ENTRY> & __thiscall CDataCache<struct DATETIME_FORMAT_ENTRY>::operator=(class CDataCache<struct DATETIME_FORMAT_ENTRY> const &)
??4?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QAEAAV0@ABV0@@Z
; public: class CDataCache<class CDateTime> & __thiscall CDataCache<class CDateTime>::operator=(class CDataCache<class CDateTime> const &)
??4?$CDataCache@VCDateTime@@@@QAEAAV0@ABV0@@Z
; public: class CLockBase<1,1,3,1,3,2> & __thiscall CLockBase<1,1,3,1,3,2>::operator=(class CLockBase<1,1,3,1,3,2> const &)
??4?$CLockBase@$00$00$02$00$02$01@@QAEAAV0@ABV0@@Z
; public: class CLockBase<2,1,1,1,3,2> & __thiscall CLockBase<2,1,1,1,3,2>::operator=(class CLockBase<2,1,1,1,3,2> const &)
??4?$CLockBase@$01$00$00$00$02$01@@QAEAAV0@ABV0@@Z
; public: class CLockBase<3,1,1,1,1,1> & __thiscall CLockBase<3,1,1,1,1,1>::operator=(class CLockBase<3,1,1,1,1,1> const &)
??4?$CLockBase@$02$00$00$00$00$00@@QAEAAV0@ABV0@@Z
; public: class CLockBase<4,1,1,2,3,3> & __thiscall CLockBase<4,1,1,2,3,3>::operator=(class CLockBase<4,1,1,2,3,3> const &)
??4?$CLockBase@$03$00$00$01$02$02@@QAEAAV0@ABV0@@Z
; public: class CLockBase<5,2,1,2,3,3> & __thiscall CLockBase<5,2,1,2,3,3>::operator=(class CLockBase<5,2,1,2,3,3> const &)
??4?$CLockBase@$04$01$00$01$02$02@@QAEAAV0@ABV0@@Z
; public: class CLockBase<6,2,1,2,3,3> & __thiscall CLockBase<6,2,1,2,3,3>::operator=(class CLockBase<6,2,1,2,3,3> const &)
??4?$CLockBase@$05$01$00$01$02$02@@QAEAAV0@ABV0@@Z
; public: class CLockBase<7,2,2,1,3,2> & __thiscall CLockBase<7,2,2,1,3,2>::operator=(class CLockBase<7,2,2,1,3,2> const &)
??4?$CLockBase@$06$01$01$00$02$01@@QAEAAV0@ABV0@@Z
; public: class CLockBase<8,2,2,1,3,2> & __thiscall CLockBase<8,2,2,1,3,2>::operator=(class CLockBase<8,2,2,1,3,2> const &)
??4?$CLockBase@$07$01$01$00$02$01@@QAEAAV0@ABV0@@Z
; public: class CLockBase<9,2,1,1,3,2> & __thiscall CLockBase<9,2,1,1,3,2>::operator=(class CLockBase<9,2,1,1,3,2> const &)
??4?$CLockBase@$08$01$00$00$02$01@@QAEAAV0@ABV0@@Z
; public: class ALLOC_CACHE_HANDLER & __thiscall ALLOC_CACHE_HANDLER::operator=(class ALLOC_CACHE_HANDLER const &)
??4ALLOC_CACHE_HANDLER@@QAEAAV0@ABV0@@Z
; public: class BUFFER & __thiscall BUFFER::operator=(class BUFFER const &)
??4BUFFER@@QAEAAV0@ABV0@@Z
; public: class BUFFER_CHAIN & __thiscall BUFFER_CHAIN::operator=(class BUFFER_CHAIN const &)
??4BUFFER_CHAIN@@QAEAAV0@ABV0@@Z
; public: class BUFFER_CHAIN_ITEM & __thiscall BUFFER_CHAIN_ITEM::operator=(class BUFFER_CHAIN_ITEM const &)
??4BUFFER_CHAIN_ITEM@@QAEAAV0@ABV0@@Z
; public: class CCritSec & __thiscall CCritSec::operator=(class CCritSec const &)
??4CCritSec@@QAEAAV0@ABV0@@Z
; public: class CDFTCache & __thiscall CDFTCache::operator=(class CDFTCache const &)
??4CDFTCache@@QAEAAV0@ABV0@@Z
; public: class CDateTime & __thiscall CDateTime::operator=(class CDateTime const &)
??4CDateTime@@QAEAAV0@ABV0@@Z
; public: class CDoubleList & __thiscall CDoubleList::operator=(class CDoubleList const &)
??4CDoubleList@@QAEAAV0@ABV0@@Z
; public: class CFakeLock & __thiscall CFakeLock::operator=(class CFakeLock const &)
??4CFakeLock@@QAEAAV0@ABV0@@Z
; public: class CHUNK_BUFFER & __thiscall CHUNK_BUFFER::operator=(class CHUNK_BUFFER const &)
??4CHUNK_BUFFER@@QAEAAV0@ABV0@@Z
; public: class CLKRHashTableStats & __thiscall CLKRHashTableStats::operator=(class CLKRHashTableStats const &)
??4CLKRHashTableStats@@QAEAAV0@ABV0@@Z
; public: class CLKRHashTable_Iterator & __thiscall CLKRHashTable_Iterator::operator=(class CLKRHashTable_Iterator const &)
??4CLKRHashTable_Iterator@@QAEAAV0@ABV0@@Z
; public: class CLKRLinearHashTable_Iterator & __thiscall CLKRLinearHashTable_Iterator::operator=(class CLKRLinearHashTable_Iterator const &)
??4CLKRLinearHashTable_Iterator@@QAEAAV0@ABV0@@Z
; public: class CLockedDoubleList & __thiscall CLockedDoubleList::operator=(class CLockedDoubleList const &)
??4CLockedDoubleList@@QAEAAV0@ABV0@@Z
; public: class CLockedSingleList & __thiscall CLockedSingleList::operator=(class CLockedSingleList const &)
??4CLockedSingleList@@QAEAAV0@ABV0@@Z
; public: class CReaderWriterLock2 & __thiscall CReaderWriterLock2::operator=(class CReaderWriterLock2 const &)
??4CReaderWriterLock2@@QAEAAV0@ABV0@@Z
; public: class CReaderWriterLock3 & __thiscall CReaderWriterLock3::operator=(class CReaderWriterLock3 const &)
??4CReaderWriterLock3@@QAEAAV0@ABV0@@Z
; public: class CReaderWriterLock & __thiscall CReaderWriterLock::operator=(class CReaderWriterLock const &)
??4CReaderWriterLock@@QAEAAV0@ABV0@@Z
; public: class CRtlResource & __thiscall CRtlResource::operator=(class CRtlResource const &)
??4CRtlResource@@QAEAAV0@ABV0@@Z
; public: class CSecurityDispenser & __thiscall CSecurityDispenser::operator=(class CSecurityDispenser const &)
??4CSecurityDispenser@@QAEAAV0@ABV0@@Z
; public: class CSingleList & __thiscall CSingleList::operator=(class CSingleList const &)
??4CSingleList@@QAEAAV0@ABV0@@Z
; public: class CSmallSpinLock & __thiscall CSmallSpinLock::operator=(class CSmallSpinLock const &)
??4CSmallSpinLock@@QAEAAV0@ABV0@@Z
; public: class CSpinLock & __thiscall CSpinLock::operator=(class CSpinLock const &)
??4CSpinLock@@QAEAAV0@ABV0@@Z
; public: struct DATETIME_FORMAT_ENTRY & __thiscall DATETIME_FORMAT_ENTRY::operator=(struct DATETIME_FORMAT_ENTRY const &)
??4DATETIME_FORMAT_ENTRY@@QAEAAU0@ABU0@@Z
; public: class EVENT_LOG & __thiscall EVENT_LOG::operator=(class EVENT_LOG const &)
??4EVENT_LOG@@QAEAAV0@ABV0@@Z
; public: class IPM_MESSAGE_PIPE & __thiscall IPM_MESSAGE_PIPE::operator=(class IPM_MESSAGE_PIPE const &)
??4IPM_MESSAGE_PIPE@@QAEAAV0@ABV0@@Z
; public: class MB & __thiscall MB::operator=(class MB const &)
??4MB@@QAEAAV0@ABV0@@Z
; public: class MULTISZ & __thiscall MULTISZ::operator=(class MULTISZ const &)
??4MULTISZ@@QAEAAV0@ABV0@@Z
; public: class MULTISZA & __thiscall MULTISZA::operator=(class MULTISZA const &)
??4MULTISZA@@QAEAAV0@ABV0@@Z
; private: class STRA & __thiscall STRA::operator=(class STRA const &)
??4STRA@@AAEAAV0@ABV0@@Z
; public: class STRAU & __thiscall STRAU::operator=(class STRAU const &)
??4STRAU@@QAEAAV0@ABV0@@Z
; private: class STRU & __thiscall STRU::operator=(class STRU const &)
??4STRU@@AAEAAV0@ABV0@@Z
; public: class TS_RESOURCE & __thiscall TS_RESOURCE::operator=(class TS_RESOURCE const &)
??4TS_RESOURCE@@QAEAAV0@ABV0@@Z
; public: class W3_TRACE_LOG & __thiscall W3_TRACE_LOG::operator=(class W3_TRACE_LOG const &)
??4W3_TRACE_LOG@@QAEAAV0@ABV0@@Z
; public: class W3_TRACE_LOG_FACTORY & __thiscall W3_TRACE_LOG_FACTORY::operator=(class W3_TRACE_LOG_FACTORY const &)
??4W3_TRACE_LOG_FACTORY@@QAEAAV0@ABV0@@Z
; public: bool __thiscall CLKRHashTable_Iterator::operator==(class CLKRHashTable_Iterator const &)const 
??8CLKRHashTable_Iterator@@QBE_NABV0@@Z
; public: bool __thiscall CLKRLinearHashTable_Iterator::operator==(class CLKRLinearHashTable_Iterator const &)const 
??8CLKRLinearHashTable_Iterator@@QBE_NABV0@@Z
; public: bool __thiscall CLKRHashTable_Iterator::operator!=(class CLKRHashTable_Iterator const &)const 
??9CLKRHashTable_Iterator@@QBE_NABV0@@Z
; public: bool __thiscall CLKRLinearHashTable_Iterator::operator!=(class CLKRLinearHashTable_Iterator const &)const 
??9CLKRLinearHashTable_Iterator@@QBE_NABV0@@Z
; const  ASCLOG_DATETIME_CACHE::`vftable'
??_7ASCLOG_DATETIME_CACHE@@6B@
; const  CACHED_DATETIME_FORMATS::`vftable'
??_7CACHED_DATETIME_FORMATS@@6B@
; const  EXTLOG_DATETIME_CACHE::`vftable'
??_7EXTLOG_DATETIME_CACHE@@6B@
; const  W3_DATETIME_CACHE::`vftable'
??_7W3_DATETIME_CACHE@@6B@
; public: void __thiscall BUFFER::`default constructor closure'(void)
??_FBUFFER@@QAEXXZ
; public: void __thiscall BUFFER_CHAIN_ITEM::`default constructor closure'(void)
??_FBUFFER_CHAIN_ITEM@@QAEXXZ
; public: void __thiscall CSharelock::`default constructor closure'(void)
??_FCSharelock@@QAEXXZ
ACopyToW
; public: int __thiscall CSharelock::ActiveUsers(void)
?ActiveUsers@CSharelock@@QAEHXZ
; private: long __thiscall CHUNK_BUFFER::AddNewBlock(unsigned long)
?AddNewBlock@CHUNK_BUFFER@@AAEJK@Z
; public: int __thiscall MB::AddObject(unsigned short const *)
?AddObject@MB@@QAEHPBG@Z
; public: virtual unsigned long __stdcall MB_BASE_NOTIFICATION_SINK::AddRef(void)
?AddRef@MB_BASE_NOTIFICATION_SINK@@UAGKXZ
AddWpgToTokenDefaultDacl
; public: unsigned long __thiscall CSecurityDispenser::AdjustTokenForAdministrators(void *)
?AdjustTokenForAdministrators@CSecurityDispenser@@QAEKPAX@Z
; public: void * __thiscall ALLOC_CACHE_HANDLER::Alloc(void)
?Alloc@ALLOC_CACHE_HANDLER@@QAEPAXXZ
AllocateAndCreateWellKnownAcl
AllocateAndCreateWellKnownSid
; public: long __thiscall CHUNK_BUFFER::AllocateSpace(unsigned long,char * *)
?AllocateSpace@CHUNK_BUFFER@@QAEJKPAPAD@Z
; public: long __thiscall CHUNK_BUFFER::AllocateSpace(unsigned long,unsigned short * *)
?AllocateSpace@CHUNK_BUFFER@@QAEJKPAPAG@Z
; public: long __thiscall CHUNK_BUFFER::AllocateSpace(unsigned long,void * *)
?AllocateSpace@CHUNK_BUFFER@@QAEJKPAPAX@Z
; public: long __thiscall CHUNK_BUFFER::AllocateSpace(char *,unsigned long,char * *)
?AllocateSpace@CHUNK_BUFFER@@QAEJPADKPAPAD@Z
; public: long __thiscall CHUNK_BUFFER::AllocateSpace(unsigned short *,unsigned long,unsigned short * *)
?AllocateSpace@CHUNK_BUFFER@@QAEJPAGKPAPAG@Z
AlterDesktopForUser
; public: int __thiscall MULTISZ::Append(class STRU &)
?Append@MULTISZ@@QAEHAAVSTRU@@@Z
; public: int __thiscall MULTISZ::Append(unsigned short const *)
?Append@MULTISZ@@QAEHPBG@Z
; public: int __thiscall MULTISZ::Append(unsigned short const *,unsigned long)
?Append@MULTISZ@@QAEHPBGK@Z
; public: int __thiscall MULTISZA::Append(class STRA &)
?Append@MULTISZA@@QAEHAAVSTRA@@@Z
; public: int __thiscall MULTISZA::Append(char const *)
?Append@MULTISZA@@QAEHPBD@Z
; public: int __thiscall MULTISZA::Append(char const *,unsigned long)
?Append@MULTISZA@@QAEHPBDK@Z
; public: long __thiscall STRA::Append(class STRA const &)
?Append@STRA@@QAEJABV1@@Z
; public: long __thiscall STRA::Append(char const *)
?Append@STRA@@QAEJPBD@Z
; public: long __thiscall STRA::Append(char const *,unsigned long)
?Append@STRA@@QAEJPBDK@Z
; public: int __thiscall STRAU::Append(class STRAU &)
?Append@STRAU@@QAEHAAV1@@Z
; public: int __thiscall STRAU::Append(char const *)
?Append@STRAU@@QAEHPBD@Z
; public: int __thiscall STRAU::Append(char const *,unsigned long)
?Append@STRAU@@QAEHPBDK@Z
; public: int __thiscall STRAU::Append(unsigned short const *)
?Append@STRAU@@QAEHPBG@Z
; public: int __thiscall STRAU::Append(unsigned short const *,unsigned long)
?Append@STRAU@@QAEHPBGK@Z
; public: long __thiscall STRU::Append(class STRU const &)
?Append@STRU@@QAEJABV1@@Z
; public: long __thiscall STRU::Append(unsigned short const *)
?Append@STRU@@QAEJPBG@Z
; public: long __thiscall STRU::Append(unsigned short const *,unsigned long)
?Append@STRU@@QAEJPBGK@Z
; public: long __thiscall STRU::AppendA(char const *)
?AppendA@STRU@@QAEJPBD@Z
; public: int __thiscall BUFFER_CHAIN::AppendBuffer(class BUFFER_CHAIN_ITEM *)
?AppendBuffer@BUFFER_CHAIN@@QAEHPAVBUFFER_CHAIN_ITEM@@@Z
; public: long __thiscall W3_TRACE_LOG_FACTORY::AppendData(void *,unsigned long)
?AppendData@W3_TRACE_LOG_FACTORY@@QAEJPAXK@Z
; public: int __thiscall MULTISZA::AppendW(unsigned short const *)
?AppendW@MULTISZA@@QAEHPBG@Z
; public: int __thiscall MULTISZA::AppendW(unsigned short const *,unsigned long)
?AppendW@MULTISZA@@QAEHPBGK@Z
; public: long __thiscall STRA::AppendW(unsigned short const *)
?AppendW@STRA@@QAEJPBG@Z
; public: long __thiscall STRA::AppendW(unsigned short const *,unsigned long)
?AppendW@STRA@@QAEJPBGK@Z
; public: long __thiscall STRA::AppendWTruncate(unsigned short const *)
?AppendWTruncate@STRA@@QAEJPBG@Z
; public: long __thiscall STRA::AppendWTruncate(unsigned short const *,unsigned long)
?AppendWTruncate@STRA@@QAEJPBGK@Z
; public: unsigned long __thiscall CLKRHashTable::Apply(enum LK_ACTION  (__stdcall*)(void const *,void *),void *,enum LK_LOCKTYPE)
?Apply@CLKRHashTable@@QAEKP6G?AW4LK_ACTION@@PBXPAX@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __thiscall CLKRLinearHashTable::Apply(enum LK_ACTION  (__stdcall*)(void const *,void *),void *,enum LK_LOCKTYPE)
?Apply@CLKRLinearHashTable@@QAEKP6G?AW4LK_ACTION@@PBXPAX@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __thiscall CLKRHashTable::ApplyIf(enum LK_PREDICATE  (__stdcall*)(void const *,void *),enum LK_ACTION  (__stdcall*)(void const *,void *),void *,enum LK_LOCKTYPE)
?ApplyIf@CLKRHashTable@@QAEKP6G?AW4LK_PREDICATE@@PBXPAX@ZP6G?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __thiscall CLKRLinearHashTable::ApplyIf(enum LK_PREDICATE  (__stdcall*)(void const *,void *),enum LK_ACTION  (__stdcall*)(void const *,void *),void *,enum LK_LOCKTYPE)
?ApplyIf@CLKRLinearHashTable@@QAEKP6G?AW4LK_PREDICATE@@PBXPAX@ZP6G?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@@Z
; private: int __thiscall MULTISZ::AuxAppend(unsigned short const *,unsigned int,int)
?AuxAppend@MULTISZ@@AAEHPBGIH@Z
; private: int __thiscall MULTISZA::AuxAppend(unsigned char const *,unsigned int,int)
?AuxAppend@MULTISZA@@AAEHPBEIH@Z
; private: long __thiscall STRA::AuxAppend(unsigned char const *,unsigned long,unsigned long,int)
?AuxAppend@STRA@@AAEJPBEKKH@Z
; private: int __thiscall STRAU::AuxAppend(char const *,unsigned int,int)
?AuxAppend@STRAU@@AAEHPBDIH@Z
; private: int __thiscall STRAU::AuxAppend(unsigned short const *,unsigned int,int)
?AuxAppend@STRAU@@AAEHPBGIH@Z
; private: long __thiscall STRU::AuxAppend(unsigned char const *,unsigned long,unsigned long,int)
?AuxAppend@STRU@@AAEJPBEKKH@Z
; private: long __thiscall STRU::AuxAppendA(unsigned char const *,unsigned long,unsigned long,int)
?AuxAppendA@STRU@@AAEJPBEKKH@Z
; private: int __thiscall MULTISZA::AuxAppendW(unsigned short const *,unsigned int,int)
?AuxAppendW@MULTISZA@@AAEHPBGIH@Z
; private: long __thiscall STRA::AuxAppendW(unsigned short const *,unsigned long,unsigned long,int)
?AuxAppendW@STRA@@AAEJPBGKKH@Z
; private: long __thiscall STRA::AuxAppendWTruncate(unsigned short const *,unsigned long,unsigned long,int)
?AuxAppendWTruncate@STRA@@AAEJPBGKKH@Z
; private: void __thiscall MULTISZ::AuxInit(unsigned short const *)
?AuxInit@MULTISZ@@AAEXPBG@Z
; private: void __thiscall MULTISZA::AuxInit(unsigned char const *)
?AuxInit@MULTISZA@@AAEXPBE@Z
; private: void __thiscall STRAU::AuxInit(char const *)
?AuxInit@STRAU@@AAEXPBD@Z
; private: void __thiscall STRAU::AuxInit(unsigned short const *)
?AuxInit@STRAU@@AAEXPBG@Z
; public: class CLKRHashTable_Iterator  __thiscall CLKRHashTable::Begin(void)
?Begin@CLKRHashTable@@QAE?AVCLKRHashTable_Iterator@@XZ
; public: class CLKRLinearHashTable_Iterator  __thiscall CLKRLinearHashTable::Begin(void)
?Begin@CLKRLinearHashTable@@QAE?AVCLKRLinearHashTable_Iterator@@XZ
; public: static long __stdcall CLKRHashTableStats::BucketIndex(long)
?BucketIndex@CLKRHashTableStats@@SGJJ@Z
; public: static long __stdcall CLKRHashTableStats::BucketSize(long)
?BucketSize@CLKRHashTableStats@@SGJJ@Z
; public: static long const * __stdcall CLKRHashTableStats::BucketSizes(void)
?BucketSizes@CLKRHashTableStats@@SGPBJXZ
; public: static unsigned long __stdcall MULTISZ::CalcLength(unsigned short const *,unsigned long *)
?CalcLength@MULTISZ@@SGKPBGPAK@Z
; public: static unsigned long __stdcall MULTISZA::CalcLength(char const *,unsigned long *)
?CalcLength@MULTISZA@@SGKPBDPAK@Z
; public: unsigned long __thiscall BUFFER_CHAIN::CalcTotalSize(int)const 
?CalcTotalSize@BUFFER_CHAIN@@QBEKH@Z
; public: void __thiscall CSharelock::ChangeExclusiveLockToSharedLock(void)
?ChangeExclusiveLockToSharedLock@CSharelock@@QAEXXZ
; public: unsigned char __thiscall CSharelock::ChangeSharedLockToExclusiveLock(int)
?ChangeSharedLockToExclusiveLock@CSharelock@@QAEEH@Z
; public: int __thiscall CLKRHashTable::CheckTable(void)const 
?CheckTable@CLKRHashTable@@QBEHXZ
; public: int __thiscall CLKRLinearHashTable::CheckTable(void)const 
?CheckTable@CLKRLinearHashTable@@QBEHXZ
; public: unsigned char __thiscall CSharelock::ClaimExclusiveLock(int)
?ClaimExclusiveLock@CSharelock@@QAEEH@Z
; public: unsigned char __thiscall CSharelock::ClaimShareLock(int)
?ClaimShareLock@CSharelock@@QAEEH@Z
; public: static unsigned short const * __stdcall CCritSec::ClassName(void)
?ClassName@CCritSec@@SGPBGXZ
; public: static unsigned short const * __stdcall CFakeLock::ClassName(void)
?ClassName@CFakeLock@@SGPBGXZ
; public: static unsigned short const * __stdcall CLKRHashTable::ClassName(void)
?ClassName@CLKRHashTable@@SGPBGXZ
; public: static unsigned short const * __stdcall CLKRLinearHashTable::ClassName(void)
?ClassName@CLKRLinearHashTable@@SGPBGXZ
; public: static unsigned short const * __stdcall CReaderWriterLock2::ClassName(void)
?ClassName@CReaderWriterLock2@@SGPBGXZ
; public: static unsigned short const * __stdcall CReaderWriterLock3::ClassName(void)
?ClassName@CReaderWriterLock3@@SGPBGXZ
; public: static unsigned short const * __stdcall CReaderWriterLock::ClassName(void)
?ClassName@CReaderWriterLock@@SGPBGXZ
; public: static char const * __stdcall CRtlResource::ClassName(void)
?ClassName@CRtlResource@@SGPBDXZ
; public: static char const * __stdcall CShareLock::ClassName(void)
?ClassName@CShareLock@@SGPBDXZ
; public: static unsigned short const * __stdcall CSmallSpinLock::ClassName(void)
?ClassName@CSmallSpinLock@@SGPBGXZ
; public: static unsigned short const * __stdcall CSpinLock::ClassName(void)
?ClassName@CSpinLock@@SGPBGXZ
; public: static int __stdcall ALLOC_CACHE_HANDLER::Cleanup(void)
?Cleanup@ALLOC_CACHE_HANDLER@@SGHXZ
; public: static void __stdcall ALLOC_CACHE_HANDLER::CleanupAllLookasides(void *,unsigned char)
?CleanupAllLookasides@ALLOC_CACHE_HANDLER@@SGXPAXE@Z
; public: void __thiscall ALLOC_CACHE_HANDLER::CleanupLookaside(int)
?CleanupLookaside@ALLOC_CACHE_HANDLER@@QAEXH@Z
; public: void __thiscall CLKRHashTable::Clear(void)
?Clear@CLKRHashTable@@QAEXXZ
; public: void __thiscall CLKRLinearHashTable::Clear(void)
?Clear@CLKRLinearHashTable@@QAEXXZ
; public: void __thiscall W3_TRACE_LOG::ClearBuffer(void)
?ClearBuffer@W3_TRACE_LOG@@QAEXXZ
; public: int __thiscall MULTISZ::Clone(class MULTISZ *)const 
?Clone@MULTISZ@@QBEHPAV1@@Z
; public: int __thiscall MULTISZA::Clone(class MULTISZA *)const 
?Clone@MULTISZA@@QBEHPAV1@@Z
; public: long __thiscall STRA::Clone(class STRA *)const 
?Clone@STRA@@QBEJPAV1@@Z
; public: int __thiscall MB::Close(void)
?Close@MB@@QAEHXZ
CompareStringNoCase
; public: void __thiscall TS_RESOURCE::Convert(enum TSRES_CONV_TYPE)
?Convert@TS_RESOURCE@@QAEXW4TSRES_CONV_TYPE@@@Z
; public: void __thiscall CCritSec::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CCritSec@@QAEXXZ
; public: void __thiscall CFakeLock::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CFakeLock@@QAEXXZ
; public: void __thiscall CLKRHashTable::ConvertExclusiveToShared(void)const 
?ConvertExclusiveToShared@CLKRHashTable@@QBEXXZ
; public: void __thiscall CLKRLinearHashTable::ConvertExclusiveToShared(void)const 
?ConvertExclusiveToShared@CLKRLinearHashTable@@QBEXXZ
; public: void __thiscall CReaderWriterLock2::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CReaderWriterLock2@@QAEXXZ
; public: void __thiscall CReaderWriterLock3::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CReaderWriterLock3@@QAEXXZ
; public: void __thiscall CReaderWriterLock::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CReaderWriterLock@@QAEXXZ
; public: void __thiscall CRtlResource::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CRtlResource@@QAEXXZ
; public: void __thiscall CShareLock::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CShareLock@@QAEXXZ
; public: void __thiscall CSmallSpinLock::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CSmallSpinLock@@QAEXXZ
; public: void __thiscall CSpinLock::ConvertExclusiveToShared(void)
?ConvertExclusiveToShared@CSpinLock@@QAEXXZ
; public: void __thiscall CCritSec::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CCritSec@@QAEXXZ
; public: void __thiscall CFakeLock::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CFakeLock@@QAEXXZ
; public: void __thiscall CLKRHashTable::ConvertSharedToExclusive(void)const 
?ConvertSharedToExclusive@CLKRHashTable@@QBEXXZ
; public: void __thiscall CLKRLinearHashTable::ConvertSharedToExclusive(void)const 
?ConvertSharedToExclusive@CLKRLinearHashTable@@QBEXXZ
; public: void __thiscall CReaderWriterLock2::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CReaderWriterLock2@@QAEXXZ
; public: void __thiscall CReaderWriterLock3::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CReaderWriterLock3@@QAEXXZ
; public: void __thiscall CReaderWriterLock::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CReaderWriterLock@@QAEXXZ
; public: void __thiscall CRtlResource::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CRtlResource@@QAEXXZ
; public: void __thiscall CShareLock::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CShareLock@@QAEXXZ
; public: void __thiscall CSmallSpinLock::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CSmallSpinLock@@QAEXXZ
; public: void __thiscall CSpinLock::ConvertSharedToExclusive(void)
?ConvertSharedToExclusive@CSpinLock@@QAEXXZ
ConvertUnicodeToMultiByte
; public: int __thiscall MULTISZ::Copy(class MULTISZ const &)
?Copy@MULTISZ@@QAEHABV1@@Z
; public: int __thiscall MULTISZ::Copy(unsigned short const *,unsigned long)
?Copy@MULTISZ@@QAEHPBGK@Z
; public: int __thiscall MULTISZA::Copy(class MULTISZA const &)
?Copy@MULTISZA@@QAEHABV1@@Z
; public: int __thiscall MULTISZA::Copy(char const *,unsigned long)
?Copy@MULTISZA@@QAEHPBDK@Z
; public: long __thiscall STRA::Copy(class STRA const &)
?Copy@STRA@@QAEJABV1@@Z
; public: long __thiscall STRA::Copy(char const *)
?Copy@STRA@@QAEJPBD@Z
; public: long __thiscall STRA::Copy(char const *,unsigned long)
?Copy@STRA@@QAEJPBDK@Z
; public: int __thiscall STRAU::Copy(class STRAU &)
?Copy@STRAU@@QAEHAAV1@@Z
; public: int __thiscall STRAU::Copy(char const *)
?Copy@STRAU@@QAEHPBD@Z
; public: int __thiscall STRAU::Copy(char const *,unsigned long)
?Copy@STRAU@@QAEHPBDK@Z
; public: int __thiscall STRAU::Copy(unsigned short const *)
?Copy@STRAU@@QAEHPBG@Z
; public: int __thiscall STRAU::Copy(unsigned short const *,unsigned long)
?Copy@STRAU@@QAEHPBGK@Z
; public: long __thiscall STRU::Copy(class STRU const &)
?Copy@STRU@@QAEJABV1@@Z
; public: long __thiscall STRU::Copy(unsigned short const *)
?Copy@STRU@@QAEJPBG@Z
; public: long __thiscall STRU::Copy(unsigned short const *,unsigned long)
?Copy@STRU@@QAEJPBGK@Z
; public: long __thiscall STRU::CopyA(char const *)
?CopyA@STRU@@QAEJPBD@Z
; public: long __thiscall STRU::CopyA(char const *,unsigned long)
?CopyA@STRU@@QAEJPBDK@Z
; public: long __thiscall STRA::CopyBinary(void *,unsigned long)
?CopyBinary@STRA@@QAEJPAXK@Z
; public: int __thiscall CDFTCache::CopyFormattedData(struct _SYSTEMTIME const *,char *)const 
?CopyFormattedData@CDFTCache@@QBEHPBU_SYSTEMTIME@@PAD@Z
; public: void __thiscall DATETIME_FORMAT_ENTRY::CopyFormattedData(struct _SYSTEMTIME const *,char *)const 
?CopyFormattedData@DATETIME_FORMAT_ENTRY@@QBEXPBU_SYSTEMTIME@@PAD@Z
; public: int __thiscall MULTISZ::CopyToBuffer(unsigned short *,unsigned long *)const 
?CopyToBuffer@MULTISZ@@QBEHPAGPAK@Z
; public: int __thiscall MULTISZA::CopyToBuffer(char *,unsigned long *)const 
?CopyToBuffer@MULTISZA@@QBEHPADPAK@Z
; public: long __thiscall STRA::CopyToBuffer(char *,unsigned long *)const 
?CopyToBuffer@STRA@@QBEJPADPAK@Z
; public: long __thiscall STRU::CopyToBuffer(unsigned short *,unsigned long *)const 
?CopyToBuffer@STRU@@QBEJPAGPAK@Z
; public: long __thiscall STRA::CopyW(unsigned short const *)
?CopyW@STRA@@QAEJPBG@Z
; public: long __thiscall STRA::CopyW(unsigned short const *,unsigned long)
?CopyW@STRA@@QAEJPBGK@Z
; public: long __thiscall STRA::CopyWToUTF8(class STRU const &)
?CopyWToUTF8@STRA@@QAEJABVSTRU@@@Z
; public: long __thiscall STRA::CopyWToUTF8(unsigned short const *)
?CopyWToUTF8@STRA@@QAEJPBG@Z
; public: long __thiscall STRA::CopyWToUTF8(unsigned short const *,unsigned long)
?CopyWToUTF8@STRA@@QAEJPBGK@Z
; public: long __thiscall STRA::CopyWToUTF8Unescaped(class STRU const &)
?CopyWToUTF8Unescaped@STRA@@QAEJABVSTRU@@@Z
; public: long __thiscall STRA::CopyWToUTF8Unescaped(unsigned short const *)
?CopyWToUTF8Unescaped@STRA@@QAEJPBG@Z
; public: long __thiscall STRA::CopyWToUTF8Unescaped(unsigned short const *,unsigned long)
?CopyWToUTF8Unescaped@STRA@@QAEJPBGK@Z
; public: long __thiscall STRA::CopyWTruncate(unsigned short const *)
?CopyWTruncate@STRA@@QAEJPBG@Z
; public: long __thiscall STRA::CopyWTruncate(unsigned short const *,unsigned long)
?CopyWTruncate@STRA@@QAEJPBGK@Z
; public: static long __stdcall IPM_MESSAGE_PIPE::CreateIpmMessagePipe(class IPM_MESSAGE_ACCEPTOR *,unsigned short const *,int,struct _SECURITY_ATTRIBUTES *,class IPM_MESSAGE_PIPE * *)
?CreateIpmMessagePipe@IPM_MESSAGE_PIPE@@SGJPAVIPM_MESSAGE_ACCEPTOR@@PBGHPAU_SECURITY_ATTRIBUTES@@PAPAV1@@Z
; public: long __thiscall W3_TRACE_LOG_FACTORY::CreateTraceLog(class W3_TRACE_LOG * *)
?CreateTraceLog@W3_TRACE_LOG_FACTORY@@QAEJPAPAVW3_TRACE_LOG@@@Z
; public: static long __stdcall W3_TRACE_LOG_FACTORY::CreateTraceLogFactory(class W3_TRACE_LOG_FACTORY * *,void *)
?CreateTraceLogFactory@W3_TRACE_LOG_FACTORY@@SGJPAPAV1@PAX@Z
; public: unsigned long __thiscall CDFTCache::DateTimeChars(void)const 
?DateTimeChars@CDFTCache@@QBEKXZ
; char const * __stdcall DayOfWeek3CharNames(unsigned long)
?DayOfWeek3CharNames@@YGPBDK@Z
; private: void __thiscall IPM_MESSAGE_PIPE::DecrementAcceptorInUse(void)
?DecrementAcceptorInUse@IPM_MESSAGE_PIPE@@AAEXXZ
DecryptMemoryPassword
; public: unsigned long __thiscall BUFFER_CHAIN::DeleteChain(void)
?DeleteChain@BUFFER_CHAIN@@QAEKXZ
; public: int __thiscall MB::DeleteData(unsigned short const *,unsigned long,unsigned long,unsigned long)
?DeleteData@MB@@QAEHPBGKKK@Z
; public: unsigned long __thiscall CLKRHashTable::DeleteIf(enum LK_PREDICATE  (__stdcall*)(void const *,void *),void *)
?DeleteIf@CLKRHashTable@@QAEKP6G?AW4LK_PREDICATE@@PBXPAX@Z1@Z
; public: unsigned long __thiscall CLKRLinearHashTable::DeleteIf(enum LK_PREDICATE  (__stdcall*)(void const *,void *),void *)
?DeleteIf@CLKRLinearHashTable@@QAEKP6G?AW4LK_PREDICATE@@PBXPAX@Z1@Z
; public: enum LK_RETCODE  __thiscall CLKRHashTable::DeleteKey(unsigned long)
?DeleteKey@CLKRHashTable@@QAE?AW4LK_RETCODE@@K@Z
; public: enum LK_RETCODE  __thiscall CLKRLinearHashTable::DeleteKey(unsigned long)
?DeleteKey@CLKRLinearHashTable@@QAE?AW4LK_RETCODE@@K@Z
; public: int __thiscall MB::DeleteObject(unsigned short const *)
?DeleteObject@MB@@QAEHPBG@Z
; public: enum LK_RETCODE  __thiscall CLKRHashTable::DeleteRecord(void const *)
?DeleteRecord@CLKRHashTable@@QAE?AW4LK_RETCODE@@PBX@Z
; public: enum LK_RETCODE  __thiscall CLKRLinearHashTable::DeleteRecord(void const *)
?DeleteRecord@CLKRLinearHashTable@@QAE?AW4LK_RETCODE@@PBX@Z
; public: void __thiscall IPM_MESSAGE_PIPE::DestroyIpmMessagePipe(void)
?DestroyIpmMessagePipe@IPM_MESSAGE_PIPE@@QAEXXZ
; public: void __thiscall W3_TRACE_LOG::DestroyTraceLog(void)
?DestroyTraceLog@W3_TRACE_LOG@@QAEXXZ
; public: void __thiscall W3_TRACE_LOG_FACTORY::DestroyTraceLogFactory(void)
?DestroyTraceLogFactory@W3_TRACE_LOG_FACTORY@@QAEXXZ
; public: virtual unsigned long __thiscall CEtwTracer::DisableEventsCallbackCustomHandler(void)
?DisableEventsCallbackCustomHandler@CEtwTracer@@UAEKXZ
DisableTokenBackupPrivilege
; public: static int __stdcall ALLOC_CACHE_HANDLER::DumpStatsToHtml(char *,unsigned long *)
?DumpStatsToHtml@ALLOC_CACHE_HANDLER@@SGHPADPAK@Z
DupTokenWithSameImpersonationLevel
; public: virtual unsigned long __thiscall CEtwTracer::EnableEventsCallbackCustomHandler(void)
?EnableEventsCallbackCustomHandler@CEtwTracer@@UAEKXZ
EncryptMemoryPassword
; public: class CLKRHashTable_Iterator  __thiscall CLKRHashTable::End(void)
?End@CLKRHashTable@@QAE?AVCLKRHashTable_Iterator@@XZ
; public: class CLKRLinearHashTable_Iterator  __thiscall CLKRLinearHashTable::End(void)
?End@CLKRLinearHashTable@@QAE?AVCLKRLinearHashTable_Iterator@@XZ
; public: int __thiscall MB::EnumObjects(unsigned short const *,unsigned short *,unsigned long)
?EnumObjects@MB@@QAEHPBGPAGK@Z
; public: bool __thiscall CLKRHashTable::EqualRange(unsigned long,class CLKRHashTable_Iterator &,class CLKRHashTable_Iterator &)
?EqualRange@CLKRHashTable@@QAE_NKAAVCLKRHashTable_Iterator@@0@Z
; public: bool __thiscall CLKRLinearHashTable::EqualRange(unsigned long,class CLKRLinearHashTable_Iterator &,class CLKRLinearHashTable_Iterator &)
?EqualRange@CLKRLinearHashTable@@QAE_NKAAVCLKRLinearHashTable_Iterator@@0@Z
; public: int __thiscall STRA::Equals(class STRA const &)const 
?Equals@STRA@@QBEHABV1@@Z
; public: int __thiscall STRA::Equals(char * const)const 
?Equals@STRA@@QBEHQAD@Z
; public: int __thiscall STRU::Equals(class STRU const &)const 
?Equals@STRU@@QBEHABV1@@Z
; public: int __thiscall STRU::Equals(unsigned short const *)const 
?Equals@STRU@@QBEHPBG@Z
; public: int __thiscall STRA::EqualsNoCase(class STRA const &)const 
?EqualsNoCase@STRA@@QBEHABV1@@Z
; public: int __thiscall STRA::EqualsNoCase(char * const)const 
?EqualsNoCase@STRA@@QBEHQAD@Z
; public: int __thiscall STRU::EqualsNoCase(class STRU const &)const 
?EqualsNoCase@STRU@@QBEHABV1@@Z
; public: int __thiscall STRU::EqualsNoCase(unsigned short const *)const 
?EqualsNoCase@STRU@@QBEHPBG@Z
; public: bool __thiscall CLKRHashTable::Erase(class CLKRHashTable_Iterator &,class CLKRHashTable_Iterator &)
?Erase@CLKRHashTable@@QAE_NAAVCLKRHashTable_Iterator@@0@Z
; public: bool __thiscall CLKRHashTable::Erase(class CLKRHashTable_Iterator &)
?Erase@CLKRHashTable@@QAE_NAAVCLKRHashTable_Iterator@@@Z
; public: bool __thiscall CLKRLinearHashTable::Erase(class CLKRLinearHashTable_Iterator &,class CLKRLinearHashTable_Iterator &)
?Erase@CLKRLinearHashTable@@QAE_NAAVCLKRLinearHashTable_Iterator@@0@Z
; public: bool __thiscall CLKRLinearHashTable::Erase(class CLKRLinearHashTable_Iterator &)
?Erase@CLKRLinearHashTable@@QAE_NAAVCLKRLinearHashTable_Iterator@@@Z
; public: long __thiscall STRA::Escape(int,int)
?Escape@STRA@@QAEJHH@Z
; public: long __thiscall STRU::Escape(void)
?Escape@STRU@@QAEJXZ
; public: unsigned long __cdecl CEtwTracer::EtwTraceEvent(struct _GUID const *,unsigned long,...)
?EtwTraceEvent@CEtwTracer@@QAAKPBU_GUID@@KZZ
; int __stdcall FileTimeToGMT(struct _FILETIME const &,char *,unsigned long)
?FileTimeToGMT@@YGHABU_FILETIME@@PADK@Z
; int __stdcall FileTimeToGMTEx(struct _FILETIME const &,char *,unsigned long,unsigned long)
?FileTimeToGMTEx@@YGHABU_FILETIME@@PADKK@Z
; public: bool __thiscall CLKRHashTable::Find(unsigned long,class CLKRHashTable_Iterator &)
?Find@CLKRHashTable@@QAE_NKAAVCLKRHashTable_Iterator@@@Z
; public: bool __thiscall CLKRLinearHashTable::Find(unsigned long,class CLKRLinearHashTable_Iterator &)
?Find@CLKRLinearHashTable@@QAE_NKAAVCLKRLinearHashTable_Iterator@@@Z
; public: enum LK_RETCODE  __thiscall CLKRHashTable::FindKey(unsigned long,void const * *)const 
?FindKey@CLKRHashTable@@QBE?AW4LK_RETCODE@@KPAPBX@Z
; public: enum LK_RETCODE  __thiscall CLKRLinearHashTable::FindKey(unsigned long,void const * *)const 
?FindKey@CLKRLinearHashTable@@QBE?AW4LK_RETCODE@@KPAPBX@Z
; public: enum LK_RETCODE  __thiscall CLKRHashTable::FindRecord(void const *)const 
?FindRecord@CLKRHashTable@@QBE?AW4LK_RETCODE@@PBX@Z
; public: enum LK_RETCODE  __thiscall CLKRLinearHashTable::FindRecord(void const *)const 
?FindRecord@CLKRLinearHashTable@@QBE?AW4LK_RETCODE@@PBX@Z
; public: int __thiscall MULTISZ::FindString(class STRU &)
?FindString@MULTISZ@@QAEHAAVSTRU@@@Z
; public: int __thiscall MULTISZ::FindString(unsigned short const *)
?FindString@MULTISZ@@QAEHPBG@Z
; public: int __thiscall MULTISZA::FindString(class STRA &)
?FindString@MULTISZA@@QAEHAAVSTRA@@@Z
; public: int __thiscall MULTISZA::FindString(char const *)
?FindString@MULTISZA@@QAEHPBD@Z
; public: int __thiscall MULTISZ::FindStringNoCase(class STRU &)
?FindStringNoCase@MULTISZ@@QAEHAAVSTRU@@@Z
; public: int __thiscall MULTISZ::FindStringNoCase(unsigned short const *)
?FindStringNoCase@MULTISZ@@QAEHPBG@Z
; public: class CListEntry * __thiscall CDoubleList::First(void)const 
?First@CDoubleList@@QBEQAVCListEntry@@XZ
; public: class CListEntry * __thiscall CLockedDoubleList::First(void)
?First@CLockedDoubleList@@QAEQAVCListEntry@@XZ
; public: unsigned short const * __thiscall MULTISZ::First(void)const 
?First@MULTISZ@@QBEPBGXZ
; public: char const * __thiscall MULTISZA::First(void)const 
?First@MULTISZA@@QBEPBDXZ
FlipSlashes
; public: long __thiscall STRA::FormatString(unsigned long,char const * * const,char const *,unsigned long)
?FormatString@STRA@@QAEJKQAPBDPBDK@Z
; public: char const * __thiscall CDFTCache::FormattedBuffer(void)const 
?FormattedBuffer@CDFTCache@@QBEPBDXZ
; public: int __thiscall ALLOC_CACHE_HANDLER::Free(void *)
?Free@ALLOC_CACHE_HANDLER@@QAEHPAX@Z
; public: void __thiscall CHUNK_BUFFER::FreeAllAllocatedSpace(void)
?FreeAllAllocatedSpace@CHUNK_BUFFER@@QAEXXZ
; public: void __thiscall BUFFER::FreeMemory(void)
?FreeMemory@BUFFER@@QAEXXZ
FreeSecurityAttributes
FreeWellKnownAcl
FreeWellKnownSid
; public: virtual void __thiscall ASCLOG_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY *,struct _SYSTEMTIME const *)
?GenerateDateTimeString@ASCLOG_DATETIME_CACHE@@UAEXPAUDATETIME_FORMAT_ENTRY@@PBU_SYSTEMTIME@@@Z
; public: virtual void __thiscall EXTLOG_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY *,struct _SYSTEMTIME const *)
?GenerateDateTimeString@EXTLOG_DATETIME_CACHE@@UAEXPAUDATETIME_FORMAT_ENTRY@@PBU_SYSTEMTIME@@@Z
; public: virtual void __thiscall W3_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY *,struct _SYSTEMTIME const *)
?GenerateDateTimeString@W3_DATETIME_CACHE@@UAEXPAUDATETIME_FORMAT_ENTRY@@PBU_SYSTEMTIME@@@Z
GenerateNameWithGUID
; public: int __thiscall MB::GetAll(unsigned short const *,unsigned long,unsigned long,class BUFFER *,unsigned long *,unsigned long *)
?GetAll@MB@@QAEHPBGKKPAVBUFFER@@PAK2@Z
; public: unsigned short __thiscall CLKRHashTable::GetBucketLockSpinCount(void)const 
?GetBucketLockSpinCount@CLKRHashTable@@QBEGXZ
; public: unsigned short __thiscall CLKRLinearHashTable::GetBucketLockSpinCount(void)const 
?GetBucketLockSpinCount@CLKRLinearHashTable@@QBEGXZ
; public: int __thiscall MB::GetBuffer(unsigned short const *,unsigned long,unsigned long,class BUFFER *,unsigned long *,unsigned long)
?GetBuffer@MB@@QAEHPBGKKPAVBUFFER@@PAKK@Z
; public: int __thiscall MB::GetChildPaths(unsigned short const *,class BUFFER *)
?GetChildPaths@MB@@QAEHPBGPAVBUFFER@@@Z
; public: int __thiscall MB::GetData(unsigned short const *,unsigned long,unsigned long,unsigned long,void *,unsigned long *,unsigned long)
?GetData@MB@@QAEHPBGKKKPAXPAKK@Z
; public: int __thiscall MB::GetDataPaths(unsigned short const *,unsigned long,unsigned long,class BUFFER *)
?GetDataPaths@MB@@QAEHPBGKKPAVBUFFER@@@Z
; public: int __thiscall MB::GetDataSetNumber(unsigned short const *,unsigned long *)
?GetDataSetNumber@MB@@QAEHPBGPAK@Z
; public: static double __stdcall CCritSec::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CCritSec@@SGNXZ
; public: static double __stdcall CFakeLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CFakeLock@@SGNXZ
; public: static double __stdcall CReaderWriterLock2::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock2@@SGNXZ
; public: static double __stdcall CReaderWriterLock3::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock3@@SGNXZ
; public: static double __stdcall CReaderWriterLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock@@SGNXZ
; public: static double __stdcall CRtlResource::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CRtlResource@@SGNXZ
; public: static double __stdcall CShareLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CShareLock@@SGNXZ
; public: static double __stdcall CSmallSpinLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CSmallSpinLock@@SGNXZ
; public: static double __stdcall CSpinLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CSpinLock@@SGNXZ
; public: static unsigned short __stdcall CCritSec::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CCritSec@@SGGXZ
; public: static unsigned short __stdcall CFakeLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CFakeLock@@SGGXZ
; public: static unsigned short __stdcall CReaderWriterLock2::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock2@@SGGXZ
; public: static unsigned short __stdcall CReaderWriterLock3::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock3@@SGGXZ
; public: static unsigned short __stdcall CReaderWriterLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock@@SGGXZ
; public: static unsigned short __stdcall CRtlResource::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CRtlResource@@SGGXZ
; public: static unsigned short __stdcall CShareLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CShareLock@@SGGXZ
; public: static unsigned short __stdcall CSmallSpinLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CSmallSpinLock@@SGGXZ
; public: static unsigned short __stdcall CSpinLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CSpinLock@@SGGXZ
; public: int __thiscall MB::GetDword(unsigned short const *,unsigned long,unsigned long,unsigned long *,unsigned long)
?GetDword@MB@@QAEHPBGKKPAKK@Z
; public: void __thiscall MB::GetDword(unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned long *,unsigned long)
?GetDword@MB@@QAEXPBGKKKPAKK@Z
; public: unsigned long __thiscall EVENT_LOG::GetErrorCode(void)const 
?GetErrorCode@EVENT_LOG@@QBEKXZ
; public: unsigned long __thiscall CACHED_DATETIME_FORMATS::GetFormattedCurrentDateTime(char *)
?GetFormattedCurrentDateTime@CACHED_DATETIME_FORMATS@@QAEKPAD@Z
; public: unsigned long __thiscall CACHED_DATETIME_FORMATS::GetFormattedDateTime(struct _SYSTEMTIME const *,char *)
?GetFormattedDateTime@CACHED_DATETIME_FORMATS@@QAEKPBU_SYSTEMTIME@@PAD@Z
; public: unsigned long __thiscall CSecurityDispenser::GetIisWpgSID(void * *)
?GetIisWpgSID@CSecurityDispenser@@QAEKPAPAX@Z
; public: int __thiscall MB::GetMultisz(unsigned short const *,unsigned long,unsigned long,class MULTISZ *,unsigned long)
?GetMultisz@MB@@QAEHPBGKKPAVMULTISZ@@K@Z
; private: int __thiscall BUFFER::GetNewStorage(unsigned int)
?GetNewStorage@BUFFER@@AAEHI@Z
; public: unsigned long __thiscall CSecurityDispenser::GetSID(enum WELL_KNOWN_SID_TYPE,void * *)
?GetSID@CSecurityDispenser@@QAEKW4WELL_KNOWN_SID_TYPE@@PAPAX@Z
GetSecurityAttributesForHandle
; public: unsigned short __thiscall CCritSec::GetSpinCount(void)const 
?GetSpinCount@CCritSec@@QBEGXZ
; public: unsigned short __thiscall CFakeLock::GetSpinCount(void)const 
?GetSpinCount@CFakeLock@@QBEGXZ
; public: unsigned short __thiscall CReaderWriterLock2::GetSpinCount(void)const 
?GetSpinCount@CReaderWriterLock2@@QBEGXZ
; public: unsigned short __thiscall CReaderWriterLock3::GetSpinCount(void)const 
?GetSpinCount@CReaderWriterLock3@@QBEGXZ
; public: unsigned short __thiscall CReaderWriterLock::GetSpinCount(void)const 
?GetSpinCount@CReaderWriterLock@@QBEGXZ
; public: unsigned short __thiscall CRtlResource::GetSpinCount(void)const 
?GetSpinCount@CRtlResource@@QBEGXZ
; public: unsigned short __thiscall CShareLock::GetSpinCount(void)const 
?GetSpinCount@CShareLock@@QBEGXZ
; public: unsigned short __thiscall CSmallSpinLock::GetSpinCount(void)const 
?GetSpinCount@CSmallSpinLock@@QBEGXZ
; public: unsigned short __thiscall CSpinLock::GetSpinCount(void)const 
?GetSpinCount@CSpinLock@@QBEGXZ
; public: class CLKRHashTableStats  __thiscall CLKRHashTable::GetStatistics(void)const 
?GetStatistics@CLKRHashTable@@QBE?AVCLKRHashTableStats@@XZ
; public: class CLKRHashTableStats  __thiscall CLKRLinearHashTable::GetStatistics(void)const 
?GetStatistics@CLKRLinearHashTable@@QBE?AVCLKRHashTableStats@@XZ
; public: int __thiscall MB::GetStr(unsigned short const *,unsigned long,unsigned long,class STRU *,unsigned long,unsigned short const *)
?GetStr@MB@@QAEHPBGKKPAVSTRU@@K0@Z
; public: int __thiscall MB::GetString(unsigned short const *,unsigned long,unsigned long,unsigned short *,unsigned long *,unsigned long)
?GetString@MB@@QAEHPBGKKPAGPAKK@Z
; public: int __thiscall MB::GetSystemChangeNumber(unsigned long *)
?GetSystemChangeNumber@MB@@QAEHPAK@Z
; public: unsigned short __thiscall CLKRHashTable::GetTableLockSpinCount(void)const 
?GetTableLockSpinCount@CLKRHashTable@@QBEGXZ
; public: unsigned short __thiscall CLKRLinearHashTable::GetTableLockSpinCount(void)const 
?GetTableLockSpinCount@CLKRLinearHashTable@@QBEGXZ
; public: int __thiscall CDateTime::GetTickCount(void)
?GetTickCount@CDateTime@@QAEHXZ
GrantWpgAccessToToken
; public: long __thiscall STRA::HTMLEncode(void)
?HTMLEncode@STRA@@QAEJXZ
; public: class CListEntry const * __thiscall CDoubleList::HeadNode(void)const 
?HeadNode@CDoubleList@@QBEQBVCListEntry@@XZ
; public: class CListEntry const * __thiscall CLockedDoubleList::HeadNode(void)const 
?HeadNode@CLockedDoubleList@@QBEQBVCListEntry@@XZ
; public: bool __thiscall CLKRHashTable_Iterator::Increment(void)
?Increment@CLKRHashTable_Iterator@@QAE_NXZ
; public: bool __thiscall CLKRLinearHashTable_Iterator::Increment(void)
?Increment@CLKRLinearHashTable_Iterator@@QAE_NXZ
; private: void __thiscall IPM_MESSAGE_PIPE::IncrementAcceptorInUse(void)
?IncrementAcceptorInUse@IPM_MESSAGE_PIPE@@AAEXXZ
; public: void __thiscall W3_TRACE_LOG::Indent(void)
?Indent@W3_TRACE_LOG@@QAEXXZ
; public: static int __stdcall ALLOC_CACHE_HANDLER::Initialize(void)
?Initialize@ALLOC_CACHE_HANDLER@@SGHXZ
; private: void __thiscall CHUNK_BUFFER::Initialize(void)
?Initialize@CHUNK_BUFFER@@AAEXXZ
; public: bool __thiscall CLKRHashTable::Insert(void const *,class CLKRHashTable_Iterator &,bool)
?Insert@CLKRHashTable@@QAE_NPBXAAVCLKRHashTable_Iterator@@_N@Z
; public: bool __thiscall CLKRLinearHashTable::Insert(void const *,class CLKRLinearHashTable_Iterator &,bool)
?Insert@CLKRLinearHashTable@@QAE_NPBXAAVCLKRLinearHashTable_Iterator@@_N@Z
; public: void __thiscall CDoubleList::InsertHead(class CListEntry * const)
?InsertHead@CDoubleList@@QAEXQAVCListEntry@@@Z
; public: void __thiscall CLockedDoubleList::InsertHead(class CListEntry * const)
?InsertHead@CLockedDoubleList@@QAEXQAVCListEntry@@@Z
; public: static void __stdcall ALLOC_CACHE_HANDLER::InsertNewItem(class ALLOC_CACHE_HANDLER *)
?InsertNewItem@ALLOC_CACHE_HANDLER@@SGXPAV1@@Z
; public: enum LK_RETCODE  __thiscall CLKRHashTable::InsertRecord(void const *,bool)
?InsertRecord@CLKRHashTable@@QAE?AW4LK_RETCODE@@PBX_N@Z
; public: enum LK_RETCODE  __thiscall CLKRLinearHashTable::InsertRecord(void const *,bool)
?InsertRecord@CLKRLinearHashTable@@QAE?AW4LK_RETCODE@@PBX_N@Z
; public: void __thiscall CDoubleList::InsertTail(class CListEntry * const)
?InsertTail@CDoubleList@@QAEXQAVCListEntry@@@Z
; public: void __thiscall CLockedDoubleList::InsertTail(class CListEntry * const)
?InsertTail@CLockedDoubleList@@QAEXQAVCListEntry@@@Z
; public: int __thiscall ALLOC_CACHE_HANDLER::IpPrint(char *,unsigned long *)
?IpPrint@ALLOC_CACHE_HANDLER@@QAEHPADPAK@Z
; public: void __thiscall IPM_MESSAGE_PIPE::IpmMessageCreated(class IPM_MESSAGE_IMP *)
?IpmMessageCreated@IPM_MESSAGE_PIPE@@QAEXPAVIPM_MESSAGE_IMP@@@Z
; public: void __thiscall IPM_MESSAGE_PIPE::IpmMessageDeleted(class IPM_MESSAGE_IMP *)
?IpmMessageDeleted@IPM_MESSAGE_PIPE@@QAEXPAVIPM_MESSAGE_IMP@@@Z
; public: int __thiscall STRAU::IsCurrentUnicode(void)
?IsCurrentUnicode@STRAU@@QAEHXZ
; private: int __thiscall BUFFER::IsDynAlloced(void)const 
?IsDynAlloced@BUFFER@@ABEHXZ
; public: bool __thiscall CDoubleList::IsEmpty(void)const 
?IsEmpty@CDoubleList@@QBE_NXZ
; public: bool __thiscall CLockedDoubleList::IsEmpty(void)const 
?IsEmpty@CLockedDoubleList@@QBE_NXZ
; public: bool __thiscall CLockedSingleList::IsEmpty(void)const 
?IsEmpty@CLockedSingleList@@QBE_NXZ
; public: bool __thiscall CSingleList::IsEmpty(void)const 
?IsEmpty@CSingleList@@QBE_NXZ
; public: int __thiscall MULTISZ::IsEmpty(void)const 
?IsEmpty@MULTISZ@@QBEHXZ
; public: int __thiscall MULTISZA::IsEmpty(void)const 
?IsEmpty@MULTISZA@@QBEHXZ
; public: int __thiscall STRA::IsEmpty(void)const 
?IsEmpty@STRA@@QBEHXZ
; public: int __thiscall STRAU::IsEmpty(void)
?IsEmpty@STRAU@@QAEHXZ
; public: int __thiscall STRU::IsEmpty(void)const 
?IsEmpty@STRU@@QBEHXZ
; public: int __thiscall CDFTCache::IsHit(struct _SYSTEMTIME const *)const 
?IsHit@CDFTCache@@QBEHPBU_SYSTEMTIME@@@Z
; public: int __thiscall DATETIME_FORMAT_ENTRY::IsHit(struct _SYSTEMTIME const *)const 
?IsHit@DATETIME_FORMAT_ENTRY@@QBEHPBU_SYSTEMTIME@@@Z
; public: bool __thiscall CLockedDoubleList::IsLocked(void)const 
?IsLocked@CLockedDoubleList@@QBE_NXZ
; public: bool __thiscall CLockedSingleList::IsLocked(void)const 
?IsLocked@CLockedSingleList@@QBE_NXZ
; public: bool __thiscall CCritSec::IsReadLocked(void)const 
?IsReadLocked@CCritSec@@QBE_NXZ
; public: bool __thiscall CFakeLock::IsReadLocked(void)const 
?IsReadLocked@CFakeLock@@QBE_NXZ
; public: bool __thiscall CLKRHashTable::IsReadLocked(void)const 
?IsReadLocked@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::IsReadLocked(void)const 
?IsReadLocked@CLKRLinearHashTable@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock2::IsReadLocked(void)const 
?IsReadLocked@CReaderWriterLock2@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock3::IsReadLocked(void)const 
?IsReadLocked@CReaderWriterLock3@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock::IsReadLocked(void)const 
?IsReadLocked@CReaderWriterLock@@QBE_NXZ
; public: bool __thiscall CRtlResource::IsReadLocked(void)const 
?IsReadLocked@CRtlResource@@QBE_NXZ
; public: bool __thiscall CShareLock::IsReadLocked(void)const 
?IsReadLocked@CShareLock@@QBE_NXZ
; public: bool __thiscall CSmallSpinLock::IsReadLocked(void)const 
?IsReadLocked@CSmallSpinLock@@QBE_NXZ
; public: bool __thiscall CSpinLock::IsReadLocked(void)const 
?IsReadLocked@CSpinLock@@QBE_NXZ
; public: bool __thiscall CCritSec::IsReadUnlocked(void)const 
?IsReadUnlocked@CCritSec@@QBE_NXZ
; public: bool __thiscall CFakeLock::IsReadUnlocked(void)const 
?IsReadUnlocked@CFakeLock@@QBE_NXZ
; public: bool __thiscall CLKRHashTable::IsReadUnlocked(void)const 
?IsReadUnlocked@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::IsReadUnlocked(void)const 
?IsReadUnlocked@CLKRLinearHashTable@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock2::IsReadUnlocked(void)const 
?IsReadUnlocked@CReaderWriterLock2@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock3::IsReadUnlocked(void)const 
?IsReadUnlocked@CReaderWriterLock3@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock::IsReadUnlocked(void)const 
?IsReadUnlocked@CReaderWriterLock@@QBE_NXZ
; public: bool __thiscall CRtlResource::IsReadUnlocked(void)const 
?IsReadUnlocked@CRtlResource@@QBE_NXZ
; public: bool __thiscall CShareLock::IsReadUnlocked(void)const 
?IsReadUnlocked@CShareLock@@QBE_NXZ
; public: bool __thiscall CSmallSpinLock::IsReadUnlocked(void)const 
?IsReadUnlocked@CSmallSpinLock@@QBE_NXZ
; public: bool __thiscall CSpinLock::IsReadUnlocked(void)const 
?IsReadUnlocked@CSpinLock@@QBE_NXZ
IsSSLReportingBackwardCompatibilityMode
; public: bool __thiscall CLockedDoubleList::IsUnlocked(void)const 
?IsUnlocked@CLockedDoubleList@@QBE_NXZ
; public: bool __thiscall CLockedSingleList::IsUnlocked(void)const 
?IsUnlocked@CLockedSingleList@@QBE_NXZ
; public: bool __thiscall CLKRHashTable::IsUsable(void)const 
?IsUsable@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::IsUsable(void)const 
?IsUsable@CLKRLinearHashTable@@QBE_NXZ
; public: int __thiscall ALLOC_CACHE_HANDLER::IsValid(void)const 
?IsValid@ALLOC_CACHE_HANDLER@@QBEHXZ
; public: int __thiscall BUFFER::IsValid(void)const 
?IsValid@BUFFER@@QBEHXZ
; public: bool __thiscall CLKRHashTable::IsValid(void)const 
?IsValid@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRHashTable_Iterator::IsValid(void)const 
?IsValid@CLKRHashTable_Iterator@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::IsValid(void)const 
?IsValid@CLKRLinearHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable_Iterator::IsValid(void)const 
?IsValid@CLKRLinearHashTable_Iterator@@QBE_NXZ
; public: int __thiscall IPM_MESSAGE_PIPE::IsValid(void)
?IsValid@IPM_MESSAGE_PIPE@@QAEHXZ
; public: int __thiscall MULTISZ::IsValid(void)const 
?IsValid@MULTISZ@@QBEHXZ
; public: int __thiscall MULTISZA::IsValid(void)const 
?IsValid@MULTISZA@@QBEHXZ
; public: int __thiscall STRA::IsValid(void)const 
?IsValid@STRA@@QBEHXZ
; public: int __thiscall STRAU::IsValid(void)
?IsValid@STRAU@@QAEHXZ
; public: bool __thiscall CCritSec::IsWriteLocked(void)const 
?IsWriteLocked@CCritSec@@QBE_NXZ
; public: bool __thiscall CFakeLock::IsWriteLocked(void)const 
?IsWriteLocked@CFakeLock@@QBE_NXZ
; public: bool __thiscall CLKRHashTable::IsWriteLocked(void)const 
?IsWriteLocked@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::IsWriteLocked(void)const 
?IsWriteLocked@CLKRLinearHashTable@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock2::IsWriteLocked(void)const 
?IsWriteLocked@CReaderWriterLock2@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock3::IsWriteLocked(void)const 
?IsWriteLocked@CReaderWriterLock3@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock::IsWriteLocked(void)const 
?IsWriteLocked@CReaderWriterLock@@QBE_NXZ
; public: bool __thiscall CRtlResource::IsWriteLocked(void)const 
?IsWriteLocked@CRtlResource@@QBE_NXZ
; public: bool __thiscall CShareLock::IsWriteLocked(void)const 
?IsWriteLocked@CShareLock@@QBE_NXZ
; public: bool __thiscall CSmallSpinLock::IsWriteLocked(void)const 
?IsWriteLocked@CSmallSpinLock@@QBE_NXZ
; public: bool __thiscall CSpinLock::IsWriteLocked(void)const 
?IsWriteLocked@CSpinLock@@QBE_NXZ
; public: bool __thiscall CCritSec::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CCritSec@@QBE_NXZ
; public: bool __thiscall CFakeLock::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CFakeLock@@QBE_NXZ
; public: bool __thiscall CLKRHashTable::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CLKRLinearHashTable@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock2::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CReaderWriterLock2@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock3::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CReaderWriterLock3@@QBE_NXZ
; public: bool __thiscall CReaderWriterLock::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CReaderWriterLock@@QBE_NXZ
; public: bool __thiscall CRtlResource::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CRtlResource@@QBE_NXZ
; public: bool __thiscall CShareLock::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CShareLock@@QBE_NXZ
; public: bool __thiscall CSmallSpinLock::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CSmallSpinLock@@QBE_NXZ
; public: bool __thiscall CSpinLock::IsWriteUnlocked(void)const 
?IsWriteUnlocked@CSpinLock@@QBE_NXZ
; public: unsigned long const  __thiscall CLKRHashTable_Iterator::Key(void)const 
?Key@CLKRHashTable_Iterator@@QBE?BKXZ
; public: unsigned long const  __thiscall CLKRLinearHashTable_Iterator::Key(void)const 
?Key@CLKRLinearHashTable_Iterator@@QBE?BKXZ
; public: class CListEntry * __thiscall CDoubleList::Last(void)const 
?Last@CDoubleList@@QBEQAVCListEntry@@XZ
; public: class CListEntry * __thiscall CLockedDoubleList::Last(void)
?Last@CLockedDoubleList@@QAEQAVCListEntry@@XZ
; public: long __thiscall STRA::LoadStringW(unsigned long,struct HINSTANCE__ *)
?LoadStringW@STRA@@QAEJKPAUHINSTANCE__@@@Z
; public: long __thiscall STRA::LoadStringW(unsigned long,char const *,unsigned long)
?LoadStringW@STRA@@QAEJKPBDK@Z
; private: void __thiscall ALLOC_CACHE_HANDLER::Lock(void)
?Lock@ALLOC_CACHE_HANDLER@@AAEXXZ
; public: void __thiscall CLockedDoubleList::Lock(void)
?Lock@CLockedDoubleList@@QAEXXZ
; public: void __thiscall CLockedSingleList::Lock(void)
?Lock@CLockedSingleList@@QAEXXZ
; public: void __thiscall TS_RESOURCE::Lock(enum TSRES_LOCK_TYPE)
?Lock@TS_RESOURCE@@QAEXW4TSRES_LOCK_TYPE@@@Z
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<1,1,3,1,3,2>::LockType(void)
?LockType@?$CLockBase@$00$00$02$00$02$01@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<2,1,1,1,3,2>::LockType(void)
?LockType@?$CLockBase@$01$00$00$00$02$01@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<3,1,1,1,1,1>::LockType(void)
?LockType@?$CLockBase@$02$00$00$00$00$00@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<4,1,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$03$00$00$01$02$02@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<5,2,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$04$01$00$01$02$02@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<6,2,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$05$01$00$01$02$02@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<7,2,2,1,3,2>::LockType(void)
?LockType@?$CLockBase@$06$01$01$00$02$01@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<8,2,2,1,3,2>::LockType(void)
?LockType@?$CLockBase@$07$01$01$00$02$01@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __stdcall CLockBase<9,2,1,1,3,2>::LockType(void)
?LockType@?$CLockBase@$08$01$00$00$02$01@@SG?AW4LOCK_LOCKTYPE@@XZ
; public: void __thiscall EVENT_LOG::LogEvent(unsigned long,unsigned short,unsigned short const * * const,unsigned long)
?LogEvent@EVENT_LOG@@QAEXKGQAPBGK@Z
; private: void __thiscall EVENT_LOG::LogEventPrivate(unsigned long,unsigned short,unsigned short,unsigned short const * * const,unsigned long)
?LogEventPrivate@EVENT_LOG@@AAEXKGGQAPBGK@Z
LookupTokenAccountName
MakeAllProcessHeapsLFH
MakePathCanonicalizationProof
; public: unsigned long __thiscall CLKRHashTable::MaxSize(void)const 
?MaxSize@CLKRHashTable@@QBEKXZ
; public: unsigned long __thiscall CLKRLinearHashTable::MaxSize(void)const 
?MaxSize@CLKRLinearHashTable@@QBEKXZ
; public: static void __stdcall IPM_MESSAGE_PIPE::MessagePipeCompletion(void *,unsigned char)
?MessagePipeCompletion@IPM_MESSAGE_PIPE@@SGXPAXE@Z
; char const * __stdcall Month3CharNames(unsigned long)
?Month3CharNames@@YGPBDK@Z
; public: bool __thiscall CLKRHashTable::MultiKeys(void)const 
?MultiKeys@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::MultiKeys(void)const 
?MultiKeys@CLKRLinearHashTable@@QBE_NXZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<1,1,3,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$00$00$02$00$02$01@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<2,1,1,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$01$00$00$00$02$01@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<3,1,1,1,1,1>::MutexType(void)
?MutexType@?$CLockBase@$02$00$00$00$00$00@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<4,1,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$03$00$00$01$02$02@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<5,2,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$04$01$00$01$02$02@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<6,2,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$05$01$00$01$02$02@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<7,2,2,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$06$01$01$00$02$01@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<8,2,2,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$07$01$01$00$02$01@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __stdcall CLockBase<9,2,1,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$08$01$00$00$02$01@@SG?AW4LOCK_RW_MUTEX@@XZ
; public: unsigned short const * __thiscall MULTISZ::Next(unsigned short const *)const 
?Next@MULTISZ@@QBEPBGPBG@Z
; public: char const * __thiscall MULTISZA::Next(char const *)const 
?Next@MULTISZA@@QBEPBDPBD@Z
; public: class BUFFER_CHAIN_ITEM * __thiscall BUFFER_CHAIN::NextBuffer(class BUFFER_CHAIN_ITEM *)
?NextBuffer@BUFFER_CHAIN@@QAEPAVBUFFER_CHAIN_ITEM@@PAV2@@Z
; long __stdcall NormalizeUrl(char *)
?NormalizeUrl@@YGJPAD@Z
; long __stdcall NormalizeUrlW(unsigned short *)
?NormalizeUrlW@@YGJPAG@Z
; private: void __thiscall IPM_MESSAGE_PIPE::NotifyPipeDisconnected(long)
?NotifyPipeDisconnected@IPM_MESSAGE_PIPE@@AAEXJ@Z
; int __stdcall NtLargeIntegerTimeToLocalSystemTime(union _LARGE_INTEGER const *,struct _SYSTEMTIME *)
?NtLargeIntegerTimeToLocalSystemTime@@YGHPBT_LARGE_INTEGER@@PAU_SYSTEMTIME@@@Z
; int __stdcall NtLargeIntegerTimeToSystemTime(union _LARGE_INTEGER const &,struct _SYSTEMTIME *)
?NtLargeIntegerTimeToSystemTime@@YGHABT_LARGE_INTEGER@@PAU_SYSTEMTIME@@@Z
; int __stdcall NtSystemTimeToLargeInteger(struct _SYSTEMTIME const *,union _LARGE_INTEGER *)
?NtSystemTimeToLargeInteger@@YGHPBU_SYSTEMTIME@@PAT_LARGE_INTEGER@@@Z
; public: int __thiscall CLKRHashTable::NumSubTables(void)const 
?NumSubTables@CLKRHashTable@@QBEHXZ
; public: static enum LK_TABLESIZE  __stdcall CLKRHashTable::NumSubTables(unsigned long &,unsigned long &)
?NumSubTables@CLKRHashTable@@SG?AW4LK_TABLESIZE@@AAK0@Z
; public: int __thiscall CLKRLinearHashTable::NumSubTables(void)const 
?NumSubTables@CLKRLinearHashTable@@QBEHXZ
; public: static enum LK_TABLESIZE  __stdcall CLKRLinearHashTable::NumSubTables(unsigned long &,unsigned long &)
?NumSubTables@CLKRLinearHashTable@@SG?AW4LK_TABLESIZE@@AAK0@Z
; public: int __thiscall CDFTCache::OffsetSeconds(void)const 
?OffsetSeconds@CDFTCache@@QBEHXZ
; public: int __thiscall MB::Open(unsigned long,unsigned short const *,unsigned long)
?Open@MB@@QAEHKPBGK@Z
; public: int __thiscall MB::Open(unsigned short const *,unsigned long)
?Open@MB@@QAEHPBGK@Z
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<1,1,3,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$00$00$02$00$02$01@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<2,1,1,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$01$00$00$00$02$01@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<3,1,1,1,1,1>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$02$00$00$00$00$00@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<4,1,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$03$00$00$01$02$02@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<5,2,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$04$01$00$01$02$02@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<6,2,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$05$01$00$01$02$02@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<7,2,2,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$06$01$01$00$02$01@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<8,2,2,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$07$01$01$00$02$01@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __stdcall CLockBase<9,2,1,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$08$01$00$00$02$01@@SG?AW4LOCK_PERLOCK_SPIN@@XZ
; public: class CSingleListEntry * __thiscall CLockedSingleList::Pop(void)
?Pop@CLockedSingleList@@QAEQAVCSingleListEntry@@XZ
; public: class CSingleListEntry * __thiscall CSingleList::Pop(void)
?Pop@CSingleList@@QAEQAVCSingleListEntry@@XZ
; public: void __thiscall ALLOC_CACHE_HANDLER::Print(void)
?Print@ALLOC_CACHE_HANDLER@@QAEXXZ
; private: unsigned short * __thiscall STRAU::PrivateQueryStr(int)
?PrivateQueryStr@STRAU@@AAEPAGH@Z
; public: void __thiscall CLockedSingleList::Push(class CSingleListEntry * const)
?Push@CLockedSingleList@@QAEXQAVCSingleListEntry@@@Z
; public: void __thiscall CSingleList::Push(class CSingleListEntry * const)
?Push@CSingleList@@QAEXQAVCSingleListEntry@@@Z
; public: struct IMSAdminBaseW * __thiscall MB::QueryAdminBase(void)const 
?QueryAdminBase@MB@@QBEPAUIMSAdminBaseW@@XZ
; public: class BUFFER * __thiscall STRU::QueryBuffer(void)
?QueryBuffer@STRU@@QAEPAVBUFFER@@XZ
; public: unsigned int __thiscall MULTISZ::QueryCB(void)const 
?QueryCB@MULTISZ@@QBEIXZ
; public: unsigned int __thiscall MULTISZA::QueryCB(void)const 
?QueryCB@MULTISZA@@QBEIXZ
; public: unsigned int __thiscall STRA::QueryCB(void)const 
?QueryCB@STRA@@QBEIXZ
; public: unsigned int __thiscall STRAU::QueryCB(int)
?QueryCB@STRAU@@QAEIH@Z
; public: unsigned int __thiscall STRU::QueryCB(void)const 
?QueryCB@STRU@@QBEIXZ
; public: unsigned int __thiscall STRAU::QueryCBA(void)
?QueryCBA@STRAU@@QAEIXZ
; public: unsigned int __thiscall STRAU::QueryCBW(void)
?QueryCBW@STRAU@@QAEIXZ
; public: unsigned int __thiscall MULTISZ::QueryCCH(void)const 
?QueryCCH@MULTISZ@@QBEIXZ
; public: unsigned int __thiscall MULTISZA::QueryCCH(void)const 
?QueryCCH@MULTISZA@@QBEIXZ
; public: unsigned int __thiscall STRA::QueryCCH(void)const 
?QueryCCH@STRA@@QBEIXZ
; public: unsigned int __thiscall STRAU::QueryCCH(void)
?QueryCCH@STRAU@@QAEIXZ
; public: unsigned int __thiscall STRU::QueryCCH(void)const 
?QueryCCH@STRU@@QBEIXZ
; public: unsigned long __thiscall CEtwTracer::QueryEnableLevel(void)
?QueryEnableLevel@CEtwTracer@@QAEKXZ
; public: unsigned long __thiscall MB::QueryHandle(void)const 
?QueryHandle@MB@@QBEKXZ
; public: unsigned long __thiscall CHUNK_BUFFER::QueryHeapAllocCount(void)
?QueryHeapAllocCount@CHUNK_BUFFER@@QAEKXZ
; public: virtual long __stdcall MB_BASE_NOTIFICATION_SINK::QueryInterface(struct _GUID const &,void * *)
?QueryInterface@MB_BASE_NOTIFICATION_SINK@@UAGJABU_GUID@@PAPAX@Z
; public: void * __thiscall BUFFER::QueryPtr(void)const 
?QueryPtr@BUFFER@@QBEPAXXZ
; public: unsigned int __thiscall BUFFER::QuerySize(void)const 
?QuerySize@BUFFER@@QBEIXZ
; public: unsigned int __thiscall STRA::QuerySize(void)const 
?QuerySize@STRA@@QBEIXZ
; public: void __thiscall ALLOC_CACHE_HANDLER::QueryStats(struct _ALLOC_CACHE_STATISTICS *)
?QueryStats@ALLOC_CACHE_HANDLER@@QAEXPAU_ALLOC_CACHE_STATISTICS@@@Z
; public: unsigned short * __thiscall MULTISZ::QueryStr(void)const 
?QueryStr@MULTISZ@@QBEPAGXZ
; public: char * __thiscall MULTISZA::QueryStr(void)const 
?QueryStr@MULTISZA@@QBEPADXZ
; public: char * __thiscall STRA::QueryStr(void)
?QueryStr@STRA@@QAEPADXZ
; public: char const * __thiscall STRA::QueryStr(void)const 
?QueryStr@STRA@@QBEPBDXZ
; public: unsigned short * __thiscall STRAU::QueryStr(int)
?QueryStr@STRAU@@QAEPAGH@Z
; public: unsigned short * __thiscall STRU::QueryStr(void)
?QueryStr@STRU@@QAEPAGXZ
; public: unsigned short const * __thiscall STRU::QueryStr(void)const 
?QueryStr@STRU@@QBEPBGXZ
; public: unsigned short * __thiscall MULTISZ::QueryStrA(void)const 
?QueryStrA@MULTISZ@@QBEPAGXZ
; public: char * __thiscall STRAU::QueryStrA(void)
?QueryStrA@STRAU@@QAEPADXZ
; public: unsigned short * __thiscall STRAU::QueryStrW(void)
?QueryStrW@STRAU@@QAEPAGXZ
; public: unsigned long __thiscall MULTISZ::QueryStringCount(void)const 
?QueryStringCount@MULTISZ@@QBEKXZ
; public: unsigned long __thiscall MULTISZA::QueryStringCount(void)const 
?QueryStringCount@MULTISZA@@QBEKXZ
; public: unsigned __int64 __thiscall CEtwTracer::QueryTraceHandle(void)
?QueryTraceHandle@CEtwTracer@@QAE_KXZ
; public: unsigned long __thiscall BUFFER_CHAIN_ITEM::QueryUsed(void)const 
?QueryUsed@BUFFER_CHAIN_ITEM@@QBEKXZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<1,1,3,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$00$00$02$00$02$01@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<2,1,1,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$01$00$00$00$02$01@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<3,1,1,1,1,1>::QueueType(void)
?QueueType@?$CLockBase@$02$00$00$00$00$00@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<4,1,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$03$00$00$01$02$02@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<5,2,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$04$01$00$01$02$02@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<6,2,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$05$01$00$01$02$02@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<7,2,2,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$06$01$01$00$02$01@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<8,2,2,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$07$01$01$00$02$01@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __stdcall CLockBase<9,2,1,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$08$01$00$00$02$01@@SG?AW4LOCK_QUEUE_TYPE@@XZ
; public: bool __thiscall CDataCache<class CDateTime>::Read(class CDateTime &)const 
?Read@?$CDataCache@VCDateTime@@@@QBE_NAAVCDateTime@@@Z
ReadDwordParameterValueFromAnyService
; public: void __thiscall CCritSec::ReadLock(void)
?ReadLock@CCritSec@@QAEXXZ
; public: void __thiscall CFakeLock::ReadLock(void)
?ReadLock@CFakeLock@@QAEXXZ
; public: void __thiscall CLKRHashTable::ReadLock(void)const 
?ReadLock@CLKRHashTable@@QBEXXZ
; public: void __thiscall CLKRLinearHashTable::ReadLock(void)const 
?ReadLock@CLKRLinearHashTable@@QBEXXZ
; public: void __thiscall CReaderWriterLock2::ReadLock(void)
?ReadLock@CReaderWriterLock2@@QAEXXZ
; public: void __thiscall CReaderWriterLock3::ReadLock(void)
?ReadLock@CReaderWriterLock3@@QAEXXZ
; public: void __thiscall CReaderWriterLock::ReadLock(void)
?ReadLock@CReaderWriterLock@@QAEXXZ
; public: void __thiscall CRtlResource::ReadLock(void)
?ReadLock@CRtlResource@@QAEXXZ
; public: void __thiscall CShareLock::ReadLock(void)
?ReadLock@CShareLock@@QAEXXZ
; public: void __thiscall CSmallSpinLock::ReadLock(void)
?ReadLock@CSmallSpinLock@@QAEXXZ
; public: void __thiscall CSpinLock::ReadLock(void)
?ReadLock@CSpinLock@@QAEXXZ
; private: long __thiscall IPM_MESSAGE_PIPE::ReadMessage(unsigned long)
?ReadMessage@IPM_MESSAGE_PIPE@@AAEJK@Z
; public: bool __thiscall CCritSec::ReadOrWriteLock(void)
?ReadOrWriteLock@CCritSec@@QAE_NXZ
; public: bool __thiscall CFakeLock::ReadOrWriteLock(void)
?ReadOrWriteLock@CFakeLock@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock3::ReadOrWriteLock(void)
?ReadOrWriteLock@CReaderWriterLock3@@QAE_NXZ
; public: bool __thiscall CSpinLock::ReadOrWriteLock(void)
?ReadOrWriteLock@CSpinLock@@QAE_NXZ
; public: void __thiscall CCritSec::ReadOrWriteUnlock(bool)
?ReadOrWriteUnlock@CCritSec@@QAEX_N@Z
; public: void __thiscall CFakeLock::ReadOrWriteUnlock(bool)
?ReadOrWriteUnlock@CFakeLock@@QAEX_N@Z
; public: void __thiscall CReaderWriterLock3::ReadOrWriteUnlock(bool)
?ReadOrWriteUnlock@CReaderWriterLock3@@QAEX_N@Z
; public: void __thiscall CSpinLock::ReadOrWriteUnlock(bool)
?ReadOrWriteUnlock@CSpinLock@@QAEX_N@Z
ReadRegDword
ReadStringParameterValueFromAnyService
; public: void __thiscall CCritSec::ReadUnlock(void)
?ReadUnlock@CCritSec@@QAEXXZ
; public: void __thiscall CFakeLock::ReadUnlock(void)
?ReadUnlock@CFakeLock@@QAEXXZ
; public: void __thiscall CLKRHashTable::ReadUnlock(void)const 
?ReadUnlock@CLKRHashTable@@QBEXXZ
; public: void __thiscall CLKRLinearHashTable::ReadUnlock(void)const 
?ReadUnlock@CLKRLinearHashTable@@QBEXXZ
; public: void __thiscall CReaderWriterLock2::ReadUnlock(void)
?ReadUnlock@CReaderWriterLock2@@QAEXXZ
; public: void __thiscall CReaderWriterLock3::ReadUnlock(void)
?ReadUnlock@CReaderWriterLock3@@QAEXXZ
; public: void __thiscall CReaderWriterLock::ReadUnlock(void)
?ReadUnlock@CReaderWriterLock@@QAEXXZ
; public: void __thiscall CRtlResource::ReadUnlock(void)
?ReadUnlock@CRtlResource@@QAEXXZ
; public: void __thiscall CShareLock::ReadUnlock(void)
?ReadUnlock@CShareLock@@QAEXXZ
; public: void __thiscall CSmallSpinLock::ReadUnlock(void)
?ReadUnlock@CSmallSpinLock@@QAEXXZ
; public: void __thiscall CSpinLock::ReadUnlock(void)
?ReadUnlock@CSpinLock@@QAEXXZ
; private: int __thiscall BUFFER::ReallocStorage(unsigned int)
?ReallocStorage@BUFFER@@AAEHI@Z
; public: void __thiscall MULTISZ::RecalcLen(void)
?RecalcLen@MULTISZ@@QAEXXZ
; public: void __thiscall MULTISZA::RecalcLen(void)
?RecalcLen@MULTISZA@@QAEXXZ
; public: void const * __thiscall CLKRHashTable_Iterator::Record(void)const 
?Record@CLKRHashTable_Iterator@@QBEPBXXZ
; public: void const * __thiscall CLKRLinearHashTable_Iterator::Record(void)const 
?Record@CLKRLinearHashTable_Iterator@@QBEPBXXZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<1,1,3,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$00$00$02$00$02$01@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<2,1,1,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$01$00$00$00$02$01@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<3,1,1,1,1,1>::Recursion(void)
?Recursion@?$CLockBase@$02$00$00$00$00$00@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<4,1,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$03$00$00$01$02$02@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<5,2,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$04$01$00$01$02$02@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<6,2,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$05$01$00$01$02$02@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<7,2,2,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$06$01$01$00$02$01@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<8,2,2,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$07$01$01$00$02$01@@SG?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __stdcall CLockBase<9,2,1,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$08$01$00$00$02$01@@SG?AW4LOCK_RECURSION@@XZ
; public: unsigned long __thiscall CEtwTracer::Register(struct _GUID const *,unsigned short *,unsigned short *)
?Register@CEtwTracer@@QAEKPBU_GUID@@PAG1@Z
; public: virtual unsigned long __stdcall MB_BASE_NOTIFICATION_SINK::Release(void)
?Release@MB_BASE_NOTIFICATION_SINK@@UAGKXZ
; public: void __thiscall CSharelock::ReleaseExclusiveLock(void)
?ReleaseExclusiveLock@CSharelock@@QAEXXZ
; public: void __thiscall CSharelock::ReleaseShareLock(void)
?ReleaseShareLock@CSharelock@@QAEXXZ
; public: static void __stdcall CDoubleList::RemoveEntry(class CListEntry * const)
?RemoveEntry@CDoubleList@@SGXQAVCListEntry@@@Z
; public: void __thiscall CLockedDoubleList::RemoveEntry(class CListEntry * const)
?RemoveEntry@CLockedDoubleList@@QAEXQAVCListEntry@@@Z
; public: class CListEntry * __thiscall CDoubleList::RemoveHead(void)
?RemoveHead@CDoubleList@@QAEQAVCListEntry@@XZ
; public: class CListEntry * __thiscall CLockedDoubleList::RemoveHead(void)
?RemoveHead@CLockedDoubleList@@QAEQAVCListEntry@@XZ
; public: static void __stdcall ALLOC_CACHE_HANDLER::RemoveItem(class ALLOC_CACHE_HANDLER *)
?RemoveItem@ALLOC_CACHE_HANDLER@@SGXPAV1@@Z
; public: class CListEntry * __thiscall CDoubleList::RemoveTail(void)
?RemoveTail@CDoubleList@@QAEQAVCListEntry@@XZ
; public: class CListEntry * __thiscall CLockedDoubleList::RemoveTail(void)
?RemoveTail@CLockedDoubleList@@QAEQAVCListEntry@@XZ
RemoveWorkItem
; public: void __thiscall MULTISZ::Reset(void)
?Reset@MULTISZ@@QAEXXZ
; public: void __thiscall MULTISZA::Reset(void)
?Reset@MULTISZA@@QAEXXZ
; public: void __thiscall STRA::Reset(void)
?Reset@STRA@@QAEXXZ
; public: void __thiscall STRAU::Reset(void)
?Reset@STRAU@@QAEXXZ
; public: void __thiscall STRU::Reset(void)
?Reset@STRU@@QAEXXZ
; public: static int __stdcall ALLOC_CACHE_HANDLER::ResetLookasideCleanupInterval(void)
?ResetLookasideCleanupInterval@ALLOC_CACHE_HANDLER@@SGHXZ
; public: int __thiscall BUFFER::Resize(unsigned int)
?Resize@BUFFER@@QAEHI@Z
; public: int __thiscall BUFFER::Resize(unsigned int,unsigned int)
?Resize@BUFFER@@QAEHII@Z
; public: long __thiscall STRA::Resize(unsigned long)
?Resize@STRA@@QAEJK@Z
; public: long __thiscall STRU::Resize(unsigned long)
?Resize@STRU@@QAEJK@Z
; public: int __thiscall STRAU::ResizeW(unsigned long)
?ResizeW@STRAU@@QAEHK@Z
SAFEIsSpace
SAFEIsXDigit
; public: int __thiscall STRAU::SafeCopy(char const *)
?SafeCopy@STRAU@@QAEHPBD@Z
; public: int __thiscall STRAU::SafeCopy(unsigned short const *)
?SafeCopy@STRAU@@QAEHPBG@Z
; public: int __thiscall MB::Save(void)
?Save@MB@@QAEHXZ
ScheduleAdjustTime
ScheduleWorkItem
SchedulerInitialize
SchedulerTerminate
; public: unsigned short __thiscall CDFTCache::Seconds(void)const 
?Seconds@CDFTCache@@QBEGXZ
; public: void __thiscall W3_TRACE_LOG::SetBlocking(int)
?SetBlocking@W3_TRACE_LOG@@QAEXH@Z
; public: void __thiscall CLKRHashTable::SetBucketLockSpinCount(unsigned short)
?SetBucketLockSpinCount@CLKRHashTable@@QAEXG@Z
; public: void __thiscall CLKRLinearHashTable::SetBucketLockSpinCount(unsigned short)
?SetBucketLockSpinCount@CLKRLinearHashTable@@QAEXG@Z
; public: void __thiscall W3_TRACE_LOG::SetBuffering(int)
?SetBuffering@W3_TRACE_LOG@@QAEXH@Z
; public: int __thiscall MB::SetData(unsigned short const *,unsigned long,unsigned long,unsigned long,void *,unsigned long,unsigned long)
?SetData@MB@@QAEHPBGKKKPAXKK@Z
; public: static void __stdcall CCritSec::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CCritSec@@SGXN@Z
; public: static void __stdcall CFakeLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CFakeLock@@SGXN@Z
; public: static void __stdcall CReaderWriterLock2::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock2@@SGXN@Z
; public: static void __stdcall CReaderWriterLock3::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock3@@SGXN@Z
; public: static void __stdcall CReaderWriterLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock@@SGXN@Z
; public: static void __stdcall CRtlResource::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CRtlResource@@SGXN@Z
; public: static void __stdcall CShareLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CShareLock@@SGXN@Z
; public: static void __stdcall CSmallSpinLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CSmallSpinLock@@SGXN@Z
; public: static void __stdcall CSpinLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CSpinLock@@SGXN@Z
; public: static void __stdcall CCritSec::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CCritSec@@SGXG@Z
; public: static void __stdcall CFakeLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CFakeLock@@SGXG@Z
; public: static void __stdcall CReaderWriterLock2::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock2@@SGXG@Z
; public: static void __stdcall CReaderWriterLock3::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock3@@SGXG@Z
; public: static void __stdcall CReaderWriterLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock@@SGXG@Z
; public: static void __stdcall CRtlResource::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CRtlResource@@SGXG@Z
; public: static void __stdcall CShareLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CShareLock@@SGXG@Z
; public: static void __stdcall CSmallSpinLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CSmallSpinLock@@SGXG@Z
; public: static void __stdcall CSpinLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CSpinLock@@SGXG@Z
; public: int __thiscall MB::SetDword(unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned long)
?SetDword@MB@@QAEHPBGKKKK@Z
SetExplicitAccessSettings
; public: int __thiscall STRA::SetLen(unsigned long)
?SetLen@STRA@@QAEHK@Z
; public: int __thiscall STRAU::SetLen(unsigned long)
?SetLen@STRAU@@QAEHK@Z
; public: int __thiscall STRU::SetLen(unsigned long)
?SetLen@STRU@@QAEHK@Z
; public: void __thiscall ASCLOG_DATETIME_CACHE::SetLocalTime(struct _SYSTEMTIME *)
?SetLocalTime@ASCLOG_DATETIME_CACHE@@QAEXPAU_SYSTEMTIME@@@Z
; public: static int __stdcall ALLOC_CACHE_HANDLER::SetLookasideCleanupInterval(void)
?SetLookasideCleanupInterval@ALLOC_CACHE_HANDLER@@SGHXZ
; public: bool __thiscall CCritSec::SetSpinCount(unsigned short)
?SetSpinCount@CCritSec@@QAE_NG@Z
; public: static unsigned long __stdcall CCritSec::SetSpinCount(struct _RTL_CRITICAL_SECTION *,unsigned long)
?SetSpinCount@CCritSec@@SGKPAU_RTL_CRITICAL_SECTION@@K@Z
; public: bool __thiscall CFakeLock::SetSpinCount(unsigned short)
?SetSpinCount@CFakeLock@@QAE_NG@Z
; public: bool __thiscall CReaderWriterLock2::SetSpinCount(unsigned short)
?SetSpinCount@CReaderWriterLock2@@QAE_NG@Z
; public: bool __thiscall CReaderWriterLock3::SetSpinCount(unsigned short)
?SetSpinCount@CReaderWriterLock3@@QAE_NG@Z
; public: bool __thiscall CReaderWriterLock::SetSpinCount(unsigned short)
?SetSpinCount@CReaderWriterLock@@QAE_NG@Z
; public: bool __thiscall CRtlResource::SetSpinCount(unsigned short)
?SetSpinCount@CRtlResource@@QAE_NG@Z
; public: bool __thiscall CShareLock::SetSpinCount(unsigned short)
?SetSpinCount@CShareLock@@QAE_NG@Z
; public: bool __thiscall CSmallSpinLock::SetSpinCount(unsigned short)
?SetSpinCount@CSmallSpinLock@@QAE_NG@Z
; public: bool __thiscall CSpinLock::SetSpinCount(unsigned short)
?SetSpinCount@CSpinLock@@QAE_NG@Z
; public: int __thiscall MB::SetString(unsigned short const *,unsigned long,unsigned long,unsigned short const *,unsigned long)
?SetString@MB@@QAEHPBGKK0K@Z
SetStringParameterValueInAnyService
; public: void __thiscall EXTLOG_DATETIME_CACHE::SetSystemTime(struct _SYSTEMTIME *)
?SetSystemTime@EXTLOG_DATETIME_CACHE@@QAEXPAU_SYSTEMTIME@@@Z
; public: void __thiscall CLKRHashTable::SetTableLockSpinCount(unsigned short)
?SetTableLockSpinCount@CLKRHashTable@@QAEXG@Z
; public: void __thiscall CLKRLinearHashTable::SetTableLockSpinCount(unsigned short)
?SetTableLockSpinCount@CLKRLinearHashTable@@QAEXG@Z
; public: int __thiscall CDateTime::SetTime(struct _FILETIME const &)
?SetTime@CDateTime@@QAEHABU_FILETIME@@@Z
; public: int __thiscall CDateTime::SetTime(struct _SYSTEMTIME const &)
?SetTime@CDateTime@@QAEHABU_SYSTEMTIME@@@Z
; public: void __thiscall BUFFER_CHAIN_ITEM::SetUsed(unsigned long)
?SetUsed@BUFFER_CHAIN_ITEM@@QAEXK@Z
; public: void __thiscall BUFFER::SetValid(int)
?SetValid@BUFFER@@QAEXH@Z
; public: virtual long __stdcall MB_BASE_NOTIFICATION_SINK::ShutdownNotify(void)
?ShutdownNotify@MB_BASE_NOTIFICATION_SINK@@UAGJXZ
; public: virtual long __stdcall MB_BASE_NOTIFICATION_SINK::SinkNotify(unsigned long,struct _MD_CHANGE_OBJECT_W * const)
?SinkNotify@MB_BASE_NOTIFICATION_SINK@@UAGJKQAU_MD_CHANGE_OBJECT_W@@@Z
; public: unsigned long __thiscall CLKRHashTable::Size(void)const 
?Size@CLKRHashTable@@QBEKXZ
; public: unsigned long __thiscall CLKRLinearHashTable::Size(void)const 
?Size@CLKRLinearHashTable@@QBEKXZ
SkipTo
SkipWhite
; private: unsigned char __thiscall CSharelock::SleepWaitingForLock(int)
?SleepWaitingForLock@CSharelock@@AAEEH@Z
StartIISAdminMonitor
; public: long __thiscall MB_BASE_NOTIFICATION_SINK::StartListening(struct IUnknown *)
?StartListening@MB_BASE_NOTIFICATION_SINK@@QAEJPAUIUnknown@@@Z
StopIISAdminMonitor
; public: long __thiscall MB_BASE_NOTIFICATION_SINK::StopListening(struct IUnknown *)
?StopListening@MB_BASE_NOTIFICATION_SINK@@QAEJPAUIUnknown@@@Z
; int __stdcall StringTimeToFileTime(char const *,union _LARGE_INTEGER *)
?StringTimeToFileTime@@YGHPBDPAT_LARGE_INTEGER@@@Z
; public: int __thiscall EVENT_LOG::Success(void)const 
?Success@EVENT_LOG@@QBEHXZ
; public: void __thiscall STRA::SyncWithBuffer(void)
?SyncWithBuffer@STRA@@QAEXXZ
; public: void __thiscall STRU::SyncWithBuffer(void)
?SyncWithBuffer@STRU@@QAEXXZ
; public: virtual long __stdcall MB_BASE_NOTIFICATION_SINK::SynchronizedShutdownNotify(void)
?SynchronizedShutdownNotify@MB_BASE_NOTIFICATION_SINK@@UAGJXZ
SystemTimeToGMT
; int __stdcall SystemTimeToGMTEx(struct _SYSTEMTIME const &,char *,unsigned long,unsigned long)
?SystemTimeToGMTEx@@YGHABU_SYSTEMTIME@@PADKK@Z
; private: static void __stdcall W3_TRACE_LOG_FACTORY::TimerCallback(void *,unsigned char)
?TimerCallback@W3_TRACE_LOG_FACTORY@@CGXPAXE@Z
; public: long __cdecl W3_TRACE_LOG::Trace(unsigned short const *,...)
?Trace@W3_TRACE_LOG@@QAAJPBGZZ
; public: int __thiscall CEtwTracer::TracePerUrlEnabled(void)
?TracePerUrlEnabled@CEtwTracer@@QAEHXZ
; public: bool __thiscall CReaderWriterLock3::TryConvertSharedToExclusive(void)
?TryConvertSharedToExclusive@CReaderWriterLock3@@QAE_NXZ
; public: bool __thiscall CCritSec::TryReadLock(void)
?TryReadLock@CCritSec@@QAE_NXZ
; public: bool __thiscall CFakeLock::TryReadLock(void)
?TryReadLock@CFakeLock@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock2::TryReadLock(void)
?TryReadLock@CReaderWriterLock2@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock3::TryReadLock(void)
?TryReadLock@CReaderWriterLock3@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock::TryReadLock(void)
?TryReadLock@CReaderWriterLock@@QAE_NXZ
; public: bool __thiscall CRtlResource::TryReadLock(void)
?TryReadLock@CRtlResource@@QAE_NXZ
; public: bool __thiscall CShareLock::TryReadLock(void)
?TryReadLock@CShareLock@@QAE_NXZ
; public: bool __thiscall CSmallSpinLock::TryReadLock(void)
?TryReadLock@CSmallSpinLock@@QAE_NXZ
; public: bool __thiscall CSpinLock::TryReadLock(void)
?TryReadLock@CSpinLock@@QAE_NXZ
; public: bool __thiscall CCritSec::TryWriteLock(void)
?TryWriteLock@CCritSec@@QAE_NXZ
; public: bool __thiscall CFakeLock::TryWriteLock(void)
?TryWriteLock@CFakeLock@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock2::TryWriteLock(void)
?TryWriteLock@CReaderWriterLock2@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock3::TryWriteLock(void)
?TryWriteLock@CReaderWriterLock3@@QAE_NXZ
; public: bool __thiscall CReaderWriterLock::TryWriteLock(void)
?TryWriteLock@CReaderWriterLock@@QAE_NXZ
; public: bool __thiscall CRtlResource::TryWriteLock(void)
?TryWriteLock@CRtlResource@@QAE_NXZ
; public: bool __thiscall CShareLock::TryWriteLock(void)
?TryWriteLock@CShareLock@@QAE_NXZ
; public: bool __thiscall CSmallSpinLock::TryWriteLock(void)
?TryWriteLock@CSmallSpinLock@@QAE_NXZ
; public: bool __thiscall CSpinLock::TryWriteLock(void)
?TryWriteLock@CSpinLock@@QAE_NXZ
; long __stdcall UlCleanAndCopyUrl(unsigned char *,unsigned long,unsigned long *,unsigned short *,unsigned short * *)
?UlCleanAndCopyUrl@@YGJPAEKPAKPAGPAPAG@Z
; public: unsigned long __thiscall CEtwTracer::UnRegister(void)
?UnRegister@CEtwTracer@@QAEKXZ
; public: void __thiscall W3_TRACE_LOG::Undent(void)
?Undent@W3_TRACE_LOG@@QAEXXZ
; public: long __thiscall STRA::Unescape(void)
?Unescape@STRA@@QAEJXZ
; public: long __thiscall STRU::Unescape(void)
?Unescape@STRU@@QAEJXZ
; private: void __thiscall ALLOC_CACHE_HANDLER::Unlock(void)
?Unlock@ALLOC_CACHE_HANDLER@@AAEXXZ
; public: void __thiscall CLockedDoubleList::Unlock(void)
?Unlock@CLockedDoubleList@@QAEXXZ
; public: void __thiscall CLockedSingleList::Unlock(void)
?Unlock@CLockedSingleList@@QAEXXZ
; public: void __thiscall TS_RESOURCE::Unlock(void)
?Unlock@TS_RESOURCE@@QAEXXZ
; public: unsigned char __thiscall CSharelock::UpdateMaxSpins(int)
?UpdateMaxSpins@CSharelock@@QAEEH@Z
; public: unsigned char __thiscall CSharelock::UpdateMaxUsers(int)
?UpdateMaxUsers@CSharelock@@QAEEH@Z
; public: bool __thiscall CLKRHashTable::ValidSignature(void)const 
?ValidSignature@CLKRHashTable@@QBE_NXZ
; public: bool __thiscall CLKRLinearHashTable::ValidSignature(void)const 
?ValidSignature@CLKRLinearHashTable@@QBE_NXZ
; private: void __thiscall BUFFER::VerifyState(void)const 
?VerifyState@BUFFER@@ABEXXZ
WCopyToA
; private: unsigned char __thiscall CSharelock::WaitForExclusiveLock(int)
?WaitForExclusiveLock@CSharelock@@AAEEH@Z
; private: unsigned char __thiscall CSharelock::WaitForShareLock(int)
?WaitForShareLock@CSharelock@@AAEEH@Z
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<1,1,3,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$00$00$02$00$02$01@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<2,1,1,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$01$00$00$00$02$01@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<3,1,1,1,1,1>::WaitType(void)
?WaitType@?$CLockBase@$02$00$00$00$00$00@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<4,1,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$03$00$00$01$02$02@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<5,2,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$04$01$00$01$02$02@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<6,2,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$05$01$00$01$02$02@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<7,2,2,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$06$01$01$00$02$01@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<8,2,2,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$07$01$01$00$02$01@@SG?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __stdcall CLockBase<9,2,1,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$08$01$00$00$02$01@@SG?AW4LOCK_WAIT_TYPE@@XZ
; private: void __thiscall CSharelock::WakeAllSleepers(void)
?WakeAllSleepers@CSharelock@@AAEXXZ
; public: bool __thiscall CDataCache<struct DATETIME_FORMAT_ENTRY>::Write(struct DATETIME_FORMAT_ENTRY const &)
?Write@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QAE_NABUDATETIME_FORMAT_ENTRY@@@Z
; public: bool __thiscall CDataCache<class CDateTime>::Write(class CDateTime const &)
?Write@?$CDataCache@VCDateTime@@@@QAE_NABVCDateTime@@@Z
; public: void __thiscall CCritSec::WriteLock(void)
?WriteLock@CCritSec@@QAEXXZ
; public: void __thiscall CFakeLock::WriteLock(void)
?WriteLock@CFakeLock@@QAEXXZ
; public: void __thiscall CLKRHashTable::WriteLock(void)
?WriteLock@CLKRHashTable@@QAEXXZ
; public: void __thiscall CLKRLinearHashTable::WriteLock(void)
?WriteLock@CLKRLinearHashTable@@QAEXXZ
; public: void __thiscall CReaderWriterLock2::WriteLock(void)
?WriteLock@CReaderWriterLock2@@QAEXXZ
; public: void __thiscall CReaderWriterLock3::WriteLock(void)
?WriteLock@CReaderWriterLock3@@QAEXXZ
; public: void __thiscall CReaderWriterLock::WriteLock(void)
?WriteLock@CReaderWriterLock@@QAEXXZ
; public: void __thiscall CRtlResource::WriteLock(void)
?WriteLock@CRtlResource@@QAEXXZ
; public: void __thiscall CShareLock::WriteLock(void)
?WriteLock@CShareLock@@QAEXXZ
; public: void __thiscall CSmallSpinLock::WriteLock(void)
?WriteLock@CSmallSpinLock@@QAEXXZ
; public: void __thiscall CSpinLock::WriteLock(void)
?WriteLock@CSpinLock@@QAEXXZ
; public: long __thiscall IPM_MESSAGE_PIPE::WriteMessage(enum IPM_OPCODE,unsigned long,void *)
?WriteMessage@IPM_MESSAGE_PIPE@@QAEJW4IPM_OPCODE@@KPAX@Z
; public: void __thiscall CCritSec::WriteUnlock(void)
?WriteUnlock@CCritSec@@QAEXXZ
; public: void __thiscall CFakeLock::WriteUnlock(void)
?WriteUnlock@CFakeLock@@QAEXXZ
; public: void __thiscall CLKRHashTable::WriteUnlock(void)const 
?WriteUnlock@CLKRHashTable@@QBEXXZ
; public: void __thiscall CLKRLinearHashTable::WriteUnlock(void)const 
?WriteUnlock@CLKRLinearHashTable@@QBEXXZ
; public: void __thiscall CReaderWriterLock2::WriteUnlock(void)
?WriteUnlock@CReaderWriterLock2@@QAEXXZ
; public: void __thiscall CReaderWriterLock3::WriteUnlock(void)
?WriteUnlock@CReaderWriterLock3@@QAEXXZ
; public: void __thiscall CReaderWriterLock::WriteUnlock(void)
?WriteUnlock@CReaderWriterLock@@QAEXXZ
; public: void __thiscall CRtlResource::WriteUnlock(void)
?WriteUnlock@CRtlResource@@QAEXXZ
; public: void __thiscall CShareLock::WriteUnlock(void)
?WriteUnlock@CShareLock@@QAEXXZ
; public: void __thiscall CSmallSpinLock::WriteUnlock(void)
?WriteUnlock@CSmallSpinLock@@QAEXXZ
; public: void __thiscall CSpinLock::WriteUnlock(void)
?WriteUnlock@CSpinLock@@QAEXXZ
; protected: void __thiscall CLKRLinearHashTable_Iterator::_AddRef(int)const 
?_AddRef@CLKRLinearHashTable_Iterator@@IBEXH@Z
; private: void __thiscall CLKRLinearHashTable::_AddRefRecord(void const *,int)const 
?_AddRefRecord@CLKRLinearHashTable@@ABEXPBXH@Z
; private: static class CNodeClump * __stdcall CLKRLinearHashTable::_AllocateNodeClump(void)
?_AllocateNodeClump@CLKRLinearHashTable@@CGQAVCNodeClump@@XZ
; private: class CSegment * __thiscall CLKRLinearHashTable::_AllocateSegment(void)const 
?_AllocateSegment@CLKRLinearHashTable@@ABEQAVCSegment@@XZ
; private: static class CDirEntry * __stdcall CLKRLinearHashTable::_AllocateSegmentDirectory(unsigned int)
?_AllocateSegmentDirectory@CLKRLinearHashTable@@CGQAVCDirEntry@@I@Z
; private: static class CLKRLinearHashTable * __stdcall CLKRHashTable::_AllocateSubTable(char const *,unsigned long const  (__stdcall*)(void const *),unsigned long (__stdcall*)(unsigned long),bool (__stdcall*)(unsigned long,unsigned long),void (__stdcall*)(void const *,int),double,unsigned long,class CLKRHashTable *,bool)
?_AllocateSubTable@CLKRHashTable@@CGQAVCLKRLinearHashTable@@PBDP6G?BKPBX@ZP6GKK@ZP6G_NKK@ZP6GX1H@ZNKPAV1@_N@Z
; private: static class CLKRLinearHashTable * * __stdcall CLKRHashTable::_AllocateSubTableArray(unsigned int)
?_AllocateSubTableArray@CLKRHashTable@@CGQAPAVCLKRLinearHashTable@@I@Z
; private: unsigned long __thiscall CLKRLinearHashTable::_Apply(enum LK_ACTION  (__stdcall*)(void const *,void *),void *,enum LK_LOCKTYPE,enum LK_PREDICATE &)
?_Apply@CLKRLinearHashTable@@AAEKP6G?AW4LK_ACTION@@PBXPAX@Z1W4LK_LOCKTYPE@@AAW4LK_PREDICATE@@@Z
; private: unsigned long __thiscall CLKRLinearHashTable::_ApplyIf(enum LK_PREDICATE  (__stdcall*)(void const *,void *),enum LK_ACTION  (__stdcall*)(void const *,void *),void *,enum LK_LOCKTYPE,enum LK_PREDICATE &)
?_ApplyIf@CLKRLinearHashTable@@AAEKP6G?AW4LK_PREDICATE@@PBXPAX@ZP6G?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@AAW42@@Z
; private: class CBucket * __thiscall CLKRLinearHashTable::_Bucket(unsigned long)const 
?_Bucket@CLKRLinearHashTable@@ABEPAVCBucket@@K@Z
; private: unsigned long __thiscall CLKRLinearHashTable::_BucketAddress(unsigned long)const 
?_BucketAddress@CLKRLinearHashTable@@ABEKK@Z
; private: unsigned long __thiscall CLKRHashTable::_CalcKeyHash(unsigned long)const 
?_CalcKeyHash@CLKRHashTable@@ABEKK@Z
; private: unsigned long __thiscall CLKRLinearHashTable::_CalcKeyHash(unsigned long)const 
?_CalcKeyHash@CLKRLinearHashTable@@ABEKK@Z
; private: void __thiscall CLKRLinearHashTable::_Clear(bool)
?_Clear@CLKRLinearHashTable@@AAEX_N@Z
; private: bool __thiscall CReaderWriterLock2::_CmpExch(long,long)
?_CmpExch@CReaderWriterLock2@@AAE_NJJ@Z
; private: bool __thiscall CReaderWriterLock3::_CmpExch(long,long)
?_CmpExch@CReaderWriterLock3@@AAE_NJJ@Z
; private: bool __thiscall CReaderWriterLock::_CmpExch(long,long)
?_CmpExch@CReaderWriterLock@@AAE_NJJ@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_Contract(void)
?_Contract@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@XZ
; private: static long __stdcall CReaderWriterLock3::_CurrentThreadId(void)
?_CurrentThreadId@CReaderWriterLock3@@CGJXZ
; private: static long __stdcall CSmallSpinLock::_CurrentThreadId(void)
?_CurrentThreadId@CSmallSpinLock@@CGJXZ
; private: static long __stdcall CSpinLock::_CurrentThreadId(void)
?_CurrentThreadId@CSpinLock@@CGJXZ
; private: unsigned long __thiscall CLKRLinearHashTable::_DeleteIf(enum LK_PREDICATE  (__stdcall*)(void const *,void *),void *,enum LK_PREDICATE &)
?_DeleteIf@CLKRLinearHashTable@@AAEKP6G?AW4LK_PREDICATE@@PBXPAX@Z1AAW42@@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_DeleteKey(unsigned long,unsigned long)
?_DeleteKey@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@KK@Z
; private: bool __thiscall CLKRLinearHashTable::_DeleteNode(class CBucket *,class CNodeClump * &,class CNodeClump * &,int &)
?_DeleteNode@CLKRLinearHashTable@@AAE_NPAVCBucket@@AAPAVCNodeClump@@1AAH@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_DeleteRecord(void const *,unsigned long)
?_DeleteRecord@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@PBXK@Z
; private: bool __thiscall CLKRLinearHashTable::_EqualKeys(unsigned long,unsigned long)const 
?_EqualKeys@CLKRLinearHashTable@@ABE_NKK@Z
; private: bool __thiscall CLKRLinearHashTable::_Erase(class CLKRLinearHashTable_Iterator &,unsigned long)
?_Erase@CLKRLinearHashTable@@AAE_NAAVCLKRLinearHashTable_Iterator@@K@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_Expand(void)
?_Expand@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@XZ
; private: unsigned long const  __thiscall CLKRHashTable::_ExtractKey(void const *)const 
?_ExtractKey@CLKRHashTable@@ABE?BKPBX@Z
; private: unsigned long const  __thiscall CLKRLinearHashTable::_ExtractKey(void const *)const 
?_ExtractKey@CLKRLinearHashTable@@ABE?BKPBX@Z
; private: class CBucket * __thiscall CLKRLinearHashTable::_FindBucket(unsigned long,bool)const 
?_FindBucket@CLKRLinearHashTable@@ABEPAVCBucket@@K_N@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_FindKey(unsigned long,unsigned long,void const * *,class CLKRLinearHashTable_Iterator *)const 
?_FindKey@CLKRLinearHashTable@@ABE?AW4LK_RETCODE@@KKPAPBXPAVCLKRLinearHashTable_Iterator@@@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_FindRecord(void const *,unsigned long)const 
?_FindRecord@CLKRLinearHashTable@@ABE?AW4LK_RETCODE@@PBXK@Z
; private: static bool __stdcall CLKRLinearHashTable::_FreeNodeClump(class CNodeClump *)
?_FreeNodeClump@CLKRLinearHashTable@@CG_NPAVCNodeClump@@@Z
; private: bool __thiscall CLKRLinearHashTable::_FreeSegment(class CSegment *)const 
?_FreeSegment@CLKRLinearHashTable@@ABE_NPAVCSegment@@@Z
; private: bool __thiscall CLKRLinearHashTable::_FreeSegmentDirectory(void)
?_FreeSegmentDirectory@CLKRLinearHashTable@@AAE_NXZ
; private: static bool __stdcall CLKRHashTable::_FreeSubTable(class CLKRLinearHashTable *)
?_FreeSubTable@CLKRHashTable@@CG_NPAVCLKRLinearHashTable@@@Z
; private: static bool __stdcall CLKRHashTable::_FreeSubTableArray(class CLKRLinearHashTable * *)
?_FreeSubTableArray@CLKRHashTable@@CG_NPAPAVCLKRLinearHashTable@@@Z
; private: unsigned long __thiscall CLKRLinearHashTable::_H0(unsigned long)const 
?_H0@CLKRLinearHashTable@@ABEKK@Z
; private: static unsigned long __stdcall CLKRLinearHashTable::_H0(unsigned long,unsigned long)
?_H0@CLKRLinearHashTable@@CGKKK@Z
; private: unsigned long __thiscall CLKRLinearHashTable::_H1(unsigned long)const 
?_H1@CLKRLinearHashTable@@ABEKK@Z
; private: static unsigned long __stdcall CLKRLinearHashTable::_H1(unsigned long,unsigned long)
?_H1@CLKRLinearHashTable@@CGKKK@Z
; protected: bool __thiscall CLKRHashTable_Iterator::_Increment(bool)
?_Increment@CLKRHashTable_Iterator@@IAE_N_N@Z
; protected: bool __thiscall CLKRLinearHashTable_Iterator::_Increment(bool)
?_Increment@CLKRLinearHashTable_Iterator@@IAE_N_N@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_Initialize(unsigned long const  (__stdcall*)(void const *),unsigned long (__stdcall*)(unsigned long),bool (__stdcall*)(unsigned long,unsigned long),void (__stdcall*)(void const *,int),char const *,double,unsigned long)
?_Initialize@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@P6G?BKPBX@ZP6GKK@ZP6G_NKK@ZP6GX0H@ZPBDNK@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_InsertRecord(void const *,unsigned long,bool,class CLKRLinearHashTable_Iterator *)
?_InsertRecord@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@PBXK_NPAVCLKRLinearHashTable_Iterator@@@Z
; private: void __thiscall CLKRHashTable::_InsertThisIntoGlobalList(void)
?_InsertThisIntoGlobalList@CLKRHashTable@@AAEXXZ
; private: void __thiscall CLKRLinearHashTable::_InsertThisIntoGlobalList(void)
?_InsertThisIntoGlobalList@CLKRLinearHashTable@@AAEXXZ
; private: bool __thiscall CSpinLock::_IsLocked(void)const 
?_IsLocked@CSpinLock@@ABE_NXZ
; private: int __thiscall CLKRLinearHashTable::_IsNodeCompact(class CBucket * const)const 
?_IsNodeCompact@CLKRLinearHashTable@@ABEHQAVCBucket@@@Z
; private: bool __thiscall CLKRHashTable::_IsValidIterator(class CLKRHashTable_Iterator const &)const 
?_IsValidIterator@CLKRHashTable@@ABE_NABVCLKRHashTable_Iterator@@@Z
; private: bool __thiscall CLKRLinearHashTable::_IsValidIterator(class CLKRLinearHashTable_Iterator const &)const 
?_IsValidIterator@CLKRLinearHashTable@@ABE_NABVCLKRLinearHashTable_Iterator@@@Z
; private: void __thiscall CSpinLock::_Lock(void)
?_Lock@CSpinLock@@AAEXXZ
; private: void __thiscall CReaderWriterLock2::_LockSpin(bool)
?_LockSpin@CReaderWriterLock2@@AAEX_N@Z
; private: void __thiscall CReaderWriterLock3::_LockSpin(enum CReaderWriterLock3::SPIN_TYPE)
?_LockSpin@CReaderWriterLock3@@AAEXW4SPIN_TYPE@1@@Z
; private: void __thiscall CReaderWriterLock::_LockSpin(bool)
?_LockSpin@CReaderWriterLock@@AAEX_N@Z
; private: void __thiscall CSmallSpinLock::_LockSpin(void)
?_LockSpin@CSmallSpinLock@@AAEXXZ
; private: void __thiscall CSpinLock::_LockSpin(void)
?_LockSpin@CSpinLock@@AAEXXZ
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_MergeRecordSets(class CBucket *,class CNodeClump *,class CNodeClump *)
?_MergeRecordSets@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@PAVCBucket@@PAVCNodeClump@@1@Z
; private: static enum LK_PREDICATE  __stdcall CLKRLinearHashTable::_PredTrue(void const *,void *)
?_PredTrue@CLKRLinearHashTable@@CG?AW4LK_PREDICATE@@PBXPAX@Z
; private: void __thiscall CReaderWriterLock2::_ReadLockSpin(void)
?_ReadLockSpin@CReaderWriterLock2@@AAEXXZ
; private: void __thiscall CReaderWriterLock3::_ReadLockSpin(enum CReaderWriterLock3::SPIN_TYPE)
?_ReadLockSpin@CReaderWriterLock3@@AAEXW4SPIN_TYPE@1@@Z
; private: void __thiscall CReaderWriterLock::_ReadLockSpin(void)
?_ReadLockSpin@CReaderWriterLock@@AAEXXZ
; protected: static void __stdcall CDataCache<struct DATETIME_FORMAT_ENTRY>::_ReadMemoryBarrier(void)
?_ReadMemoryBarrier@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@KGXXZ
; protected: static void __stdcall CDataCache<class CDateTime>::_ReadMemoryBarrier(void)
?_ReadMemoryBarrier@?$CDataCache@VCDateTime@@@@KGXXZ
; private: bool __thiscall CLKRLinearHashTable::_ReadOrWriteLock(void)const 
?_ReadOrWriteLock@CLKRLinearHashTable@@ABE_NXZ
; private: void __thiscall CLKRLinearHashTable::_ReadOrWriteUnlock(bool)const 
?_ReadOrWriteUnlock@CLKRLinearHashTable@@ABEX_N@Z
; protected: long __thiscall CDataCache<struct DATETIME_FORMAT_ENTRY>::_ReadSequence(void)const 
?_ReadSequence@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@IBEJXZ
; protected: long __thiscall CDataCache<class CDateTime>::_ReadSequence(void)const 
?_ReadSequence@?$CDataCache@VCDateTime@@@@IBEJXZ
; private: void __thiscall CLKRHashTable::_RemoveThisFromGlobalList(void)
?_RemoveThisFromGlobalList@CLKRHashTable@@AAEXXZ
; private: void __thiscall CLKRLinearHashTable::_RemoveThisFromGlobalList(void)
?_RemoveThisFromGlobalList@CLKRLinearHashTable@@AAEXXZ
; private: unsigned long __thiscall CLKRLinearHashTable::_SegIndex(unsigned long)const 
?_SegIndex@CLKRLinearHashTable@@ABEKK@Z
; private: class CSegment * & __thiscall CLKRLinearHashTable::_Segment(unsigned long)const 
?_Segment@CLKRLinearHashTable@@ABEAAPAVCSegment@@K@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_SetSegVars(enum LK_TABLESIZE,unsigned long)
?_SetSegVars@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@W4LK_TABLESIZE@@K@Z
; protected: long __thiscall CDataCache<struct DATETIME_FORMAT_ENTRY>::_SetSequence(long)
?_SetSequence@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@IAEJJ@Z
; protected: long __thiscall CDataCache<class CDateTime>::_SetSequence(long)
?_SetSequence@?$CDataCache@VCDateTime@@@@IAEJJ@Z
; private: enum LK_RETCODE  __thiscall CLKRLinearHashTable::_SplitRecordSet(class CNodeClump *,class CNodeClump *,unsigned long,unsigned long,unsigned long,class CNodeClump *)
?_SplitRecordSet@CLKRLinearHashTable@@AAE?AW4LK_RETCODE@@PAVCNodeClump@@0KKK0@Z
; private: class CLKRLinearHashTable * __thiscall CLKRHashTable::_SubTable(unsigned long)const 
?_SubTable@CLKRHashTable@@ABEPAVCLKRLinearHashTable@@K@Z
; private: int __thiscall CLKRHashTable::_SubTableIndex(class CLKRLinearHashTable *)const 
?_SubTableIndex@CLKRHashTable@@ABEHPAVCLKRLinearHashTable@@@Z
; private: bool __thiscall CSmallSpinLock::_TryLock(void)
?_TryLock@CSmallSpinLock@@AAE_NXZ
; private: bool __thiscall CSpinLock::_TryLock(void)
?_TryLock@CSpinLock@@AAE_NXZ
; private: bool __thiscall CReaderWriterLock2::_TryReadLock(void)
?_TryReadLock@CReaderWriterLock2@@AAE_NXZ
; private: bool __thiscall CReaderWriterLock3::_TryReadLock(void)
?_TryReadLock@CReaderWriterLock3@@AAE_NXZ
; private: bool __thiscall CReaderWriterLock::_TryReadLock(void)
?_TryReadLock@CReaderWriterLock@@AAE_NXZ
; private: bool __thiscall CReaderWriterLock3::_TryReadLockRecursive(void)
?_TryReadLockRecursive@CReaderWriterLock3@@AAE_NXZ
; private: bool __thiscall CReaderWriterLock3::_TryWriteLock2(void)
?_TryWriteLock2@CReaderWriterLock3@@AAE_NXZ
; private: bool __thiscall CReaderWriterLock2::_TryWriteLock(long)
?_TryWriteLock@CReaderWriterLock2@@AAE_NJ@Z
; private: bool __thiscall CReaderWriterLock3::_TryWriteLock(long)
?_TryWriteLock@CReaderWriterLock3@@AAE_NJ@Z
; private: bool __thiscall CReaderWriterLock::_TryWriteLock(void)
?_TryWriteLock@CReaderWriterLock@@AAE_NXZ
; private: void __thiscall CSpinLock::_Unlock(void)
?_Unlock@CSpinLock@@AAEXXZ
; private: void __thiscall CReaderWriterLock2::_WriteLockSpin(void)
?_WriteLockSpin@CReaderWriterLock2@@AAEXXZ
; private: void __thiscall CReaderWriterLock3::_WriteLockSpin(void)
?_WriteLockSpin@CReaderWriterLock3@@AAEXXZ
; private: void __thiscall CReaderWriterLock::_WriteLockSpin(void)
?_WriteLockSpin@CReaderWriterLock@@AAEXXZ
; long const * const  `public: static long const * __stdcall CLKRHashTableStats::BucketSizes(void)'::`2'::s_aBucketSizes
?s_aBucketSizes@?1??BucketSizes@CLKRHashTableStats@@SGPBJXZ@4QBJB
; private: static struct _RTL_CRITICAL_SECTION  ALLOC_CACHE_HANDLER::sm_csItems
?sm_csItems@ALLOC_CACHE_HANDLER@@0U_RTL_CRITICAL_SECTION@@A DATA
; protected: static double  CCritSec::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CCritSec@@1NA DATA
; protected: static double  CFakeLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CFakeLock@@1NA DATA
; protected: static double  CReaderWriterLock2::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CReaderWriterLock2@@1NA DATA
; protected: static double  CReaderWriterLock3::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CReaderWriterLock3@@1NA DATA
; protected: static double  CReaderWriterLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CReaderWriterLock@@1NA DATA
; protected: static double  CRtlResource::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CRtlResource@@1NA DATA
; protected: static double  CShareLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CShareLock@@1NA DATA
; protected: static double  CSmallSpinLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CSmallSpinLock@@1NA DATA
; protected: static double  CSpinLock::sm_dblDfltSpinAdjFctr
?sm_dblDfltSpinAdjFctr@CSpinLock@@1NA DATA
; private: static int  ALLOC_CACHE_HANDLER::sm_fInitCsItems
?sm_fInitCsItems@ALLOC_CACHE_HANDLER@@0HA DATA
; private: static void *  ALLOC_CACHE_HANDLER::sm_hTimer
?sm_hTimer@ALLOC_CACHE_HANDLER@@0PAXA DATA
; private: static struct _LIST_ENTRY  ALLOC_CACHE_HANDLER::sm_lItemsHead
?sm_lItemsHead@ALLOC_CACHE_HANDLER@@0U_LIST_ENTRY@@A DATA
; private: static class CLockedDoubleList  CLKRHashTable::sm_llGlobalList
?sm_llGlobalList@CLKRHashTable@@0VCLockedDoubleList@@A DATA
; private: static class CLockedDoubleList  CLKRLinearHashTable::sm_llGlobalList
?sm_llGlobalList@CLKRLinearHashTable@@0VCLockedDoubleList@@A DATA
; private: static long  ALLOC_CACHE_HANDLER::sm_nFillPattern
?sm_nFillPattern@ALLOC_CACHE_HANDLER@@0JA DATA
; protected: static class ALLOC_CACHE_HANDLER *  CLKRLinearHashTable::sm_palloc
?sm_palloc@CLKRLinearHashTable@@1PAVALLOC_CACHE_HANDLER@@A DATA
; protected: static unsigned short  CCritSec::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CCritSec@@1GA DATA
; protected: static unsigned short  CFakeLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CFakeLock@@1GA DATA
; protected: static unsigned short  CReaderWriterLock2::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CReaderWriterLock2@@1GA DATA
; protected: static unsigned short  CReaderWriterLock3::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CReaderWriterLock3@@1GA DATA
; protected: static unsigned short  CReaderWriterLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CReaderWriterLock@@1GA DATA
; protected: static unsigned short  CRtlResource::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CRtlResource@@1GA DATA
; protected: static unsigned short  CShareLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CShareLock@@1GA DATA
; protected: static unsigned short  CSmallSpinLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CSmallSpinLock@@1GA DATA
; protected: static unsigned short  CSpinLock::sm_wDefaultSpinCount
?sm_wDefaultSpinCount@CSpinLock@@1GA DATA
uudecode
uuencode
CreateRefTraceLog
CreateTraceLog
DestroyRefTraceLog
DestroyTraceLog
_GetAllocCounters@0
GetCurrentTimeInSeconds
_IISGetCurrentTime@8
IISGetPlatformType
IISInitializeCriticalSection
IISSetCriticalSectionSpinCount
InetAcquireResourceExclusive
InetAcquireResourceShared
InetConvertExclusiveToShared
InetConvertSharedToExclusive
InetDeleteResource
InetInitializeResource
InetReleaseResource
InitializeIISUtil
IrtlTrace
_IsValidAddress@12
_IsValidString@8
PuCloseDbgMemoryLog
PuCloseDbgPrintFile
PuCreateDebugPrintsObject
PuDbgAssertFailed
PuDbgCaptureContext
PuDbgCreateEvent
PuDbgCreateMutex
PuDbgCreateSemaphore
PuDbgDump
PuDbgPrint
PuDbgPrintCurrentTime
PuDbgPrintError
PuDeleteDebugPrintsObject
PuGetDbgOutputFlags
PuLoadDebugFlagsFromReg
PuLoadDebugFlagsFromRegStr
PuOpenDbgMemoryLog
PuOpenDbgPrintFile
PuReOpenDbgPrintFile
PuSaveDebugFlagsInReg
PuSetDbgOutputFlags
ResetTraceLog
TerminateIISUtil
WriteRefTraceLog
WriteRefTraceLogEx
WriteTraceLog
