SmsCenter/Release_Unicode/AutoBuffer.cod

420 lines
12 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$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3
DD imagerel $LN3+19
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3
DD imagerel $LN3+24
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3
DD imagerel $LN3+24
DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3
DD imagerel $LN3+29
DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$??0CAutoBuffer@@QEAA@J@Z DD imagerel $LN5
DD imagerel $LN5+110
DD imagerel $unwind$??0CAutoBuffer@@QEAA@J@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$??1CAutoBuffer@@QEAA@XZ DD imagerel $LN4
DD imagerel $LN4+67
DD imagerel $unwind$??1CAutoBuffer@@QEAA@XZ
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?GetBuffer@CAutoBuffer@@QEAAPEADXZ DD imagerel $LN3
DD imagerel $LN3+26
DD imagerel $unwind$?GetBuffer@CAutoBuffer@@QEAAPEADXZ
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?GetBufferSize@CAutoBuffer@@QEAAJXZ DD imagerel $LN3
DD imagerel $LN3+26
DD imagerel $unwind$?GetBufferSize@CAutoBuffer@@QEAAJXZ
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?SetZero@CAutoBuffer@@QEAAXXZ DD imagerel $LN4
DD imagerel $LN4+56
DD imagerel $unwind$?SetZero@CAutoBuffer@@QEAAXXZ
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?SetZero@CAutoBuffer@@QEAAXXZ DD 025030f01H
DD 0b20a230fH
DD 05006H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?GetBufferSize@CAutoBuffer@@QEAAJXZ DD 05030d01H
DD 0720a030dH
DD 05006H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?GetBuffer@CAutoBuffer@@QEAAPEADXZ DD 05030d01H
DD 0720a030dH
DD 05006H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$??1CAutoBuffer@@QEAA@XZ DD 025030f01H
DD 0d20a230fH
DD 05006H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$??0CAutoBuffer@@QEAA@J@Z DD 025031301H
DD 0d20e2313H
DD 0500aH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 05031701H
DD 072140317H
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 05031201H
DD 0720f0312H
DD 0500bH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 05031201H
DD 0720f0312H
DD 0500bH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?__empty_global_delete@@YAXPEAX@Z DD 05030d01H
DD 0720a030dH
DD 05006H
xdata ENDS
; Function compile flags: /Odtp /ZI
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$ = 80
?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 55 push rbp
00006 48 83 ec 60 sub rsp, 96 ; 00000060H
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
2025-01-03 16:47:25 +08:00
; 41 : if (m_pBuffer)
0000f 48 8b 45 50 mov rax, QWORD PTR this$[rbp]
00013 48 83 38 00 cmp QWORD PTR [rax], 0
00017 74 19 je SHORT $LN2@SetZero
2025-01-03 16:47:25 +08:00
; 42 : {
; 43 : memset(m_pBuffer , 0 , m_lBufferSize );
00019 48 8b 45 50 mov rax, QWORD PTR this$[rbp]
0001d 48 63 40 08 movsxd rax, DWORD PTR [rax+8]
00021 4c 8b c0 mov r8, rax
00024 33 d2 xor edx, edx
00026 48 8b 45 50 mov rax, QWORD PTR this$[rbp]
0002a 48 8b 08 mov rcx, QWORD PTR [rax]
0002d e8 00 00 00 00 call memset
$LN2@SetZero:
2025-01-03 16:47:25 +08:00
; 44 : }
; 45 : }
00032 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00036 5d pop rbp
00037 c3 ret 0
?SetZero@CAutoBuffer@@QEAAXXZ ENDP ; CAutoBuffer::SetZero
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp /ZI
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$ = 80
?GetBufferSize@CAutoBuffer@@QEAAJXZ PROC ; CAutoBuffer::GetBufferSize, COMDAT
2025-01-03 16:47:25 +08:00
; 35 : {
$LN3:
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 48 83 ec 40 sub rsp, 64 ; 00000040H
0000a 48 8b ec mov rbp, rsp
2025-01-03 16:47:25 +08:00
; 36 : return m_lBufferSize;
0000d 48 8b 45 50 mov rax, QWORD PTR this$[rbp]
00011 8b 40 08 mov eax, DWORD PTR [rax+8]
2025-01-03 16:47:25 +08:00
; 37 : }
00014 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00018 5d pop rbp
00019 c3 ret 0
?GetBufferSize@CAutoBuffer@@QEAAJXZ ENDP ; CAutoBuffer::GetBufferSize
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp /ZI
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$ = 80
?GetBuffer@CAutoBuffer@@QEAAPEADXZ PROC ; CAutoBuffer::GetBuffer, COMDAT
2025-01-03 16:47:25 +08:00
; 30 : {
$LN3:
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 48 83 ec 40 sub rsp, 64 ; 00000040H
0000a 48 8b ec mov rbp, rsp
2025-01-03 16:47:25 +08:00
; 31 : return m_pBuffer;
0000d 48 8b 45 50 mov rax, QWORD PTR this$[rbp]
00011 48 8b 00 mov rax, QWORD PTR [rax]
2025-01-03 16:47:25 +08:00
; 32 : }
00014 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00018 5d pop rbp
00019 c3 ret 0
?GetBuffer@CAutoBuffer@@QEAAPEADXZ ENDP ; CAutoBuffer::GetBuffer
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp /ZI
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 = 64
this$ = 96
??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 55 push rbp
00006 48 83 ec 70 sub rsp, 112 ; 00000070H
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
2025-01-03 16:47:25 +08:00
; 22 : if ( m_pBuffer )
0000f 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00013 48 83 38 00 cmp QWORD PTR [rax], 0
00017 74 24 je SHORT $LN2@CAutoBuffe
2025-01-03 16:47:25 +08:00
; 23 : {
; 24 : delete m_pBuffer;
00019 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
0001d 48 8b 00 mov rax, QWORD PTR [rax]
00020 48 89 45 40 mov QWORD PTR $T1[rbp], rax
00024 ba 01 00 00 00 mov edx, 1
00029 48 8b 4d 40 mov rcx, QWORD PTR $T1[rbp]
0002d e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete
2025-01-03 16:47:25 +08:00
; 25 : m_pBuffer = NULL;
00032 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00036 48 c7 00 00 00
00 00 mov QWORD PTR [rax], 0
$LN2@CAutoBuffe:
2025-01-03 16:47:25 +08:00
; 26 : }
; 27 : }
0003d 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00041 5d pop rbp
00042 c3 ret 0
??1CAutoBuffer@@QEAA@XZ ENDP ; CAutoBuffer::~CAutoBuffer
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp /ZI
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 = 64
this$ = 96
lSize$ = 104
??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 55 push rbp
0000a 48 83 ec 70 sub rsp, 112 ; 00000070H
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
2025-01-03 16:47:25 +08:00
; 7 : m_pBuffer = new char[lSize];
00013 48 63 45 68 movsxd rax, DWORD PTR lSize$[rbp]
00017 48 8b c8 mov rcx, rax
0001a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[]
0001f 48 89 45 40 mov QWORD PTR $T1[rbp], rax
00023 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00027 48 8b 4d 40 mov rcx, QWORD PTR $T1[rbp]
0002b 48 89 08 mov QWORD PTR [rax], rcx
2025-01-03 16:47:25 +08:00
; 8 : if ( m_pBuffer )
0002e 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00032 48 83 38 00 cmp QWORD PTR [rax], 0
00036 74 21 je SHORT $LN2@CAutoBuffe
2025-01-03 16:47:25 +08:00
; 9 : {
; 10 : memset(m_pBuffer , 0 , lSize );
00038 48 63 45 68 movsxd rax, DWORD PTR lSize$[rbp]
0003c 4c 8b c0 mov r8, rax
0003f 33 d2 xor edx, edx
00041 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00045 48 8b 08 mov rcx, QWORD PTR [rax]
00048 e8 00 00 00 00 call memset
2025-01-03 16:47:25 +08:00
; 11 : m_lBufferSize = lSize;
0004d 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00051 8b 4d 68 mov ecx, DWORD PTR lSize$[rbp]
00054 89 48 08 mov DWORD PTR [rax+8], ecx
2025-01-03 16:47:25 +08:00
; 12 : }
00057 eb 0b jmp SHORT $LN3@CAutoBuffe
2025-01-03 16:47:25 +08:00
$LN2@CAutoBuffe:
; 13 : else
; 14 : {
; 15 : m_lBufferSize = 0;
00059 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
0005d 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 : }
00064 48 8b 45 60 mov rax, QWORD PTR this$[rbp]
00068 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
0006c 5d pop rbp
0006d c3 ret 0
??0CAutoBuffer@@QEAA@J@Z ENDP ; CAutoBuffer::CAutoBuffer
2025-01-03 16:47:25 +08:00
_TEXT ENDS
; Function compile flags: /Odtp /ZI
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$ = 80
__formal$ = 88
__formal$ = 96
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
$LN3:
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
0000f 55 push rbp
00010 48 83 ec 40 sub rsp, 64 ; 00000040H
00014 48 8b ec mov rbp, rsp
00017 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
0001b 5d pop rbp
0001c 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 /ZI
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$ = 80
__formal$ = 88
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
$LN3:
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 55 push rbp
0000b 48 83 ec 40 sub rsp, 64 ; 00000040H
0000f 48 8b ec mov rbp, rsp
00012 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00016 5d pop rbp
00017 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 /ZI
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$ = 80
__formal$ = 88
?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT
$LN3:
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 55 push rbp
0000b 48 83 ec 40 sub rsp, 64 ; 00000040H
0000f 48 8b ec mov rbp, rsp
00012 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00016 5d pop rbp
00017 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 /ZI
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$ = 80
?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT
$LN3:
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00005 55 push rbp
00006 48 83 ec 40 sub rsp, 64 ; 00000040H
0000a 48 8b ec mov rbp, rsp
0000d 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00011 5d pop rbp
00012 c3 ret 0
?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete
2025-01-03 16:47:25 +08:00
_TEXT ENDS
END