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
|