1#if defined(__x86_64__)
2.text
3
4
5.globl	_sha512_block_data_order
6.private_extern _sha512_block_data_order
7
8.p2align	4
9_sha512_block_data_order:
10	pushq	%rbx
11	pushq	%rbp
12	pushq	%r12
13	pushq	%r13
14	pushq	%r14
15	pushq	%r15
16	movq	%rsp,%r11
17	shlq	$4,%rdx
18	subq	$128+32,%rsp
19	leaq	(%rsi,%rdx,8),%rdx
20	andq	$-64,%rsp
21	movq	%rdi,128+0(%rsp)
22	movq	%rsi,128+8(%rsp)
23	movq	%rdx,128+16(%rsp)
24	movq	%r11,128+24(%rsp)
25L$prologue:
26
27	movq	0(%rdi),%rax
28	movq	8(%rdi),%rbx
29	movq	16(%rdi),%rcx
30	movq	24(%rdi),%rdx
31	movq	32(%rdi),%r8
32	movq	40(%rdi),%r9
33	movq	48(%rdi),%r10
34	movq	56(%rdi),%r11
35	jmp	L$loop
36
37.p2align	4
38L$loop:
39	movq	%rbx,%rdi
40	leaq	K512(%rip),%rbp
41	xorq	%rcx,%rdi
42	movq	0(%rsi),%r12
43	movq	%r8,%r13
44	movq	%rax,%r14
45	bswapq	%r12
46	rorq	$23,%r13
47	movq	%r9,%r15
48
49	xorq	%r8,%r13
50	rorq	$5,%r14
51	xorq	%r10,%r15
52
53	movq	%r12,0(%rsp)
54	xorq	%rax,%r14
55	andq	%r8,%r15
56
57	rorq	$4,%r13
58	addq	%r11,%r12
59	xorq	%r10,%r15
60
61	rorq	$6,%r14
62	xorq	%r8,%r13
63	addq	%r15,%r12
64
65	movq	%rax,%r15
66	addq	(%rbp),%r12
67	xorq	%rax,%r14
68
69	xorq	%rbx,%r15
70	rorq	$14,%r13
71	movq	%rbx,%r11
72
73	andq	%r15,%rdi
74	rorq	$28,%r14
75	addq	%r13,%r12
76
77	xorq	%rdi,%r11
78	addq	%r12,%rdx
79	addq	%r12,%r11
80
81	leaq	8(%rbp),%rbp
82	addq	%r14,%r11
83	movq	8(%rsi),%r12
84	movq	%rdx,%r13
85	movq	%r11,%r14
86	bswapq	%r12
87	rorq	$23,%r13
88	movq	%r8,%rdi
89
90	xorq	%rdx,%r13
91	rorq	$5,%r14
92	xorq	%r9,%rdi
93
94	movq	%r12,8(%rsp)
95	xorq	%r11,%r14
96	andq	%rdx,%rdi
97
98	rorq	$4,%r13
99	addq	%r10,%r12
100	xorq	%r9,%rdi
101
102	rorq	$6,%r14
103	xorq	%rdx,%r13
104	addq	%rdi,%r12
105
106	movq	%r11,%rdi
107	addq	(%rbp),%r12
108	xorq	%r11,%r14
109
110	xorq	%rax,%rdi
111	rorq	$14,%r13
112	movq	%rax,%r10
113
114	andq	%rdi,%r15
115	rorq	$28,%r14
116	addq	%r13,%r12
117
118	xorq	%r15,%r10
119	addq	%r12,%rcx
120	addq	%r12,%r10
121
122	leaq	24(%rbp),%rbp
123	addq	%r14,%r10
124	movq	16(%rsi),%r12
125	movq	%rcx,%r13
126	movq	%r10,%r14
127	bswapq	%r12
128	rorq	$23,%r13
129	movq	%rdx,%r15
130
131	xorq	%rcx,%r13
132	rorq	$5,%r14
133	xorq	%r8,%r15
134
135	movq	%r12,16(%rsp)
136	xorq	%r10,%r14
137	andq	%rcx,%r15
138
139	rorq	$4,%r13
140	addq	%r9,%r12
141	xorq	%r8,%r15
142
143	rorq	$6,%r14
144	xorq	%rcx,%r13
145	addq	%r15,%r12
146
147	movq	%r10,%r15
148	addq	(%rbp),%r12
149	xorq	%r10,%r14
150
151	xorq	%r11,%r15
152	rorq	$14,%r13
153	movq	%r11,%r9
154
155	andq	%r15,%rdi
156	rorq	$28,%r14
157	addq	%r13,%r12
158
159	xorq	%rdi,%r9
160	addq	%r12,%rbx
161	addq	%r12,%r9
162
163	leaq	8(%rbp),%rbp
164	addq	%r14,%r9
165	movq	24(%rsi),%r12
166	movq	%rbx,%r13
167	movq	%r9,%r14
168	bswapq	%r12
169	rorq	$23,%r13
170	movq	%rcx,%rdi
171
172	xorq	%rbx,%r13
173	rorq	$5,%r14
174	xorq	%rdx,%rdi
175
176	movq	%r12,24(%rsp)
177	xorq	%r9,%r14
178	andq	%rbx,%rdi
179
180	rorq	$4,%r13
181	addq	%r8,%r12
182	xorq	%rdx,%rdi
183
184	rorq	$6,%r14
185	xorq	%rbx,%r13
186	addq	%rdi,%r12
187
188	movq	%r9,%rdi
189	addq	(%rbp),%r12
190	xorq	%r9,%r14
191
192	xorq	%r10,%rdi
193	rorq	$14,%r13
194	movq	%r10,%r8
195
196	andq	%rdi,%r15
197	rorq	$28,%r14
198	addq	%r13,%r12
199
200	xorq	%r15,%r8
201	addq	%r12,%rax
202	addq	%r12,%r8
203
204	leaq	24(%rbp),%rbp
205	addq	%r14,%r8
206	movq	32(%rsi),%r12
207	movq	%rax,%r13
208	movq	%r8,%r14
209	bswapq	%r12
210	rorq	$23,%r13
211	movq	%rbx,%r15
212
213	xorq	%rax,%r13
214	rorq	$5,%r14
215	xorq	%rcx,%r15
216
217	movq	%r12,32(%rsp)
218	xorq	%r8,%r14
219	andq	%rax,%r15
220
221	rorq	$4,%r13
222	addq	%rdx,%r12
223	xorq	%rcx,%r15
224
225	rorq	$6,%r14
226	xorq	%rax,%r13
227	addq	%r15,%r12
228
229	movq	%r8,%r15
230	addq	(%rbp),%r12
231	xorq	%r8,%r14
232
233	xorq	%r9,%r15
234	rorq	$14,%r13
235	movq	%r9,%rdx
236
237	andq	%r15,%rdi
238	rorq	$28,%r14
239	addq	%r13,%r12
240
241	xorq	%rdi,%rdx
242	addq	%r12,%r11
243	addq	%r12,%rdx
244
245	leaq	8(%rbp),%rbp
246	addq	%r14,%rdx
247	movq	40(%rsi),%r12
248	movq	%r11,%r13
249	movq	%rdx,%r14
250	bswapq	%r12
251	rorq	$23,%r13
252	movq	%rax,%rdi
253
254	xorq	%r11,%r13
255	rorq	$5,%r14
256	xorq	%rbx,%rdi
257
258	movq	%r12,40(%rsp)
259	xorq	%rdx,%r14
260	andq	%r11,%rdi
261
262	rorq	$4,%r13
263	addq	%rcx,%r12
264	xorq	%rbx,%rdi
265
266	rorq	$6,%r14
267	xorq	%r11,%r13
268	addq	%rdi,%r12
269
270	movq	%rdx,%rdi
271	addq	(%rbp),%r12
272	xorq	%rdx,%r14
273
274	xorq	%r8,%rdi
275	rorq	$14,%r13
276	movq	%r8,%rcx
277
278	andq	%rdi,%r15
279	rorq	$28,%r14
280	addq	%r13,%r12
281
282	xorq	%r15,%rcx
283	addq	%r12,%r10
284	addq	%r12,%rcx
285
286	leaq	24(%rbp),%rbp
287	addq	%r14,%rcx
288	movq	48(%rsi),%r12
289	movq	%r10,%r13
290	movq	%rcx,%r14
291	bswapq	%r12
292	rorq	$23,%r13
293	movq	%r11,%r15
294
295	xorq	%r10,%r13
296	rorq	$5,%r14
297	xorq	%rax,%r15
298
299	movq	%r12,48(%rsp)
300	xorq	%rcx,%r14
301	andq	%r10,%r15
302
303	rorq	$4,%r13
304	addq	%rbx,%r12
305	xorq	%rax,%r15
306
307	rorq	$6,%r14
308	xorq	%r10,%r13
309	addq	%r15,%r12
310
311	movq	%rcx,%r15
312	addq	(%rbp),%r12
313	xorq	%rcx,%r14
314
315	xorq	%rdx,%r15
316	rorq	$14,%r13
317	movq	%rdx,%rbx
318
319	andq	%r15,%rdi
320	rorq	$28,%r14
321	addq	%r13,%r12
322
323	xorq	%rdi,%rbx
324	addq	%r12,%r9
325	addq	%r12,%rbx
326
327	leaq	8(%rbp),%rbp
328	addq	%r14,%rbx
329	movq	56(%rsi),%r12
330	movq	%r9,%r13
331	movq	%rbx,%r14
332	bswapq	%r12
333	rorq	$23,%r13
334	movq	%r10,%rdi
335
336	xorq	%r9,%r13
337	rorq	$5,%r14
338	xorq	%r11,%rdi
339
340	movq	%r12,56(%rsp)
341	xorq	%rbx,%r14
342	andq	%r9,%rdi
343
344	rorq	$4,%r13
345	addq	%rax,%r12
346	xorq	%r11,%rdi
347
348	rorq	$6,%r14
349	xorq	%r9,%r13
350	addq	%rdi,%r12
351
352	movq	%rbx,%rdi
353	addq	(%rbp),%r12
354	xorq	%rbx,%r14
355
356	xorq	%rcx,%rdi
357	rorq	$14,%r13
358	movq	%rcx,%rax
359
360	andq	%rdi,%r15
361	rorq	$28,%r14
362	addq	%r13,%r12
363
364	xorq	%r15,%rax
365	addq	%r12,%r8
366	addq	%r12,%rax
367
368	leaq	24(%rbp),%rbp
369	addq	%r14,%rax
370	movq	64(%rsi),%r12
371	movq	%r8,%r13
372	movq	%rax,%r14
373	bswapq	%r12
374	rorq	$23,%r13
375	movq	%r9,%r15
376
377	xorq	%r8,%r13
378	rorq	$5,%r14
379	xorq	%r10,%r15
380
381	movq	%r12,64(%rsp)
382	xorq	%rax,%r14
383	andq	%r8,%r15
384
385	rorq	$4,%r13
386	addq	%r11,%r12
387	xorq	%r10,%r15
388
389	rorq	$6,%r14
390	xorq	%r8,%r13
391	addq	%r15,%r12
392
393	movq	%rax,%r15
394	addq	(%rbp),%r12
395	xorq	%rax,%r14
396
397	xorq	%rbx,%r15
398	rorq	$14,%r13
399	movq	%rbx,%r11
400
401	andq	%r15,%rdi
402	rorq	$28,%r14
403	addq	%r13,%r12
404
405	xorq	%rdi,%r11
406	addq	%r12,%rdx
407	addq	%r12,%r11
408
409	leaq	8(%rbp),%rbp
410	addq	%r14,%r11
411	movq	72(%rsi),%r12
412	movq	%rdx,%r13
413	movq	%r11,%r14
414	bswapq	%r12
415	rorq	$23,%r13
416	movq	%r8,%rdi
417
418	xorq	%rdx,%r13
419	rorq	$5,%r14
420	xorq	%r9,%rdi
421
422	movq	%r12,72(%rsp)
423	xorq	%r11,%r14
424	andq	%rdx,%rdi
425
426	rorq	$4,%r13
427	addq	%r10,%r12
428	xorq	%r9,%rdi
429
430	rorq	$6,%r14
431	xorq	%rdx,%r13
432	addq	%rdi,%r12
433
434	movq	%r11,%rdi
435	addq	(%rbp),%r12
436	xorq	%r11,%r14
437
438	xorq	%rax,%rdi
439	rorq	$14,%r13
440	movq	%rax,%r10
441
442	andq	%rdi,%r15
443	rorq	$28,%r14
444	addq	%r13,%r12
445
446	xorq	%r15,%r10
447	addq	%r12,%rcx
448	addq	%r12,%r10
449
450	leaq	24(%rbp),%rbp
451	addq	%r14,%r10
452	movq	80(%rsi),%r12
453	movq	%rcx,%r13
454	movq	%r10,%r14
455	bswapq	%r12
456	rorq	$23,%r13
457	movq	%rdx,%r15
458
459	xorq	%rcx,%r13
460	rorq	$5,%r14
461	xorq	%r8,%r15
462
463	movq	%r12,80(%rsp)
464	xorq	%r10,%r14
465	andq	%rcx,%r15
466
467	rorq	$4,%r13
468	addq	%r9,%r12
469	xorq	%r8,%r15
470
471	rorq	$6,%r14
472	xorq	%rcx,%r13
473	addq	%r15,%r12
474
475	movq	%r10,%r15
476	addq	(%rbp),%r12
477	xorq	%r10,%r14
478
479	xorq	%r11,%r15
480	rorq	$14,%r13
481	movq	%r11,%r9
482
483	andq	%r15,%rdi
484	rorq	$28,%r14
485	addq	%r13,%r12
486
487	xorq	%rdi,%r9
488	addq	%r12,%rbx
489	addq	%r12,%r9
490
491	leaq	8(%rbp),%rbp
492	addq	%r14,%r9
493	movq	88(%rsi),%r12
494	movq	%rbx,%r13
495	movq	%r9,%r14
496	bswapq	%r12
497	rorq	$23,%r13
498	movq	%rcx,%rdi
499
500	xorq	%rbx,%r13
501	rorq	$5,%r14
502	xorq	%rdx,%rdi
503
504	movq	%r12,88(%rsp)
505	xorq	%r9,%r14
506	andq	%rbx,%rdi
507
508	rorq	$4,%r13
509	addq	%r8,%r12
510	xorq	%rdx,%rdi
511
512	rorq	$6,%r14
513	xorq	%rbx,%r13
514	addq	%rdi,%r12
515
516	movq	%r9,%rdi
517	addq	(%rbp),%r12
518	xorq	%r9,%r14
519
520	xorq	%r10,%rdi
521	rorq	$14,%r13
522	movq	%r10,%r8
523
524	andq	%rdi,%r15
525	rorq	$28,%r14
526	addq	%r13,%r12
527
528	xorq	%r15,%r8
529	addq	%r12,%rax
530	addq	%r12,%r8
531
532	leaq	24(%rbp),%rbp
533	addq	%r14,%r8
534	movq	96(%rsi),%r12
535	movq	%rax,%r13
536	movq	%r8,%r14
537	bswapq	%r12
538	rorq	$23,%r13
539	movq	%rbx,%r15
540
541	xorq	%rax,%r13
542	rorq	$5,%r14
543	xorq	%rcx,%r15
544
545	movq	%r12,96(%rsp)
546	xorq	%r8,%r14
547	andq	%rax,%r15
548
549	rorq	$4,%r13
550	addq	%rdx,%r12
551	xorq	%rcx,%r15
552
553	rorq	$6,%r14
554	xorq	%rax,%r13
555	addq	%r15,%r12
556
557	movq	%r8,%r15
558	addq	(%rbp),%r12
559	xorq	%r8,%r14
560
561	xorq	%r9,%r15
562	rorq	$14,%r13
563	movq	%r9,%rdx
564
565	andq	%r15,%rdi
566	rorq	$28,%r14
567	addq	%r13,%r12
568
569	xorq	%rdi,%rdx
570	addq	%r12,%r11
571	addq	%r12,%rdx
572
573	leaq	8(%rbp),%rbp
574	addq	%r14,%rdx
575	movq	104(%rsi),%r12
576	movq	%r11,%r13
577	movq	%rdx,%r14
578	bswapq	%r12
579	rorq	$23,%r13
580	movq	%rax,%rdi
581
582	xorq	%r11,%r13
583	rorq	$5,%r14
584	xorq	%rbx,%rdi
585
586	movq	%r12,104(%rsp)
587	xorq	%rdx,%r14
588	andq	%r11,%rdi
589
590	rorq	$4,%r13
591	addq	%rcx,%r12
592	xorq	%rbx,%rdi
593
594	rorq	$6,%r14
595	xorq	%r11,%r13
596	addq	%rdi,%r12
597
598	movq	%rdx,%rdi
599	addq	(%rbp),%r12
600	xorq	%rdx,%r14
601
602	xorq	%r8,%rdi
603	rorq	$14,%r13
604	movq	%r8,%rcx
605
606	andq	%rdi,%r15
607	rorq	$28,%r14
608	addq	%r13,%r12
609
610	xorq	%r15,%rcx
611	addq	%r12,%r10
612	addq	%r12,%rcx
613
614	leaq	24(%rbp),%rbp
615	addq	%r14,%rcx
616	movq	112(%rsi),%r12
617	movq	%r10,%r13
618	movq	%rcx,%r14
619	bswapq	%r12
620	rorq	$23,%r13
621	movq	%r11,%r15
622
623	xorq	%r10,%r13
624	rorq	$5,%r14
625	xorq	%rax,%r15
626
627	movq	%r12,112(%rsp)
628	xorq	%rcx,%r14
629	andq	%r10,%r15
630
631	rorq	$4,%r13
632	addq	%rbx,%r12
633	xorq	%rax,%r15
634
635	rorq	$6,%r14
636	xorq	%r10,%r13
637	addq	%r15,%r12
638
639	movq	%rcx,%r15
640	addq	(%rbp),%r12
641	xorq	%rcx,%r14
642
643	xorq	%rdx,%r15
644	rorq	$14,%r13
645	movq	%rdx,%rbx
646
647	andq	%r15,%rdi
648	rorq	$28,%r14
649	addq	%r13,%r12
650
651	xorq	%rdi,%rbx
652	addq	%r12,%r9
653	addq	%r12,%rbx
654
655	leaq	8(%rbp),%rbp
656	addq	%r14,%rbx
657	movq	120(%rsi),%r12
658	movq	%r9,%r13
659	movq	%rbx,%r14
660	bswapq	%r12
661	rorq	$23,%r13
662	movq	%r10,%rdi
663
664	xorq	%r9,%r13
665	rorq	$5,%r14
666	xorq	%r11,%rdi
667
668	movq	%r12,120(%rsp)
669	xorq	%rbx,%r14
670	andq	%r9,%rdi
671
672	rorq	$4,%r13
673	addq	%rax,%r12
674	xorq	%r11,%rdi
675
676	rorq	$6,%r14
677	xorq	%r9,%r13
678	addq	%rdi,%r12
679
680	movq	%rbx,%rdi
681	addq	(%rbp),%r12
682	xorq	%rbx,%r14
683
684	xorq	%rcx,%rdi
685	rorq	$14,%r13
686	movq	%rcx,%rax
687
688	andq	%rdi,%r15
689	rorq	$28,%r14
690	addq	%r13,%r12
691
692	xorq	%r15,%rax
693	addq	%r12,%r8
694	addq	%r12,%rax
695
696	leaq	24(%rbp),%rbp
697	jmp	L$rounds_16_xx
698.p2align	4
699L$rounds_16_xx:
700	movq	8(%rsp),%r13
701	movq	112(%rsp),%r15
702
703	movq	%r13,%r12
704	rorq	$7,%r13
705	addq	%r14,%rax
706	movq	%r15,%r14
707	rorq	$42,%r15
708
709	xorq	%r12,%r13
710	shrq	$7,%r12
711	rorq	$1,%r13
712	xorq	%r14,%r15
713	shrq	$6,%r14
714
715	rorq	$19,%r15
716	xorq	%r13,%r12
717	xorq	%r14,%r15
718	addq	72(%rsp),%r12
719
720	addq	0(%rsp),%r12
721	movq	%r8,%r13
722	addq	%r15,%r12
723	movq	%rax,%r14
724	rorq	$23,%r13
725	movq	%r9,%r15
726
727	xorq	%r8,%r13
728	rorq	$5,%r14
729	xorq	%r10,%r15
730
731	movq	%r12,0(%rsp)
732	xorq	%rax,%r14
733	andq	%r8,%r15
734
735	rorq	$4,%r13
736	addq	%r11,%r12
737	xorq	%r10,%r15
738
739	rorq	$6,%r14
740	xorq	%r8,%r13
741	addq	%r15,%r12
742
743	movq	%rax,%r15
744	addq	(%rbp),%r12
745	xorq	%rax,%r14
746
747	xorq	%rbx,%r15
748	rorq	$14,%r13
749	movq	%rbx,%r11
750
751	andq	%r15,%rdi
752	rorq	$28,%r14
753	addq	%r13,%r12
754
755	xorq	%rdi,%r11
756	addq	%r12,%rdx
757	addq	%r12,%r11
758
759	leaq	8(%rbp),%rbp
760	movq	16(%rsp),%r13
761	movq	120(%rsp),%rdi
762
763	movq	%r13,%r12
764	rorq	$7,%r13
765	addq	%r14,%r11
766	movq	%rdi,%r14
767	rorq	$42,%rdi
768
769	xorq	%r12,%r13
770	shrq	$7,%r12
771	rorq	$1,%r13
772	xorq	%r14,%rdi
773	shrq	$6,%r14
774
775	rorq	$19,%rdi
776	xorq	%r13,%r12
777	xorq	%r14,%rdi
778	addq	80(%rsp),%r12
779
780	addq	8(%rsp),%r12
781	movq	%rdx,%r13
782	addq	%rdi,%r12
783	movq	%r11,%r14
784	rorq	$23,%r13
785	movq	%r8,%rdi
786
787	xorq	%rdx,%r13
788	rorq	$5,%r14
789	xorq	%r9,%rdi
790
791	movq	%r12,8(%rsp)
792	xorq	%r11,%r14
793	andq	%rdx,%rdi
794
795	rorq	$4,%r13
796	addq	%r10,%r12
797	xorq	%r9,%rdi
798
799	rorq	$6,%r14
800	xorq	%rdx,%r13
801	addq	%rdi,%r12
802
803	movq	%r11,%rdi
804	addq	(%rbp),%r12
805	xorq	%r11,%r14
806
807	xorq	%rax,%rdi
808	rorq	$14,%r13
809	movq	%rax,%r10
810
811	andq	%rdi,%r15
812	rorq	$28,%r14
813	addq	%r13,%r12
814
815	xorq	%r15,%r10
816	addq	%r12,%rcx
817	addq	%r12,%r10
818
819	leaq	24(%rbp),%rbp
820	movq	24(%rsp),%r13
821	movq	0(%rsp),%r15
822
823	movq	%r13,%r12
824	rorq	$7,%r13
825	addq	%r14,%r10
826	movq	%r15,%r14
827	rorq	$42,%r15
828
829	xorq	%r12,%r13
830	shrq	$7,%r12
831	rorq	$1,%r13
832	xorq	%r14,%r15
833	shrq	$6,%r14
834
835	rorq	$19,%r15
836	xorq	%r13,%r12
837	xorq	%r14,%r15
838	addq	88(%rsp),%r12
839
840	addq	16(%rsp),%r12
841	movq	%rcx,%r13
842	addq	%r15,%r12
843	movq	%r10,%r14
844	rorq	$23,%r13
845	movq	%rdx,%r15
846
847	xorq	%rcx,%r13
848	rorq	$5,%r14
849	xorq	%r8,%r15
850
851	movq	%r12,16(%rsp)
852	xorq	%r10,%r14
853	andq	%rcx,%r15
854
855	rorq	$4,%r13
856	addq	%r9,%r12
857	xorq	%r8,%r15
858
859	rorq	$6,%r14
860	xorq	%rcx,%r13
861	addq	%r15,%r12
862
863	movq	%r10,%r15
864	addq	(%rbp),%r12
865	xorq	%r10,%r14
866
867	xorq	%r11,%r15
868	rorq	$14,%r13
869	movq	%r11,%r9
870
871	andq	%r15,%rdi
872	rorq	$28,%r14
873	addq	%r13,%r12
874
875	xorq	%rdi,%r9
876	addq	%r12,%rbx
877	addq	%r12,%r9
878
879	leaq	8(%rbp),%rbp
880	movq	32(%rsp),%r13
881	movq	8(%rsp),%rdi
882
883	movq	%r13,%r12
884	rorq	$7,%r13
885	addq	%r14,%r9
886	movq	%rdi,%r14
887	rorq	$42,%rdi
888
889	xorq	%r12,%r13
890	shrq	$7,%r12
891	rorq	$1,%r13
892	xorq	%r14,%rdi
893	shrq	$6,%r14
894
895	rorq	$19,%rdi
896	xorq	%r13,%r12
897	xorq	%r14,%rdi
898	addq	96(%rsp),%r12
899
900	addq	24(%rsp),%r12
901	movq	%rbx,%r13
902	addq	%rdi,%r12
903	movq	%r9,%r14
904	rorq	$23,%r13
905	movq	%rcx,%rdi
906
907	xorq	%rbx,%r13
908	rorq	$5,%r14
909	xorq	%rdx,%rdi
910
911	movq	%r12,24(%rsp)
912	xorq	%r9,%r14
913	andq	%rbx,%rdi
914
915	rorq	$4,%r13
916	addq	%r8,%r12
917	xorq	%rdx,%rdi
918
919	rorq	$6,%r14
920	xorq	%rbx,%r13
921	addq	%rdi,%r12
922
923	movq	%r9,%rdi
924	addq	(%rbp),%r12
925	xorq	%r9,%r14
926
927	xorq	%r10,%rdi
928	rorq	$14,%r13
929	movq	%r10,%r8
930
931	andq	%rdi,%r15
932	rorq	$28,%r14
933	addq	%r13,%r12
934
935	xorq	%r15,%r8
936	addq	%r12,%rax
937	addq	%r12,%r8
938
939	leaq	24(%rbp),%rbp
940	movq	40(%rsp),%r13
941	movq	16(%rsp),%r15
942
943	movq	%r13,%r12
944	rorq	$7,%r13
945	addq	%r14,%r8
946	movq	%r15,%r14
947	rorq	$42,%r15
948
949	xorq	%r12,%r13
950	shrq	$7,%r12
951	rorq	$1,%r13
952	xorq	%r14,%r15
953	shrq	$6,%r14
954
955	rorq	$19,%r15
956	xorq	%r13,%r12
957	xorq	%r14,%r15
958	addq	104(%rsp),%r12
959
960	addq	32(%rsp),%r12
961	movq	%rax,%r13
962	addq	%r15,%r12
963	movq	%r8,%r14
964	rorq	$23,%r13
965	movq	%rbx,%r15
966
967	xorq	%rax,%r13
968	rorq	$5,%r14
969	xorq	%rcx,%r15
970
971	movq	%r12,32(%rsp)
972	xorq	%r8,%r14
973	andq	%rax,%r15
974
975	rorq	$4,%r13
976	addq	%rdx,%r12
977	xorq	%rcx,%r15
978
979	rorq	$6,%r14
980	xorq	%rax,%r13
981	addq	%r15,%r12
982
983	movq	%r8,%r15
984	addq	(%rbp),%r12
985	xorq	%r8,%r14
986
987	xorq	%r9,%r15
988	rorq	$14,%r13
989	movq	%r9,%rdx
990
991	andq	%r15,%rdi
992	rorq	$28,%r14
993	addq	%r13,%r12
994
995	xorq	%rdi,%rdx
996	addq	%r12,%r11
997	addq	%r12,%rdx
998
999	leaq	8(%rbp),%rbp
1000	movq	48(%rsp),%r13
1001	movq	24(%rsp),%rdi
1002
1003	movq	%r13,%r12
1004	rorq	$7,%r13
1005	addq	%r14,%rdx
1006	movq	%rdi,%r14
1007	rorq	$42,%rdi
1008
1009	xorq	%r12,%r13
1010	shrq	$7,%r12
1011	rorq	$1,%r13
1012	xorq	%r14,%rdi
1013	shrq	$6,%r14
1014
1015	rorq	$19,%rdi
1016	xorq	%r13,%r12
1017	xorq	%r14,%rdi
1018	addq	112(%rsp),%r12
1019
1020	addq	40(%rsp),%r12
1021	movq	%r11,%r13
1022	addq	%rdi,%r12
1023	movq	%rdx,%r14
1024	rorq	$23,%r13
1025	movq	%rax,%rdi
1026
1027	xorq	%r11,%r13
1028	rorq	$5,%r14
1029	xorq	%rbx,%rdi
1030
1031	movq	%r12,40(%rsp)
1032	xorq	%rdx,%r14
1033	andq	%r11,%rdi
1034
1035	rorq	$4,%r13
1036	addq	%rcx,%r12
1037	xorq	%rbx,%rdi
1038
1039	rorq	$6,%r14
1040	xorq	%r11,%r13
1041	addq	%rdi,%r12
1042
1043	movq	%rdx,%rdi
1044	addq	(%rbp),%r12
1045	xorq	%rdx,%r14
1046
1047	xorq	%r8,%rdi
1048	rorq	$14,%r13
1049	movq	%r8,%rcx
1050
1051	andq	%rdi,%r15
1052	rorq	$28,%r14
1053	addq	%r13,%r12
1054
1055	xorq	%r15,%rcx
1056	addq	%r12,%r10
1057	addq	%r12,%rcx
1058
1059	leaq	24(%rbp),%rbp
1060	movq	56(%rsp),%r13
1061	movq	32(%rsp),%r15
1062
1063	movq	%r13,%r12
1064	rorq	$7,%r13
1065	addq	%r14,%rcx
1066	movq	%r15,%r14
1067	rorq	$42,%r15
1068
1069	xorq	%r12,%r13
1070	shrq	$7,%r12
1071	rorq	$1,%r13
1072	xorq	%r14,%r15
1073	shrq	$6,%r14
1074
1075	rorq	$19,%r15
1076	xorq	%r13,%r12
1077	xorq	%r14,%r15
1078	addq	120(%rsp),%r12
1079
1080	addq	48(%rsp),%r12
1081	movq	%r10,%r13
1082	addq	%r15,%r12
1083	movq	%rcx,%r14
1084	rorq	$23,%r13
1085	movq	%r11,%r15
1086
1087	xorq	%r10,%r13
1088	rorq	$5,%r14
1089	xorq	%rax,%r15
1090
1091	movq	%r12,48(%rsp)
1092	xorq	%rcx,%r14
1093	andq	%r10,%r15
1094
1095	rorq	$4,%r13
1096	addq	%rbx,%r12
1097	xorq	%rax,%r15
1098
1099	rorq	$6,%r14
1100	xorq	%r10,%r13
1101	addq	%r15,%r12
1102
1103	movq	%rcx,%r15
1104	addq	(%rbp),%r12
1105	xorq	%rcx,%r14
1106
1107	xorq	%rdx,%r15
1108	rorq	$14,%r13
1109	movq	%rdx,%rbx
1110
1111	andq	%r15,%rdi
1112	rorq	$28,%r14
1113	addq	%r13,%r12
1114
1115	xorq	%rdi,%rbx
1116	addq	%r12,%r9
1117	addq	%r12,%rbx
1118
1119	leaq	8(%rbp),%rbp
1120	movq	64(%rsp),%r13
1121	movq	40(%rsp),%rdi
1122
1123	movq	%r13,%r12
1124	rorq	$7,%r13
1125	addq	%r14,%rbx
1126	movq	%rdi,%r14
1127	rorq	$42,%rdi
1128
1129	xorq	%r12,%r13
1130	shrq	$7,%r12
1131	rorq	$1,%r13
1132	xorq	%r14,%rdi
1133	shrq	$6,%r14
1134
1135	rorq	$19,%rdi
1136	xorq	%r13,%r12
1137	xorq	%r14,%rdi
1138	addq	0(%rsp),%r12
1139
1140	addq	56(%rsp),%r12
1141	movq	%r9,%r13
1142	addq	%rdi,%r12
1143	movq	%rbx,%r14
1144	rorq	$23,%r13
1145	movq	%r10,%rdi
1146
1147	xorq	%r9,%r13
1148	rorq	$5,%r14
1149	xorq	%r11,%rdi
1150
1151	movq	%r12,56(%rsp)
1152	xorq	%rbx,%r14
1153	andq	%r9,%rdi
1154
1155	rorq	$4,%r13
1156	addq	%rax,%r12
1157	xorq	%r11,%rdi
1158
1159	rorq	$6,%r14
1160	xorq	%r9,%r13
1161	addq	%rdi,%r12
1162
1163	movq	%rbx,%rdi
1164	addq	(%rbp),%r12
1165	xorq	%rbx,%r14
1166
1167	xorq	%rcx,%rdi
1168	rorq	$14,%r13
1169	movq	%rcx,%rax
1170
1171	andq	%rdi,%r15
1172	rorq	$28,%r14
1173	addq	%r13,%r12
1174
1175	xorq	%r15,%rax
1176	addq	%r12,%r8
1177	addq	%r12,%rax
1178
1179	leaq	24(%rbp),%rbp
1180	movq	72(%rsp),%r13
1181	movq	48(%rsp),%r15
1182
1183	movq	%r13,%r12
1184	rorq	$7,%r13
1185	addq	%r14,%rax
1186	movq	%r15,%r14
1187	rorq	$42,%r15
1188
1189	xorq	%r12,%r13
1190	shrq	$7,%r12
1191	rorq	$1,%r13
1192	xorq	%r14,%r15
1193	shrq	$6,%r14
1194
1195	rorq	$19,%r15
1196	xorq	%r13,%r12
1197	xorq	%r14,%r15
1198	addq	8(%rsp),%r12
1199
1200	addq	64(%rsp),%r12
1201	movq	%r8,%r13
1202	addq	%r15,%r12
1203	movq	%rax,%r14
1204	rorq	$23,%r13
1205	movq	%r9,%r15
1206
1207	xorq	%r8,%r13
1208	rorq	$5,%r14
1209	xorq	%r10,%r15
1210
1211	movq	%r12,64(%rsp)
1212	xorq	%rax,%r14
1213	andq	%r8,%r15
1214
1215	rorq	$4,%r13
1216	addq	%r11,%r12
1217	xorq	%r10,%r15
1218
1219	rorq	$6,%r14
1220	xorq	%r8,%r13
1221	addq	%r15,%r12
1222
1223	movq	%rax,%r15
1224	addq	(%rbp),%r12
1225	xorq	%rax,%r14
1226
1227	xorq	%rbx,%r15
1228	rorq	$14,%r13
1229	movq	%rbx,%r11
1230
1231	andq	%r15,%rdi
1232	rorq	$28,%r14
1233	addq	%r13,%r12
1234
1235	xorq	%rdi,%r11
1236	addq	%r12,%rdx
1237	addq	%r12,%r11
1238
1239	leaq	8(%rbp),%rbp
1240	movq	80(%rsp),%r13
1241	movq	56(%rsp),%rdi
1242
1243	movq	%r13,%r12
1244	rorq	$7,%r13
1245	addq	%r14,%r11
1246	movq	%rdi,%r14
1247	rorq	$42,%rdi
1248
1249	xorq	%r12,%r13
1250	shrq	$7,%r12
1251	rorq	$1,%r13
1252	xorq	%r14,%rdi
1253	shrq	$6,%r14
1254
1255	rorq	$19,%rdi
1256	xorq	%r13,%r12
1257	xorq	%r14,%rdi
1258	addq	16(%rsp),%r12
1259
1260	addq	72(%rsp),%r12
1261	movq	%rdx,%r13
1262	addq	%rdi,%r12
1263	movq	%r11,%r14
1264	rorq	$23,%r13
1265	movq	%r8,%rdi
1266
1267	xorq	%rdx,%r13
1268	rorq	$5,%r14
1269	xorq	%r9,%rdi
1270
1271	movq	%r12,72(%rsp)
1272	xorq	%r11,%r14
1273	andq	%rdx,%rdi
1274
1275	rorq	$4,%r13
1276	addq	%r10,%r12
1277	xorq	%r9,%rdi
1278
1279	rorq	$6,%r14
1280	xorq	%rdx,%r13
1281	addq	%rdi,%r12
1282
1283	movq	%r11,%rdi
1284	addq	(%rbp),%r12
1285	xorq	%r11,%r14
1286
1287	xorq	%rax,%rdi
1288	rorq	$14,%r13
1289	movq	%rax,%r10
1290
1291	andq	%rdi,%r15
1292	rorq	$28,%r14
1293	addq	%r13,%r12
1294
1295	xorq	%r15,%r10
1296	addq	%r12,%rcx
1297	addq	%r12,%r10
1298
1299	leaq	24(%rbp),%rbp
1300	movq	88(%rsp),%r13
1301	movq	64(%rsp),%r15
1302
1303	movq	%r13,%r12
1304	rorq	$7,%r13
1305	addq	%r14,%r10
1306	movq	%r15,%r14
1307	rorq	$42,%r15
1308
1309	xorq	%r12,%r13
1310	shrq	$7,%r12
1311	rorq	$1,%r13
1312	xorq	%r14,%r15
1313	shrq	$6,%r14
1314
1315	rorq	$19,%r15
1316	xorq	%r13,%r12
1317	xorq	%r14,%r15
1318	addq	24(%rsp),%r12
1319
1320	addq	80(%rsp),%r12
1321	movq	%rcx,%r13
1322	addq	%r15,%r12
1323	movq	%r10,%r14
1324	rorq	$23,%r13
1325	movq	%rdx,%r15
1326
1327	xorq	%rcx,%r13
1328	rorq	$5,%r14
1329	xorq	%r8,%r15
1330
1331	movq	%r12,80(%rsp)
1332	xorq	%r10,%r14
1333	andq	%rcx,%r15
1334
1335	rorq	$4,%r13
1336	addq	%r9,%r12
1337	xorq	%r8,%r15
1338
1339	rorq	$6,%r14
1340	xorq	%rcx,%r13
1341	addq	%r15,%r12
1342
1343	movq	%r10,%r15
1344	addq	(%rbp),%r12
1345	xorq	%r10,%r14
1346
1347	xorq	%r11,%r15
1348	rorq	$14,%r13
1349	movq	%r11,%r9
1350
1351	andq	%r15,%rdi
1352	rorq	$28,%r14
1353	addq	%r13,%r12
1354
1355	xorq	%rdi,%r9
1356	addq	%r12,%rbx
1357	addq	%r12,%r9
1358
1359	leaq	8(%rbp),%rbp
1360	movq	96(%rsp),%r13
1361	movq	72(%rsp),%rdi
1362
1363	movq	%r13,%r12
1364	rorq	$7,%r13
1365	addq	%r14,%r9
1366	movq	%rdi,%r14
1367	rorq	$42,%rdi
1368
1369	xorq	%r12,%r13
1370	shrq	$7,%r12
1371	rorq	$1,%r13
1372	xorq	%r14,%rdi
1373	shrq	$6,%r14
1374
1375	rorq	$19,%rdi
1376	xorq	%r13,%r12
1377	xorq	%r14,%rdi
1378	addq	32(%rsp),%r12
1379
1380	addq	88(%rsp),%r12
1381	movq	%rbx,%r13
1382	addq	%rdi,%r12
1383	movq	%r9,%r14
1384	rorq	$23,%r13
1385	movq	%rcx,%rdi
1386
1387	xorq	%rbx,%r13
1388	rorq	$5,%r14
1389	xorq	%rdx,%rdi
1390
1391	movq	%r12,88(%rsp)
1392	xorq	%r9,%r14
1393	andq	%rbx,%rdi
1394
1395	rorq	$4,%r13
1396	addq	%r8,%r12
1397	xorq	%rdx,%rdi
1398
1399	rorq	$6,%r14
1400	xorq	%rbx,%r13
1401	addq	%rdi,%r12
1402
1403	movq	%r9,%rdi
1404	addq	(%rbp),%r12
1405	xorq	%r9,%r14
1406
1407	xorq	%r10,%rdi
1408	rorq	$14,%r13
1409	movq	%r10,%r8
1410
1411	andq	%rdi,%r15
1412	rorq	$28,%r14
1413	addq	%r13,%r12
1414
1415	xorq	%r15,%r8
1416	addq	%r12,%rax
1417	addq	%r12,%r8
1418
1419	leaq	24(%rbp),%rbp
1420	movq	104(%rsp),%r13
1421	movq	80(%rsp),%r15
1422
1423	movq	%r13,%r12
1424	rorq	$7,%r13
1425	addq	%r14,%r8
1426	movq	%r15,%r14
1427	rorq	$42,%r15
1428
1429	xorq	%r12,%r13
1430	shrq	$7,%r12
1431	rorq	$1,%r13
1432	xorq	%r14,%r15
1433	shrq	$6,%r14
1434
1435	rorq	$19,%r15
1436	xorq	%r13,%r12
1437	xorq	%r14,%r15
1438	addq	40(%rsp),%r12
1439
1440	addq	96(%rsp),%r12
1441	movq	%rax,%r13
1442	addq	%r15,%r12
1443	movq	%r8,%r14
1444	rorq	$23,%r13
1445	movq	%rbx,%r15
1446
1447	xorq	%rax,%r13
1448	rorq	$5,%r14
1449	xorq	%rcx,%r15
1450
1451	movq	%r12,96(%rsp)
1452	xorq	%r8,%r14
1453	andq	%rax,%r15
1454
1455	rorq	$4,%r13
1456	addq	%rdx,%r12
1457	xorq	%rcx,%r15
1458
1459	rorq	$6,%r14
1460	xorq	%rax,%r13
1461	addq	%r15,%r12
1462
1463	movq	%r8,%r15
1464	addq	(%rbp),%r12
1465	xorq	%r8,%r14
1466
1467	xorq	%r9,%r15
1468	rorq	$14,%r13
1469	movq	%r9,%rdx
1470
1471	andq	%r15,%rdi
1472	rorq	$28,%r14
1473	addq	%r13,%r12
1474
1475	xorq	%rdi,%rdx
1476	addq	%r12,%r11
1477	addq	%r12,%rdx
1478
1479	leaq	8(%rbp),%rbp
1480	movq	112(%rsp),%r13
1481	movq	88(%rsp),%rdi
1482
1483	movq	%r13,%r12
1484	rorq	$7,%r13
1485	addq	%r14,%rdx
1486	movq	%rdi,%r14
1487	rorq	$42,%rdi
1488
1489	xorq	%r12,%r13
1490	shrq	$7,%r12
1491	rorq	$1,%r13
1492	xorq	%r14,%rdi
1493	shrq	$6,%r14
1494
1495	rorq	$19,%rdi
1496	xorq	%r13,%r12
1497	xorq	%r14,%rdi
1498	addq	48(%rsp),%r12
1499
1500	addq	104(%rsp),%r12
1501	movq	%r11,%r13
1502	addq	%rdi,%r12
1503	movq	%rdx,%r14
1504	rorq	$23,%r13
1505	movq	%rax,%rdi
1506
1507	xorq	%r11,%r13
1508	rorq	$5,%r14
1509	xorq	%rbx,%rdi
1510
1511	movq	%r12,104(%rsp)
1512	xorq	%rdx,%r14
1513	andq	%r11,%rdi
1514
1515	rorq	$4,%r13
1516	addq	%rcx,%r12
1517	xorq	%rbx,%rdi
1518
1519	rorq	$6,%r14
1520	xorq	%r11,%r13
1521	addq	%rdi,%r12
1522
1523	movq	%rdx,%rdi
1524	addq	(%rbp),%r12
1525	xorq	%rdx,%r14
1526
1527	xorq	%r8,%rdi
1528	rorq	$14,%r13
1529	movq	%r8,%rcx
1530
1531	andq	%rdi,%r15
1532	rorq	$28,%r14
1533	addq	%r13,%r12
1534
1535	xorq	%r15,%rcx
1536	addq	%r12,%r10
1537	addq	%r12,%rcx
1538
1539	leaq	24(%rbp),%rbp
1540	movq	120(%rsp),%r13
1541	movq	96(%rsp),%r15
1542
1543	movq	%r13,%r12
1544	rorq	$7,%r13
1545	addq	%r14,%rcx
1546	movq	%r15,%r14
1547	rorq	$42,%r15
1548
1549	xorq	%r12,%r13
1550	shrq	$7,%r12
1551	rorq	$1,%r13
1552	xorq	%r14,%r15
1553	shrq	$6,%r14
1554
1555	rorq	$19,%r15
1556	xorq	%r13,%r12
1557	xorq	%r14,%r15
1558	addq	56(%rsp),%r12
1559
1560	addq	112(%rsp),%r12
1561	movq	%r10,%r13
1562	addq	%r15,%r12
1563	movq	%rcx,%r14
1564	rorq	$23,%r13
1565	movq	%r11,%r15
1566
1567	xorq	%r10,%r13
1568	rorq	$5,%r14
1569	xorq	%rax,%r15
1570
1571	movq	%r12,112(%rsp)
1572	xorq	%rcx,%r14
1573	andq	%r10,%r15
1574
1575	rorq	$4,%r13
1576	addq	%rbx,%r12
1577	xorq	%rax,%r15
1578
1579	rorq	$6,%r14
1580	xorq	%r10,%r13
1581	addq	%r15,%r12
1582
1583	movq	%rcx,%r15
1584	addq	(%rbp),%r12
1585	xorq	%rcx,%r14
1586
1587	xorq	%rdx,%r15
1588	rorq	$14,%r13
1589	movq	%rdx,%rbx
1590
1591	andq	%r15,%rdi
1592	rorq	$28,%r14
1593	addq	%r13,%r12
1594
1595	xorq	%rdi,%rbx
1596	addq	%r12,%r9
1597	addq	%r12,%rbx
1598
1599	leaq	8(%rbp),%rbp
1600	movq	0(%rsp),%r13
1601	movq	104(%rsp),%rdi
1602
1603	movq	%r13,%r12
1604	rorq	$7,%r13
1605	addq	%r14,%rbx
1606	movq	%rdi,%r14
1607	rorq	$42,%rdi
1608
1609	xorq	%r12,%r13
1610	shrq	$7,%r12
1611	rorq	$1,%r13
1612	xorq	%r14,%rdi
1613	shrq	$6,%r14
1614
1615	rorq	$19,%rdi
1616	xorq	%r13,%r12
1617	xorq	%r14,%rdi
1618	addq	64(%rsp),%r12
1619
1620	addq	120(%rsp),%r12
1621	movq	%r9,%r13
1622	addq	%rdi,%r12
1623	movq	%rbx,%r14
1624	rorq	$23,%r13
1625	movq	%r10,%rdi
1626
1627	xorq	%r9,%r13
1628	rorq	$5,%r14
1629	xorq	%r11,%rdi
1630
1631	movq	%r12,120(%rsp)
1632	xorq	%rbx,%r14
1633	andq	%r9,%rdi
1634
1635	rorq	$4,%r13
1636	addq	%rax,%r12
1637	xorq	%r11,%rdi
1638
1639	rorq	$6,%r14
1640	xorq	%r9,%r13
1641	addq	%rdi,%r12
1642
1643	movq	%rbx,%rdi
1644	addq	(%rbp),%r12
1645	xorq	%rbx,%r14
1646
1647	xorq	%rcx,%rdi
1648	rorq	$14,%r13
1649	movq	%rcx,%rax
1650
1651	andq	%rdi,%r15
1652	rorq	$28,%r14
1653	addq	%r13,%r12
1654
1655	xorq	%r15,%rax
1656	addq	%r12,%r8
1657	addq	%r12,%rax
1658
1659	leaq	24(%rbp),%rbp
1660	cmpb	$0,7(%rbp)
1661	jnz	L$rounds_16_xx
1662
1663	movq	128+0(%rsp),%rdi
1664	addq	%r14,%rax
1665	leaq	128(%rsi),%rsi
1666
1667	addq	0(%rdi),%rax
1668	addq	8(%rdi),%rbx
1669	addq	16(%rdi),%rcx
1670	addq	24(%rdi),%rdx
1671	addq	32(%rdi),%r8
1672	addq	40(%rdi),%r9
1673	addq	48(%rdi),%r10
1674	addq	56(%rdi),%r11
1675
1676	cmpq	128+16(%rsp),%rsi
1677
1678	movq	%rax,0(%rdi)
1679	movq	%rbx,8(%rdi)
1680	movq	%rcx,16(%rdi)
1681	movq	%rdx,24(%rdi)
1682	movq	%r8,32(%rdi)
1683	movq	%r9,40(%rdi)
1684	movq	%r10,48(%rdi)
1685	movq	%r11,56(%rdi)
1686	jb	L$loop
1687
1688	movq	128+24(%rsp),%rsi
1689	movq	(%rsi),%r15
1690	movq	8(%rsi),%r14
1691	movq	16(%rsi),%r13
1692	movq	24(%rsi),%r12
1693	movq	32(%rsi),%rbp
1694	movq	40(%rsi),%rbx
1695	leaq	48(%rsi),%rsp
1696L$epilogue:
1697	.byte	0xf3,0xc3
1698
1699.p2align	6
1700
1701K512:
1702.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1703.quad	0x428a2f98d728ae22,0x7137449123ef65cd
1704.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1705.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
1706.quad	0x3956c25bf348b538,0x59f111f1b605d019
1707.quad	0x3956c25bf348b538,0x59f111f1b605d019
1708.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1709.quad	0x923f82a4af194f9b,0xab1c5ed5da6d8118
1710.quad	0xd807aa98a3030242,0x12835b0145706fbe
1711.quad	0xd807aa98a3030242,0x12835b0145706fbe
1712.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1713.quad	0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
1714.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1715.quad	0x72be5d74f27b896f,0x80deb1fe3b1696b1
1716.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1717.quad	0x9bdc06a725c71235,0xc19bf174cf692694
1718.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1719.quad	0xe49b69c19ef14ad2,0xefbe4786384f25e3
1720.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1721.quad	0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
1722.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1723.quad	0x2de92c6f592b0275,0x4a7484aa6ea6e483
1724.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1725.quad	0x5cb0a9dcbd41fbd4,0x76f988da831153b5
1726.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1727.quad	0x983e5152ee66dfab,0xa831c66d2db43210
1728.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1729.quad	0xb00327c898fb213f,0xbf597fc7beef0ee4
1730.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1731.quad	0xc6e00bf33da88fc2,0xd5a79147930aa725
1732.quad	0x06ca6351e003826f,0x142929670a0e6e70
1733.quad	0x06ca6351e003826f,0x142929670a0e6e70
1734.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1735.quad	0x27b70a8546d22ffc,0x2e1b21385c26c926
1736.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1737.quad	0x4d2c6dfc5ac42aed,0x53380d139d95b3df
1738.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1739.quad	0x650a73548baf63de,0x766a0abb3c77b2a8
1740.quad	0x81c2c92e47edaee6,0x92722c851482353b
1741.quad	0x81c2c92e47edaee6,0x92722c851482353b
1742.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1743.quad	0xa2bfe8a14cf10364,0xa81a664bbc423001
1744.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1745.quad	0xc24b8b70d0f89791,0xc76c51a30654be30
1746.quad	0xd192e819d6ef5218,0xd69906245565a910
1747.quad	0xd192e819d6ef5218,0xd69906245565a910
1748.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1749.quad	0xf40e35855771202a,0x106aa07032bbd1b8
1750.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1751.quad	0x19a4c116b8d2d0c8,0x1e376c085141ab53
1752.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1753.quad	0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
1754.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1755.quad	0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
1756.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1757.quad	0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
1758.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1759.quad	0x748f82ee5defb2fc,0x78a5636f43172f60
1760.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1761.quad	0x84c87814a1f0ab72,0x8cc702081a6439ec
1762.quad	0x90befffa23631e28,0xa4506cebde82bde9
1763.quad	0x90befffa23631e28,0xa4506cebde82bde9
1764.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1765.quad	0xbef9a3f7b2c67915,0xc67178f2e372532b
1766.quad	0xca273eceea26619c,0xd186b8c721c0c207
1767.quad	0xca273eceea26619c,0xd186b8c721c0c207
1768.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1769.quad	0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
1770.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1771.quad	0x06f067aa72176fba,0x0a637dc5a2c898a6
1772.quad	0x113f9804bef90dae,0x1b710b35131c471b
1773.quad	0x113f9804bef90dae,0x1b710b35131c471b
1774.quad	0x28db77f523047d84,0x32caab7b40c72493
1775.quad	0x28db77f523047d84,0x32caab7b40c72493
1776.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1777.quad	0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
1778.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1779.quad	0x4cc5d4becb3e42b6,0x597f299cfc657e2a
1780.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1781.quad	0x5fcb6fab3ad6faec,0x6c44198c4a475817
1782
1783.quad	0x0001020304050607,0x08090a0b0c0d0e0f
1784.quad	0x0001020304050607,0x08090a0b0c0d0e0f
1785.byte	83,72,65,53,49,50,32,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
1786#endif
1787