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