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