summaryrefslogtreecommitdiff
path: root/asm/GameSpy/md5c.s
blob: ea906fef21831c301287d795d97df4ed653a9359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global MD5Init
MD5Init:
/* 80336CA4 00332904  3C E0 67 45 */	lis r7, 0x67452301@ha
/* 80336CA8 00332908  3C C0 EF CE */	lis r6, 0xEFCDAB89@ha
/* 80336CAC 0033290C  39 00 00 00 */	li r8, 0
/* 80336CB0 00332910  3C A0 98 BB */	lis r5, 0x98BADCFE@ha
/* 80336CB4 00332914  3C 80 10 32 */	lis r4, 0x10325476@ha
/* 80336CB8 00332918  38 E7 23 01 */	addi r7, r7, 0x67452301@l
/* 80336CBC 0033291C  38 C6 AB 89 */	addi r6, r6, 0xEFCDAB89@l
/* 80336CC0 00332920  38 A5 DC FE */	addi r5, r5, 0x98BADCFE@l
/* 80336CC4 00332924  38 04 54 76 */	addi r0, r4, 0x10325476@l
/* 80336CC8 00332928  91 03 00 14 */	stw r8, 0x14(r3)
/* 80336CCC 0033292C  91 03 00 10 */	stw r8, 0x10(r3)
/* 80336CD0 00332930  90 E3 00 00 */	stw r7, 0(r3)
/* 80336CD4 00332934  90 C3 00 04 */	stw r6, 4(r3)
/* 80336CD8 00332938  90 A3 00 08 */	stw r5, 8(r3)
/* 80336CDC 0033293C  90 03 00 0C */	stw r0, 0xc(r3)
/* 80336CE0 00332940  4E 80 00 20 */	blr

.global MD5Update
MD5Update:
/* 80336CE4 00332944  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80336CE8 00332948  7C 08 02 A6 */	mflr r0
/* 80336CEC 0033294C  54 A7 18 38 */	slwi r7, r5, 3
/* 80336CF0 00332950  90 01 00 24 */	stw r0, 0x24(r1)
/* 80336CF4 00332954  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80336CF8 00332958  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80336CFC 0033295C  7C BE 2B 78 */	mr r30, r5
/* 80336D00 00332960  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80336D04 00332964  7C 9D 23 78 */	mr r29, r4
/* 80336D08 00332968  93 81 00 10 */	stw r28, 0x10(r1)
/* 80336D0C 0033296C  7C 7C 1B 78 */	mr r28, r3
/* 80336D10 00332970  80 C3 00 10 */	lwz r6, 0x10(r3)
/* 80336D14 00332974  7C 06 3A 14 */	add r0, r6, r7
/* 80336D18 00332978  54 C6 EE BE */	rlwinm r6, r6, 0x1d, 0x1a, 0x1f
/* 80336D1C 0033297C  7C 00 38 40 */	cmplw r0, r7
/* 80336D20 00332980  90 03 00 10 */	stw r0, 0x10(r3)
/* 80336D24 00332984  40 80 00 10 */	bge lbl_80336D34
/* 80336D28 00332988  80 83 00 14 */	lwz r4, 0x14(r3)
/* 80336D2C 0033298C  38 04 00 01 */	addi r0, r4, 1
/* 80336D30 00332990  90 03 00 14 */	stw r0, 0x14(r3)
lbl_80336D34:
/* 80336D34 00332994  80 83 00 14 */	lwz r4, 0x14(r3)
/* 80336D38 00332998  54 A0 1F 7E */	srwi r0, r5, 0x1d
/* 80336D3C 0033299C  23 E6 00 40 */	subfic r31, r6, 0x40
/* 80336D40 003329A0  7C 04 02 14 */	add r0, r4, r0
/* 80336D44 003329A4  7C 05 F8 40 */	cmplw r5, r31
/* 80336D48 003329A8  90 03 00 14 */	stw r0, 0x14(r3)
/* 80336D4C 003329AC  41 80 00 4C */	blt lbl_80336D98
/* 80336D50 003329B0  7C 63 32 14 */	add r3, r3, r6
/* 80336D54 003329B4  7F A4 EB 78 */	mr r4, r29
/* 80336D58 003329B8  7F E5 FB 78 */	mr r5, r31
/* 80336D5C 003329BC  38 63 00 18 */	addi r3, r3, 0x18
/* 80336D60 003329C0  4B CC D2 A1 */	bl memcpy
/* 80336D64 003329C4  7F 83 E3 78 */	mr r3, r28
/* 80336D68 003329C8  38 9C 00 18 */	addi r4, r28, 0x18
/* 80336D6C 003329CC  48 00 01 E9 */	bl MD5Transform
/* 80336D70 003329D0  48 00 00 14 */	b lbl_80336D84
lbl_80336D74:
/* 80336D74 003329D4  7F 83 E3 78 */	mr r3, r28
/* 80336D78 003329D8  7C 9D FA 14 */	add r4, r29, r31
/* 80336D7C 003329DC  48 00 01 D9 */	bl MD5Transform
/* 80336D80 003329E0  3B FF 00 40 */	addi r31, r31, 0x40
lbl_80336D84:
/* 80336D84 003329E4  38 1F 00 3F */	addi r0, r31, 0x3f
/* 80336D88 003329E8  7C 00 F0 40 */	cmplw r0, r30
/* 80336D8C 003329EC  41 80 FF E8 */	blt lbl_80336D74
/* 80336D90 003329F0  38 C0 00 00 */	li r6, 0
/* 80336D94 003329F4  48 00 00 08 */	b lbl_80336D9C
lbl_80336D98:
/* 80336D98 003329F8  3B E0 00 00 */	li r31, 0
lbl_80336D9C:
/* 80336D9C 003329FC  7C 7C 32 14 */	add r3, r28, r6
/* 80336DA0 00332A00  7C 9D FA 14 */	add r4, r29, r31
/* 80336DA4 00332A04  38 63 00 18 */	addi r3, r3, 0x18
/* 80336DA8 00332A08  7C BF F0 50 */	subf r5, r31, r30
/* 80336DAC 00332A0C  4B CC D2 55 */	bl memcpy
/* 80336DB0 00332A10  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80336DB4 00332A14  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80336DB8 00332A18  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80336DBC 00332A1C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80336DC0 00332A20  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80336DC4 00332A24  7C 08 03 A6 */	mtlr r0
/* 80336DC8 00332A28  38 21 00 20 */	addi r1, r1, 0x20
/* 80336DCC 00332A2C  4E 80 00 20 */	blr

.global MD5Final
MD5Final:
/* 80336DD0 00332A30  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80336DD4 00332A34  7C 08 02 A6 */	mflr r0
/* 80336DD8 00332A38  3C A0 80 45 */	lis r5, lbl_8044A3E0@ha
/* 80336DDC 00332A3C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80336DE0 00332A40  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80336DE4 00332A44  7C 9F 23 78 */	mr r31, r4
/* 80336DE8 00332A48  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80336DEC 00332A4C  7C 7E 1B 78 */	mr r30, r3
/* 80336DF0 00332A50  7F E3 FB 78 */	mr r3, r31
/* 80336DF4 00332A54  80 04 00 10 */	lwz r0, 0x10(r4)
/* 80336DF8 00332A58  98 01 00 08 */	stb r0, 8(r1)
/* 80336DFC 00332A5C  80 04 00 10 */	lwz r0, 0x10(r4)
/* 80336E00 00332A60  54 00 C6 3E */	rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 80336E04 00332A64  98 01 00 09 */	stb r0, 9(r1)
/* 80336E08 00332A68  80 04 00 10 */	lwz r0, 0x10(r4)
/* 80336E0C 00332A6C  54 00 86 3E */	rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 80336E10 00332A70  98 01 00 0A */	stb r0, 0xa(r1)
/* 80336E14 00332A74  80 04 00 10 */	lwz r0, 0x10(r4)
/* 80336E18 00332A78  54 00 46 3E */	srwi r0, r0, 0x18
/* 80336E1C 00332A7C  98 01 00 0B */	stb r0, 0xb(r1)
/* 80336E20 00332A80  80 04 00 14 */	lwz r0, 0x14(r4)
/* 80336E24 00332A84  98 01 00 0C */	stb r0, 0xc(r1)
/* 80336E28 00332A88  80 04 00 14 */	lwz r0, 0x14(r4)
/* 80336E2C 00332A8C  54 00 C6 3E */	rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 80336E30 00332A90  98 01 00 0D */	stb r0, 0xd(r1)
/* 80336E34 00332A94  80 04 00 14 */	lwz r0, 0x14(r4)
/* 80336E38 00332A98  54 00 86 3E */	rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 80336E3C 00332A9C  98 01 00 0E */	stb r0, 0xe(r1)
/* 80336E40 00332AA0  80 04 00 14 */	lwz r0, 0x14(r4)
/* 80336E44 00332AA4  54 00 46 3E */	srwi r0, r0, 0x18
/* 80336E48 00332AA8  98 01 00 0F */	stb r0, 0xf(r1)
/* 80336E4C 00332AAC  80 04 00 10 */	lwz r0, 0x10(r4)
/* 80336E50 00332AB0  38 85 A3 E0 */	addi r4, r5, lbl_8044A3E0@l
/* 80336E54 00332AB4  54 00 EE BE */	rlwinm r0, r0, 0x1d, 0x1a, 0x1f
/* 80336E58 00332AB8  28 00 00 38 */	cmplwi r0, 0x38
/* 80336E5C 00332ABC  20 A0 00 78 */	subfic r5, r0, 0x78
/* 80336E60 00332AC0  40 80 00 08 */	bge lbl_80336E68
/* 80336E64 00332AC4  20 A0 00 38 */	subfic r5, r0, 0x38
lbl_80336E68:
/* 80336E68 00332AC8  4B FF FE 7D */	bl MD5Update
/* 80336E6C 00332ACC  7F E3 FB 78 */	mr r3, r31
/* 80336E70 00332AD0  38 81 00 08 */	addi r4, r1, 8
/* 80336E74 00332AD4  38 A0 00 08 */	li r5, 8
/* 80336E78 00332AD8  4B FF FE 6D */	bl MD5Update
/* 80336E7C 00332ADC  80 1F 00 00 */	lwz r0, 0(r31)
/* 80336E80 00332AE0  7F E3 FB 78 */	mr r3, r31
/* 80336E84 00332AE4  38 80 00 00 */	li r4, 0
/* 80336E88 00332AE8  38 A0 00 58 */	li r5, 0x58
/* 80336E8C 00332AEC  98 1E 00 00 */	stb r0, 0(r30)
/* 80336E90 00332AF0  80 1F 00 00 */	lwz r0, 0(r31)
/* 80336E94 00332AF4  54 00 C6 3E */	rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 80336E98 00332AF8  98 1E 00 01 */	stb r0, 1(r30)
/* 80336E9C 00332AFC  80 1F 00 00 */	lwz r0, 0(r31)
/* 80336EA0 00332B00  54 00 86 3E */	rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 80336EA4 00332B04  98 1E 00 02 */	stb r0, 2(r30)
/* 80336EA8 00332B08  80 1F 00 00 */	lwz r0, 0(r31)
/* 80336EAC 00332B0C  54 00 46 3E */	srwi r0, r0, 0x18
/* 80336EB0 00332B10  98 1E 00 03 */	stb r0, 3(r30)
/* 80336EB4 00332B14  80 1F 00 04 */	lwz r0, 4(r31)
/* 80336EB8 00332B18  98 1E 00 04 */	stb r0, 4(r30)
/* 80336EBC 00332B1C  80 1F 00 04 */	lwz r0, 4(r31)
/* 80336EC0 00332B20  54 00 C6 3E */	rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 80336EC4 00332B24  98 1E 00 05 */	stb r0, 5(r30)
/* 80336EC8 00332B28  80 1F 00 04 */	lwz r0, 4(r31)
/* 80336ECC 00332B2C  54 00 86 3E */	rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 80336ED0 00332B30  98 1E 00 06 */	stb r0, 6(r30)
/* 80336ED4 00332B34  80 1F 00 04 */	lwz r0, 4(r31)
/* 80336ED8 00332B38  54 00 46 3E */	srwi r0, r0, 0x18
/* 80336EDC 00332B3C  98 1E 00 07 */	stb r0, 7(r30)
/* 80336EE0 00332B40  80 1F 00 08 */	lwz r0, 8(r31)
/* 80336EE4 00332B44  98 1E 00 08 */	stb r0, 8(r30)
/* 80336EE8 00332B48  80 1F 00 08 */	lwz r0, 8(r31)
/* 80336EEC 00332B4C  54 00 C6 3E */	rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 80336EF0 00332B50  98 1E 00 09 */	stb r0, 9(r30)
/* 80336EF4 00332B54  80 1F 00 08 */	lwz r0, 8(r31)
/* 80336EF8 00332B58  54 00 86 3E */	rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 80336EFC 00332B5C  98 1E 00 0A */	stb r0, 0xa(r30)
/* 80336F00 00332B60  80 1F 00 08 */	lwz r0, 8(r31)
/* 80336F04 00332B64  54 00 46 3E */	srwi r0, r0, 0x18
/* 80336F08 00332B68  98 1E 00 0B */	stb r0, 0xb(r30)
/* 80336F0C 00332B6C  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80336F10 00332B70  98 1E 00 0C */	stb r0, 0xc(r30)
/* 80336F14 00332B74  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80336F18 00332B78  54 00 C6 3E */	rlwinm r0, r0, 0x18, 0x18, 0x1f
/* 80336F1C 00332B7C  98 1E 00 0D */	stb r0, 0xd(r30)
/* 80336F20 00332B80  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80336F24 00332B84  54 00 86 3E */	rlwinm r0, r0, 0x10, 0x18, 0x1f
/* 80336F28 00332B88  98 1E 00 0E */	stb r0, 0xe(r30)
/* 80336F2C 00332B8C  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80336F30 00332B90  54 00 46 3E */	srwi r0, r0, 0x18
/* 80336F34 00332B94  98 1E 00 0F */	stb r0, 0xf(r30)
/* 80336F38 00332B98  4B CC D1 CD */	bl memset
/* 80336F3C 00332B9C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80336F40 00332BA0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80336F44 00332BA4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80336F48 00332BA8  7C 08 03 A6 */	mtlr r0
/* 80336F4C 00332BAC  38 21 00 20 */	addi r1, r1, 0x20
/* 80336F50 00332BB0  4E 80 00 20 */	blr

