; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0 TITLE D:\Works\Corpsms_2010\SmsCenter\Release_Unicode\AutoBuffer.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 ??0CAutoBuffer@@QAE@J@Z ; CAutoBuffer::CAutoBuffer PUBLIC ??1CAutoBuffer@@QAE@XZ ; CAutoBuffer::~CAutoBuffer PUBLIC ?GetBuffer@CAutoBuffer@@QAEPADXZ ; CAutoBuffer::GetBuffer PUBLIC ?GetBufferSize@CAutoBuffer@@QAEJXZ ; CAutoBuffer::GetBufferSize PUBLIC ?SetZero@CAutoBuffer@@QAEXXZ ; CAutoBuffer::SetZero EXTRN ??3@YAXPAXI@Z:PROC ; operator delete EXTRN ??_U@YAPAXI@Z:PROC ; operator new[] EXTRN _memset:PROC ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ?SetZero@CAutoBuffer@@QAEXXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?SetZero@CAutoBuffer@@QAEXXZ PROC ; CAutoBuffer::SetZero, COMDAT ; _this$ = ecx ; 40 : { 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 ; 41 : if (m_pBuffer) 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 38 00 cmp DWORD PTR [eax], 0 00012 74 17 je SHORT $LN1@SetZero ; 42 : { ; 43 : memset(m_pBuffer , 0 , m_lBufferSize ); 00014 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00017 8b 48 04 mov ecx, DWORD PTR [eax+4] 0001a 51 push ecx 0001b 6a 00 push 0 0001d 8b 55 fc mov edx, DWORD PTR _this$[ebp] 00020 8b 02 mov eax, DWORD PTR [edx] 00022 50 push eax 00023 e8 00 00 00 00 call _memset 00028 83 c4 0c add esp, 12 ; 0000000cH $LN1@SetZero: ; 44 : } ; 45 : } 0002b 5f pop edi 0002c 5e pop esi 0002d 5b pop ebx 0002e 8b e5 mov esp, ebp 00030 5d pop ebp 00031 c3 ret 0 ?SetZero@CAutoBuffer@@QAEXXZ ENDP ; CAutoBuffer::SetZero _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ?GetBufferSize@CAutoBuffer@@QAEJXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?GetBufferSize@CAutoBuffer@@QAEJXZ PROC ; CAutoBuffer::GetBufferSize, COMDAT ; _this$ = ecx ; 35 : { 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 ; 36 : return m_lBufferSize; 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 8b 40 04 mov eax, DWORD PTR [eax+4] ; 37 : } 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 ?GetBufferSize@CAutoBuffer@@QAEJXZ ENDP ; CAutoBuffer::GetBufferSize _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ?GetBuffer@CAutoBuffer@@QAEPADXZ _TEXT SEGMENT _this$ = -4 ; size = 4 ?GetBuffer@CAutoBuffer@@QAEPADXZ PROC ; CAutoBuffer::GetBuffer, COMDAT ; _this$ = ecx ; 30 : { 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 ; 31 : return m_pBuffer; 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 8b 00 mov eax, DWORD PTR [eax] ; 32 : } 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 ?GetBuffer@CAutoBuffer@@QAEPADXZ ENDP ; CAutoBuffer::GetBuffer _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ??1CAutoBuffer@@QAE@XZ _TEXT SEGMENT $T1 = -72 ; size = 4 _this$ = -4 ; size = 4 ??1CAutoBuffer@@QAE@XZ PROC ; CAutoBuffer::~CAutoBuffer, COMDAT ; _this$ = ecx ; 21 : { 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 ; 22 : if ( m_pBuffer ) 0000c 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0000f 83 38 00 cmp DWORD PTR [eax], 0 00012 74 1f je SHORT $LN1@CAutoBuffe ; 23 : { ; 24 : delete m_pBuffer; 00014 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00017 8b 08 mov ecx, DWORD PTR [eax] 00019 89 4d b8 mov DWORD PTR $T1[ebp], ecx 0001c 6a 01 push 1 0001e 8b 55 b8 mov edx, DWORD PTR $T1[ebp] 00021 52 push edx 00022 e8 00 00 00 00 call ??3@YAXPAXI@Z ; operator delete 00027 83 c4 08 add esp, 8 ; 25 : m_pBuffer = NULL; 0002a 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0002d c7 00 00 00 00 00 mov DWORD PTR [eax], 0 $LN1@CAutoBuffe: ; 26 : } ; 27 : } 00033 5f pop edi 00034 5e pop esi 00035 5b pop ebx 00036 8b e5 mov esp, ebp 00038 5d pop ebp 00039 c3 ret 0 ??1CAutoBuffer@@QAE@XZ ENDP ; CAutoBuffer::~CAutoBuffer _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ??0CAutoBuffer@@QAE@J@Z _TEXT SEGMENT $T1 = -72 ; size = 4 _this$ = -4 ; size = 4 _lSize$ = 8 ; size = 4 ??0CAutoBuffer@@QAE@J@Z PROC ; CAutoBuffer::CAutoBuffer, COMDAT ; _this$ = ecx ; 6 : { 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 : m_pBuffer = new char[lSize]; 0000c 8b 45 08 mov eax, DWORD PTR _lSize$[ebp] 0000f 50 push eax 00010 e8 00 00 00 00 call ??_U@YAPAXI@Z ; operator new[] 00015 83 c4 04 add esp, 4 00018 89 45 b8 mov DWORD PTR $T1[ebp], eax 0001b 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0001e 8b 55 b8 mov edx, DWORD PTR $T1[ebp] 00021 89 11 mov DWORD PTR [ecx], edx ; 8 : if ( m_pBuffer ) 00023 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00026 83 38 00 cmp DWORD PTR [eax], 0 00029 74 1f je SHORT $LN2@CAutoBuffe ; 9 : { ; 10 : memset(m_pBuffer , 0 , lSize ); 0002b 8b 45 08 mov eax, DWORD PTR _lSize$[ebp] 0002e 50 push eax 0002f 6a 00 push 0 00031 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00034 8b 11 mov edx, DWORD PTR [ecx] 00036 52 push edx 00037 e8 00 00 00 00 call _memset 0003c 83 c4 0c add esp, 12 ; 0000000cH ; 11 : m_lBufferSize = lSize; 0003f 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00042 8b 4d 08 mov ecx, DWORD PTR _lSize$[ebp] 00045 89 48 04 mov DWORD PTR [eax+4], ecx ; 12 : } 00048 eb 0a jmp SHORT $LN1@CAutoBuffe $LN2@CAutoBuffe: ; 13 : else ; 14 : { ; 15 : m_lBufferSize = 0; 0004a 8b 45 fc mov eax, DWORD PTR _this$[ebp] 0004d c7 40 04 00 00 00 00 mov DWORD PTR [eax+4], 0 $LN1@CAutoBuffe: ; 16 : } ; 17 : } 00054 8b 45 fc mov eax, DWORD PTR _this$[ebp] 00057 5f pop edi 00058 5e pop esi 00059 5b pop ebx 0005a 8b e5 mov esp, ebp 0005c 5d pop ebp 0005d c2 04 00 ret 4 ??0CAutoBuffer@@QAE@J@Z ENDP ; CAutoBuffer::CAutoBuffer _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ___formal$ = 16 ; size = 4 ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp ; COMDAT ?__empty_global_delete@@YAXPAXI@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?__empty_global_delete@@YAXPAXI@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXI@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.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