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