; 
; Exports of file IisRTL.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY IisRTL.DLL
EXPORTS
; public: __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::CDataCache<struct DATETIME_FORMAT_ENTRY>(void) __ptr64
??0?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QEAA@XZ
; public: __cdecl CDataCache<class CDateTime>::CDataCache<class CDateTime>(void) __ptr64
??0?$CDataCache@VCDateTime@@@@QEAA@XZ
; public: __cdecl ALLOC_CACHE_HANDLER::ALLOC_CACHE_HANDLER(char const * __ptr64,struct _ALLOC_CACHE_CONFIGURATION const * __ptr64,int) __ptr64
??0ALLOC_CACHE_HANDLER@@QEAA@PEBDPEBU_ALLOC_CACHE_CONFIGURATION@@H@Z
; public: __cdecl ASCLOG_DATETIME_CACHE::ASCLOG_DATETIME_CACHE(void) __ptr64
??0ASCLOG_DATETIME_CACHE@@QEAA@XZ
; public: __cdecl BUFFER::BUFFER(unsigned int) __ptr64
??0BUFFER@@QEAA@I@Z
; public: __cdecl BUFFER::BUFFER(unsigned char * __ptr64,unsigned int) __ptr64
??0BUFFER@@QEAA@PEAEI@Z
; public: __cdecl BUFFER_CHAIN::BUFFER_CHAIN(void) __ptr64
??0BUFFER_CHAIN@@QEAA@XZ
; public: __cdecl BUFFER_CHAIN_ITEM::BUFFER_CHAIN_ITEM(unsigned int) __ptr64
??0BUFFER_CHAIN_ITEM@@QEAA@I@Z
; public: __cdecl CACHED_DATETIME_FORMATS::CACHED_DATETIME_FORMATS(void) __ptr64
??0CACHED_DATETIME_FORMATS@@QEAA@XZ
; public: __cdecl CCritSec::CCritSec(void) __ptr64
??0CCritSec@@QEAA@XZ
; public: __cdecl CDFTCache::CDFTCache(void) __ptr64
??0CDFTCache@@QEAA@XZ
; public: __cdecl CDateTime::CDateTime(struct _FILETIME const & __ptr64) __ptr64
??0CDateTime@@QEAA@AEBU_FILETIME@@@Z
; public: __cdecl CDateTime::CDateTime(struct _FILETIME const & __ptr64,struct _SYSTEMTIME const & __ptr64) __ptr64
??0CDateTime@@QEAA@AEBU_FILETIME@@AEBU_SYSTEMTIME@@@Z
; public: __cdecl CDateTime::CDateTime(struct _SYSTEMTIME const & __ptr64) __ptr64
??0CDateTime@@QEAA@AEBU_SYSTEMTIME@@@Z
; public: __cdecl CDateTime::CDateTime(void) __ptr64
??0CDateTime@@QEAA@XZ
; public: __cdecl CDoubleList::CDoubleList(void) __ptr64
??0CDoubleList@@QEAA@XZ
; public: __cdecl CEtwTracer::CEtwTracer(void) __ptr64
??0CEtwTracer@@QEAA@XZ
; public: __cdecl CFakeLock::CFakeLock(void) __ptr64
??0CFakeLock@@QEAA@XZ
; public: __cdecl CLKRHashTable::CLKRHashTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,unsigned long,bool) __ptr64
??0CLKRHashTable@@QEAA@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKK_N@Z
; public: __cdecl CLKRHashTableStats::CLKRHashTableStats(void) __ptr64
??0CLKRHashTableStats@@QEAA@XZ
; protected: __cdecl CLKRHashTable_Iterator::CLKRHashTable_Iterator(class CLKRHashTable * __ptr64,short) __ptr64
??0CLKRHashTable_Iterator@@IEAA@PEAVCLKRHashTable@@F@Z
; public: __cdecl CLKRHashTable_Iterator::CLKRHashTable_Iterator(class CLKRHashTable_Iterator const & __ptr64) __ptr64
??0CLKRHashTable_Iterator@@QEAA@AEBV0@@Z
; public: __cdecl CLKRHashTable_Iterator::CLKRHashTable_Iterator(void) __ptr64
??0CLKRHashTable_Iterator@@QEAA@XZ
; private: __cdecl CLKRLinearHashTable::CLKRLinearHashTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,class CLKRHashTable * __ptr64,bool) __ptr64
??0CLKRLinearHashTable@@AEAA@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKPEAVCLKRHashTable@@_N@Z
; public: __cdecl CLKRLinearHashTable::CLKRLinearHashTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,unsigned long,bool) __ptr64
??0CLKRLinearHashTable@@QEAA@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKK_N@Z
; protected: __cdecl CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(class CLKRLinearHashTable * __ptr64,class CNodeClump * __ptr64,unsigned long,short) __ptr64
??0CLKRLinearHashTable_Iterator@@IEAA@PEAVCLKRLinearHashTable@@PEAVCNodeClump@@KF@Z
; public: __cdecl CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(class CLKRLinearHashTable_Iterator const & __ptr64) __ptr64
??0CLKRLinearHashTable_Iterator@@QEAA@AEBV0@@Z
; public: __cdecl CLKRLinearHashTable_Iterator::CLKRLinearHashTable_Iterator(void) __ptr64
??0CLKRLinearHashTable_Iterator@@QEAA@XZ
; public: __cdecl CLockedDoubleList::CLockedDoubleList(void) __ptr64
??0CLockedDoubleList@@QEAA@XZ
; public: __cdecl CLockedSingleList::CLockedSingleList(void) __ptr64
??0CLockedSingleList@@QEAA@XZ
; public: __cdecl CReaderWriterLock2::CReaderWriterLock2(void) __ptr64
??0CReaderWriterLock2@@QEAA@XZ
; public: __cdecl CReaderWriterLock3::CReaderWriterLock3(void) __ptr64
??0CReaderWriterLock3@@QEAA@XZ
; public: __cdecl CReaderWriterLock::CReaderWriterLock(void) __ptr64
??0CReaderWriterLock@@QEAA@XZ
; public: __cdecl CRtlResource::CRtlResource(void) __ptr64
??0CRtlResource@@QEAA@XZ
; public: __cdecl CShareLock::CShareLock(void) __ptr64
??0CShareLock@@QEAA@XZ
; public: __cdecl CSharelock::CSharelock(int,int) __ptr64
??0CSharelock@@QEAA@HH@Z
; public: __cdecl CSingleList::CSingleList(void) __ptr64
??0CSingleList@@QEAA@XZ
; public: __cdecl CSmallSpinLock::CSmallSpinLock(void) __ptr64
??0CSmallSpinLock@@QEAA@XZ
; public: __cdecl CSpinLock::CSpinLock(void) __ptr64
??0CSpinLock@@QEAA@XZ
; public: __cdecl EVENT_LOG::EVENT_LOG(char const * __ptr64) __ptr64
??0EVENT_LOG@@QEAA@PEBD@Z
; public: __cdecl EXTLOG_DATETIME_CACHE::EXTLOG_DATETIME_CACHE(void) __ptr64
??0EXTLOG_DATETIME_CACHE@@QEAA@XZ
; public: __cdecl HASH_TABLE::HASH_TABLE(class HASH_TABLE const & __ptr64) __ptr64
??0HASH_TABLE@@QEAA@AEBV0@@Z
; public: __cdecl HASH_TABLE::HASH_TABLE(unsigned long,char const * __ptr64,unsigned long) __ptr64
??0HASH_TABLE@@QEAA@KPEBDK@Z
; public: __cdecl HASH_TABLE_BUCKET::HASH_TABLE_BUCKET(void) __ptr64
??0HASH_TABLE_BUCKET@@QEAA@XZ
; public: __cdecl HTB_ELEMENT::HTB_ELEMENT(void) __ptr64
??0HTB_ELEMENT@@QEAA@XZ
; public: __cdecl HT_ELEMENT::HT_ELEMENT(class HT_ELEMENT const & __ptr64) __ptr64
??0HT_ELEMENT@@QEAA@AEBV0@@Z
; public: __cdecl HT_ELEMENT::HT_ELEMENT(void) __ptr64
??0HT_ELEMENT@@QEAA@XZ
; public: __cdecl MLSZAU::MLSZAU(class MLSZAU & __ptr64) __ptr64
??0MLSZAU@@QEAA@AEAV0@@Z
; public: __cdecl MLSZAU::MLSZAU(char * __ptr64 const,int,unsigned long) __ptr64
??0MLSZAU@@QEAA@QEADHK@Z
; public: __cdecl MLSZAU::MLSZAU(char * __ptr64 const,unsigned long) __ptr64
??0MLSZAU@@QEAA@QEADK@Z
; public: __cdecl MLSZAU::MLSZAU(unsigned short * __ptr64 const,unsigned long) __ptr64
??0MLSZAU@@QEAA@QEAGK@Z
; public: __cdecl MLSZAU::MLSZAU(void) __ptr64
??0MLSZAU@@QEAA@XZ
; public: __cdecl MULTISZ::MULTISZ(class MULTISZ const & __ptr64) __ptr64
??0MULTISZ@@QEAA@AEBV0@@Z
; public: __cdecl MULTISZ::MULTISZ(char * __ptr64,unsigned long) __ptr64
??0MULTISZ@@QEAA@PEADK@Z
; public: __cdecl MULTISZ::MULTISZ(char const * __ptr64) __ptr64
??0MULTISZ@@QEAA@PEBD@Z
; public: __cdecl MULTISZ::MULTISZ(void) __ptr64
??0MULTISZ@@QEAA@XZ
; public: __cdecl STR::STR(class STR const & __ptr64) __ptr64
??0STR@@QEAA@AEBV0@@Z
; public: __cdecl STR::STR(unsigned long) __ptr64
??0STR@@QEAA@K@Z
; public: __cdecl STR::STR(char * __ptr64,unsigned long,int) __ptr64
??0STR@@QEAA@PEADKH@Z
; public: __cdecl STR::STR(char const * __ptr64) __ptr64
??0STR@@QEAA@PEBD@Z
; public: __cdecl STR::STR(void) __ptr64
??0STR@@QEAA@XZ
; private: __cdecl STRA::STRA(class STRA const & __ptr64) __ptr64
??0STRA@@AEAA@AEBV0@@Z
; private: __cdecl STRA::STRA(char * __ptr64) __ptr64
??0STRA@@AEAA@PEAD@Z
; private: __cdecl STRA::STRA(char const * __ptr64) __ptr64
??0STRA@@AEAA@PEBD@Z
; public: __cdecl STRA::STRA(char * __ptr64,unsigned long) __ptr64
??0STRA@@QEAA@PEADK@Z
; public: __cdecl STRA::STRA(void) __ptr64
??0STRA@@QEAA@XZ
; public: __cdecl STRAU::STRAU(class STRAU & __ptr64) __ptr64
??0STRAU@@QEAA@AEAV0@@Z
; public: __cdecl STRAU::STRAU(char const * __ptr64) __ptr64
??0STRAU@@QEAA@PEBD@Z
; public: __cdecl STRAU::STRAU(char const * __ptr64,int) __ptr64
??0STRAU@@QEAA@PEBDH@Z
; public: __cdecl STRAU::STRAU(unsigned short const * __ptr64) __ptr64
??0STRAU@@QEAA@PEBG@Z
; public: __cdecl STRAU::STRAU(void) __ptr64
??0STRAU@@QEAA@XZ
; private: __cdecl STRU::STRU(class STRU const & __ptr64) __ptr64
??0STRU@@AEAA@AEBV0@@Z
; private: __cdecl STRU::STRU(unsigned short * __ptr64) __ptr64
??0STRU@@AEAA@PEAG@Z
; private: __cdecl STRU::STRU(unsigned short const * __ptr64) __ptr64
??0STRU@@AEAA@PEBG@Z
; public: __cdecl STRU::STRU(unsigned short * __ptr64,unsigned long) __ptr64
??0STRU@@QEAA@PEAGK@Z
; public: __cdecl STRU::STRU(void) __ptr64
??0STRU@@QEAA@XZ
; public: __cdecl TS_RESOURCE::TS_RESOURCE(void) __ptr64
??0TS_RESOURCE@@QEAA@XZ
; public: __cdecl W3_DATETIME_CACHE::W3_DATETIME_CACHE(void) __ptr64
??0W3_DATETIME_CACHE@@QEAA@XZ
; public: __cdecl ALLOC_CACHE_HANDLER::~ALLOC_CACHE_HANDLER(void) __ptr64
??1ALLOC_CACHE_HANDLER@@QEAA@XZ
; public: virtual __cdecl ASCLOG_DATETIME_CACHE::~ASCLOG_DATETIME_CACHE(void) __ptr64
??1ASCLOG_DATETIME_CACHE@@UEAA@XZ
; public: __cdecl BUFFER::~BUFFER(void) __ptr64
??1BUFFER@@QEAA@XZ
; public: __cdecl BUFFER_CHAIN::~BUFFER_CHAIN(void) __ptr64
??1BUFFER_CHAIN@@QEAA@XZ
; public: __cdecl BUFFER_CHAIN_ITEM::~BUFFER_CHAIN_ITEM(void) __ptr64
??1BUFFER_CHAIN_ITEM@@QEAA@XZ
; public: virtual __cdecl CACHED_DATETIME_FORMATS::~CACHED_DATETIME_FORMATS(void) __ptr64
??1CACHED_DATETIME_FORMATS@@UEAA@XZ
; public: __cdecl CCritSec::~CCritSec(void) __ptr64
??1CCritSec@@QEAA@XZ
; public: __cdecl CDoubleList::~CDoubleList(void) __ptr64
??1CDoubleList@@QEAA@XZ
; public: __cdecl CEtwTracer::~CEtwTracer(void) __ptr64
??1CEtwTracer@@QEAA@XZ
; public: __cdecl CFakeLock::~CFakeLock(void) __ptr64
??1CFakeLock@@QEAA@XZ
; public: __cdecl CLKRHashTable::~CLKRHashTable(void) __ptr64
??1CLKRHashTable@@QEAA@XZ
; public: __cdecl CLKRHashTable_Iterator::~CLKRHashTable_Iterator(void) __ptr64
??1CLKRHashTable_Iterator@@QEAA@XZ
; public: __cdecl CLKRLinearHashTable::~CLKRLinearHashTable(void) __ptr64
??1CLKRLinearHashTable@@QEAA@XZ
; public: __cdecl CLKRLinearHashTable_Iterator::~CLKRLinearHashTable_Iterator(void) __ptr64
??1CLKRLinearHashTable_Iterator@@QEAA@XZ
; public: __cdecl CLockedDoubleList::~CLockedDoubleList(void) __ptr64
??1CLockedDoubleList@@QEAA@XZ
; public: __cdecl CLockedSingleList::~CLockedSingleList(void) __ptr64
??1CLockedSingleList@@QEAA@XZ
; public: __cdecl CRtlResource::~CRtlResource(void) __ptr64
??1CRtlResource@@QEAA@XZ
; public: __cdecl CShareLock::~CShareLock(void) __ptr64
??1CShareLock@@QEAA@XZ
; public: __cdecl CSharelock::~CSharelock(void) __ptr64
??1CSharelock@@QEAA@XZ
; public: __cdecl CSingleList::~CSingleList(void) __ptr64
??1CSingleList@@QEAA@XZ
; public: __cdecl EVENT_LOG::~EVENT_LOG(void) __ptr64
??1EVENT_LOG@@QEAA@XZ
; public: virtual __cdecl EXTLOG_DATETIME_CACHE::~EXTLOG_DATETIME_CACHE(void) __ptr64
??1EXTLOG_DATETIME_CACHE@@UEAA@XZ
; public: virtual __cdecl HASH_TABLE::~HASH_TABLE(void) __ptr64
??1HASH_TABLE@@UEAA@XZ
; public: __cdecl HASH_TABLE_BUCKET::~HASH_TABLE_BUCKET(void) __ptr64
??1HASH_TABLE_BUCKET@@QEAA@XZ
; public: __cdecl HTB_ELEMENT::~HTB_ELEMENT(void) __ptr64
??1HTB_ELEMENT@@QEAA@XZ
; public: virtual __cdecl HT_ELEMENT::~HT_ELEMENT(void) __ptr64
??1HT_ELEMENT@@UEAA@XZ
; public: __cdecl MLSZAU::~MLSZAU(void) __ptr64
??1MLSZAU@@QEAA@XZ
; public: __cdecl MULTISZ::~MULTISZ(void) __ptr64
??1MULTISZ@@QEAA@XZ
; public: __cdecl STR::~STR(void) __ptr64
??1STR@@QEAA@XZ
; public: __cdecl STRA::~STRA(void) __ptr64
??1STRA@@QEAA@XZ
; public: __cdecl STRAU::~STRAU(void) __ptr64
??1STRAU@@QEAA@XZ
; public: __cdecl STRU::~STRU(void) __ptr64
??1STRU@@QEAA@XZ
; public: __cdecl TS_RESOURCE::~TS_RESOURCE(void) __ptr64
??1TS_RESOURCE@@QEAA@XZ
; public: virtual __cdecl W3_DATETIME_CACHE::~W3_DATETIME_CACHE(void) __ptr64
??1W3_DATETIME_CACHE@@UEAA@XZ
; public: static void * __ptr64 __cdecl CLKRLinearHashTable::operator new(unsigned __int64)
??2CLKRLinearHashTable@@SAPEAX_K@Z
; public: static void __cdecl CLKRLinearHashTable::operator delete(void * __ptr64)
??3CLKRLinearHashTable@@SAXPEAX@Z
; public: class CDataCache<struct DATETIME_FORMAT_ENTRY> & __ptr64 __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::operator=(class CDataCache<struct DATETIME_FORMAT_ENTRY> const & __ptr64) __ptr64
??4?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QEAAAEAV0@AEBV0@@Z
; public: class CDataCache<class CDateTime> & __ptr64 __cdecl CDataCache<class CDateTime>::operator=(class CDataCache<class CDateTime> const & __ptr64) __ptr64
??4?$CDataCache@VCDateTime@@@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<1,1,3,1,3,2> & __ptr64 __cdecl CLockBase<1,1,3,1,3,2>::operator=(class CLockBase<1,1,3,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$00$00$02$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<2,1,1,1,3,2> & __ptr64 __cdecl CLockBase<2,1,1,1,3,2>::operator=(class CLockBase<2,1,1,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$01$00$00$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<3,1,1,1,1,1> & __ptr64 __cdecl CLockBase<3,1,1,1,1,1>::operator=(class CLockBase<3,1,1,1,1,1> const & __ptr64) __ptr64
??4?$CLockBase@$02$00$00$00$00$00@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<4,1,1,2,3,3> & __ptr64 __cdecl CLockBase<4,1,1,2,3,3>::operator=(class CLockBase<4,1,1,2,3,3> const & __ptr64) __ptr64
??4?$CLockBase@$03$00$00$01$02$02@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<5,2,1,2,3,3> & __ptr64 __cdecl CLockBase<5,2,1,2,3,3>::operator=(class CLockBase<5,2,1,2,3,3> const & __ptr64) __ptr64
??4?$CLockBase@$04$01$00$01$02$02@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<6,2,1,2,3,3> & __ptr64 __cdecl CLockBase<6,2,1,2,3,3>::operator=(class CLockBase<6,2,1,2,3,3> const & __ptr64) __ptr64
??4?$CLockBase@$05$01$00$01$02$02@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<7,2,2,1,3,2> & __ptr64 __cdecl CLockBase<7,2,2,1,3,2>::operator=(class CLockBase<7,2,2,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$06$01$01$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<8,2,2,1,3,2> & __ptr64 __cdecl CLockBase<8,2,2,1,3,2>::operator=(class CLockBase<8,2,2,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$07$01$01$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class CLockBase<9,2,1,1,3,2> & __ptr64 __cdecl CLockBase<9,2,1,1,3,2>::operator=(class CLockBase<9,2,1,1,3,2> const & __ptr64) __ptr64
??4?$CLockBase@$08$01$00$00$02$01@@QEAAAEAV0@AEBV0@@Z
; public: class ALLOC_CACHE_HANDLER & __ptr64 __cdecl ALLOC_CACHE_HANDLER::operator=(class ALLOC_CACHE_HANDLER const & __ptr64) __ptr64
??4ALLOC_CACHE_HANDLER@@QEAAAEAV0@AEBV0@@Z
; public: class BUFFER & __ptr64 __cdecl BUFFER::operator=(class BUFFER const & __ptr64) __ptr64
??4BUFFER@@QEAAAEAV0@AEBV0@@Z
; public: class BUFFER_CHAIN & __ptr64 __cdecl BUFFER_CHAIN::operator=(class BUFFER_CHAIN const & __ptr64) __ptr64
??4BUFFER_CHAIN@@QEAAAEAV0@AEBV0@@Z
; public: class BUFFER_CHAIN_ITEM & __ptr64 __cdecl BUFFER_CHAIN_ITEM::operator=(class BUFFER_CHAIN_ITEM const & __ptr64) __ptr64
??4BUFFER_CHAIN_ITEM@@QEAAAEAV0@AEBV0@@Z
; public: class CCritSec & __ptr64 __cdecl CCritSec::operator=(class CCritSec const & __ptr64) __ptr64
??4CCritSec@@QEAAAEAV0@AEBV0@@Z
; public: class CDFTCache & __ptr64 __cdecl CDFTCache::operator=(class CDFTCache const & __ptr64) __ptr64
??4CDFTCache@@QEAAAEAV0@AEBV0@@Z
; public: class CDateTime & __ptr64 __cdecl CDateTime::operator=(class CDateTime const & __ptr64) __ptr64
??4CDateTime@@QEAAAEAV0@AEBV0@@Z
; public: class CDoubleList & __ptr64 __cdecl CDoubleList::operator=(class CDoubleList const & __ptr64) __ptr64
??4CDoubleList@@QEAAAEAV0@AEBV0@@Z
; public: class CFakeLock & __ptr64 __cdecl CFakeLock::operator=(class CFakeLock const & __ptr64) __ptr64
??4CFakeLock@@QEAAAEAV0@AEBV0@@Z
; public: class CLKRHashTableStats & __ptr64 __cdecl CLKRHashTableStats::operator=(class CLKRHashTableStats const & __ptr64) __ptr64
??4CLKRHashTableStats@@QEAAAEAV0@AEBV0@@Z
; public: class CLKRHashTable_Iterator & __ptr64 __cdecl CLKRHashTable_Iterator::operator=(class CLKRHashTable_Iterator const & __ptr64) __ptr64
??4CLKRHashTable_Iterator@@QEAAAEAV0@AEBV0@@Z
; public: class CLKRLinearHashTable_Iterator & __ptr64 __cdecl CLKRLinearHashTable_Iterator::operator=(class CLKRLinearHashTable_Iterator const & __ptr64) __ptr64
??4CLKRLinearHashTable_Iterator@@QEAAAEAV0@AEBV0@@Z
; public: class CLockedDoubleList & __ptr64 __cdecl CLockedDoubleList::operator=(class CLockedDoubleList const & __ptr64) __ptr64
??4CLockedDoubleList@@QEAAAEAV0@AEBV0@@Z
; public: class CLockedSingleList & __ptr64 __cdecl CLockedSingleList::operator=(class CLockedSingleList const & __ptr64) __ptr64
??4CLockedSingleList@@QEAAAEAV0@AEBV0@@Z
; public: class CReaderWriterLock2 & __ptr64 __cdecl CReaderWriterLock2::operator=(class CReaderWriterLock2 const & __ptr64) __ptr64
??4CReaderWriterLock2@@QEAAAEAV0@AEBV0@@Z
; public: class CReaderWriterLock3 & __ptr64 __cdecl CReaderWriterLock3::operator=(class CReaderWriterLock3 const & __ptr64) __ptr64
??4CReaderWriterLock3@@QEAAAEAV0@AEBV0@@Z
; public: class CReaderWriterLock & __ptr64 __cdecl CReaderWriterLock::operator=(class CReaderWriterLock const & __ptr64) __ptr64
??4CReaderWriterLock@@QEAAAEAV0@AEBV0@@Z
; public: class CRtlResource & __ptr64 __cdecl CRtlResource::operator=(class CRtlResource const & __ptr64) __ptr64
??4CRtlResource@@QEAAAEAV0@AEBV0@@Z
; public: class CSingleList & __ptr64 __cdecl CSingleList::operator=(class CSingleList const & __ptr64) __ptr64
??4CSingleList@@QEAAAEAV0@AEBV0@@Z
; public: class CSmallSpinLock & __ptr64 __cdecl CSmallSpinLock::operator=(class CSmallSpinLock const & __ptr64) __ptr64
??4CSmallSpinLock@@QEAAAEAV0@AEBV0@@Z
; public: class CSpinLock & __ptr64 __cdecl CSpinLock::operator=(class CSpinLock const & __ptr64) __ptr64
??4CSpinLock@@QEAAAEAV0@AEBV0@@Z
; public: struct DATETIME_FORMAT_ENTRY & __ptr64 __cdecl DATETIME_FORMAT_ENTRY::operator=(struct DATETIME_FORMAT_ENTRY const & __ptr64) __ptr64
??4DATETIME_FORMAT_ENTRY@@QEAAAEAU0@AEBU0@@Z
; public: class EVENT_LOG & __ptr64 __cdecl EVENT_LOG::operator=(class EVENT_LOG const & __ptr64) __ptr64
??4EVENT_LOG@@QEAAAEAV0@AEBV0@@Z
; public: class HASH_TABLE & __ptr64 __cdecl HASH_TABLE::operator=(class HASH_TABLE const & __ptr64) __ptr64
??4HASH_TABLE@@QEAAAEAV0@AEBV0@@Z
; public: class HASH_TABLE_BUCKET & __ptr64 __cdecl HASH_TABLE_BUCKET::operator=(class HASH_TABLE_BUCKET const & __ptr64) __ptr64
??4HASH_TABLE_BUCKET@@QEAAAEAV0@AEBV0@@Z
; public: struct HTB_ELEMENT & __ptr64 __cdecl HTB_ELEMENT::operator=(struct HTB_ELEMENT const & __ptr64) __ptr64
??4HTB_ELEMENT@@QEAAAEAU0@AEBU0@@Z
; public: class HT_ELEMENT & __ptr64 __cdecl HT_ELEMENT::operator=(class HT_ELEMENT const & __ptr64) __ptr64
??4HT_ELEMENT@@QEAAAEAV0@AEBV0@@Z
; public: class MLSZAU & __ptr64 __cdecl MLSZAU::operator=(class MLSZAU const & __ptr64) __ptr64
??4MLSZAU@@QEAAAEAV0@AEBV0@@Z
; public: class MULTISZ & __ptr64 __cdecl MULTISZ::operator=(class MULTISZ const & __ptr64) __ptr64
??4MULTISZ@@QEAAAEAV0@AEBV0@@Z
; public: class STR & __ptr64 __cdecl STR::operator=(class STR const & __ptr64) __ptr64
??4STR@@QEAAAEAV0@AEBV0@@Z
; private: class STRA & __ptr64 __cdecl STRA::operator=(class STRA const & __ptr64) __ptr64
??4STRA@@AEAAAEAV0@AEBV0@@Z
; public: class STRAU & __ptr64 __cdecl STRAU::operator=(class STRAU const & __ptr64) __ptr64
??4STRAU@@QEAAAEAV0@AEBV0@@Z
; private: class STRU & __ptr64 __cdecl STRU::operator=(class STRU const & __ptr64) __ptr64
??4STRU@@AEAAAEAV0@AEBV0@@Z
; public: class TS_RESOURCE & __ptr64 __cdecl TS_RESOURCE::operator=(class TS_RESOURCE const & __ptr64) __ptr64
??4TS_RESOURCE@@QEAAAEAV0@AEBV0@@Z
; public: bool __cdecl CLKRHashTable_Iterator::operator==(class CLKRHashTable_Iterator const & __ptr64)const  __ptr64
??8CLKRHashTable_Iterator@@QEBA_NAEBV0@@Z
; public: bool __cdecl CLKRLinearHashTable_Iterator::operator==(class CLKRLinearHashTable_Iterator const & __ptr64)const  __ptr64
??8CLKRLinearHashTable_Iterator@@QEBA_NAEBV0@@Z
; public: bool __cdecl CLKRHashTable_Iterator::operator!=(class CLKRHashTable_Iterator const & __ptr64)const  __ptr64
??9CLKRHashTable_Iterator@@QEBA_NAEBV0@@Z
; public: bool __cdecl CLKRLinearHashTable_Iterator::operator!=(class CLKRLinearHashTable_Iterator const & __ptr64)const  __ptr64
??9CLKRLinearHashTable_Iterator@@QEBA_NAEBV0@@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  HASH_TABLE::`vftable'
??_7HASH_TABLE@@6B@
; const  HT_ELEMENT::`vftable'
??_7HT_ELEMENT@@6B@
; const  W3_DATETIME_CACHE::`vftable'
??_7W3_DATETIME_CACHE@@6B@
; public: void __cdecl BUFFER::`default constructor closure'(void) __ptr64
??_FBUFFER@@QEAAXXZ
; public: void __cdecl BUFFER_CHAIN_ITEM::`default constructor closure'(void) __ptr64
??_FBUFFER_CHAIN_ITEM@@QEAAXXZ
; public: void __cdecl CSharelock::`default constructor closure'(void) __ptr64
??_FCSharelock@@QEAAXXZ
; public: int __cdecl CSharelock::ActiveUsers(void) __ptr64
?ActiveUsers@CSharelock@@QEAAHXZ
; public: void * __ptr64 __cdecl ALLOC_CACHE_HANDLER::Alloc(void) __ptr64
?Alloc@ALLOC_CACHE_HANDLER@@QEAAPEAXXZ
; public: int __cdecl MULTISZ::Append(class STR const & __ptr64) __ptr64
?Append@MULTISZ@@QEAAHAEBVSTR@@@Z
; public: int __cdecl MULTISZ::Append(char const * __ptr64) __ptr64
?Append@MULTISZ@@QEAAHPEBD@Z
; public: int __cdecl MULTISZ::Append(char const * __ptr64,unsigned long) __ptr64
?Append@MULTISZ@@QEAAHPEBDK@Z
; public: int __cdecl STR::Append(class STR const & __ptr64) __ptr64
?Append@STR@@QEAAHAEBV1@@Z
; public: int __cdecl STR::Append(char const * __ptr64) __ptr64
?Append@STR@@QEAAHPEBD@Z
; public: int __cdecl STR::Append(char const * __ptr64,unsigned long) __ptr64
?Append@STR@@QEAAHPEBDK@Z
; public: void __cdecl STR::Append(char) __ptr64
?Append@STR@@QEAAXD@Z
; public: void __cdecl STR::Append(char,char) __ptr64
?Append@STR@@QEAAXDD@Z
; public: long __cdecl STRA::Append(class STRA const & __ptr64) __ptr64
?Append@STRA@@QEAAJAEBV1@@Z
; public: long __cdecl STRA::Append(char const * __ptr64) __ptr64
?Append@STRA@@QEAAJPEBD@Z
; public: long __cdecl STRA::Append(char const * __ptr64,unsigned long) __ptr64
?Append@STRA@@QEAAJPEBDK@Z
; public: int __cdecl STRAU::Append(class STRAU & __ptr64) __ptr64
?Append@STRAU@@QEAAHAEAV1@@Z
; public: int __cdecl STRAU::Append(char const * __ptr64) __ptr64
?Append@STRAU@@QEAAHPEBD@Z
; public: int __cdecl STRAU::Append(char const * __ptr64,unsigned long) __ptr64
?Append@STRAU@@QEAAHPEBDK@Z
; public: int __cdecl STRAU::Append(unsigned short const * __ptr64) __ptr64
?Append@STRAU@@QEAAHPEBG@Z
; public: int __cdecl STRAU::Append(unsigned short const * __ptr64,unsigned long) __ptr64
?Append@STRAU@@QEAAHPEBGK@Z
; public: long __cdecl STRU::Append(class STRU const & __ptr64) __ptr64
?Append@STRU@@QEAAJAEBV1@@Z
; public: long __cdecl STRU::Append(unsigned short const * __ptr64) __ptr64
?Append@STRU@@QEAAJPEBG@Z
; public: long __cdecl STRU::Append(unsigned short const * __ptr64,unsigned long) __ptr64
?Append@STRU@@QEAAJPEBGK@Z
; public: long __cdecl STRU::AppendA(char const * __ptr64) __ptr64
?AppendA@STRU@@QEAAJPEBD@Z
; public: int __cdecl BUFFER_CHAIN::AppendBuffer(class BUFFER_CHAIN_ITEM * __ptr64) __ptr64
?AppendBuffer@BUFFER_CHAIN@@QEAAHPEAVBUFFER_CHAIN_ITEM@@@Z
; public: void __cdecl STR::AppendCRLF(void) __ptr64
?AppendCRLF@STR@@QEAAXXZ
; public: long __cdecl STRA::AppendW(unsigned short const * __ptr64) __ptr64
?AppendW@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::AppendW(unsigned short const * __ptr64,unsigned long) __ptr64
?AppendW@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::AppendWTruncate(unsigned short const * __ptr64) __ptr64
?AppendWTruncate@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::AppendWTruncate(unsigned short const * __ptr64,unsigned long) __ptr64
?AppendWTruncate@STRA@@QEAAJPEBGK@Z
; public: unsigned long __cdecl CLKRHashTable::Apply(enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?Apply@CLKRHashTable@@QEAAKP6A?AW4LK_ACTION@@PEBXPEAX@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __cdecl CLKRLinearHashTable::Apply(enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?Apply@CLKRLinearHashTable@@QEAAKP6A?AW4LK_ACTION@@PEBXPEAX@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __cdecl CLKRHashTable::ApplyIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?ApplyIf@CLKRHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@ZP6A?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@@Z
; public: unsigned long __cdecl CLKRLinearHashTable::ApplyIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE) __ptr64
?ApplyIf@CLKRLinearHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@ZP6A?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@@Z
; private: int __cdecl MULTISZ::AuxAppend(unsigned char const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@MULTISZ@@AEAAHPEBEIH@Z
; private: int __cdecl STR::AuxAppend(unsigned char const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@STR@@AEAAHPEBEIH@Z
; private: long __cdecl STRA::AuxAppend(unsigned char const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppend@STRA@@AEAAJPEBEKKH@Z
; private: int __cdecl STRAU::AuxAppend(char const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@STRAU@@AEAAHPEBDIH@Z
; private: int __cdecl STRAU::AuxAppend(unsigned short const * __ptr64,unsigned int,int) __ptr64
?AuxAppend@STRAU@@AEAAHPEBGIH@Z
; private: long __cdecl STRU::AuxAppend(unsigned char const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppend@STRU@@AEAAJPEBEKKH@Z
; private: long __cdecl STRU::AuxAppendA(unsigned char const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppendA@STRU@@AEAAJPEBEKKH@Z
; private: long __cdecl STRA::AuxAppendW(unsigned short const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppendW@STRA@@AEAAJPEBGKKH@Z
; private: long __cdecl STRA::AuxAppendWTruncate(unsigned short const * __ptr64,unsigned long,unsigned long,int) __ptr64
?AuxAppendWTruncate@STRA@@AEAAJPEBGKKH@Z
; private: void __cdecl MLSZAU::AuxInit(char * __ptr64 const,unsigned long) __ptr64
?AuxInit@MLSZAU@@AEAAXQEADK@Z
; private: void __cdecl MLSZAU::AuxInit(unsigned short * __ptr64 const,unsigned long) __ptr64
?AuxInit@MLSZAU@@AEAAXQEAGK@Z
; private: void __cdecl MULTISZ::AuxInit(unsigned char const * __ptr64) __ptr64
?AuxInit@MULTISZ@@AEAAXPEBE@Z
; private: void __cdecl STR::AuxInit(unsigned char const * __ptr64) __ptr64
?AuxInit@STR@@AEAAXPEBE@Z
; private: void __cdecl STRAU::AuxInit(char const * __ptr64) __ptr64
?AuxInit@STRAU@@AEAAXPEBD@Z
; private: void __cdecl STRAU::AuxInit(unsigned short const * __ptr64) __ptr64
?AuxInit@STRAU@@AEAAXPEBG@Z
; public: class CLKRHashTable_Iterator  __cdecl CLKRHashTable::Begin(void) __ptr64
?Begin@CLKRHashTable@@QEAA?AVCLKRHashTable_Iterator@@XZ
; public: class CLKRLinearHashTable_Iterator  __cdecl CLKRLinearHashTable::Begin(void) __ptr64
?Begin@CLKRLinearHashTable@@QEAA?AVCLKRLinearHashTable_Iterator@@XZ
; public: static long __cdecl CLKRHashTableStats::BucketIndex(long)
?BucketIndex@CLKRHashTableStats@@SAJJ@Z
; public: static long __cdecl CLKRHashTableStats::BucketSize(long)
?BucketSize@CLKRHashTableStats@@SAJJ@Z
; public: static long const * __ptr64 __cdecl CLKRHashTableStats::BucketSizes(void)
?BucketSizes@CLKRHashTableStats@@SAPEBJXZ
; public: static unsigned long __cdecl MULTISZ::CalcLength(char const * __ptr64,unsigned long * __ptr64)
?CalcLength@MULTISZ@@SAKPEBDPEAK@Z
; public: unsigned long __cdecl BUFFER_CHAIN::CalcTotalSize(int)const  __ptr64
?CalcTotalSize@BUFFER_CHAIN@@QEBAKH@Z
; public: virtual unsigned long __cdecl HASH_TABLE::CalculateHash(char const * __ptr64)const  __ptr64
?CalculateHash@HASH_TABLE@@UEBAKPEBD@Z
; public: virtual unsigned long __cdecl HASH_TABLE::CalculateHash(char const * __ptr64,unsigned long)const  __ptr64
?CalculateHash@HASH_TABLE@@UEBAKPEBDK@Z
CanonURL
; public: void __cdecl CSharelock::ChangeExclusiveLockToSharedLock(void) __ptr64
?ChangeExclusiveLockToSharedLock@CSharelock@@QEAAXXZ
; public: unsigned char __cdecl CSharelock::ChangeSharedLockToExclusiveLock(int) __ptr64
?ChangeSharedLockToExclusiveLock@CSharelock@@QEAAEH@Z
; public: int __cdecl CLKRHashTable::CheckTable(void)const  __ptr64
?CheckTable@CLKRHashTable@@QEBAHXZ
; public: int __cdecl CLKRLinearHashTable::CheckTable(void)const  __ptr64
?CheckTable@CLKRLinearHashTable@@QEBAHXZ
; public: unsigned char __cdecl CSharelock::ClaimExclusiveLock(int) __ptr64
?ClaimExclusiveLock@CSharelock@@QEAAEH@Z
; public: unsigned char __cdecl CSharelock::ClaimShareLock(int) __ptr64
?ClaimShareLock@CSharelock@@QEAAEH@Z
; public: static char const * __ptr64 __cdecl CCritSec::ClassName(void)
?ClassName@CCritSec@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CCritSec::ClassName(void)
?ClassName@CCritSec@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CFakeLock::ClassName(void)
?ClassName@CFakeLock@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CFakeLock::ClassName(void)
?ClassName@CFakeLock@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CLKRHashTable::ClassName(void)
?ClassName@CLKRHashTable@@SAPEBGXZ
; public: static unsigned short const * __ptr64 __cdecl CLKRLinearHashTable::ClassName(void)
?ClassName@CLKRLinearHashTable@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CReaderWriterLock2::ClassName(void)
?ClassName@CReaderWriterLock2@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CReaderWriterLock2::ClassName(void)
?ClassName@CReaderWriterLock2@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CReaderWriterLock3::ClassName(void)
?ClassName@CReaderWriterLock3@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CReaderWriterLock3::ClassName(void)
?ClassName@CReaderWriterLock3@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CReaderWriterLock::ClassName(void)
?ClassName@CReaderWriterLock@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CReaderWriterLock::ClassName(void)
?ClassName@CReaderWriterLock@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CRtlResource::ClassName(void)
?ClassName@CRtlResource@@SAPEBDXZ
; public: static char const * __ptr64 __cdecl CShareLock::ClassName(void)
?ClassName@CShareLock@@SAPEBDXZ
; public: static char const * __ptr64 __cdecl CSmallSpinLock::ClassName(void)
?ClassName@CSmallSpinLock@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CSmallSpinLock::ClassName(void)
?ClassName@CSmallSpinLock@@SAPEBGXZ
; public: static char const * __ptr64 __cdecl CSpinLock::ClassName(void)
?ClassName@CSpinLock@@SAPEBDXZ
; public: static unsigned short const * __ptr64 __cdecl CSpinLock::ClassName(void)
?ClassName@CSpinLock@@SAPEBGXZ
; public: static int __cdecl ALLOC_CACHE_HANDLER::Cleanup(void)
?Cleanup@ALLOC_CACHE_HANDLER@@SAHXZ
; public: void __cdecl HASH_TABLE::Cleanup(void) __ptr64
?Cleanup@HASH_TABLE@@QEAAXXZ
; public: void __cdecl HTB_ELEMENT::Cleanup(void) __ptr64
?Cleanup@HTB_ELEMENT@@QEAAXXZ
; public: static void __cdecl ALLOC_CACHE_HANDLER::CleanupAllLookasides(void * __ptr64,unsigned char)
?CleanupAllLookasides@ALLOC_CACHE_HANDLER@@SAXPEAXE@Z
; public: void __cdecl ALLOC_CACHE_HANDLER::CleanupLookaside(int) __ptr64
?CleanupLookaside@ALLOC_CACHE_HANDLER@@QEAAXH@Z
; public: void __cdecl CLKRHashTable::Clear(void) __ptr64
?Clear@CLKRHashTable@@QEAAXXZ
; public: void __cdecl CLKRLinearHashTable::Clear(void) __ptr64
?Clear@CLKRLinearHashTable@@QEAAXXZ
; public: void __cdecl STR::Clear(void) __ptr64
?Clear@STR@@QEAAXXZ
; public: int __cdecl MULTISZ::Clone(class MULTISZ * __ptr64)const  __ptr64
?Clone@MULTISZ@@QEBAHPEAV1@@Z
; public: int __cdecl STR::Clone(class STR * __ptr64)const  __ptr64
?Clone@STR@@QEBAHPEAV1@@Z
; public: long __cdecl STRA::Clone(class STRA * __ptr64)const  __ptr64
?Clone@STRA@@QEBAJPEAV1@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::CloseIterator(class CLKRHashTable::CIterator * __ptr64) __ptr64
?CloseIterator@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::CloseIterator(class CLKRHashTable::CConstIterator * __ptr64)const  __ptr64
?CloseIterator@CLKRHashTable@@QEBA?AW4LK_RETCODE@@PEAVCConstIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::CloseIterator(class CLKRLinearHashTable::CIterator * __ptr64) __ptr64
?CloseIterator@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::CloseIterator(class CLKRLinearHashTable::CConstIterator * __ptr64)const  __ptr64
?CloseIterator@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@PEAVCConstIterator@1@@Z
; public: unsigned long __cdecl HASH_TABLE::CloseIterator(struct HT_ITERATOR * __ptr64) __ptr64
?CloseIterator@HASH_TABLE@@QEAAKPEAUHT_ITERATOR@@@Z
; public: unsigned long __cdecl HASH_TABLE_BUCKET::CloseIterator(struct HT_ITERATOR * __ptr64) __ptr64
?CloseIterator@HASH_TABLE_BUCKET@@QEAAKPEAUHT_ITERATOR@@@Z
; public: void __cdecl TS_RESOURCE::Convert(enum TSRES_CONV_TYPE) __ptr64
?Convert@TS_RESOURCE@@QEAAXW4TSRES_CONV_TYPE@@@Z
; public: void __cdecl CCritSec::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ConvertExclusiveToShared(void)const  __ptr64
?ConvertExclusiveToShared@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ConvertExclusiveToShared(void)const  __ptr64
?ConvertExclusiveToShared@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ConvertExclusiveToShared(void) __ptr64
?ConvertExclusiveToShared@CSpinLock@@QEAAXXZ
; public: void __cdecl CCritSec::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ConvertSharedToExclusive(void)const  __ptr64
?ConvertSharedToExclusive@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ConvertSharedToExclusive(void)const  __ptr64
?ConvertSharedToExclusive@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ConvertSharedToExclusive(void) __ptr64
?ConvertSharedToExclusive@CSpinLock@@QEAAXXZ
; public: int __cdecl MULTISZ::Copy(class MULTISZ const & __ptr64) __ptr64
?Copy@MULTISZ@@QEAAHAEBV1@@Z
; public: int __cdecl MULTISZ::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@MULTISZ@@QEAAHPEBDK@Z
; public: int __cdecl STR::Copy(class STR const & __ptr64) __ptr64
?Copy@STR@@QEAAHAEBV1@@Z
; public: int __cdecl STR::Copy(char const * __ptr64) __ptr64
?Copy@STR@@QEAAHPEBD@Z
; public: int __cdecl STR::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@STR@@QEAAHPEBDK@Z
; public: long __cdecl STRA::Copy(class STRA const & __ptr64) __ptr64
?Copy@STRA@@QEAAJAEBV1@@Z
; public: long __cdecl STRA::Copy(char const * __ptr64) __ptr64
?Copy@STRA@@QEAAJPEBD@Z
; public: long __cdecl STRA::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@STRA@@QEAAJPEBDK@Z
; public: int __cdecl STRAU::Copy(class STRAU & __ptr64) __ptr64
?Copy@STRAU@@QEAAHAEAV1@@Z
; public: int __cdecl STRAU::Copy(char const * __ptr64) __ptr64
?Copy@STRAU@@QEAAHPEBD@Z
; public: int __cdecl STRAU::Copy(char const * __ptr64,unsigned long) __ptr64
?Copy@STRAU@@QEAAHPEBDK@Z
; public: int __cdecl STRAU::Copy(unsigned short const * __ptr64) __ptr64
?Copy@STRAU@@QEAAHPEBG@Z
; public: int __cdecl STRAU::Copy(unsigned short const * __ptr64,unsigned long) __ptr64
?Copy@STRAU@@QEAAHPEBGK@Z
; public: long __cdecl STRU::Copy(class STRU const & __ptr64) __ptr64
?Copy@STRU@@QEAAJAEBV1@@Z
; public: long __cdecl STRU::Copy(unsigned short const * __ptr64) __ptr64
?Copy@STRU@@QEAAJPEBG@Z
; public: long __cdecl STRU::Copy(unsigned short const * __ptr64,unsigned long) __ptr64
?Copy@STRU@@QEAAJPEBGK@Z
; public: long __cdecl STRU::CopyA(char const * __ptr64) __ptr64
?CopyA@STRU@@QEAAJPEBD@Z
; public: long __cdecl STRU::CopyA(char const * __ptr64,unsigned long) __ptr64
?CopyA@STRU@@QEAAJPEBDK@Z
; public: long __cdecl STRA::CopyBinary(void * __ptr64,unsigned long) __ptr64
?CopyBinary@STRA@@QEAAJPEAXK@Z
; public: int __cdecl CDFTCache::CopyFormattedData(struct _SYSTEMTIME const * __ptr64,char * __ptr64)const  __ptr64
?CopyFormattedData@CDFTCache@@QEBAHPEBU_SYSTEMTIME@@PEAD@Z
; public: void __cdecl DATETIME_FORMAT_ENTRY::CopyFormattedData(struct _SYSTEMTIME const * __ptr64,char * __ptr64)const  __ptr64
?CopyFormattedData@DATETIME_FORMAT_ENTRY@@QEBAXPEBU_SYSTEMTIME@@PEAD@Z
; public: int __cdecl MULTISZ::CopyToBuffer(char * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@MULTISZ@@QEBAHPEADPEAK@Z
; public: int __cdecl STR::CopyToBuffer(char * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@STR@@QEBAHPEADPEAK@Z
; public: int __cdecl STR::CopyToBuffer(unsigned short * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@STR@@QEBAHPEAGPEAK@Z
; public: long __cdecl STRA::CopyToBuffer(char * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@STRA@@QEBAJPEADPEAK@Z
; public: long __cdecl STRU::CopyToBuffer(unsigned short * __ptr64,unsigned long * __ptr64)const  __ptr64
?CopyToBuffer@STRU@@QEBAJPEAGPEAK@Z
; public: long __cdecl STRA::CopyW(unsigned short const * __ptr64) __ptr64
?CopyW@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyW(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyW@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::CopyWToUTF8(class STRU const & __ptr64) __ptr64
?CopyWToUTF8@STRA@@QEAAJAEBVSTRU@@@Z
; public: long __cdecl STRA::CopyWToUTF8(unsigned short const * __ptr64) __ptr64
?CopyWToUTF8@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyWToUTF8(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyWToUTF8@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::CopyWToUTF8Unescaped(class STRU const & __ptr64) __ptr64
?CopyWToUTF8Unescaped@STRA@@QEAAJAEBVSTRU@@@Z
; public: long __cdecl STRA::CopyWToUTF8Unescaped(unsigned short const * __ptr64) __ptr64
?CopyWToUTF8Unescaped@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyWToUTF8Unescaped(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyWToUTF8Unescaped@STRA@@QEAAJPEBGK@Z
; public: long __cdecl STRA::CopyWTruncate(unsigned short const * __ptr64) __ptr64
?CopyWTruncate@STRA@@QEAAJPEBG@Z
; public: long __cdecl STRA::CopyWTruncate(unsigned short const * __ptr64,unsigned long) __ptr64
?CopyWTruncate@STRA@@QEAAJPEBGK@Z
CreateKey
; public: unsigned long __cdecl CDFTCache::DateTimeChars(void)const  __ptr64
?DateTimeChars@CDFTCache@@QEBAKXZ
; char const * __ptr64 __cdecl DayOfWeek3CharNames(unsigned long)
?DayOfWeek3CharNames@@YAPEBDK@Z
; public: void __cdecl HTB_ELEMENT::DecrementElements(void) __ptr64
?DecrementElements@HTB_ELEMENT@@QEAAXXZ
; public: int __cdecl HASH_TABLE::Delete(class HT_ELEMENT * __ptr64) __ptr64
?Delete@HASH_TABLE@@QEAAHPEAVHT_ELEMENT@@@Z
; public: int __cdecl HASH_TABLE_BUCKET::Delete(class HT_ELEMENT * __ptr64) __ptr64
?Delete@HASH_TABLE_BUCKET@@QEAAHPEAVHT_ELEMENT@@@Z
; public: int __cdecl HTB_ELEMENT::Delete(class HT_ELEMENT * __ptr64) __ptr64
?Delete@HTB_ELEMENT@@QEAAHPEAVHT_ELEMENT@@@Z
; public: unsigned long __cdecl BUFFER_CHAIN::DeleteChain(void) __ptr64
?DeleteChain@BUFFER_CHAIN@@QEAAKXZ
; public: unsigned long __cdecl CLKRHashTable::DeleteIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64) __ptr64
?DeleteIf@CLKRHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@Z1@Z
; public: unsigned long __cdecl CLKRLinearHashTable::DeleteIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64) __ptr64
?DeleteIf@CLKRLinearHashTable@@QEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@Z1@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::DeleteKey(unsigned __int64) __ptr64
?DeleteKey@CLKRHashTable@@QEAA?AW4LK_RETCODE@@_K@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::DeleteKey(unsigned __int64) __ptr64
?DeleteKey@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@_K@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::DeleteRecord(void const * __ptr64) __ptr64
?DeleteRecord@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::DeleteRecord(void const * __ptr64) __ptr64
?DeleteRecord@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEBX@Z
; public: virtual unsigned long __cdecl CEtwTracer::DisableEventsCallbackCustomHandler(void) __ptr64
?DisableEventsCallbackCustomHandler@CEtwTracer@@UEAAKXZ
; public: static int __cdecl ALLOC_CACHE_HANDLER::DumpStatsToHtml(char * __ptr64,unsigned long * __ptr64)
?DumpStatsToHtml@ALLOC_CACHE_HANDLER@@SAHPEADPEAK@Z
; public: virtual unsigned long __cdecl CEtwTracer::EnableEventsCallbackCustomHandler(void) __ptr64
?EnableEventsCallbackCustomHandler@CEtwTracer@@UEAAKXZ
; public: class CLKRHashTable_Iterator  __cdecl CLKRHashTable::End(void) __ptr64
?End@CLKRHashTable@@QEAA?AVCLKRHashTable_Iterator@@XZ
; public: class CLKRLinearHashTable_Iterator  __cdecl CLKRLinearHashTable::End(void) __ptr64
?End@CLKRLinearHashTable@@QEAA?AVCLKRLinearHashTable_Iterator@@XZ
; public: int __cdecl STR::Equ(class STR const & __ptr64)const  __ptr64
?Equ@STR@@QEBAHAEBV1@@Z
; public: int __cdecl STR::Equ(char * __ptr64)const  __ptr64
?Equ@STR@@QEBAHPEAD@Z
; public: bool __cdecl CLKRHashTable::EqualRange(unsigned __int64,class CLKRHashTable_Iterator & __ptr64,class CLKRHashTable_Iterator & __ptr64) __ptr64
?EqualRange@CLKRHashTable@@QEAA_N_KAEAVCLKRHashTable_Iterator@@1@Z
; public: bool __cdecl CLKRLinearHashTable::EqualRange(unsigned __int64,class CLKRLinearHashTable_Iterator & __ptr64,class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?EqualRange@CLKRLinearHashTable@@QEAA_N_KAEAVCLKRLinearHashTable_Iterator@@1@Z
; public: int __cdecl STRA::Equals(class STRA const & __ptr64)const  __ptr64
?Equals@STRA@@QEBAHAEBV1@@Z
; public: int __cdecl STRA::Equals(char * __ptr64 const)const  __ptr64
?Equals@STRA@@QEBAHQEAD@Z
; public: int __cdecl STRU::Equals(class STRU const & __ptr64)const  __ptr64
?Equals@STRU@@QEBAHAEBV1@@Z
; public: int __cdecl STRU::Equals(unsigned short const * __ptr64)const  __ptr64
?Equals@STRU@@QEBAHPEBG@Z
; public: int __cdecl STRA::EqualsNoCase(class STRA const & __ptr64)const  __ptr64
?EqualsNoCase@STRA@@QEBAHAEBV1@@Z
; public: int __cdecl STRA::EqualsNoCase(char * __ptr64 const)const  __ptr64
?EqualsNoCase@STRA@@QEBAHQEAD@Z
; public: int __cdecl STRU::EqualsNoCase(class STRU const & __ptr64)const  __ptr64
?EqualsNoCase@STRU@@QEBAHAEBV1@@Z
; public: int __cdecl STRU::EqualsNoCase(unsigned short const * __ptr64)const  __ptr64
?EqualsNoCase@STRU@@QEBAHPEBG@Z
; public: bool __cdecl CLKRHashTable::Erase(class CLKRHashTable_Iterator & __ptr64,class CLKRHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRHashTable@@QEAA_NAEAVCLKRHashTable_Iterator@@0@Z
; public: bool __cdecl CLKRHashTable::Erase(class CLKRHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRHashTable@@QEAA_NAEAVCLKRHashTable_Iterator@@@Z
; public: bool __cdecl CLKRLinearHashTable::Erase(class CLKRLinearHashTable_Iterator & __ptr64,class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRLinearHashTable@@QEAA_NAEAVCLKRLinearHashTable_Iterator@@0@Z
; public: bool __cdecl CLKRLinearHashTable::Erase(class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?Erase@CLKRLinearHashTable@@QEAA_NAEAVCLKRLinearHashTable_Iterator@@@Z
; public: int __cdecl STR::Escape(void) __ptr64
?Escape@STR@@QEAAHXZ
; public: long __cdecl STRA::Escape(int,int) __ptr64
?Escape@STRA@@QEAAJHH@Z
; public: long __cdecl STRU::Escape(void) __ptr64
?Escape@STRU@@QEAAJXZ
; public: int __cdecl STR::EscapeSpaces(void) __ptr64
?EscapeSpaces@STR@@QEAAHXZ
; public: unsigned long __cdecl CEtwTracer::EtwTraceEvent(struct _GUID const * __ptr64,unsigned long,...) __ptr64
?EtwTraceEvent@CEtwTracer@@QEAAKPEBU_GUID@@KZZ
; int __cdecl FileTimeToGMT(struct _FILETIME const & __ptr64,char * __ptr64,unsigned long)
?FileTimeToGMT@@YAHAEBU_FILETIME@@PEADK@Z
; int __cdecl FileTimeToGMTEx(struct _FILETIME const & __ptr64,char * __ptr64,unsigned long,unsigned long)
?FileTimeToGMTEx@@YAHAEBU_FILETIME@@PEADKK@Z
; public: bool __cdecl CLKRHashTable::Find(unsigned __int64,class CLKRHashTable_Iterator & __ptr64) __ptr64
?Find@CLKRHashTable@@QEAA_N_KAEAVCLKRHashTable_Iterator@@@Z
; public: bool __cdecl CLKRLinearHashTable::Find(unsigned __int64,class CLKRLinearHashTable_Iterator & __ptr64) __ptr64
?Find@CLKRLinearHashTable@@QEAA_N_KAEAVCLKRLinearHashTable_Iterator@@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::FindKey(unsigned __int64,void const * __ptr64 * __ptr64)const  __ptr64
?FindKey@CLKRHashTable@@QEBA?AW4LK_RETCODE@@_KPEAPEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::FindKey(unsigned __int64,void const * __ptr64 * __ptr64)const  __ptr64
?FindKey@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@_KPEAPEBX@Z
; public: unsigned long __cdecl HASH_TABLE::FindNextElement(struct HT_ITERATOR * __ptr64,class HT_ELEMENT * __ptr64 * __ptr64) __ptr64
?FindNextElement@HASH_TABLE@@QEAAKPEAUHT_ITERATOR@@PEAPEAVHT_ELEMENT@@@Z
; public: unsigned long __cdecl HASH_TABLE_BUCKET::FindNextElement(struct HT_ITERATOR * __ptr64,class HT_ELEMENT * __ptr64 * __ptr64) __ptr64
?FindNextElement@HASH_TABLE_BUCKET@@QEAAKPEAUHT_ITERATOR@@PEAPEAVHT_ELEMENT@@@Z
; public: unsigned long __cdecl HTB_ELEMENT::FindNextElement(unsigned long * __ptr64,class HT_ELEMENT * __ptr64 * __ptr64) __ptr64
?FindNextElement@HTB_ELEMENT@@QEAAKPEAKPEAPEAVHT_ELEMENT@@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::FindRecord(void const * __ptr64)const  __ptr64
?FindRecord@CLKRHashTable@@QEBA?AW4LK_RETCODE@@PEBX@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::FindRecord(void const * __ptr64)const  __ptr64
?FindRecord@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@PEBX@Z
; public: int __cdecl MULTISZ::FindString(class STR const & __ptr64) __ptr64
?FindString@MULTISZ@@QEAAHAEBVSTR@@@Z
; public: int __cdecl MULTISZ::FindString(char const * __ptr64) __ptr64
?FindString@MULTISZ@@QEAAHPEBD@Z
; public: class CListEntry * __ptr64 __cdecl CDoubleList::First(void)const  __ptr64
?First@CDoubleList@@QEBAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::First(void) __ptr64
?First@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
; public: char const * __ptr64 __cdecl MULTISZ::First(void)const  __ptr64
?First@MULTISZ@@QEBAPEBDXZ
; public: struct HTBE_ENTRY * __ptr64 __cdecl HTB_ELEMENT::FirstElement(void) __ptr64
?FirstElement@HTB_ELEMENT@@QEAAPEAUHTBE_ENTRY@@XZ
; public: unsigned long __cdecl HASH_TABLE::FlushElements(void) __ptr64
?FlushElements@HASH_TABLE@@QEAAKXZ
; public: int __cdecl STR::FormatString(unsigned long,char const * __ptr64 * __ptr64 const,char const * __ptr64,unsigned long) __ptr64
?FormatString@STR@@QEAAHKQEAPEBDPEBDK@Z
; public: long __cdecl STRA::FormatString(unsigned long,char const * __ptr64 * __ptr64 const,char const * __ptr64,unsigned long) __ptr64
?FormatString@STRA@@QEAAJKQEAPEBDPEBDK@Z
; public: char const * __ptr64 __cdecl CDFTCache::FormattedBuffer(void)const  __ptr64
?FormattedBuffer@CDFTCache@@QEBAPEBDXZ
; public: int __cdecl ALLOC_CACHE_HANDLER::Free(void * __ptr64) __ptr64
?Free@ALLOC_CACHE_HANDLER@@QEAAHPEAX@Z
; public: void __cdecl BUFFER::FreeMemory(void) __ptr64
?FreeMemory@BUFFER@@QEAAXXZ
; public: virtual void __cdecl ASCLOG_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY * __ptr64,struct _SYSTEMTIME const * __ptr64) __ptr64
?GenerateDateTimeString@ASCLOG_DATETIME_CACHE@@UEAAXPEAUDATETIME_FORMAT_ENTRY@@PEBU_SYSTEMTIME@@@Z
; public: virtual void __cdecl EXTLOG_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY * __ptr64,struct _SYSTEMTIME const * __ptr64) __ptr64
?GenerateDateTimeString@EXTLOG_DATETIME_CACHE@@UEAAXPEAUDATETIME_FORMAT_ENTRY@@PEBU_SYSTEMTIME@@@Z
; public: virtual void __cdecl W3_DATETIME_CACHE::GenerateDateTimeString(struct DATETIME_FORMAT_ENTRY * __ptr64,struct _SYSTEMTIME const * __ptr64) __ptr64
?GenerateDateTimeString@W3_DATETIME_CACHE@@UEAAXPEAUDATETIME_FORMAT_ENTRY@@PEBU_SYSTEMTIME@@@Z
; public: unsigned short __cdecl CLKRHashTable::GetBucketLockSpinCount(void)const  __ptr64
?GetBucketLockSpinCount@CLKRHashTable@@QEBAGXZ
; public: unsigned short __cdecl CLKRLinearHashTable::GetBucketLockSpinCount(void)const  __ptr64
?GetBucketLockSpinCount@CLKRLinearHashTable@@QEBAGXZ
; public: static double __cdecl CCritSec::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CCritSec@@SANXZ
; public: static double __cdecl CFakeLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CFakeLock@@SANXZ
; public: static double __cdecl CReaderWriterLock2::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock2@@SANXZ
; public: static double __cdecl CReaderWriterLock3::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock3@@SANXZ
; public: static double __cdecl CReaderWriterLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CReaderWriterLock@@SANXZ
; public: static double __cdecl CRtlResource::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CRtlResource@@SANXZ
; public: static double __cdecl CShareLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CShareLock@@SANXZ
; public: static double __cdecl CSmallSpinLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CSmallSpinLock@@SANXZ
; public: static double __cdecl CSpinLock::GetDefaultSpinAdjustmentFactor(void)
?GetDefaultSpinAdjustmentFactor@CSpinLock@@SANXZ
; public: static unsigned short __cdecl CCritSec::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CCritSec@@SAGXZ
; public: static unsigned short __cdecl CFakeLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CFakeLock@@SAGXZ
; public: static unsigned short __cdecl CReaderWriterLock2::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock2@@SAGXZ
; public: static unsigned short __cdecl CReaderWriterLock3::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock3@@SAGXZ
; public: static unsigned short __cdecl CReaderWriterLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CReaderWriterLock@@SAGXZ
; public: static unsigned short __cdecl CRtlResource::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CRtlResource@@SAGXZ
; public: static unsigned short __cdecl CShareLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CShareLock@@SAGXZ
; public: static unsigned short __cdecl CSmallSpinLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CSmallSpinLock@@SAGXZ
; public: static unsigned short __cdecl CSpinLock::GetDefaultSpinCount(void)
?GetDefaultSpinCount@CSpinLock@@SAGXZ
; public: unsigned long __cdecl EVENT_LOG::GetErrorCode(void)const  __ptr64
?GetErrorCode@EVENT_LOG@@QEBAKXZ
; public: unsigned long __cdecl CACHED_DATETIME_FORMATS::GetFormattedCurrentDateTime(char * __ptr64) __ptr64
?GetFormattedCurrentDateTime@CACHED_DATETIME_FORMATS@@QEAAKPEAD@Z
; public: unsigned long __cdecl CACHED_DATETIME_FORMATS::GetFormattedDateTime(struct _SYSTEMTIME const * __ptr64,char * __ptr64) __ptr64
?GetFormattedDateTime@CACHED_DATETIME_FORMATS@@QEAAKPEBU_SYSTEMTIME@@PEAD@Z
; private: int __cdecl BUFFER::GetNewStorage(unsigned int) __ptr64
?GetNewStorage@BUFFER@@AEAAHI@Z
; public: unsigned short __cdecl CCritSec::GetSpinCount(void)const  __ptr64
?GetSpinCount@CCritSec@@QEBAGXZ
; public: unsigned short __cdecl CFakeLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CFakeLock@@QEBAGXZ
; public: unsigned short __cdecl CReaderWriterLock2::GetSpinCount(void)const  __ptr64
?GetSpinCount@CReaderWriterLock2@@QEBAGXZ
; public: unsigned short __cdecl CReaderWriterLock3::GetSpinCount(void)const  __ptr64
?GetSpinCount@CReaderWriterLock3@@QEBAGXZ
; public: unsigned short __cdecl CReaderWriterLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CReaderWriterLock@@QEBAGXZ
; public: unsigned short __cdecl CRtlResource::GetSpinCount(void)const  __ptr64
?GetSpinCount@CRtlResource@@QEBAGXZ
; public: unsigned short __cdecl CShareLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CShareLock@@QEBAGXZ
; public: unsigned short __cdecl CSmallSpinLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CSmallSpinLock@@QEBAGXZ
; public: unsigned short __cdecl CSpinLock::GetSpinCount(void)const  __ptr64
?GetSpinCount@CSpinLock@@QEBAGXZ
; public: class CLKRHashTableStats  __cdecl CLKRHashTable::GetStatistics(void)const  __ptr64
?GetStatistics@CLKRHashTable@@QEBA?AVCLKRHashTableStats@@XZ
; public: class CLKRHashTableStats  __cdecl CLKRLinearHashTable::GetStatistics(void)const  __ptr64
?GetStatistics@CLKRLinearHashTable@@QEBA?AVCLKRHashTableStats@@XZ
; public: unsigned short __cdecl CLKRHashTable::GetTableLockSpinCount(void)const  __ptr64
?GetTableLockSpinCount@CLKRHashTable@@QEBAGXZ
; public: unsigned short __cdecl CLKRLinearHashTable::GetTableLockSpinCount(void)const  __ptr64
?GetTableLockSpinCount@CLKRLinearHashTable@@QEBAGXZ
; public: int __cdecl CDateTime::GetTickCount(void) __ptr64
?GetTickCount@CDateTime@@QEAAHXZ
; public: long __cdecl STRA::HTMLEncode(void) __ptr64
?HTMLEncode@STRA@@QEAAJXZ
; public: void __cdecl STR::Hash(void) __ptr64
?Hash@STR@@QEAAXXZ
; public: class CListEntry const * __ptr64 __cdecl CDoubleList::HeadNode(void)const  __ptr64
?HeadNode@CDoubleList@@QEBAQEBVCListEntry@@XZ
; public: class CListEntry const * __ptr64 __cdecl CLockedDoubleList::HeadNode(void)const  __ptr64
?HeadNode@CLockedDoubleList@@QEBAQEBVCListEntry@@XZ
IISCreateDirectory
IISstricmp
IISstrlen
IISstrlwr
IISstrncpy
IISstrnicmp
IISstrrchr
IISstrupr
; public: bool __cdecl CLKRHashTable_Iterator::Increment(void) __ptr64
?Increment@CLKRHashTable_Iterator@@QEAA_NXZ
; public: bool __cdecl CLKRLinearHashTable_Iterator::Increment(void) __ptr64
?Increment@CLKRLinearHashTable_Iterator@@QEAA_NXZ
; public: void __cdecl HTB_ELEMENT::IncrementElements(void) __ptr64
?IncrementElements@HTB_ELEMENT@@QEAAXXZ
; public: enum LK_RETCODE  __cdecl CLKRHashTable::IncrementIterator(class CLKRHashTable::CIterator * __ptr64) __ptr64
?IncrementIterator@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::IncrementIterator(class CLKRHashTable::CConstIterator * __ptr64)const  __ptr64
?IncrementIterator@CLKRHashTable@@QEBA?AW4LK_RETCODE@@PEAVCConstIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::IncrementIterator(class CLKRLinearHashTable::CIterator * __ptr64) __ptr64
?IncrementIterator@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::IncrementIterator(class CLKRLinearHashTable::CConstIterator * __ptr64)const  __ptr64
?IncrementIterator@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@PEAVCConstIterator@1@@Z
; public: static int __cdecl ALLOC_CACHE_HANDLER::Initialize(void)
?Initialize@ALLOC_CACHE_HANDLER@@SAHXZ
; public: enum LK_RETCODE  __cdecl CLKRHashTable::InitializeIterator(class CLKRHashTable::CIterator * __ptr64) __ptr64
?InitializeIterator@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::InitializeIterator(class CLKRHashTable::CConstIterator * __ptr64)const  __ptr64
?InitializeIterator@CLKRHashTable@@QEBA?AW4LK_RETCODE@@PEAVCConstIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::InitializeIterator(class CLKRLinearHashTable::CIterator * __ptr64) __ptr64
?InitializeIterator@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::InitializeIterator(class CLKRLinearHashTable::CConstIterator * __ptr64)const  __ptr64
?InitializeIterator@CLKRLinearHashTable@@QEBA?AW4LK_RETCODE@@PEAVCConstIterator@1@@Z
; public: unsigned long __cdecl HASH_TABLE::InitializeIterator(struct HT_ITERATOR * __ptr64) __ptr64
?InitializeIterator@HASH_TABLE@@QEAAKPEAUHT_ITERATOR@@@Z
; public: unsigned long __cdecl HASH_TABLE_BUCKET::InitializeIterator(struct HT_ITERATOR * __ptr64) __ptr64
?InitializeIterator@HASH_TABLE_BUCKET@@QEAAKPEAUHT_ITERATOR@@@Z
; public: bool __cdecl CLKRHashTable::Insert(void const * __ptr64,class CLKRHashTable_Iterator & __ptr64,bool) __ptr64
?Insert@CLKRHashTable@@QEAA_NPEBXAEAVCLKRHashTable_Iterator@@_N@Z
; public: bool __cdecl CLKRLinearHashTable::Insert(void const * __ptr64,class CLKRLinearHashTable_Iterator & __ptr64,bool) __ptr64
?Insert@CLKRLinearHashTable@@QEAA_NPEBXAEAVCLKRLinearHashTable_Iterator@@_N@Z
; public: int __cdecl HASH_TABLE::Insert(class HT_ELEMENT * __ptr64,int) __ptr64
?Insert@HASH_TABLE@@QEAAHPEAVHT_ELEMENT@@H@Z
; public: int __cdecl HASH_TABLE_BUCKET::Insert(unsigned long,class HT_ELEMENT * __ptr64,int) __ptr64
?Insert@HASH_TABLE_BUCKET@@QEAAHKPEAVHT_ELEMENT@@H@Z
; public: int __cdecl HTB_ELEMENT::Insert(unsigned long,class HT_ELEMENT * __ptr64) __ptr64
?Insert@HTB_ELEMENT@@QEAAHKPEAVHT_ELEMENT@@@Z
; public: void __cdecl CDoubleList::InsertHead(class CListEntry * __ptr64 const) __ptr64
?InsertHead@CDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: void __cdecl CLockedDoubleList::InsertHead(class CListEntry * __ptr64 const) __ptr64
?InsertHead@CLockedDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: static void __cdecl ALLOC_CACHE_HANDLER::InsertNewItem(class ALLOC_CACHE_HANDLER * __ptr64)
?InsertNewItem@ALLOC_CACHE_HANDLER@@SAXPEAV1@@Z
; public: enum LK_RETCODE  __cdecl CLKRHashTable::InsertRecord(void const * __ptr64,bool) __ptr64
?InsertRecord@CLKRHashTable@@QEAA?AW4LK_RETCODE@@PEBX_N@Z
; public: enum LK_RETCODE  __cdecl CLKRLinearHashTable::InsertRecord(void const * __ptr64,bool) __ptr64
?InsertRecord@CLKRLinearHashTable@@QEAA?AW4LK_RETCODE@@PEBX_N@Z
; public: void __cdecl CDoubleList::InsertTail(class CListEntry * __ptr64 const) __ptr64
?InsertTail@CDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: void __cdecl CLockedDoubleList::InsertTail(class CListEntry * __ptr64 const) __ptr64
?InsertTail@CLockedDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: int __cdecl ALLOC_CACHE_HANDLER::IpPrint(char * __ptr64,unsigned long * __ptr64) __ptr64
?IpPrint@ALLOC_CACHE_HANDLER@@QEAAHPEADPEAK@Z
; public: int __cdecl MLSZAU::IsCurrentUnicode(void) __ptr64
?IsCurrentUnicode@MLSZAU@@QEAAHXZ
; public: int __cdecl STRAU::IsCurrentUnicode(void) __ptr64
?IsCurrentUnicode@STRAU@@QEAAHXZ
; private: int __cdecl BUFFER::IsDynAlloced(void)const  __ptr64
?IsDynAlloced@BUFFER@@AEBAHXZ
; public: bool __cdecl CDoubleList::IsEmpty(void)const  __ptr64
?IsEmpty@CDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedDoubleList::IsEmpty(void)const  __ptr64
?IsEmpty@CLockedDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedSingleList::IsEmpty(void)const  __ptr64
?IsEmpty@CLockedSingleList@@QEBA_NXZ
; public: bool __cdecl CSingleList::IsEmpty(void)const  __ptr64
?IsEmpty@CSingleList@@QEBA_NXZ
; public: int __cdecl MULTISZ::IsEmpty(void)const  __ptr64
?IsEmpty@MULTISZ@@QEBAHXZ
; public: int __cdecl STR::IsEmpty(void)const  __ptr64
?IsEmpty@STR@@QEBAHXZ
; public: int __cdecl STRA::IsEmpty(void)const  __ptr64
?IsEmpty@STRA@@QEBAHXZ
; public: int __cdecl STRAU::IsEmpty(void) __ptr64
?IsEmpty@STRAU@@QEAAHXZ
; public: int __cdecl STRU::IsEmpty(void)const  __ptr64
?IsEmpty@STRU@@QEBAHXZ
; public: int __cdecl CDFTCache::IsHit(struct _SYSTEMTIME const * __ptr64)const  __ptr64
?IsHit@CDFTCache@@QEBAHPEBU_SYSTEMTIME@@@Z
; public: int __cdecl DATETIME_FORMAT_ENTRY::IsHit(struct _SYSTEMTIME const * __ptr64)const  __ptr64
?IsHit@DATETIME_FORMAT_ENTRY@@QEBAHPEBU_SYSTEMTIME@@@Z
IsIPAddressLocal
IsLargeIntegerToDecimalChar
; public: bool __cdecl CLockedDoubleList::IsLocked(void)const  __ptr64
?IsLocked@CLockedDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedSingleList::IsLocked(void)const  __ptr64
?IsLocked@CLockedSingleList@@QEBA_NXZ
; public: bool __cdecl CCritSec::IsReadLocked(void)const  __ptr64
?IsReadLocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsReadLocked(void)const  __ptr64
?IsReadLocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsReadLocked(void)const  __ptr64
?IsReadLocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsReadLocked(void)const  __ptr64
?IsReadLocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsReadLocked(void)const  __ptr64
?IsReadLocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsReadLocked(void)const  __ptr64
?IsReadLocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsReadLocked(void)const  __ptr64
?IsReadLocked@CSpinLock@@QEBA_NXZ
; public: bool __cdecl CCritSec::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsReadUnlocked(void)const  __ptr64
?IsReadUnlocked@CSpinLock@@QEBA_NXZ
; public: int __cdecl HTB_ELEMENT::IsSpaceAvailable(void)const  __ptr64
?IsSpaceAvailable@HTB_ELEMENT@@QEBAHXZ
; public: bool __cdecl CLockedDoubleList::IsUnlocked(void)const  __ptr64
?IsUnlocked@CLockedDoubleList@@QEBA_NXZ
; public: bool __cdecl CLockedSingleList::IsUnlocked(void)const  __ptr64
?IsUnlocked@CLockedSingleList@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsUsable(void)const  __ptr64
?IsUsable@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsUsable(void)const  __ptr64
?IsUsable@CLKRLinearHashTable@@QEBA_NXZ
; public: int __cdecl ALLOC_CACHE_HANDLER::IsValid(void)const  __ptr64
?IsValid@ALLOC_CACHE_HANDLER@@QEBAHXZ
; public: int __cdecl BUFFER::IsValid(void)const  __ptr64
?IsValid@BUFFER@@QEBAHXZ
; public: bool __cdecl CLKRHashTable::IsValid(void)const  __ptr64
?IsValid@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable_Iterator::IsValid(void)const  __ptr64
?IsValid@CLKRHashTable_Iterator@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsValid(void)const  __ptr64
?IsValid@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable_Iterator::IsValid(void)const  __ptr64
?IsValid@CLKRLinearHashTable_Iterator@@QEBA_NXZ
; public: int __cdecl HASH_TABLE::IsValid(void)const  __ptr64
?IsValid@HASH_TABLE@@QEBAHXZ
; public: int __cdecl MLSZAU::IsValid(void) __ptr64
?IsValid@MLSZAU@@QEAAHXZ
; public: int __cdecl MULTISZ::IsValid(void)const  __ptr64
?IsValid@MULTISZ@@QEBAHXZ
; public: int __cdecl STR::IsValid(void)const  __ptr64
?IsValid@STR@@QEBAHXZ
; public: int __cdecl STRA::IsValid(void)const  __ptr64
?IsValid@STRA@@QEBAHXZ
; public: int __cdecl STRAU::IsValid(void) __ptr64
?IsValid@STRAU@@QEAAHXZ
; public: bool __cdecl CCritSec::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsWriteLocked(void)const  __ptr64
?IsWriteLocked@CSpinLock@@QEBA_NXZ
; public: bool __cdecl CCritSec::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CCritSec@@QEBA_NXZ
; public: bool __cdecl CFakeLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CFakeLock@@QEBA_NXZ
; public: bool __cdecl CLKRHashTable::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CLKRLinearHashTable@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock2::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CReaderWriterLock2@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock3::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CReaderWriterLock3@@QEBA_NXZ
; public: bool __cdecl CReaderWriterLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CReaderWriterLock@@QEBA_NXZ
; public: bool __cdecl CRtlResource::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CRtlResource@@QEBA_NXZ
; public: bool __cdecl CShareLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CShareLock@@QEBA_NXZ
; public: bool __cdecl CSmallSpinLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CSmallSpinLock@@QEBA_NXZ
; public: bool __cdecl CSpinLock::IsWriteUnlocked(void)const  __ptr64
?IsWriteUnlocked@CSpinLock@@QEBA_NXZ
; public: unsigned __int64 const  __cdecl CLKRHashTable_Iterator::Key(void)const  __ptr64
?Key@CLKRHashTable_Iterator@@QEBA?B_KXZ
; public: unsigned __int64 const  __cdecl CLKRLinearHashTable_Iterator::Key(void)const  __ptr64
?Key@CLKRLinearHashTable_Iterator@@QEBA?B_KXZ
; public: class CListEntry * __ptr64 __cdecl CDoubleList::Last(void)const  __ptr64
?Last@CDoubleList@@QEBAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::Last(void) __ptr64
?Last@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
; public: struct HTBE_ENTRY * __ptr64 __cdecl HTB_ELEMENT::LastElement(void) __ptr64
?LastElement@HTB_ELEMENT@@QEAAPEAUHTBE_ENTRY@@XZ
; public: int __cdecl STR::LoadStringA(unsigned long,struct HINSTANCE__ * __ptr64) __ptr64
?LoadStringA@STR@@QEAAHKPEAUHINSTANCE__@@@Z
; public: int __cdecl STR::LoadStringA(unsigned long,char const * __ptr64,unsigned long) __ptr64
?LoadStringA@STR@@QEAAHKPEBDK@Z
; public: long __cdecl STRA::LoadStringW(unsigned long,struct HINSTANCE__ * __ptr64) __ptr64
?LoadStringW@STRA@@QEAAJKPEAUHINSTANCE__@@@Z
; public: long __cdecl STRA::LoadStringW(unsigned long,char const * __ptr64,unsigned long) __ptr64
?LoadStringW@STRA@@QEAAJKPEBDK@Z
; private: void __cdecl ALLOC_CACHE_HANDLER::Lock(void) __ptr64
?Lock@ALLOC_CACHE_HANDLER@@AEAAXXZ
; public: void __cdecl CLockedDoubleList::Lock(void) __ptr64
?Lock@CLockedDoubleList@@QEAAXXZ
; public: void __cdecl CLockedSingleList::Lock(void) __ptr64
?Lock@CLockedSingleList@@QEAAXXZ
; private: void __cdecl HASH_TABLE_BUCKET::Lock(void) __ptr64
?Lock@HASH_TABLE_BUCKET@@AEAAXXZ
; public: void __cdecl TS_RESOURCE::Lock(enum TSRES_LOCK_TYPE) __ptr64
?Lock@TS_RESOURCE@@QEAAXW4TSRES_LOCK_TYPE@@@Z
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<1,1,3,1,3,2>::LockType(void)
?LockType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<2,1,1,1,3,2>::LockType(void)
?LockType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<3,1,1,1,1,1>::LockType(void)
?LockType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<4,1,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<5,2,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<6,2,1,2,3,3>::LockType(void)
?LockType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<7,2,2,1,3,2>::LockType(void)
?LockType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<8,2,2,1,3,2>::LockType(void)
?LockType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: static enum LOCK_LOCKTYPE  __cdecl CLockBase<9,2,1,1,3,2>::LockType(void)
?LockType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_LOCKTYPE@@XZ
; public: void __cdecl EVENT_LOG::LogEvent(unsigned long,unsigned short,char const * __ptr64 * __ptr64 const,unsigned long) __ptr64
?LogEvent@EVENT_LOG@@QEAAXKGQEAPEBDK@Z
; private: void __cdecl EVENT_LOG::LogEventPrivate(unsigned long,unsigned short,unsigned short,char const * __ptr64 * __ptr64 const,unsigned long) __ptr64
?LogEventPrivate@EVENT_LOG@@AEAAXKGGQEAPEBDK@Z
; public: class HT_ELEMENT * __ptr64 __cdecl HASH_TABLE::Lookup(char const * __ptr64) __ptr64
?Lookup@HASH_TABLE@@QEAAPEAVHT_ELEMENT@@PEBD@Z
; public: class HT_ELEMENT * __ptr64 __cdecl HASH_TABLE::Lookup(char const * __ptr64,unsigned long) __ptr64
?Lookup@HASH_TABLE@@QEAAPEAVHT_ELEMENT@@PEBDK@Z
; public: class HT_ELEMENT * __ptr64 __cdecl HASH_TABLE_BUCKET::Lookup(unsigned long,char const * __ptr64,unsigned long) __ptr64
?Lookup@HASH_TABLE_BUCKET@@QEAAPEAVHT_ELEMENT@@KPEBDK@Z
; public: class HT_ELEMENT * __ptr64 __cdecl HTB_ELEMENT::Lookup(unsigned long,char const * __ptr64,unsigned long) __ptr64
?Lookup@HTB_ELEMENT@@QEAAPEAVHT_ELEMENT@@KPEBDK@Z
; public: unsigned long __cdecl CLKRHashTable::MaxSize(void)const  __ptr64
?MaxSize@CLKRHashTable@@QEBAKXZ
; public: unsigned long __cdecl CLKRLinearHashTable::MaxSize(void)const  __ptr64
?MaxSize@CLKRLinearHashTable@@QEBAKXZ
; char const * __ptr64 __cdecl Month3CharNames(unsigned long)
?Month3CharNames@@YAPEBDK@Z
; public: bool __cdecl CLKRHashTable::MultiKeys(void)const  __ptr64
?MultiKeys@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::MultiKeys(void)const  __ptr64
?MultiKeys@CLKRLinearHashTable@@QEBA_NXZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<1,1,3,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<2,1,1,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<3,1,1,1,1,1>::MutexType(void)
?MutexType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<4,1,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<5,2,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<6,2,1,2,3,3>::MutexType(void)
?MutexType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<7,2,2,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<8,2,2,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: static enum LOCK_RW_MUTEX  __cdecl CLockBase<9,2,1,1,3,2>::MutexType(void)
?MutexType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_RW_MUTEX@@XZ
; public: char const * __ptr64 __cdecl MULTISZ::Next(char const * __ptr64)const  __ptr64
?Next@MULTISZ@@QEBAPEBDPEBD@Z
; public: class BUFFER_CHAIN_ITEM * __ptr64 __cdecl BUFFER_CHAIN::NextBuffer(class BUFFER_CHAIN_ITEM * __ptr64) __ptr64
?NextBuffer@BUFFER_CHAIN@@QEAAPEAVBUFFER_CHAIN_ITEM@@PEAV2@@Z
; public: void __cdecl HTB_ELEMENT::NextElement(struct HTBE_ENTRY * __ptr64 & __ptr64) __ptr64
?NextElement@HTB_ELEMENT@@QEAAXAEAPEAUHTBE_ENTRY@@@Z
; long __cdecl NormalizeUrl(char * __ptr64)
?NormalizeUrl@@YAJPEAD@Z
; long __cdecl NormalizeUrlW(unsigned short * __ptr64)
?NormalizeUrlW@@YAJPEAG@Z
NtLargeIntegerTimeToLocalSystemTime
NtLargeIntegerTimeToSystemTime
NtSystemTimeToLargeInteger
; public: unsigned long __cdecl HTB_ELEMENT::NumElements(void)const  __ptr64
?NumElements@HTB_ELEMENT@@QEBAKXZ
; public: unsigned long __cdecl HASH_TABLE_BUCKET::NumEntries(void) __ptr64
?NumEntries@HASH_TABLE_BUCKET@@QEAAKXZ
; public: int __cdecl CLKRHashTable::NumSubTables(void)const  __ptr64
?NumSubTables@CLKRHashTable@@QEBAHXZ
; public: static enum LK_TABLESIZE  __cdecl CLKRHashTable::NumSubTables(unsigned long & __ptr64,unsigned long & __ptr64)
?NumSubTables@CLKRHashTable@@SA?AW4LK_TABLESIZE@@AEAK0@Z
; public: int __cdecl CLKRLinearHashTable::NumSubTables(void)const  __ptr64
?NumSubTables@CLKRLinearHashTable@@QEBAHXZ
; public: static enum LK_TABLESIZE  __cdecl CLKRLinearHashTable::NumSubTables(unsigned long & __ptr64,unsigned long & __ptr64)
?NumSubTables@CLKRLinearHashTable@@SA?AW4LK_TABLESIZE@@AEAK0@Z
; public: int __cdecl CDFTCache::OffsetSeconds(void)const  __ptr64
?OffsetSeconds@CDFTCache@@QEBAHXZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<1,1,3,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<2,1,1,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<3,1,1,1,1,1>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<4,1,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<5,2,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<6,2,1,2,3,3>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<7,2,2,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<8,2,2,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: static enum LOCK_PERLOCK_SPIN  __cdecl CLockBase<9,2,1,1,3,2>::PerLockSpin(void)
?PerLockSpin@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_PERLOCK_SPIN@@XZ
; public: class CSingleListEntry * __ptr64 __cdecl CLockedSingleList::Pop(void) __ptr64
?Pop@CLockedSingleList@@QEAAQEAVCSingleListEntry@@XZ
; public: class CSingleListEntry * __ptr64 __cdecl CSingleList::Pop(void) __ptr64
?Pop@CSingleList@@QEAAQEAVCSingleListEntry@@XZ
; public: void __cdecl ALLOC_CACHE_HANDLER::Print(void) __ptr64
?Print@ALLOC_CACHE_HANDLER@@QEAAXXZ
; public: void __cdecl HASH_TABLE::Print(unsigned long) __ptr64
?Print@HASH_TABLE@@QEAAXK@Z
; public: void __cdecl HASH_TABLE_BUCKET::Print(unsigned long) __ptr64
?Print@HASH_TABLE_BUCKET@@QEAAXK@Z
; public: void __cdecl HTB_ELEMENT::Print(unsigned long)const  __ptr64
?Print@HTB_ELEMENT@@QEBAXK@Z
; private: unsigned short * __ptr64 __cdecl STRAU::PrivateQueryStr(int) __ptr64
?PrivateQueryStr@STRAU@@AEAAPEAGH@Z
; public: void __cdecl CLockedSingleList::Push(class CSingleListEntry * __ptr64 const) __ptr64
?Push@CLockedSingleList@@QEAAXQEAVCSingleListEntry@@@Z
; public: void __cdecl CSingleList::Push(class CSingleListEntry * __ptr64 const) __ptr64
?Push@CSingleList@@QEAAXQEAVCSingleListEntry@@@Z
; public: class BUFFER * __ptr64 __cdecl STRU::QueryBuffer(void) __ptr64
?QueryBuffer@STRU@@QEAAPEAVBUFFER@@XZ
; public: unsigned int __cdecl MLSZAU::QueryCB(int) __ptr64
?QueryCB@MLSZAU@@QEAAIH@Z
; public: unsigned int __cdecl MULTISZ::QueryCB(void)const  __ptr64
?QueryCB@MULTISZ@@QEBAIXZ
; public: unsigned int __cdecl STR::QueryCB(void)const  __ptr64
?QueryCB@STR@@QEBAIXZ
; public: unsigned int __cdecl STRA::QueryCB(void)const  __ptr64
?QueryCB@STRA@@QEBAIXZ
; public: unsigned int __cdecl STRAU::QueryCB(int) __ptr64
?QueryCB@STRAU@@QEAAIH@Z
; public: unsigned int __cdecl STRU::QueryCB(void)const  __ptr64
?QueryCB@STRU@@QEBAIXZ
; public: unsigned int __cdecl MLSZAU::QueryCBA(void) __ptr64
?QueryCBA@MLSZAU@@QEAAIXZ
; public: unsigned int __cdecl STRAU::QueryCBA(void) __ptr64
?QueryCBA@STRAU@@QEAAIXZ
; public: unsigned int __cdecl MLSZAU::QueryCBW(void) __ptr64
?QueryCBW@MLSZAU@@QEAAIXZ
; public: unsigned int __cdecl STRAU::QueryCBW(void) __ptr64
?QueryCBW@STRAU@@QEAAIXZ
; public: unsigned int __cdecl MLSZAU::QueryCCH(void) __ptr64
?QueryCCH@MLSZAU@@QEAAIXZ
; public: unsigned int __cdecl MULTISZ::QueryCCH(void)const  __ptr64
?QueryCCH@MULTISZ@@QEBAIXZ
; public: unsigned int __cdecl STR::QueryCCH(void)const  __ptr64
?QueryCCH@STR@@QEBAIXZ
; public: unsigned int __cdecl STRA::QueryCCH(void)const  __ptr64
?QueryCCH@STRA@@QEBAIXZ
; public: unsigned int __cdecl STRAU::QueryCCH(void) __ptr64
?QueryCCH@STRAU@@QEAAIXZ
; public: unsigned int __cdecl STRU::QueryCCH(void)const  __ptr64
?QueryCCH@STRU@@QEBAIXZ
; public: unsigned long __cdecl CEtwTracer::QueryEnableLevel(void) __ptr64
?QueryEnableLevel@CEtwTracer@@QEAAKXZ
; public: char __cdecl STR::QueryFirstChar(void)const  __ptr64
?QueryFirstChar@STR@@QEBADXZ
; public: char __cdecl STR::QueryLastChar(void)const  __ptr64
?QueryLastChar@STR@@QEBADXZ
; public: void * __ptr64 __cdecl BUFFER::QueryPtr(void)const  __ptr64
?QueryPtr@BUFFER@@QEBAPEAXXZ
; public: unsigned int __cdecl BUFFER::QuerySize(void)const  __ptr64
?QuerySize@BUFFER@@QEBAIXZ
; public: unsigned int __cdecl STRA::QuerySize(void)const  __ptr64
?QuerySize@STRA@@QEBAIXZ
; public: void __cdecl ALLOC_CACHE_HANDLER::QueryStats(struct _ALLOC_CACHE_STATISTICS * __ptr64) __ptr64
?QueryStats@ALLOC_CACHE_HANDLER@@QEAAXPEAU_ALLOC_CACHE_STATISTICS@@@Z
; public: char * __ptr64 __cdecl MLSZAU::QueryStr(int) __ptr64
?QueryStr@MLSZAU@@QEAAPEADH@Z
; public: char * __ptr64 __cdecl MULTISZ::QueryStr(void)const  __ptr64
?QueryStr@MULTISZ@@QEBAPEADXZ
; public: char * __ptr64 __cdecl STR::QueryStr(void)const  __ptr64
?QueryStr@STR@@QEBAPEADXZ
; public: char * __ptr64 __cdecl STRA::QueryStr(void) __ptr64
?QueryStr@STRA@@QEAAPEADXZ
; public: char const * __ptr64 __cdecl STRA::QueryStr(void)const  __ptr64
?QueryStr@STRA@@QEBAPEBDXZ
; public: char * __ptr64 __cdecl STRAU::QueryStr(int) __ptr64
?QueryStr@STRAU@@QEAAPEADH@Z
; public: unsigned short * __ptr64 __cdecl STRAU::QueryStr(int) __ptr64
?QueryStr@STRAU@@QEAAPEAGH@Z
; public: unsigned short * __ptr64 __cdecl STRU::QueryStr(void) __ptr64
?QueryStr@STRU@@QEAAPEAGXZ
; public: unsigned short const * __ptr64 __cdecl STRU::QueryStr(void)const  __ptr64
?QueryStr@STRU@@QEBAPEBGXZ
; public: char * __ptr64 __cdecl MLSZAU::QueryStrA(void) __ptr64
?QueryStrA@MLSZAU@@QEAAPEADXZ
; public: char * __ptr64 __cdecl MULTISZ::QueryStrA(void)const  __ptr64
?QueryStrA@MULTISZ@@QEBAPEADXZ
; public: char * __ptr64 __cdecl STR::QueryStrA(void)const  __ptr64
?QueryStrA@STR@@QEBAPEADXZ
; public: char * __ptr64 __cdecl STRAU::QueryStrA(void) __ptr64
?QueryStrA@STRAU@@QEAAPEADXZ
; public: unsigned short * __ptr64 __cdecl MLSZAU::QueryStrW(void) __ptr64
?QueryStrW@MLSZAU@@QEAAPEAGXZ
; public: unsigned short * __ptr64 __cdecl STRAU::QueryStrW(void) __ptr64
?QueryStrW@STRAU@@QEAAPEAGXZ
; public: unsigned long __cdecl MULTISZ::QueryStringCount(void)const  __ptr64
?QueryStringCount@MULTISZ@@QEBAKXZ
; public: unsigned __int64 __cdecl CEtwTracer::QueryTraceHandle(void) __ptr64
?QueryTraceHandle@CEtwTracer@@QEAA_KXZ
; public: unsigned long __cdecl BUFFER_CHAIN_ITEM::QueryUsed(void)const  __ptr64
?QueryUsed@BUFFER_CHAIN_ITEM@@QEBAKXZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<1,1,3,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<2,1,1,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<3,1,1,1,1,1>::QueueType(void)
?QueueType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<4,1,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<5,2,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<6,2,1,2,3,3>::QueueType(void)
?QueueType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<7,2,2,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<8,2,2,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: static enum LOCK_QUEUE_TYPE  __cdecl CLockBase<9,2,1,1,3,2>::QueueType(void)
?QueueType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_QUEUE_TYPE@@XZ
; public: bool __cdecl CDataCache<class CDateTime>::Read(class CDateTime & __ptr64)const  __ptr64
?Read@?$CDataCache@VCDateTime@@@@QEBA_NAEAVCDateTime@@@Z
; public: void __cdecl CCritSec::ReadLock(void) __ptr64
?ReadLock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ReadLock(void) __ptr64
?ReadLock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ReadLock(void)const  __ptr64
?ReadLock@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ReadLock(void)const  __ptr64
?ReadLock@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ReadLock(void) __ptr64
?ReadLock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ReadLock(void) __ptr64
?ReadLock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ReadLock(void) __ptr64
?ReadLock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ReadLock(void) __ptr64
?ReadLock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ReadLock(void) __ptr64
?ReadLock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ReadLock(void) __ptr64
?ReadLock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ReadLock(void) __ptr64
?ReadLock@CSpinLock@@QEAAXXZ
; public: bool __cdecl CCritSec::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CCritSec@@QEAA_NXZ
; public: bool __cdecl CFakeLock::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CFakeLock@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock3::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CSpinLock::ReadOrWriteLock(void) __ptr64
?ReadOrWriteLock@CSpinLock@@QEAA_NXZ
; public: void __cdecl CCritSec::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CCritSec@@QEAAX_N@Z
; public: void __cdecl CFakeLock::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CFakeLock@@QEAAX_N@Z
; public: void __cdecl CReaderWriterLock3::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CReaderWriterLock3@@QEAAX_N@Z
; public: void __cdecl CSpinLock::ReadOrWriteUnlock(bool) __ptr64
?ReadOrWriteUnlock@CSpinLock@@QEAAX_N@Z
; public: void __cdecl CCritSec::ReadUnlock(void) __ptr64
?ReadUnlock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::ReadUnlock(void) __ptr64
?ReadUnlock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::ReadUnlock(void)const  __ptr64
?ReadUnlock@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::ReadUnlock(void)const  __ptr64
?ReadUnlock@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::ReadUnlock(void) __ptr64
?ReadUnlock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::ReadUnlock(void) __ptr64
?ReadUnlock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::ReadUnlock(void) __ptr64
?ReadUnlock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::ReadUnlock(void) __ptr64
?ReadUnlock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::ReadUnlock(void) __ptr64
?ReadUnlock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::ReadUnlock(void) __ptr64
?ReadUnlock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::ReadUnlock(void) __ptr64
?ReadUnlock@CSpinLock@@QEAAXXZ
; private: int __cdecl BUFFER::ReallocStorage(unsigned int) __ptr64
?ReallocStorage@BUFFER@@AEAAHI@Z
; public: void __cdecl MULTISZ::RecalcLen(void) __ptr64
?RecalcLen@MULTISZ@@QEAAXXZ
; public: void const * __ptr64 __cdecl CLKRHashTable_Iterator::Record(void)const  __ptr64
?Record@CLKRHashTable_Iterator@@QEBAPEBXXZ
; public: void const * __ptr64 __cdecl CLKRLinearHashTable_Iterator::Record(void)const  __ptr64
?Record@CLKRLinearHashTable_Iterator@@QEBAPEBXXZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<1,1,3,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<2,1,1,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<3,1,1,1,1,1>::Recursion(void)
?Recursion@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<4,1,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<5,2,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<6,2,1,2,3,3>::Recursion(void)
?Recursion@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<7,2,2,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<8,2,2,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: static enum LOCK_RECURSION  __cdecl CLockBase<9,2,1,1,3,2>::Recursion(void)
?Recursion@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_RECURSION@@XZ
; public: unsigned long __cdecl CEtwTracer::Register(struct _GUID const * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64) __ptr64
?Register@CEtwTracer@@QEAAKPEBU_GUID@@PEAG1@Z
; public: void __cdecl CSharelock::ReleaseExclusiveLock(void) __ptr64
?ReleaseExclusiveLock@CSharelock@@QEAAXXZ
; public: void __cdecl CSharelock::ReleaseShareLock(void) __ptr64
?ReleaseShareLock@CSharelock@@QEAAXXZ
; public: static void __cdecl CDoubleList::RemoveEntry(class CListEntry * __ptr64 const)
?RemoveEntry@CDoubleList@@SAXQEAVCListEntry@@@Z
; public: void __cdecl CLockedDoubleList::RemoveEntry(class CListEntry * __ptr64 const) __ptr64
?RemoveEntry@CLockedDoubleList@@QEAAXQEAVCListEntry@@@Z
; public: class CListEntry * __ptr64 __cdecl CDoubleList::RemoveHead(void) __ptr64
?RemoveHead@CDoubleList@@QEAAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::RemoveHead(void) __ptr64
?RemoveHead@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
; public: static void __cdecl ALLOC_CACHE_HANDLER::RemoveItem(class ALLOC_CACHE_HANDLER * __ptr64)
?RemoveItem@ALLOC_CACHE_HANDLER@@SAXPEAV1@@Z
; public: class CListEntry * __ptr64 __cdecl CDoubleList::RemoveTail(void) __ptr64
?RemoveTail@CDoubleList@@QEAAQEAVCListEntry@@XZ
; public: class CListEntry * __ptr64 __cdecl CLockedDoubleList::RemoveTail(void) __ptr64
?RemoveTail@CLockedDoubleList@@QEAAQEAVCListEntry@@XZ
RemoveWorkItem
; public: void __cdecl MLSZAU::Reset(void) __ptr64
?Reset@MLSZAU@@QEAAXXZ
; public: void __cdecl MULTISZ::Reset(void) __ptr64
?Reset@MULTISZ@@QEAAXXZ
; public: void __cdecl STR::Reset(void) __ptr64
?Reset@STR@@QEAAXXZ
; public: void __cdecl STRA::Reset(void) __ptr64
?Reset@STRA@@QEAAXXZ
; public: void __cdecl STRAU::Reset(void) __ptr64
?Reset@STRAU@@QEAAXXZ
; public: void __cdecl STRU::Reset(void) __ptr64
?Reset@STRU@@QEAAXXZ
; public: static int __cdecl ALLOC_CACHE_HANDLER::ResetLookasideCleanupInterval(void)
?ResetLookasideCleanupInterval@ALLOC_CACHE_HANDLER@@SAHXZ
; public: int __cdecl BUFFER::Resize(unsigned int) __ptr64
?Resize@BUFFER@@QEAAHI@Z
; public: int __cdecl BUFFER::Resize(unsigned int,unsigned int) __ptr64
?Resize@BUFFER@@QEAAHII@Z
; public: long __cdecl STRA::Resize(unsigned long) __ptr64
?Resize@STRA@@QEAAJK@Z
; public: long __cdecl STRU::Resize(unsigned long) __ptr64
?Resize@STRU@@QEAAJK@Z
; public: int __cdecl STRAU::ResizeW(unsigned long) __ptr64
?ResizeW@STRAU@@QEAAHK@Z
; public: int __cdecl STR::SafeCopy(char const * __ptr64) __ptr64
?SafeCopy@STR@@QEAAHPEBD@Z
; public: int __cdecl STRAU::SafeCopy(char const * __ptr64) __ptr64
?SafeCopy@STRAU@@QEAAHPEBD@Z
; public: int __cdecl STRAU::SafeCopy(unsigned short const * __ptr64) __ptr64
?SafeCopy@STRAU@@QEAAHPEBG@Z
ScheduleAdjustTime
ScheduleWorkItem
SchedulerInitialize
SchedulerTerminate
; public: unsigned short __cdecl CDFTCache::Seconds(void)const  __ptr64
?Seconds@CDFTCache@@QEBAGXZ
; public: void __cdecl CLKRHashTable::SetBucketLockSpinCount(unsigned short) __ptr64
?SetBucketLockSpinCount@CLKRHashTable@@QEAAXG@Z
; public: void __cdecl CLKRLinearHashTable::SetBucketLockSpinCount(unsigned short) __ptr64
?SetBucketLockSpinCount@CLKRLinearHashTable@@QEAAXG@Z
; public: static void __cdecl CCritSec::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CCritSec@@SAXN@Z
; public: static void __cdecl CFakeLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CFakeLock@@SAXN@Z
; public: static void __cdecl CReaderWriterLock2::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock2@@SAXN@Z
; public: static void __cdecl CReaderWriterLock3::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock3@@SAXN@Z
; public: static void __cdecl CReaderWriterLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CReaderWriterLock@@SAXN@Z
; public: static void __cdecl CRtlResource::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CRtlResource@@SAXN@Z
; public: static void __cdecl CShareLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CShareLock@@SAXN@Z
; public: static void __cdecl CSmallSpinLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CSmallSpinLock@@SAXN@Z
; public: static void __cdecl CSpinLock::SetDefaultSpinAdjustmentFactor(double)
?SetDefaultSpinAdjustmentFactor@CSpinLock@@SAXN@Z
; public: static void __cdecl CCritSec::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CCritSec@@SAXG@Z
; public: static void __cdecl CFakeLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CFakeLock@@SAXG@Z
; public: static void __cdecl CReaderWriterLock2::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock2@@SAXG@Z
; public: static void __cdecl CReaderWriterLock3::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock3@@SAXG@Z
; public: static void __cdecl CReaderWriterLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CReaderWriterLock@@SAXG@Z
; public: static void __cdecl CRtlResource::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CRtlResource@@SAXG@Z
; public: static void __cdecl CShareLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CShareLock@@SAXG@Z
; public: static void __cdecl CSmallSpinLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CSmallSpinLock@@SAXG@Z
; public: static void __cdecl CSpinLock::SetDefaultSpinCount(unsigned short)
?SetDefaultSpinCount@CSpinLock@@SAXG@Z
; public: int __cdecl STR::SetLen(unsigned long) __ptr64
?SetLen@STR@@QEAAHK@Z
; public: int __cdecl STRA::SetLen(unsigned long) __ptr64
?SetLen@STRA@@QEAAHK@Z
; public: int __cdecl STRAU::SetLen(unsigned long) __ptr64
?SetLen@STRAU@@QEAAHK@Z
; public: int __cdecl STRU::SetLen(unsigned long) __ptr64
?SetLen@STRU@@QEAAHK@Z
; public: void __cdecl ASCLOG_DATETIME_CACHE::SetLocalTime(struct _SYSTEMTIME * __ptr64) __ptr64
?SetLocalTime@ASCLOG_DATETIME_CACHE@@QEAAXPEAU_SYSTEMTIME@@@Z
; public: static int __cdecl ALLOC_CACHE_HANDLER::SetLookasideCleanupInterval(void)
?SetLookasideCleanupInterval@ALLOC_CACHE_HANDLER@@SAHXZ
; public: bool __cdecl CCritSec::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CCritSec@@QEAA_NG@Z
; public: static unsigned long __cdecl CCritSec::SetSpinCount(struct _RTL_CRITICAL_SECTION * __ptr64,unsigned long)
?SetSpinCount@CCritSec@@SAKPEAU_RTL_CRITICAL_SECTION@@K@Z
; public: bool __cdecl CFakeLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CFakeLock@@QEAA_NG@Z
; public: bool __cdecl CReaderWriterLock2::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CReaderWriterLock2@@QEAA_NG@Z
; public: bool __cdecl CReaderWriterLock3::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CReaderWriterLock3@@QEAA_NG@Z
; public: bool __cdecl CReaderWriterLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CReaderWriterLock@@QEAA_NG@Z
; public: bool __cdecl CRtlResource::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CRtlResource@@QEAA_NG@Z
; public: bool __cdecl CShareLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CShareLock@@QEAA_NG@Z
; public: bool __cdecl CSmallSpinLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CSmallSpinLock@@QEAA_NG@Z
; public: bool __cdecl CSpinLock::SetSpinCount(unsigned short) __ptr64
?SetSpinCount@CSpinLock@@QEAA_NG@Z
; public: void __cdecl EXTLOG_DATETIME_CACHE::SetSystemTime(struct _SYSTEMTIME * __ptr64) __ptr64
?SetSystemTime@EXTLOG_DATETIME_CACHE@@QEAAXPEAU_SYSTEMTIME@@@Z
; public: void __cdecl CLKRHashTable::SetTableLockSpinCount(unsigned short) __ptr64
?SetTableLockSpinCount@CLKRHashTable@@QEAAXG@Z
; public: void __cdecl CLKRLinearHashTable::SetTableLockSpinCount(unsigned short) __ptr64
?SetTableLockSpinCount@CLKRLinearHashTable@@QEAAXG@Z
; public: int __cdecl CDateTime::SetTime(struct _FILETIME const & __ptr64) __ptr64
?SetTime@CDateTime@@QEAAHAEBU_FILETIME@@@Z
; public: int __cdecl CDateTime::SetTime(struct _SYSTEMTIME const & __ptr64) __ptr64
?SetTime@CDateTime@@QEAAHAEBU_SYSTEMTIME@@@Z
; public: void __cdecl BUFFER_CHAIN_ITEM::SetUsed(unsigned long) __ptr64
?SetUsed@BUFFER_CHAIN_ITEM@@QEAAXK@Z
; public: void __cdecl BUFFER::SetValid(int) __ptr64
?SetValid@BUFFER@@QEAAXH@Z
; public: unsigned long __cdecl CLKRHashTable::Size(void)const  __ptr64
?Size@CLKRHashTable@@QEBAKXZ
; public: unsigned long __cdecl CLKRLinearHashTable::Size(void)const  __ptr64
?Size@CLKRLinearHashTable@@QEBAKXZ
; private: unsigned char __cdecl CSharelock::SleepWaitingForLock(int) __ptr64
?SleepWaitingForLock@CSharelock@@AEAAEH@Z
StringTimeToFileTime
; public: int __cdecl EVENT_LOG::Success(void)const  __ptr64
?Success@EVENT_LOG@@QEBAHXZ
; public: void __cdecl STRA::SyncWithBuffer(void) __ptr64
?SyncWithBuffer@STRA@@QEAAXXZ
; public: void __cdecl STRU::SyncWithBuffer(void) __ptr64
?SyncWithBuffer@STRU@@QEAAXXZ
SystemTimeToGMT
SystemTimeToGMTEx
; public: int __cdecl CEtwTracer::TracePerUrlEnabled(void) __ptr64
?TracePerUrlEnabled@CEtwTracer@@QEAAHXZ
; public: bool __cdecl CReaderWriterLock3::TryConvertSharedToExclusive(void) __ptr64
?TryConvertSharedToExclusive@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CCritSec::TryReadLock(void) __ptr64
?TryReadLock@CCritSec@@QEAA_NXZ
; public: bool __cdecl CFakeLock::TryReadLock(void) __ptr64
?TryReadLock@CFakeLock@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock2::TryReadLock(void) __ptr64
?TryReadLock@CReaderWriterLock2@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock3::TryReadLock(void) __ptr64
?TryReadLock@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock::TryReadLock(void) __ptr64
?TryReadLock@CReaderWriterLock@@QEAA_NXZ
; public: bool __cdecl CRtlResource::TryReadLock(void) __ptr64
?TryReadLock@CRtlResource@@QEAA_NXZ
; public: bool __cdecl CShareLock::TryReadLock(void) __ptr64
?TryReadLock@CShareLock@@QEAA_NXZ
; public: bool __cdecl CSmallSpinLock::TryReadLock(void) __ptr64
?TryReadLock@CSmallSpinLock@@QEAA_NXZ
; public: bool __cdecl CSpinLock::TryReadLock(void) __ptr64
?TryReadLock@CSpinLock@@QEAA_NXZ
; public: bool __cdecl CCritSec::TryWriteLock(void) __ptr64
?TryWriteLock@CCritSec@@QEAA_NXZ
; public: bool __cdecl CFakeLock::TryWriteLock(void) __ptr64
?TryWriteLock@CFakeLock@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock2::TryWriteLock(void) __ptr64
?TryWriteLock@CReaderWriterLock2@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock3::TryWriteLock(void) __ptr64
?TryWriteLock@CReaderWriterLock3@@QEAA_NXZ
; public: bool __cdecl CReaderWriterLock::TryWriteLock(void) __ptr64
?TryWriteLock@CReaderWriterLock@@QEAA_NXZ
; public: bool __cdecl CRtlResource::TryWriteLock(void) __ptr64
?TryWriteLock@CRtlResource@@QEAA_NXZ
; public: bool __cdecl CShareLock::TryWriteLock(void) __ptr64
?TryWriteLock@CShareLock@@QEAA_NXZ
; public: bool __cdecl CSmallSpinLock::TryWriteLock(void) __ptr64
?TryWriteLock@CSmallSpinLock@@QEAA_NXZ
; public: bool __cdecl CSpinLock::TryWriteLock(void) __ptr64
?TryWriteLock@CSpinLock@@QEAA_NXZ
; long __cdecl UlCleanAndCopyUrl(unsigned char * __ptr64,unsigned long,unsigned long * __ptr64,unsigned short * __ptr64,unsigned short * __ptr64 * __ptr64)
?UlCleanAndCopyUrl@@YAJPEAEKPEAKPEAGPEAPEAG@Z
; public: unsigned long __cdecl CEtwTracer::UnRegister(void) __ptr64
?UnRegister@CEtwTracer@@QEAAKXZ
; public: int __cdecl STR::Unescape(void) __ptr64
?Unescape@STR@@QEAAHXZ
; public: long __cdecl STRA::Unescape(void) __ptr64
?Unescape@STRA@@QEAAJXZ
; public: long __cdecl STRU::Unescape(void) __ptr64
?Unescape@STRU@@QEAAJXZ
; public: void __cdecl STR::Unhash(void) __ptr64
?Unhash@STR@@QEAAXXZ
; private: void __cdecl ALLOC_CACHE_HANDLER::Unlock(void) __ptr64
?Unlock@ALLOC_CACHE_HANDLER@@AEAAXXZ
; public: void __cdecl CLockedDoubleList::Unlock(void) __ptr64
?Unlock@CLockedDoubleList@@QEAAXXZ
; public: void __cdecl CLockedSingleList::Unlock(void) __ptr64
?Unlock@CLockedSingleList@@QEAAXXZ
; private: void __cdecl HASH_TABLE_BUCKET::Unlock(void) __ptr64
?Unlock@HASH_TABLE_BUCKET@@AEAAXXZ
; public: void __cdecl TS_RESOURCE::Unlock(void) __ptr64
?Unlock@TS_RESOURCE@@QEAAXXZ
; public: unsigned char __cdecl CSharelock::UpdateMaxSpins(int) __ptr64
?UpdateMaxSpins@CSharelock@@QEAAEH@Z
; public: unsigned char __cdecl CSharelock::UpdateMaxUsers(int) __ptr64
?UpdateMaxUsers@CSharelock@@QEAAEH@Z
; public: bool __cdecl CLKRHashTable::ValidSignature(void)const  __ptr64
?ValidSignature@CLKRHashTable@@QEBA_NXZ
; public: bool __cdecl CLKRLinearHashTable::ValidSignature(void)const  __ptr64
?ValidSignature@CLKRLinearHashTable@@QEBA_NXZ
; private: void __cdecl BUFFER::VerifyState(void)const  __ptr64
?VerifyState@BUFFER@@AEBAXXZ
; private: unsigned char __cdecl CSharelock::WaitForExclusiveLock(int) __ptr64
?WaitForExclusiveLock@CSharelock@@AEAAEH@Z
; private: unsigned char __cdecl CSharelock::WaitForShareLock(int) __ptr64
?WaitForShareLock@CSharelock@@AEAAEH@Z
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<1,1,3,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$00$00$02$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<2,1,1,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$01$00$00$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<3,1,1,1,1,1>::WaitType(void)
?WaitType@?$CLockBase@$02$00$00$00$00$00@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<4,1,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$03$00$00$01$02$02@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<5,2,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$04$01$00$01$02$02@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<6,2,1,2,3,3>::WaitType(void)
?WaitType@?$CLockBase@$05$01$00$01$02$02@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<7,2,2,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$06$01$01$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<8,2,2,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$07$01$01$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; public: static enum LOCK_WAIT_TYPE  __cdecl CLockBase<9,2,1,1,3,2>::WaitType(void)
?WaitType@?$CLockBase@$08$01$00$00$02$01@@SA?AW4LOCK_WAIT_TYPE@@XZ
; private: void __cdecl CSharelock::WakeAllSleepers(void) __ptr64
?WakeAllSleepers@CSharelock@@AEAAXXZ
; public: bool __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::Write(struct DATETIME_FORMAT_ENTRY const & __ptr64) __ptr64
?Write@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@QEAA_NAEBUDATETIME_FORMAT_ENTRY@@@Z
; public: bool __cdecl CDataCache<class CDateTime>::Write(class CDateTime const & __ptr64) __ptr64
?Write@?$CDataCache@VCDateTime@@@@QEAA_NAEBVCDateTime@@@Z
; public: void __cdecl CCritSec::WriteLock(void) __ptr64
?WriteLock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::WriteLock(void) __ptr64
?WriteLock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::WriteLock(void) __ptr64
?WriteLock@CLKRHashTable@@QEAAXXZ
; public: void __cdecl CLKRLinearHashTable::WriteLock(void) __ptr64
?WriteLock@CLKRLinearHashTable@@QEAAXXZ
; public: void __cdecl CReaderWriterLock2::WriteLock(void) __ptr64
?WriteLock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::WriteLock(void) __ptr64
?WriteLock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::WriteLock(void) __ptr64
?WriteLock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::WriteLock(void) __ptr64
?WriteLock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::WriteLock(void) __ptr64
?WriteLock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::WriteLock(void) __ptr64
?WriteLock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::WriteLock(void) __ptr64
?WriteLock@CSpinLock@@QEAAXXZ
; public: void __cdecl CCritSec::WriteUnlock(void) __ptr64
?WriteUnlock@CCritSec@@QEAAXXZ
; public: void __cdecl CFakeLock::WriteUnlock(void) __ptr64
?WriteUnlock@CFakeLock@@QEAAXXZ
; public: void __cdecl CLKRHashTable::WriteUnlock(void)const  __ptr64
?WriteUnlock@CLKRHashTable@@QEBAXXZ
; public: void __cdecl CLKRLinearHashTable::WriteUnlock(void)const  __ptr64
?WriteUnlock@CLKRLinearHashTable@@QEBAXXZ
; public: void __cdecl CReaderWriterLock2::WriteUnlock(void) __ptr64
?WriteUnlock@CReaderWriterLock2@@QEAAXXZ
; public: void __cdecl CReaderWriterLock3::WriteUnlock(void) __ptr64
?WriteUnlock@CReaderWriterLock3@@QEAAXXZ
; public: void __cdecl CReaderWriterLock::WriteUnlock(void) __ptr64
?WriteUnlock@CReaderWriterLock@@QEAAXXZ
; public: void __cdecl CRtlResource::WriteUnlock(void) __ptr64
?WriteUnlock@CRtlResource@@QEAAXXZ
; public: void __cdecl CShareLock::WriteUnlock(void) __ptr64
?WriteUnlock@CShareLock@@QEAAXXZ
; public: void __cdecl CSmallSpinLock::WriteUnlock(void) __ptr64
?WriteUnlock@CSmallSpinLock@@QEAAXXZ
; public: void __cdecl CSpinLock::WriteUnlock(void) __ptr64
?WriteUnlock@CSpinLock@@QEAAXXZ
ZapRegistryKey
; protected: void __cdecl CLKRLinearHashTable_Iterator::_AddRef(int)const  __ptr64
?_AddRef@CLKRLinearHashTable_Iterator@@IEBAXH@Z
; private: void __cdecl CLKRLinearHashTable::_AddRefRecord(void const * __ptr64,int)const  __ptr64
?_AddRefRecord@CLKRLinearHashTable@@AEBAXPEBXH@Z
; private: static class CNodeClump * __ptr64 __cdecl CLKRLinearHashTable::_AllocateNodeClump(void)
?_AllocateNodeClump@CLKRLinearHashTable@@CAQEAVCNodeClump@@XZ
; private: class CSegment * __ptr64 __cdecl CLKRLinearHashTable::_AllocateSegment(void)const  __ptr64
?_AllocateSegment@CLKRLinearHashTable@@AEBAQEAVCSegment@@XZ
; private: static class CDirEntry * __ptr64 __cdecl CLKRLinearHashTable::_AllocateSegmentDirectory(unsigned __int64)
?_AllocateSegmentDirectory@CLKRLinearHashTable@@CAQEAVCDirEntry@@_K@Z
; private: static class CLKRLinearHashTable * __ptr64 __cdecl CLKRHashTable::_AllocateSubTable(char const * __ptr64,unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),double,unsigned long,class CLKRHashTable * __ptr64,bool)
?_AllocateSubTable@CLKRHashTable@@CAQEAVCLKRLinearHashTable@@PEBDP6A?B_KPEBX@ZP6AK_K@ZP6A_N33@ZP6AX1H@ZNKPEAV1@_N@Z
; private: static class CLKRLinearHashTable * __ptr64 * __ptr64 __cdecl CLKRHashTable::_AllocateSubTableArray(unsigned __int64)
?_AllocateSubTableArray@CLKRHashTable@@CAQEAPEAVCLKRLinearHashTable@@_K@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_Apply(enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE,enum LK_PREDICATE & __ptr64) __ptr64
?_Apply@CLKRLinearHashTable@@AEAAKP6A?AW4LK_ACTION@@PEBXPEAX@Z1W4LK_LOCKTYPE@@AEAW4LK_PREDICATE@@@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_ApplyIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),enum LK_ACTION  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_LOCKTYPE,enum LK_PREDICATE & __ptr64) __ptr64
?_ApplyIf@CLKRLinearHashTable@@AEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@ZP6A?AW4LK_ACTION@@01@Z1W4LK_LOCKTYPE@@AEAW42@@Z
; private: class CBucket * __ptr64 __cdecl CLKRLinearHashTable::_Bucket(unsigned long)const  __ptr64
?_Bucket@CLKRLinearHashTable@@AEBAPEAVCBucket@@K@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_BucketAddress(unsigned long)const  __ptr64
?_BucketAddress@CLKRLinearHashTable@@AEBAKK@Z
; private: unsigned long __cdecl CLKRHashTable::_CalcKeyHash(unsigned __int64)const  __ptr64
?_CalcKeyHash@CLKRHashTable@@AEBAK_K@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_CalcKeyHash(unsigned __int64)const  __ptr64
?_CalcKeyHash@CLKRLinearHashTable@@AEBAK_K@Z
; private: void __cdecl CLKRLinearHashTable::_Clear(bool) __ptr64
?_Clear@CLKRLinearHashTable@@AEAAX_N@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_CloseIterator(class CLKRLinearHashTable::CIterator * __ptr64) __ptr64
?_CloseIterator@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; private: bool __cdecl CReaderWriterLock2::_CmpExch(long,long) __ptr64
?_CmpExch@CReaderWriterLock2@@AEAA_NJJ@Z
; private: bool __cdecl CReaderWriterLock3::_CmpExch(long,long) __ptr64
?_CmpExch@CReaderWriterLock3@@AEAA_NJJ@Z
; private: bool __cdecl CReaderWriterLock::_CmpExch(long,long) __ptr64
?_CmpExch@CReaderWriterLock@@AEAA_NJJ@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_Contract(void) __ptr64
?_Contract@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@XZ
; private: static long __cdecl CReaderWriterLock3::_CurrentThreadId(void)
?_CurrentThreadId@CReaderWriterLock3@@CAJXZ
; private: static long __cdecl CSmallSpinLock::_CurrentThreadId(void)
?_CurrentThreadId@CSmallSpinLock@@CAJXZ
; private: static long __cdecl CSpinLock::_CurrentThreadId(void)
?_CurrentThreadId@CSpinLock@@CAJXZ
; private: unsigned long __cdecl CLKRLinearHashTable::_DeleteIf(enum LK_PREDICATE  (__cdecl*)(void const * __ptr64,void * __ptr64),void * __ptr64,enum LK_PREDICATE & __ptr64) __ptr64
?_DeleteIf@CLKRLinearHashTable@@AEAAKP6A?AW4LK_PREDICATE@@PEBXPEAX@Z1AEAW42@@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_DeleteKey(unsigned __int64,unsigned long) __ptr64
?_DeleteKey@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@_KK@Z
; private: bool __cdecl CLKRLinearHashTable::_DeleteNode(class CBucket * __ptr64,class CNodeClump * __ptr64 & __ptr64,class CNodeClump * __ptr64 & __ptr64,int & __ptr64) __ptr64
?_DeleteNode@CLKRLinearHashTable@@AEAA_NPEAVCBucket@@AEAPEAVCNodeClump@@1AEAH@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_DeleteRecord(void const * __ptr64,unsigned long) __ptr64
?_DeleteRecord@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEBXK@Z
; private: bool __cdecl CLKRLinearHashTable::_EqualKeys(unsigned __int64,unsigned __int64)const  __ptr64
?_EqualKeys@CLKRLinearHashTable@@AEBA_N_K0@Z
; private: bool __cdecl CLKRLinearHashTable::_Erase(class CLKRLinearHashTable_Iterator & __ptr64,unsigned long) __ptr64
?_Erase@CLKRLinearHashTable@@AEAA_NAEAVCLKRLinearHashTable_Iterator@@K@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_Expand(void) __ptr64
?_Expand@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@XZ
; private: unsigned __int64 const  __cdecl CLKRHashTable::_ExtractKey(void const * __ptr64)const  __ptr64
?_ExtractKey@CLKRHashTable@@AEBA?B_KPEBX@Z
; private: unsigned __int64 const  __cdecl CLKRLinearHashTable::_ExtractKey(void const * __ptr64)const  __ptr64
?_ExtractKey@CLKRLinearHashTable@@AEBA?B_KPEBX@Z
; private: class CBucket * __ptr64 __cdecl CLKRLinearHashTable::_FindBucket(unsigned long,bool)const  __ptr64
?_FindBucket@CLKRLinearHashTable@@AEBAPEAVCBucket@@K_N@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_FindKey(unsigned __int64,unsigned long,void const * __ptr64 * __ptr64,class CLKRLinearHashTable_Iterator * __ptr64)const  __ptr64
?_FindKey@CLKRLinearHashTable@@AEBA?AW4LK_RETCODE@@_KKPEAPEBXPEAVCLKRLinearHashTable_Iterator@@@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_FindRecord(void const * __ptr64,unsigned long)const  __ptr64
?_FindRecord@CLKRLinearHashTable@@AEBA?AW4LK_RETCODE@@PEBXK@Z
; private: static bool __cdecl CLKRLinearHashTable::_FreeNodeClump(class CNodeClump * __ptr64)
?_FreeNodeClump@CLKRLinearHashTable@@CA_NPEAVCNodeClump@@@Z
; private: bool __cdecl CLKRLinearHashTable::_FreeSegment(class CSegment * __ptr64)const  __ptr64
?_FreeSegment@CLKRLinearHashTable@@AEBA_NPEAVCSegment@@@Z
; private: bool __cdecl CLKRLinearHashTable::_FreeSegmentDirectory(void) __ptr64
?_FreeSegmentDirectory@CLKRLinearHashTable@@AEAA_NXZ
; private: static bool __cdecl CLKRHashTable::_FreeSubTable(class CLKRLinearHashTable * __ptr64)
?_FreeSubTable@CLKRHashTable@@CA_NPEAVCLKRLinearHashTable@@@Z
; private: static bool __cdecl CLKRHashTable::_FreeSubTableArray(class CLKRLinearHashTable * __ptr64 * __ptr64)
?_FreeSubTableArray@CLKRHashTable@@CA_NPEAPEAVCLKRLinearHashTable@@@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_H0(unsigned long)const  __ptr64
?_H0@CLKRLinearHashTable@@AEBAKK@Z
; private: static unsigned long __cdecl CLKRLinearHashTable::_H0(unsigned long,unsigned long)
?_H0@CLKRLinearHashTable@@CAKKK@Z
; private: unsigned long __cdecl CLKRLinearHashTable::_H1(unsigned long)const  __ptr64
?_H1@CLKRLinearHashTable@@AEBAKK@Z
; private: static unsigned long __cdecl CLKRLinearHashTable::_H1(unsigned long,unsigned long)
?_H1@CLKRLinearHashTable@@CAKKK@Z
; protected: bool __cdecl CLKRHashTable_Iterator::_Increment(bool) __ptr64
?_Increment@CLKRHashTable_Iterator@@IEAA_N_N@Z
; protected: bool __cdecl CLKRLinearHashTable_Iterator::_Increment(bool) __ptr64
?_Increment@CLKRLinearHashTable_Iterator@@IEAA_N_N@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_Initialize(unsigned __int64 const  (__cdecl*)(void const * __ptr64),unsigned long (__cdecl*)(unsigned __int64),bool (__cdecl*)(unsigned __int64,unsigned __int64),void (__cdecl*)(void const * __ptr64,int),char const * __ptr64,double,unsigned long) __ptr64
?_Initialize@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@P6A?B_KPEBX@ZP6AK_K@ZP6A_N22@ZP6AX0H@ZPEBDNK@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_InitializeIterator(class CLKRLinearHashTable::CIterator * __ptr64) __ptr64
?_InitializeIterator@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEAVCIterator@1@@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_InsertRecord(void const * __ptr64,unsigned long,bool,class CLKRLinearHashTable_Iterator * __ptr64) __ptr64
?_InsertRecord@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEBXK_NPEAVCLKRLinearHashTable_Iterator@@@Z
; private: void __cdecl CLKRHashTable::_InsertThisIntoGlobalList(void) __ptr64
?_InsertThisIntoGlobalList@CLKRHashTable@@AEAAXXZ
; private: void __cdecl CLKRLinearHashTable::_InsertThisIntoGlobalList(void) __ptr64
?_InsertThisIntoGlobalList@CLKRLinearHashTable@@AEAAXXZ
; private: bool __cdecl CSpinLock::_IsLocked(void)const  __ptr64
?_IsLocked@CSpinLock@@AEBA_NXZ
; private: int __cdecl CLKRLinearHashTable::_IsNodeCompact(class CBucket * __ptr64 const)const  __ptr64
?_IsNodeCompact@CLKRLinearHashTable@@AEBAHQEAVCBucket@@@Z
; private: bool __cdecl CLKRHashTable::_IsValidIterator(class CLKRHashTable_Iterator const & __ptr64)const  __ptr64
?_IsValidIterator@CLKRHashTable@@AEBA_NAEBVCLKRHashTable_Iterator@@@Z
; private: bool __cdecl CLKRLinearHashTable::_IsValidIterator(class CLKRLinearHashTable_Iterator const & __ptr64)const  __ptr64
?_IsValidIterator@CLKRLinearHashTable@@AEBA_NAEBVCLKRLinearHashTable_Iterator@@@Z
; private: void __cdecl CSpinLock::_Lock(void) __ptr64
?_Lock@CSpinLock@@AEAAXXZ
; private: void __cdecl CReaderWriterLock2::_LockSpin(bool) __ptr64
?_LockSpin@CReaderWriterLock2@@AEAAX_N@Z
; private: void __cdecl CReaderWriterLock3::_LockSpin(enum CReaderWriterLock3::SPIN_TYPE) __ptr64
?_LockSpin@CReaderWriterLock3@@AEAAXW4SPIN_TYPE@1@@Z
; private: void __cdecl CReaderWriterLock::_LockSpin(bool) __ptr64
?_LockSpin@CReaderWriterLock@@AEAAX_N@Z
; private: void __cdecl CSmallSpinLock::_LockSpin(void) __ptr64
?_LockSpin@CSmallSpinLock@@AEAAXXZ
; private: void __cdecl CSpinLock::_LockSpin(void) __ptr64
?_LockSpin@CSpinLock@@AEAAXXZ
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_MergeRecordSets(class CBucket * __ptr64,class CNodeClump * __ptr64,class CNodeClump * __ptr64) __ptr64
?_MergeRecordSets@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEAVCBucket@@PEAVCNodeClump@@1@Z
; private: static enum LK_PREDICATE  __cdecl CLKRLinearHashTable::_PredTrue(void const * __ptr64,void * __ptr64)
?_PredTrue@CLKRLinearHashTable@@CA?AW4LK_PREDICATE@@PEBXPEAX@Z
; private: void __cdecl CReaderWriterLock2::_ReadLockSpin(void) __ptr64
?_ReadLockSpin@CReaderWriterLock2@@AEAAXXZ
; private: void __cdecl CReaderWriterLock3::_ReadLockSpin(enum CReaderWriterLock3::SPIN_TYPE) __ptr64
?_ReadLockSpin@CReaderWriterLock3@@AEAAXW4SPIN_TYPE@1@@Z
; private: void __cdecl CReaderWriterLock::_ReadLockSpin(void) __ptr64
?_ReadLockSpin@CReaderWriterLock@@AEAAXXZ
; protected: static void __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::_ReadMemoryBarrier(void)
?_ReadMemoryBarrier@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@KAXXZ
; protected: static void __cdecl CDataCache<class CDateTime>::_ReadMemoryBarrier(void)
?_ReadMemoryBarrier@?$CDataCache@VCDateTime@@@@KAXXZ
; private: bool __cdecl CLKRLinearHashTable::_ReadOrWriteLock(void)const  __ptr64
?_ReadOrWriteLock@CLKRLinearHashTable@@AEBA_NXZ
; private: void __cdecl CLKRLinearHashTable::_ReadOrWriteUnlock(bool)const  __ptr64
?_ReadOrWriteUnlock@CLKRLinearHashTable@@AEBAX_N@Z
; protected: long __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::_ReadSequence(void)const  __ptr64
?_ReadSequence@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@IEBAJXZ
; protected: long __cdecl CDataCache<class CDateTime>::_ReadSequence(void)const  __ptr64
?_ReadSequence@?$CDataCache@VCDateTime@@@@IEBAJXZ
; private: void __cdecl CLKRHashTable::_RemoveThisFromGlobalList(void) __ptr64
?_RemoveThisFromGlobalList@CLKRHashTable@@AEAAXXZ
; private: void __cdecl CLKRLinearHashTable::_RemoveThisFromGlobalList(void) __ptr64
?_RemoveThisFromGlobalList@CLKRLinearHashTable@@AEAAXXZ
; private: unsigned long __cdecl CLKRLinearHashTable::_SegIndex(unsigned long)const  __ptr64
?_SegIndex@CLKRLinearHashTable@@AEBAKK@Z
; private: class CSegment * __ptr64 & __ptr64 __cdecl CLKRLinearHashTable::_Segment(unsigned long)const  __ptr64
?_Segment@CLKRLinearHashTable@@AEBAAEAPEAVCSegment@@K@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_SetSegVars(enum LK_TABLESIZE,unsigned long) __ptr64
?_SetSegVars@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@W4LK_TABLESIZE@@K@Z
; protected: long __cdecl CDataCache<struct DATETIME_FORMAT_ENTRY>::_SetSequence(long) __ptr64
?_SetSequence@?$CDataCache@UDATETIME_FORMAT_ENTRY@@@@IEAAJJ@Z
; protected: long __cdecl CDataCache<class CDateTime>::_SetSequence(long) __ptr64
?_SetSequence@?$CDataCache@VCDateTime@@@@IEAAJJ@Z
; private: enum LK_RETCODE  __cdecl CLKRLinearHashTable::_SplitRecordSet(class CNodeClump * __ptr64,class CNodeClump * __ptr64,unsigned long,unsigned long,unsigned long,class CNodeClump * __ptr64) __ptr64
?_SplitRecordSet@CLKRLinearHashTable@@AEAA?AW4LK_RETCODE@@PEAVCNodeClump@@0KKK0@Z
; private: class CLKRLinearHashTable * __ptr64 __cdecl CLKRHashTable::_SubTable(unsigned long)const  __ptr64
?_SubTable@CLKRHashTable@@AEBAPEAVCLKRLinearHashTable@@K@Z
; private: int __cdecl CLKRHashTable::_SubTableIndex(class CLKRLinearHashTable * __ptr64)const  __ptr64
?_SubTableIndex@CLKRHashTable@@AEBAHPEAVCLKRLinearHashTable@@@Z
; private: bool __cdecl CSmallSpinLock::_TryLock(void) __ptr64
?_TryLock@CSmallSpinLock@@AEAA_NXZ
; private: bool __cdecl CSpinLock::_TryLock(void) __ptr64
?_TryLock@CSpinLock@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock2::_TryReadLock(void) __ptr64
?_TryReadLock@CReaderWriterLock2@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock3::_TryReadLock(void) __ptr64
?_TryReadLock@CReaderWriterLock3@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock::_TryReadLock(void) __ptr64
?_TryReadLock@CReaderWriterLock@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock3::_TryReadLockRecursive(void) __ptr64
?_TryReadLockRecursive@CReaderWriterLock3@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock3::_TryWriteLock2(void) __ptr64
?_TryWriteLock2@CReaderWriterLock3@@AEAA_NXZ
; private: bool __cdecl CReaderWriterLock2::_TryWriteLock(long) __ptr64
?_TryWriteLock@CReaderWriterLock2@@AEAA_NJ@Z
; private: bool __cdecl CReaderWriterLock3::_TryWriteLock(long) __ptr64
?_TryWriteLock@CReaderWriterLock3@@AEAA_NJ@Z
; private: bool __cdecl CReaderWriterLock::_TryWriteLock(void) __ptr64
?_TryWriteLock@CReaderWriterLock@@AEAA_NXZ
; private: void __cdecl CSpinLock::_Unlock(void) __ptr64
?_Unlock@CSpinLock@@AEAAXXZ
; private: void __cdecl CReaderWriterLock2::_WriteLockSpin(void) __ptr64
?_WriteLockSpin@CReaderWriterLock2@@AEAAXXZ
; private: void __cdecl CReaderWriterLock3::_WriteLockSpin(void) __ptr64
?_WriteLockSpin@CReaderWriterLock3@@AEAAXXZ
; private: void __cdecl CReaderWriterLock::_WriteLockSpin(void) __ptr64
?_WriteLockSpin@CReaderWriterLock@@AEAAXXZ
; long const * const  `public: static long const * __ptr64 __cdecl CLKRHashTableStats::BucketSizes(void)'::`2'::s_aBucketSizes
?s_aBucketSizes@?1??BucketSizes@CLKRHashTableStats@@SAPEBJXZ@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 * __ptr64  __ptr64 ALLOC_CACHE_HANDLER::sm_hTimer
?sm_hTimer@ALLOC_CACHE_HANDLER@@0PEAXEA 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 * __ptr64  __ptr64 CLKRLinearHashTable::sm_palloc
?sm_palloc@CLKRLinearHashTable@@1PEAVALLOC_CACHE_HANDLER@@EA 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
CreateRefTraceLog
CreateTraceLog
DestroyRefTraceLog
DestroyTraceLog
DllMain
GetAllocCounters
GetCurrentTimeInMilliseconds
GetCurrentTimeInSeconds
GetQueryType
IISCaptureStackBackTrace
IISGetCurrentTime
IISGetPlatformType
IISInitializeCriticalSection
IISSetCriticalSectionSpinCount
IisCalloc
IisFree
IisHeap
IisMalloc
IisReAlloc
InetAcquireResourceExclusive
InetAcquireResourceShared
InetConvertExclusiveToShared
InetConvertSharedToExclusive
InetDeleteResource
InetInitializeResource
InetReleaseResource
InitializeIISRTL
InitializeSecondsTimer
IsNumberInUnicodeList
LKRHashTableInit
LKRHashTableUninit
MIDL_user_allocate
MIDL_user_free
MonBuildInstanceDefinition
PuCloseDbgPrintFile
PuCreateDebugPrintsObject
PuDbgAssertFailed
PuDbgCaptureContext
PuDbgCreateEvent
PuDbgCreateMutex
PuDbgCreateSemaphore
PuDbgDump
PuDbgPrint
PuDbgPrintW
PuDeleteDebugPrintsObject
PuLoadDebugFlagsFromReg
PuLoadDebugFlagsFromRegStr
ResetTraceLog
RpcBindHandleForServer
RpcBindHandleFree
RpcBindHandleOverLpc
RpcBindHandleOverNamedPipe
RpcBindHandleOverTcpIp
RpcuFindProtocolToUse
TerminateIISRTL
TerminateSecondsTimer
WriteRefTraceLog
WriteRefTraceLogEx
WriteTraceLog
stristr
