summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/md5
diff options
context:
space:
mode:
authorcvs2svn <admin@example.com>1998-10-05 20:13:17 +0000
committercvs2svn <admin@example.com>1998-10-05 20:13:17 +0000
commite82f18fab47b698d93971f576f962a3068132912 (patch)
tree681519717892864935c3d0533cf171098afa649a /src/lib/libcrypto/md5
parent536c76cbb863bab152f19842ab88772c01e922c7 (diff)
downloadopenbsd-SSLeay_0_9_0b.tar.gz
openbsd-SSLeay_0_9_0b.tar.bz2
openbsd-SSLeay_0_9_0b.zip
This commit was manufactured by cvs2git to create tag 'SSLeay_0_9_0b'.SSLeay_0_9_0b
Diffstat (limited to 'src/lib/libcrypto/md5')
-rw-r--r--src/lib/libcrypto/md5/Makefile.ssl104
-rw-r--r--src/lib/libcrypto/md5/Makefile.uni109
-rw-r--r--src/lib/libcrypto/md5/asm/m5-win32.asm686
-rw-r--r--src/lib/libcrypto/md5/asm/mx86unix.cpp730
4 files changed, 1629 insertions, 0 deletions
diff --git a/src/lib/libcrypto/md5/Makefile.ssl b/src/lib/libcrypto/md5/Makefile.ssl
new file mode 100644
index 0000000000..47e1ce05ca
--- /dev/null
+++ b/src/lib/libcrypto/md5/Makefile.ssl
@@ -0,0 +1,104 @@
1#
2# SSLeay/crypto/md5/Makefile
3#
4
5DIR= md5
6TOP= ../..
7CC= cc
8CPP= $(CC) -E
9INCLUDES=
10CFLAG=-g
11INSTALLTOP=/usr/local/ssl
12MAKE= make -f Makefile.ssl
13MAKEDEPEND= makedepend -f Makefile.ssl
14MAKEFILE= Makefile.ssl
15AR= ar r
16
17MD5_ASM_OBJ=
18
19CFLAGS= $(INCLUDES) $(CFLAG)
20
21GENERAL=Makefile
22TEST=md5test.c
23APPS=md5.c
24
25LIB=$(TOP)/libcrypto.a
26LIBSRC=md5_dgst.c md5_one.c
27LIBOBJ=md5_dgst.o md5_one.o $(MD5_ASM_OBJ)
28
29SRC= $(LIBSRC)
30
31EXHEADER= md5.h
32HEADER= md5_locl.h $(EXHEADER)
33
34ALL= $(GENERAL) $(SRC) $(HEADER)
35
36top:
37 (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
38
39all: lib
40
41lib: $(LIBOBJ)
42 $(AR) $(LIB) $(LIBOBJ)
43 sh $(TOP)/util/ranlib.sh $(LIB)
44 @touch lib
45
46# elf
47asm/mx86-elf.o: asm/mx86unix.cpp
48 $(CPP) -DELF asm/mx86unix.cpp | as -o asm/mx86-elf.o
49
50# solaris
51asm/mx86-sol.o: asm/mx86unix.cpp
52 $(CC) -E -DSOL asm/mx86unix.cpp | sed 's/^#.*//' > asm/mx86-sol.s
53 as -o asm/mx86-sol.o asm/mx86-sol.s
54 rm -f asm/mx86-sol.s
55
56# a.out
57asm/mx86-out.o: asm/mx86unix.cpp
58 $(CPP) -DOUT asm/mx86unix.cpp | as -o asm/mx86-out.o
59
60# bsdi
61asm/mx86bsdi.o: asm/mx86unix.cpp
62 $(CPP) -DBSDI asm/mx86unix.cpp | as -o asm/mx86bsdi.o
63
64asm/mx86unix.cpp:
65 (cd asm; perl md5-586.pl cpp >mx86unix.cpp)
66
67files:
68 perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
69
70links:
71 /bin/rm -f Makefile
72 $(TOP)/util/point.sh Makefile.ssl Makefile ;
73 $(TOP)/util/mklink.sh ../../include $(EXHEADER)
74 $(TOP)/util/mklink.sh ../../test $(TEST)
75 $(TOP)/util/mklink.sh ../../apps $(APPS)
76
77install:
78 @for i in $(EXHEADER) ; \
79 do \
80 (cp $$i $(INSTALLTOP)/include/$$i; \
81 chmod 644 $(INSTALLTOP)/include/$$i ); \
82 done;
83
84tags:
85 ctags $(SRC)
86
87tests:
88
89lint:
90 lint -DLINT $(INCLUDES) $(SRC)>fluff
91
92depend:
93 $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC)
94
95dclean:
96 perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
97 mv -f Makefile.new $(MAKEFILE)
98
99clean:
100 /bin/rm -f *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
101
102errors:
103
104# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/src/lib/libcrypto/md5/Makefile.uni b/src/lib/libcrypto/md5/Makefile.uni
new file mode 100644
index 0000000000..54685712db
--- /dev/null
+++ b/src/lib/libcrypto/md5/Makefile.uni
@@ -0,0 +1,109 @@
1# Targets
2# make - twidle the options yourself :-)
3# make cc - standard cc options
4# make gcc - standard gcc options
5# make x86-elf - linux-elf etc
6# make x86-out - linux-a.out, FreeBSD etc
7# make x86-solaris
8# make x86-bdsi
9
10DIR= md5
11TOP= .
12CC= gcc
13CFLAG= -O3 -fomit-frame-pointer
14
15CPP= $(CC) -E
16INCLUDES=
17INSTALLTOP=/usr/local/lib
18MAKE= make
19MAKEDEPEND= makedepend
20MAKEFILE= Makefile.uni
21AR= ar r
22
23MD5_ASM_OBJ=
24
25CFLAGS= $(INCLUDES) $(CFLAG)
26
27GENERAL=Makefile
28TEST=md5test
29APPS=md5
30
31LIB=libmd5.a
32LIBSRC=md5_dgst.c md5_one.c
33LIBOBJ=md5_dgst.o md5_one.o $(MD5_ASM_OBJ)
34
35SRC= $(LIBSRC)
36
37EXHEADER= md5.h
38HEADER= md5_locl.h $(EXHEADER)
39
40ALL= $(GENERAL) $(SRC) $(HEADER)
41
42all: $(LIB) $(TEST) $(APPS)
43
44$(LIB): $(LIBOBJ)
45 $(AR) $(LIB) $(LIBOBJ)
46 sh $(TOP)/ranlib.sh $(LIB)
47
48# elf
49asm/mx86-elf.o: asm/mx86unix.cpp
50 $(CPP) -DELF asm/mx86unix.cpp | as -o asm/mx86-elf.o
51
52# solaris
53asm/mx86-sol.o: asm/mx86unix.cpp
54 $(CC) -E -DSOL asm/mx86unix.cpp | sed 's/^#.*//' > asm/mx86-sol.s
55 as -o asm/mx86-sol.o asm/mx86-sol.s
56 rm -f asm/mx86-sol.s
57
58# a.out
59asm/mx86-out.o: asm/mx86unix.cpp
60 $(CPP) -DOUT asm/mx86unix.cpp | as -o asm/mx86-out.o
61
62# bsdi
63asm/mx86bsdi.o: asm/mx86unix.cpp
64 $(CPP) -DBSDI asm/mx86unix.cpp | as -o asm/mx86bsdi.o
65
66asm/mx86unix.cpp:
67 (cd asm; perl md5-586.pl cpp >mx86unix.cpp)
68
69test: $(TEST)
70 ./$(TEST)
71
72$(TEST): $(TEST).c $(LIB)
73 $(CC) -o $(TEST) $(CFLAGS) $(TEST).c $(LIB)
74
75$(APPS): $(APPS).c $(LIB)
76 $(CC) -o $(APPS) $(CFLAGS) $(APPS).c $(LIB)
77
78lint:
79 lint -DLINT $(INCLUDES) $(SRC)>fluff
80
81depend:
82 $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC)
83
84dclean:
85 perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
86 mv -f Makefile.new $(MAKEFILE)
87
88clean:
89 /bin/rm -f $(LIB) $(TEST) $(APPS) *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
90
91cc:
92 $(MAKE) MD5_ASM_OBJ="" CC="cc" CFLAG="-O" all
93
94gcc:
95 $(MAKE) MD5_ASM_OBJ="" CC="gcc" CFLAGS="-O3 -fomit-frame-pointer" all
96
97x86-elf:
98 $(MAKE) MD5_ASM_OBJ="asm/mx86-elf.o" CFLAG="-DELF -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
99
100x86-out:
101 $(MAKE) MD5_ASM_OBJ="asm/mx86-out.o" CFLAG="-DOUT -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
102
103x86-solaris:
104 $(MAKE) MD5_ASM_OBJ="asm/mx86-sol.o" CFLAG="-DSOL -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
105
106x86-bdsi:
107 $(MAKE) MD5_ASM_OBJ="asm/mx86-bdsi.o" CFLAG="-DBDSI -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
108
109# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/src/lib/libcrypto/md5/asm/m5-win32.asm b/src/lib/libcrypto/md5/asm/m5-win32.asm
new file mode 100644
index 0000000000..c2081da746
--- /dev/null
+++ b/src/lib/libcrypto/md5/asm/m5-win32.asm
@@ -0,0 +1,686 @@
1 ; Don't even think of reading this code
2 ; It was automatically generated by md5-586.pl
3 ; Which is a perl program used to generate the x86 assember for
4 ; any of elf, a.out, BSDI,Win32, or Solaris
5 ; eric <eay@cryptsoft.com>
6 ;
7 TITLE md5-586.asm
8 .386
9.model FLAT
10_TEXT SEGMENT
11PUBLIC _md5_block_x86
12
13_md5_block_x86 PROC NEAR
14 push esi
15 push edi
16 mov edi, DWORD PTR 12[esp]
17 mov esi, DWORD PTR 16[esp]
18 mov ecx, DWORD PTR 20[esp]
19 push ebp
20 push ebx
21 add ecx, esi
22 sub ecx, 64
23 mov eax, DWORD PTR [edi]
24 push ecx
25 mov ebx, DWORD PTR 4[edi]
26 mov ecx, DWORD PTR 8[edi]
27 mov edx, DWORD PTR 12[edi]
28L000start:
29 ;
30 ; R0 section
31 mov edi, ecx
32 mov ebp, DWORD PTR [esi]
33 ; R0 0
34 xor edi, edx
35 and edi, ebx
36 lea eax, DWORD PTR 3614090360[ebp*1+eax]
37 mov ebp, DWORD PTR 4[esi]
38 xor edi, edx
39 add eax, edi
40 mov edi, ebx
41 rol eax, 7
42 add eax, ebx
43 ; R0 1
44 xor edi, ecx
45 and edi, eax
46 lea edx, DWORD PTR 3905402710[ebp*1+edx]
47 mov ebp, DWORD PTR 8[esi]
48 xor edi, ecx
49 add edx, edi
50 mov edi, eax
51 rol edx, 12
52 add edx, eax
53 ; R0 2
54 xor edi, ebx
55 and edi, edx
56 lea ecx, DWORD PTR 606105819[ebp*1+ecx]
57 mov ebp, DWORD PTR 12[esi]
58 xor edi, ebx
59 add ecx, edi
60 mov edi, edx
61 rol ecx, 17
62 add ecx, edx
63 ; R0 3
64 xor edi, eax
65 and edi, ecx
66 lea ebx, DWORD PTR 3250441966[ebp*1+ebx]
67 mov ebp, DWORD PTR 16[esi]
68 xor edi, eax
69 add ebx, edi
70 mov edi, ecx
71 rol ebx, 22
72 add ebx, ecx
73 ; R0 4
74 xor edi, edx
75 and edi, ebx
76 lea eax, DWORD PTR 4118548399[ebp*1+eax]
77 mov ebp, DWORD PTR 20[esi]
78 xor edi, edx
79 add eax, edi
80 mov edi, ebx
81 rol eax, 7
82 add eax, ebx
83 ; R0 5
84 xor edi, ecx
85 and edi, eax
86 lea edx, DWORD PTR 1200080426[ebp*1+edx]
87 mov ebp, DWORD PTR 24[esi]
88 xor edi, ecx
89 add edx, edi
90 mov edi, eax
91 rol edx, 12
92 add edx, eax
93 ; R0 6
94 xor edi, ebx
95 and edi, edx
96 lea ecx, DWORD PTR 2821735955[ebp*1+ecx]
97 mov ebp, DWORD PTR 28[esi]
98 xor edi, ebx
99 add ecx, edi
100 mov edi, edx
101 rol ecx, 17
102 add ecx, edx
103 ; R0 7
104 xor edi, eax
105 and edi, ecx
106 lea ebx, DWORD PTR 4249261313[ebp*1+ebx]
107 mov ebp, DWORD PTR 32[esi]
108 xor edi, eax
109 add ebx, edi
110 mov edi, ecx
111 rol ebx, 22
112 add ebx, ecx
113 ; R0 8
114 xor edi, edx
115 and edi, ebx
116 lea eax, DWORD PTR 1770035416[ebp*1+eax]
117 mov ebp, DWORD PTR 36[esi]
118 xor edi, edx
119 add eax, edi
120 mov edi, ebx
121 rol eax, 7
122 add eax, ebx
123 ; R0 9
124 xor edi, ecx
125 and edi, eax
126 lea edx, DWORD PTR 2336552879[ebp*1+edx]
127 mov ebp, DWORD PTR 40[esi]
128 xor edi, ecx
129 add edx, edi
130 mov edi, eax
131 rol edx, 12
132 add edx, eax
133 ; R0 10
134 xor edi, ebx
135 and edi, edx
136 lea ecx, DWORD PTR 4294925233[ebp*1+ecx]
137 mov ebp, DWORD PTR 44[esi]
138 xor edi, ebx
139 add ecx, edi
140 mov edi, edx
141 rol ecx, 17
142 add ecx, edx
143 ; R0 11
144 xor edi, eax
145 and edi, ecx
146 lea ebx, DWORD PTR 2304563134[ebp*1+ebx]
147 mov ebp, DWORD PTR 48[esi]
148 xor edi, eax
149 add ebx, edi
150 mov edi, ecx
151 rol ebx, 22
152 add ebx, ecx
153 ; R0 12
154 xor edi, edx
155 and edi, ebx
156 lea eax, DWORD PTR 1804603682[ebp*1+eax]
157 mov ebp, DWORD PTR 52[esi]
158 xor edi, edx
159 add eax, edi
160 mov edi, ebx
161 rol eax, 7
162 add eax, ebx
163 ; R0 13
164 xor edi, ecx
165 and edi, eax
166 lea edx, DWORD PTR 4254626195[ebp*1+edx]
167 mov ebp, DWORD PTR 56[esi]
168 xor edi, ecx
169 add edx, edi
170 mov edi, eax
171 rol edx, 12
172 add edx, eax
173 ; R0 14
174 xor edi, ebx
175 and edi, edx
176 lea ecx, DWORD PTR 2792965006[ebp*1+ecx]
177 mov ebp, DWORD PTR 60[esi]
178 xor edi, ebx
179 add ecx, edi
180 mov edi, edx
181 rol ecx, 17
182 add ecx, edx
183 ; R0 15
184 xor edi, eax
185 and edi, ecx
186 lea ebx, DWORD PTR 1236535329[ebp*1+ebx]
187 mov ebp, DWORD PTR 4[esi]
188 xor edi, eax
189 add ebx, edi
190 mov edi, ecx
191 rol ebx, 22
192 add ebx, ecx
193 ;
194 ; R1 section
195 ; R1 16
196 lea eax, DWORD PTR 4129170786[ebp*1+eax]
197 xor edi, ebx
198 and edi, edx
199 mov ebp, DWORD PTR 24[esi]
200 xor edi, ecx
201 add eax, edi
202 mov edi, ebx
203 rol eax, 5
204 add eax, ebx
205 ; R1 17
206 lea edx, DWORD PTR 3225465664[ebp*1+edx]
207 xor edi, eax
208 and edi, ecx
209 mov ebp, DWORD PTR 44[esi]
210 xor edi, ebx
211 add edx, edi
212 mov edi, eax
213 rol edx, 9
214 add edx, eax
215 ; R1 18
216 lea ecx, DWORD PTR 643717713[ebp*1+ecx]
217 xor edi, edx
218 and edi, ebx
219 mov ebp, DWORD PTR [esi]
220 xor edi, eax
221 add ecx, edi
222 mov edi, edx
223 rol ecx, 14
224 add ecx, edx
225 ; R1 19
226 lea ebx, DWORD PTR 3921069994[ebp*1+ebx]
227 xor edi, ecx
228 and edi, eax
229 mov ebp, DWORD PTR 20[esi]
230 xor edi, edx
231 add ebx, edi
232 mov edi, ecx
233 rol ebx, 20
234 add ebx, ecx
235 ; R1 20
236 lea eax, DWORD PTR 3593408605[ebp*1+eax]
237 xor edi, ebx
238 and edi, edx
239 mov ebp, DWORD PTR 40[esi]
240 xor edi, ecx
241 add eax, edi
242 mov edi, ebx
243 rol eax, 5
244 add eax, ebx
245 ; R1 21
246 lea edx, DWORD PTR 38016083[ebp*1+edx]
247 xor edi, eax
248 and edi, ecx
249 mov ebp, DWORD PTR 60[esi]
250 xor edi, ebx
251 add edx, edi
252 mov edi, eax
253 rol edx, 9
254 add edx, eax
255 ; R1 22
256 lea ecx, DWORD PTR 3634488961[ebp*1+ecx]
257 xor edi, edx
258 and edi, ebx
259 mov ebp, DWORD PTR 16[esi]
260 xor edi, eax
261 add ecx, edi
262 mov edi, edx
263 rol ecx, 14
264 add ecx, edx
265 ; R1 23
266 lea ebx, DWORD PTR 3889429448[ebp*1+ebx]
267 xor edi, ecx
268 and edi, eax
269 mov ebp, DWORD PTR 36[esi]
270 xor edi, edx
271 add ebx, edi
272 mov edi, ecx
273 rol ebx, 20
274 add ebx, ecx
275 ; R1 24
276 lea eax, DWORD PTR 568446438[ebp*1+eax]
277 xor edi, ebx
278 and edi, edx
279 mov ebp, DWORD PTR 56[esi]
280 xor edi, ecx
281 add eax, edi
282 mov edi, ebx
283 rol eax, 5
284 add eax, ebx
285 ; R1 25
286 lea edx, DWORD PTR 3275163606[ebp*1+edx]
287 xor edi, eax
288 and edi, ecx
289 mov ebp, DWORD PTR 12[esi]
290 xor edi, ebx
291 add edx, edi
292 mov edi, eax
293 rol edx, 9
294 add edx, eax
295 ; R1 26
296 lea ecx, DWORD PTR 4107603335[ebp*1+ecx]
297 xor edi, edx
298 and edi, ebx
299 mov ebp, DWORD PTR 32[esi]
300 xor edi, eax
301 add ecx, edi
302 mov edi, edx
303 rol ecx, 14
304 add ecx, edx
305 ; R1 27
306 lea ebx, DWORD PTR 1163531501[ebp*1+ebx]
307 xor edi, ecx
308 and edi, eax
309 mov ebp, DWORD PTR 52[esi]
310 xor edi, edx
311 add ebx, edi
312 mov edi, ecx
313 rol ebx, 20
314 add ebx, ecx
315 ; R1 28
316 lea eax, DWORD PTR 2850285829[ebp*1+eax]
317 xor edi, ebx
318 and edi, edx
319 mov ebp, DWORD PTR 8[esi]
320 xor edi, ecx
321 add eax, edi
322 mov edi, ebx
323 rol eax, 5
324 add eax, ebx
325 ; R1 29
326 lea edx, DWORD PTR 4243563512[ebp*1+edx]
327 xor edi, eax
328 and edi, ecx
329 mov ebp, DWORD PTR 28[esi]
330 xor edi, ebx
331 add edx, edi
332 mov edi, eax
333 rol edx, 9
334 add edx, eax
335 ; R1 30
336 lea ecx, DWORD PTR 1735328473[ebp*1+ecx]
337 xor edi, edx
338 and edi, ebx
339 mov ebp, DWORD PTR 48[esi]
340 xor edi, eax
341 add ecx, edi
342 mov edi, edx
343 rol ecx, 14
344 add ecx, edx
345 ; R1 31
346 lea ebx, DWORD PTR 2368359562[ebp*1+ebx]
347 xor edi, ecx
348 and edi, eax
349 mov ebp, DWORD PTR 20[esi]
350 xor edi, edx
351 add ebx, edi
352 mov edi, ecx
353 rol ebx, 20
354 add ebx, ecx
355 ;
356 ; R2 section
357 ; R2 32
358 xor edi, edx
359 xor edi, ebx
360 lea eax, DWORD PTR 4294588738[ebp*1+eax]
361 add eax, edi
362 mov ebp, DWORD PTR 32[esi]
363 rol eax, 4
364 mov edi, ebx
365 ; R2 33
366 lea edx, DWORD PTR 2272392833[ebp*1+edx]
367 add eax, ebx
368 xor edi, ecx
369 xor edi, eax
370 mov ebp, DWORD PTR 44[esi]
371 add edx, edi
372 mov edi, eax
373 rol edx, 11
374 add edx, eax
375 ; R2 34
376 xor edi, ebx
377 xor edi, edx
378 lea ecx, DWORD PTR 1839030562[ebp*1+ecx]
379 add ecx, edi
380 mov ebp, DWORD PTR 56[esi]
381 rol ecx, 16
382 mov edi, edx
383 ; R2 35
384 lea ebx, DWORD PTR 4259657740[ebp*1+ebx]
385 add ecx, edx
386 xor edi, eax
387 xor edi, ecx
388 mov ebp, DWORD PTR 4[esi]
389 add ebx, edi
390 mov edi, ecx
391 rol ebx, 23
392 add ebx, ecx
393 ; R2 36
394 xor edi, edx
395 xor edi, ebx
396 lea eax, DWORD PTR 2763975236[ebp*1+eax]
397 add eax, edi
398 mov ebp, DWORD PTR 16[esi]
399 rol eax, 4
400 mov edi, ebx
401 ; R2 37
402 lea edx, DWORD PTR 1272893353[ebp*1+edx]
403 add eax, ebx
404 xor edi, ecx
405 xor edi, eax
406 mov ebp, DWORD PTR 28[esi]
407 add edx, edi
408 mov edi, eax
409 rol edx, 11
410 add edx, eax
411 ; R2 38
412 xor edi, ebx
413 xor edi, edx
414 lea ecx, DWORD PTR 4139469664[ebp*1+ecx]
415 add ecx, edi
416 mov ebp, DWORD PTR 40[esi]
417 rol ecx, 16
418 mov edi, edx
419 ; R2 39
420 lea ebx, DWORD PTR 3200236656[ebp*1+ebx]
421 add ecx, edx
422 xor edi, eax
423 xor edi, ecx
424 mov ebp, DWORD PTR 52[esi]
425 add ebx, edi
426 mov edi, ecx
427 rol ebx, 23
428 add ebx, ecx
429 ; R2 40
430 xor edi, edx
431 xor edi, ebx
432 lea eax, DWORD PTR 681279174[ebp*1+eax]
433 add eax, edi
434 mov ebp, DWORD PTR [esi]
435 rol eax, 4
436 mov edi, ebx
437 ; R2 41
438 lea edx, DWORD PTR 3936430074[ebp*1+edx]
439 add eax, ebx
440 xor edi, ecx
441 xor edi, eax
442 mov ebp, DWORD PTR 12[esi]
443 add edx, edi
444 mov edi, eax
445 rol edx, 11
446 add edx, eax
447 ; R2 42
448 xor edi, ebx
449 xor edi, edx
450 lea ecx, DWORD PTR 3572445317[ebp*1+ecx]
451 add ecx, edi
452 mov ebp, DWORD PTR 24[esi]
453 rol ecx, 16
454 mov edi, edx
455 ; R2 43
456 lea ebx, DWORD PTR 76029189[ebp*1+ebx]
457 add ecx, edx
458 xor edi, eax
459 xor edi, ecx
460 mov ebp, DWORD PTR 36[esi]
461 add ebx, edi
462 mov edi, ecx
463 rol ebx, 23
464 add ebx, ecx
465 ; R2 44
466 xor edi, edx
467 xor edi, ebx
468 lea eax, DWORD PTR 3654602809[ebp*1+eax]
469 add eax, edi
470 mov ebp, DWORD PTR 48[esi]
471 rol eax, 4
472 mov edi, ebx
473 ; R2 45
474 lea edx, DWORD PTR 3873151461[ebp*1+edx]
475 add eax, ebx
476 xor edi, ecx
477 xor edi, eax
478 mov ebp, DWORD PTR 60[esi]
479 add edx, edi
480 mov edi, eax
481 rol edx, 11
482 add edx, eax
483 ; R2 46
484 xor edi, ebx
485 xor edi, edx
486 lea ecx, DWORD PTR 530742520[ebp*1+ecx]
487 add ecx, edi
488 mov ebp, DWORD PTR 8[esi]
489 rol ecx, 16
490 mov edi, edx
491 ; R2 47
492 lea ebx, DWORD PTR 3299628645[ebp*1+ebx]
493 add ecx, edx
494 xor edi, eax
495 xor edi, ecx
496 mov ebp, DWORD PTR [esi]
497 add ebx, edi
498 mov edi, -1
499 rol ebx, 23
500 add ebx, ecx
501 ;
502 ; R3 section
503 ; R3 48
504 xor edi, edx
505 or edi, ebx
506 lea eax, DWORD PTR 4096336452[ebp*1+eax]
507 xor edi, ecx
508 mov ebp, DWORD PTR 28[esi]
509 add eax, edi
510 mov edi, -1
511 rol eax, 6
512 xor edi, ecx
513 add eax, ebx
514 ; R3 49
515 or edi, eax
516 lea edx, DWORD PTR 1126891415[ebp*1+edx]
517 xor edi, ebx
518 mov ebp, DWORD PTR 56[esi]
519 add edx, edi
520 mov edi, -1
521 rol edx, 10
522 xor edi, ebx
523 add edx, eax
524 ; R3 50
525 or edi, edx
526 lea ecx, DWORD PTR 2878612391[ebp*1+ecx]
527 xor edi, eax
528 mov ebp, DWORD PTR 20[esi]
529 add ecx, edi
530 mov edi, -1
531 rol ecx, 15
532 xor edi, eax
533 add ecx, edx
534 ; R3 51
535 or edi, ecx
536 lea ebx, DWORD PTR 4237533241[ebp*1+ebx]
537 xor edi, edx
538 mov ebp, DWORD PTR 48[esi]
539 add ebx, edi
540 mov edi, -1
541 rol ebx, 21
542 xor edi, edx
543 add ebx, ecx
544 ; R3 52
545 or edi, ebx
546 lea eax, DWORD PTR 1700485571[ebp*1+eax]
547 xor edi, ecx
548 mov ebp, DWORD PTR 12[esi]
549 add eax, edi
550 mov edi, -1
551 rol eax, 6
552 xor edi, ecx
553 add eax, ebx
554 ; R3 53
555 or edi, eax
556 lea edx, DWORD PTR 2399980690[ebp*1+edx]
557 xor edi, ebx
558 mov ebp, DWORD PTR 40[esi]
559 add edx, edi
560 mov edi, -1
561 rol edx, 10
562 xor edi, ebx
563 add edx, eax
564 ; R3 54
565 or edi, edx
566 lea ecx, DWORD PTR 4293915773[ebp*1+ecx]
567 xor edi, eax
568 mov ebp, DWORD PTR 4[esi]
569 add ecx, edi
570 mov edi, -1
571 rol ecx, 15
572 xor edi, eax
573 add ecx, edx
574 ; R3 55
575 or edi, ecx
576 lea ebx, DWORD PTR 2240044497[ebp*1+ebx]
577 xor edi, edx
578 mov ebp, DWORD PTR 32[esi]
579 add ebx, edi
580 mov edi, -1
581 rol ebx, 21
582 xor edi, edx
583 add ebx, ecx
584 ; R3 56
585 or edi, ebx
586 lea eax, DWORD PTR 1873313359[ebp*1+eax]
587 xor edi, ecx
588 mov ebp, DWORD PTR 60[esi]
589 add eax, edi
590 mov edi, -1
591 rol eax, 6
592 xor edi, ecx
593 add eax, ebx
594 ; R3 57
595 or edi, eax
596 lea edx, DWORD PTR 4264355552[ebp*1+edx]
597 xor edi, ebx
598 mov ebp, DWORD PTR 24[esi]
599 add edx, edi
600 mov edi, -1
601 rol edx, 10
602 xor edi, ebx
603 add edx, eax
604 ; R3 58
605 or edi, edx
606 lea ecx, DWORD PTR 2734768916[ebp*1+ecx]
607 xor edi, eax
608 mov ebp, DWORD PTR 52[esi]
609 add ecx, edi
610 mov edi, -1
611 rol ecx, 15
612 xor edi, eax
613 add ecx, edx
614 ; R3 59
615 or edi, ecx
616 lea ebx, DWORD PTR 1309151649[ebp*1+ebx]
617 xor edi, edx
618 mov ebp, DWORD PTR 16[esi]
619 add ebx, edi
620 mov edi, -1
621 rol ebx, 21
622 xor edi, edx
623 add ebx, ecx
624 ; R3 60
625 or edi, ebx
626 lea eax, DWORD PTR 4149444226[ebp*1+eax]
627 xor edi, ecx
628 mov ebp, DWORD PTR 44[esi]
629 add eax, edi
630 mov edi, -1
631 rol eax, 6
632 xor edi, ecx
633 add eax, ebx
634 ; R3 61
635 or edi, eax
636 lea edx, DWORD PTR 3174756917[ebp*1+edx]
637 xor edi, ebx
638 mov ebp, DWORD PTR 8[esi]
639 add edx, edi
640 mov edi, -1
641 rol edx, 10
642 xor edi, ebx
643 add edx, eax
644 ; R3 62
645 or edi, edx
646 lea ecx, DWORD PTR 718787259[ebp*1+ecx]
647 xor edi, eax
648 mov ebp, DWORD PTR 36[esi]
649 add ecx, edi
650 mov edi, -1
651 rol ecx, 15
652 xor edi, eax
653 add ecx, edx
654 ; R3 63
655 or edi, ecx
656 lea ebx, DWORD PTR 3951481745[ebp*1+ebx]
657 xor edi, edx
658 mov ebp, DWORD PTR 24[esp]
659 add ebx, edi
660 add esi, 64
661 rol ebx, 21
662 mov edi, DWORD PTR [ebp]
663 add ebx, ecx
664 add eax, edi
665 mov edi, DWORD PTR 4[ebp]
666 add ebx, edi
667 mov edi, DWORD PTR 8[ebp]
668 add ecx, edi
669 mov edi, DWORD PTR 12[ebp]
670 add edx, edi
671 mov DWORD PTR [ebp],eax
672 mov DWORD PTR 4[ebp],ebx
673 mov edi, DWORD PTR [esp]
674 mov DWORD PTR 8[ebp],ecx
675 mov DWORD PTR 12[ebp],edx
676 cmp edi, esi
677 jge L000start
678 pop eax
679 pop ebx
680 pop ebp
681 pop edi
682 pop esi
683 ret
684_md5_block_x86 ENDP
685_TEXT ENDS
686END
diff --git a/src/lib/libcrypto/md5/asm/mx86unix.cpp b/src/lib/libcrypto/md5/asm/mx86unix.cpp
new file mode 100644
index 0000000000..5d399122b6
--- /dev/null
+++ b/src/lib/libcrypto/md5/asm/mx86unix.cpp
@@ -0,0 +1,730 @@
1/* Run the C pre-processor over this file with one of the following defined
2 * ELF - elf object files,
3 * OUT - a.out object files,
4 * BSDI - BSDI style a.out object files
5 * SOL - Solaris style elf
6 */
7
8#define TYPE(a,b) .type a,b
9#define SIZE(a,b) .size a,b
10
11#if defined(OUT) || defined(BSDI)
12#define md5_block_x86 _md5_block_x86
13
14#endif
15
16#ifdef OUT
17#define OK 1
18#define ALIGN 4
19#endif
20
21#ifdef BSDI
22#define OK 1
23#define ALIGN 4
24#undef SIZE
25#undef TYPE
26#define SIZE(a,b)
27#define TYPE(a,b)
28#endif
29
30#if defined(ELF) || defined(SOL)
31#define OK 1
32#define ALIGN 16
33#endif
34
35#ifndef OK
36You need to define one of
37ELF - elf systems - linux-elf, NetBSD and DG-UX
38OUT - a.out systems - linux-a.out and FreeBSD
39SOL - solaris systems, which are elf with strange comment lines
40BSDI - a.out with a very primative version of as.
41#endif
42
43/* Let the Assembler begin :-) */
44 /* Don't even think of reading this code */
45 /* It was automatically generated by md5-586.pl */
46 /* Which is a perl program used to generate the x86 assember for */
47 /* any of elf, a.out, BSDI,Win32, or Solaris */
48 /* eric <eay@cryptsoft.com> */
49
50 .file "md5-586.s"
51 .version "01.01"
52gcc2_compiled.:
53.text
54 .align ALIGN
55.globl md5_block_x86
56 TYPE(md5_block_x86,@function)
57md5_block_x86:
58 pushl %esi
59 pushl %edi
60 movl 12(%esp), %edi
61 movl 16(%esp), %esi
62 movl 20(%esp), %ecx
63 pushl %ebp
64 pushl %ebx
65 addl %esi, %ecx
66 subl $64, %ecx
67 movl (%edi), %eax
68 pushl %ecx
69 movl 4(%edi), %ebx
70 movl 8(%edi), %ecx
71 movl 12(%edi), %edx
72.L000start:
73
74 /* R0 section */
75 movl %ecx, %edi
76 movl (%esi), %ebp
77 /* R0 0 */
78 xorl %edx, %edi
79 andl %ebx, %edi
80 leal 3614090360(%eax,%ebp,1),%eax
81 movl 4(%esi), %ebp
82 xorl %edx, %edi
83 addl %edi, %eax
84 movl %ebx, %edi
85 roll $7, %eax
86 addl %ebx, %eax
87 /* R0 1 */
88 xorl %ecx, %edi
89 andl %eax, %edi
90 leal 3905402710(%edx,%ebp,1),%edx
91 movl 8(%esi), %ebp
92 xorl %ecx, %edi
93 addl %edi, %edx
94 movl %eax, %edi
95 roll $12, %edx
96 addl %eax, %edx
97 /* R0 2 */
98 xorl %ebx, %edi
99 andl %edx, %edi
100 leal 606105819(%ecx,%ebp,1),%ecx
101 movl 12(%esi), %ebp
102 xorl %ebx, %edi
103 addl %edi, %ecx
104 movl %edx, %edi
105 roll $17, %ecx
106 addl %edx, %ecx
107 /* R0 3 */
108 xorl %eax, %edi
109 andl %ecx, %edi
110 leal 3250441966(%ebx,%ebp,1),%ebx
111 movl 16(%esi), %ebp
112 xorl %eax, %edi
113 addl %edi, %ebx
114 movl %ecx, %edi
115 roll $22, %ebx
116 addl %ecx, %ebx
117 /* R0 4 */
118 xorl %edx, %edi
119 andl %ebx, %edi
120 leal 4118548399(%eax,%ebp,1),%eax
121 movl 20(%esi), %ebp
122 xorl %edx, %edi
123 addl %edi, %eax
124 movl %ebx, %edi
125 roll $7, %eax
126 addl %ebx, %eax
127 /* R0 5 */
128 xorl %ecx, %edi
129 andl %eax, %edi
130 leal 1200080426(%edx,%ebp,1),%edx
131 movl 24(%esi), %ebp
132 xorl %ecx, %edi
133 addl %edi, %edx
134 movl %eax, %edi
135 roll $12, %edx
136 addl %eax, %edx
137 /* R0 6 */
138 xorl %ebx, %edi
139 andl %edx, %edi
140 leal 2821735955(%ecx,%ebp,1),%ecx
141 movl 28(%esi), %ebp
142 xorl %ebx, %edi
143 addl %edi, %ecx
144 movl %edx, %edi
145 roll $17, %ecx
146 addl %edx, %ecx
147 /* R0 7 */
148 xorl %eax, %edi
149 andl %ecx, %edi
150 leal 4249261313(%ebx,%ebp,1),%ebx
151 movl 32(%esi), %ebp
152 xorl %eax, %edi
153 addl %edi, %ebx
154 movl %ecx, %edi
155 roll $22, %ebx
156 addl %ecx, %ebx
157 /* R0 8 */
158 xorl %edx, %edi
159 andl %ebx, %edi
160 leal 1770035416(%eax,%ebp,1),%eax
161 movl 36(%esi), %ebp
162 xorl %edx, %edi
163 addl %edi, %eax
164 movl %ebx, %edi
165 roll $7, %eax
166 addl %ebx, %eax
167 /* R0 9 */
168 xorl %ecx, %edi
169 andl %eax, %edi
170 leal 2336552879(%edx,%ebp,1),%edx
171 movl 40(%esi), %ebp
172 xorl %ecx, %edi
173 addl %edi, %edx
174 movl %eax, %edi
175 roll $12, %edx
176 addl %eax, %edx
177 /* R0 10 */
178 xorl %ebx, %edi
179 andl %edx, %edi
180 leal 4294925233(%ecx,%ebp,1),%ecx
181 movl 44(%esi), %ebp
182 xorl %ebx, %edi
183 addl %edi, %ecx
184 movl %edx, %edi
185 roll $17, %ecx
186 addl %edx, %ecx
187 /* R0 11 */
188 xorl %eax, %edi
189 andl %ecx, %edi
190 leal 2304563134(%ebx,%ebp,1),%ebx
191 movl 48(%esi), %ebp
192 xorl %eax, %edi
193 addl %edi, %ebx
194 movl %ecx, %edi
195 roll $22, %ebx
196 addl %ecx, %ebx
197 /* R0 12 */
198 xorl %edx, %edi
199 andl %ebx, %edi
200 leal 1804603682(%eax,%ebp,1),%eax
201 movl 52(%esi), %ebp
202 xorl %edx, %edi
203 addl %edi, %eax
204 movl %ebx, %edi
205 roll $7, %eax
206 addl %ebx, %eax
207 /* R0 13 */
208 xorl %ecx, %edi
209 andl %eax, %edi
210 leal 4254626195(%edx,%ebp,1),%edx
211 movl 56(%esi), %ebp
212 xorl %ecx, %edi
213 addl %edi, %edx
214 movl %eax, %edi
215 roll $12, %edx
216 addl %eax, %edx
217 /* R0 14 */
218 xorl %ebx, %edi
219 andl %edx, %edi
220 leal 2792965006(%ecx,%ebp,1),%ecx
221 movl 60(%esi), %ebp
222 xorl %ebx, %edi
223 addl %edi, %ecx
224 movl %edx, %edi
225 roll $17, %ecx
226 addl %edx, %ecx
227 /* R0 15 */
228 xorl %eax, %edi
229 andl %ecx, %edi
230 leal 1236535329(%ebx,%ebp,1),%ebx
231 movl 4(%esi), %ebp
232 xorl %eax, %edi
233 addl %edi, %ebx
234 movl %ecx, %edi
235 roll $22, %ebx
236 addl %ecx, %ebx
237
238 /* R1 section */
239 /* R1 16 */
240 leal 4129170786(%eax,%ebp,1),%eax
241 xorl %ebx, %edi
242 andl %edx, %edi
243 movl 24(%esi), %ebp
244 xorl %ecx, %edi
245 addl %edi, %eax
246 movl %ebx, %edi
247 roll $5, %eax
248 addl %ebx, %eax
249 /* R1 17 */
250 leal 3225465664(%edx,%ebp,1),%edx
251 xorl %eax, %edi
252 andl %ecx, %edi
253 movl 44(%esi), %ebp
254 xorl %ebx, %edi
255 addl %edi, %edx
256 movl %eax, %edi
257 roll $9, %edx
258 addl %eax, %edx
259 /* R1 18 */
260 leal 643717713(%ecx,%ebp,1),%ecx
261 xorl %edx, %edi
262 andl %ebx, %edi
263 movl (%esi), %ebp
264 xorl %eax, %edi
265 addl %edi, %ecx
266 movl %edx, %edi
267 roll $14, %ecx
268 addl %edx, %ecx
269 /* R1 19 */
270 leal 3921069994(%ebx,%ebp,1),%ebx
271 xorl %ecx, %edi
272 andl %eax, %edi
273 movl 20(%esi), %ebp
274 xorl %edx, %edi
275 addl %edi, %ebx
276 movl %ecx, %edi
277 roll $20, %ebx
278 addl %ecx, %ebx
279 /* R1 20 */
280 leal 3593408605(%eax,%ebp,1),%eax
281 xorl %ebx, %edi
282 andl %edx, %edi
283 movl 40(%esi), %ebp
284 xorl %ecx, %edi
285 addl %edi, %eax
286 movl %ebx, %edi
287 roll $5, %eax
288 addl %ebx, %eax
289 /* R1 21 */
290 leal 38016083(%edx,%ebp,1),%edx
291 xorl %eax, %edi
292 andl %ecx, %edi
293 movl 60(%esi), %ebp
294 xorl %ebx, %edi
295 addl %edi, %edx
296 movl %eax, %edi
297 roll $9, %edx
298 addl %eax, %edx
299 /* R1 22 */
300 leal 3634488961(%ecx,%ebp,1),%ecx
301 xorl %edx, %edi
302 andl %ebx, %edi
303 movl 16(%esi), %ebp
304 xorl %eax, %edi
305 addl %edi, %ecx
306 movl %edx, %edi
307 roll $14, %ecx
308 addl %edx, %ecx
309 /* R1 23 */
310 leal 3889429448(%ebx,%ebp,1),%ebx
311 xorl %ecx, %edi
312 andl %eax, %edi
313 movl 36(%esi), %ebp
314 xorl %edx, %edi
315 addl %edi, %ebx
316 movl %ecx, %edi
317 roll $20, %ebx
318 addl %ecx, %ebx
319 /* R1 24 */
320 leal 568446438(%eax,%ebp,1),%eax
321 xorl %ebx, %edi
322 andl %edx, %edi
323 movl 56(%esi), %ebp
324 xorl %ecx, %edi
325 addl %edi, %eax
326 movl %ebx, %edi
327 roll $5, %eax
328 addl %ebx, %eax
329 /* R1 25 */
330 leal 3275163606(%edx,%ebp,1),%edx
331 xorl %eax, %edi
332 andl %ecx, %edi
333 movl 12(%esi), %ebp
334 xorl %ebx, %edi
335 addl %edi, %edx
336 movl %eax, %edi
337 roll $9, %edx
338 addl %eax, %edx
339 /* R1 26 */
340 leal 4107603335(%ecx,%ebp,1),%ecx
341 xorl %edx, %edi
342 andl %ebx, %edi
343 movl 32(%esi), %ebp
344 xorl %eax, %edi
345 addl %edi, %ecx
346 movl %edx, %edi
347 roll $14, %ecx
348 addl %edx, %ecx
349 /* R1 27 */
350 leal 1163531501(%ebx,%ebp,1),%ebx
351 xorl %ecx, %edi
352 andl %eax, %edi
353 movl 52(%esi), %ebp
354 xorl %edx, %edi
355 addl %edi, %ebx
356 movl %ecx, %edi
357 roll $20, %ebx
358 addl %ecx, %ebx
359 /* R1 28 */
360 leal 2850285829(%eax,%ebp,1),%eax
361 xorl %ebx, %edi
362 andl %edx, %edi
363 movl 8(%esi), %ebp
364 xorl %ecx, %edi
365 addl %edi, %eax
366 movl %ebx, %edi
367 roll $5, %eax
368 addl %ebx, %eax
369 /* R1 29 */
370 leal 4243563512(%edx,%ebp,1),%edx
371 xorl %eax, %edi
372 andl %ecx, %edi
373 movl 28(%esi), %ebp
374 xorl %ebx, %edi
375 addl %edi, %edx
376 movl %eax, %edi
377 roll $9, %edx
378 addl %eax, %edx
379 /* R1 30 */
380 leal 1735328473(%ecx,%ebp,1),%ecx
381 xorl %edx, %edi
382 andl %ebx, %edi
383 movl 48(%esi), %ebp
384 xorl %eax, %edi
385 addl %edi, %ecx
386 movl %edx, %edi
387 roll $14, %ecx
388 addl %edx, %ecx
389 /* R1 31 */
390 leal 2368359562(%ebx,%ebp,1),%ebx
391 xorl %ecx, %edi
392 andl %eax, %edi
393 movl 20(%esi), %ebp
394 xorl %edx, %edi
395 addl %edi, %ebx
396 movl %ecx, %edi
397 roll $20, %ebx
398 addl %ecx, %ebx
399
400 /* R2 section */
401 /* R2 32 */
402 xorl %edx, %edi
403 xorl %ebx, %edi
404 leal 4294588738(%eax,%ebp,1),%eax
405 addl %edi, %eax
406 movl 32(%esi), %ebp
407 roll $4, %eax
408 movl %ebx, %edi
409 /* R2 33 */
410 leal 2272392833(%edx,%ebp,1),%edx
411 addl %ebx, %eax
412 xorl %ecx, %edi
413 xorl %eax, %edi
414 movl 44(%esi), %ebp
415 addl %edi, %edx
416 movl %eax, %edi
417 roll $11, %edx
418 addl %eax, %edx
419 /* R2 34 */
420 xorl %ebx, %edi
421 xorl %edx, %edi
422 leal 1839030562(%ecx,%ebp,1),%ecx
423 addl %edi, %ecx
424 movl 56(%esi), %ebp
425 roll $16, %ecx
426 movl %edx, %edi
427 /* R2 35 */
428 leal 4259657740(%ebx,%ebp,1),%ebx
429 addl %edx, %ecx
430 xorl %eax, %edi
431 xorl %ecx, %edi
432 movl 4(%esi), %ebp
433 addl %edi, %ebx
434 movl %ecx, %edi
435 roll $23, %ebx
436 addl %ecx, %ebx
437 /* R2 36 */
438 xorl %edx, %edi
439 xorl %ebx, %edi
440 leal 2763975236(%eax,%ebp,1),%eax
441 addl %edi, %eax
442 movl 16(%esi), %ebp
443 roll $4, %eax
444 movl %ebx, %edi
445 /* R2 37 */
446 leal 1272893353(%edx,%ebp,1),%edx
447 addl %ebx, %eax
448 xorl %ecx, %edi
449 xorl %eax, %edi
450 movl 28(%esi), %ebp
451 addl %edi, %edx
452 movl %eax, %edi
453 roll $11, %edx
454 addl %eax, %edx
455 /* R2 38 */
456 xorl %ebx, %edi
457 xorl %edx, %edi
458 leal 4139469664(%ecx,%ebp,1),%ecx
459 addl %edi, %ecx
460 movl 40(%esi), %ebp
461 roll $16, %ecx
462 movl %edx, %edi
463 /* R2 39 */
464 leal 3200236656(%ebx,%ebp,1),%ebx
465 addl %edx, %ecx
466 xorl %eax, %edi
467 xorl %ecx, %edi
468 movl 52(%esi), %ebp
469 addl %edi, %ebx
470 movl %ecx, %edi
471 roll $23, %ebx
472 addl %ecx, %ebx
473 /* R2 40 */
474 xorl %edx, %edi
475 xorl %ebx, %edi
476 leal 681279174(%eax,%ebp,1),%eax
477 addl %edi, %eax
478 movl (%esi), %ebp
479 roll $4, %eax
480 movl %ebx, %edi
481 /* R2 41 */
482 leal 3936430074(%edx,%ebp,1),%edx
483 addl %ebx, %eax
484 xorl %ecx, %edi
485 xorl %eax, %edi
486 movl 12(%esi), %ebp
487 addl %edi, %edx
488 movl %eax, %edi
489 roll $11, %edx
490 addl %eax, %edx
491 /* R2 42 */
492 xorl %ebx, %edi
493 xorl %edx, %edi
494 leal 3572445317(%ecx,%ebp,1),%ecx
495 addl %edi, %ecx
496 movl 24(%esi), %ebp
497 roll $16, %ecx
498 movl %edx, %edi
499 /* R2 43 */
500 leal 76029189(%ebx,%ebp,1),%ebx
501 addl %edx, %ecx
502 xorl %eax, %edi
503 xorl %ecx, %edi
504 movl 36(%esi), %ebp
505 addl %edi, %ebx
506 movl %ecx, %edi
507 roll $23, %ebx
508 addl %ecx, %ebx
509 /* R2 44 */
510 xorl %edx, %edi
511 xorl %ebx, %edi
512 leal 3654602809(%eax,%ebp,1),%eax
513 addl %edi, %eax
514 movl 48(%esi), %ebp
515 roll $4, %eax
516 movl %ebx, %edi
517 /* R2 45 */
518 leal 3873151461(%edx,%ebp,1),%edx
519 addl %ebx, %eax
520 xorl %ecx, %edi
521 xorl %eax, %edi
522 movl 60(%esi), %ebp
523 addl %edi, %edx
524 movl %eax, %edi
525 roll $11, %edx
526 addl %eax, %edx
527 /* R2 46 */
528 xorl %ebx, %edi
529 xorl %edx, %edi
530 leal 530742520(%ecx,%ebp,1),%ecx
531 addl %edi, %ecx
532 movl 8(%esi), %ebp
533 roll $16, %ecx
534 movl %edx, %edi
535 /* R2 47 */
536 leal 3299628645(%ebx,%ebp,1),%ebx
537 addl %edx, %ecx
538 xorl %eax, %edi
539 xorl %ecx, %edi
540 movl (%esi), %ebp
541 addl %edi, %ebx
542 movl $-1, %edi
543 roll $23, %ebx
544 addl %ecx, %ebx
545
546 /* R3 section */
547 /* R3 48 */
548 xorl %edx, %edi
549 orl %ebx, %edi
550 leal 4096336452(%eax,%ebp,1),%eax
551 xorl %ecx, %edi
552 movl 28(%esi), %ebp
553 addl %edi, %eax
554 movl $-1, %edi
555 roll $6, %eax
556 xorl %ecx, %edi
557 addl %ebx, %eax
558 /* R3 49 */
559 orl %eax, %edi
560 leal 1126891415(%edx,%ebp,1),%edx
561 xorl %ebx, %edi
562 movl 56(%esi), %ebp
563 addl %edi, %edx
564 movl $-1, %edi
565 roll $10, %edx
566 xorl %ebx, %edi
567 addl %eax, %edx
568 /* R3 50 */
569 orl %edx, %edi
570 leal 2878612391(%ecx,%ebp,1),%ecx
571 xorl %eax, %edi
572 movl 20(%esi), %ebp
573 addl %edi, %ecx
574 movl $-1, %edi
575 roll $15, %ecx
576 xorl %eax, %edi
577 addl %edx, %ecx
578 /* R3 51 */
579 orl %ecx, %edi
580 leal 4237533241(%ebx,%ebp,1),%ebx
581 xorl %edx, %edi
582 movl 48(%esi), %ebp
583 addl %edi, %ebx
584 movl $-1, %edi
585 roll $21, %ebx
586 xorl %edx, %edi
587 addl %ecx, %ebx
588 /* R3 52 */
589 orl %ebx, %edi
590 leal 1700485571(%eax,%ebp,1),%eax
591 xorl %ecx, %edi
592 movl 12(%esi), %ebp
593 addl %edi, %eax
594 movl $-1, %edi
595 roll $6, %eax
596 xorl %ecx, %edi
597 addl %ebx, %eax
598 /* R3 53 */
599 orl %eax, %edi
600 leal 2399980690(%edx,%ebp,1),%edx
601 xorl %ebx, %edi
602 movl 40(%esi), %ebp
603 addl %edi, %edx
604 movl $-1, %edi
605 roll $10, %edx
606 xorl %ebx, %edi
607 addl %eax, %edx
608 /* R3 54 */
609 orl %edx, %edi
610 leal 4293915773(%ecx,%ebp,1),%ecx
611 xorl %eax, %edi
612 movl 4(%esi), %ebp
613 addl %edi, %ecx
614 movl $-1, %edi
615 roll $15, %ecx
616 xorl %eax, %edi
617 addl %edx, %ecx
618 /* R3 55 */
619 orl %ecx, %edi
620 leal 2240044497(%ebx,%ebp,1),%ebx
621 xorl %edx, %edi
622 movl 32(%esi), %ebp
623 addl %edi, %ebx
624 movl $-1, %edi
625 roll $21, %ebx
626 xorl %edx, %edi
627 addl %ecx, %ebx
628 /* R3 56 */
629 orl %ebx, %edi
630 leal 1873313359(%eax,%ebp,1),%eax
631 xorl %ecx, %edi
632 movl 60(%esi), %ebp
633 addl %edi, %eax
634 movl $-1, %edi
635 roll $6, %eax
636 xorl %ecx, %edi
637 addl %ebx, %eax
638 /* R3 57 */
639 orl %eax, %edi
640 leal 4264355552(%edx,%ebp,1),%edx
641 xorl %ebx, %edi
642 movl 24(%esi), %ebp
643 addl %edi, %edx
644 movl $-1, %edi
645 roll $10, %edx
646 xorl %ebx, %edi
647 addl %eax, %edx
648 /* R3 58 */
649 orl %edx, %edi
650 leal 2734768916(%ecx,%ebp,1),%ecx
651 xorl %eax, %edi
652 movl 52(%esi), %ebp
653 addl %edi, %ecx
654 movl $-1, %edi
655 roll $15, %ecx
656 xorl %eax, %edi
657 addl %edx, %ecx
658 /* R3 59 */
659 orl %ecx, %edi
660 leal 1309151649(%ebx,%ebp,1),%ebx
661 xorl %edx, %edi
662 movl 16(%esi), %ebp
663 addl %edi, %ebx
664 movl $-1, %edi
665 roll $21, %ebx
666 xorl %edx, %edi
667 addl %ecx, %ebx
668 /* R3 60 */
669 orl %ebx, %edi
670 leal 4149444226(%eax,%ebp,1),%eax
671 xorl %ecx, %edi
672 movl 44(%esi), %ebp
673 addl %edi, %eax
674 movl $-1, %edi
675 roll $6, %eax
676 xorl %ecx, %edi
677 addl %ebx, %eax
678 /* R3 61 */
679 orl %eax, %edi
680 leal 3174756917(%edx,%ebp,1),%edx
681 xorl %ebx, %edi
682 movl 8(%esi), %ebp
683 addl %edi, %edx
684 movl $-1, %edi
685 roll $10, %edx
686 xorl %ebx, %edi
687 addl %eax, %edx
688 /* R3 62 */
689 orl %edx, %edi
690 leal 718787259(%ecx,%ebp,1),%ecx
691 xorl %eax, %edi
692 movl 36(%esi), %ebp
693 addl %edi, %ecx
694 movl $-1, %edi
695 roll $15, %ecx
696 xorl %eax, %edi
697 addl %edx, %ecx
698 /* R3 63 */
699 orl %ecx, %edi
700 leal 3951481745(%ebx,%ebp,1),%ebx
701 xorl %edx, %edi
702 movl 24(%esp), %ebp
703 addl %edi, %ebx
704 addl $64, %esi
705 roll $21, %ebx
706 movl (%ebp), %edi
707 addl %ecx, %ebx
708 addl %edi, %eax
709 movl 4(%ebp), %edi
710 addl %edi, %ebx
711 movl 8(%ebp), %edi
712 addl %edi, %ecx
713 movl 12(%ebp), %edi
714 addl %edi, %edx
715 movl %eax, (%ebp)
716 movl %ebx, 4(%ebp)
717 movl (%esp), %edi
718 movl %ecx, 8(%ebp)
719 movl %edx, 12(%ebp)
720 cmpl %esi, %edi
721 jge .L000start
722 popl %eax
723 popl %ebx
724 popl %ebp
725 popl %edi
726 popl %esi
727 ret
728.md5_block_x86_end:
729 SIZE(md5_block_x86,.md5_block_x86_end-md5_block_x86)
730.ident "desasm.pl"