Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / boringssl / mac-x86 / crypto / sha / sha512-586.S
blob3066100e6ff92929686ce6ce962c57c313cca399
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:
8 L_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
18 L000pic_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
50 L004loop_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
67 L00500_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
186 L00616_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
377 L003SSSE3:
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
434 L007loop_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
453 L00800_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
2293 L002loop_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
2397 L00900_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
2506 L01016_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
2741 L001K512:
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
2830 L_OPENSSL_ia32cap_P$non_lazy_ptr:
2831 .indirect_symbol        _OPENSSL_ia32cap_P
2832 .long   0
2833 #endif