summaryrefslogtreecommitdiff
path: root/asm/code_8003E854.s
blob: 5696203d598af979180449cfade2e35467d6bf7e (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
.include "macros.inc"

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

.global cPlayer_ClearSwapControllerTimer
cPlayer_ClearSwapControllerTimer:
/* 8003E854 0003A4B4  38 00 00 00 */	li r0, 0
/* 8003E858 0003A4B8  90 03 00 08 */	stw r0, 8(r3)
/* 8003E85C 0003A4BC  90 03 00 D4 */	stw r0, 0xd4(r3)
/* 8003E860 0003A4C0  90 03 00 00 */	stw r0, 0(r3)
/* 8003E864 0003A4C4  90 03 00 04 */	stw r0, 4(r3)
/* 8003E868 0003A4C8  4E 80 00 20 */	blr

.global func_8003E86C
func_8003E86C:
/* 8003E86C 0003A4CC  80 C3 00 00 */	lwz r6, 0(r3)
/* 8003E870 0003A4D0  28 06 00 32 */	cmplwi r6, 0x32
/* 8003E874 0003A4D4  4C 80 00 20 */	bgelr
/* 8003E878 0003A4D8  54 C0 10 3A */	slwi r0, r6, 2
/* 8003E87C 0003A4DC  38 E6 00 01 */	addi r7, r6, 1
/* 8003E880 0003A4E0  7C C3 02 14 */	add r6, r3, r0
/* 8003E884 0003A4E4  2C 05 00 00 */	cmpwi r5, 0
/* 8003E888 0003A4E8  90 86 00 08 */	stw r4, 8(r6)
/* 8003E88C 0003A4EC  54 E0 10 3A */	slwi r0, r7, 2
/* 8003E890 0003A4F0  7C A3 02 14 */	add r5, r3, r0
/* 8003E894 0003A4F4  90 E3 00 00 */	stw r7, 0(r3)
/* 8003E898 0003A4F8  38 00 00 00 */	li r0, 0
/* 8003E89C 0003A4FC  90 05 00 08 */	stw r0, 8(r5)
/* 8003E8A0 0003A500  4D 82 00 20 */	beqlr
/* 8003E8A4 0003A504  80 03 00 04 */	lwz r0, 4(r3)
/* 8003E8A8 0003A508  7C 65 1B 78 */	mr r5, r3
/* 8003E8AC 0003A50C  7C 09 03 A6 */	mtctr r0
/* 8003E8B0 0003A510  28 00 00 00 */	cmplwi r0, 0
/* 8003E8B4 0003A514  40 81 00 18 */	ble lbl_8003E8CC
lbl_8003E8B8:
/* 8003E8B8 0003A518  80 05 00 D4 */	lwz r0, 0xd4(r5)
/* 8003E8BC 0003A51C  7C 04 00 40 */	cmplw r4, r0
/* 8003E8C0 0003A520  4D 82 00 20 */	beqlr
/* 8003E8C4 0003A524  38 A5 00 04 */	addi r5, r5, 4
/* 8003E8C8 0003A528  42 00 FF F0 */	bdnz lbl_8003E8B8
lbl_8003E8CC:
/* 8003E8CC 0003A52C  80 C3 00 04 */	lwz r6, 4(r3)
/* 8003E8D0 0003A530  38 A0 00 00 */	li r5, 0
/* 8003E8D4 0003A534  54 C0 10 3A */	slwi r0, r6, 2
/* 8003E8D8 0003A538  38 E6 00 01 */	addi r7, r6, 1
/* 8003E8DC 0003A53C  7C C3 02 14 */	add r6, r3, r0
/* 8003E8E0 0003A540  90 86 00 D4 */	stw r4, 0xd4(r6)
/* 8003E8E4 0003A544  54 E0 10 3A */	slwi r0, r7, 2
/* 8003E8E8 0003A548  7C 83 02 14 */	add r4, r3, r0
/* 8003E8EC 0003A54C  90 E3 00 04 */	stw r7, 4(r3)
/* 8003E8F0 0003A550  90 A4 00 D4 */	stw r5, 0xd4(r4)
/* 8003E8F4 0003A554  4E 80 00 20 */	blr

.global func_8003E8F8
func_8003E8F8:
/* 8003E8F8 0003A558  80 63 00 04 */	lwz r3, 4(r3)
/* 8003E8FC 0003A55C  4E 80 00 20 */	blr

.global func_8003E900
func_8003E900:
/* 8003E900 0003A560  38 63 00 D4 */	addi r3, r3, 0xd4
/* 8003E904 0003A564  4E 80 00 20 */	blr

.global func_8003E908
func_8003E908:
/* 8003E908 0003A568  38 63 00 08 */	addi r3, r3, 8
/* 8003E90C 0003A56C  4E 80 00 20 */	blr

.global func_8003E910
func_8003E910:
/* 8003E910 0003A570  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003E914 0003A574  7C 08 02 A6 */	mflr r0
/* 8003E918 0003A578  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003E91C 0003A57C  38 00 00 00 */	li r0, 0
/* 8003E920 0003A580  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003E924 0003A584  7C 7F 1B 78 */	mr r31, r3
/* 8003E928 0003A588  90 03 00 04 */	stw r0, 4(r3)
/* 8003E92C 0003A58C  98 03 00 01 */	stb r0, 1(r3)
/* 8003E930 0003A590  48 00 00 71 */	bl func_8003E9A0
/* 8003E934 0003A594  7F E3 FB 78 */	mr r3, r31
/* 8003E938 0003A598  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003E93C 0003A59C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003E940 0003A5A0  7C 08 03 A6 */	mtlr r0
/* 8003E944 0003A5A4  38 21 00 10 */	addi r1, r1, 0x10
/* 8003E948 0003A5A8  4E 80 00 20 */	blr

.global func_8003E94C
func_8003E94C:
/* 8003E94C 0003A5AC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003E950 0003A5B0  7C 08 02 A6 */	mflr r0
/* 8003E954 0003A5B4  2C 03 00 00 */	cmpwi r3, 0
/* 8003E958 0003A5B8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003E95C 0003A5BC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003E960 0003A5C0  7C 9F 23 78 */	mr r31, r4
/* 8003E964 0003A5C4  93 C1 00 08 */	stw r30, 8(r1)
/* 8003E968 0003A5C8  7C 7E 1B 78 */	mr r30, r3
/* 8003E96C 0003A5CC  41 82 00 18 */	beq lbl_8003E984
/* 8003E970 0003A5D0  48 00 01 41 */	bl func_8003EAB0
/* 8003E974 0003A5D4  2C 1F 00 00 */	cmpwi r31, 0
/* 8003E978 0003A5D8  40 81 00 0C */	ble lbl_8003E984
/* 8003E97C 0003A5DC  7F C3 F3 78 */	mr r3, r30
/* 8003E980 0003A5E0  48 19 C1 39 */	bl __dl__FPv
lbl_8003E984:
/* 8003E984 0003A5E4  7F C3 F3 78 */	mr r3, r30
/* 8003E988 0003A5E8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003E98C 0003A5EC  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003E990 0003A5F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003E994 0003A5F4  7C 08 03 A6 */	mtlr r0
/* 8003E998 0003A5F8  38 21 00 10 */	addi r1, r1, 0x10
/* 8003E99C 0003A5FC  4E 80 00 20 */	blr

.global func_8003E9A0
func_8003E9A0:
/* 8003E9A0 0003A600  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8003E9A4 0003A604  7C 08 02 A6 */	mflr r0
/* 8003E9A8 0003A608  38 80 00 00 */	li r4, 0
/* 8003E9AC 0003A60C  38 A0 00 0C */	li r5, 0xc
/* 8003E9B0 0003A610  90 01 00 14 */	stw r0, 0x14(r1)
/* 8003E9B4 0003A614  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8003E9B8 0003A618  3B E0 00 00 */	li r31, 0
/* 8003E9BC 0003A61C  93 C1 00 08 */	stw r30, 8(r1)
/* 8003E9C0 0003A620  7C 7E 1B 78 */	mr r30, r3
/* 8003E9C4 0003A624  93 E3 00 04 */	stw r31, 4(r3)
/* 8003E9C8 0003A628  93 E3 00 08 */	stw r31, 8(r3)
/* 8003E9CC 0003A62C  38 63 00 0C */	addi r3, r3, 0xc
/* 8003E9D0 0003A630  4B FC 57 35 */	bl memset
/* 8003E9D4 0003A634  38 00 00 0A */	li r0, 0xa
/* 8003E9D8 0003A638  38 9E 00 18 */	addi r4, r30, 0x18
/* 8003E9DC 0003A63C  38 60 00 FF */	li r3, 0xff
/* 8003E9E0 0003A640  7C 09 03 A6 */	mtctr r0
lbl_8003E9E4:
/* 8003E9E4 0003A644  9B E4 00 00 */	stb r31, 0(r4)
/* 8003E9E8 0003A648  98 64 00 01 */	stb r3, 1(r4)
/* 8003E9EC 0003A64C  93 E4 00 04 */	stw r31, 4(r4)
/* 8003E9F0 0003A650  93 E4 00 20 */	stw r31, 0x20(r4)
/* 8003E9F4 0003A654  93 E4 00 24 */	stw r31, 0x24(r4)
/* 8003E9F8 0003A658  93 E4 00 28 */	stw r31, 0x28(r4)
/* 8003E9FC 0003A65C  93 E4 00 0C */	stw r31, 0xc(r4)
/* 8003EA00 0003A660  93 E4 00 18 */	stw r31, 0x18(r4)
/* 8003EA04 0003A664  93 E4 00 10 */	stw r31, 0x10(r4)
/* 8003EA08 0003A668  93 E4 00 1C */	stw r31, 0x1c(r4)
/* 8003EA0C 0003A66C  9B E4 00 14 */	stb r31, 0x14(r4)
/* 8003EA10 0003A670  93 E4 00 40 */	stw r31, 0x40(r4)
/* 8003EA14 0003A674  93 E4 00 44 */	stw r31, 0x44(r4)
/* 8003EA18 0003A678  93 E4 00 48 */	stw r31, 0x48(r4)
/* 8003EA1C 0003A67C  93 E4 00 2C */	stw r31, 0x2c(r4)
/* 8003EA20 0003A680  93 E4 00 38 */	stw r31, 0x38(r4)
/* 8003EA24 0003A684  93 E4 00 30 */	stw r31, 0x30(r4)
/* 8003EA28 0003A688  93 E4 00 3C */	stw r31, 0x3c(r4)
/* 8003EA2C 0003A68C  9B E4 00 34 */	stb r31, 0x34(r4)
/* 8003EA30 0003A690  93 E4 00 60 */	stw r31, 0x60(r4)
/* 8003EA34 0003A694  93 E4 00 64 */	stw r31, 0x64(r4)
/* 8003EA38 0003A698  93 E4 00 68 */	stw r31, 0x68(r4)
/* 8003EA3C 0003A69C  93 E4 00 4C */	stw r31, 0x4c(r4)
/* 8003EA40 0003A6A0  93 E4 00 58 */	stw r31, 0x58(r4)
/* 8003EA44 0003A6A4  93 E4 00 50 */	stw r31, 0x50(r4)
/* 8003EA48 0003A6A8  93 E4 00 5C */	stw r31, 0x5c(r4)
/* 8003EA4C 0003A6AC  9B E4 00 54 */	stb r31, 0x54(r4)
/* 8003EA50 0003A6B0  93 E4 00 80 */	stw r31, 0x80(r4)
/* 8003EA54 0003A6B4  93 E4 00 84 */	stw r31, 0x84(r4)
/* 8003EA58 0003A6B8  93 E4 00 88 */	stw r31, 0x88(r4)
/* 8003EA5C 0003A6BC  93 E4 00 6C */	stw r31, 0x6c(r4)
/* 8003EA60 0003A6C0  93 E4 00 78 */	stw r31, 0x78(r4)
/* 8003EA64 0003A6C4  93 E4 00 70 */	stw r31, 0x70(r4)
/* 8003EA68 0003A6C8  93 E4 00 7C */	stw r31, 0x7c(r4)
/* 8003EA6C 0003A6CC  9B E4 00 74 */	stb r31, 0x74(r4)
/* 8003EA70 0003A6D0  93 E4 00 A0 */	stw r31, 0xa0(r4)
/* 8003EA74 0003A6D4  93 E4 00 A4 */	stw r31, 0xa4(r4)
/* 8003EA78 0003A6D8  93 E4 00 A8 */	stw r31, 0xa8(r4)
/* 8003EA7C 0003A6DC  93 E4 00 8C */	stw r31, 0x8c(r4)
/* 8003EA80 0003A6E0  93 E4 00 98 */	stw r31, 0x98(r4)
/* 8003EA84 0003A6E4  93 E4 00 90 */	stw r31, 0x90(r4)
/* 8003EA88 0003A6E8  93 E4 00 9C */	stw r31, 0x9c(r4)
/* 8003EA8C 0003A6EC  9B E4 00 94 */	stb r31, 0x94(r4)
/* 8003EA90 0003A6F0  38 84 00 AC */	addi r4, r4, 0xac
/* 8003EA94 0003A6F4  42 00 FF 50 */	bdnz lbl_8003E9E4
/* 8003EA98 0003A6F8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8003EA9C 0003A6FC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8003EAA0 0003A700  83 C1 00 08 */	lwz r30, 8(r1)
/* 8003EAA4 0003A704  7C 08 03 A6 */	mtlr r0
/* 8003EAA8 0003A708  38 21 00 10 */	addi r1, r1, 0x10
/* 8003EAAC 0003A70C  4E 80 00 20 */	blr

.global func_8003EAB0
func_8003EAB0:
/* 8003EAB0 0003A710  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003EAB4 0003A714  7C 08 02 A6 */	mflr r0
/* 8003EAB8 0003A718  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003EABC 0003A71C  39 61 00 30 */	addi r11, r1, 0x30
/* 8003EAC0 0003A720  48 18 86 61 */	bl _savegpr_25
/* 8003EAC4 0003A724  3B C0 00 00 */	li r30, 0
/* 8003EAC8 0003A728  7C 79 1B 78 */	mr r25, r3
/* 8003EACC 0003A72C  93 C3 00 08 */	stw r30, 8(r3)
/* 8003EAD0 0003A730  3B A3 00 18 */	addi r29, r3, 0x18
/* 8003EAD4 0003A734  3B 60 00 00 */	li r27, 0
/* 8003EAD8 0003A738  3B E0 00 FF */	li r31, 0xff
lbl_8003EADC:
/* 8003EADC 0003A73C  9B DD 00 00 */	stb r30, 0(r29)
/* 8003EAE0 0003A740  3B 9D 00 0C */	addi r28, r29, 0xc
/* 8003EAE4 0003A744  3B 40 00 00 */	li r26, 0
/* 8003EAE8 0003A748  9B FD 00 01 */	stb r31, 1(r29)
lbl_8003EAEC:
/* 8003EAEC 0003A74C  80 7C 00 14 */	lwz r3, 0x14(r28)
/* 8003EAF0 0003A750  2C 03 00 00 */	cmpwi r3, 0
/* 8003EAF4 0003A754  41 82 00 10 */	beq lbl_8003EB04
/* 8003EAF8 0003A758  38 80 00 01 */	li r4, 1
/* 8003EAFC 0003A75C  48 1B 5F F5 */	bl func_801F4AF0
/* 8003EB00 0003A760  93 DC 00 14 */	stw r30, 0x14(r28)
lbl_8003EB04:
/* 8003EB04 0003A764  80 7C 00 18 */	lwz r3, 0x18(r28)
/* 8003EB08 0003A768  2C 83 00 00 */	cmpwi cr1, r3, 0
/* 8003EB0C 0003A76C  41 86 00 28 */	beq cr1, lbl_8003EB34
/* 8003EB10 0003A770  80 1C 00 00 */	lwz r0, 0(r28)
/* 8003EB14 0003A774  28 00 00 64 */	cmplwi r0, 0x64
/* 8003EB18 0003A778  41 82 00 1C */	beq lbl_8003EB34
/* 8003EB1C 0003A77C  41 86 00 18 */	beq cr1, lbl_8003EB34
/* 8003EB20 0003A780  81 83 00 34 */	lwz r12, 0x34(r3)
/* 8003EB24 0003A784  38 80 00 01 */	li r4, 1
/* 8003EB28 0003A788  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003EB2C 0003A78C  7D 89 03 A6 */	mtctr r12
/* 8003EB30 0003A790  4E 80 04 21 */	bctrl
lbl_8003EB34:
/* 8003EB34 0003A794  93 DC 00 18 */	stw r30, 0x18(r28)
/* 8003EB38 0003A798  80 9C 00 00 */	lwz r4, 0(r28)
/* 8003EB3C 0003A79C  2C 04 00 00 */	cmpwi r4, 0
/* 8003EB40 0003A7A0  41 82 00 18 */	beq lbl_8003EB58
/* 8003EB44 0003A7A4  28 04 00 64 */	cmplwi r4, 0x64
/* 8003EB48 0003A7A8  41 82 00 10 */	beq lbl_8003EB58
/* 8003EB4C 0003A7AC  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003EB50 0003A7B0  48 19 C9 F9 */	bl func_801DB548
/* 8003EB54 0003A7B4  93 DC 00 00 */	stw r30, 0(r28)
lbl_8003EB58:
/* 8003EB58 0003A7B8  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003EB5C 0003A7BC  2C 04 00 00 */	cmpwi r4, 0
/* 8003EB60 0003A7C0  41 82 00 10 */	beq lbl_8003EB70
/* 8003EB64 0003A7C4  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003EB68 0003A7C8  48 19 C9 E1 */	bl func_801DB548
/* 8003EB6C 0003A7CC  93 DC 00 04 */	stw r30, 4(r28)
lbl_8003EB70:
/* 8003EB70 0003A7D0  3B 5A 00 01 */	addi r26, r26, 1
/* 8003EB74 0003A7D4  3B 9C 00 20 */	addi r28, r28, 0x20
/* 8003EB78 0003A7D8  2C 1A 00 05 */	cmpwi r26, 5
/* 8003EB7C 0003A7DC  41 80 FF 70 */	blt lbl_8003EAEC
/* 8003EB80 0003A7E0  3B 7B 00 01 */	addi r27, r27, 1
/* 8003EB84 0003A7E4  3B BD 00 AC */	addi r29, r29, 0xac
/* 8003EB88 0003A7E8  2C 1B 00 0A */	cmpwi r27, 0xa
/* 8003EB8C 0003A7EC  41 80 FF 50 */	blt lbl_8003EADC
/* 8003EB90 0003A7F0  80 99 00 14 */	lwz r4, 0x14(r25)
/* 8003EB94 0003A7F4  2C 04 00 00 */	cmpwi r4, 0
/* 8003EB98 0003A7F8  41 82 00 0C */	beq lbl_8003EBA4
/* 8003EB9C 0003A7FC  80 79 00 10 */	lwz r3, 0x10(r25)
/* 8003EBA0 0003A800  48 19 C9 A9 */	bl func_801DB548
lbl_8003EBA4:
/* 8003EBA4 0003A804  38 79 00 0C */	addi r3, r25, 0xc
/* 8003EBA8 0003A808  38 80 00 00 */	li r4, 0
/* 8003EBAC 0003A80C  38 A0 00 0C */	li r5, 0xc
/* 8003EBB0 0003A810  4B FC 55 55 */	bl memset
/* 8003EBB4 0003A814  39 61 00 30 */	addi r11, r1, 0x30
/* 8003EBB8 0003A818  48 18 85 B5 */	bl _restgpr_25
/* 8003EBBC 0003A81C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003EBC0 0003A820  7C 08 03 A6 */	mtlr r0
/* 8003EBC4 0003A824  38 21 00 30 */	addi r1, r1, 0x30
/* 8003EBC8 0003A828  4E 80 00 20 */	blr

.global func_8003EBCC
func_8003EBCC:
/* 8003EBCC 0003A82C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003EBD0 0003A830  7C 08 02 A6 */	mflr r0
/* 8003EBD4 0003A834  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003EBD8 0003A838  39 61 00 20 */	addi r11, r1, 0x20
/* 8003EBDC 0003A83C  48 18 85 49 */	bl _savegpr_26
/* 8003EBE0 0003A840  2C 04 00 00 */	cmpwi r4, 0
/* 8003EBE4 0003A844  8B A3 00 01 */	lbz r29, 1(r3)
/* 8003EBE8 0003A848  7C 7A 1B 78 */	mr r26, r3
/* 8003EBEC 0003A84C  7C 9B 23 78 */	mr r27, r4
/* 8003EBF0 0003A850  41 82 00 10 */	beq lbl_8003EC00
/* 8003EBF4 0003A854  88 03 00 03 */	lbz r0, 3(r3)
/* 8003EBF8 0003A858  7C 00 07 75 */	extsb. r0, r0
/* 8003EBFC 0003A85C  40 82 00 0C */	bne lbl_8003EC08
lbl_8003EC00:
/* 8003EC00 0003A860  38 60 00 00 */	li r3, 0
/* 8003EC04 0003A864  48 00 00 88 */	b lbl_8003EC8C
lbl_8003EC08:
/* 8003EC08 0003A868  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003EC0C 0003A86C  3B C3 CE 34 */	addi r30, r3, lbl_8063CE34@l
/* 8003EC10 0003A870  38 7E 00 80 */	addi r3, r30, 0x80
/* 8003EC14 0003A874  48 35 B3 01 */	bl func_80399F14
/* 8003EC18 0003A878  7C 7F 1B 78 */	mr r31, r3
/* 8003EC1C 0003A87C  3B 80 00 00 */	li r28, 0
/* 8003EC20 0003A880  48 00 00 60 */	b lbl_8003EC80
lbl_8003EC24:
/* 8003EC24 0003A884  7F 84 E3 78 */	mr r4, r28
/* 8003EC28 0003A888  7F A5 EB 78 */	mr r5, r29
/* 8003EC2C 0003A88C  38 7E 00 80 */	addi r3, r30, 0x80
/* 8003EC30 0003A890  48 35 B3 35 */	bl func_80399F64
/* 8003EC34 0003A894  7C 1B 18 40 */	cmplw r27, r3
/* 8003EC38 0003A898  40 82 00 44 */	bne lbl_8003EC7C
/* 8003EC3C 0003A89C  88 1A 00 03 */	lbz r0, 3(r26)
/* 8003EC40 0003A8A0  7C 00 07 74 */	extsb r0, r0
/* 8003EC44 0003A8A4  2C 00 00 01 */	cmpwi r0, 1
/* 8003EC48 0003A8A8  40 82 00 18 */	bne lbl_8003EC60
/* 8003EC4C 0003A8AC  7F 84 E3 78 */	mr r4, r28
/* 8003EC50 0003A8B0  7F A5 EB 78 */	mr r5, r29
/* 8003EC54 0003A8B4  38 7E 00 80 */	addi r3, r30, 0x80
/* 8003EC58 0003A8B8  48 35 B3 61 */	bl func_80399FB8
/* 8003EC5C 0003A8BC  48 00 00 30 */	b lbl_8003EC8C
lbl_8003EC60:
/* 8003EC60 0003A8C0  2C 00 00 02 */	cmpwi r0, 2
/* 8003EC64 0003A8C4  40 82 00 18 */	bne lbl_8003EC7C
/* 8003EC68 0003A8C8  7F 84 E3 78 */	mr r4, r28
/* 8003EC6C 0003A8CC  7F A5 EB 78 */	mr r5, r29
/* 8003EC70 0003A8D0  38 7E 00 80 */	addi r3, r30, 0x80
/* 8003EC74 0003A8D4  48 35 B3 9D */	bl func_8039A010
/* 8003EC78 0003A8D8  48 00 00 14 */	b lbl_8003EC8C
lbl_8003EC7C:
/* 8003EC7C 0003A8DC  3B 9C 00 01 */	addi r28, r28, 1
lbl_8003EC80:
/* 8003EC80 0003A8E0  7C 1C F8 00 */	cmpw r28, r31
/* 8003EC84 0003A8E4  41 80 FF A0 */	blt lbl_8003EC24
/* 8003EC88 0003A8E8  38 60 00 00 */	li r3, 0
lbl_8003EC8C:
/* 8003EC8C 0003A8EC  39 61 00 20 */	addi r11, r1, 0x20
/* 8003EC90 0003A8F0  48 18 84 E1 */	bl _restgpr_26
/* 8003EC94 0003A8F4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003EC98 0003A8F8  7C 08 03 A6 */	mtlr r0
/* 8003EC9C 0003A8FC  38 21 00 20 */	addi r1, r1, 0x20
/* 8003ECA0 0003A900  4E 80 00 20 */	blr

.global func_8003ECA4
func_8003ECA4:
/* 8003ECA4 0003A904  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003ECA8 0003A908  7C 08 02 A6 */	mflr r0
/* 8003ECAC 0003A90C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003ECB0 0003A910  39 61 00 30 */	addi r11, r1, 0x30
/* 8003ECB4 0003A914  48 18 84 61 */	bl _savegpr_22
/* 8003ECB8 0003A918  88 03 00 03 */	lbz r0, 3(r3)
/* 8003ECBC 0003A91C  7C 76 1B 78 */	mr r22, r3
/* 8003ECC0 0003A920  8B 83 00 01 */	lbz r28, 1(r3)
/* 8003ECC4 0003A924  7C 97 23 78 */	mr r23, r4
/* 8003ECC8 0003A928  7C 00 07 75 */	extsb. r0, r0
/* 8003ECCC 0003A92C  7C B8 2B 78 */	mr r24, r5
/* 8003ECD0 0003A930  7C D9 33 78 */	mr r25, r6
/* 8003ECD4 0003A934  40 82 00 0C */	bne lbl_8003ECE0
/* 8003ECD8 0003A938  38 60 00 00 */	li r3, 0
/* 8003ECDC 0003A93C  48 00 00 F8 */	b lbl_8003EDD4
lbl_8003ECE0:
/* 8003ECE0 0003A940  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003ECE4 0003A944  3B A3 CE 34 */	addi r29, r3, lbl_8063CE34@l
/* 8003ECE8 0003A948  38 7D 00 80 */	addi r3, r29, 0x80
/* 8003ECEC 0003A94C  48 35 B2 29 */	bl func_80399F14
/* 8003ECF0 0003A950  7C 7E 1B 78 */	mr r30, r3
/* 8003ECF4 0003A954  38 76 00 0C */	addi r3, r22, 0xc
/* 8003ECF8 0003A958  38 80 00 00 */	li r4, 0
/* 8003ECFC 0003A95C  38 A0 00 0C */	li r5, 0xc
/* 8003ED00 0003A960  4B FC 54 05 */	bl memset
/* 8003ED04 0003A964  3B 40 00 00 */	li r26, 0
/* 8003ED08 0003A968  48 00 00 C0 */	b lbl_8003EDC8
lbl_8003ED0C:
/* 8003ED0C 0003A96C  7F 44 D3 78 */	mr r4, r26
/* 8003ED10 0003A970  38 7D 00 80 */	addi r3, r29, 0x80
/* 8003ED14 0003A974  48 35 B2 1D */	bl func_80399F30
/* 8003ED18 0003A978  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003ED1C 0003A97C  7C 17 00 00 */	cmpw r23, r0
/* 8003ED20 0003A980  40 82 00 A4 */	bne lbl_8003EDC4
/* 8003ED24 0003A984  7F 44 D3 78 */	mr r4, r26
/* 8003ED28 0003A988  7F 85 E3 78 */	mr r5, r28
/* 8003ED2C 0003A98C  38 7D 00 80 */	addi r3, r29, 0x80
/* 8003ED30 0003A990  48 35 B2 35 */	bl func_80399F64
/* 8003ED34 0003A994  28 03 01 00 */	cmplwi r3, 0x100
/* 8003ED38 0003A998  7C 7F 1B 78 */	mr r31, r3
/* 8003ED3C 0003A99C  40 80 00 88 */	bge lbl_8003EDC4
/* 8003ED40 0003A9A0  88 16 00 03 */	lbz r0, 3(r22)
/* 8003ED44 0003A9A4  3B 60 00 00 */	li r27, 0
/* 8003ED48 0003A9A8  7C 00 07 74 */	extsb r0, r0
/* 8003ED4C 0003A9AC  2C 00 00 01 */	cmpwi r0, 1
/* 8003ED50 0003A9B0  40 82 00 1C */	bne lbl_8003ED6C
/* 8003ED54 0003A9B4  7F 44 D3 78 */	mr r4, r26
/* 8003ED58 0003A9B8  7F 85 E3 78 */	mr r5, r28
/* 8003ED5C 0003A9BC  38 7D 00 80 */	addi r3, r29, 0x80
/* 8003ED60 0003A9C0  48 35 B2 59 */	bl func_80399FB8
/* 8003ED64 0003A9C4  7C 7B 1B 78 */	mr r27, r3
/* 8003ED68 0003A9C8  48 00 00 20 */	b lbl_8003ED88
lbl_8003ED6C:
/* 8003ED6C 0003A9CC  2C 00 00 02 */	cmpwi r0, 2
/* 8003ED70 0003A9D0  40 82 00 18 */	bne lbl_8003ED88
/* 8003ED74 0003A9D4  7F 44 D3 78 */	mr r4, r26
/* 8003ED78 0003A9D8  7F 85 E3 78 */	mr r5, r28
/* 8003ED7C 0003A9DC  38 7D 00 80 */	addi r3, r29, 0x80
/* 8003ED80 0003A9E0  48 35 B2 91 */	bl func_8039A010
/* 8003ED84 0003A9E4  7C 7B 1B 78 */	mr r27, r3
lbl_8003ED88:
/* 8003ED88 0003A9E8  2C 1B 00 00 */	cmpwi r27, 0
/* 8003ED8C 0003A9EC  41 82 00 38 */	beq lbl_8003EDC4
/* 8003ED90 0003A9F0  7F 03 C3 78 */	mr r3, r24
/* 8003ED94 0003A9F4  7F 64 DB 78 */	mr r4, r27
/* 8003ED98 0003A9F8  48 19 C7 25 */	bl func_801DB4BC
/* 8003ED9C 0003A9FC  7C 60 00 34 */	cntlzw r0, r3
/* 8003EDA0 0003AA00  7F 23 CB 78 */	mr r3, r25
/* 8003EDA4 0003AA04  7F 64 DB 78 */	mr r4, r27
/* 8003EDA8 0003AA08  54 05 D9 7E */	srwi r5, r0, 5
/* 8003EDAC 0003AA0C  4B FF FA C1 */	bl func_8003E86C
/* 8003EDB0 0003AA10  B3 F6 00 0C */	sth r31, 0xc(r22)
/* 8003EDB4 0003AA14  7F 63 DB 78 */	mr r3, r27
/* 8003EDB8 0003AA18  93 16 00 10 */	stw r24, 0x10(r22)
/* 8003EDBC 0003AA1C  93 76 00 14 */	stw r27, 0x14(r22)
/* 8003EDC0 0003AA20  48 00 00 14 */	b lbl_8003EDD4
lbl_8003EDC4:
/* 8003EDC4 0003AA24  3B 5A 00 01 */	addi r26, r26, 1
lbl_8003EDC8:
/* 8003EDC8 0003AA28  7C 1A F0 00 */	cmpw r26, r30
/* 8003EDCC 0003AA2C  41 80 FF 40 */	blt lbl_8003ED0C
/* 8003EDD0 0003AA30  38 60 00 00 */	li r3, 0
lbl_8003EDD4:
/* 8003EDD4 0003AA34  39 61 00 30 */	addi r11, r1, 0x30
/* 8003EDD8 0003AA38  48 18 83 89 */	bl _restgpr_22
/* 8003EDDC 0003AA3C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003EDE0 0003AA40  7C 08 03 A6 */	mtlr r0
/* 8003EDE4 0003AA44  38 21 00 30 */	addi r1, r1, 0x30
/* 8003EDE8 0003AA48  4E 80 00 20 */	blr

.global func_8003EDEC
func_8003EDEC:
/* 8003EDEC 0003AA4C  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8003EDF0 0003AA50  7C 08 02 A6 */	mflr r0
/* 8003EDF4 0003AA54  90 01 00 54 */	stw r0, 0x54(r1)
/* 8003EDF8 0003AA58  39 61 00 50 */	addi r11, r1, 0x50
/* 8003EDFC 0003AA5C  48 18 83 21 */	bl _savegpr_24
/* 8003EE00 0003AA60  3C C0 80 64 */	lis r6, lbl_8063CE34@ha
/* 8003EE04 0003AA64  7C 7C 1B 78 */	mr r28, r3
/* 8003EE08 0003AA68  3B E6 CE 34 */	addi r31, r6, lbl_8063CE34@l
/* 8003EE0C 0003AA6C  7C 98 23 78 */	mr r24, r4
/* 8003EE10 0003AA70  7C BD 2B 78 */	mr r29, r5
/* 8003EE14 0003AA74  7C FE 3B 78 */	mr r30, r7
/* 8003EE18 0003AA78  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE1C 0003AA7C  48 35 66 75 */	bl func_80395490
/* 8003EE20 0003AA80  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE24 0003AA84  7F 04 C3 78 */	mr r4, r24
/* 8003EE28 0003AA88  90 01 00 18 */	stw r0, 0x18(r1)
/* 8003EE2C 0003AA8C  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE30 0003AA90  48 35 67 01 */	bl func_80395530
/* 8003EE34 0003AA94  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE38 0003AA98  7F 04 C3 78 */	mr r4, r24
/* 8003EE3C 0003AA9C  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8003EE40 0003AAA0  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE44 0003AAA4  48 35 67 8D */	bl func_803955D0
/* 8003EE48 0003AAA8  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE4C 0003AAAC  7F 04 C3 78 */	mr r4, r24
/* 8003EE50 0003AAB0  90 01 00 20 */	stw r0, 0x20(r1)
/* 8003EE54 0003AAB4  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE58 0003AAB8  48 35 68 19 */	bl func_80395670
/* 8003EE5C 0003AABC  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE60 0003AAC0  7F 04 C3 78 */	mr r4, r24
/* 8003EE64 0003AAC4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003EE68 0003AAC8  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE6C 0003AACC  48 35 68 A5 */	bl func_80395710
/* 8003EE70 0003AAD0  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE74 0003AAD4  7F 04 C3 78 */	mr r4, r24
/* 8003EE78 0003AAD8  90 01 00 28 */	stw r0, 0x28(r1)
/* 8003EE7C 0003AADC  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE80 0003AAE0  48 35 63 E9 */	bl func_80395268
/* 8003EE84 0003AAE4  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE88 0003AAE8  7F 04 C3 78 */	mr r4, r24
/* 8003EE8C 0003AAEC  90 01 00 08 */	stw r0, 8(r1)
/* 8003EE90 0003AAF0  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EE94 0003AAF4  48 35 64 0D */	bl func_803952A0
/* 8003EE98 0003AAF8  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EE9C 0003AAFC  7F 04 C3 78 */	mr r4, r24
/* 8003EEA0 0003AB00  90 01 00 0C */	stw r0, 0xc(r1)
/* 8003EEA4 0003AB04  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EEA8 0003AB08  48 35 64 31 */	bl func_803952D8
/* 8003EEAC 0003AB0C  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8003EEB0 0003AB10  7F 04 C3 78 */	mr r4, r24
/* 8003EEB4 0003AB14  90 01 00 10 */	stw r0, 0x10(r1)
/* 8003EEB8 0003AB18  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EEBC 0003AB1C  48 35 64 55 */	bl func_80395310
/* 8003EEC0 0003AB20  88 1C 00 01 */	lbz r0, 1(r28)
/* 8003EEC4 0003AB24  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8003EEC8 0003AB28  90 61 00 14 */	stw r3, 0x14(r1)
/* 8003EECC 0003AB2C  2C 00 00 00 */	cmpwi r0, 0
/* 8003EED0 0003AB30  41 82 01 50 */	beq lbl_8003F020
/* 8003EED4 0003AB34  7F 04 C3 78 */	mr r4, r24
/* 8003EED8 0003AB38  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EEDC 0003AB3C  48 35 65 81 */	bl func_8039545C
/* 8003EEE0 0003AB40  90 7D 00 18 */	stw r3, 0x18(r29)
/* 8003EEE4 0003AB44  7F 04 C3 78 */	mr r4, r24
/* 8003EEE8 0003AB48  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EEEC 0003AB4C  48 35 66 11 */	bl func_803954FC
/* 8003EEF0 0003AB50  90 7D 00 38 */	stw r3, 0x38(r29)
/* 8003EEF4 0003AB54  7F 04 C3 78 */	mr r4, r24
/* 8003EEF8 0003AB58  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EEFC 0003AB5C  48 35 66 A1 */	bl func_8039559C
/* 8003EF00 0003AB60  90 7D 00 58 */	stw r3, 0x58(r29)
/* 8003EF04 0003AB64  7F 04 C3 78 */	mr r4, r24
/* 8003EF08 0003AB68  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EF0C 0003AB6C  48 35 67 31 */	bl func_8039563C
/* 8003EF10 0003AB70  90 7D 00 78 */	stw r3, 0x78(r29)
/* 8003EF14 0003AB74  7F 04 C3 78 */	mr r4, r24
/* 8003EF18 0003AB78  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003EF1C 0003AB7C  48 35 67 C1 */	bl func_803956DC
/* 8003EF20 0003AB80  90 7D 00 98 */	stw r3, 0x98(r29)
/* 8003EF24 0003AB84  3B 1D 00 0C */	addi r24, r29, 0xc
/* 8003EF28 0003AB88  3B 21 00 18 */	addi r25, r1, 0x18
/* 8003EF2C 0003AB8C  3B 5D 00 AC */	addi r26, r29, 0xac
/* 8003EF30 0003AB90  3B 60 00 00 */	li r27, 0
/* 8003EF34 0003AB94  48 00 00 90 */	b lbl_8003EFC4
lbl_8003EF38:
/* 8003EF38 0003AB98  80 78 00 0C */	lwz r3, 0xc(r24)
/* 8003EF3C 0003AB9C  54 60 BE BE */	rlwinm r0, r3, 0x17, 0x1a, 0x1f
/* 8003EF40 0003ABA0  2C 00 00 04 */	cmpwi r0, 4
/* 8003EF44 0003ABA4  41 82 00 2C */	beq lbl_8003EF70
/* 8003EF48 0003ABA8  40 80 00 50 */	bge lbl_8003EF98
/* 8003EF4C 0003ABAC  2C 00 00 03 */	cmpwi r0, 3
/* 8003EF50 0003ABB0  40 80 00 08 */	bge lbl_8003EF58
/* 8003EF54 0003ABB4  48 00 00 44 */	b lbl_8003EF98
lbl_8003EF58:
/* 8003EF58 0003ABB8  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003EF5C 0003ABBC  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003EF60 0003ABC0  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003EF64 0003ABC4  48 35 70 D9 */	bl func_8039603C
/* 8003EF68 0003ABC8  98 78 00 08 */	stb r3, 8(r24)
/* 8003EF6C 0003ABCC  48 00 00 50 */	b lbl_8003EFBC
lbl_8003EF70:
/* 8003EF70 0003ABD0  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003EF74 0003ABD4  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003EF78 0003ABD8  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003EF7C 0003ABDC  48 35 71 69 */	bl func_803960E4
/* 8003EF80 0003ABE0  98 78 00 08 */	stb r3, 8(r24)
/* 8003EF84 0003ABE4  7F 83 E3 78 */	mr r3, r28
/* 8003EF88 0003ABE8  80 98 00 0C */	lwz r4, 0xc(r24)
/* 8003EF8C 0003ABEC  4B FF FC 41 */	bl func_8003EBCC
/* 8003EF90 0003ABF0  90 78 00 10 */	stw r3, 0x10(r24)
/* 8003EF94 0003ABF4  48 00 00 28 */	b lbl_8003EFBC
lbl_8003EF98:
/* 8003EF98 0003ABF8  28 03 00 64 */	cmplwi r3, 0x64
/* 8003EF9C 0003ABFC  40 82 00 1C */	bne lbl_8003EFB8
/* 8003EFA0 0003AC00  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003EFA4 0003AC04  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003EFA8 0003AC08  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003EFAC 0003AC0C  48 35 71 39 */	bl func_803960E4
/* 8003EFB0 0003AC10  98 78 00 08 */	stb r3, 8(r24)
/* 8003EFB4 0003AC14  48 00 00 08 */	b lbl_8003EFBC
lbl_8003EFB8:
/* 8003EFB8 0003AC18  9B 78 00 08 */	stb r27, 8(r24)
lbl_8003EFBC:
/* 8003EFBC 0003AC1C  3B 18 00 20 */	addi r24, r24, 0x20
/* 8003EFC0 0003AC20  3B 39 00 04 */	addi r25, r25, 4
lbl_8003EFC4:
/* 8003EFC4 0003AC24  7C 18 D0 40 */	cmplw r24, r26
/* 8003EFC8 0003AC28  40 82 FF 70 */	bne lbl_8003EF38
/* 8003EFCC 0003AC2C  3F 40 80 64 */	lis r26, lbl_8063CE34@ha
/* 8003EFD0 0003AC30  3B 21 00 08 */	addi r25, r1, 8
/* 8003EFD4 0003AC34  3B 5A CE 34 */	addi r26, r26, lbl_8063CE34@l
/* 8003EFD8 0003AC38  3B E0 00 00 */	li r31, 0
/* 8003EFDC 0003AC3C  3B 60 00 FF */	li r27, 0xff
lbl_8003EFE0:
/* 8003EFE0 0003AC40  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003EFE4 0003AC44  28 05 00 07 */	cmplwi r5, 7
/* 8003EFE8 0003AC48  40 82 00 10 */	bne lbl_8003EFF8
/* 8003EFEC 0003AC4C  7C 7D FA 14 */	add r3, r29, r31
/* 8003EFF0 0003AC50  9B 63 00 08 */	stb r27, 8(r3)
/* 8003EFF4 0003AC54  48 00 00 18 */	b lbl_8003F00C
lbl_8003EFF8:
/* 8003EFF8 0003AC58  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003EFFC 0003AC5C  38 7A 00 28 */	addi r3, r26, 0x28
/* 8003F000 0003AC60  48 35 70 91 */	bl func_80396090
/* 8003F004 0003AC64  7C 9D FA 14 */	add r4, r29, r31
/* 8003F008 0003AC68  98 64 00 08 */	stb r3, 8(r4)
lbl_8003F00C:
/* 8003F00C 0003AC6C  3B FF 00 01 */	addi r31, r31, 1
/* 8003F010 0003AC70  3B 39 00 04 */	addi r25, r25, 4
/* 8003F014 0003AC74  2C 1F 00 04 */	cmpwi r31, 4
/* 8003F018 0003AC78  41 80 FF C8 */	blt lbl_8003EFE0
/* 8003F01C 0003AC7C  48 00 01 4C */	b lbl_8003F168
lbl_8003F020:
/* 8003F020 0003AC80  7F 04 C3 78 */	mr r4, r24
/* 8003F024 0003AC84  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003F028 0003AC88  48 35 64 01 */	bl func_80395428
/* 8003F02C 0003AC8C  90 7D 00 18 */	stw r3, 0x18(r29)
/* 8003F030 0003AC90  7F 04 C3 78 */	mr r4, r24
/* 8003F034 0003AC94  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003F038 0003AC98  48 35 64 91 */	bl func_803954C8
/* 8003F03C 0003AC9C  90 7D 00 38 */	stw r3, 0x38(r29)
/* 8003F040 0003ACA0  7F 04 C3 78 */	mr r4, r24
/* 8003F044 0003ACA4  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003F048 0003ACA8  48 35 65 21 */	bl func_80395568
/* 8003F04C 0003ACAC  90 7D 00 58 */	stw r3, 0x58(r29)
/* 8003F050 0003ACB0  7F 04 C3 78 */	mr r4, r24
/* 8003F054 0003ACB4  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003F058 0003ACB8  48 35 65 B1 */	bl func_80395608
/* 8003F05C 0003ACBC  90 7D 00 78 */	stw r3, 0x78(r29)
/* 8003F060 0003ACC0  7F 04 C3 78 */	mr r4, r24
/* 8003F064 0003ACC4  38 7F 00 2C */	addi r3, r31, 0x2c
/* 8003F068 0003ACC8  48 35 66 41 */	bl func_803956A8
/* 8003F06C 0003ACCC  90 7D 00 98 */	stw r3, 0x98(r29)
/* 8003F070 0003ACD0  3B 1D 00 0C */	addi r24, r29, 0xc
/* 8003F074 0003ACD4  3B 21 00 18 */	addi r25, r1, 0x18
/* 8003F078 0003ACD8  3B 7D 00 AC */	addi r27, r29, 0xac
/* 8003F07C 0003ACDC  3B 40 00 00 */	li r26, 0
/* 8003F080 0003ACE0  48 00 00 90 */	b lbl_8003F110
lbl_8003F084:
/* 8003F084 0003ACE4  80 78 00 0C */	lwz r3, 0xc(r24)
/* 8003F088 0003ACE8  54 60 BE BE */	rlwinm r0, r3, 0x17, 0x1a, 0x1f
/* 8003F08C 0003ACEC  2C 00 00 04 */	cmpwi r0, 4
/* 8003F090 0003ACF0  41 82 00 2C */	beq lbl_8003F0BC
/* 8003F094 0003ACF4  40 80 00 50 */	bge lbl_8003F0E4
/* 8003F098 0003ACF8  2C 00 00 03 */	cmpwi r0, 3
/* 8003F09C 0003ACFC  40 80 00 08 */	bge lbl_8003F0A4
/* 8003F0A0 0003AD00  48 00 00 44 */	b lbl_8003F0E4
lbl_8003F0A4:
/* 8003F0A4 0003AD04  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003F0A8 0003AD08  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003F0AC 0003AD0C  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003F0B0 0003AD10  48 35 6E 91 */	bl func_80395F40
/* 8003F0B4 0003AD14  98 78 00 08 */	stb r3, 8(r24)
/* 8003F0B8 0003AD18  48 00 00 50 */	b lbl_8003F108
lbl_8003F0BC:
/* 8003F0BC 0003AD1C  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003F0C0 0003AD20  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003F0C4 0003AD24  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003F0C8 0003AD28  48 35 6F 21 */	bl func_80395FE8
/* 8003F0CC 0003AD2C  98 78 00 08 */	stb r3, 8(r24)
/* 8003F0D0 0003AD30  7F 83 E3 78 */	mr r3, r28
/* 8003F0D4 0003AD34  80 98 00 0C */	lwz r4, 0xc(r24)
/* 8003F0D8 0003AD38  4B FF FA F5 */	bl func_8003EBCC
/* 8003F0DC 0003AD3C  90 78 00 10 */	stw r3, 0x10(r24)
/* 8003F0E0 0003AD40  48 00 00 28 */	b lbl_8003F108
lbl_8003F0E4:
/* 8003F0E4 0003AD44  28 03 00 64 */	cmplwi r3, 0x64
/* 8003F0E8 0003AD48  40 82 00 1C */	bne lbl_8003F104
/* 8003F0EC 0003AD4C  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003F0F0 0003AD50  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003F0F4 0003AD54  80 B9 00 00 */	lwz r5, 0(r25)
/* 8003F0F8 0003AD58  48 35 6E F1 */	bl func_80395FE8
/* 8003F0FC 0003AD5C  98 78 00 08 */	stb r3, 8(r24)
/* 8003F100 0003AD60  48 00 00 08 */	b lbl_8003F108
lbl_8003F104:
/* 8003F104 0003AD64  9B 58 00 08 */	stb r26, 8(r24)
lbl_8003F108:
/* 8003F108 0003AD68  3B 18 00 20 */	addi r24, r24, 0x20
/* 8003F10C 0003AD6C  3B 39 00 04 */	addi r25, r25, 4
lbl_8003F110:
/* 8003F110 0003AD70  7C 18 D8 40 */	cmplw r24, r27
/* 8003F114 0003AD74  40 82 FF 70 */	bne lbl_8003F084
/* 8003F118 0003AD78  3F E0 80 64 */	lis r31, lbl_8063CE34@ha
/* 8003F11C 0003AD7C  3B 41 00 08 */	addi r26, r1, 8
/* 8003F120 0003AD80  3B FF CE 34 */	addi r31, r31, lbl_8063CE34@l
/* 8003F124 0003AD84  3B 20 00 00 */	li r25, 0
/* 8003F128 0003AD88  3B 60 00 FF */	li r27, 0xff
lbl_8003F12C:
/* 8003F12C 0003AD8C  80 BA 00 00 */	lwz r5, 0(r26)
/* 8003F130 0003AD90  28 05 00 07 */	cmplwi r5, 7
/* 8003F134 0003AD94  40 82 00 10 */	bne lbl_8003F144
/* 8003F138 0003AD98  7C 7D CA 14 */	add r3, r29, r25
/* 8003F13C 0003AD9C  9B 63 00 08 */	stb r27, 8(r3)
/* 8003F140 0003ADA0  48 00 00 18 */	b lbl_8003F158
lbl_8003F144:
/* 8003F144 0003ADA4  80 9C 00 04 */	lwz r4, 4(r28)
/* 8003F148 0003ADA8  38 7F 00 28 */	addi r3, r31, 0x28
/* 8003F14C 0003ADAC  48 35 6E 49 */	bl func_80395F94
/* 8003F150 0003ADB0  7C 9D CA 14 */	add r4, r29, r25
/* 8003F154 0003ADB4  98 64 00 08 */	stb r3, 8(r4)
lbl_8003F158:
/* 8003F158 0003ADB8  3B 39 00 01 */	addi r25, r25, 1
/* 8003F15C 0003ADBC  3B 5A 00 04 */	addi r26, r26, 4
/* 8003F160 0003ADC0  2C 19 00 04 */	cmpwi r25, 4
/* 8003F164 0003ADC4  41 80 FF C8 */	blt lbl_8003F12C
lbl_8003F168:
/* 8003F168 0003ADC8  38 00 00 01 */	li r0, 1
/* 8003F16C 0003ADCC  3B 3D 00 0C */	addi r25, r29, 0xc
/* 8003F170 0003ADD0  98 1D 00 00 */	stb r0, 0(r29)
/* 8003F174 0003ADD4  3B 9D 00 AC */	addi r28, r29, 0xac
/* 8003F178 0003ADD8  48 00 01 04 */	b lbl_8003F27C
lbl_8003F17C:
/* 8003F17C 0003ADDC  80 99 00 0C */	lwz r4, 0xc(r25)
/* 8003F180 0003ADE0  2C 04 00 00 */	cmpwi r4, 0
/* 8003F184 0003ADE4  41 82 00 F4 */	beq lbl_8003F278
/* 8003F188 0003ADE8  28 04 00 64 */	cmplwi r4, 0x64
/* 8003F18C 0003ADEC  41 82 00 EC */	beq lbl_8003F278
/* 8003F190 0003ADF0  80 19 00 00 */	lwz r0, 0(r25)
/* 8003F194 0003ADF4  7C 04 00 40 */	cmplw r4, r0
/* 8003F198 0003ADF8  41 82 00 E0 */	beq lbl_8003F278
/* 8003F19C 0003ADFC  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F1A0 0003AE00  48 19 C3 1D */	bl func_801DB4BC
/* 8003F1A4 0003AE04  2C 1E 00 00 */	cmpwi r30, 0
/* 8003F1A8 0003AE08  41 82 00 1C */	beq lbl_8003F1C4
/* 8003F1AC 0003AE0C  7C 60 00 34 */	cntlzw r0, r3
/* 8003F1B0 0003AE10  80 99 00 0C */	lwz r4, 0xc(r25)
/* 8003F1B4 0003AE14  7F C3 F3 78 */	mr r3, r30
/* 8003F1B8 0003AE18  54 05 D9 7E */	srwi r5, r0, 5
/* 8003F1BC 0003AE1C  4B FF F6 B1 */	bl func_8003E86C
/* 8003F1C0 0003AE20  48 00 00 44 */	b lbl_8003F204
lbl_8003F1C4:
/* 8003F1C4 0003AE24  2C 03 00 00 */	cmpwi r3, 0
/* 8003F1C8 0003AE28  40 82 00 30 */	bne lbl_8003F1F8
/* 8003F1CC 0003AE2C  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F1D0 0003AE30  80 99 00 0C */	lwz r4, 0xc(r25)
/* 8003F1D4 0003AE34  48 20 A6 49 */	bl func_8024981C
/* 8003F1D8 0003AE38  48 00 00 0C */	b lbl_8003F1E4
lbl_8003F1DC:
/* 8003F1DC 0003AE3C  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003F1E0 0003AE40  48 1E 53 A9 */	bl func_80224588
lbl_8003F1E4:
/* 8003F1E4 0003AE44  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F1E8 0003AE48  80 99 00 0C */	lwz r4, 0xc(r25)
/* 8003F1EC 0003AE4C  48 19 C2 D1 */	bl func_801DB4BC
/* 8003F1F0 0003AE50  2C 03 00 00 */	cmpwi r3, 0
/* 8003F1F4 0003AE54  41 82 FF E8 */	beq lbl_8003F1DC
lbl_8003F1F8:
/* 8003F1F8 0003AE58  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F1FC 0003AE5C  80 99 00 0C */	lwz r4, 0xc(r25)
/* 8003F200 0003AE60  48 19 C2 FD */	bl func_801DB4FC
lbl_8003F204:
/* 8003F204 0003AE64  80 99 00 10 */	lwz r4, 0x10(r25)
/* 8003F208 0003AE68  2C 04 00 00 */	cmpwi r4, 0
/* 8003F20C 0003AE6C  41 82 00 6C */	beq lbl_8003F278
/* 8003F210 0003AE70  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F214 0003AE74  48 19 C2 A9 */	bl func_801DB4BC
/* 8003F218 0003AE78  2C 1E 00 00 */	cmpwi r30, 0
/* 8003F21C 0003AE7C  41 82 00 1C */	beq lbl_8003F238
/* 8003F220 0003AE80  7C 60 00 34 */	cntlzw r0, r3
/* 8003F224 0003AE84  80 99 00 10 */	lwz r4, 0x10(r25)
/* 8003F228 0003AE88  7F C3 F3 78 */	mr r3, r30
/* 8003F22C 0003AE8C  54 05 D9 7E */	srwi r5, r0, 5
/* 8003F230 0003AE90  4B FF F6 3D */	bl func_8003E86C
/* 8003F234 0003AE94  48 00 00 44 */	b lbl_8003F278
lbl_8003F238:
/* 8003F238 0003AE98  2C 03 00 00 */	cmpwi r3, 0
/* 8003F23C 0003AE9C  40 82 00 30 */	bne lbl_8003F26C
/* 8003F240 0003AEA0  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F244 0003AEA4  80 99 00 10 */	lwz r4, 0x10(r25)
/* 8003F248 0003AEA8  48 20 A5 D5 */	bl func_8024981C
/* 8003F24C 0003AEAC  48 00 00 0C */	b lbl_8003F258
lbl_8003F250:
/* 8003F250 0003AEB0  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003F254 0003AEB4  48 1E 53 35 */	bl func_80224588
lbl_8003F258:
/* 8003F258 0003AEB8  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F25C 0003AEBC  80 99 00 10 */	lwz r4, 0x10(r25)
/* 8003F260 0003AEC0  48 19 C2 5D */	bl func_801DB4BC
/* 8003F264 0003AEC4  2C 03 00 00 */	cmpwi r3, 0
/* 8003F268 0003AEC8  41 82 FF E8 */	beq lbl_8003F250
lbl_8003F26C:
/* 8003F26C 0003AECC  80 7D 00 04 */	lwz r3, 4(r29)
/* 8003F270 0003AED0  80 99 00 10 */	lwz r4, 0x10(r25)
/* 8003F274 0003AED4  48 19 C2 89 */	bl func_801DB4FC
lbl_8003F278:
/* 8003F278 0003AED8  3B 39 00 20 */	addi r25, r25, 0x20
lbl_8003F27C:
/* 8003F27C 0003AEDC  7C 19 E0 40 */	cmplw r25, r28
/* 8003F280 0003AEE0  40 82 FE FC */	bne lbl_8003F17C
/* 8003F284 0003AEE4  39 61 00 50 */	addi r11, r1, 0x50
/* 8003F288 0003AEE8  48 18 7E E1 */	bl _restgpr_24
/* 8003F28C 0003AEEC  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003F290 0003AEF0  7C 08 03 A6 */	mtlr r0
/* 8003F294 0003AEF4  38 21 00 50 */	addi r1, r1, 0x50
/* 8003F298 0003AEF8  4E 80 00 20 */	blr

.global func_8003F29C
func_8003F29C:
/* 8003F29C 0003AEFC  94 21 FE 20 */	stwu r1, -0x1e0(r1)
/* 8003F2A0 0003AF00  7C 08 02 A6 */	mflr r0
/* 8003F2A4 0003AF04  90 01 01 E4 */	stw r0, 0x1e4(r1)
/* 8003F2A8 0003AF08  39 61 01 E0 */	addi r11, r1, 0x1e0
/* 8003F2AC 0003AF0C  48 18 7E 71 */	bl _savegpr_24
/* 8003F2B0 0003AF10  3D 20 80 64 */	lis r9, lbl_8063CE34@ha
/* 8003F2B4 0003AF14  7C 7D 1B 78 */	mr r29, r3
/* 8003F2B8 0003AF18  39 29 CE 34 */	addi r9, r9, lbl_8063CE34@l
/* 8003F2BC 0003AF1C  7C 9C 23 78 */	mr r28, r4
/* 8003F2C0 0003AF20  7C BA 2B 78 */	mr r26, r5
/* 8003F2C4 0003AF24  7C D9 33 78 */	mr r25, r6
/* 8003F2C8 0003AF28  7C FE 3B 78 */	mr r30, r7
/* 8003F2CC 0003AF2C  7D 18 43 78 */	mr r24, r8
/* 8003F2D0 0003AF30  38 69 00 28 */	addi r3, r9, 0x28
/* 8003F2D4 0003AF34  48 35 6B 11 */	bl func_80395DE4
/* 8003F2D8 0003AF38  7C 1C 18 40 */	cmplw r28, r3
/* 8003F2DC 0003AF3C  41 80 00 0C */	blt lbl_8003F2E8
/* 8003F2E0 0003AF40  38 60 00 00 */	li r3, 0
/* 8003F2E4 0003AF44  48 00 02 20 */	b lbl_8003F504
lbl_8003F2E8:
/* 8003F2E8 0003AF48  2C 1E 00 00 */	cmpwi r30, 0
/* 8003F2EC 0003AF4C  40 82 00 18 */	bne lbl_8003F304
/* 8003F2F0 0003AF50  38 61 00 08 */	addi r3, r1, 8
/* 8003F2F4 0003AF54  38 80 00 00 */	li r4, 0
/* 8003F2F8 0003AF58  38 A0 00 0A */	li r5, 0xa
/* 8003F2FC 0003AF5C  4B FC 4E 09 */	bl memset
/* 8003F300 0003AF60  3B C1 00 08 */	addi r30, r1, 8
lbl_8003F304:
/* 8003F304 0003AF64  7F 20 07 75 */	extsb. r0, r25
/* 8003F308 0003AF68  93 9D 00 04 */	stw r28, 4(r29)
/* 8003F30C 0003AF6C  9B 5D 00 01 */	stb r26, 1(r29)
/* 8003F310 0003AF70  41 80 00 08 */	blt lbl_8003F318
/* 8003F314 0003AF74  9B 3D 00 03 */	stb r25, 3(r29)
lbl_8003F318:
/* 8003F318 0003AF78  2C 1A 00 00 */	cmpwi r26, 0
/* 8003F31C 0003AF7C  41 82 00 30 */	beq lbl_8003F34C
/* 8003F320 0003AF80  3F 60 80 64 */	lis r27, lbl_8063CE34@ha
/* 8003F324 0003AF84  7F 84 E3 78 */	mr r4, r28
/* 8003F328 0003AF88  3B 7B CE 34 */	addi r27, r27, lbl_8063CE34@l
/* 8003F32C 0003AF8C  38 7B 00 28 */	addi r3, r27, 0x28
/* 8003F330 0003AF90  48 35 6B A9 */	bl func_80395ED8
/* 8003F334 0003AF94  7C 7F 1B 78 */	mr r31, r3
/* 8003F338 0003AF98  7F 84 E3 78 */	mr r4, r28
/* 8003F33C 0003AF9C  38 7B 00 28 */	addi r3, r27, 0x28
/* 8003F340 0003AFA0  48 35 6B CD */	bl func_80395F0C
/* 8003F344 0003AFA4  7C 79 1B 78 */	mr r25, r3
/* 8003F348 0003AFA8  48 00 00 2C */	b lbl_8003F374
lbl_8003F34C:
/* 8003F34C 0003AFAC  3F 60 80 64 */	lis r27, lbl_8063CE34@ha
/* 8003F350 0003AFB0  7F 84 E3 78 */	mr r4, r28
/* 8003F354 0003AFB4  3B 7B CE 34 */	addi r27, r27, lbl_8063CE34@l
/* 8003F358 0003AFB8  38 7B 00 28 */	addi r3, r27, 0x28
/* 8003F35C 0003AFBC  48 35 6B 15 */	bl func_80395E70
/* 8003F360 0003AFC0  7C 7F 1B 78 */	mr r31, r3
/* 8003F364 0003AFC4  7F 84 E3 78 */	mr r4, r28
/* 8003F368 0003AFC8  38 7B 00 28 */	addi r3, r27, 0x28
/* 8003F36C 0003AFCC  48 35 6B 39 */	bl func_80395EA4
/* 8003F370 0003AFD0  7C 79 1B 78 */	mr r25, r3
lbl_8003F374:
/* 8003F374 0003AFD4  2C 1F 00 00 */	cmpwi r31, 0
/* 8003F378 0003AFD8  41 82 00 0C */	beq lbl_8003F384
/* 8003F37C 0003AFDC  2C 19 00 00 */	cmpwi r25, 0
/* 8003F380 0003AFE0  40 82 00 0C */	bne lbl_8003F38C
lbl_8003F384:
/* 8003F384 0003AFE4  38 60 00 00 */	li r3, 0
/* 8003F388 0003AFE8  48 00 01 7C */	b lbl_8003F504
lbl_8003F38C:
/* 8003F38C 0003AFEC  38 61 00 18 */	addi r3, r1, 0x18
/* 8003F390 0003AFF0  4B FF F4 C5 */	bl cPlayer_ClearSwapControllerTimer
/* 8003F394 0003AFF4  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003F398 0003AFF8  7F 84 E3 78 */	mr r4, r28
/* 8003F39C 0003AFFC  38 63 CE 34 */	addi r3, r3, lbl_8063CE34@l
/* 8003F3A0 0003B000  38 63 00 28 */	addi r3, r3, 0x28
/* 8003F3A4 0003B004  48 35 6A 5D */	bl func_80395E00
/* 8003F3A8 0003B008  2C 03 00 00 */	cmpwi r3, 0
/* 8003F3AC 0003B00C  41 82 00 D8 */	beq lbl_8003F484
/* 8003F3B0 0003B010  2C 18 00 00 */	cmpwi r24, 0
/* 8003F3B4 0003B014  41 82 00 38 */	beq lbl_8003F3EC
/* 8003F3B8 0003B018  7F E3 FB 78 */	mr r3, r31
/* 8003F3BC 0003B01C  7F 24 CB 78 */	mr r4, r25
/* 8003F3C0 0003B020  48 19 C0 FD */	bl func_801DB4BC
/* 8003F3C4 0003B024  7C 60 00 34 */	cntlzw r0, r3
/* 8003F3C8 0003B028  7F 24 CB 78 */	mr r4, r25
/* 8003F3CC 0003B02C  54 05 D9 7E */	srwi r5, r0, 5
/* 8003F3D0 0003B030  38 61 00 18 */	addi r3, r1, 0x18
/* 8003F3D4 0003B034  4B FF F4 99 */	bl func_8003E86C
/* 8003F3D8 0003B038  7F A3 EB 78 */	mr r3, r29
/* 8003F3DC 0003B03C  7F 84 E3 78 */	mr r4, r28
/* 8003F3E0 0003B040  7F E5 FB 78 */	mr r5, r31
/* 8003F3E4 0003B044  38 C1 00 18 */	addi r6, r1, 0x18
/* 8003F3E8 0003B048  4B FF F8 BD */	bl func_8003ECA4
lbl_8003F3EC:
/* 8003F3EC 0003B04C  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003F3F0 0003B050  7F 84 E3 78 */	mr r4, r28
/* 8003F3F4 0003B054  3B 63 CE 34 */	addi r27, r3, lbl_8063CE34@l
/* 8003F3F8 0003B058  38 7B 00 28 */	addi r3, r27, 0x28
/* 8003F3FC 0003B05C  48 35 6A 3D */	bl func_80395E38
/* 8003F400 0003B060  1F 23 00 0A */	mulli r25, r3, 0xa
/* 8003F404 0003B064  3B 5D 00 18 */	addi r26, r29, 0x18
/* 8003F408 0003B068  3B 00 00 00 */	li r24, 0
lbl_8003F40C:
/* 8003F40C 0003B06C  88 7E 00 00 */	lbz r3, 0(r30)
/* 8003F410 0003B070  88 1A 00 01 */	lbz r0, 1(r26)
/* 8003F414 0003B074  7C 00 18 40 */	cmplw r0, r3
/* 8003F418 0003B078  41 82 00 54 */	beq lbl_8003F46C
/* 8003F41C 0003B07C  98 7A 00 01 */	stb r3, 1(r26)
/* 8003F420 0003B080  7F 24 CB 78 */	mr r4, r25
/* 8003F424 0003B084  38 7B 00 30 */	addi r3, r27, 0x30
/* 8003F428 0003B088  48 35 66 E5 */	bl func_80395B0C
/* 8003F42C 0003B08C  7C 7C 1B 78 */	mr r28, r3
/* 8003F430 0003B090  7F 24 CB 78 */	mr r4, r25
/* 8003F434 0003B094  38 7B 00 30 */	addi r3, r27, 0x30
/* 8003F438 0003B098  48 35 66 6D */	bl func_80395AA4
/* 8003F43C 0003B09C  88 9A 00 01 */	lbz r4, 1(r26)
/* 8003F440 0003B0A0  57 80 04 3E */	clrlwi r0, r28, 0x10
/* 8003F444 0003B0A4  7C 00 20 00 */	cmpw r0, r4
/* 8003F448 0003B0A8  40 81 00 24 */	ble lbl_8003F46C
/* 8003F44C 0003B0AC  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8003F450 0003B0B0  93 FA 00 04 */	stw r31, 4(r26)
/* 8003F454 0003B0B4  7F A3 EB 78 */	mr r3, r29
/* 8003F458 0003B0B8  7F 45 D3 78 */	mr r5, r26
/* 8003F45C 0003B0BC  7C 80 22 14 */	add r4, r0, r4
/* 8003F460 0003B0C0  38 E1 00 18 */	addi r7, r1, 0x18
/* 8003F464 0003B0C4  38 C0 00 00 */	li r6, 0
/* 8003F468 0003B0C8  4B FF F9 85 */	bl func_8003EDEC
lbl_8003F46C:
/* 8003F46C 0003B0CC  3B 18 00 01 */	addi r24, r24, 1
/* 8003F470 0003B0D0  3B 39 00 01 */	addi r25, r25, 1
/* 8003F474 0003B0D4  2C 18 00 0A */	cmpwi r24, 0xa
/* 8003F478 0003B0D8  3B DE 00 01 */	addi r30, r30, 1
/* 8003F47C 0003B0DC  3B 5A 00 AC */	addi r26, r26, 0xac
/* 8003F480 0003B0E0  41 80 FF 8C */	blt lbl_8003F40C
lbl_8003F484:
/* 8003F484 0003B0E4  38 61 00 18 */	addi r3, r1, 0x18
/* 8003F488 0003B0E8  4B FF F4 71 */	bl func_8003E8F8
/* 8003F48C 0003B0EC  2C 03 00 00 */	cmpwi r3, 0
/* 8003F490 0003B0F0  41 82 00 48 */	beq lbl_8003F4D8
/* 8003F494 0003B0F4  38 00 00 01 */	li r0, 1
/* 8003F498 0003B0F8  38 61 00 18 */	addi r3, r1, 0x18
/* 8003F49C 0003B0FC  98 1D 00 02 */	stb r0, 2(r29)
/* 8003F4A0 0003B100  4B FF F4 61 */	bl func_8003E900
/* 8003F4A4 0003B104  3C A0 80 04 */	lis r5, lbl_8003F51C@ha
/* 8003F4A8 0003B108  7C 64 1B 78 */	mr r4, r3
/* 8003F4AC 0003B10C  7F E3 FB 78 */	mr r3, r31
/* 8003F4B0 0003B110  7F A6 EB 78 */	mr r6, r29
/* 8003F4B4 0003B114  38 A5 F5 1C */	addi r5, r5, lbl_8003F51C@l
/* 8003F4B8 0003B118  38 E0 00 00 */	li r7, 0
/* 8003F4BC 0003B11C  48 20 A3 01 */	bl func_802497BC
/* 8003F4C0 0003B120  48 00 00 0C */	b lbl_8003F4CC
lbl_8003F4C4:
/* 8003F4C4 0003B124  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8003F4C8 0003B128  48 1E 50 C1 */	bl func_80224588
lbl_8003F4CC:
/* 8003F4CC 0003B12C  88 1D 00 02 */	lbz r0, 2(r29)
/* 8003F4D0 0003B130  2C 00 00 00 */	cmpwi r0, 0
/* 8003F4D4 0003B134  40 82 FF F0 */	bne lbl_8003F4C4
lbl_8003F4D8:
/* 8003F4D8 0003B138  38 61 00 18 */	addi r3, r1, 0x18
/* 8003F4DC 0003B13C  4B FF F4 2D */	bl func_8003E908
/* 8003F4E0 0003B140  7C 78 1B 78 */	mr r24, r3
/* 8003F4E4 0003B144  48 00 00 10 */	b lbl_8003F4F4
lbl_8003F4E8:
/* 8003F4E8 0003B148  7F E3 FB 78 */	mr r3, r31
/* 8003F4EC 0003B14C  48 19 C0 11 */	bl func_801DB4FC
/* 8003F4F0 0003B150  3B 18 00 04 */	addi r24, r24, 4
lbl_8003F4F4:
/* 8003F4F4 0003B154  80 98 00 00 */	lwz r4, 0(r24)
/* 8003F4F8 0003B158  2C 04 00 00 */	cmpwi r4, 0
/* 8003F4FC 0003B15C  40 82 FF EC */	bne lbl_8003F4E8
/* 8003F500 0003B160  38 60 00 01 */	li r3, 1
lbl_8003F504:
/* 8003F504 0003B164  39 61 01 E0 */	addi r11, r1, 0x1e0
/* 8003F508 0003B168  48 18 7C 61 */	bl _restgpr_24
/* 8003F50C 0003B16C  80 01 01 E4 */	lwz r0, 0x1e4(r1)
/* 8003F510 0003B170  7C 08 03 A6 */	mtlr r0
/* 8003F514 0003B174  38 21 01 E0 */	addi r1, r1, 0x1e0
/* 8003F518 0003B178  4E 80 00 20 */	blr
lbl_8003F51C:
/* 8003F51C 0003B17C  38 00 00 00 */	li r0, 0
/* 8003F520 0003B180  98 04 00 02 */	stb r0, 2(r4)
/* 8003F524 0003B184  4E 80 00 20 */	blr

.global func_8003F528
func_8003F528:
/* 8003F528 0003B188  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003F52C 0003B18C  7C 08 02 A6 */	mflr r0
/* 8003F530 0003B190  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003F534 0003B194  39 61 00 20 */	addi r11, r1, 0x20
/* 8003F538 0003B198  48 18 7B ED */	bl _savegpr_26
/* 8003F53C 0003B19C  3F C0 80 64 */	lis r30, lbl_8063CE34@ha
/* 8003F540 0003B1A0  7C 9D 23 78 */	mr r29, r4
/* 8003F544 0003B1A4  80 83 00 04 */	lwz r4, 4(r3)
/* 8003F548 0003B1A8  3B DE CE 34 */	addi r30, r30, lbl_8063CE34@l
/* 8003F54C 0003B1AC  7C 7A 1B 78 */	mr r26, r3
/* 8003F550 0003B1B0  7C BB 2B 78 */	mr r27, r5
/* 8003F554 0003B1B4  38 7E 00 28 */	addi r3, r30, 0x28
/* 8003F558 0003B1B8  48 35 68 A9 */	bl func_80395E00
/* 8003F55C 0003B1BC  2C 03 00 00 */	cmpwi r3, 0
/* 8003F560 0003B1C0  40 82 00 0C */	bne lbl_8003F56C
/* 8003F564 0003B1C4  38 60 00 00 */	li r3, 0
/* 8003F568 0003B1C8  48 00 00 84 */	b lbl_8003F5EC
lbl_8003F56C:
/* 8003F56C 0003B1CC  80 9A 00 04 */	lwz r4, 4(r26)
/* 8003F570 0003B1D0  38 7E 00 28 */	addi r3, r30, 0x28
/* 8003F574 0003B1D4  48 35 68 C5 */	bl func_80395E38
/* 8003F578 0003B1D8  1C 1D 00 AC */	mulli r0, r29, 0xac
/* 8003F57C 0003B1DC  7C 9A 02 14 */	add r4, r26, r0
/* 8003F580 0003B1E0  88 04 00 19 */	lbz r0, 0x19(r4)
/* 8003F584 0003B1E4  3B 84 00 18 */	addi r28, r4, 0x18
/* 8003F588 0003B1E8  7C 00 D8 40 */	cmplw r0, r27
/* 8003F58C 0003B1EC  41 82 00 5C */	beq lbl_8003F5E8
/* 8003F590 0003B1F0  1C 03 00 0A */	mulli r0, r3, 0xa
/* 8003F594 0003B1F4  38 7E 00 30 */	addi r3, r30, 0x30
/* 8003F598 0003B1F8  7F BD 02 14 */	add r29, r29, r0
/* 8003F59C 0003B1FC  7F A4 EB 78 */	mr r4, r29
/* 8003F5A0 0003B200  48 35 65 6D */	bl func_80395B0C
/* 8003F5A4 0003B204  7C 7F 1B 78 */	mr r31, r3
/* 8003F5A8 0003B208  7F A4 EB 78 */	mr r4, r29
/* 8003F5AC 0003B20C  38 7E 00 30 */	addi r3, r30, 0x30
/* 8003F5B0 0003B210  48 35 64 F5 */	bl func_80395AA4
/* 8003F5B4 0003B214  57 E0 04 3E */	clrlwi r0, r31, 0x10
/* 8003F5B8 0003B218  7C 00 D8 00 */	cmpw r0, r27
/* 8003F5BC 0003B21C  40 81 00 2C */	ble lbl_8003F5E8
/* 8003F5C0 0003B220  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8003F5C4 0003B224  9B 7C 00 01 */	stb r27, 1(r28)
/* 8003F5C8 0003B228  7F 43 D3 78 */	mr r3, r26
/* 8003F5CC 0003B22C  7F 85 E3 78 */	mr r5, r28
/* 8003F5D0 0003B230  7C 80 DA 14 */	add r4, r0, r27
/* 8003F5D4 0003B234  38 C0 00 01 */	li r6, 1
/* 8003F5D8 0003B238  38 E0 00 00 */	li r7, 0
/* 8003F5DC 0003B23C  4B FF F8 11 */	bl func_8003EDEC
/* 8003F5E0 0003B240  38 60 00 01 */	li r3, 1
/* 8003F5E4 0003B244  48 00 00 08 */	b lbl_8003F5EC
lbl_8003F5E8:
/* 8003F5E8 0003B248  38 60 00 00 */	li r3, 0
lbl_8003F5EC:
/* 8003F5EC 0003B24C  39 61 00 20 */	addi r11, r1, 0x20
/* 8003F5F0 0003B250  48 18 7B 81 */	bl _restgpr_26
/* 8003F5F4 0003B254  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003F5F8 0003B258  7C 08 03 A6 */	mtlr r0
/* 8003F5FC 0003B25C  38 21 00 20 */	addi r1, r1, 0x20
/* 8003F600 0003B260  4E 80 00 20 */	blr

.global func_8003F604
func_8003F604:
/* 8003F604 0003B264  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8003F608 0003B268  7C 08 02 A6 */	mflr r0
/* 8003F60C 0003B26C  90 01 00 34 */	stw r0, 0x34(r1)
/* 8003F610 0003B270  39 61 00 30 */	addi r11, r1, 0x30
/* 8003F614 0003B274  48 18 7B 09 */	bl _savegpr_24
/* 8003F618 0003B278  3C A0 80 64 */	lis r5, lbl_8063CE34@ha
/* 8003F61C 0003B27C  7C 99 23 78 */	mr r25, r4
/* 8003F620 0003B280  80 83 00 04 */	lwz r4, 4(r3)
/* 8003F624 0003B284  3B C5 CE 34 */	addi r30, r5, lbl_8063CE34@l
/* 8003F628 0003B288  7C 78 1B 78 */	mr r24, r3
/* 8003F62C 0003B28C  3B 60 00 00 */	li r27, 0
/* 8003F630 0003B290  38 7E 00 28 */	addi r3, r30, 0x28
/* 8003F634 0003B294  48 35 67 CD */	bl func_80395E00
/* 8003F638 0003B298  2C 03 00 00 */	cmpwi r3, 0
/* 8003F63C 0003B29C  40 82 00 0C */	bne lbl_8003F648
/* 8003F640 0003B2A0  38 60 00 00 */	li r3, 0
/* 8003F644 0003B2A4  48 00 00 98 */	b lbl_8003F6DC
lbl_8003F648:
/* 8003F648 0003B2A8  80 98 00 04 */	lwz r4, 4(r24)
/* 8003F64C 0003B2AC  38 7E 00 28 */	addi r3, r30, 0x28
/* 8003F650 0003B2B0  48 35 67 E9 */	bl func_80395E38
/* 8003F654 0003B2B4  1F 83 00 0A */	mulli r28, r3, 0xa
/* 8003F658 0003B2B8  3B B8 00 18 */	addi r29, r24, 0x18
/* 8003F65C 0003B2BC  3B 40 00 00 */	li r26, 0
lbl_8003F660:
/* 8003F660 0003B2C0  88 7D 00 01 */	lbz r3, 1(r29)
/* 8003F664 0003B2C4  88 19 00 00 */	lbz r0, 0(r25)
/* 8003F668 0003B2C8  7C 03 00 40 */	cmplw r3, r0
/* 8003F66C 0003B2CC  41 82 00 54 */	beq lbl_8003F6C0
/* 8003F670 0003B2D0  7F 84 E3 78 */	mr r4, r28
/* 8003F674 0003B2D4  38 7E 00 30 */	addi r3, r30, 0x30
/* 8003F678 0003B2D8  48 35 64 95 */	bl func_80395B0C
/* 8003F67C 0003B2DC  7C 7F 1B 78 */	mr r31, r3
/* 8003F680 0003B2E0  7F 84 E3 78 */	mr r4, r28
/* 8003F684 0003B2E4  38 7E 00 30 */	addi r3, r30, 0x30
/* 8003F688 0003B2E8  48 35 64 1D */	bl func_80395AA4
/* 8003F68C 0003B2EC  88 99 00 00 */	lbz r4, 0(r25)
/* 8003F690 0003B2F0  57 E0 04 3E */	clrlwi r0, r31, 0x10
/* 8003F694 0003B2F4  7C 00 20 00 */	cmpw r0, r4
/* 8003F698 0003B2F8  40 81 00 28 */	ble lbl_8003F6C0
/* 8003F69C 0003B2FC  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8003F6A0 0003B300  98 9D 00 01 */	stb r4, 1(r29)
/* 8003F6A4 0003B304  7F 03 C3 78 */	mr r3, r24
/* 8003F6A8 0003B308  7F A5 EB 78 */	mr r5, r29
/* 8003F6AC 0003B30C  7C 80 22 14 */	add r4, r0, r4
/* 8003F6B0 0003B310  38 C0 00 01 */	li r6, 1
/* 8003F6B4 0003B314  38 E0 00 00 */	li r7, 0
/* 8003F6B8 0003B318  4B FF F7 35 */	bl func_8003EDEC
/* 8003F6BC 0003B31C  3B 60 00 01 */	li r27, 1
lbl_8003F6C0:
/* 8003F6C0 0003B320  3B 5A 00 01 */	addi r26, r26, 1
/* 8003F6C4 0003B324  3B 9C 00 01 */	addi r28, r28, 1
/* 8003F6C8 0003B328  2C 1A 00 0A */	cmpwi r26, 0xa
/* 8003F6CC 0003B32C  3B 39 00 01 */	addi r25, r25, 1
/* 8003F6D0 0003B330  3B BD 00 AC */	addi r29, r29, 0xac
/* 8003F6D4 0003B334  41 80 FF 8C */	blt lbl_8003F660
/* 8003F6D8 0003B338  7F 63 DB 78 */	mr r3, r27
lbl_8003F6DC:
/* 8003F6DC 0003B33C  39 61 00 30 */	addi r11, r1, 0x30
/* 8003F6E0 0003B340  48 18 7A 89 */	bl _restgpr_24
/* 8003F6E4 0003B344  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8003F6E8 0003B348  7C 08 03 A6 */	mtlr r0
/* 8003F6EC 0003B34C  38 21 00 30 */	addi r1, r1, 0x30
/* 8003F6F0 0003B350  4E 80 00 20 */	blr

.global func_8003F6F4
func_8003F6F4:
/* 8003F6F4 0003B354  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8003F6F8 0003B358  7C 08 02 A6 */	mflr r0
/* 8003F6FC 0003B35C  90 01 00 54 */	stw r0, 0x54(r1)
/* 8003F700 0003B360  39 61 00 50 */	addi r11, r1, 0x50
/* 8003F704 0003B364  48 18 79 F9 */	bl _savegpr_16
/* 8003F708 0003B368  2C 04 00 00 */	cmpwi r4, 0
/* 8003F70C 0003B36C  98 A3 00 00 */	stb r5, 0(r3)
/* 8003F710 0003B370  7C 71 1B 78 */	mr r17, r3
/* 8003F714 0003B374  7C 92 23 78 */	mr r18, r4
/* 8003F718 0003B378  40 82 00 0C */	bne lbl_8003F724
/* 8003F71C 0003B37C  38 60 00 00 */	li r3, 0
/* 8003F720 0003B380  48 00 06 40 */	b lbl_8003FD60
lbl_8003F724:
/* 8003F724 0003B384  80 83 00 14 */	lwz r4, 0x14(r3)
/* 8003F728 0003B388  2C 04 00 00 */	cmpwi r4, 0
/* 8003F72C 0003B38C  41 82 00 C0 */	beq lbl_8003F7EC
/* 8003F730 0003B390  80 63 00 10 */	lwz r3, 0x10(r3)
/* 8003F734 0003B394  48 19 BD 89 */	bl func_801DB4BC
/* 8003F738 0003B398  2C 03 00 00 */	cmpwi r3, 0
/* 8003F73C 0003B39C  7C 73 1B 78 */	mr r19, r3
/* 8003F740 0003B3A0  41 82 00 AC */	beq lbl_8003F7EC
/* 8003F744 0003B3A4  80 A3 00 1C */	lwz r5, 0x1c(r3)
/* 8003F748 0003B3A8  2C 05 00 02 */	cmpwi r5, 2
/* 8003F74C 0003B3AC  40 80 00 08 */	bge lbl_8003F754
/* 8003F750 0003B3B0  38 A0 00 02 */	li r5, 2
lbl_8003F754:
/* 8003F754 0003B3B4  80 93 00 18 */	lwz r4, 0x18(r19)
/* 8003F758 0003B3B8  7E 63 9B 78 */	mr r3, r19
/* 8003F75C 0003B3BC  2C 04 00 02 */	cmpwi r4, 2
/* 8003F760 0003B3C0  40 80 00 08 */	bge lbl_8003F768
/* 8003F764 0003B3C4  38 80 00 02 */	li r4, 2
lbl_8003F768:
/* 8003F768 0003B3C8  80 D3 00 20 */	lwz r6, 0x20(r19)
/* 8003F76C 0003B3CC  48 1F EC 5D */	bl func_8023E3C8
/* 8003F770 0003B3D0  80 92 00 1C */	lwz r4, 0x1c(r18)
/* 8003F774 0003B3D4  A0 71 00 0C */	lhz r3, 0xc(r17)
/* 8003F778 0003B3D8  2C 04 00 00 */	cmpwi r4, 0
/* 8003F77C 0003B3DC  40 82 00 0C */	bne lbl_8003F788
/* 8003F780 0003B3E0  3A 00 00 00 */	li r16, 0
/* 8003F784 0003B3E4  48 00 00 24 */	b lbl_8003F7A8
lbl_8003F788:
/* 8003F788 0003B3E8  A0 12 00 E6 */	lhz r0, 0xe6(r18)
/* 8003F78C 0003B3EC  7C 03 00 40 */	cmplw r3, r0
/* 8003F790 0003B3F0  41 80 00 0C */	blt lbl_8003F79C
/* 8003F794 0003B3F4  3A 00 00 00 */	li r16, 0
/* 8003F798 0003B3F8  48 00 00 10 */	b lbl_8003F7A8
lbl_8003F79C:
/* 8003F79C 0003B3FC  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003F7A0 0003B400  7C 64 00 2E */	lwzx r3, r4, r0
/* 8003F7A4 0003B404  82 03 00 14 */	lwz r16, 0x14(r3)
lbl_8003F7A8:
/* 8003F7A8 0003B408  2C 10 00 00 */	cmpwi r16, 0
/* 8003F7AC 0003B40C  41 82 00 40 */	beq lbl_8003F7EC
/* 8003F7B0 0003B410  80 70 00 08 */	lwz r3, 8(r16)
/* 8003F7B4 0003B414  80 03 00 50 */	lwz r0, 0x50(r3)
/* 8003F7B8 0003B418  2C 00 00 00 */	cmpwi r0, 0
/* 8003F7BC 0003B41C  41 82 00 30 */	beq lbl_8003F7EC
/* 8003F7C0 0003B420  80 70 00 14 */	lwz r3, 0x14(r16)
/* 8003F7C4 0003B424  2C 03 00 00 */	cmpwi r3, 0
/* 8003F7C8 0003B428  41 82 00 20 */	beq lbl_8003F7E8
/* 8003F7CC 0003B42C  80 10 00 28 */	lwz r0, 0x28(r16)
/* 8003F7D0 0003B430  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8003F7D4 0003B434  41 82 00 14 */	beq lbl_8003F7E8
/* 8003F7D8 0003B438  48 1F EA F9 */	bl func_8023E2D0
/* 8003F7DC 0003B43C  80 10 00 28 */	lwz r0, 0x28(r16)
/* 8003F7E0 0003B440  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 8003F7E4 0003B444  90 10 00 28 */	stw r0, 0x28(r16)
lbl_8003F7E8:
/* 8003F7E8 0003B448  92 70 00 14 */	stw r19, 0x14(r16)
lbl_8003F7EC:
/* 8003F7EC 0003B44C  3B 51 00 18 */	addi r26, r17, 0x18
/* 8003F7F0 0003B450  3B 20 00 00 */	li r25, 0
/* 8003F7F4 0003B454  7F 5D D3 78 */	mr r29, r26
/* 8003F7F8 0003B458  3B E0 00 00 */	li r31, 0
lbl_8003F7FC:
/* 8003F7FC 0003B45C  88 1D 00 00 */	lbz r0, 0(r29)
/* 8003F800 0003B460  2C 00 00 00 */	cmpwi r0, 0
/* 8003F804 0003B464  41 82 03 D8 */	beq lbl_8003FBDC
/* 8003F808 0003B468  9B FD 00 00 */	stb r31, 0(r29)
/* 8003F80C 0003B46C  3A DD 00 0C */	addi r22, r29, 0xc
/* 8003F810 0003B470  3A 1D 00 AC */	addi r16, r29, 0xac
/* 8003F814 0003B474  3A A0 00 00 */	li r21, 0
/* 8003F818 0003B478  48 00 03 BC */	b lbl_8003FBD4
lbl_8003F81C:
/* 8003F81C 0003B47C  83 96 00 00 */	lwz r28, 0(r22)
/* 8003F820 0003B480  83 1D 00 04 */	lwz r24, 4(r29)
/* 8003F824 0003B484  28 1C 00 64 */	cmplwi r28, 0x64
/* 8003F828 0003B488  82 F6 00 04 */	lwz r23, 4(r22)
/* 8003F82C 0003B48C  41 82 00 10 */	beq lbl_8003F83C
/* 8003F830 0003B490  80 16 00 0C */	lwz r0, 0xc(r22)
/* 8003F834 0003B494  7C 1C 00 40 */	cmplw r28, r0
/* 8003F838 0003B498  41 82 03 94 */	beq lbl_8003FBCC
lbl_8003F83C:
/* 8003F83C 0003B49C  28 1C 00 64 */	cmplwi r28, 0x64
/* 8003F840 0003B4A0  83 76 00 14 */	lwz r27, 0x14(r22)
/* 8003F844 0003B4A4  82 96 00 18 */	lwz r20, 0x18(r22)
/* 8003F848 0003B4A8  40 82 00 08 */	bne lbl_8003F850
/* 8003F84C 0003B4AC  3A 80 00 00 */	li r20, 0
lbl_8003F850:
/* 8003F850 0003B4B0  2C 1B 00 00 */	cmpwi r27, 0
/* 8003F854 0003B4B4  41 82 00 48 */	beq lbl_8003F89C
/* 8003F858 0003B4B8  80 7B 00 08 */	lwz r3, 8(r27)
/* 8003F85C 0003B4BC  2C 03 00 00 */	cmpwi r3, 0
/* 8003F860 0003B4C0  40 82 00 0C */	bne lbl_8003F86C
/* 8003F864 0003B4C4  38 80 00 00 */	li r4, 0
/* 8003F868 0003B4C8  48 00 00 1C */	b lbl_8003F884
lbl_8003F86C:
/* 8003F86C 0003B4CC  A0 1B 00 DE */	lhz r0, 0xde(r27)
/* 8003F870 0003B4D0  2C 00 00 00 */	cmpwi r0, 0
/* 8003F874 0003B4D4  40 82 00 0C */	bne lbl_8003F880
/* 8003F878 0003B4D8  38 80 00 00 */	li r4, 0
/* 8003F87C 0003B4DC  48 00 00 08 */	b lbl_8003F884
lbl_8003F880:
/* 8003F880 0003B4E0  80 83 00 00 */	lwz r4, 0(r3)
lbl_8003F884:
/* 8003F884 0003B4E4  2C 04 00 00 */	cmpwi r4, 0
/* 8003F888 0003B4E8  41 82 00 14 */	beq lbl_8003F89C
/* 8003F88C 0003B4EC  80 64 00 C0 */	lwz r3, 0xc0(r4)
/* 8003F890 0003B4F0  2C 03 00 00 */	cmpwi r3, 0
/* 8003F894 0003B4F4  41 82 00 08 */	beq lbl_8003F89C
/* 8003F898 0003B4F8  48 1B 29 91 */	bl func_801F2228
lbl_8003F89C:
/* 8003F89C 0003B4FC  80 16 00 18 */	lwz r0, 0x18(r22)
/* 8003F8A0 0003B500  2C 00 00 00 */	cmpwi r0, 0
/* 8003F8A4 0003B504  41 82 00 18 */	beq lbl_8003F8BC
/* 8003F8A8 0003B508  80 96 00 1C */	lwz r4, 0x1c(r22)
/* 8003F8AC 0003B50C  2C 04 00 00 */	cmpwi r4, 0
/* 8003F8B0 0003B510  41 82 00 0C */	beq lbl_8003F8BC
/* 8003F8B4 0003B514  7E 43 93 78 */	mr r3, r18
/* 8003F8B8 0003B518  48 1B 6A 4D */	bl func_801F6304
lbl_8003F8BC:
/* 8003F8BC 0003B51C  93 F6 00 14 */	stw r31, 0x14(r22)
/* 8003F8C0 0003B520  93 F6 00 18 */	stw r31, 0x18(r22)
/* 8003F8C4 0003B524  80 16 00 0C */	lwz r0, 0xc(r22)
/* 8003F8C8 0003B528  90 16 00 00 */	stw r0, 0(r22)
/* 8003F8CC 0003B52C  80 96 00 0C */	lwz r4, 0xc(r22)
/* 8003F8D0 0003B530  80 16 00 10 */	lwz r0, 0x10(r22)
/* 8003F8D4 0003B534  2C 04 00 00 */	cmpwi r4, 0
/* 8003F8D8 0003B538  90 16 00 04 */	stw r0, 4(r22)
/* 8003F8DC 0003B53C  41 82 02 A0 */	beq lbl_8003FB7C
/* 8003F8E0 0003B540  54 80 BE BE */	rlwinm r0, r4, 0x17, 0x1a, 0x1f
/* 8003F8E4 0003B544  28 00 00 03 */	cmplwi r0, 3
/* 8003F8E8 0003B548  40 82 00 EC */	bne lbl_8003F9D4
/* 8003F8EC 0003B54C  7F 03 C3 78 */	mr r3, r24
/* 8003F8F0 0003B550  48 19 BB CD */	bl func_801DB4BC
/* 8003F8F4 0003B554  7C 73 1B 78 */	mr r19, r3
/* 8003F8F8 0003B558  48 19 B2 31 */	bl func_801DAB28
/* 8003F8FC 0003B55C  2C 03 00 00 */	cmpwi r3, 0
/* 8003F900 0003B560  41 82 00 14 */	beq lbl_8003F914
/* 8003F904 0003B564  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8003F908 0003B568  38 80 01 54 */	li r4, 0x154
/* 8003F90C 0003B56C  48 19 B3 89 */	bl func_801DAC94
/* 8003F910 0003B570  48 00 00 08 */	b lbl_8003F918
lbl_8003F914:
/* 8003F914 0003B574  38 60 00 00 */	li r3, 0
lbl_8003F918:
/* 8003F918 0003B578  2C 03 00 00 */	cmpwi r3, 0
/* 8003F91C 0003B57C  41 82 00 10 */	beq lbl_8003F92C
/* 8003F920 0003B580  80 B3 00 08 */	lwz r5, 8(r19)
/* 8003F924 0003B584  38 80 00 00 */	li r4, 0
/* 8003F928 0003B588  48 1B 4C F5 */	bl func_801F461C
lbl_8003F92C:
/* 8003F92C 0003B58C  90 76 00 14 */	stw r3, 0x14(r22)
/* 8003F930 0003B590  88 11 00 00 */	lbz r0, 0(r17)
/* 8003F934 0003B594  2C 00 00 00 */	cmpwi r0, 0
/* 8003F938 0003B598  41 82 00 14 */	beq lbl_8003F94C
/* 8003F93C 0003B59C  80 76 00 14 */	lwz r3, 0x14(r22)
/* 8003F940 0003B5A0  48 1C 3E D1 */	bl func_80203810
/* 8003F944 0003B5A4  80 76 00 14 */	lwz r3, 0x14(r22)
/* 8003F948 0003B5A8  48 1C 0F 11 */	bl func_80200858
lbl_8003F94C:
/* 8003F94C 0003B5AC  80 92 00 08 */	lwz r4, 8(r18)
/* 8003F950 0003B5B0  88 76 00 08 */	lbz r3, 8(r22)
/* 8003F954 0003B5B4  2C 04 00 00 */	cmpwi r4, 0
/* 8003F958 0003B5B8  40 82 00 0C */	bne lbl_8003F964
/* 8003F95C 0003B5BC  38 60 00 00 */	li r3, 0
/* 8003F960 0003B5C0  48 00 00 20 */	b lbl_8003F980
lbl_8003F964:
/* 8003F964 0003B5C4  A0 12 00 DE */	lhz r0, 0xde(r18)
/* 8003F968 0003B5C8  7C 03 00 40 */	cmplw r3, r0
/* 8003F96C 0003B5CC  41 80 00 0C */	blt lbl_8003F978
/* 8003F970 0003B5D0  38 60 00 00 */	li r3, 0
/* 8003F974 0003B5D4  48 00 00 0C */	b lbl_8003F980
lbl_8003F978:
/* 8003F978 0003B5D8  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003F97C 0003B5DC  7C 64 00 2E */	lwzx r3, r4, r0
lbl_8003F980:
/* 8003F980 0003B5E0  80 96 00 14 */	lwz r4, 0x14(r22)
/* 8003F984 0003B5E4  80 A4 00 08 */	lwz r5, 8(r4)
/* 8003F988 0003B5E8  2C 05 00 00 */	cmpwi r5, 0
/* 8003F98C 0003B5EC  40 82 00 0C */	bne lbl_8003F998
/* 8003F990 0003B5F0  38 A0 00 00 */	li r5, 0
/* 8003F994 0003B5F4  48 00 00 1C */	b lbl_8003F9B0
lbl_8003F998:
/* 8003F998 0003B5F8  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 8003F99C 0003B5FC  2C 00 00 00 */	cmpwi r0, 0
/* 8003F9A0 0003B600  40 82 00 0C */	bne lbl_8003F9AC
/* 8003F9A4 0003B604  38 A0 00 00 */	li r5, 0
/* 8003F9A8 0003B608  48 00 00 08 */	b lbl_8003F9B0
lbl_8003F9AC:
/* 8003F9AC 0003B60C  80 A5 00 00 */	lwz r5, 0(r5)
lbl_8003F9B0:
/* 8003F9B0 0003B610  2C 03 00 00 */	cmpwi r3, 0
/* 8003F9B4 0003B614  41 82 01 C8 */	beq lbl_8003FB7C
/* 8003F9B8 0003B618  2C 05 00 00 */	cmpwi r5, 0
/* 8003F9BC 0003B61C  41 82 01 C0 */	beq lbl_8003FB7C
/* 8003F9C0 0003B620  38 80 00 07 */	li r4, 7
/* 8003F9C4 0003B624  38 C0 00 00 */	li r6, 0
/* 8003F9C8 0003B628  38 E0 00 03 */	li r7, 3
/* 8003F9CC 0003B62C  48 1B 27 C1 */	bl func_801F218C
/* 8003F9D0 0003B630  48 00 01 AC */	b lbl_8003FB7C
lbl_8003F9D4:
/* 8003F9D4 0003B634  28 00 00 04 */	cmplwi r0, 4
/* 8003F9D8 0003B638  41 82 00 0C */	beq lbl_8003F9E4
/* 8003F9DC 0003B63C  28 04 00 64 */	cmplwi r4, 0x64
/* 8003F9E0 0003B640  40 82 01 9C */	bne lbl_8003FB7C
lbl_8003F9E4:
/* 8003F9E4 0003B644  28 04 00 64 */	cmplwi r4, 0x64
/* 8003F9E8 0003B648  40 82 00 54 */	bne lbl_8003FA3C
/* 8003F9EC 0003B64C  38 15 FF FF */	addi r0, r21, -1
/* 8003F9F0 0003B650  54 00 28 34 */	slwi r0, r0, 5
/* 8003F9F4 0003B654  7C 7D 02 14 */	add r3, r29, r0
/* 8003F9F8 0003B658  80 63 00 20 */	lwz r3, 0x20(r3)
/* 8003F9FC 0003B65C  2C 03 00 00 */	cmpwi r3, 0
/* 8003FA00 0003B660  41 82 01 04 */	beq lbl_8003FB04
/* 8003FA04 0003B664  80 83 00 1C */	lwz r4, 0x1c(r3)
/* 8003FA08 0003B668  2C 04 00 00 */	cmpwi r4, 0
/* 8003FA0C 0003B66C  40 82 00 0C */	bne lbl_8003FA18
/* 8003FA10 0003B670  38 00 00 00 */	li r0, 0
/* 8003FA14 0003B674  48 00 00 20 */	b lbl_8003FA34
lbl_8003FA18:
/* 8003FA18 0003B678  A0 03 00 E6 */	lhz r0, 0xe6(r3)
/* 8003FA1C 0003B67C  2C 00 00 00 */	cmpwi r0, 0
/* 8003FA20 0003B680  40 82 00 0C */	bne lbl_8003FA2C
/* 8003FA24 0003B684  38 00 00 00 */	li r0, 0
/* 8003FA28 0003B688  48 00 00 0C */	b lbl_8003FA34
lbl_8003FA2C:
/* 8003FA2C 0003B68C  80 64 00 00 */	lwz r3, 0(r4)
/* 8003FA30 0003B690  80 03 00 14 */	lwz r0, 0x14(r3)
lbl_8003FA34:
/* 8003FA34 0003B694  90 16 00 18 */	stw r0, 0x18(r22)
/* 8003FA38 0003B698  48 00 00 CC */	b lbl_8003FB04
lbl_8003FA3C:
/* 8003FA3C 0003B69C  7F 03 C3 78 */	mr r3, r24
/* 8003FA40 0003B6A0  48 19 BA 7D */	bl func_801DB4BC
/* 8003FA44 0003B6A4  7C 73 1B 78 */	mr r19, r3
/* 8003FA48 0003B6A8  48 19 B0 E1 */	bl func_801DAB28
/* 8003FA4C 0003B6AC  2C 03 00 00 */	cmpwi r3, 0
/* 8003FA50 0003B6B0  41 82 00 14 */	beq lbl_8003FA64
/* 8003FA54 0003B6B4  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8003FA58 0003B6B8  38 80 00 38 */	li r4, 0x38
/* 8003FA5C 0003B6BC  48 19 B2 39 */	bl func_801DAC94
/* 8003FA60 0003B6C0  48 00 00 08 */	b lbl_8003FA68
lbl_8003FA64:
/* 8003FA64 0003B6C4  38 60 00 00 */	li r3, 0
lbl_8003FA68:
/* 8003FA68 0003B6C8  2C 03 00 00 */	cmpwi r3, 0
/* 8003FA6C 0003B6CC  41 82 00 10 */	beq lbl_8003FA7C
/* 8003FA70 0003B6D0  80 93 00 18 */	lwz r4, 0x18(r19)
/* 8003FA74 0003B6D4  80 B3 00 14 */	lwz r5, 0x14(r19)
/* 8003FA78 0003B6D8  48 1A 71 81 */	bl func_801E6BF8
lbl_8003FA7C:
/* 8003FA7C 0003B6DC  90 76 00 18 */	stw r3, 0x18(r22)
/* 8003FA80 0003B6E0  80 96 00 10 */	lwz r4, 0x10(r22)
/* 8003FA84 0003B6E4  2C 04 00 00 */	cmpwi r4, 0
/* 8003FA88 0003B6E8  41 82 00 7C */	beq lbl_8003FB04
/* 8003FA8C 0003B6EC  7F 03 C3 78 */	mr r3, r24
/* 8003FA90 0003B6F0  48 19 BA 2D */	bl func_801DB4BC
/* 8003FA94 0003B6F4  80 A3 00 1C */	lwz r5, 0x1c(r3)
/* 8003FA98 0003B6F8  7C 73 1B 78 */	mr r19, r3
/* 8003FA9C 0003B6FC  2C 05 00 02 */	cmpwi r5, 2
/* 8003FAA0 0003B700  40 80 00 08 */	bge lbl_8003FAA8
/* 8003FAA4 0003B704  38 A0 00 02 */	li r5, 2
lbl_8003FAA8:
/* 8003FAA8 0003B708  80 93 00 18 */	lwz r4, 0x18(r19)
/* 8003FAAC 0003B70C  7E 63 9B 78 */	mr r3, r19
/* 8003FAB0 0003B710  2C 04 00 02 */	cmpwi r4, 2
/* 8003FAB4 0003B714  40 80 00 08 */	bge lbl_8003FABC
/* 8003FAB8 0003B718  38 80 00 02 */	li r4, 2
lbl_8003FABC:
/* 8003FABC 0003B71C  80 D3 00 20 */	lwz r6, 0x20(r19)
/* 8003FAC0 0003B720  48 1F E9 09 */	bl func_8023E3C8
/* 8003FAC4 0003B724  83 D6 00 18 */	lwz r30, 0x18(r22)
/* 8003FAC8 0003B728  80 7E 00 08 */	lwz r3, 8(r30)
/* 8003FACC 0003B72C  80 03 00 50 */	lwz r0, 0x50(r3)
/* 8003FAD0 0003B730  2C 00 00 00 */	cmpwi r0, 0
/* 8003FAD4 0003B734  41 82 00 30 */	beq lbl_8003FB04
/* 8003FAD8 0003B738  80 7E 00 14 */	lwz r3, 0x14(r30)
/* 8003FADC 0003B73C  2C 03 00 00 */	cmpwi r3, 0
/* 8003FAE0 0003B740  41 82 00 20 */	beq lbl_8003FB00
/* 8003FAE4 0003B744  80 1E 00 28 */	lwz r0, 0x28(r30)
/* 8003FAE8 0003B748  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8003FAEC 0003B74C  41 82 00 14 */	beq lbl_8003FB00
/* 8003FAF0 0003B750  48 1F E7 E1 */	bl func_8023E2D0
/* 8003FAF4 0003B754  80 1E 00 28 */	lwz r0, 0x28(r30)
/* 8003FAF8 0003B758  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 8003FAFC 0003B75C  90 1E 00 28 */	stw r0, 0x28(r30)
lbl_8003FB00:
/* 8003FB00 0003B760  92 7E 00 14 */	stw r19, 0x14(r30)
lbl_8003FB04:
/* 8003FB04 0003B764  80 92 00 1C */	lwz r4, 0x1c(r18)
/* 8003FB08 0003B768  88 76 00 08 */	lbz r3, 8(r22)
/* 8003FB0C 0003B76C  2C 04 00 00 */	cmpwi r4, 0
/* 8003FB10 0003B770  40 82 00 0C */	bne lbl_8003FB1C
/* 8003FB14 0003B774  38 60 00 00 */	li r3, 0
/* 8003FB18 0003B778  48 00 00 24 */	b lbl_8003FB3C
lbl_8003FB1C:
/* 8003FB1C 0003B77C  A0 12 00 E6 */	lhz r0, 0xe6(r18)
/* 8003FB20 0003B780  7C 03 00 40 */	cmplw r3, r0
/* 8003FB24 0003B784  41 80 00 0C */	blt lbl_8003FB30
/* 8003FB28 0003B788  38 60 00 00 */	li r3, 0
/* 8003FB2C 0003B78C  48 00 00 10 */	b lbl_8003FB3C
lbl_8003FB30:
/* 8003FB30 0003B790  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003FB34 0003B794  7C 64 00 2E */	lwzx r3, r4, r0
/* 8003FB38 0003B798  80 63 00 14 */	lwz r3, 0x14(r3)
lbl_8003FB3C:
/* 8003FB3C 0003B79C  2C 03 00 00 */	cmpwi r3, 0
/* 8003FB40 0003B7A0  41 82 00 3C */	beq lbl_8003FB7C
/* 8003FB44 0003B7A4  80 16 00 18 */	lwz r0, 0x18(r22)
/* 8003FB48 0003B7A8  2C 00 00 00 */	cmpwi r0, 0
/* 8003FB4C 0003B7AC  41 82 00 30 */	beq lbl_8003FB7C
/* 8003FB50 0003B7B0  80 83 00 0C */	lwz r4, 0xc(r3)
/* 8003FB54 0003B7B4  2C 04 00 00 */	cmpwi r4, 0
/* 8003FB58 0003B7B8  41 82 00 24 */	beq lbl_8003FB7C
/* 8003FB5C 0003B7BC  80 04 00 00 */	lwz r0, 0(r4)
/* 8003FB60 0003B7C0  2C 00 00 00 */	cmpwi r0, 0
/* 8003FB64 0003B7C4  41 82 00 18 */	beq lbl_8003FB7C
/* 8003FB68 0003B7C8  90 16 00 1C */	stw r0, 0x1c(r22)
/* 8003FB6C 0003B7CC  7E 43 93 78 */	mr r3, r18
/* 8003FB70 0003B7D0  80 84 00 00 */	lwz r4, 0(r4)
/* 8003FB74 0003B7D4  80 B6 00 18 */	lwz r5, 0x18(r22)
/* 8003FB78 0003B7D8  48 1B 66 ED */	bl func_801F6264
lbl_8003FB7C:
/* 8003FB7C 0003B7DC  2C 1B 00 00 */	cmpwi r27, 0
/* 8003FB80 0003B7E0  41 82 00 10 */	beq lbl_8003FB90
/* 8003FB84 0003B7E4  7F 63 DB 78 */	mr r3, r27
/* 8003FB88 0003B7E8  38 80 00 01 */	li r4, 1
/* 8003FB8C 0003B7EC  48 1B 4F 65 */	bl func_801F4AF0
lbl_8003FB90:
/* 8003FB90 0003B7F0  2C 14 00 00 */	cmpwi r20, 0
/* 8003FB94 0003B7F4  41 82 00 20 */	beq lbl_8003FBB4
/* 8003FB98 0003B7F8  41 82 00 1C */	beq lbl_8003FBB4
/* 8003FB9C 0003B7FC  81 94 00 34 */	lwz r12, 0x34(r20)
/* 8003FBA0 0003B800  7E 83 A3 78 */	mr r3, r20
/* 8003FBA4 0003B804  38 80 00 01 */	li r4, 1
/* 8003FBA8 0003B808  81 8C 00 08 */	lwz r12, 8(r12)
/* 8003FBAC 0003B80C  7D 89 03 A6 */	mtctr r12
/* 8003FBB0 0003B810  4E 80 04 21 */	bctrl
lbl_8003FBB4:
/* 8003FBB4 0003B814  7F 03 C3 78 */	mr r3, r24
/* 8003FBB8 0003B818  7F 84 E3 78 */	mr r4, r28
/* 8003FBBC 0003B81C  48 19 B9 8D */	bl func_801DB548
/* 8003FBC0 0003B820  7F 03 C3 78 */	mr r3, r24
/* 8003FBC4 0003B824  7E E4 BB 78 */	mr r4, r23
/* 8003FBC8 0003B828  48 19 B9 81 */	bl func_801DB548
lbl_8003FBCC:
/* 8003FBCC 0003B82C  3A D6 00 20 */	addi r22, r22, 0x20
/* 8003FBD0 0003B830  3A B5 00 01 */	addi r21, r21, 1
lbl_8003FBD4:
/* 8003FBD4 0003B834  7C 16 80 40 */	cmplw r22, r16
/* 8003FBD8 0003B838  40 82 FC 44 */	bne lbl_8003F81C
lbl_8003FBDC:
/* 8003FBDC 0003B83C  3B 39 00 01 */	addi r25, r25, 1
/* 8003FBE0 0003B840  3B BD 00 AC */	addi r29, r29, 0xac
/* 8003FBE4 0003B844  2C 19 00 0A */	cmpwi r25, 0xa
/* 8003FBE8 0003B848  41 80 FC 14 */	blt lbl_8003F7FC
/* 8003FBEC 0003B84C  3C 60 80 64 */	lis r3, lbl_8063CE34@ha
/* 8003FBF0 0003B850  3A 00 00 00 */	li r16, 0
/* 8003FBF4 0003B854  3A 63 CE 34 */	addi r19, r3, lbl_8063CE34@l
lbl_8003FBF8:
/* 8003FBF8 0003B858  88 11 00 01 */	lbz r0, 1(r17)
/* 8003FBFC 0003B85C  2C 00 00 00 */	cmpwi r0, 0
/* 8003FC00 0003B860  41 82 00 1C */	beq lbl_8003FC1C
/* 8003FC04 0003B864  80 91 00 04 */	lwz r4, 4(r17)
/* 8003FC08 0003B868  7E 05 83 78 */	mr r5, r16
/* 8003FC0C 0003B86C  38 73 00 28 */	addi r3, r19, 0x28
/* 8003FC10 0003B870  48 35 64 81 */	bl func_80396090
/* 8003FC14 0003B874  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8003FC18 0003B878  48 00 00 18 */	b lbl_8003FC30
lbl_8003FC1C:
/* 8003FC1C 0003B87C  80 91 00 04 */	lwz r4, 4(r17)
/* 8003FC20 0003B880  7E 05 83 78 */	mr r5, r16
/* 8003FC24 0003B884  38 73 00 28 */	addi r3, r19, 0x28
/* 8003FC28 0003B888  48 35 63 6D */	bl func_80395F94
/* 8003FC2C 0003B88C  54 63 06 3E */	clrlwi r3, r3, 0x18
lbl_8003FC30:
/* 8003FC30 0003B890  2C 03 00 00 */	cmpwi r3, 0
/* 8003FC34 0003B894  41 82 00 48 */	beq lbl_8003FC7C
/* 8003FC38 0003B898  80 92 00 08 */	lwz r4, 8(r18)
/* 8003FC3C 0003B89C  2C 04 00 00 */	cmpwi r4, 0
/* 8003FC40 0003B8A0  40 82 00 0C */	bne lbl_8003FC4C
/* 8003FC44 0003B8A4  38 60 00 00 */	li r3, 0
/* 8003FC48 0003B8A8  48 00 00 20 */	b lbl_8003FC68
lbl_8003FC4C:
/* 8003FC4C 0003B8AC  A0 12 00 DE */	lhz r0, 0xde(r18)
/* 8003FC50 0003B8B0  7C 03 00 40 */	cmplw r3, r0
/* 8003FC54 0003B8B4  41 80 00 0C */	blt lbl_8003FC60
/* 8003FC58 0003B8B8  38 60 00 00 */	li r3, 0
/* 8003FC5C 0003B8BC  48 00 00 0C */	b lbl_8003FC68
lbl_8003FC60:
/* 8003FC60 0003B8C0  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 8003FC64 0003B8C4  7C 64 00 2E */	lwzx r3, r4, r0
lbl_8003FC68:
/* 8003FC68 0003B8C8  2C 03 00 00 */	cmpwi r3, 0
/* 8003FC6C 0003B8CC  41 82 00 10 */	beq lbl_8003FC7C
/* 8003FC70 0003B8D0  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 8003FC74 0003B8D4  60 00 00 02 */	ori r0, r0, 2
/* 8003FC78 0003B8D8  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_8003FC7C:
/* 8003FC7C 0003B8DC  3A 10 00 01 */	addi r16, r16, 1
/* 8003FC80 0003B8E0  2C 10 00 04 */	cmpwi r16, 4
/* 8003FC84 0003B8E4  41 80 FF 74 */	blt lbl_8003FBF8
/* 8003FC88 0003B8E8  38 C0 00 00 */	li r6, 0
/* 8003FC8C 0003B8EC  38 00 00 02 */	li r0, 2
lbl_8003FC90:
/* 8003FC90 0003B8F0  38 E0 00 00 */	li r7, 0
/* 8003FC94 0003B8F4  7C 09 03 A6 */	mtctr r0
lbl_8003FC98:
/* 8003FC98 0003B8F8  7C 7A 3A 14 */	add r3, r26, r7
/* 8003FC9C 0003B8FC  88 83 00 08 */	lbz r4, 8(r3)
/* 8003FCA0 0003B900  28 04 00 FF */	cmplwi r4, 0xff
/* 8003FCA4 0003B904  41 82 00 48 */	beq lbl_8003FCEC
/* 8003FCA8 0003B908  80 B2 00 08 */	lwz r5, 8(r18)
/* 8003FCAC 0003B90C  2C 05 00 00 */	cmpwi r5, 0
/* 8003FCB0 0003B910  40 82 00 0C */	bne lbl_8003FCBC
/* 8003FCB4 0003B914  38 80 00 00 */	li r4, 0
/* 8003FCB8 0003B918  48 00 00 20 */	b lbl_8003FCD8
lbl_8003FCBC:
/* 8003FCBC 0003B91C  A0 72 00 DE */	lhz r3, 0xde(r18)
/* 8003FCC0 0003B920  7C 04 18 40 */	cmplw r4, r3
/* 8003FCC4 0003B924  41 80 00 0C */	blt lbl_8003FCD0
/* 8003FCC8 0003B928  38 80 00 00 */	li r4, 0
/* 8003FCCC 0003B92C  48 00 00 0C */	b lbl_8003FCD8
lbl_8003FCD0:
/* 8003FCD0 0003B930  54 83 13 BA */	rlwinm r3, r4, 2, 0xe, 0x1d
/* 8003FCD4 0003B934  7C 85 18 2E */	lwzx r4, r5, r3
lbl_8003FCD8:
/* 8003FCD8 0003B938  2C 04 00 00 */	cmpwi r4, 0
/* 8003FCDC 0003B93C  41 82 00 10 */	beq lbl_8003FCEC
/* 8003FCE0 0003B940  A0 64 00 10 */	lhz r3, 0x10(r4)
/* 8003FCE4 0003B944  54 63 07 FA */	rlwinm r3, r3, 0, 0x1f, 0x1d
/* 8003FCE8 0003B948  B0 64 00 10 */	sth r3, 0x10(r4)
lbl_8003FCEC:
/* 8003FCEC 0003B94C  38 E7 00 01 */	addi r7, r7, 1
/* 8003FCF0 0003B950  7C 7A 3A 14 */	add r3, r26, r7
/* 8003FCF4 0003B954  88 83 00 08 */	lbz r4, 8(r3)
/* 8003FCF8 0003B958  28 04 00 FF */	cmplwi r4, 0xff
/* 8003FCFC 0003B95C  41 82 00 48 */	beq lbl_8003FD44
/* 8003FD00 0003B960  80 B2 00 08 */	lwz r5, 8(r18)
/* 8003FD04 0003B964  2C 05 00 00 */	cmpwi r5, 0
/* 8003FD08 0003B968  40 82 00 0C */	bne lbl_8003FD14
/* 8003FD0C 0003B96C  38 80 00 00 */	li r4, 0
/* 8003FD10 0003B970  48 00 00 20 */	b lbl_8003FD30
lbl_8003FD14:
/* 8003FD14 0003B974  A0 72 00 DE */	lhz r3, 0xde(r18)
/* 8003FD18 0003B978  7C 04 18 40 */	cmplw r4, r3
/* 8003FD1C 0003B97C  41 80 00 0C */	blt lbl_8003FD28
/* 8003FD20 0003B980  38 80 00 00 */	li r4, 0
/* 8003FD24 0003B984  48 00 00 0C */	b lbl_8003FD30
lbl_8003FD28:
/* 8003FD28 0003B988  54 83 13 BA */	rlwinm r3, r4, 2, 0xe, 0x1d
/* 8003FD2C 0003B98C  7C 85 18 2E */	lwzx r4, r5, r3
lbl_8003FD30:
/* 8003FD30 0003B990  2C 04 00 00 */	cmpwi r4, 0
/* 8003FD34 0003B994  41 82 00 10 */	beq lbl_8003FD44
/* 8003FD38 0003B998  A0 64 00 10 */	lhz r3, 0x10(r4)
/* 8003FD3C 0003B99C  54 63 07 FA */	rlwinm r3, r3, 0, 0x1f, 0x1d
/* 8003FD40 0003B9A0  B0 64 00 10 */	sth r3, 0x10(r4)
lbl_8003FD44:
/* 8003FD44 0003B9A4  38 E7 00 01 */	addi r7, r7, 1
/* 8003FD48 0003B9A8  42 00 FF 50 */	bdnz lbl_8003FC98
/* 8003FD4C 0003B9AC  38 C6 00 01 */	addi r6, r6, 1
/* 8003FD50 0003B9B0  3B 5A 00 AC */	addi r26, r26, 0xac
/* 8003FD54 0003B9B4  2C 06 00 0A */	cmpwi r6, 0xa
/* 8003FD58 0003B9B8  41 80 FF 38 */	blt lbl_8003FC90
/* 8003FD5C 0003B9BC  38 60 00 01 */	li r3, 1
lbl_8003FD60:
/* 8003FD60 0003B9C0  39 61 00 50 */	addi r11, r1, 0x50
/* 8003FD64 0003B9C4  48 18 73 E5 */	bl _restgpr_16
/* 8003FD68 0003B9C8  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8003FD6C 0003B9CC  7C 08 03 A6 */	mtlr r0
/* 8003FD70 0003B9D0  38 21 00 50 */	addi r1, r1, 0x50
/* 8003FD74 0003B9D4  4E 80 00 20 */	blr

.global func_8003FD78
func_8003FD78:
/* 8003FD78 0003B9D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003FD7C 0003B9DC  7C 08 02 A6 */	mflr r0
/* 8003FD80 0003B9E0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003FD84 0003B9E4  39 61 00 20 */	addi r11, r1, 0x20
/* 8003FD88 0003B9E8  48 18 73 9D */	bl _savegpr_26
/* 8003FD8C 0003B9EC  7C 7F 1B 78 */	mr r31, r3
/* 8003FD90 0003B9F0  7C 9A 23 78 */	mr r26, r4
/* 8003FD94 0003B9F4  7C BB 2B 78 */	mr r27, r5
/* 8003FD98 0003B9F8  3B A0 00 00 */	li r29, 0
lbl_8003FD9C:
/* 8003FD9C 0003B9FC  7F FE FB 78 */	mr r30, r31
/* 8003FDA0 0003BA00  3B 80 00 00 */	li r28, 0
lbl_8003FDA4:
/* 8003FDA4 0003BA04  80 9E 00 38 */	lwz r4, 0x38(r30)
/* 8003FDA8 0003BA08  2C 04 00 00 */	cmpwi r4, 0
/* 8003FDAC 0003BA0C  41 82 00 20 */	beq lbl_8003FDCC
/* 8003FDB0 0003BA10  2C 1B 00 00 */	cmpwi r27, 0
/* 8003FDB4 0003BA14  41 82 00 10 */	beq lbl_8003FDC4
/* 8003FDB8 0003BA18  7F 43 D3 78 */	mr r3, r26
/* 8003FDBC 0003BA1C  48 1C 0E 99 */	bl func_80200C54
/* 8003FDC0 0003BA20  48 00 00 0C */	b lbl_8003FDCC
lbl_8003FDC4:
/* 8003FDC4 0003BA24  7F 43 D3 78 */	mr r3, r26
/* 8003FDC8 0003BA28  48 1C 0F 41 */	bl func_80200D08
lbl_8003FDCC:
/* 8003FDCC 0003BA2C  3B 9C 00 01 */	addi r28, r28, 1
/* 8003FDD0 0003BA30  3B DE 00 20 */	addi r30, r30, 0x20
/* 8003FDD4 0003BA34  2C 1C 00 05 */	cmpwi r28, 5
/* 8003FDD8 0003BA38  41 80 FF CC */	blt lbl_8003FDA4
/* 8003FDDC 0003BA3C  3B BD 00 01 */	addi r29, r29, 1
/* 8003FDE0 0003BA40  3B FF 00 AC */	addi r31, r31, 0xac
/* 8003FDE4 0003BA44  2C 1D 00 0A */	cmpwi r29, 0xa
/* 8003FDE8 0003BA48  41 80 FF B4 */	blt lbl_8003FD9C
/* 8003FDEC 0003BA4C  39 61 00 20 */	addi r11, r1, 0x20
/* 8003FDF0 0003BA50  48 18 73 81 */	bl _restgpr_26
/* 8003FDF4 0003BA54  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003FDF8 0003BA58  7C 08 03 A6 */	mtlr r0
/* 8003FDFC 0003BA5C  38 21 00 20 */	addi r1, r1, 0x20
/* 8003FE00 0003BA60  4E 80 00 20 */	blr

.global func_8003FE04
func_8003FE04:
/* 8003FE04 0003BA64  38 00 00 0A */	li r0, 0xa
/* 8003FE08 0003BA68  39 20 00 00 */	li r9, 0
/* 8003FE0C 0003BA6C  7C 09 03 A6 */	mtctr r0
lbl_8003FE10:
/* 8003FE10 0003BA70  55 20 04 3E */	clrlwi r0, r9, 0x10
/* 8003FE14 0003BA74  1C 00 00 AC */	mulli r0, r0, 0xac
/* 8003FE18 0003BA78  7D 03 02 14 */	add r8, r3, r0
/* 8003FE1C 0003BA7C  81 48 00 38 */	lwz r10, 0x38(r8)
/* 8003FE20 0003BA80  2C 0A 00 00 */	cmpwi r10, 0
/* 8003FE24 0003BA84  41 82 00 20 */	beq lbl_8003FE44
/* 8003FE28 0003BA88  B0 8A 01 4C */	sth r4, 0x14c(r10)
/* 8003FE2C 0003BA8C  B0 AA 01 4E */	sth r5, 0x14e(r10)
/* 8003FE30 0003BA90  B0 CA 01 50 */	sth r6, 0x150(r10)
/* 8003FE34 0003BA94  B0 EA 01 52 */	sth r7, 0x152(r10)
/* 8003FE38 0003BA98  A0 0A 00 DC */	lhz r0, 0xdc(r10)
/* 8003FE3C 0003BA9C  60 00 01 00 */	ori r0, r0, 0x100
/* 8003FE40 0003BAA0  B0 0A 00 DC */	sth r0, 0xdc(r10)
lbl_8003FE44:
/* 8003FE44 0003BAA4  81 48 00 58 */	lwz r10, 0x58(r8)
/* 8003FE48 0003BAA8  2C 0A 00 00 */	cmpwi r10, 0
/* 8003FE4C 0003BAAC  41 82 00 20 */	beq lbl_8003FE6C
/* 8003FE50 0003BAB0  B0 8A 01 4C */	sth r4, 0x14c(r10)
/* 8003FE54 0003BAB4  B0 AA 01 4E */	sth r5, 0x14e(r10)
/* 8003FE58 0003BAB8  B0 CA 01 50 */	sth r6, 0x150(r10)
/* 8003FE5C 0003BABC  B0 EA 01 52 */	sth r7, 0x152(r10)
/* 8003FE60 0003BAC0  A0 0A 00 DC */	lhz r0, 0xdc(r10)
/* 8003FE64 0003BAC4  60 00 01 00 */	ori r0, r0, 0x100
/* 8003FE68 0003BAC8  B0 0A 00 DC */	sth r0, 0xdc(r10)
lbl_8003FE6C:
/* 8003FE6C 0003BACC  81 48 00 78 */	lwz r10, 0x78(r8)
/* 8003FE70 0003BAD0  2C 0A 00 00 */	cmpwi r10, 0
/* 8003FE74 0003BAD4  41 82 00 20 */	beq lbl_8003FE94
/* 8003FE78 0003BAD8  B0 8A 01 4C */	sth r4, 0x14c(r10)
/* 8003FE7C 0003BADC  B0 AA 01 4E */	sth r5, 0x14e(r10)
/* 8003FE80 0003BAE0  B0 CA 01 50 */	sth r6, 0x150(r10)
/* 8003FE84 0003BAE4  B0 EA 01 52 */	sth r7, 0x152(r10)
/* 8003FE88 0003BAE8  A0 0A 00 DC */	lhz r0, 0xdc(r10)
/* 8003FE8C 0003BAEC  60 00 01 00 */	ori r0, r0, 0x100
/* 8003FE90 0003BAF0  B0 0A 00 DC */	sth r0, 0xdc(r10)
lbl_8003FE94:
/* 8003FE94 0003BAF4  81 48 00 98 */	lwz r10, 0x98(r8)
/* 8003FE98 0003BAF8  2C 0A 00 00 */	cmpwi r10, 0
/* 8003FE9C 0003BAFC  41 82 00 20 */	beq lbl_8003FEBC
/* 8003FEA0 0003BB00  B0 8A 01 4C */	sth r4, 0x14c(r10)
/* 8003FEA4 0003BB04  B0 AA 01 4E */	sth r5, 0x14e(r10)
/* 8003FEA8 0003BB08  B0 CA 01 50 */	sth r6, 0x150(r10)
/* 8003FEAC 0003BB0C  B0 EA 01 52 */	sth r7, 0x152(r10)
/* 8003FEB0 0003BB10  A0 0A 00 DC */	lhz r0, 0xdc(r10)
/* 8003FEB4 0003BB14  60 00 01 00 */	ori r0, r0, 0x100
/* 8003FEB8 0003BB18  B0 0A 00 DC */	sth r0, 0xdc(r10)
lbl_8003FEBC:
/* 8003FEBC 0003BB1C  81 48 00 B8 */	lwz r10, 0xb8(r8)
/* 8003FEC0 0003BB20  2C 0A 00 00 */	cmpwi r10, 0
/* 8003FEC4 0003BB24  41 82 00 20 */	beq lbl_8003FEE4
/* 8003FEC8 0003BB28  B0 8A 01 4C */	sth r4, 0x14c(r10)
/* 8003FECC 0003BB2C  B0 AA 01 4E */	sth r5, 0x14e(r10)
/* 8003FED0 0003BB30  B0 CA 01 50 */	sth r6, 0x150(r10)
/* 8003FED4 0003BB34  B0 EA 01 52 */	sth r7, 0x152(r10)
/* 8003FED8 0003BB38  A0 0A 00 DC */	lhz r0, 0xdc(r10)
/* 8003FEDC 0003BB3C  60 00 01 00 */	ori r0, r0, 0x100
/* 8003FEE0 0003BB40  B0 0A 00 DC */	sth r0, 0xdc(r10)
lbl_8003FEE4:
/* 8003FEE4 0003BB44  39 29 00 01 */	addi r9, r9, 1
/* 8003FEE8 0003BB48  42 00 FF 28 */	bdnz lbl_8003FE10
/* 8003FEEC 0003BB4C  4E 80 00 20 */	blr

.global func_8003FEF0
func_8003FEF0:
/* 8003FEF0 0003BB50  38 E0 00 00 */	li r7, 0
/* 8003FEF4 0003BB54  38 00 00 05 */	li r0, 5
lbl_8003FEF8:
/* 8003FEF8 0003BB58  54 E5 04 3E */	clrlwi r5, r7, 0x10
/* 8003FEFC 0003BB5C  39 00 00 00 */	li r8, 0
/* 8003FF00 0003BB60  1C A5 00 AC */	mulli r5, r5, 0xac
/* 8003FF04 0003BB64  7C C3 2A 14 */	add r6, r3, r5
/* 8003FF08 0003BB68  7C 09 03 A6 */	mtctr r0
lbl_8003FF0C:
/* 8003FF0C 0003BB6C  55 05 2A F4 */	rlwinm r5, r8, 5, 0xb, 0x1a
/* 8003FF10 0003BB70  7C A6 2A 14 */	add r5, r6, r5
/* 8003FF14 0003BB74  81 25 00 38 */	lwz r9, 0x38(r5)
/* 8003FF18 0003BB78  2C 09 00 00 */	cmpwi r9, 0
/* 8003FF1C 0003BB7C  41 82 00 28 */	beq lbl_8003FF44
/* 8003FF20 0003BB80  2C 04 00 00 */	cmpwi r4, 0
/* 8003FF24 0003BB84  41 82 00 14 */	beq lbl_8003FF38
/* 8003FF28 0003BB88  A0 A9 00 DC */	lhz r5, 0xdc(r9)
/* 8003FF2C 0003BB8C  60 A5 00 01 */	ori r5, r5, 1
/* 8003FF30 0003BB90  B0 A9 00 DC */	sth r5, 0xdc(r9)
/* 8003FF34 0003BB94  48 00 00 10 */	b lbl_8003FF44
lbl_8003FF38:
/* 8003FF38 0003BB98  A0 A9 00 DC */	lhz r5, 0xdc(r9)
/* 8003FF3C 0003BB9C  54 A5 04 3C */	rlwinm r5, r5, 0, 0x10, 0x1e
/* 8003FF40 0003BBA0  B0 A9 00 DC */	sth r5, 0xdc(r9)
lbl_8003FF44:
/* 8003FF44 0003BBA4  39 08 00 01 */	addi r8, r8, 1
/* 8003FF48 0003BBA8  42 00 FF C4 */	bdnz lbl_8003FF0C
/* 8003FF4C 0003BBAC  38 E7 00 01 */	addi r7, r7, 1
/* 8003FF50 0003BBB0  28 07 00 0A */	cmplwi r7, 0xa
/* 8003FF54 0003BBB4  41 80 FF A4 */	blt lbl_8003FEF8
/* 8003FF58 0003BBB8  4E 80 00 20 */	blr

.global func_8003FF5C
func_8003FF5C:
/* 8003FF5C 0003BBBC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003FF60 0003BBC0  7C 08 02 A6 */	mflr r0
/* 8003FF64 0003BBC4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003FF68 0003BBC8  39 61 00 20 */	addi r11, r1, 0x20
/* 8003FF6C 0003BBCC  48 18 71 BD */	bl _savegpr_27
/* 8003FF70 0003BBD0  7C 7B 1B 78 */	mr r27, r3
/* 8003FF74 0003BBD4  7C 9C 23 78 */	mr r28, r4
/* 8003FF78 0003BBD8  3B C0 00 00 */	li r30, 0
lbl_8003FF7C:
/* 8003FF7C 0003BBDC  57 C0 04 3E */	clrlwi r0, r30, 0x10
/* 8003FF80 0003BBE0  3B A0 00 00 */	li r29, 0
/* 8003FF84 0003BBE4  1C 00 00 AC */	mulli r0, r0, 0xac
/* 8003FF88 0003BBE8  7F FB 02 14 */	add r31, r27, r0
lbl_8003FF8C:
/* 8003FF8C 0003BBEC  57 A0 2A F4 */	rlwinm r0, r29, 5, 0xb, 0x1a
/* 8003FF90 0003BBF0  7C 7F 02 14 */	add r3, r31, r0
/* 8003FF94 0003BBF4  80 63 00 38 */	lwz r3, 0x38(r3)
/* 8003FF98 0003BBF8  2C 03 00 00 */	cmpwi r3, 0
/* 8003FF9C 0003BBFC  41 82 00 0C */	beq lbl_8003FFA8
/* 8003FFA0 0003BC00  7F 84 E3 78 */	mr r4, r28
/* 8003FFA4 0003BC04  48 1B 62 69 */	bl func_801F620C
lbl_8003FFA8:
/* 8003FFA8 0003BC08  3B BD 00 01 */	addi r29, r29, 1
/* 8003FFAC 0003BC0C  28 1D 00 05 */	cmplwi r29, 5
/* 8003FFB0 0003BC10  41 80 FF DC */	blt lbl_8003FF8C
/* 8003FFB4 0003BC14  3B DE 00 01 */	addi r30, r30, 1
/* 8003FFB8 0003BC18  28 1E 00 0A */	cmplwi r30, 0xa
/* 8003FFBC 0003BC1C  41 80 FF C0 */	blt lbl_8003FF7C
/* 8003FFC0 0003BC20  39 61 00 20 */	addi r11, r1, 0x20
/* 8003FFC4 0003BC24  48 18 71 B1 */	bl _restgpr_27
/* 8003FFC8 0003BC28  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8003FFCC 0003BC2C  7C 08 03 A6 */	mtlr r0
/* 8003FFD0 0003BC30  38 21 00 20 */	addi r1, r1, 0x20
/* 8003FFD4 0003BC34  4E 80 00 20 */	blr

.global func_8003FFD8
func_8003FFD8:
/* 8003FFD8 0003BC38  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8003FFDC 0003BC3C  7C 08 02 A6 */	mflr r0
/* 8003FFE0 0003BC40  90 01 00 24 */	stw r0, 0x24(r1)
/* 8003FFE4 0003BC44  39 61 00 20 */	addi r11, r1, 0x20
/* 8003FFE8 0003BC48  48 18 71 41 */	bl _savegpr_27
/* 8003FFEC 0003BC4C  7C 7B 1B 78 */	mr r27, r3
/* 8003FFF0 0003BC50  7C 9C 23 78 */	mr r28, r4
/* 8003FFF4 0003BC54  3B C0 00 00 */	li r30, 0
lbl_8003FFF8:
/* 8003FFF8 0003BC58  57 C0 04 3E */	clrlwi r0, r30, 0x10
/* 8003FFFC 0003BC5C  3B A0 00 00 */	li r29, 0
/* 80040000 0003BC60  1C 00 00 AC */	mulli r0, r0, 0xac
/* 80040004 0003BC64  7F FB 02 14 */	add r31, r27, r0
lbl_80040008:
/* 80040008 0003BC68  57 A0 2A F4 */	rlwinm r0, r29, 5, 0xb, 0x1a
/* 8004000C 0003BC6C  7C 7F 02 14 */	add r3, r31, r0
/* 80040010 0003BC70  80 63 00 38 */	lwz r3, 0x38(r3)
/* 80040014 0003BC74  2C 03 00 00 */	cmpwi r3, 0
/* 80040018 0003BC78  41 82 00 0C */	beq lbl_80040024
/* 8004001C 0003BC7C  7F 84 E3 78 */	mr r4, r28
/* 80040020 0003BC80  48 1B 61 75 */	bl func_801F6194
lbl_80040024:
/* 80040024 0003BC84  3B BD 00 01 */	addi r29, r29, 1
/* 80040028 0003BC88  28 1D 00 05 */	cmplwi r29, 5
/* 8004002C 0003BC8C  41 80 FF DC */	blt lbl_80040008
/* 80040030 0003BC90  3B DE 00 01 */	addi r30, r30, 1
/* 80040034 0003BC94  28 1E 00 0A */	cmplwi r30, 0xa
/* 80040038 0003BC98  41 80 FF C0 */	blt lbl_8003FFF8
/* 8004003C 0003BC9C  39 61 00 20 */	addi r11, r1, 0x20
/* 80040040 0003BCA0  48 18 71 35 */	bl _restgpr_27
/* 80040044 0003BCA4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040048 0003BCA8  7C 08 03 A6 */	mtlr r0
/* 8004004C 0003BCAC  38 21 00 20 */	addi r1, r1, 0x20
/* 80040050 0003BCB0  4E 80 00 20 */	blr

.global func_80040054
func_80040054:
/* 80040054 0003BCB4  38 00 00 0A */	li r0, 0xa
/* 80040058 0003BCB8  38 C0 00 00 */	li r6, 0
/* 8004005C 0003BCBC  7C 09 03 A6 */	mtctr r0
lbl_80040060:
/* 80040060 0003BCC0  54 C0 04 3E */	clrlwi r0, r6, 0x10
/* 80040064 0003BCC4  1C 00 00 AC */	mulli r0, r0, 0xac
/* 80040068 0003BCC8  7C A3 02 14 */	add r5, r3, r0
/* 8004006C 0003BCCC  80 E5 00 38 */	lwz r7, 0x38(r5)
/* 80040070 0003BCD0  2C 07 00 00 */	cmpwi r7, 0
/* 80040074 0003BCD4  41 82 00 08 */	beq lbl_8004007C
/* 80040078 0003BCD8  90 87 00 3C */	stw r4, 0x3c(r7)
lbl_8004007C:
/* 8004007C 0003BCDC  80 E5 00 58 */	lwz r7, 0x58(r5)
/* 80040080 0003BCE0  2C 07 00 00 */	cmpwi r7, 0
/* 80040084 0003BCE4  41 82 00 08 */	beq lbl_8004008C
/* 80040088 0003BCE8  90 87 00 3C */	stw r4, 0x3c(r7)
lbl_8004008C:
/* 8004008C 0003BCEC  80 E5 00 78 */	lwz r7, 0x78(r5)
/* 80040090 0003BCF0  2C 07 00 00 */	cmpwi r7, 0
/* 80040094 0003BCF4  41 82 00 08 */	beq lbl_8004009C
/* 80040098 0003BCF8  90 87 00 3C */	stw r4, 0x3c(r7)
lbl_8004009C:
/* 8004009C 0003BCFC  80 E5 00 98 */	lwz r7, 0x98(r5)
/* 800400A0 0003BD00  2C 07 00 00 */	cmpwi r7, 0
/* 800400A4 0003BD04  41 82 00 08 */	beq lbl_800400AC
/* 800400A8 0003BD08  90 87 00 3C */	stw r4, 0x3c(r7)
lbl_800400AC:
/* 800400AC 0003BD0C  80 E5 00 B8 */	lwz r7, 0xb8(r5)
/* 800400B0 0003BD10  2C 07 00 00 */	cmpwi r7, 0
/* 800400B4 0003BD14  41 82 00 08 */	beq lbl_800400BC
/* 800400B8 0003BD18  90 87 00 3C */	stw r4, 0x3c(r7)
lbl_800400BC:
/* 800400BC 0003BD1C  38 C6 00 01 */	addi r6, r6, 1
/* 800400C0 0003BD20  42 00 FF A0 */	bdnz lbl_80040060
/* 800400C4 0003BD24  4E 80 00 20 */	blr

.global func_800400C8
func_800400C8:
/* 800400C8 0003BD28  38 A0 00 01 */	li r5, 1
/* 800400CC 0003BD2C  38 6D 97 C8 */	addi r3, r13, lbl_8063EA88-_SDA_BASE_
/* 800400D0 0003BD30  38 80 00 04 */	li r4, 4
/* 800400D4 0003BD34  38 00 00 00 */	li r0, 0
/* 800400D8 0003BD38  98 AD 97 C8 */	stb r5, lbl_8063EA88-_SDA_BASE_(r13)
/* 800400DC 0003BD3C  B0 83 00 02 */	sth r4, 2(r3)
/* 800400E0 0003BD40  98 03 00 04 */	stb r0, 4(r3)
/* 800400E4 0003BD44  4E 80 00 20 */	blr