1.machine	"any"
2.text
3
4.globl	sha256_block_ppc
5.align	6
6sha256_block_ppc:
7	stwu	1,-192(1)
8	mflr	0
9	slwi	5,5,6
10
11	stw	3,104(1)
12
13	stw	14,120(1)
14	stw	15,124(1)
15	stw	16,128(1)
16	stw	17,132(1)
17	stw	18,136(1)
18	stw	19,140(1)
19	stw	20,144(1)
20	stw	21,148(1)
21	stw	22,152(1)
22	stw	23,156(1)
23	stw	24,160(1)
24	stw	25,164(1)
25	stw	26,168(1)
26	stw	27,172(1)
27	stw	28,176(1)
28	stw	29,180(1)
29	stw	30,184(1)
30	stw	31,188(1)
31	stw	0,196(1)
32	lwz	8,0(3)
33	mr	31,4
34	lwz	9,4(3)
35	lwz	10,8(3)
36	lwz	11,12(3)
37	lwz	12,16(3)
38	lwz	6,20(3)
39	lwz	14,24(3)
40	lwz	15,28(3)
41	bl	LPICmeup
42LPICedup:
43	andi.	0,31,3
44	bne	Lunaligned
45Laligned:
46	add	5,31,5
47	stw	5,96(1)
48	stw	31,100(1)
49	bl	Lsha2_block_private
50	b	Ldone
51
52
53
54
55
56
57
58.align	4
59Lunaligned:
60	subfic	0,31,4096
61	andi.	0,0,4032
62	beq	Lcross_page
63	cmplw	0,5,0
64	ble	Laligned
65	subfc	5,0,5
66	add	0,31,0
67	stw	5,92(1)
68	stw	0,96(1)
69	stw	31,100(1)
70	bl	Lsha2_block_private
71
72	lwz	5,92(1)
73Lcross_page:
74	li	0,16
75	mtctr	0
76	addi	20,1,24
77Lmemcpy:
78	lbz	16,0(31)
79	lbz	17,1(31)
80	lbz	18,2(31)
81	lbz	19,3(31)
82	addi	31,31,4
83	stb	16,0(20)
84	stb	17,1(20)
85	stb	18,2(20)
86	stb	19,3(20)
87	addi	20,20,4
88	bc	16,0,Lmemcpy
89	stw	31,88(1)
90	addi	0,1,88
91	addi	31,1,24
92	stw	5,92(1)
93	stw	0,96(1)
94	stw	31,100(1)
95	bl	Lsha2_block_private
96	lwz	31,88(1)
97	lwz	5,92(1)
98	addic.	5,5,-64
99	bne	Lunaligned
100
101Ldone:
102	lwz	0,196(1)
103	lwz	14,120(1)
104	lwz	15,124(1)
105	lwz	16,128(1)
106	lwz	17,132(1)
107	lwz	18,136(1)
108	lwz	19,140(1)
109	lwz	20,144(1)
110	lwz	21,148(1)
111	lwz	22,152(1)
112	lwz	23,156(1)
113	lwz	24,160(1)
114	lwz	25,164(1)
115	lwz	26,168(1)
116	lwz	27,172(1)
117	lwz	28,176(1)
118	lwz	29,180(1)
119	lwz	30,184(1)
120	lwz	31,188(1)
121	mtlr	0
122	addi	1,1,192
123	blr
124.long	0
125.byte	0,12,4,1,0x80,18,3,0
126.long	0
127.align	4
128Lsha2_block_private:
129	lwz	0,0(7)
130	lwz	16,0(31)
131	rotrwi	3,12,6
132	rotrwi	4,12,11
133	and	5,6,12
134	xor	3,3,4
135	add	15,15,0
136	andc	0,14,12
137	rotrwi	4,4,14
138	or	5,5,0
139	add	15,15,16
140	xor	3,3,4
141	add	15,15,5
142	add	15,15,3
143
144	rotrwi	3,8,2
145	rotrwi	4,8,13
146	and	5,8,9
147	and	0,8,10
148	xor	3,3,4
149	rotrwi	4,4,9
150	xor	5,5,0
151	and	0,9,10
152	xor	3,3,4
153	add	11,11,15
154	xor	5,5,0
155	lwz	0,4(7)
156	add	15,15,3
157	add	15,15,5
158
159	lwz	17,4(31)
160	rotrwi	3,11,6
161	rotrwi	4,11,11
162	and	5,12,11
163	xor	3,3,4
164	add	14,14,0
165	andc	0,6,11
166	rotrwi	4,4,14
167	or	5,5,0
168	add	14,14,17
169	xor	3,3,4
170	add	14,14,5
171	add	14,14,3
172
173	rotrwi	3,15,2
174	rotrwi	4,15,13
175	and	5,15,8
176	and	0,15,9
177	xor	3,3,4
178	rotrwi	4,4,9
179	xor	5,5,0
180	and	0,8,9
181	xor	3,3,4
182	add	10,10,14
183	xor	5,5,0
184	lwz	0,8(7)
185	add	14,14,3
186	add	14,14,5
187
188	lwz	18,8(31)
189	rotrwi	3,10,6
190	rotrwi	4,10,11
191	and	5,11,10
192	xor	3,3,4
193	add	6,6,0
194	andc	0,12,10
195	rotrwi	4,4,14
196	or	5,5,0
197	add	6,6,18
198	xor	3,3,4
199	add	6,6,5
200	add	6,6,3
201
202	rotrwi	3,14,2
203	rotrwi	4,14,13
204	and	5,14,15
205	and	0,14,8
206	xor	3,3,4
207	rotrwi	4,4,9
208	xor	5,5,0
209	and	0,15,8
210	xor	3,3,4
211	add	9,9,6
212	xor	5,5,0
213	lwz	0,12(7)
214	add	6,6,3
215	add	6,6,5
216
217	lwz	19,12(31)
218	rotrwi	3,9,6
219	rotrwi	4,9,11
220	and	5,10,9
221	xor	3,3,4
222	add	12,12,0
223	andc	0,11,9
224	rotrwi	4,4,14
225	or	5,5,0
226	add	12,12,19
227	xor	3,3,4
228	add	12,12,5
229	add	12,12,3
230
231	rotrwi	3,6,2
232	rotrwi	4,6,13
233	and	5,6,14
234	and	0,6,15
235	xor	3,3,4
236	rotrwi	4,4,9
237	xor	5,5,0
238	and	0,14,15
239	xor	3,3,4
240	add	8,8,12
241	xor	5,5,0
242	lwz	0,16(7)
243	add	12,12,3
244	add	12,12,5
245
246	lwz	20,16(31)
247	rotrwi	3,8,6
248	rotrwi	4,8,11
249	and	5,9,8
250	xor	3,3,4
251	add	11,11,0
252	andc	0,10,8
253	rotrwi	4,4,14
254	or	5,5,0
255	add	11,11,20
256	xor	3,3,4
257	add	11,11,5
258	add	11,11,3
259
260	rotrwi	3,12,2
261	rotrwi	4,12,13
262	and	5,12,6
263	and	0,12,14
264	xor	3,3,4
265	rotrwi	4,4,9
266	xor	5,5,0
267	and	0,6,14
268	xor	3,3,4
269	add	15,15,11
270	xor	5,5,0
271	lwz	0,20(7)
272	add	11,11,3
273	add	11,11,5
274
275	lwz	21,20(31)
276	rotrwi	3,15,6
277	rotrwi	4,15,11
278	and	5,8,15
279	xor	3,3,4
280	add	10,10,0
281	andc	0,9,15
282	rotrwi	4,4,14
283	or	5,5,0
284	add	10,10,21
285	xor	3,3,4
286	add	10,10,5
287	add	10,10,3
288
289	rotrwi	3,11,2
290	rotrwi	4,11,13
291	and	5,11,12
292	and	0,11,6
293	xor	3,3,4
294	rotrwi	4,4,9
295	xor	5,5,0
296	and	0,12,6
297	xor	3,3,4
298	add	14,14,10
299	xor	5,5,0
300	lwz	0,24(7)
301	add	10,10,3
302	add	10,10,5
303
304	lwz	22,24(31)
305	rotrwi	3,14,6
306	rotrwi	4,14,11
307	and	5,15,14
308	xor	3,3,4
309	add	9,9,0
310	andc	0,8,14
311	rotrwi	4,4,14
312	or	5,5,0
313	add	9,9,22
314	xor	3,3,4
315	add	9,9,5
316	add	9,9,3
317
318	rotrwi	3,10,2
319	rotrwi	4,10,13
320	and	5,10,11
321	and	0,10,12
322	xor	3,3,4
323	rotrwi	4,4,9
324	xor	5,5,0
325	and	0,11,12
326	xor	3,3,4
327	add	6,6,9
328	xor	5,5,0
329	lwz	0,28(7)
330	add	9,9,3
331	add	9,9,5
332
333	lwz	23,28(31)
334	rotrwi	3,6,6
335	rotrwi	4,6,11
336	and	5,14,6
337	xor	3,3,4
338	add	8,8,0
339	andc	0,15,6
340	rotrwi	4,4,14
341	or	5,5,0
342	add	8,8,23
343	xor	3,3,4
344	add	8,8,5
345	add	8,8,3
346
347	rotrwi	3,9,2
348	rotrwi	4,9,13
349	and	5,9,10
350	and	0,9,11
351	xor	3,3,4
352	rotrwi	4,4,9
353	xor	5,5,0
354	and	0,10,11
355	xor	3,3,4
356	add	12,12,8
357	xor	5,5,0
358	lwz	0,32(7)
359	add	8,8,3
360	add	8,8,5
361
362	lwz	24,32(31)
363	rotrwi	3,12,6
364	rotrwi	4,12,11
365	and	5,6,12
366	xor	3,3,4
367	add	15,15,0
368	andc	0,14,12
369	rotrwi	4,4,14
370	or	5,5,0
371	add	15,15,24
372	xor	3,3,4
373	add	15,15,5
374	add	15,15,3
375
376	rotrwi	3,8,2
377	rotrwi	4,8,13
378	and	5,8,9
379	and	0,8,10
380	xor	3,3,4
381	rotrwi	4,4,9
382	xor	5,5,0
383	and	0,9,10
384	xor	3,3,4
385	add	11,11,15
386	xor	5,5,0
387	lwz	0,36(7)
388	add	15,15,3
389	add	15,15,5
390
391	lwz	25,36(31)
392	rotrwi	3,11,6
393	rotrwi	4,11,11
394	and	5,12,11
395	xor	3,3,4
396	add	14,14,0
397	andc	0,6,11
398	rotrwi	4,4,14
399	or	5,5,0
400	add	14,14,25
401	xor	3,3,4
402	add	14,14,5
403	add	14,14,3
404
405	rotrwi	3,15,2
406	rotrwi	4,15,13
407	and	5,15,8
408	and	0,15,9
409	xor	3,3,4
410	rotrwi	4,4,9
411	xor	5,5,0
412	and	0,8,9
413	xor	3,3,4
414	add	10,10,14
415	xor	5,5,0
416	lwz	0,40(7)
417	add	14,14,3
418	add	14,14,5
419
420	lwz	26,40(31)
421	rotrwi	3,10,6
422	rotrwi	4,10,11
423	and	5,11,10
424	xor	3,3,4
425	add	6,6,0
426	andc	0,12,10
427	rotrwi	4,4,14
428	or	5,5,0
429	add	6,6,26
430	xor	3,3,4
431	add	6,6,5
432	add	6,6,3
433
434	rotrwi	3,14,2
435	rotrwi	4,14,13
436	and	5,14,15
437	and	0,14,8
438	xor	3,3,4
439	rotrwi	4,4,9
440	xor	5,5,0
441	and	0,15,8
442	xor	3,3,4
443	add	9,9,6
444	xor	5,5,0
445	lwz	0,44(7)
446	add	6,6,3
447	add	6,6,5
448
449	lwz	27,44(31)
450	rotrwi	3,9,6
451	rotrwi	4,9,11
452	and	5,10,9
453	xor	3,3,4
454	add	12,12,0
455	andc	0,11,9
456	rotrwi	4,4,14
457	or	5,5,0
458	add	12,12,27
459	xor	3,3,4
460	add	12,12,5
461	add	12,12,3
462
463	rotrwi	3,6,2
464	rotrwi	4,6,13
465	and	5,6,14
466	and	0,6,15
467	xor	3,3,4
468	rotrwi	4,4,9
469	xor	5,5,0
470	and	0,14,15
471	xor	3,3,4
472	add	8,8,12
473	xor	5,5,0
474	lwz	0,48(7)
475	add	12,12,3
476	add	12,12,5
477
478	lwz	28,48(31)
479	rotrwi	3,8,6
480	rotrwi	4,8,11
481	and	5,9,8
482	xor	3,3,4
483	add	11,11,0
484	andc	0,10,8
485	rotrwi	4,4,14
486	or	5,5,0
487	add	11,11,28
488	xor	3,3,4
489	add	11,11,5
490	add	11,11,3
491
492	rotrwi	3,12,2
493	rotrwi	4,12,13
494	and	5,12,6
495	and	0,12,14
496	xor	3,3,4
497	rotrwi	4,4,9
498	xor	5,5,0
499	and	0,6,14
500	xor	3,3,4
501	add	15,15,11
502	xor	5,5,0
503	lwz	0,52(7)
504	add	11,11,3
505	add	11,11,5
506
507	lwz	29,52(31)
508	rotrwi	3,15,6
509	rotrwi	4,15,11
510	and	5,8,15
511	xor	3,3,4
512	add	10,10,0
513	andc	0,9,15
514	rotrwi	4,4,14
515	or	5,5,0
516	add	10,10,29
517	xor	3,3,4
518	add	10,10,5
519	add	10,10,3
520
521	rotrwi	3,11,2
522	rotrwi	4,11,13
523	and	5,11,12
524	and	0,11,6
525	xor	3,3,4
526	rotrwi	4,4,9
527	xor	5,5,0
528	and	0,12,6
529	xor	3,3,4
530	add	14,14,10
531	xor	5,5,0
532	lwz	0,56(7)
533	add	10,10,3
534	add	10,10,5
535
536	lwz	30,56(31)
537	rotrwi	3,14,6
538	rotrwi	4,14,11
539	and	5,15,14
540	xor	3,3,4
541	add	9,9,0
542	andc	0,8,14
543	rotrwi	4,4,14
544	or	5,5,0
545	add	9,9,30
546	xor	3,3,4
547	add	9,9,5
548	add	9,9,3
549
550	rotrwi	3,10,2
551	rotrwi	4,10,13
552	and	5,10,11
553	and	0,10,12
554	xor	3,3,4
555	rotrwi	4,4,9
556	xor	5,5,0
557	and	0,11,12
558	xor	3,3,4
559	add	6,6,9
560	xor	5,5,0
561	lwz	0,60(7)
562	add	9,9,3
563	add	9,9,5
564
565	lwz	31,60(31)
566	rotrwi	3,6,6
567	rotrwi	4,6,11
568	and	5,14,6
569	xor	3,3,4
570	add	8,8,0
571	andc	0,15,6
572	rotrwi	4,4,14
573	or	5,5,0
574	add	8,8,31
575	xor	3,3,4
576	add	8,8,5
577	add	8,8,3
578
579	rotrwi	3,9,2
580	rotrwi	4,9,13
581	and	5,9,10
582	and	0,9,11
583	xor	3,3,4
584	rotrwi	4,4,9
585	xor	5,5,0
586	and	0,10,11
587	xor	3,3,4
588	add	12,12,8
589	xor	5,5,0
590	add	8,8,3
591	add	8,8,5
592
593	li	5,3
594	mtctr	5
595.align	4
596Lrounds:
597	addi	7,7,64
598	rotrwi	3,17,7
599	rotrwi	4,17,18
600	rotrwi	5,30,17
601	rotrwi	0,30,19
602	xor	3,3,4
603	srwi	4,17,3
604	xor	5,5,0
605	srwi	0,30,10
606	add	16,16,25
607	xor	3,3,4
608	xor	5,5,0
609	lwz	0,0(7)
610	add	16,16,3
611	add	16,16,5
612	rotrwi	3,12,6
613	rotrwi	4,12,11
614	and	5,6,12
615	xor	3,3,4
616	add	15,15,0
617	andc	0,14,12
618	rotrwi	4,4,14
619	or	5,5,0
620	add	15,15,16
621	xor	3,3,4
622	add	15,15,5
623	add	15,15,3
624
625	rotrwi	3,8,2
626	rotrwi	4,8,13
627	and	5,8,9
628	and	0,8,10
629	xor	3,3,4
630	rotrwi	4,4,9
631	xor	5,5,0
632	and	0,9,10
633	xor	3,3,4
634	add	11,11,15
635	xor	5,5,0
636	add	15,15,3
637	add	15,15,5
638
639	rotrwi	3,18,7
640	rotrwi	4,18,18
641	rotrwi	5,31,17
642	rotrwi	0,31,19
643	xor	3,3,4
644	srwi	4,18,3
645	xor	5,5,0
646	srwi	0,31,10
647	add	17,17,26
648	xor	3,3,4
649	xor	5,5,0
650	lwz	0,4(7)
651	add	17,17,3
652	add	17,17,5
653	rotrwi	3,11,6
654	rotrwi	4,11,11
655	and	5,12,11
656	xor	3,3,4
657	add	14,14,0
658	andc	0,6,11
659	rotrwi	4,4,14
660	or	5,5,0
661	add	14,14,17
662	xor	3,3,4
663	add	14,14,5
664	add	14,14,3
665
666	rotrwi	3,15,2
667	rotrwi	4,15,13
668	and	5,15,8
669	and	0,15,9
670	xor	3,3,4
671	rotrwi	4,4,9
672	xor	5,5,0
673	and	0,8,9
674	xor	3,3,4
675	add	10,10,14
676	xor	5,5,0
677	add	14,14,3
678	add	14,14,5
679
680	rotrwi	3,19,7
681	rotrwi	4,19,18
682	rotrwi	5,16,17
683	rotrwi	0,16,19
684	xor	3,3,4
685	srwi	4,19,3
686	xor	5,5,0
687	srwi	0,16,10
688	add	18,18,27
689	xor	3,3,4
690	xor	5,5,0
691	lwz	0,8(7)
692	add	18,18,3
693	add	18,18,5
694	rotrwi	3,10,6
695	rotrwi	4,10,11
696	and	5,11,10
697	xor	3,3,4
698	add	6,6,0
699	andc	0,12,10
700	rotrwi	4,4,14
701	or	5,5,0
702	add	6,6,18
703	xor	3,3,4
704	add	6,6,5
705	add	6,6,3
706
707	rotrwi	3,14,2
708	rotrwi	4,14,13
709	and	5,14,15
710	and	0,14,8
711	xor	3,3,4
712	rotrwi	4,4,9
713	xor	5,5,0
714	and	0,15,8
715	xor	3,3,4
716	add	9,9,6
717	xor	5,5,0
718	add	6,6,3
719	add	6,6,5
720
721	rotrwi	3,20,7
722	rotrwi	4,20,18
723	rotrwi	5,17,17
724	rotrwi	0,17,19
725	xor	3,3,4
726	srwi	4,20,3
727	xor	5,5,0
728	srwi	0,17,10
729	add	19,19,28
730	xor	3,3,4
731	xor	5,5,0
732	lwz	0,12(7)
733	add	19,19,3
734	add	19,19,5
735	rotrwi	3,9,6
736	rotrwi	4,9,11
737	and	5,10,9
738	xor	3,3,4
739	add	12,12,0
740	andc	0,11,9
741	rotrwi	4,4,14
742	or	5,5,0
743	add	12,12,19
744	xor	3,3,4
745	add	12,12,5
746	add	12,12,3
747
748	rotrwi	3,6,2
749	rotrwi	4,6,13
750	and	5,6,14
751	and	0,6,15
752	xor	3,3,4
753	rotrwi	4,4,9
754	xor	5,5,0
755	and	0,14,15
756	xor	3,3,4
757	add	8,8,12
758	xor	5,5,0
759	add	12,12,3
760	add	12,12,5
761
762	rotrwi	3,21,7
763	rotrwi	4,21,18
764	rotrwi	5,18,17
765	rotrwi	0,18,19
766	xor	3,3,4
767	srwi	4,21,3
768	xor	5,5,0
769	srwi	0,18,10
770	add	20,20,29
771	xor	3,3,4
772	xor	5,5,0
773	lwz	0,16(7)
774	add	20,20,3
775	add	20,20,5
776	rotrwi	3,8,6
777	rotrwi	4,8,11
778	and	5,9,8
779	xor	3,3,4
780	add	11,11,0
781	andc	0,10,8
782	rotrwi	4,4,14
783	or	5,5,0
784	add	11,11,20
785	xor	3,3,4
786	add	11,11,5
787	add	11,11,3
788
789	rotrwi	3,12,2
790	rotrwi	4,12,13
791	and	5,12,6
792	and	0,12,14
793	xor	3,3,4
794	rotrwi	4,4,9
795	xor	5,5,0
796	and	0,6,14
797	xor	3,3,4
798	add	15,15,11
799	xor	5,5,0
800	add	11,11,3
801	add	11,11,5
802
803	rotrwi	3,22,7
804	rotrwi	4,22,18
805	rotrwi	5,19,17
806	rotrwi	0,19,19
807	xor	3,3,4
808	srwi	4,22,3
809	xor	5,5,0
810	srwi	0,19,10
811	add	21,21,30
812	xor	3,3,4
813	xor	5,5,0
814	lwz	0,20(7)
815	add	21,21,3
816	add	21,21,5
817	rotrwi	3,15,6
818	rotrwi	4,15,11
819	and	5,8,15
820	xor	3,3,4
821	add	10,10,0
822	andc	0,9,15
823	rotrwi	4,4,14
824	or	5,5,0
825	add	10,10,21
826	xor	3,3,4
827	add	10,10,5
828	add	10,10,3
829
830	rotrwi	3,11,2
831	rotrwi	4,11,13
832	and	5,11,12
833	and	0,11,6
834	xor	3,3,4
835	rotrwi	4,4,9
836	xor	5,5,0
837	and	0,12,6
838	xor	3,3,4
839	add	14,14,10
840	xor	5,5,0
841	add	10,10,3
842	add	10,10,5
843
844	rotrwi	3,23,7
845	rotrwi	4,23,18
846	rotrwi	5,20,17
847	rotrwi	0,20,19
848	xor	3,3,4
849	srwi	4,23,3
850	xor	5,5,0
851	srwi	0,20,10
852	add	22,22,31
853	xor	3,3,4
854	xor	5,5,0
855	lwz	0,24(7)
856	add	22,22,3
857	add	22,22,5
858	rotrwi	3,14,6
859	rotrwi	4,14,11
860	and	5,15,14
861	xor	3,3,4
862	add	9,9,0
863	andc	0,8,14
864	rotrwi	4,4,14
865	or	5,5,0
866	add	9,9,22
867	xor	3,3,4
868	add	9,9,5
869	add	9,9,3
870
871	rotrwi	3,10,2
872	rotrwi	4,10,13
873	and	5,10,11
874	and	0,10,12
875	xor	3,3,4
876	rotrwi	4,4,9
877	xor	5,5,0
878	and	0,11,12
879	xor	3,3,4
880	add	6,6,9
881	xor	5,5,0
882	add	9,9,3
883	add	9,9,5
884
885	rotrwi	3,24,7
886	rotrwi	4,24,18
887	rotrwi	5,21,17
888	rotrwi	0,21,19
889	xor	3,3,4
890	srwi	4,24,3
891	xor	5,5,0
892	srwi	0,21,10
893	add	23,23,16
894	xor	3,3,4
895	xor	5,5,0
896	lwz	0,28(7)
897	add	23,23,3
898	add	23,23,5
899	rotrwi	3,6,6
900	rotrwi	4,6,11
901	and	5,14,6
902	xor	3,3,4
903	add	8,8,0
904	andc	0,15,6
905	rotrwi	4,4,14
906	or	5,5,0
907	add	8,8,23
908	xor	3,3,4
909	add	8,8,5
910	add	8,8,3
911
912	rotrwi	3,9,2
913	rotrwi	4,9,13
914	and	5,9,10
915	and	0,9,11
916	xor	3,3,4
917	rotrwi	4,4,9
918	xor	5,5,0
919	and	0,10,11
920	xor	3,3,4
921	add	12,12,8
922	xor	5,5,0
923	add	8,8,3
924	add	8,8,5
925
926	rotrwi	3,25,7
927	rotrwi	4,25,18
928	rotrwi	5,22,17
929	rotrwi	0,22,19
930	xor	3,3,4
931	srwi	4,25,3
932	xor	5,5,0
933	srwi	0,22,10
934	add	24,24,17
935	xor	3,3,4
936	xor	5,5,0
937	lwz	0,32(7)
938	add	24,24,3
939	add	24,24,5
940	rotrwi	3,12,6
941	rotrwi	4,12,11
942	and	5,6,12
943	xor	3,3,4
944	add	15,15,0
945	andc	0,14,12
946	rotrwi	4,4,14
947	or	5,5,0
948	add	15,15,24
949	xor	3,3,4
950	add	15,15,5
951	add	15,15,3
952
953	rotrwi	3,8,2
954	rotrwi	4,8,13
955	and	5,8,9
956	and	0,8,10
957	xor	3,3,4
958	rotrwi	4,4,9
959	xor	5,5,0
960	and	0,9,10
961	xor	3,3,4
962	add	11,11,15
963	xor	5,5,0
964	add	15,15,3
965	add	15,15,5
966
967	rotrwi	3,26,7
968	rotrwi	4,26,18
969	rotrwi	5,23,17
970	rotrwi	0,23,19
971	xor	3,3,4
972	srwi	4,26,3
973	xor	5,5,0
974	srwi	0,23,10
975	add	25,25,18
976	xor	3,3,4
977	xor	5,5,0
978	lwz	0,36(7)
979	add	25,25,3
980	add	25,25,5
981	rotrwi	3,11,6
982	rotrwi	4,11,11
983	and	5,12,11
984	xor	3,3,4
985	add	14,14,0
986	andc	0,6,11
987	rotrwi	4,4,14
988	or	5,5,0
989	add	14,14,25
990	xor	3,3,4
991	add	14,14,5
992	add	14,14,3
993
994	rotrwi	3,15,2
995	rotrwi	4,15,13
996	and	5,15,8
997	and	0,15,9
998	xor	3,3,4
999	rotrwi	4,4,9
1000	xor	5,5,0
1001	and	0,8,9
1002	xor	3,3,4
1003	add	10,10,14
1004	xor	5,5,0
1005	add	14,14,3
1006	add	14,14,5
1007
1008	rotrwi	3,27,7
1009	rotrwi	4,27,18
1010	rotrwi	5,24,17
1011	rotrwi	0,24,19
1012	xor	3,3,4
1013	srwi	4,27,3
1014	xor	5,5,0
1015	srwi	0,24,10
1016	add	26,26,19
1017	xor	3,3,4
1018	xor	5,5,0
1019	lwz	0,40(7)
1020	add	26,26,3
1021	add	26,26,5
1022	rotrwi	3,10,6
1023	rotrwi	4,10,11
1024	and	5,11,10
1025	xor	3,3,4
1026	add	6,6,0
1027	andc	0,12,10
1028	rotrwi	4,4,14
1029	or	5,5,0
1030	add	6,6,26
1031	xor	3,3,4
1032	add	6,6,5
1033	add	6,6,3
1034
1035	rotrwi	3,14,2
1036	rotrwi	4,14,13
1037	and	5,14,15
1038	and	0,14,8
1039	xor	3,3,4
1040	rotrwi	4,4,9
1041	xor	5,5,0
1042	and	0,15,8
1043	xor	3,3,4
1044	add	9,9,6
1045	xor	5,5,0
1046	add	6,6,3
1047	add	6,6,5
1048
1049	rotrwi	3,28,7
1050	rotrwi	4,28,18
1051	rotrwi	5,25,17
1052	rotrwi	0,25,19
1053	xor	3,3,4
1054	srwi	4,28,3
1055	xor	5,5,0
1056	srwi	0,25,10
1057	add	27,27,20
1058	xor	3,3,4
1059	xor	5,5,0
1060	lwz	0,44(7)
1061	add	27,27,3
1062	add	27,27,5
1063	rotrwi	3,9,6
1064	rotrwi	4,9,11
1065	and	5,10,9
1066	xor	3,3,4
1067	add	12,12,0
1068	andc	0,11,9
1069	rotrwi	4,4,14
1070	or	5,5,0
1071	add	12,12,27
1072	xor	3,3,4
1073	add	12,12,5
1074	add	12,12,3
1075
1076	rotrwi	3,6,2
1077	rotrwi	4,6,13
1078	and	5,6,14
1079	and	0,6,15
1080	xor	3,3,4
1081	rotrwi	4,4,9
1082	xor	5,5,0
1083	and	0,14,15
1084	xor	3,3,4
1085	add	8,8,12
1086	xor	5,5,0
1087	add	12,12,3
1088	add	12,12,5
1089
1090	rotrwi	3,29,7
1091	rotrwi	4,29,18
1092	rotrwi	5,26,17
1093	rotrwi	0,26,19
1094	xor	3,3,4
1095	srwi	4,29,3
1096	xor	5,5,0
1097	srwi	0,26,10
1098	add	28,28,21
1099	xor	3,3,4
1100	xor	5,5,0
1101	lwz	0,48(7)
1102	add	28,28,3
1103	add	28,28,5
1104	rotrwi	3,8,6
1105	rotrwi	4,8,11
1106	and	5,9,8
1107	xor	3,3,4
1108	add	11,11,0
1109	andc	0,10,8
1110	rotrwi	4,4,14
1111	or	5,5,0
1112	add	11,11,28
1113	xor	3,3,4
1114	add	11,11,5
1115	add	11,11,3
1116
1117	rotrwi	3,12,2
1118	rotrwi	4,12,13
1119	and	5,12,6
1120	and	0,12,14
1121	xor	3,3,4
1122	rotrwi	4,4,9
1123	xor	5,5,0
1124	and	0,6,14
1125	xor	3,3,4
1126	add	15,15,11
1127	xor	5,5,0
1128	add	11,11,3
1129	add	11,11,5
1130
1131	rotrwi	3,30,7
1132	rotrwi	4,30,18
1133	rotrwi	5,27,17
1134	rotrwi	0,27,19
1135	xor	3,3,4
1136	srwi	4,30,3
1137	xor	5,5,0
1138	srwi	0,27,10
1139	add	29,29,22
1140	xor	3,3,4
1141	xor	5,5,0
1142	lwz	0,52(7)
1143	add	29,29,3
1144	add	29,29,5
1145	rotrwi	3,15,6
1146	rotrwi	4,15,11
1147	and	5,8,15
1148	xor	3,3,4
1149	add	10,10,0
1150	andc	0,9,15
1151	rotrwi	4,4,14
1152	or	5,5,0
1153	add	10,10,29
1154	xor	3,3,4
1155	add	10,10,5
1156	add	10,10,3
1157
1158	rotrwi	3,11,2
1159	rotrwi	4,11,13
1160	and	5,11,12
1161	and	0,11,6
1162	xor	3,3,4
1163	rotrwi	4,4,9
1164	xor	5,5,0
1165	and	0,12,6
1166	xor	3,3,4
1167	add	14,14,10
1168	xor	5,5,0
1169	add	10,10,3
1170	add	10,10,5
1171
1172	rotrwi	3,31,7
1173	rotrwi	4,31,18
1174	rotrwi	5,28,17
1175	rotrwi	0,28,19
1176	xor	3,3,4
1177	srwi	4,31,3
1178	xor	5,5,0
1179	srwi	0,28,10
1180	add	30,30,23
1181	xor	3,3,4
1182	xor	5,5,0
1183	lwz	0,56(7)
1184	add	30,30,3
1185	add	30,30,5
1186	rotrwi	3,14,6
1187	rotrwi	4,14,11
1188	and	5,15,14
1189	xor	3,3,4
1190	add	9,9,0
1191	andc	0,8,14
1192	rotrwi	4,4,14
1193	or	5,5,0
1194	add	9,9,30
1195	xor	3,3,4
1196	add	9,9,5
1197	add	9,9,3
1198
1199	rotrwi	3,10,2
1200	rotrwi	4,10,13
1201	and	5,10,11
1202	and	0,10,12
1203	xor	3,3,4
1204	rotrwi	4,4,9
1205	xor	5,5,0
1206	and	0,11,12
1207	xor	3,3,4
1208	add	6,6,9
1209	xor	5,5,0
1210	add	9,9,3
1211	add	9,9,5
1212
1213	rotrwi	3,16,7
1214	rotrwi	4,16,18
1215	rotrwi	5,29,17
1216	rotrwi	0,29,19
1217	xor	3,3,4
1218	srwi	4,16,3
1219	xor	5,5,0
1220	srwi	0,29,10
1221	add	31,31,24
1222	xor	3,3,4
1223	xor	5,5,0
1224	lwz	0,60(7)
1225	add	31,31,3
1226	add	31,31,5
1227	rotrwi	3,6,6
1228	rotrwi	4,6,11
1229	and	5,14,6
1230	xor	3,3,4
1231	add	8,8,0
1232	andc	0,15,6
1233	rotrwi	4,4,14
1234	or	5,5,0
1235	add	8,8,31
1236	xor	3,3,4
1237	add	8,8,5
1238	add	8,8,3
1239
1240	rotrwi	3,9,2
1241	rotrwi	4,9,13
1242	and	5,9,10
1243	and	0,9,11
1244	xor	3,3,4
1245	rotrwi	4,4,9
1246	xor	5,5,0
1247	and	0,10,11
1248	xor	3,3,4
1249	add	12,12,8
1250	xor	5,5,0
1251	add	8,8,3
1252	add	8,8,5
1253
1254	bc	16,0,Lrounds
1255
1256	lwz	3,104(1)
1257	lwz	31,100(1)
1258	lwz	5,96(1)
1259	subi	7,7,192
1260
1261	lwz	16,0(3)
1262	lwz	17,4(3)
1263	lwz	18,8(3)
1264	lwz	19,12(3)
1265	lwz	20,16(3)
1266	lwz	21,20(3)
1267	lwz	22,24(3)
1268	addi	31,31,64
1269	lwz	23,28(3)
1270	add	8,8,16
1271	add	9,9,17
1272	stw	31,100(1)
1273	add	10,10,18
1274	stw	8,0(3)
1275	add	11,11,19
1276	stw	9,4(3)
1277	add	12,12,20
1278	stw	10,8(3)
1279	add	6,6,21
1280	stw	11,12(3)
1281	add	14,14,22
1282	stw	12,16(3)
1283	add	15,15,23
1284	stw	6,20(3)
1285	stw	14,24(3)
1286	cmplw	0,31,5
1287	stw	15,28(3)
1288	bne	Lsha2_block_private
1289	blr
1290.long	0
1291.byte	0,12,0x14,0,0,0,0,0
1292
1293.align	6
1294LPICmeup:
1295	mflr	0
1296	bcl	20,31,$+4
1297	mflr	7
1298	addi	7,7,56
1299	mtlr	0
1300	blr
1301.long	0
1302.byte	0,12,0x14,0,0,0,0,0
1303.space	28
1304.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
1305.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
1306.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
1307.long	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
1308.long	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
1309.long	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
1310.long	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
1311.long	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
1312.long	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
1313.long	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
1314.long	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
1315.long	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
1316.long	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
1317.long	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
1318.long	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
1319.long	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
1320