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