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