summaryrefslogtreecommitdiff
path: root/asm/code_80165534.s
blob: 429eabbb809c1252c56734b0a36304ee9a3381dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
.include "macros.inc"

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

.global func_80165534
func_80165534:
/* 80165534 00161194  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80165538 00161198  7C 08 02 A6 */	mflr r0
/* 8016553C 0016119C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80165540 001611A0  39 61 00 20 */	addi r11, r1, 0x20
/* 80165544 001611A4  48 06 1B E5 */	bl _savegpr_27
/* 80165548 001611A8  7C 7F 1B 78 */	mr r31, r3
/* 8016554C 001611AC  48 10 D2 6D */	bl OSGetTime
/* 80165550 001611B0  3C C0 80 00 */	lis r6, 0x800000F8@ha
/* 80165554 001611B4  38 A0 00 00 */	li r5, 0
/* 80165558 001611B8  80 06 00 F8 */	lwz r0, 0x800000F8@l(r6)
/* 8016555C 001611BC  54 06 F0 BE */	srwi r6, r0, 2
/* 80165560 001611C0  48 06 1D 19 */	bl __div2i
/* 80165564 001611C4  3C A0 80 49 */	lis r5, lbl_8048BE28@ha
/* 80165568 001611C8  38 00 00 20 */	li r0, 0x20
/* 8016556C 001611CC  7C 9D 23 78 */	mr r29, r4
/* 80165570 001611D0  38 80 00 00 */	li r4, 0
/* 80165574 001611D4  38 A5 BE 28 */	addi r5, r5, lbl_8048BE28@l
/* 80165578 001611D8  7C 09 03 A6 */	mtctr r0
lbl_8016557C:
/* 8016557C 001611DC  88 65 00 09 */	lbz r3, 9(r5)
/* 80165580 001611E0  88 1F 00 05 */	lbz r0, 5(r31)
/* 80165584 001611E4  7C 03 00 40 */	cmplw r3, r0
/* 80165588 001611E8  40 82 00 54 */	bne lbl_801655DC
/* 8016558C 001611EC  88 65 00 08 */	lbz r3, 8(r5)
/* 80165590 001611F0  88 1F 00 04 */	lbz r0, 4(r31)
/* 80165594 001611F4  7C 03 00 40 */	cmplw r3, r0
/* 80165598 001611F8  40 82 00 44 */	bne lbl_801655DC
/* 8016559C 001611FC  88 65 00 07 */	lbz r3, 7(r5)
/* 801655A0 00161200  88 1F 00 03 */	lbz r0, 3(r31)
/* 801655A4 00161204  7C 03 00 40 */	cmplw r3, r0
/* 801655A8 00161208  40 82 00 34 */	bne lbl_801655DC
/* 801655AC 0016120C  88 65 00 06 */	lbz r3, 6(r5)
/* 801655B0 00161210  88 1F 00 02 */	lbz r0, 2(r31)
/* 801655B4 00161214  7C 03 00 40 */	cmplw r3, r0
/* 801655B8 00161218  40 82 00 24 */	bne lbl_801655DC
/* 801655BC 0016121C  88 65 00 05 */	lbz r3, 5(r5)
/* 801655C0 00161220  88 1F 00 01 */	lbz r0, 1(r31)
/* 801655C4 00161224  7C 03 00 40 */	cmplw r3, r0
/* 801655C8 00161228  40 82 00 14 */	bne lbl_801655DC
/* 801655CC 0016122C  88 65 00 04 */	lbz r3, 4(r5)
/* 801655D0 00161230  88 1F 00 00 */	lbz r0, 0(r31)
/* 801655D4 00161234  7C 03 00 40 */	cmplw r3, r0
/* 801655D8 00161238  41 82 00 0C */	beq lbl_801655E4
lbl_801655DC:
/* 801655DC 0016123C  38 00 00 01 */	li r0, 1
/* 801655E0 00161240  48 00 00 08 */	b lbl_801655E8
lbl_801655E4:
/* 801655E4 00161244  38 00 00 00 */	li r0, 0
lbl_801655E8:
/* 801655E8 00161248  2C 00 00 00 */	cmpwi r0, 0
/* 801655EC 0016124C  40 82 00 18 */	bne lbl_80165604
/* 801655F0 00161250  1C 04 00 2C */	mulli r0, r4, 0x2c
/* 801655F4 00161254  3C 60 80 49 */	lis r3, lbl_8048BE28@ha
/* 801655F8 00161258  38 63 BE 28 */	addi r3, r3, lbl_8048BE28@l
/* 801655FC 0016125C  7C 63 02 14 */	add r3, r3, r0
/* 80165600 00161260  48 00 01 D8 */	b lbl_801657D8
lbl_80165604:
/* 80165604 00161264  88 65 00 35 */	lbz r3, 0x35(r5)
/* 80165608 00161268  38 84 00 01 */	addi r4, r4, 1
/* 8016560C 0016126C  88 1F 00 05 */	lbz r0, 5(r31)
/* 80165610 00161270  7C 03 00 40 */	cmplw r3, r0
/* 80165614 00161274  40 82 00 54 */	bne lbl_80165668
/* 80165618 00161278  88 65 00 34 */	lbz r3, 0x34(r5)
/* 8016561C 0016127C  88 1F 00 04 */	lbz r0, 4(r31)
/* 80165620 00161280  7C 03 00 40 */	cmplw r3, r0
/* 80165624 00161284  40 82 00 44 */	bne lbl_80165668
/* 80165628 00161288  88 65 00 33 */	lbz r3, 0x33(r5)
/* 8016562C 0016128C  88 1F 00 03 */	lbz r0, 3(r31)
/* 80165630 00161290  7C 03 00 40 */	cmplw r3, r0
/* 80165634 00161294  40 82 00 34 */	bne lbl_80165668
/* 80165638 00161298  88 65 00 32 */	lbz r3, 0x32(r5)
/* 8016563C 0016129C  88 1F 00 02 */	lbz r0, 2(r31)
/* 80165640 001612A0  7C 03 00 40 */	cmplw r3, r0
/* 80165644 001612A4  40 82 00 24 */	bne lbl_80165668
/* 80165648 001612A8  88 65 00 31 */	lbz r3, 0x31(r5)
/* 8016564C 001612AC  88 1F 00 01 */	lbz r0, 1(r31)
/* 80165650 001612B0  7C 03 00 40 */	cmplw r3, r0
/* 80165654 001612B4  40 82 00 14 */	bne lbl_80165668
/* 80165658 001612B8  88 65 00 30 */	lbz r3, 0x30(r5)
/* 8016565C 001612BC  88 1F 00 00 */	lbz r0, 0(r31)
/* 80165660 001612C0  7C 03 00 40 */	cmplw r3, r0
/* 80165664 001612C4  41 82 00 0C */	beq lbl_80165670
lbl_80165668:
/* 80165668 001612C8  38 00 00 01 */	li r0, 1
/* 8016566C 001612CC  48 00 00 08 */	b lbl_80165674
lbl_80165670:
/* 80165670 001612D0  38 00 00 00 */	li r0, 0
lbl_80165674:
/* 80165674 001612D4  2C 00 00 00 */	cmpwi r0, 0
/* 80165678 001612D8  40 82 00 18 */	bne lbl_80165690
/* 8016567C 001612DC  1C 04 00 2C */	mulli r0, r4, 0x2c
/* 80165680 001612E0  3C 60 80 49 */	lis r3, lbl_8048BE28@ha
/* 80165684 001612E4  38 63 BE 28 */	addi r3, r3, lbl_8048BE28@l
/* 80165688 001612E8  7C 63 02 14 */	add r3, r3, r0
/* 8016568C 001612EC  48 00 01 4C */	b lbl_801657D8
lbl_80165690:
/* 80165690 001612F0  38 A5 00 58 */	addi r5, r5, 0x58
/* 80165694 001612F4  38 84 00 01 */	addi r4, r4, 1
/* 80165698 001612F8  42 00 FE E4 */	bdnz lbl_8016557C
/* 8016569C 001612FC  3C 60 80 49 */	lis r3, lbl_8048BE28@ha
/* 801656A0 00161300  38 00 00 08 */	li r0, 8
/* 801656A4 00161304  38 63 BE 28 */	addi r3, r3, lbl_8048BE28@l
/* 801656A8 00161308  38 80 00 00 */	li r4, 0
/* 801656AC 0016130C  38 A0 FF FF */	li r5, -1
/* 801656B0 00161310  38 C0 00 00 */	li r6, 0
/* 801656B4 00161314  7C 09 03 A6 */	mtctr r0
lbl_801656B8:
/* 801656B8 00161318  80 03 00 00 */	lwz r0, 0(r3)
/* 801656BC 0016131C  7C 00 28 40 */	cmplw r0, r5
/* 801656C0 00161320  40 80 00 0C */	bge lbl_801656CC
/* 801656C4 00161324  7C C4 33 78 */	mr r4, r6
/* 801656C8 00161328  7C 05 03 78 */	mr r5, r0
lbl_801656CC:
/* 801656CC 0016132C  80 03 00 2C */	lwz r0, 0x2c(r3)
/* 801656D0 00161330  38 C6 00 01 */	addi r6, r6, 1
/* 801656D4 00161334  7C 00 28 40 */	cmplw r0, r5
/* 801656D8 00161338  40 80 00 0C */	bge lbl_801656E4
/* 801656DC 0016133C  7C C4 33 78 */	mr r4, r6
/* 801656E0 00161340  7C 05 03 78 */	mr r5, r0
lbl_801656E4:
/* 801656E4 00161344  80 03 00 58 */	lwz r0, 0x58(r3)
/* 801656E8 00161348  38 C6 00 01 */	addi r6, r6, 1
/* 801656EC 0016134C  7C 00 28 40 */	cmplw r0, r5
/* 801656F0 00161350  40 80 00 0C */	bge lbl_801656FC
/* 801656F4 00161354  7C C4 33 78 */	mr r4, r6
/* 801656F8 00161358  7C 05 03 78 */	mr r5, r0
lbl_801656FC:
/* 801656FC 0016135C  80 03 00 84 */	lwz r0, 0x84(r3)
/* 80165700 00161360  38 C6 00 01 */	addi r6, r6, 1
/* 80165704 00161364  7C 00 28 40 */	cmplw r0, r5
/* 80165708 00161368  40 80 00 0C */	bge lbl_80165714
/* 8016570C 0016136C  7C C4 33 78 */	mr r4, r6
/* 80165710 00161370  7C 05 03 78 */	mr r5, r0
lbl_80165714:
/* 80165714 00161374  80 03 00 B0 */	lwz r0, 0xb0(r3)
/* 80165718 00161378  38 C6 00 01 */	addi r6, r6, 1
/* 8016571C 0016137C  7C 00 28 40 */	cmplw r0, r5
/* 80165720 00161380  40 80 00 0C */	bge lbl_8016572C
/* 80165724 00161384  7C C4 33 78 */	mr r4, r6
/* 80165728 00161388  7C 05 03 78 */	mr r5, r0
lbl_8016572C:
/* 8016572C 0016138C  80 03 00 DC */	lwz r0, 0xdc(r3)
/* 80165730 00161390  38 C6 00 01 */	addi r6, r6, 1
/* 80165734 00161394  7C 00 28 40 */	cmplw r0, r5
/* 80165738 00161398  40 80 00 0C */	bge lbl_80165744
/* 8016573C 0016139C  7C C4 33 78 */	mr r4, r6
/* 80165740 001613A0  7C 05 03 78 */	mr r5, r0
lbl_80165744:
/* 80165744 001613A4  80 03 01 08 */	lwz r0, 0x108(r3)
/* 80165748 001613A8  38 C6 00 01 */	addi r6, r6, 1
/* 8016574C 001613AC  7C 00 28 40 */	cmplw r0, r5
/* 80165750 001613B0  40 80 00 0C */	bge lbl_8016575C
/* 80165754 001613B4  7C C4 33 78 */	mr r4, r6
/* 80165758 001613B8  7C 05 03 78 */	mr r5, r0
lbl_8016575C:
/* 8016575C 001613BC  80 03 01 34 */	lwz r0, 0x134(r3)
/* 80165760 001613C0  38 C6 00 01 */	addi r6, r6, 1
/* 80165764 001613C4  7C 00 28 40 */	cmplw r0, r5
/* 80165768 001613C8  40 80 00 0C */	bge lbl_80165774
/* 8016576C 001613CC  7C C4 33 78 */	mr r4, r6
/* 80165770 001613D0  7C 05 03 78 */	mr r5, r0
lbl_80165774:
/* 80165774 001613D4  38 63 01 60 */	addi r3, r3, 0x160
/* 80165778 001613D8  38 C6 00 01 */	addi r6, r6, 1
/* 8016577C 001613DC  42 00 FF 3C */	bdnz lbl_801656B8
/* 80165780 001613E0  1F 84 00 2C */	mulli r28, r4, 0x2c
/* 80165784 001613E4  3F C0 80 49 */	lis r30, lbl_8048BE28@ha
/* 80165788 001613E8  38 80 00 00 */	li r4, 0
/* 8016578C 001613EC  3B DE BE 28 */	addi r30, r30, lbl_8048BE28@l
/* 80165790 001613F0  7F 7E E2 14 */	add r27, r30, r28
/* 80165794 001613F4  38 A0 00 2C */	li r5, 0x2c
/* 80165798 001613F8  7F 63 DB 78 */	mr r3, r27
/* 8016579C 001613FC  4B E9 E9 69 */	bl memset
/* 801657A0 00161400  93 BB 00 00 */	stw r29, 0(r27)
/* 801657A4 00161404  7F 63 DB 78 */	mr r3, r27
/* 801657A8 00161408  88 1F 00 00 */	lbz r0, 0(r31)
/* 801657AC 0016140C  98 1B 00 04 */	stb r0, 4(r27)
/* 801657B0 00161410  88 1F 00 01 */	lbz r0, 1(r31)
/* 801657B4 00161414  98 1B 00 05 */	stb r0, 5(r27)
/* 801657B8 00161418  88 1F 00 02 */	lbz r0, 2(r31)
/* 801657BC 0016141C  98 1B 00 06 */	stb r0, 6(r27)
/* 801657C0 00161420  88 1F 00 03 */	lbz r0, 3(r31)
/* 801657C4 00161424  98 1B 00 07 */	stb r0, 7(r27)
/* 801657C8 00161428  88 1F 00 04 */	lbz r0, 4(r31)
/* 801657CC 0016142C  98 1B 00 08 */	stb r0, 8(r27)
/* 801657D0 00161430  88 1F 00 05 */	lbz r0, 5(r31)
/* 801657D4 00161434  98 1B 00 09 */	stb r0, 9(r27)
lbl_801657D8:
/* 801657D8 00161438  39 61 00 20 */	addi r11, r1, 0x20
/* 801657DC 0016143C  48 06 19 99 */	bl _restgpr_27
/* 801657E0 00161440  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801657E4 00161444  7C 08 03 A6 */	mtlr r0
/* 801657E8 00161448  38 21 00 20 */	addi r1, r1, 0x20
/* 801657EC 0016144C  4E 80 00 20 */	blr

