summaryrefslogtreecommitdiff
path: root/asm/code_8005B4A4.s
blob: c9dcb6ef5a8b5a7cce496a294cf37d872765239e (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
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
.include "macros.inc"

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

lbl_8005B4A4:
/* 8005B4A4 00057104  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8005B4A8 00057108  7C 08 02 A6 */	mflr r0
/* 8005B4AC 0005710C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8005B4B0 00057110  39 61 00 20 */	addi r11, r1, 0x20
/* 8005B4B4 00057114  48 16 BC 75 */	bl _savegpr_27
/* 8005B4B8 00057118  80 03 00 24 */	lwz r0, 0x24(r3)
/* 8005B4BC 0005711C  7C 7B 1B 78 */	mr r27, r3
/* 8005B4C0 00057120  90 83 00 28 */	stw r4, 0x28(r3)
/* 8005B4C4 00057124  7C 9C 23 78 */	mr r28, r4
/* 8005B4C8 00057128  2C 00 00 00 */	cmpwi r0, 0
/* 8005B4CC 0005712C  40 82 00 1C */	bne lbl_8005B4E8
/* 8005B4D0 00057130  1C 84 00 28 */	mulli r4, r4, 0x28
/* 8005B4D4 00057134  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8005B4D8 00057138  38 04 00 1F */	addi r0, r4, 0x1f
/* 8005B4DC 0005713C  54 04 00 34 */	rlwinm r4, r0, 0, 0, 0x1a
/* 8005B4E0 00057140  48 17 F7 B5 */	bl func_801DAC94
/* 8005B4E4 00057144  90 7B 00 24 */	stw r3, 0x24(r27)
lbl_8005B4E8:
/* 8005B4E8 00057148  1C BC 00 28 */	mulli r5, r28, 0x28
/* 8005B4EC 0005714C  80 7B 00 24 */	lwz r3, 0x24(r27)
/* 8005B4F0 00057150  38 80 00 00 */	li r4, 0
/* 8005B4F4 00057154  4B FA 8C 11 */	bl memset
/* 8005B4F8 00057158  1C 9C 26 80 */	mulli r4, r28, 0x2680
/* 8005B4FC 0005715C  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8005B500 00057160  38 A0 00 20 */	li r5, 0x20
/* 8005B504 00057164  48 17 F8 05 */	bl func_801DAD08
/* 8005B508 00057168  7C 7D 1B 78 */	mr r29, r3
/* 8005B50C 0005716C  3B C0 00 00 */	li r30, 0
/* 8005B510 00057170  3B E0 00 00 */	li r31, 0
/* 8005B514 00057174  48 00 00 40 */	b lbl_8005B554
lbl_8005B518:
/* 8005B518 00057178  80 1B 00 24 */	lwz r0, 0x24(r27)
/* 8005B51C 0005717C  7C 60 FA 14 */	add r3, r0, r31
/* 8005B520 00057180  80 03 00 08 */	lwz r0, 8(r3)
/* 8005B524 00057184  2C 00 00 00 */	cmpwi r0, 0
/* 8005B528 00057188  40 82 00 0C */	bne lbl_8005B534
/* 8005B52C 0005718C  93 A3 00 08 */	stw r29, 8(r3)
/* 8005B530 00057190  3B BD 26 80 */	addi r29, r29, 0x2680
lbl_8005B534:
/* 8005B534 00057194  80 1B 00 24 */	lwz r0, 0x24(r27)
/* 8005B538 00057198  38 80 00 00 */	li r4, 0
/* 8005B53C 0005719C  38 A0 26 80 */	li r5, 0x2680
/* 8005B540 000571A0  7C 60 FA 14 */	add r3, r0, r31
/* 8005B544 000571A4  80 63 00 08 */	lwz r3, 8(r3)
/* 8005B548 000571A8  4B FA 8B BD */	bl memset
/* 8005B54C 000571AC  3B FF 00 28 */	addi r31, r31, 0x28
/* 8005B550 000571B0  3B DE 00 01 */	addi r30, r30, 1
lbl_8005B554:
/* 8005B554 000571B4  7C 1E E0 40 */	cmplw r30, r28
/* 8005B558 000571B8  41 80 FF C0 */	blt lbl_8005B518
/* 8005B55C 000571BC  38 7B 00 30 */	addi r3, r27, 0x30
/* 8005B560 000571C0  38 80 00 00 */	li r4, 0
/* 8005B564 000571C4  38 A0 00 44 */	li r5, 0x44
/* 8005B568 000571C8  4B FA 8B 9D */	bl memset
/* 8005B56C 000571CC  38 7B 00 74 */	addi r3, r27, 0x74
/* 8005B570 000571D0  38 80 00 00 */	li r4, 0
/* 8005B574 000571D4  38 A0 00 22 */	li r5, 0x22
/* 8005B578 000571D8  4B FA 8B 8D */	bl memset
/* 8005B57C 000571DC  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005B580 000571E0  38 80 00 00 */	li r4, 0
/* 8005B584 000571E4  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8005B588 000571E8  B0 9B 00 96 */	sth r4, 0x96(r27)
/* 8005B58C 000571EC  38 63 00 04 */	addi r3, r3, 4
/* 8005B590 000571F0  38 00 00 01 */	li r0, 1
/* 8005B594 000571F4  98 9B 00 98 */	stb r4, 0x98(r27)
/* 8005B598 000571F8  39 61 00 20 */	addi r11, r1, 0x20
/* 8005B59C 000571FC  90 7B 00 20 */	stw r3, 0x20(r27)
/* 8005B5A0 00057200  90 9B 00 2C */	stw r4, 0x2c(r27)
/* 8005B5A4 00057204  98 0D 99 06 */	stb r0, lbl_8063EBC6-_SDA_BASE_(r13)
/* 8005B5A8 00057208  48 16 BB CD */	bl _restgpr_27
/* 8005B5AC 0005720C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8005B5B0 00057210  7C 08 03 A6 */	mtlr r0
/* 8005B5B4 00057214  38 21 00 20 */	addi r1, r1, 0x20
/* 8005B5B8 00057218  4E 80 00 20 */	blr
lbl_8005B5BC:
/* 8005B5BC 0005721C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8005B5C0 00057220  7C 08 02 A6 */	mflr r0
/* 8005B5C4 00057224  90 01 00 24 */	stw r0, 0x24(r1)
/* 8005B5C8 00057228  39 61 00 20 */	addi r11, r1, 0x20
/* 8005B5CC 0005722C  48 16 BB 5D */	bl _savegpr_27
/* 8005B5D0 00057230  80 03 00 AC */	lwz r0, 0xac(r3)
/* 8005B5D4 00057234  7C 7B 1B 78 */	mr r27, r3
/* 8005B5D8 00057238  90 83 00 B0 */	stw r4, 0xb0(r3)
/* 8005B5DC 0005723C  7C 9C 23 78 */	mr r28, r4
/* 8005B5E0 00057240  2C 00 00 00 */	cmpwi r0, 0
/* 8005B5E4 00057244  40 82 00 1C */	bne lbl_8005B600
/* 8005B5E8 00057248  1C 84 00 28 */	mulli r4, r4, 0x28
/* 8005B5EC 0005724C  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8005B5F0 00057250  38 04 00 1F */	addi r0, r4, 0x1f
/* 8005B5F4 00057254  54 04 00 34 */	rlwinm r4, r0, 0, 0, 0x1a
/* 8005B5F8 00057258  48 17 F6 9D */	bl func_801DAC94
/* 8005B5FC 0005725C  90 7B 00 AC */	stw r3, 0xac(r27)
lbl_8005B600:
/* 8005B600 00057260  1C BC 00 28 */	mulli r5, r28, 0x28
/* 8005B604 00057264  80 7B 00 AC */	lwz r3, 0xac(r27)
/* 8005B608 00057268  38 80 00 00 */	li r4, 0
/* 8005B60C 0005726C  4B FA 8A F9 */	bl memset
/* 8005B610 00057270  1C 9C 31 C0 */	mulli r4, r28, 0x31c0
/* 8005B614 00057274  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8005B618 00057278  38 A0 00 20 */	li r5, 0x20
/* 8005B61C 0005727C  48 17 F6 ED */	bl func_801DAD08
/* 8005B620 00057280  7C 7D 1B 78 */	mr r29, r3
/* 8005B624 00057284  3B C0 00 00 */	li r30, 0
/* 8005B628 00057288  3B E0 00 00 */	li r31, 0
/* 8005B62C 0005728C  48 00 00 40 */	b lbl_8005B66C
lbl_8005B630:
/* 8005B630 00057290  80 1B 00 AC */	lwz r0, 0xac(r27)
/* 8005B634 00057294  7C 60 FA 14 */	add r3, r0, r31
/* 8005B638 00057298  80 03 00 08 */	lwz r0, 8(r3)
/* 8005B63C 0005729C  2C 00 00 00 */	cmpwi r0, 0
/* 8005B640 000572A0  40 82 00 0C */	bne lbl_8005B64C
/* 8005B644 000572A4  93 A3 00 08 */	stw r29, 8(r3)
/* 8005B648 000572A8  3B BD 31 C0 */	addi r29, r29, 0x31c0
lbl_8005B64C:
/* 8005B64C 000572AC  80 1B 00 AC */	lwz r0, 0xac(r27)
/* 8005B650 000572B0  38 80 00 00 */	li r4, 0
/* 8005B654 000572B4  38 A0 31 C0 */	li r5, 0x31c0
/* 8005B658 000572B8  7C 60 FA 14 */	add r3, r0, r31
/* 8005B65C 000572BC  80 63 00 08 */	lwz r3, 8(r3)
/* 8005B660 000572C0  4B FA 8A A5 */	bl memset
/* 8005B664 000572C4  3B FF 00 28 */	addi r31, r31, 0x28
/* 8005B668 000572C8  3B DE 00 01 */	addi r30, r30, 1
lbl_8005B66C:
/* 8005B66C 000572CC  7C 1E E0 40 */	cmplw r30, r28
/* 8005B670 000572D0  41 80 FF C0 */	blt lbl_8005B630
/* 8005B674 000572D4  38 7B 00 B8 */	addi r3, r27, 0xb8
/* 8005B678 000572D8  38 80 00 00 */	li r4, 0
/* 8005B67C 000572DC  38 A0 00 44 */	li r5, 0x44
/* 8005B680 000572E0  4B FA 8A 85 */	bl memset
/* 8005B684 000572E4  38 7B 00 FC */	addi r3, r27, 0xfc
/* 8005B688 000572E8  38 80 00 00 */	li r4, 0
/* 8005B68C 000572EC  38 A0 00 22 */	li r5, 0x22
/* 8005B690 000572F0  4B FA 8A 75 */	bl memset
/* 8005B694 000572F4  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005B698 000572F8  38 80 00 00 */	li r4, 0
/* 8005B69C 000572FC  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8005B6A0 00057300  B0 9B 01 1E */	sth r4, 0x11e(r27)
/* 8005B6A4 00057304  38 63 00 4C */	addi r3, r3, 0x4c
/* 8005B6A8 00057308  38 00 00 01 */	li r0, 1
/* 8005B6AC 0005730C  98 9B 01 20 */	stb r4, 0x120(r27)
/* 8005B6B0 00057310  39 61 00 20 */	addi r11, r1, 0x20
/* 8005B6B4 00057314  90 7B 00 A8 */	stw r3, 0xa8(r27)
/* 8005B6B8 00057318  90 9B 00 B4 */	stw r4, 0xb4(r27)
/* 8005B6BC 0005731C  98 0D 99 07 */	stb r0, lbl_8063EBC7-_SDA_BASE_(r13)
/* 8005B6C0 00057320  48 16 BA B5 */	bl _restgpr_27
/* 8005B6C4 00057324  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8005B6C8 00057328  7C 08 03 A6 */	mtlr r0
/* 8005B6CC 0005732C  38 21 00 20 */	addi r1, r1, 0x20
/* 8005B6D0 00057330  4E 80 00 20 */	blr

.global func_8005B6D4
func_8005B6D4:
/* 8005B6D4 00057334  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005B6D8 00057338  7C 08 02 A6 */	mflr r0
/* 8005B6DC 0005733C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005B6E0 00057340  39 61 00 30 */	addi r11, r1, 0x30
/* 8005B6E4 00057344  48 16 BA 3D */	bl _savegpr_25
/* 8005B6E8 00057348  2C 04 00 00 */	cmpwi r4, 0
/* 8005B6EC 0005734C  7C 7A 1B 78 */	mr r26, r3
/* 8005B6F0 00057350  7C 9B 23 78 */	mr r27, r4
/* 8005B6F4 00057354  7C BC 2B 78 */	mr r28, r5
/* 8005B6F8 00057358  7C DD 33 78 */	mr r29, r6
/* 8005B6FC 0005735C  3B E0 00 01 */	li r31, 1
/* 8005B700 00057360  41 82 00 0C */	beq lbl_8005B70C
/* 8005B704 00057364  28 04 01 EF */	cmplwi r4, 0x1ef
/* 8005B708 00057368  40 81 00 0C */	ble lbl_8005B714
lbl_8005B70C:
/* 8005B70C 0005736C  38 60 00 01 */	li r3, 1
/* 8005B710 00057370  48 00 02 34 */	b lbl_8005B944
lbl_8005B714:
/* 8005B714 00057374  80 63 00 20 */	lwz r3, 0x20(r3)
/* 8005B718 00057378  48 33 52 05 */	bl func_8039091C
/* 8005B71C 0005737C  3F 20 80 64 */	lis r25, lbl_8063CE34@ha
/* 8005B720 00057380  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005B724 00057384  3B 39 CE 34 */	addi r25, r25, lbl_8063CE34@l
/* 8005B728 00057388  38 79 00 64 */	addi r3, r25, 0x64
/* 8005B72C 0005738C  48 33 CE B5 */	bl func_803985E0
/* 8005B730 00057390  7C 7E 1B 78 */	mr r30, r3
/* 8005B734 00057394  80 7A 00 20 */	lwz r3, 0x20(r26)
/* 8005B738 00057398  7F 64 DB 78 */	mr r4, r27
/* 8005B73C 0005739C  48 33 51 E1 */	bl func_8039091C
/* 8005B740 000573A0  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005B744 000573A4  38 79 00 64 */	addi r3, r25, 0x64
/* 8005B748 000573A8  48 33 CF 01 */	bl func_80398648
/* 8005B74C 000573AC  7C 03 F0 40 */	cmplw r3, r30
/* 8005B750 000573B0  57 9E 82 1E */	rlwinm r30, r28, 0x10, 8, 0xf
/* 8005B754 000573B4  53 7E 04 3E */	rlwimi r30, r27, 0, 0x10, 0x1f
/* 8005B758 000573B8  40 82 00 08 */	bne lbl_8005B760
/* 8005B75C 000573BC  7F 7E DB 78 */	mr r30, r27
lbl_8005B760:
/* 8005B760 000573C0  2C 1B 01 9E */	cmpwi r27, 0x19e
/* 8005B764 000573C4  40 80 00 28 */	bge lbl_8005B78C
/* 8005B768 000573C8  2C 1B 01 82 */	cmpwi r27, 0x182
/* 8005B76C 000573CC  41 82 00 44 */	beq lbl_8005B7B0
/* 8005B770 000573D0  40 80 00 10 */	bge lbl_8005B780
/* 8005B774 000573D4  2C 1B 00 C9 */	cmpwi r27, 0xc9
/* 8005B778 000573D8  41 82 00 38 */	beq lbl_8005B7B0
/* 8005B77C 000573DC  48 00 00 3C */	b lbl_8005B7B8
lbl_8005B780:
/* 8005B780 000573E0  2C 1B 01 9C */	cmpwi r27, 0x19c
/* 8005B784 000573E4  40 80 00 2C */	bge lbl_8005B7B0
/* 8005B788 000573E8  48 00 00 30 */	b lbl_8005B7B8
lbl_8005B78C:
/* 8005B78C 000573EC  2C 1B 01 ED */	cmpwi r27, 0x1ed
/* 8005B790 000573F0  40 80 00 18 */	bge lbl_8005B7A8
/* 8005B794 000573F4  2C 1B 01 A8 */	cmpwi r27, 0x1a8
/* 8005B798 000573F8  40 80 00 20 */	bge lbl_8005B7B8
/* 8005B79C 000573FC  2C 1B 01 A5 */	cmpwi r27, 0x1a5
/* 8005B7A0 00057400  40 80 00 10 */	bge lbl_8005B7B0
/* 8005B7A4 00057404  48 00 00 14 */	b lbl_8005B7B8
lbl_8005B7A8:
/* 8005B7A8 00057408  2C 1B 01 EF */	cmpwi r27, 0x1ef
/* 8005B7AC 0005740C  40 80 00 0C */	bge lbl_8005B7B8
lbl_8005B7B0:
/* 8005B7B0 00057410  57 A0 90 1A */	slwi r0, r29, 0x12
/* 8005B7B4 00057414  7F DE 03 78 */	or r30, r30, r0
lbl_8005B7B8:
/* 8005B7B8 00057418  80 BA 00 28 */	lwz r5, 0x28(r26)
/* 8005B7BC 0005741C  38 C0 00 00 */	li r6, 0
/* 8005B7C0 00057420  38 60 00 00 */	li r3, 0
/* 8005B7C4 00057424  7C A9 03 A6 */	mtctr r5
/* 8005B7C8 00057428  28 05 00 00 */	cmplwi r5, 0
/* 8005B7CC 0005742C  40 81 00 38 */	ble lbl_8005B804
lbl_8005B7D0:
/* 8005B7D0 00057430  80 9A 00 24 */	lwz r4, 0x24(r26)
/* 8005B7D4 00057434  7C 04 18 2E */	lwzx r0, r4, r3
/* 8005B7D8 00057438  7C 1E 00 40 */	cmplw r30, r0
/* 8005B7DC 0005743C  40 82 00 1C */	bne lbl_8005B7F8
/* 8005B7E0 00057440  1C 06 00 28 */	mulli r0, r6, 0x28
/* 8005B7E4 00057444  38 A0 00 02 */	li r5, 2
/* 8005B7E8 00057448  38 60 00 00 */	li r3, 0
/* 8005B7EC 0005744C  7C 84 02 14 */	add r4, r4, r0
/* 8005B7F0 00057450  98 A4 00 0E */	stb r5, 0xe(r4)
/* 8005B7F4 00057454  48 00 01 50 */	b lbl_8005B944
lbl_8005B7F8:
/* 8005B7F8 00057458  38 63 00 28 */	addi r3, r3, 0x28
/* 8005B7FC 0005745C  38 C6 00 01 */	addi r6, r6, 1
/* 8005B800 00057460  42 00 FF D0 */	bdnz lbl_8005B7D0
lbl_8005B804:
/* 8005B804 00057464  80 DA 00 2C */	lwz r6, 0x2c(r26)
/* 8005B808 00057468  7C 06 28 50 */	subf r0, r6, r5
/* 8005B80C 0005746C  7C C7 33 78 */	mr r7, r6
/* 8005B810 00057470  1C 66 00 28 */	mulli r3, r6, 0x28
/* 8005B814 00057474  7C 09 03 A6 */	mtctr r0
/* 8005B818 00057478  7C 06 28 40 */	cmplw r6, r5
/* 8005B81C 0005747C  40 80 00 38 */	bge lbl_8005B854
lbl_8005B820:
/* 8005B820 00057480  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B824 00057484  7C 80 1A 14 */	add r4, r0, r3
/* 8005B828 00057488  88 04 00 0E */	lbz r0, 0xe(r4)
/* 8005B82C 0005748C  2C 00 00 00 */	cmpwi r0, 0
/* 8005B830 00057490  40 82 00 18 */	bne lbl_8005B848
/* 8005B834 00057494  88 04 00 0D */	lbz r0, 0xd(r4)
/* 8005B838 00057498  28 00 00 02 */	cmplwi r0, 2
/* 8005B83C 0005749C  41 82 00 0C */	beq lbl_8005B848
/* 8005B840 000574A0  3B E0 00 00 */	li r31, 0
/* 8005B844 000574A4  48 00 00 10 */	b lbl_8005B854
lbl_8005B848:
/* 8005B848 000574A8  38 63 00 28 */	addi r3, r3, 0x28
/* 8005B84C 000574AC  38 E7 00 01 */	addi r7, r7, 1
/* 8005B850 000574B0  42 00 FF D0 */	bdnz lbl_8005B820
lbl_8005B854:
/* 8005B854 000574B4  2C 1F 00 00 */	cmpwi r31, 0
/* 8005B858 000574B8  41 82 00 4C */	beq lbl_8005B8A4
/* 8005B85C 000574BC  38 E0 00 00 */	li r7, 0
/* 8005B860 000574C0  38 60 00 00 */	li r3, 0
/* 8005B864 000574C4  7C C9 03 A6 */	mtctr r6
/* 8005B868 000574C8  28 06 00 00 */	cmplwi r6, 0
/* 8005B86C 000574CC  40 81 00 38 */	ble lbl_8005B8A4
lbl_8005B870:
/* 8005B870 000574D0  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B874 000574D4  7C 80 1A 14 */	add r4, r0, r3
/* 8005B878 000574D8  88 04 00 0E */	lbz r0, 0xe(r4)
/* 8005B87C 000574DC  2C 00 00 00 */	cmpwi r0, 0
/* 8005B880 000574E0  40 82 00 18 */	bne lbl_8005B898
/* 8005B884 000574E4  88 04 00 0D */	lbz r0, 0xd(r4)
/* 8005B888 000574E8  28 00 00 02 */	cmplwi r0, 2
/* 8005B88C 000574EC  41 82 00 0C */	beq lbl_8005B898
/* 8005B890 000574F0  3B E0 00 00 */	li r31, 0
/* 8005B894 000574F4  48 00 00 10 */	b lbl_8005B8A4
lbl_8005B898:
/* 8005B898 000574F8  38 63 00 28 */	addi r3, r3, 0x28
/* 8005B89C 000574FC  38 E7 00 01 */	addi r7, r7, 1
/* 8005B8A0 00057500  42 00 FF D0 */	bdnz lbl_8005B870
lbl_8005B8A4:
/* 8005B8A4 00057504  2C 1F 00 00 */	cmpwi r31, 0
/* 8005B8A8 00057508  41 82 00 0C */	beq lbl_8005B8B4
/* 8005B8AC 0005750C  38 60 00 01 */	li r3, 1
/* 8005B8B0 00057510  48 00 00 94 */	b lbl_8005B944
lbl_8005B8B4:
/* 8005B8B4 00057514  1F E7 00 28 */	mulli r31, r7, 0x28
/* 8005B8B8 00057518  80 7A 00 24 */	lwz r3, 0x24(r26)
/* 8005B8BC 0005751C  7C 03 F8 2E */	lwzx r0, r3, r31
/* 8005B8C0 00057520  2C 00 00 00 */	cmpwi r0, 0
/* 8005B8C4 00057524  41 82 00 10 */	beq lbl_8005B8D4
/* 8005B8C8 00057528  7C 63 FA 14 */	add r3, r3, r31
/* 8005B8CC 0005752C  80 63 00 08 */	lwz r3, 8(r3)
/* 8005B8D0 00057530  48 1E 2A 01 */	bl func_8023E2D0
lbl_8005B8D4:
/* 8005B8D4 00057534  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B8D8 00057538  38 A0 00 01 */	li r5, 1
/* 8005B8DC 0005753C  38 80 00 02 */	li r4, 2
/* 8005B8E0 00057540  7C 60 FA 14 */	add r3, r0, r31
/* 8005B8E4 00057544  B3 63 00 04 */	sth r27, 4(r3)
/* 8005B8E8 00057548  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B8EC 0005754C  7C 60 FA 14 */	add r3, r0, r31
/* 8005B8F0 00057550  9B 83 00 06 */	stb r28, 6(r3)
/* 8005B8F4 00057554  80 7A 00 24 */	lwz r3, 0x24(r26)
/* 8005B8F8 00057558  7F C3 F9 2E */	stwx r30, r3, r31
/* 8005B8FC 0005755C  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B900 00057560  7C 60 FA 14 */	add r3, r0, r31
/* 8005B904 00057564  98 A3 00 0D */	stb r5, 0xd(r3)
/* 8005B908 00057568  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B90C 0005756C  7C 60 FA 14 */	add r3, r0, r31
/* 8005B910 00057570  98 83 00 0E */	stb r4, 0xe(r3)
/* 8005B914 00057574  80 1A 00 24 */	lwz r0, 0x24(r26)
/* 8005B918 00057578  7C 60 FA 14 */	add r3, r0, r31
/* 8005B91C 0005757C  B3 A3 00 10 */	sth r29, 0x10(r3)
/* 8005B920 00057580  80 7A 00 2C */	lwz r3, 0x2c(r26)
/* 8005B924 00057584  80 1A 00 28 */	lwz r0, 0x28(r26)
/* 8005B928 00057588  38 63 00 01 */	addi r3, r3, 1
/* 8005B92C 0005758C  7C 03 00 40 */	cmplw r3, r0
/* 8005B930 00057590  90 7A 00 2C */	stw r3, 0x2c(r26)
/* 8005B934 00057594  40 82 00 0C */	bne lbl_8005B940
/* 8005B938 00057598  38 00 00 00 */	li r0, 0
/* 8005B93C 0005759C  90 1A 00 2C */	stw r0, 0x2c(r26)
lbl_8005B940:
/* 8005B940 000575A0  38 60 00 00 */	li r3, 0
lbl_8005B944:
/* 8005B944 000575A4  39 61 00 30 */	addi r11, r1, 0x30
/* 8005B948 000575A8  48 16 B8 25 */	bl _restgpr_25
/* 8005B94C 000575AC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005B950 000575B0  7C 08 03 A6 */	mtlr r0
/* 8005B954 000575B4  38 21 00 30 */	addi r1, r1, 0x30
/* 8005B958 000575B8  4E 80 00 20 */	blr

.global func_8005B95C
func_8005B95C:
/* 8005B95C 000575BC  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 8005B960 000575C0  7C 08 02 A6 */	mflr r0
/* 8005B964 000575C4  90 01 00 74 */	stw r0, 0x74(r1)
/* 8005B968 000575C8  DB E1 00 60 */	stfd f31, 0x60(r1)
/* 8005B96C 000575CC  F3 E1 00 68 */	psq_st f31, 104(r1), 0, qr0
/* 8005B970 000575D0  DB C1 00 50 */	stfd f30, 0x50(r1)
/* 8005B974 000575D4  F3 C1 00 58 */	psq_st f30, 88(r1), 0, qr0
/* 8005B978 000575D8  DB A1 00 40 */	stfd f29, 0x40(r1)
/* 8005B97C 000575DC  F3 A1 00 48 */	psq_st f29, 72(r1), 0, qr0
/* 8005B980 000575E0  DB 81 00 30 */	stfd f28, 0x30(r1)
/* 8005B984 000575E4  F3 81 00 38 */	psq_st f28, 56(r1), 0, qr0
/* 8005B988 000575E8  39 61 00 30 */	addi r11, r1, 0x30
/* 8005B98C 000575EC  48 16 B7 8D */	bl _savegpr_23
/* 8005B990 000575F0  2C 04 00 00 */	cmpwi r4, 0
/* 8005B994 000575F4  7C 7B 1B 78 */	mr r27, r3
/* 8005B998 000575F8  7C 97 23 78 */	mr r23, r4
/* 8005B99C 000575FC  7C B8 2B 78 */	mr r24, r5
/* 8005B9A0 00057600  7C DC 33 78 */	mr r28, r6
/* 8005B9A4 00057604  7C FD 3B 78 */	mr r29, r7
/* 8005B9A8 00057608  7D 1E 43 78 */	mr r30, r8
/* 8005B9AC 0005760C  7D 39 4B 78 */	mr r25, r9
/* 8005B9B0 00057610  41 82 00 0C */	beq lbl_8005B9BC
/* 8005B9B4 00057614  28 04 01 EF */	cmplwi r4, 0x1ef
/* 8005B9B8 00057618  40 81 00 38 */	ble lbl_8005B9F0
lbl_8005B9BC:
/* 8005B9BC 0005761C  C0 22 85 E0 */	lfs f1, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005B9C0 00057620  38 60 00 29 */	li r3, 0x29
/* 8005B9C4 00057624  C0 02 85 E4 */	lfs f0, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005B9C8 00057628  D0 28 00 0C */	stfs f1, 0xc(r8)
/* 8005B9CC 0005762C  D0 28 00 04 */	stfs f1, 4(r8)
/* 8005B9D0 00057630  D0 28 00 18 */	stfs f1, 0x18(r8)
/* 8005B9D4 00057634  D0 28 00 00 */	stfs f1, 0(r8)
/* 8005B9D8 00057638  D0 08 00 1C */	stfs f0, 0x1c(r8)
/* 8005B9DC 0005763C  D0 08 00 14 */	stfs f0, 0x14(r8)
/* 8005B9E0 00057640  D0 08 00 10 */	stfs f0, 0x10(r8)
/* 8005B9E4 00057644  D0 08 00 08 */	stfs f0, 8(r8)
/* 8005B9E8 00057648  4B FF F0 11 */	bl func_8005A9F8
/* 8005B9EC 0005764C  48 00 02 30 */	b lbl_8005BC1C
lbl_8005B9F0:
/* 8005B9F0 00057650  80 63 00 20 */	lwz r3, 0x20(r3)
/* 8005B9F4 00057654  48 33 4F 29 */	bl func_8039091C
/* 8005B9F8 00057658  3F 40 80 64 */	lis r26, lbl_8063CE34@ha
/* 8005B9FC 0005765C  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005BA00 00057660  3B 5A CE 34 */	addi r26, r26, lbl_8063CE34@l
/* 8005BA04 00057664  38 7A 00 64 */	addi r3, r26, 0x64
/* 8005BA08 00057668  48 33 CB D9 */	bl func_803985E0
/* 8005BA0C 0005766C  7C 7F 1B 78 */	mr r31, r3
/* 8005BA10 00057670  80 7B 00 20 */	lwz r3, 0x20(r27)
/* 8005BA14 00057674  7E E4 BB 78 */	mr r4, r23
/* 8005BA18 00057678  48 33 4F 05 */	bl func_8039091C
/* 8005BA1C 0005767C  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005BA20 00057680  38 7A 00 64 */	addi r3, r26, 0x64
/* 8005BA24 00057684  48 33 CC 25 */	bl func_80398648
/* 8005BA28 00057688  7C 03 F8 40 */	cmplw r3, r31
/* 8005BA2C 0005768C  57 06 82 1E */	rlwinm r6, r24, 0x10, 8, 0xf
/* 8005BA30 00057690  52 E6 04 3E */	rlwimi r6, r23, 0, 0x10, 0x1f
/* 8005BA34 00057694  40 82 00 08 */	bne lbl_8005BA3C
/* 8005BA38 00057698  7E E6 BB 78 */	mr r6, r23
lbl_8005BA3C:
/* 8005BA3C 0005769C  2C 17 01 9E */	cmpwi r23, 0x19e
/* 8005BA40 000576A0  40 80 00 28 */	bge lbl_8005BA68
/* 8005BA44 000576A4  2C 17 01 82 */	cmpwi r23, 0x182
/* 8005BA48 000576A8  41 82 00 44 */	beq lbl_8005BA8C
/* 8005BA4C 000576AC  40 80 00 10 */	bge lbl_8005BA5C
/* 8005BA50 000576B0  2C 17 00 C9 */	cmpwi r23, 0xc9
/* 8005BA54 000576B4  41 82 00 38 */	beq lbl_8005BA8C
/* 8005BA58 000576B8  48 00 00 3C */	b lbl_8005BA94
lbl_8005BA5C:
/* 8005BA5C 000576BC  2C 17 01 9C */	cmpwi r23, 0x19c
/* 8005BA60 000576C0  40 80 00 2C */	bge lbl_8005BA8C
/* 8005BA64 000576C4  48 00 00 30 */	b lbl_8005BA94
lbl_8005BA68:
/* 8005BA68 000576C8  2C 17 01 ED */	cmpwi r23, 0x1ed
/* 8005BA6C 000576CC  40 80 00 18 */	bge lbl_8005BA84
/* 8005BA70 000576D0  2C 17 01 A8 */	cmpwi r23, 0x1a8
/* 8005BA74 000576D4  40 80 00 20 */	bge lbl_8005BA94
/* 8005BA78 000576D8  2C 17 01 A5 */	cmpwi r23, 0x1a5
/* 8005BA7C 000576DC  40 80 00 10 */	bge lbl_8005BA8C
/* 8005BA80 000576E0  48 00 00 14 */	b lbl_8005BA94
lbl_8005BA84:
/* 8005BA84 000576E4  2C 17 01 EF */	cmpwi r23, 0x1ef
/* 8005BA88 000576E8  40 80 00 0C */	bge lbl_8005BA94
lbl_8005BA8C:
/* 8005BA8C 000576EC  57 20 90 1A */	slwi r0, r25, 0x12
/* 8005BA90 000576F0  7C C6 03 78 */	or r6, r6, r0
lbl_8005BA94:
/* 8005BA94 000576F4  80 1B 00 28 */	lwz r0, 0x28(r27)
/* 8005BA98 000576F8  38 A0 00 00 */	li r5, 0
/* 8005BA9C 000576FC  38 60 00 00 */	li r3, 0
/* 8005BAA0 00057700  7C 09 03 A6 */	mtctr r0
/* 8005BAA4 00057704  28 00 00 00 */	cmplwi r0, 0
/* 8005BAA8 00057708  40 81 01 44 */	ble lbl_8005BBEC
lbl_8005BAAC:
/* 8005BAAC 0005770C  80 9B 00 24 */	lwz r4, 0x24(r27)
/* 8005BAB0 00057710  7C 04 18 2E */	lwzx r0, r4, r3
/* 8005BAB4 00057714  7C 06 00 40 */	cmplw r6, r0
/* 8005BAB8 00057718  40 82 01 28 */	bne lbl_8005BBE0
/* 8005BABC 0005771C  1F E5 00 28 */	mulli r31, r5, 0x28
/* 8005BAC0 00057720  7C 64 FA 14 */	add r3, r4, r31
/* 8005BAC4 00057724  88 03 00 0D */	lbz r0, 0xd(r3)
/* 8005BAC8 00057728  28 00 00 03 */	cmplwi r0, 3
/* 8005BACC 0005772C  40 82 00 D0 */	bne lbl_8005BB9C
/* 8005BAD0 00057730  C3 A2 85 E0 */	lfs f29, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005BAD4 00057734  C3 82 85 E4 */	lfs f28, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005BAD8 00057738  FF E0 E8 90 */	fmr f31, f29
/* 8005BADC 0005773C  80 63 00 08 */	lwz r3, 8(r3)
/* 8005BAE0 00057740  FF C0 E0 90 */	fmr f30, f28
/* 8005BAE4 00057744  48 1E 2A 65 */	bl func_8023E548
/* 8005BAE8 00057748  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8005BAEC 0005774C  28 00 00 30 */	cmplwi r0, 0x30
/* 8005BAF0 00057750  40 81 00 20 */	ble lbl_8005BB10
/* 8005BAF4 00057754  2C 1C 00 00 */	cmpwi r28, 0
/* 8005BAF8 00057758  41 82 00 10 */	beq lbl_8005BB08
/* 8005BAFC 0005775C  C3 A2 85 E8 */	lfs f29, lbl_80640BE8-_SDA2_BASE_(r2)
/* 8005BB00 00057760  C3 82 85 E4 */	lfs f28, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005BB04 00057764  48 00 00 0C */	b lbl_8005BB10
lbl_8005BB08:
/* 8005BB08 00057768  C3 A2 85 E0 */	lfs f29, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005BB0C 0005776C  C3 82 85 E8 */	lfs f28, lbl_80640BE8-_SDA2_BASE_(r2)
lbl_8005BB10:
/* 8005BB10 00057770  80 1B 00 24 */	lwz r0, 0x24(r27)
/* 8005BB14 00057774  7C 60 FA 14 */	add r3, r0, r31
/* 8005BB18 00057778  80 63 00 08 */	lwz r3, 8(r3)
/* 8005BB1C 0005777C  48 1E 2A 25 */	bl func_8023E540
/* 8005BB20 00057780  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8005BB24 00057784  28 00 00 30 */	cmplwi r0, 0x30
/* 8005BB28 00057788  40 81 00 24 */	ble lbl_8005BB4C
/* 8005BB2C 0005778C  2C 1D 00 00 */	cmpwi r29, 0
/* 8005BB30 00057790  41 82 00 10 */	beq lbl_8005BB40
/* 8005BB34 00057794  C3 E2 85 E8 */	lfs f31, lbl_80640BE8-_SDA2_BASE_(r2)
/* 8005BB38 00057798  C3 C2 85 E4 */	lfs f30, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005BB3C 0005779C  48 00 00 20 */	b lbl_8005BB5C
lbl_8005BB40:
/* 8005BB40 000577A0  C3 E2 85 E0 */	lfs f31, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005BB44 000577A4  C3 C2 85 E8 */	lfs f30, lbl_80640BE8-_SDA2_BASE_(r2)
/* 8005BB48 000577A8  48 00 00 14 */	b lbl_8005BB5C
lbl_8005BB4C:
/* 8005BB4C 000577AC  2C 1D 00 00 */	cmpwi r29, 0
/* 8005BB50 000577B0  41 82 00 0C */	beq lbl_8005BB5C
/* 8005BB54 000577B4  C3 E2 85 E4 */	lfs f31, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005BB58 000577B8  C3 C2 85 E0 */	lfs f30, lbl_80640BE0-_SDA2_BASE_(r2)
lbl_8005BB5C:
/* 8005BB5C 000577BC  D3 FE 00 18 */	stfs f31, 0x18(r30)
/* 8005BB60 000577C0  38 80 00 02 */	li r4, 2
/* 8005BB64 000577C4  D3 FE 00 00 */	stfs f31, 0(r30)
/* 8005BB68 000577C8  D3 DE 00 10 */	stfs f30, 0x10(r30)
/* 8005BB6C 000577CC  D3 DE 00 08 */	stfs f30, 8(r30)
/* 8005BB70 000577D0  D3 BE 00 0C */	stfs f29, 0xc(r30)
/* 8005BB74 000577D4  D3 BE 00 04 */	stfs f29, 4(r30)
/* 8005BB78 000577D8  D3 9E 00 1C */	stfs f28, 0x1c(r30)
/* 8005BB7C 000577DC  D3 9E 00 14 */	stfs f28, 0x14(r30)
/* 8005BB80 000577E0  80 1B 00 24 */	lwz r0, 0x24(r27)
/* 8005BB84 000577E4  7C 60 FA 14 */	add r3, r0, r31
/* 8005BB88 000577E8  98 83 00 0E */	stb r4, 0xe(r3)
/* 8005BB8C 000577EC  80 1B 00 24 */	lwz r0, 0x24(r27)
/* 8005BB90 000577F0  7C 60 FA 14 */	add r3, r0, r31
/* 8005BB94 000577F4  80 63 00 08 */	lwz r3, 8(r3)
/* 8005BB98 000577F8  48 00 00 84 */	b lbl_8005BC1C
lbl_8005BB9C:
/* 8005BB9C 000577FC  C0 22 85 E0 */	lfs f1, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005BBA0 00057800  38 A0 00 02 */	li r5, 2
/* 8005BBA4 00057804  C0 02 85 E4 */	lfs f0, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005BBA8 00057808  38 60 00 29 */	li r3, 0x29
/* 8005BBAC 0005780C  D0 3E 00 0C */	stfs f1, 0xc(r30)
/* 8005BBB0 00057810  D0 3E 00 04 */	stfs f1, 4(r30)
/* 8005BBB4 00057814  D0 3E 00 18 */	stfs f1, 0x18(r30)
/* 8005BBB8 00057818  D0 3E 00 00 */	stfs f1, 0(r30)
/* 8005BBBC 0005781C  D0 1E 00 1C */	stfs f0, 0x1c(r30)
/* 8005BBC0 00057820  D0 1E 00 14 */	stfs f0, 0x14(r30)
/* 8005BBC4 00057824  D0 1E 00 10 */	stfs f0, 0x10(r30)
/* 8005BBC8 00057828  D0 1E 00 08 */	stfs f0, 8(r30)
/* 8005BBCC 0005782C  80 1B 00 24 */	lwz r0, 0x24(r27)
/* 8005BBD0 00057830  7C 80 FA 14 */	add r4, r0, r31
/* 8005BBD4 00057834  98 A4 00 0E */	stb r5, 0xe(r4)
/* 8005BBD8 00057838  4B FF EE 21 */	bl func_8005A9F8
/* 8005BBDC 0005783C  48 00 00 40 */	b lbl_8005BC1C
lbl_8005BBE0:
/* 8005BBE0 00057840  38 63 00 28 */	addi r3, r3, 0x28
/* 8005BBE4 00057844  38 A5 00 01 */	addi r5, r5, 1
/* 8005BBE8 00057848  42 00 FE C4 */	bdnz lbl_8005BAAC
lbl_8005BBEC:
/* 8005BBEC 0005784C  C0 22 85 E0 */	lfs f1, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005BBF0 00057850  38 60 00 29 */	li r3, 0x29
/* 8005BBF4 00057854  C0 02 85 E4 */	lfs f0, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005BBF8 00057858  D0 3E 00 0C */	stfs f1, 0xc(r30)
/* 8005BBFC 0005785C  D0 3E 00 04 */	stfs f1, 4(r30)
/* 8005BC00 00057860  D0 3E 00 18 */	stfs f1, 0x18(r30)
/* 8005BC04 00057864  D0 3E 00 00 */	stfs f1, 0(r30)
/* 8005BC08 00057868  D0 1E 00 1C */	stfs f0, 0x1c(r30)
/* 8005BC0C 0005786C  D0 1E 00 14 */	stfs f0, 0x14(r30)
/* 8005BC10 00057870  D0 1E 00 10 */	stfs f0, 0x10(r30)
/* 8005BC14 00057874  D0 1E 00 08 */	stfs f0, 8(r30)
/* 8005BC18 00057878  4B FF ED E1 */	bl func_8005A9F8
lbl_8005BC1C:
/* 8005BC1C 0005787C  E3 E1 00 68 */	psq_l f31, 104(r1), 0, qr0
/* 8005BC20 00057880  CB E1 00 60 */	lfd f31, 0x60(r1)
/* 8005BC24 00057884  E3 C1 00 58 */	psq_l f30, 88(r1), 0, qr0
/* 8005BC28 00057888  CB C1 00 50 */	lfd f30, 0x50(r1)
/* 8005BC2C 0005788C  E3 A1 00 48 */	psq_l f29, 72(r1), 0, qr0
/* 8005BC30 00057890  CB A1 00 40 */	lfd f29, 0x40(r1)
/* 8005BC34 00057894  E3 81 00 38 */	psq_l f28, 56(r1), 0, qr0
/* 8005BC38 00057898  39 61 00 30 */	addi r11, r1, 0x30
/* 8005BC3C 0005789C  CB 81 00 30 */	lfd f28, 0x30(r1)
/* 8005BC40 000578A0  48 16 B5 25 */	bl _restgpr_23
/* 8005BC44 000578A4  80 01 00 74 */	lwz r0, 0x74(r1)
/* 8005BC48 000578A8  7C 08 03 A6 */	mtlr r0
/* 8005BC4C 000578AC  38 21 00 70 */	addi r1, r1, 0x70
/* 8005BC50 000578B0  4E 80 00 20 */	blr
lbl_8005BC54:
/* 8005BC54 000578B4  7C 66 1B 78 */	mr r6, r3
/* 8005BC58 000578B8  38 E0 00 00 */	li r7, 0
/* 8005BC5C 000578BC  38 A0 00 01 */	li r5, 1
/* 8005BC60 000578C0  48 00 00 20 */	b lbl_8005BC80
lbl_8005BC64:
/* 8005BC64 000578C4  A0 06 00 74 */	lhz r0, 0x74(r6)
/* 8005BC68 000578C8  38 C6 00 02 */	addi r6, r6, 2
/* 8005BC6C 000578CC  80 83 00 24 */	lwz r4, 0x24(r3)
/* 8005BC70 000578D0  38 E7 00 01 */	addi r7, r7, 1
/* 8005BC74 000578D4  1C 00 00 28 */	mulli r0, r0, 0x28
/* 8005BC78 000578D8  7C 84 02 14 */	add r4, r4, r0
/* 8005BC7C 000578DC  98 A4 00 0C */	stb r5, 0xc(r4)
lbl_8005BC80:
/* 8005BC80 000578E0  A0 03 00 96 */	lhz r0, 0x96(r3)
/* 8005BC84 000578E4  7C 07 00 40 */	cmplw r7, r0
/* 8005BC88 000578E8  41 80 FF DC */	blt lbl_8005BC64
/* 8005BC8C 000578EC  4E 80 00 20 */	blr
lbl_8005BC90:
/* 8005BC90 000578F0  3C 60 80 48 */	lis r3, lbl_80478178@ha
/* 8005BC94 000578F4  54 A4 04 3E */	clrlwi r4, r5, 0x10
/* 8005BC98 000578F8  38 63 81 78 */	addi r3, r3, lbl_80478178@l
/* 8005BC9C 000578FC  4B FF FF B8 */	b lbl_8005BC54

.global func_8005BCA0
func_8005BCA0:
/* 8005BCA0 00057900  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005BCA4 00057904  7C 08 02 A6 */	mflr r0
/* 8005BCA8 00057908  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005BCAC 0005790C  39 61 00 30 */	addi r11, r1, 0x30
/* 8005BCB0 00057910  48 16 B4 65 */	bl _savegpr_22
/* 8005BCB4 00057914  88 0D 99 06 */	lbz r0, lbl_8063EBC6-_SDA_BASE_(r13)
/* 8005BCB8 00057918  7C 77 1B 78 */	mr r23, r3
/* 8005BCBC 0005791C  3B 40 00 00 */	li r26, 0
/* 8005BCC0 00057920  2C 00 00 00 */	cmpwi r0, 0
/* 8005BCC4 00057924  41 82 03 90 */	beq lbl_8005C054
/* 8005BCC8 00057928  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005BCCC 0005792C  3B 20 00 00 */	li r25, 0
/* 8005BCD0 00057930  3B 60 00 00 */	li r27, 0
/* 8005BCD4 00057934  3B 80 00 00 */	li r28, 0
/* 8005BCD8 00057938  3B A3 CE 34 */	addi r29, r3, lbl_8063CE34@l
/* 8005BCDC 0005793C  3B E0 00 03 */	li r31, 3
/* 8005BCE0 00057940  3B C0 00 02 */	li r30, 2
/* 8005BCE4 00057944  48 00 03 08 */	b lbl_8005BFEC
lbl_8005BCE8:
/* 8005BCE8 00057948  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BCEC 0005794C  7C 80 DA 14 */	add r4, r0, r27
/* 8005BCF0 00057950  7C 1B 00 2E */	lwzx r0, r27, r0
/* 8005BCF4 00057954  2C 00 00 00 */	cmpwi r0, 0
/* 8005BCF8 00057958  41 82 02 EC */	beq lbl_8005BFE4
/* 8005BCFC 0005795C  88 64 00 0E */	lbz r3, 0xe(r4)
/* 8005BD00 00057960  2C 03 00 00 */	cmpwi r3, 0
/* 8005BD04 00057964  41 82 00 0C */	beq lbl_8005BD10
/* 8005BD08 00057968  38 03 FF FF */	addi r0, r3, -1
/* 8005BD0C 0005796C  98 04 00 0E */	stb r0, 0xe(r4)
lbl_8005BD10:
/* 8005BD10 00057970  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BD14 00057974  7C 60 DA 14 */	add r3, r0, r27
/* 8005BD18 00057978  88 03 00 0D */	lbz r0, 0xd(r3)
/* 8005BD1C 0005797C  2C 00 00 02 */	cmpwi r0, 2
/* 8005BD20 00057980  41 82 01 88 */	beq lbl_8005BEA8
/* 8005BD24 00057984  40 80 02 C0 */	bge lbl_8005BFE4
/* 8005BD28 00057988  2C 00 00 01 */	cmpwi r0, 1
/* 8005BD2C 0005798C  40 80 00 0C */	bge lbl_8005BD38
/* 8005BD30 00057990  48 00 02 B4 */	b lbl_8005BFE4
/* 8005BD34 00057994  48 00 02 B0 */	b lbl_8005BFE4
lbl_8005BD38:
/* 8005BD38 00057998  88 17 00 98 */	lbz r0, 0x98(r23)
/* 8005BD3C 0005799C  A2 C3 00 04 */	lhz r22, 4(r3)
/* 8005BD40 000579A0  2C 00 00 00 */	cmpwi r0, 0
/* 8005BD44 000579A4  A3 03 00 10 */	lhz r24, 0x10(r3)
/* 8005BD48 000579A8  40 82 02 9C */	bne lbl_8005BFE4
/* 8005BD4C 000579AC  A0 17 00 96 */	lhz r0, 0x96(r23)
/* 8005BD50 000579B0  28 00 00 10 */	cmplwi r0, 0x10
/* 8005BD54 000579B4  40 80 02 90 */	bge lbl_8005BFE4
/* 8005BD58 000579B8  80 77 00 20 */	lwz r3, 0x20(r23)
/* 8005BD5C 000579BC  7E C4 B3 78 */	mr r4, r22
/* 8005BD60 000579C0  48 33 4B BD */	bl func_8039091C
/* 8005BD64 000579C4  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BD68 000579C8  7C 64 1B 78 */	mr r4, r3
/* 8005BD6C 000579CC  2C 16 01 9E */	cmpwi r22, 0x19e
/* 8005BD70 000579D0  7C 60 DA 14 */	add r3, r0, r27
/* 8005BD74 000579D4  9B 83 00 0C */	stb r28, 0xc(r3)
/* 8005BD78 000579D8  40 80 00 28 */	bge lbl_8005BDA0
/* 8005BD7C 000579DC  2C 16 01 82 */	cmpwi r22, 0x182
/* 8005BD80 000579E0  41 82 00 44 */	beq lbl_8005BDC4
/* 8005BD84 000579E4  40 80 00 10 */	bge lbl_8005BD94
/* 8005BD88 000579E8  2C 16 00 C9 */	cmpwi r22, 0xc9
/* 8005BD8C 000579EC  41 82 00 38 */	beq lbl_8005BDC4
/* 8005BD90 000579F0  48 00 00 88 */	b lbl_8005BE18
lbl_8005BD94:
/* 8005BD94 000579F4  2C 16 01 9C */	cmpwi r22, 0x19c
/* 8005BD98 000579F8  40 80 00 2C */	bge lbl_8005BDC4
/* 8005BD9C 000579FC  48 00 00 7C */	b lbl_8005BE18
lbl_8005BDA0:
/* 8005BDA0 00057A00  2C 16 01 ED */	cmpwi r22, 0x1ed
/* 8005BDA4 00057A04  40 80 00 18 */	bge lbl_8005BDBC
/* 8005BDA8 00057A08  2C 16 01 A8 */	cmpwi r22, 0x1a8
/* 8005BDAC 00057A0C  40 80 00 6C */	bge lbl_8005BE18
/* 8005BDB0 00057A10  2C 16 01 A5 */	cmpwi r22, 0x1a5
/* 8005BDB4 00057A14  40 80 00 10 */	bge lbl_8005BDC4
/* 8005BDB8 00057A18  48 00 00 60 */	b lbl_8005BE18
lbl_8005BDBC:
/* 8005BDBC 00057A1C  2C 16 01 EF */	cmpwi r22, 0x1ef
/* 8005BDC0 00057A20  40 80 00 58 */	bge lbl_8005BE18
lbl_8005BDC4:
/* 8005BDC4 00057A24  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BDC8 00057A28  7C 60 DA 14 */	add r3, r0, r27
/* 8005BDCC 00057A2C  88 03 00 06 */	lbz r0, 6(r3)
/* 8005BDD0 00057A30  28 00 00 01 */	cmplwi r0, 1
/* 8005BDD4 00057A34  40 82 00 24 */	bne lbl_8005BDF8
/* 8005BDD8 00057A38  54 80 04 3E */	clrlwi r0, r4, 0x10
/* 8005BDDC 00057A3C  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005BDE0 00057A40  7C 80 C2 14 */	add r4, r0, r24
/* 8005BDE4 00057A44  48 33 C8 65 */	bl func_80398648
/* 8005BDE8 00057A48  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BDEC 00057A4C  7C 80 DA 14 */	add r4, r0, r27
/* 8005BDF0 00057A50  90 64 00 14 */	stw r3, 0x14(r4)
/* 8005BDF4 00057A54  48 00 00 6C */	b lbl_8005BE60
lbl_8005BDF8:
/* 8005BDF8 00057A58  54 80 04 3E */	clrlwi r0, r4, 0x10
/* 8005BDFC 00057A5C  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005BE00 00057A60  7C 80 C2 14 */	add r4, r0, r24
/* 8005BE04 00057A64  48 33 C7 DD */	bl func_803985E0
/* 8005BE08 00057A68  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BE0C 00057A6C  7C 80 DA 14 */	add r4, r0, r27
/* 8005BE10 00057A70  90 64 00 14 */	stw r3, 0x14(r4)
/* 8005BE14 00057A74  48 00 00 4C */	b lbl_8005BE60
lbl_8005BE18:
/* 8005BE18 00057A78  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BE1C 00057A7C  7C 60 DA 14 */	add r3, r0, r27
/* 8005BE20 00057A80  88 03 00 06 */	lbz r0, 6(r3)
/* 8005BE24 00057A84  28 00 00 01 */	cmplwi r0, 1
/* 8005BE28 00057A88  40 82 00 20 */	bne lbl_8005BE48
/* 8005BE2C 00057A8C  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005BE30 00057A90  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8005BE34 00057A94  48 33 C8 15 */	bl func_80398648
/* 8005BE38 00057A98  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BE3C 00057A9C  7C 80 DA 14 */	add r4, r0, r27
/* 8005BE40 00057AA0  90 64 00 14 */	stw r3, 0x14(r4)
/* 8005BE44 00057AA4  48 00 00 1C */	b lbl_8005BE60
lbl_8005BE48:
/* 8005BE48 00057AA8  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005BE4C 00057AAC  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8005BE50 00057AB0  48 33 C7 91 */	bl func_803985E0
/* 8005BE54 00057AB4  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BE58 00057AB8  7C 80 DA 14 */	add r4, r0, r27
/* 8005BE5C 00057ABC  90 64 00 14 */	stw r3, 0x14(r4)
lbl_8005BE60:
/* 8005BE60 00057AC0  80 77 00 24 */	lwz r3, 0x24(r23)
/* 8005BE64 00057AC4  A0 17 00 96 */	lhz r0, 0x96(r23)
/* 8005BE68 00057AC8  7C 63 DA 14 */	add r3, r3, r27
/* 8005BE6C 00057ACC  54 00 10 3A */	slwi r0, r0, 2
/* 8005BE70 00057AD0  80 83 00 14 */	lwz r4, 0x14(r3)
/* 8005BE74 00057AD4  7C 77 02 14 */	add r3, r23, r0
/* 8005BE78 00057AD8  90 83 00 30 */	stw r4, 0x30(r3)
/* 8005BE7C 00057ADC  A0 17 00 96 */	lhz r0, 0x96(r23)
/* 8005BE80 00057AE0  54 00 08 3C */	slwi r0, r0, 1
/* 8005BE84 00057AE4  7C 77 02 14 */	add r3, r23, r0
/* 8005BE88 00057AE8  B3 23 00 74 */	sth r25, 0x74(r3)
/* 8005BE8C 00057AEC  A0 77 00 96 */	lhz r3, 0x96(r23)
/* 8005BE90 00057AF0  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BE94 00057AF4  38 63 00 01 */	addi r3, r3, 1
/* 8005BE98 00057AF8  B0 77 00 96 */	sth r3, 0x96(r23)
/* 8005BE9C 00057AFC  7C 60 DA 14 */	add r3, r0, r27
/* 8005BEA0 00057B00  9B C3 00 0D */	stb r30, 0xd(r3)
/* 8005BEA4 00057B04  48 00 01 40 */	b lbl_8005BFE4
lbl_8005BEA8:
/* 8005BEA8 00057B08  88 03 00 0C */	lbz r0, 0xc(r3)
/* 8005BEAC 00057B0C  2C 00 00 00 */	cmpwi r0, 0
/* 8005BEB0 00057B10  41 82 01 34 */	beq lbl_8005BFE4
/* 8005BEB4 00057B14  80 83 00 14 */	lwz r4, 0x14(r3)
/* 8005BEB8 00057B18  38 60 03 E9 */	li r3, 0x3e9
/* 8005BEBC 00057B1C  48 17 F6 01 */	bl func_801DB4BC
/* 8005BEC0 00057B20  88 03 00 07 */	lbz r0, 7(r3)
/* 8005BEC4 00057B24  54 00 06 3C */	rlwinm r0, r0, 0, 0x18, 0x1e
/* 8005BEC8 00057B28  98 03 00 07 */	stb r0, 7(r3)
/* 8005BECC 00057B2C  80 83 00 28 */	lwz r4, 0x28(r3)
/* 8005BED0 00057B30  54 80 00 01 */	rlwinm. r0, r4, 0, 0, 0
/* 8005BED4 00057B34  41 82 00 0C */	beq lbl_8005BEE0
/* 8005BED8 00057B38  7C 03 20 50 */	subf r0, r3, r4
/* 8005BEDC 00057B3C  90 03 00 28 */	stw r0, 0x28(r3)
lbl_8005BEE0:
/* 8005BEE0 00057B40  80 03 00 08 */	lwz r0, 8(r3)
/* 8005BEE4 00057B44  2C 00 00 01 */	cmpwi r0, 1
/* 8005BEE8 00057B48  41 81 00 18 */	bgt lbl_8005BF00
/* 8005BEEC 00057B4C  80 83 00 48 */	lwz r4, 0x48(r3)
/* 8005BEF0 00057B50  54 80 00 01 */	rlwinm. r0, r4, 0, 0, 0
/* 8005BEF4 00057B54  41 82 00 0C */	beq lbl_8005BF00
/* 8005BEF8 00057B58  7C 03 20 50 */	subf r0, r3, r4
/* 8005BEFC 00057B5C  90 03 00 48 */	stw r0, 0x48(r3)
lbl_8005BF00:
/* 8005BF00 00057B60  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BF04 00057B64  7C 64 1B 78 */	mr r4, r3
/* 8005BF08 00057B68  38 A0 26 80 */	li r5, 0x2680
/* 8005BF0C 00057B6C  7C 60 DA 14 */	add r3, r0, r27
/* 8005BF10 00057B70  80 63 00 08 */	lwz r3, 8(r3)
/* 8005BF14 00057B74  4B FA 80 ED */	bl memcpy
/* 8005BF18 00057B78  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BF1C 00057B7C  38 60 03 E9 */	li r3, 0x3e9
/* 8005BF20 00057B80  7C 80 DA 14 */	add r4, r0, r27
/* 8005BF24 00057B84  80 84 00 14 */	lwz r4, 0x14(r4)
/* 8005BF28 00057B88  48 17 F7 1D */	bl func_801DB644
/* 8005BF2C 00057B8C  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BF30 00057B90  7C 60 DA 14 */	add r3, r0, r27
/* 8005BF34 00057B94  80 63 00 08 */	lwz r3, 8(r3)
/* 8005BF38 00057B98  48 1E 17 95 */	bl func_8023D6CC
/* 8005BF3C 00057B9C  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8005BF40 00057BA0  7C 78 1B 78 */	mr r24, r3
/* 8005BF44 00057BA4  88 04 00 7A */	lbz r0, 0x7a(r4)
/* 8005BF48 00057BA8  2C 00 00 00 */	cmpwi r0, 0
/* 8005BF4C 00057BAC  41 82 00 38 */	beq lbl_8005BF84
/* 8005BF50 00057BB0  2C 03 00 00 */	cmpwi r3, 0
/* 8005BF54 00057BB4  41 82 00 30 */	beq lbl_8005BF84
/* 8005BF58 00057BB8  80 A3 00 1C */	lwz r5, 0x1c(r3)
/* 8005BF5C 00057BBC  2C 05 00 02 */	cmpwi r5, 2
/* 8005BF60 00057BC0  40 80 00 08 */	bge lbl_8005BF68
/* 8005BF64 00057BC4  38 A0 00 02 */	li r5, 2
lbl_8005BF68:
/* 8005BF68 00057BC8  80 98 00 18 */	lwz r4, 0x18(r24)
/* 8005BF6C 00057BCC  7F 03 C3 78 */	mr r3, r24
/* 8005BF70 00057BD0  2C 04 00 02 */	cmpwi r4, 2
/* 8005BF74 00057BD4  40 80 00 08 */	bge lbl_8005BF7C
/* 8005BF78 00057BD8  38 80 00 02 */	li r4, 2
lbl_8005BF7C:
/* 8005BF7C 00057BDC  80 D8 00 20 */	lwz r6, 0x20(r24)
/* 8005BF80 00057BE0  48 1E 24 49 */	bl func_8023E3C8
lbl_8005BF84:
/* 8005BF84 00057BE4  7F 03 C3 78 */	mr r3, r24
/* 8005BF88 00057BE8  38 80 26 80 */	li r4, 0x2680
/* 8005BF8C 00057BEC  48 20 E6 C9 */	bl DCFlushRange
/* 8005BF90 00057BF0  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005BF94 00057BF4  A0 03 16 FE */	lhz r0, 0x16fe(r3)
/* 8005BF98 00057BF8  60 00 00 02 */	ori r0, r0, 2
/* 8005BF9C 00057BFC  B0 03 16 FE */	sth r0, 0x16fe(r3)
/* 8005BFA0 00057C00  80 17 00 24 */	lwz r0, 0x24(r23)
/* 8005BFA4 00057C04  7C 60 DA 14 */	add r3, r0, r27
/* 8005BFA8 00057C08  9B E3 00 0D */	stb r31, 0xd(r3)
/* 8005BFAC 00057C0C  A0 77 00 96 */	lhz r3, 0x96(r23)
/* 8005BFB0 00057C10  38 63 FF FF */	addi r3, r3, -1
/* 8005BFB4 00057C14  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8005BFB8 00057C18  B0 77 00 96 */	sth r3, 0x96(r23)
/* 8005BFBC 00057C1C  7C 77 02 14 */	add r3, r23, r0
/* 8005BFC0 00057C20  93 83 00 30 */	stw r28, 0x30(r3)
/* 8005BFC4 00057C24  A0 17 00 96 */	lhz r0, 0x96(r23)
/* 8005BFC8 00057C28  54 00 08 3C */	slwi r0, r0, 1
/* 8005BFCC 00057C2C  7C 77 02 14 */	add r3, r23, r0
/* 8005BFD0 00057C30  B3 83 00 74 */	sth r28, 0x74(r3)
/* 8005BFD4 00057C34  A0 17 00 96 */	lhz r0, 0x96(r23)
/* 8005BFD8 00057C38  2C 00 00 00 */	cmpwi r0, 0
/* 8005BFDC 00057C3C  40 82 00 08 */	bne lbl_8005BFE4
/* 8005BFE0 00057C40  3B 40 00 01 */	li r26, 1
lbl_8005BFE4:
/* 8005BFE4 00057C44  3B 7B 00 28 */	addi r27, r27, 0x28
/* 8005BFE8 00057C48  3B 39 00 01 */	addi r25, r25, 1
lbl_8005BFEC:
/* 8005BFEC 00057C4C  80 17 00 28 */	lwz r0, 0x28(r23)
/* 8005BFF0 00057C50  7C 19 00 40 */	cmplw r25, r0
/* 8005BFF4 00057C54  41 80 FC F4 */	blt lbl_8005BCE8
/* 8005BFF8 00057C58  88 17 00 98 */	lbz r0, 0x98(r23)
/* 8005BFFC 00057C5C  2C 00 00 00 */	cmpwi r0, 0
/* 8005C000 00057C60  40 82 00 3C */	bne lbl_8005C03C
/* 8005C004 00057C64  A0 17 00 96 */	lhz r0, 0x96(r23)
/* 8005C008 00057C68  2C 00 00 00 */	cmpwi r0, 0
/* 8005C00C 00057C6C  41 82 00 30 */	beq lbl_8005C03C
/* 8005C010 00057C70  38 00 00 01 */	li r0, 1
/* 8005C014 00057C74  38 60 03 E9 */	li r3, 0x3e9
/* 8005C018 00057C78  98 17 00 98 */	stb r0, 0x98(r23)
/* 8005C01C 00057C7C  48 1E D9 51 */	bl func_8024996C
/* 8005C020 00057C80  3C A0 80 06 */	lis r5, lbl_8005BC90@ha
/* 8005C024 00057C84  A0 F7 00 96 */	lhz r7, 0x96(r23)
/* 8005C028 00057C88  38 97 00 30 */	addi r4, r23, 0x30
/* 8005C02C 00057C8C  38 60 03 E9 */	li r3, 0x3e9
/* 8005C030 00057C90  38 A5 BC 90 */	addi r5, r5, lbl_8005BC90@l
/* 8005C034 00057C94  38 C0 00 00 */	li r6, 0
/* 8005C038 00057C98  48 1E D7 85 */	bl func_802497BC
lbl_8005C03C:
/* 8005C03C 00057C9C  2C 1A 00 00 */	cmpwi r26, 0
/* 8005C040 00057CA0  41 82 00 14 */	beq lbl_8005C054
/* 8005C044 00057CA4  38 60 03 E9 */	li r3, 0x3e9
/* 8005C048 00057CA8  48 1E D9 25 */	bl func_8024996C
/* 8005C04C 00057CAC  38 00 00 00 */	li r0, 0
/* 8005C050 00057CB0  98 17 00 98 */	stb r0, 0x98(r23)
lbl_8005C054:
/* 8005C054 00057CB4  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C058 00057CB8  48 16 B1 09 */	bl _restgpr_22
/* 8005C05C 00057CBC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005C060 00057CC0  7C 08 03 A6 */	mtlr r0
/* 8005C064 00057CC4  38 21 00 30 */	addi r1, r1, 0x30
/* 8005C068 00057CC8  4E 80 00 20 */	blr

.global func_8005C06C
func_8005C06C:
/* 8005C06C 00057CCC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005C070 00057CD0  7C 08 02 A6 */	mflr r0
/* 8005C074 00057CD4  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005C078 00057CD8  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C07C 00057CDC  48 16 B0 A5 */	bl _savegpr_25
/* 8005C080 00057CE0  2C 04 00 00 */	cmpwi r4, 0
/* 8005C084 00057CE4  7C 7A 1B 78 */	mr r26, r3
/* 8005C088 00057CE8  7C 9B 23 78 */	mr r27, r4
/* 8005C08C 00057CEC  7C BC 2B 78 */	mr r28, r5
/* 8005C090 00057CF0  7C DD 33 78 */	mr r29, r6
/* 8005C094 00057CF4  3B E0 00 01 */	li r31, 1
/* 8005C098 00057CF8  41 82 00 0C */	beq lbl_8005C0A4
/* 8005C09C 00057CFC  28 04 01 EF */	cmplwi r4, 0x1ef
/* 8005C0A0 00057D00  40 81 00 0C */	ble lbl_8005C0AC
lbl_8005C0A4:
/* 8005C0A4 00057D04  38 60 00 01 */	li r3, 1
/* 8005C0A8 00057D08  48 00 02 34 */	b lbl_8005C2DC
lbl_8005C0AC:
/* 8005C0AC 00057D0C  80 63 00 A8 */	lwz r3, 0xa8(r3)
/* 8005C0B0 00057D10  48 33 A9 7D */	bl func_80396A2C
/* 8005C0B4 00057D14  3F 20 80 64 */	lis r25, lbl_8063CE34@ha
/* 8005C0B8 00057D18  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005C0BC 00057D1C  3B 39 CE 34 */	addi r25, r25, lbl_8063CE34@l
/* 8005C0C0 00057D20  38 79 00 64 */	addi r3, r25, 0x64
/* 8005C0C4 00057D24  48 33 C5 51 */	bl func_80398614
/* 8005C0C8 00057D28  7C 7E 1B 78 */	mr r30, r3
/* 8005C0CC 00057D2C  80 7A 00 A8 */	lwz r3, 0xa8(r26)
/* 8005C0D0 00057D30  7F 64 DB 78 */	mr r4, r27
/* 8005C0D4 00057D34  48 33 A9 59 */	bl func_80396A2C
/* 8005C0D8 00057D38  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005C0DC 00057D3C  38 79 00 64 */	addi r3, r25, 0x64
/* 8005C0E0 00057D40  48 33 C5 9D */	bl func_8039867C
/* 8005C0E4 00057D44  7C 03 F0 40 */	cmplw r3, r30
/* 8005C0E8 00057D48  57 9E 82 1E */	rlwinm r30, r28, 0x10, 8, 0xf
/* 8005C0EC 00057D4C  53 7E 04 3E */	rlwimi r30, r27, 0, 0x10, 0x1f
/* 8005C0F0 00057D50  40 82 00 08 */	bne lbl_8005C0F8
/* 8005C0F4 00057D54  7F 7E DB 78 */	mr r30, r27
lbl_8005C0F8:
/* 8005C0F8 00057D58  2C 1B 01 9E */	cmpwi r27, 0x19e
/* 8005C0FC 00057D5C  40 80 00 28 */	bge lbl_8005C124
/* 8005C100 00057D60  2C 1B 01 82 */	cmpwi r27, 0x182
/* 8005C104 00057D64  41 82 00 44 */	beq lbl_8005C148
/* 8005C108 00057D68  40 80 00 10 */	bge lbl_8005C118
/* 8005C10C 00057D6C  2C 1B 00 C9 */	cmpwi r27, 0xc9
/* 8005C110 00057D70  41 82 00 38 */	beq lbl_8005C148
/* 8005C114 00057D74  48 00 00 3C */	b lbl_8005C150
lbl_8005C118:
/* 8005C118 00057D78  2C 1B 01 9C */	cmpwi r27, 0x19c
/* 8005C11C 00057D7C  40 80 00 2C */	bge lbl_8005C148
/* 8005C120 00057D80  48 00 00 30 */	b lbl_8005C150
lbl_8005C124:
/* 8005C124 00057D84  2C 1B 01 ED */	cmpwi r27, 0x1ed
/* 8005C128 00057D88  40 80 00 18 */	bge lbl_8005C140
/* 8005C12C 00057D8C  2C 1B 01 A8 */	cmpwi r27, 0x1a8
/* 8005C130 00057D90  40 80 00 20 */	bge lbl_8005C150
/* 8005C134 00057D94  2C 1B 01 A5 */	cmpwi r27, 0x1a5
/* 8005C138 00057D98  40 80 00 10 */	bge lbl_8005C148
/* 8005C13C 00057D9C  48 00 00 14 */	b lbl_8005C150
lbl_8005C140:
/* 8005C140 00057DA0  2C 1B 01 EF */	cmpwi r27, 0x1ef
/* 8005C144 00057DA4  40 80 00 0C */	bge lbl_8005C150
lbl_8005C148:
/* 8005C148 00057DA8  57 A0 90 1A */	slwi r0, r29, 0x12
/* 8005C14C 00057DAC  7F DE 03 78 */	or r30, r30, r0
lbl_8005C150:
/* 8005C150 00057DB0  80 BA 00 B0 */	lwz r5, 0xb0(r26)
/* 8005C154 00057DB4  38 C0 00 00 */	li r6, 0
/* 8005C158 00057DB8  38 60 00 00 */	li r3, 0
/* 8005C15C 00057DBC  7C A9 03 A6 */	mtctr r5
/* 8005C160 00057DC0  28 05 00 00 */	cmplwi r5, 0
/* 8005C164 00057DC4  40 81 00 38 */	ble lbl_8005C19C
lbl_8005C168:
/* 8005C168 00057DC8  80 9A 00 AC */	lwz r4, 0xac(r26)
/* 8005C16C 00057DCC  7C 04 18 2E */	lwzx r0, r4, r3
/* 8005C170 00057DD0  7C 1E 00 40 */	cmplw r30, r0
/* 8005C174 00057DD4  40 82 00 1C */	bne lbl_8005C190
/* 8005C178 00057DD8  1C 06 00 28 */	mulli r0, r6, 0x28
/* 8005C17C 00057DDC  38 A0 00 02 */	li r5, 2
/* 8005C180 00057DE0  38 60 00 00 */	li r3, 0
/* 8005C184 00057DE4  7C 84 02 14 */	add r4, r4, r0
/* 8005C188 00057DE8  98 A4 00 0E */	stb r5, 0xe(r4)
/* 8005C18C 00057DEC  48 00 01 50 */	b lbl_8005C2DC
lbl_8005C190:
/* 8005C190 00057DF0  38 63 00 28 */	addi r3, r3, 0x28
/* 8005C194 00057DF4  38 C6 00 01 */	addi r6, r6, 1
/* 8005C198 00057DF8  42 00 FF D0 */	bdnz lbl_8005C168
lbl_8005C19C:
/* 8005C19C 00057DFC  80 DA 00 B4 */	lwz r6, 0xb4(r26)
/* 8005C1A0 00057E00  7C 06 28 50 */	subf r0, r6, r5
/* 8005C1A4 00057E04  7C C7 33 78 */	mr r7, r6
/* 8005C1A8 00057E08  1C 66 00 28 */	mulli r3, r6, 0x28
/* 8005C1AC 00057E0C  7C 09 03 A6 */	mtctr r0
/* 8005C1B0 00057E10  7C 06 28 40 */	cmplw r6, r5
/* 8005C1B4 00057E14  40 80 00 38 */	bge lbl_8005C1EC
lbl_8005C1B8:
/* 8005C1B8 00057E18  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C1BC 00057E1C  7C 80 1A 14 */	add r4, r0, r3
/* 8005C1C0 00057E20  88 04 00 0E */	lbz r0, 0xe(r4)
/* 8005C1C4 00057E24  2C 00 00 00 */	cmpwi r0, 0
/* 8005C1C8 00057E28  40 82 00 18 */	bne lbl_8005C1E0
/* 8005C1CC 00057E2C  88 04 00 0D */	lbz r0, 0xd(r4)
/* 8005C1D0 00057E30  28 00 00 02 */	cmplwi r0, 2
/* 8005C1D4 00057E34  41 82 00 0C */	beq lbl_8005C1E0
/* 8005C1D8 00057E38  3B E0 00 00 */	li r31, 0
/* 8005C1DC 00057E3C  48 00 00 10 */	b lbl_8005C1EC
lbl_8005C1E0:
/* 8005C1E0 00057E40  38 63 00 28 */	addi r3, r3, 0x28
/* 8005C1E4 00057E44  38 E7 00 01 */	addi r7, r7, 1
/* 8005C1E8 00057E48  42 00 FF D0 */	bdnz lbl_8005C1B8
lbl_8005C1EC:
/* 8005C1EC 00057E4C  2C 1F 00 00 */	cmpwi r31, 0
/* 8005C1F0 00057E50  41 82 00 4C */	beq lbl_8005C23C
/* 8005C1F4 00057E54  38 E0 00 00 */	li r7, 0
/* 8005C1F8 00057E58  38 60 00 00 */	li r3, 0
/* 8005C1FC 00057E5C  7C C9 03 A6 */	mtctr r6
/* 8005C200 00057E60  28 06 00 00 */	cmplwi r6, 0
/* 8005C204 00057E64  40 81 00 38 */	ble lbl_8005C23C
lbl_8005C208:
/* 8005C208 00057E68  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C20C 00057E6C  7C 80 1A 14 */	add r4, r0, r3
/* 8005C210 00057E70  88 04 00 0E */	lbz r0, 0xe(r4)
/* 8005C214 00057E74  2C 00 00 00 */	cmpwi r0, 0
/* 8005C218 00057E78  40 82 00 18 */	bne lbl_8005C230
/* 8005C21C 00057E7C  88 04 00 0D */	lbz r0, 0xd(r4)
/* 8005C220 00057E80  28 00 00 02 */	cmplwi r0, 2
/* 8005C224 00057E84  41 82 00 0C */	beq lbl_8005C230
/* 8005C228 00057E88  3B E0 00 00 */	li r31, 0
/* 8005C22C 00057E8C  48 00 00 10 */	b lbl_8005C23C
lbl_8005C230:
/* 8005C230 00057E90  38 63 00 28 */	addi r3, r3, 0x28
/* 8005C234 00057E94  38 E7 00 01 */	addi r7, r7, 1
/* 8005C238 00057E98  42 00 FF D0 */	bdnz lbl_8005C208
lbl_8005C23C:
/* 8005C23C 00057E9C  2C 1F 00 00 */	cmpwi r31, 0
/* 8005C240 00057EA0  41 82 00 0C */	beq lbl_8005C24C
/* 8005C244 00057EA4  38 60 00 01 */	li r3, 1
/* 8005C248 00057EA8  48 00 00 94 */	b lbl_8005C2DC
lbl_8005C24C:
/* 8005C24C 00057EAC  1F E7 00 28 */	mulli r31, r7, 0x28
/* 8005C250 00057EB0  80 7A 00 AC */	lwz r3, 0xac(r26)
/* 8005C254 00057EB4  7C 03 F8 2E */	lwzx r0, r3, r31
/* 8005C258 00057EB8  2C 00 00 00 */	cmpwi r0, 0
/* 8005C25C 00057EBC  41 82 00 10 */	beq lbl_8005C26C
/* 8005C260 00057EC0  7C 63 FA 14 */	add r3, r3, r31
/* 8005C264 00057EC4  80 63 00 08 */	lwz r3, 8(r3)
/* 8005C268 00057EC8  48 1E 20 69 */	bl func_8023E2D0
lbl_8005C26C:
/* 8005C26C 00057ECC  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C270 00057ED0  38 A0 00 01 */	li r5, 1
/* 8005C274 00057ED4  38 80 00 02 */	li r4, 2
/* 8005C278 00057ED8  7C 60 FA 14 */	add r3, r0, r31
/* 8005C27C 00057EDC  B3 63 00 04 */	sth r27, 4(r3)
/* 8005C280 00057EE0  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C284 00057EE4  7C 60 FA 14 */	add r3, r0, r31
/* 8005C288 00057EE8  9B 83 00 06 */	stb r28, 6(r3)
/* 8005C28C 00057EEC  80 7A 00 AC */	lwz r3, 0xac(r26)
/* 8005C290 00057EF0  7F C3 F9 2E */	stwx r30, r3, r31
/* 8005C294 00057EF4  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C298 00057EF8  7C 60 FA 14 */	add r3, r0, r31
/* 8005C29C 00057EFC  98 A3 00 0D */	stb r5, 0xd(r3)
/* 8005C2A0 00057F00  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C2A4 00057F04  7C 60 FA 14 */	add r3, r0, r31
/* 8005C2A8 00057F08  98 83 00 0E */	stb r4, 0xe(r3)
/* 8005C2AC 00057F0C  80 1A 00 AC */	lwz r0, 0xac(r26)
/* 8005C2B0 00057F10  7C 60 FA 14 */	add r3, r0, r31
/* 8005C2B4 00057F14  B3 A3 00 10 */	sth r29, 0x10(r3)
/* 8005C2B8 00057F18  80 7A 00 B4 */	lwz r3, 0xb4(r26)
/* 8005C2BC 00057F1C  80 1A 00 B0 */	lwz r0, 0xb0(r26)
/* 8005C2C0 00057F20  38 63 00 01 */	addi r3, r3, 1
/* 8005C2C4 00057F24  7C 03 00 40 */	cmplw r3, r0
/* 8005C2C8 00057F28  90 7A 00 B4 */	stw r3, 0xb4(r26)
/* 8005C2CC 00057F2C  40 82 00 0C */	bne lbl_8005C2D8
/* 8005C2D0 00057F30  38 00 00 00 */	li r0, 0
/* 8005C2D4 00057F34  90 1A 00 B4 */	stw r0, 0xb4(r26)
lbl_8005C2D8:
/* 8005C2D8 00057F38  38 60 00 00 */	li r3, 0
lbl_8005C2DC:
/* 8005C2DC 00057F3C  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C2E0 00057F40  48 16 AE 8D */	bl _restgpr_25
/* 8005C2E4 00057F44  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005C2E8 00057F48  7C 08 03 A6 */	mtlr r0
/* 8005C2EC 00057F4C  38 21 00 30 */	addi r1, r1, 0x30
/* 8005C2F0 00057F50  4E 80 00 20 */	blr

.global func_8005C2F4
func_8005C2F4:
/* 8005C2F4 00057F54  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 8005C2F8 00057F58  7C 08 02 A6 */	mflr r0
/* 8005C2FC 00057F5C  90 01 00 74 */	stw r0, 0x74(r1)
/* 8005C300 00057F60  DB E1 00 60 */	stfd f31, 0x60(r1)
/* 8005C304 00057F64  F3 E1 00 68 */	psq_st f31, 104(r1), 0, qr0
/* 8005C308 00057F68  DB C1 00 50 */	stfd f30, 0x50(r1)
/* 8005C30C 00057F6C  F3 C1 00 58 */	psq_st f30, 88(r1), 0, qr0
/* 8005C310 00057F70  DB A1 00 40 */	stfd f29, 0x40(r1)
/* 8005C314 00057F74  F3 A1 00 48 */	psq_st f29, 72(r1), 0, qr0
/* 8005C318 00057F78  DB 81 00 30 */	stfd f28, 0x30(r1)
/* 8005C31C 00057F7C  F3 81 00 38 */	psq_st f28, 56(r1), 0, qr0
/* 8005C320 00057F80  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C324 00057F84  48 16 AD F9 */	bl _savegpr_24
/* 8005C328 00057F88  2C 04 00 00 */	cmpwi r4, 0
/* 8005C32C 00057F8C  7C 7E 1B 78 */	mr r30, r3
/* 8005C330 00057F90  7C 98 23 78 */	mr r24, r4
/* 8005C334 00057F94  7C B9 2B 78 */	mr r25, r5
/* 8005C338 00057F98  7C DA 33 78 */	mr r26, r6
/* 8005C33C 00057F9C  7C FF 3B 78 */	mr r31, r7
/* 8005C340 00057FA0  7D 1B 43 78 */	mr r27, r8
/* 8005C344 00057FA4  41 82 00 0C */	beq lbl_8005C350
/* 8005C348 00057FA8  28 04 01 EF */	cmplwi r4, 0x1ef
/* 8005C34C 00057FAC  40 81 00 34 */	ble lbl_8005C380
lbl_8005C350:
/* 8005C350 00057FB0  C0 22 85 E0 */	lfs f1, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005C354 00057FB4  38 60 00 00 */	li r3, 0
/* 8005C358 00057FB8  C0 02 85 E4 */	lfs f0, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005C35C 00057FBC  D0 27 00 0C */	stfs f1, 0xc(r7)
/* 8005C360 00057FC0  D0 27 00 04 */	stfs f1, 4(r7)
/* 8005C364 00057FC4  D0 27 00 18 */	stfs f1, 0x18(r7)
/* 8005C368 00057FC8  D0 27 00 00 */	stfs f1, 0(r7)
/* 8005C36C 00057FCC  D0 07 00 1C */	stfs f0, 0x1c(r7)
/* 8005C370 00057FD0  D0 07 00 14 */	stfs f0, 0x14(r7)
/* 8005C374 00057FD4  D0 07 00 10 */	stfs f0, 0x10(r7)
/* 8005C378 00057FD8  D0 07 00 08 */	stfs f0, 8(r7)
/* 8005C37C 00057FDC  48 00 01 DC */	b lbl_8005C558
lbl_8005C380:
/* 8005C380 00057FE0  80 63 00 A8 */	lwz r3, 0xa8(r3)
/* 8005C384 00057FE4  48 33 A6 A9 */	bl func_80396A2C
/* 8005C388 00057FE8  3F 80 80 64 */	lis r28, lbl_8063CE34@ha
/* 8005C38C 00057FEC  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005C390 00057FF0  3B 9C CE 34 */	addi r28, r28, lbl_8063CE34@l
/* 8005C394 00057FF4  38 7C 00 64 */	addi r3, r28, 0x64
/* 8005C398 00057FF8  48 33 C2 7D */	bl func_80398614
/* 8005C39C 00057FFC  7C 7D 1B 78 */	mr r29, r3
/* 8005C3A0 00058000  80 7E 00 A8 */	lwz r3, 0xa8(r30)
/* 8005C3A4 00058004  7F 04 C3 78 */	mr r4, r24
/* 8005C3A8 00058008  48 33 A6 85 */	bl func_80396A2C
/* 8005C3AC 0005800C  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 8005C3B0 00058010  38 7C 00 64 */	addi r3, r28, 0x64
/* 8005C3B4 00058014  48 33 C2 C9 */	bl func_8039867C
/* 8005C3B8 00058018  7C 03 E8 40 */	cmplw r3, r29
/* 8005C3BC 0005801C  57 26 82 1E */	rlwinm r6, r25, 0x10, 8, 0xf
/* 8005C3C0 00058020  53 06 04 3E */	rlwimi r6, r24, 0, 0x10, 0x1f
/* 8005C3C4 00058024  40 82 00 08 */	bne lbl_8005C3CC
/* 8005C3C8 00058028  7F 06 C3 78 */	mr r6, r24
lbl_8005C3CC:
/* 8005C3CC 0005802C  2C 18 01 9E */	cmpwi r24, 0x19e
/* 8005C3D0 00058030  40 80 00 28 */	bge lbl_8005C3F8
/* 8005C3D4 00058034  2C 18 01 82 */	cmpwi r24, 0x182
/* 8005C3D8 00058038  41 82 00 44 */	beq lbl_8005C41C
/* 8005C3DC 0005803C  40 80 00 10 */	bge lbl_8005C3EC
/* 8005C3E0 00058040  2C 18 00 C9 */	cmpwi r24, 0xc9
/* 8005C3E4 00058044  41 82 00 38 */	beq lbl_8005C41C
/* 8005C3E8 00058048  48 00 00 3C */	b lbl_8005C424
lbl_8005C3EC:
/* 8005C3EC 0005804C  2C 18 01 9C */	cmpwi r24, 0x19c
/* 8005C3F0 00058050  40 80 00 2C */	bge lbl_8005C41C
/* 8005C3F4 00058054  48 00 00 30 */	b lbl_8005C424
lbl_8005C3F8:
/* 8005C3F8 00058058  2C 18 01 ED */	cmpwi r24, 0x1ed
/* 8005C3FC 0005805C  40 80 00 18 */	bge lbl_8005C414
/* 8005C400 00058060  2C 18 01 A8 */	cmpwi r24, 0x1a8
/* 8005C404 00058064  40 80 00 20 */	bge lbl_8005C424
/* 8005C408 00058068  2C 18 01 A5 */	cmpwi r24, 0x1a5
/* 8005C40C 0005806C  40 80 00 10 */	bge lbl_8005C41C
/* 8005C410 00058070  48 00 00 14 */	b lbl_8005C424
lbl_8005C414:
/* 8005C414 00058074  2C 18 01 EF */	cmpwi r24, 0x1ef
/* 8005C418 00058078  40 80 00 0C */	bge lbl_8005C424
lbl_8005C41C:
/* 8005C41C 0005807C  57 60 90 1A */	slwi r0, r27, 0x12
/* 8005C420 00058080  7C C6 03 78 */	or r6, r6, r0
lbl_8005C424:
/* 8005C424 00058084  80 1E 00 B0 */	lwz r0, 0xb0(r30)
/* 8005C428 00058088  38 A0 00 00 */	li r5, 0
/* 8005C42C 0005808C  38 60 00 00 */	li r3, 0
/* 8005C430 00058090  7C 09 03 A6 */	mtctr r0
/* 8005C434 00058094  28 00 00 00 */	cmplwi r0, 0
/* 8005C438 00058098  40 81 00 F4 */	ble lbl_8005C52C
lbl_8005C43C:
/* 8005C43C 0005809C  80 9E 00 AC */	lwz r4, 0xac(r30)
/* 8005C440 000580A0  7C 04 18 2E */	lwzx r0, r4, r3
/* 8005C444 000580A4  7C 06 00 40 */	cmplw r6, r0
/* 8005C448 000580A8  40 82 00 D8 */	bne lbl_8005C520
/* 8005C44C 000580AC  1F 85 00 28 */	mulli r28, r5, 0x28
/* 8005C450 000580B0  7C 64 E2 14 */	add r3, r4, r28
/* 8005C454 000580B4  88 03 00 0D */	lbz r0, 0xd(r3)
/* 8005C458 000580B8  28 00 00 03 */	cmplwi r0, 3
/* 8005C45C 000580BC  40 82 00 84 */	bne lbl_8005C4E0
/* 8005C460 000580C0  C3 A2 85 E0 */	lfs f29, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005C464 000580C4  C3 82 85 E4 */	lfs f28, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005C468 000580C8  FF E0 E8 90 */	fmr f31, f29
/* 8005C46C 000580CC  80 63 00 08 */	lwz r3, 8(r3)
/* 8005C470 000580D0  FF C0 E0 90 */	fmr f30, f28
/* 8005C474 000580D4  48 1E 20 D5 */	bl func_8023E548
/* 8005C478 000580D8  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8005C47C 000580DC  28 00 00 36 */	cmplwi r0, 0x36
/* 8005C480 000580E0  40 81 00 20 */	ble lbl_8005C4A0
/* 8005C484 000580E4  2C 1A 00 00 */	cmpwi r26, 0
/* 8005C488 000580E8  41 82 00 10 */	beq lbl_8005C498
/* 8005C48C 000580EC  C3 A2 85 E8 */	lfs f29, lbl_80640BE8-_SDA2_BASE_(r2)
/* 8005C490 000580F0  C3 82 85 E4 */	lfs f28, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005C494 000580F4  48 00 00 0C */	b lbl_8005C4A0
lbl_8005C498:
/* 8005C498 000580F8  C3 A2 85 E0 */	lfs f29, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005C49C 000580FC  C3 82 85 E8 */	lfs f28, lbl_80640BE8-_SDA2_BASE_(r2)
lbl_8005C4A0:
/* 8005C4A0 00058100  D3 FF 00 18 */	stfs f31, 0x18(r31)
/* 8005C4A4 00058104  38 80 00 02 */	li r4, 2
/* 8005C4A8 00058108  D3 FF 00 00 */	stfs f31, 0(r31)
/* 8005C4AC 0005810C  D3 DF 00 10 */	stfs f30, 0x10(r31)
/* 8005C4B0 00058110  D3 DF 00 08 */	stfs f30, 8(r31)
/* 8005C4B4 00058114  D3 BF 00 0C */	stfs f29, 0xc(r31)
/* 8005C4B8 00058118  D3 BF 00 04 */	stfs f29, 4(r31)
/* 8005C4BC 0005811C  D3 9F 00 1C */	stfs f28, 0x1c(r31)
/* 8005C4C0 00058120  D3 9F 00 14 */	stfs f28, 0x14(r31)
/* 8005C4C4 00058124  80 1E 00 AC */	lwz r0, 0xac(r30)
/* 8005C4C8 00058128  7C 60 E2 14 */	add r3, r0, r28
/* 8005C4CC 0005812C  98 83 00 0E */	stb r4, 0xe(r3)
/* 8005C4D0 00058130  80 1E 00 AC */	lwz r0, 0xac(r30)
/* 8005C4D4 00058134  7C 60 E2 14 */	add r3, r0, r28
/* 8005C4D8 00058138  80 63 00 08 */	lwz r3, 8(r3)
/* 8005C4DC 0005813C  48 00 00 7C */	b lbl_8005C558
lbl_8005C4E0:
/* 8005C4E0 00058140  C0 22 85 E0 */	lfs f1, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005C4E4 00058144  38 A0 00 02 */	li r5, 2
/* 8005C4E8 00058148  C0 02 85 E4 */	lfs f0, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005C4EC 0005814C  38 60 00 00 */	li r3, 0
/* 8005C4F0 00058150  D0 3F 00 0C */	stfs f1, 0xc(r31)
/* 8005C4F4 00058154  D0 3F 00 04 */	stfs f1, 4(r31)
/* 8005C4F8 00058158  D0 3F 00 18 */	stfs f1, 0x18(r31)
/* 8005C4FC 0005815C  D0 3F 00 00 */	stfs f1, 0(r31)
/* 8005C500 00058160  D0 1F 00 1C */	stfs f0, 0x1c(r31)
/* 8005C504 00058164  D0 1F 00 14 */	stfs f0, 0x14(r31)
/* 8005C508 00058168  D0 1F 00 10 */	stfs f0, 0x10(r31)
/* 8005C50C 0005816C  D0 1F 00 08 */	stfs f0, 8(r31)
/* 8005C510 00058170  80 1E 00 AC */	lwz r0, 0xac(r30)
/* 8005C514 00058174  7C 80 E2 14 */	add r4, r0, r28
/* 8005C518 00058178  98 A4 00 0E */	stb r5, 0xe(r4)
/* 8005C51C 0005817C  48 00 00 3C */	b lbl_8005C558
lbl_8005C520:
/* 8005C520 00058180  38 63 00 28 */	addi r3, r3, 0x28
/* 8005C524 00058184  38 A5 00 01 */	addi r5, r5, 1
/* 8005C528 00058188  42 00 FF 14 */	bdnz lbl_8005C43C
lbl_8005C52C:
/* 8005C52C 0005818C  C0 22 85 E0 */	lfs f1, lbl_80640BE0-_SDA2_BASE_(r2)
/* 8005C530 00058190  38 60 00 00 */	li r3, 0
/* 8005C534 00058194  C0 02 85 E4 */	lfs f0, lbl_80640BE4-_SDA2_BASE_(r2)
/* 8005C538 00058198  D0 3F 00 0C */	stfs f1, 0xc(r31)
/* 8005C53C 0005819C  D0 3F 00 04 */	stfs f1, 4(r31)
/* 8005C540 000581A0  D0 3F 00 18 */	stfs f1, 0x18(r31)
/* 8005C544 000581A4  D0 3F 00 00 */	stfs f1, 0(r31)
/* 8005C548 000581A8  D0 1F 00 1C */	stfs f0, 0x1c(r31)
/* 8005C54C 000581AC  D0 1F 00 14 */	stfs f0, 0x14(r31)
/* 8005C550 000581B0  D0 1F 00 10 */	stfs f0, 0x10(r31)
/* 8005C554 000581B4  D0 1F 00 08 */	stfs f0, 8(r31)
lbl_8005C558:
/* 8005C558 000581B8  E3 E1 00 68 */	psq_l f31, 104(r1), 0, qr0
/* 8005C55C 000581BC  CB E1 00 60 */	lfd f31, 0x60(r1)
/* 8005C560 000581C0  E3 C1 00 58 */	psq_l f30, 88(r1), 0, qr0
/* 8005C564 000581C4  CB C1 00 50 */	lfd f30, 0x50(r1)
/* 8005C568 000581C8  E3 A1 00 48 */	psq_l f29, 72(r1), 0, qr0
/* 8005C56C 000581CC  CB A1 00 40 */	lfd f29, 0x40(r1)
/* 8005C570 000581D0  E3 81 00 38 */	psq_l f28, 56(r1), 0, qr0
/* 8005C574 000581D4  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C578 000581D8  CB 81 00 30 */	lfd f28, 0x30(r1)
/* 8005C57C 000581DC  48 16 AB ED */	bl _restgpr_24
/* 8005C580 000581E0  80 01 00 74 */	lwz r0, 0x74(r1)
/* 8005C584 000581E4  7C 08 03 A6 */	mtlr r0
/* 8005C588 000581E8  38 21 00 70 */	addi r1, r1, 0x70
/* 8005C58C 000581EC  4E 80 00 20 */	blr
lbl_8005C590:
/* 8005C590 000581F0  7C 66 1B 78 */	mr r6, r3
/* 8005C594 000581F4  38 E0 00 00 */	li r7, 0
/* 8005C598 000581F8  38 A0 00 01 */	li r5, 1
/* 8005C59C 000581FC  48 00 00 20 */	b lbl_8005C5BC
lbl_8005C5A0:
/* 8005C5A0 00058200  A0 06 00 FC */	lhz r0, 0xfc(r6)
/* 8005C5A4 00058204  38 C6 00 02 */	addi r6, r6, 2
/* 8005C5A8 00058208  80 83 00 AC */	lwz r4, 0xac(r3)
/* 8005C5AC 0005820C  38 E7 00 01 */	addi r7, r7, 1
/* 8005C5B0 00058210  1C 00 00 28 */	mulli r0, r0, 0x28
/* 8005C5B4 00058214  7C 84 02 14 */	add r4, r4, r0
/* 8005C5B8 00058218  98 A4 00 0C */	stb r5, 0xc(r4)
lbl_8005C5BC:
/* 8005C5BC 0005821C  A0 03 01 1E */	lhz r0, 0x11e(r3)
/* 8005C5C0 00058220  7C 07 00 40 */	cmplw r7, r0
/* 8005C5C4 00058224  41 80 FF DC */	blt lbl_8005C5A0
/* 8005C5C8 00058228  4E 80 00 20 */	blr
lbl_8005C5CC:
/* 8005C5CC 0005822C  3C 60 80 48 */	lis r3, lbl_80478178@ha
/* 8005C5D0 00058230  54 A4 04 3E */	clrlwi r4, r5, 0x10
/* 8005C5D4 00058234  38 63 81 78 */	addi r3, r3, lbl_80478178@l
/* 8005C5D8 00058238  4B FF FF B8 */	b lbl_8005C590

.global func_8005C5DC
func_8005C5DC:
/* 8005C5DC 0005823C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005C5E0 00058240  7C 08 02 A6 */	mflr r0
/* 8005C5E4 00058244  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005C5E8 00058248  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C5EC 0005824C  48 16 AB 29 */	bl _savegpr_22
/* 8005C5F0 00058250  88 0D 99 07 */	lbz r0, lbl_8063EBC7-_SDA_BASE_(r13)
/* 8005C5F4 00058254  7C 77 1B 78 */	mr r23, r3
/* 8005C5F8 00058258  3B 40 00 00 */	li r26, 0
/* 8005C5FC 0005825C  2C 00 00 00 */	cmpwi r0, 0
/* 8005C600 00058260  41 82 03 90 */	beq lbl_8005C990
/* 8005C604 00058264  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005C608 00058268  3B 20 00 00 */	li r25, 0
/* 8005C60C 0005826C  3B 60 00 00 */	li r27, 0
/* 8005C610 00058270  3B 80 00 00 */	li r28, 0
/* 8005C614 00058274  3B A3 CE 34 */	addi r29, r3, lbl_8063CE34@l
/* 8005C618 00058278  3B E0 00 03 */	li r31, 3
/* 8005C61C 0005827C  3B C0 00 02 */	li r30, 2
/* 8005C620 00058280  48 00 03 08 */	b lbl_8005C928
lbl_8005C624:
/* 8005C624 00058284  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C628 00058288  7C 80 DA 14 */	add r4, r0, r27
/* 8005C62C 0005828C  7C 1B 00 2E */	lwzx r0, r27, r0
/* 8005C630 00058290  2C 00 00 00 */	cmpwi r0, 0
/* 8005C634 00058294  41 82 02 EC */	beq lbl_8005C920
/* 8005C638 00058298  88 64 00 0E */	lbz r3, 0xe(r4)
/* 8005C63C 0005829C  2C 03 00 00 */	cmpwi r3, 0
/* 8005C640 000582A0  41 82 00 0C */	beq lbl_8005C64C
/* 8005C644 000582A4  38 03 FF FF */	addi r0, r3, -1
/* 8005C648 000582A8  98 04 00 0E */	stb r0, 0xe(r4)
lbl_8005C64C:
/* 8005C64C 000582AC  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C650 000582B0  7C 60 DA 14 */	add r3, r0, r27
/* 8005C654 000582B4  88 03 00 0D */	lbz r0, 0xd(r3)
/* 8005C658 000582B8  2C 00 00 02 */	cmpwi r0, 2
/* 8005C65C 000582BC  41 82 01 88 */	beq lbl_8005C7E4
/* 8005C660 000582C0  40 80 02 C0 */	bge lbl_8005C920
/* 8005C664 000582C4  2C 00 00 01 */	cmpwi r0, 1
/* 8005C668 000582C8  40 80 00 0C */	bge lbl_8005C674
/* 8005C66C 000582CC  48 00 02 B4 */	b lbl_8005C920
/* 8005C670 000582D0  48 00 02 B0 */	b lbl_8005C920
lbl_8005C674:
/* 8005C674 000582D4  88 17 01 20 */	lbz r0, 0x120(r23)
/* 8005C678 000582D8  A2 C3 00 04 */	lhz r22, 4(r3)
/* 8005C67C 000582DC  2C 00 00 00 */	cmpwi r0, 0
/* 8005C680 000582E0  A3 03 00 10 */	lhz r24, 0x10(r3)
/* 8005C684 000582E4  40 82 02 9C */	bne lbl_8005C920
/* 8005C688 000582E8  A0 17 01 1E */	lhz r0, 0x11e(r23)
/* 8005C68C 000582EC  28 00 00 10 */	cmplwi r0, 0x10
/* 8005C690 000582F0  40 80 02 90 */	bge lbl_8005C920
/* 8005C694 000582F4  80 77 00 A8 */	lwz r3, 0xa8(r23)
/* 8005C698 000582F8  7E C4 B3 78 */	mr r4, r22
/* 8005C69C 000582FC  48 33 A3 91 */	bl func_80396A2C
/* 8005C6A0 00058300  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C6A4 00058304  7C 64 1B 78 */	mr r4, r3
/* 8005C6A8 00058308  2C 16 01 9E */	cmpwi r22, 0x19e
/* 8005C6AC 0005830C  7C 60 DA 14 */	add r3, r0, r27
/* 8005C6B0 00058310  9B 83 00 0C */	stb r28, 0xc(r3)
/* 8005C6B4 00058314  40 80 00 28 */	bge lbl_8005C6DC
/* 8005C6B8 00058318  2C 16 01 82 */	cmpwi r22, 0x182
/* 8005C6BC 0005831C  41 82 00 44 */	beq lbl_8005C700
/* 8005C6C0 00058320  40 80 00 10 */	bge lbl_8005C6D0
/* 8005C6C4 00058324  2C 16 00 C9 */	cmpwi r22, 0xc9
/* 8005C6C8 00058328  41 82 00 38 */	beq lbl_8005C700
/* 8005C6CC 0005832C  48 00 00 88 */	b lbl_8005C754
lbl_8005C6D0:
/* 8005C6D0 00058330  2C 16 01 9C */	cmpwi r22, 0x19c
/* 8005C6D4 00058334  40 80 00 2C */	bge lbl_8005C700
/* 8005C6D8 00058338  48 00 00 7C */	b lbl_8005C754
lbl_8005C6DC:
/* 8005C6DC 0005833C  2C 16 01 ED */	cmpwi r22, 0x1ed
/* 8005C6E0 00058340  40 80 00 18 */	bge lbl_8005C6F8
/* 8005C6E4 00058344  2C 16 01 A8 */	cmpwi r22, 0x1a8
/* 8005C6E8 00058348  40 80 00 6C */	bge lbl_8005C754
/* 8005C6EC 0005834C  2C 16 01 A5 */	cmpwi r22, 0x1a5
/* 8005C6F0 00058350  40 80 00 10 */	bge lbl_8005C700
/* 8005C6F4 00058354  48 00 00 60 */	b lbl_8005C754
lbl_8005C6F8:
/* 8005C6F8 00058358  2C 16 01 EF */	cmpwi r22, 0x1ef
/* 8005C6FC 0005835C  40 80 00 58 */	bge lbl_8005C754
lbl_8005C700:
/* 8005C700 00058360  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C704 00058364  7C 60 DA 14 */	add r3, r0, r27
/* 8005C708 00058368  88 03 00 06 */	lbz r0, 6(r3)
/* 8005C70C 0005836C  28 00 00 01 */	cmplwi r0, 1
/* 8005C710 00058370  40 82 00 24 */	bne lbl_8005C734
/* 8005C714 00058374  54 80 04 3E */	clrlwi r0, r4, 0x10
/* 8005C718 00058378  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005C71C 0005837C  7C 80 C2 14 */	add r4, r0, r24
/* 8005C720 00058380  48 33 BF 5D */	bl func_8039867C
/* 8005C724 00058384  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C728 00058388  7C 80 DA 14 */	add r4, r0, r27
/* 8005C72C 0005838C  90 64 00 14 */	stw r3, 0x14(r4)
/* 8005C730 00058390  48 00 00 6C */	b lbl_8005C79C
lbl_8005C734:
/* 8005C734 00058394  54 80 04 3E */	clrlwi r0, r4, 0x10
/* 8005C738 00058398  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005C73C 0005839C  7C 80 C2 14 */	add r4, r0, r24
/* 8005C740 000583A0  48 33 BE D5 */	bl func_80398614
/* 8005C744 000583A4  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C748 000583A8  7C 80 DA 14 */	add r4, r0, r27
/* 8005C74C 000583AC  90 64 00 14 */	stw r3, 0x14(r4)
/* 8005C750 000583B0  48 00 00 4C */	b lbl_8005C79C
lbl_8005C754:
/* 8005C754 000583B4  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C758 000583B8  7C 60 DA 14 */	add r3, r0, r27
/* 8005C75C 000583BC  88 03 00 06 */	lbz r0, 6(r3)
/* 8005C760 000583C0  28 00 00 01 */	cmplwi r0, 1
/* 8005C764 000583C4  40 82 00 20 */	bne lbl_8005C784
/* 8005C768 000583C8  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005C76C 000583CC  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8005C770 000583D0  48 33 BF 0D */	bl func_8039867C
/* 8005C774 000583D4  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C778 000583D8  7C 80 DA 14 */	add r4, r0, r27
/* 8005C77C 000583DC  90 64 00 14 */	stw r3, 0x14(r4)
/* 8005C780 000583E0  48 00 00 1C */	b lbl_8005C79C
lbl_8005C784:
/* 8005C784 000583E4  38 7D 00 64 */	addi r3, r29, 0x64
/* 8005C788 000583E8  54 84 04 3E */	clrlwi r4, r4, 0x10
/* 8005C78C 000583EC  48 33 BE 89 */	bl func_80398614
/* 8005C790 000583F0  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C794 000583F4  7C 80 DA 14 */	add r4, r0, r27
/* 8005C798 000583F8  90 64 00 14 */	stw r3, 0x14(r4)
lbl_8005C79C:
/* 8005C79C 000583FC  80 77 00 AC */	lwz r3, 0xac(r23)
/* 8005C7A0 00058400  A0 17 01 1E */	lhz r0, 0x11e(r23)
/* 8005C7A4 00058404  7C 63 DA 14 */	add r3, r3, r27
/* 8005C7A8 00058408  54 00 10 3A */	slwi r0, r0, 2
/* 8005C7AC 0005840C  80 83 00 14 */	lwz r4, 0x14(r3)
/* 8005C7B0 00058410  7C 77 02 14 */	add r3, r23, r0
/* 8005C7B4 00058414  90 83 00 B8 */	stw r4, 0xb8(r3)
/* 8005C7B8 00058418  A0 17 01 1E */	lhz r0, 0x11e(r23)
/* 8005C7BC 0005841C  54 00 08 3C */	slwi r0, r0, 1
/* 8005C7C0 00058420  7C 77 02 14 */	add r3, r23, r0
/* 8005C7C4 00058424  B3 23 00 FC */	sth r25, 0xfc(r3)
/* 8005C7C8 00058428  A0 77 01 1E */	lhz r3, 0x11e(r23)
/* 8005C7CC 0005842C  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C7D0 00058430  38 63 00 01 */	addi r3, r3, 1
/* 8005C7D4 00058434  B0 77 01 1E */	sth r3, 0x11e(r23)
/* 8005C7D8 00058438  7C 60 DA 14 */	add r3, r0, r27
/* 8005C7DC 0005843C  9B C3 00 0D */	stb r30, 0xd(r3)
/* 8005C7E0 00058440  48 00 01 40 */	b lbl_8005C920
lbl_8005C7E4:
/* 8005C7E4 00058444  88 03 00 0C */	lbz r0, 0xc(r3)
/* 8005C7E8 00058448  2C 00 00 00 */	cmpwi r0, 0
/* 8005C7EC 0005844C  41 82 01 34 */	beq lbl_8005C920
/* 8005C7F0 00058450  80 83 00 14 */	lwz r4, 0x14(r3)
/* 8005C7F4 00058454  38 60 03 EE */	li r3, 0x3ee
/* 8005C7F8 00058458  48 17 EC C5 */	bl func_801DB4BC
/* 8005C7FC 0005845C  88 03 00 07 */	lbz r0, 7(r3)
/* 8005C800 00058460  54 00 06 3C */	rlwinm r0, r0, 0, 0x18, 0x1e
/* 8005C804 00058464  98 03 00 07 */	stb r0, 7(r3)
/* 8005C808 00058468  80 83 00 28 */	lwz r4, 0x28(r3)
/* 8005C80C 0005846C  54 80 00 01 */	rlwinm. r0, r4, 0, 0, 0
/* 8005C810 00058470  41 82 00 0C */	beq lbl_8005C81C
/* 8005C814 00058474  7C 03 20 50 */	subf r0, r3, r4
/* 8005C818 00058478  90 03 00 28 */	stw r0, 0x28(r3)
lbl_8005C81C:
/* 8005C81C 0005847C  80 03 00 08 */	lwz r0, 8(r3)
/* 8005C820 00058480  2C 00 00 01 */	cmpwi r0, 1
/* 8005C824 00058484  41 81 00 18 */	bgt lbl_8005C83C
/* 8005C828 00058488  80 83 00 48 */	lwz r4, 0x48(r3)
/* 8005C82C 0005848C  54 80 00 01 */	rlwinm. r0, r4, 0, 0, 0
/* 8005C830 00058490  41 82 00 0C */	beq lbl_8005C83C
/* 8005C834 00058494  7C 03 20 50 */	subf r0, r3, r4
/* 8005C838 00058498  90 03 00 48 */	stw r0, 0x48(r3)
lbl_8005C83C:
/* 8005C83C 0005849C  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C840 000584A0  7C 64 1B 78 */	mr r4, r3
/* 8005C844 000584A4  38 A0 31 C0 */	li r5, 0x31c0
/* 8005C848 000584A8  7C 60 DA 14 */	add r3, r0, r27
/* 8005C84C 000584AC  80 63 00 08 */	lwz r3, 8(r3)
/* 8005C850 000584B0  4B FA 77 B1 */	bl memcpy
/* 8005C854 000584B4  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C858 000584B8  38 60 03 EE */	li r3, 0x3ee
/* 8005C85C 000584BC  7C 80 DA 14 */	add r4, r0, r27
/* 8005C860 000584C0  80 84 00 14 */	lwz r4, 0x14(r4)
/* 8005C864 000584C4  48 17 ED E1 */	bl func_801DB644
/* 8005C868 000584C8  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C86C 000584CC  7C 60 DA 14 */	add r3, r0, r27
/* 8005C870 000584D0  80 63 00 08 */	lwz r3, 8(r3)
/* 8005C874 000584D4  48 1E 0E 59 */	bl func_8023D6CC
/* 8005C878 000584D8  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8005C87C 000584DC  7C 78 1B 78 */	mr r24, r3
/* 8005C880 000584E0  88 04 00 7A */	lbz r0, 0x7a(r4)
/* 8005C884 000584E4  2C 00 00 00 */	cmpwi r0, 0
/* 8005C888 000584E8  41 82 00 38 */	beq lbl_8005C8C0
/* 8005C88C 000584EC  2C 03 00 00 */	cmpwi r3, 0
/* 8005C890 000584F0  41 82 00 30 */	beq lbl_8005C8C0
/* 8005C894 000584F4  80 A3 00 1C */	lwz r5, 0x1c(r3)
/* 8005C898 000584F8  2C 05 00 02 */	cmpwi r5, 2
/* 8005C89C 000584FC  40 80 00 08 */	bge lbl_8005C8A4
/* 8005C8A0 00058500  38 A0 00 02 */	li r5, 2
lbl_8005C8A4:
/* 8005C8A4 00058504  80 98 00 18 */	lwz r4, 0x18(r24)
/* 8005C8A8 00058508  7F 03 C3 78 */	mr r3, r24
/* 8005C8AC 0005850C  2C 04 00 02 */	cmpwi r4, 2
/* 8005C8B0 00058510  40 80 00 08 */	bge lbl_8005C8B8
/* 8005C8B4 00058514  38 80 00 02 */	li r4, 2
lbl_8005C8B8:
/* 8005C8B8 00058518  80 D8 00 20 */	lwz r6, 0x20(r24)
/* 8005C8BC 0005851C  48 1E 1B 0D */	bl func_8023E3C8
lbl_8005C8C0:
/* 8005C8C0 00058520  7F 03 C3 78 */	mr r3, r24
/* 8005C8C4 00058524  38 80 31 C0 */	li r4, 0x31c0
/* 8005C8C8 00058528  48 20 DD 8D */	bl DCFlushRange
/* 8005C8CC 0005852C  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8005C8D0 00058530  A0 03 16 FE */	lhz r0, 0x16fe(r3)
/* 8005C8D4 00058534  60 00 00 02 */	ori r0, r0, 2
/* 8005C8D8 00058538  B0 03 16 FE */	sth r0, 0x16fe(r3)
/* 8005C8DC 0005853C  80 17 00 AC */	lwz r0, 0xac(r23)
/* 8005C8E0 00058540  7C 60 DA 14 */	add r3, r0, r27
/* 8005C8E4 00058544  9B E3 00 0D */	stb r31, 0xd(r3)
/* 8005C8E8 00058548  A0 77 01 1E */	lhz r3, 0x11e(r23)
/* 8005C8EC 0005854C  38 63 FF FF */	addi r3, r3, -1
/* 8005C8F0 00058550  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8005C8F4 00058554  B0 77 01 1E */	sth r3, 0x11e(r23)
/* 8005C8F8 00058558  7C 77 02 14 */	add r3, r23, r0
/* 8005C8FC 0005855C  93 83 00 B8 */	stw r28, 0xb8(r3)
/* 8005C900 00058560  A0 17 01 1E */	lhz r0, 0x11e(r23)
/* 8005C904 00058564  54 00 08 3C */	slwi r0, r0, 1
/* 8005C908 00058568  7C 77 02 14 */	add r3, r23, r0
/* 8005C90C 0005856C  B3 83 00 FC */	sth r28, 0xfc(r3)
/* 8005C910 00058570  A0 17 01 1E */	lhz r0, 0x11e(r23)
/* 8005C914 00058574  2C 00 00 00 */	cmpwi r0, 0
/* 8005C918 00058578  40 82 00 08 */	bne lbl_8005C920
/* 8005C91C 0005857C  3B 40 00 01 */	li r26, 1
lbl_8005C920:
/* 8005C920 00058580  3B 7B 00 28 */	addi r27, r27, 0x28
/* 8005C924 00058584  3B 39 00 01 */	addi r25, r25, 1
lbl_8005C928:
/* 8005C928 00058588  80 17 00 B0 */	lwz r0, 0xb0(r23)
/* 8005C92C 0005858C  7C 19 00 40 */	cmplw r25, r0
/* 8005C930 00058590  41 80 FC F4 */	blt lbl_8005C624
/* 8005C934 00058594  88 17 01 20 */	lbz r0, 0x120(r23)
/* 8005C938 00058598  2C 00 00 00 */	cmpwi r0, 0
/* 8005C93C 0005859C  40 82 00 3C */	bne lbl_8005C978
/* 8005C940 000585A0  A0 17 01 1E */	lhz r0, 0x11e(r23)
/* 8005C944 000585A4  2C 00 00 00 */	cmpwi r0, 0
/* 8005C948 000585A8  41 82 00 30 */	beq lbl_8005C978
/* 8005C94C 000585AC  38 00 00 01 */	li r0, 1
/* 8005C950 000585B0  38 60 03 EE */	li r3, 0x3ee
/* 8005C954 000585B4  98 17 01 20 */	stb r0, 0x120(r23)
/* 8005C958 000585B8  48 1E D0 15 */	bl func_8024996C
/* 8005C95C 000585BC  3C A0 80 06 */	lis r5, lbl_8005C5CC@ha
/* 8005C960 000585C0  A0 F7 01 1E */	lhz r7, 0x11e(r23)
/* 8005C964 000585C4  38 97 00 B8 */	addi r4, r23, 0xb8
/* 8005C968 000585C8  38 60 03 EE */	li r3, 0x3ee
/* 8005C96C 000585CC  38 A5 C5 CC */	addi r5, r5, lbl_8005C5CC@l
/* 8005C970 000585D0  38 C0 00 00 */	li r6, 0
/* 8005C974 000585D4  48 1E CE 49 */	bl func_802497BC
lbl_8005C978:
/* 8005C978 000585D8  2C 1A 00 00 */	cmpwi r26, 0
/* 8005C97C 000585DC  41 82 00 14 */	beq lbl_8005C990
/* 8005C980 000585E0  38 60 03 EE */	li r3, 0x3ee
/* 8005C984 000585E4  48 1E CF E9 */	bl func_8024996C
/* 8005C988 000585E8  38 00 00 00 */	li r0, 0
/* 8005C98C 000585EC  98 17 01 20 */	stb r0, 0x120(r23)
lbl_8005C990:
/* 8005C990 000585F0  39 61 00 30 */	addi r11, r1, 0x30
/* 8005C994 000585F4  48 16 A7 CD */	bl _restgpr_22
/* 8005C998 000585F8  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005C99C 000585FC  7C 08 03 A6 */	mtlr r0
/* 8005C9A0 00058600  38 21 00 30 */	addi r1, r1, 0x30
/* 8005C9A4 00058604  4E 80 00 20 */	blr

.global func_8005C9A8
func_8005C9A8:
/* 8005C9A8 00058608  3C A0 80 48 */	lis r5, lbl_80478178@ha
/* 8005C9AC 0005860C  7C 64 1B 78 */	mr r4, r3
/* 8005C9B0 00058610  38 65 81 78 */	addi r3, r5, lbl_80478178@l
/* 8005C9B4 00058614  4B FF EA F0 */	b lbl_8005B4A4

.global func_8005C9B8
func_8005C9B8:
/* 8005C9B8 00058618  3C A0 80 48 */	lis r5, lbl_80478178@ha
/* 8005C9BC 0005861C  7C 64 1B 78 */	mr r4, r3
/* 8005C9C0 00058620  38 65 81 78 */	addi r3, r5, lbl_80478178@l
/* 8005C9C4 00058624  4B FF EB F8 */	b lbl_8005B5BC

.global lbl_8005C9C8
lbl_8005C9C8:
/* 8005C9C8 00058628  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8005C9CC 0005862C  7C 08 02 A6 */	mflr r0
/* 8005C9D0 00058630  90 01 00 14 */	stw r0, 0x14(r1)
/* 8005C9D4 00058634  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8005C9D8 00058638  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005C9DC 0005863C  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005C9E0 00058640  4B FF F2 C1 */	bl func_8005BCA0
/* 8005C9E4 00058644  38 7F 81 78 */	addi r3, r31, -32392
/* 8005C9E8 00058648  4B FF FB F5 */	bl func_8005C5DC
/* 8005C9EC 0005864C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8005C9F0 00058650  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8005C9F4 00058654  7C 08 03 A6 */	mtlr r0
/* 8005C9F8 00058658  38 21 00 10 */	addi r1, r1, 0x10
/* 8005C9FC 0005865C  4E 80 00 20 */	blr

.global func_8005CA00
func_8005CA00:
/* 8005CA00 00058660  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8005CA04 00058664  7C 08 02 A6 */	mflr r0
/* 8005CA08 00058668  90 01 00 24 */	stw r0, 0x24(r1)
/* 8005CA0C 0005866C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8005CA10 00058670  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8005CA14 00058674  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8005CA18 00058678  93 81 00 10 */	stw r28, 0x10(r1)
/* 8005CA1C 0005867C  7C 7C 1B 78 */	mr r28, r3
/* 8005CA20 00058680  4B FF A1 B5 */	bl func_80056BD4
/* 8005CA24 00058684  2C 03 00 00 */	cmpwi r3, 0
/* 8005CA28 00058688  40 82 00 20 */	bne lbl_8005CA48
/* 8005CA2C 0005868C  3C 60 80 48 */	lis r3, lbl_80478178@ha
/* 8005CA30 00058690  38 80 00 00 */	li r4, 0
/* 8005CA34 00058694  38 63 81 78 */	addi r3, r3, lbl_80478178@l
/* 8005CA38 00058698  38 A0 00 00 */	li r5, 0
/* 8005CA3C 0005869C  38 C0 00 00 */	li r6, 0
/* 8005CA40 000586A0  4B FF EC 95 */	bl func_8005B6D4
/* 8005CA44 000586A4  48 00 00 C0 */	b lbl_8005CB04
lbl_8005CA48:
/* 8005CA48 000586A8  7F 83 E3 78 */	mr r3, r28
/* 8005CA4C 000586AC  38 80 00 05 */	li r4, 5
/* 8005CA50 000586B0  38 A0 00 00 */	li r5, 0
/* 8005CA54 000586B4  48 37 E4 A9 */	bl func_803DAEFC
/* 8005CA58 000586B8  54 7F 04 3E */	clrlwi r31, r3, 0x10
/* 8005CA5C 000586BC  7F 83 E3 78 */	mr r3, r28
/* 8005CA60 000586C0  38 80 00 6F */	li r4, 0x6f
/* 8005CA64 000586C4  38 A0 00 00 */	li r5, 0
/* 8005CA68 000586C8  48 37 E4 95 */	bl func_803DAEFC
/* 8005CA6C 000586CC  54 7E 06 3E */	clrlwi r30, r3, 0x18
/* 8005CA70 000586D0  7F 83 E3 78 */	mr r3, r28
/* 8005CA74 000586D4  4B FF A3 B9 */	bl func_80056E2C
/* 8005CA78 000586D8  2C 03 00 00 */	cmpwi r3, 0
/* 8005CA7C 000586DC  41 82 00 18 */	beq lbl_8005CA94
/* 8005CA80 000586E0  28 1F 01 EA */	cmplwi r31, 0x1ea
/* 8005CA84 000586E4  3B A0 00 00 */	li r29, 0
/* 8005CA88 000586E8  40 82 00 08 */	bne lbl_8005CA90
/* 8005CA8C 000586EC  3B A0 00 01 */	li r29, 1
lbl_8005CA90:
/* 8005CA90 000586F0  3B E0 01 EE */	li r31, 0x1ee
lbl_8005CA94:
/* 8005CA94 000586F4  2C 1F 01 EE */	cmpwi r31, 0x1ee
/* 8005CA98 000586F8  41 82 00 18 */	beq lbl_8005CAB0
/* 8005CA9C 000586FC  7F 83 E3 78 */	mr r3, r28
/* 8005CAA0 00058700  38 80 00 70 */	li r4, 0x70
/* 8005CAA4 00058704  38 A0 00 00 */	li r5, 0
/* 8005CAA8 00058708  48 37 E4 55 */	bl func_803DAEFC
/* 8005CAAC 0005870C  54 7D 04 3E */	clrlwi r29, r3, 0x10
lbl_8005CAB0:
/* 8005CAB0 00058710  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005CAB4 00058714  7F E4 FB 78 */	mr r4, r31
/* 8005CAB8 00058718  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8005CABC 0005871C  38 63 00 04 */	addi r3, r3, 4
/* 8005CAC0 00058720  48 33 3E 91 */	bl func_80390950
/* 8005CAC4 00058724  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8005CAC8 00058728  7C 1D 00 40 */	cmplw r29, r0
/* 8005CACC 0005872C  41 80 00 20 */	blt lbl_8005CAEC
/* 8005CAD0 00058730  3C 60 80 48 */	lis r3, lbl_80478178@ha
/* 8005CAD4 00058734  38 80 00 00 */	li r4, 0
/* 8005CAD8 00058738  38 63 81 78 */	addi r3, r3, lbl_80478178@l
/* 8005CADC 0005873C  38 A0 00 00 */	li r5, 0
/* 8005CAE0 00058740  38 C0 00 00 */	li r6, 0
/* 8005CAE4 00058744  4B FF EB F1 */	bl func_8005B6D4
/* 8005CAE8 00058748  48 00 00 1C */	b lbl_8005CB04
lbl_8005CAEC:
/* 8005CAEC 0005874C  3C 60 80 48 */	lis r3, lbl_80478178@ha
/* 8005CAF0 00058750  7F E4 FB 78 */	mr r4, r31
/* 8005CAF4 00058754  7F C5 F3 78 */	mr r5, r30
/* 8005CAF8 00058758  7F A6 EB 78 */	mr r6, r29
/* 8005CAFC 0005875C  38 63 81 78 */	addi r3, r3, lbl_80478178@l
/* 8005CB00 00058760  4B FF EB D5 */	bl func_8005B6D4
lbl_8005CB04:
/* 8005CB04 00058764  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8005CB08 00058768  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8005CB0C 0005876C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8005CB10 00058770  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8005CB14 00058774  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8005CB18 00058778  7C 08 03 A6 */	mtlr r0
/* 8005CB1C 0005877C  38 21 00 20 */	addi r1, r1, 0x20
/* 8005CB20 00058780  4E 80 00 20 */	blr

.global func_8005CB24
func_8005CB24:
/* 8005CB24 00058784  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005CB28 00058788  7C 08 02 A6 */	mflr r0
/* 8005CB2C 0005878C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005CB30 00058790  39 61 00 30 */	addi r11, r1, 0x30
/* 8005CB34 00058794  48 16 A5 E9 */	bl _savegpr_24
/* 8005CB38 00058798  7C 78 1B 78 */	mr r24, r3
/* 8005CB3C 0005879C  7C 99 23 78 */	mr r25, r4
/* 8005CB40 000587A0  7C BA 2B 78 */	mr r26, r5
/* 8005CB44 000587A4  4B FF A0 91 */	bl func_80056BD4
/* 8005CB48 000587A8  2C 03 00 00 */	cmpwi r3, 0
/* 8005CB4C 000587AC  40 82 00 40 */	bne lbl_8005CB8C
/* 8005CB50 000587B0  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005CB54 000587B4  38 80 00 00 */	li r4, 0
/* 8005CB58 000587B8  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005CB5C 000587BC  38 A0 00 00 */	li r5, 0
/* 8005CB60 000587C0  38 C0 00 00 */	li r6, 0
/* 8005CB64 000587C4  4B FF EB 71 */	bl func_8005B6D4
/* 8005CB68 000587C8  7F 48 D3 78 */	mr r8, r26
/* 8005CB6C 000587CC  38 7F 81 78 */	addi r3, r31, -32392
/* 8005CB70 000587D0  38 80 00 00 */	li r4, 0
/* 8005CB74 000587D4  38 A0 00 00 */	li r5, 0
/* 8005CB78 000587D8  38 C0 00 00 */	li r6, 0
/* 8005CB7C 000587DC  38 E0 00 00 */	li r7, 0
/* 8005CB80 000587E0  39 20 00 00 */	li r9, 0
/* 8005CB84 000587E4  4B FF ED D9 */	bl func_8005B95C
/* 8005CB88 000587E8  48 00 01 34 */	b lbl_8005CCBC
lbl_8005CB8C:
/* 8005CB8C 000587EC  7F 03 C3 78 */	mr r3, r24
/* 8005CB90 000587F0  38 80 00 05 */	li r4, 5
/* 8005CB94 000587F4  38 A0 00 00 */	li r5, 0
/* 8005CB98 000587F8  48 37 E3 65 */	bl func_803DAEFC
/* 8005CB9C 000587FC  54 7E 04 3E */	clrlwi r30, r3, 0x10
/* 8005CBA0 00058800  7F 03 C3 78 */	mr r3, r24
/* 8005CBA4 00058804  38 80 00 6F */	li r4, 0x6f
/* 8005CBA8 00058808  38 A0 00 00 */	li r5, 0
/* 8005CBAC 0005880C  48 37 E3 51 */	bl func_803DAEFC
/* 8005CBB0 00058810  54 7D 06 3E */	clrlwi r29, r3, 0x18
/* 8005CBB4 00058814  7F 03 C3 78 */	mr r3, r24
/* 8005CBB8 00058818  3B 80 00 00 */	li r28, 0
/* 8005CBBC 0005881C  4B FF A2 71 */	bl func_80056E2C
/* 8005CBC0 00058820  2C 03 00 00 */	cmpwi r3, 0
/* 8005CBC4 00058824  41 82 00 20 */	beq lbl_8005CBE4
/* 8005CBC8 00058828  28 1E 01 EA */	cmplwi r30, 0x1ea
/* 8005CBCC 0005882C  3B 60 00 00 */	li r27, 0
/* 8005CBD0 00058830  40 82 00 08 */	bne lbl_8005CBD8
/* 8005CBD4 00058834  3B 60 00 01 */	li r27, 1
lbl_8005CBD8:
/* 8005CBD8 00058838  3B A0 00 02 */	li r29, 2
/* 8005CBDC 0005883C  3B C0 01 EE */	li r30, 0x1ee
/* 8005CBE0 00058840  48 00 00 2C */	b lbl_8005CC0C
lbl_8005CBE4:
/* 8005CBE4 00058844  3F E0 80 48 */	lis r31, lbl_804782A8@ha
/* 8005CBE8 00058848  7F 03 C3 78 */	mr r3, r24
/* 8005CBEC 0005884C  38 9F 82 A8 */	addi r4, r31, lbl_804782A8@l
/* 8005CBF0 00058850  48 37 FB 59 */	bl func_803DC748
/* 8005CBF4 00058854  38 7F 82 A8 */	addi r3, r31, -32088
/* 8005CBF8 00058858  48 37 F4 D9 */	bl func_803DC0D0
/* 8005CBFC 0005885C  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8005CC00 00058860  7C 03 00 D0 */	neg r0, r3
/* 8005CC04 00058864  7C 00 1B 78 */	or r0, r0, r3
/* 8005CC08 00058868  54 1C 0F FE */	srwi r28, r0, 0x1f
lbl_8005CC0C:
/* 8005CC0C 0005886C  2C 1E 01 EE */	cmpwi r30, 0x1ee
/* 8005CC10 00058870  41 82 00 18 */	beq lbl_8005CC28
/* 8005CC14 00058874  7F 03 C3 78 */	mr r3, r24
/* 8005CC18 00058878  38 80 00 70 */	li r4, 0x70
/* 8005CC1C 0005887C  38 A0 00 00 */	li r5, 0
/* 8005CC20 00058880  48 37 E2 DD */	bl func_803DAEFC
/* 8005CC24 00058884  54 7B 04 3E */	clrlwi r27, r3, 0x10
lbl_8005CC28:
/* 8005CC28 00058888  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005CC2C 0005888C  7F C4 F3 78 */	mr r4, r30
/* 8005CC30 00058890  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8005CC34 00058894  38 63 00 04 */	addi r3, r3, 4
/* 8005CC38 00058898  48 33 3D 19 */	bl func_80390950
/* 8005CC3C 0005889C  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8005CC40 000588A0  7C 1B 00 40 */	cmplw r27, r0
/* 8005CC44 000588A4  41 80 00 40 */	blt lbl_8005CC84
/* 8005CC48 000588A8  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005CC4C 000588AC  38 80 00 00 */	li r4, 0
/* 8005CC50 000588B0  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005CC54 000588B4  38 A0 00 00 */	li r5, 0
/* 8005CC58 000588B8  38 C0 00 00 */	li r6, 0
/* 8005CC5C 000588BC  4B FF EA 79 */	bl func_8005B6D4
/* 8005CC60 000588C0  7F 48 D3 78 */	mr r8, r26
/* 8005CC64 000588C4  38 7F 81 78 */	addi r3, r31, -32392
/* 8005CC68 000588C8  38 80 00 00 */	li r4, 0
/* 8005CC6C 000588CC  38 A0 00 00 */	li r5, 0
/* 8005CC70 000588D0  38 C0 00 00 */	li r6, 0
/* 8005CC74 000588D4  38 E0 00 00 */	li r7, 0
/* 8005CC78 000588D8  39 20 00 00 */	li r9, 0
/* 8005CC7C 000588DC  4B FF EC E1 */	bl func_8005B95C
/* 8005CC80 000588E0  48 00 00 3C */	b lbl_8005CCBC
lbl_8005CC84:
/* 8005CC84 000588E4  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005CC88 000588E8  7F C4 F3 78 */	mr r4, r30
/* 8005CC8C 000588EC  7F A5 EB 78 */	mr r5, r29
/* 8005CC90 000588F0  7F 66 DB 78 */	mr r6, r27
/* 8005CC94 000588F4  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005CC98 000588F8  4B FF EA 3D */	bl func_8005B6D4
/* 8005CC9C 000588FC  7F C4 F3 78 */	mr r4, r30
/* 8005CCA0 00058900  7F A5 EB 78 */	mr r5, r29
/* 8005CCA4 00058904  7F 86 E3 78 */	mr r6, r28
/* 8005CCA8 00058908  7F 27 CB 78 */	mr r7, r25
/* 8005CCAC 0005890C  7F 48 D3 78 */	mr r8, r26
/* 8005CCB0 00058910  7F 69 DB 78 */	mr r9, r27
/* 8005CCB4 00058914  38 7F 81 78 */	addi r3, r31, -32392
/* 8005CCB8 00058918  4B FF EC A5 */	bl func_8005B95C
lbl_8005CCBC:
/* 8005CCBC 0005891C  39 61 00 30 */	addi r11, r1, 0x30
/* 8005CCC0 00058920  48 16 A4 A9 */	bl _restgpr_24
/* 8005CCC4 00058924  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005CCC8 00058928  7C 08 03 A6 */	mtlr r0
/* 8005CCCC 0005892C  38 21 00 30 */	addi r1, r1, 0x30
/* 8005CCD0 00058930  4E 80 00 20 */	blr

.global func_8005CCD4
func_8005CCD4:
/* 8005CCD4 00058934  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8005CCD8 00058938  7C 08 02 A6 */	mflr r0
/* 8005CCDC 0005893C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005CCE0 00058940  39 61 00 30 */	addi r11, r1, 0x30
/* 8005CCE4 00058944  48 16 A4 3D */	bl _savegpr_25
/* 8005CCE8 00058948  7C 79 1B 78 */	mr r25, r3
/* 8005CCEC 0005894C  7C BA 2B 78 */	mr r26, r5
/* 8005CCF0 00058950  4B FF 9E E5 */	bl func_80056BD4
/* 8005CCF4 00058954  2C 03 00 00 */	cmpwi r3, 0
/* 8005CCF8 00058958  40 82 00 3C */	bne lbl_8005CD34
/* 8005CCFC 0005895C  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005CD00 00058960  38 80 00 00 */	li r4, 0
/* 8005CD04 00058964  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005CD08 00058968  38 A0 00 00 */	li r5, 0
/* 8005CD0C 0005896C  38 C0 00 00 */	li r6, 0
/* 8005CD10 00058970  4B FF F3 5D */	bl func_8005C06C
/* 8005CD14 00058974  7F 47 D3 78 */	mr r7, r26
/* 8005CD18 00058978  38 7F 81 78 */	addi r3, r31, -32392
/* 8005CD1C 0005897C  38 80 00 00 */	li r4, 0
/* 8005CD20 00058980  38 A0 00 00 */	li r5, 0
/* 8005CD24 00058984  38 C0 00 00 */	li r6, 0
/* 8005CD28 00058988  39 00 00 00 */	li r8, 0
/* 8005CD2C 0005898C  4B FF F5 C9 */	bl func_8005C2F4
/* 8005CD30 00058990  48 00 01 2C */	b lbl_8005CE5C
lbl_8005CD34:
/* 8005CD34 00058994  7F 23 CB 78 */	mr r3, r25
/* 8005CD38 00058998  38 80 00 05 */	li r4, 5
/* 8005CD3C 0005899C  38 A0 00 00 */	li r5, 0
/* 8005CD40 000589A0  48 37 E1 BD */	bl func_803DAEFC
/* 8005CD44 000589A4  54 7E 04 3E */	clrlwi r30, r3, 0x10
/* 8005CD48 000589A8  7F 23 CB 78 */	mr r3, r25
/* 8005CD4C 000589AC  38 80 00 6F */	li r4, 0x6f
/* 8005CD50 000589B0  38 A0 00 00 */	li r5, 0
/* 8005CD54 000589B4  48 37 E1 A9 */	bl func_803DAEFC
/* 8005CD58 000589B8  54 7D 06 3E */	clrlwi r29, r3, 0x18
/* 8005CD5C 000589BC  7F 23 CB 78 */	mr r3, r25
/* 8005CD60 000589C0  3B 80 00 00 */	li r28, 0
/* 8005CD64 000589C4  4B FF A0 C9 */	bl func_80056E2C
/* 8005CD68 000589C8  2C 03 00 00 */	cmpwi r3, 0
/* 8005CD6C 000589CC  41 82 00 20 */	beq lbl_8005CD8C
/* 8005CD70 000589D0  28 1E 01 EA */	cmplwi r30, 0x1ea
/* 8005CD74 000589D4  3B 60 00 00 */	li r27, 0
/* 8005CD78 000589D8  40 82 00 08 */	bne lbl_8005CD80
/* 8005CD7C 000589DC  3B 60 00 01 */	li r27, 1
lbl_8005CD80:
/* 8005CD80 000589E0  3B C0 01 EE */	li r30, 0x1ee
/* 8005CD84 000589E4  3B A0 00 02 */	li r29, 2
/* 8005CD88 000589E8  48 00 00 2C */	b lbl_8005CDB4
lbl_8005CD8C:
/* 8005CD8C 000589EC  3F E0 80 48 */	lis r31, lbl_804782A8@ha
/* 8005CD90 000589F0  7F 23 CB 78 */	mr r3, r25
/* 8005CD94 000589F4  38 9F 82 A8 */	addi r4, r31, lbl_804782A8@l
/* 8005CD98 000589F8  48 37 F9 B1 */	bl func_803DC748
/* 8005CD9C 000589FC  38 7F 82 A8 */	addi r3, r31, -32088
/* 8005CDA0 00058A00  48 37 F3 31 */	bl func_803DC0D0
/* 8005CDA4 00058A04  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8005CDA8 00058A08  7C 03 00 D0 */	neg r0, r3
/* 8005CDAC 00058A0C  7C 00 1B 78 */	or r0, r0, r3
/* 8005CDB0 00058A10  54 1C 0F FE */	srwi r28, r0, 0x1f
lbl_8005CDB4:
/* 8005CDB4 00058A14  2C 1E 01 EE */	cmpwi r30, 0x1ee
/* 8005CDB8 00058A18  41 82 00 18 */	beq lbl_8005CDD0
/* 8005CDBC 00058A1C  7F 23 CB 78 */	mr r3, r25
/* 8005CDC0 00058A20  38 80 00 70 */	li r4, 0x70
/* 8005CDC4 00058A24  38 A0 00 00 */	li r5, 0
/* 8005CDC8 00058A28  48 37 E1 35 */	bl func_803DAEFC
/* 8005CDCC 00058A2C  54 7B 04 3E */	clrlwi r27, r3, 0x10
lbl_8005CDD0:
/* 8005CDD0 00058A30  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8005CDD4 00058A34  7F C4 F3 78 */	mr r4, r30
/* 8005CDD8 00058A38  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8005CDDC 00058A3C  38 63 00 4C */	addi r3, r3, 0x4c
/* 8005CDE0 00058A40  48 33 9C 81 */	bl func_80396A60
/* 8005CDE4 00058A44  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8005CDE8 00058A48  7C 1B 00 40 */	cmplw r27, r0
/* 8005CDEC 00058A4C  41 80 00 3C */	blt lbl_8005CE28
/* 8005CDF0 00058A50  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005CDF4 00058A54  38 80 00 00 */	li r4, 0
/* 8005CDF8 00058A58  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005CDFC 00058A5C  38 A0 00 00 */	li r5, 0
/* 8005CE00 00058A60  38 C0 00 00 */	li r6, 0
/* 8005CE04 00058A64  4B FF F2 69 */	bl func_8005C06C
/* 8005CE08 00058A68  7F 47 D3 78 */	mr r7, r26
/* 8005CE0C 00058A6C  38 7F 81 78 */	addi r3, r31, -32392
/* 8005CE10 00058A70  38 80 00 00 */	li r4, 0
/* 8005CE14 00058A74  38 A0 00 00 */	li r5, 0
/* 8005CE18 00058A78  38 C0 00 00 */	li r6, 0
/* 8005CE1C 00058A7C  39 00 00 00 */	li r8, 0
/* 8005CE20 00058A80  4B FF F4 D5 */	bl func_8005C2F4
/* 8005CE24 00058A84  48 00 00 38 */	b lbl_8005CE5C
lbl_8005CE28:
/* 8005CE28 00058A88  3F E0 80 48 */	lis r31, lbl_80478178@ha
/* 8005CE2C 00058A8C  7F C4 F3 78 */	mr r4, r30
/* 8005CE30 00058A90  7F A5 EB 78 */	mr r5, r29
/* 8005CE34 00058A94  7F 66 DB 78 */	mr r6, r27
/* 8005CE38 00058A98  38 7F 81 78 */	addi r3, r31, lbl_80478178@l
/* 8005CE3C 00058A9C  4B FF F2 31 */	bl func_8005C06C
/* 8005CE40 00058AA0  7F C4 F3 78 */	mr r4, r30
/* 8005CE44 00058AA4  7F A5 EB 78 */	mr r5, r29
/* 8005CE48 00058AA8  7F 86 E3 78 */	mr r6, r28
/* 8005CE4C 00058AAC  7F 47 D3 78 */	mr r7, r26
/* 8005CE50 00058AB0  7F 68 DB 78 */	mr r8, r27
/* 8005CE54 00058AB4  38 7F 81 78 */	addi r3, r31, -32392
/* 8005CE58 00058AB8  4B FF F4 9D */	bl func_8005C2F4
lbl_8005CE5C:
/* 8005CE5C 00058ABC  39 61 00 30 */	addi r11, r1, 0x30
/* 8005CE60 00058AC0  48 16 A3 0D */	bl _restgpr_25
/* 8005CE64 00058AC4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8005CE68 00058AC8  7C 08 03 A6 */	mtlr r0
/* 8005CE6C 00058ACC  38 21 00 30 */	addi r1, r1, 0x30
/* 8005CE70 00058AD0  4E 80 00 20 */	blr

.global func_8005CE74
func_8005CE74:
/* 8005CE74 00058AD4  39 00 00 01 */	li r8, 1
/* 8005CE78 00058AD8  38 CD 99 00 */	addi r6, r13, lbl_8063EBC0-_SDA_BASE_
/* 8005CE7C 00058ADC  38 E0 00 04 */	li r7, 4
/* 8005CE80 00058AE0  38 00 00 00 */	li r0, 0
/* 8005CE84 00058AE4  3C 60 80 48 */	lis r3, lbl_80478178@ha
/* 8005CE88 00058AE8  3C 80 80 06 */	lis r4, lbl_8005CEAC@ha
/* 8005CE8C 00058AEC  3C A0 80 48 */	lis r5, lbl_80478168@ha
/* 8005CE90 00058AF0  99 0D 99 00 */	stb r8, lbl_8063EBC0-_SDA_BASE_(r13)
/* 8005CE94 00058AF4  38 63 81 78 */	addi r3, r3, lbl_80478178@l
/* 8005CE98 00058AF8  38 84 CE AC */	addi r4, r4, lbl_8005CEAC@l
/* 8005CE9C 00058AFC  B0 E6 00 02 */	sth r7, 2(r6)
/* 8005CEA0 00058B00  38 A5 81 68 */	addi r5, r5, lbl_80478168@l
/* 8005CEA4 00058B04  98 06 00 04 */	stb r0, 4(r6)
/* 8005CEA8 00058B08  48 16 9D A0 */	b __register_global_object_tmp