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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global nandOpen
nandOpen:
/* 802E82F4 002E3F54 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 802E82F8 002E3F58 7C 08 02 A6 */ mflr r0
/* 802E82FC 002E3F5C 90 01 00 64 */ stw r0, 0x64(r1)
/* 802E8300 002E3F60 39 61 00 60 */ addi r11, r1, 0x60
/* 802E8304 002E3F64 4B ED EE 25 */ bl _savegpr_27
/* 802E8308 002E3F68 38 00 00 00 */ li r0, 0
/* 802E830C 002E3F6C 7C 9B 23 78 */ mr r27, r4
/* 802E8310 002E3F70 90 01 00 08 */ stw r0, 8(r1)
/* 802E8314 002E3F74 7C 64 1B 78 */ mr r4, r3
/* 802E8318 002E3F78 7C BC 2B 78 */ mr r28, r5
/* 802E831C 002E3F7C 7C DD 33 78 */ mr r29, r6
/* 802E8320 002E3F80 90 01 00 0C */ stw r0, 0xc(r1)
/* 802E8324 002E3F84 7C FE 3B 78 */ mr r30, r7
/* 802E8328 002E3F88 38 61 00 08 */ addi r3, r1, 8
/* 802E832C 002E3F8C 3B E0 00 00 */ li r31, 0
/* 802E8330 002E3F90 90 01 00 10 */ stw r0, 0x10(r1)
/* 802E8334 002E3F94 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8338 002E3F98 90 01 00 18 */ stw r0, 0x18(r1)
/* 802E833C 002E3F9C 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802E8340 002E3FA0 90 01 00 20 */ stw r0, 0x20(r1)
/* 802E8344 002E3FA4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E8348 002E3FA8 90 01 00 28 */ stw r0, 0x28(r1)
/* 802E834C 002E3FAC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 802E8350 002E3FB0 90 01 00 30 */ stw r0, 0x30(r1)
/* 802E8354 002E3FB4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E8358 002E3FB8 90 01 00 38 */ stw r0, 0x38(r1)
/* 802E835C 002E3FBC 90 01 00 3C */ stw r0, 0x3c(r1)
/* 802E8360 002E3FC0 90 01 00 40 */ stw r0, 0x40(r1)
/* 802E8364 002E3FC4 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E8368 002E3FC8 48 00 11 71 */ bl nandGenerateAbsPath
/* 802E836C 002E3FCC 2C 1E 00 00 */ cmpwi r30, 0
/* 802E8370 002E3FD0 40 82 00 1C */ bne lbl_802E838C
/* 802E8374 002E3FD4 38 61 00 08 */ addi r3, r1, 8
/* 802E8378 002E3FD8 48 00 0F ED */ bl nandIsPrivatePath
/* 802E837C 002E3FDC 2C 03 00 00 */ cmpwi r3, 0
/* 802E8380 002E3FE0 41 82 00 0C */ beq lbl_802E838C
/* 802E8384 002E3FE4 38 60 FF 9A */ li r3, -102
/* 802E8388 002E3FE8 48 00 00 68 */ b lbl_802E83F0
lbl_802E838C:
/* 802E838C 002E3FEC 2C 1B 00 02 */ cmpwi r27, 2
/* 802E8390 002E3FF0 41 82 00 2C */ beq lbl_802E83BC
/* 802E8394 002E3FF4 40 80 00 10 */ bge lbl_802E83A4
/* 802E8398 002E3FF8 2C 1B 00 01 */ cmpwi r27, 1
/* 802E839C 002E3FFC 40 80 00 18 */ bge lbl_802E83B4
/* 802E83A0 002E4000 48 00 00 20 */ b lbl_802E83C0
lbl_802E83A4:
/* 802E83A4 002E4004 2C 1B 00 04 */ cmpwi r27, 4
/* 802E83A8 002E4008 40 80 00 18 */ bge lbl_802E83C0
/* 802E83AC 002E400C 3B E0 00 03 */ li r31, 3
/* 802E83B0 002E4010 48 00 00 10 */ b lbl_802E83C0
lbl_802E83B4:
/* 802E83B4 002E4014 3B E0 00 01 */ li r31, 1
/* 802E83B8 002E4018 48 00 00 08 */ b lbl_802E83C0
lbl_802E83BC:
/* 802E83BC 002E401C 3B E0 00 02 */ li r31, 2
lbl_802E83C0:
/* 802E83C0 002E4020 2C 1D 00 00 */ cmpwi r29, 0
/* 802E83C4 002E4024 41 82 00 20 */ beq lbl_802E83E4
/* 802E83C8 002E4028 3C A0 80 2F */ lis r5, nandOpenCallback@ha
/* 802E83CC 002E402C 7F E4 FB 78 */ mr r4, r31
/* 802E83D0 002E4030 7F 86 E3 78 */ mr r6, r28
/* 802E83D4 002E4034 38 61 00 08 */ addi r3, r1, 8
/* 802E83D8 002E4038 38 A5 86 10 */ addi r5, r5, nandOpenCallback@l
/* 802E83DC 002E403C 4B FB D3 31 */ bl ISFS_OpenAsync
/* 802E83E0 002E4040 48 00 00 10 */ b lbl_802E83F0
lbl_802E83E4:
/* 802E83E4 002E4044 7F E4 FB 78 */ mr r4, r31
/* 802E83E8 002E4048 38 61 00 08 */ addi r3, r1, 8
/* 802E83EC 002E404C 4B FB D2 59 */ bl ISFS_Open
lbl_802E83F0:
/* 802E83F0 002E4050 39 61 00 60 */ addi r11, r1, 0x60
/* 802E83F4 002E4054 4B ED ED 81 */ bl _restgpr_27
/* 802E83F8 002E4058 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802E83FC 002E405C 7C 08 03 A6 */ mtlr r0
/* 802E8400 002E4060 38 21 00 60 */ addi r1, r1, 0x60
/* 802E8404 002E4064 4E 80 00 20 */ blr
.global NANDOpen
NANDOpen:
/* 802E8408 002E4068 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E840C 002E406C 7C 08 02 A6 */ mflr r0
/* 802E8410 002E4070 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E8414 002E4074 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E8418 002E4078 7C BF 2B 78 */ mr r31, r5
/* 802E841C 002E407C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E8420 002E4080 7C 9E 23 78 */ mr r30, r4
/* 802E8424 002E4084 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E8428 002E4088 7C 7D 1B 78 */ mr r29, r3
/* 802E842C 002E408C 48 00 0F C5 */ bl nandIsInitialized
/* 802E8430 002E4090 2C 03 00 00 */ cmpwi r3, 0
/* 802E8434 002E4094 40 82 00 0C */ bne lbl_802E8440
/* 802E8438 002E4098 38 60 FF 80 */ li r3, -128
/* 802E843C 002E409C 48 00 00 3C */ b lbl_802E8478
lbl_802E8440:
/* 802E8440 002E40A0 7F A3 EB 78 */ mr r3, r29
/* 802E8444 002E40A4 7F E4 FB 78 */ mr r4, r31
/* 802E8448 002E40A8 38 A0 00 00 */ li r5, 0
/* 802E844C 002E40AC 38 C0 00 00 */ li r6, 0
/* 802E8450 002E40B0 38 E0 00 00 */ li r7, 0
/* 802E8454 002E40B4 4B FF FE A1 */ bl nandOpen
/* 802E8458 002E40B8 2C 03 00 00 */ cmpwi r3, 0
/* 802E845C 002E40BC 41 80 00 18 */ blt lbl_802E8474
/* 802E8460 002E40C0 38 00 00 01 */ li r0, 1
/* 802E8464 002E40C4 90 7E 00 00 */ stw r3, 0(r30)
/* 802E8468 002E40C8 38 60 00 00 */ li r3, 0
/* 802E846C 002E40CC 98 1E 00 8A */ stb r0, 0x8a(r30)
/* 802E8470 002E40D0 48 00 00 08 */ b lbl_802E8478
lbl_802E8474:
/* 802E8474 002E40D4 48 00 0F 95 */ bl nandConvertErrorCode
lbl_802E8478:
/* 802E8478 002E40D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E847C 002E40DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E8480 002E40E0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E8484 002E40E4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E8488 002E40E8 7C 08 03 A6 */ mtlr r0
/* 802E848C 002E40EC 38 21 00 20 */ addi r1, r1, 0x20
/* 802E8490 002E40F0 4E 80 00 20 */ blr
.global NANDPrivateOpen
NANDPrivateOpen:
/* 802E8494 002E40F4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E8498 002E40F8 7C 08 02 A6 */ mflr r0
/* 802E849C 002E40FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E84A0 002E4100 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E84A4 002E4104 7C BF 2B 78 */ mr r31, r5
/* 802E84A8 002E4108 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E84AC 002E410C 7C 9E 23 78 */ mr r30, r4
/* 802E84B0 002E4110 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E84B4 002E4114 7C 7D 1B 78 */ mr r29, r3
/* 802E84B8 002E4118 48 00 0F 39 */ bl nandIsInitialized
/* 802E84BC 002E411C 2C 03 00 00 */ cmpwi r3, 0
/* 802E84C0 002E4120 40 82 00 0C */ bne lbl_802E84CC
/* 802E84C4 002E4124 38 60 FF 80 */ li r3, -128
/* 802E84C8 002E4128 48 00 00 3C */ b lbl_802E8504
lbl_802E84CC:
/* 802E84CC 002E412C 7F A3 EB 78 */ mr r3, r29
/* 802E84D0 002E4130 7F E4 FB 78 */ mr r4, r31
/* 802E84D4 002E4134 38 A0 00 00 */ li r5, 0
/* 802E84D8 002E4138 38 C0 00 00 */ li r6, 0
/* 802E84DC 002E413C 38 E0 00 01 */ li r7, 1
/* 802E84E0 002E4140 4B FF FE 15 */ bl nandOpen
/* 802E84E4 002E4144 2C 03 00 00 */ cmpwi r3, 0
/* 802E84E8 002E4148 41 80 00 18 */ blt lbl_802E8500
/* 802E84EC 002E414C 38 00 00 01 */ li r0, 1
/* 802E84F0 002E4150 90 7E 00 00 */ stw r3, 0(r30)
/* 802E84F4 002E4154 38 60 00 00 */ li r3, 0
/* 802E84F8 002E4158 98 1E 00 8A */ stb r0, 0x8a(r30)
/* 802E84FC 002E415C 48 00 00 08 */ b lbl_802E8504
lbl_802E8500:
/* 802E8500 002E4160 48 00 0F 09 */ bl nandConvertErrorCode
lbl_802E8504:
/* 802E8504 002E4164 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E8508 002E4168 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E850C 002E416C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E8510 002E4170 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E8514 002E4174 7C 08 03 A6 */ mtlr r0
/* 802E8518 002E4178 38 21 00 20 */ addi r1, r1, 0x20
/* 802E851C 002E417C 4E 80 00 20 */ blr
.global NANDOpenAsync
NANDOpenAsync:
/* 802E8520 002E4180 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E8524 002E4184 7C 08 02 A6 */ mflr r0
/* 802E8528 002E4188 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E852C 002E418C 39 61 00 20 */ addi r11, r1, 0x20
/* 802E8530 002E4190 4B ED EB F9 */ bl _savegpr_27
/* 802E8534 002E4194 7C 7B 1B 78 */ mr r27, r3
/* 802E8538 002E4198 7C 9C 23 78 */ mr r28, r4
/* 802E853C 002E419C 7C BD 2B 78 */ mr r29, r5
/* 802E8540 002E41A0 7C DE 33 78 */ mr r30, r6
/* 802E8544 002E41A4 7C FF 3B 78 */ mr r31, r7
/* 802E8548 002E41A8 48 00 0E A9 */ bl nandIsInitialized
/* 802E854C 002E41AC 2C 03 00 00 */ cmpwi r3, 0
/* 802E8550 002E41B0 40 82 00 0C */ bne lbl_802E855C
/* 802E8554 002E41B4 38 60 FF 80 */ li r3, -128
/* 802E8558 002E41B8 48 00 00 28 */ b lbl_802E8580
lbl_802E855C:
/* 802E855C 002E41BC 93 DF 00 04 */ stw r30, 4(r31)
/* 802E8560 002E41C0 7F 63 DB 78 */ mr r3, r27
/* 802E8564 002E41C4 7F A4 EB 78 */ mr r4, r29
/* 802E8568 002E41C8 7F E5 FB 78 */ mr r5, r31
/* 802E856C 002E41CC 93 9F 00 08 */ stw r28, 8(r31)
/* 802E8570 002E41D0 38 C0 00 01 */ li r6, 1
/* 802E8574 002E41D4 38 E0 00 00 */ li r7, 0
/* 802E8578 002E41D8 4B FF FD 7D */ bl nandOpen
/* 802E857C 002E41DC 48 00 0E 8D */ bl nandConvertErrorCode
lbl_802E8580:
/* 802E8580 002E41E0 39 61 00 20 */ addi r11, r1, 0x20
/* 802E8584 002E41E4 4B ED EB F1 */ bl _restgpr_27
/* 802E8588 002E41E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E858C 002E41EC 7C 08 03 A6 */ mtlr r0
/* 802E8590 002E41F0 38 21 00 20 */ addi r1, r1, 0x20
/* 802E8594 002E41F4 4E 80 00 20 */ blr
.global NANDPrivateOpenAsync
NANDPrivateOpenAsync:
/* 802E8598 002E41F8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E859C 002E41FC 7C 08 02 A6 */ mflr r0
/* 802E85A0 002E4200 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E85A4 002E4204 39 61 00 20 */ addi r11, r1, 0x20
/* 802E85A8 002E4208 4B ED EB 81 */ bl _savegpr_27
/* 802E85AC 002E420C 7C 7B 1B 78 */ mr r27, r3
/* 802E85B0 002E4210 7C 9C 23 78 */ mr r28, r4
/* 802E85B4 002E4214 7C BD 2B 78 */ mr r29, r5
/* 802E85B8 002E4218 7C DE 33 78 */ mr r30, r6
/* 802E85BC 002E421C 7C FF 3B 78 */ mr r31, r7
/* 802E85C0 002E4220 48 00 0E 31 */ bl nandIsInitialized
/* 802E85C4 002E4224 2C 03 00 00 */ cmpwi r3, 0
/* 802E85C8 002E4228 40 82 00 0C */ bne lbl_802E85D4
/* 802E85CC 002E422C 38 60 FF 80 */ li r3, -128
/* 802E85D0 002E4230 48 00 00 28 */ b lbl_802E85F8
lbl_802E85D4:
/* 802E85D4 002E4234 93 DF 00 04 */ stw r30, 4(r31)
/* 802E85D8 002E4238 7F 63 DB 78 */ mr r3, r27
/* 802E85DC 002E423C 7F A4 EB 78 */ mr r4, r29
/* 802E85E0 002E4240 7F E5 FB 78 */ mr r5, r31
/* 802E85E4 002E4244 93 9F 00 08 */ stw r28, 8(r31)
/* 802E85E8 002E4248 38 C0 00 01 */ li r6, 1
/* 802E85EC 002E424C 38 E0 00 01 */ li r7, 1
/* 802E85F0 002E4250 4B FF FD 05 */ bl nandOpen
/* 802E85F4 002E4254 48 00 0E 15 */ bl nandConvertErrorCode
lbl_802E85F8:
/* 802E85F8 002E4258 39 61 00 20 */ addi r11, r1, 0x20
/* 802E85FC 002E425C 4B ED EB 79 */ bl _restgpr_27
/* 802E8600 002E4260 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E8604 002E4264 7C 08 03 A6 */ mtlr r0
/* 802E8608 002E4268 38 21 00 20 */ addi r1, r1, 0x20
/* 802E860C 002E426C 4E 80 00 20 */ blr
nandOpenCallback:
/* 802E8610 002E4270 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E8614 002E4274 7C 08 02 A6 */ mflr r0
/* 802E8618 002E4278 2C 03 00 00 */ cmpwi r3, 0
/* 802E861C 002E427C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8620 002E4280 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E8624 002E4284 7C 9F 23 78 */ mr r31, r4
/* 802E8628 002E4288 41 80 00 38 */ blt lbl_802E8660
/* 802E862C 002E428C 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8630 002E4290 38 C0 00 02 */ li r6, 2
/* 802E8634 002E4294 38 00 00 01 */ li r0, 1
/* 802E8638 002E4298 90 65 00 00 */ stw r3, 0(r5)
/* 802E863C 002E429C 38 60 00 00 */ li r3, 0
/* 802E8640 002E42A0 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8644 002E42A4 98 C5 00 89 */ stb r6, 0x89(r5)
/* 802E8648 002E42A8 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E864C 002E42AC 98 05 00 8A */ stb r0, 0x8a(r5)
/* 802E8650 002E42B0 81 84 00 04 */ lwz r12, 4(r4)
/* 802E8654 002E42B4 7D 89 03 A6 */ mtctr r12
/* 802E8658 002E42B8 4E 80 04 21 */ bctrl
/* 802E865C 002E42BC 48 00 00 18 */ b lbl_802E8674
lbl_802E8660:
/* 802E8660 002E42C0 48 00 0D A9 */ bl nandConvertErrorCode
/* 802E8664 002E42C4 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8668 002E42C8 7F E4 FB 78 */ mr r4, r31
/* 802E866C 002E42CC 7D 89 03 A6 */ mtctr r12
/* 802E8670 002E42D0 4E 80 04 21 */ bctrl
lbl_802E8674:
/* 802E8674 002E42D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E8678 002E42D8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E867C 002E42DC 7C 08 03 A6 */ mtlr r0
/* 802E8680 002E42E0 38 21 00 10 */ addi r1, r1, 0x10
/* 802E8684 002E42E4 4E 80 00 20 */ blr
.global NANDClose
NANDClose:
/* 802E8688 002E42E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E868C 002E42EC 7C 08 02 A6 */ mflr r0
/* 802E8690 002E42F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8694 002E42F4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E8698 002E42F8 7C 7F 1B 78 */ mr r31, r3
/* 802E869C 002E42FC 48 00 0D 55 */ bl nandIsInitialized
/* 802E86A0 002E4300 2C 03 00 00 */ cmpwi r3, 0
/* 802E86A4 002E4304 40 82 00 0C */ bne lbl_802E86B0
/* 802E86A8 002E4308 38 60 FF 80 */ li r3, -128
/* 802E86AC 002E430C 48 00 00 34 */ b lbl_802E86E0
lbl_802E86B0:
/* 802E86B0 002E4310 88 1F 00 8A */ lbz r0, 0x8a(r31)
/* 802E86B4 002E4314 28 00 00 01 */ cmplwi r0, 1
/* 802E86B8 002E4318 41 82 00 0C */ beq lbl_802E86C4
/* 802E86BC 002E431C 38 60 FF F8 */ li r3, -8
/* 802E86C0 002E4320 48 00 00 20 */ b lbl_802E86E0
lbl_802E86C4:
/* 802E86C4 002E4324 80 7F 00 00 */ lwz r3, 0(r31)
/* 802E86C8 002E4328 4B FB D3 49 */ bl ISFS_Close
/* 802E86CC 002E432C 2C 03 00 00 */ cmpwi r3, 0
/* 802E86D0 002E4330 40 82 00 0C */ bne lbl_802E86DC
/* 802E86D4 002E4334 38 00 00 02 */ li r0, 2
/* 802E86D8 002E4338 98 1F 00 8A */ stb r0, 0x8a(r31)
lbl_802E86DC:
/* 802E86DC 002E433C 48 00 0D 2D */ bl nandConvertErrorCode
lbl_802E86E0:
/* 802E86E0 002E4340 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E86E4 002E4344 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E86E8 002E4348 7C 08 03 A6 */ mtlr r0
/* 802E86EC 002E434C 38 21 00 10 */ addi r1, r1, 0x10
/* 802E86F0 002E4350 4E 80 00 20 */ blr
.global NANDCloseAsync
NANDCloseAsync:
/* 802E86F4 002E4354 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E86F8 002E4358 7C 08 02 A6 */ mflr r0
/* 802E86FC 002E435C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E8700 002E4360 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E8704 002E4364 7C BF 2B 78 */ mr r31, r5
/* 802E8708 002E4368 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E870C 002E436C 7C 9E 23 78 */ mr r30, r4
/* 802E8710 002E4370 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E8714 002E4374 7C 7D 1B 78 */ mr r29, r3
/* 802E8718 002E4378 48 00 0C D9 */ bl nandIsInitialized
/* 802E871C 002E437C 2C 03 00 00 */ cmpwi r3, 0
/* 802E8720 002E4380 40 82 00 0C */ bne lbl_802E872C
/* 802E8724 002E4384 38 60 FF 80 */ li r3, -128
/* 802E8728 002E4388 48 00 00 38 */ b lbl_802E8760
lbl_802E872C:
/* 802E872C 002E438C 88 1D 00 8A */ lbz r0, 0x8a(r29)
/* 802E8730 002E4390 28 00 00 01 */ cmplwi r0, 1
/* 802E8734 002E4394 41 82 00 0C */ beq lbl_802E8740
/* 802E8738 002E4398 38 60 FF F8 */ li r3, -8
/* 802E873C 002E439C 48 00 00 24 */ b lbl_802E8760
lbl_802E8740:
/* 802E8740 002E43A0 93 DF 00 04 */ stw r30, 4(r31)
/* 802E8744 002E43A4 3C 80 80 2F */ lis r4, nandCloseCallback@ha
/* 802E8748 002E43A8 7F E5 FB 78 */ mr r5, r31
/* 802E874C 002E43AC 93 BF 00 08 */ stw r29, 8(r31)
/* 802E8750 002E43B0 38 84 8F 8C */ addi r4, r4, nandCloseCallback@l
/* 802E8754 002E43B4 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E8758 002E43B8 4B FB D2 BD */ bl ISFS_CloseAsync
/* 802E875C 002E43BC 48 00 0C AD */ bl nandConvertErrorCode
lbl_802E8760:
/* 802E8760 002E43C0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E8764 002E43C4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E8768 002E43C8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E876C 002E43CC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E8770 002E43D0 7C 08 03 A6 */ mtlr r0
/* 802E8774 002E43D4 38 21 00 20 */ addi r1, r1, 0x20
/* 802E8778 002E43D8 4E 80 00 20 */ blr
.global nandSafeOpenAsync
nandSafeOpenAsync:
/* 802E877C 002E43DC 39 40 00 00 */ li r10, 0
/* 802E8780 002E43E0 48 00 00 04 */ b lbl_802E8784
lbl_802E8784:
/* 802E8784 002E43E4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802E8788 002E43E8 7C 08 02 A6 */ mflr r0
/* 802E878C 002E43EC 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E8790 002E43F0 39 61 00 30 */ addi r11, r1, 0x30
/* 802E8794 002E43F4 4B ED E9 89 */ bl _savegpr_24
/* 802E8798 002E43F8 7C 78 1B 78 */ mr r24, r3
/* 802E879C 002E43FC 7C 99 23 78 */ mr r25, r4
/* 802E87A0 002E4400 7C BA 2B 78 */ mr r26, r5
/* 802E87A4 002E4404 7C DB 33 78 */ mr r27, r6
/* 802E87A8 002E4408 7C FC 3B 78 */ mr r28, r7
/* 802E87AC 002E440C 7D 1D 43 78 */ mr r29, r8
/* 802E87B0 002E4410 7D 3E 4B 78 */ mr r30, r9
/* 802E87B4 002E4414 7D 5F 53 78 */ mr r31, r10
/* 802E87B8 002E4418 48 00 0C 39 */ bl nandIsInitialized
/* 802E87BC 002E441C 2C 03 00 00 */ cmpwi r3, 0
/* 802E87C0 002E4420 40 82 00 0C */ bne lbl_802E87CC
/* 802E87C4 002E4424 38 60 FF 80 */ li r3, -128
/* 802E87C8 002E4428 48 00 00 EC */ b lbl_802E88B4
lbl_802E87CC:
/* 802E87CC 002E442C 38 00 00 00 */ li r0, 0
/* 802E87D0 002E4430 9B 59 00 88 */ stb r26, 0x88(r25)
/* 802E87D4 002E4434 7F 04 C3 78 */ mr r4, r24
/* 802E87D8 002E4438 38 79 00 08 */ addi r3, r25, 8
/* 802E87DC 002E443C 98 19 00 89 */ stb r0, 0x89(r25)
/* 802E87E0 002E4440 48 00 0C F9 */ bl nandGenerateAbsPath
/* 802E87E4 002E4444 2C 1F 00 00 */ cmpwi r31, 0
/* 802E87E8 002E4448 40 82 00 1C */ bne lbl_802E8804
/* 802E87EC 002E444C 38 79 00 08 */ addi r3, r25, 8
/* 802E87F0 002E4450 48 00 0B 75 */ bl nandIsPrivatePath
/* 802E87F4 002E4454 2C 03 00 00 */ cmpwi r3, 0
/* 802E87F8 002E4458 41 82 00 0C */ beq lbl_802E8804
/* 802E87FC 002E445C 38 60 FF FF */ li r3, -1
/* 802E8800 002E4460 48 00 00 B4 */ b lbl_802E88B4
lbl_802E8804:
/* 802E8804 002E4464 28 1A 00 01 */ cmplwi r26, 1
/* 802E8808 002E4468 40 82 00 3C */ bne lbl_802E8844
/* 802E880C 002E446C 3C A0 80 2F */ lis r5, nandReadOpenCallback@ha
/* 802E8810 002E4470 93 3E 00 08 */ stw r25, 8(r30)
/* 802E8814 002E4474 7F C6 F3 78 */ mr r6, r30
/* 802E8818 002E4478 38 79 00 08 */ addi r3, r25, 8
/* 802E881C 002E447C 93 BE 00 04 */ stw r29, 4(r30)
/* 802E8820 002E4480 38 A5 8C 60 */ addi r5, r5, nandReadOpenCallback@l
/* 802E8824 002E4484 38 80 00 01 */ li r4, 1
/* 802E8828 002E4488 4B FB CE E5 */ bl ISFS_OpenAsync
/* 802E882C 002E448C 2C 03 00 00 */ cmpwi r3, 0
/* 802E8830 002E4490 40 82 00 0C */ bne lbl_802E883C
/* 802E8834 002E4494 38 60 00 00 */ li r3, 0
/* 802E8838 002E4498 48 00 00 7C */ b lbl_802E88B4
lbl_802E883C:
/* 802E883C 002E449C 48 00 0B CD */ bl nandConvertErrorCode
/* 802E8840 002E44A0 48 00 00 74 */ b lbl_802E88B4
lbl_802E8844:
/* 802E8844 002E44A4 38 1A 00 FE */ addi r0, r26, 0xfe
/* 802E8848 002E44A8 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 802E884C 002E44AC 28 00 00 01 */ cmplwi r0, 1
/* 802E8850 002E44B0 41 81 00 60 */ bgt lbl_802E88B0
/* 802E8854 002E44B4 3B E0 00 00 */ li r31, 0
/* 802E8858 002E44B8 3C 60 80 44 */ lis r3, lbl_80445640@ha
/* 802E885C 002E44BC 3D 00 80 2F */ lis r8, nandSafeOpenCallback@ha
/* 802E8860 002E44C0 93 3E 00 08 */ stw r25, 8(r30)
/* 802E8864 002E44C4 7F C9 F3 78 */ mr r9, r30
/* 802E8868 002E44C8 38 63 56 40 */ addi r3, r3, lbl_80445640@l
/* 802E886C 002E44CC 93 BE 00 04 */ stw r29, 4(r30)
/* 802E8870 002E44D0 39 08 88 CC */ addi r8, r8, nandSafeOpenCallback@l
/* 802E8874 002E44D4 38 80 00 00 */ li r4, 0
/* 802E8878 002E44D8 38 A0 00 03 */ li r5, 3
/* 802E887C 002E44DC 93 FE 00 7C */ stw r31, 0x7c(r30)
/* 802E8880 002E44E0 38 C0 00 03 */ li r6, 3
/* 802E8884 002E44E4 38 E0 00 03 */ li r7, 3
/* 802E8888 002E44E8 93 7E 00 80 */ stw r27, 0x80(r30)
/* 802E888C 002E44EC 93 9E 00 84 */ stw r28, 0x84(r30)
/* 802E8890 002E44F0 4B FB C1 E1 */ bl ISFS_CreateDirAsync
/* 802E8894 002E44F4 2C 03 00 00 */ cmpwi r3, 0
/* 802E8898 002E44F8 40 82 00 08 */ bne lbl_802E88A0
/* 802E889C 002E44FC 48 00 00 0C */ b lbl_802E88A8
lbl_802E88A0:
/* 802E88A0 002E4500 48 00 0B 69 */ bl nandConvertErrorCode
/* 802E88A4 002E4504 7C 7F 1B 78 */ mr r31, r3
lbl_802E88A8:
/* 802E88A8 002E4508 7F E3 FB 78 */ mr r3, r31
/* 802E88AC 002E450C 48 00 00 08 */ b lbl_802E88B4
lbl_802E88B0:
/* 802E88B0 002E4510 38 60 FF F8 */ li r3, -8
lbl_802E88B4:
/* 802E88B4 002E4514 39 61 00 30 */ addi r11, r1, 0x30
/* 802E88B8 002E4518 4B ED E8 B1 */ bl _restgpr_24
/* 802E88BC 002E451C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802E88C0 002E4520 7C 08 03 A6 */ mtlr r0
/* 802E88C4 002E4524 38 21 00 30 */ addi r1, r1, 0x30
/* 802E88C8 002E4528 4E 80 00 20 */ blr
nandSafeOpenCallback:
/* 802E88CC 002E452C 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 802E88D0 002E4530 7C 08 02 A6 */ mflr r0
/* 802E88D4 002E4534 2C 03 00 00 */ cmpwi r3, 0
/* 802E88D8 002E4538 90 01 00 74 */ stw r0, 0x74(r1)
/* 802E88DC 002E453C 93 E1 00 6C */ stw r31, 0x6c(r1)
/* 802E88E0 002E4540 7C 9F 23 78 */ mr r31, r4
/* 802E88E4 002E4544 93 C1 00 68 */ stw r30, 0x68(r1)
/* 802E88E8 002E4548 93 A1 00 64 */ stw r29, 0x64(r1)
/* 802E88EC 002E454C 93 81 00 60 */ stw r28, 0x60(r1)
/* 802E88F0 002E4550 7C 7C 1B 78 */ mr r28, r3
/* 802E88F4 002E4554 40 80 00 18 */ bge lbl_802E890C
/* 802E88F8 002E4558 2C 03 FF 97 */ cmpwi r3, -105
/* 802E88FC 002E455C 40 82 03 2C */ bne lbl_802E8C28
/* 802E8900 002E4560 80 04 00 7C */ lwz r0, 0x7c(r4)
/* 802E8904 002E4564 2C 00 00 00 */ cmpwi r0, 0
/* 802E8908 002E4568 40 82 03 20 */ bne lbl_802E8C28
lbl_802E890C:
/* 802E890C 002E456C 80 04 00 7C */ lwz r0, 0x7c(r4)
/* 802E8910 002E4570 38 C0 FF 8B */ li r6, -117
/* 802E8914 002E4574 83 A4 00 08 */ lwz r29, 8(r4)
/* 802E8918 002E4578 2C 00 00 00 */ cmpwi r0, 0
/* 802E891C 002E457C 40 82 00 0C */ bne lbl_802E8928
/* 802E8920 002E4580 38 00 00 01 */ li r0, 1
/* 802E8924 002E4584 98 1D 00 89 */ stb r0, 0x89(r29)
lbl_802E8928:
/* 802E8928 002E4588 80 A4 00 7C */ lwz r5, 0x7c(r4)
/* 802E892C 002E458C 38 05 00 01 */ addi r0, r5, 1
/* 802E8930 002E4590 2C 00 00 01 */ cmpwi r0, 1
/* 802E8934 002E4594 90 04 00 7C */ stw r0, 0x7c(r4)
/* 802E8938 002E4598 40 82 00 38 */ bne lbl_802E8970
/* 802E893C 002E459C 3D 40 80 2F */ lis r10, nandSafeOpenCallback@ha
/* 802E8940 002E45A0 90 81 00 08 */ stw r4, 8(r1)
/* 802E8944 002E45A4 38 7D 00 08 */ addi r3, r29, 8
/* 802E8948 002E45A8 38 A4 00 1C */ addi r5, r4, 0x1c
/* 802E894C 002E45AC 38 C4 00 20 */ addi r6, r4, 0x20
/* 802E8950 002E45B0 38 E4 00 24 */ addi r7, r4, 0x24
/* 802E8954 002E45B4 39 04 00 28 */ addi r8, r4, 0x28
/* 802E8958 002E45B8 39 24 00 2C */ addi r9, r4, 0x2c
/* 802E895C 002E45BC 39 4A 88 CC */ addi r10, r10, nandSafeOpenCallback@l
/* 802E8960 002E45C0 38 84 00 18 */ addi r4, r4, 0x18
/* 802E8964 002E45C4 4B FB C5 F5 */ bl ISFS_GetAttrAsync
/* 802E8968 002E45C8 7C 66 1B 78 */ mr r6, r3
/* 802E896C 002E45CC 48 00 02 98 */ b lbl_802E8C04
lbl_802E8970:
/* 802E8970 002E45D0 2C 00 00 02 */ cmpwi r0, 2
/* 802E8974 002E45D4 40 82 00 24 */ bne lbl_802E8998
/* 802E8978 002E45D8 3C A0 80 2F */ lis r5, nandSafeOpenCallback@ha
/* 802E897C 002E45DC 7F E6 FB 78 */ mr r6, r31
/* 802E8980 002E45E0 38 7D 00 08 */ addi r3, r29, 8
/* 802E8984 002E45E4 38 80 00 01 */ li r4, 1
/* 802E8988 002E45E8 38 A5 88 CC */ addi r5, r5, nandSafeOpenCallback@l
/* 802E898C 002E45EC 4B FB CD 81 */ bl ISFS_OpenAsync
/* 802E8990 002E45F0 7C 66 1B 78 */ mr r6, r3
/* 802E8994 002E45F4 48 00 02 70 */ b lbl_802E8C04
lbl_802E8998:
/* 802E8998 002E45F8 2C 00 00 03 */ cmpwi r0, 3
/* 802E899C 002E45FC 40 82 00 70 */ bne lbl_802E8A0C
/* 802E89A0 002E4600 38 00 00 02 */ li r0, 2
/* 802E89A4 002E4604 98 1D 00 89 */ stb r0, 0x89(r29)
/* 802E89A8 002E4608 4B F8 5D B5 */ bl OSDisableInterrupts
/* 802E89AC 002E460C 83 CD AF 00 */ lwz r30, lbl_806401C0-_SDA_BASE_(r13)
/* 802E89B0 002E4610 38 1E 00 01 */ addi r0, r30, 1
/* 802E89B4 002E4614 90 0D AF 00 */ stw r0, lbl_806401C0-_SDA_BASE_(r13)
/* 802E89B8 002E4618 4B F8 5D CD */ bl OSRestoreInterrupts
/* 802E89BC 002E461C 93 DF 00 8C */ stw r30, 0x8c(r31)
/* 802E89C0 002E4620 3C A0 80 44 */ lis r5, lbl_80445640@ha
/* 802E89C4 002E4624 38 61 00 20 */ addi r3, r1, 0x20
/* 802E89C8 002E4628 38 8D 8A 78 */ addi r4, r13, lbl_8063DD38-_SDA_BASE_
/* 802E89CC 002E462C 93 9D 00 04 */ stw r28, 4(r29)
/* 802E89D0 002E4630 38 A5 56 40 */ addi r5, r5, lbl_80445640@l
/* 802E89D4 002E4634 80 DF 00 8C */ lwz r6, 0x8c(r31)
/* 802E89D8 002E4638 4C C6 31 82 */ crclr 6
/* 802E89DC 002E463C 4B EE 41 21 */ bl sprintf
/* 802E89E0 002E4640 3D 00 80 2F */ lis r8, nandSafeOpenCallback@ha
/* 802E89E4 002E4644 7F E9 FB 78 */ mr r9, r31
/* 802E89E8 002E4648 38 61 00 20 */ addi r3, r1, 0x20
/* 802E89EC 002E464C 38 80 00 00 */ li r4, 0
/* 802E89F0 002E4650 39 08 88 CC */ addi r8, r8, nandSafeOpenCallback@l
/* 802E89F4 002E4654 38 A0 00 03 */ li r5, 3
/* 802E89F8 002E4658 38 C0 00 00 */ li r6, 0
/* 802E89FC 002E465C 38 E0 00 00 */ li r7, 0
/* 802E8A00 002E4660 4B FB C0 71 */ bl ISFS_CreateDirAsync
/* 802E8A04 002E4664 7C 66 1B 78 */ mr r6, r3
/* 802E8A08 002E4668 48 00 01 FC */ b lbl_802E8C04
lbl_802E8A0C:
/* 802E8A0C 002E466C 2C 00 00 04 */ cmpwi r0, 4
/* 802E8A10 002E4670 40 82 00 68 */ bne lbl_802E8A78
/* 802E8A14 002E4674 38 00 00 03 */ li r0, 3
/* 802E8A18 002E4678 38 61 00 10 */ addi r3, r1, 0x10
/* 802E8A1C 002E467C 98 1D 00 89 */ stb r0, 0x89(r29)
/* 802E8A20 002E4680 38 9D 00 08 */ addi r4, r29, 8
/* 802E8A24 002E4684 48 00 07 6D */ bl nandGetRelativeName
/* 802E8A28 002E4688 3C 80 80 44 */ lis r4, lbl_8044564C@ha
/* 802E8A2C 002E468C 3C A0 80 44 */ lis r5, lbl_80445640@ha
/* 802E8A30 002E4690 80 DF 00 8C */ lwz r6, 0x8c(r31)
/* 802E8A34 002E4694 38 7D 00 48 */ addi r3, r29, 0x48
/* 802E8A38 002E4698 38 84 56 4C */ addi r4, r4, lbl_8044564C@l
/* 802E8A3C 002E469C 38 A5 56 40 */ addi r5, r5, lbl_80445640@l
/* 802E8A40 002E46A0 38 E1 00 10 */ addi r7, r1, 0x10
/* 802E8A44 002E46A4 4C C6 31 82 */ crclr 6
/* 802E8A48 002E46A8 4B EE 40 B5 */ bl sprintf
/* 802E8A4C 002E46AC 3D 00 80 2F */ lis r8, nandSafeOpenCallback@ha
/* 802E8A50 002E46B0 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 802E8A54 002E46B4 80 BF 00 24 */ lwz r5, 0x24(r31)
/* 802E8A58 002E46B8 7F E9 FB 78 */ mr r9, r31
/* 802E8A5C 002E46BC 80 DF 00 28 */ lwz r6, 0x28(r31)
/* 802E8A60 002E46C0 38 7D 00 48 */ addi r3, r29, 0x48
/* 802E8A64 002E46C4 80 FF 00 2C */ lwz r7, 0x2c(r31)
/* 802E8A68 002E46C8 39 08 88 CC */ addi r8, r8, nandSafeOpenCallback@l
/* 802E8A6C 002E46CC 4B FB CA E5 */ bl ISFS_CreateFileAsync
/* 802E8A70 002E46D0 7C 66 1B 78 */ mr r6, r3
/* 802E8A74 002E46D4 48 00 01 90 */ b lbl_802E8C04
lbl_802E8A78:
/* 802E8A78 002E46D8 2C 00 00 05 */ cmpwi r0, 5
/* 802E8A7C 002E46DC 40 82 00 68 */ bne lbl_802E8AE4
/* 802E8A80 002E46E0 38 00 00 04 */ li r0, 4
/* 802E8A84 002E46E4 98 1D 00 89 */ stb r0, 0x89(r29)
/* 802E8A88 002E46E8 88 1D 00 88 */ lbz r0, 0x88(r29)
/* 802E8A8C 002E46EC 28 00 00 02 */ cmplwi r0, 2
/* 802E8A90 002E46F0 40 82 00 24 */ bne lbl_802E8AB4
/* 802E8A94 002E46F4 3C A0 80 2F */ lis r5, nandSafeOpenCallback@ha
/* 802E8A98 002E46F8 7F E6 FB 78 */ mr r6, r31
/* 802E8A9C 002E46FC 38 7D 00 48 */ addi r3, r29, 0x48
/* 802E8AA0 002E4700 38 80 00 02 */ li r4, 2
/* 802E8AA4 002E4704 38 A5 88 CC */ addi r5, r5, nandSafeOpenCallback@l
/* 802E8AA8 002E4708 4B FB CC 65 */ bl ISFS_OpenAsync
/* 802E8AAC 002E470C 7C 66 1B 78 */ mr r6, r3
/* 802E8AB0 002E4710 48 00 01 54 */ b lbl_802E8C04
lbl_802E8AB4:
/* 802E8AB4 002E4714 28 00 00 03 */ cmplwi r0, 3
/* 802E8AB8 002E4718 40 82 00 24 */ bne lbl_802E8ADC
/* 802E8ABC 002E471C 3C A0 80 2F */ lis r5, nandSafeOpenCallback@ha
/* 802E8AC0 002E4720 7F E6 FB 78 */ mr r6, r31
/* 802E8AC4 002E4724 38 7D 00 48 */ addi r3, r29, 0x48
/* 802E8AC8 002E4728 38 80 00 03 */ li r4, 3
/* 802E8ACC 002E472C 38 A5 88 CC */ addi r5, r5, nandSafeOpenCallback@l
/* 802E8AD0 002E4730 4B FB CC 3D */ bl ISFS_OpenAsync
/* 802E8AD4 002E4734 7C 66 1B 78 */ mr r6, r3
/* 802E8AD8 002E4738 48 00 01 2C */ b lbl_802E8C04
lbl_802E8ADC:
/* 802E8ADC 002E473C 38 C0 FF 8B */ li r6, -117
/* 802E8AE0 002E4740 48 00 01 24 */ b lbl_802E8C04
lbl_802E8AE4:
/* 802E8AE4 002E4744 2C 00 00 06 */ cmpwi r0, 6
/* 802E8AE8 002E4748 40 82 00 3C */ bne lbl_802E8B24
/* 802E8AEC 002E474C 90 7D 00 00 */ stw r3, 0(r29)
/* 802E8AF0 002E4750 38 60 00 05 */ li r3, 5
/* 802E8AF4 002E4754 3C C0 80 2F */ lis r6, nandSafeOpenCallback@ha
/* 802E8AF8 002E4758 38 00 00 07 */ li r0, 7
/* 802E8AFC 002E475C 98 7D 00 89 */ stb r3, 0x89(r29)
/* 802E8B00 002E4760 7F E7 FB 78 */ mr r7, r31
/* 802E8B04 002E4764 38 C6 88 CC */ addi r6, r6, nandSafeOpenCallback@l
/* 802E8B08 002E4768 90 04 00 7C */ stw r0, 0x7c(r4)
/* 802E8B0C 002E476C 80 84 00 80 */ lwz r4, 0x80(r4)
/* 802E8B10 002E4770 80 7D 00 04 */ lwz r3, 4(r29)
/* 802E8B14 002E4774 80 BF 00 84 */ lwz r5, 0x84(r31)
/* 802E8B18 002E4778 4B FB CD 91 */ bl ISFS_ReadAsync
/* 802E8B1C 002E477C 7C 66 1B 78 */ mr r6, r3
/* 802E8B20 002E4780 48 00 00 E4 */ b lbl_802E8C04
lbl_802E8B24:
/* 802E8B24 002E4784 2C 00 00 07 */ cmpwi r0, 7
/* 802E8B28 002E4788 40 82 00 28 */ bne lbl_802E8B50
/* 802E8B2C 002E478C 3C C0 80 2F */ lis r6, nandSafeOpenCallback@ha
/* 802E8B30 002E4790 80 7D 00 04 */ lwz r3, 4(r29)
/* 802E8B34 002E4794 80 84 00 80 */ lwz r4, 0x80(r4)
/* 802E8B38 002E4798 7F E7 FB 78 */ mr r7, r31
/* 802E8B3C 002E479C 80 BF 00 84 */ lwz r5, 0x84(r31)
/* 802E8B40 002E47A0 38 C6 88 CC */ addi r6, r6, nandSafeOpenCallback@l
/* 802E8B44 002E47A4 4B FB CD 65 */ bl ISFS_ReadAsync
/* 802E8B48 002E47A8 7C 66 1B 78 */ mr r6, r3
/* 802E8B4C 002E47AC 48 00 00 B8 */ b lbl_802E8C04
lbl_802E8B50:
/* 802E8B50 002E47B0 2C 00 00 08 */ cmpwi r0, 8
/* 802E8B54 002E47B4 40 82 00 60 */ bne lbl_802E8BB4
/* 802E8B58 002E47B8 2C 03 00 00 */ cmpwi r3, 0
/* 802E8B5C 002E47BC 40 81 00 30 */ ble lbl_802E8B8C
/* 802E8B60 002E47C0 38 00 00 06 */ li r0, 6
/* 802E8B64 002E47C4 3C C0 80 2F */ lis r6, nandSafeOpenCallback@ha
/* 802E8B68 002E47C8 90 04 00 7C */ stw r0, 0x7c(r4)
/* 802E8B6C 002E47CC 7F 85 E3 78 */ mr r5, r28
/* 802E8B70 002E47D0 80 84 00 80 */ lwz r4, 0x80(r4)
/* 802E8B74 002E47D4 7F E7 FB 78 */ mr r7, r31
/* 802E8B78 002E47D8 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E8B7C 002E47DC 38 C6 88 CC */ addi r6, r6, nandSafeOpenCallback@l
/* 802E8B80 002E47E0 4B FB CD ED */ bl ISFS_WriteAsync
/* 802E8B84 002E47E4 7C 66 1B 78 */ mr r6, r3
/* 802E8B88 002E47E8 48 00 00 7C */ b lbl_802E8C04
lbl_802E8B8C:
/* 802E8B8C 002E47EC 40 82 00 78 */ bne lbl_802E8C04
/* 802E8B90 002E47F0 3C C0 80 2F */ lis r6, nandSafeOpenCallback@ha
/* 802E8B94 002E47F4 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E8B98 002E47F8 7F E7 FB 78 */ mr r7, r31
/* 802E8B9C 002E47FC 38 80 00 00 */ li r4, 0
/* 802E8BA0 002E4800 38 C6 88 CC */ addi r6, r6, nandSafeOpenCallback@l
/* 802E8BA4 002E4804 38 A0 00 00 */ li r5, 0
/* 802E8BA8 002E4808 4B FB CC 55 */ bl ISFS_SeekAsync
/* 802E8BAC 002E480C 7C 66 1B 78 */ mr r6, r3
/* 802E8BB0 002E4810 48 00 00 54 */ b lbl_802E8C04
lbl_802E8BB4:
/* 802E8BB4 002E4814 2C 00 00 09 */ cmpwi r0, 9
/* 802E8BB8 002E4818 40 82 00 4C */ bne lbl_802E8C04
/* 802E8BBC 002E481C 2C 03 00 00 */ cmpwi r3, 0
/* 802E8BC0 002E4820 40 82 00 28 */ bne lbl_802E8BE8
/* 802E8BC4 002E4824 38 00 00 03 */ li r0, 3
/* 802E8BC8 002E4828 38 60 00 00 */ li r3, 0
/* 802E8BCC 002E482C 98 1D 00 8A */ stb r0, 0x8a(r29)
/* 802E8BD0 002E4830 48 00 08 39 */ bl nandConvertErrorCode
/* 802E8BD4 002E4834 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8BD8 002E4838 7F E4 FB 78 */ mr r4, r31
/* 802E8BDC 002E483C 7D 89 03 A6 */ mtctr r12
/* 802E8BE0 002E4840 4E 80 04 21 */ bctrl
/* 802E8BE4 002E4844 48 00 00 5C */ b lbl_802E8C40
lbl_802E8BE8:
/* 802E8BE8 002E4848 7F 83 E3 78 */ mr r3, r28
/* 802E8BEC 002E484C 48 00 08 1D */ bl nandConvertErrorCode
/* 802E8BF0 002E4850 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8BF4 002E4854 7F E4 FB 78 */ mr r4, r31
/* 802E8BF8 002E4858 7D 89 03 A6 */ mtctr r12
/* 802E8BFC 002E485C 4E 80 04 21 */ bctrl
/* 802E8C00 002E4860 48 00 00 40 */ b lbl_802E8C40
lbl_802E8C04:
/* 802E8C04 002E4864 2C 06 00 00 */ cmpwi r6, 0
/* 802E8C08 002E4868 41 82 00 38 */ beq lbl_802E8C40
/* 802E8C0C 002E486C 7C C3 33 78 */ mr r3, r6
/* 802E8C10 002E4870 48 00 07 F9 */ bl nandConvertErrorCode
/* 802E8C14 002E4874 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8C18 002E4878 7F E4 FB 78 */ mr r4, r31
/* 802E8C1C 002E487C 7D 89 03 A6 */ mtctr r12
/* 802E8C20 002E4880 4E 80 04 21 */ bctrl
/* 802E8C24 002E4884 48 00 00 1C */ b lbl_802E8C40
lbl_802E8C28:
/* 802E8C28 002E4888 7F 83 E3 78 */ mr r3, r28
/* 802E8C2C 002E488C 48 00 07 DD */ bl nandConvertErrorCode
/* 802E8C30 002E4890 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8C34 002E4894 7F E4 FB 78 */ mr r4, r31
/* 802E8C38 002E4898 7D 89 03 A6 */ mtctr r12
/* 802E8C3C 002E489C 4E 80 04 21 */ bctrl
lbl_802E8C40:
/* 802E8C40 002E48A0 80 01 00 74 */ lwz r0, 0x74(r1)
/* 802E8C44 002E48A4 83 E1 00 6C */ lwz r31, 0x6c(r1)
/* 802E8C48 002E48A8 83 C1 00 68 */ lwz r30, 0x68(r1)
/* 802E8C4C 002E48AC 83 A1 00 64 */ lwz r29, 0x64(r1)
/* 802E8C50 002E48B0 83 81 00 60 */ lwz r28, 0x60(r1)
/* 802E8C54 002E48B4 7C 08 03 A6 */ mtlr r0
/* 802E8C58 002E48B8 38 21 00 70 */ addi r1, r1, 0x70
/* 802E8C5C 002E48BC 4E 80 00 20 */ blr
nandReadOpenCallback:
/* 802E8C60 002E48C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E8C64 002E48C4 7C 08 02 A6 */ mflr r0
/* 802E8C68 002E48C8 2C 03 00 00 */ cmpwi r3, 0
/* 802E8C6C 002E48CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8C70 002E48D0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E8C74 002E48D4 7C 9F 23 78 */ mr r31, r4
/* 802E8C78 002E48D8 41 80 00 38 */ blt lbl_802E8CB0
/* 802E8C7C 002E48DC 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8C80 002E48E0 38 C0 00 02 */ li r6, 2
/* 802E8C84 002E48E4 38 00 00 03 */ li r0, 3
/* 802E8C88 002E48E8 90 65 00 00 */ stw r3, 0(r5)
/* 802E8C8C 002E48EC 38 60 00 00 */ li r3, 0
/* 802E8C90 002E48F0 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8C94 002E48F4 98 C5 00 89 */ stb r6, 0x89(r5)
/* 802E8C98 002E48F8 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8C9C 002E48FC 98 05 00 8A */ stb r0, 0x8a(r5)
/* 802E8CA0 002E4900 81 84 00 04 */ lwz r12, 4(r4)
/* 802E8CA4 002E4904 7D 89 03 A6 */ mtctr r12
/* 802E8CA8 002E4908 4E 80 04 21 */ bctrl
/* 802E8CAC 002E490C 48 00 00 18 */ b lbl_802E8CC4
lbl_802E8CB0:
/* 802E8CB0 002E4910 48 00 07 59 */ bl nandConvertErrorCode
/* 802E8CB4 002E4914 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8CB8 002E4918 7F E4 FB 78 */ mr r4, r31
/* 802E8CBC 002E491C 7D 89 03 A6 */ mtctr r12
/* 802E8CC0 002E4920 4E 80 04 21 */ bctrl
lbl_802E8CC4:
/* 802E8CC4 002E4924 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E8CC8 002E4928 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E8CCC 002E492C 7C 08 03 A6 */ mtlr r0
/* 802E8CD0 002E4930 38 21 00 10 */ addi r1, r1, 0x10
/* 802E8CD4 002E4934 4E 80 00 20 */ blr
.global NANDSafeCloseAsync
NANDSafeCloseAsync:
/* 802E8CD8 002E4938 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E8CDC 002E493C 7C 08 02 A6 */ mflr r0
/* 802E8CE0 002E4940 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E8CE4 002E4944 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802E8CE8 002E4948 7C BF 2B 78 */ mr r31, r5
/* 802E8CEC 002E494C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802E8CF0 002E4950 7C 9E 23 78 */ mr r30, r4
/* 802E8CF4 002E4954 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802E8CF8 002E4958 7C 7D 1B 78 */ mr r29, r3
/* 802E8CFC 002E495C 48 00 06 F5 */ bl nandIsInitialized
/* 802E8D00 002E4960 2C 03 00 00 */ cmpwi r3, 0
/* 802E8D04 002E4964 40 82 00 0C */ bne lbl_802E8D10
/* 802E8D08 002E4968 38 60 FF 80 */ li r3, -128
/* 802E8D0C 002E496C 48 00 00 84 */ b lbl_802E8D90
lbl_802E8D10:
/* 802E8D10 002E4970 88 1D 00 8A */ lbz r0, 0x8a(r29)
/* 802E8D14 002E4974 28 00 00 03 */ cmplwi r0, 3
/* 802E8D18 002E4978 41 82 00 0C */ beq lbl_802E8D24
/* 802E8D1C 002E497C 38 60 FF F8 */ li r3, -8
/* 802E8D20 002E4980 48 00 00 70 */ b lbl_802E8D90
lbl_802E8D24:
/* 802E8D24 002E4984 88 7D 00 88 */ lbz r3, 0x88(r29)
/* 802E8D28 002E4988 28 03 00 01 */ cmplwi r3, 1
/* 802E8D2C 002E498C 40 82 00 24 */ bne lbl_802E8D50
/* 802E8D30 002E4990 93 BF 00 08 */ stw r29, 8(r31)
/* 802E8D34 002E4994 3C 80 80 2F */ lis r4, nandReadCloseCallback@ha
/* 802E8D38 002E4998 7F E5 FB 78 */ mr r5, r31
/* 802E8D3C 002E499C 93 DF 00 04 */ stw r30, 4(r31)
/* 802E8D40 002E49A0 38 84 8F 30 */ addi r4, r4, nandReadCloseCallback@l
/* 802E8D44 002E49A4 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E8D48 002E49A8 4B FB CC CD */ bl ISFS_CloseAsync
/* 802E8D4C 002E49AC 48 00 00 40 */ b lbl_802E8D8C
lbl_802E8D50:
/* 802E8D50 002E49B0 38 03 00 FE */ addi r0, r3, 0xfe
/* 802E8D54 002E49B4 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 802E8D58 002E49B8 28 00 00 01 */ cmplwi r0, 1
/* 802E8D5C 002E49BC 41 81 00 2C */ bgt lbl_802E8D88
/* 802E8D60 002E49C0 38 00 00 0A */ li r0, 0xa
/* 802E8D64 002E49C4 3C 80 80 2F */ lis r4, nandSafeCloseCallback@ha
/* 802E8D68 002E49C8 93 BF 00 08 */ stw r29, 8(r31)
/* 802E8D6C 002E49CC 7F E5 FB 78 */ mr r5, r31
/* 802E8D70 002E49D0 38 84 8D AC */ addi r4, r4, nandSafeCloseCallback@l
/* 802E8D74 002E49D4 93 DF 00 04 */ stw r30, 4(r31)
/* 802E8D78 002E49D8 90 1F 00 7C */ stw r0, 0x7c(r31)
/* 802E8D7C 002E49DC 80 7D 00 00 */ lwz r3, 0(r29)
/* 802E8D80 002E49E0 4B FB CC 95 */ bl ISFS_CloseAsync
/* 802E8D84 002E49E4 48 00 00 08 */ b lbl_802E8D8C
lbl_802E8D88:
/* 802E8D88 002E49E8 38 60 FF 9B */ li r3, -101
lbl_802E8D8C:
/* 802E8D8C 002E49EC 48 00 06 7D */ bl nandConvertErrorCode
lbl_802E8D90:
/* 802E8D90 002E49F0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E8D94 002E49F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802E8D98 002E49F8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802E8D9C 002E49FC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802E8DA0 002E4A00 7C 08 03 A6 */ mtlr r0
/* 802E8DA4 002E4A04 38 21 00 20 */ addi r1, r1, 0x20
/* 802E8DA8 002E4A08 4E 80 00 20 */ blr
nandSafeCloseCallback:
/* 802E8DAC 002E4A0C 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802E8DB0 002E4A10 7C 08 02 A6 */ mflr r0
/* 802E8DB4 002E4A14 2C 03 00 00 */ cmpwi r3, 0
/* 802E8DB8 002E4A18 90 01 00 54 */ stw r0, 0x54(r1)
/* 802E8DBC 002E4A1C 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 802E8DC0 002E4A20 7C 9F 23 78 */ mr r31, r4
/* 802E8DC4 002E4A24 40 82 01 44 */ bne lbl_802E8F08
/* 802E8DC8 002E4A28 80 A4 00 7C */ lwz r5, 0x7c(r4)
/* 802E8DCC 002E4A2C 38 C0 FF 8B */ li r6, -117
/* 802E8DD0 002E4A30 80 E4 00 08 */ lwz r7, 8(r4)
/* 802E8DD4 002E4A34 38 05 00 01 */ addi r0, r5, 1
/* 802E8DD8 002E4A38 2C 00 00 0B */ cmpwi r0, 0xb
/* 802E8DDC 002E4A3C 90 04 00 7C */ stw r0, 0x7c(r4)
/* 802E8DE0 002E4A40 40 82 00 28 */ bne lbl_802E8E08
/* 802E8DE4 002E4A44 38 00 00 06 */ li r0, 6
/* 802E8DE8 002E4A48 3C 80 80 2F */ lis r4, nandSafeCloseCallback@ha
/* 802E8DEC 002E4A4C 98 07 00 89 */ stb r0, 0x89(r7)
/* 802E8DF0 002E4A50 7F E5 FB 78 */ mr r5, r31
/* 802E8DF4 002E4A54 38 84 8D AC */ addi r4, r4, nandSafeCloseCallback@l
/* 802E8DF8 002E4A58 80 67 00 04 */ lwz r3, 4(r7)
/* 802E8DFC 002E4A5C 4B FB CC 19 */ bl ISFS_CloseAsync
/* 802E8E00 002E4A60 7C 66 1B 78 */ mr r6, r3
/* 802E8E04 002E4A64 48 00 00 E0 */ b lbl_802E8EE4
lbl_802E8E08:
/* 802E8E08 002E4A68 2C 00 00 0C */ cmpwi r0, 0xc
/* 802E8E0C 002E4A6C 40 82 00 2C */ bne lbl_802E8E38
/* 802E8E10 002E4A70 38 00 00 07 */ li r0, 7
/* 802E8E14 002E4A74 3C A0 80 2F */ lis r5, nandSafeCloseCallback@ha
/* 802E8E18 002E4A78 98 07 00 89 */ stb r0, 0x89(r7)
/* 802E8E1C 002E4A7C 7F E6 FB 78 */ mr r6, r31
/* 802E8E20 002E4A80 38 67 00 48 */ addi r3, r7, 0x48
/* 802E8E24 002E4A84 38 87 00 08 */ addi r4, r7, 8
/* 802E8E28 002E4A88 38 A5 8D AC */ addi r5, r5, nandSafeCloseCallback@l
/* 802E8E2C 002E4A8C 4B FB C4 09 */ bl ISFS_RenameAsync
/* 802E8E30 002E4A90 7C 66 1B 78 */ mr r6, r3
/* 802E8E34 002E4A94 48 00 00 B0 */ b lbl_802E8EE4
lbl_802E8E38:
/* 802E8E38 002E4A98 2C 00 00 0D */ cmpwi r0, 0xd
/* 802E8E3C 002E4A9C 40 82 00 78 */ bne lbl_802E8EB4
/* 802E8E40 002E4AA0 38 A0 00 00 */ li r5, 0
/* 802E8E44 002E4AA4 38 00 00 08 */ li r0, 8
/* 802E8E48 002E4AA8 90 A1 00 08 */ stw r5, 8(r1)
/* 802E8E4C 002E4AAC 38 61 00 08 */ addi r3, r1, 8
/* 802E8E50 002E4AB0 38 87 00 48 */ addi r4, r7, 0x48
/* 802E8E54 002E4AB4 90 A1 00 0C */ stw r5, 0xc(r1)
/* 802E8E58 002E4AB8 90 A1 00 10 */ stw r5, 0x10(r1)
/* 802E8E5C 002E4ABC 90 A1 00 14 */ stw r5, 0x14(r1)
/* 802E8E60 002E4AC0 90 A1 00 18 */ stw r5, 0x18(r1)
/* 802E8E64 002E4AC4 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 802E8E68 002E4AC8 90 A1 00 20 */ stw r5, 0x20(r1)
/* 802E8E6C 002E4ACC 90 A1 00 24 */ stw r5, 0x24(r1)
/* 802E8E70 002E4AD0 90 A1 00 28 */ stw r5, 0x28(r1)
/* 802E8E74 002E4AD4 90 A1 00 2C */ stw r5, 0x2c(r1)
/* 802E8E78 002E4AD8 90 A1 00 30 */ stw r5, 0x30(r1)
/* 802E8E7C 002E4ADC 90 A1 00 34 */ stw r5, 0x34(r1)
/* 802E8E80 002E4AE0 90 A1 00 38 */ stw r5, 0x38(r1)
/* 802E8E84 002E4AE4 90 A1 00 3C */ stw r5, 0x3c(r1)
/* 802E8E88 002E4AE8 90 A1 00 40 */ stw r5, 0x40(r1)
/* 802E8E8C 002E4AEC 90 A1 00 44 */ stw r5, 0x44(r1)
/* 802E8E90 002E4AF0 98 07 00 89 */ stb r0, 0x89(r7)
/* 802E8E94 002E4AF4 48 00 07 0D */ bl nandGetParentDirectory
/* 802E8E98 002E4AF8 3C 80 80 2F */ lis r4, nandSafeCloseCallback@ha
/* 802E8E9C 002E4AFC 7F E5 FB 78 */ mr r5, r31
/* 802E8EA0 002E4B00 38 61 00 08 */ addi r3, r1, 8
/* 802E8EA4 002E4B04 38 84 8D AC */ addi r4, r4, nandSafeCloseCallback@l
/* 802E8EA8 002E4B08 4B FB C2 BD */ bl ISFS_DeleteAsync
/* 802E8EAC 002E4B0C 7C 66 1B 78 */ mr r6, r3
/* 802E8EB0 002E4B10 48 00 00 34 */ b lbl_802E8EE4
lbl_802E8EB4:
/* 802E8EB4 002E4B14 2C 00 00 0E */ cmpwi r0, 0xe
/* 802E8EB8 002E4B18 40 82 00 2C */ bne lbl_802E8EE4
/* 802E8EBC 002E4B1C 38 80 00 09 */ li r4, 9
/* 802E8EC0 002E4B20 38 00 00 04 */ li r0, 4
/* 802E8EC4 002E4B24 98 87 00 89 */ stb r4, 0x89(r7)
/* 802E8EC8 002E4B28 98 07 00 8A */ stb r0, 0x8a(r7)
/* 802E8ECC 002E4B2C 48 00 05 3D */ bl nandConvertErrorCode
/* 802E8ED0 002E4B30 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8ED4 002E4B34 7F E4 FB 78 */ mr r4, r31
/* 802E8ED8 002E4B38 7D 89 03 A6 */ mtctr r12
/* 802E8EDC 002E4B3C 4E 80 04 21 */ bctrl
/* 802E8EE0 002E4B40 48 00 00 3C */ b lbl_802E8F1C
lbl_802E8EE4:
/* 802E8EE4 002E4B44 2C 06 00 00 */ cmpwi r6, 0
/* 802E8EE8 002E4B48 41 82 00 34 */ beq lbl_802E8F1C
/* 802E8EEC 002E4B4C 7C C3 33 78 */ mr r3, r6
/* 802E8EF0 002E4B50 48 00 05 19 */ bl nandConvertErrorCode
/* 802E8EF4 002E4B54 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8EF8 002E4B58 7F E4 FB 78 */ mr r4, r31
/* 802E8EFC 002E4B5C 7D 89 03 A6 */ mtctr r12
/* 802E8F00 002E4B60 4E 80 04 21 */ bctrl
/* 802E8F04 002E4B64 48 00 00 18 */ b lbl_802E8F1C
lbl_802E8F08:
/* 802E8F08 002E4B68 48 00 05 01 */ bl nandConvertErrorCode
/* 802E8F0C 002E4B6C 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8F10 002E4B70 7F E4 FB 78 */ mr r4, r31
/* 802E8F14 002E4B74 7D 89 03 A6 */ mtctr r12
/* 802E8F18 002E4B78 4E 80 04 21 */ bctrl
lbl_802E8F1C:
/* 802E8F1C 002E4B7C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 802E8F20 002E4B80 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 802E8F24 002E4B84 7C 08 03 A6 */ mtlr r0
/* 802E8F28 002E4B88 38 21 00 50 */ addi r1, r1, 0x50
/* 802E8F2C 002E4B8C 4E 80 00 20 */ blr
nandReadCloseCallback:
/* 802E8F30 002E4B90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E8F34 002E4B94 7C 08 02 A6 */ mflr r0
/* 802E8F38 002E4B98 2C 03 00 00 */ cmpwi r3, 0
/* 802E8F3C 002E4B9C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8F40 002E4BA0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E8F44 002E4BA4 7C 9F 23 78 */ mr r31, r4
/* 802E8F48 002E4BA8 40 82 00 1C */ bne lbl_802E8F64
/* 802E8F4C 002E4BAC 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8F50 002E4BB0 38 C0 00 07 */ li r6, 7
/* 802E8F54 002E4BB4 38 00 00 04 */ li r0, 4
/* 802E8F58 002E4BB8 98 C5 00 89 */ stb r6, 0x89(r5)
/* 802E8F5C 002E4BBC 80 84 00 08 */ lwz r4, 8(r4)
/* 802E8F60 002E4BC0 98 04 00 8A */ stb r0, 0x8a(r4)
lbl_802E8F64:
/* 802E8F64 002E4BC4 48 00 04 A5 */ bl nandConvertErrorCode
/* 802E8F68 002E4BC8 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8F6C 002E4BCC 7F E4 FB 78 */ mr r4, r31
/* 802E8F70 002E4BD0 7D 89 03 A6 */ mtctr r12
/* 802E8F74 002E4BD4 4E 80 04 21 */ bctrl
/* 802E8F78 002E4BD8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E8F7C 002E4BDC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E8F80 002E4BE0 7C 08 03 A6 */ mtlr r0
/* 802E8F84 002E4BE4 38 21 00 10 */ addi r1, r1, 0x10
/* 802E8F88 002E4BE8 4E 80 00 20 */ blr
nandCloseCallback:
/* 802E8F8C 002E4BEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E8F90 002E4BF0 7C 08 02 A6 */ mflr r0
/* 802E8F94 002E4BF4 2C 03 00 00 */ cmpwi r3, 0
/* 802E8F98 002E4BF8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E8F9C 002E4BFC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E8FA0 002E4C00 7C 9F 23 78 */ mr r31, r4
/* 802E8FA4 002E4C04 40 82 00 1C */ bne lbl_802E8FC0
/* 802E8FA8 002E4C08 80 A4 00 08 */ lwz r5, 8(r4)
/* 802E8FAC 002E4C0C 38 C0 00 07 */ li r6, 7
/* 802E8FB0 002E4C10 38 00 00 02 */ li r0, 2
/* 802E8FB4 002E4C14 98 C5 00 89 */ stb r6, 0x89(r5)
/* 802E8FB8 002E4C18 80 84 00 08 */ lwz r4, 8(r4)
/* 802E8FBC 002E4C1C 98 04 00 8A */ stb r0, 0x8a(r4)
lbl_802E8FC0:
/* 802E8FC0 002E4C20 48 00 04 49 */ bl nandConvertErrorCode
/* 802E8FC4 002E4C24 81 9F 00 04 */ lwz r12, 4(r31)
/* 802E8FC8 002E4C28 7F E4 FB 78 */ mr r4, r31
/* 802E8FCC 002E4C2C 7D 89 03 A6 */ mtctr r12
/* 802E8FD0 002E4C30 4E 80 04 21 */ bctrl
/* 802E8FD4 002E4C34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E8FD8 002E4C38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802E8FDC 002E4C3C 7C 08 03 A6 */ mtlr r0
/* 802E8FE0 002E4C40 38 21 00 10 */ addi r1, r1, 0x10
/* 802E8FE4 002E4C44 4E 80 00 20 */ blr
|