SmsCenter/Release_Unicode/MD5_L.cod
2025-01-03 16:47:25 +08:00

3507 lines
118 KiB
Plaintext

; 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