SmsCenter/Release_Unicode/MailCoder.cod

3595 lines
92 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
PUBLIC ?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
PUBLIC ?BASE64_DECODE_TABLE@CMailCoder@@2QBIB ; CMailCoder::BASE64_DECODE_TABLE
PUBLIC ?QUOTED_ENCODE_TABLE@CMailCoder@@2QBEB ; CMailCoder::QUOTED_ENCODE_TABLE
CONST SEGMENT
?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB DB 041H ; CMailCoder::BASE64_ENCODE_TABLE
DB 042H
DB 043H
DB 044H
DB 045H
DB 046H
DB 047H
DB 048H
DB 049H
DB 04aH
DB 04bH
DB 04cH
DB 04dH
DB 04eH
DB 04fH
DB 050H
DB 051H
DB 052H
DB 053H
DB 054H
DB 055H
DB 056H
DB 057H
DB 058H
DB 059H
DB 05aH
DB 061H
DB 062H
DB 063H
DB 064H
DB 065H
DB 066H
DB 067H
DB 068H
DB 069H
DB 06aH
DB 06bH
DB 06cH
DB 06dH
DB 06eH
DB 06fH
DB 070H
DB 071H
DB 072H
DB 073H
DB 074H
DB 075H
DB 076H
DB 077H
DB 078H
DB 079H
DB 07aH
DB 030H
DB 031H
DB 032H
DB 033H
DB 034H
DB 035H
DB 036H
DB 037H
DB 038H
DB 039H
DB 02bH
DB 02fH
?BASE64_DECODE_TABLE@CMailCoder@@2QBIB DD 0ffH ; CMailCoder::BASE64_DECODE_TABLE
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 03eH
DD 0ffH
DD 0ffH
DD 0ffH
DD 03fH
DD 034H
DD 035H
DD 036H
DD 037H
DD 038H
DD 039H
DD 03aH
DD 03bH
DD 03cH
DD 03dH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 00H
DD 01H
DD 02H
DD 03H
DD 04H
DD 05H
DD 06H
DD 07H
DD 08H
DD 09H
DD 0aH
DD 0bH
DD 0cH
DD 0dH
DD 0eH
DD 0fH
DD 010H
DD 011H
DD 012H
DD 013H
DD 014H
DD 015H
DD 016H
DD 017H
DD 018H
DD 019H
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 01aH
DD 01bH
DD 01cH
DD 01dH
DD 01eH
DD 01fH
DD 020H
DD 021H
DD 022H
DD 023H
DD 024H
DD 025H
DD 026H
DD 027H
DD 028H
DD 029H
DD 02aH
DD 02bH
DD 02cH
DD 02dH
DD 02eH
DD 02fH
DD 030H
DD 031H
DD 032H
DD 033H
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
DD 0ffH
?QUOTED_ENCODE_TABLE@CMailCoder@@2QBEB DB 0ffH ; CMailCoder::QUOTED_ENCODE_TABLE
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0aH
DB 0ffH
DB 0ffH
DB 0dH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 021H
DB 022H
DB 023H
DB 024H
DB 025H
DB 026H
DB 027H
DB 028H
DB 029H
DB 02aH
DB 02bH
DB 02cH
DB 02dH
DB 02eH
DB 02fH
DB 030H
DB 031H
DB 032H
DB 033H
DB 034H
DB 035H
DB 036H
DB 037H
DB 038H
DB 039H
DB 03aH
DB 03bH
DB 03cH
DB 0ffH
DB 03eH
DB 03fH
DB 040H
DB 041H
DB 042H
DB 043H
DB 044H
DB 045H
DB 046H
DB 047H
DB 048H
DB 049H
DB 04aH
DB 04bH
DB 04cH
DB 04dH
DB 04eH
DB 04fH
DB 050H
DB 051H
DB 052H
DB 053H
DB 054H
DB 055H
DB 056H
DB 057H
DB 058H
DB 059H
DB 05aH
DB 05bH
DB 05cH
DB 05dH
DB 05eH
DB 05fH
DB 060H
DB 061H
DB 062H
DB 063H
DB 064H
DB 065H
DB 066H
DB 067H
DB 068H
DB 069H
DB 06aH
DB 06bH
DB 06cH
DB 06dH
DB 06eH
DB 06fH
DB 070H
DB 071H
DB 072H
DB 073H
DB 074H
DB 075H
DB 076H
DB 077H
DB 078H
DB 079H
DB 07aH
DB 07bH
DB 07cH
DB 07dH
DB 07eH
DB 07fH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
DB 0ffH
CONST ENDS
_DATA SEGMENT
?m_LineWidth@CMailCoder@@2IA DD 04cH ; CMailCoder::m_LineWidth
_DATA ENDS
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 ?DecToHex@CMailCoder@@CAEE@Z ; CMailCoder::DecToHex
PUBLIC ?HexToDec@CMailCoder@@CAEE@Z ; CMailCoder::HexToDec
PUBLIC ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
PUBLIC ?email_decode@CMailCoder@@QEAAHPEADI0@Z ; CMailCoder::email_decode
PUBLIC ?Base64EncodeSize@CMailCoder@@SAHH@Z ; CMailCoder::Base64EncodeSize
PUBLIC ?Base64DecodeSize@CMailCoder@@SAHH@Z ; CMailCoder::Base64DecodeSize
PUBLIC ?UUEncodeSize@CMailCoder@@SAHH@Z ; CMailCoder::UUEncodeSize
PUBLIC ?UUDecodeSize@CMailCoder@@SAHH@Z ; CMailCoder::UUDecodeSize
PUBLIC ?QuotedEncodeSize@CMailCoder@@SAHH@Z ; CMailCoder::QuotedEncodeSize
PUBLIC ?base64_encode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::base64_encode
PUBLIC ?base64_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::base64_decode
PUBLIC ?UU_encode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::UU_encode
PUBLIC ?UU_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::UU_decode
PUBLIC ?quoted_encode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::quoted_encode
PUBLIC ?quoted_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::quoted_decode
PUBLIC ??_C@_02HENDHKBC@?$DN?$DP@ ; `string'
PUBLIC ??_C@_03FNDDLLIG@?$DPB?$DP@ ; `string'
PUBLIC ??_C@_02EFGBMMPO@?$DP?$DN@ ; `string'
PUBLIC ??_C@_03EDFDKGKP@?$DPQ?$DP@ ; `string'
EXTRN __report_rangecheckfailure:PROC
EXTRN memcpy:PROC
EXTRN memset:PROC
EXTRN strcmp:PROC
EXTRN strlen:PROC
EXTRN strncpy:PROC
EXTRN __GSHandlerCheck:PROC
EXTRN __chkstk:PROC
EXTRN __security_check_cookie:PROC
EXTRN __security_cookie:QWORD
; 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$?DecToHex@CMailCoder@@CAEE@Z DD imagerel $LN5
DD imagerel $LN5+53
DD imagerel $unwind$?DecToHex@CMailCoder@@CAEE@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?HexToDec@CMailCoder@@CAEE@Z DD imagerel $LN5
DD imagerel $LN5+53
DD imagerel $unwind$?HexToDec@CMailCoder@@CAEE@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?FoundChar@CMailCoder@@QEAAHPEAD0J@Z DD imagerel $LN10
DD imagerel $LN10+301
DD imagerel $unwind$?FoundChar@CMailCoder@@QEAAHPEAD0J@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?email_decode@CMailCoder@@QEAAHPEADI0@Z DD imagerel $LN13
DD imagerel $LN13+625
DD imagerel $unwind$?email_decode@CMailCoder@@QEAAHPEADI0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?Base64EncodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
DD imagerel $LN3+67
DD imagerel $unwind$?Base64EncodeSize@CMailCoder@@SAHH@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?Base64DecodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
DD imagerel $LN3+36
DD imagerel $unwind$?Base64DecodeSize@CMailCoder@@SAHH@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?UUEncodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
DD imagerel $LN3+72
DD imagerel $unwind$?UUEncodeSize@CMailCoder@@SAHH@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?UUDecodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
DD imagerel $LN3+36
DD imagerel $unwind$?UUDecodeSize@CMailCoder@@SAHH@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?QuotedEncodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
DD imagerel $LN3+58
DD imagerel $unwind$?QuotedEncodeSize@CMailCoder@@SAHH@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?base64_encode@CMailCoder@@SAHPEADI0@Z DD imagerel $LN14
DD imagerel $LN14+933
DD imagerel $unwind$?base64_encode@CMailCoder@@SAHPEADI0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?base64_decode@CMailCoder@@SAHPEADI0@Z DD imagerel $LN16
DD imagerel $LN16+465
DD imagerel $unwind$?base64_decode@CMailCoder@@SAHPEADI0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?UU_encode@CMailCoder@@SAHPEADI0@Z DD imagerel $LN19
DD imagerel $LN19+616
DD imagerel $unwind$?UU_encode@CMailCoder@@SAHPEADI0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?UU_decode@CMailCoder@@SAHPEADI0@Z DD imagerel $LN18
DD imagerel $LN18+491
DD imagerel $unwind$?UU_decode@CMailCoder@@SAHPEADI0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?quoted_encode@CMailCoder@@SAHPEADI0@Z DD imagerel $LN12
DD imagerel $LN12+432
DD imagerel $unwind$?quoted_encode@CMailCoder@@SAHPEADI0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?quoted_decode@CMailCoder@@SAHPEADI0@Z DD imagerel $LN10
DD imagerel $LN10+408
DD imagerel $unwind$?quoted_decode@CMailCoder@@SAHPEADI0@Z
pdata ENDS
; COMDAT ??_C@_03EDFDKGKP@?$DPQ?$DP@
CONST SEGMENT
??_C@_03EDFDKGKP@?$DPQ?$DP@ DB '?Q?', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_02EFGBMMPO@?$DP?$DN@
CONST SEGMENT
??_C@_02EFGBMMPO@?$DP?$DN@ DB '?=', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_03FNDDLLIG@?$DPB?$DP@
CONST SEGMENT
??_C@_03FNDDLLIG@?$DPB?$DP@ DB '?B?', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_02HENDHKBC@?$DN?$DP@
CONST SEGMENT
??_C@_02HENDHKBC@?$DN?$DP@ DB '=?', 00H ; `string'
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?quoted_decode@CMailCoder@@SAHPEADI0@Z DD 025031b01H
DD 0f216231bH
DD 0500fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?quoted_encode@CMailCoder@@SAHPEADI0@Z DD 025041b01H
DD 0116231bH
DD 0500f0012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?UU_decode@CMailCoder@@SAHPEADI0@Z DD 025041b01H
DD 0116231bH
DD 0500f0012H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?UU_encode@CMailCoder@@SAHPEADI0@Z DD 05031601H
DD 0d2130316H
DD 0500fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?base64_decode@CMailCoder@@SAHPEADI0@Z DD 05031601H
DD 0d2130316H
DD 0500fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?base64_encode@CMailCoder@@SAHPEADI0@Z DD 05031601H
DD 0d2130316H
DD 0500fH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?QuotedEncodeSize@CMailCoder@@SAHH@Z DD 05030c01H
DD 09209030cH
DD 05005H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?UUDecodeSize@CMailCoder@@SAHH@Z DD 05030c01H
DD 07209030cH
DD 05005H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?UUEncodeSize@CMailCoder@@SAHH@Z DD 05030c01H
DD 09209030cH
DD 05005H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?Base64DecodeSize@CMailCoder@@SAHH@Z DD 05030c01H
DD 07209030cH
DD 05005H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?Base64EncodeSize@CMailCoder@@SAHH@Z DD 05030c01H
DD 09209030cH
DD 05005H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?email_decode@CMailCoder@@QEAAHPEADI0@Z DD 025042101H
DD 011c2321H
DD 050150014H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 031H
DW 0115H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?FoundChar@CMailCoder@@QEAAHPEAD0J@Z DD 025043819H
DD 01222327H
DD 050150248H
DD imagerel __GSHandlerCheck
DD 01238H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?HexToDec@CMailCoder@@CAEE@Z DD 05030c01H
DD 09209030cH
DD 05005H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?DecToHex@CMailCoder@@CAEE@Z DD 05030c01H
DD 09209030cH
DD 05005H
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
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?quoted_decode@CMailCoder@@SAHPEADI0@Z
_TEXT SEGMENT
nA$ = 0
nB$ = 1
C$ = 4
InLimitPtr$ = 8
pDestOrg$ = 16
tv88 = 88
tv83 = 88
tv74 = 88
pSrc$ = 112
nSize$ = 120
pDest$ = 128
?quoted_decode@CMailCoder@@SAHPEADI0@Z PROC ; CMailCoder::quoted_decode, COMDAT
; 447 : {
$LN10:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000e 55 push rbp
0000f 48 81 ec 80 00
00 00 sub rsp, 128 ; 00000080H
00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 448 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
0001b 48 83 7d 70 00 cmp QWORD PTR pSrc$[rbp], 0
00020 74 10 je SHORT $LN5@quoted_dec
00022 48 83 bd 80 00
00 00 00 cmp QWORD PTR pDest$[rbp], 0
0002a 74 06 je SHORT $LN5@quoted_dec
0002c 83 7d 78 00 cmp DWORD PTR nSize$[rbp], 0
00030 77 07 ja SHORT $LN4@quoted_dec
$LN5@quoted_dec:
00032 33 c0 xor eax, eax
00034 e9 59 01 00 00 jmp $LN1@quoted_dec
$LN4@quoted_dec:
; 449 :
; 450 : unsigned char nA, nB;
; 451 : char C[2]; //<2F><>ʱ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
; 452 :
; 453 : char *InLimitPtr= pSrc + nSize;
00039 8b 45 78 mov eax, DWORD PTR nSize$[rbp]
0003c 48 8b 4d 70 mov rcx, QWORD PTR pSrc$[rbp]
00040 48 03 c8 add rcx, rax
00043 48 8b c1 mov rax, rcx
00046 48 89 45 08 mov QWORD PTR InLimitPtr$[rbp], rax
; 454 : char *pDestOrg = pDest;
0004a 48 8b 85 80 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00051 48 89 45 10 mov QWORD PTR pDestOrg$[rbp], rax
$LN2@quoted_dec:
; 455 :
; 456 : while (pSrc < InLimitPtr)
00055 48 8b 45 08 mov rax, QWORD PTR InLimitPtr$[rbp]
00059 48 39 45 70 cmp QWORD PTR pSrc$[rbp], rax
0005d 0f 83 1e 01 00
00 jae $LN3@quoted_dec
; 457 : {
; 458 : C[0] = *pSrc++; //<2F><>ȡ<EFBFBD><C8A1>һ<EFBFBD>ַ<EFBFBD>
00063 48 8b 45 70 mov rax, QWORD PTR pSrc$[rbp]
00067 0f b6 00 movzx eax, BYTE PTR [rax]
0006a 88 45 58 mov BYTE PTR tv74[rbp], al
0006d 48 8b 45 70 mov rax, QWORD PTR pSrc$[rbp]
00071 48 ff c0 inc rax
00074 48 89 45 70 mov QWORD PTR pSrc$[rbp], rax
00078 b8 01 00 00 00 mov eax, 1
0007d 48 6b c0 00 imul rax, rax, 0
00081 0f b6 4d 58 movzx ecx, BYTE PTR tv74[rbp]
00085 88 4c 05 04 mov BYTE PTR C$[rbp+rax], cl
; 459 : if (C[0] == '=') //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
00089 b8 01 00 00 00 mov eax, 1
0008e 48 6b c0 00 imul rax, rax, 0
00092 0f be 44 05 04 movsx eax, BYTE PTR C$[rbp+rax]
00097 83 f8 3d cmp eax, 61 ; 0000003dH
0009a 0f 85 b4 00 00
00 jne $LN6@quoted_dec
; 460 : {
; 461 : C[0] = *pSrc++; //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
000a0 48 8b 45 70 mov rax, QWORD PTR pSrc$[rbp]
000a4 0f b6 00 movzx eax, BYTE PTR [rax]
000a7 88 45 58 mov BYTE PTR tv83[rbp], al
000aa 48 8b 45 70 mov rax, QWORD PTR pSrc$[rbp]
000ae 48 ff c0 inc rax
000b1 48 89 45 70 mov QWORD PTR pSrc$[rbp], rax
000b5 b8 01 00 00 00 mov eax, 1
000ba 48 6b c0 00 imul rax, rax, 0
000be 0f b6 4d 58 movzx ecx, BYTE PTR tv83[rbp]
000c2 88 4c 05 04 mov BYTE PTR C$[rbp+rax], cl
; 462 : C[1] = *pSrc++;
000c6 48 8b 45 70 mov rax, QWORD PTR pSrc$[rbp]
000ca 0f b6 00 movzx eax, BYTE PTR [rax]
000cd 88 45 58 mov BYTE PTR tv88[rbp], al
000d0 48 8b 45 70 mov rax, QWORD PTR pSrc$[rbp]
000d4 48 ff c0 inc rax
000d7 48 89 45 70 mov QWORD PTR pSrc$[rbp], rax
000db b8 01 00 00 00 mov eax, 1
000e0 48 6b c0 01 imul rax, rax, 1
000e4 0f b6 4d 58 movzx ecx, BYTE PTR tv88[rbp]
000e8 88 4c 05 04 mov BYTE PTR C$[rbp+rax], cl
; 463 :
; 464 : if (C[0] != '\r')
000ec b8 01 00 00 00 mov eax, 1
000f1 48 6b c0 00 imul rax, rax, 0
000f5 0f be 44 05 04 movsx eax, BYTE PTR C$[rbp+rax]
000fa 83 f8 0d cmp eax, 13
000fd 74 53 je SHORT $LN8@quoted_dec
; 465 : {
; 466 : nA = HexToDec(C[0]); //<2F><><EFBFBD><EFBFBD><EFBFBD>
000ff b8 01 00 00 00 mov eax, 1
00104 48 6b c0 00 imul rax, rax, 0
00108 0f b6 4c 05 04 movzx ecx, BYTE PTR C$[rbp+rax]
0010d e8 00 00 00 00 call ?HexToDec@CMailCoder@@CAEE@Z ; CMailCoder::HexToDec
00112 88 45 00 mov BYTE PTR nA$[rbp], al
; 467 : nB = HexToDec(C[1]);
00115 b8 01 00 00 00 mov eax, 1
0011a 48 6b c0 01 imul rax, rax, 1
0011e 0f b6 4c 05 04 movzx ecx, BYTE PTR C$[rbp+rax]
00123 e8 00 00 00 00 call ?HexToDec@CMailCoder@@CAEE@Z ; CMailCoder::HexToDec
00128 88 45 01 mov BYTE PTR nB$[rbp], al
; 468 : *pDest++ = (nA << 4) + nB;
0012b 0f b6 45 00 movzx eax, BYTE PTR nA$[rbp]
0012f c1 e0 04 shl eax, 4
00132 0f b6 4d 01 movzx ecx, BYTE PTR nB$[rbp]
00136 03 c1 add eax, ecx
00138 48 8b 8d 80 00
00 00 mov rcx, QWORD PTR pDest$[rbp]
0013f 88 01 mov BYTE PTR [rcx], al
00141 48 8b 85 80 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00148 48 ff c0 inc rax
0014b 48 89 85 80 00
00 00 mov QWORD PTR pDest$[rbp], rax
$LN8@quoted_dec:
; 469 : }
; 470 : }
00152 eb 28 jmp SHORT $LN7@quoted_dec
$LN6@quoted_dec:
; 471 : else //<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; 472 : {
; 473 : *pDest++ = C[0];
00154 b8 01 00 00 00 mov eax, 1
00159 48 6b c0 00 imul rax, rax, 0
0015d 48 8b 8d 80 00
00 00 mov rcx, QWORD PTR pDest$[rbp]
00164 0f b6 44 05 04 movzx eax, BYTE PTR C$[rbp+rax]
00169 88 01 mov BYTE PTR [rcx], al
0016b 48 8b 85 80 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00172 48 ff c0 inc rax
00175 48 89 85 80 00
00 00 mov QWORD PTR pDest$[rbp], rax
$LN7@quoted_dec:
; 474 : }
; 475 : }
0017c e9 d4 fe ff ff jmp $LN2@quoted_dec
$LN3@quoted_dec:
; 476 : return (unsigned int)(pDest - pDestOrg);
00181 48 8b 45 10 mov rax, QWORD PTR pDestOrg$[rbp]
00185 48 8b 8d 80 00
00 00 mov rcx, QWORD PTR pDest$[rbp]
0018c 48 2b c8 sub rcx, rax
0018f 48 8b c1 mov rax, rcx
$LN1@quoted_dec:
; 477 : }
00192 48 8d 65 60 lea rsp, QWORD PTR [rbp+96]
00196 5d pop rbp
00197 c3 ret 0
?quoted_decode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::quoted_decode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?quoted_encode@CMailCoder@@SAHPEADI0@Z
_TEXT SEGMENT
Len$ = 0
B$ = 4
InPtr$ = 8
InLimitPtr$ = 16
OutPtr$ = 24
tv74 = 96
pSrc$ = 128
nSize$ = 136
pDest$ = 144
?quoted_encode@CMailCoder@@SAHPEADI0@Z PROC ; CMailCoder::quoted_encode, COMDAT
; 401 : {
$LN12:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000e 55 push rbp
0000f 48 81 ec 90 00
00 00 sub rsp, 144 ; 00000090H
00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 402 : unsigned int Len;
; 403 : unsigned char B; //<2F><>ʱ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
; 404 : char *InPtr, *InLimitPtr;
; 405 : char *OutPtr;
; 406 :
; 407 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
0001b 48 83 bd 80 00
00 00 00 cmp QWORD PTR pSrc$[rbp], 0
00023 74 13 je SHORT $LN7@quoted_enc
00025 48 83 bd 90 00
00 00 00 cmp QWORD PTR pDest$[rbp], 0
0002d 74 09 je SHORT $LN7@quoted_enc
0002f 83 bd 88 00 00
00 00 cmp DWORD PTR nSize$[rbp], 0
00036 77 07 ja SHORT $LN6@quoted_enc
$LN7@quoted_enc:
00038 33 c0 xor eax, eax
0003a e9 6b 01 00 00 jmp $LN1@quoted_enc
$LN6@quoted_enc:
; 408 :
; 409 : InPtr = pSrc;
0003f 48 8b 85 80 00
00 00 mov rax, QWORD PTR pSrc$[rbp]
00046 48 89 45 08 mov QWORD PTR InPtr$[rbp], rax
; 410 : InLimitPtr= InPtr + nSize;
0004a 8b 85 88 00 00
00 mov eax, DWORD PTR nSize$[rbp]
00050 48 8b 4d 08 mov rcx, QWORD PTR InPtr$[rbp]
00054 48 03 c8 add rcx, rax
00057 48 8b c1 mov rax, rcx
0005a 48 89 45 10 mov QWORD PTR InLimitPtr$[rbp], rax
; 411 : OutPtr = pDest;
0005e 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00065 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
$LN2@quoted_enc:
; 412 :
; 413 : while (InPtr < InLimitPtr)
00069 48 8b 45 10 mov rax, QWORD PTR InLimitPtr$[rbp]
0006d 48 39 45 08 cmp QWORD PTR InPtr$[rbp], rax
00071 0f 83 1b 01 00
00 jae $LN3@quoted_enc
; 414 : {
; 415 : Len = 0;
00077 c7 45 00 00 00
00 00 mov DWORD PTR Len$[rbp], 0
$LN4@quoted_enc:
; 416 : while ((InPtr < InLimitPtr) && (Len < m_LineWidth))
0007e 48 8b 45 10 mov rax, QWORD PTR InLimitPtr$[rbp]
00082 48 39 45 08 cmp QWORD PTR InPtr$[rbp], rax
00086 0f 83 c0 00 00
00 jae $LN5@quoted_enc
0008c 8b 05 00 00 00
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
00092 39 45 00 cmp DWORD PTR Len$[rbp], eax
00095 0f 83 b1 00 00
00 jae $LN5@quoted_enc
; 417 : {
; 418 : B = *InPtr++;
0009b 48 8b 45 08 mov rax, QWORD PTR InPtr$[rbp]
0009f 0f b6 00 movzx eax, BYTE PTR [rax]
000a2 88 45 60 mov BYTE PTR tv74[rbp], al
000a5 48 8b 45 08 mov rax, QWORD PTR InPtr$[rbp]
000a9 48 ff c0 inc rax
000ac 48 89 45 08 mov QWORD PTR InPtr$[rbp], rax
000b0 0f b6 45 60 movzx eax, BYTE PTR tv74[rbp]
000b4 88 45 04 mov BYTE PTR B$[rbp], al
; 419 : if (QUOTED_ENCODE_TABLE[ B ] == 255)
000b7 0f b6 45 04 movzx eax, BYTE PTR B$[rbp]
000bb 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?QUOTED_ENCODE_TABLE@CMailCoder@@2QBEB ; CMailCoder::QUOTED_ENCODE_TABLE
000c2 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
000c6 3d ff 00 00 00 cmp eax, 255 ; 000000ffH
000cb 75 5d jne SHORT $LN8@quoted_enc
; 420 : {
; 421 : *OutPtr++ = '=';
000cd 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
000d1 c6 00 3d mov BYTE PTR [rax], 61 ; 0000003dH
000d4 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
000d8 48 ff c0 inc rax
000db 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
; 422 : *OutPtr++ = DecToHex(B >> 4);
000df 0f b6 45 04 movzx eax, BYTE PTR B$[rbp]
000e3 c1 f8 04 sar eax, 4
000e6 0f b6 c8 movzx ecx, al
000e9 e8 00 00 00 00 call ?DecToHex@CMailCoder@@CAEE@Z ; CMailCoder::DecToHex
000ee 48 8b 4d 18 mov rcx, QWORD PTR OutPtr$[rbp]
000f2 88 01 mov BYTE PTR [rcx], al
000f4 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
000f8 48 ff c0 inc rax
000fb 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
; 423 : *OutPtr++ = DecToHex(B & 0x0f);
000ff 0f b6 45 04 movzx eax, BYTE PTR B$[rbp]
00103 83 e0 0f and eax, 15
00106 0f b6 c8 movzx ecx, al
00109 e8 00 00 00 00 call ?DecToHex@CMailCoder@@CAEE@Z ; CMailCoder::DecToHex
0010e 48 8b 4d 18 mov rcx, QWORD PTR OutPtr$[rbp]
00112 88 01 mov BYTE PTR [rcx], al
00114 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
00118 48 ff c0 inc rax
0011b 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
; 424 : Len+=3;
0011f 8b 45 00 mov eax, DWORD PTR Len$[rbp]
00122 83 c0 03 add eax, 3
00125 89 45 00 mov DWORD PTR Len$[rbp], eax
; 425 : }
00128 eb 1d jmp SHORT $LN9@quoted_enc
$LN8@quoted_enc:
; 426 : else
; 427 : {
; 428 : *OutPtr++ = B;
0012a 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
0012e 0f b6 4d 04 movzx ecx, BYTE PTR B$[rbp]
00132 88 08 mov BYTE PTR [rax], cl
00134 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
00138 48 ff c0 inc rax
0013b 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
; 429 : Len++;
0013f 8b 45 00 mov eax, DWORD PTR Len$[rbp]
00142 ff c0 inc eax
00144 89 45 00 mov DWORD PTR Len$[rbp], eax
$LN9@quoted_enc:
; 430 : }
; 431 : }
00147 e9 32 ff ff ff jmp $LN4@quoted_enc
$LN5@quoted_enc:
; 432 : if (Len >= m_LineWidth)
0014c 8b 05 00 00 00
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
00152 39 45 00 cmp DWORD PTR Len$[rbp], eax
00155 72 36 jb SHORT $LN10@quoted_enc
; 433 : {
; 434 : *OutPtr++ = '=';
00157 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
0015b c6 00 3d mov BYTE PTR [rax], 61 ; 0000003dH
0015e 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
00162 48 ff c0 inc rax
00165 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
; 435 : *OutPtr++ = '\r'; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
00169 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
0016d c6 00 0d mov BYTE PTR [rax], 13
00170 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
00174 48 ff c0 inc rax
00177 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
; 436 : *OutPtr++ = '\n';
0017b 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
0017f c6 00 0a mov BYTE PTR [rax], 10
00182 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
00186 48 ff c0 inc rax
00189 48 89 45 18 mov QWORD PTR OutPtr$[rbp], rax
$LN10@quoted_enc:
; 437 : }
; 438 : }
0018d e9 d7 fe ff ff jmp $LN2@quoted_enc
$LN3@quoted_enc:
; 439 : *OutPtr = '\0';
00192 48 8b 45 18 mov rax, QWORD PTR OutPtr$[rbp]
00196 c6 00 00 mov BYTE PTR [rax], 0
; 440 : return (unsigned int) (OutPtr - pDest);
00199 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
001a0 48 8b 4d 18 mov rcx, QWORD PTR OutPtr$[rbp]
001a4 48 2b c8 sub rcx, rax
001a7 48 8b c1 mov rax, rcx
$LN1@quoted_enc:
; 441 : }
001aa 48 8d 65 70 lea rsp, QWORD PTR [rbp+112]
001ae 5d pop rbp
001af c3 ret 0
?quoted_encode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::quoted_encode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?UU_decode@CMailCoder@@SAHPEADI0@Z
_TEXT SEGMENT
C$ = 0
Tmp$ = 4
CurrIndex$ = 8
Index$ = 12
InPtr$ = 16
InLimitPtr$ = 24
OutPtr$ = 32
tv75 = 104
pSrc$ = 128
nSize$ = 136
pDest$ = 144
?UU_decode@CMailCoder@@SAHPEADI0@Z PROC ; CMailCoder::UU_decode, COMDAT
; 341 : {
$LN18:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000e 55 push rbp
0000f 48 81 ec 90 00
00 00 sub rsp, 144 ; 00000090H
00016 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 342 : char C[4]; //<2F><>ʱ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
; 343 : char Tmp;
; 344 : int CurrIndex, Index;
; 345 : char *InPtr, *InLimitPtr;
; 346 : char *OutPtr;
; 347 :
; 348 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
0001b 48 83 bd 80 00
00 00 00 cmp QWORD PTR pSrc$[rbp], 0
00023 74 13 je SHORT $LN8@UU_decode
00025 48 83 bd 90 00
00 00 00 cmp QWORD PTR pDest$[rbp], 0
0002d 74 09 je SHORT $LN8@UU_decode
0002f 83 bd 88 00 00
00 00 cmp DWORD PTR nSize$[rbp], 0
00036 77 07 ja SHORT $LN7@UU_decode
$LN8@UU_decode:
00038 33 c0 xor eax, eax
0003a e9 a6 01 00 00 jmp $LN1@UU_decode
$LN7@UU_decode:
; 349 :
; 350 : CurrIndex = 0;
0003f c7 45 08 00 00
00 00 mov DWORD PTR CurrIndex$[rbp], 0
; 351 :
; 352 : InPtr = pSrc;
00046 48 8b 85 80 00
00 00 mov rax, QWORD PTR pSrc$[rbp]
0004d 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
; 353 : InLimitPtr= InPtr + nSize;
00051 8b 85 88 00 00
00 mov eax, DWORD PTR nSize$[rbp]
00057 48 8b 4d 10 mov rcx, QWORD PTR InPtr$[rbp]
0005b 48 03 c8 add rcx, rax
0005e 48 8b c1 mov rax, rcx
00061 48 89 45 18 mov QWORD PTR InLimitPtr$[rbp], rax
; 354 : OutPtr = pDest;
00065 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
0006c 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
$LN2@UU_decode:
; 355 :
; 356 : while (InPtr != InLimitPtr) //<2F><>ȡ4<C8A1><34><EFBFBD>ַ<EFBFBD>
00070 48 8b 45 18 mov rax, QWORD PTR InLimitPtr$[rbp]
00074 48 39 45 10 cmp QWORD PTR InPtr$[rbp], rax
00078 0f 84 5a 01 00
00 je $LN3@UU_decode
; 357 : {
; 358 : memset(C, 0, sizeof(C));
0007e 41 b8 04 00 00
00 mov r8d, 4
00084 33 d2 xor edx, edx
00086 48 8d 4d 00 lea rcx, QWORD PTR C$[rbp]
0008a e8 00 00 00 00 call memset
; 359 : Index = 0;
0008f c7 45 0c 00 00
00 00 mov DWORD PTR Index$[rbp], 0
$LN6@UU_decode:
; 360 : do
; 361 : {
; 362 : Tmp = *InPtr++;
00096 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
0009a 0f b6 00 movzx eax, BYTE PTR [rax]
0009d 88 45 68 mov BYTE PTR tv75[rbp], al
000a0 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
000a4 48 ff c0 inc rax
000a7 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
000ab 0f b6 45 68 movzx eax, BYTE PTR tv75[rbp]
000af 88 45 04 mov BYTE PTR Tmp$[rbp], al
; 363 : if (Tmp == 0x60)
000b2 0f be 45 04 movsx eax, BYTE PTR Tmp$[rbp]
000b6 83 f8 60 cmp eax, 96 ; 00000060H
000b9 75 06 jne SHORT $LN9@UU_decode
; 364 : {
; 365 : Tmp = 0x20; //Ϊ<>˼<EFBFBD><CBBC><EFBFBD>OutLook Express
000bb c6 45 04 20 mov BYTE PTR Tmp$[rbp], 32 ; 00000020H
; 366 : }
000bf eb 1b jmp SHORT $LN10@UU_decode
$LN9@UU_decode:
; 367 : else if (Tmp =='\r') //<2F>׸<EFBFBD><D7B8><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
000c1 0f be 45 04 movsx eax, BYTE PTR Tmp$[rbp]
000c5 83 f8 0d cmp eax, 13
000c8 75 12 jne SHORT $LN11@UU_decode
; 368 : {
; 369 : InPtr++;
000ca 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
000ce 48 ff c0 inc rax
000d1 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
; 370 : CurrIndex = 0;
000d5 c7 45 08 00 00
00 00 mov DWORD PTR CurrIndex$[rbp], 0
$LN11@UU_decode:
$LN10@UU_decode:
; 371 : }
; 372 :
; 373 : if ((Tmp > 0x20) || ( CurrIndex > 0 ))
000dc 0f be 45 04 movsx eax, BYTE PTR Tmp$[rbp]
000e0 83 f8 20 cmp eax, 32 ; 00000020H
000e3 7f 06 jg SHORT $LN13@UU_decode
000e5 83 7d 08 00 cmp DWORD PTR CurrIndex$[rbp], 0
000e9 7e 2d jle SHORT $LN12@UU_decode
$LN13@UU_decode:
; 374 : {
; 375 : Tmp = Tmp - 0x20;
000eb 0f be 45 04 movsx eax, BYTE PTR Tmp$[rbp]
000ef 83 e8 20 sub eax, 32 ; 00000020H
000f2 88 45 04 mov BYTE PTR Tmp$[rbp], al
; 376 : if (CurrIndex == 0)
000f5 83 7d 08 00 cmp DWORD PTR CurrIndex$[rbp], 0
000f9 75 09 jne SHORT $LN14@UU_decode
; 377 : {
; 378 : CurrIndex = Tmp;
000fb 0f be 45 04 movsx eax, BYTE PTR Tmp$[rbp]
000ff 89 45 08 mov DWORD PTR CurrIndex$[rbp], eax
; 379 : }
00102 eb 14 jmp SHORT $LN15@UU_decode
$LN14@UU_decode:
; 380 : else
; 381 : {
; 382 : C[Index] = Tmp; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׷<EFBFBD><D7B7><EFBFBD>ַ<EFBFBD>
00104 48 63 45 0c movsxd rax, DWORD PTR Index$[rbp]
00108 0f b6 4d 04 movzx ecx, BYTE PTR Tmp$[rbp]
0010c 88 4c 05 00 mov BYTE PTR C$[rbp+rax], cl
; 383 : Index++;
00110 8b 45 0c mov eax, DWORD PTR Index$[rbp]
00113 ff c0 inc eax
00115 89 45 0c mov DWORD PTR Index$[rbp], eax
$LN15@UU_decode:
$LN12@UU_decode:
; 384 : }
; 385 : }
; 386 : }
; 387 : while ((InPtr < InLimitPtr) && (Index < sizeof(C)));
00118 48 8b 45 18 mov rax, QWORD PTR InLimitPtr$[rbp]
0011c 48 39 45 10 cmp QWORD PTR InPtr$[rbp], rax
00120 73 0e jae SHORT $LN16@UU_decode
00122 48 63 45 0c movsxd rax, DWORD PTR Index$[rbp]
00126 48 83 f8 04 cmp rax, 4
0012a 0f 82 66 ff ff
ff jb $LN6@UU_decode
$LN16@UU_decode:
; 388 :
; 389 : OutPtr[0] = (char) ((C[0] << 2) + (C[1] >> 4));
00130 b8 01 00 00 00 mov eax, 1
00135 48 6b c0 00 imul rax, rax, 0
00139 0f be 44 05 00 movsx eax, BYTE PTR C$[rbp+rax]
0013e b9 01 00 00 00 mov ecx, 1
00143 48 6b c9 01 imul rcx, rcx, 1
00147 0f be 4c 0d 00 movsx ecx, BYTE PTR C$[rbp+rcx]
0014c c1 f9 04 sar ecx, 4
0014f 8d 04 81 lea eax, DWORD PTR [rcx+rax*4]
00152 b9 01 00 00 00 mov ecx, 1
00157 48 6b c9 00 imul rcx, rcx, 0
0015b 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
0015f 88 04 0a mov BYTE PTR [rdx+rcx], al
; 390 : OutPtr[1] = (char) ((C[1] << 4) + (C[2] >> 2));
00162 b8 01 00 00 00 mov eax, 1
00167 48 6b c0 01 imul rax, rax, 1
0016b 0f be 44 05 00 movsx eax, BYTE PTR C$[rbp+rax]
00170 c1 e0 04 shl eax, 4
00173 b9 01 00 00 00 mov ecx, 1
00178 48 6b c9 02 imul rcx, rcx, 2
0017c 0f be 4c 0d 00 movsx ecx, BYTE PTR C$[rbp+rcx]
00181 c1 f9 02 sar ecx, 2
00184 03 c1 add eax, ecx
00186 b9 01 00 00 00 mov ecx, 1
0018b 48 6b c9 01 imul rcx, rcx, 1
0018f 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
00193 88 04 0a mov BYTE PTR [rdx+rcx], al
; 391 : OutPtr[2] = (char) ((C[2] << 6) + C[3]);
00196 b8 01 00 00 00 mov eax, 1
0019b 48 6b c0 02 imul rax, rax, 2
0019f 0f be 44 05 00 movsx eax, BYTE PTR C$[rbp+rax]
001a4 c1 e0 06 shl eax, 6
001a7 b9 01 00 00 00 mov ecx, 1
001ac 48 6b c9 03 imul rcx, rcx, 3
001b0 0f be 4c 0d 00 movsx ecx, BYTE PTR C$[rbp+rcx]
001b5 03 c1 add eax, ecx
001b7 b9 01 00 00 00 mov ecx, 1
001bc 48 6b c9 02 imul rcx, rcx, 2
001c0 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
001c4 88 04 0a mov BYTE PTR [rdx+rcx], al
; 392 : OutPtr+=3; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>
001c7 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
001cb 48 83 c0 03 add rax, 3
001cf 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 393 : }
001d3 e9 98 fe ff ff jmp $LN2@UU_decode
$LN3@UU_decode:
; 394 : return (unsigned int)OutPtr - (unsigned int)pDest;
001d8 8b 85 90 00 00
00 mov eax, DWORD PTR pDest$[rbp]
001de 8b 4d 20 mov ecx, DWORD PTR OutPtr$[rbp]
001e1 2b c8 sub ecx, eax
001e3 8b c1 mov eax, ecx
$LN1@UU_decode:
; 395 : }
001e5 48 8d 65 70 lea rsp, QWORD PTR [rbp+112]
001e9 5d pop rbp
001ea c3 ret 0
?UU_decode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::UU_decode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?UU_encode@CMailCoder@@SAHPEADI0@Z
_TEXT SEGMENT
lByteBufferSpace$ = 0
Len$ = 4
B$ = 8
InPtr$ = 16
InLimitPtr$ = 24
OutPtr$ = 32
i$1 = 40
tv81 = 108
pSrc$ = 128
nSize$ = 136
pDest$ = 144
?UU_encode@CMailCoder@@SAHPEADI0@Z PROC ; CMailCoder::UU_encode, COMDAT
; 285 : {
$LN19:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000e 55 push rbp
0000f 48 83 ec 70 sub rsp, 112 ; 00000070H
00013 48 8b ec mov rbp, rsp
; 286 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
00016 48 83 bd 80 00
00 00 00 cmp QWORD PTR pSrc$[rbp], 0
0001e 74 13 je SHORT $LN13@UU_encode
00020 48 83 bd 90 00
00 00 00 cmp QWORD PTR pDest$[rbp], 0
00028 74 09 je SHORT $LN13@UU_encode
0002a 83 bd 88 00 00
00 00 cmp DWORD PTR nSize$[rbp], 0
00031 77 07 ja SHORT $LN12@UU_encode
$LN13@UU_encode:
00033 33 c0 xor eax, eax
00035 e9 28 02 00 00 jmp $LN1@UU_encode
$LN12@UU_encode:
; 287 :
; 288 : unsigned int lByteBufferSpace, Len;
; 289 : unsigned char B[3]; //<2F><>ʱ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
; 290 : char *InPtr, *InLimitPtr;
; 291 : char *OutPtr;
; 292 :
; 293 : InPtr = pSrc;
0003a 48 8b 85 80 00
00 00 mov rax, QWORD PTR pSrc$[rbp]
00041 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
; 294 : InLimitPtr= InPtr + nSize;
00045 8b 85 88 00 00
00 mov eax, DWORD PTR nSize$[rbp]
0004b 48 8b 4d 10 mov rcx, QWORD PTR InPtr$[rbp]
0004f 48 03 c8 add rcx, rax
00052 48 8b c1 mov rax, rcx
00055 48 89 45 18 mov QWORD PTR InLimitPtr$[rbp], rax
; 295 : OutPtr = pDest;
00059 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00060 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
$LN2@UU_encode:
; 296 :
; 297 : while (InPtr < InLimitPtr)
00064 48 8b 45 18 mov rax, QWORD PTR InLimitPtr$[rbp]
00068 48 39 45 10 cmp QWORD PTR InPtr$[rbp], rax
0006c 0f 83 df 01 00
00 jae $LN3@UU_encode
; 298 : {
; 299 : Len = 0;
00072 c7 45 04 00 00
00 00 mov DWORD PTR Len$[rbp], 0
$LN4@UU_encode:
; 300 :
; 301 : while ((InPtr < InLimitPtr) && (Len < m_LineWidth))
00079 48 8b 45 18 mov rax, QWORD PTR InLimitPtr$[rbp]
0007d 48 39 45 10 cmp QWORD PTR InPtr$[rbp], rax
00081 0f 83 a1 01 00
00 jae $LN5@UU_encode
00087 8b 05 00 00 00
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
0008d 39 45 04 cmp DWORD PTR Len$[rbp], eax
00090 0f 83 92 01 00
00 jae $LN5@UU_encode
; 302 : {
; 303 : lByteBufferSpace = (unsigned int) InLimitPtr - (unsigned int) InPtr;
00096 8b 45 10 mov eax, DWORD PTR InPtr$[rbp]
00099 8b 4d 18 mov ecx, DWORD PTR InLimitPtr$[rbp]
0009c 2b c8 sub ecx, eax
0009e 8b c1 mov eax, ecx
000a0 89 45 00 mov DWORD PTR lByteBufferSpace$[rbp], eax
; 304 : if (lByteBufferSpace > 3) lByteBufferSpace = 3; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
000a3 83 7d 00 03 cmp DWORD PTR lByteBufferSpace$[rbp], 3
000a7 76 07 jbe SHORT $LN14@UU_encode
000a9 c7 45 00 03 00
00 00 mov DWORD PTR lByteBufferSpace$[rbp], 3
$LN14@UU_encode:
; 305 : //ȡֵ
; 306 : for (unsigned int i = 0; i < lByteBufferSpace; i++ )
000b0 c7 45 28 00 00
00 00 mov DWORD PTR i$1[rbp], 0
000b7 eb 08 jmp SHORT $LN8@UU_encode
$LN6@UU_encode:
000b9 8b 45 28 mov eax, DWORD PTR i$1[rbp]
000bc ff c0 inc eax
000be 89 45 28 mov DWORD PTR i$1[rbp], eax
$LN8@UU_encode:
000c1 8b 45 00 mov eax, DWORD PTR lByteBufferSpace$[rbp]
000c4 39 45 28 cmp DWORD PTR i$1[rbp], eax
000c7 73 22 jae SHORT $LN7@UU_encode
; 307 : {
; 308 : B[i] = *InPtr++;
000c9 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
000cd 0f b6 00 movzx eax, BYTE PTR [rax]
000d0 88 45 6c mov BYTE PTR tv81[rbp], al
000d3 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
000d7 48 ff c0 inc rax
000da 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
000de 8b 45 28 mov eax, DWORD PTR i$1[rbp]
000e1 0f b6 4d 6c movzx ecx, BYTE PTR tv81[rbp]
000e5 88 4c 05 08 mov BYTE PTR B$[rbp+rax], cl
; 309 : }
000e9 eb ce jmp SHORT $LN6@UU_encode
$LN7@UU_encode:
; 310 : if (Len == 0)
000eb 83 7d 04 00 cmp DWORD PTR Len$[rbp], 0
000ef 75 1a jne SHORT $LN15@UU_encode
; 311 : {
; 312 : *OutPtr++ = 'M';
000f1 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
000f5 c6 00 4d mov BYTE PTR [rax], 77 ; 0000004dH
000f8 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
000fc 48 ff c0 inc rax
000ff 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 313 : Len++;
00103 8b 45 04 mov eax, DWORD PTR Len$[rbp]
00106 ff c0 inc eax
00108 89 45 04 mov DWORD PTR Len$[rbp], eax
$LN15@UU_encode:
; 314 : }
; 315 : //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; 316 : OutPtr[0] = B[0] >> 2;
0010b b8 01 00 00 00 mov eax, 1
00110 48 6b c0 00 imul rax, rax, 0
00114 0f b6 44 05 08 movzx eax, BYTE PTR B$[rbp+rax]
00119 c1 f8 02 sar eax, 2
0011c b9 01 00 00 00 mov ecx, 1
00121 48 6b c9 00 imul rcx, rcx, 0
00125 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
00129 88 04 0a mov BYTE PTR [rdx+rcx], al
; 317 : OutPtr[1] = (unsigned int) (B[0] << 4 & 0x30) + (unsigned int) (B[1] >> 4 & 0x0F);
0012c b8 01 00 00 00 mov eax, 1
00131 48 6b c0 00 imul rax, rax, 0
00135 0f b6 44 05 08 movzx eax, BYTE PTR B$[rbp+rax]
0013a c1 e0 04 shl eax, 4
0013d 83 e0 30 and eax, 48 ; 00000030H
00140 b9 01 00 00 00 mov ecx, 1
00145 48 6b c9 01 imul rcx, rcx, 1
00149 0f b6 4c 0d 08 movzx ecx, BYTE PTR B$[rbp+rcx]
0014e c1 f9 04 sar ecx, 4
00151 83 e1 0f and ecx, 15
00154 03 c1 add eax, ecx
00156 b9 01 00 00 00 mov ecx, 1
0015b 48 6b c9 01 imul rcx, rcx, 1
0015f 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
00163 88 04 0a mov BYTE PTR [rdx+rcx], al
; 318 : OutPtr[2] = (unsigned int) (B[1] << 2 & 0x3C) + (unsigned int) (B[2] >> 6 & 0x03);
00166 b8 01 00 00 00 mov eax, 1
0016b 48 6b c0 01 imul rax, rax, 1
0016f 0f b6 44 05 08 movzx eax, BYTE PTR B$[rbp+rax]
00174 c1 e0 02 shl eax, 2
00177 83 e0 3c and eax, 60 ; 0000003cH
0017a b9 01 00 00 00 mov ecx, 1
0017f 48 6b c9 02 imul rcx, rcx, 2
00183 0f b6 4c 0d 08 movzx ecx, BYTE PTR B$[rbp+rcx]
00188 c1 f9 06 sar ecx, 6
0018b 83 e1 03 and ecx, 3
0018e 03 c1 add eax, ecx
00190 b9 01 00 00 00 mov ecx, 1
00195 48 6b c9 02 imul rcx, rcx, 2
00199 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
0019d 88 04 0a mov BYTE PTR [rdx+rcx], al
; 319 : OutPtr[3] = B[2] & 0x3F;
001a0 b8 01 00 00 00 mov eax, 1
001a5 48 6b c0 02 imul rax, rax, 2
001a9 0f b6 44 05 08 movzx eax, BYTE PTR B$[rbp+rax]
001ae 83 e0 3f and eax, 63 ; 0000003fH
001b1 b9 01 00 00 00 mov ecx, 1
001b6 48 6b c9 03 imul rcx, rcx, 3
001ba 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
001be 88 04 0a mov BYTE PTR [rdx+rcx], al
; 320 : for (i = 0; i < 4; i++)
001c1 c7 45 28 00 00
00 00 mov DWORD PTR i$1[rbp], 0
001c8 eb 08 jmp SHORT $LN11@UU_encode
$LN9@UU_encode:
001ca 8b 45 28 mov eax, DWORD PTR i$1[rbp]
001cd ff c0 inc eax
001cf 89 45 28 mov DWORD PTR i$1[rbp], eax
$LN11@UU_encode:
001d2 83 7d 28 04 cmp DWORD PTR i$1[rbp], 4
001d6 73 36 jae SHORT $LN10@UU_encode
; 321 : {
; 322 : if (OutPtr[i] == NULL)
001d8 8b 45 28 mov eax, DWORD PTR i$1[rbp]
001db 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
001df 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
001e3 85 c0 test eax, eax
001e5 75 0d jne SHORT $LN16@UU_encode
; 323 : OutPtr[i] = '`';//(unsigned char) (OutPtr[i] + 0x60);
001e7 8b 45 28 mov eax, DWORD PTR i$1[rbp]
001ea 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
001ee c6 04 01 60 mov BYTE PTR [rcx+rax], 96 ; 00000060H
001f2 eb 18 jmp SHORT $LN17@UU_encode
$LN16@UU_encode:
; 324 : else
; 325 : OutPtr[i] = ' ' + OutPtr[i];//(unsigned char) (OutPtr[i] + 0x20);
001f4 8b 45 28 mov eax, DWORD PTR i$1[rbp]
001f7 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
001fb 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
001ff 83 c0 20 add eax, 32 ; 00000020H
00202 8b 4d 28 mov ecx, DWORD PTR i$1[rbp]
00205 48 8b 55 20 mov rdx, QWORD PTR OutPtr$[rbp]
00209 88 04 0a mov BYTE PTR [rdx+rcx], al
$LN17@UU_encode:
; 326 : }
0020c eb bc jmp SHORT $LN9@UU_encode
$LN10@UU_encode:
; 327 : OutPtr+=4;
0020e 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
00212 48 83 c0 04 add rax, 4
00216 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 328 : Len+=4;
0021a 8b 45 04 mov eax, DWORD PTR Len$[rbp]
0021d 83 c0 04 add eax, 4
00220 89 45 04 mov DWORD PTR Len$[rbp], eax
; 329 : }
00223 e9 51 fe ff ff jmp $LN4@UU_encode
$LN5@UU_encode:
; 330 :
; 331 : *OutPtr++ = '\r'; //<2F><><EFBFBD>ûس<C3BB>
00228 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
0022c c6 00 0d mov BYTE PTR [rax], 13
0022f 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
00233 48 ff c0 inc rax
00236 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 332 : *OutPtr++ = '\n';
0023a 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
0023e c6 00 0a mov BYTE PTR [rax], 10
00241 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
00245 48 ff c0 inc rax
00248 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 333 : }
0024c e9 13 fe ff ff jmp $LN2@UU_encode
$LN3@UU_encode:
; 334 : return (unsigned int) (OutPtr - pDest);
00251 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00258 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
0025c 48 2b c8 sub rcx, rax
0025f 48 8b c1 mov rax, rcx
$LN1@UU_encode:
; 335 : }
00262 48 8d 65 70 lea rsp, QWORD PTR [rbp+112]
00266 5d pop rbp
00267 c3 ret 0
?UU_encode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::UU_encode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?base64_decode@CMailCoder@@SAHPEADI0@Z
_TEXT SEGMENT
lByteBuffer$ = 0
lByteBufferSpace$ = 4
C$ = 8
reallen$ = 12
InPtr$ = 16
InLimitPtr$ = 24
OutPtr$ = 32
tv89 = 104
pSrc$ = 128
nSize$ = 136
pDest$ = 144
?base64_decode@CMailCoder@@SAHPEADI0@Z PROC ; CMailCoder::base64_decode, COMDAT
; 229 : {
$LN16:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000e 55 push rbp
0000f 48 83 ec 70 sub rsp, 112 ; 00000070H
00013 48 8b ec mov rbp, rsp
; 230 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
00016 48 83 bd 80 00
00 00 00 cmp QWORD PTR pSrc$[rbp], 0
0001e 74 13 je SHORT $LN7@base64_dec
00020 48 83 bd 90 00
00 00 00 cmp QWORD PTR pDest$[rbp], 0
00028 74 09 je SHORT $LN7@base64_dec
0002a 83 bd 88 00 00
00 00 cmp DWORD PTR nSize$[rbp], 0
00031 77 07 ja SHORT $LN6@base64_dec
$LN7@base64_dec:
00033 33 c0 xor eax, eax
00035 e9 91 01 00 00 jmp $LN1@base64_dec
$LN6@base64_dec:
; 231 :
; 232 : unsigned int lByteBuffer, lByteBufferSpace;
; 233 : unsigned int C; //<2F><>ʱ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>
; 234 : int reallen;
; 235 : char *InPtr, *InLimitPtr;
; 236 : char *OutPtr;
; 237 :
; 238 : lByteBuffer = 0; lByteBufferSpace = 4;
0003a c7 45 00 00 00
00 00 mov DWORD PTR lByteBuffer$[rbp], 0
00041 c7 45 04 04 00
00 00 mov DWORD PTR lByteBufferSpace$[rbp], 4
; 239 :
; 240 : InPtr = pSrc;
00048 48 8b 85 80 00
00 00 mov rax, QWORD PTR pSrc$[rbp]
0004f 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
; 241 : InLimitPtr= InPtr + nSize;
00053 8b 85 88 00 00
00 mov eax, DWORD PTR nSize$[rbp]
00059 48 8b 4d 10 mov rcx, QWORD PTR InPtr$[rbp]
0005d 48 03 c8 add rcx, rax
00060 48 8b c1 mov rax, rcx
00063 48 89 45 18 mov QWORD PTR InLimitPtr$[rbp], rax
; 242 : OutPtr = pDest;
00067 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
0006e 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
$LN15@base64_dec:
$LN14@base64_dec:
$LN2@base64_dec:
; 243 :
; 244 : while (InPtr != InLimitPtr)
00072 48 8b 45 18 mov rax, QWORD PTR InLimitPtr$[rbp]
00076 48 39 45 10 cmp QWORD PTR InPtr$[rbp], rax
0007a 0f 84 be 00 00
00 je $LN3@base64_dec
; 245 : {
; 246 : C = BASE64_DECODE_TABLE[*InPtr]; // Read from InputBuffer.
00080 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
00084 48 0f be 00 movsx rax, BYTE PTR [rax]
00088 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_DECODE_TABLE@CMailCoder@@2QBIB ; CMailCoder::BASE64_DECODE_TABLE
0008f 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
00092 89 45 08 mov DWORD PTR C$[rbp], eax
; 247 : InPtr++;
00095 48 8b 45 10 mov rax, QWORD PTR InPtr$[rbp]
00099 48 ff c0 inc rax
0009c 48 89 45 10 mov QWORD PTR InPtr$[rbp], rax
; 248 : if (C == 0xFF) continue; //<2F><><EFBFBD><EFBFBD>255<35>Ƿ<EFBFBD><C7B7>ַ<EFBFBD>
000a0 81 7d 08 ff 00
00 00 cmp DWORD PTR C$[rbp], 255 ; 000000ffH
000a7 75 02 jne SHORT $LN8@base64_dec
000a9 eb c7 jmp SHORT $LN2@base64_dec
$LN8@base64_dec:
; 249 : lByteBuffer = lByteBuffer << 6 ;
000ab 8b 45 00 mov eax, DWORD PTR lByteBuffer$[rbp]
000ae c1 e0 06 shl eax, 6
000b1 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 250 : lByteBuffer = lByteBuffer | C ;
000b4 8b 45 08 mov eax, DWORD PTR C$[rbp]
000b7 8b 4d 00 mov ecx, DWORD PTR lByteBuffer$[rbp]
000ba 0b c8 or ecx, eax
000bc 8b c1 mov eax, ecx
000be 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 251 : lByteBufferSpace--;
000c1 8b 45 04 mov eax, DWORD PTR lByteBufferSpace$[rbp]
000c4 ff c8 dec eax
000c6 89 45 04 mov DWORD PTR lByteBufferSpace$[rbp], eax
; 252 : if (lByteBufferSpace != 0) continue; //һ<>ζ<EFBFBD><CEB6><EFBFBD>4<EFBFBD><34><EFBFBD>ֽ<EFBFBD>
000c9 83 7d 04 00 cmp DWORD PTR lByteBufferSpace$[rbp], 0
000cd 74 02 je SHORT $LN9@base64_dec
000cf eb a1 jmp SHORT $LN14@base64_dec
$LN9@base64_dec:
; 253 : //<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4>3<EFBFBD><33><EFBFBD>ֽڵ<D6BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
; 254 : OutPtr[2] = lByteBuffer;
000d1 b8 01 00 00 00 mov eax, 1
000d6 48 6b c0 02 imul rax, rax, 2
000da 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
000de 0f b6 55 00 movzx edx, BYTE PTR lByteBuffer$[rbp]
000e2 88 14 01 mov BYTE PTR [rcx+rax], dl
; 255 : lByteBuffer = lByteBuffer >> 8;
000e5 8b 45 00 mov eax, DWORD PTR lByteBuffer$[rbp]
000e8 c1 e8 08 shr eax, 8
000eb 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 256 : OutPtr[1] = lByteBuffer;
000ee b8 01 00 00 00 mov eax, 1
000f3 48 6b c0 01 imul rax, rax, 1
000f7 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
000fb 0f b6 55 00 movzx edx, BYTE PTR lByteBuffer$[rbp]
000ff 88 14 01 mov BYTE PTR [rcx+rax], dl
; 257 : lByteBuffer = lByteBuffer >> 8;
00102 8b 45 00 mov eax, DWORD PTR lByteBuffer$[rbp]
00105 c1 e8 08 shr eax, 8
00108 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 258 : OutPtr[0] = lByteBuffer;
0010b b8 01 00 00 00 mov eax, 1
00110 48 6b c0 00 imul rax, rax, 0
00114 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
00118 0f b6 55 00 movzx edx, BYTE PTR lByteBuffer$[rbp]
0011c 88 14 01 mov BYTE PTR [rcx+rax], dl
; 259 : //׼<><D7BC>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
; 260 : OutPtr+= 3; lByteBuffer = 0; lByteBufferSpace = 4;
0011f 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
00123 48 83 c0 03 add rax, 3
00127 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
0012b c7 45 00 00 00
00 00 mov DWORD PTR lByteBuffer$[rbp], 0
00132 c7 45 04 04 00
00 00 mov DWORD PTR lByteBufferSpace$[rbp], 4
; 261 : }
00139 e9 34 ff ff ff jmp $LN15@base64_dec
$LN3@base64_dec:
; 262 : reallen = (unsigned int)OutPtr - (unsigned int)pDest;
0013e 8b 85 90 00 00
00 mov eax, DWORD PTR pDest$[rbp]
00144 8b 4d 20 mov ecx, DWORD PTR OutPtr$[rbp]
00147 2b c8 sub ecx, eax
00149 8b c1 mov eax, ecx
0014b 89 45 0c mov DWORD PTR reallen$[rbp], eax
; 263 : //<2F><><EFBFBD><EFBFBD>β<EFBFBD><CEB2> <20><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʳ<EFBFBD><CAB3><EFBFBD>
; 264 : switch (lByteBufferSpace)
0014e 8b 45 04 mov eax, DWORD PTR lByteBufferSpace$[rbp]
00151 89 45 68 mov DWORD PTR tv89[rbp], eax
00154 83 7d 68 01 cmp DWORD PTR tv89[rbp], 1
00158 74 08 je SHORT $LN10@base64_dec
0015a 83 7d 68 02 cmp DWORD PTR tv89[rbp], 2
0015e 74 44 je SHORT $LN11@base64_dec
00160 eb 66 jmp SHORT $LN12@base64_dec
$LN10@base64_dec:
; 265 : {
; 266 : case 1:
; 267 : lByteBuffer = lByteBuffer >> 2;
00162 8b 45 00 mov eax, DWORD PTR lByteBuffer$[rbp]
00165 c1 e8 02 shr eax, 2
00168 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 268 : OutPtr[1] = lByteBuffer;
0016b b8 01 00 00 00 mov eax, 1
00170 48 6b c0 01 imul rax, rax, 1
00174 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
00178 0f b6 55 00 movzx edx, BYTE PTR lByteBuffer$[rbp]
0017c 88 14 01 mov BYTE PTR [rcx+rax], dl
; 269 : lByteBuffer = lByteBuffer >> 8;
0017f 8b 45 00 mov eax, DWORD PTR lByteBuffer$[rbp]
00182 c1 e8 08 shr eax, 8
00185 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 270 : OutPtr[0] = lByteBuffer;
00188 b8 01 00 00 00 mov eax, 1
0018d 48 6b c0 00 imul rax, rax, 0
00191 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
00195 0f b6 55 00 movzx edx, BYTE PTR lByteBuffer$[rbp]
00199 88 14 01 mov BYTE PTR [rcx+rax], dl
; 271 : return reallen + 2;
0019c 8b 45 0c mov eax, DWORD PTR reallen$[rbp]
0019f 83 c0 02 add eax, 2
001a2 eb 27 jmp SHORT $LN1@base64_dec
$LN11@base64_dec:
; 272 : case 2:
; 273 : lByteBuffer = lByteBuffer >> 4;
001a4 8b 45 00 mov eax, DWORD PTR lByteBuffer$[rbp]
001a7 c1 e8 04 shr eax, 4
001aa 89 45 00 mov DWORD PTR lByteBuffer$[rbp], eax
; 274 : OutPtr[0] = lByteBuffer;
001ad b8 01 00 00 00 mov eax, 1
001b2 48 6b c0 00 imul rax, rax, 0
001b6 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
001ba 0f b6 55 00 movzx edx, BYTE PTR lByteBuffer$[rbp]
001be 88 14 01 mov BYTE PTR [rcx+rax], dl
; 275 : return reallen + 1;
001c1 8b 45 0c mov eax, DWORD PTR reallen$[rbp]
001c4 ff c0 inc eax
001c6 eb 03 jmp SHORT $LN1@base64_dec
$LN12@base64_dec:
; 276 : default:
; 277 : return reallen;
001c8 8b 45 0c mov eax, DWORD PTR reallen$[rbp]
$LN1@base64_dec:
; 278 : }
; 279 : }
001cb 48 8d 65 70 lea rsp, QWORD PTR [rbp+112]
001cf 5d pop rbp
001d0 c3 ret 0
?base64_decode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::base64_decode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?base64_encode@CMailCoder@@SAHPEADI0@Z
_TEXT SEGMENT
iB$ = 0
iInMax3$ = 4
Len$ = 8
pInPtr$ = 16
pInLimitPtr$ = 24
OutPtr$ = 32
tv176 = 104
tv153 = 104
tv88 = 104
tv82 = 104
tv76 = 104
pSrc$ = 128
nSize$ = 136
pDest$ = 144
?base64_encode@CMailCoder@@SAHPEADI0@Z PROC ; CMailCoder::base64_encode, COMDAT
; 153 : {
$LN14:
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000e 55 push rbp
0000f 48 83 ec 70 sub rsp, 112 ; 00000070H
00013 48 8b ec mov rbp, rsp
; 154 : if ((pSrc == NULL) || (nSize <= 0)) return 0;
00016 48 83 bd 80 00
00 00 00 cmp QWORD PTR pSrc$[rbp], 0
0001e 74 09 je SHORT $LN9@base64_enc
00020 83 bd 88 00 00
00 00 cmp DWORD PTR nSize$[rbp], 0
00027 77 07 ja SHORT $LN8@base64_enc
$LN9@base64_enc:
00029 33 c0 xor eax, eax
0002b e9 6f 03 00 00 jmp $LN1@base64_enc
$LN8@base64_enc:
; 155 :
; 156 : unsigned int iB, iInMax3, Len;
; 157 : char *pInPtr, *pInLimitPtr;
; 158 : char *OutPtr ;
; 159 :
; 160 : pInPtr = pSrc;
00030 48 8b 85 80 00
00 00 mov rax, QWORD PTR pSrc$[rbp]
00037 48 89 45 10 mov QWORD PTR pInPtr$[rbp], rax
; 161 : iInMax3 = nSize / 3 * 3;
0003b 33 d2 xor edx, edx
0003d 8b 85 88 00 00
00 mov eax, DWORD PTR nSize$[rbp]
00043 b9 03 00 00 00 mov ecx, 3
00048 f7 f1 div ecx
0004a 6b c0 03 imul eax, eax, 3
0004d 89 45 04 mov DWORD PTR iInMax3$[rbp], eax
; 162 : OutPtr = pDest;
00050 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00057 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 163 : pInLimitPtr = pInPtr + iInMax3;
0005b 8b 45 04 mov eax, DWORD PTR iInMax3$[rbp]
0005e 48 8b 4d 10 mov rcx, QWORD PTR pInPtr$[rbp]
00062 48 03 c8 add rcx, rax
00065 48 8b c1 mov rax, rcx
00068 48 89 45 18 mov QWORD PTR pInLimitPtr$[rbp], rax
$LN2@base64_enc:
; 164 :
; 165 : while (pInPtr != pInLimitPtr)
0006c 48 8b 45 18 mov rax, QWORD PTR pInLimitPtr$[rbp]
00070 48 39 45 10 cmp QWORD PTR pInPtr$[rbp], rax
00074 0f 84 89 01 00
00 je $LN3@base64_enc
; 166 : {
; 167 : Len = 0;
0007a c7 45 08 00 00
00 00 mov DWORD PTR Len$[rbp], 0
$LN4@base64_enc:
; 168 : while ((Len < m_LineWidth) && (pInPtr != pInLimitPtr))
00081 8b 05 00 00 00
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
00087 39 45 08 cmp DWORD PTR Len$[rbp], eax
0008a 0f 83 3f 01 00
00 jae $LN5@base64_enc
00090 48 8b 45 18 mov rax, QWORD PTR pInLimitPtr$[rbp]
00094 48 39 45 10 cmp QWORD PTR pInPtr$[rbp], rax
00098 0f 84 31 01 00
00 je $LN5@base64_enc
; 169 : {
; 170 : iB = (unsigned char) *pInPtr++;
0009e 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
000a2 0f b6 00 movzx eax, BYTE PTR [rax]
000a5 89 45 68 mov DWORD PTR tv76[rbp], eax
000a8 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
000ac 48 ff c0 inc rax
000af 48 89 45 10 mov QWORD PTR pInPtr$[rbp], rax
000b3 8b 45 68 mov eax, DWORD PTR tv76[rbp]
000b6 89 45 00 mov DWORD PTR iB$[rbp], eax
; 171 : iB = iB << 8;
000b9 8b 45 00 mov eax, DWORD PTR iB$[rbp]
000bc c1 e0 08 shl eax, 8
000bf 89 45 00 mov DWORD PTR iB$[rbp], eax
; 172 :
; 173 : iB = iB | (unsigned char) *pInPtr++;
000c2 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
000c6 0f b6 00 movzx eax, BYTE PTR [rax]
000c9 8b 4d 00 mov ecx, DWORD PTR iB$[rbp]
000cc 0b c8 or ecx, eax
000ce 8b c1 mov eax, ecx
000d0 89 45 68 mov DWORD PTR tv82[rbp], eax
000d3 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
000d7 48 ff c0 inc rax
000da 48 89 45 10 mov QWORD PTR pInPtr$[rbp], rax
000de 8b 45 68 mov eax, DWORD PTR tv82[rbp]
000e1 89 45 00 mov DWORD PTR iB$[rbp], eax
; 174 : iB = iB << 8;
000e4 8b 45 00 mov eax, DWORD PTR iB$[rbp]
000e7 c1 e0 08 shl eax, 8
000ea 89 45 00 mov DWORD PTR iB$[rbp], eax
; 175 :
; 176 : iB = iB | (unsigned char) *pInPtr++;
000ed 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
000f1 0f b6 00 movzx eax, BYTE PTR [rax]
000f4 8b 4d 00 mov ecx, DWORD PTR iB$[rbp]
000f7 0b c8 or ecx, eax
000f9 8b c1 mov eax, ecx
000fb 89 45 68 mov DWORD PTR tv88[rbp], eax
000fe 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
00102 48 ff c0 inc rax
00105 48 89 45 10 mov QWORD PTR pInPtr$[rbp], rax
00109 8b 45 68 mov eax, DWORD PTR tv88[rbp]
0010c 89 45 00 mov DWORD PTR iB$[rbp], eax
; 177 :
; 178 : //<2F><>4 byte<74><65><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; 179 : OutPtr[3] = BASE64_ENCODE_TABLE[iB & 0x3F];
0010f 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00112 83 e0 3f and eax, 63 ; 0000003fH
00115 8b c0 mov eax, eax
00117 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
0011e ba 01 00 00 00 mov edx, 1
00123 48 6b d2 03 imul rdx, rdx, 3
00127 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
0012b 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
0012f 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 180 : iB = iB >> 6;
00133 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00136 c1 e8 06 shr eax, 6
00139 89 45 00 mov DWORD PTR iB$[rbp], eax
; 181 : OutPtr[2] = BASE64_ENCODE_TABLE[iB & 0x3F];
0013c 8b 45 00 mov eax, DWORD PTR iB$[rbp]
0013f 83 e0 3f and eax, 63 ; 0000003fH
00142 8b c0 mov eax, eax
00144 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
0014b ba 01 00 00 00 mov edx, 1
00150 48 6b d2 02 imul rdx, rdx, 2
00154 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
00158 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
0015c 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 182 : iB = iB >> 6;
00160 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00163 c1 e8 06 shr eax, 6
00166 89 45 00 mov DWORD PTR iB$[rbp], eax
; 183 : OutPtr[1] = BASE64_ENCODE_TABLE[iB & 0x3F];
00169 8b 45 00 mov eax, DWORD PTR iB$[rbp]
0016c 83 e0 3f and eax, 63 ; 0000003fH
0016f 8b c0 mov eax, eax
00171 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
00178 ba 01 00 00 00 mov edx, 1
0017d 48 6b d2 01 imul rdx, rdx, 1
00181 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
00185 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
00189 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 184 : iB = iB >> 6;
0018d 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00190 c1 e8 06 shr eax, 6
00193 89 45 00 mov DWORD PTR iB$[rbp], eax
; 185 : OutPtr[0] = BASE64_ENCODE_TABLE[iB];
00196 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00199 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
001a0 ba 01 00 00 00 mov edx, 1
001a5 48 6b d2 00 imul rdx, rdx, 0
001a9 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
001ad 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
001b1 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 186 : OutPtr+=4;
001b5 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
001b9 48 83 c0 04 add rax, 4
001bd 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 187 : Len+=4;
001c1 8b 45 08 mov eax, DWORD PTR Len$[rbp]
001c4 83 c0 04 add eax, 4
001c7 89 45 08 mov DWORD PTR Len$[rbp], eax
; 188 : }
001ca e9 b2 fe ff ff jmp $LN4@base64_enc
$LN5@base64_enc:
; 189 : if (Len >= m_LineWidth)
001cf 8b 05 00 00 00
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
001d5 39 45 08 cmp DWORD PTR Len$[rbp], eax
001d8 72 24 jb SHORT $LN10@base64_enc
; 190 : {
; 191 : *OutPtr++ = '\r'; //<2F><><EFBFBD>ϻس<CFBB><D8B3><EFBFBD><EFBFBD>з<EFBFBD>
001da 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
001de c6 00 0d mov BYTE PTR [rax], 13
001e1 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
001e5 48 ff c0 inc rax
001e8 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 192 : *OutPtr++ = '\n';
001ec 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
001f0 c6 00 0a mov BYTE PTR [rax], 10
001f3 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
001f7 48 ff c0 inc rax
001fa 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
$LN10@base64_enc:
; 193 : }
; 194 : }
001fe e9 69 fe ff ff jmp $LN2@base64_enc
$LN3@base64_enc:
; 195 : //<2F><><EFBFBD><EFBFBD>β<EFBFBD><CEB2>
; 196 : switch (nSize - iInMax3)
00203 8b 45 04 mov eax, DWORD PTR iInMax3$[rbp]
00206 8b 8d 88 00 00
00 mov ecx, DWORD PTR nSize$[rbp]
0020c 2b c8 sub ecx, eax
0020e 8b c1 mov eax, ecx
00210 89 45 68 mov DWORD PTR tv153[rbp], eax
00213 83 7d 68 01 cmp DWORD PTR tv153[rbp], 1
00217 74 0f je SHORT $LN11@base64_enc
00219 83 7d 68 02 cmp DWORD PTR tv153[rbp], 2
0021d 0f 84 97 00 00
00 je $LN12@base64_enc
00223 e9 66 01 00 00 jmp $LN6@base64_enc
$LN11@base64_enc:
; 197 : {
; 198 : case 1:
; 199 : iB = (unsigned char) *pInPtr;
00228 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
0022c 0f b6 00 movzx eax, BYTE PTR [rax]
0022f 89 45 00 mov DWORD PTR iB$[rbp], eax
; 200 : iB = iB << 4;
00232 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00235 c1 e0 04 shl eax, 4
00238 89 45 00 mov DWORD PTR iB$[rbp], eax
; 201 : OutPtr[1] = BASE64_ENCODE_TABLE[iB & 0x3F];
0023b 8b 45 00 mov eax, DWORD PTR iB$[rbp]
0023e 83 e0 3f and eax, 63 ; 0000003fH
00241 8b c0 mov eax, eax
00243 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
0024a ba 01 00 00 00 mov edx, 1
0024f 48 6b d2 01 imul rdx, rdx, 1
00253 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
00257 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
0025b 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 202 : iB = iB >> 6;
0025f 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00262 c1 e8 06 shr eax, 6
00265 89 45 00 mov DWORD PTR iB$[rbp], eax
; 203 : OutPtr[0] = BASE64_ENCODE_TABLE[iB];
00268 8b 45 00 mov eax, DWORD PTR iB$[rbp]
0026b 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
00272 ba 01 00 00 00 mov edx, 1
00277 48 6b d2 00 imul rdx, rdx, 0
0027b 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
0027f 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
00283 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 204 : OutPtr[2] = '='; //<2F><>'='Ҳ<><D2B2><EFBFBD><EFBFBD>64<36><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>ಿ<EFBFBD><E0B2BF>
00287 b8 01 00 00 00 mov eax, 1
0028c 48 6b c0 02 imul rax, rax, 2
00290 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
00294 c6 04 01 3d mov BYTE PTR [rcx+rax], 61 ; 0000003dH
; 205 : OutPtr[3] = '=';
00298 b8 01 00 00 00 mov eax, 1
0029d 48 6b c0 03 imul rax, rax, 3
002a1 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
002a5 c6 04 01 3d mov BYTE PTR [rcx+rax], 61 ; 0000003dH
; 206 : OutPtr+=4;
002a9 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
002ad 48 83 c0 04 add rax, 4
002b1 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
; 207 : break;
002b5 e9 d4 00 00 00 jmp $LN6@base64_enc
$LN12@base64_enc:
; 208 : case 2:
; 209 : iB = (unsigned char) *pInPtr++;
002ba 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
002be 0f b6 00 movzx eax, BYTE PTR [rax]
002c1 89 45 68 mov DWORD PTR tv176[rbp], eax
002c4 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
002c8 48 ff c0 inc rax
002cb 48 89 45 10 mov QWORD PTR pInPtr$[rbp], rax
002cf 8b 45 68 mov eax, DWORD PTR tv176[rbp]
002d2 89 45 00 mov DWORD PTR iB$[rbp], eax
; 210 : iB = iB << 8;
002d5 8b 45 00 mov eax, DWORD PTR iB$[rbp]
002d8 c1 e0 08 shl eax, 8
002db 89 45 00 mov DWORD PTR iB$[rbp], eax
; 211 : iB = iB | (unsigned char) *pInPtr;
002de 48 8b 45 10 mov rax, QWORD PTR pInPtr$[rbp]
002e2 0f b6 00 movzx eax, BYTE PTR [rax]
002e5 8b 4d 00 mov ecx, DWORD PTR iB$[rbp]
002e8 0b c8 or ecx, eax
002ea 8b c1 mov eax, ecx
002ec 89 45 00 mov DWORD PTR iB$[rbp], eax
; 212 : iB = iB << 2;
002ef 8b 45 00 mov eax, DWORD PTR iB$[rbp]
002f2 c1 e0 02 shl eax, 2
002f5 89 45 00 mov DWORD PTR iB$[rbp], eax
; 213 : OutPtr[2] = BASE64_ENCODE_TABLE[iB & 0x3F];
002f8 8b 45 00 mov eax, DWORD PTR iB$[rbp]
002fb 83 e0 3f and eax, 63 ; 0000003fH
002fe 8b c0 mov eax, eax
00300 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
00307 ba 01 00 00 00 mov edx, 1
0030c 48 6b d2 02 imul rdx, rdx, 2
00310 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
00314 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
00318 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 214 : iB = iB >> 6;
0031c 8b 45 00 mov eax, DWORD PTR iB$[rbp]
0031f c1 e8 06 shr eax, 6
00322 89 45 00 mov DWORD PTR iB$[rbp], eax
; 215 : OutPtr[1] = BASE64_ENCODE_TABLE[iB & 0x3F];
00325 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00328 83 e0 3f and eax, 63 ; 0000003fH
0032b 8b c0 mov eax, eax
0032d 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
00334 ba 01 00 00 00 mov edx, 1
00339 48 6b d2 01 imul rdx, rdx, 1
0033d 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
00341 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
00345 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 216 : iB = iB >> 6;
00349 8b 45 00 mov eax, DWORD PTR iB$[rbp]
0034c c1 e8 06 shr eax, 6
0034f 89 45 00 mov DWORD PTR iB$[rbp], eax
; 217 : OutPtr[0] = BASE64_ENCODE_TABLE[iB];
00352 8b 45 00 mov eax, DWORD PTR iB$[rbp]
00355 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
0035c ba 01 00 00 00 mov edx, 1
00361 48 6b d2 00 imul rdx, rdx, 0
00365 4c 8b 45 20 mov r8, QWORD PTR OutPtr$[rbp]
00369 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
0036d 41 88 04 10 mov BYTE PTR [r8+rdx], al
; 218 : OutPtr[3] = '='; // Fill remaining byte.
00371 b8 01 00 00 00 mov eax, 1
00376 48 6b c0 03 imul rax, rax, 3
0037a 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
0037e c6 04 01 3d mov BYTE PTR [rcx+rax], 61 ; 0000003dH
; 219 : OutPtr+=4;
00382 48 8b 45 20 mov rax, QWORD PTR OutPtr$[rbp]
00386 48 83 c0 04 add rax, 4
0038a 48 89 45 20 mov QWORD PTR OutPtr$[rbp], rax
$LN6@base64_enc:
; 220 : break;
; 221 : }
; 222 : return (unsigned int) (OutPtr - pDest);
0038e 48 8b 85 90 00
00 00 mov rax, QWORD PTR pDest$[rbp]
00395 48 8b 4d 20 mov rcx, QWORD PTR OutPtr$[rbp]
00399 48 2b c8 sub rcx, rax
0039c 48 8b c1 mov rax, rcx
$LN1@base64_enc:
; 223 : }
0039f 48 8d 65 70 lea rsp, QWORD PTR [rbp+112]
003a3 5d pop rbp
003a4 c3 ret 0
?base64_encode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::base64_encode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?QuotedEncodeSize@CMailCoder@@SAHH@Z
_TEXT SEGMENT
nSize$ = 0
nCR$ = 4
iSize$ = 96
?QuotedEncodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::QuotedEncodeSize, COMDAT
; 142 : {
$LN3:
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
00004 55 push rbp
00005 48 83 ec 50 sub rsp, 80 ; 00000050H
00009 48 8b ec mov rbp, rsp
; 143 : int nSize = iSize * 3 + 1;
0000c 6b 45 60 03 imul eax, DWORD PTR iSize$[rbp], 3
00010 ff c0 inc eax
00012 89 45 00 mov DWORD PTR nSize$[rbp], eax
; 144 : int nCR = nSize / m_LineWidth;
00015 33 d2 xor edx, edx
00017 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
0001a f7 35 00 00 00
00 div DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
00020 89 45 04 mov DWORD PTR nCR$[rbp], eax
; 145 : nSize+= nCR * 3;
00023 6b 45 04 03 imul eax, DWORD PTR nCR$[rbp], 3
00027 8b 4d 00 mov ecx, DWORD PTR nSize$[rbp]
0002a 03 c8 add ecx, eax
0002c 8b c1 mov eax, ecx
0002e 89 45 00 mov DWORD PTR nSize$[rbp], eax
; 146 : return nSize;
00031 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
; 147 : }
00034 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00038 5d pop rbp
00039 c3 ret 0
?QuotedEncodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::QuotedEncodeSize
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?UUDecodeSize@CMailCoder@@SAHH@Z
_TEXT SEGMENT
iSize$ = 80
?UUDecodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::UUDecodeSize, COMDAT
; 134 : {
$LN3:
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
00004 55 push rbp
00005 48 83 ec 40 sub rsp, 64 ; 00000040H
00009 48 8b ec mov rbp, rsp
; 135 : return (iSize + 3) / 4 * 3;
0000c 8b 45 50 mov eax, DWORD PTR iSize$[rbp]
0000f 83 c0 03 add eax, 3
00012 99 cdq
00013 83 e2 03 and edx, 3
00016 03 c2 add eax, edx
00018 c1 f8 02 sar eax, 2
0001b 6b c0 03 imul eax, eax, 3
; 136 : }
0001e 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00022 5d pop rbp
00023 c3 ret 0
?UUDecodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::UUDecodeSize
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?UUEncodeSize@CMailCoder@@SAHH@Z
_TEXT SEGMENT
nSize$ = 0
nCR$ = 4
iSize$ = 96
?UUEncodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::UUEncodeSize, COMDAT
; 122 : {
$LN3:
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
00004 55 push rbp
00005 48 83 ec 50 sub rsp, 80 ; 00000050H
00009 48 8b ec mov rbp, rsp
; 123 : int nSize, nCR;
; 124 : nSize = (iSize + 2) / 3 * 4 ;
0000c 8b 45 60 mov eax, DWORD PTR iSize$[rbp]
0000f 83 c0 02 add eax, 2
00012 99 cdq
00013 b9 03 00 00 00 mov ecx, 3
00018 f7 f9 idiv ecx
0001a c1 e0 02 shl eax, 2
0001d 89 45 00 mov DWORD PTR nSize$[rbp], eax
; 125 : nCR = nSize / m_LineWidth + 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>
00020 33 d2 xor edx, edx
00022 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
00025 f7 35 00 00 00
00 div DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
0002b 83 c0 02 add eax, 2
0002e 89 45 04 mov DWORD PTR nCR$[rbp], eax
; 126 : nSize+= nCR * 3 + 2;
00031 6b 45 04 03 imul eax, DWORD PTR nCR$[rbp], 3
00035 8b 4d 00 mov ecx, DWORD PTR nSize$[rbp]
00038 8d 44 01 02 lea eax, DWORD PTR [rcx+rax+2]
0003c 89 45 00 mov DWORD PTR nSize$[rbp], eax
; 127 : return nSize;
0003f 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
; 128 : }
00042 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00046 5d pop rbp
00047 c3 ret 0
?UUEncodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::UUEncodeSize
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?Base64DecodeSize@CMailCoder@@SAHH@Z
_TEXT SEGMENT
iSize$ = 80
?Base64DecodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::Base64DecodeSize, COMDAT
; 114 : {
$LN3:
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
00004 55 push rbp
00005 48 83 ec 40 sub rsp, 64 ; 00000040H
00009 48 8b ec mov rbp, rsp
; 115 : return (iSize + 3) / 4 * 3;
0000c 8b 45 50 mov eax, DWORD PTR iSize$[rbp]
0000f 83 c0 03 add eax, 3
00012 99 cdq
00013 83 e2 03 and edx, 3
00016 03 c2 add eax, edx
00018 c1 f8 02 sar eax, 2
0001b 6b c0 03 imul eax, eax, 3
; 116 : }
0001e 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00022 5d pop rbp
00023 c3 ret 0
?Base64DecodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::Base64DecodeSize
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?Base64EncodeSize@CMailCoder@@SAHH@Z
_TEXT SEGMENT
nSize$ = 0
nCR$ = 4
iSize$ = 96
?Base64EncodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::Base64EncodeSize, COMDAT
; 102 : {
$LN3:
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
00004 55 push rbp
00005 48 83 ec 50 sub rsp, 80 ; 00000050H
00009 48 8b ec mov rbp, rsp
; 103 : int nSize, nCR;
; 104 : nSize = (iSize + 2) / 3 * 4 ;
0000c 8b 45 60 mov eax, DWORD PTR iSize$[rbp]
0000f 83 c0 02 add eax, 2
00012 99 cdq
00013 b9 03 00 00 00 mov ecx, 3
00018 f7 f9 idiv ecx
0001a c1 e0 02 shl eax, 2
0001d 89 45 00 mov DWORD PTR nSize$[rbp], eax
; 105 : nCR = nSize / m_LineWidth; //<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>
00020 33 d2 xor edx, edx
00022 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
00025 f7 35 00 00 00
00 div DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
0002b 89 45 04 mov DWORD PTR nCR$[rbp], eax
; 106 : nSize+= nCR * 2;
0002e 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
00031 8b 4d 04 mov ecx, DWORD PTR nCR$[rbp]
00034 8d 04 48 lea eax, DWORD PTR [rax+rcx*2]
00037 89 45 00 mov DWORD PTR nSize$[rbp], eax
; 107 : return nSize;
0003a 8b 45 00 mov eax, DWORD PTR nSize$[rbp]
; 108 : }
0003d 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00041 5d pop rbp
00042 c3 ret 0
?Base64EncodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::Base64EncodeSize
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?email_decode@CMailCoder@@QEAAHPEADI0@Z
_TEXT SEGMENT
iSize$ = 0
pSrc2$ = 8
iSrc2Len$ = 16
iDestLen$ = 20
iStart2$1 = 24
iStart$2 = 28
iEnd$3 = 32
iRet$4 = 36
iEnd$5 = 40
iRet$6 = 44
tv172 = 112
this$ = 144
pSrc$ = 152
nSize$ = 160
pDest$ = 168
?email_decode@CMailCoder@@QEAAHPEADI0@Z PROC ; CMailCoder::email_decode, COMDAT
; 499 : {
$LN13:
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00014 55 push rbp
00015 48 81 ec a0 00
00 00 sub rsp, 160 ; 000000a0H
0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 500 : int iSize=0;
00021 c7 45 00 00 00
00 00 mov DWORD PTR iSize$[rbp], 0
; 501 : char * pSrc2=pSrc;
00028 48 8b 85 98 00
00 00 mov rax, QWORD PTR pSrc$[rbp]
0002f 48 89 45 08 mov QWORD PTR pSrc2$[rbp], rax
; 502 : int iSrc2Len=0;
00033 c7 45 10 00 00
00 00 mov DWORD PTR iSrc2Len$[rbp], 0
; 503 : int iDestLen=0;
0003a c7 45 14 00 00
00 00 mov DWORD PTR iDestLen$[rbp], 0
$LN2@email_deco:
; 504 : while ( true )
00041 33 c0 xor eax, eax
00043 83 f8 01 cmp eax, 1
00046 0f 84 b7 01 00
00 je $LN3@email_deco
; 505 : {
; 506 : int iStart2 = FoundChar(pSrc2,"=?");
0004c 45 33 c9 xor r9d, r9d
0004f 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_02HENDHKBC@?$DN?$DP@
00056 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
0005a 48 8b 8d 90 00
00 00 mov rcx, QWORD PTR this$[rbp]
00061 e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
00066 89 45 18 mov DWORD PTR iStart2$1[rbp], eax
; 507 : if ( iStart2 >= 0 )
00069 83 7d 18 00 cmp DWORD PTR iStart2$1[rbp], 0
0006d 0f 8c 89 01 00
00 jl $LN4@email_deco
; 508 : {
; 509 : strncpy(pDest+iDestLen,pSrc2,iStart2);
00073 48 63 45 18 movsxd rax, DWORD PTR iStart2$1[rbp]
00077 48 63 4d 14 movsxd rcx, DWORD PTR iDestLen$[rbp]
0007b 48 8b 95 a8 00
00 00 mov rdx, QWORD PTR pDest$[rbp]
00082 48 03 d1 add rdx, rcx
00085 48 8b ca mov rcx, rdx
00088 4c 8b c0 mov r8, rax
0008b 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
0008f e8 00 00 00 00 call strncpy
; 510 : iDestLen +=iStart2;
00094 8b 45 18 mov eax, DWORD PTR iStart2$1[rbp]
00097 8b 4d 14 mov ecx, DWORD PTR iDestLen$[rbp]
0009a 03 c8 add ecx, eax
0009c 8b c1 mov eax, ecx
0009e 89 45 14 mov DWORD PTR iDestLen$[rbp], eax
; 511 : pSrc2+=iStart2+2; //=?Ϊ2<CEAA><32><EFBFBD>ֽ<EFBFBD>
000a1 8b 45 18 mov eax, DWORD PTR iStart2$1[rbp]
000a4 83 c0 02 add eax, 2
000a7 48 98 cdqe
000a9 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
000ad 48 03 c8 add rcx, rax
000b0 48 8b c1 mov rax, rcx
000b3 48 89 45 08 mov QWORD PTR pSrc2$[rbp], rax
; 512 : int iStart = FoundChar(pSrc2,"?B?");
000b7 45 33 c9 xor r9d, r9d
000ba 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_03FNDDLLIG@?$DPB?$DP@
000c1 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
000c5 48 8b 8d 90 00
00 00 mov rcx, QWORD PTR this$[rbp]
000cc e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
000d1 89 45 1c mov DWORD PTR iStart$2[rbp], eax
; 513 : if ( iStart > 0 )
000d4 83 7d 1c 00 cmp DWORD PTR iStart$2[rbp], 0
000d8 7e 7f jle SHORT $LN6@email_deco
; 514 : {
; 515 : //iStart += 3; //?B?Ϊ3<CEAA><33><EFBFBD>ֽ<EFBFBD>
; 516 : pSrc2=pSrc2+iStart+3; //?B?Ϊ3<CEAA><33><EFBFBD>ֽ<EFBFBD>
000da 48 63 45 1c movsxd rax, DWORD PTR iStart$2[rbp]
000de 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
000e2 48 8d 44 01 03 lea rax, QWORD PTR [rcx+rax+3]
000e7 48 89 45 08 mov QWORD PTR pSrc2$[rbp], rax
; 517 : int iEnd = FoundChar(pSrc2,"?=");
000eb 45 33 c9 xor r9d, r9d
000ee 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_02EFGBMMPO@?$DP?$DN@
000f5 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
000f9 48 8b 8d 90 00
00 00 mov rcx, QWORD PTR this$[rbp]
00100 e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
00105 89 45 20 mov DWORD PTR iEnd$3[rbp], eax
; 518 : if ( iEnd > 1 )
00108 83 7d 20 01 cmp DWORD PTR iEnd$3[rbp], 1
0010c 7e 46 jle SHORT $LN8@email_deco
; 519 : {
; 520 : int iRet = base64_decode(pSrc2,iEnd,pDest+iDestLen);
0010e 48 63 45 14 movsxd rax, DWORD PTR iDestLen$[rbp]
00112 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR pDest$[rbp]
00119 48 03 c8 add rcx, rax
0011c 48 8b c1 mov rax, rcx
0011f 4c 8b c0 mov r8, rax
00122 8b 55 20 mov edx, DWORD PTR iEnd$3[rbp]
00125 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
00129 e8 00 00 00 00 call ?base64_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::base64_decode
0012e 89 45 24 mov DWORD PTR iRet$4[rbp], eax
; 521 : pSrc2 += iEnd+2; //"?="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
00131 8b 45 20 mov eax, DWORD PTR iEnd$3[rbp]
00134 83 c0 02 add eax, 2
00137 48 98 cdqe
00139 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
0013d 48 03 c8 add rcx, rax
00140 48 8b c1 mov rax, rcx
00143 48 89 45 08 mov QWORD PTR pSrc2$[rbp], rax
; 522 : iDestLen += iRet;
00147 8b 45 24 mov eax, DWORD PTR iRet$4[rbp]
0014a 8b 4d 14 mov ecx, DWORD PTR iDestLen$[rbp]
0014d 03 c8 add ecx, eax
0014f 8b c1 mov eax, ecx
00151 89 45 14 mov DWORD PTR iDestLen$[rbp], eax
$LN8@email_deco:
; 523 : }
; 524 : }
00154 e9 a1 00 00 00 jmp $LN7@email_deco
$LN6@email_deco:
; 525 : else
; 526 : {
; 527 : iStart = FoundChar(pSrc2,"?Q?");
00159 45 33 c9 xor r9d, r9d
0015c 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_03EDFDKGKP@?$DPQ?$DP@
00163 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
00167 48 8b 8d 90 00
00 00 mov rcx, QWORD PTR this$[rbp]
0016e e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
00173 89 45 1c mov DWORD PTR iStart$2[rbp], eax
; 528 : if ( iStart > 0 )
00176 83 7d 1c 00 cmp DWORD PTR iStart$2[rbp], 0
0017a 7e 7c jle SHORT $LN9@email_deco
; 529 : {
; 530 : pSrc2=pSrc2+iStart+3; //?B?Ϊ3<CEAA><33><EFBFBD>ֽ<EFBFBD>
0017c 48 63 45 1c movsxd rax, DWORD PTR iStart$2[rbp]
00180 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
00184 48 8d 44 01 03 lea rax, QWORD PTR [rcx+rax+3]
00189 48 89 45 08 mov QWORD PTR pSrc2$[rbp], rax
; 531 : int iEnd = FoundChar(pSrc2,"?=");
0018d 45 33 c9 xor r9d, r9d
00190 4c 8d 05 00 00
00 00 lea r8, OFFSET FLAT:??_C@_02EFGBMMPO@?$DP?$DN@
00197 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
0019b 48 8b 8d 90 00
00 00 mov rcx, QWORD PTR this$[rbp]
001a2 e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
001a7 89 45 28 mov DWORD PTR iEnd$5[rbp], eax
; 532 : if ( iEnd > 1 )
001aa 83 7d 28 01 cmp DWORD PTR iEnd$5[rbp], 1
001ae 7e 46 jle SHORT $LN11@email_deco
; 533 : {
; 534 : int iRet = quoted_decode(pSrc2,iEnd,pDest+iDestLen);
001b0 48 63 45 14 movsxd rax, DWORD PTR iDestLen$[rbp]
001b4 48 8b 8d a8 00
00 00 mov rcx, QWORD PTR pDest$[rbp]
001bb 48 03 c8 add rcx, rax
001be 48 8b c1 mov rax, rcx
001c1 4c 8b c0 mov r8, rax
001c4 8b 55 28 mov edx, DWORD PTR iEnd$5[rbp]
001c7 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
001cb e8 00 00 00 00 call ?quoted_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::quoted_decode
001d0 89 45 2c mov DWORD PTR iRet$6[rbp], eax
; 535 : pSrc2 += iEnd+2; //"?="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
001d3 8b 45 28 mov eax, DWORD PTR iEnd$5[rbp]
001d6 83 c0 02 add eax, 2
001d9 48 98 cdqe
001db 48 8b 4d 08 mov rcx, QWORD PTR pSrc2$[rbp]
001df 48 03 c8 add rcx, rax
001e2 48 8b c1 mov rax, rcx
001e5 48 89 45 08 mov QWORD PTR pSrc2$[rbp], rax
; 536 : iDestLen += iRet;
001e9 8b 45 2c mov eax, DWORD PTR iRet$6[rbp]
001ec 8b 4d 14 mov ecx, DWORD PTR iDestLen$[rbp]
001ef 03 c8 add ecx, eax
001f1 8b c1 mov eax, ecx
001f3 89 45 14 mov DWORD PTR iDestLen$[rbp], eax
$LN11@email_deco:
; 537 : }
; 538 : }
001f6 eb 02 jmp SHORT $LN10@email_deco
$LN9@email_deco:
; 539 : else
; 540 : {
; 541 : break;
001f8 eb 09 jmp SHORT $LN3@email_deco
$LN10@email_deco:
$LN7@email_deco:
; 542 : }
; 543 : }
; 544 : }
001fa eb 02 jmp SHORT $LN5@email_deco
$LN4@email_deco:
; 545 : else
; 546 : {
; 547 : break;
001fc eb 05 jmp SHORT $LN3@email_deco
$LN5@email_deco:
; 548 : }
; 549 : }
001fe e9 3e fe ff ff jmp $LN2@email_deco
$LN3@email_deco:
; 550 : strncpy( pDest+iDestLen,pSrc+(pSrc2-pSrc),nSize-(pSrc2-pSrc) ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
00203 8b 85 a0 00 00
00 mov eax, DWORD PTR nSize$[rbp]
00209 48 8b 8d 98 00
00 00 mov rcx, QWORD PTR pSrc$[rbp]
00210 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
00214 48 2b d1 sub rdx, rcx
00217 48 8b ca mov rcx, rdx
0021a 48 2b c1 sub rax, rcx
0021d 48 8b 8d 98 00
00 00 mov rcx, QWORD PTR pSrc$[rbp]
00224 48 8b 55 08 mov rdx, QWORD PTR pSrc2$[rbp]
00228 48 2b d1 sub rdx, rcx
0022b 48 8b ca mov rcx, rdx
0022e 48 8b 95 98 00
00 00 mov rdx, QWORD PTR pSrc$[rbp]
00235 48 03 d1 add rdx, rcx
00238 48 8b ca mov rcx, rdx
0023b 48 63 55 14 movsxd rdx, DWORD PTR iDestLen$[rbp]
0023f 4c 8b 85 a8 00
00 00 mov r8, QWORD PTR pDest$[rbp]
00246 4c 03 c2 add r8, rdx
00249 49 8b d0 mov rdx, r8
0024c 48 89 55 70 mov QWORD PTR tv172[rbp], rdx
00250 4c 8b c0 mov r8, rax
00253 48 8b d1 mov rdx, rcx
00256 48 8b 45 70 mov rax, QWORD PTR tv172[rbp]
0025a 48 8b c8 mov rcx, rax
0025d e8 00 00 00 00 call strncpy
; 551 :
; 552 : return nSize;
00262 8b 85 a0 00 00
00 mov eax, DWORD PTR nSize$[rbp]
; 553 : }
00268 48 8d a5 80 00
00 00 lea rsp, QWORD PTR [rbp+128]
0026f 5d pop rbp
00270 c3 ret 0
?email_decode@CMailCoder@@QEAAHPEADI0@Z ENDP ; CMailCoder::email_decode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z
_TEXT SEGMENT
pComp$ = 0
lLen2$ = 4096
j$ = 4100
i$1 = 4104
$T2 = 4624
__$ArrayPad$ = 4632
this$ = 4656
szSrc$ = 4664
pEx$ = 4672
lLen$ = 4680
?FoundChar@CMailCoder@@QEAAHPEAD0J@Z PROC ; CMailCoder::FoundChar, COMDAT
; 556 : {
$LN10:
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
00014 55 push rbp
00015 b8 40 12 00 00 mov eax, 4672 ; 00001240H
0001a e8 00 00 00 00 call __chkstk
0001f 48 2b e0 sub rsp, rax
00022 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00027 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0002e 48 33 c5 xor rax, rbp
00031 48 89 85 18 12
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
; 557 : char pComp[4096];
; 558 : if ( lLen == 0 ) //<2F><><EFBFBD><EFBFBD>ûָ<C3BB><D6B8><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>ȡԭ<C8A1>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
00038 83 bd 48 12 00
00 00 cmp DWORD PTR lLen$[rbp], 0
0003f 75 12 jne SHORT $LN5@FoundChar
; 559 : lLen = strlen( szSrc );
00041 48 8b 8d 38 12
00 00 mov rcx, QWORD PTR szSrc$[rbp]
00048 e8 00 00 00 00 call strlen
0004d 89 85 48 12 00
00 mov DWORD PTR lLen$[rbp], eax
$LN5@FoundChar:
; 560 : long lLen2= strlen( pEx );
00053 48 8b 8d 40 12
00 00 mov rcx, QWORD PTR pEx$[rbp]
0005a e8 00 00 00 00 call strlen
0005f 89 85 00 10 00
00 mov DWORD PTR lLen2$[rbp], eax
; 561 : int j =0;
00065 c7 85 04 10 00
00 00 00 00 00 mov DWORD PTR j$[rbp], 0
; 562 : for ( int i =0 ; i< lLen ; i++ )
0006f c7 85 08 10 00
00 00 00 00 00 mov DWORD PTR i$1[rbp], 0
00079 eb 0e jmp SHORT $LN4@FoundChar
$LN2@FoundChar:
0007b 8b 85 08 10 00
00 mov eax, DWORD PTR i$1[rbp]
00081 ff c0 inc eax
00083 89 85 08 10 00
00 mov DWORD PTR i$1[rbp], eax
$LN4@FoundChar:
00089 8b 85 48 12 00
00 mov eax, DWORD PTR lLen$[rbp]
0008f 39 85 08 10 00
00 cmp DWORD PTR i$1[rbp], eax
00095 7d 79 jge SHORT $LN3@FoundChar
; 563 : {
; 564 : memcpy( pComp , szSrc+i , lLen2 );
00097 48 63 85 00 10
00 00 movsxd rax, DWORD PTR lLen2$[rbp]
0009e 48 63 8d 08 10
00 00 movsxd rcx, DWORD PTR i$1[rbp]
000a5 48 8b 95 38 12
00 00 mov rdx, QWORD PTR szSrc$[rbp]
000ac 48 03 d1 add rdx, rcx
000af 48 8b ca mov rcx, rdx
000b2 4c 8b c0 mov r8, rax
000b5 48 8b d1 mov rdx, rcx
000b8 48 8d 4d 00 lea rcx, QWORD PTR pComp$[rbp]
000bc e8 00 00 00 00 call memcpy
; 565 : pComp[lLen2] = 0;
000c1 48 63 85 00 10
00 00 movsxd rax, DWORD PTR lLen2$[rbp]
000c8 48 89 85 10 12
00 00 mov QWORD PTR $T2[rbp], rax
000cf 48 81 bd 10 12
00 00 00 10 00
00 cmp QWORD PTR $T2[rbp], 4096 ; 00001000H
000da 73 02 jae SHORT $LN8@FoundChar
000dc eb 05 jmp SHORT $LN9@FoundChar
$LN8@FoundChar:
000de e8 00 00 00 00 call __report_rangecheckfailure
$LN9@FoundChar:
000e3 48 8b 85 10 12
00 00 mov rax, QWORD PTR $T2[rbp]
000ea c6 44 05 00 00 mov BYTE PTR pComp$[rbp+rax], 0
; 566 : if (!strcmp( pComp , pEx ) )
000ef 48 8b 95 40 12
00 00 mov rdx, QWORD PTR pEx$[rbp]
000f6 48 8d 4d 00 lea rcx, QWORD PTR pComp$[rbp]
000fa e8 00 00 00 00 call strcmp
000ff 85 c0 test eax, eax
00101 75 08 jne SHORT $LN6@FoundChar
; 567 : {
; 568 : return i;
00103 8b 85 08 10 00
00 mov eax, DWORD PTR i$1[rbp]
00109 eb 0a jmp SHORT $LN1@FoundChar
$LN6@FoundChar:
; 569 : }
; 570 : }
0010b e9 6b ff ff ff jmp $LN2@FoundChar
$LN3@FoundChar:
; 571 : return -1;
00110 b8 ff ff ff ff mov eax, -1
$LN1@FoundChar:
$LN7@FoundChar:
; 572 : }
00115 48 8b 8d 18 12
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
0011c 48 33 cd xor rcx, rbp
0011f e8 00 00 00 00 call __security_check_cookie
00124 48 8d a5 20 12
00 00 lea rsp, QWORD PTR [rbp+4640]
0012b 5d pop rbp
0012c c3 ret 0
?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ENDP ; CMailCoder::FoundChar
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?HexToDec@CMailCoder@@CAEE@Z
_TEXT SEGMENT
tv71 = 64
C$ = 96
?HexToDec@CMailCoder@@CAEE@Z PROC ; CMailCoder::HexToDec, COMDAT
; 491 : {
$LN5:
00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl
00004 55 push rbp
00005 48 83 ec 50 sub rsp, 80 ; 00000050H
00009 48 8b ec mov rbp, rsp
; 492 : return C <= '9' ? C - '0' : C - 'A' + 10;
0000c 0f b6 45 60 movzx eax, BYTE PTR C$[rbp]
00010 83 f8 39 cmp eax, 57 ; 00000039H
00013 7f 0c jg SHORT $LN3@HexToDec
00015 0f b6 45 60 movzx eax, BYTE PTR C$[rbp]
00019 83 e8 30 sub eax, 48 ; 00000030H
0001c 89 45 40 mov DWORD PTR tv71[rbp], eax
0001f eb 0a jmp SHORT $LN4@HexToDec
$LN3@HexToDec:
00021 0f b6 45 60 movzx eax, BYTE PTR C$[rbp]
00025 83 e8 37 sub eax, 55 ; 00000037H
00028 89 45 40 mov DWORD PTR tv71[rbp], eax
$LN4@HexToDec:
0002b 0f b6 45 40 movzx eax, BYTE PTR tv71[rbp]
; 493 : }
0002f 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00033 5d pop rbp
00034 c3 ret 0
?HexToDec@CMailCoder@@CAEE@Z ENDP ; CMailCoder::HexToDec
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?DecToHex@CMailCoder@@CAEE@Z
_TEXT SEGMENT
tv71 = 64
B$ = 96
?DecToHex@CMailCoder@@CAEE@Z PROC ; CMailCoder::DecToHex, COMDAT
; 483 : {
$LN5:
00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl
00004 55 push rbp
00005 48 83 ec 50 sub rsp, 80 ; 00000050H
00009 48 8b ec mov rbp, rsp
; 484 : return B < 10 ? '0' + B:'A' + B - 10;
0000c 0f b6 45 60 movzx eax, BYTE PTR B$[rbp]
00010 83 f8 0a cmp eax, 10
00013 7d 0c jge SHORT $LN3@DecToHex
00015 0f b6 45 60 movzx eax, BYTE PTR B$[rbp]
00019 83 c0 30 add eax, 48 ; 00000030H
0001c 89 45 40 mov DWORD PTR tv71[rbp], eax
0001f eb 0a jmp SHORT $LN4@DecToHex
$LN3@DecToHex:
00021 0f b6 45 60 movzx eax, BYTE PTR B$[rbp]
00025 83 c0 37 add eax, 55 ; 00000037H
00028 89 45 40 mov DWORD PTR tv71[rbp], eax
$LN4@DecToHex:
0002b 0f b6 45 40 movzx eax, BYTE PTR tv71[rbp]
; 485 : }
0002f 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00033 5d pop rbp
00034 c3 ret 0
?DecToHex@CMailCoder@@CAEE@Z ENDP ; CMailCoder::DecToHex
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
_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
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
_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
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z
_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
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
; COMDAT ?__empty_global_delete@@YAXPEAX@Z
_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
_TEXT ENDS
END