1#if defined(__i386__)
2.file	"src/crypto/md5/asm/md5-586.S"
3.text
4.globl	_md5_block_asm_data_order
5.private_extern	_md5_block_asm_data_order
6.align	4
7_md5_block_asm_data_order:
8L_md5_block_asm_data_order_begin:
9	pushl	%esi
10	pushl	%edi
11	movl	12(%esp),%edi
12	movl	16(%esp),%esi
13	movl	20(%esp),%ecx
14	pushl	%ebp
15	shll	$6,%ecx
16	pushl	%ebx
17	addl	%esi,%ecx
18	subl	$64,%ecx
19	movl	(%edi),%eax
20	pushl	%ecx
21	movl	4(%edi),%ebx
22	movl	8(%edi),%ecx
23	movl	12(%edi),%edx
24L000start:
25
26	# R0 section
27	movl	%ecx,%edi
28	movl	(%esi),%ebp
29	# R0 0
30	xorl	%edx,%edi
31	andl	%ebx,%edi
32	leal	3614090360(%eax,%ebp,1),%eax
33	xorl	%edx,%edi
34	addl	%edi,%eax
35	movl	%ebx,%edi
36	roll	$7,%eax
37	movl	4(%esi),%ebp
38	addl	%ebx,%eax
39	# R0 1
40	xorl	%ecx,%edi
41	andl	%eax,%edi
42	leal	3905402710(%edx,%ebp,1),%edx
43	xorl	%ecx,%edi
44	addl	%edi,%edx
45	movl	%eax,%edi
46	roll	$12,%edx
47	movl	8(%esi),%ebp
48	addl	%eax,%edx
49	# R0 2
50	xorl	%ebx,%edi
51	andl	%edx,%edi
52	leal	606105819(%ecx,%ebp,1),%ecx
53	xorl	%ebx,%edi
54	addl	%edi,%ecx
55	movl	%edx,%edi
56	roll	$17,%ecx
57	movl	12(%esi),%ebp
58	addl	%edx,%ecx
59	# R0 3
60	xorl	%eax,%edi
61	andl	%ecx,%edi
62	leal	3250441966(%ebx,%ebp,1),%ebx
63	xorl	%eax,%edi
64	addl	%edi,%ebx
65	movl	%ecx,%edi
66	roll	$22,%ebx
67	movl	16(%esi),%ebp
68	addl	%ecx,%ebx
69	# R0 4
70	xorl	%edx,%edi
71	andl	%ebx,%edi
72	leal	4118548399(%eax,%ebp,1),%eax
73	xorl	%edx,%edi
74	addl	%edi,%eax
75	movl	%ebx,%edi
76	roll	$7,%eax
77	movl	20(%esi),%ebp
78	addl	%ebx,%eax
79	# R0 5
80	xorl	%ecx,%edi
81	andl	%eax,%edi
82	leal	1200080426(%edx,%ebp,1),%edx
83	xorl	%ecx,%edi
84	addl	%edi,%edx
85	movl	%eax,%edi
86	roll	$12,%edx
87	movl	24(%esi),%ebp
88	addl	%eax,%edx
89	# R0 6
90	xorl	%ebx,%edi
91	andl	%edx,%edi
92	leal	2821735955(%ecx,%ebp,1),%ecx
93	xorl	%ebx,%edi
94	addl	%edi,%ecx
95	movl	%edx,%edi
96	roll	$17,%ecx
97	movl	28(%esi),%ebp
98	addl	%edx,%ecx
99	# R0 7
100	xorl	%eax,%edi
101	andl	%ecx,%edi
102	leal	4249261313(%ebx,%ebp,1),%ebx
103	xorl	%eax,%edi
104	addl	%edi,%ebx
105	movl	%ecx,%edi
106	roll	$22,%ebx
107	movl	32(%esi),%ebp
108	addl	%ecx,%ebx
109	# R0 8
110	xorl	%edx,%edi
111	andl	%ebx,%edi
112	leal	1770035416(%eax,%ebp,1),%eax
113	xorl	%edx,%edi
114	addl	%edi,%eax
115	movl	%ebx,%edi
116	roll	$7,%eax
117	movl	36(%esi),%ebp
118	addl	%ebx,%eax
119	# R0 9
120	xorl	%ecx,%edi
121	andl	%eax,%edi
122	leal	2336552879(%edx,%ebp,1),%edx
123	xorl	%ecx,%edi
124	addl	%edi,%edx
125	movl	%eax,%edi
126	roll	$12,%edx
127	movl	40(%esi),%ebp
128	addl	%eax,%edx
129	# R0 10
130	xorl	%ebx,%edi
131	andl	%edx,%edi
132	leal	4294925233(%ecx,%ebp,1),%ecx
133	xorl	%ebx,%edi
134	addl	%edi,%ecx
135	movl	%edx,%edi
136	roll	$17,%ecx
137	movl	44(%esi),%ebp
138	addl	%edx,%ecx
139	# R0 11
140	xorl	%eax,%edi
141	andl	%ecx,%edi
142	leal	2304563134(%ebx,%ebp,1),%ebx
143	xorl	%eax,%edi
144	addl	%edi,%ebx
145	movl	%ecx,%edi
146	roll	$22,%ebx
147	movl	48(%esi),%ebp
148	addl	%ecx,%ebx
149	# R0 12
150	xorl	%edx,%edi
151	andl	%ebx,%edi
152	leal	1804603682(%eax,%ebp,1),%eax
153	xorl	%edx,%edi
154	addl	%edi,%eax
155	movl	%ebx,%edi
156	roll	$7,%eax
157	movl	52(%esi),%ebp
158	addl	%ebx,%eax
159	# R0 13
160	xorl	%ecx,%edi
161	andl	%eax,%edi
162	leal	4254626195(%edx,%ebp,1),%edx
163	xorl	%ecx,%edi
164	addl	%edi,%edx
165	movl	%eax,%edi
166	roll	$12,%edx
167	movl	56(%esi),%ebp
168	addl	%eax,%edx
169	# R0 14
170	xorl	%ebx,%edi
171	andl	%edx,%edi
172	leal	2792965006(%ecx,%ebp,1),%ecx
173	xorl	%ebx,%edi
174	addl	%edi,%ecx
175	movl	%edx,%edi
176	roll	$17,%ecx
177	movl	60(%esi),%ebp
178	addl	%edx,%ecx
179	# R0 15
180	xorl	%eax,%edi
181	andl	%ecx,%edi
182	leal	1236535329(%ebx,%ebp,1),%ebx
183	xorl	%eax,%edi
184	addl	%edi,%ebx
185	movl	%ecx,%edi
186	roll	$22,%ebx
187	movl	4(%esi),%ebp
188	addl	%ecx,%ebx
189
190	# R1 section
191	# R1 16
192	leal	4129170786(%eax,%ebp,1),%eax
193	xorl	%ebx,%edi
194	andl	%edx,%edi
195	movl	24(%esi),%ebp
196	xorl	%ecx,%edi
197	addl	%edi,%eax
198	movl	%ebx,%edi
199	roll	$5,%eax
200	addl	%ebx,%eax
201	# R1 17
202	leal	3225465664(%edx,%ebp,1),%edx
203	xorl	%eax,%edi
204	andl	%ecx,%edi
205	movl	44(%esi),%ebp
206	xorl	%ebx,%edi
207	addl	%edi,%edx
208	movl	%eax,%edi
209	roll	$9,%edx
210	addl	%eax,%edx
211	# R1 18
212	leal	643717713(%ecx,%ebp,1),%ecx
213	xorl	%edx,%edi
214	andl	%ebx,%edi
215	movl	(%esi),%ebp
216	xorl	%eax,%edi
217	addl	%edi,%ecx
218	movl	%edx,%edi
219	roll	$14,%ecx
220	addl	%edx,%ecx
221	# R1 19
222	leal	3921069994(%ebx,%ebp,1),%ebx
223	xorl	%ecx,%edi
224	andl	%eax,%edi
225	movl	20(%esi),%ebp
226	xorl	%edx,%edi
227	addl	%edi,%ebx
228	movl	%ecx,%edi
229	roll	$20,%ebx
230	addl	%ecx,%ebx
231	# R1 20
232	leal	3593408605(%eax,%ebp,1),%eax
233	xorl	%ebx,%edi
234	andl	%edx,%edi
235	movl	40(%esi),%ebp
236	xorl	%ecx,%edi
237	addl	%edi,%eax
238	movl	%ebx,%edi
239	roll	$5,%eax
240	addl	%ebx,%eax
241	# R1 21
242	leal	38016083(%edx,%ebp,1),%edx
243	xorl	%eax,%edi
244	andl	%ecx,%edi
245	movl	60(%esi),%ebp
246	xorl	%ebx,%edi
247	addl	%edi,%edx
248	movl	%eax,%edi
249	roll	$9,%edx
250	addl	%eax,%edx
251	# R1 22
252	leal	3634488961(%ecx,%ebp,1),%ecx
253	xorl	%edx,%edi
254	andl	%ebx,%edi
255	movl	16(%esi),%ebp
256	xorl	%eax,%edi
257	addl	%edi,%ecx
258	movl	%edx,%edi
259	roll	$14,%ecx
260	addl	%edx,%ecx
261	# R1 23
262	leal	3889429448(%ebx,%ebp,1),%ebx
263	xorl	%ecx,%edi
264	andl	%eax,%edi
265	movl	36(%esi),%ebp
266	xorl	%edx,%edi
267	addl	%edi,%ebx
268	movl	%ecx,%edi
269	roll	$20,%ebx
270	addl	%ecx,%ebx
271	# R1 24
272	leal	568446438(%eax,%ebp,1),%eax
273	xorl	%ebx,%edi
274	andl	%edx,%edi
275	movl	56(%esi),%ebp
276	xorl	%ecx,%edi
277	addl	%edi,%eax
278	movl	%ebx,%edi
279	roll	$5,%eax
280	addl	%ebx,%eax
281	# R1 25
282	leal	3275163606(%edx,%ebp,1),%edx
283	xorl	%eax,%edi
284	andl	%ecx,%edi
285	movl	12(%esi),%ebp
286	xorl	%ebx,%edi
287	addl	%edi,%edx
288	movl	%eax,%edi
289	roll	$9,%edx
290	addl	%eax,%edx
291	# R1 26
292	leal	4107603335(%ecx,%ebp,1),%ecx
293	xorl	%edx,%edi
294	andl	%ebx,%edi
295	movl	32(%esi),%ebp
296	xorl	%eax,%edi
297	addl	%edi,%ecx
298	movl	%edx,%edi
299	roll	$14,%ecx
300	addl	%edx,%ecx
301	# R1 27
302	leal	1163531501(%ebx,%ebp,1),%ebx
303	xorl	%ecx,%edi
304	andl	%eax,%edi
305	movl	52(%esi),%ebp
306	xorl	%edx,%edi
307	addl	%edi,%ebx
308	movl	%ecx,%edi
309	roll	$20,%ebx
310	addl	%ecx,%ebx
311	# R1 28
312	leal	2850285829(%eax,%ebp,1),%eax
313	xorl	%ebx,%edi
314	andl	%edx,%edi
315	movl	8(%esi),%ebp
316	xorl	%ecx,%edi
317	addl	%edi,%eax
318	movl	%ebx,%edi
319	roll	$5,%eax
320	addl	%ebx,%eax
321	# R1 29
322	leal	4243563512(%edx,%ebp,1),%edx
323	xorl	%eax,%edi
324	andl	%ecx,%edi
325	movl	28(%esi),%ebp
326	xorl	%ebx,%edi
327	addl	%edi,%edx
328	movl	%eax,%edi
329	roll	$9,%edx
330	addl	%eax,%edx
331	# R1 30
332	leal	1735328473(%ecx,%ebp,1),%ecx
333	xorl	%edx,%edi
334	andl	%ebx,%edi
335	movl	48(%esi),%ebp
336	xorl	%eax,%edi
337	addl	%edi,%ecx
338	movl	%edx,%edi
339	roll	$14,%ecx
340	addl	%edx,%ecx
341	# R1 31
342	leal	2368359562(%ebx,%ebp,1),%ebx
343	xorl	%ecx,%edi
344	andl	%eax,%edi
345	movl	20(%esi),%ebp
346	xorl	%edx,%edi
347	addl	%edi,%ebx
348	movl	%ecx,%edi
349	roll	$20,%ebx
350	addl	%ecx,%ebx
351
352	# R2 section
353	# R2 32
354	xorl	%edx,%edi
355	xorl	%ebx,%edi
356	leal	4294588738(%eax,%ebp,1),%eax
357	addl	%edi,%eax
358	roll	$4,%eax
359	movl	32(%esi),%ebp
360	movl	%ebx,%edi
361	# R2 33
362	leal	2272392833(%edx,%ebp,1),%edx
363	addl	%ebx,%eax
364	xorl	%ecx,%edi
365	xorl	%eax,%edi
366	movl	44(%esi),%ebp
367	addl	%edi,%edx
368	movl	%eax,%edi
369	roll	$11,%edx
370	addl	%eax,%edx
371	# R2 34
372	xorl	%ebx,%edi
373	xorl	%edx,%edi
374	leal	1839030562(%ecx,%ebp,1),%ecx
375	addl	%edi,%ecx
376	roll	$16,%ecx
377	movl	56(%esi),%ebp
378	movl	%edx,%edi
379	# R2 35
380	leal	4259657740(%ebx,%ebp,1),%ebx
381	addl	%edx,%ecx
382	xorl	%eax,%edi
383	xorl	%ecx,%edi
384	movl	4(%esi),%ebp
385	addl	%edi,%ebx
386	movl	%ecx,%edi
387	roll	$23,%ebx
388	addl	%ecx,%ebx
389	# R2 36
390	xorl	%edx,%edi
391	xorl	%ebx,%edi
392	leal	2763975236(%eax,%ebp,1),%eax
393	addl	%edi,%eax
394	roll	$4,%eax
395	movl	16(%esi),%ebp
396	movl	%ebx,%edi
397	# R2 37
398	leal	1272893353(%edx,%ebp,1),%edx
399	addl	%ebx,%eax
400	xorl	%ecx,%edi
401	xorl	%eax,%edi
402	movl	28(%esi),%ebp
403	addl	%edi,%edx
404	movl	%eax,%edi
405	roll	$11,%edx
406	addl	%eax,%edx
407	# R2 38
408	xorl	%ebx,%edi
409	xorl	%edx,%edi
410	leal	4139469664(%ecx,%ebp,1),%ecx
411	addl	%edi,%ecx
412	roll	$16,%ecx
413	movl	40(%esi),%ebp
414	movl	%edx,%edi
415	# R2 39
416	leal	3200236656(%ebx,%ebp,1),%ebx
417	addl	%edx,%ecx
418	xorl	%eax,%edi
419	xorl	%ecx,%edi
420	movl	52(%esi),%ebp
421	addl	%edi,%ebx
422	movl	%ecx,%edi
423	roll	$23,%ebx
424	addl	%ecx,%ebx
425	# R2 40
426	xorl	%edx,%edi
427	xorl	%ebx,%edi
428	leal	681279174(%eax,%ebp,1),%eax
429	addl	%edi,%eax
430	roll	$4,%eax
431	movl	(%esi),%ebp
432	movl	%ebx,%edi
433	# R2 41
434	leal	3936430074(%edx,%ebp,1),%edx
435	addl	%ebx,%eax
436	xorl	%ecx,%edi
437	xorl	%eax,%edi
438	movl	12(%esi),%ebp
439	addl	%edi,%edx
440	movl	%eax,%edi
441	roll	$11,%edx
442	addl	%eax,%edx
443	# R2 42
444	xorl	%ebx,%edi
445	xorl	%edx,%edi
446	leal	3572445317(%ecx,%ebp,1),%ecx
447	addl	%edi,%ecx
448	roll	$16,%ecx
449	movl	24(%esi),%ebp
450	movl	%edx,%edi
451	# R2 43
452	leal	76029189(%ebx,%ebp,1),%ebx
453	addl	%edx,%ecx
454	xorl	%eax,%edi
455	xorl	%ecx,%edi
456	movl	36(%esi),%ebp
457	addl	%edi,%ebx
458	movl	%ecx,%edi
459	roll	$23,%ebx
460	addl	%ecx,%ebx
461	# R2 44
462	xorl	%edx,%edi
463	xorl	%ebx,%edi
464	leal	3654602809(%eax,%ebp,1),%eax
465	addl	%edi,%eax
466	roll	$4,%eax
467	movl	48(%esi),%ebp
468	movl	%ebx,%edi
469	# R2 45
470	leal	3873151461(%edx,%ebp,1),%edx
471	addl	%ebx,%eax
472	xorl	%ecx,%edi
473	xorl	%eax,%edi
474	movl	60(%esi),%ebp
475	addl	%edi,%edx
476	movl	%eax,%edi
477	roll	$11,%edx
478	addl	%eax,%edx
479	# R2 46
480	xorl	%ebx,%edi
481	xorl	%edx,%edi
482	leal	530742520(%ecx,%ebp,1),%ecx
483	addl	%edi,%ecx
484	roll	$16,%ecx
485	movl	8(%esi),%ebp
486	movl	%edx,%edi
487	# R2 47
488	leal	3299628645(%ebx,%ebp,1),%ebx
489	addl	%edx,%ecx
490	xorl	%eax,%edi
491	xorl	%ecx,%edi
492	movl	(%esi),%ebp
493	addl	%edi,%ebx
494	movl	$-1,%edi
495	roll	$23,%ebx
496	addl	%ecx,%ebx
497
498	# R3 section
499	# R3 48
500	xorl	%edx,%edi
501	orl	%ebx,%edi
502	leal	4096336452(%eax,%ebp,1),%eax
503	xorl	%ecx,%edi
504	movl	28(%esi),%ebp
505	addl	%edi,%eax
506	movl	$-1,%edi
507	roll	$6,%eax
508	xorl	%ecx,%edi
509	addl	%ebx,%eax
510	# R3 49
511	orl	%eax,%edi
512	leal	1126891415(%edx,%ebp,1),%edx
513	xorl	%ebx,%edi
514	movl	56(%esi),%ebp
515	addl	%edi,%edx
516	movl	$-1,%edi
517	roll	$10,%edx
518	xorl	%ebx,%edi
519	addl	%eax,%edx
520	# R3 50
521	orl	%edx,%edi
522	leal	2878612391(%ecx,%ebp,1),%ecx
523	xorl	%eax,%edi
524	movl	20(%esi),%ebp
525	addl	%edi,%ecx
526	movl	$-1,%edi
527	roll	$15,%ecx
528	xorl	%eax,%edi
529	addl	%edx,%ecx
530	# R3 51
531	orl	%ecx,%edi
532	leal	4237533241(%ebx,%ebp,1),%ebx
533	xorl	%edx,%edi
534	movl	48(%esi),%ebp
535	addl	%edi,%ebx
536	movl	$-1,%edi
537	roll	$21,%ebx
538	xorl	%edx,%edi
539	addl	%ecx,%ebx
540	# R3 52
541	orl	%ebx,%edi
542	leal	1700485571(%eax,%ebp,1),%eax
543	xorl	%ecx,%edi
544	movl	12(%esi),%ebp
545	addl	%edi,%eax
546	movl	$-1,%edi
547	roll	$6,%eax
548	xorl	%ecx,%edi
549	addl	%ebx,%eax
550	# R3 53
551	orl	%eax,%edi
552	leal	2399980690(%edx,%ebp,1),%edx
553	xorl	%ebx,%edi
554	movl	40(%esi),%ebp
555	addl	%edi,%edx
556	movl	$-1,%edi
557	roll	$10,%edx
558	xorl	%ebx,%edi
559	addl	%eax,%edx
560	# R3 54
561	orl	%edx,%edi
562	leal	4293915773(%ecx,%ebp,1),%ecx
563	xorl	%eax,%edi
564	movl	4(%esi),%ebp
565	addl	%edi,%ecx
566	movl	$-1,%edi
567	roll	$15,%ecx
568	xorl	%eax,%edi
569	addl	%edx,%ecx
570	# R3 55
571	orl	%ecx,%edi
572	leal	2240044497(%ebx,%ebp,1),%ebx
573	xorl	%edx,%edi
574	movl	32(%esi),%ebp
575	addl	%edi,%ebx
576	movl	$-1,%edi
577	roll	$21,%ebx
578	xorl	%edx,%edi
579	addl	%ecx,%ebx
580	# R3 56
581	orl	%ebx,%edi
582	leal	1873313359(%eax,%ebp,1),%eax
583	xorl	%ecx,%edi
584	movl	60(%esi),%ebp
585	addl	%edi,%eax
586	movl	$-1,%edi
587	roll	$6,%eax
588	xorl	%ecx,%edi
589	addl	%ebx,%eax
590	# R3 57
591	orl	%eax,%edi
592	leal	4264355552(%edx,%ebp,1),%edx
593	xorl	%ebx,%edi
594	movl	24(%esi),%ebp
595	addl	%edi,%edx
596	movl	$-1,%edi
597	roll	$10,%edx
598	xorl	%ebx,%edi
599	addl	%eax,%edx
600	# R3 58
601	orl	%edx,%edi
602	leal	2734768916(%ecx,%ebp,1),%ecx
603	xorl	%eax,%edi
604	movl	52(%esi),%ebp
605	addl	%edi,%ecx
606	movl	$-1,%edi
607	roll	$15,%ecx
608	xorl	%eax,%edi
609	addl	%edx,%ecx
610	# R3 59
611	orl	%ecx,%edi
612	leal	1309151649(%ebx,%ebp,1),%ebx
613	xorl	%edx,%edi
614	movl	16(%esi),%ebp
615	addl	%edi,%ebx
616	movl	$-1,%edi
617	roll	$21,%ebx
618	xorl	%edx,%edi
619	addl	%ecx,%ebx
620	# R3 60
621	orl	%ebx,%edi
622	leal	4149444226(%eax,%ebp,1),%eax
623	xorl	%ecx,%edi
624	movl	44(%esi),%ebp
625	addl	%edi,%eax
626	movl	$-1,%edi
627	roll	$6,%eax
628	xorl	%ecx,%edi
629	addl	%ebx,%eax
630	# R3 61
631	orl	%eax,%edi
632	leal	3174756917(%edx,%ebp,1),%edx
633	xorl	%ebx,%edi
634	movl	8(%esi),%ebp
635	addl	%edi,%edx
636	movl	$-1,%edi
637	roll	$10,%edx
638	xorl	%ebx,%edi
639	addl	%eax,%edx
640	# R3 62
641	orl	%edx,%edi
642	leal	718787259(%ecx,%ebp,1),%ecx
643	xorl	%eax,%edi
644	movl	36(%esi),%ebp
645	addl	%edi,%ecx
646	movl	$-1,%edi
647	roll	$15,%ecx
648	xorl	%eax,%edi
649	addl	%edx,%ecx
650	# R3 63
651	orl	%ecx,%edi
652	leal	3951481745(%ebx,%ebp,1),%ebx
653	xorl	%edx,%edi
654	movl	24(%esp),%ebp
655	addl	%edi,%ebx
656	addl	$64,%esi
657	roll	$21,%ebx
658	movl	(%ebp),%edi
659	addl	%ecx,%ebx
660	addl	%edi,%eax
661	movl	4(%ebp),%edi
662	addl	%edi,%ebx
663	movl	8(%ebp),%edi
664	addl	%edi,%ecx
665	movl	12(%ebp),%edi
666	addl	%edi,%edx
667	movl	%eax,(%ebp)
668	movl	%ebx,4(%ebp)
669	movl	(%esp),%edi
670	movl	%ecx,8(%ebp)
671	movl	%edx,12(%ebp)
672	cmpl	%esi,%edi
673	jae	L000start
674	popl	%eax
675	popl	%ebx
676	popl	%ebp
677	popl	%edi
678	popl	%esi
679	ret
680#endif
681