diff options
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/fs.s | 1474 | ||||
-rw-r--r-- | asm/SDK/ipcProfile.s | 133 | ||||
-rw-r--r-- | asm/SDK/ipcclt.s | 46 | ||||
-rw-r--r-- | asm/SDK/memory.s | 373 |
4 files changed, 2003 insertions, 23 deletions
diff --git a/asm/SDK/fs.s b/asm/SDK/fs.s new file mode 100644 index 0000000..f3d27b5 --- /dev/null +++ b/asm/SDK/fs.s @@ -0,0 +1,1474 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ISFS_OpenLib
+ISFS_OpenLib:
+/* 802A46EC 002A034C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A46F0 002A0350 7C 08 02 A6 */ mflr r0
+/* 802A46F4 002A0354 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A46F8 002A0358 80 0D 89 94 */ lwz r0, lbl_8063DC54-_SDA_BASE_(r13)
+/* 802A46FC 002A035C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A4700 002A0360 3B E0 00 00 */ li r31, 0
+/* 802A4704 002A0364 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4708 002A0368 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A470C 002A036C 41 82 00 14 */ beq lbl_802A4720
+/* 802A4710 002A0370 4B FF E1 E5 */ bl IPCGetBufferLo
+/* 802A4714 002A0374 90 6D AE 20 */ stw r3, lbl_806400E0-_SDA_BASE_(r13)
+/* 802A4718 002A0378 4B FF E1 D5 */ bl IPCGetBufferHi
+/* 802A471C 002A037C 90 6D AE 24 */ stw r3, lbl_806400E4-_SDA_BASE_(r13)
+lbl_802A4720:
+/* 802A4720 002A0380 80 6D AE 20 */ lwz r3, lbl_806400E0-_SDA_BASE_(r13)
+/* 802A4724 002A0384 80 0D 89 94 */ lwz r0, lbl_8063DC54-_SDA_BASE_(r13)
+/* 802A4728 002A0388 38 63 00 1F */ addi r3, r3, 0x1f
+/* 802A472C 002A038C 54 63 00 34 */ rlwinm r3, r3, 0, 0, 0x1a
+/* 802A4730 002A0390 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4734 002A0394 90 6D AE 18 */ stw r3, lbl_806400D8-_SDA_BASE_(r13)
+/* 802A4738 002A0398 41 82 00 2C */ beq lbl_802A4764
+/* 802A473C 002A039C 80 0D AE 24 */ lwz r0, lbl_806400E4-_SDA_BASE_(r13)
+/* 802A4740 002A03A0 38 83 00 40 */ addi r4, r3, 0x40
+/* 802A4744 002A03A4 7C 04 00 40 */ cmplw r4, r0
+/* 802A4748 002A03A8 40 81 00 1C */ ble lbl_802A4764
+/* 802A474C 002A03AC 3C 60 80 44 */ lis r3, lbl_8043BF90@ha
+/* 802A4750 002A03B0 38 63 BF 90 */ addi r3, r3, lbl_8043BF90@l
+/* 802A4754 002A03B4 4C C6 31 82 */ crclr 6
+/* 802A4758 002A03B8 4B D6 33 6D */ bl func_80007AC4
+/* 802A475C 002A03BC 3B E0 FF EA */ li r31, -22
+/* 802A4760 002A03C0 48 00 00 98 */ b lbl_802A47F8
+lbl_802A4764:
+/* 802A4764 002A03C4 38 8D 89 98 */ addi r4, r13, lbl_8063DC58-_SDA_BASE_
+/* 802A4768 002A03C8 4B F2 9B 69 */ bl strcpy
+/* 802A476C 002A03CC 80 6D AE 18 */ lwz r3, lbl_806400D8-_SDA_BASE_(r13)
+/* 802A4770 002A03D0 38 80 00 00 */ li r4, 0
+/* 802A4774 002A03D4 4B FF E9 E5 */ bl IOS_Open
+/* 802A4778 002A03D8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A477C 002A03DC 90 6D 89 90 */ stw r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4780 002A03E0 40 80 00 0C */ bge lbl_802A478C
+/* 802A4784 002A03E4 7C 7F 1B 78 */ mr r31, r3
+/* 802A4788 002A03E8 48 00 00 70 */ b lbl_802A47F8
+lbl_802A478C:
+/* 802A478C 002A03EC 80 8D 89 94 */ lwz r4, lbl_8063DC54-_SDA_BASE_(r13)
+/* 802A4790 002A03F0 83 CD AE 18 */ lwz r30, lbl_806400D8-_SDA_BASE_(r13)
+/* 802A4794 002A03F4 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4798 002A03F8 41 82 00 2C */ beq lbl_802A47C4
+/* 802A479C 002A03FC 80 0D AE 24 */ lwz r0, lbl_806400E4-_SDA_BASE_(r13)
+/* 802A47A0 002A0400 38 7E 15 40 */ addi r3, r30, 0x1540
+/* 802A47A4 002A0404 7C 03 00 40 */ cmplw r3, r0
+/* 802A47A8 002A0408 40 81 00 1C */ ble lbl_802A47C4
+/* 802A47AC 002A040C 3C 60 80 44 */ lis r3, lbl_8043BF90@ha
+/* 802A47B0 002A0410 38 63 BF 90 */ addi r3, r3, lbl_8043BF90@l
+/* 802A47B4 002A0414 4C C6 31 82 */ crclr 6
+/* 802A47B8 002A0418 4B D6 33 0D */ bl func_80007AC4
+/* 802A47BC 002A041C 3B E0 FF EA */ li r31, -22
+/* 802A47C0 002A0420 48 00 00 38 */ b lbl_802A47F8
+lbl_802A47C4:
+/* 802A47C4 002A0424 2C 04 00 00 */ cmpwi r4, 0
+/* 802A47C8 002A0428 41 82 00 14 */ beq lbl_802A47DC
+/* 802A47CC 002A042C 38 7E 15 40 */ addi r3, r30, 0x1540
+/* 802A47D0 002A0430 4B FF E1 2D */ bl IPCSetBufferLo
+/* 802A47D4 002A0434 38 00 00 00 */ li r0, 0
+/* 802A47D8 002A0438 90 0D 89 94 */ stw r0, lbl_8063DC54-_SDA_BASE_(r13)
+lbl_802A47DC:
+/* 802A47DC 002A043C 7F C3 F3 78 */ mr r3, r30
+/* 802A47E0 002A0440 38 80 15 40 */ li r4, 0x1540
+/* 802A47E4 002A0444 4B FF F8 21 */ bl iosCreateHeap
+/* 802A47E8 002A0448 2C 03 00 00 */ cmpwi r3, 0
+/* 802A47EC 002A044C 90 6D AE 28 */ stw r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A47F0 002A0450 40 80 00 08 */ bge lbl_802A47F8
+/* 802A47F4 002A0454 3B E0 FF EA */ li r31, -22
+lbl_802A47F8:
+/* 802A47F8 002A0458 7F E3 FB 78 */ mr r3, r31
+/* 802A47FC 002A045C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A4800 002A0460 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A4804 002A0464 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A4808 002A0468 7C 08 03 A6 */ mtlr r0
+/* 802A480C 002A046C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A4810 002A0470 4E 80 00 20 */ blr
+_isfsFuncCb:
+/* 802A4814 002A0474 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A4818 002A0478 7C 08 02 A6 */ mflr r0
+/* 802A481C 002A047C 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 802A4820 002A0480 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A4824 002A0484 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A4828 002A0488 7C 9F 23 78 */ mr r31, r4
+/* 802A482C 002A048C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A4830 002A0490 7C 7E 1B 78 */ mr r30, r3
+/* 802A4834 002A0494 41 84 00 F4 */ blt cr1, lbl_802A4928
+/* 802A4838 002A0498 80 04 01 08 */ lwz r0, 0x108(r4)
+/* 802A483C 002A049C 2C 00 00 03 */ cmpwi r0, 3
+/* 802A4840 002A04A0 41 82 00 5C */ beq lbl_802A489C
+/* 802A4844 002A04A4 40 80 00 14 */ bge lbl_802A4858
+/* 802A4848 002A04A8 2C 00 00 01 */ cmpwi r0, 1
+/* 802A484C 002A04AC 41 82 00 18 */ beq lbl_802A4864
+/* 802A4850 002A04B0 40 80 00 28 */ bge lbl_802A4878
+/* 802A4854 002A04B4 48 00 00 D4 */ b lbl_802A4928
+lbl_802A4858:
+/* 802A4858 002A04B8 2C 00 00 05 */ cmpwi r0, 5
+/* 802A485C 002A04BC 40 80 00 CC */ bge lbl_802A4928
+/* 802A4860 002A04C0 48 00 00 94 */ b lbl_802A48F4
+lbl_802A4864:
+/* 802A4864 002A04C4 40 86 00 C4 */ bne cr1, lbl_802A4928
+/* 802A4868 002A04C8 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A486C 002A04CC 38 A0 00 1C */ li r5, 0x1c
+/* 802A4870 002A04D0 4B D5 F7 91 */ bl memcpy
+/* 802A4874 002A04D4 48 00 00 B4 */ b lbl_802A4928
+lbl_802A4878:
+/* 802A4878 002A04D8 40 86 00 B0 */ bne cr1, lbl_802A4928
+/* 802A487C 002A04DC 38 04 00 3F */ addi r0, r4, 0x3f
+/* 802A4880 002A04E0 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A4884 002A04E4 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
+/* 802A4888 002A04E8 38 04 00 5F */ addi r0, r4, 0x5f
+/* 802A488C 002A04EC 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
+/* 802A4890 002A04F0 80 04 00 00 */ lwz r0, 0(r4)
+/* 802A4894 002A04F4 90 03 00 00 */ stw r0, 0(r3)
+/* 802A4898 002A04F8 48 00 00 90 */ b lbl_802A4928
+lbl_802A489C:
+/* 802A489C 002A04FC 40 86 00 8C */ bne cr1, lbl_802A4928
+/* 802A48A0 002A0500 38 04 00 5F */ addi r0, r4, 0x5f
+/* 802A48A4 002A0504 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A48A8 002A0508 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
+/* 802A48AC 002A050C 80 05 00 00 */ lwz r0, 0(r5)
+/* 802A48B0 002A0510 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48B4 002A0514 A0 05 00 04 */ lhz r0, 4(r5)
+/* 802A48B8 002A0518 80 64 01 10 */ lwz r3, 0x110(r4)
+/* 802A48BC 002A051C B0 03 00 00 */ sth r0, 0(r3)
+/* 802A48C0 002A0520 88 05 00 49 */ lbz r0, 0x49(r5)
+/* 802A48C4 002A0524 80 64 01 14 */ lwz r3, 0x114(r4)
+/* 802A48C8 002A0528 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48CC 002A052C 88 05 00 46 */ lbz r0, 0x46(r5)
+/* 802A48D0 002A0530 80 64 01 18 */ lwz r3, 0x118(r4)
+/* 802A48D4 002A0534 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48D8 002A0538 88 05 00 47 */ lbz r0, 0x47(r5)
+/* 802A48DC 002A053C 80 64 01 1C */ lwz r3, 0x11c(r4)
+/* 802A48E0 002A0540 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48E4 002A0544 88 05 00 48 */ lbz r0, 0x48(r5)
+/* 802A48E8 002A0548 80 64 01 20 */ lwz r3, 0x120(r4)
+/* 802A48EC 002A054C 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48F0 002A0550 48 00 00 38 */ b lbl_802A4928
+lbl_802A48F4:
+/* 802A48F4 002A0554 40 86 00 34 */ bne cr1, lbl_802A4928
+/* 802A48F8 002A0558 38 04 00 3F */ addi r0, r4, 0x3f
+/* 802A48FC 002A055C 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A4900 002A0560 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
+/* 802A4904 002A0564 38 05 00 5F */ addi r0, r5, 0x5f
+/* 802A4908 002A0568 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a
+/* 802A490C 002A056C 80 A6 00 00 */ lwz r5, 0(r6)
+/* 802A4910 002A0570 38 06 00 23 */ addi r0, r6, 0x23
+/* 802A4914 002A0574 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a
+/* 802A4918 002A0578 90 A3 00 00 */ stw r5, 0(r3)
+/* 802A491C 002A057C 80 06 00 00 */ lwz r0, 0(r6)
+/* 802A4920 002A0580 80 64 01 10 */ lwz r3, 0x110(r4)
+/* 802A4924 002A0584 90 03 00 00 */ stw r0, 0(r3)
+lbl_802A4928:
+/* 802A4928 002A0588 38 00 00 00 */ li r0, 0
+/* 802A492C 002A058C 90 0D AE 1C */ stw r0, lbl_806400DC-_SDA_BASE_(r13)
+/* 802A4930 002A0590 81 9F 01 00 */ lwz r12, 0x100(r31)
+/* 802A4934 002A0594 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A4938 002A0598 41 82 00 14 */ beq lbl_802A494C
+/* 802A493C 002A059C 7F C3 F3 78 */ mr r3, r30
+/* 802A4940 002A05A0 80 9F 01 04 */ lwz r4, 0x104(r31)
+/* 802A4944 002A05A4 7D 89 03 A6 */ mtctr r12
+/* 802A4948 002A05A8 4E 80 04 21 */ bctrl
+lbl_802A494C:
+/* 802A494C 002A05AC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A4950 002A05B0 41 82 00 10 */ beq lbl_802A4960
+/* 802A4954 002A05B4 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4958 002A05B8 7F E4 FB 78 */ mr r4, r31
+/* 802A495C 002A05BC 4B FF F9 E1 */ bl iosFree
+lbl_802A4960:
+/* 802A4960 002A05C0 7F C3 F3 78 */ mr r3, r30
+/* 802A4964 002A05C4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A4968 002A05C8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A496C 002A05CC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A4970 002A05D0 7C 08 03 A6 */ mtlr r0
+/* 802A4974 002A05D4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A4978 002A05D8 4E 80 00 20 */ blr
+
+.global ISFS_CreateDir
+ISFS_CreateDir:
+/* 802A497C 002A05DC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4980 002A05E0 7C 08 02 A6 */ mflr r0
+/* 802A4984 002A05E4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4988 002A05E8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A498C 002A05EC 4B F2 27 95 */ bl _savegpr_25
+/* 802A4990 002A05F0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4994 002A05F4 7C 79 1B 78 */ mr r25, r3
+/* 802A4998 002A05F8 7C 9A 23 78 */ mr r26, r4
+/* 802A499C 002A05FC 7C BB 2B 78 */ mr r27, r5
+/* 802A49A0 002A0600 7C DC 33 78 */ mr r28, r6
+/* 802A49A4 002A0604 7C FD 3B 78 */ mr r29, r7
+/* 802A49A8 002A0608 3B C0 00 00 */ li r30, 0
+/* 802A49AC 002A060C 41 82 00 24 */ beq lbl_802A49D0
+/* 802A49B0 002A0610 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A49B4 002A0614 2C 00 00 00 */ cmpwi r0, 0
+/* 802A49B8 002A0618 41 80 00 18 */ blt lbl_802A49D0
+/* 802A49BC 002A061C 38 80 00 40 */ li r4, 0x40
+/* 802A49C0 002A0620 4B FF DF 45 */ bl strnlen
+/* 802A49C4 002A0624 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A49C8 002A0628 7C 7F 1B 78 */ mr r31, r3
+/* 802A49CC 002A062C 40 82 00 0C */ bne lbl_802A49D8
+lbl_802A49D0:
+/* 802A49D0 002A0630 3B E0 FF 9B */ li r31, -101
+/* 802A49D4 002A0634 48 00 00 68 */ b lbl_802A4A3C
+lbl_802A49D8:
+/* 802A49D8 002A0638 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A49DC 002A063C 38 80 01 40 */ li r4, 0x140
+/* 802A49E0 002A0640 38 A0 00 20 */ li r5, 0x20
+/* 802A49E4 002A0644 4B FF F9 55 */ bl iosAllocAligned
+/* 802A49E8 002A0648 2C 03 00 00 */ cmpwi r3, 0
+/* 802A49EC 002A064C 7C 7E 1B 78 */ mr r30, r3
+/* 802A49F0 002A0650 40 82 00 0C */ bne lbl_802A49FC
+/* 802A49F4 002A0654 3B E0 FF EA */ li r31, -22
+/* 802A49F8 002A0658 48 00 00 44 */ b lbl_802A4A3C
+lbl_802A49FC:
+/* 802A49FC 002A065C 7F 24 CB 78 */ mr r4, r25
+/* 802A4A00 002A0660 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4A04 002A0664 38 63 00 06 */ addi r3, r3, 6
+/* 802A4A08 002A0668 4B D5 F5 F9 */ bl memcpy
+/* 802A4A0C 002A066C 9B 5E 00 49 */ stb r26, 0x49(r30)
+/* 802A4A10 002A0670 7F C5 F3 78 */ mr r5, r30
+/* 802A4A14 002A0674 38 80 00 03 */ li r4, 3
+/* 802A4A18 002A0678 38 C0 00 4C */ li r6, 0x4c
+/* 802A4A1C 002A067C 9B 7E 00 46 */ stb r27, 0x46(r30)
+/* 802A4A20 002A0680 38 E0 00 00 */ li r7, 0
+/* 802A4A24 002A0684 39 00 00 00 */ li r8, 0
+/* 802A4A28 002A0688 9B 9E 00 47 */ stb r28, 0x47(r30)
+/* 802A4A2C 002A068C 9B BE 00 48 */ stb r29, 0x48(r30)
+/* 802A4A30 002A0690 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4A34 002A0694 4B FF F0 BD */ bl IOS_Ioctl
+/* 802A4A38 002A0698 7C 7F 1B 78 */ mr r31, r3
+lbl_802A4A3C:
+/* 802A4A3C 002A069C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A4A40 002A06A0 41 82 00 14 */ beq lbl_802A4A54
+/* 802A4A44 002A06A4 41 82 00 10 */ beq lbl_802A4A54
+/* 802A4A48 002A06A8 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4A4C 002A06AC 7F C4 F3 78 */ mr r4, r30
+/* 802A4A50 002A06B0 4B FF F8 ED */ bl iosFree
+lbl_802A4A54:
+/* 802A4A54 002A06B4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4A58 002A06B8 7F E3 FB 78 */ mr r3, r31
+/* 802A4A5C 002A06BC 4B F2 27 11 */ bl _restgpr_25
+/* 802A4A60 002A06C0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4A64 002A06C4 7C 08 03 A6 */ mtlr r0
+/* 802A4A68 002A06C8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4A6C 002A06CC 4E 80 00 20 */ blr
+
+.global ISFS_CreateDirAsync
+ISFS_CreateDirAsync:
+/* 802A4A70 002A06D0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4A74 002A06D4 7C 08 02 A6 */ mflr r0
+/* 802A4A78 002A06D8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4A7C 002A06DC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4A80 002A06E0 4B F2 26 99 */ bl _savegpr_23
+/* 802A4A84 002A06E4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4A88 002A06E8 7C 77 1B 78 */ mr r23, r3
+/* 802A4A8C 002A06EC 7C 98 23 78 */ mr r24, r4
+/* 802A4A90 002A06F0 7C B9 2B 78 */ mr r25, r5
+/* 802A4A94 002A06F4 7C DA 33 78 */ mr r26, r6
+/* 802A4A98 002A06F8 7C FB 3B 78 */ mr r27, r7
+/* 802A4A9C 002A06FC 7D 1C 43 78 */ mr r28, r8
+/* 802A4AA0 002A0700 7D 3D 4B 78 */ mr r29, r9
+/* 802A4AA4 002A0704 41 82 00 24 */ beq lbl_802A4AC8
+/* 802A4AA8 002A0708 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4AAC 002A070C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4AB0 002A0710 41 80 00 18 */ blt lbl_802A4AC8
+/* 802A4AB4 002A0714 38 80 00 40 */ li r4, 0x40
+/* 802A4AB8 002A0718 4B FF DE 4D */ bl strnlen
+/* 802A4ABC 002A071C 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4AC0 002A0720 7C 7F 1B 78 */ mr r31, r3
+/* 802A4AC4 002A0724 40 82 00 0C */ bne lbl_802A4AD0
+lbl_802A4AC8:
+/* 802A4AC8 002A0728 38 60 FF 9B */ li r3, -101
+/* 802A4ACC 002A072C 48 00 00 80 */ b lbl_802A4B4C
+lbl_802A4AD0:
+/* 802A4AD0 002A0730 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4AD4 002A0734 38 80 01 40 */ li r4, 0x140
+/* 802A4AD8 002A0738 38 A0 00 20 */ li r5, 0x20
+/* 802A4ADC 002A073C 4B FF F8 5D */ bl iosAllocAligned
+/* 802A4AE0 002A0740 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4AE4 002A0744 7C 7E 1B 78 */ mr r30, r3
+/* 802A4AE8 002A0748 40 82 00 0C */ bne lbl_802A4AF4
+/* 802A4AEC 002A074C 38 60 FF 8A */ li r3, -118
+/* 802A4AF0 002A0750 48 00 00 5C */ b lbl_802A4B4C
+lbl_802A4AF4:
+/* 802A4AF4 002A0754 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A4AF8 002A0758 38 00 00 00 */ li r0, 0
+/* 802A4AFC 002A075C 7E E4 BB 78 */ mr r4, r23
+/* 802A4B00 002A0760 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4B04 002A0764 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A4B08 002A0768 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A4B0C 002A076C 38 63 00 06 */ addi r3, r3, 6
+/* 802A4B10 002A0770 4B D5 F4 F1 */ bl memcpy
+/* 802A4B14 002A0774 9B 1E 00 49 */ stb r24, 0x49(r30)
+/* 802A4B18 002A0778 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A4B1C 002A077C 7F C5 F3 78 */ mr r5, r30
+/* 802A4B20 002A0780 7F CA F3 78 */ mr r10, r30
+/* 802A4B24 002A0784 9B 3E 00 46 */ stb r25, 0x46(r30)
+/* 802A4B28 002A0788 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A4B2C 002A078C 38 80 00 03 */ li r4, 3
+/* 802A4B30 002A0790 38 C0 00 4C */ li r6, 0x4c
+/* 802A4B34 002A0794 9B 5E 00 47 */ stb r26, 0x47(r30)
+/* 802A4B38 002A0798 38 E0 00 00 */ li r7, 0
+/* 802A4B3C 002A079C 39 00 00 00 */ li r8, 0
+/* 802A4B40 002A07A0 9B 7E 00 48 */ stb r27, 0x48(r30)
+/* 802A4B44 002A07A4 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4B48 002A07A8 4B FF EE 71 */ bl IOS_IoctlAsync
+lbl_802A4B4C:
+/* 802A4B4C 002A07AC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4B50 002A07B0 4B F2 26 15 */ bl _restgpr_23
+/* 802A4B54 002A07B4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4B58 002A07B8 7C 08 03 A6 */ mtlr r0
+/* 802A4B5C 002A07BC 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4B60 002A07C0 4E 80 00 20 */ blr
+
+.global ISFS_ReadDir
+ISFS_ReadDir:
+/* 802A4B64 002A07C4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4B68 002A07C8 7C 08 02 A6 */ mflr r0
+/* 802A4B6C 002A07CC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4B70 002A07D0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A4B74 002A07D4 4B F2 25 B1 */ bl _savegpr_26
+/* 802A4B78 002A07D8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4B7C 002A07DC 7C 7A 1B 78 */ mr r26, r3
+/* 802A4B80 002A07E0 7C 9B 23 78 */ mr r27, r4
+/* 802A4B84 002A07E4 7C BC 2B 78 */ mr r28, r5
+/* 802A4B88 002A07E8 3B A0 00 00 */ li r29, 0
+/* 802A4B8C 002A07EC 41 82 00 34 */ beq lbl_802A4BC0
+/* 802A4B90 002A07F0 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4B94 002A07F4 41 82 00 2C */ beq lbl_802A4BC0
+/* 802A4B98 002A07F8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4B9C 002A07FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4BA0 002A0800 41 80 00 20 */ blt lbl_802A4BC0
+/* 802A4BA4 002A0804 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A4BA8 002A0808 40 82 00 18 */ bne lbl_802A4BC0
+/* 802A4BAC 002A080C 38 80 00 40 */ li r4, 0x40
+/* 802A4BB0 002A0810 4B FF DD 55 */ bl strnlen
+/* 802A4BB4 002A0814 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4BB8 002A0818 7C 7F 1B 78 */ mr r31, r3
+/* 802A4BBC 002A081C 40 82 00 0C */ bne lbl_802A4BC8
+lbl_802A4BC0:
+/* 802A4BC0 002A0820 3B E0 FF 9B */ li r31, -101
+/* 802A4BC4 002A0824 48 00 00 C0 */ b lbl_802A4C84
+lbl_802A4BC8:
+/* 802A4BC8 002A0828 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4BCC 002A082C 38 80 01 40 */ li r4, 0x140
+/* 802A4BD0 002A0830 38 A0 00 20 */ li r5, 0x20
+/* 802A4BD4 002A0834 4B FF F7 65 */ bl iosAllocAligned
+/* 802A4BD8 002A0838 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4BDC 002A083C 7C 7D 1B 78 */ mr r29, r3
+/* 802A4BE0 002A0840 40 82 00 0C */ bne lbl_802A4BEC
+/* 802A4BE4 002A0844 3B E0 FF EA */ li r31, -22
+/* 802A4BE8 002A0848 48 00 00 9C */ b lbl_802A4C84
+lbl_802A4BEC:
+/* 802A4BEC 002A084C 38 03 00 3F */ addi r0, r3, 0x3f
+/* 802A4BF0 002A0850 7F 44 D3 78 */ mr r4, r26
+/* 802A4BF4 002A0854 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
+/* 802A4BF8 002A0858 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4BFC 002A085C 7F C3 F3 78 */ mr r3, r30
+/* 802A4C00 002A0860 4B D5 F4 01 */ bl memcpy
+/* 802A4C04 002A0864 93 DD 00 00 */ stw r30, 0(r29)
+/* 802A4C08 002A0868 38 60 00 40 */ li r3, 0x40
+/* 802A4C0C 002A086C 38 1E 00 5F */ addi r0, r30, 0x5f
+/* 802A4C10 002A0870 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A4C14 002A0874 90 7D 00 04 */ stw r3, 4(r29)
+/* 802A4C18 002A0878 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
+/* 802A4C1C 002A087C 38 60 00 04 */ li r3, 4
+/* 802A4C20 002A0880 93 DD 00 08 */ stw r30, 8(r29)
+/* 802A4C24 002A0884 90 7D 00 0C */ stw r3, 0xc(r29)
+/* 802A4C28 002A0888 41 82 00 30 */ beq lbl_802A4C58
+/* 802A4C2C 002A088C 80 1C 00 00 */ lwz r0, 0(r28)
+/* 802A4C30 002A0890 38 A0 00 02 */ li r5, 2
+/* 802A4C34 002A0894 38 C0 00 02 */ li r6, 2
+/* 802A4C38 002A0898 90 1E 00 00 */ stw r0, 0(r30)
+/* 802A4C3C 002A089C 93 7D 00 10 */ stw r27, 0x10(r29)
+/* 802A4C40 002A08A0 80 1C 00 00 */ lwz r0, 0(r28)
+/* 802A4C44 002A08A4 1C 00 00 0D */ mulli r0, r0, 0xd
+/* 802A4C48 002A08A8 90 1D 00 14 */ stw r0, 0x14(r29)
+/* 802A4C4C 002A08AC 93 DD 00 18 */ stw r30, 0x18(r29)
+/* 802A4C50 002A08B0 90 7D 00 1C */ stw r3, 0x1c(r29)
+/* 802A4C54 002A08B4 48 00 00 0C */ b lbl_802A4C60
+lbl_802A4C58:
+/* 802A4C58 002A08B8 38 A0 00 01 */ li r5, 1
+/* 802A4C5C 002A08BC 38 C0 00 01 */ li r6, 1
+lbl_802A4C60:
+/* 802A4C60 002A08C0 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4C64 002A08C4 7F A7 EB 78 */ mr r7, r29
+/* 802A4C68 002A08C8 38 80 00 04 */ li r4, 4
+/* 802A4C6C 002A08CC 4B FF F1 D5 */ bl IOS_Ioctlv
+/* 802A4C70 002A08D0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4C74 002A08D4 7C 7F 1B 78 */ mr r31, r3
+/* 802A4C78 002A08D8 40 82 00 0C */ bne lbl_802A4C84
+/* 802A4C7C 002A08DC 80 1E 00 00 */ lwz r0, 0(r30)
+/* 802A4C80 002A08E0 90 1C 00 00 */ stw r0, 0(r28)
+lbl_802A4C84:
+/* 802A4C84 002A08E4 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4C88 002A08E8 41 82 00 14 */ beq lbl_802A4C9C
+/* 802A4C8C 002A08EC 41 82 00 10 */ beq lbl_802A4C9C
+/* 802A4C90 002A08F0 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4C94 002A08F4 7F A4 EB 78 */ mr r4, r29
+/* 802A4C98 002A08F8 4B FF F6 A5 */ bl iosFree
+lbl_802A4C9C:
+/* 802A4C9C 002A08FC 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A4CA0 002A0900 7F E3 FB 78 */ mr r3, r31
+/* 802A4CA4 002A0904 4B F2 24 CD */ bl _restgpr_26
+/* 802A4CA8 002A0908 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A4CAC 002A090C 7C 08 03 A6 */ mtlr r0
+/* 802A4CB0 002A0910 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4CB4 002A0914 4E 80 00 20 */ blr
+
+.global ISFS_ReadDirAsync
+ISFS_ReadDirAsync:
+/* 802A4CB8 002A0918 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4CBC 002A091C 7C 08 02 A6 */ mflr r0
+/* 802A4CC0 002A0920 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4CC4 002A0924 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4CC8 002A0928 4B F2 24 59 */ bl _savegpr_25
+/* 802A4CCC 002A092C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4CD0 002A0930 7C 79 1B 78 */ mr r25, r3
+/* 802A4CD4 002A0934 7C 9A 23 78 */ mr r26, r4
+/* 802A4CD8 002A0938 7C BB 2B 78 */ mr r27, r5
+/* 802A4CDC 002A093C 7C DC 33 78 */ mr r28, r6
+/* 802A4CE0 002A0940 7C FD 3B 78 */ mr r29, r7
+/* 802A4CE4 002A0944 41 82 00 34 */ beq lbl_802A4D18
+/* 802A4CE8 002A0948 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4CEC 002A094C 41 82 00 2C */ beq lbl_802A4D18
+/* 802A4CF0 002A0950 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4CF4 002A0954 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4CF8 002A0958 41 80 00 20 */ blt lbl_802A4D18
+/* 802A4CFC 002A095C 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A4D00 002A0960 40 82 00 18 */ bne lbl_802A4D18
+/* 802A4D04 002A0964 38 80 00 40 */ li r4, 0x40
+/* 802A4D08 002A0968 4B FF DB FD */ bl strnlen
+/* 802A4D0C 002A096C 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4D10 002A0970 7C 7F 1B 78 */ mr r31, r3
+/* 802A4D14 002A0974 40 82 00 0C */ bne lbl_802A4D20
+lbl_802A4D18:
+/* 802A4D18 002A0978 38 60 FF 9B */ li r3, -101
+/* 802A4D1C 002A097C 48 00 00 CC */ b lbl_802A4DE8
+lbl_802A4D20:
+/* 802A4D20 002A0980 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4D24 002A0984 38 80 01 40 */ li r4, 0x140
+/* 802A4D28 002A0988 38 A0 00 20 */ li r5, 0x20
+/* 802A4D2C 002A098C 4B FF F6 0D */ bl iosAllocAligned
+/* 802A4D30 002A0990 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4D34 002A0994 7C 7E 1B 78 */ mr r30, r3
+/* 802A4D38 002A0998 40 82 00 0C */ bne lbl_802A4D44
+/* 802A4D3C 002A099C 38 60 FF 8A */ li r3, -118
+/* 802A4D40 002A09A0 48 00 00 A8 */ b lbl_802A4DE8
+lbl_802A4D44:
+/* 802A4D44 002A09A4 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A4D48 002A09A8 38 C0 00 02 */ li r6, 2
+/* 802A4D4C 002A09AC 38 03 00 3F */ addi r0, r3, 0x3f
+/* 802A4D50 002A09B0 7F 24 CB 78 */ mr r4, r25
+/* 802A4D54 002A09B4 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A4D58 002A09B8 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a
+/* 802A4D5C 002A09BC 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4D60 002A09C0 90 C3 01 08 */ stw r6, 0x108(r3)
+/* 802A4D64 002A09C4 93 63 01 0C */ stw r27, 0x10c(r3)
+/* 802A4D68 002A09C8 7F A3 EB 78 */ mr r3, r29
+/* 802A4D6C 002A09CC 4B D5 F2 95 */ bl memcpy
+/* 802A4D70 002A09D0 93 BE 00 00 */ stw r29, 0(r30)
+/* 802A4D74 002A09D4 38 60 00 40 */ li r3, 0x40
+/* 802A4D78 002A09D8 38 1D 00 5F */ addi r0, r29, 0x5f
+/* 802A4D7C 002A09DC 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A4D80 002A09E0 90 7E 00 04 */ stw r3, 4(r30)
+/* 802A4D84 002A09E4 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
+/* 802A4D88 002A09E8 38 60 00 04 */ li r3, 4
+/* 802A4D8C 002A09EC 90 9E 00 08 */ stw r4, 8(r30)
+/* 802A4D90 002A09F0 90 7E 00 0C */ stw r3, 0xc(r30)
+/* 802A4D94 002A09F4 41 82 00 30 */ beq lbl_802A4DC4
+/* 802A4D98 002A09F8 80 1B 00 00 */ lwz r0, 0(r27)
+/* 802A4D9C 002A09FC 38 A0 00 02 */ li r5, 2
+/* 802A4DA0 002A0A00 38 C0 00 02 */ li r6, 2
+/* 802A4DA4 002A0A04 90 04 00 00 */ stw r0, 0(r4)
+/* 802A4DA8 002A0A08 93 5E 00 10 */ stw r26, 0x10(r30)
+/* 802A4DAC 002A0A0C 80 1B 00 00 */ lwz r0, 0(r27)
+/* 802A4DB0 002A0A10 1C 00 00 0D */ mulli r0, r0, 0xd
+/* 802A4DB4 002A0A14 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 802A4DB8 002A0A18 90 9E 00 18 */ stw r4, 0x18(r30)
+/* 802A4DBC 002A0A1C 90 7E 00 1C */ stw r3, 0x1c(r30)
+/* 802A4DC0 002A0A20 48 00 00 0C */ b lbl_802A4DCC
+lbl_802A4DC4:
+/* 802A4DC4 002A0A24 38 A0 00 01 */ li r5, 1
+/* 802A4DC8 002A0A28 38 C0 00 01 */ li r6, 1
+lbl_802A4DCC:
+/* 802A4DCC 002A0A2C 3D 00 80 2A */ lis r8, _isfsFuncCb@ha
+/* 802A4DD0 002A0A30 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4DD4 002A0A34 7F C7 F3 78 */ mr r7, r30
+/* 802A4DD8 002A0A38 7F C9 F3 78 */ mr r9, r30
+/* 802A4DDC 002A0A3C 39 08 48 14 */ addi r8, r8, _isfsFuncCb@l
+/* 802A4DE0 002A0A40 38 80 00 04 */ li r4, 4
+/* 802A4DE4 002A0A44 4B FF EF 79 */ bl IOS_IoctlvAsync
+lbl_802A4DE8:
+/* 802A4DE8 002A0A48 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4DEC 002A0A4C 4B F2 23 81 */ bl _restgpr_25
+/* 802A4DF0 002A0A50 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4DF4 002A0A54 7C 08 03 A6 */ mtlr r0
+/* 802A4DF8 002A0A58 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4DFC 002A0A5C 4E 80 00 20 */ blr
+
+.global ISFS_GetAttr
+ISFS_GetAttr:
+/* 802A4E00 002A0A60 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4E04 002A0A64 7C 08 02 A6 */ mflr r0
+/* 802A4E08 002A0A68 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4E0C 002A0A6C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4E10 002A0A70 4B F2 23 09 */ bl _savegpr_23
+/* 802A4E14 002A0A74 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4E18 002A0A78 7C 7E 1B 78 */ mr r30, r3
+/* 802A4E1C 002A0A7C 7C 97 23 78 */ mr r23, r4
+/* 802A4E20 002A0A80 7C B8 2B 78 */ mr r24, r5
+/* 802A4E24 002A0A84 7C D9 33 78 */ mr r25, r6
+/* 802A4E28 002A0A88 7C FA 3B 78 */ mr r26, r7
+/* 802A4E2C 002A0A8C 7D 1B 43 78 */ mr r27, r8
+/* 802A4E30 002A0A90 7D 3C 4B 78 */ mr r28, r9
+/* 802A4E34 002A0A94 3B A0 00 00 */ li r29, 0
+/* 802A4E38 002A0A98 41 82 00 54 */ beq lbl_802A4E8C
+/* 802A4E3C 002A0A9C 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4E40 002A0AA0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4E44 002A0AA4 41 80 00 48 */ blt lbl_802A4E8C
+/* 802A4E48 002A0AA8 38 80 00 40 */ li r4, 0x40
+/* 802A4E4C 002A0AAC 4B FF DA B9 */ bl strnlen
+/* 802A4E50 002A0AB0 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4E54 002A0AB4 7C 7F 1B 78 */ mr r31, r3
+/* 802A4E58 002A0AB8 41 82 00 34 */ beq lbl_802A4E8C
+/* 802A4E5C 002A0ABC 2C 17 00 00 */ cmpwi r23, 0
+/* 802A4E60 002A0AC0 41 82 00 2C */ beq lbl_802A4E8C
+/* 802A4E64 002A0AC4 2C 18 00 00 */ cmpwi r24, 0
+/* 802A4E68 002A0AC8 41 82 00 24 */ beq lbl_802A4E8C
+/* 802A4E6C 002A0ACC 2C 19 00 00 */ cmpwi r25, 0
+/* 802A4E70 002A0AD0 41 82 00 1C */ beq lbl_802A4E8C
+/* 802A4E74 002A0AD4 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A4E78 002A0AD8 41 82 00 14 */ beq lbl_802A4E8C
+/* 802A4E7C 002A0ADC 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A4E80 002A0AE0 41 82 00 0C */ beq lbl_802A4E8C
+/* 802A4E84 002A0AE4 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A4E88 002A0AE8 40 82 00 0C */ bne lbl_802A4E94
+lbl_802A4E8C:
+/* 802A4E8C 002A0AEC 3B E0 FF 9B */ li r31, -101
+/* 802A4E90 002A0AF0 48 00 00 94 */ b lbl_802A4F24
+lbl_802A4E94:
+/* 802A4E94 002A0AF4 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4E98 002A0AF8 38 80 01 40 */ li r4, 0x140
+/* 802A4E9C 002A0AFC 38 A0 00 20 */ li r5, 0x20
+/* 802A4EA0 002A0B00 4B FF F4 99 */ bl iosAllocAligned
+/* 802A4EA4 002A0B04 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4EA8 002A0B08 7C 7D 1B 78 */ mr r29, r3
+/* 802A4EAC 002A0B0C 40 82 00 0C */ bne lbl_802A4EB8
+/* 802A4EB0 002A0B10 3B E0 FF EA */ li r31, -22
+/* 802A4EB4 002A0B14 48 00 00 70 */ b lbl_802A4F24
+lbl_802A4EB8:
+/* 802A4EB8 002A0B18 7F C4 F3 78 */ mr r4, r30
+/* 802A4EBC 002A0B1C 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4EC0 002A0B20 4B D5 F1 41 */ bl memcpy
+/* 802A4EC4 002A0B24 38 1D 00 5F */ addi r0, r29, 0x5f
+/* 802A4EC8 002A0B28 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4ECC 002A0B2C 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
+/* 802A4ED0 002A0B30 7F A5 EB 78 */ mr r5, r29
+/* 802A4ED4 002A0B34 7F C7 F3 78 */ mr r7, r30
+/* 802A4ED8 002A0B38 38 80 00 06 */ li r4, 6
+/* 802A4EDC 002A0B3C 38 C0 00 40 */ li r6, 0x40
+/* 802A4EE0 002A0B40 39 00 00 4C */ li r8, 0x4c
+/* 802A4EE4 002A0B44 4B FF EC 0D */ bl IOS_Ioctl
+/* 802A4EE8 002A0B48 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4EEC 002A0B4C 7C 7F 1B 78 */ mr r31, r3
+/* 802A4EF0 002A0B50 40 82 00 34 */ bne lbl_802A4F24
+/* 802A4EF4 002A0B54 80 1E 00 00 */ lwz r0, 0(r30)
+/* 802A4EF8 002A0B58 90 17 00 00 */ stw r0, 0(r23)
+/* 802A4EFC 002A0B5C A0 1E 00 04 */ lhz r0, 4(r30)
+/* 802A4F00 002A0B60 B0 18 00 00 */ sth r0, 0(r24)
+/* 802A4F04 002A0B64 88 1E 00 49 */ lbz r0, 0x49(r30)
+/* 802A4F08 002A0B68 90 19 00 00 */ stw r0, 0(r25)
+/* 802A4F0C 002A0B6C 88 1E 00 46 */ lbz r0, 0x46(r30)
+/* 802A4F10 002A0B70 90 1A 00 00 */ stw r0, 0(r26)
+/* 802A4F14 002A0B74 88 1E 00 47 */ lbz r0, 0x47(r30)
+/* 802A4F18 002A0B78 90 1B 00 00 */ stw r0, 0(r27)
+/* 802A4F1C 002A0B7C 88 1E 00 48 */ lbz r0, 0x48(r30)
+/* 802A4F20 002A0B80 90 1C 00 00 */ stw r0, 0(r28)
+lbl_802A4F24:
+/* 802A4F24 002A0B84 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4F28 002A0B88 41 82 00 14 */ beq lbl_802A4F3C
+/* 802A4F2C 002A0B8C 41 82 00 10 */ beq lbl_802A4F3C
+/* 802A4F30 002A0B90 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4F34 002A0B94 7F A4 EB 78 */ mr r4, r29
+/* 802A4F38 002A0B98 4B FF F4 05 */ bl iosFree
+lbl_802A4F3C:
+/* 802A4F3C 002A0B9C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4F40 002A0BA0 7F E3 FB 78 */ mr r3, r31
+/* 802A4F44 002A0BA4 4B F2 22 21 */ bl _restgpr_23
+/* 802A4F48 002A0BA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4F4C 002A0BAC 7C 08 03 A6 */ mtlr r0
+/* 802A4F50 002A0BB0 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4F54 002A0BB4 4E 80 00 20 */ blr
+
+.global ISFS_GetAttrAsync
+ISFS_GetAttrAsync:
+/* 802A4F58 002A0BB8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802A4F5C 002A0BBC 7C 08 02 A6 */ mflr r0
+/* 802A4F60 002A0BC0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802A4F64 002A0BC4 39 61 00 40 */ addi r11, r1, 0x40
+/* 802A4F68 002A0BC8 4B F2 21 A9 */ bl _savegpr_21
+/* 802A4F6C 002A0BCC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4F70 002A0BD0 83 A1 00 48 */ lwz r29, 0x48(r1)
+/* 802A4F74 002A0BD4 7C 75 1B 78 */ mr r21, r3
+/* 802A4F78 002A0BD8 7C 96 23 78 */ mr r22, r4
+/* 802A4F7C 002A0BDC 7C B7 2B 78 */ mr r23, r5
+/* 802A4F80 002A0BE0 7C D8 33 78 */ mr r24, r6
+/* 802A4F84 002A0BE4 7C F9 3B 78 */ mr r25, r7
+/* 802A4F88 002A0BE8 7D 1A 43 78 */ mr r26, r8
+/* 802A4F8C 002A0BEC 7D 3B 4B 78 */ mr r27, r9
+/* 802A4F90 002A0BF0 7D 5C 53 78 */ mr r28, r10
+/* 802A4F94 002A0BF4 41 82 00 54 */ beq lbl_802A4FE8
+/* 802A4F98 002A0BF8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4F9C 002A0BFC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4FA0 002A0C00 41 80 00 48 */ blt lbl_802A4FE8
+/* 802A4FA4 002A0C04 38 80 00 40 */ li r4, 0x40
+/* 802A4FA8 002A0C08 4B FF D9 5D */ bl strnlen
+/* 802A4FAC 002A0C0C 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4FB0 002A0C10 7C 7F 1B 78 */ mr r31, r3
+/* 802A4FB4 002A0C14 41 82 00 34 */ beq lbl_802A4FE8
+/* 802A4FB8 002A0C18 2C 16 00 00 */ cmpwi r22, 0
+/* 802A4FBC 002A0C1C 41 82 00 2C */ beq lbl_802A4FE8
+/* 802A4FC0 002A0C20 2C 17 00 00 */ cmpwi r23, 0
+/* 802A4FC4 002A0C24 41 82 00 24 */ beq lbl_802A4FE8
+/* 802A4FC8 002A0C28 2C 18 00 00 */ cmpwi r24, 0
+/* 802A4FCC 002A0C2C 41 82 00 1C */ beq lbl_802A4FE8
+/* 802A4FD0 002A0C30 2C 19 00 00 */ cmpwi r25, 0
+/* 802A4FD4 002A0C34 41 82 00 14 */ beq lbl_802A4FE8
+/* 802A4FD8 002A0C38 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A4FDC 002A0C3C 41 82 00 0C */ beq lbl_802A4FE8
+/* 802A4FE0 002A0C40 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A4FE4 002A0C44 40 82 00 0C */ bne lbl_802A4FF0
+lbl_802A4FE8:
+/* 802A4FE8 002A0C48 38 60 FF 9B */ li r3, -101
+/* 802A4FEC 002A0C4C 48 00 00 88 */ b lbl_802A5074
+lbl_802A4FF0:
+/* 802A4FF0 002A0C50 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4FF4 002A0C54 38 80 01 40 */ li r4, 0x140
+/* 802A4FF8 002A0C58 38 A0 00 20 */ li r5, 0x20
+/* 802A4FFC 002A0C5C 4B FF F3 3D */ bl iosAllocAligned
+/* 802A5000 002A0C60 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5004 002A0C64 7C 7E 1B 78 */ mr r30, r3
+/* 802A5008 002A0C68 40 82 00 0C */ bne lbl_802A5014
+/* 802A500C 002A0C6C 38 60 FF 8A */ li r3, -118
+/* 802A5010 002A0C70 48 00 00 64 */ b lbl_802A5074
+lbl_802A5014:
+/* 802A5014 002A0C74 92 C3 01 0C */ stw r22, 0x10c(r3)
+/* 802A5018 002A0C78 38 00 00 03 */ li r0, 3
+/* 802A501C 002A0C7C 7E A4 AB 78 */ mr r4, r21
+/* 802A5020 002A0C80 38 BF 00 01 */ addi r5, r31, 1
+/* 802A5024 002A0C84 92 E3 01 10 */ stw r23, 0x110(r3)
+/* 802A5028 002A0C88 93 03 01 14 */ stw r24, 0x114(r3)
+/* 802A502C 002A0C8C 93 23 01 18 */ stw r25, 0x118(r3)
+/* 802A5030 002A0C90 93 43 01 1C */ stw r26, 0x11c(r3)
+/* 802A5034 002A0C94 93 63 01 20 */ stw r27, 0x120(r3)
+/* 802A5038 002A0C98 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A503C 002A0C9C 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A5040 002A0CA0 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5044 002A0CA4 4B D5 EF BD */ bl memcpy
+/* 802A5048 002A0CA8 38 1E 00 5F */ addi r0, r30, 0x5f
+/* 802A504C 002A0CAC 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A5050 002A0CB0 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5054 002A0CB4 7F C5 F3 78 */ mr r5, r30
+/* 802A5058 002A0CB8 7F CA F3 78 */ mr r10, r30
+/* 802A505C 002A0CBC 54 07 00 34 */ rlwinm r7, r0, 0, 0, 0x1a
+/* 802A5060 002A0CC0 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A5064 002A0CC4 38 80 00 06 */ li r4, 6
+/* 802A5068 002A0CC8 38 C0 00 40 */ li r6, 0x40
+/* 802A506C 002A0CCC 39 00 00 4C */ li r8, 0x4c
+/* 802A5070 002A0CD0 4B FF E9 49 */ bl IOS_IoctlAsync
+lbl_802A5074:
+/* 802A5074 002A0CD4 39 61 00 40 */ addi r11, r1, 0x40
+/* 802A5078 002A0CD8 4B F2 20 E5 */ bl _restgpr_21
+/* 802A507C 002A0CDC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802A5080 002A0CE0 7C 08 03 A6 */ mtlr r0
+/* 802A5084 002A0CE4 38 21 00 40 */ addi r1, r1, 0x40
+/* 802A5088 002A0CE8 4E 80 00 20 */ blr
+
+.global ISFS_Delete
+ISFS_Delete:
+/* 802A508C 002A0CEC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5090 002A0CF0 7C 08 02 A6 */ mflr r0
+/* 802A5094 002A0CF4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5098 002A0CF8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A509C 002A0CFC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A50A0 002A0D00 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A50A4 002A0D04 3B C0 00 00 */ li r30, 0
+/* 802A50A8 002A0D08 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A50AC 002A0D0C 7C 7D 1B 78 */ mr r29, r3
+/* 802A50B0 002A0D10 41 82 00 24 */ beq lbl_802A50D4
+/* 802A50B4 002A0D14 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A50B8 002A0D18 2C 00 00 00 */ cmpwi r0, 0
+/* 802A50BC 002A0D1C 41 80 00 18 */ blt lbl_802A50D4
+/* 802A50C0 002A0D20 38 80 00 40 */ li r4, 0x40
+/* 802A50C4 002A0D24 4B FF D8 41 */ bl strnlen
+/* 802A50C8 002A0D28 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A50CC 002A0D2C 7C 7F 1B 78 */ mr r31, r3
+/* 802A50D0 002A0D30 40 82 00 0C */ bne lbl_802A50DC
+lbl_802A50D4:
+/* 802A50D4 002A0D34 3B E0 FF 9B */ li r31, -101
+/* 802A50D8 002A0D38 48 00 00 54 */ b lbl_802A512C
+lbl_802A50DC:
+/* 802A50DC 002A0D3C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A50E0 002A0D40 38 80 01 40 */ li r4, 0x140
+/* 802A50E4 002A0D44 38 A0 00 20 */ li r5, 0x20
+/* 802A50E8 002A0D48 4B FF F2 51 */ bl iosAllocAligned
+/* 802A50EC 002A0D4C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A50F0 002A0D50 7C 7E 1B 78 */ mr r30, r3
+/* 802A50F4 002A0D54 40 82 00 0C */ bne lbl_802A5100
+/* 802A50F8 002A0D58 3B E0 FF EA */ li r31, -22
+/* 802A50FC 002A0D5C 48 00 00 30 */ b lbl_802A512C
+lbl_802A5100:
+/* 802A5100 002A0D60 7F A4 EB 78 */ mr r4, r29
+/* 802A5104 002A0D64 38 BF 00 01 */ addi r5, r31, 1
+/* 802A5108 002A0D68 4B D5 EE F9 */ bl memcpy
+/* 802A510C 002A0D6C 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5110 002A0D70 7F C5 F3 78 */ mr r5, r30
+/* 802A5114 002A0D74 38 80 00 07 */ li r4, 7
+/* 802A5118 002A0D78 38 C0 00 40 */ li r6, 0x40
+/* 802A511C 002A0D7C 38 E0 00 00 */ li r7, 0
+/* 802A5120 002A0D80 39 00 00 00 */ li r8, 0
+/* 802A5124 002A0D84 4B FF E9 CD */ bl IOS_Ioctl
+/* 802A5128 002A0D88 7C 7F 1B 78 */ mr r31, r3
+lbl_802A512C:
+/* 802A512C 002A0D8C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A5130 002A0D90 41 82 00 14 */ beq lbl_802A5144
+/* 802A5134 002A0D94 41 82 00 10 */ beq lbl_802A5144
+/* 802A5138 002A0D98 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A513C 002A0D9C 7F C4 F3 78 */ mr r4, r30
+/* 802A5140 002A0DA0 4B FF F1 FD */ bl iosFree
+lbl_802A5144:
+/* 802A5144 002A0DA4 7F E3 FB 78 */ mr r3, r31
+/* 802A5148 002A0DA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A514C 002A0DAC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A5150 002A0DB0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A5154 002A0DB4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5158 002A0DB8 7C 08 03 A6 */ mtlr r0
+/* 802A515C 002A0DBC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5160 002A0DC0 4E 80 00 20 */ blr
+
+.global ISFS_DeleteAsync
+ISFS_DeleteAsync:
+/* 802A5164 002A0DC4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5168 002A0DC8 7C 08 02 A6 */ mflr r0
+/* 802A516C 002A0DCC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5170 002A0DD0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5174 002A0DD4 4B F2 1F B5 */ bl _savegpr_27
+/* 802A5178 002A0DD8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A517C 002A0DDC 7C 7B 1B 78 */ mr r27, r3
+/* 802A5180 002A0DE0 7C 9C 23 78 */ mr r28, r4
+/* 802A5184 002A0DE4 7C BD 2B 78 */ mr r29, r5
+/* 802A5188 002A0DE8 41 82 00 24 */ beq lbl_802A51AC
+/* 802A518C 002A0DEC 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5190 002A0DF0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5194 002A0DF4 41 80 00 18 */ blt lbl_802A51AC
+/* 802A5198 002A0DF8 38 80 00 40 */ li r4, 0x40
+/* 802A519C 002A0DFC 4B FF D7 69 */ bl strnlen
+/* 802A51A0 002A0E00 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A51A4 002A0E04 7C 7F 1B 78 */ mr r31, r3
+/* 802A51A8 002A0E08 40 82 00 0C */ bne lbl_802A51B4
+lbl_802A51AC:
+/* 802A51AC 002A0E0C 38 60 FF 9B */ li r3, -101
+/* 802A51B0 002A0E10 48 00 00 6C */ b lbl_802A521C
+lbl_802A51B4:
+/* 802A51B4 002A0E14 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A51B8 002A0E18 38 80 01 40 */ li r4, 0x140
+/* 802A51BC 002A0E1C 38 A0 00 20 */ li r5, 0x20
+/* 802A51C0 002A0E20 4B FF F1 79 */ bl iosAllocAligned
+/* 802A51C4 002A0E24 2C 03 00 00 */ cmpwi r3, 0
+/* 802A51C8 002A0E28 7C 7E 1B 78 */ mr r30, r3
+/* 802A51CC 002A0E2C 40 82 00 0C */ bne lbl_802A51D8
+/* 802A51D0 002A0E30 38 60 FF 8A */ li r3, -118
+/* 802A51D4 002A0E34 48 00 00 48 */ b lbl_802A521C
+lbl_802A51D8:
+/* 802A51D8 002A0E38 7F 64 DB 78 */ mr r4, r27
+/* 802A51DC 002A0E3C 38 BF 00 01 */ addi r5, r31, 1
+/* 802A51E0 002A0E40 4B D5 EE 21 */ bl memcpy
+/* 802A51E4 002A0E44 93 9E 01 00 */ stw r28, 0x100(r30)
+/* 802A51E8 002A0E48 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A51EC 002A0E4C 38 00 00 00 */ li r0, 0
+/* 802A51F0 002A0E50 7F C5 F3 78 */ mr r5, r30
+/* 802A51F4 002A0E54 93 BE 01 04 */ stw r29, 0x104(r30)
+/* 802A51F8 002A0E58 7F CA F3 78 */ mr r10, r30
+/* 802A51FC 002A0E5C 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A5200 002A0E60 38 80 00 07 */ li r4, 7
+/* 802A5204 002A0E64 90 1E 01 08 */ stw r0, 0x108(r30)
+/* 802A5208 002A0E68 38 C0 00 40 */ li r6, 0x40
+/* 802A520C 002A0E6C 38 E0 00 00 */ li r7, 0
+/* 802A5210 002A0E70 39 00 00 00 */ li r8, 0
+/* 802A5214 002A0E74 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5218 002A0E78 4B FF E7 A1 */ bl IOS_IoctlAsync
+lbl_802A521C:
+/* 802A521C 002A0E7C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5220 002A0E80 4B F2 1F 55 */ bl _restgpr_27
+/* 802A5224 002A0E84 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5228 002A0E88 7C 08 03 A6 */ mtlr r0
+/* 802A522C 002A0E8C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5230 002A0E90 4E 80 00 20 */ blr
+
+.global ISFS_RenameAsync
+ISFS_RenameAsync:
+/* 802A5234 002A0E94 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A5238 002A0E98 7C 08 02 A6 */ mflr r0
+/* 802A523C 002A0E9C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A5240 002A0EA0 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5244 002A0EA4 4B F2 1E DD */ bl _savegpr_25
+/* 802A5248 002A0EA8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A524C 002A0EAC 7C 79 1B 78 */ mr r25, r3
+/* 802A5250 002A0EB0 7C 9A 23 78 */ mr r26, r4
+/* 802A5254 002A0EB4 7C BB 2B 78 */ mr r27, r5
+/* 802A5258 002A0EB8 7C DC 33 78 */ mr r28, r6
+/* 802A525C 002A0EBC 41 82 00 44 */ beq lbl_802A52A0
+/* 802A5260 002A0EC0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5264 002A0EC4 41 82 00 3C */ beq lbl_802A52A0
+/* 802A5268 002A0EC8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A526C 002A0ECC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5270 002A0ED0 41 80 00 30 */ blt lbl_802A52A0
+/* 802A5274 002A0ED4 38 80 00 40 */ li r4, 0x40
+/* 802A5278 002A0ED8 4B FF D6 8D */ bl strnlen
+/* 802A527C 002A0EDC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5280 002A0EE0 7C 7E 1B 78 */ mr r30, r3
+/* 802A5284 002A0EE4 41 82 00 1C */ beq lbl_802A52A0
+/* 802A5288 002A0EE8 7F 43 D3 78 */ mr r3, r26
+/* 802A528C 002A0EEC 38 80 00 40 */ li r4, 0x40
+/* 802A5290 002A0EF0 4B FF D6 75 */ bl strnlen
+/* 802A5294 002A0EF4 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5298 002A0EF8 7C 7F 1B 78 */ mr r31, r3
+/* 802A529C 002A0EFC 40 82 00 0C */ bne lbl_802A52A8
+lbl_802A52A0:
+/* 802A52A0 002A0F00 38 60 FF 9B */ li r3, -101
+/* 802A52A4 002A0F04 48 00 00 7C */ b lbl_802A5320
+lbl_802A52A8:
+/* 802A52A8 002A0F08 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A52AC 002A0F0C 38 80 01 40 */ li r4, 0x140
+/* 802A52B0 002A0F10 38 A0 00 20 */ li r5, 0x20
+/* 802A52B4 002A0F14 4B FF F0 85 */ bl iosAllocAligned
+/* 802A52B8 002A0F18 2C 03 00 00 */ cmpwi r3, 0
+/* 802A52BC 002A0F1C 7C 7D 1B 78 */ mr r29, r3
+/* 802A52C0 002A0F20 40 82 00 0C */ bne lbl_802A52CC
+/* 802A52C4 002A0F24 38 60 FF 8A */ li r3, -118
+/* 802A52C8 002A0F28 48 00 00 58 */ b lbl_802A5320
+lbl_802A52CC:
+/* 802A52CC 002A0F2C 93 63 01 00 */ stw r27, 0x100(r3)
+/* 802A52D0 002A0F30 38 00 00 00 */ li r0, 0
+/* 802A52D4 002A0F34 7F 24 CB 78 */ mr r4, r25
+/* 802A52D8 002A0F38 38 BE 00 01 */ addi r5, r30, 1
+/* 802A52DC 002A0F3C 93 83 01 04 */ stw r28, 0x104(r3)
+/* 802A52E0 002A0F40 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A52E4 002A0F44 4B D5 ED 1D */ bl memcpy
+/* 802A52E8 002A0F48 7F 44 D3 78 */ mr r4, r26
+/* 802A52EC 002A0F4C 38 7D 00 40 */ addi r3, r29, 0x40
+/* 802A52F0 002A0F50 38 BF 00 01 */ addi r5, r31, 1
+/* 802A52F4 002A0F54 4B D5 ED 0D */ bl memcpy
+/* 802A52F8 002A0F58 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A52FC 002A0F5C 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5300 002A0F60 7F A5 EB 78 */ mr r5, r29
+/* 802A5304 002A0F64 7F AA EB 78 */ mr r10, r29
+/* 802A5308 002A0F68 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A530C 002A0F6C 38 80 00 08 */ li r4, 8
+/* 802A5310 002A0F70 38 C0 00 80 */ li r6, 0x80
+/* 802A5314 002A0F74 38 E0 00 00 */ li r7, 0
+/* 802A5318 002A0F78 39 00 00 00 */ li r8, 0
+/* 802A531C 002A0F7C 4B FF E6 9D */ bl IOS_IoctlAsync
+lbl_802A5320:
+/* 802A5320 002A0F80 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5324 002A0F84 4B F2 1E 49 */ bl _restgpr_25
+/* 802A5328 002A0F88 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A532C 002A0F8C 7C 08 03 A6 */ mtlr r0
+/* 802A5330 002A0F90 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A5334 002A0F94 4E 80 00 20 */ blr
+
+.global ISFS_GetUsageAsync
+ISFS_GetUsageAsync:
+/* 802A5338 002A0F98 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A533C 002A0F9C 7C 08 02 A6 */ mflr r0
+/* 802A5340 002A0FA0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A5344 002A0FA4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5348 002A0FA8 4B F2 1D D9 */ bl _savegpr_25
+/* 802A534C 002A0FAC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5350 002A0FB0 7C 79 1B 78 */ mr r25, r3
+/* 802A5354 002A0FB4 7C 9A 23 78 */ mr r26, r4
+/* 802A5358 002A0FB8 7C BB 2B 78 */ mr r27, r5
+/* 802A535C 002A0FBC 7C DF 33 78 */ mr r31, r6
+/* 802A5360 002A0FC0 7C FC 3B 78 */ mr r28, r7
+/* 802A5364 002A0FC4 41 82 00 34 */ beq lbl_802A5398
+/* 802A5368 002A0FC8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A536C 002A0FCC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5370 002A0FD0 41 80 00 28 */ blt lbl_802A5398
+/* 802A5374 002A0FD4 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5378 002A0FD8 41 82 00 20 */ beq lbl_802A5398
+/* 802A537C 002A0FDC 2C 05 00 00 */ cmpwi r5, 0
+/* 802A5380 002A0FE0 41 82 00 18 */ beq lbl_802A5398
+/* 802A5384 002A0FE4 38 80 00 40 */ li r4, 0x40
+/* 802A5388 002A0FE8 4B FF D5 7D */ bl strnlen
+/* 802A538C 002A0FEC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5390 002A0FF0 7C 7E 1B 78 */ mr r30, r3
+/* 802A5394 002A0FF4 40 82 00 0C */ bne lbl_802A53A0
+lbl_802A5398:
+/* 802A5398 002A0FF8 38 60 FF 9B */ li r3, -101
+/* 802A539C 002A0FFC 48 00 00 A8 */ b lbl_802A5444
+lbl_802A53A0:
+/* 802A53A0 002A1000 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A53A4 002A1004 38 80 01 40 */ li r4, 0x140
+/* 802A53A8 002A1008 38 A0 00 20 */ li r5, 0x20
+/* 802A53AC 002A100C 4B FF EF 8D */ bl iosAllocAligned
+/* 802A53B0 002A1010 2C 03 00 00 */ cmpwi r3, 0
+/* 802A53B4 002A1014 7C 7D 1B 78 */ mr r29, r3
+/* 802A53B8 002A1018 40 82 00 0C */ bne lbl_802A53C4
+/* 802A53BC 002A101C 38 60 FF 8A */ li r3, -118
+/* 802A53C0 002A1020 48 00 00 84 */ b lbl_802A5444
+lbl_802A53C4:
+/* 802A53C4 002A1024 93 E3 01 00 */ stw r31, 0x100(r3)
+/* 802A53C8 002A1028 3B E0 00 04 */ li r31, 4
+/* 802A53CC 002A102C 38 03 00 37 */ addi r0, r3, 0x37
+/* 802A53D0 002A1030 7F 24 CB 78 */ mr r4, r25
+/* 802A53D4 002A1034 93 83 01 04 */ stw r28, 0x104(r3)
+/* 802A53D8 002A1038 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a
+/* 802A53DC 002A103C 38 BE 00 01 */ addi r5, r30, 1
+/* 802A53E0 002A1040 93 E3 01 08 */ stw r31, 0x108(r3)
+/* 802A53E4 002A1044 93 43 01 0C */ stw r26, 0x10c(r3)
+/* 802A53E8 002A1048 93 63 01 10 */ stw r27, 0x110(r3)
+/* 802A53EC 002A104C 7F 83 E3 78 */ mr r3, r28
+/* 802A53F0 002A1050 4B D5 EC 11 */ bl memcpy
+/* 802A53F4 002A1054 93 9D 00 00 */ stw r28, 0(r29)
+/* 802A53F8 002A1058 38 60 00 40 */ li r3, 0x40
+/* 802A53FC 002A105C 3D 00 80 2A */ lis r8, _isfsFuncCb@ha
+/* 802A5400 002A1060 38 1C 00 5F */ addi r0, r28, 0x5f
+/* 802A5404 002A1064 90 7D 00 04 */ stw r3, 4(r29)
+/* 802A5408 002A1068 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
+/* 802A540C 002A106C 38 03 00 23 */ addi r0, r3, 0x23
+/* 802A5410 002A1070 7F A7 EB 78 */ mr r7, r29
+/* 802A5414 002A1074 90 7D 00 08 */ stw r3, 8(r29)
+/* 802A5418 002A1078 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
+/* 802A541C 002A107C 7F A9 EB 78 */ mr r9, r29
+/* 802A5420 002A1080 39 08 48 14 */ addi r8, r8, _isfsFuncCb@l
+/* 802A5424 002A1084 93 FD 00 0C */ stw r31, 0xc(r29)
+/* 802A5428 002A1088 38 80 00 0C */ li r4, 0xc
+/* 802A542C 002A108C 38 A0 00 01 */ li r5, 1
+/* 802A5430 002A1090 38 C0 00 02 */ li r6, 2
+/* 802A5434 002A1094 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 802A5438 002A1098 93 FD 00 14 */ stw r31, 0x14(r29)
+/* 802A543C 002A109C 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5440 002A10A0 4B FF E9 1D */ bl IOS_IoctlvAsync
+lbl_802A5444:
+/* 802A5444 002A10A4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5448 002A10A8 4B F2 1D 25 */ bl _restgpr_25
+/* 802A544C 002A10AC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A5450 002A10B0 7C 08 03 A6 */ mtlr r0
+/* 802A5454 002A10B4 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A5458 002A10B8 4E 80 00 20 */ blr
+
+.global ISFS_CreateFile
+ISFS_CreateFile:
+/* 802A545C 002A10BC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A5460 002A10C0 7C 08 02 A6 */ mflr r0
+/* 802A5464 002A10C4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A5468 002A10C8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A546C 002A10CC 4B F2 1C B5 */ bl _savegpr_25
+/* 802A5470 002A10D0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5474 002A10D4 7C 79 1B 78 */ mr r25, r3
+/* 802A5478 002A10D8 7C 9A 23 78 */ mr r26, r4
+/* 802A547C 002A10DC 7C BB 2B 78 */ mr r27, r5
+/* 802A5480 002A10E0 7C DC 33 78 */ mr r28, r6
+/* 802A5484 002A10E4 7C FD 3B 78 */ mr r29, r7
+/* 802A5488 002A10E8 3B C0 00 00 */ li r30, 0
+/* 802A548C 002A10EC 41 82 00 24 */ beq lbl_802A54B0
+/* 802A5490 002A10F0 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5494 002A10F4 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5498 002A10F8 41 80 00 18 */ blt lbl_802A54B0
+/* 802A549C 002A10FC 38 80 00 40 */ li r4, 0x40
+/* 802A54A0 002A1100 4B FF D4 65 */ bl strnlen
+/* 802A54A4 002A1104 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A54A8 002A1108 7C 7F 1B 78 */ mr r31, r3
+/* 802A54AC 002A110C 40 82 00 0C */ bne lbl_802A54B8
+lbl_802A54B0:
+/* 802A54B0 002A1110 3B E0 FF 9B */ li r31, -101
+/* 802A54B4 002A1114 48 00 00 68 */ b lbl_802A551C
+lbl_802A54B8:
+/* 802A54B8 002A1118 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A54BC 002A111C 38 80 01 40 */ li r4, 0x140
+/* 802A54C0 002A1120 38 A0 00 20 */ li r5, 0x20
+/* 802A54C4 002A1124 4B FF EE 75 */ bl iosAllocAligned
+/* 802A54C8 002A1128 2C 03 00 00 */ cmpwi r3, 0
+/* 802A54CC 002A112C 7C 7E 1B 78 */ mr r30, r3
+/* 802A54D0 002A1130 40 82 00 0C */ bne lbl_802A54DC
+/* 802A54D4 002A1134 3B E0 FF EA */ li r31, -22
+/* 802A54D8 002A1138 48 00 00 44 */ b lbl_802A551C
+lbl_802A54DC:
+/* 802A54DC 002A113C 7F 24 CB 78 */ mr r4, r25
+/* 802A54E0 002A1140 38 BF 00 01 */ addi r5, r31, 1
+/* 802A54E4 002A1144 38 63 00 06 */ addi r3, r3, 6
+/* 802A54E8 002A1148 4B D5 EB 19 */ bl memcpy
+/* 802A54EC 002A114C 9B 5E 00 49 */ stb r26, 0x49(r30)
+/* 802A54F0 002A1150 7F C5 F3 78 */ mr r5, r30
+/* 802A54F4 002A1154 38 80 00 09 */ li r4, 9
+/* 802A54F8 002A1158 38 C0 00 4C */ li r6, 0x4c
+/* 802A54FC 002A115C 9B 7E 00 46 */ stb r27, 0x46(r30)
+/* 802A5500 002A1160 38 E0 00 00 */ li r7, 0
+/* 802A5504 002A1164 39 00 00 00 */ li r8, 0
+/* 802A5508 002A1168 9B 9E 00 47 */ stb r28, 0x47(r30)
+/* 802A550C 002A116C 9B BE 00 48 */ stb r29, 0x48(r30)
+/* 802A5510 002A1170 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5514 002A1174 4B FF E5 DD */ bl IOS_Ioctl
+/* 802A5518 002A1178 7C 7F 1B 78 */ mr r31, r3
+lbl_802A551C:
+/* 802A551C 002A117C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A5520 002A1180 41 82 00 14 */ beq lbl_802A5534
+/* 802A5524 002A1184 41 82 00 10 */ beq lbl_802A5534
+/* 802A5528 002A1188 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A552C 002A118C 7F C4 F3 78 */ mr r4, r30
+/* 802A5530 002A1190 4B FF EE 0D */ bl iosFree
+lbl_802A5534:
+/* 802A5534 002A1194 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5538 002A1198 7F E3 FB 78 */ mr r3, r31
+/* 802A553C 002A119C 4B F2 1C 31 */ bl _restgpr_25
+/* 802A5540 002A11A0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A5544 002A11A4 7C 08 03 A6 */ mtlr r0
+/* 802A5548 002A11A8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A554C 002A11AC 4E 80 00 20 */ blr
+
+.global ISFS_CreateFileAsync
+ISFS_CreateFileAsync:
+/* 802A5550 002A11B0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A5554 002A11B4 7C 08 02 A6 */ mflr r0
+/* 802A5558 002A11B8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A555C 002A11BC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5560 002A11C0 4B F2 1B B9 */ bl _savegpr_23
+/* 802A5564 002A11C4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5568 002A11C8 7C 77 1B 78 */ mr r23, r3
+/* 802A556C 002A11CC 7C 98 23 78 */ mr r24, r4
+/* 802A5570 002A11D0 7C B9 2B 78 */ mr r25, r5
+/* 802A5574 002A11D4 7C DA 33 78 */ mr r26, r6
+/* 802A5578 002A11D8 7C FB 3B 78 */ mr r27, r7
+/* 802A557C 002A11DC 7D 1C 43 78 */ mr r28, r8
+/* 802A5580 002A11E0 7D 3D 4B 78 */ mr r29, r9
+/* 802A5584 002A11E4 41 82 00 24 */ beq lbl_802A55A8
+/* 802A5588 002A11E8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A558C 002A11EC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5590 002A11F0 41 80 00 18 */ blt lbl_802A55A8
+/* 802A5594 002A11F4 38 80 00 40 */ li r4, 0x40
+/* 802A5598 002A11F8 4B FF D3 6D */ bl strnlen
+/* 802A559C 002A11FC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A55A0 002A1200 7C 7F 1B 78 */ mr r31, r3
+/* 802A55A4 002A1204 40 82 00 0C */ bne lbl_802A55B0
+lbl_802A55A8:
+/* 802A55A8 002A1208 38 60 FF 9B */ li r3, -101
+/* 802A55AC 002A120C 48 00 00 80 */ b lbl_802A562C
+lbl_802A55B0:
+/* 802A55B0 002A1210 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A55B4 002A1214 38 80 01 40 */ li r4, 0x140
+/* 802A55B8 002A1218 38 A0 00 20 */ li r5, 0x20
+/* 802A55BC 002A121C 4B FF ED 7D */ bl iosAllocAligned
+/* 802A55C0 002A1220 2C 03 00 00 */ cmpwi r3, 0
+/* 802A55C4 002A1224 7C 7E 1B 78 */ mr r30, r3
+/* 802A55C8 002A1228 40 82 00 0C */ bne lbl_802A55D4
+/* 802A55CC 002A122C 38 60 FF 8A */ li r3, -118
+/* 802A55D0 002A1230 48 00 00 5C */ b lbl_802A562C
+lbl_802A55D4:
+/* 802A55D4 002A1234 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A55D8 002A1238 38 00 00 00 */ li r0, 0
+/* 802A55DC 002A123C 7E E4 BB 78 */ mr r4, r23
+/* 802A55E0 002A1240 38 BF 00 01 */ addi r5, r31, 1
+/* 802A55E4 002A1244 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A55E8 002A1248 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A55EC 002A124C 38 63 00 06 */ addi r3, r3, 6
+/* 802A55F0 002A1250 4B D5 EA 11 */ bl memcpy
+/* 802A55F4 002A1254 9B 1E 00 49 */ stb r24, 0x49(r30)
+/* 802A55F8 002A1258 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A55FC 002A125C 7F C5 F3 78 */ mr r5, r30
+/* 802A5600 002A1260 7F CA F3 78 */ mr r10, r30
+/* 802A5604 002A1264 9B 3E 00 46 */ stb r25, 0x46(r30)
+/* 802A5608 002A1268 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A560C 002A126C 38 80 00 09 */ li r4, 9
+/* 802A5610 002A1270 38 C0 00 4C */ li r6, 0x4c
+/* 802A5614 002A1274 9B 5E 00 47 */ stb r26, 0x47(r30)
+/* 802A5618 002A1278 38 E0 00 00 */ li r7, 0
+/* 802A561C 002A127C 39 00 00 00 */ li r8, 0
+/* 802A5620 002A1280 9B 7E 00 48 */ stb r27, 0x48(r30)
+/* 802A5624 002A1284 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5628 002A1288 4B FF E3 91 */ bl IOS_IoctlAsync
+lbl_802A562C:
+/* 802A562C 002A128C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5630 002A1290 4B F2 1B 35 */ bl _restgpr_23
+/* 802A5634 002A1294 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A5638 002A1298 7C 08 03 A6 */ mtlr r0
+/* 802A563C 002A129C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A5640 002A12A0 4E 80 00 20 */ blr
+
+.global ISFS_Open
+ISFS_Open:
+/* 802A5644 002A12A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5648 002A12A8 7C 08 02 A6 */ mflr r0
+/* 802A564C 002A12AC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5650 002A12B0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5654 002A12B4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A5658 002A12B8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A565C 002A12BC 3B C0 00 00 */ li r30, 0
+/* 802A5660 002A12C0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A5664 002A12C4 7C 9D 23 78 */ mr r29, r4
+/* 802A5668 002A12C8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A566C 002A12CC 7C 7C 1B 78 */ mr r28, r3
+/* 802A5670 002A12D0 41 82 00 18 */ beq lbl_802A5688
+/* 802A5674 002A12D4 38 80 00 40 */ li r4, 0x40
+/* 802A5678 002A12D8 4B FF D2 8D */ bl strnlen
+/* 802A567C 002A12DC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5680 002A12E0 7C 7F 1B 78 */ mr r31, r3
+/* 802A5684 002A12E4 40 82 00 0C */ bne lbl_802A5690
+lbl_802A5688:
+/* 802A5688 002A12E8 3B E0 FF 9B */ li r31, -101
+/* 802A568C 002A12EC 48 00 00 44 */ b lbl_802A56D0
+lbl_802A5690:
+/* 802A5690 002A12F0 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5694 002A12F4 38 80 01 40 */ li r4, 0x140
+/* 802A5698 002A12F8 38 A0 00 20 */ li r5, 0x20
+/* 802A569C 002A12FC 4B FF EC 9D */ bl iosAllocAligned
+/* 802A56A0 002A1300 2C 03 00 00 */ cmpwi r3, 0
+/* 802A56A4 002A1304 7C 7E 1B 78 */ mr r30, r3
+/* 802A56A8 002A1308 40 82 00 0C */ bne lbl_802A56B4
+/* 802A56AC 002A130C 3B E0 FF EA */ li r31, -22
+/* 802A56B0 002A1310 48 00 00 20 */ b lbl_802A56D0
+lbl_802A56B4:
+/* 802A56B4 002A1314 7F 84 E3 78 */ mr r4, r28
+/* 802A56B8 002A1318 38 BF 00 01 */ addi r5, r31, 1
+/* 802A56BC 002A131C 4B D5 E9 45 */ bl memcpy
+/* 802A56C0 002A1320 7F C3 F3 78 */ mr r3, r30
+/* 802A56C4 002A1324 7F A4 EB 78 */ mr r4, r29
+/* 802A56C8 002A1328 4B FF DA 91 */ bl IOS_Open
+/* 802A56CC 002A132C 7C 7F 1B 78 */ mr r31, r3
+lbl_802A56D0:
+/* 802A56D0 002A1330 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A56D4 002A1334 41 82 00 14 */ beq lbl_802A56E8
+/* 802A56D8 002A1338 41 82 00 10 */ beq lbl_802A56E8
+/* 802A56DC 002A133C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A56E0 002A1340 7F C4 F3 78 */ mr r4, r30
+/* 802A56E4 002A1344 4B FF EC 59 */ bl iosFree
+lbl_802A56E8:
+/* 802A56E8 002A1348 7F E3 FB 78 */ mr r3, r31
+/* 802A56EC 002A134C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A56F0 002A1350 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A56F4 002A1354 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A56F8 002A1358 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A56FC 002A135C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5700 002A1360 7C 08 03 A6 */ mtlr r0
+/* 802A5704 002A1364 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5708 002A1368 4E 80 00 20 */ blr
+
+.global ISFS_OpenAsync
+ISFS_OpenAsync:
+/* 802A570C 002A136C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5710 002A1370 7C 08 02 A6 */ mflr r0
+/* 802A5714 002A1374 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5718 002A1378 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A571C 002A137C 4B F2 1A 09 */ bl _savegpr_26
+/* 802A5720 002A1380 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5724 002A1384 7C 7A 1B 78 */ mr r26, r3
+/* 802A5728 002A1388 7C 9B 23 78 */ mr r27, r4
+/* 802A572C 002A138C 7C BC 2B 78 */ mr r28, r5
+/* 802A5730 002A1390 7C DD 33 78 */ mr r29, r6
+/* 802A5734 002A1394 41 82 00 18 */ beq lbl_802A574C
+/* 802A5738 002A1398 38 80 00 40 */ li r4, 0x40
+/* 802A573C 002A139C 4B FF D1 C9 */ bl strnlen
+/* 802A5740 002A13A0 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5744 002A13A4 7C 7F 1B 78 */ mr r31, r3
+/* 802A5748 002A13A8 40 82 00 0C */ bne lbl_802A5754
+lbl_802A574C:
+/* 802A574C 002A13AC 38 60 FF 9B */ li r3, -101
+/* 802A5750 002A13B0 48 00 00 5C */ b lbl_802A57AC
+lbl_802A5754:
+/* 802A5754 002A13B4 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5758 002A13B8 38 80 01 40 */ li r4, 0x140
+/* 802A575C 002A13BC 38 A0 00 20 */ li r5, 0x20
+/* 802A5760 002A13C0 4B FF EB D9 */ bl iosAllocAligned
+/* 802A5764 002A13C4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5768 002A13C8 7C 7E 1B 78 */ mr r30, r3
+/* 802A576C 002A13CC 40 82 00 0C */ bne lbl_802A5778
+/* 802A5770 002A13D0 38 60 FF 8A */ li r3, -118
+/* 802A5774 002A13D4 48 00 00 38 */ b lbl_802A57AC
+lbl_802A5778:
+/* 802A5778 002A13D8 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A577C 002A13DC 38 00 00 00 */ li r0, 0
+/* 802A5780 002A13E0 7F 44 D3 78 */ mr r4, r26
+/* 802A5784 002A13E4 38 BF 00 01 */ addi r5, r31, 1
+/* 802A5788 002A13E8 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A578C 002A13EC 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5790 002A13F0 4B D5 E8 71 */ bl memcpy
+/* 802A5794 002A13F4 3C A0 80 2A */ lis r5, _isfsFuncCb@ha
+/* 802A5798 002A13F8 7F C3 F3 78 */ mr r3, r30
+/* 802A579C 002A13FC 7F 64 DB 78 */ mr r4, r27
+/* 802A57A0 002A1400 7F C6 F3 78 */ mr r6, r30
+/* 802A57A4 002A1404 38 A5 48 14 */ addi r5, r5, _isfsFuncCb@l
+/* 802A57A8 002A1408 4B FF D8 99 */ bl IOS_OpenAsync
+lbl_802A57AC:
+/* 802A57AC 002A140C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A57B0 002A1410 4B F2 19 C1 */ bl _restgpr_26
+/* 802A57B4 002A1414 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A57B8 002A1418 7C 08 03 A6 */ mtlr r0
+/* 802A57BC 002A141C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A57C0 002A1420 4E 80 00 20 */ blr
+
+.global ISFS_GetFileStats
+ISFS_GetFileStats:
+/* 802A57C4 002A1424 2C 04 00 00 */ cmpwi r4, 0
+/* 802A57C8 002A1428 41 82 00 0C */ beq lbl_802A57D4
+/* 802A57CC 002A142C 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A57D0 002A1430 41 82 00 0C */ beq lbl_802A57DC
+lbl_802A57D4:
+/* 802A57D4 002A1434 38 60 FF 9B */ li r3, -101
+/* 802A57D8 002A1438 4E 80 00 20 */ blr
+lbl_802A57DC:
+/* 802A57DC 002A143C 7C 87 23 78 */ mr r7, r4
+/* 802A57E0 002A1440 38 80 00 0B */ li r4, 0xb
+/* 802A57E4 002A1444 38 A0 00 00 */ li r5, 0
+/* 802A57E8 002A1448 38 C0 00 00 */ li r6, 0
+/* 802A57EC 002A144C 39 00 00 08 */ li r8, 8
+/* 802A57F0 002A1450 4B FF E3 00 */ b IOS_Ioctl
+/* 802A57F4 002A1454 4E 80 00 20 */ blr
+
+.global ISFS_Seek
+ISFS_Seek:
+/* 802A57F8 002A1458 4B FF E0 D8 */ b IOS_Seek
+
+.global ISFS_SeekAsync
+ISFS_SeekAsync:
+/* 802A57FC 002A145C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5800 002A1460 7C 08 02 A6 */ mflr r0
+/* 802A5804 002A1464 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5808 002A1468 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A580C 002A146C 4B F2 19 1D */ bl _savegpr_27
+/* 802A5810 002A1470 7C 7B 1B 78 */ mr r27, r3
+/* 802A5814 002A1474 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5818 002A1478 7C 9C 23 78 */ mr r28, r4
+/* 802A581C 002A147C 7C BD 2B 78 */ mr r29, r5
+/* 802A5820 002A1480 7C DE 33 78 */ mr r30, r6
+/* 802A5824 002A1484 7C FF 3B 78 */ mr r31, r7
+/* 802A5828 002A1488 38 80 01 40 */ li r4, 0x140
+/* 802A582C 002A148C 38 A0 00 20 */ li r5, 0x20
+/* 802A5830 002A1490 4B FF EB 09 */ bl iosAllocAligned
+/* 802A5834 002A1494 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5838 002A1498 40 82 00 0C */ bne lbl_802A5844
+/* 802A583C 002A149C 38 60 FF 8A */ li r3, -118
+/* 802A5840 002A14A0 48 00 00 30 */ b lbl_802A5870
+lbl_802A5844:
+/* 802A5844 002A14A4 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A5848 002A14A8 3C C0 80 2A */ lis r6, _isfsFuncCb@ha
+/* 802A584C 002A14AC 38 00 00 00 */ li r0, 0
+/* 802A5850 002A14B0 7F 84 E3 78 */ mr r4, r28
+/* 802A5854 002A14B4 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A5858 002A14B8 7F A5 EB 78 */ mr r5, r29
+/* 802A585C 002A14BC 7C 67 1B 78 */ mr r7, r3
+/* 802A5860 002A14C0 38 C6 48 14 */ addi r6, r6, _isfsFuncCb@l
+/* 802A5864 002A14C4 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5868 002A14C8 7F 63 DB 78 */ mr r3, r27
+/* 802A586C 002A14CC 4B FF DF 85 */ bl IOS_SeekAsync
+lbl_802A5870:
+/* 802A5870 002A14D0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5874 002A14D4 4B F2 19 01 */ bl _restgpr_27
+/* 802A5878 002A14D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A587C 002A14DC 7C 08 03 A6 */ mtlr r0
+/* 802A5880 002A14E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5884 002A14E4 4E 80 00 20 */ blr
+
+.global ISFS_Read
+ISFS_Read:
+/* 802A5888 002A14E8 2C 04 00 00 */ cmpwi r4, 0
+/* 802A588C 002A14EC 41 82 00 0C */ beq lbl_802A5898
+/* 802A5890 002A14F0 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A5894 002A14F4 41 82 00 0C */ beq lbl_802A58A0
+lbl_802A5898:
+/* 802A5898 002A14F8 38 60 FF 9B */ li r3, -101
+/* 802A589C 002A14FC 4E 80 00 20 */ blr
+lbl_802A58A0:
+/* 802A58A0 002A1500 4B FF DC 40 */ b IOS_Read
+/* 802A58A4 002A1504 4E 80 00 20 */ blr
+
+.global ISFS_ReadAsync
+ISFS_ReadAsync:
+/* 802A58A8 002A1508 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A58AC 002A150C 7C 08 02 A6 */ mflr r0
+/* 802A58B0 002A1510 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A58B4 002A1514 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A58B8 002A1518 4B F2 18 71 */ bl _savegpr_27
+/* 802A58BC 002A151C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A58C0 002A1520 7C 7B 1B 78 */ mr r27, r3
+/* 802A58C4 002A1524 7C 9C 23 78 */ mr r28, r4
+/* 802A58C8 002A1528 7C BD 2B 78 */ mr r29, r5
+/* 802A58CC 002A152C 7C DE 33 78 */ mr r30, r6
+/* 802A58D0 002A1530 7C FF 3B 78 */ mr r31, r7
+/* 802A58D4 002A1534 41 82 00 0C */ beq lbl_802A58E0
+/* 802A58D8 002A1538 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A58DC 002A153C 41 82 00 0C */ beq lbl_802A58E8
+lbl_802A58E0:
+/* 802A58E0 002A1540 38 60 FF 9B */ li r3, -101
+/* 802A58E4 002A1544 48 00 00 50 */ b lbl_802A5934
+lbl_802A58E8:
+/* 802A58E8 002A1548 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A58EC 002A154C 38 80 01 40 */ li r4, 0x140
+/* 802A58F0 002A1550 38 A0 00 20 */ li r5, 0x20
+/* 802A58F4 002A1554 4B FF EA 45 */ bl iosAllocAligned
+/* 802A58F8 002A1558 2C 03 00 00 */ cmpwi r3, 0
+/* 802A58FC 002A155C 40 82 00 0C */ bne lbl_802A5908
+/* 802A5900 002A1560 38 60 FF 8A */ li r3, -118
+/* 802A5904 002A1564 48 00 00 30 */ b lbl_802A5934
+lbl_802A5908:
+/* 802A5908 002A1568 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A590C 002A156C 3C C0 80 2A */ lis r6, _isfsFuncCb@ha
+/* 802A5910 002A1570 38 00 00 00 */ li r0, 0
+/* 802A5914 002A1574 7F 84 E3 78 */ mr r4, r28
+/* 802A5918 002A1578 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A591C 002A157C 7F A5 EB 78 */ mr r5, r29
+/* 802A5920 002A1580 7C 67 1B 78 */ mr r7, r3
+/* 802A5924 002A1584 38 C6 48 14 */ addi r6, r6, _isfsFuncCb@l
+/* 802A5928 002A1588 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A592C 002A158C 7F 63 DB 78 */ mr r3, r27
+/* 802A5930 002A1590 4B FF DA B1 */ bl IOS_ReadAsync
+lbl_802A5934:
+/* 802A5934 002A1594 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5938 002A1598 4B F2 18 3D */ bl _restgpr_27
+/* 802A593C 002A159C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5940 002A15A0 7C 08 03 A6 */ mtlr r0
+/* 802A5944 002A15A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5948 002A15A8 4E 80 00 20 */ blr
+
+.global ISFS_Write
+ISFS_Write:
+/* 802A594C 002A15AC 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5950 002A15B0 41 82 00 0C */ beq lbl_802A595C
+/* 802A5954 002A15B4 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A5958 002A15B8 41 82 00 0C */ beq lbl_802A5964
+lbl_802A595C:
+/* 802A595C 002A15BC 38 60 FF 9B */ li r3, -101
+/* 802A5960 002A15C0 4E 80 00 20 */ blr
+lbl_802A5964:
+/* 802A5964 002A15C4 4B FF DD 84 */ b IOS_Write
+/* 802A5968 002A15C8 4E 80 00 20 */ blr
+
+.global ISFS_WriteAsync
+ISFS_WriteAsync:
+/* 802A596C 002A15CC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5970 002A15D0 7C 08 02 A6 */ mflr r0
+/* 802A5974 002A15D4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5978 002A15D8 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A597C 002A15DC 4B F2 17 AD */ bl _savegpr_27
+/* 802A5980 002A15E0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5984 002A15E4 7C 7B 1B 78 */ mr r27, r3
+/* 802A5988 002A15E8 7C 9C 23 78 */ mr r28, r4
+/* 802A598C 002A15EC 7C BD 2B 78 */ mr r29, r5
+/* 802A5990 002A15F0 7C DE 33 78 */ mr r30, r6
+/* 802A5994 002A15F4 7C FF 3B 78 */ mr r31, r7
+/* 802A5998 002A15F8 41 82 00 0C */ beq lbl_802A59A4
+/* 802A599C 002A15FC 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A59A0 002A1600 41 82 00 0C */ beq lbl_802A59AC
+lbl_802A59A4:
+/* 802A59A4 002A1604 38 60 FF 9B */ li r3, -101
+/* 802A59A8 002A1608 48 00 00 50 */ b lbl_802A59F8
+lbl_802A59AC:
+/* 802A59AC 002A160C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A59B0 002A1610 38 80 01 40 */ li r4, 0x140
+/* 802A59B4 002A1614 38 A0 00 20 */ li r5, 0x20
+/* 802A59B8 002A1618 4B FF E9 81 */ bl iosAllocAligned
+/* 802A59BC 002A161C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A59C0 002A1620 40 82 00 0C */ bne lbl_802A59CC
+/* 802A59C4 002A1624 38 60 FF 8A */ li r3, -118
+/* 802A59C8 002A1628 48 00 00 30 */ b lbl_802A59F8
+lbl_802A59CC:
+/* 802A59CC 002A162C 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A59D0 002A1630 3C C0 80 2A */ lis r6, _isfsFuncCb@ha
+/* 802A59D4 002A1634 38 00 00 00 */ li r0, 0
+/* 802A59D8 002A1638 7F 84 E3 78 */ mr r4, r28
+/* 802A59DC 002A163C 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A59E0 002A1640 7F A5 EB 78 */ mr r5, r29
+/* 802A59E4 002A1644 7C 67 1B 78 */ mr r7, r3
+/* 802A59E8 002A1648 38 C6 48 14 */ addi r6, r6, _isfsFuncCb@l
+/* 802A59EC 002A164C 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A59F0 002A1650 7F 63 DB 78 */ mr r3, r27
+/* 802A59F4 002A1654 4B FF DB F5 */ bl IOS_WriteAsync
+lbl_802A59F8:
+/* 802A59F8 002A1658 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A59FC 002A165C 4B F2 17 79 */ bl _restgpr_27
+/* 802A5A00 002A1660 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5A04 002A1664 7C 08 03 A6 */ mtlr r0
+/* 802A5A08 002A1668 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5A0C 002A166C 4E 80 00 20 */ blr
+
+.global ISFS_Close
+ISFS_Close:
+/* 802A5A10 002A1670 4B FF D9 28 */ b IOS_Close
+
+.global ISFS_CloseAsync
+ISFS_CloseAsync:
+/* 802A5A14 002A1674 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5A18 002A1678 7C 08 02 A6 */ mflr r0
+/* 802A5A1C 002A167C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5A20 002A1680 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A5A24 002A1684 7C BF 2B 78 */ mr r31, r5
+/* 802A5A28 002A1688 38 A0 00 20 */ li r5, 0x20
+/* 802A5A2C 002A168C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A5A30 002A1690 7C 9E 23 78 */ mr r30, r4
+/* 802A5A34 002A1694 38 80 01 40 */ li r4, 0x140
+/* 802A5A38 002A1698 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A5A3C 002A169C 7C 7D 1B 78 */ mr r29, r3
+/* 802A5A40 002A16A0 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5A44 002A16A4 4B FF E8 F5 */ bl iosAllocAligned
+/* 802A5A48 002A16A8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5A4C 002A16AC 40 82 00 0C */ bne lbl_802A5A58
+/* 802A5A50 002A16B0 38 60 FF 8A */ li r3, -118
+/* 802A5A54 002A16B4 48 00 00 28 */ b lbl_802A5A7C
+lbl_802A5A58:
+/* 802A5A58 002A16B8 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A5A5C 002A16BC 3C 80 80 2A */ lis r4, _isfsFuncCb@ha
+/* 802A5A60 002A16C0 38 00 00 00 */ li r0, 0
+/* 802A5A64 002A16C4 7C 65 1B 78 */ mr r5, r3
+/* 802A5A68 002A16C8 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A5A6C 002A16CC 38 84 48 14 */ addi r4, r4, _isfsFuncCb@l
+/* 802A5A70 002A16D0 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5A74 002A16D4 7F A3 EB 78 */ mr r3, r29
+/* 802A5A78 002A16D8 4B FF D8 01 */ bl IOS_CloseAsync
+lbl_802A5A7C:
+/* 802A5A7C 002A16DC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5A80 002A16E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A5A84 002A16E4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A5A88 002A16E8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A5A8C 002A16EC 7C 08 03 A6 */ mtlr r0
+/* 802A5A90 002A16F0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5A94 002A16F4 4E 80 00 20 */ blr
+
+.global ISFS_ShutdownAsync
+ISFS_ShutdownAsync:
+/* 802A5A98 002A16F8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A5A9C 002A16FC 7C 08 02 A6 */ mflr r0
+/* 802A5AA0 002A1700 38 A0 00 20 */ li r5, 0x20
+/* 802A5AA4 002A1704 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A5AA8 002A1708 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A5AAC 002A170C 7C 9F 23 78 */ mr r31, r4
+/* 802A5AB0 002A1710 38 80 01 40 */ li r4, 0x140
+/* 802A5AB4 002A1714 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A5AB8 002A1718 7C 7E 1B 78 */ mr r30, r3
+/* 802A5ABC 002A171C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5AC0 002A1720 4B FF E8 79 */ bl iosAllocAligned
+/* 802A5AC4 002A1724 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5AC8 002A1728 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5ACC 002A172C 40 80 00 0C */ bge lbl_802A5AD8
+/* 802A5AD0 002A1730 38 60 FF 9B */ li r3, -101
+/* 802A5AD4 002A1734 48 00 00 3C */ b lbl_802A5B10
+lbl_802A5AD8:
+/* 802A5AD8 002A1738 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A5ADC 002A173C 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A5AE0 002A1740 38 00 00 00 */ li r0, 0
+/* 802A5AE4 002A1744 7C 6A 1B 78 */ mr r10, r3
+/* 802A5AE8 002A1748 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A5AEC 002A174C 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A5AF0 002A1750 38 80 00 0D */ li r4, 0xd
+/* 802A5AF4 002A1754 38 A0 00 00 */ li r5, 0
+/* 802A5AF8 002A1758 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5AFC 002A175C 38 C0 00 00 */ li r6, 0
+/* 802A5B00 002A1760 38 E0 00 00 */ li r7, 0
+/* 802A5B04 002A1764 39 00 00 00 */ li r8, 0
+/* 802A5B08 002A1768 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5B0C 002A176C 4B FF DE AD */ bl IOS_IoctlAsync
+lbl_802A5B10:
+/* 802A5B10 002A1770 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A5B14 002A1774 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A5B18 002A1778 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A5B1C 002A177C 7C 08 03 A6 */ mtlr r0
+/* 802A5B20 002A1780 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A5B24 002A1784 4E 80 00 20 */ blr
diff --git a/asm/SDK/ipcProfile.s b/asm/SDK/ipcProfile.s new file mode 100644 index 0000000..e956ce2 --- /dev/null +++ b/asm/SDK/ipcProfile.s @@ -0,0 +1,133 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global IPCiProfInit
+IPCiProfInit:
+/* 802A4528 002A0188 38 80 00 00 */ li r4, 0
+/* 802A452C 002A018C 3C A0 80 53 */ lis r5, lbl_80536CB0@ha
+/* 802A4530 002A0190 3C C0 80 53 */ lis r6, lbl_80536C30@ha
+/* 802A4534 002A0194 38 00 00 02 */ li r0, 2
+/* 802A4538 002A0198 90 8D AE 10 */ stw r4, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A453C 002A019C 38 A5 6C B0 */ addi r5, r5, lbl_80536CB0@l
+/* 802A4540 002A01A0 38 C6 6C 30 */ addi r6, r6, lbl_80536C30@l
+/* 802A4544 002A01A4 38 60 FF FF */ li r3, -1
+/* 802A4548 002A01A8 90 8D AE 14 */ stw r4, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A454C 002A01AC 7C 09 03 A6 */ mtctr r0
+lbl_802A4550:
+/* 802A4550 002A01B0 90 85 00 00 */ stw r4, 0(r5)
+/* 802A4554 002A01B4 90 66 00 00 */ stw r3, 0(r6)
+/* 802A4558 002A01B8 90 85 00 04 */ stw r4, 4(r5)
+/* 802A455C 002A01BC 90 66 00 04 */ stw r3, 4(r6)
+/* 802A4560 002A01C0 90 85 00 08 */ stw r4, 8(r5)
+/* 802A4564 002A01C4 90 66 00 08 */ stw r3, 8(r6)
+/* 802A4568 002A01C8 90 85 00 0C */ stw r4, 0xc(r5)
+/* 802A456C 002A01CC 90 66 00 0C */ stw r3, 0xc(r6)
+/* 802A4570 002A01D0 90 85 00 10 */ stw r4, 0x10(r5)
+/* 802A4574 002A01D4 90 66 00 10 */ stw r3, 0x10(r6)
+/* 802A4578 002A01D8 90 85 00 14 */ stw r4, 0x14(r5)
+/* 802A457C 002A01DC 90 66 00 14 */ stw r3, 0x14(r6)
+/* 802A4580 002A01E0 90 85 00 18 */ stw r4, 0x18(r5)
+/* 802A4584 002A01E4 90 66 00 18 */ stw r3, 0x18(r6)
+/* 802A4588 002A01E8 90 85 00 1C */ stw r4, 0x1c(r5)
+/* 802A458C 002A01EC 90 66 00 1C */ stw r3, 0x1c(r6)
+/* 802A4590 002A01F0 90 85 00 20 */ stw r4, 0x20(r5)
+/* 802A4594 002A01F4 90 66 00 20 */ stw r3, 0x20(r6)
+/* 802A4598 002A01F8 90 85 00 24 */ stw r4, 0x24(r5)
+/* 802A459C 002A01FC 90 66 00 24 */ stw r3, 0x24(r6)
+/* 802A45A0 002A0200 90 85 00 28 */ stw r4, 0x28(r5)
+/* 802A45A4 002A0204 90 66 00 28 */ stw r3, 0x28(r6)
+/* 802A45A8 002A0208 90 85 00 2C */ stw r4, 0x2c(r5)
+/* 802A45AC 002A020C 90 66 00 2C */ stw r3, 0x2c(r6)
+/* 802A45B0 002A0210 90 85 00 30 */ stw r4, 0x30(r5)
+/* 802A45B4 002A0214 90 66 00 30 */ stw r3, 0x30(r6)
+/* 802A45B8 002A0218 90 85 00 34 */ stw r4, 0x34(r5)
+/* 802A45BC 002A021C 90 66 00 34 */ stw r3, 0x34(r6)
+/* 802A45C0 002A0220 90 85 00 38 */ stw r4, 0x38(r5)
+/* 802A45C4 002A0224 90 66 00 38 */ stw r3, 0x38(r6)
+/* 802A45C8 002A0228 90 85 00 3C */ stw r4, 0x3c(r5)
+/* 802A45CC 002A022C 38 A5 00 40 */ addi r5, r5, 0x40
+/* 802A45D0 002A0230 90 66 00 3C */ stw r3, 0x3c(r6)
+/* 802A45D4 002A0234 38 C6 00 40 */ addi r6, r6, 0x40
+/* 802A45D8 002A0238 42 00 FF 78 */ bdnz lbl_802A4550
+/* 802A45DC 002A023C 4E 80 00 20 */ blr
+
+.global IPCiProfQueueReq
+IPCiProfQueueReq:
+/* 802A45E0 002A0240 80 CD AE 10 */ lwz r6, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A45E4 002A0244 3D 00 80 53 */ lis r8, lbl_80536CB0@ha
+/* 802A45E8 002A0248 80 AD AE 14 */ lwz r5, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A45EC 002A024C 3D 20 80 53 */ lis r9, lbl_80536C30@ha
+/* 802A45F0 002A0250 38 C6 00 01 */ addi r6, r6, 1
+/* 802A45F4 002A0254 38 00 00 20 */ li r0, 0x20
+/* 802A45F8 002A0258 38 A5 00 01 */ addi r5, r5, 1
+/* 802A45FC 002A025C 90 CD AE 10 */ stw r6, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A4600 002A0260 39 08 6C B0 */ addi r8, r8, lbl_80536CB0@l
+/* 802A4604 002A0264 39 29 6C 30 */ addi r9, r9, lbl_80536C30@l
+/* 802A4608 002A0268 90 AD AE 14 */ stw r5, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A460C 002A026C 38 E0 00 00 */ li r7, 0
+/* 802A4610 002A0270 7C 09 03 A6 */ mtctr r0
+lbl_802A4614:
+/* 802A4614 002A0274 80 08 00 00 */ lwz r0, 0(r8)
+/* 802A4618 002A0278 2C 00 00 00 */ cmpwi r0, 0
+/* 802A461C 002A027C 40 82 00 30 */ bne lbl_802A464C
+/* 802A4620 002A0280 80 09 00 00 */ lwz r0, 0(r9)
+/* 802A4624 002A0284 2C 00 FF FF */ cmpwi r0, -1
+/* 802A4628 002A0288 40 82 00 24 */ bne lbl_802A464C
+/* 802A462C 002A028C 3C C0 80 53 */ lis r6, lbl_80536CB0@ha
+/* 802A4630 002A0290 3C A0 80 53 */ lis r5, lbl_80536C30@ha
+/* 802A4634 002A0294 54 E0 10 3A */ slwi r0, r7, 2
+/* 802A4638 002A0298 38 C6 6C B0 */ addi r6, r6, lbl_80536CB0@l
+/* 802A463C 002A029C 38 A5 6C 30 */ addi r5, r5, lbl_80536C30@l
+/* 802A4640 002A02A0 7C 66 01 2E */ stwx r3, r6, r0
+/* 802A4644 002A02A4 7C 85 01 2E */ stwx r4, r5, r0
+/* 802A4648 002A02A8 4E 80 00 20 */ blr
+lbl_802A464C:
+/* 802A464C 002A02AC 39 08 00 04 */ addi r8, r8, 4
+/* 802A4650 002A02B0 39 29 00 04 */ addi r9, r9, 4
+/* 802A4654 002A02B4 38 E7 00 01 */ addi r7, r7, 1
+/* 802A4658 002A02B8 42 00 FF BC */ bdnz lbl_802A4614
+/* 802A465C 002A02BC 4E 80 00 20 */ blr
+
+.global IPCiProfAck
+IPCiProfAck:
+/* 802A4660 002A02C0 80 6D AE 14 */ lwz r3, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A4664 002A02C4 38 03 FF FF */ addi r0, r3, -1
+/* 802A4668 002A02C8 90 0D AE 14 */ stw r0, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A466C 002A02CC 4E 80 00 20 */ blr
+
+.global IPCiProfReply
+IPCiProfReply:
+/* 802A4670 002A02D0 80 AD AE 10 */ lwz r5, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A4674 002A02D4 3C C0 80 53 */ lis r6, lbl_80536CB0@ha
+/* 802A4678 002A02D8 3C E0 80 53 */ lis r7, lbl_80536C30@ha
+/* 802A467C 002A02DC 38 00 00 20 */ li r0, 0x20
+/* 802A4680 002A02E0 38 A5 FF FF */ addi r5, r5, -1
+/* 802A4684 002A02E4 38 C6 6C B0 */ addi r6, r6, lbl_80536CB0@l
+/* 802A4688 002A02E8 90 AD AE 10 */ stw r5, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A468C 002A02EC 38 E7 6C 30 */ addi r7, r7, lbl_80536C30@l
+/* 802A4690 002A02F0 38 A0 00 00 */ li r5, 0
+/* 802A4694 002A02F4 7C 09 03 A6 */ mtctr r0
+lbl_802A4698:
+/* 802A4698 002A02F8 80 06 00 00 */ lwz r0, 0(r6)
+/* 802A469C 002A02FC 7C 03 00 40 */ cmplw r3, r0
+/* 802A46A0 002A0300 40 82 00 38 */ bne lbl_802A46D8
+/* 802A46A4 002A0304 80 07 00 00 */ lwz r0, 0(r7)
+/* 802A46A8 002A0308 7C 04 00 00 */ cmpw r4, r0
+/* 802A46AC 002A030C 40 82 00 2C */ bne lbl_802A46D8
+/* 802A46B0 002A0310 3C 80 80 53 */ lis r4, lbl_80536CB0@ha
+/* 802A46B4 002A0314 3C 60 80 53 */ lis r3, lbl_80536C30@ha
+/* 802A46B8 002A0318 54 A6 10 3A */ slwi r6, r5, 2
+/* 802A46BC 002A031C 38 A0 00 00 */ li r5, 0
+/* 802A46C0 002A0320 38 84 6C B0 */ addi r4, r4, lbl_80536CB0@l
+/* 802A46C4 002A0324 38 63 6C 30 */ addi r3, r3, lbl_80536C30@l
+/* 802A46C8 002A0328 38 00 FF FF */ li r0, -1
+/* 802A46CC 002A032C 7C A4 31 2E */ stwx r5, r4, r6
+/* 802A46D0 002A0330 7C 03 31 2E */ stwx r0, r3, r6
+/* 802A46D4 002A0334 4E 80 00 20 */ blr
+lbl_802A46D8:
+/* 802A46D8 002A0338 38 C6 00 04 */ addi r6, r6, 4
+/* 802A46DC 002A033C 38 E7 00 04 */ addi r7, r7, 4
+/* 802A46E0 002A0340 38 A5 00 01 */ addi r5, r5, 1
+/* 802A46E4 002A0344 42 00 FF B4 */ bdnz lbl_802A4698
+/* 802A46E8 002A0348 4E 80 00 20 */ blr
diff --git a/asm/SDK/ipcclt.s b/asm/SDK/ipcclt.s index c5ed858..4fcfe96 100644 --- a/asm/SDK/ipcclt.s +++ b/asm/SDK/ipcclt.s @@ -165,7 +165,7 @@ lbl_802A2AEC: /* 802A2B28 0029E788 4B FC 83 41 */ bl OSSetCurrentContext
/* 802A2B2C 0029E78C 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A2B30 0029E790 7F E4 FB 78 */ mr r4, r31
-/* 802A2B34 0029E794 48 00 18 09 */ bl func_802A433C
+/* 802A2B34 0029E794 48 00 18 09 */ bl iosFree
/* 802A2B38 0029E798 48 00 00 0C */ b lbl_802A2B44
lbl_802A2B3C:
/* 802A2B3C 0029E79C 38 7F 00 2C */ addi r3, r31, 0x2c
@@ -179,7 +179,7 @@ lbl_802A2B44: /* 802A2B58 0029E7B8 4B FF FD 85 */ bl IPCWriteReg
/* 802A2B5C 0029E7BC 80 9F 00 08 */ lwz r4, 8(r31)
/* 802A2B60 0029E7C0 7F E3 FB 78 */ mr r3, r31
-/* 802A2B64 0029E7C4 48 00 1B 0D */ bl func_802A4670
+/* 802A2B64 0029E7C4 48 00 1B 0D */ bl IPCiProfReply
lbl_802A2B68:
/* 802A2B68 0029E7C8 80 01 02 E4 */ lwz r0, 0x2e4(r1)
/* 802A2B6C 0029E7CC 83 E1 02 DC */ lwz r31, 0x2dc(r1)
@@ -226,7 +226,7 @@ lbl_802A2BC4: /* 802A2C04 0029E864 40 80 00 10 */ bge lbl_802A2C14
/* 802A2C08 0029E868 3B FF 00 01 */ addi r31, r31, 1
/* 802A2C0C 0029E86C 93 ED 89 88 */ stw r31, lbl_8063DC48-_SDA_BASE_(r13)
-/* 802A2C10 0029E870 48 00 1A 51 */ bl cCameraManager_PushWorldUpVector
+/* 802A2C10 0029E870 48 00 1A 51 */ bl IPCiProfAck
lbl_802A2C14:
/* 802A2C14 0029E874 2C 1F 00 00 */ cmpwi r31, 0
/* 802A2C18 0029E878 40 81 01 10 */ ble lbl_802A2D28
@@ -335,7 +335,7 @@ IPCCltInit: lbl_802A2D94:
/* 802A2D94 0029E9F4 7F A3 EB 78 */ mr r3, r29
/* 802A2D98 0029E9F8 38 80 08 00 */ li r4, 0x800
-/* 802A2D9C 0029E9FC 48 00 12 69 */ bl func_802A4004
+/* 802A2D9C 0029E9FC 48 00 12 69 */ bl iosCreateHeap
/* 802A2DA0 0029EA00 90 6D 89 8C */ stw r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A2DA4 0029EA04 7F E3 FB 78 */ mr r3, r31
/* 802A2DA8 0029EA08 4B FF FB 55 */ bl IPCSetBufferLo
@@ -348,7 +348,7 @@ lbl_802A2D94: /* 802A2DC4 0029EA24 38 60 00 01 */ li r3, 1
/* 802A2DC8 0029EA28 38 80 00 38 */ li r4, 0x38
/* 802A2DCC 0029EA2C 4B FF FB 11 */ bl IPCWriteReg
-/* 802A2DD0 0029EA30 48 00 17 59 */ bl func_802A4528
+/* 802A2DD0 0029EA30 48 00 17 59 */ bl IPCiProfInit
lbl_802A2DD4:
/* 802A2DD4 0029EA34 7F C3 F3 78 */ mr r3, r30
/* 802A2DD8 0029EA38 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -423,7 +423,7 @@ lbl_802A2E9C: /* 802A2ECC 0029EB2C 90 A6 00 0C */ stw r5, 0xc(r6)
/* 802A2ED0 0029EB30 90 06 00 04 */ stw r0, 4(r6)
/* 802A2ED4 0029EB34 80 9C 00 08 */ lwz r4, 8(r28)
-/* 802A2ED8 0029EB38 48 00 17 09 */ bl func_802A45E0
+/* 802A2ED8 0029EB38 48 00 17 09 */ bl IPCiProfQueueReq
lbl_802A2EDC:
/* 802A2EDC 0029EB3C 2C 1F 00 00 */ cmpwi r31, 0
/* 802A2EE0 0029EB40 41 82 00 24 */ beq lbl_802A2F04
@@ -433,7 +433,7 @@ lbl_802A2EDC: /* 802A2EF0 0029EB50 41 82 01 10 */ beq lbl_802A3000
/* 802A2EF4 0029EB54 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A2EF8 0029EB58 7F 84 E3 78 */ mr r4, r28
-/* 802A2EFC 0029EB5C 48 00 14 41 */ bl func_802A433C
+/* 802A2EFC 0029EB5C 48 00 14 41 */ bl iosFree
/* 802A2F00 0029EB60 48 00 01 00 */ b lbl_802A3000
lbl_802A2F04:
/* 802A2F04 0029EB64 80 0D 89 88 */ lwz r0, lbl_8063DC48-_SDA_BASE_(r13)
@@ -511,7 +511,7 @@ lbl_802A3000: /* 802A300C 0029EC6C 40 82 00 10 */ bne lbl_802A301C
/* 802A3010 0029EC70 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3014 0029EC74 7F 84 E3 78 */ mr r4, r28
-/* 802A3018 0029EC78 48 00 13 25 */ bl func_802A433C
+/* 802A3018 0029EC78 48 00 13 25 */ bl iosFree
lbl_802A301C:
/* 802A301C 0029EC7C 7F E3 FB 78 */ mr r3, r31
/* 802A3020 0029EC80 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -543,7 +543,7 @@ lbl_802A3078: /* 802A3078 0029ECD8 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A307C 0029ECDC 38 80 00 40 */ li r4, 0x40
/* 802A3080 0029ECE0 38 A0 00 20 */ li r5, 0x20
-/* 802A3084 0029ECE4 48 00 12 B5 */ bl func_802A4338
+/* 802A3084 0029ECE4 48 00 12 B5 */ bl iosAllocAligned
/* 802A3088 0029ECE8 2C 03 00 00 */ cmpwi r3, 0
/* 802A308C 0029ECEC 90 61 00 08 */ stw r3, 8(r1)
/* 802A3090 0029ECF0 40 82 00 0C */ bne lbl_802A309C
@@ -625,7 +625,7 @@ lbl_802A3190: /* 802A3190 0029EDF0 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3194 0029EDF4 38 80 00 40 */ li r4, 0x40
/* 802A3198 0029EDF8 38 A0 00 20 */ li r5, 0x20
-/* 802A319C 0029EDFC 48 00 11 9D */ bl func_802A4338
+/* 802A319C 0029EDFC 48 00 11 9D */ bl iosAllocAligned
/* 802A31A0 0029EE00 2C 03 00 00 */ cmpwi r3, 0
/* 802A31A4 0029EE04 90 61 00 08 */ stw r3, 8(r1)
/* 802A31A8 0029EE08 40 82 00 0C */ bne lbl_802A31B4
@@ -710,7 +710,7 @@ lbl_802A32B4: /* 802A32B4 0029EF14 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A32B8 0029EF18 38 80 00 40 */ li r4, 0x40
/* 802A32BC 0029EF1C 38 A0 00 20 */ li r5, 0x20
-/* 802A32C0 0029EF20 48 00 10 79 */ bl func_802A4338
+/* 802A32C0 0029EF20 48 00 10 79 */ bl iosAllocAligned
/* 802A32C4 0029EF24 2C 03 00 00 */ cmpwi r3, 0
/* 802A32C8 0029EF28 90 61 00 08 */ stw r3, 8(r1)
/* 802A32CC 0029EF2C 40 82 00 0C */ bne lbl_802A32D8
@@ -761,7 +761,7 @@ lbl_802A3364: /* 802A3364 0029EFC4 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3368 0029EFC8 38 80 00 40 */ li r4, 0x40
/* 802A336C 0029EFCC 38 A0 00 20 */ li r5, 0x20
-/* 802A3370 0029EFD0 48 00 0F C9 */ bl func_802A4338
+/* 802A3370 0029EFD0 48 00 0F C9 */ bl iosAllocAligned
/* 802A3374 0029EFD4 2C 03 00 00 */ cmpwi r3, 0
/* 802A3378 0029EFD8 90 61 00 08 */ stw r3, 8(r1)
/* 802A337C 0029EFDC 40 82 00 0C */ bne lbl_802A3388
@@ -814,7 +814,7 @@ lbl_802A341C: /* 802A341C 0029F07C 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3420 0029F080 38 80 00 40 */ li r4, 0x40
/* 802A3424 0029F084 38 A0 00 20 */ li r5, 0x20
-/* 802A3428 0029F088 48 00 0F 11 */ bl func_802A4338
+/* 802A3428 0029F088 48 00 0F 11 */ bl iosAllocAligned
/* 802A342C 0029F08C 2C 03 00 00 */ cmpwi r3, 0
/* 802A3430 0029F090 90 61 00 08 */ stw r3, 8(r1)
/* 802A3434 0029F094 40 82 00 0C */ bne lbl_802A3440
@@ -889,7 +889,7 @@ lbl_802A351C: /* 802A351C 0029F17C 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3520 0029F180 38 80 00 40 */ li r4, 0x40
/* 802A3524 0029F184 38 A0 00 20 */ li r5, 0x20
-/* 802A3528 0029F188 48 00 0E 11 */ bl func_802A4338
+/* 802A3528 0029F188 48 00 0E 11 */ bl iosAllocAligned
/* 802A352C 0029F18C 2C 03 00 00 */ cmpwi r3, 0
/* 802A3530 0029F190 90 61 00 08 */ stw r3, 8(r1)
/* 802A3534 0029F194 40 82 00 0C */ bne lbl_802A3540
@@ -966,7 +966,7 @@ lbl_802A3624: /* 802A3624 0029F284 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3628 0029F288 38 80 00 40 */ li r4, 0x40
/* 802A362C 0029F28C 38 A0 00 20 */ li r5, 0x20
-/* 802A3630 0029F290 48 00 0D 09 */ bl func_802A4338
+/* 802A3630 0029F290 48 00 0D 09 */ bl iosAllocAligned
/* 802A3634 0029F294 2C 03 00 00 */ cmpwi r3, 0
/* 802A3638 0029F298 90 61 00 08 */ stw r3, 8(r1)
/* 802A363C 0029F29C 40 82 00 0C */ bne lbl_802A3648
@@ -1041,7 +1041,7 @@ lbl_802A3724: /* 802A3724 0029F384 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3728 0029F388 38 80 00 40 */ li r4, 0x40
/* 802A372C 0029F38C 38 A0 00 20 */ li r5, 0x20
-/* 802A3730 0029F390 48 00 0C 09 */ bl func_802A4338
+/* 802A3730 0029F390 48 00 0C 09 */ bl iosAllocAligned
/* 802A3734 0029F394 2C 03 00 00 */ cmpwi r3, 0
/* 802A3738 0029F398 90 61 00 08 */ stw r3, 8(r1)
/* 802A373C 0029F39C 40 82 00 0C */ bne lbl_802A3748
@@ -1118,7 +1118,7 @@ lbl_802A382C: /* 802A382C 0029F48C 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3830 0029F490 38 80 00 40 */ li r4, 0x40
/* 802A3834 0029F494 38 A0 00 20 */ li r5, 0x20
-/* 802A3838 0029F498 48 00 0B 01 */ bl func_802A4338
+/* 802A3838 0029F498 48 00 0B 01 */ bl iosAllocAligned
/* 802A383C 0029F49C 2C 03 00 00 */ cmpwi r3, 0
/* 802A3840 0029F4A0 90 61 00 08 */ stw r3, 8(r1)
/* 802A3844 0029F4A4 40 82 00 0C */ bne lbl_802A3850
@@ -1183,7 +1183,7 @@ lbl_802A390C: /* 802A390C 0029F56C 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3910 0029F570 38 80 00 40 */ li r4, 0x40
/* 802A3914 0029F574 38 A0 00 20 */ li r5, 0x20
-/* 802A3918 0029F578 48 00 0A 21 */ bl func_802A4338
+/* 802A3918 0029F578 48 00 0A 21 */ bl iosAllocAligned
/* 802A391C 0029F57C 2C 03 00 00 */ cmpwi r3, 0
/* 802A3920 0029F580 90 61 00 08 */ stw r3, 8(r1)
/* 802A3924 0029F584 40 82 00 0C */ bne lbl_802A3930
@@ -1253,7 +1253,7 @@ lbl_802A3A00: /* 802A3A00 0029F660 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3A04 0029F664 38 80 00 40 */ li r4, 0x40
/* 802A3A08 0029F668 38 A0 00 20 */ li r5, 0x20
-/* 802A3A0C 0029F66C 48 00 09 2D */ bl func_802A4338
+/* 802A3A0C 0029F66C 48 00 09 2D */ bl iosAllocAligned
/* 802A3A10 0029F670 2C 03 00 00 */ cmpwi r3, 0
/* 802A3A14 0029F674 90 61 00 08 */ stw r3, 8(r1)
/* 802A3A18 0029F678 40 82 00 0C */ bne lbl_802A3A24
@@ -1342,7 +1342,7 @@ lbl_802A3B30: /* 802A3B30 0029F790 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3B34 0029F794 38 80 00 40 */ li r4, 0x40
/* 802A3B38 0029F798 38 A0 00 20 */ li r5, 0x20
-/* 802A3B3C 0029F79C 48 00 07 FD */ bl func_802A4338
+/* 802A3B3C 0029F79C 48 00 07 FD */ bl iosAllocAligned
/* 802A3B40 0029F7A0 2C 03 00 00 */ cmpwi r3, 0
/* 802A3B44 0029F7A4 90 61 00 08 */ stw r3, 8(r1)
/* 802A3B48 0029F7A8 40 82 00 0C */ bne lbl_802A3B54
@@ -1526,7 +1526,7 @@ lbl_802A3DA0: /* 802A3DA0 0029FA00 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3DA4 0029FA04 38 80 00 40 */ li r4, 0x40
/* 802A3DA8 0029FA08 38 A0 00 20 */ li r5, 0x20
-/* 802A3DAC 0029FA0C 48 00 05 8D */ bl func_802A4338
+/* 802A3DAC 0029FA0C 48 00 05 8D */ bl iosAllocAligned
/* 802A3DB0 0029FA10 2C 03 00 00 */ cmpwi r3, 0
/* 802A3DB4 0029FA14 90 61 00 08 */ stw r3, 8(r1)
/* 802A3DB8 0029FA18 40 82 00 0C */ bne lbl_802A3DC4
@@ -1588,7 +1588,7 @@ lbl_802A3E7C: /* 802A3E7C 0029FADC 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3E80 0029FAE0 38 80 00 40 */ li r4, 0x40
/* 802A3E84 0029FAE4 38 A0 00 20 */ li r5, 0x20
-/* 802A3E88 0029FAE8 48 00 04 B1 */ bl func_802A4338
+/* 802A3E88 0029FAE8 48 00 04 B1 */ bl iosAllocAligned
/* 802A3E8C 0029FAEC 2C 03 00 00 */ cmpwi r3, 0
/* 802A3E90 0029FAF0 90 61 00 08 */ stw r3, 8(r1)
/* 802A3E94 0029FAF4 40 82 00 0C */ bne lbl_802A3EA0
@@ -1650,7 +1650,7 @@ lbl_802A3F58: /* 802A3F58 0029FBB8 80 6D 89 8C */ lwz r3, lbl_8063DC4C-_SDA_BASE_(r13)
/* 802A3F5C 0029FBBC 38 80 00 40 */ li r4, 0x40
/* 802A3F60 0029FBC0 38 A0 00 20 */ li r5, 0x20
-/* 802A3F64 0029FBC4 48 00 03 D5 */ bl func_802A4338
+/* 802A3F64 0029FBC4 48 00 03 D5 */ bl iosAllocAligned
/* 802A3F68 0029FBC8 2C 03 00 00 */ cmpwi r3, 0
/* 802A3F6C 0029FBCC 90 61 00 08 */ stw r3, 8(r1)
/* 802A3F70 0029FBD0 40 82 00 0C */ bne lbl_802A3F7C
diff --git a/asm/SDK/memory.s b/asm/SDK/memory.s new file mode 100644 index 0000000..69e943a --- /dev/null +++ b/asm/SDK/memory.s @@ -0,0 +1,373 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global iosCreateHeap
+iosCreateHeap:
+/* 802A4004 0029FC64 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4008 0029FC68 7C 08 02 A6 */ mflr r0
+/* 802A400C 0029FC6C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4010 0029FC70 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A4014 0029FC74 3B E0 FF FC */ li r31, -4
+/* 802A4018 0029FC78 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A401C 0029FC7C 7C 9E 23 78 */ mr r30, r4
+/* 802A4020 0029FC80 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A4024 0029FC84 7C 7D 1B 78 */ mr r29, r3
+/* 802A4028 0029FC88 4B FC A7 35 */ bl OSDisableInterrupts
+/* 802A402C 0029FC8C 57 A0 06 FF */ clrlwi. r0, r29, 0x1b
+/* 802A4030 0029FC90 40 82 00 E0 */ bne lbl_802A4110
+/* 802A4034 0029FC94 3C 80 80 53 */ lis r4, 0x8053
+/* 802A4038 0029FC98 84 04 6B B0 */ lwzu r0, 0x6bb0(r4)
+/* 802A403C 0029FC9C 3B E0 00 00 */ li r31, 0
+/* 802A4040 0029FCA0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4044 0029FCA4 41 82 00 78 */ beq lbl_802A40BC
+/* 802A4048 0029FCA8 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 802A404C 0029FCAC 3B E0 00 01 */ li r31, 1
+/* 802A4050 0029FCB0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4054 0029FCB4 41 82 00 68 */ beq lbl_802A40BC
+/* 802A4058 0029FCB8 80 04 00 20 */ lwz r0, 0x20(r4)
+/* 802A405C 0029FCBC 3B E0 00 02 */ li r31, 2
+/* 802A4060 0029FCC0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4064 0029FCC4 41 82 00 58 */ beq lbl_802A40BC
+/* 802A4068 0029FCC8 80 04 00 30 */ lwz r0, 0x30(r4)
+/* 802A406C 0029FCCC 3B E0 00 03 */ li r31, 3
+/* 802A4070 0029FCD0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4074 0029FCD4 41 82 00 48 */ beq lbl_802A40BC
+/* 802A4078 0029FCD8 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 802A407C 0029FCDC 3B E0 00 04 */ li r31, 4
+/* 802A4080 0029FCE0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4084 0029FCE4 41 82 00 38 */ beq lbl_802A40BC
+/* 802A4088 0029FCE8 80 04 00 50 */ lwz r0, 0x50(r4)
+/* 802A408C 0029FCEC 3B E0 00 05 */ li r31, 5
+/* 802A4090 0029FCF0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4094 0029FCF4 41 82 00 28 */ beq lbl_802A40BC
+/* 802A4098 0029FCF8 80 04 00 60 */ lwz r0, 0x60(r4)
+/* 802A409C 0029FCFC 3B E0 00 06 */ li r31, 6
+/* 802A40A0 0029FD00 2C 00 00 00 */ cmpwi r0, 0
+/* 802A40A4 0029FD04 41 82 00 18 */ beq lbl_802A40BC
+/* 802A40A8 0029FD08 80 04 00 70 */ lwz r0, 0x70(r4)
+/* 802A40AC 0029FD0C 3B E0 00 07 */ li r31, 7
+/* 802A40B0 0029FD10 2C 00 00 00 */ cmpwi r0, 0
+/* 802A40B4 0029FD14 41 82 00 08 */ beq lbl_802A40BC
+/* 802A40B8 0029FD18 3B E0 00 08 */ li r31, 8
+lbl_802A40BC:
+/* 802A40BC 0029FD1C 2C 1F 00 08 */ cmpwi r31, 8
+/* 802A40C0 0029FD20 40 82 00 0C */ bne lbl_802A40CC
+/* 802A40C4 0029FD24 3B E0 FF FB */ li r31, -5
+/* 802A40C8 0029FD28 48 00 00 48 */ b lbl_802A4110
+lbl_802A40CC:
+/* 802A40CC 0029FD2C 3C A0 80 53 */ lis r5, lbl_80536BB0@ha
+/* 802A40D0 0029FD30 57 E0 20 36 */ slwi r0, r31, 4
+/* 802A40D4 0029FD34 38 A5 6B B0 */ addi r5, r5, lbl_80536BB0@l
+/* 802A40D8 0029FD38 3C 80 BA BE */ lis r4, 0xbabe
+/* 802A40DC 0029FD3C 7C C5 02 14 */ add r6, r5, r0
+/* 802A40E0 0029FD40 38 00 00 00 */ li r0, 0
+/* 802A40E4 0029FD44 93 A6 00 00 */ stw r29, 0(r6)
+/* 802A40E8 0029FD48 38 BE FF F0 */ addi r5, r30, -16
+/* 802A40EC 0029FD4C 93 C6 00 08 */ stw r30, 8(r6)
+/* 802A40F0 0029FD50 93 A6 00 0C */ stw r29, 0xc(r6)
+/* 802A40F4 0029FD54 90 9D 00 00 */ stw r4, 0(r29)
+/* 802A40F8 0029FD58 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A40FC 0029FD5C 90 A4 00 04 */ stw r5, 4(r4)
+/* 802A4100 0029FD60 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A4104 0029FD64 90 04 00 08 */ stw r0, 8(r4)
+/* 802A4108 0029FD68 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A410C 0029FD6C 90 04 00 0C */ stw r0, 0xc(r4)
+lbl_802A4110:
+/* 802A4110 0029FD70 4B FC A6 75 */ bl OSRestoreInterrupts
+/* 802A4114 0029FD74 7F E3 FB 78 */ mr r3, r31
+/* 802A4118 0029FD78 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A411C 0029FD7C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A4120 0029FD80 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A4124 0029FD84 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A4128 0029FD88 7C 08 03 A6 */ mtlr r0
+/* 802A412C 0029FD8C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4130 0029FD90 4E 80 00 20 */ blr
+__iosAlloc:
+/* 802A4134 0029FD94 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4138 0029FD98 7C 08 02 A6 */ mflr r0
+/* 802A413C 0029FD9C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4140 0029FDA0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A4144 0029FDA4 3B E0 00 00 */ li r31, 0
+/* 802A4148 0029FDA8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A414C 0029FDAC 7C BE 2B 78 */ mr r30, r5
+/* 802A4150 0029FDB0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A4154 0029FDB4 7C 9D 23 78 */ mr r29, r4
+/* 802A4158 0029FDB8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A415C 0029FDBC 7C 7C 1B 78 */ mr r28, r3
+/* 802A4160 0029FDC0 4B FC A5 FD */ bl OSDisableInterrupts
+/* 802A4164 0029FDC4 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4168 0029FDC8 41 82 01 A8 */ beq lbl_802A4310
+/* 802A416C 0029FDCC 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A4170 0029FDD0 41 82 01 A0 */ beq lbl_802A4310
+/* 802A4174 0029FDD4 38 1E FF FF */ addi r0, r30, -1
+/* 802A4178 0029FDD8 7F C0 00 39 */ and. r0, r30, r0
+/* 802A417C 0029FDDC 40 82 01 94 */ bne lbl_802A4310
+/* 802A4180 0029FDE0 28 1E 00 20 */ cmplwi r30, 0x20
+/* 802A4184 0029FDE4 40 80 00 08 */ bge lbl_802A418C
+/* 802A4188 0029FDE8 3B C0 00 20 */ li r30, 0x20
+lbl_802A418C:
+/* 802A418C 0029FDEC 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A4190 0029FDF0 38 1D 00 1F */ addi r0, r29, 0x1f
+/* 802A4194 0029FDF4 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a
+/* 802A4198 0029FDF8 41 80 00 24 */ blt lbl_802A41BC
+/* 802A419C 0029FDFC 2C 1C 00 08 */ cmpwi r28, 8
+/* 802A41A0 0029FE00 40 80 00 1C */ bge lbl_802A41BC
+/* 802A41A4 0029FE04 3C 80 80 53 */ lis r4, lbl_80536BB0@ha
+/* 802A41A8 0029FE08 57 80 20 36 */ slwi r0, r28, 4
+/* 802A41AC 0029FE0C 38 84 6B B0 */ addi r4, r4, lbl_80536BB0@l
+/* 802A41B0 0029FE10 7C 04 00 6E */ lwzux r0, r4, r0
+/* 802A41B4 0029FE14 2C 00 00 00 */ cmpwi r0, 0
+/* 802A41B8 0029FE18 40 82 00 0C */ bne lbl_802A41C4
+lbl_802A41BC:
+/* 802A41BC 0029FE1C 3B E0 00 00 */ li r31, 0
+/* 802A41C0 0029FE20 48 00 01 50 */ b lbl_802A4310
+lbl_802A41C4:
+/* 802A41C4 0029FE24 81 04 00 0C */ lwz r8, 0xc(r4)
+/* 802A41C8 0029FE28 38 DE FF FF */ addi r6, r30, -1
+/* 802A41CC 0029FE2C 38 A0 00 00 */ li r5, 0
+/* 802A41D0 0029FE30 48 00 00 58 */ b lbl_802A4228
+lbl_802A41D4:
+/* 802A41D4 0029FE34 80 E8 00 04 */ lwz r7, 4(r8)
+/* 802A41D8 0029FE38 38 08 00 10 */ addi r0, r8, 0x10
+/* 802A41DC 0029FE3C 7C 00 30 38 */ and r0, r0, r6
+/* 802A41E0 0029FE40 7C 07 E8 40 */ cmplw r7, r29
+/* 802A41E4 0029FE44 7C 00 F0 50 */ subf r0, r0, r30
+/* 802A41E8 0029FE48 7C C0 00 38 */ and r0, r6, r0
+/* 802A41EC 0029FE4C 40 82 00 14 */ bne lbl_802A4200
+/* 802A41F0 0029FE50 2C 00 00 00 */ cmpwi r0, 0
+/* 802A41F4 0029FE54 40 82 00 0C */ bne lbl_802A4200
+/* 802A41F8 0029FE58 7D 05 43 78 */ mr r5, r8
+/* 802A41FC 0029FE5C 48 00 00 34 */ b lbl_802A4230
+lbl_802A4200:
+/* 802A4200 0029FE60 7C 1D 02 14 */ add r0, r29, r0
+/* 802A4204 0029FE64 7C 07 00 40 */ cmplw r7, r0
+/* 802A4208 0029FE68 41 80 00 1C */ blt lbl_802A4224
+/* 802A420C 0029FE6C 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4210 0029FE70 41 82 00 10 */ beq lbl_802A4220
+/* 802A4214 0029FE74 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A4218 0029FE78 7C 07 00 40 */ cmplw r7, r0
+/* 802A421C 0029FE7C 40 80 00 08 */ bge lbl_802A4224
+lbl_802A4220:
+/* 802A4220 0029FE80 7D 05 43 78 */ mr r5, r8
+lbl_802A4224:
+/* 802A4224 0029FE84 81 08 00 0C */ lwz r8, 0xc(r8)
+lbl_802A4228:
+/* 802A4228 0029FE88 2C 08 00 00 */ cmpwi r8, 0
+/* 802A422C 0029FE8C 40 82 FF A8 */ bne lbl_802A41D4
+lbl_802A4230:
+/* 802A4230 0029FE90 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4234 0029FE94 41 82 00 DC */ beq lbl_802A4310
+/* 802A4238 0029FE98 38 FE FF FF */ addi r7, r30, -1
+/* 802A423C 0029FE9C 38 05 00 10 */ addi r0, r5, 0x10
+/* 802A4240 0029FEA0 7C 00 38 38 */ and r0, r0, r7
+/* 802A4244 0029FEA4 80 C5 00 04 */ lwz r6, 4(r5)
+/* 802A4248 0029FEA8 7C 00 F0 50 */ subf r0, r0, r30
+/* 802A424C 0029FEAC 7C E8 00 38 */ and r8, r7, r0
+/* 802A4250 0029FEB0 7C FD 42 14 */ add r7, r29, r8
+/* 802A4254 0029FEB4 38 07 00 10 */ addi r0, r7, 0x10
+/* 802A4258 0029FEB8 7C 06 00 40 */ cmplw r6, r0
+/* 802A425C 0029FEBC 40 81 00 48 */ ble lbl_802A42A4
+/* 802A4260 0029FEC0 7C C5 EA 14 */ add r6, r5, r29
+/* 802A4264 0029FEC4 3C 00 BA BE */ lis r0, 0xbabe
+/* 802A4268 0029FEC8 7D 28 32 14 */ add r9, r8, r6
+/* 802A426C 0029FECC 90 09 00 10 */ stw r0, 0x10(r9)
+/* 802A4270 0029FED0 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A4274 0029FED4 7C 1D 00 50 */ subf r0, r29, r0
+/* 802A4278 0029FED8 7C C8 00 50 */ subf r6, r8, r0
+/* 802A427C 0029FEDC 38 06 FF F0 */ addi r0, r6, -16
+/* 802A4280 0029FEE0 90 09 00 14 */ stw r0, 0x14(r9)
+/* 802A4284 0029FEE4 80 C5 00 0C */ lwz r6, 0xc(r5)
+/* 802A4288 0029FEE8 2C 06 00 00 */ cmpwi r6, 0
+/* 802A428C 0029FEEC 90 C9 00 1C */ stw r6, 0x1c(r9)
+/* 802A4290 0029FEF0 39 29 00 10 */ addi r9, r9, 0x10
+/* 802A4294 0029FEF4 41 82 00 08 */ beq lbl_802A429C
+/* 802A4298 0029FEF8 91 26 00 08 */ stw r9, 8(r6)
+lbl_802A429C:
+/* 802A429C 0029FEFC 91 25 00 0C */ stw r9, 0xc(r5)
+/* 802A42A0 0029FF00 90 E5 00 04 */ stw r7, 4(r5)
+lbl_802A42A4:
+/* 802A42A4 0029FF04 3C C0 BA BE */ lis r6, 0xBABE0001@ha
+/* 802A42A8 0029FF08 38 06 00 01 */ addi r0, r6, 0xBABE0001@l
+/* 802A42AC 0029FF0C 90 05 00 00 */ stw r0, 0(r5)
+/* 802A42B0 0029FF10 80 C5 00 08 */ lwz r6, 8(r5)
+/* 802A42B4 0029FF14 2C 06 00 00 */ cmpwi r6, 0
+/* 802A42B8 0029FF18 41 82 00 10 */ beq lbl_802A42C8
+/* 802A42BC 0029FF1C 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 802A42C0 0029FF20 90 06 00 0C */ stw r0, 0xc(r6)
+/* 802A42C4 0029FF24 48 00 00 0C */ b lbl_802A42D0
+lbl_802A42C8:
+/* 802A42C8 0029FF28 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 802A42CC 0029FF2C 90 04 00 0C */ stw r0, 0xc(r4)
+lbl_802A42D0:
+/* 802A42D0 0029FF30 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 802A42D4 0029FF34 2C 04 00 00 */ cmpwi r4, 0
+/* 802A42D8 0029FF38 41 82 00 0C */ beq lbl_802A42E4
+/* 802A42DC 0029FF3C 80 05 00 08 */ lwz r0, 8(r5)
+/* 802A42E0 0029FF40 90 04 00 08 */ stw r0, 8(r4)
+lbl_802A42E4:
+/* 802A42E4 0029FF44 38 00 00 00 */ li r0, 0
+/* 802A42E8 0029FF48 7F E5 42 14 */ add r31, r5, r8
+/* 802A42EC 0029FF4C 90 05 00 0C */ stw r0, 0xc(r5)
+/* 802A42F0 0029FF50 2C 08 00 00 */ cmpwi r8, 0
+/* 802A42F4 0029FF54 3B FF 00 10 */ addi r31, r31, 0x10
+/* 802A42F8 0029FF58 90 05 00 08 */ stw r0, 8(r5)
+/* 802A42FC 0029FF5C 41 82 00 14 */ beq lbl_802A4310
+/* 802A4300 0029FF60 3C 80 BA BE */ lis r4, 0xBABE0002@ha
+/* 802A4304 0029FF64 38 04 00 02 */ addi r0, r4, 0xBABE0002@l
+/* 802A4308 0029FF68 90 1F FF F0 */ stw r0, -0x10(r31)
+/* 802A430C 0029FF6C 90 BF FF F8 */ stw r5, -8(r31)
+lbl_802A4310:
+/* 802A4310 0029FF70 4B FC A4 75 */ bl OSRestoreInterrupts
+/* 802A4314 0029FF74 7F E3 FB 78 */ mr r3, r31
+/* 802A4318 0029FF78 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A431C 0029FF7C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A4320 0029FF80 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A4324 0029FF84 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A4328 0029FF88 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A432C 0029FF8C 7C 08 03 A6 */ mtlr r0
+/* 802A4330 0029FF90 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4334 0029FF94 4E 80 00 20 */ blr
+
+.global iosAllocAligned
+iosAllocAligned:
+/* 802A4338 0029FF98 4B FF FD FC */ b __iosAlloc
+
+.global iosFree
+iosFree:
+/* 802A433C 0029FF9C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4340 0029FFA0 7C 08 02 A6 */ mflr r0
+/* 802A4344 0029FFA4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4348 0029FFA8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A434C 0029FFAC 3B E0 FF FC */ li r31, -4
+/* 802A4350 0029FFB0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A4354 0029FFB4 7C 9E 23 78 */ mr r30, r4
+/* 802A4358 0029FFB8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A435C 0029FFBC 7C 7D 1B 78 */ mr r29, r3
+/* 802A4360 0029FFC0 4B FC A3 FD */ bl OSDisableInterrupts
+/* 802A4364 0029FFC4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A4368 0029FFC8 41 82 01 9C */ beq lbl_802A4504
+/* 802A436C 0029FFCC 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4370 0029FFD0 41 80 00 28 */ blt lbl_802A4398
+/* 802A4374 0029FFD4 2C 1D 00 08 */ cmpwi r29, 8
+/* 802A4378 0029FFD8 40 80 00 20 */ bge lbl_802A4398
+/* 802A437C 0029FFDC 3C 80 80 53 */ lis r4, lbl_80536BB0@ha
+/* 802A4380 0029FFE0 57 A0 20 36 */ slwi r0, r29, 4
+/* 802A4384 0029FFE4 38 84 6B B0 */ addi r4, r4, lbl_80536BB0@l
+/* 802A4388 0029FFE8 7C A4 02 14 */ add r5, r4, r0
+/* 802A438C 0029FFEC 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A4390 0029FFF0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4394 0029FFF4 40 82 00 0C */ bne lbl_802A43A0
+lbl_802A4398:
+/* 802A4398 0029FFF8 3B E0 FF FC */ li r31, -4
+/* 802A439C 0029FFFC 48 00 01 68 */ b lbl_802A4504
+lbl_802A43A0:
+/* 802A43A0 002A0000 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A43A4 002A0004 7C 1E 00 40 */ cmplw r30, r0
+/* 802A43A8 002A0008 41 80 01 5C */ blt lbl_802A4504
+/* 802A43AC 002A000C 80 05 00 08 */ lwz r0, 8(r5)
+/* 802A43B0 002A0010 7C 04 02 14 */ add r0, r4, r0
+/* 802A43B4 002A0014 7C 1E 00 40 */ cmplw r30, r0
+/* 802A43B8 002A0018 41 81 01 4C */ bgt lbl_802A4504
+/* 802A43BC 002A001C 80 9E FF F0 */ lwz r4, -0x10(r30)
+/* 802A43C0 002A0020 38 DE FF F0 */ addi r6, r30, -16
+/* 802A43C4 002A0024 3C 04 45 42 */ addis r0, r4, 0x4542
+/* 802A43C8 002A0028 28 00 00 02 */ cmplwi r0, 2
+/* 802A43CC 002A002C 40 82 00 08 */ bne lbl_802A43D4
+/* 802A43D0 002A0030 80 C6 00 08 */ lwz r6, 8(r6)
+lbl_802A43D4:
+/* 802A43D4 002A0034 80 86 00 00 */ lwz r4, 0(r6)
+/* 802A43D8 002A0038 3C 04 45 42 */ addis r0, r4, 0x4542
+/* 802A43DC 002A003C 28 00 00 01 */ cmplwi r0, 1
+/* 802A43E0 002A0040 40 82 01 24 */ bne lbl_802A4504
+/* 802A43E4 002A0044 3C 00 BA BE */ lis r0, 0xbabe
+/* 802A43E8 002A0048 90 06 00 00 */ stw r0, 0(r6)
+/* 802A43EC 002A004C 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 802A43F0 002A0050 7C 87 23 78 */ mr r7, r4
+/* 802A43F4 002A0054 48 00 00 1C */ b lbl_802A4410
+lbl_802A43F8:
+/* 802A43F8 002A0058 80 07 00 0C */ lwz r0, 0xc(r7)
+/* 802A43FC 002A005C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4400 002A0060 41 82 00 18 */ beq lbl_802A4418
+/* 802A4404 002A0064 7C 00 30 40 */ cmplw r0, r6
+/* 802A4408 002A0068 41 81 00 10 */ bgt lbl_802A4418
+/* 802A440C 002A006C 7C 07 03 78 */ mr r7, r0
+lbl_802A4410:
+/* 802A4410 002A0070 2C 07 00 00 */ cmpwi r7, 0
+/* 802A4414 002A0074 40 82 FF E4 */ bne lbl_802A43F8
+lbl_802A4418:
+/* 802A4418 002A0078 2C 07 00 00 */ cmpwi r7, 0
+/* 802A441C 002A007C 41 82 00 30 */ beq lbl_802A444C
+/* 802A4420 002A0080 7C 06 38 40 */ cmplw r6, r7
+/* 802A4424 002A0084 40 81 00 28 */ ble lbl_802A444C
+/* 802A4428 002A0088 90 E6 00 08 */ stw r7, 8(r6)
+/* 802A442C 002A008C 80 07 00 0C */ lwz r0, 0xc(r7)
+/* 802A4430 002A0090 90 06 00 0C */ stw r0, 0xc(r6)
+/* 802A4434 002A0094 90 C7 00 0C */ stw r6, 0xc(r7)
+/* 802A4438 002A0098 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A443C 002A009C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4440 002A00A0 41 82 00 2C */ beq lbl_802A446C
+/* 802A4444 002A00A4 90 C4 00 08 */ stw r6, 8(r4)
+/* 802A4448 002A00A8 48 00 00 24 */ b lbl_802A446C
+lbl_802A444C:
+/* 802A444C 002A00AC 90 86 00 0C */ stw r4, 0xc(r6)
+/* 802A4450 002A00B0 38 00 00 00 */ li r0, 0
+/* 802A4454 002A00B4 90 C5 00 0C */ stw r6, 0xc(r5)
+/* 802A4458 002A00B8 90 06 00 08 */ stw r0, 8(r6)
+/* 802A445C 002A00BC 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A4460 002A00C0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4464 002A00C4 41 82 00 08 */ beq lbl_802A446C
+/* 802A4468 002A00C8 90 C4 00 08 */ stw r6, 8(r4)
+lbl_802A446C:
+/* 802A446C 002A00CC 2C 06 00 00 */ cmpwi r6, 0
+/* 802A4470 002A00D0 41 82 00 44 */ beq lbl_802A44B4
+/* 802A4474 002A00D4 80 06 00 04 */ lwz r0, 4(r6)
+/* 802A4478 002A00D8 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 802A447C 002A00DC 7C 86 02 14 */ add r4, r6, r0
+/* 802A4480 002A00E0 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A4484 002A00E4 7C 05 00 40 */ cmplw r5, r0
+/* 802A4488 002A00E8 40 82 00 2C */ bne lbl_802A44B4
+/* 802A448C 002A00EC 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 802A4490 002A00F0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4494 002A00F4 90 86 00 0C */ stw r4, 0xc(r6)
+/* 802A4498 002A00F8 41 82 00 08 */ beq lbl_802A44A0
+/* 802A449C 002A00FC 90 C4 00 08 */ stw r6, 8(r4)
+lbl_802A44A0:
+/* 802A44A0 002A0100 80 86 00 04 */ lwz r4, 4(r6)
+/* 802A44A4 002A0104 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A44A8 002A0108 7C 80 22 14 */ add r4, r0, r4
+/* 802A44AC 002A010C 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A44B0 002A0110 90 06 00 04 */ stw r0, 4(r6)
+lbl_802A44B4:
+/* 802A44B4 002A0114 80 A6 00 08 */ lwz r5, 8(r6)
+/* 802A44B8 002A0118 2C 05 00 00 */ cmpwi r5, 0
+/* 802A44BC 002A011C 41 82 00 44 */ beq lbl_802A4500
+/* 802A44C0 002A0120 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A44C4 002A0124 80 C5 00 0C */ lwz r6, 0xc(r5)
+/* 802A44C8 002A0128 7C 85 02 14 */ add r4, r5, r0
+/* 802A44CC 002A012C 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A44D0 002A0130 7C 06 00 40 */ cmplw r6, r0
+/* 802A44D4 002A0134 40 82 00 2C */ bne lbl_802A4500
+/* 802A44D8 002A0138 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A44DC 002A013C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A44E0 002A0140 90 85 00 0C */ stw r4, 0xc(r5)
+/* 802A44E4 002A0144 41 82 00 08 */ beq lbl_802A44EC
+/* 802A44E8 002A0148 90 A4 00 08 */ stw r5, 8(r4)
+lbl_802A44EC:
+/* 802A44EC 002A014C 80 85 00 04 */ lwz r4, 4(r5)
+/* 802A44F0 002A0150 80 06 00 04 */ lwz r0, 4(r6)
+/* 802A44F4 002A0154 7C 80 22 14 */ add r4, r0, r4
+/* 802A44F8 002A0158 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A44FC 002A015C 90 05 00 04 */ stw r0, 4(r5)
+lbl_802A4500:
+/* 802A4500 002A0160 3B E0 00 00 */ li r31, 0
+lbl_802A4504:
+/* 802A4504 002A0164 4B FC A2 81 */ bl OSRestoreInterrupts
+/* 802A4508 002A0168 7F E3 FB 78 */ mr r3, r31
+/* 802A450C 002A016C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A4510 002A0170 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A4514 002A0174 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A4518 002A0178 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A451C 002A017C 7C 08 03 A6 */ mtlr r0
+/* 802A4520 002A0180 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4524 002A0184 4E 80 00 20 */ blr
|