就是MD5
00401203 |. 8B06 mov eax, dword ptr [esi] ; 67452301
00401205 |. 8B7E 04 mov edi, dword ptr [esi+4] ; EFCDAB89
00401208 |. 8B5E 08 mov ebx, dword ptr [esi+8] ; 98BADCFE
0040120B |. 8B6E 0C mov ebp, dword ptr [esi+C] ; 10325476
0040120E |. 51 push ecx
0040120F |. 52 push edx
00401210 |. 8BCE mov ecx, esi
00401212 |. 894424 1C mov dword ptr [esp+1C], eax ; 保存EAX的值
00401216 |. E8 65090000 call 00401B80 ; 存储11141497sDx5show
这段就是调用MD5的初始化代码
align dword
MD5Init proc uses edi
xor eax, eax
mov MD5Len,eax
MD5BURN
mov eax,offset MD5Digest
mov dword ptr [eax+0*4],067452301h
mov dword ptr [eax+1*4],0EFCDAB89h
mov dword ptr [eax+2*4],098BADCFEh
mov dword ptr [eax+3*4],010325476h
ret
MD5Init endp
align dword
MD5Update proc uses esi edi ebx lpBuffer:dword, dwBufLen:dword
mov ebx,dwBufLen
mov esi,lpBuffer
add MD5Len,ebx
.while ebx
mov eax,MD5Index
mov ecx,64
sub ecx,eax
lea edi,[MD5HashBuf+eax]
.if ecx <= ebx
sub ebx,ecx
rep movsb
call MD5Transform
MD5BURN
.else
mov ecx,ebx
rep movsb
add MD5Index,ebx
.break
.endif
.endw
ret
MD5Update endp