summaryrefslogtreecommitdiff
path: root/asm/code_80163674.s
blob: 77851c9296b4ab59597cb97cca3fb5160aa1de27 (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
.include "macros.inc"

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

.global func_80163674
func_80163674:
/* 80163674 0015F2D4  3C 60 80 42 */	lis r3, lbl_8041F1A8@ha
/* 80163678 0015F2D8  38 00 00 00 */	li r0, 0
/* 8016367C 0015F2DC  38 63 F1 A8 */	addi r3, r3, lbl_8041F1A8@l
/* 80163680 0015F2E0  98 03 00 02 */	stb r0, 2(r3)
/* 80163684 0015F2E4  98 03 00 03 */	stb r0, 3(r3)
/* 80163688 0015F2E8  98 03 00 04 */	stb r0, 4(r3)
/* 8016368C 0015F2EC  98 03 00 05 */	stb r0, 5(r3)
/* 80163690 0015F2F0  98 03 00 06 */	stb r0, 6(r3)
/* 80163694 0015F2F4  98 03 00 07 */	stb r0, 7(r3)
/* 80163698 0015F2F8  98 03 00 08 */	stb r0, 8(r3)
/* 8016369C 0015F2FC  98 03 00 0C */	stb r0, 0xc(r3)
/* 801636A0 0015F300  98 03 00 0D */	stb r0, 0xd(r3)
/* 801636A4 0015F304  98 03 00 0E */	stb r0, 0xe(r3)
/* 801636A8 0015F308  98 03 00 0F */	stb r0, 0xf(r3)
/* 801636AC 0015F30C  98 03 00 10 */	stb r0, 0x10(r3)
/* 801636B0 0015F310  98 03 00 11 */	stb r0, 0x11(r3)
/* 801636B4 0015F314  98 03 00 12 */	stb r0, 0x12(r3)
/* 801636B8 0015F318  98 03 00 16 */	stb r0, 0x16(r3)
/* 801636BC 0015F31C  98 03 00 17 */	stb r0, 0x17(r3)
/* 801636C0 0015F320  98 03 00 18 */	stb r0, 0x18(r3)
/* 801636C4 0015F324  98 03 00 19 */	stb r0, 0x19(r3)
/* 801636C8 0015F328  98 03 00 1A */	stb r0, 0x1a(r3)
/* 801636CC 0015F32C  98 03 00 1B */	stb r0, 0x1b(r3)
/* 801636D0 0015F330  98 03 00 1C */	stb r0, 0x1c(r3)
/* 801636D4 0015F334  98 03 00 20 */	stb r0, 0x20(r3)
/* 801636D8 0015F338  98 03 00 21 */	stb r0, 0x21(r3)
/* 801636DC 0015F33C  98 03 00 22 */	stb r0, 0x22(r3)
/* 801636E0 0015F340  98 03 00 23 */	stb r0, 0x23(r3)
/* 801636E4 0015F344  98 03 00 24 */	stb r0, 0x24(r3)
/* 801636E8 0015F348  98 03 00 25 */	stb r0, 0x25(r3)
/* 801636EC 0015F34C  98 03 00 26 */	stb r0, 0x26(r3)
/* 801636F0 0015F350  98 03 00 2A */	stb r0, 0x2a(r3)
/* 801636F4 0015F354  98 03 00 2B */	stb r0, 0x2b(r3)
/* 801636F8 0015F358  98 03 00 2C */	stb r0, 0x2c(r3)
/* 801636FC 0015F35C  98 03 00 2D */	stb r0, 0x2d(r3)
/* 80163700 0015F360  98 03 00 2E */	stb r0, 0x2e(r3)
/* 80163704 0015F364  98 03 00 2F */	stb r0, 0x2f(r3)
/* 80163708 0015F368  98 03 00 30 */	stb r0, 0x30(r3)
/* 8016370C 0015F36C  98 03 00 34 */	stb r0, 0x34(r3)
/* 80163710 0015F370  98 03 00 35 */	stb r0, 0x35(r3)
/* 80163714 0015F374  98 03 00 36 */	stb r0, 0x36(r3)
/* 80163718 0015F378  98 03 00 37 */	stb r0, 0x37(r3)
/* 8016371C 0015F37C  98 03 00 38 */	stb r0, 0x38(r3)
/* 80163720 0015F380  98 03 00 39 */	stb r0, 0x39(r3)
/* 80163724 0015F384  98 03 00 3A */	stb r0, 0x3a(r3)
/* 80163728 0015F388  98 03 00 3E */	stb r0, 0x3e(r3)
/* 8016372C 0015F38C  98 03 00 3F */	stb r0, 0x3f(r3)
/* 80163730 0015F390  98 03 00 40 */	stb r0, 0x40(r3)
/* 80163734 0015F394  98 03 00 41 */	stb r0, 0x41(r3)
/* 80163738 0015F398  98 03 00 42 */	stb r0, 0x42(r3)
/* 8016373C 0015F39C  98 03 00 43 */	stb r0, 0x43(r3)
/* 80163740 0015F3A0  98 03 00 44 */	stb r0, 0x44(r3)
/* 80163744 0015F3A4  98 03 00 48 */	stb r0, 0x48(r3)
/* 80163748 0015F3A8  98 03 00 49 */	stb r0, 0x49(r3)
/* 8016374C 0015F3AC  98 03 00 4A */	stb r0, 0x4a(r3)
/* 80163750 0015F3B0  98 03 00 4B */	stb r0, 0x4b(r3)
/* 80163754 0015F3B4  98 03 00 4C */	stb r0, 0x4c(r3)
/* 80163758 0015F3B8  98 03 00 4D */	stb r0, 0x4d(r3)
/* 8016375C 0015F3BC  98 03 00 4E */	stb r0, 0x4e(r3)
/* 80163760 0015F3C0  4E 80 00 20 */	blr

.global func_80163764
func_80163764:
/* 80163764 0015F3C4  3C 60 80 42 */	lis r3, lbl_8041F1A8@ha
/* 80163768 0015F3C8  38 00 00 01 */	li r0, 1
/* 8016376C 0015F3CC  38 63 F1 A8 */	addi r3, r3, lbl_8041F1A8@l
/* 80163770 0015F3D0  98 03 00 08 */	stb r0, 8(r3)
/* 80163774 0015F3D4  98 03 00 12 */	stb r0, 0x12(r3)
/* 80163778 0015F3D8  98 03 00 1C */	stb r0, 0x1c(r3)
/* 8016377C 0015F3DC  98 03 00 26 */	stb r0, 0x26(r3)
/* 80163780 0015F3E0  98 03 00 30 */	stb r0, 0x30(r3)
/* 80163784 0015F3E4  98 03 00 3A */	stb r0, 0x3a(r3)
/* 80163788 0015F3E8  98 03 00 44 */	stb r0, 0x44(r3)
/* 8016378C 0015F3EC  98 03 00 4E */	stb r0, 0x4e(r3)
/* 80163790 0015F3F0  4E 80 00 20 */	blr

.global func_80163794
func_80163794:
/* 80163794 0015F3F4  3C 60 80 42 */	lis r3, lbl_8041F1A8@ha
/* 80163798 0015F3F8  38 00 00 04 */	li r0, 4
/* 8016379C 0015F3FC  38 63 F1 A8 */	addi r3, r3, lbl_8041F1A8@l
/* 801637A0 0015F400  38 80 00 00 */	li r4, 0
/* 801637A4 0015F404  7C 09 03 A6 */	mtctr r0
lbl_801637A8:
/* 801637A8 0015F408  88 03 00 08 */	lbz r0, 8(r3)
/* 801637AC 0015F40C  2C 00 00 00 */	cmpwi r0, 0
/* 801637B0 0015F410  41 82 00 74 */	beq lbl_80163824
/* 801637B4 0015F414  88 03 00 07 */	lbz r0, 7(r3)
/* 801637B8 0015F418  2C 00 00 00 */	cmpwi r0, 0
/* 801637BC 0015F41C  40 82 00 40 */	bne lbl_801637FC
/* 801637C0 0015F420  88 03 00 06 */	lbz r0, 6(r3)
/* 801637C4 0015F424  2C 00 00 00 */	cmpwi r0, 0
/* 801637C8 0015F428  40 82 00 34 */	bne lbl_801637FC
/* 801637CC 0015F42C  88 03 00 05 */	lbz r0, 5(r3)
/* 801637D0 0015F430  2C 00 00 00 */	cmpwi r0, 0
/* 801637D4 0015F434  40 82 00 28 */	bne lbl_801637FC
/* 801637D8 0015F438  88 03 00 04 */	lbz r0, 4(r3)
/* 801637DC 0015F43C  2C 00 00 00 */	cmpwi r0, 0
/* 801637E0 0015F440  40 82 00 1C */	bne lbl_801637FC
/* 801637E4 0015F444  88 03 00 03 */	lbz r0, 3(r3)
/* 801637E8 0015F448  2C 00 00 00 */	cmpwi r0, 0
/* 801637EC 0015F44C  40 82 00 10 */	bne lbl_801637FC
/* 801637F0 0015F450  88 03 00 02 */	lbz r0, 2(r3)
/* 801637F4 0015F454  2C 00 00 00 */	cmpwi r0, 0
/* 801637F8 0015F458  41 82 00 0C */	beq lbl_80163804
lbl_801637FC:
/* 801637FC 0015F45C  38 00 00 00 */	li r0, 0
/* 80163800 0015F460  48 00 00 08 */	b lbl_80163808
lbl_80163804:
/* 80163804 0015F464  38 00 00 01 */	li r0, 1
lbl_80163808:
/* 80163808 0015F468  2C 00 00 00 */	cmpwi r0, 0
/* 8016380C 0015F46C  40 82 00 18 */	bne lbl_80163824
/* 80163810 0015F470  A0 03 00 00 */	lhz r0, 0(r3)
/* 80163814 0015F474  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163818 0015F478  40 82 00 0C */	bne lbl_80163824
/* 8016381C 0015F47C  38 60 00 00 */	li r3, 0
/* 80163820 0015F480  4E 80 00 20 */	blr
lbl_80163824:
/* 80163824 0015F484  88 03 00 12 */	lbz r0, 0x12(r3)
/* 80163828 0015F488  2C 00 00 00 */	cmpwi r0, 0
/* 8016382C 0015F48C  41 82 00 74 */	beq lbl_801638A0
/* 80163830 0015F490  88 03 00 11 */	lbz r0, 0x11(r3)
/* 80163834 0015F494  2C 00 00 00 */	cmpwi r0, 0
/* 80163838 0015F498  40 82 00 40 */	bne lbl_80163878
/* 8016383C 0015F49C  88 03 00 10 */	lbz r0, 0x10(r3)
/* 80163840 0015F4A0  2C 00 00 00 */	cmpwi r0, 0
/* 80163844 0015F4A4  40 82 00 34 */	bne lbl_80163878
/* 80163848 0015F4A8  88 03 00 0F */	lbz r0, 0xf(r3)
/* 8016384C 0015F4AC  2C 00 00 00 */	cmpwi r0, 0
/* 80163850 0015F4B0  40 82 00 28 */	bne lbl_80163878
/* 80163854 0015F4B4  88 03 00 0E */	lbz r0, 0xe(r3)
/* 80163858 0015F4B8  2C 00 00 00 */	cmpwi r0, 0
/* 8016385C 0015F4BC  40 82 00 1C */	bne lbl_80163878
/* 80163860 0015F4C0  88 03 00 0D */	lbz r0, 0xd(r3)
/* 80163864 0015F4C4  2C 00 00 00 */	cmpwi r0, 0
/* 80163868 0015F4C8  40 82 00 10 */	bne lbl_80163878
/* 8016386C 0015F4CC  88 03 00 0C */	lbz r0, 0xc(r3)
/* 80163870 0015F4D0  2C 00 00 00 */	cmpwi r0, 0
/* 80163874 0015F4D4  41 82 00 0C */	beq lbl_80163880
lbl_80163878:
/* 80163878 0015F4D8  38 00 00 00 */	li r0, 0
/* 8016387C 0015F4DC  48 00 00 08 */	b lbl_80163884
lbl_80163880:
/* 80163880 0015F4E0  38 00 00 01 */	li r0, 1
lbl_80163884:
/* 80163884 0015F4E4  2C 00 00 00 */	cmpwi r0, 0
/* 80163888 0015F4E8  40 82 00 18 */	bne lbl_801638A0
/* 8016388C 0015F4EC  A0 03 00 0A */	lhz r0, 0xa(r3)
/* 80163890 0015F4F0  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163894 0015F4F4  40 82 00 0C */	bne lbl_801638A0
/* 80163898 0015F4F8  38 60 00 00 */	li r3, 0
/* 8016389C 0015F4FC  4E 80 00 20 */	blr
lbl_801638A0:
/* 801638A0 0015F500  38 63 00 14 */	addi r3, r3, 0x14
/* 801638A4 0015F504  38 84 00 01 */	addi r4, r4, 1
/* 801638A8 0015F508  42 00 FF 00 */	bdnz lbl_801637A8
/* 801638AC 0015F50C  38 60 00 01 */	li r3, 1
/* 801638B0 0015F510  4E 80 00 20 */	blr

.global func_801638B4
func_801638B4:
/* 801638B4 0015F514  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801638B8 0015F518  7C 08 02 A6 */	mflr r0
/* 801638BC 0015F51C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801638C0 0015F520  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801638C4 0015F524  3F E0 80 42 */	lis r31, lbl_8041F1A8@ha
/* 801638C8 0015F528  3B FF F1 A8 */	addi r31, r31, lbl_8041F1A8@l
/* 801638CC 0015F52C  93 C1 00 08 */	stw r30, 8(r1)
/* 801638D0 0015F530  3B C0 00 00 */	li r30, 0
lbl_801638D4:
/* 801638D4 0015F534  88 1F 00 07 */	lbz r0, 7(r31)
/* 801638D8 0015F538  2C 00 00 00 */	cmpwi r0, 0
/* 801638DC 0015F53C  40 82 00 40 */	bne lbl_8016391C
/* 801638E0 0015F540  88 1F 00 06 */	lbz r0, 6(r31)
/* 801638E4 0015F544  2C 00 00 00 */	cmpwi r0, 0
/* 801638E8 0015F548  40 82 00 34 */	bne lbl_8016391C
/* 801638EC 0015F54C  88 1F 00 05 */	lbz r0, 5(r31)
/* 801638F0 0015F550  2C 00 00 00 */	cmpwi r0, 0
/* 801638F4 0015F554  40 82 00 28 */	bne lbl_8016391C
/* 801638F8 0015F558  88 1F 00 04 */	lbz r0, 4(r31)
/* 801638FC 0015F55C  2C 00 00 00 */	cmpwi r0, 0
/* 80163900 0015F560  40 82 00 1C */	bne lbl_8016391C
/* 80163904 0015F564  88 1F 00 03 */	lbz r0, 3(r31)
/* 80163908 0015F568  2C 00 00 00 */	cmpwi r0, 0
/* 8016390C 0015F56C  40 82 00 10 */	bne lbl_8016391C
/* 80163910 0015F570  88 1F 00 02 */	lbz r0, 2(r31)
/* 80163914 0015F574  2C 00 00 00 */	cmpwi r0, 0
/* 80163918 0015F578  41 82 00 0C */	beq lbl_80163924
lbl_8016391C:
/* 8016391C 0015F57C  38 00 00 00 */	li r0, 0
/* 80163920 0015F580  48 00 00 08 */	b lbl_80163928
lbl_80163924:
/* 80163924 0015F584  38 00 00 01 */	li r0, 1
lbl_80163928:
/* 80163928 0015F588  2C 00 00 00 */	cmpwi r0, 0
/* 8016392C 0015F58C  40 82 00 48 */	bne lbl_80163974
/* 80163930 0015F590  88 1F 00 08 */	lbz r0, 8(r31)
/* 80163934 0015F594  2C 00 00 00 */	cmpwi r0, 0
/* 80163938 0015F598  41 82 00 3C */	beq lbl_80163974
/* 8016393C 0015F59C  A0 1F 00 00 */	lhz r0, 0(r31)
/* 80163940 0015F5A0  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163944 0015F5A4  40 82 00 0C */	bne lbl_80163950
/* 80163948 0015F5A8  38 60 00 00 */	li r3, 0
/* 8016394C 0015F5AC  48 00 00 3C */	b lbl_80163988
lbl_80163950:
/* 80163950 0015F5B0  7F C3 F3 78 */	mr r3, r30
/* 80163954 0015F5B4  48 00 13 19 */	bl func_80164C6C
/* 80163958 0015F5B8  2C 03 00 00 */	cmpwi r3, 0
/* 8016395C 0015F5BC  41 82 00 10 */	beq lbl_8016396C
/* 80163960 0015F5C0  48 00 1F CD */	bl func_8016592C
/* 80163964 0015F5C4  2C 03 00 00 */	cmpwi r3, 0
/* 80163968 0015F5C8  40 82 00 0C */	bne lbl_80163974
lbl_8016396C:
/* 8016396C 0015F5CC  38 60 00 00 */	li r3, 0
/* 80163970 0015F5D0  48 00 00 18 */	b lbl_80163988
lbl_80163974:
/* 80163974 0015F5D4  3B DE 00 01 */	addi r30, r30, 1
/* 80163978 0015F5D8  3B FF 00 0A */	addi r31, r31, 0xa
/* 8016397C 0015F5DC  2C 1E 00 08 */	cmpwi r30, 8
/* 80163980 0015F5E0  41 80 FF 54 */	blt lbl_801638D4
/* 80163984 0015F5E4  38 60 00 01 */	li r3, 1
lbl_80163988:
/* 80163988 0015F5E8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016398C 0015F5EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80163990 0015F5F0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80163994 0015F5F4  7C 08 03 A6 */	mtlr r0
/* 80163998 0015F5F8  38 21 00 10 */	addi r1, r1, 0x10
/* 8016399C 0015F5FC  4E 80 00 20 */	blr

.global func_801639A0
func_801639A0:
/* 801639A0 0015F600  3C C0 80 42 */	lis r6, lbl_8041F1A8@ha
/* 801639A4 0015F604  38 00 00 08 */	li r0, 8
/* 801639A8 0015F608  38 C6 F1 A8 */	addi r6, r6, lbl_8041F1A8@l
/* 801639AC 0015F60C  38 E0 00 00 */	li r7, 0
/* 801639B0 0015F610  7C 09 03 A6 */	mtctr r0
lbl_801639B4:
/* 801639B4 0015F614  A0 06 00 00 */	lhz r0, 0(r6)
/* 801639B8 0015F618  28 00 FF FF */	cmplwi r0, 0xffff
/* 801639BC 0015F61C  40 82 00 D0 */	bne lbl_80163A8C
/* 801639C0 0015F620  88 06 00 08 */	lbz r0, 8(r6)
/* 801639C4 0015F624  2C 00 00 00 */	cmpwi r0, 0
/* 801639C8 0015F628  41 82 00 78 */	beq lbl_80163A40
/* 801639CC 0015F62C  88 A6 00 07 */	lbz r5, 7(r6)
/* 801639D0 0015F630  88 04 00 05 */	lbz r0, 5(r4)
/* 801639D4 0015F634  7C 05 00 40 */	cmplw r5, r0
/* 801639D8 0015F638  40 82 00 54 */	bne lbl_80163A2C
/* 801639DC 0015F63C  88 A6 00 06 */	lbz r5, 6(r6)
/* 801639E0 0015F640  88 04 00 04 */	lbz r0, 4(r4)
/* 801639E4 0015F644  7C 05 00 40 */	cmplw r5, r0
/* 801639E8 0015F648  40 82 00 44 */	bne lbl_80163A2C
/* 801639EC 0015F64C  88 A6 00 05 */	lbz r5, 5(r6)
/* 801639F0 0015F650  88 04 00 03 */	lbz r0, 3(r4)
/* 801639F4 0015F654  7C 05 00 40 */	cmplw r5, r0
/* 801639F8 0015F658  40 82 00 34 */	bne lbl_80163A2C
/* 801639FC 0015F65C  88 A6 00 04 */	lbz r5, 4(r6)
/* 80163A00 0015F660  88 04 00 02 */	lbz r0, 2(r4)
/* 80163A04 0015F664  7C 05 00 40 */	cmplw r5, r0
/* 80163A08 0015F668  40 82 00 24 */	bne lbl_80163A2C
/* 80163A0C 0015F66C  88 A6 00 03 */	lbz r5, 3(r6)
/* 80163A10 0015F670  88 04 00 01 */	lbz r0, 1(r4)
/* 80163A14 0015F674  7C 05 00 40 */	cmplw r5, r0
/* 80163A18 0015F678  40 82 00 14 */	bne lbl_80163A2C
/* 80163A1C 0015F67C  88 A6 00 02 */	lbz r5, 2(r6)
/* 80163A20 0015F680  88 04 00 00 */	lbz r0, 0(r4)
/* 80163A24 0015F684  7C 05 00 40 */	cmplw r5, r0
/* 80163A28 0015F688  41 82 00 0C */	beq lbl_80163A34
lbl_80163A2C:
/* 80163A2C 0015F68C  38 00 00 01 */	li r0, 1
/* 80163A30 0015F690  48 00 00 08 */	b lbl_80163A38
lbl_80163A34:
/* 80163A34 0015F694  38 00 00 00 */	li r0, 0
lbl_80163A38:
/* 80163A38 0015F698  2C 00 00 00 */	cmpwi r0, 0
/* 80163A3C 0015F69C  40 82 00 50 */	bne lbl_80163A8C
lbl_80163A40:
/* 80163A40 0015F6A0  1C 07 00 0A */	mulli r0, r7, 0xa
/* 80163A44 0015F6A4  3C A0 80 42 */	lis r5, lbl_8041F1A8@ha
/* 80163A48 0015F6A8  38 A5 F1 A8 */	addi r5, r5, lbl_8041F1A8@l
/* 80163A4C 0015F6AC  7C 65 03 2E */	sthx r3, r5, r0
/* 80163A50 0015F6B0  7C A5 02 14 */	add r5, r5, r0
/* 80163A54 0015F6B4  54 E3 04 3E */	clrlwi r3, r7, 0x10
/* 80163A58 0015F6B8  88 04 00 00 */	lbz r0, 0(r4)
/* 80163A5C 0015F6BC  98 05 00 02 */	stb r0, 2(r5)
/* 80163A60 0015F6C0  88 04 00 01 */	lbz r0, 1(r4)
/* 80163A64 0015F6C4  98 05 00 03 */	stb r0, 3(r5)
/* 80163A68 0015F6C8  88 04 00 02 */	lbz r0, 2(r4)
/* 80163A6C 0015F6CC  98 05 00 04 */	stb r0, 4(r5)
/* 80163A70 0015F6D0  88 04 00 03 */	lbz r0, 3(r4)
/* 80163A74 0015F6D4  98 05 00 05 */	stb r0, 5(r5)
/* 80163A78 0015F6D8  88 04 00 04 */	lbz r0, 4(r4)
/* 80163A7C 0015F6DC  98 05 00 06 */	stb r0, 6(r5)
/* 80163A80 0015F6E0  88 04 00 05 */	lbz r0, 5(r4)
/* 80163A84 0015F6E4  98 05 00 07 */	stb r0, 7(r5)
/* 80163A88 0015F6E8  4E 80 00 20 */	blr
lbl_80163A8C:
/* 80163A8C 0015F6EC  38 C6 00 0A */	addi r6, r6, 0xa
/* 80163A90 0015F6F0  38 E7 00 01 */	addi r7, r7, 1
/* 80163A94 0015F6F4  42 00 FF 20 */	bdnz lbl_801639B4
/* 80163A98 0015F6F8  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 80163A9C 0015F6FC  38 63 FF FF */	addi r3, r3, 0x0000FFFF@l
/* 80163AA0 0015F700  4E 80 00 20 */	blr

.global func_80163AA4
func_80163AA4:
/* 80163AA4 0015F704  28 03 00 08 */	cmplwi r3, 8
/* 80163AA8 0015F708  4C 80 00 20 */	bgelr
/* 80163AAC 0015F70C  1C A3 00 0A */	mulli r5, r3, 0xa
/* 80163AB0 0015F710  3C 60 80 42 */	lis r3, lbl_8041F1A8@ha
/* 80163AB4 0015F714  38 63 F1 A8 */	addi r3, r3, lbl_8041F1A8@l
/* 80163AB8 0015F718  7C 63 2A 14 */	add r3, r3, r5
/* 80163ABC 0015F71C  88 03 00 08 */	lbz r0, 8(r3)
/* 80163AC0 0015F720  2C 00 00 00 */	cmpwi r0, 0
/* 80163AC4 0015F724  40 82 00 20 */	bne lbl_80163AE4
/* 80163AC8 0015F728  38 00 00 00 */	li r0, 0
/* 80163ACC 0015F72C  98 03 00 02 */	stb r0, 2(r3)
/* 80163AD0 0015F730  98 03 00 03 */	stb r0, 3(r3)
/* 80163AD4 0015F734  98 03 00 04 */	stb r0, 4(r3)
/* 80163AD8 0015F738  98 03 00 05 */	stb r0, 5(r3)
/* 80163ADC 0015F73C  98 03 00 06 */	stb r0, 6(r3)
/* 80163AE0 0015F740  98 03 00 07 */	stb r0, 7(r3)
lbl_80163AE4:
/* 80163AE4 0015F744  3C 80 00 01 */	lis r4, 0x0000FFFF@ha
/* 80163AE8 0015F748  3C 60 80 42 */	lis r3, lbl_8041F1A8@ha
/* 80163AEC 0015F74C  38 04 FF FF */	addi r0, r4, 0x0000FFFF@l
/* 80163AF0 0015F750  38 63 F1 A8 */	addi r3, r3, lbl_8041F1A8@l
/* 80163AF4 0015F754  7C 03 2B 2E */	sthx r0, r3, r5
/* 80163AF8 0015F758  4E 80 00 20 */	blr

.global func_80163AFC
func_80163AFC:
/* 80163AFC 0015F75C  2C 03 00 08 */	cmpwi r3, 8
/* 80163B00 0015F760  41 80 00 0C */	blt lbl_80163B0C
/* 80163B04 0015F764  38 60 FF FF */	li r3, -1
/* 80163B08 0015F768  4E 80 00 20 */	blr
lbl_80163B0C:
/* 80163B0C 0015F76C  1C 03 00 0A */	mulli r0, r3, 0xa
/* 80163B10 0015F770  3C 80 80 42 */	lis r4, lbl_8041F1A8@ha
/* 80163B14 0015F774  38 60 FF FF */	li r3, -1
/* 80163B18 0015F778  38 84 F1 A8 */	addi r4, r4, lbl_8041F1A8@l
/* 80163B1C 0015F77C  7C 04 02 2E */	lhzx r0, r4, r0
/* 80163B20 0015F780  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163B24 0015F784  4D 82 00 20 */	beqlr
/* 80163B28 0015F788  7C 03 03 78 */	mr r3, r0
/* 80163B2C 0015F78C  4E 80 00 20 */	blr

.global func_80163B30
func_80163B30:
/* 80163B30 0015F790  28 03 00 09 */	cmplwi r3, 9
/* 80163B34 0015F794  41 80 00 0C */	blt lbl_80163B40
/* 80163B38 0015F798  38 60 FF FF */	li r3, -1
/* 80163B3C 0015F79C  4E 80 00 20 */	blr
lbl_80163B40:
/* 80163B40 0015F7A0  3C 80 80 49 */	lis r4, lbl_804895E0@ha
/* 80163B44 0015F7A4  54 63 13 BA */	rlwinm r3, r3, 2, 0xe, 0x1d
/* 80163B48 0015F7A8  38 84 95 E0 */	addi r4, r4, lbl_804895E0@l
/* 80163B4C 0015F7AC  7C 04 1A 2E */	lhzx r0, r4, r3
/* 80163B50 0015F7B0  2C 00 00 00 */	cmpwi r0, 0
/* 80163B54 0015F7B4  40 82 00 0C */	bne lbl_80163B60
/* 80163B58 0015F7B8  38 60 FF FF */	li r3, -1
/* 80163B5C 0015F7BC  4E 80 00 20 */	blr
lbl_80163B60:
/* 80163B60 0015F7C0  7C 84 1A 14 */	add r4, r4, r3
/* 80163B64 0015F7C4  38 60 FF FF */	li r3, -1
/* 80163B68 0015F7C8  A0 04 00 02 */	lhz r0, 2(r4)
/* 80163B6C 0015F7CC  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163B70 0015F7D0  4D 82 00 20 */	beqlr
/* 80163B74 0015F7D4  7C 03 03 78 */	mr r3, r0
/* 80163B78 0015F7D8  4E 80 00 20 */	blr

.global func_80163B7C
func_80163B7C:
/* 80163B7C 0015F7DC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80163B80 0015F7E0  7C 08 02 A6 */	mflr r0
/* 80163B84 0015F7E4  3C 80 80 49 */	lis r4, lbl_804895E0@ha
/* 80163B88 0015F7E8  38 A0 00 24 */	li r5, 0x24
/* 80163B8C 0015F7EC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80163B90 0015F7F0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80163B94 0015F7F4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80163B98 0015F7F8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80163B9C 0015F7FC  7C 7D 1B 78 */	mr r29, r3
/* 80163BA0 0015F800  38 64 95 E0 */	addi r3, r4, lbl_804895E0@l
/* 80163BA4 0015F804  38 80 00 00 */	li r4, 0
/* 80163BA8 0015F808  4B EA 05 5D */	bl memset
/* 80163BAC 0015F80C  3F E0 80 49 */	lis r31, lbl_80489604@ha
/* 80163BB0 0015F810  3B C0 00 00 */	li r30, 0
/* 80163BB4 0015F814  3B FF 96 04 */	addi r31, r31, lbl_80489604@l
lbl_80163BB8:
/* 80163BB8 0015F818  48 07 6F 71 */	bl func_801DAB28
/* 80163BBC 0015F81C  2C 03 00 00 */	cmpwi r3, 0
/* 80163BC0 0015F820  41 82 00 14 */	beq lbl_80163BD4
/* 80163BC4 0015F824  80 6D 96 2C */	lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 80163BC8 0015F828  38 80 19 6C */	li r4, 0x196c
/* 80163BCC 0015F82C  48 07 70 C9 */	bl func_801DAC94
/* 80163BD0 0015F830  48 00 00 08 */	b lbl_80163BD8
lbl_80163BD4:
/* 80163BD4 0015F834  38 60 00 00 */	li r3, 0
lbl_80163BD8:
/* 80163BD8 0015F838  90 7F 00 00 */	stw r3, 0(r31)
/* 80163BDC 0015F83C  7F A4 EB 78 */	mr r4, r29
/* 80163BE0 0015F840  48 00 1C B5 */	bl func_80165894
/* 80163BE4 0015F844  3B DE 00 01 */	addi r30, r30, 1
/* 80163BE8 0015F848  3B FF 00 04 */	addi r31, r31, 4
/* 80163BEC 0015F84C  2C 1E 00 09 */	cmpwi r30, 9
/* 80163BF0 0015F850  41 80 FF C8 */	blt lbl_80163BB8
/* 80163BF4 0015F854  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80163BF8 0015F858  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80163BFC 0015F85C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80163C00 0015F860  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80163C04 0015F864  7C 08 03 A6 */	mtlr r0
/* 80163C08 0015F868  38 21 00 20 */	addi r1, r1, 0x20
/* 80163C0C 0015F86C  4E 80 00 20 */	blr

.global func_80163C10
func_80163C10:
/* 80163C10 0015F870  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80163C14 0015F874  7C 08 02 A6 */	mflr r0
/* 80163C18 0015F878  90 01 00 14 */	stw r0, 0x14(r1)
/* 80163C1C 0015F87C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80163C20 0015F880  3F E0 80 49 */	lis r31, lbl_80489604@ha
/* 80163C24 0015F884  3B FF 96 04 */	addi r31, r31, lbl_80489604@l
/* 80163C28 0015F888  93 C1 00 08 */	stw r30, 8(r1)
/* 80163C2C 0015F88C  3B C0 00 00 */	li r30, 0
lbl_80163C30:
/* 80163C30 0015F890  7F C3 F3 78 */	mr r3, r30
/* 80163C34 0015F894  4B FF FE C9 */	bl func_80163AFC
/* 80163C38 0015F898  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80163C3C 0015F89C  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163C40 0015F8A0  41 82 00 10 */	beq lbl_80163C50
/* 80163C44 0015F8A4  54 00 13 BA */	rlwinm r0, r0, 2, 0xe, 0x1d
/* 80163C48 0015F8A8  7C 7F 00 2E */	lwzx r3, r31, r0
/* 80163C4C 0015F8AC  48 00 2E 61 */	bl func_80166AAC
lbl_80163C50:
/* 80163C50 0015F8B0  3B DE 00 01 */	addi r30, r30, 1
/* 80163C54 0015F8B4  2C 1E 00 08 */	cmpwi r30, 8
/* 80163C58 0015F8B8  41 80 FF D8 */	blt lbl_80163C30
/* 80163C5C 0015F8BC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163C60 0015F8C0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80163C64 0015F8C4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80163C68 0015F8C8  7C 08 03 A6 */	mtlr r0
/* 80163C6C 0015F8CC  38 21 00 10 */	addi r1, r1, 0x10
/* 80163C70 0015F8D0  4E 80 00 20 */	blr

.global func_80163C74
func_80163C74:
/* 80163C74 0015F8D4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80163C78 0015F8D8  7C 08 02 A6 */	mflr r0
/* 80163C7C 0015F8DC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80163C80 0015F8E0  80 0D 9D C0 */	lwz r0, lbl_8063F080-_SDA_BASE_(r13)
/* 80163C84 0015F8E4  2C 00 00 00 */	cmpwi r0, 0
/* 80163C88 0015F8E8  40 82 00 14 */	bne lbl_80163C9C
/* 80163C8C 0015F8EC  48 0F A3 45 */	bl func_8025DFD0
/* 80163C90 0015F8F0  38 80 05 88 */	li r4, 0x588
/* 80163C94 0015F8F4  48 0F A3 2D */	bl func_8025DFC0
/* 80163C98 0015F8F8  90 6D 9D C0 */	stw r3, lbl_8063F080-_SDA_BASE_(r13)
lbl_80163C9C:
/* 80163C9C 0015F8FC  38 60 00 00 */	li r3, 0
/* 80163CA0 0015F900  48 00 01 25 */	bl func_80163DC4
/* 80163CA4 0015F904  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163CA8 0015F908  7C 08 03 A6 */	mtlr r0
/* 80163CAC 0015F90C  38 21 00 10 */	addi r1, r1, 0x10
/* 80163CB0 0015F910  4E 80 00 20 */	blr

.global func_80163CB4
func_80163CB4:
/* 80163CB4 0015F914  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80163CB8 0015F918  7C 08 02 A6 */	mflr r0
/* 80163CBC 0015F91C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80163CC0 0015F920  39 61 00 30 */	addi r11, r1, 0x30
/* 80163CC4 0015F924  48 06 34 59 */	bl _savegpr_24
/* 80163CC8 0015F928  80 0D 83 28 */	lwz r0, lbl_8063D5E8-_SDA_BASE_(r13)
/* 80163CCC 0015F92C  7C 78 1B 78 */	mr r24, r3
/* 80163CD0 0015F930  83 8D 9D C0 */	lwz r28, lbl_8063F080-_SDA_BASE_(r13)
/* 80163CD4 0015F934  2C 00 00 00 */	cmpwi r0, 0
/* 80163CD8 0015F938  40 82 00 0C */	bne lbl_80163CE4
/* 80163CDC 0015F93C  38 60 FF FF */	li r3, -1
/* 80163CE0 0015F940  48 00 00 CC */	b lbl_80163DAC
lbl_80163CE4:
/* 80163CE4 0015F944  2C 1C 00 00 */	cmpwi r28, 0
/* 80163CE8 0015F948  40 82 00 0C */	bne lbl_80163CF4
/* 80163CEC 0015F94C  38 60 FF FF */	li r3, -1
/* 80163CF0 0015F950  48 00 00 BC */	b lbl_80163DAC
lbl_80163CF4:
/* 80163CF4 0015F954  3B 60 00 00 */	li r27, 0
/* 80163CF8 0015F958  48 0F A2 D9 */	bl func_8025DFD0
/* 80163CFC 0015F95C  38 80 00 A4 */	li r4, 0xa4
/* 80163D00 0015F960  48 0F A2 C1 */	bl func_8025DFC0
/* 80163D04 0015F964  7C 7A 1B 78 */	mr r26, r3
/* 80163D08 0015F968  7F 9D E3 78 */	mr r29, r28
/* 80163D0C 0015F96C  3B F8 02 86 */	addi r31, r24, 0x286
/* 80163D10 0015F970  3B D8 01 FC */	addi r30, r24, 0x1fc
/* 80163D14 0015F974  3B 20 00 00 */	li r25, 0
lbl_80163D18:
/* 80163D18 0015F978  88 1F 00 00 */	lbz r0, 0(r31)
/* 80163D1C 0015F97C  54 00 CF FF */	rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80163D20 0015F980  41 82 00 54 */	beq lbl_80163D74
/* 80163D24 0015F984  7F C3 F3 78 */	mr r3, r30
/* 80163D28 0015F988  7F 44 D3 78 */	mr r4, r26
/* 80163D2C 0015F98C  48 27 8A 1D */	bl func_803DC748
/* 80163D30 0015F990  7F 43 D3 78 */	mr r3, r26
/* 80163D34 0015F994  48 27 9C 39 */	bl func_803DD96C
/* 80163D38 0015F998  7C 78 1B 78 */	mr r24, r3
/* 80163D3C 0015F99C  7F 43 D3 78 */	mr r3, r26
/* 80163D40 0015F9A0  7F A4 EB 78 */	mr r4, r29
/* 80163D44 0015F9A4  38 A0 00 01 */	li r5, 1
/* 80163D48 0015F9A8  48 27 D4 FD */	bl func_803E1244
/* 80163D4C 0015F9AC  7F 43 D3 78 */	mr r3, r26
/* 80163D50 0015F9B0  7F 04 C3 78 */	mr r4, r24
/* 80163D54 0015F9B4  48 27 65 59 */	bl func_803DA2AC
/* 80163D58 0015F9B8  3B 39 00 01 */	addi r25, r25, 1
/* 80163D5C 0015F9BC  3B 7B 00 01 */	addi r27, r27, 1
/* 80163D60 0015F9C0  2C 19 00 06 */	cmpwi r25, 6
/* 80163D64 0015F9C4  3B FF 00 8C */	addi r31, r31, 0x8c
/* 80163D68 0015F9C8  3B DE 00 8C */	addi r30, r30, 0x8c
/* 80163D6C 0015F9CC  3B BD 00 EC */	addi r29, r29, 0xec
/* 80163D70 0015F9D0  41 80 FF A8 */	blt lbl_80163D18
lbl_80163D74:
/* 80163D74 0015F9D4  48 0F A2 5D */	bl func_8025DFD0
/* 80163D78 0015F9D8  7F 44 D3 78 */	mr r4, r26
/* 80163D7C 0015F9DC  48 0F A2 4D */	bl func_8025DFC8
/* 80163D80 0015F9E0  2C 1B 00 00 */	cmpwi r27, 0
/* 80163D84 0015F9E4  40 82 00 0C */	bne lbl_80163D90
/* 80163D88 0015F9E8  38 60 FF FE */	li r3, -2
/* 80163D8C 0015F9EC  48 00 00 20 */	b lbl_80163DAC
lbl_80163D90:
/* 80163D90 0015F9F0  38 00 00 00 */	li r0, 0
/* 80163D94 0015F9F4  90 0D 83 28 */	stw r0, lbl_8063D5E8-_SDA_BASE_(r13)
/* 80163D98 0015F9F8  48 0F A2 39 */	bl func_8025DFD0
/* 80163D9C 0015F9FC  48 0F A5 81 */	bl func_8025E31C
/* 80163DA0 0015FA00  7F 84 E3 78 */	mr r4, r28
/* 80163DA4 0015FA04  7F 65 DB 78 */	mr r5, r27
/* 80163DA8 0015FA08  48 10 36 15 */	bl func_802673BC
lbl_80163DAC:
/* 80163DAC 0015FA0C  39 61 00 30 */	addi r11, r1, 0x30
/* 80163DB0 0015FA10  48 06 33 B9 */	bl _restgpr_24
/* 80163DB4 0015FA14  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80163DB8 0015FA18  7C 08 03 A6 */	mtlr r0
/* 80163DBC 0015FA1C  38 21 00 30 */	addi r1, r1, 0x30
/* 80163DC0 0015FA20  4E 80 00 20 */	blr

.global func_80163DC4
func_80163DC4:
/* 80163DC4 0015FA24  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80163DC8 0015FA28  7C 08 02 A6 */	mflr r0
/* 80163DCC 0015FA2C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80163DD0 0015FA30  80 0D 83 28 */	lwz r0, lbl_8063D5E8-_SDA_BASE_(r13)
/* 80163DD4 0015FA34  2C 00 00 00 */	cmpwi r0, 0
/* 80163DD8 0015FA38  41 82 00 0C */	beq lbl_80163DE4
/* 80163DDC 0015FA3C  80 6D 9D C4 */	lwz r3, lbl_8063F084-_SDA_BASE_(r13)
/* 80163DE0 0015FA40  48 00 00 80 */	b lbl_80163E60
lbl_80163DE4:
/* 80163DE4 0015FA44  2C 03 00 00 */	cmpwi r3, 0
/* 80163DE8 0015FA48  41 82 00 0C */	beq lbl_80163DF4
/* 80163DEC 0015FA4C  38 60 FF FF */	li r3, -1
/* 80163DF0 0015FA50  48 00 00 70 */	b lbl_80163E60
lbl_80163DF4:
/* 80163DF4 0015FA54  48 0F A1 DD */	bl func_8025DFD0
/* 80163DF8 0015FA58  48 0F A5 25 */	bl func_8025E31C
/* 80163DFC 0015FA5C  38 81 00 08 */	addi r4, r1, 8
/* 80163E00 0015FA60  48 10 36 5D */	bl func_8026745C
/* 80163E04 0015FA64  2C 03 00 00 */	cmpwi r3, 0
/* 80163E08 0015FA68  40 82 00 0C */	bne lbl_80163E14
/* 80163E0C 0015FA6C  38 60 FF FF */	li r3, -1
/* 80163E10 0015FA70  48 00 00 50 */	b lbl_80163E60
lbl_80163E14:
/* 80163E14 0015FA74  40 80 00 0C */	bge lbl_80163E20
/* 80163E18 0015FA78  38 00 00 00 */	li r0, 0
/* 80163E1C 0015FA7C  90 01 00 08 */	stw r0, 8(r1)
lbl_80163E20:
/* 80163E20 0015FA80  48 00 00 51 */	bl func_80163E70
/* 80163E24 0015FA84  2C 03 00 00 */	cmpwi r3, 0
/* 80163E28 0015FA88  40 82 00 0C */	bne lbl_80163E34
/* 80163E2C 0015FA8C  38 00 00 00 */	li r0, 0
/* 80163E30 0015FA90  90 01 00 08 */	stw r0, 8(r1)
lbl_80163E34:
/* 80163E34 0015FA94  80 01 00 08 */	lwz r0, 8(r1)
/* 80163E38 0015FA98  38 60 00 01 */	li r3, 1
/* 80163E3C 0015FA9C  3C 80 80 42 */	lis r4, lbl_8041F1F8@ha
/* 80163E40 0015FAA0  90 6D 83 28 */	stw r3, lbl_8063D5E8-_SDA_BASE_(r13)
/* 80163E44 0015FAA4  38 84 F1 F8 */	addi r4, r4, lbl_8041F1F8@l
/* 80163E48 0015FAA8  38 60 00 00 */	li r3, 0
/* 80163E4C 0015FAAC  90 0D 9D C4 */	stw r0, lbl_8063F084-_SDA_BASE_(r13)
/* 80163E50 0015FAB0  38 AD 9D C4 */	addi r5, r13, lbl_8063F084-_SDA_BASE_
/* 80163E54 0015FAB4  38 C0 00 04 */	li r6, 4
/* 80163E58 0015FAB8  48 00 09 CD */	bl func_80164824
/* 80163E5C 0015FABC  80 61 00 08 */	lwz r3, 8(r1)
lbl_80163E60:
/* 80163E60 0015FAC0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163E64 0015FAC4  7C 08 03 A6 */	mtlr r0
/* 80163E68 0015FAC8  38 21 00 10 */	addi r1, r1, 0x10
/* 80163E6C 0015FACC  4E 80 00 20 */	blr

.global func_80163E70
func_80163E70:
/* 80163E70 0015FAD0  80 6D 83 2C */	lwz r3, lbl_8063D5EC-_SDA_BASE_(r13)
/* 80163E74 0015FAD4  4E 80 00 20 */	blr

.global func_80163E78
func_80163E78:
/* 80163E78 0015FAD8  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80163E7C 0015FADC  7C 08 02 A6 */	mflr r0
/* 80163E80 0015FAE0  90 01 00 34 */	stw r0, 0x34(r1)
/* 80163E84 0015FAE4  39 61 00 30 */	addi r11, r1, 0x30
/* 80163E88 0015FAE8  48 06 32 95 */	bl _savegpr_24
/* 80163E8C 0015FAEC  3B 40 00 00 */	li r26, 0
/* 80163E90 0015FAF0  48 0F A1 41 */	bl func_8025DFD0
/* 80163E94 0015FAF4  48 0F A4 25 */	bl func_8025E2B8
/* 80163E98 0015FAF8  2C 03 00 00 */	cmpwi r3, 0
/* 80163E9C 0015FAFC  7C 79 1B 78 */	mr r25, r3
/* 80163EA0 0015FB00  41 82 01 D4 */	beq lbl_80164074
/* 80163EA4 0015FB04  81 83 00 00 */	lwz r12, 0(r3)
/* 80163EA8 0015FB08  81 8C 00 4C */	lwz r12, 0x4c(r12)
/* 80163EAC 0015FB0C  7D 89 03 A6 */	mtctr r12
/* 80163EB0 0015FB10  4E 80 04 21 */	bctrl
/* 80163EB4 0015FB14  80 0D 9D C8 */	lwz r0, lbl_8063F088-_SDA_BASE_(r13)
/* 80163EB8 0015FB18  7C 00 18 40 */	cmplw r0, r3
/* 80163EBC 0015FB1C  40 82 00 0C */	bne lbl_80163EC8
/* 80163EC0 0015FB20  3B 60 00 00 */	li r27, 0
/* 80163EC4 0015FB24  48 00 00 20 */	b lbl_80163EE4
lbl_80163EC8:
/* 80163EC8 0015FB28  81 99 00 00 */	lwz r12, 0(r25)
/* 80163ECC 0015FB2C  7F 23 CB 78 */	mr r3, r25
/* 80163ED0 0015FB30  81 8C 00 4C */	lwz r12, 0x4c(r12)
/* 80163ED4 0015FB34  7D 89 03 A6 */	mtctr r12
/* 80163ED8 0015FB38  4E 80 04 21 */	bctrl
/* 80163EDC 0015FB3C  90 6D 9D C8 */	stw r3, lbl_8063F088-_SDA_BASE_(r13)
/* 80163EE0 0015FB40  3B 60 00 01 */	li r27, 1
lbl_80163EE4:
/* 80163EE4 0015FB44  4B FF EC 8D */	bl func_80162B70
/* 80163EE8 0015FB48  2C 03 00 05 */	cmpwi r3, 5
/* 80163EEC 0015FB4C  41 82 00 08 */	beq lbl_80163EF4
/* 80163EF0 0015FB50  48 00 00 0C */	b lbl_80163EFC
lbl_80163EF4:
/* 80163EF4 0015FB54  7F 63 DB 78 */	mr r3, r27
/* 80163EF8 0015FB58  4B FF FD 7D */	bl func_80163C74
lbl_80163EFC:
/* 80163EFC 0015FB5C  4B FF EC 75 */	bl func_80162B70
/* 80163F00 0015FB60  2C 03 00 00 */	cmpwi r3, 0
/* 80163F04 0015FB64  40 82 00 0C */	bne lbl_80163F10
/* 80163F08 0015FB68  3B 40 00 01 */	li r26, 1
/* 80163F0C 0015FB6C  48 00 00 0C */	b lbl_80163F18
lbl_80163F10:
/* 80163F10 0015FB70  2C 1B 00 00 */	cmpwi r27, 0
/* 80163F14 0015FB74  41 82 01 60 */	beq lbl_80164074
lbl_80163F18:
/* 80163F18 0015FB78  3F 80 80 49 */	lis r28, lbl_804895E0@ha
/* 80163F1C 0015FB7C  3F 60 80 49 */	lis r27, lbl_80489604@ha
/* 80163F20 0015FB80  3B 9C 95 E0 */	addi r28, r28, lbl_804895E0@l
/* 80163F24 0015FB84  3B 00 00 00 */	li r24, 0
/* 80163F28 0015FB88  3B 7B 96 04 */	addi r27, r27, lbl_80489604@l
/* 80163F2C 0015FB8C  3B A0 00 01 */	li r29, 1
/* 80163F30 0015FB90  3B C0 00 00 */	li r30, 0
lbl_80163F34:
/* 80163F34 0015FB94  81 99 00 00 */	lwz r12, 0(r25)
/* 80163F38 0015FB98  7F 23 CB 78 */	mr r3, r25
/* 80163F3C 0015FB9C  81 8C 00 50 */	lwz r12, 0x50(r12)
/* 80163F40 0015FBA0  7D 89 03 A6 */	mtctr r12
/* 80163F44 0015FBA4  4E 80 04 21 */	bctrl
/* 80163F48 0015FBA8  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80163F4C 0015FBAC  7C 18 00 00 */	cmpw r24, r0
/* 80163F50 0015FBB0  41 82 01 10 */	beq lbl_80164060
/* 80163F54 0015FBB4  2C 1A 00 00 */	cmpwi r26, 0
/* 80163F58 0015FBB8  40 82 00 CC */	bne lbl_80164024
/* 80163F5C 0015FBBC  81 99 00 00 */	lwz r12, 0(r25)
/* 80163F60 0015FBC0  7F 23 CB 78 */	mr r3, r25
/* 80163F64 0015FBC4  57 04 04 3E */	clrlwi r4, r24, 0x10
/* 80163F68 0015FBC8  81 8C 00 58 */	lwz r12, 0x58(r12)
/* 80163F6C 0015FBCC  7D 89 03 A6 */	mtctr r12
/* 80163F70 0015FBD0  4E 80 04 21 */	bctrl
/* 80163F74 0015FBD4  2C 03 00 00 */	cmpwi r3, 0
/* 80163F78 0015FBD8  41 82 00 AC */	beq lbl_80164024
/* 80163F7C 0015FBDC  A0 1C 00 00 */	lhz r0, 0(r28)
/* 80163F80 0015FBE0  2C 00 00 00 */	cmpwi r0, 0
/* 80163F84 0015FBE4  40 82 00 DC */	bne lbl_80164060
/* 80163F88 0015FBE8  7F 23 CB 78 */	mr r3, r25
/* 80163F8C 0015FBEC  57 04 04 3E */	clrlwi r4, r24, 0x10
/* 80163F90 0015FBF0  38 A0 00 00 */	li r5, 0
/* 80163F94 0015FBF4  48 0F A9 45 */	bl func_8025E8D8
/* 80163F98 0015FBF8  B3 BC 00 00 */	sth r29, 0(r28)
/* 80163F9C 0015FBFC  7F 23 CB 78 */	mr r3, r25
/* 80163FA0 0015FC00  57 04 04 3E */	clrlwi r4, r24, 0x10
/* 80163FA4 0015FC04  38 A1 00 08 */	addi r5, r1, 8
/* 80163FA8 0015FC08  9B C1 00 08 */	stb r30, 8(r1)
/* 80163FAC 0015FC0C  9B C1 00 09 */	stb r30, 9(r1)
/* 80163FB0 0015FC10  9B C1 00 0A */	stb r30, 0xa(r1)
/* 80163FB4 0015FC14  9B C1 00 0B */	stb r30, 0xb(r1)
/* 80163FB8 0015FC18  9B C1 00 0C */	stb r30, 0xc(r1)
/* 80163FBC 0015FC1C  9B C1 00 0D */	stb r30, 0xd(r1)
/* 80163FC0 0015FC20  81 99 00 00 */	lwz r12, 0(r25)
/* 80163FC4 0015FC24  81 8C 00 2C */	lwz r12, 0x2c(r12)
/* 80163FC8 0015FC28  7D 89 03 A6 */	mtctr r12
/* 80163FCC 0015FC2C  4E 80 04 21 */	bctrl
/* 80163FD0 0015FC30  57 03 04 3E */	clrlwi r3, r24, 0x10
/* 80163FD4 0015FC34  38 81 00 08 */	addi r4, r1, 8
/* 80163FD8 0015FC38  4B FF F9 C9 */	bl func_801639A0
/* 80163FDC 0015FC3C  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 80163FE0 0015FC40  7C 7F 1B 78 */	mr r31, r3
/* 80163FE4 0015FC44  28 00 FF FF */	cmplwi r0, 0xffff
/* 80163FE8 0015FC48  40 82 00 1C */	bne lbl_80164004
/* 80163FEC 0015FC4C  81 99 00 00 */	lwz r12, 0(r25)
/* 80163FF0 0015FC50  7F 23 CB 78 */	mr r3, r25
/* 80163FF4 0015FC54  57 04 04 3E */	clrlwi r4, r24, 0x10
/* 80163FF8 0015FC58  81 8C 00 60 */	lwz r12, 0x60(r12)
/* 80163FFC 0015FC5C  7D 89 03 A6 */	mtctr r12
/* 80164000 0015FC60  4E 80 04 21 */	bctrl
lbl_80164004:
/* 80164004 0015FC64  B3 FC 00 02 */	sth r31, 2(r28)
/* 80164008 0015FC68  80 7B 00 00 */	lwz r3, 0(r27)
/* 8016400C 0015FC6C  48 00 19 55 */	bl func_80165960
/* 80164010 0015FC70  80 7B 00 00 */	lwz r3, 0(r27)
/* 80164014 0015FC74  57 04 04 3E */	clrlwi r4, r24, 0x10
/* 80164018 0015FC78  48 00 1A 5D */	bl func_80165A74
/* 8016401C 0015FC7C  4B FF FB F5 */	bl func_80163C10
/* 80164020 0015FC80  48 00 00 40 */	b lbl_80164060
lbl_80164024:
/* 80164024 0015FC84  A0 1C 00 00 */	lhz r0, 0(r28)
/* 80164028 0015FC88  2C 00 00 00 */	cmpwi r0, 0
/* 8016402C 0015FC8C  41 82 00 34 */	beq lbl_80164060
/* 80164030 0015FC90  B3 DC 00 00 */	sth r30, 0(r28)
/* 80164034 0015FC94  A0 7C 00 02 */	lhz r3, 2(r28)
/* 80164038 0015FC98  4B FF FA 6D */	bl func_80163AA4
/* 8016403C 0015FC9C  80 7B 00 00 */	lwz r3, 0(r27)
/* 80164040 0015FCA0  48 00 1A E5 */	bl func_80165B24
/* 80164044 0015FCA4  80 7B 00 00 */	lwz r3, 0(r27)
/* 80164048 0015FCA8  48 00 19 19 */	bl func_80165960
/* 8016404C 0015FCAC  7F 83 E3 78 */	mr r3, r28
/* 80164050 0015FCB0  38 80 00 00 */	li r4, 0
/* 80164054 0015FCB4  38 A0 00 04 */	li r5, 4
/* 80164058 0015FCB8  4B EA 00 AD */	bl memset
/* 8016405C 0015FCBC  4B FF FB B5 */	bl func_80163C10
lbl_80164060:
/* 80164060 0015FCC0  3B 18 00 01 */	addi r24, r24, 1
/* 80164064 0015FCC4  3B 7B 00 04 */	addi r27, r27, 4
/* 80164068 0015FCC8  2C 18 00 09 */	cmpwi r24, 9
/* 8016406C 0015FCCC  3B 9C 00 04 */	addi r28, r28, 4
/* 80164070 0015FCD0  41 80 FE C4 */	blt lbl_80163F34
lbl_80164074:
/* 80164074 0015FCD4  39 61 00 30 */	addi r11, r1, 0x30
/* 80164078 0015FCD8  48 06 30 F1 */	bl _restgpr_24
/* 8016407C 0015FCDC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80164080 0015FCE0  7C 08 03 A6 */	mtlr r0
/* 80164084 0015FCE4  38 21 00 30 */	addi r1, r1, 0x30
/* 80164088 0015FCE8  4E 80 00 20 */	blr

.global func_8016408C
func_8016408C:
/* 8016408C 0015FCEC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80164090 0015FCF0  7C 08 02 A6 */	mflr r0
/* 80164094 0015FCF4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80164098 0015FCF8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8016409C 0015FCFC  3F E0 80 49 */	lis r31, lbl_804895E0@ha
/* 801640A0 0015FD00  3B FF 95 E0 */	addi r31, r31, lbl_804895E0@l
/* 801640A4 0015FD04  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801640A8 0015FD08  3F C0 80 49 */	lis r30, lbl_80489604@ha
/* 801640AC 0015FD0C  3B DE 96 04 */	addi r30, r30, lbl_80489604@l
/* 801640B0 0015FD10  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801640B4 0015FD14  3B A0 00 00 */	li r29, 0
lbl_801640B8:
/* 801640B8 0015FD18  A0 1F 00 00 */	lhz r0, 0(r31)
/* 801640BC 0015FD1C  2C 00 00 00 */	cmpwi r0, 0
/* 801640C0 0015FD20  41 82 00 0C */	beq lbl_801640CC
/* 801640C4 0015FD24  80 7E 00 00 */	lwz r3, 0(r30)
/* 801640C8 0015FD28  48 00 20 11 */	bl func_801660D8
lbl_801640CC:
/* 801640CC 0015FD2C  3B BD 00 01 */	addi r29, r29, 1
/* 801640D0 0015FD30  3B DE 00 04 */	addi r30, r30, 4
/* 801640D4 0015FD34  2C 1D 00 09 */	cmpwi r29, 9
/* 801640D8 0015FD38  3B FF 00 04 */	addi r31, r31, 4
/* 801640DC 0015FD3C  41 80 FF DC */	blt lbl_801640B8
/* 801640E0 0015FD40  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801640E4 0015FD44  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801640E8 0015FD48  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801640EC 0015FD4C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801640F0 0015FD50  7C 08 03 A6 */	mtlr r0
/* 801640F4 0015FD54  38 21 00 20 */	addi r1, r1, 0x20
/* 801640F8 0015FD58  4E 80 00 20 */	blr

.global func_801640FC
func_801640FC:
/* 801640FC 0015FD5C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80164100 0015FD60  7C 08 02 A6 */	mflr r0
/* 80164104 0015FD64  3D 00 80 49 */	lis r8, lbl_80489628@ha
/* 80164108 0015FD68  90 01 00 24 */	stw r0, 0x24(r1)
/* 8016410C 0015FD6C  38 00 00 80 */	li r0, 0x80
/* 80164110 0015FD70  39 08 96 28 */	addi r8, r8, lbl_80489628@l
/* 80164114 0015FD74  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80164118 0015FD78  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8016411C 0015FD7C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80164120 0015FD80  7C FD 3B 78 */	mr r29, r7
/* 80164124 0015FD84  38 E0 00 00 */	li r7, 0
/* 80164128 0015FD88  93 81 00 10 */	stw r28, 0x10(r1)
/* 8016412C 0015FD8C  7C DC 33 78 */	mr r28, r6
/* 80164130 0015FD90  7C 09 03 A6 */	mtctr r0
lbl_80164134:
/* 80164134 0015FD94  A0 08 00 02 */	lhz r0, 2(r8)
/* 80164138 0015FD98  38 C0 00 00 */	li r6, 0
/* 8016413C 0015FD9C  2C 00 00 00 */	cmpwi r0, 0
/* 80164140 0015FDA0  40 82 00 14 */	bne lbl_80164154
/* 80164144 0015FDA4  80 08 00 08 */	lwz r0, 8(r8)
/* 80164148 0015FDA8  2C 00 00 00 */	cmpwi r0, 0
/* 8016414C 0015FDAC  40 82 00 08 */	bne lbl_80164154
/* 80164150 0015FDB0  38 C0 00 01 */	li r6, 1
lbl_80164154:
/* 80164154 0015FDB4  2C 06 00 00 */	cmpwi r6, 0
/* 80164158 0015FDB8  41 82 00 3C */	beq lbl_80164194
/* 8016415C 0015FDBC  1F C7 00 50 */	mulli r30, r7, 0x50
/* 80164160 0015FDC0  3F E0 80 49 */	lis r31, lbl_80489628@ha
/* 80164164 0015FDC4  3B FF 96 28 */	addi r31, r31, lbl_80489628@l
/* 80164168 0015FDC8  7C 7F F3 2E */	sthx r3, r31, r30
/* 8016416C 0015FDCC  7C DF F2 14 */	add r6, r31, r30
/* 80164170 0015FDD0  38 66 00 0C */	addi r3, r6, 0xc
/* 80164174 0015FDD4  B0 86 00 02 */	sth r4, 2(r6)
/* 80164178 0015FDD8  7C A4 2B 78 */	mr r4, r5
/* 8016417C 0015FDDC  48 06 A1 55 */	bl strcpy
/* 80164180 0015FDE0  7C 9F F2 14 */	add r4, r31, r30
/* 80164184 0015FDE4  38 60 00 00 */	li r3, 0
/* 80164188 0015FDE8  93 84 00 08 */	stw r28, 8(r4)
/* 8016418C 0015FDEC  93 A4 00 04 */	stw r29, 4(r4)
/* 80164190 0015FDF0  48 00 00 14 */	b lbl_801641A4
lbl_80164194:
/* 80164194 0015FDF4  39 08 00 50 */	addi r8, r8, 0x50
/* 80164198 0015FDF8  38 E7 00 01 */	addi r7, r7, 1
/* 8016419C 0015FDFC  42 00 FF 98 */	bdnz lbl_80164134
/* 801641A0 0015FE00  38 60 FF FF */	li r3, -1
lbl_801641A4:
/* 801641A4 0015FE04  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801641A8 0015FE08  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801641AC 0015FE0C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801641B0 0015FE10  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801641B4 0015FE14  83 81 00 10 */	lwz r28, 0x10(r1)
/* 801641B8 0015FE18  7C 08 03 A6 */	mtlr r0
/* 801641BC 0015FE1C  38 21 00 20 */	addi r1, r1, 0x20
/* 801641C0 0015FE20  4E 80 00 20 */	blr

.global func_801641C4
func_801641C4:
/* 801641C4 0015FE24  3C A0 80 49 */	lis r5, lbl_80489628@ha
/* 801641C8 0015FE28  38 00 00 20 */	li r0, 0x20
/* 801641CC 0015FE2C  38 A5 96 28 */	addi r5, r5, lbl_80489628@l
/* 801641D0 0015FE30  38 60 00 00 */	li r3, 0
/* 801641D4 0015FE34  38 C0 00 00 */	li r6, 0
/* 801641D8 0015FE38  7C 09 03 A6 */	mtctr r0
lbl_801641DC:
/* 801641DC 0015FE3C  A0 05 00 02 */	lhz r0, 2(r5)
/* 801641E0 0015FE40  38 80 00 00 */	li r4, 0
/* 801641E4 0015FE44  2C 00 00 00 */	cmpwi r0, 0
/* 801641E8 0015FE48  40 82 00 14 */	bne lbl_801641FC
/* 801641EC 0015FE4C  80 05 00 08 */	lwz r0, 8(r5)
/* 801641F0 0015FE50  2C 00 00 00 */	cmpwi r0, 0
/* 801641F4 0015FE54  40 82 00 08 */	bne lbl_801641FC
/* 801641F8 0015FE58  38 80 00 01 */	li r4, 1
lbl_801641FC:
/* 801641FC 0015FE5C  2C 04 00 00 */	cmpwi r4, 0
/* 80164200 0015FE60  40 82 00 08 */	bne lbl_80164208
/* 80164204 0015FE64  38 63 00 01 */	addi r3, r3, 1
lbl_80164208:
/* 80164208 0015FE68  A0 05 00 52 */	lhz r0, 0x52(r5)
/* 8016420C 0015FE6C  38 80 00 00 */	li r4, 0
/* 80164210 0015FE70  2C 00 00 00 */	cmpwi r0, 0
/* 80164214 0015FE74  40 82 00 14 */	bne lbl_80164228
/* 80164218 0015FE78  80 05 00 58 */	lwz r0, 0x58(r5)
/* 8016421C 0015FE7C  2C 00 00 00 */	cmpwi r0, 0
/* 80164220 0015FE80  40 82 00 08 */	bne lbl_80164228
/* 80164224 0015FE84  38 80 00 01 */	li r4, 1
lbl_80164228:
/* 80164228 0015FE88  2C 04 00 00 */	cmpwi r4, 0
/* 8016422C 0015FE8C  40 82 00 08 */	bne lbl_80164234
/* 80164230 0015FE90  38 63 00 01 */	addi r3, r3, 1
lbl_80164234:
/* 80164234 0015FE94  A0 05 00 A2 */	lhz r0, 0xa2(r5)
/* 80164238 0015FE98  38 80 00 00 */	li r4, 0
/* 8016423C 0015FE9C  2C 00 00 00 */	cmpwi r0, 0
/* 80164240 0015FEA0  40 82 00 14 */	bne lbl_80164254
/* 80164244 0015FEA4  80 05 00 A8 */	lwz r0, 0xa8(r5)
/* 80164248 0015FEA8  2C 00 00 00 */	cmpwi r0, 0
/* 8016424C 0015FEAC  40 82 00 08 */	bne lbl_80164254
/* 80164250 0015FEB0  38 80 00 01 */	li r4, 1
lbl_80164254:
/* 80164254 0015FEB4  2C 04 00 00 */	cmpwi r4, 0
/* 80164258 0015FEB8  40 82 00 08 */	bne lbl_80164260
/* 8016425C 0015FEBC  38 63 00 01 */	addi r3, r3, 1
lbl_80164260:
/* 80164260 0015FEC0  A0 05 00 F2 */	lhz r0, 0xf2(r5)
/* 80164264 0015FEC4  38 80 00 00 */	li r4, 0
/* 80164268 0015FEC8  2C 00 00 00 */	cmpwi r0, 0
/* 8016426C 0015FECC  40 82 00 14 */	bne lbl_80164280
/* 80164270 0015FED0  80 05 00 F8 */	lwz r0, 0xf8(r5)
/* 80164274 0015FED4  2C 00 00 00 */	cmpwi r0, 0
/* 80164278 0015FED8  40 82 00 08 */	bne lbl_80164280
/* 8016427C 0015FEDC  38 80 00 01 */	li r4, 1
lbl_80164280:
/* 80164280 0015FEE0  2C 04 00 00 */	cmpwi r4, 0
/* 80164284 0015FEE4  40 82 00 08 */	bne lbl_8016428C
/* 80164288 0015FEE8  38 63 00 01 */	addi r3, r3, 1
lbl_8016428C:
/* 8016428C 0015FEEC  38 A5 01 40 */	addi r5, r5, 0x140
/* 80164290 0015FEF0  38 C6 00 03 */	addi r6, r6, 3
/* 80164294 0015FEF4  42 00 FF 48 */	bdnz lbl_801641DC
/* 80164298 0015FEF8  4E 80 00 20 */	blr

.global func_8016429C
func_8016429C:
/* 8016429C 0015FEFC  3C 80 80 49 */	lis r4, lbl_80489628@ha
/* 801642A0 0015FF00  38 00 00 10 */	li r0, 0x10
/* 801642A4 0015FF04  38 84 96 28 */	addi r4, r4, lbl_80489628@l
/* 801642A8 0015FF08  38 A0 00 00 */	li r5, 0
/* 801642AC 0015FF0C  7C 09 03 A6 */	mtctr r0
lbl_801642B0:
/* 801642B0 0015FF10  A0 04 00 02 */	lhz r0, 2(r4)
/* 801642B4 0015FF14  2C 00 00 00 */	cmpwi r0, 0
/* 801642B8 0015FF18  41 82 00 18 */	beq lbl_801642D0
/* 801642BC 0015FF1C  A0 04 00 00 */	lhz r0, 0(r4)
/* 801642C0 0015FF20  7C 03 00 40 */	cmplw r3, r0
/* 801642C4 0015FF24  40 82 00 0C */	bne lbl_801642D0
/* 801642C8 0015FF28  38 60 00 01 */	li r3, 1
/* 801642CC 0015FF2C  4E 80 00 20 */	blr
lbl_801642D0:
/* 801642D0 0015FF30  A0 04 00 52 */	lhz r0, 0x52(r4)
/* 801642D4 0015FF34  2C 00 00 00 */	cmpwi r0, 0
/* 801642D8 0015FF38  41 82 00 18 */	beq lbl_801642F0
/* 801642DC 0015FF3C  A0 04 00 50 */	lhz r0, 0x50(r4)
/* 801642E0 0015FF40  7C 03 00 40 */	cmplw r3, r0
/* 801642E4 0015FF44  40 82 00 0C */	bne lbl_801642F0
/* 801642E8 0015FF48  38 60 00 01 */	li r3, 1
/* 801642EC 0015FF4C  4E 80 00 20 */	blr
lbl_801642F0:
/* 801642F0 0015FF50  A0 04 00 A2 */	lhz r0, 0xa2(r4)
/* 801642F4 0015FF54  2C 00 00 00 */	cmpwi r0, 0
/* 801642F8 0015FF58  41 82 00 18 */	beq lbl_80164310
/* 801642FC 0015FF5C  A0 04 00 A0 */	lhz r0, 0xa0(r4)
/* 80164300 0015FF60  7C 03 00 40 */	cmplw r3, r0
/* 80164304 0015FF64  40 82 00 0C */	bne lbl_80164310
/* 80164308 0015FF68  38 60 00 01 */	li r3, 1
/* 8016430C 0015FF6C  4E 80 00 20 */	blr
lbl_80164310:
/* 80164310 0015FF70  A0 04 00 F2 */	lhz r0, 0xf2(r4)
/* 80164314 0015FF74  2C 00 00 00 */	cmpwi r0, 0
/* 80164318 0015FF78  41 82 00 18 */	beq lbl_80164330
/* 8016431C 0015FF7C  A0 04 00 F0 */	lhz r0, 0xf0(r4)
/* 80164320 0015FF80  7C 03 00 40 */	cmplw r3, r0
/* 80164324 0015FF84  40 82 00 0C */	bne lbl_80164330
/* 80164328 0015FF88  38 60 00 01 */	li r3, 1
/* 8016432C 0015FF8C  4E 80 00 20 */	blr
lbl_80164330:
/* 80164330 0015FF90  A0 04 01 42 */	lhz r0, 0x142(r4)
/* 80164334 0015FF94  2C 00 00 00 */	cmpwi r0, 0
/* 80164338 0015FF98  41 82 00 18 */	beq lbl_80164350
/* 8016433C 0015FF9C  A0 04 01 40 */	lhz r0, 0x140(r4)
/* 80164340 0015FFA0  7C 03 00 40 */	cmplw r3, r0
/* 80164344 0015FFA4  40 82 00 0C */	bne lbl_80164350
/* 80164348 0015FFA8  38 60 00 01 */	li r3, 1
/* 8016434C 0015FFAC  4E 80 00 20 */	blr
lbl_80164350:
/* 80164350 0015FFB0  A0 04 01 92 */	lhz r0, 0x192(r4)
/* 80164354 0015FFB4  2C 00 00 00 */	cmpwi r0, 0
/* 80164358 0015FFB8  41 82 00 18 */	beq lbl_80164370
/* 8016435C 0015FFBC  A0 04 01 90 */	lhz r0, 0x190(r4)
/* 80164360 0015FFC0  7C 03 00 40 */	cmplw r3, r0
/* 80164364 0015FFC4  40 82 00 0C */	bne lbl_80164370
/* 80164368 0015FFC8  38 60 00 01 */	li r3, 1
/* 8016436C 0015FFCC  4E 80 00 20 */	blr
lbl_80164370:
/* 80164370 0015FFD0  A0 04 01 E2 */	lhz r0, 0x1e2(r4)
/* 80164374 0015FFD4  2C 00 00 00 */	cmpwi r0, 0
/* 80164378 0015FFD8  41 82 00 18 */	beq lbl_80164390
/* 8016437C 0015FFDC  A0 04 01 E0 */	lhz r0, 0x1e0(r4)
/* 80164380 0015FFE0  7C 03 00 40 */	cmplw r3, r0
/* 80164384 0015FFE4  40 82 00 0C */	bne lbl_80164390
/* 80164388 0015FFE8  38 60 00 01 */	li r3, 1
/* 8016438C 0015FFEC  4E 80 00 20 */	blr
lbl_80164390:
/* 80164390 0015FFF0  A0 04 02 32 */	lhz r0, 0x232(r4)
/* 80164394 0015FFF4  2C 00 00 00 */	cmpwi r0, 0
/* 80164398 0015FFF8  41 82 00 18 */	beq lbl_801643B0
/* 8016439C 0015FFFC  A0 04 02 30 */	lhz r0, 0x230(r4)
/* 801643A0 00160000  7C 03 00 40 */	cmplw r3, r0
/* 801643A4 00160004  40 82 00 0C */	bne lbl_801643B0
/* 801643A8 00160008  38 60 00 01 */	li r3, 1
/* 801643AC 0016000C  4E 80 00 20 */	blr
lbl_801643B0:
/* 801643B0 00160010  38 84 02 80 */	addi r4, r4, 0x280
/* 801643B4 00160014  38 A5 00 07 */	addi r5, r5, 7
/* 801643B8 00160018  42 00 FE F8 */	bdnz lbl_801642B0
/* 801643BC 0016001C  38 60 00 00 */	li r3, 0
/* 801643C0 00160020  4E 80 00 20 */	blr

.global func_801643C4
func_801643C4:
/* 801643C4 00160024  3C 80 80 49 */	lis r4, lbl_80489628@ha
/* 801643C8 00160028  38 00 00 10 */	li r0, 0x10
/* 801643CC 0016002C  38 84 96 28 */	addi r4, r4, lbl_80489628@l
/* 801643D0 00160030  38 A0 00 00 */	li r5, 0
/* 801643D4 00160034  7C 09 03 A6 */	mtctr r0
lbl_801643D8:
/* 801643D8 00160038  80 04 00 08 */	lwz r0, 8(r4)
/* 801643DC 0016003C  2C 00 00 00 */	cmpwi r0, 0
/* 801643E0 00160040  41 82 00 18 */	beq lbl_801643F8
/* 801643E4 00160044  A0 04 00 00 */	lhz r0, 0(r4)
/* 801643E8 00160048  7C 03 00 40 */	cmplw r3, r0
/* 801643EC 0016004C  40 82 00 0C */	bne lbl_801643F8
/* 801643F0 00160050  38 60 00 01 */	li r3, 1
/* 801643F4 00160054  4E 80 00 20 */	blr
lbl_801643F8:
/* 801643F8 00160058  80 04 00 58 */	lwz r0, 0x58(r4)
/* 801643FC 0016005C  2C 00 00 00 */	cmpwi r0, 0
/* 80164400 00160060  41 82 00 18 */	beq lbl_80164418
/* 80164404 00160064  A0 04 00 50 */	lhz r0, 0x50(r4)
/* 80164408 00160068  7C 03 00 40 */	cmplw r3, r0
/* 8016440C 0016006C  40 82 00 0C */	bne lbl_80164418
/* 80164410 00160070  38 60 00 01 */	li r3, 1
/* 80164414 00160074  4E 80 00 20 */	blr
lbl_80164418:
/* 80164418 00160078  80 04 00 A8 */	lwz r0, 0xa8(r4)
/* 8016441C 0016007C  2C 00 00 00 */	cmpwi r0, 0
/* 80164420 00160080  41 82 00 18 */	beq lbl_80164438
/* 80164424 00160084  A0 04 00 A0 */	lhz r0, 0xa0(r4)
/* 80164428 00160088  7C 03 00 40 */	cmplw r3, r0
/* 8016442C 0016008C  40 82 00 0C */	bne lbl_80164438
/* 80164430 00160090  38 60 00 01 */	li r3, 1
/* 80164434 00160094  4E 80 00 20 */	blr
lbl_80164438:
/* 80164438 00160098  80 04 00 F8 */	lwz r0, 0xf8(r4)
/* 8016443C 0016009C  2C 00 00 00 */	cmpwi r0, 0
/* 80164440 001600A0  41 82 00 18 */	beq lbl_80164458
/* 80164444 001600A4  A0 04 00 F0 */	lhz r0, 0xf0(r4)
/* 80164448 001600A8  7C 03 00 40 */	cmplw r3, r0
/* 8016444C 001600AC  40 82 00 0C */	bne lbl_80164458
/* 80164450 001600B0  38 60 00 01 */	li r3, 1
/* 80164454 001600B4  4E 80 00 20 */	blr
lbl_80164458:
/* 80164458 001600B8  80 04 01 48 */	lwz r0, 0x148(r4)
/* 8016445C 001600BC  2C 00 00 00 */	cmpwi r0, 0
/* 80164460 001600C0  41 82 00 18 */	beq lbl_80164478
/* 80164464 001600C4  A0 04 01 40 */	lhz r0, 0x140(r4)
/* 80164468 001600C8  7C 03 00 40 */	cmplw r3, r0
/* 8016446C 001600CC  40 82 00 0C */	bne lbl_80164478
/* 80164470 001600D0  38 60 00 01 */	li r3, 1
/* 80164474 001600D4  4E 80 00 20 */	blr
lbl_80164478:
/* 80164478 001600D8  80 04 01 98 */	lwz r0, 0x198(r4)
/* 8016447C 001600DC  2C 00 00 00 */	cmpwi r0, 0
/* 80164480 001600E0  41 82 00 18 */	beq lbl_80164498
/* 80164484 001600E4  A0 04 01 90 */	lhz r0, 0x190(r4)
/* 80164488 001600E8  7C 03 00 40 */	cmplw r3, r0
/* 8016448C 001600EC  40 82 00 0C */	bne lbl_80164498
/* 80164490 001600F0  38 60 00 01 */	li r3, 1
/* 80164494 001600F4  4E 80 00 20 */	blr
lbl_80164498:
/* 80164498 001600F8  80 04 01 E8 */	lwz r0, 0x1e8(r4)
/* 8016449C 001600FC  2C 00 00 00 */	cmpwi r0, 0
/* 801644A0 00160100  41 82 00 18 */	beq lbl_801644B8
/* 801644A4 00160104  A0 04 01 E0 */	lhz r0, 0x1e0(r4)
/* 801644A8 00160108  7C 03 00 40 */	cmplw r3, r0
/* 801644AC 0016010C  40 82 00 0C */	bne lbl_801644B8
/* 801644B0 00160110  38 60 00 01 */	li r3, 1
/* 801644B4 00160114  4E 80 00 20 */	blr
lbl_801644B8:
/* 801644B8 00160118  80 04 02 38 */	lwz r0, 0x238(r4)
/* 801644BC 0016011C  2C 00 00 00 */	cmpwi r0, 0
/* 801644C0 00160120  41 82 00 18 */	beq lbl_801644D8
/* 801644C4 00160124  A0 04 02 30 */	lhz r0, 0x230(r4)
/* 801644C8 00160128  7C 03 00 40 */	cmplw r3, r0
/* 801644CC 0016012C  40 82 00 0C */	bne lbl_801644D8
/* 801644D0 00160130  38 60 00 01 */	li r3, 1
/* 801644D4 00160134  4E 80 00 20 */	blr
lbl_801644D8:
/* 801644D8 00160138  38 84 02 80 */	addi r4, r4, 0x280
/* 801644DC 0016013C  38 A5 00 07 */	addi r5, r5, 7
/* 801644E0 00160140  42 00 FE F8 */	bdnz lbl_801643D8
/* 801644E4 00160144  38 60 00 00 */	li r3, 0
/* 801644E8 00160148  4E 80 00 20 */	blr

.global func_801644EC
func_801644EC:
/* 801644EC 0016014C  80 6D 83 30 */	lwz r3, lbl_8063D5F0-_SDA_BASE_(r13)
/* 801644F0 00160150  34 03 FF FF */	addic. r0, r3, -1
/* 801644F4 00160154  90 0D 83 30 */	stw r0, lbl_8063D5F0-_SDA_BASE_(r13)
/* 801644F8 00160158  4D 81 00 20 */	bgtlr
/* 801644FC 0016015C  38 00 00 04 */	li r0, 4
/* 80164500 00160160  90 0D 83 30 */	stw r0, lbl_8063D5F0-_SDA_BASE_(r13)
/* 80164504 00160164  48 00 00 14 */	b lbl_80164518
/* 80164508 00160168  4E 80 00 20 */	blr

.global func_8016450C
func_8016450C:
/* 8016450C 0016016C  38 00 00 00 */	li r0, 0
/* 80164510 00160170  90 0D 83 30 */	stw r0, lbl_8063D5F0-_SDA_BASE_(r13)
/* 80164514 00160174  4E 80 00 20 */	blr
lbl_80164518:
/* 80164518 00160178  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8016451C 0016017C  7C 08 02 A6 */	mflr r0
/* 80164520 00160180  90 01 00 24 */	stw r0, 0x24(r1)
/* 80164524 00160184  39 61 00 20 */	addi r11, r1, 0x20
/* 80164528 00160188  48 06 2C 01 */	bl _savegpr_27
/* 8016452C 0016018C  48 0F 9A A5 */	bl func_8025DFD0
/* 80164530 00160190  48 0F 9D 89 */	bl func_8025E2B8
/* 80164534 00160194  2C 03 00 00 */	cmpwi r3, 0
/* 80164538 00160198  7C 7D 1B 78 */	mr r29, r3
/* 8016453C 0016019C  41 82 01 E8 */	beq lbl_80164724
/* 80164540 001601A0  3F E0 80 49 */	lis r31, lbl_80489628@ha
/* 80164544 001601A4  3B 80 00 00 */	li r28, 0
/* 80164548 001601A8  3B FF 96 28 */	addi r31, r31, lbl_80489628@l
/* 8016454C 001601AC  3B C0 00 00 */	li r30, 0
lbl_80164550:
/* 80164550 001601B0  A0 9F 00 02 */	lhz r4, 2(r31)
/* 80164554 001601B4  2C 04 00 00 */	cmpwi r4, 0
/* 80164558 001601B8  41 82 00 B4 */	beq lbl_8016460C
/* 8016455C 001601BC  7F A3 EB 78 */	mr r3, r29
/* 80164560 001601C0  48 0F C3 6D */	bl func_802608CC
/* 80164564 001601C4  2C 03 00 00 */	cmpwi r3, 0
/* 80164568 001601C8  40 82 00 A4 */	bne lbl_8016460C
/* 8016456C 001601CC  A0 9F 00 02 */	lhz r4, 2(r31)
/* 80164570 001601D0  7F A3 EB 78 */	mr r3, r29
/* 80164574 001601D4  3B 60 00 00 */	li r27, 0
/* 80164578 001601D8  48 0F C3 D9 */	bl func_80260950
/* 8016457C 001601DC  2C 03 00 00 */	cmpwi r3, 0
/* 80164580 001601E0  40 82 00 48 */	bne lbl_801645C8
/* 80164584 001601E4  A0 1F 00 4C */	lhz r0, 0x4c(r31)
/* 80164588 001601E8  2C 00 00 00 */	cmpwi r0, 0
/* 8016458C 001601EC  41 82 00 28 */	beq lbl_801645B4
/* 80164590 001601F0  A0 7F 00 00 */	lhz r3, 0(r31)
/* 80164594 001601F4  48 00 06 99 */	bl func_80164C2C
/* 80164598 001601F8  2C 03 00 00 */	cmpwi r3, 0
/* 8016459C 001601FC  41 82 00 2C */	beq lbl_801645C8
/* 801645A0 00160200  A0 9F 00 02 */	lhz r4, 2(r31)
/* 801645A4 00160204  7F A3 EB 78 */	mr r3, r29
/* 801645A8 00160208  48 0F C2 51 */	bl func_802607F8
/* 801645AC 0016020C  3B 60 00 01 */	li r27, 1
/* 801645B0 00160210  48 00 00 18 */	b lbl_801645C8
lbl_801645B4:
/* 801645B4 00160214  A0 7F 00 00 */	lhz r3, 0(r31)
/* 801645B8 00160218  48 00 06 75 */	bl func_80164C2C
/* 801645BC 0016021C  2C 03 00 00 */	cmpwi r3, 0
/* 801645C0 00160220  41 82 00 08 */	beq lbl_801645C8
/* 801645C4 00160224  48 00 24 DD */	bl func_80166AA0
lbl_801645C8:
/* 801645C8 00160228  2C 1B 00 00 */	cmpwi r27, 0
/* 801645CC 0016022C  40 82 00 3C */	bne lbl_80164608
/* 801645D0 00160230  A0 9F 00 02 */	lhz r4, 2(r31)
/* 801645D4 00160234  7F A3 EB 78 */	mr r3, r29
/* 801645D8 00160238  48 0F C3 E5 */	bl func_802609BC
/* 801645DC 0016023C  48 0F 99 F5 */	bl func_8025DFD0
/* 801645E0 00160240  80 9F 00 08 */	lwz r4, 8(r31)
/* 801645E4 00160244  48 0F 99 E5 */	bl func_8025DFC8
/* 801645E8 00160248  B3 DF 00 00 */	sth r30, 0(r31)
/* 801645EC 0016024C  38 7F 00 0C */	addi r3, r31, 0xc
/* 801645F0 00160250  38 80 00 00 */	li r4, 0
/* 801645F4 00160254  38 A0 00 40 */	li r5, 0x40
/* 801645F8 00160258  B3 DF 00 02 */	sth r30, 2(r31)
/* 801645FC 0016025C  B3 DF 00 4C */	sth r30, 0x4c(r31)
/* 80164600 00160260  93 DF 00 08 */	stw r30, 8(r31)
/* 80164604 00160264  4B E9 FB 01 */	bl memset
lbl_80164608:
/* 80164608 00160268  4B FF FF 05 */	bl func_8016450C
lbl_8016460C:
/* 8016460C 0016026C  3B 9C 00 01 */	addi r28, r28, 1
/* 80164610 00160270  3B FF 00 50 */	addi r31, r31, 0x50
/* 80164614 00160274  2C 1C 00 80 */	cmpwi r28, 0x80
/* 80164618 00160278  41 80 FF 38 */	blt lbl_80164550
/* 8016461C 0016027C  3F C0 80 49 */	lis r30, lbl_80489628@ha
/* 80164620 00160280  3B 60 00 00 */	li r27, 0
/* 80164624 00160284  3B DE 96 28 */	addi r30, r30, lbl_80489628@l
/* 80164628 00160288  3B E0 00 00 */	li r31, 0
lbl_8016462C:
/* 8016462C 0016028C  80 1E 00 08 */	lwz r0, 8(r30)
/* 80164630 00160290  2C 00 00 00 */	cmpwi r0, 0
/* 80164634 00160294  41 82 00 DC */	beq lbl_80164710
/* 80164638 00160298  A0 1E 00 02 */	lhz r0, 2(r30)
/* 8016463C 0016029C  2C 00 00 00 */	cmpwi r0, 0
/* 80164640 001602A0  40 82 00 D0 */	bne lbl_80164710
/* 80164644 001602A4  A0 7E 00 00 */	lhz r3, 0(r30)
/* 80164648 001602A8  4B FF FC 55 */	bl func_8016429C
/* 8016464C 001602AC  2C 03 00 00 */	cmpwi r3, 0
/* 80164650 001602B0  40 82 00 C0 */	bne lbl_80164710
/* 80164654 001602B4  A0 9E 00 00 */	lhz r4, 0(r30)
/* 80164658 001602B8  7F A3 EB 78 */	mr r3, r29
/* 8016465C 001602BC  38 BE 00 0C */	addi r5, r30, 0xc
/* 80164660 001602C0  48 0F C0 19 */	bl func_80260678
/* 80164664 001602C4  2C 03 00 00 */	cmpwi r3, 0
/* 80164668 001602C8  7C 60 1B 78 */	mr r0, r3
/* 8016466C 001602CC  40 80 00 4C */	bge lbl_801646B8
/* 80164670 001602D0  1F BB 00 50 */	mulli r29, r27, 0x50
/* 80164674 001602D4  3F C0 80 49 */	lis r30, lbl_80489628@ha
/* 80164678 001602D8  3B DE 96 28 */	addi r30, r30, lbl_80489628@l
/* 8016467C 001602DC  7F FE EA 14 */	add r31, r30, r29
/* 80164680 001602E0  48 0F 99 51 */	bl func_8025DFD0
/* 80164684 001602E4  80 9F 00 08 */	lwz r4, 8(r31)
/* 80164688 001602E8  48 0F 99 41 */	bl func_8025DFC8
/* 8016468C 001602EC  38 00 00 00 */	li r0, 0
/* 80164690 001602F0  7F E6 FB 78 */	mr r6, r31
/* 80164694 001602F4  B0 1F 00 00 */	sth r0, 0(r31)
/* 80164698 001602F8  38 66 00 0C */	addi r3, r6, 0xc
/* 8016469C 001602FC  38 80 00 00 */	li r4, 0
/* 801646A0 00160300  38 A0 00 40 */	li r5, 0x40
/* 801646A4 00160304  B0 1F 00 02 */	sth r0, 2(r31)
/* 801646A8 00160308  B0 1F 00 4C */	sth r0, 0x4c(r31)
/* 801646AC 0016030C  90 1F 00 08 */	stw r0, 8(r31)
/* 801646B0 00160310  4B E9 FA 55 */	bl memset
/* 801646B4 00160314  48 00 00 C8 */	b lbl_8016477C
lbl_801646B8:
/* 801646B8 00160318  B0 7E 00 02 */	sth r3, 2(r30)
/* 801646BC 0016031C  7F A3 EB 78 */	mr r3, r29
/* 801646C0 00160320  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801646C4 00160324  80 BE 00 08 */	lwz r5, 8(r30)
/* 801646C8 00160328  80 DE 00 04 */	lwz r6, 4(r30)
/* 801646CC 0016032C  48 0F C0 31 */	bl func_802606FC
/* 801646D0 00160330  2C 03 00 00 */	cmpwi r3, 0
/* 801646D4 00160334  41 81 00 3C */	bgt lbl_80164710
/* 801646D8 00160338  A0 9E 00 02 */	lhz r4, 2(r30)
/* 801646DC 0016033C  7F A3 EB 78 */	mr r3, r29
/* 801646E0 00160340  48 0F C2 DD */	bl func_802609BC
/* 801646E4 00160344  48 0F 98 ED */	bl func_8025DFD0
/* 801646E8 00160348  80 9E 00 08 */	lwz r4, 8(r30)
/* 801646EC 0016034C  48 0F 98 DD */	bl func_8025DFC8
/* 801646F0 00160350  B3 FE 00 00 */	sth r31, 0(r30)
/* 801646F4 00160354  38 7E 00 0C */	addi r3, r30, 0xc
/* 801646F8 00160358  38 80 00 00 */	li r4, 0
/* 801646FC 0016035C  38 A0 00 40 */	li r5, 0x40
/* 80164700 00160360  B3 FE 00 02 */	sth r31, 2(r30)
/* 80164704 00160364  B3 FE 00 4C */	sth r31, 0x4c(r30)
/* 80164708 00160368  93 FE 00 08 */	stw r31, 8(r30)
/* 8016470C 0016036C  4B E9 F9 F9 */	bl memset
lbl_80164710:
/* 80164710 00160370  3B 7B 00 01 */	addi r27, r27, 1
/* 80164714 00160374  3B DE 00 50 */	addi r30, r30, 0x50
/* 80164718 00160378  2C 1B 00 80 */	cmpwi r27, 0x80
/* 8016471C 0016037C  41 80 FF 10 */	blt lbl_8016462C
/* 80164720 00160380  48 00 00 5C */	b lbl_8016477C
lbl_80164724:
/* 80164724 00160384  3F C0 80 49 */	lis r30, lbl_80489628@ha
/* 80164728 00160388  3B 60 00 00 */	li r27, 0
/* 8016472C 0016038C  3B DE 96 28 */	addi r30, r30, lbl_80489628@l
/* 80164730 00160390  3B E0 00 00 */	li r31, 0
lbl_80164734:
/* 80164734 00160394  83 BE 00 08 */	lwz r29, 8(r30)
/* 80164738 00160398  2C 1D 00 00 */	cmpwi r29, 0
/* 8016473C 0016039C  41 82 00 30 */	beq lbl_8016476C
/* 80164740 001603A0  48 0F 98 91 */	bl func_8025DFD0
/* 80164744 001603A4  7F A4 EB 78 */	mr r4, r29
/* 80164748 001603A8  48 0F 98 81 */	bl func_8025DFC8
/* 8016474C 001603AC  B3 FE 00 00 */	sth r31, 0(r30)
/* 80164750 001603B0  38 7E 00 0C */	addi r3, r30, 0xc
/* 80164754 001603B4  38 80 00 00 */	li r4, 0
/* 80164758 001603B8  38 A0 00 40 */	li r5, 0x40
/* 8016475C 001603BC  B3 FE 00 02 */	sth r31, 2(r30)
/* 80164760 001603C0  B3 FE 00 4C */	sth r31, 0x4c(r30)
/* 80164764 001603C4  93 FE 00 08 */	stw r31, 8(r30)
/* 80164768 001603C8  4B E9 F9 9D */	bl memset
lbl_8016476C:
/* 8016476C 001603CC  3B 7B 00 01 */	addi r27, r27, 1
/* 80164770 001603D0  3B DE 00 50 */	addi r30, r30, 0x50
/* 80164774 001603D4  2C 1B 00 80 */	cmpwi r27, 0x80
/* 80164778 001603D8  41 80 FF BC */	blt lbl_80164734
lbl_8016477C:
/* 8016477C 001603DC  39 61 00 20 */	addi r11, r1, 0x20
/* 80164780 001603E0  48 06 29 F5 */	bl _restgpr_27
/* 80164784 001603E4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80164788 001603E8  7C 08 03 A6 */	mtlr r0
/* 8016478C 001603EC  38 21 00 20 */	addi r1, r1, 0x20
/* 80164790 001603F0  4E 80 00 20 */	blr

.global func_80164794
func_80164794:
/* 80164794 001603F4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80164798 001603F8  7C 08 02 A6 */	mflr r0
/* 8016479C 001603FC  90 01 00 24 */	stw r0, 0x24(r1)
/* 801647A0 00160400  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801647A4 00160404  7C DF 33 78 */	mr r31, r6
/* 801647A8 00160408  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801647AC 0016040C  7C BE 2B 78 */	mr r30, r5
/* 801647B0 00160410  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801647B4 00160414  7C 9D 23 78 */	mr r29, r4
/* 801647B8 00160418  93 81 00 10 */	stw r28, 0x10(r1)
/* 801647BC 0016041C  7C 7C 1B 78 */	mr r28, r3
/* 801647C0 00160420  4B FF F3 3D */	bl func_80163AFC
/* 801647C4 00160424  2C 03 00 00 */	cmpwi r3, 0
/* 801647C8 00160428  40 80 00 0C */	bge lbl_801647D4
/* 801647CC 0016042C  38 60 FF FE */	li r3, -2
/* 801647D0 00160430  48 00 00 34 */	b lbl_80164804
lbl_801647D4:
/* 801647D4 00160434  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 801647D8 00160438  4B FF FB ED */	bl func_801643C4
/* 801647DC 0016043C  2C 03 00 00 */	cmpwi r3, 0
/* 801647E0 00160440  41 82 00 0C */	beq lbl_801647EC
/* 801647E4 00160444  38 60 FF FB */	li r3, -5
/* 801647E8 00160448  48 00 00 1C */	b lbl_80164804
lbl_801647EC:
/* 801647EC 0016044C  7F 83 E3 78 */	mr r3, r28
/* 801647F0 00160450  7F A4 EB 78 */	mr r4, r29
/* 801647F4 00160454  7F C5 F3 78 */	mr r5, r30
/* 801647F8 00160458  7F E6 FB 78 */	mr r6, r31
/* 801647FC 0016045C  38 E0 00 01 */	li r7, 1
/* 80164800 00160460  48 00 00 2D */	bl func_8016482C
lbl_80164804:
/* 80164804 00160464  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80164808 00160468  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8016480C 0016046C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80164810 00160470  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80164814 00160474  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80164818 00160478  7C 08 03 A6 */	mtlr r0
/* 8016481C 0016047C  38 21 00 20 */	addi r1, r1, 0x20
/* 80164820 00160480  4E 80 00 20 */	blr

.global func_80164824
func_80164824:
/* 80164824 00160484  38 E0 00 00 */	li r7, 0
/* 80164828 00160488  48 00 00 04 */	b func_8016482C

.global func_8016482C
func_8016482C:
/* 8016482C 0016048C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80164830 00160490  7C 08 02 A6 */	mflr r0
/* 80164834 00160494  90 01 00 34 */	stw r0, 0x34(r1)
/* 80164838 00160498  39 61 00 30 */	addi r11, r1, 0x30
/* 8016483C 0016049C  48 06 28 E5 */	bl _savegpr_25
/* 80164840 001604A0  7C 7D 1B 78 */	mr r29, r3
/* 80164844 001604A4  7C 99 23 78 */	mr r25, r4
/* 80164848 001604A8  7C BC 2B 78 */	mr r28, r5
/* 8016484C 001604AC  7C DA 33 78 */	mr r26, r6
/* 80164850 001604B0  7C FB 3B 78 */	mr r27, r7
/* 80164854 001604B4  48 0F 97 7D */	bl func_8025DFD0
/* 80164858 001604B8  48 0F 9A 61 */	bl func_8025E2B8
/* 8016485C 001604BC  2C 03 00 00 */	cmpwi r3, 0
/* 80164860 001604C0  7C 7E 1B 78 */	mr r30, r3
/* 80164864 001604C4  40 82 00 0C */	bne lbl_80164870
/* 80164868 001604C8  38 60 FF FF */	li r3, -1
/* 8016486C 001604CC  48 00 00 EC */	b lbl_80164958
lbl_80164870:
/* 80164870 001604D0  7F A3 EB 78 */	mr r3, r29
/* 80164874 001604D4  4B FF F2 89 */	bl func_80163AFC
/* 80164878 001604D8  2C 03 00 00 */	cmpwi r3, 0
/* 8016487C 001604DC  7C 7F 1B 78 */	mr r31, r3
/* 80164880 001604E0  40 80 00 0C */	bge lbl_8016488C
/* 80164884 001604E4  38 60 FF FE */	li r3, -2
/* 80164888 001604E8  48 00 00 D0 */	b lbl_80164958
lbl_8016488C:
/* 8016488C 001604EC  48 0F 97 45 */	bl func_8025DFD0
/* 80164890 001604F0  7F 44 D3 78 */	mr r4, r26
/* 80164894 001604F4  48 0F 97 2D */	bl func_8025DFC0
/* 80164898 001604F8  2C 03 00 00 */	cmpwi r3, 0
/* 8016489C 001604FC  7C 7D 1B 78 */	mr r29, r3
/* 801648A0 00160500  40 82 00 0C */	bne lbl_801648AC
/* 801648A4 00160504  38 60 FF FD */	li r3, -3
/* 801648A8 00160508  48 00 00 B0 */	b lbl_80164958
lbl_801648AC:
/* 801648AC 0016050C  7F 84 E3 78 */	mr r4, r28
/* 801648B0 00160510  7F 45 D3 78 */	mr r5, r26
/* 801648B4 00160514  4B E9 F7 4D */	bl memcpy
/* 801648B8 00160518  7F C3 F3 78 */	mr r3, r30
/* 801648BC 0016051C  7F 25 CB 78 */	mr r5, r25
/* 801648C0 00160520  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 801648C4 00160524  48 0F BD B5 */	bl func_80260678
/* 801648C8 00160528  2C 03 00 00 */	cmpwi r3, 0
/* 801648CC 0016052C  7C 7C 1B 78 */	mr r28, r3
/* 801648D0 00160530  40 80 00 08 */	bge lbl_801648D8
/* 801648D4 00160534  48 00 00 84 */	b lbl_80164958
lbl_801648D8:
/* 801648D8 00160538  7F 25 CB 78 */	mr r5, r25
/* 801648DC 0016053C  7F A6 EB 78 */	mr r6, r29
/* 801648E0 00160540  7F 47 D3 78 */	mr r7, r26
/* 801648E4 00160544  7F 68 DB 78 */	mr r8, r27
/* 801648E8 00160548  57 E3 04 3E */	clrlwi r3, r31, 0x10
/* 801648EC 0016054C  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 801648F0 00160550  4B FF F8 0D */	bl func_801640FC
/* 801648F4 00160554  2C 03 00 00 */	cmpwi r3, 0
/* 801648F8 00160558  7C 7F 1B 78 */	mr r31, r3
/* 801648FC 0016055C  40 80 00 20 */	bge lbl_8016491C
/* 80164900 00160560  7F C3 F3 78 */	mr r3, r30
/* 80164904 00160564  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80164908 00160568  48 0F C0 B5 */	bl func_802609BC
/* 8016490C 0016056C  48 0F 96 C5 */	bl func_8025DFD0
/* 80164910 00160570  7F A4 EB 78 */	mr r4, r29
/* 80164914 00160574  48 0F 96 B5 */	bl func_8025DFC8
/* 80164918 00160578  48 00 00 38 */	b lbl_80164950
lbl_8016491C:
/* 8016491C 0016057C  7F C3 F3 78 */	mr r3, r30
/* 80164920 00160580  7F A5 EB 78 */	mr r5, r29
/* 80164924 00160584  7F 46 D3 78 */	mr r6, r26
/* 80164928 00160588  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 8016492C 0016058C  48 0F BD D1 */	bl func_802606FC
/* 80164930 00160590  2C 03 00 00 */	cmpwi r3, 0
/* 80164934 00160594  41 81 00 18 */	bgt lbl_8016494C
/* 80164938 00160598  7F C3 F3 78 */	mr r3, r30
/* 8016493C 0016059C  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80164940 001605A0  48 0F C0 7D */	bl func_802609BC
/* 80164944 001605A4  3B E0 FF FF */	li r31, -1
/* 80164948 001605A8  48 00 00 08 */	b lbl_80164950
lbl_8016494C:
/* 8016494C 001605AC  3B E0 00 00 */	li r31, 0
lbl_80164950:
/* 80164950 001605B0  4B FF FB BD */	bl func_8016450C
/* 80164954 001605B4  7F E3 FB 78 */	mr r3, r31
lbl_80164958:
/* 80164958 001605B8  39 61 00 30 */	addi r11, r1, 0x30
/* 8016495C 001605BC  48 06 28 11 */	bl _restgpr_25
/* 80164960 001605C0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80164964 001605C4  7C 08 03 A6 */	mtlr r0
/* 80164968 001605C8  38 21 00 30 */	addi r1, r1, 0x30
/* 8016496C 001605CC  4E 80 00 20 */	blr

.global func_80164970
func_80164970:
/* 80164970 001605D0  38 E0 00 00 */	li r7, 0
/* 80164974 001605D4  48 00 00 04 */	b lbl_80164978
lbl_80164978:
/* 80164978 001605D8  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8016497C 001605DC  7C 08 02 A6 */	mflr r0
/* 80164980 001605E0  90 01 00 34 */	stw r0, 0x34(r1)
/* 80164984 001605E4  39 61 00 30 */	addi r11, r1, 0x30
/* 80164988 001605E8  48 06 27 95 */	bl _savegpr_24
/* 8016498C 001605EC  7C 7C 1B 78 */	mr r28, r3
/* 80164990 001605F0  7C 98 23 78 */	mr r24, r4
/* 80164994 001605F4  7C B9 2B 78 */	mr r25, r5
/* 80164998 001605F8  7C DA 33 78 */	mr r26, r6
/* 8016499C 001605FC  7C FB 3B 78 */	mr r27, r7
/* 801649A0 00160600  48 0F 96 31 */	bl func_8025DFD0
/* 801649A4 00160604  48 0F 99 15 */	bl func_8025E2B8
/* 801649A8 00160608  2C 03 00 00 */	cmpwi r3, 0
/* 801649AC 0016060C  7C 7E 1B 78 */	mr r30, r3
/* 801649B0 00160610  40 82 00 0C */	bne lbl_801649BC
/* 801649B4 00160614  38 60 FF FF */	li r3, -1
/* 801649B8 00160618  48 00 01 44 */	b lbl_80164AFC
lbl_801649BC:
/* 801649BC 0016061C  7F 83 E3 78 */	mr r3, r28
/* 801649C0 00160620  4B FF F1 3D */	bl func_80163AFC
/* 801649C4 00160624  2C 03 00 00 */	cmpwi r3, 0
/* 801649C8 00160628  7C 7F 1B 78 */	mr r31, r3
/* 801649CC 0016062C  40 80 00 0C */	bge lbl_801649D8
/* 801649D0 00160630  38 60 FF FE */	li r3, -2
/* 801649D4 00160634  48 00 01 28 */	b lbl_80164AFC
lbl_801649D8:
/* 801649D8 00160638  48 0F 95 F9 */	bl func_8025DFD0
/* 801649DC 0016063C  7F 44 D3 78 */	mr r4, r26
/* 801649E0 00160640  48 0F 95 E1 */	bl func_8025DFC0
/* 801649E4 00160644  2C 03 00 00 */	cmpwi r3, 0
/* 801649E8 00160648  7C 7D 1B 78 */	mr r29, r3
/* 801649EC 0016064C  40 82 00 0C */	bne lbl_801649F8
/* 801649F0 00160650  38 60 FF FD */	li r3, -3
/* 801649F4 00160654  48 00 01 08 */	b lbl_80164AFC
lbl_801649F8:
/* 801649F8 00160658  48 0F 95 D9 */	bl func_8025DFD0
/* 801649FC 0016065C  38 80 24 00 */	li r4, 0x2400
/* 80164A00 00160660  48 0F 95 C1 */	bl func_8025DFC0
/* 80164A04 00160664  2C 03 00 00 */	cmpwi r3, 0
/* 80164A08 00160668  7C 7C 1B 78 */	mr r28, r3
/* 80164A0C 0016066C  40 82 00 18 */	bne lbl_80164A24
/* 80164A10 00160670  48 0F 95 C1 */	bl func_8025DFD0
/* 80164A14 00160674  7F A4 EB 78 */	mr r4, r29
/* 80164A18 00160678  48 0F 95 B1 */	bl func_8025DFC8
/* 80164A1C 0016067C  38 60 FF FC */	li r3, -4
/* 80164A20 00160680  48 00 00 DC */	b lbl_80164AFC
lbl_80164A24:
/* 80164A24 00160684  7F 23 CB 78 */	mr r3, r25
/* 80164A28 00160688  7F 44 D3 78 */	mr r4, r26
/* 80164A2C 0016068C  7F A5 EB 78 */	mr r5, r29
/* 80164A30 00160690  7F 86 E3 78 */	mr r6, r28
/* 80164A34 00160694  48 13 D8 11 */	bl CXCompressLZ
/* 80164A38 00160698  2C 03 00 00 */	cmpwi r3, 0
/* 80164A3C 0016069C  40 82 00 14 */	bne lbl_80164A50
/* 80164A40 001606A0  7F A3 EB 78 */	mr r3, r29
/* 80164A44 001606A4  7F 24 CB 78 */	mr r4, r25
/* 80164A48 001606A8  7F 45 D3 78 */	mr r5, r26
/* 80164A4C 001606AC  4B E9 F5 B5 */	bl memcpy
lbl_80164A50:
/* 80164A50 001606B0  48 0F 95 81 */	bl func_8025DFD0
/* 80164A54 001606B4  7F 84 E3 78 */	mr r4, r28
/* 80164A58 001606B8  48 0F 95 71 */	bl func_8025DFC8
/* 80164A5C 001606BC  7F C3 F3 78 */	mr r3, r30
/* 80164A60 001606C0  7F 05 C3 78 */	mr r5, r24
/* 80164A64 001606C4  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 80164A68 001606C8  48 0F BC 11 */	bl func_80260678
/* 80164A6C 001606CC  2C 03 00 00 */	cmpwi r3, 0
/* 80164A70 001606D0  7C 7C 1B 78 */	mr r28, r3
/* 80164A74 001606D4  40 80 00 08 */	bge lbl_80164A7C
/* 80164A78 001606D8  48 00 00 84 */	b lbl_80164AFC
lbl_80164A7C:
/* 80164A7C 001606DC  7F 05 C3 78 */	mr r5, r24
/* 80164A80 001606E0  7F A6 EB 78 */	mr r6, r29
/* 80164A84 001606E4  7F 47 D3 78 */	mr r7, r26
/* 80164A88 001606E8  7F 68 DB 78 */	mr r8, r27
/* 80164A8C 001606EC  57 E3 04 3E */	clrlwi r3, r31, 0x10
/* 80164A90 001606F0  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80164A94 001606F4  4B FF F6 69 */	bl func_801640FC
/* 80164A98 001606F8  2C 03 00 00 */	cmpwi r3, 0
/* 80164A9C 001606FC  7C 7F 1B 78 */	mr r31, r3
/* 80164AA0 00160700  40 80 00 20 */	bge lbl_80164AC0
/* 80164AA4 00160704  7F C3 F3 78 */	mr r3, r30
/* 80164AA8 00160708  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80164AAC 0016070C  48 0F BF 11 */	bl func_802609BC
/* 80164AB0 00160710  48 0F 95 21 */	bl func_8025DFD0
/* 80164AB4 00160714  7F A4 EB 78 */	mr r4, r29
/* 80164AB8 00160718  48 0F 95 11 */	bl func_8025DFC8
/* 80164ABC 0016071C  48 00 00 38 */	b lbl_80164AF4
lbl_80164AC0:
/* 80164AC0 00160720  7F C3 F3 78 */	mr r3, r30
/* 80164AC4 00160724  7F A5 EB 78 */	mr r5, r29
/* 80164AC8 00160728  7F 46 D3 78 */	mr r6, r26
/* 80164ACC 0016072C  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80164AD0 00160730  48 0F BC 2D */	bl func_802606FC
/* 80164AD4 00160734  2C 03 00 00 */	cmpwi r3, 0
/* 80164AD8 00160738  41 81 00 18 */	bgt lbl_80164AF0
/* 80164ADC 0016073C  7F C3 F3 78 */	mr r3, r30
/* 80164AE0 00160740  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80164AE4 00160744  48 0F BE D9 */	bl func_802609BC
/* 80164AE8 00160748  3B E0 FF FF */	li r31, -1
/* 80164AEC 0016074C  48 00 00 08 */	b lbl_80164AF4
lbl_80164AF0:
/* 80164AF0 00160750  3B E0 00 00 */	li r31, 0
lbl_80164AF4:
/* 80164AF4 00160754  4B FF FA 19 */	bl func_8016450C
/* 80164AF8 00160758  7F E3 FB 78 */	mr r3, r31
lbl_80164AFC:
/* 80164AFC 0016075C  39 61 00 30 */	addi r11, r1, 0x30
/* 80164B00 00160760  48 06 26 69 */	bl _restgpr_24
/* 80164B04 00160764  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80164B08 00160768  7C 08 03 A6 */	mtlr r0
/* 80164B0C 0016076C  38 21 00 30 */	addi r1, r1, 0x30
/* 80164B10 00160770  4E 80 00 20 */	blr

.global func_80164B14
func_80164B14:
/* 80164B14 00160774  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80164B18 00160778  7C 08 02 A6 */	mflr r0
/* 80164B1C 0016077C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80164B20 00160780  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80164B24 00160784  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80164B28 00160788  7C BE 2B 78 */	mr r30, r5
/* 80164B2C 0016078C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80164B30 00160790  7C 9D 23 78 */	mr r29, r4
/* 80164B34 00160794  93 81 00 10 */	stw r28, 0x10(r1)
/* 80164B38 00160798  7C 7C 1B 78 */	mr r28, r3
/* 80164B3C 0016079C  48 0F 94 95 */	bl func_8025DFD0
/* 80164B40 001607A0  48 0F 97 79 */	bl func_8025E2B8
/* 80164B44 001607A4  2C 03 00 00 */	cmpwi r3, 0
/* 80164B48 001607A8  7C 7F 1B 78 */	mr r31, r3
/* 80164B4C 001607AC  40 82 00 0C */	bne lbl_80164B58
/* 80164B50 001607B0  38 60 FF FF */	li r3, -1
/* 80164B54 001607B4  48 00 00 34 */	b lbl_80164B88
lbl_80164B58:
/* 80164B58 001607B8  7F 83 E3 78 */	mr r3, r28
/* 80164B5C 001607BC  4B FF EF A1 */	bl func_80163AFC
/* 80164B60 001607C0  2C 03 00 00 */	cmpwi r3, 0
/* 80164B64 001607C4  7C 60 1B 78 */	mr r0, r3
/* 80164B68 001607C8  40 80 00 0C */	bge lbl_80164B74
/* 80164B6C 001607CC  38 60 FF FE */	li r3, -2
/* 80164B70 001607D0  48 00 00 18 */	b lbl_80164B88
lbl_80164B74:
/* 80164B74 001607D4  7F E3 FB 78 */	mr r3, r31
/* 80164B78 001607D8  7F A5 EB 78 */	mr r5, r29
/* 80164B7C 001607DC  7F C6 F3 78 */	mr r6, r30
/* 80164B80 001607E0  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80164B84 001607E4  48 0F 9F F5 */	bl func_8025EB78
lbl_80164B88:
/* 80164B88 001607E8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80164B8C 001607EC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80164B90 001607F0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80164B94 001607F4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80164B98 001607F8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80164B9C 001607FC  7C 08 03 A6 */	mtlr r0
/* 80164BA0 00160800  38 21 00 20 */	addi r1, r1, 0x20
/* 80164BA4 00160804  4E 80 00 20 */	blr

.global func_80164BA8
func_80164BA8:
/* 80164BA8 00160808  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80164BAC 0016080C  7C 08 02 A6 */	mflr r0
/* 80164BB0 00160810  90 01 00 14 */	stw r0, 0x14(r1)
/* 80164BB4 00160814  48 0F 94 1D */	bl func_8025DFD0
/* 80164BB8 00160818  48 0F 97 01 */	bl func_8025E2B8
/* 80164BBC 0016081C  2C 03 00 00 */	cmpwi r3, 0
/* 80164BC0 00160820  40 82 00 0C */	bne lbl_80164BCC
/* 80164BC4 00160824  38 60 FF FF */	li r3, -1
/* 80164BC8 00160828  48 00 00 2C */	b lbl_80164BF4
lbl_80164BCC:
/* 80164BCC 0016082C  81 83 00 00 */	lwz r12, 0(r3)
/* 80164BD0 00160830  81 8C 00 14 */	lwz r12, 0x14(r12)
/* 80164BD4 00160834  7D 89 03 A6 */	mtctr r12
/* 80164BD8 00160838  4E 80 04 21 */	bctrl
/* 80164BDC 0016083C  2C 03 00 00 */	cmpwi r3, 0
/* 80164BE0 00160840  40 80 00 08 */	bge lbl_80164BE8
/* 80164BE4 00160844  38 60 00 00 */	li r3, 0
lbl_80164BE8:
/* 80164BE8 00160848  2C 03 00 03 */	cmpwi r3, 3
/* 80164BEC 0016084C  40 81 00 08 */	ble lbl_80164BF4
/* 80164BF0 00160850  38 60 00 03 */	li r3, 3
lbl_80164BF4:
/* 80164BF4 00160854  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80164BF8 00160858  7C 08 03 A6 */	mtlr r0
/* 80164BFC 0016085C  38 21 00 10 */	addi r1, r1, 0x10
/* 80164C00 00160860  4E 80 00 20 */	blr

.global func_80164C04
func_80164C04:
/* 80164C04 00160864  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80164C08 00160868  7C 08 02 A6 */	mflr r0
/* 80164C0C 0016086C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80164C10 00160870  4B FF EE ED */	bl func_80163AFC
/* 80164C14 00160874  54 60 0F FE */	srwi r0, r3, 0x1f
/* 80164C18 00160878  68 03 00 01 */	xori r3, r0, 1
/* 80164C1C 0016087C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80164C20 00160880  7C 08 03 A6 */	mtlr r0
/* 80164C24 00160884  38 21 00 10 */	addi r1, r1, 0x10
/* 80164C28 00160888  4E 80 00 20 */	blr

.global func_80164C2C
func_80164C2C:
/* 80164C2C 0016088C  2C 03 00 09 */	cmpwi r3, 9
/* 80164C30 00160890  41 80 00 0C */	blt lbl_80164C3C
/* 80164C34 00160894  38 60 00 00 */	li r3, 0
/* 80164C38 00160898  4E 80 00 20 */	blr
lbl_80164C3C:
/* 80164C3C 0016089C  3C 80 80 49 */	lis r4, lbl_804895E0@ha
/* 80164C40 001608A0  54 65 10 3A */	slwi r5, r3, 2
/* 80164C44 001608A4  38 84 95 E0 */	addi r4, r4, lbl_804895E0@l
/* 80164C48 001608A8  7C 04 2A 2E */	lhzx r0, r4, r5
/* 80164C4C 001608AC  2C 00 00 00 */	cmpwi r0, 0
/* 80164C50 001608B0  41 82 00 14 */	beq lbl_80164C64
/* 80164C54 001608B4  3C 60 80 49 */	lis r3, lbl_80489604@ha
/* 80164C58 001608B8  38 63 96 04 */	addi r3, r3, lbl_80489604@l
/* 80164C5C 001608BC  7C 63 28 2E */	lwzx r3, r3, r5
/* 80164C60 001608C0  4E 80 00 20 */	blr
lbl_80164C64:
/* 80164C64 001608C4  38 60 00 00 */	li r3, 0
/* 80164C68 001608C8  4E 80 00 20 */	blr

.global func_80164C6C
func_80164C6C:
/* 80164C6C 001608CC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80164C70 001608D0  7C 08 02 A6 */	mflr r0
/* 80164C74 001608D4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80164C78 001608D8  4B FF EE 85 */	bl func_80163AFC
/* 80164C7C 001608DC  2C 03 00 00 */	cmpwi r3, 0
/* 80164C80 001608E0  40 80 00 0C */	bge lbl_80164C8C
/* 80164C84 001608E4  38 60 00 00 */	li r3, 0
/* 80164C88 001608E8  48 00 00 14 */	b lbl_80164C9C
lbl_80164C8C:
/* 80164C8C 001608EC  3C 80 80 49 */	lis r4, lbl_80489604@ha
/* 80164C90 001608F0  54 60 10 3A */	slwi r0, r3, 2
/* 80164C94 001608F4  38 84 96 04 */	addi r4, r4, lbl_80489604@l
/* 80164C98 001608F8  7C 64 00 2E */	lwzx r3, r4, r0
lbl_80164C9C:
/* 80164C9C 001608FC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80164CA0 00160900  7C 08 03 A6 */	mtlr r0
/* 80164CA4 00160904  38 21 00 10 */	addi r1, r1, 0x10
/* 80164CA8 00160908  4E 80 00 20 */	blr

.global func_80164CAC
func_80164CAC:
/* 80164CAC 0016090C  38 C0 00 01 */	li r6, 1
/* 80164CB0 00160910  39 0D 9D B8 */	addi r8, r13, lbl_8063F078-_SDA_BASE_
/* 80164CB4 00160914  38 A0 00 04 */	li r5, 4
/* 80164CB8 00160918  38 00 00 00 */	li r0, 0
/* 80164CBC 0016091C  3C 60 80 49 */	lis r3, lbl_80489628@ha
/* 80164CC0 00160920  3C 80 80 16 */	lis r4, lbl_80164CE8@ha
/* 80164CC4 00160924  98 CD 9D B8 */	stb r6, lbl_8063F078-_SDA_BASE_(r13)
/* 80164CC8 00160928  38 63 96 28 */	addi r3, r3, lbl_80489628@l
/* 80164CCC 0016092C  38 84 4C E8 */	addi r4, r4, lbl_80164CE8@l
/* 80164CD0 00160930  38 C0 00 50 */	li r6, 0x50
/* 80164CD4 00160934  B0 A8 00 02 */	sth r5, 2(r8)
/* 80164CD8 00160938  38 A0 00 00 */	li r5, 0
/* 80164CDC 0016093C  38 E0 00 80 */	li r7, 0x80
/* 80164CE0 00160940  98 08 00 04 */	stb r0, 4(r8)
/* 80164CE4 00160944  48 06 21 84 */	b __construct_array