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