summaryrefslogtreecommitdiff
path: root/asm/SDK/NAND/NANDCore.s
blob: 0b4473a83029e7fde99f171c1766570461eb07e7 (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
.include "macros.inc"

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

.global nandRemoveTailToken
nandRemoveTailToken:
/* 802E8FE8 002E4C48  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E8FEC 002E4C4C  7C 08 02 A6 */	mflr r0
/* 802E8FF0 002E4C50  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E8FF4 002E4C54  88 04 00 00 */	lbz r0, 0(r4)
/* 802E8FF8 002E4C58  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E8FFC 002E4C5C  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E9000 002E4C60  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E9004 002E4C64  7C 9E 23 78 */	mr r30, r4
/* 802E9008 002E4C68  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E900C 002E4C6C  7C 7D 1B 78 */	mr r29, r3
/* 802E9010 002E4C70  40 82 00 24 */	bne lbl_802E9034
/* 802E9014 002E4C74  88 04 00 01 */	lbz r0, 1(r4)
/* 802E9018 002E4C78  7C 00 07 75 */	extsb. r0, r0
/* 802E901C 002E4C7C  40 82 00 18 */	bne lbl_802E9034
/* 802E9020 002E4C80  38 80 00 2F */	li r4, 0x2f
/* 802E9024 002E4C84  38 00 00 00 */	li r0, 0
/* 802E9028 002E4C88  98 83 00 00 */	stb r4, 0(r3)
/* 802E902C 002E4C8C  98 03 00 01 */	stb r0, 1(r3)
/* 802E9030 002E4C90  48 00 00 70 */	b lbl_802E90A0
lbl_802E9034:
/* 802E9034 002E4C94  7F C3 F3 78 */	mr r3, r30
/* 802E9038 002E4C98  4B ED DB 2D */	bl strlen
/* 802E903C 002E4C9C  37 E3 FF FF */	addic. r31, r3, -1
/* 802E9040 002E4CA0  38 1F 00 01 */	addi r0, r31, 1
/* 802E9044 002E4CA4  7C 7E FA 14 */	add r3, r30, r31
/* 802E9048 002E4CA8  7C 09 03 A6 */	mtctr r0
/* 802E904C 002E4CAC  41 80 00 54 */	blt lbl_802E90A0
lbl_802E9050:
/* 802E9050 002E4CB0  88 03 00 00 */	lbz r0, 0(r3)
/* 802E9054 002E4CB4  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E9058 002E4CB8  40 82 00 3C */	bne lbl_802E9094
/* 802E905C 002E4CBC  2C 1F 00 00 */	cmpwi r31, 0
/* 802E9060 002E4CC0  41 82 00 20 */	beq lbl_802E9080
/* 802E9064 002E4CC4  7F A3 EB 78 */	mr r3, r29
/* 802E9068 002E4CC8  7F C4 F3 78 */	mr r4, r30
/* 802E906C 002E4CCC  7F E5 FB 78 */	mr r5, r31
/* 802E9070 002E4CD0  4B EE 53 21 */	bl strncpy
/* 802E9074 002E4CD4  38 00 00 00 */	li r0, 0
/* 802E9078 002E4CD8  7C 1D F9 AE */	stbx r0, r29, r31
/* 802E907C 002E4CDC  48 00 00 24 */	b lbl_802E90A0
lbl_802E9080:
/* 802E9080 002E4CE0  38 60 00 2F */	li r3, 0x2f
/* 802E9084 002E4CE4  38 00 00 00 */	li r0, 0
/* 802E9088 002E4CE8  98 7D 00 00 */	stb r3, 0(r29)
/* 802E908C 002E4CEC  98 1D 00 01 */	stb r0, 1(r29)
/* 802E9090 002E4CF0  48 00 00 10 */	b lbl_802E90A0
lbl_802E9094:
/* 802E9094 002E4CF4  3B FF FF FF */	addi r31, r31, -1
/* 802E9098 002E4CF8  38 63 FF FF */	addi r3, r3, -1
/* 802E909C 002E4CFC  42 00 FF B4 */	bdnz lbl_802E9050
lbl_802E90A0:
/* 802E90A0 002E4D00  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E90A4 002E4D04  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E90A8 002E4D08  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E90AC 002E4D0C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E90B0 002E4D10  7C 08 03 A6 */	mtlr r0
/* 802E90B4 002E4D14  38 21 00 20 */	addi r1, r1, 0x20
/* 802E90B8 002E4D18  4E 80 00 20 */	blr

.global nandGetHeadToken
nandGetHeadToken:
/* 802E90BC 002E4D1C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E90C0 002E4D20  7C 08 02 A6 */	mflr r0
/* 802E90C4 002E4D24  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E90C8 002E4D28  39 61 00 20 */	addi r11, r1, 0x20
/* 802E90CC 002E4D2C  4B ED E0 5D */	bl _savegpr_27
/* 802E90D0 002E4D30  7C 7B 1B 78 */	mr r27, r3
/* 802E90D4 002E4D34  7C 9C 23 78 */	mr r28, r4
/* 802E90D8 002E4D38  7C BD 2B 78 */	mr r29, r5
/* 802E90DC 002E4D3C  7C BF 2B 78 */	mr r31, r5
/* 802E90E0 002E4D40  3B C0 00 00 */	li r30, 0
/* 802E90E4 002E4D44  48 00 00 84 */	b lbl_802E9168
lbl_802E90E8:
/* 802E90E8 002E4D48  88 1F 00 00 */	lbz r0, 0(r31)
/* 802E90EC 002E4D4C  7C 00 07 74 */	extsb r0, r0
/* 802E90F0 002E4D50  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E90F4 002E4D54  40 82 00 44 */	bne lbl_802E9138
/* 802E90F8 002E4D58  7F 63 DB 78 */	mr r3, r27
/* 802E90FC 002E4D5C  7F A4 EB 78 */	mr r4, r29
/* 802E9100 002E4D60  7F C5 F3 78 */	mr r5, r30
/* 802E9104 002E4D64  4B EE 52 8D */	bl strncpy
/* 802E9108 002E4D68  7C 9E EA 14 */	add r4, r30, r29
/* 802E910C 002E4D6C  38 60 00 00 */	li r3, 0
/* 802E9110 002E4D70  88 04 00 01 */	lbz r0, 1(r4)
/* 802E9114 002E4D74  7C 7B F1 AE */	stbx r3, r27, r30
/* 802E9118 002E4D78  7C 00 07 75 */	extsb. r0, r0
/* 802E911C 002E4D7C  40 82 00 0C */	bne lbl_802E9128
/* 802E9120 002E4D80  98 7C 00 00 */	stb r3, 0(r28)
/* 802E9124 002E4D84  48 00 00 54 */	b lbl_802E9178
lbl_802E9128:
/* 802E9128 002E4D88  7F 83 E3 78 */	mr r3, r28
/* 802E912C 002E4D8C  38 84 00 01 */	addi r4, r4, 1
/* 802E9130 002E4D90  4B EE 51 A1 */	bl strcpy
/* 802E9134 002E4D94  48 00 00 44 */	b lbl_802E9178
lbl_802E9138:
/* 802E9138 002E4D98  2C 00 00 00 */	cmpwi r0, 0
/* 802E913C 002E4D9C  40 82 00 24 */	bne lbl_802E9160
/* 802E9140 002E4DA0  7F 63 DB 78 */	mr r3, r27
/* 802E9144 002E4DA4  7F A4 EB 78 */	mr r4, r29
/* 802E9148 002E4DA8  7F C5 F3 78 */	mr r5, r30
/* 802E914C 002E4DAC  4B EE 52 45 */	bl strncpy
/* 802E9150 002E4DB0  38 00 00 00 */	li r0, 0
/* 802E9154 002E4DB4  7C 1B F1 AE */	stbx r0, r27, r30
/* 802E9158 002E4DB8  98 1C 00 00 */	stb r0, 0(r28)
/* 802E915C 002E4DBC  48 00 00 1C */	b lbl_802E9178
lbl_802E9160:
/* 802E9160 002E4DC0  3B DE 00 01 */	addi r30, r30, 1
/* 802E9164 002E4DC4  3B FF 00 01 */	addi r31, r31, 1
lbl_802E9168:
/* 802E9168 002E4DC8  7F A3 EB 78 */	mr r3, r29
/* 802E916C 002E4DCC  4B ED D9 F9 */	bl strlen
/* 802E9170 002E4DD0  7C 1E 18 40 */	cmplw r30, r3
/* 802E9174 002E4DD4  40 81 FF 74 */	ble lbl_802E90E8
lbl_802E9178:
/* 802E9178 002E4DD8  39 61 00 20 */	addi r11, r1, 0x20
/* 802E917C 002E4DDC  4B ED DF F9 */	bl _restgpr_27
/* 802E9180 002E4DE0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E9184 002E4DE4  7C 08 03 A6 */	mtlr r0
/* 802E9188 002E4DE8  38 21 00 20 */	addi r1, r1, 0x20
/* 802E918C 002E4DEC  4E 80 00 20 */	blr

.global nandGetRelativeName
nandGetRelativeName:
/* 802E9190 002E4DF0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E9194 002E4DF4  7C 08 02 A6 */	mflr r0
/* 802E9198 002E4DF8  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E919C 002E4DFC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E91A0 002E4E00  7C 9F 23 78 */	mr r31, r4
/* 802E91A4 002E4E04  93 C1 00 08 */	stw r30, 8(r1)
/* 802E91A8 002E4E08  7C 7E 1B 78 */	mr r30, r3
/* 802E91AC 002E4E0C  38 6D 8A 84 */	addi r3, r13, lbl_8063DD44-_SDA_BASE_
/* 802E91B0 002E4E10  4B EE 52 9D */	bl strcmp
/* 802E91B4 002E4E14  2C 03 00 00 */	cmpwi r3, 0
/* 802E91B8 002E4E18  40 82 00 14 */	bne lbl_802E91CC
/* 802E91BC 002E4E1C  7F C3 F3 78 */	mr r3, r30
/* 802E91C0 002E4E20  38 8D 8A 88 */	addi r4, r13, lbl_8063DD48-_SDA_BASE_
/* 802E91C4 002E4E24  4B EE 51 0D */	bl strcpy
/* 802E91C8 002E4E28  48 00 00 48 */	b lbl_802E9210
lbl_802E91CC:
/* 802E91CC 002E4E2C  7F E3 FB 78 */	mr r3, r31
/* 802E91D0 002E4E30  4B ED D9 95 */	bl strlen
/* 802E91D4 002E4E34  34 83 FF FF */	addic. r4, r3, -1
/* 802E91D8 002E4E38  38 04 00 01 */	addi r0, r4, 1
/* 802E91DC 002E4E3C  7C 7F 22 14 */	add r3, r31, r4
/* 802E91E0 002E4E40  7C 09 03 A6 */	mtctr r0
/* 802E91E4 002E4E44  41 80 00 1C */	blt lbl_802E9200
lbl_802E91E8:
/* 802E91E8 002E4E48  88 03 00 00 */	lbz r0, 0(r3)
/* 802E91EC 002E4E4C  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E91F0 002E4E50  41 82 00 10 */	beq lbl_802E9200
/* 802E91F4 002E4E54  38 84 FF FF */	addi r4, r4, -1
/* 802E91F8 002E4E58  38 63 FF FF */	addi r3, r3, -1
/* 802E91FC 002E4E5C  42 00 FF EC */	bdnz lbl_802E91E8
lbl_802E9200:
/* 802E9200 002E4E60  7C 9F 22 14 */	add r4, r31, r4
/* 802E9204 002E4E64  7F C3 F3 78 */	mr r3, r30
/* 802E9208 002E4E68  38 84 00 01 */	addi r4, r4, 1
/* 802E920C 002E4E6C  4B EE 50 C5 */	bl strcpy
lbl_802E9210:
/* 802E9210 002E4E70  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E9214 002E4E74  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E9218 002E4E78  83 C1 00 08 */	lwz r30, 8(r1)
/* 802E921C 002E4E7C  7C 08 03 A6 */	mtlr r0
/* 802E9220 002E4E80  38 21 00 10 */	addi r1, r1, 0x10
/* 802E9224 002E4E84  4E 80 00 20 */	blr

.global nandConvertPath
nandConvertPath:
/* 802E9228 002E4E88  94 21 FD E0 */	stwu r1, -0x220(r1)
/* 802E922C 002E4E8C  7C 08 02 A6 */	mflr r0
/* 802E9230 002E4E90  90 01 02 24 */	stw r0, 0x224(r1)
/* 802E9234 002E4E94  93 E1 02 1C */	stw r31, 0x21c(r1)
/* 802E9238 002E4E98  7C BF 2B 78 */	mr r31, r5
/* 802E923C 002E4E9C  93 C1 02 18 */	stw r30, 0x218(r1)
/* 802E9240 002E4EA0  7C 9E 23 78 */	mr r30, r4
/* 802E9244 002E4EA4  93 A1 02 14 */	stw r29, 0x214(r1)
/* 802E9248 002E4EA8  7C 7D 1B 78 */	mr r29, r3
/* 802E924C 002E4EAC  7F E3 FB 78 */	mr r3, r31
/* 802E9250 002E4EB0  4B ED D9 15 */	bl strlen
/* 802E9254 002E4EB4  2C 03 00 00 */	cmpwi r3, 0
/* 802E9258 002E4EB8  40 82 00 14 */	bne lbl_802E926C
/* 802E925C 002E4EBC  7F A3 EB 78 */	mr r3, r29
/* 802E9260 002E4EC0  7F C4 F3 78 */	mr r4, r30
/* 802E9264 002E4EC4  4B EE 50 6D */	bl strcpy
/* 802E9268 002E4EC8  48 00 00 E0 */	b lbl_802E9348
lbl_802E926C:
/* 802E926C 002E4ECC  7F E5 FB 78 */	mr r5, r31
/* 802E9270 002E4ED0  38 61 01 88 */	addi r3, r1, 0x188
/* 802E9274 002E4ED4  38 81 01 08 */	addi r4, r1, 0x108
/* 802E9278 002E4ED8  4B FF FE 45 */	bl nandGetHeadToken
/* 802E927C 002E4EDC  38 61 01 88 */	addi r3, r1, 0x188
/* 802E9280 002E4EE0  38 8D 8A 8C */	addi r4, r13, lbl_8063DD4C-_SDA_BASE_
/* 802E9284 002E4EE4  4B EE 51 C9 */	bl strcmp
/* 802E9288 002E4EE8  2C 03 00 00 */	cmpwi r3, 0
/* 802E928C 002E4EEC  40 82 00 18 */	bne lbl_802E92A4
/* 802E9290 002E4EF0  7F A3 EB 78 */	mr r3, r29
/* 802E9294 002E4EF4  7F C4 F3 78 */	mr r4, r30
/* 802E9298 002E4EF8  38 A1 01 08 */	addi r5, r1, 0x108
/* 802E929C 002E4EFC  4B FF FF 8D */	bl nandConvertPath
/* 802E92A0 002E4F00  48 00 00 A8 */	b lbl_802E9348
lbl_802E92A4:
/* 802E92A4 002E4F04  38 61 01 88 */	addi r3, r1, 0x188
/* 802E92A8 002E4F08  38 8D 8A 90 */	addi r4, r13, lbl_8063DD50-_SDA_BASE_
/* 802E92AC 002E4F0C  4B EE 51 A1 */	bl strcmp
/* 802E92B0 002E4F10  2C 03 00 00 */	cmpwi r3, 0
/* 802E92B4 002E4F14  40 82 00 24 */	bne lbl_802E92D8
/* 802E92B8 002E4F18  7F C4 F3 78 */	mr r4, r30
/* 802E92BC 002E4F1C  38 61 00 88 */	addi r3, r1, 0x88
/* 802E92C0 002E4F20  4B FF FD 29 */	bl nandRemoveTailToken
/* 802E92C4 002E4F24  7F A3 EB 78 */	mr r3, r29
/* 802E92C8 002E4F28  38 81 00 88 */	addi r4, r1, 0x88
/* 802E92CC 002E4F2C  38 A1 01 08 */	addi r5, r1, 0x108
/* 802E92D0 002E4F30  4B FF FF 59 */	bl nandConvertPath
/* 802E92D4 002E4F34  48 00 00 74 */	b lbl_802E9348
lbl_802E92D8:
/* 802E92D8 002E4F38  88 01 01 88 */	lbz r0, 0x188(r1)
/* 802E92DC 002E4F3C  7C 00 07 75 */	extsb. r0, r0
/* 802E92E0 002E4F40  41 82 00 5C */	beq lbl_802E933C
/* 802E92E4 002E4F44  7F C3 F3 78 */	mr r3, r30
/* 802E92E8 002E4F48  38 8D 8A 84 */	addi r4, r13, lbl_8063DD44-_SDA_BASE_
/* 802E92EC 002E4F4C  4B EE 51 61 */	bl strcmp
/* 802E92F0 002E4F50  2C 03 00 00 */	cmpwi r3, 0
/* 802E92F4 002E4F54  40 82 00 1C */	bne lbl_802E9310
/* 802E92F8 002E4F58  38 61 00 08 */	addi r3, r1, 8
/* 802E92FC 002E4F5C  38 A1 01 88 */	addi r5, r1, 0x188
/* 802E9300 002E4F60  38 8D 8A 94 */	addi r4, r13, lbl_8063DD54-_SDA_BASE_
/* 802E9304 002E4F64  4C C6 31 82 */	crclr 6
/* 802E9308 002E4F68  4B EE 37 F5 */	bl sprintf
/* 802E930C 002E4F6C  48 00 00 1C */	b lbl_802E9328
lbl_802E9310:
/* 802E9310 002E4F70  7F C5 F3 78 */	mr r5, r30
/* 802E9314 002E4F74  38 61 00 08 */	addi r3, r1, 8
/* 802E9318 002E4F78  38 C1 01 88 */	addi r6, r1, 0x188
/* 802E931C 002E4F7C  38 8D 8A 98 */	addi r4, r13, lbl_8063DD58-_SDA_BASE_
/* 802E9320 002E4F80  4C C6 31 82 */	crclr 6
/* 802E9324 002E4F84  4B EE 37 D9 */	bl sprintf
lbl_802E9328:
/* 802E9328 002E4F88  7F A3 EB 78 */	mr r3, r29
/* 802E932C 002E4F8C  38 81 00 08 */	addi r4, r1, 8
/* 802E9330 002E4F90  38 A1 01 08 */	addi r5, r1, 0x108
/* 802E9334 002E4F94  4B FF FE F5 */	bl nandConvertPath
/* 802E9338 002E4F98  48 00 00 10 */	b lbl_802E9348
lbl_802E933C:
/* 802E933C 002E4F9C  7F A3 EB 78 */	mr r3, r29
/* 802E9340 002E4FA0  7F C4 F3 78 */	mr r4, r30
/* 802E9344 002E4FA4  4B EE 4F 8D */	bl strcpy
lbl_802E9348:
/* 802E9348 002E4FA8  80 01 02 24 */	lwz r0, 0x224(r1)
/* 802E934C 002E4FAC  83 E1 02 1C */	lwz r31, 0x21c(r1)
/* 802E9350 002E4FB0  83 C1 02 18 */	lwz r30, 0x218(r1)
/* 802E9354 002E4FB4  83 A1 02 14 */	lwz r29, 0x214(r1)
/* 802E9358 002E4FB8  7C 08 03 A6 */	mtlr r0
/* 802E935C 002E4FBC  38 21 02 20 */	addi r1, r1, 0x220
/* 802E9360 002E4FC0  4E 80 00 20 */	blr

.global nandIsPrivatePath
nandIsPrivatePath:
/* 802E9364 002E4FC4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E9368 002E4FC8  7C 08 02 A6 */	mflr r0
/* 802E936C 002E4FCC  3C 80 80 44 */	lis r4, lbl_80445710@ha
/* 802E9370 002E4FD0  38 A0 00 08 */	li r5, 8
/* 802E9374 002E4FD4  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E9378 002E4FD8  38 84 57 10 */	addi r4, r4, lbl_80445710@l
/* 802E937C 002E4FDC  4B EE 51 ED */	bl strncmp
/* 802E9380 002E4FE0  7C 60 00 34 */	cntlzw r0, r3
/* 802E9384 002E4FE4  54 03 D9 7E */	srwi r3, r0, 5
/* 802E9388 002E4FE8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E938C 002E4FEC  7C 08 03 A6 */	mtlr r0
/* 802E9390 002E4FF0  38 21 00 10 */	addi r1, r1, 0x10
/* 802E9394 002E4FF4  4E 80 00 20 */	blr

.global nandIsUnderPrivatePath
nandIsUnderPrivatePath:
/* 802E9398 002E4FF8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E939C 002E4FFC  7C 08 02 A6 */	mflr r0
/* 802E93A0 002E5000  3C 80 80 44 */	lis r4, lbl_8044571C@ha
/* 802E93A4 002E5004  38 A0 00 09 */	li r5, 9
/* 802E93A8 002E5008  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E93AC 002E500C  38 84 57 1C */	addi r4, r4, lbl_8044571C@l
/* 802E93B0 002E5010  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E93B4 002E5014  7C 7F 1B 78 */	mr r31, r3
/* 802E93B8 002E5018  4B EE 51 B1 */	bl strncmp
/* 802E93BC 002E501C  2C 03 00 00 */	cmpwi r3, 0
/* 802E93C0 002E5020  40 82 00 18 */	bne lbl_802E93D8
/* 802E93C4 002E5024  88 1F 00 09 */	lbz r0, 9(r31)
/* 802E93C8 002E5028  7C 00 07 75 */	extsb. r0, r0
/* 802E93CC 002E502C  41 82 00 0C */	beq lbl_802E93D8
/* 802E93D0 002E5030  38 60 00 01 */	li r3, 1
/* 802E93D4 002E5034  48 00 00 08 */	b lbl_802E93DC
lbl_802E93D8:
/* 802E93D8 002E5038  38 60 00 00 */	li r3, 0
lbl_802E93DC:
/* 802E93DC 002E503C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E93E0 002E5040  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E93E4 002E5044  7C 08 03 A6 */	mtlr r0
/* 802E93E8 002E5048  38 21 00 10 */	addi r1, r1, 0x10
/* 802E93EC 002E504C  4E 80 00 20 */	blr

.global nandIsInitialized
nandIsInitialized:
/* 802E93F0 002E5050  80 6D AF 08 */	lwz r3, lbl_806401C8-_SDA_BASE_(r13)
/* 802E93F4 002E5054  38 03 FF FE */	addi r0, r3, -2
/* 802E93F8 002E5058  7C 00 00 34 */	cntlzw r0, r0
/* 802E93FC 002E505C  54 03 D9 7E */	srwi r3, r0, 5
/* 802E9400 002E5060  4E 80 00 20 */	blr

.global nandReportErrorCode
nandReportErrorCode:
/* 802E9404 002E5064  4E 80 00 20 */	blr

.global nandConvertErrorCode
nandConvertErrorCode:
/* 802E9408 002E5068  94 21 FE B0 */	stwu r1, -0x150(r1)
/* 802E940C 002E506C  7C 08 02 A6 */	mflr r0
/* 802E9410 002E5070  3C 80 80 40 */	lis r4, lbl_803FDF20@ha
/* 802E9414 002E5074  90 01 01 54 */	stw r0, 0x154(r1)
/* 802E9418 002E5078  38 84 DF 20 */	addi r4, r4, lbl_803FDF20@l
/* 802E941C 002E507C  38 00 00 28 */	li r0, 0x28
/* 802E9420 002E5080  38 C1 00 04 */	addi r6, r1, 4
/* 802E9424 002E5084  93 E1 01 4C */	stw r31, 0x14c(r1)
/* 802E9428 002E5088  38 A4 FF FC */	addi r5, r4, -4
/* 802E942C 002E508C  93 C1 01 48 */	stw r30, 0x148(r1)
/* 802E9430 002E5090  7C 7E 1B 78 */	mr r30, r3
/* 802E9434 002E5094  7C 09 03 A6 */	mtctr r0
lbl_802E9438:
/* 802E9438 002E5098  80 85 00 04 */	lwz r4, 4(r5)
/* 802E943C 002E509C  84 05 00 08 */	lwzu r0, 8(r5)
/* 802E9440 002E50A0  90 86 00 04 */	stw r4, 4(r6)
/* 802E9444 002E50A4  94 06 00 08 */	stwu r0, 8(r6)
/* 802E9448 002E50A8  42 00 FF F0 */	bdnz lbl_802E9438
/* 802E944C 002E50AC  2C 03 00 00 */	cmpwi r3, 0
/* 802E9450 002E50B0  3B E0 00 00 */	li r31, 0
/* 802E9454 002E50B4  41 80 00 0C */	blt lbl_802E9460
/* 802E9458 002E50B8  7F C3 F3 78 */	mr r3, r30
/* 802E945C 002E50BC  48 00 00 64 */	b lbl_802E94C0
lbl_802E9460:
/* 802E9460 002E50C0  38 00 00 28 */	li r0, 0x28
/* 802E9464 002E50C4  38 81 00 08 */	addi r4, r1, 8
/* 802E9468 002E50C8  7C 09 03 A6 */	mtctr r0
lbl_802E946C:
/* 802E946C 002E50CC  80 04 00 00 */	lwz r0, 0(r4)
/* 802E9470 002E50D0  7C 03 00 00 */	cmpw r3, r0
/* 802E9474 002E50D4  40 82 00 20 */	bne lbl_802E9494
/* 802E9478 002E50D8  7F C3 F3 78 */	mr r3, r30
/* 802E947C 002E50DC  4B FF FF 89 */	bl nandReportErrorCode
/* 802E9480 002E50E0  38 1F 00 01 */	addi r0, r31, 1
/* 802E9484 002E50E4  38 61 00 08 */	addi r3, r1, 8
/* 802E9488 002E50E8  54 00 10 3A */	slwi r0, r0, 2
/* 802E948C 002E50EC  7C 63 00 2E */	lwzx r3, r3, r0
/* 802E9490 002E50F0  48 00 00 30 */	b lbl_802E94C0
lbl_802E9494:
/* 802E9494 002E50F4  38 84 00 08 */	addi r4, r4, 8
/* 802E9498 002E50F8  3B FF 00 02 */	addi r31, r31, 2
/* 802E949C 002E50FC  42 00 FF D0 */	bdnz lbl_802E946C
/* 802E94A0 002E5100  3C 60 80 44 */	lis r3, lbl_80445728@ha
/* 802E94A4 002E5104  7F C4 F3 78 */	mr r4, r30
/* 802E94A8 002E5108  38 63 57 28 */	addi r3, r3, lbl_80445728@l
/* 802E94AC 002E510C  4C C6 31 82 */	crclr 6
/* 802E94B0 002E5110  4B D1 E6 15 */	bl OSReport
/* 802E94B4 002E5114  7F C3 F3 78 */	mr r3, r30
/* 802E94B8 002E5118  4B FF FF 4D */	bl nandReportErrorCode
/* 802E94BC 002E511C  38 60 FF C0 */	li r3, -64
lbl_802E94C0:
/* 802E94C0 002E5120  80 01 01 54 */	lwz r0, 0x154(r1)
/* 802E94C4 002E5124  83 E1 01 4C */	lwz r31, 0x14c(r1)
/* 802E94C8 002E5128  83 C1 01 48 */	lwz r30, 0x148(r1)
/* 802E94CC 002E512C  7C 08 03 A6 */	mtlr r0
/* 802E94D0 002E5130  38 21 01 50 */	addi r1, r1, 0x150
/* 802E94D4 002E5134  4E 80 00 20 */	blr

.global nandGenerateAbsPath
nandGenerateAbsPath:
/* 802E94D8 002E5138  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E94DC 002E513C  7C 08 02 A6 */	mflr r0
/* 802E94E0 002E5140  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E94E4 002E5144  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E94E8 002E5148  7C 9F 23 78 */	mr r31, r4
/* 802E94EC 002E514C  93 C1 00 08 */	stw r30, 8(r1)
/* 802E94F0 002E5150  7C 7E 1B 78 */	mr r30, r3
/* 802E94F4 002E5154  7F E3 FB 78 */	mr r3, r31
/* 802E94F8 002E5158  4B ED D6 6D */	bl strlen
/* 802E94FC 002E515C  2C 03 00 00 */	cmpwi r3, 0
/* 802E9500 002E5160  40 82 00 14 */	bne lbl_802E9514
/* 802E9504 002E5164  7F C3 F3 78 */	mr r3, r30
/* 802E9508 002E5168  38 8D 8A 88 */	addi r4, r13, lbl_8063DD48-_SDA_BASE_
/* 802E950C 002E516C  4B EE 4D C5 */	bl strcpy
/* 802E9510 002E5170  48 00 00 78 */	b lbl_802E9588
lbl_802E9514:
/* 802E9514 002E5174  88 1F 00 00 */	lbz r0, 0(r31)
/* 802E9518 002E5178  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E951C 002E517C  40 82 00 0C */	bne lbl_802E9528
/* 802E9520 002E5180  38 00 00 00 */	li r0, 0
/* 802E9524 002E5184  48 00 00 08 */	b lbl_802E952C
lbl_802E9528:
/* 802E9528 002E5188  38 00 00 01 */	li r0, 1
lbl_802E952C:
/* 802E952C 002E518C  2C 00 00 00 */	cmpwi r0, 0
/* 802E9530 002E5190  41 82 00 1C */	beq lbl_802E954C
/* 802E9534 002E5194  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802E9538 002E5198  7F C3 F3 78 */	mr r3, r30
/* 802E953C 002E519C  7F E5 FB 78 */	mr r5, r31
/* 802E9540 002E51A0  38 84 56 C0 */	addi r4, r4, lbl_804456C0@l
/* 802E9544 002E51A4  4B FF FC E5 */	bl nandConvertPath
/* 802E9548 002E51A8  48 00 00 40 */	b lbl_802E9588
lbl_802E954C:
/* 802E954C 002E51AC  7F C3 F3 78 */	mr r3, r30
/* 802E9550 002E51B0  7F E4 FB 78 */	mr r4, r31
/* 802E9554 002E51B4  4B EE 4D 7D */	bl strcpy
/* 802E9558 002E51B8  7F C3 F3 78 */	mr r3, r30
/* 802E955C 002E51BC  4B ED D6 09 */	bl strlen
/* 802E9560 002E51C0  2C 03 00 00 */	cmpwi r3, 0
/* 802E9564 002E51C4  41 82 00 24 */	beq lbl_802E9588
/* 802E9568 002E51C8  7C 83 F2 14 */	add r4, r3, r30
/* 802E956C 002E51CC  88 04 FF FF */	lbz r0, -1(r4)
/* 802E9570 002E51D0  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E9574 002E51D4  40 82 00 14 */	bne lbl_802E9588
/* 802E9578 002E51D8  34 03 FF FF */	addic. r0, r3, -1
/* 802E957C 002E51DC  41 82 00 0C */	beq lbl_802E9588
/* 802E9580 002E51E0  38 00 00 00 */	li r0, 0
/* 802E9584 002E51E4  98 04 FF FF */	stb r0, -1(r4)
lbl_802E9588:
/* 802E9588 002E51E8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E958C 002E51EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E9590 002E51F0  83 C1 00 08 */	lwz r30, 8(r1)
/* 802E9594 002E51F4  7C 08 03 A6 */	mtlr r0
/* 802E9598 002E51F8  38 21 00 10 */	addi r1, r1, 0x10
/* 802E959C 002E51FC  4E 80 00 20 */	blr

.global nandGetParentDirectory
nandGetParentDirectory:
/* 802E95A0 002E5200  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E95A4 002E5204  7C 08 02 A6 */	mflr r0
/* 802E95A8 002E5208  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E95AC 002E520C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E95B0 002E5210  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E95B4 002E5214  7C 9E 23 78 */	mr r30, r4
/* 802E95B8 002E5218  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E95BC 002E521C  7C 7D 1B 78 */	mr r29, r3
/* 802E95C0 002E5220  7F C3 F3 78 */	mr r3, r30
/* 802E95C4 002E5224  4B ED D5 A1 */	bl strlen
/* 802E95C8 002E5228  38 03 00 01 */	addi r0, r3, 1
/* 802E95CC 002E522C  7C 7F 1B 78 */	mr r31, r3
/* 802E95D0 002E5230  7C 9E 1A 14 */	add r4, r30, r3
/* 802E95D4 002E5234  7C 09 03 A6 */	mtctr r0
/* 802E95D8 002E5238  2C 03 00 00 */	cmpwi r3, 0
/* 802E95DC 002E523C  41 80 00 1C */	blt lbl_802E95F8
lbl_802E95E0:
/* 802E95E0 002E5240  88 04 00 00 */	lbz r0, 0(r4)
/* 802E95E4 002E5244  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E95E8 002E5248  41 82 00 10 */	beq lbl_802E95F8
/* 802E95EC 002E524C  3B FF FF FF */	addi r31, r31, -1
/* 802E95F0 002E5250  38 84 FF FF */	addi r4, r4, -1
/* 802E95F4 002E5254  42 00 FF EC */	bdnz lbl_802E95E0
lbl_802E95F8:
/* 802E95F8 002E5258  2C 1F 00 00 */	cmpwi r31, 0
/* 802E95FC 002E525C  40 82 00 14 */	bne lbl_802E9610
/* 802E9600 002E5260  7F A3 EB 78 */	mr r3, r29
/* 802E9604 002E5264  38 8D 8A 84 */	addi r4, r13, lbl_8063DD44-_SDA_BASE_
/* 802E9608 002E5268  4B EE 4C C9 */	bl strcpy
/* 802E960C 002E526C  48 00 00 1C */	b lbl_802E9628
lbl_802E9610:
/* 802E9610 002E5270  7F A3 EB 78 */	mr r3, r29
/* 802E9614 002E5274  7F C4 F3 78 */	mr r4, r30
/* 802E9618 002E5278  7F E5 FB 78 */	mr r5, r31
/* 802E961C 002E527C  4B EE 4D 75 */	bl strncpy
/* 802E9620 002E5280  38 00 00 00 */	li r0, 0
/* 802E9624 002E5284  7C 1D F9 AE */	stbx r0, r29, r31
lbl_802E9628:
/* 802E9628 002E5288  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E962C 002E528C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E9630 002E5290  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E9634 002E5294  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E9638 002E5298  7C 08 03 A6 */	mtlr r0
/* 802E963C 002E529C  38 21 00 20 */	addi r1, r1, 0x20
/* 802E9640 002E52A0  4E 80 00 20 */	blr

.global NANDInit
NANDInit:
/* 802E9644 002E52A4  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 802E9648 002E52A8  7C 2C 0B 78 */	mr r12, r1
/* 802E964C 002E52AC  21 6B FD 40 */	subfic r11, r11, -704
/* 802E9650 002E52B0  7C 21 59 6E */	stwux r1, r1, r11
/* 802E9654 002E52B4  7C 08 02 A6 */	mflr r0
/* 802E9658 002E52B8  90 0C 00 04 */	stw r0, 4(r12)
/* 802E965C 002E52BC  93 EC FF FC */	stw r31, -4(r12)
/* 802E9660 002E52C0  3F E0 80 44 */	lis r31, lbl_80445660@ha
/* 802E9664 002E52C4  3B FF 56 60 */	addi r31, r31, lbl_80445660@l
/* 802E9668 002E52C8  93 CC FF F8 */	stw r30, -8(r12)
/* 802E966C 002E52CC  93 AC FF F4 */	stw r29, -0xc(r12)
/* 802E9670 002E52D0  93 8C FF F0 */	stw r28, -0x10(r12)
/* 802E9674 002E52D4  4B F8 50 E9 */	bl OSDisableInterrupts
/* 802E9678 002E52D8  80 0D AF 08 */	lwz r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E967C 002E52DC  2C 00 00 01 */	cmpwi r0, 1
/* 802E9680 002E52E0  40 82 00 10 */	bne lbl_802E9690
/* 802E9684 002E52E4  4B F8 51 01 */	bl OSRestoreInterrupts
/* 802E9688 002E52E8  38 60 FF FD */	li r3, -3
/* 802E968C 002E52EC  48 00 02 08 */	b lbl_802E9894
lbl_802E9690:
/* 802E9690 002E52F0  2C 00 00 02 */	cmpwi r0, 2
/* 802E9694 002E52F4  40 82 00 10 */	bne lbl_802E96A4
/* 802E9698 002E52F8  4B F8 50 ED */	bl OSRestoreInterrupts
/* 802E969C 002E52FC  38 60 00 00 */	li r3, 0
/* 802E96A0 002E5300  48 00 01 F4 */	b lbl_802E9894
lbl_802E96A4:
/* 802E96A4 002E5304  38 00 00 01 */	li r0, 1
/* 802E96A8 002E5308  90 0D AF 08 */	stw r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E96AC 002E530C  4B F8 50 D9 */	bl OSRestoreInterrupts
/* 802E96B0 002E5310  4B FB B0 3D */	bl ISFS_OpenLib
/* 802E96B4 002E5314  2C 03 00 00 */	cmpwi r3, 0
/* 802E96B8 002E5318  7C 7C 1B 78 */	mr r28, r3
/* 802E96BC 002E531C  40 82 01 2C */	bne lbl_802E97E8
/* 802E96C0 002E5320  38 60 FF FF */	li r3, -1
/* 802E96C4 002E5324  3B 80 00 00 */	li r28, 0
/* 802E96C8 002E5328  90 61 00 20 */	stw r3, 0x20(r1)
/* 802E96CC 002E532C  38 6D 8A A0 */	addi r3, r13, lbl_8063DD60-_SDA_BASE_
/* 802E96D0 002E5330  38 80 00 00 */	li r4, 0
/* 802E96D4 002E5334  4B FB 9A 85 */	bl IOS_Open
/* 802E96D8 002E5338  2C 03 00 00 */	cmpwi r3, 0
/* 802E96DC 002E533C  90 61 00 20 */	stw r3, 0x20(r1)
/* 802E96E0 002E5340  40 80 00 08 */	bge lbl_802E96E8
/* 802E96E4 002E5344  7C 7C 1B 78 */	mr r28, r3
lbl_802E96E8:
/* 802E96E8 002E5348  2C 1C 00 00 */	cmpwi r28, 0
/* 802E96EC 002E534C  40 82 00 64 */	bne lbl_802E9750
/* 802E96F0 002E5350  2C 03 00 00 */	cmpwi r3, 0
/* 802E96F4 002E5354  38 E1 00 40 */	addi r7, r1, 0x40
/* 802E96F8 002E5358  41 80 00 14 */	blt lbl_802E970C
/* 802E96FC 002E535C  38 81 00 28 */	addi r4, r1, 0x28
/* 802E9700 002E5360  38 00 00 00 */	li r0, 0
/* 802E9704 002E5364  7C 04 00 40 */	cmplw r4, r0
/* 802E9708 002E5368  40 82 00 0C */	bne lbl_802E9714
lbl_802E970C:
/* 802E970C 002E536C  38 60 FC 07 */	li r3, -1017
/* 802E9710 002E5370  48 00 00 3C */	b lbl_802E974C
lbl_802E9714:
/* 802E9714 002E5374  38 81 00 60 */	addi r4, r1, 0x60
/* 802E9718 002E5378  38 00 00 08 */	li r0, 8
/* 802E971C 002E537C  90 81 00 40 */	stw r4, 0x40(r1)
/* 802E9720 002E5380  38 80 00 20 */	li r4, 0x20
/* 802E9724 002E5384  38 A0 00 00 */	li r5, 0
/* 802E9728 002E5388  38 C0 00 01 */	li r6, 1
/* 802E972C 002E538C  90 01 00 44 */	stw r0, 0x44(r1)
/* 802E9730 002E5390  4B FB A7 11 */	bl IOS_Ioctlv
/* 802E9734 002E5394  2C 03 00 00 */	cmpwi r3, 0
/* 802E9738 002E5398  40 82 00 14 */	bne lbl_802E974C
/* 802E973C 002E539C  80 01 00 60 */	lwz r0, 0x60(r1)
/* 802E9740 002E53A0  80 81 00 64 */	lwz r4, 0x64(r1)
/* 802E9744 002E53A4  90 01 00 28 */	stw r0, 0x28(r1)
/* 802E9748 002E53A8  90 81 00 2C */	stw r4, 0x2c(r1)
lbl_802E974C:
/* 802E974C 002E53AC  7C 7C 1B 78 */	mr r28, r3
lbl_802E9750:
/* 802E9750 002E53B0  2C 1C 00 00 */	cmpwi r28, 0
/* 802E9754 002E53B4  40 82 00 20 */	bne lbl_802E9774
/* 802E9758 002E53B8  3C E0 80 57 */	lis r7, lbl_80570E80@ha
/* 802E975C 002E53BC  80 A1 00 28 */	lwz r5, 0x28(r1)
/* 802E9760 002E53C0  80 C1 00 2C */	lwz r6, 0x2c(r1)
/* 802E9764 002E53C4  38 61 00 20 */	addi r3, r1, 0x20
/* 802E9768 002E53C8  38 E7 0E 80 */	addi r7, r7, lbl_80570E80@l
/* 802E976C 002E53CC  48 00 0E 65 */	bl _ES_GetDataDir
/* 802E9770 002E53D0  7C 7C 1B 78 */	mr r28, r3
lbl_802E9774:
/* 802E9774 002E53D4  2C 1C 00 00 */	cmpwi r28, 0
/* 802E9778 002E53D8  40 82 00 14 */	bne lbl_802E978C
/* 802E977C 002E53DC  3C 80 80 57 */	lis r4, lbl_80570E80@ha
/* 802E9780 002E53E0  38 7F 00 60 */	addi r3, r31, 0x60
/* 802E9784 002E53E4  38 84 0E 80 */	addi r4, r4, lbl_80570E80@l
/* 802E9788 002E53E8  4B EE 4B 49 */	bl strcpy
lbl_802E978C:
/* 802E978C 002E53EC  80 61 00 20 */	lwz r3, 0x20(r1)
/* 802E9790 002E53F0  2C 03 00 00 */	cmpwi r3, 0
/* 802E9794 002E53F4  41 80 00 18 */	blt lbl_802E97AC
/* 802E9798 002E53F8  4B FB 9B A1 */	bl IOS_Close
/* 802E979C 002E53FC  2C 03 00 00 */	cmpwi r3, 0
/* 802E97A0 002E5400  40 82 00 0C */	bne lbl_802E97AC
/* 802E97A4 002E5404  38 60 FF FF */	li r3, -1
/* 802E97A8 002E5408  90 61 00 20 */	stw r3, 0x20(r1)
lbl_802E97AC:
/* 802E97AC 002E540C  2C 1C 00 00 */	cmpwi r28, 0
/* 802E97B0 002E5410  41 82 00 10 */	beq lbl_802E97C0
/* 802E97B4 002E5414  38 7F 00 FC */	addi r3, r31, 0xfc
/* 802E97B8 002E5418  4C C6 31 82 */	crclr 6
/* 802E97BC 002E541C  4B D1 E3 09 */	bl OSReport
lbl_802E97C0:
/* 802E97C0 002E5420  38 7F 00 A0 */	addi r3, r31, 0xa0
/* 802E97C4 002E5424  4B F8 64 CD */	bl OSRegisterShutdownFunction
/* 802E97C8 002E5428  4B F8 4F 95 */	bl OSDisableInterrupts
/* 802E97CC 002E542C  38 00 00 02 */	li r0, 2
/* 802E97D0 002E5430  90 0D AF 08 */	stw r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E97D4 002E5434  4B F8 4F B1 */	bl OSRestoreInterrupts
/* 802E97D8 002E5438  80 6D 8A 80 */	lwz r3, lbl_8063DD40-_SDA_BASE_(r13)
/* 802E97DC 002E543C  4B F7 FE 75 */	bl OSRegisterVersion
/* 802E97E0 002E5440  38 60 00 00 */	li r3, 0
/* 802E97E4 002E5444  48 00 00 B0 */	b lbl_802E9894
lbl_802E97E8:
/* 802E97E8 002E5448  4B F8 4F 75 */	bl OSDisableInterrupts
/* 802E97EC 002E544C  38 00 00 00 */	li r0, 0
/* 802E97F0 002E5450  90 0D AF 08 */	stw r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E97F4 002E5454  4B F8 4F 91 */	bl OSRestoreInterrupts
/* 802E97F8 002E5458  3C 60 80 40 */	lis r3, lbl_803FDF20@ha
/* 802E97FC 002E545C  38 00 00 28 */	li r0, 0x28
/* 802E9800 002E5460  38 63 DF 20 */	addi r3, r3, lbl_803FDF20@l
/* 802E9804 002E5464  38 A1 01 5C */	addi r5, r1, 0x15c
/* 802E9808 002E5468  38 83 FF FC */	addi r4, r3, -4
/* 802E980C 002E546C  7C 09 03 A6 */	mtctr r0
lbl_802E9810:
/* 802E9810 002E5470  80 64 00 04 */	lwz r3, 4(r4)
/* 802E9814 002E5474  84 04 00 08 */	lwzu r0, 8(r4)
/* 802E9818 002E5478  90 65 00 04 */	stw r3, 4(r5)
/* 802E981C 002E547C  94 05 00 08 */	stwu r0, 8(r5)
/* 802E9820 002E5480  42 00 FF F0 */	bdnz lbl_802E9810
/* 802E9824 002E5484  2C 1C 00 00 */	cmpwi r28, 0
/* 802E9828 002E5488  3B A0 00 00 */	li r29, 0
/* 802E982C 002E548C  38 60 00 00 */	li r3, 0
/* 802E9830 002E5490  41 80 00 08 */	blt lbl_802E9838
/* 802E9834 002E5494  48 00 00 5C */	b lbl_802E9890
lbl_802E9838:
/* 802E9838 002E5498  38 00 00 28 */	li r0, 0x28
/* 802E983C 002E549C  3B C1 01 60 */	addi r30, r1, 0x160
/* 802E9840 002E54A0  7C 09 03 A6 */	mtctr r0
lbl_802E9844:
/* 802E9844 002E54A4  7C 1E 18 2E */	lwzx r0, r30, r3
/* 802E9848 002E54A8  7C 1C 00 00 */	cmpw r28, r0
/* 802E984C 002E54AC  40 82 00 1C */	bne lbl_802E9868
/* 802E9850 002E54B0  7F 83 E3 78 */	mr r3, r28
/* 802E9854 002E54B4  4B FF FB B1 */	bl nandReportErrorCode
/* 802E9858 002E54B8  38 1D 00 01 */	addi r0, r29, 1
/* 802E985C 002E54BC  54 00 10 3A */	slwi r0, r0, 2
/* 802E9860 002E54C0  7F 9E 00 2E */	lwzx r28, r30, r0
/* 802E9864 002E54C4  48 00 00 2C */	b lbl_802E9890
lbl_802E9868:
/* 802E9868 002E54C8  3B BD 00 02 */	addi r29, r29, 2
/* 802E986C 002E54CC  38 63 00 08 */	addi r3, r3, 8
/* 802E9870 002E54D0  42 00 FF D4 */	bdnz lbl_802E9844
/* 802E9874 002E54D4  7F 84 E3 78 */	mr r4, r28
/* 802E9878 002E54D8  38 7F 00 C8 */	addi r3, r31, 0xc8
/* 802E987C 002E54DC  4C C6 31 82 */	crclr 6
/* 802E9880 002E54E0  4B D1 E2 45 */	bl OSReport
/* 802E9884 002E54E4  7F 83 E3 78 */	mr r3, r28
/* 802E9888 002E54E8  4B FF FB 7D */	bl nandReportErrorCode
/* 802E988C 002E54EC  3B 80 FF C0 */	li r28, -64
lbl_802E9890:
/* 802E9890 002E54F0  7F 83 E3 78 */	mr r3, r28
lbl_802E9894:
/* 802E9894 002E54F4  81 41 00 00 */	lwz r10, 0(r1)
/* 802E9898 002E54F8  80 0A 00 04 */	lwz r0, 4(r10)
/* 802E989C 002E54FC  83 EA FF FC */	lwz r31, -4(r10)
/* 802E98A0 002E5500  83 CA FF F8 */	lwz r30, -8(r10)
/* 802E98A4 002E5504  83 AA FF F4 */	lwz r29, -0xc(r10)
/* 802E98A8 002E5508  83 8A FF F0 */	lwz r28, -0x10(r10)
/* 802E98AC 002E550C  7C 08 03 A6 */	mtlr r0
/* 802E98B0 002E5510  7D 41 53 78 */	mr r1, r10
/* 802E98B4 002E5514  4E 80 00 20 */	blr

nandOnShutdown:
/* 802E98B8 002E5518  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802E98BC 002E551C  7C 08 02 A6 */	mflr r0
/* 802E98C0 002E5520  90 01 00 34 */	stw r0, 0x34(r1)
/* 802E98C4 002E5524  39 61 00 30 */	addi r11, r1, 0x30
/* 802E98C8 002E5528  4B ED D8 5D */	bl _savegpr_26
/* 802E98CC 002E552C  2C 03 00 00 */	cmpwi r3, 0
/* 802E98D0 002E5530  40 82 00 98 */	bne lbl_802E9968
/* 802E98D4 002E5534  28 04 00 02 */	cmplwi r4, 2
/* 802E98D8 002E5538  40 82 00 88 */	bne lbl_802E9960
/* 802E98DC 002E553C  3B 40 00 00 */	li r26, 0
/* 802E98E0 002E5540  93 41 00 08 */	stw r26, 8(r1)
/* 802E98E4 002E5544  4B F8 8E D5 */	bl OSGetTime
/* 802E98E8 002E5548  3C A0 80 2F */	lis r5, nandShutdownCallback@ha
/* 802E98EC 002E554C  7C 9B 23 78 */	mr r27, r4
/* 802E98F0 002E5550  7C 7C 1B 78 */	mr r28, r3
/* 802E98F4 002E5554  38 81 00 08 */	addi r4, r1, 8
/* 802E98F8 002E5558  38 65 99 84 */	addi r3, r5, nandShutdownCallback@l
/* 802E98FC 002E555C  4B FB C1 9D */	bl ISFS_ShutdownAsync
/* 802E9900 002E5560  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 802E9904 002E5564  3F C0 80 00 */	lis r30, 0x8000
/* 802E9908 002E5568  3B A3 4D D3 */	addi r29, r3, 0x10624DD3@l
/* 802E990C 002E556C  3B E0 01 F4 */	li r31, 0x1f4
/* 802E9910 002E5570  48 00 00 10 */	b lbl_802E9920
lbl_802E9914:
/* 802E9914 002E5574  80 01 00 08 */	lwz r0, 8(r1)
/* 802E9918 002E5578  2C 00 00 00 */	cmpwi r0, 0
/* 802E991C 002E557C  40 82 00 44 */	bne lbl_802E9960
lbl_802E9920:
/* 802E9920 002E5580  4B F8 8E 99 */	bl OSGetTime
/* 802E9924 002E5584  80 1E 00 F8 */	lwz r0, 0xf8(r30)
/* 802E9928 002E5588  7C 9B 20 10 */	subfc r4, r27, r4
/* 802E992C 002E558C  7C 7C 19 10 */	subfe r3, r28, r3
/* 802E9930 002E5590  38 A0 00 00 */	li r5, 0
/* 802E9934 002E5594  54 00 F0 BE */	srwi r0, r0, 2
/* 802E9938 002E5598  7C 1D 00 16 */	mulhwu r0, r29, r0
/* 802E993C 002E559C  54 06 D1 BE */	srwi r6, r0, 6
/* 802E9940 002E55A0  4B ED D9 39 */	bl __div2i
/* 802E9944 002E55A4  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 802E9948 002E55A8  6F 45 80 00 */	xoris r5, r26, 0x8000
/* 802E994C 002E55AC  7C 7F 20 10 */	subfc r3, r31, r4
/* 802E9950 002E55B0  7C A5 01 10 */	subfe r5, r5, r0
/* 802E9954 002E55B4  7C A0 01 10 */	subfe r5, r0, r0
/* 802E9958 002E55B8  7C A5 00 D1 */	neg. r5, r5
/* 802E995C 002E55BC  40 82 FF B8 */	bne lbl_802E9914
lbl_802E9960:
/* 802E9960 002E55C0  38 60 00 01 */	li r3, 1
/* 802E9964 002E55C4  48 00 00 08 */	b lbl_802E996C
lbl_802E9968:
/* 802E9968 002E55C8  38 60 00 01 */	li r3, 1
lbl_802E996C:
/* 802E996C 002E55CC  39 61 00 30 */	addi r11, r1, 0x30
/* 802E9970 002E55D0  4B ED D8 01 */	bl _restgpr_26
/* 802E9974 002E55D4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802E9978 002E55D8  7C 08 03 A6 */	mtlr r0
/* 802E997C 002E55DC  38 21 00 30 */	addi r1, r1, 0x30
/* 802E9980 002E55E0  4E 80 00 20 */	blr

.global nandShutdownCallback
nandShutdownCallback:
/* 802E9984 002E55E4  38 00 00 01 */	li r0, 1
/* 802E9988 002E55E8  90 04 00 00 */	stw r0, 0(r4)
/* 802E998C 002E55EC  4E 80 00 20 */	blr

.global nandChangeDir
nandChangeDir:
/* 802E9990 002E55F0  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 802E9994 002E55F4  7C 08 02 A6 */	mflr r0
/* 802E9998 002E55F8  2C 05 00 00 */	cmpwi r5, 0
/* 802E999C 002E55FC  90 01 00 64 */	stw r0, 0x64(r1)
/* 802E99A0 002E5600  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 802E99A4 002E5604  7C DF 33 78 */	mr r31, r6
/* 802E99A8 002E5608  93 C1 00 58 */	stw r30, 0x58(r1)
/* 802E99AC 002E560C  7C 9E 23 78 */	mr r30, r4
/* 802E99B0 002E5610  93 A1 00 54 */	stw r29, 0x54(r1)
/* 802E99B4 002E5614  7C 7D 1B 78 */	mr r29, r3
/* 802E99B8 002E5618  41 82 00 F4 */	beq lbl_802E9AAC
/* 802E99BC 002E561C  4B ED D1 A9 */	bl strlen
/* 802E99C0 002E5620  2C 03 00 00 */	cmpwi r3, 0
/* 802E99C4 002E5624  40 82 00 14 */	bne lbl_802E99D8
/* 802E99C8 002E5628  38 7E 00 34 */	addi r3, r30, 0x34
/* 802E99CC 002E562C  38 8D 8A 88 */	addi r4, r13, lbl_8063DD48-_SDA_BASE_
/* 802E99D0 002E5630  4B EE 49 01 */	bl strcpy
/* 802E99D4 002E5634  48 00 00 78 */	b lbl_802E9A4C
lbl_802E99D8:
/* 802E99D8 002E5638  88 1D 00 00 */	lbz r0, 0(r29)
/* 802E99DC 002E563C  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E99E0 002E5640  40 82 00 0C */	bne lbl_802E99EC
/* 802E99E4 002E5644  38 00 00 00 */	li r0, 0
/* 802E99E8 002E5648  48 00 00 08 */	b lbl_802E99F0
lbl_802E99EC:
/* 802E99EC 002E564C  38 00 00 01 */	li r0, 1
lbl_802E99F0:
/* 802E99F0 002E5650  2C 00 00 00 */	cmpwi r0, 0
/* 802E99F4 002E5654  41 82 00 1C */	beq lbl_802E9A10
/* 802E99F8 002E5658  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802E99FC 002E565C  7F A5 EB 78 */	mr r5, r29
/* 802E9A00 002E5660  38 7E 00 34 */	addi r3, r30, 0x34
/* 802E9A04 002E5664  38 84 56 C0 */	addi r4, r4, lbl_804456C0@l
/* 802E9A08 002E5668  4B FF F8 21 */	bl nandConvertPath
/* 802E9A0C 002E566C  48 00 00 40 */	b lbl_802E9A4C
lbl_802E9A10:
/* 802E9A10 002E5670  7F A4 EB 78 */	mr r4, r29
/* 802E9A14 002E5674  38 7E 00 34 */	addi r3, r30, 0x34
/* 802E9A18 002E5678  4B EE 48 B9 */	bl strcpy
/* 802E9A1C 002E567C  38 7E 00 34 */	addi r3, r30, 0x34
/* 802E9A20 002E5680  4B ED D1 45 */	bl strlen
/* 802E9A24 002E5684  2C 03 00 00 */	cmpwi r3, 0
/* 802E9A28 002E5688  41 82 00 24 */	beq lbl_802E9A4C
/* 802E9A2C 002E568C  7C 83 F2 14 */	add r4, r3, r30
/* 802E9A30 002E5690  88 04 00 33 */	lbz r0, 0x33(r4)
/* 802E9A34 002E5694  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E9A38 002E5698  40 82 00 14 */	bne lbl_802E9A4C
/* 802E9A3C 002E569C  34 03 FF FF */	addic. r0, r3, -1
/* 802E9A40 002E56A0  41 82 00 0C */	beq lbl_802E9A4C
/* 802E9A44 002E56A4  38 00 00 00 */	li r0, 0
/* 802E9A48 002E56A8  98 04 00 33 */	stb r0, 0x33(r4)
lbl_802E9A4C:
/* 802E9A4C 002E56AC  2C 1F 00 00 */	cmpwi r31, 0
/* 802E9A50 002E56B0  40 82 00 3C */	bne lbl_802E9A8C
/* 802E9A54 002E56B4  3C 80 80 44 */	lis r4, lbl_80445710@ha
/* 802E9A58 002E56B8  38 7E 00 34 */	addi r3, r30, 0x34
/* 802E9A5C 002E56BC  38 84 57 10 */	addi r4, r4, lbl_80445710@l
/* 802E9A60 002E56C0  38 A0 00 08 */	li r5, 8
/* 802E9A64 002E56C4  4B EE 4B 05 */	bl strncmp
/* 802E9A68 002E56C8  2C 03 00 00 */	cmpwi r3, 0
/* 802E9A6C 002E56CC  40 82 00 0C */	bne lbl_802E9A78
/* 802E9A70 002E56D0  38 00 00 01 */	li r0, 1
/* 802E9A74 002E56D4  48 00 00 08 */	b lbl_802E9A7C
lbl_802E9A78:
/* 802E9A78 002E56D8  38 00 00 00 */	li r0, 0
lbl_802E9A7C:
/* 802E9A7C 002E56DC  2C 00 00 00 */	cmpwi r0, 0
/* 802E9A80 002E56E0  41 82 00 0C */	beq lbl_802E9A8C
/* 802E9A84 002E56E4  38 60 FF 9A */	li r3, -102
/* 802E9A88 002E56E8  48 00 01 80 */	b lbl_802E9C08
lbl_802E9A8C:
/* 802E9A8C 002E56EC  3C C0 80 2F */	lis r6, nandChangeDirCallback@ha
/* 802E9A90 002E56F0  7F C7 F3 78 */	mr r7, r30
/* 802E9A94 002E56F4  38 7E 00 34 */	addi r3, r30, 0x34
/* 802E9A98 002E56F8  38 BE 00 30 */	addi r5, r30, 0x30
/* 802E9A9C 002E56FC  38 C6 9D 1C */	addi r6, r6, nandChangeDirCallback@l
/* 802E9AA0 002E5700  38 80 00 00 */	li r4, 0
/* 802E9AA4 002E5704  4B FB B2 15 */	bl ISFS_ReadDirAsync
/* 802E9AA8 002E5708  48 00 01 60 */	b lbl_802E9C08
lbl_802E9AAC:
/* 802E9AAC 002E570C  38 00 00 00 */	li r0, 0
/* 802E9AB0 002E5710  90 01 00 08 */	stw r0, 8(r1)
/* 802E9AB4 002E5714  90 01 00 10 */	stw r0, 0x10(r1)
/* 802E9AB8 002E5718  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E9ABC 002E571C  90 01 00 18 */	stw r0, 0x18(r1)
/* 802E9AC0 002E5720  90 01 00 1C */	stw r0, 0x1c(r1)
/* 802E9AC4 002E5724  90 01 00 20 */	stw r0, 0x20(r1)
/* 802E9AC8 002E5728  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E9ACC 002E572C  90 01 00 28 */	stw r0, 0x28(r1)
/* 802E9AD0 002E5730  90 01 00 2C */	stw r0, 0x2c(r1)
/* 802E9AD4 002E5734  90 01 00 30 */	stw r0, 0x30(r1)
/* 802E9AD8 002E5738  90 01 00 34 */	stw r0, 0x34(r1)
/* 802E9ADC 002E573C  90 01 00 38 */	stw r0, 0x38(r1)
/* 802E9AE0 002E5740  90 01 00 3C */	stw r0, 0x3c(r1)
/* 802E9AE4 002E5744  90 01 00 40 */	stw r0, 0x40(r1)
/* 802E9AE8 002E5748  90 01 00 44 */	stw r0, 0x44(r1)
/* 802E9AEC 002E574C  90 01 00 48 */	stw r0, 0x48(r1)
/* 802E9AF0 002E5750  90 01 00 4C */	stw r0, 0x4c(r1)
/* 802E9AF4 002E5754  4B ED D0 71 */	bl strlen
/* 802E9AF8 002E5758  2C 03 00 00 */	cmpwi r3, 0
/* 802E9AFC 002E575C  40 82 00 14 */	bne lbl_802E9B10
/* 802E9B00 002E5760  38 61 00 10 */	addi r3, r1, 0x10
/* 802E9B04 002E5764  38 8D 8A 88 */	addi r4, r13, lbl_8063DD48-_SDA_BASE_
/* 802E9B08 002E5768  4B EE 47 C9 */	bl strcpy
/* 802E9B0C 002E576C  48 00 00 7C */	b lbl_802E9B88
lbl_802E9B10:
/* 802E9B10 002E5770  88 1D 00 00 */	lbz r0, 0(r29)
/* 802E9B14 002E5774  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E9B18 002E5778  40 82 00 0C */	bne lbl_802E9B24
/* 802E9B1C 002E577C  38 00 00 00 */	li r0, 0
/* 802E9B20 002E5780  48 00 00 08 */	b lbl_802E9B28
lbl_802E9B24:
/* 802E9B24 002E5784  38 00 00 01 */	li r0, 1
lbl_802E9B28:
/* 802E9B28 002E5788  2C 00 00 00 */	cmpwi r0, 0
/* 802E9B2C 002E578C  41 82 00 1C */	beq lbl_802E9B48
/* 802E9B30 002E5790  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802E9B34 002E5794  7F A5 EB 78 */	mr r5, r29
/* 802E9B38 002E5798  38 61 00 10 */	addi r3, r1, 0x10
/* 802E9B3C 002E579C  38 84 56 C0 */	addi r4, r4, lbl_804456C0@l
/* 802E9B40 002E57A0  4B FF F6 E9 */	bl nandConvertPath
/* 802E9B44 002E57A4  48 00 00 44 */	b lbl_802E9B88
lbl_802E9B48:
/* 802E9B48 002E57A8  7F A4 EB 78 */	mr r4, r29
/* 802E9B4C 002E57AC  38 61 00 10 */	addi r3, r1, 0x10
/* 802E9B50 002E57B0  4B EE 47 81 */	bl strcpy
/* 802E9B54 002E57B4  38 61 00 10 */	addi r3, r1, 0x10
/* 802E9B58 002E57B8  4B ED D0 0D */	bl strlen
/* 802E9B5C 002E57BC  2C 03 00 00 */	cmpwi r3, 0
/* 802E9B60 002E57C0  41 82 00 28 */	beq lbl_802E9B88
/* 802E9B64 002E57C4  38 01 00 10 */	addi r0, r1, 0x10
/* 802E9B68 002E57C8  7C 83 02 14 */	add r4, r3, r0
/* 802E9B6C 002E57CC  88 04 FF FF */	lbz r0, -1(r4)
/* 802E9B70 002E57D0  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802E9B74 002E57D4  40 82 00 14 */	bne lbl_802E9B88
/* 802E9B78 002E57D8  34 03 FF FF */	addic. r0, r3, -1
/* 802E9B7C 002E57DC  41 82 00 0C */	beq lbl_802E9B88
/* 802E9B80 002E57E0  38 00 00 00 */	li r0, 0
/* 802E9B84 002E57E4  98 04 FF FF */	stb r0, -1(r4)
lbl_802E9B88:
/* 802E9B88 002E57E8  2C 1F 00 00 */	cmpwi r31, 0
/* 802E9B8C 002E57EC  40 82 00 3C */	bne lbl_802E9BC8
/* 802E9B90 002E57F0  3C 80 80 44 */	lis r4, lbl_80445710@ha
/* 802E9B94 002E57F4  38 61 00 10 */	addi r3, r1, 0x10
/* 802E9B98 002E57F8  38 84 57 10 */	addi r4, r4, lbl_80445710@l
/* 802E9B9C 002E57FC  38 A0 00 08 */	li r5, 8
/* 802E9BA0 002E5800  4B EE 49 C9 */	bl strncmp
/* 802E9BA4 002E5804  2C 03 00 00 */	cmpwi r3, 0
/* 802E9BA8 002E5808  40 82 00 0C */	bne lbl_802E9BB4
/* 802E9BAC 002E580C  38 00 00 01 */	li r0, 1
/* 802E9BB0 002E5810  48 00 00 08 */	b lbl_802E9BB8
lbl_802E9BB4:
/* 802E9BB4 002E5814  38 00 00 00 */	li r0, 0
lbl_802E9BB8:
/* 802E9BB8 002E5818  2C 00 00 00 */	cmpwi r0, 0
/* 802E9BBC 002E581C  41 82 00 0C */	beq lbl_802E9BC8
/* 802E9BC0 002E5820  38 60 FF 9A */	li r3, -102
/* 802E9BC4 002E5824  48 00 00 44 */	b lbl_802E9C08
lbl_802E9BC8:
/* 802E9BC8 002E5828  38 61 00 10 */	addi r3, r1, 0x10
/* 802E9BCC 002E582C  38 A1 00 08 */	addi r5, r1, 8
/* 802E9BD0 002E5830  38 80 00 00 */	li r4, 0
/* 802E9BD4 002E5834  4B FB AF 91 */	bl ISFS_ReadDir
/* 802E9BD8 002E5838  2C 03 00 00 */	cmpwi r3, 0
/* 802E9BDC 002E583C  7C 7F 1B 78 */	mr r31, r3
/* 802E9BE0 002E5840  40 82 00 24 */	bne lbl_802E9C04
/* 802E9BE4 002E5844  4B F8 4B 79 */	bl OSDisableInterrupts
/* 802E9BE8 002E5848  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802E9BEC 002E584C  7C 7E 1B 78 */	mr r30, r3
/* 802E9BF0 002E5850  38 64 56 C0 */	addi r3, r4, lbl_804456C0@l
/* 802E9BF4 002E5854  38 81 00 10 */	addi r4, r1, 0x10
/* 802E9BF8 002E5858  4B EE 46 D9 */	bl strcpy
/* 802E9BFC 002E585C  7F C3 F3 78 */	mr r3, r30
/* 802E9C00 002E5860  4B F8 4B 85 */	bl OSRestoreInterrupts
lbl_802E9C04:
/* 802E9C04 002E5864  7F E3 FB 78 */	mr r3, r31
lbl_802E9C08:
/* 802E9C08 002E5868  80 01 00 64 */	lwz r0, 0x64(r1)
/* 802E9C0C 002E586C  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 802E9C10 002E5870  83 C1 00 58 */	lwz r30, 0x58(r1)
/* 802E9C14 002E5874  83 A1 00 54 */	lwz r29, 0x54(r1)
/* 802E9C18 002E5878  7C 08 03 A6 */	mtlr r0
/* 802E9C1C 002E587C  38 21 00 60 */	addi r1, r1, 0x60
/* 802E9C20 002E5880  4E 80 00 20 */	blr

# either NANDChangeDirAsync or NANDPrivateChangeDirAsync
.global func_802E9C24
func_802E9C24:
/* 802E9C24 002E5884  94 21 FE B0 */	stwu r1, -0x150(r1)
/* 802E9C28 002E5888  7C 08 02 A6 */	mflr r0
/* 802E9C2C 002E588C  90 01 01 54 */	stw r0, 0x154(r1)
/* 802E9C30 002E5890  93 E1 01 4C */	stw r31, 0x14c(r1)
/* 802E9C34 002E5894  93 C1 01 48 */	stw r30, 0x148(r1)
/* 802E9C38 002E5898  80 0D AF 08 */	lwz r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E9C3C 002E589C  2C 00 00 02 */	cmpwi r0, 2
/* 802E9C40 002E58A0  41 82 00 0C */	beq lbl_802E9C4C
/* 802E9C44 002E58A4  38 60 FF 80 */	li r3, -128
/* 802E9C48 002E58A8  48 00 00 BC */	b lbl_802E9D04
lbl_802E9C4C:
/* 802E9C4C 002E58AC  90 85 00 04 */	stw r4, 4(r5)
/* 802E9C50 002E58B0  7C A4 2B 78 */	mr r4, r5
/* 802E9C54 002E58B4  38 A0 00 01 */	li r5, 1
/* 802E9C58 002E58B8  38 C0 00 00 */	li r6, 0
/* 802E9C5C 002E58BC  4B FF FD 35 */	bl nandChangeDir
/* 802E9C60 002E58C0  3C 80 80 40 */	lis r4, lbl_803FDF20@ha
/* 802E9C64 002E58C4  38 00 00 28 */	li r0, 0x28
/* 802E9C68 002E58C8  38 84 DF 20 */	addi r4, r4, lbl_803FDF20@l
/* 802E9C6C 002E58CC  7C 7F 1B 78 */	mr r31, r3
/* 802E9C70 002E58D0  38 C1 00 04 */	addi r6, r1, 4
/* 802E9C74 002E58D4  38 A4 FF FC */	addi r5, r4, -4
/* 802E9C78 002E58D8  7C 09 03 A6 */	mtctr r0
lbl_802E9C7C:
/* 802E9C7C 002E58DC  80 85 00 04 */	lwz r4, 4(r5)
/* 802E9C80 002E58E0  84 05 00 08 */	lwzu r0, 8(r5)
/* 802E9C84 002E58E4  90 86 00 04 */	stw r4, 4(r6)
/* 802E9C88 002E58E8  94 06 00 08 */	stwu r0, 8(r6)
/* 802E9C8C 002E58EC  42 00 FF F0 */	bdnz lbl_802E9C7C
/* 802E9C90 002E58F0  2C 03 00 00 */	cmpwi r3, 0
/* 802E9C94 002E58F4  3B C0 00 00 */	li r30, 0
/* 802E9C98 002E58F8  41 80 00 08 */	blt lbl_802E9CA0
/* 802E9C9C 002E58FC  48 00 00 64 */	b lbl_802E9D00
lbl_802E9CA0:
/* 802E9CA0 002E5900  38 00 00 28 */	li r0, 0x28
/* 802E9CA4 002E5904  38 81 00 08 */	addi r4, r1, 8
/* 802E9CA8 002E5908  7C 09 03 A6 */	mtctr r0
lbl_802E9CAC:
/* 802E9CAC 002E590C  80 04 00 00 */	lwz r0, 0(r4)
/* 802E9CB0 002E5910  7C 03 00 00 */	cmpw r3, r0
/* 802E9CB4 002E5914  40 82 00 20 */	bne lbl_802E9CD4
/* 802E9CB8 002E5918  7F E3 FB 78 */	mr r3, r31
/* 802E9CBC 002E591C  4B FF F7 49 */	bl nandReportErrorCode
/* 802E9CC0 002E5920  38 1E 00 01 */	addi r0, r30, 1
/* 802E9CC4 002E5924  38 61 00 08 */	addi r3, r1, 8
/* 802E9CC8 002E5928  54 00 10 3A */	slwi r0, r0, 2
/* 802E9CCC 002E592C  7F E3 00 2E */	lwzx r31, r3, r0
/* 802E9CD0 002E5930  48 00 00 30 */	b lbl_802E9D00
lbl_802E9CD4:
/* 802E9CD4 002E5934  38 84 00 08 */	addi r4, r4, 8
/* 802E9CD8 002E5938  3B DE 00 02 */	addi r30, r30, 2
/* 802E9CDC 002E593C  42 00 FF D0 */	bdnz lbl_802E9CAC
/* 802E9CE0 002E5940  3C 60 80 44 */	lis r3, lbl_80445728@ha
/* 802E9CE4 002E5944  7F E4 FB 78 */	mr r4, r31
/* 802E9CE8 002E5948  38 63 57 28 */	addi r3, r3, lbl_80445728@l
/* 802E9CEC 002E594C  4C C6 31 82 */	crclr 6
/* 802E9CF0 002E5950  4B D1 DD D5 */	bl OSReport
/* 802E9CF4 002E5954  7F E3 FB 78 */	mr r3, r31
/* 802E9CF8 002E5958  4B FF F7 0D */	bl nandReportErrorCode
/* 802E9CFC 002E595C  3B E0 FF C0 */	li r31, -64
lbl_802E9D00:
/* 802E9D00 002E5960  7F E3 FB 78 */	mr r3, r31
lbl_802E9D04:
/* 802E9D04 002E5964  80 01 01 54 */	lwz r0, 0x154(r1)
/* 802E9D08 002E5968  83 E1 01 4C */	lwz r31, 0x14c(r1)
/* 802E9D0C 002E596C  83 C1 01 48 */	lwz r30, 0x148(r1)
/* 802E9D10 002E5970  7C 08 03 A6 */	mtlr r0
/* 802E9D14 002E5974  38 21 01 50 */	addi r1, r1, 0x150
/* 802E9D18 002E5978  4E 80 00 20 */	blr

nandChangeDirCallback:
/* 802E9D1C 002E597C  94 21 FE A0 */	stwu r1, -0x160(r1)
/* 802E9D20 002E5980  7C 08 02 A6 */	mflr r0
/* 802E9D24 002E5984  2C 03 00 00 */	cmpwi r3, 0
/* 802E9D28 002E5988  90 01 01 64 */	stw r0, 0x164(r1)
/* 802E9D2C 002E598C  93 E1 01 5C */	stw r31, 0x15c(r1)
/* 802E9D30 002E5990  93 C1 01 58 */	stw r30, 0x158(r1)
/* 802E9D34 002E5994  93 A1 01 54 */	stw r29, 0x154(r1)
/* 802E9D38 002E5998  7C 9D 23 78 */	mr r29, r4
/* 802E9D3C 002E599C  93 81 01 50 */	stw r28, 0x150(r1)
/* 802E9D40 002E59A0  7C 7C 1B 78 */	mr r28, r3
/* 802E9D44 002E59A4  40 82 00 24 */	bne lbl_802E9D68
/* 802E9D48 002E59A8  4B F8 4A 15 */	bl OSDisableInterrupts
/* 802E9D4C 002E59AC  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802E9D50 002E59B0  7C 7E 1B 78 */	mr r30, r3
/* 802E9D54 002E59B4  38 64 56 C0 */	addi r3, r4, lbl_804456C0@l
/* 802E9D58 002E59B8  38 9D 00 34 */	addi r4, r29, 0x34
/* 802E9D5C 002E59BC  4B EE 45 75 */	bl strcpy
/* 802E9D60 002E59C0  7F C3 F3 78 */	mr r3, r30
/* 802E9D64 002E59C4  4B F8 4A 21 */	bl OSRestoreInterrupts
lbl_802E9D68:
/* 802E9D68 002E59C8  3C 60 80 40 */	lis r3, lbl_803FDF20@ha
/* 802E9D6C 002E59CC  38 00 00 28 */	li r0, 0x28
/* 802E9D70 002E59D0  38 63 DF 20 */	addi r3, r3, lbl_803FDF20@l
/* 802E9D74 002E59D4  38 A1 00 04 */	addi r5, r1, 4
/* 802E9D78 002E59D8  38 83 FF FC */	addi r4, r3, -4
/* 802E9D7C 002E59DC  7C 09 03 A6 */	mtctr r0
lbl_802E9D80:
/* 802E9D80 002E59E0  80 64 00 04 */	lwz r3, 4(r4)
/* 802E9D84 002E59E4  84 04 00 08 */	lwzu r0, 8(r4)
/* 802E9D88 002E59E8  90 65 00 04 */	stw r3, 4(r5)
/* 802E9D8C 002E59EC  94 05 00 08 */	stwu r0, 8(r5)
/* 802E9D90 002E59F0  42 00 FF F0 */	bdnz lbl_802E9D80
/* 802E9D94 002E59F4  2C 1C 00 00 */	cmpwi r28, 0
/* 802E9D98 002E59F8  3B C0 00 00 */	li r30, 0
/* 802E9D9C 002E59FC  38 60 00 00 */	li r3, 0
/* 802E9DA0 002E5A00  41 80 00 08 */	blt lbl_802E9DA8
/* 802E9DA4 002E5A04  48 00 00 60 */	b lbl_802E9E04
lbl_802E9DA8:
/* 802E9DA8 002E5A08  38 00 00 28 */	li r0, 0x28
/* 802E9DAC 002E5A0C  3B E1 00 08 */	addi r31, r1, 8
/* 802E9DB0 002E5A10  7C 09 03 A6 */	mtctr r0
lbl_802E9DB4:
/* 802E9DB4 002E5A14  7C 1F 18 2E */	lwzx r0, r31, r3
/* 802E9DB8 002E5A18  7C 1C 00 00 */	cmpw r28, r0
/* 802E9DBC 002E5A1C  40 82 00 1C */	bne lbl_802E9DD8
/* 802E9DC0 002E5A20  7F 83 E3 78 */	mr r3, r28
/* 802E9DC4 002E5A24  4B FF F6 41 */	bl nandReportErrorCode
/* 802E9DC8 002E5A28  38 1E 00 01 */	addi r0, r30, 1
/* 802E9DCC 002E5A2C  54 00 10 3A */	slwi r0, r0, 2
/* 802E9DD0 002E5A30  7F 9F 00 2E */	lwzx r28, r31, r0
/* 802E9DD4 002E5A34  48 00 00 30 */	b lbl_802E9E04
lbl_802E9DD8:
/* 802E9DD8 002E5A38  3B DE 00 02 */	addi r30, r30, 2
/* 802E9DDC 002E5A3C  38 63 00 08 */	addi r3, r3, 8
/* 802E9DE0 002E5A40  42 00 FF D4 */	bdnz lbl_802E9DB4
/* 802E9DE4 002E5A44  3C 60 80 44 */	lis r3, lbl_80445728@ha
/* 802E9DE8 002E5A48  7F 84 E3 78 */	mr r4, r28
/* 802E9DEC 002E5A4C  38 63 57 28 */	addi r3, r3, lbl_80445728@l
/* 802E9DF0 002E5A50  4C C6 31 82 */	crclr 6
/* 802E9DF4 002E5A54  4B D1 DC D1 */	bl OSReport
/* 802E9DF8 002E5A58  7F 83 E3 78 */	mr r3, r28
/* 802E9DFC 002E5A5C  4B FF F6 09 */	bl nandReportErrorCode
/* 802E9E00 002E5A60  3B 80 FF C0 */	li r28, -64
lbl_802E9E04:
/* 802E9E04 002E5A64  81 9D 00 04 */	lwz r12, 4(r29)
/* 802E9E08 002E5A68  7F 83 E3 78 */	mr r3, r28
/* 802E9E0C 002E5A6C  7F A4 EB 78 */	mr r4, r29
/* 802E9E10 002E5A70  7D 89 03 A6 */	mtctr r12
/* 802E9E14 002E5A74  4E 80 04 21 */	bctrl
/* 802E9E18 002E5A78  80 01 01 64 */	lwz r0, 0x164(r1)
/* 802E9E1C 002E5A7C  83 E1 01 5C */	lwz r31, 0x15c(r1)
/* 802E9E20 002E5A80  83 C1 01 58 */	lwz r30, 0x158(r1)
/* 802E9E24 002E5A84  83 A1 01 54 */	lwz r29, 0x154(r1)
/* 802E9E28 002E5A88  83 81 01 50 */	lwz r28, 0x150(r1)
/* 802E9E2C 002E5A8C  7C 08 03 A6 */	mtlr r0
/* 802E9E30 002E5A90  38 21 01 60 */	addi r1, r1, 0x160
/* 802E9E34 002E5A94  4E 80 00 20 */	blr

.global NANDGetCurrentDir
NANDGetCurrentDir:
/* 802E9E38 002E5A98  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E9E3C 002E5A9C  7C 08 02 A6 */	mflr r0
/* 802E9E40 002E5AA0  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E9E44 002E5AA4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E9E48 002E5AA8  93 C1 00 08 */	stw r30, 8(r1)
/* 802E9E4C 002E5AAC  7C 7E 1B 78 */	mr r30, r3
/* 802E9E50 002E5AB0  80 0D AF 08 */	lwz r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E9E54 002E5AB4  2C 00 00 02 */	cmpwi r0, 2
/* 802E9E58 002E5AB8  40 82 00 0C */	bne lbl_802E9E64
/* 802E9E5C 002E5ABC  38 00 00 01 */	li r0, 1
/* 802E9E60 002E5AC0  48 00 00 08 */	b lbl_802E9E68
lbl_802E9E64:
/* 802E9E64 002E5AC4  38 00 00 00 */	li r0, 0
lbl_802E9E68:
/* 802E9E68 002E5AC8  2C 00 00 00 */	cmpwi r0, 0
/* 802E9E6C 002E5ACC  40 82 00 0C */	bne lbl_802E9E78
/* 802E9E70 002E5AD0  38 60 FF 80 */	li r3, -128
/* 802E9E74 002E5AD4  48 00 00 28 */	b lbl_802E9E9C
lbl_802E9E78:
/* 802E9E78 002E5AD8  4B F8 48 E5 */	bl OSDisableInterrupts
/* 802E9E7C 002E5ADC  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802E9E80 002E5AE0  7C 7F 1B 78 */	mr r31, r3
/* 802E9E84 002E5AE4  7F C3 F3 78 */	mr r3, r30
/* 802E9E88 002E5AE8  38 84 56 C0 */	addi r4, r4, lbl_804456C0@l
/* 802E9E8C 002E5AEC  4B EE 44 45 */	bl strcpy
/* 802E9E90 002E5AF0  7F E3 FB 78 */	mr r3, r31
/* 802E9E94 002E5AF4  4B F8 48 F1 */	bl OSRestoreInterrupts
/* 802E9E98 002E5AF8  38 60 00 00 */	li r3, 0
lbl_802E9E9C:
/* 802E9E9C 002E5AFC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E9EA0 002E5B00  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E9EA4 002E5B04  83 C1 00 08 */	lwz r30, 8(r1)
/* 802E9EA8 002E5B08  7C 08 03 A6 */	mtlr r0
/* 802E9EAC 002E5B0C  38 21 00 10 */	addi r1, r1, 0x10
/* 802E9EB0 002E5B10  4E 80 00 20 */	blr

.global NANDGetHomeDir
NANDGetHomeDir:
/* 802E9EB4 002E5B14  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E9EB8 002E5B18  7C 08 02 A6 */	mflr r0
/* 802E9EBC 002E5B1C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E9EC0 002E5B20  80 0D AF 08 */	lwz r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802E9EC4 002E5B24  2C 00 00 02 */	cmpwi r0, 2
/* 802E9EC8 002E5B28  40 82 00 0C */	bne lbl_802E9ED4
/* 802E9ECC 002E5B2C  38 00 00 01 */	li r0, 1
/* 802E9ED0 002E5B30  48 00 00 08 */	b lbl_802E9ED8
lbl_802E9ED4:
/* 802E9ED4 002E5B34  38 00 00 00 */	li r0, 0
lbl_802E9ED8:
/* 802E9ED8 002E5B38  2C 00 00 00 */	cmpwi r0, 0
/* 802E9EDC 002E5B3C  40 82 00 0C */	bne lbl_802E9EE8
/* 802E9EE0 002E5B40  38 60 FF 80 */	li r3, -128
/* 802E9EE4 002E5B44  48 00 00 14 */	b lbl_802E9EF8
lbl_802E9EE8:
/* 802E9EE8 002E5B48  3C 80 80 57 */	lis r4, lbl_80570E80@ha
/* 802E9EEC 002E5B4C  38 84 0E 80 */	addi r4, r4, lbl_80570E80@l
/* 802E9EF0 002E5B50  4B EE 43 E1 */	bl strcpy
/* 802E9EF4 002E5B54  38 60 00 00 */	li r3, 0
lbl_802E9EF8:
/* 802E9EF8 002E5B58  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E9EFC 002E5B5C  7C 08 03 A6 */	mtlr r0
/* 802E9F00 002E5B60  38 21 00 10 */	addi r1, r1, 0x10
/* 802E9F04 002E5B64  4E 80 00 20 */	blr

.global nandCallback
nandCallback:
/* 802E9F08 002E5B68  94 21 FE A0 */	stwu r1, -0x160(r1)
/* 802E9F0C 002E5B6C  7C 08 02 A6 */	mflr r0
/* 802E9F10 002E5B70  3C A0 80 40 */	lis r5, lbl_803FDF20@ha
/* 802E9F14 002E5B74  90 01 01 64 */	stw r0, 0x164(r1)
/* 802E9F18 002E5B78  38 A5 DF 20 */	addi r5, r5, lbl_803FDF20@l
/* 802E9F1C 002E5B7C  38 00 00 28 */	li r0, 0x28
/* 802E9F20 002E5B80  38 C1 00 04 */	addi r6, r1, 4
/* 802E9F24 002E5B84  93 E1 01 5C */	stw r31, 0x15c(r1)
/* 802E9F28 002E5B88  38 A5 FF FC */	addi r5, r5, -4
/* 802E9F2C 002E5B8C  93 C1 01 58 */	stw r30, 0x158(r1)
/* 802E9F30 002E5B90  7C 9E 23 78 */	mr r30, r4
/* 802E9F34 002E5B94  93 A1 01 54 */	stw r29, 0x154(r1)
/* 802E9F38 002E5B98  7C 7D 1B 78 */	mr r29, r3
/* 802E9F3C 002E5B9C  7C 09 03 A6 */	mtctr r0
lbl_802E9F40:
/* 802E9F40 002E5BA0  80 85 00 04 */	lwz r4, 4(r5)
/* 802E9F44 002E5BA4  84 05 00 08 */	lwzu r0, 8(r5)
/* 802E9F48 002E5BA8  90 86 00 04 */	stw r4, 4(r6)
/* 802E9F4C 002E5BAC  94 06 00 08 */	stwu r0, 8(r6)
/* 802E9F50 002E5BB0  42 00 FF F0 */	bdnz lbl_802E9F40
/* 802E9F54 002E5BB4  2C 03 00 00 */	cmpwi r3, 0
/* 802E9F58 002E5BB8  3B E0 00 00 */	li r31, 0
/* 802E9F5C 002E5BBC  41 80 00 08 */	blt lbl_802E9F64
/* 802E9F60 002E5BC0  48 00 00 64 */	b lbl_802E9FC4
lbl_802E9F64:
/* 802E9F64 002E5BC4  38 00 00 28 */	li r0, 0x28
/* 802E9F68 002E5BC8  38 81 00 08 */	addi r4, r1, 8
/* 802E9F6C 002E5BCC  7C 09 03 A6 */	mtctr r0
lbl_802E9F70:
/* 802E9F70 002E5BD0  80 04 00 00 */	lwz r0, 0(r4)
/* 802E9F74 002E5BD4  7C 03 00 00 */	cmpw r3, r0
/* 802E9F78 002E5BD8  40 82 00 20 */	bne lbl_802E9F98
/* 802E9F7C 002E5BDC  7F A3 EB 78 */	mr r3, r29
/* 802E9F80 002E5BE0  4B FF F4 85 */	bl nandReportErrorCode
/* 802E9F84 002E5BE4  38 1F 00 01 */	addi r0, r31, 1
/* 802E9F88 002E5BE8  38 61 00 08 */	addi r3, r1, 8
/* 802E9F8C 002E5BEC  54 00 10 3A */	slwi r0, r0, 2
/* 802E9F90 002E5BF0  7F A3 00 2E */	lwzx r29, r3, r0
/* 802E9F94 002E5BF4  48 00 00 30 */	b lbl_802E9FC4
lbl_802E9F98:
/* 802E9F98 002E5BF8  38 84 00 08 */	addi r4, r4, 8
/* 802E9F9C 002E5BFC  3B FF 00 02 */	addi r31, r31, 2
/* 802E9FA0 002E5C00  42 00 FF D0 */	bdnz lbl_802E9F70
/* 802E9FA4 002E5C04  3C 60 80 44 */	lis r3, lbl_80445728@ha
/* 802E9FA8 002E5C08  7F A4 EB 78 */	mr r4, r29
/* 802E9FAC 002E5C0C  38 63 57 28 */	addi r3, r3, lbl_80445728@l
/* 802E9FB0 002E5C10  4C C6 31 82 */	crclr 6
/* 802E9FB4 002E5C14  4B D1 DB 11 */	bl OSReport
/* 802E9FB8 002E5C18  7F A3 EB 78 */	mr r3, r29
/* 802E9FBC 002E5C1C  4B FF F4 49 */	bl nandReportErrorCode
/* 802E9FC0 002E5C20  3B A0 FF C0 */	li r29, -64
lbl_802E9FC4:
/* 802E9FC4 002E5C24  81 9E 00 04 */	lwz r12, 4(r30)
/* 802E9FC8 002E5C28  7F A3 EB 78 */	mr r3, r29
/* 802E9FCC 002E5C2C  7F C4 F3 78 */	mr r4, r30
/* 802E9FD0 002E5C30  7D 89 03 A6 */	mtctr r12
/* 802E9FD4 002E5C34  4E 80 04 21 */	bctrl
/* 802E9FD8 002E5C38  80 01 01 64 */	lwz r0, 0x164(r1)
/* 802E9FDC 002E5C3C  83 E1 01 5C */	lwz r31, 0x15c(r1)
/* 802E9FE0 002E5C40  83 C1 01 58 */	lwz r30, 0x158(r1)
/* 802E9FE4 002E5C44  83 A1 01 54 */	lwz r29, 0x154(r1)
/* 802E9FE8 002E5C48  7C 08 03 A6 */	mtlr r0
/* 802E9FEC 002E5C4C  38 21 01 60 */	addi r1, r1, 0x160
/* 802E9FF0 002E5C50  4E 80 00 20 */	blr

.global nandGetType
nandGetType:
/* 802E9FF4 002E5C54  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 802E9FF8 002E5C58  7C 08 02 A6 */	mflr r0
/* 802E9FFC 002E5C5C  90 01 00 74 */	stw r0, 0x74(r1)
/* 802EA000 002E5C60  39 61 00 70 */	addi r11, r1, 0x70
/* 802EA004 002E5C64  4B ED D1 25 */	bl _savegpr_27
/* 802EA008 002E5C68  7C 7B 1B 78 */	mr r27, r3
/* 802EA00C 002E5C6C  7C 9E 23 78 */	mr r30, r4
/* 802EA010 002E5C70  7C BC 2B 78 */	mr r28, r5
/* 802EA014 002E5C74  7C DD 33 78 */	mr r29, r6
/* 802EA018 002E5C78  7C FF 3B 78 */	mr r31, r7
/* 802EA01C 002E5C7C  4B ED CB 49 */	bl strlen
/* 802EA020 002E5C80  2C 03 00 00 */	cmpwi r3, 0
/* 802EA024 002E5C84  40 82 00 0C */	bne lbl_802EA030
/* 802EA028 002E5C88  38 60 FF 9B */	li r3, -101
/* 802EA02C 002E5C8C  48 00 02 84 */	b lbl_802EA2B0
lbl_802EA030:
/* 802EA030 002E5C90  2C 1D 00 00 */	cmpwi r29, 0
/* 802EA034 002E5C94  41 82 01 08 */	beq lbl_802EA13C
/* 802EA038 002E5C98  7F 63 DB 78 */	mr r3, r27
/* 802EA03C 002E5C9C  4B ED CB 29 */	bl strlen
/* 802EA040 002E5CA0  2C 03 00 00 */	cmpwi r3, 0
/* 802EA044 002E5CA4  40 82 00 14 */	bne lbl_802EA058
/* 802EA048 002E5CA8  38 7C 00 34 */	addi r3, r28, 0x34
/* 802EA04C 002E5CAC  38 8D 8A 88 */	addi r4, r13, lbl_8063DD48-_SDA_BASE_
/* 802EA050 002E5CB0  4B EE 42 81 */	bl strcpy
/* 802EA054 002E5CB4  48 00 00 78 */	b lbl_802EA0CC
lbl_802EA058:
/* 802EA058 002E5CB8  88 1B 00 00 */	lbz r0, 0(r27)
/* 802EA05C 002E5CBC  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802EA060 002E5CC0  40 82 00 0C */	bne lbl_802EA06C
/* 802EA064 002E5CC4  38 00 00 00 */	li r0, 0
/* 802EA068 002E5CC8  48 00 00 08 */	b lbl_802EA070
lbl_802EA06C:
/* 802EA06C 002E5CCC  38 00 00 01 */	li r0, 1
lbl_802EA070:
/* 802EA070 002E5CD0  2C 00 00 00 */	cmpwi r0, 0
/* 802EA074 002E5CD4  41 82 00 1C */	beq lbl_802EA090
/* 802EA078 002E5CD8  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802EA07C 002E5CDC  7F 65 DB 78 */	mr r5, r27
/* 802EA080 002E5CE0  38 7C 00 34 */	addi r3, r28, 0x34
/* 802EA084 002E5CE4  38 84 56 C0 */	addi r4, r4, lbl_804456C0@l
/* 802EA088 002E5CE8  4B FF F1 A1 */	bl nandConvertPath
/* 802EA08C 002E5CEC  48 00 00 40 */	b lbl_802EA0CC
lbl_802EA090:
/* 802EA090 002E5CF0  7F 64 DB 78 */	mr r4, r27
/* 802EA094 002E5CF4  38 7C 00 34 */	addi r3, r28, 0x34
/* 802EA098 002E5CF8  4B EE 42 39 */	bl strcpy
/* 802EA09C 002E5CFC  38 7C 00 34 */	addi r3, r28, 0x34
/* 802EA0A0 002E5D00  4B ED CA C5 */	bl strlen
/* 802EA0A4 002E5D04  2C 03 00 00 */	cmpwi r3, 0
/* 802EA0A8 002E5D08  41 82 00 24 */	beq lbl_802EA0CC
/* 802EA0AC 002E5D0C  7C 83 E2 14 */	add r4, r3, r28
/* 802EA0B0 002E5D10  88 04 00 33 */	lbz r0, 0x33(r4)
/* 802EA0B4 002E5D14  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802EA0B8 002E5D18  40 82 00 14 */	bne lbl_802EA0CC
/* 802EA0BC 002E5D1C  34 03 FF FF */	addic. r0, r3, -1
/* 802EA0C0 002E5D20  41 82 00 0C */	beq lbl_802EA0CC
/* 802EA0C4 002E5D24  38 00 00 00 */	li r0, 0
/* 802EA0C8 002E5D28  98 04 00 33 */	stb r0, 0x33(r4)
lbl_802EA0CC:
/* 802EA0CC 002E5D2C  2C 1F 00 00 */	cmpwi r31, 0
/* 802EA0D0 002E5D30  40 82 00 48 */	bne lbl_802EA118
/* 802EA0D4 002E5D34  3C 80 80 44 */	lis r4, lbl_8044571C@ha
/* 802EA0D8 002E5D38  38 7C 00 34 */	addi r3, r28, 0x34
/* 802EA0DC 002E5D3C  38 84 57 1C */	addi r4, r4, lbl_8044571C@l
/* 802EA0E0 002E5D40  38 A0 00 09 */	li r5, 9
/* 802EA0E4 002E5D44  4B EE 44 85 */	bl strncmp
/* 802EA0E8 002E5D48  2C 03 00 00 */	cmpwi r3, 0
/* 802EA0EC 002E5D4C  40 82 00 18 */	bne lbl_802EA104
/* 802EA0F0 002E5D50  88 1C 00 3D */	lbz r0, 0x3d(r28)
/* 802EA0F4 002E5D54  7C 00 07 75 */	extsb. r0, r0
/* 802EA0F8 002E5D58  41 82 00 0C */	beq lbl_802EA104
/* 802EA0FC 002E5D5C  38 00 00 01 */	li r0, 1
/* 802EA100 002E5D60  48 00 00 08 */	b lbl_802EA108
lbl_802EA104:
/* 802EA104 002E5D64  38 00 00 00 */	li r0, 0
lbl_802EA108:
/* 802EA108 002E5D68  2C 00 00 00 */	cmpwi r0, 0
/* 802EA10C 002E5D6C  41 82 00 0C */	beq lbl_802EA118
/* 802EA110 002E5D70  38 60 FF 9A */	li r3, -102
/* 802EA114 002E5D74  48 00 01 9C */	b lbl_802EA2B0
lbl_802EA118:
/* 802EA118 002E5D78  3C C0 80 2F */	lis r6, nandGetTypeCallback@ha
/* 802EA11C 002E5D7C  93 DC 00 88 */	stw r30, 0x88(r28)
/* 802EA120 002E5D80  7F 87 E3 78 */	mr r7, r28
/* 802EA124 002E5D84  38 7C 00 34 */	addi r3, r28, 0x34
/* 802EA128 002E5D88  38 BC 00 30 */	addi r5, r28, 0x30
/* 802EA12C 002E5D8C  38 C6 A3 C0 */	addi r6, r6, nandGetTypeCallback@l
/* 802EA130 002E5D90  38 80 00 00 */	li r4, 0
/* 802EA134 002E5D94  4B FB AB 85 */	bl ISFS_ReadDirAsync
/* 802EA138 002E5D98  48 00 01 78 */	b lbl_802EA2B0
lbl_802EA13C:
/* 802EA13C 002E5D9C  38 00 00 00 */	li r0, 0
/* 802EA140 002E5DA0  7F 63 DB 78 */	mr r3, r27
/* 802EA144 002E5DA4  90 01 00 10 */	stw r0, 0x10(r1)
/* 802EA148 002E5DA8  90 01 00 14 */	stw r0, 0x14(r1)
/* 802EA14C 002E5DAC  90 01 00 18 */	stw r0, 0x18(r1)
/* 802EA150 002E5DB0  90 01 00 1C */	stw r0, 0x1c(r1)
/* 802EA154 002E5DB4  90 01 00 20 */	stw r0, 0x20(r1)
/* 802EA158 002E5DB8  90 01 00 24 */	stw r0, 0x24(r1)
/* 802EA15C 002E5DBC  90 01 00 28 */	stw r0, 0x28(r1)
/* 802EA160 002E5DC0  90 01 00 2C */	stw r0, 0x2c(r1)
/* 802EA164 002E5DC4  90 01 00 30 */	stw r0, 0x30(r1)
/* 802EA168 002E5DC8  90 01 00 34 */	stw r0, 0x34(r1)
/* 802EA16C 002E5DCC  90 01 00 38 */	stw r0, 0x38(r1)
/* 802EA170 002E5DD0  90 01 00 3C */	stw r0, 0x3c(r1)
/* 802EA174 002E5DD4  90 01 00 40 */	stw r0, 0x40(r1)
/* 802EA178 002E5DD8  90 01 00 44 */	stw r0, 0x44(r1)
/* 802EA17C 002E5DDC  90 01 00 48 */	stw r0, 0x48(r1)
/* 802EA180 002E5DE0  90 01 00 4C */	stw r0, 0x4c(r1)
/* 802EA184 002E5DE4  4B ED C9 E1 */	bl strlen
/* 802EA188 002E5DE8  2C 03 00 00 */	cmpwi r3, 0
/* 802EA18C 002E5DEC  40 82 00 14 */	bne lbl_802EA1A0
/* 802EA190 002E5DF0  38 61 00 10 */	addi r3, r1, 0x10
/* 802EA194 002E5DF4  38 8D 8A 88 */	addi r4, r13, lbl_8063DD48-_SDA_BASE_
/* 802EA198 002E5DF8  4B EE 41 39 */	bl strcpy
/* 802EA19C 002E5DFC  48 00 00 7C */	b lbl_802EA218
lbl_802EA1A0:
/* 802EA1A0 002E5E00  88 1B 00 00 */	lbz r0, 0(r27)
/* 802EA1A4 002E5E04  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802EA1A8 002E5E08  40 82 00 0C */	bne lbl_802EA1B4
/* 802EA1AC 002E5E0C  38 00 00 00 */	li r0, 0
/* 802EA1B0 002E5E10  48 00 00 08 */	b lbl_802EA1B8
lbl_802EA1B4:
/* 802EA1B4 002E5E14  38 00 00 01 */	li r0, 1
lbl_802EA1B8:
/* 802EA1B8 002E5E18  2C 00 00 00 */	cmpwi r0, 0
/* 802EA1BC 002E5E1C  41 82 00 1C */	beq lbl_802EA1D8
/* 802EA1C0 002E5E20  3C 80 80 44 */	lis r4, lbl_804456C0@ha
/* 802EA1C4 002E5E24  7F 65 DB 78 */	mr r5, r27
/* 802EA1C8 002E5E28  38 61 00 10 */	addi r3, r1, 0x10
/* 802EA1CC 002E5E2C  38 84 56 C0 */	addi r4, r4, lbl_804456C0@l
/* 802EA1D0 002E5E30  4B FF F0 59 */	bl nandConvertPath
/* 802EA1D4 002E5E34  48 00 00 44 */	b lbl_802EA218
lbl_802EA1D8:
/* 802EA1D8 002E5E38  7F 64 DB 78 */	mr r4, r27
/* 802EA1DC 002E5E3C  38 61 00 10 */	addi r3, r1, 0x10
/* 802EA1E0 002E5E40  4B EE 40 F1 */	bl strcpy
/* 802EA1E4 002E5E44  38 61 00 10 */	addi r3, r1, 0x10
/* 802EA1E8 002E5E48  4B ED C9 7D */	bl strlen
/* 802EA1EC 002E5E4C  2C 03 00 00 */	cmpwi r3, 0
/* 802EA1F0 002E5E50  41 82 00 28 */	beq lbl_802EA218
/* 802EA1F4 002E5E54  38 01 00 10 */	addi r0, r1, 0x10
/* 802EA1F8 002E5E58  7C 83 02 14 */	add r4, r3, r0
/* 802EA1FC 002E5E5C  88 04 FF FF */	lbz r0, -1(r4)
/* 802EA200 002E5E60  2C 00 00 2F */	cmpwi r0, 0x2f
/* 802EA204 002E5E64  40 82 00 14 */	bne lbl_802EA218
/* 802EA208 002E5E68  34 03 FF FF */	addic. r0, r3, -1
/* 802EA20C 002E5E6C  41 82 00 0C */	beq lbl_802EA218
/* 802EA210 002E5E70  38 00 00 00 */	li r0, 0
/* 802EA214 002E5E74  98 04 FF FF */	stb r0, -1(r4)
lbl_802EA218:
/* 802EA218 002E5E78  2C 1F 00 00 */	cmpwi r31, 0
/* 802EA21C 002E5E7C  40 82 00 48 */	bne lbl_802EA264
/* 802EA220 002E5E80  3C 80 80 44 */	lis r4, lbl_8044571C@ha
/* 802EA224 002E5E84  38 61 00 10 */	addi r3, r1, 0x10
/* 802EA228 002E5E88  38 84 57 1C */	addi r4, r4, lbl_8044571C@l
/* 802EA22C 002E5E8C  38 A0 00 09 */	li r5, 9
/* 802EA230 002E5E90  4B EE 43 39 */	bl strncmp
/* 802EA234 002E5E94  2C 03 00 00 */	cmpwi r3, 0
/* 802EA238 002E5E98  40 82 00 18 */	bne lbl_802EA250
/* 802EA23C 002E5E9C  88 01 00 19 */	lbz r0, 0x19(r1)
/* 802EA240 002E5EA0  7C 00 07 75 */	extsb. r0, r0
/* 802EA244 002E5EA4  41 82 00 0C */	beq lbl_802EA250
/* 802EA248 002E5EA8  38 00 00 01 */	li r0, 1
/* 802EA24C 002E5EAC  48 00 00 08 */	b lbl_802EA254
lbl_802EA250:
/* 802EA250 002E5EB0  38 00 00 00 */	li r0, 0
lbl_802EA254:
/* 802EA254 002E5EB4  2C 00 00 00 */	cmpwi r0, 0
/* 802EA258 002E5EB8  41 82 00 0C */	beq lbl_802EA264
/* 802EA25C 002E5EBC  38 60 FF 9A */	li r3, -102
/* 802EA260 002E5EC0  48 00 00 50 */	b lbl_802EA2B0
lbl_802EA264:
/* 802EA264 002E5EC4  38 00 00 00 */	li r0, 0
/* 802EA268 002E5EC8  38 61 00 10 */	addi r3, r1, 0x10
/* 802EA26C 002E5ECC  90 01 00 08 */	stw r0, 8(r1)
/* 802EA270 002E5ED0  38 A1 00 08 */	addi r5, r1, 8
/* 802EA274 002E5ED4  38 80 00 00 */	li r4, 0
/* 802EA278 002E5ED8  4B FB A8 ED */	bl ISFS_ReadDir
/* 802EA27C 002E5EDC  2C 03 00 00 */	cmpwi r3, 0
/* 802EA280 002E5EE0  41 82 00 0C */	beq lbl_802EA28C
/* 802EA284 002E5EE4  2C 03 FF 9A */	cmpwi r3, -102
/* 802EA288 002E5EE8  40 82 00 14 */	bne lbl_802EA29C
lbl_802EA28C:
/* 802EA28C 002E5EEC  38 00 00 02 */	li r0, 2
/* 802EA290 002E5EF0  38 60 00 00 */	li r3, 0
/* 802EA294 002E5EF4  98 1E 00 00 */	stb r0, 0(r30)
/* 802EA298 002E5EF8  48 00 00 18 */	b lbl_802EA2B0
lbl_802EA29C:
/* 802EA29C 002E5EFC  2C 03 FF 9B */	cmpwi r3, -101
/* 802EA2A0 002E5F00  40 82 00 10 */	bne lbl_802EA2B0
/* 802EA2A4 002E5F04  38 00 00 01 */	li r0, 1
/* 802EA2A8 002E5F08  38 60 00 00 */	li r3, 0
/* 802EA2AC 002E5F0C  98 1E 00 00 */	stb r0, 0(r30)
lbl_802EA2B0:
/* 802EA2B0 002E5F10  39 61 00 70 */	addi r11, r1, 0x70
/* 802EA2B4 002E5F14  4B ED CE C1 */	bl _restgpr_27
/* 802EA2B8 002E5F18  80 01 00 74 */	lwz r0, 0x74(r1)
/* 802EA2BC 002E5F1C  7C 08 03 A6 */	mtlr r0
/* 802EA2C0 002E5F20  38 21 00 70 */	addi r1, r1, 0x70
/* 802EA2C4 002E5F24  4E 80 00 20 */	blr

.global NANDPrivateGetTypeAsync
NANDPrivateGetTypeAsync:
/* 802EA2C8 002E5F28  94 21 FE B0 */	stwu r1, -0x150(r1)
/* 802EA2CC 002E5F2C  7C 08 02 A6 */	mflr r0
/* 802EA2D0 002E5F30  90 01 01 54 */	stw r0, 0x154(r1)
/* 802EA2D4 002E5F34  93 E1 01 4C */	stw r31, 0x14c(r1)
/* 802EA2D8 002E5F38  93 C1 01 48 */	stw r30, 0x148(r1)
/* 802EA2DC 002E5F3C  80 0D AF 08 */	lwz r0, lbl_806401C8-_SDA_BASE_(r13)
/* 802EA2E0 002E5F40  2C 00 00 02 */	cmpwi r0, 2
/* 802EA2E4 002E5F44  41 82 00 0C */	beq lbl_802EA2F0
/* 802EA2E8 002E5F48  38 60 FF 80 */	li r3, -128
/* 802EA2EC 002E5F4C  48 00 00 BC */	b lbl_802EA3A8
lbl_802EA2F0:
/* 802EA2F0 002E5F50  90 A6 00 04 */	stw r5, 4(r6)
/* 802EA2F4 002E5F54  7C C5 33 78 */	mr r5, r6
/* 802EA2F8 002E5F58  38 C0 00 01 */	li r6, 1
/* 802EA2FC 002E5F5C  38 E0 00 01 */	li r7, 1
/* 802EA300 002E5F60  4B FF FC F5 */	bl nandGetType
/* 802EA304 002E5F64  3C 80 80 40 */	lis r4, lbl_803FDF20@ha
/* 802EA308 002E5F68  38 00 00 28 */	li r0, 0x28
/* 802EA30C 002E5F6C  38 84 DF 20 */	addi r4, r4, lbl_803FDF20@l
/* 802EA310 002E5F70  7C 7F 1B 78 */	mr r31, r3
/* 802EA314 002E5F74  38 C1 00 04 */	addi r6, r1, 4
/* 802EA318 002E5F78  38 A4 FF FC */	addi r5, r4, -4
/* 802EA31C 002E5F7C  7C 09 03 A6 */	mtctr r0
lbl_802EA320:
/* 802EA320 002E5F80  80 85 00 04 */	lwz r4, 4(r5)
/* 802EA324 002E5F84  84 05 00 08 */	lwzu r0, 8(r5)
/* 802EA328 002E5F88  90 86 00 04 */	stw r4, 4(r6)
/* 802EA32C 002E5F8C  94 06 00 08 */	stwu r0, 8(r6)
/* 802EA330 002E5F90  42 00 FF F0 */	bdnz lbl_802EA320
/* 802EA334 002E5F94  2C 03 00 00 */	cmpwi r3, 0
/* 802EA338 002E5F98  3B C0 00 00 */	li r30, 0
/* 802EA33C 002E5F9C  41 80 00 08 */	blt lbl_802EA344
/* 802EA340 002E5FA0  48 00 00 64 */	b lbl_802EA3A4
lbl_802EA344:
/* 802EA344 002E5FA4  38 00 00 28 */	li r0, 0x28
/* 802EA348 002E5FA8  38 81 00 08 */	addi r4, r1, 8
/* 802EA34C 002E5FAC  7C 09 03 A6 */	mtctr r0
lbl_802EA350:
/* 802EA350 002E5FB0  80 04 00 00 */	lwz r0, 0(r4)
/* 802EA354 002E5FB4  7C 03 00 00 */	cmpw r3, r0
/* 802EA358 002E5FB8  40 82 00 20 */	bne lbl_802EA378
/* 802EA35C 002E5FBC  7F E3 FB 78 */	mr r3, r31
/* 802EA360 002E5FC0  4B FF F0 A5 */	bl nandReportErrorCode
/* 802EA364 002E5FC4  38 1E 00 01 */	addi r0, r30, 1
/* 802EA368 002E5FC8  38 61 00 08 */	addi r3, r1, 8
/* 802EA36C 002E5FCC  54 00 10 3A */	slwi r0, r0, 2
/* 802EA370 002E5FD0  7F E3 00 2E */	lwzx r31, r3, r0
/* 802EA374 002E5FD4  48 00 00 30 */	b lbl_802EA3A4
lbl_802EA378:
/* 802EA378 002E5FD8  38 84 00 08 */	addi r4, r4, 8
/* 802EA37C 002E5FDC  3B DE 00 02 */	addi r30, r30, 2
/* 802EA380 002E5FE0  42 00 FF D0 */	bdnz lbl_802EA350
/* 802EA384 002E5FE4  3C 60 80 44 */	lis r3, lbl_80445728@ha
/* 802EA388 002E5FE8  7F E4 FB 78 */	mr r4, r31
/* 802EA38C 002E5FEC  38 63 57 28 */	addi r3, r3, lbl_80445728@l
/* 802EA390 002E5FF0  4C C6 31 82 */	crclr 6
/* 802EA394 002E5FF4  4B D1 D7 31 */	bl OSReport
/* 802EA398 002E5FF8  7F E3 FB 78 */	mr r3, r31
/* 802EA39C 002E5FFC  4B FF F0 69 */	bl nandReportErrorCode
/* 802EA3A0 002E6000  3B E0 FF C0 */	li r31, -64
lbl_802EA3A4:
/* 802EA3A4 002E6004  7F E3 FB 78 */	mr r3, r31
lbl_802EA3A8:
/* 802EA3A8 002E6008  80 01 01 54 */	lwz r0, 0x154(r1)
/* 802EA3AC 002E600C  83 E1 01 4C */	lwz r31, 0x14c(r1)
/* 802EA3B0 002E6010  83 C1 01 48 */	lwz r30, 0x148(r1)
/* 802EA3B4 002E6014  7C 08 03 A6 */	mtlr r0
/* 802EA3B8 002E6018  38 21 01 50 */	addi r1, r1, 0x150
/* 802EA3BC 002E601C  4E 80 00 20 */	blr

nandGetTypeCallback:
/* 802EA3C0 002E6020  94 21 FE A0 */	stwu r1, -0x160(r1)
/* 802EA3C4 002E6024  7C 08 02 A6 */	mflr r0
/* 802EA3C8 002E6028  2C 03 00 00 */	cmpwi r3, 0
/* 802EA3CC 002E602C  90 01 01 64 */	stw r0, 0x164(r1)
/* 802EA3D0 002E6030  93 E1 01 5C */	stw r31, 0x15c(r1)
/* 802EA3D4 002E6034  7C 9F 23 78 */	mr r31, r4
/* 802EA3D8 002E6038  93 C1 01 58 */	stw r30, 0x158(r1)
/* 802EA3DC 002E603C  93 A1 01 54 */	stw r29, 0x154(r1)
/* 802EA3E0 002E6040  7C 7D 1B 78 */	mr r29, r3
/* 802EA3E4 002E6044  41 82 00 0C */	beq lbl_802EA3F0
/* 802EA3E8 002E6048  2C 03 FF 9A */	cmpwi r3, -102
/* 802EA3EC 002E604C  40 82 00 18 */	bne lbl_802EA404
lbl_802EA3F0:
/* 802EA3F0 002E6050  80 64 00 88 */	lwz r3, 0x88(r4)
/* 802EA3F4 002E6054  38 00 00 02 */	li r0, 2
/* 802EA3F8 002E6058  3B A0 00 00 */	li r29, 0
/* 802EA3FC 002E605C  98 03 00 00 */	stb r0, 0(r3)
/* 802EA400 002E6060  48 00 00 1C */	b lbl_802EA41C
lbl_802EA404:
/* 802EA404 002E6064  2C 03 FF 9B */	cmpwi r3, -101
/* 802EA408 002E6068  40 82 00 14 */	bne lbl_802EA41C
/* 802EA40C 002E606C  80 64 00 88 */	lwz r3, 0x88(r4)
/* 802EA410 002E6070  38 00 00 01 */	li r0, 1
/* 802EA414 002E6074  3B A0 00 00 */	li r29, 0
/* 802EA418 002E6078  98 03 00 00 */	stb r0, 0(r3)
lbl_802EA41C:
/* 802EA41C 002E607C  3C 60 80 40 */	lis r3, lbl_803FDF20@ha
/* 802EA420 002E6080  38 00 00 28 */	li r0, 0x28
/* 802EA424 002E6084  38 63 DF 20 */	addi r3, r3, lbl_803FDF20@l
/* 802EA428 002E6088  38 A1 00 04 */	addi r5, r1, 4
/* 802EA42C 002E608C  38 83 FF FC */	addi r4, r3, -4
/* 802EA430 002E6090  7C 09 03 A6 */	mtctr r0
lbl_802EA434:
/* 802EA434 002E6094  80 64 00 04 */	lwz r3, 4(r4)
/* 802EA438 002E6098  84 04 00 08 */	lwzu r0, 8(r4)
/* 802EA43C 002E609C  90 65 00 04 */	stw r3, 4(r5)
/* 802EA440 002E60A0  94 05 00 08 */	stwu r0, 8(r5)
/* 802EA444 002E60A4  42 00 FF F0 */	bdnz lbl_802EA434
/* 802EA448 002E60A8  2C 1D 00 00 */	cmpwi r29, 0
/* 802EA44C 002E60AC  3B C0 00 00 */	li r30, 0
/* 802EA450 002E60B0  41 80 00 08 */	blt lbl_802EA458
/* 802EA454 002E60B4  48 00 00 64 */	b lbl_802EA4B8
lbl_802EA458:
/* 802EA458 002E60B8  38 00 00 28 */	li r0, 0x28
/* 802EA45C 002E60BC  38 61 00 08 */	addi r3, r1, 8
/* 802EA460 002E60C0  7C 09 03 A6 */	mtctr r0
lbl_802EA464:
/* 802EA464 002E60C4  80 03 00 00 */	lwz r0, 0(r3)
/* 802EA468 002E60C8  7C 1D 00 00 */	cmpw r29, r0
/* 802EA46C 002E60CC  40 82 00 20 */	bne lbl_802EA48C
/* 802EA470 002E60D0  7F A3 EB 78 */	mr r3, r29
/* 802EA474 002E60D4  4B FF EF 91 */	bl nandReportErrorCode
/* 802EA478 002E60D8  38 1E 00 01 */	addi r0, r30, 1
/* 802EA47C 002E60DC  38 61 00 08 */	addi r3, r1, 8
/* 802EA480 002E60E0  54 00 10 3A */	slwi r0, r0, 2
/* 802EA484 002E60E4  7F A3 00 2E */	lwzx r29, r3, r0
/* 802EA488 002E60E8  48 00 00 30 */	b lbl_802EA4B8
lbl_802EA48C:
/* 802EA48C 002E60EC  38 63 00 08 */	addi r3, r3, 8
/* 802EA490 002E60F0  3B DE 00 02 */	addi r30, r30, 2
/* 802EA494 002E60F4  42 00 FF D0 */	bdnz lbl_802EA464
/* 802EA498 002E60F8  3C 60 80 44 */	lis r3, lbl_80445728@ha
/* 802EA49C 002E60FC  7F A4 EB 78 */	mr r4, r29
/* 802EA4A0 002E6100  38 63 57 28 */	addi r3, r3, lbl_80445728@l
/* 802EA4A4 002E6104  4C C6 31 82 */	crclr 6
/* 802EA4A8 002E6108  4B D1 D6 1D */	bl OSReport
/* 802EA4AC 002E610C  7F A3 EB 78 */	mr r3, r29
/* 802EA4B0 002E6110  4B FF EF 55 */	bl nandReportErrorCode
/* 802EA4B4 002E6114  3B A0 FF C0 */	li r29, -64
lbl_802EA4B8:
/* 802EA4B8 002E6118  81 9F 00 04 */	lwz r12, 4(r31)
/* 802EA4BC 002E611C  7F A3 EB 78 */	mr r3, r29
/* 802EA4C0 002E6120  7F E4 FB 78 */	mr r4, r31
/* 802EA4C4 002E6124  7D 89 03 A6 */	mtctr r12
/* 802EA4C8 002E6128  4E 80 04 21 */	bctrl
/* 802EA4CC 002E612C  80 01 01 64 */	lwz r0, 0x164(r1)
/* 802EA4D0 002E6130  83 E1 01 5C */	lwz r31, 0x15c(r1)
/* 802EA4D4 002E6134  83 C1 01 58 */	lwz r30, 0x158(r1)
/* 802EA4D8 002E6138  83 A1 01 54 */	lwz r29, 0x154(r1)
/* 802EA4DC 002E613C  7C 08 03 A6 */	mtlr r0
/* 802EA4E0 002E6140  38 21 01 60 */	addi r1, r1, 0x160
/* 802EA4E4 002E6144  4E 80 00 20 */	blr

.global nandGetHomeDir
nandGetHomeDir:
/* 802EA4E8 002E6148  3C 60 80 57 */	lis r3, lbl_80570E80@ha
/* 802EA4EC 002E614C  38 63 0E 80 */	addi r3, r3, lbl_80570E80@l
/* 802EA4F0 002E6150  4E 80 00 20 */	blr

.global NANDInitBanner
NANDInitBanner:
/* 802EA4F4 002E6154  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802EA4F8 002E6158  7C 08 02 A6 */	mflr r0
/* 802EA4FC 002E615C  3C E0 00 01 */	lis r7, 0x0000F0A0@ha
/* 802EA500 002E6160  90 01 00 24 */	stw r0, 0x24(r1)
/* 802EA504 002E6164  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802EA508 002E6168  7C DF 33 78 */	mr r31, r6
/* 802EA50C 002E616C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802EA510 002E6170  7C BE 2B 78 */	mr r30, r5
/* 802EA514 002E6174  38 A7 F0 A0 */	addi r5, r7, 0x0000F0A0@l
/* 802EA518 002E6178  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802EA51C 002E617C  7C 9D 23 78 */	mr r29, r4
/* 802EA520 002E6180  38 80 00 00 */	li r4, 0
/* 802EA524 002E6184  93 81 00 10 */	stw r28, 0x10(r1)
/* 802EA528 002E6188  7C 7C 1B 78 */	mr r28, r3
/* 802EA52C 002E618C  4B D1 9B D9 */	bl memset
/* 802EA530 002E6190  3C 60 57 49 */	lis r3, 0x5749424E@ha
/* 802EA534 002E6194  93 BC 00 04 */	stw r29, 4(r28)
/* 802EA538 002E6198  38 03 42 4E */	addi r0, r3, 0x5749424E@l
/* 802EA53C 002E619C  38 8D 8A A8 */	addi r4, r13, lbl_8063DD68-_SDA_BASE_
/* 802EA540 002E61A0  90 1C 00 00 */	stw r0, 0(r28)
/* 802EA544 002E61A4  7F C3 F3 78 */	mr r3, r30
/* 802EA548 002E61A8  4B EE 62 E9 */	bl wcscmp
/* 802EA54C 002E61AC  2C 03 00 00 */	cmpwi r3, 0
/* 802EA550 002E61B0  40 82 00 18 */	bne lbl_802EA568
/* 802EA554 002E61B4  38 7C 00 20 */	addi r3, r28, 0x20
/* 802EA558 002E61B8  38 8D 8A AC */	addi r4, r13, lbl_8063DD6C-_SDA_BASE_
/* 802EA55C 002E61BC  38 A0 00 20 */	li r5, 0x20
/* 802EA560 002E61C0  4B EE 62 8D */	bl wcsncpy
/* 802EA564 002E61C4  48 00 00 14 */	b lbl_802EA578
lbl_802EA568:
/* 802EA568 002E61C8  7F C4 F3 78 */	mr r4, r30
/* 802EA56C 002E61CC  38 7C 00 20 */	addi r3, r28, 0x20
/* 802EA570 002E61D0  38 A0 00 20 */	li r5, 0x20
/* 802EA574 002E61D4  4B EE 62 79 */	bl wcsncpy
lbl_802EA578:
/* 802EA578 002E61D8  7F E3 FB 78 */	mr r3, r31
/* 802EA57C 002E61DC  38 8D 8A A8 */	addi r4, r13, lbl_8063DD68-_SDA_BASE_
/* 802EA580 002E61E0  4B EE 62 B1 */	bl wcscmp
/* 802EA584 002E61E4  2C 03 00 00 */	cmpwi r3, 0
/* 802EA588 002E61E8  40 82 00 18 */	bne lbl_802EA5A0
/* 802EA58C 002E61EC  38 7C 00 60 */	addi r3, r28, 0x60
/* 802EA590 002E61F0  38 8D 8A AC */	addi r4, r13, lbl_8063DD6C-_SDA_BASE_
/* 802EA594 002E61F4  38 A0 00 20 */	li r5, 0x20
/* 802EA598 002E61F8  4B EE 62 55 */	bl wcsncpy
/* 802EA59C 002E61FC  48 00 00 14 */	b lbl_802EA5B0
lbl_802EA5A0:
/* 802EA5A0 002E6200  7F E4 FB 78 */	mr r4, r31
/* 802EA5A4 002E6204  38 7C 00 60 */	addi r3, r28, 0x60
/* 802EA5A8 002E6208  38 A0 00 20 */	li r5, 0x20
/* 802EA5AC 002E620C  4B EE 62 41 */	bl wcsncpy
lbl_802EA5B0:
/* 802EA5B0 002E6210  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802EA5B4 002E6214  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802EA5B8 002E6218  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802EA5BC 002E621C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802EA5C0 002E6220  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802EA5C4 002E6224  7C 08 03 A6 */	mtlr r0
/* 802EA5C8 002E6228  38 21 00 20 */	addi r1, r1, 0x20
/* 802EA5CC 002E622C  4E 80 00 20 */	blr

# could also be _ESP_GetDataDir
.global _ES_GetDataDir
_ES_GetDataDir:
/* 802EA5D0 002E6230  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 802EA5D4 002E6234  7C 2C 0B 78 */	mr r12, r1
/* 802EA5D8 002E6238  21 6B FE C0 */	subfic r11, r11, -320
/* 802EA5DC 002E623C  7C 21 59 6E */	stwux r1, r1, r11
/* 802EA5E0 002E6240  7C 08 02 A6 */	mflr r0
/* 802EA5E4 002E6244  90 0C 00 04 */	stw r0, 4(r12)
/* 802EA5E8 002E6248  39 21 00 20 */	addi r9, r1, 0x20
/* 802EA5EC 002E624C  39 41 00 40 */	addi r10, r1, 0x40
/* 802EA5F0 002E6250  80 03 00 00 */	lwz r0, 0(r3)
/* 802EA5F4 002E6254  2C 00 00 00 */	cmpwi r0, 0
/* 802EA5F8 002E6258  41 80 00 10 */	blt lbl_802EA608
/* 802EA5FC 002E625C  38 00 00 00 */	li r0, 0
/* 802EA600 002E6260  7C 07 00 40 */	cmplw r7, r0
/* 802EA604 002E6264  40 82 00 0C */	bne lbl_802EA610
lbl_802EA608:
/* 802EA608 002E6268  38 60 FC 07 */	li r3, -1017
/* 802EA60C 002E626C  48 00 00 4C */	b lbl_802EA658
lbl_802EA610:
/* 802EA610 002E6270  54 E0 06 FF */	clrlwi. r0, r7, 0x1b
/* 802EA614 002E6274  41 82 00 0C */	beq lbl_802EA620
/* 802EA618 002E6278  38 60 FC 07 */	li r3, -1017
/* 802EA61C 002E627C  48 00 00 3C */	b lbl_802EA658
lbl_802EA620:
/* 802EA620 002E6280  39 00 00 08 */	li r8, 8
/* 802EA624 002E6284  38 00 00 1E */	li r0, 0x1e
/* 802EA628 002E6288  90 C1 00 44 */	stw r6, 0x44(r1)
/* 802EA62C 002E628C  38 80 00 1D */	li r4, 0x1d
/* 802EA630 002E6290  38 C0 00 01 */	li r6, 1
/* 802EA634 002E6294  90 A1 00 40 */	stw r5, 0x40(r1)
/* 802EA638 002E6298  38 A0 00 01 */	li r5, 1
/* 802EA63C 002E629C  90 E1 00 28 */	stw r7, 0x28(r1)
/* 802EA640 002E62A0  7D 27 4B 78 */	mr r7, r9
/* 802EA644 002E62A4  91 41 00 20 */	stw r10, 0x20(r1)
/* 802EA648 002E62A8  91 01 00 24 */	stw r8, 0x24(r1)
/* 802EA64C 002E62AC  90 01 00 2C */	stw r0, 0x2c(r1)
/* 802EA650 002E62B0  80 63 00 00 */	lwz r3, 0(r3)
/* 802EA654 002E62B4  4B FB 97 ED */	bl IOS_Ioctlv
lbl_802EA658:
/* 802EA658 002E62B8  81 41 00 00 */	lwz r10, 0(r1)
/* 802EA65C 002E62BC  80 0A 00 04 */	lwz r0, 4(r10)
/* 802EA660 002E62C0  7C 08 03 A6 */	mtlr r0
/* 802EA664 002E62C4  7D 41 53 78 */	mr r1, r10
/* 802EA668 002E62C8  4E 80 00 20 */	blr