3366 lines
88 KiB
Plaintext
3366 lines
88 KiB
Plaintext
; 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
|
||
$SG321191 DB '=?', 00H
|
||
ORG $+1
|
||
$SG321194 DB '?B?', 00H
|
||
$SG321197 DB '?=', 00H
|
||
ORG $+1
|
||
$SG321199 DB '?Q?', 00H
|
||
$SG321202 DB '?=', 00H
|
||
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
|
||
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$?DecToHex@CMailCoder@@CAEE@Z DD imagerel $LN5
|
||
DD imagerel $LN5+51
|
||
DD imagerel $unwind$?DecToHex@CMailCoder@@CAEE@Z
|
||
pdata ENDS
|
||
; COMDAT pdata
|
||
pdata SEGMENT
|
||
$pdata$?HexToDec@CMailCoder@@CAEE@Z DD imagerel $LN5
|
||
DD imagerel $LN5+51
|
||
DD imagerel $unwind$?HexToDec@CMailCoder@@CAEE@Z
|
||
pdata ENDS
|
||
; COMDAT pdata
|
||
pdata SEGMENT
|
||
$pdata$?FoundChar@CMailCoder@@QEAAHPEAD0J@Z DD imagerel $LN10
|
||
DD imagerel $LN10+279
|
||
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+667
|
||
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+65
|
||
DD imagerel $unwind$?Base64EncodeSize@CMailCoder@@SAHH@Z
|
||
pdata ENDS
|
||
; COMDAT pdata
|
||
pdata SEGMENT
|
||
$pdata$?UUEncodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
|
||
DD imagerel $LN3+70
|
||
DD imagerel $unwind$?UUEncodeSize@CMailCoder@@SAHH@Z
|
||
pdata ENDS
|
||
; COMDAT pdata
|
||
pdata SEGMENT
|
||
$pdata$?QuotedEncodeSize@CMailCoder@@SAHH@Z DD imagerel $LN3
|
||
DD imagerel $LN3+56
|
||
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+980
|
||
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+480
|
||
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+654
|
||
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+508
|
||
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+456
|
||
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 xdata
|
||
xdata SEGMENT
|
||
$unwind$?quoted_decode@CMailCoder@@SAHPEADI0@Z DD 011201H
|
||
DD 08212H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?quoted_encode@CMailCoder@@SAHPEADI0@Z DD 011201H
|
||
DD 08212H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?UU_decode@CMailCoder@@SAHPEADI0@Z DD 011201H
|
||
DD 0a212H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?UU_encode@CMailCoder@@SAHPEADI0@Z DD 011201H
|
||
DD 06212H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?base64_decode@CMailCoder@@SAHPEADI0@Z DD 011201H
|
||
DD 06212H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?base64_encode@CMailCoder@@SAHPEADI0@Z DD 011201H
|
||
DD 08212H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?QuotedEncodeSize@CMailCoder@@SAHH@Z DD 010801H
|
||
DD 02208H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?UUEncodeSize@CMailCoder@@SAHH@Z DD 010801H
|
||
DD 02208H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?Base64EncodeSize@CMailCoder@@SAHH@Z DD 010801H
|
||
DD 02208H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?email_decode@CMailCoder@@QEAAHPEADI0@Z DD 011801H
|
||
DD 0c218H
|
||
xdata ENDS
|
||
; COMDAT voltbl
|
||
voltbl SEGMENT
|
||
_volmd DW 02bH
|
||
DW 0ffH
|
||
voltbl ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?FoundChar@CMailCoder@@QEAAHPEAD0J@Z DD 023319H
|
||
DD 020b0121H
|
||
DD imagerel __GSHandlerCheck
|
||
DD 01040H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?HexToDec@CMailCoder@@CAEE@Z DD 010801H
|
||
DD 02208H
|
||
xdata ENDS
|
||
; COMDAT xdata
|
||
xdata SEGMENT
|
||
$unwind$?DecToHex@CMailCoder@@CAEE@Z DD 010801H
|
||
DD 02208H
|
||
xdata ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?quoted_decode@CMailCoder@@SAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
tv74 = 32
|
||
tv83 = 33
|
||
tv88 = 34
|
||
nA$ = 35
|
||
nB$ = 36
|
||
C$ = 40
|
||
InLimitPtr$ = 48
|
||
pDestOrg$ = 56
|
||
pSrc$ = 80
|
||
nSize$ = 88
|
||
pDest$ = 96
|
||
?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 48 83 ec 48 sub rsp, 72 ; 00000048H
|
||
|
||
; 448 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
|
||
|
||
00012 48 83 7c 24 50
|
||
00 cmp QWORD PTR pSrc$[rsp], 0
|
||
00018 74 0f je SHORT $LN5@quoted_dec
|
||
0001a 48 83 7c 24 60
|
||
00 cmp QWORD PTR pDest$[rsp], 0
|
||
00020 74 07 je SHORT $LN5@quoted_dec
|
||
00022 83 7c 24 58 00 cmp DWORD PTR nSize$[rsp], 0
|
||
00027 77 07 ja SHORT $LN4@quoted_dec
|
||
$LN5@quoted_dec:
|
||
00029 33 c0 xor eax, eax
|
||
0002b e9 63 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;
|
||
|
||
00030 8b 44 24 58 mov eax, DWORD PTR nSize$[rsp]
|
||
00034 48 8b 4c 24 50 mov rcx, QWORD PTR pSrc$[rsp]
|
||
00039 48 03 c8 add rcx, rax
|
||
0003c 48 8b c1 mov rax, rcx
|
||
0003f 48 89 44 24 30 mov QWORD PTR InLimitPtr$[rsp], rax
|
||
|
||
; 454 : char *pDestOrg = pDest;
|
||
|
||
00044 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
00049 48 89 44 24 38 mov QWORD PTR pDestOrg$[rsp], rax
|
||
$LN2@quoted_dec:
|
||
|
||
; 455 :
|
||
; 456 : while (pSrc < InLimitPtr)
|
||
|
||
0004e 48 8b 44 24 30 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
00053 48 39 44 24 50 cmp QWORD PTR pSrc$[rsp], rax
|
||
00058 0f 83 25 01 00
|
||
00 jae $LN3@quoted_dec
|
||
|
||
; 457 : {
|
||
; 458 : C[0] = *pSrc++; //<2F><>ȡ<EFBFBD><C8A1>һ<EFBFBD>ַ<EFBFBD>
|
||
|
||
0005e 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
00063 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
00066 88 44 24 20 mov BYTE PTR tv74[rsp], al
|
||
0006a 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
0006f 48 ff c0 inc rax
|
||
00072 48 89 44 24 50 mov QWORD PTR pSrc$[rsp], rax
|
||
00077 b8 01 00 00 00 mov eax, 1
|
||
0007c 48 6b c0 00 imul rax, rax, 0
|
||
00080 0f b6 4c 24 20 movzx ecx, BYTE PTR tv74[rsp]
|
||
00085 88 4c 04 28 mov BYTE PTR C$[rsp+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 04 28 movsx eax, BYTE PTR C$[rsp+rax]
|
||
00097 83 f8 3d cmp eax, 61 ; 0000003dH
|
||
0009a 0f 85 bc 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 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
000a5 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
000a8 88 44 24 21 mov BYTE PTR tv83[rsp], al
|
||
000ac 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
000b1 48 ff c0 inc rax
|
||
000b4 48 89 44 24 50 mov QWORD PTR pSrc$[rsp], rax
|
||
000b9 b8 01 00 00 00 mov eax, 1
|
||
000be 48 6b c0 00 imul rax, rax, 0
|
||
000c2 0f b6 4c 24 21 movzx ecx, BYTE PTR tv83[rsp]
|
||
000c7 88 4c 04 28 mov BYTE PTR C$[rsp+rax], cl
|
||
|
||
; 462 : C[1] = *pSrc++;
|
||
|
||
000cb 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
000d0 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
000d3 88 44 24 22 mov BYTE PTR tv88[rsp], al
|
||
000d7 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
000dc 48 ff c0 inc rax
|
||
000df 48 89 44 24 50 mov QWORD PTR pSrc$[rsp], rax
|
||
000e4 b8 01 00 00 00 mov eax, 1
|
||
000e9 48 6b c0 01 imul rax, rax, 1
|
||
000ed 0f b6 4c 24 22 movzx ecx, BYTE PTR tv88[rsp]
|
||
000f2 88 4c 04 28 mov BYTE PTR C$[rsp+rax], cl
|
||
|
||
; 463 :
|
||
; 464 : if (C[0] != '\r')
|
||
|
||
000f6 b8 01 00 00 00 mov eax, 1
|
||
000fb 48 6b c0 00 imul rax, rax, 0
|
||
000ff 0f be 44 04 28 movsx eax, BYTE PTR C$[rsp+rax]
|
||
00104 83 f8 0d cmp eax, 13
|
||
00107 74 51 je SHORT $LN8@quoted_dec
|
||
|
||
; 465 : {
|
||
; 466 : nA = HexToDec(C[0]); //<2F><><EFBFBD><EFBFBD><EFBFBD>任
|
||
|
||
00109 b8 01 00 00 00 mov eax, 1
|
||
0010e 48 6b c0 00 imul rax, rax, 0
|
||
00112 0f b6 4c 04 28 movzx ecx, BYTE PTR C$[rsp+rax]
|
||
00117 e8 00 00 00 00 call ?HexToDec@CMailCoder@@CAEE@Z ; CMailCoder::HexToDec
|
||
0011c 88 44 24 23 mov BYTE PTR nA$[rsp], al
|
||
|
||
; 467 : nB = HexToDec(C[1]);
|
||
|
||
00120 b8 01 00 00 00 mov eax, 1
|
||
00125 48 6b c0 01 imul rax, rax, 1
|
||
00129 0f b6 4c 04 28 movzx ecx, BYTE PTR C$[rsp+rax]
|
||
0012e e8 00 00 00 00 call ?HexToDec@CMailCoder@@CAEE@Z ; CMailCoder::HexToDec
|
||
00133 88 44 24 24 mov BYTE PTR nB$[rsp], al
|
||
|
||
; 468 : *pDest++ = (nA << 4) + nB;
|
||
|
||
00137 0f b6 44 24 23 movzx eax, BYTE PTR nA$[rsp]
|
||
0013c c1 e0 04 shl eax, 4
|
||
0013f 0f b6 4c 24 24 movzx ecx, BYTE PTR nB$[rsp]
|
||
00144 03 c1 add eax, ecx
|
||
00146 48 8b 4c 24 60 mov rcx, QWORD PTR pDest$[rsp]
|
||
0014b 88 01 mov BYTE PTR [rcx], al
|
||
0014d 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
00152 48 ff c0 inc rax
|
||
00155 48 89 44 24 60 mov QWORD PTR pDest$[rsp], rax
|
||
$LN8@quoted_dec:
|
||
|
||
; 469 : }
|
||
; 470 : }
|
||
|
||
0015a eb 22 jmp SHORT $LN7@quoted_dec
|
||
$LN6@quoted_dec:
|
||
|
||
; 471 : else //<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 472 : {
|
||
; 473 : *pDest++ = C[0];
|
||
|
||
0015c b8 01 00 00 00 mov eax, 1
|
||
00161 48 6b c0 00 imul rax, rax, 0
|
||
00165 48 8b 4c 24 60 mov rcx, QWORD PTR pDest$[rsp]
|
||
0016a 0f b6 44 04 28 movzx eax, BYTE PTR C$[rsp+rax]
|
||
0016f 88 01 mov BYTE PTR [rcx], al
|
||
00171 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
00176 48 ff c0 inc rax
|
||
00179 48 89 44 24 60 mov QWORD PTR pDest$[rsp], rax
|
||
$LN7@quoted_dec:
|
||
|
||
; 474 : }
|
||
; 475 : }
|
||
|
||
0017e e9 cb fe ff ff jmp $LN2@quoted_dec
|
||
$LN3@quoted_dec:
|
||
|
||
; 476 : return (unsigned int)(pDest - pDestOrg);
|
||
|
||
00183 48 8b 44 24 38 mov rax, QWORD PTR pDestOrg$[rsp]
|
||
00188 48 8b 4c 24 60 mov rcx, QWORD PTR pDest$[rsp]
|
||
0018d 48 2b c8 sub rcx, rax
|
||
00190 48 8b c1 mov rax, rcx
|
||
$LN1@quoted_dec:
|
||
|
||
; 477 : }
|
||
|
||
00193 48 83 c4 48 add rsp, 72 ; 00000048H
|
||
00197 c3 ret 0
|
||
?quoted_decode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::quoted_decode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?quoted_encode@CMailCoder@@SAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
B$ = 32
|
||
tv74 = 33
|
||
Len$ = 36
|
||
OutPtr$ = 40
|
||
InPtr$ = 48
|
||
InLimitPtr$ = 56
|
||
pSrc$ = 80
|
||
nSize$ = 88
|
||
pDest$ = 96
|
||
?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 48 83 ec 48 sub rsp, 72 ; 00000048H
|
||
|
||
; 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;
|
||
|
||
00012 48 83 7c 24 50
|
||
00 cmp QWORD PTR pSrc$[rsp], 0
|
||
00018 74 0f je SHORT $LN7@quoted_enc
|
||
0001a 48 83 7c 24 60
|
||
00 cmp QWORD PTR pDest$[rsp], 0
|
||
00020 74 07 je SHORT $LN7@quoted_enc
|
||
00022 83 7c 24 58 00 cmp DWORD PTR nSize$[rsp], 0
|
||
00027 77 07 ja SHORT $LN6@quoted_enc
|
||
$LN7@quoted_enc:
|
||
00029 33 c0 xor eax, eax
|
||
0002b e9 93 01 00 00 jmp $LN1@quoted_enc
|
||
$LN6@quoted_enc:
|
||
|
||
; 408 :
|
||
; 409 : InPtr = pSrc;
|
||
|
||
00030 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
00035 48 89 44 24 30 mov QWORD PTR InPtr$[rsp], rax
|
||
|
||
; 410 : InLimitPtr= InPtr + nSize;
|
||
|
||
0003a 8b 44 24 58 mov eax, DWORD PTR nSize$[rsp]
|
||
0003e 48 8b 4c 24 30 mov rcx, QWORD PTR InPtr$[rsp]
|
||
00043 48 03 c8 add rcx, rax
|
||
00046 48 8b c1 mov rax, rcx
|
||
00049 48 89 44 24 38 mov QWORD PTR InLimitPtr$[rsp], rax
|
||
|
||
; 411 : OutPtr = pDest;
|
||
|
||
0004e 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
00053 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN2@quoted_enc:
|
||
|
||
; 412 :
|
||
; 413 : while (InPtr < InLimitPtr)
|
||
|
||
00058 48 8b 44 24 38 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
0005d 48 39 44 24 30 cmp QWORD PTR InPtr$[rsp], rax
|
||
00062 0f 83 43 01 00
|
||
00 jae $LN3@quoted_enc
|
||
|
||
; 414 : {
|
||
; 415 : Len = 0;
|
||
|
||
00068 c7 44 24 24 00
|
||
00 00 00 mov DWORD PTR Len$[rsp], 0
|
||
$LN4@quoted_enc:
|
||
|
||
; 416 : while ((InPtr < InLimitPtr) && (Len < m_LineWidth))
|
||
|
||
00070 48 8b 44 24 38 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
00075 48 39 44 24 30 cmp QWORD PTR InPtr$[rsp], rax
|
||
0007a 0f 83 db 00 00
|
||
00 jae $LN5@quoted_enc
|
||
00080 8b 05 00 00 00
|
||
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
00086 39 44 24 24 cmp DWORD PTR Len$[rsp], eax
|
||
0008a 0f 83 cb 00 00
|
||
00 jae $LN5@quoted_enc
|
||
|
||
; 417 : {
|
||
; 418 : B = *InPtr++;
|
||
|
||
00090 48 8b 44 24 30 mov rax, QWORD PTR InPtr$[rsp]
|
||
00095 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
00098 88 44 24 21 mov BYTE PTR tv74[rsp], al
|
||
0009c 48 8b 44 24 30 mov rax, QWORD PTR InPtr$[rsp]
|
||
000a1 48 ff c0 inc rax
|
||
000a4 48 89 44 24 30 mov QWORD PTR InPtr$[rsp], rax
|
||
000a9 0f b6 44 24 21 movzx eax, BYTE PTR tv74[rsp]
|
||
000ae 88 44 24 20 mov BYTE PTR B$[rsp], al
|
||
|
||
; 419 : if (QUOTED_ENCODE_TABLE[ B ] == 255)
|
||
|
||
000b2 0f b6 44 24 20 movzx eax, BYTE PTR B$[rsp]
|
||
000b7 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?QUOTED_ENCODE_TABLE@CMailCoder@@2QBEB ; CMailCoder::QUOTED_ENCODE_TABLE
|
||
000be 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
000c2 3d ff 00 00 00 cmp eax, 255 ; 000000ffH
|
||
000c7 75 6a jne SHORT $LN8@quoted_enc
|
||
|
||
; 420 : {
|
||
; 421 : *OutPtr++ = '=';
|
||
|
||
000c9 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
000ce c6 00 3d mov BYTE PTR [rax], 61 ; 0000003dH
|
||
000d1 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
000d6 48 ff c0 inc rax
|
||
000d9 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 422 : *OutPtr++ = DecToHex(B >> 4);
|
||
|
||
000de 0f b6 44 24 20 movzx eax, BYTE PTR B$[rsp]
|
||
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 4c 24 28 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
000f3 88 01 mov BYTE PTR [rcx], al
|
||
000f5 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
000fa 48 ff c0 inc rax
|
||
000fd 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 423 : *OutPtr++ = DecToHex(B & 0x0f);
|
||
|
||
00102 0f b6 44 24 20 movzx eax, BYTE PTR B$[rsp]
|
||
00107 83 e0 0f and eax, 15
|
||
0010a 0f b6 c8 movzx ecx, al
|
||
0010d e8 00 00 00 00 call ?DecToHex@CMailCoder@@CAEE@Z ; CMailCoder::DecToHex
|
||
00112 48 8b 4c 24 28 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
00117 88 01 mov BYTE PTR [rcx], al
|
||
00119 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
0011e 48 ff c0 inc rax
|
||
00121 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 424 : Len+=3;
|
||
|
||
00126 8b 44 24 24 mov eax, DWORD PTR Len$[rsp]
|
||
0012a 83 c0 03 add eax, 3
|
||
0012d 89 44 24 24 mov DWORD PTR Len$[rsp], eax
|
||
|
||
; 425 : }
|
||
|
||
00131 eb 23 jmp SHORT $LN9@quoted_enc
|
||
$LN8@quoted_enc:
|
||
|
||
; 426 : else
|
||
; 427 : {
|
||
; 428 : *OutPtr++ = B;
|
||
|
||
00133 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00138 0f b6 4c 24 20 movzx ecx, BYTE PTR B$[rsp]
|
||
0013d 88 08 mov BYTE PTR [rax], cl
|
||
0013f 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00144 48 ff c0 inc rax
|
||
00147 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 429 : Len++;
|
||
|
||
0014c 8b 44 24 24 mov eax, DWORD PTR Len$[rsp]
|
||
00150 ff c0 inc eax
|
||
00152 89 44 24 24 mov DWORD PTR Len$[rsp], eax
|
||
$LN9@quoted_enc:
|
||
|
||
; 430 : }
|
||
; 431 : }
|
||
|
||
00156 e9 15 ff ff ff jmp $LN4@quoted_enc
|
||
$LN5@quoted_enc:
|
||
|
||
; 432 : if (Len >= m_LineWidth)
|
||
|
||
0015b 8b 05 00 00 00
|
||
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
00161 39 44 24 24 cmp DWORD PTR Len$[rsp], eax
|
||
00165 72 3f jb SHORT $LN10@quoted_enc
|
||
|
||
; 433 : {
|
||
; 434 : *OutPtr++ = '=';
|
||
|
||
00167 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
0016c c6 00 3d mov BYTE PTR [rax], 61 ; 0000003dH
|
||
0016f 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00174 48 ff c0 inc rax
|
||
00177 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 435 : *OutPtr++ = '\r'; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
0017c 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00181 c6 00 0d mov BYTE PTR [rax], 13
|
||
00184 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00189 48 ff c0 inc rax
|
||
0018c 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 436 : *OutPtr++ = '\n';
|
||
|
||
00191 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00196 c6 00 0a mov BYTE PTR [rax], 10
|
||
00199 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
0019e 48 ff c0 inc rax
|
||
001a1 48 89 44 24 28 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN10@quoted_enc:
|
||
|
||
; 437 : }
|
||
; 438 : }
|
||
|
||
001a6 e9 ad fe ff ff jmp $LN2@quoted_enc
|
||
$LN3@quoted_enc:
|
||
|
||
; 439 : *OutPtr = '\0';
|
||
|
||
001ab 48 8b 44 24 28 mov rax, QWORD PTR OutPtr$[rsp]
|
||
001b0 c6 00 00 mov BYTE PTR [rax], 0
|
||
|
||
; 440 : return (unsigned int) (OutPtr - pDest);
|
||
|
||
001b3 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
001b8 48 8b 4c 24 28 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
001bd 48 2b c8 sub rcx, rax
|
||
001c0 48 8b c1 mov rax, rcx
|
||
$LN1@quoted_enc:
|
||
|
||
; 441 : }
|
||
|
||
001c3 48 83 c4 48 add rsp, 72 ; 00000048H
|
||
001c7 c3 ret 0
|
||
?quoted_encode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::quoted_encode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?UU_decode@CMailCoder@@SAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
Tmp$ = 32
|
||
tv75 = 33
|
||
C$ = 36
|
||
CurrIndex$ = 40
|
||
Index$ = 44
|
||
InPtr$ = 48
|
||
OutPtr$ = 56
|
||
InLimitPtr$ = 64
|
||
pSrc$ = 96
|
||
nSize$ = 104
|
||
pDest$ = 112
|
||
?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 48 83 ec 58 sub rsp, 88 ; 00000058H
|
||
|
||
; 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;
|
||
|
||
00012 48 83 7c 24 60
|
||
00 cmp QWORD PTR pSrc$[rsp], 0
|
||
00018 74 0f je SHORT $LN8@UU_decode
|
||
0001a 48 83 7c 24 70
|
||
00 cmp QWORD PTR pDest$[rsp], 0
|
||
00020 74 07 je SHORT $LN8@UU_decode
|
||
00022 83 7c 24 68 00 cmp DWORD PTR nSize$[rsp], 0
|
||
00027 77 07 ja SHORT $LN7@UU_decode
|
||
$LN8@UU_decode:
|
||
00029 33 c0 xor eax, eax
|
||
0002b e9 c7 01 00 00 jmp $LN1@UU_decode
|
||
$LN7@UU_decode:
|
||
|
||
; 349 :
|
||
; 350 : CurrIndex = 0;
|
||
|
||
00030 c7 44 24 28 00
|
||
00 00 00 mov DWORD PTR CurrIndex$[rsp], 0
|
||
|
||
; 351 :
|
||
; 352 : InPtr = pSrc;
|
||
|
||
00038 48 8b 44 24 60 mov rax, QWORD PTR pSrc$[rsp]
|
||
0003d 48 89 44 24 30 mov QWORD PTR InPtr$[rsp], rax
|
||
|
||
; 353 : InLimitPtr= InPtr + nSize;
|
||
|
||
00042 8b 44 24 68 mov eax, DWORD PTR nSize$[rsp]
|
||
00046 48 8b 4c 24 30 mov rcx, QWORD PTR InPtr$[rsp]
|
||
0004b 48 03 c8 add rcx, rax
|
||
0004e 48 8b c1 mov rax, rcx
|
||
00051 48 89 44 24 40 mov QWORD PTR InLimitPtr$[rsp], rax
|
||
|
||
; 354 : OutPtr = pDest;
|
||
|
||
00056 48 8b 44 24 70 mov rax, QWORD PTR pDest$[rsp]
|
||
0005b 48 89 44 24 38 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN2@UU_decode:
|
||
|
||
; 355 :
|
||
; 356 : while (InPtr != InLimitPtr) //<2F><>ȡ4<C8A1><34><EFBFBD>ַ<EFBFBD>
|
||
|
||
00060 48 8b 44 24 40 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
00065 48 39 44 24 30 cmp QWORD PTR InPtr$[rsp], rax
|
||
0006a 0f 84 7b 01 00
|
||
00 je $LN3@UU_decode
|
||
|
||
; 357 : {
|
||
; 358 : memset(C, 0, sizeof(C));
|
||
|
||
00070 41 b8 04 00 00
|
||
00 mov r8d, 4
|
||
00076 33 d2 xor edx, edx
|
||
00078 48 8d 4c 24 24 lea rcx, QWORD PTR C$[rsp]
|
||
0007d e8 00 00 00 00 call memset
|
||
|
||
; 359 : Index = 0;
|
||
|
||
00082 c7 44 24 2c 00
|
||
00 00 00 mov DWORD PTR Index$[rsp], 0
|
||
$LN6@UU_decode:
|
||
|
||
; 360 : do
|
||
; 361 : {
|
||
; 362 : Tmp = *InPtr++;
|
||
|
||
0008a 48 8b 44 24 30 mov rax, QWORD PTR InPtr$[rsp]
|
||
0008f 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
00092 88 44 24 21 mov BYTE PTR tv75[rsp], al
|
||
00096 48 8b 44 24 30 mov rax, QWORD PTR InPtr$[rsp]
|
||
0009b 48 ff c0 inc rax
|
||
0009e 48 89 44 24 30 mov QWORD PTR InPtr$[rsp], rax
|
||
000a3 0f b6 44 24 21 movzx eax, BYTE PTR tv75[rsp]
|
||
000a8 88 44 24 20 mov BYTE PTR Tmp$[rsp], al
|
||
|
||
; 363 : if (Tmp == 0x60)
|
||
|
||
000ac 0f be 44 24 20 movsx eax, BYTE PTR Tmp$[rsp]
|
||
000b1 83 f8 60 cmp eax, 96 ; 00000060H
|
||
000b4 75 07 jne SHORT $LN9@UU_decode
|
||
|
||
; 364 : {
|
||
; 365 : Tmp = 0x20; //Ϊ<>˼<EFBFBD><CBBC><EFBFBD>OutLook Express
|
||
|
||
000b6 c6 44 24 20 20 mov BYTE PTR Tmp$[rsp], 32 ; 00000020H
|
||
|
||
; 366 : }
|
||
|
||
000bb eb 1f jmp SHORT $LN10@UU_decode
|
||
$LN9@UU_decode:
|
||
|
||
; 367 : else if (Tmp =='\r') //<2F><EFBFBD><D7B8><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
000bd 0f be 44 24 20 movsx eax, BYTE PTR Tmp$[rsp]
|
||
000c2 83 f8 0d cmp eax, 13
|
||
000c5 75 15 jne SHORT $LN11@UU_decode
|
||
|
||
; 368 : {
|
||
; 369 : InPtr++;
|
||
|
||
000c7 48 8b 44 24 30 mov rax, QWORD PTR InPtr$[rsp]
|
||
000cc 48 ff c0 inc rax
|
||
000cf 48 89 44 24 30 mov QWORD PTR InPtr$[rsp], rax
|
||
|
||
; 370 : CurrIndex = 0;
|
||
|
||
000d4 c7 44 24 28 00
|
||
00 00 00 mov DWORD PTR CurrIndex$[rsp], 0
|
||
$LN11@UU_decode:
|
||
$LN10@UU_decode:
|
||
|
||
; 371 : }
|
||
; 372 :
|
||
; 373 : if ((Tmp > 0x20) || ( CurrIndex > 0 ))
|
||
|
||
000dc 0f be 44 24 20 movsx eax, BYTE PTR Tmp$[rsp]
|
||
000e1 83 f8 20 cmp eax, 32 ; 00000020H
|
||
000e4 7f 07 jg SHORT $LN13@UU_decode
|
||
000e6 83 7c 24 28 00 cmp DWORD PTR CurrIndex$[rsp], 0
|
||
000eb 7e 36 jle SHORT $LN12@UU_decode
|
||
$LN13@UU_decode:
|
||
|
||
; 374 : {
|
||
; 375 : Tmp = Tmp - 0x20;
|
||
|
||
000ed 0f be 44 24 20 movsx eax, BYTE PTR Tmp$[rsp]
|
||
000f2 83 e8 20 sub eax, 32 ; 00000020H
|
||
000f5 88 44 24 20 mov BYTE PTR Tmp$[rsp], al
|
||
|
||
; 376 : if (CurrIndex == 0)
|
||
|
||
000f9 83 7c 24 28 00 cmp DWORD PTR CurrIndex$[rsp], 0
|
||
000fe 75 0b jne SHORT $LN14@UU_decode
|
||
|
||
; 377 : {
|
||
; 378 : CurrIndex = Tmp;
|
||
|
||
00100 0f be 44 24 20 movsx eax, BYTE PTR Tmp$[rsp]
|
||
00105 89 44 24 28 mov DWORD PTR CurrIndex$[rsp], eax
|
||
|
||
; 379 : }
|
||
|
||
00109 eb 18 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>
|
||
|
||
0010b 48 63 44 24 2c movsxd rax, DWORD PTR Index$[rsp]
|
||
00110 0f b6 4c 24 20 movzx ecx, BYTE PTR Tmp$[rsp]
|
||
00115 88 4c 04 24 mov BYTE PTR C$[rsp+rax], cl
|
||
|
||
; 383 : Index++;
|
||
|
||
00119 8b 44 24 2c mov eax, DWORD PTR Index$[rsp]
|
||
0011d ff c0 inc eax
|
||
0011f 89 44 24 2c mov DWORD PTR Index$[rsp], eax
|
||
$LN15@UU_decode:
|
||
$LN12@UU_decode:
|
||
|
||
; 384 : }
|
||
; 385 : }
|
||
; 386 : }
|
||
; 387 : while ((InPtr < InLimitPtr) && (Index < sizeof(C)));
|
||
|
||
00123 48 8b 44 24 40 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
00128 48 39 44 24 30 cmp QWORD PTR InPtr$[rsp], rax
|
||
0012d 73 0f jae SHORT $LN16@UU_decode
|
||
0012f 48 63 44 24 2c movsxd rax, DWORD PTR Index$[rsp]
|
||
00134 48 83 f8 04 cmp rax, 4
|
||
00138 0f 82 4c ff ff
|
||
ff jb $LN6@UU_decode
|
||
$LN16@UU_decode:
|
||
|
||
; 388 :
|
||
; 389 : OutPtr[0] = (char) ((C[0] << 2) + (C[1] >> 4));
|
||
|
||
0013e b8 01 00 00 00 mov eax, 1
|
||
00143 48 6b c0 00 imul rax, rax, 0
|
||
00147 0f be 44 04 24 movsx eax, BYTE PTR C$[rsp+rax]
|
||
0014c b9 01 00 00 00 mov ecx, 1
|
||
00151 48 6b c9 01 imul rcx, rcx, 1
|
||
00155 0f be 4c 0c 24 movsx ecx, BYTE PTR C$[rsp+rcx]
|
||
0015a c1 f9 04 sar ecx, 4
|
||
0015d 8d 04 81 lea eax, DWORD PTR [rcx+rax*4]
|
||
00160 b9 01 00 00 00 mov ecx, 1
|
||
00165 48 6b c9 00 imul rcx, rcx, 0
|
||
00169 48 8b 54 24 38 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
0016e 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 390 : OutPtr[1] = (char) ((C[1] << 4) + (C[2] >> 2));
|
||
|
||
00171 b8 01 00 00 00 mov eax, 1
|
||
00176 48 6b c0 01 imul rax, rax, 1
|
||
0017a 0f be 44 04 24 movsx eax, BYTE PTR C$[rsp+rax]
|
||
0017f c1 e0 04 shl eax, 4
|
||
00182 b9 01 00 00 00 mov ecx, 1
|
||
00187 48 6b c9 02 imul rcx, rcx, 2
|
||
0018b 0f be 4c 0c 24 movsx ecx, BYTE PTR C$[rsp+rcx]
|
||
00190 c1 f9 02 sar ecx, 2
|
||
00193 03 c1 add eax, ecx
|
||
00195 b9 01 00 00 00 mov ecx, 1
|
||
0019a 48 6b c9 01 imul rcx, rcx, 1
|
||
0019e 48 8b 54 24 38 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
001a3 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 391 : OutPtr[2] = (char) ((C[2] << 6) + C[3]);
|
||
|
||
001a6 b8 01 00 00 00 mov eax, 1
|
||
001ab 48 6b c0 02 imul rax, rax, 2
|
||
001af 0f be 44 04 24 movsx eax, BYTE PTR C$[rsp+rax]
|
||
001b4 c1 e0 06 shl eax, 6
|
||
001b7 b9 01 00 00 00 mov ecx, 1
|
||
001bc 48 6b c9 03 imul rcx, rcx, 3
|
||
001c0 0f be 4c 0c 24 movsx ecx, BYTE PTR C$[rsp+rcx]
|
||
001c5 03 c1 add eax, ecx
|
||
001c7 b9 01 00 00 00 mov ecx, 1
|
||
001cc 48 6b c9 02 imul rcx, rcx, 2
|
||
001d0 48 8b 54 24 38 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
001d5 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 392 : OutPtr+=3; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>
|
||
|
||
001d8 48 8b 44 24 38 mov rax, QWORD PTR OutPtr$[rsp]
|
||
001dd 48 83 c0 03 add rax, 3
|
||
001e1 48 89 44 24 38 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 393 : }
|
||
|
||
001e6 e9 75 fe ff ff jmp $LN2@UU_decode
|
||
$LN3@UU_decode:
|
||
|
||
; 394 : return (unsigned int)OutPtr - (unsigned int)pDest;
|
||
|
||
001eb 8b 44 24 70 mov eax, DWORD PTR pDest$[rsp]
|
||
001ef 8b 4c 24 38 mov ecx, DWORD PTR OutPtr$[rsp]
|
||
001f3 2b c8 sub ecx, eax
|
||
001f5 8b c1 mov eax, ecx
|
||
$LN1@UU_decode:
|
||
|
||
; 395 : }
|
||
|
||
001f7 48 83 c4 58 add rsp, 88 ; 00000058H
|
||
001fb c3 ret 0
|
||
?UU_decode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::UU_decode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?UU_encode@CMailCoder@@SAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
tv81 = 0
|
||
B$ = 4
|
||
i$1 = 8
|
||
Len$ = 12
|
||
lByteBufferSpace$ = 16
|
||
OutPtr$ = 24
|
||
InPtr$ = 32
|
||
InLimitPtr$ = 40
|
||
pSrc$ = 64
|
||
nSize$ = 72
|
||
pDest$ = 80
|
||
?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 48 83 ec 38 sub rsp, 56 ; 00000038H
|
||
|
||
; 286 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
|
||
|
||
00012 48 83 7c 24 40
|
||
00 cmp QWORD PTR pSrc$[rsp], 0
|
||
00018 74 0f je SHORT $LN13@UU_encode
|
||
0001a 48 83 7c 24 50
|
||
00 cmp QWORD PTR pDest$[rsp], 0
|
||
00020 74 07 je SHORT $LN13@UU_encode
|
||
00022 83 7c 24 48 00 cmp DWORD PTR nSize$[rsp], 0
|
||
00027 77 07 ja SHORT $LN12@UU_encode
|
||
$LN13@UU_encode:
|
||
00029 33 c0 xor eax, eax
|
||
0002b e9 59 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;
|
||
|
||
00030 48 8b 44 24 40 mov rax, QWORD PTR pSrc$[rsp]
|
||
00035 48 89 44 24 20 mov QWORD PTR InPtr$[rsp], rax
|
||
|
||
; 294 : InLimitPtr= InPtr + nSize;
|
||
|
||
0003a 8b 44 24 48 mov eax, DWORD PTR nSize$[rsp]
|
||
0003e 48 8b 4c 24 20 mov rcx, QWORD PTR InPtr$[rsp]
|
||
00043 48 03 c8 add rcx, rax
|
||
00046 48 8b c1 mov rax, rcx
|
||
00049 48 89 44 24 28 mov QWORD PTR InLimitPtr$[rsp], rax
|
||
|
||
; 295 : OutPtr = pDest;
|
||
|
||
0004e 48 8b 44 24 50 mov rax, QWORD PTR pDest$[rsp]
|
||
00053 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN2@UU_encode:
|
||
|
||
; 296 :
|
||
; 297 : while (InPtr < InLimitPtr)
|
||
|
||
00058 48 8b 44 24 28 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
0005d 48 39 44 24 20 cmp QWORD PTR InPtr$[rsp], rax
|
||
00062 0f 83 11 02 00
|
||
00 jae $LN3@UU_encode
|
||
|
||
; 298 : {
|
||
; 299 : Len = 0;
|
||
|
||
00068 c7 44 24 0c 00
|
||
00 00 00 mov DWORD PTR Len$[rsp], 0
|
||
$LN4@UU_encode:
|
||
|
||
; 300 :
|
||
; 301 : while ((InPtr < InLimitPtr) && (Len < m_LineWidth))
|
||
|
||
00070 48 8b 44 24 28 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
00075 48 39 44 24 20 cmp QWORD PTR InPtr$[rsp], rax
|
||
0007a 0f 83 ca 01 00
|
||
00 jae $LN5@UU_encode
|
||
00080 8b 05 00 00 00
|
||
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
00086 39 44 24 0c cmp DWORD PTR Len$[rsp], eax
|
||
0008a 0f 83 ba 01 00
|
||
00 jae $LN5@UU_encode
|
||
|
||
; 302 : {
|
||
; 303 : lByteBufferSpace = (unsigned int) InLimitPtr - (unsigned int) InPtr;
|
||
|
||
00090 8b 44 24 20 mov eax, DWORD PTR InPtr$[rsp]
|
||
00094 8b 4c 24 28 mov ecx, DWORD PTR InLimitPtr$[rsp]
|
||
00098 2b c8 sub ecx, eax
|
||
0009a 8b c1 mov eax, ecx
|
||
0009c 89 44 24 10 mov DWORD PTR lByteBufferSpace$[rsp], eax
|
||
|
||
; 304 : if (lByteBufferSpace > 3) lByteBufferSpace = 3; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
||
|
||
000a0 83 7c 24 10 03 cmp DWORD PTR lByteBufferSpace$[rsp], 3
|
||
000a5 76 08 jbe SHORT $LN14@UU_encode
|
||
000a7 c7 44 24 10 03
|
||
00 00 00 mov DWORD PTR lByteBufferSpace$[rsp], 3
|
||
$LN14@UU_encode:
|
||
|
||
; 305 : //ȡֵ
|
||
; 306 : for (unsigned int i = 0; i < lByteBufferSpace; i++ )
|
||
|
||
000af c7 44 24 08 00
|
||
00 00 00 mov DWORD PTR i$1[rsp], 0
|
||
000b7 eb 0a jmp SHORT $LN8@UU_encode
|
||
$LN6@UU_encode:
|
||
000b9 8b 44 24 08 mov eax, DWORD PTR i$1[rsp]
|
||
000bd ff c0 inc eax
|
||
000bf 89 44 24 08 mov DWORD PTR i$1[rsp], eax
|
||
$LN8@UU_encode:
|
||
000c3 8b 44 24 10 mov eax, DWORD PTR lByteBufferSpace$[rsp]
|
||
000c7 39 44 24 08 cmp DWORD PTR i$1[rsp], eax
|
||
000cb 73 26 jae SHORT $LN7@UU_encode
|
||
|
||
; 307 : {
|
||
; 308 : B[i] = *InPtr++;
|
||
|
||
000cd 48 8b 44 24 20 mov rax, QWORD PTR InPtr$[rsp]
|
||
000d2 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
000d5 88 04 24 mov BYTE PTR tv81[rsp], al
|
||
000d8 48 8b 44 24 20 mov rax, QWORD PTR InPtr$[rsp]
|
||
000dd 48 ff c0 inc rax
|
||
000e0 48 89 44 24 20 mov QWORD PTR InPtr$[rsp], rax
|
||
000e5 8b 44 24 08 mov eax, DWORD PTR i$1[rsp]
|
||
000e9 0f b6 0c 24 movzx ecx, BYTE PTR tv81[rsp]
|
||
000ed 88 4c 04 04 mov BYTE PTR B$[rsp+rax], cl
|
||
|
||
; 309 : }
|
||
|
||
000f1 eb c6 jmp SHORT $LN6@UU_encode
|
||
$LN7@UU_encode:
|
||
|
||
; 310 : if (Len == 0)
|
||
|
||
000f3 83 7c 24 0c 00 cmp DWORD PTR Len$[rsp], 0
|
||
000f8 75 1f jne SHORT $LN15@UU_encode
|
||
|
||
; 311 : {
|
||
; 312 : *OutPtr++ = 'M';
|
||
|
||
000fa 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
000ff c6 00 4d mov BYTE PTR [rax], 77 ; 0000004dH
|
||
00102 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00107 48 ff c0 inc rax
|
||
0010a 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 313 : Len++;
|
||
|
||
0010f 8b 44 24 0c mov eax, DWORD PTR Len$[rsp]
|
||
00113 ff c0 inc eax
|
||
00115 89 44 24 0c mov DWORD PTR Len$[rsp], eax
|
||
$LN15@UU_encode:
|
||
|
||
; 314 : }
|
||
; 315 : //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
; 316 : OutPtr[0] = B[0] >> 2;
|
||
|
||
00119 b8 01 00 00 00 mov eax, 1
|
||
0011e 48 6b c0 00 imul rax, rax, 0
|
||
00122 0f b6 44 04 04 movzx eax, BYTE PTR B$[rsp+rax]
|
||
00127 c1 f8 02 sar eax, 2
|
||
0012a b9 01 00 00 00 mov ecx, 1
|
||
0012f 48 6b c9 00 imul rcx, rcx, 0
|
||
00133 48 8b 54 24 18 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
00138 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 317 : OutPtr[1] = (unsigned int) (B[0] << 4 & 0x30) + (unsigned int) (B[1] >> 4 & 0x0F);
|
||
|
||
0013b b8 01 00 00 00 mov eax, 1
|
||
00140 48 6b c0 00 imul rax, rax, 0
|
||
00144 0f b6 44 04 04 movzx eax, BYTE PTR B$[rsp+rax]
|
||
00149 c1 e0 04 shl eax, 4
|
||
0014c 83 e0 30 and eax, 48 ; 00000030H
|
||
0014f b9 01 00 00 00 mov ecx, 1
|
||
00154 48 6b c9 01 imul rcx, rcx, 1
|
||
00158 0f b6 4c 0c 04 movzx ecx, BYTE PTR B$[rsp+rcx]
|
||
0015d c1 f9 04 sar ecx, 4
|
||
00160 83 e1 0f and ecx, 15
|
||
00163 03 c1 add eax, ecx
|
||
00165 b9 01 00 00 00 mov ecx, 1
|
||
0016a 48 6b c9 01 imul rcx, rcx, 1
|
||
0016e 48 8b 54 24 18 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
00173 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 318 : OutPtr[2] = (unsigned int) (B[1] << 2 & 0x3C) + (unsigned int) (B[2] >> 6 & 0x03);
|
||
|
||
00176 b8 01 00 00 00 mov eax, 1
|
||
0017b 48 6b c0 01 imul rax, rax, 1
|
||
0017f 0f b6 44 04 04 movzx eax, BYTE PTR B$[rsp+rax]
|
||
00184 c1 e0 02 shl eax, 2
|
||
00187 83 e0 3c and eax, 60 ; 0000003cH
|
||
0018a b9 01 00 00 00 mov ecx, 1
|
||
0018f 48 6b c9 02 imul rcx, rcx, 2
|
||
00193 0f b6 4c 0c 04 movzx ecx, BYTE PTR B$[rsp+rcx]
|
||
00198 c1 f9 06 sar ecx, 6
|
||
0019b 83 e1 03 and ecx, 3
|
||
0019e 03 c1 add eax, ecx
|
||
001a0 b9 01 00 00 00 mov ecx, 1
|
||
001a5 48 6b c9 02 imul rcx, rcx, 2
|
||
001a9 48 8b 54 24 18 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
001ae 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 319 : OutPtr[3] = B[2] & 0x3F;
|
||
|
||
001b1 b8 01 00 00 00 mov eax, 1
|
||
001b6 48 6b c0 02 imul rax, rax, 2
|
||
001ba 0f b6 44 04 04 movzx eax, BYTE PTR B$[rsp+rax]
|
||
001bf 83 e0 3f and eax, 63 ; 0000003fH
|
||
001c2 b9 01 00 00 00 mov ecx, 1
|
||
001c7 48 6b c9 03 imul rcx, rcx, 3
|
||
001cb 48 8b 54 24 18 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
001d0 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
|
||
; 320 : for (i = 0; i < 4; i++)
|
||
|
||
001d3 c7 44 24 08 00
|
||
00 00 00 mov DWORD PTR i$1[rsp], 0
|
||
001db eb 0a jmp SHORT $LN11@UU_encode
|
||
$LN9@UU_encode:
|
||
001dd 8b 44 24 08 mov eax, DWORD PTR i$1[rsp]
|
||
001e1 ff c0 inc eax
|
||
001e3 89 44 24 08 mov DWORD PTR i$1[rsp], eax
|
||
$LN11@UU_encode:
|
||
001e7 83 7c 24 08 04 cmp DWORD PTR i$1[rsp], 4
|
||
001ec 73 3e jae SHORT $LN10@UU_encode
|
||
|
||
; 321 : {
|
||
; 322 : if (OutPtr[i] == NULL)
|
||
|
||
001ee 8b 44 24 08 mov eax, DWORD PTR i$1[rsp]
|
||
001f2 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
001f7 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
|
||
001fb 85 c0 test eax, eax
|
||
001fd 75 0f jne SHORT $LN16@UU_encode
|
||
|
||
; 323 : OutPtr[i] = '`';//(unsigned char) (OutPtr[i] + 0x60);
|
||
|
||
001ff 8b 44 24 08 mov eax, DWORD PTR i$1[rsp]
|
||
00203 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
00208 c6 04 01 60 mov BYTE PTR [rcx+rax], 96 ; 00000060H
|
||
0020c eb 1c jmp SHORT $LN17@UU_encode
|
||
$LN16@UU_encode:
|
||
|
||
; 324 : else
|
||
; 325 : OutPtr[i] = ' ' + OutPtr[i];//(unsigned char) (OutPtr[i] + 0x20);
|
||
|
||
0020e 8b 44 24 08 mov eax, DWORD PTR i$1[rsp]
|
||
00212 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
00217 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
|
||
0021b 83 c0 20 add eax, 32 ; 00000020H
|
||
0021e 8b 4c 24 08 mov ecx, DWORD PTR i$1[rsp]
|
||
00222 48 8b 54 24 18 mov rdx, QWORD PTR OutPtr$[rsp]
|
||
00227 88 04 0a mov BYTE PTR [rdx+rcx], al
|
||
$LN17@UU_encode:
|
||
|
||
; 326 : }
|
||
|
||
0022a eb b1 jmp SHORT $LN9@UU_encode
|
||
$LN10@UU_encode:
|
||
|
||
; 327 : OutPtr+=4;
|
||
|
||
0022c 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00231 48 83 c0 04 add rax, 4
|
||
00235 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 328 : Len+=4;
|
||
|
||
0023a 8b 44 24 0c mov eax, DWORD PTR Len$[rsp]
|
||
0023e 83 c0 04 add eax, 4
|
||
00241 89 44 24 0c mov DWORD PTR Len$[rsp], eax
|
||
|
||
; 329 : }
|
||
|
||
00245 e9 26 fe ff ff jmp $LN4@UU_encode
|
||
$LN5@UU_encode:
|
||
|
||
; 330 :
|
||
; 331 : *OutPtr++ = '\r'; //<2F><><EFBFBD>ûس<C3BB>
|
||
|
||
0024a 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
0024f c6 00 0d mov BYTE PTR [rax], 13
|
||
00252 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00257 48 ff c0 inc rax
|
||
0025a 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 332 : *OutPtr++ = '\n';
|
||
|
||
0025f 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00264 c6 00 0a mov BYTE PTR [rax], 10
|
||
00267 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
0026c 48 ff c0 inc rax
|
||
0026f 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 333 : }
|
||
|
||
00274 e9 df fd ff ff jmp $LN2@UU_encode
|
||
$LN3@UU_encode:
|
||
|
||
; 334 : return (unsigned int) (OutPtr - pDest);
|
||
|
||
00279 48 8b 44 24 50 mov rax, QWORD PTR pDest$[rsp]
|
||
0027e 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
00283 48 2b c8 sub rcx, rax
|
||
00286 48 8b c1 mov rax, rcx
|
||
$LN1@UU_encode:
|
||
|
||
; 335 : }
|
||
|
||
00289 48 83 c4 38 add rsp, 56 ; 00000038H
|
||
0028d c3 ret 0
|
||
?UU_encode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::UU_encode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?base64_decode@CMailCoder@@SAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
lByteBuffer$ = 0
|
||
lByteBufferSpace$ = 4
|
||
reallen$ = 8
|
||
C$ = 12
|
||
tv89 = 16
|
||
OutPtr$ = 24
|
||
InPtr$ = 32
|
||
InLimitPtr$ = 40
|
||
pSrc$ = 64
|
||
nSize$ = 72
|
||
pDest$ = 80
|
||
?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 48 83 ec 38 sub rsp, 56 ; 00000038H
|
||
|
||
; 230 : if ((pSrc == NULL) || (pDest == NULL) || (nSize <= 0)) return 0;
|
||
|
||
00012 48 83 7c 24 40
|
||
00 cmp QWORD PTR pSrc$[rsp], 0
|
||
00018 74 0f je SHORT $LN7@base64_dec
|
||
0001a 48 83 7c 24 50
|
||
00 cmp QWORD PTR pDest$[rsp], 0
|
||
00020 74 07 je SHORT $LN7@base64_dec
|
||
00022 83 7c 24 48 00 cmp DWORD PTR nSize$[rsp], 0
|
||
00027 77 07 ja SHORT $LN6@base64_dec
|
||
$LN7@base64_dec:
|
||
00029 33 c0 xor eax, eax
|
||
0002b e9 ab 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;
|
||
|
||
00030 c7 04 24 00 00
|
||
00 00 mov DWORD PTR lByteBuffer$[rsp], 0
|
||
00037 c7 44 24 04 04
|
||
00 00 00 mov DWORD PTR lByteBufferSpace$[rsp], 4
|
||
|
||
; 239 :
|
||
; 240 : InPtr = pSrc;
|
||
|
||
0003f 48 8b 44 24 40 mov rax, QWORD PTR pSrc$[rsp]
|
||
00044 48 89 44 24 20 mov QWORD PTR InPtr$[rsp], rax
|
||
|
||
; 241 : InLimitPtr= InPtr + nSize;
|
||
|
||
00049 8b 44 24 48 mov eax, DWORD PTR nSize$[rsp]
|
||
0004d 48 8b 4c 24 20 mov rcx, QWORD PTR InPtr$[rsp]
|
||
00052 48 03 c8 add rcx, rax
|
||
00055 48 8b c1 mov rax, rcx
|
||
00058 48 89 44 24 28 mov QWORD PTR InLimitPtr$[rsp], rax
|
||
|
||
; 242 : OutPtr = pDest;
|
||
|
||
0005d 48 8b 44 24 50 mov rax, QWORD PTR pDest$[rsp]
|
||
00062 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN15@base64_dec:
|
||
$LN14@base64_dec:
|
||
$LN2@base64_dec:
|
||
|
||
; 243 :
|
||
; 244 : while (InPtr != InLimitPtr)
|
||
|
||
00067 48 8b 44 24 28 mov rax, QWORD PTR InLimitPtr$[rsp]
|
||
0006c 48 39 44 24 20 cmp QWORD PTR InPtr$[rsp], rax
|
||
00071 0f 84 cd 00 00
|
||
00 je $LN3@base64_dec
|
||
|
||
; 245 : {
|
||
; 246 : C = BASE64_DECODE_TABLE[*InPtr]; // Read from InputBuffer.
|
||
|
||
00077 48 8b 44 24 20 mov rax, QWORD PTR InPtr$[rsp]
|
||
0007c 48 0f be 00 movsx rax, BYTE PTR [rax]
|
||
00080 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_DECODE_TABLE@CMailCoder@@2QBIB ; CMailCoder::BASE64_DECODE_TABLE
|
||
00087 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
|
||
0008a 89 44 24 0c mov DWORD PTR C$[rsp], eax
|
||
|
||
; 247 : InPtr++;
|
||
|
||
0008e 48 8b 44 24 20 mov rax, QWORD PTR InPtr$[rsp]
|
||
00093 48 ff c0 inc rax
|
||
00096 48 89 44 24 20 mov QWORD PTR InPtr$[rsp], rax
|
||
|
||
; 248 : if (C == 0xFF) continue; //<2F><><EFBFBD><EFBFBD>255<35>Ƿ<EFBFBD><C7B7>ַ<EFBFBD>
|
||
|
||
0009b 81 7c 24 0c ff
|
||
00 00 00 cmp DWORD PTR C$[rsp], 255 ; 000000ffH
|
||
000a3 75 02 jne SHORT $LN8@base64_dec
|
||
000a5 eb c0 jmp SHORT $LN2@base64_dec
|
||
$LN8@base64_dec:
|
||
|
||
; 249 : lByteBuffer = lByteBuffer << 6 ;
|
||
|
||
000a7 8b 04 24 mov eax, DWORD PTR lByteBuffer$[rsp]
|
||
000aa c1 e0 06 shl eax, 6
|
||
000ad 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 250 : lByteBuffer = lByteBuffer | C ;
|
||
|
||
000b0 8b 44 24 0c mov eax, DWORD PTR C$[rsp]
|
||
000b4 8b 0c 24 mov ecx, DWORD PTR lByteBuffer$[rsp]
|
||
000b7 0b c8 or ecx, eax
|
||
000b9 8b c1 mov eax, ecx
|
||
000bb 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 251 : lByteBufferSpace--;
|
||
|
||
000be 8b 44 24 04 mov eax, DWORD PTR lByteBufferSpace$[rsp]
|
||
000c2 ff c8 dec eax
|
||
000c4 89 44 24 04 mov DWORD PTR lByteBufferSpace$[rsp], eax
|
||
|
||
; 252 : if (lByteBufferSpace != 0) continue; //һ<>ζ<EFBFBD><CEB6><EFBFBD>4<EFBFBD><34><EFBFBD>ֽ<EFBFBD>
|
||
|
||
000c8 83 7c 24 04 00 cmp DWORD PTR lByteBufferSpace$[rsp], 0
|
||
000cd 74 02 je SHORT $LN9@base64_dec
|
||
000cf eb 96 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 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
000df 0f b6 14 24 movzx edx, BYTE PTR lByteBuffer$[rsp]
|
||
000e3 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||
|
||
; 255 : lByteBuffer = lByteBuffer >> 8;
|
||
|
||
000e6 8b 04 24 mov eax, DWORD PTR lByteBuffer$[rsp]
|
||
000e9 c1 e8 08 shr eax, 8
|
||
000ec 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 256 : OutPtr[1] = lByteBuffer;
|
||
|
||
000ef b8 01 00 00 00 mov eax, 1
|
||
000f4 48 6b c0 01 imul rax, rax, 1
|
||
000f8 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
000fd 0f b6 14 24 movzx edx, BYTE PTR lByteBuffer$[rsp]
|
||
00101 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||
|
||
; 257 : lByteBuffer = lByteBuffer >> 8;
|
||
|
||
00104 8b 04 24 mov eax, DWORD PTR lByteBuffer$[rsp]
|
||
00107 c1 e8 08 shr eax, 8
|
||
0010a 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 258 : OutPtr[0] = lByteBuffer;
|
||
|
||
0010d b8 01 00 00 00 mov eax, 1
|
||
00112 48 6b c0 00 imul rax, rax, 0
|
||
00116 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
0011b 0f b6 14 24 movzx edx, BYTE PTR lByteBuffer$[rsp]
|
||
0011f 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||
|
||
; 259 : //<><D7BC>д<EFBFBD><D0B4><EFBFBD><EFBFBD>3λ
|
||
; 260 : OutPtr+= 3; lByteBuffer = 0; lByteBufferSpace = 4;
|
||
|
||
00122 48 8b 44 24 18 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00127 48 83 c0 03 add rax, 3
|
||
0012b 48 89 44 24 18 mov QWORD PTR OutPtr$[rsp], rax
|
||
00130 c7 04 24 00 00
|
||
00 00 mov DWORD PTR lByteBuffer$[rsp], 0
|
||
00137 c7 44 24 04 04
|
||
00 00 00 mov DWORD PTR lByteBufferSpace$[rsp], 4
|
||
|
||
; 261 : }
|
||
|
||
0013f e9 23 ff ff ff jmp $LN15@base64_dec
|
||
$LN3@base64_dec:
|
||
|
||
; 262 : reallen = (unsigned int)OutPtr - (unsigned int)pDest;
|
||
|
||
00144 8b 44 24 50 mov eax, DWORD PTR pDest$[rsp]
|
||
00148 8b 4c 24 18 mov ecx, DWORD PTR OutPtr$[rsp]
|
||
0014c 2b c8 sub ecx, eax
|
||
0014e 8b c1 mov eax, ecx
|
||
00150 89 44 24 08 mov DWORD PTR reallen$[rsp], eax
|
||
|
||
; 263 : //<2F><><EFBFBD><EFBFBD>β<EFBFBD><CEB2> <20><><EFBFBD><EFBFBD>ʵ<EFBFBD>ʳ<EFBFBD><CAB3><EFBFBD>
|
||
; 264 : switch (lByteBufferSpace)
|
||
|
||
00154 8b 44 24 04 mov eax, DWORD PTR lByteBufferSpace$[rsp]
|
||
00158 89 44 24 10 mov DWORD PTR tv89[rsp], eax
|
||
0015c 83 7c 24 10 01 cmp DWORD PTR tv89[rsp], 1
|
||
00161 74 09 je SHORT $LN10@base64_dec
|
||
00163 83 7c 24 10 02 cmp DWORD PTR tv89[rsp], 2
|
||
00168 74 47 je SHORT $LN11@base64_dec
|
||
0016a eb 6b jmp SHORT $LN12@base64_dec
|
||
$LN10@base64_dec:
|
||
|
||
; 265 : {
|
||
; 266 : case 1:
|
||
; 267 : lByteBuffer = lByteBuffer >> 2;
|
||
|
||
0016c 8b 04 24 mov eax, DWORD PTR lByteBuffer$[rsp]
|
||
0016f c1 e8 02 shr eax, 2
|
||
00172 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 268 : OutPtr[1] = lByteBuffer;
|
||
|
||
00175 b8 01 00 00 00 mov eax, 1
|
||
0017a 48 6b c0 01 imul rax, rax, 1
|
||
0017e 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
00183 0f b6 14 24 movzx edx, BYTE PTR lByteBuffer$[rsp]
|
||
00187 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||
|
||
; 269 : lByteBuffer = lByteBuffer >> 8;
|
||
|
||
0018a 8b 04 24 mov eax, DWORD PTR lByteBuffer$[rsp]
|
||
0018d c1 e8 08 shr eax, 8
|
||
00190 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 270 : OutPtr[0] = lByteBuffer;
|
||
|
||
00193 b8 01 00 00 00 mov eax, 1
|
||
00198 48 6b c0 00 imul rax, rax, 0
|
||
0019c 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
001a1 0f b6 14 24 movzx edx, BYTE PTR lByteBuffer$[rsp]
|
||
001a5 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||
|
||
; 271 : return reallen + 2;
|
||
|
||
001a8 8b 44 24 08 mov eax, DWORD PTR reallen$[rsp]
|
||
001ac 83 c0 02 add eax, 2
|
||
001af eb 2a jmp SHORT $LN1@base64_dec
|
||
$LN11@base64_dec:
|
||
|
||
; 272 : case 2:
|
||
; 273 : lByteBuffer = lByteBuffer >> 4;
|
||
|
||
001b1 8b 04 24 mov eax, DWORD PTR lByteBuffer$[rsp]
|
||
001b4 c1 e8 04 shr eax, 4
|
||
001b7 89 04 24 mov DWORD PTR lByteBuffer$[rsp], eax
|
||
|
||
; 274 : OutPtr[0] = lByteBuffer;
|
||
|
||
001ba b8 01 00 00 00 mov eax, 1
|
||
001bf 48 6b c0 00 imul rax, rax, 0
|
||
001c3 48 8b 4c 24 18 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
001c8 0f b6 14 24 movzx edx, BYTE PTR lByteBuffer$[rsp]
|
||
001cc 88 14 01 mov BYTE PTR [rcx+rax], dl
|
||
|
||
; 275 : return reallen + 1;
|
||
|
||
001cf 8b 44 24 08 mov eax, DWORD PTR reallen$[rsp]
|
||
001d3 ff c0 inc eax
|
||
001d5 eb 04 jmp SHORT $LN1@base64_dec
|
||
$LN12@base64_dec:
|
||
|
||
; 276 : default:
|
||
; 277 : return reallen;
|
||
|
||
001d7 8b 44 24 08 mov eax, DWORD PTR reallen$[rsp]
|
||
$LN1@base64_dec:
|
||
|
||
; 278 : }
|
||
; 279 : }
|
||
|
||
001db 48 83 c4 38 add rsp, 56 ; 00000038H
|
||
001df c3 ret 0
|
||
?base64_decode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::base64_decode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?base64_encode@CMailCoder@@SAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
iB$ = 0
|
||
OutPtr$ = 8
|
||
pInPtr$ = 16
|
||
Len$ = 24
|
||
iInMax3$ = 28
|
||
tv153 = 32
|
||
tv76 = 36
|
||
tv82 = 40
|
||
tv88 = 44
|
||
tv176 = 48
|
||
pInLimitPtr$ = 56
|
||
pSrc$ = 80
|
||
nSize$ = 88
|
||
pDest$ = 96
|
||
?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 48 83 ec 48 sub rsp, 72 ; 00000048H
|
||
|
||
; 154 : if ((pSrc == NULL) || (nSize <= 0)) return 0;
|
||
|
||
00012 48 83 7c 24 50
|
||
00 cmp QWORD PTR pSrc$[rsp], 0
|
||
00018 74 07 je SHORT $LN9@base64_enc
|
||
0001a 83 7c 24 58 00 cmp DWORD PTR nSize$[rsp], 0
|
||
0001f 77 07 ja SHORT $LN8@base64_enc
|
||
$LN9@base64_enc:
|
||
00021 33 c0 xor eax, eax
|
||
00023 e9 a7 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;
|
||
|
||
00028 48 8b 44 24 50 mov rax, QWORD PTR pSrc$[rsp]
|
||
0002d 48 89 44 24 10 mov QWORD PTR pInPtr$[rsp], rax
|
||
|
||
; 161 : iInMax3 = nSize / 3 * 3;
|
||
|
||
00032 33 d2 xor edx, edx
|
||
00034 8b 44 24 58 mov eax, DWORD PTR nSize$[rsp]
|
||
00038 b9 03 00 00 00 mov ecx, 3
|
||
0003d f7 f1 div ecx
|
||
0003f 6b c0 03 imul eax, eax, 3
|
||
00042 89 44 24 1c mov DWORD PTR iInMax3$[rsp], eax
|
||
|
||
; 162 : OutPtr = pDest;
|
||
|
||
00046 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
0004b 48 89 44 24 08 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 163 : pInLimitPtr = pInPtr + iInMax3;
|
||
|
||
00050 8b 44 24 1c mov eax, DWORD PTR iInMax3$[rsp]
|
||
00054 48 8b 4c 24 10 mov rcx, QWORD PTR pInPtr$[rsp]
|
||
00059 48 03 c8 add rcx, rax
|
||
0005c 48 8b c1 mov rax, rcx
|
||
0005f 48 89 44 24 38 mov QWORD PTR pInLimitPtr$[rsp], rax
|
||
$LN2@base64_enc:
|
||
|
||
; 164 :
|
||
; 165 : while (pInPtr != pInLimitPtr)
|
||
|
||
00064 48 8b 44 24 38 mov rax, QWORD PTR pInLimitPtr$[rsp]
|
||
00069 48 39 44 24 10 cmp QWORD PTR pInPtr$[rsp], rax
|
||
0006e 0f 84 ab 01 00
|
||
00 je $LN3@base64_enc
|
||
|
||
; 166 : {
|
||
; 167 : Len = 0;
|
||
|
||
00074 c7 44 24 18 00
|
||
00 00 00 mov DWORD PTR Len$[rsp], 0
|
||
$LN4@base64_enc:
|
||
|
||
; 168 : while ((Len < m_LineWidth) && (pInPtr != pInLimitPtr))
|
||
|
||
0007c 8b 05 00 00 00
|
||
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
00082 39 44 24 18 cmp DWORD PTR Len$[rsp], eax
|
||
00086 0f 83 58 01 00
|
||
00 jae $LN5@base64_enc
|
||
0008c 48 8b 44 24 38 mov rax, QWORD PTR pInLimitPtr$[rsp]
|
||
00091 48 39 44 24 10 cmp QWORD PTR pInPtr$[rsp], rax
|
||
00096 0f 84 48 01 00
|
||
00 je $LN5@base64_enc
|
||
|
||
; 169 : {
|
||
; 170 : iB = (unsigned char) *pInPtr++;
|
||
|
||
0009c 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
000a1 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
000a4 89 44 24 24 mov DWORD PTR tv76[rsp], eax
|
||
000a8 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
000ad 48 ff c0 inc rax
|
||
000b0 48 89 44 24 10 mov QWORD PTR pInPtr$[rsp], rax
|
||
000b5 8b 44 24 24 mov eax, DWORD PTR tv76[rsp]
|
||
000b9 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 171 : iB = iB << 8;
|
||
|
||
000bc 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
000bf c1 e0 08 shl eax, 8
|
||
000c2 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 172 :
|
||
; 173 : iB = iB | (unsigned char) *pInPtr++;
|
||
|
||
000c5 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
000ca 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
000cd 8b 0c 24 mov ecx, DWORD PTR iB$[rsp]
|
||
000d0 0b c8 or ecx, eax
|
||
000d2 8b c1 mov eax, ecx
|
||
000d4 89 44 24 28 mov DWORD PTR tv82[rsp], eax
|
||
000d8 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
000dd 48 ff c0 inc rax
|
||
000e0 48 89 44 24 10 mov QWORD PTR pInPtr$[rsp], rax
|
||
000e5 8b 44 24 28 mov eax, DWORD PTR tv82[rsp]
|
||
000e9 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 174 : iB = iB << 8;
|
||
|
||
000ec 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
000ef c1 e0 08 shl eax, 8
|
||
000f2 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 175 :
|
||
; 176 : iB = iB | (unsigned char) *pInPtr++;
|
||
|
||
000f5 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
000fa 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
000fd 8b 0c 24 mov ecx, DWORD PTR iB$[rsp]
|
||
00100 0b c8 or ecx, eax
|
||
00102 8b c1 mov eax, ecx
|
||
00104 89 44 24 2c mov DWORD PTR tv88[rsp], eax
|
||
00108 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
0010d 48 ff c0 inc rax
|
||
00110 48 89 44 24 10 mov QWORD PTR pInPtr$[rsp], rax
|
||
00115 8b 44 24 2c mov eax, DWORD PTR tv88[rsp]
|
||
00119 89 04 24 mov DWORD PTR iB$[rsp], 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];
|
||
|
||
0011c 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0011f 83 e0 3f and eax, 63 ; 0000003fH
|
||
00122 8b c0 mov eax, eax
|
||
00124 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
0012b ba 01 00 00 00 mov edx, 1
|
||
00130 48 6b d2 03 imul rdx, rdx, 3
|
||
00134 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
00139 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
0013d 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 180 : iB = iB >> 6;
|
||
|
||
00141 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00144 c1 e8 06 shr eax, 6
|
||
00147 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 181 : OutPtr[2] = BASE64_ENCODE_TABLE[iB & 0x3F];
|
||
|
||
0014a 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0014d 83 e0 3f and eax, 63 ; 0000003fH
|
||
00150 8b c0 mov eax, eax
|
||
00152 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00159 ba 01 00 00 00 mov edx, 1
|
||
0015e 48 6b d2 02 imul rdx, rdx, 2
|
||
00162 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
00167 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
0016b 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 182 : iB = iB >> 6;
|
||
|
||
0016f 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00172 c1 e8 06 shr eax, 6
|
||
00175 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 183 : OutPtr[1] = BASE64_ENCODE_TABLE[iB & 0x3F];
|
||
|
||
00178 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0017b 83 e0 3f and eax, 63 ; 0000003fH
|
||
0017e 8b c0 mov eax, eax
|
||
00180 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00187 ba 01 00 00 00 mov edx, 1
|
||
0018c 48 6b d2 01 imul rdx, rdx, 1
|
||
00190 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
00195 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
00199 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 184 : iB = iB >> 6;
|
||
|
||
0019d 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
001a0 c1 e8 06 shr eax, 6
|
||
001a3 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 185 : OutPtr[0] = BASE64_ENCODE_TABLE[iB];
|
||
|
||
001a6 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
001a9 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
001b0 ba 01 00 00 00 mov edx, 1
|
||
001b5 48 6b d2 00 imul rdx, rdx, 0
|
||
001b9 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
001be 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
001c2 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 186 : OutPtr+=4;
|
||
|
||
001c6 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
001cb 48 83 c0 04 add rax, 4
|
||
001cf 48 89 44 24 08 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 187 : Len+=4;
|
||
|
||
001d4 8b 44 24 18 mov eax, DWORD PTR Len$[rsp]
|
||
001d8 83 c0 04 add eax, 4
|
||
001db 89 44 24 18 mov DWORD PTR Len$[rsp], eax
|
||
|
||
; 188 : }
|
||
|
||
001df e9 98 fe ff ff jmp $LN4@base64_enc
|
||
$LN5@base64_enc:
|
||
|
||
; 189 : if (Len >= m_LineWidth)
|
||
|
||
001e4 8b 05 00 00 00
|
||
00 mov eax, DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
001ea 39 44 24 18 cmp DWORD PTR Len$[rsp], eax
|
||
001ee 72 2a jb SHORT $LN10@base64_enc
|
||
|
||
; 190 : {
|
||
; 191 : *OutPtr++ = '\r'; //<2F><><EFBFBD>ϻس<CFBB><D8B3><EFBFBD><EFBFBD>з<EFBFBD>
|
||
|
||
001f0 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
001f5 c6 00 0d mov BYTE PTR [rax], 13
|
||
001f8 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
001fd 48 ff c0 inc rax
|
||
00200 48 89 44 24 08 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 192 : *OutPtr++ = '\n';
|
||
|
||
00205 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
0020a c6 00 0a mov BYTE PTR [rax], 10
|
||
0020d 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
00212 48 ff c0 inc rax
|
||
00215 48 89 44 24 08 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN10@base64_enc:
|
||
|
||
; 193 : }
|
||
; 194 : }
|
||
|
||
0021a e9 45 fe ff ff jmp $LN2@base64_enc
|
||
$LN3@base64_enc:
|
||
|
||
; 195 : //<2F><><EFBFBD><EFBFBD>β<EFBFBD><CEB2>
|
||
; 196 : switch (nSize - iInMax3)
|
||
|
||
0021f 8b 44 24 1c mov eax, DWORD PTR iInMax3$[rsp]
|
||
00223 8b 4c 24 58 mov ecx, DWORD PTR nSize$[rsp]
|
||
00227 2b c8 sub ecx, eax
|
||
00229 8b c1 mov eax, ecx
|
||
0022b 89 44 24 20 mov DWORD PTR tv153[rsp], eax
|
||
0022f 83 7c 24 20 01 cmp DWORD PTR tv153[rsp], 1
|
||
00234 74 10 je SHORT $LN11@base64_enc
|
||
00236 83 7c 24 20 02 cmp DWORD PTR tv153[rsp], 2
|
||
0023b 0f 84 9e 00 00
|
||
00 je $LN12@base64_enc
|
||
00241 e9 79 01 00 00 jmp $LN6@base64_enc
|
||
$LN11@base64_enc:
|
||
|
||
; 197 : {
|
||
; 198 : case 1:
|
||
; 199 : iB = (unsigned char) *pInPtr;
|
||
|
||
00246 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
0024b 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
0024e 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 200 : iB = iB << 4;
|
||
|
||
00251 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00254 c1 e0 04 shl eax, 4
|
||
00257 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 201 : OutPtr[1] = BASE64_ENCODE_TABLE[iB & 0x3F];
|
||
|
||
0025a 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0025d 83 e0 3f and eax, 63 ; 0000003fH
|
||
00260 8b c0 mov eax, eax
|
||
00262 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00269 ba 01 00 00 00 mov edx, 1
|
||
0026e 48 6b d2 01 imul rdx, rdx, 1
|
||
00272 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
00277 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
0027b 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 202 : iB = iB >> 6;
|
||
|
||
0027f 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00282 c1 e8 06 shr eax, 6
|
||
00285 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 203 : OutPtr[0] = BASE64_ENCODE_TABLE[iB];
|
||
|
||
00288 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0028b 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00292 ba 01 00 00 00 mov edx, 1
|
||
00297 48 6b d2 00 imul rdx, rdx, 0
|
||
0029b 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
002a0 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
002a4 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>
|
||
|
||
002a8 b8 01 00 00 00 mov eax, 1
|
||
002ad 48 6b c0 02 imul rax, rax, 2
|
||
002b1 48 8b 4c 24 08 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
002b6 c6 04 01 3d mov BYTE PTR [rcx+rax], 61 ; 0000003dH
|
||
|
||
; 205 : OutPtr[3] = '=';
|
||
|
||
002ba b8 01 00 00 00 mov eax, 1
|
||
002bf 48 6b c0 03 imul rax, rax, 3
|
||
002c3 48 8b 4c 24 08 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
002c8 c6 04 01 3d mov BYTE PTR [rcx+rax], 61 ; 0000003dH
|
||
|
||
; 206 : OutPtr+=4;
|
||
|
||
002cc 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
002d1 48 83 c0 04 add rax, 4
|
||
002d5 48 89 44 24 08 mov QWORD PTR OutPtr$[rsp], rax
|
||
|
||
; 207 : break;
|
||
|
||
002da e9 e0 00 00 00 jmp $LN6@base64_enc
|
||
$LN12@base64_enc:
|
||
|
||
; 208 : case 2:
|
||
; 209 : iB = (unsigned char) *pInPtr++;
|
||
|
||
002df 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
002e4 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
002e7 89 44 24 30 mov DWORD PTR tv176[rsp], eax
|
||
002eb 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
002f0 48 ff c0 inc rax
|
||
002f3 48 89 44 24 10 mov QWORD PTR pInPtr$[rsp], rax
|
||
002f8 8b 44 24 30 mov eax, DWORD PTR tv176[rsp]
|
||
002fc 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 210 : iB = iB << 8;
|
||
|
||
002ff 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00302 c1 e0 08 shl eax, 8
|
||
00305 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 211 : iB = iB | (unsigned char) *pInPtr;
|
||
|
||
00308 48 8b 44 24 10 mov rax, QWORD PTR pInPtr$[rsp]
|
||
0030d 0f b6 00 movzx eax, BYTE PTR [rax]
|
||
00310 8b 0c 24 mov ecx, DWORD PTR iB$[rsp]
|
||
00313 0b c8 or ecx, eax
|
||
00315 8b c1 mov eax, ecx
|
||
00317 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 212 : iB = iB << 2;
|
||
|
||
0031a 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0031d c1 e0 02 shl eax, 2
|
||
00320 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 213 : OutPtr[2] = BASE64_ENCODE_TABLE[iB & 0x3F];
|
||
|
||
00323 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00326 83 e0 3f and eax, 63 ; 0000003fH
|
||
00329 8b c0 mov eax, eax
|
||
0032b 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00332 ba 01 00 00 00 mov edx, 1
|
||
00337 48 6b d2 02 imul rdx, rdx, 2
|
||
0033b 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
00340 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
00344 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 214 : iB = iB >> 6;
|
||
|
||
00348 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
0034b c1 e8 06 shr eax, 6
|
||
0034e 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 215 : OutPtr[1] = BASE64_ENCODE_TABLE[iB & 0x3F];
|
||
|
||
00351 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00354 83 e0 3f and eax, 63 ; 0000003fH
|
||
00357 8b c0 mov eax, eax
|
||
00359 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00360 ba 01 00 00 00 mov edx, 1
|
||
00365 48 6b d2 01 imul rdx, rdx, 1
|
||
00369 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
0036e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
00372 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 216 : iB = iB >> 6;
|
||
|
||
00376 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00379 c1 e8 06 shr eax, 6
|
||
0037c 89 04 24 mov DWORD PTR iB$[rsp], eax
|
||
|
||
; 217 : OutPtr[0] = BASE64_ENCODE_TABLE[iB];
|
||
|
||
0037f 8b 04 24 mov eax, DWORD PTR iB$[rsp]
|
||
00382 48 8d 0d 00 00
|
||
00 00 lea rcx, OFFSET FLAT:?BASE64_ENCODE_TABLE@CMailCoder@@2QBDB ; CMailCoder::BASE64_ENCODE_TABLE
|
||
00389 ba 01 00 00 00 mov edx, 1
|
||
0038e 48 6b d2 00 imul rdx, rdx, 0
|
||
00392 4c 8b 44 24 08 mov r8, QWORD PTR OutPtr$[rsp]
|
||
00397 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
|
||
0039b 41 88 04 10 mov BYTE PTR [r8+rdx], al
|
||
|
||
; 218 : OutPtr[3] = '='; // Fill remaining byte.
|
||
|
||
0039f b8 01 00 00 00 mov eax, 1
|
||
003a4 48 6b c0 03 imul rax, rax, 3
|
||
003a8 48 8b 4c 24 08 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
003ad c6 04 01 3d mov BYTE PTR [rcx+rax], 61 ; 0000003dH
|
||
|
||
; 219 : OutPtr+=4;
|
||
|
||
003b1 48 8b 44 24 08 mov rax, QWORD PTR OutPtr$[rsp]
|
||
003b6 48 83 c0 04 add rax, 4
|
||
003ba 48 89 44 24 08 mov QWORD PTR OutPtr$[rsp], rax
|
||
$LN6@base64_enc:
|
||
|
||
; 220 : break;
|
||
; 221 : }
|
||
; 222 : return (unsigned int) (OutPtr - pDest);
|
||
|
||
003bf 48 8b 44 24 60 mov rax, QWORD PTR pDest$[rsp]
|
||
003c4 48 8b 4c 24 08 mov rcx, QWORD PTR OutPtr$[rsp]
|
||
003c9 48 2b c8 sub rcx, rax
|
||
003cc 48 8b c1 mov rax, rcx
|
||
$LN1@base64_enc:
|
||
|
||
; 223 : }
|
||
|
||
003cf 48 83 c4 48 add rsp, 72 ; 00000048H
|
||
003d3 c3 ret 0
|
||
?base64_encode@CMailCoder@@SAHPEADI0@Z ENDP ; CMailCoder::base64_encode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?QuotedEncodeSize@CMailCoder@@SAHH@Z
|
||
_TEXT SEGMENT
|
||
nSize$ = 0
|
||
nCR$ = 4
|
||
iSize$ = 32
|
||
?QuotedEncodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::QuotedEncodeSize, COMDAT
|
||
|
||
; 142 : {
|
||
|
||
$LN3:
|
||
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
||
00004 48 83 ec 18 sub rsp, 24
|
||
|
||
; 143 : int nSize = iSize * 3 + 1;
|
||
|
||
00008 6b 44 24 20 03 imul eax, DWORD PTR iSize$[rsp], 3
|
||
0000d ff c0 inc eax
|
||
0000f 89 04 24 mov DWORD PTR nSize$[rsp], eax
|
||
|
||
; 144 : int nCR = nSize / m_LineWidth;
|
||
|
||
00012 33 d2 xor edx, edx
|
||
00014 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
00017 f7 35 00 00 00
|
||
00 div DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
0001d 89 44 24 04 mov DWORD PTR nCR$[rsp], eax
|
||
|
||
; 145 : nSize+= nCR * 3;
|
||
|
||
00021 6b 44 24 04 03 imul eax, DWORD PTR nCR$[rsp], 3
|
||
00026 8b 0c 24 mov ecx, DWORD PTR nSize$[rsp]
|
||
00029 03 c8 add ecx, eax
|
||
0002b 8b c1 mov eax, ecx
|
||
0002d 89 04 24 mov DWORD PTR nSize$[rsp], eax
|
||
|
||
; 146 : return nSize;
|
||
|
||
00030 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
|
||
; 147 : }
|
||
|
||
00033 48 83 c4 18 add rsp, 24
|
||
00037 c3 ret 0
|
||
?QuotedEncodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::QuotedEncodeSize
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?UUDecodeSize@CMailCoder@@SAHH@Z
|
||
_TEXT SEGMENT
|
||
iSize$ = 8
|
||
?UUDecodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::UUDecodeSize, COMDAT
|
||
|
||
; 134 : {
|
||
|
||
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
||
|
||
; 135 : return (iSize + 3) / 4 * 3;
|
||
|
||
00004 8b 44 24 08 mov eax, DWORD PTR iSize$[rsp]
|
||
00008 83 c0 03 add eax, 3
|
||
0000b 99 cdq
|
||
0000c 83 e2 03 and edx, 3
|
||
0000f 03 c2 add eax, edx
|
||
00011 c1 f8 02 sar eax, 2
|
||
00014 6b c0 03 imul eax, eax, 3
|
||
|
||
; 136 : }
|
||
|
||
00017 c3 ret 0
|
||
?UUDecodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::UUDecodeSize
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?UUEncodeSize@CMailCoder@@SAHH@Z
|
||
_TEXT SEGMENT
|
||
nSize$ = 0
|
||
nCR$ = 4
|
||
iSize$ = 32
|
||
?UUEncodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::UUEncodeSize, COMDAT
|
||
|
||
; 122 : {
|
||
|
||
$LN3:
|
||
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
||
00004 48 83 ec 18 sub rsp, 24
|
||
|
||
; 123 : int nSize, nCR;
|
||
; 124 : nSize = (iSize + 2) / 3 * 4 ;
|
||
|
||
00008 8b 44 24 20 mov eax, DWORD PTR iSize$[rsp]
|
||
0000c 83 c0 02 add eax, 2
|
||
0000f 99 cdq
|
||
00010 b9 03 00 00 00 mov ecx, 3
|
||
00015 f7 f9 idiv ecx
|
||
00017 c1 e0 02 shl eax, 2
|
||
0001a 89 04 24 mov DWORD PTR nSize$[rsp], eax
|
||
|
||
; 125 : nCR = nSize / m_LineWidth + 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
0001d 33 d2 xor edx, edx
|
||
0001f 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
00022 f7 35 00 00 00
|
||
00 div DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
00028 83 c0 02 add eax, 2
|
||
0002b 89 44 24 04 mov DWORD PTR nCR$[rsp], eax
|
||
|
||
; 126 : nSize+= nCR * 3 + 2;
|
||
|
||
0002f 6b 44 24 04 03 imul eax, DWORD PTR nCR$[rsp], 3
|
||
00034 8b 0c 24 mov ecx, DWORD PTR nSize$[rsp]
|
||
00037 8d 44 01 02 lea eax, DWORD PTR [rcx+rax+2]
|
||
0003b 89 04 24 mov DWORD PTR nSize$[rsp], eax
|
||
|
||
; 127 : return nSize;
|
||
|
||
0003e 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
|
||
; 128 : }
|
||
|
||
00041 48 83 c4 18 add rsp, 24
|
||
00045 c3 ret 0
|
||
?UUEncodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::UUEncodeSize
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?Base64DecodeSize@CMailCoder@@SAHH@Z
|
||
_TEXT SEGMENT
|
||
iSize$ = 8
|
||
?Base64DecodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::Base64DecodeSize, COMDAT
|
||
|
||
; 114 : {
|
||
|
||
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
||
|
||
; 115 : return (iSize + 3) / 4 * 3;
|
||
|
||
00004 8b 44 24 08 mov eax, DWORD PTR iSize$[rsp]
|
||
00008 83 c0 03 add eax, 3
|
||
0000b 99 cdq
|
||
0000c 83 e2 03 and edx, 3
|
||
0000f 03 c2 add eax, edx
|
||
00011 c1 f8 02 sar eax, 2
|
||
00014 6b c0 03 imul eax, eax, 3
|
||
|
||
; 116 : }
|
||
|
||
00017 c3 ret 0
|
||
?Base64DecodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::Base64DecodeSize
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?Base64EncodeSize@CMailCoder@@SAHH@Z
|
||
_TEXT SEGMENT
|
||
nSize$ = 0
|
||
nCR$ = 4
|
||
iSize$ = 32
|
||
?Base64EncodeSize@CMailCoder@@SAHH@Z PROC ; CMailCoder::Base64EncodeSize, COMDAT
|
||
|
||
; 102 : {
|
||
|
||
$LN3:
|
||
00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx
|
||
00004 48 83 ec 18 sub rsp, 24
|
||
|
||
; 103 : int nSize, nCR;
|
||
; 104 : nSize = (iSize + 2) / 3 * 4 ;
|
||
|
||
00008 8b 44 24 20 mov eax, DWORD PTR iSize$[rsp]
|
||
0000c 83 c0 02 add eax, 2
|
||
0000f 99 cdq
|
||
00010 b9 03 00 00 00 mov ecx, 3
|
||
00015 f7 f9 idiv ecx
|
||
00017 c1 e0 02 shl eax, 2
|
||
0001a 89 04 24 mov DWORD PTR nSize$[rsp], eax
|
||
|
||
; 105 : nCR = nSize / m_LineWidth; //<2F><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
0001d 33 d2 xor edx, edx
|
||
0001f 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
00022 f7 35 00 00 00
|
||
00 div DWORD PTR ?m_LineWidth@CMailCoder@@2IA ; CMailCoder::m_LineWidth
|
||
00028 89 44 24 04 mov DWORD PTR nCR$[rsp], eax
|
||
|
||
; 106 : nSize+= nCR * 2;
|
||
|
||
0002c 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
0002f 8b 4c 24 04 mov ecx, DWORD PTR nCR$[rsp]
|
||
00033 8d 04 48 lea eax, DWORD PTR [rax+rcx*2]
|
||
00036 89 04 24 mov DWORD PTR nSize$[rsp], eax
|
||
|
||
; 107 : return nSize;
|
||
|
||
00039 8b 04 24 mov eax, DWORD PTR nSize$[rsp]
|
||
|
||
; 108 : }
|
||
|
||
0003c 48 83 c4 18 add rsp, 24
|
||
00040 c3 ret 0
|
||
?Base64EncodeSize@CMailCoder@@SAHH@Z ENDP ; CMailCoder::Base64EncodeSize
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?email_decode@CMailCoder@@QEAAHPEADI0@Z
|
||
_TEXT SEGMENT
|
||
iDestLen$ = 32
|
||
pSrc2$ = 40
|
||
iStart$1 = 48
|
||
iStart2$2 = 52
|
||
iEnd$3 = 56
|
||
iEnd$4 = 60
|
||
iRet$5 = 64
|
||
iRet$6 = 68
|
||
iSize$ = 72
|
||
iSrc2Len$ = 76
|
||
tv172 = 80
|
||
this$ = 112
|
||
pSrc$ = 120
|
||
nSize$ = 128
|
||
pDest$ = 136
|
||
?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 48 83 ec 68 sub rsp, 104 ; 00000068H
|
||
|
||
; 500 : int iSize=0;
|
||
|
||
00018 c7 44 24 48 00
|
||
00 00 00 mov DWORD PTR iSize$[rsp], 0
|
||
|
||
; 501 : char * pSrc2=pSrc;
|
||
|
||
00020 48 8b 44 24 78 mov rax, QWORD PTR pSrc$[rsp]
|
||
00025 48 89 44 24 28 mov QWORD PTR pSrc2$[rsp], rax
|
||
|
||
; 502 : int iSrc2Len=0;
|
||
|
||
0002a c7 44 24 4c 00
|
||
00 00 00 mov DWORD PTR iSrc2Len$[rsp], 0
|
||
|
||
; 503 : int iDestLen=0;
|
||
|
||
00032 c7 44 24 20 00
|
||
00 00 00 mov DWORD PTR iDestLen$[rsp], 0
|
||
$LN2@email_deco:
|
||
|
||
; 504 : while ( true )
|
||
|
||
0003a 33 c0 xor eax, eax
|
||
0003c 83 f8 01 cmp eax, 1
|
||
0003f 0f 84 ea 01 00
|
||
00 je $LN3@email_deco
|
||
|
||
; 505 : {
|
||
; 506 : int iStart2 = FoundChar(pSrc2,"=?");
|
||
|
||
00045 45 33 c9 xor r9d, r9d
|
||
00048 4c 8d 05 00 00
|
||
00 00 lea r8, OFFSET FLAT:$SG321191
|
||
0004f 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
00054 48 8b 4c 24 70 mov rcx, QWORD PTR this$[rsp]
|
||
00059 e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
|
||
0005e 89 44 24 34 mov DWORD PTR iStart2$2[rsp], eax
|
||
|
||
; 507 : if ( iStart2 >= 0 )
|
||
|
||
00062 83 7c 24 34 00 cmp DWORD PTR iStart2$2[rsp], 0
|
||
00067 0f 8c bb 01 00
|
||
00 jl $LN4@email_deco
|
||
|
||
; 508 : {
|
||
; 509 : strncpy(pDest+iDestLen,pSrc2,iStart2);
|
||
|
||
0006d 48 63 44 24 34 movsxd rax, DWORD PTR iStart2$2[rsp]
|
||
00072 48 63 4c 24 20 movsxd rcx, DWORD PTR iDestLen$[rsp]
|
||
00077 48 8b 94 24 88
|
||
00 00 00 mov rdx, QWORD PTR pDest$[rsp]
|
||
0007f 48 03 d1 add rdx, rcx
|
||
00082 48 8b ca mov rcx, rdx
|
||
00085 4c 8b c0 mov r8, rax
|
||
00088 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
0008d e8 00 00 00 00 call strncpy
|
||
|
||
; 510 : iDestLen +=iStart2;
|
||
|
||
00092 8b 44 24 34 mov eax, DWORD PTR iStart2$2[rsp]
|
||
00096 8b 4c 24 20 mov ecx, DWORD PTR iDestLen$[rsp]
|
||
0009a 03 c8 add ecx, eax
|
||
0009c 8b c1 mov eax, ecx
|
||
0009e 89 44 24 20 mov DWORD PTR iDestLen$[rsp], eax
|
||
|
||
; 511 : pSrc2+=iStart2+2; //=?Ϊ2<CEAA><32><EFBFBD>ֽ<EFBFBD>
|
||
|
||
000a2 8b 44 24 34 mov eax, DWORD PTR iStart2$2[rsp]
|
||
000a6 83 c0 02 add eax, 2
|
||
000a9 48 98 cdqe
|
||
000ab 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
000b0 48 03 c8 add rcx, rax
|
||
000b3 48 8b c1 mov rax, rcx
|
||
000b6 48 89 44 24 28 mov QWORD PTR pSrc2$[rsp], rax
|
||
|
||
; 512 : int iStart = FoundChar(pSrc2,"?B?");
|
||
|
||
000bb 45 33 c9 xor r9d, r9d
|
||
000be 4c 8d 05 00 00
|
||
00 00 lea r8, OFFSET FLAT:$SG321194
|
||
000c5 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
000ca 48 8b 4c 24 70 mov rcx, QWORD PTR this$[rsp]
|
||
000cf e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
|
||
000d4 89 44 24 30 mov DWORD PTR iStart$1[rsp], eax
|
||
|
||
; 513 : if ( iStart > 0 )
|
||
|
||
000d8 83 7c 24 30 00 cmp DWORD PTR iStart$1[rsp], 0
|
||
000dd 0f 8e 8e 00 00
|
||
00 jle $LN6@email_deco
|
||
|
||
; 514 : {
|
||
; 515 : //iStart += 3; //?B?Ϊ3<CEAA><33><EFBFBD>ֽ<EFBFBD>
|
||
; 516 : pSrc2=pSrc2+iStart+3; //?B?Ϊ3<CEAA><33><EFBFBD>ֽ<EFBFBD>
|
||
|
||
000e3 48 63 44 24 30 movsxd rax, DWORD PTR iStart$1[rsp]
|
||
000e8 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
000ed 48 8d 44 01 03 lea rax, QWORD PTR [rcx+rax+3]
|
||
000f2 48 89 44 24 28 mov QWORD PTR pSrc2$[rsp], rax
|
||
|
||
; 517 : int iEnd = FoundChar(pSrc2,"?=");
|
||
|
||
000f7 45 33 c9 xor r9d, r9d
|
||
000fa 4c 8d 05 00 00
|
||
00 00 lea r8, OFFSET FLAT:$SG321197
|
||
00101 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
00106 48 8b 4c 24 70 mov rcx, QWORD PTR this$[rsp]
|
||
0010b e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
|
||
00110 89 44 24 38 mov DWORD PTR iEnd$3[rsp], eax
|
||
|
||
; 518 : if ( iEnd > 1 )
|
||
|
||
00114 83 7c 24 38 01 cmp DWORD PTR iEnd$3[rsp], 1
|
||
00119 7e 51 jle SHORT $LN8@email_deco
|
||
|
||
; 519 : {
|
||
; 520 : int iRet = base64_decode(pSrc2,iEnd,pDest+iDestLen);
|
||
|
||
0011b 48 63 44 24 20 movsxd rax, DWORD PTR iDestLen$[rsp]
|
||
00120 48 8b 8c 24 88
|
||
00 00 00 mov rcx, QWORD PTR pDest$[rsp]
|
||
00128 48 03 c8 add rcx, rax
|
||
0012b 48 8b c1 mov rax, rcx
|
||
0012e 4c 8b c0 mov r8, rax
|
||
00131 8b 54 24 38 mov edx, DWORD PTR iEnd$3[rsp]
|
||
00135 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
0013a e8 00 00 00 00 call ?base64_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::base64_decode
|
||
0013f 89 44 24 40 mov DWORD PTR iRet$5[rsp], eax
|
||
|
||
; 521 : pSrc2 += iEnd+2; //"?="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
||
|
||
00143 8b 44 24 38 mov eax, DWORD PTR iEnd$3[rsp]
|
||
00147 83 c0 02 add eax, 2
|
||
0014a 48 98 cdqe
|
||
0014c 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
00151 48 03 c8 add rcx, rax
|
||
00154 48 8b c1 mov rax, rcx
|
||
00157 48 89 44 24 28 mov QWORD PTR pSrc2$[rsp], rax
|
||
|
||
; 522 : iDestLen += iRet;
|
||
|
||
0015c 8b 44 24 40 mov eax, DWORD PTR iRet$5[rsp]
|
||
00160 8b 4c 24 20 mov ecx, DWORD PTR iDestLen$[rsp]
|
||
00164 03 c8 add ecx, eax
|
||
00166 8b c1 mov eax, ecx
|
||
00168 89 44 24 20 mov DWORD PTR iDestLen$[rsp], eax
|
||
$LN8@email_deco:
|
||
|
||
; 523 : }
|
||
; 524 : }
|
||
|
||
0016c e9 b5 00 00 00 jmp $LN7@email_deco
|
||
$LN6@email_deco:
|
||
|
||
; 525 : else
|
||
; 526 : {
|
||
; 527 : iStart = FoundChar(pSrc2,"?Q?");
|
||
|
||
00171 45 33 c9 xor r9d, r9d
|
||
00174 4c 8d 05 00 00
|
||
00 00 lea r8, OFFSET FLAT:$SG321199
|
||
0017b 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
00180 48 8b 4c 24 70 mov rcx, QWORD PTR this$[rsp]
|
||
00185 e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
|
||
0018a 89 44 24 30 mov DWORD PTR iStart$1[rsp], eax
|
||
|
||
; 528 : if ( iStart > 0 )
|
||
|
||
0018e 83 7c 24 30 00 cmp DWORD PTR iStart$1[rsp], 0
|
||
00193 0f 8e 8b 00 00
|
||
00 jle $LN9@email_deco
|
||
|
||
; 529 : {
|
||
; 530 : pSrc2=pSrc2+iStart+3; //?B?Ϊ3<CEAA><33><EFBFBD>ֽ<EFBFBD>
|
||
|
||
00199 48 63 44 24 30 movsxd rax, DWORD PTR iStart$1[rsp]
|
||
0019e 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
001a3 48 8d 44 01 03 lea rax, QWORD PTR [rcx+rax+3]
|
||
001a8 48 89 44 24 28 mov QWORD PTR pSrc2$[rsp], rax
|
||
|
||
; 531 : int iEnd = FoundChar(pSrc2,"?=");
|
||
|
||
001ad 45 33 c9 xor r9d, r9d
|
||
001b0 4c 8d 05 00 00
|
||
00 00 lea r8, OFFSET FLAT:$SG321202
|
||
001b7 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
001bc 48 8b 4c 24 70 mov rcx, QWORD PTR this$[rsp]
|
||
001c1 e8 00 00 00 00 call ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ; CMailCoder::FoundChar
|
||
001c6 89 44 24 3c mov DWORD PTR iEnd$4[rsp], eax
|
||
|
||
; 532 : if ( iEnd > 1 )
|
||
|
||
001ca 83 7c 24 3c 01 cmp DWORD PTR iEnd$4[rsp], 1
|
||
001cf 7e 51 jle SHORT $LN11@email_deco
|
||
|
||
; 533 : {
|
||
; 534 : int iRet = quoted_decode(pSrc2,iEnd,pDest+iDestLen);
|
||
|
||
001d1 48 63 44 24 20 movsxd rax, DWORD PTR iDestLen$[rsp]
|
||
001d6 48 8b 8c 24 88
|
||
00 00 00 mov rcx, QWORD PTR pDest$[rsp]
|
||
001de 48 03 c8 add rcx, rax
|
||
001e1 48 8b c1 mov rax, rcx
|
||
001e4 4c 8b c0 mov r8, rax
|
||
001e7 8b 54 24 3c mov edx, DWORD PTR iEnd$4[rsp]
|
||
001eb 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
001f0 e8 00 00 00 00 call ?quoted_decode@CMailCoder@@SAHPEADI0@Z ; CMailCoder::quoted_decode
|
||
001f5 89 44 24 44 mov DWORD PTR iRet$6[rsp], eax
|
||
|
||
; 535 : pSrc2 += iEnd+2; //"?="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
||
|
||
001f9 8b 44 24 3c mov eax, DWORD PTR iEnd$4[rsp]
|
||
001fd 83 c0 02 add eax, 2
|
||
00200 48 98 cdqe
|
||
00202 48 8b 4c 24 28 mov rcx, QWORD PTR pSrc2$[rsp]
|
||
00207 48 03 c8 add rcx, rax
|
||
0020a 48 8b c1 mov rax, rcx
|
||
0020d 48 89 44 24 28 mov QWORD PTR pSrc2$[rsp], rax
|
||
|
||
; 536 : iDestLen += iRet;
|
||
|
||
00212 8b 44 24 44 mov eax, DWORD PTR iRet$6[rsp]
|
||
00216 8b 4c 24 20 mov ecx, DWORD PTR iDestLen$[rsp]
|
||
0021a 03 c8 add ecx, eax
|
||
0021c 8b c1 mov eax, ecx
|
||
0021e 89 44 24 20 mov DWORD PTR iDestLen$[rsp], eax
|
||
$LN11@email_deco:
|
||
|
||
; 537 : }
|
||
; 538 : }
|
||
|
||
00222 eb 02 jmp SHORT $LN10@email_deco
|
||
$LN9@email_deco:
|
||
|
||
; 539 : else
|
||
; 540 : {
|
||
; 541 : break;
|
||
|
||
00224 eb 09 jmp SHORT $LN3@email_deco
|
||
$LN10@email_deco:
|
||
$LN7@email_deco:
|
||
|
||
; 542 : }
|
||
; 543 : }
|
||
; 544 : }
|
||
|
||
00226 eb 02 jmp SHORT $LN5@email_deco
|
||
$LN4@email_deco:
|
||
|
||
; 545 : else
|
||
; 546 : {
|
||
; 547 : break;
|
||
|
||
00228 eb 05 jmp SHORT $LN3@email_deco
|
||
$LN5@email_deco:
|
||
|
||
; 548 : }
|
||
; 549 : }
|
||
|
||
0022a e9 0b 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>
|
||
|
||
0022f 8b 84 24 80 00
|
||
00 00 mov eax, DWORD PTR nSize$[rsp]
|
||
00236 48 8b 4c 24 78 mov rcx, QWORD PTR pSrc$[rsp]
|
||
0023b 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
00240 48 2b d1 sub rdx, rcx
|
||
00243 48 8b ca mov rcx, rdx
|
||
00246 48 2b c1 sub rax, rcx
|
||
00249 48 8b 4c 24 78 mov rcx, QWORD PTR pSrc$[rsp]
|
||
0024e 48 8b 54 24 28 mov rdx, QWORD PTR pSrc2$[rsp]
|
||
00253 48 2b d1 sub rdx, rcx
|
||
00256 48 8b ca mov rcx, rdx
|
||
00259 48 8b 54 24 78 mov rdx, QWORD PTR pSrc$[rsp]
|
||
0025e 48 03 d1 add rdx, rcx
|
||
00261 48 8b ca mov rcx, rdx
|
||
00264 48 63 54 24 20 movsxd rdx, DWORD PTR iDestLen$[rsp]
|
||
00269 4c 8b 84 24 88
|
||
00 00 00 mov r8, QWORD PTR pDest$[rsp]
|
||
00271 4c 03 c2 add r8, rdx
|
||
00274 49 8b d0 mov rdx, r8
|
||
00277 48 89 54 24 50 mov QWORD PTR tv172[rsp], rdx
|
||
0027c 4c 8b c0 mov r8, rax
|
||
0027f 48 8b d1 mov rdx, rcx
|
||
00282 48 8b 44 24 50 mov rax, QWORD PTR tv172[rsp]
|
||
00287 48 8b c8 mov rcx, rax
|
||
0028a e8 00 00 00 00 call strncpy
|
||
|
||
; 551 :
|
||
; 552 : return nSize;
|
||
|
||
0028f 8b 84 24 80 00
|
||
00 00 mov eax, DWORD PTR nSize$[rsp]
|
||
|
||
; 553 : }
|
||
|
||
00296 48 83 c4 68 add rsp, 104 ; 00000068H
|
||
0029a c3 ret 0
|
||
?email_decode@CMailCoder@@QEAAHPEADI0@Z ENDP ; CMailCoder::email_decode
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?FoundChar@CMailCoder@@QEAAHPEAD0J@Z
|
||
_TEXT SEGMENT
|
||
i$1 = 32
|
||
lLen2$ = 36
|
||
$T2 = 40
|
||
j$ = 48
|
||
pComp$ = 64
|
||
__$ArrayPad$ = 4160
|
||
this$ = 4192
|
||
szSrc$ = 4200
|
||
pEx$ = 4208
|
||
lLen$ = 4216
|
||
?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 b8 58 10 00 00 mov eax, 4184 ; 00001058H
|
||
00019 e8 00 00 00 00 call __chkstk
|
||
0001e 48 2b e0 sub rsp, rax
|
||
00021 48 8b 05 00 00
|
||
00 00 mov rax, QWORD PTR __security_cookie
|
||
00028 48 33 c4 xor rax, rsp
|
||
0002b 48 89 84 24 40
|
||
10 00 00 mov QWORD PTR __$ArrayPad$[rsp], 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>
|
||
|
||
00033 83 bc 24 78 10
|
||
00 00 00 cmp DWORD PTR lLen$[rsp], 0
|
||
0003b 75 14 jne SHORT $LN5@FoundChar
|
||
|
||
; 559 : lLen = strlen( szSrc );
|
||
|
||
0003d 48 8b 8c 24 68
|
||
10 00 00 mov rcx, QWORD PTR szSrc$[rsp]
|
||
00045 e8 00 00 00 00 call strlen
|
||
0004a 89 84 24 78 10
|
||
00 00 mov DWORD PTR lLen$[rsp], eax
|
||
$LN5@FoundChar:
|
||
|
||
; 560 : long lLen2= strlen( pEx );
|
||
|
||
00051 48 8b 8c 24 70
|
||
10 00 00 mov rcx, QWORD PTR pEx$[rsp]
|
||
00059 e8 00 00 00 00 call strlen
|
||
0005e 89 44 24 24 mov DWORD PTR lLen2$[rsp], eax
|
||
|
||
; 561 : int j =0;
|
||
|
||
00062 c7 44 24 30 00
|
||
00 00 00 mov DWORD PTR j$[rsp], 0
|
||
|
||
; 562 : for ( int i =0 ; i< lLen ; i++ )
|
||
|
||
0006a c7 44 24 20 00
|
||
00 00 00 mov DWORD PTR i$1[rsp], 0
|
||
00072 eb 0a jmp SHORT $LN4@FoundChar
|
||
$LN2@FoundChar:
|
||
00074 8b 44 24 20 mov eax, DWORD PTR i$1[rsp]
|
||
00078 ff c0 inc eax
|
||
0007a 89 44 24 20 mov DWORD PTR i$1[rsp], eax
|
||
$LN4@FoundChar:
|
||
0007e 8b 84 24 78 10
|
||
00 00 mov eax, DWORD PTR lLen$[rsp]
|
||
00085 39 44 24 20 cmp DWORD PTR i$1[rsp], eax
|
||
00089 7d 6f jge SHORT $LN3@FoundChar
|
||
|
||
; 563 : {
|
||
; 564 : memcpy( pComp , szSrc+i , lLen2 );
|
||
|
||
0008b 48 63 44 24 24 movsxd rax, DWORD PTR lLen2$[rsp]
|
||
00090 48 63 4c 24 20 movsxd rcx, DWORD PTR i$1[rsp]
|
||
00095 48 8b 94 24 68
|
||
10 00 00 mov rdx, QWORD PTR szSrc$[rsp]
|
||
0009d 48 03 d1 add rdx, rcx
|
||
000a0 48 8b ca mov rcx, rdx
|
||
000a3 4c 8b c0 mov r8, rax
|
||
000a6 48 8b d1 mov rdx, rcx
|
||
000a9 48 8d 4c 24 40 lea rcx, QWORD PTR pComp$[rsp]
|
||
000ae e8 00 00 00 00 call memcpy
|
||
|
||
; 565 : pComp[lLen2] = 0;
|
||
|
||
000b3 48 63 44 24 24 movsxd rax, DWORD PTR lLen2$[rsp]
|
||
000b8 48 89 44 24 28 mov QWORD PTR $T2[rsp], rax
|
||
000bd 48 81 7c 24 28
|
||
00 10 00 00 cmp QWORD PTR $T2[rsp], 4096 ; 00001000H
|
||
000c6 73 02 jae SHORT $LN8@FoundChar
|
||
000c8 eb 05 jmp SHORT $LN9@FoundChar
|
||
$LN8@FoundChar:
|
||
000ca e8 00 00 00 00 call __report_rangecheckfailure
|
||
$LN9@FoundChar:
|
||
000cf 48 8b 44 24 28 mov rax, QWORD PTR $T2[rsp]
|
||
000d4 c6 44 04 40 00 mov BYTE PTR pComp$[rsp+rax], 0
|
||
|
||
; 566 : if (!strcmp( pComp , pEx ) )
|
||
|
||
000d9 48 8b 94 24 70
|
||
10 00 00 mov rdx, QWORD PTR pEx$[rsp]
|
||
000e1 48 8d 4c 24 40 lea rcx, QWORD PTR pComp$[rsp]
|
||
000e6 e8 00 00 00 00 call strcmp
|
||
000eb 85 c0 test eax, eax
|
||
000ed 75 06 jne SHORT $LN6@FoundChar
|
||
|
||
; 567 : {
|
||
; 568 : return i;
|
||
|
||
000ef 8b 44 24 20 mov eax, DWORD PTR i$1[rsp]
|
||
000f3 eb 0a jmp SHORT $LN1@FoundChar
|
||
$LN6@FoundChar:
|
||
|
||
; 569 : }
|
||
; 570 : }
|
||
|
||
000f5 e9 7a ff ff ff jmp $LN2@FoundChar
|
||
$LN3@FoundChar:
|
||
|
||
; 571 : return -1;
|
||
|
||
000fa b8 ff ff ff ff mov eax, -1
|
||
$LN1@FoundChar:
|
||
$LN7@FoundChar:
|
||
|
||
; 572 : }
|
||
|
||
000ff 48 8b 8c 24 40
|
||
10 00 00 mov rcx, QWORD PTR __$ArrayPad$[rsp]
|
||
00107 48 33 cc xor rcx, rsp
|
||
0010a e8 00 00 00 00 call __security_check_cookie
|
||
0010f 48 81 c4 58 10
|
||
00 00 add rsp, 4184 ; 00001058H
|
||
00116 c3 ret 0
|
||
?FoundChar@CMailCoder@@QEAAHPEAD0J@Z ENDP ; CMailCoder::FoundChar
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?HexToDec@CMailCoder@@CAEE@Z
|
||
_TEXT SEGMENT
|
||
tv71 = 0
|
||
C$ = 32
|
||
?HexToDec@CMailCoder@@CAEE@Z PROC ; CMailCoder::HexToDec, COMDAT
|
||
|
||
; 491 : {
|
||
|
||
$LN5:
|
||
00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl
|
||
00004 48 83 ec 18 sub rsp, 24
|
||
|
||
; 492 : return C <= '9' ? C - '0' : C - 'A' + 10;
|
||
|
||
00008 0f b6 44 24 20 movzx eax, BYTE PTR C$[rsp]
|
||
0000d 83 f8 39 cmp eax, 57 ; 00000039H
|
||
00010 7f 0d jg SHORT $LN3@HexToDec
|
||
00012 0f b6 44 24 20 movzx eax, BYTE PTR C$[rsp]
|
||
00017 83 e8 30 sub eax, 48 ; 00000030H
|
||
0001a 89 04 24 mov DWORD PTR tv71[rsp], eax
|
||
0001d eb 0b jmp SHORT $LN4@HexToDec
|
||
$LN3@HexToDec:
|
||
0001f 0f b6 44 24 20 movzx eax, BYTE PTR C$[rsp]
|
||
00024 83 e8 37 sub eax, 55 ; 00000037H
|
||
00027 89 04 24 mov DWORD PTR tv71[rsp], eax
|
||
$LN4@HexToDec:
|
||
0002a 0f b6 04 24 movzx eax, BYTE PTR tv71[rsp]
|
||
|
||
; 493 : }
|
||
|
||
0002e 48 83 c4 18 add rsp, 24
|
||
00032 c3 ret 0
|
||
?HexToDec@CMailCoder@@CAEE@Z ENDP ; CMailCoder::HexToDec
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?DecToHex@CMailCoder@@CAEE@Z
|
||
_TEXT SEGMENT
|
||
tv71 = 0
|
||
B$ = 32
|
||
?DecToHex@CMailCoder@@CAEE@Z PROC ; CMailCoder::DecToHex, COMDAT
|
||
|
||
; 483 : {
|
||
|
||
$LN5:
|
||
00000 88 4c 24 08 mov BYTE PTR [rsp+8], cl
|
||
00004 48 83 ec 18 sub rsp, 24
|
||
|
||
; 484 : return B < 10 ? '0' + B:'A' + B - 10;
|
||
|
||
00008 0f b6 44 24 20 movzx eax, BYTE PTR B$[rsp]
|
||
0000d 83 f8 0a cmp eax, 10
|
||
00010 7d 0d jge SHORT $LN3@DecToHex
|
||
00012 0f b6 44 24 20 movzx eax, BYTE PTR B$[rsp]
|
||
00017 83 c0 30 add eax, 48 ; 00000030H
|
||
0001a 89 04 24 mov DWORD PTR tv71[rsp], eax
|
||
0001d eb 0b jmp SHORT $LN4@DecToHex
|
||
$LN3@DecToHex:
|
||
0001f 0f b6 44 24 20 movzx eax, BYTE PTR B$[rsp]
|
||
00024 83 c0 37 add eax, 55 ; 00000037H
|
||
00027 89 04 24 mov DWORD PTR tv71[rsp], eax
|
||
$LN4@DecToHex:
|
||
0002a 0f b6 04 24 movzx eax, BYTE PTR tv71[rsp]
|
||
|
||
; 485 : }
|
||
|
||
0002e 48 83 c4 18 add rsp, 24
|
||
00032 c3 ret 0
|
||
?DecToHex@CMailCoder@@CAEE@Z ENDP ; CMailCoder::DecToHex
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
|
||
_TEXT SEGMENT
|
||
__formal$ = 8
|
||
__formal$ = 16
|
||
__formal$ = 24
|
||
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
|
||
|
||
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
||
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
||
0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||
0000f c3 ret 0
|
||
?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z
|
||
_TEXT SEGMENT
|
||
__formal$ = 8
|
||
__formal$ = 16
|
||
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT
|
||
|
||
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
||
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||
0000a c3 ret 0
|
||
?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z
|
||
_TEXT SEGMENT
|
||
__formal$ = 8
|
||
__formal$ = 16
|
||
?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT
|
||
|
||
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
||
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||
0000a c3 ret 0
|
||
?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete
|
||
_TEXT ENDS
|
||
; Function compile flags: /Odtp
|
||
; File D:\Works\Corpsms_2010\public\Pop3\MailCoder.cpp
|
||
; COMDAT ?__empty_global_delete@@YAXPEAX@Z
|
||
_TEXT SEGMENT
|
||
__formal$ = 8
|
||
?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT
|
||
|
||
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||
00005 c3 ret 0
|
||
?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete
|
||
_TEXT ENDS
|
||
END
|