; 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