SmsCenter/Release_Unicode/AutoBuffer.cod

300 lines
8.7 KiB
Plaintext
Raw Normal View History

2025-01-03 16:47:25 +08:00
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0
include listing.inc
2025-01-03 16:47:25 +08:00
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC ??0CAutoBuffer@@QEAA@J@Z ; CAutoBuffer::CAutoBuffer
PUBLIC ??1CAutoBuffer@@QEAA@XZ ; CAutoBuffer::~CAutoBuffer
PUBLIC ?GetBuffer@CAutoBuffer@@QEAAPEADXZ ; CAutoBuffer::GetBuffer
PUBLIC ?GetBufferSize@CAutoBuffer@@QEAAJXZ ; CAutoBuffer::GetBufferSize
PUBLIC ?SetZero@CAutoBuffer@@QEAAXXZ ; CAutoBuffer::SetZero
EXTRN ??3@YAXPEAX_K@Z:PROC ; operator delete
EXTRN ??_U@YAPEAX_K@Z:PROC ; operator new[]
EXTRN memset:PROC
; COMDAT pdata
pdata SEGMENT
$pdata$??0CAutoBuffer@@QEAA@J@Z DD imagerel $LN5
DD imagerel $LN5+114
DD imagerel $unwind$??0CAutoBuffer@@QEAA@J@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$??1CAutoBuffer@@QEAA@XZ DD imagerel $LN4
DD imagerel $LN4+65
DD imagerel $unwind$??1CAutoBuffer@@QEAA@XZ
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?SetZero@CAutoBuffer@@QEAAXXZ DD imagerel $LN4
DD imagerel $LN4+52
DD imagerel $unwind$?SetZero@CAutoBuffer@@QEAAXXZ
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?SetZero@CAutoBuffer@@QEAAXXZ DD 010901H
DD 04209H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$??1CAutoBuffer@@QEAA@XZ DD 010901H
DD 06209H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$??0CAutoBuffer@@QEAA@J@Z DD 010d01H
DD 0620dH
xdata ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?SetZero@CAutoBuffer@@QEAAXXZ
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
this$ = 48
?SetZero@CAutoBuffer@@QEAAXXZ PROC ; CAutoBuffer::SetZero, COMDAT
2025-01-03 16:47:25 +08:00
; 40 : {
$LN4:
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 48 83 ec 28 sub rsp, 40 ; 00000028H
2025-01-03 16:47:25 +08:00
; 41 : if (m_pBuffer)
00009 48 8b 44 24 30 mov rax, QWORD PTR this$[rsp]
0000e 48 83 38 00 cmp QWORD PTR [rax], 0
00012 74 1b je SHORT $LN2@SetZero
2025-01-03 16:47:25 +08:00
; 42 : {
; 43 : memset(m_pBuffer , 0 , m_lBufferSize );
00014 48 8b 44 24 30 mov rax, QWORD PTR this$[rsp]
00019 48 63 40 08 movsxd rax, DWORD PTR [rax+8]
0001d 4c 8b c0 mov r8, rax
00020 33 d2 xor edx, edx
00022 48 8b 44 24 30 mov rax, QWORD PTR this$[rsp]
00027 48 8b 08 mov rcx, QWORD PTR [rax]
0002a e8 00 00 00 00 call memset
$LN2@SetZero:
2025-01-03 16:47:25 +08:00
; 44 : }
; 45 : }
0002f 48 83 c4 28 add rsp, 40 ; 00000028H
00033 c3 ret 0
?SetZero@CAutoBuffer@@QEAAXXZ ENDP ; CAutoBuffer::SetZero
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?GetBufferSize@CAutoBuffer@@QEAAJXZ
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
this$ = 8
?GetBufferSize@CAutoBuffer@@QEAAJXZ PROC ; CAutoBuffer::GetBufferSize, COMDAT
2025-01-03 16:47:25 +08:00
; 35 : {
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
2025-01-03 16:47:25 +08:00
; 36 : return m_lBufferSize;
00005 48 8b 44 24 08 mov rax, QWORD PTR this$[rsp]
0000a 8b 40 08 mov eax, DWORD PTR [rax+8]
2025-01-03 16:47:25 +08:00
; 37 : }
0000d c3 ret 0
?GetBufferSize@CAutoBuffer@@QEAAJXZ ENDP ; CAutoBuffer::GetBufferSize
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?GetBuffer@CAutoBuffer@@QEAAPEADXZ
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
this$ = 8
?GetBuffer@CAutoBuffer@@QEAAPEADXZ PROC ; CAutoBuffer::GetBuffer, COMDAT
2025-01-03 16:47:25 +08:00
; 30 : {
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
2025-01-03 16:47:25 +08:00
; 31 : return m_pBuffer;
00005 48 8b 44 24 08 mov rax, QWORD PTR this$[rsp]
0000a 48 8b 00 mov rax, QWORD PTR [rax]
2025-01-03 16:47:25 +08:00
; 32 : }
0000d c3 ret 0
?GetBuffer@CAutoBuffer@@QEAAPEADXZ ENDP ; CAutoBuffer::GetBuffer
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ??1CAutoBuffer@@QEAA@XZ
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
$T1 = 32
this$ = 64
??1CAutoBuffer@@QEAA@XZ PROC ; CAutoBuffer::~CAutoBuffer, COMDAT
2025-01-03 16:47:25 +08:00
; 21 : {
$LN4:
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 48 83 ec 38 sub rsp, 56 ; 00000038H
2025-01-03 16:47:25 +08:00
; 22 : if ( m_pBuffer )
00009 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
0000e 48 83 38 00 cmp QWORD PTR [rax], 0
00012 74 28 je SHORT $LN2@CAutoBuffe
2025-01-03 16:47:25 +08:00
; 23 : {
; 24 : delete m_pBuffer;
00014 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00019 48 8b 00 mov rax, QWORD PTR [rax]
0001c 48 89 44 24 20 mov QWORD PTR $T1[rsp], rax
00021 ba 01 00 00 00 mov edx, 1
00026 48 8b 4c 24 20 mov rcx, QWORD PTR $T1[rsp]
0002b e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
2025-01-03 16:47:25 +08:00
; 25 : m_pBuffer = NULL;
00030 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00035 48 c7 00 00 00
00 00 mov QWORD PTR [rax], 0
$LN2@CAutoBuffe:
2025-01-03 16:47:25 +08:00
; 26 : }
; 27 : }
0003c 48 83 c4 38 add rsp, 56 ; 00000038H
00040 c3 ret 0
??1CAutoBuffer@@QEAA@XZ ENDP ; CAutoBuffer::~CAutoBuffer
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ??0CAutoBuffer@@QEAA@J@Z
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
$T1 = 32
this$ = 64
lSize$ = 72
??0CAutoBuffer@@QEAA@J@Z PROC ; CAutoBuffer::CAutoBuffer, COMDAT
2025-01-03 16:47:25 +08:00
; 6 : {
$LN5:
00000 89 54 24 10 mov DWORD PTR [rsp+16], edx
00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00009 48 83 ec 38 sub rsp, 56 ; 00000038H
2025-01-03 16:47:25 +08:00
; 7 : m_pBuffer = new char[lSize];
0000d 48 63 44 24 48 movsxd rax, DWORD PTR lSize$[rsp]
00012 48 8b c8 mov rcx, rax
00015 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[]
0001a 48 89 44 24 20 mov QWORD PTR $T1[rsp], rax
0001f 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00024 48 8b 4c 24 20 mov rcx, QWORD PTR $T1[rsp]
00029 48 89 08 mov QWORD PTR [rax], rcx
2025-01-03 16:47:25 +08:00
; 8 : if ( m_pBuffer )
0002c 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00031 48 83 38 00 cmp QWORD PTR [rax], 0
00035 74 25 je SHORT $LN2@CAutoBuffe
2025-01-03 16:47:25 +08:00
; 9 : {
; 10 : memset(m_pBuffer , 0 , lSize );
00037 48 63 44 24 48 movsxd rax, DWORD PTR lSize$[rsp]
0003c 4c 8b c0 mov r8, rax
0003f 33 d2 xor edx, edx
00041 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00046 48 8b 08 mov rcx, QWORD PTR [rax]
00049 e8 00 00 00 00 call memset
2025-01-03 16:47:25 +08:00
; 11 : m_lBufferSize = lSize;
0004e 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00053 8b 4c 24 48 mov ecx, DWORD PTR lSize$[rsp]
00057 89 48 08 mov DWORD PTR [rax+8], ecx
2025-01-03 16:47:25 +08:00
; 12 : }
0005a eb 0c jmp SHORT $LN3@CAutoBuffe
2025-01-03 16:47:25 +08:00
$LN2@CAutoBuffe:
; 13 : else
; 14 : {
; 15 : m_lBufferSize = 0;
0005c 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
00061 c7 40 08 00 00
00 00 mov DWORD PTR [rax+8], 0
$LN3@CAutoBuffe:
2025-01-03 16:47:25 +08:00
; 16 : }
; 17 : }
00068 48 8b 44 24 40 mov rax, QWORD PTR this$[rsp]
0006d 48 83 c4 38 add rsp, 56 ; 00000038H
00071 c3 ret 0
??0CAutoBuffer@@QEAA@J@Z ENDP ; CAutoBuffer::CAutoBuffer
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
__formal$ = 8
__formal$ = 16
__formal$ = 24
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
2025-01-03 16:47:25 +08:00
0000f c3 ret 0
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
__formal$ = 8
__formal$ = 16
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a c3 ret 0
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
__formal$ = 8
__formal$ = 16
?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a c3 ret 0
?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp
2025-01-03 16:47:25 +08:00
; File D:\Works\Corpsms_2010\public\AutoBuffer\AutoBuffer.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX@Z
2025-01-03 16:47:25 +08:00
_TEXT SEGMENT
__formal$ = 8
?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 c3 ret 0
?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete
2025-01-03 16:47:25 +08:00
_TEXT ENDS
END