summaryrefslogtreecommitdiff
path: root/asm/SDK/NAND/nand.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/NAND/nand.s')
-rw-r--r--asm/SDK/NAND/nand.s1092
1 files changed, 1092 insertions, 0 deletions
diff --git a/asm/SDK/NAND/nand.s b/asm/SDK/NAND/nand.s
new file mode 100644
index 0000000..d223a48
--- /dev/null
+++ b/asm/SDK/NAND/nand.s
@@ -0,0 +1,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