.global func_801657F0
func_801657F0:
/* 801657F0 00161450  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801657F4 00161454  7C 08 02 A6 */	mflr r0
/* 801657F8 00161458  90 01 00 24 */	stw r0, 0x24(r1)
/* 801657FC 0016145C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80165800 00161460  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80165804 00161464  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80165808 00161468  7C 7D 1B 78 */	mr r29, r3
/* 8016580C 0016146C  48 10 CF AD */	bl OSGetTime
/* 80165810 00161470  3C C0 80 00 */	lis r6, 0x800000F8@ha
/* 80165814 00161474  38 A0 00 00 */	li r5, 0
/* 80165818 00161478  80 06 00 F8 */	lwz r0, 0x800000F8@l(r6)
/* 8016581C 0016147C  54 06 F0 BE */	srwi r6, r0, 2
/* 80165820 00161480  48 06 1A 59 */	bl __div2i
/* 80165824 00161484  7C 9F 23 78 */	mr r31, r4
/* 80165828 00161488  7F A3 EB 78 */	mr r3, r29
/* 8016582C 0016148C  4B FF FD 09 */	bl func_80165534
/* 80165830 00161490  7C 7E 1B 78 */	mr r30, r3
/* 80165834 00161494  38 80 00 00 */	li r4, 0
/* 80165838 00161498  38 A0 00 2C */	li r5, 0x2c
/* 8016583C 0016149C  4B E9 E8 C9 */	bl memset
/* 80165840 001614A0  93 FE 00 00 */	stw r31, 0(r30)
/* 80165844 001614A4  7F C3 F3 78 */	mr r3, r30
/* 80165848 001614A8  88 1D 00 00 */	lbz r0, 0(r29)
/* 8016584C 001614AC  98 1E 00 04 */	stb r0, 4(r30)
/* 80165850 001614B0  88 1D 00 01 */	lbz r0, 1(r29)
/* 80165854 001614B4  98 1E 00 05 */	stb r0, 5(r30)
/* 80165858 001614B8  88 1D 00 02 */	lbz r0, 2(r29)
/* 8016585C 001614BC  98 1E 00 06 */	stb r0, 6(r30)
/* 80165860 001614C0  88 1D 00 03 */	lbz r0, 3(r29)
/* 80165864 001614C4  98 1E 00 07 */	stb r0, 7(r30)
/* 80165868 001614C8  88 1D 00 04 */	lbz r0, 4(r29)
/* 8016586C 001614CC  98 1E 00 08 */	stb r0, 8(r30)
/* 80165870 001614D0  88 1D 00 05 */	lbz r0, 5(r29)
/* 80165874 001614D4  98 1E 00 09 */	stb r0, 9(r30)
/* 80165878 001614D8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8016587C 001614DC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80165880 001614E0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80165884 001614E4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80165888 001614E8  7C 08 03 A6 */	mtlr r0
/* 8016588C 001614EC  38 21 00 20 */	addi r1, r1, 0x20
/* 80165890 001614F0  4E 80 00 20 */	blr

.global func_80165894
func_80165894:
/* 80165894 001614F4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165898 001614F8  7C 08 02 A6 */	mflr r0
/* 8016589C 001614FC  90 01 00 14 */	stw r0, 0x14(r1)
/* 801658A0 00161500  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801658A4 00161504  7C 7F 1B 78 */	mr r31, r3
/* 801658A8 00161508  48 0F 87 29 */	bl func_8025DFD0
/* 801658AC 0016150C  38 80 03 E0 */	li r4, 0x3e0
/* 801658B0 00161510  48 0F 87 11 */	bl func_8025DFC0
/* 801658B4 00161514  90 7F 18 8C */	stw r3, 0x188c(r31)
/* 801658B8 00161518  48 0F 87 19 */	bl func_8025DFD0
/* 801658BC 0016151C  38 80 07 74 */	li r4, 0x774
/* 801658C0 00161520  48 0F 87 01 */	bl func_8025DFC0
/* 801658C4 00161524  90 7F 18 94 */	stw r3, 0x1894(r31)
/* 801658C8 00161528  48 0F 87 09 */	bl func_8025DFD0
/* 801658CC 0016152C  38 80 00 20 */	li r4, 0x20
/* 801658D0 00161530  48 0F 86 F1 */	bl func_8025DFC0
/* 801658D4 00161534  90 7F 18 9C */	stw r3, 0x189c(r31)
/* 801658D8 00161538  48 0F 86 F9 */	bl func_8025DFD0
/* 801658DC 0016153C  38 80 06 EC */	li r4, 0x6ec
/* 801658E0 00161540  48 0F 86 E1 */	bl func_8025DFC0
/* 801658E4 00161544  90 7F 18 80 */	stw r3, 0x1880(r31)
/* 801658E8 00161548  80 0D 9E 00 */	lwz r0, lbl_8063F0C0-_SDA_BASE_(r13)
/* 801658EC 0016154C  2C 00 00 00 */	cmpwi r0, 0
/* 801658F0 00161550  40 82 00 18 */	bne lbl_80165908
/* 801658F4 00161554  48 0F 86 DD */	bl func_8025DFD0
/* 801658F8 00161558  3C 80 00 01 */	lis r4, 0x000121B0@ha
/* 801658FC 0016155C  38 84 21 B0 */	addi r4, r4, 0x000121B0@l
/* 80165900 00161560  48 0F 86 C1 */	bl func_8025DFC0
/* 80165904 00161564  90 6D 9E 00 */	stw r3, lbl_8063F0C0-_SDA_BASE_(r13)
lbl_80165908:
/* 80165908 00161568  80 0D 9E 00 */	lwz r0, lbl_8063F0C0-_SDA_BASE_(r13)
/* 8016590C 0016156C  7F E3 FB 78 */	mr r3, r31
/* 80165910 00161570  90 1F 18 A4 */	stw r0, 0x18a4(r31)
/* 80165914 00161574  48 00 00 4D */	bl func_80165960
/* 80165918 00161578  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016591C 0016157C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80165920 00161580  7C 08 03 A6 */	mtlr r0
/* 80165924 00161584  38 21 00 10 */	addi r1, r1, 0x10
/* 80165928 00161588  4E 80 00 20 */	blr

.global func_8016592C
func_8016592C:
/* 8016592C 0016158C  80 03 18 88 */	lwz r0, 0x1888(r3)
/* 80165930 00161590  2C 00 00 00 */	cmpwi r0, 0
/* 80165934 00161594  41 82 00 24 */	beq lbl_80165958
/* 80165938 00161598  80 03 18 90 */	lwz r0, 0x1890(r3)
/* 8016593C 0016159C  2C 00 00 00 */	cmpwi r0, 0
/* 80165940 001615A0  41 82 00 18 */	beq lbl_80165958
/* 80165944 001615A4  80 03 18 98 */	lwz r0, 0x1898(r3)
/* 80165948 001615A8  2C 00 00 00 */	cmpwi r0, 0
/* 8016594C 001615AC  41 82 00 0C */	beq lbl_80165958
/* 80165950 001615B0  38 60 00 01 */	li r3, 1
/* 80165954 001615B4  4E 80 00 20 */	blr
lbl_80165958:
/* 80165958 001615B8  38 60 00 00 */	li r3, 0
/* 8016595C 001615BC  4E 80 00 20 */	blr

.global func_80165960
func_80165960:
/* 80165960 001615C0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165964 001615C4  7C 08 02 A6 */	mflr r0
/* 80165968 001615C8  38 80 00 00 */	li r4, 0
/* 8016596C 001615CC  38 A0 00 06 */	li r5, 6
/* 80165970 001615D0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165974 001615D4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80165978 001615D8  93 C1 00 08 */	stw r30, 8(r1)
/* 8016597C 001615DC  7C 7E 1B 78 */	mr r30, r3
/* 80165980 001615E0  38 63 00 02 */	addi r3, r3, 2
/* 80165984 001615E4  4B E9 E7 81 */	bl memset
/* 80165988 001615E8  38 7E 00 08 */	addi r3, r30, 8
/* 8016598C 001615EC  38 80 00 00 */	li r4, 0
/* 80165990 001615F0  38 A0 08 40 */	li r5, 0x840
/* 80165994 001615F4  4B E9 E7 71 */	bl memset
/* 80165998 001615F8  3B E0 00 00 */	li r31, 0
/* 8016599C 001615FC  38 00 FF FF */	li r0, -1
/* 801659A0 00161600  93 FE 08 54 */	stw r31, 0x854(r30)
/* 801659A4 00161604  7F C3 F3 78 */	mr r3, r30
/* 801659A8 00161608  93 FE 08 58 */	stw r31, 0x858(r30)
/* 801659AC 0016160C  93 FE 08 5C */	stw r31, 0x85c(r30)
/* 801659B0 00161610  90 1E 08 60 */	stw r0, 0x860(r30)
/* 801659B4 00161614  93 FE 08 64 */	stw r31, 0x864(r30)
/* 801659B8 00161618  B3 FE 08 6C */	sth r31, 0x86c(r30)
/* 801659BC 0016161C  48 00 12 69 */	bl func_80166C24
/* 801659C0 00161620  7F C3 F3 78 */	mr r3, r30
/* 801659C4 00161624  48 00 12 D1 */	bl func_80166C94
/* 801659C8 00161628  7F C3 F3 78 */	mr r3, r30
/* 801659CC 0016162C  48 00 13 39 */	bl func_80166D04
/* 801659D0 00161630  80 7E 18 8C */	lwz r3, 0x188c(r30)
/* 801659D4 00161634  93 FE 08 74 */	stw r31, 0x874(r30)
/* 801659D8 00161638  2C 03 00 00 */	cmpwi r3, 0
/* 801659DC 0016163C  93 FE 08 78 */	stw r31, 0x878(r30)
/* 801659E0 00161640  41 82 00 74 */	beq lbl_80165A54
/* 801659E4 00161644  93 FE 18 88 */	stw r31, 0x1888(r30)
/* 801659E8 00161648  38 80 00 00 */	li r4, 0
/* 801659EC 0016164C  38 A0 03 E0 */	li r5, 0x3e0
/* 801659F0 00161650  93 FE 18 84 */	stw r31, 0x1884(r30)
/* 801659F4 00161654  4B E9 E7 11 */	bl memset
/* 801659F8 00161658  80 7E 18 94 */	lwz r3, 0x1894(r30)
/* 801659FC 0016165C  2C 03 00 00 */	cmpwi r3, 0
/* 80165A00 00161660  41 82 00 54 */	beq lbl_80165A54
/* 80165A04 00161664  93 FE 18 90 */	stw r31, 0x1890(r30)
/* 80165A08 00161668  38 80 00 00 */	li r4, 0
/* 80165A0C 0016166C  38 A0 07 74 */	li r5, 0x774
/* 80165A10 00161670  4B E9 E6 F5 */	bl memset
/* 80165A14 00161674  80 7E 18 9C */	lwz r3, 0x189c(r30)
/* 80165A18 00161678  2C 03 00 00 */	cmpwi r3, 0
/* 80165A1C 0016167C  41 82 00 38 */	beq lbl_80165A54
/* 80165A20 00161680  93 FE 18 98 */	stw r31, 0x1898(r30)
/* 80165A24 00161684  38 80 00 00 */	li r4, 0
/* 80165A28 00161688  38 A0 00 20 */	li r5, 0x20
/* 80165A2C 0016168C  4B E9 E6 D9 */	bl memset
/* 80165A30 00161690  80 7E 18 80 */	lwz r3, 0x1880(r30)
/* 80165A34 00161694  2C 03 00 00 */	cmpwi r3, 0
/* 80165A38 00161698  41 82 00 1C */	beq lbl_80165A54
/* 80165A3C 0016169C  93 FE 18 7C */	stw r31, 0x187c(r30)
/* 80165A40 001616A0  38 80 00 00 */	li r4, 0
/* 80165A44 001616A4  38 A0 06 EC */	li r5, 0x6ec
/* 80165A48 001616A8  4B E9 E6 BD */	bl memset
/* 80165A4C 001616AC  93 FE 18 A0 */	stw r31, 0x18a0(r30)
/* 80165A50 001616B0  48 00 00 0C */	b lbl_80165A5C
lbl_80165A54:
/* 80165A54 001616B4  38 00 00 01 */	li r0, 1
/* 80165A58 001616B8  90 1E 08 64 */	stw r0, 0x864(r30)
lbl_80165A5C:
/* 80165A5C 001616BC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165A60 001616C0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80165A64 001616C4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80165A68 001616C8  7C 08 03 A6 */	mtlr r0
/* 80165A6C 001616CC  38 21 00 10 */	addi r1, r1, 0x10
/* 80165A70 001616D0  4E 80 00 20 */	blr

.global func_80165A74
func_80165A74:
/* 80165A74 001616D4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165A78 001616D8  7C 08 02 A6 */	mflr r0
/* 80165A7C 001616DC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165A80 001616E0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80165A84 001616E4  7C 7F 1B 78 */	mr r31, r3
/* 80165A88 001616E8  B0 83 00 00 */	sth r4, 0(r3)
/* 80165A8C 001616EC  48 0F 85 45 */	bl func_8025DFD0
/* 80165A90 001616F0  48 0F 86 19 */	bl func_8025E0A8
/* 80165A94 001616F4  2C 03 00 02 */	cmpwi r3, 2
/* 80165A98 001616F8  41 82 00 44 */	beq lbl_80165ADC
/* 80165A9C 001616FC  40 80 00 10 */	bge lbl_80165AAC
/* 80165AA0 00161700  2C 03 00 01 */	cmpwi r3, 1
/* 80165AA4 00161704  40 80 00 14 */	bge lbl_80165AB8
/* 80165AA8 00161708  48 00 00 68 */	b lbl_80165B10
lbl_80165AAC:
/* 80165AAC 0016170C  2C 03 00 04 */	cmpwi r3, 4
/* 80165AB0 00161710  40 80 00 60 */	bge lbl_80165B10
/* 80165AB4 00161714  48 00 00 4C */	b lbl_80165B00
lbl_80165AB8:
/* 80165AB8 00161718  48 0F 85 19 */	bl func_8025DFD0
/* 80165ABC 0016171C  48 0F 88 51 */	bl func_8025E30C
/* 80165AC0 00161720  81 83 00 00 */	lwz r12, 0(r3)
/* 80165AC4 00161724  38 BF 00 02 */	addi r5, r31, 2
/* 80165AC8 00161728  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80165ACC 0016172C  81 8C 00 2C */	lwz r12, 0x2c(r12)
/* 80165AD0 00161730  7D 89 03 A6 */	mtctr r12
/* 80165AD4 00161734  4E 80 04 21 */	bctrl
/* 80165AD8 00161738  48 00 00 38 */	b lbl_80165B10
lbl_80165ADC:
/* 80165ADC 0016173C  48 0F 84 F5 */	bl func_8025DFD0
/* 80165AE0 00161740  48 0F 88 35 */	bl func_8025E314
/* 80165AE4 00161744  81 83 00 00 */	lwz r12, 0(r3)
/* 80165AE8 00161748  38 BF 00 02 */	addi r5, r31, 2
/* 80165AEC 0016174C  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80165AF0 00161750  81 8C 00 2C */	lwz r12, 0x2c(r12)
/* 80165AF4 00161754  7D 89 03 A6 */	mtctr r12
/* 80165AF8 00161758  4E 80 04 21 */	bctrl
/* 80165AFC 0016175C  48 00 00 14 */	b lbl_80165B10
lbl_80165B00:
/* 80165B00 00161760  38 7F 00 02 */	addi r3, r31, 2
/* 80165B04 00161764  38 80 00 00 */	li r4, 0
/* 80165B08 00161768  38 A0 00 06 */	li r5, 6
/* 80165B0C 0016176C  4B E9 E5 F9 */	bl memset
lbl_80165B10:
/* 80165B10 00161770  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165B14 00161774  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80165B18 00161778  7C 08 03 A6 */	mtlr r0
/* 80165B1C 0016177C  38 21 00 10 */	addi r1, r1, 0x10
/* 80165B20 00161780  4E 80 00 20 */	blr

.global func_80165B24
func_80165B24:
/* 80165B24 00161784  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165B28 00161788  7C 08 02 A6 */	mflr r0
/* 80165B2C 0016178C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165B30 00161790  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80165B34 00161794  93 C1 00 08 */	stw r30, 8(r1)
/* 80165B38 00161798  7C 7E 1B 78 */	mr r30, r3
/* 80165B3C 0016179C  80 03 08 74 */	lwz r0, 0x874(r3)
/* 80165B40 001617A0  2C 00 00 00 */	cmpwi r0, 0
/* 80165B44 001617A4  41 82 00 28 */	beq lbl_80165B6C
/* 80165B48 001617A8  48 0F 84 89 */	bl func_8025DFD0
/* 80165B4C 001617AC  48 0F 87 6D */	bl func_8025E2B8
/* 80165B50 001617B0  2C 03 00 00 */	cmpwi r3, 0
/* 80165B54 001617B4  41 82 00 10 */	beq lbl_80165B64
/* 80165B58 001617B8  80 1E 08 74 */	lwz r0, 0x874(r30)
/* 80165B5C 001617BC  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80165B60 001617C0  48 0F A9 99 */	bl func_802604F8
lbl_80165B64:
/* 80165B64 001617C4  38 00 00 00 */	li r0, 0
/* 80165B68 001617C8  90 1E 08 74 */	stw r0, 0x874(r30)
lbl_80165B6C:
/* 80165B6C 001617CC  83 FE 08 78 */	lwz r31, 0x878(r30)
/* 80165B70 001617D0  2C 1F 00 00 */	cmpwi r31, 0
/* 80165B74 001617D4  41 82 00 10 */	beq lbl_80165B84
/* 80165B78 001617D8  48 0F 84 59 */	bl func_8025DFD0
/* 80165B7C 001617DC  7F E4 FB 78 */	mr r4, r31
/* 80165B80 001617E0  48 0F 84 49 */	bl func_8025DFC8
lbl_80165B84:
/* 80165B84 001617E4  38 00 00 00 */	li r0, 0
/* 80165B88 001617E8  90 1E 08 78 */	stw r0, 0x878(r30)
/* 80165B8C 001617EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80165B90 001617F0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80165B94 001617F4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165B98 001617F8  7C 08 03 A6 */	mtlr r0
/* 80165B9C 001617FC  38 21 00 10 */	addi r1, r1, 0x10
/* 80165BA0 00161800  4E 80 00 20 */	blr

.global func_80165BA4
func_80165BA4:
/* 80165BA4 00161804  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80165BA8 00161808  7C 08 02 A6 */	mflr r0
/* 80165BAC 0016180C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80165BB0 00161810  39 61 00 30 */	addi r11, r1, 0x30
/* 80165BB4 00161814  48 06 15 65 */	bl _savegpr_23
/* 80165BB8 00161818  3C C0 80 42 */	lis r6, lbl_80422D48@ha
/* 80165BBC 0016181C  7C 78 1B 78 */	mr r24, r3
/* 80165BC0 00161820  38 C6 2D 48 */	addi r6, r6, lbl_80422D48@l
/* 80165BC4 00161824  7C 99 23 78 */	mr r25, r4
/* 80165BC8 00161828  83 E6 00 38 */	lwz r31, 0x38(r6)
/* 80165BCC 0016182C  7C BA 2B 78 */	mr r26, r5
/* 80165BD0 00161830  7F 07 C3 78 */	mr r7, r24
/* 80165BD4 00161834  3B C0 00 00 */	li r30, 0
/* 80165BD8 00161838  3B A0 FF FF */	li r29, -1
/* 80165BDC 0016183C  3B 80 00 00 */	li r28, 0
/* 80165BE0 00161840  38 C0 00 00 */	li r6, 0
/* 80165BE4 00161844  48 00 00 60 */	b lbl_80165C44
lbl_80165BE8:
/* 80165BE8 00161848  7C A0 07 75 */	extsb. r0, r5
/* 80165BEC 0016184C  38 60 00 00 */	li r3, 0
/* 80165BF0 00161850  41 80 00 0C */	blt lbl_80165BFC
/* 80165BF4 00161854  2C 00 01 00 */	cmpwi r0, 0x100
/* 80165BF8 00161858  41 80 00 08 */	blt lbl_80165C00
lbl_80165BFC:
/* 80165BFC 0016185C  38 60 00 01 */	li r3, 1
lbl_80165C00:
/* 80165C00 00161860  2C 03 00 00 */	cmpwi r3, 0
/* 80165C04 00161864  41 82 00 0C */	beq lbl_80165C10
/* 80165C08 00161868  38 00 00 00 */	li r0, 0
/* 80165C0C 0016186C  48 00 00 18 */	b lbl_80165C24
lbl_80165C10:
/* 80165C10 00161870  7C A0 07 74 */	extsb r0, r5
/* 80165C14 00161874  80 7F 00 08 */	lwz r3, 8(r31)
/* 80165C18 00161878  54 00 08 3C */	slwi r0, r0, 1
/* 80165C1C 0016187C  7C 03 02 2E */	lhzx r0, r3, r0
/* 80165C20 00161880  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_80165C24:
/* 80165C24 00161884  2C 00 00 00 */	cmpwi r0, 0
/* 80165C28 00161888  41 82 00 18 */	beq lbl_80165C40
/* 80165C2C 0016188C  1C 1E 00 0A */	mulli r0, r30, 0xa
/* 80165C30 00161890  7C A3 07 74 */	extsb r3, r5
/* 80165C34 00161894  38 C6 00 01 */	addi r6, r6, 1
/* 80165C38 00161898  7C 63 02 14 */	add r3, r3, r0
/* 80165C3C 0016189C  3B C3 FF D0 */	addi r30, r3, -48
lbl_80165C40:
/* 80165C40 001618A0  38 E7 00 01 */	addi r7, r7, 1
lbl_80165C44:
/* 80165C44 001618A4  88 A7 00 00 */	lbz r5, 0(r7)
/* 80165C48 001618A8  38 00 00 00 */	li r0, 0
/* 80165C4C 001618AC  7C A4 07 75 */	extsb. r4, r5
/* 80165C50 001618B0  41 80 00 0C */	blt lbl_80165C5C
/* 80165C54 001618B4  2C 04 01 00 */	cmpwi r4, 0x100
/* 80165C58 001618B8  41 80 00 08 */	blt lbl_80165C60
lbl_80165C5C:
/* 80165C5C 001618BC  38 00 00 01 */	li r0, 1
lbl_80165C60:
/* 80165C60 001618C0  2C 00 00 00 */	cmpwi r0, 0
/* 80165C64 001618C4  41 82 00 0C */	beq lbl_80165C70
/* 80165C68 001618C8  38 00 00 00 */	li r0, 0
/* 80165C6C 001618CC  48 00 00 14 */	b lbl_80165C80
lbl_80165C70:
/* 80165C70 001618D0  80 7F 00 08 */	lwz r3, 8(r31)
/* 80165C74 001618D4  54 80 08 3C */	slwi r0, r4, 1
/* 80165C78 001618D8  7C 03 02 2E */	lhzx r0, r3, r0
/* 80165C7C 001618DC  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_80165C80:
/* 80165C80 001618E0  2C 00 00 00 */	cmpwi r0, 0
/* 80165C84 001618E4  40 82 FF 64 */	bne lbl_80165BE8
/* 80165C88 001618E8  7C A0 07 74 */	extsb r0, r5
/* 80165C8C 001618EC  2C 00 00 2D */	cmpwi r0, 0x2d
/* 80165C90 001618F0  41 82 FF 58 */	beq lbl_80165BE8
/* 80165C94 001618F4  2C 06 00 08 */	cmpwi r6, 8
/* 80165C98 001618F8  41 82 00 08 */	beq lbl_80165CA0
/* 80165C9C 001618FC  3B C0 FF FF */	li r30, -1
lbl_80165CA0:
/* 80165CA0 00161900  7F 03 C3 78 */	mr r3, r24
/* 80165CA4 00161904  48 06 0E C1 */	bl strlen
/* 80165CA8 00161908  7E F8 1A 14 */	add r23, r24, r3
/* 80165CAC 0016190C  7F 03 C3 78 */	mr r3, r24
/* 80165CB0 00161910  38 80 00 3B */	li r4, 0x3b
/* 80165CB4 00161914  48 06 88 F5 */	bl strchr
/* 80165CB8 00161918  2C 03 00 00 */	cmpwi r3, 0
/* 80165CBC 0016191C  7C 7B 1B 78 */	mr r27, r3
/* 80165CC0 00161920  41 82 00 08 */	beq lbl_80165CC8
/* 80165CC4 00161924  7C 77 1B 78 */	mr r23, r3
lbl_80165CC8:
/* 80165CC8 00161928  7C 18 B8 50 */	subf r0, r24, r23
/* 80165CCC 0016192C  28 00 00 03 */	cmplwi r0, 3
/* 80165CD0 00161930  41 80 00 D0 */	blt lbl_80165DA0
/* 80165CD4 00161934  38 77 FF FD */	addi r3, r23, -3
/* 80165CD8 00161938  38 8D 83 38 */	addi r4, r13, lbl_8063D5F8-_SDA_BASE_
/* 80165CDC 0016193C  38 A0 00 03 */	li r5, 3
/* 80165CE0 00161940  48 06 88 89 */	bl strncmp
/* 80165CE4 00161944  2C 03 00 00 */	cmpwi r3, 0
/* 80165CE8 00161948  40 82 00 0C */	bne lbl_80165CF4
/* 80165CEC 0016194C  3B A0 00 01 */	li r29, 1
/* 80165CF0 00161950  48 00 00 B0 */	b lbl_80165DA0
lbl_80165CF4:
/* 80165CF4 00161954  38 77 FF FD */	addi r3, r23, -3
/* 80165CF8 00161958  38 8D 83 3C */	addi r4, r13, lbl_8063D5FC-_SDA_BASE_
/* 80165CFC 0016195C  38 A0 00 03 */	li r5, 3
/* 80165D00 00161960  48 06 88 69 */	bl strncmp
/* 80165D04 00161964  7C 60 00 34 */	cntlzw r0, r3
/* 80165D08 00161968  54 00 DF FE */	rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 80165D0C 0016196C  7C 00 00 D0 */	neg r0, r0
/* 80165D10 00161970  54 1D 07 BC */	rlwinm r29, r0, 0, 0x1e, 0x1e
/* 80165D14 00161974  48 00 00 8C */	b lbl_80165DA0
lbl_80165D18:
/* 80165D18 00161978  38 7B 00 01 */	addi r3, r27, 1
/* 80165D1C 0016197C  38 8D 83 40 */	addi r4, r13, lbl_8063D600-_SDA_BASE_
/* 80165D20 00161980  38 A0 00 05 */	li r5, 5
/* 80165D24 00161984  48 06 88 45 */	bl strncmp
/* 80165D28 00161988  2C 03 00 00 */	cmpwi r3, 0
/* 80165D2C 0016198C  40 82 00 64 */	bne lbl_80165D90
/* 80165D30 00161990  38 DB 00 06 */	addi r6, r27, 6
/* 80165D34 00161994  48 00 00 18 */	b lbl_80165D4C
lbl_80165D38:
/* 80165D38 00161998  1C 1C 00 0A */	mulli r0, r28, 0xa
/* 80165D3C 0016199C  7C A3 07 74 */	extsb r3, r5
/* 80165D40 001619A0  38 C6 00 01 */	addi r6, r6, 1
/* 80165D44 001619A4  7C 63 02 14 */	add r3, r3, r0
/* 80165D48 001619A8  3B 83 FF D0 */	addi r28, r3, -48
lbl_80165D4C:
/* 80165D4C 001619AC  88 A6 00 00 */	lbz r5, 0(r6)
/* 80165D50 001619B0  38 00 00 00 */	li r0, 0
/* 80165D54 001619B4  7C A4 07 75 */	extsb. r4, r5
/* 80165D58 001619B8  41 80 00 0C */	blt lbl_80165D64
/* 80165D5C 001619BC  2C 04 01 00 */	cmpwi r4, 0x100
/* 80165D60 001619C0  41 80 00 08 */	blt lbl_80165D68
lbl_80165D64:
/* 80165D64 001619C4  38 00 00 01 */	li r0, 1
lbl_80165D68:
/* 80165D68 001619C8  2C 00 00 00 */	cmpwi r0, 0
/* 80165D6C 001619CC  41 82 00 0C */	beq lbl_80165D78
/* 80165D70 001619D0  38 00 00 00 */	li r0, 0
/* 80165D74 001619D4  48 00 00 14 */	b lbl_80165D88
lbl_80165D78:
/* 80165D78 001619D8  80 7F 00 08 */	lwz r3, 8(r31)
/* 80165D7C 001619DC  54 80 08 3C */	slwi r0, r4, 1
/* 80165D80 001619E0  7C 03 02 2E */	lhzx r0, r3, r0
/* 80165D84 001619E4  54 00 07 38 */	rlwinm r0, r0, 0, 0x1c, 0x1c
lbl_80165D88:
/* 80165D88 001619E8  2C 00 00 00 */	cmpwi r0, 0
/* 80165D8C 001619EC  40 82 FF AC */	bne lbl_80165D38
lbl_80165D90:
/* 80165D90 001619F0  38 7B 00 01 */	addi r3, r27, 1
/* 80165D94 001619F4  38 80 00 3B */	li r4, 0x3b
/* 80165D98 001619F8  48 06 88 11 */	bl strchr
/* 80165D9C 001619FC  7C 7B 1B 78 */	mr r27, r3
lbl_80165DA0:
/* 80165DA0 00161A00  2C 1B 00 00 */	cmpwi r27, 0
/* 80165DA4 00161A04  40 82 FF 74 */	bne lbl_80165D18
/* 80165DA8 00161A08  2C 19 00 00 */	cmpwi r25, 0
/* 80165DAC 00161A0C  41 82 00 08 */	beq lbl_80165DB4
/* 80165DB0 00161A10  93 B9 00 00 */	stw r29, 0(r25)
lbl_80165DB4:
/* 80165DB4 00161A14  2C 1A 00 00 */	cmpwi r26, 0
/* 80165DB8 00161A18  41 82 00 08 */	beq lbl_80165DC0
/* 80165DBC 00161A1C  93 9A 00 00 */	stw r28, 0(r26)
lbl_80165DC0:
/* 80165DC0 00161A20  39 61 00 30 */	addi r11, r1, 0x30
/* 80165DC4 00161A24  7F C3 F3 78 */	mr r3, r30
/* 80165DC8 00161A28  48 06 13 9D */	bl _restgpr_23
/* 80165DCC 00161A2C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80165DD0 00161A30  7C 08 03 A6 */	mtlr r0
/* 80165DD4 00161A34  38 21 00 30 */	addi r1, r1, 0x30
/* 80165DD8 00161A38  4E 80 00 20 */	blr

.global func_80165DDC
func_80165DDC:
/* 80165DDC 00161A3C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80165DE0 00161A40  7C 08 02 A6 */	mflr r0
/* 80165DE4 00161A44  3C C0 80 42 */	lis r6, lbl_8041F218@ha
/* 80165DE8 00161A48  2C 04 00 02 */	cmpwi r4, 2
/* 80165DEC 00161A4C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80165DF0 00161A50  38 C6 F2 18 */	addi r6, r6, lbl_8041F218@l
/* 80165DF4 00161A54  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80165DF8 00161A58  3B E0 00 00 */	li r31, 0
/* 80165DFC 00161A5C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80165E00 00161A60  7C 7E 1B 78 */	mr r30, r3
/* 80165E04 00161A64  41 82 00 AC */	beq lbl_80165EB0
/* 80165E08 00161A68  40 80 00 14 */	bge lbl_80165E1C
/* 80165E0C 00161A6C  2C 04 00 00 */	cmpwi r4, 0
/* 80165E10 00161A70  41 82 00 18 */	beq lbl_80165E28
/* 80165E14 00161A74  40 80 00 78 */	bge lbl_80165E8C
/* 80165E18 00161A78  48 00 01 4C */	b lbl_80165F64
lbl_80165E1C:
/* 80165E1C 00161A7C  2C 04 00 04 */	cmpwi r4, 4
/* 80165E20 00161A80  40 80 01 44 */	bge lbl_80165F64
/* 80165E24 00161A84  48 00 00 AC */	b lbl_80165ED0
lbl_80165E28:
/* 80165E28 00161A88  2C 05 00 00 */	cmpwi r5, 0
/* 80165E2C 00161A8C  3B E6 00 00 */	addi r31, r6, 0
/* 80165E30 00161A90  41 82 01 34 */	beq lbl_80165F64
/* 80165E34 00161A94  80 63 18 80 */	lwz r3, 0x1880(r3)
/* 80165E38 00161A98  38 9E 08 7C */	addi r4, r30, 0x87c
/* 80165E3C 00161A9C  38 A0 06 EC */	li r5, 0x6ec
/* 80165E40 00161AA0  4B E9 E1 C1 */	bl memcpy
/* 80165E44 00161AA4  38 00 00 01 */	li r0, 1
/* 80165E48 00161AA8  38 60 02 68 */	li r3, 0x268
/* 80165E4C 00161AAC  90 1E 18 7C */	stw r0, 0x187c(r30)
/* 80165E50 00161AB0  4B FF CC 41 */	bl func_80162A90
/* 80165E54 00161AB4  2C 03 00 01 */	cmpwi r3, 1
/* 80165E58 00161AB8  41 82 00 28 */	beq lbl_80165E80
/* 80165E5C 00161ABC  40 80 01 08 */	bge lbl_80165F64
/* 80165E60 00161AC0  2C 03 00 00 */	cmpwi r3, 0
/* 80165E64 00161AC4  40 80 00 08 */	bge lbl_80165E6C
/* 80165E68 00161AC8  48 00 00 FC */	b lbl_80165F64
lbl_80165E6C:
/* 80165E6C 00161ACC  48 00 2B 35 */	bl func_801689A0
/* 80165E70 00161AD0  48 00 2C FD */	bl func_80168B6C
/* 80165E74 00161AD4  80 7E 18 80 */	lwz r3, 0x1880(r30)
/* 80165E78 00161AD8  4B FF DE 3D */	bl func_80163CB4
/* 80165E7C 00161ADC  48 00 00 E8 */	b lbl_80165F64
lbl_80165E80:
/* 80165E80 00161AE0  38 00 00 00 */	li r0, 0
/* 80165E84 00161AE4  90 1E 08 60 */	stw r0, 0x860(r30)
/* 80165E88 00161AE8  48 00 00 DC */	b lbl_80165F64
lbl_80165E8C:
/* 80165E8C 00161AEC  2C 05 00 00 */	cmpwi r5, 0
/* 80165E90 00161AF0  3B E6 00 1C */	addi r31, r6, 0x1c
/* 80165E94 00161AF4  41 82 00 D0 */	beq lbl_80165F64
/* 80165E98 00161AF8  38 63 08 7C */	addi r3, r3, 0x87c
/* 80165E9C 00161AFC  38 9E 08 4C */	addi r4, r30, 0x84c
/* 80165EA0 00161B00  38 BE 08 50 */	addi r5, r30, 0x850
/* 80165EA4 00161B04  4B FF FD 01 */	bl func_80165BA4
/* 80165EA8 00161B08  90 7E 08 48 */	stw r3, 0x848(r30)
/* 80165EAC 00161B0C  48 00 00 B8 */	b lbl_80165F64
lbl_80165EB0:
/* 80165EB0 00161B10  2C 05 00 00 */	cmpwi r5, 0
/* 80165EB4 00161B14  3B E6 00 34 */	addi r31, r6, 0x34
/* 80165EB8 00161B18  41 82 00 AC */	beq lbl_80165F64
/* 80165EBC 00161B1C  38 83 08 7C */	addi r4, r3, 0x87c
/* 80165EC0 00161B20  38 A0 00 08 */	li r5, 8
/* 80165EC4 00161B24  38 63 08 58 */	addi r3, r3, 0x858
/* 80165EC8 00161B28  4B E9 E1 39 */	bl memcpy
/* 80165ECC 00161B2C  48 00 00 98 */	b lbl_80165F64
lbl_80165ED0:
/* 80165ED0 00161B30  2C 05 00 00 */	cmpwi r5, 0
/* 80165ED4 00161B34  3B E6 00 4C */	addi r31, r6, 0x4c
/* 80165ED8 00161B38  41 82 00 8C */	beq lbl_80165F64
/* 80165EDC 00161B3C  38 61 00 08 */	addi r3, r1, 8
/* 80165EE0 00161B40  38 9E 08 7C */	addi r4, r30, 0x87c
/* 80165EE4 00161B44  38 A0 00 04 */	li r5, 4
/* 80165EE8 00161B48  4B E9 E1 19 */	bl memcpy
/* 80165EEC 00161B4C  48 00 28 E5 */	bl func_801687D0
/* 80165EF0 00161B50  80 01 00 08 */	lwz r0, 8(r1)
/* 80165EF4 00161B54  7C 00 18 40 */	cmplw r0, r3
/* 80165EF8 00161B58  40 82 00 24 */	bne lbl_80165F1C
/* 80165EFC 00161B5C  4B FF D4 89 */	bl func_80163384
/* 80165F00 00161B60  A0 1E 00 00 */	lhz r0, 0(r30)
/* 80165F04 00161B64  7C 03 00 00 */	cmpw r3, r0
/* 80165F08 00161B68  40 80 00 0C */	bge lbl_80165F14
/* 80165F0C 00161B6C  38 00 00 01 */	li r0, 1
/* 80165F10 00161B70  48 00 00 1C */	b lbl_80165F2C
lbl_80165F14:
/* 80165F14 00161B74  38 00 00 00 */	li r0, 0
/* 80165F18 00161B78  48 00 00 14 */	b lbl_80165F2C
lbl_80165F1C:
/* 80165F1C 00161B7C  7C 60 02 78 */	xor r0, r3, r0
/* 80165F20 00161B80  7C 00 00 34 */	cntlzw r0, r0
/* 80165F24 00161B84  7C 60 00 30 */	slw r0, r3, r0
/* 80165F28 00161B88  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_80165F2C:
/* 80165F2C 00161B8C  2C 00 00 00 */	cmpwi r0, 0
/* 80165F30 00161B90  41 82 00 0C */	beq lbl_80165F3C
/* 80165F34 00161B94  48 00 28 65 */	bl func_80168798
/* 80165F38 00161B98  48 00 00 08 */	b lbl_80165F40
lbl_80165F3C:
/* 80165F3C 00161B9C  48 00 28 69 */	bl func_801687A4
lbl_80165F40:
/* 80165F40 00161BA0  4B FF D4 45 */	bl func_80163384
/* 80165F44 00161BA4  A0 1E 00 00 */	lhz r0, 0(r30)
/* 80165F48 00161BA8  7C 03 00 00 */	cmpw r3, r0
/* 80165F4C 00161BAC  40 80 00 0C */	bge lbl_80165F58
/* 80165F50 00161BB0  48 00 28 61 */	bl func_801687B0
/* 80165F54 00161BB4  48 00 00 08 */	b lbl_80165F5C
lbl_80165F58:
/* 80165F58 00161BB8  48 00 28 65 */	bl func_801687BC
lbl_80165F5C:
/* 80165F5C 00161BBC  80 01 00 08 */	lwz r0, 8(r1)
/* 80165F60 00161BC0  90 1E 08 54 */	stw r0, 0x854(r30)
lbl_80165F64:
/* 80165F64 00161BC4  7F E3 FB 78 */	mr r3, r31
/* 80165F68 00161BC8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80165F6C 00161BCC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80165F70 00161BD0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80165F74 00161BD4  7C 08 03 A6 */	mtlr r0
/* 80165F78 00161BD8  38 21 00 20 */	addi r1, r1, 0x20
/* 80165F7C 00161BDC  4E 80 00 20 */	blr

.global func_80165F80
func_80165F80:
/* 80165F80 00161BE0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165F84 00161BE4  7C 08 02 A6 */	mflr r0
/* 80165F88 00161BE8  2C 04 00 00 */	cmpwi r4, 0
/* 80165F8C 00161BEC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165F90 00161BF0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80165F94 00161BF4  3B E0 00 00 */	li r31, 0
/* 80165F98 00161BF8  93 C1 00 08 */	stw r30, 8(r1)
/* 80165F9C 00161BFC  7C 7E 1B 78 */	mr r30, r3
/* 80165FA0 00161C00  41 82 00 08 */	beq lbl_80165FA8
/* 80165FA4 00161C04  48 00 00 40 */	b lbl_80165FE4
lbl_80165FA8:
/* 80165FA8 00161C08  80 03 18 7C */	lwz r0, 0x187c(r3)
/* 80165FAC 00161C0C  2C 00 00 00 */	cmpwi r0, 0
/* 80165FB0 00161C10  41 82 00 0C */	beq lbl_80165FBC
/* 80165FB4 00161C14  3B ED 83 48 */	addi r31, r13, lbl_8063D608-_SDA_BASE_
/* 80165FB8 00161C18  48 00 00 2C */	b lbl_80165FE4
lbl_80165FBC:
/* 80165FBC 00161C1C  2C 05 00 00 */	cmpwi r5, 0
/* 80165FC0 00161C20  3F E0 80 42 */	lis r31, lbl_8041F218@ha
/* 80165FC4 00161C24  3B FF F2 18 */	addi r31, r31, lbl_8041F218@l
/* 80165FC8 00161C28  41 82 00 1C */	beq lbl_80165FE4
/* 80165FCC 00161C2C  80 63 18 80 */	lwz r3, 0x1880(r3)
/* 80165FD0 00161C30  38 9E 08 7C */	addi r4, r30, 0x87c
/* 80165FD4 00161C34  38 A0 06 EC */	li r5, 0x6ec
/* 80165FD8 00161C38  4B E9 E0 29 */	bl memcpy
/* 80165FDC 00161C3C  38 00 00 01 */	li r0, 1
/* 80165FE0 00161C40  90 1E 18 7C */	stw r0, 0x187c(r30)
lbl_80165FE4:
/* 80165FE4 00161C44  7F E3 FB 78 */	mr r3, r31
/* 80165FE8 00161C48  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80165FEC 00161C4C  83 C1 00 08 */	lwz r30, 8(r1)
/* 80165FF0 00161C50  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165FF4 00161C54  7C 08 03 A6 */	mtlr r0
/* 80165FF8 00161C58  38 21 00 10 */	addi r1, r1, 0x10
/* 80165FFC 00161C5C  4E 80 00 20 */	blr

.global func_80166000
func_80166000:
/* 80166000 00161C60  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166004 00161C64  7C 08 02 A6 */	mflr r0
/* 80166008 00161C68  3C C0 80 42 */	lis r6, lbl_8041F218@ha
/* 8016600C 00161C6C  2C 04 00 01 */	cmpwi r4, 1
/* 80166010 00161C70  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166014 00161C74  38 C6 F2 18 */	addi r6, r6, lbl_8041F218@l
/* 80166018 00161C78  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8016601C 00161C7C  3B E0 00 00 */	li r31, 0
/* 80166020 00161C80  93 C1 00 08 */	stw r30, 8(r1)
/* 80166024 00161C84  7C 7E 1B 78 */	mr r30, r3
/* 80166028 00161C88  41 82 00 44 */	beq lbl_8016606C
/* 8016602C 00161C8C  40 80 00 10 */	bge lbl_8016603C
/* 80166030 00161C90  2C 04 00 00 */	cmpwi r4, 0
/* 80166034 00161C94  40 80 00 14 */	bge lbl_80166048
/* 80166038 00161C98  48 00 00 84 */	b lbl_801660BC
lbl_8016603C:
/* 8016603C 00161C9C  2C 04 00 03 */	cmpwi r4, 3
/* 80166040 00161CA0  40 80 00 7C */	bge lbl_801660BC
/* 80166044 00161CA4  48 00 00 58 */	b lbl_8016609C
lbl_80166048:
/* 80166048 00161CA8  2C 05 00 00 */	cmpwi r5, 0
/* 8016604C 00161CAC  3B E6 00 64 */	addi r31, r6, 0x64
/* 80166050 00161CB0  41 82 00 6C */	beq lbl_801660BC
/* 80166054 00161CB4  80 83 18 9C */	lwz r4, 0x189c(r3)
/* 80166058 00161CB8  38 63 08 80 */	addi r3, r3, 0x880
/* 8016605C 00161CBC  48 27 BD 45 */	bl func_803E1DA0
/* 80166060 00161CC0  38 00 00 01 */	li r0, 1
/* 80166064 00161CC4  90 1E 18 98 */	stw r0, 0x1898(r30)
/* 80166068 00161CC8  48 00 00 54 */	b lbl_801660BC
lbl_8016606C:
/* 8016606C 00161CCC  2C 05 00 00 */	cmpwi r5, 0
/* 80166070 00161CD0  3B E6 00 80 */	addi r31, r6, 0x80
/* 80166074 00161CD4  41 82 00 48 */	beq lbl_801660BC
/* 80166078 00161CD8  38 63 08 7C */	addi r3, r3, 0x87c
/* 8016607C 00161CDC  48 27 B8 1D */	bl func_803E1898
/* 80166080 00161CE0  90 7E 18 84 */	stw r3, 0x1884(r30)
/* 80166084 00161CE4  38 7E 08 7C */	addi r3, r30, 0x87c
/* 80166088 00161CE8  80 9E 18 8C */	lwz r4, 0x188c(r30)
/* 8016608C 00161CEC  48 27 B0 91 */	bl func_803E111C
/* 80166090 00161CF0  38 00 00 01 */	li r0, 1
/* 80166094 00161CF4  90 1E 18 88 */	stw r0, 0x1888(r30)
/* 80166098 00161CF8  48 00 00 24 */	b lbl_801660BC
lbl_8016609C:
/* 8016609C 00161CFC  2C 05 00 00 */	cmpwi r5, 0
/* 801660A0 00161D00  3B E6 00 9C */	addi r31, r6, 0x9c
/* 801660A4 00161D04  41 82 00 18 */	beq lbl_801660BC
/* 801660A8 00161D08  80 83 18 94 */	lwz r4, 0x1894(r3)
/* 801660AC 00161D0C  38 63 08 7C */	addi r3, r3, 0x87c
/* 801660B0 00161D10  48 27 BA 15 */	bl func_803E1AC4
/* 801660B4 00161D14  38 00 00 01 */	li r0, 1
/* 801660B8 00161D18  90 1E 18 90 */	stw r0, 0x1890(r30)
lbl_801660BC:
/* 801660BC 00161D1C  7F E3 FB 78 */	mr r3, r31
/* 801660C0 00161D20  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801660C4 00161D24  83 C1 00 08 */	lwz r30, 8(r1)
/* 801660C8 00161D28  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801660CC 00161D2C  7C 08 03 A6 */	mtlr r0
/* 801660D0 00161D30  38 21 00 10 */	addi r1, r1, 0x10
/* 801660D4 00161D34  4E 80 00 20 */	blr

.global func_801660D8
func_801660D8:
/* 801660D8 00161D38  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801660DC 00161D3C  7C 08 02 A6 */	mflr r0
/* 801660E0 00161D40  90 01 00 14 */	stw r0, 0x14(r1)
/* 801660E4 00161D44  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801660E8 00161D48  7C 7F 1B 78 */	mr r31, r3
/* 801660EC 00161D4C  48 0F 7E E5 */	bl func_8025DFD0
/* 801660F0 00161D50  48 0F 81 C9 */	bl func_8025E2B8
/* 801660F4 00161D54  2C 03 00 00 */	cmpwi r3, 0
/* 801660F8 00161D58  41 82 00 50 */	beq lbl_80166148
/* 801660FC 00161D5C  48 0F 7E D5 */	bl func_8025DFD0
/* 80166100 00161D60  48 0F 7F A9 */	bl func_8025E0A8
/* 80166104 00161D64  2C 03 00 02 */	cmpwi r3, 2
/* 80166108 00161D68  41 82 00 2C */	beq lbl_80166134
/* 8016610C 00161D6C  40 80 00 10 */	bge lbl_8016611C
/* 80166110 00161D70  2C 03 00 01 */	cmpwi r3, 1
/* 80166114 00161D74  40 80 00 14 */	bge lbl_80166128
/* 80166118 00161D78  48 00 00 30 */	b lbl_80166148
lbl_8016611C:
/* 8016611C 00161D7C  2C 03 00 04 */	cmpwi r3, 4
/* 80166120 00161D80  40 80 00 28 */	bge lbl_80166148
/* 80166124 00161D84  48 00 00 1C */	b lbl_80166140
lbl_80166128:
/* 80166128 00161D88  7F E3 FB 78 */	mr r3, r31
/* 8016612C 00161D8C  48 00 00 E5 */	bl func_80166210
/* 80166130 00161D90  48 00 00 18 */	b lbl_80166148
lbl_80166134:
/* 80166134 00161D94  7F E3 FB 78 */	mr r3, r31
/* 80166138 00161D98  48 00 00 25 */	bl func_8016615C
/* 8016613C 00161D9C  48 00 00 0C */	b lbl_80166148
lbl_80166140:
/* 80166140 00161DA0  7F E3 FB 78 */	mr r3, r31
/* 80166144 00161DA4  48 00 04 ED */	bl func_80166630
lbl_80166148:
/* 80166148 00161DA8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016614C 00161DAC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80166150 00161DB0  7C 08 03 A6 */	mtlr r0
/* 80166154 00161DB4  38 21 00 10 */	addi r1, r1, 0x10
/* 80166158 00161DB8  4E 80 00 20 */	blr

.global func_8016615C
func_8016615C:
/* 8016615C 00161DBC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166160 00161DC0  7C 08 02 A6 */	mflr r0
/* 80166164 00161DC4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166168 00161DC8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8016616C 00161DCC  7C 7F 1B 78 */	mr r31, r3
/* 80166170 00161DD0  A0 03 08 6C */	lhz r0, 0x86c(r3)
/* 80166174 00161DD4  2C 00 00 01 */	cmpwi r0, 1
/* 80166178 00161DD8  41 82 00 84 */	beq lbl_801661FC
/* 8016617C 00161DDC  40 80 00 80 */	bge lbl_801661FC
/* 80166180 00161DE0  2C 00 00 00 */	cmpwi r0, 0
/* 80166184 00161DE4  40 80 00 08 */	bge lbl_8016618C
/* 80166188 00161DE8  48 00 00 74 */	b lbl_801661FC
lbl_8016618C:
/* 8016618C 00161DEC  4B FF C9 E5 */	bl func_80162B70
/* 80166190 00161DF0  2C 03 00 01 */	cmpwi r3, 1
/* 80166194 00161DF4  40 82 00 4C */	bne lbl_801661E0
/* 80166198 00161DF8  48 0F 7E 39 */	bl func_8025DFD0
/* 8016619C 00161DFC  48 0F 81 79 */	bl func_8025E314
/* 801661A0 00161E00  A0 9F 00 00 */	lhz r4, 0(r31)
/* 801661A4 00161E04  48 0F CE 49 */	bl func_80262FEC
/* 801661A8 00161E08  2C 03 00 00 */	cmpwi r3, 0
/* 801661AC 00161E0C  41 82 00 24 */	beq lbl_801661D0
/* 801661B0 00161E10  38 7F 00 02 */	addi r3, r31, 2
/* 801661B4 00161E14  4B FF F3 81 */	bl func_80165534
/* 801661B8 00161E18  7C 64 1B 78 */	mr r4, r3
/* 801661BC 00161E1C  80 7F 18 9C */	lwz r3, 0x189c(r31)
/* 801661C0 00161E20  38 84 00 0C */	addi r4, r4, 0xc
/* 801661C4 00161E24  38 A0 00 20 */	li r5, 0x20
/* 801661C8 00161E28  4B E9 DE 39 */	bl memcpy
/* 801661CC 00161E2C  48 00 00 0C */	b lbl_801661D8
lbl_801661D0:
/* 801661D0 00161E30  38 7F 00 02 */	addi r3, r31, 2
/* 801661D4 00161E34  4B FF F6 1D */	bl func_801657F0
lbl_801661D8:
/* 801661D8 00161E38  38 00 00 01 */	li r0, 1
/* 801661DC 00161E3C  90 1F 18 98 */	stw r0, 0x1898(r31)
lbl_801661E0:
/* 801661E0 00161E40  4B FF C9 91 */	bl func_80162B70
/* 801661E4 00161E44  2C 03 00 02 */	cmpwi r3, 2
/* 801661E8 00161E48  40 82 00 08 */	bne lbl_801661F0
/* 801661EC 00161E4C  4B FF EB 19 */	bl func_80164D04
lbl_801661F0:
/* 801661F0 00161E50  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 801661F4 00161E54  38 03 00 01 */	addi r0, r3, 1
/* 801661F8 00161E58  B0 1F 08 6C */	sth r0, 0x86c(r31)
lbl_801661FC:
/* 801661FC 00161E5C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80166200 00161E60  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80166204 00161E64  7C 08 03 A6 */	mtlr r0
/* 80166208 00161E68  38 21 00 10 */	addi r1, r1, 0x10
/* 8016620C 00161E6C  4E 80 00 20 */	blr

