Update md5 assembly source for Win32.
This commit is contained in:
parent
288d2fb959
commit
f9073fce9b
1 changed files with 28 additions and 27 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue