Update md5 assembly source for Win32.

This commit is contained in:
Dr. Stephen Henson 1999-05-26 00:39:20 +00:00
parent 288d2fb959
commit f9073fce9b

View file

@ -8,15 +8,16 @@
.386 .386
.model FLAT .model FLAT
_TEXT SEGMENT _TEXT SEGMENT
PUBLIC _md5_block_x86 PUBLIC _md5_block_asm_host_order
_md5_block_x86 PROC NEAR _md5_block_asm_host_order PROC NEAR
push esi push esi
push edi push edi
mov edi, DWORD PTR 12[esp] mov edi, DWORD PTR 12[esp]
mov esi, DWORD PTR 16[esp] mov esi, DWORD PTR 16[esp]
mov ecx, DWORD PTR 20[esp] mov ecx, DWORD PTR 20[esp]
push ebp push ebp
shl ecx, 6
push ebx push ebx
add ecx, esi add ecx, esi
sub ecx, 64 sub ecx, 64
@ -34,161 +35,161 @@ L000start:
xor edi, edx xor edi, edx
and edi, ebx and edi, ebx
lea eax, DWORD PTR 3614090360[ebp*1+eax] lea eax, DWORD PTR 3614090360[ebp*1+eax]
mov ebp, DWORD PTR 4[esi]
xor edi, edx xor edi, edx
add eax, edi add eax, edi
mov edi, ebx mov edi, ebx
rol eax, 7 rol eax, 7
mov ebp, DWORD PTR 4[esi]
add eax, ebx add eax, ebx
; R0 1 ; R0 1
xor edi, ecx xor edi, ecx
and edi, eax and edi, eax
lea edx, DWORD PTR 3905402710[ebp*1+edx] lea edx, DWORD PTR 3905402710[ebp*1+edx]
mov ebp, DWORD PTR 8[esi]
xor edi, ecx xor edi, ecx
add edx, edi add edx, edi
mov edi, eax mov edi, eax
rol edx, 12 rol edx, 12
mov ebp, DWORD PTR 8[esi]
add edx, eax add edx, eax
; R0 2 ; R0 2
xor edi, ebx xor edi, ebx
and edi, edx and edi, edx
lea ecx, DWORD PTR 606105819[ebp*1+ecx] lea ecx, DWORD PTR 606105819[ebp*1+ecx]
mov ebp, DWORD PTR 12[esi]
xor edi, ebx xor edi, ebx
add ecx, edi add ecx, edi
mov edi, edx mov edi, edx
rol ecx, 17 rol ecx, 17
mov ebp, DWORD PTR 12[esi]
add ecx, edx add ecx, edx
; R0 3 ; R0 3
xor edi, eax xor edi, eax
and edi, ecx and edi, ecx
lea ebx, DWORD PTR 3250441966[ebp*1+ebx] lea ebx, DWORD PTR 3250441966[ebp*1+ebx]
mov ebp, DWORD PTR 16[esi]
xor edi, eax xor edi, eax
add ebx, edi add ebx, edi
mov edi, ecx mov edi, ecx
rol ebx, 22 rol ebx, 22
mov ebp, DWORD PTR 16[esi]
add ebx, ecx add ebx, ecx
; R0 4 ; R0 4
xor edi, edx xor edi, edx
and edi, ebx and edi, ebx
lea eax, DWORD PTR 4118548399[ebp*1+eax] lea eax, DWORD PTR 4118548399[ebp*1+eax]
mov ebp, DWORD PTR 20[esi]
xor edi, edx xor edi, edx
add eax, edi add eax, edi
mov edi, ebx mov edi, ebx
rol eax, 7 rol eax, 7
mov ebp, DWORD PTR 20[esi]
add eax, ebx add eax, ebx
; R0 5 ; R0 5
xor edi, ecx xor edi, ecx
and edi, eax and edi, eax
lea edx, DWORD PTR 1200080426[ebp*1+edx] lea edx, DWORD PTR 1200080426[ebp*1+edx]
mov ebp, DWORD PTR 24[esi]
xor edi, ecx xor edi, ecx
add edx, edi add edx, edi
mov edi, eax mov edi, eax
rol edx, 12 rol edx, 12
mov ebp, DWORD PTR 24[esi]
add edx, eax add edx, eax
; R0 6 ; R0 6
xor edi, ebx xor edi, ebx
and edi, edx and edi, edx
lea ecx, DWORD PTR 2821735955[ebp*1+ecx] lea ecx, DWORD PTR 2821735955[ebp*1+ecx]
mov ebp, DWORD PTR 28[esi]
xor edi, ebx xor edi, ebx
add ecx, edi add ecx, edi
mov edi, edx mov edi, edx
rol ecx, 17 rol ecx, 17
mov ebp, DWORD PTR 28[esi]
add ecx, edx add ecx, edx
; R0 7 ; R0 7
xor edi, eax xor edi, eax
and edi, ecx and edi, ecx
lea ebx, DWORD PTR 4249261313[ebp*1+ebx] lea ebx, DWORD PTR 4249261313[ebp*1+ebx]
mov ebp, DWORD PTR 32[esi]
xor edi, eax xor edi, eax
add ebx, edi add ebx, edi
mov edi, ecx mov edi, ecx
rol ebx, 22 rol ebx, 22
mov ebp, DWORD PTR 32[esi]
add ebx, ecx add ebx, ecx
; R0 8 ; R0 8
xor edi, edx xor edi, edx
and edi, ebx and edi, ebx
lea eax, DWORD PTR 1770035416[ebp*1+eax] lea eax, DWORD PTR 1770035416[ebp*1+eax]
mov ebp, DWORD PTR 36[esi]
xor edi, edx xor edi, edx
add eax, edi add eax, edi
mov edi, ebx mov edi, ebx
rol eax, 7 rol eax, 7
mov ebp, DWORD PTR 36[esi]
add eax, ebx add eax, ebx
; R0 9 ; R0 9
xor edi, ecx xor edi, ecx
and edi, eax and edi, eax
lea edx, DWORD PTR 2336552879[ebp*1+edx] lea edx, DWORD PTR 2336552879[ebp*1+edx]
mov ebp, DWORD PTR 40[esi]
xor edi, ecx xor edi, ecx
add edx, edi add edx, edi
mov edi, eax mov edi, eax
rol edx, 12 rol edx, 12
mov ebp, DWORD PTR 40[esi]
add edx, eax add edx, eax
; R0 10 ; R0 10
xor edi, ebx xor edi, ebx
and edi, edx and edi, edx
lea ecx, DWORD PTR 4294925233[ebp*1+ecx] lea ecx, DWORD PTR 4294925233[ebp*1+ecx]
mov ebp, DWORD PTR 44[esi]
xor edi, ebx xor edi, ebx
add ecx, edi add ecx, edi
mov edi, edx mov edi, edx
rol ecx, 17 rol ecx, 17
mov ebp, DWORD PTR 44[esi]
add ecx, edx add ecx, edx
; R0 11 ; R0 11
xor edi, eax xor edi, eax
and edi, ecx and edi, ecx
lea ebx, DWORD PTR 2304563134[ebp*1+ebx] lea ebx, DWORD PTR 2304563134[ebp*1+ebx]
mov ebp, DWORD PTR 48[esi]
xor edi, eax xor edi, eax
add ebx, edi add ebx, edi
mov edi, ecx mov edi, ecx
rol ebx, 22 rol ebx, 22
mov ebp, DWORD PTR 48[esi]
add ebx, ecx add ebx, ecx
; R0 12 ; R0 12
xor edi, edx xor edi, edx
and edi, ebx and edi, ebx
lea eax, DWORD PTR 1804603682[ebp*1+eax] lea eax, DWORD PTR 1804603682[ebp*1+eax]
mov ebp, DWORD PTR 52[esi]
xor edi, edx xor edi, edx
add eax, edi add eax, edi
mov edi, ebx mov edi, ebx
rol eax, 7 rol eax, 7
mov ebp, DWORD PTR 52[esi]
add eax, ebx add eax, ebx
; R0 13 ; R0 13
xor edi, ecx xor edi, ecx
and edi, eax and edi, eax
lea edx, DWORD PTR 4254626195[ebp*1+edx] lea edx, DWORD PTR 4254626195[ebp*1+edx]
mov ebp, DWORD PTR 56[esi]
xor edi, ecx xor edi, ecx
add edx, edi add edx, edi
mov edi, eax mov edi, eax
rol edx, 12 rol edx, 12
mov ebp, DWORD PTR 56[esi]
add edx, eax add edx, eax
; R0 14 ; R0 14
xor edi, ebx xor edi, ebx
and edi, edx and edi, edx
lea ecx, DWORD PTR 2792965006[ebp*1+ecx] lea ecx, DWORD PTR 2792965006[ebp*1+ecx]
mov ebp, DWORD PTR 60[esi]
xor edi, ebx xor edi, ebx
add ecx, edi add ecx, edi
mov edi, edx mov edi, edx
rol ecx, 17 rol ecx, 17
mov ebp, DWORD PTR 60[esi]
add ecx, edx add ecx, edx
; R0 15 ; R0 15
xor edi, eax xor edi, eax
and edi, ecx and edi, ecx
lea ebx, DWORD PTR 1236535329[ebp*1+ebx] lea ebx, DWORD PTR 1236535329[ebp*1+ebx]
mov ebp, DWORD PTR 4[esi]
xor edi, eax xor edi, eax
add ebx, edi add ebx, edi
mov edi, ecx mov edi, ecx
rol ebx, 22 rol ebx, 22
mov ebp, DWORD PTR 4[esi]
add ebx, ecx add ebx, ecx
; ;
; R1 section ; R1 section
@ -359,8 +360,8 @@ L000start:
xor edi, ebx xor edi, ebx
lea eax, DWORD PTR 4294588738[ebp*1+eax] lea eax, DWORD PTR 4294588738[ebp*1+eax]
add eax, edi add eax, edi
mov ebp, DWORD PTR 32[esi]
rol eax, 4 rol eax, 4
mov ebp, DWORD PTR 32[esi]
mov edi, ebx mov edi, ebx
; R2 33 ; R2 33
lea edx, DWORD PTR 2272392833[ebp*1+edx] lea edx, DWORD PTR 2272392833[ebp*1+edx]
@ -377,8 +378,8 @@ L000start:
xor edi, edx xor edi, edx
lea ecx, DWORD PTR 1839030562[ebp*1+ecx] lea ecx, DWORD PTR 1839030562[ebp*1+ecx]
add ecx, edi add ecx, edi
mov ebp, DWORD PTR 56[esi]
rol ecx, 16 rol ecx, 16
mov ebp, DWORD PTR 56[esi]
mov edi, edx mov edi, edx
; R2 35 ; R2 35
lea ebx, DWORD PTR 4259657740[ebp*1+ebx] lea ebx, DWORD PTR 4259657740[ebp*1+ebx]
@ -395,8 +396,8 @@ L000start:
xor edi, ebx xor edi, ebx
lea eax, DWORD PTR 2763975236[ebp*1+eax] lea eax, DWORD PTR 2763975236[ebp*1+eax]
add eax, edi add eax, edi
mov ebp, DWORD PTR 16[esi]
rol eax, 4 rol eax, 4
mov ebp, DWORD PTR 16[esi]
mov edi, ebx mov edi, ebx
; R2 37 ; R2 37
lea edx, DWORD PTR 1272893353[ebp*1+edx] lea edx, DWORD PTR 1272893353[ebp*1+edx]
@ -413,8 +414,8 @@ L000start:
xor edi, edx xor edi, edx
lea ecx, DWORD PTR 4139469664[ebp*1+ecx] lea ecx, DWORD PTR 4139469664[ebp*1+ecx]
add ecx, edi add ecx, edi
mov ebp, DWORD PTR 40[esi]
rol ecx, 16 rol ecx, 16
mov ebp, DWORD PTR 40[esi]
mov edi, edx mov edi, edx
; R2 39 ; R2 39
lea ebx, DWORD PTR 3200236656[ebp*1+ebx] lea ebx, DWORD PTR 3200236656[ebp*1+ebx]
@ -431,8 +432,8 @@ L000start:
xor edi, ebx xor edi, ebx
lea eax, DWORD PTR 681279174[ebp*1+eax] lea eax, DWORD PTR 681279174[ebp*1+eax]
add eax, edi add eax, edi
mov ebp, DWORD PTR [esi]
rol eax, 4 rol eax, 4
mov ebp, DWORD PTR [esi]
mov edi, ebx mov edi, ebx
; R2 41 ; R2 41
lea edx, DWORD PTR 3936430074[ebp*1+edx] lea edx, DWORD PTR 3936430074[ebp*1+edx]
@ -449,8 +450,8 @@ L000start:
xor edi, edx xor edi, edx
lea ecx, DWORD PTR 3572445317[ebp*1+ecx] lea ecx, DWORD PTR 3572445317[ebp*1+ecx]
add ecx, edi add ecx, edi
mov ebp, DWORD PTR 24[esi]
rol ecx, 16 rol ecx, 16
mov ebp, DWORD PTR 24[esi]
mov edi, edx mov edi, edx
; R2 43 ; R2 43
lea ebx, DWORD PTR 76029189[ebp*1+ebx] lea ebx, DWORD PTR 76029189[ebp*1+ebx]
@ -467,8 +468,8 @@ L000start:
xor edi, ebx xor edi, ebx
lea eax, DWORD PTR 3654602809[ebp*1+eax] lea eax, DWORD PTR 3654602809[ebp*1+eax]
add eax, edi add eax, edi
mov ebp, DWORD PTR 48[esi]
rol eax, 4 rol eax, 4
mov ebp, DWORD PTR 48[esi]
mov edi, ebx mov edi, ebx
; R2 45 ; R2 45
lea edx, DWORD PTR 3873151461[ebp*1+edx] lea edx, DWORD PTR 3873151461[ebp*1+edx]
@ -485,8 +486,8 @@ L000start:
xor edi, edx xor edi, edx
lea ecx, DWORD PTR 530742520[ebp*1+ecx] lea ecx, DWORD PTR 530742520[ebp*1+ecx]
add ecx, edi add ecx, edi
mov ebp, DWORD PTR 8[esi]
rol ecx, 16 rol ecx, 16
mov ebp, DWORD PTR 8[esi]
mov edi, edx mov edi, edx
; R2 47 ; R2 47
lea ebx, DWORD PTR 3299628645[ebp*1+ebx] lea ebx, DWORD PTR 3299628645[ebp*1+ebx]
@ -681,6 +682,6 @@ L000start:
pop edi pop edi
pop esi pop esi
ret ret
_md5_block_x86 ENDP _md5_block_asm_host_order ENDP
_TEXT ENDS _TEXT ENDS
END END