.global func_80166210
func_80166210:
/* 80166210 00161E70  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80166214 00161E74  7C 08 02 A6 */	mflr r0
/* 80166218 00161E78  90 01 00 24 */	stw r0, 0x24(r1)
/* 8016621C 00161E7C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80166220 00161E80  7C 7F 1B 78 */	mr r31, r3
/* 80166224 00161E84  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80166228 00161E88  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8016622C 00161E8C  80 03 08 64 */	lwz r0, 0x864(r3)
/* 80166230 00161E90  2C 00 00 00 */	cmpwi r0, 0
/* 80166234 00161E94  41 82 00 24 */	beq lbl_80166258
/* 80166238 00161E98  48 0F 7D 99 */	bl func_8025DFD0
/* 8016623C 00161E9C  48 0F 80 D1 */	bl func_8025E30C
/* 80166240 00161EA0  81 83 00 00 */	lwz r12, 0(r3)
/* 80166244 00161EA4  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80166248 00161EA8  81 8C 00 60 */	lwz r12, 0x60(r12)
/* 8016624C 00161EAC  7D 89 03 A6 */	mtctr r12
/* 80166250 00161EB0  4E 80 04 21 */	bctrl
/* 80166254 00161EB4  48 00 03 C0 */	b lbl_80166614
lbl_80166258:
/* 80166258 00161EB8  48 0F 7D 79 */	bl func_8025DFD0
/* 8016625C 00161EBC  48 0F 80 B1 */	bl func_8025E30C
/* 80166260 00161EC0  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80166264 00161EC4  48 0F 86 D5 */	bl func_8025E938
/* 80166268 00161EC8  28 03 00 1E */	cmplwi r3, 0x1e
/* 8016626C 00161ECC  40 81 00 24 */	ble lbl_80166290
/* 80166270 00161ED0  48 0F 7D 61 */	bl func_8025DFD0
/* 80166274 00161ED4  48 0F 80 99 */	bl func_8025E30C
/* 80166278 00161ED8  81 83 00 00 */	lwz r12, 0(r3)
/* 8016627C 00161EDC  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80166280 00161EE0  81 8C 00 60 */	lwz r12, 0x60(r12)
/* 80166284 00161EE4  7D 89 03 A6 */	mtctr r12
/* 80166288 00161EE8  4E 80 04 21 */	bctrl
/* 8016628C 00161EEC  48 00 03 88 */	b lbl_80166614
lbl_80166290:
/* 80166290 00161EF0  A0 9F 08 6C */	lhz r4, 0x86c(r31)
/* 80166294 00161EF4  28 04 00 1E */	cmplwi r4, 0x1e
/* 80166298 00161EF8  41 81 03 7C */	bgt lbl_80166614
/* 8016629C 00161EFC  3C 60 80 42 */	lis r3, lbl_8041F2E8@ha
/* 801662A0 00161F00  54 80 10 3A */	slwi r0, r4, 2
/* 801662A4 00161F04  38 63 F2 E8 */	addi r3, r3, lbl_8041F2E8@l
/* 801662A8 00161F08  7C 63 00 2E */	lwzx r3, r3, r0
/* 801662AC 00161F0C  7C 69 03 A6 */	mtctr r3
/* 801662B0 00161F10  4E 80 04 20 */	bctr
/* 801662B4 00161F14  C0 42 90 34 */	lfs f2, lbl_80641634-_SDA2_BASE_(r2)
/* 801662B8 00161F18  38 04 00 01 */	addi r0, r4, 1
/* 801662BC 00161F1C  C0 2D 86 C8 */	lfs f1, lbl_8063D988-_SDA_BASE_(r13)
/* 801662C0 00161F20  38 60 00 00 */	li r3, 0
/* 801662C4 00161F24  C0 02 90 30 */	lfs f0, lbl_80641630-_SDA2_BASE_(r2)
/* 801662C8 00161F28  EC 22 00 72 */	fmuls f1, f2, f1
/* 801662CC 00161F2C  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801662D0 00161F30  90 7F 08 70 */	stw r3, 0x870(r31)
/* 801662D4 00161F34  EC 00 08 2A */	fadds f0, f0, f1
/* 801662D8 00161F38  FC 00 00 1E */	fctiwz f0, f0
/* 801662DC 00161F3C  D8 01 00 08 */	stfd f0, 8(r1)
/* 801662E0 00161F40  80 01 00 0C */	lwz r0, 0xc(r1)
/* 801662E4 00161F44  90 1F 08 68 */	stw r0, 0x868(r31)
/* 801662E8 00161F48  48 00 03 2C */	b lbl_80166614
/* 801662EC 00161F4C  80 7F 08 68 */	lwz r3, 0x868(r31)
/* 801662F0 00161F50  38 03 FF FF */	addi r0, r3, -1
/* 801662F4 00161F54  2C 03 00 00 */	cmpwi r3, 0
/* 801662F8 00161F58  90 1F 08 68 */	stw r0, 0x868(r31)
/* 801662FC 00161F5C  40 80 03 18 */	bge lbl_80166614
/* 80166300 00161F60  38 04 00 01 */	addi r0, r4, 1
/* 80166304 00161F64  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166308 00161F68  48 00 03 0C */	b lbl_80166614
/* 8016630C 00161F6C  38 00 00 0A */	li r0, 0xa
/* 80166310 00161F70  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166314 00161F74  48 00 03 00 */	b lbl_80166614
/* 80166318 00161F78  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 8016631C 00161F7C  7F E3 FB 78 */	mr r3, r31
/* 80166320 00161F80  38 A0 00 00 */	li r5, 0
/* 80166324 00161F84  4B FF FC DD */	bl func_80166000
/* 80166328 00161F88  2C 03 00 00 */	cmpwi r3, 0
/* 8016632C 00161F8C  7C 7D 1B 78 */	mr r29, r3
/* 80166330 00161F90  40 82 00 10 */	bne lbl_80166340
/* 80166334 00161F94  38 00 00 14 */	li r0, 0x14
/* 80166338 00161F98  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 8016633C 00161F9C  48 00 02 D8 */	b lbl_80166614
lbl_80166340:
/* 80166340 00161FA0  48 0F 7C 91 */	bl func_8025DFD0
/* 80166344 00161FA4  48 0F 7F C9 */	bl func_8025E30C
/* 80166348 00161FA8  A0 9F 00 00 */	lhz r4, 0(r31)
/* 8016634C 00161FAC  7F A5 EB 78 */	mr r5, r29
/* 80166350 00161FB0  48 0F A1 AD */	bl func_802604FC
/* 80166354 00161FB4  90 7F 08 74 */	stw r3, 0x874(r31)
/* 80166358 00161FB8  48 0F 7C 79 */	bl func_8025DFD0
/* 8016635C 00161FBC  48 0F 7F B1 */	bl func_8025E30C
/* 80166360 00161FC0  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166364 00161FC4  38 BF 08 7C */	addi r5, r31, 0x87c
/* 80166368 00161FC8  38 C0 10 00 */	li r6, 0x1000
/* 8016636C 00161FCC  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166370 00161FD0  48 0F A2 11 */	bl func_80260580
/* 80166374 00161FD4  2C 03 00 00 */	cmpwi r3, 0
/* 80166378 00161FD8  40 80 00 28 */	bge lbl_801663A0
/* 8016637C 00161FDC  48 0F 7C 55 */	bl func_8025DFD0
/* 80166380 00161FE0  48 0F 7F 8D */	bl func_8025E30C
/* 80166384 00161FE4  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166388 00161FE8  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 8016638C 00161FEC  48 0F A1 6D */	bl func_802604F8
/* 80166390 00161FF0  38 60 00 00 */	li r3, 0
/* 80166394 00161FF4  38 00 00 01 */	li r0, 1
/* 80166398 00161FF8  90 7F 08 74 */	stw r3, 0x874(r31)
/* 8016639C 00161FFC  90 1F 08 64 */	stw r0, 0x864(r31)
lbl_801663A0:
/* 801663A0 00162000  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 801663A4 00162004  38 03 00 01 */	addi r0, r3, 1
/* 801663A8 00162008  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801663AC 0016200C  48 00 02 68 */	b lbl_80166614
/* 801663B0 00162010  48 0F 7C 21 */	bl func_8025DFD0
/* 801663B4 00162014  48 0F 7F 59 */	bl func_8025E30C
/* 801663B8 00162018  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801663BC 0016201C  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801663C0 00162020  48 0F A0 99 */	bl func_80260458
/* 801663C4 00162024  2C 03 00 00 */	cmpwi r3, 0
/* 801663C8 00162028  40 82 02 4C */	bne lbl_80166614
/* 801663CC 0016202C  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 801663D0 00162030  7F E3 FB 78 */	mr r3, r31
/* 801663D4 00162034  38 A0 00 00 */	li r5, 0
/* 801663D8 00162038  4B FF FC 29 */	bl func_80166000
/* 801663DC 0016203C  48 0F 7B F5 */	bl func_8025DFD0
/* 801663E0 00162040  48 0F 7F 2D */	bl func_8025E30C
/* 801663E4 00162044  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801663E8 00162048  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801663EC 0016204C  48 0F A0 B1 */	bl func_8026049C
/* 801663F0 00162050  2C 03 00 00 */	cmpwi r3, 0
/* 801663F4 00162054  41 81 00 10 */	bgt lbl_80166404
/* 801663F8 00162058  38 00 00 01 */	li r0, 1
/* 801663FC 0016205C  90 1F 08 64 */	stw r0, 0x864(r31)
/* 80166400 00162060  48 00 00 14 */	b lbl_80166414
lbl_80166404:
/* 80166404 00162064  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 80166408 00162068  7F E3 FB 78 */	mr r3, r31
/* 8016640C 0016206C  38 A0 00 01 */	li r5, 1
/* 80166410 00162070  4B FF FB F1 */	bl func_80166000
lbl_80166414:
/* 80166414 00162074  48 0F 7B BD */	bl func_8025DFD0
/* 80166418 00162078  48 0F 7E F5 */	bl func_8025E30C
/* 8016641C 0016207C  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166420 00162080  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166424 00162084  48 0F A0 D5 */	bl func_802604F8
/* 80166428 00162088  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 8016642C 0016208C  38 00 00 00 */	li r0, 0
/* 80166430 00162090  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 80166434 00162094  38 84 00 01 */	addi r4, r4, 1
/* 80166438 00162098  90 1F 08 74 */	stw r0, 0x874(r31)
/* 8016643C 0016209C  38 03 FF FF */	addi r0, r3, -1
/* 80166440 001620A0  90 9F 08 70 */	stw r4, 0x870(r31)
/* 80166444 001620A4  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166448 001620A8  48 00 01 CC */	b lbl_80166614
/* 8016644C 001620AC  80 1F 18 98 */	lwz r0, 0x1898(r31)
/* 80166450 001620B0  38 64 00 01 */	addi r3, r4, 1
/* 80166454 001620B4  B0 7F 08 6C */	sth r3, 0x86c(r31)
/* 80166458 001620B8  2C 00 00 00 */	cmpwi r0, 0
/* 8016645C 001620BC  41 82 01 B8 */	beq lbl_80166614
/* 80166460 001620C0  38 7F 00 02 */	addi r3, r31, 2
/* 80166464 001620C4  4B FF F0 D1 */	bl func_80165534
/* 80166468 001620C8  80 9F 18 9C */	lwz r4, 0x189c(r31)
/* 8016646C 001620CC  38 A0 00 20 */	li r5, 0x20
/* 80166470 001620D0  38 63 00 0C */	addi r3, r3, 0xc
/* 80166474 001620D4  4B E9 DB 8D */	bl memcpy
/* 80166478 001620D8  48 00 01 9C */	b lbl_80166614
/* 8016647C 001620DC  4B FF C6 F5 */	bl func_80162B70
/* 80166480 001620E0  2C 03 00 02 */	cmpwi r3, 2
/* 80166484 001620E4  41 82 00 10 */	beq lbl_80166494
/* 80166488 001620E8  38 00 00 1E */	li r0, 0x1e
/* 8016648C 001620EC  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166490 001620F0  48 00 01 84 */	b lbl_80166614
lbl_80166494:
/* 80166494 001620F4  3F A0 80 42 */	lis r29, lbl_8041F2D0@ha
/* 80166498 001620F8  3B BD F2 D0 */	addi r29, r29, lbl_8041F2D0@l
/* 8016649C 001620FC  48 0F 7B 35 */	bl func_8025DFD0
/* 801664A0 00162100  48 0F 7E 6D */	bl func_8025E30C
/* 801664A4 00162104  A0 9F 00 00 */	lhz r4, 0(r31)
/* 801664A8 00162108  7F A5 EB 78 */	mr r5, r29
/* 801664AC 0016210C  48 0F A0 51 */	bl func_802604FC
/* 801664B0 00162110  83 BF 08 78 */	lwz r29, 0x878(r31)
/* 801664B4 00162114  90 7F 08 74 */	stw r3, 0x874(r31)
/* 801664B8 00162118  2C 1D 00 00 */	cmpwi r29, 0
/* 801664BC 0016211C  41 82 00 10 */	beq lbl_801664CC
/* 801664C0 00162120  48 0F 7B 11 */	bl func_8025DFD0
/* 801664C4 00162124  7F A4 EB 78 */	mr r4, r29
/* 801664C8 00162128  48 0F 7B 01 */	bl func_8025DFC8
lbl_801664CC:
/* 801664CC 0016212C  3B A0 00 00 */	li r29, 0
/* 801664D0 00162130  93 BF 08 78 */	stw r29, 0x878(r31)
/* 801664D4 00162134  48 0F 7A FD */	bl func_8025DFD0
/* 801664D8 00162138  3F C0 00 01 */	lis r30, 0x000121C8@ha
/* 801664DC 0016213C  38 9E 21 C8 */	addi r4, r30, 0x000121C8@l
/* 801664E0 00162140  48 0F 7A E1 */	bl func_8025DFC0
/* 801664E4 00162144  90 7F 08 78 */	stw r3, 0x878(r31)
/* 801664E8 00162148  48 0F 7A E9 */	bl func_8025DFD0
/* 801664EC 0016214C  48 0F 7E 21 */	bl func_8025E30C
/* 801664F0 00162150  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801664F4 00162154  38 DE 21 C8 */	addi r6, r30, 0x21c8
/* 801664F8 00162158  80 BF 08 78 */	lwz r5, 0x878(r31)
/* 801664FC 0016215C  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166500 00162160  48 0F A0 81 */	bl func_80260580
/* 80166504 00162164  2C 03 00 00 */	cmpwi r3, 0
/* 80166508 00162168  40 80 00 50 */	bge lbl_80166558
/* 8016650C 0016216C  48 0F 7A C5 */	bl func_8025DFD0
/* 80166510 00162170  48 0F 7D FD */	bl func_8025E30C
/* 80166514 00162174  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166518 00162178  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 8016651C 0016217C  48 0F 9F DD */	bl func_802604F8
/* 80166520 00162180  83 DF 08 78 */	lwz r30, 0x878(r31)
/* 80166524 00162184  93 BF 08 74 */	stw r29, 0x874(r31)
/* 80166528 00162188  2C 1E 00 00 */	cmpwi r30, 0
/* 8016652C 0016218C  41 82 00 10 */	beq lbl_8016653C
/* 80166530 00162190  48 0F 7A A1 */	bl func_8025DFD0
/* 80166534 00162194  7F C4 F3 78 */	mr r4, r30
/* 80166538 00162198  48 0F 7A 91 */	bl func_8025DFC8
lbl_8016653C:
/* 8016653C 0016219C  38 80 00 00 */	li r4, 0
/* 80166540 001621A0  38 60 00 01 */	li r3, 1
/* 80166544 001621A4  38 00 00 1E */	li r0, 0x1e
/* 80166548 001621A8  90 9F 08 78 */	stw r4, 0x878(r31)
/* 8016654C 001621AC  90 7F 08 64 */	stw r3, 0x864(r31)
/* 80166550 001621B0  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166554 001621B4  48 00 00 C0 */	b lbl_80166614
lbl_80166558:
/* 80166558 001621B8  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 8016655C 001621BC  38 03 00 01 */	addi r0, r3, 1
/* 80166560 001621C0  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166564 001621C4  48 00 00 B0 */	b lbl_80166614
/* 80166568 001621C8  48 0F 7A 69 */	bl func_8025DFD0
/* 8016656C 001621CC  48 0F 7D A1 */	bl func_8025E30C
/* 80166570 001621D0  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166574 001621D4  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166578 001621D8  48 0F 9E E1 */	bl func_80260458
/* 8016657C 001621DC  2C 03 00 00 */	cmpwi r3, 0
/* 80166580 001621E0  40 82 00 94 */	bne lbl_80166614
/* 80166584 001621E4  48 0F 7A 4D */	bl func_8025DFD0
/* 80166588 001621E8  48 0F 7D 85 */	bl func_8025E30C
/* 8016658C 001621EC  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166590 001621F0  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166594 001621F4  48 0F 9F 09 */	bl func_8026049C
/* 80166598 001621F8  2C 03 00 00 */	cmpwi r3, 0
/* 8016659C 001621FC  41 81 00 10 */	bgt lbl_801665AC
/* 801665A0 00162200  38 00 00 01 */	li r0, 1
/* 801665A4 00162204  90 1F 08 64 */	stw r0, 0x864(r31)
/* 801665A8 00162208  48 00 00 18 */	b lbl_801665C0
lbl_801665AC:
/* 801665AC 0016220C  80 7F 08 78 */	lwz r3, 0x878(r31)
/* 801665B0 00162210  80 9F 18 A4 */	lwz r4, 0x18a4(r31)
/* 801665B4 00162214  48 27 B6 CD */	bl func_803E1C80
/* 801665B8 00162218  38 00 00 01 */	li r0, 1
/* 801665BC 0016221C  90 1F 18 A0 */	stw r0, 0x18a0(r31)
lbl_801665C0:
/* 801665C0 00162220  48 0F 7A 11 */	bl func_8025DFD0
/* 801665C4 00162224  48 0F 7D 49 */	bl func_8025E30C
/* 801665C8 00162228  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801665CC 0016222C  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801665D0 00162230  48 0F 9F 29 */	bl func_802604F8
/* 801665D4 00162234  83 BF 08 78 */	lwz r29, 0x878(r31)
/* 801665D8 00162238  38 00 00 00 */	li r0, 0
/* 801665DC 0016223C  90 1F 08 74 */	stw r0, 0x874(r31)
/* 801665E0 00162240  2C 1D 00 00 */	cmpwi r29, 0
/* 801665E4 00162244  41 82 00 10 */	beq lbl_801665F4
/* 801665E8 00162248  48 0F 79 E9 */	bl func_8025DFD0
/* 801665EC 0016224C  7F A4 EB 78 */	mr r4, r29
/* 801665F0 00162250  48 0F 79 D9 */	bl func_8025DFC8
lbl_801665F4:
/* 801665F4 00162254  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 801665F8 00162258  38 00 00 00 */	li r0, 0
/* 801665FC 0016225C  90 1F 08 78 */	stw r0, 0x878(r31)
/* 80166600 00162260  38 03 00 01 */	addi r0, r3, 1
/* 80166604 00162264  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166608 00162268  48 00 00 0C */	b lbl_80166614
/* 8016660C 0016226C  38 00 00 1E */	li r0, 0x1e
/* 80166610 00162270  B0 1F 08 6C */	sth r0, 0x86c(r31)
lbl_80166614:
/* 80166614 00162274  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80166618 00162278  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8016661C 0016227C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80166620 00162280  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80166624 00162284  7C 08 03 A6 */	mtlr r0
/* 80166628 00162288  38 21 00 20 */	addi r1, r1, 0x20
/* 8016662C 0016228C  4E 80 00 20 */	blr

