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