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