.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