8271 lines
283 KiB
Plaintext
8271 lines
283 KiB
Plaintext
; 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
|