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