.global MD5Transform
MD5Transform:
/* 80336F54 00332BB4  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 80336F58 00332BB8  7C 08 02 A6 */	mflr r0
/* 80336F5C 00332BBC  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 80336F60 00332BC0  39 61 00 A0 */	addi r11, r1, 0xa0
/* 80336F64 00332BC4  4B E9 01 91 */	bl __save_gpr
/* 80336F68 00332BC8  39 00 00 02 */	li r8, 2
/* 80336F6C 00332BCC  38 A1 00 08 */	addi r5, r1, 8
/* 80336F70 00332BD0  80 03 00 00 */	lwz r0, 0(r3)
/* 80336F74 00332BD4  38 E0 00 00 */	li r7, 0
/* 80336F78 00332BD8  81 63 00 04 */	lwz r11, 4(r3)
/* 80336F7C 00332BDC  39 40 00 00 */	li r10, 0
/* 80336F80 00332BE0  81 83 00 08 */	lwz r12, 8(r3)
/* 80336F84 00332BE4  38 C0 00 00 */	li r6, 0
/* 80336F88 00332BE8  81 23 00 0C */	lwz r9, 0xc(r3)
/* 80336F8C 00332BEC  7D 09 03 A6 */	mtctr r8
lbl_80336F90:
/* 80336F90 00332BF0  7D 04 32 14 */	add r8, r4, r6
/* 80336F94 00332BF4  7E A4 30 AE */	lbzx r21, r4, r6
/* 80336F98 00332BF8  89 C8 00 01 */	lbz r14, 1(r8)
/* 80336F9C 00332BFC  3A 87 00 01 */	addi r20, r7, 1
/* 80336FA0 00332C00  3A 67 00 02 */	addi r19, r7, 2
/* 80336FA4 00332C04  3A 47 00 03 */	addi r18, r7, 3
/* 80336FA8 00332C08  51 D5 44 2E */	rlwimi r21, r14, 8, 0x10, 0x17
/* 80336FAC 00332C0C  89 E8 00 02 */	lbz r15, 2(r8)
/* 80336FB0 00332C10  89 C8 00 03 */	lbz r14, 3(r8)
/* 80336FB4 00332C14  3A 27 00 04 */	addi r17, r7, 4
/* 80336FB8 00332C18  51 F5 82 1E */	rlwimi r21, r15, 0x10, 8, 0xf
/* 80336FBC 00332C1C  3A 07 00 05 */	addi r16, r7, 5
/* 80336FC0 00332C20  51 D5 C0 0E */	rlwimi r21, r14, 0x18, 0, 7
/* 80336FC4 00332C24  39 E7 00 06 */	addi r15, r7, 6
/* 80336FC8 00332C28  7E A5 51 2E */	stwx r21, r5, r10
/* 80336FCC 00332C2C  39 C7 00 07 */	addi r14, r7, 7
/* 80336FD0 00332C30  56 94 10 3A */	slwi r20, r20, 2
/* 80336FD4 00332C34  56 73 10 3A */	slwi r19, r19, 2
/* 80336FD8 00332C38  8A C8 00 05 */	lbz r22, 5(r8)
/* 80336FDC 00332C3C  56 52 10 3A */	slwi r18, r18, 2
/* 80336FE0 00332C40  8A A8 00 04 */	lbz r21, 4(r8)
/* 80336FE4 00332C44  56 31 10 3A */	slwi r17, r17, 2
/* 80336FE8 00332C48  52 D5 44 2E */	rlwimi r21, r22, 8, 0x10, 0x17
/* 80336FEC 00332C4C  8A E8 00 06 */	lbz r23, 6(r8)
/* 80336FF0 00332C50  8A C8 00 07 */	lbz r22, 7(r8)
/* 80336FF4 00332C54  56 10 10 3A */	slwi r16, r16, 2
/* 80336FF8 00332C58  52 F5 82 1E */	rlwimi r21, r23, 0x10, 8, 0xf
/* 80336FFC 00332C5C  55 EF 10 3A */	slwi r15, r15, 2
/* 80337000 00332C60  52 D5 C0 0E */	rlwimi r21, r22, 0x18, 0, 7
/* 80337004 00332C64  55 CE 10 3A */	slwi r14, r14, 2
/* 80337008 00332C68  7E A5 A1 2E */	stwx r21, r5, r20
/* 8033700C 00332C6C  38 E7 00 08 */	addi r7, r7, 8
/* 80337010 00332C70  39 4A 00 20 */	addi r10, r10, 0x20
/* 80337014 00332C74  38 C6 00 20 */	addi r6, r6, 0x20
/* 80337018 00332C78  8A A8 00 09 */	lbz r21, 9(r8)
/* 8033701C 00332C7C  8A 88 00 08 */	lbz r20, 8(r8)
/* 80337020 00332C80  52 B4 44 2E */	rlwimi r20, r21, 8, 0x10, 0x17
/* 80337024 00332C84  8A C8 00 0A */	lbz r22, 0xa(r8)
/* 80337028 00332C88  8A A8 00 0B */	lbz r21, 0xb(r8)
/* 8033702C 00332C8C  52 D4 82 1E */	rlwimi r20, r22, 0x10, 8, 0xf
/* 80337030 00332C90  52 B4 C0 0E */	rlwimi r20, r21, 0x18, 0, 7
/* 80337034 00332C94  7E 85 99 2E */	stwx r20, r5, r19
/* 80337038 00332C98  8A 88 00 0D */	lbz r20, 0xd(r8)
/* 8033703C 00332C9C  8A 68 00 0C */	lbz r19, 0xc(r8)
/* 80337040 00332CA0  52 93 44 2E */	rlwimi r19, r20, 8, 0x10, 0x17
/* 80337044 00332CA4  8A A8 00 0E */	lbz r21, 0xe(r8)
/* 80337048 00332CA8  8A 88 00 0F */	lbz r20, 0xf(r8)
/* 8033704C 00332CAC  52 B3 82 1E */	rlwimi r19, r21, 0x10, 8, 0xf
/* 80337050 00332CB0  52 93 C0 0E */	rlwimi r19, r20, 0x18, 0, 7
/* 80337054 00332CB4  7E 65 91 2E */	stwx r19, r5, r18
/* 80337058 00332CB8  8A 68 00 11 */	lbz r19, 0x11(r8)
/* 8033705C 00332CBC  8A 48 00 10 */	lbz r18, 0x10(r8)
/* 80337060 00332CC0  52 72 44 2E */	rlwimi r18, r19, 8, 0x10, 0x17
/* 80337064 00332CC4  8A 88 00 12 */	lbz r20, 0x12(r8)
/* 80337068 00332CC8  8A 68 00 13 */	lbz r19, 0x13(r8)
/* 8033706C 00332CCC  52 92 82 1E */	rlwimi r18, r20, 0x10, 8, 0xf
/* 80337070 00332CD0  52 72 C0 0E */	rlwimi r18, r19, 0x18, 0, 7
/* 80337074 00332CD4  7E 45 89 2E */	stwx r18, r5, r17
/* 80337078 00332CD8  8A 48 00 15 */	lbz r18, 0x15(r8)
/* 8033707C 00332CDC  8A 28 00 14 */	lbz r17, 0x14(r8)
/* 80337080 00332CE0  52 51 44 2E */	rlwimi r17, r18, 8, 0x10, 0x17
/* 80337084 00332CE4  8A 68 00 16 */	lbz r19, 0x16(r8)
/* 80337088 00332CE8  8A 48 00 17 */	lbz r18, 0x17(r8)
/* 8033708C 00332CEC  52 71 82 1E */	rlwimi r17, r19, 0x10, 8, 0xf
/* 80337090 00332CF0  52 51 C0 0E */	rlwimi r17, r18, 0x18, 0, 7
/* 80337094 00332CF4  7E 25 81 2E */	stwx r17, r5, r16
/* 80337098 00332CF8  8A 28 00 19 */	lbz r17, 0x19(r8)
/* 8033709C 00332CFC  8A 08 00 18 */	lbz r16, 0x18(r8)
/* 803370A0 00332D00  52 30 44 2E */	rlwimi r16, r17, 8, 0x10, 0x17
/* 803370A4 00332D04  8A 48 00 1A */	lbz r18, 0x1a(r8)
/* 803370A8 00332D08  8A 28 00 1B */	lbz r17, 0x1b(r8)
/* 803370AC 00332D0C  52 50 82 1E */	rlwimi r16, r18, 0x10, 8, 0xf
/* 803370B0 00332D10  52 30 C0 0E */	rlwimi r16, r17, 0x18, 0, 7
/* 803370B4 00332D14  7E 05 79 2E */	stwx r16, r5, r15
/* 803370B8 00332D18  8A 28 00 1E */	lbz r17, 0x1e(r8)
/* 803370BC 00332D1C  8A 08 00 1D */	lbz r16, 0x1d(r8)
/* 803370C0 00332D20  89 E8 00 1C */	lbz r15, 0x1c(r8)
/* 803370C4 00332D24  52 0F 44 2E */	rlwimi r15, r16, 8, 0x10, 0x17
/* 803370C8 00332D28  89 08 00 1F */	lbz r8, 0x1f(r8)
/* 803370CC 00332D2C  52 2F 82 1E */	rlwimi r15, r17, 0x10, 8, 0xf
/* 803370D0 00332D30  51 0F C0 0E */	rlwimi r15, r8, 0x18, 0, 7
/* 803370D4 00332D34  7D E5 71 2E */	stwx r15, r5, r14
/* 803370D8 00332D38  42 00 FE B8 */	bdnz lbl_80336F90
/* 803370DC 00332D3C  83 21 00 08 */	lwz r25, 8(r1)
/* 803370E0 00332D40  7D 66 60 38 */	and r6, r11, r12
/* 803370E4 00332D44  83 81 00 10 */	lwz r28, 0x10(r1)
/* 803370E8 00332D48  7D 25 58 78 */	andc r5, r9, r11
/* 803370EC 00332D4C  3C F9 D7 6B */	addis r7, r25, 0xd76b
/* 803370F0 00332D50  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 803370F4 00332D54  7C E7 02 14 */	add r7, r7, r0
/* 803370F8 00332D58  7C C0 2B 78 */	or r0, r6, r5
/* 803370FC 00332D5C  7C A7 02 14 */	add r5, r7, r0
/* 80337100 00332D60  80 81 00 0C */	lwz r4, 0xc(r1)
/* 80337104 00332D64  38 05 A4 78 */	addi r0, r5, -23432
/* 80337108 00332D68  3E 1C 24 20 */	addis r16, r28, 0x2420
/* 8033710C 00332D6C  54 00 38 3E */	rotlwi r0, r0, 7
/* 80337110 00332D70  3C E4 E8 C8 */	addis r7, r4, 0xe8c8
/* 80337114 00332D74  7C 00 5A 14 */	add r0, r0, r11
/* 80337118 00332D78  81 41 00 18 */	lwz r10, 0x18(r1)
/* 8033711C 00332D7C  7C 06 58 38 */	and r6, r0, r11
/* 80337120 00332D80  3D DF C1 BE */	addis r14, r31, 0xc1be
/* 80337124 00332D84  7D 85 00 78 */	andc r5, r12, r0
/* 80337128 00332D88  7C E7 4A 14 */	add r7, r7, r9
/* 8033712C 00332D8C  7C C5 2B 78 */	or r5, r6, r5
/* 80337130 00332D90  3D 0A F5 7C */	addis r8, r10, 0xf57c
/* 80337134 00332D94  7C A7 2A 14 */	add r5, r7, r5
/* 80337138 00332D98  80 E1 00 1C */	lwz r7, 0x1c(r1)
/* 8033713C 00332D9C  39 25 B7 56 */	addi r9, r5, -18602
/* 80337140 00332DA0  7E 10 62 14 */	add r16, r16, r12
/* 80337144 00332DA4  55 29 60 3E */	rotlwi r9, r9, 0xc
/* 80337148 00332DA8  7E 4E 5A 14 */	add r18, r14, r11
/* 8033714C 00332DAC  7D 29 02 14 */	add r9, r9, r0
/* 80337150 00332DB0  83 61 00 24 */	lwz r27, 0x24(r1)
/* 80337154 00332DB4  7D 2F 00 38 */	and r15, r9, r0
/* 80337158 00332DB8  7E 28 02 14 */	add r17, r8, r0
/* 8033715C 00332DBC  7D 6C 48 78 */	andc r12, r11, r9
/* 80337160 00332DC0  80 A1 00 20 */	lwz r5, 0x20(r1)
/* 80337164 00332DC4  7D EC 63 78 */	or r12, r15, r12
/* 80337168 00332DC8  3C C7 47 88 */	addis r6, r7, 0x4788
/* 8033716C 00332DCC  7D 70 62 14 */	add r11, r16, r12
/* 80337170 00332DD0  3D DB FD 47 */	addis r14, r27, 0xfd47
/* 80337174 00332DD4  39 8B 70 DB */	addi r12, r11, 0x70db
/* 80337178 00332DD8  7E 06 4A 14 */	add r16, r6, r9
/* 8033717C 00332DDC  55 88 88 3E */	rotlwi r8, r12, 0x11
/* 80337180 00332DE0  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80337184 00332DE4  7D 08 4A 14 */	add r8, r8, r9
/* 80337188 00332DE8  3C C5 A8 30 */	addis r6, r5, 0xa830
/* 8033718C 00332DEC  7D 0B 48 38 */	and r11, r8, r9
/* 80337190 00332DF0  3D 9E 69 81 */	addis r12, r30, 0x6981
/* 80337194 00332DF4  7C 00 40 78 */	andc r0, r0, r8
/* 80337198 00332DF8  7D E6 42 14 */	add r15, r6, r8
/* 8033719C 00332DFC  7D 60 03 78 */	or r0, r11, r0
/* 803371A0 00332E00  7C D2 02 14 */	add r6, r18, r0
/* 803371A4 00332E04  39 66 CE EE */	addi r11, r6, -12562
/* 803371A8 00332E08  55 66 B0 3E */	rotlwi r6, r11, 0x16
/* 803371AC 00332E0C  7C C6 42 14 */	add r6, r6, r8
/* 803371B0 00332E10  7C CB 40 38 */	and r11, r6, r8
/* 803371B4 00332E14  7D 20 30 78 */	andc r0, r9, r6
/* 803371B8 00332E18  7D CE 32 14 */	add r14, r14, r6
/* 803371BC 00332E1C  7D 60 03 78 */	or r0, r11, r0
/* 803371C0 00332E20  7D 31 02 14 */	add r9, r17, r0
/* 803371C4 00332E24  38 09 0F AF */	addi r0, r9, 0xfaf
/* 803371C8 00332E28  54 00 38 3E */	rotlwi r0, r0, 7
/* 803371CC 00332E2C  7C 00 32 14 */	add r0, r0, r6
/* 803371D0 00332E30  7C 09 30 38 */	and r9, r0, r6
/* 803371D4 00332E34  7D 08 00 78 */	andc r8, r8, r0
/* 803371D8 00332E38  7D 6C 02 14 */	add r11, r12, r0
/* 803371DC 00332E3C  7D 28 43 78 */	or r8, r9, r8
/* 803371E0 00332E40  7D 10 42 14 */	add r8, r16, r8
/* 803371E4 00332E44  39 28 C6 2A */	addi r9, r8, -14806
/* 803371E8 00332E48  55 29 60 3E */	rotlwi r9, r9, 0xc
/* 803371EC 00332E4C  7D 29 02 14 */	add r9, r9, r0
/* 803371F0 00332E50  7D 28 00 38 */	and r8, r9, r0
/* 803371F4 00332E54  7C C6 48 78 */	andc r6, r6, r9
/* 803371F8 00332E58  7D 06 33 78 */	or r6, r8, r6
/* 803371FC 00332E5C  7C CF 32 14 */	add r6, r15, r6
/* 80337200 00332E60  39 06 46 13 */	addi r8, r6, 0x4613
/* 80337204 00332E64  55 0F 88 3E */	rotlwi r15, r8, 0x11
/* 80337208 00332E68  7D EF 4A 14 */	add r15, r15, r9
/* 8033720C 00332E6C  7D E6 48 38 */	and r6, r15, r9
/* 80337210 00332E70  7C 00 78 78 */	andc r0, r0, r15
/* 80337214 00332E74  7C C0 03 78 */	or r0, r6, r0
/* 80337218 00332E78  7C CE 02 14 */	add r6, r14, r0
/* 8033721C 00332E7C  38 C6 95 01 */	addi r6, r6, -27391
/* 80337220 00332E80  54 CE B0 3E */	rotlwi r14, r6, 0x16
/* 80337224 00332E84  7D CE 7A 14 */	add r14, r14, r15
/* 80337228 00332E88  7D C6 78 38 */	and r6, r14, r15
/* 8033722C 00332E8C  7D 20 70 78 */	andc r0, r9, r14
/* 80337230 00332E90  7C C0 03 78 */	or r0, r6, r0
/* 80337234 00332E94  7C CB 02 14 */	add r6, r11, r0
/* 80337238 00332E98  38 06 98 D8 */	addi r0, r6, -26408
/* 8033723C 00332E9C  54 12 38 3E */	rotlwi r18, r0, 7
/* 80337240 00332EA0  81 61 00 2C */	lwz r11, 0x2c(r1)
/* 80337244 00332EA4  7E 52 72 14 */	add r18, r18, r14
/* 80337248 00332EA8  80 C1 00 34 */	lwz r6, 0x34(r1)
/* 8033724C 00332EAC  3D 8B 8B 45 */	addis r12, r11, 0x8b45
/* 80337250 00332EB0  83 A1 00 3C */	lwz r29, 0x3c(r1)
/* 80337254 00332EB4  7E 50 70 38 */	and r16, r18, r14
/* 80337258 00332EB8  7D E0 90 78 */	andc r0, r15, r18
/* 8033725C 00332EBC  7D 2C 4A 14 */	add r9, r12, r9
/* 80337260 00332EC0  81 01 00 30 */	lwz r8, 0x30(r1)
/* 80337264 00332EC4  7E 00 03 78 */	or r0, r16, r0
/* 80337268 00332EC8  83 41 00 38 */	lwz r26, 0x38(r1)
/* 8033726C 00332ECC  7D 29 02 14 */	add r9, r9, r0
/* 80337270 00332ED0  3D 88 FF FF */	addis r12, r8, 0xffff
/* 80337274 00332ED4  39 29 F7 AF */	addi r9, r9, -2129
/* 80337278 00332ED8  3C 1A 6B 90 */	addis r0, r26, 0x6b90
/* 8033727C 00332EDC  55 30 60 3E */	rotlwi r16, r9, 0xc
/* 80337280 00332EE0  7E 8C 7A 14 */	add r20, r12, r15
/* 80337284 00332EE4  7E 10 92 14 */	add r16, r16, r18
/* 80337288 00332EE8  3E 3D FD 98 */	addis r17, r29, 0xfd98
/* 8033728C 00332EEC  7E 0F 90 38 */	and r15, r16, r18
/* 80337290 00332EF0  3E 66 89 5D */	addis r19, r6, 0x895d
/* 80337294 00332EF4  7D C9 80 78 */	andc r9, r14, r16
/* 80337298 00332EF8  7C 00 92 14 */	add r0, r0, r18
/* 8033729C 00332EFC  7D EF 4B 78 */	or r15, r15, r9
/* 803372A0 00332F00  7D D3 72 14 */	add r14, r19, r14
/* 803372A4 00332F04  7D F4 7A 14 */	add r15, r20, r15
/* 803372A8 00332F08  81 21 00 44 */	lwz r9, 0x44(r1)
/* 803372AC 00332F0C  39 EF 5B B1 */	addi r15, r15, 0x5bb1
/* 803372B0 00332F10  7E B1 82 14 */	add r21, r17, r16
/* 803372B4 00332F14  55 EF 88 3E */	rotlwi r15, r15, 0x11
/* 803372B8 00332F18  81 81 00 40 */	lwz r12, 0x40(r1)
/* 803372BC 00332F1C  7D EF 82 14 */	add r15, r15, r16
/* 803372C0 00332F20  3E 69 49 B4 */	addis r19, r9, 0x49b4
/* 803372C4 00332F24  7D F6 80 38 */	and r22, r15, r16
/* 803372C8 00332F28  3E 2C A6 79 */	addis r17, r12, 0xa679
/* 803372CC 00332F2C  7E 52 78 78 */	andc r18, r18, r15
/* 803372D0 00332F30  7E D2 93 78 */	or r18, r22, r18
/* 803372D4 00332F34  7E 91 7A 14 */	add r20, r17, r15
/* 803372D8 00332F38  7D CE 92 14 */	add r14, r14, r18
/* 803372DC 00332F3C  3E 24 F6 1E */	addis r17, r4, 0xf61e
/* 803372E0 00332F40  39 CE D7 BE */	addi r14, r14, -10306
/* 803372E4 00332F44  55 CE B0 3E */	rotlwi r14, r14, 0x16
/* 803372E8 00332F48  7D CE 7A 14 */	add r14, r14, r15
/* 803372EC 00332F4C  7D D2 78 38 */	and r18, r14, r15
/* 803372F0 00332F50  7E 10 70 78 */	andc r16, r16, r14
/* 803372F4 00332F54  7E 73 72 14 */	add r19, r19, r14
/* 803372F8 00332F58  7E 50 83 78 */	or r16, r18, r16
/* 803372FC 00332F5C  7E 00 82 14 */	add r16, r0, r16
/* 80337300 00332F60  3A 50 11 22 */	addi r18, r16, 0x1122
/* 80337304 00332F64  56 40 38 3E */	rotlwi r0, r18, 7
/* 80337308 00332F68  7C 00 72 14 */	add r0, r0, r14
/* 8033730C 00332F6C  7C 10 70 38 */	and r16, r0, r14
/* 80337310 00332F70  7D EF 00 78 */	andc r15, r15, r0
/* 80337314 00332F74  7E 51 02 14 */	add r18, r17, r0
/* 80337318 00332F78  7E 0F 7B 78 */	or r15, r16, r15
/* 8033731C 00332F7C  7D F5 7A 14 */	add r15, r21, r15
/* 80337320 00332F80  3A 0F 71 93 */	addi r16, r15, 0x7193
/* 80337324 00332F84  56 11 60 3E */	rotlwi r17, r16, 0xc
/* 80337328 00332F88  7E 31 02 14 */	add r17, r17, r0
/* 8033732C 00332F8C  7E 35 88 F8 */	nor r21, r17, r17
/* 80337330 00332F90  7E 2F 00 38 */	and r15, r17, r0
/* 80337334 00332F94  7E AE 70 38 */	and r14, r21, r14
/* 80337338 00332F98  7D EE 73 78 */	or r14, r15, r14
/* 8033733C 00332F9C  7D D4 72 14 */	add r14, r20, r14
/* 80337340 00332FA0  39 EE 43 8E */	addi r15, r14, 0x438e
/* 80337344 00332FA4  55 F0 88 3E */	rotlwi r16, r15, 0x11
/* 80337348 00332FA8  7E 10 8A 14 */	add r16, r16, r17
/* 8033734C 00332FAC  7E 0F 80 F8 */	nor r15, r16, r16
/* 80337350 00332FB0  7E 0E 88 38 */	and r14, r16, r17
/* 80337354 00332FB4  7E 14 A8 38 */	and r20, r16, r21
/* 80337358 00332FB8  7D E0 00 38 */	and r0, r15, r0
/* 8033735C 00332FBC  7D C0 03 78 */	or r0, r14, r0
/* 80337360 00332FC0  7D D3 02 14 */	add r14, r19, r0
/* 80337364 00332FC4  39 CE 08 21 */	addi r14, r14, 0x821
/* 80337368 00332FC8  55 D6 B0 3E */	rotlwi r22, r14, 0x16
/* 8033736C 00332FCC  7E D6 82 14 */	add r22, r22, r16
/* 80337370 00332FD0  7E C0 88 38 */	and r0, r22, r17
/* 80337374 00332FD4  7C 00 A3 78 */	or r0, r0, r20
/* 80337378 00332FD8  7D D2 02 14 */	add r14, r18, r0
/* 8033737C 00332FDC  38 0E 25 62 */	addi r0, r14, 0x2562
/* 80337380 00332FE0  54 14 28 3E */	rotlwi r20, r0, 5
/* 80337384 00332FE4  7E 94 B2 14 */	add r20, r20, r22
/* 80337388 00332FE8  3E 45 C0 41 */	addis r18, r5, 0xc041
/* 8033738C 00332FEC  7E C0 78 38 */	and r0, r22, r15
/* 80337390 00332FF0  7E 93 80 38 */	and r19, r20, r16
/* 80337394 00332FF4  3D C6 26 5E */	addis r14, r6, 0x265e
/* 80337398 00332FF8  7D F2 8A 14 */	add r15, r18, r17
/* 8033739C 00332FFC  3E 59 E9 B7 */	addis r18, r25, 0xe9b7
/* 803373A0 00333000  7E 60 03 78 */	or r0, r19, r0
/* 803373A4 00333004  3E 67 D6 2F */	addis r19, r7, 0xd62f
/* 803373A8 00333008  7D EF 02 14 */	add r15, r15, r0
/* 803373AC 0033300C  7E 52 B2 14 */	add r18, r18, r22
/* 803373B0 00333010  3A 2F B3 40 */	addi r17, r15, -19648
/* 803373B4 00333014  7E 80 B0 78 */	andc r0, r20, r22
/* 803373B8 00333018  7D EE 82 14 */	add r15, r14, r16
/* 803373BC 0033301C  3E 08 02 44 */	addis r16, r8, 0x244
/* 803373C0 00333020  56 2E 48 3E */	rotlwi r14, r17, 9
/* 803373C4 00333024  7E B3 A2 14 */	add r21, r19, r20
/* 803373C8 00333028  7D CE A2 14 */	add r14, r14, r20
/* 803373CC 0033302C  3E EC C3 37 */	addis r23, r12, 0xc337
/* 803373D0 00333030  7D D1 B0 38 */	and r17, r14, r22
/* 803373D4 00333034  7E 20 03 78 */	or r0, r17, r0
/* 803373D8 00333038  7E 70 72 14 */	add r19, r16, r14
/* 803373DC 0033303C  7D EF 02 14 */	add r15, r15, r0
/* 803373E0 00333040  7D D6 A0 78 */	andc r22, r14, r20
/* 803373E4 00333044  3A 0F 5A 51 */	addi r16, r15, 0x5a51
/* 803373E8 00333048  3E 2A E7 D4 */	addis r17, r10, 0xe7d4
/* 803373EC 0033304C  56 00 70 3E */	rotlwi r0, r16, 0xe
/* 803373F0 00333050  3D E9 D8 A2 */	addis r15, r9, 0xd8a2
/* 803373F4 00333054  7C 00 72 14 */	add r0, r0, r14
/* 803373F8 00333058  3E 0B 21 E2 */	addis r16, r11, 0x21e2
/* 803373FC 0033305C  7C 14 A0 38 */	and r20, r0, r20
/* 80337400 00333060  7E 96 B3 78 */	or r22, r20, r22
/* 80337404 00333064  7E D2 B2 14 */	add r22, r18, r22
/* 80337408 00333068  7E 4F 02 14 */	add r18, r15, r0
/* 8033740C 0033306C  3A D6 C7 AA */	addi r22, r22, -14422
/* 80337410 00333070  7C 14 70 78 */	andc r20, r0, r14
/* 80337414 00333074  56 D6 A0 3E */	rotlwi r22, r22, 0x14
/* 80337418 00333078  3D FF F4 D5 */	addis r15, r31, 0xf4d5
/* 8033741C 0033307C  7E D6 02 14 */	add r22, r22, r0
/* 80337420 00333080  7E CE 70 38 */	and r14, r22, r14
/* 80337424 00333084  7D D4 A3 78 */	or r20, r14, r20
/* 80337428 00333088  7E 31 B2 14 */	add r17, r17, r22
/* 8033742C 0033308C  7E 95 A2 14 */	add r20, r21, r20
/* 80337430 00333090  7E CE 00 78 */	andc r14, r22, r0
/* 80337434 00333094  3A 94 10 5D */	addi r20, r20, 0x105d
/* 80337438 00333098  56 94 28 3E */	rotlwi r20, r20, 5
/* 8033743C 0033309C  7E 94 B2 14 */	add r20, r20, r22
/* 80337440 003330A0  7E 80 00 38 */	and r0, r20, r0
/* 80337444 003330A4  7C 0E 73 78 */	or r14, r0, r14
/* 80337448 003330A8  7E 10 A2 14 */	add r16, r16, r20
/* 8033744C 003330AC  7D D3 72 14 */	add r14, r19, r14
/* 80337450 003330B0  7E 80 B0 78 */	andc r0, r20, r22
/* 80337454 003330B4  39 CE 14 53 */	addi r14, r14, 0x1453
/* 80337458 003330B8  55 CE 48 3E */	rotlwi r14, r14, 9
/* 8033745C 003330BC  7D CE A2 14 */	add r14, r14, r20
/* 80337460 003330C0  7D D3 B0 38 */	and r19, r14, r22
/* 80337464 003330C4  7E 60 03 78 */	or r0, r19, r0
/* 80337468 003330C8  7D D5 A0 78 */	andc r21, r14, r20
/* 8033746C 003330CC  7E 72 02 14 */	add r19, r18, r0
/* 80337470 003330D0  7E 57 72 14 */	add r18, r23, r14
/* 80337474 003330D4  38 13 E6 81 */	addi r0, r19, -6527
/* 80337478 003330D8  54 13 70 3E */	rotlwi r19, r0, 0xe
/* 8033747C 003330DC  7E 73 72 14 */	add r19, r19, r14
/* 80337480 003330E0  7E 60 A0 38 */	and r0, r19, r20
/* 80337484 003330E4  7C 14 AB 78 */	or r20, r0, r21
/* 80337488 003330E8  7E 91 A2 14 */	add r20, r17, r20
/* 8033748C 003330EC  7E 2F 9A 14 */	add r17, r15, r19
/* 80337490 003330F0  3A D4 FB C8 */	addi r22, r20, -1080
/* 80337494 003330F4  7E 60 70 78 */	andc r0, r19, r14
/* 80337498 003330F8  56 CF A0 3E */	rotlwi r15, r22, 0x14
/* 8033749C 003330FC  7D EF 9A 14 */	add r15, r15, r19
/* 803374A0 00333100  7D EE 70 38 */	and r14, r15, r14
/* 803374A4 00333104  7D C0 03 78 */	or r0, r14, r0
/* 803374A8 00333108  7E 10 02 14 */	add r16, r16, r0
/* 803374AC 0033310C  7D EE 98 78 */	andc r14, r15, r19
/* 803374B0 00333110  3A 90 CD E6 */	addi r20, r16, -12826
/* 803374B4 00333114  56 80 28 3E */	rotlwi r0, r20, 5
/* 803374B8 00333118  7C 00 7A 14 */	add r0, r0, r15
/* 803374BC 0033311C  7C 10 98 38 */	and r16, r0, r19
/* 803374C0 00333120  7E 0E 73 78 */	or r14, r16, r14
/* 803374C4 00333124  7D D2 72 14 */	add r14, r18, r14
/* 803374C8 00333128  7C 10 78 78 */	andc r16, r0, r15
/* 803374CC 0033312C  39 CE 07 D6 */	addi r14, r14, 0x7d6
/* 803374D0 00333130  55 D6 48 3E */	rotlwi r22, r14, 9
/* 803374D4 00333134  7E D6 02 14 */	add r22, r22, r0
/* 803374D8 00333138  7E CE 78 38 */	and r14, r22, r15
/* 803374DC 0033313C  7D CE 83 78 */	or r14, r14, r16
/* 803374E0 00333140  7D D1 72 14 */	add r14, r17, r14
/* 803374E4 00333144  3A 6E 0D 87 */	addi r19, r14, 0xd87
/* 803374E8 00333148  56 71 70 3E */	rotlwi r17, r19, 0xe
/* 803374EC 0033314C  3E 5E 45 5A */	addis r18, r30, 0x455a
/* 803374F0 00333150  7E 31 B2 14 */	add r17, r17, r22
/* 803374F4 00333154  7E CE 00 78 */	andc r14, r22, r0
/* 803374F8 00333158  7E 30 00 38 */	and r16, r17, r0
/* 803374FC 0033315C  7D F2 7A 14 */	add r15, r18, r15
/* 80337500 00333160  7E 0E 73 78 */	or r14, r16, r14
/* 80337504 00333164  3E 7D A9 E4 */	addis r19, r29, 0xa9e4
/* 80337508 00333168  7D EF 72 14 */	add r15, r15, r14
/* 8033750C 0033316C  3E 5C FC F0 */	addis r18, r28, 0xfcf0
/* 80337510 00333170  39 EF 14 ED */	addi r15, r15, 0x14ed
/* 80337514 00333174  7C 13 02 14 */	add r0, r19, r0
/* 80337518 00333178  55 F5 A0 3E */	rotlwi r21, r15, 0x14
/* 8033751C 0033317C  7E 2E B0 78 */	andc r14, r17, r22
/* 80337520 00333180  7E B5 8A 14 */	add r21, r21, r17
/* 80337524 00333184  3E 1B 67 6F */	addis r16, r27, 0x676f
/* 80337528 00333188  7E B4 B0 38 */	and r20, r21, r22
/* 8033752C 0033318C  7E 72 B2 14 */	add r19, r18, r22
/* 80337530 00333190  7E 8E 73 78 */	or r14, r20, r14
/* 80337534 00333194  7E 50 8A 14 */	add r18, r16, r17
/* 80337538 00333198  7D C0 72 14 */	add r14, r0, r14
/* 8033753C 0033319C  3D FA 8D 2A */	addis r15, r26, 0x8d2a
/* 80337540 003331A0  38 0E E9 05 */	addi r0, r14, -5883
/* 80337544 003331A4  7E B6 88 78 */	andc r22, r21, r17
/* 80337548 003331A8  54 14 28 3E */	rotlwi r20, r0, 5
/* 8033754C 003331AC  7E 0F AA 14 */	add r16, r15, r21
/* 80337550 003331B0  7E 94 AA 14 */	add r20, r20, r21
/* 80337554 003331B4  3D E7 FF FA */	addis r15, r7, 0xfffa
/* 80337558 003331B8  7E 91 88 38 */	and r17, r20, r17
/* 8033755C 003331BC  3D DE 87 72 */	addis r14, r30, 0x8772
/* 80337560 003331C0  7E 36 B3 78 */	or r22, r17, r22
/* 80337564 003331C4  3C 06 6D 9D */	addis r0, r6, 0x6d9d
/* 80337568 003331C8  7E 73 B2 14 */	add r19, r19, r22
/* 8033756C 003331CC  7E 91 A8 78 */	andc r17, r20, r21
/* 80337570 003331D0  3A D3 A3 F8 */	addi r22, r19, -23560
/* 80337574 003331D4  3E EC FD E5 */	addis r23, r12, 0xfde5
/* 80337578 003331D8  56 D3 48 3E */	rotlwi r19, r22, 9
/* 8033757C 003331DC  3F 04 A4 BF */	addis r24, r4, 0xa4bf
/* 80337580 003331E0  7E 73 A2 14 */	add r19, r19, r20
/* 80337584 003331E4  7E 75 A8 38 */	and r21, r19, r21
/* 80337588 003331E8  7E B1 8B 78 */	or r17, r21, r17
/* 8033758C 003331EC  7E 32 8A 14 */	add r17, r18, r17
/* 80337590 003331F0  7E 75 A0 78 */	andc r21, r19, r20
/* 80337594 003331F4  3A 31 02 D9 */	addi r17, r17, 0x2d9
/* 80337598 003331F8  56 31 70 3E */	rotlwi r17, r17, 0xe
/* 8033759C 003331FC  7E 31 9A 14 */	add r17, r17, r19
/* 803375A0 00333200  7E 32 A0 38 */	and r18, r17, r20
/* 803375A4 00333204  7E 52 AB 78 */	or r18, r18, r21
/* 803375A8 00333208  7E 10 92 14 */	add r16, r16, r18
/* 803375AC 0033320C  3A B0 4C 8A */	addi r21, r16, 0x4c8a
/* 803375B0 00333210  56 B0 A0 3E */	rotlwi r16, r21, 0x14
/* 803375B4 00333214  7E 10 8A 14 */	add r16, r16, r17
/* 803375B8 00333218  7E 72 82 78 */	xor r18, r19, r16
/* 803375BC 0033321C  7E 52 8A 78 */	xor r18, r18, r17
/* 803375C0 00333220  7E 54 92 14 */	add r18, r20, r18
/* 803375C4 00333224  7E 92 7A 14 */	add r20, r18, r15
/* 803375C8 00333228  3A 94 39 42 */	addi r20, r20, 0x3942
/* 803375CC 0033322C  56 8F 20 3E */	rotlwi r15, r20, 4
/* 803375D0 00333230  7D EF 82 14 */	add r15, r15, r16
/* 803375D4 00333234  7E 32 7A 78 */	xor r18, r17, r15
/* 803375D8 00333238  7E 52 82 78 */	xor r18, r18, r16
/* 803375DC 0033323C  7E 53 92 14 */	add r18, r19, r18
/* 803375E0 00333240  7E 72 72 14 */	add r19, r18, r14
/* 803375E4 00333244  3A 73 F6 81 */	addi r19, r19, -2431
/* 803375E8 00333248  56 6E 58 3E */	rotlwi r14, r19, 0xb
/* 803375EC 0033324C  7D CE 7A 14 */	add r14, r14, r15
/* 803375F0 00333250  7E 12 72 78 */	xor r18, r16, r14
/* 803375F4 00333254  7E 52 7A 78 */	xor r18, r18, r15
/* 803375F8 00333258  7E 31 92 14 */	add r17, r17, r18
/* 803375FC 0033325C  7E 31 02 14 */	add r17, r17, r0
/* 80337600 00333260  3A 31 61 22 */	addi r17, r17, 0x6122
/* 80337604 00333264  56 36 80 3E */	rotlwi r22, r17, 0x10
/* 80337608 00333268  7E D6 72 14 */	add r22, r22, r14
/* 8033760C 0033326C  7D E0 B2 78 */	xor r0, r15, r22
/* 80337610 00333270  7C 00 72 78 */	xor r0, r0, r14
/* 80337614 00333274  7C 10 02 14 */	add r0, r16, r0
/* 80337618 00333278  7E 00 BA 14 */	add r16, r0, r23
/* 8033761C 0033327C  3A 10 38 0C */	addi r16, r16, 0x380c
/* 80337620 00333280  56 17 B8 3E */	rotlwi r23, r16, 0x17
/* 80337624 00333284  7E F7 B2 14 */	add r23, r23, r22
/* 80337628 00333288  7D C0 BA 78 */	xor r0, r14, r23
/* 8033762C 0033328C  7C 00 B2 78 */	xor r0, r0, r22
/* 80337630 00333290  7C 0F 02 14 */	add r0, r15, r0
/* 80337634 00333294  7D E0 C2 14 */	add r15, r0, r24
/* 80337638 00333298  39 EF EA 44 */	addi r15, r15, -5564
/* 8033763C 0033329C  55 F8 20 3E */	rotlwi r24, r15, 4
/* 80337640 003332A0  3D EA 4B DF */	addis r15, r10, 0x4bdf
/* 80337644 003332A4  7F 18 BA 14 */	add r24, r24, r23
/* 80337648 003332A8  3E 1B F6 BB */	addis r16, r27, 0xf6bb
/* 8033764C 003332AC  7E C0 C2 78 */	xor r0, r22, r24
/* 80337650 003332B0  3E 28 BE C0 */	addis r17, r8, 0xbec0
/* 80337654 003332B4  7C 00 BA 78 */	xor r0, r0, r23
/* 80337658 003332B8  3E 5D 28 9B */	addis r18, r29, 0x289b
/* 8033765C 003332BC  7C 0E 02 14 */	add r0, r14, r0
/* 80337660 003332C0  3E 79 EA A1 */	addis r19, r25, 0xeaa1
/* 80337664 003332C4  7D C0 7A 14 */	add r14, r0, r15
/* 80337668 003332C8  3E 8B D9 D5 */	addis r20, r11, 0xd9d5
/* 8033766C 003332CC  39 CE CF A9 */	addi r14, r14, -12375
/* 80337670 003332D0  3C 1F D4 EF */	addis r0, r31, 0xd4ef
/* 80337674 003332D4  55 D5 58 3E */	rotlwi r21, r14, 0xb
/* 80337678 003332D8  90 01 00 48 */	stw r0, 0x48(r1)
/* 8033767C 003332DC  7E B5 C2 14 */	add r21, r21, r24
/* 80337680 003332E0  3C 05 04 88 */	addis r0, r5, 0x488
/* 80337684 003332E4  7E EF AA 78 */	xor r15, r23, r21
/* 80337688 003332E8  90 01 00 4C */	stw r0, 0x4c(r1)
/* 8033768C 003332EC  7D EF C2 78 */	xor r15, r15, r24
/* 80337690 003332F0  3C 1A E6 DC */	addis r0, r26, 0xe6dc
/* 80337694 003332F4  7D F6 7A 14 */	add r15, r22, r15
/* 80337698 003332F8  3D C9 1F A2 */	addis r14, r9, 0x1fa2
/* 8033769C 003332FC  7E CF 82 14 */	add r22, r15, r16
/* 803376A0 00333300  3A D6 4B 60 */	addi r22, r22, 0x4b60
/* 803376A4 00333304  56 CF 80 3E */	rotlwi r15, r22, 0x10
/* 803376A8 00333308  7D EF AA 14 */	add r15, r15, r21
/* 803376AC 0033330C  7F 10 7A 78 */	xor r16, r24, r15
/* 803376B0 00333310  7E 10 AA 78 */	xor r16, r16, r21
/* 803376B4 00333314  7E 17 82 14 */	add r16, r23, r16
/* 803376B8 00333318  7E F0 8A 14 */	add r23, r16, r17
/* 803376BC 0033331C  3A F7 BC 70 */	addi r23, r23, -17296
/* 803376C0 00333320  56 F1 B8 3E */	rotlwi r17, r23, 0x17
/* 803376C4 00333324  7E 31 7A 14 */	add r17, r17, r15
/* 803376C8 00333328  7E B0 8A 78 */	xor r16, r21, r17
/* 803376CC 0033332C  7E 10 7A 78 */	xor r16, r16, r15
/* 803376D0 00333330  7E 18 82 14 */	add r16, r24, r16
/* 803376D4 00333334  7F 10 92 14 */	add r24, r16, r18
/* 803376D8 00333338  3B 18 7E C6 */	addi r24, r24, 0x7ec6
/* 803376DC 0033333C  57 10 20 3E */	rotlwi r16, r24, 4
/* 803376E0 00333340  7E 10 8A 14 */	add r16, r16, r17
/* 803376E4 00333344  7D F2 82 78 */	xor r18, r15, r16
/* 803376E8 00333348  7E 52 8A 78 */	xor r18, r18, r17
/* 803376EC 0033334C  7E 55 92 14 */	add r18, r21, r18
/* 803376F0 00333350  7E B2 9A 14 */	add r21, r18, r19
/* 803376F4 00333354  3A B5 27 FA */	addi r21, r21, 0x27fa
/* 803376F8 00333358  56 B3 58 3E */	rotlwi r19, r21, 0xb
/* 803376FC 0033335C  7E 73 82 14 */	add r19, r19, r16
/* 80337700 00333360  7E 32 9A 78 */	xor r18, r17, r19
/* 80337704 00333364  7E 52 82 78 */	xor r18, r18, r16
/* 80337708 00333368  7E 4F 92 14 */	add r18, r15, r18
/* 8033770C 0033336C  81 E1 00 48 */	lwz r15, 0x48(r1)
/* 80337710 00333370  7D F2 7A 14 */	add r15, r18, r15
/* 80337714 00333374  39 EF 30 85 */	addi r15, r15, 0x3085
/* 80337718 00333378  55 F2 80 3E */	rotlwi r18, r15, 0x10
/* 8033771C 0033337C  7E 52 9A 14 */	add r18, r18, r19
/* 80337720 00333380  7E 0F 92 78 */	xor r15, r16, r18
/* 80337724 00333384  7D EF 9A 78 */	xor r15, r15, r19
/* 80337728 00333388  7E 31 7A 14 */	add r17, r17, r15
/* 8033772C 0033338C  81 E1 00 4C */	lwz r15, 0x4c(r1)
/* 80337730 00333390  7E 31 7A 14 */	add r17, r17, r15
/* 80337734 00333394  3A 31 1D 05 */	addi r17, r17, 0x1d05
/* 80337738 00333398  56 31 B8 3E */	rotlwi r17, r17, 0x17
/* 8033773C 0033339C  7E 31 92 14 */	add r17, r17, r18
/* 80337740 003333A0  7E 6F 8A 78 */	xor r15, r19, r17
/* 80337744 003333A4  7D EF 92 78 */	xor r15, r15, r18
/* 80337748 003333A8  7D F0 7A 14 */	add r15, r16, r15
/* 8033774C 003333AC  7E 0F A2 14 */	add r16, r15, r20
/* 80337750 003333B0  3A 10 D0 39 */	addi r16, r16, -12231
/* 80337754 003333B4  56 0F 20 3E */	rotlwi r15, r16, 4
/* 80337758 003333B8  7D EF 8A 14 */	add r15, r15, r17
/* 8033775C 003333BC  7E 50 7A 78 */	xor r16, r18, r15
/* 80337760 003333C0  7E 10 8A 78 */	xor r16, r16, r17
/* 80337764 003333C4  7E 13 82 14 */	add r16, r19, r16
/* 80337768 003333C8  7E 70 02 14 */	add r19, r16, r0
/* 8033776C 003333CC  3A 73 99 E5 */	addi r19, r19, -26139
/* 80337770 003333D0  56 60 58 3E */	rotlwi r0, r19, 0xb
/* 80337774 003333D4  7C 00 7A 14 */	add r0, r0, r15
/* 80337778 003333D8  7E 30 02 78 */	xor r16, r17, r0
/* 8033777C 003333DC  7E 10 7A 78 */	xor r16, r16, r15
/* 80337780 003333E0  7E 12 82 14 */	add r16, r18, r16
/* 80337784 003333E4  7E 50 72 14 */	add r18, r16, r14
/* 80337788 003333E8  3A 52 7C F8 */	addi r18, r18, 0x7cf8
/* 8033778C 003333EC  56 52 80 3E */	rotlwi r18, r18, 0x10
/* 80337790 003333F0  7E 52 02 14 */	add r18, r18, r0
/* 80337794 003333F4  3D DB 43 2B */	addis r14, r27, 0x432b
/* 80337798 003333F8  7D F3 92 78 */	xor r19, r15, r18
/* 8033779C 003333FC  3E 19 F4 29 */	addis r16, r25, 0xf429
/* 803377A0 00333400  7E 74 02 78 */	xor r20, r19, r0
/* 803377A4 00333404  3D 8C AB 94 */	addis r12, r12, 0xab94
/* 803377A8 00333408  7D F0 7A 14 */	add r15, r16, r15
/* 803377AC 0033340C  3E 7C C4 AC */	addis r19, r28, 0xc4ac
/* 803377B0 00333410  7E 11 A2 14 */	add r16, r17, r20
/* 803377B4 00333414  7D CE 02 14 */	add r14, r14, r0
/* 803377B8 00333418  7E 30 9A 14 */	add r17, r16, r19
/* 803377BC 0033341C  3E 88 FF F0 */	addis r20, r8, 0xfff0
/* 803377C0 00333420  3A 31 56 65 */	addi r17, r17, 0x5665
/* 803377C4 00333424  3E 64 85 84 */	addis r19, r4, 0x8584
/* 803377C8 00333428  56 30 B8 3E */	rotlwi r16, r17, 0x17
/* 803377CC 0033342C  7D 8C 92 14 */	add r12, r12, r18
/* 803377D0 00333430  7E 10 92 14 */	add r16, r16, r18
/* 803377D4 00333434  3C E7 FC 94 */	addis r7, r7, 0xfc94
/* 803377D8 00333438  7E 00 03 38 */	orc r0, r16, r0
/* 803377DC 0033343C  3E DA 65 5B */	addis r22, r26, 0x655b
/* 803377E0 00333440  7E 40 02 78 */	xor r0, r18, r0
/* 803377E4 00333444  7C E7 82 14 */	add r7, r7, r16
/* 803377E8 00333448  7D 0F 02 14 */	add r8, r15, r0
/* 803377EC 0033344C  3E BF 8F 0D */	addis r21, r31, 0x8f0d
/* 803377F0 00333450  39 E8 22 44 */	addi r15, r8, 0x2244
/* 803377F4 00333454  3E 3E 6F A8 */	addis r17, r30, 0x6fa8
/* 803377F8 00333458  55 E4 30 3E */	rotlwi r4, r15, 6
/* 803377FC 0033345C  7C 84 82 14 */	add r4, r4, r16
/* 80337800 00333460  7C 80 93 38 */	orc r0, r4, r18
/* 80337804 00333464  7E 00 02 78 */	xor r0, r16, r0
/* 80337808 00333468  7E D6 22 14 */	add r22, r22, r4
/* 8033780C 0033346C  7D 0E 02 14 */	add r8, r14, r0
/* 80337810 00333470  38 08 FF 97 */	addi r0, r8, -105
/* 80337814 00333474  54 08 50 3E */	rotlwi r8, r0, 0xa
/* 80337818 00333478  7D 08 22 14 */	add r8, r8, r4
/* 8033781C 0033347C  7D 00 83 38 */	orc r0, r8, r16
/* 80337820 00333480  7C 80 02 78 */	xor r0, r4, r0
/* 80337824 00333484  7D F5 42 14 */	add r15, r21, r8
/* 80337828 00333488  7D 8C 02 14 */	add r12, r12, r0
/* 8033782C 0033348C  3A 4C 23 A7 */	addi r18, r12, 0x23a7
/* 80337830 00333490  56 40 78 3E */	rotlwi r0, r18, 0xf
/* 80337834 00333494  7C 00 42 14 */	add r0, r0, r8
/* 80337838 00333498  7C 04 23 38 */	orc r4, r0, r4
/* 8033783C 0033349C  7D 04 22 78 */	xor r4, r8, r4
/* 80337840 003334A0  7D D4 02 14 */	add r14, r20, r0
/* 80337844 003334A4  7C 87 22 14 */	add r4, r7, r4
/* 80337848 003334A8  3A 04 A0 39 */	addi r16, r4, -24519
/* 8033784C 003334AC  56 12 A8 3E */	rotlwi r18, r16, 0x15
/* 80337850 003334B0  7E 52 02 14 */	add r18, r18, r0
/* 80337854 003334B4  7E 44 43 38 */	orc r4, r18, r8
/* 80337858 003334B8  7C 04 22 78 */	xor r4, r0, r4
/* 8033785C 003334BC  7C F3 92 14 */	add r7, r19, r18
/* 80337860 003334C0  7C 96 22 14 */	add r4, r22, r4
/* 80337864 003334C4  38 84 59 C3 */	addi r4, r4, 0x59c3
/* 80337868 003334C8  54 90 30 3E */	rotlwi r16, r4, 6
/* 8033786C 003334CC  7E 10 92 14 */	add r16, r16, r18
/* 80337870 003334D0  7E 00 03 38 */	orc r0, r16, r0
/* 80337874 003334D4  7E 40 02 78 */	xor r0, r18, r0
/* 80337878 003334D8  7D 91 82 14 */	add r12, r17, r16
/* 8033787C 003334DC  7C 8F 02 14 */	add r4, r15, r0
/* 80337880 003334E0  39 04 CC 92 */	addi r8, r4, -13166
/* 80337884 003334E4  55 08 50 3E */	rotlwi r8, r8, 0xa
/* 80337888 003334E8  7D 08 82 14 */	add r8, r8, r16
/* 8033788C 003334EC  7D 00 93 38 */	orc r0, r8, r18
/* 80337890 003334F0  7E 00 02 78 */	xor r0, r16, r0
/* 80337894 003334F4  7C 8E 02 14 */	add r4, r14, r0
/* 80337898 003334F8  38 04 F4 7D */	addi r0, r4, -2947
/* 8033789C 003334FC  54 04 78 3E */	rotlwi r4, r0, 0xf
/* 803378A0 00333500  7C 84 42 14 */	add r4, r4, r8
/* 803378A4 00333504  7C 80 83 38 */	orc r0, r4, r16
/* 803378A8 00333508  7D 00 02 78 */	xor r0, r8, r0
/* 803378AC 0033350C  7C E7 02 14 */	add r7, r7, r0
/* 803378B0 00333510  3A 47 5D D1 */	addi r18, r7, 0x5dd1
/* 803378B4 00333514  56 47 A8 3E */	rotlwi r7, r18, 0x15
/* 803378B8 00333518  7C E7 22 14 */	add r7, r7, r4
/* 803378BC 0033351C  7C E0 43 38 */	orc r0, r7, r8
/* 803378C0 00333520  7C 80 02 78 */	xor r0, r4, r0
/* 803378C4 00333524  7D 8C 02 14 */	add r12, r12, r0
/* 803378C8 00333528  3A 0C 7E 4F */	addi r16, r12, 0x7e4f
/* 803378CC 0033352C  56 00 30 3E */	rotlwi r0, r16, 6
/* 803378D0 00333530  7C 00 3A 14 */	add r0, r0, r7
/* 803378D4 00333534  3D 89 FE 2D */	addis r12, r9, 0xfe2d
/* 803378D8 00333538  7C 09 23 38 */	orc r9, r0, r4
/* 803378DC 0033353C  7D 0C 42 14 */	add r8, r12, r8
/* 803378E0 00333540  3D 85 A3 01 */	addis r12, r5, 0xa301
/* 803378E4 00333544  7C E5 4A 78 */	xor r5, r7, r9
/* 803378E8 00333548  7D 08 2A 14 */	add r8, r8, r5
/* 803378EC 0033354C  3D 3D 4E 08 */	addis r9, r29, 0x4e08
/* 803378F0 00333550  39 08 E6 E0 */	addi r8, r8, -6432
/* 803378F4 00333554  3C AA F7 53 */	addis r5, r10, 0xf753
/* 803378F8 00333558  55 08 50 3E */	rotlwi r8, r8, 0xa
/* 803378FC 0033355C  7D 4C 22 14 */	add r10, r12, r4
/* 80337900 00333560  7D 08 02 14 */	add r8, r8, r0
/* 80337904 00333564  3C 86 BD 3B */	addis r4, r6, 0xbd3b
/* 80337908 00333568  7D 06 3B 38 */	orc r6, r8, r7
/* 8033790C 0033356C  7E 05 02 14 */	add r16, r5, r0
/* 80337910 00333570  7C 05 32 78 */	xor r5, r0, r6
/* 80337914 00333574  7D E4 42 14 */	add r15, r4, r8
/* 80337918 00333578  7C 8A 2A 14 */	add r4, r10, r5
/* 8033791C 0033357C  7E 29 3A 14 */	add r17, r9, r7
/* 80337920 00333580  38 84 43 14 */	addi r4, r4, 0x4314
/* 80337924 00333584  3D 8B EB 87 */	addis r12, r11, 0xeb87
/* 80337928 00333588  54 92 78 3E */	rotlwi r18, r4, 0xf
/* 8033792C 0033358C  81 63 00 00 */	lwz r11, 0(r3)
/* 80337930 00333590  7E 52 42 14 */	add r18, r18, r8
/* 80337934 00333594  3C BC 2A D8 */	addis r5, r28, 0x2ad8
/* 80337938 00333598  7E 40 03 38 */	orc r0, r18, r0
/* 8033793C 0033359C  80 C3 00 0C */	lwz r6, 0xc(r3)
/* 80337940 003335A0  7D 00 02 78 */	xor r0, r8, r0
/* 80337944 003335A4  7D C5 92 14 */	add r14, r5, r18
/* 80337948 003335A8  7C 91 02 14 */	add r4, r17, r0
/* 8033794C 003335AC  81 23 00 08 */	lwz r9, 8(r3)
/* 80337950 003335B0  38 E4 11 A1 */	addi r7, r4, 0x11a1
/* 80337954 003335B4  81 43 00 04 */	lwz r10, 4(r3)
/* 80337958 003335B8  54 F1 A8 3E */	rotlwi r17, r7, 0x15
/* 8033795C 003335BC  38 80 00 00 */	li r4, 0
/* 80337960 003335C0  7E 31 92 14 */	add r17, r17, r18
/* 80337964 003335C4  38 A0 00 40 */	li r5, 0x40
/* 80337968 003335C8  7E 20 43 38 */	orc r0, r17, r8
/* 8033796C 003335CC  7E 40 02 78 */	xor r0, r18, r0
/* 80337970 003335D0  7C EC 8A 14 */	add r7, r12, r17
/* 80337974 003335D4  7D 10 02 14 */	add r8, r16, r0
/* 80337978 003335D8  38 08 7E 82 */	addi r0, r8, 0x7e82
/* 8033797C 003335DC  54 0C 30 3E */	rotlwi r12, r0, 6
/* 80337980 003335E0  7D 8C 8A 14 */	add r12, r12, r17
/* 80337984 003335E4  7D 80 93 38 */	orc r0, r12, r18
/* 80337988 003335E8  7E 28 02 78 */	xor r8, r17, r0
/* 8033798C 003335EC  7D 0F 42 14 */	add r8, r15, r8
/* 80337990 003335F0  7C 0B 62 14 */	add r0, r11, r12
/* 80337994 003335F4  39 08 F2 35 */	addi r8, r8, -3531
/* 80337998 003335F8  90 03 00 00 */	stw r0, 0(r3)
/* 8033799C 003335FC  55 0B 50 3E */	rotlwi r11, r8, 0xa
/* 803379A0 00333600  7D 6B 62 14 */	add r11, r11, r12
/* 803379A4 00333604  7D 60 8B 38 */	orc r0, r11, r17
/* 803379A8 00333608  7D 88 02 78 */	xor r8, r12, r0
/* 803379AC 0033360C  7C 06 5A 14 */	add r0, r6, r11
/* 803379B0 00333610  7C CE 42 14 */	add r6, r14, r8
/* 803379B4 00333614  90 03 00 0C */	stw r0, 0xc(r3)
/* 803379B8 00333618  3A 46 D2 BB */	addi r18, r6, -11589
/* 803379BC 0033361C  56 48 78 3E */	rotlwi r8, r18, 0xf
/* 803379C0 00333620  7D 08 5A 14 */	add r8, r8, r11
/* 803379C4 00333624  7D 00 63 38 */	orc r0, r8, r12
/* 803379C8 00333628  7D 66 02 78 */	xor r6, r11, r0
/* 803379CC 0033362C  7C C7 32 14 */	add r6, r7, r6
/* 803379D0 00333630  7C 09 42 14 */	add r0, r9, r8
/* 803379D4 00333634  3A 26 D3 91 */	addi r17, r6, -11375
/* 803379D8 00333638  90 03 00 08 */	stw r0, 8(r3)
/* 803379DC 0033363C  56 20 A8 3E */	rotlwi r0, r17, 0x15
/* 803379E0 00333640  7C 00 42 14 */	add r0, r0, r8
/* 803379E4 00333644  7C 0A 02 14 */	add r0, r10, r0
/* 803379E8 00333648  90 03 00 04 */	stw r0, 4(r3)
/* 803379EC 0033364C  38 61 00 08 */	addi r3, r1, 8
/* 803379F0 00333650  4B CC C7 15 */	bl memset
/* 803379F4 00333654  39 61 00 A0 */	addi r11, r1, 0xa0
/* 803379F8 00333658  4B E8 F7 49 */	bl __restore_gpr
/* 803379FC 0033365C  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80337A00 00333660  7C 08 03 A6 */	mtlr r0
/* 80337A04 00333664  38 21 00 A0 */	addi r1, r1, 0xa0
/* 80337A08 00333668  4E 80 00 20 */	blr

