13916 lines
447 KiB
Plaintext
13916 lines
447 KiB
Plaintext
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0
|
||
|
||
TITLE D:\Works\Corpsms_2010\SmsCenter\Release_Unicode\IOCP.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 __vswprintf_c_l
|
||
PUBLIC __vswprintf_l
|
||
PUBLIC ___vswprintf_l
|
||
PUBLIC __swprintf
|
||
PUBLIC ?AfxCrtErrorCheck@@YAHH@Z ; AfxCrtErrorCheck
|
||
PUBLIC ?AtlThrowImpl@ATL@@YGXJ@Z ; ATL::AtlThrowImpl
|
||
PUBLIC ?_AtlGetConversionACP@ATL@@YGIXZ ; ATL::_AtlGetConversionACP
|
||
PUBLIC ?AtlA2WHelper@@YGPA_WPA_WPBDHI@Z ; AtlA2WHelper
|
||
PUBLIC ?wmemcpy_s@Checked@ATL@@YAXPA_WIPB_WI@Z ; ATL::Checked::wmemcpy_s
|
||
PUBLIC ?AtlStrLen@ATL@@YAHPB_W@Z ; ATL::AtlStrLen
|
||
PUBLIC ?_AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@PAUHRSRC__@@I@Z ; ATL::_AtlGetStringResourceImage
|
||
PUBLIC ?AtlGetStringResourceImage@ATL@@YAPBUATLSTRINGRESOURCEIMAGE@1@PAUHINSTANCE__@@I@Z ; ATL::AtlGetStringResourceImage
|
||
PUBLIC ?data@CStringData@ATL@@QAEPAXXZ ; ATL::CStringData::data
|
||
PUBLIC ?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 ?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 ??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 ??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@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 ?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 ?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 ??0AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
PUBLIC ??0AutoCoInitializeEx@@QAE@_N@Z ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
PUBLIC ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
PUBLIC ??0CIOCP@@QAE@XZ ; CIOCP::CIOCP
|
||
PUBLIC ??1CIOCP@@UAE@XZ ; CIOCP::~CIOCP
|
||
PUBLIC ?MainLoop2@CIOCP@@SGKPAX@Z ; CIOCP::MainLoop2
|
||
PUBLIC ?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ ; CIOCP::CheckForInvalidSQLConnection
|
||
PUBLIC ?CheckForInvalidConnection@CIOCP@@QAEXXZ ; CIOCP::CheckForInvalidConnection
|
||
PUBLIC ?InitIoContext_Send@CIOCP@@QAEXPAUIOCP_IO_SEND@@@Z ; CIOCP::InitIoContext_Send
|
||
PUBLIC ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
PUBLIC ?SetDlg@CIOCP@@QAEXPAVCSmsCenterDlg@@@Z ; CIOCP::SetDlg
|
||
PUBLIC ?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z ; CIOCP::GetFrame_Cmpp
|
||
PUBLIC ?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z ; CIOCP::GetFrame
|
||
PUBLIC ?RegAcceptEvent2@CIOCP@@QAEHXZ ; CIOCP::RegAcceptEvent2
|
||
PUBLIC ?RegAcceptEvent@CIOCP@@QAEHXZ ; CIOCP::RegAcceptEvent
|
||
PUBLIC ?PostAcceptEx2@CIOCP@@QAEHXZ ; CIOCP::PostAcceptEx2
|
||
PUBLIC ?PostAcceptEx@CIOCP@@QAEHXZ ; CIOCP::PostAcceptEx
|
||
PUBLIC ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
PUBLIC ?GetFunPointer@CIOCP@@QAEHXZ ; CIOCP::GetFunPointer
|
||
PUBLIC ?BindAndListenSocket2@CIOCP@@QAEHXZ ; CIOCP::BindAndListenSocket2
|
||
PUBLIC ?BindAndListenSocket@CIOCP@@QAEHXZ ; CIOCP::BindAndListenSocket
|
||
PUBLIC ?CloseMainSocket@CIOCP@@QAEXXZ ; CIOCP::CloseMainSocket
|
||
PUBLIC ?Init@CIOCP@@QAEHXZ ; CIOCP::Init
|
||
PUBLIC ?MainLoop@CIOCP@@SGKPAX@Z ; CIOCP::MainLoop
|
||
PUBLIC ?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z ; CIOCP::InitIoContext
|
||
PUBLIC ?DataAction@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@@Z ; CIOCP::DataAction
|
||
PUBLIC ?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z ; CIOCP::HandleData
|
||
PUBLIC ?StartThread@CIOCP@@AAEHXZ ; CIOCP::StartThread
|
||
PUBLIC ?CloseThreadHandle@CIOCP@@AAEXH@Z ; CIOCP::CloseThreadHandle
|
||
PUBLIC ?InitSocket@CIOCP@@AAEHXZ ; CIOCP::InitSocket
|
||
PUBLIC ?CompletionRoutine@CIOCP@@CGKPAX@Z ; CIOCP::CompletionRoutine
|
||
PUBLIC ?GetAddrAndPort@CIOCP@@AAEHPADQADAAI@Z ; CIOCP::GetAddrAndPort
|
||
PUBLIC ??_GCIOCP@@UAEPAXI@Z ; CIOCP::`scalar deleting destructor'
|
||
PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
|
||
PUBLIC ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@ ; `string'
|
||
PUBLIC ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ ; `string'
|
||
PUBLIC ??_C@_13JKNELIBG@?$AAT@ ; `string'
|
||
PUBLIC ??_7CIOCP@@6B@ ; CIOCP::`vftable'
|
||
PUBLIC ?__LINE__Var@?0??Close@CIOCP@@QAEXXZ@4JA ; `CIOCP::Close'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_05LGELBCGM@Close@ ; `string'
|
||
PUBLIC ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z@4JA ; `CIOCP::InitIoContext'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_0O@NGMCBOJM@InitIoContext@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z@4JA ; `CIOCP::HandleData'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_0L@BDAOGBHN@HandleData@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??CheckForInvalidConnection@CIOCP@@QAEXXZ@4JA ; `CIOCP::CheckForInvalidConnection'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_1CA@MOMGAHJI@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$NO?$PP?$KF?$PP?$IF?$PP?v?$AA?$AB@ ; `string'
|
||
PUBLIC ??_C@_1CE@LBHGJMMD@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$KF?$AA6?$AAp?$AAn?$PP?$IF@ ; `string'
|
||
PUBLIC ??_C@_0BK@HCEPDKA@CheckForInvalidConnection@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??MainLoop@CIOCP@@SGKPAX@Z@4JA ; `CIOCP::MainLoop'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_1CM@OPBDNDPO@?$AAA?$AAc?$AAc?$AAe?$AAp?$AAt?$AA_?$AAE?$AAv?$AAe?$AAn?$AAt?$AA?5?$AAE?$AAr@ ; `string'
|
||
PUBLIC ??_C@_08JEEIGPMO@MainLoop@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??CompletionRoutine@CIOCP@@CGKPAX@Z@4JA ; `CIOCP::CompletionRoutine'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_0BC@GHBOFPCG@CompletionRoutine@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA ; `CIOCP::GetFrame'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_1CE@CMEGDHFN@?$AAn?$AAe?$AAw?$AA?5?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AA?5?$AAe?$AAr?$AAr@ ; `string'
|
||
PUBLIC ??_C@_08KCCFNCFB@GetFrame@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA ; `CIOCP::GetFrame_Cmpp'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_0O@HLJAGLMK@GetFrame_Cmpp@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??CheckForInvalidSQLConnection@CIOCP@@QAEXXZ@4JA ; `CIOCP::CheckForInvalidSQLConnection'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_1CE@HBKAPEML@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?M?$AA?2?$PP?$IF?$PP?v?$AA?$AM?$PP?j?$PP?$KI?$PP?$KN@ ; `string'
|
||
PUBLIC ??_C@_1CG@BOOJGIJM@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$IF?$PP?v?$AA?$CK?$AA?$HP?$AA?$CI?$AA?$AM?$PP?j?$PP?$KI@ ; `string'
|
||
PUBLIC ??_C@_0BN@JHDKFMGA@CheckForInvalidSQLConnection@ ; `string'
|
||
PUBLIC ?__LINE__Var@?0??MainLoop2@CIOCP@@SGKPAX@Z@4JA ; `CIOCP::MainLoop2'::`1'::__LINE__Var
|
||
PUBLIC ??_C@_09JBDIPDKJ@MainLoop2@ ; `string'
|
||
PUBLIC ??_R4CIOCP@@6B@ ; CIOCP::`RTTI Complete Object Locator'
|
||
PUBLIC ??_R0?AVCIOCP@@@8 ; CIOCP `RTTI Type Descriptor'
|
||
PUBLIC ??_R3CIOCP@@8 ; CIOCP::`RTTI Class Hierarchy Descriptor'
|
||
PUBLIC ??_R2CIOCP@@8 ; CIOCP::`RTTI Base Class Array'
|
||
PUBLIC ??_R1A@?0A@EA@CIOCP@@8 ; CIOCP::`RTTI Base Class Descriptor at (0,-1,0,64)'
|
||
EXTRN ??2@YAPAXI@Z:PROC ; operator new
|
||
EXTRN ??3@YAXPAXI@Z:PROC ; operator 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 _wcscpy:PROC
|
||
EXTRN _wcslen:PROC
|
||
EXTRN _strcpy:PROC
|
||
EXTRN _strlen:PROC
|
||
EXTRN _wmemcpy_s:PROC
|
||
EXTRN __imp__CloseHandle@4:PROC
|
||
EXTRN __imp__GetLastError@0:PROC
|
||
EXTRN __imp__CreateIoCompletionPort@16:PROC
|
||
EXTRN __imp__GetQueuedCompletionStatus@20:PROC
|
||
EXTRN __imp__PostQueuedCompletionStatus@16:PROC
|
||
EXTRN __imp__WaitForSingleObject@8:PROC
|
||
EXTRN __imp__CreateEventW@16:PROC
|
||
EXTRN __imp__Sleep@4:PROC
|
||
EXTRN __imp__CreateThread@24:PROC
|
||
EXTRN __imp__TerminateThread@8:PROC
|
||
EXTRN __imp__GetSystemInfo@4:PROC
|
||
EXTRN __imp__GetTickCount@0:PROC
|
||
EXTRN __imp__QueueUserWorkItem@12:PROC
|
||
EXTRN __imp__LoadResource@8:PROC
|
||
EXTRN __imp__LockResource@4:PROC
|
||
EXTRN __imp__SizeofResource@8:PROC
|
||
EXTRN __imp__FindResourceW@12:PROC
|
||
EXTRN __imp__MultiByteToWideChar@24: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 __imp__bind@12:PROC
|
||
EXTRN __imp__closesocket@4:PROC
|
||
EXTRN __imp__htons@4:PROC
|
||
EXTRN __imp__inet_ntoa@4:PROC
|
||
EXTRN __imp__listen@8:PROC
|
||
EXTRN __imp__ntohl@4:PROC
|
||
EXTRN __imp__ntohs@4:PROC
|
||
EXTRN __imp__setsockopt@20:PROC
|
||
EXTRN __imp__WSAStartup@8:PROC
|
||
EXTRN __imp__WSAGetLastError@0:PROC
|
||
EXTRN __imp__WSAEventSelect@12:PROC
|
||
EXTRN __imp__WSAIoctl@36:PROC
|
||
EXTRN __imp__WSARecv@28:PROC
|
||
EXTRN __imp__WSASend@28:PROC
|
||
EXTRN __imp__WSASocketW@24:PROC
|
||
EXTRN __imp__CoUninitialize@0:PROC
|
||
EXTRN __imp__CoInitializeEx@8:PROC
|
||
EXTRN __imp__CoInitialize@4:PROC
|
||
EXTRN ?AfxGetStringManager@@YGPAUIAtlStringMgr@ATL@@XZ:PROC ; AfxGetStringManager
|
||
EXTRN ?AfxIsValidAddress@@YGHPBXIH@Z:PROC ; AfxIsValidAddress
|
||
EXTRN ?AfxMessageBox@@YGHPB_WII@Z:PROC ; AfxMessageBox
|
||
EXTRN ??0CSAStatusLog@@QAE@XZ:PROC ; CSAStatusLog::CSAStatusLog
|
||
EXTRN ??1CSAStatusLog@@QAE@XZ:PROC ; CSAStatusLog::~CSAStatusLog
|
||
EXTRN ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z:PROC ; CSAStatusLog::Init
|
||
EXTRN ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z:PROC ; CSAStatusLog::LogError
|
||
EXTRN ?IsOpen@CAdoConnection@@QAEHXZ:PROC ; CAdoConnection::IsOpen
|
||
EXTRN ?Close@CAdoConnection@@QAEXXZ:PROC ; CAdoConnection::Close
|
||
EXTRN ??0CProcessSocket@@QAE@XZ:PROC ; CProcessSocket::CProcessSocket
|
||
EXTRN ?IOCP_setSQL@CProcessSocket@@QAEXPAUIOCP_SQL@@@Z:PROC ; CProcessSocket::IOCP_setSQL
|
||
EXTRN ?IOCP_Process@CProcessSocket@@SGKPAX@Z:PROC ; CProcessSocket::IOCP_Process
|
||
EXTRN ?IOCP_GetFrameData@CProcessSocket@@QAEHPAUIOCP_IO@@U_Socket_Head@@U_Cmpp_Head@@PAEJ@Z:PROC ; CProcessSocket::IOCP_GetFrameData
|
||
EXTRN ?SetDlg@CProcessSocket@@QAEXPAVCSmsCenterDlg@@@Z:PROC ; CProcessSocket::SetDlg
|
||
EXTRN ?GetBlank_SQL@CKeyList@@QAEPAUIOCP_SQL@@XZ:PROC ; CKeyList::GetBlank_SQL
|
||
EXTRN ?Close@CKeyList@@QAEXXZ:PROC ; CKeyList::Close
|
||
EXTRN ?Init@CKeyList@@QAEXPAVCSmsCenterDlg@@@Z:PROC ; CKeyList::Init
|
||
EXTRN ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z:PROC ; CKeyList::RemoveAt_IO
|
||
EXTRN ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z:PROC ; CKeyList::RemoveAt_Key
|
||
EXTRN ?GetBlank_IO@CKeyList@@QAEPAUIOCP_IO@@XZ:PROC ; CKeyList::GetBlank_IO
|
||
EXTRN ?GetBlank_Key@CKeyList@@QAEPAUIOCP_KEY@@XZ:PROC ; CKeyList::GetBlank_Key
|
||
EXTRN ??0CKeyList@@QAE@XZ:PROC ; CKeyList::CKeyList
|
||
EXTRN ??1CKeyList@@UAE@XZ:PROC ; CKeyList::~CKeyList
|
||
EXTRN ??_ECIOCP@@UAEPAXI@Z:PROC ; CIOCP::`vector deleting destructor'
|
||
EXTRN ?ON_TD_StopAll2@CSmsCenterDlg@@QAEXXZ:PROC ; CSmsCenterDlg::ON_TD_StopAll2
|
||
EXTRN ?SendFrame@CSmsCenterDlg@@SAHPAUIOCP_IO@@IPAEK@Z:PROC ; CSmsCenterDlg::SendFrame
|
||
EXTRN ?AddLog@CSmsCenterDlg@@QAEXPB_WJ@Z:PROC ; CSmsCenterDlg::AddLog
|
||
EXTRN @__security_check_cookie@4:PROC
|
||
EXTRN ___CxxFrameHandler3:PROC
|
||
EXTRN __alloca_probe_16:PROC
|
||
EXTRN __chkstk:PROC
|
||
EXTRN _memset: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@CIOCP@@8
|
||
rdata$r SEGMENT
|
||
??_R1A@?0A@EA@CIOCP@@8 DD FLAT:??_R0?AVCIOCP@@@8 ; CIOCP::`RTTI Base Class Descriptor at (0,-1,0,64)'
|
||
DD 00H
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 040H
|
||
DD FLAT:??_R3CIOCP@@8
|
||
rdata$r ENDS
|
||
; COMDAT ??_R2CIOCP@@8
|
||
rdata$r SEGMENT
|
||
??_R2CIOCP@@8 DD FLAT:??_R1A@?0A@EA@CIOCP@@8 ; CIOCP::`RTTI Base Class Array'
|
||
rdata$r ENDS
|
||
; COMDAT ??_R3CIOCP@@8
|
||
rdata$r SEGMENT
|
||
??_R3CIOCP@@8 DD 00H ; CIOCP::`RTTI Class Hierarchy Descriptor'
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:??_R2CIOCP@@8
|
||
rdata$r ENDS
|
||
; COMDAT ??_R0?AVCIOCP@@@8
|
||
data$rs SEGMENT
|
||
??_R0?AVCIOCP@@@8 DD FLAT:??_7type_info@@6B@ ; CIOCP `RTTI Type Descriptor'
|
||
DD 00H
|
||
DB '.?AVCIOCP@@', 00H
|
||
data$rs ENDS
|
||
; COMDAT ??_R4CIOCP@@6B@
|
||
rdata$r SEGMENT
|
||
??_R4CIOCP@@6B@ DD 00H ; CIOCP::`RTTI Complete Object Locator'
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:??_R0?AVCIOCP@@@8
|
||
DD FLAT:??_R3CIOCP@@8
|
||
rdata$r ENDS
|
||
; COMDAT ??_C@_09JBDIPDKJ@MainLoop2@
|
||
CONST SEGMENT
|
||
??_C@_09JBDIPDKJ@MainLoop2@ DB 'MainLoop2', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??MainLoop2@CIOCP@@SGKPAX@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??MainLoop2@CIOCP@@SGKPAX@Z@4JA DD 066fH ; `CIOCP::MainLoop2'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0BN@JHDKFMGA@CheckForInvalidSQLConnection@
|
||
CONST SEGMENT
|
||
??_C@_0BN@JHDKFMGA@CheckForInvalidSQLConnection@ DB 'CheckForInvalidSQLCo'
|
||
DB 'nnection', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1CG@BOOJGIJM@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$IF?$PP?v?$AA?$CK?$AA?$HP?$AA?$CI?$AA?$AM?$PP?j?$PP?$KI@
|
||
CONST SEGMENT
|
||
??_C@_1CG@BOOJGIJM@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$IF?$PP?v?$AA?$CK?$AA?$HP?$AA?$CI?$AA?$AM?$PP?j?$PP?$KI@ DB 'S'
|
||
DB 00H, 'Q', 00H, 'L', 00H, ':', 00H, '%', 00H, 'd', 00H, ' ', 00H
|
||
DB 085H, 08dH, 0f6H, 'e*g', 07fH, 'O(u', 0cH, 0ffH, 0eaH, 081H, 0a8H
|
||
DB 'R', 0adH, 'e', 0deH, 08fH, 01H, 0ffH, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1CE@HBKAPEML@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?M?$AA?2?$PP?$IF?$PP?v?$AA?$AM?$PP?j?$PP?$KI?$PP?$KN@
|
||
CONST SEGMENT
|
||
??_C@_1CE@HBKAPEML@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?M?$AA?2?$PP?$IF?$PP?v?$AA?$AM?$PP?j?$PP?$KI?$PP?$KN@ DB 'S'
|
||
DB 00H, 'Q', 00H, 'L', 00H, ':', 00H, '%', 00H, 'd', 00H, ' ', 00H
|
||
DB 0cdH, 'd\O', 085H, 08dH, 0f6H, 'e', 0cH, 0ffH, 0eaH, 081H, 0a8H
|
||
DB 'R', 0adH, 'e', 0deH, 08fH, 01H, 0ffH, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??CheckForInvalidSQLConnection@CIOCP@@QAEXXZ@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??CheckForInvalidSQLConnection@CIOCP@@QAEXXZ@4JA DD 0615H ; `CIOCP::CheckForInvalidSQLConnection'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0O@HLJAGLMK@GetFrame_Cmpp@
|
||
CONST SEGMENT
|
||
??_C@_0O@HLJAGLMK@GetFrame_Cmpp@ DB 'GetFrame_Cmpp', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA DD 05a8H ; `CIOCP::GetFrame_Cmpp'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_08KCCFNCFB@GetFrame@
|
||
CONST SEGMENT
|
||
??_C@_08KCCFNCFB@GetFrame@ DB 'GetFrame', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1CE@CMEGDHFN@?$AAn?$AAe?$AAw?$AA?5?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AA?5?$AAe?$AAr?$AAr@
|
||
CONST SEGMENT
|
||
??_C@_1CE@CMEGDHFN@?$AAn?$AAe?$AAw?$AA?5?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AA?5?$AAe?$AAr?$AAr@ DB 'n'
|
||
DB 00H, 'e', 00H, 'w', 00H, ' ', 00H, 'P', 00H, 'r', 00H, 'o', 00H
|
||
DB 'c', 00H, 'e', 00H, 's', 00H, 's', 00H, ' ', 00H, 'e', 00H, 'r'
|
||
DB 00H, 'r', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA DD 0537H ; `CIOCP::GetFrame'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0BC@GHBOFPCG@CompletionRoutine@
|
||
CONST SEGMENT
|
||
??_C@_0BC@GHBOFPCG@CompletionRoutine@ DB 'CompletionRoutine', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??CompletionRoutine@CIOCP@@CGKPAX@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??CompletionRoutine@CIOCP@@CGKPAX@Z@4JA DD 03c3H ; `CIOCP::CompletionRoutine'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_08JEEIGPMO@MainLoop@
|
||
CONST SEGMENT
|
||
??_C@_08JEEIGPMO@MainLoop@ DB 'MainLoop', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1CM@OPBDNDPO@?$AAA?$AAc?$AAc?$AAe?$AAp?$AAt?$AA_?$AAE?$AAv?$AAe?$AAn?$AAt?$AA?5?$AAE?$AAr@
|
||
CONST SEGMENT
|
||
??_C@_1CM@OPBDNDPO@?$AAA?$AAc?$AAc?$AAe?$AAp?$AAt?$AA_?$AAE?$AAv?$AAe?$AAn?$AAt?$AA?5?$AAE?$AAr@ DB 'A'
|
||
DB 00H, 'c', 00H, 'c', 00H, 'e', 00H, 'p', 00H, 't', 00H, '_', 00H
|
||
DB 'E', 00H, 'v', 00H, 'e', 00H, 'n', 00H, 't', 00H, ' ', 00H, 'E'
|
||
DB 00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H, ':', 00H, '%', 00H
|
||
DB 'd', 00H, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??MainLoop@CIOCP@@SGKPAX@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??MainLoop@CIOCP@@SGKPAX@Z@4JA DD 036aH ; `CIOCP::MainLoop'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0BK@HCEPDKA@CheckForInvalidConnection@
|
||
CONST SEGMENT
|
||
??_C@_0BK@HCEPDKA@CheckForInvalidConnection@ DB 'CheckForInvalidConnectio'
|
||
DB 'n', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1CE@LBHGJMMD@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$KF?$AA6?$AAp?$AAn?$PP?$IF@
|
||
CONST SEGMENT
|
||
??_C@_1CE@LBHGJMMD@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$KF?$AA6?$AAp?$AAn?$PP?$IF@ DB '['
|
||
DB 00H, '%', 00H, 'd', 00H, ']', 00H, '%', 00H, 's', 00H, ':', 00H
|
||
DB '%', 00H, 'd', 00H, ' ', 00H, 0a5H, 'c6epenc', 085H, 08dH, 0f6H
|
||
DB 'e', 01H, 0ffH, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1CA@MOMGAHJI@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$NO?$PP?$KF?$PP?$IF?$PP?v?$AA?$AB@
|
||
CONST SEGMENT
|
||
??_C@_1CA@MOMGAHJI@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$NO?$PP?$KF?$PP?$IF?$PP?v?$AA?$AB@ DB '['
|
||
DB 00H, '%', 00H, 'd', 00H, ']', 00H, '%', 00H, 's', 00H, ':', 00H
|
||
DB '%', 00H, 'd', 00H, ' ', 00H, 0deH, 08fH, 0a5H, 'c', 085H, 08dH
|
||
DB 0f6H, 'e', 01H, 0ffH, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??CheckForInvalidConnection@CIOCP@@QAEXXZ@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??CheckForInvalidConnection@CIOCP@@QAEXXZ@4JA DD 026bH ; `CIOCP::CheckForInvalidConnection'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0L@BDAOGBHN@HandleData@
|
||
CONST SEGMENT
|
||
??_C@_0L@BDAOGBHN@HandleData@ DB 'HandleData', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z@4JA DD 0167H ; `CIOCP::HandleData'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0O@NGMCBOJM@InitIoContext@
|
||
CONST SEGMENT
|
||
??_C@_0O@NGMCBOJM@InitIoContext@ DB 'InitIoContext', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z@4JA DD 05bH ; `CIOCP::InitIoContext'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
CONST SEGMENT
|
||
??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@ DB 'D:\Works\Corps'
|
||
DB 'ms_2010\SmsCenter\IOCP\IOCP.cpp', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_05LGELBCGM@Close@
|
||
CONST SEGMENT
|
||
??_C@_05LGELBCGM@Close@ DB 'Close', 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ?__LINE__Var@?0??Close@CIOCP@@QAEXXZ@4JA
|
||
_DATA SEGMENT
|
||
?__LINE__Var@?0??Close@CIOCP@@QAEXXZ@4JA DD 023H ; `CIOCP::Close'::`1'::__LINE__Var
|
||
_DATA ENDS
|
||
; COMDAT ??_7CIOCP@@6B@
|
||
CONST SEGMENT
|
||
??_7CIOCP@@6B@ DD FLAT:??_R4CIOCP@@6B@ ; CIOCP::`vftable'
|
||
DD FLAT:??_ECIOCP@@UAEPAXI@Z
|
||
CONST ENDS
|
||
_DATA SEGMENT
|
||
?g_GUIDAcceptEx@@3U_GUID@@A DD 0b5367df1H ; g_GUIDAcceptEx
|
||
DW 0cbacH
|
||
DW 011cfH
|
||
DB 095H
|
||
DB 0caH
|
||
DB 00H
|
||
DB 080H
|
||
DB 05fH
|
||
DB 048H
|
||
DB 0a1H
|
||
DB 092H
|
||
?g_GUIDTransmitFile@@3U_GUID@@A DD 0b5367df0H ; g_GUIDTransmitFile
|
||
DW 0cbacH
|
||
DW 011cfH
|
||
DB 095H
|
||
DB 0caH
|
||
DB 00H
|
||
DB 080H
|
||
DB 05fH
|
||
DB 048H
|
||
DB 0a1H
|
||
DB 092H
|
||
?g_GUIDAcceptExaddrs@@3U_GUID@@A DD 0b5367df2H ; g_GUIDAcceptExaddrs
|
||
DW 0cbacH
|
||
DW 011cfH
|
||
DB 095H
|
||
DB 0caH
|
||
DB 00H
|
||
DB 080H
|
||
DB 05fH
|
||
DB 048H
|
||
DB 0a1H
|
||
DB 092H
|
||
_DATA ENDS
|
||
; COMDAT ??_C@_13JKNELIBG@?$AAT@
|
||
CONST SEGMENT
|
||
??_C@_13JKNELIBG@?$AAT@ DB 'T', 00H, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
CONST SEGMENT
|
||
??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@ DB 'L', 00H, 'o', 00H, 'g', 00H, 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
CONST SEGMENT
|
||
??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@ DB 'A', 00H, 'p'
|
||
DB 00H, 'p', 00H, 'E', 00H, 'r', 00H, 'r', 00H, 'o', 00H, 'r', 00H
|
||
DB 00H, 00H ; `string'
|
||
CONST ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 0dH
|
||
DB 067H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 037H
|
||
DB 044H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 02a2H
|
||
DW 02b2H
|
||
DW 0541H
|
||
DW 054aH
|
||
DW 06a2H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?CompletionRoutine@CIOCP@@CGKPAX@Z$6 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?CompletionRoutine@CIOCP@@CGKPAX@Z$0
|
||
__tryblocktable$?CompletionRoutine@CIOCP@@CGKPAX@Z DD 00H
|
||
DD 01H
|
||
DD 05H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?CompletionRoutine@CIOCP@@CGKPAX@Z$6
|
||
__ehfuncinfo$?CompletionRoutine@CIOCP@@CGKPAX@Z DD 019930522H
|
||
DD 06H
|
||
DD FLAT:__unwindtable$?CompletionRoutine@CIOCP@@CGKPAX@Z
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?CompletionRoutine@CIOCP@@CGKPAX@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?CompletionRoutine@CIOCP@@CGKPAX@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$2
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$4
|
||
DD 04H
|
||
DD FLAT:__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$5
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 02fH
|
||
DB 03cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 02f8H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$5 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$0
|
||
__tryblocktable$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z DD 00H
|
||
DD 00H
|
||
DD 04H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$5
|
||
__ehfuncinfo$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z DD 019930522H
|
||
DD 05H
|
||
DD FLAT:__unwindtable$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$2
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$4
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 02fH
|
||
DB 03cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 015eH
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$5 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$0
|
||
__tryblocktable$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z DD 00H
|
||
DD 00H
|
||
DD 04H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$5
|
||
__ehfuncinfo$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z DD 019930522H
|
||
DD 05H
|
||
DD FLAT:__unwindtable$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$2
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$4
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 03fH
|
||
DB 04cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 01ffH
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?MainLoop@CIOCP@@SGKPAX@Z$7 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?MainLoop@CIOCP@@SGKPAX@Z$0
|
||
__tryblocktable$?MainLoop@CIOCP@@SGKPAX@Z DD 00H
|
||
DD 02H
|
||
DD 06H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?MainLoop@CIOCP@@SGKPAX@Z$7
|
||
__ehfuncinfo$?MainLoop@CIOCP@@SGKPAX@Z DD 019930522H
|
||
DD 07H
|
||
DD FLAT:__unwindtable$?MainLoop@CIOCP@@SGKPAX@Z
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?MainLoop@CIOCP@@SGKPAX@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?MainLoop@CIOCP@@SGKPAX@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$2
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$3
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$4
|
||
DD 04H
|
||
DD FLAT:__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$5
|
||
DD 05H
|
||
DD FLAT:__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$6
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 010H
|
||
DW 0240H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 0dH
|
||
DB 0aaH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 0dH
|
||
DB 09bH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 0d1H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 088H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 065H
|
||
DB 072H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 04e5H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$12 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$2
|
||
__catchsym$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$11 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$0
|
||
__ehfuncinfo$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z DD 019930522H
|
||
DD 0bH
|
||
DD FLAT:__unwindtable$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
DD 02H
|
||
DD FLAT:__tryblocktable$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__tryblocktable$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z DD 01H
|
||
DD 02H
|
||
DD 06H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$11
|
||
DD 00H
|
||
DD 06H
|
||
DD 0aH
|
||
DD 01H
|
||
DD FLAT:__catchsym$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$12
|
||
__unwindtable$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$4
|
||
DD 00H
|
||
DD 00H
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$5
|
||
DD 04H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$6
|
||
DD 05H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$7
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 07H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$8
|
||
DD 08H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$9
|
||
DD 09H
|
||
DD FLAT:__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$10
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 02fH
|
||
DB 03cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 023dH
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$5 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$0
|
||
__tryblocktable$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z DD 00H
|
||
DD 00H
|
||
DD 04H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$5
|
||
__ehfuncinfo$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z DD 019930522H
|
||
DD 05H
|
||
DD FLAT:__unwindtable$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$2
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$4
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 02fH
|
||
DB 03cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 0293H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?Close@CIOCP@@QAEXXZ$5 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?Close@CIOCP@@QAEXXZ$0
|
||
__tryblocktable$?Close@CIOCP@@QAEXXZ DD 00H
|
||
DD 00H
|
||
DD 04H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?Close@CIOCP@@QAEXXZ$5
|
||
__ehfuncinfo$?Close@CIOCP@@QAEXXZ DD 019930522H
|
||
DD 05H
|
||
DD FLAT:__unwindtable$?Close@CIOCP@@QAEXXZ
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?Close@CIOCP@@QAEXXZ
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?Close@CIOCP@@QAEXXZ DD 0ffffffffH
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?Close@CIOCP@@QAEXXZ$2
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?Close@CIOCP@@QAEXXZ$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?Close@CIOCP@@QAEXXZ$4
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 02fH
|
||
DB 03cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 0125H
|
||
DW 01f7H
|
||
DW 03ebH
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?CheckForInvalidConnection@CIOCP@@QAEXXZ$5 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?CheckForInvalidConnection@CIOCP@@QAEXXZ$0
|
||
__tryblocktable$?CheckForInvalidConnection@CIOCP@@QAEXXZ DD 00H
|
||
DD 00H
|
||
DD 04H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?CheckForInvalidConnection@CIOCP@@QAEXXZ$5
|
||
__ehfuncinfo$?CheckForInvalidConnection@CIOCP@@QAEXXZ DD 019930522H
|
||
DD 05H
|
||
DD FLAT:__unwindtable$?CheckForInvalidConnection@CIOCP@@QAEXXZ
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?CheckForInvalidConnection@CIOCP@@QAEXXZ
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?CheckForInvalidConnection@CIOCP@@QAEXXZ DD 0ffffffffH
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?CheckForInvalidConnection@CIOCP@@QAEXXZ$2
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?CheckForInvalidConnection@CIOCP@@QAEXXZ$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?CheckForInvalidConnection@CIOCP@@QAEXXZ$4
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 02fH
|
||
DB 03cH
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 02e2H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$5 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$0
|
||
__tryblocktable$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ DD 00H
|
||
DD 00H
|
||
DD 04H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$5
|
||
__ehfuncinfo$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ DD 019930522H
|
||
DD 05H
|
||
DD FLAT:__unwindtable$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ DD 0ffffffffH
|
||
DD 00H
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 01H
|
||
DD FLAT:__unwindfunclet$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$2
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$4
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 037H
|
||
DB 044H
|
||
voltbl ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 023H
|
||
DW 0197H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__catchsym$?MainLoop2@CIOCP@@SGKPAX@Z$6 DD 00H
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__catch$?MainLoop2@CIOCP@@SGKPAX@Z$0
|
||
__tryblocktable$?MainLoop2@CIOCP@@SGKPAX@Z DD 00H
|
||
DD 01H
|
||
DD 05H
|
||
DD 01H
|
||
DD FLAT:__catchsym$?MainLoop2@CIOCP@@SGKPAX@Z$6
|
||
__ehfuncinfo$?MainLoop2@CIOCP@@SGKPAX@Z DD 019930522H
|
||
DD 06H
|
||
DD FLAT:__unwindtable$?MainLoop2@CIOCP@@SGKPAX@Z
|
||
DD 01H
|
||
DD FLAT:__tryblocktable$?MainLoop2@CIOCP@@SGKPAX@Z
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 00H
|
||
__unwindtable$?MainLoop2@CIOCP@@SGKPAX@Z DD 0ffffffffH
|
||
DD 00H
|
||
DD 00H
|
||
DD FLAT:__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$2
|
||
DD 0ffffffffH
|
||
DD 00H
|
||
DD 02H
|
||
DD FLAT:__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$3
|
||
DD 03H
|
||
DD FLAT:__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$4
|
||
DD 04H
|
||
DD FLAT:__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$5
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 019H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__unwindtable$??1CIOCP@@UAE@XZ DD 0ffffffffH
|
||
DD FLAT:__unwindfunclet$??1CIOCP@@UAE@XZ$0
|
||
__ehfuncinfo$??1CIOCP@@UAE@XZ DD 019930522H
|
||
DD 01H
|
||
DD FLAT:__unwindtable$??1CIOCP@@UAE@XZ
|
||
DD 2 DUP(00H)
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 04H
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 019H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__unwindtable$??0CIOCP@@QAE@XZ DD 0ffffffffH
|
||
DD FLAT:__unwindfunclet$??0CIOCP@@QAE@XZ$0
|
||
__ehfuncinfo$??0CIOCP@@QAE@XZ DD 019930522H
|
||
DD 01H
|
||
DD FLAT:__unwindtable$??0CIOCP@@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$??1AutoCoInitializeEx@@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 09H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__ehfuncinfo$?GetDefaultManager@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUIAtlStringMgr@ATL@@XZ DD 019930522H
|
||
DD 00H
|
||
DD 00H
|
||
DD 2 DUP(00H)
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 04H
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 09H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__ehfuncinfo$?FindStringResourceInstance@?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@SAPAUHINSTANCE__@@I@Z DD 019930522H
|
||
DD 00H
|
||
DD 00H
|
||
DD 2 DUP(00H)
|
||
DD 2 DUP(00H)
|
||
DD 00H
|
||
DD 04H
|
||
xdata$x ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 016H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__unwindtable$?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@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$?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
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DB 09H
|
||
voltbl ENDS
|
||
; COMDAT xdata$x
|
||
xdata$x SEGMENT
|
||
__ehfuncinfo$?AtlA2WHelper@@YGPA_WPA_WPBDHI@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 ??_GCIOCP@@UAEPAXI@Z
|
||
_TEXT SEGMENT
|
||
_this$ = -4 ; size = 4
|
||
___flags$ = 8 ; size = 4
|
||
??_GCIOCP@@UAEPAXI@Z PROC ; CIOCP::`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 ??1CIOCP@@UAE@XZ ; CIOCP::~CIOCP
|
||
00014 8b 45 08 mov eax, DWORD PTR ___flags$[ebp]
|
||
00017 83 e0 01 and eax, 1
|
||
0001a 74 11 je SHORT $LN2@scalar
|
||
0001c 68 e8 00 00 00 push 232 ; 000000e8H
|
||
00021 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00024 50 push eax
|
||
00025 e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete
|
||
0002a 83 c4 08 add esp, 8
|
||
$LN2@scalar:
|
||
0002d 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00030 5f pop edi
|
||
00031 5e pop esi
|
||
00032 5b pop ebx
|
||
00033 8b e5 mov esp, ebp
|
||
00035 5d pop ebp
|
||
00036 c2 04 00 ret 4
|
||
??_GCIOCP@@UAEPAXI@Z ENDP ; CIOCP::`scalar deleting destructor'
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?GetAddrAndPort@CIOCP@@AAEHPADQADAAI@Z
|
||
_TEXT SEGMENT
|
||
_addr$ = -32 ; size = 16
|
||
_lp_buf$ = -16 ; size = 4
|
||
_len$ = -12 ; size = 4
|
||
_this$ = -8 ; size = 4
|
||
__$ArrayPad$ = -4 ; size = 4
|
||
_buf$ = 8 ; size = 4
|
||
_ip$ = 12 ; size = 4
|
||
_port$ = 16 ; size = 4
|
||
?GetAddrAndPort@CIOCP@@AAEHPADQADAAI@Z PROC ; CIOCP::GetAddrAndPort, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 719 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 83 ec 60 sub esp, 96 ; 00000060H
|
||
00006 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
0000b 33 c5 xor eax, ebp
|
||
0000d 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00010 53 push ebx
|
||
00011 56 push esi
|
||
00012 57 push edi
|
||
00013 89 4d f8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 720 : int len = BUFFER_SIZE - sizeof( SOCKADDR_IN ) - 16;
|
||
|
||
00016 c7 45 f4 b0 dd
|
||
06 00 mov DWORD PTR _len$[ebp], 449968 ; 0006ddb0H
|
||
|
||
; 721 : char *lp_buf = buf + len; //ֱ<>Ӷ<EFBFBD>ȡԶ<C8A1>˵<EFBFBD>ַ
|
||
|
||
0001d 8b 45 08 mov eax, DWORD PTR _buf$[ebp]
|
||
00020 03 45 f4 add eax, DWORD PTR _len$[ebp]
|
||
00023 89 45 f0 mov DWORD PTR _lp_buf$[ebp], eax
|
||
|
||
; 722 :
|
||
; 723 : SOCKADDR_IN addr;
|
||
; 724 :
|
||
; 725 : memcpy( &addr, lp_buf, sizeof( SOCKADDR_IN ) );
|
||
|
||
00026 6a 10 push 16 ; 00000010H
|
||
00028 8b 45 f0 mov eax, DWORD PTR _lp_buf$[ebp]
|
||
0002b 50 push eax
|
||
0002c 8d 4d e0 lea ecx, DWORD PTR _addr$[ebp]
|
||
0002f 51 push ecx
|
||
00030 e8 00 00 00 00 call _memcpy
|
||
00035 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 726 :
|
||
; 727 : port = ntohl( addr.sin_port );
|
||
|
||
00038 0f b7 45 e2 movzx eax, WORD PTR _addr$[ebp+2]
|
||
0003c 50 push eax
|
||
0003d ff 15 00 00 00
|
||
00 call DWORD PTR __imp__ntohl@4
|
||
00043 8b 4d 10 mov ecx, DWORD PTR _port$[ebp]
|
||
00046 89 01 mov DWORD PTR [ecx], eax
|
||
|
||
; 728 : strcpy( ip, inet_ntoa( addr.sin_addr ) );
|
||
|
||
00048 8b 45 e4 mov eax, DWORD PTR _addr$[ebp+4]
|
||
0004b 50 push eax
|
||
0004c ff 15 00 00 00
|
||
00 call DWORD PTR __imp__inet_ntoa@4
|
||
00052 50 push eax
|
||
00053 8b 4d 0c mov ecx, DWORD PTR _ip$[ebp]
|
||
00056 51 push ecx
|
||
00057 e8 00 00 00 00 call _strcpy
|
||
0005c 83 c4 08 add esp, 8
|
||
|
||
; 729 :
|
||
; 730 : return TRUE;
|
||
|
||
0005f b8 01 00 00 00 mov eax, 1
|
||
|
||
; 731 : }
|
||
|
||
00064 5f pop edi
|
||
00065 5e pop esi
|
||
00066 5b pop ebx
|
||
00067 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
0006a 33 cd xor ecx, ebp
|
||
0006c e8 00 00 00 00 call @__security_check_cookie@4
|
||
00071 8b e5 mov esp, ebp
|
||
00073 5d pop ebp
|
||
00074 c2 0c 00 ret 12 ; 0000000cH
|
||
?GetAddrAndPort@CIOCP@@AAEHPADQADAAI@Z ENDP ; CIOCP::GetAddrAndPort
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?CompletionRoutine@CIOCP@@CGKPAX@Z
|
||
_TEXT SEGMENT
|
||
tv217 = -6700 ; size = 4
|
||
tv219 = -6696 ; size = 4
|
||
tv66 = -6696 ; size = 4
|
||
tv323 = -6692 ; size = 4
|
||
tv287 = -6692 ; size = 4
|
||
tv282 = -6692 ; size = 4
|
||
tv258 = -6692 ; size = 4
|
||
tv220 = -6692 ; size = 4
|
||
tv200 = -6692 ; size = 4
|
||
tv185 = -6692 ; size = 4
|
||
tv183 = -6692 ; size = 4
|
||
tv178 = -6692 ; size = 4
|
||
tv140 = -6692 ; size = 4
|
||
tv135 = -6692 ; size = 4
|
||
$T2 = -6688 ; size = 4
|
||
$T3 = -6684 ; size = 4
|
||
$T4 = -6680 ; size = 4
|
||
$T5 = -6676 ; size = 4
|
||
$T6 = -6672 ; size = 4
|
||
_NXlog$7 = -6156 ; size = 6056
|
||
_pBB$8 = -100 ; size = 4
|
||
_pAA$9 = -96 ; size = 4
|
||
_remote_len$10 = -92 ; size = 4
|
||
_local_len$11 = -88 ; size = 4
|
||
_remote$12 = -84 ; size = 4
|
||
_local$13 = -80 ; size = 4
|
||
_lp_new_key$14 = -76 ; size = 4
|
||
_lp_ov$15 = -72 ; size = 4
|
||
_lp_io$16 = -68 ; size = 4
|
||
_lp_key$17 = -64 ; size = 4
|
||
_hRet$18 = -60 ; size = 4
|
||
_dwBytes$19 = -56 ; size = 4
|
||
_bRet$20 = -52 ; size = 4
|
||
_nRet$21 = -48 ; size = 4
|
||
_lp_this$22 = -44 ; size = 4
|
||
_AutoCoInit$23 = -37 ; size = 1
|
||
__lpa$ = -36 ; size = 4
|
||
__acp$ = -28 ; size = 4
|
||
__convert$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_param$ = 8 ; size = 4
|
||
?CompletionRoutine@CIOCP@@CGKPAX@Z PROC ; CIOCP::CompletionRoutine, COMDAT
|
||
|
||
; 963 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?CompletionRoutine@CIOCP@@CGKPAX@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 1c 1a 00 00 mov eax, 6684 ; 00001a1cH
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
|
||
; 964 : USES_CONVERSION;
|
||
|
||
00036 e8 00 00 00 00 call ?_AtlGetConversionACP@ATL@@YGIXZ ; ATL::_AtlGetConversionACP
|
||
0003b 89 45 e4 mov DWORD PTR __acp$[ebp], eax
|
||
|
||
; 965 : try
|
||
|
||
0003e c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 966 : {
|
||
; 967 : AutoCoInitializeEx AutoCoInit; //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Com<6F><6D><EFBFBD><EFBFBD>
|
||
|
||
00045 8d 4d db lea ecx, DWORD PTR _AutoCoInit$23[ebp]
|
||
00048 e8 00 00 00 00 call ??0AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
0004d c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
|
||
; 968 :
|
||
; 969 : CIOCP* lp_this = (CIOCP*)lp_param;
|
||
|
||
00051 8b 45 08 mov eax, DWORD PTR _lp_param$[ebp]
|
||
00054 89 45 d4 mov DWORD PTR _lp_this$22[ebp], eax
|
||
|
||
; 970 :
|
||
; 971 : int nRet;
|
||
; 972 : BOOL bRet;
|
||
; 973 : DWORD dwBytes = 0;
|
||
|
||
00057 c7 45 c8 00 00
|
||
00 00 mov DWORD PTR _dwBytes$19[ebp], 0
|
||
|
||
; 974 : HANDLE hRet;
|
||
; 975 :
|
||
; 976 : IOCP_KEY_PTR lp_key = NULL;
|
||
|
||
0005e c7 45 c0 00 00
|
||
00 00 mov DWORD PTR _lp_key$17[ebp], 0
|
||
|
||
; 977 : IOCP_IO_PTR lp_io = NULL;
|
||
|
||
00065 c7 45 bc 00 00
|
||
00 00 mov DWORD PTR _lp_io$16[ebp], 0
|
||
|
||
; 978 : LPWSAOVERLAPPED lp_ov = NULL;
|
||
|
||
0006c c7 45 b8 00 00
|
||
00 00 mov DWORD PTR _lp_ov$15[ebp], 0
|
||
|
||
; 979 : IOCP_KEY_PTR lp_new_key = NULL;
|
||
|
||
00073 c7 45 b4 00 00
|
||
00 00 mov DWORD PTR _lp_new_key$14[ebp], 0
|
||
$LN2@Completion:
|
||
|
||
; 980 :
|
||
; 981 : while( TRUE )
|
||
|
||
0007a b8 01 00 00 00 mov eax, 1
|
||
0007f 85 c0 test eax, eax
|
||
00081 0f 84 2e 05 00
|
||
00 je $LN3@Completion
|
||
|
||
; 982 : {
|
||
; 983 : bRet = GetQueuedCompletionStatus( lp_this->m_h_iocp, &dwBytes, (PULONG_PTR)&lp_key, &lp_ov, INFINITE );
|
||
|
||
00087 6a ff push -1
|
||
00089 8d 45 b8 lea eax, DWORD PTR _lp_ov$15[ebp]
|
||
0008c 50 push eax
|
||
0008d 8d 4d c0 lea ecx, DWORD PTR _lp_key$17[ebp]
|
||
00090 51 push ecx
|
||
00091 8d 55 c8 lea edx, DWORD PTR _dwBytes$19[ebp]
|
||
00094 52 push edx
|
||
00095 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
00098 8b 48 28 mov ecx, DWORD PTR [eax+40]
|
||
0009b 51 push ecx
|
||
0009c ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetQueuedCompletionStatus@20
|
||
000a2 89 45 cc mov DWORD PTR _bRet$20[ebp], eax
|
||
|
||
; 984 : if ( lp_this->m_bQuit ) //<2F>յ<EFBFBD><D5B5>˳<EFBFBD><CBB3>ź<EFBFBD>
|
||
|
||
000a5 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
000a8 83 b8 e4 00 00
|
||
00 00 cmp DWORD PTR [eax+228], 0
|
||
000af 74 21 je SHORT $LN7@Completion
|
||
|
||
; 985 : return 0;
|
||
|
||
000b1 c7 85 f0 e5 ff
|
||
ff 00 00 00 00 mov DWORD PTR $T6[ebp], 0
|
||
000bb c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0
|
||
000bf 8d 4d db lea ecx, DWORD PTR _AutoCoInit$23[ebp]
|
||
000c2 e8 00 00 00 00 call ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
000c7 8b 85 f0 e5 ff
|
||
ff mov eax, DWORD PTR $T6[ebp]
|
||
000cd e9 bc 05 00 00 jmp $LN1@Completion
|
||
$LN7@Completion:
|
||
|
||
; 986 : lp_io = (IOCP_IO_PTR)lp_ov;
|
||
|
||
000d2 8b 45 b8 mov eax, DWORD PTR _lp_ov$15[ebp]
|
||
000d5 89 45 bc mov DWORD PTR _lp_io$16[ebp], eax
|
||
|
||
; 987 : if ( lp_io && !AfxIsValidAddress(&lp_io->operation,4,true) ) //<2F>յ<EFBFBD><D5B5><EFBFBD>lp_io<69><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
000d8 83 7d bc 00 cmp DWORD PTR _lp_io$16[ebp], 0
|
||
000dc 74 16 je SHORT $LN8@Completion
|
||
000de 6a 01 push 1
|
||
000e0 6a 04 push 4
|
||
000e2 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
000e5 83 c0 18 add eax, 24 ; 00000018H
|
||
000e8 50 push eax
|
||
000e9 e8 00 00 00 00 call ?AfxIsValidAddress@@YGHPBXIH@Z ; AfxIsValidAddress
|
||
000ee 85 c0 test eax, eax
|
||
000f0 75 02 jne SHORT $LN8@Completion
|
||
|
||
; 988 : continue;
|
||
|
||
000f2 eb 86 jmp SHORT $LN2@Completion
|
||
$LN8@Completion:
|
||
|
||
; 989 : if ( (bRet==0 || dwBytes ==0 ) && lp_io && lp_io->operation== IOCP_WRITE ) //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>Write
|
||
|
||
000f4 83 7d cc 00 cmp DWORD PTR _bRet$20[ebp], 0
|
||
000f8 74 06 je SHORT $LN10@Completion
|
||
000fa 83 7d c8 00 cmp DWORD PTR _dwBytes$19[ebp], 0
|
||
000fe 75 26 jne SHORT $LN9@Completion
|
||
$LN10@Completion:
|
||
00100 83 7d bc 00 cmp DWORD PTR _lp_io$16[ebp], 0
|
||
00104 74 20 je SHORT $LN9@Completion
|
||
00106 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00109 83 78 18 03 cmp DWORD PTR [eax+24], 3
|
||
0010d 75 17 jne SHORT $LN9@Completion
|
||
|
||
; 990 : {
|
||
; 991 : lp_this->HandleData( lp_io, lp_key, IOCP_COMPLETE_WRITE );
|
||
|
||
0010f 6a 03 push 3
|
||
00111 8b 45 c0 mov eax, DWORD PTR _lp_key$17[ebp]
|
||
00114 50 push eax
|
||
00115 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00118 51 push ecx
|
||
00119 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
0011c e8 00 00 00 00 call ?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z ; CIOCP::HandleData
|
||
|
||
; 992 : continue;
|
||
|
||
00121 e9 54 ff ff ff jmp $LN2@Completion
|
||
$LN9@Completion:
|
||
|
||
; 993 : }
|
||
; 994 : if( bRet == 0 )
|
||
|
||
00126 83 7d cc 00 cmp DWORD PTR _bRet$20[ebp], 0
|
||
0012a 75 61 jne SHORT $LN11@Completion
|
||
|
||
; 995 : {
|
||
; 996 : if ( lp_key && lp_io && lp_io->lRandID>0 )
|
||
|
||
0012c 83 7d c0 00 cmp DWORD PTR _lp_key$17[ebp], 0
|
||
00130 74 4a je SHORT $LN12@Completion
|
||
00132 83 7d bc 00 cmp DWORD PTR _lp_io$16[ebp], 0
|
||
00136 74 44 je SHORT $LN12@Completion
|
||
00138 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
0013b 83 78 20 00 cmp DWORD PTR [eax+32], 0
|
||
0013f 7e 3b jle SHORT $LN12@Completion
|
||
|
||
; 997 : {
|
||
; 998 : lp_this->m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
00141 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
00144 83 c0 08 add eax, 8
|
||
00147 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv135[ebp], eax
|
||
0014d 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00150 51 push ecx
|
||
00151 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv135[ebp]
|
||
00157 e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 999 : lp_this->m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
0015c 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
0015f 83 c0 08 add eax, 8
|
||
00162 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv140[ebp], eax
|
||
00168 8b 4d c0 mov ecx, DWORD PTR _lp_key$17[ebp]
|
||
0016b 51 push ecx
|
||
0016c 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv140[ebp]
|
||
00172 e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 1000 : continue;
|
||
|
||
00177 e9 fe fe ff ff jmp $LN2@Completion
|
||
$LN12@Completion:
|
||
|
||
; 1001 : }
|
||
; 1002 : if ( (!lp_key && !lp_io) )
|
||
|
||
0017c 83 7d c0 00 cmp DWORD PTR _lp_key$17[ebp], 0
|
||
00180 75 0b jne SHORT $LN11@Completion
|
||
00182 83 7d bc 00 cmp DWORD PTR _lp_io$16[ebp], 0
|
||
00186 75 05 jne SHORT $LN11@Completion
|
||
|
||
; 1003 : {
|
||
; 1004 : continue;
|
||
|
||
00188 e9 ed fe ff ff jmp $LN2@Completion
|
||
$LN11@Completion:
|
||
|
||
; 1005 : //return 0; //<2F><><EFBFBD>˳<EFBFBD>
|
||
; 1006 : }
|
||
; 1007 : //cout << "GetQueuedCompletionStatus() failed: " << GetLastError() << endl;
|
||
; 1008 : //continue;
|
||
; 1009 : }
|
||
; 1010 : if( NULL == lp_key )
|
||
|
||
0018d 83 7d c0 00 cmp DWORD PTR _lp_key$17[ebp], 0
|
||
00191 75 05 jne SHORT $LN14@Completion
|
||
|
||
; 1011 : {
|
||
; 1012 : continue;
|
||
|
||
00193 e9 e2 fe ff ff jmp $LN2@Completion
|
||
$LN14@Completion:
|
||
|
||
; 1013 : //return 0;
|
||
; 1014 : }
|
||
; 1015 : if( lp_io == NULL )
|
||
|
||
00198 83 7d bc 00 cmp DWORD PTR _lp_io$16[ebp], 0
|
||
0019c 75 05 jne SHORT $LN15@Completion
|
||
|
||
; 1016 : {
|
||
; 1017 : //cout<<"recv a null CIoContext!"<<endl;
|
||
; 1018 : continue;
|
||
|
||
0019e e9 d7 fe ff ff jmp $LN2@Completion
|
||
$LN15@Completion:
|
||
|
||
; 1019 : }
|
||
; 1020 :
|
||
; 1021 : if ( lp_io&& lp_io->operation!=IOCP_WRITE && (lp_io< &lp_this->m_KeyList.m_IO[0] || lp_io>&lp_this->m_KeyList.m_IO[MAX_LOGINUSER]) )
|
||
|
||
001a3 83 7d bc 00 cmp DWORD PTR _lp_io$16[ebp], 0
|
||
001a7 74 37 je SHORT $LN16@Completion
|
||
001a9 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
001ac 83 78 18 03 cmp DWORD PTR [eax+24], 3
|
||
001b0 74 2e je SHORT $LN16@Completion
|
||
001b2 b8 b0 df 06 00 mov eax, 450480 ; 0006dfb0H
|
||
001b7 6b c8 00 imul ecx, eax, 0
|
||
001ba 8b 55 d4 mov edx, DWORD PTR _lp_this$22[ebp]
|
||
001bd 03 4a 14 add ecx, DWORD PTR [edx+20]
|
||
001c0 39 4d bc cmp DWORD PTR _lp_io$16[ebp], ecx
|
||
001c3 72 16 jb SHORT $LN17@Completion
|
||
001c5 b8 b0 df 06 00 mov eax, 450480 ; 0006dfb0H
|
||
001ca 69 c8 e8 03 00
|
||
00 imul ecx, eax, 1000
|
||
001d0 8b 55 d4 mov edx, DWORD PTR _lp_this$22[ebp]
|
||
001d3 03 4a 14 add ecx, DWORD PTR [edx+20]
|
||
001d6 39 4d bc cmp DWORD PTR _lp_io$16[ebp], ecx
|
||
001d9 76 05 jbe SHORT $LN16@Completion
|
||
$LN17@Completion:
|
||
|
||
; 1022 : continue;
|
||
|
||
001db e9 9a fe ff ff jmp $LN2@Completion
|
||
$LN16@Completion:
|
||
|
||
; 1023 : if ( lp_key && (lp_key< &lp_this->m_KeyList.m_Key[0] || lp_key>&lp_this->m_KeyList.m_Key[MAX_LOGINUSER]) )
|
||
|
||
001e0 83 7d c0 00 cmp DWORD PTR _lp_key$17[ebp], 0
|
||
001e4 74 2e je SHORT $LN18@Completion
|
||
001e6 b8 08 00 00 00 mov eax, 8
|
||
001eb 6b c8 00 imul ecx, eax, 0
|
||
001ee 8b 55 d4 mov edx, DWORD PTR _lp_this$22[ebp]
|
||
001f1 03 4a 0c add ecx, DWORD PTR [edx+12]
|
||
001f4 39 4d c0 cmp DWORD PTR _lp_key$17[ebp], ecx
|
||
001f7 72 16 jb SHORT $LN19@Completion
|
||
001f9 b8 08 00 00 00 mov eax, 8
|
||
001fe 69 c8 e8 03 00
|
||
00 imul ecx, eax, 1000
|
||
00204 8b 55 d4 mov edx, DWORD PTR _lp_this$22[ebp]
|
||
00207 03 4a 0c add ecx, DWORD PTR [edx+12]
|
||
0020a 39 4d c0 cmp DWORD PTR _lp_key$17[ebp], ecx
|
||
0020d 76 05 jbe SHORT $LN18@Completion
|
||
$LN19@Completion:
|
||
|
||
; 1024 : continue;
|
||
|
||
0020f e9 66 fe ff ff jmp $LN2@Completion
|
||
$LN18@Completion:
|
||
|
||
; 1025 :
|
||
; 1026 : if( ( IOCP_ACCEPT != lp_io->operation ) && ( 0 == dwBytes ) )
|
||
|
||
00214 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00217 83 78 18 01 cmp DWORD PTR [eax+24], 1
|
||
0021b 74 4e je SHORT $LN20@Completion
|
||
0021d 83 7d c8 00 cmp DWORD PTR _dwBytes$19[ebp], 0
|
||
00221 75 48 jne SHORT $LN20@Completion
|
||
|
||
; 1027 : {
|
||
; 1028 : closesocket( lp_io->socket );
|
||
|
||
00223 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00226 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
00229 51 push ecx
|
||
0022a ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 1029 : //lp_this->m_io_group.RemoveAt( lp_io );
|
||
; 1030 : //lp_this->m_key_group.RemoveAt( lp_key );
|
||
; 1031 : lp_this->m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
00230 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
00233 83 c0 08 add eax, 8
|
||
00236 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv178[ebp], eax
|
||
0023c 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
0023f 51 push ecx
|
||
00240 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv178[ebp]
|
||
00246 e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 1032 : lp_this->m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
0024b 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
0024e 83 c0 08 add eax, 8
|
||
00251 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv183[ebp], eax
|
||
00257 8b 4d c0 mov ecx, DWORD PTR _lp_key$17[ebp]
|
||
0025a 51 push ecx
|
||
0025b 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv183[ebp]
|
||
00261 e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 1033 : //MSG("һ<><D2BB><EFBFBD>û<EFBFBD><C3BB>˳<EFBFBD><CBB3><EFBFBD>");
|
||
; 1034 : continue;
|
||
|
||
00266 e9 0f fe ff ff jmp $LN2@Completion
|
||
$LN20@Completion:
|
||
|
||
; 1035 : }
|
||
; 1036 :
|
||
; 1037 : switch( lp_io->operation )
|
||
|
||
0026b 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
0026e 8b 48 18 mov ecx, DWORD PTR [eax+24]
|
||
00271 89 8d dc e5 ff
|
||
ff mov DWORD PTR tv185[ebp], ecx
|
||
00277 83 bd dc e5 ff
|
||
ff 01 cmp DWORD PTR tv185[ebp], 1
|
||
0027e 74 1f je SHORT $LN21@Completion
|
||
00280 83 bd dc e5 ff
|
||
ff 02 cmp DWORD PTR tv185[ebp], 2
|
||
00287 0f 84 b1 02 00
|
||
00 je $LN29@Completion
|
||
0028d 83 bd dc e5 ff
|
||
ff 03 cmp DWORD PTR tv185[ebp], 3
|
||
00294 0f 84 f2 02 00
|
||
00 je $LN32@Completion
|
||
0029a e9 0c 03 00 00 jmp $LN34@Completion
|
||
$LN21@Completion:
|
||
|
||
; 1038 : {
|
||
; 1039 : case IOCP_ACCEPT:
|
||
; 1040 : {
|
||
; 1041 : //cout<<"<22><><EFBFBD>յ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<endl;
|
||
; 1042 : lp_io->state = SOCKET_STATE_CONNECT;
|
||
|
||
0029f 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
002a2 c7 40 1c 01 00
|
||
00 00 mov DWORD PTR [eax+28], 1
|
||
|
||
; 1043 : if( dwBytes > 0 )
|
||
|
||
002a9 83 7d c8 00 cmp DWORD PTR _dwBytes$19[ebp], 0
|
||
002ad 76 0a jbe SHORT $LN22@Completion
|
||
|
||
; 1044 : {
|
||
; 1045 : lp_io->state = SOCKET_STATE_CONNECT_AND_READ;
|
||
|
||
002af 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
002b2 c7 40 1c 02 00
|
||
00 00 mov DWORD PTR [eax+28], 2
|
||
$LN22@Completion:
|
||
|
||
; 1046 : //cout<<"<22><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<endl;
|
||
; 1047 : }
|
||
; 1048 :
|
||
; 1049 : //ȡIP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>Ϣ
|
||
; 1050 : SOCKADDR *local=NULL;
|
||
|
||
002b9 c7 45 b0 00 00
|
||
00 00 mov DWORD PTR _local$13[ebp], 0
|
||
|
||
; 1051 : SOCKADDR *remote=NULL;
|
||
|
||
002c0 c7 45 ac 00 00
|
||
00 00 mov DWORD PTR _remote$12[ebp], 0
|
||
|
||
; 1052 : int local_len;
|
||
; 1053 : int remote_len;
|
||
; 1054 : lp_this->lpGetAcceptExSockAddrs(lp_io->buf,0,sizeof(SOCKADDR_IN) + 16,sizeof(SOCKADDR_IN) + 16,&local,&local_len,&remote,&remote_len);
|
||
|
||
002c7 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
002ca 8b 48 48 mov ecx, DWORD PTR [eax+72]
|
||
002cd 89 8d dc e5 ff
|
||
ff mov DWORD PTR tv200[ebp], ecx
|
||
002d3 8d 55 a4 lea edx, DWORD PTR _remote_len$10[ebp]
|
||
002d6 52 push edx
|
||
002d7 8d 45 ac lea eax, DWORD PTR _remote$12[ebp]
|
||
002da 50 push eax
|
||
002db 8d 4d a8 lea ecx, DWORD PTR _local_len$11[ebp]
|
||
002de 51 push ecx
|
||
002df 8d 55 b0 lea edx, DWORD PTR _local$13[ebp]
|
||
002e2 52 push edx
|
||
002e3 6a 20 push 32 ; 00000020H
|
||
002e5 6a 20 push 32 ; 00000020H
|
||
002e7 6a 00 push 0
|
||
002e9 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
002ec 05 e0 01 00 00 add eax, 480 ; 000001e0H
|
||
002f1 50 push eax
|
||
002f2 ff 95 dc e5 ff
|
||
ff call DWORD PTR tv200[ebp]
|
||
|
||
; 1055 : SOCKADDR_IN * pAA = ((SOCKADDR_IN *)local);
|
||
|
||
002f8 8b 45 b0 mov eax, DWORD PTR _local$13[ebp]
|
||
002fb 89 45 a0 mov DWORD PTR _pAA$9[ebp], eax
|
||
|
||
; 1056 : SOCKADDR_IN * pBB = ((SOCKADDR_IN *)remote);
|
||
|
||
002fe 8b 45 ac mov eax, DWORD PTR _remote$12[ebp]
|
||
00301 89 45 9c mov DWORD PTR _pBB$8[ebp], eax
|
||
|
||
; 1057 : #ifdef UNICODE
|
||
; 1058 : _tcscpy(lp_io->m_szIP,A2W(inet_ntoa(pBB->sin_addr)));
|
||
|
||
00304 8b 45 9c mov eax, DWORD PTR _pBB$8[ebp]
|
||
00307 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
0030a 51 push ecx
|
||
0030b ff 15 00 00 00
|
||
00 call DWORD PTR __imp__inet_ntoa@4
|
||
00311 89 45 dc mov DWORD PTR __lpa$[ebp], eax
|
||
00314 83 7d dc 00 cmp DWORD PTR __lpa$[ebp], 0
|
||
00318 75 0c jne SHORT $LN38@Completion
|
||
0031a c7 85 dc e5 ff
|
||
ff 00 00 00 00 mov DWORD PTR tv220[ebp], 0
|
||
00324 eb 64 jmp SHORT $LN39@Completion
|
||
$LN38@Completion:
|
||
00326 8b 55 dc mov edx, DWORD PTR __lpa$[ebp]
|
||
00329 52 push edx
|
||
0032a e8 00 00 00 00 call _strlen
|
||
0032f 83 c4 04 add esp, 4
|
||
00332 83 c0 01 add eax, 1
|
||
00335 89 45 e8 mov DWORD PTR __convert$[ebp], eax
|
||
00338 81 7d e8 ff ff
|
||
ff 3f cmp DWORD PTR __convert$[ebp], 1073741823 ; 3fffffffH
|
||
0033f 7e 0c jle SHORT $LN36@Completion
|
||
00341 c7 85 d8 e5 ff
|
||
ff 00 00 00 00 mov DWORD PTR tv219[ebp], 0
|
||
0034b eb 31 jmp SHORT $LN37@Completion
|
||
$LN36@Completion:
|
||
0034d 8b 45 e8 mov eax, DWORD PTR __convert$[ebp]
|
||
00350 d1 e0 shl eax, 1
|
||
00352 e8 00 00 00 00 call __alloca_probe_16
|
||
00357 89 a5 d4 e5 ff
|
||
ff mov DWORD PTR tv217[ebp], esp
|
||
0035d 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00360 8b 45 e4 mov eax, DWORD PTR __acp$[ebp]
|
||
00363 50 push eax
|
||
00364 8b 4d e8 mov ecx, DWORD PTR __convert$[ebp]
|
||
00367 51 push ecx
|
||
00368 8b 55 dc mov edx, DWORD PTR __lpa$[ebp]
|
||
0036b 52 push edx
|
||
0036c 8b 85 d4 e5 ff
|
||
ff mov eax, DWORD PTR tv217[ebp]
|
||
00372 50 push eax
|
||
00373 e8 00 00 00 00 call ?AtlA2WHelper@@YGPA_WPA_WPBDHI@Z ; AtlA2WHelper
|
||
00378 89 85 d8 e5 ff
|
||
ff mov DWORD PTR tv219[ebp], eax
|
||
$LN37@Completion:
|
||
0037e 8b 8d d8 e5 ff
|
||
ff mov ecx, DWORD PTR tv219[ebp]
|
||
00384 89 8d dc e5 ff
|
||
ff mov DWORD PTR tv220[ebp], ecx
|
||
$LN39@Completion:
|
||
0038a 8b 95 dc e5 ff
|
||
ff mov edx, DWORD PTR tv220[ebp]
|
||
00390 52 push edx
|
||
00391 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00394 83 c0 30 add eax, 48 ; 00000030H
|
||
00397 50 push eax
|
||
00398 e8 00 00 00 00 call _wcscpy
|
||
0039d 83 c4 08 add esp, 8
|
||
|
||
; 1059 : #else
|
||
; 1060 : strcpy(lp_io->m_szIP,inet_ntoa(pBB->sin_addr));
|
||
; 1061 : #endif
|
||
; 1062 : lp_io->m_lPort = ntohs(pBB->sin_port);
|
||
|
||
003a0 8b 45 9c mov eax, DWORD PTR _pBB$8[ebp]
|
||
003a3 0f b7 48 02 movzx ecx, WORD PTR [eax+2]
|
||
003a7 51 push ecx
|
||
003a8 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__ntohs@4
|
||
003ae 0f b7 d0 movzx edx, ax
|
||
003b1 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
003b4 89 50 70 mov DWORD PTR [eax+112], edx
|
||
|
||
; 1063 : lp_io->m_lLocalPort = ntohs(pAA->sin_port);
|
||
|
||
003b7 8b 45 a0 mov eax, DWORD PTR _pAA$9[ebp]
|
||
003ba 0f b7 48 02 movzx ecx, WORD PTR [eax+2]
|
||
003be 51 push ecx
|
||
003bf ff 15 00 00 00
|
||
00 call DWORD PTR __imp__ntohs@4
|
||
003c5 0f b7 d0 movzx edx, ax
|
||
003c8 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
003cb 89 50 74 mov DWORD PTR [eax+116], edx
|
||
|
||
; 1064 : #ifdef UNICODE
|
||
; 1065 :
|
||
; 1066 : if (lp_io->m_lLocalPort == DEFAULT_SERVERPORT_UNI )
|
||
|
||
003ce 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
003d1 81 78 74 fe 07
|
||
00 00 cmp DWORD PTR [eax+116], 2046 ; 000007feH
|
||
003d8 75 25 jne SHORT $LN23@Completion
|
||
|
||
; 1067 : #else
|
||
; 1068 : if (lp_io->m_lLocalPort == DEFAULT_LISTENPORT )
|
||
; 1069 : #endif
|
||
; 1070 : {
|
||
; 1071 : nRet = setsockopt(
|
||
|
||
003da 6a 04 push 4
|
||
003dc 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
003df 83 c0 2c add eax, 44 ; 0000002cH
|
||
003e2 50 push eax
|
||
003e3 68 0b 70 00 00 push 28683 ; 0000700bH
|
||
003e8 68 ff ff 00 00 push 65535 ; 0000ffffH
|
||
003ed 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
003f0 8b 51 14 mov edx, DWORD PTR [ecx+20]
|
||
003f3 52 push edx
|
||
003f4 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__setsockopt@20
|
||
003fa 89 45 d0 mov DWORD PTR _nRet$21[ebp], eax
|
||
|
||
; 1072 : lp_io->socket,
|
||
; 1073 : SOL_SOCKET,
|
||
; 1074 : SO_UPDATE_ACCEPT_CONTEXT,
|
||
; 1075 : ( char* )&lp_this->m_listen_socket,
|
||
; 1076 : sizeof( lp_this->m_listen_socket ) );
|
||
; 1077 : }
|
||
|
||
003fd eb 23 jmp SHORT $LN24@Completion
|
||
$LN23@Completion:
|
||
|
||
; 1078 : else
|
||
; 1079 : {
|
||
; 1080 : nRet = setsockopt(
|
||
|
||
003ff 6a 04 push 4
|
||
00401 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
00404 83 c0 34 add eax, 52 ; 00000034H
|
||
00407 50 push eax
|
||
00408 68 0b 70 00 00 push 28683 ; 0000700bH
|
||
0040d 68 ff ff 00 00 push 65535 ; 0000ffffH
|
||
00412 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00415 8b 51 14 mov edx, DWORD PTR [ecx+20]
|
||
00418 52 push edx
|
||
00419 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__setsockopt@20
|
||
0041f 89 45 d0 mov DWORD PTR _nRet$21[ebp], eax
|
||
$LN24@Completion:
|
||
|
||
; 1081 : lp_io->socket,
|
||
; 1082 : SOL_SOCKET,
|
||
; 1083 : SO_UPDATE_ACCEPT_CONTEXT,
|
||
; 1084 : ( char* )&lp_this->m_listen_socket2,
|
||
; 1085 : sizeof( lp_this->m_listen_socket2 ) );
|
||
; 1086 : }
|
||
; 1087 :
|
||
; 1088 : if( SOCKET_ERROR == nRet )
|
||
|
||
00422 83 7d d0 ff cmp DWORD PTR _nRet$21[ebp], -1
|
||
00426 75 2d jne SHORT $LN25@Completion
|
||
|
||
; 1089 : {
|
||
; 1090 : closesocket( lp_io->socket );
|
||
|
||
00428 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
0042b 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
0042e 51 push ecx
|
||
0042f ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 1091 : //lp_this->m_io_group.RemoveAt( lp_io );
|
||
; 1092 : lp_this->m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
00435 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
00438 83 c0 08 add eax, 8
|
||
0043b 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv258[ebp], eax
|
||
00441 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00444 51 push ecx
|
||
00445 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv258[ebp]
|
||
0044b e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 1093 : //cout<<"update socket fail!"<<WSAGetLastError()<<endl;
|
||
; 1094 : continue;
|
||
|
||
00450 e9 25 fc ff ff jmp $LN2@Completion
|
||
$LN25@Completion:
|
||
|
||
; 1095 : }
|
||
; 1096 : //lp_new_key = lp_this->m_key_group.GetBlank();
|
||
; 1097 : lp_new_key = lp_this->m_KeyList.GetBlank_Key();
|
||
|
||
00455 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
00458 83 c1 08 add ecx, 8
|
||
0045b e8 00 00 00 00 call ?GetBlank_Key@CKeyList@@QAEPAUIOCP_KEY@@XZ ; CKeyList::GetBlank_Key
|
||
00460 89 45 b4 mov DWORD PTR _lp_new_key$14[ebp], eax
|
||
|
||
; 1098 : if( lp_new_key == NULL )
|
||
|
||
00463 83 7d b4 00 cmp DWORD PTR _lp_new_key$14[ebp], 0
|
||
00467 75 12 jne SHORT $LN26@Completion
|
||
|
||
; 1099 : {
|
||
; 1100 : closesocket( lp_io->socket );
|
||
|
||
00469 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
0046c 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
0046f 51 push ecx
|
||
00470 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 1101 : continue;
|
||
|
||
00476 e9 ff fb ff ff jmp $LN2@Completion
|
||
$LN26@Completion:
|
||
|
||
; 1102 : }
|
||
; 1103 :
|
||
; 1104 : lp_new_key->socket = lp_io->socket;
|
||
|
||
0047b 8b 45 b4 mov eax, DWORD PTR _lp_new_key$14[ebp]
|
||
0047e 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00481 8b 51 14 mov edx, DWORD PTR [ecx+20]
|
||
00484 89 10 mov DWORD PTR [eax], edx
|
||
|
||
; 1105 : lp_io->pKey = lp_new_key; //<2F><>¼<EFBFBD><C2BC>Ӧ<EFBFBD><D3A6>key<65><79><EFBFBD><EFBFBD>
|
||
|
||
00486 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00489 8b 4d b4 mov ecx, DWORD PTR _lp_new_key$14[ebp]
|
||
0048c 89 88 dc 01 00
|
||
00 mov DWORD PTR [eax+476], ecx
|
||
|
||
; 1106 : lp_io->dwAcceptTime = ::GetTickCount(); //Accept<70><74>ʱ<EFBFBD><CAB1>
|
||
|
||
00492 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetTickCount@0
|
||
00498 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
0049b 89 81 d4 01 00
|
||
00 mov DWORD PTR [ecx+468], eax
|
||
|
||
; 1107 :
|
||
; 1108 : //<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>SOCKETͬ<54><CDAC><EFBFBD>ɶ˿ڹ<CBBF><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 1109 : hRet = CreateIoCompletionPort(
|
||
|
||
004a1 6a 00 push 0
|
||
004a3 8b 45 b4 mov eax, DWORD PTR _lp_new_key$14[ebp]
|
||
004a6 50 push eax
|
||
004a7 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
004aa 8b 51 28 mov edx, DWORD PTR [ecx+40]
|
||
004ad 52 push edx
|
||
004ae 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
004b1 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
004b4 51 push ecx
|
||
004b5 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateIoCompletionPort@16
|
||
004bb 89 45 c4 mov DWORD PTR _hRet$18[ebp], eax
|
||
|
||
; 1110 : ( HANDLE )lp_io->socket,
|
||
; 1111 : lp_this->m_h_iocp,
|
||
; 1112 : (DWORD)lp_new_key,0 );
|
||
; 1113 : if( NULL == hRet )
|
||
|
||
004be 83 7d c4 00 cmp DWORD PTR _hRet$18[ebp], 0
|
||
004c2 75 48 jne SHORT $LN27@Completion
|
||
|
||
; 1114 : {
|
||
; 1115 : lp_this->m_KeyList.RemoveAt_Key( lp_new_key );
|
||
|
||
004c4 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
004c7 83 c0 08 add eax, 8
|
||
004ca 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv282[ebp], eax
|
||
004d0 8b 4d b4 mov ecx, DWORD PTR _lp_new_key$14[ebp]
|
||
004d3 51 push ecx
|
||
004d4 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv282[ebp]
|
||
004da e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 1116 : lp_this->m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
004df 8b 45 d4 mov eax, DWORD PTR _lp_this$22[ebp]
|
||
004e2 83 c0 08 add eax, 8
|
||
004e5 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv287[ebp], eax
|
||
004eb 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
004ee 51 push ecx
|
||
004ef 8b 8d dc e5 ff
|
||
ff mov ecx, DWORD PTR tv287[ebp]
|
||
004f5 e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 1117 : closesocket( lp_io->socket );
|
||
|
||
004fa 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
004fd 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
00500 51 push ecx
|
||
00501 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 1118 : continue;
|
||
|
||
00507 e9 6e fb ff ff jmp $LN2@Completion
|
||
$LN27@Completion:
|
||
|
||
; 1119 : }
|
||
; 1120 :
|
||
; 1121 : //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 1122 : lp_this->HandleData( lp_io, lp_new_key,IOCP_COMPLETE_ACCEPT );
|
||
|
||
0050c 6a 04 push 4
|
||
0050e 8b 45 b4 mov eax, DWORD PTR _lp_new_key$14[ebp]
|
||
00511 50 push eax
|
||
00512 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00515 51 push ecx
|
||
00516 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
00519 e8 00 00 00 00 call ?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z ; CIOCP::HandleData
|
||
|
||
; 1123 :
|
||
; 1124 : bRet = lp_this->DataAction( lp_io, lp_new_key );
|
||
|
||
0051e 8b 45 b4 mov eax, DWORD PTR _lp_new_key$14[ebp]
|
||
00521 50 push eax
|
||
00522 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00525 51 push ecx
|
||
00526 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
00529 e8 00 00 00 00 call ?DataAction@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@@Z ; CIOCP::DataAction
|
||
0052e 89 45 cc mov DWORD PTR _bRet$20[ebp], eax
|
||
|
||
; 1125 :
|
||
; 1126 : if( FALSE == bRet )
|
||
|
||
00531 83 7d cc 00 cmp DWORD PTR _bRet$20[ebp], 0
|
||
00535 75 05 jne SHORT $LN28@Completion
|
||
|
||
; 1127 : {
|
||
; 1128 : continue;
|
||
|
||
00537 e9 3e fb ff ff jmp $LN2@Completion
|
||
$LN28@Completion:
|
||
|
||
; 1129 : }
|
||
; 1130 : }
|
||
; 1131 : break;
|
||
|
||
0053c eb 72 jmp SHORT $LN4@Completion
|
||
$LN29@Completion:
|
||
|
||
; 1132 : case IOCP_READ:
|
||
; 1133 : {
|
||
; 1134 : if( SOCKET_STATE_CONNECT_AND_READ != lp_io->state )
|
||
|
||
0053e 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00541 83 78 1c 02 cmp DWORD PTR [eax+28], 2
|
||
00545 74 0a je SHORT $LN30@Completion
|
||
|
||
; 1135 : {
|
||
; 1136 : lp_io->state = SOCKET_STATE_CONNECT_AND_READ;
|
||
|
||
00547 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
0054a c7 40 1c 02 00
|
||
00 00 mov DWORD PTR [eax+28], 2
|
||
$LN30@Completion:
|
||
|
||
; 1137 : }
|
||
; 1138 :
|
||
; 1139 : lp_io->wsaBuf.len = dwBytes;
|
||
|
||
00551 8b 45 bc mov eax, DWORD PTR _lp_io$16[ebp]
|
||
00554 8b 4d c8 mov ecx, DWORD PTR _dwBytes$19[ebp]
|
||
00557 89 48 24 mov DWORD PTR [eax+36], ecx
|
||
|
||
; 1140 :
|
||
; 1141 : lp_this->HandleData( lp_io, lp_key, IOCP_COMPLETE_READ );
|
||
|
||
0055a 6a 01 push 1
|
||
0055c 8b 45 c0 mov eax, DWORD PTR _lp_key$17[ebp]
|
||
0055f 50 push eax
|
||
00560 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00563 51 push ecx
|
||
00564 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
00567 e8 00 00 00 00 call ?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z ; CIOCP::HandleData
|
||
|
||
; 1142 :
|
||
; 1143 : bRet = lp_this->DataAction( lp_io, lp_key );
|
||
|
||
0056c 8b 45 c0 mov eax, DWORD PTR _lp_key$17[ebp]
|
||
0056f 50 push eax
|
||
00570 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00573 51 push ecx
|
||
00574 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
00577 e8 00 00 00 00 call ?DataAction@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@@Z ; CIOCP::DataAction
|
||
0057c 89 45 cc mov DWORD PTR _bRet$20[ebp], eax
|
||
|
||
; 1144 :
|
||
; 1145 : if( FALSE == bRet )
|
||
|
||
0057f 83 7d cc 00 cmp DWORD PTR _bRet$20[ebp], 0
|
||
00583 75 05 jne SHORT $LN31@Completion
|
||
|
||
; 1146 : {
|
||
; 1147 : continue;
|
||
|
||
00585 e9 f0 fa ff ff jmp $LN2@Completion
|
||
$LN31@Completion:
|
||
|
||
; 1148 : }
|
||
; 1149 : }
|
||
; 1150 : break;
|
||
|
||
0058a eb 24 jmp SHORT $LN4@Completion
|
||
$LN32@Completion:
|
||
|
||
; 1151 : case IOCP_WRITE:
|
||
; 1152 : {
|
||
; 1153 : lp_this->HandleData( lp_io, lp_key, IOCP_COMPLETE_WRITE );
|
||
|
||
0058c 6a 03 push 3
|
||
0058e 8b 45 c0 mov eax, DWORD PTR _lp_key$17[ebp]
|
||
00591 50 push eax
|
||
00592 8b 4d bc mov ecx, DWORD PTR _lp_io$16[ebp]
|
||
00595 51 push ecx
|
||
00596 8b 4d d4 mov ecx, DWORD PTR _lp_this$22[ebp]
|
||
00599 e8 00 00 00 00 call ?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z ; CIOCP::HandleData
|
||
|
||
; 1154 :
|
||
; 1155 :
|
||
; 1156 : if( FALSE == bRet )
|
||
|
||
0059e 83 7d cc 00 cmp DWORD PTR _bRet$20[ebp], 0
|
||
005a2 75 05 jne SHORT $LN33@Completion
|
||
|
||
; 1157 : {
|
||
; 1158 : continue;
|
||
|
||
005a4 e9 d1 fa ff ff jmp $LN2@Completion
|
||
$LN33@Completion:
|
||
|
||
; 1159 : }
|
||
; 1160 : }
|
||
; 1161 : break;
|
||
|
||
005a9 eb 05 jmp SHORT $LN4@Completion
|
||
$LN34@Completion:
|
||
|
||
; 1162 : default:
|
||
; 1163 : {
|
||
; 1164 : continue;
|
||
|
||
005ab e9 ca fa ff ff jmp $LN2@Completion
|
||
$LN4@Completion:
|
||
|
||
; 1165 : }
|
||
; 1166 : break;
|
||
; 1167 : }
|
||
; 1168 : }
|
||
|
||
005b0 e9 c5 fa ff ff jmp $LN2@Completion
|
||
$LN3@Completion:
|
||
|
||
; 1169 : return 0;
|
||
|
||
005b5 c7 85 ec e5 ff
|
||
ff 00 00 00 00 mov DWORD PTR $T5[ebp], 0
|
||
005bf c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0
|
||
005c3 8d 4d db lea ecx, DWORD PTR _AutoCoInit$23[ebp]
|
||
005c6 e8 00 00 00 00 call ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
005cb 8b 85 ec e5 ff
|
||
ff mov eax, DWORD PTR $T5[ebp]
|
||
005d1 e9 b8 00 00 00 jmp $LN1@Completion
|
||
__catch$?CompletionRoutine@CIOCP@@CGKPAX@Z$0:
|
||
|
||
; 1170 : }
|
||
; 1171 : catch (... )
|
||
; 1172 : {
|
||
; 1173 : LOG_APPERROR(_T("T"));
|
||
|
||
005d6 8d 8d f4 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$7[ebp]
|
||
005dc e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
005e1 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
005e5 51 push ecx
|
||
005e6 8b cc mov ecx, esp
|
||
005e8 89 a5 e8 e5 ff
|
||
ff mov DWORD PTR $T4[ebp], esp
|
||
005ee 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
005f3 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> > >
|
||
005f8 89 85 dc e5 ff
|
||
ff mov DWORD PTR tv323[ebp], eax
|
||
005fe c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
00602 51 push ecx
|
||
00603 8b cc mov ecx, esp
|
||
00605 89 a5 e4 e5 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
0060b 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
00610 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> > >
|
||
00615 89 85 d8 e5 ff
|
||
ff mov DWORD PTR tv66[ebp], eax
|
||
0061b c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5
|
||
0061f c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
00623 8d 8d f4 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$7[ebp]
|
||
00629 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
0062e a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??CompletionRoutine@CIOCP@@CGKPAX@Z@4JA
|
||
00633 05 d2 00 00 00 add eax, 210 ; 000000d2H
|
||
00638 50 push eax
|
||
00639 68 00 00 00 00 push OFFSET ??_C@_0BC@GHBOFPCG@CompletionRoutine@
|
||
0063e 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
00643 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
00648 8d 8d f4 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$7[ebp]
|
||
0064e e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
00653 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
00657 8d 8d f4 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$7[ebp]
|
||
0065d e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 1174 : return 1;
|
||
|
||
00662 c7 85 e0 e5 ff
|
||
ff 01 00 00 00 mov DWORD PTR $T2[ebp], 1
|
||
0066c b8 00 00 00 00 mov eax, $LN47@Completion
|
||
00671 c3 ret 0
|
||
|
||
; 1175 : }
|
||
|
||
00672 b8 00 00 00 00 mov eax, __tryend$?CompletionRoutine@CIOCP@@CGKPAX@Z$1
|
||
00677 c3 ret 0
|
||
__tryend$?CompletionRoutine@CIOCP@@CGKPAX@Z$1:
|
||
00678 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
0067f eb 0d jmp SHORT $LN1@Completion
|
||
$LN47@Completion:
|
||
00681 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
|
||
; 1174 : return 1;
|
||
|
||
00688 8b 85 e0 e5 ff
|
||
ff mov eax, DWORD PTR $T2[ebp]
|
||
$LN1@Completion:
|
||
|
||
; 1176 : }
|
||
|
||
0068e 8d a5 c4 e5 ff
|
||
ff lea esp, DWORD PTR [ebp-6716]
|
||
00694 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
00697 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
0069e 59 pop ecx
|
||
0069f 5f pop edi
|
||
006a0 5e pop esi
|
||
006a1 5b pop ebx
|
||
006a2 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
006a5 33 cd xor ecx, ebp
|
||
006a7 e8 00 00 00 00 call @__security_check_cookie@4
|
||
006ac 8b e5 mov esp, ebp
|
||
006ae 5d pop ebp
|
||
006af c2 04 00 ret 4
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$2:
|
||
00000 8d 4d db lea ecx, DWORD PTR _AutoCoInit$23[ebp]
|
||
00003 e9 00 00 00 00 jmp ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$3:
|
||
00008 8d 8d f4 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$7[ebp]
|
||
0000e e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?CompletionRoutine@CIOCP@@CGKPAX@Z$4:
|
||
00013 8b 8d e8 e5 ff
|
||
ff mov ecx, DWORD PTR $T4[ebp]
|
||
00019 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$?CompletionRoutine@CIOCP@@CGKPAX@Z$5:
|
||
0001e 8b 8d e4 e5 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00024 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> > >
|
||
00029 cc int 3
|
||
0002a cc int 3
|
||
0002b cc int 3
|
||
0002c cc int 3
|
||
0002d cc int 3
|
||
__ehhandler$?CompletionRoutine@CIOCP@@CGKPAX@Z:
|
||
0002e 90 npad 1
|
||
0002f 90 npad 1
|
||
00030 8b 54 24 08 mov edx, DWORD PTR [esp+8]
|
||
00034 8d 42 0c lea eax, DWORD PTR [edx+12]
|
||
00037 8b 8a d0 e5 ff
|
||
ff mov ecx, DWORD PTR [edx-6704]
|
||
0003d 33 c8 xor ecx, eax
|
||
0003f e8 00 00 00 00 call @__security_check_cookie@4
|
||
00044 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
00047 33 c8 xor ecx, eax
|
||
00049 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0004e b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?CompletionRoutine@CIOCP@@CGKPAX@Z
|
||
00053 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?CompletionRoutine@CIOCP@@CGKPAX@Z ENDP ; CIOCP::CompletionRoutine
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?InitSocket@CIOCP@@AAEHXZ
|
||
_TEXT SEGMENT
|
||
tv166 = -84 ; size = 4
|
||
tv158 = -84 ; size = 4
|
||
tv95 = -84 ; size = 4
|
||
_lp_key2$ = -16 ; size = 4
|
||
_hRet$ = -12 ; size = 4
|
||
_lp_key$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?InitSocket@CIOCP@@AAEHXZ PROC ; CIOCP::InitSocket, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 117 : {
|
||
|
||
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
|
||
|
||
; 118 : //<2F>˿<EFBFBD>1<EFBFBD><31>ʼ<EFBFBD><CABC>
|
||
; 119 : m_listen_socket = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED );
|
||
|
||
0000c 6a 01 push 1
|
||
0000e 6a 00 push 0
|
||
00010 6a 00 push 0
|
||
00012 6a 06 push 6
|
||
00014 6a 01 push 1
|
||
00016 6a 02 push 2
|
||
00018 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSASocketW@24
|
||
0001e 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00021 89 41 2c mov DWORD PTR [ecx+44], eax
|
||
|
||
; 120 : if( INVALID_SOCKET == m_listen_socket )
|
||
|
||
00024 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00027 83 78 2c ff cmp DWORD PTR [eax+44], -1
|
||
0002b 75 07 jne SHORT $LN2@InitSocket
|
||
|
||
; 121 : {
|
||
; 122 : return FALSE;
|
||
|
||
0002d 33 c0 xor eax, eax
|
||
0002f e9 29 01 00 00 jmp $LN1@InitSocket
|
||
$LN2@InitSocket:
|
||
|
||
; 123 : }
|
||
; 124 : //IOCP_KEY_PTR lp_key = m_key_group.GetBlank();
|
||
; 125 : IOCP_KEY_PTR lp_key = m_KeyList.GetBlank_Key();
|
||
|
||
00034 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00037 83 c1 08 add ecx, 8
|
||
0003a e8 00 00 00 00 call ?GetBlank_Key@CKeyList@@QAEPAUIOCP_KEY@@XZ ; CKeyList::GetBlank_Key
|
||
0003f 89 45 f8 mov DWORD PTR _lp_key$[ebp], eax
|
||
|
||
; 126 : if ( !lp_key )
|
||
|
||
00042 83 7d f8 00 cmp DWORD PTR _lp_key$[ebp], 0
|
||
00046 75 07 jne SHORT $LN3@InitSocket
|
||
|
||
; 127 : return FALSE;
|
||
|
||
00048 33 c0 xor eax, eax
|
||
0004a e9 0e 01 00 00 jmp $LN1@InitSocket
|
||
$LN3@InitSocket:
|
||
|
||
; 128 :
|
||
; 129 : lp_key->socket = m_listen_socket;
|
||
|
||
0004f 8b 45 f8 mov eax, DWORD PTR _lp_key$[ebp]
|
||
00052 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00055 8b 51 2c mov edx, DWORD PTR [ecx+44]
|
||
00058 89 10 mov DWORD PTR [eax], edx
|
||
|
||
; 130 :
|
||
; 131 : HANDLE hRet = CreateIoCompletionPort( (HANDLE)m_listen_socket, m_h_iocp, (DWORD)lp_key, 0 );
|
||
|
||
0005a 6a 00 push 0
|
||
0005c 8b 45 f8 mov eax, DWORD PTR _lp_key$[ebp]
|
||
0005f 50 push eax
|
||
00060 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00063 8b 51 28 mov edx, DWORD PTR [ecx+40]
|
||
00066 52 push edx
|
||
00067 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0006a 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
0006d 51 push ecx
|
||
0006e ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateIoCompletionPort@16
|
||
00074 89 45 f4 mov DWORD PTR _hRet$[ebp], eax
|
||
|
||
; 132 : if( hRet == NULL )
|
||
|
||
00077 83 7d f4 00 cmp DWORD PTR _hRet$[ebp], 0
|
||
0007b 75 2b jne SHORT $LN4@InitSocket
|
||
|
||
; 133 : {
|
||
; 134 : CloseOneSocket( m_listen_socket );
|
||
|
||
0007d 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00080 83 c0 2c add eax, 44 ; 0000002cH
|
||
00083 50 push eax
|
||
00084 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00087 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 135 : //m_key_group.RemoveAt( lp_key );
|
||
; 136 : m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
0008c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0008f 83 c0 08 add eax, 8
|
||
00092 89 45 ac mov DWORD PTR tv95[ebp], eax
|
||
00095 8b 4d f8 mov ecx, DWORD PTR _lp_key$[ebp]
|
||
00098 51 push ecx
|
||
00099 8b 4d ac mov ecx, DWORD PTR tv95[ebp]
|
||
0009c e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 137 : return FALSE;
|
||
|
||
000a1 33 c0 xor eax, eax
|
||
000a3 e9 b5 00 00 00 jmp $LN1@InitSocket
|
||
$LN4@InitSocket:
|
||
|
||
; 138 : }
|
||
; 139 :
|
||
; 140 : //<2F>˿<EFBFBD>2<EFBFBD><32>ʼ<EFBFBD><CABC>
|
||
; 141 : m_listen_socket2 = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED );
|
||
|
||
000a8 6a 01 push 1
|
||
000aa 6a 00 push 0
|
||
000ac 6a 00 push 0
|
||
000ae 6a 06 push 6
|
||
000b0 6a 01 push 1
|
||
000b2 6a 02 push 2
|
||
000b4 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSASocketW@24
|
||
000ba 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000bd 89 41 34 mov DWORD PTR [ecx+52], eax
|
||
|
||
; 142 : if( INVALID_SOCKET == m_listen_socket2 )
|
||
|
||
000c0 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000c3 83 78 34 ff cmp DWORD PTR [eax+52], -1
|
||
000c7 75 07 jne SHORT $LN5@InitSocket
|
||
|
||
; 143 : {
|
||
; 144 : return FALSE;
|
||
|
||
000c9 33 c0 xor eax, eax
|
||
000cb e9 8d 00 00 00 jmp $LN1@InitSocket
|
||
$LN5@InitSocket:
|
||
|
||
; 145 : }
|
||
; 146 : //IOCP_KEY_PTR lp_key2 = m_key_group.GetBlank();
|
||
; 147 : IOCP_KEY_PTR lp_key2 = m_KeyList.GetBlank_Key();
|
||
|
||
000d0 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000d3 83 c1 08 add ecx, 8
|
||
000d6 e8 00 00 00 00 call ?GetBlank_Key@CKeyList@@QAEPAUIOCP_KEY@@XZ ; CKeyList::GetBlank_Key
|
||
000db 89 45 f0 mov DWORD PTR _lp_key2$[ebp], eax
|
||
|
||
; 148 : lp_key2->socket = m_listen_socket2;
|
||
|
||
000de 8b 45 f0 mov eax, DWORD PTR _lp_key2$[ebp]
|
||
000e1 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000e4 8b 51 34 mov edx, DWORD PTR [ecx+52]
|
||
000e7 89 10 mov DWORD PTR [eax], edx
|
||
|
||
; 149 :
|
||
; 150 : hRet = CreateIoCompletionPort( (HANDLE)m_listen_socket2, m_h_iocp, (DWORD)lp_key2, 0 );
|
||
|
||
000e9 6a 00 push 0
|
||
000eb 8b 45 f0 mov eax, DWORD PTR _lp_key2$[ebp]
|
||
000ee 50 push eax
|
||
000ef 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000f2 8b 51 28 mov edx, DWORD PTR [ecx+40]
|
||
000f5 52 push edx
|
||
000f6 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000f9 8b 48 34 mov ecx, DWORD PTR [eax+52]
|
||
000fc 51 push ecx
|
||
000fd ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateIoCompletionPort@16
|
||
00103 89 45 f4 mov DWORD PTR _hRet$[ebp], eax
|
||
|
||
; 151 : if( hRet == NULL )
|
||
|
||
00106 83 7d f4 00 cmp DWORD PTR _hRet$[ebp], 0
|
||
0010a 75 4c jne SHORT $LN6@InitSocket
|
||
|
||
; 152 : {
|
||
; 153 : CloseOneSocket( m_listen_socket );
|
||
|
||
0010c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0010f 83 c0 2c add eax, 44 ; 0000002cH
|
||
00112 50 push eax
|
||
00113 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00116 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 154 : //m_key_group.RemoveAt( lp_key );
|
||
; 155 : m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
0011b 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0011e 83 c0 08 add eax, 8
|
||
00121 89 45 ac mov DWORD PTR tv158[ebp], eax
|
||
00124 8b 4d f8 mov ecx, DWORD PTR _lp_key$[ebp]
|
||
00127 51 push ecx
|
||
00128 8b 4d ac mov ecx, DWORD PTR tv158[ebp]
|
||
0012b e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 156 : CloseOneSocket( m_listen_socket2 );
|
||
|
||
00130 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00133 83 c0 34 add eax, 52 ; 00000034H
|
||
00136 50 push eax
|
||
00137 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0013a e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 157 : //m_key_group.RemoveAt( lp_key2 );
|
||
; 158 : m_KeyList.RemoveAt_Key( lp_key2 );
|
||
|
||
0013f 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00142 83 c0 08 add eax, 8
|
||
00145 89 45 ac mov DWORD PTR tv166[ebp], eax
|
||
00148 8b 4d f0 mov ecx, DWORD PTR _lp_key2$[ebp]
|
||
0014b 51 push ecx
|
||
0014c 8b 4d ac mov ecx, DWORD PTR tv166[ebp]
|
||
0014f e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 159 : return FALSE;
|
||
|
||
00154 33 c0 xor eax, eax
|
||
00156 eb 05 jmp SHORT $LN1@InitSocket
|
||
$LN6@InitSocket:
|
||
|
||
; 160 : }
|
||
; 161 :
|
||
; 162 : return TRUE;
|
||
|
||
00158 b8 01 00 00 00 mov eax, 1
|
||
$LN1@InitSocket:
|
||
|
||
; 163 : }
|
||
|
||
0015d 5f pop edi
|
||
0015e 5e pop esi
|
||
0015f 5b pop ebx
|
||
00160 8b e5 mov esp, ebp
|
||
00162 5d pop ebp
|
||
00163 c3 ret 0
|
||
?InitSocket@CIOCP@@AAEHXZ ENDP ; CIOCP::InitSocket
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?CloseThreadHandle@CIOCP@@AAEXH@Z
|
||
_TEXT SEGMENT
|
||
_i$1 = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
_count$ = 8 ; size = 4
|
||
?CloseThreadHandle@CIOCP@@AAEXH@Z PROC ; CIOCP::CloseThreadHandle, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 171 : {
|
||
|
||
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
|
||
|
||
; 172 : if( count <= 0 )
|
||
|
||
0000c 83 7d 08 00 cmp DWORD PTR _count$[ebp], 0
|
||
00010 7f 05 jg SHORT $LN5@CloseThrea
|
||
|
||
; 173 : {
|
||
; 174 : return;
|
||
|
||
00012 e9 87 00 00 00 jmp $LN1@CloseThrea
|
||
$LN5@CloseThrea:
|
||
|
||
; 175 : }
|
||
; 176 :
|
||
; 177 : for( int i= 0; i < count; i++ )
|
||
|
||
00017 c7 45 f8 00 00
|
||
00 00 mov DWORD PTR _i$1[ebp], 0
|
||
0001e eb 09 jmp SHORT $LN4@CloseThrea
|
||
$LN2@CloseThrea:
|
||
00020 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
00023 83 c0 01 add eax, 1
|
||
00026 89 45 f8 mov DWORD PTR _i$1[ebp], eax
|
||
$LN4@CloseThrea:
|
||
00029 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
0002c 3b 45 08 cmp eax, DWORD PTR _count$[ebp]
|
||
0002f 7d 6d jge SHORT $LN1@CloseThrea
|
||
|
||
; 178 : {
|
||
; 179 : if (m_h_thread[i]!=INVALID_HANDLE_VALUE )
|
||
|
||
00031 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
00034 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00037 83 bc 81 94 00
|
||
00 00 ff cmp DWORD PTR [ecx+eax*4+148], -1
|
||
0003f 74 5b je SHORT $LN6@CloseThrea
|
||
|
||
; 180 : {
|
||
; 181 : if ( WaitForSingleObject(m_h_thread[i],1000)== WAIT_TIMEOUT )
|
||
|
||
00041 68 e8 03 00 00 push 1000 ; 000003e8H
|
||
00046 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
00049 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0004c 8b 94 81 94 00
|
||
00 00 mov edx, DWORD PTR [ecx+eax*4+148]
|
||
00053 52 push edx
|
||
00054 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WaitForSingleObject@8
|
||
0005a 3d 02 01 00 00 cmp eax, 258 ; 00000102H
|
||
0005f 75 16 jne SHORT $LN7@CloseThrea
|
||
|
||
; 182 : TerminateThread(m_h_thread[i],0); //<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>ʱ<EFBFBD><CAB1>ǿ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||
|
||
00061 6a 00 push 0
|
||
00063 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
00066 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00069 8b 94 81 94 00
|
||
00 00 mov edx, DWORD PTR [ecx+eax*4+148]
|
||
00070 52 push edx
|
||
00071 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__TerminateThread@8
|
||
$LN7@CloseThrea:
|
||
|
||
; 183 : CloseHandle( m_h_thread[i] );
|
||
|
||
00077 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
0007a 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0007d 8b 94 81 94 00
|
||
00 00 mov edx, DWORD PTR [ecx+eax*4+148]
|
||
00084 52 push edx
|
||
00085 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 184 : m_h_thread[i] = INVALID_HANDLE_VALUE;
|
||
|
||
0008b 8b 45 f8 mov eax, DWORD PTR _i$1[ebp]
|
||
0008e 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00091 c7 84 81 94 00
|
||
00 00 ff ff ff
|
||
ff mov DWORD PTR [ecx+eax*4+148], -1
|
||
$LN6@CloseThrea:
|
||
|
||
; 185 : }
|
||
; 186 : }
|
||
|
||
0009c eb 82 jmp SHORT $LN2@CloseThrea
|
||
$LN1@CloseThrea:
|
||
|
||
; 187 : }
|
||
|
||
0009e 5f pop edi
|
||
0009f 5e pop esi
|
||
000a0 5b pop ebx
|
||
000a1 8b e5 mov esp, ebp
|
||
000a3 5d pop ebp
|
||
000a4 c2 04 00 ret 4
|
||
?CloseThreadHandle@CIOCP@@AAEXH@Z ENDP ; CIOCP::CloseThreadHandle
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?StartThread@CIOCP@@AAEHXZ
|
||
_TEXT SEGMENT
|
||
_sys_info$ = -44 ; size = 36
|
||
_i$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?StartThread@CIOCP@@AAEHXZ PROC ; CIOCP::StartThread, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 240 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 83 ec 6c sub esp, 108 ; 0000006cH
|
||
00006 53 push ebx
|
||
00007 56 push esi
|
||
00008 57 push edi
|
||
00009 89 4d fc mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 241 : int i;
|
||
; 242 :
|
||
; 243 : SYSTEM_INFO sys_info;
|
||
; 244 :
|
||
; 245 : GetSystemInfo( &sys_info );
|
||
|
||
0000c 8d 45 d4 lea eax, DWORD PTR _sys_info$[ebp]
|
||
0000f 50 push eax
|
||
00010 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetSystemInfo@4
|
||
|
||
; 246 :
|
||
; 247 : m_n_thread_count = sys_info.dwNumberOfProcessors*2;
|
||
|
||
00016 8b 45 e8 mov eax, DWORD PTR _sys_info$[ebp+20]
|
||
00019 d1 e0 shl eax, 1
|
||
0001b 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0001e 89 81 90 00 00
|
||
00 mov DWORD PTR [ecx+144], eax
|
||
|
||
; 248 : if (m_n_thread_count<2 || m_n_thread_count>MAXTHREAD_COUNT )
|
||
|
||
00024 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00027 83 b8 90 00 00
|
||
00 02 cmp DWORD PTR [eax+144], 2
|
||
0002e 7c 0c jl SHORT $LN6@StartThrea
|
||
00030 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00033 83 b8 90 00 00
|
||
00 10 cmp DWORD PTR [eax+144], 16 ; 00000010H
|
||
0003a 7e 0d jle SHORT $LN5@StartThrea
|
||
$LN6@StartThrea:
|
||
|
||
; 249 : m_n_thread_count = MAXTHREAD_COUNT;
|
||
|
||
0003c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0003f c7 80 90 00 00
|
||
00 10 00 00 00 mov DWORD PTR [eax+144], 16 ; 00000010H
|
||
$LN5@StartThrea:
|
||
|
||
; 250 :
|
||
; 251 : //m_n_thread_count = 4;
|
||
; 252 : for( i = 0; i < m_n_thread_count; i++ )
|
||
|
||
00049 c7 45 f8 00 00
|
||
00 00 mov DWORD PTR _i$[ebp], 0
|
||
00050 eb 09 jmp SHORT $LN4@StartThrea
|
||
$LN2@StartThrea:
|
||
00052 8b 45 f8 mov eax, DWORD PTR _i$[ebp]
|
||
00055 83 c0 01 add eax, 1
|
||
00058 89 45 f8 mov DWORD PTR _i$[ebp], eax
|
||
$LN4@StartThrea:
|
||
0005b 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0005e 8b 4d f8 mov ecx, DWORD PTR _i$[ebp]
|
||
00061 3b 88 90 00 00
|
||
00 cmp ecx, DWORD PTR [eax+144]
|
||
00067 7d 53 jge SHORT $LN3@StartThrea
|
||
|
||
; 253 : {
|
||
; 254 : m_h_thread[i] = CreateThread( NULL, 0, CompletionRoutine, (LPVOID)this, 0, NULL );
|
||
|
||
00069 6a 00 push 0
|
||
0006b 6a 00 push 0
|
||
0006d 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00070 50 push eax
|
||
00071 68 00 00 00 00 push OFFSET ?CompletionRoutine@CIOCP@@CGKPAX@Z ; CIOCP::CompletionRoutine
|
||
00076 6a 00 push 0
|
||
00078 6a 00 push 0
|
||
0007a ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateThread@24
|
||
00080 8b 4d f8 mov ecx, DWORD PTR _i$[ebp]
|
||
00083 8b 55 fc mov edx, DWORD PTR _this$[ebp]
|
||
00086 89 84 8a 94 00
|
||
00 00 mov DWORD PTR [edx+ecx*4+148], eax
|
||
|
||
; 255 :
|
||
; 256 : if( INVALID_HANDLE_VALUE == m_h_thread[i] )
|
||
|
||
0008d 8b 45 f8 mov eax, DWORD PTR _i$[ebp]
|
||
00090 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00093 83 bc 81 94 00
|
||
00 00 ff cmp DWORD PTR [ecx+eax*4+148], -1
|
||
0009b 75 1d jne SHORT $LN7@StartThrea
|
||
|
||
; 257 : {
|
||
; 258 : CloseThreadHandle( i );
|
||
|
||
0009d 8b 45 f8 mov eax, DWORD PTR _i$[ebp]
|
||
000a0 50 push eax
|
||
000a1 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000a4 e8 00 00 00 00 call ?CloseThreadHandle@CIOCP@@AAEXH@Z ; CIOCP::CloseThreadHandle
|
||
|
||
; 259 : CloseHandle( m_h_iocp );
|
||
|
||
000a9 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000ac 8b 48 28 mov ecx, DWORD PTR [eax+40]
|
||
000af 51 push ecx
|
||
000b0 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 260 : return FALSE;
|
||
|
||
000b6 33 c0 xor eax, eax
|
||
000b8 eb 07 jmp SHORT $LN1@StartThrea
|
||
$LN7@StartThrea:
|
||
|
||
; 261 : }
|
||
; 262 : }
|
||
|
||
000ba eb 96 jmp SHORT $LN2@StartThrea
|
||
$LN3@StartThrea:
|
||
|
||
; 263 : return TRUE;
|
||
|
||
000bc b8 01 00 00 00 mov eax, 1
|
||
$LN1@StartThrea:
|
||
|
||
; 264 : }
|
||
|
||
000c1 5f pop edi
|
||
000c2 5e pop esi
|
||
000c3 5b pop ebx
|
||
000c4 8b e5 mov esp, ebp
|
||
000c6 5d pop ebp
|
||
000c7 c3 ret 0
|
||
?StartThread@CIOCP@@AAEHXZ ENDP ; CIOCP::StartThread
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z
|
||
_TEXT SEGMENT
|
||
tv217 = -6624 ; size = 4
|
||
tv171 = -6620 ; size = 4
|
||
tv138 = -6620 ; size = 4
|
||
tv133 = -6620 ; size = 4
|
||
tv91 = -6620 ; size = 4
|
||
tv86 = -6620 ; size = 4
|
||
tv64 = -6620 ; size = 4
|
||
$T2 = -6616 ; size = 4
|
||
$T3 = -6612 ; size = 4
|
||
$T4 = -6608 ; size = 4
|
||
$T5 = -6604 ; size = 4
|
||
_NXlog$6 = -6088 ; size = 6056
|
||
_ioS$7 = -32 ; size = 4
|
||
_lRet$8 = -28 ; size = 4
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_io$ = 8 ; size = 4
|
||
_lp_key$ = 12 ; size = 4
|
||
_nFlags$ = 16 ; size = 4
|
||
?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z PROC ; CIOCP::HandleData, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 359 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 d0 19 00 00 mov eax, 6608 ; 000019d0H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 360 : switch( nFlags )
|
||
|
||
00039 8b 45 10 mov eax, DWORD PTR _nFlags$[ebp]
|
||
0003c 89 85 24 e6 ff
|
||
ff mov DWORD PTR tv64[ebp], eax
|
||
00042 8b 8d 24 e6 ff
|
||
ff mov ecx, DWORD PTR tv64[ebp]
|
||
00048 83 e9 01 sub ecx, 1
|
||
0004b 89 8d 24 e6 ff
|
||
ff mov DWORD PTR tv64[ebp], ecx
|
||
00051 83 bd 24 e6 ff
|
||
ff 03 cmp DWORD PTR tv64[ebp], 3
|
||
00058 0f 87 83 02 00
|
||
00 ja $LN17@HandleData
|
||
0005e 8b 95 24 e6 ff
|
||
ff mov edx, DWORD PTR tv64[ebp]
|
||
00064 ff 24 95 00 00
|
||
00 00 jmp DWORD PTR $LN28@HandleData[edx*4]
|
||
$LN4@HandleData:
|
||
|
||
; 361 : {
|
||
; 362 : case IOCP_COMPLETE_ACCEPT:
|
||
; 363 : {
|
||
; 364 : InitIoContext( lp_io );
|
||
|
||
0006b 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0006e 50 push eax
|
||
0006f 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
00072 e8 00 00 00 00 call ?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z ; CIOCP::InitIoContext
|
||
|
||
; 365 : lp_io->operation = IOCP_READ;
|
||
|
||
00077 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0007a c7 40 18 02 00
|
||
00 00 mov DWORD PTR [eax+24], 2
|
||
|
||
; 366 : }
|
||
; 367 : break;
|
||
|
||
00081 e9 5f 02 00 00 jmp $LN2@HandleData
|
||
$LN5@HandleData:
|
||
|
||
; 368 : case IOCP_COMPLETE_ACCEPT_READ:
|
||
; 369 : {
|
||
; 370 : /*
|
||
; 371 : lp_io->operation = IOCP_WRITE;
|
||
; 372 :
|
||
; 373 : GetAddrAndPort( lp_io->wsaBuf.buf, szAddress, uPort );
|
||
; 374 :
|
||
; 375 : //MSG(lp_io->wsaBuf.len);
|
||
; 376 : memset( &lp_io->ol, 0, sizeof(lp_io->ol) );
|
||
; 377 : */
|
||
; 378 : }
|
||
; 379 : break;
|
||
|
||
00086 e9 5a 02 00 00 jmp $LN2@HandleData
|
||
$LN6@HandleData:
|
||
|
||
; 380 : case IOCP_COMPLETE_READ:
|
||
; 381 : {
|
||
; 382 : //cout<<"read a data!*******************************"<<endl;
|
||
; 383 :
|
||
; 384 : lp_io->lRecvLen += lp_io->wsaBuf.len;
|
||
|
||
0008b 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0008e 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
00091 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
00094 03 4a 24 add ecx, DWORD PTR [edx+36]
|
||
00097 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0009a 89 48 2c mov DWORD PTR [eax+44], ecx
|
||
|
||
; 385 :
|
||
; 386 : long lRet=0;
|
||
|
||
0009d c7 45 e4 00 00
|
||
00 00 mov DWORD PTR _lRet$8[ebp], 0
|
||
|
||
; 387 : if ( lp_io->m_lLocalPort == DEFAULT_LISTENPORT2 )
|
||
|
||
000a4 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
000a7 81 78 74 d2 1e
|
||
00 00 cmp DWORD PTR [eax+116], 7890 ; 00001ed2H
|
||
000ae 75 11 jne SHORT $LN7@HandleData
|
||
|
||
; 388 : lRet = GetFrame_Cmpp(lp_io);
|
||
|
||
000b0 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
000b3 50 push eax
|
||
000b4 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
000b7 e8 00 00 00 00 call ?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z ; CIOCP::GetFrame_Cmpp
|
||
000bc 89 45 e4 mov DWORD PTR _lRet$8[ebp], eax
|
||
000bf eb 0f jmp SHORT $LN8@HandleData
|
||
$LN7@HandleData:
|
||
|
||
; 389 : else
|
||
; 390 : lRet = GetFrame(lp_io);
|
||
|
||
000c1 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
000c4 50 push eax
|
||
000c5 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
000c8 e8 00 00 00 00 call ?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z ; CIOCP::GetFrame
|
||
000cd 89 45 e4 mov DWORD PTR _lRet$8[ebp], eax
|
||
$LN8@HandleData:
|
||
|
||
; 391 : if ( lRet < 0 )
|
||
|
||
000d0 83 7d e4 00 cmp DWORD PTR _lRet$8[ebp], 0
|
||
000d4 7d 52 jge SHORT $LN9@HandleData
|
||
|
||
; 392 : {
|
||
; 393 : //<2F><><EFBFBD><EFBFBD>֡ʧ<D6A1><CAA7>
|
||
; 394 : m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
000d6 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000d9 83 c0 08 add eax, 8
|
||
000dc 89 85 24 e6 ff
|
||
ff mov DWORD PTR tv86[ebp], eax
|
||
000e2 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
000e5 51 push ecx
|
||
000e6 8b 8d 24 e6 ff
|
||
ff mov ecx, DWORD PTR tv86[ebp]
|
||
000ec e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 395 : m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
000f1 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000f4 83 c0 08 add eax, 8
|
||
000f7 89 85 24 e6 ff
|
||
ff mov DWORD PTR tv91[ebp], eax
|
||
000fd 8b 4d 0c mov ecx, DWORD PTR _lp_key$[ebp]
|
||
00100 51 push ecx
|
||
00101 8b 8d 24 e6 ff
|
||
ff mov ecx, DWORD PTR tv91[ebp]
|
||
00107 e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 396 : closesocket( lp_io->socket );
|
||
|
||
0010c 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0010f 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
00112 51 push ecx
|
||
00113 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 397 : lp_io->operation = IOCP_END; //<2F>رպ<D8B1><D5BA><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
00119 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0011c c7 40 18 04 00
|
||
00 00 mov DWORD PTR [eax+24], 4
|
||
|
||
; 398 : }
|
||
|
||
00123 e9 9c 00 00 00 jmp $LN10@HandleData
|
||
$LN9@HandleData:
|
||
|
||
; 399 : else
|
||
; 400 : {
|
||
; 401 : //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><F3A3ACB2><EFBFBD>û<EFBFBD>к<EFBFBD><D0BA>ʵİ<CAB5><C4B0><EFBFBD>
|
||
; 402 : if ( lp_io->lRecvLen>=BUFFER_SIZE )
|
||
|
||
00128 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0012b 81 78 2c d0 dd
|
||
06 00 cmp DWORD PTR [eax+44], 450000 ; 0006ddd0H
|
||
00132 7c 4f jl SHORT $LN11@HandleData
|
||
|
||
; 403 : {
|
||
; 404 : m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
00134 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00137 83 c0 08 add eax, 8
|
||
0013a 89 85 24 e6 ff
|
||
ff mov DWORD PTR tv133[ebp], eax
|
||
00140 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00143 51 push ecx
|
||
00144 8b 8d 24 e6 ff
|
||
ff mov ecx, DWORD PTR tv133[ebp]
|
||
0014a e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 405 : m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
0014f 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00152 83 c0 08 add eax, 8
|
||
00155 89 85 24 e6 ff
|
||
ff mov DWORD PTR tv138[ebp], eax
|
||
0015b 8b 4d 0c mov ecx, DWORD PTR _lp_key$[ebp]
|
||
0015e 51 push ecx
|
||
0015f 8b 8d 24 e6 ff
|
||
ff mov ecx, DWORD PTR tv138[ebp]
|
||
00165 e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 406 : closesocket( lp_io->socket );
|
||
|
||
0016a 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0016d 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
00170 51 push ecx
|
||
00171 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 407 : lp_io->operation = IOCP_END; //<2F>رպ<D8B1><D5BA><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
00177 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0017a c7 40 18 04 00
|
||
00 00 mov DWORD PTR [eax+24], 4
|
||
|
||
; 408 : }
|
||
|
||
00181 eb 41 jmp SHORT $LN10@HandleData
|
||
$LN11@HandleData:
|
||
|
||
; 409 : else
|
||
; 410 : {
|
||
; 411 : //<2F><><EFBFBD>¿<EFBFBD>ʼͶ<CABC><CDB6>io
|
||
; 412 : lp_io->operation = IOCP_READ;
|
||
|
||
00183 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00186 c7 40 18 02 00
|
||
00 00 mov DWORD PTR [eax+24], 2
|
||
|
||
; 413 : memset( &lp_io->ol, 0, sizeof(lp_io->ol) );
|
||
|
||
0018d 6a 14 push 20 ; 00000014H
|
||
0018f 6a 00 push 0
|
||
00191 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00194 50 push eax
|
||
00195 e8 00 00 00 00 call _memset
|
||
0019a 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 414 :
|
||
; 415 : lp_io->wsaBuf.buf = lp_io->buf + lp_io->lRecvLen;
|
||
|
||
0019d 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
001a0 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
001a3 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
001a6 8d 84 0a e0 01
|
||
00 00 lea eax, DWORD PTR [edx+ecx+480]
|
||
001ad 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
001b0 89 41 28 mov DWORD PTR [ecx+40], eax
|
||
|
||
; 416 : lp_io->wsaBuf.len = BUFFER_SIZE-lp_io->lRecvLen;
|
||
|
||
001b3 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
001b6 b9 d0 dd 06 00 mov ecx, 450000 ; 0006ddd0H
|
||
001bb 2b 48 2c sub ecx, DWORD PTR [eax+44]
|
||
001be 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
001c1 89 4a 24 mov DWORD PTR [edx+36], ecx
|
||
$LN10@HandleData:
|
||
|
||
; 417 : }
|
||
; 418 : }
|
||
; 419 : }
|
||
; 420 : break;
|
||
|
||
001c4 e9 1c 01 00 00 jmp $LN2@HandleData
|
||
$LN13@HandleData:
|
||
|
||
; 421 : case IOCP_COMPLETE_WRITE:
|
||
; 422 : {
|
||
; 423 : try
|
||
|
||
001c9 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 424 : {
|
||
; 425 : IOCP_IO_SEND_PTR ioS = (IOCP_IO_SEND_PTR)lp_io;
|
||
|
||
001d0 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
001d3 89 45 e0 mov DWORD PTR _ioS$7[ebp], eax
|
||
|
||
; 426 :
|
||
; 427 : if ( ioS->wsaBuf.len >0 )
|
||
|
||
001d6 8b 45 e0 mov eax, DWORD PTR _ioS$7[ebp]
|
||
001d9 83 78 24 00 cmp DWORD PTR [eax+36], 0
|
||
001dd 76 30 jbe SHORT $LN15@HandleData
|
||
|
||
; 428 : {
|
||
; 429 : if ( ioS->wsaBuf.buf )
|
||
|
||
001df 8b 45 e0 mov eax, DWORD PTR _ioS$7[ebp]
|
||
001e2 83 78 28 00 cmp DWORD PTR [eax+40], 0
|
||
001e6 74 1d je SHORT $LN16@HandleData
|
||
|
||
; 430 : delete ioS->wsaBuf.buf;
|
||
|
||
001e8 8b 45 e0 mov eax, DWORD PTR _ioS$7[ebp]
|
||
001eb 8b 48 28 mov ecx, DWORD PTR [eax+40]
|
||
001ee 89 8d 34 e6 ff
|
||
ff mov DWORD PTR $T5[ebp], ecx
|
||
001f4 6a 01 push 1
|
||
001f6 8b 95 34 e6 ff
|
||
ff mov edx, DWORD PTR $T5[ebp]
|
||
001fc 52 push edx
|
||
001fd e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete
|
||
00202 83 c4 08 add esp, 8
|
||
$LN16@HandleData:
|
||
|
||
; 431 : ioS->wsaBuf.buf = NULL;
|
||
|
||
00205 8b 45 e0 mov eax, DWORD PTR _ioS$7[ebp]
|
||
00208 c7 40 28 00 00
|
||
00 00 mov DWORD PTR [eax+40], 0
|
||
$LN15@HandleData:
|
||
|
||
; 432 : }
|
||
; 433 : delete ioS;
|
||
|
||
0020f 8b 45 e0 mov eax, DWORD PTR _ioS$7[ebp]
|
||
00212 89 85 30 e6 ff
|
||
ff mov DWORD PTR $T4[ebp], eax
|
||
00218 6a 2c push 44 ; 0000002cH
|
||
0021a 8b 8d 30 e6 ff
|
||
ff mov ecx, DWORD PTR $T4[ebp]
|
||
00220 51 push ecx
|
||
00221 e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete
|
||
00226 83 c4 08 add esp, 8
|
||
|
||
; 434 : }
|
||
|
||
00229 e9 96 00 00 00 jmp $LN19@HandleData
|
||
__catch$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$0:
|
||
|
||
; 435 : catch (...)
|
||
; 436 : {
|
||
; 437 : LOG_APPERROR(_T("T"));
|
||
|
||
0022e 8d 8d 38 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00234 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
00239 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
0023d 51 push ecx
|
||
0023e 8b cc mov ecx, esp
|
||
00240 89 a5 2c e6 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
00246 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
0024b 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> > >
|
||
00250 89 85 24 e6 ff
|
||
ff mov DWORD PTR tv171[ebp], eax
|
||
00256 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
0025a 51 push ecx
|
||
0025b 8b cc mov ecx, esp
|
||
0025d 89 a5 28 e6 ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
00263 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
00268 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> > >
|
||
0026d 89 85 20 e6 ff
|
||
ff mov DWORD PTR tv217[ebp], eax
|
||
00273 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
00277 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
0027b 8d 8d 38 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00281 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
00286 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z@4JA
|
||
0028b 83 c0 4e add eax, 78 ; 0000004eH
|
||
0028e 50 push eax
|
||
0028f 68 00 00 00 00 push OFFSET ??_C@_0L@BDAOGBHN@HandleData@
|
||
00294 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
00299 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
0029e 8d 8d 38 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
002a4 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
002a9 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
002ad 8d 8d 38 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
002b3 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 438 : break;
|
||
|
||
002b8 b8 00 00 00 00 mov eax, $LN25@HandleData
|
||
002bd c3 ret 0
|
||
|
||
; 439 : }
|
||
|
||
002be b8 00 00 00 00 mov eax, $LN27@HandleData
|
||
002c3 c3 ret 0
|
||
$LN19@HandleData:
|
||
002c4 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
002cb eb 07 jmp SHORT __tryend$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$1
|
||
$LN27@HandleData:
|
||
002cd c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
__tryend$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$1:
|
||
002d4 eb 09 jmp SHORT $LN24@HandleData
|
||
$LN25@HandleData:
|
||
002d6 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
|
||
; 438 : break;
|
||
|
||
002dd eb 06 jmp SHORT $LN2@HandleData
|
||
$LN24@HandleData:
|
||
|
||
; 440 : }
|
||
; 441 : break;
|
||
|
||
002df eb 04 jmp SHORT $LN2@HandleData
|
||
$LN17@HandleData:
|
||
|
||
; 442 : default:
|
||
; 443 : {
|
||
; 444 : //cout<<"handleData do nothing!*********************"<<endl;
|
||
; 445 :
|
||
; 446 : return FALSE;
|
||
|
||
002e1 33 c0 xor eax, eax
|
||
002e3 eb 05 jmp SHORT $LN1@HandleData
|
||
$LN2@HandleData:
|
||
|
||
; 447 : }
|
||
; 448 : }
|
||
; 449 :
|
||
; 450 : return TRUE;
|
||
|
||
002e5 b8 01 00 00 00 mov eax, 1
|
||
$LN1@HandleData:
|
||
|
||
; 451 : }
|
||
|
||
002ea 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
002ed 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
002f4 59 pop ecx
|
||
002f5 5f pop edi
|
||
002f6 5e pop esi
|
||
002f7 5b pop ebx
|
||
002f8 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
002fb 33 cd xor ecx, ebp
|
||
002fd e8 00 00 00 00 call @__security_check_cookie@4
|
||
00302 8b e5 mov esp, ebp
|
||
00304 5d pop ebp
|
||
00305 c2 0c 00 ret 12 ; 0000000cH
|
||
$LN28@HandleData:
|
||
00308 00 00 00 00 DD $LN6@HandleData
|
||
0030c 00 00 00 00 DD $LN5@HandleData
|
||
00310 00 00 00 00 DD $LN13@HandleData
|
||
00314 00 00 00 00 DD $LN4@HandleData
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$2:
|
||
00000 8d 8d 38 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00006 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$3:
|
||
0000b 8b 8d 2c e6 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00011 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$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z$4:
|
||
00016 8b 8d 28 e6 ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
0001c 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> > >
|
||
00021 cc int 3
|
||
00022 cc int 3
|
||
00023 cc int 3
|
||
00024 cc int 3
|
||
00025 cc int 3
|
||
__ehhandler$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@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 8a 1c e6 ff
|
||
ff mov ecx, DWORD PTR [edx-6628]
|
||
00035 33 c8 xor ecx, eax
|
||
00037 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0003c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0003f 33 c8 xor ecx, eax
|
||
00041 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00046 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z
|
||
0004b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?HandleData@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@H@Z ENDP ; CIOCP::HandleData
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?DataAction@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@@Z
|
||
_TEXT SEGMENT
|
||
tv147 = -84 ; size = 4
|
||
tv142 = -84 ; size = 4
|
||
tv89 = -84 ; size = 4
|
||
tv84 = -84 ; size = 4
|
||
tv65 = -84 ; size = 4
|
||
_dwFlags$ = -16 ; size = 4
|
||
_nRet$ = -12 ; size = 4
|
||
_dwBytes$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
_lp_io$ = 8 ; size = 4
|
||
_lp_key$ = 12 ; size = 4
|
||
?DataAction@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@@Z PROC ; CIOCP::DataAction, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 460 : {
|
||
|
||
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
|
||
|
||
; 461 : DWORD dwBytes;
|
||
; 462 : int nRet;
|
||
; 463 : DWORD dwFlags;
|
||
; 464 :
|
||
; 465 : switch( lp_io->operation )
|
||
|
||
0000c 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0000f 8b 48 18 mov ecx, DWORD PTR [eax+24]
|
||
00012 89 4d ac mov DWORD PTR tv65[ebp], ecx
|
||
00015 8b 55 ac mov edx, DWORD PTR tv65[ebp]
|
||
00018 83 ea 02 sub edx, 2
|
||
0001b 89 55 ac mov DWORD PTR tv65[ebp], edx
|
||
0001e 83 7d ac 03 cmp DWORD PTR tv65[ebp], 3
|
||
00022 0f 87 0a 01 00
|
||
00 ja $LN10@DataAction
|
||
00028 8b 45 ac mov eax, DWORD PTR tv65[ebp]
|
||
0002b ff 24 85 00 00
|
||
00 00 jmp DWORD PTR $LN12@DataAction[eax*4]
|
||
$LN4@DataAction:
|
||
|
||
; 466 : {
|
||
; 467 : case IOCP_WRITE:
|
||
; 468 : {
|
||
; 469 : nRet = WSASend(
|
||
|
||
00032 6a 00 push 0
|
||
00034 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00037 50 push eax
|
||
00038 6a 00 push 0
|
||
0003a 8d 4d f8 lea ecx, DWORD PTR _dwBytes$[ebp]
|
||
0003d 51 push ecx
|
||
0003e 6a 01 push 1
|
||
00040 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
00043 83 c2 24 add edx, 36 ; 00000024H
|
||
00046 52 push edx
|
||
00047 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0004a 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
0004d 51 push ecx
|
||
0004e ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSASend@28
|
||
00054 89 45 f4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 470 : lp_io->socket,
|
||
; 471 : &lp_io->wsaBuf,
|
||
; 472 : 1,
|
||
; 473 : &dwBytes,
|
||
; 474 : 0,
|
||
; 475 : &lp_io->ol,NULL);
|
||
; 476 :
|
||
; 477 : if( ( nRet == SOCKET_ERROR ) && ( WSAGetLastError() != WSA_IO_PENDING ) )
|
||
|
||
00057 83 7d f4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
0005b 75 4b jne SHORT $LN5@DataAction
|
||
0005d ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAGetLastError@0
|
||
00063 3d e5 03 00 00 cmp eax, 997 ; 000003e5H
|
||
00068 74 3e je SHORT $LN5@DataAction
|
||
|
||
; 478 : {
|
||
; 479 : m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
0006a 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0006d 83 c0 08 add eax, 8
|
||
00070 89 45 ac mov DWORD PTR tv84[ebp], eax
|
||
00073 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00076 51 push ecx
|
||
00077 8b 4d ac mov ecx, DWORD PTR tv84[ebp]
|
||
0007a e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 480 : m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
0007f 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00082 83 c0 08 add eax, 8
|
||
00085 89 45 ac mov DWORD PTR tv89[ebp], eax
|
||
00088 8b 4d 0c mov ecx, DWORD PTR _lp_key$[ebp]
|
||
0008b 51 push ecx
|
||
0008c 8b 4d ac mov ecx, DWORD PTR tv89[ebp]
|
||
0008f e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 481 : closesocket( lp_io->socket );
|
||
|
||
00094 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00097 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
0009a 51 push ecx
|
||
0009b ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 482 : return FALSE;
|
||
|
||
000a1 33 c0 xor eax, eax
|
||
000a3 e9 93 00 00 00 jmp $LN1@DataAction
|
||
$LN5@DataAction:
|
||
|
||
; 483 : }
|
||
; 484 : }
|
||
; 485 : break;
|
||
|
||
000a8 e9 89 00 00 00 jmp $LN2@DataAction
|
||
$LN6@DataAction:
|
||
|
||
; 486 : case IOCP_WRITE2:
|
||
; 487 : {
|
||
; 488 : /*
|
||
; 489 : IOCP_IO_SEND_PTR ioS = (IOCP_IO_SEND_PTR)lp_io;
|
||
; 490 :
|
||
; 491 : ioS->operation = IOCP_WRITE;
|
||
; 492 : nRet = WSASend(
|
||
; 493 : lp_key->socket,
|
||
; 494 : &ioS->wsaBuf[ioS->lSendNowIndex-1],
|
||
; 495 : 1,
|
||
; 496 : &dwBytes,
|
||
; 497 : 0,
|
||
; 498 : &ioS->ol,NULL);
|
||
; 499 : /*
|
||
; 500 : if( ( nRet == SOCKET_ERROR ) && ( WSAGetLastError() != WSA_IO_PENDING ) )
|
||
; 501 : {
|
||
; 502 : //cout<<"WSASend fail!----------------------------------------"<<WSAGetLastError()<<endl;
|
||
; 503 :
|
||
; 504 : closesocket( lp_io->socket );
|
||
; 505 :
|
||
; 506 : //m_io_group.RemoveAt( lp_io );
|
||
; 507 : m_KeyList.RemoveAt_IO( lp_io );
|
||
; 508 : //m_key_group.RemoveAt( lp_key );
|
||
; 509 : m_KeyList.RemoveAt_Key( lp_key );
|
||
; 510 :
|
||
; 511 : return FALSE;
|
||
; 512 : }
|
||
; 513 : */
|
||
; 514 : }
|
||
; 515 : break;
|
||
|
||
000ad e9 84 00 00 00 jmp $LN2@DataAction
|
||
$LN7@DataAction:
|
||
|
||
; 516 : case IOCP_READ:
|
||
; 517 : {
|
||
; 518 : //cout<<"post a read data!-----------------------------------------"<<endl;
|
||
; 519 :
|
||
; 520 : dwFlags = 0;
|
||
|
||
000b2 c7 45 f0 00 00
|
||
00 00 mov DWORD PTR _dwFlags$[ebp], 0
|
||
|
||
; 521 :
|
||
; 522 : nRet = WSARecv(
|
||
|
||
000b9 6a 00 push 0
|
||
000bb 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
000be 50 push eax
|
||
000bf 8d 4d f0 lea ecx, DWORD PTR _dwFlags$[ebp]
|
||
000c2 51 push ecx
|
||
000c3 8d 55 f8 lea edx, DWORD PTR _dwBytes$[ebp]
|
||
000c6 52 push edx
|
||
000c7 6a 01 push 1
|
||
000c9 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
000cc 83 c0 24 add eax, 36 ; 00000024H
|
||
000cf 50 push eax
|
||
000d0 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
000d3 8b 51 14 mov edx, DWORD PTR [ecx+20]
|
||
000d6 52 push edx
|
||
000d7 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSARecv@28
|
||
000dd 89 45 f4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 523 : lp_io->socket,
|
||
; 524 : &lp_io->wsaBuf,
|
||
; 525 : 1,
|
||
; 526 : &dwBytes,
|
||
; 527 : &dwFlags,
|
||
; 528 : &lp_io->ol,NULL);
|
||
; 529 :
|
||
; 530 : if( ( nRet == SOCKET_ERROR ) && ( WSAGetLastError() != WSA_IO_PENDING ) )
|
||
|
||
000e0 83 7d f4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
000e4 75 48 jne SHORT $LN8@DataAction
|
||
000e6 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAGetLastError@0
|
||
000ec 3d e5 03 00 00 cmp eax, 997 ; 000003e5H
|
||
000f1 74 3b je SHORT $LN8@DataAction
|
||
|
||
; 531 : {
|
||
; 532 : m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
000f3 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000f6 83 c0 08 add eax, 8
|
||
000f9 89 45 ac mov DWORD PTR tv142[ebp], eax
|
||
000fc 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
000ff 51 push ecx
|
||
00100 8b 4d ac mov ecx, DWORD PTR tv142[ebp]
|
||
00103 e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 533 : m_KeyList.RemoveAt_Key( lp_key );
|
||
|
||
00108 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0010b 83 c0 08 add eax, 8
|
||
0010e 89 45 ac mov DWORD PTR tv147[ebp], eax
|
||
00111 8b 4d 0c mov ecx, DWORD PTR _lp_key$[ebp]
|
||
00114 51 push ecx
|
||
00115 8b 4d ac mov ecx, DWORD PTR tv147[ebp]
|
||
00118 e8 00 00 00 00 call ?RemoveAt_Key@CKeyList@@QAEXPAUIOCP_KEY@@@Z ; CKeyList::RemoveAt_Key
|
||
|
||
; 534 : closesocket( lp_io->socket );
|
||
|
||
0011d 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00120 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
00123 51 push ecx
|
||
00124 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 535 :
|
||
; 536 : return FALSE;
|
||
|
||
0012a 33 c0 xor eax, eax
|
||
0012c eb 0d jmp SHORT $LN1@DataAction
|
||
$LN8@DataAction:
|
||
|
||
; 537 : }
|
||
; 538 : }
|
||
; 539 : break;
|
||
|
||
0012e eb 06 jmp SHORT $LN2@DataAction
|
||
$LN9@DataAction:
|
||
|
||
; 540 : case IOCP_END:
|
||
; 541 : break;
|
||
|
||
00130 eb 04 jmp SHORT $LN2@DataAction
|
||
$LN10@DataAction:
|
||
|
||
; 542 : default:
|
||
; 543 : {
|
||
; 544 : //cout<<"DataAction do nothing!------------------------------------------"<<endl;
|
||
; 545 :
|
||
; 546 : return FALSE;
|
||
|
||
00132 33 c0 xor eax, eax
|
||
00134 eb 05 jmp SHORT $LN1@DataAction
|
||
$LN2@DataAction:
|
||
|
||
; 547 : }
|
||
; 548 : }
|
||
; 549 :
|
||
; 550 : return TRUE;
|
||
|
||
00136 b8 01 00 00 00 mov eax, 1
|
||
$LN1@DataAction:
|
||
|
||
; 551 : }
|
||
|
||
0013b 5f pop edi
|
||
0013c 5e pop esi
|
||
0013d 5b pop ebx
|
||
0013e 8b e5 mov esp, ebp
|
||
00140 5d pop ebp
|
||
00141 c2 08 00 ret 8
|
||
$LN12@DataAction:
|
||
00144 00 00 00 00 DD $LN7@DataAction
|
||
00148 00 00 00 00 DD $LN4@DataAction
|
||
0014c 00 00 00 00 DD $LN9@DataAction
|
||
00150 00 00 00 00 DD $LN6@DataAction
|
||
?DataAction@CIOCP@@AAEHPAUIOCP_IO@@PAUIOCP_KEY@@@Z ENDP ; CIOCP::DataAction
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z
|
||
_TEXT SEGMENT
|
||
tv161 = -6608 ; size = 4
|
||
tv86 = -6604 ; size = 4
|
||
$T2 = -6600 ; size = 4
|
||
$T3 = -6596 ; size = 4
|
||
_NXlog$4 = -6080 ; size = 6056
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_io$ = 8 ; size = 4
|
||
?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z PROC ; CIOCP::InitIoContext, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 91 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 c0 19 00 00 mov eax, 6592 ; 000019c0H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 92 : if ( !lp_io )
|
||
|
||
00039 83 7d 08 00 cmp DWORD PTR _lp_io$[ebp], 0
|
||
0003d 75 05 jne SHORT $LN2@InitIoCont
|
||
|
||
; 93 : return ;
|
||
|
||
0003f e9 0c 01 00 00 jmp $LN1@InitIoCont
|
||
$LN2@InitIoCont:
|
||
|
||
; 94 : try
|
||
|
||
00044 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 95 : {
|
||
; 96 : if ( lp_io< &m_KeyList.m_IO[0] || lp_io>&m_KeyList.m_IO[MAX_LOGINUSER] )
|
||
|
||
0004b b8 b0 df 06 00 mov eax, 450480 ; 0006dfb0H
|
||
00050 6b c8 00 imul ecx, eax, 0
|
||
00053 8b 55 e8 mov edx, DWORD PTR _this$[ebp]
|
||
00056 03 4a 14 add ecx, DWORD PTR [edx+20]
|
||
00059 39 4d 08 cmp DWORD PTR _lp_io$[ebp], ecx
|
||
0005c 72 16 jb SHORT $LN5@InitIoCont
|
||
0005e b8 b0 df 06 00 mov eax, 450480 ; 0006dfb0H
|
||
00063 69 c8 e8 03 00
|
||
00 imul ecx, eax, 1000
|
||
00069 8b 55 e8 mov edx, DWORD PTR _this$[ebp]
|
||
0006c 03 4a 14 add ecx, DWORD PTR [edx+20]
|
||
0006f 39 4d 08 cmp DWORD PTR _lp_io$[ebp], ecx
|
||
00072 76 05 jbe SHORT $LN4@InitIoCont
|
||
$LN5@InitIoCont:
|
||
|
||
; 97 : return ;
|
||
|
||
00074 e9 d7 00 00 00 jmp $LN1@InitIoCont
|
||
$LN4@InitIoCont:
|
||
|
||
; 98 :
|
||
; 99 : memset( &lp_io->ol, 0, sizeof( WSAOVERLAPPED ) );
|
||
|
||
00079 6a 14 push 20 ; 00000014H
|
||
0007b 6a 00 push 0
|
||
0007d 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00080 50 push eax
|
||
00081 e8 00 00 00 00 call _memset
|
||
00086 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 100 : //memset( &lp_io->buf, 0, BUFFER_SIZE );
|
||
; 101 : lp_io->wsaBuf.buf = lp_io->buf;
|
||
|
||
00089 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0008c 05 e0 01 00 00 add eax, 480 ; 000001e0H
|
||
00091 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00094 89 41 28 mov DWORD PTR [ecx+40], eax
|
||
|
||
; 102 : lp_io->wsaBuf.len = BUFFER_SIZE;
|
||
|
||
00097 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0009a c7 40 24 d0 dd
|
||
06 00 mov DWORD PTR [eax+36], 450000 ; 0006ddd0H
|
||
|
||
; 103 : lp_io->lRecvLen = 0;
|
||
|
||
000a1 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
000a4 c7 40 2c 00 00
|
||
00 00 mov DWORD PTR [eax+44], 0
|
||
|
||
; 104 : }
|
||
|
||
000ab e9 90 00 00 00 jmp $LN7@InitIoCont
|
||
__catch$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$0:
|
||
|
||
; 105 : catch (...)
|
||
; 106 : {
|
||
; 107 : LOG_APPERROR(_T("T"));
|
||
|
||
000b0 8d 8d 40 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
000b6 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
000bb c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
000bf 51 push ecx
|
||
000c0 8b cc mov ecx, esp
|
||
000c2 89 a5 3c e6 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
000c8 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
000cd 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> > >
|
||
000d2 89 85 34 e6 ff
|
||
ff mov DWORD PTR tv86[ebp], eax
|
||
000d8 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
000dc 51 push ecx
|
||
000dd 8b cc mov ecx, esp
|
||
000df 89 a5 38 e6 ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
000e5 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
000ea 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> > >
|
||
000ef 89 85 30 e6 ff
|
||
ff mov DWORD PTR tv161[ebp], eax
|
||
000f5 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
000f9 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
000fd 8d 8d 40 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00103 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
00108 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z@4JA
|
||
0010d 83 c0 10 add eax, 16 ; 00000010H
|
||
00110 50 push eax
|
||
00111 68 00 00 00 00 push OFFSET ??_C@_0O@NGMCBOJM@InitIoContext@
|
||
00116 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
0011b 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
00120 8d 8d 40 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00126 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
0012b c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
0012f 8d 8d 40 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00135 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 108 : }
|
||
|
||
0013a b8 00 00 00 00 mov eax, $LN13@InitIoCont
|
||
0013f c3 ret 0
|
||
$LN7@InitIoCont:
|
||
00140 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
00147 eb 07 jmp SHORT $LN1@InitIoCont
|
||
$LN13@InitIoCont:
|
||
00149 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
$LN1@InitIoCont:
|
||
|
||
; 109 : }
|
||
|
||
00150 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
00153 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
0015a 59 pop ecx
|
||
0015b 5f pop edi
|
||
0015c 5e pop esi
|
||
0015d 5b pop ebx
|
||
0015e 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
00161 33 cd xor ecx, ebp
|
||
00163 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00168 8b e5 mov esp, ebp
|
||
0016a 5d pop ebp
|
||
0016b c2 04 00 ret 4
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$2:
|
||
00000 8d 8d 40 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00006 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$3:
|
||
0000b 8b 8d 3c e6 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00011 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$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z$4:
|
||
00016 8b 8d 38 e6 ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
0001c 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> > >
|
||
00021 cc int 3
|
||
00022 cc int 3
|
||
00023 cc int 3
|
||
00024 cc int 3
|
||
00025 cc int 3
|
||
__ehhandler$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@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 8a 2c e6 ff
|
||
ff mov ecx, DWORD PTR [edx-6612]
|
||
00035 33 c8 xor ecx, eax
|
||
00037 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0003c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0003f 33 c8 xor ecx, eax
|
||
00041 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00046 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z
|
||
0004b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z ENDP ; CIOCP::InitIoContext
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?MainLoop@CIOCP@@SGKPAX@Z
|
||
_TEXT SEGMENT
|
||
tv92 = -6628 ; size = 4
|
||
tv75 = -6628 ; size = 4
|
||
tv134 = -6624 ; size = 4
|
||
tv94 = -6624 ; size = 4
|
||
tv73 = -6624 ; size = 4
|
||
$T2 = -6620 ; size = 4
|
||
$T3 = -6616 ; size = 4
|
||
$T4 = -6612 ; size = 4
|
||
$T5 = -6608 ; size = 4
|
||
_NXlog$6 = -6092 ; size = 6056
|
||
_str$7 = -36 ; size = 4
|
||
_dwRet$8 = -32 ; size = 4
|
||
_piocp$9 = -28 ; size = 4
|
||
_AutoCoInit$10 = -21 ; size = 1
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_param$ = 8 ; size = 4
|
||
?MainLoop@CIOCP@@SGKPAX@Z PROC ; CIOCP::MainLoop, COMDAT
|
||
|
||
; 874 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?MainLoop@CIOCP@@SGKPAX@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 d4 19 00 00 mov eax, 6612 ; 000019d4H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
|
||
; 875 : try
|
||
|
||
00036 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 876 : {
|
||
; 877 : AutoCoInitializeEx AutoCoInit; //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Com<6F><6D><EFBFBD><EFBFBD>
|
||
|
||
0003d 8d 4d eb lea ecx, DWORD PTR _AutoCoInit$10[ebp]
|
||
00040 e8 00 00 00 00 call ??0AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
00045 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
|
||
; 878 :
|
||
; 879 : CIOCP * piocp = (CIOCP *)lp_param;
|
||
|
||
00049 8b 45 08 mov eax, DWORD PTR _lp_param$[ebp]
|
||
0004c 89 45 e4 mov DWORD PTR _piocp$9[ebp], eax
|
||
$LN2@MainLoop:
|
||
|
||
; 880 : DWORD dwRet;
|
||
; 881 : while( !piocp->m_bQuit )
|
||
|
||
0004f 8b 45 e4 mov eax, DWORD PTR _piocp$9[ebp]
|
||
00052 83 b8 e4 00 00
|
||
00 00 cmp DWORD PTR [eax+228], 0
|
||
00059 0f 85 bb 00 00
|
||
00 jne $LN3@MainLoop
|
||
|
||
; 882 : {
|
||
; 883 : dwRet = WaitForSingleObject( piocp->m_h_accept_event, 300 );
|
||
|
||
0005f 68 2c 01 00 00 push 300 ; 0000012cH
|
||
00064 8b 45 e4 mov eax, DWORD PTR _piocp$9[ebp]
|
||
00067 8b 88 d4 00 00
|
||
00 mov ecx, DWORD PTR [eax+212]
|
||
0006d 51 push ecx
|
||
0006e ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WaitForSingleObject@8
|
||
00074 89 45 e0 mov DWORD PTR _dwRet$8[ebp], eax
|
||
|
||
; 884 : switch( dwRet )
|
||
|
||
00077 8b 45 e0 mov eax, DWORD PTR _dwRet$8[ebp]
|
||
0007a 89 85 20 e6 ff
|
||
ff mov DWORD PTR tv73[ebp], eax
|
||
00080 83 bd 20 e6 ff
|
||
ff 00 cmp DWORD PTR tv73[ebp], 0
|
||
00087 0f 84 80 00 00
|
||
00 je $LN9@MainLoop
|
||
0008d 83 bd 20 e6 ff
|
||
ff ff cmp DWORD PTR tv73[ebp], -1
|
||
00094 74 02 je SHORT $LN7@MainLoop
|
||
00096 eb 7d jmp SHORT $LN4@MainLoop
|
||
$LN7@MainLoop:
|
||
|
||
; 885 : {
|
||
; 886 : case WAIT_FAILED:
|
||
; 887 : {
|
||
; 888 :
|
||
; 889 : CString str;
|
||
|
||
00098 8d 4d dc lea ecx, DWORD PTR _str$7[ebp]
|
||
0009b 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> > >
|
||
000a0 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
|
||
; 890 : str.Format( _T("Accept_Event Error:%d") , GetLastError());
|
||
|
||
000a4 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetLastError@0
|
||
000aa 50 push eax
|
||
000ab 68 00 00 00 00 push OFFSET ??_C@_1CM@OPBDNDPO@?$AAA?$AAc?$AAc?$AAe?$AAp?$AAt?$AA_?$AAE?$AAv?$AAe?$AAn?$AAt?$AA?5?$AAE?$AAr@
|
||
000b0 8d 45 dc lea eax, DWORD PTR _str$7[ebp]
|
||
000b3 50 push eax
|
||
000b4 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
|
||
000b9 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 891 : piocp->m_pDlg->AddLog(str);
|
||
|
||
000bc 8b 45 e4 mov eax, DWORD PTR _piocp$9[ebp]
|
||
000bf 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
000c2 89 8d 20 e6 ff
|
||
ff mov DWORD PTR tv94[ebp], ecx
|
||
000c8 8d 4d dc lea ecx, DWORD PTR _str$7[ebp]
|
||
000cb e8 00 00 00 00 call ??B?$CSimpleStringT@_W$0A@@ATL@@QBEPB_WXZ ; ATL::CSimpleStringT<wchar_t,0>::operator wchar_t const *
|
||
000d0 89 85 1c e6 ff
|
||
ff mov DWORD PTR tv92[ebp], eax
|
||
000d6 6a 00 push 0
|
||
000d8 8b 95 1c e6 ff
|
||
ff mov edx, DWORD PTR tv92[ebp]
|
||
000de 52 push edx
|
||
000df 8b 8d 20 e6 ff
|
||
ff mov ecx, DWORD PTR tv94[ebp]
|
||
000e5 e8 00 00 00 00 call ?AddLog@CSmsCenterDlg@@QAEXPB_WJ@Z ; CSmsCenterDlg::AddLog
|
||
|
||
; 892 : piocp->m_pDlg->ON_TD_StopAll2(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
|
||
|
||
000ea 8b 45 e4 mov eax, DWORD PTR _piocp$9[ebp]
|
||
000ed 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
000f0 e8 00 00 00 00 call ?ON_TD_StopAll2@CSmsCenterDlg@@QAEXXZ ; CSmsCenterDlg::ON_TD_StopAll2
|
||
|
||
; 893 :
|
||
; 894 : piocp->PostAcceptEx();
|
||
|
||
000f5 8b 4d e4 mov ecx, DWORD PTR _piocp$9[ebp]
|
||
000f8 e8 00 00 00 00 call ?PostAcceptEx@CIOCP@@QAEHXZ ; CIOCP::PostAcceptEx
|
||
|
||
; 895 :
|
||
; 896 : //AfxMessageBox( _T("accept_event Error!") );
|
||
; 897 : //PostQueuedCompletionStatus( m_h_iocp, 0, 0, NULL );
|
||
; 898 : //return FALSE;
|
||
; 899 :
|
||
; 900 : }
|
||
|
||
000fd c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
00101 8d 4d dc lea ecx, DWORD PTR _str$7[ebp]
|
||
00104 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> > >
|
||
|
||
; 901 : break;
|
||
|
||
00109 eb 0a jmp SHORT $LN4@MainLoop
|
||
|
||
; 902 : case WAIT_TIMEOUT:
|
||
; 903 : {
|
||
; 904 : //CheckForInvalidConnection();
|
||
; 905 : }
|
||
; 906 : break;
|
||
|
||
0010b eb 08 jmp SHORT $LN4@MainLoop
|
||
$LN9@MainLoop:
|
||
|
||
; 907 : case WAIT_OBJECT_0: //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6>ù<EFBFBD><C3B9>˵<EFBFBD><CBB5><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ٴη<D9B4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 908 : {
|
||
; 909 : piocp->PostAcceptEx();
|
||
|
||
0010d 8b 4d e4 mov ecx, DWORD PTR _piocp$9[ebp]
|
||
00110 e8 00 00 00 00 call ?PostAcceptEx@CIOCP@@QAEHXZ ; CIOCP::PostAcceptEx
|
||
$LN4@MainLoop:
|
||
|
||
; 910 : }
|
||
; 911 : break;
|
||
; 912 : }
|
||
; 913 : /*
|
||
; 914 : #ifndef UNICODE
|
||
; 915 : dwRet = WaitForSingleObject( piocp->m_h_accept_event2, 300 );
|
||
; 916 : switch( dwRet )
|
||
; 917 : {
|
||
; 918 : case WAIT_FAILED:
|
||
; 919 : {
|
||
; 920 : AfxMessageBox( _T("accept_event2 Error!") );
|
||
; 921 : //PostQueuedCompletionStatus( m_h_iocp, 0, 0, NULL );
|
||
; 922 : //return FALSE;
|
||
; 923 : }
|
||
; 924 : break;
|
||
; 925 : case WAIT_TIMEOUT:
|
||
; 926 : {
|
||
; 927 : //CheckForInvalidConnection();
|
||
; 928 : }
|
||
; 929 : break;
|
||
; 930 : case WAIT_OBJECT_0: //<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6>ù<EFBFBD><C3B9>˵<EFBFBD><CBB5><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ٴη<D9B4><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 931 : {
|
||
; 932 : piocp->PostAcceptEx2();
|
||
; 933 : }
|
||
; 934 : break;
|
||
; 935 : }
|
||
; 936 : #endif
|
||
; 937 : */
|
||
; 938 : /*
|
||
; 939 : nCount ++;
|
||
; 940 : if ( nCount>5 ) //ÿ5<C3BF><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>γ<EFBFBD>ʱ
|
||
; 941 : {
|
||
; 942 : nCount=0;
|
||
; 943 : //ÿ<><C3BF>event<6E>ȴ<EFBFBD>1<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>socket
|
||
; 944 : piocp->CheckForInvalidConnection();
|
||
; 945 : }
|
||
; 946 : */
|
||
; 947 : }
|
||
|
||
00115 e9 35 ff ff ff jmp $LN2@MainLoop
|
||
$LN3@MainLoop:
|
||
|
||
; 948 : return TRUE;
|
||
|
||
0011a c7 85 30 e6 ff
|
||
ff 01 00 00 00 mov DWORD PTR $T5[ebp], 1
|
||
00124 c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0
|
||
00128 8d 4d eb lea ecx, DWORD PTR _AutoCoInit$10[ebp]
|
||
0012b e8 00 00 00 00 call ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
00130 8b 85 30 e6 ff
|
||
ff mov eax, DWORD PTR $T5[ebp]
|
||
00136 e9 b6 00 00 00 jmp $LN1@MainLoop
|
||
__catch$?MainLoop@CIOCP@@SGKPAX@Z$0:
|
||
|
||
; 949 : }
|
||
; 950 : catch(...)
|
||
; 951 : {
|
||
; 952 : LOG_APPERROR(_T("T"));
|
||
|
||
0013b 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00141 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
00146 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
0014a 51 push ecx
|
||
0014b 8b cc mov ecx, esp
|
||
0014d 89 a5 2c e6 ff
|
||
ff mov DWORD PTR $T4[ebp], esp
|
||
00153 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
00158 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> > >
|
||
0015d 89 85 20 e6 ff
|
||
ff mov DWORD PTR tv134[ebp], eax
|
||
00163 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5
|
||
00167 51 push ecx
|
||
00168 8b cc mov ecx, esp
|
||
0016a 89 a5 28 e6 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
00170 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
00175 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> > >
|
||
0017a 89 85 1c e6 ff
|
||
ff mov DWORD PTR tv75[ebp], eax
|
||
00180 c6 45 fc 06 mov BYTE PTR __$EHRec$[ebp+12], 6
|
||
00184 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
00188 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
0018e e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
00193 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??MainLoop@CIOCP@@SGKPAX@Z@4JA
|
||
00198 83 c0 4e add eax, 78 ; 0000004eH
|
||
0019b 50 push eax
|
||
0019c 68 00 00 00 00 push OFFSET ??_C@_08JEEIGPMO@MainLoop@
|
||
001a1 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
001a6 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
001ab 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
001b1 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
001b6 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
001ba 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
001c0 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 953 : return false;
|
||
|
||
001c5 c7 85 24 e6 ff
|
||
ff 00 00 00 00 mov DWORD PTR $T2[ebp], 0
|
||
001cf b8 00 00 00 00 mov eax, $LN19@MainLoop
|
||
001d4 c3 ret 0
|
||
|
||
; 954 : }
|
||
|
||
001d5 b8 00 00 00 00 mov eax, __tryend$?MainLoop@CIOCP@@SGKPAX@Z$1
|
||
001da c3 ret 0
|
||
__tryend$?MainLoop@CIOCP@@SGKPAX@Z$1:
|
||
001db c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
001e2 eb 0d jmp SHORT $LN1@MainLoop
|
||
$LN19@MainLoop:
|
||
001e4 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
|
||
; 953 : return false;
|
||
|
||
001eb 8b 85 24 e6 ff
|
||
ff mov eax, DWORD PTR $T2[ebp]
|
||
$LN1@MainLoop:
|
||
|
||
; 955 : }
|
||
|
||
001f1 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
001f4 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
001fb 59 pop ecx
|
||
001fc 5f pop edi
|
||
001fd 5e pop esi
|
||
001fe 5b pop ebx
|
||
001ff 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
00202 33 cd xor ecx, ebp
|
||
00204 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00209 8b e5 mov esp, ebp
|
||
0020b 5d pop ebp
|
||
0020c c2 04 00 ret 4
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$2:
|
||
00000 8d 4d eb lea ecx, DWORD PTR _AutoCoInit$10[ebp]
|
||
00003 e9 00 00 00 00 jmp ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$3:
|
||
00008 8d 4d dc lea ecx, DWORD PTR _str$7[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> > >
|
||
__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$4:
|
||
00010 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00016 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?MainLoop@CIOCP@@SGKPAX@Z$5:
|
||
0001b 8b 8d 2c e6 ff
|
||
ff mov ecx, DWORD PTR $T4[ebp]
|
||
00021 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$?MainLoop@CIOCP@@SGKPAX@Z$6:
|
||
00026 8b 8d 28 e6 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
0002c 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> > >
|
||
00031 cc int 3
|
||
00032 cc int 3
|
||
00033 cc int 3
|
||
00034 cc int 3
|
||
00035 cc int 3
|
||
__ehhandler$?MainLoop@CIOCP@@SGKPAX@Z:
|
||
00036 90 npad 1
|
||
00037 90 npad 1
|
||
00038 8b 54 24 08 mov edx, DWORD PTR [esp+8]
|
||
0003c 8d 42 0c lea eax, DWORD PTR [edx+12]
|
||
0003f 8b 8a 18 e6 ff
|
||
ff mov ecx, DWORD PTR [edx-6632]
|
||
00045 33 c8 xor ecx, eax
|
||
00047 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0004c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0004f 33 c8 xor ecx, eax
|
||
00051 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00056 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?MainLoop@CIOCP@@SGKPAX@Z
|
||
0005b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?MainLoop@CIOCP@@SGKPAX@Z ENDP ; CIOCP::MainLoop
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?Init@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
tv73 = -484 ; size = 4
|
||
_data$ = -416 ; size = 400
|
||
_b2$ = -16 ; size = 4
|
||
_b1$ = -12 ; size = 4
|
||
_this$ = -8 ; size = 4
|
||
__$ArrayPad$ = -4 ; size = 4
|
||
?Init@CIOCP@@QAEHXZ PROC ; CIOCP::Init, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 741 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 81 ec e4 01 00
|
||
00 sub esp, 484 ; 000001e4H
|
||
00009 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
0000e 33 c5 xor eax, ebp
|
||
00010 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00013 53 push ebx
|
||
00014 56 push esi
|
||
00015 57 push edi
|
||
00016 89 4d f8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 742 : BOOL b1;
|
||
; 743 : BOOL b2;
|
||
; 744 : WSAData data;
|
||
; 745 : if( WSAStartup( MAKEWORD(2,2),&data) != 0 )
|
||
|
||
00019 8d 85 60 fe ff
|
||
ff lea eax, DWORD PTR _data$[ebp]
|
||
0001f 50 push eax
|
||
00020 68 02 02 00 00 push 514 ; 00000202H
|
||
00025 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAStartup@8
|
||
0002b 85 c0 test eax, eax
|
||
0002d 74 07 je SHORT $LN2@Init
|
||
|
||
; 746 : {
|
||
; 747 : //cout<<"WSAStartup fail!"<<WSAGetLastError() << endl;
|
||
; 748 : return FALSE;
|
||
|
||
0002f 33 c0 xor eax, eax
|
||
00031 e9 07 02 00 00 jmp $LN1@Init
|
||
$LN2@Init:
|
||
|
||
; 749 : }
|
||
; 750 :
|
||
; 751 : m_KeyList.Init(m_pDlg);
|
||
|
||
00036 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00039 83 c0 08 add eax, 8
|
||
0003c 89 85 1c fe ff
|
||
ff mov DWORD PTR tv73[ebp], eax
|
||
00042 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00045 8b 51 04 mov edx, DWORD PTR [ecx+4]
|
||
00048 52 push edx
|
||
00049 8b 8d 1c fe ff
|
||
ff mov ecx, DWORD PTR tv73[ebp]
|
||
0004f e8 00 00 00 00 call ?Init@CKeyList@@QAEXPAVCSmsCenterDlg@@@Z ; CKeyList::Init
|
||
|
||
; 752 : m_h_iocp = CreateIoCompletionPort( INVALID_HANDLE_VALUE, NULL, NULL, 0 );
|
||
|
||
00054 6a 00 push 0
|
||
00056 6a 00 push 0
|
||
00058 6a 00 push 0
|
||
0005a 6a ff push -1
|
||
0005c ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateIoCompletionPort@16
|
||
00062 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00065 89 41 28 mov DWORD PTR [ecx+40], eax
|
||
|
||
; 753 :
|
||
; 754 : if( NULL == m_h_iocp )
|
||
|
||
00068 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
0006b 83 78 28 00 cmp DWORD PTR [eax+40], 0
|
||
0006f 75 07 jne SHORT $LN3@Init
|
||
|
||
; 755 : {
|
||
; 756 : //cout << "CreateIoCompletionPort() failed: " << GetLastError() << endl;
|
||
; 757 : return FALSE;
|
||
|
||
00071 33 c0 xor eax, eax
|
||
00073 e9 c5 01 00 00 jmp $LN1@Init
|
||
$LN3@Init:
|
||
|
||
; 758 : }
|
||
; 759 :
|
||
; 760 : if( !StartThread() )
|
||
|
||
00078 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
0007b e8 00 00 00 00 call ?StartThread@CIOCP@@AAEHXZ ; CIOCP::StartThread
|
||
00080 85 c0 test eax, eax
|
||
00082 75 0f jne SHORT $LN4@Init
|
||
|
||
; 761 : {
|
||
; 762 : //cout<<"start thread fail!"<<endl;
|
||
; 763 :
|
||
; 764 : Close();
|
||
|
||
00084 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00087 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 765 : //PostQueuedCompletionStatus( m_h_iocp, 0, NULL, NULL );
|
||
; 766 : //CloseHandle( m_h_iocp );
|
||
; 767 : return FALSE;
|
||
|
||
0008c 33 c0 xor eax, eax
|
||
0008e e9 aa 01 00 00 jmp $LN1@Init
|
||
$LN4@Init:
|
||
|
||
; 768 : }
|
||
; 769 :
|
||
; 770 : if( !InitSocket() )
|
||
|
||
00093 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00096 e8 00 00 00 00 call ?InitSocket@CIOCP@@AAEHXZ ; CIOCP::InitSocket
|
||
0009b 85 c0 test eax, eax
|
||
0009d 75 0f jne SHORT $LN5@Init
|
||
|
||
; 771 : {
|
||
; 772 : Close();
|
||
|
||
0009f 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
000a2 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 773 : //PostQueuedCompletionStatus( m_h_iocp, 0, NULL, NULL );
|
||
; 774 : //CloseHandle( m_h_iocp );
|
||
; 775 : return FALSE;
|
||
|
||
000a7 33 c0 xor eax, eax
|
||
000a9 e9 8f 01 00 00 jmp $LN1@Init
|
||
$LN5@Init:
|
||
|
||
; 776 : }
|
||
; 777 :
|
||
; 778 : if ( !BindAndListenSocket() ) //<2F>˿<F3B6A8B6>1
|
||
|
||
000ae 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
000b1 e8 00 00 00 00 call ?BindAndListenSocket@CIOCP@@QAEHXZ ; CIOCP::BindAndListenSocket
|
||
000b6 85 c0 test eax, eax
|
||
000b8 75 0f jne SHORT $LN6@Init
|
||
|
||
; 779 : {
|
||
; 780 : Close();
|
||
|
||
000ba 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
000bd e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 781 : return FALSE;
|
||
|
||
000c2 33 c0 xor eax, eax
|
||
000c4 e9 74 01 00 00 jmp $LN1@Init
|
||
$LN6@Init:
|
||
|
||
; 782 : }
|
||
; 783 :
|
||
; 784 : m_bInitSocket2=false; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7890<39>˿<EFBFBD>
|
||
|
||
000c9 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
000cc c7 40 38 00 00
|
||
00 00 mov DWORD PTR [eax+56], 0
|
||
|
||
; 785 : /*
|
||
; 786 : #ifndef UNICODE
|
||
; 787 : if ( !BindAndListenSocket2()) //<2F>˿<F3B6A8B6>2
|
||
; 788 : {
|
||
; 789 : Close();
|
||
; 790 : return FALSE;
|
||
; 791 : }
|
||
; 792 : #endif
|
||
; 793 : */
|
||
; 794 : if( !m_bInitSocket && !m_bInitSocket2 ) //<2F><><EFBFBD><EFBFBD><EFBFBD>˿ڳ<CBBF>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
||
|
||
000d3 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
000d6 83 78 30 00 cmp DWORD PTR [eax+48], 0
|
||
000da 75 18 jne SHORT $LN7@Init
|
||
000dc 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
000df 83 78 38 00 cmp DWORD PTR [eax+56], 0
|
||
000e3 75 0f jne SHORT $LN7@Init
|
||
|
||
; 795 : {
|
||
; 796 : Close();
|
||
|
||
000e5 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
000e8 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 797 : //PostQueuedCompletionStatus( m_h_iocp, 0, NULL, NULL );
|
||
; 798 : //CloseHandle( m_h_iocp );
|
||
; 799 : //CloseMainSocket();
|
||
; 800 :
|
||
; 801 : return FALSE;
|
||
|
||
000ed 33 c0 xor eax, eax
|
||
000ef e9 49 01 00 00 jmp $LN1@Init
|
||
$LN7@Init:
|
||
|
||
; 802 : }
|
||
; 803 : if ( !GetFunPointer() )
|
||
|
||
000f4 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
000f7 e8 00 00 00 00 call ?GetFunPointer@CIOCP@@QAEHXZ ; CIOCP::GetFunPointer
|
||
000fc 85 c0 test eax, eax
|
||
000fe 75 0f jne SHORT $LN8@Init
|
||
|
||
; 804 : {
|
||
; 805 : Close();
|
||
|
||
00100 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00103 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 806 : //PostQueuedCompletionStatus( m_h_iocp, 0, NULL, NULL );
|
||
; 807 : //CloseHandle( m_h_iocp );
|
||
; 808 : //CloseMainSocket();
|
||
; 809 :
|
||
; 810 : return FALSE;
|
||
|
||
00108 33 c0 xor eax, eax
|
||
0010a e9 2e 01 00 00 jmp $LN1@Init
|
||
$LN8@Init:
|
||
|
||
; 811 : }
|
||
; 812 :
|
||
; 813 : b1 = true;
|
||
|
||
0010f c7 45 f4 01 00
|
||
00 00 mov DWORD PTR _b1$[ebp], 1
|
||
|
||
; 814 : if (m_bInitSocket)
|
||
|
||
00116 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00119 83 78 30 00 cmp DWORD PTR [eax+48], 0
|
||
0011d 74 0b je SHORT $LN9@Init
|
||
|
||
; 815 : b1=PostAcceptEx();
|
||
|
||
0011f 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00122 e8 00 00 00 00 call ?PostAcceptEx@CIOCP@@QAEHXZ ; CIOCP::PostAcceptEx
|
||
00127 89 45 f4 mov DWORD PTR _b1$[ebp], eax
|
||
$LN9@Init:
|
||
|
||
; 816 : b2 = true;
|
||
|
||
0012a c7 45 f0 01 00
|
||
00 00 mov DWORD PTR _b2$[ebp], 1
|
||
|
||
; 817 : if (m_bInitSocket2)
|
||
|
||
00131 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00134 83 78 38 00 cmp DWORD PTR [eax+56], 0
|
||
00138 74 0b je SHORT $LN10@Init
|
||
|
||
; 818 : b2=PostAcceptEx2();
|
||
|
||
0013a 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
0013d e8 00 00 00 00 call ?PostAcceptEx2@CIOCP@@QAEHXZ ; CIOCP::PostAcceptEx2
|
||
00142 89 45 f0 mov DWORD PTR _b2$[ebp], eax
|
||
$LN10@Init:
|
||
|
||
; 819 :
|
||
; 820 : if ( !b1 && !b2 )
|
||
|
||
00145 83 7d f4 00 cmp DWORD PTR _b1$[ebp], 0
|
||
00149 75 15 jne SHORT $LN11@Init
|
||
0014b 83 7d f0 00 cmp DWORD PTR _b2$[ebp], 0
|
||
0014f 75 0f jne SHORT $LN11@Init
|
||
|
||
; 821 : {
|
||
; 822 : Close();
|
||
|
||
00151 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00154 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 823 : //PostQueuedCompletionStatus( m_h_iocp, 0, NULL, NULL );
|
||
; 824 : //CloseHandle( m_h_iocp );
|
||
; 825 : //CloseMainSocket();
|
||
; 826 :
|
||
; 827 : return FALSE;
|
||
|
||
00159 33 c0 xor eax, eax
|
||
0015b e9 dd 00 00 00 jmp $LN1@Init
|
||
$LN11@Init:
|
||
|
||
; 828 : }
|
||
; 829 :
|
||
; 830 : b1 = true;
|
||
|
||
00160 c7 45 f4 01 00
|
||
00 00 mov DWORD PTR _b1$[ebp], 1
|
||
|
||
; 831 : if (m_bInitSocket)
|
||
|
||
00167 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
0016a 83 78 30 00 cmp DWORD PTR [eax+48], 0
|
||
0016e 74 0b je SHORT $LN12@Init
|
||
|
||
; 832 : b1=RegAcceptEvent();
|
||
|
||
00170 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00173 e8 00 00 00 00 call ?RegAcceptEvent@CIOCP@@QAEHXZ ; CIOCP::RegAcceptEvent
|
||
00178 89 45 f4 mov DWORD PTR _b1$[ebp], eax
|
||
$LN12@Init:
|
||
|
||
; 833 : b2 = true;
|
||
|
||
0017b c7 45 f0 01 00
|
||
00 00 mov DWORD PTR _b2$[ebp], 1
|
||
|
||
; 834 : if (m_bInitSocket2)
|
||
|
||
00182 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00185 83 78 38 00 cmp DWORD PTR [eax+56], 0
|
||
00189 74 0b je SHORT $LN13@Init
|
||
|
||
; 835 : b1=RegAcceptEvent2();
|
||
|
||
0018b 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
0018e e8 00 00 00 00 call ?RegAcceptEvent2@CIOCP@@QAEHXZ ; CIOCP::RegAcceptEvent2
|
||
00193 89 45 f4 mov DWORD PTR _b1$[ebp], eax
|
||
$LN13@Init:
|
||
|
||
; 836 : if ( !b1 && !b2 )
|
||
|
||
00196 83 7d f4 00 cmp DWORD PTR _b1$[ebp], 0
|
||
0019a 75 15 jne SHORT $LN14@Init
|
||
0019c 83 7d f0 00 cmp DWORD PTR _b2$[ebp], 0
|
||
001a0 75 0f jne SHORT $LN14@Init
|
||
|
||
; 837 : {
|
||
; 838 : Close();
|
||
|
||
001a2 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
001a5 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 839 : //PostQueuedCompletionStatus( m_h_iocp, 0, NULL, NULL );
|
||
; 840 : //CloseHandle( m_h_iocp );
|
||
; 841 : //CloseMainSocket();
|
||
; 842 :
|
||
; 843 : return FALSE;
|
||
|
||
001aa 33 c0 xor eax, eax
|
||
001ac e9 8c 00 00 00 jmp $LN1@Init
|
||
$LN14@Init:
|
||
|
||
; 844 : }
|
||
; 845 : m_bInit = true;
|
||
|
||
001b1 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
001b4 c7 40 3c 01 00
|
||
00 00 mov DWORD PTR [eax+60], 1
|
||
|
||
; 846 :
|
||
; 847 : m_bQuit = false; //<2F><><EFBFBD>̲߳<DFB3><CCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>
|
||
|
||
001bb 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
001be c7 80 e4 00 00
|
||
00 00 00 00 00 mov DWORD PTR [eax+228], 0
|
||
|
||
; 848 : m_h_MainLoop = CreateThread( NULL, 0, MainLoop, (LPVOID)this, 0, NULL );
|
||
|
||
001c8 6a 00 push 0
|
||
001ca 6a 00 push 0
|
||
001cc 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
001cf 50 push eax
|
||
001d0 68 00 00 00 00 push OFFSET ?MainLoop@CIOCP@@SGKPAX@Z ; CIOCP::MainLoop
|
||
001d5 6a 00 push 0
|
||
001d7 6a 00 push 0
|
||
001d9 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateThread@24
|
||
001df 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
001e2 89 81 dc 00 00
|
||
00 mov DWORD PTR [ecx+220], eax
|
||
|
||
; 849 : if ( m_h_MainLoop == INVALID_HANDLE_VALUE ) //<2F><><EFBFBD>̴߳<DFB3><CCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
||
|
||
001e8 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
001eb 83 b8 dc 00 00
|
||
00 ff cmp DWORD PTR [eax+220], -1
|
||
001f2 75 0c jne SHORT $LN15@Init
|
||
|
||
; 850 : {
|
||
; 851 : this->Close();
|
||
|
||
001f4 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
001f7 e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 852 : return false;
|
||
|
||
001fc 33 c0 xor eax, eax
|
||
001fe eb 3d jmp SHORT $LN1@Init
|
||
$LN15@Init:
|
||
|
||
; 853 : }
|
||
; 854 :
|
||
; 855 : //if( m_bInitSocket2 )
|
||
; 856 : //{
|
||
; 857 : m_h_MainLoop2 = CreateThread( NULL, 0, MainLoop2, (LPVOID)this, 0, NULL );
|
||
|
||
00200 6a 00 push 0
|
||
00202 6a 00 push 0
|
||
00204 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00207 50 push eax
|
||
00208 68 00 00 00 00 push OFFSET ?MainLoop2@CIOCP@@SGKPAX@Z ; CIOCP::MainLoop2
|
||
0020d 6a 00 push 0
|
||
0020f 6a 00 push 0
|
||
00211 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateThread@24
|
||
00217 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
0021a 89 81 e0 00 00
|
||
00 mov DWORD PTR [ecx+224], eax
|
||
|
||
; 858 : if ( m_h_MainLoop2 == INVALID_HANDLE_VALUE ) //<2F><><EFBFBD>̴߳<DFB3><CCB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
||
|
||
00220 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00223 83 b8 e0 00 00
|
||
00 ff cmp DWORD PTR [eax+224], -1
|
||
0022a 75 0c jne SHORT $LN16@Init
|
||
|
||
; 859 : {
|
||
; 860 : this->Close();
|
||
|
||
0022c 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
0022f e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 861 : return false;
|
||
|
||
00234 33 c0 xor eax, eax
|
||
00236 eb 05 jmp SHORT $LN1@Init
|
||
$LN16@Init:
|
||
|
||
; 862 : }
|
||
; 863 : //}
|
||
; 864 :
|
||
; 865 : return TRUE;
|
||
|
||
00238 b8 01 00 00 00 mov eax, 1
|
||
$LN1@Init:
|
||
|
||
; 866 : }
|
||
|
||
0023d 5f pop edi
|
||
0023e 5e pop esi
|
||
0023f 5b pop ebx
|
||
00240 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
00243 33 cd xor ecx, ebp
|
||
00245 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0024a 8b e5 mov esp, ebp
|
||
0024c 5d pop ebp
|
||
0024d c3 ret 0
|
||
?Init@CIOCP@@QAEHXZ ENDP ; CIOCP::Init
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?CloseMainSocket@CIOCP@@QAEXXZ
|
||
_TEXT SEGMENT
|
||
_this$ = -4 ; size = 4
|
||
?CloseMainSocket@CIOCP@@QAEXXZ PROC ; CIOCP::CloseMainSocket, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1179 : {
|
||
|
||
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
|
||
|
||
; 1180 : CloseOneSocket(m_listen_socket);
|
||
|
||
0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0000f 83 c0 2c add eax, 44 ; 0000002cH
|
||
00012 50 push eax
|
||
00013 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00016 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 1181 : CloseOneSocket(m_listen_socket2);
|
||
|
||
0001b 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0001e 83 c0 34 add eax, 52 ; 00000034H
|
||
00021 50 push eax
|
||
00022 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00025 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 1182 : }
|
||
|
||
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
|
||
?CloseMainSocket@CIOCP@@QAEXXZ ENDP ; CIOCP::CloseMainSocket
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?BindAndListenSocket@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
_er$1 = -32 ; size = 4
|
||
_nRet$ = -28 ; size = 4
|
||
_addr$ = -24 ; size = 16
|
||
_this$ = -8 ; size = 4
|
||
__$ArrayPad$ = -4 ; size = 4
|
||
?BindAndListenSocket@CIOCP@@QAEHXZ PROC ; CIOCP::BindAndListenSocket, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 195 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 83 ec 60 sub esp, 96 ; 00000060H
|
||
00006 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
0000b 33 c5 xor eax, ebp
|
||
0000d 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00010 53 push ebx
|
||
00011 56 push esi
|
||
00012 57 push edi
|
||
00013 89 4d f8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 196 : SOCKADDR_IN addr;
|
||
; 197 :
|
||
; 198 : memset( &addr, 0, sizeof(SOCKADDR_IN) );
|
||
|
||
00016 6a 10 push 16 ; 00000010H
|
||
00018 6a 00 push 0
|
||
0001a 8d 45 e8 lea eax, DWORD PTR _addr$[ebp]
|
||
0001d 50 push eax
|
||
0001e e8 00 00 00 00 call _memset
|
||
00023 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 199 :
|
||
; 200 : addr.sin_family = AF_INET;
|
||
|
||
00026 b8 02 00 00 00 mov eax, 2
|
||
0002b 66 89 45 e8 mov WORD PTR _addr$[ebp], ax
|
||
|
||
; 201 : //addr.sin_addr.s_addr = inet_addr( ADDR );
|
||
; 202 : //addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||
; 203 : addr.sin_addr.s_addr = m_pDlg->m_Setup.addr;
|
||
|
||
0002f 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00032 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
00035 8b 91 08 12 00
|
||
00 mov edx, DWORD PTR [ecx+4616]
|
||
0003b 89 55 ec mov DWORD PTR _addr$[ebp+4], edx
|
||
|
||
; 204 : #ifdef UNICODE
|
||
; 205 : addr.sin_port = htons( DEFAULT_SERVERPORT_UNI );
|
||
|
||
0003e 68 fe 07 00 00 push 2046 ; 000007feH
|
||
00043 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__htons@4
|
||
00049 66 89 45 ea mov WORD PTR _addr$[ebp+2], ax
|
||
|
||
; 206 : #else
|
||
; 207 : addr.sin_port = htons( DEFAULT_LISTENPORT );
|
||
; 208 : #endif
|
||
; 209 :
|
||
; 210 :
|
||
; 211 : int nRet;
|
||
; 212 :
|
||
; 213 : nRet = bind( m_listen_socket, (SOCKADDR*)&addr, sizeof( SOCKADDR ) );
|
||
|
||
0004d 6a 10 push 16 ; 00000010H
|
||
0004f 8d 45 e8 lea eax, DWORD PTR _addr$[ebp]
|
||
00052 50 push eax
|
||
00053 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00056 8b 51 2c mov edx, DWORD PTR [ecx+44]
|
||
00059 52 push edx
|
||
0005a ff 15 00 00 00
|
||
00 call DWORD PTR __imp__bind@12
|
||
00060 89 45 e4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 214 :
|
||
; 215 : if( SOCKET_ERROR == nRet || SOCKET_ERROR == nRet)
|
||
|
||
00063 83 7d e4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
00067 74 06 je SHORT $LN3@BindAndLis
|
||
00069 83 7d e4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
0006d 75 0d jne SHORT $LN2@BindAndLis
|
||
$LN3@BindAndLis:
|
||
|
||
; 216 : {
|
||
; 217 : //cout<<"bind fail!"<<endl;
|
||
; 218 : int er = WSAGetLastError();
|
||
|
||
0006f ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAGetLastError@0
|
||
00075 89 45 e0 mov DWORD PTR _er$1[ebp], eax
|
||
|
||
; 219 : return FALSE;
|
||
|
||
00078 33 c0 xor eax, eax
|
||
0007a eb 2b jmp SHORT $LN1@BindAndLis
|
||
$LN2@BindAndLis:
|
||
|
||
; 220 : }
|
||
; 221 :
|
||
; 222 : nRet = listen( m_listen_socket, 50 );
|
||
|
||
0007c 6a 32 push 50 ; 00000032H
|
||
0007e 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00081 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
00084 51 push ecx
|
||
00085 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__listen@8
|
||
0008b 89 45 e4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 223 :
|
||
; 224 : if( SOCKET_ERROR == nRet )
|
||
|
||
0008e 83 7d e4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
00092 75 04 jne SHORT $LN4@BindAndLis
|
||
|
||
; 225 : {
|
||
; 226 : //cout<<"listen fail!"<<endl;
|
||
; 227 : return FALSE;
|
||
|
||
00094 33 c0 xor eax, eax
|
||
00096 eb 0f jmp SHORT $LN1@BindAndLis
|
||
$LN4@BindAndLis:
|
||
|
||
; 228 : }
|
||
; 229 : m_bInitSocket = true;
|
||
|
||
00098 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
0009b c7 40 30 01 00
|
||
00 00 mov DWORD PTR [eax+48], 1
|
||
|
||
; 230 : return TRUE;
|
||
|
||
000a2 b8 01 00 00 00 mov eax, 1
|
||
$LN1@BindAndLis:
|
||
|
||
; 231 : }
|
||
|
||
000a7 5f pop edi
|
||
000a8 5e pop esi
|
||
000a9 5b pop ebx
|
||
000aa 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
000ad 33 cd xor ecx, ebp
|
||
000af e8 00 00 00 00 call @__security_check_cookie@4
|
||
000b4 8b e5 mov esp, ebp
|
||
000b6 5d pop ebp
|
||
000b7 c3 ret 0
|
||
?BindAndListenSocket@CIOCP@@QAEHXZ ENDP ; CIOCP::BindAndListenSocket
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?BindAndListenSocket2@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
_nRet$ = -28 ; size = 4
|
||
_addr$ = -24 ; size = 16
|
||
_this$ = -8 ; size = 4
|
||
__$ArrayPad$ = -4 ; size = 4
|
||
?BindAndListenSocket2@CIOCP@@QAEHXZ PROC ; CIOCP::BindAndListenSocket2, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1185 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 83 ec 5c sub esp, 92 ; 0000005cH
|
||
00006 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
0000b 33 c5 xor eax, ebp
|
||
0000d 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00010 53 push ebx
|
||
00011 56 push esi
|
||
00012 57 push edi
|
||
00013 89 4d f8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 1186 : SOCKADDR_IN addr;
|
||
; 1187 :
|
||
; 1188 : memset( &addr, 0, sizeof(SOCKADDR_IN) );
|
||
|
||
00016 6a 10 push 16 ; 00000010H
|
||
00018 6a 00 push 0
|
||
0001a 8d 45 e8 lea eax, DWORD PTR _addr$[ebp]
|
||
0001d 50 push eax
|
||
0001e e8 00 00 00 00 call _memset
|
||
00023 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 1189 :
|
||
; 1190 : addr.sin_family = AF_INET;
|
||
|
||
00026 b8 02 00 00 00 mov eax, 2
|
||
0002b 66 89 45 e8 mov WORD PTR _addr$[ebp], ax
|
||
|
||
; 1191 : //addr.sin_addr.s_addr = inet_addr( ADDR );
|
||
; 1192 : //addr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||
; 1193 : addr.sin_addr.s_addr = m_pDlg->m_Setup.addr;
|
||
|
||
0002f 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00032 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
00035 8b 91 08 12 00
|
||
00 mov edx, DWORD PTR [ecx+4616]
|
||
0003b 89 55 ec mov DWORD PTR _addr$[ebp+4], edx
|
||
|
||
; 1194 : addr.sin_port = htons( DEFAULT_LISTENPORT2 );
|
||
|
||
0003e 68 d2 1e 00 00 push 7890 ; 00001ed2H
|
||
00043 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__htons@4
|
||
00049 66 89 45 ea mov WORD PTR _addr$[ebp+2], ax
|
||
|
||
; 1195 :
|
||
; 1196 :
|
||
; 1197 : int nRet;
|
||
; 1198 :
|
||
; 1199 : nRet = bind( m_listen_socket2, (SOCKADDR*)&addr, sizeof( SOCKADDR ) );
|
||
|
||
0004d 6a 10 push 16 ; 00000010H
|
||
0004f 8d 45 e8 lea eax, DWORD PTR _addr$[ebp]
|
||
00052 50 push eax
|
||
00053 8b 4d f8 mov ecx, DWORD PTR _this$[ebp]
|
||
00056 8b 51 34 mov edx, DWORD PTR [ecx+52]
|
||
00059 52 push edx
|
||
0005a ff 15 00 00 00
|
||
00 call DWORD PTR __imp__bind@12
|
||
00060 89 45 e4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 1200 :
|
||
; 1201 : if( SOCKET_ERROR == nRet )
|
||
|
||
00063 83 7d e4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
00067 75 04 jne SHORT $LN2@BindAndLis
|
||
|
||
; 1202 : {
|
||
; 1203 : //cout<<"bind fail!"<<endl;
|
||
; 1204 : return FALSE;
|
||
|
||
00069 33 c0 xor eax, eax
|
||
0006b eb 2b jmp SHORT $LN1@BindAndLis
|
||
$LN2@BindAndLis:
|
||
|
||
; 1205 : }
|
||
; 1206 :
|
||
; 1207 : nRet = listen( m_listen_socket2, 20 );
|
||
|
||
0006d 6a 14 push 20 ; 00000014H
|
||
0006f 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
00072 8b 48 34 mov ecx, DWORD PTR [eax+52]
|
||
00075 51 push ecx
|
||
00076 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__listen@8
|
||
0007c 89 45 e4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 1208 :
|
||
; 1209 : if( SOCKET_ERROR == nRet )
|
||
|
||
0007f 83 7d e4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
00083 75 04 jne SHORT $LN3@BindAndLis
|
||
|
||
; 1210 : {
|
||
; 1211 : //cout<<"listen fail!"<<endl;
|
||
; 1212 : return FALSE;
|
||
|
||
00085 33 c0 xor eax, eax
|
||
00087 eb 0f jmp SHORT $LN1@BindAndLis
|
||
$LN3@BindAndLis:
|
||
|
||
; 1213 : }
|
||
; 1214 : m_bInitSocket2 = true;
|
||
|
||
00089 8b 45 f8 mov eax, DWORD PTR _this$[ebp]
|
||
0008c c7 40 38 01 00
|
||
00 00 mov DWORD PTR [eax+56], 1
|
||
|
||
; 1215 : return TRUE;
|
||
|
||
00093 b8 01 00 00 00 mov eax, 1
|
||
$LN1@BindAndLis:
|
||
|
||
; 1216 : }
|
||
|
||
00098 5f pop edi
|
||
00099 5e pop esi
|
||
0009a 5b pop ebx
|
||
0009b 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
0009e 33 cd xor ecx, ebp
|
||
000a0 e8 00 00 00 00 call @__security_check_cookie@4
|
||
000a5 8b e5 mov esp, ebp
|
||
000a7 5d pop ebp
|
||
000a8 c3 ret 0
|
||
?BindAndListenSocket2@CIOCP@@QAEHXZ ENDP ; CIOCP::BindAndListenSocket2
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?GetFunPointer@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
_nRet$ = -12 ; size = 4
|
||
_dwRet$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?GetFunPointer@CIOCP@@QAEHXZ PROC ; CIOCP::GetFunPointer, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 559 : {
|
||
|
||
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
|
||
|
||
; 560 : DWORD dwRet,nRet;
|
||
; 561 :
|
||
; 562 : nRet = WSAIoctl(
|
||
|
||
0000c 6a 00 push 0
|
||
0000e 6a 00 push 0
|
||
00010 8d 45 f8 lea eax, DWORD PTR _dwRet$[ebp]
|
||
00013 50 push eax
|
||
00014 6a 04 push 4
|
||
00016 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00019 83 c1 44 add ecx, 68 ; 00000044H
|
||
0001c 51 push ecx
|
||
0001d 6a 10 push 16 ; 00000010H
|
||
0001f 68 00 00 00 00 push OFFSET ?g_GUIDAcceptEx@@3U_GUID@@A
|
||
00024 68 06 00 00 c8 push -939524090 ; c8000006H
|
||
00029 8b 55 fc mov edx, DWORD PTR _this$[ebp]
|
||
0002c 8b 42 2c mov eax, DWORD PTR [edx+44]
|
||
0002f 50 push eax
|
||
00030 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAIoctl@36
|
||
00036 89 45 f4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 563 : m_listen_socket,
|
||
; 564 : SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||
; 565 : &g_GUIDAcceptEx,
|
||
; 566 : sizeof(g_GUIDAcceptEx),
|
||
; 567 : &lpAcceptEx,
|
||
; 568 : sizeof(lpAcceptEx),
|
||
; 569 : &dwRet,NULL,NULL);
|
||
; 570 :
|
||
; 571 : if( SOCKET_ERROR == nRet )
|
||
|
||
00039 83 7d f4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
0003d 75 16 jne SHORT $LN2@GetFunPoin
|
||
|
||
; 572 : {
|
||
; 573 : CloseOneSocket(m_listen_socket);
|
||
|
||
0003f 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00042 83 c0 2c add eax, 44 ; 0000002cH
|
||
00045 50 push eax
|
||
00046 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00049 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 574 : //cout<<"get acceptex fail!"<<WSAGetLastError()<<endl;
|
||
; 575 : return FALSE;
|
||
|
||
0004e 33 c0 xor eax, eax
|
||
00050 e9 91 00 00 00 jmp $LN1@GetFunPoin
|
||
$LN2@GetFunPoin:
|
||
|
||
; 576 : }
|
||
; 577 :
|
||
; 578 : nRet = WSAIoctl(
|
||
|
||
00055 6a 00 push 0
|
||
00057 6a 00 push 0
|
||
00059 8d 45 f8 lea eax, DWORD PTR _dwRet$[ebp]
|
||
0005c 50 push eax
|
||
0005d 6a 04 push 4
|
||
0005f 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00062 83 c1 40 add ecx, 64 ; 00000040H
|
||
00065 51 push ecx
|
||
00066 6a 10 push 16 ; 00000010H
|
||
00068 68 00 00 00 00 push OFFSET ?g_GUIDTransmitFile@@3U_GUID@@A
|
||
0006d 68 06 00 00 c8 push -939524090 ; c8000006H
|
||
00072 8b 55 fc mov edx, DWORD PTR _this$[ebp]
|
||
00075 8b 42 2c mov eax, DWORD PTR [edx+44]
|
||
00078 50 push eax
|
||
00079 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAIoctl@36
|
||
0007f 89 45 f4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 579 : m_listen_socket,
|
||
; 580 : SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||
; 581 : &g_GUIDTransmitFile,
|
||
; 582 : sizeof(g_GUIDTransmitFile),
|
||
; 583 : &lpTransmitFile,
|
||
; 584 : sizeof(lpTransmitFile),
|
||
; 585 : &dwRet,NULL,NULL);
|
||
; 586 :
|
||
; 587 : if(nRet == SOCKET_ERROR )
|
||
|
||
00082 83 7d f4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
00086 75 13 jne SHORT $LN3@GetFunPoin
|
||
|
||
; 588 : {
|
||
; 589 : CloseOneSocket(m_listen_socket);
|
||
|
||
00088 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0008b 83 c0 2c add eax, 44 ; 0000002cH
|
||
0008e 50 push eax
|
||
0008f 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00092 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 590 : //cout<<"get transmitfile fail!"<<WSAGetLastError()<<endl;
|
||
; 591 : return FALSE;
|
||
|
||
00097 33 c0 xor eax, eax
|
||
00099 eb 4b jmp SHORT $LN1@GetFunPoin
|
||
$LN3@GetFunPoin:
|
||
|
||
; 592 : }
|
||
; 593 :
|
||
; 594 : nRet = WSAIoctl(
|
||
|
||
0009b 6a 00 push 0
|
||
0009d 6a 00 push 0
|
||
0009f 8d 45 f8 lea eax, DWORD PTR _dwRet$[ebp]
|
||
000a2 50 push eax
|
||
000a3 6a 04 push 4
|
||
000a5 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000a8 83 c1 48 add ecx, 72 ; 00000048H
|
||
000ab 51 push ecx
|
||
000ac 6a 10 push 16 ; 00000010H
|
||
000ae 68 00 00 00 00 push OFFSET ?g_GUIDAcceptExaddrs@@3U_GUID@@A
|
||
000b3 68 06 00 00 c8 push -939524090 ; c8000006H
|
||
000b8 8b 55 fc mov edx, DWORD PTR _this$[ebp]
|
||
000bb 8b 42 2c mov eax, DWORD PTR [edx+44]
|
||
000be 50 push eax
|
||
000bf ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAIoctl@36
|
||
000c5 89 45 f4 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 595 : m_listen_socket,
|
||
; 596 : SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||
; 597 : &g_GUIDAcceptExaddrs,
|
||
; 598 : sizeof(g_GUIDAcceptExaddrs),
|
||
; 599 : &lpGetAcceptExSockAddrs,
|
||
; 600 : sizeof(lpGetAcceptExSockAddrs),
|
||
; 601 : &dwRet,NULL,NULL);
|
||
; 602 :
|
||
; 603 : if(nRet == SOCKET_ERROR )
|
||
|
||
000c8 83 7d f4 ff cmp DWORD PTR _nRet$[ebp], -1
|
||
000cc 75 13 jne SHORT $LN4@GetFunPoin
|
||
|
||
; 604 : {
|
||
; 605 : CloseOneSocket(m_listen_socket);
|
||
|
||
000ce 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000d1 83 c0 2c add eax, 44 ; 0000002cH
|
||
000d4 50 push eax
|
||
000d5 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000d8 e8 00 00 00 00 call ?CloseOneSocket@CIOCP@@QAEXAAI@Z ; CIOCP::CloseOneSocket
|
||
|
||
; 606 : //cout<<"get transmitfile fail!"<<WSAGetLastError()<<endl;
|
||
; 607 : return FALSE;
|
||
|
||
000dd 33 c0 xor eax, eax
|
||
000df eb 05 jmp SHORT $LN1@GetFunPoin
|
||
$LN4@GetFunPoin:
|
||
|
||
; 608 : }
|
||
; 609 :
|
||
; 610 : return TRUE;
|
||
|
||
000e1 b8 01 00 00 00 mov eax, 1
|
||
$LN1@GetFunPoin:
|
||
|
||
; 611 : }
|
||
|
||
000e6 5f pop edi
|
||
000e7 5e pop esi
|
||
000e8 5b pop ebx
|
||
000e9 8b e5 mov esp, ebp
|
||
000eb 5d pop ebp
|
||
000ec c3 ret 0
|
||
?GetFunPointer@CIOCP@@QAEHXZ ENDP ; CIOCP::GetFunPointer
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?CloseOneSocket@CIOCP@@QAEXAAI@Z
|
||
_TEXT SEGMENT
|
||
_this$ = -4 ; size = 4
|
||
_socket$ = 8 ; size = 4
|
||
?CloseOneSocket@CIOCP@@QAEXAAI@Z PROC ; CIOCP::CloseOneSocket, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1220 : {
|
||
|
||
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
|
||
|
||
; 1221 : if ( socket != INVALID_SOCKET )
|
||
|
||
0000c 8b 45 08 mov eax, DWORD PTR _socket$[ebp]
|
||
0000f 83 38 ff cmp DWORD PTR [eax], -1
|
||
00012 74 15 je SHORT $LN1@CloseOneSo
|
||
|
||
; 1222 : {
|
||
; 1223 : closesocket(socket);
|
||
|
||
00014 8b 45 08 mov eax, DWORD PTR _socket$[ebp]
|
||
00017 8b 08 mov ecx, DWORD PTR [eax]
|
||
00019 51 push ecx
|
||
0001a ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 1224 : socket = INVALID_SOCKET;
|
||
|
||
00020 8b 45 08 mov eax, DWORD PTR _socket$[ebp]
|
||
00023 c7 00 ff ff ff
|
||
ff mov DWORD PTR [eax], -1
|
||
$LN1@CloseOneSo:
|
||
|
||
; 1225 : }
|
||
; 1226 : }
|
||
|
||
00029 5f pop edi
|
||
0002a 5e pop esi
|
||
0002b 5b pop ebx
|
||
0002c 8b e5 mov esp, ebp
|
||
0002e 5d pop ebp
|
||
0002f c2 04 00 ret 4
|
||
?CloseOneSocket@CIOCP@@QAEXAAI@Z ENDP ; CIOCP::CloseOneSocket
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?PostAcceptEx@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
tv149 = -104 ; size = 4
|
||
tv140 = -104 ; size = 4
|
||
_i$1 = -36 ; size = 4
|
||
_lp_io$2 = -32 ; size = 4
|
||
_ulTemp$3 = -28 ; size = 4
|
||
_socket$4 = -24 ; size = 4
|
||
_i$5 = -20 ; size = 4
|
||
_bRet$ = -16 ; size = 4
|
||
_dwBytes$ = -12 ; size = 4
|
||
_count$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?PostAcceptEx@CIOCP@@QAEHXZ PROC ; CIOCP::PostAcceptEx, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 273 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 83 ec 68 sub esp, 104 ; 00000068H
|
||
00006 53 push ebx
|
||
00007 56 push esi
|
||
00008 57 push edi
|
||
00009 89 4d fc mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 274 : #ifdef _DEBUG
|
||
; 275 : int count = 10;
|
||
; 276 : #else
|
||
; 277 : int count = 30;
|
||
|
||
0000c c7 45 f8 1e 00
|
||
00 00 mov DWORD PTR _count$[ebp], 30 ; 0000001eH
|
||
|
||
; 278 : #endif
|
||
; 279 :
|
||
; 280 : DWORD dwBytes;
|
||
; 281 : BOOL bRet;
|
||
; 282 :
|
||
; 283 : for( int i = 0; i < count; i++ )
|
||
|
||
00013 c7 45 ec 00 00
|
||
00 00 mov DWORD PTR _i$5[ebp], 0
|
||
0001a eb 09 jmp SHORT $LN4@PostAccept
|
||
$LN2@PostAccept:
|
||
0001c 8b 45 ec mov eax, DWORD PTR _i$5[ebp]
|
||
0001f 83 c0 01 add eax, 1
|
||
00022 89 45 ec mov DWORD PTR _i$5[ebp], eax
|
||
$LN4@PostAccept:
|
||
00025 8b 45 ec mov eax, DWORD PTR _i$5[ebp]
|
||
00028 3b 45 f8 cmp eax, DWORD PTR _count$[ebp]
|
||
0002b 0f 8d 21 01 00
|
||
00 jge $LN3@PostAccept
|
||
|
||
; 284 : {
|
||
; 285 : SOCKET socket = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED );
|
||
|
||
00031 6a 01 push 1
|
||
00033 6a 00 push 0
|
||
00035 6a 00 push 0
|
||
00037 6a 06 push 6
|
||
00039 6a 01 push 1
|
||
0003b 6a 02 push 2
|
||
0003d ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSASocketW@24
|
||
00043 89 45 e8 mov DWORD PTR _socket$4[ebp], eax
|
||
|
||
; 286 :
|
||
; 287 : if( INVALID_SOCKET == socket )
|
||
|
||
00046 83 7d e8 ff cmp DWORD PTR _socket$4[ebp], -1
|
||
0004a 75 02 jne SHORT $LN5@PostAccept
|
||
|
||
; 288 : {
|
||
; 289 : //cout<<"post accept ex fail!"<<WSAGetLastError()<<endl;
|
||
; 290 : continue;
|
||
|
||
0004c eb ce jmp SHORT $LN2@PostAccept
|
||
$LN5@PostAccept:
|
||
|
||
; 291 : }
|
||
; 292 :
|
||
; 293 : //<2F><><EFBFBD><EFBFBD>Socket
|
||
; 294 : u_long ulTemp=1; //<2F><>SOCKET<45><54><EFBFBD>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>SOCKET
|
||
|
||
0004e c7 45 e4 01 00
|
||
00 00 mov DWORD PTR _ulTemp$3[ebp], 1
|
||
|
||
; 295 : //u_long ulTemp=0; //<2F><>SOCKET<45><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>SOCKET
|
||
; 296 : //ioctlsocket( socket,FIONBIO,&ulTemp );
|
||
; 297 :
|
||
; 298 : ulTemp=128*1024;
|
||
|
||
00055 c7 45 e4 00 00
|
||
02 00 mov DWORD PTR _ulTemp$3[ebp], 131072 ; 00020000H
|
||
|
||
; 299 : setsockopt( socket , SOL_SOCKET, SO_SNDBUF ,(const char *)&ulTemp ,sizeof(ulTemp)); //<2F><>緳<EFBFBD>
|
||
|
||
0005c 6a 04 push 4
|
||
0005e 8d 45 e4 lea eax, DWORD PTR _ulTemp$3[ebp]
|
||
00061 50 push eax
|
||
00062 68 01 10 00 00 push 4097 ; 00001001H
|
||
00067 68 ff ff 00 00 push 65535 ; 0000ffffH
|
||
0006c 8b 4d e8 mov ecx, DWORD PTR _socket$4[ebp]
|
||
0006f 51 push ecx
|
||
00070 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__setsockopt@20
|
||
|
||
; 300 : ulTemp=64*1024;
|
||
|
||
00076 c7 45 e4 00 00
|
||
01 00 mov DWORD PTR _ulTemp$3[ebp], 65536 ; 00010000H
|
||
|
||
; 301 : setsockopt( socket , SOL_SOCKET, SO_RCVBUF ,(const char *)&ulTemp ,sizeof(ulTemp)); //<2F><>緳<EFBFBD>
|
||
|
||
0007d 6a 04 push 4
|
||
0007f 8d 45 e4 lea eax, DWORD PTR _ulTemp$3[ebp]
|
||
00082 50 push eax
|
||
00083 68 02 10 00 00 push 4098 ; 00001002H
|
||
00088 68 ff ff 00 00 push 65535 ; 0000ffffH
|
||
0008d 8b 4d e8 mov ecx, DWORD PTR _socket$4[ebp]
|
||
00090 51 push ecx
|
||
00091 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__setsockopt@20
|
||
|
||
; 302 : /*
|
||
; 303 : setsockopt( socket, SOL_SOCKET, SO_DONTLINGER,(const char *)&ulTemp,sizeof(BOOL));
|
||
; 304 : struct linger {
|
||
; 305 : u_short l_onoff;
|
||
; 306 : u_short l_linger;
|
||
; 307 : };
|
||
; 308 : linger m_sLinger;
|
||
; 309 : m_sLinger.l_onoff=0;//(<28><>closesocket()<29><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||
; 310 : // <20><><EFBFBD><EFBFBD>m_sLinger.l_onoff=0;<3B><><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>2.)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ;
|
||
; 311 : m_sLinger.l_linger=0;//(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ5<CEAA><35>)
|
||
; 312 : int iLen=sizeof(m_sLinger);
|
||
; 313 : int i = setsockopt(socket,SOL_SOCKET,SO_LINGER,(const char*)&m_sLinger,sizeof(linger));
|
||
; 314 : */
|
||
; 315 : // int lLen=sizeof(ulTemp);
|
||
; 316 : // getsockopt( socket , SOL_SOCKET, SO_SNDBUF ,(char *)&ulTemp ,&lLen); //<2F><>緳<EFBFBD>
|
||
; 317 :
|
||
; 318 : IOCP_IO_PTR lp_io = m_KeyList.GetBlank_IO();
|
||
|
||
00097 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0009a 83 c1 08 add ecx, 8
|
||
0009d e8 00 00 00 00 call ?GetBlank_IO@CKeyList@@QAEPAUIOCP_IO@@XZ ; CKeyList::GetBlank_IO
|
||
000a2 89 45 e0 mov DWORD PTR _lp_io$2[ebp], eax
|
||
|
||
; 319 : if ( lp_io != NULL )
|
||
|
||
000a5 83 7d e0 00 cmp DWORD PTR _lp_io$2[ebp], 0
|
||
000a9 0f 84 97 00 00
|
||
00 je $LN6@PostAccept
|
||
|
||
; 320 : {
|
||
; 321 : InitIoContext( lp_io );
|
||
|
||
000af 8b 45 e0 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
000b2 50 push eax
|
||
000b3 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000b6 e8 00 00 00 00 call ?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z ; CIOCP::InitIoContext
|
||
|
||
; 322 : lp_io->socket = socket;
|
||
|
||
000bb 8b 45 e0 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
000be 8b 4d e8 mov ecx, DWORD PTR _socket$4[ebp]
|
||
000c1 89 48 14 mov DWORD PTR [eax+20], ecx
|
||
|
||
; 323 : lp_io->operation = IOCP_ACCEPT;
|
||
|
||
000c4 8b 45 e0 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
000c7 c7 40 18 01 00
|
||
00 00 mov DWORD PTR [eax+24], 1
|
||
|
||
; 324 : lp_io->state = SOCKET_STATE_NOT_CONNECT;
|
||
|
||
000ce 8b 45 e0 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
000d1 c7 40 1c 00 00
|
||
00 00 mov DWORD PTR [eax+28], 0
|
||
|
||
; 325 : /////////////////////////////////////////////////
|
||
; 326 : bRet = lpAcceptEx(
|
||
|
||
000d8 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000db 8b 48 44 mov ecx, DWORD PTR [eax+68]
|
||
000de 89 4d 98 mov DWORD PTR tv140[ebp], ecx
|
||
000e1 8b 55 e0 mov edx, DWORD PTR _lp_io$2[ebp]
|
||
000e4 52 push edx
|
||
000e5 8d 45 f4 lea eax, DWORD PTR _dwBytes$[ebp]
|
||
000e8 50 push eax
|
||
000e9 6a 20 push 32 ; 00000020H
|
||
000eb 6a 20 push 32 ; 00000020H
|
||
000ed 6a 00 push 0
|
||
000ef 8b 4d e0 mov ecx, DWORD PTR _lp_io$2[ebp]
|
||
000f2 81 c1 e0 01 00
|
||
00 add ecx, 480 ; 000001e0H
|
||
000f8 51 push ecx
|
||
000f9 8b 55 e0 mov edx, DWORD PTR _lp_io$2[ebp]
|
||
000fc 8b 42 14 mov eax, DWORD PTR [edx+20]
|
||
000ff 50 push eax
|
||
00100 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00103 8b 51 2c mov edx, DWORD PTR [ecx+44]
|
||
00106 52 push edx
|
||
00107 ff 55 98 call DWORD PTR tv140[ebp]
|
||
0010a 89 45 f0 mov DWORD PTR _bRet$[ebp], eax
|
||
|
||
; 327 : m_listen_socket,
|
||
; 328 : lp_io->socket,
|
||
; 329 : lp_io->buf,
|
||
; 330 : // lp_io->wsaBuf.len - 2 * ( sizeof(SOCKADDR_IN) + 16 ),
|
||
; 331 : 0,
|
||
; 332 : sizeof(SOCKADDR_IN) + 16,
|
||
; 333 : sizeof(SOCKADDR_IN) + 16,
|
||
; 334 : &dwBytes,&lp_io->ol);
|
||
; 335 : if( ( bRet == FALSE ) && ( WSA_IO_PENDING != WSAGetLastError() ) )
|
||
|
||
0010d 83 7d f0 00 cmp DWORD PTR _bRet$[ebp], 0
|
||
00111 75 31 jne SHORT $LN8@PostAccept
|
||
00113 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAGetLastError@0
|
||
00119 3d e5 03 00 00 cmp eax, 997 ; 000003e5H
|
||
0011e 74 24 je SHORT $LN8@PostAccept
|
||
|
||
; 336 : {
|
||
; 337 : closesocket( socket );
|
||
|
||
00120 8b 45 e8 mov eax, DWORD PTR _socket$4[ebp]
|
||
00123 50 push eax
|
||
00124 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 338 : //m_io_group.RemoveAt( lp_io );
|
||
; 339 : m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
0012a 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0012d 83 c0 08 add eax, 8
|
||
00130 89 45 98 mov DWORD PTR tv149[ebp], eax
|
||
00133 8b 4d e0 mov ecx, DWORD PTR _lp_io$2[ebp]
|
||
00136 51 push ecx
|
||
00137 8b 4d 98 mov ecx, DWORD PTR tv149[ebp]
|
||
0013a e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 340 : //cout<<"post acceptex fail:"<<WSAGetLastError()<<endl;
|
||
; 341 : continue;
|
||
|
||
0013f e9 d8 fe ff ff jmp $LN2@PostAccept
|
||
$LN8@PostAccept:
|
||
|
||
; 342 : }
|
||
; 343 : }
|
||
|
||
00144 eb 07 jmp SHORT $LN7@PostAccept
|
||
$LN6@PostAccept:
|
||
|
||
; 344 : else
|
||
; 345 : {
|
||
; 346 : int i=10;
|
||
|
||
00146 c7 45 dc 0a 00
|
||
00 00 mov DWORD PTR _i$1[ebp], 10 ; 0000000aH
|
||
$LN7@PostAccept:
|
||
|
||
; 347 : }
|
||
; 348 : }
|
||
|
||
0014d e9 ca fe ff ff jmp $LN2@PostAccept
|
||
$LN3@PostAccept:
|
||
|
||
; 349 :
|
||
; 350 : return TRUE;
|
||
|
||
00152 b8 01 00 00 00 mov eax, 1
|
||
|
||
; 351 : }
|
||
|
||
00157 5f pop edi
|
||
00158 5e pop esi
|
||
00159 5b pop ebx
|
||
0015a 8b e5 mov esp, ebp
|
||
0015c 5d pop ebp
|
||
0015d c3 ret 0
|
||
?PostAcceptEx@CIOCP@@QAEHXZ ENDP ; CIOCP::PostAcceptEx
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?PostAcceptEx2@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
tv139 = -100 ; size = 4
|
||
tv130 = -100 ; size = 4
|
||
_i$1 = -32 ; size = 4
|
||
_lp_io$2 = -28 ; size = 4
|
||
_socket$3 = -24 ; size = 4
|
||
_i$4 = -20 ; size = 4
|
||
_bRet$ = -16 ; size = 4
|
||
_dwBytes$ = -12 ; size = 4
|
||
_count$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?PostAcceptEx2@CIOCP@@QAEHXZ PROC ; CIOCP::PostAcceptEx2, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1229 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 83 ec 64 sub esp, 100 ; 00000064H
|
||
00006 53 push ebx
|
||
00007 56 push esi
|
||
00008 57 push edi
|
||
00009 89 4d fc mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 1230 : #ifdef _DEBUG
|
||
; 1231 : int count = 10;
|
||
; 1232 : #else
|
||
; 1233 : int count = 30;
|
||
|
||
0000c c7 45 f8 1e 00
|
||
00 00 mov DWORD PTR _count$[ebp], 30 ; 0000001eH
|
||
|
||
; 1234 : #endif
|
||
; 1235 : DWORD dwBytes;
|
||
; 1236 : BOOL bRet;
|
||
; 1237 :
|
||
; 1238 : for( int i = 0; i < count; i++ )
|
||
|
||
00013 c7 45 ec 00 00
|
||
00 00 mov DWORD PTR _i$4[ebp], 0
|
||
0001a eb 09 jmp SHORT $LN4@PostAccept
|
||
$LN2@PostAccept:
|
||
0001c 8b 45 ec mov eax, DWORD PTR _i$4[ebp]
|
||
0001f 83 c0 01 add eax, 1
|
||
00022 89 45 ec mov DWORD PTR _i$4[ebp], eax
|
||
$LN4@PostAccept:
|
||
00025 8b 45 ec mov eax, DWORD PTR _i$4[ebp]
|
||
00028 3b 45 f8 cmp eax, DWORD PTR _count$[ebp]
|
||
0002b 0f 8d d8 00 00
|
||
00 jge $LN3@PostAccept
|
||
|
||
; 1239 : {
|
||
; 1240 : SOCKET socket = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED );
|
||
|
||
00031 6a 01 push 1
|
||
00033 6a 00 push 0
|
||
00035 6a 00 push 0
|
||
00037 6a 06 push 6
|
||
00039 6a 01 push 1
|
||
0003b 6a 02 push 2
|
||
0003d ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSASocketW@24
|
||
00043 89 45 e8 mov DWORD PTR _socket$3[ebp], eax
|
||
|
||
; 1241 :
|
||
; 1242 : if( INVALID_SOCKET == socket )
|
||
|
||
00046 83 7d e8 ff cmp DWORD PTR _socket$3[ebp], -1
|
||
0004a 75 02 jne SHORT $LN5@PostAccept
|
||
|
||
; 1243 : {
|
||
; 1244 : //cout<<"post accept ex fail!"<<WSAGetLastError()<<endl;
|
||
; 1245 : continue;
|
||
|
||
0004c eb ce jmp SHORT $LN2@PostAccept
|
||
$LN5@PostAccept:
|
||
|
||
; 1246 : }
|
||
; 1247 : /*
|
||
; 1248 : //<2F><><EFBFBD><EFBFBD>Socket
|
||
; 1249 : u_long ulTemp=1; //<2F><>SOCKET<45><54><EFBFBD>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>SOCKET
|
||
; 1250 : //u_long ulTemp=0; //<2F><>SOCKET<45><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>SOCKET
|
||
; 1251 : ioctlsocket( socket,FIONBIO,&ulTemp );
|
||
; 1252 : ulTemp=64000;
|
||
; 1253 : setsockopt( socket , SOL_SOCKET, SO_SNDBUF ,(const char *)&ulTemp ,sizeof(ulTemp)); //<2F><>緳<EFBFBD>
|
||
; 1254 : ulTemp=64000;
|
||
; 1255 : setsockopt( socket , SOL_SOCKET, SO_RCVBUF ,(const char *)&ulTemp ,sizeof(ulTemp)); //<2F><>緳<EFBFBD>
|
||
; 1256 : setsockopt( socket, SOL_SOCKET, SO_DONTLINGER,(const char *)&ulTemp,sizeof(BOOL));
|
||
; 1257 :
|
||
; 1258 : struct linger {
|
||
; 1259 : u_short l_onoff;
|
||
; 1260 : u_short l_linger;
|
||
; 1261 : };
|
||
; 1262 : linger m_sLinger;
|
||
; 1263 : m_sLinger.l_onoff=0;//(<28><>closesocket()<29><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||
; 1264 : // <20><><EFBFBD><EFBFBD>m_sLinger.l_onoff=0;<3B><><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>2.)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ;
|
||
; 1265 : m_sLinger.l_linger=0;//(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ5<CEAA><35>)
|
||
; 1266 : int iLen=sizeof(m_sLinger);
|
||
; 1267 : int i = setsockopt(socket,SOL_SOCKET,SO_LINGER,(const char*)&m_sLinger,sizeof(linger));
|
||
; 1268 : */
|
||
; 1269 :
|
||
; 1270 : //IOCP_IO_PTR lp_io = m_io_group.GetBlank();
|
||
; 1271 : IOCP_IO_PTR lp_io = m_KeyList.GetBlank_IO();
|
||
|
||
0004e 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
00051 83 c1 08 add ecx, 8
|
||
00054 e8 00 00 00 00 call ?GetBlank_IO@CKeyList@@QAEPAUIOCP_IO@@XZ ; CKeyList::GetBlank_IO
|
||
00059 89 45 e4 mov DWORD PTR _lp_io$2[ebp], eax
|
||
|
||
; 1272 :
|
||
; 1273 : if ( lp_io != NULL )
|
||
|
||
0005c 83 7d e4 00 cmp DWORD PTR _lp_io$2[ebp], 0
|
||
00060 0f 84 97 00 00
|
||
00 je $LN6@PostAccept
|
||
|
||
; 1274 : {
|
||
; 1275 : InitIoContext( lp_io );
|
||
|
||
00066 8b 45 e4 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
00069 50 push eax
|
||
0006a 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0006d e8 00 00 00 00 call ?InitIoContext@CIOCP@@AAEXPAUIOCP_IO@@@Z ; CIOCP::InitIoContext
|
||
|
||
; 1276 : lp_io->socket = socket;
|
||
|
||
00072 8b 45 e4 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
00075 8b 4d e8 mov ecx, DWORD PTR _socket$3[ebp]
|
||
00078 89 48 14 mov DWORD PTR [eax+20], ecx
|
||
|
||
; 1277 : lp_io->operation = IOCP_ACCEPT;
|
||
|
||
0007b 8b 45 e4 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
0007e c7 40 18 01 00
|
||
00 00 mov DWORD PTR [eax+24], 1
|
||
|
||
; 1278 : lp_io->state = SOCKET_STATE_NOT_CONNECT;
|
||
|
||
00085 8b 45 e4 mov eax, DWORD PTR _lp_io$2[ebp]
|
||
00088 c7 40 1c 00 00
|
||
00 00 mov DWORD PTR [eax+28], 0
|
||
|
||
; 1279 : /////////////////////////////////////////////////
|
||
; 1280 : bRet = lpAcceptEx(
|
||
|
||
0008f 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00092 8b 48 44 mov ecx, DWORD PTR [eax+68]
|
||
00095 89 4d 9c mov DWORD PTR tv130[ebp], ecx
|
||
00098 8b 55 e4 mov edx, DWORD PTR _lp_io$2[ebp]
|
||
0009b 52 push edx
|
||
0009c 8d 45 f4 lea eax, DWORD PTR _dwBytes$[ebp]
|
||
0009f 50 push eax
|
||
000a0 6a 20 push 32 ; 00000020H
|
||
000a2 6a 20 push 32 ; 00000020H
|
||
000a4 6a 00 push 0
|
||
000a6 8b 4d e4 mov ecx, DWORD PTR _lp_io$2[ebp]
|
||
000a9 81 c1 e0 01 00
|
||
00 add ecx, 480 ; 000001e0H
|
||
000af 51 push ecx
|
||
000b0 8b 55 e4 mov edx, DWORD PTR _lp_io$2[ebp]
|
||
000b3 8b 42 14 mov eax, DWORD PTR [edx+20]
|
||
000b6 50 push eax
|
||
000b7 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
000ba 8b 51 34 mov edx, DWORD PTR [ecx+52]
|
||
000bd 52 push edx
|
||
000be ff 55 9c call DWORD PTR tv130[ebp]
|
||
000c1 89 45 f0 mov DWORD PTR _bRet$[ebp], eax
|
||
|
||
; 1281 : m_listen_socket2,
|
||
; 1282 : lp_io->socket,
|
||
; 1283 : lp_io->buf,
|
||
; 1284 : // lp_io->wsaBuf.len - 2 * ( sizeof(SOCKADDR_IN) + 16 ),
|
||
; 1285 : 0,
|
||
; 1286 : sizeof(SOCKADDR_IN) + 16,
|
||
; 1287 : sizeof(SOCKADDR_IN) + 16,
|
||
; 1288 : &dwBytes,&lp_io->ol);
|
||
; 1289 :
|
||
; 1290 : if( ( bRet == FALSE ) && ( WSA_IO_PENDING != WSAGetLastError() ) )
|
||
|
||
000c4 83 7d f0 00 cmp DWORD PTR _bRet$[ebp], 0
|
||
000c8 75 31 jne SHORT $LN8@PostAccept
|
||
000ca ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAGetLastError@0
|
||
000d0 3d e5 03 00 00 cmp eax, 997 ; 000003e5H
|
||
000d5 74 24 je SHORT $LN8@PostAccept
|
||
|
||
; 1291 : {
|
||
; 1292 : closesocket( socket );
|
||
|
||
000d7 8b 45 e8 mov eax, DWORD PTR _socket$3[ebp]
|
||
000da 50 push eax
|
||
000db ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
|
||
; 1293 :
|
||
; 1294 : //m_io_group.RemoveAt( lp_io );
|
||
; 1295 : m_KeyList.RemoveAt_IO( lp_io );
|
||
|
||
000e1 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
000e4 83 c0 08 add eax, 8
|
||
000e7 89 45 9c mov DWORD PTR tv139[ebp], eax
|
||
000ea 8b 4d e4 mov ecx, DWORD PTR _lp_io$2[ebp]
|
||
000ed 51 push ecx
|
||
000ee 8b 4d 9c mov ecx, DWORD PTR tv139[ebp]
|
||
000f1 e8 00 00 00 00 call ?RemoveAt_IO@CKeyList@@QAEXPAUIOCP_IO@@@Z ; CKeyList::RemoveAt_IO
|
||
|
||
; 1296 :
|
||
; 1297 : //cout<<"post acceptex fail:"<<WSAGetLastError()<<endl;
|
||
; 1298 : continue;
|
||
|
||
000f6 e9 21 ff ff ff jmp $LN2@PostAccept
|
||
$LN8@PostAccept:
|
||
|
||
; 1299 : }
|
||
; 1300 : }
|
||
|
||
000fb eb 07 jmp SHORT $LN7@PostAccept
|
||
$LN6@PostAccept:
|
||
|
||
; 1301 : else
|
||
; 1302 : {
|
||
; 1303 : int i=10;
|
||
|
||
000fd c7 45 e0 0a 00
|
||
00 00 mov DWORD PTR _i$1[ebp], 10 ; 0000000aH
|
||
$LN7@PostAccept:
|
||
|
||
; 1304 : }
|
||
; 1305 :
|
||
; 1306 : }
|
||
|
||
00104 e9 13 ff ff ff jmp $LN2@PostAccept
|
||
$LN3@PostAccept:
|
||
|
||
; 1307 :
|
||
; 1308 : return TRUE;
|
||
|
||
00109 b8 01 00 00 00 mov eax, 1
|
||
|
||
; 1309 : }
|
||
|
||
0010e 5f pop edi
|
||
0010f 5e pop esi
|
||
00110 5b pop ebx
|
||
00111 8b e5 mov esp, ebp
|
||
00113 5d pop ebp
|
||
00114 c3 ret 0
|
||
?PostAcceptEx2@CIOCP@@QAEHXZ ENDP ; CIOCP::PostAcceptEx2
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?RegAcceptEvent@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
_nRet$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?RegAcceptEvent@CIOCP@@QAEHXZ PROC ; CIOCP::RegAcceptEvent, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 691 : {
|
||
|
||
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
|
||
|
||
; 692 : int nRet;
|
||
; 693 :
|
||
; 694 : m_h_accept_event = CreateEvent( NULL, FALSE, FALSE, NULL );
|
||
|
||
0000c 6a 00 push 0
|
||
0000e 6a 00 push 0
|
||
00010 6a 00 push 0
|
||
00012 6a 00 push 0
|
||
00014 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateEventW@16
|
||
0001a 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0001d 89 81 d4 00 00
|
||
00 mov DWORD PTR [ecx+212], eax
|
||
|
||
; 695 :
|
||
; 696 : if( NULL == m_h_accept_event )
|
||
|
||
00023 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00026 83 b8 d4 00 00
|
||
00 00 cmp DWORD PTR [eax+212], 0
|
||
0002d 75 04 jne SHORT $LN2@RegAcceptE
|
||
|
||
; 697 : {
|
||
; 698 : return FALSE;
|
||
|
||
0002f 33 c0 xor eax, eax
|
||
00031 eb 3b jmp SHORT $LN1@RegAcceptE
|
||
$LN2@RegAcceptE:
|
||
|
||
; 699 : }
|
||
; 700 :
|
||
; 701 : nRet = WSAEventSelect( m_listen_socket, m_h_accept_event, FD_ACCEPT );
|
||
|
||
00033 6a 08 push 8
|
||
00035 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00038 8b 88 d4 00 00
|
||
00 mov ecx, DWORD PTR [eax+212]
|
||
0003e 51 push ecx
|
||
0003f 8b 55 fc mov edx, DWORD PTR _this$[ebp]
|
||
00042 8b 42 2c mov eax, DWORD PTR [edx+44]
|
||
00045 50 push eax
|
||
00046 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAEventSelect@12
|
||
0004c 89 45 f8 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 702 :
|
||
; 703 : if( nRet != 0 )
|
||
|
||
0004f 83 7d f8 00 cmp DWORD PTR _nRet$[ebp], 0
|
||
00053 74 14 je SHORT $LN3@RegAcceptE
|
||
|
||
; 704 : {
|
||
; 705 : CloseHandle( m_h_accept_event );
|
||
|
||
00055 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00058 8b 88 d4 00 00
|
||
00 mov ecx, DWORD PTR [eax+212]
|
||
0005e 51 push ecx
|
||
0005f ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 706 :
|
||
; 707 : return FALSE;
|
||
|
||
00065 33 c0 xor eax, eax
|
||
00067 eb 05 jmp SHORT $LN1@RegAcceptE
|
||
$LN3@RegAcceptE:
|
||
|
||
; 708 : }
|
||
; 709 :
|
||
; 710 : return TRUE;
|
||
|
||
00069 b8 01 00 00 00 mov eax, 1
|
||
$LN1@RegAcceptE:
|
||
|
||
; 711 : }
|
||
|
||
0006e 5f pop edi
|
||
0006f 5e pop esi
|
||
00070 5b pop ebx
|
||
00071 8b e5 mov esp, ebp
|
||
00073 5d pop ebp
|
||
00074 c3 ret 0
|
||
?RegAcceptEvent@CIOCP@@QAEHXZ ENDP ; CIOCP::RegAcceptEvent
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?RegAcceptEvent2@CIOCP@@QAEHXZ
|
||
_TEXT SEGMENT
|
||
_nRet$ = -8 ; size = 4
|
||
_this$ = -4 ; size = 4
|
||
?RegAcceptEvent2@CIOCP@@QAEHXZ PROC ; CIOCP::RegAcceptEvent2, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1312 : {
|
||
|
||
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
|
||
|
||
; 1313 : int nRet;
|
||
; 1314 :
|
||
; 1315 : m_h_accept_event2 = CreateEvent( NULL, FALSE, FALSE, NULL );
|
||
|
||
0000c 6a 00 push 0
|
||
0000e 6a 00 push 0
|
||
00010 6a 00 push 0
|
||
00012 6a 00 push 0
|
||
00014 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CreateEventW@16
|
||
0001a 8b 4d fc mov ecx, DWORD PTR _this$[ebp]
|
||
0001d 89 81 d8 00 00
|
||
00 mov DWORD PTR [ecx+216], eax
|
||
|
||
; 1316 :
|
||
; 1317 : if( NULL == m_h_accept_event2 )
|
||
|
||
00023 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00026 83 b8 d8 00 00
|
||
00 00 cmp DWORD PTR [eax+216], 0
|
||
0002d 75 04 jne SHORT $LN2@RegAcceptE
|
||
|
||
; 1318 : {
|
||
; 1319 : return FALSE;
|
||
|
||
0002f 33 c0 xor eax, eax
|
||
00031 eb 3b jmp SHORT $LN1@RegAcceptE
|
||
$LN2@RegAcceptE:
|
||
|
||
; 1320 : }
|
||
; 1321 :
|
||
; 1322 : nRet = WSAEventSelect( m_listen_socket2, m_h_accept_event2, FD_ACCEPT );
|
||
|
||
00033 6a 08 push 8
|
||
00035 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00038 8b 88 d8 00 00
|
||
00 mov ecx, DWORD PTR [eax+216]
|
||
0003e 51 push ecx
|
||
0003f 8b 55 fc mov edx, DWORD PTR _this$[ebp]
|
||
00042 8b 42 34 mov eax, DWORD PTR [edx+52]
|
||
00045 50 push eax
|
||
00046 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WSAEventSelect@12
|
||
0004c 89 45 f8 mov DWORD PTR _nRet$[ebp], eax
|
||
|
||
; 1323 :
|
||
; 1324 : if( nRet != 0 )
|
||
|
||
0004f 83 7d f8 00 cmp DWORD PTR _nRet$[ebp], 0
|
||
00053 74 14 je SHORT $LN3@RegAcceptE
|
||
|
||
; 1325 : {
|
||
; 1326 : CloseHandle( m_h_accept_event2 );
|
||
|
||
00055 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00058 8b 88 d8 00 00
|
||
00 mov ecx, DWORD PTR [eax+216]
|
||
0005e 51 push ecx
|
||
0005f ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 1327 :
|
||
; 1328 : return FALSE;
|
||
|
||
00065 33 c0 xor eax, eax
|
||
00067 eb 05 jmp SHORT $LN1@RegAcceptE
|
||
$LN3@RegAcceptE:
|
||
|
||
; 1329 : }
|
||
; 1330 :
|
||
; 1331 : return TRUE;
|
||
|
||
00069 b8 01 00 00 00 mov eax, 1
|
||
$LN1@RegAcceptE:
|
||
|
||
; 1332 : }
|
||
|
||
0006e 5f pop edi
|
||
0006f 5e pop esi
|
||
00070 5b pop ebx
|
||
00071 8b e5 mov esp, ebp
|
||
00073 5d pop ebp
|
||
00074 c3 ret 0
|
||
?RegAcceptEvent2@CIOCP@@QAEHXZ ENDP ; CIOCP::RegAcceptEvent2
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
_TEXT SEGMENT
|
||
tv303 = -12760 ; size = 4
|
||
tv301 = -12760 ; size = 4
|
||
tv189 = -12760 ; size = 4
|
||
tv249 = -12756 ; size = 4
|
||
tv194 = -12756 ; size = 4
|
||
tv188 = -12756 ; size = 4
|
||
tv154 = -12756 ; size = 4
|
||
$T2 = -12752 ; size = 4
|
||
$T3 = -12748 ; size = 4
|
||
$T4 = -12744 ; size = 4
|
||
$T5 = -12740 ; size = 4
|
||
$T6 = -12736 ; size = 4
|
||
$T7 = -12732 ; size = 4
|
||
$T8 = -12728 ; size = 4
|
||
$T9 = -12724 ; size = 4
|
||
_NXlog$10 = -12208 ; size = 6056
|
||
_NXlog$11 = -6152 ; size = 6056
|
||
_head$12 = -96 ; size = 12
|
||
_bOK$13 = -84 ; size = 4
|
||
_pProcess$14 = -80 ; size = 4
|
||
_pSql$15 = -76 ; size = 4
|
||
_pTestRet$16 = -72 ; size = 4
|
||
_lGetLen$17 = -68 ; size = 4
|
||
_SHead$18 = -64 ; size = 30
|
||
_i$19 = -32 ; size = 4
|
||
_iGetFrame$20 = -28 ; size = 4
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_io$ = 8 ; size = 4
|
||
?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z PROC ; CIOCP::GetFrame, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1335 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 c8 31 00 00 mov eax, 12744 ; 000031c8H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 1336 : try
|
||
|
||
00039 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 1337 : {
|
||
; 1338 : int iGetFrame=0;
|
||
|
||
00040 c7 45 e4 00 00
|
||
00 00 mov DWORD PTR _iGetFrame$20[ebp], 0
|
||
|
||
; 1339 : for ( int i=0 ; i<lp_io->lRecvLen ; i++ )
|
||
|
||
00047 c7 45 e0 00 00
|
||
00 00 mov DWORD PTR _i$19[ebp], 0
|
||
0004e eb 09 jmp SHORT $LN4@GetFrame
|
||
$LN2@GetFrame:
|
||
00050 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
00053 83 c0 01 add eax, 1
|
||
00056 89 45 e0 mov DWORD PTR _i$19[ebp], eax
|
||
$LN4@GetFrame:
|
||
00059 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0005c 8b 4d e0 mov ecx, DWORD PTR _i$19[ebp]
|
||
0005f 3b 48 2c cmp ecx, DWORD PTR [eax+44]
|
||
00062 0f 8d 71 03 00
|
||
00 jge $LN3@GetFrame
|
||
|
||
; 1340 : {
|
||
; 1341 : if ( i+sizeof(Socket_Head) > (DWORD)lp_io->lRecvLen )
|
||
|
||
00068 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
0006b 83 c0 1e add eax, 30 ; 0000001eH
|
||
0006e 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00071 3b 41 2c cmp eax, DWORD PTR [ecx+44]
|
||
00074 76 05 jbe SHORT $LN6@GetFrame
|
||
|
||
; 1342 : {
|
||
; 1343 : //i--;
|
||
; 1344 : break;
|
||
|
||
00076 e9 5e 03 00 00 jmp $LN3@GetFrame
|
||
$LN6@GetFrame:
|
||
|
||
; 1345 : }
|
||
; 1346 : Socket_Head SHead={0};
|
||
|
||
0007b 33 c0 xor eax, eax
|
||
0007d 89 45 c0 mov DWORD PTR _SHead$18[ebp], eax
|
||
00080 89 45 c4 mov DWORD PTR _SHead$18[ebp+4], eax
|
||
00083 89 45 c8 mov DWORD PTR _SHead$18[ebp+8], eax
|
||
00086 89 45 cc mov DWORD PTR _SHead$18[ebp+12], eax
|
||
00089 89 45 d0 mov DWORD PTR _SHead$18[ebp+16], eax
|
||
0008c 89 45 d4 mov DWORD PTR _SHead$18[ebp+20], eax
|
||
0008f 89 45 d8 mov DWORD PTR _SHead$18[ebp+24], eax
|
||
00092 66 89 45 dc mov WORD PTR _SHead$18[ebp+28], ax
|
||
|
||
; 1347 : memcpy(&SHead,lp_io->buf+i,sizeof(Socket_Head)); i=i+sizeof(Socket_Head);
|
||
|
||
00096 6a 1e push 30 ; 0000001eH
|
||
00098 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
0009b 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
0009e 8d 94 01 e0 01
|
||
00 00 lea edx, DWORD PTR [ecx+eax+480]
|
||
000a5 52 push edx
|
||
000a6 8d 45 c0 lea eax, DWORD PTR _SHead$18[ebp]
|
||
000a9 50 push eax
|
||
000aa e8 00 00 00 00 call _memcpy
|
||
000af 83 c4 0c add esp, 12 ; 0000000cH
|
||
000b2 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
000b5 83 c0 1e add eax, 30 ; 0000001eH
|
||
000b8 89 45 e0 mov DWORD PTR _i$19[ebp], eax
|
||
|
||
; 1348 : long lGetLen=SHead.lFrameLen;
|
||
|
||
000bb 8b 45 ce mov eax, DWORD PTR _SHead$18[ebp+14]
|
||
000be 89 45 bc mov DWORD PTR _lGetLen$17[ebp], eax
|
||
|
||
; 1349 : if ( SHead.bCompress )
|
||
|
||
000c1 0f b6 45 c4 movzx eax, BYTE PTR _SHead$18[ebp+4]
|
||
000c5 85 c0 test eax, eax
|
||
000c7 74 06 je SHORT $LN7@GetFrame
|
||
|
||
; 1350 : lGetLen = SHead.lCompressLen;
|
||
|
||
000c9 8b 45 d2 mov eax, DWORD PTR _SHead$18[ebp+18]
|
||
000cc 89 45 bc mov DWORD PTR _lGetLen$17[ebp], eax
|
||
$LN7@GetFrame:
|
||
|
||
; 1351 : if ( SHead.lFuncType <=0 || SHead.lFuncType > 100000 ||
|
||
; 1352 : SHead.lCompressLen<0 || SHead.lCompressLen>BUFFER_SIZE ||
|
||
; 1353 : SHead.lFrameLen<0 || SHead.lFrameLen>BUFFER_SIZE ) //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>յ<EFBFBD><D5B5><EFBFBD>֡<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
000cf 83 7d c0 00 cmp DWORD PTR _SHead$18[ebp], 0
|
||
000d3 76 27 jbe SHORT $LN9@GetFrame
|
||
000d5 81 7d c0 a0 86
|
||
01 00 cmp DWORD PTR _SHead$18[ebp], 100000 ; 000186a0H
|
||
000dc 77 1e ja SHORT $LN9@GetFrame
|
||
000de 83 7d d2 00 cmp DWORD PTR _SHead$18[ebp+18], 0
|
||
000e2 72 18 jb SHORT $LN9@GetFrame
|
||
000e4 81 7d d2 d0 dd
|
||
06 00 cmp DWORD PTR _SHead$18[ebp+18], 450000 ; 0006ddd0H
|
||
000eb 77 0f ja SHORT $LN9@GetFrame
|
||
000ed 83 7d ce 00 cmp DWORD PTR _SHead$18[ebp+14], 0
|
||
000f1 72 09 jb SHORT $LN9@GetFrame
|
||
000f3 81 7d ce d0 dd
|
||
06 00 cmp DWORD PTR _SHead$18[ebp+14], 450000 ; 0006ddd0H
|
||
000fa 76 08 jbe SHORT $LN8@GetFrame
|
||
$LN9@GetFrame:
|
||
|
||
; 1354 : {
|
||
; 1355 : return -1; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ԣ<EFBFBD><D4A3>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
000fc 83 c8 ff or eax, -1
|
||
000ff e9 d3 03 00 00 jmp $LN1@GetFrame
|
||
$LN8@GetFrame:
|
||
|
||
; 1356 : }
|
||
; 1357 : if ( i+lGetLen>lp_io->lRecvLen) //<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
|
||
|
||
00104 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
00107 03 45 bc add eax, DWORD PTR _lGetLen$17[ebp]
|
||
0010a 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
0010d 3b 41 2c cmp eax, DWORD PTR [ecx+44]
|
||
00110 7e 0e jle SHORT $LN10@GetFrame
|
||
|
||
; 1358 : {
|
||
; 1359 : i=i-sizeof(Socket_Head);
|
||
|
||
00112 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
00115 83 e8 1e sub eax, 30 ; 0000001eH
|
||
00118 89 45 e0 mov DWORD PTR _i$19[ebp], eax
|
||
|
||
; 1360 : //i--;
|
||
; 1361 : break;
|
||
|
||
0011b e9 b9 02 00 00 jmp $LN3@GetFrame
|
||
$LN10@GetFrame:
|
||
|
||
; 1362 : }
|
||
; 1363 : lp_io->dwEndRecvFrame = ::GetTickCount();
|
||
|
||
00120 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetTickCount@0
|
||
00126 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00129 89 81 d8 01 00
|
||
00 mov DWORD PTR [ecx+472], eax
|
||
|
||
; 1364 :
|
||
; 1365 :
|
||
; 1366 : if ( SHead.lFuncType == SMSFUNC_TEST && lp_io->m_lUserID>0 ) //ֱ<>ӻظ<D3BB>SMSFunc_Test
|
||
|
||
0012f 83 7d c0 64 cmp DWORD PTR _SHead$18[ebp], 100 ; 00000064H
|
||
00133 75 49 jne SHORT $LN11@GetFrame
|
||
00135 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00138 83 b8 94 01 00
|
||
00 00 cmp DWORD PTR [eax+404], 0
|
||
0013f 7e 3d jle SHORT $LN11@GetFrame
|
||
|
||
; 1367 : {
|
||
; 1368 : ANS_Test * pTestRet = new ANS_Test;
|
||
|
||
00141 6a 04 push 4
|
||
00143 e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
|
||
00148 83 c4 04 add esp, 4
|
||
0014b 89 85 4c ce ff
|
||
ff mov DWORD PTR $T9[ebp], eax
|
||
00151 8b 85 4c ce ff
|
||
ff mov eax, DWORD PTR $T9[ebp]
|
||
00157 89 45 b8 mov DWORD PTR _pTestRet$16[ebp], eax
|
||
|
||
; 1369 : pTestRet->lTemp = ::GetTickCount();
|
||
|
||
0015a ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetTickCount@0
|
||
00160 8b 4d b8 mov ecx, DWORD PTR _pTestRet$16[ebp]
|
||
00163 89 01 mov DWORD PTR [ecx], eax
|
||
|
||
; 1370 : CSmsCenterDlg::SendFrame(lp_io, SMSFUNC_TEST , (BYTE*)pTestRet , sizeof(ANS_Test) ); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
|
||
|
||
00165 6a 04 push 4
|
||
00167 8b 45 b8 mov eax, DWORD PTR _pTestRet$16[ebp]
|
||
0016a 50 push eax
|
||
0016b 6a 64 push 100 ; 00000064H
|
||
0016d 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00170 51 push ecx
|
||
00171 e8 00 00 00 00 call ?SendFrame@CSmsCenterDlg@@SAHPAUIOCP_IO@@IPAEK@Z ; CSmsCenterDlg::SendFrame
|
||
00176 83 c4 10 add esp, 16 ; 00000010H
|
||
|
||
; 1371 : }
|
||
|
||
00179 e9 44 02 00 00 jmp $LN12@GetFrame
|
||
$LN11@GetFrame:
|
||
|
||
; 1372 : else
|
||
; 1373 : {
|
||
; 1374 : IOCP_SQL_PTR pSql = m_KeyList.GetBlank_SQL();
|
||
|
||
0017e 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
00181 83 c1 08 add ecx, 8
|
||
00184 e8 00 00 00 00 call ?GetBlank_SQL@CKeyList@@QAEPAUIOCP_SQL@@XZ ; CKeyList::GetBlank_SQL
|
||
00189 89 45 b4 mov DWORD PTR _pSql$15[ebp], eax
|
||
|
||
; 1375 : if ( pSql )
|
||
|
||
0018c 83 7d b4 00 cmp DWORD PTR _pSql$15[ebp], 0
|
||
00190 0f 84 2c 02 00
|
||
00 je $LN12@GetFrame
|
||
|
||
; 1376 : {
|
||
; 1377 : try
|
||
|
||
00196 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
|
||
; 1378 : {
|
||
; 1379 : //CProcessSocket * pProcess = m_KeyList.GetBlank_Process();
|
||
; 1380 : CProcessSocket * pProcess = new CProcessSocket;
|
||
|
||
0019a 68 c0 12 00 00 push 4800 ; 000012c0H
|
||
0019f e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
|
||
001a4 83 c4 04 add esp, 4
|
||
001a7 89 85 44 ce ff
|
||
ff mov DWORD PTR $T7[ebp], eax
|
||
001ad c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
001b1 83 bd 44 ce ff
|
||
ff 00 cmp DWORD PTR $T7[ebp], 0
|
||
001b8 74 13 je SHORT $LN23@GetFrame
|
||
001ba 8b 8d 44 ce ff
|
||
ff mov ecx, DWORD PTR $T7[ebp]
|
||
001c0 e8 00 00 00 00 call ??0CProcessSocket@@QAE@XZ ; CProcessSocket::CProcessSocket
|
||
001c5 89 85 2c ce ff
|
||
ff mov DWORD PTR tv154[ebp], eax
|
||
001cb eb 0a jmp SHORT $LN24@GetFrame
|
||
$LN23@GetFrame:
|
||
001cd c7 85 2c ce ff
|
||
ff 00 00 00 00 mov DWORD PTR tv154[ebp], 0
|
||
$LN24@GetFrame:
|
||
001d7 8b 85 2c ce ff
|
||
ff mov eax, DWORD PTR tv154[ebp]
|
||
001dd 89 85 48 ce ff
|
||
ff mov DWORD PTR $T8[ebp], eax
|
||
001e3 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
001e7 8b 8d 48 ce ff
|
||
ff mov ecx, DWORD PTR $T8[ebp]
|
||
001ed 89 4d b0 mov DWORD PTR _pProcess$14[ebp], ecx
|
||
|
||
; 1381 : if ( pProcess )
|
||
|
||
001f0 83 7d b0 00 cmp DWORD PTR _pProcess$14[ebp], 0
|
||
001f4 0f 84 02 01 00
|
||
00 je $LN15@GetFrame
|
||
|
||
; 1382 : {
|
||
; 1383 : BOOL bOK = true;
|
||
|
||
001fa c7 45 ac 01 00
|
||
00 00 mov DWORD PTR _bOK$13[ebp], 1
|
||
|
||
; 1384 :
|
||
; 1385 : pProcess->SetDlg(m_pDlg);
|
||
|
||
00201 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00204 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
00207 51 push ecx
|
||
00208 8b 4d b0 mov ecx, DWORD PTR _pProcess$14[ebp]
|
||
0020b e8 00 00 00 00 call ?SetDlg@CProcessSocket@@QAEXPAVCSmsCenterDlg@@@Z ; CProcessSocket::SetDlg
|
||
|
||
; 1386 : pProcess->IOCP_setSQL(pSql);
|
||
|
||
00210 8b 45 b4 mov eax, DWORD PTR _pSql$15[ebp]
|
||
00213 50 push eax
|
||
00214 8b 4d b0 mov ecx, DWORD PTR _pProcess$14[ebp]
|
||
00217 e8 00 00 00 00 call ?IOCP_setSQL@CProcessSocket@@QAEXPAUIOCP_SQL@@@Z ; CProcessSocket::IOCP_setSQL
|
||
|
||
; 1387 :
|
||
; 1388 : Cmpp_Head head={0};
|
||
|
||
0021c 33 c0 xor eax, eax
|
||
0021e 89 45 a0 mov DWORD PTR _head$12[ebp], eax
|
||
00221 89 45 a4 mov DWORD PTR _head$12[ebp+4], eax
|
||
00224 89 45 a8 mov DWORD PTR _head$12[ebp+8], eax
|
||
|
||
; 1389 : bOK = pProcess->IOCP_GetFrameData(lp_io , SHead , head,(BYTE*)(lp_io->buf+i) , lGetLen);
|
||
|
||
00227 8b 45 bc mov eax, DWORD PTR _lGetLen$17[ebp]
|
||
0022a 50 push eax
|
||
0022b 8b 4d e0 mov ecx, DWORD PTR _i$19[ebp]
|
||
0022e 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
00231 8d 84 0a e0 01
|
||
00 00 lea eax, DWORD PTR [edx+ecx+480]
|
||
00238 50 push eax
|
||
00239 83 ec 0c sub esp, 12 ; 0000000cH
|
||
0023c 8b cc mov ecx, esp
|
||
0023e 8b 55 a0 mov edx, DWORD PTR _head$12[ebp]
|
||
00241 89 11 mov DWORD PTR [ecx], edx
|
||
00243 8b 45 a4 mov eax, DWORD PTR _head$12[ebp+4]
|
||
00246 89 41 04 mov DWORD PTR [ecx+4], eax
|
||
00249 8b 55 a8 mov edx, DWORD PTR _head$12[ebp+8]
|
||
0024c 89 51 08 mov DWORD PTR [ecx+8], edx
|
||
0024f 83 ec 20 sub esp, 32 ; 00000020H
|
||
00252 b9 07 00 00 00 mov ecx, 7
|
||
00257 8d 75 c0 lea esi, DWORD PTR _SHead$18[ebp]
|
||
0025a 8b fc mov edi, esp
|
||
0025c f3 a5 rep movsd
|
||
0025e 66 a5 movsw
|
||
00260 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00263 50 push eax
|
||
00264 8b 4d b0 mov ecx, DWORD PTR _pProcess$14[ebp]
|
||
00267 e8 00 00 00 00 call ?IOCP_GetFrameData@CProcessSocket@@QAEHPAUIOCP_IO@@U_Socket_Head@@U_Cmpp_Head@@PAEJ@Z ; CProcessSocket::IOCP_GetFrameData
|
||
0026c 89 45 ac mov DWORD PTR _bOK$13[ebp], eax
|
||
|
||
; 1390 : if ( bOK ) //<2F><><EFBFBD><EFBFBD><EFBFBD>̴߳<DFB3><CCB4><EFBFBD>
|
||
|
||
0026f 83 7d ac 00 cmp DWORD PTR _bOK$13[ebp], 0
|
||
00273 74 1c je SHORT $LN17@GetFrame
|
||
|
||
; 1391 : {
|
||
; 1392 : iGetFrame ++;
|
||
|
||
00275 8b 45 e4 mov eax, DWORD PTR _iGetFrame$20[ebp]
|
||
00278 83 c0 01 add eax, 1
|
||
0027b 89 45 e4 mov DWORD PTR _iGetFrame$20[ebp], eax
|
||
|
||
; 1393 : QueueUserWorkItem(CProcessSocket::IOCP_Process, (PVOID)pProcess, WT_EXECUTELONGFUNCTION);
|
||
|
||
0027e 6a 10 push 16 ; 00000010H
|
||
00280 8b 45 b0 mov eax, DWORD PTR _pProcess$14[ebp]
|
||
00283 50 push eax
|
||
00284 68 00 00 00 00 push OFFSET ?IOCP_Process@CProcessSocket@@SGKPAX@Z ; CProcessSocket::IOCP_Process
|
||
00289 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__QueueUserWorkItem@12
|
||
|
||
; 1394 : }
|
||
|
||
0028f eb 69 jmp SHORT $LN18@GetFrame
|
||
$LN17@GetFrame:
|
||
|
||
; 1395 : else
|
||
; 1396 : {
|
||
; 1397 : //<2F>ͷ<EFBFBD><CDB7><EFBFBD>Դ
|
||
; 1398 : pProcess->m_bUse = false;
|
||
|
||
00291 8b 45 b0 mov eax, DWORD PTR _pProcess$14[ebp]
|
||
00294 c7 40 08 00 00
|
||
00 00 mov DWORD PTR [eax+8], 0
|
||
|
||
; 1399 : pProcess->m_lRandID=0;
|
||
|
||
0029b 8b 45 b0 mov eax, DWORD PTR _pProcess$14[ebp]
|
||
0029e c7 40 0c 00 00
|
||
00 00 mov DWORD PTR [eax+12], 0
|
||
|
||
; 1400 :
|
||
; 1401 : pSql->bUse = false;
|
||
|
||
002a5 8b 45 b4 mov eax, DWORD PTR _pSql$15[ebp]
|
||
002a8 c7 00 00 00 00
|
||
00 mov DWORD PTR [eax], 0
|
||
|
||
; 1402 : pSql->lRandID = 0;
|
||
|
||
002ae 8b 45 b4 mov eax, DWORD PTR _pSql$15[ebp]
|
||
002b1 c7 40 04 00 00
|
||
00 00 mov DWORD PTR [eax+4], 0
|
||
|
||
; 1403 : //<2F><>ʱ<EFBFBD><CAB1>ɾ<EFBFBD><C9BE><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||
; 1404 : delete pProcess; //ɾ<><C9BE>new<65>Ķ<EFBFBD><C4B6><EFBFBD>
|
||
|
||
002b8 8b 45 b0 mov eax, DWORD PTR _pProcess$14[ebp]
|
||
002bb 89 85 40 ce ff
|
||
ff mov DWORD PTR $T6[ebp], eax
|
||
002c1 83 bd 40 ce ff
|
||
ff 00 cmp DWORD PTR $T6[ebp], 0
|
||
002c8 74 26 je SHORT $LN25@GetFrame
|
||
002ca 8b 8d 40 ce ff
|
||
ff mov ecx, DWORD PTR $T6[ebp]
|
||
002d0 8b 11 mov edx, DWORD PTR [ecx]
|
||
002d2 8b 02 mov eax, DWORD PTR [edx]
|
||
002d4 89 85 2c ce ff
|
||
ff mov DWORD PTR tv188[ebp], eax
|
||
002da 6a 01 push 1
|
||
002dc 8b 8d 40 ce ff
|
||
ff mov ecx, DWORD PTR $T6[ebp]
|
||
002e2 ff 95 2c ce ff
|
||
ff call DWORD PTR tv188[ebp]
|
||
002e8 89 85 28 ce ff
|
||
ff mov DWORD PTR tv189[ebp], eax
|
||
002ee eb 0a jmp SHORT $LN18@GetFrame
|
||
$LN25@GetFrame:
|
||
002f0 c7 85 28 ce ff
|
||
ff 00 00 00 00 mov DWORD PTR tv189[ebp], 0
|
||
$LN18@GetFrame:
|
||
|
||
; 1405 : }
|
||
; 1406 : }
|
||
|
||
002fa eb 0e jmp SHORT $LN16@GetFrame
|
||
$LN15@GetFrame:
|
||
|
||
; 1407 : else
|
||
; 1408 : {
|
||
; 1409 : AfxMessageBox(_T("new Process error"));
|
||
|
||
002fc 6a 00 push 0
|
||
002fe 6a 00 push 0
|
||
00300 68 00 00 00 00 push OFFSET ??_C@_1CE@CMEGDHFN@?$AAn?$AAe?$AAw?$AA?5?$AAP?$AAr?$AAo?$AAc?$AAe?$AAs?$AAs?$AA?5?$AAe?$AAr?$AAr@
|
||
00305 e8 00 00 00 00 call ?AfxMessageBox@@YGHPB_WII@Z ; AfxMessageBox
|
||
$LN16@GetFrame:
|
||
|
||
; 1410 : }
|
||
; 1411 : }
|
||
|
||
0030a e9 a3 00 00 00 jmp $LN28@GetFrame
|
||
__catch$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$0:
|
||
|
||
; 1412 : catch(...)
|
||
; 1413 : {
|
||
; 1414 : LOG_APPERROR(_T("T"));
|
||
|
||
0030f 8d 8d f8 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$11[ebp]
|
||
00315 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
0031a c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
0031e 51 push ecx
|
||
0031f 8b cc mov ecx, esp
|
||
00321 89 a5 3c ce ff
|
||
ff mov DWORD PTR $T5[ebp], esp
|
||
00327 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
0032c 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> > >
|
||
00331 89 85 2c ce ff
|
||
ff mov DWORD PTR tv194[ebp], eax
|
||
00337 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5
|
||
0033b 51 push ecx
|
||
0033c 8b cc mov ecx, esp
|
||
0033e 89 a5 38 ce ff
|
||
ff mov DWORD PTR $T4[ebp], esp
|
||
00344 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
00349 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> > >
|
||
0034e 89 85 28 ce ff
|
||
ff mov DWORD PTR tv301[ebp], eax
|
||
00354 c6 45 fc 06 mov BYTE PTR __$EHRec$[ebp+12], 6
|
||
00358 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
0035c 8d 8d f8 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$11[ebp]
|
||
00362 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
00367 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA
|
||
0036c 83 c0 4f add eax, 79 ; 0000004fH
|
||
0036f 50 push eax
|
||
00370 68 00 00 00 00 push OFFSET ??_C@_08KCCFNCFB@GetFrame@
|
||
00375 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
0037a 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
0037f 8d 8d f8 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$11[ebp]
|
||
00385 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
0038a c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
0038e 8d 8d f8 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$11[ebp]
|
||
00394 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 1415 : pSql->bUse = false; //<2F><><EFBFBD>쳣<EFBFBD><ECB3A3><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||
|
||
00399 8b 45 b4 mov eax, DWORD PTR _pSql$15[ebp]
|
||
0039c c7 00 00 00 00
|
||
00 mov DWORD PTR [eax], 0
|
||
|
||
; 1416 : pSql->lRandID = 0;
|
||
|
||
003a2 8b 45 b4 mov eax, DWORD PTR _pSql$15[ebp]
|
||
003a5 c7 40 04 00 00
|
||
00 00 mov DWORD PTR [eax+4], 0
|
||
|
||
; 1417 : }
|
||
|
||
003ac b8 00 00 00 00 mov eax, $LN39@GetFrame
|
||
003b1 c3 ret 0
|
||
$LN28@GetFrame:
|
||
003b2 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
003b9 eb 07 jmp SHORT $LN12@GetFrame
|
||
$LN39@GetFrame:
|
||
003bb c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
$LN12@GetFrame:
|
||
|
||
; 1418 : }
|
||
; 1419 : }
|
||
; 1420 : i=i+lGetLen;
|
||
|
||
003c2 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
003c5 03 45 bc add eax, DWORD PTR _lGetLen$17[ebp]
|
||
003c8 89 45 e0 mov DWORD PTR _i$19[ebp], eax
|
||
|
||
; 1421 : i=i-1;
|
||
|
||
003cb 8b 45 e0 mov eax, DWORD PTR _i$19[ebp]
|
||
003ce 83 e8 01 sub eax, 1
|
||
003d1 89 45 e0 mov DWORD PTR _i$19[ebp], eax
|
||
|
||
; 1422 : }
|
||
|
||
003d4 e9 77 fc ff ff jmp $LN2@GetFrame
|
||
$LN3@GetFrame:
|
||
|
||
; 1423 : if ( i >= lp_io->lRecvLen ) //<2F><><EFBFBD>ݸոպ<D5B8>
|
||
|
||
003d9 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
003dc 8b 4d e0 mov ecx, DWORD PTR _i$19[ebp]
|
||
003df 3b 48 2c cmp ecx, DWORD PTR [eax+44]
|
||
003e2 7c 0c jl SHORT $LN19@GetFrame
|
||
|
||
; 1424 : {
|
||
; 1425 : lp_io->lRecvLen = 0;
|
||
|
||
003e4 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
003e7 c7 40 2c 00 00
|
||
00 00 mov DWORD PTR [eax+44], 0
|
||
|
||
; 1426 : }
|
||
|
||
003ee eb 3c jmp SHORT $LN20@GetFrame
|
||
$LN19@GetFrame:
|
||
|
||
; 1427 : else
|
||
; 1428 : {
|
||
; 1429 : if ( i> 0 )
|
||
|
||
003f0 83 7d e0 00 cmp DWORD PTR _i$19[ebp], 0
|
||
003f4 7e 36 jle SHORT $LN20@GetFrame
|
||
|
||
; 1430 : {
|
||
; 1431 : //ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 1432 : lp_io->lRecvLen = lp_io->lRecvLen-i;
|
||
|
||
003f6 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
003f9 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
003fc 2b 4d e0 sub ecx, DWORD PTR _i$19[ebp]
|
||
003ff 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
00402 89 4a 2c mov DWORD PTR [edx+44], ecx
|
||
|
||
; 1433 : memcpy(lp_io->buf , lp_io->buf+i , lp_io->lRecvLen );
|
||
|
||
00405 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00408 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
0040b 51 push ecx
|
||
0040c 8b 55 e0 mov edx, DWORD PTR _i$19[ebp]
|
||
0040f 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00412 8d 8c 10 e0 01
|
||
00 00 lea ecx, DWORD PTR [eax+edx+480]
|
||
00419 51 push ecx
|
||
0041a 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
0041d 81 c2 e0 01 00
|
||
00 add edx, 480 ; 000001e0H
|
||
00423 52 push edx
|
||
00424 e8 00 00 00 00 call _memcpy
|
||
00429 83 c4 0c add esp, 12 ; 0000000cH
|
||
$LN20@GetFrame:
|
||
|
||
; 1434 : }
|
||
; 1435 : }
|
||
; 1436 :
|
||
; 1437 : return iGetFrame;
|
||
|
||
0042c 8b 45 e4 mov eax, DWORD PTR _iGetFrame$20[ebp]
|
||
0042f e9 a3 00 00 00 jmp $LN1@GetFrame
|
||
__catch$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$2:
|
||
|
||
; 1438 : }
|
||
; 1439 : catch (...)
|
||
; 1440 : {
|
||
; 1441 : LOG_APPERROR(_T("T"));
|
||
|
||
00434 8d 8d 50 d0 ff
|
||
ff lea ecx, DWORD PTR _NXlog$10[ebp]
|
||
0043a e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
0043f c6 45 fc 08 mov BYTE PTR __$EHRec$[ebp+12], 8
|
||
00443 51 push ecx
|
||
00444 8b cc mov ecx, esp
|
||
00446 89 a5 34 ce ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
0044c 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
00451 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> > >
|
||
00456 89 85 2c ce ff
|
||
ff mov DWORD PTR tv249[ebp], eax
|
||
0045c c6 45 fc 09 mov BYTE PTR __$EHRec$[ebp+12], 9
|
||
00460 51 push ecx
|
||
00461 8b cc mov ecx, esp
|
||
00463 89 a5 30 ce ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
00469 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
0046e 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> > >
|
||
00473 89 85 28 ce ff
|
||
ff mov DWORD PTR tv303[ebp], eax
|
||
00479 c6 45 fc 0a mov BYTE PTR __$EHRec$[ebp+12], 10 ; 0000000aH
|
||
0047d c6 45 fc 08 mov BYTE PTR __$EHRec$[ebp+12], 8
|
||
00481 8d 8d 50 d0 ff
|
||
ff lea ecx, DWORD PTR _NXlog$10[ebp]
|
||
00487 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
0048c a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA
|
||
00491 83 c0 6a add eax, 106 ; 0000006aH
|
||
00494 50 push eax
|
||
00495 68 00 00 00 00 push OFFSET ??_C@_08KCCFNCFB@GetFrame@
|
||
0049a 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
0049f 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
004a4 8d 8d 50 d0 ff
|
||
ff lea ecx, DWORD PTR _NXlog$10[ebp]
|
||
004aa e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
004af c6 45 fc 07 mov BYTE PTR __$EHRec$[ebp+12], 7
|
||
004b3 8d 8d 50 d0 ff
|
||
ff lea ecx, DWORD PTR _NXlog$10[ebp]
|
||
004b9 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 1442 : }
|
||
|
||
004be b8 00 00 00 00 mov eax, $LN41@GetFrame
|
||
004c3 c3 ret 0
|
||
004c4 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
004cb eb 07 jmp SHORT __tryend$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$3
|
||
$LN41@GetFrame:
|
||
004cd c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
__tryend$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$3:
|
||
|
||
; 1443 : return -1;
|
||
|
||
004d4 83 c8 ff or eax, -1
|
||
$LN1@GetFrame:
|
||
|
||
; 1444 : }
|
||
|
||
004d7 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
004da 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
004e1 59 pop ecx
|
||
004e2 5f pop edi
|
||
004e3 5e pop esi
|
||
004e4 5b pop ebx
|
||
004e5 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
004e8 33 cd xor ecx, ebp
|
||
004ea e8 00 00 00 00 call @__security_check_cookie@4
|
||
004ef 8b e5 mov esp, ebp
|
||
004f1 5d pop ebp
|
||
004f2 c2 04 00 ret 4
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$4:
|
||
00000 68 c0 12 00 00 push 4800 ; 000012c0H
|
||
00005 8b 85 44 ce ff
|
||
ff mov eax, DWORD PTR $T7[ebp]
|
||
0000b 50 push eax
|
||
0000c e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete
|
||
00011 83 c4 08 add esp, 8
|
||
00014 c3 ret 0
|
||
__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$5:
|
||
00015 8d 8d f8 e7 ff
|
||
ff lea ecx, DWORD PTR _NXlog$11[ebp]
|
||
0001b e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$6:
|
||
00020 8b 8d 3c ce ff
|
||
ff mov ecx, DWORD PTR $T5[ebp]
|
||
00026 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$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$7:
|
||
0002b 8b 8d 38 ce ff
|
||
ff mov ecx, DWORD PTR $T4[ebp]
|
||
00031 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$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$8:
|
||
00036 8d 8d 50 d0 ff
|
||
ff lea ecx, DWORD PTR _NXlog$10[ebp]
|
||
0003c e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$9:
|
||
00041 8b 8d 34 ce ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00047 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$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z$10:
|
||
0004c 8b 8d 30 ce ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
00052 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> > >
|
||
00057 cc int 3
|
||
00058 cc int 3
|
||
00059 cc int 3
|
||
0005a cc int 3
|
||
0005b cc int 3
|
||
__ehhandler$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z:
|
||
0005c 90 npad 1
|
||
0005d 90 npad 1
|
||
0005e 8b 54 24 08 mov edx, DWORD PTR [esp+8]
|
||
00062 8d 42 0c lea eax, DWORD PTR [edx+12]
|
||
00065 8b 8a 24 ce ff
|
||
ff mov ecx, DWORD PTR [edx-12764]
|
||
0006b 33 c8 xor ecx, eax
|
||
0006d e8 00 00 00 00 call @__security_check_cookie@4
|
||
00072 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
00075 33 c8 xor ecx, eax
|
||
00077 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0007c b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
00081 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?GetFrame@CIOCP@@QAEJPAUIOCP_IO@@@Z ENDP ; CIOCP::GetFrame
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
_TEXT SEGMENT
|
||
tv186 = -6632 ; size = 4
|
||
tv143 = -6628 ; size = 4
|
||
$T2 = -6624 ; size = 4
|
||
$T3 = -6620 ; size = 4
|
||
_NXlog$4 = -6104 ; size = 6056
|
||
_lGetLen$5 = -48 ; size = 4
|
||
_SHead$6 = -44 ; size = 12
|
||
_i$7 = -32 ; size = 4
|
||
_iGetFrame$8 = -28 ; size = 4
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_io$ = 8 ; size = 4
|
||
?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z PROC ; CIOCP::GetFrame_Cmpp, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1448 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 d8 19 00 00 mov eax, 6616 ; 000019d8H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 1449 : try
|
||
|
||
00039 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 1450 : {
|
||
; 1451 : int iGetFrame=0;
|
||
|
||
00040 c7 45 e4 00 00
|
||
00 00 mov DWORD PTR _iGetFrame$8[ebp], 0
|
||
|
||
; 1452 : for ( int i=0 ; i<lp_io->lRecvLen ; i++ )
|
||
|
||
00047 c7 45 e0 00 00
|
||
00 00 mov DWORD PTR _i$7[ebp], 0
|
||
0004e eb 09 jmp SHORT $LN4@GetFrame_C
|
||
$LN2@GetFrame_C:
|
||
00050 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
00053 83 c0 01 add eax, 1
|
||
00056 89 45 e0 mov DWORD PTR _i$7[ebp], eax
|
||
$LN4@GetFrame_C:
|
||
00059 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0005c 8b 4d e0 mov ecx, DWORD PTR _i$7[ebp]
|
||
0005f 3b 48 2c cmp ecx, DWORD PTR [eax+44]
|
||
00062 0f 8d c9 00 00
|
||
00 jge $LN3@GetFrame_C
|
||
|
||
; 1453 : {
|
||
; 1454 : if ( i+sizeof(Cmpp_Head) > (DWORD)lp_io->lRecvLen )
|
||
|
||
00068 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
0006b 83 c0 0c add eax, 12 ; 0000000cH
|
||
0006e 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00071 3b 41 2c cmp eax, DWORD PTR [ecx+44]
|
||
00074 76 05 jbe SHORT $LN6@GetFrame_C
|
||
|
||
; 1455 : {
|
||
; 1456 : //i--;
|
||
; 1457 : break;
|
||
|
||
00076 e9 b6 00 00 00 jmp $LN3@GetFrame_C
|
||
$LN6@GetFrame_C:
|
||
|
||
; 1458 : }
|
||
; 1459 : Cmpp_Head SHead={0};
|
||
|
||
0007b 33 c0 xor eax, eax
|
||
0007d 89 45 d4 mov DWORD PTR _SHead$6[ebp], eax
|
||
00080 89 45 d8 mov DWORD PTR _SHead$6[ebp+4], eax
|
||
00083 89 45 dc mov DWORD PTR _SHead$6[ebp+8], eax
|
||
|
||
; 1460 : memcpy(&SHead,lp_io->buf+i,sizeof(Cmpp_Head)); i=i+sizeof(Cmpp_Head);
|
||
|
||
00086 6a 0c push 12 ; 0000000cH
|
||
00088 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
0008b 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
0008e 8d 94 01 e0 01
|
||
00 00 lea edx, DWORD PTR [ecx+eax+480]
|
||
00095 52 push edx
|
||
00096 8d 45 d4 lea eax, DWORD PTR _SHead$6[ebp]
|
||
00099 50 push eax
|
||
0009a e8 00 00 00 00 call _memcpy
|
||
0009f 83 c4 0c add esp, 12 ; 0000000cH
|
||
000a2 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
000a5 83 c0 0c add eax, 12 ; 0000000cH
|
||
000a8 89 45 e0 mov DWORD PTR _i$7[ebp], eax
|
||
|
||
; 1461 : SHead.Command_Id = ntohl(SHead.Command_Id);
|
||
|
||
000ab 8b 45 d8 mov eax, DWORD PTR _SHead$6[ebp+4]
|
||
000ae 50 push eax
|
||
000af ff 15 00 00 00
|
||
00 call DWORD PTR __imp__ntohl@4
|
||
000b5 89 45 d8 mov DWORD PTR _SHead$6[ebp+4], eax
|
||
|
||
; 1462 : SHead.Sequence_Id= ntohl(SHead.Sequence_Id);
|
||
|
||
000b8 8b 45 dc mov eax, DWORD PTR _SHead$6[ebp+8]
|
||
000bb 50 push eax
|
||
000bc ff 15 00 00 00
|
||
00 call DWORD PTR __imp__ntohl@4
|
||
000c2 89 45 dc mov DWORD PTR _SHead$6[ebp+8], eax
|
||
|
||
; 1463 : SHead.Total_Length = ntohl(SHead.Total_Length);
|
||
|
||
000c5 8b 45 d4 mov eax, DWORD PTR _SHead$6[ebp]
|
||
000c8 50 push eax
|
||
000c9 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__ntohl@4
|
||
000cf 89 45 d4 mov DWORD PTR _SHead$6[ebp], eax
|
||
|
||
; 1464 : long lGetLen=SHead.Total_Length-sizeof(Cmpp_Head);
|
||
|
||
000d2 8b 45 d4 mov eax, DWORD PTR _SHead$6[ebp]
|
||
000d5 83 e8 0c sub eax, 12 ; 0000000cH
|
||
000d8 89 45 d0 mov DWORD PTR _lGetLen$5[ebp], eax
|
||
|
||
; 1465 : if ( SHead.Total_Length <=0 || SHead.Total_Length>BUFFER_SIZE ) //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>յ<EFBFBD><D5B5><EFBFBD>֡<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
000db 83 7d d4 00 cmp DWORD PTR _SHead$6[ebp], 0
|
||
000df 76 09 jbe SHORT $LN8@GetFrame_C
|
||
000e1 81 7d d4 d0 dd
|
||
06 00 cmp DWORD PTR _SHead$6[ebp], 450000 ; 0006ddd0H
|
||
000e8 76 08 jbe SHORT $LN7@GetFrame_C
|
||
$LN8@GetFrame_C:
|
||
|
||
; 1466 : {
|
||
; 1467 : return -1; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2>ԣ<EFBFBD><D4A3>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
000ea 83 c8 ff or eax, -1
|
||
000ed e9 3d 01 00 00 jmp $LN1@GetFrame_C
|
||
$LN7@GetFrame_C:
|
||
|
||
; 1468 : }
|
||
; 1469 : if ( i+lGetLen>lp_io->lRecvLen) //<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
|
||
|
||
000f2 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
000f5 03 45 d0 add eax, DWORD PTR _lGetLen$5[ebp]
|
||
000f8 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
000fb 3b 41 2c cmp eax, DWORD PTR [ecx+44]
|
||
000fe 7e 0b jle SHORT $LN9@GetFrame_C
|
||
|
||
; 1470 : {
|
||
; 1471 : i=i-sizeof(Cmpp_Head);
|
||
|
||
00100 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
00103 83 e8 0c sub eax, 12 ; 0000000cH
|
||
00106 89 45 e0 mov DWORD PTR _i$7[ebp], eax
|
||
|
||
; 1472 : //i--;
|
||
; 1473 : break;
|
||
|
||
00109 eb 26 jmp SHORT $LN3@GetFrame_C
|
||
$LN9@GetFrame_C:
|
||
|
||
; 1474 : }
|
||
; 1475 : lp_io->dwEndRecvFrame = ::GetTickCount();
|
||
|
||
0010b ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetTickCount@0
|
||
00111 8b 4d 08 mov ecx, DWORD PTR _lp_io$[ebp]
|
||
00114 89 81 d8 01 00
|
||
00 mov DWORD PTR [ecx+472], eax
|
||
|
||
; 1476 :
|
||
; 1477 : /*
|
||
; 1478 : if ( SHead.Command_Id == CMPP_ACTIVE_TEST && lp_io->m_lUserID>0 ) //ֱ<>ӻظ<D3BB>SMSFunc_Test
|
||
; 1479 : {
|
||
; 1480 : Cmpp_Active_Test_Resp * pActive = new Cmpp_Active_Test_Resp;
|
||
; 1481 : memset(pActive , 0 , sizeof(Cmpp_Active_Test_Resp));
|
||
; 1482 : CSmsCenterDlg::SendFrame_Cmpp(lp_io, CMPP_ACTIVE_TEST_RESP ,SHead.Sequence_Id, (BYTE*)pActive , sizeof(Cmpp_Active_Test_Resp) ); //<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
|
||
; 1483 : }
|
||
; 1484 : else
|
||
; 1485 : {
|
||
; 1486 : IOCP_SQL_PTR pSql = m_KeyList.GetBlank_SQL();
|
||
; 1487 : if ( pSql )
|
||
; 1488 : {
|
||
; 1489 : //CProcessSocket * pProcess = m_KeyList.GetBlank_Process();
|
||
; 1490 : CProcessSocket * pProcess = new CProcessSocket;
|
||
; 1491 : if ( pProcess )
|
||
; 1492 : {
|
||
; 1493 : BOOL bOK = true;
|
||
; 1494 :
|
||
; 1495 : pProcess->SetDlg(m_pDlg);
|
||
; 1496 : pProcess->IOCP_setSQL(pSql);
|
||
; 1497 :
|
||
; 1498 : Socket_Head head={0};
|
||
; 1499 : bOK = pProcess->IOCP_GetFrameData(lp_io , head,SHead , (BYTE*)(lp_io->buf+i) , lGetLen);
|
||
; 1500 : if ( bOK ) //<2F><><EFBFBD><EFBFBD><EFBFBD>̴߳<DFB3><CCB4><EFBFBD>
|
||
; 1501 : {
|
||
; 1502 : iGetFrame ++;
|
||
; 1503 : QueueUserWorkItem(CProcessSocket::IOCP_Process, (PVOID)pProcess, WT_EXECUTELONGFUNCTION);
|
||
; 1504 : }
|
||
; 1505 : else
|
||
; 1506 : {
|
||
; 1507 : //<2F>ͷ<EFBFBD><CDB7><EFBFBD>Դ
|
||
; 1508 : pProcess->m_bUse = false;
|
||
; 1509 : pProcess->m_lRandID=0;
|
||
; 1510 :
|
||
; 1511 : pSql->bUse = false;
|
||
; 1512 : pSql->lRandID = 0;
|
||
; 1513 : //<2F><>ʱ<EFBFBD><CAB1>ɾ<EFBFBD><C9BE><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||
; 1514 : delete pProcess; //ɾ<><C9BE>new<65>Ķ<EFBFBD><C4B6><EFBFBD>
|
||
; 1515 : }
|
||
; 1516 : }
|
||
; 1517 : }
|
||
; 1518 : }
|
||
; 1519 : */
|
||
; 1520 : i=i+lGetLen;
|
||
|
||
0011a 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
0011d 03 45 d0 add eax, DWORD PTR _lGetLen$5[ebp]
|
||
00120 89 45 e0 mov DWORD PTR _i$7[ebp], eax
|
||
|
||
; 1521 : i=i-1;
|
||
|
||
00123 8b 45 e0 mov eax, DWORD PTR _i$7[ebp]
|
||
00126 83 e8 01 sub eax, 1
|
||
00129 89 45 e0 mov DWORD PTR _i$7[ebp], eax
|
||
|
||
; 1522 : }
|
||
|
||
0012c e9 1f ff ff ff jmp $LN2@GetFrame_C
|
||
$LN3@GetFrame_C:
|
||
|
||
; 1523 : if ( i >= lp_io->lRecvLen ) //<2F><><EFBFBD>ݸոպ<D5B8>
|
||
|
||
00131 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00134 8b 4d e0 mov ecx, DWORD PTR _i$7[ebp]
|
||
00137 3b 48 2c cmp ecx, DWORD PTR [eax+44]
|
||
0013a 7c 0c jl SHORT $LN10@GetFrame_C
|
||
|
||
; 1524 : {
|
||
; 1525 : lp_io->lRecvLen = 0;
|
||
|
||
0013c 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0013f c7 40 2c 00 00
|
||
00 00 mov DWORD PTR [eax+44], 0
|
||
|
||
; 1526 : }
|
||
|
||
00146 eb 3c jmp SHORT $LN11@GetFrame_C
|
||
$LN10@GetFrame_C:
|
||
|
||
; 1527 : else
|
||
; 1528 : {
|
||
; 1529 : if ( i> 0 )
|
||
|
||
00148 83 7d e0 00 cmp DWORD PTR _i$7[ebp], 0
|
||
0014c 7e 36 jle SHORT $LN11@GetFrame_C
|
||
|
||
; 1530 : {
|
||
; 1531 : //ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 1532 : lp_io->lRecvLen = lp_io->lRecvLen-i;
|
||
|
||
0014e 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00151 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
00154 2b 4d e0 sub ecx, DWORD PTR _i$7[ebp]
|
||
00157 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
0015a 89 4a 2c mov DWORD PTR [edx+44], ecx
|
||
|
||
; 1533 : memcpy(lp_io->buf , lp_io->buf+i , lp_io->lRecvLen );
|
||
|
||
0015d 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00160 8b 48 2c mov ecx, DWORD PTR [eax+44]
|
||
00163 51 push ecx
|
||
00164 8b 55 e0 mov edx, DWORD PTR _i$7[ebp]
|
||
00167 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
0016a 8d 8c 10 e0 01
|
||
00 00 lea ecx, DWORD PTR [eax+edx+480]
|
||
00171 51 push ecx
|
||
00172 8b 55 08 mov edx, DWORD PTR _lp_io$[ebp]
|
||
00175 81 c2 e0 01 00
|
||
00 add edx, 480 ; 000001e0H
|
||
0017b 52 push edx
|
||
0017c e8 00 00 00 00 call _memcpy
|
||
00181 83 c4 0c add esp, 12 ; 0000000cH
|
||
$LN11@GetFrame_C:
|
||
|
||
; 1534 : }
|
||
; 1535 : }
|
||
; 1536 :
|
||
; 1537 : return iGetFrame;
|
||
|
||
00184 8b 45 e4 mov eax, DWORD PTR _iGetFrame$8[ebp]
|
||
00187 e9 a3 00 00 00 jmp $LN1@GetFrame_C
|
||
__catch$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$0:
|
||
|
||
; 1538 : }
|
||
; 1539 : catch (...)
|
||
; 1540 : {
|
||
; 1541 : LOG_APPERROR(_T("T"));
|
||
|
||
0018c 8d 8d 28 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00192 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
00197 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
0019b 51 push ecx
|
||
0019c 8b cc mov ecx, esp
|
||
0019e 89 a5 24 e6 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
001a4 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
001a9 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> > >
|
||
001ae 89 85 1c e6 ff
|
||
ff mov DWORD PTR tv143[ebp], eax
|
||
001b4 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
001b8 51 push ecx
|
||
001b9 8b cc mov ecx, esp
|
||
001bb 89 a5 20 e6 ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
001c1 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
001c6 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> > >
|
||
001cb 89 85 18 e6 ff
|
||
ff mov DWORD PTR tv186[ebp], eax
|
||
001d1 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
001d5 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
001d9 8d 8d 28 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
001df e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
001e4 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z@4JA
|
||
001e9 83 c0 5d add eax, 93 ; 0000005dH
|
||
001ec 50 push eax
|
||
001ed 68 00 00 00 00 push OFFSET ??_C@_0O@HLJAGLMK@GetFrame_Cmpp@
|
||
001f2 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
001f7 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
001fc 8d 8d 28 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00202 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
00207 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
0020b 8d 8d 28 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00211 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 1542 : }
|
||
|
||
00216 b8 00 00 00 00 mov eax, $LN20@GetFrame_C
|
||
0021b c3 ret 0
|
||
0021c c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
00223 eb 07 jmp SHORT __tryend$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$1
|
||
$LN20@GetFrame_C:
|
||
00225 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
__tryend$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$1:
|
||
|
||
; 1543 : return -1;
|
||
|
||
0022c 83 c8 ff or eax, -1
|
||
$LN1@GetFrame_C:
|
||
|
||
; 1544 : }
|
||
|
||
0022f 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
00232 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
00239 59 pop ecx
|
||
0023a 5f pop edi
|
||
0023b 5e pop esi
|
||
0023c 5b pop ebx
|
||
0023d 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
00240 33 cd xor ecx, ebp
|
||
00242 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00247 8b e5 mov esp, ebp
|
||
00249 5d pop ebp
|
||
0024a c2 04 00 ret 4
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$2:
|
||
00000 8d 8d 28 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00006 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$3:
|
||
0000b 8b 8d 24 e6 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00011 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$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z$4:
|
||
00016 8b 8d 20 e6 ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
0001c 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> > >
|
||
00021 cc int 3
|
||
00022 cc int 3
|
||
00023 cc int 3
|
||
00024 cc int 3
|
||
00025 cc int 3
|
||
__ehhandler$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@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 8a 14 e6 ff
|
||
ff mov ecx, DWORD PTR [edx-6636]
|
||
00035 33 c8 xor ecx, eax
|
||
00037 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0003c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0003f 33 c8 xor ecx, eax
|
||
00041 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00046 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z
|
||
0004b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?GetFrame_Cmpp@CIOCP@@QAEJPAUIOCP_IO@@@Z ENDP ; CIOCP::GetFrame_Cmpp
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?SetDlg@CIOCP@@QAEXPAVCSmsCenterDlg@@@Z
|
||
_TEXT SEGMENT
|
||
_this$ = -4 ; size = 4
|
||
_pDlg$ = 8 ; size = 4
|
||
?SetDlg@CIOCP@@QAEXPAVCSmsCenterDlg@@@Z PROC ; CIOCP::SetDlg, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1547 : {
|
||
|
||
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
|
||
|
||
; 1548 : m_pDlg = pDlg;
|
||
|
||
0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0000f 8b 4d 08 mov ecx, DWORD PTR _pDlg$[ebp]
|
||
00012 89 48 04 mov DWORD PTR [eax+4], ecx
|
||
|
||
; 1549 : }
|
||
|
||
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
|
||
?SetDlg@CIOCP@@QAEXPAVCSmsCenterDlg@@@Z ENDP ; CIOCP::SetDlg
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?Close@CIOCP@@QAEXXZ
|
||
_TEXT SEGMENT
|
||
tv207 = -6612 ; size = 4
|
||
tv164 = -6608 ; size = 4
|
||
$T2 = -6604 ; size = 4
|
||
$T3 = -6600 ; size = 4
|
||
_NXlog$4 = -6084 ; size = 6056
|
||
_i$5 = -28 ; size = 4
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
?Close@CIOCP@@QAEXXZ PROC ; CIOCP::Close, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 35 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?Close@CIOCP@@QAEXXZ
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 c4 19 00 00 mov eax, 6596 ; 000019c4H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 36 : try
|
||
|
||
00039 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 37 : {
|
||
; 38 : int i;
|
||
; 39 :
|
||
; 40 : if ( !m_bInit )
|
||
|
||
00040 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00043 83 78 3c 00 cmp DWORD PTR [eax+60], 0
|
||
00047 0f 84 38 02 00
|
||
00 je $LN1@Close
|
||
|
||
; 41 : return ;
|
||
; 42 :
|
||
; 43 : m_bQuit = true;
|
||
|
||
0004d 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00050 c7 80 e4 00 00
|
||
00 01 00 00 00 mov DWORD PTR [eax+228], 1
|
||
|
||
; 44 :
|
||
; 45 : if (m_h_MainLoop!=INVALID_HANDLE_VALUE )
|
||
|
||
0005a 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
0005d 83 b8 dc 00 00
|
||
00 ff cmp DWORD PTR [eax+220], -1
|
||
00064 74 4b je SHORT $LN7@Close
|
||
|
||
; 46 : {
|
||
; 47 : if (WaitForSingleObject(m_h_MainLoop,3000)== WAIT_TIMEOUT )
|
||
|
||
00066 68 b8 0b 00 00 push 3000 ; 00000bb8H
|
||
0006b 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
0006e 8b 88 dc 00 00
|
||
00 mov ecx, DWORD PTR [eax+220]
|
||
00074 51 push ecx
|
||
00075 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WaitForSingleObject@8
|
||
0007b 3d 02 01 00 00 cmp eax, 258 ; 00000102H
|
||
00080 75 12 jne SHORT $LN8@Close
|
||
|
||
; 48 : TerminateThread(m_h_MainLoop,0); //<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>ʱ<EFBFBD><CAB1>ǿ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||
|
||
00082 6a 00 push 0
|
||
00084 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00087 8b 88 dc 00 00
|
||
00 mov ecx, DWORD PTR [eax+220]
|
||
0008d 51 push ecx
|
||
0008e ff 15 00 00 00
|
||
00 call DWORD PTR __imp__TerminateThread@8
|
||
$LN8@Close:
|
||
|
||
; 49 : CloseHandle(m_h_MainLoop);
|
||
|
||
00094 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00097 8b 88 dc 00 00
|
||
00 mov ecx, DWORD PTR [eax+220]
|
||
0009d 51 push ecx
|
||
0009e ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 50 : m_h_MainLoop = INVALID_HANDLE_VALUE;
|
||
|
||
000a4 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000a7 c7 80 dc 00 00
|
||
00 ff ff ff ff mov DWORD PTR [eax+220], -1
|
||
$LN7@Close:
|
||
|
||
; 51 : }
|
||
; 52 :
|
||
; 53 : if (m_h_MainLoop2!=INVALID_HANDLE_VALUE )
|
||
|
||
000b1 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000b4 83 b8 e0 00 00
|
||
00 ff cmp DWORD PTR [eax+224], -1
|
||
000bb 74 4b je SHORT $LN9@Close
|
||
|
||
; 54 : {
|
||
; 55 : if ( WaitForSingleObject(m_h_MainLoop2,3000)== WAIT_TIMEOUT )
|
||
|
||
000bd 68 b8 0b 00 00 push 3000 ; 00000bb8H
|
||
000c2 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000c5 8b 88 e0 00 00
|
||
00 mov ecx, DWORD PTR [eax+224]
|
||
000cb 51 push ecx
|
||
000cc ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WaitForSingleObject@8
|
||
000d2 3d 02 01 00 00 cmp eax, 258 ; 00000102H
|
||
000d7 75 12 jne SHORT $LN10@Close
|
||
|
||
; 56 : TerminateThread(m_h_MainLoop2,0); //<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>ʱ<EFBFBD><CAB1>ǿ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||
|
||
000d9 6a 00 push 0
|
||
000db 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000de 8b 88 e0 00 00
|
||
00 mov ecx, DWORD PTR [eax+224]
|
||
000e4 51 push ecx
|
||
000e5 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__TerminateThread@8
|
||
$LN10@Close:
|
||
|
||
; 57 : CloseHandle(m_h_MainLoop2);
|
||
|
||
000eb 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000ee 8b 88 e0 00 00
|
||
00 mov ecx, DWORD PTR [eax+224]
|
||
000f4 51 push ecx
|
||
000f5 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 58 : m_h_MainLoop2 = INVALID_HANDLE_VALUE;
|
||
|
||
000fb 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
000fe c7 80 e0 00 00
|
||
00 ff ff ff ff mov DWORD PTR [eax+224], -1
|
||
$LN9@Close:
|
||
|
||
; 59 : }
|
||
; 60 :
|
||
; 61 : PostQueuedCompletionStatus( m_h_iocp, 0, 0, NULL );
|
||
|
||
00108 6a 00 push 0
|
||
0010a 6a 00 push 0
|
||
0010c 6a 00 push 0
|
||
0010e 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00111 8b 48 28 mov ecx, DWORD PTR [eax+40]
|
||
00114 51 push ecx
|
||
00115 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__PostQueuedCompletionStatus@16
|
||
|
||
; 62 : CloseHandle( m_h_iocp );
|
||
|
||
0011b 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
0011e 8b 48 28 mov ecx, DWORD PTR [eax+40]
|
||
00121 51 push ecx
|
||
00122 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 63 :
|
||
; 64 : for( i = 0; i < m_n_thread_count; i++ )
|
||
|
||
00128 c7 45 e4 00 00
|
||
00 00 mov DWORD PTR _i$5[ebp], 0
|
||
0012f eb 09 jmp SHORT $LN4@Close
|
||
$LN2@Close:
|
||
00131 8b 45 e4 mov eax, DWORD PTR _i$5[ebp]
|
||
00134 83 c0 01 add eax, 1
|
||
00137 89 45 e4 mov DWORD PTR _i$5[ebp], eax
|
||
$LN4@Close:
|
||
0013a 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
0013d 8b 4d e4 mov ecx, DWORD PTR _i$5[ebp]
|
||
00140 3b 88 90 00 00
|
||
00 cmp ecx, DWORD PTR [eax+144]
|
||
00146 7d 70 jge SHORT $LN3@Close
|
||
|
||
; 65 : {
|
||
; 66 : if (m_h_thread[i]!=INVALID_HANDLE_VALUE )
|
||
|
||
00148 8b 45 e4 mov eax, DWORD PTR _i$5[ebp]
|
||
0014b 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
0014e 83 bc 81 94 00
|
||
00 00 ff cmp DWORD PTR [ecx+eax*4+148], -1
|
||
00156 74 5b je SHORT $LN11@Close
|
||
|
||
; 67 : {
|
||
; 68 : if ( WaitForSingleObject(m_h_thread[i],1000)== WAIT_TIMEOUT )
|
||
|
||
00158 68 e8 03 00 00 push 1000 ; 000003e8H
|
||
0015d 8b 45 e4 mov eax, DWORD PTR _i$5[ebp]
|
||
00160 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
00163 8b 94 81 94 00
|
||
00 00 mov edx, DWORD PTR [ecx+eax*4+148]
|
||
0016a 52 push edx
|
||
0016b ff 15 00 00 00
|
||
00 call DWORD PTR __imp__WaitForSingleObject@8
|
||
00171 3d 02 01 00 00 cmp eax, 258 ; 00000102H
|
||
00176 75 16 jne SHORT $LN12@Close
|
||
|
||
; 69 : TerminateThread(m_h_thread[i],0); //<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>ʱ<EFBFBD><CAB1>ǿ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||
|
||
00178 6a 00 push 0
|
||
0017a 8b 45 e4 mov eax, DWORD PTR _i$5[ebp]
|
||
0017d 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
00180 8b 94 81 94 00
|
||
00 00 mov edx, DWORD PTR [ecx+eax*4+148]
|
||
00187 52 push edx
|
||
00188 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__TerminateThread@8
|
||
$LN12@Close:
|
||
|
||
; 70 : CloseHandle( m_h_thread[i] );
|
||
|
||
0018e 8b 45 e4 mov eax, DWORD PTR _i$5[ebp]
|
||
00191 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
00194 8b 94 81 94 00
|
||
00 00 mov edx, DWORD PTR [ecx+eax*4+148]
|
||
0019b 52 push edx
|
||
0019c ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CloseHandle@4
|
||
|
||
; 71 : m_h_thread[i] = INVALID_HANDLE_VALUE;
|
||
|
||
001a2 8b 45 e4 mov eax, DWORD PTR _i$5[ebp]
|
||
001a5 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
001a8 c7 84 81 94 00
|
||
00 00 ff ff ff
|
||
ff mov DWORD PTR [ecx+eax*4+148], -1
|
||
$LN11@Close:
|
||
|
||
; 72 : }
|
||
; 73 : }
|
||
|
||
001b3 e9 79 ff ff ff jmp $LN2@Close
|
||
$LN3@Close:
|
||
|
||
; 74 : Sleep(200); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>
|
||
|
||
001b8 68 c8 00 00 00 push 200 ; 000000c8H
|
||
001bd ff 15 00 00 00
|
||
00 call DWORD PTR __imp__Sleep@4
|
||
|
||
; 75 : m_KeyList.Close();
|
||
|
||
001c3 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
001c6 83 c1 08 add ecx, 8
|
||
001c9 e8 00 00 00 00 call ?Close@CKeyList@@QAEXXZ ; CKeyList::Close
|
||
|
||
; 76 : CloseMainSocket();
|
||
|
||
001ce 8b 4d e8 mov ecx, DWORD PTR _this$[ebp]
|
||
001d1 e8 00 00 00 00 call ?CloseMainSocket@CIOCP@@QAEXXZ ; CIOCP::CloseMainSocket
|
||
|
||
; 77 : m_bInit = false;
|
||
|
||
001d6 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
001d9 c7 40 3c 00 00
|
||
00 00 mov DWORD PTR [eax+60], 0
|
||
|
||
; 78 : }
|
||
|
||
001e0 e9 90 00 00 00 jmp $LN14@Close
|
||
__catch$?Close@CIOCP@@QAEXXZ$0:
|
||
|
||
; 79 : catch (...)
|
||
; 80 : {
|
||
; 81 : LOG_APPERROR(_T("T"));
|
||
|
||
001e5 8d 8d 3c e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
001eb e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
001f0 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
001f4 51 push ecx
|
||
001f5 8b cc mov ecx, esp
|
||
001f7 89 a5 38 e6 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
001fd 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
00202 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> > >
|
||
00207 89 85 30 e6 ff
|
||
ff mov DWORD PTR tv164[ebp], eax
|
||
0020d c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
00211 51 push ecx
|
||
00212 8b cc mov ecx, esp
|
||
00214 89 a5 34 e6 ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
0021a 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
0021f 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> > >
|
||
00224 89 85 2c e6 ff
|
||
ff mov DWORD PTR tv207[ebp], eax
|
||
0022a c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
0022e c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
00232 8d 8d 3c e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00238 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
0023d a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??Close@CIOCP@@QAEXXZ@4JA
|
||
00242 83 c0 2e add eax, 46 ; 0000002eH
|
||
00245 50 push eax
|
||
00246 68 00 00 00 00 push OFFSET ??_C@_05LGELBCGM@Close@
|
||
0024b 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
00250 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
00255 8d 8d 3c e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
0025b e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
00260 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
00264 8d 8d 3c e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
0026a e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 82 : }
|
||
|
||
0026f b8 00 00 00 00 mov eax, $LN20@Close
|
||
00274 c3 ret 0
|
||
$LN14@Close:
|
||
00275 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
0027c eb 07 jmp SHORT $LN1@Close
|
||
$LN20@Close:
|
||
0027e c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
$LN1@Close:
|
||
|
||
; 83 : }
|
||
|
||
00285 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
00288 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
0028f 59 pop ecx
|
||
00290 5f pop edi
|
||
00291 5e pop esi
|
||
00292 5b pop ebx
|
||
00293 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
00296 33 cd xor ecx, ebp
|
||
00298 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0029d 8b e5 mov esp, ebp
|
||
0029f 5d pop ebp
|
||
002a0 c3 ret 0
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?Close@CIOCP@@QAEXXZ$2:
|
||
00000 8d 8d 3c e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00006 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?Close@CIOCP@@QAEXXZ$3:
|
||
0000b 8b 8d 38 e6 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00011 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$?Close@CIOCP@@QAEXXZ$4:
|
||
00016 8b 8d 34 e6 ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
0001c 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> > >
|
||
00021 cc int 3
|
||
00022 cc int 3
|
||
00023 cc int 3
|
||
00024 cc int 3
|
||
00025 cc int 3
|
||
__ehhandler$?Close@CIOCP@@QAEXXZ:
|
||
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 8a 28 e6 ff
|
||
ff mov ecx, DWORD PTR [edx-6616]
|
||
00035 33 c8 xor ecx, eax
|
||
00037 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0003c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0003f 33 c8 xor ecx, eax
|
||
00041 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00046 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?Close@CIOCP@@QAEXXZ
|
||
0004b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?Close@CIOCP@@QAEXXZ ENDP ; CIOCP::Close
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?InitIoContext_Send@CIOCP@@QAEXPAUIOCP_IO_SEND@@@Z
|
||
_TEXT SEGMENT
|
||
_this$ = -4 ; size = 4
|
||
_lp_io$ = 8 ; size = 4
|
||
?InitIoContext_Send@CIOCP@@QAEXPAUIOCP_IO_SEND@@@Z PROC ; CIOCP::InitIoContext_Send, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1552 : {
|
||
|
||
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
|
||
|
||
; 1553 : memset( &lp_io->ol, 0, sizeof( WSAOVERLAPPED ) );
|
||
|
||
0000c 6a 14 push 20 ; 00000014H
|
||
0000e 6a 00 push 0
|
||
00010 8b 45 08 mov eax, DWORD PTR _lp_io$[ebp]
|
||
00013 50 push eax
|
||
00014 e8 00 00 00 00 call _memset
|
||
00019 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 1554 : }
|
||
|
||
0001c 5f pop edi
|
||
0001d 5e pop esi
|
||
0001e 5b pop ebx
|
||
0001f 8b e5 mov esp, ebp
|
||
00021 5d pop ebp
|
||
00022 c2 04 00 ret 4
|
||
?InitIoContext_Send@CIOCP@@QAEXPAUIOCP_IO_SEND@@@Z ENDP ; CIOCP::InitIoContext_Send
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?CheckForInvalidConnection@CIOCP@@QAEXXZ
|
||
_TEXT SEGMENT
|
||
tv249 = -7132 ; size = 4
|
||
tv206 = -7128 ; size = 4
|
||
tv200 = -7128 ; size = 4
|
||
tv150 = -7128 ; size = 4
|
||
$T2 = -7124 ; size = 4
|
||
$T3 = -7120 ; size = 4
|
||
_NXlog$4 = -6604 ; size = 6056
|
||
_i$5 = -548 ; size = 4
|
||
_lp_io$6 = -544 ; size = 4
|
||
_dwNow$7 = -540 ; size = 4
|
||
_szMsg$8 = -536 ; size = 512
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
?CheckForInvalidConnection@CIOCP@@QAEXXZ PROC ; CIOCP::CheckForInvalidConnection, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 619 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?CheckForInvalidConnection@CIOCP@@QAEXXZ
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 cc 1b 00 00 mov eax, 7116 ; 00001bccH
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 620 : try
|
||
|
||
00039 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 621 : {
|
||
; 622 : TCHAR szMsg[256]={0};
|
||
|
||
00040 68 00 02 00 00 push 512 ; 00000200H
|
||
00045 6a 00 push 0
|
||
00047 8d 85 e8 fd ff
|
||
ff lea eax, DWORD PTR _szMsg$8[ebp]
|
||
0004d 50 push eax
|
||
0004e e8 00 00 00 00 call _memset
|
||
00053 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 623 : DWORD dwNow = ::GetTickCount();
|
||
|
||
00056 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetTickCount@0
|
||
0005c 89 85 e4 fd ff
|
||
ff mov DWORD PTR _dwNow$7[ebp], eax
|
||
|
||
; 624 :
|
||
; 625 : IOCP_IO_PTR lp_io = m_KeyList.m_IO;
|
||
|
||
00062 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00065 8b 48 14 mov ecx, DWORD PTR [eax+20]
|
||
00068 89 8d e0 fd ff
|
||
ff mov DWORD PTR _lp_io$6[ebp], ecx
|
||
|
||
; 626 : if ( !lp_io )
|
||
|
||
0006e 83 bd e0 fd ff
|
||
ff 00 cmp DWORD PTR _lp_io$6[ebp], 0
|
||
00075 0f 84 62 03 00
|
||
00 je $LN1@CheckForIn
|
||
|
||
; 627 : return ;
|
||
; 628 : for ( int i=0 ; i< MAX_LOGINUSER ; i++ )
|
||
|
||
0007b c7 85 dc fd ff
|
||
ff 00 00 00 00 mov DWORD PTR _i$5[ebp], 0
|
||
00085 eb 0f jmp SHORT $LN4@CheckForIn
|
||
$LN2@CheckForIn:
|
||
00087 8b 85 dc fd ff
|
||
ff mov eax, DWORD PTR _i$5[ebp]
|
||
0008d 83 c0 01 add eax, 1
|
||
00090 89 85 dc fd ff
|
||
ff mov DWORD PTR _i$5[ebp], eax
|
||
$LN4@CheckForIn:
|
||
00096 81 bd dc fd ff
|
||
ff e8 03 00 00 cmp DWORD PTR _i$5[ebp], 1000 ; 000003e8H
|
||
000a0 0f 8d 92 02 00
|
||
00 jge $LN3@CheckForIn
|
||
|
||
; 629 : {
|
||
; 630 : if ( lp_io[i].socket != NULL && lp_io[i].socket!=INVALID_SOCKET && lp_io[i].lRandID>0 )
|
||
|
||
000a6 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
000b0 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
000b6 83 7c 01 14 00 cmp DWORD PTR [ecx+eax+20], 0
|
||
000bb 0f 84 72 02 00
|
||
00 je $LN7@CheckForIn
|
||
000c1 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
000cb 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
000d1 83 7c 01 14 ff cmp DWORD PTR [ecx+eax+20], -1
|
||
000d6 0f 84 57 02 00
|
||
00 je $LN7@CheckForIn
|
||
000dc 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
000e6 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
000ec 83 7c 01 20 00 cmp DWORD PTR [ecx+eax+32], 0
|
||
000f1 0f 8e 3c 02 00
|
||
00 jle $LN7@CheckForIn
|
||
|
||
; 631 : {
|
||
; 632 : if (lp_io[i].dwAcceptTime>0 && lp_io[i].state != SOCKET_STATE_CONNECT_AND_READ )
|
||
|
||
000f7 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00101 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00107 83 bc 01 d4 01
|
||
00 00 00 cmp DWORD PTR [ecx+eax+468], 0
|
||
0010f 0f 86 d2 00 00
|
||
00 jbe $LN8@CheckForIn
|
||
00115 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
0011f 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00125 83 7c 01 1c 02 cmp DWORD PTR [ecx+eax+28], 2
|
||
0012a 0f 84 b7 00 00
|
||
00 je $LN8@CheckForIn
|
||
|
||
; 633 : {
|
||
; 634 : /*
|
||
; 635 : op_len = sizeof(op);
|
||
; 636 : nRet = getsockopt( lp_io[i].socket, SOL_SOCKET, SO_CONNECT_TIME, (char*)&op, &op_len );
|
||
; 637 : if( SOCKET_ERROR == nRet )
|
||
; 638 : {
|
||
; 639 : continue;
|
||
; 640 : }
|
||
; 641 : if( op != 0xffffffff && op > 3 ) //3<><33><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>ʱ
|
||
; 642 : {
|
||
; 643 : sprintf(szMsg , "[%d]%s:%d <20><><EFBFBD>ӳ<EFBFBD>ʱ<EFBFBD><CAB1>" , lp_io[i].m_lLocalPort,lp_io[i].m_szIP,lp_io[i].m_lPort);
|
||
; 644 : m_pDlg->AddLog(szMsg);
|
||
; 645 : closesocket( lp_io[i].socket );
|
||
; 646 : }
|
||
; 647 : */
|
||
; 648 : if ( dwNow - lp_io[i].dwAcceptTime >5000 ) //10<31><30><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>ʱ
|
||
|
||
00130 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
0013a 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00140 8b 95 e4 fd ff
|
||
ff mov edx, DWORD PTR _dwNow$7[ebp]
|
||
00146 2b 94 01 d4 01
|
||
00 00 sub edx, DWORD PTR [ecx+eax+468]
|
||
0014d 81 fa 88 13 00
|
||
00 cmp edx, 5000 ; 00001388H
|
||
00153 0f 86 8e 00 00
|
||
00 jbe $LN8@CheckForIn
|
||
|
||
; 649 : {
|
||
; 650 : _stprintf(szMsg , _T("[%d]%s:%d <20><><EFBFBD>ӳ<EFBFBD>ʱ<EFBFBD><CAB1>") , lp_io[i].m_lLocalPort,lp_io[i].m_szIP,lp_io[i].m_lPort);
|
||
|
||
00159 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00163 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00169 8b 54 01 70 mov edx, DWORD PTR [ecx+eax+112]
|
||
0016d 52 push edx
|
||
0016e 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00178 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
0017e 8d 54 01 30 lea edx, DWORD PTR [ecx+eax+48]
|
||
00182 52 push edx
|
||
00183 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
0018d 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00193 8b 54 01 74 mov edx, DWORD PTR [ecx+eax+116]
|
||
00197 52 push edx
|
||
00198 68 00 00 00 00 push OFFSET ??_C@_1CA@MOMGAHJI@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$NO?$PP?$KF?$PP?$IF?$PP?v?$AA?$AB@
|
||
0019d 8d 85 e8 fd ff
|
||
ff lea eax, DWORD PTR _szMsg$8[ebp]
|
||
001a3 50 push eax
|
||
001a4 e8 00 00 00 00 call __swprintf
|
||
001a9 83 c4 14 add esp, 20 ; 00000014H
|
||
|
||
; 651 : m_pDlg->AddLog(szMsg);
|
||
|
||
001ac 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
001af 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
001b2 89 8d 28 e4 ff
|
||
ff mov DWORD PTR tv150[ebp], ecx
|
||
001b8 6a 00 push 0
|
||
001ba 8d 95 e8 fd ff
|
||
ff lea edx, DWORD PTR _szMsg$8[ebp]
|
||
001c0 52 push edx
|
||
001c1 8b 8d 28 e4 ff
|
||
ff mov ecx, DWORD PTR tv150[ebp]
|
||
001c7 e8 00 00 00 00 call ?AddLog@CSmsCenterDlg@@QAEXPB_WJ@Z ; CSmsCenterDlg::AddLog
|
||
|
||
; 652 : closesocket( lp_io[i].socket );
|
||
|
||
001cc 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
001d6 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
001dc 8b 54 01 14 mov edx, DWORD PTR [ecx+eax+20]
|
||
001e0 52 push edx
|
||
001e1 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
$LN8@CheckForIn:
|
||
|
||
; 653 : }
|
||
; 654 : }
|
||
; 655 : if ( lp_io[i].state == SOCKET_STATE_CONNECT_AND_READ )
|
||
|
||
001e7 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
001f1 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
001f7 83 7c 01 1c 02 cmp DWORD PTR [ecx+eax+28], 2
|
||
001fc 0f 85 31 01 00
|
||
00 jne $LN7@CheckForIn
|
||
|
||
; 656 : {
|
||
; 657 : if ( lp_io[i].dwEndRecvFrame>0 )
|
||
|
||
00202 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
0020c 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00212 83 bc 01 d8 01
|
||
00 00 00 cmp DWORD PTR [ecx+eax+472], 0
|
||
0021a 76 60 jbe SHORT $LN11@CheckForIn
|
||
|
||
; 658 : {
|
||
; 659 : if ( dwNow - lp_io[i].dwEndRecvFrame > RECVREFRESH_TIMEOUT )
|
||
|
||
0021c 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00226 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
0022c 8b 95 e4 fd ff
|
||
ff mov edx, DWORD PTR _dwNow$7[ebp]
|
||
00232 2b 94 01 d8 01
|
||
00 00 sub edx, DWORD PTR [ecx+eax+472]
|
||
00239 81 fa c0 d4 01
|
||
00 cmp edx, 120000 ; 0001d4c0H
|
||
0023f 76 36 jbe SHORT $LN13@CheckForIn
|
||
|
||
; 660 : {
|
||
; 661 : lp_io[i].m_lID = 199992; //<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>ı<EFBFBD>־
|
||
|
||
00241 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
0024b 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00251 c7 84 01 c8 01
|
||
00 00 38 0d 03
|
||
00 mov DWORD PTR [ecx+eax+456], 199992 ; 00030d38H
|
||
|
||
; 662 : closesocket( lp_io[i].socket );
|
||
|
||
0025c 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00266 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
0026c 8b 54 01 14 mov edx, DWORD PTR [ecx+eax+20]
|
||
00270 52 push edx
|
||
00271 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
$LN13@CheckForIn:
|
||
|
||
; 663 :
|
||
; 664 : }
|
||
; 665 : }
|
||
|
||
00277 e9 b7 00 00 00 jmp $LN7@CheckForIn
|
||
$LN11@CheckForIn:
|
||
|
||
; 666 : else
|
||
; 667 : {
|
||
; 668 : if ( dwNow - lp_io[i].dwAcceptTime > 40000 ) //30<33><30>û<EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ȷ<EFBFBD>İ<EFBFBD><C4B0>ͳ<EFBFBD>ʱ
|
||
|
||
0027c 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00286 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
0028c 8b 95 e4 fd ff
|
||
ff mov edx, DWORD PTR _dwNow$7[ebp]
|
||
00292 2b 94 01 d4 01
|
||
00 00 sub edx, DWORD PTR [ecx+eax+468]
|
||
00299 81 fa 40 9c 00
|
||
00 cmp edx, 40000 ; 00009c40H
|
||
0029f 0f 86 8e 00 00
|
||
00 jbe $LN7@CheckForIn
|
||
|
||
; 669 : {
|
||
; 670 : _stprintf(szMsg , _T("[%d]%s:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>ʱ<EFBFBD><CAB1>") , lp_io[i].m_lLocalPort,lp_io[i].m_szIP,lp_io[i].m_lPort);
|
||
|
||
002a5 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
002af 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
002b5 8b 54 01 70 mov edx, DWORD PTR [ecx+eax+112]
|
||
002b9 52 push edx
|
||
002ba 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
002c4 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
002ca 8d 54 01 30 lea edx, DWORD PTR [ecx+eax+48]
|
||
002ce 52 push edx
|
||
002cf 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
002d9 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
002df 8b 54 01 74 mov edx, DWORD PTR [ecx+eax+116]
|
||
002e3 52 push edx
|
||
002e4 68 00 00 00 00 push OFFSET ??_C@_1CE@LBHGJMMD@?$AA?$FL?$AA?$CF?$AAd?$AA?$FN?$AA?$CF?$AAs?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$KF?$AA6?$AAp?$AAn?$PP?$IF@
|
||
002e9 8d 85 e8 fd ff
|
||
ff lea eax, DWORD PTR _szMsg$8[ebp]
|
||
002ef 50 push eax
|
||
002f0 e8 00 00 00 00 call __swprintf
|
||
002f5 83 c4 14 add esp, 20 ; 00000014H
|
||
|
||
; 671 : m_pDlg->AddLog(szMsg);
|
||
|
||
002f8 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
002fb 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
002fe 89 8d 28 e4 ff
|
||
ff mov DWORD PTR tv200[ebp], ecx
|
||
00304 6a 00 push 0
|
||
00306 8d 95 e8 fd ff
|
||
ff lea edx, DWORD PTR _szMsg$8[ebp]
|
||
0030c 52 push edx
|
||
0030d 8b 8d 28 e4 ff
|
||
ff mov ecx, DWORD PTR tv200[ebp]
|
||
00313 e8 00 00 00 00 call ?AddLog@CSmsCenterDlg@@QAEXPB_WJ@Z ; CSmsCenterDlg::AddLog
|
||
|
||
; 672 : closesocket( lp_io[i].socket );
|
||
|
||
00318 69 85 dc fd ff
|
||
ff b0 df 06 00 imul eax, DWORD PTR _i$5[ebp], 450480
|
||
00322 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _lp_io$6[ebp]
|
||
00328 8b 54 01 14 mov edx, DWORD PTR [ecx+eax+20]
|
||
0032c 52 push edx
|
||
0032d ff 15 00 00 00
|
||
00 call DWORD PTR __imp__closesocket@4
|
||
$LN7@CheckForIn:
|
||
|
||
; 673 : }
|
||
; 674 : }
|
||
; 675 : }
|
||
; 676 : }
|
||
; 677 : }
|
||
|
||
00333 e9 4f fd ff ff jmp $LN2@CheckForIn
|
||
$LN3@CheckForIn:
|
||
|
||
; 678 : }
|
||
|
||
00338 e9 90 00 00 00 jmp $LN16@CheckForIn
|
||
__catch$?CheckForInvalidConnection@CIOCP@@QAEXXZ$0:
|
||
|
||
; 679 : catch (...)
|
||
; 680 : {
|
||
; 681 : LOG_APPERROR(_T("T"));
|
||
|
||
0033d 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00343 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
00348 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
0034c 51 push ecx
|
||
0034d 8b cc mov ecx, esp
|
||
0034f 89 a5 30 e4 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
00355 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
0035a 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> > >
|
||
0035f 89 85 28 e4 ff
|
||
ff mov DWORD PTR tv206[ebp], eax
|
||
00365 c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
00369 51 push ecx
|
||
0036a 8b cc mov ecx, esp
|
||
0036c 89 a5 2c e4 ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
00372 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
00377 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> > >
|
||
0037c 89 85 24 e4 ff
|
||
ff mov DWORD PTR tv249[ebp], eax
|
||
00382 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
00386 c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
0038a 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00390 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
00395 a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??CheckForInvalidConnection@CIOCP@@QAEXXZ@4JA
|
||
0039a 83 c0 3e add eax, 62 ; 0000003eH
|
||
0039d 50 push eax
|
||
0039e 68 00 00 00 00 push OFFSET ??_C@_0BK@HCEPDKA@CheckForInvalidConnection@
|
||
003a3 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
003a8 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
003ad 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
003b3 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
003b8 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
003bc 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
003c2 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 682 : }
|
||
|
||
003c7 b8 00 00 00 00 mov eax, $LN22@CheckForIn
|
||
003cc c3 ret 0
|
||
$LN16@CheckForIn:
|
||
003cd c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
003d4 eb 07 jmp SHORT $LN1@CheckForIn
|
||
$LN22@CheckForIn:
|
||
003d6 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
$LN1@CheckForIn:
|
||
|
||
; 683 : }
|
||
|
||
003dd 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
003e0 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
003e7 59 pop ecx
|
||
003e8 5f pop edi
|
||
003e9 5e pop esi
|
||
003ea 5b pop ebx
|
||
003eb 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
003ee 33 cd xor ecx, ebp
|
||
003f0 e8 00 00 00 00 call @__security_check_cookie@4
|
||
003f5 8b e5 mov esp, ebp
|
||
003f7 5d pop ebp
|
||
003f8 c3 ret 0
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?CheckForInvalidConnection@CIOCP@@QAEXXZ$2:
|
||
00000 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00006 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?CheckForInvalidConnection@CIOCP@@QAEXXZ$3:
|
||
0000b 8b 8d 30 e4 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00011 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$?CheckForInvalidConnection@CIOCP@@QAEXXZ$4:
|
||
00016 8b 8d 2c e4 ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
0001c 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> > >
|
||
00021 cc int 3
|
||
00022 cc int 3
|
||
00023 cc int 3
|
||
00024 cc int 3
|
||
00025 cc int 3
|
||
__ehhandler$?CheckForInvalidConnection@CIOCP@@QAEXXZ:
|
||
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 8a 20 e4 ff
|
||
ff mov ecx, DWORD PTR [edx-7136]
|
||
00035 33 c8 xor ecx, eax
|
||
00037 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0003c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0003f 33 c8 xor ecx, eax
|
||
00041 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00046 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?CheckForInvalidConnection@CIOCP@@QAEXXZ
|
||
0004b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?CheckForInvalidConnection@CIOCP@@QAEXXZ ENDP ; CIOCP::CheckForInvalidConnection
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ
|
||
_TEXT SEGMENT
|
||
tv211 = -7132 ; size = 4
|
||
tv168 = -7128 ; size = 4
|
||
tv166 = -7128 ; size = 4
|
||
tv142 = -7128 ; size = 4
|
||
$T2 = -7124 ; size = 4
|
||
$T3 = -7120 ; size = 4
|
||
_NXlog$4 = -6604 ; size = 6056
|
||
_i$5 = -548 ; size = 4
|
||
_pSql$6 = -544 ; size = 4
|
||
_dwNow$7 = -540 ; size = 4
|
||
_szMsg$8 = -536 ; size = 512
|
||
_this$ = -24 ; size = 4
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ PROC ; CIOCP::CheckForInvalidSQLConnection, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 1557 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 cc 1b 00 00 mov eax, 7116 ; 00001bccH
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
00036 89 4d e8 mov DWORD PTR _this$[ebp], ecx
|
||
|
||
; 1558 : try
|
||
|
||
00039 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 1559 : {
|
||
; 1560 : TCHAR szMsg[256]={0};
|
||
|
||
00040 68 00 02 00 00 push 512 ; 00000200H
|
||
00045 6a 00 push 0
|
||
00047 8d 85 e8 fd ff
|
||
ff lea eax, DWORD PTR _szMsg$8[ebp]
|
||
0004d 50 push eax
|
||
0004e e8 00 00 00 00 call _memset
|
||
00053 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 1561 : DWORD dwNow = ::GetTickCount();
|
||
|
||
00056 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__GetTickCount@0
|
||
0005c 89 85 e4 fd ff
|
||
ff mov DWORD PTR _dwNow$7[ebp], eax
|
||
|
||
; 1562 : /*
|
||
; 1563 : LPVOID * lpProcess = m_KeyList.m_Process;
|
||
; 1564 : if ( lpProcess )
|
||
; 1565 : {
|
||
; 1566 : for ( int i=0 ; i<MAX_SQLCONNECT; i++ )
|
||
; 1567 : {
|
||
; 1568 : CProcessSocket * pSocket = (CProcessSocket *)lpProcess[i];
|
||
; 1569 : if ( pSocket && pSocket->m_adoConnection.IsOpen() )
|
||
; 1570 : {
|
||
; 1571 : if ( pSocket->m_bUse && pSocket->m_lRandID>0 ) //<2F><>ʹ<EFBFBD><CAB9><EFBFBD>е<EFBFBD>SQL,40<34><30><EFBFBD>ӳ<EFBFBD>ʱ
|
||
; 1572 : {
|
||
; 1573 : if ( dwNow - pSocket->m_dwEndUse > SQL_TIMEOUT_USE )
|
||
; 1574 : {
|
||
; 1575 : pSocket->m_AdoRS.Close();
|
||
; 1576 : pSocket->m_AdoRS2.Close();
|
||
; 1577 : pSocket->m_adoConnection.Close();
|
||
; 1578 : pSocket->m_bUse = false;
|
||
; 1579 : pSocket->m_lRandID = 0;
|
||
; 1580 :
|
||
; 1581 : sprintf(szMsg, "SQL:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , i );
|
||
; 1582 : m_pDlg->AddLog(szMsg);
|
||
; 1583 : }
|
||
; 1584 : }
|
||
; 1585 : else
|
||
; 1586 : {
|
||
; 1587 : //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>е<EFBFBD>SQL,20<32><30><EFBFBD>ӳ<EFBFBD>ʱ
|
||
; 1588 : if ( dwNow - pSocket->m_dwEndUse > SQL_TIMEOUT_DISUSE )
|
||
; 1589 : {
|
||
; 1590 : pSocket->m_AdoRS.Close();
|
||
; 1591 : pSocket->m_AdoRS2.Close();
|
||
; 1592 : pSocket->m_adoConnection.Close();
|
||
; 1593 : pSocket->m_bUse = false;
|
||
; 1594 : pSocket->m_lRandID = 0;
|
||
; 1595 :
|
||
; 1596 : sprintf(szMsg, "SQL:%d <20><>ʱδʹ<CEB4>ã<EFBFBD><C3A3>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , i );
|
||
; 1597 : m_pDlg->AddLog(szMsg);
|
||
; 1598 : }
|
||
; 1599 : }
|
||
; 1600 : }
|
||
; 1601 : }
|
||
; 1602 : }
|
||
; 1603 : */
|
||
; 1604 : IOCP_SQL_PTR pSql = m_KeyList.m_SQL;
|
||
|
||
00062 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
00065 8b 48 1c mov ecx, DWORD PTR [eax+28]
|
||
00068 89 8d e0 fd ff
|
||
ff mov DWORD PTR _pSql$6[ebp], ecx
|
||
|
||
; 1605 : if ( pSql )
|
||
|
||
0006e 83 bd e0 fd ff
|
||
ff 00 cmp DWORD PTR _pSql$6[ebp], 0
|
||
00075 0f 84 b4 01 00
|
||
00 je $LN6@CheckForIn
|
||
|
||
; 1606 : {
|
||
; 1607 : for ( int i=0 ; i<MAX_SQLCONNECT; i++ )
|
||
|
||
0007b c7 85 dc fd ff
|
||
ff 00 00 00 00 mov DWORD PTR _i$5[ebp], 0
|
||
00085 eb 0f jmp SHORT $LN4@CheckForIn
|
||
$LN2@CheckForIn:
|
||
00087 8b 85 dc fd ff
|
||
ff mov eax, DWORD PTR _i$5[ebp]
|
||
0008d 83 c0 01 add eax, 1
|
||
00090 89 85 dc fd ff
|
||
ff mov DWORD PTR _i$5[ebp], eax
|
||
$LN4@CheckForIn:
|
||
00096 81 bd dc fd ff
|
||
ff 96 00 00 00 cmp DWORD PTR _i$5[ebp], 150 ; 00000096H
|
||
000a0 0f 8d 89 01 00
|
||
00 jge $LN6@CheckForIn
|
||
|
||
; 1608 : {
|
||
; 1609 : if ( pSql[i].adoConnection.IsOpen() )
|
||
|
||
000a6 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
000ad 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
000b3 8d 4c 01 08 lea ecx, DWORD PTR [ecx+eax+8]
|
||
000b7 e8 00 00 00 00 call ?IsOpen@CAdoConnection@@QAEHXZ ; CAdoConnection::IsOpen
|
||
000bc 85 c0 test eax, eax
|
||
000be 0f 84 66 01 00
|
||
00 je $LN7@CheckForIn
|
||
|
||
; 1610 : {
|
||
; 1611 : if ( pSql[i].bUse && pSql[i].lRandID>0 ) //<2F><>ʹ<EFBFBD><CAB9><EFBFBD>е<EFBFBD>SQL,40<34><30><EFBFBD>ӳ<EFBFBD>ʱ
|
||
|
||
000c4 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
000cb 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
000d1 83 3c 01 00 cmp DWORD PTR [ecx+eax], 0
|
||
000d5 0f 84 b6 00 00
|
||
00 je $LN8@CheckForIn
|
||
000db 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
000e2 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
000e8 83 7c 01 04 00 cmp DWORD PTR [ecx+eax+4], 0
|
||
000ed 0f 8e 9e 00 00
|
||
00 jle $LN8@CheckForIn
|
||
|
||
; 1612 : {
|
||
; 1613 : if ( dwNow - pSql[i].dwEndUse > SQL_TIMEOUT_USE )
|
||
|
||
000f3 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
000fa 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
00100 8b 95 e4 fd ff
|
||
ff mov edx, DWORD PTR _dwNow$7[ebp]
|
||
00106 2b 54 01 28 sub edx, DWORD PTR [ecx+eax+40]
|
||
0010a 81 fa 40 77 1b
|
||
00 cmp edx, 1800000 ; 001b7740H
|
||
00110 76 7a jbe SHORT $LN10@CheckForIn
|
||
|
||
; 1614 : {
|
||
; 1615 : pSql[i].adoConnection.Close();
|
||
|
||
00112 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
00119 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
0011f 8d 4c 01 08 lea ecx, DWORD PTR [ecx+eax+8]
|
||
00123 e8 00 00 00 00 call ?Close@CAdoConnection@@QAEXXZ ; CAdoConnection::Close
|
||
|
||
; 1616 : pSql[i].bUse = false;
|
||
|
||
00128 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
0012f 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
00135 c7 04 01 00 00
|
||
00 00 mov DWORD PTR [ecx+eax], 0
|
||
|
||
; 1617 : pSql[i].lRandID = 0;
|
||
|
||
0013c 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
00143 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
00149 c7 44 01 04 00
|
||
00 00 00 mov DWORD PTR [ecx+eax+4], 0
|
||
|
||
; 1618 :
|
||
; 1619 : _stprintf(szMsg, _T("SQL:%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , i );
|
||
|
||
00151 8b 85 dc fd ff
|
||
ff mov eax, DWORD PTR _i$5[ebp]
|
||
00157 50 push eax
|
||
00158 68 00 00 00 00 push OFFSET ??_C@_1CE@HBKAPEML@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?M?$AA?2?$PP?$IF?$PP?v?$AA?$AM?$PP?j?$PP?$KI?$PP?$KN@
|
||
0015d 8d 8d e8 fd ff
|
||
ff lea ecx, DWORD PTR _szMsg$8[ebp]
|
||
00163 51 push ecx
|
||
00164 e8 00 00 00 00 call __swprintf
|
||
00169 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 1620 : m_pDlg->AddLog(szMsg);
|
||
|
||
0016c 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
0016f 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
00172 89 8d 28 e4 ff
|
||
ff mov DWORD PTR tv142[ebp], ecx
|
||
00178 6a 00 push 0
|
||
0017a 8d 95 e8 fd ff
|
||
ff lea edx, DWORD PTR _szMsg$8[ebp]
|
||
00180 52 push edx
|
||
00181 8b 8d 28 e4 ff
|
||
ff mov ecx, DWORD PTR tv142[ebp]
|
||
00187 e8 00 00 00 00 call ?AddLog@CSmsCenterDlg@@QAEXPB_WJ@Z ; CSmsCenterDlg::AddLog
|
||
$LN10@CheckForIn:
|
||
|
||
; 1621 : }
|
||
; 1622 : }
|
||
|
||
0018c e9 99 00 00 00 jmp $LN7@CheckForIn
|
||
$LN8@CheckForIn:
|
||
|
||
; 1623 : else
|
||
; 1624 : {
|
||
; 1625 : //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>е<EFBFBD>SQL,20<32><30><EFBFBD>ӳ<EFBFBD>ʱ
|
||
; 1626 : if ( dwNow - pSql[i].dwEndUse > SQL_TIMEOUT_DISUSE )
|
||
|
||
00191 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
00198 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
0019e 8b 95 e4 fd ff
|
||
ff mov edx, DWORD PTR _dwNow$7[ebp]
|
||
001a4 2b 54 01 28 sub edx, DWORD PTR [ecx+eax+40]
|
||
001a8 81 fa a0 bb 0d
|
||
00 cmp edx, 900000 ; 000dbba0H
|
||
001ae 76 7a jbe SHORT $LN7@CheckForIn
|
||
|
||
; 1627 : {
|
||
; 1628 : pSql[i].adoConnection.Close();
|
||
|
||
001b0 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
001b7 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
001bd 8d 4c 01 08 lea ecx, DWORD PTR [ecx+eax+8]
|
||
001c1 e8 00 00 00 00 call ?Close@CAdoConnection@@QAEXXZ ; CAdoConnection::Close
|
||
|
||
; 1629 : pSql[i].bUse = false;
|
||
|
||
001c6 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
001cd 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
001d3 c7 04 01 00 00
|
||
00 00 mov DWORD PTR [ecx+eax], 0
|
||
|
||
; 1630 : pSql[i].lRandID = 0;
|
||
|
||
001da 6b 85 dc fd ff
|
||
ff 34 imul eax, DWORD PTR _i$5[ebp], 52
|
||
001e1 8b 8d e0 fd ff
|
||
ff mov ecx, DWORD PTR _pSql$6[ebp]
|
||
001e7 c7 44 01 04 00
|
||
00 00 00 mov DWORD PTR [ecx+eax+4], 0
|
||
|
||
; 1631 :
|
||
; 1632 : _stprintf(szMsg, _T("SQL:%d <20><>ʱδʹ<CEB4>ã<EFBFBD><C3A3>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , i );
|
||
|
||
001ef 8b 85 dc fd ff
|
||
ff mov eax, DWORD PTR _i$5[ebp]
|
||
001f5 50 push eax
|
||
001f6 68 00 00 00 00 push OFFSET ??_C@_1CG@BOOJGIJM@?$AAS?$AAQ?$AAL?$AA?3?$AA?$CF?$AAd?$AA?5?$PP?$IF?$PP?v?$AA?$CK?$AA?$HP?$AA?$CI?$AA?$AM?$PP?j?$PP?$KI@
|
||
001fb 8d 8d e8 fd ff
|
||
ff lea ecx, DWORD PTR _szMsg$8[ebp]
|
||
00201 51 push ecx
|
||
00202 e8 00 00 00 00 call __swprintf
|
||
00207 83 c4 0c add esp, 12 ; 0000000cH
|
||
|
||
; 1633 : m_pDlg->AddLog(szMsg);
|
||
|
||
0020a 8b 45 e8 mov eax, DWORD PTR _this$[ebp]
|
||
0020d 8b 48 04 mov ecx, DWORD PTR [eax+4]
|
||
00210 89 8d 28 e4 ff
|
||
ff mov DWORD PTR tv166[ebp], ecx
|
||
00216 6a 00 push 0
|
||
00218 8d 95 e8 fd ff
|
||
ff lea edx, DWORD PTR _szMsg$8[ebp]
|
||
0021e 52 push edx
|
||
0021f 8b 8d 28 e4 ff
|
||
ff mov ecx, DWORD PTR tv166[ebp]
|
||
00225 e8 00 00 00 00 call ?AddLog@CSmsCenterDlg@@QAEXPB_WJ@Z ; CSmsCenterDlg::AddLog
|
||
$LN7@CheckForIn:
|
||
|
||
; 1634 : }
|
||
; 1635 : }
|
||
; 1636 : }
|
||
; 1637 : }
|
||
|
||
0022a e9 58 fe ff ff jmp $LN2@CheckForIn
|
||
$LN6@CheckForIn:
|
||
|
||
; 1638 : }
|
||
; 1639 : }
|
||
|
||
0022f e9 90 00 00 00 jmp $LN13@CheckForIn
|
||
__catch$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$0:
|
||
|
||
; 1640 : catch (...)
|
||
; 1641 : {
|
||
; 1642 : LOG_APPERROR(_T("T"));
|
||
|
||
00234 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
0023a e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
0023f c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
00243 51 push ecx
|
||
00244 8b cc mov ecx, esp
|
||
00246 89 a5 30 e4 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
0024c 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
00251 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> > >
|
||
00256 89 85 28 e4 ff
|
||
ff mov DWORD PTR tv168[ebp], eax
|
||
0025c c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
00260 51 push ecx
|
||
00261 8b cc mov ecx, esp
|
||
00263 89 a5 2c e4 ff
|
||
ff mov DWORD PTR $T2[ebp], esp
|
||
00269 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
0026e 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> > >
|
||
00273 89 85 24 e4 ff
|
||
ff mov DWORD PTR tv211[ebp], eax
|
||
00279 c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
0027d c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
00281 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00287 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
0028c a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??CheckForInvalidSQLConnection@CIOCP@@QAEXXZ@4JA
|
||
00291 83 c0 55 add eax, 85 ; 00000055H
|
||
00294 50 push eax
|
||
00295 68 00 00 00 00 push OFFSET ??_C@_0BN@JHDKFMGA@CheckForInvalidSQLConnection@
|
||
0029a 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
0029f 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
002a4 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
002aa e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
002af c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
002b3 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
002b9 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 1643 : }
|
||
|
||
002be b8 00 00 00 00 mov eax, $LN19@CheckForIn
|
||
002c3 c3 ret 0
|
||
$LN13@CheckForIn:
|
||
002c4 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
002cb eb 07 jmp SHORT $LN1@CheckForIn
|
||
$LN19@CheckForIn:
|
||
002cd c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
$LN1@CheckForIn:
|
||
|
||
; 1644 : }
|
||
|
||
002d4 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
002d7 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
002de 59 pop ecx
|
||
002df 5f pop edi
|
||
002e0 5e pop esi
|
||
002e1 5b pop ebx
|
||
002e2 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
002e5 33 cd xor ecx, ebp
|
||
002e7 e8 00 00 00 00 call @__security_check_cookie@4
|
||
002ec 8b e5 mov esp, ebp
|
||
002ee 5d pop ebp
|
||
002ef c3 ret 0
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$2:
|
||
00000 8d 8d 34 e6 ff
|
||
ff lea ecx, DWORD PTR _NXlog$4[ebp]
|
||
00006 e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$3:
|
||
0000b 8b 8d 30 e4 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00011 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$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ$4:
|
||
00016 8b 8d 2c e4 ff
|
||
ff mov ecx, DWORD PTR $T2[ebp]
|
||
0001c 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> > >
|
||
00021 cc int 3
|
||
00022 cc int 3
|
||
00023 cc int 3
|
||
00024 cc int 3
|
||
00025 cc int 3
|
||
__ehhandler$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ:
|
||
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 8a 20 e4 ff
|
||
ff mov ecx, DWORD PTR [edx-7136]
|
||
00035 33 c8 xor ecx, eax
|
||
00037 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0003c 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
0003f 33 c8 xor ecx, eax
|
||
00041 e8 00 00 00 00 call @__security_check_cookie@4
|
||
00046 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ
|
||
0004b e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ ENDP ; CIOCP::CheckForInvalidSQLConnection
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ?MainLoop2@CIOCP@@SGKPAX@Z
|
||
_TEXT SEGMENT
|
||
tv65 = -6628 ; size = 4
|
||
tv77 = -6624 ; size = 4
|
||
$T2 = -6620 ; size = 4
|
||
$T3 = -6616 ; size = 4
|
||
$T4 = -6612 ; size = 4
|
||
$T5 = -6608 ; size = 4
|
||
_NXlog$6 = -6092 ; size = 6056
|
||
_nCount2$7 = -36 ; size = 4
|
||
_nCount$8 = -32 ; size = 4
|
||
_piocp$9 = -28 ; size = 4
|
||
_AutoCoInit$10 = -21 ; size = 1
|
||
__$ArrayPad$ = -20 ; size = 4
|
||
__$EHRec$ = -16 ; size = 16
|
||
_lp_param$ = 8 ; size = 4
|
||
?MainLoop2@CIOCP@@SGKPAX@Z PROC ; CIOCP::MainLoop2, COMDAT
|
||
|
||
; 1647 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?MainLoop2@CIOCP@@SGKPAX@Z
|
||
0000a 64 a1 00 00 00
|
||
00 mov eax, DWORD PTR fs:0
|
||
00010 50 push eax
|
||
00011 51 push ecx
|
||
00012 b8 d4 19 00 00 mov eax, 6612 ; 000019d4H
|
||
00017 e8 00 00 00 00 call __chkstk
|
||
0001c a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie
|
||
00021 33 c5 xor eax, ebp
|
||
00023 89 45 ec mov DWORD PTR __$ArrayPad$[ebp], eax
|
||
00026 53 push ebx
|
||
00027 56 push esi
|
||
00028 57 push edi
|
||
00029 50 push eax
|
||
0002a 8d 45 f4 lea eax, DWORD PTR __$EHRec$[ebp+4]
|
||
0002d 64 a3 00 00 00
|
||
00 mov DWORD PTR fs:0, eax
|
||
00033 89 65 f0 mov DWORD PTR __$EHRec$[ebp], esp
|
||
|
||
; 1648 : try
|
||
|
||
00036 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+12], 0
|
||
|
||
; 1649 : {
|
||
; 1650 : AutoCoInitializeEx AutoCoInit; //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Com<6F><6D><EFBFBD><EFBFBD>
|
||
|
||
0003d 8d 4d eb lea ecx, DWORD PTR _AutoCoInit$10[ebp]
|
||
00040 e8 00 00 00 00 call ??0AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
00045 c6 45 fc 01 mov BYTE PTR __$EHRec$[ebp+12], 1
|
||
|
||
; 1651 :
|
||
; 1652 : CIOCP * piocp = (CIOCP *)lp_param;
|
||
|
||
00049 8b 45 08 mov eax, DWORD PTR _lp_param$[ebp]
|
||
0004c 89 45 e4 mov DWORD PTR _piocp$9[ebp], eax
|
||
|
||
; 1653 :
|
||
; 1654 : int nCount = 0;
|
||
|
||
0004f c7 45 e0 00 00
|
||
00 00 mov DWORD PTR _nCount$8[ebp], 0
|
||
|
||
; 1655 : int nCount2= 0;
|
||
|
||
00056 c7 45 dc 00 00
|
||
00 00 mov DWORD PTR _nCount2$7[ebp], 0
|
||
$LN2@MainLoop2:
|
||
|
||
; 1656 : while( !piocp->m_bQuit )
|
||
|
||
0005d 8b 45 e4 mov eax, DWORD PTR _piocp$9[ebp]
|
||
00060 83 b8 e4 00 00
|
||
00 00 cmp DWORD PTR [eax+228], 0
|
||
00067 75 49 jne SHORT $LN3@MainLoop2
|
||
|
||
; 1657 : {
|
||
; 1658 : nCount ++;
|
||
|
||
00069 8b 45 e0 mov eax, DWORD PTR _nCount$8[ebp]
|
||
0006c 83 c0 01 add eax, 1
|
||
0006f 89 45 e0 mov DWORD PTR _nCount$8[ebp], eax
|
||
|
||
; 1659 : if ( nCount>10 ) //ÿ5<C3BF><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>γ<EFBFBD>ʱ
|
||
|
||
00072 83 7d e0 0a cmp DWORD PTR _nCount$8[ebp], 10 ; 0000000aH
|
||
00076 7e 0f jle SHORT $LN5@MainLoop2
|
||
|
||
; 1660 : {
|
||
; 1661 : nCount=0;
|
||
|
||
00078 c7 45 e0 00 00
|
||
00 00 mov DWORD PTR _nCount$8[ebp], 0
|
||
|
||
; 1662 : piocp->CheckForInvalidConnection();
|
||
|
||
0007f 8b 4d e4 mov ecx, DWORD PTR _piocp$9[ebp]
|
||
00082 e8 00 00 00 00 call ?CheckForInvalidConnection@CIOCP@@QAEXXZ ; CIOCP::CheckForInvalidConnection
|
||
$LN5@MainLoop2:
|
||
|
||
; 1663 : }
|
||
; 1664 : nCount2 ++;
|
||
|
||
00087 8b 45 dc mov eax, DWORD PTR _nCount2$7[ebp]
|
||
0008a 83 c0 01 add eax, 1
|
||
0008d 89 45 dc mov DWORD PTR _nCount2$7[ebp], eax
|
||
|
||
; 1665 : if ( nCount2>120 ) //ÿ1<C3BF><31><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>һ<EFBFBD>γ<EFBFBD>ʱ
|
||
|
||
00090 83 7d dc 78 cmp DWORD PTR _nCount2$7[ebp], 120 ; 00000078H
|
||
00094 7e 0f jle SHORT $LN6@MainLoop2
|
||
|
||
; 1666 : {
|
||
; 1667 : nCount2=0;
|
||
|
||
00096 c7 45 dc 00 00
|
||
00 00 mov DWORD PTR _nCount2$7[ebp], 0
|
||
|
||
; 1668 : piocp->CheckForInvalidSQLConnection();
|
||
|
||
0009d 8b 4d e4 mov ecx, DWORD PTR _piocp$9[ebp]
|
||
000a0 e8 00 00 00 00 call ?CheckForInvalidSQLConnection@CIOCP@@QAEXXZ ; CIOCP::CheckForInvalidSQLConnection
|
||
$LN6@MainLoop2:
|
||
|
||
; 1669 : }
|
||
; 1670 : Sleep(500);
|
||
|
||
000a5 68 f4 01 00 00 push 500 ; 000001f4H
|
||
000aa ff 15 00 00 00
|
||
00 call DWORD PTR __imp__Sleep@4
|
||
|
||
; 1671 : }
|
||
|
||
000b0 eb ab jmp SHORT $LN2@MainLoop2
|
||
$LN3@MainLoop2:
|
||
|
||
; 1672 : return TRUE;
|
||
|
||
000b2 c7 85 30 e6 ff
|
||
ff 01 00 00 00 mov DWORD PTR $T5[ebp], 1
|
||
000bc c6 45 fc 00 mov BYTE PTR __$EHRec$[ebp+12], 0
|
||
000c0 8d 4d eb lea ecx, DWORD PTR _AutoCoInit$10[ebp]
|
||
000c3 e8 00 00 00 00 call ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
000c8 8b 85 30 e6 ff
|
||
ff mov eax, DWORD PTR $T5[ebp]
|
||
000ce e9 b6 00 00 00 jmp $LN1@MainLoop2
|
||
__catch$?MainLoop2@CIOCP@@SGKPAX@Z$0:
|
||
|
||
; 1673 : }
|
||
; 1674 : catch(...)
|
||
; 1675 : {
|
||
; 1676 : LOG_APPERROR(_T("T"));
|
||
|
||
000d3 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
000d9 e8 00 00 00 00 call ??0CSAStatusLog@@QAE@XZ ; CSAStatusLog::CSAStatusLog
|
||
000de c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
000e2 51 push ecx
|
||
000e3 8b cc mov ecx, esp
|
||
000e5 89 a5 2c e6 ff
|
||
ff mov DWORD PTR $T4[ebp], esp
|
||
000eb 68 00 00 00 00 push OFFSET ??_C@_1BC@HEKPCAFP@?$AAA?$AAp?$AAp?$AAE?$AAr?$AAr?$AAo?$AAr@
|
||
000f0 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> > >
|
||
000f5 89 85 20 e6 ff
|
||
ff mov DWORD PTR tv77[ebp], eax
|
||
000fb c6 45 fc 04 mov BYTE PTR __$EHRec$[ebp+12], 4
|
||
000ff 51 push ecx
|
||
00100 8b cc mov ecx, esp
|
||
00102 89 a5 28 e6 ff
|
||
ff mov DWORD PTR $T3[ebp], esp
|
||
00108 68 00 00 00 00 push OFFSET ??_C@_17LLLMIFAB@?$AAL?$AAo?$AAg@
|
||
0010d 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> > >
|
||
00112 89 85 1c e6 ff
|
||
ff mov DWORD PTR tv65[ebp], eax
|
||
00118 c6 45 fc 05 mov BYTE PTR __$EHRec$[ebp+12], 5
|
||
0011c c6 45 fc 03 mov BYTE PTR __$EHRec$[ebp+12], 3
|
||
00120 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00126 e8 00 00 00 00 call ?Init@CSAStatusLog@@QAEXV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@0@Z ; CSAStatusLog::Init
|
||
0012b a1 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??MainLoop2@CIOCP@@SGKPAX@Z@4JA
|
||
00130 83 c0 1d add eax, 29 ; 0000001dH
|
||
00133 50 push eax
|
||
00134 68 00 00 00 00 push OFFSET ??_C@_09JBDIPDKJ@MainLoop2@
|
||
00139 68 00 00 00 00 push OFFSET ??_C@_0CO@DMJFAOI@D?3?2Works?2Corpsms_2010?2SmsCenter@
|
||
0013e 68 00 00 00 00 push OFFSET ??_C@_13JKNELIBG@?$AAT@
|
||
00143 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00149 e8 00 00 00 00 call ?LogError@CSAStatusLog@@QAEHPB_WPBD1J@Z ; CSAStatusLog::LogError
|
||
0014e c6 45 fc 02 mov BYTE PTR __$EHRec$[ebp+12], 2
|
||
00152 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
00158 e8 00 00 00 00 call ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
|
||
; 1677 : return false;
|
||
|
||
0015d c7 85 24 e6 ff
|
||
ff 00 00 00 00 mov DWORD PTR $T2[ebp], 0
|
||
00167 b8 00 00 00 00 mov eax, $LN15@MainLoop2
|
||
0016c c3 ret 0
|
||
|
||
; 1678 : }
|
||
|
||
0016d b8 00 00 00 00 mov eax, __tryend$?MainLoop2@CIOCP@@SGKPAX@Z$1
|
||
00172 c3 ret 0
|
||
__tryend$?MainLoop2@CIOCP@@SGKPAX@Z$1:
|
||
00173 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
0017a eb 0d jmp SHORT $LN1@MainLoop2
|
||
$LN15@MainLoop2:
|
||
0017c c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+12], -1
|
||
|
||
; 1677 : return false;
|
||
|
||
00183 8b 85 24 e6 ff
|
||
ff mov eax, DWORD PTR $T2[ebp]
|
||
$LN1@MainLoop2:
|
||
|
||
; 1679 : }
|
||
|
||
00189 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp+4]
|
||
0018c 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
00193 59 pop ecx
|
||
00194 5f pop edi
|
||
00195 5e pop esi
|
||
00196 5b pop ebx
|
||
00197 8b 4d ec mov ecx, DWORD PTR __$ArrayPad$[ebp]
|
||
0019a 33 cd xor ecx, ebp
|
||
0019c e8 00 00 00 00 call @__security_check_cookie@4
|
||
001a1 8b e5 mov esp, ebp
|
||
001a3 5d pop ebp
|
||
001a4 c2 04 00 ret 4
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$2:
|
||
00000 8d 4d eb lea ecx, DWORD PTR _AutoCoInit$10[ebp]
|
||
00003 e9 00 00 00 00 jmp ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$3:
|
||
00008 8d 8d 34 e8 ff
|
||
ff lea ecx, DWORD PTR _NXlog$6[ebp]
|
||
0000e e9 00 00 00 00 jmp ??1CSAStatusLog@@QAE@XZ ; CSAStatusLog::~CSAStatusLog
|
||
__unwindfunclet$?MainLoop2@CIOCP@@SGKPAX@Z$4:
|
||
00013 8b 8d 2c e6 ff
|
||
ff mov ecx, DWORD PTR $T4[ebp]
|
||
00019 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$?MainLoop2@CIOCP@@SGKPAX@Z$5:
|
||
0001e 8b 8d 28 e6 ff
|
||
ff mov ecx, DWORD PTR $T3[ebp]
|
||
00024 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> > >
|
||
00029 cc int 3
|
||
0002a cc int 3
|
||
0002b cc int 3
|
||
0002c cc int 3
|
||
0002d cc int 3
|
||
__ehhandler$?MainLoop2@CIOCP@@SGKPAX@Z:
|
||
0002e 90 npad 1
|
||
0002f 90 npad 1
|
||
00030 8b 54 24 08 mov edx, DWORD PTR [esp+8]
|
||
00034 8d 42 0c lea eax, DWORD PTR [edx+12]
|
||
00037 8b 8a 18 e6 ff
|
||
ff mov ecx, DWORD PTR [edx-6632]
|
||
0003d 33 c8 xor ecx, eax
|
||
0003f e8 00 00 00 00 call @__security_check_cookie@4
|
||
00044 8b 4a f8 mov ecx, DWORD PTR [edx-8]
|
||
00047 33 c8 xor ecx, eax
|
||
00049 e8 00 00 00 00 call @__security_check_cookie@4
|
||
0004e b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$?MainLoop2@CIOCP@@SGKPAX@Z
|
||
00053 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?MainLoop2@CIOCP@@SGKPAX@Z ENDP ; CIOCP::MainLoop2
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ??1CIOCP@@UAE@XZ
|
||
_TEXT SEGMENT
|
||
_this$ = -16 ; size = 4
|
||
__$EHRec$ = -12 ; size = 12
|
||
??1CIOCP@@UAE@XZ PROC ; CIOCP::~CIOCP, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 25 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$??1CIOCP@@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 ??_7CIOCP@@6B@
|
||
00034 c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+8], 0
|
||
|
||
; 26 : Close();
|
||
|
||
0003b 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
|
||
0003e e8 00 00 00 00 call ?Close@CIOCP@@QAEXXZ ; CIOCP::Close
|
||
|
||
; 27 : }
|
||
|
||
00043 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
|
||
0004a 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
|
||
0004d 83 c1 08 add ecx, 8
|
||
00050 e8 00 00 00 00 call ??1CKeyList@@UAE@XZ ; CKeyList::~CKeyList
|
||
00055 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
|
||
00058 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
0005f 59 pop ecx
|
||
00060 5f pop edi
|
||
00061 5e pop esi
|
||
00062 5b pop ebx
|
||
00063 8b e5 mov esp, ebp
|
||
00065 5d pop ebp
|
||
00066 c3 ret 0
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$??1CIOCP@@UAE@XZ$0:
|
||
00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
|
||
00003 83 c1 08 add ecx, 8
|
||
00006 e9 00 00 00 00 jmp ??1CKeyList@@UAE@XZ ; CKeyList::~CKeyList
|
||
0000b cc int 3
|
||
0000c cc int 3
|
||
0000d cc int 3
|
||
0000e cc int 3
|
||
0000f cc int 3
|
||
__ehhandler$??1CIOCP@@UAE@XZ:
|
||
00010 90 npad 1
|
||
00011 90 npad 1
|
||
00012 8b 54 24 08 mov edx, DWORD PTR [esp+8]
|
||
00016 8d 42 0c lea eax, DWORD PTR [edx+12]
|
||
00019 8b 4a ac mov ecx, DWORD PTR [edx-84]
|
||
0001c 33 c8 xor ecx, eax
|
||
0001e e8 00 00 00 00 call @__security_check_cookie@4
|
||
00023 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??1CIOCP@@UAE@XZ
|
||
00028 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
??1CIOCP@@UAE@XZ ENDP ; CIOCP::~CIOCP
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\SmsCenter\IOCP\IOCP.cpp
|
||
; COMDAT ??0CIOCP@@QAE@XZ
|
||
_TEXT SEGMENT
|
||
_this$ = -16 ; size = 4
|
||
__$EHRec$ = -12 ; size = 12
|
||
??0CIOCP@@QAE@XZ PROC ; CIOCP::CIOCP, 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$??0CIOCP@@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 ??_7CIOCP@@6B@
|
||
00034 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
|
||
00037 83 c1 08 add ecx, 8
|
||
0003a e8 00 00 00 00 call ??0CKeyList@@QAE@XZ ; CKeyList::CKeyList
|
||
0003f c7 45 fc 00 00
|
||
00 00 mov DWORD PTR __$EHRec$[ebp+8], 0
|
||
|
||
; 11 : m_pDlg = NULL;
|
||
|
||
00046 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
00049 c7 40 04 00 00
|
||
00 00 mov DWORD PTR [eax+4], 0
|
||
|
||
; 12 : m_listen_socket = INVALID_SOCKET;
|
||
|
||
00050 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
00053 c7 40 2c ff ff
|
||
ff ff mov DWORD PTR [eax+44], -1
|
||
|
||
; 13 : m_listen_socket2 = INVALID_SOCKET;
|
||
|
||
0005a 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
0005d c7 40 34 ff ff
|
||
ff ff mov DWORD PTR [eax+52], -1
|
||
|
||
; 14 : m_bInitSocket = false;
|
||
|
||
00064 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
00067 c7 40 30 00 00
|
||
00 00 mov DWORD PTR [eax+48], 0
|
||
|
||
; 15 : m_bInitSocket2 = false;
|
||
|
||
0006e 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
00071 c7 40 38 00 00
|
||
00 00 mov DWORD PTR [eax+56], 0
|
||
|
||
; 16 : m_bInit = false;
|
||
|
||
00078 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
0007b c7 40 3c 00 00
|
||
00 00 mov DWORD PTR [eax+60], 0
|
||
|
||
; 17 :
|
||
; 18 : m_h_MainLoop = INVALID_HANDLE_VALUE;
|
||
|
||
00082 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
00085 c7 80 dc 00 00
|
||
00 ff ff ff ff mov DWORD PTR [eax+220], -1
|
||
|
||
; 19 : m_h_MainLoop2 = INVALID_HANDLE_VALUE;
|
||
|
||
0008f 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
00092 c7 80 e0 00 00
|
||
00 ff ff ff ff mov DWORD PTR [eax+224], -1
|
||
|
||
; 20 : m_bQuit = false;
|
||
|
||
0009c 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
0009f c7 80 e4 00 00
|
||
00 00 00 00 00 mov DWORD PTR [eax+228], 0
|
||
|
||
; 21 : }
|
||
|
||
000a9 c7 45 fc ff ff
|
||
ff ff mov DWORD PTR __$EHRec$[ebp+8], -1
|
||
000b0 8b 45 f0 mov eax, DWORD PTR _this$[ebp]
|
||
000b3 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
|
||
000b6 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
000bd 59 pop ecx
|
||
000be 5f pop edi
|
||
000bf 5e pop esi
|
||
000c0 5b pop ebx
|
||
000c1 8b e5 mov esp, ebp
|
||
000c3 5d pop ebp
|
||
000c4 c3 ret 0
|
||
_TEXT ENDS
|
||
; COMDAT text$x
|
||
text$x SEGMENT
|
||
__unwindfunclet$??0CIOCP@@QAE@XZ$0:
|
||
00000 8b 4d f0 mov ecx, DWORD PTR _this$[ebp]
|
||
00003 83 c1 08 add ecx, 8
|
||
00006 e9 00 00 00 00 jmp ??1CKeyList@@UAE@XZ ; CKeyList::~CKeyList
|
||
0000b cc int 3
|
||
0000c cc int 3
|
||
0000d cc int 3
|
||
0000e cc int 3
|
||
0000f cc int 3
|
||
__ehhandler$??0CIOCP@@QAE@XZ:
|
||
00010 90 npad 1
|
||
00011 90 npad 1
|
||
00012 8b 54 24 08 mov edx, DWORD PTR [esp+8]
|
||
00016 8d 42 0c lea eax, DWORD PTR [edx+12]
|
||
00019 8b 4a ac mov ecx, DWORD PTR [edx-84]
|
||
0001c 33 c8 xor ecx, eax
|
||
0001e e8 00 00 00 00 call @__security_check_cookie@4
|
||
00023 b8 00 00 00 00 mov eax, OFFSET __ehfuncinfo$??0CIOCP@@QAE@XZ
|
||
00028 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
??0CIOCP@@QAE@XZ ENDP ; CIOCP::CIOCP
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\public\AutoCoInitializeEx\AutoCoInitializeEx.h
|
||
; COMDAT ??1AutoCoInitializeEx@@QAE@XZ
|
||
_TEXT SEGMENT
|
||
_this$ = -16 ; size = 4
|
||
__$EHRec$ = -12 ; size = 12
|
||
??1AutoCoInitializeEx@@QAE@XZ PROC ; AutoCoInitializeEx::~AutoCoInitializeEx, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 24 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$??1AutoCoInitializeEx@@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
|
||
|
||
; 25 : CoUninitialize();
|
||
|
||
0002b ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CoUninitialize@0
|
||
|
||
; 26 : }
|
||
|
||
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$??1AutoCoInitializeEx@@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$??1AutoCoInitializeEx@@QAE@XZ
|
||
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
??1AutoCoInitializeEx@@QAE@XZ ENDP ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\public\AutoCoInitializeEx\AutoCoInitializeEx.h
|
||
; COMDAT ??0AutoCoInitializeEx@@QAE@_N@Z
|
||
_TEXT SEGMENT
|
||
_this$ = -4 ; size = 4
|
||
_bMTA$ = 8 ; size = 1
|
||
??0AutoCoInitializeEx@@QAE@_N@Z PROC ; AutoCoInitializeEx::AutoCoInitializeEx, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 10 : AutoCoInitializeEx(bool bMTA)
|
||
|
||
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
|
||
|
||
; 11 : {
|
||
; 12 : if ( bMTA )
|
||
|
||
0000c 0f b6 45 08 movzx eax, BYTE PTR _bMTA$[ebp]
|
||
00010 85 c0 test eax, eax
|
||
00012 74 0c je SHORT $LN2@AutoCoInit
|
||
|
||
; 13 : {
|
||
; 14 : CoInitializeEx( NULL , COINIT_MULTITHREADED );
|
||
|
||
00014 6a 00 push 0
|
||
00016 6a 00 push 0
|
||
00018 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CoInitializeEx@8
|
||
|
||
; 15 : }
|
||
|
||
0001e eb 08 jmp SHORT $LN1@AutoCoInit
|
||
$LN2@AutoCoInit:
|
||
|
||
; 16 : else
|
||
; 17 : {
|
||
; 18 : CoInitialize(NULL);
|
||
|
||
00020 6a 00 push 0
|
||
00022 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__CoInitialize@4
|
||
$LN1@AutoCoInit:
|
||
|
||
; 19 : }
|
||
; 20 : }
|
||
|
||
00028 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
0002b 5f pop edi
|
||
0002c 5e pop esi
|
||
0002d 5b pop ebx
|
||
0002e 8b e5 mov esp, ebp
|
||
00030 5d pop ebp
|
||
00031 c2 04 00 ret 4
|
||
??0AutoCoInitializeEx@@QAE@_N@Z ENDP ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File D:\Works\Corpsms_2010\public\AutoCoInitializeEx\AutoCoInitializeEx.h
|
||
; COMDAT ??0AutoCoInitializeEx@@QAE@XZ
|
||
_TEXT SEGMENT
|
||
$T1 = -69 ; size = 1
|
||
_this$ = -4 ; size = 4
|
||
??0AutoCoInitializeEx@@QAE@XZ PROC ; AutoCoInitializeEx::AutoCoInitializeEx, COMDAT
|
||
; _this$ = ecx
|
||
|
||
; 6 : AutoCoInitializeEx(void)
|
||
|
||
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
|
||
|
||
; 7 : {
|
||
; 8 : AutoCoInitializeEx(true);
|
||
|
||
0000c 6a 01 push 1
|
||
0000e 8d 4d bb lea ecx, DWORD PTR $T1[ebp]
|
||
00011 e8 00 00 00 00 call ??0AutoCoInitializeEx@@QAE@_N@Z ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
00016 8d 4d bb lea ecx, DWORD PTR $T1[ebp]
|
||
00019 e8 00 00 00 00 call ??1AutoCoInitializeEx@@QAE@XZ ; AutoCoInitializeEx::~AutoCoInitializeEx
|
||
|
||
; 9 : }
|
||
|
||
0001e 8b 45 fc mov eax, DWORD PTR _this$[ebp]
|
||
00021 5f pop edi
|
||
00022 5e pop esi
|
||
00023 5b pop ebx
|
||
00024 8b e5 mov esp, ebp
|
||
00026 5d pop ebp
|
||
00027 c3 ret 0
|
||
??0AutoCoInitializeEx@@QAE@XZ ENDP ; AutoCoInitializeEx::AutoCoInitializeEx
|
||
_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 ?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 ?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@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 ?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@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\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 ?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 ?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\atlconv.h
|
||
; COMDAT ?AtlA2WHelper@@YGPA_WPA_WPBDHI@Z
|
||
_TEXT SEGMENT
|
||
_ret$ = -16 ; size = 4
|
||
__$EHRec$ = -12 ; size = 12
|
||
_lpw$ = 8 ; size = 4
|
||
_lpa$ = 12 ; size = 4
|
||
_nChars$ = 16 ; size = 4
|
||
_acp$ = 20 ; size = 4
|
||
?AtlA2WHelper@@YGPA_WPA_WPBDHI@Z PROC ; AtlA2WHelper, COMDAT
|
||
|
||
; 563 : {
|
||
|
||
00000 55 push ebp
|
||
00001 8b ec mov ebp, esp
|
||
00003 6a ff push -1
|
||
00005 68 00 00 00 00 push __ehhandler$?AtlA2WHelper@@YGPA_WPA_WPBDHI@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
|
||
|
||
; 564 : ATLASSERT(lpa != NULL);
|
||
; 565 : ATLASSERT(lpw != NULL);
|
||
; 566 : if (lpw == NULL || lpa == NULL)
|
||
|
||
00028 83 7d 08 00 cmp DWORD PTR _lpw$[ebp], 0
|
||
0002c 74 06 je SHORT $LN3@AtlA2WHelp
|
||
0002e 83 7d 0c 00 cmp DWORD PTR _lpa$[ebp], 0
|
||
00032 75 04 jne SHORT $LN2@AtlA2WHelp
|
||
$LN3@AtlA2WHelp:
|
||
|
||
; 567 : return NULL;
|
||
|
||
00034 33 c0 xor eax, eax
|
||
00036 eb 32 jmp SHORT $LN1@AtlA2WHelp
|
||
$LN2@AtlA2WHelp:
|
||
|
||
; 568 : // verify that no illegal character present
|
||
; 569 : // since lpw was allocated based on the size of lpa
|
||
; 570 : // don't worry about the number of chars
|
||
; 571 : *lpw = '\0';
|
||
|
||
00038 33 c0 xor eax, eax
|
||
0003a 8b 4d 08 mov ecx, DWORD PTR _lpw$[ebp]
|
||
0003d 66 89 01 mov WORD PTR [ecx], ax
|
||
|
||
; 572 : int ret = MultiByteToWideChar(acp, 0, lpa, -1, lpw, nChars);
|
||
|
||
00040 8b 45 10 mov eax, DWORD PTR _nChars$[ebp]
|
||
00043 50 push eax
|
||
00044 8b 4d 08 mov ecx, DWORD PTR _lpw$[ebp]
|
||
00047 51 push ecx
|
||
00048 6a ff push -1
|
||
0004a 8b 55 0c mov edx, DWORD PTR _lpa$[ebp]
|
||
0004d 52 push edx
|
||
0004e 6a 00 push 0
|
||
00050 8b 45 14 mov eax, DWORD PTR _acp$[ebp]
|
||
00053 50 push eax
|
||
00054 ff 15 00 00 00
|
||
00 call DWORD PTR __imp__MultiByteToWideChar@24
|
||
0005a 89 45 f0 mov DWORD PTR _ret$[ebp], eax
|
||
|
||
; 573 : if(ret == 0)
|
||
|
||
0005d 83 7d f0 00 cmp DWORD PTR _ret$[ebp], 0
|
||
00061 75 04 jne SHORT $LN4@AtlA2WHelp
|
||
|
||
; 574 : {
|
||
; 575 : ATLASSERT(FALSE);
|
||
; 576 : return NULL;
|
||
|
||
00063 33 c0 xor eax, eax
|
||
00065 eb 03 jmp SHORT $LN1@AtlA2WHelp
|
||
$LN4@AtlA2WHelp:
|
||
|
||
; 577 : }
|
||
; 578 : return lpw;
|
||
|
||
00067 8b 45 08 mov eax, DWORD PTR _lpw$[ebp]
|
||
$LN1@AtlA2WHelp:
|
||
|
||
; 579 : }
|
||
|
||
0006a 8b 4d f4 mov ecx, DWORD PTR __$EHRec$[ebp]
|
||
0006d 64 89 0d 00 00
|
||
00 00 mov DWORD PTR fs:0, ecx
|
||
00074 59 pop ecx
|
||
00075 5f pop edi
|
||
00076 5e pop esi
|
||
00077 5b pop ebx
|
||
00078 8b e5 mov esp, ebp
|
||
0007a 5d pop ebp
|
||
0007b c2 10 00 ret 16 ; 00000010H
|
||
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$?AtlA2WHelper@@YGPA_WPA_WPBDHI@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$?AtlA2WHelper@@YGPA_WPA_WPBDHI@Z
|
||
00018 e9 00 00 00 00 jmp ___CxxFrameHandler3
|
||
text$x ENDS
|
||
?AtlA2WHelper@@YGPA_WPA_WPBDHI@Z ENDP ; AtlA2WHelper
|
||
; Function compile flags: /Odtp /ZI
|
||
; File C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\atlmfc\include\atlconv.h
|
||
; COMDAT ?_AtlGetConversionACP@ATL@@YGIXZ
|
||
_TEXT SEGMENT
|
||
?_AtlGetConversionACP@ATL@@YGIXZ PROC ; ATL::_AtlGetConversionACP, COMDAT
|
||
|
||
; 98 : {
|
||
|
||
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
|
||
|
||
; 99 : #ifdef _CONVERSION_DONT_USE_THREAD_LOCALE
|
||
; 100 : return CP_ACP;
|
||
; 101 : #else
|
||
; 102 : return CP_THREAD_ACP;
|
||
|
||
00009 b8 03 00 00 00 mov eax, 3
|
||
|
||
; 103 : #endif
|
||
; 104 : }
|
||
|
||
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
|
||
?_AtlGetConversionACP@ATL@@YGIXZ ENDP ; ATL::_AtlGetConversionACP
|
||
_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.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\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_wstdio.h
|
||
; COMDAT __swprintf
|
||
_TEXT SEGMENT
|
||
__ArgList$ = -8 ; size = 4
|
||
__Result$ = -4 ; size = 4
|
||
__Buffer$ = 8 ; size = 4
|
||
__Format$ = 12 ; size = 4
|
||
__swprintf PROC ; COMDAT
|
||
|
||
; 1445 : {
|
||
|
||
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
|
||
|
||
; 1446 : int _Result;
|
||
; 1447 : va_list _ArgList;
|
||
; 1448 : __crt_va_start(_ArgList, _Format);
|
||
|
||
00009 8d 45 10 lea eax, DWORD PTR __Format$[ebp+4]
|
||
0000c 89 45 f8 mov DWORD PTR __ArgList$[ebp], eax
|
||
|
||
; 1449 : _Result = __vswprintf_l(_Buffer, _Format, NULL, _ArgList);
|
||
|
||
0000f 8b 45 f8 mov eax, DWORD PTR __ArgList$[ebp]
|
||
00012 50 push eax
|
||
00013 6a 00 push 0
|
||
00015 8b 4d 0c mov ecx, DWORD PTR __Format$[ebp]
|
||
00018 51 push ecx
|
||
00019 8b 55 08 mov edx, DWORD PTR __Buffer$[ebp]
|
||
0001c 52 push edx
|
||
0001d e8 00 00 00 00 call ___vswprintf_l
|
||
00022 83 c4 10 add esp, 16 ; 00000010H
|
||
00025 89 45 fc mov DWORD PTR __Result$[ebp], eax
|
||
|
||
; 1450 : __crt_va_end(_ArgList);
|
||
|
||
00028 c7 45 f8 00 00
|
||
00 00 mov DWORD PTR __ArgList$[ebp], 0
|
||
|
||
; 1451 : return _Result;
|
||
|
||
0002f 8b 45 fc mov eax, DWORD PTR __Result$[ebp]
|
||
|
||
; 1452 : }
|
||
|
||
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
|
||
__swprintf ENDP
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_wstdio.h
|
||
; COMDAT ___vswprintf_l
|
||
_TEXT SEGMENT
|
||
__Buffer$ = 8 ; size = 4
|
||
__Format$ = 12 ; size = 4
|
||
__Locale$ = 16 ; size = 4
|
||
__ArgList$ = 20 ; size = 4
|
||
___vswprintf_l PROC ; COMDAT
|
||
|
||
; 1208 : {
|
||
|
||
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
|
||
|
||
; 1209 : return _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList);
|
||
|
||
00009 8b 45 14 mov eax, DWORD PTR __ArgList$[ebp]
|
||
0000c 50 push eax
|
||
0000d 8b 4d 10 mov ecx, DWORD PTR __Locale$[ebp]
|
||
00010 51 push ecx
|
||
00011 8b 55 0c mov edx, DWORD PTR __Format$[ebp]
|
||
00014 52 push edx
|
||
00015 6a ff push -1
|
||
00017 8b 45 08 mov eax, DWORD PTR __Buffer$[ebp]
|
||
0001a 50 push eax
|
||
0001b e8 00 00 00 00 call __vswprintf_l
|
||
00020 83 c4 14 add esp, 20 ; 00000014H
|
||
|
||
; 1210 : }
|
||
|
||
00023 5f pop edi
|
||
00024 5e pop esi
|
||
00025 5b pop ebx
|
||
00026 8b e5 mov esp, ebp
|
||
00028 5d pop ebp
|
||
00029 c3 ret 0
|
||
___vswprintf_l ENDP
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_wstdio.h
|
||
; COMDAT __vswprintf_l
|
||
_TEXT SEGMENT
|
||
__Buffer$ = 8 ; size = 4
|
||
__BufferCount$ = 12 ; size = 4
|
||
__Format$ = 16 ; size = 4
|
||
__Locale$ = 20 ; size = 4
|
||
__ArgList$ = 24 ; size = 4
|
||
__vswprintf_l PROC ; COMDAT
|
||
|
||
; 1192 : {
|
||
|
||
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
|
||
|
||
; 1193 : return _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
|
||
00009 8b 45 18 mov eax, DWORD PTR __ArgList$[ebp]
|
||
0000c 50 push eax
|
||
0000d 8b 4d 14 mov ecx, DWORD PTR __Locale$[ebp]
|
||
00010 51 push ecx
|
||
00011 8b 55 10 mov edx, DWORD PTR __Format$[ebp]
|
||
00014 52 push edx
|
||
00015 8b 45 0c mov eax, DWORD PTR __BufferCount$[ebp]
|
||
00018 50 push eax
|
||
00019 8b 4d 08 mov ecx, DWORD PTR __Buffer$[ebp]
|
||
0001c 51 push ecx
|
||
0001d e8 00 00 00 00 call __vswprintf_c_l
|
||
00022 83 c4 14 add esp, 20 ; 00000014H
|
||
|
||
; 1194 : }
|
||
|
||
00025 5f pop edi
|
||
00026 5e pop esi
|
||
00027 5b pop ebx
|
||
00028 8b e5 mov esp, ebp
|
||
0002a 5d pop ebp
|
||
0002b c3 ret 0
|
||
__vswprintf_l ENDP
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp /ZI
|
||
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_wstdio.h
|
||
; COMDAT __vswprintf_c_l
|
||
_TEXT SEGMENT
|
||
tv73 = -72 ; size = 4
|
||
__Result$ = -4 ; size = 4
|
||
__Buffer$ = 8 ; size = 4
|
||
__BufferCount$ = 12 ; size = 4
|
||
__Format$ = 16 ; size = 4
|
||
__Locale$ = 20 ; size = 4
|
||
__ArgList$ = 24 ; size = 4
|
||
__vswprintf_c_l PROC ; COMDAT
|
||
|
||
; 1155 : {
|
||
|
||
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
|
||
|
||
; 1156 : int const _Result = __stdio_common_vswprintf(
|
||
|
||
00009 8b 45 18 mov eax, DWORD PTR __ArgList$[ebp]
|
||
0000c 50 push eax
|
||
0000d 8b 4d 14 mov ecx, DWORD PTR __Locale$[ebp]
|
||
00010 51 push ecx
|
||
00011 8b 55 10 mov edx, DWORD PTR __Format$[ebp]
|
||
00014 52 push edx
|
||
00015 8b 45 0c mov eax, DWORD PTR __BufferCount$[ebp]
|
||
00018 50 push eax
|
||
00019 8b 4d 08 mov ecx, DWORD PTR __Buffer$[ebp]
|
||
0001c 51 push ecx
|
||
0001d e8 00 00 00 00 call ___local_stdio_printf_options
|
||
00022 8b 50 04 mov edx, DWORD PTR [eax+4]
|
||
00025 52 push edx
|
||
00026 8b 00 mov eax, DWORD PTR [eax]
|
||
00028 50 push eax
|
||
00029 e8 00 00 00 00 call ___stdio_common_vswprintf
|
||
0002e 83 c4 1c add esp, 28 ; 0000001cH
|
||
00031 89 45 fc mov DWORD PTR __Result$[ebp], eax
|
||
|
||
; 1157 : _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS,
|
||
; 1158 : _Buffer, _BufferCount, _Format, _Locale, _ArgList);
|
||
; 1159 :
|
||
; 1160 : return _Result < 0 ? -1 : _Result;
|
||
|
||
00034 83 7d fc 00 cmp DWORD PTR __Result$[ebp], 0
|
||
00038 7d 09 jge SHORT $LN3@vswprintf_
|
||
0003a c7 45 b8 ff ff
|
||
ff ff mov DWORD PTR tv73[ebp], -1
|
||
00041 eb 06 jmp SHORT $LN4@vswprintf_
|
||
$LN3@vswprintf_:
|
||
00043 8b 45 fc mov eax, DWORD PTR __Result$[ebp]
|
||
00046 89 45 b8 mov DWORD PTR tv73[ebp], eax
|
||
$LN4@vswprintf_:
|
||
00049 8b 45 b8 mov eax, DWORD PTR tv73[ebp]
|
||
|
||
; 1161 : }
|
||
|
||
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
|
||
__vswprintf_c_l 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\SmsCenter\IOCP\IOCP.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\SmsCenter\IOCP\IOCP.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\SmsCenter\IOCP\IOCP.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\SmsCenter\IOCP\IOCP.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
|