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