summaryrefslogtreecommitdiff
path: root/asm/code_8005A588.s
blob: c14275da5c2b4b984a9655339ac75d7b9cff2b02 (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
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
.include "macros.inc"

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

.global func_8005A588
func_8005A588:
/* 8005A588 000561E8  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005A58C 000561EC  7C 08 02 A6 */	mflr r0
/* 8005A590 000561F0  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005A594 000561F4  39 61 00 30 */	addi r11, r1, 0x30
/* 8005A598 000561F8  48 16 CB 81 */	bl _savegpr_23
/* 8005A59C 000561FC  3B 00 00 00 */	li r24, 0
/* 8005A5A0 00056200  38 60 00 00 */	li r3, 0
/* 8005A5A4 00056204  4B FF E5 6D */	bl func_80058B10
/* 8005A5A8 00056208  3C 80 80 40 */	lis r4, lbl_803FB8D0@ha
/* 8005A5AC 0005620C  54 60 15 BA */	rlwinm r0, r3, 2, 0x16, 0x1d
/* 8005A5B0 00056210  38 84 B8 D0 */	addi r4, r4, lbl_803FB8D0@l
/* 8005A5B4 00056214  7C 64 00 2E */	lwzx r3, r4, r0
/* 8005A5B8 00056218  48 1E F0 25 */	bl func_802495DC
/* 8005A5BC 0005621C  3C A0 80 47 */	lis r5, lbl_80477D68@ha
/* 8005A5C0 00056220  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005A5C4 00056224  38 00 00 10 */	li r0, 0x10
/* 8005A5C8 00056228  39 00 00 00 */	li r8, 0
/* 8005A5CC 0005622C  38 A5 7D 68 */	addi r5, r5, lbl_80477D68@l
/* 8005A5D0 00056230  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005A5D4 00056234  38 80 00 00 */	li r4, 0
/* 8005A5D8 00056238  7C 09 03 A6 */	mtctr r0
lbl_8005A5DC:
/* 8005A5DC 0005623C  55 00 13 BA */	rlwinm r0, r8, 2, 0xe, 0x1d
/* 8005A5E0 00056240  39 08 00 08 */	addi r8, r8, 8
/* 8005A5E4 00056244  7C E3 02 14 */	add r7, r3, r0
/* 8005A5E8 00056248  7C 85 01 2E */	stwx r4, r5, r0
/* 8005A5EC 0005624C  7C C5 02 14 */	add r6, r5, r0
/* 8005A5F0 00056250  55 00 13 BA */	rlwinm r0, r8, 2, 0xe, 0x1d
/* 8005A5F4 00056254  90 87 00 00 */	stw r4, 0(r7)
/* 8005A5F8 00056258  39 08 00 08 */	addi r8, r8, 8
/* 8005A5FC 0005625C  90 86 00 04 */	stw r4, 4(r6)
/* 8005A600 00056260  90 87 00 04 */	stw r4, 4(r7)
/* 8005A604 00056264  90 86 00 08 */	stw r4, 8(r6)
/* 8005A608 00056268  90 87 00 08 */	stw r4, 8(r7)
/* 8005A60C 0005626C  90 86 00 0C */	stw r4, 0xc(r6)
/* 8005A610 00056270  90 87 00 0C */	stw r4, 0xc(r7)
/* 8005A614 00056274  90 86 00 10 */	stw r4, 0x10(r6)
/* 8005A618 00056278  90 87 00 10 */	stw r4, 0x10(r7)
/* 8005A61C 0005627C  90 86 00 14 */	stw r4, 0x14(r6)
/* 8005A620 00056280  90 87 00 14 */	stw r4, 0x14(r7)
/* 8005A624 00056284  90 86 00 18 */	stw r4, 0x18(r6)
/* 8005A628 00056288  90 86 00 1C */	stw r4, 0x1c(r6)
/* 8005A62C 0005628C  7C C5 02 14 */	add r6, r5, r0
/* 8005A630 00056290  90 87 00 18 */	stw r4, 0x18(r7)
/* 8005A634 00056294  90 87 00 1C */	stw r4, 0x1c(r7)
/* 8005A638 00056298  7C E3 02 14 */	add r7, r3, r0
/* 8005A63C 0005629C  7C 85 01 2E */	stwx r4, r5, r0
/* 8005A640 000562A0  7C 83 01 2E */	stwx r4, r3, r0
/* 8005A644 000562A4  90 86 00 04 */	stw r4, 4(r6)
/* 8005A648 000562A8  90 87 00 04 */	stw r4, 4(r7)
/* 8005A64C 000562AC  90 86 00 08 */	stw r4, 8(r6)
/* 8005A650 000562B0  90 87 00 08 */	stw r4, 8(r7)
/* 8005A654 000562B4  90 86 00 0C */	stw r4, 0xc(r6)
/* 8005A658 000562B8  90 87 00 0C */	stw r4, 0xc(r7)
/* 8005A65C 000562BC  90 86 00 10 */	stw r4, 0x10(r6)
/* 8005A660 000562C0  90 87 00 10 */	stw r4, 0x10(r7)
/* 8005A664 000562C4  90 86 00 14 */	stw r4, 0x14(r6)
/* 8005A668 000562C8  90 87 00 14 */	stw r4, 0x14(r7)
/* 8005A66C 000562CC  90 86 00 18 */	stw r4, 0x18(r6)
/* 8005A670 000562D0  90 87 00 18 */	stw r4, 0x18(r7)
/* 8005A674 000562D4  90 86 00 1C */	stw r4, 0x1c(r6)
/* 8005A678 000562D8  90 87 00 1C */	stw r4, 0x1c(r7)
/* 8005A67C 000562DC  42 00 FF 60 */	bdnz lbl_8005A5DC
/* 8005A680 000562E0  3F 60 80 41 */	lis r27, lbl_8040B0E0@ha
/* 8005A684 000562E4  3F 40 80 40 */	lis r26, lbl_803FB8E4@ha
/* 8005A688 000562E8  3F 20 80 40 */	lis r25, lbl_803FB8D0@ha
/* 8005A68C 000562EC  3E E0 80 47 */	lis r23, lbl_80477D68@ha
/* 8005A690 000562F0  3B 7B B0 E0 */	addi r27, r27, lbl_8040B0E0@l
/* 8005A694 000562F4  3B 5A B8 E4 */	addi r26, r26, lbl_803FB8E4@l
/* 8005A698 000562F8  3B 39 B8 D0 */	addi r25, r25, lbl_803FB8D0@l
/* 8005A69C 000562FC  3A F7 7D 68 */	addi r23, r23, lbl_80477D68@l
/* 8005A6A0 00056300  3B A0 00 00 */	li r29, 0
lbl_8005A6A4:
/* 8005A6A4 00056304  57 BC 13 BA */	rlwinm r28, r29, 2, 0xe, 0x1d
/* 8005A6A8 00056308  38 60 00 00 */	li r3, 0
/* 8005A6AC 0005630C  4B FF E4 65 */	bl func_80058B10
/* 8005A6B0 00056310  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8005A6B4 00056314  1C 00 01 40 */	mulli r0, r0, 0x140
/* 8005A6B8 00056318  7C 1C 02 14 */	add r0, r28, r0
/* 8005A6BC 0005631C  7F DB 00 2E */	lwzx r30, r27, r0
/* 8005A6C0 00056320  2C 1E 00 00 */	cmpwi r30, 0
/* 8005A6C4 00056324  41 82 00 50 */	beq lbl_8005A714
/* 8005A6C8 00056328  57 A0 04 3E */	clrlwi r0, r29, 0x10
/* 8005A6CC 0005632C  7C 1A 00 AE */	lbzx r0, r26, r0
/* 8005A6D0 00056330  2C 00 00 00 */	cmpwi r0, 0
/* 8005A6D4 00056334  40 82 00 0C */	bne lbl_8005A6E0
/* 8005A6D8 00056338  38 60 00 0A */	li r3, 0xa
/* 8005A6DC 0005633C  48 00 00 14 */	b lbl_8005A6F0
lbl_8005A6E0:
/* 8005A6E0 00056340  38 60 00 00 */	li r3, 0
/* 8005A6E4 00056344  4B FF E4 2D */	bl func_80058B10
/* 8005A6E8 00056348  54 60 15 BA */	rlwinm r0, r3, 2, 0x16, 0x1d
/* 8005A6EC 0005634C  7C 79 00 2E */	lwzx r3, r25, r0
lbl_8005A6F0:
/* 8005A6F0 00056350  7F C4 F3 78 */	mr r4, r30
/* 8005A6F4 00056354  48 18 0E F1 */	bl func_801DB5E4
/* 8005A6F8 00056358  3B BD 00 01 */	addi r29, r29, 1
/* 8005A6FC 0005635C  38 03 01 1F */	addi r0, r3, 0x11f
/* 8005A700 00056360  28 1D 01 00 */	cmplwi r29, 0x100
/* 8005A704 00056364  7F 17 E1 2E */	stwx r24, r23, r28
/* 8005A708 00056368  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 8005A70C 0005636C  7F 18 02 14 */	add r24, r24, r0
/* 8005A710 00056370  41 80 FF 94 */	blt lbl_8005A6A4
lbl_8005A714:
/* 8005A714 00056374  7F 03 C3 78 */	mr r3, r24
/* 8005A718 00056378  48 1F 5C 25 */	bl func_8025033C
/* 8005A71C 0005637C  3C A0 80 47 */	lis r5, lbl_80477968@ha
/* 8005A720 00056380  3C 80 80 47 */	lis r4, lbl_80477D68@ha
/* 8005A724 00056384  90 65 79 68 */	stw r3, lbl_80477968@l(r5)
/* 8005A728 00056388  38 00 00 33 */	li r0, 0x33
/* 8005A72C 0005638C  38 65 79 68 */	addi r3, r5, 0x7968
/* 8005A730 00056390  38 84 7D 68 */	addi r4, r4, lbl_80477D68@l
/* 8005A734 00056394  39 00 00 01 */	li r8, 1
/* 8005A738 00056398  7C 09 03 A6 */	mtctr r0
lbl_8005A73C:
/* 8005A73C 0005639C  55 07 13 BA */	rlwinm r7, r8, 2, 0xe, 0x1d
/* 8005A740 000563A0  7C C4 38 2E */	lwzx r6, r4, r7
/* 8005A744 000563A4  2C 06 00 00 */	cmpwi r6, 0
/* 8005A748 000563A8  41 82 00 10 */	beq lbl_8005A758
/* 8005A74C 000563AC  80 05 79 68 */	lwz r0, 0x7968(r5)
/* 8005A750 000563B0  7C 00 32 14 */	add r0, r0, r6
/* 8005A754 000563B4  7C 03 39 2E */	stwx r0, r3, r7
lbl_8005A758:
/* 8005A758 000563B8  39 08 00 01 */	addi r8, r8, 1
/* 8005A75C 000563BC  55 07 13 BA */	rlwinm r7, r8, 2, 0xe, 0x1d
/* 8005A760 000563C0  7C C4 38 2E */	lwzx r6, r4, r7
/* 8005A764 000563C4  2C 06 00 00 */	cmpwi r6, 0
/* 8005A768 000563C8  41 82 00 10 */	beq lbl_8005A778
/* 8005A76C 000563CC  80 05 79 68 */	lwz r0, 0x7968(r5)
/* 8005A770 000563D0  7C 00 32 14 */	add r0, r0, r6
/* 8005A774 000563D4  7C 03 39 2E */	stwx r0, r3, r7
lbl_8005A778:
/* 8005A778 000563D8  39 08 00 01 */	addi r8, r8, 1
/* 8005A77C 000563DC  55 07 13 BA */	rlwinm r7, r8, 2, 0xe, 0x1d
/* 8005A780 000563E0  7C C4 38 2E */	lwzx r6, r4, r7
/* 8005A784 000563E4  2C 06 00 00 */	cmpwi r6, 0
/* 8005A788 000563E8  41 82 00 10 */	beq lbl_8005A798
/* 8005A78C 000563EC  80 05 79 68 */	lwz r0, 0x7968(r5)
/* 8005A790 000563F0  7C 00 32 14 */	add r0, r0, r6
/* 8005A794 000563F4  7C 03 39 2E */	stwx r0, r3, r7
lbl_8005A798:
/* 8005A798 000563F8  39 08 00 01 */	addi r8, r8, 1
/* 8005A79C 000563FC  55 07 13 BA */	rlwinm r7, r8, 2, 0xe, 0x1d
/* 8005A7A0 00056400  7C C4 38 2E */	lwzx r6, r4, r7
/* 8005A7A4 00056404  2C 06 00 00 */	cmpwi r6, 0
/* 8005A7A8 00056408  41 82 00 10 */	beq lbl_8005A7B8
/* 8005A7AC 0005640C  80 05 79 68 */	lwz r0, 0x7968(r5)
/* 8005A7B0 00056410  7C 00 32 14 */	add r0, r0, r6
/* 8005A7B4 00056414  7C 03 39 2E */	stwx r0, r3, r7
lbl_8005A7B8:
/* 8005A7B8 00056418  39 08 00 01 */	addi r8, r8, 1
/* 8005A7BC 0005641C  55 07 13 BA */	rlwinm r7, r8, 2, 0xe, 0x1d
/* 8005A7C0 00056420  7C C4 38 2E */	lwzx r6, r4, r7
/* 8005A7C4 00056424  2C 06 00 00 */	cmpwi r6, 0
/* 8005A7C8 00056428  41 82 00 10 */	beq lbl_8005A7D8
/* 8005A7CC 0005642C  80 05 79 68 */	lwz r0, 0x7968(r5)
/* 8005A7D0 00056430  7C 00 32 14 */	add r0, r0, r6
/* 8005A7D4 00056434  7C 03 39 2E */	stwx r0, r3, r7
lbl_8005A7D8:
/* 8005A7D8 00056438  39 08 00 01 */	addi r8, r8, 1
/* 8005A7DC 0005643C  42 00 FF 60 */	bdnz lbl_8005A73C
/* 8005A7E0 00056440  3E E0 80 47 */	lis r23, lbl_80477968@ha
/* 8005A7E4 00056444  3F A0 80 41 */	lis r29, lbl_8040B0E0@ha
/* 8005A7E8 00056448  3F C0 80 40 */	lis r30, lbl_803FB8E4@ha
/* 8005A7EC 0005644C  3F E0 80 40 */	lis r31, lbl_803FB8D0@ha
/* 8005A7F0 00056450  3B BD B0 E0 */	addi r29, r29, lbl_8040B0E0@l
/* 8005A7F4 00056454  3A F7 79 68 */	addi r23, r23, lbl_80477968@l
/* 8005A7F8 00056458  3B DE B8 E4 */	addi r30, r30, lbl_803FB8E4@l
/* 8005A7FC 0005645C  3B FF B8 D0 */	addi r31, r31, lbl_803FB8D0@l
/* 8005A800 00056460  3B 60 00 00 */	li r27, 0
lbl_8005A804:
/* 8005A804 00056464  57 7C 13 BA */	rlwinm r28, r27, 2, 0xe, 0x1d
/* 8005A808 00056468  7C 17 E0 2E */	lwzx r0, r23, r28
/* 8005A80C 0005646C  2C 00 00 00 */	cmpwi r0, 0
/* 8005A810 00056470  41 82 01 30 */	beq lbl_8005A940
/* 8005A814 00056474  38 60 00 00 */	li r3, 0
/* 8005A818 00056478  4B FF E2 F9 */	bl func_80058B10
/* 8005A81C 0005647C  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8005A820 00056480  57 60 04 3E */	clrlwi r0, r27, 0x10
/* 8005A824 00056484  1C 63 01 40 */	mulli r3, r3, 0x140
/* 8005A828 00056488  7C 1E 00 AE */	lbzx r0, r30, r0
/* 8005A82C 0005648C  2C 00 00 00 */	cmpwi r0, 0
/* 8005A830 00056490  7C 1C 1A 14 */	add r0, r28, r3
/* 8005A834 00056494  7F 5D 00 2E */	lwzx r26, r29, r0
/* 8005A838 00056498  40 82 00 0C */	bne lbl_8005A844
/* 8005A83C 0005649C  3B 20 00 0A */	li r25, 0xa
/* 8005A840 000564A0  48 00 00 14 */	b lbl_8005A854
lbl_8005A844:
/* 8005A844 000564A4  38 60 00 00 */	li r3, 0
/* 8005A848 000564A8  4B FF E2 C9 */	bl func_80058B10
/* 8005A84C 000564AC  54 60 15 BA */	rlwinm r0, r3, 2, 0x16, 0x1d
/* 8005A850 000564B0  7F 3F 00 2E */	lwzx r25, r31, r0
lbl_8005A854:
/* 8005A854 000564B4  7F 23 CB 78 */	mr r3, r25
/* 8005A858 000564B8  7F 44 D3 78 */	mr r4, r26
/* 8005A85C 000564BC  48 18 0D 89 */	bl func_801DB5E4
/* 8005A860 000564C0  7C 78 1B 78 */	mr r24, r3
/* 8005A864 000564C4  7F 23 CB 78 */	mr r3, r25
/* 8005A868 000564C8  7F 44 D3 78 */	mr r4, r26
/* 8005A86C 000564CC  48 18 0C 51 */	bl func_801DB4BC
/* 8005A870 000564D0  88 03 00 07 */	lbz r0, 7(r3)
/* 8005A874 000564D4  7C 64 1B 78 */	mr r4, r3
/* 8005A878 000564D8  54 00 06 3C */	rlwinm r0, r0, 0, 0x18, 0x1e
/* 8005A87C 000564DC  98 03 00 07 */	stb r0, 7(r3)
/* 8005A880 000564E0  80 A3 00 28 */	lwz r5, 0x28(r3)
/* 8005A884 000564E4  54 A0 00 01 */	rlwinm. r0, r5, 0, 0, 0
/* 8005A888 000564E8  41 82 00 0C */	beq lbl_8005A894
/* 8005A88C 000564EC  7C 03 28 50 */	subf r0, r3, r5
/* 8005A890 000564F0  90 03 00 28 */	stw r0, 0x28(r3)
lbl_8005A894:
/* 8005A894 000564F4  80 03 00 08 */	lwz r0, 8(r3)
/* 8005A898 000564F8  2C 00 00 01 */	cmpwi r0, 1
/* 8005A89C 000564FC  41 81 00 18 */	bgt lbl_8005A8B4
/* 8005A8A0 00056500  80 A3 00 48 */	lwz r5, 0x48(r3)
/* 8005A8A4 00056504  54 A0 00 01 */	rlwinm. r0, r5, 0, 0, 0
/* 8005A8A8 00056508  41 82 00 0C */	beq lbl_8005A8B4
/* 8005A8AC 0005650C  7C 03 28 50 */	subf r0, r3, r5
/* 8005A8B0 00056510  90 03 00 48 */	stw r0, 0x48(r3)
lbl_8005A8B4:
/* 8005A8B4 00056514  7C 77 E0 2E */	lwzx r3, r23, r28
/* 8005A8B8 00056518  7F 05 C3 78 */	mr r5, r24
/* 8005A8BC 0005651C  4B FA 97 45 */	bl memcpy
/* 8005A8C0 00056520  7C 77 E0 2E */	lwzx r3, r23, r28
/* 8005A8C4 00056524  48 1E 2E 09 */	bl func_8023D6CC
/* 8005A8C8 00056528  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8005A8CC 0005652C  7C 7C 1B 78 */	mr r28, r3
/* 8005A8D0 00056530  88 04 00 7A */	lbz r0, 0x7a(r4)
/* 8005A8D4 00056534  2C 00 00 00 */	cmpwi r0, 0
/* 8005A8D8 00056538  41 82 00 38 */	beq lbl_8005A910
/* 8005A8DC 0005653C  2C 03 00 00 */	cmpwi r3, 0
/* 8005A8E0 00056540  41 82 00 30 */	beq lbl_8005A910
/* 8005A8E4 00056544  80 A3 00 1C */	lwz r5, 0x1c(r3)
/* 8005A8E8 00056548  2C 05 00 02 */	cmpwi r5, 2
/* 8005A8EC 0005654C  40 80 00 08 */	bge lbl_8005A8F4
/* 8005A8F0 00056550  38 A0 00 02 */	li r5, 2
lbl_8005A8F4:
/* 8005A8F4 00056554  80 9C 00 18 */	lwz r4, 0x18(r28)
/* 8005A8F8 00056558  7F 83 E3 78 */	mr r3, r28
/* 8005A8FC 0005655C  2C 04 00 02 */	cmpwi r4, 2
/* 8005A900 00056560  40 80 00 08 */	bge lbl_8005A908
/* 8005A904 00056564  38 80 00 02 */	li r4, 2
lbl_8005A908:
/* 8005A908 00056568  80 DC 00 20 */	lwz r6, 0x20(r28)
/* 8005A90C 0005656C  48 1E 3A BD */	bl func_8023E3C8
lbl_8005A910:
/* 8005A910 00056570  7F 83 E3 78 */	mr r3, r28
/* 8005A914 00056574  7F 04 C3 78 */	mr r4, r24
/* 8005A918 00056578  48 20 FD 3D */	bl DCFlushRange
/* 8005A91C 0005657C  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005A920 00056580  28 19 00 0A */	cmplwi r25, 0xa
/* 8005A924 00056584  A0 03 16 FE */	lhz r0, 0x16fe(r3)
/* 8005A928 00056588  60 00 00 02 */	ori r0, r0, 2
/* 8005A92C 0005658C  B0 03 16 FE */	sth r0, 0x16fe(r3)
/* 8005A930 00056590  40 82 00 10 */	bne lbl_8005A940
/* 8005A934 00056594  7F 23 CB 78 */	mr r3, r25
/* 8005A938 00056598  7F 44 D3 78 */	mr r4, r26
/* 8005A93C 0005659C  48 18 0D 09 */	bl func_801DB644
lbl_8005A940:
/* 8005A940 000565A0  3B 7B 00 01 */	addi r27, r27, 1
/* 8005A944 000565A4  28 1B 01 00 */	cmplwi r27, 0x100
/* 8005A948 000565A8  41 80 FE BC */	blt lbl_8005A804
/* 8005A94C 000565AC  38 60 00 00 */	li r3, 0
/* 8005A950 000565B0  4B FF E1 C1 */	bl func_80058B10
/* 8005A954 000565B4  3F 00 80 40 */	lis r24, lbl_803FB8D0@ha
/* 8005A958 000565B8  54 60 15 BA */	rlwinm r0, r3, 2, 0x16, 0x1d
/* 8005A95C 000565BC  3B 18 B8 D0 */	addi r24, r24, lbl_803FB8D0@l
/* 8005A960 000565C0  7C 78 00 2E */	lwzx r3, r24, r0
/* 8005A964 000565C4  48 1E EF 2D */	bl func_80249890
/* 8005A968 000565C8  38 60 00 00 */	li r3, 0
/* 8005A96C 000565CC  4B FF E1 A5 */	bl func_80058B10
/* 8005A970 000565D0  54 60 15 BA */	rlwinm r0, r3, 2, 0x16, 0x1d
/* 8005A974 000565D4  7C 78 00 2E */	lwzx r3, r24, r0
/* 8005A978 000565D8  48 18 0C FD */	bl func_801DB674
/* 8005A97C 000565DC  39 61 00 30 */	addi r11, r1, 0x30
/* 8005A980 000565E0  48 16 C7 E5 */	bl _restgpr_23
/* 8005A984 000565E4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005A988 000565E8  7C 08 03 A6 */	mtlr r0
/* 8005A98C 000565EC  38 21 00 30 */	addi r1, r1, 0x30
/* 8005A990 000565F0  4E 80 00 20 */	blr

.global func_8005A994
func_8005A994:
/* 8005A994 000565F4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8005A998 000565F8  7C 08 02 A6 */	mflr r0
/* 8005A99C 000565FC  38 60 03 D4 */	li r3, 0x3d4
/* 8005A9A0 00056600  90 01 00 14 */	stw r0, 0x14(r1)
/* 8005A9A4 00056604  48 18 00 8D */	bl __nw__FUl
/* 8005A9A8 00056608  2C 03 00 00 */	cmpwi r3, 0
/* 8005A9AC 0005660C  41 82 00 34 */	beq lbl_8005A9E0
/* 8005A9B0 00056610  38 80 00 01 */	li r4, 1
/* 8005A9B4 00056614  38 00 00 04 */	li r0, 4
/* 8005A9B8 00056618  90 81 00 08 */	stw r4, 8(r1)
/* 8005A9BC 0005661C  38 80 00 00 */	li r4, 0
/* 8005A9C0 00056620  38 A0 00 04 */	li r5, 4
/* 8005A9C4 00056624  38 C0 00 00 */	li r6, 0
/* 8005A9C8 00056628  90 01 00 0C */	stw r0, 0xc(r1)
/* 8005A9CC 0005662C  38 E0 00 00 */	li r7, 0
/* 8005A9D0 00056630  39 00 00 01 */	li r8, 1
/* 8005A9D4 00056634  39 20 00 05 */	li r9, 5
/* 8005A9D8 00056638  39 40 00 01 */	li r10, 1
/* 8005A9DC 0005663C  48 1E 1E 39 */	bl func_8023C814
lbl_8005A9E0:
/* 8005A9E0 00056640  80 8D 81 F0 */	lwz r4, lbl_8063D4B0-_SDA_BASE_(r13)
/* 8005A9E4 00056644  90 64 00 00 */	stw r3, 0(r4)
/* 8005A9E8 00056648  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8005A9EC 0005664C  7C 08 03 A6 */	mtlr r0
/* 8005A9F0 00056650  38 21 00 10 */	addi r1, r1, 0x10
/* 8005A9F4 00056654  4E 80 00 20 */	blr

.global func_8005A9F8
func_8005A9F8:
/* 8005A9F8 00056658  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8005A9FC 0005665C  7C 08 02 A6 */	mflr r0
/* 8005AA00 00056660  90 01 00 14 */	stw r0, 0x14(r1)
/* 8005AA04 00056664  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8005AA08 00056668  7C 7F 1B 78 */	mr r31, r3
/* 8005AA0C 0005666C  80 0D 98 FC */	lwz r0, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005AA10 00056670  2C 00 00 00 */	cmpwi r0, 0
/* 8005AA14 00056674  40 82 00 0C */	bne lbl_8005AA20
/* 8005AA18 00056678  48 10 4C 79 */	bl func_8015F690
/* 8005AA1C 0005667C  90 6D 98 FC */	stw r3, lbl_8063EBBC-_SDA_BASE_(r13)
lbl_8005AA20:
/* 8005AA20 00056680  2C 1F 00 41 */	cmpwi r31, 0x41
/* 8005AA24 00056684  41 82 00 D8 */	beq lbl_8005AAFC
/* 8005AA28 00056688  40 80 00 1C */	bge lbl_8005AA44
/* 8005AA2C 0005668C  2C 1F 00 1B */	cmpwi r31, 0x1b
/* 8005AA30 00056690  41 82 00 7C */	beq lbl_8005AAAC
/* 8005AA34 00056694  40 80 02 08 */	bge lbl_8005AC3C
/* 8005AA38 00056698  2C 1F 00 1A */	cmpwi r31, 0x1a
/* 8005AA3C 0005669C  40 80 00 20 */	bge lbl_8005AA5C
/* 8005AA40 000566A0  48 00 01 FC */	b lbl_8005AC3C
lbl_8005AA44:
/* 8005AA44 000566A4  2C 1F 00 44 */	cmpwi r31, 0x44
/* 8005AA48 000566A8  41 82 01 A4 */	beq lbl_8005ABEC
/* 8005AA4C 000566AC  40 80 01 F0 */	bge lbl_8005AC3C
/* 8005AA50 000566B0  2C 1F 00 43 */	cmpwi r31, 0x43
/* 8005AA54 000566B4  40 80 01 48 */	bge lbl_8005AB9C
/* 8005AA58 000566B8  48 00 00 F4 */	b lbl_8005AB4C
lbl_8005AA5C:
/* 8005AA5C 000566BC  80 6D 98 FC */	lwz r3, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005AA60 000566C0  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8005AA64 000566C4  2C 00 00 01 */	cmpwi r0, 1
/* 8005AA68 000566C8  41 82 00 24 */	beq lbl_8005AA8C
/* 8005AA6C 000566CC  40 80 00 30 */	bge lbl_8005AA9C
/* 8005AA70 000566D0  2C 00 00 00 */	cmpwi r0, 0
/* 8005AA74 000566D4  40 80 00 08 */	bge lbl_8005AA7C
/* 8005AA78 000566D8  48 00 00 24 */	b lbl_8005AA9C
lbl_8005AA7C:
/* 8005AA7C 000566DC  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AA80 000566E0  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AA84 000566E4  80 63 00 68 */	lwz r3, 0x68(r3)
/* 8005AA88 000566E8  48 00 01 C4 */	b lbl_8005AC4C
lbl_8005AA8C:
/* 8005AA8C 000566EC  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AA90 000566F0  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AA94 000566F4  80 63 00 70 */	lwz r3, 0x70(r3)
/* 8005AA98 000566F8  48 00 01 B4 */	b lbl_8005AC4C
lbl_8005AA9C:
/* 8005AA9C 000566FC  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AAA0 00056700  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AAA4 00056704  80 63 00 78 */	lwz r3, 0x78(r3)
/* 8005AAA8 00056708  48 00 01 A4 */	b lbl_8005AC4C
lbl_8005AAAC:
/* 8005AAAC 0005670C  80 6D 98 FC */	lwz r3, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005AAB0 00056710  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8005AAB4 00056714  2C 00 00 01 */	cmpwi r0, 1
/* 8005AAB8 00056718  41 82 00 24 */	beq lbl_8005AADC
/* 8005AABC 0005671C  40 80 00 30 */	bge lbl_8005AAEC
/* 8005AAC0 00056720  2C 00 00 00 */	cmpwi r0, 0
/* 8005AAC4 00056724  40 80 00 08 */	bge lbl_8005AACC
/* 8005AAC8 00056728  48 00 00 24 */	b lbl_8005AAEC
lbl_8005AACC:
/* 8005AACC 0005672C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AAD0 00056730  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AAD4 00056734  80 63 00 6C */	lwz r3, 0x6c(r3)
/* 8005AAD8 00056738  48 00 01 74 */	b lbl_8005AC4C
lbl_8005AADC:
/* 8005AADC 0005673C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AAE0 00056740  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AAE4 00056744  80 63 00 74 */	lwz r3, 0x74(r3)
/* 8005AAE8 00056748  48 00 01 64 */	b lbl_8005AC4C
lbl_8005AAEC:
/* 8005AAEC 0005674C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AAF0 00056750  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AAF4 00056754  80 63 00 7C */	lwz r3, 0x7c(r3)
/* 8005AAF8 00056758  48 00 01 54 */	b lbl_8005AC4C
lbl_8005AAFC:
/* 8005AAFC 0005675C  80 6D 98 FC */	lwz r3, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005AB00 00056760  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8005AB04 00056764  2C 00 00 01 */	cmpwi r0, 1
/* 8005AB08 00056768  41 82 00 24 */	beq lbl_8005AB2C
/* 8005AB0C 0005676C  40 80 00 30 */	bge lbl_8005AB3C
/* 8005AB10 00056770  2C 00 00 00 */	cmpwi r0, 0
/* 8005AB14 00056774  40 80 00 08 */	bge lbl_8005AB1C
/* 8005AB18 00056778  48 00 00 24 */	b lbl_8005AB3C
lbl_8005AB1C:
/* 8005AB1C 0005677C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AB20 00056780  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AB24 00056784  80 63 01 04 */	lwz r3, 0x104(r3)
/* 8005AB28 00056788  48 00 01 24 */	b lbl_8005AC4C
lbl_8005AB2C:
/* 8005AB2C 0005678C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AB30 00056790  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AB34 00056794  80 63 01 14 */	lwz r3, 0x114(r3)
/* 8005AB38 00056798  48 00 01 14 */	b lbl_8005AC4C
lbl_8005AB3C:
/* 8005AB3C 0005679C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AB40 000567A0  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AB44 000567A4  80 63 01 24 */	lwz r3, 0x124(r3)
/* 8005AB48 000567A8  48 00 01 04 */	b lbl_8005AC4C
lbl_8005AB4C:
/* 8005AB4C 000567AC  80 6D 98 FC */	lwz r3, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005AB50 000567B0  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8005AB54 000567B4  2C 00 00 01 */	cmpwi r0, 1
/* 8005AB58 000567B8  41 82 00 24 */	beq lbl_8005AB7C
/* 8005AB5C 000567BC  40 80 00 30 */	bge lbl_8005AB8C
/* 8005AB60 000567C0  2C 00 00 00 */	cmpwi r0, 0
/* 8005AB64 000567C4  40 80 00 08 */	bge lbl_8005AB6C
/* 8005AB68 000567C8  48 00 00 24 */	b lbl_8005AB8C
lbl_8005AB6C:
/* 8005AB6C 000567CC  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AB70 000567D0  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AB74 000567D4  80 63 01 08 */	lwz r3, 0x108(r3)
/* 8005AB78 000567D8  48 00 00 D4 */	b lbl_8005AC4C
lbl_8005AB7C:
/* 8005AB7C 000567DC  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AB80 000567E0  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AB84 000567E4  80 63 01 18 */	lwz r3, 0x118(r3)
/* 8005AB88 000567E8  48 00 00 C4 */	b lbl_8005AC4C
lbl_8005AB8C:
/* 8005AB8C 000567EC  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AB90 000567F0  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AB94 000567F4  80 63 01 28 */	lwz r3, 0x128(r3)
/* 8005AB98 000567F8  48 00 00 B4 */	b lbl_8005AC4C
lbl_8005AB9C:
/* 8005AB9C 000567FC  80 6D 98 FC */	lwz r3, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005ABA0 00056800  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8005ABA4 00056804  2C 00 00 01 */	cmpwi r0, 1
/* 8005ABA8 00056808  41 82 00 24 */	beq lbl_8005ABCC
/* 8005ABAC 0005680C  40 80 00 30 */	bge lbl_8005ABDC
/* 8005ABB0 00056810  2C 00 00 00 */	cmpwi r0, 0
/* 8005ABB4 00056814  40 80 00 08 */	bge lbl_8005ABBC
/* 8005ABB8 00056818  48 00 00 24 */	b lbl_8005ABDC
lbl_8005ABBC:
/* 8005ABBC 0005681C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005ABC0 00056820  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005ABC4 00056824  80 63 01 0C */	lwz r3, 0x10c(r3)
/* 8005ABC8 00056828  48 00 00 84 */	b lbl_8005AC4C
lbl_8005ABCC:
/* 8005ABCC 0005682C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005ABD0 00056830  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005ABD4 00056834  80 63 01 1C */	lwz r3, 0x11c(r3)
/* 8005ABD8 00056838  48 00 00 74 */	b lbl_8005AC4C
lbl_8005ABDC:
/* 8005ABDC 0005683C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005ABE0 00056840  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005ABE4 00056844  80 63 01 2C */	lwz r3, 0x12c(r3)
/* 8005ABE8 00056848  48 00 00 64 */	b lbl_8005AC4C
lbl_8005ABEC:
/* 8005ABEC 0005684C  80 6D 98 FC */	lwz r3, lbl_8063EBBC-_SDA_BASE_(r13)
/* 8005ABF0 00056850  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 8005ABF4 00056854  2C 00 00 01 */	cmpwi r0, 1
/* 8005ABF8 00056858  41 82 00 24 */	beq lbl_8005AC1C
/* 8005ABFC 0005685C  40 80 00 30 */	bge lbl_8005AC2C
/* 8005AC00 00056860  2C 00 00 00 */	cmpwi r0, 0
/* 8005AC04 00056864  40 80 00 08 */	bge lbl_8005AC0C
/* 8005AC08 00056868  48 00 00 24 */	b lbl_8005AC2C
lbl_8005AC0C:
/* 8005AC0C 0005686C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AC10 00056870  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AC14 00056874  80 63 01 10 */	lwz r3, 0x110(r3)
/* 8005AC18 00056878  48 00 00 34 */	b lbl_8005AC4C
lbl_8005AC1C:
/* 8005AC1C 0005687C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AC20 00056880  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AC24 00056884  80 63 01 20 */	lwz r3, 0x120(r3)
/* 8005AC28 00056888  48 00 00 24 */	b lbl_8005AC4C
lbl_8005AC2C:
/* 8005AC2C 0005688C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AC30 00056890  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AC34 00056894  80 63 01 30 */	lwz r3, 0x130(r3)
/* 8005AC38 00056898  48 00 00 14 */	b lbl_8005AC4C
lbl_8005AC3C:
/* 8005AC3C 0005689C  3C 60 80 47 */	lis r3, lbl_80477968@ha
/* 8005AC40 000568A0  57 E0 10 3A */	slwi r0, r31, 2
/* 8005AC44 000568A4  38 63 79 68 */	addi r3, r3, lbl_80477968@l
/* 8005AC48 000568A8  7C 63 00 2E */	lwzx r3, r3, r0
lbl_8005AC4C:
/* 8005AC4C 000568AC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8005AC50 000568B0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8005AC54 000568B4  7C 08 03 A6 */	mtlr r0
/* 8005AC58 000568B8  38 21 00 10 */	addi r1, r1, 0x10
/* 8005AC5C 000568BC  4E 80 00 20 */	blr

.global func_8005AC60
func_8005AC60:
/* 8005AC60 000568C0  48 18 08 5C */	b func_801DB4BC

.global func_8005AC64
func_8005AC64:
/* 8005AC64 000568C4  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 8005AC68 000568C8  7C 08 02 A6 */	mflr r0
/* 8005AC6C 000568CC  90 01 00 84 */	stw r0, 0x84(r1)
/* 8005AC70 000568D0  DB E1 00 70 */	stfd f31, 0x70(r1)
/* 8005AC74 000568D4  F3 E1 00 78 */	psq_st f31, 120(r1), 0, qr0
/* 8005AC78 000568D8  2C 06 00 00 */	cmpwi r6, 0
/* 8005AC7C 000568DC  93 E1 00 6C */	stw r31, 0x6c(r1)
/* 8005AC80 000568E0  7C FF 3B 78 */	mr r31, r7
/* 8005AC84 000568E4  93 C1 00 68 */	stw r30, 0x68(r1)
/* 8005AC88 000568E8  7C DE 33 78 */	mr r30, r6
/* 8005AC8C 000568EC  93 A1 00 64 */	stw r29, 0x64(r1)
/* 8005AC90 000568F0  7C 9D 23 78 */	mr r29, r4
/* 8005AC94 000568F4  93 81 00 60 */	stw r28, 0x60(r1)
/* 8005AC98 000568F8  7C 7C 1B 78 */	mr r28, r3
/* 8005AC9C 000568FC  41 82 01 00 */	beq lbl_8005AD9C
/* 8005ACA0 00056900  38 C1 00 28 */	addi r6, r1, 0x28
/* 8005ACA4 00056904  38 A0 00 06 */	li r5, 6
/* 8005ACA8 00056908  48 1F 92 35 */	bl func_80253EDC
/* 8005ACAC 0005690C  3C 00 43 30 */	lis r0, 0x4330
/* 8005ACB0 00056910  93 C1 00 4C */	stw r30, 0x4c(r1)
/* 8005ACB4 00056914  C8 62 85 D8 */	lfd f3, lbl_80640BD8-_SDA2_BASE_(r2)
/* 8005ACB8 00056918  38 60 00 19 */	li r3, 0x19
/* 8005ACBC 0005691C  90 01 00 48 */	stw r0, 0x48(r1)
/* 8005ACC0 00056920  C0 21 00 2C */	lfs f1, 0x2c(r1)
/* 8005ACC4 00056924  C8 01 00 48 */	lfd f0, 0x48(r1)
/* 8005ACC8 00056928  93 E1 00 54 */	stw r31, 0x54(r1)
/* 8005ACCC 0005692C  EC 80 18 28 */	fsubs f4, f0, f3
/* 8005ACD0 00056930  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 8005ACD4 00056934  90 01 00 50 */	stw r0, 0x50(r1)
/* 8005ACD8 00056938  EC A1 00 28 */	fsubs f5, f1, f0
/* 8005ACDC 0005693C  C0 5D 00 38 */	lfs f2, 0x38(r29)
/* 8005ACE0 00056940  C8 01 00 50 */	lfd f0, 0x50(r1)
/* 8005ACE4 00056944  C0 22 85 C8 */	lfs f1, lbl_80640BC8-_SDA2_BASE_(r2)
/* 8005ACE8 00056948  EC 60 18 28 */	fsubs f3, f0, f3
/* 8005ACEC 0005694C  C0 02 85 CC */	lfs f0, lbl_80640BCC-_SDA2_BASE_(r2)
/* 8005ACF0 00056950  EF E4 18 24 */	fdivs f31, f4, f3
/* 8005ACF4 00056954  EC 65 07 F2 */	fmuls f3, f5, f31
/* 8005ACF8 00056958  EC 42 18 2A */	fadds f2, f2, f3
/* 8005ACFC 0005695C  D0 5D 00 3C */	stfs f2, 0x3c(r29)
/* 8005AD00 00056960  D0 5D 00 40 */	stfs f2, 0x40(r29)
/* 8005AD04 00056964  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8005AD08 00056968  D0 21 00 08 */	stfs f1, 8(r1)
/* 8005AD0C 0005696C  D0 21 00 14 */	stfs f1, 0x14(r1)
/* 8005AD10 00056970  D0 21 00 20 */	stfs f1, 0x20(r1)
/* 8005AD14 00056974  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 8005AD18 00056978  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8005AD1C 0005697C  D0 01 00 24 */	stfs f0, 0x24(r1)
/* 8005AD20 00056980  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 8005AD24 00056984  4B FF FC D5 */	bl func_8005A9F8
/* 8005AD28 00056988  7C 66 1B 78 */	mr r6, r3
/* 8005AD2C 0005698C  7F 83 E3 78 */	mr r3, r28
/* 8005AD30 00056990  7F A4 EB 78 */	mr r4, r29
/* 8005AD34 00056994  38 A0 00 02 */	li r5, 2
/* 8005AD38 00056998  48 1F 91 CD */	bl func_80253F04
/* 8005AD3C 0005699C  7F 83 E3 78 */	mr r3, r28
/* 8005AD40 000569A0  7F A4 EB 78 */	mr r4, r29
/* 8005AD44 000569A4  38 C1 00 08 */	addi r6, r1, 8
/* 8005AD48 000569A8  38 A0 00 01 */	li r5, 1
/* 8005AD4C 000569AC  48 1F 91 B9 */	bl func_80253F04
/* 8005AD50 000569B0  C0 02 85 D0 */	lfs f0, lbl_80640BD0-_SDA2_BASE_(r2)
/* 8005AD54 000569B4  38 00 00 00 */	li r0, 0
/* 8005AD58 000569B8  38 60 00 FF */	li r3, 0xff
/* 8005AD5C 000569BC  98 1D 00 0F */	stb r0, 0xf(r29)
/* 8005AD60 000569C0  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 8005AD64 000569C4  98 7D 00 0E */	stb r3, 0xe(r29)
/* 8005AD68 000569C8  98 1D 00 10 */	stb r0, 0x10(r29)
/* 8005AD6C 000569CC  40 81 00 10 */	ble lbl_8005AD7C
/* 8005AD70 000569D0  98 7D 00 0E */	stb r3, 0xe(r29)
/* 8005AD74 000569D4  98 7D 00 0F */	stb r3, 0xf(r29)
/* 8005AD78 000569D8  98 1D 00 10 */	stb r0, 0x10(r29)
lbl_8005AD7C:
/* 8005AD7C 000569DC  C0 02 85 D4 */	lfs f0, lbl_80640BD4-_SDA2_BASE_(r2)
/* 8005AD80 000569E0  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 8005AD84 000569E4  40 81 00 18 */	ble lbl_8005AD9C
/* 8005AD88 000569E8  38 60 00 00 */	li r3, 0
/* 8005AD8C 000569EC  38 00 00 FF */	li r0, 0xff
/* 8005AD90 000569F0  98 7D 00 0E */	stb r3, 0xe(r29)
/* 8005AD94 000569F4  98 1D 00 0F */	stb r0, 0xf(r29)
/* 8005AD98 000569F8  98 7D 00 10 */	stb r3, 0x10(r29)
lbl_8005AD9C:
/* 8005AD9C 000569FC  E3 E1 00 78 */	psq_l f31, 120(r1), 0, qr0
/* 8005ADA0 00056A00  80 01 00 84 */	lwz r0, 0x84(r1)
/* 8005ADA4 00056A04  CB E1 00 70 */	lfd f31, 0x70(r1)
/* 8005ADA8 00056A08  83 E1 00 6C */	lwz r31, 0x6c(r1)
/* 8005ADAC 00056A0C  83 C1 00 68 */	lwz r30, 0x68(r1)
/* 8005ADB0 00056A10  83 A1 00 64 */	lwz r29, 0x64(r1)
/* 8005ADB4 00056A14  83 81 00 60 */	lwz r28, 0x60(r1)
/* 8005ADB8 00056A18  7C 08 03 A6 */	mtlr r0
/* 8005ADBC 00056A1C  38 21 00 80 */	addi r1, r1, 0x80
/* 8005ADC0 00056A20  4E 80 00 20 */	blr

.global func_8005ADC4
func_8005ADC4:
/* 8005ADC4 00056A24  70 60 0F 88 */	andi. r0, r3, 0xf88
/* 8005ADC8 00056A28  41 82 00 0C */	beq lbl_8005ADD4
/* 8005ADCC 00056A2C  38 60 00 04 */	li r3, 4
/* 8005ADD0 00056A30  4B FF FC 28 */	b func_8005A9F8
lbl_8005ADD4:
/* 8005ADD4 00056A34  54 60 06 73 */	rlwinm. r0, r3, 0, 0x19, 0x19
/* 8005ADD8 00056A38  41 82 00 0C */	beq lbl_8005ADE4
/* 8005ADDC 00056A3C  38 60 00 03 */	li r3, 3
/* 8005ADE0 00056A40  4B FF FC 18 */	b func_8005A9F8
lbl_8005ADE4:
/* 8005ADE4 00056A44  54 60 06 B5 */	rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 8005ADE8 00056A48  41 82 00 0C */	beq lbl_8005ADF4
/* 8005ADEC 00056A4C  38 60 00 02 */	li r3, 2
/* 8005ADF0 00056A50  4B FF FC 08 */	b func_8005A9F8
lbl_8005ADF4:
/* 8005ADF4 00056A54  54 60 06 F7 */	rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 8005ADF8 00056A58  41 82 00 0C */	beq lbl_8005AE04
/* 8005ADFC 00056A5C  38 60 00 00 */	li r3, 0
/* 8005AE00 00056A60  4B FF FB F8 */	b func_8005A9F8
lbl_8005AE04:
/* 8005AE04 00056A64  54 60 07 7F */	clrlwi. r0, r3, 0x1d
/* 8005AE08 00056A68  41 82 00 0C */	beq lbl_8005AE14
/* 8005AE0C 00056A6C  38 60 00 05 */	li r3, 5
/* 8005AE10 00056A70  4B FF FB E8 */	b func_8005A9F8
lbl_8005AE14:
/* 8005AE14 00056A74  38 60 00 00 */	li r3, 0
/* 8005AE18 00056A78  4E 80 00 20 */	blr

.global func_8005AE1C
func_8005AE1C:
/* 8005AE1C 00056A7C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8005AE20 00056A80  7C 08 02 A6 */	mflr r0
/* 8005AE24 00056A84  90 01 00 14 */	stw r0, 0x14(r1)
/* 8005AE28 00056A88  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8005AE2C 00056A8C  7C 7F 1B 78 */	mr r31, r3
/* 8005AE30 00056A90  4B FF BD A5 */	bl func_80056BD4
/* 8005AE34 00056A94  2C 03 00 00 */	cmpwi r3, 0
/* 8005AE38 00056A98  41 82 00 50 */	beq lbl_8005AE88
/* 8005AE3C 00056A9C  7F E3 FB 78 */	mr r3, r31
/* 8005AE40 00056AA0  38 80 00 03 */	li r4, 3
/* 8005AE44 00056AA4  38 A0 00 00 */	li r5, 0
/* 8005AE48 00056AA8  48 38 00 B5 */	bl func_803DAEFC
/* 8005AE4C 00056AAC  2C 03 00 00 */	cmpwi r3, 0
/* 8005AE50 00056AB0  41 82 00 10 */	beq lbl_8005AE60
/* 8005AE54 00056AB4  38 60 00 2D */	li r3, 0x2d
/* 8005AE58 00056AB8  4B FF FB A1 */	bl func_8005A9F8
/* 8005AE5C 00056ABC  48 00 00 30 */	b lbl_8005AE8C
lbl_8005AE60:
/* 8005AE60 00056AC0  7F E3 FB 78 */	mr r3, r31
/* 8005AE64 00056AC4  38 80 00 9A */	li r4, 0x9a
/* 8005AE68 00056AC8  38 A0 00 00 */	li r5, 0
/* 8005AE6C 00056ACC  48 38 00 91 */	bl func_803DAEFC
/* 8005AE70 00056AD0  3C 80 80 41 */	lis r4, lbl_8040B720@ha
/* 8005AE74 00056AD4  54 60 10 3A */	slwi r0, r3, 2
/* 8005AE78 00056AD8  38 84 B7 20 */	addi r4, r4, lbl_8040B720@l
/* 8005AE7C 00056ADC  7C 64 00 2E */	lwzx r3, r4, r0
/* 8005AE80 00056AE0  4B FF FB 79 */	bl func_8005A9F8
/* 8005AE84 00056AE4  48 00 00 08 */	b lbl_8005AE8C
lbl_8005AE88:
/* 8005AE88 00056AE8  38 60 00 00 */	li r3, 0
lbl_8005AE8C:
/* 8005AE8C 00056AEC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8005AE90 00056AF0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8005AE94 00056AF4  7C 08 03 A6 */	mtlr r0
/* 8005AE98 00056AF8  38 21 00 10 */	addi r1, r1, 0x10
/* 8005AE9C 00056AFC  4E 80 00 20 */	blr

.global func_8005AEA0
func_8005AEA0:
/* 8005AEA0 00056B00  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8005AEA4 00056B04  7C 08 02 A6 */	mflr r0
/* 8005AEA8 00056B08  2C 07 00 00 */	cmpwi r7, 0
/* 8005AEAC 00056B0C  90 01 00 44 */	stw r0, 0x44(r1)
/* 8005AEB0 00056B10  3C 00 43 30 */	lis r0, 0x4330
/* 8005AEB4 00056B14  C0 64 00 00 */	lfs f3, 0(r4)
/* 8005AEB8 00056B18  C0 24 00 04 */	lfs f1, 4(r4)
/* 8005AEBC 00056B1C  C0 84 00 10 */	lfs f4, 0x10(r4)
/* 8005AEC0 00056B20  C0 04 00 18 */	lfs f0, 0x18(r4)
/* 8005AEC4 00056B24  EC A1 18 28 */	fsubs f5, f1, f3
/* 8005AEC8 00056B28  90 01 00 28 */	stw r0, 0x28(r1)
/* 8005AECC 00056B2C  EC C0 20 28 */	fsubs f6, f0, f4
/* 8005AED0 00056B30  90 01 00 30 */	stw r0, 0x30(r1)
/* 8005AED4 00056B34  41 82 00 30 */	beq lbl_8005AF04
/* 8005AED8 00056B38  90 A1 00 2C */	stw r5, 0x2c(r1)
/* 8005AEDC 00056B3C  C8 42 85 D8 */	lfd f2, lbl_80640BD8-_SDA2_BASE_(r2)
/* 8005AEE0 00056B40  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 8005AEE4 00056B44  90 C1 00 34 */	stw r6, 0x34(r1)
/* 8005AEE8 00056B48  EC 20 10 28 */	fsubs f1, f0, f2
/* 8005AEEC 00056B4C  C8 01 00 30 */	lfd f0, 0x30(r1)
/* 8005AEF0 00056B50  EC A5 08 24 */	fdivs f5, f5, f1
/* 8005AEF4 00056B54  EC 00 10 28 */	fsubs f0, f0, f2
/* 8005AEF8 00056B58  EC 05 00 32 */	fmuls f0, f5, f0
/* 8005AEFC 00056B5C  EC 63 00 2A */	fadds f3, f3, f0
/* 8005AF00 00056B60  48 00 00 2C */	b lbl_8005AF2C
lbl_8005AF04:
/* 8005AF04 00056B64  90 A1 00 2C */	stw r5, 0x2c(r1)
/* 8005AF08 00056B68  C8 42 85 D8 */	lfd f2, lbl_80640BD8-_SDA2_BASE_(r2)
/* 8005AF0C 00056B6C  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 8005AF10 00056B70  90 C1 00 34 */	stw r6, 0x34(r1)
/* 8005AF14 00056B74  EC 20 10 28 */	fsubs f1, f0, f2
/* 8005AF18 00056B78  C8 01 00 30 */	lfd f0, 0x30(r1)
/* 8005AF1C 00056B7C  EC C6 08 24 */	fdivs f6, f6, f1
/* 8005AF20 00056B80  EC 00 10 28 */	fsubs f0, f0, f2
/* 8005AF24 00056B84  EC 06 00 32 */	fmuls f0, f6, f0
/* 8005AF28 00056B88  EC 84 00 2A */	fadds f4, f4, f0
lbl_8005AF2C:
/* 8005AF2C 00056B8C  EC 23 28 2A */	fadds f1, f3, f5
/* 8005AF30 00056B90  38 A0 FF 00 */	li r5, -256
/* 8005AF34 00056B94  EC 04 30 2A */	fadds f0, f4, f6
/* 8005AF38 00056B98  D0 61 00 14 */	stfs f3, 0x14(r1)
/* 8005AF3C 00056B9C  38 81 00 08 */	addi r4, r1, 8
/* 8005AF40 00056BA0  51 05 06 3E */	rlwimi r5, r8, 0, 0x18, 0x1f
/* 8005AF44 00056BA4  D0 61 00 08 */	stfs f3, 8(r1)
/* 8005AF48 00056BA8  38 C0 00 00 */	li r6, 0
/* 8005AF4C 00056BAC  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 8005AF50 00056BB0  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8005AF54 00056BB4  D0 81 00 1C */	stfs f4, 0x1c(r1)
/* 8005AF58 00056BB8  D0 81 00 18 */	stfs f4, 0x18(r1)
/* 8005AF5C 00056BBC  D0 01 00 24 */	stfs f0, 0x24(r1)
/* 8005AF60 00056BC0  D0 01 00 20 */	stfs f0, 0x20(r1)
/* 8005AF64 00056BC4  48 00 00 15 */	bl func_8005AF78
/* 8005AF68 00056BC8  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8005AF6C 00056BCC  7C 08 03 A6 */	mtlr r0
/* 8005AF70 00056BD0  38 21 00 40 */	addi r1, r1, 0x40
/* 8005AF74 00056BD4  4E 80 00 20 */	blr

.global func_8005AF78
func_8005AF78:
/* 8005AF78 00056BD8  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8005AF7C 00056BDC  7C 08 02 A6 */	mflr r0
/* 8005AF80 00056BE0  2C 03 00 00 */	cmpwi r3, 0
/* 8005AF84 00056BE4  90 01 00 44 */	stw r0, 0x44(r1)
/* 8005AF88 00056BE8  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8005AF8C 00056BEC  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8005AF90 00056BF0  7C 9E 23 78 */	mr r30, r4
/* 8005AF94 00056BF4  41 82 02 E8 */	beq lbl_8005B27C
/* 8005AF98 00056BF8  2C 06 00 00 */	cmpwi r6, 0
/* 8005AF9C 00056BFC  40 82 00 30 */	bne lbl_8005AFCC
/* 8005AFA0 00056C00  C0 22 85 C8 */	lfs f1, lbl_80640BC8-_SDA2_BASE_(r2)
/* 8005AFA4 00056C04  C0 02 85 CC */	lfs f0, lbl_80640BCC-_SDA2_BASE_(r2)
/* 8005AFA8 00056C08  D0 21 00 28 */	stfs f1, 0x28(r1)
/* 8005AFAC 00056C0C  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 8005AFB0 00056C10  D0 01 00 20 */	stfs f0, 0x20(r1)
/* 8005AFB4 00056C14  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 8005AFB8 00056C18  D0 21 00 1C */	stfs f1, 0x1c(r1)
/* 8005AFBC 00056C1C  D0 21 00 14 */	stfs f1, 0x14(r1)
/* 8005AFC0 00056C20  D0 01 00 2C */	stfs f0, 0x2c(r1)
/* 8005AFC4 00056C24  D0 01 00 24 */	stfs f0, 0x24(r1)
/* 8005AFC8 00056C28  48 00 00 44 */	b lbl_8005B00C
lbl_8005AFCC:
/* 8005AFCC 00056C2C  C0 E6 00 00 */	lfs f7, 0(r6)
/* 8005AFD0 00056C30  C0 C6 00 08 */	lfs f6, 8(r6)
/* 8005AFD4 00056C34  C0 A6 00 10 */	lfs f5, 0x10(r6)
/* 8005AFD8 00056C38  C0 86 00 18 */	lfs f4, 0x18(r6)
/* 8005AFDC 00056C3C  C0 66 00 04 */	lfs f3, 4(r6)
/* 8005AFE0 00056C40  C0 46 00 0C */	lfs f2, 0xc(r6)
/* 8005AFE4 00056C44  C0 26 00 14 */	lfs f1, 0x14(r6)
/* 8005AFE8 00056C48  C0 06 00 1C */	lfs f0, 0x1c(r6)
/* 8005AFEC 00056C4C  D0 E1 00 10 */	stfs f7, 0x10(r1)
/* 8005AFF0 00056C50  D0 C1 00 18 */	stfs f6, 0x18(r1)
/* 8005AFF4 00056C54  D0 A1 00 20 */	stfs f5, 0x20(r1)
/* 8005AFF8 00056C58  D0 81 00 28 */	stfs f4, 0x28(r1)
/* 8005AFFC 00056C5C  D0 61 00 14 */	stfs f3, 0x14(r1)
/* 8005B000 00056C60  D0 41 00 1C */	stfs f2, 0x1c(r1)
/* 8005B004 00056C64  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 8005B008 00056C68  D0 01 00 2C */	stfs f0, 0x2c(r1)
lbl_8005B00C:
/* 8005B00C 00056C6C  81 0D A3 D8 */	lwz r8, render_context_ptr-_SDA_BASE_(r13)
/* 8005B010 00056C70  54 A0 46 3E */	srwi r0, r5, 0x18
/* 8005B014 00056C74  54 A7 86 3E */	rlwinm r7, r5, 0x10, 0x18, 0x1f
/* 8005B018 00056C78  54 A6 C6 3E */	rlwinm r6, r5, 0x18, 0x18, 0x1f
/* 8005B01C 00056C7C  80 88 16 38 */	lwz r4, 0x1638(r8)
/* 8005B020 00056C80  98 01 00 08 */	stb r0, 8(r1)
/* 8005B024 00056C84  80 04 15 3C */	lwz r0, 0x153c(r4)
/* 8005B028 00056C88  98 E1 00 09 */	stb r7, 9(r1)
/* 8005B02C 00056C8C  7C 00 18 40 */	cmplw r0, r3
/* 8005B030 00056C90  98 C1 00 0A */	stb r6, 0xa(r1)
/* 8005B034 00056C94  98 A1 00 0B */	stb r5, 0xb(r1)
/* 8005B038 00056C98  40 82 00 14 */	bne lbl_8005B04C
/* 8005B03C 00056C9C  88 03 00 07 */	lbz r0, 7(r3)
/* 8005B040 00056CA0  54 00 07 FE */	clrlwi r0, r0, 0x1f
/* 8005B044 00056CA4  2C 00 00 01 */	cmpwi r0, 1
/* 8005B048 00056CA8  40 82 00 1C */	bne lbl_8005B064
lbl_8005B04C:
/* 8005B04C 00056CAC  80 88 16 38 */	lwz r4, 0x1638(r8)
/* 8005B050 00056CB0  90 64 15 3C */	stw r3, 0x153c(r4)
/* 8005B054 00056CB4  80 68 16 38 */	lwz r3, 0x1638(r8)
/* 8005B058 00056CB8  80 03 15 38 */	lwz r0, 0x1538(r3)
/* 8005B05C 00056CBC  60 00 00 01 */	ori r0, r0, 1
/* 8005B060 00056CC0  90 03 15 38 */	stw r0, 0x1538(r3)
lbl_8005B064:
/* 8005B064 00056CC4  80 CD A3 D8 */	lwz r6, render_context_ptr-_SDA_BASE_(r13)
/* 8005B068 00056CC8  38 A0 00 02 */	li r5, 2
/* 8005B06C 00056CCC  3B E0 00 01 */	li r31, 1
/* 8005B070 00056CD0  38 80 00 04 */	li r4, 4
/* 8005B074 00056CD4  80 66 16 38 */	lwz r3, 0x1638(r6)
/* 8005B078 00056CD8  38 00 00 05 */	li r0, 5
/* 8005B07C 00056CDC  90 A3 01 84 */	stw r5, 0x184(r3)
/* 8005B080 00056CE0  80 A6 16 38 */	lwz r5, 0x1638(r6)
/* 8005B084 00056CE4  80 65 00 10 */	lwz r3, 0x10(r5)
/* 8005B088 00056CE8  60 63 00 02 */	ori r3, r3, 2
/* 8005B08C 00056CEC  90 65 00 10 */	stw r3, 0x10(r5)
/* 8005B090 00056CF0  80 A6 16 38 */	lwz r5, 0x1638(r6)
/* 8005B094 00056CF4  80 65 00 00 */	lwz r3, 0(r5)
/* 8005B098 00056CF8  60 63 00 02 */	ori r3, r3, 2
/* 8005B09C 00056CFC  90 65 00 00 */	stw r3, 0(r5)
/* 8005B0A0 00056D00  80 AD A3 D8 */	lwz r5, render_context_ptr-_SDA_BASE_(r13)
/* 8005B0A4 00056D04  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8005B0A8 00056D08  93 E3 0A 24 */	stw r31, 0xa24(r3)
/* 8005B0AC 00056D0C  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8005B0B0 00056D10  90 83 0A 28 */	stw r4, 0xa28(r3)
/* 8005B0B4 00056D14  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8005B0B8 00056D18  90 03 0A 2C */	stw r0, 0xa2c(r3)
/* 8005B0BC 00056D1C  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8005B0C0 00056D20  90 03 0A 30 */	stw r0, 0xa30(r3)
/* 8005B0C4 00056D24  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8005B0C8 00056D28  80 03 00 64 */	lwz r0, 0x64(r3)
/* 8005B0CC 00056D2C  60 00 00 01 */	ori r0, r0, 1
/* 8005B0D0 00056D30  90 03 00 64 */	stw r0, 0x64(r3)
/* 8005B0D4 00056D34  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8005B0D8 00056D38  80 03 00 00 */	lwz r0, 0(r3)
/* 8005B0DC 00056D3C  60 00 00 40 */	ori r0, r0, 0x40
/* 8005B0E0 00056D40  90 03 00 00 */	stw r0, 0(r3)
/* 8005B0E4 00056D44  80 8D 81 F0 */	lwz r4, lbl_8063D4B0-_SDA_BASE_(r13)
/* 8005B0E8 00056D48  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005B0EC 00056D4C  80 84 00 00 */	lwz r4, 0(r4)
/* 8005B0F0 00056D50  48 1D CF CD */	bl func_802380BC
/* 8005B0F4 00056D54  81 2D A3 D8 */	lwz r9, render_context_ptr-_SDA_BASE_(r13)
/* 8005B0F8 00056D58  39 00 00 00 */	li r8, 0
/* 8005B0FC 00056D5C  38 C0 00 07 */	li r6, 7
/* 8005B100 00056D60  38 A0 00 03 */	li r5, 3
/* 8005B104 00056D64  80 69 16 38 */	lwz r3, 0x1638(r9)
/* 8005B108 00056D68  38 00 00 80 */	li r0, 0x80
/* 8005B10C 00056D6C  38 80 00 04 */	li r4, 4
/* 8005B110 00056D70  9B E3 0A 36 */	stb r31, 0xa36(r3)
/* 8005B114 00056D74  80 69 16 38 */	lwz r3, 0x1638(r9)
/* 8005B118 00056D78  9B E3 0A 37 */	stb r31, 0xa37(r3)
/* 8005B11C 00056D7C  80 69 16 38 */	lwz r3, 0x1638(r9)
/* 8005B120 00056D80  99 03 0A 38 */	stb r8, 0xa38(r3)
/* 8005B124 00056D84  80 E9 16 38 */	lwz r7, 0x1638(r9)
/* 8005B128 00056D88  80 67 00 64 */	lwz r3, 0x64(r7)
/* 8005B12C 00056D8C  60 63 00 04 */	ori r3, r3, 4
/* 8005B130 00056D90  90 67 00 64 */	stw r3, 0x64(r7)
/* 8005B134 00056D94  80 E9 16 38 */	lwz r7, 0x1638(r9)
/* 8005B138 00056D98  80 67 00 00 */	lwz r3, 0(r7)
/* 8005B13C 00056D9C  60 63 00 40 */	ori r3, r3, 0x40
/* 8005B140 00056DA0  90 67 00 00 */	stw r3, 0(r7)
/* 8005B144 00056DA4  80 ED A3 D8 */	lwz r7, render_context_ptr-_SDA_BASE_(r13)
/* 8005B148 00056DA8  80 67 16 38 */	lwz r3, 0x1638(r7)
/* 8005B14C 00056DAC  90 C3 0A 44 */	stw r6, 0xa44(r3)
/* 8005B150 00056DB0  80 67 16 38 */	lwz r3, 0x1638(r7)
/* 8005B154 00056DB4  99 03 0A 50 */	stb r8, 0xa50(r3)
/* 8005B158 00056DB8  80 67 16 38 */	lwz r3, 0x1638(r7)
/* 8005B15C 00056DBC  91 03 0A 48 */	stw r8, 0xa48(r3)
/* 8005B160 00056DC0  80 67 16 38 */	lwz r3, 0x1638(r7)
/* 8005B164 00056DC4  90 C3 0A 4C */	stw r6, 0xa4c(r3)
/* 8005B168 00056DC8  80 67 16 38 */	lwz r3, 0x1638(r7)
/* 8005B16C 00056DCC  99 03 0A 51 */	stb r8, 0xa51(r3)
/* 8005B170 00056DD0  80 67 16 38 */	lwz r3, 0x1638(r7)
/* 8005B174 00056DD4  99 03 0A 52 */	stb r8, 0xa52(r3)
/* 8005B178 00056DD8  80 C7 16 38 */	lwz r6, 0x1638(r7)
/* 8005B17C 00056DDC  80 66 00 64 */	lwz r3, 0x64(r6)
/* 8005B180 00056DE0  60 63 00 10 */	ori r3, r3, 0x10
/* 8005B184 00056DE4  90 66 00 64 */	stw r3, 0x64(r6)
/* 8005B188 00056DE8  80 C7 16 38 */	lwz r6, 0x1638(r7)
/* 8005B18C 00056DEC  80 66 00 00 */	lwz r3, 0(r6)
/* 8005B190 00056DF0  60 63 00 40 */	ori r3, r3, 0x40
/* 8005B194 00056DF4  90 66 00 00 */	stw r3, 0(r6)
/* 8005B198 00056DF8  80 CD A3 D8 */	lwz r6, render_context_ptr-_SDA_BASE_(r13)
/* 8005B19C 00056DFC  80 66 16 38 */	lwz r3, 0x1638(r6)
/* 8005B1A0 00056E00  99 03 0A 3C */	stb r8, 0xa3c(r3)
/* 8005B1A4 00056E04  80 66 16 38 */	lwz r3, 0x1638(r6)
/* 8005B1A8 00056E08  90 A3 0A 40 */	stw r5, 0xa40(r3)
/* 8005B1AC 00056E0C  80 A6 16 38 */	lwz r5, 0x1638(r6)
/* 8005B1B0 00056E10  80 65 00 64 */	lwz r3, 0x64(r5)
/* 8005B1B4 00056E14  60 63 00 08 */	ori r3, r3, 8
/* 8005B1B8 00056E18  90 65 00 64 */	stw r3, 0x64(r5)
/* 8005B1BC 00056E1C  80 A6 16 38 */	lwz r5, 0x1638(r6)
/* 8005B1C0 00056E20  80 65 00 00 */	lwz r3, 0(r5)
/* 8005B1C4 00056E24  60 63 00 40 */	ori r3, r3, 0x40
/* 8005B1C8 00056E28  90 65 00 00 */	stw r3, 0(r5)
/* 8005B1CC 00056E2C  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005B1D0 00056E30  90 03 17 38 */	stw r0, 0x1738(r3)
/* 8005B1D4 00056E34  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005B1D8 00056E38  48 1D 83 55 */	bl begin_drawing
/* 8005B1DC 00056E3C  C0 3E 00 10 */	lfs f1, 0x10(r30)
/* 8005B1E0 00056E40  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 8005B1E4 00056E44  C0 1E 00 00 */	lfs f0, 0(r30)
/* 8005B1E8 00056E48  80 01 00 08 */	lwz r0, 8(r1)
/* 8005B1EC 00056E4C  D0 03 80 00 */	stfs f0, 0xCC008000@l(r3)
/* 8005B1F0 00056E50  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8005B1F4 00056E54  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 8005B1F8 00056E58  C0 21 00 14 */	lfs f1, 0x14(r1)
/* 8005B1FC 00056E5C  90 03 80 00 */	stw r0, -0x8000(r3)
/* 8005B200 00056E60  C0 41 00 18 */	lfs f2, 0x18(r1)
/* 8005B204 00056E64  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8005B208 00056E68  C0 61 00 1C */	lfs f3, 0x1c(r1)
/* 8005B20C 00056E6C  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 8005B210 00056E70  C0 81 00 20 */	lfs f4, 0x20(r1)
/* 8005B214 00056E74  C0 3E 00 14 */	lfs f1, 0x14(r30)
/* 8005B218 00056E78  C0 1E 00 04 */	lfs f0, 4(r30)
/* 8005B21C 00056E7C  C0 A1 00 24 */	lfs f5, 0x24(r1)
/* 8005B220 00056E80  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8005B224 00056E84  C0 C1 00 28 */	lfs f6, 0x28(r1)
/* 8005B228 00056E88  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 8005B22C 00056E8C  C0 E1 00 2C */	lfs f7, 0x2c(r1)
/* 8005B230 00056E90  90 03 80 00 */	stw r0, -0x8000(r3)
/* 8005B234 00056E94  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 8005B238 00056E98  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 8005B23C 00056E9C  C0 3E 00 18 */	lfs f1, 0x18(r30)
/* 8005B240 00056EA0  C0 1E 00 08 */	lfs f0, 8(r30)
/* 8005B244 00056EA4  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8005B248 00056EA8  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 8005B24C 00056EAC  90 03 80 00 */	stw r0, -0x8000(r3)
/* 8005B250 00056EB0  D0 83 80 00 */	stfs f4, -0x8000(r3)
/* 8005B254 00056EB4  D0 A3 80 00 */	stfs f5, -0x8000(r3)
/* 8005B258 00056EB8  C0 3E 00 1C */	lfs f1, 0x1c(r30)
/* 8005B25C 00056EBC  C0 1E 00 0C */	lfs f0, 0xc(r30)
/* 8005B260 00056EC0  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8005B264 00056EC4  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 8005B268 00056EC8  90 03 80 00 */	stw r0, -0x8000(r3)
/* 8005B26C 00056ECC  D0 C3 80 00 */	stfs f6, -0x8000(r3)
/* 8005B270 00056ED0  D0 E3 80 00 */	stfs f7, -0x8000(r3)
/* 8005B274 00056ED4  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005B278 00056ED8  48 1D 83 09 */	bl end_drawing
lbl_8005B27C:
/* 8005B27C 00056EDC  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8005B280 00056EE0  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8005B284 00056EE4  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 8005B288 00056EE8  7C 08 03 A6 */	mtlr r0
/* 8005B28C 00056EEC  38 21 00 40 */	addi r1, r1, 0x40
/* 8005B290 00056EF0  4E 80 00 20 */	blr

.global func_8005B294
func_8005B294:
/* 8005B294 00056EF4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8005B298 00056EF8  7C 08 02 A6 */	mflr r0
/* 8005B29C 00056EFC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8005B2A0 00056F00  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8005B2A4 00056F04  7C BF 2B 78 */	mr r31, r5
/* 8005B2A8 00056F08  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8005B2AC 00056F0C  7C 9E 23 78 */	mr r30, r4
/* 8005B2B0 00056F10  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8005B2B4 00056F14  7C 7D 1B 78 */	mr r29, r3
/* 8005B2B8 00056F18  7F E3 FB 78 */	mr r3, r31
/* 8005B2BC 00056F1C  4B FF B9 19 */	bl func_80056BD4
/* 8005B2C0 00056F20  2C 03 00 00 */	cmpwi r3, 0
/* 8005B2C4 00056F24  41 82 00 48 */	beq lbl_8005B30C
/* 8005B2C8 00056F28  7F E3 FB 78 */	mr r3, r31
/* 8005B2CC 00056F2C  38 80 00 06 */	li r4, 6
/* 8005B2D0 00056F30  38 A0 00 00 */	li r5, 0
/* 8005B2D4 00056F34  48 37 FC 29 */	bl func_803DAEFC
/* 8005B2D8 00056F38  2C 03 00 00 */	cmpwi r3, 0
/* 8005B2DC 00056F3C  41 82 00 30 */	beq lbl_8005B30C
/* 8005B2E0 00056F40  7F E3 FB 78 */	mr r3, r31
/* 8005B2E4 00056F44  4B FF BB 49 */	bl func_80056E2C
/* 8005B2E8 00056F48  2C 03 00 00 */	cmpwi r3, 0
/* 8005B2EC 00056F4C  40 82 00 20 */	bne lbl_8005B30C
/* 8005B2F0 00056F50  38 60 00 18 */	li r3, 0x18
/* 8005B2F4 00056F54  4B FF F7 05 */	bl func_8005A9F8
/* 8005B2F8 00056F58  7C 66 1B 78 */	mr r6, r3
/* 8005B2FC 00056F5C  7F A3 EB 78 */	mr r3, r29
/* 8005B300 00056F60  7F C4 F3 78 */	mr r4, r30
/* 8005B304 00056F64  38 A0 00 01 */	li r5, 1
/* 8005B308 00056F68  48 1F 8B AD */	bl func_80253EB4
lbl_8005B30C:
/* 8005B30C 00056F6C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8005B310 00056F70  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8005B314 00056F74  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8005B318 00056F78  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8005B31C 00056F7C  7C 08 03 A6 */	mtlr r0
/* 8005B320 00056F80  38 21 00 20 */	addi r1, r1, 0x20
/* 8005B324 00056F84  4E 80 00 20 */	blr

.global func_8005B328
func_8005B328:
/* 8005B328 00056F88  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8005B32C 00056F8C  7C 08 02 A6 */	mflr r0
/* 8005B330 00056F90  90 01 00 44 */	stw r0, 0x44(r1)
/* 8005B334 00056F94  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8005B338 00056F98  7C DF 33 78 */	mr r31, r6
/* 8005B33C 00056F9C  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8005B340 00056FA0  7C BE 2B 78 */	mr r30, r5
/* 8005B344 00056FA4  93 A1 00 34 */	stw r29, 0x34(r1)
/* 8005B348 00056FA8  7C 9D 23 78 */	mr r29, r4
/* 8005B34C 00056FAC  93 81 00 30 */	stw r28, 0x30(r1)
/* 8005B350 00056FB0  7C 7C 1B 78 */	mr r28, r3
/* 8005B354 00056FB4  7F C3 F3 78 */	mr r3, r30
/* 8005B358 00056FB8  4B FF B8 7D */	bl func_80056BD4
/* 8005B35C 00056FBC  2C 03 00 00 */	cmpwi r3, 0
/* 8005B360 00056FC0  41 82 00 3C */	beq lbl_8005B39C
/* 8005B364 00056FC4  7F C3 F3 78 */	mr r3, r30
/* 8005B368 00056FC8  7F E4 FB 78 */	mr r4, r31
/* 8005B36C 00056FCC  38 A1 00 08 */	addi r5, r1, 8
/* 8005B370 00056FD0  48 00 17 B5 */	bl func_8005CB24
/* 8005B374 00056FD4  7C 66 1B 78 */	mr r6, r3
/* 8005B378 00056FD8  7F 83 E3 78 */	mr r3, r28
/* 8005B37C 00056FDC  7F A4 EB 78 */	mr r4, r29
/* 8005B380 00056FE0  38 A0 00 02 */	li r5, 2
/* 8005B384 00056FE4  48 1F 8B 81 */	bl func_80253F04
/* 8005B388 00056FE8  7F 83 E3 78 */	mr r3, r28
/* 8005B38C 00056FEC  7F A4 EB 78 */	mr r4, r29
/* 8005B390 00056FF0  38 C1 00 08 */	addi r6, r1, 8
/* 8005B394 00056FF4  38 A0 00 01 */	li r5, 1
/* 8005B398 00056FF8  48 1F 8B 6D */	bl func_80253F04
lbl_8005B39C:
/* 8005B39C 00056FFC  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8005B3A0 00057000  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8005B3A4 00057004  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 8005B3A8 00057008  83 A1 00 34 */	lwz r29, 0x34(r1)
/* 8005B3AC 0005700C  83 81 00 30 */	lwz r28, 0x30(r1)
/* 8005B3B0 00057010  7C 08 03 A6 */	mtlr r0
/* 8005B3B4 00057014  38 21 00 40 */	addi r1, r1, 0x40
/* 8005B3B8 00057018  4E 80 00 20 */	blr

.global func_8005B3BC
func_8005B3BC:
/* 8005B3BC 0005701C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8005B3C0 00057020  7C 08 02 A6 */	mflr r0
/* 8005B3C4 00057024  90 01 00 24 */	stw r0, 0x24(r1)
/* 8005B3C8 00057028  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8005B3CC 0005702C  7C BF 2B 78 */	mr r31, r5
/* 8005B3D0 00057030  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8005B3D4 00057034  7C 9E 23 78 */	mr r30, r4
/* 8005B3D8 00057038  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8005B3DC 0005703C  7C 7D 1B 78 */	mr r29, r3
/* 8005B3E0 00057040  7F E3 FB 78 */	mr r3, r31
/* 8005B3E4 00057044  4B FF B8 69 */	bl func_80056C4C
/* 8005B3E8 00057048  2C 03 00 00 */	cmpwi r3, 0
/* 8005B3EC 0005704C  41 82 00 7C */	beq lbl_8005B468
/* 8005B3F0 00057050  7F E3 FB 78 */	mr r3, r31
/* 8005B3F4 00057054  38 80 00 A2 */	li r4, 0xa2
/* 8005B3F8 00057058  38 A0 00 00 */	li r5, 0
/* 8005B3FC 0005705C  48 38 25 E1 */	bl func_803DD9DC
/* 8005B400 00057060  2C 03 00 00 */	cmpwi r3, 0
/* 8005B404 00057064  40 82 00 24 */	bne lbl_8005B428
/* 8005B408 00057068  38 60 00 01 */	li r3, 1
/* 8005B40C 0005706C  4B FF F5 ED */	bl func_8005A9F8
/* 8005B410 00057070  7C 66 1B 78 */	mr r6, r3
/* 8005B414 00057074  7F A3 EB 78 */	mr r3, r29
/* 8005B418 00057078  7F C4 F3 78 */	mr r4, r30
/* 8005B41C 0005707C  38 A0 00 01 */	li r5, 1
/* 8005B420 00057080  48 1F 8A 95 */	bl func_80253EB4
/* 8005B424 00057084  48 00 00 44 */	b lbl_8005B468
lbl_8005B428:
/* 8005B428 00057088  7F E3 FB 78 */	mr r3, r31
/* 8005B42C 0005708C  38 80 00 9F */	li r4, 0x9f
/* 8005B430 00057090  38 A0 00 00 */	li r5, 0
/* 8005B434 00057094  48 38 25 A9 */	bl func_803DD9DC
/* 8005B438 00057098  2C 03 00 00 */	cmpwi r3, 0
/* 8005B43C 0005709C  41 82 00 2C */	beq lbl_8005B468
/* 8005B440 000570A0  7F E3 FB 78 */	mr r3, r31
/* 8005B444 000570A4  38 80 00 9F */	li r4, 0x9f
/* 8005B448 000570A8  38 A0 00 00 */	li r5, 0
/* 8005B44C 000570AC  48 38 25 91 */	bl func_803DD9DC
/* 8005B450 000570B0  4B FF F9 75 */	bl func_8005ADC4
/* 8005B454 000570B4  7C 66 1B 78 */	mr r6, r3
/* 8005B458 000570B8  7F A3 EB 78 */	mr r3, r29
/* 8005B45C 000570BC  7F C4 F3 78 */	mr r4, r30
/* 8005B460 000570C0  38 A0 00 01 */	li r5, 1
/* 8005B464 000570C4  48 1F 8A 51 */	bl func_80253EB4
lbl_8005B468:
/* 8005B468 000570C8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8005B46C 000570CC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8005B470 000570D0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8005B474 000570D4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8005B478 000570D8  7C 08 03 A6 */	mtlr r0
/* 8005B47C 000570DC  38 21 00 20 */	addi r1, r1, 0x20
/* 8005B480 000570E0  4E 80 00 20 */	blr

.global func_8005B484
func_8005B484:
/* 8005B484 000570E4  38 A0 00 01 */	li r5, 1
/* 8005B488 000570E8  38 6D 98 F0 */	addi r3, r13, lbl_8063EBB0-_SDA_BASE_
/* 8005B48C 000570EC  38 80 00 04 */	li r4, 4
/* 8005B490 000570F0  38 00 00 00 */	li r0, 0
/* 8005B494 000570F4  98 AD 98 F0 */	stb r5, lbl_8063EBB0-_SDA_BASE_(r13)
/* 8005B498 000570F8  B0 83 00 02 */	sth r4, 2(r3)
/* 8005B49C 000570FC  98 03 00 04 */	stb r0, 4(r3)
/* 8005B4A0 00057100  4E 80 00 20 */	blr