SmsCenter/Release_Unicode/MD5_L.cod

4092 lines
133 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0
include listing.inc
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete
PUBLIC __local_stdio_printf_options
PUBLIC _vsnprintf_l
PUBLIC _vsprintf_l
PUBLIC sprintf
PUBLIC ?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z ; MD5_L::MD5Transform
PUBLIC ?Encode@MD5_L@@QEAAXPEAEPEAKI@Z ; MD5_L::Encode
PUBLIC ?Decode@MD5_L@@QEAAXPEAKPEAEI@Z ; MD5_L::Decode
PUBLIC ?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z ; MD5_L::MD5_memcpy
PUBLIC ?MD5_memset@MD5_L@@QEAAXPEAEHI@Z ; MD5_L::MD5_memset
PUBLIC ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init
PUBLIC ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update
PUBLIC ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final
PUBLIC ?StringAddOne@MD5_L@@QEAAXPEAD@Z ; MD5_L::StringAddOne
PUBLIC ?MD5String@MD5_L@@QEAAPEADPEAD0@Z ; MD5_L::MD5String
PUBLIC ?MD5String@MD5_L@@QEAAPEADPEAD@Z ; MD5_L::MD5String
PUBLIC ?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z ; MD5_L::MD5Byte
PUBLIC ?MD5Check@MD5_L@@QEAA_NPEAD0@Z ; MD5_L::MD5Check
PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
PUBLIC ??_C@_04JFFKLGJF@?$CF02X@ ; `string'
EXTRN __report_rangecheckfailure:PROC
EXTRN __stdio_common_vsprintf:PROC
EXTRN strcmp:PROC
EXTRN strlen:PROC
EXTRN __GSHandlerCheck:PROC
EXTRN __security_check_cookie:PROC
EXTRN __security_cookie:QWORD
; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA
_BSS SEGMENT
?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage
_BSS ENDS
_BSS SEGMENT
?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA DB 040H DUP (?) ; `MD5_L::MD5String'::`2'::output
_BSS ENDS
; 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$__local_stdio_printf_options DD imagerel $LN3
DD imagerel $LN3+22
DD imagerel $unwind$__local_stdio_printf_options
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_vsnprintf_l DD imagerel $LN5
DD imagerel $LN5+119
DD imagerel $unwind$_vsnprintf_l
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$_vsprintf_l DD imagerel $LN3
DD imagerel $LN3+69
DD imagerel $unwind$_vsprintf_l
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$sprintf DD imagerel $LN3
DD imagerel $LN3+84
DD imagerel $unwind$sprintf
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z DD imagerel $LN3
DD imagerel $LN3+5307
DD imagerel $unwind$?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?Encode@MD5_L@@QEAAXPEAEPEAKI@Z DD imagerel $LN6
DD imagerel $LN6+207
DD imagerel $unwind$?Encode@MD5_L@@QEAAXPEAEPEAKI@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?Decode@MD5_L@@QEAAXPEAKPEAEI@Z DD imagerel $LN6
DD imagerel $LN6+160
DD imagerel $unwind$?Decode@MD5_L@@QEAAXPEAKPEAEI@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z DD imagerel $LN6
DD imagerel $LN6+83
DD imagerel $unwind$?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5_memset@MD5_L@@QEAAXPEAEHI@Z DD imagerel $LN6
DD imagerel $LN6+75
DD imagerel $unwind$?MD5_memset@MD5_L@@QEAAXPEAEHI@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z DD imagerel $LN3
DD imagerel $LN3+146
DD imagerel $unwind$?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z DD imagerel $LN9
DD imagerel $LN9+407
DD imagerel $unwind$?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z DD imagerel $LN5
DD imagerel $LN5+265
DD imagerel $unwind$?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?StringAddOne@MD5_L@@QEAAXPEAD@Z DD imagerel $LN12
DD imagerel $LN12+203
DD imagerel $unwind$?StringAddOne@MD5_L@@QEAAXPEAD@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5String@MD5_L@@QEAAPEADPEAD0@Z DD imagerel $LN9
DD imagerel $LN9+411
DD imagerel $unwind$?MD5String@MD5_L@@QEAAPEADPEAD0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5String@MD5_L@@QEAAPEADPEAD@Z DD imagerel $LN11
DD imagerel $LN11+437
DD imagerel $unwind$?MD5String@MD5_L@@QEAAPEADPEAD@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z DD imagerel $LN6
DD imagerel $LN6+219
DD imagerel $unwind$?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$?MD5Check@MD5_L@@QEAA_NPEAD0@Z DD imagerel $LN5
DD imagerel $LN5+80
DD imagerel $unwind$?MD5Check@MD5_L@@QEAA_NPEAD0@Z
pdata ENDS
; COMDAT ??_C@_04JFFKLGJF@?$CF02X@
CONST SEGMENT
??_C@_04JFFKLGJF@?$CF02X@ DB '%02X', 00H ; `string'
CONST ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5Check@MD5_L@@QEAA_NPEAD0@Z DD 025031901H
DD 0d2142319H
DD 05010H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 02cH
DB 0c2H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z DD 025053319H
DD 011d2322H
DD 07016001dH
DD 05015H
DD imagerel __GSHandlerCheck
DD 0d8H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 022H
DW 019cH
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5String@MD5_L@@QEAAPEADPEAD@Z DD 025052919H
DD 01132318H
DD 0700c0027H
DD 0500bH
DD imagerel __GSHandlerCheck
DD 0120H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 027H
DW 0182H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5String@MD5_L@@QEAAPEADPEAD0@Z DD 025052e19H
DD 0118231dH
DD 070110025H
DD 05010H
DD imagerel __GSHandlerCheck
DD 0118H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?StringAddOne@MD5_L@@QEAAXPEAD@Z DD 025031401H
DD 0d20f2314H
DD 0500bH
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DB 026H
DB 0f7H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z DD 025032a19H
DD 0f217231cH
DD 05010H
DD imagerel __GSHandlerCheck
DD 078H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z DD 025031e01H
DD 0d219231eH
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z DD 05031201H
DD 0720f0312H
DD 0500bH
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5_memset@MD5_L@@QEAAXPEAEHI@Z DD 05031c01H
DD 09219031cH
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z DD 05031c01H
DD 09219031cH
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?Decode@MD5_L@@QEAAXPEAKPEAEI@Z DD 05031c01H
DD 09219031cH
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?Encode@MD5_L@@QEAAXPEAEPEAKI@Z DD 05031c01H
DD 09219031cH
DD 05015H
xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 026H
DW 014a3H
voltbl ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z DD 025042d19H
DD 0117231cH
DD 050100018H
DD imagerel __GSHandlerCheck
DD 0b0H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$sprintf DD 025032101H
DD 0f21c2321H
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_vsprintf_l DD 035031e01H
DD 0d219331eH
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$_vsnprintf_l DD 035032101H
DD 0f21c3321H
DD 05015H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$__local_stdio_printf_options DD 05030901H
DD 072060309H
DD 05002H
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\md53\MD5_L.cpp
; COMDAT ?MD5Check@MD5_L@@QEAA_NPEAD0@Z
_TEXT SEGMENT
tv71 = 64
this$ = 96
md5string$ = 104
string$ = 112
?MD5Check@MD5_L@@QEAA_NPEAD0@Z PROC ; MD5_L::MD5Check, COMDAT
; 371 : {
$LN5:
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 70 sub rsp, 112 ; 00000070H
00014 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 372 : return strcmp( md5string, MD5String( string ) ) == 0;
00019 48 8b 55 70 mov rdx, QWORD PTR string$[rbp]
0001d 48 8b 4d 60 mov rcx, QWORD PTR this$[rbp]
00021 e8 00 00 00 00 call ?MD5String@MD5_L@@QEAAPEADPEAD@Z ; MD5_L::MD5String
00026 48 8b d0 mov rdx, rax
00029 48 8b 4d 68 mov rcx, QWORD PTR md5string$[rbp]
0002d e8 00 00 00 00 call strcmp
00032 85 c0 test eax, eax
00034 75 09 jne SHORT $LN3@MD5Check
00036 c7 45 40 01 00
00 00 mov DWORD PTR tv71[rbp], 1
0003d eb 07 jmp SHORT $LN4@MD5Check
$LN3@MD5Check:
0003f c7 45 40 00 00
00 00 mov DWORD PTR tv71[rbp], 0
$LN4@MD5Check:
00046 0f b6 45 40 movzx eax, BYTE PTR tv71[rbp]
; 373 : }
0004a 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
0004e 5d pop rbp
0004f c3 ret 0
?MD5Check@MD5_L@@QEAA_NPEAD0@Z ENDP ; MD5_L::MD5Check
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z
_TEXT SEGMENT
context$ = 0
digest$ = 96
len$ = 112
i$ = 116
__$ArrayPad$ = 184
this$ = 224
bMd5$ = 232
lLen$ = 240
output$ = 248
?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z PROC ; MD5_L::MD5Byte, COMDAT
; 256 : {
$LN6:
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 57 push rdi
00016 48 81 ec e8 00
00 00 sub rsp, 232 ; 000000e8H
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00022 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00029 48 33 c5 xor rax, rbp
0002c 48 89 85 b8 00
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
; 257 : MD5_CTX context;
; 258 : unsigned char digest[16] = { 0 };
00033 48 8d 45 60 lea rax, QWORD PTR digest$[rbp]
00037 48 8b f8 mov rdi, rax
0003a 33 c0 xor eax, eax
0003c b9 10 00 00 00 mov ecx, 16
00041 f3 aa rep stosb
; 259 : //BYTE output[64]={0};
; 260 : unsigned int len = lLen;
00043 8b 85 f0 00 00
00 mov eax, DWORD PTR lLen$[rbp]
00049 89 45 70 mov DWORD PTR len$[rbp], eax
; 261 : int i;
; 262 :
; 263 : MD5Init( &context);
0004c 48 8d 55 00 lea rdx, QWORD PTR context$[rbp]
00050 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR this$[rbp]
00057 e8 00 00 00 00 call ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init
; 264 : MD5Update( &context, (unsigned char*)bMd5, len );
0005c 44 8b 4d 70 mov r9d, DWORD PTR len$[rbp]
00060 4c 8b 85 e8 00
00 00 mov r8, QWORD PTR bMd5$[rbp]
00067 48 8d 55 00 lea rdx, QWORD PTR context$[rbp]
0006b 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR this$[rbp]
00072 e8 00 00 00 00 call ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update
; 265 : MD5Final( digest, &context );
00077 4c 8d 45 00 lea r8, QWORD PTR context$[rbp]
0007b 48 8d 55 60 lea rdx, QWORD PTR digest$[rbp]
0007f 48 8b 8d e0 00
00 00 mov rcx, QWORD PTR this$[rbp]
00086 e8 00 00 00 00 call ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final
; 266 :
; 267 : for (i = 0; i < 16; i++)
0008b c7 45 74 00 00
00 00 mov DWORD PTR i$[rbp], 0
00092 eb 08 jmp SHORT $LN4@MD5Byte
$LN2@MD5Byte:
00094 8b 45 74 mov eax, DWORD PTR i$[rbp]
00097 ff c0 inc eax
00099 89 45 74 mov DWORD PTR i$[rbp], eax
$LN4@MD5Byte:
0009c 83 7d 74 10 cmp DWORD PTR i$[rbp], 16
000a0 7d 19 jge SHORT $LN3@MD5Byte
; 268 : {
; 269 : output[i] = (unsigned char)digest[i];
000a2 48 63 45 74 movsxd rax, DWORD PTR i$[rbp]
000a6 48 63 4d 74 movsxd rcx, DWORD PTR i$[rbp]
000aa 48 8b 95 f8 00
00 00 mov rdx, QWORD PTR output$[rbp]
000b1 0f b6 44 05 60 movzx eax, BYTE PTR digest$[rbp+rax]
000b6 88 04 0a mov BYTE PTR [rdx+rcx], al
; 270 : //sprintf(&(output1[2*i]),"%02X",(unsigned char)digest[i]);
; 271 : //sprintf(&(output1[2*i+1]),"%02X",(unsigned char)(digest[i]<<4));
; 272 : }
000b9 eb d9 jmp SHORT $LN2@MD5Byte
$LN3@MD5Byte:
; 273 : return output;
000bb 48 8b 85 f8 00
00 00 mov rax, QWORD PTR output$[rbp]
; 274 :
; 275 : }
000c2 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
000c9 48 33 cd xor rcx, rbp
000cc e8 00 00 00 00 call __security_check_cookie
000d1 48 8d a5 c8 00
00 00 lea rsp, QWORD PTR [rbp+200]
000d8 5f pop rdi
000d9 5d pop rbp
000da c3 ret 0
?MD5Byte@MD5_L@@QEAAPEAEPEAEJ0@Z ENDP ; MD5_L::MD5Byte
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5String@MD5_L@@QEAAPEADPEAD@Z
_TEXT SEGMENT
context$ = 0
digest$ = 96
output1$ = 112
len$ = 176
i$ = 180
$T1 = 248
__$ArrayPad$ = 256
this$ = 304
string$ = 312
?MD5String@MD5_L@@QEAAPEADPEAD@Z PROC ; MD5_L::MD5String, COMDAT
; 280 : {
$LN11:
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 57 push rdi
0000c 48 81 ec 38 01
00 00 sub rsp, 312 ; 00000138H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001f 48 33 c5 xor rax, rbp
00022 48 89 85 00 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
; 281 : MD5_CTX context;
; 282 : unsigned char digest[16] = { 0 };
00029 48 8d 45 60 lea rax, QWORD PTR digest$[rbp]
0002d 48 8b f8 mov rdi, rax
00030 33 c0 xor eax, eax
00032 b9 10 00 00 00 mov ecx, 16
00037 f3 aa rep stosb
; 283 : //char output1[128] = { 0 };
; 284 : char output1[64] = { 0 };
00039 48 8d 45 70 lea rax, QWORD PTR output1$[rbp]
0003d 48 8b f8 mov rdi, rax
00040 33 c0 xor eax, eax
00042 b9 40 00 00 00 mov ecx, 64 ; 00000040H
00047 f3 aa rep stosb
; 285 : static char output[64] = { 0 };
; 286 : unsigned int len = (unsigned int)strlen (string);
00049 48 8b 8d 38 01
00 00 mov rcx, QWORD PTR string$[rbp]
00050 e8 00 00 00 00 call strlen
00055 89 85 b0 00 00
00 mov DWORD PTR len$[rbp], eax
; 287 : int i;
; 288 :
; 289 : MD5Init( &context);
0005b 48 8d 55 00 lea rdx, QWORD PTR context$[rbp]
0005f 48 8b 8d 30 01
00 00 mov rcx, QWORD PTR this$[rbp]
00066 e8 00 00 00 00 call ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init
; 290 : MD5Update( &context, (unsigned char*)string, len );
0006b 44 8b 8d b0 00
00 00 mov r9d, DWORD PTR len$[rbp]
00072 4c 8b 85 38 01
00 00 mov r8, QWORD PTR string$[rbp]
00079 48 8d 55 00 lea rdx, QWORD PTR context$[rbp]
0007d 48 8b 8d 30 01
00 00 mov rcx, QWORD PTR this$[rbp]
00084 e8 00 00 00 00 call ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update
; 291 : MD5Final( digest, &context );
00089 4c 8d 45 00 lea r8, QWORD PTR context$[rbp]
0008d 48 8d 55 60 lea rdx, QWORD PTR digest$[rbp]
00091 48 8b 8d 30 01
00 00 mov rcx, QWORD PTR this$[rbp]
00098 e8 00 00 00 00 call ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final
; 292 :
; 293 : for (i = 0; i < 16; i++)
0009d c7 85 b4 00 00
00 00 00 00 00 mov DWORD PTR i$[rbp], 0
000a7 eb 0e jmp SHORT $LN4@MD5String
$LN2@MD5String:
000a9 8b 85 b4 00 00
00 mov eax, DWORD PTR i$[rbp]
000af ff c0 inc eax
000b1 89 85 b4 00 00
00 mov DWORD PTR i$[rbp], eax
$LN4@MD5String:
000b7 83 bd b4 00 00
00 10 cmp DWORD PTR i$[rbp], 16
000be 7d 60 jge SHORT $LN3@MD5String
; 294 : {
; 295 : sprintf(&(output1[2*i]),"%02X",(unsigned char)digest[i]);
000c0 48 63 85 b4 00
00 00 movsxd rax, DWORD PTR i$[rbp]
000c7 0f b6 44 05 60 movzx eax, BYTE PTR digest$[rbp+rax]
000cc 8b 8d b4 00 00
00 mov ecx, DWORD PTR i$[rbp]
000d2 03 c9 add ecx, ecx
000d4 48 63 c9 movsxd rcx, ecx
000d7 48 8d 4c 0d 70 lea rcx, QWORD PTR output1$[rbp+rcx]
000dc 44 8b c0 mov r8d, eax
000df 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
000e6 e8 00 00 00 00 call sprintf
; 296 : sprintf(&(output1[2*i+1]),"%02X",(unsigned char)(digest[i]<<4));
000eb 48 63 85 b4 00
00 00 movsxd rax, DWORD PTR i$[rbp]
000f2 0f b6 44 05 60 movzx eax, BYTE PTR digest$[rbp+rax]
000f7 c1 e0 04 shl eax, 4
000fa 0f b6 c0 movzx eax, al
000fd 8b 8d b4 00 00
00 mov ecx, DWORD PTR i$[rbp]
00103 8d 4c 09 01 lea ecx, DWORD PTR [rcx+rcx+1]
00107 48 63 c9 movsxd rcx, ecx
0010a 48 8d 4c 0d 70 lea rcx, QWORD PTR output1$[rbp+rcx]
0010f 44 8b c0 mov r8d, eax
00112 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
00119 e8 00 00 00 00 call sprintf
; 297 : }
0011e eb 89 jmp SHORT $LN2@MD5String
$LN3@MD5String:
; 298 : for(i=0;i<32;i++)
00120 c7 85 b4 00 00
00 00 00 00 00 mov DWORD PTR i$[rbp], 0
0012a eb 0e jmp SHORT $LN7@MD5String
$LN5@MD5String:
0012c 8b 85 b4 00 00
00 mov eax, DWORD PTR i$[rbp]
00132 ff c0 inc eax
00134 89 85 b4 00 00
00 mov DWORD PTR i$[rbp], eax
$LN7@MD5String:
0013a 83 bd b4 00 00
00 20 cmp DWORD PTR i$[rbp], 32 ; 00000020H
00141 7d 1f jge SHORT $LN6@MD5String
; 299 : {
; 300 : output[i]=output1[i];
00143 48 63 85 b4 00
00 00 movsxd rax, DWORD PTR i$[rbp]
0014a 48 63 8d b4 00
00 00 movsxd rcx, DWORD PTR i$[rbp]
00151 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA
00158 0f b6 44 05 70 movzx eax, BYTE PTR output1$[rbp+rax]
0015d 88 04 0a mov BYTE PTR [rdx+rcx], al
; 301 : }
00160 eb ca jmp SHORT $LN5@MD5String
$LN6@MD5String:
; 302 : output[32] = 0;
00162 b8 01 00 00 00 mov eax, 1
00167 48 6b c0 20 imul rax, rax, 32 ; 00000020H
0016b 48 89 85 f8 00
00 00 mov QWORD PTR $T1[rbp], rax
00172 48 83 bd f8 00
00 00 40 cmp QWORD PTR $T1[rbp], 64 ; 00000040H
0017a 73 02 jae SHORT $LN9@MD5String
0017c eb 05 jmp SHORT $LN10@MD5String
$LN9@MD5String:
0017e e8 00 00 00 00 call __report_rangecheckfailure
$LN10@MD5String:
00183 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA
0018a 48 8b 8d f8 00
00 00 mov rcx, QWORD PTR $T1[rbp]
00191 c6 04 08 00 mov BYTE PTR [rax+rcx], 0
; 303 :
; 304 : return output;
00195 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:?output@?1??MD5String@MD5_L@@QEAAPEADPEAD@Z@4PADA
$LN8@MD5String:
; 305 : }
0019c 48 8b 8d 00 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
001a3 48 33 cd xor rcx, rbp
001a6 e8 00 00 00 00 call __security_check_cookie
001ab 48 8d a5 18 01
00 00 lea rsp, QWORD PTR [rbp+280]
001b2 5f pop rdi
001b3 5d pop rbp
001b4 c3 ret 0
?MD5String@MD5_L@@QEAAPEADPEAD@Z ENDP ; MD5_L::MD5String
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5String@MD5_L@@QEAAPEADPEAD0@Z
_TEXT SEGMENT
context$ = 0
digest$ = 96
output1$ = 112
len$ = 176
i$ = 180
__$ArrayPad$ = 248
this$ = 288
string$ = 296
strMD5$ = 304
?MD5String@MD5_L@@QEAAPEADPEAD0@Z PROC ; MD5_L::MD5String, COMDAT
; 309 : {
$LN9:
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 57 push rdi
00011 48 81 ec 28 01
00 00 sub rsp, 296 ; 00000128H
00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001d 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00024 48 33 c5 xor rax, rbp
00027 48 89 85 f8 00
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
; 310 : MD5_CTX context;
; 311 : unsigned char digest[16] = { 0 };
0002e 48 8d 45 60 lea rax, QWORD PTR digest$[rbp]
00032 48 8b f8 mov rdi, rax
00035 33 c0 xor eax, eax
00037 b9 10 00 00 00 mov ecx, 16
0003c f3 aa rep stosb
; 312 : //char output1[128] = { 0 };
; 313 : char output1[64] = { 0 };
0003e 48 8d 45 70 lea rax, QWORD PTR output1$[rbp]
00042 48 8b f8 mov rdi, rax
00045 33 c0 xor eax, eax
00047 b9 40 00 00 00 mov ecx, 64 ; 00000040H
0004c f3 aa rep stosb
; 314 : unsigned int len = (unsigned int)strlen(string);
0004e 48 8b 8d 28 01
00 00 mov rcx, QWORD PTR string$[rbp]
00055 e8 00 00 00 00 call strlen
0005a 89 85 b0 00 00
00 mov DWORD PTR len$[rbp], eax
; 315 : int i;
; 316 :
; 317 : MD5Init(&context);
00060 48 8d 55 00 lea rdx, QWORD PTR context$[rbp]
00064 48 8b 8d 20 01
00 00 mov rcx, QWORD PTR this$[rbp]
0006b e8 00 00 00 00 call ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Init
; 318 : MD5Update(&context, (unsigned char*)string, len);
00070 44 8b 8d b0 00
00 00 mov r9d, DWORD PTR len$[rbp]
00077 4c 8b 85 28 01
00 00 mov r8, QWORD PTR string$[rbp]
0007e 48 8d 55 00 lea rdx, QWORD PTR context$[rbp]
00082 48 8b 8d 20 01
00 00 mov rcx, QWORD PTR this$[rbp]
00089 e8 00 00 00 00 call ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update
; 319 : MD5Final(digest, &context);
0008e 4c 8d 45 00 lea r8, QWORD PTR context$[rbp]
00092 48 8d 55 60 lea rdx, QWORD PTR digest$[rbp]
00096 48 8b 8d 20 01
00 00 mov rcx, QWORD PTR this$[rbp]
0009d e8 00 00 00 00 call ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ; MD5_L::MD5Final
; 320 :
; 321 : for (i = 0; i < 16; i++)
000a2 c7 85 b4 00 00
00 00 00 00 00 mov DWORD PTR i$[rbp], 0
000ac eb 0e jmp SHORT $LN4@MD5String
$LN2@MD5String:
000ae 8b 85 b4 00 00
00 mov eax, DWORD PTR i$[rbp]
000b4 ff c0 inc eax
000b6 89 85 b4 00 00
00 mov DWORD PTR i$[rbp], eax
$LN4@MD5String:
000bc 83 bd b4 00 00
00 10 cmp DWORD PTR i$[rbp], 16
000c3 7d 60 jge SHORT $LN3@MD5String
; 322 : {
; 323 : sprintf(&(output1[2 * i]), "%02X", (unsigned char)digest[i]);
000c5 48 63 85 b4 00
00 00 movsxd rax, DWORD PTR i$[rbp]
000cc 0f b6 44 05 60 movzx eax, BYTE PTR digest$[rbp+rax]
000d1 8b 8d b4 00 00
00 mov ecx, DWORD PTR i$[rbp]
000d7 03 c9 add ecx, ecx
000d9 48 63 c9 movsxd rcx, ecx
000dc 48 8d 4c 0d 70 lea rcx, QWORD PTR output1$[rbp+rcx]
000e1 44 8b c0 mov r8d, eax
000e4 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
000eb e8 00 00 00 00 call sprintf
; 324 : sprintf(&(output1[2 * i + 1]), "%02X", (unsigned char)(digest[i] << 4));
000f0 48 63 85 b4 00
00 00 movsxd rax, DWORD PTR i$[rbp]
000f7 0f b6 44 05 60 movzx eax, BYTE PTR digest$[rbp+rax]
000fc c1 e0 04 shl eax, 4
000ff 0f b6 c0 movzx eax, al
00102 8b 8d b4 00 00
00 mov ecx, DWORD PTR i$[rbp]
00108 8d 4c 09 01 lea ecx, DWORD PTR [rcx+rcx+1]
0010c 48 63 c9 movsxd rcx, ecx
0010f 48 8d 4c 0d 70 lea rcx, QWORD PTR output1$[rbp+rcx]
00114 44 8b c0 mov r8d, eax
00117 48 8d 15 00 00
00 00 lea rdx, OFFSET FLAT:??_C@_04JFFKLGJF@?$CF02X@
0011e e8 00 00 00 00 call sprintf
; 325 : }
00123 eb 89 jmp SHORT $LN2@MD5String
$LN3@MD5String:
; 326 : for (i = 0; i<32; i++)
00125 c7 85 b4 00 00
00 00 00 00 00 mov DWORD PTR i$[rbp], 0
0012f eb 0e jmp SHORT $LN7@MD5String
$LN5@MD5String:
00131 8b 85 b4 00 00
00 mov eax, DWORD PTR i$[rbp]
00137 ff c0 inc eax
00139 89 85 b4 00 00
00 mov DWORD PTR i$[rbp], eax
$LN7@MD5String:
0013f 83 bd b4 00 00
00 20 cmp DWORD PTR i$[rbp], 32 ; 00000020H
00146 7d 1f jge SHORT $LN6@MD5String
; 327 : {
; 328 : strMD5[i] = output1[i];
00148 48 63 85 b4 00
00 00 movsxd rax, DWORD PTR i$[rbp]
0014f 48 63 8d b4 00
00 00 movsxd rcx, DWORD PTR i$[rbp]
00156 48 8b 95 30 01
00 00 mov rdx, QWORD PTR strMD5$[rbp]
0015d 0f b6 44 05 70 movzx eax, BYTE PTR output1$[rbp+rax]
00162 88 04 0a mov BYTE PTR [rdx+rcx], al
; 329 : }
00165 eb ca jmp SHORT $LN5@MD5String
$LN6@MD5String:
; 330 : strMD5[32] = 0;
00167 b8 01 00 00 00 mov eax, 1
0016c 48 6b c0 20 imul rax, rax, 32 ; 00000020H
00170 48 8b 8d 30 01
00 00 mov rcx, QWORD PTR strMD5$[rbp]
00177 c6 04 01 00 mov BYTE PTR [rcx+rax], 0
; 331 :
; 332 : return strMD5;
0017b 48 8b 85 30 01
00 00 mov rax, QWORD PTR strMD5$[rbp]
; 333 : }
00182 48 8b 8d f8 00
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
00189 48 33 cd xor rcx, rbp
0018c e8 00 00 00 00 call __security_check_cookie
00191 48 8d a5 08 01
00 00 lea rsp, QWORD PTR [rbp+264]
00198 5f pop rdi
00199 5d pop rbp
0019a c3 ret 0
?MD5String@MD5_L@@QEAAPEADPEAD0@Z ENDP ; MD5_L::MD5String
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?StringAddOne@MD5_L@@QEAAXPEAD@Z
_TEXT SEGMENT
len$ = 0
i$ = 4
n$ = 8
this$ = 96
orstring$ = 104
?StringAddOne@MD5_L@@QEAAXPEAD@Z PROC ; MD5_L::StringAddOne, COMDAT
; 339 : {
$LN12:
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 70 sub rsp, 112 ; 00000070H
0000f 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 340 : unsigned int len;
; 341 : int i,n;
; 342 :
; 343 : len = (unsigned int)strlen(orstring);
00014 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
00018 e8 00 00 00 00 call strlen
0001d 89 45 00 mov DWORD PTR len$[rbp], eax
; 344 : n = len - 1;
00020 8b 45 00 mov eax, DWORD PTR len$[rbp]
00023 ff c8 dec eax
00025 89 45 08 mov DWORD PTR n$[rbp], eax
; 345 : for(i = n; i >= 0; i--)
00028 8b 45 08 mov eax, DWORD PTR n$[rbp]
0002b 89 45 04 mov DWORD PTR i$[rbp], eax
0002e eb 08 jmp SHORT $LN4@StringAddO
$LN2@StringAddO:
00030 8b 45 04 mov eax, DWORD PTR i$[rbp]
00033 ff c8 dec eax
00035 89 45 04 mov DWORD PTR i$[rbp], eax
$LN4@StringAddO:
00038 83 7d 04 00 cmp DWORD PTR i$[rbp], 0
0003c 0f 8c 83 00 00
00 jl $LN3@StringAddO
; 346 : {
; 347 : if(orstring[i]=='9')
00042 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
00046 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
0004a 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
0004e 83 f8 39 cmp eax, 57 ; 00000039H
00051 75 10 jne SHORT $LN5@StringAddO
; 348 : {
; 349 : orstring[i] = 'A';
00053 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
00057 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
0005b c6 04 01 41 mov BYTE PTR [rcx+rax], 65 ; 00000041H
; 350 : break;
0005f eb 64 jmp SHORT $LN3@StringAddO
; 351 : }
00061 eb 5b jmp SHORT $LN6@StringAddO
$LN5@StringAddO:
; 352 : else if(orstring[i]=='Z')
00063 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
00067 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
0006b 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
0006f 83 f8 5a cmp eax, 90 ; 0000005aH
00072 75 10 jne SHORT $LN7@StringAddO
; 353 : {
; 354 : orstring[i]='a';
00074 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
00078 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
0007c c6 04 01 61 mov BYTE PTR [rcx+rax], 97 ; 00000061H
; 355 : break;
00080 eb 43 jmp SHORT $LN3@StringAddO
; 356 : }
00082 eb 3a jmp SHORT $LN8@StringAddO
$LN7@StringAddO:
; 357 : else if(orstring[i]=='z')
00084 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
00088 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
0008c 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
00090 83 f8 7a cmp eax, 122 ; 0000007aH
00093 75 10 jne SHORT $LN9@StringAddO
; 358 : {
; 359 : orstring[i]='0';
00095 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
00099 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
0009d c6 04 01 30 mov BYTE PTR [rcx+rax], 48 ; 00000030H
; 360 : continue;
000a1 eb 8d jmp SHORT $LN2@StringAddO
; 361 : }
000a3 eb 19 jmp SHORT $LN10@StringAddO
$LN9@StringAddO:
; 362 : else
; 363 : orstring[i] += 1;
000a5 48 63 45 04 movsxd rax, DWORD PTR i$[rbp]
000a9 48 8b 4d 68 mov rcx, QWORD PTR orstring$[rbp]
000ad 0f be 04 01 movsx eax, BYTE PTR [rcx+rax]
000b1 ff c0 inc eax
000b3 48 63 4d 04 movsxd rcx, DWORD PTR i$[rbp]
000b7 48 8b 55 68 mov rdx, QWORD PTR orstring$[rbp]
000bb 88 04 0a mov BYTE PTR [rdx+rcx], al
$LN10@StringAddO:
$LN8@StringAddO:
$LN6@StringAddO:
; 364 : break;
000be eb 05 jmp SHORT $LN3@StringAddO
; 365 : }
000c0 e9 6b ff ff ff jmp $LN2@StringAddO
$LN3@StringAddO:
; 366 : }
000c5 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
000c9 5d pop rbp
000ca c3 ret 0
?StringAddOne@MD5_L@@QEAAXPEAD@Z ENDP ; MD5_L::StringAddOne
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z
_TEXT SEGMENT
bits$ = 0
index$ = 8
padLen$ = 12
tv77 = 80
__$ArrayPad$ = 88
this$ = 112
digest$ = 120
context$ = 128
?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z PROC ; MD5_L::MD5Final, COMDAT
; 75 : {
$LN5:
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 81 ec 80 00
00 00 sub rsp, 128 ; 00000080H
00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001c 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00023 48 33 c5 xor rax, rbp
00026 48 89 45 58 mov QWORD PTR __$ArrayPad$[rbp], rax
; 76 : unsigned char bits[8];
; 77 : unsigned int index, padLen;
; 78 :
; 79 : /* Save number of bits */
; 80 : Encode (bits, context->count, 8);
0002a 48 8b 85 80 00
00 00 mov rax, QWORD PTR context$[rbp]
00031 48 83 c0 10 add rax, 16
00035 41 b9 08 00 00
00 mov r9d, 8
0003b 4c 8b c0 mov r8, rax
0003e 48 8d 55 00 lea rdx, QWORD PTR bits$[rbp]
00042 48 8b 4d 70 mov rcx, QWORD PTR this$[rbp]
00046 e8 00 00 00 00 call ?Encode@MD5_L@@QEAAXPEAEPEAKI@Z ; MD5_L::Encode
; 81 :
; 82 : /* Pad out to 56 mod 64.
; 83 : */
; 84 : index = (unsigned int)((context->count[0] >> 3) & 0x3f);
0004b b8 04 00 00 00 mov eax, 4
00050 48 6b c0 00 imul rax, rax, 0
00054 48 8b 8d 80 00
00 00 mov rcx, QWORD PTR context$[rbp]
0005b 8b 44 01 10 mov eax, DWORD PTR [rcx+rax+16]
0005f c1 e8 03 shr eax, 3
00062 83 e0 3f and eax, 63 ; 0000003fH
00065 89 45 08 mov DWORD PTR index$[rbp], eax
; 85 : padLen = (index < 56) ? (56 - index) : (120 - index);
00068 83 7d 08 38 cmp DWORD PTR index$[rbp], 56 ; 00000038H
0006c 73 0d jae SHORT $LN3@MD5Final
0006e b8 38 00 00 00 mov eax, 56 ; 00000038H
00073 2b 45 08 sub eax, DWORD PTR index$[rbp]
00076 89 45 50 mov DWORD PTR tv77[rbp], eax
00079 eb 0b jmp SHORT $LN4@MD5Final
$LN3@MD5Final:
0007b b8 78 00 00 00 mov eax, 120 ; 00000078H
00080 2b 45 08 sub eax, DWORD PTR index$[rbp]
00083 89 45 50 mov DWORD PTR tv77[rbp], eax
$LN4@MD5Final:
00086 8b 45 50 mov eax, DWORD PTR tv77[rbp]
00089 89 45 0c mov DWORD PTR padLen$[rbp], eax
; 86 : MD5Update (context, PADDING, padLen);
0008c 48 8b 45 70 mov rax, QWORD PTR this$[rbp]
00090 44 8b 4d 0c mov r9d, DWORD PTR padLen$[rbp]
00094 4c 8b c0 mov r8, rax
00097 48 8b 95 80 00
00 00 mov rdx, QWORD PTR context$[rbp]
0009e 48 8b 4d 70 mov rcx, QWORD PTR this$[rbp]
000a2 e8 00 00 00 00 call ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update
; 87 :
; 88 : /* Append length (before padding) */
; 89 : MD5Update (context, bits, 8);
000a7 41 b9 08 00 00
00 mov r9d, 8
000ad 4c 8d 45 00 lea r8, QWORD PTR bits$[rbp]
000b1 48 8b 95 80 00
00 00 mov rdx, QWORD PTR context$[rbp]
000b8 48 8b 4d 70 mov rcx, QWORD PTR this$[rbp]
000bc e8 00 00 00 00 call ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ; MD5_L::MD5Update
; 90 :
; 91 : /* Store state in digest */
; 92 : Encode (digest, context->state, 16);
000c1 48 8b 85 80 00
00 00 mov rax, QWORD PTR context$[rbp]
000c8 41 b9 10 00 00
00 mov r9d, 16
000ce 4c 8b c0 mov r8, rax
000d1 48 8b 55 78 mov rdx, QWORD PTR digest$[rbp]
000d5 48 8b 4d 70 mov rcx, QWORD PTR this$[rbp]
000d9 e8 00 00 00 00 call ?Encode@MD5_L@@QEAAXPEAEPEAKI@Z ; MD5_L::Encode
; 93 :
; 94 : /* Zeroize sensitive information.
; 95 : */
; 96 : MD5_memset ((POINTER)context, 0, sizeof (*context));
000de 41 b9 58 00 00
00 mov r9d, 88 ; 00000058H
000e4 45 33 c0 xor r8d, r8d
000e7 48 8b 95 80 00
00 00 mov rdx, QWORD PTR context$[rbp]
000ee 48 8b 4d 70 mov rcx, QWORD PTR this$[rbp]
000f2 e8 00 00 00 00 call ?MD5_memset@MD5_L@@QEAAXPEAEHI@Z ; MD5_L::MD5_memset
; 97 : }
000f7 48 8b 4d 58 mov rcx, QWORD PTR __$ArrayPad$[rbp]
000fb 48 33 cd xor rcx, rbp
000fe e8 00 00 00 00 call __security_check_cookie
00103 48 8d 65 60 lea rsp, QWORD PTR [rbp+96]
00107 5d pop rbp
00108 c3 ret 0
?MD5Final@MD5_L@@QEAAXQEAEPEAU_MD5_CTX@1@@Z ENDP ; MD5_L::MD5Final
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z
_TEXT SEGMENT
i$ = 0
index$ = 4
partLen$ = 8
tv76 = 76
this$ = 96
context$ = 104
input$ = 112
inputLen$ = 120
?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z PROC ; MD5_L::MD5Update, COMDAT
; 33 : {
$LN9:
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 48 83 ec 70 sub rsp, 112 ; 00000070H
00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 34 : unsigned int i, index, partLen;
; 35 :
; 36 : /* Compute number of bytes mod 64 */
; 37 : index = (unsigned int)((context->count[0] >> 3) & 0x3F);
0001e b8 04 00 00 00 mov eax, 4
00023 48 6b c0 00 imul rax, rax, 0
00027 48 8b 4d 68 mov rcx, QWORD PTR context$[rbp]
0002b 8b 44 01 10 mov eax, DWORD PTR [rcx+rax+16]
0002f c1 e8 03 shr eax, 3
00032 83 e0 3f and eax, 63 ; 0000003fH
00035 89 45 04 mov DWORD PTR index$[rbp], eax
; 38 :
; 39 : /* Update number of bits */
; 40 : if ((context->count[0] += ((UINT4)inputLen << 3))
; 41 : < ((UINT4)inputLen << 3))
00038 8b 45 78 mov eax, DWORD PTR inputLen$[rbp]
0003b c1 e0 03 shl eax, 3
0003e b9 04 00 00 00 mov ecx, 4
00043 48 6b c9 00 imul rcx, rcx, 0
00047 48 8b 55 68 mov rdx, QWORD PTR context$[rbp]
0004b 8b 4c 0a 10 mov ecx, DWORD PTR [rdx+rcx+16]
0004f 03 c8 add ecx, eax
00051 89 4d 4c mov DWORD PTR tv76[rbp], ecx
00054 b8 04 00 00 00 mov eax, 4
00059 48 6b c0 00 imul rax, rax, 0
0005d 48 8b 4d 68 mov rcx, QWORD PTR context$[rbp]
00061 8b 55 4c mov edx, DWORD PTR tv76[rbp]
00064 89 54 01 10 mov DWORD PTR [rcx+rax+16], edx
00068 8b 45 78 mov eax, DWORD PTR inputLen$[rbp]
0006b c1 e0 03 shl eax, 3
0006e 39 45 4c cmp DWORD PTR tv76[rbp], eax
00071 73 24 jae SHORT $LN5@MD5Update
; 42 : context->count[1]++;
00073 b8 04 00 00 00 mov eax, 4
00078 48 6b c0 01 imul rax, rax, 1
0007c 48 8b 4d 68 mov rcx, QWORD PTR context$[rbp]
00080 8b 44 01 10 mov eax, DWORD PTR [rcx+rax+16]
00084 ff c0 inc eax
00086 b9 04 00 00 00 mov ecx, 4
0008b 48 6b c9 01 imul rcx, rcx, 1
0008f 48 8b 55 68 mov rdx, QWORD PTR context$[rbp]
00093 89 44 0a 10 mov DWORD PTR [rdx+rcx+16], eax
$LN5@MD5Update:
; 43 : context->count[1] += ((UINT4)inputLen >> 29);
00097 8b 45 78 mov eax, DWORD PTR inputLen$[rbp]
0009a c1 e8 1d shr eax, 29
0009d b9 04 00 00 00 mov ecx, 4
000a2 48 6b c9 01 imul rcx, rcx, 1
000a6 48 8b 55 68 mov rdx, QWORD PTR context$[rbp]
000aa 03 44 0a 10 add eax, DWORD PTR [rdx+rcx+16]
000ae b9 04 00 00 00 mov ecx, 4
000b3 48 6b c9 01 imul rcx, rcx, 1
000b7 48 8b 55 68 mov rdx, QWORD PTR context$[rbp]
000bb 89 44 0a 10 mov DWORD PTR [rdx+rcx+16], eax
; 44 :
; 45 : partLen = 64 - index;
000bf b8 40 00 00 00 mov eax, 64 ; 00000040H
000c4 2b 45 04 sub eax, DWORD PTR index$[rbp]
000c7 89 45 08 mov DWORD PTR partLen$[rbp], eax
; 46 :
; 47 : /* Transform as many times as possible.
; 48 : */
; 49 : if (inputLen >= partLen) {
000ca 8b 45 08 mov eax, DWORD PTR partLen$[rbp]
000cd 39 45 78 cmp DWORD PTR inputLen$[rbp], eax
000d0 0f 82 82 00 00
00 jb $LN6@MD5Update
; 50 : MD5_memcpy
000d6 8b 45 04 mov eax, DWORD PTR index$[rbp]
000d9 48 8b 4d 68 mov rcx, QWORD PTR context$[rbp]
000dd 48 8d 44 01 18 lea rax, QWORD PTR [rcx+rax+24]
000e2 44 8b 4d 08 mov r9d, DWORD PTR partLen$[rbp]
000e6 4c 8b 45 70 mov r8, QWORD PTR input$[rbp]
000ea 48 8b d0 mov rdx, rax
000ed 48 8b 4d 60 mov rcx, QWORD PTR this$[rbp]
000f1 e8 00 00 00 00 call ?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z ; MD5_L::MD5_memcpy
; 51 : ((POINTER)&context->buffer[index], (POINTER)input, partLen);
; 52 : MD5Transform (context->state, context->buffer);
000f6 48 8b 45 68 mov rax, QWORD PTR context$[rbp]
000fa 48 83 c0 18 add rax, 24
000fe 48 8b 4d 68 mov rcx, QWORD PTR context$[rbp]
00102 4c 8b c0 mov r8, rax
00105 48 8b d1 mov rdx, rcx
00108 48 8b 4d 60 mov rcx, QWORD PTR this$[rbp]
0010c e8 00 00 00 00 call ?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z ; MD5_L::MD5Transform
; 53 :
; 54 : for (i = partLen; i + 63 < inputLen; i += 64)
00111 8b 45 08 mov eax, DWORD PTR partLen$[rbp]
00114 89 45 00 mov DWORD PTR i$[rbp], eax
00117 eb 09 jmp SHORT $LN4@MD5Update
$LN2@MD5Update:
00119 8b 45 00 mov eax, DWORD PTR i$[rbp]
0011c 83 c0 40 add eax, 64 ; 00000040H
0011f 89 45 00 mov DWORD PTR i$[rbp], eax
$LN4@MD5Update:
00122 8b 45 00 mov eax, DWORD PTR i$[rbp]
00125 83 c0 3f add eax, 63 ; 0000003fH
00128 3b 45 78 cmp eax, DWORD PTR inputLen$[rbp]
0012b 73 22 jae SHORT $LN3@MD5Update
; 55 : MD5Transform (context->state, &input[i]);
0012d 8b 45 00 mov eax, DWORD PTR i$[rbp]
00130 48 8b 4d 70 mov rcx, QWORD PTR input$[rbp]
00134 48 03 c8 add rcx, rax
00137 48 8b c1 mov rax, rcx
0013a 48 8b 4d 68 mov rcx, QWORD PTR context$[rbp]
0013e 4c 8b c0 mov r8, rax
00141 48 8b d1 mov rdx, rcx
00144 48 8b 4d 60 mov rcx, QWORD PTR this$[rbp]
00148 e8 00 00 00 00 call ?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z ; MD5_L::MD5Transform
0014d eb ca jmp SHORT $LN2@MD5Update
$LN3@MD5Update:
; 56 :
; 57 : index = 0;
0014f c7 45 04 00 00
00 00 mov DWORD PTR index$[rbp], 0
; 58 : }
00156 eb 07 jmp SHORT $LN7@MD5Update
$LN6@MD5Update:
; 59 : else
; 60 : i = 0;
00158 c7 45 00 00 00
00 00 mov DWORD PTR i$[rbp], 0
$LN7@MD5Update:
; 61 :
; 62 : /* Buffer remaining input */
; 63 : MD5_memcpy
0015f 8b 45 00 mov eax, DWORD PTR i$[rbp]
00162 8b 4d 78 mov ecx, DWORD PTR inputLen$[rbp]
00165 2b c8 sub ecx, eax
00167 8b c1 mov eax, ecx
00169 8b 4d 00 mov ecx, DWORD PTR i$[rbp]
0016c 48 8b 55 70 mov rdx, QWORD PTR input$[rbp]
00170 48 03 d1 add rdx, rcx
00173 48 8b ca mov rcx, rdx
00176 8b 55 04 mov edx, DWORD PTR index$[rbp]
00179 4c 8b 45 68 mov r8, QWORD PTR context$[rbp]
0017d 49 8d 54 10 18 lea rdx, QWORD PTR [r8+rdx+24]
00182 44 8b c8 mov r9d, eax
00185 4c 8b c1 mov r8, rcx
00188 48 8b 4d 60 mov rcx, QWORD PTR this$[rbp]
0018c e8 00 00 00 00 call ?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z ; MD5_L::MD5_memcpy
; 64 : ((POINTER)&context->buffer[index], (POINTER)&input[i],
; 65 : inputLen-i);
; 66 : }
00191 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00195 5d pop rbp
00196 c3 ret 0
?MD5Update@MD5_L@@QEAAXPEAU_MD5_CTX@1@PEAEI@Z ENDP ; MD5_L::MD5Update
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z
_TEXT SEGMENT
this$ = 80
context$ = 88
?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z PROC ; MD5_L::MD5Init, COMDAT
; 14 : {
$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
; 15 : context->count[0] = context->count[1] = 0;
00012 b8 04 00 00 00 mov eax, 4
00017 48 6b c0 01 imul rax, rax, 1
0001b 48 8b 4d 58 mov rcx, QWORD PTR context$[rbp]
0001f c7 44 01 10 00
00 00 00 mov DWORD PTR [rcx+rax+16], 0
00027 b8 04 00 00 00 mov eax, 4
0002c 48 6b c0 00 imul rax, rax, 0
00030 48 8b 4d 58 mov rcx, QWORD PTR context$[rbp]
00034 c7 44 01 10 00
00 00 00 mov DWORD PTR [rcx+rax+16], 0
; 16 : /* Load magic initialization constants.
; 17 : */
; 18 : context->state[0] = 0x67452301;
0003c b8 04 00 00 00 mov eax, 4
00041 48 6b c0 00 imul rax, rax, 0
00045 48 8b 4d 58 mov rcx, QWORD PTR context$[rbp]
00049 c7 04 01 01 23
45 67 mov DWORD PTR [rcx+rax], 1732584193 ; 67452301H
; 19 : context->state[1] = 0xefcdab89;
00050 b8 04 00 00 00 mov eax, 4
00055 48 6b c0 01 imul rax, rax, 1
00059 48 8b 4d 58 mov rcx, QWORD PTR context$[rbp]
0005d c7 04 01 89 ab
cd ef mov DWORD PTR [rcx+rax], -271733879 ; efcdab89H
; 20 : context->state[2] = 0x98badcfe;
00064 b8 04 00 00 00 mov eax, 4
00069 48 6b c0 02 imul rax, rax, 2
0006d 48 8b 4d 58 mov rcx, QWORD PTR context$[rbp]
00071 c7 04 01 fe dc
ba 98 mov DWORD PTR [rcx+rax], -1732584194 ; 98badcfeH
; 21 : context->state[3] = 0x10325476;
00078 b8 04 00 00 00 mov eax, 4
0007d 48 6b c0 03 imul rax, rax, 3
00081 48 8b 4d 58 mov rcx, QWORD PTR context$[rbp]
00085 c7 04 01 76 54
32 10 mov DWORD PTR [rcx+rax], 271733878 ; 10325476H
; 22 : }
0008c 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00090 5d pop rbp
00091 c3 ret 0
?MD5Init@MD5_L@@QEAAXPEAU_MD5_CTX@1@@Z ENDP ; MD5_L::MD5Init
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5_memset@MD5_L@@QEAAXPEAEHI@Z
_TEXT SEGMENT
i$ = 0
this$ = 96
output$ = 104
value$ = 112
len$ = 120
?MD5_memset@MD5_L@@QEAAXPEAEHI@Z PROC ; MD5_L::MD5_memset, COMDAT
; 248 : {
$LN6:
00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d
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 83 ec 50 sub rsp, 80 ; 00000050H
00019 48 8b ec mov rbp, rsp
; 249 : unsigned int i;
; 250 :
; 251 : for (i = 0; i < len; i++)
0001c c7 45 00 00 00
00 00 mov DWORD PTR i$[rbp], 0
00023 eb 08 jmp SHORT $LN4@MD5_memset
$LN2@MD5_memset:
00025 8b 45 00 mov eax, DWORD PTR i$[rbp]
00028 ff c0 inc eax
0002a 89 45 00 mov DWORD PTR i$[rbp], eax
$LN4@MD5_memset:
0002d 8b 45 78 mov eax, DWORD PTR len$[rbp]
00030 39 45 00 cmp DWORD PTR i$[rbp], eax
00033 73 10 jae SHORT $LN3@MD5_memset
; 252 : ((char *)output)[i] = (char)value;
00035 8b 45 00 mov eax, DWORD PTR i$[rbp]
00038 48 8b 4d 68 mov rcx, QWORD PTR output$[rbp]
0003c 0f b6 55 70 movzx edx, BYTE PTR value$[rbp]
00040 88 14 01 mov BYTE PTR [rcx+rax], dl
00043 eb e0 jmp SHORT $LN2@MD5_memset
$LN3@MD5_memset:
; 253 : }
00045 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00049 5d pop rbp
0004a c3 ret 0
?MD5_memset@MD5_L@@QEAAXPEAEHI@Z ENDP ; MD5_L::MD5_memset
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z
_TEXT SEGMENT
i$ = 0
this$ = 96
output$ = 104
input$ = 112
len$ = 120
?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z PROC ; MD5_L::MD5_memcpy, COMDAT
; 234 : {
$LN6:
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 48 83 ec 50 sub rsp, 80 ; 00000050H
00019 48 8b ec mov rbp, rsp
; 235 : unsigned int i;
; 236 :
; 237 : for (i = 0; i < len; i++)
0001c c7 45 00 00 00
00 00 mov DWORD PTR i$[rbp], 0
00023 eb 08 jmp SHORT $LN4@MD5_memcpy
$LN2@MD5_memcpy:
00025 8b 45 00 mov eax, DWORD PTR i$[rbp]
00028 ff c0 inc eax
0002a 89 45 00 mov DWORD PTR i$[rbp], eax
$LN4@MD5_memcpy:
0002d 8b 45 78 mov eax, DWORD PTR len$[rbp]
00030 39 45 00 cmp DWORD PTR i$[rbp], eax
00033 73 18 jae SHORT $LN3@MD5_memcpy
; 238 : output[i] = input[i];
00035 8b 45 00 mov eax, DWORD PTR i$[rbp]
00038 8b 4d 00 mov ecx, DWORD PTR i$[rbp]
0003b 48 8b 55 68 mov rdx, QWORD PTR output$[rbp]
0003f 4c 8b 45 70 mov r8, QWORD PTR input$[rbp]
00043 41 0f b6 04 00 movzx eax, BYTE PTR [r8+rax]
00048 88 04 0a mov BYTE PTR [rdx+rcx], al
0004b eb d8 jmp SHORT $LN2@MD5_memcpy
$LN3@MD5_memcpy:
; 239 : }
0004d 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00051 5d pop rbp
00052 c3 ret 0
?MD5_memcpy@MD5_L@@QEAAXPEAE0I@Z ENDP ; MD5_L::MD5_memcpy
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?Decode@MD5_L@@QEAAXPEAKPEAEI@Z
_TEXT SEGMENT
i$ = 0
j$ = 4
this$ = 96
output$ = 104
input$ = 112
len$ = 120
?Decode@MD5_L@@QEAAXPEAKPEAEI@Z PROC ; MD5_L::Decode, COMDAT
; 219 : {
$LN6:
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 48 83 ec 50 sub rsp, 80 ; 00000050H
00019 48 8b ec mov rbp, rsp
; 220 : unsigned int i, j;
; 221 :
; 222 : for (i = 0, j = 0; j < len; i++, j += 4)
0001c c7 45 00 00 00
00 00 mov DWORD PTR i$[rbp], 0
00023 c7 45 04 00 00
00 00 mov DWORD PTR j$[rbp], 0
0002a eb 11 jmp SHORT $LN4@Decode
$LN2@Decode:
0002c 8b 45 00 mov eax, DWORD PTR i$[rbp]
0002f ff c0 inc eax
00031 89 45 00 mov DWORD PTR i$[rbp], eax
00034 8b 45 04 mov eax, DWORD PTR j$[rbp]
00037 83 c0 04 add eax, 4
0003a 89 45 04 mov DWORD PTR j$[rbp], eax
$LN4@Decode:
0003d 8b 45 78 mov eax, DWORD PTR len$[rbp]
00040 39 45 04 cmp DWORD PTR j$[rbp], eax
00043 73 55 jae SHORT $LN3@Decode
; 223 : output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
00045 8b 45 04 mov eax, DWORD PTR j$[rbp]
00048 48 8b 4d 70 mov rcx, QWORD PTR input$[rbp]
0004c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax]
00050 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
00053 ff c1 inc ecx
00055 8b c9 mov ecx, ecx
00057 48 8b 55 70 mov rdx, QWORD PTR input$[rbp]
0005b 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
0005f c1 e1 08 shl ecx, 8
00062 0b c1 or eax, ecx
00064 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
00067 83 c1 02 add ecx, 2
0006a 8b c9 mov ecx, ecx
0006c 48 8b 55 70 mov rdx, QWORD PTR input$[rbp]
00070 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
00074 c1 e1 10 shl ecx, 16
00077 0b c1 or eax, ecx
00079 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
0007c 83 c1 03 add ecx, 3
0007f 8b c9 mov ecx, ecx
00081 48 8b 55 70 mov rdx, QWORD PTR input$[rbp]
00085 0f b6 0c 0a movzx ecx, BYTE PTR [rdx+rcx]
00089 c1 e1 18 shl ecx, 24
0008c 0b c1 or eax, ecx
0008e 8b 4d 00 mov ecx, DWORD PTR i$[rbp]
00091 48 8b 55 68 mov rdx, QWORD PTR output$[rbp]
00095 89 04 8a mov DWORD PTR [rdx+rcx*4], eax
00098 eb 92 jmp SHORT $LN2@Decode
$LN3@Decode:
; 224 : (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
; 225 : }
0009a 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
0009e 5d pop rbp
0009f c3 ret 0
?Decode@MD5_L@@QEAAXPEAKPEAEI@Z ENDP ; MD5_L::Decode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?Encode@MD5_L@@QEAAXPEAEPEAKI@Z
_TEXT SEGMENT
i$ = 0
j$ = 4
this$ = 96
output$ = 104
input$ = 112
len$ = 120
?Encode@MD5_L@@QEAAXPEAEPEAKI@Z PROC ; MD5_L::Encode, COMDAT
; 200 : {
$LN6:
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 48 83 ec 50 sub rsp, 80 ; 00000050H
00019 48 8b ec mov rbp, rsp
; 201 : unsigned int i, j;
; 202 :
; 203 : for (i = 0, j = 0; j < len; i++, j += 4) {
0001c c7 45 00 00 00
00 00 mov DWORD PTR i$[rbp], 0
00023 c7 45 04 00 00
00 00 mov DWORD PTR j$[rbp], 0
0002a eb 11 jmp SHORT $LN4@Encode
$LN2@Encode:
0002c 8b 45 00 mov eax, DWORD PTR i$[rbp]
0002f ff c0 inc eax
00031 89 45 00 mov DWORD PTR i$[rbp], eax
00034 8b 45 04 mov eax, DWORD PTR j$[rbp]
00037 83 c0 04 add eax, 4
0003a 89 45 04 mov DWORD PTR j$[rbp], eax
$LN4@Encode:
0003d 8b 45 78 mov eax, DWORD PTR len$[rbp]
00040 39 45 04 cmp DWORD PTR j$[rbp], eax
00043 0f 83 80 00 00
00 jae $LN3@Encode
; 204 : output[j] = (unsigned char)(input[i] & 0xff);
00049 8b 45 00 mov eax, DWORD PTR i$[rbp]
0004c 48 8b 4d 70 mov rcx, QWORD PTR input$[rbp]
00050 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
00053 25 ff 00 00 00 and eax, 255 ; 000000ffH
00058 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
0005b 48 8b 55 68 mov rdx, QWORD PTR output$[rbp]
0005f 88 04 0a mov BYTE PTR [rdx+rcx], al
; 205 : output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
00062 8b 45 00 mov eax, DWORD PTR i$[rbp]
00065 48 8b 4d 70 mov rcx, QWORD PTR input$[rbp]
00069 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
0006c c1 e8 08 shr eax, 8
0006f 25 ff 00 00 00 and eax, 255 ; 000000ffH
00074 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
00077 ff c1 inc ecx
00079 8b c9 mov ecx, ecx
0007b 48 8b 55 68 mov rdx, QWORD PTR output$[rbp]
0007f 88 04 0a mov BYTE PTR [rdx+rcx], al
; 206 : output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
00082 8b 45 00 mov eax, DWORD PTR i$[rbp]
00085 48 8b 4d 70 mov rcx, QWORD PTR input$[rbp]
00089 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
0008c c1 e8 10 shr eax, 16
0008f 25 ff 00 00 00 and eax, 255 ; 000000ffH
00094 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
00097 83 c1 02 add ecx, 2
0009a 8b c9 mov ecx, ecx
0009c 48 8b 55 68 mov rdx, QWORD PTR output$[rbp]
000a0 88 04 0a mov BYTE PTR [rdx+rcx], al
; 207 : output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
000a3 8b 45 00 mov eax, DWORD PTR i$[rbp]
000a6 48 8b 4d 70 mov rcx, QWORD PTR input$[rbp]
000aa 8b 04 81 mov eax, DWORD PTR [rcx+rax*4]
000ad c1 e8 18 shr eax, 24
000b0 25 ff 00 00 00 and eax, 255 ; 000000ffH
000b5 8b 4d 04 mov ecx, DWORD PTR j$[rbp]
000b8 83 c1 03 add ecx, 3
000bb 8b c9 mov ecx, ecx
000bd 48 8b 55 68 mov rdx, QWORD PTR output$[rbp]
000c1 88 04 0a mov BYTE PTR [rdx+rcx], al
; 208 : }
000c4 e9 63 ff ff ff jmp $LN2@Encode
$LN3@Encode:
; 209 : }
000c9 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
000cd 5d pop rbp
000ce c3 ret 0
?Encode@MD5_L@@QEAAXPEAEPEAKI@Z ENDP ; MD5_L::Encode
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp
; COMDAT ?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z
_TEXT SEGMENT
a$ = 0
b$ = 4
c$ = 8
d$ = 12
x$ = 16
__$ArrayPad$ = 144
this$ = 176
state$ = 184
block$ = 192
?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z PROC ; MD5_L::MD5Transform, COMDAT
; 105 : {
$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 81 ec c0 00
00 00 sub rsp, 192 ; 000000c0H
00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
0001c 48 8b 05 00 00
00 00 mov rax, QWORD PTR __security_cookie
00023 48 33 c5 xor rax, rbp
00026 48 89 85 90 00
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
; 106 : UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
0002d b8 04 00 00 00 mov eax, 4
00032 48 6b c0 00 imul rax, rax, 0
00036 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
0003d 8b 04 01 mov eax, DWORD PTR [rcx+rax]
00040 89 45 00 mov DWORD PTR a$[rbp], eax
00043 b8 04 00 00 00 mov eax, 4
00048 48 6b c0 01 imul rax, rax, 1
0004c 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
00053 8b 04 01 mov eax, DWORD PTR [rcx+rax]
00056 89 45 04 mov DWORD PTR b$[rbp], eax
00059 b8 04 00 00 00 mov eax, 4
0005e 48 6b c0 02 imul rax, rax, 2
00062 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
00069 8b 04 01 mov eax, DWORD PTR [rcx+rax]
0006c 89 45 08 mov DWORD PTR c$[rbp], eax
0006f b8 04 00 00 00 mov eax, 4
00074 48 6b c0 03 imul rax, rax, 3
00078 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
0007f 8b 04 01 mov eax, DWORD PTR [rcx+rax]
00082 89 45 0c mov DWORD PTR d$[rbp], eax
; 107 :
; 108 : Decode (x, block, 64);
00085 41 b9 40 00 00
00 mov r9d, 64 ; 00000040H
0008b 4c 8b 85 c0 00
00 00 mov r8, QWORD PTR block$[rbp]
00092 48 8d 55 10 lea rdx, QWORD PTR x$[rbp]
00096 48 8b 8d b0 00
00 00 mov rcx, QWORD PTR this$[rbp]
0009d e8 00 00 00 00 call ?Decode@MD5_L@@QEAAXPEAKPEAEI@Z ; MD5_L::Decode
; 109 :
; 110 : /* Round 1 */
; 111 : FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
000a2 8b 45 08 mov eax, DWORD PTR c$[rbp]
000a5 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
000a8 23 c8 and ecx, eax
000aa 8b c1 mov eax, ecx
000ac 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
000af f7 d1 not ecx
000b1 23 4d 0c and ecx, DWORD PTR d$[rbp]
000b4 0b c1 or eax, ecx
000b6 b9 04 00 00 00 mov ecx, 4
000bb 48 6b c9 00 imul rcx, rcx, 0
000bf 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
000c3 b9 78 a4 6a d7 mov ecx, -680876936 ; ffffffffd76aa478H
000c8 8b 55 00 mov edx, DWORD PTR a$[rbp]
000cb 48 03 ca add rcx, rdx
000ce 03 c1 add eax, ecx
000d0 89 45 00 mov DWORD PTR a$[rbp], eax
000d3 8b 45 00 mov eax, DWORD PTR a$[rbp]
000d6 c1 e0 07 shl eax, 7
000d9 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
000dc c1 e9 19 shr ecx, 25
000df 0b c1 or eax, ecx
000e1 89 45 00 mov DWORD PTR a$[rbp], eax
000e4 8b 45 04 mov eax, DWORD PTR b$[rbp]
000e7 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
000ea 03 c8 add ecx, eax
000ec 8b c1 mov eax, ecx
000ee 89 45 00 mov DWORD PTR a$[rbp], eax
; 112 : FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
000f1 8b 45 04 mov eax, DWORD PTR b$[rbp]
000f4 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
000f7 23 c8 and ecx, eax
000f9 8b c1 mov eax, ecx
000fb 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
000fe f7 d1 not ecx
00100 23 4d 08 and ecx, DWORD PTR c$[rbp]
00103 0b c1 or eax, ecx
00105 b9 04 00 00 00 mov ecx, 4
0010a 48 6b c9 01 imul rcx, rcx, 1
0010e 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00112 b9 56 b7 c7 e8 mov ecx, -389564586 ; ffffffffe8c7b756H
00117 8b 55 0c mov edx, DWORD PTR d$[rbp]
0011a 48 03 ca add rcx, rdx
0011d 03 c1 add eax, ecx
0011f 89 45 0c mov DWORD PTR d$[rbp], eax
00122 8b 45 0c mov eax, DWORD PTR d$[rbp]
00125 c1 e0 0c shl eax, 12
00128 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0012b c1 e9 14 shr ecx, 20
0012e 0b c1 or eax, ecx
00130 89 45 0c mov DWORD PTR d$[rbp], eax
00133 8b 45 00 mov eax, DWORD PTR a$[rbp]
00136 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00139 03 c8 add ecx, eax
0013b 8b c1 mov eax, ecx
0013d 89 45 0c mov DWORD PTR d$[rbp], eax
; 113 : FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
00140 8b 45 00 mov eax, DWORD PTR a$[rbp]
00143 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00146 23 c8 and ecx, eax
00148 8b c1 mov eax, ecx
0014a 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0014d f7 d1 not ecx
0014f 23 4d 04 and ecx, DWORD PTR b$[rbp]
00152 0b c1 or eax, ecx
00154 b9 04 00 00 00 mov ecx, 4
00159 48 6b c9 02 imul rcx, rcx, 2
0015d 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00161 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00164 8d 84 01 db 70
20 24 lea eax, DWORD PTR [rcx+rax+606105819]
0016b 89 45 08 mov DWORD PTR c$[rbp], eax
0016e 8b 45 08 mov eax, DWORD PTR c$[rbp]
00171 c1 e0 11 shl eax, 17
00174 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00177 c1 e9 0f shr ecx, 15
0017a 0b c1 or eax, ecx
0017c 89 45 08 mov DWORD PTR c$[rbp], eax
0017f 8b 45 0c mov eax, DWORD PTR d$[rbp]
00182 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00185 03 c8 add ecx, eax
00187 8b c1 mov eax, ecx
00189 89 45 08 mov DWORD PTR c$[rbp], eax
; 114 : FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
0018c 8b 45 0c mov eax, DWORD PTR d$[rbp]
0018f 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00192 23 c8 and ecx, eax
00194 8b c1 mov eax, ecx
00196 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00199 f7 d1 not ecx
0019b 23 4d 00 and ecx, DWORD PTR a$[rbp]
0019e 0b c1 or eax, ecx
001a0 b9 04 00 00 00 mov ecx, 4
001a5 48 6b c9 03 imul rcx, rcx, 3
001a9 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
001ad b9 ee ce bd c1 mov ecx, -1044525330 ; ffffffffc1bdceeeH
001b2 8b 55 04 mov edx, DWORD PTR b$[rbp]
001b5 48 03 ca add rcx, rdx
001b8 03 c1 add eax, ecx
001ba 89 45 04 mov DWORD PTR b$[rbp], eax
001bd 8b 45 04 mov eax, DWORD PTR b$[rbp]
001c0 c1 e0 16 shl eax, 22
001c3 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
001c6 c1 e9 0a shr ecx, 10
001c9 0b c1 or eax, ecx
001cb 89 45 04 mov DWORD PTR b$[rbp], eax
001ce 8b 45 08 mov eax, DWORD PTR c$[rbp]
001d1 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
001d4 03 c8 add ecx, eax
001d6 8b c1 mov eax, ecx
001d8 89 45 04 mov DWORD PTR b$[rbp], eax
; 115 : FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
001db 8b 45 08 mov eax, DWORD PTR c$[rbp]
001de 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
001e1 23 c8 and ecx, eax
001e3 8b c1 mov eax, ecx
001e5 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
001e8 f7 d1 not ecx
001ea 23 4d 0c and ecx, DWORD PTR d$[rbp]
001ed 0b c1 or eax, ecx
001ef b9 04 00 00 00 mov ecx, 4
001f4 48 6b c9 04 imul rcx, rcx, 4
001f8 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
001fc b9 af 0f 7c f5 mov ecx, -176418897 ; fffffffff57c0fafH
00201 8b 55 00 mov edx, DWORD PTR a$[rbp]
00204 48 03 ca add rcx, rdx
00207 03 c1 add eax, ecx
00209 89 45 00 mov DWORD PTR a$[rbp], eax
0020c 8b 45 00 mov eax, DWORD PTR a$[rbp]
0020f c1 e0 07 shl eax, 7
00212 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00215 c1 e9 19 shr ecx, 25
00218 0b c1 or eax, ecx
0021a 89 45 00 mov DWORD PTR a$[rbp], eax
0021d 8b 45 04 mov eax, DWORD PTR b$[rbp]
00220 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00223 03 c8 add ecx, eax
00225 8b c1 mov eax, ecx
00227 89 45 00 mov DWORD PTR a$[rbp], eax
; 116 : FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
0022a 8b 45 04 mov eax, DWORD PTR b$[rbp]
0022d 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00230 23 c8 and ecx, eax
00232 8b c1 mov eax, ecx
00234 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00237 f7 d1 not ecx
00239 23 4d 08 and ecx, DWORD PTR c$[rbp]
0023c 0b c1 or eax, ecx
0023e b9 04 00 00 00 mov ecx, 4
00243 48 6b c9 05 imul rcx, rcx, 5
00247 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0024b 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0024e 8d 84 01 2a c6
87 47 lea eax, DWORD PTR [rcx+rax+1200080426]
00255 89 45 0c mov DWORD PTR d$[rbp], eax
00258 8b 45 0c mov eax, DWORD PTR d$[rbp]
0025b c1 e0 0c shl eax, 12
0025e 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00261 c1 e9 14 shr ecx, 20
00264 0b c1 or eax, ecx
00266 89 45 0c mov DWORD PTR d$[rbp], eax
00269 8b 45 00 mov eax, DWORD PTR a$[rbp]
0026c 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0026f 03 c8 add ecx, eax
00271 8b c1 mov eax, ecx
00273 89 45 0c mov DWORD PTR d$[rbp], eax
; 117 : FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
00276 8b 45 00 mov eax, DWORD PTR a$[rbp]
00279 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0027c 23 c8 and ecx, eax
0027e 8b c1 mov eax, ecx
00280 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00283 f7 d1 not ecx
00285 23 4d 04 and ecx, DWORD PTR b$[rbp]
00288 0b c1 or eax, ecx
0028a b9 04 00 00 00 mov ecx, 4
0028f 48 6b c9 06 imul rcx, rcx, 6
00293 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00297 b9 13 46 30 a8 mov ecx, -1473231341 ; ffffffffa8304613H
0029c 8b 55 08 mov edx, DWORD PTR c$[rbp]
0029f 48 03 ca add rcx, rdx
002a2 03 c1 add eax, ecx
002a4 89 45 08 mov DWORD PTR c$[rbp], eax
002a7 8b 45 08 mov eax, DWORD PTR c$[rbp]
002aa c1 e0 11 shl eax, 17
002ad 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
002b0 c1 e9 0f shr ecx, 15
002b3 0b c1 or eax, ecx
002b5 89 45 08 mov DWORD PTR c$[rbp], eax
002b8 8b 45 0c mov eax, DWORD PTR d$[rbp]
002bb 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
002be 03 c8 add ecx, eax
002c0 8b c1 mov eax, ecx
002c2 89 45 08 mov DWORD PTR c$[rbp], eax
; 118 : FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
002c5 8b 45 0c mov eax, DWORD PTR d$[rbp]
002c8 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
002cb 23 c8 and ecx, eax
002cd 8b c1 mov eax, ecx
002cf 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
002d2 f7 d1 not ecx
002d4 23 4d 00 and ecx, DWORD PTR a$[rbp]
002d7 0b c1 or eax, ecx
002d9 b9 04 00 00 00 mov ecx, 4
002de 48 6b c9 07 imul rcx, rcx, 7
002e2 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
002e6 b9 01 95 46 fd mov ecx, -45705983 ; fffffffffd469501H
002eb 8b 55 04 mov edx, DWORD PTR b$[rbp]
002ee 48 03 ca add rcx, rdx
002f1 03 c1 add eax, ecx
002f3 89 45 04 mov DWORD PTR b$[rbp], eax
002f6 8b 45 04 mov eax, DWORD PTR b$[rbp]
002f9 c1 e0 16 shl eax, 22
002fc 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
002ff c1 e9 0a shr ecx, 10
00302 0b c1 or eax, ecx
00304 89 45 04 mov DWORD PTR b$[rbp], eax
00307 8b 45 08 mov eax, DWORD PTR c$[rbp]
0030a 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0030d 03 c8 add ecx, eax
0030f 8b c1 mov eax, ecx
00311 89 45 04 mov DWORD PTR b$[rbp], eax
; 119 : FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
00314 8b 45 08 mov eax, DWORD PTR c$[rbp]
00317 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0031a 23 c8 and ecx, eax
0031c 8b c1 mov eax, ecx
0031e 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00321 f7 d1 not ecx
00323 23 4d 0c and ecx, DWORD PTR d$[rbp]
00326 0b c1 or eax, ecx
00328 b9 04 00 00 00 mov ecx, 4
0032d 48 6b c9 08 imul rcx, rcx, 8
00331 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00335 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00338 8d 84 01 d8 98
80 69 lea eax, DWORD PTR [rcx+rax+1770035416]
0033f 89 45 00 mov DWORD PTR a$[rbp], eax
00342 8b 45 00 mov eax, DWORD PTR a$[rbp]
00345 c1 e0 07 shl eax, 7
00348 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0034b c1 e9 19 shr ecx, 25
0034e 0b c1 or eax, ecx
00350 89 45 00 mov DWORD PTR a$[rbp], eax
00353 8b 45 04 mov eax, DWORD PTR b$[rbp]
00356 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00359 03 c8 add ecx, eax
0035b 8b c1 mov eax, ecx
0035d 89 45 00 mov DWORD PTR a$[rbp], eax
; 120 : FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
00360 8b 45 04 mov eax, DWORD PTR b$[rbp]
00363 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00366 23 c8 and ecx, eax
00368 8b c1 mov eax, ecx
0036a 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0036d f7 d1 not ecx
0036f 23 4d 08 and ecx, DWORD PTR c$[rbp]
00372 0b c1 or eax, ecx
00374 b9 04 00 00 00 mov ecx, 4
00379 48 6b c9 09 imul rcx, rcx, 9
0037d 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00381 b9 af f7 44 8b mov ecx, -1958414417 ; ffffffff8b44f7afH
00386 8b 55 0c mov edx, DWORD PTR d$[rbp]
00389 48 03 ca add rcx, rdx
0038c 03 c1 add eax, ecx
0038e 89 45 0c mov DWORD PTR d$[rbp], eax
00391 8b 45 0c mov eax, DWORD PTR d$[rbp]
00394 c1 e0 0c shl eax, 12
00397 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0039a c1 e9 14 shr ecx, 20
0039d 0b c1 or eax, ecx
0039f 89 45 0c mov DWORD PTR d$[rbp], eax
003a2 8b 45 00 mov eax, DWORD PTR a$[rbp]
003a5 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
003a8 03 c8 add ecx, eax
003aa 8b c1 mov eax, ecx
003ac 89 45 0c mov DWORD PTR d$[rbp], eax
; 121 : FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
003af 8b 45 00 mov eax, DWORD PTR a$[rbp]
003b2 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
003b5 23 c8 and ecx, eax
003b7 8b c1 mov eax, ecx
003b9 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
003bc f7 d1 not ecx
003be 23 4d 04 and ecx, DWORD PTR b$[rbp]
003c1 0b c1 or eax, ecx
003c3 b9 04 00 00 00 mov ecx, 4
003c8 48 6b c9 0a imul rcx, rcx, 10
003cc 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
003d0 b9 b1 5b ff ff mov ecx, -42063 ; ffffffffffff5bb1H
003d5 8b 55 08 mov edx, DWORD PTR c$[rbp]
003d8 48 03 ca add rcx, rdx
003db 03 c1 add eax, ecx
003dd 89 45 08 mov DWORD PTR c$[rbp], eax
003e0 8b 45 08 mov eax, DWORD PTR c$[rbp]
003e3 c1 e0 11 shl eax, 17
003e6 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
003e9 c1 e9 0f shr ecx, 15
003ec 0b c1 or eax, ecx
003ee 89 45 08 mov DWORD PTR c$[rbp], eax
003f1 8b 45 0c mov eax, DWORD PTR d$[rbp]
003f4 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
003f7 03 c8 add ecx, eax
003f9 8b c1 mov eax, ecx
003fb 89 45 08 mov DWORD PTR c$[rbp], eax
; 122 : FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
003fe 8b 45 0c mov eax, DWORD PTR d$[rbp]
00401 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00404 23 c8 and ecx, eax
00406 8b c1 mov eax, ecx
00408 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0040b f7 d1 not ecx
0040d 23 4d 00 and ecx, DWORD PTR a$[rbp]
00410 0b c1 or eax, ecx
00412 b9 04 00 00 00 mov ecx, 4
00417 48 6b c9 0b imul rcx, rcx, 11
0041b 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0041f b9 be d7 5c 89 mov ecx, -1990404162 ; ffffffff895cd7beH
00424 8b 55 04 mov edx, DWORD PTR b$[rbp]
00427 48 03 ca add rcx, rdx
0042a 03 c1 add eax, ecx
0042c 89 45 04 mov DWORD PTR b$[rbp], eax
0042f 8b 45 04 mov eax, DWORD PTR b$[rbp]
00432 c1 e0 16 shl eax, 22
00435 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00438 c1 e9 0a shr ecx, 10
0043b 0b c1 or eax, ecx
0043d 89 45 04 mov DWORD PTR b$[rbp], eax
00440 8b 45 08 mov eax, DWORD PTR c$[rbp]
00443 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00446 03 c8 add ecx, eax
00448 8b c1 mov eax, ecx
0044a 89 45 04 mov DWORD PTR b$[rbp], eax
; 123 : FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
0044d 8b 45 08 mov eax, DWORD PTR c$[rbp]
00450 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00453 23 c8 and ecx, eax
00455 8b c1 mov eax, ecx
00457 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0045a f7 d1 not ecx
0045c 23 4d 0c and ecx, DWORD PTR d$[rbp]
0045f 0b c1 or eax, ecx
00461 b9 04 00 00 00 mov ecx, 4
00466 48 6b c9 0c imul rcx, rcx, 12
0046a 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0046e 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00471 8d 84 01 22 11
90 6b lea eax, DWORD PTR [rcx+rax+1804603682]
00478 89 45 00 mov DWORD PTR a$[rbp], eax
0047b 8b 45 00 mov eax, DWORD PTR a$[rbp]
0047e c1 e0 07 shl eax, 7
00481 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00484 c1 e9 19 shr ecx, 25
00487 0b c1 or eax, ecx
00489 89 45 00 mov DWORD PTR a$[rbp], eax
0048c 8b 45 04 mov eax, DWORD PTR b$[rbp]
0048f 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00492 03 c8 add ecx, eax
00494 8b c1 mov eax, ecx
00496 89 45 00 mov DWORD PTR a$[rbp], eax
; 124 : FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
00499 8b 45 04 mov eax, DWORD PTR b$[rbp]
0049c 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0049f 23 c8 and ecx, eax
004a1 8b c1 mov eax, ecx
004a3 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
004a6 f7 d1 not ecx
004a8 23 4d 08 and ecx, DWORD PTR c$[rbp]
004ab 0b c1 or eax, ecx
004ad b9 04 00 00 00 mov ecx, 4
004b2 48 6b c9 0d imul rcx, rcx, 13
004b6 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
004ba b9 93 71 98 fd mov ecx, -40341101 ; fffffffffd987193H
004bf 8b 55 0c mov edx, DWORD PTR d$[rbp]
004c2 48 03 ca add rcx, rdx
004c5 03 c1 add eax, ecx
004c7 89 45 0c mov DWORD PTR d$[rbp], eax
004ca 8b 45 0c mov eax, DWORD PTR d$[rbp]
004cd c1 e0 0c shl eax, 12
004d0 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
004d3 c1 e9 14 shr ecx, 20
004d6 0b c1 or eax, ecx
004d8 89 45 0c mov DWORD PTR d$[rbp], eax
004db 8b 45 00 mov eax, DWORD PTR a$[rbp]
004de 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
004e1 03 c8 add ecx, eax
004e3 8b c1 mov eax, ecx
004e5 89 45 0c mov DWORD PTR d$[rbp], eax
; 125 : FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
004e8 8b 45 00 mov eax, DWORD PTR a$[rbp]
004eb 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
004ee 23 c8 and ecx, eax
004f0 8b c1 mov eax, ecx
004f2 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
004f5 f7 d1 not ecx
004f7 23 4d 04 and ecx, DWORD PTR b$[rbp]
004fa 0b c1 or eax, ecx
004fc b9 04 00 00 00 mov ecx, 4
00501 48 6b c9 0e imul rcx, rcx, 14
00505 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00509 b9 8e 43 79 a6 mov ecx, -1502002290 ; ffffffffa679438eH
0050e 8b 55 08 mov edx, DWORD PTR c$[rbp]
00511 48 03 ca add rcx, rdx
00514 03 c1 add eax, ecx
00516 89 45 08 mov DWORD PTR c$[rbp], eax
00519 8b 45 08 mov eax, DWORD PTR c$[rbp]
0051c c1 e0 11 shl eax, 17
0051f 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00522 c1 e9 0f shr ecx, 15
00525 0b c1 or eax, ecx
00527 89 45 08 mov DWORD PTR c$[rbp], eax
0052a 8b 45 0c mov eax, DWORD PTR d$[rbp]
0052d 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00530 03 c8 add ecx, eax
00532 8b c1 mov eax, ecx
00534 89 45 08 mov DWORD PTR c$[rbp], eax
; 126 : FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
00537 8b 45 0c mov eax, DWORD PTR d$[rbp]
0053a 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0053d 23 c8 and ecx, eax
0053f 8b c1 mov eax, ecx
00541 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00544 f7 d1 not ecx
00546 23 4d 00 and ecx, DWORD PTR a$[rbp]
00549 0b c1 or eax, ecx
0054b b9 04 00 00 00 mov ecx, 4
00550 48 6b c9 0f imul rcx, rcx, 15
00554 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00558 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0055b 8d 84 01 21 08
b4 49 lea eax, DWORD PTR [rcx+rax+1236535329]
00562 89 45 04 mov DWORD PTR b$[rbp], eax
00565 8b 45 04 mov eax, DWORD PTR b$[rbp]
00568 c1 e0 16 shl eax, 22
0056b 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0056e c1 e9 0a shr ecx, 10
00571 0b c1 or eax, ecx
00573 89 45 04 mov DWORD PTR b$[rbp], eax
00576 8b 45 08 mov eax, DWORD PTR c$[rbp]
00579 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0057c 03 c8 add ecx, eax
0057e 8b c1 mov eax, ecx
00580 89 45 04 mov DWORD PTR b$[rbp], eax
; 127 :
; 128 : /* Round 2 */
; 129 : GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
00583 8b 45 0c mov eax, DWORD PTR d$[rbp]
00586 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00589 23 c8 and ecx, eax
0058b 8b c1 mov eax, ecx
0058d 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00590 f7 d1 not ecx
00592 8b 55 08 mov edx, DWORD PTR c$[rbp]
00595 23 d1 and edx, ecx
00597 8b ca mov ecx, edx
00599 0b c1 or eax, ecx
0059b b9 04 00 00 00 mov ecx, 4
005a0 48 6b c9 01 imul rcx, rcx, 1
005a4 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
005a8 b9 62 25 1e f6 mov ecx, -165796510 ; fffffffff61e2562H
005ad 8b 55 00 mov edx, DWORD PTR a$[rbp]
005b0 48 03 ca add rcx, rdx
005b3 03 c1 add eax, ecx
005b5 89 45 00 mov DWORD PTR a$[rbp], eax
005b8 8b 45 00 mov eax, DWORD PTR a$[rbp]
005bb c1 e0 05 shl eax, 5
005be 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
005c1 c1 e9 1b shr ecx, 27
005c4 0b c1 or eax, ecx
005c6 89 45 00 mov DWORD PTR a$[rbp], eax
005c9 8b 45 04 mov eax, DWORD PTR b$[rbp]
005cc 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
005cf 03 c8 add ecx, eax
005d1 8b c1 mov eax, ecx
005d3 89 45 00 mov DWORD PTR a$[rbp], eax
; 130 : GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
005d6 8b 45 08 mov eax, DWORD PTR c$[rbp]
005d9 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
005dc 23 c8 and ecx, eax
005de 8b c1 mov eax, ecx
005e0 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
005e3 f7 d1 not ecx
005e5 8b 55 04 mov edx, DWORD PTR b$[rbp]
005e8 23 d1 and edx, ecx
005ea 8b ca mov ecx, edx
005ec 0b c1 or eax, ecx
005ee b9 04 00 00 00 mov ecx, 4
005f3 48 6b c9 06 imul rcx, rcx, 6
005f7 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
005fb b9 40 b3 40 c0 mov ecx, -1069501632 ; ffffffffc040b340H
00600 8b 55 0c mov edx, DWORD PTR d$[rbp]
00603 48 03 ca add rcx, rdx
00606 03 c1 add eax, ecx
00608 89 45 0c mov DWORD PTR d$[rbp], eax
0060b 8b 45 0c mov eax, DWORD PTR d$[rbp]
0060e c1 e0 09 shl eax, 9
00611 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00614 c1 e9 17 shr ecx, 23
00617 0b c1 or eax, ecx
00619 89 45 0c mov DWORD PTR d$[rbp], eax
0061c 8b 45 00 mov eax, DWORD PTR a$[rbp]
0061f 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00622 03 c8 add ecx, eax
00624 8b c1 mov eax, ecx
00626 89 45 0c mov DWORD PTR d$[rbp], eax
; 131 : GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
00629 8b 45 04 mov eax, DWORD PTR b$[rbp]
0062c 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0062f 23 c8 and ecx, eax
00631 8b c1 mov eax, ecx
00633 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00636 f7 d1 not ecx
00638 8b 55 00 mov edx, DWORD PTR a$[rbp]
0063b 23 d1 and edx, ecx
0063d 8b ca mov ecx, edx
0063f 0b c1 or eax, ecx
00641 b9 04 00 00 00 mov ecx, 4
00646 48 6b c9 0b imul rcx, rcx, 11
0064a 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0064e 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00651 8d 84 01 51 5a
5e 26 lea eax, DWORD PTR [rcx+rax+643717713]
00658 89 45 08 mov DWORD PTR c$[rbp], eax
0065b 8b 45 08 mov eax, DWORD PTR c$[rbp]
0065e c1 e0 0e shl eax, 14
00661 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00664 c1 e9 12 shr ecx, 18
00667 0b c1 or eax, ecx
00669 89 45 08 mov DWORD PTR c$[rbp], eax
0066c 8b 45 0c mov eax, DWORD PTR d$[rbp]
0066f 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00672 03 c8 add ecx, eax
00674 8b c1 mov eax, ecx
00676 89 45 08 mov DWORD PTR c$[rbp], eax
; 132 : GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
00679 8b 45 00 mov eax, DWORD PTR a$[rbp]
0067c 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0067f 23 c8 and ecx, eax
00681 8b c1 mov eax, ecx
00683 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00686 f7 d1 not ecx
00688 8b 55 0c mov edx, DWORD PTR d$[rbp]
0068b 23 d1 and edx, ecx
0068d 8b ca mov ecx, edx
0068f 0b c1 or eax, ecx
00691 b9 04 00 00 00 mov ecx, 4
00696 48 6b c9 00 imul rcx, rcx, 0
0069a 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0069e b9 aa c7 b6 e9 mov ecx, -373897302 ; ffffffffe9b6c7aaH
006a3 8b 55 04 mov edx, DWORD PTR b$[rbp]
006a6 48 03 ca add rcx, rdx
006a9 03 c1 add eax, ecx
006ab 89 45 04 mov DWORD PTR b$[rbp], eax
006ae 8b 45 04 mov eax, DWORD PTR b$[rbp]
006b1 c1 e0 14 shl eax, 20
006b4 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
006b7 c1 e9 0c shr ecx, 12
006ba 0b c1 or eax, ecx
006bc 89 45 04 mov DWORD PTR b$[rbp], eax
006bf 8b 45 08 mov eax, DWORD PTR c$[rbp]
006c2 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
006c5 03 c8 add ecx, eax
006c7 8b c1 mov eax, ecx
006c9 89 45 04 mov DWORD PTR b$[rbp], eax
; 133 : GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
006cc 8b 45 0c mov eax, DWORD PTR d$[rbp]
006cf 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
006d2 23 c8 and ecx, eax
006d4 8b c1 mov eax, ecx
006d6 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
006d9 f7 d1 not ecx
006db 8b 55 08 mov edx, DWORD PTR c$[rbp]
006de 23 d1 and edx, ecx
006e0 8b ca mov ecx, edx
006e2 0b c1 or eax, ecx
006e4 b9 04 00 00 00 mov ecx, 4
006e9 48 6b c9 05 imul rcx, rcx, 5
006ed 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
006f1 b9 5d 10 2f d6 mov ecx, -701558691 ; ffffffffd62f105dH
006f6 8b 55 00 mov edx, DWORD PTR a$[rbp]
006f9 48 03 ca add rcx, rdx
006fc 03 c1 add eax, ecx
006fe 89 45 00 mov DWORD PTR a$[rbp], eax
00701 8b 45 00 mov eax, DWORD PTR a$[rbp]
00704 c1 e0 05 shl eax, 5
00707 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0070a c1 e9 1b shr ecx, 27
0070d 0b c1 or eax, ecx
0070f 89 45 00 mov DWORD PTR a$[rbp], eax
00712 8b 45 04 mov eax, DWORD PTR b$[rbp]
00715 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00718 03 c8 add ecx, eax
0071a 8b c1 mov eax, ecx
0071c 89 45 00 mov DWORD PTR a$[rbp], eax
; 134 : GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
0071f 8b 45 08 mov eax, DWORD PTR c$[rbp]
00722 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00725 23 c8 and ecx, eax
00727 8b c1 mov eax, ecx
00729 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0072c f7 d1 not ecx
0072e 8b 55 04 mov edx, DWORD PTR b$[rbp]
00731 23 d1 and edx, ecx
00733 8b ca mov ecx, edx
00735 0b c1 or eax, ecx
00737 b9 04 00 00 00 mov ecx, 4
0073c 48 6b c9 0a imul rcx, rcx, 10
00740 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00744 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00747 8d 84 01 53 14
44 02 lea eax, DWORD PTR [rcx+rax+38016083]
0074e 89 45 0c mov DWORD PTR d$[rbp], eax
00751 8b 45 0c mov eax, DWORD PTR d$[rbp]
00754 c1 e0 09 shl eax, 9
00757 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0075a c1 e9 17 shr ecx, 23
0075d 0b c1 or eax, ecx
0075f 89 45 0c mov DWORD PTR d$[rbp], eax
00762 8b 45 00 mov eax, DWORD PTR a$[rbp]
00765 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00768 03 c8 add ecx, eax
0076a 8b c1 mov eax, ecx
0076c 89 45 0c mov DWORD PTR d$[rbp], eax
; 135 : GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
0076f 8b 45 04 mov eax, DWORD PTR b$[rbp]
00772 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00775 23 c8 and ecx, eax
00777 8b c1 mov eax, ecx
00779 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0077c f7 d1 not ecx
0077e 8b 55 00 mov edx, DWORD PTR a$[rbp]
00781 23 d1 and edx, ecx
00783 8b ca mov ecx, edx
00785 0b c1 or eax, ecx
00787 b9 04 00 00 00 mov ecx, 4
0078c 48 6b c9 0f imul rcx, rcx, 15
00790 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00794 b9 81 e6 a1 d8 mov ecx, -660478335 ; ffffffffd8a1e681H
00799 8b 55 08 mov edx, DWORD PTR c$[rbp]
0079c 48 03 ca add rcx, rdx
0079f 03 c1 add eax, ecx
007a1 89 45 08 mov DWORD PTR c$[rbp], eax
007a4 8b 45 08 mov eax, DWORD PTR c$[rbp]
007a7 c1 e0 0e shl eax, 14
007aa 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
007ad c1 e9 12 shr ecx, 18
007b0 0b c1 or eax, ecx
007b2 89 45 08 mov DWORD PTR c$[rbp], eax
007b5 8b 45 0c mov eax, DWORD PTR d$[rbp]
007b8 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
007bb 03 c8 add ecx, eax
007bd 8b c1 mov eax, ecx
007bf 89 45 08 mov DWORD PTR c$[rbp], eax
; 136 : GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
007c2 8b 45 00 mov eax, DWORD PTR a$[rbp]
007c5 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
007c8 23 c8 and ecx, eax
007ca 8b c1 mov eax, ecx
007cc 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
007cf f7 d1 not ecx
007d1 8b 55 0c mov edx, DWORD PTR d$[rbp]
007d4 23 d1 and edx, ecx
007d6 8b ca mov ecx, edx
007d8 0b c1 or eax, ecx
007da b9 04 00 00 00 mov ecx, 4
007df 48 6b c9 04 imul rcx, rcx, 4
007e3 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
007e7 b9 c8 fb d3 e7 mov ecx, -405537848 ; ffffffffe7d3fbc8H
007ec 8b 55 04 mov edx, DWORD PTR b$[rbp]
007ef 48 03 ca add rcx, rdx
007f2 03 c1 add eax, ecx
007f4 89 45 04 mov DWORD PTR b$[rbp], eax
007f7 8b 45 04 mov eax, DWORD PTR b$[rbp]
007fa c1 e0 14 shl eax, 20
007fd 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00800 c1 e9 0c shr ecx, 12
00803 0b c1 or eax, ecx
00805 89 45 04 mov DWORD PTR b$[rbp], eax
00808 8b 45 08 mov eax, DWORD PTR c$[rbp]
0080b 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0080e 03 c8 add ecx, eax
00810 8b c1 mov eax, ecx
00812 89 45 04 mov DWORD PTR b$[rbp], eax
; 137 : GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
00815 8b 45 0c mov eax, DWORD PTR d$[rbp]
00818 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0081b 23 c8 and ecx, eax
0081d 8b c1 mov eax, ecx
0081f 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00822 f7 d1 not ecx
00824 8b 55 08 mov edx, DWORD PTR c$[rbp]
00827 23 d1 and edx, ecx
00829 8b ca mov ecx, edx
0082b 0b c1 or eax, ecx
0082d b9 04 00 00 00 mov ecx, 4
00832 48 6b c9 09 imul rcx, rcx, 9
00836 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0083a 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0083d 8d 84 01 e6 cd
e1 21 lea eax, DWORD PTR [rcx+rax+568446438]
00844 89 45 00 mov DWORD PTR a$[rbp], eax
00847 8b 45 00 mov eax, DWORD PTR a$[rbp]
0084a c1 e0 05 shl eax, 5
0084d 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00850 c1 e9 1b shr ecx, 27
00853 0b c1 or eax, ecx
00855 89 45 00 mov DWORD PTR a$[rbp], eax
00858 8b 45 04 mov eax, DWORD PTR b$[rbp]
0085b 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0085e 03 c8 add ecx, eax
00860 8b c1 mov eax, ecx
00862 89 45 00 mov DWORD PTR a$[rbp], eax
; 138 : GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
00865 8b 45 08 mov eax, DWORD PTR c$[rbp]
00868 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0086b 23 c8 and ecx, eax
0086d 8b c1 mov eax, ecx
0086f 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00872 f7 d1 not ecx
00874 8b 55 04 mov edx, DWORD PTR b$[rbp]
00877 23 d1 and edx, ecx
00879 8b ca mov ecx, edx
0087b 0b c1 or eax, ecx
0087d b9 04 00 00 00 mov ecx, 4
00882 48 6b c9 0e imul rcx, rcx, 14
00886 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0088a b9 d6 07 37 c3 mov ecx, -1019803690 ; ffffffffc33707d6H
0088f 8b 55 0c mov edx, DWORD PTR d$[rbp]
00892 48 03 ca add rcx, rdx
00895 03 c1 add eax, ecx
00897 89 45 0c mov DWORD PTR d$[rbp], eax
0089a 8b 45 0c mov eax, DWORD PTR d$[rbp]
0089d c1 e0 09 shl eax, 9
008a0 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
008a3 c1 e9 17 shr ecx, 23
008a6 0b c1 or eax, ecx
008a8 89 45 0c mov DWORD PTR d$[rbp], eax
008ab 8b 45 00 mov eax, DWORD PTR a$[rbp]
008ae 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
008b1 03 c8 add ecx, eax
008b3 8b c1 mov eax, ecx
008b5 89 45 0c mov DWORD PTR d$[rbp], eax
; 139 : GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
008b8 8b 45 04 mov eax, DWORD PTR b$[rbp]
008bb 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
008be 23 c8 and ecx, eax
008c0 8b c1 mov eax, ecx
008c2 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
008c5 f7 d1 not ecx
008c7 8b 55 00 mov edx, DWORD PTR a$[rbp]
008ca 23 d1 and edx, ecx
008cc 8b ca mov ecx, edx
008ce 0b c1 or eax, ecx
008d0 b9 04 00 00 00 mov ecx, 4
008d5 48 6b c9 03 imul rcx, rcx, 3
008d9 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
008dd b9 87 0d d5 f4 mov ecx, -187363961 ; fffffffff4d50d87H
008e2 8b 55 08 mov edx, DWORD PTR c$[rbp]
008e5 48 03 ca add rcx, rdx
008e8 03 c1 add eax, ecx
008ea 89 45 08 mov DWORD PTR c$[rbp], eax
008ed 8b 45 08 mov eax, DWORD PTR c$[rbp]
008f0 c1 e0 0e shl eax, 14
008f3 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
008f6 c1 e9 12 shr ecx, 18
008f9 0b c1 or eax, ecx
008fb 89 45 08 mov DWORD PTR c$[rbp], eax
008fe 8b 45 0c mov eax, DWORD PTR d$[rbp]
00901 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00904 03 c8 add ecx, eax
00906 8b c1 mov eax, ecx
00908 89 45 08 mov DWORD PTR c$[rbp], eax
; 140 : GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
0090b 8b 45 00 mov eax, DWORD PTR a$[rbp]
0090e 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00911 23 c8 and ecx, eax
00913 8b c1 mov eax, ecx
00915 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00918 f7 d1 not ecx
0091a 8b 55 0c mov edx, DWORD PTR d$[rbp]
0091d 23 d1 and edx, ecx
0091f 8b ca mov ecx, edx
00921 0b c1 or eax, ecx
00923 b9 04 00 00 00 mov ecx, 4
00928 48 6b c9 08 imul rcx, rcx, 8
0092c 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00930 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00933 8d 84 01 ed 14
5a 45 lea eax, DWORD PTR [rcx+rax+1163531501]
0093a 89 45 04 mov DWORD PTR b$[rbp], eax
0093d 8b 45 04 mov eax, DWORD PTR b$[rbp]
00940 c1 e0 14 shl eax, 20
00943 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00946 c1 e9 0c shr ecx, 12
00949 0b c1 or eax, ecx
0094b 89 45 04 mov DWORD PTR b$[rbp], eax
0094e 8b 45 08 mov eax, DWORD PTR c$[rbp]
00951 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00954 03 c8 add ecx, eax
00956 8b c1 mov eax, ecx
00958 89 45 04 mov DWORD PTR b$[rbp], eax
; 141 : GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
0095b 8b 45 0c mov eax, DWORD PTR d$[rbp]
0095e 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00961 23 c8 and ecx, eax
00963 8b c1 mov eax, ecx
00965 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00968 f7 d1 not ecx
0096a 8b 55 08 mov edx, DWORD PTR c$[rbp]
0096d 23 d1 and edx, ecx
0096f 8b ca mov ecx, edx
00971 0b c1 or eax, ecx
00973 b9 04 00 00 00 mov ecx, 4
00978 48 6b c9 0d imul rcx, rcx, 13
0097c 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00980 b9 05 e9 e3 a9 mov ecx, -1444681467 ; ffffffffa9e3e905H
00985 8b 55 00 mov edx, DWORD PTR a$[rbp]
00988 48 03 ca add rcx, rdx
0098b 03 c1 add eax, ecx
0098d 89 45 00 mov DWORD PTR a$[rbp], eax
00990 8b 45 00 mov eax, DWORD PTR a$[rbp]
00993 c1 e0 05 shl eax, 5
00996 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00999 c1 e9 1b shr ecx, 27
0099c 0b c1 or eax, ecx
0099e 89 45 00 mov DWORD PTR a$[rbp], eax
009a1 8b 45 04 mov eax, DWORD PTR b$[rbp]
009a4 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
009a7 03 c8 add ecx, eax
009a9 8b c1 mov eax, ecx
009ab 89 45 00 mov DWORD PTR a$[rbp], eax
; 142 : GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
009ae 8b 45 08 mov eax, DWORD PTR c$[rbp]
009b1 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
009b4 23 c8 and ecx, eax
009b6 8b c1 mov eax, ecx
009b8 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
009bb f7 d1 not ecx
009bd 8b 55 04 mov edx, DWORD PTR b$[rbp]
009c0 23 d1 and edx, ecx
009c2 8b ca mov ecx, edx
009c4 0b c1 or eax, ecx
009c6 b9 04 00 00 00 mov ecx, 4
009cb 48 6b c9 02 imul rcx, rcx, 2
009cf 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
009d3 b9 f8 a3 ef fc mov ecx, -51403784 ; fffffffffcefa3f8H
009d8 8b 55 0c mov edx, DWORD PTR d$[rbp]
009db 48 03 ca add rcx, rdx
009de 03 c1 add eax, ecx
009e0 89 45 0c mov DWORD PTR d$[rbp], eax
009e3 8b 45 0c mov eax, DWORD PTR d$[rbp]
009e6 c1 e0 09 shl eax, 9
009e9 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
009ec c1 e9 17 shr ecx, 23
009ef 0b c1 or eax, ecx
009f1 89 45 0c mov DWORD PTR d$[rbp], eax
009f4 8b 45 00 mov eax, DWORD PTR a$[rbp]
009f7 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
009fa 03 c8 add ecx, eax
009fc 8b c1 mov eax, ecx
009fe 89 45 0c mov DWORD PTR d$[rbp], eax
; 143 : GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
00a01 8b 45 04 mov eax, DWORD PTR b$[rbp]
00a04 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00a07 23 c8 and ecx, eax
00a09 8b c1 mov eax, ecx
00a0b 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00a0e f7 d1 not ecx
00a10 8b 55 00 mov edx, DWORD PTR a$[rbp]
00a13 23 d1 and edx, ecx
00a15 8b ca mov ecx, edx
00a17 0b c1 or eax, ecx
00a19 b9 04 00 00 00 mov ecx, 4
00a1e 48 6b c9 07 imul rcx, rcx, 7
00a22 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00a26 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00a29 8d 84 01 d9 02
6f 67 lea eax, DWORD PTR [rcx+rax+1735328473]
00a30 89 45 08 mov DWORD PTR c$[rbp], eax
00a33 8b 45 08 mov eax, DWORD PTR c$[rbp]
00a36 c1 e0 0e shl eax, 14
00a39 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00a3c c1 e9 12 shr ecx, 18
00a3f 0b c1 or eax, ecx
00a41 89 45 08 mov DWORD PTR c$[rbp], eax
00a44 8b 45 0c mov eax, DWORD PTR d$[rbp]
00a47 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00a4a 03 c8 add ecx, eax
00a4c 8b c1 mov eax, ecx
00a4e 89 45 08 mov DWORD PTR c$[rbp], eax
; 144 : GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
00a51 8b 45 00 mov eax, DWORD PTR a$[rbp]
00a54 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00a57 23 c8 and ecx, eax
00a59 8b c1 mov eax, ecx
00a5b 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00a5e f7 d1 not ecx
00a60 8b 55 0c mov edx, DWORD PTR d$[rbp]
00a63 23 d1 and edx, ecx
00a65 8b ca mov ecx, edx
00a67 0b c1 or eax, ecx
00a69 b9 04 00 00 00 mov ecx, 4
00a6e 48 6b c9 0c imul rcx, rcx, 12
00a72 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00a76 b9 8a 4c 2a 8d mov ecx, -1926607734 ; ffffffff8d2a4c8aH
00a7b 8b 55 04 mov edx, DWORD PTR b$[rbp]
00a7e 48 03 ca add rcx, rdx
00a81 03 c1 add eax, ecx
00a83 89 45 04 mov DWORD PTR b$[rbp], eax
00a86 8b 45 04 mov eax, DWORD PTR b$[rbp]
00a89 c1 e0 14 shl eax, 20
00a8c 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00a8f c1 e9 0c shr ecx, 12
00a92 0b c1 or eax, ecx
00a94 89 45 04 mov DWORD PTR b$[rbp], eax
00a97 8b 45 08 mov eax, DWORD PTR c$[rbp]
00a9a 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00a9d 03 c8 add ecx, eax
00a9f 8b c1 mov eax, ecx
00aa1 89 45 04 mov DWORD PTR b$[rbp], eax
; 145 :
; 146 : /* Round 3 */
; 147 : HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
00aa4 8b 45 08 mov eax, DWORD PTR c$[rbp]
00aa7 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00aaa 33 c8 xor ecx, eax
00aac 8b c1 mov eax, ecx
00aae 33 45 0c xor eax, DWORD PTR d$[rbp]
00ab1 b9 04 00 00 00 mov ecx, 4
00ab6 48 6b c9 05 imul rcx, rcx, 5
00aba 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00abe b9 42 39 fa ff mov ecx, -378558 ; fffffffffffa3942H
00ac3 8b 55 00 mov edx, DWORD PTR a$[rbp]
00ac6 48 03 ca add rcx, rdx
00ac9 03 c1 add eax, ecx
00acb 89 45 00 mov DWORD PTR a$[rbp], eax
00ace 8b 45 00 mov eax, DWORD PTR a$[rbp]
00ad1 c1 e0 04 shl eax, 4
00ad4 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00ad7 c1 e9 1c shr ecx, 28
00ada 0b c1 or eax, ecx
00adc 89 45 00 mov DWORD PTR a$[rbp], eax
00adf 8b 45 04 mov eax, DWORD PTR b$[rbp]
00ae2 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00ae5 03 c8 add ecx, eax
00ae7 8b c1 mov eax, ecx
00ae9 89 45 00 mov DWORD PTR a$[rbp], eax
; 148 : HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
00aec 8b 45 04 mov eax, DWORD PTR b$[rbp]
00aef 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00af2 33 c8 xor ecx, eax
00af4 8b c1 mov eax, ecx
00af6 33 45 08 xor eax, DWORD PTR c$[rbp]
00af9 b9 04 00 00 00 mov ecx, 4
00afe 48 6b c9 08 imul rcx, rcx, 8
00b02 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00b06 b9 81 f6 71 87 mov ecx, -2022574463 ; ffffffff8771f681H
00b0b 8b 55 0c mov edx, DWORD PTR d$[rbp]
00b0e 48 03 ca add rcx, rdx
00b11 03 c1 add eax, ecx
00b13 89 45 0c mov DWORD PTR d$[rbp], eax
00b16 8b 45 0c mov eax, DWORD PTR d$[rbp]
00b19 c1 e0 0b shl eax, 11
00b1c 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00b1f c1 e9 15 shr ecx, 21
00b22 0b c1 or eax, ecx
00b24 89 45 0c mov DWORD PTR d$[rbp], eax
00b27 8b 45 00 mov eax, DWORD PTR a$[rbp]
00b2a 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00b2d 03 c8 add ecx, eax
00b2f 8b c1 mov eax, ecx
00b31 89 45 0c mov DWORD PTR d$[rbp], eax
; 149 : HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
00b34 8b 45 00 mov eax, DWORD PTR a$[rbp]
00b37 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00b3a 33 c8 xor ecx, eax
00b3c 8b c1 mov eax, ecx
00b3e 33 45 04 xor eax, DWORD PTR b$[rbp]
00b41 b9 04 00 00 00 mov ecx, 4
00b46 48 6b c9 0b imul rcx, rcx, 11
00b4a 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00b4e 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00b51 8d 84 01 22 61
9d 6d lea eax, DWORD PTR [rcx+rax+1839030562]
00b58 89 45 08 mov DWORD PTR c$[rbp], eax
00b5b 8b 45 08 mov eax, DWORD PTR c$[rbp]
00b5e c1 e0 10 shl eax, 16
00b61 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00b64 c1 e9 10 shr ecx, 16
00b67 0b c1 or eax, ecx
00b69 89 45 08 mov DWORD PTR c$[rbp], eax
00b6c 8b 45 0c mov eax, DWORD PTR d$[rbp]
00b6f 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00b72 03 c8 add ecx, eax
00b74 8b c1 mov eax, ecx
00b76 89 45 08 mov DWORD PTR c$[rbp], eax
; 150 : HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
00b79 8b 45 0c mov eax, DWORD PTR d$[rbp]
00b7c 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00b7f 33 c8 xor ecx, eax
00b81 8b c1 mov eax, ecx
00b83 33 45 00 xor eax, DWORD PTR a$[rbp]
00b86 b9 04 00 00 00 mov ecx, 4
00b8b 48 6b c9 0e imul rcx, rcx, 14
00b8f 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00b93 b9 0c 38 e5 fd mov ecx, -35309556 ; fffffffffde5380cH
00b98 8b 55 04 mov edx, DWORD PTR b$[rbp]
00b9b 48 03 ca add rcx, rdx
00b9e 03 c1 add eax, ecx
00ba0 89 45 04 mov DWORD PTR b$[rbp], eax
00ba3 8b 45 04 mov eax, DWORD PTR b$[rbp]
00ba6 c1 e0 17 shl eax, 23
00ba9 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00bac c1 e9 09 shr ecx, 9
00baf 0b c1 or eax, ecx
00bb1 89 45 04 mov DWORD PTR b$[rbp], eax
00bb4 8b 45 08 mov eax, DWORD PTR c$[rbp]
00bb7 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00bba 03 c8 add ecx, eax
00bbc 8b c1 mov eax, ecx
00bbe 89 45 04 mov DWORD PTR b$[rbp], eax
; 151 : HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
00bc1 8b 45 08 mov eax, DWORD PTR c$[rbp]
00bc4 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00bc7 33 c8 xor ecx, eax
00bc9 8b c1 mov eax, ecx
00bcb 33 45 0c xor eax, DWORD PTR d$[rbp]
00bce b9 04 00 00 00 mov ecx, 4
00bd3 48 6b c9 01 imul rcx, rcx, 1
00bd7 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00bdb b9 44 ea be a4 mov ecx, -1530992060 ; ffffffffa4beea44H
00be0 8b 55 00 mov edx, DWORD PTR a$[rbp]
00be3 48 03 ca add rcx, rdx
00be6 03 c1 add eax, ecx
00be8 89 45 00 mov DWORD PTR a$[rbp], eax
00beb 8b 45 00 mov eax, DWORD PTR a$[rbp]
00bee c1 e0 04 shl eax, 4
00bf1 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00bf4 c1 e9 1c shr ecx, 28
00bf7 0b c1 or eax, ecx
00bf9 89 45 00 mov DWORD PTR a$[rbp], eax
00bfc 8b 45 04 mov eax, DWORD PTR b$[rbp]
00bff 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00c02 03 c8 add ecx, eax
00c04 8b c1 mov eax, ecx
00c06 89 45 00 mov DWORD PTR a$[rbp], eax
; 152 : HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
00c09 8b 45 04 mov eax, DWORD PTR b$[rbp]
00c0c 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00c0f 33 c8 xor ecx, eax
00c11 8b c1 mov eax, ecx
00c13 33 45 08 xor eax, DWORD PTR c$[rbp]
00c16 b9 04 00 00 00 mov ecx, 4
00c1b 48 6b c9 04 imul rcx, rcx, 4
00c1f 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00c23 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00c26 8d 84 01 a9 cf
de 4b lea eax, DWORD PTR [rcx+rax+1272893353]
00c2d 89 45 0c mov DWORD PTR d$[rbp], eax
00c30 8b 45 0c mov eax, DWORD PTR d$[rbp]
00c33 c1 e0 0b shl eax, 11
00c36 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00c39 c1 e9 15 shr ecx, 21
00c3c 0b c1 or eax, ecx
00c3e 89 45 0c mov DWORD PTR d$[rbp], eax
00c41 8b 45 00 mov eax, DWORD PTR a$[rbp]
00c44 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00c47 03 c8 add ecx, eax
00c49 8b c1 mov eax, ecx
00c4b 89 45 0c mov DWORD PTR d$[rbp], eax
; 153 : HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
00c4e 8b 45 00 mov eax, DWORD PTR a$[rbp]
00c51 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00c54 33 c8 xor ecx, eax
00c56 8b c1 mov eax, ecx
00c58 33 45 04 xor eax, DWORD PTR b$[rbp]
00c5b b9 04 00 00 00 mov ecx, 4
00c60 48 6b c9 07 imul rcx, rcx, 7
00c64 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00c68 b9 60 4b bb f6 mov ecx, -155497632 ; fffffffff6bb4b60H
00c6d 8b 55 08 mov edx, DWORD PTR c$[rbp]
00c70 48 03 ca add rcx, rdx
00c73 03 c1 add eax, ecx
00c75 89 45 08 mov DWORD PTR c$[rbp], eax
00c78 8b 45 08 mov eax, DWORD PTR c$[rbp]
00c7b c1 e0 10 shl eax, 16
00c7e 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00c81 c1 e9 10 shr ecx, 16
00c84 0b c1 or eax, ecx
00c86 89 45 08 mov DWORD PTR c$[rbp], eax
00c89 8b 45 0c mov eax, DWORD PTR d$[rbp]
00c8c 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00c8f 03 c8 add ecx, eax
00c91 8b c1 mov eax, ecx
00c93 89 45 08 mov DWORD PTR c$[rbp], eax
; 154 : HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
00c96 8b 45 0c mov eax, DWORD PTR d$[rbp]
00c99 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00c9c 33 c8 xor ecx, eax
00c9e 8b c1 mov eax, ecx
00ca0 33 45 00 xor eax, DWORD PTR a$[rbp]
00ca3 b9 04 00 00 00 mov ecx, 4
00ca8 48 6b c9 0a imul rcx, rcx, 10
00cac 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00cb0 b9 70 bc bf be mov ecx, -1094730640 ; ffffffffbebfbc70H
00cb5 8b 55 04 mov edx, DWORD PTR b$[rbp]
00cb8 48 03 ca add rcx, rdx
00cbb 03 c1 add eax, ecx
00cbd 89 45 04 mov DWORD PTR b$[rbp], eax
00cc0 8b 45 04 mov eax, DWORD PTR b$[rbp]
00cc3 c1 e0 17 shl eax, 23
00cc6 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00cc9 c1 e9 09 shr ecx, 9
00ccc 0b c1 or eax, ecx
00cce 89 45 04 mov DWORD PTR b$[rbp], eax
00cd1 8b 45 08 mov eax, DWORD PTR c$[rbp]
00cd4 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00cd7 03 c8 add ecx, eax
00cd9 8b c1 mov eax, ecx
00cdb 89 45 04 mov DWORD PTR b$[rbp], eax
; 155 : HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
00cde 8b 45 08 mov eax, DWORD PTR c$[rbp]
00ce1 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00ce4 33 c8 xor ecx, eax
00ce6 8b c1 mov eax, ecx
00ce8 33 45 0c xor eax, DWORD PTR d$[rbp]
00ceb b9 04 00 00 00 mov ecx, 4
00cf0 48 6b c9 0d imul rcx, rcx, 13
00cf4 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00cf8 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00cfb 8d 84 01 c6 7e
9b 28 lea eax, DWORD PTR [rcx+rax+681279174]
00d02 89 45 00 mov DWORD PTR a$[rbp], eax
00d05 8b 45 00 mov eax, DWORD PTR a$[rbp]
00d08 c1 e0 04 shl eax, 4
00d0b 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00d0e c1 e9 1c shr ecx, 28
00d11 0b c1 or eax, ecx
00d13 89 45 00 mov DWORD PTR a$[rbp], eax
00d16 8b 45 04 mov eax, DWORD PTR b$[rbp]
00d19 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00d1c 03 c8 add ecx, eax
00d1e 8b c1 mov eax, ecx
00d20 89 45 00 mov DWORD PTR a$[rbp], eax
; 156 : HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
00d23 8b 45 04 mov eax, DWORD PTR b$[rbp]
00d26 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00d29 33 c8 xor ecx, eax
00d2b 8b c1 mov eax, ecx
00d2d 33 45 08 xor eax, DWORD PTR c$[rbp]
00d30 b9 04 00 00 00 mov ecx, 4
00d35 48 6b c9 00 imul rcx, rcx, 0
00d39 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00d3d b9 fa 27 a1 ea mov ecx, -358537222 ; ffffffffeaa127faH
00d42 8b 55 0c mov edx, DWORD PTR d$[rbp]
00d45 48 03 ca add rcx, rdx
00d48 03 c1 add eax, ecx
00d4a 89 45 0c mov DWORD PTR d$[rbp], eax
00d4d 8b 45 0c mov eax, DWORD PTR d$[rbp]
00d50 c1 e0 0b shl eax, 11
00d53 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00d56 c1 e9 15 shr ecx, 21
00d59 0b c1 or eax, ecx
00d5b 89 45 0c mov DWORD PTR d$[rbp], eax
00d5e 8b 45 00 mov eax, DWORD PTR a$[rbp]
00d61 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00d64 03 c8 add ecx, eax
00d66 8b c1 mov eax, ecx
00d68 89 45 0c mov DWORD PTR d$[rbp], eax
; 157 : HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
00d6b 8b 45 00 mov eax, DWORD PTR a$[rbp]
00d6e 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00d71 33 c8 xor ecx, eax
00d73 8b c1 mov eax, ecx
00d75 33 45 04 xor eax, DWORD PTR b$[rbp]
00d78 b9 04 00 00 00 mov ecx, 4
00d7d 48 6b c9 03 imul rcx, rcx, 3
00d81 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00d85 b9 85 30 ef d4 mov ecx, -722521979 ; ffffffffd4ef3085H
00d8a 8b 55 08 mov edx, DWORD PTR c$[rbp]
00d8d 48 03 ca add rcx, rdx
00d90 03 c1 add eax, ecx
00d92 89 45 08 mov DWORD PTR c$[rbp], eax
00d95 8b 45 08 mov eax, DWORD PTR c$[rbp]
00d98 c1 e0 10 shl eax, 16
00d9b 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00d9e c1 e9 10 shr ecx, 16
00da1 0b c1 or eax, ecx
00da3 89 45 08 mov DWORD PTR c$[rbp], eax
00da6 8b 45 0c mov eax, DWORD PTR d$[rbp]
00da9 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00dac 03 c8 add ecx, eax
00dae 8b c1 mov eax, ecx
00db0 89 45 08 mov DWORD PTR c$[rbp], eax
; 158 : HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
00db3 8b 45 0c mov eax, DWORD PTR d$[rbp]
00db6 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00db9 33 c8 xor ecx, eax
00dbb 8b c1 mov eax, ecx
00dbd 33 45 00 xor eax, DWORD PTR a$[rbp]
00dc0 b9 04 00 00 00 mov ecx, 4
00dc5 48 6b c9 06 imul rcx, rcx, 6
00dc9 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00dcd 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00dd0 8d 84 01 05 1d
88 04 lea eax, DWORD PTR [rcx+rax+76029189]
00dd7 89 45 04 mov DWORD PTR b$[rbp], eax
00dda 8b 45 04 mov eax, DWORD PTR b$[rbp]
00ddd c1 e0 17 shl eax, 23
00de0 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00de3 c1 e9 09 shr ecx, 9
00de6 0b c1 or eax, ecx
00de8 89 45 04 mov DWORD PTR b$[rbp], eax
00deb 8b 45 08 mov eax, DWORD PTR c$[rbp]
00dee 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00df1 03 c8 add ecx, eax
00df3 8b c1 mov eax, ecx
00df5 89 45 04 mov DWORD PTR b$[rbp], eax
; 159 : HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
00df8 8b 45 08 mov eax, DWORD PTR c$[rbp]
00dfb 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00dfe 33 c8 xor ecx, eax
00e00 8b c1 mov eax, ecx
00e02 33 45 0c xor eax, DWORD PTR d$[rbp]
00e05 b9 04 00 00 00 mov ecx, 4
00e0a 48 6b c9 09 imul rcx, rcx, 9
00e0e 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00e12 b9 39 d0 d4 d9 mov ecx, -640364487 ; ffffffffd9d4d039H
00e17 8b 55 00 mov edx, DWORD PTR a$[rbp]
00e1a 48 03 ca add rcx, rdx
00e1d 03 c1 add eax, ecx
00e1f 89 45 00 mov DWORD PTR a$[rbp], eax
00e22 8b 45 00 mov eax, DWORD PTR a$[rbp]
00e25 c1 e0 04 shl eax, 4
00e28 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00e2b c1 e9 1c shr ecx, 28
00e2e 0b c1 or eax, ecx
00e30 89 45 00 mov DWORD PTR a$[rbp], eax
00e33 8b 45 04 mov eax, DWORD PTR b$[rbp]
00e36 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00e39 03 c8 add ecx, eax
00e3b 8b c1 mov eax, ecx
00e3d 89 45 00 mov DWORD PTR a$[rbp], eax
; 160 : HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
00e40 8b 45 04 mov eax, DWORD PTR b$[rbp]
00e43 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00e46 33 c8 xor ecx, eax
00e48 8b c1 mov eax, ecx
00e4a 33 45 08 xor eax, DWORD PTR c$[rbp]
00e4d b9 04 00 00 00 mov ecx, 4
00e52 48 6b c9 0c imul rcx, rcx, 12
00e56 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00e5a b9 e5 99 db e6 mov ecx, -421815835 ; ffffffffe6db99e5H
00e5f 8b 55 0c mov edx, DWORD PTR d$[rbp]
00e62 48 03 ca add rcx, rdx
00e65 03 c1 add eax, ecx
00e67 89 45 0c mov DWORD PTR d$[rbp], eax
00e6a 8b 45 0c mov eax, DWORD PTR d$[rbp]
00e6d c1 e0 0b shl eax, 11
00e70 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00e73 c1 e9 15 shr ecx, 21
00e76 0b c1 or eax, ecx
00e78 89 45 0c mov DWORD PTR d$[rbp], eax
00e7b 8b 45 00 mov eax, DWORD PTR a$[rbp]
00e7e 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00e81 03 c8 add ecx, eax
00e83 8b c1 mov eax, ecx
00e85 89 45 0c mov DWORD PTR d$[rbp], eax
; 161 : HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
00e88 8b 45 00 mov eax, DWORD PTR a$[rbp]
00e8b 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00e8e 33 c8 xor ecx, eax
00e90 8b c1 mov eax, ecx
00e92 33 45 04 xor eax, DWORD PTR b$[rbp]
00e95 b9 04 00 00 00 mov ecx, 4
00e9a 48 6b c9 0f imul rcx, rcx, 15
00e9e 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00ea2 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00ea5 8d 84 01 f8 7c
a2 1f lea eax, DWORD PTR [rcx+rax+530742520]
00eac 89 45 08 mov DWORD PTR c$[rbp], eax
00eaf 8b 45 08 mov eax, DWORD PTR c$[rbp]
00eb2 c1 e0 10 shl eax, 16
00eb5 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00eb8 c1 e9 10 shr ecx, 16
00ebb 0b c1 or eax, ecx
00ebd 89 45 08 mov DWORD PTR c$[rbp], eax
00ec0 8b 45 0c mov eax, DWORD PTR d$[rbp]
00ec3 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00ec6 03 c8 add ecx, eax
00ec8 8b c1 mov eax, ecx
00eca 89 45 08 mov DWORD PTR c$[rbp], eax
; 162 : HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
00ecd 8b 45 0c mov eax, DWORD PTR d$[rbp]
00ed0 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00ed3 33 c8 xor ecx, eax
00ed5 8b c1 mov eax, ecx
00ed7 33 45 00 xor eax, DWORD PTR a$[rbp]
00eda b9 04 00 00 00 mov ecx, 4
00edf 48 6b c9 02 imul rcx, rcx, 2
00ee3 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00ee7 b9 65 56 ac c4 mov ecx, -995338651 ; ffffffffc4ac5665H
00eec 8b 55 04 mov edx, DWORD PTR b$[rbp]
00eef 48 03 ca add rcx, rdx
00ef2 03 c1 add eax, ecx
00ef4 89 45 04 mov DWORD PTR b$[rbp], eax
00ef7 8b 45 04 mov eax, DWORD PTR b$[rbp]
00efa c1 e0 17 shl eax, 23
00efd 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00f00 c1 e9 09 shr ecx, 9
00f03 0b c1 or eax, ecx
00f05 89 45 04 mov DWORD PTR b$[rbp], eax
00f08 8b 45 08 mov eax, DWORD PTR c$[rbp]
00f0b 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00f0e 03 c8 add ecx, eax
00f10 8b c1 mov eax, ecx
00f12 89 45 04 mov DWORD PTR b$[rbp], eax
; 163 :
; 164 : /* Round 4 */
; 165 : II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
00f15 8b 45 0c mov eax, DWORD PTR d$[rbp]
00f18 f7 d0 not eax
00f1a 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00f1d 0b c8 or ecx, eax
00f1f 8b c1 mov eax, ecx
00f21 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00f24 33 c8 xor ecx, eax
00f26 8b c1 mov eax, ecx
00f28 b9 04 00 00 00 mov ecx, 4
00f2d 48 6b c9 00 imul rcx, rcx, 0
00f31 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00f35 b9 44 22 29 f4 mov ecx, -198630844 ; fffffffff4292244H
00f3a 8b 55 00 mov edx, DWORD PTR a$[rbp]
00f3d 48 03 ca add rcx, rdx
00f40 03 c1 add eax, ecx
00f42 89 45 00 mov DWORD PTR a$[rbp], eax
00f45 8b 45 00 mov eax, DWORD PTR a$[rbp]
00f48 c1 e0 06 shl eax, 6
00f4b 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00f4e c1 e9 1a shr ecx, 26
00f51 0b c1 or eax, ecx
00f53 89 45 00 mov DWORD PTR a$[rbp], eax
00f56 8b 45 04 mov eax, DWORD PTR b$[rbp]
00f59 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00f5c 03 c8 add ecx, eax
00f5e 8b c1 mov eax, ecx
00f60 89 45 00 mov DWORD PTR a$[rbp], eax
; 166 : II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
00f63 8b 45 08 mov eax, DWORD PTR c$[rbp]
00f66 f7 d0 not eax
00f68 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00f6b 0b c8 or ecx, eax
00f6d 8b c1 mov eax, ecx
00f6f 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
00f72 33 c8 xor ecx, eax
00f74 8b c1 mov eax, ecx
00f76 b9 04 00 00 00 mov ecx, 4
00f7b 48 6b c9 07 imul rcx, rcx, 7
00f7f 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00f83 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00f86 8d 84 01 97 ff
2a 43 lea eax, DWORD PTR [rcx+rax+1126891415]
00f8d 89 45 0c mov DWORD PTR d$[rbp], eax
00f90 8b 45 0c mov eax, DWORD PTR d$[rbp]
00f93 c1 e0 0a shl eax, 10
00f96 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00f99 c1 e9 16 shr ecx, 22
00f9c 0b c1 or eax, ecx
00f9e 89 45 0c mov DWORD PTR d$[rbp], eax
00fa1 8b 45 00 mov eax, DWORD PTR a$[rbp]
00fa4 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00fa7 03 c8 add ecx, eax
00fa9 8b c1 mov eax, ecx
00fab 89 45 0c mov DWORD PTR d$[rbp], eax
; 167 : II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
00fae 8b 45 04 mov eax, DWORD PTR b$[rbp]
00fb1 f7 d0 not eax
00fb3 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
00fb6 0b c8 or ecx, eax
00fb8 8b c1 mov eax, ecx
00fba 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
00fbd 33 c8 xor ecx, eax
00fbf 8b c1 mov eax, ecx
00fc1 b9 04 00 00 00 mov ecx, 4
00fc6 48 6b c9 0e imul rcx, rcx, 14
00fca 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
00fce b9 a7 23 94 ab mov ecx, -1416354905 ; ffffffffab9423a7H
00fd3 8b 55 08 mov edx, DWORD PTR c$[rbp]
00fd6 48 03 ca add rcx, rdx
00fd9 03 c1 add eax, ecx
00fdb 89 45 08 mov DWORD PTR c$[rbp], eax
00fde 8b 45 08 mov eax, DWORD PTR c$[rbp]
00fe1 c1 e0 0f shl eax, 15
00fe4 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00fe7 c1 e9 11 shr ecx, 17
00fea 0b c1 or eax, ecx
00fec 89 45 08 mov DWORD PTR c$[rbp], eax
00fef 8b 45 0c mov eax, DWORD PTR d$[rbp]
00ff2 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
00ff5 03 c8 add ecx, eax
00ff7 8b c1 mov eax, ecx
00ff9 89 45 08 mov DWORD PTR c$[rbp], eax
; 168 : II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
00ffc 8b 45 00 mov eax, DWORD PTR a$[rbp]
00fff f7 d0 not eax
01001 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01004 0b c8 or ecx, eax
01006 8b c1 mov eax, ecx
01008 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
0100b 33 c8 xor ecx, eax
0100d 8b c1 mov eax, ecx
0100f b9 04 00 00 00 mov ecx, 4
01014 48 6b c9 05 imul rcx, rcx, 5
01018 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0101c b9 39 a0 93 fc mov ecx, -57434055 ; fffffffffc93a039H
01021 8b 55 04 mov edx, DWORD PTR b$[rbp]
01024 48 03 ca add rcx, rdx
01027 03 c1 add eax, ecx
01029 89 45 04 mov DWORD PTR b$[rbp], eax
0102c 8b 45 04 mov eax, DWORD PTR b$[rbp]
0102f c1 e0 15 shl eax, 21
01032 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
01035 c1 e9 0b shr ecx, 11
01038 0b c1 or eax, ecx
0103a 89 45 04 mov DWORD PTR b$[rbp], eax
0103d 8b 45 08 mov eax, DWORD PTR c$[rbp]
01040 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
01043 03 c8 add ecx, eax
01045 8b c1 mov eax, ecx
01047 89 45 04 mov DWORD PTR b$[rbp], eax
; 169 : II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
0104a 8b 45 0c mov eax, DWORD PTR d$[rbp]
0104d f7 d0 not eax
0104f 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
01052 0b c8 or ecx, eax
01054 8b c1 mov eax, ecx
01056 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01059 33 c8 xor ecx, eax
0105b 8b c1 mov eax, ecx
0105d b9 04 00 00 00 mov ecx, 4
01062 48 6b c9 0c imul rcx, rcx, 12
01066 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0106a 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0106d 8d 84 01 c3 59
5b 65 lea eax, DWORD PTR [rcx+rax+1700485571]
01074 89 45 00 mov DWORD PTR a$[rbp], eax
01077 8b 45 00 mov eax, DWORD PTR a$[rbp]
0107a c1 e0 06 shl eax, 6
0107d 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
01080 c1 e9 1a shr ecx, 26
01083 0b c1 or eax, ecx
01085 89 45 00 mov DWORD PTR a$[rbp], eax
01088 8b 45 04 mov eax, DWORD PTR b$[rbp]
0108b 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0108e 03 c8 add ecx, eax
01090 8b c1 mov eax, ecx
01092 89 45 00 mov DWORD PTR a$[rbp], eax
; 170 : II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
01095 8b 45 08 mov eax, DWORD PTR c$[rbp]
01098 f7 d0 not eax
0109a 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0109d 0b c8 or ecx, eax
0109f 8b c1 mov eax, ecx
010a1 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
010a4 33 c8 xor ecx, eax
010a6 8b c1 mov eax, ecx
010a8 b9 04 00 00 00 mov ecx, 4
010ad 48 6b c9 03 imul rcx, rcx, 3
010b1 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
010b5 b9 92 cc 0c 8f mov ecx, -1894986606 ; ffffffff8f0ccc92H
010ba 8b 55 0c mov edx, DWORD PTR d$[rbp]
010bd 48 03 ca add rcx, rdx
010c0 03 c1 add eax, ecx
010c2 89 45 0c mov DWORD PTR d$[rbp], eax
010c5 8b 45 0c mov eax, DWORD PTR d$[rbp]
010c8 c1 e0 0a shl eax, 10
010cb 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
010ce c1 e9 16 shr ecx, 22
010d1 0b c1 or eax, ecx
010d3 89 45 0c mov DWORD PTR d$[rbp], eax
010d6 8b 45 00 mov eax, DWORD PTR a$[rbp]
010d9 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
010dc 03 c8 add ecx, eax
010de 8b c1 mov eax, ecx
010e0 89 45 0c mov DWORD PTR d$[rbp], eax
; 171 : II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
010e3 8b 45 04 mov eax, DWORD PTR b$[rbp]
010e6 f7 d0 not eax
010e8 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
010eb 0b c8 or ecx, eax
010ed 8b c1 mov eax, ecx
010ef 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
010f2 33 c8 xor ecx, eax
010f4 8b c1 mov eax, ecx
010f6 b9 04 00 00 00 mov ecx, 4
010fb 48 6b c9 0a imul rcx, rcx, 10
010ff 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
01103 b9 7d f4 ef ff mov ecx, -1051523 ; ffffffffffeff47dH
01108 8b 55 08 mov edx, DWORD PTR c$[rbp]
0110b 48 03 ca add rcx, rdx
0110e 03 c1 add eax, ecx
01110 89 45 08 mov DWORD PTR c$[rbp], eax
01113 8b 45 08 mov eax, DWORD PTR c$[rbp]
01116 c1 e0 0f shl eax, 15
01119 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0111c c1 e9 11 shr ecx, 17
0111f 0b c1 or eax, ecx
01121 89 45 08 mov DWORD PTR c$[rbp], eax
01124 8b 45 0c mov eax, DWORD PTR d$[rbp]
01127 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0112a 03 c8 add ecx, eax
0112c 8b c1 mov eax, ecx
0112e 89 45 08 mov DWORD PTR c$[rbp], eax
; 172 : II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
01131 8b 45 00 mov eax, DWORD PTR a$[rbp]
01134 f7 d0 not eax
01136 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01139 0b c8 or ecx, eax
0113b 8b c1 mov eax, ecx
0113d 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01140 33 c8 xor ecx, eax
01142 8b c1 mov eax, ecx
01144 b9 04 00 00 00 mov ecx, 4
01149 48 6b c9 01 imul rcx, rcx, 1
0114d 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
01151 b9 d1 5d 84 85 mov ecx, -2054922799 ; ffffffff85845dd1H
01156 8b 55 04 mov edx, DWORD PTR b$[rbp]
01159 48 03 ca add rcx, rdx
0115c 03 c1 add eax, ecx
0115e 89 45 04 mov DWORD PTR b$[rbp], eax
01161 8b 45 04 mov eax, DWORD PTR b$[rbp]
01164 c1 e0 15 shl eax, 21
01167 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0116a c1 e9 0b shr ecx, 11
0116d 0b c1 or eax, ecx
0116f 89 45 04 mov DWORD PTR b$[rbp], eax
01172 8b 45 08 mov eax, DWORD PTR c$[rbp]
01175 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
01178 03 c8 add ecx, eax
0117a 8b c1 mov eax, ecx
0117c 89 45 04 mov DWORD PTR b$[rbp], eax
; 173 : II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
0117f 8b 45 0c mov eax, DWORD PTR d$[rbp]
01182 f7 d0 not eax
01184 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
01187 0b c8 or ecx, eax
01189 8b c1 mov eax, ecx
0118b 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0118e 33 c8 xor ecx, eax
01190 8b c1 mov eax, ecx
01192 b9 04 00 00 00 mov ecx, 4
01197 48 6b c9 08 imul rcx, rcx, 8
0119b 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0119f 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
011a2 8d 84 01 4f 7e
a8 6f lea eax, DWORD PTR [rcx+rax+1873313359]
011a9 89 45 00 mov DWORD PTR a$[rbp], eax
011ac 8b 45 00 mov eax, DWORD PTR a$[rbp]
011af c1 e0 06 shl eax, 6
011b2 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
011b5 c1 e9 1a shr ecx, 26
011b8 0b c1 or eax, ecx
011ba 89 45 00 mov DWORD PTR a$[rbp], eax
011bd 8b 45 04 mov eax, DWORD PTR b$[rbp]
011c0 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
011c3 03 c8 add ecx, eax
011c5 8b c1 mov eax, ecx
011c7 89 45 00 mov DWORD PTR a$[rbp], eax
; 174 : II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
011ca 8b 45 08 mov eax, DWORD PTR c$[rbp]
011cd f7 d0 not eax
011cf 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
011d2 0b c8 or ecx, eax
011d4 8b c1 mov eax, ecx
011d6 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
011d9 33 c8 xor ecx, eax
011db 8b c1 mov eax, ecx
011dd b9 04 00 00 00 mov ecx, 4
011e2 48 6b c9 0f imul rcx, rcx, 15
011e6 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
011ea b9 e0 e6 2c fe mov ecx, -30611744 ; fffffffffe2ce6e0H
011ef 8b 55 0c mov edx, DWORD PTR d$[rbp]
011f2 48 03 ca add rcx, rdx
011f5 03 c1 add eax, ecx
011f7 89 45 0c mov DWORD PTR d$[rbp], eax
011fa 8b 45 0c mov eax, DWORD PTR d$[rbp]
011fd c1 e0 0a shl eax, 10
01200 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01203 c1 e9 16 shr ecx, 22
01206 0b c1 or eax, ecx
01208 89 45 0c mov DWORD PTR d$[rbp], eax
0120b 8b 45 00 mov eax, DWORD PTR a$[rbp]
0120e 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01211 03 c8 add ecx, eax
01213 8b c1 mov eax, ecx
01215 89 45 0c mov DWORD PTR d$[rbp], eax
; 175 : II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
01218 8b 45 04 mov eax, DWORD PTR b$[rbp]
0121b f7 d0 not eax
0121d 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01220 0b c8 or ecx, eax
01222 8b c1 mov eax, ecx
01224 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
01227 33 c8 xor ecx, eax
01229 8b c1 mov eax, ecx
0122b b9 04 00 00 00 mov ecx, 4
01230 48 6b c9 06 imul rcx, rcx, 6
01234 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
01238 b9 14 43 01 a3 mov ecx, -1560198380 ; ffffffffa3014314H
0123d 8b 55 08 mov edx, DWORD PTR c$[rbp]
01240 48 03 ca add rcx, rdx
01243 03 c1 add eax, ecx
01245 89 45 08 mov DWORD PTR c$[rbp], eax
01248 8b 45 08 mov eax, DWORD PTR c$[rbp]
0124b c1 e0 0f shl eax, 15
0124e 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01251 c1 e9 11 shr ecx, 17
01254 0b c1 or eax, ecx
01256 89 45 08 mov DWORD PTR c$[rbp], eax
01259 8b 45 0c mov eax, DWORD PTR d$[rbp]
0125c 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0125f 03 c8 add ecx, eax
01261 8b c1 mov eax, ecx
01263 89 45 08 mov DWORD PTR c$[rbp], eax
; 176 : II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
01266 8b 45 00 mov eax, DWORD PTR a$[rbp]
01269 f7 d0 not eax
0126b 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
0126e 0b c8 or ecx, eax
01270 8b c1 mov eax, ecx
01272 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01275 33 c8 xor ecx, eax
01277 8b c1 mov eax, ecx
01279 b9 04 00 00 00 mov ecx, 4
0127e 48 6b c9 0d imul rcx, rcx, 13
01282 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
01286 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
01289 8d 84 01 a1 11
08 4e lea eax, DWORD PTR [rcx+rax+1309151649]
01290 89 45 04 mov DWORD PTR b$[rbp], eax
01293 8b 45 04 mov eax, DWORD PTR b$[rbp]
01296 c1 e0 15 shl eax, 21
01299 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0129c c1 e9 0b shr ecx, 11
0129f 0b c1 or eax, ecx
012a1 89 45 04 mov DWORD PTR b$[rbp], eax
012a4 8b 45 08 mov eax, DWORD PTR c$[rbp]
012a7 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
012aa 03 c8 add ecx, eax
012ac 8b c1 mov eax, ecx
012ae 89 45 04 mov DWORD PTR b$[rbp], eax
; 177 : II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
012b1 8b 45 0c mov eax, DWORD PTR d$[rbp]
012b4 f7 d0 not eax
012b6 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
012b9 0b c8 or ecx, eax
012bb 8b c1 mov eax, ecx
012bd 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
012c0 33 c8 xor ecx, eax
012c2 8b c1 mov eax, ecx
012c4 b9 04 00 00 00 mov ecx, 4
012c9 48 6b c9 04 imul rcx, rcx, 4
012cd 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
012d1 b9 82 7e 53 f7 mov ecx, -145523070 ; fffffffff7537e82H
012d6 8b 55 00 mov edx, DWORD PTR a$[rbp]
012d9 48 03 ca add rcx, rdx
012dc 03 c1 add eax, ecx
012de 89 45 00 mov DWORD PTR a$[rbp], eax
012e1 8b 45 00 mov eax, DWORD PTR a$[rbp]
012e4 c1 e0 06 shl eax, 6
012e7 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
012ea c1 e9 1a shr ecx, 26
012ed 0b c1 or eax, ecx
012ef 89 45 00 mov DWORD PTR a$[rbp], eax
012f2 8b 45 04 mov eax, DWORD PTR b$[rbp]
012f5 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
012f8 03 c8 add ecx, eax
012fa 8b c1 mov eax, ecx
012fc 89 45 00 mov DWORD PTR a$[rbp], eax
; 178 : II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
012ff 8b 45 08 mov eax, DWORD PTR c$[rbp]
01302 f7 d0 not eax
01304 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
01307 0b c8 or ecx, eax
01309 8b c1 mov eax, ecx
0130b 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
0130e 33 c8 xor ecx, eax
01310 8b c1 mov eax, ecx
01312 b9 04 00 00 00 mov ecx, 4
01317 48 6b c9 0b imul rcx, rcx, 11
0131b 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0131f b9 35 f2 3a bd mov ecx, -1120210379 ; ffffffffbd3af235H
01324 8b 55 0c mov edx, DWORD PTR d$[rbp]
01327 48 03 ca add rcx, rdx
0132a 03 c1 add eax, ecx
0132c 89 45 0c mov DWORD PTR d$[rbp], eax
0132f 8b 45 0c mov eax, DWORD PTR d$[rbp]
01332 c1 e0 0a shl eax, 10
01335 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01338 c1 e9 16 shr ecx, 22
0133b 0b c1 or eax, ecx
0133d 89 45 0c mov DWORD PTR d$[rbp], eax
01340 8b 45 00 mov eax, DWORD PTR a$[rbp]
01343 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01346 03 c8 add ecx, eax
01348 8b c1 mov eax, ecx
0134a 89 45 0c mov DWORD PTR d$[rbp], eax
; 179 : II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
0134d 8b 45 04 mov eax, DWORD PTR b$[rbp]
01350 f7 d0 not eax
01352 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
01355 0b c8 or ecx, eax
01357 8b c1 mov eax, ecx
01359 8b 4d 00 mov ecx, DWORD PTR a$[rbp]
0135c 33 c8 xor ecx, eax
0135e 8b c1 mov eax, ecx
01360 b9 04 00 00 00 mov ecx, 4
01365 48 6b c9 02 imul rcx, rcx, 2
01369 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
0136d 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01370 8d 84 01 bb d2
d7 2a lea eax, DWORD PTR [rcx+rax+718787259]
01377 89 45 08 mov DWORD PTR c$[rbp], eax
0137a 8b 45 08 mov eax, DWORD PTR c$[rbp]
0137d c1 e0 0f shl eax, 15
01380 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01383 c1 e9 11 shr ecx, 17
01386 0b c1 or eax, ecx
01388 89 45 08 mov DWORD PTR c$[rbp], eax
0138b 8b 45 0c mov eax, DWORD PTR d$[rbp]
0138e 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
01391 03 c8 add ecx, eax
01393 8b c1 mov eax, ecx
01395 89 45 08 mov DWORD PTR c$[rbp], eax
; 180 : II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
01398 8b 45 00 mov eax, DWORD PTR a$[rbp]
0139b f7 d0 not eax
0139d 8b 4d 08 mov ecx, DWORD PTR c$[rbp]
013a0 0b c8 or ecx, eax
013a2 8b c1 mov eax, ecx
013a4 8b 4d 0c mov ecx, DWORD PTR d$[rbp]
013a7 33 c8 xor ecx, eax
013a9 8b c1 mov eax, ecx
013ab b9 04 00 00 00 mov ecx, 4
013b0 48 6b c9 09 imul rcx, rcx, 9
013b4 03 44 0d 10 add eax, DWORD PTR x$[rbp+rcx]
013b8 b9 91 d3 86 eb mov ecx, -343485551 ; ffffffffeb86d391H
013bd 8b 55 04 mov edx, DWORD PTR b$[rbp]
013c0 48 03 ca add rcx, rdx
013c3 03 c1 add eax, ecx
013c5 89 45 04 mov DWORD PTR b$[rbp], eax
013c8 8b 45 04 mov eax, DWORD PTR b$[rbp]
013cb c1 e0 15 shl eax, 21
013ce 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
013d1 c1 e9 0b shr ecx, 11
013d4 0b c1 or eax, ecx
013d6 89 45 04 mov DWORD PTR b$[rbp], eax
013d9 8b 45 08 mov eax, DWORD PTR c$[rbp]
013dc 8b 4d 04 mov ecx, DWORD PTR b$[rbp]
013df 03 c8 add ecx, eax
013e1 8b c1 mov eax, ecx
013e3 89 45 04 mov DWORD PTR b$[rbp], eax
; 181 :
; 182 : state[0] += a;
013e6 b8 04 00 00 00 mov eax, 4
013eb 48 6b c0 00 imul rax, rax, 0
013ef 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
013f6 8b 04 01 mov eax, DWORD PTR [rcx+rax]
013f9 03 45 00 add eax, DWORD PTR a$[rbp]
013fc b9 04 00 00 00 mov ecx, 4
01401 48 6b c9 00 imul rcx, rcx, 0
01405 48 8b 95 b8 00
00 00 mov rdx, QWORD PTR state$[rbp]
0140c 89 04 0a mov DWORD PTR [rdx+rcx], eax
; 183 : state[1] += b;
0140f b8 04 00 00 00 mov eax, 4
01414 48 6b c0 01 imul rax, rax, 1
01418 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
0141f 8b 04 01 mov eax, DWORD PTR [rcx+rax]
01422 03 45 04 add eax, DWORD PTR b$[rbp]
01425 b9 04 00 00 00 mov ecx, 4
0142a 48 6b c9 01 imul rcx, rcx, 1
0142e 48 8b 95 b8 00
00 00 mov rdx, QWORD PTR state$[rbp]
01435 89 04 0a mov DWORD PTR [rdx+rcx], eax
; 184 : state[2] += c;
01438 b8 04 00 00 00 mov eax, 4
0143d 48 6b c0 02 imul rax, rax, 2
01441 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
01448 8b 04 01 mov eax, DWORD PTR [rcx+rax]
0144b 03 45 08 add eax, DWORD PTR c$[rbp]
0144e b9 04 00 00 00 mov ecx, 4
01453 48 6b c9 02 imul rcx, rcx, 2
01457 48 8b 95 b8 00
00 00 mov rdx, QWORD PTR state$[rbp]
0145e 89 04 0a mov DWORD PTR [rdx+rcx], eax
; 185 : state[3] += d;
01461 b8 04 00 00 00 mov eax, 4
01466 48 6b c0 03 imul rax, rax, 3
0146a 48 8b 8d b8 00
00 00 mov rcx, QWORD PTR state$[rbp]
01471 8b 04 01 mov eax, DWORD PTR [rcx+rax]
01474 03 45 0c add eax, DWORD PTR d$[rbp]
01477 b9 04 00 00 00 mov ecx, 4
0147c 48 6b c9 03 imul rcx, rcx, 3
01480 48 8b 95 b8 00
00 00 mov rdx, QWORD PTR state$[rbp]
01487 89 04 0a mov DWORD PTR [rdx+rcx], eax
; 186 :
; 187 : /* Zeroize sensitive information.
; 188 : */
; 189 : MD5_memset ((POINTER)x, 0, sizeof (x));
0148a 41 b9 40 00 00
00 mov r9d, 64 ; 00000040H
01490 45 33 c0 xor r8d, r8d
01493 48 8d 55 10 lea rdx, QWORD PTR x$[rbp]
01497 48 8b 8d b0 00
00 00 mov rcx, QWORD PTR this$[rbp]
0149e e8 00 00 00 00 call ?MD5_memset@MD5_L@@QEAAXPEAEHI@Z ; MD5_L::MD5_memset
; 190 : }
014a3 48 8b 8d 90 00
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
014aa 48 33 cd xor rcx, rbp
014ad e8 00 00 00 00 call __security_check_cookie
014b2 48 8d a5 a0 00
00 00 lea rsp, QWORD PTR [rbp+160]
014b9 5d pop rbp
014ba c3 ret 0
?MD5Transform@MD5_L@@QEAAXQEAKQEAE@Z ENDP ; MD5_L::MD5Transform
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
; COMDAT sprintf
_TEXT SEGMENT
_Result$ = 0
_ArgList$ = 8
_Buffer$ = 112
_Format$ = 120
sprintf PROC ; COMDAT
; 1771 : {
$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 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
0000f 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
00014 55 push rbp
00015 48 81 ec 80 00
00 00 sub rsp, 128 ; 00000080H
0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
; 1772 : int _Result;
; 1773 : va_list _ArgList;
; 1774 : __crt_va_start(_ArgList, _Format);
00021 48 8d 85 80 00
00 00 lea rax, QWORD PTR _Format$[rbp+8]
00028 48 89 45 08 mov QWORD PTR _ArgList$[rbp], rax
; 1775 :
; 1776 : _Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList);
0002c 4c 8b 4d 08 mov r9, QWORD PTR _ArgList$[rbp]
00030 45 33 c0 xor r8d, r8d
00033 48 8b 55 78 mov rdx, QWORD PTR _Format$[rbp]
00037 48 8b 4d 70 mov rcx, QWORD PTR _Buffer$[rbp]
0003b e8 00 00 00 00 call _vsprintf_l
00040 89 45 00 mov DWORD PTR _Result$[rbp], eax
; 1777 :
; 1778 : __crt_va_end(_ArgList);
00043 48 c7 45 08 00
00 00 00 mov QWORD PTR _ArgList$[rbp], 0
; 1779 : return _Result;
0004b 8b 45 00 mov eax, DWORD PTR _Result$[rbp]
; 1780 : }
0004e 48 8d 65 60 lea rsp, QWORD PTR [rbp+96]
00052 5d pop rbp
00053 c3 ret 0
sprintf ENDP
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
; COMDAT _vsprintf_l
_TEXT SEGMENT
_Buffer$ = 80
_Format$ = 88
_Locale$ = 96
_ArgList$ = 104
_vsprintf_l PROC ; COMDAT
; 1458 : {
$LN3:
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
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 48 83 ec 70 sub rsp, 112 ; 00000070H
00019 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
; 1459 : return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList);
0001e 48 8b 45 68 mov rax, QWORD PTR _ArgList$[rbp]
00022 48 89 44 24 20 mov QWORD PTR [rsp+32], rax
00027 4c 8b 4d 60 mov r9, QWORD PTR _Locale$[rbp]
0002b 4c 8b 45 58 mov r8, QWORD PTR _Format$[rbp]
0002f 48 c7 c2 ff ff
ff ff mov rdx, -1
00036 48 8b 4d 50 mov rcx, QWORD PTR _Buffer$[rbp]
0003a e8 00 00 00 00 call _vsnprintf_l
; 1460 : }
0003f 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00043 5d pop rbp
00044 c3 ret 0
_vsprintf_l ENDP
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
; COMDAT _vsnprintf_l
_TEXT SEGMENT
_Result$ = 0
tv74 = 68
_Buffer$ = 96
_BufferCount$ = 104
_Format$ = 112
_Locale$ = 120
_ArgList$ = 128
_vsnprintf_l PROC ; COMDAT
; 1391 : {
$LN5:
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
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 48 81 ec 80 00
00 00 sub rsp, 128 ; 00000080H
0001c 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
; 1392 : int const _Result = __stdio_common_vsprintf(
00021 e8 00 00 00 00 call __local_stdio_printf_options
00026 48 8b 00 mov rax, QWORD PTR [rax]
00029 48 83 c8 01 or rax, 1
0002d 48 8b 8d 80 00
00 00 mov rcx, QWORD PTR _ArgList$[rbp]
00034 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx
00039 48 8b 4d 78 mov rcx, QWORD PTR _Locale$[rbp]
0003d 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx
00042 4c 8b 4d 70 mov r9, QWORD PTR _Format$[rbp]
00046 4c 8b 45 68 mov r8, QWORD PTR _BufferCount$[rbp]
0004a 48 8b 55 60 mov rdx, QWORD PTR _Buffer$[rbp]
0004e 48 8b c8 mov rcx, rax
00051 e8 00 00 00 00 call __stdio_common_vsprintf
00056 89 45 00 mov DWORD PTR _Result$[rbp], eax
; 1393 : _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION,
; 1394 : _Buffer, _BufferCount, _Format, _Locale, _ArgList);
; 1395 :
; 1396 : return _Result < 0 ? -1 : _Result;
00059 83 7d 00 00 cmp DWORD PTR _Result$[rbp], 0
0005d 7d 09 jge SHORT $LN3@vsnprintf_
0005f c7 45 44 ff ff
ff ff mov DWORD PTR tv74[rbp], -1
00066 eb 06 jmp SHORT $LN4@vsnprintf_
$LN3@vsnprintf_:
00068 8b 45 00 mov eax, DWORD PTR _Result$[rbp]
0006b 89 45 44 mov DWORD PTR tv74[rbp], eax
$LN4@vsnprintf_:
0006e 8b 45 44 mov eax, DWORD PTR tv74[rbp]
; 1397 : }
00071 48 8d 65 50 lea rsp, QWORD PTR [rbp+80]
00075 5d pop rbp
00076 c3 ret 0
_vsnprintf_l ENDP
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h
; COMDAT __local_stdio_printf_options
_TEXT SEGMENT
__local_stdio_printf_options PROC ; COMDAT
; 90 : {
$LN3:
00000 40 55 push rbp
00002 48 83 ec 40 sub rsp, 64 ; 00000040H
00006 48 8b ec mov rbp, rsp
; 91 : static unsigned __int64 _OptionsStorage;
; 92 : return &_OptionsStorage;
00009 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
; 93 : }
00010 48 8d 65 40 lea rsp, QWORD PTR [rbp+64]
00014 5d pop rbp
00015 c3 ret 0
__local_stdio_printf_options ENDP
_TEXT ENDS
; Function compile flags: /Odtp /ZI
; File D:\Works\Corpsms_2010\public\md53\MD5_L.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\md53\MD5_L.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\md53\MD5_L.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\md53\MD5_L.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