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