.global func_80166630
func_80166630:
/* 80166630 00162290  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80166634 00162294  7C 08 02 A6 */	mflr r0
/* 80166638 00162298  90 01 00 24 */	stw r0, 0x24(r1)
/* 8016663C 0016229C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80166640 001622A0  7C 7F 1B 78 */	mr r31, r3
/* 80166644 001622A4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80166648 001622A8  80 03 08 64 */	lwz r0, 0x864(r3)
/* 8016664C 001622AC  2C 00 00 00 */	cmpwi r0, 0
/* 80166650 001622B0  41 82 00 24 */	beq lbl_80166674
/* 80166654 001622B4  48 0F 79 7D */	bl func_8025DFD0
/* 80166658 001622B8  48 0F 7C C5 */	bl func_8025E31C
/* 8016665C 001622BC  81 83 00 00 */	lwz r12, 0(r3)
/* 80166660 001622C0  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80166664 001622C4  81 8C 00 60 */	lwz r12, 0x60(r12)
/* 80166668 001622C8  7D 89 03 A6 */	mtctr r12
/* 8016666C 001622CC  4E 80 04 21 */	bctrl
/* 80166670 001622D0  48 00 04 18 */	b lbl_80166A88
lbl_80166674:
/* 80166674 001622D4  48 0F 79 5D */	bl func_8025DFD0
/* 80166678 001622D8  48 0F 7C A5 */	bl func_8025E31C
/* 8016667C 001622DC  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80166680 001622E0  48 0F 82 B9 */	bl func_8025E938
/* 80166684 001622E4  28 03 00 1E */	cmplwi r3, 0x1e
/* 80166688 001622E8  40 81 00 24 */	ble lbl_801666AC
/* 8016668C 001622EC  48 0F 79 45 */	bl func_8025DFD0
/* 80166690 001622F0  48 0F 7C 8D */	bl func_8025E31C
/* 80166694 001622F4  81 83 00 00 */	lwz r12, 0(r3)
/* 80166698 001622F8  A0 9F 00 00 */	lhz r4, 0(r31)
/* 8016669C 001622FC  81 8C 00 60 */	lwz r12, 0x60(r12)
/* 801666A0 00162300  7D 89 03 A6 */	mtctr r12
/* 801666A4 00162304  4E 80 04 21 */	bctrl
/* 801666A8 00162308  48 00 03 E0 */	b lbl_80166A88
lbl_801666AC:
/* 801666AC 0016230C  A0 9F 08 6C */	lhz r4, 0x86c(r31)
/* 801666B0 00162310  2C 04 00 1E */	cmpwi r4, 0x1e
/* 801666B4 00162314  41 82 02 48 */	beq lbl_801668FC
/* 801666B8 00162318  40 80 00 58 */	bge lbl_80166710
/* 801666BC 0016231C  2C 04 00 0A */	cmpwi r4, 0xa
/* 801666C0 00162320  41 82 00 F0 */	beq lbl_801667B0
/* 801666C4 00162324  40 80 00 28 */	bge lbl_801666EC
/* 801666C8 00162328  2C 04 00 01 */	cmpwi r4, 1
/* 801666CC 0016232C  41 82 00 B8 */	beq lbl_80166784
/* 801666D0 00162330  40 80 00 10 */	bge lbl_801666E0
/* 801666D4 00162334  2C 04 00 00 */	cmpwi r4, 0
/* 801666D8 00162338  40 80 00 74 */	bge lbl_8016674C
/* 801666DC 0016233C  48 00 03 A4 */	b lbl_80166A80
lbl_801666E0:
/* 801666E0 00162340  2C 04 00 03 */	cmpwi r4, 3
/* 801666E4 00162344  40 80 03 9C */	bge lbl_80166A80
/* 801666E8 00162348  48 00 00 BC */	b lbl_801667A4
lbl_801666EC:
/* 801666EC 0016234C  2C 04 00 14 */	cmpwi r4, 0x14
/* 801666F0 00162350  41 82 01 F4 */	beq lbl_801668E4
/* 801666F4 00162354  40 80 00 10 */	bge lbl_80166704
/* 801666F8 00162358  2C 04 00 0C */	cmpwi r4, 0xc
/* 801666FC 0016235C  40 80 03 84 */	bge lbl_80166A80
/* 80166700 00162360  48 00 01 48 */	b lbl_80166848
lbl_80166704:
/* 80166704 00162364  2C 04 00 16 */	cmpwi r4, 0x16
/* 80166708 00162368  40 80 03 78 */	bge lbl_80166A80
/* 8016670C 0016236C  48 00 01 E4 */	b lbl_801668F0
lbl_80166710:
/* 80166710 00162370  2C 04 00 6E */	cmpwi r4, 0x6e
/* 80166714 00162374  41 82 03 60 */	beq lbl_80166A74
/* 80166718 00162378  40 80 00 28 */	bge lbl_80166740
/* 8016671C 0016237C  2C 04 00 65 */	cmpwi r4, 0x65
/* 80166720 00162380  41 82 01 FC */	beq lbl_8016691C
/* 80166724 00162384  40 80 00 10 */	bge lbl_80166734
/* 80166728 00162388  2C 04 00 64 */	cmpwi r4, 0x64
/* 8016672C 0016238C  40 80 01 DC */	bge lbl_80166908
/* 80166730 00162390  48 00 03 50 */	b lbl_80166A80
lbl_80166734:
/* 80166734 00162394  2C 04 00 67 */	cmpwi r4, 0x67
/* 80166738 00162398  40 80 03 48 */	bge lbl_80166A80
/* 8016673C 0016239C  48 00 02 9C */	b lbl_801669D8
lbl_80166740:
/* 80166740 001623A0  2C 04 03 E7 */	cmpwi r4, 0x3e7
/* 80166744 001623A4  41 82 03 3C */	beq lbl_80166A80
/* 80166748 001623A8  48 00 03 38 */	b lbl_80166A80
lbl_8016674C:
/* 8016674C 001623AC  C0 42 90 38 */	lfs f2, lbl_80641638-_SDA2_BASE_(r2)
/* 80166750 001623B0  38 04 00 01 */	addi r0, r4, 1
/* 80166754 001623B4  C0 2D 86 C8 */	lfs f1, lbl_8063D988-_SDA_BASE_(r13)
/* 80166758 001623B8  38 60 00 00 */	li r3, 0
/* 8016675C 001623BC  C0 02 90 30 */	lfs f0, lbl_80641630-_SDA2_BASE_(r2)
/* 80166760 001623C0  EC 22 00 72 */	fmuls f1, f2, f1
/* 80166764 001623C4  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166768 001623C8  90 7F 08 70 */	stw r3, 0x870(r31)
/* 8016676C 001623CC  EC 00 08 2A */	fadds f0, f0, f1
/* 80166770 001623D0  FC 00 00 1E */	fctiwz f0, f0
/* 80166774 001623D4  D8 01 00 08 */	stfd f0, 8(r1)
/* 80166778 001623D8  80 01 00 0C */	lwz r0, 0xc(r1)
/* 8016677C 001623DC  90 1F 08 68 */	stw r0, 0x868(r31)
/* 80166780 001623E0  48 00 03 08 */	b lbl_80166A88
lbl_80166784:
/* 80166784 001623E4  80 7F 08 68 */	lwz r3, 0x868(r31)
/* 80166788 001623E8  38 03 FF FF */	addi r0, r3, -1
/* 8016678C 001623EC  2C 03 00 00 */	cmpwi r3, 0
/* 80166790 001623F0  90 1F 08 68 */	stw r0, 0x868(r31)
/* 80166794 001623F4  40 80 02 F4 */	bge lbl_80166A88
/* 80166798 001623F8  38 04 00 01 */	addi r0, r4, 1
/* 8016679C 001623FC  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801667A0 00162400  48 00 02 E8 */	b lbl_80166A88
lbl_801667A4:
/* 801667A4 00162404  38 00 00 0A */	li r0, 0xa
/* 801667A8 00162408  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801667AC 0016240C  48 00 02 DC */	b lbl_80166A88
lbl_801667B0:
/* 801667B0 00162410  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 801667B4 00162414  7F E3 FB 78 */	mr r3, r31
/* 801667B8 00162418  38 A0 00 00 */	li r5, 0
/* 801667BC 0016241C  4B FF F6 21 */	bl func_80165DDC
/* 801667C0 00162420  2C 03 00 00 */	cmpwi r3, 0
/* 801667C4 00162424  7C 7E 1B 78 */	mr r30, r3
/* 801667C8 00162428  40 82 00 10 */	bne lbl_801667D8
/* 801667CC 0016242C  38 00 00 14 */	li r0, 0x14
/* 801667D0 00162430  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801667D4 00162434  48 00 02 B4 */	b lbl_80166A88
lbl_801667D8:
/* 801667D8 00162438  48 0F 77 F9 */	bl func_8025DFD0
/* 801667DC 0016243C  48 0F 7B 41 */	bl func_8025E31C
/* 801667E0 00162440  A0 9F 00 00 */	lhz r4, 0(r31)
/* 801667E4 00162444  7F C5 F3 78 */	mr r5, r30
/* 801667E8 00162448  48 0F 9D 15 */	bl func_802604FC
/* 801667EC 0016244C  90 7F 08 74 */	stw r3, 0x874(r31)
/* 801667F0 00162450  48 0F 77 E1 */	bl func_8025DFD0
/* 801667F4 00162454  48 0F 7B 29 */	bl func_8025E31C
/* 801667F8 00162458  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801667FC 0016245C  38 BF 08 7C */	addi r5, r31, 0x87c
/* 80166800 00162460  38 C0 10 00 */	li r6, 0x1000
/* 80166804 00162464  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166808 00162468  48 0F 9D 79 */	bl func_80260580
/* 8016680C 0016246C  2C 03 00 00 */	cmpwi r3, 0
/* 80166810 00162470  40 80 00 28 */	bge lbl_80166838
/* 80166814 00162474  48 0F 77 BD */	bl func_8025DFD0
/* 80166818 00162478  48 0F 7B 05 */	bl func_8025E31C
/* 8016681C 0016247C  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166820 00162480  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166824 00162484  48 0F 9C D5 */	bl func_802604F8
/* 80166828 00162488  38 60 00 00 */	li r3, 0
/* 8016682C 0016248C  38 00 00 01 */	li r0, 1
/* 80166830 00162490  90 7F 08 74 */	stw r3, 0x874(r31)
/* 80166834 00162494  90 1F 08 64 */	stw r0, 0x864(r31)
lbl_80166838:
/* 80166838 00162498  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 8016683C 0016249C  38 03 00 01 */	addi r0, r3, 1
/* 80166840 001624A0  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166844 001624A4  48 00 02 44 */	b lbl_80166A88
lbl_80166848:
/* 80166848 001624A8  48 0F 77 89 */	bl func_8025DFD0
/* 8016684C 001624AC  48 0F 7A D1 */	bl func_8025E31C
/* 80166850 001624B0  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166854 001624B4  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166858 001624B8  48 0F 9C 01 */	bl func_80260458
/* 8016685C 001624BC  2C 03 00 00 */	cmpwi r3, 0
/* 80166860 001624C0  40 82 02 28 */	bne lbl_80166A88
/* 80166864 001624C4  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 80166868 001624C8  7F E3 FB 78 */	mr r3, r31
/* 8016686C 001624CC  38 A0 00 00 */	li r5, 0
/* 80166870 001624D0  4B FF F5 6D */	bl func_80165DDC
/* 80166874 001624D4  48 0F 77 5D */	bl func_8025DFD0
/* 80166878 001624D8  48 0F 7A A5 */	bl func_8025E31C
/* 8016687C 001624DC  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166880 001624E0  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166884 001624E4  48 0F 9C 19 */	bl func_8026049C
/* 80166888 001624E8  2C 03 00 00 */	cmpwi r3, 0
/* 8016688C 001624EC  41 81 00 10 */	bgt lbl_8016689C
/* 80166890 001624F0  38 00 00 01 */	li r0, 1
/* 80166894 001624F4  90 1F 08 64 */	stw r0, 0x864(r31)
/* 80166898 001624F8  48 00 00 14 */	b lbl_801668AC
lbl_8016689C:
/* 8016689C 001624FC  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 801668A0 00162500  7F E3 FB 78 */	mr r3, r31
/* 801668A4 00162504  38 A0 00 01 */	li r5, 1
/* 801668A8 00162508  4B FF F5 35 */	bl func_80165DDC
lbl_801668AC:
/* 801668AC 0016250C  48 0F 77 25 */	bl func_8025DFD0
/* 801668B0 00162510  48 0F 7A 6D */	bl func_8025E31C
/* 801668B4 00162514  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801668B8 00162518  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801668BC 0016251C  48 0F 9C 3D */	bl func_802604F8
/* 801668C0 00162520  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 801668C4 00162524  38 00 00 00 */	li r0, 0
/* 801668C8 00162528  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 801668CC 0016252C  38 84 00 01 */	addi r4, r4, 1
/* 801668D0 00162530  90 1F 08 74 */	stw r0, 0x874(r31)
/* 801668D4 00162534  38 03 FF FF */	addi r0, r3, -1
/* 801668D8 00162538  90 9F 08 70 */	stw r4, 0x870(r31)
/* 801668DC 0016253C  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801668E0 00162540  48 00 01 A8 */	b lbl_80166A88
lbl_801668E4:
/* 801668E4 00162544  38 04 00 01 */	addi r0, r4, 1
/* 801668E8 00162548  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801668EC 0016254C  48 00 01 9C */	b lbl_80166A88
lbl_801668F0:
/* 801668F0 00162550  38 00 00 1E */	li r0, 0x1e
/* 801668F4 00162554  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801668F8 00162558  48 00 01 90 */	b lbl_80166A88
lbl_801668FC:
/* 801668FC 0016255C  38 00 00 64 */	li r0, 0x64
/* 80166900 00162560  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166904 00162564  48 00 01 84 */	b lbl_80166A88
lbl_80166908:
/* 80166908 00162568  38 04 00 01 */	addi r0, r4, 1
/* 8016690C 0016256C  38 60 00 00 */	li r3, 0
/* 80166910 00162570  90 7F 08 70 */	stw r3, 0x870(r31)
/* 80166914 00162574  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166918 00162578  48 00 01 70 */	b lbl_80166A88
lbl_8016691C:
/* 8016691C 0016257C  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 80166920 00162580  7F E3 FB 78 */	mr r3, r31
/* 80166924 00162584  38 A0 00 00 */	li r5, 0
/* 80166928 00162588  4B FF F6 59 */	bl func_80165F80
/* 8016692C 0016258C  2C 03 00 00 */	cmpwi r3, 0
/* 80166930 00162590  7C 7E 1B 78 */	mr r30, r3
/* 80166934 00162594  40 82 00 18 */	bne lbl_8016694C
/* 80166938 00162598  38 60 00 00 */	li r3, 0
/* 8016693C 0016259C  38 00 00 6E */	li r0, 0x6e
/* 80166940 001625A0  90 7F 08 70 */	stw r3, 0x870(r31)
/* 80166944 001625A4  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166948 001625A8  48 00 01 40 */	b lbl_80166A88
lbl_8016694C:
/* 8016694C 001625AC  88 03 00 00 */	lbz r0, 0(r3)
/* 80166950 001625B0  7C 00 07 75 */	extsb. r0, r0
/* 80166954 001625B4  40 82 00 14 */	bne lbl_80166968
/* 80166958 001625B8  80 7F 08 70 */	lwz r3, 0x870(r31)
/* 8016695C 001625BC  38 03 00 01 */	addi r0, r3, 1
/* 80166960 001625C0  90 1F 08 70 */	stw r0, 0x870(r31)
/* 80166964 001625C4  48 00 01 24 */	b lbl_80166A88
lbl_80166968:
/* 80166968 001625C8  48 0F 76 69 */	bl func_8025DFD0
/* 8016696C 001625CC  48 0F 79 B1 */	bl func_8025E31C
/* 80166970 001625D0  A0 9F 00 00 */	lhz r4, 0(r31)
/* 80166974 001625D4  7F C5 F3 78 */	mr r5, r30
/* 80166978 001625D8  48 0F 9B 85 */	bl func_802604FC
/* 8016697C 001625DC  90 7F 08 74 */	stw r3, 0x874(r31)
/* 80166980 001625E0  48 0F 76 51 */	bl func_8025DFD0
/* 80166984 001625E4  48 0F 79 99 */	bl func_8025E31C
/* 80166988 001625E8  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 8016698C 001625EC  38 BF 08 7C */	addi r5, r31, 0x87c
/* 80166990 001625F0  38 C0 10 00 */	li r6, 0x1000
/* 80166994 001625F4  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166998 001625F8  48 0F 9B E9 */	bl func_80260580
/* 8016699C 001625FC  2C 03 00 00 */	cmpwi r3, 0
/* 801669A0 00162600  40 80 00 28 */	bge lbl_801669C8
/* 801669A4 00162604  48 0F 76 2D */	bl func_8025DFD0
/* 801669A8 00162608  48 0F 79 75 */	bl func_8025E31C
/* 801669AC 0016260C  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801669B0 00162610  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801669B4 00162614  48 0F 9B 45 */	bl func_802604F8
/* 801669B8 00162618  38 60 00 00 */	li r3, 0
/* 801669BC 0016261C  38 00 00 01 */	li r0, 1
/* 801669C0 00162620  90 7F 08 74 */	stw r3, 0x874(r31)
/* 801669C4 00162624  90 1F 08 64 */	stw r0, 0x864(r31)
lbl_801669C8:
/* 801669C8 00162628  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 801669CC 0016262C  38 03 00 01 */	addi r0, r3, 1
/* 801669D0 00162630  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 801669D4 00162634  48 00 00 B4 */	b lbl_80166A88
lbl_801669D8:
/* 801669D8 00162638  48 0F 75 F9 */	bl func_8025DFD0
/* 801669DC 0016263C  48 0F 79 41 */	bl func_8025E31C
/* 801669E0 00162640  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 801669E4 00162644  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 801669E8 00162648  48 0F 9A 71 */	bl func_80260458
/* 801669EC 0016264C  2C 03 00 00 */	cmpwi r3, 0
/* 801669F0 00162650  40 82 00 98 */	bne lbl_80166A88
/* 801669F4 00162654  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 801669F8 00162658  7F E3 FB 78 */	mr r3, r31
/* 801669FC 0016265C  38 A0 00 00 */	li r5, 0
/* 80166A00 00162660  4B FF F5 81 */	bl func_80165F80
/* 80166A04 00162664  48 0F 75 CD */	bl func_8025DFD0
/* 80166A08 00162668  48 0F 79 15 */	bl func_8025E31C
/* 80166A0C 0016266C  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166A10 00162670  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166A14 00162674  48 0F 9A 89 */	bl func_8026049C
/* 80166A18 00162678  2C 03 00 00 */	cmpwi r3, 0
/* 80166A1C 0016267C  41 81 00 10 */	bgt lbl_80166A2C
/* 80166A20 00162680  38 00 00 01 */	li r0, 1
/* 80166A24 00162684  90 1F 08 64 */	stw r0, 0x864(r31)
/* 80166A28 00162688  48 00 00 14 */	b lbl_80166A3C
lbl_80166A2C:
/* 80166A2C 0016268C  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 80166A30 00162690  7F E3 FB 78 */	mr r3, r31
/* 80166A34 00162694  38 A0 00 01 */	li r5, 1
/* 80166A38 00162698  4B FF F5 49 */	bl func_80165F80
lbl_80166A3C:
/* 80166A3C 0016269C  48 0F 75 95 */	bl func_8025DFD0
/* 80166A40 001626A0  48 0F 78 DD */	bl func_8025E31C
/* 80166A44 001626A4  80 1F 08 74 */	lwz r0, 0x874(r31)
/* 80166A48 001626A8  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 80166A4C 001626AC  48 0F 9A AD */	bl func_802604F8
/* 80166A50 001626B0  80 9F 08 70 */	lwz r4, 0x870(r31)
/* 80166A54 001626B4  38 00 00 00 */	li r0, 0
/* 80166A58 001626B8  A0 7F 08 6C */	lhz r3, 0x86c(r31)
/* 80166A5C 001626BC  38 84 00 01 */	addi r4, r4, 1
/* 80166A60 001626C0  90 1F 08 74 */	stw r0, 0x874(r31)
/* 80166A64 001626C4  38 03 FF FF */	addi r0, r3, -1
/* 80166A68 001626C8  90 9F 08 70 */	stw r4, 0x870(r31)
/* 80166A6C 001626CC  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166A70 001626D0  48 00 00 18 */	b lbl_80166A88
lbl_80166A74:
/* 80166A74 001626D4  38 00 03 E7 */	li r0, 0x3e7
/* 80166A78 001626D8  B0 1F 08 6C */	sth r0, 0x86c(r31)
/* 80166A7C 001626DC  48 00 00 0C */	b lbl_80166A88
lbl_80166A80:
/* 80166A80 001626E0  38 00 00 64 */	li r0, 0x64
/* 80166A84 001626E4  B0 1F 08 6C */	sth r0, 0x86c(r31)
lbl_80166A88:
/* 80166A88 001626E8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80166A8C 001626EC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80166A90 001626F0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80166A94 001626F4  7C 08 03 A6 */	mtlr r0
/* 80166A98 001626F8  38 21 00 20 */	addi r1, r1, 0x20
/* 80166A9C 001626FC  4E 80 00 20 */	blr

