1#include "x86_arch.h"
2.text
3
4.hidden	OPENSSL_ia32cap_P
5
6.globl	sha1_block_data_order
7.type	sha1_block_data_order,@function
8.align	16
9sha1_block_data_order:
10	movl	OPENSSL_ia32cap_P+0(%rip),%r9d
11	movl	OPENSSL_ia32cap_P+4(%rip),%r8d
12	testl	$IA32CAP_MASK1_SSSE3,%r8d
13	jz	.Lialu
14	jmp	_ssse3_shortcut
15
16.align	16
17.Lialu:
18	pushq	%rbx
19	pushq	%rbp
20	pushq	%r12
21	pushq	%r13
22	movq	%rsp,%r11
23	movq	%rdi,%r8
24	subq	$72,%rsp
25	movq	%rsi,%r9
26	andq	$-64,%rsp
27	movq	%rdx,%r10
28	movq	%r11,64(%rsp)
29.Lprologue:
30
31	movl	0(%r8),%esi
32	movl	4(%r8),%edi
33	movl	8(%r8),%r11d
34	movl	12(%r8),%r12d
35	movl	16(%r8),%r13d
36	jmp	.Lloop
37
38.align	16
39.Lloop:
40	movl	0(%r9),%edx
41	bswapl	%edx
42	movl	%edx,0(%rsp)
43	movl	%r11d,%eax
44	movl	4(%r9),%ebp
45	movl	%esi,%ecx
46	xorl	%r12d,%eax
47	bswapl	%ebp
48	roll	$5,%ecx
49	leal	1518500249(%rdx,%r13,1),%r13d
50	andl	%edi,%eax
51	movl	%ebp,4(%rsp)
52	addl	%ecx,%r13d
53	xorl	%r12d,%eax
54	roll	$30,%edi
55	addl	%eax,%r13d
56	movl	%edi,%eax
57	movl	8(%r9),%edx
58	movl	%r13d,%ecx
59	xorl	%r11d,%eax
60	bswapl	%edx
61	roll	$5,%ecx
62	leal	1518500249(%rbp,%r12,1),%r12d
63	andl	%esi,%eax
64	movl	%edx,8(%rsp)
65	addl	%ecx,%r12d
66	xorl	%r11d,%eax
67	roll	$30,%esi
68	addl	%eax,%r12d
69	movl	%esi,%eax
70	movl	12(%r9),%ebp
71	movl	%r12d,%ecx
72	xorl	%edi,%eax
73	bswapl	%ebp
74	roll	$5,%ecx
75	leal	1518500249(%rdx,%r11,1),%r11d
76	andl	%r13d,%eax
77	movl	%ebp,12(%rsp)
78	addl	%ecx,%r11d
79	xorl	%edi,%eax
80	roll	$30,%r13d
81	addl	%eax,%r11d
82	movl	%r13d,%eax
83	movl	16(%r9),%edx
84	movl	%r11d,%ecx
85	xorl	%esi,%eax
86	bswapl	%edx
87	roll	$5,%ecx
88	leal	1518500249(%rbp,%rdi,1),%edi
89	andl	%r12d,%eax
90	movl	%edx,16(%rsp)
91	addl	%ecx,%edi
92	xorl	%esi,%eax
93	roll	$30,%r12d
94	addl	%eax,%edi
95	movl	%r12d,%eax
96	movl	20(%r9),%ebp
97	movl	%edi,%ecx
98	xorl	%r13d,%eax
99	bswapl	%ebp
100	roll	$5,%ecx
101	leal	1518500249(%rdx,%rsi,1),%esi
102	andl	%r11d,%eax
103	movl	%ebp,20(%rsp)
104	addl	%ecx,%esi
105	xorl	%r13d,%eax
106	roll	$30,%r11d
107	addl	%eax,%esi
108	movl	%r11d,%eax
109	movl	24(%r9),%edx
110	movl	%esi,%ecx
111	xorl	%r12d,%eax
112	bswapl	%edx
113	roll	$5,%ecx
114	leal	1518500249(%rbp,%r13,1),%r13d
115	andl	%edi,%eax
116	movl	%edx,24(%rsp)
117	addl	%ecx,%r13d
118	xorl	%r12d,%eax
119	roll	$30,%edi
120	addl	%eax,%r13d
121	movl	%edi,%eax
122	movl	28(%r9),%ebp
123	movl	%r13d,%ecx
124	xorl	%r11d,%eax
125	bswapl	%ebp
126	roll	$5,%ecx
127	leal	1518500249(%rdx,%r12,1),%r12d
128	andl	%esi,%eax
129	movl	%ebp,28(%rsp)
130	addl	%ecx,%r12d
131	xorl	%r11d,%eax
132	roll	$30,%esi
133	addl	%eax,%r12d
134	movl	%esi,%eax
135	movl	32(%r9),%edx
136	movl	%r12d,%ecx
137	xorl	%edi,%eax
138	bswapl	%edx
139	roll	$5,%ecx
140	leal	1518500249(%rbp,%r11,1),%r11d
141	andl	%r13d,%eax
142	movl	%edx,32(%rsp)
143	addl	%ecx,%r11d
144	xorl	%edi,%eax
145	roll	$30,%r13d
146	addl	%eax,%r11d
147	movl	%r13d,%eax
148	movl	36(%r9),%ebp
149	movl	%r11d,%ecx
150	xorl	%esi,%eax
151	bswapl	%ebp
152	roll	$5,%ecx
153	leal	1518500249(%rdx,%rdi,1),%edi
154	andl	%r12d,%eax
155	movl	%ebp,36(%rsp)
156	addl	%ecx,%edi
157	xorl	%esi,%eax
158	roll	$30,%r12d
159	addl	%eax,%edi
160	movl	%r12d,%eax
161	movl	40(%r9),%edx
162	movl	%edi,%ecx
163	xorl	%r13d,%eax
164	bswapl	%edx
165	roll	$5,%ecx
166	leal	1518500249(%rbp,%rsi,1),%esi
167	andl	%r11d,%eax
168	movl	%edx,40(%rsp)
169	addl	%ecx,%esi
170	xorl	%r13d,%eax
171	roll	$30,%r11d
172	addl	%eax,%esi
173	movl	%r11d,%eax
174	movl	44(%r9),%ebp
175	movl	%esi,%ecx
176	xorl	%r12d,%eax
177	bswapl	%ebp
178	roll	$5,%ecx
179	leal	1518500249(%rdx,%r13,1),%r13d
180	andl	%edi,%eax
181	movl	%ebp,44(%rsp)
182	addl	%ecx,%r13d
183	xorl	%r12d,%eax
184	roll	$30,%edi
185	addl	%eax,%r13d
186	movl	%edi,%eax
187	movl	48(%r9),%edx
188	movl	%r13d,%ecx
189	xorl	%r11d,%eax
190	bswapl	%edx
191	roll	$5,%ecx
192	leal	1518500249(%rbp,%r12,1),%r12d
193	andl	%esi,%eax
194	movl	%edx,48(%rsp)
195	addl	%ecx,%r12d
196	xorl	%r11d,%eax
197	roll	$30,%esi
198	addl	%eax,%r12d
199	movl	%esi,%eax
200	movl	52(%r9),%ebp
201	movl	%r12d,%ecx
202	xorl	%edi,%eax
203	bswapl	%ebp
204	roll	$5,%ecx
205	leal	1518500249(%rdx,%r11,1),%r11d
206	andl	%r13d,%eax
207	movl	%ebp,52(%rsp)
208	addl	%ecx,%r11d
209	xorl	%edi,%eax
210	roll	$30,%r13d
211	addl	%eax,%r11d
212	movl	%r13d,%eax
213	movl	56(%r9),%edx
214	movl	%r11d,%ecx
215	xorl	%esi,%eax
216	bswapl	%edx
217	roll	$5,%ecx
218	leal	1518500249(%rbp,%rdi,1),%edi
219	andl	%r12d,%eax
220	movl	%edx,56(%rsp)
221	addl	%ecx,%edi
222	xorl	%esi,%eax
223	roll	$30,%r12d
224	addl	%eax,%edi
225	movl	%r12d,%eax
226	movl	60(%r9),%ebp
227	movl	%edi,%ecx
228	xorl	%r13d,%eax
229	bswapl	%ebp
230	roll	$5,%ecx
231	leal	1518500249(%rdx,%rsi,1),%esi
232	andl	%r11d,%eax
233	movl	%ebp,60(%rsp)
234	addl	%ecx,%esi
235	xorl	%r13d,%eax
236	roll	$30,%r11d
237	addl	%eax,%esi
238	movl	0(%rsp),%edx
239	movl	%r11d,%eax
240	movl	%esi,%ecx
241	xorl	8(%rsp),%edx
242	xorl	%r12d,%eax
243	roll	$5,%ecx
244	xorl	32(%rsp),%edx
245	andl	%edi,%eax
246	leal	1518500249(%rbp,%r13,1),%r13d
247	xorl	52(%rsp),%edx
248	xorl	%r12d,%eax
249	roll	$1,%edx
250	addl	%ecx,%r13d
251	roll	$30,%edi
252	movl	%edx,0(%rsp)
253	addl	%eax,%r13d
254	movl	4(%rsp),%ebp
255	movl	%edi,%eax
256	movl	%r13d,%ecx
257	xorl	12(%rsp),%ebp
258	xorl	%r11d,%eax
259	roll	$5,%ecx
260	xorl	36(%rsp),%ebp
261	andl	%esi,%eax
262	leal	1518500249(%rdx,%r12,1),%r12d
263	xorl	56(%rsp),%ebp
264	xorl	%r11d,%eax
265	roll	$1,%ebp
266	addl	%ecx,%r12d
267	roll	$30,%esi
268	movl	%ebp,4(%rsp)
269	addl	%eax,%r12d
270	movl	8(%rsp),%edx
271	movl	%esi,%eax
272	movl	%r12d,%ecx
273	xorl	16(%rsp),%edx
274	xorl	%edi,%eax
275	roll	$5,%ecx
276	xorl	40(%rsp),%edx
277	andl	%r13d,%eax
278	leal	1518500249(%rbp,%r11,1),%r11d
279	xorl	60(%rsp),%edx
280	xorl	%edi,%eax
281	roll	$1,%edx
282	addl	%ecx,%r11d
283	roll	$30,%r13d
284	movl	%edx,8(%rsp)
285	addl	%eax,%r11d
286	movl	12(%rsp),%ebp
287	movl	%r13d,%eax
288	movl	%r11d,%ecx
289	xorl	20(%rsp),%ebp
290	xorl	%esi,%eax
291	roll	$5,%ecx
292	xorl	44(%rsp),%ebp
293	andl	%r12d,%eax
294	leal	1518500249(%rdx,%rdi,1),%edi
295	xorl	0(%rsp),%ebp
296	xorl	%esi,%eax
297	roll	$1,%ebp
298	addl	%ecx,%edi
299	roll	$30,%r12d
300	movl	%ebp,12(%rsp)
301	addl	%eax,%edi
302	movl	16(%rsp),%edx
303	movl	%r12d,%eax
304	movl	%edi,%ecx
305	xorl	24(%rsp),%edx
306	xorl	%r13d,%eax
307	roll	$5,%ecx
308	xorl	48(%rsp),%edx
309	andl	%r11d,%eax
310	leal	1518500249(%rbp,%rsi,1),%esi
311	xorl	4(%rsp),%edx
312	xorl	%r13d,%eax
313	roll	$1,%edx
314	addl	%ecx,%esi
315	roll	$30,%r11d
316	movl	%edx,16(%rsp)
317	addl	%eax,%esi
318	movl	20(%rsp),%ebp
319	movl	%r11d,%eax
320	movl	%esi,%ecx
321	xorl	28(%rsp),%ebp
322	xorl	%edi,%eax
323	roll	$5,%ecx
324	leal	1859775393(%rdx,%r13,1),%r13d
325	xorl	52(%rsp),%ebp
326	xorl	%r12d,%eax
327	addl	%ecx,%r13d
328	xorl	8(%rsp),%ebp
329	roll	$30,%edi
330	addl	%eax,%r13d
331	roll	$1,%ebp
332	movl	%ebp,20(%rsp)
333	movl	24(%rsp),%edx
334	movl	%edi,%eax
335	movl	%r13d,%ecx
336	xorl	32(%rsp),%edx
337	xorl	%esi,%eax
338	roll	$5,%ecx
339	leal	1859775393(%rbp,%r12,1),%r12d
340	xorl	56(%rsp),%edx
341	xorl	%r11d,%eax
342	addl	%ecx,%r12d
343	xorl	12(%rsp),%edx
344	roll	$30,%esi
345	addl	%eax,%r12d
346	roll	$1,%edx
347	movl	%edx,24(%rsp)
348	movl	28(%rsp),%ebp
349	movl	%esi,%eax
350	movl	%r12d,%ecx
351	xorl	36(%rsp),%ebp
352	xorl	%r13d,%eax
353	roll	$5,%ecx
354	leal	1859775393(%rdx,%r11,1),%r11d
355	xorl	60(%rsp),%ebp
356	xorl	%edi,%eax
357	addl	%ecx,%r11d
358	xorl	16(%rsp),%ebp
359	roll	$30,%r13d
360	addl	%eax,%r11d
361	roll	$1,%ebp
362	movl	%ebp,28(%rsp)
363	movl	32(%rsp),%edx
364	movl	%r13d,%eax
365	movl	%r11d,%ecx
366	xorl	40(%rsp),%edx
367	xorl	%r12d,%eax
368	roll	$5,%ecx
369	leal	1859775393(%rbp,%rdi,1),%edi
370	xorl	0(%rsp),%edx
371	xorl	%esi,%eax
372	addl	%ecx,%edi
373	xorl	20(%rsp),%edx
374	roll	$30,%r12d
375	addl	%eax,%edi
376	roll	$1,%edx
377	movl	%edx,32(%rsp)
378	movl	36(%rsp),%ebp
379	movl	%r12d,%eax
380	movl	%edi,%ecx
381	xorl	44(%rsp),%ebp
382	xorl	%r11d,%eax
383	roll	$5,%ecx
384	leal	1859775393(%rdx,%rsi,1),%esi
385	xorl	4(%rsp),%ebp
386	xorl	%r13d,%eax
387	addl	%ecx,%esi
388	xorl	24(%rsp),%ebp
389	roll	$30,%r11d
390	addl	%eax,%esi
391	roll	$1,%ebp
392	movl	%ebp,36(%rsp)
393	movl	40(%rsp),%edx
394	movl	%r11d,%eax
395	movl	%esi,%ecx
396	xorl	48(%rsp),%edx
397	xorl	%edi,%eax
398	roll	$5,%ecx
399	leal	1859775393(%rbp,%r13,1),%r13d
400	xorl	8(%rsp),%edx
401	xorl	%r12d,%eax
402	addl	%ecx,%r13d
403	xorl	28(%rsp),%edx
404	roll	$30,%edi
405	addl	%eax,%r13d
406	roll	$1,%edx
407	movl	%edx,40(%rsp)
408	movl	44(%rsp),%ebp
409	movl	%edi,%eax
410	movl	%r13d,%ecx
411	xorl	52(%rsp),%ebp
412	xorl	%esi,%eax
413	roll	$5,%ecx
414	leal	1859775393(%rdx,%r12,1),%r12d
415	xorl	12(%rsp),%ebp
416	xorl	%r11d,%eax
417	addl	%ecx,%r12d
418	xorl	32(%rsp),%ebp
419	roll	$30,%esi
420	addl	%eax,%r12d
421	roll	$1,%ebp
422	movl	%ebp,44(%rsp)
423	movl	48(%rsp),%edx
424	movl	%esi,%eax
425	movl	%r12d,%ecx
426	xorl	56(%rsp),%edx
427	xorl	%r13d,%eax
428	roll	$5,%ecx
429	leal	1859775393(%rbp,%r11,1),%r11d
430	xorl	16(%rsp),%edx
431	xorl	%edi,%eax
432	addl	%ecx,%r11d
433	xorl	36(%rsp),%edx
434	roll	$30,%r13d
435	addl	%eax,%r11d
436	roll	$1,%edx
437	movl	%edx,48(%rsp)
438	movl	52(%rsp),%ebp
439	movl	%r13d,%eax
440	movl	%r11d,%ecx
441	xorl	60(%rsp),%ebp
442	xorl	%r12d,%eax
443	roll	$5,%ecx
444	leal	1859775393(%rdx,%rdi,1),%edi
445	xorl	20(%rsp),%ebp
446	xorl	%esi,%eax
447	addl	%ecx,%edi
448	xorl	40(%rsp),%ebp
449	roll	$30,%r12d
450	addl	%eax,%edi
451	roll	$1,%ebp
452	movl	%ebp,52(%rsp)
453	movl	56(%rsp),%edx
454	movl	%r12d,%eax
455	movl	%edi,%ecx
456	xorl	0(%rsp),%edx
457	xorl	%r11d,%eax
458	roll	$5,%ecx
459	leal	1859775393(%rbp,%rsi,1),%esi
460	xorl	24(%rsp),%edx
461	xorl	%r13d,%eax
462	addl	%ecx,%esi
463	xorl	44(%rsp),%edx
464	roll	$30,%r11d
465	addl	%eax,%esi
466	roll	$1,%edx
467	movl	%edx,56(%rsp)
468	movl	60(%rsp),%ebp
469	movl	%r11d,%eax
470	movl	%esi,%ecx
471	xorl	4(%rsp),%ebp
472	xorl	%edi,%eax
473	roll	$5,%ecx
474	leal	1859775393(%rdx,%r13,1),%r13d
475	xorl	28(%rsp),%ebp
476	xorl	%r12d,%eax
477	addl	%ecx,%r13d
478	xorl	48(%rsp),%ebp
479	roll	$30,%edi
480	addl	%eax,%r13d
481	roll	$1,%ebp
482	movl	%ebp,60(%rsp)
483	movl	0(%rsp),%edx
484	movl	%edi,%eax
485	movl	%r13d,%ecx
486	xorl	8(%rsp),%edx
487	xorl	%esi,%eax
488	roll	$5,%ecx
489	leal	1859775393(%rbp,%r12,1),%r12d
490	xorl	32(%rsp),%edx
491	xorl	%r11d,%eax
492	addl	%ecx,%r12d
493	xorl	52(%rsp),%edx
494	roll	$30,%esi
495	addl	%eax,%r12d
496	roll	$1,%edx
497	movl	%edx,0(%rsp)
498	movl	4(%rsp),%ebp
499	movl	%esi,%eax
500	movl	%r12d,%ecx
501	xorl	12(%rsp),%ebp
502	xorl	%r13d,%eax
503	roll	$5,%ecx
504	leal	1859775393(%rdx,%r11,1),%r11d
505	xorl	36(%rsp),%ebp
506	xorl	%edi,%eax
507	addl	%ecx,%r11d
508	xorl	56(%rsp),%ebp
509	roll	$30,%r13d
510	addl	%eax,%r11d
511	roll	$1,%ebp
512	movl	%ebp,4(%rsp)
513	movl	8(%rsp),%edx
514	movl	%r13d,%eax
515	movl	%r11d,%ecx
516	xorl	16(%rsp),%edx
517	xorl	%r12d,%eax
518	roll	$5,%ecx
519	leal	1859775393(%rbp,%rdi,1),%edi
520	xorl	40(%rsp),%edx
521	xorl	%esi,%eax
522	addl	%ecx,%edi
523	xorl	60(%rsp),%edx
524	roll	$30,%r12d
525	addl	%eax,%edi
526	roll	$1,%edx
527	movl	%edx,8(%rsp)
528	movl	12(%rsp),%ebp
529	movl	%r12d,%eax
530	movl	%edi,%ecx
531	xorl	20(%rsp),%ebp
532	xorl	%r11d,%eax
533	roll	$5,%ecx
534	leal	1859775393(%rdx,%rsi,1),%esi
535	xorl	44(%rsp),%ebp
536	xorl	%r13d,%eax
537	addl	%ecx,%esi
538	xorl	0(%rsp),%ebp
539	roll	$30,%r11d
540	addl	%eax,%esi
541	roll	$1,%ebp
542	movl	%ebp,12(%rsp)
543	movl	16(%rsp),%edx
544	movl	%r11d,%eax
545	movl	%esi,%ecx
546	xorl	24(%rsp),%edx
547	xorl	%edi,%eax
548	roll	$5,%ecx
549	leal	1859775393(%rbp,%r13,1),%r13d
550	xorl	48(%rsp),%edx
551	xorl	%r12d,%eax
552	addl	%ecx,%r13d
553	xorl	4(%rsp),%edx
554	roll	$30,%edi
555	addl	%eax,%r13d
556	roll	$1,%edx
557	movl	%edx,16(%rsp)
558	movl	20(%rsp),%ebp
559	movl	%edi,%eax
560	movl	%r13d,%ecx
561	xorl	28(%rsp),%ebp
562	xorl	%esi,%eax
563	roll	$5,%ecx
564	leal	1859775393(%rdx,%r12,1),%r12d
565	xorl	52(%rsp),%ebp
566	xorl	%r11d,%eax
567	addl	%ecx,%r12d
568	xorl	8(%rsp),%ebp
569	roll	$30,%esi
570	addl	%eax,%r12d
571	roll	$1,%ebp
572	movl	%ebp,20(%rsp)
573	movl	24(%rsp),%edx
574	movl	%esi,%eax
575	movl	%r12d,%ecx
576	xorl	32(%rsp),%edx
577	xorl	%r13d,%eax
578	roll	$5,%ecx
579	leal	1859775393(%rbp,%r11,1),%r11d
580	xorl	56(%rsp),%edx
581	xorl	%edi,%eax
582	addl	%ecx,%r11d
583	xorl	12(%rsp),%edx
584	roll	$30,%r13d
585	addl	%eax,%r11d
586	roll	$1,%edx
587	movl	%edx,24(%rsp)
588	movl	28(%rsp),%ebp
589	movl	%r13d,%eax
590	movl	%r11d,%ecx
591	xorl	36(%rsp),%ebp
592	xorl	%r12d,%eax
593	roll	$5,%ecx
594	leal	1859775393(%rdx,%rdi,1),%edi
595	xorl	60(%rsp),%ebp
596	xorl	%esi,%eax
597	addl	%ecx,%edi
598	xorl	16(%rsp),%ebp
599	roll	$30,%r12d
600	addl	%eax,%edi
601	roll	$1,%ebp
602	movl	%ebp,28(%rsp)
603	movl	32(%rsp),%edx
604	movl	%r12d,%eax
605	movl	%edi,%ecx
606	xorl	40(%rsp),%edx
607	xorl	%r11d,%eax
608	roll	$5,%ecx
609	leal	1859775393(%rbp,%rsi,1),%esi
610	xorl	0(%rsp),%edx
611	xorl	%r13d,%eax
612	addl	%ecx,%esi
613	xorl	20(%rsp),%edx
614	roll	$30,%r11d
615	addl	%eax,%esi
616	roll	$1,%edx
617	movl	%edx,32(%rsp)
618	movl	36(%rsp),%ebp
619	movl	%r11d,%eax
620	movl	%r11d,%ebx
621	xorl	44(%rsp),%ebp
622	andl	%r12d,%eax
623	movl	%esi,%ecx
624	xorl	4(%rsp),%ebp
625	xorl	%r12d,%ebx
626	leal	-1894007588(%rdx,%r13,1),%r13d
627	roll	$5,%ecx
628	xorl	24(%rsp),%ebp
629	addl	%eax,%r13d
630	andl	%edi,%ebx
631	roll	$1,%ebp
632	addl	%ebx,%r13d
633	roll	$30,%edi
634	movl	%ebp,36(%rsp)
635	addl	%ecx,%r13d
636	movl	40(%rsp),%edx
637	movl	%edi,%eax
638	movl	%edi,%ebx
639	xorl	48(%rsp),%edx
640	andl	%r11d,%eax
641	movl	%r13d,%ecx
642	xorl	8(%rsp),%edx
643	xorl	%r11d,%ebx
644	leal	-1894007588(%rbp,%r12,1),%r12d
645	roll	$5,%ecx
646	xorl	28(%rsp),%edx
647	addl	%eax,%r12d
648	andl	%esi,%ebx
649	roll	$1,%edx
650	addl	%ebx,%r12d
651	roll	$30,%esi
652	movl	%edx,40(%rsp)
653	addl	%ecx,%r12d
654	movl	44(%rsp),%ebp
655	movl	%esi,%eax
656	movl	%esi,%ebx
657	xorl	52(%rsp),%ebp
658	andl	%edi,%eax
659	movl	%r12d,%ecx
660	xorl	12(%rsp),%ebp
661	xorl	%edi,%ebx
662	leal	-1894007588(%rdx,%r11,1),%r11d
663	roll	$5,%ecx
664	xorl	32(%rsp),%ebp
665	addl	%eax,%r11d
666	andl	%r13d,%ebx
667	roll	$1,%ebp
668	addl	%ebx,%r11d
669	roll	$30,%r13d
670	movl	%ebp,44(%rsp)
671	addl	%ecx,%r11d
672	movl	48(%rsp),%edx
673	movl	%r13d,%eax
674	movl	%r13d,%ebx
675	xorl	56(%rsp),%edx
676	andl	%esi,%eax
677	movl	%r11d,%ecx
678	xorl	16(%rsp),%edx
679	xorl	%esi,%ebx
680	leal	-1894007588(%rbp,%rdi,1),%edi
681	roll	$5,%ecx
682	xorl	36(%rsp),%edx
683	addl	%eax,%edi
684	andl	%r12d,%ebx
685	roll	$1,%edx
686	addl	%ebx,%edi
687	roll	$30,%r12d
688	movl	%edx,48(%rsp)
689	addl	%ecx,%edi
690	movl	52(%rsp),%ebp
691	movl	%r12d,%eax
692	movl	%r12d,%ebx
693	xorl	60(%rsp),%ebp
694	andl	%r13d,%eax
695	movl	%edi,%ecx
696	xorl	20(%rsp),%ebp
697	xorl	%r13d,%ebx
698	leal	-1894007588(%rdx,%rsi,1),%esi
699	roll	$5,%ecx
700	xorl	40(%rsp),%ebp
701	addl	%eax,%esi
702	andl	%r11d,%ebx
703	roll	$1,%ebp
704	addl	%ebx,%esi
705	roll	$30,%r11d
706	movl	%ebp,52(%rsp)
707	addl	%ecx,%esi
708	movl	56(%rsp),%edx
709	movl	%r11d,%eax
710	movl	%r11d,%ebx
711	xorl	0(%rsp),%edx
712	andl	%r12d,%eax
713	movl	%esi,%ecx
714	xorl	24(%rsp),%edx
715	xorl	%r12d,%ebx
716	leal	-1894007588(%rbp,%r13,1),%r13d
717	roll	$5,%ecx
718	xorl	44(%rsp),%edx
719	addl	%eax,%r13d
720	andl	%edi,%ebx
721	roll	$1,%edx
722	addl	%ebx,%r13d
723	roll	$30,%edi
724	movl	%edx,56(%rsp)
725	addl	%ecx,%r13d
726	movl	60(%rsp),%ebp
727	movl	%edi,%eax
728	movl	%edi,%ebx
729	xorl	4(%rsp),%ebp
730	andl	%r11d,%eax
731	movl	%r13d,%ecx
732	xorl	28(%rsp),%ebp
733	xorl	%r11d,%ebx
734	leal	-1894007588(%rdx,%r12,1),%r12d
735	roll	$5,%ecx
736	xorl	48(%rsp),%ebp
737	addl	%eax,%r12d
738	andl	%esi,%ebx
739	roll	$1,%ebp
740	addl	%ebx,%r12d
741	roll	$30,%esi
742	movl	%ebp,60(%rsp)
743	addl	%ecx,%r12d
744	movl	0(%rsp),%edx
745	movl	%esi,%eax
746	movl	%esi,%ebx
747	xorl	8(%rsp),%edx
748	andl	%edi,%eax
749	movl	%r12d,%ecx
750	xorl	32(%rsp),%edx
751	xorl	%edi,%ebx
752	leal	-1894007588(%rbp,%r11,1),%r11d
753	roll	$5,%ecx
754	xorl	52(%rsp),%edx
755	addl	%eax,%r11d
756	andl	%r13d,%ebx
757	roll	$1,%edx
758	addl	%ebx,%r11d
759	roll	$30,%r13d
760	movl	%edx,0(%rsp)
761	addl	%ecx,%r11d
762	movl	4(%rsp),%ebp
763	movl	%r13d,%eax
764	movl	%r13d,%ebx
765	xorl	12(%rsp),%ebp
766	andl	%esi,%eax
767	movl	%r11d,%ecx
768	xorl	36(%rsp),%ebp
769	xorl	%esi,%ebx
770	leal	-1894007588(%rdx,%rdi,1),%edi
771	roll	$5,%ecx
772	xorl	56(%rsp),%ebp
773	addl	%eax,%edi
774	andl	%r12d,%ebx
775	roll	$1,%ebp
776	addl	%ebx,%edi
777	roll	$30,%r12d
778	movl	%ebp,4(%rsp)
779	addl	%ecx,%edi
780	movl	8(%rsp),%edx
781	movl	%r12d,%eax
782	movl	%r12d,%ebx
783	xorl	16(%rsp),%edx
784	andl	%r13d,%eax
785	movl	%edi,%ecx
786	xorl	40(%rsp),%edx
787	xorl	%r13d,%ebx
788	leal	-1894007588(%rbp,%rsi,1),%esi
789	roll	$5,%ecx
790	xorl	60(%rsp),%edx
791	addl	%eax,%esi
792	andl	%r11d,%ebx
793	roll	$1,%edx
794	addl	%ebx,%esi
795	roll	$30,%r11d
796	movl	%edx,8(%rsp)
797	addl	%ecx,%esi
798	movl	12(%rsp),%ebp
799	movl	%r11d,%eax
800	movl	%r11d,%ebx
801	xorl	20(%rsp),%ebp
802	andl	%r12d,%eax
803	movl	%esi,%ecx
804	xorl	44(%rsp),%ebp
805	xorl	%r12d,%ebx
806	leal	-1894007588(%rdx,%r13,1),%r13d
807	roll	$5,%ecx
808	xorl	0(%rsp),%ebp
809	addl	%eax,%r13d
810	andl	%edi,%ebx
811	roll	$1,%ebp
812	addl	%ebx,%r13d
813	roll	$30,%edi
814	movl	%ebp,12(%rsp)
815	addl	%ecx,%r13d
816	movl	16(%rsp),%edx
817	movl	%edi,%eax
818	movl	%edi,%ebx
819	xorl	24(%rsp),%edx
820	andl	%r11d,%eax
821	movl	%r13d,%ecx
822	xorl	48(%rsp),%edx
823	xorl	%r11d,%ebx
824	leal	-1894007588(%rbp,%r12,1),%r12d
825	roll	$5,%ecx
826	xorl	4(%rsp),%edx
827	addl	%eax,%r12d
828	andl	%esi,%ebx
829	roll	$1,%edx
830	addl	%ebx,%r12d
831	roll	$30,%esi
832	movl	%edx,16(%rsp)
833	addl	%ecx,%r12d
834	movl	20(%rsp),%ebp
835	movl	%esi,%eax
836	movl	%esi,%ebx
837	xorl	28(%rsp),%ebp
838	andl	%edi,%eax
839	movl	%r12d,%ecx
840	xorl	52(%rsp),%ebp
841	xorl	%edi,%ebx
842	leal	-1894007588(%rdx,%r11,1),%r11d
843	roll	$5,%ecx
844	xorl	8(%rsp),%ebp
845	addl	%eax,%r11d
846	andl	%r13d,%ebx
847	roll	$1,%ebp
848	addl	%ebx,%r11d
849	roll	$30,%r13d
850	movl	%ebp,20(%rsp)
851	addl	%ecx,%r11d
852	movl	24(%rsp),%edx
853	movl	%r13d,%eax
854	movl	%r13d,%ebx
855	xorl	32(%rsp),%edx
856	andl	%esi,%eax
857	movl	%r11d,%ecx
858	xorl	56(%rsp),%edx
859	xorl	%esi,%ebx
860	leal	-1894007588(%rbp,%rdi,1),%edi
861	roll	$5,%ecx
862	xorl	12(%rsp),%edx
863	addl	%eax,%edi
864	andl	%r12d,%ebx
865	roll	$1,%edx
866	addl	%ebx,%edi
867	roll	$30,%r12d
868	movl	%edx,24(%rsp)
869	addl	%ecx,%edi
870	movl	28(%rsp),%ebp
871	movl	%r12d,%eax
872	movl	%r12d,%ebx
873	xorl	36(%rsp),%ebp
874	andl	%r13d,%eax
875	movl	%edi,%ecx
876	xorl	60(%rsp),%ebp
877	xorl	%r13d,%ebx
878	leal	-1894007588(%rdx,%rsi,1),%esi
879	roll	$5,%ecx
880	xorl	16(%rsp),%ebp
881	addl	%eax,%esi
882	andl	%r11d,%ebx
883	roll	$1,%ebp
884	addl	%ebx,%esi
885	roll	$30,%r11d
886	movl	%ebp,28(%rsp)
887	addl	%ecx,%esi
888	movl	32(%rsp),%edx
889	movl	%r11d,%eax
890	movl	%r11d,%ebx
891	xorl	40(%rsp),%edx
892	andl	%r12d,%eax
893	movl	%esi,%ecx
894	xorl	0(%rsp),%edx
895	xorl	%r12d,%ebx
896	leal	-1894007588(%rbp,%r13,1),%r13d
897	roll	$5,%ecx
898	xorl	20(%rsp),%edx
899	addl	%eax,%r13d
900	andl	%edi,%ebx
901	roll	$1,%edx
902	addl	%ebx,%r13d
903	roll	$30,%edi
904	movl	%edx,32(%rsp)
905	addl	%ecx,%r13d
906	movl	36(%rsp),%ebp
907	movl	%edi,%eax
908	movl	%edi,%ebx
909	xorl	44(%rsp),%ebp
910	andl	%r11d,%eax
911	movl	%r13d,%ecx
912	xorl	4(%rsp),%ebp
913	xorl	%r11d,%ebx
914	leal	-1894007588(%rdx,%r12,1),%r12d
915	roll	$5,%ecx
916	xorl	24(%rsp),%ebp
917	addl	%eax,%r12d
918	andl	%esi,%ebx
919	roll	$1,%ebp
920	addl	%ebx,%r12d
921	roll	$30,%esi
922	movl	%ebp,36(%rsp)
923	addl	%ecx,%r12d
924	movl	40(%rsp),%edx
925	movl	%esi,%eax
926	movl	%esi,%ebx
927	xorl	48(%rsp),%edx
928	andl	%edi,%eax
929	movl	%r12d,%ecx
930	xorl	8(%rsp),%edx
931	xorl	%edi,%ebx
932	leal	-1894007588(%rbp,%r11,1),%r11d
933	roll	$5,%ecx
934	xorl	28(%rsp),%edx
935	addl	%eax,%r11d
936	andl	%r13d,%ebx
937	roll	$1,%edx
938	addl	%ebx,%r11d
939	roll	$30,%r13d
940	movl	%edx,40(%rsp)
941	addl	%ecx,%r11d
942	movl	44(%rsp),%ebp
943	movl	%r13d,%eax
944	movl	%r13d,%ebx
945	xorl	52(%rsp),%ebp
946	andl	%esi,%eax
947	movl	%r11d,%ecx
948	xorl	12(%rsp),%ebp
949	xorl	%esi,%ebx
950	leal	-1894007588(%rdx,%rdi,1),%edi
951	roll	$5,%ecx
952	xorl	32(%rsp),%ebp
953	addl	%eax,%edi
954	andl	%r12d,%ebx
955	roll	$1,%ebp
956	addl	%ebx,%edi
957	roll	$30,%r12d
958	movl	%ebp,44(%rsp)
959	addl	%ecx,%edi
960	movl	48(%rsp),%edx
961	movl	%r12d,%eax
962	movl	%r12d,%ebx
963	xorl	56(%rsp),%edx
964	andl	%r13d,%eax
965	movl	%edi,%ecx
966	xorl	16(%rsp),%edx
967	xorl	%r13d,%ebx
968	leal	-1894007588(%rbp,%rsi,1),%esi
969	roll	$5,%ecx
970	xorl	36(%rsp),%edx
971	addl	%eax,%esi
972	andl	%r11d,%ebx
973	roll	$1,%edx
974	addl	%ebx,%esi
975	roll	$30,%r11d
976	movl	%edx,48(%rsp)
977	addl	%ecx,%esi
978	movl	52(%rsp),%ebp
979	movl	%r11d,%eax
980	movl	%esi,%ecx
981	xorl	60(%rsp),%ebp
982	xorl	%edi,%eax
983	roll	$5,%ecx
984	leal	-899497514(%rdx,%r13,1),%r13d
985	xorl	20(%rsp),%ebp
986	xorl	%r12d,%eax
987	addl	%ecx,%r13d
988	xorl	40(%rsp),%ebp
989	roll	$30,%edi
990	addl	%eax,%r13d
991	roll	$1,%ebp
992	movl	%ebp,52(%rsp)
993	movl	56(%rsp),%edx
994	movl	%edi,%eax
995	movl	%r13d,%ecx
996	xorl	0(%rsp),%edx
997	xorl	%esi,%eax
998	roll	$5,%ecx
999	leal	-899497514(%rbp,%r12,1),%r12d
1000	xorl	24(%rsp),%edx
1001	xorl	%r11d,%eax
1002	addl	%ecx,%r12d
1003	xorl	44(%rsp),%edx
1004	roll	$30,%esi
1005	addl	%eax,%r12d
1006	roll	$1,%edx
1007	movl	%edx,56(%rsp)
1008	movl	60(%rsp),%ebp
1009	movl	%esi,%eax
1010	movl	%r12d,%ecx
1011	xorl	4(%rsp),%ebp
1012	xorl	%r13d,%eax
1013	roll	$5,%ecx
1014	leal	-899497514(%rdx,%r11,1),%r11d
1015	xorl	28(%rsp),%ebp
1016	xorl	%edi,%eax
1017	addl	%ecx,%r11d
1018	xorl	48(%rsp),%ebp
1019	roll	$30,%r13d
1020	addl	%eax,%r11d
1021	roll	$1,%ebp
1022	movl	%ebp,60(%rsp)
1023	movl	0(%rsp),%edx
1024	movl	%r13d,%eax
1025	movl	%r11d,%ecx
1026	xorl	8(%rsp),%edx
1027	xorl	%r12d,%eax
1028	roll	$5,%ecx
1029	leal	-899497514(%rbp,%rdi,1),%edi
1030	xorl	32(%rsp),%edx
1031	xorl	%esi,%eax
1032	addl	%ecx,%edi
1033	xorl	52(%rsp),%edx
1034	roll	$30,%r12d
1035	addl	%eax,%edi
1036	roll	$1,%edx
1037	movl	%edx,0(%rsp)
1038	movl	4(%rsp),%ebp
1039	movl	%r12d,%eax
1040	movl	%edi,%ecx
1041	xorl	12(%rsp),%ebp
1042	xorl	%r11d,%eax
1043	roll	$5,%ecx
1044	leal	-899497514(%rdx,%rsi,1),%esi
1045	xorl	36(%rsp),%ebp
1046	xorl	%r13d,%eax
1047	addl	%ecx,%esi
1048	xorl	56(%rsp),%ebp
1049	roll	$30,%r11d
1050	addl	%eax,%esi
1051	roll	$1,%ebp
1052	movl	%ebp,4(%rsp)
1053	movl	8(%rsp),%edx
1054	movl	%r11d,%eax
1055	movl	%esi,%ecx
1056	xorl	16(%rsp),%edx
1057	xorl	%edi,%eax
1058	roll	$5,%ecx
1059	leal	-899497514(%rbp,%r13,1),%r13d
1060	xorl	40(%rsp),%edx
1061	xorl	%r12d,%eax
1062	addl	%ecx,%r13d
1063	xorl	60(%rsp),%edx
1064	roll	$30,%edi
1065	addl	%eax,%r13d
1066	roll	$1,%edx
1067	movl	%edx,8(%rsp)
1068	movl	12(%rsp),%ebp
1069	movl	%edi,%eax
1070	movl	%r13d,%ecx
1071	xorl	20(%rsp),%ebp
1072	xorl	%esi,%eax
1073	roll	$5,%ecx
1074	leal	-899497514(%rdx,%r12,1),%r12d
1075	xorl	44(%rsp),%ebp
1076	xorl	%r11d,%eax
1077	addl	%ecx,%r12d
1078	xorl	0(%rsp),%ebp
1079	roll	$30,%esi
1080	addl	%eax,%r12d
1081	roll	$1,%ebp
1082	movl	%ebp,12(%rsp)
1083	movl	16(%rsp),%edx
1084	movl	%esi,%eax
1085	movl	%r12d,%ecx
1086	xorl	24(%rsp),%edx
1087	xorl	%r13d,%eax
1088	roll	$5,%ecx
1089	leal	-899497514(%rbp,%r11,1),%r11d
1090	xorl	48(%rsp),%edx
1091	xorl	%edi,%eax
1092	addl	%ecx,%r11d
1093	xorl	4(%rsp),%edx
1094	roll	$30,%r13d
1095	addl	%eax,%r11d
1096	roll	$1,%edx
1097	movl	%edx,16(%rsp)
1098	movl	20(%rsp),%ebp
1099	movl	%r13d,%eax
1100	movl	%r11d,%ecx
1101	xorl	28(%rsp),%ebp
1102	xorl	%r12d,%eax
1103	roll	$5,%ecx
1104	leal	-899497514(%rdx,%rdi,1),%edi
1105	xorl	52(%rsp),%ebp
1106	xorl	%esi,%eax
1107	addl	%ecx,%edi
1108	xorl	8(%rsp),%ebp
1109	roll	$30,%r12d
1110	addl	%eax,%edi
1111	roll	$1,%ebp
1112	movl	%ebp,20(%rsp)
1113	movl	24(%rsp),%edx
1114	movl	%r12d,%eax
1115	movl	%edi,%ecx
1116	xorl	32(%rsp),%edx
1117	xorl	%r11d,%eax
1118	roll	$5,%ecx
1119	leal	-899497514(%rbp,%rsi,1),%esi
1120	xorl	56(%rsp),%edx
1121	xorl	%r13d,%eax
1122	addl	%ecx,%esi
1123	xorl	12(%rsp),%edx
1124	roll	$30,%r11d
1125	addl	%eax,%esi
1126	roll	$1,%edx
1127	movl	%edx,24(%rsp)
1128	movl	28(%rsp),%ebp
1129	movl	%r11d,%eax
1130	movl	%esi,%ecx
1131	xorl	36(%rsp),%ebp
1132	xorl	%edi,%eax
1133	roll	$5,%ecx
1134	leal	-899497514(%rdx,%r13,1),%r13d
1135	xorl	60(%rsp),%ebp
1136	xorl	%r12d,%eax
1137	addl	%ecx,%r13d
1138	xorl	16(%rsp),%ebp
1139	roll	$30,%edi
1140	addl	%eax,%r13d
1141	roll	$1,%ebp
1142	movl	%ebp,28(%rsp)
1143	movl	32(%rsp),%edx
1144	movl	%edi,%eax
1145	movl	%r13d,%ecx
1146	xorl	40(%rsp),%edx
1147	xorl	%esi,%eax
1148	roll	$5,%ecx
1149	leal	-899497514(%rbp,%r12,1),%r12d
1150	xorl	0(%rsp),%edx
1151	xorl	%r11d,%eax
1152	addl	%ecx,%r12d
1153	xorl	20(%rsp),%edx
1154	roll	$30,%esi
1155	addl	%eax,%r12d
1156	roll	$1,%edx
1157	movl	%edx,32(%rsp)
1158	movl	36(%rsp),%ebp
1159	movl	%esi,%eax
1160	movl	%r12d,%ecx
1161	xorl	44(%rsp),%ebp
1162	xorl	%r13d,%eax
1163	roll	$5,%ecx
1164	leal	-899497514(%rdx,%r11,1),%r11d
1165	xorl	4(%rsp),%ebp
1166	xorl	%edi,%eax
1167	addl	%ecx,%r11d
1168	xorl	24(%rsp),%ebp
1169	roll	$30,%r13d
1170	addl	%eax,%r11d
1171	roll	$1,%ebp
1172	movl	%ebp,36(%rsp)
1173	movl	40(%rsp),%edx
1174	movl	%r13d,%eax
1175	movl	%r11d,%ecx
1176	xorl	48(%rsp),%edx
1177	xorl	%r12d,%eax
1178	roll	$5,%ecx
1179	leal	-899497514(%rbp,%rdi,1),%edi
1180	xorl	8(%rsp),%edx
1181	xorl	%esi,%eax
1182	addl	%ecx,%edi
1183	xorl	28(%rsp),%edx
1184	roll	$30,%r12d
1185	addl	%eax,%edi
1186	roll	$1,%edx
1187	movl	%edx,40(%rsp)
1188	movl	44(%rsp),%ebp
1189	movl	%r12d,%eax
1190	movl	%edi,%ecx
1191	xorl	52(%rsp),%ebp
1192	xorl	%r11d,%eax
1193	roll	$5,%ecx
1194	leal	-899497514(%rdx,%rsi,1),%esi
1195	xorl	12(%rsp),%ebp
1196	xorl	%r13d,%eax
1197	addl	%ecx,%esi
1198	xorl	32(%rsp),%ebp
1199	roll	$30,%r11d
1200	addl	%eax,%esi
1201	roll	$1,%ebp
1202	movl	%ebp,44(%rsp)
1203	movl	48(%rsp),%edx
1204	movl	%r11d,%eax
1205	movl	%esi,%ecx
1206	xorl	56(%rsp),%edx
1207	xorl	%edi,%eax
1208	roll	$5,%ecx
1209	leal	-899497514(%rbp,%r13,1),%r13d
1210	xorl	16(%rsp),%edx
1211	xorl	%r12d,%eax
1212	addl	%ecx,%r13d
1213	xorl	36(%rsp),%edx
1214	roll	$30,%edi
1215	addl	%eax,%r13d
1216	roll	$1,%edx
1217	movl	%edx,48(%rsp)
1218	movl	52(%rsp),%ebp
1219	movl	%edi,%eax
1220	movl	%r13d,%ecx
1221	xorl	60(%rsp),%ebp
1222	xorl	%esi,%eax
1223	roll	$5,%ecx
1224	leal	-899497514(%rdx,%r12,1),%r12d
1225	xorl	20(%rsp),%ebp
1226	xorl	%r11d,%eax
1227	addl	%ecx,%r12d
1228	xorl	40(%rsp),%ebp
1229	roll	$30,%esi
1230	addl	%eax,%r12d
1231	roll	$1,%ebp
1232	movl	56(%rsp),%edx
1233	movl	%esi,%eax
1234	movl	%r12d,%ecx
1235	xorl	0(%rsp),%edx
1236	xorl	%r13d,%eax
1237	roll	$5,%ecx
1238	leal	-899497514(%rbp,%r11,1),%r11d
1239	xorl	24(%rsp),%edx
1240	xorl	%edi,%eax
1241	addl	%ecx,%r11d
1242	xorl	44(%rsp),%edx
1243	roll	$30,%r13d
1244	addl	%eax,%r11d
1245	roll	$1,%edx
1246	movl	60(%rsp),%ebp
1247	movl	%r13d,%eax
1248	movl	%r11d,%ecx
1249	xorl	4(%rsp),%ebp
1250	xorl	%r12d,%eax
1251	roll	$5,%ecx
1252	leal	-899497514(%rdx,%rdi,1),%edi
1253	xorl	28(%rsp),%ebp
1254	xorl	%esi,%eax
1255	addl	%ecx,%edi
1256	xorl	48(%rsp),%ebp
1257	roll	$30,%r12d
1258	addl	%eax,%edi
1259	roll	$1,%ebp
1260	movl	%r12d,%eax
1261	movl	%edi,%ecx
1262	xorl	%r11d,%eax
1263	leal	-899497514(%rbp,%rsi,1),%esi
1264	roll	$5,%ecx
1265	xorl	%r13d,%eax
1266	addl	%ecx,%esi
1267	roll	$30,%r11d
1268	addl	%eax,%esi
1269	addl	0(%r8),%esi
1270	addl	4(%r8),%edi
1271	addl	8(%r8),%r11d
1272	addl	12(%r8),%r12d
1273	addl	16(%r8),%r13d
1274	movl	%esi,0(%r8)
1275	movl	%edi,4(%r8)
1276	movl	%r11d,8(%r8)
1277	movl	%r12d,12(%r8)
1278	movl	%r13d,16(%r8)
1279
1280	subq	$1,%r10
1281	leaq	64(%r9),%r9
1282	jnz	.Lloop
1283
1284	movq	64(%rsp),%rsi
1285	movq	(%rsi),%r13
1286	movq	8(%rsi),%r12
1287	movq	16(%rsi),%rbp
1288	movq	24(%rsi),%rbx
1289	leaq	32(%rsi),%rsp
1290.Lepilogue:
1291	retq
1292.size	sha1_block_data_order,.-sha1_block_data_order
1293.type	sha1_block_data_order_ssse3,@function
1294.align	16
1295sha1_block_data_order_ssse3:
1296_ssse3_shortcut:
1297	pushq	%rbx
1298	pushq	%rbp
1299	pushq	%r12
1300	leaq	-64(%rsp),%rsp
1301	movq	%rdi,%r8
1302	movq	%rsi,%r9
1303	movq	%rdx,%r10
1304
1305	shlq	$6,%r10
1306	addq	%r9,%r10
1307	leaq	K_XX_XX(%rip),%r11
1308
1309	movl	0(%r8),%eax
1310	movl	4(%r8),%ebx
1311	movl	8(%r8),%ecx
1312	movl	12(%r8),%edx
1313	movl	%ebx,%esi
1314	movl	16(%r8),%ebp
1315
1316	movdqa	64(%r11),%xmm6
1317	movdqa	0(%r11),%xmm9
1318	movdqu	0(%r9),%xmm0
1319	movdqu	16(%r9),%xmm1
1320	movdqu	32(%r9),%xmm2
1321	movdqu	48(%r9),%xmm3
1322.byte	102,15,56,0,198
1323	addq	$64,%r9
1324.byte	102,15,56,0,206
1325.byte	102,15,56,0,214
1326.byte	102,15,56,0,222
1327	paddd	%xmm9,%xmm0
1328	paddd	%xmm9,%xmm1
1329	paddd	%xmm9,%xmm2
1330	movdqa	%xmm0,0(%rsp)
1331	psubd	%xmm9,%xmm0
1332	movdqa	%xmm1,16(%rsp)
1333	psubd	%xmm9,%xmm1
1334	movdqa	%xmm2,32(%rsp)
1335	psubd	%xmm9,%xmm2
1336	jmp	.Loop_ssse3
1337.align	16
1338.Loop_ssse3:
1339	movdqa	%xmm1,%xmm4
1340	addl	0(%rsp),%ebp
1341	xorl	%edx,%ecx
1342	movdqa	%xmm3,%xmm8
1343.byte	102,15,58,15,224,8
1344	movl	%eax,%edi
1345	roll	$5,%eax
1346	paddd	%xmm3,%xmm9
1347	andl	%ecx,%esi
1348	xorl	%edx,%ecx
1349	psrldq	$4,%xmm8
1350	xorl	%edx,%esi
1351	addl	%eax,%ebp
1352	pxor	%xmm0,%xmm4
1353	rorl	$2,%ebx
1354	addl	%esi,%ebp
1355	pxor	%xmm2,%xmm8
1356	addl	4(%rsp),%edx
1357	xorl	%ecx,%ebx
1358	movl	%ebp,%esi
1359	roll	$5,%ebp
1360	pxor	%xmm8,%xmm4
1361	andl	%ebx,%edi
1362	xorl	%ecx,%ebx
1363	movdqa	%xmm9,48(%rsp)
1364	xorl	%ecx,%edi
1365	addl	%ebp,%edx
1366	movdqa	%xmm4,%xmm10
1367	movdqa	%xmm4,%xmm8
1368	rorl	$7,%eax
1369	addl	%edi,%edx
1370	addl	8(%rsp),%ecx
1371	xorl	%ebx,%eax
1372	pslldq	$12,%xmm10
1373	paddd	%xmm4,%xmm4
1374	movl	%edx,%edi
1375	roll	$5,%edx
1376	andl	%eax,%esi
1377	xorl	%ebx,%eax
1378	psrld	$31,%xmm8
1379	xorl	%ebx,%esi
1380	addl	%edx,%ecx
1381	movdqa	%xmm10,%xmm9
1382	rorl	$7,%ebp
1383	addl	%esi,%ecx
1384	psrld	$30,%xmm10
1385	por	%xmm8,%xmm4
1386	addl	12(%rsp),%ebx
1387	xorl	%eax,%ebp
1388	movl	%ecx,%esi
1389	roll	$5,%ecx
1390	pslld	$2,%xmm9
1391	pxor	%xmm10,%xmm4
1392	andl	%ebp,%edi
1393	xorl	%eax,%ebp
1394	movdqa	0(%r11),%xmm10
1395	xorl	%eax,%edi
1396	addl	%ecx,%ebx
1397	pxor	%xmm9,%xmm4
1398	rorl	$7,%edx
1399	addl	%edi,%ebx
1400	movdqa	%xmm2,%xmm5
1401	addl	16(%rsp),%eax
1402	xorl	%ebp,%edx
1403	movdqa	%xmm4,%xmm9
1404.byte	102,15,58,15,233,8
1405	movl	%ebx,%edi
1406	roll	$5,%ebx
1407	paddd	%xmm4,%xmm10
1408	andl	%edx,%esi
1409	xorl	%ebp,%edx
1410	psrldq	$4,%xmm9
1411	xorl	%ebp,%esi
1412	addl	%ebx,%eax
1413	pxor	%xmm1,%xmm5
1414	rorl	$7,%ecx
1415	addl	%esi,%eax
1416	pxor	%xmm3,%xmm9
1417	addl	20(%rsp),%ebp
1418	xorl	%edx,%ecx
1419	movl	%eax,%esi
1420	roll	$5,%eax
1421	pxor	%xmm9,%xmm5
1422	andl	%ecx,%edi
1423	xorl	%edx,%ecx
1424	movdqa	%xmm10,0(%rsp)
1425	xorl	%edx,%edi
1426	addl	%eax,%ebp
1427	movdqa	%xmm5,%xmm8
1428	movdqa	%xmm5,%xmm9
1429	rorl	$7,%ebx
1430	addl	%edi,%ebp
1431	addl	24(%rsp),%edx
1432	xorl	%ecx,%ebx
1433	pslldq	$12,%xmm8
1434	paddd	%xmm5,%xmm5
1435	movl	%ebp,%edi
1436	roll	$5,%ebp
1437	andl	%ebx,%esi
1438	xorl	%ecx,%ebx
1439	psrld	$31,%xmm9
1440	xorl	%ecx,%esi
1441	addl	%ebp,%edx
1442	movdqa	%xmm8,%xmm10
1443	rorl	$7,%eax
1444	addl	%esi,%edx
1445	psrld	$30,%xmm8
1446	por	%xmm9,%xmm5
1447	addl	28(%rsp),%ecx
1448	xorl	%ebx,%eax
1449	movl	%edx,%esi
1450	roll	$5,%edx
1451	pslld	$2,%xmm10
1452	pxor	%xmm8,%xmm5
1453	andl	%eax,%edi
1454	xorl	%ebx,%eax
1455	movdqa	16(%r11),%xmm8
1456	xorl	%ebx,%edi
1457	addl	%edx,%ecx
1458	pxor	%xmm10,%xmm5
1459	rorl	$7,%ebp
1460	addl	%edi,%ecx
1461	movdqa	%xmm3,%xmm6
1462	addl	32(%rsp),%ebx
1463	xorl	%eax,%ebp
1464	movdqa	%xmm5,%xmm10
1465.byte	102,15,58,15,242,8
1466	movl	%ecx,%edi
1467	roll	$5,%ecx
1468	paddd	%xmm5,%xmm8
1469	andl	%ebp,%esi
1470	xorl	%eax,%ebp
1471	psrldq	$4,%xmm10
1472	xorl	%eax,%esi
1473	addl	%ecx,%ebx
1474	pxor	%xmm2,%xmm6
1475	rorl	$7,%edx
1476	addl	%esi,%ebx
1477	pxor	%xmm4,%xmm10
1478	addl	36(%rsp),%eax
1479	xorl	%ebp,%edx
1480	movl	%ebx,%esi
1481	roll	$5,%ebx
1482	pxor	%xmm10,%xmm6
1483	andl	%edx,%edi
1484	xorl	%ebp,%edx
1485	movdqa	%xmm8,16(%rsp)
1486	xorl	%ebp,%edi
1487	addl	%ebx,%eax
1488	movdqa	%xmm6,%xmm9
1489	movdqa	%xmm6,%xmm10
1490	rorl	$7,%ecx
1491	addl	%edi,%eax
1492	addl	40(%rsp),%ebp
1493	xorl	%edx,%ecx
1494	pslldq	$12,%xmm9
1495	paddd	%xmm6,%xmm6
1496	movl	%eax,%edi
1497	roll	$5,%eax
1498	andl	%ecx,%esi
1499	xorl	%edx,%ecx
1500	psrld	$31,%xmm10
1501	xorl	%edx,%esi
1502	addl	%eax,%ebp
1503	movdqa	%xmm9,%xmm8
1504	rorl	$7,%ebx
1505	addl	%esi,%ebp
1506	psrld	$30,%xmm9
1507	por	%xmm10,%xmm6
1508	addl	44(%rsp),%edx
1509	xorl	%ecx,%ebx
1510	movl	%ebp,%esi
1511	roll	$5,%ebp
1512	pslld	$2,%xmm8
1513	pxor	%xmm9,%xmm6
1514	andl	%ebx,%edi
1515	xorl	%ecx,%ebx
1516	movdqa	16(%r11),%xmm9
1517	xorl	%ecx,%edi
1518	addl	%ebp,%edx
1519	pxor	%xmm8,%xmm6
1520	rorl	$7,%eax
1521	addl	%edi,%edx
1522	movdqa	%xmm4,%xmm7
1523	addl	48(%rsp),%ecx
1524	xorl	%ebx,%eax
1525	movdqa	%xmm6,%xmm8
1526.byte	102,15,58,15,251,8
1527	movl	%edx,%edi
1528	roll	$5,%edx
1529	paddd	%xmm6,%xmm9
1530	andl	%eax,%esi
1531	xorl	%ebx,%eax
1532	psrldq	$4,%xmm8
1533	xorl	%ebx,%esi
1534	addl	%edx,%ecx
1535	pxor	%xmm3,%xmm7
1536	rorl	$7,%ebp
1537	addl	%esi,%ecx
1538	pxor	%xmm5,%xmm8
1539	addl	52(%rsp),%ebx
1540	xorl	%eax,%ebp
1541	movl	%ecx,%esi
1542	roll	$5,%ecx
1543	pxor	%xmm8,%xmm7
1544	andl	%ebp,%edi
1545	xorl	%eax,%ebp
1546	movdqa	%xmm9,32(%rsp)
1547	xorl	%eax,%edi
1548	addl	%ecx,%ebx
1549	movdqa	%xmm7,%xmm10
1550	movdqa	%xmm7,%xmm8
1551	rorl	$7,%edx
1552	addl	%edi,%ebx
1553	addl	56(%rsp),%eax
1554	xorl	%ebp,%edx
1555	pslldq	$12,%xmm10
1556	paddd	%xmm7,%xmm7
1557	movl	%ebx,%edi
1558	roll	$5,%ebx
1559	andl	%edx,%esi
1560	xorl	%ebp,%edx
1561	psrld	$31,%xmm8
1562	xorl	%ebp,%esi
1563	addl	%ebx,%eax
1564	movdqa	%xmm10,%xmm9
1565	rorl	$7,%ecx
1566	addl	%esi,%eax
1567	psrld	$30,%xmm10
1568	por	%xmm8,%xmm7
1569	addl	60(%rsp),%ebp
1570	xorl	%edx,%ecx
1571	movl	%eax,%esi
1572	roll	$5,%eax
1573	pslld	$2,%xmm9
1574	pxor	%xmm10,%xmm7
1575	andl	%ecx,%edi
1576	xorl	%edx,%ecx
1577	movdqa	16(%r11),%xmm10
1578	xorl	%edx,%edi
1579	addl	%eax,%ebp
1580	pxor	%xmm9,%xmm7
1581	rorl	$7,%ebx
1582	addl	%edi,%ebp
1583	movdqa	%xmm7,%xmm9
1584	addl	0(%rsp),%edx
1585	pxor	%xmm4,%xmm0
1586.byte	102,68,15,58,15,206,8
1587	xorl	%ecx,%ebx
1588	movl	%ebp,%edi
1589	roll	$5,%ebp
1590	pxor	%xmm1,%xmm0
1591	andl	%ebx,%esi
1592	xorl	%ecx,%ebx
1593	movdqa	%xmm10,%xmm8
1594	paddd	%xmm7,%xmm10
1595	xorl	%ecx,%esi
1596	addl	%ebp,%edx
1597	pxor	%xmm9,%xmm0
1598	rorl	$7,%eax
1599	addl	%esi,%edx
1600	addl	4(%rsp),%ecx
1601	xorl	%ebx,%eax
1602	movdqa	%xmm0,%xmm9
1603	movdqa	%xmm10,48(%rsp)
1604	movl	%edx,%esi
1605	roll	$5,%edx
1606	andl	%eax,%edi
1607	xorl	%ebx,%eax
1608	pslld	$2,%xmm0
1609	xorl	%ebx,%edi
1610	addl	%edx,%ecx
1611	psrld	$30,%xmm9
1612	rorl	$7,%ebp
1613	addl	%edi,%ecx
1614	addl	8(%rsp),%ebx
1615	xorl	%eax,%ebp
1616	movl	%ecx,%edi
1617	roll	$5,%ecx
1618	por	%xmm9,%xmm0
1619	andl	%ebp,%esi
1620	xorl	%eax,%ebp
1621	movdqa	%xmm0,%xmm10
1622	xorl	%eax,%esi
1623	addl	%ecx,%ebx
1624	rorl	$7,%edx
1625	addl	%esi,%ebx
1626	addl	12(%rsp),%eax
1627	xorl	%ebp,%edx
1628	movl	%ebx,%esi
1629	roll	$5,%ebx
1630	andl	%edx,%edi
1631	xorl	%ebp,%edx
1632	xorl	%ebp,%edi
1633	addl	%ebx,%eax
1634	rorl	$7,%ecx
1635	addl	%edi,%eax
1636	addl	16(%rsp),%ebp
1637	pxor	%xmm5,%xmm1
1638.byte	102,68,15,58,15,215,8
1639	xorl	%edx,%esi
1640	movl	%eax,%edi
1641	roll	$5,%eax
1642	pxor	%xmm2,%xmm1
1643	xorl	%ecx,%esi
1644	addl	%eax,%ebp
1645	movdqa	%xmm8,%xmm9
1646	paddd	%xmm0,%xmm8
1647	rorl	$7,%ebx
1648	addl	%esi,%ebp
1649	pxor	%xmm10,%xmm1
1650	addl	20(%rsp),%edx
1651	xorl	%ecx,%edi
1652	movl	%ebp,%esi
1653	roll	$5,%ebp
1654	movdqa	%xmm1,%xmm10
1655	movdqa	%xmm8,0(%rsp)
1656	xorl	%ebx,%edi
1657	addl	%ebp,%edx
1658	rorl	$7,%eax
1659	addl	%edi,%edx
1660	pslld	$2,%xmm1
1661	addl	24(%rsp),%ecx
1662	xorl	%ebx,%esi
1663	psrld	$30,%xmm10
1664	movl	%edx,%edi
1665	roll	$5,%edx
1666	xorl	%eax,%esi
1667	addl	%edx,%ecx
1668	rorl	$7,%ebp
1669	addl	%esi,%ecx
1670	por	%xmm10,%xmm1
1671	addl	28(%rsp),%ebx
1672	xorl	%eax,%edi
1673	movdqa	%xmm1,%xmm8
1674	movl	%ecx,%esi
1675	roll	$5,%ecx
1676	xorl	%ebp,%edi
1677	addl	%ecx,%ebx
1678	rorl	$7,%edx
1679	addl	%edi,%ebx
1680	addl	32(%rsp),%eax
1681	pxor	%xmm6,%xmm2
1682.byte	102,68,15,58,15,192,8
1683	xorl	%ebp,%esi
1684	movl	%ebx,%edi
1685	roll	$5,%ebx
1686	pxor	%xmm3,%xmm2
1687	xorl	%edx,%esi
1688	addl	%ebx,%eax
1689	movdqa	32(%r11),%xmm10
1690	paddd	%xmm1,%xmm9
1691	rorl	$7,%ecx
1692	addl	%esi,%eax
1693	pxor	%xmm8,%xmm2
1694	addl	36(%rsp),%ebp
1695	xorl	%edx,%edi
1696	movl	%eax,%esi
1697	roll	$5,%eax
1698	movdqa	%xmm2,%xmm8
1699	movdqa	%xmm9,16(%rsp)
1700	xorl	%ecx,%edi
1701	addl	%eax,%ebp
1702	rorl	$7,%ebx
1703	addl	%edi,%ebp
1704	pslld	$2,%xmm2
1705	addl	40(%rsp),%edx
1706	xorl	%ecx,%esi
1707	psrld	$30,%xmm8
1708	movl	%ebp,%edi
1709	roll	$5,%ebp
1710	xorl	%ebx,%esi
1711	addl	%ebp,%edx
1712	rorl	$7,%eax
1713	addl	%esi,%edx
1714	por	%xmm8,%xmm2
1715	addl	44(%rsp),%ecx
1716	xorl	%ebx,%edi
1717	movdqa	%xmm2,%xmm9
1718	movl	%edx,%esi
1719	roll	$5,%edx
1720	xorl	%eax,%edi
1721	addl	%edx,%ecx
1722	rorl	$7,%ebp
1723	addl	%edi,%ecx
1724	addl	48(%rsp),%ebx
1725	pxor	%xmm7,%xmm3
1726.byte	102,68,15,58,15,201,8
1727	xorl	%eax,%esi
1728	movl	%ecx,%edi
1729	roll	$5,%ecx
1730	pxor	%xmm4,%xmm3
1731	xorl	%ebp,%esi
1732	addl	%ecx,%ebx
1733	movdqa	%xmm10,%xmm8
1734	paddd	%xmm2,%xmm10
1735	rorl	$7,%edx
1736	addl	%esi,%ebx
1737	pxor	%xmm9,%xmm3
1738	addl	52(%rsp),%eax
1739	xorl	%ebp,%edi
1740	movl	%ebx,%esi
1741	roll	$5,%ebx
1742	movdqa	%xmm3,%xmm9
1743	movdqa	%xmm10,32(%rsp)
1744	xorl	%edx,%edi
1745	addl	%ebx,%eax
1746	rorl	$7,%ecx
1747	addl	%edi,%eax
1748	pslld	$2,%xmm3
1749	addl	56(%rsp),%ebp
1750	xorl	%edx,%esi
1751	psrld	$30,%xmm9
1752	movl	%eax,%edi
1753	roll	$5,%eax
1754	xorl	%ecx,%esi
1755	addl	%eax,%ebp
1756	rorl	$7,%ebx
1757	addl	%esi,%ebp
1758	por	%xmm9,%xmm3
1759	addl	60(%rsp),%edx
1760	xorl	%ecx,%edi
1761	movdqa	%xmm3,%xmm10
1762	movl	%ebp,%esi
1763	roll	$5,%ebp
1764	xorl	%ebx,%edi
1765	addl	%ebp,%edx
1766	rorl	$7,%eax
1767	addl	%edi,%edx
1768	addl	0(%rsp),%ecx
1769	pxor	%xmm0,%xmm4
1770.byte	102,68,15,58,15,210,8
1771	xorl	%ebx,%esi
1772	movl	%edx,%edi
1773	roll	$5,%edx
1774	pxor	%xmm5,%xmm4
1775	xorl	%eax,%esi
1776	addl	%edx,%ecx
1777	movdqa	%xmm8,%xmm9
1778	paddd	%xmm3,%xmm8
1779	rorl	$7,%ebp
1780	addl	%esi,%ecx
1781	pxor	%xmm10,%xmm4
1782	addl	4(%rsp),%ebx
1783	xorl	%eax,%edi
1784	movl	%ecx,%esi
1785	roll	$5,%ecx
1786	movdqa	%xmm4,%xmm10
1787	movdqa	%xmm8,48(%rsp)
1788	xorl	%ebp,%edi
1789	addl	%ecx,%ebx
1790	rorl	$7,%edx
1791	addl	%edi,%ebx
1792	pslld	$2,%xmm4
1793	addl	8(%rsp),%eax
1794	xorl	%ebp,%esi
1795	psrld	$30,%xmm10
1796	movl	%ebx,%edi
1797	roll	$5,%ebx
1798	xorl	%edx,%esi
1799	addl	%ebx,%eax
1800	rorl	$7,%ecx
1801	addl	%esi,%eax
1802	por	%xmm10,%xmm4
1803	addl	12(%rsp),%ebp
1804	xorl	%edx,%edi
1805	movdqa	%xmm4,%xmm8
1806	movl	%eax,%esi
1807	roll	$5,%eax
1808	xorl	%ecx,%edi
1809	addl	%eax,%ebp
1810	rorl	$7,%ebx
1811	addl	%edi,%ebp
1812	addl	16(%rsp),%edx
1813	pxor	%xmm1,%xmm5
1814.byte	102,68,15,58,15,195,8
1815	xorl	%ecx,%esi
1816	movl	%ebp,%edi
1817	roll	$5,%ebp
1818	pxor	%xmm6,%xmm5
1819	xorl	%ebx,%esi
1820	addl	%ebp,%edx
1821	movdqa	%xmm9,%xmm10
1822	paddd	%xmm4,%xmm9
1823	rorl	$7,%eax
1824	addl	%esi,%edx
1825	pxor	%xmm8,%xmm5
1826	addl	20(%rsp),%ecx
1827	xorl	%ebx,%edi
1828	movl	%edx,%esi
1829	roll	$5,%edx
1830	movdqa	%xmm5,%xmm8
1831	movdqa	%xmm9,0(%rsp)
1832	xorl	%eax,%edi
1833	addl	%edx,%ecx
1834	rorl	$7,%ebp
1835	addl	%edi,%ecx
1836	pslld	$2,%xmm5
1837	addl	24(%rsp),%ebx
1838	xorl	%eax,%esi
1839	psrld	$30,%xmm8
1840	movl	%ecx,%edi
1841	roll	$5,%ecx
1842	xorl	%ebp,%esi
1843	addl	%ecx,%ebx
1844	rorl	$7,%edx
1845	addl	%esi,%ebx
1846	por	%xmm8,%xmm5
1847	addl	28(%rsp),%eax
1848	xorl	%ebp,%edi
1849	movdqa	%xmm5,%xmm9
1850	movl	%ebx,%esi
1851	roll	$5,%ebx
1852	xorl	%edx,%edi
1853	addl	%ebx,%eax
1854	rorl	$7,%ecx
1855	addl	%edi,%eax
1856	movl	%ecx,%edi
1857	pxor	%xmm2,%xmm6
1858.byte	102,68,15,58,15,204,8
1859	xorl	%edx,%ecx
1860	addl	32(%rsp),%ebp
1861	andl	%edx,%edi
1862	pxor	%xmm7,%xmm6
1863	andl	%ecx,%esi
1864	rorl	$7,%ebx
1865	movdqa	%xmm10,%xmm8
1866	paddd	%xmm5,%xmm10
1867	addl	%edi,%ebp
1868	movl	%eax,%edi
1869	pxor	%xmm9,%xmm6
1870	roll	$5,%eax
1871	addl	%esi,%ebp
1872	xorl	%edx,%ecx
1873	addl	%eax,%ebp
1874	movdqa	%xmm6,%xmm9
1875	movdqa	%xmm10,16(%rsp)
1876	movl	%ebx,%esi
1877	xorl	%ecx,%ebx
1878	addl	36(%rsp),%edx
1879	andl	%ecx,%esi
1880	pslld	$2,%xmm6
1881	andl	%ebx,%edi
1882	rorl	$7,%eax
1883	psrld	$30,%xmm9
1884	addl	%esi,%edx
1885	movl	%ebp,%esi
1886	roll	$5,%ebp
1887	addl	%edi,%edx
1888	xorl	%ecx,%ebx
1889	addl	%ebp,%edx
1890	por	%xmm9,%xmm6
1891	movl	%eax,%edi
1892	xorl	%ebx,%eax
1893	movdqa	%xmm6,%xmm10
1894	addl	40(%rsp),%ecx
1895	andl	%ebx,%edi
1896	andl	%eax,%esi
1897	rorl	$7,%ebp
1898	addl	%edi,%ecx
1899	movl	%edx,%edi
1900	roll	$5,%edx
1901	addl	%esi,%ecx
1902	xorl	%ebx,%eax
1903	addl	%edx,%ecx
1904	movl	%ebp,%esi
1905	xorl	%eax,%ebp
1906	addl	44(%rsp),%ebx
1907	andl	%eax,%esi
1908	andl	%ebp,%edi
1909	rorl	$7,%edx
1910	addl	%esi,%ebx
1911	movl	%ecx,%esi
1912	roll	$5,%ecx
1913	addl	%edi,%ebx
1914	xorl	%eax,%ebp
1915	addl	%ecx,%ebx
1916	movl	%edx,%edi
1917	pxor	%xmm3,%xmm7
1918.byte	102,68,15,58,15,213,8
1919	xorl	%ebp,%edx
1920	addl	48(%rsp),%eax
1921	andl	%ebp,%edi
1922	pxor	%xmm0,%xmm7
1923	andl	%edx,%esi
1924	rorl	$7,%ecx
1925	movdqa	48(%r11),%xmm9
1926	paddd	%xmm6,%xmm8
1927	addl	%edi,%eax
1928	movl	%ebx,%edi
1929	pxor	%xmm10,%xmm7
1930	roll	$5,%ebx
1931	addl	%esi,%eax
1932	xorl	%ebp,%edx
1933	addl	%ebx,%eax
1934	movdqa	%xmm7,%xmm10
1935	movdqa	%xmm8,32(%rsp)
1936	movl	%ecx,%esi
1937	xorl	%edx,%ecx
1938	addl	52(%rsp),%ebp
1939	andl	%edx,%esi
1940	pslld	$2,%xmm7
1941	andl	%ecx,%edi
1942	rorl	$7,%ebx
1943	psrld	$30,%xmm10
1944	addl	%esi,%ebp
1945	movl	%eax,%esi
1946	roll	$5,%eax
1947	addl	%edi,%ebp
1948	xorl	%edx,%ecx
1949	addl	%eax,%ebp
1950	por	%xmm10,%xmm7
1951	movl	%ebx,%edi
1952	xorl	%ecx,%ebx
1953	movdqa	%xmm7,%xmm8
1954	addl	56(%rsp),%edx
1955	andl	%ecx,%edi
1956	andl	%ebx,%esi
1957	rorl	$7,%eax
1958	addl	%edi,%edx
1959	movl	%ebp,%edi
1960	roll	$5,%ebp
1961	addl	%esi,%edx
1962	xorl	%ecx,%ebx
1963	addl	%ebp,%edx
1964	movl	%eax,%esi
1965	xorl	%ebx,%eax
1966	addl	60(%rsp),%ecx
1967	andl	%ebx,%esi
1968	andl	%eax,%edi
1969	rorl	$7,%ebp
1970	addl	%esi,%ecx
1971	movl	%edx,%esi
1972	roll	$5,%edx
1973	addl	%edi,%ecx
1974	xorl	%ebx,%eax
1975	addl	%edx,%ecx
1976	movl	%ebp,%edi
1977	pxor	%xmm4,%xmm0
1978.byte	102,68,15,58,15,198,8
1979	xorl	%eax,%ebp
1980	addl	0(%rsp),%ebx
1981	andl	%eax,%edi
1982	pxor	%xmm1,%xmm0
1983	andl	%ebp,%esi
1984	rorl	$7,%edx
1985	movdqa	%xmm9,%xmm10
1986	paddd	%xmm7,%xmm9
1987	addl	%edi,%ebx
1988	movl	%ecx,%edi
1989	pxor	%xmm8,%xmm0
1990	roll	$5,%ecx
1991	addl	%esi,%ebx
1992	xorl	%eax,%ebp
1993	addl	%ecx,%ebx
1994	movdqa	%xmm0,%xmm8
1995	movdqa	%xmm9,48(%rsp)
1996	movl	%edx,%esi
1997	xorl	%ebp,%edx
1998	addl	4(%rsp),%eax
1999	andl	%ebp,%esi
2000	pslld	$2,%xmm0
2001	andl	%edx,%edi
2002	rorl	$7,%ecx
2003	psrld	$30,%xmm8
2004	addl	%esi,%eax
2005	movl	%ebx,%esi
2006	roll	$5,%ebx
2007	addl	%edi,%eax
2008	xorl	%ebp,%edx
2009	addl	%ebx,%eax
2010	por	%xmm8,%xmm0
2011	movl	%ecx,%edi
2012	xorl	%edx,%ecx
2013	movdqa	%xmm0,%xmm9
2014	addl	8(%rsp),%ebp
2015	andl	%edx,%edi
2016	andl	%ecx,%esi
2017	rorl	$7,%ebx
2018	addl	%edi,%ebp
2019	movl	%eax,%edi
2020	roll	$5,%eax
2021	addl	%esi,%ebp
2022	xorl	%edx,%ecx
2023	addl	%eax,%ebp
2024	movl	%ebx,%esi
2025	xorl	%ecx,%ebx
2026	addl	12(%rsp),%edx
2027	andl	%ecx,%esi
2028	andl	%ebx,%edi
2029	rorl	$7,%eax
2030	addl	%esi,%edx
2031	movl	%ebp,%esi
2032	roll	$5,%ebp
2033	addl	%edi,%edx
2034	xorl	%ecx,%ebx
2035	addl	%ebp,%edx
2036	movl	%eax,%edi
2037	pxor	%xmm5,%xmm1
2038.byte	102,68,15,58,15,207,8
2039	xorl	%ebx,%eax
2040	addl	16(%rsp),%ecx
2041	andl	%ebx,%edi
2042	pxor	%xmm2,%xmm1
2043	andl	%eax,%esi
2044	rorl	$7,%ebp
2045	movdqa	%xmm10,%xmm8
2046	paddd	%xmm0,%xmm10
2047	addl	%edi,%ecx
2048	movl	%edx,%edi
2049	pxor	%xmm9,%xmm1
2050	roll	$5,%edx
2051	addl	%esi,%ecx
2052	xorl	%ebx,%eax
2053	addl	%edx,%ecx
2054	movdqa	%xmm1,%xmm9
2055	movdqa	%xmm10,0(%rsp)
2056	movl	%ebp,%esi
2057	xorl	%eax,%ebp
2058	addl	20(%rsp),%ebx
2059	andl	%eax,%esi
2060	pslld	$2,%xmm1
2061	andl	%ebp,%edi
2062	rorl	$7,%edx
2063	psrld	$30,%xmm9
2064	addl	%esi,%ebx
2065	movl	%ecx,%esi
2066	roll	$5,%ecx
2067	addl	%edi,%ebx
2068	xorl	%eax,%ebp
2069	addl	%ecx,%ebx
2070	por	%xmm9,%xmm1
2071	movl	%edx,%edi
2072	xorl	%ebp,%edx
2073	movdqa	%xmm1,%xmm10
2074	addl	24(%rsp),%eax
2075	andl	%ebp,%edi
2076	andl	%edx,%esi
2077	rorl	$7,%ecx
2078	addl	%edi,%eax
2079	movl	%ebx,%edi
2080	roll	$5,%ebx
2081	addl	%esi,%eax
2082	xorl	%ebp,%edx
2083	addl	%ebx,%eax
2084	movl	%ecx,%esi
2085	xorl	%edx,%ecx
2086	addl	28(%rsp),%ebp
2087	andl	%edx,%esi
2088	andl	%ecx,%edi
2089	rorl	$7,%ebx
2090	addl	%esi,%ebp
2091	movl	%eax,%esi
2092	roll	$5,%eax
2093	addl	%edi,%ebp
2094	xorl	%edx,%ecx
2095	addl	%eax,%ebp
2096	movl	%ebx,%edi
2097	pxor	%xmm6,%xmm2
2098.byte	102,68,15,58,15,208,8
2099	xorl	%ecx,%ebx
2100	addl	32(%rsp),%edx
2101	andl	%ecx,%edi
2102	pxor	%xmm3,%xmm2
2103	andl	%ebx,%esi
2104	rorl	$7,%eax
2105	movdqa	%xmm8,%xmm9
2106	paddd	%xmm1,%xmm8
2107	addl	%edi,%edx
2108	movl	%ebp,%edi
2109	pxor	%xmm10,%xmm2
2110	roll	$5,%ebp
2111	addl	%esi,%edx
2112	xorl	%ecx,%ebx
2113	addl	%ebp,%edx
2114	movdqa	%xmm2,%xmm10
2115	movdqa	%xmm8,16(%rsp)
2116	movl	%eax,%esi
2117	xorl	%ebx,%eax
2118	addl	36(%rsp),%ecx
2119	andl	%ebx,%esi
2120	pslld	$2,%xmm2
2121	andl	%eax,%edi
2122	rorl	$7,%ebp
2123	psrld	$30,%xmm10
2124	addl	%esi,%ecx
2125	movl	%edx,%esi
2126	roll	$5,%edx
2127	addl	%edi,%ecx
2128	xorl	%ebx,%eax
2129	addl	%edx,%ecx
2130	por	%xmm10,%xmm2
2131	movl	%ebp,%edi
2132	xorl	%eax,%ebp
2133	movdqa	%xmm2,%xmm8
2134	addl	40(%rsp),%ebx
2135	andl	%eax,%edi
2136	andl	%ebp,%esi
2137	rorl	$7,%edx
2138	addl	%edi,%ebx
2139	movl	%ecx,%edi
2140	roll	$5,%ecx
2141	addl	%esi,%ebx
2142	xorl	%eax,%ebp
2143	addl	%ecx,%ebx
2144	movl	%edx,%esi
2145	xorl	%ebp,%edx
2146	addl	44(%rsp),%eax
2147	andl	%ebp,%esi
2148	andl	%edx,%edi
2149	rorl	$7,%ecx
2150	addl	%esi,%eax
2151	movl	%ebx,%esi
2152	roll	$5,%ebx
2153	addl	%edi,%eax
2154	xorl	%ebp,%edx
2155	addl	%ebx,%eax
2156	addl	48(%rsp),%ebp
2157	pxor	%xmm7,%xmm3
2158.byte	102,68,15,58,15,193,8
2159	xorl	%edx,%esi
2160	movl	%eax,%edi
2161	roll	$5,%eax
2162	pxor	%xmm4,%xmm3
2163	xorl	%ecx,%esi
2164	addl	%eax,%ebp
2165	movdqa	%xmm9,%xmm10
2166	paddd	%xmm2,%xmm9
2167	rorl	$7,%ebx
2168	addl	%esi,%ebp
2169	pxor	%xmm8,%xmm3
2170	addl	52(%rsp),%edx
2171	xorl	%ecx,%edi
2172	movl	%ebp,%esi
2173	roll	$5,%ebp
2174	movdqa	%xmm3,%xmm8
2175	movdqa	%xmm9,32(%rsp)
2176	xorl	%ebx,%edi
2177	addl	%ebp,%edx
2178	rorl	$7,%eax
2179	addl	%edi,%edx
2180	pslld	$2,%xmm3
2181	addl	56(%rsp),%ecx
2182	xorl	%ebx,%esi
2183	psrld	$30,%xmm8
2184	movl	%edx,%edi
2185	roll	$5,%edx
2186	xorl	%eax,%esi
2187	addl	%edx,%ecx
2188	rorl	$7,%ebp
2189	addl	%esi,%ecx
2190	por	%xmm8,%xmm3
2191	addl	60(%rsp),%ebx
2192	xorl	%eax,%edi
2193	movl	%ecx,%esi
2194	roll	$5,%ecx
2195	xorl	%ebp,%edi
2196	addl	%ecx,%ebx
2197	rorl	$7,%edx
2198	addl	%edi,%ebx
2199	addl	0(%rsp),%eax
2200	paddd	%xmm3,%xmm10
2201	xorl	%ebp,%esi
2202	movl	%ebx,%edi
2203	roll	$5,%ebx
2204	xorl	%edx,%esi
2205	movdqa	%xmm10,48(%rsp)
2206	addl	%ebx,%eax
2207	rorl	$7,%ecx
2208	addl	%esi,%eax
2209	addl	4(%rsp),%ebp
2210	xorl	%edx,%edi
2211	movl	%eax,%esi
2212	roll	$5,%eax
2213	xorl	%ecx,%edi
2214	addl	%eax,%ebp
2215	rorl	$7,%ebx
2216	addl	%edi,%ebp
2217	addl	8(%rsp),%edx
2218	xorl	%ecx,%esi
2219	movl	%ebp,%edi
2220	roll	$5,%ebp
2221	xorl	%ebx,%esi
2222	addl	%ebp,%edx
2223	rorl	$7,%eax
2224	addl	%esi,%edx
2225	addl	12(%rsp),%ecx
2226	xorl	%ebx,%edi
2227	movl	%edx,%esi
2228	roll	$5,%edx
2229	xorl	%eax,%edi
2230	addl	%edx,%ecx
2231	rorl	$7,%ebp
2232	addl	%edi,%ecx
2233	cmpq	%r10,%r9
2234	je	.Ldone_ssse3
2235	movdqa	64(%r11),%xmm6
2236	movdqa	0(%r11),%xmm9
2237	movdqu	0(%r9),%xmm0
2238	movdqu	16(%r9),%xmm1
2239	movdqu	32(%r9),%xmm2
2240	movdqu	48(%r9),%xmm3
2241.byte	102,15,56,0,198
2242	addq	$64,%r9
2243	addl	16(%rsp),%ebx
2244	xorl	%eax,%esi
2245.byte	102,15,56,0,206
2246	movl	%ecx,%edi
2247	roll	$5,%ecx
2248	paddd	%xmm9,%xmm0
2249	xorl	%ebp,%esi
2250	addl	%ecx,%ebx
2251	rorl	$7,%edx
2252	addl	%esi,%ebx
2253	movdqa	%xmm0,0(%rsp)
2254	addl	20(%rsp),%eax
2255	xorl	%ebp,%edi
2256	psubd	%xmm9,%xmm0
2257	movl	%ebx,%esi
2258	roll	$5,%ebx
2259	xorl	%edx,%edi
2260	addl	%ebx,%eax
2261	rorl	$7,%ecx
2262	addl	%edi,%eax
2263	addl	24(%rsp),%ebp
2264	xorl	%edx,%esi
2265	movl	%eax,%edi
2266	roll	$5,%eax
2267	xorl	%ecx,%esi
2268	addl	%eax,%ebp
2269	rorl	$7,%ebx
2270	addl	%esi,%ebp
2271	addl	28(%rsp),%edx
2272	xorl	%ecx,%edi
2273	movl	%ebp,%esi
2274	roll	$5,%ebp
2275	xorl	%ebx,%edi
2276	addl	%ebp,%edx
2277	rorl	$7,%eax
2278	addl	%edi,%edx
2279	addl	32(%rsp),%ecx
2280	xorl	%ebx,%esi
2281.byte	102,15,56,0,214
2282	movl	%edx,%edi
2283	roll	$5,%edx
2284	paddd	%xmm9,%xmm1
2285	xorl	%eax,%esi
2286	addl	%edx,%ecx
2287	rorl	$7,%ebp
2288	addl	%esi,%ecx
2289	movdqa	%xmm1,16(%rsp)
2290	addl	36(%rsp),%ebx
2291	xorl	%eax,%edi
2292	psubd	%xmm9,%xmm1
2293	movl	%ecx,%esi
2294	roll	$5,%ecx
2295	xorl	%ebp,%edi
2296	addl	%ecx,%ebx
2297	rorl	$7,%edx
2298	addl	%edi,%ebx
2299	addl	40(%rsp),%eax
2300	xorl	%ebp,%esi
2301	movl	%ebx,%edi
2302	roll	$5,%ebx
2303	xorl	%edx,%esi
2304	addl	%ebx,%eax
2305	rorl	$7,%ecx
2306	addl	%esi,%eax
2307	addl	44(%rsp),%ebp
2308	xorl	%edx,%edi
2309	movl	%eax,%esi
2310	roll	$5,%eax
2311	xorl	%ecx,%edi
2312	addl	%eax,%ebp
2313	rorl	$7,%ebx
2314	addl	%edi,%ebp
2315	addl	48(%rsp),%edx
2316	xorl	%ecx,%esi
2317.byte	102,15,56,0,222
2318	movl	%ebp,%edi
2319	roll	$5,%ebp
2320	paddd	%xmm9,%xmm2
2321	xorl	%ebx,%esi
2322	addl	%ebp,%edx
2323	rorl	$7,%eax
2324	addl	%esi,%edx
2325	movdqa	%xmm2,32(%rsp)
2326	addl	52(%rsp),%ecx
2327	xorl	%ebx,%edi
2328	psubd	%xmm9,%xmm2
2329	movl	%edx,%esi
2330	roll	$5,%edx
2331	xorl	%eax,%edi
2332	addl	%edx,%ecx
2333	rorl	$7,%ebp
2334	addl	%edi,%ecx
2335	addl	56(%rsp),%ebx
2336	xorl	%eax,%esi
2337	movl	%ecx,%edi
2338	roll	$5,%ecx
2339	xorl	%ebp,%esi
2340	addl	%ecx,%ebx
2341	rorl	$7,%edx
2342	addl	%esi,%ebx
2343	addl	60(%rsp),%eax
2344	xorl	%ebp,%edi
2345	movl	%ebx,%esi
2346	roll	$5,%ebx
2347	xorl	%edx,%edi
2348	addl	%ebx,%eax
2349	rorl	$7,%ecx
2350	addl	%edi,%eax
2351	addl	0(%r8),%eax
2352	addl	4(%r8),%esi
2353	addl	8(%r8),%ecx
2354	addl	12(%r8),%edx
2355	movl	%eax,0(%r8)
2356	addl	16(%r8),%ebp
2357	movl	%esi,4(%r8)
2358	movl	%esi,%ebx
2359	movl	%ecx,8(%r8)
2360	movl	%edx,12(%r8)
2361	movl	%ebp,16(%r8)
2362	jmp	.Loop_ssse3
2363
2364.align	16
2365.Ldone_ssse3:
2366	addl	16(%rsp),%ebx
2367	xorl	%eax,%esi
2368	movl	%ecx,%edi
2369	roll	$5,%ecx
2370	xorl	%ebp,%esi
2371	addl	%ecx,%ebx
2372	rorl	$7,%edx
2373	addl	%esi,%ebx
2374	addl	20(%rsp),%eax
2375	xorl	%ebp,%edi
2376	movl	%ebx,%esi
2377	roll	$5,%ebx
2378	xorl	%edx,%edi
2379	addl	%ebx,%eax
2380	rorl	$7,%ecx
2381	addl	%edi,%eax
2382	addl	24(%rsp),%ebp
2383	xorl	%edx,%esi
2384	movl	%eax,%edi
2385	roll	$5,%eax
2386	xorl	%ecx,%esi
2387	addl	%eax,%ebp
2388	rorl	$7,%ebx
2389	addl	%esi,%ebp
2390	addl	28(%rsp),%edx
2391	xorl	%ecx,%edi
2392	movl	%ebp,%esi
2393	roll	$5,%ebp
2394	xorl	%ebx,%edi
2395	addl	%ebp,%edx
2396	rorl	$7,%eax
2397	addl	%edi,%edx
2398	addl	32(%rsp),%ecx
2399	xorl	%ebx,%esi
2400	movl	%edx,%edi
2401	roll	$5,%edx
2402	xorl	%eax,%esi
2403	addl	%edx,%ecx
2404	rorl	$7,%ebp
2405	addl	%esi,%ecx
2406	addl	36(%rsp),%ebx
2407	xorl	%eax,%edi
2408	movl	%ecx,%esi
2409	roll	$5,%ecx
2410	xorl	%ebp,%edi
2411	addl	%ecx,%ebx
2412	rorl	$7,%edx
2413	addl	%edi,%ebx
2414	addl	40(%rsp),%eax
2415	xorl	%ebp,%esi
2416	movl	%ebx,%edi
2417	roll	$5,%ebx
2418	xorl	%edx,%esi
2419	addl	%ebx,%eax
2420	rorl	$7,%ecx
2421	addl	%esi,%eax
2422	addl	44(%rsp),%ebp
2423	xorl	%edx,%edi
2424	movl	%eax,%esi
2425	roll	$5,%eax
2426	xorl	%ecx,%edi
2427	addl	%eax,%ebp
2428	rorl	$7,%ebx
2429	addl	%edi,%ebp
2430	addl	48(%rsp),%edx
2431	xorl	%ecx,%esi
2432	movl	%ebp,%edi
2433	roll	$5,%ebp
2434	xorl	%ebx,%esi
2435	addl	%ebp,%edx
2436	rorl	$7,%eax
2437	addl	%esi,%edx
2438	addl	52(%rsp),%ecx
2439	xorl	%ebx,%edi
2440	movl	%edx,%esi
2441	roll	$5,%edx
2442	xorl	%eax,%edi
2443	addl	%edx,%ecx
2444	rorl	$7,%ebp
2445	addl	%edi,%ecx
2446	addl	56(%rsp),%ebx
2447	xorl	%eax,%esi
2448	movl	%ecx,%edi
2449	roll	$5,%ecx
2450	xorl	%ebp,%esi
2451	addl	%ecx,%ebx
2452	rorl	$7,%edx
2453	addl	%esi,%ebx
2454	addl	60(%rsp),%eax
2455	xorl	%ebp,%edi
2456	movl	%ebx,%esi
2457	roll	$5,%ebx
2458	xorl	%edx,%edi
2459	addl	%ebx,%eax
2460	rorl	$7,%ecx
2461	addl	%edi,%eax
2462	addl	0(%r8),%eax
2463	addl	4(%r8),%esi
2464	addl	8(%r8),%ecx
2465	movl	%eax,0(%r8)
2466	addl	12(%r8),%edx
2467	movl	%esi,4(%r8)
2468	addl	16(%r8),%ebp
2469	movl	%ecx,8(%r8)
2470	movl	%edx,12(%r8)
2471	movl	%ebp,16(%r8)
2472	leaq	64(%rsp),%rsi
2473	movq	0(%rsi),%r12
2474	movq	8(%rsi),%rbp
2475	movq	16(%rsi),%rbx
2476	leaq	24(%rsi),%rsp
2477.Lepilogue_ssse3:
2478	retq
2479.size	sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
2480.align	64
2481K_XX_XX:
2482.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
2483.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2484.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2485.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2486.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2487.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
2488.align	64
2489#if defined(HAVE_GNU_STACK)
2490.section .note.GNU-stack,"",%progbits
2491#endif
2492