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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global nandCreate
nandCreate:
/* 802E7450 002E30B0 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 802E7454 002E30B4 7C 08 02 A6 */ mflr r0
/* 802E7458 002E30B8 90 01 00 74 */ stw r0, 0x74(r1)
/* 802E745C 002E30BC 39 61 00 70 */ addi r11, r1, 0x70
/* 802E7460 002E30C0 4B ED FC C9 */ bl _savegpr_27
/* 802E7464 002E30C4 38 00 00 00 */ li r0, 0
/* 802E7468 002E30C8 7C 9B 23 78 */ mr r27, r4
/* 802E746C 002E30CC 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E7470 002E30D0 7C 64 1B 78 */ mr r4, r3
/* 802E7474 002E30D4 7C BC 2B 78 */ mr r28, r5
/* 802E7478 002E30D8 7C DD 33 78 */ mr r29, r6
/* 802E747C 002E30DC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E7480 002E30E0 7C FE 3B 78 */ mr r30, r7
/* 802E7484 002E30E4 7D 1F 43 78 */ mr r31, r8
/* 802E7488 002E30E8 38 61 00 18 */ addi r3, r1, 0x18
/* 802E748C 002E30EC 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E7490 002E30F0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7494 002E30F4 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E7498 002E30F8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E749C 002E30FC 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E74A0 002E3100 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E74A4 002E3104 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E74A8 002E3108 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E74AC 002E310C 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E74B0 002E3110 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E74B4 002E3114 90 01 00 48 */ stw r0, 0x48(r1)
/* 802E74B8 002E3118 90 01 00 4C */ stw r0, 0x4c(r1)
/* 802E74BC 002E311C 90 01 00 50 */ stw r0, 0x50(r1)
/* 802E74C0 002E3120 90 01 00 54 */ stw r0, 0x54(r1)
/* 802E74C4 002E3124 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E74C8 002E3128 90 01 00 0C */ stw r0, 0xc(r1)
/* 802E74CC 002E312C 90 01 00 08 */ stw r0, 8(r1)
/* 802E74D0 002E3130 48 00 20 09 */ bl nandGenerateAbsPath
/* 802E74D4 002E3134 2C 1F 00 00 */ cmpwi r31, 0
/* 802E74D8 002E3138 40 82 00 1C */ bne lbl_802E74F4
/* 802E74DC 002E313C 38 61 00 18 */ addi r3, r1, 0x18
/* 802E74E0 002E3140 48 00 1E 85 */ bl nandIsPrivatePath
/* 802E74E4 002E3144 2C 03 00 00 */ cmpwi r3, 0
/* 802E74E8 002E3148 41 82 00 0C */ beq lbl_802E74F4
/* 802E74EC 002E314C 38 60 FF 9A */ li r3, -102
/* 802E74F0 002E3150 48 00 00 70 */ b lbl_802E7560
lbl_802E74F4:
/* 802E74F4 002E3154 57 60 06 F7 */ rlwinm. r0, r27, 0, 0x1b, 0x1b
/* 802E74F8 002E3158 40 82 00 0C */ bne lbl_802E7504
/* 802E74FC 002E315C 38 60 FF 9B */ li r3, -101
/* 802E7500 002E3160 48 00 00 60 */ b lbl_802E7560
lbl_802E7504:
/* 802E7504 002E3164 7F 63 DB 78 */ mr r3, r27
/* 802E7508 002E3168 38 81 00 10 */ addi r4, r1, 0x10
/* 802E750C 002E316C 38 A1 00 0C */ addi r5, r1, 0xc
/* 802E7510 002E3170 38 C1 00 08 */ addi r6, r1, 8
/* 802E7514 002E3174 48 00 0A 95 */ bl nandSplitPerm
/* 802E7518 002E3178 2C 1E 00 00 */ cmpwi r30, 0
/* 802E751C 002E317C 41 82 00 2C */ beq lbl_802E7548
/* 802E7520 002E3180 3D 00 80 2F */ lis r8, nandCallback@ha
/* 802E7524 002E3184 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 802E7528 002E3188 80 C1 00 0C */ lwz r6, 0xc(r1)
/* 802E752C 002E318C 7F 84 E3 78 */ mr r4, r28
/* 802E7530 002E3190 80 E1 00 08 */ lwz r7, 8(r1)
/* 802E7534 002E3194 7F A9 EB 78 */ mr r9, r29
/* 802E7538 002E3198 38 61 00 18 */ addi r3, r1, 0x18
/* 802E753C 002E319C 39 08 9F 08 */ addi r8, r8, nandCallback@l
/* 802E7540 002E31A0 4B FB E0 11 */ bl ISFS_CreateFileAsync
/* 802E7544 002E31A4 48 00 00 1C */ b lbl_802E7560
lbl_802E7548:
/* 802E7548 002E31A8 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 802E754C 002E31AC 7F 84 E3 78 */ mr r4, r28
/* 802E7550 002E31B0 80 C1 00 0C */ lwz r6, 0xc(r1)
/* 802E7554 002E31B4 38 61 00 18 */ addi r3, r1, 0x18
/* 802E7558 002E31B8 80 E1 00 08 */ lwz r7, 8(r1)
/* 802E755C 002E31BC 4B FB DF 01 */ bl ISFS_CreateFile
lbl_802E7560:
/* 802E7560 002E31C0 39 61 00 70 */ addi r11, r1, 0x70
/* 802E7564 002E31C4 4B ED FC 11 */ bl _restgpr_27
/* 802E7568 002E31C8 80 01 00 74 */ lwz r0, 0x74(r1)
/* 802E756C 002E31CC 7C 08 03 A6 */ mtlr r0
/* 802E7570 002E31D0 38 21 00 70 */ addi r1, r1, 0x70
/* 802E7574 002E31D4 4E 80 00 20 */ blr
.global NANDCreate
NANDCreate:
/* 802E7578 002E31D8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E757C 002E31DC 7C 08 02 A6 */ mflr r0
/* 802E7580 002E31E0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7584 002E31E4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E7588 002E31E8 7C BF 2B 78 */ mr r31, r5
/* 802E758C 002E31EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E7590 002E31F0 7C 9E 23 78 */ mr r30, r4
/* 802E7594 002E31F4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E7598 002E31F8 7C 7D 1B 78 */ mr r29, r3
/* 802E759C 002E31FC 48 00 1E 55 */ bl nandIsInitialized
/* 802E75A0 002E3200 2C 03 00 00 */ cmpwi r3, 0
/* 802E75A4 002E3204 41 82 00 28 */ beq lbl_802E75CC
/* 802E75A8 002E3208 7F A3 EB 78 */ mr r3, r29
/* 802E75AC 002E320C 7F C4 F3 78 */ mr r4, r30
/* 802E75B0 002E3210 7F E5 FB 78 */ mr r5, r31
/* 802E75B4 002E3214 38 C0 00 00 */ li r6, 0
/* 802E75B8 002E3218 38 E0 00 00 */ li r7, 0
/* 802E75BC 002E321C 39 00 00 00 */ li r8, 0
/* 802E75C0 002E3220 4B FF FE 91 */ bl nandCreate
/* 802E75C4 002E3224 48 00 1E 45 */ bl nandConvertErrorCode
/* 802E75C8 002E3228 48 00 00 08 */ b lbl_802E75D0
lbl_802E75CC:
/* 802E75CC 002E322C 38 60 FF 80 */ li r3, -128
lbl_802E75D0:
/* 802E75D0 002E3230 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E75D4 002E3234 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E75D8 002E3238 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E75DC 002E323C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E75E0 002E3240 7C 08 03 A6 */ mtlr r0
/* 802E75E4 002E3244 38 21 00 20 */ addi r1, r1, 0x20
/* 802E75E8 002E3248 4E 80 00 20 */ blr
.global NANDPrivateCreate
NANDPrivateCreate:
/* 802E75EC 002E324C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E75F0 002E3250 7C 08 02 A6 */ mflr r0
/* 802E75F4 002E3254 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E75F8 002E3258 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E75FC 002E325C 7C BF 2B 78 */ mr r31, r5
/* 802E7600 002E3260 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E7604 002E3264 7C 9E 23 78 */ mr r30, r4
/* 802E7608 002E3268 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E760C 002E326C 7C 7D 1B 78 */ mr r29, r3
/* 802E7610 002E3270 48 00 1D E1 */ bl nandIsInitialized
/* 802E7614 002E3274 2C 03 00 00 */ cmpwi r3, 0
/* 802E7618 002E3278 41 82 00 28 */ beq lbl_802E7640
/* 802E761C 002E327C 7F A3 EB 78 */ mr r3, r29
/* 802E7620 002E3280 7F C4 F3 78 */ mr r4, r30
/* 802E7624 002E3284 7F E5 FB 78 */ mr r5, r31
/* 802E7628 002E3288 38 C0 00 00 */ li r6, 0
/* 802E762C 002E328C 38 E0 00 00 */ li r7, 0
/* 802E7630 002E3290 39 00 00 01 */ li r8, 1
/* 802E7634 002E3294 4B FF FE 1D */ bl nandCreate
/* 802E7638 002E3298 48 00 1D D1 */ bl nandConvertErrorCode
/* 802E763C 002E329C 48 00 00 08 */ b lbl_802E7644
lbl_802E7640:
/* 802E7640 002E32A0 38 60 FF 80 */ li r3, -128
lbl_802E7644:
/* 802E7644 002E32A4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7648 002E32A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E764C 002E32AC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E7650 002E32B0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E7654 002E32B4 7C 08 03 A6 */ mtlr r0
/* 802E7658 002E32B8 38 21 00 20 */ addi r1, r1, 0x20
/* 802E765C 002E32BC 4E 80 00 20 */ blr
.global NANDCreateAsync
NANDCreateAsync:
/* 802E7660 002E32C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E7664 002E32C4 7C 08 02 A6 */ mflr r0
/* 802E7668 002E32C8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E766C 002E32CC 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7670 002E32D0 4B ED FA B9 */ bl _savegpr_27
/* 802E7674 002E32D4 7C 7B 1B 78 */ mr r27, r3
/* 802E7678 002E32D8 7C 9C 23 78 */ mr r28, r4
/* 802E767C 002E32DC 7C BD 2B 78 */ mr r29, r5
/* 802E7680 002E32E0 7C DE 33 78 */ mr r30, r6
/* 802E7684 002E32E4 7C FF 3B 78 */ mr r31, r7
/* 802E7688 002E32E8 48 00 1D 69 */ bl nandIsInitialized
/* 802E768C 002E32EC 2C 03 00 00 */ cmpwi r3, 0
/* 802E7690 002E32F0 40 82 00 0C */ bne lbl_802E769C
/* 802E7694 002E32F4 38 60 FF 80 */ li r3, -128
/* 802E7698 002E32F8 48 00 00 28 */ b lbl_802E76C0
lbl_802E769C:
/* 802E769C 002E32FC 93 DF 00 04 */ stw r30, 4(r31)
/* 802E76A0 002E3300 7F 63 DB 78 */ mr r3, r27
/* 802E76A4 002E3304 7F 84 E3 78 */ mr r4, r28
/* 802E76A8 002E3308 7F A5 EB 78 */ mr r5, r29
/* 802E76AC 002E330C 7F E6 FB 78 */ mr r6, r31
/* 802E76B0 002E3310 38 E0 00 01 */ li r7, 1
/* 802E76B4 002E3314 39 00 00 00 */ li r8, 0
/* 802E76B8 002E3318 4B FF FD 99 */ bl nandCreate
/* 802E76BC 002E331C 48 00 1D 4D */ bl nandConvertErrorCode
lbl_802E76C0:
/* 802E76C0 002E3320 39 61 00 20 */ addi r11, r1, 0x20
/* 802E76C4 002E3324 4B ED FA B1 */ bl _restgpr_27
/* 802E76C8 002E3328 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E76CC 002E332C 7C 08 03 A6 */ mtlr r0
/* 802E76D0 002E3330 38 21 00 20 */ addi r1, r1, 0x20
/* 802E76D4 002E3334 4E 80 00 20 */ blr
.global NANDPrivateCreateAsync
NANDPrivateCreateAsync:
/* 802E76D8 002E3338 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E76DC 002E333C 7C 08 02 A6 */ mflr r0
/* 802E76E0 002E3340 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E76E4 002E3344 39 61 00 20 */ addi r11, r1, 0x20
/* 802E76E8 002E3348 4B ED FA 41 */ bl _savegpr_27
/* 802E76EC 002E334C 7C 7B 1B 78 */ mr r27, r3
/* 802E76F0 002E3350 7C 9C 23 78 */ mr r28, r4
/* 802E76F4 002E3354 7C BD 2B 78 */ mr r29, r5
/* 802E76F8 002E3358 7C DE 33 78 */ mr r30, r6
/* 802E76FC 002E335C 7C FF 3B 78 */ mr r31, r7
/* 802E7700 002E3360 48 00 1C F1 */ bl nandIsInitialized
/* 802E7704 002E3364 2C 03 00 00 */ cmpwi r3, 0
/* 802E7708 002E3368 40 82 00 0C */ bne lbl_802E7714
/* 802E770C 002E336C 38 60 FF 80 */ li r3, -128
/* 802E7710 002E3370 48 00 00 28 */ b lbl_802E7738
lbl_802E7714:
/* 802E7714 002E3374 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7718 002E3378 7F 63 DB 78 */ mr r3, r27
/* 802E771C 002E337C 7F 84 E3 78 */ mr r4, r28
/* 802E7720 002E3380 7F A5 EB 78 */ mr r5, r29
/* 802E7724 002E3384 7F E6 FB 78 */ mr r6, r31
/* 802E7728 002E3388 38 E0 00 01 */ li r7, 1
/* 802E772C 002E338C 39 00 00 01 */ li r8, 1
/* 802E7730 002E3390 4B FF FD 21 */ bl nandCreate
/* 802E7734 002E3394 48 00 1C D5 */ bl nandConvertErrorCode
lbl_802E7738:
/* 802E7738 002E3398 39 61 00 20 */ addi r11, r1, 0x20
/* 802E773C 002E339C 4B ED FA 39 */ bl _restgpr_27
/* 802E7740 002E33A0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7744 002E33A4 7C 08 03 A6 */ mtlr r0
/* 802E7748 002E33A8 38 21 00 20 */ addi r1, r1, 0x20
/* 802E774C 002E33AC 4E 80 00 20 */ blr
.global NANDDelete
NANDDelete:
/* 802E7750 002E33B0 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802E7754 002E33B4 7C 08 02 A6 */ mflr r0
/* 802E7758 002E33B8 90 01 00 54 */ stw r0, 0x54(r1)
/* 802E775C 002E33BC 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 802E7760 002E33C0 7C 7F 1B 78 */ mr r31, r3
/* 802E7764 002E33C4 48 00 1C 8D */ bl nandIsInitialized
/* 802E7768 002E33C8 2C 03 00 00 */ cmpwi r3, 0
/* 802E776C 002E33CC 40 82 00 0C */ bne lbl_802E7778
/* 802E7770 002E33D0 38 60 FF 80 */ li r3, -128
/* 802E7774 002E33D4 48 00 00 78 */ b lbl_802E77EC
lbl_802E7778:
/* 802E7778 002E33D8 38 00 00 00 */ li r0, 0
/* 802E777C 002E33DC 7F E4 FB 78 */ mr r4, r31
/* 802E7780 002E33E0 90 01 00 08 */ stw r0, 8(r1)
/* 802E7784 002E33E4 38 61 00 08 */ addi r3, r1, 8
/* 802E7788 002E33E8 90 01 00 0C */ stw r0, 0xc(r1)
/* 802E778C 002E33EC 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E7790 002E33F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E7794 002E33F4 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E7798 002E33F8 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E779C 002E33FC 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E77A0 002E3400 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E77A4 002E3404 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E77A8 002E3408 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E77AC 002E340C 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E77B0 002E3410 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E77B4 002E3414 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E77B8 002E3418 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E77BC 002E341C 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E77C0 002E3420 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E77C4 002E3424 48 00 1D 15 */ bl nandGenerateAbsPath
/* 802E77C8 002E3428 38 61 00 08 */ addi r3, r1, 8
/* 802E77CC 002E342C 48 00 1B 99 */ bl nandIsPrivatePath
/* 802E77D0 002E3430 2C 03 00 00 */ cmpwi r3, 0
/* 802E77D4 002E3434 41 82 00 0C */ beq lbl_802E77E0
/* 802E77D8 002E3438 38 60 FF 9A */ li r3, -102
/* 802E77DC 002E343C 48 00 00 0C */ b lbl_802E77E8
lbl_802E77E0:
/* 802E77E0 002E3440 38 61 00 08 */ addi r3, r1, 8
/* 802E77E4 002E3444 4B FB D8 A9 */ bl ISFS_Delete
lbl_802E77E8:
/* 802E77E8 002E3448 48 00 1C 21 */ bl nandConvertErrorCode
lbl_802E77EC:
/* 802E77EC 002E344C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 802E77F0 002E3450 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 802E77F4 002E3454 7C 08 03 A6 */ mtlr r0
/* 802E77F8 002E3458 38 21 00 50 */ addi r1, r1, 0x50
/* 802E77FC 002E345C 4E 80 00 20 */ blr
.global NANDPrivateDeleteAsync
NANDPrivateDeleteAsync:
/* 802E7800 002E3460 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 802E7804 002E3464 7C 08 02 A6 */ mflr r0
/* 802E7808 002E3468 90 01 00 64 */ stw r0, 0x64(r1)
/* 802E780C 002E346C 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 802E7810 002E3470 7C BF 2B 78 */ mr r31, r5
/* 802E7814 002E3474 93 C1 00 58 */ stw r30, 0x58(r1)
/* 802E7818 002E3478 7C 9E 23 78 */ mr r30, r4
/* 802E781C 002E347C 93 A1 00 54 */ stw r29, 0x54(r1)
/* 802E7820 002E3480 7C 7D 1B 78 */ mr r29, r3
/* 802E7824 002E3484 48 00 1B CD */ bl nandIsInitialized
/* 802E7828 002E3488 2C 03 00 00 */ cmpwi r3, 0
/* 802E782C 002E348C 40 82 00 0C */ bne lbl_802E7838
/* 802E7830 002E3490 38 60 FF 80 */ li r3, -128
/* 802E7834 002E3494 48 00 00 70 */ b lbl_802E78A4
lbl_802E7838:
/* 802E7838 002E3498 93 DF 00 04 */ stw r30, 4(r31)
/* 802E783C 002E349C 38 00 00 00 */ li r0, 0
/* 802E7840 002E34A0 7F A4 EB 78 */ mr r4, r29
/* 802E7844 002E34A4 38 61 00 08 */ addi r3, r1, 8
/* 802E7848 002E34A8 90 01 00 08 */ stw r0, 8(r1)
/* 802E784C 002E34AC 90 01 00 0C */ stw r0, 0xc(r1)
/* 802E7850 002E34B0 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E7854 002E34B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E7858 002E34B8 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E785C 002E34BC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E7860 002E34C0 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E7864 002E34C4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7868 002E34C8 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E786C 002E34CC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E7870 002E34D0 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E7874 002E34D4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E7878 002E34D8 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E787C 002E34DC 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E7880 002E34E0 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E7884 002E34E4 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E7888 002E34E8 48 00 1C 51 */ bl nandGenerateAbsPath
/* 802E788C 002E34EC 3C 80 80 2F */ lis r4, nandCallback@ha
/* 802E7890 002E34F0 7F E5 FB 78 */ mr r5, r31
/* 802E7894 002E34F4 38 61 00 08 */ addi r3, r1, 8
/* 802E7898 002E34F8 38 84 9F 08 */ addi r4, r4, nandCallback@l
/* 802E789C 002E34FC 4B FB D8 C9 */ bl ISFS_DeleteAsync
/* 802E78A0 002E3500 48 00 1B 69 */ bl nandConvertErrorCode
lbl_802E78A4:
/* 802E78A4 002E3504 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802E78A8 002E3508 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 802E78AC 002E350C 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 802E78B0 002E3510 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 802E78B4 002E3514 7C 08 03 A6 */ mtlr r0
/* 802E78B8 002E3518 38 21 00 60 */ addi r1, r1, 0x60
/* 802E78BC 002E351C 4E 80 00 20 */ blr
.global NANDRead
NANDRead:
/* 802E78C0 002E3520 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E78C4 002E3524 7C 08 02 A6 */ mflr r0
/* 802E78C8 002E3528 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E78CC 002E352C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E78D0 002E3530 7C BF 2B 78 */ mr r31, r5
/* 802E78D4 002E3534 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E78D8 002E3538 7C 9E 23 78 */ mr r30, r4
/* 802E78DC 002E353C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E78E0 002E3540 7C 7D 1B 78 */ mr r29, r3
/* 802E78E4 002E3544 48 00 1B 0D */ bl nandIsInitialized
/* 802E78E8 002E3548 2C 03 00 00 */ cmpwi r3, 0
/* 802E78EC 002E354C 41 82 00 1C */ beq lbl_802E7908
/* 802E78F0 002E3550 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E78F4 002E3554 7F C4 F3 78 */ mr r4, r30
/* 802E78F8 002E3558 7F E5 FB 78 */ mr r5, r31
/* 802E78FC 002E355C 4B FB DF 8D */ bl ISFS_Read
/* 802E7900 002E3560 48 00 1B 09 */ bl nandConvertErrorCode
/* 802E7904 002E3564 48 00 00 08 */ b lbl_802E790C
lbl_802E7908:
/* 802E7908 002E3568 38 60 FF 80 */ li r3, -128
lbl_802E790C:
/* 802E790C 002E356C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7910 002E3570 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E7914 002E3574 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E7918 002E3578 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E791C 002E357C 7C 08 03 A6 */ mtlr r0
/* 802E7920 002E3580 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7924 002E3584 4E 80 00 20 */ blr
.global NANDReadAsync
NANDReadAsync:
/* 802E7928 002E3588 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E792C 002E358C 7C 08 02 A6 */ mflr r0
/* 802E7930 002E3590 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7934 002E3594 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7938 002E3598 4B ED F7 F1 */ bl _savegpr_27
/* 802E793C 002E359C 7C 7B 1B 78 */ mr r27, r3
/* 802E7940 002E35A0 7C 9C 23 78 */ mr r28, r4
/* 802E7944 002E35A4 7C BD 2B 78 */ mr r29, r5
/* 802E7948 002E35A8 7C DE 33 78 */ mr r30, r6
/* 802E794C 002E35AC 7C FF 3B 78 */ mr r31, r7
/* 802E7950 002E35B0 48 00 1A A1 */ bl nandIsInitialized
/* 802E7954 002E35B4 2C 03 00 00 */ cmpwi r3, 0
/* 802E7958 002E35B8 40 82 00 0C */ bne lbl_802E7964
/* 802E795C 002E35BC 38 60 FF 80 */ li r3, -128
/* 802E7960 002E35C0 48 00 00 28 */ b lbl_802E7988
lbl_802E7964:
/* 802E7964 002E35C4 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7968 002E35C8 3C C0 80 2F */ lis r6, nandCallback@ha
/* 802E796C 002E35CC 7F 84 E3 78 */ mr r4, r28
/* 802E7970 002E35D0 7F A5 EB 78 */ mr r5, r29
/* 802E7974 002E35D4 80 7B 00 00 */ lwz r3, 0(r27)
/* 802E7978 002E35D8 7F E7 FB 78 */ mr r7, r31
/* 802E797C 002E35DC 38 C6 9F 08 */ addi r6, r6, nandCallback@l
/* 802E7980 002E35E0 4B FB DF 29 */ bl ISFS_ReadAsync
/* 802E7984 002E35E4 48 00 1A 85 */ bl nandConvertErrorCode
lbl_802E7988:
/* 802E7988 002E35E8 39 61 00 20 */ addi r11, r1, 0x20
/* 802E798C 002E35EC 4B ED F7 E9 */ bl _restgpr_27
/* 802E7990 002E35F0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7994 002E35F4 7C 08 03 A6 */ mtlr r0
/* 802E7998 002E35F8 38 21 00 20 */ addi r1, r1, 0x20
/* 802E799C 002E35FC 4E 80 00 20 */ blr
.global NANDWrite
NANDWrite:
/* 802E79A0 002E3600 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E79A4 002E3604 7C 08 02 A6 */ mflr r0
/* 802E79A8 002E3608 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E79AC 002E360C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E79B0 002E3610 7C BF 2B 78 */ mr r31, r5
/* 802E79B4 002E3614 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E79B8 002E3618 7C 9E 23 78 */ mr r30, r4
/* 802E79BC 002E361C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E79C0 002E3620 7C 7D 1B 78 */ mr r29, r3
/* 802E79C4 002E3624 48 00 1A 2D */ bl nandIsInitialized
/* 802E79C8 002E3628 2C 03 00 00 */ cmpwi r3, 0
/* 802E79CC 002E362C 41 82 00 1C */ beq lbl_802E79E8
/* 802E79D0 002E3630 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E79D4 002E3634 7F C4 F3 78 */ mr r4, r30
/* 802E79D8 002E3638 7F E5 FB 78 */ mr r5, r31
/* 802E79DC 002E363C 4B FB DF 71 */ bl ISFS_Write
/* 802E79E0 002E3640 48 00 1A 29 */ bl nandConvertErrorCode
/* 802E79E4 002E3644 48 00 00 08 */ b lbl_802E79EC
lbl_802E79E8:
/* 802E79E8 002E3648 38 60 FF 80 */ li r3, -128
lbl_802E79EC:
/* 802E79EC 002E364C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E79F0 002E3650 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E79F4 002E3654 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E79F8 002E3658 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E79FC 002E365C 7C 08 03 A6 */ mtlr r0
/* 802E7A00 002E3660 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7A04 002E3664 4E 80 00 20 */ blr
.global NANDWriteAsync
NANDWriteAsync:
/* 802E7A08 002E3668 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E7A0C 002E366C 7C 08 02 A6 */ mflr r0
/* 802E7A10 002E3670 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7A14 002E3674 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7A18 002E3678 4B ED F7 11 */ bl _savegpr_27
/* 802E7A1C 002E367C 7C 7B 1B 78 */ mr r27, r3
/* 802E7A20 002E3680 7C 9C 23 78 */ mr r28, r4
/* 802E7A24 002E3684 7C BD 2B 78 */ mr r29, r5
/* 802E7A28 002E3688 7C DE 33 78 */ mr r30, r6
/* 802E7A2C 002E368C 7C FF 3B 78 */ mr r31, r7
/* 802E7A30 002E3690 48 00 19 C1 */ bl nandIsInitialized
/* 802E7A34 002E3694 2C 03 00 00 */ cmpwi r3, 0
/* 802E7A38 002E3698 40 82 00 0C */ bne lbl_802E7A44
/* 802E7A3C 002E369C 38 60 FF 80 */ li r3, -128
/* 802E7A40 002E36A0 48 00 00 28 */ b lbl_802E7A68
lbl_802E7A44:
/* 802E7A44 002E36A4 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7A48 002E36A8 3C C0 80 2F */ lis r6, nandCallback@ha
/* 802E7A4C 002E36AC 7F 84 E3 78 */ mr r4, r28
/* 802E7A50 002E36B0 7F A5 EB 78 */ mr r5, r29
/* 802E7A54 002E36B4 80 7B 00 00 */ lwz r3, 0(r27)
/* 802E7A58 002E36B8 7F E7 FB 78 */ mr r7, r31
/* 802E7A5C 002E36BC 38 C6 9F 08 */ addi r6, r6, nandCallback@l
/* 802E7A60 002E36C0 4B FB DF 0D */ bl ISFS_WriteAsync
/* 802E7A64 002E36C4 48 00 19 A5 */ bl nandConvertErrorCode
lbl_802E7A68:
/* 802E7A68 002E36C8 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7A6C 002E36CC 4B ED F7 09 */ bl _restgpr_27
/* 802E7A70 002E36D0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7A74 002E36D4 7C 08 03 A6 */ mtlr r0
/* 802E7A78 002E36D8 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7A7C 002E36DC 4E 80 00 20 */ blr
.global NANDSeek
NANDSeek:
/* 802E7A80 002E36E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E7A84 002E36E4 7C 08 02 A6 */ mflr r0
/* 802E7A88 002E36E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7A8C 002E36EC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E7A90 002E36F0 7C BF 2B 78 */ mr r31, r5
/* 802E7A94 002E36F4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E7A98 002E36F8 7C 9E 23 78 */ mr r30, r4
/* 802E7A9C 002E36FC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E7AA0 002E3700 7C 7D 1B 78 */ mr r29, r3
/* 802E7AA4 002E3704 48 00 19 4D */ bl nandIsInitialized
/* 802E7AA8 002E3708 2C 03 00 00 */ cmpwi r3, 0
/* 802E7AAC 002E370C 40 82 00 0C */ bne lbl_802E7AB8
/* 802E7AB0 002E3710 38 60 FF 80 */ li r3, -128
/* 802E7AB4 002E3714 48 00 00 50 */ b lbl_802E7B04
lbl_802E7AB8:
/* 802E7AB8 002E3718 2C 1F 00 01 */ cmpwi r31, 1
/* 802E7ABC 002E371C 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E7AC0 002E3720 38 A0 FF FF */ li r5, -1
/* 802E7AC4 002E3724 41 82 00 28 */ beq lbl_802E7AEC
/* 802E7AC8 002E3728 40 80 00 10 */ bge lbl_802E7AD8
/* 802E7ACC 002E372C 2C 1F 00 00 */ cmpwi r31, 0
/* 802E7AD0 002E3730 40 80 00 14 */ bge lbl_802E7AE4
/* 802E7AD4 002E3734 48 00 00 24 */ b lbl_802E7AF8
lbl_802E7AD8:
/* 802E7AD8 002E3738 2C 1F 00 03 */ cmpwi r31, 3
/* 802E7ADC 002E373C 40 80 00 1C */ bge lbl_802E7AF8
/* 802E7AE0 002E3740 48 00 00 14 */ b lbl_802E7AF4
lbl_802E7AE4:
/* 802E7AE4 002E3744 38 A0 00 00 */ li r5, 0
/* 802E7AE8 002E3748 48 00 00 10 */ b lbl_802E7AF8
lbl_802E7AEC:
/* 802E7AEC 002E374C 38 A0 00 01 */ li r5, 1
/* 802E7AF0 002E3750 48 00 00 08 */ b lbl_802E7AF8
lbl_802E7AF4:
/* 802E7AF4 002E3754 38 A0 00 02 */ li r5, 2
lbl_802E7AF8:
/* 802E7AF8 002E3758 7F C4 F3 78 */ mr r4, r30
/* 802E7AFC 002E375C 4B FB DC FD */ bl ISFS_Seek
/* 802E7B00 002E3760 48 00 19 09 */ bl nandConvertErrorCode
lbl_802E7B04:
/* 802E7B04 002E3764 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7B08 002E3768 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E7B0C 002E376C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E7B10 002E3770 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E7B14 002E3774 7C 08 03 A6 */ mtlr r0
/* 802E7B18 002E3778 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7B1C 002E377C 4E 80 00 20 */ blr
.global NANDSeekAsync
NANDSeekAsync:
/* 802E7B20 002E3780 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E7B24 002E3784 7C 08 02 A6 */ mflr r0
/* 802E7B28 002E3788 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7B2C 002E378C 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7B30 002E3790 4B ED F5 F9 */ bl _savegpr_27
/* 802E7B34 002E3794 7C 7B 1B 78 */ mr r27, r3
/* 802E7B38 002E3798 7C 9C 23 78 */ mr r28, r4
/* 802E7B3C 002E379C 7C BD 2B 78 */ mr r29, r5
/* 802E7B40 002E37A0 7C DE 33 78 */ mr r30, r6
/* 802E7B44 002E37A4 7C FF 3B 78 */ mr r31, r7
/* 802E7B48 002E37A8 48 00 18 A9 */ bl nandIsInitialized
/* 802E7B4C 002E37AC 2C 03 00 00 */ cmpwi r3, 0
/* 802E7B50 002E37B0 40 82 00 0C */ bne lbl_802E7B5C
/* 802E7B54 002E37B4 38 60 FF 80 */ li r3, -128
/* 802E7B58 002E37B8 48 00 00 60 */ b lbl_802E7BB8
lbl_802E7B5C:
/* 802E7B5C 002E37BC 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7B60 002E37C0 2C 1D 00 01 */ cmpwi r29, 1
/* 802E7B64 002E37C4 38 A0 FF FF */ li r5, -1
/* 802E7B68 002E37C8 80 7B 00 00 */ lwz r3, 0(r27)
/* 802E7B6C 002E37CC 41 82 00 28 */ beq lbl_802E7B94
/* 802E7B70 002E37D0 40 80 00 10 */ bge lbl_802E7B80
/* 802E7B74 002E37D4 2C 1D 00 00 */ cmpwi r29, 0
/* 802E7B78 002E37D8 40 80 00 14 */ bge lbl_802E7B8C
/* 802E7B7C 002E37DC 48 00 00 24 */ b lbl_802E7BA0
lbl_802E7B80:
/* 802E7B80 002E37E0 2C 1D 00 03 */ cmpwi r29, 3
/* 802E7B84 002E37E4 40 80 00 1C */ bge lbl_802E7BA0
/* 802E7B88 002E37E8 48 00 00 14 */ b lbl_802E7B9C
lbl_802E7B8C:
/* 802E7B8C 002E37EC 38 A0 00 00 */ li r5, 0
/* 802E7B90 002E37F0 48 00 00 10 */ b lbl_802E7BA0
lbl_802E7B94:
/* 802E7B94 002E37F4 38 A0 00 01 */ li r5, 1
/* 802E7B98 002E37F8 48 00 00 08 */ b lbl_802E7BA0
lbl_802E7B9C:
/* 802E7B9C 002E37FC 38 A0 00 02 */ li r5, 2
lbl_802E7BA0:
/* 802E7BA0 002E3800 3C C0 80 2F */ lis r6, nandCallback@ha
/* 802E7BA4 002E3804 7F 84 E3 78 */ mr r4, r28
/* 802E7BA8 002E3808 7F E7 FB 78 */ mr r7, r31
/* 802E7BAC 002E380C 38 C6 9F 08 */ addi r6, r6, nandCallback@l
/* 802E7BB0 002E3810 4B FB DC 4D */ bl ISFS_SeekAsync
/* 802E7BB4 002E3814 48 00 18 55 */ bl nandConvertErrorCode
lbl_802E7BB8:
/* 802E7BB8 002E3818 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7BBC 002E381C 4B ED F5 B9 */ bl _restgpr_27
/* 802E7BC0 002E3820 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7BC4 002E3824 7C 08 03 A6 */ mtlr r0
/* 802E7BC8 002E3828 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7BCC 002E382C 4E 80 00 20 */ blr
.global NANDReadDirAsync
NANDReadDirAsync:
/* 802E7BD0 002E3830 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 802E7BD4 002E3834 7C 08 02 A6 */ mflr r0
/* 802E7BD8 002E3838 90 01 00 64 */ stw r0, 0x64(r1)
/* 802E7BDC 002E383C 39 61 00 60 */ addi r11, r1, 0x60
/* 802E7BE0 002E3840 4B ED F5 49 */ bl _savegpr_27
/* 802E7BE4 002E3844 7C 7B 1B 78 */ mr r27, r3
/* 802E7BE8 002E3848 7C 9C 23 78 */ mr r28, r4
/* 802E7BEC 002E384C 7C BD 2B 78 */ mr r29, r5
/* 802E7BF0 002E3850 7C DE 33 78 */ mr r30, r6
/* 802E7BF4 002E3854 7C FF 3B 78 */ mr r31, r7
/* 802E7BF8 002E3858 48 00 17 F9 */ bl nandIsInitialized
/* 802E7BFC 002E385C 2C 03 00 00 */ cmpwi r3, 0
/* 802E7C00 002E3860 40 82 00 0C */ bne lbl_802E7C0C
/* 802E7C04 002E3864 38 60 FF 80 */ li r3, -128
/* 802E7C08 002E3868 48 00 00 90 */ b lbl_802E7C98
lbl_802E7C0C:
/* 802E7C0C 002E386C 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7C10 002E3870 38 00 00 00 */ li r0, 0
/* 802E7C14 002E3874 7F 64 DB 78 */ mr r4, r27
/* 802E7C18 002E3878 38 61 00 08 */ addi r3, r1, 8
/* 802E7C1C 002E387C 90 01 00 08 */ stw r0, 8(r1)
/* 802E7C20 002E3880 90 01 00 0C */ stw r0, 0xc(r1)
/* 802E7C24 002E3884 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E7C28 002E3888 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E7C2C 002E388C 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E7C30 002E3890 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E7C34 002E3894 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E7C38 002E3898 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7C3C 002E389C 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E7C40 002E38A0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E7C44 002E38A4 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E7C48 002E38A8 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E7C4C 002E38AC 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E7C50 002E38B0 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E7C54 002E38B4 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E7C58 002E38B8 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E7C5C 002E38BC 48 00 18 7D */ bl nandGenerateAbsPath
/* 802E7C60 002E38C0 38 61 00 08 */ addi r3, r1, 8
/* 802E7C64 002E38C4 48 00 17 01 */ bl nandIsPrivatePath
/* 802E7C68 002E38C8 2C 03 00 00 */ cmpwi r3, 0
/* 802E7C6C 002E38CC 41 82 00 0C */ beq lbl_802E7C78
/* 802E7C70 002E38D0 38 60 FF 9A */ li r3, -102
/* 802E7C74 002E38D4 48 00 00 20 */ b lbl_802E7C94
lbl_802E7C78:
/* 802E7C78 002E38D8 3C C0 80 2F */ lis r6, nandCallback@ha
/* 802E7C7C 002E38DC 7F 84 E3 78 */ mr r4, r28
/* 802E7C80 002E38E0 7F A5 EB 78 */ mr r5, r29
/* 802E7C84 002E38E4 7F E7 FB 78 */ mr r7, r31
/* 802E7C88 002E38E8 38 61 00 08 */ addi r3, r1, 8
/* 802E7C8C 002E38EC 38 C6 9F 08 */ addi r6, r6, nandCallback@l
/* 802E7C90 002E38F0 4B FB D0 29 */ bl ISFS_ReadDirAsync
lbl_802E7C94:
/* 802E7C94 002E38F4 48 00 17 75 */ bl nandConvertErrorCode
lbl_802E7C98:
/* 802E7C98 002E38F8 39 61 00 60 */ addi r11, r1, 0x60
/* 802E7C9C 002E38FC 4B ED F4 D9 */ bl _restgpr_27
/* 802E7CA0 002E3900 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802E7CA4 002E3904 7C 08 03 A6 */ mtlr r0
/* 802E7CA8 002E3908 38 21 00 60 */ addi r1, r1, 0x60
/* 802E7CAC 002E390C 4E 80 00 20 */ blr
.global nandCreateDir
nandCreateDir:
/* 802E7CB0 002E3910 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 802E7CB4 002E3914 7C 08 02 A6 */ mflr r0
/* 802E7CB8 002E3918 90 01 00 74 */ stw r0, 0x74(r1)
/* 802E7CBC 002E391C 39 61 00 70 */ addi r11, r1, 0x70
/* 802E7CC0 002E3920 4B ED F4 69 */ bl _savegpr_27
/* 802E7CC4 002E3924 38 00 00 00 */ li r0, 0
/* 802E7CC8 002E3928 7C 9B 23 78 */ mr r27, r4
/* 802E7CCC 002E392C 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E7CD0 002E3930 7C 64 1B 78 */ mr r4, r3
/* 802E7CD4 002E3934 7C BC 2B 78 */ mr r28, r5
/* 802E7CD8 002E3938 7C DD 33 78 */ mr r29, r6
/* 802E7CDC 002E393C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E7CE0 002E3940 7C FE 3B 78 */ mr r30, r7
/* 802E7CE4 002E3944 7D 1F 43 78 */ mr r31, r8
/* 802E7CE8 002E3948 38 61 00 18 */ addi r3, r1, 0x18
/* 802E7CEC 002E394C 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E7CF0 002E3950 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7CF4 002E3954 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E7CF8 002E3958 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E7CFC 002E395C 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E7D00 002E3960 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E7D04 002E3964 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E7D08 002E3968 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E7D0C 002E396C 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E7D10 002E3970 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E7D14 002E3974 90 01 00 48 */ stw r0, 0x48(r1)
/* 802E7D18 002E3978 90 01 00 4C */ stw r0, 0x4c(r1)
/* 802E7D1C 002E397C 90 01 00 50 */ stw r0, 0x50(r1)
/* 802E7D20 002E3980 90 01 00 54 */ stw r0, 0x54(r1)
/* 802E7D24 002E3984 48 00 17 B5 */ bl nandGenerateAbsPath
/* 802E7D28 002E3988 2C 1F 00 00 */ cmpwi r31, 0
/* 802E7D2C 002E398C 40 82 00 1C */ bne lbl_802E7D48
/* 802E7D30 002E3990 38 61 00 18 */ addi r3, r1, 0x18
/* 802E7D34 002E3994 48 00 16 31 */ bl nandIsPrivatePath
/* 802E7D38 002E3998 2C 03 00 00 */ cmpwi r3, 0
/* 802E7D3C 002E399C 41 82 00 0C */ beq lbl_802E7D48
/* 802E7D40 002E39A0 38 60 FF 9A */ li r3, -102
/* 802E7D44 002E39A4 48 00 00 80 */ b lbl_802E7DC4
lbl_802E7D48:
/* 802E7D48 002E39A8 57 60 06 F7 */ rlwinm. r0, r27, 0, 0x1b, 0x1b
/* 802E7D4C 002E39AC 40 82 00 0C */ bne lbl_802E7D58
/* 802E7D50 002E39B0 38 60 FF 9B */ li r3, -101
/* 802E7D54 002E39B4 48 00 00 70 */ b lbl_802E7DC4
lbl_802E7D58:
/* 802E7D58 002E39B8 38 00 00 00 */ li r0, 0
/* 802E7D5C 002E39BC 7F 63 DB 78 */ mr r3, r27
/* 802E7D60 002E39C0 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E7D64 002E39C4 38 81 00 10 */ addi r4, r1, 0x10
/* 802E7D68 002E39C8 38 A1 00 0C */ addi r5, r1, 0xc
/* 802E7D6C 002E39CC 38 C1 00 08 */ addi r6, r1, 8
/* 802E7D70 002E39D0 90 01 00 0C */ stw r0, 0xc(r1)
/* 802E7D74 002E39D4 90 01 00 08 */ stw r0, 8(r1)
/* 802E7D78 002E39D8 48 00 02 31 */ bl nandSplitPerm
/* 802E7D7C 002E39DC 2C 1E 00 00 */ cmpwi r30, 0
/* 802E7D80 002E39E0 41 82 00 2C */ beq lbl_802E7DAC
/* 802E7D84 002E39E4 3D 00 80 2F */ lis r8, nandCallback@ha
/* 802E7D88 002E39E8 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 802E7D8C 002E39EC 80 C1 00 0C */ lwz r6, 0xc(r1)
/* 802E7D90 002E39F0 7F 84 E3 78 */ mr r4, r28
/* 802E7D94 002E39F4 80 E1 00 08 */ lwz r7, 8(r1)
/* 802E7D98 002E39F8 7F A9 EB 78 */ mr r9, r29
/* 802E7D9C 002E39FC 38 61 00 18 */ addi r3, r1, 0x18
/* 802E7DA0 002E3A00 39 08 9F 08 */ addi r8, r8, nandCallback@l
/* 802E7DA4 002E3A04 4B FB CC CD */ bl ISFS_CreateDirAsync
/* 802E7DA8 002E3A08 48 00 00 1C */ b lbl_802E7DC4
lbl_802E7DAC:
/* 802E7DAC 002E3A0C 80 A1 00 10 */ lwz r5, 0x10(r1)
/* 802E7DB0 002E3A10 7F 84 E3 78 */ mr r4, r28
/* 802E7DB4 002E3A14 80 C1 00 0C */ lwz r6, 0xc(r1)
/* 802E7DB8 002E3A18 38 61 00 18 */ addi r3, r1, 0x18
/* 802E7DBC 002E3A1C 80 E1 00 08 */ lwz r7, 8(r1)
/* 802E7DC0 002E3A20 4B FB CB BD */ bl ISFS_CreateDir
lbl_802E7DC4:
/* 802E7DC4 002E3A24 39 61 00 70 */ addi r11, r1, 0x70
/* 802E7DC8 002E3A28 4B ED F3 AD */ bl _restgpr_27
/* 802E7DCC 002E3A2C 80 01 00 74 */ lwz r0, 0x74(r1)
/* 802E7DD0 002E3A30 7C 08 03 A6 */ mtlr r0
/* 802E7DD4 002E3A34 38 21 00 70 */ addi r1, r1, 0x70
/* 802E7DD8 002E3A38 4E 80 00 20 */ blr
.global NANDCreateDirAsync
NANDCreateDirAsync:
/* 802E7DDC 002E3A3C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E7DE0 002E3A40 7C 08 02 A6 */ mflr r0
/* 802E7DE4 002E3A44 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7DE8 002E3A48 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7DEC 002E3A4C 4B ED F3 3D */ bl _savegpr_27
/* 802E7DF0 002E3A50 7C 7B 1B 78 */ mr r27, r3
/* 802E7DF4 002E3A54 7C 9C 23 78 */ mr r28, r4
/* 802E7DF8 002E3A58 7C BD 2B 78 */ mr r29, r5
/* 802E7DFC 002E3A5C 7C DE 33 78 */ mr r30, r6
/* 802E7E00 002E3A60 7C FF 3B 78 */ mr r31, r7
/* 802E7E04 002E3A64 48 00 15 ED */ bl nandIsInitialized
/* 802E7E08 002E3A68 2C 03 00 00 */ cmpwi r3, 0
/* 802E7E0C 002E3A6C 40 82 00 0C */ bne lbl_802E7E18
/* 802E7E10 002E3A70 38 60 FF 80 */ li r3, -128
/* 802E7E14 002E3A74 48 00 00 28 */ b lbl_802E7E3C
lbl_802E7E18:
/* 802E7E18 002E3A78 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7E1C 002E3A7C 7F 63 DB 78 */ mr r3, r27
/* 802E7E20 002E3A80 7F 84 E3 78 */ mr r4, r28
/* 802E7E24 002E3A84 7F A5 EB 78 */ mr r5, r29
/* 802E7E28 002E3A88 7F E6 FB 78 */ mr r6, r31
/* 802E7E2C 002E3A8C 38 E0 00 01 */ li r7, 1
/* 802E7E30 002E3A90 39 00 00 00 */ li r8, 0
/* 802E7E34 002E3A94 4B FF FE 7D */ bl nandCreateDir
/* 802E7E38 002E3A98 48 00 15 D1 */ bl nandConvertErrorCode
lbl_802E7E3C:
/* 802E7E3C 002E3A9C 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7E40 002E3AA0 4B ED F3 35 */ bl _restgpr_27
/* 802E7E44 002E3AA4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7E48 002E3AA8 7C 08 03 A6 */ mtlr r0
/* 802E7E4C 002E3AAC 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7E50 002E3AB0 4E 80 00 20 */ blr
.global NANDPrivateCreateDirAsync
NANDPrivateCreateDirAsync:
/* 802E7E54 002E3AB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E7E58 002E3AB8 7C 08 02 A6 */ mflr r0
/* 802E7E5C 002E3ABC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E7E60 002E3AC0 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7E64 002E3AC4 4B ED F2 C5 */ bl _savegpr_27
/* 802E7E68 002E3AC8 7C 7B 1B 78 */ mr r27, r3
/* 802E7E6C 002E3ACC 7C 9C 23 78 */ mr r28, r4
/* 802E7E70 002E3AD0 7C BD 2B 78 */ mr r29, r5
/* 802E7E74 002E3AD4 7C DE 33 78 */ mr r30, r6
/* 802E7E78 002E3AD8 7C FF 3B 78 */ mr r31, r7
/* 802E7E7C 002E3ADC 48 00 15 75 */ bl nandIsInitialized
/* 802E7E80 002E3AE0 2C 03 00 00 */ cmpwi r3, 0
/* 802E7E84 002E3AE4 40 82 00 0C */ bne lbl_802E7E90
/* 802E7E88 002E3AE8 38 60 FF 80 */ li r3, -128
/* 802E7E8C 002E3AEC 48 00 00 28 */ b lbl_802E7EB4
lbl_802E7E90:
/* 802E7E90 002E3AF0 93 DF 00 04 */ stw r30, 4(r31)
/* 802E7E94 002E3AF4 7F 63 DB 78 */ mr r3, r27
/* 802E7E98 002E3AF8 7F 84 E3 78 */ mr r4, r28
/* 802E7E9C 002E3AFC 7F A5 EB 78 */ mr r5, r29
/* 802E7EA0 002E3B00 7F E6 FB 78 */ mr r6, r31
/* 802E7EA4 002E3B04 38 E0 00 01 */ li r7, 1
/* 802E7EA8 002E3B08 39 00 00 01 */ li r8, 1
/* 802E7EAC 002E3B0C 4B FF FE 05 */ bl nandCreateDir
/* 802E7EB0 002E3B10 48 00 15 59 */ bl nandConvertErrorCode
lbl_802E7EB4:
/* 802E7EB4 002E3B14 39 61 00 20 */ addi r11, r1, 0x20
/* 802E7EB8 002E3B18 4B ED F2 BD */ bl _restgpr_27
/* 802E7EBC 002E3B1C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E7EC0 002E3B20 7C 08 03 A6 */ mtlr r0
/* 802E7EC4 002E3B24 38 21 00 20 */ addi r1, r1, 0x20
/* 802E7EC8 002E3B28 4E 80 00 20 */ blr
.global NANDGetLength
NANDGetLength:
/* 802E7ECC 002E3B2C 54 2B 06 FE */ clrlwi r11, r1, 0x1b
/* 802E7ED0 002E3B30 7C 2C 0B 78 */ mr r12, r1
/* 802E7ED4 002E3B34 21 6B FF A0 */ subfic r11, r11, -96
/* 802E7ED8 002E3B38 7C 21 59 6E */ stwux r1, r1, r11
/* 802E7EDC 002E3B3C 7C 08 02 A6 */ mflr r0
/* 802E7EE0 002E3B40 90 0C 00 04 */ stw r0, 4(r12)
/* 802E7EE4 002E3B44 93 EC FF FC */ stw r31, -4(r12)
/* 802E7EE8 002E3B48 7C 9F 23 78 */ mr r31, r4
/* 802E7EEC 002E3B4C 93 CC FF F8 */ stw r30, -8(r12)
/* 802E7EF0 002E3B50 7C 7E 1B 78 */ mr r30, r3
/* 802E7EF4 002E3B54 48 00 14 FD */ bl nandIsInitialized
/* 802E7EF8 002E3B58 2C 03 00 00 */ cmpwi r3, 0
/* 802E7EFC 002E3B5C 40 82 00 0C */ bne lbl_802E7F08
/* 802E7F00 002E3B60 38 60 FF 80 */ li r3, -128
/* 802E7F04 002E3B64 48 00 00 34 */ b lbl_802E7F38
lbl_802E7F08:
/* 802E7F08 002E3B68 80 7E 00 00 */ lwz r3, 0(r30)
/* 802E7F0C 002E3B6C 38 81 00 20 */ addi r4, r1, 0x20
/* 802E7F10 002E3B70 4B FB D8 B5 */ bl ISFS_GetFileStats
/* 802E7F14 002E3B74 2C 03 00 00 */ cmpwi r3, 0
/* 802E7F18 002E3B78 40 82 00 1C */ bne lbl_802E7F34
/* 802E7F1C 002E3B7C 2C 1F 00 00 */ cmpwi r31, 0
/* 802E7F20 002E3B80 41 82 00 14 */ beq lbl_802E7F34
/* 802E7F24 002E3B84 80 01 00 20 */ lwz r0, 0x20(r1)
/* 802E7F28 002E3B88 90 1F 00 00 */ stw r0, 0(r31)
/* 802E7F2C 002E3B8C 48 00 00 08 */ b lbl_802E7F34
/* 802E7F30 002E3B90 90 00 00 00 */ stw r0, 0(0)
lbl_802E7F34:
/* 802E7F34 002E3B94 48 00 14 D5 */ bl nandConvertErrorCode
lbl_802E7F38:
/* 802E7F38 002E3B98 81 41 00 00 */ lwz r10, 0(r1)
/* 802E7F3C 002E3B9C 80 0A 00 04 */ lwz r0, 4(r10)
/* 802E7F40 002E3BA0 83 EA FF FC */ lwz r31, -4(r10)
/* 802E7F44 002E3BA4 83 CA FF F8 */ lwz r30, -8(r10)
/* 802E7F48 002E3BA8 7C 08 03 A6 */ mtlr r0
/* 802E7F4C 002E3BAC 7D 41 53 78 */ mr r1, r10
/* 802E7F50 002E3BB0 4E 80 00 20 */ blr
.global nandComposePerm
nandComposePerm:
/* 802E7F54 002E3BB4 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 802E7F58 002E3BB8 38 E0 00 00 */ li r7, 0
/* 802E7F5C 002E3BBC 41 82 00 08 */ beq lbl_802E7F64
/* 802E7F60 002E3BC0 60 E7 00 10 */ ori r7, r7, 0x10
lbl_802E7F64:
/* 802E7F64 002E3BC4 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 802E7F68 002E3BC8 41 82 00 08 */ beq lbl_802E7F70
/* 802E7F6C 002E3BCC 60 E7 00 20 */ ori r7, r7, 0x20
lbl_802E7F70:
/* 802E7F70 002E3BD0 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 802E7F74 002E3BD4 41 82 00 08 */ beq lbl_802E7F7C
/* 802E7F78 002E3BD8 60 E7 00 04 */ ori r7, r7, 4
lbl_802E7F7C:
/* 802E7F7C 002E3BDC 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e
/* 802E7F80 002E3BE0 41 82 00 08 */ beq lbl_802E7F88
/* 802E7F84 002E3BE4 60 E7 00 08 */ ori r7, r7, 8
lbl_802E7F88:
/* 802E7F88 002E3BE8 54 C0 07 FF */ clrlwi. r0, r6, 0x1f
/* 802E7F8C 002E3BEC 41 82 00 08 */ beq lbl_802E7F94
/* 802E7F90 002E3BF0 60 E7 00 01 */ ori r7, r7, 1
lbl_802E7F94:
/* 802E7F94 002E3BF4 54 C0 07 BD */ rlwinm. r0, r6, 0, 0x1e, 0x1e
/* 802E7F98 002E3BF8 41 82 00 08 */ beq lbl_802E7FA0
/* 802E7F9C 002E3BFC 60 E7 00 02 */ ori r7, r7, 2
lbl_802E7FA0:
/* 802E7FA0 002E3C00 98 E3 00 00 */ stb r7, 0(r3)
/* 802E7FA4 002E3C04 4E 80 00 20 */ blr
.global nandSplitPerm
nandSplitPerm:
/* 802E7FA8 002E3C08 38 E0 00 00 */ li r7, 0
/* 802E7FAC 002E3C0C 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 802E7FB0 002E3C10 90 E4 00 00 */ stw r7, 0(r4)
/* 802E7FB4 002E3C14 90 E5 00 00 */ stw r7, 0(r5)
/* 802E7FB8 002E3C18 90 E6 00 00 */ stw r7, 0(r6)
/* 802E7FBC 002E3C1C 41 82 00 10 */ beq lbl_802E7FCC
/* 802E7FC0 002E3C20 80 04 00 00 */ lwz r0, 0(r4)
/* 802E7FC4 002E3C24 60 00 00 01 */ ori r0, r0, 1
/* 802E7FC8 002E3C28 90 04 00 00 */ stw r0, 0(r4)
lbl_802E7FCC:
/* 802E7FCC 002E3C2C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a
/* 802E7FD0 002E3C30 41 82 00 10 */ beq lbl_802E7FE0
/* 802E7FD4 002E3C34 80 04 00 00 */ lwz r0, 0(r4)
/* 802E7FD8 002E3C38 60 00 00 02 */ ori r0, r0, 2
/* 802E7FDC 002E3C3C 90 04 00 00 */ stw r0, 0(r4)
lbl_802E7FE0:
/* 802E7FE0 002E3C40 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 802E7FE4 002E3C44 41 82 00 10 */ beq lbl_802E7FF4
/* 802E7FE8 002E3C48 80 05 00 00 */ lwz r0, 0(r5)
/* 802E7FEC 002E3C4C 60 00 00 01 */ ori r0, r0, 1
/* 802E7FF0 002E3C50 90 05 00 00 */ stw r0, 0(r5)
lbl_802E7FF4:
/* 802E7FF4 002E3C54 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
/* 802E7FF8 002E3C58 41 82 00 10 */ beq lbl_802E8008
/* 802E7FFC 002E3C5C 80 05 00 00 */ lwz r0, 0(r5)
/* 802E8000 002E3C60 60 00 00 02 */ ori r0, r0, 2
/* 802E8004 002E3C64 90 05 00 00 */ stw r0, 0(r5)
lbl_802E8008:
/* 802E8008 002E3C68 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 802E800C 002E3C6C 41 82 00 10 */ beq lbl_802E801C
/* 802E8010 002E3C70 80 06 00 00 */ lwz r0, 0(r6)
/* 802E8014 002E3C74 60 00 00 01 */ ori r0, r0, 1
/* 802E8018 002E3C78 90 06 00 00 */ stw r0, 0(r6)
lbl_802E801C:
/* 802E801C 002E3C7C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 802E8020 002E3C80 4D 82 00 20 */ beqlr
/* 802E8024 002E3C84 80 06 00 00 */ lwz r0, 0(r6)
/* 802E8028 002E3C88 60 00 00 02 */ ori r0, r0, 2
/* 802E802C 002E3C8C 90 06 00 00 */ stw r0, 0(r6)
/* 802E8030 002E3C90 4E 80 00 20 */ blr
.global nandGetStatus
nandGetStatus:
/* 802E8034 002E3C94 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 802E8038 002E3C98 7C 08 02 A6 */ mflr r0
/* 802E803C 002E3C9C 90 01 00 74 */ stw r0, 0x74(r1)
/* 802E8040 002E3CA0 38 00 00 00 */ li r0, 0
/* 802E8044 002E3CA4 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 802E8048 002E3CA8 7C FF 3B 78 */ mr r31, r7
/* 802E804C 002E3CAC 93 C1 00 68 */ stw r30, 0x68(r1)
/* 802E8050 002E3CB0 7C DE 33 78 */ mr r30, r6
/* 802E8054 002E3CB4 93 A1 00 64 */ stw r29, 0x64(r1)
/* 802E8058 002E3CB8 7C BD 2B 78 */ mr r29, r5
/* 802E805C 002E3CBC 93 81 00 60 */ stw r28, 0x60(r1)
/* 802E8060 002E3CC0 7C 9C 23 78 */ mr r28, r4
/* 802E8064 002E3CC4 7C 64 1B 78 */ mr r4, r3
/* 802E8068 002E3CC8 38 61 00 20 */ addi r3, r1, 0x20
/* 802E806C 002E3CCC 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E8070 002E3CD0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E8074 002E3CD4 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E8078 002E3CD8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E807C 002E3CDC 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E8080 002E3CE0 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E8084 002E3CE4 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E8088 002E3CE8 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E808C 002E3CEC 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E8090 002E3CF0 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E8094 002E3CF4 90 01 00 48 */ stw r0, 0x48(r1)
/* 802E8098 002E3CF8 90 01 00 4C */ stw r0, 0x4c(r1)
/* 802E809C 002E3CFC 90 01 00 50 */ stw r0, 0x50(r1)
/* 802E80A0 002E3D00 90 01 00 54 */ stw r0, 0x54(r1)
/* 802E80A4 002E3D04 90 01 00 58 */ stw r0, 0x58(r1)
/* 802E80A8 002E3D08 90 01 00 5C */ stw r0, 0x5c(r1)
/* 802E80AC 002E3D0C 48 00 14 2D */ bl nandGenerateAbsPath
/* 802E80B0 002E3D10 2C 1F 00 00 */ cmpwi r31, 0
/* 802E80B4 002E3D14 40 82 00 1C */ bne lbl_802E80D0
/* 802E80B8 002E3D18 38 61 00 20 */ addi r3, r1, 0x20
/* 802E80BC 002E3D1C 48 00 12 DD */ bl nandIsUnderPrivatePath
/* 802E80C0 002E3D20 2C 03 00 00 */ cmpwi r3, 0
/* 802E80C4 002E3D24 41 82 00 0C */ beq lbl_802E80D0
/* 802E80C8 002E3D28 38 60 FF 9A */ li r3, -102
/* 802E80CC 002E3D2C 48 00 00 9C */ b lbl_802E8168
lbl_802E80D0:
/* 802E80D0 002E3D30 2C 1E 00 00 */ cmpwi r30, 0
/* 802E80D4 002E3D34 41 82 00 34 */ beq lbl_802E8108
/* 802E80D8 002E3D38 3D 40 80 2F */ lis r10, nandGetStatusCallback@ha
/* 802E80DC 002E3D3C 93 A1 00 08 */ stw r29, 8(r1)
/* 802E80E0 002E3D40 7F 84 E3 78 */ mr r4, r28
/* 802E80E4 002E3D44 38 61 00 20 */ addi r3, r1, 0x20
/* 802E80E8 002E3D48 38 BC 00 04 */ addi r5, r28, 4
/* 802E80EC 002E3D4C 38 DD 00 20 */ addi r6, r29, 0x20
/* 802E80F0 002E3D50 38 FD 00 24 */ addi r7, r29, 0x24
/* 802E80F4 002E3D54 39 1D 00 28 */ addi r8, r29, 0x28
/* 802E80F8 002E3D58 39 3D 00 2C */ addi r9, r29, 0x2c
/* 802E80FC 002E3D5C 39 4A 81 88 */ addi r10, r10, nandGetStatusCallback@l
/* 802E8100 002E3D60 4B FB CE 59 */ bl ISFS_GetAttrAsync
/* 802E8104 002E3D64 48 00 00 64 */ b lbl_802E8168
lbl_802E8108:
/* 802E8108 002E3D68 38 00 00 00 */ li r0, 0
/* 802E810C 002E3D6C 7F 84 E3 78 */ mr r4, r28
/* 802E8110 002E3D70 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E8114 002E3D74 38 61 00 20 */ addi r3, r1, 0x20
/* 802E8118 002E3D78 38 BC 00 04 */ addi r5, r28, 4
/* 802E811C 002E3D7C 38 C1 00 1C */ addi r6, r1, 0x1c
/* 802E8120 002E3D80 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E8124 002E3D84 38 E1 00 18 */ addi r7, r1, 0x18
/* 802E8128 002E3D88 39 01 00 14 */ addi r8, r1, 0x14
/* 802E812C 002E3D8C 39 21 00 10 */ addi r9, r1, 0x10
/* 802E8130 002E3D90 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8134 002E3D94 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E8138 002E3D98 4B FB CC C9 */ bl ISFS_GetAttr
/* 802E813C 002E3D9C 2C 03 00 00 */ cmpwi r3, 0
/* 802E8140 002E3DA0 7C 7F 1B 78 */ mr r31, r3
/* 802E8144 002E3DA4 40 82 00 20 */ bne lbl_802E8164
/* 802E8148 002E3DA8 80 81 00 18 */ lwz r4, 0x18(r1)
/* 802E814C 002E3DAC 38 7C 00 07 */ addi r3, r28, 7
/* 802E8150 002E3DB0 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 802E8154 002E3DB4 80 C1 00 10 */ lwz r6, 0x10(r1)
/* 802E8158 002E3DB8 4B FF FD FD */ bl nandComposePerm
/* 802E815C 002E3DBC 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 802E8160 002E3DC0 98 1C 00 06 */ stb r0, 6(r28)
lbl_802E8164:
/* 802E8164 002E3DC4 7F E3 FB 78 */ mr r3, r31
lbl_802E8168:
/* 802E8168 002E3DC8 80 01 00 74 */ lwz r0, 0x74(r1)
/* 802E816C 002E3DCC 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 802E8170 002E3DD0 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 802E8174 002E3DD4 83 A1 00 64 */ lwz r29, 0x64(r1)
/* 802E8178 002E3DD8 83 81 00 60 */ lwz r28, 0x60(r1)
/* 802E817C 002E3DDC 7C 08 03 A6 */ mtlr r0
/* 802E8180 002E3DE0 38 21 00 70 */ addi r1, r1, 0x70
/* 802E8184 002E3DE4 4E 80 00 20 */ blr
nandGetStatusCallback:
/* 802E8188 002E3DE8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E818C 002E3DEC 7C 08 02 A6 */ mflr r0
/* 802E8190 002E3DF0 2C 03 00 00 */ cmpwi r3, 0
/* 802E8194 002E3DF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8198 002E3DF8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E819C 002E3DFC 7C 9F 23 78 */ mr r31, r4
/* 802E81A0 002E3E00 93 C1 00 08 */ stw r30, 8(r1)
/* 802E81A4 002E3E04 7C 7E 1B 78 */ mr r30, r3
/* 802E81A8 002E3E08 40 82 00 24 */ bne lbl_802E81CC
/* 802E81AC 002E3E0C 80 A4 00 14 */ lwz r5, 0x14(r4)
/* 802E81B0 002E3E10 80 04 00 20 */ lwz r0, 0x20(r4)
/* 802E81B4 002E3E14 38 65 00 07 */ addi r3, r5, 7
/* 802E81B8 002E3E18 98 05 00 06 */ stb r0, 6(r5)
/* 802E81BC 002E3E1C 80 84 00 24 */ lwz r4, 0x24(r4)
/* 802E81C0 002E3E20 80 BF 00 28 */ lwz r5, 0x28(r31)
/* 802E81C4 002E3E24 80 DF 00 2C */ lwz r6, 0x2c(r31)
/* 802E81C8 002E3E28 4B FF FD 8D */ bl nandComposePerm
lbl_802E81CC:
/* 802E81CC 002E3E2C 7F C3 F3 78 */ mr r3, r30
/* 802E81D0 002E3E30 48 00 12 39 */ bl nandConvertErrorCode
/* 802E81D4 002E3E34 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E81D8 002E3E38 7F E4 FB 78 */ mr r4, r31
/* 802E81DC 002E3E3C 7D 89 03 A6 */ mtctr r12
/* 802E81E0 002E3E40 4E 80 04 21 */ bctrl
/* 802E81E4 002E3E44 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E81E8 002E3E48 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E81EC 002E3E4C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802E81F0 002E3E50 7C 08 03 A6 */ mtlr r0
/* 802E81F4 002E3E54 38 21 00 10 */ addi r1, r1, 0x10
/* 802E81F8 002E3E58 4E 80 00 20 */ blr
.global NANDGetStatus
NANDGetStatus:
/* 802E81FC 002E3E5C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E8200 002E3E60 7C 08 02 A6 */ mflr r0
/* 802E8204 002E3E64 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8208 002E3E68 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E820C 002E3E6C 7C 9F 23 78 */ mr r31, r4
/* 802E8210 002E3E70 93 C1 00 08 */ stw r30, 8(r1)
/* 802E8214 002E3E74 7C 7E 1B 78 */ mr r30, r3
/* 802E8218 002E3E78 48 00 11 D9 */ bl nandIsInitialized
/* 802E821C 002E3E7C 2C 03 00 00 */ cmpwi r3, 0
/* 802E8220 002E3E80 41 82 00 24 */ beq lbl_802E8244
/* 802E8224 002E3E84 7F C3 F3 78 */ mr r3, r30
/* 802E8228 002E3E88 7F E4 FB 78 */ mr r4, r31
/* 802E822C 002E3E8C 38 A0 00 00 */ li r5, 0
/* 802E8230 002E3E90 38 C0 00 00 */ li r6, 0
/* 802E8234 002E3E94 38 E0 00 00 */ li r7, 0
/* 802E8238 002E3E98 4B FF FD FD */ bl nandGetStatus
/* 802E823C 002E3E9C 48 00 11 CD */ bl nandConvertErrorCode
/* 802E8240 002E3EA0 48 00 00 08 */ b lbl_802E8248
lbl_802E8244:
/* 802E8244 002E3EA4 38 60 FF 80 */ li r3, -128
lbl_802E8248:
/* 802E8248 002E3EA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E824C 002E3EAC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E8250 002E3EB0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802E8254 002E3EB4 7C 08 03 A6 */ mtlr r0
/* 802E8258 002E3EB8 38 21 00 10 */ addi r1, r1, 0x10
/* 802E825C 002E3EBC 4E 80 00 20 */ blr
.global NANDPrivateGetStatusAsync
NANDPrivateGetStatusAsync:
/* 802E8260 002E3EC0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E8264 002E3EC4 7C 08 02 A6 */ mflr r0
/* 802E8268 002E3EC8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E826C 002E3ECC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E8270 002E3ED0 7C DF 33 78 */ mr r31, r6
/* 802E8274 002E3ED4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E8278 002E3ED8 7C BE 2B 78 */ mr r30, r5
/* 802E827C 002E3EDC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E8280 002E3EE0 7C 9D 23 78 */ mr r29, r4
/* 802E8284 002E3EE4 93 81 00 10 */ stw r28, 0x10(r1)
/* 802E8288 002E3EE8 7C 7C 1B 78 */ mr r28, r3
/* 802E828C 002E3EEC 48 00 11 65 */ bl nandIsInitialized
/* 802E8290 002E3EF0 2C 03 00 00 */ cmpwi r3, 0
/* 802E8294 002E3EF4 40 82 00 0C */ bne lbl_802E82A0
/* 802E8298 002E3EF8 38 60 FF 80 */ li r3, -128
/* 802E829C 002E3EFC 48 00 00 28 */ b lbl_802E82C4
lbl_802E82A0:
/* 802E82A0 002E3F00 93 DF 00 04 */ stw r30, 4(r31)
/* 802E82A4 002E3F04 7F 83 E3 78 */ mr r3, r28
/* 802E82A8 002E3F08 7F A4 EB 78 */ mr r4, r29
/* 802E82AC 002E3F0C 7F E5 FB 78 */ mr r5, r31
/* 802E82B0 002E3F10 93 BF 00 14 */ stw r29, 0x14(r31)
/* 802E82B4 002E3F14 38 C0 00 01 */ li r6, 1
/* 802E82B8 002E3F18 38 E0 00 01 */ li r7, 1
/* 802E82BC 002E3F1C 4B FF FD 79 */ bl nandGetStatus
/* 802E82C0 002E3F20 48 00 11 49 */ bl nandConvertErrorCode
lbl_802E82C4:
/* 802E82C4 002E3F24 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E82C8 002E3F28 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E82CC 002E3F2C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E82D0 002E3F30 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E82D4 002E3F34 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802E82D8 002E3F38 7C 08 03 A6 */ mtlr r0
/* 802E82DC 002E3F3C 38 21 00 20 */ addi r1, r1, 0x20
/* 802E82E0 002E3F40 4E 80 00 20 */ blr
.global NANDSetUserData
NANDSetUserData:
/* 802E82E4 002E3F44 90 83 00 00 */ stw r4, 0(r3)
/* 802E82E8 002E3F48 4E 80 00 20 */ blr
.global NANDGetUserData
NANDGetUserData:
/* 802E82EC 002E3F4C 80 63 00 00 */ lwz r3, 0(r3)
/* 802E82F0 002E3F50 4E 80 00 20 */ blr
|