; 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   : 		//�����ֲ��ҷ�����ѯ�м�ֵ
; 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 )  //ԭ������Ϊ�գ�ֱ�ӷ���

  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-סǰ���ӣ�1-��������

  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 )  //�����ظ�

  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))  //�Աȴ�С

  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;  //��ǰ��������

  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;  //������������

  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�����ִ�����

  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 ) //�����ظ�

  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  : 		//�����ֲ��ҷ�����ѯ�м�ֵ
; 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 )  //ԭ������Ϊ�գ�ֱ�ӷ���

  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-סǰ���ӣ�1-��������

  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))  //�Աȴ�С

  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