.global MD5Digest
MD5Digest:
/* 80337A0C 0033366C  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 80337A10 00333670  7C 08 02 A6 */	mflr r0
/* 80337A14 00333674  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 80337A18 00333678  39 61 00 A0 */	addi r11, r1, 0xa0
/* 80337A1C 0033367C  4B E8 F7 01 */	bl _savegpr_24
/* 80337A20 00333680  3D 20 67 45 */	lis r9, 0x67452301@ha
/* 80337A24 00333684  3D 00 EF CE */	lis r8, 0xEFCDAB89@ha
/* 80337A28 00333688  39 40 00 00 */	li r10, 0
/* 80337A2C 0033368C  3C E0 98 BB */	lis r7, 0x98BADCFE@ha
/* 80337A30 00333690  3C C0 10 32 */	lis r6, 0x10325476@ha
/* 80337A34 00333694  39 29 23 01 */	addi r9, r9, 0x67452301@l
/* 80337A38 00333698  38 06 54 76 */	addi r0, r6, 0x10325476@l
/* 80337A3C 0033369C  39 08 AB 89 */	addi r8, r8, 0xEFCDAB89@l
/* 80337A40 003336A0  38 E7 DC FE */	addi r7, r7, 0x98BADCFE@l
/* 80337A44 003336A4  7C 86 23 78 */	mr r6, r4
/* 80337A48 003336A8  7C BF 2B 78 */	mr r31, r5
/* 80337A4C 003336AC  7C 64 1B 78 */	mr r4, r3
/* 80337A50 003336B0  91 41 00 34 */	stw r10, 0x34(r1)
/* 80337A54 003336B4  7C C5 33 78 */	mr r5, r6
/* 80337A58 003336B8  38 61 00 20 */	addi r3, r1, 0x20
/* 80337A5C 003336BC  91 41 00 30 */	stw r10, 0x30(r1)
/* 80337A60 003336C0  91 21 00 20 */	stw r9, 0x20(r1)
/* 80337A64 003336C4  91 01 00 24 */	stw r8, 0x24(r1)
/* 80337A68 003336C8  90 E1 00 28 */	stw r7, 0x28(r1)
/* 80337A6C 003336CC  90 01 00 2C */	stw r0, 0x2c(r1)
/* 80337A70 003336D0  4B FF F2 75 */	bl MD5Update
/* 80337A74 003336D4  81 01 00 30 */	lwz r8, 0x30(r1)
/* 80337A78 003336D8  3C 80 80 45 */	lis r4, lbl_8044A3E0@ha
/* 80337A7C 003336DC  38 61 00 20 */	addi r3, r1, 0x20
/* 80337A80 003336E0  55 09 EE BE */	rlwinm r9, r8, 0x1d, 0x1a, 0x1f
/* 80337A84 003336E4  55 07 C6 3E */	rlwinm r7, r8, 0x18, 0x18, 0x1f
/* 80337A88 003336E8  55 06 86 3E */	rlwinm r6, r8, 0x10, 0x18, 0x1f
/* 80337A8C 003336EC  55 00 46 3E */	srwi r0, r8, 0x18
/* 80337A90 003336F0  99 01 00 08 */	stb r8, 8(r1)
/* 80337A94 003336F4  28 09 00 38 */	cmplwi r9, 0x38
/* 80337A98 003336F8  81 01 00 34 */	lwz r8, 0x34(r1)
/* 80337A9C 003336FC  38 84 A3 E0 */	addi r4, r4, lbl_8044A3E0@l
/* 80337AA0 00333700  98 E1 00 09 */	stb r7, 9(r1)
/* 80337AA4 00333704  20 A9 00 78 */	subfic r5, r9, 0x78
/* 80337AA8 00333708  55 07 C6 3E */	rlwinm r7, r8, 0x18, 0x18, 0x1f
/* 80337AAC 0033370C  98 C1 00 0A */	stb r6, 0xa(r1)
/* 80337AB0 00333710  55 06 86 3E */	rlwinm r6, r8, 0x10, 0x18, 0x1f
/* 80337AB4 00333714  98 01 00 0B */	stb r0, 0xb(r1)
/* 80337AB8 00333718  55 00 46 3E */	srwi r0, r8, 0x18
/* 80337ABC 0033371C  99 01 00 0C */	stb r8, 0xc(r1)
/* 80337AC0 00333720  98 E1 00 0D */	stb r7, 0xd(r1)
/* 80337AC4 00333724  98 C1 00 0E */	stb r6, 0xe(r1)
/* 80337AC8 00333728  98 01 00 0F */	stb r0, 0xf(r1)
/* 80337ACC 0033372C  40 80 00 08 */	bge lbl_80337AD4
/* 80337AD0 00333730  20 A9 00 38 */	subfic r5, r9, 0x38
lbl_80337AD4:
/* 80337AD4 00333734  4B FF F2 11 */	bl MD5Update
/* 80337AD8 00333738  38 61 00 20 */	addi r3, r1, 0x20
/* 80337ADC 0033373C  38 81 00 08 */	addi r4, r1, 8
/* 80337AE0 00333740  38 A0 00 08 */	li r5, 8
/* 80337AE4 00333744  4B FF F2 01 */	bl MD5Update
/* 80337AE8 00333748  80 A1 00 20 */	lwz r5, 0x20(r1)
/* 80337AEC 0033374C  38 61 00 20 */	addi r3, r1, 0x20
/* 80337AF0 00333750  83 41 00 24 */	lwz r26, 0x24(r1)
/* 80337AF4 00333754  38 80 00 00 */	li r4, 0
/* 80337AF8 00333758  83 21 00 28 */	lwz r25, 0x28(r1)
/* 80337AFC 0033375C  54 BB C6 3E */	rlwinm r27, r5, 0x18, 0x18, 0x1f
/* 80337B00 00333760  83 01 00 2C */	lwz r24, 0x2c(r1)
/* 80337B04 00333764  54 BC 86 3E */	rlwinm r28, r5, 0x10, 0x18, 0x1f
/* 80337B08 00333768  54 BD 46 3E */	srwi r29, r5, 0x18
/* 80337B0C 0033376C  57 5E C6 3E */	rlwinm r30, r26, 0x18, 0x18, 0x1f
/* 80337B10 00333770  57 4C 86 3E */	rlwinm r12, r26, 0x10, 0x18, 0x1f
/* 80337B14 00333774  57 4B 46 3E */	srwi r11, r26, 0x18
/* 80337B18 00333778  57 2A C6 3E */	rlwinm r10, r25, 0x18, 0x18, 0x1f
/* 80337B1C 0033377C  57 29 86 3E */	rlwinm r9, r25, 0x10, 0x18, 0x1f
/* 80337B20 00333780  57 28 46 3E */	srwi r8, r25, 0x18
/* 80337B24 00333784  57 07 C6 3E */	rlwinm r7, r24, 0x18, 0x18, 0x1f
/* 80337B28 00333788  57 06 86 3E */	rlwinm r6, r24, 0x10, 0x18, 0x1f
/* 80337B2C 0033378C  57 00 46 3E */	srwi r0, r24, 0x18
/* 80337B30 00333790  98 A1 00 10 */	stb r5, 0x10(r1)
/* 80337B34 00333794  38 A0 00 58 */	li r5, 0x58
/* 80337B38 00333798  9B 61 00 11 */	stb r27, 0x11(r1)
/* 80337B3C 0033379C  9B 81 00 12 */	stb r28, 0x12(r1)
/* 80337B40 003337A0  9B A1 00 13 */	stb r29, 0x13(r1)
/* 80337B44 003337A4  9B 41 00 14 */	stb r26, 0x14(r1)
/* 80337B48 003337A8  9B C1 00 15 */	stb r30, 0x15(r1)
/* 80337B4C 003337AC  99 81 00 16 */	stb r12, 0x16(r1)
/* 80337B50 003337B0  99 61 00 17 */	stb r11, 0x17(r1)
/* 80337B54 003337B4  9B 21 00 18 */	stb r25, 0x18(r1)
/* 80337B58 003337B8  99 41 00 19 */	stb r10, 0x19(r1)
/* 80337B5C 003337BC  99 21 00 1A */	stb r9, 0x1a(r1)
/* 80337B60 003337C0  99 01 00 1B */	stb r8, 0x1b(r1)
/* 80337B64 003337C4  9B 01 00 1C */	stb r24, 0x1c(r1)
/* 80337B68 003337C8  98 E1 00 1D */	stb r7, 0x1d(r1)
/* 80337B6C 003337CC  98 C1 00 1E */	stb r6, 0x1e(r1)
/* 80337B70 003337D0  98 01 00 1F */	stb r0, 0x1f(r1)
/* 80337B74 003337D4  4B CC C5 91 */	bl memset
/* 80337B78 003337D8  3B 81 00 10 */	addi r28, r1, 0x10
/* 80337B7C 003337DC  3B 60 00 00 */	li r27, 0
/* 80337B80 003337E0  3B A0 00 00 */	li r29, 0
lbl_80337B84:
/* 80337B84 003337E4  88 BC 00 00 */	lbz r5, 0(r28)
/* 80337B88 003337E8  7C 7F EA 14 */	add r3, r31, r29
/* 80337B8C 003337EC  38 8D 8F 20 */	addi r4, r13, lbl_8063E1E0-_SDA_BASE_
/* 80337B90 003337F0  4C C6 31 82 */	crclr 6
/* 80337B94 003337F4  4B E9 4F 69 */	bl sprintf
/* 80337B98 003337F8  3B 7B 00 01 */	addi r27, r27, 1
/* 80337B9C 003337FC  3B BD 00 02 */	addi r29, r29, 2
/* 80337BA0 00333800  28 1B 00 10 */	cmplwi r27, 0x10
/* 80337BA4 00333804  3B 9C 00 01 */	addi r28, r28, 1
/* 80337BA8 00333808  41 80 FF DC */	blt lbl_80337B84
/* 80337BAC 0033380C  39 61 00 A0 */	addi r11, r1, 0xa0
/* 80337BB0 00333810  4B E8 F5 B9 */	bl _restgpr_24
/* 80337BB4 00333814  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80337BB8 00333818  7C 08 03 A6 */	mtlr r0
/* 80337BBC 0033381C  38 21 00 A0 */	addi r1, r1, 0xa0
/* 80337BC0 00333820  4E 80 00 20 */	blr