SmsCenter/Release_Unicode/StringSort.cod
2025-01-03 16:47:25 +08:00

8271 lines
283 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0
TITLE D:\Works\Corpsms_2010\SmsCenter\Release_Unicode\StringSort.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 ___local_stdio_printf_options
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 ?AtlIsValidString@ATL@@YAHPB_WI@Z ; ATL::AtlIsValidString
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 ?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@Z ; ATL::ChTraitsCRT<wchar_t>::StringCompare
PUBLIC ?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z ; ATL::ChTraitsCRT<wchar_t>::GetFormattedLength
PUBLIC ?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z ; ATL::ChTraitsCRT<wchar_t>::Format
PUBLIC ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_W@Z ; ATL::ChTraitsCRT<wchar_t>::GetBaseTypeLength
PUBLIC ?GetBaseTypeLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WH@Z ; ATL::ChTraitsCRT<wchar_t>::GetBaseTypeLength
PUBLIC ?ConvertToBaseType@?$ChTraitsCRT@_W@ATL@@SAXPA_WHPB_WH@Z ; ATL::ChTraitsCRT<wchar_t>::ConvertToBaseType
PUBLIC ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@PAUIAtlStringMgr@1@@Z ; ATL::CSimpleStringT<wchar_t,0>::CSimpleStringT<wchar_t,0>
PUBLIC ??0?$CSimpleStringT@_W$0A@@ATL@@QAE@ABV01@@Z ; ATL::CSimpleStringT<wchar_t,0>::CSimpleStringT<wchar_t,0>
PUBLIC ??1?$CSimpleStringT@_W$0A@@ATL@@QAE@XZ ; ATL::CSimpleStringT<wchar_t,0>::~CSimpleStringT<wchar_t,0>
PUBLIC ??4?$CSimpleStringT@_W$0A@@ATL@@QAEAAV01@PB_W@Z ; ATL::CSimpleStringT<wchar_t,0>::operator=
PUBLIC ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
PUBLIC ?Empty@?$CSimpleStringT@_W$0A@@ATL@@QAEXXZ ; ATL::CSimpleStringT<wchar_t,0>::Empty
PUBLIC ?GetAllocLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT<wchar_t,0>::GetAllocLength
PUBLIC ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z ; ATL::CSimpleStringT<wchar_t,0>::GetBuffer
PUBLIC ?GetLength@?$CSimpleStringT@_W$0A@@ATL@@QBEHXZ ; ATL::CSimpleStringT<wchar_t,0>::GetLength
PUBLIC ?GetManager@?$CSimpleStringT@_W$0A@@ATL@@QBEPAUIAtlStringMgr@2@XZ ; ATL::CSimpleStringT<wchar_t,0>::GetManager
PUBLIC ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::GetString
PUBLIC ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z ; ATL::CSimpleStringT<wchar_t,0>::ReleaseBufferSetLength
PUBLIC ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_W@Z ; ATL::CSimpleStringT<wchar_t,0>::SetString
PUBLIC ?SetString@?$CSimpleStringT@_W$0A@@ATL@@QAEXPB_WH@Z ; ATL::CSimpleStringT<wchar_t,0>::SetString
PUBLIC ?CopyCharsOverlapped@?$CSimpleStringT@_W$0A@@ATL@@SAXPA_WIPB_WH@Z ; ATL::CSimpleStringT<wchar_t,0>::CopyCharsOverlapped
PUBLIC ?StringLength@?$CSimpleStringT@_W$0A@@ATL@@SAHPB_W@Z ; ATL::CSimpleStringT<wchar_t,0>::StringLength
PUBLIC ?ThrowMemoryException@?$CSimpleStringT@_W$0A@@ATL@@KAXXZ ; ATL::CSimpleStringT<wchar_t,0>::ThrowMemoryException
PUBLIC ?Attach@?$CSimpleStringT@_W$0A@@ATL@@AAEXPAUCStringData@2@@Z ; ATL::CSimpleStringT<wchar_t,0>::Attach
PUBLIC ?Fork@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT<wchar_t,0>::Fork
PUBLIC ?GetData@?$CSimpleStringT@_W$0A@@ATL@@ABEPAUCStringData@2@XZ ; ATL::CSimpleStringT<wchar_t,0>::GetData
PUBLIC ?PrepareWrite@?$CSimpleStringT@_W$0A@@ATL@@AAEPA_WH@Z ; ATL::CSimpleStringT<wchar_t,0>::PrepareWrite
PUBLIC ?PrepareWrite2@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT<wchar_t,0>::PrepareWrite2
PUBLIC ?Reallocate@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT<wchar_t,0>::Reallocate
PUBLIC ?SetLength@?$CSimpleStringT@_W$0A@@ATL@@AAEXH@Z ; ATL::CSimpleStringT<wchar_t,0>::SetLength
PUBLIC ?CloneData@?$CSimpleStringT@_W$0A@@ATL@@CAPAUCStringData@2@PAU32@@Z ; ATL::CSimpleStringT<wchar_t,0>::CloneData
PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
PUBLIC ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
PUBLIC ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
PUBLIC ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::operator=
PUBLIC ?GetManager@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEPAUIAtlStringMgr@2@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::GetManager
PUBLIC ?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare
PUBLIC ?Format@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAAXPB_WZZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Format
PUBLIC ?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::FormatV
PUBLIC ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHI@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::LoadStringW
PUBLIC ?LoadStringW@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEHPAUHINSTANCE__@@I@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::LoadStringW
PUBLIC ??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator==
PUBLIC ??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator>
PUBLIC ??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator<=
PUBLIC ??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator>=
PUBLIC ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CheckImplicitLoad
PUBLIC ?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z ; StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> >::FindStringResourceInstance
PUBLIC ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ ; StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> >::GetDefaultManager
PUBLIC ?GetCount@CStringArray@@QBEHXZ ; CStringArray::GetCount
PUBLIC ?RemoveAll@CStringArray@@QAEXXZ ; CStringArray::RemoveAll
PUBLIC ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
PUBLIC ?Add@CStringArray@@QAEHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z ; CStringArray::Add
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 ??0CStringSort@@QAE@XZ ; CStringSort::CStringSort
PUBLIC ??1CStringSort@@UAE@XZ ; CStringSort::~CStringSort
PUBLIC ?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z ; CStringSort::Del
PUBLIC ?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringSort::Add
PUBLIC ?Clear@CStringSort@@QAEXXZ ; CStringSort::Clear
PUBLIC ?GetCount@CStringSort@@QAEJXZ ; CStringSort::GetCount
PUBLIC ?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z ; CStringSort::GetAt
PUBLIC ?Print@CStringSort@@QAEXXZ ; CStringSort::Print
PUBLIC ??_GCStringSort@@UAEPAXI@Z ; CStringSort::`scalar deleting destructor'
PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
PUBLIC ??_C@_11LOCGONAA@@ ; `string'
PUBLIC ??_7CCriticalSection@@6B@ ; CCriticalSection::`vftable'
PUBLIC ??_7CStringSort@@6B@ ; CStringSort::`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 ??_C@_1BG@LHNCPHKO@?$AA?$CF?$AA3?$AAd?$AA?5?$AA?5?$AA?5?$AA?$CF?$AAs?$AA?$AN?$AA?6@ ; `string'
PUBLIC ??_R4CStringSort@@6B@ ; CStringSort::`RTTI Complete Object Locator'
PUBLIC ??_R0?AVCStringSort@@@8 ; CStringSort `RTTI Type Descriptor'
PUBLIC ??_R3CStringSort@@8 ; CStringSort::`RTTI Class Hierarchy Descriptor'
PUBLIC ??_R2CStringSort@@8 ; CStringSort::`RTTI Base Class Array'
PUBLIC ??_R1A@?0A@EA@CStringSort@@8 ; CStringSort::`RTTI Base Class Descriptor at (0,-1,0,64)'
EXTRN ??3@YAXPAX@Z:PROC ; operator delete
EXTRN ??3@YAXPAXI@Z:PROC ; operator delete
EXTRN ?__global_delete@@YAXPAXI@Z:PROC ; __global_delete
EXTRN __invalid_parameter_noinfo:PROC
EXTRN __errno:PROC
EXTRN ___stdio_common_vswprintf:PROC
EXTRN ___stdio_common_vswprintf_s:PROC
EXTRN _memcpy:PROC
EXTRN _memmove:PROC
EXTRN _memset:PROC
EXTRN _wcscmp: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__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 ??0CStringArray@@QAE@XZ:PROC ; CStringArray::CStringArray
EXTRN ?SetSize@CStringArray@@QAEXHH@Z:PROC ; CStringArray::SetSize
EXTRN ?SetAtGrow@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z:PROC ; CStringArray::SetAtGrow
EXTRN ?InsertAt@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z:PROC ; CStringArray::InsertAt
EXTRN ?RemoveAt@CStringArray@@QAEXHH@Z:PROC ; CStringArray::RemoveAt
EXTRN ??1CStringArray@@UAE@XZ:PROC ; CStringArray::~CStringArray
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 ??_ECStringSort@@UAEPAXI@Z:PROC ; CStringSort::`vector deleting destructor'
EXTRN @__security_check_cookie@4:PROC
EXTRN ___CxxFrameHandler3:PROC
EXTRN ??_7type_info@@6B@:QWORD ; type_info::`vftable'
EXTRN ___security_cookie:DWORD
; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA
_BSS SEGMENT
?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage
_BSS ENDS
; COMDAT ??_R1A@?0A@EA@CStringSort@@8
rdata$r SEGMENT
??_R1A@?0A@EA@CStringSort@@8 DD FLAT:??_R0?AVCStringSort@@@8 ; CStringSort::`RTTI Base Class Descriptor at (0,-1,0,64)'
DD 00H
DD 00H
DD 0ffffffffH
DD 00H
DD 040H
DD FLAT:??_R3CStringSort@@8
rdata$r ENDS
; COMDAT ??_R2CStringSort@@8
rdata$r SEGMENT
??_R2CStringSort@@8 DD FLAT:??_R1A@?0A@EA@CStringSort@@8 ; CStringSort::`RTTI Base Class Array'
rdata$r ENDS
; COMDAT ??_R3CStringSort@@8
rdata$r SEGMENT
??_R3CStringSort@@8 DD 00H ; CStringSort::`RTTI Class Hierarchy Descriptor'
DD 00H
DD 01H
DD FLAT:??_R2CStringSort@@8
rdata$r ENDS
; COMDAT ??_R0?AVCStringSort@@@8
data$rs SEGMENT
??_R0?AVCStringSort@@@8 DD FLAT:??_7type_info@@6B@ ; CStringSort `RTTI Type Descriptor'
DD 00H
DB '.?AVCStringSort@@', 00H
data$rs ENDS
; COMDAT ??_R4CStringSort@@6B@
rdata$r SEGMENT
??_R4CStringSort@@6B@ DD 00H ; CStringSort::`RTTI Complete Object Locator'
DD 00H
DD 00H
DD FLAT:??_R0?AVCStringSort@@@8
DD FLAT:??_R3CStringSort@@8
rdata$r ENDS
; COMDAT ??_C@_1BG@LHNCPHKO@?$AA?$CF?$AA3?$AAd?$AA?5?$AA?5?$AA?5?$AA?$CF?$AAs?$AA?$AN?$AA?6@
CONST SEGMENT
??_C@_1BG@LHNCPHKO@?$AA?$CF?$AA3?$AAd?$AA?5?$AA?5?$AA?5?$AA?$CF?$AAs?$AA?$AN?$AA?6@ DB '%'
DB 00H, '3', 00H, 'd', 00H, ' ', 00H, ' ', 00H, ' ', 00H, '%', 00H
DB 's', 00H, 0dH, 00H, 0aH, 00H, 00H, 00H ; `string'
CONST 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 ??_7CStringSort@@6B@
CONST SEGMENT
??_7CStringSort@@6B@ DD FLAT:??_R4CStringSort@@6B@ ; CStringSort::`vftable'
DD FLAT:??_ECStringSort@@UAEPAXI@Z
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 ??_C@_11LOCGONAA@@
CONST SEGMENT
??_C@_11LOCGONAA@@ DB 00H, 00H ; `string'
CONST ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 01eH
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__unwindtable$?Print@CStringSort@@QAEXXZ DD 0ffffffffH
DD FLAT:__unwindfunclet$?Print@CStringSort@@QAEXXZ$0
DD 00H
DD FLAT:__unwindfunclet$?Print@CStringSort@@QAEXXZ$1
__ehfuncinfo$?Print@CStringSort@@QAEXXZ DD 019930522H
DD 02H
DD FLAT:__unwindtable$?Print@CStringSort@@QAEXXZ
DD 2 DUP(00H)
DD 2 DUP(00H)
DD 00H
DD 00H
xdata$x ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 02fH
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__unwindtable$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z DD 0ffffffffH
DD FLAT:__unwindfunclet$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z$1
DD 00H
DD FLAT:__unwindfunclet$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z$0
__ehfuncinfo$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z DD 019930522H
DD 02H
DD FLAT:__unwindtable$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@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$?GetCount@CStringSort@@QAEJXZ DD 0ffffffffH
DD FLAT:__unwindfunclet$?GetCount@CStringSort@@QAEJXZ$0
__ehfuncinfo$?GetCount@CStringSort@@QAEJXZ DD 019930522H
DD 01H
DD FLAT:__unwindtable$?GetCount@CStringSort@@QAEJXZ
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
__catchsym$?Clear@CStringSort@@QAEXXZ$3 DD 00H
DD 00H
DD 00H
DD FLAT:__catch$?Clear@CStringSort@@QAEXXZ$0
__tryblocktable$?Clear@CStringSort@@QAEXXZ DD 00H
DD 01H
DD 02H
DD 01H
DD FLAT:__catchsym$?Clear@CStringSort@@QAEXXZ$3
__unwindtable$?Clear@CStringSort@@QAEXXZ DD 0ffffffffH
DD 00H
DD 00H
DD FLAT:__unwindfunclet$?Clear@CStringSort@@QAEXXZ$2
DD 0ffffffffH
DD 00H
__ehfuncinfo$?Clear@CStringSort@@QAEXXZ DD 019930522H
DD 03H
DD FLAT:__unwindtable$?Clear@CStringSort@@QAEXXZ
DD 01H
DD FLAT:__tryblocktable$?Clear@CStringSort@@QAEXXZ
DD 2 DUP(00H)
DD 00H
DD 00H
xdata$x ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 01eH
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__catchsym$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$4 DD 00H
DD 00H
DD 00H
DD FLAT:__catch$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$0
__tryblocktable$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z DD 01H
DD 02H
DD 03H
DD 01H
DD FLAT:__catchsym$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$4
__unwindtable$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z DD 0ffffffffH
DD FLAT:__unwindfunclet$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$2
DD 00H
DD 00H
DD 01H
DD FLAT:__unwindfunclet$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$3
DD 00H
DD 00H
__ehfuncinfo$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z DD 019930522H
DD 04H
DD FLAT:__unwindtable$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z
DD 01H
DD FLAT:__tryblocktable$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z
DD 2 DUP(00H)
DD 00H
DD 00H
xdata$x ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 01eH
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__catchsym$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$4 DD 00H
DD 00H
DD 00H
DD FLAT:__catch$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$0
__tryblocktable$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z DD 01H
DD 02H
DD 03H
DD 01H
DD FLAT:__catchsym$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$4
__unwindtable$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z DD 0ffffffffH
DD FLAT:__unwindfunclet$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$2
DD 00H
DD 00H
DD 01H
DD FLAT:__unwindfunclet$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$3
DD 00H
DD 00H
__ehfuncinfo$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z DD 019930522H
DD 04H
DD FLAT:__unwindtable$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z
DD 01H
DD FLAT:__tryblocktable$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z
DD 2 DUP(00H)
DD 00H
DD 00H
xdata$x ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 024H
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__unwindtable$??1CStringSort@@UAE@XZ DD 0ffffffffH
DD FLAT:__unwindfunclet$??1CStringSort@@UAE@XZ$0
DD 00H
DD FLAT:__unwindfunclet$??1CStringSort@@UAE@XZ$1
__ehfuncinfo$??1CStringSort@@UAE@XZ DD 019930522H
DD 02H
DD FLAT:__unwindtable$??1CStringSort@@UAE@XZ
DD 2 DUP(00H)
DD 2 DUP(00H)
DD 00H
DD 04H
xdata$x ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 024H
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__unwindtable$??0CStringSort@@QAE@XZ DD 0ffffffffH
DD FLAT:__unwindfunclet$??0CStringSort@@QAE@XZ$0
DD 00H
DD FLAT:__unwindfunclet$??0CStringSort@@QAE@XZ$1
__ehfuncinfo$??0CStringSort@@QAE@XZ DD 019930522H
DD 02H
DD FLAT:__unwindtable$??0CStringSort@@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 09H
voltbl ENDS
; COMDAT xdata$x
xdata$x SEGMENT
__ehfuncinfo$??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z DD 0ffffffffH
DD FLAT:__unwindfunclet$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z$0
__ehfuncinfo$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z DD 019930522H
DD 01H
DD FLAT:__unwindtable$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@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$??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_WPAUIAtlStringMgr@1@@Z DD 0ffffffffH
DD FLAT:__unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@Z$0
__ehfuncinfo$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@Z DD 019930522H
DD 01H
DD FLAT:__unwindtable$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@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@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$?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@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$?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@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$?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@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 ??_GCStringSort@@UAEPAXI@Z
_TEXT SEGMENT
_this$ = -4 ; size = 4
___flags$ = 8 ; size = 4
??_GCStringSort@@UAEPAXI@Z PROC ; CStringSort::`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 ??1CStringSort@@UAE@XZ ; CStringSort::~CStringSort
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 38 push 56 ; 00000038H
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
??_GCStringSort@@UAEPAXI@Z ENDP ; CStringSort::`scalar deleting destructor'
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ?Print@CStringSort@@QAEXXZ
_TEXT SEGMENT
tv88 = -108 ; size = 4
_l$2 = -40 ; size = 4
_str$ = -36 ; size = 4
_lCount$ = -32 ; size = 4
_cl$ = -28 ; size = 12
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
?Print@CStringSort@@QAEXXZ PROC ; CStringSort::Print, COMDAT
; _this$ = ecx
; 203 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?Print@CStringSort@@QAEXXZ
0000a 64 a1 00 00 00
00 mov eax, DWORD PTR fs:0
00010 50 push eax
00011 83 ec 60 sub esp, 96 ; 00000060H
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
; 204 : CSingleLock cl(&m_Lock,true);
0002b 6a 01 push 1
0002d 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
00030 83 c0 04 add eax, 4
00033 50 push eax
00034 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00037 e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock
0003c c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+8], 0
; 205 : #if _MSC_VER>=1300
; 206 : long lCount = m_strArray.GetCount();
00043 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
00046 83 c1 24 add ecx, 36 ; 00000024H
00049 e8 00 00 00 00 call ?GetCount@CStringArray@@QBEHXZ ; CStringArray::GetCount
0004e 89 45 e0 mov DWORD PTR _lCount$[ebp], eax
; 207 : #else
; 208 : long lCount = m_strArray.GetSize();
; 209 : #endif
; 210 : CString str;
00051 8d 4d dc lea ecx, DWORD PTR _str$[ebp]
00054 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00059 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+8], 1
; 211 : for ( long l=0 ; l<lCount ; l++ )
0005d c7 45 d8 00 00
00 00 mov DWORD PTR _l$2[ebp], 0
00064 eb 09 jmp SHORT $LN4@Print
$LN2@Print:
00066 8b 45 d8 mov eax, DWORD PTR _l$2[ebp]
00069 83 c0 01 add eax, 1
0006c 89 45 d8 mov DWORD PTR _l$2[ebp], eax
$LN4@Print:
0006f 8b 45 d8 mov eax, DWORD PTR _l$2[ebp]
00072 3b 45 e0 cmp eax, DWORD PTR _lCount$[ebp]
00075 7d 2f jge SHORT $LN3@Print
; 212 : {
; 213 : str.Format(_T("%3d %s\r\n") , l , m_strArray.GetAt(l));
00077 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
0007a 83 c0 24 add eax, 36 ; 00000024H
0007d 89 45 94 mov DWORD PTR tv88[ebp], eax
00080 8b 4d d8 mov ecx, DWORD PTR _l$2[ebp]
00083 51 push ecx
00084 8b 4d 94 mov ecx, DWORD PTR tv88[ebp]
00087 e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
0008c 8b 10 mov edx, DWORD PTR [eax]
0008e 52 push edx
0008f 8b 45 d8 mov eax, DWORD PTR _l$2[ebp]
00092 50 push eax
00093 68 00 00 00 00 push OFFSET ??_C@_1BG@LHNCPHKO@?$AA?$CF?$AA3?$AAd?$AA?5?$AA?5?$AA?5?$AA?$CF?$AAs?$AA?$AN?$AA?6@
00098 8d 4d dc lea ecx, DWORD PTR _str$[ebp]
0009b 51 push ecx
0009c e8 00 00 00 00 call ?Format@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAAXPB_WZZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Format
000a1 83 c4 10 add esp, 16 ; 00000010H
; 214 : TRACE(str);
; 215 : }
000a4 eb c0 jmp SHORT $LN2@Print
$LN3@Print:
; 216 : TRACE(_T("\r\n\r\n\r\n"));
; 217 : return ;
000a6 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+8], 0
000aa 8d 4d dc lea ecx, DWORD PTR _str$[ebp]
000ad e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
000b2 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
000b9 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
000bc e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
; 218 : }
000c1 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
000c4 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
000cb 59 pop ecx
000cc 5f pop edi
000cd 5e pop esi
000ce 5b pop ebx
000cf 8b e5 mov esp, ebp
000d1 5d pop ebp
000d2 c3 ret 0
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$?Print@CStringSort@@QAEXXZ$0:
00000 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00003 e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
__unwindfunclet$?Print@CStringSort@@QAEXXZ$1:
00008 8d 4d dc lea ecx, DWORD PTR _str$[ebp]
0000b e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00010 cc int 3
00011 cc int 3
00012 cc int 3
00013 cc int 3
00014 cc int 3
__ehhandler$?Print@CStringSort@@QAEXXZ:
00015 90 npad 1
00016 90 npad 1
00017 8b 54 24 08 mov edx, DWORD PTR [esp+8]
0001b 8d 42 0c lea eax, DWORD PTR [edx+12]
0001e 8b 4a 90 mov ecx, DWORD PTR [edx-112]
00021 33 c8 xor ecx, eax
00023 e8 00 00 00 00 call @__security_check_cookie@4
00028 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Print@CStringSort@@QAEXXZ
0002d e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?Print@CStringSort@@QAEXXZ ENDP ; CStringSort::Print
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z
_TEXT SEGMENT
tv86 = -104 ; size = 4
$T2 = -100 ; size = 4
_lCount$ = -32 ; size = 4
_cl$ = -28 ; size = 12
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
___$ReturnUdt$ = 8 ; size = 4
_lIndex$ = 12 ; size = 4
?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z PROC ; CStringSort::GetAt, COMDAT
; _this$ = ecx
; 185 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z
0000a 64 a1 00 00 00
00 mov eax, DWORD PTR fs:0
00010 50 push eax
00011 83 ec 5c sub esp, 92 ; 0000005cH
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 9c 00 00
00 00 mov DWORD PTR $T2[ebp], 0
; 186 : CSingleLock cl(&m_Lock,true);
00032 6a 01 push 1
00034 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
00037 83 c0 04 add eax, 4
0003a 50 push eax
0003b 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
0003e e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock
00043 c7 45 fc 01 00
00 00 mov DWORD PTR __$EHRec$[ebp+8], 1
; 187 : #if _MSC_VER>=1300
; 188 : long lCount = m_strArray.GetCount();
0004a 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
0004d 83 c1 24 add ecx, 36 ; 00000024H
00050 e8 00 00 00 00 call ?GetCount@CStringArray@@QBEHXZ ; CStringArray::GetCount
00055 89 45 e0 mov DWORD PTR _lCount$[ebp], eax
; 189 : #else
; 190 : long lCount = m_strArray.GetSize();
; 191 : #endif
; 192 : if ( lIndex>=0 && lIndex<lCount )
00058 83 7d 0c 00 cmp DWORD PTR _lIndex$[ebp], 0
0005c 7c 42 jl SHORT $LN2@GetAt
0005e 8b 45 0c mov eax, DWORD PTR _lIndex$[ebp]
00061 3b 45 e0 cmp eax, DWORD PTR _lCount$[ebp]
00064 7d 3a jge SHORT $LN2@GetAt
; 193 : {
; 194 : return m_strArray.GetAt(lIndex);
00066 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
00069 83 c0 24 add eax, 36 ; 00000024H
0006c 89 45 98 mov DWORD PTR tv86[ebp], eax
0006f 8b 4d 0c mov ecx, DWORD PTR _lIndex$[ebp]
00072 51 push ecx
00073 8b 4d 98 mov ecx, DWORD PTR tv86[ebp]
00076 e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
0007b 50 push eax
0007c 8b 4d 08 mov ecx, DWORD PTR ___$ReturnUdt$[ebp]
0007f e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@ABV01@@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00084 8b 55 9c mov edx, DWORD PTR $T2[ebp]
00087 83 ca 01 or edx, 1
0008a 89 55 9c mov DWORD PTR $T2[ebp], edx
0008d c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+8], 0
00091 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00094 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00099 8b 45 08 mov eax, DWORD PTR ___$ReturnUdt$[ebp]
0009c eb 35 jmp SHORT $LN1@GetAt
; 195 : }
0009e eb 27 jmp SHORT $LN3@GetAt
$LN2@GetAt:
; 196 : else
; 197 : {
; 198 : return CString(_T(""));
000a0 68 00 00 00 00 push OFFSET ??_C@_11LOCGONAA@@
000a5 8b 4d 08 mov ecx, DWORD PTR ___$ReturnUdt$[ebp]
000a8 e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
000ad 8b 45 9c mov eax, DWORD PTR $T2[ebp]
000b0 83 c8 01 or eax, 1
000b3 89 45 9c mov DWORD PTR $T2[ebp], eax
000b6 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+8], 0
000ba 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
000bd e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
000c2 8b 45 08 mov eax, DWORD PTR ___$ReturnUdt$[ebp]
000c5 eb 0c jmp SHORT $LN1@GetAt
$LN3@GetAt:
; 199 : }
; 200 : }
000c7 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+8], 0
000cb 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
000ce e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
$LN1@GetAt:
000d3 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
000d6 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
000dd 59 pop ecx
000de 5f pop edi
000df 5e pop esi
000e0 5b pop ebx
000e1 8b e5 mov esp, ebp
000e3 5d pop ebp
000e4 c2 08 00 ret 8
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z$0:
00000 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00003 e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
__unwindfunclet$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z$1:
00008 8b 45 9c mov eax, DWORD PTR $T2[ebp]
0000b 83 e0 01 and eax, 1
0000e 0f 84 0c 00 00
00 je $LN7@GetAt
00014 83 65 9c fe and DWORD PTR $T2[ebp], -2 ; fffffffeH
00018 8b 4d 08 mov ecx, DWORD PTR ___$ReturnUdt$[ebp]
0001b e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
$LN7@GetAt:
00020 c3 ret 0
00021 cc int 3
00022 cc int 3
00023 cc int 3
00024 cc int 3
00025 cc int 3
__ehhandler$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z:
00026 90 npad 1
00027 90 npad 1
00028 8b 54 24 08 mov edx, DWORD PTR [esp+8]
0002c 8d 42 0c lea eax, DWORD PTR [edx+12]
0002f 8b 4a 94 mov ecx, DWORD PTR [edx-108]
00032 33 c8 xor ecx, eax
00034 e8 00 00 00 00 call @__security_check_cookie@4
00039 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z
0003e e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?GetAt@CStringSort@@QAE?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@J@Z ENDP ; CStringSort::GetAt
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ?GetCount@CStringSort@@QAEJXZ
_TEXT SEGMENT
$T2 = -100 ; size = 4
_lCount$ = -32 ; size = 4
_cl$ = -28 ; size = 12
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
?GetCount@CStringSort@@QAEJXZ PROC ; CStringSort::GetCount, COMDAT
; _this$ = ecx
; 173 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?GetCount@CStringSort@@QAEJXZ
0000a 64 a1 00 00 00
00 mov eax, DWORD PTR fs:0
00010 50 push eax
00011 83 ec 58 sub esp, 88 ; 00000058H
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
; 174 : CSingleLock cl(&m_Lock,true);
0002b 6a 01 push 1
0002d 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
00030 83 c0 04 add eax, 4
00033 50 push eax
00034 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00037 e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock
0003c c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+8], 0
; 175 : #if _MSC_VER>=1300
; 176 : long lCount = m_strArray.GetCount();
00043 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
00046 83 c1 24 add ecx, 36 ; 00000024H
00049 e8 00 00 00 00 call ?GetCount@CStringArray@@QBEHXZ ; CStringArray::GetCount
0004e 89 45 e0 mov DWORD PTR _lCount$[ebp], eax
; 177 : #else
; 178 : long lCount = m_strArray.GetSize();
; 179 : #endif
; 180 :
; 181 : return lCount;
00051 8b 45 e0 mov eax, DWORD PTR _lCount$[ebp]
00054 89 45 9c mov DWORD PTR $T2[ebp], eax
00057 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
0005e 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00061 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00066 8b 45 9c mov eax, DWORD PTR $T2[ebp]
; 182 : }
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$?GetCount@CStringSort@@QAEJXZ$0:
00000 8d 4d e4 lea ecx, DWORD PTR _cl$[ebp]
00003 e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00008 cc int 3
00009 cc int 3
0000a cc int 3
0000b cc int 3
0000c cc int 3
__ehhandler$?GetCount@CStringSort@@QAEJXZ:
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 98 mov ecx, DWORD PTR [edx-104]
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$?GetCount@CStringSort@@QAEJXZ
00025 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?GetCount@CStringSort@@QAEJXZ ENDP ; CStringSort::GetCount
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ?Clear@CStringSort@@QAEXXZ
_TEXT SEGMENT
_cl$2 = -32 ; size = 12
_this$ = -20 ; size = 4
__$EHRec$ = -16 ; size = 16
?Clear@CStringSort@@QAEXXZ PROC ; CStringSort::Clear, COMDAT
; _this$ = ecx
; 159 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?Clear@CStringSort@@QAEXXZ
0000a 64 a1 00 00 00
00 mov eax, DWORD PTR fs:0
00010 50 push eax
00011 51 push ecx
00012 83 ec 50 sub esp, 80 ; 00000050H
00015 53 push ebx
00016 56 push esi
00017 57 push edi
00018 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
0001d 33 c5 xor eax, ebp
0001f 50 push eax
00020 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
00023 64 a3 00 00 00
00 mov DWORD PTR fs:0, eax
00029 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
0002c 89 4d ec mov DWORD PTR _this$[ebp], ecx
; 160 : try
0002f c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
; 161 : {
; 162 : CSingleLock cl(&m_Lock,true);
00036 6a 01 push 1
00038 8b 45 ec mov eax, DWORD PTR _this$[ebp]
0003b 83 c0 04 add eax, 4
0003e 50 push eax
0003f 8d 4d e0 lea ecx, DWORD PTR _cl$2[ebp]
00042 e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock
00047 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
; 163 : m_strArray.RemoveAll();
0004b 8b 4d ec mov ecx, DWORD PTR _this$[ebp]
0004e 83 c1 24 add ecx, 36 ; 00000024H
00051 e8 00 00 00 00 call ?RemoveAll@CStringArray@@QAEXXZ ; CStringArray::RemoveAll
; 164 : }
00056 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0
0005a 8d 4d e0 lea ecx, DWORD PTR _cl$2[ebp]
0005d e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00062 eb 06 jmp SHORT $LN4@Clear
__catch$?Clear@CStringSort@@QAEXXZ$0:
; 165 : catch(...)
; 166 : {
; 167 : }
00064 b8 00 00 00 00 mov eax, $LN8@Clear
00069 c3 ret 0
$LN4@Clear:
0006a c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
00071 eb 07 jmp SHORT $LN1@Clear
$LN8@Clear:
00073 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
$LN1@Clear:
; 168 :
; 169 : }
0007a 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
0007d 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
00084 59 pop ecx
00085 5f pop edi
00086 5e pop esi
00087 5b pop ebx
00088 8b e5 mov esp, ebp
0008a 5d pop ebp
0008b c3 ret 0
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$?Clear@CStringSort@@QAEXXZ$2:
00000 8d 4d e0 lea ecx, DWORD PTR _cl$2[ebp]
00003 e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00008 cc int 3
00009 cc int 3
0000a cc int 3
0000b cc int 3
0000c cc int 3
__ehhandler$?Clear@CStringSort@@QAEXXZ:
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 9c mov ecx, DWORD PTR [edx-100]
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$?Clear@CStringSort@@QAEXXZ
00025 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?Clear@CStringSort@@QAEXXZ ENDP ; CStringSort::Clear
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z
_TEXT SEGMENT
tv211 = -156 ; size = 4
tv203 = -156 ; size = 4
tv192 = -156 ; size = 4
tv180 = -156 ; size = 4
tv173 = -156 ; size = 4
tv163 = -156 ; size = 4
tv145 = -156 ; size = 4
tv138 = -156 ; size = 4
tv94 = -156 ; size = 4
tv84 = -156 ; size = 4
$T2 = -152 ; size = 4
$T3 = -148 ; size = 4
$T4 = -144 ; size = 4
$T5 = -140 ; size = 4
$T6 = -136 ; size = 4
$T7 = -132 ; size = 4
$T8 = -128 ; size = 4
_i$9 = -60 ; size = 4
_i$10 = -56 ; size = 4
_middle$11 = -52 ; size = 4
_type$12 = -48 ; size = 4
_right$13 = -44 ; size = 4
_left$14 = -40 ; size = 4
_lCount$15 = -36 ; size = 4
_cl$16 = -32 ; size = 12
_this$ = -20 ; size = 4
__$EHRec$ = -16 ; size = 16
_str$ = 8 ; size = 4
_bRe$ = 12 ; size = 4
?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z PROC ; CStringSort::Add, COMDAT
; _this$ = ecx
; 20 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z
0000a 64 a1 00 00 00
00 mov eax, DWORD PTR fs:0
00010 50 push eax
00011 51 push ecx
00012 81 ec 8c 00 00
00 sub esp, 140 ; 0000008cH
00018 53 push ebx
00019 56 push esi
0001a 57 push edi
0001b a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
00020 33 c5 xor eax, ebp
00022 50 push eax
00023 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
00026 64 a3 00 00 00
00 mov DWORD PTR fs:0, eax
0002c 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
0002f 89 4d ec mov DWORD PTR _this$[ebp], ecx
00032 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
; 21 : try
00039 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
; 22 : {
; 23 : CSingleLock cl(&m_Lock,true);
0003d 6a 01 push 1
0003f 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00042 83 c0 04 add eax, 4
00045 50 push eax
00046 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
00049 e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock
0004e c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
; 24 : //<2F><><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD>м<EFBFBD>ֵ
; 25 : #if _MSC_VER>=1300
; 26 : long lCount = m_strArray.GetCount();
00052 8b 4d ec mov ecx, DWORD PTR _this$[ebp]
00055 83 c1 24 add ecx, 36 ; 00000024H
00058 e8 00 00 00 00 call ?GetCount@CStringArray@@QBEHXZ ; CStringArray::GetCount
0005d 89 45 dc mov DWORD PTR _lCount$15[ebp], eax
; 27 : #else
; 28 : long lCount = m_strArray.GetSize();
; 29 : #endif
; 30 : if ( lCount<=0 ) //ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>
00060 83 7d dc 00 cmp DWORD PTR _lCount$15[ebp], 0
00064 7f 45 jg SHORT $LN11@Add
; 31 : {
; 32 : m_strArray.Add(str);
00066 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00069 83 c0 24 add eax, 36 ; 00000024H
0006c 89 85 64 ff ff
ff mov DWORD PTR tv84[ebp], eax
00072 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00075 51 push ecx
00076 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv84[ebp]
0007c e8 00 00 00 00 call ?Add@CStringArray@@QAEHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z ; CStringArray::Add
; 33 : return true;
00081 c7 45 80 01 00
00 00 mov DWORD PTR $T8[ebp], 1
00088 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
0008c 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
0008f e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00094 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
0009b 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
0009e e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
000a3 8b 45 80 mov eax, DWORD PTR $T8[ebp]
000a6 e9 54 03 00 00 jmp $LN1@Add
$LN11@Add:
; 34 : }
; 35 :
; 36 : long left=0;
000ab c7 45 d8 00 00
00 00 mov DWORD PTR _left$14[ebp], 0
; 37 : long right=lCount-1;
000b2 8b 45 dc mov eax, DWORD PTR _lCount$15[ebp]
000b5 83 e8 01 sub eax, 1
000b8 89 45 d4 mov DWORD PTR _right$13[ebp], eax
; 38 : long type=0; //0-סǰ<D7A1><C7B0><EFBFBD>ӣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
000bb c7 45 d0 00 00
00 00 mov DWORD PTR _type$12[ebp], 0
$LN2@Add:
; 39 : while(left<=right)
000c2 8b 45 d8 mov eax, DWORD PTR _left$14[ebp]
000c5 3b 45 d4 cmp eax, DWORD PTR _right$13[ebp]
000c8 0f 8f 20 01 00
00 jg $LN3@Add
; 40 : {
; 41 : long middle=(left+right)/2;
000ce 8b 45 d8 mov eax, DWORD PTR _left$14[ebp]
000d1 03 45 d4 add eax, DWORD PTR _right$13[ebp]
000d4 99 cdq
000d5 2b c2 sub eax, edx
000d7 d1 f8 sar eax, 1
000d9 89 45 cc mov DWORD PTR _middle$11[ebp], eax
; 42 : if (str==m_strArray.GetAt(middle) )
000dc 8b 45 ec mov eax, DWORD PTR _this$[ebp]
000df 83 c0 24 add eax, 36 ; 00000024H
000e2 89 85 64 ff ff
ff mov DWORD PTR tv94[ebp], eax
000e8 8b 4d cc mov ecx, DWORD PTR _middle$11[ebp]
000eb 51 push ecx
000ec 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv94[ebp]
000f2 e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
000f7 50 push eax
000f8 8d 55 08 lea edx, DWORD PTR _str$[ebp]
000fb 52 push edx
000fc e8 00 00 00 00 call ??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator==
00101 83 c4 08 add esp, 8
00104 0f b6 c0 movzx eax, al
00107 85 c0 test eax, eax
00109 0f 84 89 00 00
00 je $LN12@Add
; 43 : {
; 44 : if ( bRe ) //<2F><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
0010f 83 7d 0c 00 cmp DWORD PTR _bRe$[ebp], 0
00113 74 53 je SHORT $LN13@Add
; 45 : {
; 46 : m_strArray.InsertAt(middle,str);
00115 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00118 83 c0 24 add eax, 36 ; 00000024H
0011b 89 85 64 ff ff
ff mov DWORD PTR tv138[ebp], eax
00121 6a 01 push 1
00123 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00126 51 push ecx
00127 8b 55 cc mov edx, DWORD PTR _middle$11[ebp]
0012a 52 push edx
0012b 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv138[ebp]
00131 e8 00 00 00 00 call ?InsertAt@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::InsertAt
; 47 : return true;
00136 c7 85 7c ff ff
ff 01 00 00 00 mov DWORD PTR $T7[ebp], 1
00140 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
00144 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
00147 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
0014c c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
00153 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00156 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
0015b 8b 85 7c ff ff
ff mov eax, DWORD PTR $T7[ebp]
00161 e9 99 02 00 00 jmp $LN1@Add
; 48 : }
00166 eb 30 jmp SHORT $LN12@Add
$LN13@Add:
; 49 : else
; 50 : {
; 51 : return false;
00168 c7 85 78 ff ff
ff 00 00 00 00 mov DWORD PTR $T6[ebp], 0
00172 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
00176 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
00179 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
0017e c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
00185 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00188 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
0018d 8b 85 78 ff ff
ff mov eax, DWORD PTR $T6[ebp]
00193 e9 67 02 00 00 jmp $LN1@Add
$LN12@Add:
; 52 : }
; 53 : }
; 54 : if (str>m_strArray.GetAt(middle)) //<2F>Աȴ<D4B1>С
00198 8b 45 ec mov eax, DWORD PTR _this$[ebp]
0019b 83 c0 24 add eax, 36 ; 00000024H
0019e 89 85 64 ff ff
ff mov DWORD PTR tv145[ebp], eax
001a4 8b 4d cc mov ecx, DWORD PTR _middle$11[ebp]
001a7 51 push ecx
001a8 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv145[ebp]
001ae e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
001b3 50 push eax
001b4 8d 55 08 lea edx, DWORD PTR _str$[ebp]
001b7 52 push edx
001b8 e8 00 00 00 00 call ??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator>
001bd 83 c4 08 add esp, 8
001c0 0f b6 c0 movzx eax, al
001c3 85 c0 test eax, eax
001c5 74 12 je SHORT $LN15@Add
; 55 : {
; 56 : left=middle+1;
001c7 8b 45 cc mov eax, DWORD PTR _middle$11[ebp]
001ca 83 c0 01 add eax, 1
001cd 89 45 d8 mov DWORD PTR _left$14[ebp], eax
; 57 : type =0; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
001d0 c7 45 d0 00 00
00 00 mov DWORD PTR _type$12[ebp], 0
; 58 : }
001d7 eb 10 jmp SHORT $LN16@Add
$LN15@Add:
; 59 : else
; 60 : {
; 61 : right=middle-1;
001d9 8b 45 cc mov eax, DWORD PTR _middle$11[ebp]
001dc 83 e8 01 sub eax, 1
001df 89 45 d4 mov DWORD PTR _right$13[ebp], eax
; 62 : type=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
001e2 c7 45 d0 01 00
00 00 mov DWORD PTR _type$12[ebp], 1
$LN16@Add:
; 63 : }
; 64 : }
001e9 e9 d4 fe ff ff jmp $LN2@Add
$LN3@Add:
; 65 : if ( type==0 ) //str<74><72><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>
001ee 83 7d d0 00 cmp DWORD PTR _type$12[ebp], 0
001f2 0f 85 cd 00 00
00 jne $LN17@Add
; 66 : {
; 67 : if ( bRe ) //<2F><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
001f8 83 7d 0c 00 cmp DWORD PTR _bRe$[ebp], 0
001fc 74 76 je SHORT $LN18@Add
; 68 : {
; 69 : long i=0;
001fe c7 45 c8 00 00
00 00 mov DWORD PTR _i$10[ebp], 0
; 70 : for ( i=left;i<lCount;i++ )
00205 8b 45 d8 mov eax, DWORD PTR _left$14[ebp]
00208 89 45 c8 mov DWORD PTR _i$10[ebp], eax
0020b eb 09 jmp SHORT $LN6@Add
$LN4@Add:
0020d 8b 45 c8 mov eax, DWORD PTR _i$10[ebp]
00210 83 c0 01 add eax, 1
00213 89 45 c8 mov DWORD PTR _i$10[ebp], eax
$LN6@Add:
00216 8b 45 c8 mov eax, DWORD PTR _i$10[ebp]
00219 3b 45 dc cmp eax, DWORD PTR _lCount$15[ebp]
0021c 7d 33 jge SHORT $LN5@Add
; 71 : {
; 72 : if ( m_strArray.GetAt(i)>=str )
0021e 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00221 83 c0 24 add eax, 36 ; 00000024H
00224 89 85 64 ff ff
ff mov DWORD PTR tv163[ebp], eax
0022a 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
0022d 51 push ecx
0022e 8b 55 c8 mov edx, DWORD PTR _i$10[ebp]
00231 52 push edx
00232 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv163[ebp]
00238 e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
0023d 50 push eax
0023e e8 00 00 00 00 call ??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator>=
00243 83 c4 08 add esp, 8
00246 0f b6 c0 movzx eax, al
00249 85 c0 test eax, eax
0024b 74 02 je SHORT $LN20@Add
; 73 : {
; 74 : break;
0024d eb 02 jmp SHORT $LN5@Add
$LN20@Add:
; 75 : }
; 76 : }
0024f eb bc jmp SHORT $LN4@Add
$LN5@Add:
; 77 : m_strArray.InsertAt(i,str);
00251 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00254 83 c0 24 add eax, 36 ; 00000024H
00257 89 85 64 ff ff
ff mov DWORD PTR tv173[ebp], eax
0025d 6a 01 push 1
0025f 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00262 51 push ecx
00263 8b 55 c8 mov edx, DWORD PTR _i$10[ebp]
00266 52 push edx
00267 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv173[ebp]
0026d e8 00 00 00 00 call ?InsertAt@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::InsertAt
; 78 : }
00272 eb 51 jmp SHORT $LN17@Add
$LN18@Add:
; 79 : else
; 80 : {
; 81 : m_strArray.InsertAt(left,str);
00274 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00277 83 c0 24 add eax, 36 ; 00000024H
0027a 89 85 64 ff ff
ff mov DWORD PTR tv180[ebp], eax
00280 6a 01 push 1
00282 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00285 51 push ecx
00286 8b 55 d8 mov edx, DWORD PTR _left$14[ebp]
00289 52 push edx
0028a 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv180[ebp]
00290 e8 00 00 00 00 call ?InsertAt@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::InsertAt
; 82 : return true;
00295 c7 85 74 ff ff
ff 01 00 00 00 mov DWORD PTR $T5[ebp], 1
0029f c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
002a3 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
002a6 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
002ab c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
002b2 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
002b5 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
002ba 8b 85 74 ff ff
ff mov eax, DWORD PTR $T5[ebp]
002c0 e9 3a 01 00 00 jmp $LN1@Add
$LN17@Add:
; 83 : }
; 84 : }
; 85 : if ( type==1 )
002c5 83 7d d0 01 cmp DWORD PTR _type$12[ebp], 1
002c9 0f 85 ce 00 00
00 jne $LN21@Add
; 86 : {
; 87 : if ( bRe )
002cf 83 7d 0c 00 cmp DWORD PTR _bRe$[ebp], 0
002d3 74 77 je SHORT $LN22@Add
; 88 : {
; 89 : long i=0;
002d5 c7 45 c4 00 00
00 00 mov DWORD PTR _i$9[ebp], 0
; 90 : for ( i=right;i>0;i-- )
002dc 8b 45 d4 mov eax, DWORD PTR _right$13[ebp]
002df 89 45 c4 mov DWORD PTR _i$9[ebp], eax
002e2 eb 09 jmp SHORT $LN9@Add
$LN7@Add:
002e4 8b 45 c4 mov eax, DWORD PTR _i$9[ebp]
002e7 83 e8 01 sub eax, 1
002ea 89 45 c4 mov DWORD PTR _i$9[ebp], eax
$LN9@Add:
002ed 83 7d c4 00 cmp DWORD PTR _i$9[ebp], 0
002f1 7e 33 jle SHORT $LN8@Add
; 91 : {
; 92 : if ( m_strArray.GetAt(i)<=str )
002f3 8b 45 ec mov eax, DWORD PTR _this$[ebp]
002f6 83 c0 24 add eax, 36 ; 00000024H
002f9 89 85 64 ff ff
ff mov DWORD PTR tv192[ebp], eax
002ff 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00302 51 push ecx
00303 8b 55 c4 mov edx, DWORD PTR _i$9[ebp]
00306 52 push edx
00307 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv192[ebp]
0030d e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
00312 50 push eax
00313 e8 00 00 00 00 call ??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator<=
00318 83 c4 08 add esp, 8
0031b 0f b6 c0 movzx eax, al
0031e 85 c0 test eax, eax
00320 74 02 je SHORT $LN24@Add
; 93 : {
; 94 : break;
00322 eb 02 jmp SHORT $LN8@Add
$LN24@Add:
; 95 : }
; 96 : }
00324 eb be jmp SHORT $LN7@Add
$LN8@Add:
; 97 : m_strArray.InsertAt(i+1,str);
00326 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00329 83 c0 24 add eax, 36 ; 00000024H
0032c 89 85 64 ff ff
ff mov DWORD PTR tv203[ebp], eax
00332 6a 01 push 1
00334 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00337 51 push ecx
00338 8b 55 c4 mov edx, DWORD PTR _i$9[ebp]
0033b 83 c2 01 add edx, 1
0033e 52 push edx
0033f 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv203[ebp]
00345 e8 00 00 00 00 call ?InsertAt@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::InsertAt
; 98 : }
0034a eb 51 jmp SHORT $LN21@Add
$LN22@Add:
; 99 : else
; 100 : {
; 101 : m_strArray.InsertAt(right+1,str);
0034c 8b 45 ec mov eax, DWORD PTR _this$[ebp]
0034f 83 c0 24 add eax, 36 ; 00000024H
00352 89 85 64 ff ff
ff mov DWORD PTR tv211[ebp], eax
00358 6a 01 push 1
0035a 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
0035d 51 push ecx
0035e 8b 55 d4 mov edx, DWORD PTR _right$13[ebp]
00361 83 c2 01 add edx, 1
00364 52 push edx
00365 8b 8d 64 ff ff
ff mov ecx, DWORD PTR tv211[ebp]
0036b e8 00 00 00 00 call ?InsertAt@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::InsertAt
; 102 : return true;
00370 c7 85 70 ff ff
ff 01 00 00 00 mov DWORD PTR $T4[ebp], 1
0037a c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
0037e 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
00381 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00386 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
0038d 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00390 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00395 8b 85 70 ff ff
ff mov eax, DWORD PTR $T4[ebp]
0039b eb 62 jmp SHORT $LN1@Add
$LN21@Add:
; 103 : }
; 104 : }
; 105 : return false;
0039d c7 85 6c ff ff
ff 00 00 00 00 mov DWORD PTR $T3[ebp], 0
003a7 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
003ab 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
003ae e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
003b3 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
003ba 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
003bd e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
003c2 8b 85 6c ff ff
ff mov eax, DWORD PTR $T3[ebp]
003c8 eb 35 jmp SHORT $LN1@Add
__catch$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$0:
; 106 : }
; 107 : catch(...)
; 108 : {
; 109 : }
003ca b8 00 00 00 00 mov eax, $LN31@Add
003cf c3 ret 0
003d0 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
003d7 eb 07 jmp SHORT __tryend$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$1
$LN31@Add:
003d9 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
__tryend$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$1:
; 110 : return false;
003e0 c7 85 68 ff ff
ff 00 00 00 00 mov DWORD PTR $T2[ebp], 0
003ea c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
003f1 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
003f4 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
003f9 8b 85 68 ff ff
ff mov eax, DWORD PTR $T2[ebp]
$LN1@Add:
; 111 : }
003ff 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
00402 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
00409 59 pop ecx
0040a 5f pop edi
0040b 5e pop esi
0040c 5b pop ebx
0040d 8b e5 mov esp, ebp
0040f 5d pop ebp
00410 c2 08 00 ret 8
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$2:
00000 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00003 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
__unwindfunclet$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z$3:
00008 8d 4d e0 lea ecx, DWORD PTR _cl$16[ebp]
0000b e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00010 cc int 3
00011 cc int 3
00012 cc int 3
00013 cc int 3
00014 cc int 3
__ehhandler$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z:
00015 90 npad 1
00016 90 npad 1
00017 8b 54 24 08 mov edx, DWORD PTR [esp+8]
0001b 8d 42 0c lea eax, DWORD PTR [edx+12]
0001e 8b 8a 60 ff ff
ff mov ecx, DWORD PTR [edx-160]
00024 33 c8 xor ecx, eax
00026 e8 00 00 00 00 call @__security_check_cookie@4
0002b b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z
00030 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?Add@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ENDP ; CStringSort::Add
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z
_TEXT SEGMENT
tv138 = -136 ; size = 4
tv131 = -136 ; size = 4
tv89 = -136 ; size = 4
$T2 = -132 ; size = 4
$T3 = -128 ; size = 4
$T4 = -124 ; size = 4
$T5 = -120 ; size = 4
_middle$6 = -52 ; size = 4
_type$7 = -48 ; size = 4
_right$8 = -44 ; size = 4
_left$9 = -40 ; size = 4
_lCount$10 = -36 ; size = 4
_cl$11 = -32 ; size = 12
_this$ = -20 ; size = 4
__$EHRec$ = -16 ; size = 16
_str$ = 8 ; size = 4
?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z PROC ; CStringSort::Del, COMDAT
; _this$ = ecx
; 114 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z
0000a 64 a1 00 00 00
00 mov eax, DWORD PTR fs:0
00010 50 push eax
00011 51 push ecx
00012 83 ec 78 sub esp, 120 ; 00000078H
00015 53 push ebx
00016 56 push esi
00017 57 push edi
00018 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
0001d 33 c5 xor eax, ebp
0001f 50 push eax
00020 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
00023 64 a3 00 00 00
00 mov DWORD PTR fs:0, eax
00029 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
0002c 89 4d ec mov DWORD PTR _this$[ebp], ecx
0002f c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
; 115 : try
00036 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
; 116 : {
; 117 : CSingleLock cl(&m_Lock,true);
0003a 6a 01 push 1
0003c 8b 45 ec mov eax, DWORD PTR _this$[ebp]
0003f 83 c0 04 add eax, 4
00042 50 push eax
00043 8d 4d e0 lea ecx, DWORD PTR _cl$11[ebp]
00046 e8 00 00 00 00 call ??0CSingleLock@@QAE@PAVCSyncObject@@H@Z ; CSingleLock::CSingleLock
0004b c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
; 118 : //<2F><><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2>ҷ<EFBFBD><D2B7><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD>м<EFBFBD>ֵ
; 119 : #if _MSC_VER>=1300
; 120 : long lCount = m_strArray.GetCount();
0004f 8b 4d ec mov ecx, DWORD PTR _this$[ebp]
00052 83 c1 24 add ecx, 36 ; 00000024H
00055 e8 00 00 00 00 call ?GetCount@CStringArray@@QBEHXZ ; CStringArray::GetCount
0005a 89 45 dc mov DWORD PTR _lCount$10[ebp], eax
; 121 : #else
; 122 : long lCount = m_strArray.GetSize();
; 123 : #endif
; 124 : if ( lCount<=0 ) //ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>
0005d 83 7d dc 00 cmp DWORD PTR _lCount$10[ebp], 0
00061 7f 2a jg SHORT $LN5@Del
; 125 : {
; 126 : return false;
00063 c7 45 88 00 00
00 00 mov DWORD PTR $T5[ebp], 0
0006a c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
0006e 8d 4d e0 lea ecx, DWORD PTR _cl$11[ebp]
00071 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00076 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
0007d 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00080 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00085 8b 45 88 mov eax, DWORD PTR $T5[ebp]
00088 e9 4b 01 00 00 jmp $LN1@Del
$LN5@Del:
; 127 : }
; 128 :
; 129 : long left=0;
0008d c7 45 d8 00 00
00 00 mov DWORD PTR _left$9[ebp], 0
; 130 : long right=lCount-1;
00094 8b 45 dc mov eax, DWORD PTR _lCount$10[ebp]
00097 83 e8 01 sub eax, 1
0009a 89 45 d4 mov DWORD PTR _right$8[ebp], eax
; 131 : long type=0; //0-סǰ<D7A1><C7B0><EFBFBD>ӣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
0009d c7 45 d0 00 00
00 00 mov DWORD PTR _type$7[ebp], 0
$LN2@Del:
; 132 : while(left<=right)
000a4 8b 45 d8 mov eax, DWORD PTR _left$9[ebp]
000a7 3b 45 d4 cmp eax, DWORD PTR _right$8[ebp]
000aa 0f 8f cc 00 00
00 jg $LN3@Del
; 133 : {
; 134 : long middle=(left+right)/2;
000b0 8b 45 d8 mov eax, DWORD PTR _left$9[ebp]
000b3 03 45 d4 add eax, DWORD PTR _right$8[ebp]
000b6 99 cdq
000b7 2b c2 sub eax, edx
000b9 d1 f8 sar eax, 1
000bb 89 45 cc mov DWORD PTR _middle$6[ebp], eax
; 135 : if (str==m_strArray.GetAt(middle) )
000be 8b 45 ec mov eax, DWORD PTR _this$[ebp]
000c1 83 c0 24 add eax, 36 ; 00000024H
000c4 89 85 78 ff ff
ff mov DWORD PTR tv89[ebp], eax
000ca 8b 4d cc mov ecx, DWORD PTR _middle$6[ebp]
000cd 51 push ecx
000ce 8b 8d 78 ff ff
ff mov ecx, DWORD PTR tv89[ebp]
000d4 e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
000d9 50 push eax
000da 8d 55 08 lea edx, DWORD PTR _str$[ebp]
000dd 52 push edx
000de e8 00 00 00 00 call ??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator==
000e3 83 c4 08 add esp, 8
000e6 0f b6 c0 movzx eax, al
000e9 85 c0 test eax, eax
000eb 74 47 je SHORT $LN6@Del
; 136 : {
; 137 : m_strArray.RemoveAt(middle);
000ed 8b 45 ec mov eax, DWORD PTR _this$[ebp]
000f0 83 c0 24 add eax, 36 ; 00000024H
000f3 89 85 78 ff ff
ff mov DWORD PTR tv131[ebp], eax
000f9 6a 01 push 1
000fb 8b 4d cc mov ecx, DWORD PTR _middle$6[ebp]
000fe 51 push ecx
000ff 8b 8d 78 ff ff
ff mov ecx, DWORD PTR tv131[ebp]
00105 e8 00 00 00 00 call ?RemoveAt@CStringArray@@QAEXHH@Z ; CStringArray::RemoveAt
; 138 : return true;
0010a c7 45 84 01 00
00 00 mov DWORD PTR $T4[ebp], 1
00111 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
00115 8d 4d e0 lea ecx, DWORD PTR _cl$11[ebp]
00118 e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
0011d c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
00124 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00127 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
0012c 8b 45 84 mov eax, DWORD PTR $T4[ebp]
0012f e9 a4 00 00 00 jmp $LN1@Del
$LN6@Del:
; 139 : }
; 140 : if (str>m_strArray.GetAt(middle)) //<2F>Աȴ<D4B1>С
00134 8b 45 ec mov eax, DWORD PTR _this$[ebp]
00137 83 c0 24 add eax, 36 ; 00000024H
0013a 89 85 78 ff ff
ff mov DWORD PTR tv138[ebp], eax
00140 8b 4d cc mov ecx, DWORD PTR _middle$6[ebp]
00143 51 push ecx
00144 8b 8d 78 ff ff
ff mov ecx, DWORD PTR tv138[ebp]
0014a e8 00 00 00 00 call ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ; CStringArray::GetAt
0014f 50 push eax
00150 8d 55 08 lea edx, DWORD PTR _str$[ebp]
00153 52 push edx
00154 e8 00 00 00 00 call ??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ; ATL::operator>
00159 83 c4 08 add esp, 8
0015c 0f b6 c0 movzx eax, al
0015f 85 c0 test eax, eax
00161 74 0b je SHORT $LN7@Del
; 141 : {
; 142 : left=middle+1;
00163 8b 45 cc mov eax, DWORD PTR _middle$6[ebp]
00166 83 c0 01 add eax, 1
00169 89 45 d8 mov DWORD PTR _left$9[ebp], eax
; 143 : }
0016c eb 09 jmp SHORT $LN8@Del
$LN7@Del:
; 144 : else
; 145 : {
; 146 : right=middle-1;
0016e 8b 45 cc mov eax, DWORD PTR _middle$6[ebp]
00171 83 e8 01 sub eax, 1
00174 89 45 d4 mov DWORD PTR _right$8[ebp], eax
$LN8@Del:
; 147 : }
; 148 : }
00177 e9 28 ff ff ff jmp $LN2@Del
$LN3@Del:
; 149 : return false;
0017c c7 45 80 00 00
00 00 mov DWORD PTR $T3[ebp], 0
00183 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
00187 8d 4d e0 lea ecx, DWORD PTR _cl$11[ebp]
0018a e8 00 00 00 00 call ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
0018f c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
00196 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00199 e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
0019e 8b 45 80 mov eax, DWORD PTR $T3[ebp]
001a1 eb 35 jmp SHORT $LN1@Del
__catch$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$0:
; 150 : }
; 151 : catch(...)
; 152 : {
; 153 : }
001a3 b8 00 00 00 00 mov eax, $LN15@Del
001a8 c3 ret 0
001a9 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
001b0 eb 07 jmp SHORT __tryend$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$1
$LN15@Del:
001b2 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
__tryend$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$1:
; 154 : return false;
001b9 c7 85 7c ff ff
ff 00 00 00 00 mov DWORD PTR $T2[ebp], 0
001c3 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
001ca 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
001cd e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
001d2 8b 85 7c ff ff
ff mov eax, DWORD PTR $T2[ebp]
$LN1@Del:
; 155 : }
001d8 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
001db 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
001e2 59 pop ecx
001e3 5f pop edi
001e4 5e pop esi
001e5 5b pop ebx
001e6 8b e5 mov esp, ebp
001e8 5d pop ebp
001e9 c2 04 00 ret 4
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$2:
00000 8d 4d 08 lea ecx, DWORD PTR _str$[ebp]
00003 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
__unwindfunclet$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z$3:
00008 8d 4d e0 lea ecx, DWORD PTR _cl$11[ebp]
0000b e9 00 00 00 00 jmp ??1CSingleLock@@QAE@XZ ; CSingleLock::~CSingleLock
00010 cc int 3
00011 cc int 3
00012 cc int 3
00013 cc int 3
00014 cc int 3
__ehhandler$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z:
00015 90 npad 1
00016 90 npad 1
00017 8b 54 24 08 mov edx, DWORD PTR [esp+8]
0001b 8d 42 0c lea eax, DWORD PTR [edx+12]
0001e 8b 8a 74 ff ff
ff mov ecx, DWORD PTR [edx-140]
00024 33 c8 xor ecx, eax
00026 e8 00 00 00 00 call @__security_check_cookie@4
0002b b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z
00030 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?Del@CStringSort@@QAEHV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z ENDP ; CStringSort::Del
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ??1CStringSort@@UAE@XZ
_TEXT SEGMENT
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
??1CStringSort@@UAE@XZ PROC ; CStringSort::~CStringSort, COMDAT
; _this$ = ecx
; 15 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$??1CStringSort@@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 ??_7CStringSort@@6B@
00034 c7 45 fc 01 00
00 00 mov DWORD PTR __$EHRec$[ebp+8], 1
; 16 : Clear();
0003b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
0003e e8 00 00 00 00 call ?Clear@CStringSort@@QAEXXZ ; CStringSort::Clear
; 17 : }
00043 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+8], 0
00047 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
0004a 83 c1 24 add ecx, 36 ; 00000024H
0004d e8 00 00 00 00 call ??1CStringArray@@UAE@XZ ; CStringArray::~CStringArray
00052 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
00059 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
0005c 83 c1 04 add ecx, 4
0005f e8 00 00 00 00 call ??1CCriticalSection@@UAE@XZ ; CCriticalSection::~CCriticalSection
00064 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
00067 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
0006e 59 pop ecx
0006f 5f pop edi
00070 5e pop esi
00071 5b pop ebx
00072 8b e5 mov esp, ebp
00074 5d pop ebp
00075 c3 ret 0
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$??1CStringSort@@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$??1CStringSort@@UAE@XZ$1:
0000b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
0000e 83 c1 24 add ecx, 36 ; 00000024H
00011 e9 00 00 00 00 jmp ??1CStringArray@@UAE@XZ ; CStringArray::~CStringArray
00016 cc int 3
00017 cc int 3
00018 cc int 3
00019 cc int 3
0001a cc int 3
__ehhandler$??1CStringSort@@UAE@XZ:
0001b 90 npad 1
0001c 90 npad 1
0001d 8b 54 24 08 mov edx, DWORD PTR [esp+8]
00021 8d 42 0c lea eax, DWORD PTR [edx+12]
00024 8b 4a ac mov ecx, DWORD PTR [edx-84]
00027 33 c8 xor ecx, eax
00029 e8 00 00 00 00 call @__security_check_cookie@4
0002e b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1CStringSort@@UAE@XZ
00033 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??1CStringSort@@UAE@XZ ENDP ; CStringSort::~CStringSort
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.cpp
; COMDAT ??0CStringSort@@QAE@XZ
_TEXT SEGMENT
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
??0CStringSort@@QAE@XZ PROC ; CStringSort::CStringSort, COMDAT
; _this$ = ecx
; 10 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$??0CStringSort@@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 ??_7CStringSort@@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 24 add ecx, 36 ; 00000024H
0004c e8 00 00 00 00 call ??0CStringArray@@QAE@XZ ; CStringArray::CStringArray
00051 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+8], 1
; 11 :
; 12 : }
00055 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
0005c 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
0005f 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
00062 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
00069 59 pop ecx
0006a 5f pop edi
0006b 5e pop esi
0006c 5b pop ebx
0006d 8b e5 mov esp, ebp
0006f 5d pop ebp
00070 c3 ret 0
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$??0CStringSort@@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$??0CStringSort@@QAE@XZ$1:
0000b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
0000e 83 c1 24 add ecx, 36 ; 00000024H
00011 e9 00 00 00 00 jmp ??1CStringArray@@UAE@XZ ; CStringArray::~CStringArray
00016 cc int 3
00017 cc int 3
00018 cc int 3
00019 cc int 3
0001a cc int 3
__ehhandler$??0CStringSort@@QAE@XZ:
0001b 90 npad 1
0001c 90 npad 1
0001d 8b 54 24 08 mov edx, DWORD PTR [esp+8]
00021 8d 42 0c lea eax, DWORD PTR [edx+12]
00024 8b 4a ac mov ecx, DWORD PTR [edx-84]
00027 33 c8 xor ecx, eax
00029 e8 00 00 00 00 call @__security_check_cookie@4
0002e b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0CStringSort@@QAE@XZ
00033 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??0CStringSort@@QAE@XZ ENDP ; CStringSort::CStringSort
; 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\afxcoll.inl
; COMDAT ?Add@CStringArray@@QAEHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z
_TEXT SEGMENT
_nIndex$ = -8 ; size = 4
_this$ = -4 ; size = 4
_newElement$ = 8 ; size = 4
?Add@CStringArray@@QAEHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z PROC ; CStringArray::Add, COMDAT
; _this$ = ecx
; 320 : { INT_PTR nIndex = m_nSize;
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
0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
0000f 8b 48 08 mov ecx, DWORD PTR [eax+8]
00012 89 4d f8 mov DWORD PTR _nIndex$[ebp], ecx
; 321 : SetAtGrow(nIndex, newElement);
00015 8b 45 08 mov eax, DWORD PTR _newElement$[ebp]
00018 50 push eax
00019 8b 4d f8 mov ecx, DWORD PTR _nIndex$[ebp]
0001c 51 push ecx
0001d 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
00020 e8 00 00 00 00 call ?SetAtGrow@CStringArray@@QAEXHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z ; CStringArray::SetAtGrow
; 322 : return nIndex; }
00025 8b 45 f8 mov eax, DWORD PTR _nIndex$[ebp]
00028 5f pop edi
00029 5e pop esi
0002a 5b pop ebx
0002b 8b e5 mov esp, ebp
0002d 5d pop ebp
0002e c2 04 00 ret 4
?Add@CStringArray@@QAEHABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z ENDP ; CStringArray::Add
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxcoll.inl
; COMDAT ?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z
_TEXT SEGMENT
_this$ = -4 ; size = 4
_nIndex$ = 8 ; size = 4
?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z PROC ; CStringArray::GetAt, COMDAT
; _this$ = ecx
; 288 : { ASSERT(nIndex >= 0 && nIndex < m_nSize);
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
; 289 : if( nIndex < 0 || nIndex >= m_nSize )
0000c 83 7d 08 00 cmp DWORD PTR _nIndex$[ebp], 0
00010 7c 0b jl SHORT $LN3@GetAt
00012 8b 45 fc mov eax, DWORD PTR _this$[ebp]
00015 8b 4d 08 mov ecx, DWORD PTR _nIndex$[ebp]
00018 3b 48 08 cmp ecx, DWORD PTR [eax+8]
0001b 7c 05 jl SHORT $LN2@GetAt
$LN3@GetAt:
; 290 : AfxThrowInvalidArgException();
0001d e8 00 00 00 00 call ?AfxThrowInvalidArgException@@YGXXZ ; AfxThrowInvalidArgException
$LN2@GetAt:
; 291 : return m_pData[nIndex]; }
00022 8b 45 fc mov eax, DWORD PTR _this$[ebp]
00025 8b 48 04 mov ecx, DWORD PTR [eax+4]
00028 8b 55 08 mov edx, DWORD PTR _nIndex$[ebp]
0002b 8d 04 91 lea eax, DWORD PTR [ecx+edx*4]
$LN4@GetAt:
0002e 5f pop edi
0002f 5e pop esi
00030 5b pop ebx
00031 8b e5 mov esp, ebp
00033 5d pop ebp
00034 c2 04 00 ret 4
?GetAt@CStringArray@@QBEABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z ENDP ; CStringArray::GetAt
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxcoll.inl
; COMDAT ?RemoveAll@CStringArray@@QAEXXZ
_TEXT SEGMENT
_this$ = -4 ; size = 4
?RemoveAll@CStringArray@@QAEXXZ PROC ; CStringArray::RemoveAll, COMDAT
; _this$ = ecx
; 286 : { SetSize(0); }
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 6a ff push -1
0000e 6a 00 push 0
00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
00013 e8 00 00 00 00 call ?SetSize@CStringArray@@QAEXHH@Z ; CStringArray::SetSize
00018 5f pop edi
00019 5e pop esi
0001a 5b pop ebx
0001b 8b e5 mov esp, ebp
0001d 5d pop ebp
0001e c3 ret 0
?RemoveAll@CStringArray@@QAEXXZ ENDP ; CStringArray::RemoveAll
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\afxcoll.inl
; COMDAT ?GetCount@CStringArray@@QBEHXZ
_TEXT SEGMENT
_this$ = -4 ; size = 4
?GetCount@CStringArray@@QBEHXZ PROC ; CStringArray::GetCount, COMDAT
; _this$ = ecx
; 280 : { return m_nSize; }
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 45 fc mov eax, DWORD PTR _this$[ebp]
0000f 8b 40 08 mov eax, DWORD PTR [eax+8]
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
?GetCount@CStringArray@@QBEHXZ ENDP ; CStringArray::GetCount
_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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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 ??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
_TEXT SEGMENT
tv74 = -80 ; size = 4
__$EHRec$ = -12 ; size = 12
_str1$ = 8 ; size = 4
_str2$ = 12 ; size = 4
??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z PROC ; ATL::operator>=, COMDAT
; 2663 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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
; 2664 : return( str1.Compare( str2 ) >= 0 );
00028 8b 4d 0c mov ecx, DWORD PTR _str2$[ebp]
0002b e8 00 00 00 00 call ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
00030 50 push eax
00031 8b 4d 08 mov ecx, DWORD PTR _str1$[ebp]
00034 e8 00 00 00 00 call ?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare
00039 85 c0 test eax, eax
0003b 7c 09 jl SHORT $LN3@operator
0003d c7 45 b0 01 00
00 00 mov DWORD PTR tv74[ebp], 1
00044 eb 07 jmp SHORT $LN4@operator
$LN3@operator:
00046 c7 45 b0 00 00
00 00 mov DWORD PTR tv74[ebp], 0
$LN4@operator:
0004d 8a 45 b0 mov al, BYTE PTR tv74[ebp]
; 2665 : }
00050 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
00053 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
0005a 59 pop ecx
0005b 5f pop edi
0005c 5e pop esi
0005d 5b pop ebx
0005e 8b e5 mov esp, ebp
00060 5d pop ebp
00061 c3 ret 0
00062 cc int 3
00063 cc int 3
00064 cc int 3
00065 cc int 3
00066 cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??PATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ENDP ; ATL::operator>=
; 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 ??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
_TEXT SEGMENT
tv74 = -80 ; size = 4
__$EHRec$ = -12 ; size = 12
_str1$ = 8 ; size = 4
_str2$ = 12 ; size = 4
??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z PROC ; ATL::operator<=, COMDAT
; 2642 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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
; 2643 : return( str1.Compare( str2 ) <= 0 );
00028 8b 4d 0c mov ecx, DWORD PTR _str2$[ebp]
0002b e8 00 00 00 00 call ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
00030 50 push eax
00031 8b 4d 08 mov ecx, DWORD PTR _str1$[ebp]
00034 e8 00 00 00 00 call ?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare
00039 85 c0 test eax, eax
0003b 7f 09 jg SHORT $LN3@operator
0003d c7 45 b0 01 00
00 00 mov DWORD PTR tv74[ebp], 1
00044 eb 07 jmp SHORT $LN4@operator
$LN3@operator:
00046 c7 45 b0 00 00
00 00 mov DWORD PTR tv74[ebp], 0
$LN4@operator:
0004d 8a 45 b0 mov al, BYTE PTR tv74[ebp]
; 2644 : }
00050 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
00053 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
0005a 59 pop ecx
0005b 5f pop edi
0005c 5e pop esi
0005d 5b pop ebx
0005e 8b e5 mov esp, ebp
00060 5d pop ebp
00061 c3 ret 0
00062 cc int 3
00063 cc int 3
00064 cc int 3
00065 cc int 3
00066 cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??NATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ENDP ; ATL::operator<=
; 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 ??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
_TEXT SEGMENT
tv74 = -80 ; size = 4
__$EHRec$ = -12 ; size = 12
_str1$ = 8 ; size = 4
_str2$ = 12 ; size = 4
??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z PROC ; ATL::operator>, COMDAT
; 2621 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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
; 2622 : return( str1.Compare( str2 ) > 0 );
00028 8b 4d 0c mov ecx, DWORD PTR _str2$[ebp]
0002b e8 00 00 00 00 call ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
00030 50 push eax
00031 8b 4d 08 mov ecx, DWORD PTR _str1$[ebp]
00034 e8 00 00 00 00 call ?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare
00039 85 c0 test eax, eax
0003b 7e 09 jle SHORT $LN3@operator
0003d c7 45 b0 01 00
00 00 mov DWORD PTR tv74[ebp], 1
00044 eb 07 jmp SHORT $LN4@operator
$LN3@operator:
00046 c7 45 b0 00 00
00 00 mov DWORD PTR tv74[ebp], 0
$LN4@operator:
0004d 8a 45 b0 mov al, BYTE PTR tv74[ebp]
; 2623 : }
00050 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
00053 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
0005a 59 pop ecx
0005b 5f pop edi
0005c 5e pop esi
0005d 5b pop ebx
0005e 8b e5 mov esp, ebp
00060 5d pop ebp
00061 c3 ret 0
00062 cc int 3
00063 cc int 3
00064 cc int 3
00065 cc int 3
00066 cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??OATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ENDP ; ATL::operator>
; 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 ??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
_TEXT SEGMENT
tv74 = -80 ; size = 4
__$EHRec$ = -12 ; size = 12
_str1$ = 8 ; size = 4
_str2$ = 12 ; size = 4
??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z PROC ; ATL::operator==, COMDAT
; 2478 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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
; 2479 : return(str1.Compare(str2) == 0);
00028 8b 4d 0c mov ecx, DWORD PTR _str2$[ebp]
0002b e8 00 00 00 00 call ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
00030 50 push eax
00031 8b 4d 08 mov ecx, DWORD PTR _str1$[ebp]
00034 e8 00 00 00 00 call ?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare
00039 85 c0 test eax, eax
0003b 75 09 jne SHORT $LN3@operator
0003d c7 45 b0 01 00
00 00 mov DWORD PTR tv74[ebp], 1
00044 eb 07 jmp SHORT $LN4@operator
$LN3@operator:
00046 c7 45 b0 00 00
00 00 mov DWORD PTR tv74[ebp], 0
$LN4@operator:
0004d 8a 45 b0 mov al, BYTE PTR tv74[ebp]
; 2480 : }
00050 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
00053 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
0005a 59 pop ecx
0005b 5f pop edi
0005c 5e pop esi
0005d 5b pop ebx
0005e 8b e5 mov esp, ebp
00060 5d pop ebp
00061 c3 ret 0
00062 cc int 3
00063 cc int 3
00064 cc int 3
00065 cc int 3
00066 cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@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$??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??8ATL@@YA_NABV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@0@0@Z ENDP ; ATL::operator==
; 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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t>::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<wchar_t,0>::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<wchar_t>::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<wchar_t,0>::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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 ?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z
_TEXT SEGMENT
_pszBuffer$ = -28 ; size = 4
_temp$ = -24 ; size = 4
_nLength$ = -20 ; size = 4
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
_pszFormat$ = 8 ; size = 4
_args$ = 12 ; size = 4
?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z PROC ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::FormatV, COMDAT
; _this$ = ecx
; 2221 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z
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
; 2222 : ATLASSERT( AtlIsValidString( pszFormat ) );
; 2223 : if(pszFormat == NULL)
0002b 83 7d 08 00 cmp DWORD PTR _pszFormat$[ebp], 0
0002f 75 0a jne SHORT $LN2@FormatV
; 2224 : AtlThrow(E_INVALIDARG);
00031 68 57 00 07 80 push -2147024809 ; 80070057H
00036 e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl
$LN2@FormatV:
; 2225 :
; 2226 : int nLength = StringTraits::GetFormattedLength( pszFormat, args );
0003b 8b 45 0c mov eax, DWORD PTR _args$[ebp]
0003e 50 push eax
0003f 8b 4d 08 mov ecx, DWORD PTR _pszFormat$[ebp]
00042 51 push ecx
00043 e8 00 00 00 00 call ?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z ; ATL::ChTraitsCRT<wchar_t>::GetFormattedLength
00048 83 c4 08 add esp, 8
0004b 89 45 ec mov DWORD PTR _nLength$[ebp], eax
; 2227 :
; 2228 : if (nLength < 0)
0004e 83 7d ec 00 cmp DWORD PTR _nLength$[ebp], 0
00052 7d 0a jge SHORT $LN3@FormatV
; 2229 : AtlThrow(E_FAIL);
00054 68 05 40 00 80 push -2147467259 ; 80004005H
00059 e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl
$LN3@FormatV:
; 2230 :
; 2231 : CStringT temp(pszFormat, this->GetManager());
0005e 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
00061 e8 00 00 00 00 call ?GetManager@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEPAUIAtlStringMgr@2@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::GetManager
00066 50 push eax
00067 8b 45 08 mov eax, DWORD PTR _pszFormat$[ebp]
0006a 50 push eax
0006b 8d 4d e8 lea ecx, DWORD PTR _temp$[ebp]
0006e e8 00 00 00 00 call ??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00073 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+8], 0
; 2232 : PXSTR pszBuffer = this->GetBuffer( nLength );
0007a 8b 45 ec mov eax, DWORD PTR _nLength$[ebp]
0007d 50 push eax
0007e 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
00081 e8 00 00 00 00 call ?GetBuffer@?$CSimpleStringT@_W$0A@@ATL@@QAEPA_WH@Z ; ATL::CSimpleStringT<wchar_t,0>::GetBuffer
00086 89 45 e4 mov DWORD PTR _pszBuffer$[ebp], eax
; 2233 : StringTraits::Format( pszBuffer, nLength+1, temp, args );
00089 8b 45 0c mov eax, DWORD PTR _args$[ebp]
0008c 50 push eax
0008d 8d 4d e8 lea ecx, DWORD PTR _temp$[ebp]
00090 e8 00 00 00 00 call ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
00095 50 push eax
00096 8b 4d ec mov ecx, DWORD PTR _nLength$[ebp]
00099 83 c1 01 add ecx, 1
0009c 51 push ecx
0009d 8b 55 e4 mov edx, DWORD PTR _pszBuffer$[ebp]
000a0 52 push edx
000a1 e8 00 00 00 00 call ?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z ; ATL::ChTraitsCRT<wchar_t>::Format
000a6 83 c4 10 add esp, 16 ; 00000010H
; 2234 : this->ReleaseBufferSetLength( nLength );
000a9 8b 45 ec mov eax, DWORD PTR _nLength$[ebp]
000ac 50 push eax
000ad 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
000b0 e8 00 00 00 00 call ?ReleaseBufferSetLength@?$CSimpleStringT@_W$0A@@ATL@@QAEXH@Z ; ATL::CSimpleStringT<wchar_t,0>::ReleaseBufferSetLength
; 2235 : }
000b5 c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
000bc 8d 4d e8 lea ecx, DWORD PTR _temp$[ebp]
000bf e8 00 00 00 00 call ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
$LN4@FormatV:
000c4 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
000c7 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
000ce 59 pop ecx
000cf 5f pop edi
000d0 5e pop esi
000d1 5b pop ebx
000d2 8b e5 mov esp, ebp
000d4 5d pop ebp
000d5 c2 08 00 ret 8
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z$0:
00000 8d 4d e8 lea ecx, DWORD PTR _temp$[ebp]
00003 e9 00 00 00 00 jmp ??1?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@XZ ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
00008 cc int 3
00009 cc int 3
0000a cc int 3
0000b cc int 3
0000c cc int 3
__ehhandler$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@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 a0 mov ecx, DWORD PTR [edx-96]
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$?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z
00025 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z ENDP ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::FormatV
; 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 ?Format@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAAXPB_WZZ
_TEXT SEGMENT
_argList$ = -4 ; size = 4
_this$ = 8 ; size = 4
_pszFormat$ = 12 ; size = 4
?Format@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAAXPB_WZZ PROC ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Format, COMDAT
; 2741 : {
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
; 2742 : ATLASSERT( AtlIsValidString( pszFormat ) );
; 2743 :
; 2744 : va_list argList;
; 2745 : va_start( argList, pszFormat );
00009 8d 45 10 lea eax, DWORD PTR _pszFormat$[ebp+4]
0000c 89 45 fc mov DWORD PTR _argList$[ebp], eax
; 2746 : FormatV( pszFormat, argList );
0000f 8b 45 fc mov eax, DWORD PTR _argList$[ebp]
00012 50 push eax
00013 8b 4d 0c mov ecx, DWORD PTR _pszFormat$[ebp]
00016 51 push ecx
00017 8b 4d 08 mov ecx, DWORD PTR _this$[ebp]
0001a e8 00 00 00 00 call ?FormatV@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEXPB_WPAD@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::FormatV
; 2747 : va_end( argList );
0001f c7 45 fc 00 00
00 00 mov DWORD PTR _argList$[ebp], 0
; 2748 : }
00026 5f pop edi
00027 5e pop esi
00028 5b pop ebx
00029 8b e5 mov esp, ebp
0002b 5d pop ebp
0002c c3 ret 0
?Format@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAAXPB_WZZ ENDP ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Format
_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 ?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z
_TEXT SEGMENT
tv68 = -76 ; size = 4
___atl_condVal$1 = -8 ; size = 4
_this$ = -4 ; size = 4
_psz$ = 8 ; size = 4
?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z PROC ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare, COMDAT
; _this$ = ecx
; 1447 : {
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
$LN4@Compare:
; 1448 : ATLENSURE( AtlIsValidString( psz ) );
0000c 68 ff ff ff 7f push 2147483647 ; 7fffffffH
00011 8b 45 08 mov eax, DWORD PTR _psz$[ebp]
00014 50 push eax
00015 e8 00 00 00 00 call ?AtlIsValidString@ATL@@YAHPB_WI@Z ; ATL::AtlIsValidString
0001a 83 c4 08 add esp, 8
0001d 85 c0 test eax, eax
0001f 74 09 je SHORT $LN10@Compare
00021 c7 45 b4 01 00
00 00 mov DWORD PTR tv68[ebp], 1
00028 eb 07 jmp SHORT $LN11@Compare
$LN10@Compare:
0002a c7 45 b4 00 00
00 00 mov DWORD PTR tv68[ebp], 0
$LN11@Compare:
00031 8b 4d b4 mov ecx, DWORD PTR tv68[ebp]
00034 89 4d f8 mov DWORD PTR ___atl_condVal$1[ebp], ecx
$LN5@Compare:
00037 33 c0 xor eax, eax
00039 75 fc jne SHORT $LN5@Compare
0003b 83 7d f8 00 cmp DWORD PTR ___atl_condVal$1[ebp], 0
0003f 75 0a jne SHORT $LN2@Compare
00041 68 05 40 00 80 push -2147467259 ; 80004005H
00046 e8 00 00 00 00 call ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl
$LN2@Compare:
0004b 33 c0 xor eax, eax
0004d 75 bd jne SHORT $LN4@Compare
; 1449 : _Analysis_assume_(psz); // AtlIsValidString guarantees that psz != NULL
; 1450 : return( StringTraits::StringCompare( this->GetString(), psz ) );
0004f 8b 45 08 mov eax, DWORD PTR _psz$[ebp]
00052 50 push eax
00053 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
00056 e8 00 00 00 00 call ?GetString@?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::GetString
0005b 50 push eax
0005c e8 00 00 00 00 call ?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@Z ; ATL::ChTraitsCRT<wchar_t>::StringCompare
00061 83 c4 08 add esp, 8
$LN9@Compare:
; 1451 : }
00064 5f pop edi
00065 5e pop esi
00066 5b pop ebx
00067 8b e5 mov esp, ebp
00069 5d pop ebp
0006a c2 04 00 ret 4
?Compare@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEHPB_W@Z ENDP ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::Compare
_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 ?GetManager@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEPAUIAtlStringMgr@2@XZ
_TEXT SEGMENT
_pStringMgr$ = -8 ; size = 4
_this$ = -4 ; size = 4
?GetManager@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEPAUIAtlStringMgr@2@XZ PROC ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::GetManager, COMDAT
; _this$ = ecx
; 1436 : {
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
; 1437 : IAtlStringMgr* pStringMgr = CThisSimpleString::GetManager();
0000c 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
0000f e8 00 00 00 00 call ?GetManager@?$CSimpleStringT@_W$0A@@ATL@@QBEPAUIAtlStringMgr@2@XZ ; ATL::CSimpleStringT<wchar_t,0>::GetManager
00014 89 45 f8 mov DWORD PTR _pStringMgr$[ebp], eax
; 1438 : if(pStringMgr) { return pStringMgr; }
00017 83 7d f8 00 cmp DWORD PTR _pStringMgr$[ebp], 0
0001b 74 05 je SHORT $LN2@GetManager
0001d 8b 45 f8 mov eax, DWORD PTR _pStringMgr$[ebp]
00020 eb 15 jmp SHORT $LN1@GetManager
$LN2@GetManager:
; 1439 :
; 1440 : pStringMgr = StringTraits::GetDefaultManager();
00022 e8 00 00 00 00 call ?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ ; StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> >::GetDefaultManager
00027 89 45 f8 mov DWORD PTR _pStringMgr$[ebp], eax
; 1441 : return pStringMgr->Clone();
0002a 8b 45 f8 mov eax, DWORD PTR _pStringMgr$[ebp]
0002d 8b 10 mov edx, DWORD PTR [eax]
0002f 8b 4d f8 mov ecx, DWORD PTR _pStringMgr$[ebp]
00032 8b 42 10 mov eax, DWORD PTR [edx+16]
00035 ff d0 call eax
$LN1@GetManager:
; 1442 : }
00037 5f pop edi
00038 5e pop esi
00039 5b pop ebx
0003a 8b e5 mov esp, ebp
0003c 5d pop ebp
0003d c3 ret 0
?GetManager@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QBEPAUIAtlStringMgr@2@XZ ENDP ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::GetManager
_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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,0>::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >, 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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::~CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
; 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_WPAUIAtlStringMgr@1@@Z
_TEXT SEGMENT
_this$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
_pszSrc$ = 8 ; size = 4
_pStringMgr$ = 12 ; size = 4
??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@Z PROC ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >, COMDAT
; _this$ = ecx
; 1060 : {
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_WPAUIAtlStringMgr@1@@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
; 1059 : CThisSimpleString( pStringMgr )
0002b 8b 45 0c mov eax, DWORD PTR _pStringMgr$[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@PAUIAtlStringMgr@1@@Z ; ATL::CSimpleStringT<wchar_t,0>::CSimpleStringT<wchar_t,0>
00037 c7 45 fc 00 00
00 00 mov DWORD PTR __$EHRec$[ebp+8], 0
; 1061 : if( !CheckImplicitLoad( pszSrc ) )
0003e 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp]
00041 50 push eax
00042 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
00045 e8 00 00 00 00 call ?CheckImplicitLoad@?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@AAE_NPBX@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CheckImplicitLoad
0004a 0f b6 c8 movzx ecx, al
0004d 85 c9 test ecx, ecx
0004f 75 0c jne SHORT $LN1@CStringT
; 1062 : {
; 1063 : *this = pszSrc;
00051 8b 45 08 mov eax, DWORD PTR _pszSrc$[ebp]
00054 50 push eax
00055 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
00058 e8 00 00 00 00 call ??4?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAEAAV01@PB_W@Z ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::operator=
$LN1@CStringT:
; 1064 : }
; 1065 : }
0005d c7 45 fc ff ff
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
00064 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
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 c2 08 00 ret 8
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__unwindfunclet$??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
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_WPAUIAtlStringMgr@1@@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_WPAUIAtlStringMgr@1@@Z
00025 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
??0?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@QAE@PB_WPAUIAtlStringMgr@1@@Z ENDP ; ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
; 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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >, 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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,0>::CSimpleStringT<wchar_t,0>
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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
; 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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >, 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<wchar_t,0>::CSimpleStringT<wchar_t,0>
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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
; 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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >, 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<wchar_t,ATL::ChTraitsCRT<wchar_t> >::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<wchar_t,0>::CSimpleStringT<wchar_t,0>
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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
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<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > >
; 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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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 ?GetManager@?$CSimpleStringT@_W$0A@@ATL@@QBEPAUIAtlStringMgr@2@XZ
_TEXT SEGMENT
tv72 = -76 ; size = 4
_pStringMgr$ = -8 ; size = 4
_this$ = -4 ; size = 4
?GetManager@?$CSimpleStringT@_W$0A@@ATL@@QBEPAUIAtlStringMgr@2@XZ PROC ; ATL::CSimpleStringT<wchar_t,0>::GetManager, COMDAT
; _this$ = ecx
; 522 : {
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
; 523 : IAtlStringMgr* pStringMgr = GetData()->pStringMgr;
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<wchar_t,0>::GetData
00014 8b 00 mov eax, DWORD PTR [eax]
00016 89 45 f8 mov DWORD PTR _pStringMgr$[ebp], eax
; 524 : return pStringMgr ? pStringMgr->Clone() : NULL;
00019 83 7d f8 00 cmp DWORD PTR _pStringMgr$[ebp], 0
0001d 74 12 je SHORT $LN3@GetManager
0001f 8b 45 f8 mov eax, DWORD PTR _pStringMgr$[ebp]
00022 8b 10 mov edx, DWORD PTR [eax]
00024 8b 4d f8 mov ecx, DWORD PTR _pStringMgr$[ebp]
00027 8b 42 10 mov eax, DWORD PTR [edx+16]
0002a ff d0 call eax
0002c 89 45 b4 mov DWORD PTR tv72[ebp], eax
0002f eb 07 jmp SHORT $LN4@GetManager
$LN3@GetManager:
00031 c7 45 b4 00 00
00 00 mov DWORD PTR tv72[ebp], 0
$LN4@GetManager:
00038 8b 45 b4 mov eax, DWORD PTR tv72[ebp]
; 525 : }
0003b 5f pop edi
0003c 5e pop esi
0003d 5b pop ebx
0003e 8b e5 mov esp, ebp
00040 5d pop ebp
00041 c3 ret 0
?GetManager@?$CSimpleStringT@_W$0A@@ATL@@QBEPAUIAtlStringMgr@2@XZ ENDP ; ATL::CSimpleStringT<wchar_t,0>::GetManager
_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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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 ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ
_TEXT SEGMENT
_this$ = -4 ; size = 4
??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ PROC ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *, COMDAT
; _this$ = ecx
; 376 : {
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
; 377 : return( m_pszData );
0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
0000f 8b 00 mov eax, DWORD PTR [eax]
; 378 : }
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
??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ENDP ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
_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@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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::~CSimpleStringT<wchar_t,0>, 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<wchar_t,0>::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<wchar_t,0>::~CSimpleStringT<wchar_t,0>
_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<wchar_t,0>::CSimpleStringT<wchar_t,0>, 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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::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<wchar_t,0>::CSimpleStringT<wchar_t,0>
_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<wchar_t,0>::CSimpleStringT<wchar_t,0>, 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<wchar_t,0>::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<wchar_t,0>::CSimpleStringT<wchar_t,0>
_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<wchar_t>::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<wchar_t>::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<wchar_t>::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<wchar_t>::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<wchar_t>::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<wchar_t>::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<wchar_t>::GetBaseTypeLength
; 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 ?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z
_TEXT SEGMENT
tv74 = -84 ; size = 4
_result$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
_pszBuffer$ = 8 ; size = 4
_nLength$ = 12 ; size = 4
_pszFormat$ = 16 ; size = 4
_args$ = 20 ; size = 4
?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z PROC ; ATL::ChTraitsCRT<wchar_t>::Format, COMDAT
; 728 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z
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
; 729 : #if _MSC_VER < 1900
; 730 : return vswprintf_s(pszBuffer, nLength, pszFormat, args);
; 731 : #else
; 732 : // Explicitly request the legacy wide format specifiers mode from the CRT,
; 733 : // for compatibility with previous versions. While the CRT supports two
; 734 : // modes, the ATL and MFC functions that accept format strings only support
; 735 : // legacy mode format strings.
; 736 : int const result = __stdio_common_vswprintf_s(
00028 8b 45 14 mov eax, DWORD PTR _args$[ebp]
0002b 50 push eax
0002c 6a 00 push 0
0002e 8b 4d 10 mov ecx, DWORD PTR _pszFormat$[ebp]
00031 51 push ecx
00032 8b 55 0c mov edx, DWORD PTR _nLength$[ebp]
00035 52 push edx
00036 8b 45 08 mov eax, DWORD PTR _pszBuffer$[ebp]
00039 50 push eax
0003a e8 00 00 00 00 call ___local_stdio_printf_options
0003f 8b 08 mov ecx, DWORD PTR [eax]
00041 83 c9 04 or ecx, 4
00044 8b 50 04 mov edx, DWORD PTR [eax+4]
00047 52 push edx
00048 51 push ecx
00049 e8 00 00 00 00 call ___stdio_common_vswprintf_s
0004e 83 c4 1c add esp, 28 ; 0000001cH
00051 89 45 f0 mov DWORD PTR _result$[ebp], eax
; 737 : _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS |
; 738 : _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS,
; 739 : pszBuffer, nLength, pszFormat, NULL, args);
; 740 :
; 741 : return result < 0 ? -1 : result;
00054 83 7d f0 00 cmp DWORD PTR _result$[ebp], 0
00058 7d 09 jge SHORT $LN3@Format
0005a c7 45 ac ff ff
ff ff mov DWORD PTR tv74[ebp], -1
00061 eb 06 jmp SHORT $LN4@Format
$LN3@Format:
00063 8b 45 f0 mov eax, DWORD PTR _result$[ebp]
00066 89 45 ac mov DWORD PTR tv74[ebp], eax
$LN4@Format:
00069 8b 45 ac mov eax, DWORD PTR tv74[ebp]
; 742 : #endif
; 743 : }
0006c 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
0006f 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
00076 59 pop ecx
00077 5f pop edi
00078 5e pop esi
00079 5b pop ebx
0007a 8b e5 mov esp, ebp
0007c 5d pop ebp
0007d c3 ret 0
0007e cc int 3
0007f cc int 3
00080 cc int 3
00081 cc int 3
00082 cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@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 a8 mov ecx, DWORD PTR [edx-88]
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$?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?Format@?$ChTraitsCRT@_W@ATL@@SAHPA_WIPB_WPAD@Z ENDP ; ATL::ChTraitsCRT<wchar_t>::Format
; 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 ?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z
_TEXT SEGMENT
tv75 = -84 ; size = 4
_result$ = -16 ; size = 4
__$EHRec$ = -12 ; size = 12
_pszFormat$ = 8 ; size = 4
_args$ = 12 ; size = 4
?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z PROC ; ATL::ChTraitsCRT<wchar_t>::GetFormattedLength, COMDAT
; 682 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z
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
; 683 : #if _MSC_VER < 1900
; 684 : return _vscwprintf(pszFormat, args);
; 685 : #else
; 686 : // Explicitly request the legacy wide format specifiers mode from the CRT,
; 687 : // for compatibility with previous versions. While the CRT supports two
; 688 : // modes, the ATL and MFC functions that accept format strings only support
; 689 : // legacy mode format strings.
; 690 : int const result = __stdio_common_vswprintf(
00028 8b 45 0c mov eax, DWORD PTR _args$[ebp]
0002b 50 push eax
0002c 6a 00 push 0
0002e 8b 4d 08 mov ecx, DWORD PTR _pszFormat$[ebp]
00031 51 push ecx
00032 6a 00 push 0
00034 6a 00 push 0
00036 e8 00 00 00 00 call ___local_stdio_printf_options
0003b 8b 10 mov edx, DWORD PTR [eax]
0003d 83 ca 02 or edx, 2
00040 8b 40 04 mov eax, DWORD PTR [eax+4]
00043 83 ca 04 or edx, 4
00046 50 push eax
00047 52 push edx
00048 e8 00 00 00 00 call ___stdio_common_vswprintf
0004d 83 c4 1c add esp, 28 ; 0000001cH
00050 89 45 f0 mov DWORD PTR _result$[ebp], eax
; 691 : _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS |
; 692 : _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR |
; 693 : _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS,
; 694 : NULL, 0, pszFormat, NULL, args);
; 695 :
; 696 : return result < 0 ? -1 : result;
00053 83 7d f0 00 cmp DWORD PTR _result$[ebp], 0
00057 7d 09 jge SHORT $LN3@GetFormatt
00059 c7 45 ac ff ff
ff ff mov DWORD PTR tv75[ebp], -1
00060 eb 06 jmp SHORT $LN4@GetFormatt
$LN3@GetFormatt:
00062 8b 45 f0 mov eax, DWORD PTR _result$[ebp]
00065 89 45 ac mov DWORD PTR tv75[ebp], eax
$LN4@GetFormatt:
00068 8b 45 ac mov eax, DWORD PTR tv75[ebp]
; 697 : #endif
; 698 : }
0006b 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
0006e 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
00075 59 pop ecx
00076 5f pop edi
00077 5e pop esi
00078 5b pop ebx
00079 8b e5 mov esp, ebp
0007b 5d pop ebp
0007c c3 ret 0
0007d cc int 3
0007e cc int 3
0007f cc int 3
00080 cc int 3
00081 cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@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 a8 mov ecx, DWORD PTR [edx-88]
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$?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?GetFormattedLength@?$ChTraitsCRT@_W@ATL@@SAHPB_WPAD@Z ENDP ; ATL::ChTraitsCRT<wchar_t>::GetFormattedLength
; 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 ?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@Z
_TEXT SEGMENT
__$EHRec$ = -12 ; size = 12
_pszA$ = 8 ; size = 4
_pszB$ = 12 ; size = 4
?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@Z PROC ; ATL::ChTraitsCRT<wchar_t>::StringCompare, COMDAT
; 567 : {
00000 55 push ebp
00001 8b ec mov ebp, esp
00003 6a ff push -1
00005 68 00 00 00 00 push __ehhandler$?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@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
; 568 : return wcscmp( pszA, pszB );
00028 8b 45 0c mov eax, DWORD PTR _pszB$[ebp]
0002b 50 push eax
0002c 8b 4d 08 mov ecx, DWORD PTR _pszA$[ebp]
0002f 51 push ecx
00030 e8 00 00 00 00 call _wcscmp
00035 83 c4 08 add esp, 8
; 569 : }
00038 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
0003b 64 89 0d 00 00
00 00 mov DWORD PTR fs:0, ecx
00042 59 pop ecx
00043 5f pop edi
00044 5e pop esi
00045 5b pop ebx
00046 8b e5 mov esp, ebp
00048 5d pop ebp
00049 c3 ret 0
0004a cc int 3
0004b cc int 3
0004c cc int 3
0004d cc int 3
0004e cc int 3
_TEXT ENDS
; COMDAT text$x
text$x SEGMENT
__ehhandler$?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@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$?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@Z
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
text$x ENDS
?StringCompare@?$ChTraitsCRT@_W@ATL@@SAHPB_W0@Z ENDP ; ATL::ChTraitsCRT<wchar_t>::StringCompare
; 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<WORD>(~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<WORD>(~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 ?AtlIsValidString@ATL@@YAHPB_WI@Z
_TEXT SEGMENT
tv65 = -68 ; size = 4
_psz$ = 8 ; size = 4
_nMaxLength$ = 12 ; size = 4
?AtlIsValidString@ATL@@YAHPB_WI@Z PROC ; ATL::AtlIsValidString, COMDAT
; 79 : {
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
; 80 : (nMaxLength);
; 81 : return (psz != NULL);
00009 83 7d 08 00 cmp DWORD PTR _psz$[ebp], 0
0000d 74 09 je SHORT $LN3@AtlIsValid
0000f c7 45 bc 01 00
00 00 mov DWORD PTR tv65[ebp], 1
00016 eb 07 jmp SHORT $LN4@AtlIsValid
$LN3@AtlIsValid:
00018 c7 45 bc 00 00
00 00 mov DWORD PTR tv65[ebp], 0
$LN4@AtlIsValid:
0001f 8b 45 bc mov eax, DWORD PTR tv65[ebp]
; 82 : }
00022 5f pop edi
00023 5e pop esi
00024 5b pop ebx
00025 8b e5 mov esp, ebp
00027 5d pop ebp
00028 c3 ret 0
?AtlIsValidString@ATL@@YAHPB_WI@Z ENDP ; ATL::AtlIsValidString
_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 ?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<int>(::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 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h
; COMDAT ___local_stdio_printf_options
_TEXT SEGMENT
___local_stdio_printf_options PROC ; COMDAT
; 90 : {
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
; 91 : static unsigned __int64 _OptionsStorage;
; 92 : return &_OptionsStorage;
00009 b8 00 00 00 00 mov eax, OFFSET ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
; 93 : }
0000e 5f pop edi
0000f 5e pop esi
00010 5b pop ebx
00011 8b e5 mov esp, ebp
00013 5d pop ebp
00014 c3 ret 0
___local_stdio_printf_options ENDP
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\StringSort\StringSort.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\StringSort\StringSort.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\StringSort\StringSort.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\StringSort\StringSort.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