; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0 TITLE D:\Works\Corpsms_2010\SmsCenter\Release_Unicode\SqlPool.obj .686P .XMM include listing.inc .model flat INCLUDELIB LIBCMT INCLUDELIB OLDNAMES PUBLIC ?__empty_global_delete@@YAXPAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPAXI@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z ; __empty_global_delete PUBLIC _HRESULT_FROM_WIN32 PUBLIC ?AfxCrtErrorCheck@@YAHH@Z ; AfxCrtErrorCheck PUBLIC ??3CObject@@SGXPAX@Z ; CObject::operator delete PUBLIC ?Serialize@CObject@@UAEXAAVCArchive@@@Z ; CObject::Serialize PUBLIC ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl PUBLIC ?wmemcpy_s@Checked@ATL@@YAXPA_WIPB_WI@Z ; ATL::Checked::wmemcpy_s PUBLIC ?AtlStrLen@ATL@@YAHPB_W@Z ; ATL::AtlStrLen PUBLIC ?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z ; ATL::_AtlGetStringResourceImage PUBLIC ?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z ; ATL::AtlGetStringResourceImage PUBLIC ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data PUBLIC ?AddRef@CStringData@ATL@@QAEXXZ ; ATL::CStringData::AddRef PUBLIC ?IsLocked@CStringData@ATL@@QBE_NXZ ; ATL::CStringData::IsLocked PUBLIC ?IsShared@CStringData@ATL@@QBE_NXZ ; ATL::CStringData::IsShared PUBLIC ?Release@CStringData@ATL@@QAEXXZ ; ATL::CStringData::Release PUBLIC ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z ; ATL::ChTraitsCRT::GetBaseTypeLength PUBLIC ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WH@Z ; ATL::ChTraitsCRT::GetBaseTypeLength PUBLIC ?ConvertToBaseType@?$ChTraitsCRT@_W@ATL@@SAXPA_WHPB_WH@Z ; ATL::ChTraitsCRT::ConvertToBaseType PUBLIC ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z ; ATL::CSimpleStringT::CSimpleStringT PUBLIC ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@ABV01@@Z ; ATL::CSimpleStringT::CSimpleStringT PUBLIC ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT::~CSimpleStringT PUBLIC ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CSimpleStringT::operator= PUBLIC ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@PB_W@Z ; ATL::CSimpleStringT::operator= PUBLIC ?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ ; ATL::CSimpleStringT::Empty PUBLIC ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT::GetAllocLength PUBLIC ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z ; ATL::CSimpleStringT::GetBuffer PUBLIC ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT::GetLength PUBLIC ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT::GetString PUBLIC ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z ; ATL::CSimpleStringT::ReleaseBufferSetLength PUBLIC ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_W@Z ; ATL::CSimpleStringT::SetString PUBLIC ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z ; ATL::CSimpleStringT::SetString PUBLIC ?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z ; ATL::CSimpleStringT::CopyCharsOverlapped PUBLIC ?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z ; ATL::CSimpleStringT::StringLength PUBLIC ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ; ATL::CSimpleStringT::ThrowMemoryException PUBLIC ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach PUBLIC ?Fork@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::Fork PUBLIC ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData PUBLIC ?PrepareWrite@?$CSimpleStringT@_W$0A@@ATL@@AAEPA_WH@Z ; ATL::CSimpleStringT::PrepareWrite PUBLIC ?PrepareWrite2@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::PrepareWrite2 PUBLIC ?Reallocate@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::Reallocate PUBLIC ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::SetLength PUBLIC ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z ; ATL::CSimpleStringT::CloneData PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::CStringT > > PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT > >::CStringT > > PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT > >::CStringT > > PUBLIC ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > PUBLIC ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CStringT > >::operator= PUBLIC ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z ; ATL::CStringT > >::operator= PUBLIC ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHI@Z ; ATL::CStringT > >::LoadStringW PUBLIC ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHPAUHINSTANCE__@@I@Z ; ATL::CStringT > >::LoadStringW PUBLIC ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z ; ATL::CStringT > >::CheckImplicitLoad PUBLIC ?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z ; StrTraitMFC >::FindStringResourceInstance PUBLIC ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ ; StrTraitMFC >::GetDefaultManager PUBLIC ?Unlock@CSyncObject@@UAEHJPAJ@Z ; CSyncObject::Unlock PUBLIC ??0CCriticalSection@@QAE@XZ ; CCriticalSection::CCriticalSection PUBLIC ?Unlock@CCriticalSection@@UAEHXZ ; CCriticalSection::Unlock PUBLIC ?Lock@CCriticalSection@@QAEHXZ ; CCriticalSection::Lock PUBLIC ?Lock@CCriticalSection@@UAEHK@Z ; CCriticalSection::Lock PUBLIC ??1CCriticalSection@@UAE@XZ ; CCriticalSection::~CCriticalSection PUBLIC ?Init@CCriticalSection@@AAEJXZ ; CCriticalSection::Init PUBLIC ??_GCCriticalSection@@UAEPAXI@Z ; CCriticalSection::`scalar deleting destructor' PUBLIC ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock PUBLIC ??0_SQL_Pool@@QAE@XZ ; _SQL_Pool::_SQL_Pool PUBLIC ??1_SQL_Pool@@QAE@XZ ; _SQL_Pool::~_SQL_Pool PUBLIC ??_E_SQL_Pool@@QAEPAXI@Z ; _SQL_Pool::`vector deleting destructor' PUBLIC ?SetTimeOut@CSqlPool@@QAEXJJ@Z ; CSqlPool::SetTimeOut PUBLIC ?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z ; CSqlPool::Init PUBLIC ?Release@CSqlPool@@QAEHXZ ; CSqlPool::Release PUBLIC ?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z ; CSqlPool::ConnectSQLServer PUBLIC ?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ ; CSqlPool::GetBankSQL PUBLIC ??0CSqlPool@@QAE@XZ ; CSqlPool::CSqlPool PUBLIC ??1CSqlPool@@UAE@XZ ; CSqlPool::~CSqlPool PUBLIC ??_GCSqlPool@@UAEPAXI@Z ; CSqlPool::`scalar deleting destructor' PUBLIC ??_7CCriticalSection@@6B@ ; CCriticalSection::`vftable' PUBLIC ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@ ; `string' PUBLIC ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ ; `string' PUBLIC ??_C@_13JKNELIBG@?$AAT@ ; `string' PUBLIC ??_7CSqlPool@@6B@ ; CSqlPool::`vftable' PUBLIC ??_R0?AVCObject@@@8 ; CObject `RTTI Type Descriptor' PUBLIC ??_R3CObject@@8 ; CObject::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2CObject@@8 ; CObject::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@CObject@@8 ; CObject::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_R4CCriticalSection@@6B@ ; CCriticalSection::`RTTI Complete Object Locator' PUBLIC ??_R0?AVCCriticalSection@@@8 ; CCriticalSection `RTTI Type Descriptor' PUBLIC ??_R3CCriticalSection@@8 ; CCriticalSection::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2CCriticalSection@@8 ; CCriticalSection::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@CCriticalSection@@8 ; CCriticalSection::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_R1A@?0A@EA@CSyncObject@@8 ; CSyncObject::`RTTI Base Class Descriptor at (0,-1,0,64)' PUBLIC ??_R0?AVCSyncObject@@@8 ; CSyncObject `RTTI Type Descriptor' PUBLIC ??_R3CSyncObject@@8 ; CSyncObject::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2CSyncObject@@8 ; CSyncObject::`RTTI Base Class Array' PUBLIC ?__LINE__Var@?0??Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z@4JA ; `CSqlPool::Init'::`1'::__LINE__Var PUBLIC ??_C@_04LLJCPOLH@Init@ ; `string' PUBLIC ??_C@_0DB@INEHLJGG@D?3?2Works?2Corpsms_2010?2public?2Sq@ ; `string' PUBLIC ?__LINE__Var@?0??Release@CSqlPool@@QAEHXZ@4JA ; `CSqlPool::Release'::`1'::__LINE__Var PUBLIC ??_C@_07LHBDFJPO@Release@ ; `string' PUBLIC ?__LINE__Var@?0??GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ@4JA ; `CSqlPool::GetBankSQL'::`1'::__LINE__Var PUBLIC ??_C@_0L@IDOFFBOH@GetBankSQL@ ; `string' PUBLIC ??_R4CSqlPool@@6B@ ; CSqlPool::`RTTI Complete Object Locator' PUBLIC ??_R0?AVCSqlPool@@@8 ; CSqlPool `RTTI Type Descriptor' PUBLIC ??_R3CSqlPool@@8 ; CSqlPool::`RTTI Class Hierarchy Descriptor' PUBLIC ??_R2CSqlPool@@8 ; CSqlPool::`RTTI Base Class Array' PUBLIC ??_R1A@?0A@EA@CSqlPool@@8 ; CSqlPool::`RTTI Base Class Descriptor at (0,-1,0,64)' EXTRN ??_L@YGXPAXIIP6EX0@Z1@Z:PROC ; `eh vector constructor iterator' EXTRN ??_M@YGXPAXIIP6EX0@Z@Z:PROC ; `eh vector destructor iterator' EXTRN ??3@YAXPAX@Z:PROC ; operator delete EXTRN ??3@YAXPAXI@Z:PROC ; operator delete EXTRN ?__global_delete@@YAXPAXI@Z:PROC ; __global_delete EXTRN ??_U@YAPAXI@Z:PROC ; operator new[] EXTRN ??_V@YAXPAXI@Z:PROC ; operator delete[] EXTRN __invalid_parameter_noinfo:PROC EXTRN __errno:PROC EXTRN _rand:PROC EXTRN _memcpy:PROC EXTRN _memmove:PROC EXTRN _memset:PROC EXTRN _wcslen:PROC EXTRN _wmemcpy_s:PROC EXTRN __imp__GetLastError@0:PROC EXTRN __imp__EnterCriticalSection@4:PROC EXTRN __imp__LeaveCriticalSection@4:PROC EXTRN __imp__InitializeCriticalSectionAndSpinCount@8:PROC EXTRN __imp__DeleteCriticalSection@4:PROC EXTRN __imp__Sleep@4:PROC EXTRN __imp__GetTickCount@0:PROC EXTRN __imp__LoadResource@8:PROC EXTRN __imp__LockResource@4:PROC EXTRN __imp__SizeofResource@8:PROC EXTRN __imp__FindResourceW@12:PROC EXTRN ?AfxThrowMemoryException@@YGXXZ:PROC ; AfxThrowMemoryException EXTRN ?AfxThrowInvalidArgException@@YGXXZ:PROC ; AfxThrowInvalidArgException EXTRN ?AfxThrowOleException@@YGXJ@Z:PROC ; AfxThrowOleException EXTRN ?AfxFindStringResourceHandle@@YGPAUHINSTANCE__@@I@Z:PROC ; AfxFindStringResourceHandle EXTRN ?AfxGetStringManager@@YGPAUIAtlStringMgr@ATL@@XZ:PROC ; AfxGetStringManager EXTRN ??0CSAStatusLog@@QAE@XZ:PROC ; CSAStatusLog::CSAStatusLog EXTRN ??1CSAStatusLog@@QAE@XZ:PROC ; CSAStatusLog::~CSAStatusLog EXTRN ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z:PROC ; CSAStatusLog::Init EXTRN ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z:PROC ; CSAStatusLog::LogError EXTRN ??0CAdoConnection@@QAE@XZ:PROC ; CAdoConnection::CAdoConnection EXTRN ??1CAdoConnection@@UAE@XZ:PROC ; CAdoConnection::~CAdoConnection EXTRN ?IsOpen@CAdoConnection@@QAEHXZ:PROC ; CAdoConnection::IsOpen EXTRN ?SetConnectTimeOut@CAdoConnection@@QAEHJ@Z:PROC ; CAdoConnection::SetConnectTimeOut EXTRN ?ConnectSQLServer2@CAdoConnection@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000J@Z:PROC ; CAdoConnection::ConnectSQLServer2 EXTRN ?Close@CAdoConnection@@QAEXXZ:PROC ; CAdoConnection::Close EXTRN ?SetCursorLocation@CAdoConnection@@QAEXW4CursorLocationEnum@ADODB@@@Z:PROC ; CAdoConnection::SetCursorLocation EXTRN ?isOK@CAdoConnection@@QAEHXZ:PROC ; CAdoConnection::isOK EXTRN ?SetCommandTimeout@CAdoConnection@@QAEHJ@Z:PROC ; CAdoConnection::SetCommandTimeout EXTRN ??0CSyncObject@@QAE@PB_W@Z:PROC ; CSyncObject::CSyncObject EXTRN ??1CSyncObject@@UAE@XZ:PROC ; CSyncObject::~CSyncObject EXTRN ?GetRuntimeClass@CCriticalSection@@UBEPAUCRuntimeClass@@XZ:PROC ; CCriticalSection::GetRuntimeClass EXTRN ??_ECCriticalSection@@UAEPAXI@Z:PROC ; CCriticalSection::`vector deleting destructor' EXTRN ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z:PROC ; CSingleLock::CSingleLock EXTRN ?Unlock@CSingleLock@@QAEHXZ:PROC ; CSingleLock::Unlock EXTRN ??_ECSqlPool@@UAEPAXI@Z:PROC ; CSqlPool::`vector deleting destructor' EXTRN @__security_check_cookie@4:PROC EXTRN ___CxxFrameHandler3:PROC EXTRN __chkstk:PROC EXTRN ??_7type_info@@6B@:QWORD ; type_info::`vftable' EXTRN ___security_cookie:DWORD ; COMDAT ??_R1A@?0A@EA@CSqlPool@@8 rdata$r SEGMENT ??_R1A@?0A@EA@CSqlPool@@8 DD FLAT:??_R0?AVCSqlPool@@@8 ; CSqlPool::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 00H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3CSqlPool@@8 rdata$r ENDS ; COMDAT ??_R2CSqlPool@@8 rdata$r SEGMENT ??_R2CSqlPool@@8 DD FLAT:??_R1A@?0A@EA@CSqlPool@@8 ; CSqlPool::`RTTI Base Class Array' rdata$r ENDS ; COMDAT ??_R3CSqlPool@@8 rdata$r SEGMENT ??_R3CSqlPool@@8 DD 00H ; CSqlPool::`RTTI Class Hierarchy Descriptor' DD 00H DD 01H DD FLAT:??_R2CSqlPool@@8 rdata$r ENDS ; COMDAT ??_R0?AVCSqlPool@@@8 data$rs SEGMENT ??_R0?AVCSqlPool@@@8 DD FLAT:??_7type_info@@6B@ ; CSqlPool `RTTI Type Descriptor' DD 00H DB '.?AVCSqlPool@@', 00H data$rs ENDS ; COMDAT ??_R4CSqlPool@@6B@ rdata$r SEGMENT ??_R4CSqlPool@@6B@ DD 00H ; CSqlPool::`RTTI Complete Object Locator' DD 00H DD 00H DD FLAT:??_R0?AVCSqlPool@@@8 DD FLAT:??_R3CSqlPool@@8 rdata$r ENDS ; COMDAT ??_C@_0L@IDOFFBOH@GetBankSQL@ CONST SEGMENT ??_C@_0L@IDOFFBOH@GetBankSQL@ DB 'GetBankSQL', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ@4JA _DATA SEGMENT ?__LINE__Var@?0??GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ@4JA DD 057H ; `CSqlPool::GetBankSQL'::`1'::__LINE__Var _DATA ENDS ; COMDAT ??_C@_07LHBDFJPO@Release@ CONST SEGMENT ??_C@_07LHBDFJPO@Release@ DB 'Release', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??Release@CSqlPool@@QAEHXZ@4JA _DATA SEGMENT ?__LINE__Var@?0??Release@CSqlPool@@QAEHXZ@4JA DD 03cH ; `CSqlPool::Release'::`1'::__LINE__Var _DATA ENDS ; COMDAT ??_C@_0DB@INEHLJGG@D?3?2Works?2Corpsms_2010?2public?2Sq@ CONST SEGMENT ??_C@_0DB@INEHLJGG@D?3?2Works?2Corpsms_2010?2public?2Sq@ DB 'D:\Works\Cor' DB 'psms_2010\public\SqlPool\SqlPool.cpp', 00H ; `string' CONST ENDS ; COMDAT ??_C@_04LLJCPOLH@Init@ CONST SEGMENT ??_C@_04LLJCPOLH@Init@ DB 'Init', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z@4JA DD 01fH ; `CSqlPool::Init'::`1'::__LINE__Var _DATA ENDS ; COMDAT ??_R2CSyncObject@@8 rdata$r SEGMENT ??_R2CSyncObject@@8 DD FLAT:??_R1A@?0A@EA@CSyncObject@@8 ; CSyncObject::`RTTI Base Class Array' DD FLAT:??_R1A@?0A@EA@CObject@@8 rdata$r ENDS ; COMDAT ??_R3CSyncObject@@8 rdata$r SEGMENT ??_R3CSyncObject@@8 DD 00H ; CSyncObject::`RTTI Class Hierarchy Descriptor' DD 00H DD 02H DD FLAT:??_R2CSyncObject@@8 rdata$r ENDS ; COMDAT ??_R0?AVCSyncObject@@@8 data$rs SEGMENT ??_R0?AVCSyncObject@@@8 DD FLAT:??_7type_info@@6B@ ; CSyncObject `RTTI Type Descriptor' DD 00H DB '.?AVCSyncObject@@', 00H data$rs ENDS ; COMDAT ??_R1A@?0A@EA@CSyncObject@@8 rdata$r SEGMENT ??_R1A@?0A@EA@CSyncObject@@8 DD FLAT:??_R0?AVCSyncObject@@@8 ; CSyncObject::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 01H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3CSyncObject@@8 rdata$r ENDS ; COMDAT ??_R1A@?0A@EA@CCriticalSection@@8 rdata$r SEGMENT ??_R1A@?0A@EA@CCriticalSection@@8 DD FLAT:??_R0?AVCCriticalSection@@@8 ; CCriticalSection::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 02H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3CCriticalSection@@8 rdata$r ENDS ; COMDAT ??_R2CCriticalSection@@8 rdata$r SEGMENT ??_R2CCriticalSection@@8 DD FLAT:??_R1A@?0A@EA@CCriticalSection@@8 ; CCriticalSection::`RTTI Base Class Array' DD FLAT:??_R1A@?0A@EA@CSyncObject@@8 DD FLAT:??_R1A@?0A@EA@CObject@@8 rdata$r ENDS ; COMDAT ??_R3CCriticalSection@@8 rdata$r SEGMENT ??_R3CCriticalSection@@8 DD 00H ; CCriticalSection::`RTTI Class Hierarchy Descriptor' DD 00H DD 03H DD FLAT:??_R2CCriticalSection@@8 rdata$r ENDS ; COMDAT ??_R0?AVCCriticalSection@@@8 data$rs SEGMENT ??_R0?AVCCriticalSection@@@8 DD FLAT:??_7type_info@@6B@ ; CCriticalSection `RTTI Type Descriptor' DD 00H DB '.?AVCCriticalSection@@', 00H data$rs ENDS ; COMDAT ??_R4CCriticalSection@@6B@ rdata$r SEGMENT ??_R4CCriticalSection@@6B@ DD 00H ; CCriticalSection::`RTTI Complete Object Locator' DD 00H DD 00H DD FLAT:??_R0?AVCCriticalSection@@@8 DD FLAT:??_R3CCriticalSection@@8 rdata$r ENDS ; COMDAT ??_R1A@?0A@EA@CObject@@8 rdata$r SEGMENT ??_R1A@?0A@EA@CObject@@8 DD FLAT:??_R0?AVCObject@@@8 ; CObject::`RTTI Base Class Descriptor at (0,-1,0,64)' DD 00H DD 00H DD 0ffffffffH DD 00H DD 040H DD FLAT:??_R3CObject@@8 rdata$r ENDS ; COMDAT ??_R2CObject@@8 rdata$r SEGMENT ??_R2CObject@@8 DD FLAT:??_R1A@?0A@EA@CObject@@8 ; CObject::`RTTI Base Class Array' rdata$r ENDS ; COMDAT ??_R3CObject@@8 rdata$r SEGMENT ??_R3CObject@@8 DD 00H ; CObject::`RTTI Class Hierarchy Descriptor' DD 00H DD 01H DD FLAT:??_R2CObject@@8 rdata$r ENDS ; COMDAT ??_R0?AVCObject@@@8 data$rs SEGMENT ??_R0?AVCObject@@@8 DD FLAT:??_7type_info@@6B@ ; CObject `RTTI Type Descriptor' DD 00H DB '.?AVCObject@@', 00H data$rs ENDS ; COMDAT ??_7CSqlPool@@6B@ CONST SEGMENT ??_7CSqlPool@@6B@ DD FLAT:??_R4CSqlPool@@6B@ ; CSqlPool::`vftable' DD FLAT:??_ECSqlPool@@UAEPAXI@Z CONST ENDS ; COMDAT ??_C@_13JKNELIBG@?$AAT@ CONST SEGMENT ??_C@_13JKNELIBG@?$AAT@ DB 'T', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ CONST SEGMENT ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ DB 'L', 00H, 'o', 00H, 'g', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@ CONST SEGMENT ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@ DB 'A', 00H, 'p' DB 00H, 'p', 00H, 'E', 00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H DB 00H, 00H ; `string' CONST ENDS ; COMDAT ??_7CCriticalSection@@6B@ CONST SEGMENT ??_7CCriticalSection@@6B@ DD FLAT:??_R4CCriticalSection@@6B@ ; CCriticalSection::`vftable' DD FLAT:?GetRuntimeClass@CCriticalSection@@UBEPAUCRuntimeClass@@XZ DD FLAT:??_ECCriticalSection@@UAEPAXI@Z DD FLAT:?Serialize@CObject@@UAEXAAVCArchive@@@Z DD FLAT:?Lock@CCriticalSection@@UAEHK@Z DD FLAT:?Unlock@CSyncObject@@UAEHJPAJ@Z DD FLAT:?Unlock@CCriticalSection@@UAEHXZ CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 050H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$??1CSqlPool@@UAE@XZ DD 019930522H DD 06H DD FLAT:__unwindtable$??1CSqlPool@@UAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H __unwindtable$??1CSqlPool@@UAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??1CSqlPool@@UAE@XZ$0 DD 00H DD FLAT:__unwindfunclet$??1CSqlPool@@UAE@XZ$1 DD 01H DD FLAT:__unwindfunclet$??1CSqlPool@@UAE@XZ$2 DD 02H DD FLAT:__unwindfunclet$??1CSqlPool@@UAE@XZ$3 DD 03H DD FLAT:__unwindfunclet$??1CSqlPool@@UAE@XZ$4 DD 04H DD FLAT:__unwindfunclet$??1CSqlPool@@UAE@XZ$5 xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 050H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$??0CSqlPool@@QAE@XZ DD 019930522H DD 06H DD FLAT:__unwindtable$??0CSqlPool@@QAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 00H __unwindtable$??0CSqlPool@@QAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??0CSqlPool@@QAE@XZ$0 DD 00H DD FLAT:__unwindfunclet$??0CSqlPool@@QAE@XZ$1 DD 01H DD FLAT:__unwindfunclet$??0CSqlPool@@QAE@XZ$2 DD 02H DD FLAT:__unwindfunclet$??0CSqlPool@@QAE@XZ$3 DD 03H DD FLAT:__unwindfunclet$??0CSqlPool@@QAE@XZ$4 DD 04H DD FLAT:__unwindfunclet$??0CSqlPool@@QAE@XZ$5 xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 037H DB 044H voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 023H DW 0252H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __catchsym$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$6 DD 00H DD 00H DD 00H DD FLAT:__catch$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$0 __tryblocktable$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ DD 00H DD 01H DD 05H DD 01H DD FLAT:__catchsym$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$6 __ehfuncinfo$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ DD 019930522H DD 06H DD FLAT:__unwindtable$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ DD 01H DD FLAT:__tryblocktable$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ DD 2 DUP(00H) DD 00H DD 00H __unwindtable$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ DD 0ffffffffH DD 00H DD 00H DD FLAT:__unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$2 DD 0ffffffffH DD 00H DD 02H DD FLAT:__unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$3 DD 03H DD FLAT:__unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$4 DD 04H DD FLAT:__unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$5 xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 036H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z DD 019930522H DD 05H DD FLAT:__unwindtable$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 00H __unwindtable$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z DD 0ffffffffH DD FLAT:__unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$0 DD 00H DD FLAT:__unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$1 DD 01H DD FLAT:__unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$2 DD 02H DD FLAT:__unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$3 DD 03H DD FLAT:__unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$4 xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 037H DB 044H voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 023H DW 018fH voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __catchsym$?Release@CSqlPool@@QAEHXZ$6 DD 00H DD 00H DD 00H DD FLAT:__catch$?Release@CSqlPool@@QAEHXZ$0 __tryblocktable$?Release@CSqlPool@@QAEHXZ DD 00H DD 01H DD 05H DD 01H DD FLAT:__catchsym$?Release@CSqlPool@@QAEHXZ$6 __ehfuncinfo$?Release@CSqlPool@@QAEHXZ DD 019930522H DD 06H DD FLAT:__unwindtable$?Release@CSqlPool@@QAEHXZ DD 01H DD FLAT:__tryblocktable$?Release@CSqlPool@@QAEHXZ DD 2 DUP(00H) DD 00H DD 00H __unwindtable$?Release@CSqlPool@@QAEHXZ DD 0ffffffffH DD 00H DD 00H DD FLAT:__unwindfunclet$?Release@CSqlPool@@QAEHXZ$2 DD 0ffffffffH DD 00H DD 02H DD FLAT:__unwindfunclet$?Release@CSqlPool@@QAEHXZ$3 DD 03H DD FLAT:__unwindfunclet$?Release@CSqlPool@@QAEHXZ$4 DD 04H DD FLAT:__unwindfunclet$?Release@CSqlPool@@QAEHXZ$5 xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 08aH DB 097H voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 023H DW 0300H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __catchsym$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$11 DD 00H DD 00H DD 00H DD FLAT:__catch$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$0 __tryblocktable$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z DD 05H DD 06H DD 0aH DD 01H DD FLAT:__catchsym$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$11 __ehfuncinfo$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z DD 019930522H DD 0bH DD FLAT:__unwindtable$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z DD 01H DD FLAT:__tryblocktable$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z DD 2 DUP(00H) DD 00H DD 00H __unwindtable$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z DD 0ffffffffH DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$2 DD 00H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$3 DD 01H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$4 DD 02H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$5 DD 03H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$6 DD 04H DD 00H DD 05H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$7 DD 04H DD 00H DD 07H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$8 DD 08H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$9 DD 09H DD FLAT:__unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$10 xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$??_E_SQL_Pool@@QAEPAXI@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 019H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??1_SQL_Pool@@QAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??1_SQL_Pool@@QAE@XZ$0 __ehfuncinfo$??1_SQL_Pool@@QAE@XZ DD 019930522H DD 01H DD FLAT:__unwindtable$??1_SQL_Pool@@QAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 019H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??0_SQL_Pool@@QAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??0_SQL_Pool@@QAE@XZ$0 __ehfuncinfo$??0_SQL_Pool@@QAE@XZ DD 019930522H DD 01H DD FLAT:__unwindtable$??0_SQL_Pool@@QAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 00H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$??1CSingleLock@@QAE@XZ DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 016H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??1CCriticalSection@@UAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??1CCriticalSection@@UAE@XZ$0 __ehfuncinfo$??1CCriticalSection@@UAE@XZ DD 019930522H DD 01H DD FLAT:__unwindtable$??1CCriticalSection@@UAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 016H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??0CCriticalSection@@QAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??0CCriticalSection@@QAE@XZ$0 __ehfuncinfo$??0CCriticalSection@@QAE@XZ DD 019930522H DD 01H DD FLAT:__unwindtable$??0CCriticalSection@@QAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 00H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 016H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ$0 __ehfuncinfo$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ DD 019930522H DD 01H DD FLAT:__unwindtable$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 016H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z DD 0ffffffffH DD FLAT:__unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z$0 __ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z DD 019930522H DD 01H DD FLAT:__unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 00H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 016H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z DD 0ffffffffH DD FLAT:__unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z$0 __ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z DD 019930522H DD 01H DD FLAT:__unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 00H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 016H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ DD 0ffffffffH DD FLAT:__unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ$0 __ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ DD 019930522H DD 01H DD FLAT:__unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 09H voltbl ENDS ; COMDAT xdata$x xdata$x SEGMENT __ehfuncinfo$?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z DD 019930522H DD 00H DD 00H DD 2 DUP(00H) DD 2 DUP(00H) DD 00H DD 04H xdata$x ENDS ; Function compile flags: /Odtp /ZI ; COMDAT ??_GCSqlPool@@UAEPAXI@Z _TEXT SEGMENT _this$ = -4 ; size = 4 ___flags$ = 8 ; size = 4 ??_GCSqlPool@@UAEPAXI@Z PROC ; CSqlPool::`scalar deleting destructor', COMDAT ; _this$ = ecx 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ??1CSqlPool@@UAE@XZ ; CSqlPool::~CSqlPool 00014 8b 45 08 mov eax, DWORD PTR ___flags$[ebp] 00017 83 e0 01 and eax, 1 0001a 74 0e je SHORT $LN2@scalar 0001c 6a 48 push 72 ; 00000048H 0001e 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00021 50 push eax 00022 e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete 00027 83 c4 08 add esp, 8 $LN2@scalar: 0002a 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0002d 5f pop edi 0002e 5e pop esi 0002f 5b pop ebx 00030 8b e5 mov esp, ebp 00032 5d pop ebp 00033 c2 04 00 ret 4 ??_GCSqlPool@@UAEPAXI@Z ENDP ; CSqlPool::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ??1CSqlPool@@UAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??1CSqlPool@@UAE@XZ PROC ; CSqlPool::~CSqlPool, COMDAT ; _this$ = ecx ; 26 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??1CSqlPool@@UAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0002e c7 00 00 00 00 00 mov DWORD PTR [eax], OFFSET ??_7CSqlPool@@6B@ 00034 c7 45 fc 05 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 5 ; 27 : Release(); 0003b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0003e e8 00 00 00 00 call ?Release@CSqlPool@@QAEHXZ ; CSqlPool::Release ; 28 : } 00043 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+8], 4 00047 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0004a 83 c1 44 add ecx, 68 ; 00000044H 0004d e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00052 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+8], 3 00056 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00059 83 c1 40 add ecx, 64 ; 00000040H 0005c e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00061 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+8], 2 00065 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00068 83 c1 3c add ecx, 60 ; 0000003cH 0006b e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00070 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+8], 1 00074 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00077 83 c1 38 add ecx, 56 ; 00000038H 0007a e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 0007f c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+8], 0 00083 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00086 83 c1 34 add ecx, 52 ; 00000034H 00089 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 0008e c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00095 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00098 83 c1 04 add ecx, 4 0009b e8 00 00 00 00 call ??1CCriticalSection@@UAE@XZ ; CCriticalSection::~CCriticalSection 000a0 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 000a3 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 000aa 59 pop ecx 000ab 5f pop edi 000ac 5e pop esi 000ad 5b pop ebx 000ae 8b e5 mov esp, ebp 000b0 5d pop ebp 000b1 c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??1CSqlPool@@UAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 83 c1 04 add ecx, 4 00006 e9 00 00 00 00 jmp ??1CCriticalSection@@UAE@XZ ; CCriticalSection::~CCriticalSection __unwindfunclet$??1CSqlPool@@UAE@XZ$1: 0000b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0000e 83 c1 34 add ecx, 52 ; 00000034H 00011 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??1CSqlPool@@UAE@XZ$2: 00016 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00019 83 c1 38 add ecx, 56 ; 00000038H 0001c e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??1CSqlPool@@UAE@XZ$3: 00021 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00024 83 c1 3c add ecx, 60 ; 0000003cH 00027 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??1CSqlPool@@UAE@XZ$4: 0002c 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0002f 83 c1 40 add ecx, 64 ; 00000040H 00032 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??1CSqlPool@@UAE@XZ$5: 00037 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0003a 83 c1 44 add ecx, 68 ; 00000044H 0003d e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00042 cc int 3 00043 cc int 3 00044 cc int 3 00045 cc int 3 00046 cc int 3 __ehhandler$??1CSqlPool@@UAE@XZ: 00047 90 npad 1 00048 90 npad 1 00049 8b 54 24 08 mov edx, DWORD PTR [esp+8] 0004d 8d 42 0c lea eax, DWORD PTR [edx+12] 00050 8b 4a ac mov ecx, DWORD PTR [edx-84] 00053 33 c8 xor ecx, eax 00055 e8 00 00 00 00 call @__security_check_cookie@4 0005a b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1CSqlPool@@UAE@XZ 0005f e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??1CSqlPool@@UAE@XZ ENDP ; CSqlPool::~CSqlPool ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ??0CSqlPool@@QAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??0CSqlPool@@QAE@XZ PROC ; CSqlPool::CSqlPool, COMDAT ; _this$ = ecx ; 18 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??0CSqlPool@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0002e c7 00 00 00 00 00 mov DWORD PTR [eax], OFFSET ??_7CSqlPool@@6B@ 00034 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00037 83 c1 04 add ecx, 4 0003a e8 00 00 00 00 call ??0CCriticalSection@@QAE@XZ ; CCriticalSection::CCriticalSection 0003f c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 00046 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00049 83 c1 34 add ecx, 52 ; 00000034H 0004c e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::CStringT > > 00051 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+8], 1 00055 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00058 83 c1 38 add ecx, 56 ; 00000038H 0005b e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::CStringT > > 00060 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+8], 2 00064 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00067 83 c1 3c add ecx, 60 ; 0000003cH 0006a e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::CStringT > > 0006f c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+8], 3 00073 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00076 83 c1 40 add ecx, 64 ; 00000040H 00079 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::CStringT > > 0007e c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+8], 4 00082 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00085 83 c1 44 add ecx, 68 ; 00000044H 00088 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::CStringT > > 0008d c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+8], 5 ; 19 : m_pSQL = NULL; 00091 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 00094 c7 40 24 00 00 00 00 mov DWORD PTR [eax+36], 0 ; 20 : m_lSQLCount=0; 0009b 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0009e c7 40 28 00 00 00 00 mov DWORD PTR [eax+40], 0 ; 21 : m_lConnectionTimeout = 30; 000a5 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 000a8 c7 40 2c 1e 00 00 00 mov DWORD PTR [eax+44], 30 ; 0000001eH ; 22 : m_lCommandTimeoutTimeout=600; 000af 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 000b2 c7 40 30 58 02 00 00 mov DWORD PTR [eax+48], 600 ; 00000258H ; 23 : } 000b9 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 000c0 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 000c3 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 000c6 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 000cd 59 pop ecx 000ce 5f pop edi 000cf 5e pop esi 000d0 5b pop ebx 000d1 8b e5 mov esp, ebp 000d3 5d pop ebp 000d4 c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??0CSqlPool@@QAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 83 c1 04 add ecx, 4 00006 e9 00 00 00 00 jmp ??1CCriticalSection@@UAE@XZ ; CCriticalSection::~CCriticalSection __unwindfunclet$??0CSqlPool@@QAE@XZ$1: 0000b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0000e 83 c1 34 add ecx, 52 ; 00000034H 00011 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??0CSqlPool@@QAE@XZ$2: 00016 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00019 83 c1 38 add ecx, 56 ; 00000038H 0001c e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??0CSqlPool@@QAE@XZ$3: 00021 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00024 83 c1 3c add ecx, 60 ; 0000003cH 00027 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??0CSqlPool@@QAE@XZ$4: 0002c 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0002f 83 c1 40 add ecx, 64 ; 00000040H 00032 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$??0CSqlPool@@QAE@XZ$5: 00037 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0003a 83 c1 44 add ecx, 68 ; 00000044H 0003d e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00042 cc int 3 00043 cc int 3 00044 cc int 3 00045 cc int 3 00046 cc int 3 __ehhandler$??0CSqlPool@@QAE@XZ: 00047 90 npad 1 00048 90 npad 1 00049 8b 54 24 08 mov edx, DWORD PTR [esp+8] 0004d 8d 42 0c lea eax, DWORD PTR [edx+12] 00050 8b 4a ac mov ecx, DWORD PTR [edx-84] 00053 33 c8 xor ecx, eax 00055 e8 00 00 00 00 call @__security_check_cookie@4 0005a b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0CSqlPool@@QAE@XZ 0005f e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??0CSqlPool@@QAE@XZ ENDP ; CSqlPool::CSqlPool ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ _TEXT SEGMENT tv69 = -6632 ; size = 4 tv161 = -6628 ; size = 4 tv147 = -6628 ; size = 4 tv140 = -6628 ; size = 4 $T2 = -6624 ; size = 4 $T3 = -6620 ; size = 4 $T4 = -6616 ; size = 4 _NXlog$5 = -6100 ; size = 6056 _i$6 = -44 ; size = 4 _cl$7 = -40 ; size = 12 _j$8 = -28 ; size = 4 _this$ = -24 ; size = 4 __$ArrayPad$ = -20 ; size = 4 __$EHRec$ = -16 ; size = 16 ?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ PROC ; CSqlPool::GetBankSQL, COMDAT ; _this$ = ecx ; 87 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 51 push ecx 00012 b8 d8 19 00 00 mov eax, 6616 ; 000019d8H 00017 e8 00 00 00 00 call __chkstk 0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 00021 33 c5 xor eax, ebp 00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax 00026 53 push ebx 00027 56 push esi 00028 57 push edi 00029 50 push eax 0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4] 0002d 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp 00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx ; 88 : ; 89 : try 00039 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+12], 0 ; 90 : { ; 91 : if ( !m_pSQL ) 00040 8b 45 e8 mov eax, DWORD PTR _this$[ebp] 00043 83 78 24 00 cmp DWORD PTR [eax+36], 0 00047 75 07 jne SHORT $LN9@GetBankSQL ; 92 : return NULL; 00049 33 c0 xor eax, eax 0004b e9 f4 01 00 00 jmp $LN1@GetBankSQL $LN9@GetBankSQL: ; 93 : ; 94 : for ( int j=0 ; j<10 ; j++ ) 00050 c7 45 e4 00 00 00 00 mov DWORD PTR _j$8[ebp], 0 00057 eb 09 jmp SHORT $LN4@GetBankSQL $LN2@GetBankSQL: 00059 8b 45 e4 mov eax, DWORD PTR _j$8[ebp] 0005c 83 c0 01 add eax, 1 0005f 89 45 e4 mov DWORD PTR _j$8[ebp], eax $LN4@GetBankSQL: 00062 83 7d e4 0a cmp DWORD PTR _j$8[ebp], 10 ; 0000000aH 00066 0f 8d 31 01 00 00 jge $LN3@GetBankSQL ; 95 : { ; 96 : CSingleLock cl(&m_Lock,true); 0006c 6a 01 push 1 0006e 8b 45 e8 mov eax, DWORD PTR _this$[ebp] 00071 83 c0 04 add eax, 4 00074 50 push eax 00075 8d 4d d8 lea ecx, DWORD PTR _cl$7[ebp] 00078 e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock 0007d c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1 ; 97 : for ( int i=0 ; i > >::CStringT > > 001c4 89 85 1c e6 ff ff mov DWORD PTR tv161[ebp], eax 001ca c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4 001ce 51 push ecx 001cf 8b cc mov ecx, esp 001d1 89 a5 20 e6 ff ff mov DWORD PTR $T2[ebp], esp 001d7 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ 001dc e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT > >::CStringT > > 001e1 89 85 18 e6 ff ff mov DWORD PTR tv69[ebp], eax 001e7 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5 001eb c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3 001ef 8d 8d 2c e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 001f5 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init 001fa a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ@4JA 001ff 83 c0 21 add eax, 33 ; 00000021H 00202 50 push eax 00203 68 00 00 00 00 push OFFSET ??_C@_0L@IDOFFBOH@GetBankSQL@ 00208 68 00 00 00 00 push OFFSET ??_C@_0DB@INEHLJGG@D?3?2Works?2Corpsms_2010?2public?2Sq@ 0020d 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@ 00212 8d 8d 2c e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 00218 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError 0021d c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2 00221 8d 8d 2c e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 00227 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog ; 121 : } 0022c b8 00 00 00 00 mov eax, $LN20@GetBankSQL 00231 c3 ret 0 $LN13@GetBankSQL: 00232 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+12], -1 00239 eb 07 jmp SHORT __tryend$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$1 $LN20@GetBankSQL: 0023b c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+12], -1 __tryend$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$1: ; 122 : return NULL; 00242 33 c0 xor eax, eax $LN1@GetBankSQL: ; 123 : } 00244 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4] 00247 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0024e 59 pop ecx 0024f 5f pop edi 00250 5e pop esi 00251 5b pop ebx 00252 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp] 00255 33 cd xor ecx, ebp 00257 e8 00 00 00 00 call @__security_check_cookie@4 0025c 8b e5 mov esp, ebp 0025e 5d pop ebp 0025f c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$2: 00000 8d 4d d8 lea ecx, DWORD PTR _cl$7[ebp] 00003 e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock __unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$3: 00008 8d 8d 2c e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 0000e e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog __unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$4: 00013 8b 8d 24 e6 ff ff mov ecx, DWORD PTR $T3[ebp] 00019 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ$5: 0001e 8b 8d 20 e6 ff ff mov ecx, DWORD PTR $T2[ebp] 00024 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00029 cc int 3 0002a cc int 3 0002b cc int 3 0002c cc int 3 0002d cc int 3 __ehhandler$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ: 0002e 90 npad 1 0002f 90 npad 1 00030 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00034 8d 42 0c lea eax, DWORD PTR [edx+12] 00037 8b 8a 14 e6 ff ff mov ecx, DWORD PTR [edx-6636] 0003d 33 c8 xor ecx, eax 0003f e8 00 00 00 00 call @__security_check_cookie@4 00044 8b 4a f8 mov ecx, DWORD PTR [edx-8] 00047 33 c8 xor ecx, eax 00049 e8 00 00 00 00 call @__security_check_cookie@4 0004e b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ 00053 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?GetBankSQL@CSqlPool@@QAEPAU_SQL_Pool@@XZ ENDP ; CSqlPool::GetBankSQL ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z _TEXT SEGMENT tv79 = -136 ; size = 4 tv218 = -132 ; size = 4 tv217 = -128 ; size = 4 tv216 = -124 ; size = 4 tv215 = -120 ; size = 4 tv214 = -116 ; size = 4 tv197 = -112 ; size = 4 tv193 = -112 ; size = 4 tv184 = -112 ; size = 4 tv77 = -112 ; size = 4 $T2 = -108 ; size = 4 $T3 = -104 ; size = 4 $T4 = -100 ; size = 4 $T5 = -96 ; size = 4 $T6 = -92 ; size = 4 _b$7 = -24 ; size = 4 _i$8 = -20 ; size = 4 _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 _pSql$ = 8 ; size = 4 ?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z PROC ; CSqlPool::ConnectSQLServer, COMDAT ; _this$ = ecx ; 126 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 7c sub esp, 124 ; 0000007cH 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 127 : if ( !pSql ) 0002b 83 7d 08 00 cmp DWORD PTR _pSql$[ebp], 0 0002f 75 07 jne SHORT $LN5@ConnectSQL ; 128 : return false; 00031 33 c0 xor eax, eax 00033 e9 43 01 00 00 jmp $LN1@ConnectSQL $LN5@ConnectSQL: ; 129 : //if ( !pSql->spDoc ) ; 130 : //{ ; 131 : // pSql->spDoc.CoCreateInstance(__uuidof(DOMDocument40)); ; 132 : //} ; 133 : if( pSql->adoConnection.IsOpen() ) 00038 8b 4d 08 mov ecx, DWORD PTR _pSql$[ebp] 0003b 83 c1 08 add ecx, 8 0003e e8 00 00 00 00 call ?IsOpen@CAdoConnection@@QAEHXZ ; CAdoConnection::IsOpen 00043 85 c0 test eax, eax 00045 74 0a je SHORT $LN6@ConnectSQL ; 134 : { ; 135 : return true; 00047 b8 01 00 00 00 mov eax, 1 0004c e9 2a 01 00 00 jmp $LN1@ConnectSQL $LN6@ConnectSQL: ; 136 : } ; 137 : ; 138 : for ( int i=0 ; i<3; i++ ) //重试3次,看能否连上数据库 00051 c7 45 ec 00 00 00 00 mov DWORD PTR _i$8[ebp], 0 00058 eb 09 jmp SHORT $LN4@ConnectSQL $LN2@ConnectSQL: 0005a 8b 45 ec mov eax, DWORD PTR _i$8[ebp] 0005d 83 c0 01 add eax, 1 00060 89 45 ec mov DWORD PTR _i$8[ebp], eax $LN4@ConnectSQL: 00063 83 7d ec 03 cmp DWORD PTR _i$8[ebp], 3 00067 0f 8d 0c 01 00 00 jge $LN3@ConnectSQL ; 139 : { ; 140 : pSql->adoConnection.SetConnectTimeOut(m_lConnectionTimeout); 0006d 8b 45 08 mov eax, DWORD PTR _pSql$[ebp] 00070 83 c0 08 add eax, 8 00073 89 45 90 mov DWORD PTR tv77[ebp], eax 00076 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00079 8b 51 2c mov edx, DWORD PTR [ecx+44] 0007c 52 push edx 0007d 8b 4d 90 mov ecx, DWORD PTR tv77[ebp] 00080 e8 00 00 00 00 call ?SetConnectTimeOut@CAdoConnection@@QAEHJ@Z ; CAdoConnection::SetConnectTimeOut ; 141 : BOOL b = pSql->adoConnection.ConnectSQLServer2(m_strSQL_IP,m_strSQL_DB,m_strSQL_User,m_strSQL_Passwd,m_strSQL_Provider); 00085 8b 45 08 mov eax, DWORD PTR _pSql$[ebp] 00088 83 c0 08 add eax, 8 0008b 89 45 90 mov DWORD PTR tv184[ebp], eax 0008e 6a ff push -1 00090 51 push ecx 00091 8b cc mov ecx, esp 00093 89 65 a4 mov DWORD PTR $T6[ebp], esp 00096 8b 55 f0 mov edx, DWORD PTR _this$[ebp] 00099 83 c2 44 add edx, 68 ; 00000044H 0009c 52 push edx 0009d e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT > >::CStringT > > 000a2 89 45 8c mov DWORD PTR tv214[ebp], eax 000a5 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 000ac 51 push ecx 000ad 8b cc mov ecx, esp 000af 89 65 a0 mov DWORD PTR $T5[ebp], esp 000b2 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 000b5 83 c0 3c add eax, 60 ; 0000003cH 000b8 50 push eax 000b9 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT > >::CStringT > > 000be 89 45 88 mov DWORD PTR tv215[ebp], eax 000c1 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+8], 1 000c5 51 push ecx 000c6 8b cc mov ecx, esp 000c8 89 65 9c mov DWORD PTR $T4[ebp], esp 000cb 8b 55 f0 mov edx, DWORD PTR _this$[ebp] 000ce 83 c2 38 add edx, 56 ; 00000038H 000d1 52 push edx 000d2 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT > >::CStringT > > 000d7 89 45 84 mov DWORD PTR tv216[ebp], eax 000da c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+8], 2 000de 51 push ecx 000df 8b cc mov ecx, esp 000e1 89 65 98 mov DWORD PTR $T3[ebp], esp 000e4 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 000e7 83 c0 40 add eax, 64 ; 00000040H 000ea 50 push eax 000eb e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT > >::CStringT > > 000f0 89 45 80 mov DWORD PTR tv217[ebp], eax 000f3 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+8], 3 000f7 51 push ecx 000f8 8b cc mov ecx, esp 000fa 89 65 94 mov DWORD PTR $T2[ebp], esp 000fd 8b 55 f0 mov edx, DWORD PTR _this$[ebp] 00100 83 c2 34 add edx, 52 ; 00000034H 00103 52 push edx 00104 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT > >::CStringT > > 00109 89 85 7c ff ff ff mov DWORD PTR tv218[ebp], eax 0010f c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+8], 4 00113 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 0011a 8b 4d 90 mov ecx, DWORD PTR tv184[ebp] 0011d e8 00 00 00 00 call ?ConnectSQLServer2@CAdoConnection@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000J@Z ; CAdoConnection::ConnectSQLServer2 00122 89 85 78 ff ff ff mov DWORD PTR tv79[ebp], eax 00128 8b 85 78 ff ff ff mov eax, DWORD PTR tv79[ebp] 0012e 89 45 e8 mov DWORD PTR _b$7[ebp], eax ; 142 : if ( b ) 00131 83 7d e8 00 cmp DWORD PTR _b$7[ebp], 0 00135 74 32 je SHORT $LN7@ConnectSQL ; 143 : { ; 144 : pSql->adoConnection.SetCommandTimeout(m_lCommandTimeoutTimeout); //设置连接超时时间 00137 8b 45 08 mov eax, DWORD PTR _pSql$[ebp] 0013a 83 c0 08 add eax, 8 0013d 89 45 90 mov DWORD PTR tv193[ebp], eax 00140 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00143 8b 51 30 mov edx, DWORD PTR [ecx+48] 00146 52 push edx 00147 8b 4d 90 mov ecx, DWORD PTR tv193[ebp] 0014a e8 00 00 00 00 call ?SetCommandTimeout@CAdoConnection@@QAEHJ@Z ; CAdoConnection::SetCommandTimeout ; 145 : pSql->adoConnection.SetCursorLocation(adUseClient); //设置为本地游标类型 0014f 8b 45 08 mov eax, DWORD PTR _pSql$[ebp] 00152 83 c0 08 add eax, 8 00155 89 45 90 mov DWORD PTR tv197[ebp], eax 00158 6a 03 push 3 0015a 8b 4d 90 mov ecx, DWORD PTR tv197[ebp] 0015d e8 00 00 00 00 call ?SetCursorLocation@CAdoConnection@@QAEXW4CursorLocationEnum@ADODB@@@Z ; CAdoConnection::SetCursorLocation ; 146 : return true; 00162 b8 01 00 00 00 mov eax, 1 00167 eb 12 jmp SHORT $LN1@ConnectSQL $LN7@ConnectSQL: ; 147 : } ; 148 : Sleep(2000); 00169 68 d0 07 00 00 push 2000 ; 000007d0H 0016e ff 15 00 00 00 00 call DWORD PTR __imp__Sleep@4 ; 149 : } 00174 e9 e1 fe ff ff jmp $LN2@ConnectSQL $LN3@ConnectSQL: ; 150 : ; 151 : return false; 00179 33 c0 xor eax, eax $LN1@ConnectSQL: ; 152 : } 0017b 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0017e 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00185 59 pop ecx 00186 5f pop edi 00187 5e pop esi 00188 5b pop ebx 00189 8b e5 mov esp, ebp 0018b 5d pop ebp 0018c c2 04 00 ret 4 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$0: 00000 8b 4d a4 mov ecx, DWORD PTR $T6[ebp] 00003 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$1: 00008 8b 4d a0 mov ecx, DWORD PTR $T5[ebp] 0000b e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$2: 00010 8b 4d 9c mov ecx, DWORD PTR $T4[ebp] 00013 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$3: 00018 8b 4d 98 mov ecx, DWORD PTR $T3[ebp] 0001b e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z$4: 00020 8b 4d 94 mov ecx, DWORD PTR $T2[ebp] 00023 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00028 cc int 3 00029 cc int 3 0002a cc int 3 0002b cc int 3 0002c cc int 3 __ehhandler$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z: 0002d 90 npad 1 0002e 90 npad 1 0002f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00033 8d 42 0c lea eax, DWORD PTR [edx+12] 00036 8b 8a 74 ff ff ff mov ecx, DWORD PTR [edx-140] 0003c 33 c8 xor ecx, eax 0003e e8 00 00 00 00 call @__security_check_cookie@4 00043 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z 00048 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?ConnectSQLServer@CSqlPool@@QAEHPAU_SQL_Pool@@@Z ENDP ; CSqlPool::ConnectSQLServer ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?Release@CSqlPool@@QAEHXZ _TEXT SEGMENT tv65 = -6628 ; size = 4 tv92 = -6624 ; size = 4 tv89 = -6624 ; size = 4 $T2 = -6620 ; size = 4 $T3 = -6616 ; size = 4 $T4 = -6612 ; size = 4 _NXlog$5 = -6096 ; size = 6056 _i$6 = -40 ; size = 4 _cl$7 = -36 ; size = 12 _this$ = -24 ; size = 4 __$ArrayPad$ = -20 ; size = 4 __$EHRec$ = -16 ; size = 16 ?Release@CSqlPool@@QAEHXZ PROC ; CSqlPool::Release, COMDAT ; _this$ = ecx ; 60 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?Release@CSqlPool@@QAEHXZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 51 push ecx 00012 b8 d4 19 00 00 mov eax, 6612 ; 000019d4H 00017 e8 00 00 00 00 call __chkstk 0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 00021 33 c5 xor eax, ebp 00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax 00026 53 push ebx 00027 56 push esi 00028 57 push edi 00029 50 push eax 0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4] 0002d 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp 00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx ; 61 : try 00039 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+12], 0 ; 62 : { ; 63 : CSingleLock cl(&m_Lock,true); 00040 6a 01 push 1 00042 8b 45 e8 mov eax, DWORD PTR _this$[ebp] 00045 83 c0 04 add eax, 4 00048 50 push eax 00049 8d 4d dc lea ecx, DWORD PTR _cl$7[ebp] 0004c e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock 00051 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1 ; 64 : if ( m_pSQL ) 00055 8b 45 e8 mov eax, DWORD PTR _this$[ebp] 00058 83 78 24 00 cmp DWORD PTR [eax+36], 0 0005c 74 70 je SHORT $LN6@Release ; 65 : { ; 66 : for (int i=0 ; i > >::CStringT > > 00101 89 85 20 e6 ff ff mov DWORD PTR tv92[ebp], eax 00107 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4 0010b 51 push ecx 0010c 8b cc mov ecx, esp 0010e 89 a5 24 e6 ff ff mov DWORD PTR $T2[ebp], esp 00114 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ 00119 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT > >::CStringT > > 0011e 89 85 1c e6 ff ff mov DWORD PTR tv65[ebp], eax 00124 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5 00128 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3 0012c 8d 8d 30 e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 00132 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init 00137 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??Release@CSqlPool@@QAEHXZ@4JA 0013c 83 c0 15 add eax, 21 ; 00000015H 0013f 50 push eax 00140 68 00 00 00 00 push OFFSET ??_C@_07LHBDFJPO@Release@ 00145 68 00 00 00 00 push OFFSET ??_C@_0DB@INEHLJGG@D?3?2Works?2Corpsms_2010?2public?2Sq@ 0014a 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@ 0014f 8d 8d 30 e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 00155 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError 0015a c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2 0015e 8d 8d 30 e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 00164 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog ; 82 : } 00169 b8 00 00 00 00 mov eax, $LN17@Release 0016e c3 ret 0 $LN10@Release: 0016f c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+12], -1 00176 eb 07 jmp SHORT __tryend$?Release@CSqlPool@@QAEHXZ$1 $LN17@Release: 00178 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+12], -1 __tryend$?Release@CSqlPool@@QAEHXZ$1: ; 83 : return false; 0017f 33 c0 xor eax, eax ; 84 : } 00181 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4] 00184 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0018b 59 pop ecx 0018c 5f pop edi 0018d 5e pop esi 0018e 5b pop ebx 0018f 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp] 00192 33 cd xor ecx, ebp 00194 e8 00 00 00 00 call @__security_check_cookie@4 00199 8b e5 mov esp, ebp 0019b 5d pop ebp 0019c c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$?Release@CSqlPool@@QAEHXZ$2: 00000 8d 4d dc lea ecx, DWORD PTR _cl$7[ebp] 00003 e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock __unwindfunclet$?Release@CSqlPool@@QAEHXZ$3: 00008 8d 8d 30 e8 ff ff lea ecx, DWORD PTR _NXlog$5[ebp] 0000e e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog __unwindfunclet$?Release@CSqlPool@@QAEHXZ$4: 00013 8b 8d 28 e6 ff ff mov ecx, DWORD PTR $T3[ebp] 00019 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Release@CSqlPool@@QAEHXZ$5: 0001e 8b 8d 24 e6 ff ff mov ecx, DWORD PTR $T2[ebp] 00024 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 00029 cc int 3 0002a cc int 3 0002b cc int 3 0002c cc int 3 0002d cc int 3 __ehhandler$?Release@CSqlPool@@QAEHXZ: 0002e 90 npad 1 0002f 90 npad 1 00030 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00034 8d 42 0c lea eax, DWORD PTR [edx+12] 00037 8b 8a 18 e6 ff ff mov ecx, DWORD PTR [edx-6632] 0003d 33 c8 xor ecx, eax 0003f e8 00 00 00 00 call @__security_check_cookie@4 00044 8b 4a f8 mov ecx, DWORD PTR [edx-8] 00047 33 c8 xor ecx, eax 00049 e8 00 00 00 00 call @__security_check_cookie@4 0004e b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Release@CSqlPool@@QAEHXZ 00053 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?Release@CSqlPool@@QAEHXZ ENDP ; CSqlPool::Release ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z _TEXT SEGMENT tv243 = -6632 ; size = 4 tv175 = -6628 ; size = 4 tv155 = -6628 ; size = 4 $T2 = -6624 ; size = 4 $T3 = -6620 ; size = 4 $T4 = -6616 ; size = 4 $T5 = -6612 ; size = 4 $T6 = -6608 ; size = 4 $T7 = -6604 ; size = 4 $T8 = -6600 ; size = 4 _NXlog$9 = -6084 ; size = 6056 _i$10 = -28 ; size = 4 _this$ = -24 ; size = 4 __$ArrayPad$ = -20 ; size = 4 __$EHRec$ = -16 ; size = 16 _lSQLConnect$ = 8 ; size = 4 _strSQL_IP$ = 12 ; size = 4 _strSQL_User$ = 16 ; size = 4 _strSQL_Passwd$ = 20 ; size = 4 _strSQL_DB$ = 24 ; size = 4 _strSQL_Provider$ = 28 ; size = 4 ?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z PROC ; CSqlPool::Init, COMDAT ; _this$ = ecx ; 31 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 51 push ecx 00012 b8 d8 19 00 00 mov eax, 6616 ; 000019d8H 00017 e8 00 00 00 00 call __chkstk 0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 00021 33 c5 xor eax, ebp 00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax 00026 53 push ebx 00027 56 push esi 00028 57 push edi 00029 50 push eax 0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4] 0002d 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp 00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx 00039 c7 45 fc 04 00 00 00 mov DWORD PTR __$EHRec$[ebp+12], 4 ; 32 : try 00040 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5 ; 33 : { ; 34 : m_lSQLCount = lSQLConnect; 00044 8b 45 e8 mov eax, DWORD PTR _this$[ebp] 00047 8b 4d 08 mov ecx, DWORD PTR _lSQLConnect$[ebp] 0004a 89 48 28 mov DWORD PTR [eax+40], ecx ; 35 : m_strSQL_IP = strSQL_IP; 0004d 8d 45 0c lea eax, DWORD PTR _strSQL_IP$[ebp] 00050 50 push eax 00051 8b 4d e8 mov ecx, DWORD PTR _this$[ebp] 00054 83 c1 34 add ecx, 52 ; 00000034H 00057 e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CStringT > >::operator= ; 36 : m_strSQL_User = strSQL_User; 0005c 8d 45 10 lea eax, DWORD PTR _strSQL_User$[ebp] 0005f 50 push eax 00060 8b 4d e8 mov ecx, DWORD PTR _this$[ebp] 00063 83 c1 38 add ecx, 56 ; 00000038H 00066 e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CStringT > >::operator= ; 37 : m_strSQL_Passwd = strSQL_Passwd; 0006b 8d 45 14 lea eax, DWORD PTR _strSQL_Passwd$[ebp] 0006e 50 push eax 0006f 8b 4d e8 mov ecx, DWORD PTR _this$[ebp] 00072 83 c1 3c add ecx, 60 ; 0000003cH 00075 e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CStringT > >::operator= ; 38 : m_strSQL_DB = strSQL_DB; 0007a 8d 45 18 lea eax, DWORD PTR _strSQL_DB$[ebp] 0007d 50 push eax 0007e 8b 4d e8 mov ecx, DWORD PTR _this$[ebp] 00081 83 c1 40 add ecx, 64 ; 00000040H 00084 e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CStringT > >::operator= ; 39 : m_strSQL_Provider = strSQL_Provider; 00089 8d 45 1c lea eax, DWORD PTR _strSQL_Provider$[ebp] 0008c 50 push eax 0008d 8b 4d e8 mov ecx, DWORD PTR _this$[ebp] 00090 83 c1 44 add ecx, 68 ; 00000044H 00093 e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CStringT > >::operator= ; 40 : ; 41 : m_pSQL = new SQL_Pool[m_lSQLCount]; 00098 8b 45 e8 mov eax, DWORD PTR _this$[ebp] 0009b 8b 48 28 mov ecx, DWORD PTR [eax+40] 0009e 89 8d 38 e6 ff ff mov DWORD PTR $T8[ebp], ecx 000a4 33 c9 xor ecx, ecx 000a6 8b 85 38 e6 ff ff mov eax, DWORD PTR $T8[ebp] 000ac ba 2c 00 00 00 mov edx, 44 ; 0000002cH 000b1 f7 e2 mul edx 000b3 0f 90 c1 seto cl 000b6 f7 d9 neg ecx 000b8 0b c8 or ecx, eax 000ba 33 c0 xor eax, eax 000bc 83 c1 04 add ecx, 4 000bf 0f 92 c0 setb al 000c2 f7 d8 neg eax 000c4 0b c1 or eax, ecx 000c6 50 push eax 000c7 e8 00 00 00 00 call ??_U@YAPAXI@Z ; operator new[] 000cc 83 c4 04 add esp, 4 000cf 89 85 30 e6 ff ff mov DWORD PTR $T6[ebp], eax 000d5 c6 45 fc 06 mov BYTE PTR __$EHRec$[ebp+12], 6 000d9 83 bd 30 e6 ff ff 00 cmp DWORD PTR $T6[ebp], 0 000e0 74 41 je SHORT $LN7@Init 000e2 8b 8d 30 e6 ff ff mov ecx, DWORD PTR $T6[ebp] 000e8 8b 95 38 e6 ff ff mov edx, DWORD PTR $T8[ebp] 000ee 89 11 mov DWORD PTR [ecx], edx 000f0 68 00 00 00 00 push OFFSET ??1_SQL_Pool@@QAE@XZ 000f5 68 00 00 00 00 push OFFSET ??0_SQL_Pool@@QAE@XZ 000fa 8b 85 38 e6 ff ff mov eax, DWORD PTR $T8[ebp] 00100 50 push eax 00101 6a 2c push 44 ; 0000002cH 00103 8b 8d 30 e6 ff ff mov ecx, DWORD PTR $T6[ebp] 00109 83 c1 04 add ecx, 4 0010c 51 push ecx 0010d e8 00 00 00 00 call ??_L@YGXPAXIIP6EX0@Z1@Z 00112 8b 95 30 e6 ff ff mov edx, DWORD PTR $T6[ebp] 00118 83 c2 04 add edx, 4 0011b 89 95 1c e6 ff ff mov DWORD PTR tv155[ebp], edx 00121 eb 0a jmp SHORT $LN8@Init $LN7@Init: 00123 c7 85 1c e6 ff ff 00 00 00 00 mov DWORD PTR tv155[ebp], 0 $LN8@Init: 0012d 8b 85 1c e6 ff ff mov eax, DWORD PTR tv155[ebp] 00133 89 85 34 e6 ff ff mov DWORD PTR $T7[ebp], eax 00139 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5 0013d 8b 4d e8 mov ecx, DWORD PTR _this$[ebp] 00140 8b 95 34 e6 ff ff mov edx, DWORD PTR $T7[ebp] 00146 89 51 24 mov DWORD PTR [ecx+36], edx ; 42 : for ( int i=0 ; i > >::~CStringT > > 001c5 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2 001c9 8d 4d 10 lea ecx, DWORD PTR _strSQL_User$[ebp] 001cc e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 001d1 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1 001d5 8d 4d 14 lea ecx, DWORD PTR _strSQL_Passwd$[ebp] 001d8 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 001dd c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0 001e1 8d 4d 18 lea ecx, DWORD PTR _strSQL_DB$[ebp] 001e4 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 001e9 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+12], -1 001f0 8d 4d 1c lea ecx, DWORD PTR _strSQL_Provider$[ebp] 001f3 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 001f8 8b 85 2c e6 ff ff mov eax, DWORD PTR $T5[ebp] 001fe e9 ef 00 00 00 jmp $LN1@Init __catch$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$0: ; 51 : } ; 52 : catch(...) ; 53 : { ; 54 : LOG_APPERROR(_T("T")); 00203 8d 8d 3c e8 ff ff lea ecx, DWORD PTR _NXlog$9[ebp] 00209 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog 0020e c6 45 fc 08 mov BYTE PTR __$EHRec$[ebp+12], 8 00212 51 push ecx 00213 8b cc mov ecx, esp 00215 89 a5 28 e6 ff ff mov DWORD PTR $T4[ebp], esp 0021b 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@ 00220 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT > >::CStringT > > 00225 89 85 1c e6 ff ff mov DWORD PTR tv175[ebp], eax 0022b c6 45 fc 09 mov BYTE PTR __$EHRec$[ebp+12], 9 0022f 51 push ecx 00230 8b cc mov ecx, esp 00232 89 a5 24 e6 ff ff mov DWORD PTR $T3[ebp], esp 00238 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ 0023d e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT > >::CStringT > > 00242 89 85 18 e6 ff ff mov DWORD PTR tv243[ebp], eax 00248 c6 45 fc 0a mov BYTE PTR __$EHRec$[ebp+12], 10 ; 0000000aH 0024c c6 45 fc 08 mov BYTE PTR __$EHRec$[ebp+12], 8 00250 8d 8d 3c e8 ff ff lea ecx, DWORD PTR _NXlog$9[ebp] 00256 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init 0025b a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z@4JA 00260 83 c0 17 add eax, 23 ; 00000017H 00263 50 push eax 00264 68 00 00 00 00 push OFFSET ??_C@_04LLJCPOLH@Init@ 00269 68 00 00 00 00 push OFFSET ??_C@_0DB@INEHLJGG@D?3?2Works?2Corpsms_2010?2public?2Sq@ 0026e 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@ 00273 8d 8d 3c e8 ff ff lea ecx, DWORD PTR _NXlog$9[ebp] 00279 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError 0027e c6 45 fc 07 mov BYTE PTR __$EHRec$[ebp+12], 7 00282 8d 8d 3c e8 ff ff lea ecx, DWORD PTR _NXlog$9[ebp] 00288 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog ; 55 : ; 56 : } 0028d b8 00 00 00 00 mov eax, $LN21@Init 00292 c3 ret 0 00293 c7 45 fc 04 00 00 00 mov DWORD PTR __$EHRec$[ebp+12], 4 0029a eb 07 jmp SHORT __tryend$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$1 $LN21@Init: 0029c c7 45 fc 04 00 00 00 mov DWORD PTR __$EHRec$[ebp+12], 4 __tryend$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$1: ; 57 : return false; 002a3 c7 85 20 e6 ff ff 00 00 00 00 mov DWORD PTR $T2[ebp], 0 002ad c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3 002b1 8d 4d 0c lea ecx, DWORD PTR _strSQL_IP$[ebp] 002b4 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 002b9 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2 002bd 8d 4d 10 lea ecx, DWORD PTR _strSQL_User$[ebp] 002c0 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 002c5 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1 002c9 8d 4d 14 lea ecx, DWORD PTR _strSQL_Passwd$[ebp] 002cc e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 002d1 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0 002d5 8d 4d 18 lea ecx, DWORD PTR _strSQL_DB$[ebp] 002d8 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 002dd c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+12], -1 002e4 8d 4d 1c lea ecx, DWORD PTR _strSQL_Provider$[ebp] 002e7 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 002ec 8b 85 20 e6 ff ff mov eax, DWORD PTR $T2[ebp] $LN1@Init: ; 58 : } 002f2 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4] 002f5 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 002fc 59 pop ecx 002fd 5f pop edi 002fe 5e pop esi 002ff 5b pop ebx 00300 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp] 00303 33 cd xor ecx, ebp 00305 e8 00 00 00 00 call @__security_check_cookie@4 0030a 8b e5 mov esp, ebp 0030c 5d pop ebp 0030d c2 18 00 ret 24 ; 00000018H _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$2: 00000 8d 4d 1c lea ecx, DWORD PTR _strSQL_Provider$[ebp] 00003 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$3: 00008 8d 4d 18 lea ecx, DWORD PTR _strSQL_DB$[ebp] 0000b e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$4: 00010 8d 4d 14 lea ecx, DWORD PTR _strSQL_Passwd$[ebp] 00013 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$5: 00018 8d 4d 10 lea ecx, DWORD PTR _strSQL_User$[ebp] 0001b e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$6: 00020 8d 4d 0c lea ecx, DWORD PTR _strSQL_IP$[ebp] 00023 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$7: 00028 33 db xor ebx, ebx 0002a 8b 85 38 e6 ff ff mov eax, DWORD PTR $T8[ebp] 00030 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH 00035 f7 e1 mul ecx 00037 0f 90 c3 seto bl 0003a f7 db neg ebx 0003c 0b d8 or ebx, eax 0003e 33 c0 xor eax, eax 00040 83 c3 04 add ebx, 4 00043 0f 92 c0 setb al 00046 f7 d8 neg eax 00048 0b c3 or eax, ebx 0004a 50 push eax 0004b 8b 85 30 e6 ff ff mov eax, DWORD PTR $T6[ebp] 00051 50 push eax 00052 e8 00 00 00 00 call ??_V@YAXPAXI@Z ; operator delete[] 00057 83 c4 08 add esp, 8 0005a c3 ret 0 __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$8: 0005b 8d 8d 3c e8 ff ff lea ecx, DWORD PTR _NXlog$9[ebp] 00061 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$9: 00066 8b 8d 28 e6 ff ff mov ecx, DWORD PTR $T4[ebp] 0006c e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > __unwindfunclet$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z$10: 00071 8b 8d 24 e6 ff ff mov ecx, DWORD PTR $T3[ebp] 00077 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT > >::~CStringT > > 0007c cc int 3 0007d cc int 3 0007e cc int 3 0007f cc int 3 00080 cc int 3 __ehhandler$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z: 00081 90 npad 1 00082 90 npad 1 00083 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00087 8d 42 0c lea eax, DWORD PTR [edx+12] 0008a 8b 8a 14 e6 ff ff mov ecx, DWORD PTR [edx-6636] 00090 33 c8 xor ecx, eax 00092 e8 00 00 00 00 call @__security_check_cookie@4 00097 8b 4a f8 mov ecx, DWORD PTR [edx-8] 0009a 33 c8 xor ecx, eax 0009c e8 00 00 00 00 call @__security_check_cookie@4 000a1 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z 000a6 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?Init@CSqlPool@@QAEHJV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0000@Z ENDP ; CSqlPool::Init ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?SetTimeOut@CSqlPool@@QAEXJJ@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _lConnectionTimeout$ = 8 ; size = 4 _lCommandTimeoutTimeout$ = 12 ; size = 4 ?SetTimeOut@CSqlPool@@QAEXJJ@Z PROC ; CSqlPool::SetTimeOut, COMDAT ; _this$ = ecx ; 155 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 156 : m_lConnectionTimeout = lConnectionTimeout; 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 8b 4d 08 mov ecx, DWORD PTR _lConnectionTimeout$[ebp] 00012 89 48 2c mov DWORD PTR [eax+44], ecx ; 157 : m_lCommandTimeoutTimeout=lCommandTimeoutTimeout; 00015 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00018 8b 4d 0c mov ecx, DWORD PTR _lCommandTimeoutTimeout$[ebp] 0001b 89 48 30 mov DWORD PTR [eax+48], ecx ; 158 : } 0001e 5f pop edi 0001f 5e pop esi 00020 5b pop ebx 00021 8b e5 mov esp, ebp 00023 5d pop ebp 00024 c2 08 00 ret 8 ?SetTimeOut@CSqlPool@@QAEXJJ@Z ENDP ; CSqlPool::SetTimeOut _TEXT ENDS ; Function compile flags: /Odtp /ZI ; COMDAT ??_E_SQL_Pool@@QAEPAXI@Z _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ___flags$ = 8 ; size = 4 ??_E_SQL_Pool@@QAEPAXI@Z PROC ; _SQL_Pool::`vector deleting destructor', COMDAT ; _this$ = ecx 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??_E_SQL_Pool@@QAEPAXI@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b 8b 45 08 mov eax, DWORD PTR ___flags$[ebp] 0002e 83 e0 02 and eax, 2 00031 74 41 je SHORT $LN2@vector 00033 68 00 00 00 00 push OFFSET ??1_SQL_Pool@@QAE@XZ 00038 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0003b 8b 48 fc mov ecx, DWORD PTR [eax-4] 0003e 51 push ecx 0003f 6a 2c push 44 ; 0000002cH 00041 8b 55 f0 mov edx, DWORD PTR _this$[ebp] 00044 52 push edx 00045 e8 00 00 00 00 call ??_M@YGXPAXIIP6EX0@Z@Z 0004a 8b 45 08 mov eax, DWORD PTR ___flags$[ebp] 0004d 83 e0 01 and eax, 1 00050 74 1a je SHORT $LN3@vector 00052 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 00055 6b 48 fc 2c imul ecx, DWORD PTR [eax-4], 44 00059 83 c1 04 add ecx, 4 0005c 51 push ecx 0005d 8b 55 f0 mov edx, DWORD PTR _this$[ebp] 00060 83 ea 04 sub edx, 4 00063 52 push edx 00064 e8 00 00 00 00 call ??_V@YAXPAXI@Z ; operator delete[] 00069 83 c4 08 add esp, 8 $LN3@vector: 0006c 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0006f 83 e8 04 sub eax, 4 00072 eb 21 jmp SHORT $LN1@vector $LN2@vector: 00074 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00077 e8 00 00 00 00 call ??1_SQL_Pool@@QAE@XZ 0007c 8b 45 08 mov eax, DWORD PTR ___flags$[ebp] 0007f 83 e0 01 and eax, 1 00082 74 0e je SHORT $LN4@vector 00084 6a 2c push 44 ; 0000002cH 00086 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 00089 50 push eax 0008a e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete 0008f 83 c4 08 add esp, 8 $LN4@vector: 00092 8b 45 f0 mov eax, DWORD PTR _this$[ebp] $LN1@vector: 00095 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00098 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0009f 59 pop ecx 000a0 5f pop edi 000a1 5e pop esi 000a2 5b pop ebx 000a3 8b e5 mov esp, ebp 000a5 5d pop ebp 000a6 c2 04 00 ret 4 000a9 cc int 3 000aa cc int 3 000ab cc int 3 000ac cc int 3 000ad cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$??_E_SQL_Pool@@QAEPAXI@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a ac mov ecx, DWORD PTR [edx-84] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??_E_SQL_Pool@@QAEPAXI@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??_E_SQL_Pool@@QAEPAXI@Z ENDP ; _SQL_Pool::`vector deleting destructor' ; Function compile flags: /Odtp /ZI ; COMDAT ??1_SQL_Pool@@QAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??1_SQL_Pool@@QAE@XZ PROC ; _SQL_Pool::~_SQL_Pool, COMDAT ; _this$ = ecx 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??1_SQL_Pool@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 00032 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00039 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0003c 83 c1 08 add ecx, 8 0003f e8 00 00 00 00 call ??1CAdoConnection@@UAE@XZ ; CAdoConnection::~CAdoConnection 00044 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00047 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0004e 59 pop ecx 0004f 5f pop edi 00050 5e pop esi 00051 5b pop ebx 00052 8b e5 mov esp, ebp 00054 5d pop ebp 00055 c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??1_SQL_Pool@@QAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 83 c1 08 add ecx, 8 00006 e9 00 00 00 00 jmp ??1CAdoConnection@@UAE@XZ ; CAdoConnection::~CAdoConnection 0000b cc int 3 0000c cc int 3 0000d cc int 3 0000e cc int 3 0000f cc int 3 __ehhandler$??1_SQL_Pool@@QAE@XZ: 00010 90 npad 1 00011 90 npad 1 00012 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00016 8d 42 0c lea eax, DWORD PTR [edx+12] 00019 8b 4a ac mov ecx, DWORD PTR [edx-84] 0001c 33 c8 xor ecx, eax 0001e e8 00 00 00 00 call @__security_check_cookie@4 00023 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1_SQL_Pool@@QAE@XZ 00028 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??1_SQL_Pool@@QAE@XZ ENDP ; _SQL_Pool::~_SQL_Pool ; Function compile flags: /Odtp /ZI ; COMDAT ??0_SQL_Pool@@QAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??0_SQL_Pool@@QAE@XZ PROC ; _SQL_Pool::_SQL_Pool, COMDAT ; _this$ = ecx 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??0_SQL_Pool@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0002e 83 c1 08 add ecx, 8 00031 e8 00 00 00 00 call ??0CAdoConnection@@QAE@XZ ; CAdoConnection::CAdoConnection 00036 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 0003d c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00044 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 00047 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0004a 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00051 59 pop ecx 00052 5f pop edi 00053 5e pop esi 00054 5b pop ebx 00055 8b e5 mov esp, ebp 00057 5d pop ebp 00058 c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??0_SQL_Pool@@QAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 83 c1 08 add ecx, 8 00006 e9 00 00 00 00 jmp ??1CAdoConnection@@UAE@XZ ; CAdoConnection::~CAdoConnection 0000b cc int 3 0000c cc int 3 0000d cc int 3 0000e cc int 3 0000f cc int 3 __ehhandler$??0_SQL_Pool@@QAE@XZ: 00010 90 npad 1 00011 90 npad 1 00012 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00016 8d 42 0c lea eax, DWORD PTR [edx+12] 00019 8b 4a ac mov ecx, DWORD PTR [edx-84] 0001c 33 c8 xor ecx, eax 0001e e8 00 00 00 00 call @__security_check_cookie@4 00023 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0_SQL_Pool@@QAE@XZ 00028 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??0_SQL_Pool@@QAE@XZ ENDP ; _SQL_Pool::_SQL_Pool ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ??1CSingleLock@@QAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??1CSingleLock@@QAE@XZ PROC ; CSingleLock::~CSingleLock, COMDAT ; _this$ = ecx ; 63 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??1CSingleLock@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 64 : Unlock(); 0002b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0002e e8 00 00 00 00 call ?Unlock@CSingleLock@@QAEHXZ ; CSingleLock::Unlock ; 65 : } 00033 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00036 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0003d 59 pop ecx 0003e 5f pop edi 0003f 5e pop esi 00040 5b pop ebx 00041 8b e5 mov esp, ebp 00043 5d pop ebp 00044 c3 ret 0 00045 cc int 3 00046 cc int 3 00047 cc int 3 00048 cc int 3 00049 cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$??1CSingleLock@@QAE@XZ: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a ac mov ecx, DWORD PTR [edx-84] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1CSingleLock@@QAE@XZ 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??1CSingleLock@@QAE@XZ ENDP ; CSingleLock::~CSingleLock ; Function compile flags: /Odtp /ZI ; COMDAT ??_GCCriticalSection@@UAEPAXI@Z _TEXT SEGMENT _this$ = -4 ; size = 4 ___flags$ = 8 ; size = 4 ??_GCCriticalSection@@UAEPAXI@Z PROC ; CCriticalSection::`scalar deleting destructor', COMDAT ; _this$ = ecx 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ??1CCriticalSection@@UAE@XZ ; CCriticalSection::~CCriticalSection 00014 8b 45 08 mov eax, DWORD PTR ___flags$[ebp] 00017 83 e0 01 and eax, 1 0001a 74 23 je SHORT $LN2@scalar 0001c 8b 45 08 mov eax, DWORD PTR ___flags$[ebp] 0001f 83 e0 04 and eax, 4 00022 75 0d jne SHORT $LN3@scalar 00024 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00027 50 push eax 00028 e8 00 00 00 00 call ??3CObject@@SGXPAX@Z ; CObject::operator delete 0002d eb 10 jmp SHORT $LN2@scalar 0002f eb 0e jmp SHORT $LN2@scalar $LN3@scalar: 00031 6a 20 push 32 ; 00000020H 00033 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00036 50 push eax 00037 e8 00 00 00 00 call ?__global_delete@@YAXPAXI@Z ; __global_delete 0003c 83 c4 08 add esp, 8 $LN2@scalar: 0003f 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00042 5f pop edi 00043 5e pop esi 00044 5b pop ebx 00045 8b e5 mov esp, ebp 00047 5d pop ebp 00048 c2 04 00 ret 4 ??_GCCriticalSection@@UAEPAXI@Z ENDP ; CCriticalSection::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ?Init@CCriticalSection@@AAEJXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?Init@CCriticalSection@@AAEJXZ PROC ; CCriticalSection::Init, COMDAT ; _this$ = ecx ; 80 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 81 : if (!InitializeCriticalSectionAndSpinCount(&m_sect, 0)) 0000c 6a 00 push 0 0000e 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00011 83 c0 08 add eax, 8 00014 50 push eax 00015 ff 15 00 00 00 00 call DWORD PTR __imp__InitializeCriticalSectionAndSpinCount@8 0001b 85 c0 test eax, eax 0001d 75 11 jne SHORT $LN2@Init ; 82 : { ; 83 : return HRESULT_FROM_WIN32(GetLastError()); 0001f ff 15 00 00 00 00 call DWORD PTR __imp__GetLastError@0 00025 50 push eax 00026 e8 00 00 00 00 call _HRESULT_FROM_WIN32 0002b 83 c4 04 add esp, 4 0002e eb 02 jmp SHORT $LN1@Init $LN2@Init: ; 84 : } ; 85 : ; 86 : return S_OK; 00030 33 c0 xor eax, eax $LN1@Init: ; 87 : } 00032 5f pop edi 00033 5e pop esi 00034 5b pop ebx 00035 8b e5 mov esp, ebp 00037 5d pop ebp 00038 c3 ret 0 ?Init@CCriticalSection@@AAEJXZ ENDP ; CCriticalSection::Init _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ??1CCriticalSection@@UAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??1CCriticalSection@@UAE@XZ PROC ; CCriticalSection::~CCriticalSection, COMDAT ; _this$ = ecx ; 105 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??1CCriticalSection@@UAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0002e c7 00 00 00 00 00 mov DWORD PTR [eax], OFFSET ??_7CCriticalSection@@6B@ 00034 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 ; 106 : ::DeleteCriticalSection(&m_sect); 0003b 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0003e 83 c0 08 add eax, 8 00041 50 push eax 00042 ff 15 00 00 00 00 call DWORD PTR __imp__DeleteCriticalSection@4 ; 107 : } 00048 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 0004f 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00052 e8 00 00 00 00 call ??1CSyncObject@@UAE@XZ ; CSyncObject::~CSyncObject 00057 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0005a 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00061 59 pop ecx 00062 5f pop edi 00063 5e pop esi 00064 5b pop ebx 00065 8b e5 mov esp, ebp 00067 5d pop ebp 00068 c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??1CCriticalSection@@UAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 e9 00 00 00 00 jmp ??1CSyncObject@@UAE@XZ ; CSyncObject::~CSyncObject 00008 cc int 3 00009 cc int 3 0000a cc int 3 0000b cc int 3 0000c cc int 3 __ehhandler$??1CCriticalSection@@UAE@XZ: 0000d 90 npad 1 0000e 90 npad 1 0000f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00013 8d 42 0c lea eax, DWORD PTR [edx+12] 00016 8b 4a ac mov ecx, DWORD PTR [edx-84] 00019 33 c8 xor ecx, eax 0001b e8 00 00 00 00 call @__security_check_cookie@4 00020 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1CCriticalSection@@UAE@XZ 00025 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??1CCriticalSection@@UAE@XZ ENDP ; CCriticalSection::~CCriticalSection ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ?Lock@CCriticalSection@@UAEHK@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _dwTimeout$ = 8 ; size = 4 ?Lock@CCriticalSection@@UAEHK@Z PROC ; CCriticalSection::Lock, COMDAT ; _this$ = ecx ; 117 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 118 : ASSERT(dwTimeout == INFINITE); ; 119 : (void)dwTimeout; ; 120 : ; 121 : return Lock(); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?Lock@CCriticalSection@@QAEHXZ ; CCriticalSection::Lock ; 122 : } 00014 5f pop edi 00015 5e pop esi 00016 5b pop ebx 00017 8b e5 mov esp, ebp 00019 5d pop ebp 0001a c2 04 00 ret 4 ?Lock@CCriticalSection@@UAEHK@Z ENDP ; CCriticalSection::Lock _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ?Lock@CCriticalSection@@QAEHXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?Lock@CCriticalSection@@QAEHXZ PROC ; CCriticalSection::Lock, COMDAT ; _this$ = ecx ; 110 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 111 : ::EnterCriticalSection(&m_sect); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 c0 08 add eax, 8 00012 50 push eax 00013 ff 15 00 00 00 00 call DWORD PTR __imp__EnterCriticalSection@4 ; 112 : ; 113 : return TRUE; 00019 b8 01 00 00 00 mov eax, 1 ; 114 : } 0001e 5f pop edi 0001f 5e pop esi 00020 5b pop ebx 00021 8b e5 mov esp, ebp 00023 5d pop ebp 00024 c3 ret 0 ?Lock@CCriticalSection@@QAEHXZ ENDP ; CCriticalSection::Lock _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ?Unlock@CCriticalSection@@UAEHXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?Unlock@CCriticalSection@@UAEHXZ PROC ; CCriticalSection::Unlock, COMDAT ; _this$ = ecx ; 125 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 126 : ::LeaveCriticalSection(&m_sect); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 c0 08 add eax, 8 00012 50 push eax 00013 ff 15 00 00 00 00 call DWORD PTR __imp__LeaveCriticalSection@4 ; 127 : ; 128 : return TRUE; 00019 b8 01 00 00 00 mov eax, 1 ; 129 : } 0001e 5f pop edi 0001f 5e pop esi 00020 5b pop ebx 00021 8b e5 mov esp, ebp 00023 5d pop ebp 00024 c3 ret 0 ?Unlock@CCriticalSection@@UAEHXZ ENDP ; CCriticalSection::Unlock _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.inl ; COMDAT ??0CCriticalSection@@QAE@XZ _TEXT SEGMENT _hr$ = -20 ; size = 4 _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??0CCriticalSection@@QAE@XZ PROC ; CCriticalSection::CCriticalSection, COMDAT ; _this$ = ecx ; 90 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??0CCriticalSection@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 48 sub esp, 72 ; 00000048H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 89 : _AFXMT_INLINE ::CCriticalSection::CCriticalSection() : CSyncObject(NULL) 0002b 6a 00 push 0 0002d 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00030 e8 00 00 00 00 call ??0CSyncObject@@QAE@PB_W@Z ; CSyncObject::CSyncObject 00035 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 ; 90 : { 0003c 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0003f c7 00 00 00 00 00 mov DWORD PTR [eax], OFFSET ??_7CCriticalSection@@6B@ ; 91 : HRESULT hr = Init(); 00045 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00048 e8 00 00 00 00 call ?Init@CCriticalSection@@AAEJXZ ; CCriticalSection::Init 0004d 89 45 ec mov DWORD PTR _hr$[ebp], eax ; 92 : ; 93 : if (FAILED(hr)) 00050 83 7d ec 00 cmp DWORD PTR _hr$[ebp], 0 00054 7d 09 jge SHORT $LN1@CCriticalS ; 94 : { ; 95 : AtlThrow(hr); 00056 8b 45 ec mov eax, DWORD PTR _hr$[ebp] 00059 50 push eax 0005a e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl $LN1@CCriticalS: ; 96 : } ; 97 : } 0005f c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00066 8b 45 f0 mov eax, DWORD PTR _this$[ebp] $LN3@CCriticalS: 00069 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0006c 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00073 59 pop ecx 00074 5f pop edi 00075 5e pop esi 00076 5b pop ebx 00077 8b e5 mov esp, ebp 00079 5d pop ebp 0007a c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??0CCriticalSection@@QAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 e9 00 00 00 00 jmp ??1CSyncObject@@UAE@XZ ; CSyncObject::~CSyncObject 00008 cc int 3 00009 cc int 3 0000a cc int 3 0000b cc int 3 0000c cc int 3 __ehhandler$??0CCriticalSection@@QAE@XZ: 0000d 90 npad 1 0000e 90 npad 1 0000f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00013 8d 42 0c lea eax, DWORD PTR [edx+12] 00016 8b 4a a8 mov ecx, DWORD PTR [edx-88] 00019 33 c8 xor ecx, eax 0001b e8 00 00 00 00 call @__security_check_cookie@4 00020 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0CCriticalSection@@QAE@XZ 00025 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??0CCriticalSection@@QAE@XZ ENDP ; CCriticalSection::CCriticalSection ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxmt.h ; COMDAT ?Unlock@CSyncObject@@UAEHJPAJ@Z _TEXT SEGMENT _this$ = -4 ; size = 4 ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?Unlock@CSyncObject@@UAEHJPAJ@Z PROC ; CSyncObject::Unlock, COMDAT ; _this$ = ecx ; 66 : { return TRUE; } 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx 0000c b8 01 00 00 00 mov eax, 1 00011 5f pop edi 00012 5e pop esi 00013 5b pop ebx 00014 8b e5 mov esp, ebp 00016 5d pop ebp 00017 c2 08 00 ret 8 ?Unlock@CSyncObject@@UAEHJPAJ@Z ENDP ; CSyncObject::Unlock _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxstr.h ; COMDAT ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ _TEXT SEGMENT __$EHRec$ = -12 ; size = 12 ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ PROC ; StrTraitMFC >::GetDefaultManager, COMDAT ; 51 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 40 sub esp, 64 ; 00000040H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 52 : return( AfxGetStringManager() ); 00028 e8 00 00 00 00 call ?AfxGetStringManager@@YGPAUIAtlStringMgr@ATL@@XZ ; AfxGetStringManager ; 53 : } 0002d 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00030 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00037 59 pop ecx 00038 5f pop edi 00039 5e pop esi 0003a 5b pop ebx 0003b 8b e5 mov esp, ebp 0003d 5d pop ebp 0003e c3 ret 0 0003f cc int 3 00040 cc int 3 00041 cc int 3 00042 cc int 3 00043 cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a b0 mov ecx, DWORD PTR [edx-80] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ ENDP ; StrTraitMFC >::GetDefaultManager ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxstr.h ; COMDAT ?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z _TEXT SEGMENT __$EHRec$ = -12 ; size = 12 _nID$ = 8 ; size = 4 ?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z PROC ; StrTraitMFC >::FindStringResourceInstance, COMDAT ; 46 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 40 sub esp, 64 ; 00000040H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 47 : return( AfxFindStringResourceHandle( nID ) ); 00028 8b 45 08 mov eax, DWORD PTR _nID$[ebp] 0002b 50 push eax 0002c e8 00 00 00 00 call ?AfxFindStringResourceHandle@@YGPAUHINSTANCE__@@I@Z ; AfxFindStringResourceHandle ; 48 : } 00031 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00034 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0003b 59 pop ecx 0003c 5f pop edi 0003d 5e pop esi 0003e 5b pop ebx 0003f 8b e5 mov esp, ebp 00041 5d pop ebp 00042 c3 ret 0 00043 cc int 3 00044 cc int 3 00045 cc int 3 00046 cc int 3 00047 cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a b0 mov ecx, DWORD PTR [edx-80] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z ENDP ; StrTraitMFC >::FindStringResourceInstance ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z _TEXT SEGMENT _nID$1 = -12 ; size = 4 _bRet$ = -5 ; size = 1 _this$ = -4 ; size = 4 _pv$ = 8 ; size = 4 ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z PROC ; ATL::CStringT > >::CheckImplicitLoad, COMDAT ; _this$ = ecx ; 2705 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 2706 : bool bRet = false; 0000c c6 45 fb 00 mov BYTE PTR _bRet$[ebp], 0 ; 2707 : ; 2708 : if( (pv != NULL) && IS_INTRESOURCE( pv ) ) 00010 83 7d 08 00 cmp DWORD PTR _pv$[ebp], 0 00014 74 28 je SHORT $LN2@CheckImpli 00016 8b 45 08 mov eax, DWORD PTR _pv$[ebp] 00019 c1 e8 10 shr eax, 16 ; 00000010H 0001c 85 c0 test eax, eax 0001e 75 1e jne SHORT $LN2@CheckImpli ; 2709 : { ; 2710 : UINT nID = LOWORD( reinterpret_cast< DWORD_PTR >( pv ) ); 00020 8b 45 08 mov eax, DWORD PTR _pv$[ebp] 00023 25 ff ff 00 00 and eax, 65535 ; 0000ffffH 00028 0f b7 c8 movzx ecx, ax 0002b 89 4d f4 mov DWORD PTR _nID$1[ebp], ecx ; 2711 : (nID); ; 2712 : #ifdef _ATL_USE_WINAPI_FAMILY_DESKTOP_APP ; 2713 : if( !LoadString( nID ) ) 0002e 8b 45 f4 mov eax, DWORD PTR _nID$1[ebp] 00031 50 push eax 00032 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00035 e8 00 00 00 00 call ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHI@Z ; ATL::CStringT > >::LoadStringW ; 2714 : { ; 2715 : ATLTRACE( atlTraceString, 2, _T( "Warning: implicit LoadString(%u) failed\n" ), nID ); ; 2716 : } ; 2717 : bRet = true; 0003a c6 45 fb 01 mov BYTE PTR _bRet$[ebp], 1 $LN2@CheckImpli: ; 2718 : #else ; 2719 : ATLTRACE( atlTraceString, 2, _T( "Warning: LoadString(%u) not supported under the current WINAPI_FAMILY.\n" ), nID ); ; 2720 : #endif ; 2721 : } ; 2722 : ; 2723 : return( bRet ); 0003e 8a 45 fb mov al, BYTE PTR _bRet$[ebp] ; 2724 : } 00041 5f pop edi 00042 5e pop esi 00043 5b pop ebx 00044 8b e5 mov esp, ebp 00046 5d pop ebp 00047 c2 04 00 ret 4 ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z ENDP ; ATL::CStringT > >::CheckImplicitLoad _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHPAUHINSTANCE__@@I@Z _TEXT SEGMENT _pszBuffer$ = -16 ; size = 4 _nLength$ = -12 ; size = 4 _pImage$ = -8 ; size = 4 _this$ = -4 ; size = 4 _hInstance$ = 8 ; size = 4 _nID$ = 12 ; size = 4 ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHPAUHINSTANCE__@@I@Z PROC ; ATL::CStringT > >::LoadStringW, COMDAT ; _this$ = ecx ; 2350 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 2351 : const ATLSTRINGRESOURCEIMAGE* pImage = AtlGetStringResourceImage( hInstance, nID ); 0000c 8b 45 0c mov eax, DWORD PTR _nID$[ebp] 0000f 50 push eax 00010 8b 4d 08 mov ecx, DWORD PTR _hInstance$[ebp] 00013 51 push ecx 00014 e8 00 00 00 00 call ?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z ; ATL::AtlGetStringResourceImage 00019 83 c4 08 add esp, 8 0001c 89 45 f8 mov DWORD PTR _pImage$[ebp], eax ; 2352 : if( pImage == NULL ) 0001f 83 7d f8 00 cmp DWORD PTR _pImage$[ebp], 0 00023 75 04 jne SHORT $LN2@LoadString ; 2353 : { ; 2354 : return( FALSE ); 00025 33 c0 xor eax, eax 00027 eb 57 jmp SHORT $LN1@LoadString $LN2@LoadString: ; 2355 : } ; 2356 : ; 2357 : int nLength = StringTraits::GetBaseTypeLength( pImage->achString, pImage->nLength ); 00029 8b 45 f8 mov eax, DWORD PTR _pImage$[ebp] 0002c 0f b7 08 movzx ecx, WORD PTR [eax] 0002f 51 push ecx 00030 8b 55 f8 mov edx, DWORD PTR _pImage$[ebp] 00033 83 c2 02 add edx, 2 00036 52 push edx 00037 e8 00 00 00 00 call ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WH@Z ; ATL::ChTraitsCRT::GetBaseTypeLength 0003c 83 c4 08 add esp, 8 0003f 89 45 f4 mov DWORD PTR _nLength$[ebp], eax ; 2358 : PXSTR pszBuffer = this->GetBuffer( nLength ); 00042 8b 45 f4 mov eax, DWORD PTR _nLength$[ebp] 00045 50 push eax 00046 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00049 e8 00 00 00 00 call ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z ; ATL::CSimpleStringT::GetBuffer 0004e 89 45 f0 mov DWORD PTR _pszBuffer$[ebp], eax ; 2359 : StringTraits::ConvertToBaseType( pszBuffer, nLength, pImage->achString, pImage->nLength ); 00051 8b 45 f8 mov eax, DWORD PTR _pImage$[ebp] 00054 0f b7 08 movzx ecx, WORD PTR [eax] 00057 51 push ecx 00058 8b 55 f8 mov edx, DWORD PTR _pImage$[ebp] 0005b 83 c2 02 add edx, 2 0005e 52 push edx 0005f 8b 45 f4 mov eax, DWORD PTR _nLength$[ebp] 00062 50 push eax 00063 8b 4d f0 mov ecx, DWORD PTR _pszBuffer$[ebp] 00066 51 push ecx 00067 e8 00 00 00 00 call ?ConvertToBaseType@?$ChTraitsCRT@_W@ATL@@SAXPA_WHPB_WH@Z ; ATL::ChTraitsCRT::ConvertToBaseType 0006c 83 c4 10 add esp, 16 ; 00000010H ; 2360 : this->ReleaseBufferSetLength( nLength ); 0006f 8b 45 f4 mov eax, DWORD PTR _nLength$[ebp] 00072 50 push eax 00073 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00076 e8 00 00 00 00 call ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z ; ATL::CSimpleStringT::ReleaseBufferSetLength ; 2361 : ; 2362 : return( TRUE ); 0007b b8 01 00 00 00 mov eax, 1 $LN1@LoadString: ; 2363 : } 00080 5f pop edi 00081 5e pop esi 00082 5b pop ebx 00083 8b e5 mov esp, ebp 00085 5d pop ebp 00086 c2 08 00 ret 8 ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHPAUHINSTANCE__@@I@Z ENDP ; ATL::CStringT > >::LoadStringW _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHI@Z _TEXT SEGMENT _hInstance$ = -8 ; size = 4 _this$ = -4 ; size = 4 _nID$ = 8 ; size = 4 ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHI@Z PROC ; ATL::CStringT > >::LoadStringW, COMDAT ; _this$ = ecx ; 2336 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 2337 : HINSTANCE hInstance = StringTraits::FindStringResourceInstance( nID ); 0000c 8b 45 08 mov eax, DWORD PTR _nID$[ebp] 0000f 50 push eax 00010 e8 00 00 00 00 call ?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z ; StrTraitMFC >::FindStringResourceInstance 00015 83 c4 04 add esp, 4 00018 89 45 f8 mov DWORD PTR _hInstance$[ebp], eax ; 2338 : if( hInstance == NULL ) 0001b 83 7d f8 00 cmp DWORD PTR _hInstance$[ebp], 0 0001f 75 04 jne SHORT $LN2@LoadString ; 2339 : { ; 2340 : return( FALSE ); 00021 33 c0 xor eax, eax 00023 eb 10 jmp SHORT $LN1@LoadString $LN2@LoadString: ; 2341 : } ; 2342 : ; 2343 : return( LoadString( hInstance, nID ) ); 00025 8b 45 08 mov eax, DWORD PTR _nID$[ebp] 00028 50 push eax 00029 8b 4d f8 mov ecx, DWORD PTR _hInstance$[ebp] 0002c 51 push ecx 0002d 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00030 e8 00 00 00 00 call ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHPAUHINSTANCE__@@I@Z ; ATL::CStringT > >::LoadStringW $LN1@LoadString: ; 2344 : } 00035 5f pop edi 00036 5e pop esi 00037 5b pop ebx 00038 8b e5 mov esp, ebp 0003a 5d pop ebp 0003b c2 04 00 ret 4 ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHI@Z ENDP ; ATL::CStringT > >::LoadStringW _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _pszSrc$ = 8 ; size = 4 ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z PROC ; ATL::CStringT > >::operator=, COMDAT ; _this$ = ecx ; 1318 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 1319 : CThisSimpleString::operator=( pszSrc ); 0000c 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp] 0000f 50 push eax 00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00013 e8 00 00 00 00 call ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@PB_W@Z ; ATL::CSimpleStringT::operator= ; 1320 : ; 1321 : return( *this ); 00018 8b 45 fc mov eax, DWORD PTR _this$[ebp] ; 1322 : } 0001b 5f pop edi 0001c 5e pop esi 0001d 5b pop ebx 0001e 8b e5 mov esp, ebp 00020 5d pop ebp 00021 c2 04 00 ret 4 ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z ENDP ; ATL::CStringT > >::operator= _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _strSrc$ = 8 ; size = 4 ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z PROC ; ATL::CStringT > >::operator=, COMDAT ; _this$ = ecx ; 1303 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 1304 : CThisSimpleString::operator=( strSrc ); 0000c 8b 45 08 mov eax, DWORD PTR _strSrc$[ebp] 0000f 50 push eax 00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00013 e8 00 00 00 00 call ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@ABV01@@Z ; ATL::CSimpleStringT::operator= ; 1305 : ; 1306 : return( *this ); 00018 8b 45 fc mov eax, DWORD PTR _this$[ebp] ; 1307 : } 0001b 5f pop edi 0001c 5e pop esi 0001d 5b pop ebx 0001e 8b e5 mov esp, ebp 00020 5d pop ebp 00021 c2 04 00 ret 4 ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@ABV01@@Z ENDP ; ATL::CStringT > >::operator= _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ PROC ; ATL::CStringT > >::~CStringT > >, COMDAT ; _this$ = ecx ; 1298 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx 0002b c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 ; 1299 : } 00032 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00039 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0003c e8 00 00 00 00 call ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT::~CSimpleStringT 00041 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00044 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0004b 59 pop ecx 0004c 5f pop edi 0004d 5e pop esi 0004e 5b pop ebx 0004f 8b e5 mov esp, ebp 00051 5d pop ebp 00052 c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 e9 00 00 00 00 jmp ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT::~CSimpleStringT 00008 cc int 3 00009 cc int 3 0000a cc int 3 0000b cc int 3 0000c cc int 3 __ehhandler$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ: 0000d 90 npad 1 0000e 90 npad 1 0000f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00013 8d 42 0c lea eax, DWORD PTR [edx+12] 00016 8b 4a ac mov ecx, DWORD PTR [edx-84] 00019 33 c8 xor ecx, eax 0001b e8 00 00 00 00 call @__security_check_cookie@4 00020 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ 00025 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ENDP ; ATL::CStringT > >::~CStringT > > ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 _pszSrc$ = 8 ; size = 4 ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z PROC ; ATL::CStringT > >::CStringT > >, COMDAT ; _this$ = ecx ; 1049 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 1048 : CThisSimpleString( StringTraits::GetDefaultManager() ) 0002b e8 00 00 00 00 call ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ ; StrTraitMFC >::GetDefaultManager 00030 50 push eax 00031 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00034 e8 00 00 00 00 call ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z ; ATL::CSimpleStringT::CSimpleStringT 00039 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 ; 1050 : if( !CheckImplicitLoad( pszSrc ) ) 00040 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp] 00043 50 push eax 00044 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00047 e8 00 00 00 00 call ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z ; ATL::CStringT > >::CheckImplicitLoad 0004c 0f b6 c8 movzx ecx, al 0004f 85 c9 test ecx, ecx 00051 75 0c jne SHORT $LN1@CStringT ; 1051 : { ; 1052 : *this = pszSrc; 00053 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp] 00056 50 push eax 00057 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0005a e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z ; ATL::CStringT > >::operator= $LN1@CStringT: ; 1053 : } ; 1054 : } 0005f c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00066 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 00069 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0006c 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00073 59 pop ecx 00074 5f pop edi 00075 5e pop esi 00076 5b pop ebx 00077 8b e5 mov esp, ebp 00079 5d pop ebp 0007a c2 04 00 ret 4 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 e9 00 00 00 00 jmp ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT::~CSimpleStringT 00008 cc int 3 00009 cc int 3 0000a cc int 3 0000b cc int 3 0000c cc int 3 __ehhandler$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z: 0000d 90 npad 1 0000e 90 npad 1 0000f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00013 8d 42 0c lea eax, DWORD PTR [edx+12] 00016 8b 4a ac mov ecx, DWORD PTR [edx-84] 00019 33 c8 xor ecx, eax 0001b e8 00 00 00 00 call @__security_check_cookie@4 00020 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z 00025 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ENDP ; ATL::CStringT > >::CStringT > > ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 _strSrc$ = 8 ; size = 4 ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z PROC ; ATL::CStringT > >::CStringT > >, COMDAT ; _this$ = ecx ; 1032 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 1031 : CThisSimpleString( strSrc ) 0002b 8b 45 08 mov eax, DWORD PTR _strSrc$[ebp] 0002e 50 push eax 0002f 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00032 e8 00 00 00 00 call ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@ABV01@@Z ; ATL::CSimpleStringT::CSimpleStringT 00037 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 ; 1033 : } 0003e c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00045 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 00048 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0004b 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00052 59 pop ecx 00053 5f pop edi 00054 5e pop esi 00055 5b pop ebx 00056 8b e5 mov esp, ebp 00058 5d pop ebp 00059 c2 04 00 ret 4 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 e9 00 00 00 00 jmp ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT::~CSimpleStringT 00008 cc int 3 00009 cc int 3 0000a cc int 3 0000b cc int 3 0000c cc int 3 __ehhandler$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z: 0000d 90 npad 1 0000e 90 npad 1 0000f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00013 8d 42 0c lea eax, DWORD PTR [edx+12] 00016 8b 4a ac mov ecx, DWORD PTR [edx-84] 00019 33 c8 xor ecx, eax 0001b e8 00 00 00 00 call @__security_check_cookie@4 00020 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z 00025 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ENDP ; ATL::CStringT > >::CStringT > > ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ _TEXT SEGMENT _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ PROC ; ATL::CStringT > >::CStringT > >, COMDAT ; _this$ = ecx ; 1011 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 1010 : CThisSimpleString( StringTraits::GetDefaultManager() ) 0002b e8 00 00 00 00 call ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ ; StrTraitMFC >::GetDefaultManager 00030 50 push eax 00031 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00034 e8 00 00 00 00 call ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z ; ATL::CSimpleStringT::CSimpleStringT 00039 c7 45 fc 00 00 00 00 mov DWORD PTR __$EHRec$[ebp+8], 0 ; 1012 : } 00040 c7 45 fc ff ff ff ff mov DWORD PTR __$EHRec$[ebp+8], -1 00047 8b 45 f0 mov eax, DWORD PTR _this$[ebp] 0004a 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0004d 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00054 59 pop ecx 00055 5f pop edi 00056 5e pop esi 00057 5b pop ebx 00058 8b e5 mov esp, ebp 0005a 5d pop ebp 0005b c3 ret 0 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ$0: 00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00003 e9 00 00 00 00 jmp ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT::~CSimpleStringT 00008 cc int 3 00009 cc int 3 0000a cc int 3 0000b cc int 3 0000c cc int 3 __ehhandler$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ: 0000d 90 npad 1 0000e 90 npad 1 0000f 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00013 8d 42 0c lea eax, DWORD PTR [edx+12] 00016 8b 4a ac mov ecx, DWORD PTR [edx-84] 00019 33 c8 xor ecx, eax 0001b e8 00 00 00 00 call @__security_check_cookie@4 00020 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ 00025 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ENDP ; ATL::CStringT > >::CStringT > > ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z _TEXT SEGMENT tv139 = -88 ; size = 4 tv141 = -84 ; size = 4 tv143 = -80 ; size = 4 tv145 = -76 ; size = 4 tv87 = -76 ; size = 4 _pNewStringMgr$ = -8 ; size = 4 _pNewData$ = -4 ; size = 4 _pData$ = 8 ; size = 4 ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z PROC ; ATL::CSimpleStringT::CloneData, COMDAT ; 879 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 58 sub esp, 88 ; 00000058H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 880 : CStringData* pNewData = NULL; 00009 c7 45 fc 00 00 00 00 mov DWORD PTR _pNewData$[ebp], 0 ; 881 : ; 882 : IAtlStringMgr* pNewStringMgr = pData->pStringMgr->Clone(); 00010 8b 45 08 mov eax, DWORD PTR _pData$[ebp] 00013 8b 08 mov ecx, DWORD PTR [eax] 00015 8b 55 08 mov edx, DWORD PTR _pData$[ebp] 00018 8b 01 mov eax, DWORD PTR [ecx] 0001a 8b 0a mov ecx, DWORD PTR [edx] 0001c 8b 50 10 mov edx, DWORD PTR [eax+16] 0001f ff d2 call edx 00021 89 45 f8 mov DWORD PTR _pNewStringMgr$[ebp], eax ; 883 : if( !pData->IsLocked() && (pNewStringMgr == pData->pStringMgr) ) 00024 8b 4d 08 mov ecx, DWORD PTR _pData$[ebp] 00027 e8 00 00 00 00 call ?IsLocked@CStringData@ATL@@QBE_NXZ ; ATL::CStringData::IsLocked 0002c 0f b6 c0 movzx eax, al 0002f 85 c0 test eax, eax 00031 75 1a jne SHORT $LN2@CloneData 00033 8b 45 08 mov eax, DWORD PTR _pData$[ebp] 00036 8b 4d f8 mov ecx, DWORD PTR _pNewStringMgr$[ebp] 00039 3b 08 cmp ecx, DWORD PTR [eax] 0003b 75 10 jne SHORT $LN2@CloneData ; 884 : { ; 885 : pNewData = pData; 0003d 8b 45 08 mov eax, DWORD PTR _pData$[ebp] 00040 89 45 fc mov DWORD PTR _pNewData$[ebp], eax ; 886 : pNewData->AddRef(); 00043 8b 4d fc mov ecx, DWORD PTR _pNewData$[ebp] 00046 e8 00 00 00 00 call ?AddRef@CStringData@ATL@@QAEXXZ ; ATL::CStringData::AddRef ; 887 : } 0004b eb 7b jmp SHORT $LN3@CloneData $LN2@CloneData: ; 888 : else ; 889 : { ; 890 : pNewData = pNewStringMgr->Allocate( pData->nDataLength, sizeof( XCHAR ) ); 0004d 8b 45 f8 mov eax, DWORD PTR _pNewStringMgr$[ebp] 00050 8b 08 mov ecx, DWORD PTR [eax] 00052 8b 11 mov edx, DWORD PTR [ecx] 00054 89 55 b4 mov DWORD PTR tv87[ebp], edx 00057 6a 02 push 2 00059 8b 45 08 mov eax, DWORD PTR _pData$[ebp] 0005c 8b 48 04 mov ecx, DWORD PTR [eax+4] 0005f 51 push ecx 00060 8b 4d f8 mov ecx, DWORD PTR _pNewStringMgr$[ebp] 00063 ff 55 b4 call DWORD PTR tv87[ebp] 00066 89 45 fc mov DWORD PTR _pNewData$[ebp], eax ; 891 : if( pNewData == NULL ) 00069 83 7d fc 00 cmp DWORD PTR _pNewData$[ebp], 0 0006d 75 05 jne SHORT $LN4@CloneData ; 892 : { ; 893 : ThrowMemoryException(); 0006f e8 00 00 00 00 call ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ; ATL::CSimpleStringT::ThrowMemoryException $LN4@CloneData: ; 894 : } ; 895 : pNewData->nDataLength = pData->nDataLength; 00074 8b 45 fc mov eax, DWORD PTR _pNewData$[ebp] 00077 8b 4d 08 mov ecx, DWORD PTR _pData$[ebp] 0007a 8b 51 04 mov edx, DWORD PTR [ecx+4] 0007d 89 50 04 mov DWORD PTR [eax+4], edx ; 896 : memcpy_s( PXSTR( pNewData->data() ), (pNewData->nDataLength+1) * sizeof( XCHAR ), 00080 8b 45 08 mov eax, DWORD PTR _pData$[ebp] 00083 8b 48 04 mov ecx, DWORD PTR [eax+4] 00086 8d 54 09 02 lea edx, DWORD PTR [ecx+ecx+2] 0008a 89 55 b4 mov DWORD PTR tv145[ebp], edx 0008d 8b 4d 08 mov ecx, DWORD PTR _pData$[ebp] 00090 e8 00 00 00 00 call ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data 00095 89 45 b0 mov DWORD PTR tv143[ebp], eax 00098 8b 45 fc mov eax, DWORD PTR _pNewData$[ebp] 0009b 8b 48 04 mov ecx, DWORD PTR [eax+4] 0009e 8d 54 09 02 lea edx, DWORD PTR [ecx+ecx+2] 000a2 89 55 ac mov DWORD PTR tv141[ebp], edx 000a5 8b 4d fc mov ecx, DWORD PTR _pNewData$[ebp] 000a8 e8 00 00 00 00 call ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data 000ad 89 45 a8 mov DWORD PTR tv139[ebp], eax 000b0 8b 45 b4 mov eax, DWORD PTR tv145[ebp] 000b3 50 push eax 000b4 8b 4d b0 mov ecx, DWORD PTR tv143[ebp] 000b7 51 push ecx 000b8 8b 55 ac mov edx, DWORD PTR tv141[ebp] 000bb 52 push edx 000bc 8b 45 a8 mov eax, DWORD PTR tv139[ebp] 000bf 50 push eax 000c0 e8 00 00 00 00 call _memcpy_s 000c5 83 c4 10 add esp, 16 ; 00000010H $LN3@CloneData: ; 897 : PCXSTR( pData->data() ), (pData->nDataLength+1) * sizeof( XCHAR )); // Copy '\0' ; 898 : } ; 899 : ; 900 : return( pNewData ); 000c8 8b 45 fc mov eax, DWORD PTR _pNewData$[ebp] $LN5@CloneData: ; 901 : } 000cb 5f pop edi 000cc 5e pop esi 000cd 5b pop ebx 000ce 8b e5 mov esp, ebp 000d0 5d pop ebp 000d1 c3 ret 0 ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z ENDP ; ATL::CSimpleStringT::CloneData _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _nLength$ = 8 ; size = 4 ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z PROC ; ATL::CSimpleStringT::SetLength, COMDAT ; _this$ = ecx ; 867 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 868 : ATLASSERT( nLength >= 0 ); ; 869 : ATLASSERT( nLength <= GetData()->nAllocLength ); ; 870 : ; 871 : if( nLength < 0 || nLength > GetData()->nAllocLength) 0000c 83 7d 08 00 cmp DWORD PTR _nLength$[ebp], 0 00010 7c 10 jl SHORT $LN3@SetLength 00012 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00015 e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 0001a 8b 4d 08 mov ecx, DWORD PTR _nLength$[ebp] 0001d 3b 48 08 cmp ecx, DWORD PTR [eax+8] 00020 7e 0a jle SHORT $LN2@SetLength $LN3@SetLength: ; 872 : AtlThrow(E_INVALIDARG); 00022 68 57 00 07 80 push -2147024809 ; 80070057H 00027 e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl $LN2@SetLength: ; 873 : ; 874 : GetData()->nDataLength = nLength; 0002c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0002f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00034 8b 4d 08 mov ecx, DWORD PTR _nLength$[ebp] 00037 89 48 04 mov DWORD PTR [eax+4], ecx ; 875 : m_pszData[nLength] = 0; 0003a 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0003d 8b 08 mov ecx, DWORD PTR [eax] 0003f 33 d2 xor edx, edx 00041 8b 45 08 mov eax, DWORD PTR _nLength$[ebp] 00044 66 89 14 41 mov WORD PTR [ecx+eax*2], dx $LN4@SetLength: ; 876 : } 00048 5f pop edi 00049 5e pop esi 0004a 5b pop ebx 0004b 8b e5 mov esp, ebp 0004d 5d pop ebp 0004e c2 04 00 ret 4 ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ENDP ; ATL::CSimpleStringT::SetLength _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?Reallocate@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z _TEXT SEGMENT tv78 = -84 ; size = 4 _pNewData$ = -16 ; size = 4 _pStringMgr$ = -12 ; size = 4 _pOldData$ = -8 ; size = 4 _this$ = -4 ; size = 4 _nLength$ = 8 ; size = 4 ?Reallocate@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z PROC ; ATL::CSimpleStringT::Reallocate, COMDAT ; _this$ = ecx ; 849 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 54 sub esp, 84 ; 00000054H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 850 : CStringData* pOldData = GetData(); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 89 45 f8 mov DWORD PTR _pOldData$[ebp], eax ; 851 : ATLASSERT( pOldData->nAllocLength < nLength ); ; 852 : IAtlStringMgr* pStringMgr = pOldData->pStringMgr; 00017 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 0001a 8b 08 mov ecx, DWORD PTR [eax] 0001c 89 4d f4 mov DWORD PTR _pStringMgr$[ebp], ecx ; 853 : if ( pOldData->nAllocLength >= nLength || nLength <= 0) 0001f 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 00022 8b 48 08 mov ecx, DWORD PTR [eax+8] 00025 3b 4d 08 cmp ecx, DWORD PTR _nLength$[ebp] 00028 7d 06 jge SHORT $LN3@Reallocate 0002a 83 7d 08 00 cmp DWORD PTR _nLength$[ebp], 0 0002e 7f 07 jg SHORT $LN2@Reallocate $LN3@Reallocate: ; 854 : { ; 855 : ThrowMemoryException(); 00030 e8 00 00 00 00 call ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ; ATL::CSimpleStringT::ThrowMemoryException ; 856 : return; 00035 eb 35 jmp SHORT $LN5@Reallocate $LN2@Reallocate: ; 857 : } ; 858 : CStringData* pNewData = pStringMgr->Reallocate( pOldData, nLength, sizeof( XCHAR ) ); 00037 8b 45 f4 mov eax, DWORD PTR _pStringMgr$[ebp] 0003a 8b 08 mov ecx, DWORD PTR [eax] 0003c 8b 51 08 mov edx, DWORD PTR [ecx+8] 0003f 89 55 ac mov DWORD PTR tv78[ebp], edx 00042 6a 02 push 2 00044 8b 45 08 mov eax, DWORD PTR _nLength$[ebp] 00047 50 push eax 00048 8b 4d f8 mov ecx, DWORD PTR _pOldData$[ebp] 0004b 51 push ecx 0004c 8b 4d f4 mov ecx, DWORD PTR _pStringMgr$[ebp] 0004f ff 55 ac call DWORD PTR tv78[ebp] 00052 89 45 f0 mov DWORD PTR _pNewData$[ebp], eax ; 859 : if( pNewData == NULL ) 00055 83 7d f0 00 cmp DWORD PTR _pNewData$[ebp], 0 00059 75 05 jne SHORT $LN4@Reallocate ; 860 : { ; 861 : ThrowMemoryException(); 0005b e8 00 00 00 00 call ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ; ATL::CSimpleStringT::ThrowMemoryException $LN4@Reallocate: ; 862 : } ; 863 : Attach( pNewData ); 00060 8b 45 f0 mov eax, DWORD PTR _pNewData$[ebp] 00063 50 push eax 00064 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00067 e8 00 00 00 00 call ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach $LN5@Reallocate: ; 864 : } 0006c 5f pop edi 0006d 5e pop esi 0006e 5b pop ebx 0006f 8b e5 mov esp, ebp 00071 5d pop ebp 00072 c2 04 00 ret 4 ?Reallocate@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ENDP ; ATL::CSimpleStringT::Reallocate _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?PrepareWrite2@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z _TEXT SEGMENT _nNewLength$1 = -12 ; size = 4 _pOldData$ = -8 ; size = 4 _this$ = -4 ; size = 4 _nLength$ = 8 ; size = 4 ?PrepareWrite2@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z PROC ; ATL::CSimpleStringT::PrepareWrite2, COMDAT ; _this$ = ecx ; 818 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 819 : CStringData* pOldData = GetData(); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 89 45 f8 mov DWORD PTR _pOldData$[ebp], eax ; 820 : if( pOldData->nDataLength > nLength ) 00017 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 0001a 8b 48 04 mov ecx, DWORD PTR [eax+4] 0001d 3b 4d 08 cmp ecx, DWORD PTR _nLength$[ebp] 00020 7e 09 jle SHORT $LN2@PrepareWri ; 821 : { ; 822 : nLength = pOldData->nDataLength; 00022 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 00025 8b 48 04 mov ecx, DWORD PTR [eax+4] 00028 89 4d 08 mov DWORD PTR _nLength$[ebp], ecx $LN2@PrepareWri: ; 823 : } ; 824 : if( pOldData->IsShared() ) 0002b 8b 4d f8 mov ecx, DWORD PTR _pOldData$[ebp] 0002e e8 00 00 00 00 call ?IsShared@CStringData@ATL@@QBE_NXZ ; ATL::CStringData::IsShared 00033 0f b6 c0 movzx eax, al 00036 85 c0 test eax, eax 00038 74 0e je SHORT $LN3@PrepareWri ; 825 : { ; 826 : Fork( nLength ); 0003a 8b 45 08 mov eax, DWORD PTR _nLength$[ebp] 0003d 50 push eax 0003e 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00041 e8 00 00 00 00 call ?Fork@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::Fork ; 827 : } 00046 eb 52 jmp SHORT $LN1@PrepareWri $LN3@PrepareWri: ; 828 : else if( pOldData->nAllocLength < nLength ) 00048 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 0004b 8b 48 08 mov ecx, DWORD PTR [eax+8] 0004e 3b 4d 08 cmp ecx, DWORD PTR _nLength$[ebp] 00051 7d 47 jge SHORT $LN1@PrepareWri ; 829 : { ; 830 : // Grow exponentially, until we hit 1G, then by 1M thereafter. ; 831 : int nNewLength = pOldData->nAllocLength; 00053 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 00056 8b 48 08 mov ecx, DWORD PTR [eax+8] 00059 89 4d f4 mov DWORD PTR _nNewLength$1[ebp], ecx ; 832 : if( nNewLength > 1024 * 1024 * 1024 ) 0005c 81 7d f4 00 00 00 40 cmp DWORD PTR _nNewLength$1[ebp], 1073741824 ; 40000000H 00063 7e 0d jle SHORT $LN6@PrepareWri ; 833 : { ; 834 : nNewLength += 1024 * 1024; 00065 8b 45 f4 mov eax, DWORD PTR _nNewLength$1[ebp] 00068 05 00 00 10 00 add eax, 1048576 ; 00100000H 0006d 89 45 f4 mov DWORD PTR _nNewLength$1[ebp], eax ; 835 : } 00070 eb 0e jmp SHORT $LN7@PrepareWri $LN6@PrepareWri: ; 836 : else ; 837 : { ; 838 : // Exponential growth factor is 1.5. ; 839 : nNewLength = nNewLength + nNewLength / 2; 00072 8b 45 f4 mov eax, DWORD PTR _nNewLength$1[ebp] 00075 99 cdq 00076 2b c2 sub eax, edx 00078 d1 f8 sar eax, 1 0007a 03 45 f4 add eax, DWORD PTR _nNewLength$1[ebp] 0007d 89 45 f4 mov DWORD PTR _nNewLength$1[ebp], eax $LN7@PrepareWri: ; 840 : } ; 841 : if( nNewLength < nLength ) 00080 8b 45 f4 mov eax, DWORD PTR _nNewLength$1[ebp] 00083 3b 45 08 cmp eax, DWORD PTR _nLength$[ebp] 00086 7d 06 jge SHORT $LN8@PrepareWri ; 842 : { ; 843 : nNewLength = nLength; 00088 8b 45 08 mov eax, DWORD PTR _nLength$[ebp] 0008b 89 45 f4 mov DWORD PTR _nNewLength$1[ebp], eax $LN8@PrepareWri: ; 844 : } ; 845 : Reallocate( nNewLength ); 0008e 8b 45 f4 mov eax, DWORD PTR _nNewLength$1[ebp] 00091 50 push eax 00092 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00095 e8 00 00 00 00 call ?Reallocate@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::Reallocate $LN1@PrepareWri: ; 846 : } ; 847 : } 0009a 5f pop edi 0009b 5e pop esi 0009c 5b pop ebx 0009d 8b e5 mov esp, ebp 0009f 5d pop ebp 000a0 c2 04 00 ret 4 ?PrepareWrite2@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ENDP ; ATL::CSimpleStringT::PrepareWrite2 _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?PrepareWrite@?$CSimpleStringT@_W$0A@@ATL@@AAEPA_WH@Z _TEXT SEGMENT _nTooShort$ = -16 ; size = 4 _nShared$ = -12 ; size = 4 _pOldData$ = -8 ; size = 4 _this$ = -4 ; size = 4 _nLength$ = 8 ; size = 4 ?PrepareWrite@?$CSimpleStringT@_W$0A@@ATL@@AAEPA_WH@Z PROC ; ATL::CSimpleStringT::PrepareWrite, COMDAT ; _this$ = ecx ; 803 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 804 : if (nLength < 0) 0000c 83 7d 08 00 cmp DWORD PTR _nLength$[ebp], 0 00010 7d 0a jge SHORT $LN2@PrepareWri ; 805 : AtlThrow(E_INVALIDARG); 00012 68 57 00 07 80 push -2147024809 ; 80070057H 00017 e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl $LN2@PrepareWri: ; 806 : ; 807 : CStringData* pOldData = GetData(); 0001c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0001f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00024 89 45 f8 mov DWORD PTR _pOldData$[ebp], eax ; 808 : int nShared = 1-pOldData->nRefs; // nShared < 0 means true, >= 0 means false 00027 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 0002a b9 01 00 00 00 mov ecx, 1 0002f 2b 48 0c sub ecx, DWORD PTR [eax+12] 00032 89 4d f4 mov DWORD PTR _nShared$[ebp], ecx ; 809 : int nTooShort = pOldData->nAllocLength-nLength; // nTooShort < 0 means true, >= 0 means false 00035 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 00038 8b 48 08 mov ecx, DWORD PTR [eax+8] 0003b 2b 4d 08 sub ecx, DWORD PTR _nLength$[ebp] 0003e 89 4d f0 mov DWORD PTR _nTooShort$[ebp], ecx ; 810 : if( (nShared|nTooShort) < 0 ) // If either sign bit is set (i.e. either is less than zero), we need to copy data 00041 8b 45 f4 mov eax, DWORD PTR _nShared$[ebp] 00044 0b 45 f0 or eax, DWORD PTR _nTooShort$[ebp] 00047 7d 0c jge SHORT $LN3@PrepareWri ; 811 : { ; 812 : PrepareWrite2( nLength ); 00049 8b 45 08 mov eax, DWORD PTR _nLength$[ebp] 0004c 50 push eax 0004d 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00050 e8 00 00 00 00 call ?PrepareWrite2@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::PrepareWrite2 $LN3@PrepareWri: ; 813 : } ; 814 : ; 815 : return( m_pszData ); 00055 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00058 8b 00 mov eax, DWORD PTR [eax] $LN4@PrepareWri: ; 816 : } 0005a 5f pop edi 0005b 5e pop esi 0005c 5b pop ebx 0005d 8b e5 mov esp, ebp 0005f 5d pop ebp 00060 c2 04 00 ret 4 ?PrepareWrite@?$CSimpleStringT@_W$0A@@ATL@@AAEPA_WH@Z ENDP ; ATL::CSimpleStringT::PrepareWrite _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ PROC ; ATL::CSimpleStringT::GetData, COMDAT ; _this$ = ecx ; 799 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 800 : return( reinterpret_cast< CStringData* >( m_pszData )-1 ); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 8b 00 mov eax, DWORD PTR [eax] 00011 83 e8 10 sub eax, 16 ; 00000010H ; 801 : } 00014 5f pop edi 00015 5e pop esi 00016 5b pop ebx 00017 8b e5 mov esp, ebp 00019 5d pop ebp 0001a c3 ret 0 ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ENDP ; ATL::CSimpleStringT::GetData _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?Fork@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z _TEXT SEGMENT tv132 = -92 ; size = 4 tv83 = -92 ; size = 4 tv134 = -88 ; size = 4 tv86 = -88 ; size = 4 tv76 = -88 ; size = 4 _nCharsToCopy$ = -20 ; size = 4 _pNewData$ = -16 ; size = 4 _nOldLength$ = -12 ; size = 4 _pOldData$ = -8 ; size = 4 _this$ = -4 ; size = 4 _nLength$ = 8 ; size = 4 ?Fork@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z PROC ; ATL::CSimpleStringT::Fork, COMDAT ; _this$ = ecx ; 783 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 5c sub esp, 92 ; 0000005cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 784 : CStringData* pOldData = GetData(); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 89 45 f8 mov DWORD PTR _pOldData$[ebp], eax ; 785 : int nOldLength = pOldData->nDataLength; 00017 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 0001a 8b 48 04 mov ecx, DWORD PTR [eax+4] 0001d 89 4d f4 mov DWORD PTR _nOldLength$[ebp], ecx ; 786 : CStringData* pNewData = pOldData->pStringMgr->Clone()->Allocate( nLength, sizeof( XCHAR ) ); 00020 8b 45 f8 mov eax, DWORD PTR _pOldData$[ebp] 00023 8b 08 mov ecx, DWORD PTR [eax] 00025 8b 55 f8 mov edx, DWORD PTR _pOldData$[ebp] 00028 8b 01 mov eax, DWORD PTR [ecx] 0002a 8b 0a mov ecx, DWORD PTR [edx] 0002c 8b 50 10 mov edx, DWORD PTR [eax+16] 0002f ff d2 call edx 00031 89 45 a8 mov DWORD PTR tv76[ebp], eax 00034 8b 45 a8 mov eax, DWORD PTR tv76[ebp] 00037 8b 08 mov ecx, DWORD PTR [eax] 00039 8b 11 mov edx, DWORD PTR [ecx] 0003b 89 55 a4 mov DWORD PTR tv83[ebp], edx 0003e 6a 02 push 2 00040 8b 45 08 mov eax, DWORD PTR _nLength$[ebp] 00043 50 push eax 00044 8b 4d a8 mov ecx, DWORD PTR tv76[ebp] 00047 ff 55 a4 call DWORD PTR tv83[ebp] 0004a 89 45 f0 mov DWORD PTR _pNewData$[ebp], eax ; 787 : if( pNewData == NULL ) 0004d 83 7d f0 00 cmp DWORD PTR _pNewData$[ebp], 0 00051 75 05 jne SHORT $LN2@Fork ; 788 : { ; 789 : ThrowMemoryException(); 00053 e8 00 00 00 00 call ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ; ATL::CSimpleStringT::ThrowMemoryException $LN2@Fork: ; 790 : } ; 791 : int nCharsToCopy = ((nOldLength < nLength) ? nOldLength : nLength)+1; // Copy '\0' 00058 8b 45 f4 mov eax, DWORD PTR _nOldLength$[ebp] 0005b 3b 45 08 cmp eax, DWORD PTR _nLength$[ebp] 0005e 7d 08 jge SHORT $LN4@Fork 00060 8b 4d f4 mov ecx, DWORD PTR _nOldLength$[ebp] 00063 89 4d a8 mov DWORD PTR tv86[ebp], ecx 00066 eb 06 jmp SHORT $LN5@Fork $LN4@Fork: 00068 8b 55 08 mov edx, DWORD PTR _nLength$[ebp] 0006b 89 55 a8 mov DWORD PTR tv86[ebp], edx $LN5@Fork: 0006e 8b 45 a8 mov eax, DWORD PTR tv86[ebp] 00071 83 c0 01 add eax, 1 00074 89 45 ec mov DWORD PTR _nCharsToCopy$[ebp], eax ; 792 : memcpy_s( PXSTR( pNewData->data() ), nCharsToCopy * sizeof( XCHAR ), 00077 8b 4d f8 mov ecx, DWORD PTR _pOldData$[ebp] 0007a e8 00 00 00 00 call ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data 0007f 89 45 a8 mov DWORD PTR tv134[ebp], eax 00082 8b 4d f0 mov ecx, DWORD PTR _pNewData$[ebp] 00085 e8 00 00 00 00 call ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data 0008a 89 45 a4 mov DWORD PTR tv132[ebp], eax 0008d 8b 45 ec mov eax, DWORD PTR _nCharsToCopy$[ebp] 00090 d1 e0 shl eax, 1 00092 50 push eax 00093 8b 4d a8 mov ecx, DWORD PTR tv134[ebp] 00096 51 push ecx 00097 8b 55 ec mov edx, DWORD PTR _nCharsToCopy$[ebp] 0009a d1 e2 shl edx, 1 0009c 52 push edx 0009d 8b 45 a4 mov eax, DWORD PTR tv132[ebp] 000a0 50 push eax 000a1 e8 00 00 00 00 call _memcpy_s 000a6 83 c4 10 add esp, 16 ; 00000010H ; 793 : PCXSTR( pOldData->data() ), nCharsToCopy * sizeof( XCHAR )); ; 794 : pNewData->nDataLength = nOldLength; 000a9 8b 45 f0 mov eax, DWORD PTR _pNewData$[ebp] 000ac 8b 4d f4 mov ecx, DWORD PTR _nOldLength$[ebp] 000af 89 48 04 mov DWORD PTR [eax+4], ecx ; 795 : pOldData->Release(); 000b2 8b 4d f8 mov ecx, DWORD PTR _pOldData$[ebp] 000b5 e8 00 00 00 00 call ?Release@CStringData@ATL@@QAEXXZ ; ATL::CStringData::Release ; 796 : Attach( pNewData ); 000ba 8b 45 f0 mov eax, DWORD PTR _pNewData$[ebp] 000bd 50 push eax 000be 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 000c1 e8 00 00 00 00 call ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach $LN3@Fork: ; 797 : } 000c6 5f pop edi 000c7 5e pop esi 000c8 5b pop ebx 000c9 8b e5 mov esp, ebp 000cb 5d pop ebp 000cc c2 04 00 ret 4 ?Fork@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ENDP ; ATL::CSimpleStringT::Fork _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _pData$ = 8 ; size = 4 ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z PROC ; ATL::CSimpleStringT::Attach, COMDAT ; _this$ = ecx ; 779 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 780 : m_pszData = static_cast< PXSTR >( pData->data() ); 0000c 8b 4d 08 mov ecx, DWORD PTR _pData$[ebp] 0000f e8 00 00 00 00 call ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data 00014 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00017 89 01 mov DWORD PTR [ecx], eax ; 781 : } 00019 5f pop edi 0001a 5e pop esi 0001b 5b pop ebx 0001c 8b e5 mov esp, ebp 0001e 5d pop ebp 0001f c2 04 00 ret 4 ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ENDP ; ATL::CSimpleStringT::Attach _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ _TEXT SEGMENT ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ PROC ; ATL::CSimpleStringT::ThrowMemoryException, COMDAT ; 772 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 773 : AtlThrow( E_OUTOFMEMORY ); 00009 68 0e 00 07 80 push -2147024882 ; 8007000eH 0000e e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl $LN2@ThrowMemor: ; 774 : } 00013 5f pop edi 00014 5e pop esi 00015 5b pop ebx 00016 8b e5 mov esp, ebp 00018 5d pop ebp 00019 c3 ret 0 ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ENDP ; ATL::CSimpleStringT::ThrowMemoryException _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z _TEXT SEGMENT __$EHRec$ = -12 ; size = 12 _psz$ = 8 ; size = 4 ?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z PROC ; ATL::CSimpleStringT::StringLength, COMDAT ; 729 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 40 sub esp, 64 ; 00000040H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 730 : if( psz == NULL ) 00028 83 7d 08 00 cmp DWORD PTR _psz$[ebp], 0 0002c 75 04 jne SHORT $LN2@StringLeng ; 731 : { ; 732 : return( 0 ); 0002e 33 c0 xor eax, eax 00030 eb 0c jmp SHORT $LN1@StringLeng $LN2@StringLeng: ; 733 : } ; 734 : return( int( wcslen( psz ) ) ); 00032 8b 45 08 mov eax, DWORD PTR _psz$[ebp] 00035 50 push eax 00036 e8 00 00 00 00 call _wcslen 0003b 83 c4 04 add esp, 4 $LN1@StringLeng: ; 735 : } 0003e 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00041 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00048 59 pop ecx 00049 5f pop edi 0004a 5e pop esi 0004b 5b pop ebx 0004c 8b e5 mov esp, ebp 0004e 5d pop ebp 0004f c3 ret 0 00050 cc int 3 00051 cc int 3 00052 cc int 3 00053 cc int 3 00054 cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a b0 mov ecx, DWORD PTR [edx-80] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z ENDP ; ATL::CSimpleStringT::StringLength ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z _TEXT SEGMENT __$EHRec$ = -12 ; size = 12 _pchDest$ = 8 ; size = 4 _nDestLen$ = 12 ; size = 4 _pchSrc$ = 16 ; size = 4 _nChars$ = 20 ; size = 4 ?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z PROC ; ATL::CSimpleStringT::CopyCharsOverlapped, COMDAT ; 716 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 40 sub esp, 64 ; 00000040H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 717 : memmove_s( pchDest, nDestLen*sizeof( XCHAR ), 00028 8b 45 14 mov eax, DWORD PTR _nChars$[ebp] 0002b d1 e0 shl eax, 1 0002d 50 push eax 0002e 8b 4d 10 mov ecx, DWORD PTR _pchSrc$[ebp] 00031 51 push ecx 00032 8b 55 0c mov edx, DWORD PTR _nDestLen$[ebp] 00035 d1 e2 shl edx, 1 00037 52 push edx 00038 8b 45 08 mov eax, DWORD PTR _pchDest$[ebp] 0003b 50 push eax 0003c e8 00 00 00 00 call _memmove_s 00041 83 c4 10 add esp, 16 ; 00000010H ; 718 : pchSrc, nChars*sizeof( XCHAR ) ); ; 719 : } 00044 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00047 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0004e 59 pop ecx 0004f 5f pop edi 00050 5e pop esi 00051 5b pop ebx 00052 8b e5 mov esp, ebp 00054 5d pop ebp 00055 c3 ret 0 00056 cc int 3 00057 cc int 3 00058 cc int 3 00059 cc int 3 0005a cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a b0 mov ecx, DWORD PTR [edx-80] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z ENDP ; ATL::CSimpleStringT::CopyCharsOverlapped ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z _TEXT SEGMENT _pszBuffer$1 = -16 ; size = 4 _nOffset$2 = -12 ; size = 4 _nOldLength$3 = -8 ; size = 4 _this$ = -4 ; size = 4 _pszSrc$ = 8 ; size = 4 _nLength$ = 12 ; size = 4 ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z PROC ; ATL::CSimpleStringT::SetString, COMDAT ; _this$ = ecx ; 607 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 608 : if( nLength == 0 ) 0000c 83 7d 0c 00 cmp DWORD PTR _nLength$[ebp], 0 00010 75 0d jne SHORT $LN2@SetString ; 609 : { ; 610 : Empty(); 00012 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00015 e8 00 00 00 00 call ?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ ; ATL::CSimpleStringT::Empty ; 611 : } 0001a e9 96 00 00 00 jmp $LN7@SetString $LN2@SetString: ; 612 : else ; 613 : { ; 614 : // It is possible that pszSrc points to a location inside of our ; 615 : // buffer. GetBuffer() might change m_pszData if (1) the buffer ; 616 : // is shared or (2) the buffer is too small to hold the new ; 617 : // string. We detect this aliasing, and modify pszSrc to point ; 618 : // into the newly allocated buffer instead. ; 619 : ; 620 : if(pszSrc == NULL) 0001f 83 7d 08 00 cmp DWORD PTR _pszSrc$[ebp], 0 00023 75 0a jne SHORT $LN4@SetString ; 621 : AtlThrow(E_INVALIDARG); 00025 68 57 00 07 80 push -2147024809 ; 80070057H 0002a e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl $LN4@SetString: ; 622 : ; 623 : UINT nOldLength = GetLength(); 0002f 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00032 e8 00 00 00 00 call ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT::GetLength 00037 89 45 f8 mov DWORD PTR _nOldLength$3[ebp], eax ; 624 : UINT_PTR nOffset = pszSrc-GetString(); 0003a 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0003d e8 00 00 00 00 call ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT::GetString 00042 8b 4d 08 mov ecx, DWORD PTR _pszSrc$[ebp] 00045 2b c8 sub ecx, eax 00047 d1 f9 sar ecx, 1 00049 89 4d f4 mov DWORD PTR _nOffset$2[ebp], ecx ; 625 : // If 0 <= nOffset <= nOldLength, then pszSrc points into our ; 626 : // buffer ; 627 : ; 628 : PXSTR pszBuffer = GetBuffer( nLength ); 0004c 8b 45 0c mov eax, DWORD PTR _nLength$[ebp] 0004f 50 push eax 00050 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00053 e8 00 00 00 00 call ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z ; ATL::CSimpleStringT::GetBuffer 00058 89 45 f0 mov DWORD PTR _pszBuffer$1[ebp], eax ; 629 : if( nOffset <= nOldLength ) 0005b 8b 45 f4 mov eax, DWORD PTR _nOffset$2[ebp] 0005e 3b 45 f8 cmp eax, DWORD PTR _nOldLength$3[ebp] 00061 77 25 ja SHORT $LN5@SetString ; 630 : { ; 631 : CopyCharsOverlapped( pszBuffer, GetAllocLength(), 00063 8b 45 0c mov eax, DWORD PTR _nLength$[ebp] 00066 50 push eax 00067 8b 4d f4 mov ecx, DWORD PTR _nOffset$2[ebp] 0006a 8b 55 f0 mov edx, DWORD PTR _pszBuffer$1[ebp] 0006d 8d 04 4a lea eax, DWORD PTR [edx+ecx*2] 00070 50 push eax 00071 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00074 e8 00 00 00 00 call ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT::GetAllocLength 00079 50 push eax 0007a 8b 4d f0 mov ecx, DWORD PTR _pszBuffer$1[ebp] 0007d 51 push ecx 0007e e8 00 00 00 00 call ?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z ; ATL::CSimpleStringT::CopyCharsOverlapped 00083 83 c4 10 add esp, 16 ; 00000010H ; 632 : pszBuffer+nOffset, nLength ); ; 633 : } 00086 eb 21 jmp SHORT $LN6@SetString $LN5@SetString: ; 634 : else ; 635 : { ; 636 : memcpy_s( pszBuffer, GetAllocLength() * sizeof( XCHAR ), pszSrc, nLength * sizeof( XCHAR )); 00088 8b 45 0c mov eax, DWORD PTR _nLength$[ebp] 0008b d1 e0 shl eax, 1 0008d 50 push eax 0008e 8b 4d 08 mov ecx, DWORD PTR _pszSrc$[ebp] 00091 51 push ecx 00092 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00095 e8 00 00 00 00 call ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT::GetAllocLength 0009a d1 e0 shl eax, 1 0009c 50 push eax 0009d 8b 55 f0 mov edx, DWORD PTR _pszBuffer$1[ebp] 000a0 52 push edx 000a1 e8 00 00 00 00 call _memcpy_s 000a6 83 c4 10 add esp, 16 ; 00000010H $LN6@SetString: ; 637 : } ; 638 : ReleaseBufferSetLength( nLength ); 000a9 8b 45 0c mov eax, DWORD PTR _nLength$[ebp] 000ac 50 push eax 000ad 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 000b0 e8 00 00 00 00 call ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z ; ATL::CSimpleStringT::ReleaseBufferSetLength $LN7@SetString: ; 639 : } ; 640 : } 000b5 5f pop edi 000b6 5e pop esi 000b7 5b pop ebx 000b8 8b e5 mov esp, ebp 000ba 5d pop ebp 000bb c2 08 00 ret 8 ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z ENDP ; ATL::CSimpleStringT::SetString _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_W@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _pszSrc$ = 8 ; size = 4 ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_W@Z PROC ; ATL::CSimpleStringT::SetString, COMDAT ; _this$ = ecx ; 601 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 602 : SetString( pszSrc, StringLength( pszSrc ) ); 0000c 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp] 0000f 50 push eax 00010 e8 00 00 00 00 call ?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z ; ATL::CSimpleStringT::StringLength 00015 83 c4 04 add esp, 4 00018 50 push eax 00019 8b 4d 08 mov ecx, DWORD PTR _pszSrc$[ebp] 0001c 51 push ecx 0001d 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00020 e8 00 00 00 00 call ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z ; ATL::CSimpleStringT::SetString ; 603 : } 00025 5f pop edi 00026 5e pop esi 00027 5b pop ebx 00028 8b e5 mov esp, ebp 0002a 5d pop ebp 0002b c2 04 00 ret 4 ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_W@Z ENDP ; ATL::CSimpleStringT::SetString _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _nNewLength$ = 8 ; size = 4 ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z PROC ; ATL::CSimpleStringT::ReleaseBufferSetLength, COMDAT ; _this$ = ecx ; 566 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 567 : ATLASSERT( nNewLength >= 0 ); ; 568 : SetLength( nNewLength ); 0000c 8b 45 08 mov eax, DWORD PTR _nNewLength$[ebp] 0000f 50 push eax 00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00013 e8 00 00 00 00 call ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::SetLength ; 569 : } 00018 5f pop edi 00019 5e pop esi 0001a 5b pop ebx 0001b 8b e5 mov esp, ebp 0001d 5d pop ebp 0001e c2 04 00 ret 4 ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z ENDP ; ATL::CSimpleStringT::ReleaseBufferSetLength _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ PROC ; ATL::CSimpleStringT::GetString, COMDAT ; _this$ = ecx ; 528 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 529 : return( m_pszData ); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 8b 00 mov eax, DWORD PTR [eax] ; 530 : } 00011 5f pop edi 00012 5e pop esi 00013 5b pop ebx 00014 8b e5 mov esp, ebp 00016 5d pop ebp 00017 c3 ret 0 ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ENDP ; ATL::CSimpleStringT::GetString _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ PROC ; ATL::CSimpleStringT::GetLength, COMDAT ; _this$ = ecx ; 518 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 519 : return( GetData()->nDataLength ); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 8b 40 04 mov eax, DWORD PTR [eax+4] ; 520 : } 00017 5f pop edi 00018 5e pop esi 00019 5b pop ebx 0001a 8b e5 mov esp, ebp 0001c 5d pop ebp 0001d c3 ret 0 ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ENDP ; ATL::CSimpleStringT::GetLength _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _nMinBufferLength$ = 8 ; size = 4 ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z PROC ; ATL::CSimpleStringT::GetBuffer, COMDAT ; _this$ = ecx ; 507 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 508 : return( PrepareWrite( nMinBufferLength ) ); 0000c 8b 45 08 mov eax, DWORD PTR _nMinBufferLength$[ebp] 0000f 50 push eax 00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00013 e8 00 00 00 00 call ?PrepareWrite@?$CSimpleStringT@_W$0A@@ATL@@AAEPA_WH@Z ; ATL::CSimpleStringT::PrepareWrite ; 509 : } 00018 5f pop edi 00019 5e pop esi 0001a 5b pop ebx 0001b 8b e5 mov esp, ebp 0001d 5d pop ebp 0001e c2 04 00 ret 4 ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z ENDP ; ATL::CSimpleStringT::GetBuffer _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ PROC ; ATL::CSimpleStringT::GetAllocLength, COMDAT ; _this$ = ecx ; 485 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 486 : return( GetData()->nAllocLength ); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 8b 40 08 mov eax, DWORD PTR [eax+8] ; 487 : } 00017 5f pop edi 00018 5e pop esi 00019 5b pop ebx 0001a 8b e5 mov esp, ebp 0001c 5d pop ebp 0001d c3 ret 0 ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ENDP ; ATL::CSimpleStringT::GetAllocLength _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ _TEXT SEGMENT _pNewData$2 = -28 ; size = 4 _pStringMgr$ = -24 ; size = 4 _pOldData$ = -20 ; size = 4 _this$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 ?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ PROC ; ATL::CSimpleStringT::Empty, COMDAT ; _this$ = ecx ; 436 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 50 sub esp, 80 ; 00000050H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax 00028 89 4d f0 mov DWORD PTR _this$[ebp], ecx ; 437 : CStringData* pOldData = GetData(); 0002b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0002e e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00033 89 45 ec mov DWORD PTR _pOldData$[ebp], eax ; 438 : IAtlStringMgr* pStringMgr = pOldData->pStringMgr; 00036 8b 45 ec mov eax, DWORD PTR _pOldData$[ebp] 00039 8b 08 mov ecx, DWORD PTR [eax] 0003b 89 4d e8 mov DWORD PTR _pStringMgr$[ebp], ecx ; 439 : if( pOldData->nDataLength == 0 ) 0003e 8b 45 ec mov eax, DWORD PTR _pOldData$[ebp] 00041 83 78 04 00 cmp DWORD PTR [eax+4], 0 00045 75 02 jne SHORT $LN2@Empty ; 440 : { ; 441 : return; 00047 eb 3f jmp SHORT $LN1@Empty $LN2@Empty: ; 442 : } ; 443 : ; 444 : if( pOldData->IsLocked() ) 00049 8b 4d ec mov ecx, DWORD PTR _pOldData$[ebp] 0004c e8 00 00 00 00 call ?IsLocked@CStringData@ATL@@QBE_NXZ ; ATL::CStringData::IsLocked 00051 0f b6 c0 movzx eax, al 00054 85 c0 test eax, eax 00056 74 0c je SHORT $LN3@Empty ; 445 : { ; 446 : // Don't reallocate a locked buffer that's shrinking ; 447 : SetLength( 0 ); 00058 6a 00 push 0 0005a 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 0005d e8 00 00 00 00 call ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT::SetLength ; 448 : } 00062 eb 24 jmp SHORT $LN1@Empty $LN3@Empty: ; 449 : else ; 450 : { ; 451 : pOldData->Release(); 00064 8b 4d ec mov ecx, DWORD PTR _pOldData$[ebp] 00067 e8 00 00 00 00 call ?Release@CStringData@ATL@@QAEXXZ ; ATL::CStringData::Release ; 452 : CStringData* pNewData = pStringMgr->GetNilString(); 0006c 8b 45 e8 mov eax, DWORD PTR _pStringMgr$[ebp] 0006f 8b 10 mov edx, DWORD PTR [eax] 00071 8b 4d e8 mov ecx, DWORD PTR _pStringMgr$[ebp] 00074 8b 42 0c mov eax, DWORD PTR [edx+12] 00077 ff d0 call eax 00079 89 45 e4 mov DWORD PTR _pNewData$2[ebp], eax ; 453 : Attach( pNewData ); 0007c 8b 45 e4 mov eax, DWORD PTR _pNewData$2[ebp] 0007f 50 push eax 00080 8b 4d f0 mov ecx, DWORD PTR _this$[ebp] 00083 e8 00 00 00 00 call ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach $LN1@Empty: ; 454 : } ; 455 : } 00088 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0008b 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00092 59 pop ecx 00093 5f pop edi 00094 5e pop esi 00095 5b pop ebx 00096 8b e5 mov esp, ebp 00098 5d pop ebp 00099 c3 ret 0 0009a cc int 3 0009b cc int 3 0009c cc int 3 0009d cc int 3 0009e cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a a0 mov ecx, DWORD PTR [edx-96] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ ENDP ; ATL::CSimpleStringT::Empty ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@PB_W@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _pszSrc$ = 8 ; size = 4 ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@PB_W@Z PROC ; ATL::CSimpleStringT::operator=, COMDAT ; _this$ = ecx ; 313 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 314 : SetString( pszSrc ); 0000c 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp] 0000f 50 push eax 00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00013 e8 00 00 00 00 call ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_W@Z ; ATL::CSimpleStringT::SetString ; 315 : ; 316 : return( *this ); 00018 8b 45 fc mov eax, DWORD PTR _this$[ebp] ; 317 : } 0001b 5f pop edi 0001c 5e pop esi 0001d 5b pop ebx 0001e 8b e5 mov esp, ebp 00020 5d pop ebp 00021 c2 04 00 ret 4 ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@PB_W@Z ENDP ; ATL::CSimpleStringT::operator= _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@ABV01@@Z _TEXT SEGMENT tv84 = -88 ; size = 4 tv86 = -84 ; size = 4 _pNewData$1 = -16 ; size = 4 _pOldData$ = -12 ; size = 4 _pSrcData$ = -8 ; size = 4 _this$ = -4 ; size = 4 _strSrc$ = 8 ; size = 4 ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@ABV01@@Z PROC ; ATL::CSimpleStringT::operator=, COMDAT ; _this$ = ecx ; 271 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 58 sub esp, 88 ; 00000058H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 272 : CStringData* pSrcData = strSrc.GetData(); 0000c 8b 4d 08 mov ecx, DWORD PTR _strSrc$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 89 45 f8 mov DWORD PTR _pSrcData$[ebp], eax ; 273 : CStringData* pOldData = GetData(); 00017 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0001a e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 0001f 89 45 f4 mov DWORD PTR _pOldData$[ebp], eax ; 274 : if( pSrcData != pOldData) 00022 8b 45 f8 mov eax, DWORD PTR _pSrcData$[ebp] 00025 3b 45 f4 cmp eax, DWORD PTR _pOldData$[ebp] 00028 74 66 je SHORT $LN2@operator ; 275 : { ; 276 : if( pOldData->IsLocked() || pSrcData->pStringMgr != pOldData->pStringMgr ) 0002a 8b 4d f4 mov ecx, DWORD PTR _pOldData$[ebp] 0002d e8 00 00 00 00 call ?IsLocked@CStringData@ATL@@QBE_NXZ ; ATL::CStringData::IsLocked 00032 0f b6 c0 movzx eax, al 00035 85 c0 test eax, eax 00037 75 0c jne SHORT $LN5@operator 00039 8b 45 f8 mov eax, DWORD PTR _pSrcData$[ebp] 0003c 8b 4d f4 mov ecx, DWORD PTR _pOldData$[ebp] 0003f 8b 10 mov edx, DWORD PTR [eax] 00041 3b 11 cmp edx, DWORD PTR [ecx] 00043 74 28 je SHORT $LN3@operator $LN5@operator: ; 277 : { ; 278 : SetString( strSrc.GetString(), strSrc.GetLength() ); 00045 8b 4d 08 mov ecx, DWORD PTR _strSrc$[ebp] 00048 e8 00 00 00 00 call ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT::GetLength 0004d 89 45 ac mov DWORD PTR tv86[ebp], eax 00050 8b 4d 08 mov ecx, DWORD PTR _strSrc$[ebp] 00053 e8 00 00 00 00 call ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT::GetString 00058 89 45 a8 mov DWORD PTR tv84[ebp], eax 0005b 8b 45 ac mov eax, DWORD PTR tv86[ebp] 0005e 50 push eax 0005f 8b 4d a8 mov ecx, DWORD PTR tv84[ebp] 00062 51 push ecx 00063 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00066 e8 00 00 00 00 call ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z ; ATL::CSimpleStringT::SetString ; 279 : } 0006b eb 23 jmp SHORT $LN2@operator $LN3@operator: ; 280 : else ; 281 : { ; 282 : CStringData* pNewData = CloneData( pSrcData ); 0006d 8b 45 f8 mov eax, DWORD PTR _pSrcData$[ebp] 00070 50 push eax 00071 e8 00 00 00 00 call ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z ; ATL::CSimpleStringT::CloneData 00076 83 c4 04 add esp, 4 00079 89 45 f0 mov DWORD PTR _pNewData$1[ebp], eax ; 283 : pOldData->Release(); 0007c 8b 4d f4 mov ecx, DWORD PTR _pOldData$[ebp] 0007f e8 00 00 00 00 call ?Release@CStringData@ATL@@QAEXXZ ; ATL::CStringData::Release ; 284 : Attach( pNewData ); 00084 8b 45 f0 mov eax, DWORD PTR _pNewData$1[ebp] 00087 50 push eax 00088 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0008b e8 00 00 00 00 call ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach $LN2@operator: ; 285 : } ; 286 : } ; 287 : ; 288 : return( *this ); 00090 8b 45 fc mov eax, DWORD PTR _this$[ebp] ; 289 : } 00093 5f pop edi 00094 5e pop esi 00095 5b pop ebx 00096 8b e5 mov esp, ebp 00098 5d pop ebp 00099 c2 04 00 ret 4 ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@ABV01@@Z ENDP ; ATL::CSimpleStringT::operator= _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ _TEXT SEGMENT _pData$ = -8 ; size = 4 _this$ = -4 ; size = 4 ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ PROC ; ATL::CSimpleStringT::~CSimpleStringT, COMDAT ; _this$ = ecx ; 260 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 261 : CStringData* pData = GetData(); 0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 89 45 f8 mov DWORD PTR _pData$[ebp], eax ; 262 : pData->Release(); 00017 8b 4d f8 mov ecx, DWORD PTR _pData$[ebp] 0001a e8 00 00 00 00 call ?Release@CStringData@ATL@@QAEXXZ ; ATL::CStringData::Release ; 263 : } 0001f 5f pop edi 00020 5e pop esi 00021 5b pop ebx 00022 8b e5 mov esp, ebp 00024 5d pop ebp 00025 c3 ret 0 ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ENDP ; ATL::CSimpleStringT::~CSimpleStringT _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@ABV01@@Z _TEXT SEGMENT _pNewData$ = -12 ; size = 4 _pSrcData$ = -8 ; size = 4 _this$ = -4 ; size = 4 _strSrc$ = 8 ; size = 4 ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@ABV01@@Z PROC ; ATL::CSimpleStringT::CSimpleStringT, COMDAT ; _this$ = ecx ; 210 : CSimpleStringT(_In_ const CSimpleStringT& strSrc) 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 211 : { ; 212 : CStringData* pSrcData = strSrc.GetData(); 0000c 8b 4d 08 mov ecx, DWORD PTR _strSrc$[ebp] 0000f e8 00 00 00 00 call ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT::GetData 00014 89 45 f8 mov DWORD PTR _pSrcData$[ebp], eax ; 213 : CStringData* pNewData = CloneData( pSrcData ); 00017 8b 45 f8 mov eax, DWORD PTR _pSrcData$[ebp] 0001a 50 push eax 0001b e8 00 00 00 00 call ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z ; ATL::CSimpleStringT::CloneData 00020 83 c4 04 add esp, 4 00023 89 45 f4 mov DWORD PTR _pNewData$[ebp], eax ; 214 : Attach( pNewData ); 00026 8b 45 f4 mov eax, DWORD PTR _pNewData$[ebp] 00029 50 push eax 0002a 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0002d e8 00 00 00 00 call ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach ; 215 : } 00032 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00035 5f pop edi 00036 5e pop esi 00037 5b pop ebx 00038 8b e5 mov esp, ebp 0003a 5d pop ebp 0003b c2 04 00 ret 4 ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@ABV01@@Z ENDP ; ATL::CSimpleStringT::CSimpleStringT _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z _TEXT SEGMENT tv65 = -80 ; size = 4 _pData$ = -12 ; size = 4 ___atl_condVal$1 = -8 ; size = 4 _this$ = -4 ; size = 4 _pStringMgr$ = 8 ; size = 4 ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z PROC ; ATL::CSimpleStringT::CSimpleStringT, COMDAT ; _this$ = ecx ; 203 : explicit CSimpleStringT(_Inout_ IAtlStringMgr* pStringMgr) 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx $LN4@CSimpleStr: ; 204 : { ; 205 : ATLENSURE( pStringMgr != NULL ); 0000c 83 7d 08 00 cmp DWORD PTR _pStringMgr$[ebp], 0 00010 74 09 je SHORT $LN10@CSimpleStr 00012 c7 45 b0 01 00 00 00 mov DWORD PTR tv65[ebp], 1 00019 eb 07 jmp SHORT $LN11@CSimpleStr $LN10@CSimpleStr: 0001b c7 45 b0 00 00 00 00 mov DWORD PTR tv65[ebp], 0 $LN11@CSimpleStr: 00022 8b 45 b0 mov eax, DWORD PTR tv65[ebp] 00025 89 45 f8 mov DWORD PTR ___atl_condVal$1[ebp], eax $LN5@CSimpleStr: 00028 33 c0 xor eax, eax 0002a 75 fc jne SHORT $LN5@CSimpleStr 0002c 83 7d f8 00 cmp DWORD PTR ___atl_condVal$1[ebp], 0 00030 75 0a jne SHORT $LN2@CSimpleStr 00032 68 05 40 00 80 push -2147467259 ; 80004005H 00037 e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl $LN2@CSimpleStr: 0003c 33 c0 xor eax, eax 0003e 75 cc jne SHORT $LN4@CSimpleStr ; 206 : CStringData* pData = pStringMgr->GetNilString(); 00040 8b 45 08 mov eax, DWORD PTR _pStringMgr$[ebp] 00043 8b 10 mov edx, DWORD PTR [eax] 00045 8b 4d 08 mov ecx, DWORD PTR _pStringMgr$[ebp] 00048 8b 42 0c mov eax, DWORD PTR [edx+12] 0004b ff d0 call eax 0004d 89 45 f4 mov DWORD PTR _pData$[ebp], eax ; 207 : Attach( pData ); 00050 8b 45 f4 mov eax, DWORD PTR _pData$[ebp] 00053 50 push eax 00054 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00057 e8 00 00 00 00 call ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT::Attach ; 208 : } 0005c 8b 45 fc mov eax, DWORD PTR _this$[ebp] $LN9@CSimpleStr: 0005f 5f pop edi 00060 5e pop esi 00061 5b pop ebx 00062 8b e5 mov esp, ebp 00064 5d pop ebp 00065 c2 04 00 ret 4 ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z ENDP ; ATL::CSimpleStringT::CSimpleStringT _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ?ConvertToBaseType@?$ChTraitsCRT@_W@ATL@@SAXPA_WHPB_WH@Z _TEXT SEGMENT _pszDest$ = 8 ; size = 4 _nDestLength$ = 12 ; size = 4 _pszSrc$ = 16 ; size = 4 _nSrcLength$ = 20 ; size = 4 ?ConvertToBaseType@?$ChTraitsCRT@_W@ATL@@SAXPA_WHPB_WH@Z PROC ; ATL::ChTraitsCRT::ConvertToBaseType, COMDAT ; 789 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 790 : if (nSrcLength == -1) { nSrcLength=1 + GetBaseTypeLength(pszSrc); } 00009 83 7d 14 ff cmp DWORD PTR _nSrcLength$[ebp], -1 0000d 75 12 jne SHORT $LN2@ConvertToB 0000f 8b 45 10 mov eax, DWORD PTR _pszSrc$[ebp] 00012 50 push eax 00013 e8 00 00 00 00 call ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z ; ATL::ChTraitsCRT::GetBaseTypeLength 00018 83 c4 04 add esp, 4 0001b 83 c0 01 add eax, 1 0001e 89 45 14 mov DWORD PTR _nSrcLength$[ebp], eax $LN2@ConvertToB: ; 791 : // nLen is in wchar_ts ; 792 : Checked::wmemcpy_s(pszDest, nDestLength, pszSrc, nSrcLength); 00021 8b 45 14 mov eax, DWORD PTR _nSrcLength$[ebp] 00024 50 push eax 00025 8b 4d 10 mov ecx, DWORD PTR _pszSrc$[ebp] 00028 51 push ecx 00029 8b 55 0c mov edx, DWORD PTR _nDestLength$[ebp] 0002c 52 push edx 0002d 8b 45 08 mov eax, DWORD PTR _pszDest$[ebp] 00030 50 push eax 00031 e8 00 00 00 00 call ?wmemcpy_s@Checked@ATL@@YAXPA_WIPB_WI@Z ; ATL::Checked::wmemcpy_s 00036 83 c4 10 add esp, 16 ; 00000010H ; 793 : } 00039 5f pop edi 0003a 5e pop esi 0003b 5b pop ebx 0003c 8b e5 mov esp, ebp 0003e 5d pop ebp 0003f c3 ret 0 ?ConvertToBaseType@?$ChTraitsCRT@_W@ATL@@SAXPA_WHPB_WH@Z ENDP ; ATL::ChTraitsCRT::ConvertToBaseType _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WH@Z _TEXT SEGMENT _pszSrc$ = 8 ; size = 4 _nLength$ = 12 ; size = 4 ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WH@Z PROC ; ATL::ChTraitsCRT::GetBaseTypeLength, COMDAT ; 768 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 769 : (void)pszSrc; ; 770 : // Returns required buffer size in wchar_ts ; 771 : return nLength; 00009 8b 45 0c mov eax, DWORD PTR _nLength$[ebp] ; 772 : } 0000c 5f pop edi 0000d 5e pop esi 0000e 5b pop ebx 0000f 8b e5 mov esp, ebp 00011 5d pop ebp 00012 c3 ret 0 ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WH@Z ENDP ; ATL::ChTraitsCRT::GetBaseTypeLength _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\cstringt.h ; COMDAT ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z _TEXT SEGMENT __$EHRec$ = -12 ; size = 12 _pszSrc$ = 8 ; size = 4 ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z PROC ; ATL::ChTraitsCRT::GetBaseTypeLength, COMDAT ; 760 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 40 sub esp, 64 ; 00000040H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 761 : // Returns required buffer size in wchar_ts ; 762 : return AtlStrLen( pszSrc ); 00028 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp] 0002b 50 push eax 0002c e8 00 00 00 00 call ?AtlStrLen@ATL@@YAHPB_W@Z ; ATL::AtlStrLen 00031 83 c4 04 add esp, 4 ; 763 : } 00034 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 00037 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 0003e 59 pop ecx 0003f 5f pop edi 00040 5e pop esi 00041 5b pop ebx 00042 8b e5 mov esp, ebp 00044 5d pop ebp 00045 c3 ret 0 00046 cc int 3 00047 cc int 3 00048 cc int 3 00049 cc int 3 0004a cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a b0 mov ecx, DWORD PTR [edx-80] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z ENDP ; ATL::ChTraitsCRT::GetBaseTypeLength ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?Release@CStringData@ATL@@QAEXXZ _TEXT SEGMENT tv79 = -76 ; size = 4 tv77 = -72 ; size = 4 _this$ = -4 ; size = 4 ?Release@CStringData@ATL@@QAEXXZ PROC ; ATL::CStringData::Release, COMDAT ; _this$ = ecx ; 85 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 86 : ATLASSERT( nRefs != 0 ); ; 87 : ; 88 : if( _InterlockedDecrement( &nRefs ) <= 0 ) 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 c0 0c add eax, 12 ; 0000000cH 00012 83 c9 ff or ecx, -1 00015 f0 0f c1 08 lock xadd DWORD PTR [eax], ecx 00019 49 dec ecx 0001a 85 c9 test ecx, ecx 0001c 7f 1f jg SHORT $LN1@Release ; 89 : { ; 90 : pStringMgr->Free( this ); 0001e 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00021 8b 08 mov ecx, DWORD PTR [eax] 00023 89 4d b8 mov DWORD PTR tv77[ebp], ecx 00026 8b 55 fc mov edx, DWORD PTR _this$[ebp] 00029 8b 02 mov eax, DWORD PTR [edx] 0002b 8b 08 mov ecx, DWORD PTR [eax] 0002d 8b 51 04 mov edx, DWORD PTR [ecx+4] 00030 89 55 b4 mov DWORD PTR tv79[ebp], edx 00033 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00036 50 push eax 00037 8b 4d b8 mov ecx, DWORD PTR tv77[ebp] 0003a ff 55 b4 call DWORD PTR tv79[ebp] $LN1@Release: ; 91 : } ; 92 : } 0003d 5f pop edi 0003e 5e pop esi 0003f 5b pop ebx 00040 8b e5 mov esp, ebp 00042 5d pop ebp 00043 c3 ret 0 ?Release@CStringData@ATL@@QAEXXZ ENDP ; ATL::CStringData::Release _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?IsShared@CStringData@ATL@@QBE_NXZ _TEXT SEGMENT tv66 = -72 ; size = 4 _this$ = -4 ; size = 4 ?IsShared@CStringData@ATL@@QBE_NXZ PROC ; ATL::CStringData::IsShared, COMDAT ; _this$ = ecx ; 72 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 73 : return( nRefs > 1 ); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 78 0c 01 cmp DWORD PTR [eax+12], 1 00013 7e 09 jle SHORT $LN3@IsShared 00015 c7 45 b8 01 00 00 00 mov DWORD PTR tv66[ebp], 1 0001c eb 07 jmp SHORT $LN4@IsShared $LN3@IsShared: 0001e c7 45 b8 00 00 00 00 mov DWORD PTR tv66[ebp], 0 $LN4@IsShared: 00025 8a 45 b8 mov al, BYTE PTR tv66[ebp] ; 74 : } 00028 5f pop edi 00029 5e pop esi 0002a 5b pop ebx 0002b 8b e5 mov esp, ebp 0002d 5d pop ebp 0002e c3 ret 0 ?IsShared@CStringData@ATL@@QBE_NXZ ENDP ; ATL::CStringData::IsShared _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?IsLocked@CStringData@ATL@@QBE_NXZ _TEXT SEGMENT tv66 = -72 ; size = 4 _this$ = -4 ; size = 4 ?IsLocked@CStringData@ATL@@QBE_NXZ PROC ; ATL::CStringData::IsLocked, COMDAT ; _this$ = ecx ; 68 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 69 : return nRefs < 0; 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 78 0c 00 cmp DWORD PTR [eax+12], 0 00013 7d 09 jge SHORT $LN3@IsLocked 00015 c7 45 b8 01 00 00 00 mov DWORD PTR tv66[ebp], 1 0001c eb 07 jmp SHORT $LN4@IsLocked $LN3@IsLocked: 0001e c7 45 b8 00 00 00 00 mov DWORD PTR tv66[ebp], 0 $LN4@IsLocked: 00025 8a 45 b8 mov al, BYTE PTR tv66[ebp] ; 70 : } 00028 5f pop edi 00029 5e pop esi 0002a 5b pop ebx 0002b 8b e5 mov esp, ebp 0002d 5d pop ebp 0002e c3 ret 0 ?IsLocked@CStringData@ATL@@QBE_NXZ ENDP ; ATL::CStringData::IsLocked _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?AddRef@CStringData@ATL@@QAEXXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?AddRef@CStringData@ATL@@QAEXXZ PROC ; ATL::CStringData::AddRef, COMDAT ; _this$ = ecx ; 63 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 64 : ATLASSERT(nRefs > 0); ; 65 : _InterlockedIncrement(&nRefs); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 c0 0c add eax, 12 ; 0000000cH 00012 f0 ff 00 lock inc DWORD PTR [eax] ; 66 : } 00015 5f pop edi 00016 5e pop esi 00017 5b pop ebx 00018 8b e5 mov esp, ebp 0001a 5d pop ebp 0001b c3 ret 0 ?AddRef@CStringData@ATL@@QAEXXZ ENDP ; ATL::CStringData::AddRef _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlsimpstr.h ; COMDAT ?data@CStringData@ATL@@QAEPAXXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?data@CStringData@ATL@@QAEPAXXZ PROC ; ATL::CStringData::data, COMDAT ; _this$ = ecx ; 58 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 59 : return (this+1); 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 c0 10 add eax, 16 ; 00000010H ; 60 : } 00012 5f pop edi 00013 5e pop esi 00014 5b pop ebx 00015 8b e5 mov esp, ebp 00017 5d pop ebp 00018 c3 ret 0 ?data@CStringData@ATL@@QAEPAXXZ ENDP ; ATL::CStringData::data _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlcore.h ; COMDAT ?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z _TEXT SEGMENT _hResource$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 _hInstance$ = 8 ; size = 4 _id$ = 12 ; size = 4 ?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z PROC ; ATL::AtlGetStringResourceImage, COMDAT ; 370 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 44 sub esp, 68 ; 00000044H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 371 : HRSRC hResource; ; 372 : /* ; 373 : The and operation (& static_cast(~0)) protects the expression from being greater ; 374 : than WORD - this would cause a runtime error when the application is compiled with /RTCc flag. ; 375 : */ ; 376 : hResource = ::FindResourceW(hInstance, MAKEINTRESOURCEW( (((id>>4)+1) & static_cast(~0)) ), (LPWSTR) RT_STRING); 00028 6a 06 push 6 0002a 8b 45 0c mov eax, DWORD PTR _id$[ebp] 0002d c1 e8 04 shr eax, 4 00030 83 c0 01 add eax, 1 00033 25 ff ff 00 00 and eax, 65535 ; 0000ffffH 00038 0f b7 c8 movzx ecx, ax 0003b 51 push ecx 0003c 8b 55 08 mov edx, DWORD PTR _hInstance$[ebp] 0003f 52 push edx 00040 ff 15 00 00 00 00 call DWORD PTR __imp__FindResourceW@12 00046 89 45 f0 mov DWORD PTR _hResource$[ebp], eax ; 377 : if( hResource == NULL ) 00049 83 7d f0 00 cmp DWORD PTR _hResource$[ebp], 0 0004d 75 04 jne SHORT $LN2@AtlGetStri ; 378 : { ; 379 : return( NULL ); 0004f 33 c0 xor eax, eax 00051 eb 14 jmp SHORT $LN1@AtlGetStri $LN2@AtlGetStri: ; 380 : } ; 381 : ; 382 : return _AtlGetStringResourceImage( hInstance, hResource, id ); 00053 8b 45 0c mov eax, DWORD PTR _id$[ebp] 00056 50 push eax 00057 8b 4d f0 mov ecx, DWORD PTR _hResource$[ebp] 0005a 51 push ecx 0005b 8b 55 08 mov edx, DWORD PTR _hInstance$[ebp] 0005e 52 push edx 0005f e8 00 00 00 00 call ?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z ; ATL::_AtlGetStringResourceImage 00064 83 c4 0c add esp, 12 ; 0000000cH $LN1@AtlGetStri: ; 383 : } 00067 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 0006a 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 00071 59 pop ecx 00072 5f pop edi 00073 5e pop esi 00074 5b pop ebx 00075 8b e5 mov esp, ebp 00077 5d pop ebp 00078 c3 ret 0 00079 cc int 3 0007a cc int 3 0007b cc int 3 0007c cc int 3 0007d cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a ac mov ecx, DWORD PTR [edx-84] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z ENDP ; ATL::AtlGetStringResourceImage ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlcore.h ; COMDAT ?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z _TEXT SEGMENT _iIndex$ = -32 ; size = 4 _hGlobal$ = -28 ; size = 4 _nResourceSize$ = -24 ; size = 4 _pImageEnd$ = -20 ; size = 4 _pImage$ = -16 ; size = 4 __$EHRec$ = -12 ; size = 12 _hInstance$ = 8 ; size = 4 _hResource$ = 12 ; size = 4 _id$ = 16 ; size = 4 ?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z PROC ; ATL::_AtlGetStringResourceImage, COMDAT ; 327 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 6a ff push -1 00005 68 00 00 00 00 push __ehhandler$?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z 0000a 64 a1 00 00 00 00 mov eax, DWORD PTR fs:0 00010 50 push eax 00011 83 ec 54 sub esp, 84 ; 00000054H 00014 53 push ebx 00015 56 push esi 00016 57 push edi 00017 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0001c 33 c5 xor eax, ebp 0001e 50 push eax 0001f 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp] 00022 64 a3 00 00 00 00 mov DWORD PTR fs:0, eax ; 328 : const ATLSTRINGRESOURCEIMAGE* pImage; ; 329 : const ATLSTRINGRESOURCEIMAGE* pImageEnd; ; 330 : ULONG nResourceSize; ; 331 : HGLOBAL hGlobal; ; 332 : UINT iIndex; ; 333 : ; 334 : hGlobal = ::LoadResource( hInstance, hResource ); 00028 8b 45 0c mov eax, DWORD PTR _hResource$[ebp] 0002b 50 push eax 0002c 8b 4d 08 mov ecx, DWORD PTR _hInstance$[ebp] 0002f 51 push ecx 00030 ff 15 00 00 00 00 call DWORD PTR __imp__LoadResource@8 00036 89 45 e4 mov DWORD PTR _hGlobal$[ebp], eax ; 335 : if( hGlobal == NULL ) 00039 83 7d e4 00 cmp DWORD PTR _hGlobal$[ebp], 0 0003d 75 07 jne SHORT $LN4@AtlGetStri ; 336 : { ; 337 : return( NULL ); 0003f 33 c0 xor eax, eax 00041 e9 80 00 00 00 jmp $LN1@AtlGetStri $LN4@AtlGetStri: ; 338 : } ; 339 : ; 340 : pImage = (const ATLSTRINGRESOURCEIMAGE*)::LockResource( hGlobal ); 00046 8b 45 e4 mov eax, DWORD PTR _hGlobal$[ebp] 00049 50 push eax 0004a ff 15 00 00 00 00 call DWORD PTR __imp__LockResource@4 00050 89 45 f0 mov DWORD PTR _pImage$[ebp], eax ; 341 : if( pImage == NULL ) 00053 83 7d f0 00 cmp DWORD PTR _pImage$[ebp], 0 00057 75 04 jne SHORT $LN5@AtlGetStri ; 342 : { ; 343 : return( NULL ); 00059 33 c0 xor eax, eax 0005b eb 69 jmp SHORT $LN1@AtlGetStri $LN5@AtlGetStri: ; 344 : } ; 345 : ; 346 : nResourceSize = ::SizeofResource( hInstance, hResource ); 0005d 8b 45 0c mov eax, DWORD PTR _hResource$[ebp] 00060 50 push eax 00061 8b 4d 08 mov ecx, DWORD PTR _hInstance$[ebp] 00064 51 push ecx 00065 ff 15 00 00 00 00 call DWORD PTR __imp__SizeofResource@8 0006b 89 45 e8 mov DWORD PTR _nResourceSize$[ebp], eax ; 347 : pImageEnd = (const ATLSTRINGRESOURCEIMAGE*)(LPBYTE( pImage )+nResourceSize); 0006e 8b 45 f0 mov eax, DWORD PTR _pImage$[ebp] 00071 03 45 e8 add eax, DWORD PTR _nResourceSize$[ebp] 00074 89 45 ec mov DWORD PTR _pImageEnd$[ebp], eax ; 348 : iIndex = id&0x000f; 00077 8b 45 10 mov eax, DWORD PTR _id$[ebp] 0007a 83 e0 0f and eax, 15 ; 0000000fH 0007d 89 45 e0 mov DWORD PTR _iIndex$[ebp], eax $LN2@AtlGetStri: ; 349 : ; 350 : while( (iIndex > 0) && (pImage < pImageEnd) ) 00080 83 7d e0 00 cmp DWORD PTR _iIndex$[ebp], 0 00084 76 23 jbe SHORT $LN3@AtlGetStri 00086 8b 45 f0 mov eax, DWORD PTR _pImage$[ebp] 00089 3b 45 ec cmp eax, DWORD PTR _pImageEnd$[ebp] 0008c 73 1b jae SHORT $LN3@AtlGetStri ; 351 : { ; 352 : pImage = (const ATLSTRINGRESOURCEIMAGE*)(LPBYTE( pImage )+(sizeof( ATLSTRINGRESOURCEIMAGE )+(pImage->nLength*sizeof( WCHAR )))); 0008e 8b 45 f0 mov eax, DWORD PTR _pImage$[ebp] 00091 0f b7 08 movzx ecx, WORD PTR [eax] 00094 8b 55 f0 mov edx, DWORD PTR _pImage$[ebp] 00097 8d 44 4a 02 lea eax, DWORD PTR [edx+ecx*2+2] 0009b 89 45 f0 mov DWORD PTR _pImage$[ebp], eax ; 353 : iIndex--; 0009e 8b 45 e0 mov eax, DWORD PTR _iIndex$[ebp] 000a1 83 e8 01 sub eax, 1 000a4 89 45 e0 mov DWORD PTR _iIndex$[ebp], eax ; 354 : } 000a7 eb d7 jmp SHORT $LN2@AtlGetStri $LN3@AtlGetStri: ; 355 : if( pImage >= pImageEnd ) 000a9 8b 45 f0 mov eax, DWORD PTR _pImage$[ebp] 000ac 3b 45 ec cmp eax, DWORD PTR _pImageEnd$[ebp] 000af 72 04 jb SHORT $LN6@AtlGetStri ; 356 : { ; 357 : return( NULL ); 000b1 33 c0 xor eax, eax 000b3 eb 11 jmp SHORT $LN1@AtlGetStri $LN6@AtlGetStri: ; 358 : } ; 359 : if( pImage->nLength == 0 ) 000b5 8b 45 f0 mov eax, DWORD PTR _pImage$[ebp] 000b8 0f b7 08 movzx ecx, WORD PTR [eax] 000bb 85 c9 test ecx, ecx 000bd 75 04 jne SHORT $LN7@AtlGetStri ; 360 : { ; 361 : return( NULL ); 000bf 33 c0 xor eax, eax 000c1 eb 03 jmp SHORT $LN1@AtlGetStri $LN7@AtlGetStri: ; 362 : } ; 363 : ; 364 : return( pImage ); 000c3 8b 45 f0 mov eax, DWORD PTR _pImage$[ebp] $LN1@AtlGetStri: ; 365 : } 000c6 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp] 000c9 64 89 0d 00 00 00 00 mov DWORD PTR fs:0, ecx 000d0 59 pop ecx 000d1 5f pop edi 000d2 5e pop esi 000d3 5b pop ebx 000d4 8b e5 mov esp, ebp 000d6 5d pop ebp 000d7 c3 ret 0 000d8 cc int 3 000d9 cc int 3 000da cc int 3 000db cc int 3 000dc cc int 3 _TEXT ENDS ; COMDAT text$x text$x SEGMENT __ehhandler$?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z: 00000 90 npad 1 00001 90 npad 1 00002 8b 54 24 08 mov edx, DWORD PTR [esp+8] 00006 8d 42 0c lea eax, DWORD PTR [edx+12] 00009 8b 4a 9c mov ecx, DWORD PTR [edx-100] 0000c 33 c8 xor ecx, eax 0000e e8 00 00 00 00 call @__security_check_cookie@4 00013 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z 00018 e9 00 00 00 00 jmp ___CxxFrameHandler3 text$x ENDS ?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z ENDP ; ATL::_AtlGetStringResourceImage ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlcore.h ; COMDAT ?AtlStrLen@ATL@@YAHPB_W@Z _TEXT SEGMENT _str$ = 8 ; size = 4 ?AtlStrLen@ATL@@YAHPB_W@Z PROC ; ATL::AtlStrLen, COMDAT ; 60 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 61 : if (str == NULL) 00009 83 7d 08 00 cmp DWORD PTR _str$[ebp], 0 0000d 75 04 jne SHORT $LN2@AtlStrLen ; 62 : return 0; 0000f 33 c0 xor eax, eax 00011 eb 0c jmp SHORT $LN1@AtlStrLen $LN2@AtlStrLen: ; 63 : return static_cast(::wcslen(str)); 00013 8b 45 08 mov eax, DWORD PTR _str$[ebp] 00016 50 push eax 00017 e8 00 00 00 00 call _wcslen 0001c 83 c4 04 add esp, 4 $LN1@AtlStrLen: ; 64 : } 0001f 5f pop edi 00020 5e pop esi 00021 5b pop ebx 00022 8b e5 mov esp, ebp 00024 5d pop ebp 00025 c3 ret 0 ?AtlStrLen@ATL@@YAHPB_W@Z ENDP ; ATL::AtlStrLen _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlchecked.h ; COMDAT ?wmemcpy_s@Checked@ATL@@YAXPA_WIPB_WI@Z _TEXT SEGMENT __S1$ = 8 ; size = 4 __N1$ = 12 ; size = 4 __S2$ = 16 ; size = 4 __N$ = 20 ; size = 4 ?wmemcpy_s@Checked@ATL@@YAXPA_WIPB_WI@Z PROC ; ATL::Checked::wmemcpy_s, COMDAT ; 77 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 78 : ATLMFC_CRT_ERRORCHECK(::wmemcpy_s(_S1, _N1, _S2, _N)); 00009 8b 45 14 mov eax, DWORD PTR __N$[ebp] 0000c 50 push eax 0000d 8b 4d 10 mov ecx, DWORD PTR __S2$[ebp] 00010 51 push ecx 00011 8b 55 0c mov edx, DWORD PTR __N1$[ebp] 00014 52 push edx 00015 8b 45 08 mov eax, DWORD PTR __S1$[ebp] 00018 50 push eax 00019 e8 00 00 00 00 call _wmemcpy_s 0001e 83 c4 10 add esp, 16 ; 00000010H 00021 50 push eax 00022 e8 00 00 00 00 call ?AfxCrtErrorCheck@@YAHH@Z ; AfxCrtErrorCheck 00027 83 c4 04 add esp, 4 ; 79 : } 0002a 5f pop edi 0002b 5e pop esi 0002c 5b pop ebx 0002d 8b e5 mov esp, ebp 0002f 5d pop ebp 00030 c3 ret 0 ?wmemcpy_s@Checked@ATL@@YAXPA_WIPB_WI@Z ENDP ; ATL::Checked::wmemcpy_s _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlexcept.h ; COMDAT ?AtlThrowImpl@ATL@@YGXJ@Z _TEXT SEGMENT _hr$ = 8 ; size = 4 ?AtlThrowImpl@ATL@@YGXJ@Z PROC ; ATL::AtlThrowImpl, COMDAT ; 65 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 66 : ATLTRACE(atlTraceException, 0, _T("AtlThrow: hr = 0x%x\n"), hr ); ; 67 : #ifdef _AFX ; 68 : if( hr == E_OUTOFMEMORY ) 00009 81 7d 08 0e 00 07 80 cmp DWORD PTR _hr$[ebp], -2147024882 ; 8007000eH 00010 75 07 jne SHORT $LN2@AtlThrowIm ; 69 : { ; 70 : AfxThrowMemoryException(); 00012 e8 00 00 00 00 call ?AfxThrowMemoryException@@YGXXZ ; AfxThrowMemoryException ; 71 : } 00017 eb 09 jmp SHORT $LN4@AtlThrowIm $LN2@AtlThrowIm: ; 72 : else ; 73 : { ; 74 : AfxThrowOleException( hr ); 00019 8b 45 08 mov eax, DWORD PTR _hr$[ebp] 0001c 50 push eax 0001d e8 00 00 00 00 call ?AfxThrowOleException@@YGXJ@Z ; AfxThrowOleException $LN4@AtlThrowIm: ; 75 : } ; 76 : #else ; 77 : throw CAtlException( hr ); ; 78 : #endif ; 79 : }; 00022 5f pop edi 00023 5e pop esi 00024 5b pop ebx 00025 8b e5 mov esp, ebp 00027 5d pop ebp 00028 c2 04 00 ret 4 ?AtlThrowImpl@ATL@@YGXJ@Z ENDP ; ATL::AtlThrowImpl _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afx.inl ; COMDAT ?Serialize@CObject@@UAEXAAVCArchive@@@Z _TEXT SEGMENT _this$ = -4 ; size = 4 ___formal$ = 8 ; size = 4 ?Serialize@CObject@@UAEXAAVCArchive@@@Z PROC ; CObject::Serialize, COMDAT ; _this$ = ecx ; 106 : { /* CObject does not serialize anything by default */ } 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx 0000c 5f pop edi 0000d 5e pop esi 0000e 5b pop ebx 0000f 8b e5 mov esp, ebp 00011 5d pop ebp 00012 c2 04 00 ret 4 ?Serialize@CObject@@UAEXAAVCArchive@@@Z ENDP ; CObject::Serialize _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afx.inl ; COMDAT ??3CObject@@SGXPAX@Z _TEXT SEGMENT _p$ = 8 ; size = 4 ??3CObject@@SGXPAX@Z PROC ; CObject::operator delete, COMDAT ; 112 : { ::operator delete(p); } 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 8b 45 08 mov eax, DWORD PTR _p$[ebp] 0000c 50 push eax 0000d e8 00 00 00 00 call ??3@YAXPAX@Z ; operator delete 00012 83 c4 04 add esp, 4 00015 5f pop edi 00016 5e pop esi 00017 5b pop ebx 00018 8b e5 mov esp, ebp 0001a 5d pop ebp 0001b c2 04 00 ret 4 ??3CObject@@SGXPAX@Z ENDP ; CObject::operator delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afx.h ; COMDAT ?AfxCrtErrorCheck@@YAHH@Z _TEXT SEGMENT tv64 = -68 ; size = 4 _error$ = 8 ; size = 4 ?AfxCrtErrorCheck@@YAHH@Z PROC ; AfxCrtErrorCheck, COMDAT ; 506 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 507 : switch(error) 00009 8b 45 08 mov eax, DWORD PTR _error$[ebp] 0000c 89 45 bc mov DWORD PTR tv64[ebp], eax 0000f 83 7d bc 50 cmp DWORD PTR tv64[ebp], 80 ; 00000050H 00013 77 21 ja SHORT $LN9@AfxCrtErro 00015 8b 4d bc mov ecx, DWORD PTR tv64[ebp] 00018 0f b6 91 00 00 00 00 movzx edx, BYTE PTR $LN11@AfxCrtErro[ecx] 0001f ff 24 95 00 00 00 00 jmp DWORD PTR $LN12@AfxCrtErro[edx*4] $LN4@AfxCrtErro: ; 508 : { ; 509 : case ENOMEM: ; 510 : AfxThrowMemoryException(); 00026 e8 00 00 00 00 call ?AfxThrowMemoryException@@YGXXZ ; AfxThrowMemoryException ; 511 : break; 0002b eb 0e jmp SHORT $LN2@AfxCrtErro $LN6@AfxCrtErro: ; 512 : case EINVAL: ; 513 : case ERANGE: ; 514 : AfxThrowInvalidArgException(); 0002d e8 00 00 00 00 call ?AfxThrowInvalidArgException@@YGXXZ ; AfxThrowInvalidArgException ; 515 : break; 00032 eb 07 jmp SHORT $LN2@AfxCrtErro $LN8@AfxCrtErro: ; 516 : case STRUNCATE: ; 517 : case 0: ; 518 : break; 00034 eb 05 jmp SHORT $LN2@AfxCrtErro $LN9@AfxCrtErro: ; 519 : default: ; 520 : AfxThrowInvalidArgException(); 00036 e8 00 00 00 00 call ?AfxThrowInvalidArgException@@YGXXZ ; AfxThrowInvalidArgException $LN2@AfxCrtErro: ; 521 : break; ; 522 : } ; 523 : return error; 0003b 8b 45 08 mov eax, DWORD PTR _error$[ebp] $LN10@AfxCrtErro: ; 524 : } 0003e 5f pop edi 0003f 5e pop esi 00040 5b pop ebx 00041 8b e5 mov esp, ebp 00043 5d pop ebp 00044 c3 ret 0 00045 0f 1f 00 npad 3 $LN12@AfxCrtErro: 00048 00 00 00 00 DD $LN8@AfxCrtErro 0004c 00 00 00 00 DD $LN4@AfxCrtErro 00050 00 00 00 00 DD $LN6@AfxCrtErro 00054 00 00 00 00 DD $LN9@AfxCrtErro $LN11@AfxCrtErro: 00058 00 DB 0 00059 03 DB 3 0005a 03 DB 3 0005b 03 DB 3 0005c 03 DB 3 0005d 03 DB 3 0005e 03 DB 3 0005f 03 DB 3 00060 03 DB 3 00061 03 DB 3 00062 03 DB 3 00063 03 DB 3 00064 01 DB 1 00065 03 DB 3 00066 03 DB 3 00067 03 DB 3 00068 03 DB 3 00069 03 DB 3 0006a 03 DB 3 0006b 03 DB 3 0006c 03 DB 3 0006d 03 DB 3 0006e 02 DB 2 0006f 03 DB 3 00070 03 DB 3 00071 03 DB 3 00072 03 DB 3 00073 03 DB 3 00074 03 DB 3 00075 03 DB 3 00076 03 DB 3 00077 03 DB 3 00078 03 DB 3 00079 03 DB 3 0007a 02 DB 2 0007b 03 DB 3 0007c 03 DB 3 0007d 03 DB 3 0007e 03 DB 3 0007f 03 DB 3 00080 03 DB 3 00081 03 DB 3 00082 03 DB 3 00083 03 DB 3 00084 03 DB 3 00085 03 DB 3 00086 03 DB 3 00087 03 DB 3 00088 03 DB 3 00089 03 DB 3 0008a 03 DB 3 0008b 03 DB 3 0008c 03 DB 3 0008d 03 DB 3 0008e 03 DB 3 0008f 03 DB 3 00090 03 DB 3 00091 03 DB 3 00092 03 DB 3 00093 03 DB 3 00094 03 DB 3 00095 03 DB 3 00096 03 DB 3 00097 03 DB 3 00098 03 DB 3 00099 03 DB 3 0009a 03 DB 3 0009b 03 DB 3 0009c 03 DB 3 0009d 03 DB 3 0009e 03 DB 3 0009f 03 DB 3 000a0 03 DB 3 000a1 03 DB 3 000a2 03 DB 3 000a3 03 DB 3 000a4 03 DB 3 000a5 03 DB 3 000a6 03 DB 3 000a7 03 DB 3 000a8 00 DB 0 ?AfxCrtErrorCheck@@YAHH@Z ENDP ; AfxCrtErrorCheck _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\winerror.h ; COMDAT _HRESULT_FROM_WIN32 _TEXT SEGMENT tv68 = -68 ; size = 4 _x$ = 8 ; size = 4 _HRESULT_FROM_WIN32 PROC ; COMDAT ; 29097: FORCEINLINE _Translates_Win32_to_HRESULT_(x) HRESULT HRESULT_FROM_WIN32(unsigned long x) { return (HRESULT)(x) <= 0 ? (HRESULT)(x) : (HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000);} 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 83 7d 08 00 cmp DWORD PTR _x$[ebp], 0 0000d 7f 08 jg SHORT $LN3@HRESULT_FR 0000f 8b 45 08 mov eax, DWORD PTR _x$[ebp] 00012 89 45 bc mov DWORD PTR tv68[ebp], eax 00015 eb 18 jmp SHORT $LN4@HRESULT_FR $LN3@HRESULT_FR: 00017 8b 4d 08 mov ecx, DWORD PTR _x$[ebp] 0001a 81 e1 ff ff 00 00 and ecx, 65535 ; 0000ffffH 00020 81 c9 00 00 07 00 or ecx, 458752 ; 00070000H 00026 81 c9 00 00 00 80 or ecx, -2147483648 ; 80000000H 0002c 89 4d bc mov DWORD PTR tv68[ebp], ecx $LN4@HRESULT_FR: 0002f 8b 45 bc mov eax, DWORD PTR tv68[ebp] 00032 5f pop edi 00033 5e pop esi 00034 5b pop ebx 00035 8b e5 mov esp, ebp 00037 5d pop ebp 00038 c3 ret 0 _HRESULT_FROM_WIN32 ENDP _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_memcpy_s.h ; COMDAT _memmove_s _TEXT SEGMENT tv74 = -80 ; size = 4 tv70 = -80 ; size = 4 tv66 = -80 ; size = 4 __Expr_val$1 = -12 ; size = 4 __Expr_val$2 = -8 ; size = 4 __Expr_val$3 = -4 ; size = 4 __Destination$ = 8 ; size = 4 __DestinationSize$ = 12 ; size = 4 __Source$ = 16 ; size = 4 __SourceSize$ = 20 ; size = 4 _memmove_s PROC ; COMDAT ; 73 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 74 : if (_SourceSize == 0) 00009 83 7d 14 00 cmp DWORD PTR __SourceSize$[ebp], 0 0000d 75 07 jne SHORT $LN2@memmove_s ; 75 : { ; 76 : return 0; 0000f 33 c0 xor eax, eax 00011 e9 c6 00 00 00 jmp $LN1@memmove_s $LN2@memmove_s: ; 77 : } ; 78 : ; 79 : _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Destination != NULL, EINVAL); 00016 83 7d 08 00 cmp DWORD PTR __Destination$[ebp], 0 0001a 74 09 je SHORT $LN7@memmove_s 0001c c7 45 b0 01 00 00 00 mov DWORD PTR tv66[ebp], 1 00023 eb 07 jmp SHORT $LN8@memmove_s $LN7@memmove_s: 00025 c7 45 b0 00 00 00 00 mov DWORD PTR tv66[ebp], 0 $LN8@memmove_s: 0002c 8b 45 b0 mov eax, DWORD PTR tv66[ebp] 0002f 89 45 fc mov DWORD PTR __Expr_val$3[ebp], eax 00032 83 7d fc 00 cmp DWORD PTR __Expr_val$3[ebp], 0 00036 75 1a jne SHORT $LN3@memmove_s 00038 e8 00 00 00 00 call __errno 0003d c7 00 16 00 00 00 mov DWORD PTR [eax], 22 ; 00000016H 00043 e8 00 00 00 00 call __invalid_parameter_noinfo 00048 b8 16 00 00 00 mov eax, 22 ; 00000016H 0004d e9 8a 00 00 00 jmp $LN1@memmove_s $LN3@memmove_s: ; 80 : _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Source != NULL, EINVAL); 00052 83 7d 10 00 cmp DWORD PTR __Source$[ebp], 0 00056 74 09 je SHORT $LN9@memmove_s 00058 c7 45 b0 01 00 00 00 mov DWORD PTR tv70[ebp], 1 0005f eb 07 jmp SHORT $LN10@memmove_s $LN9@memmove_s: 00061 c7 45 b0 00 00 00 00 mov DWORD PTR tv70[ebp], 0 $LN10@memmove_s: 00068 8b 45 b0 mov eax, DWORD PTR tv70[ebp] 0006b 89 45 f8 mov DWORD PTR __Expr_val$2[ebp], eax 0006e 83 7d f8 00 cmp DWORD PTR __Expr_val$2[ebp], 0 00072 75 17 jne SHORT $LN4@memmove_s 00074 e8 00 00 00 00 call __errno 00079 c7 00 16 00 00 00 mov DWORD PTR [eax], 22 ; 00000016H 0007f e8 00 00 00 00 call __invalid_parameter_noinfo 00084 b8 16 00 00 00 mov eax, 22 ; 00000016H 00089 eb 51 jmp SHORT $LN1@memmove_s $LN4@memmove_s: ; 81 : _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_DestinationSize >= _SourceSize, ERANGE); 0008b 8b 45 0c mov eax, DWORD PTR __DestinationSize$[ebp] 0008e 3b 45 14 cmp eax, DWORD PTR __SourceSize$[ebp] 00091 72 09 jb SHORT $LN11@memmove_s 00093 c7 45 b0 01 00 00 00 mov DWORD PTR tv74[ebp], 1 0009a eb 07 jmp SHORT $LN12@memmove_s $LN11@memmove_s: 0009c c7 45 b0 00 00 00 00 mov DWORD PTR tv74[ebp], 0 $LN12@memmove_s: 000a3 8b 4d b0 mov ecx, DWORD PTR tv74[ebp] 000a6 89 4d f4 mov DWORD PTR __Expr_val$1[ebp], ecx 000a9 83 7d f4 00 cmp DWORD PTR __Expr_val$1[ebp], 0 000ad 75 17 jne SHORT $LN5@memmove_s 000af e8 00 00 00 00 call __errno 000b4 c7 00 22 00 00 00 mov DWORD PTR [eax], 34 ; 00000022H 000ba e8 00 00 00 00 call __invalid_parameter_noinfo 000bf b8 22 00 00 00 mov eax, 34 ; 00000022H 000c4 eb 16 jmp SHORT $LN1@memmove_s $LN5@memmove_s: ; 82 : ; 83 : memmove(_Destination, _Source, _SourceSize); 000c6 8b 45 14 mov eax, DWORD PTR __SourceSize$[ebp] 000c9 50 push eax 000ca 8b 4d 10 mov ecx, DWORD PTR __Source$[ebp] 000cd 51 push ecx 000ce 8b 55 08 mov edx, DWORD PTR __Destination$[ebp] 000d1 52 push edx 000d2 e8 00 00 00 00 call _memmove 000d7 83 c4 0c add esp, 12 ; 0000000cH ; 84 : return 0; 000da 33 c0 xor eax, eax $LN1@memmove_s: ; 85 : } 000dc 5f pop edi 000dd 5e pop esi 000de 5b pop ebx 000df 8b e5 mov esp, ebp 000e1 5d pop ebp 000e2 c3 ret 0 _memmove_s ENDP _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_memcpy_s.h ; COMDAT _memcpy_s _TEXT SEGMENT tv79 = -80 ; size = 4 tv75 = -80 ; size = 4 tv66 = -80 ; size = 4 __Expr_val$1 = -12 ; size = 4 __Expr_val$2 = -8 ; size = 4 __Expr_val$3 = -4 ; size = 4 __Destination$ = 8 ; size = 4 __DestinationSize$ = 12 ; size = 4 __Source$ = 16 ; size = 4 __SourceSize$ = 20 ; size = 4 _memcpy_s PROC ; COMDAT ; 45 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 46 : if (_SourceSize == 0) 00009 83 7d 14 00 cmp DWORD PTR __SourceSize$[ebp], 0 0000d 75 07 jne SHORT $LN2@memcpy_s ; 47 : { ; 48 : return 0; 0000f 33 c0 xor eax, eax 00011 e9 f1 00 00 00 jmp $LN1@memcpy_s $LN2@memcpy_s: ; 49 : } ; 50 : ; 51 : _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Destination != NULL, EINVAL); 00016 83 7d 08 00 cmp DWORD PTR __Destination$[ebp], 0 0001a 74 09 je SHORT $LN9@memcpy_s 0001c c7 45 b0 01 00 00 00 mov DWORD PTR tv66[ebp], 1 00023 eb 07 jmp SHORT $LN10@memcpy_s $LN9@memcpy_s: 00025 c7 45 b0 00 00 00 00 mov DWORD PTR tv66[ebp], 0 $LN10@memcpy_s: 0002c 8b 45 b0 mov eax, DWORD PTR tv66[ebp] 0002f 89 45 fc mov DWORD PTR __Expr_val$3[ebp], eax 00032 83 7d fc 00 cmp DWORD PTR __Expr_val$3[ebp], 0 00036 75 1a jne SHORT $LN3@memcpy_s 00038 e8 00 00 00 00 call __errno 0003d c7 00 16 00 00 00 mov DWORD PTR [eax], 22 ; 00000016H 00043 e8 00 00 00 00 call __invalid_parameter_noinfo 00048 b8 16 00 00 00 mov eax, 22 ; 00000016H 0004d e9 b5 00 00 00 jmp $LN1@memcpy_s $LN3@memcpy_s: ; 52 : if (_Source == NULL || _DestinationSize < _SourceSize) 00052 83 7d 10 00 cmp DWORD PTR __Source$[ebp], 0 00056 74 0c je SHORT $LN5@memcpy_s 00058 8b 45 0c mov eax, DWORD PTR __DestinationSize$[ebp] 0005b 3b 45 14 cmp eax, DWORD PTR __SourceSize$[ebp] 0005e 0f 83 8d 00 00 00 jae $LN4@memcpy_s $LN5@memcpy_s: ; 53 : { ; 54 : memset(_Destination, 0, _DestinationSize); 00064 8b 45 0c mov eax, DWORD PTR __DestinationSize$[ebp] 00067 50 push eax 00068 6a 00 push 0 0006a 8b 4d 08 mov ecx, DWORD PTR __Destination$[ebp] 0006d 51 push ecx 0006e e8 00 00 00 00 call _memset 00073 83 c4 0c add esp, 12 ; 0000000cH ; 55 : ; 56 : _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_Source != NULL, EINVAL); 00076 83 7d 10 00 cmp DWORD PTR __Source$[ebp], 0 0007a 74 09 je SHORT $LN11@memcpy_s 0007c c7 45 b0 01 00 00 00 mov DWORD PTR tv75[ebp], 1 00083 eb 07 jmp SHORT $LN12@memcpy_s $LN11@memcpy_s: 00085 c7 45 b0 00 00 00 00 mov DWORD PTR tv75[ebp], 0 $LN12@memcpy_s: 0008c 8b 45 b0 mov eax, DWORD PTR tv75[ebp] 0008f 89 45 f8 mov DWORD PTR __Expr_val$2[ebp], eax 00092 83 7d f8 00 cmp DWORD PTR __Expr_val$2[ebp], 0 00096 75 17 jne SHORT $LN6@memcpy_s 00098 e8 00 00 00 00 call __errno 0009d c7 00 16 00 00 00 mov DWORD PTR [eax], 22 ; 00000016H 000a3 e8 00 00 00 00 call __invalid_parameter_noinfo 000a8 b8 16 00 00 00 mov eax, 22 ; 00000016H 000ad eb 58 jmp SHORT $LN1@memcpy_s $LN6@memcpy_s: ; 57 : _CRT_MEMCPY_S_VALIDATE_RETURN_ERRCODE(_DestinationSize >= _SourceSize, ERANGE); 000af 8b 45 0c mov eax, DWORD PTR __DestinationSize$[ebp] 000b2 3b 45 14 cmp eax, DWORD PTR __SourceSize$[ebp] 000b5 72 09 jb SHORT $LN13@memcpy_s 000b7 c7 45 b0 01 00 00 00 mov DWORD PTR tv79[ebp], 1 000be eb 07 jmp SHORT $LN14@memcpy_s $LN13@memcpy_s: 000c0 c7 45 b0 00 00 00 00 mov DWORD PTR tv79[ebp], 0 $LN14@memcpy_s: 000c7 8b 4d b0 mov ecx, DWORD PTR tv79[ebp] 000ca 89 4d f4 mov DWORD PTR __Expr_val$1[ebp], ecx 000cd 83 7d f4 00 cmp DWORD PTR __Expr_val$1[ebp], 0 000d1 75 17 jne SHORT $LN7@memcpy_s 000d3 e8 00 00 00 00 call __errno 000d8 c7 00 22 00 00 00 mov DWORD PTR [eax], 34 ; 00000022H 000de e8 00 00 00 00 call __invalid_parameter_noinfo 000e3 b8 22 00 00 00 mov eax, 34 ; 00000022H 000e8 eb 1d jmp SHORT $LN1@memcpy_s $LN7@memcpy_s: ; 58 : ; 59 : // Unreachable, but required to suppress /analyze warnings: ; 60 : return EINVAL; 000ea b8 16 00 00 00 mov eax, 22 ; 00000016H 000ef eb 16 jmp SHORT $LN1@memcpy_s $LN4@memcpy_s: ; 61 : } ; 62 : memcpy(_Destination, _Source, _SourceSize); 000f1 8b 45 14 mov eax, DWORD PTR __SourceSize$[ebp] 000f4 50 push eax 000f5 8b 4d 10 mov ecx, DWORD PTR __Source$[ebp] 000f8 51 push ecx 000f9 8b 55 08 mov edx, DWORD PTR __Destination$[ebp] 000fc 52 push edx 000fd e8 00 00 00 00 call _memcpy 00102 83 c4 0c add esp, 12 ; 0000000cH ; 63 : return 0; 00105 33 c0 xor eax, eax $LN1@memcpy_s: ; 64 : } 00107 5f pop edi 00108 5e pop esi 00109 5b pop ebx 0010a 8b e5 mov esp, ebp 0010c 5d pop ebp 0010d c3 ret 0 _memcpy_s ENDP _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ___formal$ = 16 ; size = 4 ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?__empty_global_delete@@YAXPAXI@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?__empty_global_delete@@YAXPAXI@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXI@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\SqlPool\SqlPool.cpp ; COMDAT ?__empty_global_delete@@YAXPAX@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ?__empty_global_delete@@YAXPAX@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAX@Z ENDP ; __empty_global_delete _TEXT ENDS END