; Listing generated by Microsoft (R) Optimizing Compiler Version 19.34.31933.0 TITLE D:\Works\Corpsms_2010\SmsCenter\Release_Unicode\MD5_L.obj .686P .XMM include listing.inc .model flat INCLUDELIB LIBCMT INCLUDELIB OLDNAMES PUBLIC ?__empty_global_delete@@YAXPAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPAXI@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z ; __empty_global_delete PUBLIC ___local_stdio_printf_options PUBLIC __vsnprintf_l PUBLIC __vsprintf_l PUBLIC _sprintf PUBLIC ?MD5Transform@MD5_L@@QAEXQAKQAE@Z ; MD5_L::MD5Transform PUBLIC ?Encode@MD5_L@@QAEXPAEPAKI@Z ; MD5_L::Encode PUBLIC ?Decode@MD5_L@@QAEXPAKPAEI@Z ; MD5_L::Decode PUBLIC ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z ; MD5_L::MD5_memcpy PUBLIC ?MD5_memset@MD5_L@@QAEXPAEHI@Z ; MD5_L::MD5_memset PUBLIC ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init PUBLIC ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update PUBLIC ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final PUBLIC ?StringAddOne@MD5_L@@QAEXPAD@Z ; MD5_L::StringAddOne PUBLIC ?MD5String@MD5_L@@QAEPADPAD0@Z ; MD5_L::MD5String PUBLIC ?MD5String@MD5_L@@QAEPADPAD@Z ; MD5_L::MD5String PUBLIC ?MD5Byte@MD5_L@@QAEPAEPAEJ@Z ; MD5_L::MD5Byte PUBLIC ?MD5Check@MD5_L@@QAE_NPAD0@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 @__security_check_cookie@4:PROC EXTRN _memset:PROC EXTRN ___security_cookie:DWORD ; 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@@QAEPADPAD@Z@4PADA DB 040H DUP (?) ; `MD5_L::MD5String'::`2'::output _BSS ENDS ; COMDAT ??_C@_04JFFKLGJF@?$CF02X@ CONST SEGMENT ??_C@_04JFFKLGJF@?$CF02X@ DB '%02X', 00H ; `string' CONST ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 010H DB 0aeH voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 010H DW 016bH voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 010H DW 014cH voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DB 0dH DB 0b2H voltbl ENDS ; COMDAT voltbl voltbl SEGMENT _volmd DW 010H DW 010f7H voltbl ENDS ; Function compile flags: /Odtp /ZI ; File D:\Works\Corpsms_2010\public\md53\MD5_L.cpp ; COMDAT ?MD5Check@MD5_L@@QAE_NPAD0@Z _TEXT SEGMENT tv71 = -72 ; size = 4 _this$ = -4 ; size = 4 _md5string$ = 8 ; size = 4 _string$ = 12 ; size = 4 ?MD5Check@MD5_L@@QAE_NPAD0@Z PROC ; MD5_L::MD5Check, COMDAT ; _this$ = ecx ; 371 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 372 : return strcmp( md5string, MD5String( string ) ) == 0; 0000c 8b 45 0c mov eax, DWORD PTR _string$[ebp] 0000f 50 push eax 00010 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 00013 e8 00 00 00 00 call ?MD5String@MD5_L@@QAEPADPAD@Z ; MD5_L::MD5String 00018 50 push eax 00019 8b 4d 08 mov ecx, DWORD PTR _md5string$[ebp] 0001c 51 push ecx 0001d e8 00 00 00 00 call _strcmp 00022 83 c4 08 add esp, 8 00025 85 c0 test eax, eax 00027 75 09 jne SHORT $LN3@MD5Check 00029 c7 45 b8 01 00 00 00 mov DWORD PTR tv71[ebp], 1 00030 eb 07 jmp SHORT $LN4@MD5Check $LN3@MD5Check: 00032 c7 45 b8 00 00 00 00 mov DWORD PTR tv71[ebp], 0 $LN4@MD5Check: 00039 8a 45 b8 mov al, BYTE PTR tv71[ebp] ; 373 : } 0003c 5f pop edi 0003d 5e pop esi 0003e 5b pop ebx 0003f 8b e5 mov esp, ebp 00041 5d pop ebp 00042 c2 08 00 ret 8 ?MD5Check@MD5_L@@QAE_NPAD0@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@@QAEPAEPAEJ@Z _TEXT SEGMENT _i$ = -184 ; size = 4 _len$ = -180 ; size = 4 _output$ = -176 ; size = 64 _digest$ = -112 ; size = 16 _context$ = -96 ; size = 88 _this$ = -8 ; size = 4 __$ArrayPad$ = -4 ; size = 4 _bMd5$ = 8 ; size = 4 _lLen$ = 12 ; size = 4 ?MD5Byte@MD5_L@@QAEPAEPAEJ@Z PROC ; MD5_L::MD5Byte, COMDAT ; _this$ = ecx ; 256 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 81 ec f8 00 00 00 sub esp, 248 ; 000000f8H 00009 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0000e 33 c5 xor eax, ebp 00010 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax 00013 53 push ebx 00014 56 push esi 00015 57 push edi 00016 89 4d f8 mov DWORD PTR _this$[ebp], ecx ; 257 : MD5_CTX context; ; 258 : unsigned char digest[16]; ; 259 : BYTE output[64]={0}; 00019 6a 40 push 64 ; 00000040H 0001b 6a 00 push 0 0001d 8d 85 50 ff ff ff lea eax, DWORD PTR _output$[ebp] 00023 50 push eax 00024 e8 00 00 00 00 call _memset 00029 83 c4 0c add esp, 12 ; 0000000cH ; 260 : unsigned int len = lLen; 0002c 8b 45 0c mov eax, DWORD PTR _lLen$[ebp] 0002f 89 85 4c ff ff ff mov DWORD PTR _len$[ebp], eax ; 261 : int i; ; 262 : ; 263 : MD5Init( &context); 00035 8d 45 a0 lea eax, DWORD PTR _context$[ebp] 00038 50 push eax 00039 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0003c e8 00 00 00 00 call ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init ; 264 : MD5Update( &context, (unsigned char*)bMd5, len ); 00041 8b 85 4c ff ff ff mov eax, DWORD PTR _len$[ebp] 00047 50 push eax 00048 8b 4d 08 mov ecx, DWORD PTR _bMd5$[ebp] 0004b 51 push ecx 0004c 8d 55 a0 lea edx, DWORD PTR _context$[ebp] 0004f 52 push edx 00050 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00053 e8 00 00 00 00 call ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update ; 265 : MD5Final( digest, &context ); 00058 8d 45 a0 lea eax, DWORD PTR _context$[ebp] 0005b 50 push eax 0005c 8d 4d 90 lea ecx, DWORD PTR _digest$[ebp] 0005f 51 push ecx 00060 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00063 e8 00 00 00 00 call ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final ; 266 : ; 267 : for (i = 0; i < 16; i++) 00068 c7 85 48 ff ff ff 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00072 eb 0f jmp SHORT $LN4@MD5Byte $LN2@MD5Byte: 00074 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 0007a 83 c0 01 add eax, 1 0007d 89 85 48 ff ff ff mov DWORD PTR _i$[ebp], eax $LN4@MD5Byte: 00083 83 bd 48 ff ff ff 10 cmp DWORD PTR _i$[ebp], 16 ; 00000010H 0008a 7d 19 jge SHORT $LN3@MD5Byte ; 268 : { ; 269 : output[i] = (unsigned char)digest[i]; 0008c 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 00092 8b 8d 48 ff ff ff mov ecx, DWORD PTR _i$[ebp] 00098 8a 54 0d 90 mov dl, BYTE PTR _digest$[ebp+ecx] 0009c 88 94 05 50 ff ff ff mov BYTE PTR _output$[ebp+eax], dl ; 270 : //sprintf(&(output1[2*i]),"%02X",(unsigned char)digest[i]); ; 271 : //sprintf(&(output1[2*i+1]),"%02X",(unsigned char)(digest[i]<<4)); ; 272 : } 000a3 eb cf jmp SHORT $LN2@MD5Byte $LN3@MD5Byte: ; 273 : return output; 000a5 8d 85 50 ff ff ff lea eax, DWORD PTR _output$[ebp] ; 274 : ; 275 : } 000ab 5f pop edi 000ac 5e pop esi 000ad 5b pop ebx 000ae 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp] 000b1 33 cd xor ecx, ebp 000b3 e8 00 00 00 00 call @__security_check_cookie@4 000b8 8b e5 mov esp, ebp 000ba 5d pop ebp 000bb c2 08 00 ret 8 ?MD5Byte@MD5_L@@QAEPAEPAEJ@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@@QAEPADPAD@Z _TEXT SEGMENT $T1 = -252 ; size = 4 _i$ = -184 ; size = 4 _len$ = -180 ; size = 4 _output1$ = -176 ; size = 64 _digest$ = -112 ; size = 16 _context$ = -96 ; size = 88 _this$ = -8 ; size = 4 __$ArrayPad$ = -4 ; size = 4 _string$ = 8 ; size = 4 ?MD5String@MD5_L@@QAEPADPAD@Z PROC ; MD5_L::MD5String, COMDAT ; _this$ = ecx ; 280 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 81 ec fc 00 00 00 sub esp, 252 ; 000000fcH 00009 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0000e 33 c5 xor eax, ebp 00010 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax 00013 53 push ebx 00014 56 push esi 00015 57 push edi 00016 89 4d f8 mov DWORD PTR _this$[ebp], ecx ; 281 : MD5_CTX context; ; 282 : unsigned char digest[16] = { 0 }; 00019 33 c0 xor eax, eax 0001b 89 45 90 mov DWORD PTR _digest$[ebp], eax 0001e 89 45 94 mov DWORD PTR _digest$[ebp+4], eax 00021 89 45 98 mov DWORD PTR _digest$[ebp+8], eax 00024 89 45 9c mov DWORD PTR _digest$[ebp+12], eax ; 283 : //char output1[128] = { 0 }; ; 284 : char output1[64] = { 0 }; 00027 6a 40 push 64 ; 00000040H 00029 6a 00 push 0 0002b 8d 85 50 ff ff ff lea eax, DWORD PTR _output1$[ebp] 00031 50 push eax 00032 e8 00 00 00 00 call _memset 00037 83 c4 0c add esp, 12 ; 0000000cH ; 285 : static char output[64] = { 0 }; ; 286 : unsigned int len = (unsigned int)strlen (string); 0003a 8b 45 08 mov eax, DWORD PTR _string$[ebp] 0003d 50 push eax 0003e e8 00 00 00 00 call _strlen 00043 83 c4 04 add esp, 4 00046 89 85 4c ff ff ff mov DWORD PTR _len$[ebp], eax ; 287 : int i; ; 288 : ; 289 : MD5Init( &context); 0004c 8d 45 a0 lea eax, DWORD PTR _context$[ebp] 0004f 50 push eax 00050 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00053 e8 00 00 00 00 call ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init ; 290 : MD5Update( &context, (unsigned char*)string, len ); 00058 8b 85 4c ff ff ff mov eax, DWORD PTR _len$[ebp] 0005e 50 push eax 0005f 8b 4d 08 mov ecx, DWORD PTR _string$[ebp] 00062 51 push ecx 00063 8d 55 a0 lea edx, DWORD PTR _context$[ebp] 00066 52 push edx 00067 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0006a e8 00 00 00 00 call ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update ; 291 : MD5Final( digest, &context ); 0006f 8d 45 a0 lea eax, DWORD PTR _context$[ebp] 00072 50 push eax 00073 8d 4d 90 lea ecx, DWORD PTR _digest$[ebp] 00076 51 push ecx 00077 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0007a e8 00 00 00 00 call ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final ; 292 : ; 293 : for (i = 0; i < 16; i++) 0007f c7 85 48 ff ff ff 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00089 eb 0f jmp SHORT $LN4@MD5String $LN2@MD5String: 0008b 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 00091 83 c0 01 add eax, 1 00094 89 85 48 ff ff ff mov DWORD PTR _i$[ebp], eax $LN4@MD5String: 0009a 83 bd 48 ff ff ff 10 cmp DWORD PTR _i$[ebp], 16 ; 00000010H 000a1 7d 56 jge SHORT $LN3@MD5String ; 294 : { ; 295 : sprintf(&(output1[2*i]),"%02X",(unsigned char)digest[i]); 000a3 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 000a9 0f b6 4c 05 90 movzx ecx, BYTE PTR _digest$[ebp+eax] 000ae 51 push ecx 000af 68 00 00 00 00 push OFFSET ??_C@_04JFFKLGJF@?$CF02X@ 000b4 8b 95 48 ff ff ff mov edx, DWORD PTR _i$[ebp] 000ba 8d 84 55 50 ff ff ff lea eax, DWORD PTR _output1$[ebp+edx*2] 000c1 50 push eax 000c2 e8 00 00 00 00 call _sprintf 000c7 83 c4 0c add esp, 12 ; 0000000cH ; 296 : sprintf(&(output1[2*i+1]),"%02X",(unsigned char)(digest[i]<<4)); 000ca 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 000d0 0f b6 4c 05 90 movzx ecx, BYTE PTR _digest$[ebp+eax] 000d5 c1 e1 04 shl ecx, 4 000d8 0f b6 d1 movzx edx, cl 000db 52 push edx 000dc 68 00 00 00 00 push OFFSET ??_C@_04JFFKLGJF@?$CF02X@ 000e1 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 000e7 8d 8c 45 51 ff ff ff lea ecx, DWORD PTR _output1$[ebp+eax*2+1] 000ee 51 push ecx 000ef e8 00 00 00 00 call _sprintf 000f4 83 c4 0c add esp, 12 ; 0000000cH ; 297 : } 000f7 eb 92 jmp SHORT $LN2@MD5String $LN3@MD5String: ; 298 : for(i=0;i<32;i++) 000f9 c7 85 48 ff ff ff 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00103 eb 0f jmp SHORT $LN7@MD5String $LN5@MD5String: 00105 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 0010b 83 c0 01 add eax, 1 0010e 89 85 48 ff ff ff mov DWORD PTR _i$[ebp], eax $LN7@MD5String: 00114 83 bd 48 ff ff ff 20 cmp DWORD PTR _i$[ebp], 32 ; 00000020H 0011b 7d 1b jge SHORT $LN6@MD5String ; 299 : { ; 300 : output[i]=output1[i]; 0011d 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 00123 8b 8d 48 ff ff ff mov ecx, DWORD PTR _i$[ebp] 00129 8a 94 0d 50 ff ff ff mov dl, BYTE PTR _output1$[ebp+ecx] 00130 88 90 00 00 00 00 mov BYTE PTR ?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA[eax], dl ; 301 : } 00136 eb cd jmp SHORT $LN5@MD5String $LN6@MD5String: ; 302 : output[32] = 0; 00138 b8 01 00 00 00 mov eax, 1 0013d c1 e0 05 shl eax, 5 00140 89 85 04 ff ff ff mov DWORD PTR $T1[ebp], eax 00146 83 bd 04 ff ff ff 40 cmp DWORD PTR $T1[ebp], 64 ; 00000040H 0014d 73 02 jae SHORT $LN9@MD5String 0014f eb 05 jmp SHORT $LN10@MD5String $LN9@MD5String: 00151 e8 00 00 00 00 call ___report_rangecheckfailure $LN10@MD5String: 00156 8b 8d 04 ff ff ff mov ecx, DWORD PTR $T1[ebp] 0015c c6 81 00 00 00 00 00 mov BYTE PTR ?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA[ecx], 0 ; 303 : ; 304 : return output; 00163 b8 00 00 00 00 mov eax, OFFSET ?output@?1??MD5String@MD5_L@@QAEPADPAD@Z@4PADA $LN8@MD5String: ; 305 : } 00168 5f pop edi 00169 5e pop esi 0016a 5b pop ebx 0016b 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp] 0016e 33 cd xor ecx, ebp 00170 e8 00 00 00 00 call @__security_check_cookie@4 00175 8b e5 mov esp, ebp 00177 5d pop ebp 00178 c2 04 00 ret 4 ?MD5String@MD5_L@@QAEPADPAD@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@@QAEPADPAD0@Z _TEXT SEGMENT _i$ = -184 ; size = 4 _len$ = -180 ; size = 4 _output1$ = -176 ; size = 64 _digest$ = -112 ; size = 16 _context$ = -96 ; size = 88 _this$ = -8 ; size = 4 __$ArrayPad$ = -4 ; size = 4 _string$ = 8 ; size = 4 _strMD5$ = 12 ; size = 4 ?MD5String@MD5_L@@QAEPADPAD0@Z PROC ; MD5_L::MD5String, COMDAT ; _this$ = ecx ; 309 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 81 ec f8 00 00 00 sub esp, 248 ; 000000f8H 00009 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0000e 33 c5 xor eax, ebp 00010 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax 00013 53 push ebx 00014 56 push esi 00015 57 push edi 00016 89 4d f8 mov DWORD PTR _this$[ebp], ecx ; 310 : MD5_CTX context; ; 311 : unsigned char digest[16] = { 0 }; 00019 33 c0 xor eax, eax 0001b 89 45 90 mov DWORD PTR _digest$[ebp], eax 0001e 89 45 94 mov DWORD PTR _digest$[ebp+4], eax 00021 89 45 98 mov DWORD PTR _digest$[ebp+8], eax 00024 89 45 9c mov DWORD PTR _digest$[ebp+12], eax ; 312 : //char output1[128] = { 0 }; ; 313 : char output1[64] = { 0 }; 00027 6a 40 push 64 ; 00000040H 00029 6a 00 push 0 0002b 8d 85 50 ff ff ff lea eax, DWORD PTR _output1$[ebp] 00031 50 push eax 00032 e8 00 00 00 00 call _memset 00037 83 c4 0c add esp, 12 ; 0000000cH ; 314 : unsigned int len = (unsigned int)strlen(string); 0003a 8b 45 08 mov eax, DWORD PTR _string$[ebp] 0003d 50 push eax 0003e e8 00 00 00 00 call _strlen 00043 83 c4 04 add esp, 4 00046 89 85 4c ff ff ff mov DWORD PTR _len$[ebp], eax ; 315 : int i; ; 316 : ; 317 : MD5Init(&context); 0004c 8d 45 a0 lea eax, DWORD PTR _context$[ebp] 0004f 50 push eax 00050 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00053 e8 00 00 00 00 call ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z ; MD5_L::MD5Init ; 318 : MD5Update(&context, (unsigned char*)string, len); 00058 8b 85 4c ff ff ff mov eax, DWORD PTR _len$[ebp] 0005e 50 push eax 0005f 8b 4d 08 mov ecx, DWORD PTR _string$[ebp] 00062 51 push ecx 00063 8d 55 a0 lea edx, DWORD PTR _context$[ebp] 00066 52 push edx 00067 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0006a e8 00 00 00 00 call ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update ; 319 : MD5Final(digest, &context); 0006f 8d 45 a0 lea eax, DWORD PTR _context$[ebp] 00072 50 push eax 00073 8d 4d 90 lea ecx, DWORD PTR _digest$[ebp] 00076 51 push ecx 00077 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0007a e8 00 00 00 00 call ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z ; MD5_L::MD5Final ; 320 : ; 321 : for (i = 0; i < 16; i++) 0007f c7 85 48 ff ff ff 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00089 eb 0f jmp SHORT $LN4@MD5String $LN2@MD5String: 0008b 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 00091 83 c0 01 add eax, 1 00094 89 85 48 ff ff ff mov DWORD PTR _i$[ebp], eax $LN4@MD5String: 0009a 83 bd 48 ff ff ff 10 cmp DWORD PTR _i$[ebp], 16 ; 00000010H 000a1 7d 56 jge SHORT $LN3@MD5String ; 322 : { ; 323 : sprintf(&(output1[2 * i]), "%02X", (unsigned char)digest[i]); 000a3 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 000a9 0f b6 4c 05 90 movzx ecx, BYTE PTR _digest$[ebp+eax] 000ae 51 push ecx 000af 68 00 00 00 00 push OFFSET ??_C@_04JFFKLGJF@?$CF02X@ 000b4 8b 95 48 ff ff ff mov edx, DWORD PTR _i$[ebp] 000ba 8d 84 55 50 ff ff ff lea eax, DWORD PTR _output1$[ebp+edx*2] 000c1 50 push eax 000c2 e8 00 00 00 00 call _sprintf 000c7 83 c4 0c add esp, 12 ; 0000000cH ; 324 : sprintf(&(output1[2 * i + 1]), "%02X", (unsigned char)(digest[i] << 4)); 000ca 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 000d0 0f b6 4c 05 90 movzx ecx, BYTE PTR _digest$[ebp+eax] 000d5 c1 e1 04 shl ecx, 4 000d8 0f b6 d1 movzx edx, cl 000db 52 push edx 000dc 68 00 00 00 00 push OFFSET ??_C@_04JFFKLGJF@?$CF02X@ 000e1 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 000e7 8d 8c 45 51 ff ff ff lea ecx, DWORD PTR _output1$[ebp+eax*2+1] 000ee 51 push ecx 000ef e8 00 00 00 00 call _sprintf 000f4 83 c4 0c add esp, 12 ; 0000000cH ; 325 : } 000f7 eb 92 jmp SHORT $LN2@MD5String $LN3@MD5String: ; 326 : for (i = 0; i<32; i++) 000f9 c7 85 48 ff ff ff 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00103 eb 0f jmp SHORT $LN7@MD5String $LN5@MD5String: 00105 8b 85 48 ff ff ff mov eax, DWORD PTR _i$[ebp] 0010b 83 c0 01 add eax, 1 0010e 89 85 48 ff ff ff mov DWORD PTR _i$[ebp], eax $LN7@MD5String: 00114 83 bd 48 ff ff ff 20 cmp DWORD PTR _i$[ebp], 32 ; 00000020H 0011b 7d 1a jge SHORT $LN6@MD5String ; 327 : { ; 328 : strMD5[i] = output1[i]; 0011d 8b 45 0c mov eax, DWORD PTR _strMD5$[ebp] 00120 03 85 48 ff ff ff add eax, DWORD PTR _i$[ebp] 00126 8b 8d 48 ff ff ff mov ecx, DWORD PTR _i$[ebp] 0012c 8a 94 0d 50 ff ff ff mov dl, BYTE PTR _output1$[ebp+ecx] 00133 88 10 mov BYTE PTR [eax], dl ; 329 : } 00135 eb ce jmp SHORT $LN5@MD5String $LN6@MD5String: ; 330 : strMD5[32] = 0; 00137 b8 01 00 00 00 mov eax, 1 0013c c1 e0 05 shl eax, 5 0013f 8b 4d 0c mov ecx, DWORD PTR _strMD5$[ebp] 00142 c6 04 01 00 mov BYTE PTR [ecx+eax], 0 ; 331 : ; 332 : return strMD5; 00146 8b 45 0c mov eax, DWORD PTR _strMD5$[ebp] ; 333 : } 00149 5f pop edi 0014a 5e pop esi 0014b 5b pop ebx 0014c 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp] 0014f 33 cd xor ecx, ebp 00151 e8 00 00 00 00 call @__security_check_cookie@4 00156 8b e5 mov esp, ebp 00158 5d pop ebp 00159 c2 08 00 ret 8 ?MD5String@MD5_L@@QAEPADPAD0@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@@QAEXPAD@Z _TEXT SEGMENT _n$ = -16 ; size = 4 _i$ = -12 ; size = 4 _len$ = -8 ; size = 4 _this$ = -4 ; size = 4 _orstring$ = 8 ; size = 4 ?StringAddOne@MD5_L@@QAEXPAD@Z PROC ; MD5_L::StringAddOne, COMDAT ; _this$ = ecx ; 339 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 50 sub esp, 80 ; 00000050H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 340 : unsigned int len; ; 341 : int i,n; ; 342 : ; 343 : len = (unsigned int)strlen(orstring); 0000c 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 0000f 50 push eax 00010 e8 00 00 00 00 call _strlen 00015 83 c4 04 add esp, 4 00018 89 45 f8 mov DWORD PTR _len$[ebp], eax ; 344 : n = len - 1; 0001b 8b 45 f8 mov eax, DWORD PTR _len$[ebp] 0001e 83 e8 01 sub eax, 1 00021 89 45 f0 mov DWORD PTR _n$[ebp], eax ; 345 : for(i = n; i >= 0; i--) 00024 8b 45 f0 mov eax, DWORD PTR _n$[ebp] 00027 89 45 f4 mov DWORD PTR _i$[ebp], eax 0002a eb 09 jmp SHORT $LN4@StringAddO $LN2@StringAddO: 0002c 8b 45 f4 mov eax, DWORD PTR _i$[ebp] 0002f 83 e8 01 sub eax, 1 00032 89 45 f4 mov DWORD PTR _i$[ebp], eax $LN4@StringAddO: 00035 83 7d f4 00 cmp DWORD PTR _i$[ebp], 0 00039 7c 69 jl SHORT $LN1@StringAddO ; 346 : { ; 347 : if(orstring[i]=='9') 0003b 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 0003e 03 45 f4 add eax, DWORD PTR _i$[ebp] 00041 0f be 08 movsx ecx, BYTE PTR [eax] 00044 83 f9 39 cmp ecx, 57 ; 00000039H 00047 75 0d jne SHORT $LN5@StringAddO ; 348 : { ; 349 : orstring[i] = 'A'; 00049 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 0004c 03 45 f4 add eax, DWORD PTR _i$[ebp] 0004f c6 00 41 mov BYTE PTR [eax], 65 ; 00000041H ; 350 : break; 00052 eb 50 jmp SHORT $LN1@StringAddO ; 351 : } 00054 eb 4a jmp SHORT $LN6@StringAddO $LN5@StringAddO: ; 352 : else if(orstring[i]=='Z') 00056 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 00059 03 45 f4 add eax, DWORD PTR _i$[ebp] 0005c 0f be 08 movsx ecx, BYTE PTR [eax] 0005f 83 f9 5a cmp ecx, 90 ; 0000005aH 00062 75 0d jne SHORT $LN7@StringAddO ; 353 : { ; 354 : orstring[i]='a'; 00064 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 00067 03 45 f4 add eax, DWORD PTR _i$[ebp] 0006a c6 00 61 mov BYTE PTR [eax], 97 ; 00000061H ; 355 : break; 0006d eb 35 jmp SHORT $LN1@StringAddO ; 356 : } 0006f eb 2f jmp SHORT $LN6@StringAddO $LN7@StringAddO: ; 357 : else if(orstring[i]=='z') 00071 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 00074 03 45 f4 add eax, DWORD PTR _i$[ebp] 00077 0f be 08 movsx ecx, BYTE PTR [eax] 0007a 83 f9 7a cmp ecx, 122 ; 0000007aH 0007d 75 0d jne SHORT $LN9@StringAddO ; 358 : { ; 359 : orstring[i]='0'; 0007f 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 00082 03 45 f4 add eax, DWORD PTR _i$[ebp] 00085 c6 00 30 mov BYTE PTR [eax], 48 ; 00000030H ; 360 : continue; 00088 eb a2 jmp SHORT $LN2@StringAddO ; 361 : } 0008a eb 14 jmp SHORT $LN6@StringAddO $LN9@StringAddO: ; 362 : else ; 363 : orstring[i] += 1; 0008c 8b 45 08 mov eax, DWORD PTR _orstring$[ebp] 0008f 03 45 f4 add eax, DWORD PTR _i$[ebp] 00092 0f be 08 movsx ecx, BYTE PTR [eax] 00095 83 c1 01 add ecx, 1 00098 8b 55 08 mov edx, DWORD PTR _orstring$[ebp] 0009b 03 55 f4 add edx, DWORD PTR _i$[ebp] 0009e 88 0a mov BYTE PTR [edx], cl $LN6@StringAddO: ; 364 : break; 000a0 eb 02 jmp SHORT $LN1@StringAddO ; 365 : } 000a2 eb 88 jmp SHORT $LN2@StringAddO $LN1@StringAddO: ; 366 : } 000a4 5f pop edi 000a5 5e pop esi 000a6 5b pop ebx 000a7 8b e5 mov esp, ebp 000a9 5d pop ebp 000aa c2 04 00 ret 4 ?StringAddOne@MD5_L@@QAEXPAD@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@@QAEXQAEPAU_MD5_CTX@1@@Z _TEXT SEGMENT tv77 = -92 ; size = 4 _padLen$ = -24 ; size = 4 _index$ = -20 ; size = 4 _bits$ = -16 ; size = 8 _this$ = -8 ; size = 4 __$ArrayPad$ = -4 ; size = 4 _digest$ = 8 ; size = 4 _context$ = 12 ; size = 4 ?MD5Final@MD5_L@@QAEXQAEPAU_MD5_CTX@1@@Z PROC ; MD5_L::MD5Final, COMDAT ; _this$ = ecx ; 75 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 5c sub esp, 92 ; 0000005cH 00006 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0000b 33 c5 xor eax, ebp 0000d 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax 00010 53 push ebx 00011 56 push esi 00012 57 push edi 00013 89 4d f8 mov DWORD PTR _this$[ebp], ecx ; 76 : unsigned char bits[8]; ; 77 : unsigned int index, padLen; ; 78 : ; 79 : /* Save number of bits */ ; 80 : Encode (bits, context->count, 8); 00016 6a 08 push 8 00018 8b 45 0c mov eax, DWORD PTR _context$[ebp] 0001b 83 c0 10 add eax, 16 ; 00000010H 0001e 50 push eax 0001f 8d 4d f0 lea ecx, DWORD PTR _bits$[ebp] 00022 51 push ecx 00023 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00026 e8 00 00 00 00 call ?Encode@MD5_L@@QAEXPAEPAKI@Z ; MD5_L::Encode ; 81 : ; 82 : /* Pad out to 56 mod 64. ; 83 : */ ; 84 : index = (unsigned int)((context->count[0] >> 3) & 0x3f); 0002b b8 04 00 00 00 mov eax, 4 00030 6b c8 00 imul ecx, eax, 0 00033 8b 55 0c mov edx, DWORD PTR _context$[ebp] 00036 8b 44 0a 10 mov eax, DWORD PTR [edx+ecx+16] 0003a c1 e8 03 shr eax, 3 0003d 83 e0 3f and eax, 63 ; 0000003fH 00040 89 45 ec mov DWORD PTR _index$[ebp], eax ; 85 : padLen = (index < 56) ? (56 - index) : (120 - index); 00043 83 7d ec 38 cmp DWORD PTR _index$[ebp], 56 ; 00000038H 00047 73 0d jae SHORT $LN3@MD5Final 00049 b8 38 00 00 00 mov eax, 56 ; 00000038H 0004e 2b 45 ec sub eax, DWORD PTR _index$[ebp] 00051 89 45 a4 mov DWORD PTR tv77[ebp], eax 00054 eb 0b jmp SHORT $LN4@MD5Final $LN3@MD5Final: 00056 b9 78 00 00 00 mov ecx, 120 ; 00000078H 0005b 2b 4d ec sub ecx, DWORD PTR _index$[ebp] 0005e 89 4d a4 mov DWORD PTR tv77[ebp], ecx $LN4@MD5Final: 00061 8b 55 a4 mov edx, DWORD PTR tv77[ebp] 00064 89 55 e8 mov DWORD PTR _padLen$[ebp], edx ; 86 : MD5Update (context, PADDING, padLen); 00067 8b 45 e8 mov eax, DWORD PTR _padLen$[ebp] 0006a 50 push eax 0006b 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0006e 51 push ecx 0006f 8b 55 0c mov edx, DWORD PTR _context$[ebp] 00072 52 push edx 00073 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00076 e8 00 00 00 00 call ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update ; 87 : ; 88 : /* Append length (before padding) */ ; 89 : MD5Update (context, bits, 8); 0007b 6a 08 push 8 0007d 8d 45 f0 lea eax, DWORD PTR _bits$[ebp] 00080 50 push eax 00081 8b 4d 0c mov ecx, DWORD PTR _context$[ebp] 00084 51 push ecx 00085 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00088 e8 00 00 00 00 call ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z ; MD5_L::MD5Update ; 90 : ; 91 : /* Store state in digest */ ; 92 : Encode (digest, context->state, 16); 0008d 6a 10 push 16 ; 00000010H 0008f 8b 45 0c mov eax, DWORD PTR _context$[ebp] 00092 50 push eax 00093 8b 4d 08 mov ecx, DWORD PTR _digest$[ebp] 00096 51 push ecx 00097 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 0009a e8 00 00 00 00 call ?Encode@MD5_L@@QAEXPAEPAKI@Z ; MD5_L::Encode ; 93 : ; 94 : /* Zeroize sensitive information. ; 95 : */ ; 96 : MD5_memset ((POINTER)context, 0, sizeof (*context)); 0009f 6a 58 push 88 ; 00000058H 000a1 6a 00 push 0 000a3 8b 45 0c mov eax, DWORD PTR _context$[ebp] 000a6 50 push eax 000a7 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 000aa e8 00 00 00 00 call ?MD5_memset@MD5_L@@QAEXPAEHI@Z ; MD5_L::MD5_memset ; 97 : } 000af 5f pop edi 000b0 5e pop esi 000b1 5b pop ebx 000b2 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp] 000b5 33 cd xor ecx, ebp 000b7 e8 00 00 00 00 call @__security_check_cookie@4 000bc 8b e5 mov esp, ebp 000be 5d pop ebp 000bf c2 08 00 ret 8 ?MD5Final@MD5_L@@QAEXQAEPAU_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@@QAEXPAU_MD5_CTX@1@PAEI@Z _TEXT SEGMENT tv76 = -84 ; size = 4 _partLen$ = -16 ; size = 4 _index$ = -12 ; size = 4 _i$ = -8 ; size = 4 _this$ = -4 ; size = 4 _context$ = 8 ; size = 4 _input$ = 12 ; size = 4 _inputLen$ = 16 ; size = 4 ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@Z PROC ; MD5_L::MD5Update, COMDAT ; _this$ = ecx ; 33 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 54 sub esp, 84 ; 00000054H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 34 : unsigned int i, index, partLen; ; 35 : ; 36 : /* Compute number of bytes mod 64 */ ; 37 : index = (unsigned int)((context->count[0] >> 3) & 0x3F); 0000c b8 04 00 00 00 mov eax, 4 00011 6b c8 00 imul ecx, eax, 0 00014 8b 55 08 mov edx, DWORD PTR _context$[ebp] 00017 8b 44 0a 10 mov eax, DWORD PTR [edx+ecx+16] 0001b c1 e8 03 shr eax, 3 0001e 83 e0 3f and eax, 63 ; 0000003fH 00021 89 45 f4 mov DWORD PTR _index$[ebp], eax ; 38 : ; 39 : /* Update number of bits */ ; 40 : if ((context->count[0] += ((UINT4)inputLen << 3)) ; 41 : < ((UINT4)inputLen << 3)) 00024 8b 45 10 mov eax, DWORD PTR _inputLen$[ebp] 00027 c1 e0 03 shl eax, 3 0002a b9 04 00 00 00 mov ecx, 4 0002f 6b d1 00 imul edx, ecx, 0 00032 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 00035 8b 54 11 10 mov edx, DWORD PTR [ecx+edx+16] 00039 03 d0 add edx, eax 0003b 89 55 ac mov DWORD PTR tv76[ebp], edx 0003e b8 04 00 00 00 mov eax, 4 00043 6b c8 00 imul ecx, eax, 0 00046 8b 55 08 mov edx, DWORD PTR _context$[ebp] 00049 8b 45 ac mov eax, DWORD PTR tv76[ebp] 0004c 89 44 0a 10 mov DWORD PTR [edx+ecx+16], eax 00050 8b 4d 10 mov ecx, DWORD PTR _inputLen$[ebp] 00053 c1 e1 03 shl ecx, 3 00056 39 4d ac cmp DWORD PTR tv76[ebp], ecx 00059 73 21 jae SHORT $LN5@MD5Update ; 42 : context->count[1]++; 0005b b8 04 00 00 00 mov eax, 4 00060 c1 e0 00 shl eax, 0 00063 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 00066 8b 54 01 10 mov edx, DWORD PTR [ecx+eax+16] 0006a 83 c2 01 add edx, 1 0006d b8 04 00 00 00 mov eax, 4 00072 c1 e0 00 shl eax, 0 00075 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 00078 89 54 01 10 mov DWORD PTR [ecx+eax+16], edx $LN5@MD5Update: ; 43 : context->count[1] += ((UINT4)inputLen >> 29); 0007c 8b 45 10 mov eax, DWORD PTR _inputLen$[ebp] 0007f c1 e8 1d shr eax, 29 ; 0000001dH 00082 b9 04 00 00 00 mov ecx, 4 00087 c1 e1 00 shl ecx, 0 0008a 8b 55 08 mov edx, DWORD PTR _context$[ebp] 0008d 03 44 0a 10 add eax, DWORD PTR [edx+ecx+16] 00091 b9 04 00 00 00 mov ecx, 4 00096 c1 e1 00 shl ecx, 0 00099 8b 55 08 mov edx, DWORD PTR _context$[ebp] 0009c 89 44 0a 10 mov DWORD PTR [edx+ecx+16], eax ; 44 : ; 45 : partLen = 64 - index; 000a0 b8 40 00 00 00 mov eax, 64 ; 00000040H 000a5 2b 45 f4 sub eax, DWORD PTR _index$[ebp] 000a8 89 45 f0 mov DWORD PTR _partLen$[ebp], eax ; 46 : ; 47 : /* Transform as many times as possible. ; 48 : */ ; 49 : if (inputLen >= partLen) { 000ab 8b 45 10 mov eax, DWORD PTR _inputLen$[ebp] 000ae 3b 45 f0 cmp eax, DWORD PTR _partLen$[ebp] 000b1 72 68 jb SHORT $LN6@MD5Update ; 50 : MD5_memcpy 000b3 8b 45 f0 mov eax, DWORD PTR _partLen$[ebp] 000b6 50 push eax 000b7 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 000ba 51 push ecx 000bb 8b 55 f4 mov edx, DWORD PTR _index$[ebp] 000be 8b 45 08 mov eax, DWORD PTR _context$[ebp] 000c1 8d 4c 10 18 lea ecx, DWORD PTR [eax+edx+24] 000c5 51 push ecx 000c6 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 000c9 e8 00 00 00 00 call ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z ; MD5_L::MD5_memcpy ; 51 : ((POINTER)&context->buffer[index], (POINTER)input, partLen); ; 52 : MD5Transform (context->state, context->buffer); 000ce 8b 45 08 mov eax, DWORD PTR _context$[ebp] 000d1 83 c0 18 add eax, 24 ; 00000018H 000d4 50 push eax 000d5 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 000d8 51 push ecx 000d9 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 000dc e8 00 00 00 00 call ?MD5Transform@MD5_L@@QAEXQAKQAE@Z ; MD5_L::MD5Transform ; 53 : ; 54 : for (i = partLen; i + 63 < inputLen; i += 64) 000e1 8b 45 f0 mov eax, DWORD PTR _partLen$[ebp] 000e4 89 45 f8 mov DWORD PTR _i$[ebp], eax 000e7 eb 09 jmp SHORT $LN4@MD5Update $LN2@MD5Update: 000e9 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 000ec 83 c0 40 add eax, 64 ; 00000040H 000ef 89 45 f8 mov DWORD PTR _i$[ebp], eax $LN4@MD5Update: 000f2 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 000f5 83 c0 3f add eax, 63 ; 0000003fH 000f8 3b 45 10 cmp eax, DWORD PTR _inputLen$[ebp] 000fb 73 15 jae SHORT $LN3@MD5Update ; 55 : MD5Transform (context->state, &input[i]); 000fd 8b 45 0c mov eax, DWORD PTR _input$[ebp] 00100 03 45 f8 add eax, DWORD PTR _i$[ebp] 00103 50 push eax 00104 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 00107 51 push ecx 00108 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0010b e8 00 00 00 00 call ?MD5Transform@MD5_L@@QAEXQAKQAE@Z ; MD5_L::MD5Transform 00110 eb d7 jmp SHORT $LN2@MD5Update $LN3@MD5Update: ; 56 : ; 57 : index = 0; 00112 c7 45 f4 00 00 00 00 mov DWORD PTR _index$[ebp], 0 ; 58 : } 00119 eb 07 jmp SHORT $LN7@MD5Update $LN6@MD5Update: ; 59 : else ; 60 : i = 0; 0011b c7 45 f8 00 00 00 00 mov DWORD PTR _i$[ebp], 0 $LN7@MD5Update: ; 61 : ; 62 : /* Buffer remaining input */ ; 63 : MD5_memcpy 00122 8b 45 10 mov eax, DWORD PTR _inputLen$[ebp] 00125 2b 45 f8 sub eax, DWORD PTR _i$[ebp] 00128 50 push eax 00129 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 0012c 03 4d f8 add ecx, DWORD PTR _i$[ebp] 0012f 51 push ecx 00130 8b 55 f4 mov edx, DWORD PTR _index$[ebp] 00133 8b 45 08 mov eax, DWORD PTR _context$[ebp] 00136 8d 4c 10 18 lea ecx, DWORD PTR [eax+edx+24] 0013a 51 push ecx 0013b 8b 4d fc mov ecx, DWORD PTR _this$[ebp] 0013e e8 00 00 00 00 call ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z ; MD5_L::MD5_memcpy ; 64 : ((POINTER)&context->buffer[index], (POINTER)&input[i], ; 65 : inputLen-i); ; 66 : } 00143 5f pop edi 00144 5e pop esi 00145 5b pop ebx 00146 8b e5 mov esp, ebp 00148 5d pop ebp 00149 c2 0c 00 ret 12 ; 0000000cH ?MD5Update@MD5_L@@QAEXPAU_MD5_CTX@1@PAEI@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@@QAEXPAU_MD5_CTX@1@@Z _TEXT SEGMENT _this$ = -4 ; size = 4 _context$ = 8 ; size = 4 ?MD5Init@MD5_L@@QAEXPAU_MD5_CTX@1@@Z PROC ; MD5_L::MD5Init, COMDAT ; _this$ = ecx ; 14 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 15 : context->count[0] = context->count[1] = 0; 0000c b8 04 00 00 00 mov eax, 4 00011 c1 e0 00 shl eax, 0 00014 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 00017 c7 44 01 10 00 00 00 00 mov DWORD PTR [ecx+eax+16], 0 0001f ba 04 00 00 00 mov edx, 4 00024 6b c2 00 imul eax, edx, 0 00027 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 0002a c7 44 01 10 00 00 00 00 mov DWORD PTR [ecx+eax+16], 0 ; 16 : /* Load magic initialization constants. ; 17 : */ ; 18 : context->state[0] = 0x67452301; 00032 b8 04 00 00 00 mov eax, 4 00037 6b c8 00 imul ecx, eax, 0 0003a 8b 55 08 mov edx, DWORD PTR _context$[ebp] 0003d c7 04 0a 01 23 45 67 mov DWORD PTR [edx+ecx], 1732584193 ; 67452301H ; 19 : context->state[1] = 0xefcdab89; 00044 b8 04 00 00 00 mov eax, 4 00049 c1 e0 00 shl eax, 0 0004c 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 0004f c7 04 01 89 ab cd ef mov DWORD PTR [ecx+eax], -271733879 ; efcdab89H ; 20 : context->state[2] = 0x98badcfe; 00056 b8 04 00 00 00 mov eax, 4 0005b d1 e0 shl eax, 1 0005d 8b 4d 08 mov ecx, DWORD PTR _context$[ebp] 00060 c7 04 01 fe dc ba 98 mov DWORD PTR [ecx+eax], -1732584194 ; 98badcfeH ; 21 : context->state[3] = 0x10325476; 00067 b8 04 00 00 00 mov eax, 4 0006c 6b c8 03 imul ecx, eax, 3 0006f 8b 55 08 mov edx, DWORD PTR _context$[ebp] 00072 c7 04 0a 76 54 32 10 mov DWORD PTR [edx+ecx], 271733878 ; 10325476H ; 22 : } 00079 5f pop edi 0007a 5e pop esi 0007b 5b pop ebx 0007c 8b e5 mov esp, ebp 0007e 5d pop ebp 0007f c2 04 00 ret 4 ?MD5Init@MD5_L@@QAEXPAU_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@@QAEXPAEHI@Z _TEXT SEGMENT _i$ = -8 ; size = 4 _this$ = -4 ; size = 4 _output$ = 8 ; size = 4 _value$ = 12 ; size = 4 _len$ = 16 ; size = 4 ?MD5_memset@MD5_L@@QAEXPAEHI@Z PROC ; MD5_L::MD5_memset, COMDAT ; _this$ = ecx ; 248 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 249 : unsigned int i; ; 250 : ; 251 : for (i = 0; i < len; i++) 0000c c7 45 f8 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00013 eb 09 jmp SHORT $LN4@MD5_memset $LN2@MD5_memset: 00015 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00018 83 c0 01 add eax, 1 0001b 89 45 f8 mov DWORD PTR _i$[ebp], eax $LN4@MD5_memset: 0001e 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00021 3b 45 10 cmp eax, DWORD PTR _len$[ebp] 00024 73 0d jae SHORT $LN1@MD5_memset ; 252 : ((char *)output)[i] = (char)value; 00026 8b 45 08 mov eax, DWORD PTR _output$[ebp] 00029 03 45 f8 add eax, DWORD PTR _i$[ebp] 0002c 8a 4d 0c mov cl, BYTE PTR _value$[ebp] 0002f 88 08 mov BYTE PTR [eax], cl 00031 eb e2 jmp SHORT $LN2@MD5_memset $LN1@MD5_memset: ; 253 : } 00033 5f pop edi 00034 5e pop esi 00035 5b pop ebx 00036 8b e5 mov esp, ebp 00038 5d pop ebp 00039 c2 0c 00 ret 12 ; 0000000cH ?MD5_memset@MD5_L@@QAEXPAEHI@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@@QAEXPAE0I@Z _TEXT SEGMENT _i$ = -8 ; size = 4 _this$ = -4 ; size = 4 _output$ = 8 ; size = 4 _input$ = 12 ; size = 4 _len$ = 16 ; size = 4 ?MD5_memcpy@MD5_L@@QAEXPAE0I@Z PROC ; MD5_L::MD5_memcpy, COMDAT ; _this$ = ecx ; 234 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 235 : unsigned int i; ; 236 : ; 237 : for (i = 0; i < len; i++) 0000c c7 45 f8 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00013 eb 09 jmp SHORT $LN4@MD5_memcpy $LN2@MD5_memcpy: 00015 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00018 83 c0 01 add eax, 1 0001b 89 45 f8 mov DWORD PTR _i$[ebp], eax $LN4@MD5_memcpy: 0001e 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00021 3b 45 10 cmp eax, DWORD PTR _len$[ebp] 00024 73 12 jae SHORT $LN1@MD5_memcpy ; 238 : output[i] = input[i]; 00026 8b 45 08 mov eax, DWORD PTR _output$[ebp] 00029 03 45 f8 add eax, DWORD PTR _i$[ebp] 0002c 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 0002f 03 4d f8 add ecx, DWORD PTR _i$[ebp] 00032 8a 11 mov dl, BYTE PTR [ecx] 00034 88 10 mov BYTE PTR [eax], dl 00036 eb dd jmp SHORT $LN2@MD5_memcpy $LN1@MD5_memcpy: ; 239 : } 00038 5f pop edi 00039 5e pop esi 0003a 5b pop ebx 0003b 8b e5 mov esp, ebp 0003d 5d pop ebp 0003e c2 0c 00 ret 12 ; 0000000cH ?MD5_memcpy@MD5_L@@QAEXPAE0I@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@@QAEXPAKPAEI@Z _TEXT SEGMENT _j$ = -12 ; size = 4 _i$ = -8 ; size = 4 _this$ = -4 ; size = 4 _output$ = 8 ; size = 4 _input$ = 12 ; size = 4 _len$ = 16 ; size = 4 ?Decode@MD5_L@@QAEXPAKPAEI@Z PROC ; MD5_L::Decode, COMDAT ; _this$ = ecx ; 219 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 220 : unsigned int i, j; ; 221 : ; 222 : for (i = 0, j = 0; j < len; i++, j += 4) 0000c c7 45 f8 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00013 c7 45 f4 00 00 00 00 mov DWORD PTR _j$[ebp], 0 0001a eb 12 jmp SHORT $LN4@Decode $LN2@Decode: 0001c 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 0001f 83 c0 01 add eax, 1 00022 89 45 f8 mov DWORD PTR _i$[ebp], eax 00025 8b 4d f4 mov ecx, DWORD PTR _j$[ebp] 00028 83 c1 04 add ecx, 4 0002b 89 4d f4 mov DWORD PTR _j$[ebp], ecx $LN4@Decode: 0002e 8b 45 f4 mov eax, DWORD PTR _j$[ebp] 00031 3b 45 10 cmp eax, DWORD PTR _len$[ebp] 00034 73 41 jae SHORT $LN1@Decode ; 223 : output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) | 00036 8b 45 0c mov eax, DWORD PTR _input$[ebp] 00039 03 45 f4 add eax, DWORD PTR _j$[ebp] 0003c 0f b6 08 movzx ecx, BYTE PTR [eax] 0003f 8b 55 0c mov edx, DWORD PTR _input$[ebp] 00042 03 55 f4 add edx, DWORD PTR _j$[ebp] 00045 0f b6 42 01 movzx eax, BYTE PTR [edx+1] 00049 c1 e0 08 shl eax, 8 0004c 0b c8 or ecx, eax 0004e 8b 55 0c mov edx, DWORD PTR _input$[ebp] 00051 03 55 f4 add edx, DWORD PTR _j$[ebp] 00054 0f b6 42 02 movzx eax, BYTE PTR [edx+2] 00058 c1 e0 10 shl eax, 16 ; 00000010H 0005b 0b c8 or ecx, eax 0005d 8b 55 0c mov edx, DWORD PTR _input$[ebp] 00060 03 55 f4 add edx, DWORD PTR _j$[ebp] 00063 0f b6 42 03 movzx eax, BYTE PTR [edx+3] 00067 c1 e0 18 shl eax, 24 ; 00000018H 0006a 0b c8 or ecx, eax 0006c 8b 55 f8 mov edx, DWORD PTR _i$[ebp] 0006f 8b 45 08 mov eax, DWORD PTR _output$[ebp] 00072 89 0c 90 mov DWORD PTR [eax+edx*4], ecx 00075 eb a5 jmp SHORT $LN2@Decode $LN1@Decode: ; 224 : (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); ; 225 : } 00077 5f pop edi 00078 5e pop esi 00079 5b pop ebx 0007a 8b e5 mov esp, ebp 0007c 5d pop ebp 0007d c2 0c 00 ret 12 ; 0000000cH ?Decode@MD5_L@@QAEXPAKPAEI@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@@QAEXPAEPAKI@Z _TEXT SEGMENT _j$ = -12 ; size = 4 _i$ = -8 ; size = 4 _this$ = -4 ; size = 4 _output$ = 8 ; size = 4 _input$ = 12 ; size = 4 _len$ = 16 ; size = 4 ?Encode@MD5_L@@QAEXPAEPAKI@Z PROC ; MD5_L::Encode, COMDAT ; _this$ = ecx ; 200 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 89 4d fc mov DWORD PTR _this$[ebp], ecx ; 201 : unsigned int i, j; ; 202 : ; 203 : for (i = 0, j = 0; j < len; i++, j += 4) { 0000c c7 45 f8 00 00 00 00 mov DWORD PTR _i$[ebp], 0 00013 c7 45 f4 00 00 00 00 mov DWORD PTR _j$[ebp], 0 0001a eb 12 jmp SHORT $LN4@Encode $LN2@Encode: 0001c 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 0001f 83 c0 01 add eax, 1 00022 89 45 f8 mov DWORD PTR _i$[ebp], eax 00025 8b 4d f4 mov ecx, DWORD PTR _j$[ebp] 00028 83 c1 04 add ecx, 4 0002b 89 4d f4 mov DWORD PTR _j$[ebp], ecx $LN4@Encode: 0002e 8b 45 f4 mov eax, DWORD PTR _j$[ebp] 00031 3b 45 10 cmp eax, DWORD PTR _len$[ebp] 00034 73 6d jae SHORT $LN1@Encode ; 204 : output[j] = (unsigned char)(input[i] & 0xff); 00036 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00039 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 0003c 8b 14 81 mov edx, DWORD PTR [ecx+eax*4] 0003f 81 e2 ff 00 00 00 and edx, 255 ; 000000ffH 00045 8b 45 08 mov eax, DWORD PTR _output$[ebp] 00048 03 45 f4 add eax, DWORD PTR _j$[ebp] 0004b 88 10 mov BYTE PTR [eax], dl ; 205 : output[j+1] = (unsigned char)((input[i] >> 8) & 0xff); 0004d 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00050 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 00053 8b 14 81 mov edx, DWORD PTR [ecx+eax*4] 00056 c1 ea 08 shr edx, 8 00059 81 e2 ff 00 00 00 and edx, 255 ; 000000ffH 0005f 8b 45 08 mov eax, DWORD PTR _output$[ebp] 00062 03 45 f4 add eax, DWORD PTR _j$[ebp] 00065 88 50 01 mov BYTE PTR [eax+1], dl ; 206 : output[j+2] = (unsigned char)((input[i] >> 16) & 0xff); 00068 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 0006b 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 0006e 8b 14 81 mov edx, DWORD PTR [ecx+eax*4] 00071 c1 ea 10 shr edx, 16 ; 00000010H 00074 81 e2 ff 00 00 00 and edx, 255 ; 000000ffH 0007a 8b 45 08 mov eax, DWORD PTR _output$[ebp] 0007d 03 45 f4 add eax, DWORD PTR _j$[ebp] 00080 88 50 02 mov BYTE PTR [eax+2], dl ; 207 : output[j+3] = (unsigned char)((input[i] >> 24) & 0xff); 00083 8b 45 f8 mov eax, DWORD PTR _i$[ebp] 00086 8b 4d 0c mov ecx, DWORD PTR _input$[ebp] 00089 8b 14 81 mov edx, DWORD PTR [ecx+eax*4] 0008c c1 ea 18 shr edx, 24 ; 00000018H 0008f 81 e2 ff 00 00 00 and edx, 255 ; 000000ffH 00095 8b 45 08 mov eax, DWORD PTR _output$[ebp] 00098 03 45 f4 add eax, DWORD PTR _j$[ebp] 0009b 88 50 03 mov BYTE PTR [eax+3], dl ; 208 : } 0009e e9 79 ff ff ff jmp $LN2@Encode $LN1@Encode: ; 209 : } 000a3 5f pop edi 000a4 5e pop esi 000a5 5b pop ebx 000a6 8b e5 mov esp, ebp 000a8 5d pop ebp 000a9 c2 0c 00 ret 12 ; 0000000cH ?Encode@MD5_L@@QAEXPAEPAKI@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@@QAEXQAKQAE@Z _TEXT SEGMENT _x$ = -88 ; size = 64 _d$ = -24 ; size = 4 _c$ = -20 ; size = 4 _b$ = -16 ; size = 4 _a$ = -12 ; size = 4 _this$ = -8 ; size = 4 __$ArrayPad$ = -4 ; size = 4 _state$ = 8 ; size = 4 _block$ = 12 ; size = 4 ?MD5Transform@MD5_L@@QAEXQAKQAE@Z PROC ; MD5_L::MD5Transform, COMDAT ; _this$ = ecx ; 105 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 81 ec 98 00 00 00 sub esp, 152 ; 00000098H 00009 a1 00 00 00 00 mov eax, DWORD PTR ___security_cookie 0000e 33 c5 xor eax, ebp 00010 89 45 fc mov DWORD PTR __$ArrayPad$[ebp], eax 00013 53 push ebx 00014 56 push esi 00015 57 push edi 00016 89 4d f8 mov DWORD PTR _this$[ebp], ecx ; 106 : UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; 00019 b8 04 00 00 00 mov eax, 4 0001e 6b c8 00 imul ecx, eax, 0 00021 8b 55 08 mov edx, DWORD PTR _state$[ebp] 00024 8b 04 0a mov eax, DWORD PTR [edx+ecx] 00027 89 45 f4 mov DWORD PTR _a$[ebp], eax 0002a b8 04 00 00 00 mov eax, 4 0002f c1 e0 00 shl eax, 0 00032 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 00035 8b 14 01 mov edx, DWORD PTR [ecx+eax] 00038 89 55 f0 mov DWORD PTR _b$[ebp], edx 0003b b8 04 00 00 00 mov eax, 4 00040 d1 e0 shl eax, 1 00042 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 00045 8b 14 01 mov edx, DWORD PTR [ecx+eax] 00048 89 55 ec mov DWORD PTR _c$[ebp], edx 0004b b8 04 00 00 00 mov eax, 4 00050 6b c8 03 imul ecx, eax, 3 00053 8b 55 08 mov edx, DWORD PTR _state$[ebp] 00056 8b 04 0a mov eax, DWORD PTR [edx+ecx] 00059 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 107 : ; 108 : Decode (x, block, 64); 0005c 6a 40 push 64 ; 00000040H 0005e 8b 45 0c mov eax, DWORD PTR _block$[ebp] 00061 50 push eax 00062 8d 4d a8 lea ecx, DWORD PTR _x$[ebp] 00065 51 push ecx 00066 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 00069 e8 00 00 00 00 call ?Decode@MD5_L@@QAEXPAKPAEI@Z ; MD5_L::Decode ; 109 : ; 110 : /* Round 1 */ ; 111 : FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */ 0006e 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00071 23 45 ec and eax, DWORD PTR _c$[ebp] 00074 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00077 f7 d1 not ecx 00079 23 4d e8 and ecx, DWORD PTR _d$[ebp] 0007c 0b c1 or eax, ecx 0007e ba 04 00 00 00 mov edx, 4 00083 6b ca 00 imul ecx, edx, 0 00086 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0008a 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 0008d 8d 84 02 78 a4 6a d7 lea eax, DWORD PTR [edx+eax-680876936] 00094 89 45 f4 mov DWORD PTR _a$[ebp], eax 00097 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 0009a c1 e0 07 shl eax, 7 0009d 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 000a0 c1 e9 19 shr ecx, 25 ; 00000019H 000a3 0b c1 or eax, ecx 000a5 89 45 f4 mov DWORD PTR _a$[ebp], eax 000a8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 000ab 03 45 f0 add eax, DWORD PTR _b$[ebp] 000ae 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 112 : FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */ 000b1 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 000b4 23 45 f0 and eax, DWORD PTR _b$[ebp] 000b7 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 000ba f7 d1 not ecx 000bc 23 4d ec and ecx, DWORD PTR _c$[ebp] 000bf 0b c1 or eax, ecx 000c1 ba 04 00 00 00 mov edx, 4 000c6 c1 e2 00 shl edx, 0 000c9 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 000cd 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 000d0 8d 94 01 56 b7 c7 e8 lea edx, DWORD PTR [ecx+eax-389564586] 000d7 89 55 e8 mov DWORD PTR _d$[ebp], edx 000da 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 000dd c1 e0 0c shl eax, 12 ; 0000000cH 000e0 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 000e3 c1 e9 14 shr ecx, 20 ; 00000014H 000e6 0b c1 or eax, ecx 000e8 89 45 e8 mov DWORD PTR _d$[ebp], eax 000eb 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 000ee 03 45 f4 add eax, DWORD PTR _a$[ebp] 000f1 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 113 : FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */ 000f4 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 000f7 23 45 f4 and eax, DWORD PTR _a$[ebp] 000fa 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 000fd f7 d1 not ecx 000ff 23 4d f0 and ecx, DWORD PTR _b$[ebp] 00102 0b c1 or eax, ecx 00104 ba 04 00 00 00 mov edx, 4 00109 d1 e2 shl edx, 1 0010b 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 0010f 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00112 8d 94 01 db 70 20 24 lea edx, DWORD PTR [ecx+eax+606105819] 00119 89 55 ec mov DWORD PTR _c$[ebp], edx 0011c 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0011f c1 e0 11 shl eax, 17 ; 00000011H 00122 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00125 c1 e9 0f shr ecx, 15 ; 0000000fH 00128 0b c1 or eax, ecx 0012a 89 45 ec mov DWORD PTR _c$[ebp], eax 0012d 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00130 03 45 e8 add eax, DWORD PTR _d$[ebp] 00133 89 45 ec mov DWORD PTR _c$[ebp], eax ; 114 : FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */ 00136 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00139 23 45 e8 and eax, DWORD PTR _d$[ebp] 0013c 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0013f f7 d1 not ecx 00141 23 4d f4 and ecx, DWORD PTR _a$[ebp] 00144 0b c1 or eax, ecx 00146 ba 04 00 00 00 mov edx, 4 0014b 6b ca 03 imul ecx, edx, 3 0014e 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00152 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 00155 8d 84 02 ee ce bd c1 lea eax, DWORD PTR [edx+eax-1044525330] 0015c 89 45 f0 mov DWORD PTR _b$[ebp], eax 0015f 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00162 c1 e0 16 shl eax, 22 ; 00000016H 00165 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00168 c1 e9 0a shr ecx, 10 ; 0000000aH 0016b 0b c1 or eax, ecx 0016d 89 45 f0 mov DWORD PTR _b$[ebp], eax 00170 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00173 03 45 ec add eax, DWORD PTR _c$[ebp] 00176 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 115 : FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */ 00179 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 0017c 23 45 ec and eax, DWORD PTR _c$[ebp] 0017f 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00182 f7 d1 not ecx 00184 23 4d e8 and ecx, DWORD PTR _d$[ebp] 00187 0b c1 or eax, ecx 00189 ba 04 00 00 00 mov edx, 4 0018e c1 e2 02 shl edx, 2 00191 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00195 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00198 8d 94 01 af 0f 7c f5 lea edx, DWORD PTR [ecx+eax-176418897] 0019f 89 55 f4 mov DWORD PTR _a$[ebp], edx 001a2 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 001a5 c1 e0 07 shl eax, 7 001a8 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 001ab c1 e9 19 shr ecx, 25 ; 00000019H 001ae 0b c1 or eax, ecx 001b0 89 45 f4 mov DWORD PTR _a$[ebp], eax 001b3 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 001b6 03 45 f0 add eax, DWORD PTR _b$[ebp] 001b9 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 116 : FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */ 001bc 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 001bf 23 45 f0 and eax, DWORD PTR _b$[ebp] 001c2 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 001c5 f7 d1 not ecx 001c7 23 4d ec and ecx, DWORD PTR _c$[ebp] 001ca 0b c1 or eax, ecx 001cc ba 04 00 00 00 mov edx, 4 001d1 6b ca 05 imul ecx, edx, 5 001d4 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 001d8 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 001db 8d 84 02 2a c6 87 47 lea eax, DWORD PTR [edx+eax+1200080426] 001e2 89 45 e8 mov DWORD PTR _d$[ebp], eax 001e5 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 001e8 c1 e0 0c shl eax, 12 ; 0000000cH 001eb 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 001ee c1 e9 14 shr ecx, 20 ; 00000014H 001f1 0b c1 or eax, ecx 001f3 89 45 e8 mov DWORD PTR _d$[ebp], eax 001f6 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 001f9 03 45 f4 add eax, DWORD PTR _a$[ebp] 001fc 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 117 : FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */ 001ff 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00202 23 45 f4 and eax, DWORD PTR _a$[ebp] 00205 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00208 f7 d1 not ecx 0020a 23 4d f0 and ecx, DWORD PTR _b$[ebp] 0020d 0b c1 or eax, ecx 0020f ba 04 00 00 00 mov edx, 4 00214 6b ca 06 imul ecx, edx, 6 00217 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0021b 8b 55 ec mov edx, DWORD PTR _c$[ebp] 0021e 8d 84 02 13 46 30 a8 lea eax, DWORD PTR [edx+eax-1473231341] 00225 89 45 ec mov DWORD PTR _c$[ebp], eax 00228 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0022b c1 e0 11 shl eax, 17 ; 00000011H 0022e 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00231 c1 e9 0f shr ecx, 15 ; 0000000fH 00234 0b c1 or eax, ecx 00236 89 45 ec mov DWORD PTR _c$[ebp], eax 00239 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0023c 03 45 e8 add eax, DWORD PTR _d$[ebp] 0023f 89 45 ec mov DWORD PTR _c$[ebp], eax ; 118 : FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */ 00242 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00245 23 45 e8 and eax, DWORD PTR _d$[ebp] 00248 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0024b f7 d1 not ecx 0024d 23 4d f4 and ecx, DWORD PTR _a$[ebp] 00250 0b c1 or eax, ecx 00252 ba 04 00 00 00 mov edx, 4 00257 6b ca 07 imul ecx, edx, 7 0025a 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0025e 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 00261 8d 84 02 01 95 46 fd lea eax, DWORD PTR [edx+eax-45705983] 00268 89 45 f0 mov DWORD PTR _b$[ebp], eax 0026b 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 0026e c1 e0 16 shl eax, 22 ; 00000016H 00271 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00274 c1 e9 0a shr ecx, 10 ; 0000000aH 00277 0b c1 or eax, ecx 00279 89 45 f0 mov DWORD PTR _b$[ebp], eax 0027c 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 0027f 03 45 ec add eax, DWORD PTR _c$[ebp] 00282 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 119 : FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */ 00285 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00288 23 45 ec and eax, DWORD PTR _c$[ebp] 0028b 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 0028e f7 d1 not ecx 00290 23 4d e8 and ecx, DWORD PTR _d$[ebp] 00293 0b c1 or eax, ecx 00295 ba 04 00 00 00 mov edx, 4 0029a c1 e2 03 shl edx, 3 0029d 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 002a1 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 002a4 8d 94 01 d8 98 80 69 lea edx, DWORD PTR [ecx+eax+1770035416] 002ab 89 55 f4 mov DWORD PTR _a$[ebp], edx 002ae 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 002b1 c1 e0 07 shl eax, 7 002b4 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 002b7 c1 e9 19 shr ecx, 25 ; 00000019H 002ba 0b c1 or eax, ecx 002bc 89 45 f4 mov DWORD PTR _a$[ebp], eax 002bf 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 002c2 03 45 f0 add eax, DWORD PTR _b$[ebp] 002c5 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 120 : FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */ 002c8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 002cb 23 45 f0 and eax, DWORD PTR _b$[ebp] 002ce 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 002d1 f7 d1 not ecx 002d3 23 4d ec and ecx, DWORD PTR _c$[ebp] 002d6 0b c1 or eax, ecx 002d8 ba 04 00 00 00 mov edx, 4 002dd 6b ca 09 imul ecx, edx, 9 002e0 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 002e4 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 002e7 8d 84 02 af f7 44 8b lea eax, DWORD PTR [edx+eax-1958414417] 002ee 89 45 e8 mov DWORD PTR _d$[ebp], eax 002f1 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 002f4 c1 e0 0c shl eax, 12 ; 0000000cH 002f7 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 002fa c1 e9 14 shr ecx, 20 ; 00000014H 002fd 0b c1 or eax, ecx 002ff 89 45 e8 mov DWORD PTR _d$[ebp], eax 00302 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00305 03 45 f4 add eax, DWORD PTR _a$[ebp] 00308 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 121 : FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */ 0030b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0030e 23 45 f4 and eax, DWORD PTR _a$[ebp] 00311 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00314 f7 d1 not ecx 00316 23 4d f0 and ecx, DWORD PTR _b$[ebp] 00319 0b c1 or eax, ecx 0031b ba 04 00 00 00 mov edx, 4 00320 6b ca 0a imul ecx, edx, 10 00323 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00327 8b 55 ec mov edx, DWORD PTR _c$[ebp] 0032a 8d 84 02 b1 5b ff ff lea eax, DWORD PTR [edx+eax-42063] 00331 89 45 ec mov DWORD PTR _c$[ebp], eax 00334 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00337 c1 e0 11 shl eax, 17 ; 00000011H 0033a 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0033d c1 e9 0f shr ecx, 15 ; 0000000fH 00340 0b c1 or eax, ecx 00342 89 45 ec mov DWORD PTR _c$[ebp], eax 00345 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00348 03 45 e8 add eax, DWORD PTR _d$[ebp] 0034b 89 45 ec mov DWORD PTR _c$[ebp], eax ; 122 : FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */ 0034e 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00351 23 45 e8 and eax, DWORD PTR _d$[ebp] 00354 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00357 f7 d1 not ecx 00359 23 4d f4 and ecx, DWORD PTR _a$[ebp] 0035c 0b c1 or eax, ecx 0035e ba 04 00 00 00 mov edx, 4 00363 6b ca 0b imul ecx, edx, 11 00366 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0036a 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 0036d 8d 84 02 be d7 5c 89 lea eax, DWORD PTR [edx+eax-1990404162] 00374 89 45 f0 mov DWORD PTR _b$[ebp], eax 00377 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 0037a c1 e0 16 shl eax, 22 ; 00000016H 0037d 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00380 c1 e9 0a shr ecx, 10 ; 0000000aH 00383 0b c1 or eax, ecx 00385 89 45 f0 mov DWORD PTR _b$[ebp], eax 00388 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 0038b 03 45 ec add eax, DWORD PTR _c$[ebp] 0038e 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 123 : FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */ 00391 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00394 23 45 ec and eax, DWORD PTR _c$[ebp] 00397 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 0039a f7 d1 not ecx 0039c 23 4d e8 and ecx, DWORD PTR _d$[ebp] 0039f 0b c1 or eax, ecx 003a1 ba 04 00 00 00 mov edx, 4 003a6 6b ca 0c imul ecx, edx, 12 003a9 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 003ad 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 003b0 8d 84 02 22 11 90 6b lea eax, DWORD PTR [edx+eax+1804603682] 003b7 89 45 f4 mov DWORD PTR _a$[ebp], eax 003ba 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 003bd c1 e0 07 shl eax, 7 003c0 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 003c3 c1 e9 19 shr ecx, 25 ; 00000019H 003c6 0b c1 or eax, ecx 003c8 89 45 f4 mov DWORD PTR _a$[ebp], eax 003cb 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 003ce 03 45 f0 add eax, DWORD PTR _b$[ebp] 003d1 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 124 : FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */ 003d4 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 003d7 23 45 f0 and eax, DWORD PTR _b$[ebp] 003da 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 003dd f7 d1 not ecx 003df 23 4d ec and ecx, DWORD PTR _c$[ebp] 003e2 0b c1 or eax, ecx 003e4 ba 04 00 00 00 mov edx, 4 003e9 6b ca 0d imul ecx, edx, 13 003ec 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 003f0 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 003f3 8d 84 02 93 71 98 fd lea eax, DWORD PTR [edx+eax-40341101] 003fa 89 45 e8 mov DWORD PTR _d$[ebp], eax 003fd 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00400 c1 e0 0c shl eax, 12 ; 0000000cH 00403 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00406 c1 e9 14 shr ecx, 20 ; 00000014H 00409 0b c1 or eax, ecx 0040b 89 45 e8 mov DWORD PTR _d$[ebp], eax 0040e 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00411 03 45 f4 add eax, DWORD PTR _a$[ebp] 00414 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 125 : FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */ 00417 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0041a 23 45 f4 and eax, DWORD PTR _a$[ebp] 0041d 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00420 f7 d1 not ecx 00422 23 4d f0 and ecx, DWORD PTR _b$[ebp] 00425 0b c1 or eax, ecx 00427 ba 04 00 00 00 mov edx, 4 0042c 6b ca 0e imul ecx, edx, 14 0042f 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00433 8b 55 ec mov edx, DWORD PTR _c$[ebp] 00436 8d 84 02 8e 43 79 a6 lea eax, DWORD PTR [edx+eax-1502002290] 0043d 89 45 ec mov DWORD PTR _c$[ebp], eax 00440 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00443 c1 e0 11 shl eax, 17 ; 00000011H 00446 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00449 c1 e9 0f shr ecx, 15 ; 0000000fH 0044c 0b c1 or eax, ecx 0044e 89 45 ec mov DWORD PTR _c$[ebp], eax 00451 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00454 03 45 e8 add eax, DWORD PTR _d$[ebp] 00457 89 45 ec mov DWORD PTR _c$[ebp], eax ; 126 : FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */ 0045a 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0045d 23 45 e8 and eax, DWORD PTR _d$[ebp] 00460 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00463 f7 d1 not ecx 00465 23 4d f4 and ecx, DWORD PTR _a$[ebp] 00468 0b c1 or eax, ecx 0046a ba 04 00 00 00 mov edx, 4 0046f 6b ca 0f imul ecx, edx, 15 00472 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00476 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 00479 8d 84 02 21 08 b4 49 lea eax, DWORD PTR [edx+eax+1236535329] 00480 89 45 f0 mov DWORD PTR _b$[ebp], eax 00483 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00486 c1 e0 16 shl eax, 22 ; 00000016H 00489 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 0048c c1 e9 0a shr ecx, 10 ; 0000000aH 0048f 0b c1 or eax, ecx 00491 89 45 f0 mov DWORD PTR _b$[ebp], eax 00494 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00497 03 45 ec add eax, DWORD PTR _c$[ebp] 0049a 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 127 : ; 128 : /* Round 2 */ ; 129 : GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */ 0049d 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 004a0 23 45 e8 and eax, DWORD PTR _d$[ebp] 004a3 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 004a6 f7 d1 not ecx 004a8 23 4d ec and ecx, DWORD PTR _c$[ebp] 004ab 0b c1 or eax, ecx 004ad ba 04 00 00 00 mov edx, 4 004b2 c1 e2 00 shl edx, 0 004b5 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 004b9 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 004bc 8d 94 01 62 25 1e f6 lea edx, DWORD PTR [ecx+eax-165796510] 004c3 89 55 f4 mov DWORD PTR _a$[ebp], edx 004c6 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 004c9 c1 e0 05 shl eax, 5 004cc 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 004cf c1 e9 1b shr ecx, 27 ; 0000001bH 004d2 0b c1 or eax, ecx 004d4 89 45 f4 mov DWORD PTR _a$[ebp], eax 004d7 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 004da 03 45 f0 add eax, DWORD PTR _b$[ebp] 004dd 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 130 : GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */ 004e0 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 004e3 23 45 ec and eax, DWORD PTR _c$[ebp] 004e6 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 004e9 f7 d1 not ecx 004eb 23 4d f0 and ecx, DWORD PTR _b$[ebp] 004ee 0b c1 or eax, ecx 004f0 ba 04 00 00 00 mov edx, 4 004f5 6b ca 06 imul ecx, edx, 6 004f8 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 004fc 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 004ff 8d 84 02 40 b3 40 c0 lea eax, DWORD PTR [edx+eax-1069501632] 00506 89 45 e8 mov DWORD PTR _d$[ebp], eax 00509 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0050c c1 e0 09 shl eax, 9 0050f 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00512 c1 e9 17 shr ecx, 23 ; 00000017H 00515 0b c1 or eax, ecx 00517 89 45 e8 mov DWORD PTR _d$[ebp], eax 0051a 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0051d 03 45 f4 add eax, DWORD PTR _a$[ebp] 00520 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 131 : GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */ 00523 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00526 23 45 f0 and eax, DWORD PTR _b$[ebp] 00529 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 0052c f7 d1 not ecx 0052e 23 4d f4 and ecx, DWORD PTR _a$[ebp] 00531 0b c1 or eax, ecx 00533 ba 04 00 00 00 mov edx, 4 00538 6b ca 0b imul ecx, edx, 11 0053b 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0053f 8b 55 ec mov edx, DWORD PTR _c$[ebp] 00542 8d 84 02 51 5a 5e 26 lea eax, DWORD PTR [edx+eax+643717713] 00549 89 45 ec mov DWORD PTR _c$[ebp], eax 0054c 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0054f c1 e0 0e shl eax, 14 ; 0000000eH 00552 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00555 c1 e9 12 shr ecx, 18 ; 00000012H 00558 0b c1 or eax, ecx 0055a 89 45 ec mov DWORD PTR _c$[ebp], eax 0055d 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00560 03 45 e8 add eax, DWORD PTR _d$[ebp] 00563 89 45 ec mov DWORD PTR _c$[ebp], eax ; 132 : GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */ 00566 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00569 23 45 f4 and eax, DWORD PTR _a$[ebp] 0056c 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 0056f f7 d1 not ecx 00571 23 4d e8 and ecx, DWORD PTR _d$[ebp] 00574 0b c1 or eax, ecx 00576 ba 04 00 00 00 mov edx, 4 0057b 6b ca 00 imul ecx, edx, 0 0057e 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00582 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 00585 8d 84 02 aa c7 b6 e9 lea eax, DWORD PTR [edx+eax-373897302] 0058c 89 45 f0 mov DWORD PTR _b$[ebp], eax 0058f 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00592 c1 e0 14 shl eax, 20 ; 00000014H 00595 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00598 c1 e9 0c shr ecx, 12 ; 0000000cH 0059b 0b c1 or eax, ecx 0059d 89 45 f0 mov DWORD PTR _b$[ebp], eax 005a0 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 005a3 03 45 ec add eax, DWORD PTR _c$[ebp] 005a6 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 133 : GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */ 005a9 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 005ac 23 45 e8 and eax, DWORD PTR _d$[ebp] 005af 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 005b2 f7 d1 not ecx 005b4 23 4d ec and ecx, DWORD PTR _c$[ebp] 005b7 0b c1 or eax, ecx 005b9 ba 04 00 00 00 mov edx, 4 005be 6b ca 05 imul ecx, edx, 5 005c1 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 005c5 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 005c8 8d 84 02 5d 10 2f d6 lea eax, DWORD PTR [edx+eax-701558691] 005cf 89 45 f4 mov DWORD PTR _a$[ebp], eax 005d2 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 005d5 c1 e0 05 shl eax, 5 005d8 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 005db c1 e9 1b shr ecx, 27 ; 0000001bH 005de 0b c1 or eax, ecx 005e0 89 45 f4 mov DWORD PTR _a$[ebp], eax 005e3 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 005e6 03 45 f0 add eax, DWORD PTR _b$[ebp] 005e9 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 134 : GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */ 005ec 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 005ef 23 45 ec and eax, DWORD PTR _c$[ebp] 005f2 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 005f5 f7 d1 not ecx 005f7 23 4d f0 and ecx, DWORD PTR _b$[ebp] 005fa 0b c1 or eax, ecx 005fc ba 04 00 00 00 mov edx, 4 00601 6b ca 0a imul ecx, edx, 10 00604 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00608 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 0060b 8d 84 02 53 14 44 02 lea eax, DWORD PTR [edx+eax+38016083] 00612 89 45 e8 mov DWORD PTR _d$[ebp], eax 00615 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00618 c1 e0 09 shl eax, 9 0061b 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 0061e c1 e9 17 shr ecx, 23 ; 00000017H 00621 0b c1 or eax, ecx 00623 89 45 e8 mov DWORD PTR _d$[ebp], eax 00626 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00629 03 45 f4 add eax, DWORD PTR _a$[ebp] 0062c 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 135 : GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */ 0062f 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00632 23 45 f0 and eax, DWORD PTR _b$[ebp] 00635 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00638 f7 d1 not ecx 0063a 23 4d f4 and ecx, DWORD PTR _a$[ebp] 0063d 0b c1 or eax, ecx 0063f ba 04 00 00 00 mov edx, 4 00644 6b ca 0f imul ecx, edx, 15 00647 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0064b 8b 55 ec mov edx, DWORD PTR _c$[ebp] 0064e 8d 84 02 81 e6 a1 d8 lea eax, DWORD PTR [edx+eax-660478335] 00655 89 45 ec mov DWORD PTR _c$[ebp], eax 00658 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0065b c1 e0 0e shl eax, 14 ; 0000000eH 0065e 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00661 c1 e9 12 shr ecx, 18 ; 00000012H 00664 0b c1 or eax, ecx 00666 89 45 ec mov DWORD PTR _c$[ebp], eax 00669 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0066c 03 45 e8 add eax, DWORD PTR _d$[ebp] 0066f 89 45 ec mov DWORD PTR _c$[ebp], eax ; 136 : GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */ 00672 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00675 23 45 f4 and eax, DWORD PTR _a$[ebp] 00678 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 0067b f7 d1 not ecx 0067d 23 4d e8 and ecx, DWORD PTR _d$[ebp] 00680 0b c1 or eax, ecx 00682 ba 04 00 00 00 mov edx, 4 00687 c1 e2 02 shl edx, 2 0068a 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 0068e 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00691 8d 94 01 c8 fb d3 e7 lea edx, DWORD PTR [ecx+eax-405537848] 00698 89 55 f0 mov DWORD PTR _b$[ebp], edx 0069b 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 0069e c1 e0 14 shl eax, 20 ; 00000014H 006a1 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 006a4 c1 e9 0c shr ecx, 12 ; 0000000cH 006a7 0b c1 or eax, ecx 006a9 89 45 f0 mov DWORD PTR _b$[ebp], eax 006ac 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 006af 03 45 ec add eax, DWORD PTR _c$[ebp] 006b2 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 137 : GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */ 006b5 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 006b8 23 45 e8 and eax, DWORD PTR _d$[ebp] 006bb 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 006be f7 d1 not ecx 006c0 23 4d ec and ecx, DWORD PTR _c$[ebp] 006c3 0b c1 or eax, ecx 006c5 ba 04 00 00 00 mov edx, 4 006ca 6b ca 09 imul ecx, edx, 9 006cd 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 006d1 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 006d4 8d 84 02 e6 cd e1 21 lea eax, DWORD PTR [edx+eax+568446438] 006db 89 45 f4 mov DWORD PTR _a$[ebp], eax 006de 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 006e1 c1 e0 05 shl eax, 5 006e4 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 006e7 c1 e9 1b shr ecx, 27 ; 0000001bH 006ea 0b c1 or eax, ecx 006ec 89 45 f4 mov DWORD PTR _a$[ebp], eax 006ef 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 006f2 03 45 f0 add eax, DWORD PTR _b$[ebp] 006f5 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 138 : GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */ 006f8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 006fb 23 45 ec and eax, DWORD PTR _c$[ebp] 006fe 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00701 f7 d1 not ecx 00703 23 4d f0 and ecx, DWORD PTR _b$[ebp] 00706 0b c1 or eax, ecx 00708 ba 04 00 00 00 mov edx, 4 0070d 6b ca 0e imul ecx, edx, 14 00710 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00714 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 00717 8d 84 02 d6 07 37 c3 lea eax, DWORD PTR [edx+eax-1019803690] 0071e 89 45 e8 mov DWORD PTR _d$[ebp], eax 00721 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00724 c1 e0 09 shl eax, 9 00727 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 0072a c1 e9 17 shr ecx, 23 ; 00000017H 0072d 0b c1 or eax, ecx 0072f 89 45 e8 mov DWORD PTR _d$[ebp], eax 00732 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00735 03 45 f4 add eax, DWORD PTR _a$[ebp] 00738 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 139 : GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */ 0073b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0073e 23 45 f0 and eax, DWORD PTR _b$[ebp] 00741 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00744 f7 d1 not ecx 00746 23 4d f4 and ecx, DWORD PTR _a$[ebp] 00749 0b c1 or eax, ecx 0074b ba 04 00 00 00 mov edx, 4 00750 6b ca 03 imul ecx, edx, 3 00753 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00757 8b 55 ec mov edx, DWORD PTR _c$[ebp] 0075a 8d 84 02 87 0d d5 f4 lea eax, DWORD PTR [edx+eax-187363961] 00761 89 45 ec mov DWORD PTR _c$[ebp], eax 00764 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00767 c1 e0 0e shl eax, 14 ; 0000000eH 0076a 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0076d c1 e9 12 shr ecx, 18 ; 00000012H 00770 0b c1 or eax, ecx 00772 89 45 ec mov DWORD PTR _c$[ebp], eax 00775 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00778 03 45 e8 add eax, DWORD PTR _d$[ebp] 0077b 89 45 ec mov DWORD PTR _c$[ebp], eax ; 140 : GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */ 0077e 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00781 23 45 f4 and eax, DWORD PTR _a$[ebp] 00784 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00787 f7 d1 not ecx 00789 23 4d e8 and ecx, DWORD PTR _d$[ebp] 0078c 0b c1 or eax, ecx 0078e ba 04 00 00 00 mov edx, 4 00793 c1 e2 03 shl edx, 3 00796 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 0079a 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 0079d 8d 94 01 ed 14 5a 45 lea edx, DWORD PTR [ecx+eax+1163531501] 007a4 89 55 f0 mov DWORD PTR _b$[ebp], edx 007a7 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 007aa c1 e0 14 shl eax, 20 ; 00000014H 007ad 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 007b0 c1 e9 0c shr ecx, 12 ; 0000000cH 007b3 0b c1 or eax, ecx 007b5 89 45 f0 mov DWORD PTR _b$[ebp], eax 007b8 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 007bb 03 45 ec add eax, DWORD PTR _c$[ebp] 007be 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 141 : GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */ 007c1 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 007c4 23 45 e8 and eax, DWORD PTR _d$[ebp] 007c7 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 007ca f7 d1 not ecx 007cc 23 4d ec and ecx, DWORD PTR _c$[ebp] 007cf 0b c1 or eax, ecx 007d1 ba 04 00 00 00 mov edx, 4 007d6 6b ca 0d imul ecx, edx, 13 007d9 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 007dd 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 007e0 8d 84 02 05 e9 e3 a9 lea eax, DWORD PTR [edx+eax-1444681467] 007e7 89 45 f4 mov DWORD PTR _a$[ebp], eax 007ea 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 007ed c1 e0 05 shl eax, 5 007f0 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 007f3 c1 e9 1b shr ecx, 27 ; 0000001bH 007f6 0b c1 or eax, ecx 007f8 89 45 f4 mov DWORD PTR _a$[ebp], eax 007fb 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 007fe 03 45 f0 add eax, DWORD PTR _b$[ebp] 00801 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 142 : GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */ 00804 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00807 23 45 ec and eax, DWORD PTR _c$[ebp] 0080a 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0080d f7 d1 not ecx 0080f 23 4d f0 and ecx, DWORD PTR _b$[ebp] 00812 0b c1 or eax, ecx 00814 ba 04 00 00 00 mov edx, 4 00819 d1 e2 shl edx, 1 0081b 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 0081f 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00822 8d 94 01 f8 a3 ef fc lea edx, DWORD PTR [ecx+eax-51403784] 00829 89 55 e8 mov DWORD PTR _d$[ebp], edx 0082c 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0082f c1 e0 09 shl eax, 9 00832 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00835 c1 e9 17 shr ecx, 23 ; 00000017H 00838 0b c1 or eax, ecx 0083a 89 45 e8 mov DWORD PTR _d$[ebp], eax 0083d 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00840 03 45 f4 add eax, DWORD PTR _a$[ebp] 00843 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 143 : GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */ 00846 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00849 23 45 f0 and eax, DWORD PTR _b$[ebp] 0084c 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 0084f f7 d1 not ecx 00851 23 4d f4 and ecx, DWORD PTR _a$[ebp] 00854 0b c1 or eax, ecx 00856 ba 04 00 00 00 mov edx, 4 0085b 6b ca 07 imul ecx, edx, 7 0085e 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00862 8b 55 ec mov edx, DWORD PTR _c$[ebp] 00865 8d 84 02 d9 02 6f 67 lea eax, DWORD PTR [edx+eax+1735328473] 0086c 89 45 ec mov DWORD PTR _c$[ebp], eax 0086f 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00872 c1 e0 0e shl eax, 14 ; 0000000eH 00875 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00878 c1 e9 12 shr ecx, 18 ; 00000012H 0087b 0b c1 or eax, ecx 0087d 89 45 ec mov DWORD PTR _c$[ebp], eax 00880 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00883 03 45 e8 add eax, DWORD PTR _d$[ebp] 00886 89 45 ec mov DWORD PTR _c$[ebp], eax ; 144 : GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */ 00889 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0088c 23 45 f4 and eax, DWORD PTR _a$[ebp] 0088f 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00892 f7 d1 not ecx 00894 23 4d e8 and ecx, DWORD PTR _d$[ebp] 00897 0b c1 or eax, ecx 00899 ba 04 00 00 00 mov edx, 4 0089e 6b ca 0c imul ecx, edx, 12 008a1 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 008a5 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 008a8 8d 84 02 8a 4c 2a 8d lea eax, DWORD PTR [edx+eax-1926607734] 008af 89 45 f0 mov DWORD PTR _b$[ebp], eax 008b2 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 008b5 c1 e0 14 shl eax, 20 ; 00000014H 008b8 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 008bb c1 e9 0c shr ecx, 12 ; 0000000cH 008be 0b c1 or eax, ecx 008c0 89 45 f0 mov DWORD PTR _b$[ebp], eax 008c3 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 008c6 03 45 ec add eax, DWORD PTR _c$[ebp] 008c9 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 145 : ; 146 : /* Round 3 */ ; 147 : HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */ 008cc 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 008cf 33 45 ec xor eax, DWORD PTR _c$[ebp] 008d2 33 45 e8 xor eax, DWORD PTR _d$[ebp] 008d5 b9 04 00 00 00 mov ecx, 4 008da 6b d1 05 imul edx, ecx, 5 008dd 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 008e1 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 008e4 8d 94 01 42 39 fa ff lea edx, DWORD PTR [ecx+eax-378558] 008eb 89 55 f4 mov DWORD PTR _a$[ebp], edx 008ee 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 008f1 c1 e0 04 shl eax, 4 008f4 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 008f7 c1 e9 1c shr ecx, 28 ; 0000001cH 008fa 0b c1 or eax, ecx 008fc 89 45 f4 mov DWORD PTR _a$[ebp], eax 008ff 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00902 03 45 f0 add eax, DWORD PTR _b$[ebp] 00905 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 148 : HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */ 00908 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 0090b 33 45 f0 xor eax, DWORD PTR _b$[ebp] 0090e 33 45 ec xor eax, DWORD PTR _c$[ebp] 00911 b9 04 00 00 00 mov ecx, 4 00916 c1 e1 03 shl ecx, 3 00919 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 0091d 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 00920 8d 84 02 81 f6 71 87 lea eax, DWORD PTR [edx+eax-2022574463] 00927 89 45 e8 mov DWORD PTR _d$[ebp], eax 0092a 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0092d c1 e0 0b shl eax, 11 ; 0000000bH 00930 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00933 c1 e9 15 shr ecx, 21 ; 00000015H 00936 0b c1 or eax, ecx 00938 89 45 e8 mov DWORD PTR _d$[ebp], eax 0093b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 0093e 03 45 f4 add eax, DWORD PTR _a$[ebp] 00941 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 149 : HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */ 00944 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00947 33 45 f4 xor eax, DWORD PTR _a$[ebp] 0094a 33 45 f0 xor eax, DWORD PTR _b$[ebp] 0094d b9 04 00 00 00 mov ecx, 4 00952 6b d1 0b imul edx, ecx, 11 00955 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00959 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0095c 8d 94 01 22 61 9d 6d lea edx, DWORD PTR [ecx+eax+1839030562] 00963 89 55 ec mov DWORD PTR _c$[ebp], edx 00966 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00969 c1 e0 10 shl eax, 16 ; 00000010H 0096c 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0096f c1 e9 10 shr ecx, 16 ; 00000010H 00972 0b c1 or eax, ecx 00974 89 45 ec mov DWORD PTR _c$[ebp], eax 00977 8b 45 ec mov eax, DWORD PTR _c$[ebp] 0097a 03 45 e8 add eax, DWORD PTR _d$[ebp] 0097d 89 45 ec mov DWORD PTR _c$[ebp], eax ; 150 : HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */ 00980 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00983 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00986 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00989 b9 04 00 00 00 mov ecx, 4 0098e 6b d1 0e imul edx, ecx, 14 00991 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00995 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00998 8d 94 01 0c 38 e5 fd lea edx, DWORD PTR [ecx+eax-35309556] 0099f 89 55 f0 mov DWORD PTR _b$[ebp], edx 009a2 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 009a5 c1 e0 17 shl eax, 23 ; 00000017H 009a8 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 009ab c1 e9 09 shr ecx, 9 009ae 0b c1 or eax, ecx 009b0 89 45 f0 mov DWORD PTR _b$[ebp], eax 009b3 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 009b6 03 45 ec add eax, DWORD PTR _c$[ebp] 009b9 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 151 : HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */ 009bc 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 009bf 33 45 ec xor eax, DWORD PTR _c$[ebp] 009c2 33 45 e8 xor eax, DWORD PTR _d$[ebp] 009c5 b9 04 00 00 00 mov ecx, 4 009ca c1 e1 00 shl ecx, 0 009cd 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 009d1 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 009d4 8d 84 02 44 ea be a4 lea eax, DWORD PTR [edx+eax-1530992060] 009db 89 45 f4 mov DWORD PTR _a$[ebp], eax 009de 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 009e1 c1 e0 04 shl eax, 4 009e4 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 009e7 c1 e9 1c shr ecx, 28 ; 0000001cH 009ea 0b c1 or eax, ecx 009ec 89 45 f4 mov DWORD PTR _a$[ebp], eax 009ef 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 009f2 03 45 f0 add eax, DWORD PTR _b$[ebp] 009f5 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 152 : HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */ 009f8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 009fb 33 45 f0 xor eax, DWORD PTR _b$[ebp] 009fe 33 45 ec xor eax, DWORD PTR _c$[ebp] 00a01 b9 04 00 00 00 mov ecx, 4 00a06 c1 e1 02 shl ecx, 2 00a09 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00a0d 8b 55 e8 mov edx, DWORD PTR _d$[ebp] 00a10 8d 84 02 a9 cf de 4b lea eax, DWORD PTR [edx+eax+1272893353] 00a17 89 45 e8 mov DWORD PTR _d$[ebp], eax 00a1a 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00a1d c1 e0 0b shl eax, 11 ; 0000000bH 00a20 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00a23 c1 e9 15 shr ecx, 21 ; 00000015H 00a26 0b c1 or eax, ecx 00a28 89 45 e8 mov DWORD PTR _d$[ebp], eax 00a2b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00a2e 03 45 f4 add eax, DWORD PTR _a$[ebp] 00a31 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 153 : HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */ 00a34 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00a37 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00a3a 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00a3d b9 04 00 00 00 mov ecx, 4 00a42 6b d1 07 imul edx, ecx, 7 00a45 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00a49 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00a4c 8d 94 01 60 4b bb f6 lea edx, DWORD PTR [ecx+eax-155497632] 00a53 89 55 ec mov DWORD PTR _c$[ebp], edx 00a56 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00a59 c1 e0 10 shl eax, 16 ; 00000010H 00a5c 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00a5f c1 e9 10 shr ecx, 16 ; 00000010H 00a62 0b c1 or eax, ecx 00a64 89 45 ec mov DWORD PTR _c$[ebp], eax 00a67 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00a6a 03 45 e8 add eax, DWORD PTR _d$[ebp] 00a6d 89 45 ec mov DWORD PTR _c$[ebp], eax ; 154 : HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */ 00a70 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00a73 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00a76 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00a79 b9 04 00 00 00 mov ecx, 4 00a7e 6b d1 0a imul edx, ecx, 10 00a81 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00a85 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00a88 8d 94 01 70 bc bf be lea edx, DWORD PTR [ecx+eax-1094730640] 00a8f 89 55 f0 mov DWORD PTR _b$[ebp], edx 00a92 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00a95 c1 e0 17 shl eax, 23 ; 00000017H 00a98 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00a9b c1 e9 09 shr ecx, 9 00a9e 0b c1 or eax, ecx 00aa0 89 45 f0 mov DWORD PTR _b$[ebp], eax 00aa3 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00aa6 03 45 ec add eax, DWORD PTR _c$[ebp] 00aa9 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 155 : HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */ 00aac 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00aaf 33 45 ec xor eax, DWORD PTR _c$[ebp] 00ab2 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00ab5 b9 04 00 00 00 mov ecx, 4 00aba 6b d1 0d imul edx, ecx, 13 00abd 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00ac1 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00ac4 8d 94 01 c6 7e 9b 28 lea edx, DWORD PTR [ecx+eax+681279174] 00acb 89 55 f4 mov DWORD PTR _a$[ebp], edx 00ace 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00ad1 c1 e0 04 shl eax, 4 00ad4 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00ad7 c1 e9 1c shr ecx, 28 ; 0000001cH 00ada 0b c1 or eax, ecx 00adc 89 45 f4 mov DWORD PTR _a$[ebp], eax 00adf 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00ae2 03 45 f0 add eax, DWORD PTR _b$[ebp] 00ae5 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 156 : HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */ 00ae8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00aeb 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00aee 33 45 ec xor eax, DWORD PTR _c$[ebp] 00af1 b9 04 00 00 00 mov ecx, 4 00af6 6b d1 00 imul edx, ecx, 0 00af9 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00afd 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00b00 8d 94 01 fa 27 a1 ea lea edx, DWORD PTR [ecx+eax-358537222] 00b07 89 55 e8 mov DWORD PTR _d$[ebp], edx 00b0a 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00b0d c1 e0 0b shl eax, 11 ; 0000000bH 00b10 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00b13 c1 e9 15 shr ecx, 21 ; 00000015H 00b16 0b c1 or eax, ecx 00b18 89 45 e8 mov DWORD PTR _d$[ebp], eax 00b1b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00b1e 03 45 f4 add eax, DWORD PTR _a$[ebp] 00b21 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 157 : HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */ 00b24 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00b27 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00b2a 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00b2d b9 04 00 00 00 mov ecx, 4 00b32 6b d1 03 imul edx, ecx, 3 00b35 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00b39 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00b3c 8d 94 01 85 30 ef d4 lea edx, DWORD PTR [ecx+eax-722521979] 00b43 89 55 ec mov DWORD PTR _c$[ebp], edx 00b46 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00b49 c1 e0 10 shl eax, 16 ; 00000010H 00b4c 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00b4f c1 e9 10 shr ecx, 16 ; 00000010H 00b52 0b c1 or eax, ecx 00b54 89 45 ec mov DWORD PTR _c$[ebp], eax 00b57 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00b5a 03 45 e8 add eax, DWORD PTR _d$[ebp] 00b5d 89 45 ec mov DWORD PTR _c$[ebp], eax ; 158 : HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */ 00b60 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00b63 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00b66 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00b69 b9 04 00 00 00 mov ecx, 4 00b6e 6b d1 06 imul edx, ecx, 6 00b71 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00b75 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00b78 8d 94 01 05 1d 88 04 lea edx, DWORD PTR [ecx+eax+76029189] 00b7f 89 55 f0 mov DWORD PTR _b$[ebp], edx 00b82 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00b85 c1 e0 17 shl eax, 23 ; 00000017H 00b88 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00b8b c1 e9 09 shr ecx, 9 00b8e 0b c1 or eax, ecx 00b90 89 45 f0 mov DWORD PTR _b$[ebp], eax 00b93 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00b96 03 45 ec add eax, DWORD PTR _c$[ebp] 00b99 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 159 : HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */ 00b9c 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00b9f 33 45 ec xor eax, DWORD PTR _c$[ebp] 00ba2 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00ba5 b9 04 00 00 00 mov ecx, 4 00baa 6b d1 09 imul edx, ecx, 9 00bad 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00bb1 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00bb4 8d 94 01 39 d0 d4 d9 lea edx, DWORD PTR [ecx+eax-640364487] 00bbb 89 55 f4 mov DWORD PTR _a$[ebp], edx 00bbe 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00bc1 c1 e0 04 shl eax, 4 00bc4 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00bc7 c1 e9 1c shr ecx, 28 ; 0000001cH 00bca 0b c1 or eax, ecx 00bcc 89 45 f4 mov DWORD PTR _a$[ebp], eax 00bcf 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00bd2 03 45 f0 add eax, DWORD PTR _b$[ebp] 00bd5 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 160 : HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */ 00bd8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00bdb 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00bde 33 45 ec xor eax, DWORD PTR _c$[ebp] 00be1 b9 04 00 00 00 mov ecx, 4 00be6 6b d1 0c imul edx, ecx, 12 00be9 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00bed 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00bf0 8d 94 01 e5 99 db e6 lea edx, DWORD PTR [ecx+eax-421815835] 00bf7 89 55 e8 mov DWORD PTR _d$[ebp], edx 00bfa 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00bfd c1 e0 0b shl eax, 11 ; 0000000bH 00c00 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00c03 c1 e9 15 shr ecx, 21 ; 00000015H 00c06 0b c1 or eax, ecx 00c08 89 45 e8 mov DWORD PTR _d$[ebp], eax 00c0b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00c0e 03 45 f4 add eax, DWORD PTR _a$[ebp] 00c11 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 161 : HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */ 00c14 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00c17 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00c1a 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00c1d b9 04 00 00 00 mov ecx, 4 00c22 6b d1 0f imul edx, ecx, 15 00c25 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00c29 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00c2c 8d 94 01 f8 7c a2 1f lea edx, DWORD PTR [ecx+eax+530742520] 00c33 89 55 ec mov DWORD PTR _c$[ebp], edx 00c36 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00c39 c1 e0 10 shl eax, 16 ; 00000010H 00c3c 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00c3f c1 e9 10 shr ecx, 16 ; 00000010H 00c42 0b c1 or eax, ecx 00c44 89 45 ec mov DWORD PTR _c$[ebp], eax 00c47 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00c4a 03 45 e8 add eax, DWORD PTR _d$[ebp] 00c4d 89 45 ec mov DWORD PTR _c$[ebp], eax ; 162 : HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */ 00c50 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00c53 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00c56 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00c59 b9 04 00 00 00 mov ecx, 4 00c5e d1 e1 shl ecx, 1 00c60 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00c64 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 00c67 8d 84 02 65 56 ac c4 lea eax, DWORD PTR [edx+eax-995338651] 00c6e 89 45 f0 mov DWORD PTR _b$[ebp], eax 00c71 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00c74 c1 e0 17 shl eax, 23 ; 00000017H 00c77 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00c7a c1 e9 09 shr ecx, 9 00c7d 0b c1 or eax, ecx 00c7f 89 45 f0 mov DWORD PTR _b$[ebp], eax 00c82 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00c85 03 45 ec add eax, DWORD PTR _c$[ebp] 00c88 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 163 : ; 164 : /* Round 4 */ ; 165 : II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */ 00c8b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00c8e f7 d0 not eax 00c90 0b 45 f0 or eax, DWORD PTR _b$[ebp] 00c93 33 45 ec xor eax, DWORD PTR _c$[ebp] 00c96 b9 04 00 00 00 mov ecx, 4 00c9b 6b d1 00 imul edx, ecx, 0 00c9e 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00ca2 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00ca5 8d 94 01 44 22 29 f4 lea edx, DWORD PTR [ecx+eax-198630844] 00cac 89 55 f4 mov DWORD PTR _a$[ebp], edx 00caf 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00cb2 c1 e0 06 shl eax, 6 00cb5 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00cb8 c1 e9 1a shr ecx, 26 ; 0000001aH 00cbb 0b c1 or eax, ecx 00cbd 89 45 f4 mov DWORD PTR _a$[ebp], eax 00cc0 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00cc3 03 45 f0 add eax, DWORD PTR _b$[ebp] 00cc6 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 166 : II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */ 00cc9 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00ccc f7 d0 not eax 00cce 0b 45 f4 or eax, DWORD PTR _a$[ebp] 00cd1 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00cd4 b9 04 00 00 00 mov ecx, 4 00cd9 6b d1 07 imul edx, ecx, 7 00cdc 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00ce0 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00ce3 8d 94 01 97 ff 2a 43 lea edx, DWORD PTR [ecx+eax+1126891415] 00cea 89 55 e8 mov DWORD PTR _d$[ebp], edx 00ced 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00cf0 c1 e0 0a shl eax, 10 ; 0000000aH 00cf3 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00cf6 c1 e9 16 shr ecx, 22 ; 00000016H 00cf9 0b c1 or eax, ecx 00cfb 89 45 e8 mov DWORD PTR _d$[ebp], eax 00cfe 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00d01 03 45 f4 add eax, DWORD PTR _a$[ebp] 00d04 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 167 : II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */ 00d07 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00d0a f7 d0 not eax 00d0c 0b 45 e8 or eax, DWORD PTR _d$[ebp] 00d0f 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00d12 b9 04 00 00 00 mov ecx, 4 00d17 6b d1 0e imul edx, ecx, 14 00d1a 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00d1e 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00d21 8d 94 01 a7 23 94 ab lea edx, DWORD PTR [ecx+eax-1416354905] 00d28 89 55 ec mov DWORD PTR _c$[ebp], edx 00d2b 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00d2e c1 e0 0f shl eax, 15 ; 0000000fH 00d31 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00d34 c1 e9 11 shr ecx, 17 ; 00000011H 00d37 0b c1 or eax, ecx 00d39 89 45 ec mov DWORD PTR _c$[ebp], eax 00d3c 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00d3f 03 45 e8 add eax, DWORD PTR _d$[ebp] 00d42 89 45 ec mov DWORD PTR _c$[ebp], eax ; 168 : II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */ 00d45 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00d48 f7 d0 not eax 00d4a 0b 45 ec or eax, DWORD PTR _c$[ebp] 00d4d 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00d50 b9 04 00 00 00 mov ecx, 4 00d55 6b d1 05 imul edx, ecx, 5 00d58 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00d5c 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00d5f 8d 94 01 39 a0 93 fc lea edx, DWORD PTR [ecx+eax-57434055] 00d66 89 55 f0 mov DWORD PTR _b$[ebp], edx 00d69 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00d6c c1 e0 15 shl eax, 21 ; 00000015H 00d6f 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00d72 c1 e9 0b shr ecx, 11 ; 0000000bH 00d75 0b c1 or eax, ecx 00d77 89 45 f0 mov DWORD PTR _b$[ebp], eax 00d7a 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00d7d 03 45 ec add eax, DWORD PTR _c$[ebp] 00d80 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 169 : II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */ 00d83 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00d86 f7 d0 not eax 00d88 0b 45 f0 or eax, DWORD PTR _b$[ebp] 00d8b 33 45 ec xor eax, DWORD PTR _c$[ebp] 00d8e b9 04 00 00 00 mov ecx, 4 00d93 6b d1 0c imul edx, ecx, 12 00d96 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00d9a 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00d9d 8d 94 01 c3 59 5b 65 lea edx, DWORD PTR [ecx+eax+1700485571] 00da4 89 55 f4 mov DWORD PTR _a$[ebp], edx 00da7 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00daa c1 e0 06 shl eax, 6 00dad 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00db0 c1 e9 1a shr ecx, 26 ; 0000001aH 00db3 0b c1 or eax, ecx 00db5 89 45 f4 mov DWORD PTR _a$[ebp], eax 00db8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00dbb 03 45 f0 add eax, DWORD PTR _b$[ebp] 00dbe 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 170 : II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */ 00dc1 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00dc4 f7 d0 not eax 00dc6 0b 45 f4 or eax, DWORD PTR _a$[ebp] 00dc9 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00dcc b9 04 00 00 00 mov ecx, 4 00dd1 6b d1 03 imul edx, ecx, 3 00dd4 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00dd8 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00ddb 8d 94 01 92 cc 0c 8f lea edx, DWORD PTR [ecx+eax-1894986606] 00de2 89 55 e8 mov DWORD PTR _d$[ebp], edx 00de5 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00de8 c1 e0 0a shl eax, 10 ; 0000000aH 00deb 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00dee c1 e9 16 shr ecx, 22 ; 00000016H 00df1 0b c1 or eax, ecx 00df3 89 45 e8 mov DWORD PTR _d$[ebp], eax 00df6 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00df9 03 45 f4 add eax, DWORD PTR _a$[ebp] 00dfc 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 171 : II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */ 00dff 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00e02 f7 d0 not eax 00e04 0b 45 e8 or eax, DWORD PTR _d$[ebp] 00e07 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00e0a b9 04 00 00 00 mov ecx, 4 00e0f 6b d1 0a imul edx, ecx, 10 00e12 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00e16 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00e19 8d 94 01 7d f4 ef ff lea edx, DWORD PTR [ecx+eax-1051523] 00e20 89 55 ec mov DWORD PTR _c$[ebp], edx 00e23 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00e26 c1 e0 0f shl eax, 15 ; 0000000fH 00e29 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00e2c c1 e9 11 shr ecx, 17 ; 00000011H 00e2f 0b c1 or eax, ecx 00e31 89 45 ec mov DWORD PTR _c$[ebp], eax 00e34 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00e37 03 45 e8 add eax, DWORD PTR _d$[ebp] 00e3a 89 45 ec mov DWORD PTR _c$[ebp], eax ; 172 : II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */ 00e3d 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00e40 f7 d0 not eax 00e42 0b 45 ec or eax, DWORD PTR _c$[ebp] 00e45 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00e48 b9 04 00 00 00 mov ecx, 4 00e4d c1 e1 00 shl ecx, 0 00e50 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00e54 8b 55 f0 mov edx, DWORD PTR _b$[ebp] 00e57 8d 84 02 d1 5d 84 85 lea eax, DWORD PTR [edx+eax-2054922799] 00e5e 89 45 f0 mov DWORD PTR _b$[ebp], eax 00e61 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00e64 c1 e0 15 shl eax, 21 ; 00000015H 00e67 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00e6a c1 e9 0b shr ecx, 11 ; 0000000bH 00e6d 0b c1 or eax, ecx 00e6f 89 45 f0 mov DWORD PTR _b$[ebp], eax 00e72 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00e75 03 45 ec add eax, DWORD PTR _c$[ebp] 00e78 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 173 : II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */ 00e7b 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00e7e f7 d0 not eax 00e80 0b 45 f0 or eax, DWORD PTR _b$[ebp] 00e83 33 45 ec xor eax, DWORD PTR _c$[ebp] 00e86 b9 04 00 00 00 mov ecx, 4 00e8b c1 e1 03 shl ecx, 3 00e8e 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00e92 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 00e95 8d 84 02 4f 7e a8 6f lea eax, DWORD PTR [edx+eax+1873313359] 00e9c 89 45 f4 mov DWORD PTR _a$[ebp], eax 00e9f 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00ea2 c1 e0 06 shl eax, 6 00ea5 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00ea8 c1 e9 1a shr ecx, 26 ; 0000001aH 00eab 0b c1 or eax, ecx 00ead 89 45 f4 mov DWORD PTR _a$[ebp], eax 00eb0 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00eb3 03 45 f0 add eax, DWORD PTR _b$[ebp] 00eb6 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 174 : II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */ 00eb9 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00ebc f7 d0 not eax 00ebe 0b 45 f4 or eax, DWORD PTR _a$[ebp] 00ec1 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00ec4 b9 04 00 00 00 mov ecx, 4 00ec9 6b d1 0f imul edx, ecx, 15 00ecc 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00ed0 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00ed3 8d 94 01 e0 e6 2c fe lea edx, DWORD PTR [ecx+eax-30611744] 00eda 89 55 e8 mov DWORD PTR _d$[ebp], edx 00edd 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00ee0 c1 e0 0a shl eax, 10 ; 0000000aH 00ee3 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00ee6 c1 e9 16 shr ecx, 22 ; 00000016H 00ee9 0b c1 or eax, ecx 00eeb 89 45 e8 mov DWORD PTR _d$[ebp], eax 00eee 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00ef1 03 45 f4 add eax, DWORD PTR _a$[ebp] 00ef4 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 175 : II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */ 00ef7 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00efa f7 d0 not eax 00efc 0b 45 e8 or eax, DWORD PTR _d$[ebp] 00eff 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00f02 b9 04 00 00 00 mov ecx, 4 00f07 6b d1 06 imul edx, ecx, 6 00f0a 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00f0e 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00f11 8d 94 01 14 43 01 a3 lea edx, DWORD PTR [ecx+eax-1560198380] 00f18 89 55 ec mov DWORD PTR _c$[ebp], edx 00f1b 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00f1e c1 e0 0f shl eax, 15 ; 0000000fH 00f21 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 00f24 c1 e9 11 shr ecx, 17 ; 00000011H 00f27 0b c1 or eax, ecx 00f29 89 45 ec mov DWORD PTR _c$[ebp], eax 00f2c 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00f2f 03 45 e8 add eax, DWORD PTR _d$[ebp] 00f32 89 45 ec mov DWORD PTR _c$[ebp], eax ; 176 : II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */ 00f35 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00f38 f7 d0 not eax 00f3a 0b 45 ec or eax, DWORD PTR _c$[ebp] 00f3d 33 45 e8 xor eax, DWORD PTR _d$[ebp] 00f40 b9 04 00 00 00 mov ecx, 4 00f45 6b d1 0d imul edx, ecx, 13 00f48 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00f4c 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00f4f 8d 94 01 a1 11 08 4e lea edx, DWORD PTR [ecx+eax+1309151649] 00f56 89 55 f0 mov DWORD PTR _b$[ebp], edx 00f59 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00f5c c1 e0 15 shl eax, 21 ; 00000015H 00f5f 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 00f62 c1 e9 0b shr ecx, 11 ; 0000000bH 00f65 0b c1 or eax, ecx 00f67 89 45 f0 mov DWORD PTR _b$[ebp], eax 00f6a 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00f6d 03 45 ec add eax, DWORD PTR _c$[ebp] 00f70 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 177 : II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */ 00f73 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00f76 f7 d0 not eax 00f78 0b 45 f0 or eax, DWORD PTR _b$[ebp] 00f7b 33 45 ec xor eax, DWORD PTR _c$[ebp] 00f7e b9 04 00 00 00 mov ecx, 4 00f83 c1 e1 02 shl ecx, 2 00f86 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 00f8a 8b 55 f4 mov edx, DWORD PTR _a$[ebp] 00f8d 8d 84 02 82 7e 53 f7 lea eax, DWORD PTR [edx+eax-145523070] 00f94 89 45 f4 mov DWORD PTR _a$[ebp], eax 00f97 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00f9a c1 e0 06 shl eax, 6 00f9d 8b 4d f4 mov ecx, DWORD PTR _a$[ebp] 00fa0 c1 e9 1a shr ecx, 26 ; 0000001aH 00fa3 0b c1 or eax, ecx 00fa5 89 45 f4 mov DWORD PTR _a$[ebp], eax 00fa8 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 00fab 03 45 f0 add eax, DWORD PTR _b$[ebp] 00fae 89 45 f4 mov DWORD PTR _a$[ebp], eax ; 178 : II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */ 00fb1 8b 45 ec mov eax, DWORD PTR _c$[ebp] 00fb4 f7 d0 not eax 00fb6 0b 45 f4 or eax, DWORD PTR _a$[ebp] 00fb9 33 45 f0 xor eax, DWORD PTR _b$[ebp] 00fbc b9 04 00 00 00 mov ecx, 4 00fc1 6b d1 0b imul edx, ecx, 11 00fc4 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 00fc8 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00fcb 8d 94 01 35 f2 3a bd lea edx, DWORD PTR [ecx+eax-1120210379] 00fd2 89 55 e8 mov DWORD PTR _d$[ebp], edx 00fd5 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00fd8 c1 e0 0a shl eax, 10 ; 0000000aH 00fdb 8b 4d e8 mov ecx, DWORD PTR _d$[ebp] 00fde c1 e9 16 shr ecx, 22 ; 00000016H 00fe1 0b c1 or eax, ecx 00fe3 89 45 e8 mov DWORD PTR _d$[ebp], eax 00fe6 8b 45 e8 mov eax, DWORD PTR _d$[ebp] 00fe9 03 45 f4 add eax, DWORD PTR _a$[ebp] 00fec 89 45 e8 mov DWORD PTR _d$[ebp], eax ; 179 : II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */ 00fef 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 00ff2 f7 d0 not eax 00ff4 0b 45 e8 or eax, DWORD PTR _d$[ebp] 00ff7 33 45 f4 xor eax, DWORD PTR _a$[ebp] 00ffa b9 04 00 00 00 mov ecx, 4 00fff d1 e1 shl ecx, 1 01001 03 44 0d a8 add eax, DWORD PTR _x$[ebp+ecx] 01005 8b 55 ec mov edx, DWORD PTR _c$[ebp] 01008 8d 84 02 bb d2 d7 2a lea eax, DWORD PTR [edx+eax+718787259] 0100f 89 45 ec mov DWORD PTR _c$[ebp], eax 01012 8b 45 ec mov eax, DWORD PTR _c$[ebp] 01015 c1 e0 0f shl eax, 15 ; 0000000fH 01018 8b 4d ec mov ecx, DWORD PTR _c$[ebp] 0101b c1 e9 11 shr ecx, 17 ; 00000011H 0101e 0b c1 or eax, ecx 01020 89 45 ec mov DWORD PTR _c$[ebp], eax 01023 8b 45 ec mov eax, DWORD PTR _c$[ebp] 01026 03 45 e8 add eax, DWORD PTR _d$[ebp] 01029 89 45 ec mov DWORD PTR _c$[ebp], eax ; 180 : II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */ 0102c 8b 45 f4 mov eax, DWORD PTR _a$[ebp] 0102f f7 d0 not eax 01031 0b 45 ec or eax, DWORD PTR _c$[ebp] 01034 33 45 e8 xor eax, DWORD PTR _d$[ebp] 01037 b9 04 00 00 00 mov ecx, 4 0103c 6b d1 09 imul edx, ecx, 9 0103f 03 44 15 a8 add eax, DWORD PTR _x$[ebp+edx] 01043 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 01046 8d 94 01 91 d3 86 eb lea edx, DWORD PTR [ecx+eax-343485551] 0104d 89 55 f0 mov DWORD PTR _b$[ebp], edx 01050 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 01053 c1 e0 15 shl eax, 21 ; 00000015H 01056 8b 4d f0 mov ecx, DWORD PTR _b$[ebp] 01059 c1 e9 0b shr ecx, 11 ; 0000000bH 0105c 0b c1 or eax, ecx 0105e 89 45 f0 mov DWORD PTR _b$[ebp], eax 01061 8b 45 f0 mov eax, DWORD PTR _b$[ebp] 01064 03 45 ec add eax, DWORD PTR _c$[ebp] 01067 89 45 f0 mov DWORD PTR _b$[ebp], eax ; 181 : ; 182 : state[0] += a; 0106a b8 04 00 00 00 mov eax, 4 0106f 6b c8 00 imul ecx, eax, 0 01072 8b 55 08 mov edx, DWORD PTR _state$[ebp] 01075 8b 04 0a mov eax, DWORD PTR [edx+ecx] 01078 03 45 f4 add eax, DWORD PTR _a$[ebp] 0107b b9 04 00 00 00 mov ecx, 4 01080 6b d1 00 imul edx, ecx, 0 01083 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 01086 89 04 11 mov DWORD PTR [ecx+edx], eax ; 183 : state[1] += b; 01089 b8 04 00 00 00 mov eax, 4 0108e c1 e0 00 shl eax, 0 01091 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 01094 8b 14 01 mov edx, DWORD PTR [ecx+eax] 01097 03 55 f0 add edx, DWORD PTR _b$[ebp] 0109a b8 04 00 00 00 mov eax, 4 0109f c1 e0 00 shl eax, 0 010a2 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 010a5 89 14 01 mov DWORD PTR [ecx+eax], edx ; 184 : state[2] += c; 010a8 b8 04 00 00 00 mov eax, 4 010ad d1 e0 shl eax, 1 010af 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 010b2 8b 14 01 mov edx, DWORD PTR [ecx+eax] 010b5 03 55 ec add edx, DWORD PTR _c$[ebp] 010b8 b8 04 00 00 00 mov eax, 4 010bd d1 e0 shl eax, 1 010bf 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 010c2 89 14 01 mov DWORD PTR [ecx+eax], edx ; 185 : state[3] += d; 010c5 b8 04 00 00 00 mov eax, 4 010ca 6b c8 03 imul ecx, eax, 3 010cd 8b 55 08 mov edx, DWORD PTR _state$[ebp] 010d0 8b 04 0a mov eax, DWORD PTR [edx+ecx] 010d3 03 45 e8 add eax, DWORD PTR _d$[ebp] 010d6 b9 04 00 00 00 mov ecx, 4 010db 6b d1 03 imul edx, ecx, 3 010de 8b 4d 08 mov ecx, DWORD PTR _state$[ebp] 010e1 89 04 11 mov DWORD PTR [ecx+edx], eax ; 186 : ; 187 : /* Zeroize sensitive information. ; 188 : */ ; 189 : MD5_memset ((POINTER)x, 0, sizeof (x)); 010e4 6a 40 push 64 ; 00000040H 010e6 6a 00 push 0 010e8 8d 45 a8 lea eax, DWORD PTR _x$[ebp] 010eb 50 push eax 010ec 8b 4d f8 mov ecx, DWORD PTR _this$[ebp] 010ef e8 00 00 00 00 call ?MD5_memset@MD5_L@@QAEXPAEHI@Z ; MD5_L::MD5_memset ; 190 : } 010f4 5f pop edi 010f5 5e pop esi 010f6 5b pop ebx 010f7 8b 4d fc mov ecx, DWORD PTR __$ArrayPad$[ebp] 010fa 33 cd xor ecx, ebp 010fc e8 00 00 00 00 call @__security_check_cookie@4 01101 8b e5 mov esp, ebp 01103 5d pop ebp 01104 c2 08 00 ret 8 ?MD5Transform@MD5_L@@QAEXQAKQAE@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 __ArgList$ = -8 ; size = 4 __Result$ = -4 ; size = 4 __Buffer$ = 8 ; size = 4 __Format$ = 12 ; size = 4 _sprintf PROC ; COMDAT ; 1771 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 4c sub esp, 76 ; 0000004cH 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 1772 : int _Result; ; 1773 : va_list _ArgList; ; 1774 : __crt_va_start(_ArgList, _Format); 00009 8d 45 10 lea eax, DWORD PTR __Format$[ebp+4] 0000c 89 45 f8 mov DWORD PTR __ArgList$[ebp], eax ; 1775 : ; 1776 : _Result = _vsprintf_l(_Buffer, _Format, NULL, _ArgList); 0000f 8b 45 f8 mov eax, DWORD PTR __ArgList$[ebp] 00012 50 push eax 00013 6a 00 push 0 00015 8b 4d 0c mov ecx, DWORD PTR __Format$[ebp] 00018 51 push ecx 00019 8b 55 08 mov edx, DWORD PTR __Buffer$[ebp] 0001c 52 push edx 0001d e8 00 00 00 00 call __vsprintf_l 00022 83 c4 10 add esp, 16 ; 00000010H 00025 89 45 fc mov DWORD PTR __Result$[ebp], eax ; 1777 : ; 1778 : __crt_va_end(_ArgList); 00028 c7 45 f8 00 00 00 00 mov DWORD PTR __ArgList$[ebp], 0 ; 1779 : return _Result; 0002f 8b 45 fc mov eax, DWORD PTR __Result$[ebp] ; 1780 : } 00032 5f pop edi 00033 5e pop esi 00034 5b pop ebx 00035 8b e5 mov esp, ebp 00037 5d pop ebp 00038 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$ = 8 ; size = 4 __Format$ = 12 ; size = 4 __Locale$ = 16 ; size = 4 __ArgList$ = 20 ; size = 4 __vsprintf_l PROC ; COMDAT ; 1458 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 1459 : return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); 00009 8b 45 14 mov eax, DWORD PTR __ArgList$[ebp] 0000c 50 push eax 0000d 8b 4d 10 mov ecx, DWORD PTR __Locale$[ebp] 00010 51 push ecx 00011 8b 55 0c mov edx, DWORD PTR __Format$[ebp] 00014 52 push edx 00015 6a ff push -1 00017 8b 45 08 mov eax, DWORD PTR __Buffer$[ebp] 0001a 50 push eax 0001b e8 00 00 00 00 call __vsnprintf_l 00020 83 c4 14 add esp, 20 ; 00000014H ; 1460 : } 00023 5f pop edi 00024 5e pop esi 00025 5b pop ebx 00026 8b e5 mov esp, ebp 00028 5d pop ebp 00029 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 tv74 = -72 ; size = 4 __Result$ = -4 ; size = 4 __Buffer$ = 8 ; size = 4 __BufferCount$ = 12 ; size = 4 __Format$ = 16 ; size = 4 __Locale$ = 20 ; size = 4 __ArgList$ = 24 ; size = 4 __vsnprintf_l PROC ; COMDAT ; 1391 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 48 sub esp, 72 ; 00000048H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 1392 : int const _Result = __stdio_common_vsprintf( 00009 8b 45 18 mov eax, DWORD PTR __ArgList$[ebp] 0000c 50 push eax 0000d 8b 4d 14 mov ecx, DWORD PTR __Locale$[ebp] 00010 51 push ecx 00011 8b 55 10 mov edx, DWORD PTR __Format$[ebp] 00014 52 push edx 00015 8b 45 0c mov eax, DWORD PTR __BufferCount$[ebp] 00018 50 push eax 00019 8b 4d 08 mov ecx, DWORD PTR __Buffer$[ebp] 0001c 51 push ecx 0001d e8 00 00 00 00 call ___local_stdio_printf_options 00022 8b 10 mov edx, DWORD PTR [eax] 00024 83 ca 01 or edx, 1 00027 8b 40 04 mov eax, DWORD PTR [eax+4] 0002a 50 push eax 0002b 52 push edx 0002c e8 00 00 00 00 call ___stdio_common_vsprintf 00031 83 c4 1c add esp, 28 ; 0000001cH 00034 89 45 fc mov DWORD PTR __Result$[ebp], 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; 00037 83 7d fc 00 cmp DWORD PTR __Result$[ebp], 0 0003b 7d 09 jge SHORT $LN3@vsnprintf_ 0003d c7 45 b8 ff ff ff ff mov DWORD PTR tv74[ebp], -1 00044 eb 06 jmp SHORT $LN4@vsnprintf_ $LN3@vsnprintf_: 00046 8b 45 fc mov eax, DWORD PTR __Result$[ebp] 00049 89 45 b8 mov DWORD PTR tv74[ebp], eax $LN4@vsnprintf_: 0004c 8b 45 b8 mov eax, DWORD PTR tv74[ebp] ; 1397 : } 0004f 5f pop edi 00050 5e pop esi 00051 5b pop ebx 00052 8b e5 mov esp, ebp 00054 5d pop ebp 00055 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 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; 00009 b8 00 00 00 00 mov eax, OFFSET ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } 0000e 5f pop edi 0000f 5e pop esi 00010 5b pop ebx 00011 8b e5 mov esp, ebp 00013 5d pop ebp 00014 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@@YAXPAXIW4align_val_t@std@@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ___formal$ = 16 ; size = 4 ?__empty_global_delete@@YAXPAXIW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXIW4align_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@@YAXPAXW4align_val_t@std@@@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?__empty_global_delete@@YAXPAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXW4align_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@@YAXPAXI@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ___formal$ = 12 ; size = 4 ?__empty_global_delete@@YAXPAXI@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAXI@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@@YAXPAX@Z _TEXT SEGMENT ___formal$ = 8 ; size = 4 ?__empty_global_delete@@YAXPAX@Z PROC ; __empty_global_delete, COMDAT 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 5f pop edi 0000a 5e pop esi 0000b 5b pop ebx 0000c 8b e5 mov esp, ebp 0000e 5d pop ebp 0000f c3 ret 0 ?__empty_global_delete@@YAXPAX@Z ENDP ; __empty_global_delete _TEXT ENDS END