.global func_80166AA0
func_80166AA0:
/* 80166AA0 00162700  38 00 00 01 */	li r0, 1
/* 80166AA4 00162704  90 03 08 64 */	stw r0, 0x864(r3)
/* 80166AA8 00162708  4E 80 00 20 */	blr

.global func_80166AAC
func_80166AAC:
/* 80166AAC 0016270C  38 63 00 02 */	addi r3, r3, 2
/* 80166AB0 00162710  4E 80 00 20 */	blr

.global func_80166AB4
func_80166AB4:
/* 80166AB4 00162714  80 63 08 54 */	lwz r3, 0x854(r3)
/* 80166AB8 00162718  4E 80 00 20 */	blr

.global func_80166ABC
func_80166ABC:
/* 80166ABC 0016271C  80 63 08 4C */	lwz r3, 0x84c(r3)
/* 80166AC0 00162720  4E 80 00 20 */	blr

.global func_80166AC4
func_80166AC4:
/* 80166AC4 00162724  80 63 08 58 */	lwz r3, 0x858(r3)
/* 80166AC8 00162728  4E 80 00 20 */	blr

.global func_80166ACC
func_80166ACC:
/* 80166ACC 0016272C  80 63 08 5C */	lwz r3, 0x85c(r3)
/* 80166AD0 00162730  4E 80 00 20 */	blr

.global func_80166AD4
func_80166AD4:
/* 80166AD4 00162734  80 03 18 88 */	lwz r0, 0x1888(r3)
/* 80166AD8 00162738  2C 00 00 00 */	cmpwi r0, 0
/* 80166ADC 0016273C  41 82 00 0C */	beq lbl_80166AE8
/* 80166AE0 00162740  80 63 18 8C */	lwz r3, 0x188c(r3)
/* 80166AE4 00162744  4E 80 00 20 */	blr
lbl_80166AE8:
/* 80166AE8 00162748  38 60 00 00 */	li r3, 0
/* 80166AEC 0016274C  4E 80 00 20 */	blr

.global func_80166AF0
func_80166AF0:
/* 80166AF0 00162750  80 63 18 84 */	lwz r3, 0x1884(r3)
/* 80166AF4 00162754  7C 03 00 D0 */	neg r0, r3
/* 80166AF8 00162758  7C 00 1B 78 */	or r0, r0, r3
/* 80166AFC 0016275C  54 03 0F FE */	srwi r3, r0, 0x1f
/* 80166B00 00162760  4E 80 00 20 */	blr

.global func_80166B04
func_80166B04:
/* 80166B04 00162764  80 03 18 98 */	lwz r0, 0x1898(r3)
/* 80166B08 00162768  2C 00 00 00 */	cmpwi r0, 0
/* 80166B0C 0016276C  41 82 00 0C */	beq lbl_80166B18
/* 80166B10 00162770  80 63 18 9C */	lwz r3, 0x189c(r3)
/* 80166B14 00162774  4E 80 00 20 */	blr
lbl_80166B18:
/* 80166B18 00162778  38 60 00 00 */	li r3, 0
/* 80166B1C 0016277C  4E 80 00 20 */	blr

.global func_80166B20
func_80166B20:
/* 80166B20 00162780  80 03 18 A0 */	lwz r0, 0x18a0(r3)
/* 80166B24 00162784  2C 00 00 00 */	cmpwi r0, 0
/* 80166B28 00162788  41 82 00 0C */	beq lbl_80166B34
/* 80166B2C 0016278C  80 63 18 A4 */	lwz r3, 0x18a4(r3)
/* 80166B30 00162790  4E 80 00 20 */	blr
lbl_80166B34:
/* 80166B34 00162794  38 60 00 00 */	li r3, 0
/* 80166B38 00162798  4E 80 00 20 */	blr

.global func_80166B3C
func_80166B3C:
/* 80166B3C 0016279C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166B40 001627A0  7C 08 02 A6 */	mflr r0
/* 80166B44 001627A4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166B48 001627A8  A0 63 00 00 */	lhz r3, 0(r3)
/* 80166B4C 001627AC  4B FF CF E5 */	bl func_80163B30
/* 80166B50 001627B0  38 00 00 00 */	li r0, 0
/* 80166B54 001627B4  2C 03 00 00 */	cmpwi r3, 0
/* 80166B58 001627B8  90 01 00 08 */	stw r0, 8(r1)
/* 80166B5C 001627BC  41 80 00 18 */	blt lbl_80166B74
/* 80166B60 001627C0  3C 80 80 42 */	lis r4, lbl_8041F364@ha
/* 80166B64 001627C4  38 A1 00 08 */	addi r5, r1, 8
/* 80166B68 001627C8  38 84 F3 64 */	addi r4, r4, lbl_8041F364@l
/* 80166B6C 001627CC  38 C0 00 04 */	li r6, 4
/* 80166B70 001627D0  4B FF DC B5 */	bl func_80164824
lbl_80166B74:
/* 80166B74 001627D4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80166B78 001627D8  7C 08 03 A6 */	mtlr r0
/* 80166B7C 001627DC  38 21 00 10 */	addi r1, r1, 0x10
/* 80166B80 001627E0  4E 80 00 20 */	blr

.global func_80166B84
func_80166B84:
/* 80166B84 001627E4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166B88 001627E8  7C 08 02 A6 */	mflr r0
/* 80166B8C 001627EC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166B90 001627F0  A0 63 00 00 */	lhz r3, 0(r3)
/* 80166B94 001627F4  4B FF CF 9D */	bl func_80163B30
/* 80166B98 001627F8  38 00 00 00 */	li r0, 0
/* 80166B9C 001627FC  2C 03 00 00 */	cmpwi r3, 0
/* 80166BA0 00162800  90 01 00 08 */	stw r0, 8(r1)
/* 80166BA4 00162804  41 80 00 18 */	blt lbl_80166BBC
/* 80166BA8 00162808  3C 80 80 42 */	lis r4, lbl_8041F370@ha
/* 80166BAC 0016280C  38 A1 00 08 */	addi r5, r1, 8
/* 80166BB0 00162810  38 84 F3 70 */	addi r4, r4, lbl_8041F370@l
/* 80166BB4 00162814  38 C0 00 04 */	li r6, 4
/* 80166BB8 00162818  4B FF DC 6D */	bl func_80164824
lbl_80166BBC:
/* 80166BBC 0016281C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80166BC0 00162820  7C 08 03 A6 */	mtlr r0
/* 80166BC4 00162824  38 21 00 10 */	addi r1, r1, 0x10
/* 80166BC8 00162828  4E 80 00 20 */	blr

.global func_80166BCC
func_80166BCC:
/* 80166BCC 0016282C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166BD0 00162830  7C 08 02 A6 */	mflr r0
/* 80166BD4 00162834  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166BD8 00162838  A0 63 00 00 */	lhz r3, 0(r3)
/* 80166BDC 0016283C  4B FF CF 55 */	bl func_80163B30
/* 80166BE0 00162840  38 00 00 00 */	li r0, 0
/* 80166BE4 00162844  2C 03 00 00 */	cmpwi r3, 0
/* 80166BE8 00162848  90 01 00 08 */	stw r0, 8(r1)
/* 80166BEC 0016284C  41 80 00 18 */	blt lbl_80166C04
/* 80166BF0 00162850  3C 80 80 42 */	lis r4, lbl_8041F37C@ha
/* 80166BF4 00162854  38 A1 00 08 */	addi r5, r1, 8
/* 80166BF8 00162858  38 84 F3 7C */	addi r4, r4, lbl_8041F37C@l
/* 80166BFC 0016285C  38 C0 00 04 */	li r6, 4
/* 80166C00 00162860  4B FF DC 25 */	bl func_80164824
lbl_80166C04:
/* 80166C04 00162864  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80166C08 00162868  7C 08 03 A6 */	mtlr r0
/* 80166C0C 0016286C  38 21 00 10 */	addi r1, r1, 0x10
/* 80166C10 00162870  4E 80 00 20 */	blr

.global func_80166C14
func_80166C14:
/* 80166C14 00162874  90 83 19 68 */	stw r4, 0x1968(r3)
/* 80166C18 00162878  4E 80 00 20 */	blr

.global func_80166C1C
func_80166C1C:
/* 80166C1C 0016287C  80 63 19 68 */	lwz r3, 0x1968(r3)
/* 80166C20 00162880  4E 80 00 20 */	blr

.global func_80166C24
func_80166C24:
/* 80166C24 00162884  38 00 00 00 */	li r0, 0
/* 80166C28 00162888  38 80 00 00 */	li r4, 0
/* 80166C2C 0016288C  90 03 18 C4 */	stw r0, 0x18c4(r3)
/* 80166C30 00162890  38 A0 00 0C */	li r5, 0xc
/* 80166C34 00162894  38 63 18 C8 */	addi r3, r3, 0x18c8
/* 80166C38 00162898  4B E9 D4 CC */	b memset

.global func_80166C3C
func_80166C3C:
/* 80166C3C 0016289C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166C40 001628A0  7C 08 02 A6 */	mflr r0
/* 80166C44 001628A4  38 A0 00 0C */	li r5, 0xc
/* 80166C48 001628A8  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166C4C 001628AC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80166C50 001628B0  7C 7F 1B 78 */	mr r31, r3
/* 80166C54 001628B4  38 63 18 C8 */	addi r3, r3, 0x18c8
/* 80166C58 001628B8  4B E9 D3 A9 */	bl memcpy
/* 80166C5C 001628BC  38 00 00 01 */	li r0, 1
/* 80166C60 001628C0  90 1F 18 C4 */	stw r0, 0x18c4(r31)
/* 80166C64 001628C4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80166C68 001628C8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80166C6C 001628CC  7C 08 03 A6 */	mtlr r0
/* 80166C70 001628D0  38 21 00 10 */	addi r1, r1, 0x10
/* 80166C74 001628D4  4E 80 00 20 */	blr

.global func_80166C78
func_80166C78:
/* 80166C78 001628D8  80 03 18 C4 */	lwz r0, 0x18c4(r3)
/* 80166C7C 001628DC  2C 00 00 00 */	cmpwi r0, 0
/* 80166C80 001628E0  41 82 00 0C */	beq lbl_80166C8C
/* 80166C84 001628E4  38 63 18 C8 */	addi r3, r3, 0x18c8
/* 80166C88 001628E8  4E 80 00 20 */	blr
lbl_80166C8C:
/* 80166C8C 001628EC  38 60 00 00 */	li r3, 0
/* 80166C90 001628F0  4E 80 00 20 */	blr

.global func_80166C94
func_80166C94:
/* 80166C94 001628F4  38 00 00 00 */	li r0, 0
/* 80166C98 001628F8  38 80 00 00 */	li r4, 0
/* 80166C9C 001628FC  90 03 18 D4 */	stw r0, 0x18d4(r3)
/* 80166CA0 00162900  38 A0 00 80 */	li r5, 0x80
/* 80166CA4 00162904  38 63 18 D8 */	addi r3, r3, 0x18d8
/* 80166CA8 00162908  4B E9 D4 5C */	b memset

.global func_80166CAC
func_80166CAC:
/* 80166CAC 0016290C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80166CB0 00162910  7C 08 02 A6 */	mflr r0
/* 80166CB4 00162914  38 A0 00 80 */	li r5, 0x80
/* 80166CB8 00162918  90 01 00 14 */	stw r0, 0x14(r1)
/* 80166CBC 0016291C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80166CC0 00162920  7C 7F 1B 78 */	mr r31, r3
/* 80166CC4 00162924  38 63 18 D8 */	addi r3, r3, 0x18d8
/* 80166CC8 00162928  4B E9 D3 39 */	bl memcpy
/* 80166CCC 0016292C  38 00 00 01 */	li r0, 1
/* 80166CD0 00162930  90 1F 18 D4 */	stw r0, 0x18d4(r31)
/* 80166CD4 00162934  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80166CD8 00162938  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80166CDC 0016293C  7C 08 03 A6 */	mtlr r0
/* 80166CE0 00162940  38 21 00 10 */	addi r1, r1, 0x10
/* 80166CE4 00162944  4E 80 00 20 */	blr

.global func_80166CE8
func_80166CE8:
/* 80166CE8 00162948  80 03 18 D4 */	lwz r0, 0x18d4(r3)
/* 80166CEC 0016294C  2C 00 00 00 */	cmpwi r0, 0
/* 80166CF0 00162950  41 82 00 0C */	beq lbl_80166CFC
/* 80166CF4 00162954  38 63 18 D8 */	addi r3, r3, 0x18d8
/* 80166CF8 00162958  4E 80 00 20 */	blr
lbl_80166CFC:
/* 80166CFC 0016295C  38 60 00 00 */	li r3, 0
/* 80166D00 00162960  4E 80 00 20 */	blr

.global func_80166D04
func_80166D04:
/* 80166D04 00162964  38 80 00 00 */	li r4, 0
/* 80166D08 00162968  38 A0 00 10 */	li r5, 0x10
/* 80166D0C 0016296C  38 63 19 58 */	addi r3, r3, 0x1958
/* 80166D10 00162970  4B E9 D3 F4 */	b memset

.global func_80166D14
func_80166D14:
/* 80166D14 00162974  38 A0 00 10 */	li r5, 0x10
/* 80166D18 00162978  38 63 19 58 */	addi r3, r3, 0x1958
/* 80166D1C 0016297C  4B E9 D2 E4 */	b memcpy

.global func_80166D20
func_80166D20:
/* 80166D20 00162980  80 03 18 7C */	lwz r0, 0x187c(r3)
/* 80166D24 00162984  2C 00 00 00 */	cmpwi r0, 0
/* 80166D28 00162988  41 82 00 0C */	beq lbl_80166D34
/* 80166D2C 0016298C  80 63 18 80 */	lwz r3, 0x1880(r3)
/* 80166D30 00162990  4E 80 00 20 */	blr
lbl_80166D34:
/* 80166D34 00162994  38 60 00 00 */	li r3, 0
/* 80166D38 00162998  4E 80 00 20 */	blr

.global func_80166D3C
func_80166D3C:
/* 80166D3C 0016299C  90 83 08 60 */	stw r4, 0x860(r3)
/* 80166D40 001629A0  4E 80 00 20 */	blr

.global func_80166D44
func_80166D44:
/* 80166D44 001629A4  80 63 08 60 */	lwz r3, 0x860(r3)
/* 80166D48 001629A8  4E 80 00 20 */	blr

.global func_80166D4C
func_80166D4C:
/* 80166D4C 001629AC  38 A0 00 01 */	li r5, 1
/* 80166D50 001629B0  38 6D 9D F8 */	addi r3, r13, lbl_8063F0B8-_SDA_BASE_
/* 80166D54 001629B4  38 80 00 04 */	li r4, 4
/* 80166D58 001629B8  38 00 00 00 */	li r0, 0
/* 80166D5C 001629BC  98 AD 9D F8 */	stb r5, lbl_8063F0B8-_SDA_BASE_(r13)
/* 80166D60 001629C0  B0 83 00 02 */	sth r4, 2(r3)
/* 80166D64 001629C4  98 03 00 04 */	stb r0, 4(r3)
/* 80166D68 001629C8  4E 80 00 20 */	blr