; 
; Exports of file SlbIop.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY SlbIop.dll
EXPORTS
; public: __cdecl scu::ExcTemplate<2,unsigned long>::ExcTemplate<2,unsigned long>(class ExcTemplate<2,unsigned long>::ExcTemplate<2,unsigned long> const & __ptr64) __ptr64
??0?$ExcTemplate@$01K@scu@@QEAA@AEBV01@@Z
; public: __cdecl scu::ExcTemplate<2,unsigned long>::ExcTemplate<2,unsigned long>(unsigned long) __ptr64
??0?$ExcTemplate@$01K@scu@@QEAA@K@Z
; public: __cdecl scu::SecureArray<char>::SecureArray<char>(class SecureArray<char>::SecureArray<char> const & __ptr64) __ptr64
??0?$SecureArray@D@scu@@QEAA@AEBV01@@Z
; public: __cdecl scu::SecureArray<char>::SecureArray<char>(char * __ptr64,unsigned __int64) __ptr64
??0?$SecureArray@D@scu@@QEAA@PEAD_K@Z
; public: __cdecl scu::SecureArray<char>::SecureArray<char>(char const * __ptr64,unsigned __int64) __ptr64
??0?$SecureArray@D@scu@@QEAA@PEBD_K@Z
; public: __cdecl scu::SecureArray<char>::SecureArray<char>(void) __ptr64
??0?$SecureArray@D@scu@@QEAA@XZ
; public: __cdecl scu::SecureArray<char>::SecureArray<char>(unsigned __int64) __ptr64
??0?$SecureArray@D@scu@@QEAA@_K@Z
; public: __cdecl scu::SecureArray<char>::SecureArray<char>(unsigned __int64,char const & __ptr64) __ptr64
??0?$SecureArray@D@scu@@QEAA@_KAEBD@Z
; public: __cdecl scu::SecureArray<unsigned char>::SecureArray<unsigned char>(class SecureArray<unsigned char>::SecureArray<unsigned char> const & __ptr64) __ptr64
??0?$SecureArray@E@scu@@QEAA@AEBV01@@Z
; public: __cdecl scu::SecureArray<unsigned char>::SecureArray<unsigned char>(unsigned char * __ptr64,unsigned __int64) __ptr64
??0?$SecureArray@E@scu@@QEAA@PEAE_K@Z
; public: __cdecl scu::SecureArray<unsigned char>::SecureArray<unsigned char>(unsigned char const * __ptr64,unsigned __int64) __ptr64
??0?$SecureArray@E@scu@@QEAA@PEBE_K@Z
; public: __cdecl scu::SecureArray<unsigned char>::SecureArray<unsigned char>(void) __ptr64
??0?$SecureArray@E@scu@@QEAA@XZ
; public: __cdecl scu::SecureArray<unsigned char>::SecureArray<unsigned char>(unsigned __int64) __ptr64
??0?$SecureArray@E@scu@@QEAA@_K@Z
; public: __cdecl scu::SecureArray<unsigned char>::SecureArray<unsigned char>(unsigned __int64,unsigned char const & __ptr64) __ptr64
??0?$SecureArray@E@scu@@QEAA@_KAEBE@Z
; public: __cdecl std::auto_ptr<class iop::CSharedMarker>::auto_ptr<class iop::CSharedMarker>(class auto_ptr<class iop::CSharedMarker>::auto_ptr<class iop::CSharedMarker> const & __ptr64) __ptr64
??0?$auto_ptr@VCSharedMarker@iop@@@std@@QEAA@AEBV01@@Z
; public: __cdecl std::auto_ptr<class iop::CSharedMarker>::auto_ptr<class iop::CSharedMarker>(class iop::CSharedMarker * __ptr64) __ptr64
??0?$auto_ptr@VCSharedMarker@iop@@@std@@QEAA@PEAVCSharedMarker@iop@@@Z
; public: __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::auto_ptr<class iop::RMHangProcDeathSynchObjects>(class auto_ptr<class iop::RMHangProcDeathSynchObjects>::auto_ptr<class iop::RMHangProcDeathSynchObjects> const & __ptr64) __ptr64
??0?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEAA@AEBV01@@Z
; public: __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::auto_ptr<class iop::RMHangProcDeathSynchObjects>(class iop::RMHangProcDeathSynchObjects * __ptr64) __ptr64
??0?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEAA@PEAVRMHangProcDeathSynchObjects@iop@@@Z
; public: __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >(class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > const & __ptr64) __ptr64
??0?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA@AEBV01@@Z
; public: __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >(class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::allocator<class iop::FilePathComponent> const & __ptr64) __ptr64
??0?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA@AEBV?$allocator@VFilePathComponent@iop@@@1@@Z
; public: __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >(class iop::FilePathComponent const * __ptr64,class iop::FilePathComponent const * __ptr64,class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::allocator<class iop::FilePathComponent> const & __ptr64) __ptr64
??0?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA@PEBVFilePathComponent@iop@@0AEBV?$allocator@VFilePathComponent@iop@@@1@@Z
; public: __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >(class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator,class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator,class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::allocator<class iop::FilePathComponent> const & __ptr64) __ptr64
??0?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA@Vconst_iterator@01@0AEBV?$allocator@VFilePathComponent@iop@@@1@@Z
; public: __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >(unsigned __int64,class iop::FilePathComponent const & __ptr64,class list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::allocator<class iop::FilePathComponent> const & __ptr64) __ptr64
??0?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA@_KAEBVFilePathComponent@iop@@AEBV?$allocator@VFilePathComponent@iop@@@1@@Z
; public: __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >(class vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> > const & __ptr64) __ptr64
??0?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA@AEBV01@@Z
; public: __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >(class vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::allocator<struct iop::EventInfo * __ptr64> const & __ptr64) __ptr64
??0?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA@AEBV?$allocator@PEAUEventInfo@iop@@@1@@Z
; public: __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >(struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64,class vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::allocator<struct iop::EventInfo * __ptr64> const & __ptr64) __ptr64
??0?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA@PEBQEAUEventInfo@iop@@0AEBV?$allocator@PEAUEventInfo@iop@@@1@@Z
; public: __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >(unsigned __int64,struct iop::EventInfo * __ptr64 const & __ptr64,class vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::allocator<struct iop::EventInfo * __ptr64> const & __ptr64) __ptr64
??0?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA@_KAEBQEAUEventInfo@iop@@AEBV?$allocator@PEAUEventInfo@iop@@@1@@Z
; public: __cdecl iop::CAccessCard::CAccessCard(unsigned __int64,char const * __ptr64,unsigned __int64,unsigned long) __ptr64
??0CAccessCard@iop@@QEAA@_KPEBD0K@Z
; public: __cdecl iop::CCryptoCard::CCryptoCard(unsigned __int64,char const * __ptr64,unsigned __int64,unsigned long) __ptr64
??0CCryptoCard@iop@@QEAA@_KPEBD0K@Z
; public: __cdecl iop::CIOP::CIOP(void) __ptr64
??0CIOP@iop@@QEAA@XZ
; public: __cdecl iop::CIOPCriticalSection::CIOPCriticalSection(class CIOPCriticalSection::CIOPLock * __ptr64) __ptr64
??0CIOPCriticalSection@iop@@QEAA@PEAVCIOPLock@1@@Z
; public: __cdecl iop::CIOPLock::CIOPLock(char const * __ptr64) __ptr64
??0CIOPLock@iop@@QEAA@PEBD@Z
; public: __cdecl iop::CIOPMutex::CIOPMutex(class CIOPMutex::CIOPLock * __ptr64) __ptr64
??0CIOPMutex@iop@@QEAA@PEAVCIOPLock@1@@Z
; public: __cdecl iop::CLockWrap::CLockWrap(class CLockWrap::CIOPLock * __ptr64) __ptr64
??0CLockWrap@iop@@QEAA@PEAVCIOPLock@1@@Z
; public: __cdecl iop::CMarker::CMarker(class CMarker::CMarker const & __ptr64) __ptr64
??0CMarker@iop@@QEAA@AEBV01@@Z
; public: __cdecl iop::CMarker::CMarker(enum CMarker::CMarker::MarkerType const & __ptr64) __ptr64
??0CMarker@iop@@QEAA@AEBW4MarkerType@01@@Z
; public: __cdecl iop::CMarker::CMarker(enum CMarker::CMarker::MarkerType,struct _GUID const & __ptr64,__int64 const & __ptr64) __ptr64
??0CMarker@iop@@QEAA@W4MarkerType@01@AEBU_GUID@@AEB_J@Z
; public: __cdecl iop::CPrivateKeyBlob::CPrivateKeyBlob(class CPrivateKeyBlob::CPrivateKeyBlob const & __ptr64) __ptr64
??0CPrivateKeyBlob@iop@@QEAA@AEBV01@@Z
; public: __cdecl iop::CPrivateKeyBlob::CPrivateKeyBlob(void) __ptr64
??0CPrivateKeyBlob@iop@@QEAA@XZ
; public: __cdecl iop::CPublicKeyBlob::CPublicKeyBlob(class CPublicKeyBlob::CPublicKeyBlob const & __ptr64) __ptr64
??0CPublicKeyBlob@iop@@QEAA@AEBV01@@Z
; public: __cdecl iop::CPublicKeyBlob::CPublicKeyBlob(void) __ptr64
??0CPublicKeyBlob@iop@@QEAA@XZ
; public: __cdecl iop::CSCardLock::CSCardLock(class CSCardLock::CIOPLock * __ptr64) __ptr64
??0CSCardLock@iop@@QEAA@PEAVCIOPLock@1@@Z
; public: __cdecl iop::CSmartCard::CSmartCard(unsigned __int64,char const * __ptr64,unsigned __int64,unsigned long) __ptr64
??0CSmartCard@iop@@QEAA@_KPEBD0K@Z
; public: __cdecl iop::CSmartCard::Exception::Exception(class CSmartCard::Exception::Exception const & __ptr64) __ptr64
??0Exception@CSmartCard@iop@@QEAA@AEBV012@@Z
; public: __cdecl iop::CSmartCard::Exception::Exception(enum CSmartCard::Exception::CauseCode,unsigned char,unsigned char,unsigned short) __ptr64
??0Exception@CSmartCard@iop@@QEAA@W4CauseCode@12@EEG@Z
; protected: __cdecl scu::Exception::Exception(enum Exception::Exception::FacilityCode) __ptr64
??0Exception@scu@@IEAA@W4FacilityCode@01@@Z
; public: __cdecl scu::Exception::Exception(class Exception::Exception const & __ptr64) __ptr64
??0Exception@scu@@QEAA@AEBV01@@Z
; public: __cdecl iop::FilePath::FilePath(class FilePath::FilePath const & __ptr64) __ptr64
??0FilePath@iop@@QEAA@AEBV01@@Z
; public: __cdecl iop::FilePath::FilePath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >) __ptr64
??0FilePath@iop@@QEAA@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
; public: __cdecl iop::FilePath::FilePath(void) __ptr64
??0FilePath@iop@@QEAA@XZ
; public: __cdecl iop::FilePathComponent::FilePathComponent(class FilePathComponent::FilePathComponent const & __ptr64) __ptr64
??0FilePathComponent@iop@@QEAA@AEBV01@@Z
; public: __cdecl iop::FilePathComponent::FilePathComponent(unsigned short) __ptr64
??0FilePathComponent@iop@@QEAA@G@Z
; public: __cdecl iop::FilePathComponent::FilePathComponent(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >) __ptr64
??0FilePathComponent@iop@@QEAA@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
; public: __cdecl scu::OsException::OsException(class OsException::OsException const & __ptr64) __ptr64
??0OsException@scu@@QEAA@AEBV01@@Z
; public: __cdecl scu::OsException::OsException(long) __ptr64
??0OsException@scu@@QEAA@J@Z
; public: __cdecl scu::OsException::OsException(unsigned long) __ptr64
??0OsException@scu@@QEAA@K@Z
; public: virtual __cdecl scu::ExcTemplate<2,unsigned long>::~ExcTemplate<2,unsigned long>(void) __ptr64
??1?$ExcTemplate@$01K@scu@@UEAA@XZ
; public: __cdecl scu::SecureArray<char>::~SecureArray<char>(void) __ptr64
??1?$SecureArray@D@scu@@QEAA@XZ
; public: __cdecl scu::SecureArray<unsigned char>::~SecureArray<unsigned char>(void) __ptr64
??1?$SecureArray@E@scu@@QEAA@XZ
; public: __cdecl std::auto_ptr<class iop::CSharedMarker>::~auto_ptr<class iop::CSharedMarker>(void) __ptr64
??1?$auto_ptr@VCSharedMarker@iop@@@std@@QEAA@XZ
; public: __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::~auto_ptr<class iop::RMHangProcDeathSynchObjects>(void) __ptr64
??1?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEAA@XZ
; public: __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::~list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >(void) __ptr64
??1?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA@XZ
; public: __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::~vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >(void) __ptr64
??1?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA@XZ
; public: virtual __cdecl iop::CAccessCard::~CAccessCard(void) __ptr64
??1CAccessCard@iop@@UEAA@XZ
; public: virtual __cdecl iop::CCryptoCard::~CCryptoCard(void) __ptr64
??1CCryptoCard@iop@@UEAA@XZ
; public: __cdecl iop::CIOP::~CIOP(void) __ptr64
??1CIOP@iop@@QEAA@XZ
; public: __cdecl iop::CIOPCriticalSection::~CIOPCriticalSection(void) __ptr64
??1CIOPCriticalSection@iop@@QEAA@XZ
; public: virtual __cdecl iop::CIOPLock::~CIOPLock(void) __ptr64
??1CIOPLock@iop@@UEAA@XZ
; public: __cdecl iop::CIOPMutex::~CIOPMutex(void) __ptr64
??1CIOPMutex@iop@@QEAA@XZ
; public: __cdecl iop::CLockWrap::~CLockWrap(void) __ptr64
??1CLockWrap@iop@@QEAA@XZ
; public: virtual __cdecl iop::CMarker::~CMarker(void) __ptr64
??1CMarker@iop@@UEAA@XZ
; public: virtual __cdecl iop::CPrivateKeyBlob::~CPrivateKeyBlob(void) __ptr64
??1CPrivateKeyBlob@iop@@UEAA@XZ
; public: virtual __cdecl iop::CPublicKeyBlob::~CPublicKeyBlob(void) __ptr64
??1CPublicKeyBlob@iop@@UEAA@XZ
; public: __cdecl iop::CSCardLock::~CSCardLock(void) __ptr64
??1CSCardLock@iop@@QEAA@XZ
; public: virtual __cdecl iop::CSmartCard::~CSmartCard(void) __ptr64
??1CSmartCard@iop@@UEAA@XZ
; public: virtual __cdecl iop::CSmartCard::Exception::~Exception(void) __ptr64
??1Exception@CSmartCard@iop@@UEAA@XZ
; public: virtual __cdecl scu::Exception::~Exception(void) __ptr64
??1Exception@scu@@UEAA@XZ
; public: virtual __cdecl iop::FilePath::~FilePath(void) __ptr64
??1FilePath@iop@@UEAA@XZ
; public: virtual __cdecl iop::FilePathComponent::~FilePathComponent(void) __ptr64
??1FilePathComponent@iop@@UEAA@XZ
; public: virtual __cdecl scu::OsException::~OsException(void) __ptr64
??1OsException@scu@@UEAA@XZ
; public: class scu::ExcTemplate<2,unsigned long> & __ptr64 __cdecl scu::ExcTemplate<2,unsigned long>::operator=(class scu::ExcTemplate<2,unsigned long> const & __ptr64) __ptr64
??4?$ExcTemplate@$01K@scu@@QEAAAEAV01@AEBV01@@Z
; public: class scu::SecureArray<char> & __ptr64 __cdecl scu::SecureArray<char>::operator=(char const & __ptr64) __ptr64
??4?$SecureArray@D@scu@@QEAAAEAV01@AEBD@Z
; public: class scu::SecureArray<char> & __ptr64 __cdecl scu::SecureArray<char>::operator=(class scu::SecureArray<char> const & __ptr64) __ptr64
??4?$SecureArray@D@scu@@QEAAAEAV01@AEBV01@@Z
; public: class scu::SecureArray<unsigned char> & __ptr64 __cdecl scu::SecureArray<unsigned char>::operator=(unsigned char const & __ptr64) __ptr64
??4?$SecureArray@E@scu@@QEAAAEAV01@AEBE@Z
; public: class scu::SecureArray<unsigned char> & __ptr64 __cdecl scu::SecureArray<unsigned char>::operator=(class scu::SecureArray<unsigned char> const & __ptr64) __ptr64
??4?$SecureArray@E@scu@@QEAAAEAV01@AEBV01@@Z
; public: class std::auto_ptr<class iop::CSharedMarker> & __ptr64 __cdecl std::auto_ptr<class iop::CSharedMarker>::operator=(class std::auto_ptr<class iop::CSharedMarker> const & __ptr64) __ptr64
??4?$auto_ptr@VCSharedMarker@iop@@@std@@QEAAAEAV01@AEBV01@@Z
; public: class std::auto_ptr<class iop::RMHangProcDeathSynchObjects> & __ptr64 __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::operator=(class std::auto_ptr<class iop::RMHangProcDeathSynchObjects> const & __ptr64) __ptr64
??4?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEAAAEAV01@AEBV01@@Z
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::operator=(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > const & __ptr64) __ptr64
??4?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAAEAV01@AEBV01@@Z
; public: class std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> > & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::operator=(class std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> > const & __ptr64) __ptr64
??4?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CIOP & __ptr64 __cdecl iop::CIOP::operator=(class iop::CIOP const & __ptr64) __ptr64
??4CIOP@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CIOPCriticalSection & __ptr64 __cdecl iop::CIOPCriticalSection::operator=(class iop::CIOPCriticalSection const & __ptr64) __ptr64
??4CIOPCriticalSection@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CIOPMutex & __ptr64 __cdecl iop::CIOPMutex::operator=(class iop::CIOPMutex const & __ptr64) __ptr64
??4CIOPMutex@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CLockWrap & __ptr64 __cdecl iop::CLockWrap::operator=(class iop::CLockWrap const & __ptr64) __ptr64
??4CLockWrap@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CMarker & __ptr64 __cdecl iop::CMarker::operator=(class iop::CMarker const & __ptr64) __ptr64
??4CMarker@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CPrivateKeyBlob & __ptr64 __cdecl iop::CPrivateKeyBlob::operator=(class iop::CPrivateKeyBlob const & __ptr64) __ptr64
??4CPrivateKeyBlob@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CPublicKeyBlob & __ptr64 __cdecl iop::CPublicKeyBlob::operator=(class iop::CPublicKeyBlob const & __ptr64) __ptr64
??4CPublicKeyBlob@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CSCardLock & __ptr64 __cdecl iop::CSCardLock::operator=(class iop::CSCardLock const & __ptr64) __ptr64
??4CSCardLock@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::CSmartCard::Exception & __ptr64 __cdecl iop::CSmartCard::Exception::operator=(class iop::CSmartCard::Exception const & __ptr64) __ptr64
??4Exception@CSmartCard@iop@@QEAAAEAV012@AEBV012@@Z
; public: class scu::Exception & __ptr64 __cdecl scu::Exception::operator=(class scu::Exception const & __ptr64) __ptr64
??4Exception@scu@@QEAAAEAV01@AEBV01@@Z
; public: class iop::FilePath & __ptr64 __cdecl iop::FilePath::operator=(class iop::FilePath const & __ptr64) __ptr64
??4FilePath@iop@@QEAAAEAV01@AEBV01@@Z
; public: class iop::FilePathComponent & __ptr64 __cdecl iop::FilePathComponent::operator=(class iop::FilePathComponent const & __ptr64) __ptr64
??4FilePathComponent@iop@@QEAAAEAV01@AEBV01@@Z
; public: class scu::OsException & __ptr64 __cdecl scu::OsException::operator=(class scu::OsException const & __ptr64) __ptr64
??4OsException@scu@@QEAAAEAV01@AEBV01@@Z
; bool __cdecl iop::operator==(class iop::CMarker const & __ptr64,class iop::CMarker const & __ptr64)
??8iop@@YA_NAEBVCMarker@0@0@Z
; bool __cdecl iop::operator!=(class iop::CMarker const & __ptr64,class iop::CMarker const & __ptr64)
??9iop@@YA_NAEBVCMarker@0@0@Z
; public: char & __ptr64 __cdecl scu::SecureArray<char>::operator[](unsigned __int64) __ptr64
??A?$SecureArray@D@scu@@QEAAAEAD_K@Z
; public: char const & __ptr64 __cdecl scu::SecureArray<char>::operator[](unsigned __int64)const  __ptr64
??A?$SecureArray@D@scu@@QEBAAEBD_K@Z
; public: unsigned char & __ptr64 __cdecl scu::SecureArray<unsigned char>::operator[](unsigned __int64) __ptr64
??A?$SecureArray@E@scu@@QEAAAEAE_K@Z
; public: unsigned char const & __ptr64 __cdecl scu::SecureArray<unsigned char>::operator[](unsigned __int64)const  __ptr64
??A?$SecureArray@E@scu@@QEBAAEBE_K@Z
; public: struct iop::EventInfo * __ptr64 & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::operator[](unsigned __int64) __ptr64
??A?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAAEAPEAUEventInfo@iop@@_K@Z
; public: struct iop::EventInfo * __ptr64 const & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::operator[](unsigned __int64)const  __ptr64
??A?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBAAEBQEAUEventInfo@iop@@_K@Z
; public: class iop::FilePathComponent & __ptr64 __cdecl iop::FilePath::operator[](unsigned int) __ptr64
??AFilePath@iop@@QEAAAEAVFilePathComponent@1@I@Z
; public: class iop::CSharedMarker * __ptr64 __cdecl std::auto_ptr<class iop::CSharedMarker>::operator->(void)const  __ptr64
??C?$auto_ptr@VCSharedMarker@iop@@@std@@QEBAPEAVCSharedMarker@iop@@XZ
; public: class iop::RMHangProcDeathSynchObjects * __ptr64 __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::operator->(void)const  __ptr64
??C?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEBAPEAVRMHangProcDeathSynchObjects@iop@@XZ
; public: char & __ptr64 __cdecl scu::SecureArray<char>::operator*(void) __ptr64
??D?$SecureArray@D@scu@@QEAAAEADXZ
; public: char const & __ptr64 __cdecl scu::SecureArray<char>::operator*(void)const  __ptr64
??D?$SecureArray@D@scu@@QEBAAEBDXZ
; public: unsigned char & __ptr64 __cdecl scu::SecureArray<unsigned char>::operator*(void) __ptr64
??D?$SecureArray@E@scu@@QEAAAEAEXZ
; public: unsigned char const & __ptr64 __cdecl scu::SecureArray<unsigned char>::operator*(void)const  __ptr64
??D?$SecureArray@E@scu@@QEBAAEBEXZ
; public: class iop::CSharedMarker & __ptr64 __cdecl std::auto_ptr<class iop::CSharedMarker>::operator*(void)const  __ptr64
??D?$auto_ptr@VCSharedMarker@iop@@@std@@QEBAAEAVCSharedMarker@iop@@XZ
; public: class iop::RMHangProcDeathSynchObjects & __ptr64 __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::operator*(void)const  __ptr64
??D?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEBAAEAVRMHangProcDeathSynchObjects@iop@@XZ
; public: class iop::FilePath const & __ptr64 __cdecl iop::FilePath::operator+=(class iop::FilePathComponent) __ptr64
??YFilePath@iop@@QEAAAEBV01@VFilePathComponent@1@@Z
; const  scu::ExcTemplate<2,unsigned long>::`vftable'
??_7?$ExcTemplate@$01K@scu@@6B@
; const  iop::CAccessCard::`vftable'
??_7CAccessCard@iop@@6B@
; const  iop::CCryptoCard::`vftable'
??_7CCryptoCard@iop@@6B@
; const  iop::CIOPLock::`vftable'
??_7CIOPLock@iop@@6B@
; const  iop::CMarker::`vftable'
??_7CMarker@iop@@6B@
; const  iop::CPrivateKeyBlob::`vftable'
??_7CPrivateKeyBlob@iop@@6B@
; const  iop::CPublicKeyBlob::`vftable'
??_7CPublicKeyBlob@iop@@6B@
; const  iop::CSmartCard::`vftable'
??_7CSmartCard@iop@@6B@
; const  iop::CSmartCard::Exception::`vftable'
??_7Exception@CSmartCard@iop@@6B@
; const  scu::Exception::`vftable'
??_7Exception@scu@@6B@
; const  iop::FilePath::`vftable'
??_7FilePath@iop@@6B@
; const  iop::FilePathComponent::`vftable'
??_7FilePathComponent@iop@@6B@
; const  scu::OsException::`vftable'
??_7OsException@scu@@6B@
; public: void __cdecl std::auto_ptr<class iop::CSharedMarker>::`default constructor closure'(void) __ptr64
??_F?$auto_ptr@VCSharedMarker@iop@@@std@@QEAAXXZ
; public: void __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::`default constructor closure'(void) __ptr64
??_F?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEAAXXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::`default constructor closure'(void) __ptr64
??_F?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::`default constructor closure'(void) __ptr64
??_F?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXXZ
; protected: void __cdecl iop::CCryptoCard::AccessToCryptoACL(bool * __ptr64,struct iop::CryptoACL * __ptr64) __ptr64
?AccessToCryptoACL@CCryptoCard@iop@@IEAAXPEA_NPEAUCryptoACL@2@@Z
; public: virtual void __cdecl iop::CAccessCard::BlockApplet(void) __ptr64
?BlockApplet@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::BlockApplet(void) __ptr64
?BlockApplet@CSmartCard@iop@@UEAAXXZ
; public: unsigned long __cdecl scu::ExcTemplate<2,unsigned long>::Cause(void)const  __ptr64
?Cause@?$ExcTemplate@$01K@scu@@QEBAKXZ
; public: enum iop::CSmartCard::CauseCode  __cdecl iop::CSmartCard::Exception::Cause(void)const  __ptr64
?Cause@Exception@CSmartCard@iop@@QEBA?AW4CauseCode@23@XZ
; public: virtual void __cdecl iop::CAccessCard::ChangeACL(unsigned char const * __ptr64) __ptr64
?ChangeACL@CAccessCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::ChangeACL(unsigned char const * __ptr64) __ptr64
?ChangeACL@CCryptoCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::ChangeACL(unsigned char const * __ptr64) __ptr64
?ChangeACL@CSmartCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CAccessCard::ChangeCHV(unsigned char,unsigned char const * __ptr64,unsigned char const * __ptr64) __ptr64
?ChangeCHV@CAccessCard@iop@@UEAAXEPEBE0@Z
; public: virtual void __cdecl iop::CAccessCard::ChangeCHV(unsigned char,unsigned char const * __ptr64) __ptr64
?ChangeCHV@CAccessCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::ChangeCHV(unsigned char,unsigned char const * __ptr64,unsigned char const * __ptr64) __ptr64
?ChangeCHV@CCryptoCard@iop@@UEAAXEPEBE0@Z
; public: virtual void __cdecl iop::CCryptoCard::ChangeCHV(unsigned char,unsigned char const * __ptr64) __ptr64
?ChangeCHV@CCryptoCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::ChangeCHV(unsigned char,unsigned char const * __ptr64,unsigned char const * __ptr64) __ptr64
?ChangeCHV@CSmartCard@iop@@UEAAXEPEBE0@Z
; public: virtual void __cdecl iop::CSmartCard::ChangeCHV(unsigned char,unsigned char const * __ptr64) __ptr64
?ChangeCHV@CSmartCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CAccessCard::ChangeTransportKey(unsigned char const * __ptr64) __ptr64
?ChangeTransportKey@CAccessCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::ChangeTransportKey(unsigned char const * __ptr64) __ptr64
?ChangeTransportKey@CCryptoCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::ChangeTransportKey(unsigned char const * __ptr64) __ptr64
?ChangeTransportKey@CSmartCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CAccessCard::ChangeUnblockKey(unsigned char,unsigned char const * __ptr64) __ptr64
?ChangeUnblockKey@CAccessCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::ChangeUnblockKey(unsigned char,unsigned char const * __ptr64) __ptr64
?ChangeUnblockKey@CCryptoCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::ChangeUnblockKey(unsigned char,unsigned char const * __ptr64) __ptr64
?ChangeUnblockKey@CSmartCard@iop@@UEAAXEPEBE@Z
; public: class iop::FilePathComponent  __cdecl iop::FilePath::ChopTail(void) __ptr64
?ChopTail@FilePath@iop@@QEAA?AVFilePathComponent@2@XZ
; public: unsigned char __cdecl iop::CSmartCard::Exception::Class(void)const  __ptr64
?Class@Exception@CSmartCard@iop@@QEBAEXZ
; public: void __cdecl iop::FilePath::Clear(void) __ptr64
?Clear@FilePath@iop@@QEAAXXZ
; void __cdecl iop::Clear(class iop::CPrivateKeyBlob & __ptr64)
?Clear@iop@@YAXAEAVCPrivateKeyBlob@1@@Z
; void __cdecl iop::Clear(class iop::CPublicKeyBlob & __ptr64)
?Clear@iop@@YAXAEAVCPublicKeyBlob@1@@Z
; private: void __cdecl scu::SecureArray<char>::ClearDataStore(void) __ptr64
?ClearDataStore@?$SecureArray@D@scu@@AEAAXXZ
; private: void __cdecl scu::SecureArray<unsigned char>::ClearDataStore(void) __ptr64
?ClearDataStore@?$SecureArray@E@scu@@AEAAXXZ
; public: virtual class scu::Exception * __ptr64 __cdecl scu::ExcTemplate<2,unsigned long>::Clone(void)const  __ptr64
?Clone@?$ExcTemplate@$01K@scu@@UEBAPEAVException@2@XZ
; public: virtual class scu::Exception * __ptr64 __cdecl iop::CSmartCard::Exception::Clone(void)const  __ptr64
?Clone@Exception@CSmartCard@iop@@UEBAPEAV1scu@@XZ
; public: virtual class scu::Exception * __ptr64 __cdecl scu::OsException::Clone(void)const  __ptr64
?Clone@OsException@scu@@UEBAPEAVException@2@XZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >  __cdecl iop::FilePath::Components(void) __ptr64
?Components@FilePath@iop@@QEAA?AV?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@XZ
; public: class iop::CSmartCard * __ptr64 __cdecl iop::CIOP::Connect(char const * __ptr64,bool) __ptr64
?Connect@CIOP@iop@@QEAAPEAVCSmartCard@2@PEBD_N@Z
; private: class iop::CSmartCard * __ptr64 __cdecl iop::CIOP::CreateCard(unsigned char const * __ptr64,unsigned long,unsigned __int64,char const * __ptr64,unsigned long) __ptr64
?CreateCard@CIOP@iop@@AEAAPEAVCSmartCard@2@PEBEK_KPEBDK@Z
; public: virtual void __cdecl iop::CAccessCard::CreateFileA(struct iop::FILE_HEADER const * __ptr64) __ptr64
?CreateFileA@CAccessCard@iop@@UEAAXPEBUFILE_HEADER@2@@Z
; public: virtual void __cdecl iop::CCryptoCard::CreateFileA(struct iop::FILE_HEADER const * __ptr64) __ptr64
?CreateFileA@CCryptoCard@iop@@UEAAXPEBUFILE_HEADER@2@@Z
; public: virtual void __cdecl iop::CSmartCard::CreateFileA(struct iop::FILE_HEADER const * __ptr64) __ptr64
?CreateFileA@CSmartCard@iop@@UEAAXPEBUFILE_HEADER@2@@Z
; public: struct _RTL_CRITICAL_SECTION * __ptr64 __cdecl iop::CIOPLock::CriticalSection(void) __ptr64
?CriticalSection@CIOPLock@iop@@QEAAPEAU_RTL_CRITICAL_SECTION@@XZ
; protected: void __cdecl iop::CCryptoCard::CryptoToAccessACL(unsigned char * __ptr64,unsigned char,unsigned char,unsigned char) __ptr64
?CryptoToAccessACL@CCryptoCard@iop@@IEAAXPEAEEEE@Z
; public: void __cdecl iop::CIOPLock::DecrementRefCount(void) __ptr64
?DecrementRefCount@CIOPLock@iop@@QEAAXXZ
; protected: virtual void __cdecl iop::CAccessCard::DefaultDispatchError(unsigned char,unsigned char,unsigned short)const  __ptr64
?DefaultDispatchError@CAccessCard@iop@@MEBAXEEG@Z
; protected: virtual void __cdecl iop::CCryptoCard::DefaultDispatchError(unsigned char,unsigned char,unsigned short)const  __ptr64
?DefaultDispatchError@CCryptoCard@iop@@MEBAXEEG@Z
; protected: virtual void __cdecl iop::CSmartCard::DefaultDispatchError(unsigned char,unsigned char,unsigned short)const  __ptr64
?DefaultDispatchError@CSmartCard@iop@@MEBAXEEG@Z
; public: virtual void __cdecl iop::CAccessCard::DeleteApplet(void) __ptr64
?DeleteApplet@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::DeleteApplet(void) __ptr64
?DeleteApplet@CSmartCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CAccessCard::DeleteFileA(unsigned short) __ptr64
?DeleteFileA@CAccessCard@iop@@UEAAXG@Z
; public: virtual void __cdecl iop::CCryptoCard::DeleteFileA(unsigned short) __ptr64
?DeleteFileA@CCryptoCard@iop@@UEAAXG@Z
; public: virtual void __cdecl iop::CSmartCard::DeleteFileA(unsigned short) __ptr64
?DeleteFileA@CSmartCard@iop@@UEAAXG@Z
; public: virtual char const * __ptr64 __cdecl scu::ExcTemplate<2,unsigned long>::Description(void)const  __ptr64
?Description@?$ExcTemplate@$01K@scu@@UEBAPEBDXZ
; public: virtual char const * __ptr64 __cdecl iop::CSmartCard::Exception::Description(void)const  __ptr64
?Description@Exception@CSmartCard@iop@@UEBAPEBDXZ
; public: virtual char const * __ptr64 __cdecl scu::Exception::Description(void)const  __ptr64
?Description@Exception@scu@@UEBAPEBDXZ
; public: virtual char const * __ptr64 __cdecl scu::OsException::Description(void)const  __ptr64
?Description@OsException@scu@@UEBAPEBDXZ
; public: virtual void __cdecl iop::CAccessCard::Directory(unsigned char,struct iop::FILE_HEADER * __ptr64) __ptr64
?Directory@CAccessCard@iop@@UEAAXEPEAUFILE_HEADER@2@@Z
; public: virtual void __cdecl iop::CCryptoCard::Directory(unsigned char,struct iop::FILE_HEADER * __ptr64) __ptr64
?Directory@CCryptoCard@iop@@UEAAXEPEAUFILE_HEADER@2@@Z
; public: virtual void __cdecl iop::CSmartCard::Directory(unsigned char,struct iop::FILE_HEADER * __ptr64) __ptr64
?Directory@CSmartCard@iop@@UEAAXEPEAUFILE_HEADER@2@@Z
; public: void __cdecl iop::CSmartCard::Dirty(bool) __ptr64
?Dirty@CSmartCard@iop@@QEAAX_N@Z
; public: bool __cdecl iop::CSmartCard::Dirty(void)const  __ptr64
?Dirty@CSmartCard@iop@@QEBA_NXZ
; protected: virtual void __cdecl iop::CAccessCard::DispatchError(unsigned char,unsigned char,unsigned short)const  __ptr64
?DispatchError@CAccessCard@iop@@MEBAXEEG@Z
; protected: virtual void __cdecl iop::CCryptoCard::DispatchError(unsigned char,unsigned char,unsigned short)const  __ptr64
?DispatchError@CCryptoCard@iop@@MEBAXEEG@Z
; protected: virtual void __cdecl iop::CSmartCard::DispatchError(unsigned char,unsigned char,unsigned short)const  __ptr64
?DispatchError@CSmartCard@iop@@MEBAXEEG@Z
; protected: virtual void __cdecl iop::CAccessCard::DoReadBlock(unsigned short,unsigned char * __ptr64,unsigned char) __ptr64
?DoReadBlock@CAccessCard@iop@@MEAAXGPEAEE@Z
; protected: virtual void __cdecl iop::CCryptoCard::DoReadBlock(unsigned short,unsigned char * __ptr64,unsigned char) __ptr64
?DoReadBlock@CCryptoCard@iop@@MEAAXGPEAEE@Z
; protected: virtual void __cdecl iop::CAccessCard::DoWriteBlock(unsigned short,unsigned char const * __ptr64,unsigned char) __ptr64
?DoWriteBlock@CAccessCard@iop@@MEAAXGPEBEE@Z
; protected: virtual void __cdecl iop::CCryptoCard::DoWriteBlock(unsigned short,unsigned char const * __ptr64,unsigned char) __ptr64
?DoWriteBlock@CCryptoCard@iop@@MEAAXGPEBEE@Z
; public: virtual unsigned long __cdecl scu::ExcTemplate<2,unsigned long>::Error(void)const  __ptr64
?Error@?$ExcTemplate@$01K@scu@@UEBAKXZ
; public: virtual unsigned long __cdecl iop::CSmartCard::Exception::Error(void)const  __ptr64
?Error@Exception@CSmartCard@iop@@UEBAKXZ
; public: virtual void __cdecl iop::CAccessCard::ExecuteInstall(unsigned char const * __ptr64,unsigned char) __ptr64
?ExecuteInstall@CAccessCard@iop@@UEAAXPEBEE@Z
; public: virtual void __cdecl iop::CSmartCard::ExecuteInstall(unsigned char const * __ptr64,unsigned char) __ptr64
?ExecuteInstall@CSmartCard@iop@@UEAAXPEBEE@Z
; public: virtual void __cdecl iop::CAccessCard::ExecuteMain(void) __ptr64
?ExecuteMain@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::ExecuteMain(void) __ptr64
?ExecuteMain@CSmartCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CAccessCard::ExternalAuth(enum iop::KeyType,unsigned char,unsigned char,unsigned char const * __ptr64) __ptr64
?ExternalAuth@CAccessCard@iop@@UEAAXW4KeyType@2@EEPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::ExternalAuth(enum iop::KeyType,unsigned char,unsigned char,unsigned char const * __ptr64) __ptr64
?ExternalAuth@CCryptoCard@iop@@UEAAXW4KeyType@2@EEPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::ExternalAuth(enum iop::KeyType,unsigned char,unsigned char,unsigned char const * __ptr64) __ptr64
?ExternalAuth@CSmartCard@iop@@UEAAXW4KeyType@2@EEPEBE@Z
; public: enum scu::Exception::FacilityCode  __cdecl scu::Exception::Facility(void)const  __ptr64
?Facility@Exception@scu@@QEBA?AW4FacilityCode@12@XZ
; public: void __cdecl iop::CSmartCard::FireEvents(int,unsigned long,unsigned char * __ptr64) __ptr64
?FireEvents@CSmartCard@iop@@QEAAXHKPEAE@Z
; protected: unsigned char __cdecl iop::CSmartCard::FormatPath(char * __ptr64,char const * __ptr64) __ptr64
?FormatPath@CSmartCard@iop@@IEAAEPEADPEBD@Z
; public: virtual class iop::CPublicKeyBlob  __cdecl iop::CCryptoCard::GenerateKeyPair(unsigned char const * __ptr64,unsigned short,unsigned char,enum iop::KeyType) __ptr64
?GenerateKeyPair@CCryptoCard@iop@@UEAA?AVCPublicKeyBlob@2@PEBEGEW4KeyType@2@@Z
; public: virtual class iop::CPublicKeyBlob  __cdecl iop::CSmartCard::GenerateKeyPair(unsigned char const * __ptr64,unsigned short,unsigned char,enum iop::KeyType) __ptr64
?GenerateKeyPair@CSmartCard@iop@@UEAA?AVCPublicKeyBlob@2@PEBEGEW4KeyType@2@@Z
; public: virtual void __cdecl iop::CCryptoCard::GetACL(unsigned char * __ptr64) __ptr64
?GetACL@CCryptoCard@iop@@UEAAXPEAE@Z
; public: virtual void __cdecl iop::CSmartCard::GetACL(unsigned char * __ptr64) __ptr64
?GetACL@CSmartCard@iop@@UEAAXPEAE@Z
; public: virtual void __cdecl iop::CAccessCard::GetChallenge(unsigned long,unsigned char * __ptr64) __ptr64
?GetChallenge@CAccessCard@iop@@UEAAXKPEAE@Z
; public: virtual void __cdecl iop::CCryptoCard::GetChallenge(unsigned long,unsigned char * __ptr64) __ptr64
?GetChallenge@CCryptoCard@iop@@UEAAXKPEAE@Z
; public: virtual void __cdecl iop::CSmartCard::GetChallenge(unsigned long,unsigned char * __ptr64) __ptr64
?GetChallenge@CSmartCard@iop@@UEAAXKPEAE@Z
; public: void __cdecl iop::CSmartCard::GetCurrentDir(char * __ptr64) __ptr64
?GetCurrentDir@CSmartCard@iop@@QEAAXPEAD@Z
; public: void __cdecl iop::CSmartCard::GetCurrentFile(char * __ptr64) __ptr64
?GetCurrentFile@CSmartCard@iop@@QEAAXPEAD@Z
; public: virtual void __cdecl iop::CSmartCard::GetResponse(unsigned char,unsigned char,unsigned char * __ptr64) __ptr64
?GetResponse@CSmartCard@iop@@UEAAXEEPEAE@Z
; public: virtual void __cdecl iop::CAccessCard::GetSerial(unsigned char * __ptr64,unsigned __int64 & __ptr64) __ptr64
?GetSerial@CAccessCard@iop@@UEAAXPEAEAEA_K@Z
; public: virtual void __cdecl iop::CCryptoCard::GetSerial(unsigned char * __ptr64,unsigned __int64 & __ptr64) __ptr64
?GetSerial@CCryptoCard@iop@@UEAAXPEAEAEA_K@Z
; public: virtual void __cdecl iop::CSmartCard::GetSerial(unsigned char * __ptr64,unsigned __int64 & __ptr64) __ptr64
?GetSerial@CSmartCard@iop@@UEAAXPEAEAEA_K@Z
; public: unsigned short __cdecl iop::FilePathComponent::GetShortID(void) __ptr64
?GetShortID@FilePathComponent@iop@@QEAAGXZ
; public: void __cdecl iop::CSmartCard::GetState(unsigned long & __ptr64,unsigned long & __ptr64) __ptr64
?GetState@CSmartCard@iop@@QEAAXAEAK0@Z
; public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >  __cdecl iop::FilePathComponent::GetStringID(void) __ptr64
?GetStringID@FilePathComponent@iop@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
; public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >  __cdecl iop::FilePath::GetStringPath(void) __ptr64
?GetStringPath@FilePath@iop@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
; public: class iop::FilePath  __cdecl iop::FilePath::GreatestCommonPrefix(class iop::FilePath & __ptr64) __ptr64
?GreatestCommonPrefix@FilePath@iop@@QEAA?AV12@AEAV12@@Z
; public: bool __cdecl iop::CSmartCard::HasProperty(unsigned short) __ptr64
?HasProperty@CSmartCard@iop@@QEAA_NG@Z
; public: class iop::FilePathComponent  __cdecl iop::FilePath::Head(void) __ptr64
?Head@FilePath@iop@@QEAA?AVFilePathComponent@2@XZ
; public: void __cdecl iop::CIOPLock::IncrementRefCount(void) __ptr64
?IncrementRefCount@CIOPLock@iop@@QEAAXXZ
; public: void __cdecl iop::CIOPLock::Init(class iop::CSmartCard * __ptr64) __ptr64
?Init@CIOPLock@iop@@QEAAXPEAVCSmartCard@2@@Z
; public: static void __cdecl iop::CIOP::InitIOPSecurityAttrs(class CSecurityAttributes * __ptr64)
?InitIOPSecurityAttrs@CIOP@iop@@SAXPEAVCSecurityAttributes@@@Z
; public: unsigned char __cdecl iop::CSmartCard::Exception::Ins(void)const  __ptr64
?Ins@Exception@CSmartCard@iop@@QEBAEXZ
; public: virtual void __cdecl iop::CAccessCard::InternalAuth(enum iop::KeyType,unsigned char,unsigned char,unsigned char const * __ptr64,unsigned char * __ptr64) __ptr64
?InternalAuth@CAccessCard@iop@@UEAAXW4KeyType@2@EEPEBEPEAE@Z
; public: virtual void __cdecl iop::CCryptoCard::InternalAuth(enum iop::KeyType,unsigned char,unsigned char,unsigned char const * __ptr64,unsigned char * __ptr64) __ptr64
?InternalAuth@CCryptoCard@iop@@UEAAXW4KeyType@2@EEPEBEPEAE@Z
; public: virtual void __cdecl iop::CSmartCard::InternalAuth(enum iop::KeyType,unsigned char,unsigned char,unsigned char const * __ptr64,unsigned char * __ptr64) __ptr64
?InternalAuth@CSmartCard@iop@@UEAAXW4KeyType@2@EEPEBEPEAE@Z
; public: bool __cdecl iop::FilePath::IsEmpty(void) __ptr64
?IsEmpty@FilePath@iop@@QEAA_NXZ
; public: static void __cdecl iop::CIOP::ListKnownCards(char * __ptr64,int & __ptr64)
?ListKnownCards@CIOP@iop@@SAXPEADAEAH@Z
; public: void __cdecl iop::CIOP::ListReaders(char * __ptr64,int & __ptr64) __ptr64
?ListReaders@CIOP@iop@@QEAAXPEADAEAH@Z
; public: class iop::CIOPLock * __ptr64 __cdecl iop::CSmartCard::Lock(void) __ptr64
?Lock@CSmartCard@iop@@QEAAPEAVCIOPLock@2@XZ
; public: virtual void __cdecl iop::CAccessCard::LogoutAll(void) __ptr64
?LogoutAll@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CCryptoCard::LogoutAll(void) __ptr64
?LogoutAll@CCryptoCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::LogoutAll(void) __ptr64
?LogoutAll@CSmartCard@iop@@UEAAXXZ
; public: void * __ptr64 __cdecl iop::CIOPLock::MutexHandle(void) __ptr64
?MutexHandle@CIOPLock@iop@@QEAAPEAXXZ
; public: unsigned char __cdecl iop::FilePath::NumComponents(void) __ptr64
?NumComponents@FilePath@iop@@QEAAEXZ
; private: void __cdecl iop::CSmartCard::ProcessReturnStatus(unsigned char,unsigned char,unsigned short) __ptr64
?ProcessReturnStatus@CSmartCard@iop@@AEAAXEEG@Z
; public: virtual void __cdecl scu::ExcTemplate<2,unsigned long>::Raise(void)const  __ptr64
?Raise@?$ExcTemplate@$01K@scu@@UEBAXXZ
; public: virtual void __cdecl iop::CSmartCard::Exception::Raise(void)const  __ptr64
?Raise@Exception@CSmartCard@iop@@UEBAXXZ
; public: virtual void __cdecl scu::OsException::Raise(void)const  __ptr64
?Raise@OsException@scu@@UEBAXXZ
; public: void __cdecl iop::CSmartCard::ReConnect(void) __ptr64
?ReConnect@CSmartCard@iop@@QEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::ReadBinary(unsigned short,unsigned short,unsigned char * __ptr64) __ptr64
?ReadBinary@CSmartCard@iop@@UEAAXGGPEAE@Z
; public: virtual void __cdecl iop::CAccessCard::ReadPublicKey(class iop::CPublicKeyBlob * __ptr64,unsigned char) __ptr64
?ReadPublicKey@CAccessCard@iop@@UEAAXPEAVCPublicKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CCryptoCard::ReadPublicKey(class iop::CPublicKeyBlob * __ptr64,unsigned char) __ptr64
?ReadPublicKey@CCryptoCard@iop@@UEAAXPEAVCPublicKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CSmartCard::ReadPublicKey(class iop::CPublicKeyBlob * __ptr64,unsigned char) __ptr64
?ReadPublicKey@CSmartCard@iop@@UEAAXPEAVCPublicKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CAccessCard::ReadRecord(unsigned char,unsigned char,unsigned char,unsigned char * __ptr64) __ptr64
?ReadRecord@CAccessCard@iop@@UEAAXEEEPEAE@Z
; public: virtual void __cdecl iop::CSmartCard::ReadRecord(unsigned char,unsigned char,unsigned char,unsigned char * __ptr64) __ptr64
?ReadRecord@CSmartCard@iop@@UEAAXEEEPEAE@Z
; public: long __cdecl iop::CIOPLock::RefCount(void) __ptr64
?RefCount@CIOPLock@iop@@QEAAJXZ
; public: static void __cdecl iop::CIOP::RegisterCard(char const * __ptr64,unsigned char const * __ptr64,unsigned char,unsigned char const * __ptr64,unsigned char,unsigned char const * __ptr64,enum iop::cardType)
?RegisterCard@CIOP@iop@@SAXPEBDPEBEE1E1W4cardType@2@@Z
; public: static void __cdecl iop::CIOP::RegisterDefaultCards(void)
?RegisterDefaultCards@CIOP@iop@@SAXXZ
; public: unsigned long __cdecl iop::CSmartCard::RegisterEvent(void (__cdecl*)(void * __ptr64,int,unsigned long,unsigned char * __ptr64),void * __ptr64) __ptr64
?RegisterEvent@CSmartCard@iop@@QEAAKP6AXPEAXHKPEAE@Z0@Z
; protected: void __cdecl iop::CSmartCard::RequireSelect(void) __ptr64
?RequireSelect@CSmartCard@iop@@IEAAXXZ
; public: void __cdecl iop::CSmartCard::ResetCard(void) __ptr64
?ResetCard@CSmartCard@iop@@QEAAXXZ
; public: virtual void __cdecl iop::CAccessCard::ResetInstance(void) __ptr64
?ResetInstance@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::ResetInstance(void) __ptr64
?ResetInstance@CSmartCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CAccessCard::ResetProgram(void) __ptr64
?ResetProgram@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::ResetProgram(void) __ptr64
?ResetProgram@CSmartCard@iop@@UEAAXXZ
; public: void __cdecl iop::CSmartCard::ResetSelect(void) __ptr64
?ResetSelect@CSmartCard@iop@@QEAAXXZ
; protected: void __cdecl iop::CSmartCard::ResponseLengthAvailable(unsigned char) __ptr64
?ResponseLengthAvailable@CSmartCard@iop@@IEAAXE@Z
; protected: unsigned char __cdecl iop::CSmartCard::ResponseLengthAvailable(void)const  __ptr64
?ResponseLengthAvailable@CSmartCard@iop@@IEBAEXZ
; public: static class iop::FilePath  __cdecl iop::FilePath::Root(void)
?Root@FilePath@iop@@SA?AV12@XZ
; protected: virtual void __cdecl iop::CAccessCard::Select(unsigned short) __ptr64
?Select@CAccessCard@iop@@MEAAXG@Z
; public: virtual void __cdecl iop::CAccessCard::Select(char const * __ptr64,struct iop::FILE_HEADER * __ptr64,bool) __ptr64
?Select@CAccessCard@iop@@UEAAXPEBDPEAUFILE_HEADER@2@_N@Z
; protected: virtual void __cdecl iop::CCryptoCard::Select(unsigned short) __ptr64
?Select@CCryptoCard@iop@@MEAAXG@Z
; public: virtual void __cdecl iop::CCryptoCard::Select(char const * __ptr64,struct iop::FILE_HEADER * __ptr64,bool) __ptr64
?Select@CCryptoCard@iop@@UEAAXPEBDPEAUFILE_HEADER@2@_N@Z
; public: virtual void __cdecl iop::CSmartCard::Select(char const * __ptr64,struct iop::FILE_HEADER * __ptr64,bool) __ptr64
?Select@CSmartCard@iop@@UEAAXPEBDPEAUFILE_HEADER@2@_N@Z
; public: virtual void __cdecl iop::CAccessCard::SelectCardlet(unsigned char const * __ptr64,unsigned char) __ptr64
?SelectCardlet@CAccessCard@iop@@UEAAXPEBEE@Z
; public: virtual void __cdecl iop::CSmartCard::SelectCardlet(unsigned char const * __ptr64,unsigned char) __ptr64
?SelectCardlet@CSmartCard@iop@@UEAAXPEBEE@Z
; public: virtual void __cdecl iop::CAccessCard::SelectLoader(void) __ptr64
?SelectLoader@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::SelectLoader(void) __ptr64
?SelectLoader@CSmartCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CAccessCard::SelectParent(void) __ptr64
?SelectParent@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CCryptoCard::SelectParent(void) __ptr64
?SelectParent@CCryptoCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::SelectParent(void) __ptr64
?SelectParent@CSmartCard@iop@@UEAAXXZ
; public: void __cdecl iop::CSmartCard::SendCardAPDU(unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char const * __ptr64,unsigned char,unsigned char * __ptr64) __ptr64
?SendCardAPDU@CSmartCard@iop@@QEAAXEEEEEPEBEEPEAE@Z
; public: virtual void __cdecl iop::CAccessCard::SetCurrentAsLoader(void) __ptr64
?SetCurrentAsLoader@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::SetCurrentAsLoader(void) __ptr64
?SetCurrentAsLoader@CSmartCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CAccessCard::SetDefaultAsLoader(void) __ptr64
?SetDefaultAsLoader@CAccessCard@iop@@UEAAXXZ
; public: virtual void __cdecl iop::CSmartCard::SetDefaultAsLoader(void) __ptr64
?SetDefaultAsLoader@CSmartCard@iop@@UEAAXXZ
; private: void __cdecl scu::SecureArray<char>::SetupFromBuffer(char const * __ptr64,unsigned __int64) __ptr64
?SetupFromBuffer@?$SecureArray@D@scu@@AEAAXPEBD_K@Z
; private: void __cdecl scu::SecureArray<unsigned char>::SetupFromBuffer(unsigned char const * __ptr64,unsigned __int64) __ptr64
?SetupFromBuffer@?$SecureArray@E@scu@@AEAAXPEBE_K@Z
; public: class iop::CSmartCard * __ptr64 __cdecl iop::CIOPLock::SmartCard(void) __ptr64
?SmartCard@CIOPLock@iop@@QEAAPEAVCSmartCard@2@XZ
; public: unsigned short __cdecl iop::CSmartCard::Exception::Status(void)const  __ptr64
?Status@Exception@CSmartCard@iop@@QEBAGXZ
; protected: virtual bool __cdecl iop::CAccessCard::SupportLogout(void) __ptr64
?SupportLogout@CAccessCard@iop@@MEAA_NXZ
; protected: virtual bool __cdecl iop::CCryptoCard::SupportLogout(void) __ptr64
?SupportLogout@CCryptoCard@iop@@MEAA_NXZ
; public: class iop::FilePathComponent  __cdecl iop::FilePath::Tail(void) __ptr64
?Tail@FilePath@iop@@QEAA?AVFilePathComponent@2@XZ
; public: virtual void __cdecl iop::CAccessCard::UnblockCHV(unsigned char,unsigned char const * __ptr64,unsigned char const * __ptr64) __ptr64
?UnblockCHV@CAccessCard@iop@@UEAAXEPEBE0@Z
; public: virtual void __cdecl iop::CCryptoCard::UnblockCHV(unsigned char,unsigned char const * __ptr64,unsigned char const * __ptr64) __ptr64
?UnblockCHV@CCryptoCard@iop@@UEAAXEPEBE0@Z
; public: virtual void __cdecl iop::CSmartCard::UnblockCHV(unsigned char,unsigned char const * __ptr64,unsigned char const * __ptr64) __ptr64
?UnblockCHV@CSmartCard@iop@@UEAAXEPEBE0@Z
; public: bool __cdecl iop::CSmartCard::UnregisterEvent(unsigned long) __ptr64
?UnregisterEvent@CSmartCard@iop@@QEAA_NK@Z
; public: virtual void __cdecl iop::CAccessCard::UpdateRecord(unsigned char,unsigned char,unsigned char,unsigned char * __ptr64) __ptr64
?UpdateRecord@CAccessCard@iop@@UEAAXEEEPEAE@Z
; public: virtual void __cdecl iop::CSmartCard::UpdateRecord(unsigned char,unsigned char,unsigned char,unsigned char * __ptr64) __ptr64
?UpdateRecord@CSmartCard@iop@@UEAAXEEEPEAE@Z
; private: bool __cdecl iop::CAccessCard::ValidClassByte(unsigned char) __ptr64
?ValidClassByte@CAccessCard@iop@@AEAA_NE@Z
; public: virtual void __cdecl iop::CAccessCard::ValidateProgram(unsigned char const * __ptr64,unsigned char) __ptr64
?ValidateProgram@CAccessCard@iop@@UEAAXPEBEE@Z
; public: virtual void __cdecl iop::CSmartCard::ValidateProgram(unsigned char const * __ptr64,unsigned char) __ptr64
?ValidateProgram@CSmartCard@iop@@UEAAXPEBEE@Z
; public: virtual void __cdecl iop::CAccessCard::VerifyCHV(unsigned char,unsigned char const * __ptr64) __ptr64
?VerifyCHV@CAccessCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::VerifyCHV(unsigned char,unsigned char const * __ptr64) __ptr64
?VerifyCHV@CCryptoCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::VerifyCHV(unsigned char,unsigned char const * __ptr64) __ptr64
?VerifyCHV@CSmartCard@iop@@UEAAXEPEBE@Z
; public: virtual void __cdecl iop::CAccessCard::VerifyKey(unsigned char,unsigned char,unsigned char const * __ptr64) __ptr64
?VerifyKey@CAccessCard@iop@@UEAAXEEPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::VerifyKey(unsigned char,unsigned char,unsigned char const * __ptr64) __ptr64
?VerifyKey@CCryptoCard@iop@@UEAAXEEPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::VerifyKey(unsigned char,unsigned char,unsigned char const * __ptr64) __ptr64
?VerifyKey@CSmartCard@iop@@UEAAXEEPEBE@Z
; public: virtual void __cdecl iop::CAccessCard::VerifyTransportKey(unsigned char const * __ptr64) __ptr64
?VerifyTransportKey@CAccessCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CCryptoCard::VerifyTransportKey(unsigned char const * __ptr64) __ptr64
?VerifyTransportKey@CCryptoCard@iop@@UEAAXPEBE@Z
; public: virtual void __cdecl iop::CSmartCard::VerifyTransportKey(unsigned char const * __ptr64) __ptr64
?VerifyTransportKey@CSmartCard@iop@@UEAAXPEBE@Z
; public: static bool __cdecl iop::CIOP::WaitForSCManager(void)
?WaitForSCManager@CIOP@iop@@SA_NXZ
; public: virtual void __cdecl iop::CSmartCard::WriteBinary(unsigned short,unsigned short,unsigned char const * __ptr64) __ptr64
?WriteBinary@CSmartCard@iop@@UEAAXGGPEBE@Z
; private: void __cdecl iop::CSmartCard::WriteBlock(unsigned short,unsigned char const * __ptr64,unsigned char) __ptr64
?WriteBlock@CSmartCard@iop@@AEAAXGPEBEE@Z
; public: virtual void __cdecl iop::CAccessCard::WritePrivateKey(class iop::CPrivateKeyBlob,unsigned char) __ptr64
?WritePrivateKey@CAccessCard@iop@@UEAAXVCPrivateKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CCryptoCard::WritePrivateKey(class iop::CPrivateKeyBlob,unsigned char) __ptr64
?WritePrivateKey@CCryptoCard@iop@@UEAAXVCPrivateKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CSmartCard::WritePrivateKey(class iop::CPrivateKeyBlob,unsigned char) __ptr64
?WritePrivateKey@CSmartCard@iop@@UEAAXVCPrivateKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CAccessCard::WritePublicKey(class iop::CPublicKeyBlob,unsigned char) __ptr64
?WritePublicKey@CAccessCard@iop@@UEAAXVCPublicKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CCryptoCard::WritePublicKey(class iop::CPublicKeyBlob,unsigned char) __ptr64
?WritePublicKey@CCryptoCard@iop@@UEAAXVCPublicKeyBlob@2@E@Z
; public: virtual void __cdecl iop::CSmartCard::WritePublicKey(class iop::CPublicKeyBlob,unsigned char) __ptr64
?WritePublicKey@CSmartCard@iop@@UEAAXVCPublicKeyBlob@2@E@Z
; protected: struct std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Node * __ptr64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Buynode(struct std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Node * __ptr64,struct std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Node * __ptr64) __ptr64
?_Buynode@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@IEAAPEAU_Node@12@PEAU312@0@Z
; protected: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::_Destroy(struct iop::EventInfo * __ptr64 * __ptr64,struct iop::EventInfo * __ptr64 * __ptr64) __ptr64
?_Destroy@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@IEAAXPEAPEAUEventInfo@iop@@0@Z
; public: bool __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::_Eq(class std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> > const & __ptr64)const  __ptr64
?_Eq@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA_NAEBV12@@Z
; protected: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Freenode(struct std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Node * __ptr64) __ptr64
?_Freenode@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@IEAAXPEAU_Node@12@@Z
; public: bool __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::_Lt(class std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> > const & __ptr64)const  __ptr64
?_Lt@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA_NAEBV12@@Z
; protected: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Splice(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator) __ptr64
?_Splice@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@IEAAXViterator@12@AEAV12@00@Z
; protected: struct iop::EventInfo * __ptr64 * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::_Ucopy(struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64 * __ptr64) __ptr64
?_Ucopy@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@IEAAPEAPEAUEventInfo@iop@@PEBQEAU34@0PEAPEAU34@@Z
; protected: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::_Ufill(struct iop::EventInfo * __ptr64 * __ptr64,unsigned __int64,struct iop::EventInfo * __ptr64 const & __ptr64) __ptr64
?_Ufill@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@IEAAXPEAPEAUEventInfo@iop@@_KAEBQEAU34@@Z
; protected: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::_Xran(void)const  __ptr64
?_Xran@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@IEBAXXZ
; protected: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::_Xran(void)const  __ptr64
?_Xran@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@IEBAXXZ
; public: class scu::SecureArray<char> & __ptr64 __cdecl scu::SecureArray<char>::append(char const * __ptr64,unsigned __int64) __ptr64
?append@?$SecureArray@D@scu@@QEAAAEAV12@PEBD_K@Z
; public: class scu::SecureArray<char> & __ptr64 __cdecl scu::SecureArray<char>::append(unsigned __int64,char const & __ptr64) __ptr64
?append@?$SecureArray@D@scu@@QEAAAEAV12@_KAEBD@Z
; public: class scu::SecureArray<unsigned char> & __ptr64 __cdecl scu::SecureArray<unsigned char>::append(unsigned char const * __ptr64,unsigned __int64) __ptr64
?append@?$SecureArray@E@scu@@QEAAAEAV12@PEBE_K@Z
; public: class scu::SecureArray<unsigned char> & __ptr64 __cdecl scu::SecureArray<unsigned char>::append(unsigned __int64,unsigned char const & __ptr64) __ptr64
?append@?$SecureArray@E@scu@@QEAAAEAV12@_KAEBE@Z
; public: class scu::SecureArray<char> & __ptr64 __cdecl scu::SecureArray<char>::append_string(unsigned __int64,char const & __ptr64) __ptr64
?append_string@?$SecureArray@D@scu@@QEAAAEAV12@_KAEBD@Z
; public: class scu::SecureArray<unsigned char> & __ptr64 __cdecl scu::SecureArray<unsigned char>::append_string(unsigned __int64,unsigned char const & __ptr64) __ptr64
?append_string@?$SecureArray@E@scu@@QEAAAEAV12@_KAEBE@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::assign(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator) __ptr64
?assign@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXVconst_iterator@12@0@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::assign(unsigned __int64,class iop::FilePathComponent const & __ptr64) __ptr64
?assign@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAX_KAEBVFilePathComponent@iop@@@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::assign(struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64) __ptr64
?assign@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXPEBQEAUEventInfo@iop@@0@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::assign(unsigned __int64,struct iop::EventInfo * __ptr64 const & __ptr64) __ptr64
?assign@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAX_KAEBQEAUEventInfo@iop@@@Z
; public: struct iop::EventInfo * __ptr64 & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::at(unsigned __int64) __ptr64
?at@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAAEAPEAUEventInfo@iop@@_K@Z
; public: struct iop::EventInfo * __ptr64 const & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::at(unsigned __int64)const  __ptr64
?at@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBAAEBQEAUEventInfo@iop@@_K@Z
; public: class iop::FilePathComponent & __ptr64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::back(void) __ptr64
?back@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAAEAVFilePathComponent@iop@@XZ
; public: class iop::FilePathComponent const & __ptr64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::back(void)const  __ptr64
?back@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBAAEBVFilePathComponent@iop@@XZ
; public: struct iop::EventInfo * __ptr64 & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::back(void) __ptr64
?back@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAAEAPEAUEventInfo@iop@@XZ
; public: struct iop::EventInfo * __ptr64 const & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::back(void)const  __ptr64
?back@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBAAEBQEAUEventInfo@iop@@XZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::begin(void) __ptr64
?begin@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AViterator@12@XZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::begin(void)const  __ptr64
?begin@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA?AVconst_iterator@12@XZ
; public: struct iop::EventInfo * __ptr64 * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::begin(void) __ptr64
?begin@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAPEAPEAUEventInfo@iop@@XZ
; public: struct iop::EventInfo * __ptr64 const * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::begin(void)const  __ptr64
?begin@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBAPEBQEAUEventInfo@iop@@XZ
; public: unsigned __int64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::capacity(void)const  __ptr64
?capacity@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA_KXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::clear(void) __ptr64
?clear@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::clear(void) __ptr64
?clear@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXXZ
; public: char * __ptr64 __cdecl scu::SecureArray<char>::data(void) __ptr64
?data@?$SecureArray@D@scu@@QEAAPEADXZ
; public: char const * __ptr64 __cdecl scu::SecureArray<char>::data(void)const  __ptr64
?data@?$SecureArray@D@scu@@QEBAPEBDXZ
; public: unsigned char * __ptr64 __cdecl scu::SecureArray<unsigned char>::data(void) __ptr64
?data@?$SecureArray@E@scu@@QEAAPEAEXZ
; public: unsigned char const * __ptr64 __cdecl scu::SecureArray<unsigned char>::data(void)const  __ptr64
?data@?$SecureArray@E@scu@@QEBAPEBEXZ
; public: bool __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::empty(void)const  __ptr64
?empty@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA_NXZ
; public: bool __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::empty(void)const  __ptr64
?empty@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA_NXZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::end(void) __ptr64
?end@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AViterator@12@XZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::end(void)const  __ptr64
?end@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA?AVconst_iterator@12@XZ
; public: struct iop::EventInfo * __ptr64 * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::end(void) __ptr64
?end@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAPEAPEAUEventInfo@iop@@XZ
; public: struct iop::EventInfo * __ptr64 const * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::end(void)const  __ptr64
?end@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBAPEBQEAUEventInfo@iop@@XZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::erase(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator) __ptr64
?erase@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AViterator@12@V312@0@Z
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::erase(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator) __ptr64
?erase@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AViterator@12@V312@@Z
; public: struct iop::EventInfo * __ptr64 * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::erase(struct iop::EventInfo * __ptr64 * __ptr64,struct iop::EventInfo * __ptr64 * __ptr64) __ptr64
?erase@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAPEAPEAUEventInfo@iop@@PEAPEAU34@0@Z
; public: struct iop::EventInfo * __ptr64 * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::erase(struct iop::EventInfo * __ptr64 * __ptr64) __ptr64
?erase@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAPEAPEAUEventInfo@iop@@PEAPEAU34@@Z
; public: class iop::FilePathComponent & __ptr64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::front(void) __ptr64
?front@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAAEAVFilePathComponent@iop@@XZ
; public: class iop::FilePathComponent const & __ptr64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::front(void)const  __ptr64
?front@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBAAEBVFilePathComponent@iop@@XZ
; public: struct iop::EventInfo * __ptr64 & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::front(void) __ptr64
?front@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAAEAPEAUEventInfo@iop@@XZ
; public: struct iop::EventInfo * __ptr64 const & __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::front(void)const  __ptr64
?front@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBAAEBQEAUEventInfo@iop@@XZ
; public: class iop::CSharedMarker * __ptr64 __cdecl std::auto_ptr<class iop::CSharedMarker>::get(void)const  __ptr64
?get@?$auto_ptr@VCSharedMarker@iop@@@std@@QEBAPEAVCSharedMarker@iop@@XZ
; public: class iop::RMHangProcDeathSynchObjects * __ptr64 __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::get(void)const  __ptr64
?get@?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEBAPEAVRMHangProcDeathSynchObjects@iop@@XZ
; public: void __cdecl iop::CSmartCard::getATR(unsigned char * __ptr64,unsigned char & __ptr64) __ptr64
?getATR@CSmartCard@iop@@QEAAXPEAEAEAE@Z
; public: unsigned __int64 __cdecl iop::CSmartCard::getCardHandle(void) __ptr64
?getCardHandle@CSmartCard@iop@@QEAA_KXZ
; public: char const * __ptr64 __cdecl iop::CSmartCard::getCardName(void)const  __ptr64
?getCardName@CSmartCard@iop@@QEBAPEBDXZ
; public: class std::allocator<class iop::FilePathComponent>  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::get_allocator(void)const  __ptr64
?get_allocator@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA?AV?$allocator@VFilePathComponent@iop@@@2@XZ
; public: class std::allocator<struct iop::EventInfo * __ptr64>  __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::get_allocator(void)const  __ptr64
?get_allocator@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA?AV?$allocator@PEAUEventInfo@iop@@@2@XZ
; public: class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::insert(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class iop::FilePathComponent const & __ptr64) __ptr64
?insert@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AViterator@12@V312@AEBVFilePathComponent@iop@@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::insert(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class iop::FilePathComponent const * __ptr64,class iop::FilePathComponent const * __ptr64) __ptr64
?insert@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXViterator@12@PEBVFilePathComponent@iop@@1@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::insert(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator) __ptr64
?insert@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXViterator@12@Vconst_iterator@12@1@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::insert(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,unsigned __int64,class iop::FilePathComponent const & __ptr64) __ptr64
?insert@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXViterator@12@_KAEBVFilePathComponent@iop@@@Z
; public: struct iop::EventInfo * __ptr64 * __ptr64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::insert(struct iop::EventInfo * __ptr64 * __ptr64,struct iop::EventInfo * __ptr64 const & __ptr64) __ptr64
?insert@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAPEAPEAUEventInfo@iop@@PEAPEAU34@AEBQEAU34@@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::insert(struct iop::EventInfo * __ptr64 * __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64) __ptr64
?insert@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXPEAPEAUEventInfo@iop@@PEBQEAU34@1@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::insert(struct iop::EventInfo * __ptr64 * __ptr64,unsigned __int64,struct iop::EventInfo * __ptr64 const & __ptr64) __ptr64
?insert@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXPEAPEAUEventInfo@iop@@_KAEBQEAU34@@Z
; public: unsigned __int64 __cdecl scu::SecureArray<char>::length(void)const  __ptr64
?length@?$SecureArray@D@scu@@QEBA_KXZ
; public: unsigned __int64 __cdecl scu::SecureArray<unsigned char>::length(void)const  __ptr64
?length@?$SecureArray@E@scu@@QEBA_KXZ
; public: unsigned __int64 __cdecl scu::SecureArray<char>::length_string(void)const  __ptr64
?length_string@?$SecureArray@D@scu@@QEBA_KXZ
; public: unsigned __int64 __cdecl scu::SecureArray<unsigned char>::length_string(void)const  __ptr64
?length_string@?$SecureArray@E@scu@@QEBA_KXZ
; public: unsigned __int64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::max_size(void)const  __ptr64
?max_size@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA_KXZ
; public: unsigned __int64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::max_size(void)const  __ptr64
?max_size@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA_KXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::merge(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64) __ptr64
?merge@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXAEAV12@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::merge(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64,struct std::greater<class iop::FilePathComponent>) __ptr64
?merge@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXAEAV12@U?$greater@VFilePathComponent@iop@@@2@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::pop_back(void) __ptr64
?pop_back@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::pop_back(void) __ptr64
?pop_back@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::pop_front(void) __ptr64
?pop_front@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::push_back(class iop::FilePathComponent const & __ptr64) __ptr64
?push_back@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXAEBVFilePathComponent@iop@@@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::push_back(struct iop::EventInfo * __ptr64 const & __ptr64) __ptr64
?push_back@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXAEBQEAUEventInfo@iop@@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::push_front(class iop::FilePathComponent const & __ptr64) __ptr64
?push_front@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXAEBVFilePathComponent@iop@@@Z
; public: class std::reverse_bidirectional_iterator<class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class iop::FilePathComponent,class iop::FilePathComponent & __ptr64,class iop::FilePathComponent * __ptr64,__int64>  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::rbegin(void) __ptr64
?rbegin@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AV?$reverse_bidirectional_iterator@Viterator@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@VFilePathComponent@iop@@AEAV45@PEAV45@_J@2@XZ
; public: class std::reverse_bidirectional_iterator<class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator,class iop::FilePathComponent,class iop::FilePathComponent const & __ptr64,class iop::FilePathComponent const * __ptr64,__int64>  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::rbegin(void)const  __ptr64
?rbegin@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA?AV?$reverse_bidirectional_iterator@Vconst_iterator@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@VFilePathComponent@iop@@AEBV45@PEBV45@_J@2@XZ
; public: class std::reverse_iterator<struct iop::EventInfo * __ptr64 * __ptr64,struct iop::EventInfo * __ptr64,struct iop::EventInfo * __ptr64 & __ptr64,struct iop::EventInfo * __ptr64 * __ptr64,__int64>  __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::rbegin(void) __ptr64
?rbegin@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA?AV?$reverse_iterator@PEAPEAUEventInfo@iop@@PEAU12@AEAPEAU12@PEAPEAU12@_J@2@XZ
; public: class std::reverse_iterator<struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64,struct iop::EventInfo * __ptr64 const & __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64,__int64>  __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::rbegin(void)const  __ptr64
?rbegin@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA?AV?$reverse_iterator@PEBQEAUEventInfo@iop@@PEAU12@AEBQEAU12@PEBQEAU12@_J@2@XZ
; public: class iop::CSharedMarker * __ptr64 __cdecl std::auto_ptr<class iop::CSharedMarker>::release(void)const  __ptr64
?release@?$auto_ptr@VCSharedMarker@iop@@@std@@QEBAPEAVCSharedMarker@iop@@XZ
; public: class iop::RMHangProcDeathSynchObjects * __ptr64 __cdecl std::auto_ptr<class iop::RMHangProcDeathSynchObjects>::release(void)const  __ptr64
?release@?$auto_ptr@VRMHangProcDeathSynchObjects@iop@@@std@@QEBAPEAVRMHangProcDeathSynchObjects@iop@@XZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::remove(class iop::FilePathComponent const & __ptr64) __ptr64
?remove@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXAEBVFilePathComponent@iop@@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::remove_if(class std::binder2nd<struct std::not_equal_to<class iop::FilePathComponent> >) __ptr64
?remove_if@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXV?$binder2nd@U?$not_equal_to@VFilePathComponent@iop@@@std@@@2@@Z
; public: class std::reverse_bidirectional_iterator<class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class iop::FilePathComponent,class iop::FilePathComponent & __ptr64,class iop::FilePathComponent * __ptr64,__int64>  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::rend(void) __ptr64
?rend@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAA?AV?$reverse_bidirectional_iterator@Viterator@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@VFilePathComponent@iop@@AEAV45@PEAV45@_J@2@XZ
; public: class std::reverse_bidirectional_iterator<class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::const_iterator,class iop::FilePathComponent,class iop::FilePathComponent const & __ptr64,class iop::FilePathComponent const * __ptr64,__int64>  __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::rend(void)const  __ptr64
?rend@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA?AV?$reverse_bidirectional_iterator@Vconst_iterator@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@VFilePathComponent@iop@@AEBV45@PEBV45@_J@2@XZ
; public: class std::reverse_iterator<struct iop::EventInfo * __ptr64 * __ptr64,struct iop::EventInfo * __ptr64,struct iop::EventInfo * __ptr64 & __ptr64,struct iop::EventInfo * __ptr64 * __ptr64,__int64>  __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::rend(void) __ptr64
?rend@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAA?AV?$reverse_iterator@PEAPEAUEventInfo@iop@@PEAU12@AEAPEAU12@PEAPEAU12@_J@2@XZ
; public: class std::reverse_iterator<struct iop::EventInfo * __ptr64 const * __ptr64,struct iop::EventInfo * __ptr64,struct iop::EventInfo * __ptr64 const & __ptr64,struct iop::EventInfo * __ptr64 const * __ptr64,__int64>  __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::rend(void)const  __ptr64
?rend@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA?AV?$reverse_iterator@PEBQEAUEventInfo@iop@@PEAU12@AEBQEAU12@PEBQEAU12@_J@2@XZ
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::reserve(unsigned __int64) __ptr64
?reserve@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAX_K@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::resize(unsigned __int64,class iop::FilePathComponent) __ptr64
?resize@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAX_KVFilePathComponent@iop@@@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::resize(unsigned __int64,struct iop::EventInfo * __ptr64 const & __ptr64) __ptr64
?resize@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAX_KAEBQEAUEventInfo@iop@@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::reverse(void) __ptr64
?reverse@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl iop::CSmartCard::setCardName(char const * __ptr64) __ptr64
?setCardName@CSmartCard@iop@@QEAAXPEBD@Z
; public: unsigned __int64 __cdecl scu::SecureArray<char>::size(void)const  __ptr64
?size@?$SecureArray@D@scu@@QEBA_KXZ
; public: unsigned __int64 __cdecl scu::SecureArray<unsigned char>::size(void)const  __ptr64
?size@?$SecureArray@E@scu@@QEBA_KXZ
; public: unsigned __int64 __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::size(void)const  __ptr64
?size@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEBA_KXZ
; public: unsigned __int64 __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::size(void)const  __ptr64
?size@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEBA_KXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::sort(struct std::greater<class iop::FilePathComponent>) __ptr64
?sort@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXU?$greater@VFilePathComponent@iop@@@2@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::sort(void) __ptr64
?sort@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::splice(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator) __ptr64
?splice@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXViterator@12@AEAV12@00@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::splice(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator) __ptr64
?splice@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXViterator@12@AEAV12@0@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::splice(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::iterator,class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64) __ptr64
?splice@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXViterator@12@AEAV12@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::swap(class std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> > & __ptr64) __ptr64
?swap@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXAEAV12@@Z
; public: void __cdecl std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> >::swap(class std::vector<struct iop::EventInfo * __ptr64,class std::allocator<struct iop::EventInfo * __ptr64> > & __ptr64) __ptr64
?swap@?$vector@PEAUEventInfo@iop@@V?$allocator@PEAUEventInfo@iop@@@std@@@std@@QEAAXAEAV12@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::unique(struct std::not_equal_to<class iop::FilePathComponent>) __ptr64
?unique@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXU?$not_equal_to@VFilePathComponent@iop@@@2@@Z
; public: void __cdecl std::list<class iop::FilePathComponent,class std::allocator<class iop::FilePathComponent> >::unique(void) __ptr64
?unique@?$list@VFilePathComponent@iop@@V?$allocator@VFilePathComponent@iop@@@std@@@std@@QEAAXXZ
DllGetVersion
DllRegisterServer
DllUnregisterServer
