summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-04 16:53:02 -0400
committerMax <mparisi@stevens.edu>2020-10-04 16:53:02 -0400
commit937a9a8b16bcd521e78f733d7c630f9f68a04a04 (patch)
treea663a17eeace974f7534af144090f0e565c6d322 /asm/SDK
parente2ff518d54b4791c178a4fb0da6e07f0a077d383 (diff)
split ipcMain.s and ipcclt.s
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/DVD/dvd_broadway.s44
-rw-r--r--asm/SDK/OS/OS.s2
-rw-r--r--asm/SDK/OS/OSExec.s16
-rw-r--r--asm/SDK/OS/OSStateTM.s24
-rw-r--r--asm/SDK/ipcMain.s55
-rw-r--r--asm/SDK/ipcclt.s1695
6 files changed, 1793 insertions, 43 deletions
diff --git a/asm/SDK/DVD/dvd_broadway.s b/asm/SDK/DVD/dvd_broadway.s
index 1898c16..16f87ec 100644
--- a/asm/SDK/DVD/dvd_broadway.s
+++ b/asm/SDK/DVD/dvd_broadway.s
@@ -120,7 +120,7 @@ DVDLowInit:
/* 8028D2B0 00288F10 40 82 01 84 */ bne lbl_8028D434
/* 8028D2B4 00288F14 38 00 00 01 */ li r0, 1
/* 8028D2B8 00288F18 98 0D AA B5 */ stb r0, lbl_8063FD75-_SDA_BASE_(r13)
-/* 8028D2BC 00288F1C 48 01 5A 85 */ bl func_802A2D40
+/* 8028D2BC 00288F1C 48 01 5A 85 */ bl IPCCltInit
/* 8028D2C0 00288F20 2C 03 00 00 */ cmpwi r3, 0
/* 8028D2C4 00288F24 41 82 00 1C */ beq lbl_8028D2E0
/* 8028D2C8 00288F28 7C 64 1B 78 */ mr r4, r3
@@ -130,9 +130,9 @@ DVDLowInit:
/* 8028D2D8 00288F38 38 60 00 00 */ li r3, 0
/* 8028D2DC 00288F3C 48 00 01 FC */ b lbl_8028D4D8
lbl_8028D2E0:
-/* 8028D2E0 00288F40 48 01 56 15 */ bl func_802A28F4
+/* 8028D2E0 00288F40 48 01 56 15 */ bl IPCGetBufferLo
/* 8028D2E4 00288F44 7C 7E 1B 78 */ mr r30, r3
-/* 8028D2E8 00288F48 48 01 56 05 */ bl func_802A28EC
+/* 8028D2E8 00288F48 48 01 56 05 */ bl IPCGetBufferHi
/* 8028D2EC 00288F4C 57 C0 06 FF */ clrlwi. r0, r30, 0x1b
/* 8028D2F0 00288F50 41 82 00 0C */ beq lbl_8028D2FC
/* 8028D2F4 00288F54 38 1E 00 1F */ addi r0, r30, 0x1f
@@ -147,7 +147,7 @@ lbl_8028D2FC:
/* 8028D314 00288F74 4B D7 A7 B1 */ bl func_80007AC4
lbl_8028D318:
/* 8028D318 00288F78 38 7E 00 80 */ addi r3, r30, 0x80
-/* 8028D31C 00288F7C 48 01 55 E1 */ bl func_802A28FC
+/* 8028D31C 00288F7C 48 01 55 E1 */ bl IPCSetBufferLo
/* 8028D320 00288F80 2C 1E 00 00 */ cmpwi r30, 0
/* 8028D324 00288F84 93 CD AA C4 */ stw r30, lbl_8063FD84-_SDA_BASE_(r13)
/* 8028D328 00288F88 40 82 00 18 */ bne lbl_8028D340
@@ -157,9 +157,9 @@ lbl_8028D318:
/* 8028D338 00288F98 38 00 00 00 */ li r0, 0
/* 8028D33C 00288F9C 48 00 00 68 */ b lbl_8028D3A4
lbl_8028D340:
-/* 8028D340 00288FA0 48 01 55 B5 */ bl func_802A28F4
+/* 8028D340 00288FA0 48 01 55 B5 */ bl IPCGetBufferLo
/* 8028D344 00288FA4 7C 7E 1B 78 */ mr r30, r3
-/* 8028D348 00288FA8 48 01 55 A5 */ bl func_802A28EC
+/* 8028D348 00288FA8 48 01 55 A5 */ bl IPCGetBufferHi
/* 8028D34C 00288FAC 57 C0 06 FF */ clrlwi. r0, r30, 0x1b
/* 8028D350 00288FB0 41 82 00 0C */ beq lbl_8028D35C
/* 8028D354 00288FB4 38 1E 00 1F */ addi r0, r30, 0x1f
@@ -174,7 +174,7 @@ lbl_8028D35C:
/* 8028D374 00288FD4 4B D7 A7 51 */ bl func_80007AC4
lbl_8028D378:
/* 8028D378 00288FD8 38 7E 00 20 */ addi r3, r30, 0x20
-/* 8028D37C 00288FDC 48 01 55 81 */ bl func_802A28FC
+/* 8028D37C 00288FDC 48 01 55 81 */ bl IPCSetBufferLo
/* 8028D380 00288FE0 2C 1E 00 00 */ cmpwi r30, 0
/* 8028D384 00288FE4 93 CD AA C0 */ stw r30, lbl_8063FD80-_SDA_BASE_(r13)
/* 8028D388 00288FE8 40 82 00 18 */ bne lbl_8028D3A0
@@ -230,7 +230,7 @@ lbl_8028D434:
/* 8028D440 002890A0 4B F4 0F 51 */ bl strncpy
/* 8028D444 002890A4 80 6D AA C0 */ lwz r3, lbl_8063FD80-_SDA_BASE_(r13)
/* 8028D448 002890A8 38 80 00 00 */ li r4, 0
-/* 8028D44C 002890AC 48 01 5D 0D */ bl func_802A3158
+/* 8028D44C 002890AC 48 01 5D 0D */ bl IOS_Open
/* 8028D450 002890B0 2C 03 00 00 */ cmpwi r3, 0
/* 8028D454 002890B4 90 6D 88 D0 */ stw r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028D458 002890B8 41 80 00 0C */ blt lbl_8028D464
@@ -367,7 +367,7 @@ lbl_8028D5EC:
/* 8028D620 00289280 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028D624 00289284 7C A5 02 14 */ add r5, r5, r0
/* 8028D628 00289288 39 00 00 20 */ li r8, 0x20
-/* 8028D62C 0028928C 48 01 63 8D */ bl func_802A39B8
+/* 8028D62C 0028928C 48 01 63 8D */ bl IOS_IoctlAsync
/* 8028D630 00289290 2C 03 00 00 */ cmpwi r3, 0
/* 8028D634 00289294 41 82 00 24 */ beq lbl_8028D658
/* 8028D638 00289298 7C 64 1B 78 */ mr r4, r3
@@ -538,7 +538,7 @@ lbl_8028D850:
/* 8028D884 002894E4 38 A0 00 03 */ li r5, 3
/* 8028D888 002894E8 38 C0 00 02 */ li r6, 2
/* 8028D88C 002894EC 90 0A 00 24 */ stw r0, 0x24(r10)
-/* 8028D890 002894F0 48 01 64 CD */ bl func_802A3D5C
+/* 8028D890 002894F0 48 01 64 CD */ bl IOS_IoctlvAsync
/* 8028D894 002894F4 2C 03 00 00 */ cmpwi r3, 0
/* 8028D898 002894F8 41 82 00 24 */ beq lbl_8028D8BC
/* 8028D89C 002894FC 7C 64 1B 78 */ mr r4, r3
@@ -640,7 +640,7 @@ lbl_8028D9BC:
/* 8028D9F0 00289650 38 C0 00 20 */ li r6, 0x20
/* 8028D9F4 00289654 38 E0 00 00 */ li r7, 0
/* 8028D9F8 00289658 39 00 00 00 */ li r8, 0
-/* 8028D9FC 0028965C 48 01 5F BD */ bl func_802A39B8
+/* 8028D9FC 0028965C 48 01 5F BD */ bl IOS_IoctlAsync
/* 8028DA00 00289660 2C 03 00 00 */ cmpwi r3, 0
/* 8028DA04 00289664 41 82 00 24 */ beq lbl_8028DA28
/* 8028DA08 00289668 7C 64 1B 78 */ mr r4, r3
@@ -752,7 +752,7 @@ lbl_8028DB28:
/* 8028DB84 002897E4 54 00 28 34 */ slwi r0, r0, 5
/* 8028DB88 002897E8 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028DB8C 002897EC 7C A5 02 14 */ add r5, r5, r0
-/* 8028DB90 002897F0 48 01 5E 29 */ bl func_802A39B8
+/* 8028DB90 002897F0 48 01 5E 29 */ bl IOS_IoctlAsync
/* 8028DB94 002897F4 2C 03 00 00 */ cmpwi r3, 0
/* 8028DB98 002897F8 41 82 00 24 */ beq lbl_8028DBBC
/* 8028DB9C 002897FC 7C 64 1B 78 */ mr r4, r3
@@ -864,7 +864,7 @@ lbl_8028DCB8:
/* 8028DD18 00289978 54 00 28 34 */ slwi r0, r0, 5
/* 8028DD1C 0028997C 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028DD20 00289980 7C A5 02 14 */ add r5, r5, r0
-/* 8028DD24 00289984 48 01 5C 95 */ bl func_802A39B8
+/* 8028DD24 00289984 48 01 5C 95 */ bl IOS_IoctlAsync
/* 8028DD28 00289988 2C 03 00 00 */ cmpwi r3, 0
/* 8028DD2C 0028998C 41 82 00 24 */ beq lbl_8028DD50
/* 8028DD30 00289990 7C 64 1B 78 */ mr r4, r3
@@ -965,7 +965,7 @@ lbl_8028DE4C:
/* 8028DE80 00289AE0 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028DE84 00289AE4 7C A5 02 14 */ add r5, r5, r0
/* 8028DE88 00289AE8 39 00 00 20 */ li r8, 0x20
-/* 8028DE8C 00289AEC 48 01 5B 2D */ bl func_802A39B8
+/* 8028DE8C 00289AEC 48 01 5B 2D */ bl IOS_IoctlAsync
/* 8028DE90 00289AF0 2C 03 00 00 */ cmpwi r3, 0
/* 8028DE94 00289AF4 41 82 00 24 */ beq lbl_8028DEB8
/* 8028DE98 00289AF8 7C 64 1B 78 */ mr r4, r3
@@ -1066,7 +1066,7 @@ lbl_8028DFB0:
/* 8028DFE8 00289C48 7C A5 02 14 */ add r5, r5, r0
/* 8028DFEC 00289C4C 38 C0 00 20 */ li r6, 0x20
/* 8028DFF0 00289C50 39 00 00 20 */ li r8, 0x20
-/* 8028DFF4 00289C54 48 01 59 C5 */ bl func_802A39B8
+/* 8028DFF4 00289C54 48 01 59 C5 */ bl IOS_IoctlAsync
/* 8028DFF8 00289C58 2C 03 00 00 */ cmpwi r3, 0
/* 8028DFFC 00289C5C 41 82 00 24 */ beq lbl_8028E020
/* 8028E000 00289C60 7C 64 1B 78 */ mr r4, r3
@@ -1178,7 +1178,7 @@ lbl_8028E124:
/* 8028E170 00289DD0 54 00 28 34 */ slwi r0, r0, 5
/* 8028E174 00289DD4 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028E178 00289DD8 7C A5 02 14 */ add r5, r5, r0
-/* 8028E17C 00289DDC 48 01 58 3D */ bl func_802A39B8
+/* 8028E17C 00289DDC 48 01 58 3D */ bl IOS_IoctlAsync
/* 8028E180 00289DE0 2C 03 00 00 */ cmpwi r3, 0
/* 8028E184 00289DE4 41 82 00 24 */ beq lbl_8028E1A8
/* 8028E188 00289DE8 7C 64 1B 78 */ mr r4, r3
@@ -1290,7 +1290,7 @@ lbl_8028E2A4:
/* 8028E304 00289F64 54 00 28 34 */ slwi r0, r0, 5
/* 8028E308 00289F68 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028E30C 00289F6C 7C A5 02 14 */ add r5, r5, r0
-/* 8028E310 00289F70 48 01 56 A9 */ bl func_802A39B8
+/* 8028E310 00289F70 48 01 56 A9 */ bl IOS_IoctlAsync
/* 8028E314 00289F74 2C 03 00 00 */ cmpwi r3, 0
/* 8028E318 00289F78 41 82 00 24 */ beq lbl_8028E33C
/* 8028E31C 00289F7C 7C 64 1B 78 */ mr r4, r3
@@ -1397,7 +1397,7 @@ lbl_8028E438:
/* 8028E484 0028A0E4 54 00 28 34 */ slwi r0, r0, 5
/* 8028E488 0028A0E8 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028E48C 0028A0EC 7C A5 02 14 */ add r5, r5, r0
-/* 8028E490 0028A0F0 48 01 55 29 */ bl func_802A39B8
+/* 8028E490 0028A0F0 48 01 55 29 */ bl IOS_IoctlAsync
/* 8028E494 0028A0F4 2C 03 00 00 */ cmpwi r3, 0
/* 8028E498 0028A0F8 41 82 00 24 */ beq lbl_8028E4BC
/* 8028E49C 0028A0FC 7C 64 1B 78 */ mr r4, r3
@@ -1517,7 +1517,7 @@ lbl_8028E5D8:
/* 8028E634 0028A294 54 00 28 34 */ slwi r0, r0, 5
/* 8028E638 0028A298 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028E63C 0028A29C 7C A5 02 14 */ add r5, r5, r0
-/* 8028E640 0028A2A0 48 01 53 79 */ bl func_802A39B8
+/* 8028E640 0028A2A0 48 01 53 79 */ bl IOS_IoctlAsync
/* 8028E644 0028A2A4 2C 03 00 00 */ cmpwi r3, 0
/* 8028E648 0028A2A8 41 82 00 24 */ beq lbl_8028E66C
/* 8028E64C 0028A2AC 7C 64 1B 78 */ mr r4, r3
@@ -1623,7 +1623,7 @@ lbl_8028E768:
/* 8028E7B0 0028A410 54 00 28 34 */ slwi r0, r0, 5
/* 8028E7B4 0028A414 80 6D 88 D0 */ lwz r3, lbl_8063DB90-_SDA_BASE_(r13)
/* 8028E7B8 0028A418 7C A5 02 14 */ add r5, r5, r0
-/* 8028E7BC 0028A41C 48 01 51 FD */ bl func_802A39B8
+/* 8028E7BC 0028A41C 48 01 51 FD */ bl IOS_IoctlAsync
/* 8028E7C0 0028A420 2C 03 00 00 */ cmpwi r3, 0
/* 8028E7C4 0028A424 41 82 00 24 */ beq lbl_8028E7E8
/* 8028E7C8 0028A428 7C 64 1B 78 */ mr r4, r3
@@ -1731,7 +1731,7 @@ lbl_8028E8F0:
/* 8028E928 0028A588 38 80 00 7A */ li r4, 0x7a
/* 8028E92C 0028A58C 38 C0 00 20 */ li r6, 0x20
/* 8028E930 0028A590 39 00 00 20 */ li r8, 0x20
-/* 8028E934 0028A594 48 01 50 85 */ bl func_802A39B8
+/* 8028E934 0028A594 48 01 50 85 */ bl IOS_IoctlAsync
/* 8028E938 0028A598 2C 03 00 00 */ cmpwi r3, 0
/* 8028E93C 0028A59C 41 82 00 24 */ beq lbl_8028E960
/* 8028E940 0028A5A0 7C 64 1B 78 */ mr r4, r3
@@ -1847,7 +1847,7 @@ lbl_8028EA74:
/* 8028EAA8 0028A708 38 C0 00 20 */ li r6, 0x20
/* 8028EAAC 0028A70C 38 E0 00 00 */ li r7, 0
/* 8028EAB0 0028A710 39 00 00 00 */ li r8, 0
-/* 8028EAB4 0028A714 48 01 4F 05 */ bl func_802A39B8
+/* 8028EAB4 0028A714 48 01 4F 05 */ bl IOS_IoctlAsync
/* 8028EAB8 0028A718 2C 03 00 00 */ cmpwi r3, 0
/* 8028EABC 0028A71C 41 82 00 24 */ beq lbl_8028EAE0
/* 8028EAC0 0028A720 7C 64 1B 78 */ mr r4, r3
diff --git a/asm/SDK/OS/OS.s b/asm/SDK/OS/OS.s
index 2a71753..cc70093 100644
--- a/asm/SDK/OS/OS.s
+++ b/asm/SDK/OS/OS.s
@@ -964,7 +964,7 @@ lbl_802690DC:
/* 802690DC 00264D3C 4B FF F6 C1 */ bl ClearArena
/* 802690E0 00264D40 4B FF F8 99 */ bl ClearMEM2Arena
/* 802690E4 00264D44 48 00 56 8D */ bl OSEnableInterrupts
-/* 802690E8 00264D48 48 03 9C 59 */ bl func_802A2D40
+/* 802690E8 00264D48 48 03 9C 59 */ bl IPCCltInit
/* 802690EC 00264D4C 80 0D A7 6C */ lwz r0, lbl_8063FA2C-_SDA_BASE_(r13)
/* 802690F0 00264D50 2C 00 00 00 */ cmpwi r0, 0
/* 802690F4 00264D54 40 82 00 28 */ bne lbl_8026911C
diff --git a/asm/SDK/OS/OSExec.s b/asm/SDK/OS/OSExec.s
index 086dde2..5cfdf06 100644
--- a/asm/SDK/OS/OSExec.s
+++ b/asm/SDK/OS/OSExec.s
@@ -311,7 +311,7 @@ lbl_8026BF5C:
/* 8026BF6C 00267BCC 83 85 01 84 */ lwz r28, 0x184(r5)
/* 8026BF70 00267BD0 38 80 00 00 */ li r4, 0
/* 8026BF74 00267BD4 83 65 01 88 */ lwz r27, 0x188(r5)
-/* 8026BF78 00267BD8 48 03 71 E1 */ bl func_802A3158
+/* 8026BF78 00267BD8 48 03 71 E1 */ bl IOS_Open
/* 8026BF7C 00267BDC 2C 03 00 00 */ cmpwi r3, 0
/* 8026BF80 00267BE0 90 61 00 0C */ stw r3, 0xc(r1)
/* 8026BF84 00267BE4 40 80 00 08 */ bge lbl_8026BF8C
@@ -377,7 +377,7 @@ lbl_8026C05C:
/* 8026C05C 00267CBC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8026C060 00267CC0 2C 03 00 00 */ cmpwi r3, 0
/* 8026C064 00267CC4 41 80 00 18 */ blt lbl_8026C07C
-/* 8026C068 00267CC8 48 03 72 D1 */ bl func_802A3338
+/* 8026C068 00267CC8 48 03 72 D1 */ bl IOS_Close
/* 8026C06C 00267CCC 2C 03 00 00 */ cmpwi r3, 0
/* 8026C070 00267CD0 40 82 00 0C */ bne lbl_8026C07C
/* 8026C074 00267CD4 38 00 FF FF */ li r0, -1
@@ -527,7 +527,7 @@ __OSLaunchMenu:
/* 8026C278 00267ED8 98 C1 00 09 */ stb r6, 9(r1)
/* 8026C27C 00267EDC 98 A1 00 0A */ stb r5, 0xa(r1)
/* 8026C280 00267EE0 98 01 00 0B */ stb r0, 0xb(r1)
-/* 8026C284 00267EE4 48 03 6E D5 */ bl func_802A3158
+/* 8026C284 00267EE4 48 03 6E D5 */ bl IOS_Open
/* 8026C288 00267EE8 2C 03 00 00 */ cmpwi r3, 0
/* 8026C28C 00267EEC 90 61 00 0C */ stw r3, 0xc(r1)
/* 8026C290 00267EF0 40 80 00 08 */ bge lbl_8026C298
@@ -590,7 +590,7 @@ func_8026C328:
/* 8026C354 00267FB4 90 61 00 24 */ stw r3, 0x24(r1)
/* 8026C358 00267FB8 38 6D 87 C0 */ addi r3, r13, lbl_8063DA80-_SDA_BASE_
/* 8026C35C 00267FBC 90 01 00 20 */ stw r0, 0x20(r1)
-/* 8026C360 00267FC0 48 03 6D F9 */ bl func_802A3158
+/* 8026C360 00267FC0 48 03 6D F9 */ bl IOS_Open
/* 8026C364 00267FC4 2C 03 00 00 */ cmpwi r3, 0
/* 8026C368 00267FC8 90 61 00 20 */ stw r3, 0x20(r1)
/* 8026C36C 00267FCC 7C 60 1B 78 */ mr r0, r3
@@ -618,7 +618,7 @@ lbl_8026C3A8:
/* 8026C3B8 00268018 90 81 00 64 */ stw r4, 0x64(r1)
/* 8026C3BC 0026801C 38 80 00 20 */ li r4, 0x20
/* 8026C3C0 00268020 38 C0 00 01 */ li r6, 1
-/* 8026C3C4 00268024 48 03 7A 7D */ bl func_802A3E40
+/* 8026C3C4 00268024 48 03 7A 7D */ bl IOS_Ioctlv
/* 8026C3C8 00268028 2C 03 00 00 */ cmpwi r3, 0
/* 8026C3CC 0026802C 40 82 00 14 */ bne lbl_8026C3E0
/* 8026C3D0 00268030 80 01 00 80 */ lwz r0, 0x80(r1)
@@ -1299,7 +1299,7 @@ lbl_8026CD1C:
/* 8026CD4C 002689AC 91 81 00 28 */ stw r12, 0x28(r1)
/* 8026CD50 002689B0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8026CD54 002689B4 80 63 00 00 */ lwz r3, 0(r3)
-/* 8026CD58 002689B8 48 03 70 E9 */ bl func_802A3E40
+/* 8026CD58 002689B8 48 03 70 E9 */ bl IOS_Ioctlv
/* 8026CD5C 002689BC 2C 03 00 00 */ cmpwi r3, 0
/* 8026CD60 002689C0 40 82 00 68 */ bne lbl_8026CDC8
/* 8026CD64 002689C4 80 01 00 60 */ lwz r0, 0x60(r1)
@@ -1328,7 +1328,7 @@ lbl_8026CD84:
/* 8026CDB8 00268A18 1C 00 00 D8 */ mulli r0, r0, 0xd8
/* 8026CDBC 00268A1C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8026CDC0 00268A20 80 63 00 00 */ lwz r3, 0(r3)
-/* 8026CDC4 00268A24 48 03 70 7D */ bl func_802A3E40
+/* 8026CDC4 00268A24 48 03 70 7D */ bl IOS_Ioctlv
lbl_8026CDC8:
/* 8026CDC8 00268A28 81 41 00 00 */ lwz r10, 0(r1)
/* 8026CDCC 00268A2C 80 0A 00 04 */ lwz r0, 4(r10)
@@ -1371,7 +1371,7 @@ lbl_8026CE24:
/* 8026CE4C 00268AAC 91 01 00 24 */ stw r8, 0x24(r1)
/* 8026CE50 00268AB0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8026CE54 00268AB4 80 63 00 00 */ lwz r3, 0(r3)
-/* 8026CE58 00268AB8 48 03 70 C5 */ bl func_802A3F1C
+/* 8026CE58 00268AB8 48 03 70 C5 */ bl IOS_IoctlvReboot
lbl_8026CE5C:
/* 8026CE5C 00268ABC 81 41 00 00 */ lwz r10, 0(r1)
/* 8026CE60 00268AC0 80 0A 00 04 */ lwz r0, 4(r10)
diff --git a/asm/SDK/OS/OSStateTM.s b/asm/SDK/OS/OSStateTM.s
index 0285953..47737e7 100644
--- a/asm/SDK/OS/OSStateTM.s
+++ b/asm/SDK/OS/OSStateTM.s
@@ -31,7 +31,7 @@ OSSetResetCallback:
/* 8027312C 0026ED8C 38 C0 00 20 */ li r6, 0x20
/* 80273130 0026ED90 39 00 00 20 */ li r8, 0x20
/* 80273134 0026ED94 39 40 00 00 */ li r10, 0
-/* 80273138 0026ED98 48 03 08 81 */ bl func_802A39B8
+/* 80273138 0026ED98 48 03 08 81 */ bl IOS_IoctlAsync
/* 8027313C 0026ED9C 2C 03 00 00 */ cmpwi r3, 0
/* 80273140 0026EDA0 40 82 00 10 */ bne lbl_80273150
/* 80273144 0026EDA4 38 00 00 01 */ li r0, 1
@@ -84,7 +84,7 @@ OSSetPowerCallback:
/* 802731E8 0026EE48 38 C0 00 20 */ li r6, 0x20
/* 802731EC 0026EE4C 39 00 00 20 */ li r8, 0x20
/* 802731F0 0026EE50 39 40 00 00 */ li r10, 0
-/* 802731F4 0026EE54 48 03 07 C5 */ bl func_802A39B8
+/* 802731F4 0026EE54 48 03 07 C5 */ bl IOS_IoctlAsync
/* 802731F8 0026EE58 2C 03 00 00 */ cmpwi r3, 0
/* 802731FC 0026EE5C 40 82 00 10 */ bne lbl_8027320C
/* 80273200 0026EE60 38 00 00 01 */ li r0, 1
@@ -138,7 +138,7 @@ OSGetResetButtonState:
/* 802732A4 0026EF04 38 C0 00 20 */ li r6, 0x20
/* 802732A8 0026EF08 39 00 00 20 */ li r8, 0x20
/* 802732AC 0026EF0C 39 40 00 00 */ li r10, 0
-/* 802732B0 0026EF10 48 03 07 09 */ bl func_802A39B8
+/* 802732B0 0026EF10 48 03 07 09 */ bl IOS_IoctlAsync
/* 802732B4 0026EF14 2C 03 00 00 */ cmpwi r3, 0
/* 802732B8 0026EF18 40 82 00 10 */ bne lbl_802732C8
/* 802732BC 0026EF1C 38 00 00 01 */ li r0, 1
@@ -184,7 +184,7 @@ lbl_8027333C:
/* 80273340 0026EFA0 93 ED A8 54 */ stw r31, lbl_8063FB14-_SDA_BASE_(r13)
/* 80273344 0026EFA4 38 80 00 00 */ li r4, 0
/* 80273348 0026EFA8 38 63 3C 68 */ addi r3, r3, lbl_80433C68@l
-/* 8027334C 0026EFAC 48 02 FE 0D */ bl func_802A3158
+/* 8027334C 0026EFAC 48 02 FE 0D */ bl IOS_Open
/* 80273350 0026EFB0 2C 03 00 00 */ cmpwi r3, 0
/* 80273354 0026EFB4 90 6D A8 48 */ stw r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 80273358 0026EFB8 40 80 00 10 */ bge lbl_80273368
@@ -195,7 +195,7 @@ lbl_80273368:
/* 80273368 0026EFC8 3C 60 80 43 */ lis r3, lbl_80433C7C@ha
/* 8027336C 0026EFCC 38 80 00 00 */ li r4, 0
/* 80273370 0026EFD0 38 63 3C 7C */ addi r3, r3, lbl_80433C7C@l
-/* 80273374 0026EFD4 48 02 FD E5 */ bl func_802A3158
+/* 80273374 0026EFD4 48 02 FD E5 */ bl IOS_Open
/* 80273378 0026EFD8 2C 03 00 00 */ cmpwi r3, 0
/* 8027337C 0026EFDC 90 6D A8 4C */ stw r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 80273380 0026EFE0 40 80 00 10 */ bge lbl_80273390
@@ -216,7 +216,7 @@ lbl_80273390:
/* 802733B8 0026F018 38 C0 00 20 */ li r6, 0x20
/* 802733BC 0026F01C 39 00 00 20 */ li r8, 0x20
/* 802733C0 0026F020 39 40 00 00 */ li r10, 0
-/* 802733C4 0026F024 48 03 05 F5 */ bl func_802A39B8
+/* 802733C4 0026F024 48 03 05 F5 */ bl IOS_IoctlAsync
/* 802733C8 0026F028 2C 03 00 00 */ cmpwi r3, 0
/* 802733CC 0026F02C 40 82 00 10 */ bne lbl_802733DC
/* 802733D0 0026F030 38 00 00 01 */ li r0, 1
@@ -267,7 +267,7 @@ lbl_8027344C:
/* 80273468 0026F0C8 38 80 20 03 */ li r4, 0x2003
/* 8027346C 0026F0CC 38 C0 00 20 */ li r6, 0x20
/* 80273470 0026F0D0 39 00 00 20 */ li r8, 0x20
-/* 80273474 0026F0D4 48 03 06 7D */ bl func_802A3AF0
+/* 80273474 0026F0D4 48 03 06 7D */ bl IOS_Ioctl
/* 80273478 0026F0D8 4B FF B2 E5 */ bl OSDisableInterrupts
/* 8027347C 0026F0DC 4B FF 72 F1 */ bl ICFlashInvalidate
lbl_80273480:
@@ -300,7 +300,7 @@ lbl_802734C4:
/* 802734D8 0026F138 38 80 20 01 */ li r4, 0x2001
/* 802734DC 0026F13C 38 C0 00 20 */ li r6, 0x20
/* 802734E0 0026F140 39 00 00 20 */ li r8, 0x20
-/* 802734E4 0026F144 48 03 06 0D */ bl func_802A3AF0
+/* 802734E4 0026F144 48 03 06 0D */ bl IOS_Ioctl
/* 802734E8 0026F148 4B FF B2 75 */ bl OSDisableInterrupts
/* 802734EC 0026F14C 4B FF 72 81 */ bl ICFlashInvalidate
lbl_802734F0:
@@ -360,7 +360,7 @@ lbl_80273548:
/* 802735B0 0026F210 91 65 00 14 */ stw r11, 0x14(r5)
/* 802735B4 0026F214 90 05 00 18 */ stw r0, 0x18(r5)
/* 802735B8 0026F218 91 85 00 1C */ stw r12, 0x1c(r5)
-/* 802735BC 0026F21C 48 03 03 FD */ bl func_802A39B8
+/* 802735BC 0026F21C 48 03 03 FD */ bl IOS_IoctlAsync
/* 802735C0 0026F220 2C 03 00 00 */ cmpwi r3, 0
/* 802735C4 0026F224 41 82 00 08 */ beq lbl_802735CC
/* 802735C8 0026F228 48 00 00 08 */ b lbl_802735D0
@@ -392,7 +392,7 @@ lbl_80273600:
/* 80273618 0026F278 38 80 60 02 */ li r4, 0x6002
/* 8027361C 0026F27C 38 C0 00 20 */ li r6, 0x20
/* 80273620 0026F280 39 00 00 20 */ li r8, 0x20
-/* 80273624 0026F284 48 03 04 CC */ b func_802A3AF0
+/* 80273624 0026F284 48 03 04 CC */ b IOS_Ioctl
/* 80273628 0026F288 4E 80 00 20 */ blr
.global __OSUnRegisterStateEvent
@@ -420,7 +420,7 @@ lbl_80273660:
/* 80273674 0026F2D4 38 80 30 02 */ li r4, 0x3002
/* 80273678 0026F2D8 38 C0 00 20 */ li r6, 0x20
/* 8027367C 0026F2DC 39 00 00 20 */ li r8, 0x20
-/* 80273680 0026F2E0 48 03 04 71 */ bl func_802A3AF0
+/* 80273680 0026F2E0 48 03 04 71 */ bl IOS_Ioctl
/* 80273684 0026F2E4 2C 03 00 00 */ cmpwi r3, 0
/* 80273688 0026F2E8 40 82 00 0C */ bne lbl_80273694
/* 8027368C 0026F2EC 38 00 00 00 */ li r0, 0
@@ -506,7 +506,7 @@ lbl_80273760:
/* 80273788 0026F3E8 38 C0 00 20 */ li r6, 0x20
/* 8027378C 0026F3EC 39 00 00 20 */ li r8, 0x20
/* 80273790 0026F3F0 39 40 00 00 */ li r10, 0
-/* 80273794 0026F3F4 48 03 02 25 */ bl func_802A39B8
+/* 80273794 0026F3F4 48 03 02 25 */ bl IOS_IoctlAsync
/* 80273798 0026F3F8 2C 03 00 00 */ cmpwi r3, 0
/* 8027379C 0026F3FC 40 82 00 10 */ bne lbl_802737AC
/* 802737A0 0026F400 38 00 00 01 */ li r0, 1
diff --git a/asm/SDK/ipcMain.s b/asm/SDK/ipcMain.s
new file mode 100644
index 0000000..783c5c4
--- /dev/null
+++ b/asm/SDK/ipcMain.s
@@ -0,0 +1,55 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global IPCInit
+IPCInit:
+/* 802A2880 0029E4E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A2884 0029E4E4 7C 08 02 A6 */ mflr r0
+/* 802A2888 0029E4E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A288C 0029E4EC 88 0D AD E8 */ lbz r0, lbl_806400A8-_SDA_BASE_(r13)
+/* 802A2890 0029E4F0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2894 0029E4F4 40 82 00 28 */ bne lbl_802A28BC
+/* 802A2898 0029E4F8 4B FD 08 0D */ bl __OSGetIPCBufferHi
+/* 802A289C 0029E4FC 90 6D AD F8 */ stw r3, lbl_806400B8-_SDA_BASE_(r13)
+/* 802A28A0 0029E500 4B FD 08 0D */ bl __OSGetIPCBufferLo
+/* 802A28A4 0029E504 80 8D AD F8 */ lwz r4, lbl_806400B8-_SDA_BASE_(r13)
+/* 802A28A8 0029E508 38 00 00 01 */ li r0, 1
+/* 802A28AC 0029E50C 90 6D AD F4 */ stw r3, lbl_806400B4-_SDA_BASE_(r13)
+/* 802A28B0 0029E510 90 8D AD F0 */ stw r4, lbl_806400B0-_SDA_BASE_(r13)
+/* 802A28B4 0029E514 90 6D AD EC */ stw r3, lbl_806400AC-_SDA_BASE_(r13)
+/* 802A28B8 0029E518 98 0D AD E8 */ stb r0, lbl_806400A8-_SDA_BASE_(r13)
+lbl_802A28BC:
+/* 802A28BC 0029E51C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A28C0 0029E520 7C 08 03 A6 */ mtlr r0
+/* 802A28C4 0029E524 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A28C8 0029E528 4E 80 00 20 */ blr
+
+.global IPCReadReg
+IPCReadReg:
+/* 802A28CC 0029E52C 54 60 10 3A */ slwi r0, r3, 2
+/* 802A28D0 0029E530 3C 60 CD 00 */ lis r3, 0xcd00
+/* 802A28D4 0029E534 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802A28D8 0029E538 4E 80 00 20 */ blr
+
+.global IPCWriteReg
+IPCWriteReg:
+/* 802A28DC 0029E53C 54 60 10 3A */ slwi r0, r3, 2
+/* 802A28E0 0029E540 3C 60 CD 00 */ lis r3, 0xcd00
+/* 802A28E4 0029E544 7C 83 01 2E */ stwx r4, r3, r0
+/* 802A28E8 0029E548 4E 80 00 20 */ blr
+
+.global IPCGetBufferHi
+IPCGetBufferHi:
+/* 802A28EC 0029E54C 80 6D AD F0 */ lwz r3, lbl_806400B0-_SDA_BASE_(r13)
+/* 802A28F0 0029E550 4E 80 00 20 */ blr
+
+.global IPCGetBufferLo
+IPCGetBufferLo:
+/* 802A28F4 0029E554 80 6D AD EC */ lwz r3, lbl_806400AC-_SDA_BASE_(r13)
+/* 802A28F8 0029E558 4E 80 00 20 */ blr
+
+.global IPCSetBufferLo
+IPCSetBufferLo:
+/* 802A28FC 0029E55C 90 6D AD EC */ stw r3, lbl_806400AC-_SDA_BASE_(r13)
+/* 802A2900 0029E560 4E 80 00 20 */ blr
diff --git a/asm/SDK/ipcclt.s b/asm/SDK/ipcclt.s
new file mode 100644
index 0000000..c5ed858
--- /dev/null
+++ b/asm/SDK/ipcclt.s
@@ -0,0 +1,1695 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global strnlen
+strnlen:
+/* 802A2904 0029E564 7C 65 1B 78 */ mr r5, r3
+/* 802A2908 0029E568 48 00 00 08 */ b lbl_802A2910
+lbl_802A290C:
+/* 802A290C 0029E56C 38 A5 00 01 */ addi r5, r5, 1
+lbl_802A2910:
+/* 802A2910 0029E570 88 05 00 00 */ lbz r0, 0(r5)
+/* 802A2914 0029E574 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2918 0029E578 41 82 00 10 */ beq lbl_802A2928
+/* 802A291C 0029E57C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A2920 0029E580 38 84 FF FF */ addi r4, r4, -1
+/* 802A2924 0029E584 40 82 FF E8 */ bne lbl_802A290C
+lbl_802A2928:
+/* 802A2928 0029E588 7C 63 28 50 */ subf r3, r3, r5
+/* 802A292C 0029E58C 4E 80 00 20 */ blr
+
+.global IpcReplyHandler
+IpcReplyHandler:
+/* 802A2930 0029E590 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 802A2934 0029E594 7C 08 02 A6 */ mflr r0
+/* 802A2938 0029E598 38 60 00 02 */ li r3, 2
+/* 802A293C 0029E59C 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 802A2940 0029E5A0 93 E1 02 DC */ stw r31, 0x2dc(r1)
+/* 802A2944 0029E5A4 93 C1 02 D8 */ stw r30, 0x2d8(r1)
+/* 802A2948 0029E5A8 7C 9E 23 78 */ mr r30, r4
+/* 802A294C 0029E5AC 93 A1 02 D4 */ stw r29, 0x2d4(r1)
+/* 802A2950 0029E5B0 93 81 02 D0 */ stw r28, 0x2d0(r1)
+/* 802A2954 0029E5B4 4B FF FF 79 */ bl IPCReadReg
+/* 802A2958 0029E5B8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A295C 0029E5BC 41 82 02 0C */ beq lbl_802A2B68
+/* 802A2960 0029E5C0 3F E3 80 00 */ addis r31, r3, 0x8000
+/* 802A2964 0029E5C4 38 60 00 01 */ li r3, 1
+/* 802A2968 0029E5C8 4B FF FF 65 */ bl IPCReadReg
+/* 802A296C 0029E5CC 54 60 06 B6 */ rlwinm r0, r3, 0, 0x1a, 0x1b
+/* 802A2970 0029E5D0 38 60 00 01 */ li r3, 1
+/* 802A2974 0029E5D4 60 04 00 04 */ ori r4, r0, 4
+/* 802A2978 0029E5D8 4B FF FF 65 */ bl IPCWriteReg
+/* 802A297C 0029E5DC 3C 00 40 00 */ lis r0, 0x4000
+/* 802A2980 0029E5E0 3C 60 CD 00 */ lis r3, 0xCD000030@ha
+/* 802A2984 0029E5E4 90 03 00 30 */ stw r0, 0xCD000030@l(r3)
+/* 802A2988 0029E5E8 7F E3 FB 78 */ mr r3, r31
+/* 802A298C 0029E5EC 38 80 00 20 */ li r4, 0x20
+/* 802A2990 0029E5F0 4B FC 7C 99 */ bl DCInvalidateRange
+/* 802A2994 0029E5F4 80 1F 00 08 */ lwz r0, 8(r31)
+/* 802A2998 0029E5F8 2C 00 00 06 */ cmpwi r0, 6
+/* 802A299C 0029E5FC 41 82 00 54 */ beq lbl_802A29F0
+/* 802A29A0 0029E600 40 80 00 10 */ bge lbl_802A29B0
+/* 802A29A4 0029E604 2C 00 00 03 */ cmpwi r0, 3
+/* 802A29A8 0029E608 41 82 00 14 */ beq lbl_802A29BC
+/* 802A29AC 0029E60C 48 00 01 40 */ b lbl_802A2AEC
+lbl_802A29B0:
+/* 802A29B0 0029E610 2C 00 00 08 */ cmpwi r0, 8
+/* 802A29B4 0029E614 40 80 01 38 */ bge lbl_802A2AEC
+/* 802A29B8 0029E618 48 00 00 70 */ b lbl_802A2A28
+lbl_802A29BC:
+/* 802A29BC 0029E61C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 802A29C0 0029E620 2C 03 00 00 */ cmpwi r3, 0
+/* 802A29C4 0029E624 41 82 00 0C */ beq lbl_802A29D0
+/* 802A29C8 0029E628 3C 03 80 00 */ addis r0, r3, 0x8000
+/* 802A29CC 0029E62C 48 00 00 08 */ b lbl_802A29D4
+lbl_802A29D0:
+/* 802A29D0 0029E630 38 00 00 00 */ li r0, 0
+lbl_802A29D4:
+/* 802A29D4 0029E634 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802A29D8 0029E638 80 9F 00 04 */ lwz r4, 4(r31)
+/* 802A29DC 0029E63C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A29E0 0029E640 40 81 01 0C */ ble lbl_802A2AEC
+/* 802A29E4 0029E644 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 802A29E8 0029E648 4B FC 7C 41 */ bl DCInvalidateRange
+/* 802A29EC 0029E64C 48 00 01 00 */ b lbl_802A2AEC
+lbl_802A29F0:
+/* 802A29F0 0029E650 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 802A29F4 0029E654 2C 03 00 00 */ cmpwi r3, 0
+/* 802A29F8 0029E658 41 82 00 0C */ beq lbl_802A2A04
+/* 802A29FC 0029E65C 3C 03 80 00 */ addis r0, r3, 0x8000
+/* 802A2A00 0029E660 48 00 00 08 */ b lbl_802A2A08
+lbl_802A2A04:
+/* 802A2A04 0029E664 38 00 00 00 */ li r0, 0
+lbl_802A2A08:
+/* 802A2A08 0029E668 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 802A2A0C 0029E66C 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 802A2A10 0029E670 80 9F 00 14 */ lwz r4, 0x14(r31)
+/* 802A2A14 0029E674 4B FC 7C 15 */ bl DCInvalidateRange
+/* 802A2A18 0029E678 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 802A2A1C 0029E67C 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 802A2A20 0029E680 4B FC 7C 09 */ bl DCInvalidateRange
+/* 802A2A24 0029E684 48 00 00 C8 */ b lbl_802A2AEC
+lbl_802A2A28:
+/* 802A2A28 0029E688 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 802A2A2C 0029E68C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A2A30 0029E690 41 82 00 0C */ beq lbl_802A2A3C
+/* 802A2A34 0029E694 3C 63 80 00 */ addis r3, r3, 0x8000
+/* 802A2A38 0029E698 48 00 00 08 */ b lbl_802A2A40
+lbl_802A2A3C:
+/* 802A2A3C 0029E69C 38 60 00 00 */ li r3, 0
+lbl_802A2A40:
+/* 802A2A40 0029E6A0 90 7F 00 18 */ stw r3, 0x18(r31)
+/* 802A2A44 0029E6A4 80 9F 00 10 */ lwz r4, 0x10(r31)
+/* 802A2A48 0029E6A8 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 802A2A4C 0029E6AC 7C 04 02 14 */ add r0, r4, r0
+/* 802A2A50 0029E6B0 54 04 18 38 */ slwi r4, r0, 3
+/* 802A2A54 0029E6B4 4B FC 7B D5 */ bl DCInvalidateRange
+/* 802A2A58 0029E6B8 3B 80 00 00 */ li r28, 0
+/* 802A2A5C 0029E6BC 3B A0 00 00 */ li r29, 0
+/* 802A2A60 0029E6C0 48 00 00 44 */ b lbl_802A2AA4
+lbl_802A2A64:
+/* 802A2A64 0029E6C4 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 802A2A68 0029E6C8 7C 63 E8 2E */ lwzx r3, r3, r29
+/* 802A2A6C 0029E6CC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A2A70 0029E6D0 41 82 00 0C */ beq lbl_802A2A7C
+/* 802A2A74 0029E6D4 3C 03 80 00 */ addis r0, r3, 0x8000
+/* 802A2A78 0029E6D8 48 00 00 08 */ b lbl_802A2A80
+lbl_802A2A7C:
+/* 802A2A7C 0029E6DC 38 00 00 00 */ li r0, 0
+lbl_802A2A80:
+/* 802A2A80 0029E6E0 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 802A2A84 0029E6E4 7C 03 E9 2E */ stwx r0, r3, r29
+/* 802A2A88 0029E6E8 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 802A2A8C 0029E6EC 7C 83 EA 14 */ add r4, r3, r29
+/* 802A2A90 0029E6F0 7C 63 E8 2E */ lwzx r3, r3, r29
+/* 802A2A94 0029E6F4 80 84 00 04 */ lwz r4, 4(r4)
+/* 802A2A98 0029E6F8 4B FC 7B 91 */ bl DCInvalidateRange
+/* 802A2A9C 0029E6FC 3B 9C 00 01 */ addi r28, r28, 1
+/* 802A2AA0 0029E700 3B BD 00 08 */ addi r29, r29, 8
+lbl_802A2AA4:
+/* 802A2AA4 0029E704 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 802A2AA8 0029E708 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 802A2AAC 0029E70C 7C 03 02 14 */ add r0, r3, r0
+/* 802A2AB0 0029E710 7C 1C 00 40 */ cmplw r28, r0
+/* 802A2AB4 0029E714 41 80 FF B0 */ blt lbl_802A2A64
+/* 802A2AB8 0029E718 80 0D AE 00 */ lwz r0, lbl_806400C0-_SDA_BASE_(r13)
+/* 802A2ABC 0029E71C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2AC0 0029E720 41 82 00 2C */ beq lbl_802A2AEC
+/* 802A2AC4 0029E724 80 0D AE 04 */ lwz r0, lbl_806400C4-_SDA_BASE_(r13)
+/* 802A2AC8 0029E728 7C 00 F8 40 */ cmplw r0, r31
+/* 802A2ACC 0029E72C 40 82 00 20 */ bne lbl_802A2AEC
+/* 802A2AD0 0029E730 80 6D 89 88 */ lwz r3, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2AD4 0029E734 38 00 00 00 */ li r0, 0
+/* 802A2AD8 0029E738 90 0D AE 00 */ stw r0, lbl_806400C0-_SDA_BASE_(r13)
+/* 802A2ADC 0029E73C 2C 03 00 01 */ cmpwi r3, 1
+/* 802A2AE0 0029E740 40 80 00 0C */ bge lbl_802A2AEC
+/* 802A2AE4 0029E744 38 03 00 01 */ addi r0, r3, 1
+/* 802A2AE8 0029E748 90 0D 89 88 */ stw r0, lbl_8063DC48-_SDA_BASE_(r13)
+lbl_802A2AEC:
+/* 802A2AEC 0029E74C 80 1F 00 20 */ lwz r0, 0x20(r31)
+/* 802A2AF0 0029E750 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2AF4 0029E754 41 82 00 48 */ beq lbl_802A2B3C
+/* 802A2AF8 0029E758 38 61 00 08 */ addi r3, r1, 8
+/* 802A2AFC 0029E75C 4B FC 85 95 */ bl OSClearContext
+/* 802A2B00 0029E760 38 61 00 08 */ addi r3, r1, 8
+/* 802A2B04 0029E764 4B FC 83 65 */ bl OSSetCurrentContext
+/* 802A2B08 0029E768 81 9F 00 20 */ lwz r12, 0x20(r31)
+/* 802A2B0C 0029E76C 80 7F 00 04 */ lwz r3, 4(r31)
+/* 802A2B10 0029E770 80 9F 00 24 */ lwz r4, 0x24(r31)
+/* 802A2B14 0029E774 7D 89 03 A6 */ mtctr r12
+/* 802A2B18 0029E778 4E 80 04 21 */ bctrl
+/* 802A2B1C 0029E77C 38 61 00 08 */ addi r3, r1, 8
+/* 802A2B20 0029E780 4B FC 85 71 */ bl OSClearContext
+/* 802A2B24 0029E784 7F C3 F3 78 */ mr r3, r30
+/* 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
+/* 802A2B38 0029E798 48 00 00 0C */ b lbl_802A2B44
+lbl_802A2B3C:
+/* 802A2B3C 0029E79C 38 7F 00 2C */ addi r3, r31, 0x2c
+/* 802A2B40 0029E7A0 4B FC F9 21 */ bl OSWakeupThread
+lbl_802A2B44:
+/* 802A2B44 0029E7A4 38 60 00 01 */ li r3, 1
+/* 802A2B48 0029E7A8 4B FF FD 85 */ bl IPCReadReg
+/* 802A2B4C 0029E7AC 54 60 06 B6 */ rlwinm r0, r3, 0, 0x1a, 0x1b
+/* 802A2B50 0029E7B0 38 60 00 01 */ li r3, 1
+/* 802A2B54 0029E7B4 60 04 00 08 */ ori r4, r0, 8
+/* 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
+lbl_802A2B68:
+/* 802A2B68 0029E7C8 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 802A2B6C 0029E7CC 83 E1 02 DC */ lwz r31, 0x2dc(r1)
+/* 802A2B70 0029E7D0 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
+/* 802A2B74 0029E7D4 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
+/* 802A2B78 0029E7D8 83 81 02 D0 */ lwz r28, 0x2d0(r1)
+/* 802A2B7C 0029E7DC 7C 08 03 A6 */ mtlr r0
+/* 802A2B80 0029E7E0 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 802A2B84 0029E7E4 4E 80 00 20 */ blr
+
+IPCInterruptHandler:
+/* 802A2B88 0029E7E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A2B8C 0029E7EC 7C 08 02 A6 */ mflr r0
+/* 802A2B90 0029E7F0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A2B94 0029E7F4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A2B98 0029E7F8 7C 9F 23 78 */ mr r31, r4
+/* 802A2B9C 0029E7FC 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A2BA0 0029E800 7C 7E 1B 78 */ mr r30, r3
+/* 802A2BA4 0029E804 38 60 00 01 */ li r3, 1
+/* 802A2BA8 0029E808 4B FF FD 25 */ bl IPCReadReg
+/* 802A2BAC 0029E80C 70 60 00 14 */ andi. r0, r3, 0x14
+/* 802A2BB0 0029E810 28 00 00 14 */ cmplwi r0, 0x14
+/* 802A2BB4 0029E814 40 82 00 10 */ bne lbl_802A2BC4
+/* 802A2BB8 0029E818 7F C3 F3 78 */ mr r3, r30
+/* 802A2BBC 0029E81C 7F E4 FB 78 */ mr r4, r31
+/* 802A2BC0 0029E820 4B FF FD 71 */ bl IpcReplyHandler
+lbl_802A2BC4:
+/* 802A2BC4 0029E824 38 60 00 01 */ li r3, 1
+/* 802A2BC8 0029E828 4B FF FD 05 */ bl IPCReadReg
+/* 802A2BCC 0029E82C 70 60 00 22 */ andi. r0, r3, 0x22
+/* 802A2BD0 0029E830 28 00 00 22 */ cmplwi r0, 0x22
+/* 802A2BD4 0029E834 40 82 01 54 */ bne lbl_802A2D28
+/* 802A2BD8 0029E838 38 60 00 01 */ li r3, 1
+/* 802A2BDC 0029E83C 4B FF FC F1 */ bl IPCReadReg
+/* 802A2BE0 0029E840 54 60 06 B6 */ rlwinm r0, r3, 0, 0x1a, 0x1b
+/* 802A2BE4 0029E844 38 60 00 01 */ li r3, 1
+/* 802A2BE8 0029E848 60 04 00 02 */ ori r4, r0, 2
+/* 802A2BEC 0029E84C 4B FF FC F1 */ bl IPCWriteReg
+/* 802A2BF0 0029E850 3C 00 40 00 */ lis r0, 0x4000
+/* 802A2BF4 0029E854 3C 60 CD 00 */ lis r3, 0xCD000030@ha
+/* 802A2BF8 0029E858 90 03 00 30 */ stw r0, 0xCD000030@l(r3)
+/* 802A2BFC 0029E85C 83 ED 89 88 */ lwz r31, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2C00 0029E860 2C 1F 00 01 */ cmpwi r31, 1
+/* 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
+lbl_802A2C14:
+/* 802A2C14 0029E874 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A2C18 0029E878 40 81 01 10 */ ble lbl_802A2D28
+/* 802A2C1C 0029E87C 80 0D AE 00 */ lwz r0, lbl_806400C0-_SDA_BASE_(r13)
+/* 802A2C20 0029E880 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2C24 0029E884 41 82 00 38 */ beq lbl_802A2C5C
+/* 802A2C28 0029E888 80 6D AE 04 */ lwz r3, lbl_806400C4-_SDA_BASE_(r13)
+/* 802A2C2C 0029E88C 38 00 00 00 */ li r0, 0
+/* 802A2C30 0029E890 90 03 00 04 */ stw r0, 4(r3)
+/* 802A2C34 0029E894 80 6D AE 04 */ lwz r3, lbl_806400C4-_SDA_BASE_(r13)
+/* 802A2C38 0029E898 90 0D AE 00 */ stw r0, lbl_806400C0-_SDA_BASE_(r13)
+/* 802A2C3C 0029E89C 38 63 00 2C */ addi r3, r3, 0x2c
+/* 802A2C40 0029E8A0 4B FC F8 21 */ bl OSWakeupThread
+/* 802A2C44 0029E8A4 38 60 00 01 */ li r3, 1
+/* 802A2C48 0029E8A8 4B FF FC 85 */ bl IPCReadReg
+/* 802A2C4C 0029E8AC 54 60 06 B6 */ rlwinm r0, r3, 0, 0x1a, 0x1b
+/* 802A2C50 0029E8B0 38 60 00 01 */ li r3, 1
+/* 802A2C54 0029E8B4 60 04 00 08 */ ori r4, r0, 8
+/* 802A2C58 0029E8B8 4B FF FC 85 */ bl IPCWriteReg
+lbl_802A2C5C:
+/* 802A2C5C 0029E8BC 3C 80 80 53 */ lis r4, lbl_80536B60@ha
+/* 802A2C60 0029E8C0 38 64 6B 60 */ addi r3, r4, lbl_80536B60@l
+/* 802A2C64 0029E8C4 80 84 6B 60 */ lwz r4, 0x6b60(r4)
+/* 802A2C68 0029E8C8 80 03 00 04 */ lwz r0, 4(r3)
+/* 802A2C6C 0029E8CC 7C 00 20 40 */ cmplw r0, r4
+/* 802A2C70 0029E8D0 40 80 00 0C */ bge lbl_802A2C7C
+/* 802A2C74 0029E8D4 7C 04 00 50 */ subf r0, r4, r0
+/* 802A2C78 0029E8D8 48 00 00 10 */ b lbl_802A2C88
+lbl_802A2C7C:
+/* 802A2C7C 0029E8DC 7C 04 00 50 */ subf r0, r4, r0
+/* 802A2C80 0029E8E0 7C 00 00 34 */ cntlzw r0, r0
+/* 802A2C84 0029E8E4 54 00 D9 7E */ srwi r0, r0, 5
+lbl_802A2C88:
+/* 802A2C88 0029E8E8 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2C8C 0029E8EC 40 82 00 9C */ bne lbl_802A2D28
+/* 802A2C90 0029E8F0 3C 60 80 53 */ lis r3, lbl_80536B60@ha
+/* 802A2C94 0029E8F4 38 63 6B 60 */ addi r3, r3, lbl_80536B60@l
+/* 802A2C98 0029E8F8 80 03 00 08 */ lwz r0, 8(r3)
+/* 802A2C9C 0029E8FC 54 00 10 3A */ slwi r0, r0, 2
+/* 802A2CA0 0029E900 7C 63 02 14 */ add r3, r3, r0
+/* 802A2CA4 0029E904 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 802A2CA8 0029E908 2C 04 00 00 */ cmpwi r4, 0
+/* 802A2CAC 0029E90C 41 82 00 7C */ beq lbl_802A2D28
+/* 802A2CB0 0029E910 80 04 00 28 */ lwz r0, 0x28(r4)
+/* 802A2CB4 0029E914 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2CB8 0029E918 41 82 00 1C */ beq lbl_802A2CD4
+/* 802A2CBC 0029E91C 80 6D 89 88 */ lwz r3, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2CC0 0029E920 38 00 00 01 */ li r0, 1
+/* 802A2CC4 0029E924 90 0D AE 00 */ stw r0, lbl_806400C0-_SDA_BASE_(r13)
+/* 802A2CC8 0029E928 38 03 FF FF */ addi r0, r3, -1
+/* 802A2CCC 0029E92C 90 8D AE 04 */ stw r4, lbl_806400C4-_SDA_BASE_(r13)
+/* 802A2CD0 0029E930 90 0D 89 88 */ stw r0, lbl_8063DC48-_SDA_BASE_(r13)
+lbl_802A2CD4:
+/* 802A2CD4 0029E934 3C 84 80 00 */ addis r4, r4, 0x8000
+/* 802A2CD8 0029E938 38 60 00 00 */ li r3, 0
+/* 802A2CDC 0029E93C 4B FF FC 01 */ bl IPCWriteReg
+/* 802A2CE0 0029E940 3C E0 80 53 */ lis r7, lbl_80536B60@ha
+/* 802A2CE4 0029E944 80 6D 89 88 */ lwz r3, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2CE8 0029E948 38 C7 6B 60 */ addi r6, r7, lbl_80536B60@l
+/* 802A2CEC 0029E94C 80 87 6B 60 */ lwz r4, 0x6b60(r7)
+/* 802A2CF0 0029E950 80 A6 00 08 */ lwz r5, 8(r6)
+/* 802A2CF4 0029E954 38 03 FF FF */ addi r0, r3, -1
+/* 802A2CF8 0029E958 90 0D 89 88 */ stw r0, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2CFC 0029E95C 38 84 00 01 */ addi r4, r4, 1
+/* 802A2D00 0029E960 38 05 00 01 */ addi r0, r5, 1
+/* 802A2D04 0029E964 38 60 00 01 */ li r3, 1
+/* 802A2D08 0029E968 54 00 07 3E */ clrlwi r0, r0, 0x1c
+/* 802A2D0C 0029E96C 90 87 6B 60 */ stw r4, 0x6b60(r7)
+/* 802A2D10 0029E970 90 06 00 08 */ stw r0, 8(r6)
+/* 802A2D14 0029E974 4B FF FB B9 */ bl IPCReadReg
+/* 802A2D18 0029E978 54 60 06 B6 */ rlwinm r0, r3, 0, 0x1a, 0x1b
+/* 802A2D1C 0029E97C 38 60 00 01 */ li r3, 1
+/* 802A2D20 0029E980 60 04 00 01 */ ori r4, r0, 1
+/* 802A2D24 0029E984 4B FF FB B9 */ bl IPCWriteReg
+lbl_802A2D28:
+/* 802A2D28 0029E988 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A2D2C 0029E98C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A2D30 0029E990 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A2D34 0029E994 7C 08 03 A6 */ mtlr r0
+/* 802A2D38 0029E998 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A2D3C 0029E99C 4E 80 00 20 */ blr
+
+.global IPCCltInit
+IPCCltInit:
+/* 802A2D40 0029E9A0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A2D44 0029E9A4 7C 08 02 A6 */ mflr r0
+/* 802A2D48 0029E9A8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A2D4C 0029E9AC 80 0D AE 08 */ lwz r0, lbl_806400C8-_SDA_BASE_(r13)
+/* 802A2D50 0029E9B0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A2D54 0029E9B4 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2D58 0029E9B8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A2D5C 0029E9BC 3B C0 00 00 */ li r30, 0
+/* 802A2D60 0029E9C0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A2D64 0029E9C4 40 82 00 70 */ bne lbl_802A2DD4
+/* 802A2D68 0029E9C8 38 00 00 01 */ li r0, 1
+/* 802A2D6C 0029E9CC 90 0D AE 08 */ stw r0, lbl_806400C8-_SDA_BASE_(r13)
+/* 802A2D70 0029E9D0 4B FF FB 11 */ bl IPCInit
+/* 802A2D74 0029E9D4 4B FF FB 81 */ bl IPCGetBufferLo
+/* 802A2D78 0029E9D8 7C 7D 1B 78 */ mr r29, r3
+/* 802A2D7C 0029E9DC 3B E3 08 00 */ addi r31, r3, 0x800
+/* 802A2D80 0029E9E0 4B FF FB 6D */ bl IPCGetBufferHi
+/* 802A2D84 0029E9E4 7C 1F 18 40 */ cmplw r31, r3
+/* 802A2D88 0029E9E8 40 81 00 0C */ ble lbl_802A2D94
+/* 802A2D8C 0029E9EC 3B C0 FF EA */ li r30, -22
+/* 802A2D90 0029E9F0 48 00 00 44 */ b lbl_802A2DD4
+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
+/* 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
+/* 802A2DAC 0029EA0C 3C 80 80 2A */ lis r4, IPCInterruptHandler@ha
+/* 802A2DB0 0029EA10 38 60 00 1B */ li r3, 0x1b
+/* 802A2DB4 0029EA14 38 84 2B 88 */ addi r4, r4, IPCInterruptHandler@l
+/* 802A2DB8 0029EA18 4B FC B9 F1 */ bl __OSSetInterruptHandler
+/* 802A2DBC 0029EA1C 38 60 00 10 */ li r3, 0x10
+/* 802A2DC0 0029EA20 4B FC BD AD */ bl __OSUnmaskInterrupts
+/* 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
+lbl_802A2DD4:
+/* 802A2DD4 0029EA34 7F C3 F3 78 */ mr r3, r30
+/* 802A2DD8 0029EA38 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A2DDC 0029EA3C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A2DE0 0029EA40 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A2DE4 0029EA44 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A2DE8 0029EA48 7C 08 03 A6 */ mtlr r0
+/* 802A2DEC 0029EA4C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A2DF0 0029EA50 4E 80 00 20 */ blr
+
+.global __ios_Ipc2
+__ios_Ipc2:
+/* 802A2DF4 0029EA54 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A2DF8 0029EA58 7C 08 02 A6 */ mflr r0
+/* 802A2DFC 0029EA5C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A2E00 0029EA60 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A2E04 0029EA64 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A2E08 0029EA68 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A2E0C 0029EA6C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A2E10 0029EA70 7C 9D 23 78 */ mr r29, r4
+/* 802A2E14 0029EA74 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A2E18 0029EA78 7C 7C 1B 78 */ mr r28, r3
+/* 802A2E1C 0029EA7C 40 82 00 0C */ bne lbl_802A2E28
+/* 802A2E20 0029EA80 3B E0 FF FC */ li r31, -4
+/* 802A2E24 0029EA84 48 00 01 DC */ b lbl_802A3000
+lbl_802A2E28:
+/* 802A2E28 0029EA88 2C 04 00 00 */ cmpwi r4, 0
+/* 802A2E2C 0029EA8C 40 82 00 0C */ bne lbl_802A2E38
+/* 802A2E30 0029EA90 38 63 00 2C */ addi r3, r3, 0x2c
+/* 802A2E34 0029EA94 4B FC E4 B5 */ bl OSInitThreadQueue
+lbl_802A2E38:
+/* 802A2E38 0029EA98 7F 83 E3 78 */ mr r3, r28
+/* 802A2E3C 0029EA9C 38 80 00 20 */ li r4, 0x20
+/* 802A2E40 0029EAA0 4B FC 78 15 */ bl DCFlushRange
+/* 802A2E44 0029EAA4 4B FC B9 19 */ bl OSDisableInterrupts
+/* 802A2E48 0029EAA8 3C 80 80 53 */ lis r4, lbl_80536B60@ha
+/* 802A2E4C 0029EAAC 7C 7E 1B 78 */ mr r30, r3
+/* 802A2E50 0029EAB0 38 64 6B 60 */ addi r3, r4, lbl_80536B60@l
+/* 802A2E54 0029EAB4 80 84 6B 60 */ lwz r4, 0x6b60(r4)
+/* 802A2E58 0029EAB8 80 03 00 04 */ lwz r0, 4(r3)
+/* 802A2E5C 0029EABC 3B E0 00 00 */ li r31, 0
+/* 802A2E60 0029EAC0 7C 00 20 40 */ cmplw r0, r4
+/* 802A2E64 0029EAC4 40 80 00 0C */ bge lbl_802A2E70
+/* 802A2E68 0029EAC8 7C 04 00 50 */ subf r0, r4, r0
+/* 802A2E6C 0029EACC 48 00 00 20 */ b lbl_802A2E8C
+lbl_802A2E70:
+/* 802A2E70 0029EAD0 7C 84 00 50 */ subf r4, r4, r0
+/* 802A2E74 0029EAD4 38 60 00 10 */ li r3, 0x10
+/* 802A2E78 0029EAD8 38 04 FF F0 */ addi r0, r4, -16
+/* 802A2E7C 0029EADC 7C 83 1B 38 */ orc r3, r4, r3
+/* 802A2E80 0029EAE0 54 00 F8 7E */ srwi r0, r0, 1
+/* 802A2E84 0029EAE4 7C 00 18 50 */ subf r0, r0, r3
+/* 802A2E88 0029EAE8 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_802A2E8C:
+/* 802A2E8C 0029EAEC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2E90 0029EAF0 41 82 00 0C */ beq lbl_802A2E9C
+/* 802A2E94 0029EAF4 3B E0 FF F8 */ li r31, -8
+/* 802A2E98 0029EAF8 48 00 00 44 */ b lbl_802A2EDC
+lbl_802A2E9C:
+/* 802A2E9C 0029EAFC 3C C0 80 53 */ lis r6, lbl_80536B60@ha
+/* 802A2EA0 0029EB00 7F 83 E3 78 */ mr r3, r28
+/* 802A2EA4 0029EB04 38 C6 6B 60 */ addi r6, r6, lbl_80536B60@l
+/* 802A2EA8 0029EB08 80 06 00 0C */ lwz r0, 0xc(r6)
+/* 802A2EAC 0029EB0C 54 00 10 3A */ slwi r0, r0, 2
+/* 802A2EB0 0029EB10 7C 86 02 14 */ add r4, r6, r0
+/* 802A2EB4 0029EB14 93 84 00 10 */ stw r28, 0x10(r4)
+/* 802A2EB8 0029EB18 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 802A2EBC 0029EB1C 80 86 00 04 */ lwz r4, 4(r6)
+/* 802A2EC0 0029EB20 38 05 00 01 */ addi r0, r5, 1
+/* 802A2EC4 0029EB24 54 05 07 3E */ clrlwi r5, r0, 0x1c
+/* 802A2EC8 0029EB28 38 04 00 01 */ addi r0, r4, 1
+/* 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
+lbl_802A2EDC:
+/* 802A2EDC 0029EB3C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A2EE0 0029EB40 41 82 00 24 */ beq lbl_802A2F04
+/* 802A2EE4 0029EB44 7F C3 F3 78 */ mr r3, r30
+/* 802A2EE8 0029EB48 4B FC B8 9D */ bl OSRestoreInterrupts
+/* 802A2EEC 0029EB4C 2C 1D 00 00 */ cmpwi r29, 0
+/* 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
+/* 802A2F00 0029EB60 48 00 01 00 */ b lbl_802A3000
+lbl_802A2F04:
+/* 802A2F04 0029EB64 80 0D 89 88 */ lwz r0, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2F08 0029EB68 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2F0C 0029EB6C 40 81 00 D0 */ ble lbl_802A2FDC
+/* 802A2F10 0029EB70 3C 80 80 53 */ lis r4, lbl_80536B60@ha
+/* 802A2F14 0029EB74 38 64 6B 60 */ addi r3, r4, lbl_80536B60@l
+/* 802A2F18 0029EB78 80 84 6B 60 */ lwz r4, 0x6b60(r4)
+/* 802A2F1C 0029EB7C 80 03 00 04 */ lwz r0, 4(r3)
+/* 802A2F20 0029EB80 7C 00 20 40 */ cmplw r0, r4
+/* 802A2F24 0029EB84 40 80 00 0C */ bge lbl_802A2F30
+/* 802A2F28 0029EB88 7C 04 00 50 */ subf r0, r4, r0
+/* 802A2F2C 0029EB8C 48 00 00 10 */ b lbl_802A2F3C
+lbl_802A2F30:
+/* 802A2F30 0029EB90 7C 04 00 50 */ subf r0, r4, r0
+/* 802A2F34 0029EB94 7C 00 00 34 */ cntlzw r0, r0
+/* 802A2F38 0029EB98 54 00 D9 7E */ srwi r0, r0, 5
+lbl_802A2F3C:
+/* 802A2F3C 0029EB9C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2F40 0029EBA0 40 82 00 9C */ bne lbl_802A2FDC
+/* 802A2F44 0029EBA4 3C 60 80 53 */ lis r3, lbl_80536B60@ha
+/* 802A2F48 0029EBA8 38 63 6B 60 */ addi r3, r3, lbl_80536B60@l
+/* 802A2F4C 0029EBAC 80 03 00 08 */ lwz r0, 8(r3)
+/* 802A2F50 0029EBB0 54 00 10 3A */ slwi r0, r0, 2
+/* 802A2F54 0029EBB4 7C 63 02 14 */ add r3, r3, r0
+/* 802A2F58 0029EBB8 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 802A2F5C 0029EBBC 2C 04 00 00 */ cmpwi r4, 0
+/* 802A2F60 0029EBC0 41 82 00 7C */ beq lbl_802A2FDC
+/* 802A2F64 0029EBC4 80 04 00 28 */ lwz r0, 0x28(r4)
+/* 802A2F68 0029EBC8 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2F6C 0029EBCC 41 82 00 1C */ beq lbl_802A2F88
+/* 802A2F70 0029EBD0 80 6D 89 88 */ lwz r3, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2F74 0029EBD4 38 00 00 01 */ li r0, 1
+/* 802A2F78 0029EBD8 90 0D AE 00 */ stw r0, lbl_806400C0-_SDA_BASE_(r13)
+/* 802A2F7C 0029EBDC 38 03 FF FF */ addi r0, r3, -1
+/* 802A2F80 0029EBE0 90 8D AE 04 */ stw r4, lbl_806400C4-_SDA_BASE_(r13)
+/* 802A2F84 0029EBE4 90 0D 89 88 */ stw r0, lbl_8063DC48-_SDA_BASE_(r13)
+lbl_802A2F88:
+/* 802A2F88 0029EBE8 3C 84 80 00 */ addis r4, r4, 0x8000
+/* 802A2F8C 0029EBEC 38 60 00 00 */ li r3, 0
+/* 802A2F90 0029EBF0 4B FF F9 4D */ bl IPCWriteReg
+/* 802A2F94 0029EBF4 3C E0 80 53 */ lis r7, lbl_80536B60@ha
+/* 802A2F98 0029EBF8 80 6D 89 88 */ lwz r3, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2F9C 0029EBFC 38 C7 6B 60 */ addi r6, r7, lbl_80536B60@l
+/* 802A2FA0 0029EC00 80 87 6B 60 */ lwz r4, 0x6b60(r7)
+/* 802A2FA4 0029EC04 80 A6 00 08 */ lwz r5, 8(r6)
+/* 802A2FA8 0029EC08 38 03 FF FF */ addi r0, r3, -1
+/* 802A2FAC 0029EC0C 90 0D 89 88 */ stw r0, lbl_8063DC48-_SDA_BASE_(r13)
+/* 802A2FB0 0029EC10 38 84 00 01 */ addi r4, r4, 1
+/* 802A2FB4 0029EC14 38 05 00 01 */ addi r0, r5, 1
+/* 802A2FB8 0029EC18 38 60 00 01 */ li r3, 1
+/* 802A2FBC 0029EC1C 54 00 07 3E */ clrlwi r0, r0, 0x1c
+/* 802A2FC0 0029EC20 90 87 6B 60 */ stw r4, 0x6b60(r7)
+/* 802A2FC4 0029EC24 90 06 00 08 */ stw r0, 8(r6)
+/* 802A2FC8 0029EC28 4B FF F9 05 */ bl IPCReadReg
+/* 802A2FCC 0029EC2C 54 60 06 B6 */ rlwinm r0, r3, 0, 0x1a, 0x1b
+/* 802A2FD0 0029EC30 38 60 00 01 */ li r3, 1
+/* 802A2FD4 0029EC34 60 04 00 01 */ ori r4, r0, 1
+/* 802A2FD8 0029EC38 4B FF F9 05 */ bl IPCWriteReg
+lbl_802A2FDC:
+/* 802A2FDC 0029EC3C 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A2FE0 0029EC40 40 82 00 0C */ bne lbl_802A2FEC
+/* 802A2FE4 0029EC44 38 7C 00 2C */ addi r3, r28, 0x2c
+/* 802A2FE8 0029EC48 4B FC F3 8D */ bl OSSleepThread
+lbl_802A2FEC:
+/* 802A2FEC 0029EC4C 7F C3 F3 78 */ mr r3, r30
+/* 802A2FF0 0029EC50 4B FC B7 95 */ bl OSRestoreInterrupts
+/* 802A2FF4 0029EC54 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A2FF8 0029EC58 40 82 00 08 */ bne lbl_802A3000
+/* 802A2FFC 0029EC5C 83 FC 00 04 */ lwz r31, 4(r28)
+lbl_802A3000:
+/* 802A3000 0029EC60 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A3004 0029EC64 41 82 00 18 */ beq lbl_802A301C
+/* 802A3008 0029EC68 2C 1D 00 00 */ cmpwi r29, 0
+/* 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
+lbl_802A301C:
+/* 802A301C 0029EC7C 7F E3 FB 78 */ mr r3, r31
+/* 802A3020 0029EC80 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A3024 0029EC84 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A3028 0029EC88 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A302C 0029EC8C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A3030 0029EC90 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A3034 0029EC94 7C 08 03 A6 */ mtlr r0
+/* 802A3038 0029EC98 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A303C 0029EC9C 4E 80 00 20 */ blr
+
+.global IOS_OpenAsync
+IOS_OpenAsync:
+/* 802A3040 0029ECA0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A3044 0029ECA4 7C 08 02 A6 */ mflr r0
+/* 802A3048 0029ECA8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A304C 0029ECAC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3050 0029ECB0 4B F2 40 D9 */ bl _savegpr_27
+/* 802A3054 0029ECB4 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3058 0029ECB8 7C 7B 1B 78 */ mr r27, r3
+/* 802A305C 0029ECBC 7C 9C 23 78 */ mr r28, r4
+/* 802A3060 0029ECC0 7C BD 2B 78 */ mr r29, r5
+/* 802A3064 0029ECC4 7C DF 33 78 */ mr r31, r6
+/* 802A3068 0029ECC8 3B C0 00 00 */ li r30, 0
+/* 802A306C 0029ECCC 40 82 00 0C */ bne lbl_802A3078
+/* 802A3070 0029ECD0 3B C0 FF FC */ li r30, -4
+/* 802A3074 0029ECD4 48 00 00 4C */ b lbl_802A30C0
+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
+/* 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
+/* 802A3094 0029ECF4 3B C0 FF EA */ li r30, -22
+/* 802A3098 0029ECF8 48 00 00 28 */ b lbl_802A30C0
+lbl_802A309C:
+/* 802A309C 0029ECFC 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A30A0 0029ED00 38 A0 00 00 */ li r5, 0
+/* 802A30A4 0029ED04 38 00 00 01 */ li r0, 1
+/* 802A30A8 0029ED08 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A30AC 0029ED0C 93 E4 00 24 */ stw r31, 0x24(r4)
+/* 802A30B0 0029ED10 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A30B4 0029ED14 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A30B8 0029ED18 90 03 00 00 */ stw r0, 0(r3)
+/* 802A30BC 0029ED1C 90 A3 00 08 */ stw r5, 8(r3)
+lbl_802A30C0:
+/* 802A30C0 0029ED20 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A30C4 0029ED24 40 82 00 78 */ bne lbl_802A313C
+/* 802A30C8 0029ED28 83 E1 00 08 */ lwz r31, 8(r1)
+/* 802A30CC 0029ED2C 3B C0 00 00 */ li r30, 0
+/* 802A30D0 0029ED30 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A30D4 0029ED34 40 82 00 0C */ bne lbl_802A30E0
+/* 802A30D8 0029ED38 3B C0 FF FC */ li r30, -4
+/* 802A30DC 0029ED3C 48 00 00 48 */ b lbl_802A3124
+lbl_802A30E0:
+/* 802A30E0 0029ED40 7F 63 DB 78 */ mr r3, r27
+/* 802A30E4 0029ED44 38 80 00 40 */ li r4, 0x40
+/* 802A30E8 0029ED48 48 00 00 08 */ b lbl_802A30F0
+lbl_802A30EC:
+/* 802A30EC 0029ED4C 38 63 00 01 */ addi r3, r3, 1
+lbl_802A30F0:
+/* 802A30F0 0029ED50 88 03 00 00 */ lbz r0, 0(r3)
+/* 802A30F4 0029ED54 2C 00 00 00 */ cmpwi r0, 0
+/* 802A30F8 0029ED58 41 82 00 10 */ beq lbl_802A3108
+/* 802A30FC 0029ED5C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A3100 0029ED60 38 84 FF FF */ addi r4, r4, -1
+/* 802A3104 0029ED64 40 82 FF E8 */ bne lbl_802A30EC
+lbl_802A3108:
+/* 802A3108 0029ED68 7C 9B 18 50 */ subf r4, r27, r3
+/* 802A310C 0029ED6C 7F 63 DB 78 */ mr r3, r27
+/* 802A3110 0029ED70 38 84 00 01 */ addi r4, r4, 1
+/* 802A3114 0029ED74 4B FC 75 41 */ bl DCFlushRange
+/* 802A3118 0029ED78 3C 1B 80 00 */ addis r0, r27, 0x8000
+/* 802A311C 0029ED7C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802A3120 0029ED80 93 9F 00 10 */ stw r28, 0x10(r31)
+lbl_802A3124:
+/* 802A3124 0029ED84 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A3128 0029ED88 40 82 00 14 */ bne lbl_802A313C
+/* 802A312C 0029ED8C 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3130 0029ED90 7F A4 EB 78 */ mr r4, r29
+/* 802A3134 0029ED94 4B FF FC C1 */ bl __ios_Ipc2
+/* 802A3138 0029ED98 7C 7E 1B 78 */ mr r30, r3
+lbl_802A313C:
+/* 802A313C 0029ED9C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3140 0029EDA0 7F C3 F3 78 */ mr r3, r30
+/* 802A3144 0029EDA4 4B F2 40 31 */ bl _restgpr_27
+/* 802A3148 0029EDA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A314C 0029EDAC 7C 08 03 A6 */ mtlr r0
+/* 802A3150 0029EDB0 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A3154 0029EDB4 4E 80 00 20 */ blr
+
+.global IOS_Open
+IOS_Open:
+/* 802A3158 0029EDB8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A315C 0029EDBC 7C 08 02 A6 */ mflr r0
+/* 802A3160 0029EDC0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A3164 0029EDC4 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3168 0029EDC8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A316C 0029EDCC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A3170 0029EDD0 3B C0 00 00 */ li r30, 0
+/* 802A3174 0029EDD4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A3178 0029EDD8 7C 9D 23 78 */ mr r29, r4
+/* 802A317C 0029EDDC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A3180 0029EDE0 7C 7C 1B 78 */ mr r28, r3
+/* 802A3184 0029EDE4 40 82 00 0C */ bne lbl_802A3190
+/* 802A3188 0029EDE8 3B C0 FF FC */ li r30, -4
+/* 802A318C 0029EDEC 48 00 00 4C */ b lbl_802A31D8
+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
+/* 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
+/* 802A31AC 0029EE0C 3B C0 FF EA */ li r30, -22
+/* 802A31B0 0029EE10 48 00 00 28 */ b lbl_802A31D8
+lbl_802A31B4:
+/* 802A31B4 0029EE14 38 A0 00 00 */ li r5, 0
+/* 802A31B8 0029EE18 38 00 00 01 */ li r0, 1
+/* 802A31BC 0029EE1C 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A31C0 0029EE20 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A31C4 0029EE24 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A31C8 0029EE28 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A31CC 0029EE2C 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A31D0 0029EE30 90 03 00 00 */ stw r0, 0(r3)
+/* 802A31D4 0029EE34 90 A3 00 08 */ stw r5, 8(r3)
+lbl_802A31D8:
+/* 802A31D8 0029EE38 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A31DC 0029EE3C 40 82 00 78 */ bne lbl_802A3254
+/* 802A31E0 0029EE40 83 E1 00 08 */ lwz r31, 8(r1)
+/* 802A31E4 0029EE44 3B C0 00 00 */ li r30, 0
+/* 802A31E8 0029EE48 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A31EC 0029EE4C 40 82 00 0C */ bne lbl_802A31F8
+/* 802A31F0 0029EE50 3B C0 FF FC */ li r30, -4
+/* 802A31F4 0029EE54 48 00 00 48 */ b lbl_802A323C
+lbl_802A31F8:
+/* 802A31F8 0029EE58 7F 83 E3 78 */ mr r3, r28
+/* 802A31FC 0029EE5C 38 80 00 40 */ li r4, 0x40
+/* 802A3200 0029EE60 48 00 00 08 */ b lbl_802A3208
+lbl_802A3204:
+/* 802A3204 0029EE64 38 63 00 01 */ addi r3, r3, 1
+lbl_802A3208:
+/* 802A3208 0029EE68 88 03 00 00 */ lbz r0, 0(r3)
+/* 802A320C 0029EE6C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A3210 0029EE70 41 82 00 10 */ beq lbl_802A3220
+/* 802A3214 0029EE74 2C 04 00 00 */ cmpwi r4, 0
+/* 802A3218 0029EE78 38 84 FF FF */ addi r4, r4, -1
+/* 802A321C 0029EE7C 40 82 FF E8 */ bne lbl_802A3204
+lbl_802A3220:
+/* 802A3220 0029EE80 7C 9C 18 50 */ subf r4, r28, r3
+/* 802A3224 0029EE84 7F 83 E3 78 */ mr r3, r28
+/* 802A3228 0029EE88 38 84 00 01 */ addi r4, r4, 1
+/* 802A322C 0029EE8C 4B FC 74 29 */ bl DCFlushRange
+/* 802A3230 0029EE90 3C 1C 80 00 */ addis r0, r28, 0x8000
+/* 802A3234 0029EE94 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802A3238 0029EE98 93 BF 00 10 */ stw r29, 0x10(r31)
+lbl_802A323C:
+/* 802A323C 0029EE9C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A3240 0029EEA0 40 82 00 14 */ bne lbl_802A3254
+/* 802A3244 0029EEA4 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3248 0029EEA8 38 80 00 00 */ li r4, 0
+/* 802A324C 0029EEAC 4B FF FB A9 */ bl __ios_Ipc2
+/* 802A3250 0029EEB0 7C 7E 1B 78 */ mr r30, r3
+lbl_802A3254:
+/* 802A3254 0029EEB4 7F C3 F3 78 */ mr r3, r30
+/* 802A3258 0029EEB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A325C 0029EEBC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A3260 0029EEC0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A3264 0029EEC4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A3268 0029EEC8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A326C 0029EECC 7C 08 03 A6 */ mtlr r0
+/* 802A3270 0029EED0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A3274 0029EED4 4E 80 00 20 */ blr
+
+.global IOS_CloseAsync
+IOS_CloseAsync:
+/* 802A3278 0029EED8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A327C 0029EEDC 7C 08 02 A6 */ mflr r0
+/* 802A3280 0029EEE0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A3284 0029EEE4 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3288 0029EEE8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A328C 0029EEEC 3B E0 00 00 */ li r31, 0
+/* 802A3290 0029EEF0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A3294 0029EEF4 7C BE 2B 78 */ mr r30, r5
+/* 802A3298 0029EEF8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A329C 0029EEFC 7C 9D 23 78 */ mr r29, r4
+/* 802A32A0 0029EF00 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A32A4 0029EF04 7C 7C 1B 78 */ mr r28, r3
+/* 802A32A8 0029EF08 40 82 00 0C */ bne lbl_802A32B4
+/* 802A32AC 0029EF0C 3B E0 FF FC */ li r31, -4
+/* 802A32B0 0029EF10 48 00 00 4C */ b lbl_802A32FC
+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
+/* 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
+/* 802A32D0 0029EF30 3B E0 FF EA */ li r31, -22
+/* 802A32D4 0029EF34 48 00 00 28 */ b lbl_802A32FC
+lbl_802A32D8:
+/* 802A32D8 0029EF38 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A32DC 0029EF3C 38 A0 00 00 */ li r5, 0
+/* 802A32E0 0029EF40 38 00 00 02 */ li r0, 2
+/* 802A32E4 0029EF44 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A32E8 0029EF48 93 C4 00 24 */ stw r30, 0x24(r4)
+/* 802A32EC 0029EF4C 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A32F0 0029EF50 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A32F4 0029EF54 90 03 00 00 */ stw r0, 0(r3)
+/* 802A32F8 0029EF58 93 83 00 08 */ stw r28, 8(r3)
+lbl_802A32FC:
+/* 802A32FC 0029EF5C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3300 0029EF60 40 82 00 14 */ bne lbl_802A3314
+/* 802A3304 0029EF64 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3308 0029EF68 7F A4 EB 78 */ mr r4, r29
+/* 802A330C 0029EF6C 4B FF FA E9 */ bl __ios_Ipc2
+/* 802A3310 0029EF70 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3314:
+/* 802A3314 0029EF74 7F E3 FB 78 */ mr r3, r31
+/* 802A3318 0029EF78 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A331C 0029EF7C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A3320 0029EF80 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A3324 0029EF84 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A3328 0029EF88 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A332C 0029EF8C 7C 08 03 A6 */ mtlr r0
+/* 802A3330 0029EF90 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A3334 0029EF94 4E 80 00 20 */ blr
+
+.global IOS_Close
+IOS_Close:
+/* 802A3338 0029EF98 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A333C 0029EF9C 7C 08 02 A6 */ mflr r0
+/* 802A3340 0029EFA0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A3344 0029EFA4 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3348 0029EFA8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A334C 0029EFAC 3B E0 00 00 */ li r31, 0
+/* 802A3350 0029EFB0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A3354 0029EFB4 7C 7E 1B 78 */ mr r30, r3
+/* 802A3358 0029EFB8 40 82 00 0C */ bne lbl_802A3364
+/* 802A335C 0029EFBC 3B E0 FF FC */ li r31, -4
+/* 802A3360 0029EFC0 48 00 00 4C */ b lbl_802A33AC
+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
+/* 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
+/* 802A3380 0029EFE0 3B E0 FF EA */ li r31, -22
+/* 802A3384 0029EFE4 48 00 00 28 */ b lbl_802A33AC
+lbl_802A3388:
+/* 802A3388 0029EFE8 38 A0 00 00 */ li r5, 0
+/* 802A338C 0029EFEC 38 00 00 02 */ li r0, 2
+/* 802A3390 0029EFF0 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A3394 0029EFF4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3398 0029EFF8 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A339C 0029EFFC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A33A0 0029F000 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A33A4 0029F004 90 03 00 00 */ stw r0, 0(r3)
+/* 802A33A8 0029F008 93 C3 00 08 */ stw r30, 8(r3)
+lbl_802A33AC:
+/* 802A33AC 0029F00C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A33B0 0029F010 40 82 00 14 */ bne lbl_802A33C4
+/* 802A33B4 0029F014 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A33B8 0029F018 38 80 00 00 */ li r4, 0
+/* 802A33BC 0029F01C 4B FF FA 39 */ bl __ios_Ipc2
+/* 802A33C0 0029F020 7C 7F 1B 78 */ mr r31, r3
+lbl_802A33C4:
+/* 802A33C4 0029F024 7F E3 FB 78 */ mr r3, r31
+/* 802A33C8 0029F028 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A33CC 0029F02C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A33D0 0029F030 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A33D4 0029F034 7C 08 03 A6 */ mtlr r0
+/* 802A33D8 0029F038 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A33DC 0029F03C 4E 80 00 20 */ blr
+
+.global IOS_ReadAsync
+IOS_ReadAsync:
+/* 802A33E0 0029F040 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A33E4 0029F044 7C 08 02 A6 */ mflr r0
+/* 802A33E8 0029F048 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A33EC 0029F04C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A33F0 0029F050 4B F2 3D 35 */ bl _savegpr_26
+/* 802A33F4 0029F054 34 01 00 08 */ addic. r0, r1, 8
+/* 802A33F8 0029F058 7C 7A 1B 78 */ mr r26, r3
+/* 802A33FC 0029F05C 7C 9B 23 78 */ mr r27, r4
+/* 802A3400 0029F060 7C BC 2B 78 */ mr r28, r5
+/* 802A3404 0029F064 7C DD 33 78 */ mr r29, r6
+/* 802A3408 0029F068 7C FF 3B 78 */ mr r31, r7
+/* 802A340C 0029F06C 3B C0 00 00 */ li r30, 0
+/* 802A3410 0029F070 40 82 00 0C */ bne lbl_802A341C
+/* 802A3414 0029F074 3B C0 FF FC */ li r30, -4
+/* 802A3418 0029F078 48 00 00 4C */ b lbl_802A3464
+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
+/* 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
+/* 802A3438 0029F098 3B C0 FF EA */ li r30, -22
+/* 802A343C 0029F09C 48 00 00 28 */ b lbl_802A3464
+lbl_802A3440:
+/* 802A3440 0029F0A0 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A3444 0029F0A4 38 A0 00 00 */ li r5, 0
+/* 802A3448 0029F0A8 38 00 00 03 */ li r0, 3
+/* 802A344C 0029F0AC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3450 0029F0B0 93 E4 00 24 */ stw r31, 0x24(r4)
+/* 802A3454 0029F0B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3458 0029F0B8 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A345C 0029F0BC 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3460 0029F0C0 93 43 00 08 */ stw r26, 8(r3)
+lbl_802A3464:
+/* 802A3464 0029F0C4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A3468 0029F0C8 40 82 00 5C */ bne lbl_802A34C4
+/* 802A346C 0029F0CC 83 E1 00 08 */ lwz r31, 8(r1)
+/* 802A3470 0029F0D0 3B C0 00 00 */ li r30, 0
+/* 802A3474 0029F0D4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3478 0029F0D8 40 82 00 0C */ bne lbl_802A3484
+/* 802A347C 0029F0DC 3B C0 FF FC */ li r30, -4
+/* 802A3480 0029F0E0 48 00 00 2C */ b lbl_802A34AC
+lbl_802A3484:
+/* 802A3484 0029F0E4 7F 63 DB 78 */ mr r3, r27
+/* 802A3488 0029F0E8 7F 84 E3 78 */ mr r4, r28
+/* 802A348C 0029F0EC 4B FC 71 9D */ bl DCInvalidateRange
+/* 802A3490 0029F0F0 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A3494 0029F0F4 41 82 00 0C */ beq lbl_802A34A0
+/* 802A3498 0029F0F8 3C 1B 80 00 */ addis r0, r27, 0x8000
+/* 802A349C 0029F0FC 48 00 00 08 */ b lbl_802A34A4
+lbl_802A34A0:
+/* 802A34A0 0029F100 38 00 00 00 */ li r0, 0
+lbl_802A34A4:
+/* 802A34A4 0029F104 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802A34A8 0029F108 93 9F 00 10 */ stw r28, 0x10(r31)
+lbl_802A34AC:
+/* 802A34AC 0029F10C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A34B0 0029F110 40 82 00 14 */ bne lbl_802A34C4
+/* 802A34B4 0029F114 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A34B8 0029F118 7F A4 EB 78 */ mr r4, r29
+/* 802A34BC 0029F11C 4B FF F9 39 */ bl __ios_Ipc2
+/* 802A34C0 0029F120 7C 7E 1B 78 */ mr r30, r3
+lbl_802A34C4:
+/* 802A34C4 0029F124 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A34C8 0029F128 7F C3 F3 78 */ mr r3, r30
+/* 802A34CC 0029F12C 4B F2 3C A5 */ bl _restgpr_26
+/* 802A34D0 0029F130 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A34D4 0029F134 7C 08 03 A6 */ mtlr r0
+/* 802A34D8 0029F138 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A34DC 0029F13C 4E 80 00 20 */ blr
+
+.global IOS_Read
+IOS_Read:
+/* 802A34E0 0029F140 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A34E4 0029F144 7C 08 02 A6 */ mflr r0
+/* 802A34E8 0029F148 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A34EC 0029F14C 34 01 00 08 */ addic. r0, r1, 8
+/* 802A34F0 0029F150 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A34F4 0029F154 7C 7F 1B 78 */ mr r31, r3
+/* 802A34F8 0029F158 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A34FC 0029F15C 3B C0 00 00 */ li r30, 0
+/* 802A3500 0029F160 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A3504 0029F164 7C BD 2B 78 */ mr r29, r5
+/* 802A3508 0029F168 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A350C 0029F16C 7C 9C 23 78 */ mr r28, r4
+/* 802A3510 0029F170 40 82 00 0C */ bne lbl_802A351C
+/* 802A3514 0029F174 3B C0 FF FC */ li r30, -4
+/* 802A3518 0029F178 48 00 00 4C */ b lbl_802A3564
+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
+/* 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
+/* 802A3538 0029F198 3B C0 FF EA */ li r30, -22
+/* 802A353C 0029F19C 48 00 00 28 */ b lbl_802A3564
+lbl_802A3540:
+/* 802A3540 0029F1A0 38 A0 00 00 */ li r5, 0
+/* 802A3544 0029F1A4 38 00 00 03 */ li r0, 3
+/* 802A3548 0029F1A8 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A354C 0029F1AC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3550 0029F1B0 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A3554 0029F1B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3558 0029F1B8 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A355C 0029F1BC 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3560 0029F1C0 93 E3 00 08 */ stw r31, 8(r3)
+lbl_802A3564:
+/* 802A3564 0029F1C4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A3568 0029F1C8 40 82 00 5C */ bne lbl_802A35C4
+/* 802A356C 0029F1CC 83 E1 00 08 */ lwz r31, 8(r1)
+/* 802A3570 0029F1D0 3B C0 00 00 */ li r30, 0
+/* 802A3574 0029F1D4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3578 0029F1D8 40 82 00 0C */ bne lbl_802A3584
+/* 802A357C 0029F1DC 3B C0 FF FC */ li r30, -4
+/* 802A3580 0029F1E0 48 00 00 2C */ b lbl_802A35AC
+lbl_802A3584:
+/* 802A3584 0029F1E4 7F 83 E3 78 */ mr r3, r28
+/* 802A3588 0029F1E8 7F A4 EB 78 */ mr r4, r29
+/* 802A358C 0029F1EC 4B FC 70 9D */ bl DCInvalidateRange
+/* 802A3590 0029F1F0 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A3594 0029F1F4 41 82 00 0C */ beq lbl_802A35A0
+/* 802A3598 0029F1F8 3C 1C 80 00 */ addis r0, r28, 0x8000
+/* 802A359C 0029F1FC 48 00 00 08 */ b lbl_802A35A4
+lbl_802A35A0:
+/* 802A35A0 0029F200 38 00 00 00 */ li r0, 0
+lbl_802A35A4:
+/* 802A35A4 0029F204 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802A35A8 0029F208 93 BF 00 10 */ stw r29, 0x10(r31)
+lbl_802A35AC:
+/* 802A35AC 0029F20C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A35B0 0029F210 40 82 00 14 */ bne lbl_802A35C4
+/* 802A35B4 0029F214 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A35B8 0029F218 38 80 00 00 */ li r4, 0
+/* 802A35BC 0029F21C 4B FF F8 39 */ bl __ios_Ipc2
+/* 802A35C0 0029F220 7C 7E 1B 78 */ mr r30, r3
+lbl_802A35C4:
+/* 802A35C4 0029F224 7F C3 F3 78 */ mr r3, r30
+/* 802A35C8 0029F228 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A35CC 0029F22C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A35D0 0029F230 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A35D4 0029F234 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A35D8 0029F238 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A35DC 0029F23C 7C 08 03 A6 */ mtlr r0
+/* 802A35E0 0029F240 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A35E4 0029F244 4E 80 00 20 */ blr
+
+.global IOS_WriteAsync
+IOS_WriteAsync:
+/* 802A35E8 0029F248 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A35EC 0029F24C 7C 08 02 A6 */ mflr r0
+/* 802A35F0 0029F250 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A35F4 0029F254 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A35F8 0029F258 4B F2 3B 2D */ bl _savegpr_26
+/* 802A35FC 0029F25C 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3600 0029F260 7C 7A 1B 78 */ mr r26, r3
+/* 802A3604 0029F264 7C 9B 23 78 */ mr r27, r4
+/* 802A3608 0029F268 7C BC 2B 78 */ mr r28, r5
+/* 802A360C 0029F26C 7C DD 33 78 */ mr r29, r6
+/* 802A3610 0029F270 7C FE 3B 78 */ mr r30, r7
+/* 802A3614 0029F274 3B E0 00 00 */ li r31, 0
+/* 802A3618 0029F278 40 82 00 0C */ bne lbl_802A3624
+/* 802A361C 0029F27C 3B E0 FF FC */ li r31, -4
+/* 802A3620 0029F280 48 00 00 4C */ b lbl_802A366C
+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
+/* 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
+/* 802A3640 0029F2A0 3B E0 FF EA */ li r31, -22
+/* 802A3644 0029F2A4 48 00 00 28 */ b lbl_802A366C
+lbl_802A3648:
+/* 802A3648 0029F2A8 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A364C 0029F2AC 38 A0 00 00 */ li r5, 0
+/* 802A3650 0029F2B0 38 00 00 04 */ li r0, 4
+/* 802A3654 0029F2B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3658 0029F2B8 93 C4 00 24 */ stw r30, 0x24(r4)
+/* 802A365C 0029F2BC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3660 0029F2C0 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3664 0029F2C4 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3668 0029F2C8 93 43 00 08 */ stw r26, 8(r3)
+lbl_802A366C:
+/* 802A366C 0029F2CC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3670 0029F2D0 40 82 00 5C */ bne lbl_802A36CC
+/* 802A3674 0029F2D4 80 A1 00 08 */ lwz r5, 8(r1)
+/* 802A3678 0029F2D8 3B E0 00 00 */ li r31, 0
+/* 802A367C 0029F2DC 2C 05 00 00 */ cmpwi r5, 0
+/* 802A3680 0029F2E0 40 82 00 0C */ bne lbl_802A368C
+/* 802A3684 0029F2E4 3B E0 FF FC */ li r31, -4
+/* 802A3688 0029F2E8 48 00 00 2C */ b lbl_802A36B4
+lbl_802A368C:
+/* 802A368C 0029F2EC 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A3690 0029F2F0 41 82 00 0C */ beq lbl_802A369C
+/* 802A3694 0029F2F4 3C 1B 80 00 */ addis r0, r27, 0x8000
+/* 802A3698 0029F2F8 48 00 00 08 */ b lbl_802A36A0
+lbl_802A369C:
+/* 802A369C 0029F2FC 38 00 00 00 */ li r0, 0
+lbl_802A36A0:
+/* 802A36A0 0029F300 90 05 00 0C */ stw r0, 0xc(r5)
+/* 802A36A4 0029F304 7F 63 DB 78 */ mr r3, r27
+/* 802A36A8 0029F308 7F 84 E3 78 */ mr r4, r28
+/* 802A36AC 0029F30C 93 85 00 10 */ stw r28, 0x10(r5)
+/* 802A36B0 0029F310 4B FC 6F A5 */ bl DCFlushRange
+lbl_802A36B4:
+/* 802A36B4 0029F314 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A36B8 0029F318 40 82 00 14 */ bne lbl_802A36CC
+/* 802A36BC 0029F31C 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A36C0 0029F320 7F A4 EB 78 */ mr r4, r29
+/* 802A36C4 0029F324 4B FF F7 31 */ bl __ios_Ipc2
+/* 802A36C8 0029F328 7C 7F 1B 78 */ mr r31, r3
+lbl_802A36CC:
+/* 802A36CC 0029F32C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A36D0 0029F330 7F E3 FB 78 */ mr r3, r31
+/* 802A36D4 0029F334 4B F2 3A 9D */ bl _restgpr_26
+/* 802A36D8 0029F338 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A36DC 0029F33C 7C 08 03 A6 */ mtlr r0
+/* 802A36E0 0029F340 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A36E4 0029F344 4E 80 00 20 */ blr
+
+.global IOS_Write
+IOS_Write:
+/* 802A36E8 0029F348 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A36EC 0029F34C 7C 08 02 A6 */ mflr r0
+/* 802A36F0 0029F350 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A36F4 0029F354 34 01 00 08 */ addic. r0, r1, 8
+/* 802A36F8 0029F358 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A36FC 0029F35C 3B E0 00 00 */ li r31, 0
+/* 802A3700 0029F360 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A3704 0029F364 7C BE 2B 78 */ mr r30, r5
+/* 802A3708 0029F368 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A370C 0029F36C 7C 9D 23 78 */ mr r29, r4
+/* 802A3710 0029F370 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A3714 0029F374 7C 7C 1B 78 */ mr r28, r3
+/* 802A3718 0029F378 40 82 00 0C */ bne lbl_802A3724
+/* 802A371C 0029F37C 3B E0 FF FC */ li r31, -4
+/* 802A3720 0029F380 48 00 00 4C */ b lbl_802A376C
+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
+/* 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
+/* 802A3740 0029F3A0 3B E0 FF EA */ li r31, -22
+/* 802A3744 0029F3A4 48 00 00 28 */ b lbl_802A376C
+lbl_802A3748:
+/* 802A3748 0029F3A8 38 A0 00 00 */ li r5, 0
+/* 802A374C 0029F3AC 38 00 00 04 */ li r0, 4
+/* 802A3750 0029F3B0 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A3754 0029F3B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3758 0029F3B8 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A375C 0029F3BC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3760 0029F3C0 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3764 0029F3C4 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3768 0029F3C8 93 83 00 08 */ stw r28, 8(r3)
+lbl_802A376C:
+/* 802A376C 0029F3CC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3770 0029F3D0 40 82 00 5C */ bne lbl_802A37CC
+/* 802A3774 0029F3D4 80 A1 00 08 */ lwz r5, 8(r1)
+/* 802A3778 0029F3D8 3B E0 00 00 */ li r31, 0
+/* 802A377C 0029F3DC 2C 05 00 00 */ cmpwi r5, 0
+/* 802A3780 0029F3E0 40 82 00 0C */ bne lbl_802A378C
+/* 802A3784 0029F3E4 3B E0 FF FC */ li r31, -4
+/* 802A3788 0029F3E8 48 00 00 2C */ b lbl_802A37B4
+lbl_802A378C:
+/* 802A378C 0029F3EC 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A3790 0029F3F0 41 82 00 0C */ beq lbl_802A379C
+/* 802A3794 0029F3F4 3C 1D 80 00 */ addis r0, r29, 0x8000
+/* 802A3798 0029F3F8 48 00 00 08 */ b lbl_802A37A0
+lbl_802A379C:
+/* 802A379C 0029F3FC 38 00 00 00 */ li r0, 0
+lbl_802A37A0:
+/* 802A37A0 0029F400 90 05 00 0C */ stw r0, 0xc(r5)
+/* 802A37A4 0029F404 7F A3 EB 78 */ mr r3, r29
+/* 802A37A8 0029F408 7F C4 F3 78 */ mr r4, r30
+/* 802A37AC 0029F40C 93 C5 00 10 */ stw r30, 0x10(r5)
+/* 802A37B0 0029F410 4B FC 6E A5 */ bl DCFlushRange
+lbl_802A37B4:
+/* 802A37B4 0029F414 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A37B8 0029F418 40 82 00 14 */ bne lbl_802A37CC
+/* 802A37BC 0029F41C 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A37C0 0029F420 38 80 00 00 */ li r4, 0
+/* 802A37C4 0029F424 4B FF F6 31 */ bl __ios_Ipc2
+/* 802A37C8 0029F428 7C 7F 1B 78 */ mr r31, r3
+lbl_802A37CC:
+/* 802A37CC 0029F42C 7F E3 FB 78 */ mr r3, r31
+/* 802A37D0 0029F430 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A37D4 0029F434 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A37D8 0029F438 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A37DC 0029F43C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A37E0 0029F440 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A37E4 0029F444 7C 08 03 A6 */ mtlr r0
+/* 802A37E8 0029F448 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A37EC 0029F44C 4E 80 00 20 */ blr
+
+.global IOS_SeekAsync
+IOS_SeekAsync:
+/* 802A37F0 0029F450 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A37F4 0029F454 7C 08 02 A6 */ mflr r0
+/* 802A37F8 0029F458 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A37FC 0029F45C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3800 0029F460 4B F2 39 25 */ bl _savegpr_26
+/* 802A3804 0029F464 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3808 0029F468 7C 7A 1B 78 */ mr r26, r3
+/* 802A380C 0029F46C 7C 9B 23 78 */ mr r27, r4
+/* 802A3810 0029F470 7C BC 2B 78 */ mr r28, r5
+/* 802A3814 0029F474 7C DD 33 78 */ mr r29, r6
+/* 802A3818 0029F478 7C FE 3B 78 */ mr r30, r7
+/* 802A381C 0029F47C 3B E0 00 00 */ li r31, 0
+/* 802A3820 0029F480 40 82 00 0C */ bne lbl_802A382C
+/* 802A3824 0029F484 3B E0 FF FC */ li r31, -4
+/* 802A3828 0029F488 48 00 00 4C */ b lbl_802A3874
+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
+/* 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
+/* 802A3848 0029F4A8 3B E0 FF EA */ li r31, -22
+/* 802A384C 0029F4AC 48 00 00 28 */ b lbl_802A3874
+lbl_802A3850:
+/* 802A3850 0029F4B0 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A3854 0029F4B4 38 A0 00 00 */ li r5, 0
+/* 802A3858 0029F4B8 38 00 00 05 */ li r0, 5
+/* 802A385C 0029F4BC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3860 0029F4C0 93 C4 00 24 */ stw r30, 0x24(r4)
+/* 802A3864 0029F4C4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3868 0029F4C8 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A386C 0029F4CC 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3870 0029F4D0 93 43 00 08 */ stw r26, 8(r3)
+lbl_802A3874:
+/* 802A3874 0029F4D4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3878 0029F4D8 40 82 00 3C */ bne lbl_802A38B4
+/* 802A387C 0029F4DC 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3880 0029F4E0 3B E0 00 00 */ li r31, 0
+/* 802A3884 0029F4E4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3888 0029F4E8 40 82 00 0C */ bne lbl_802A3894
+/* 802A388C 0029F4EC 3B E0 FF FC */ li r31, -4
+/* 802A3890 0029F4F0 48 00 00 0C */ b lbl_802A389C
+lbl_802A3894:
+/* 802A3894 0029F4F4 93 63 00 0C */ stw r27, 0xc(r3)
+/* 802A3898 0029F4F8 93 83 00 10 */ stw r28, 0x10(r3)
+lbl_802A389C:
+/* 802A389C 0029F4FC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A38A0 0029F500 40 82 00 14 */ bne lbl_802A38B4
+/* 802A38A4 0029F504 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A38A8 0029F508 7F A4 EB 78 */ mr r4, r29
+/* 802A38AC 0029F50C 4B FF F5 49 */ bl __ios_Ipc2
+/* 802A38B0 0029F510 7C 7F 1B 78 */ mr r31, r3
+lbl_802A38B4:
+/* 802A38B4 0029F514 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A38B8 0029F518 7F E3 FB 78 */ mr r3, r31
+/* 802A38BC 0029F51C 4B F2 38 B5 */ bl _restgpr_26
+/* 802A38C0 0029F520 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A38C4 0029F524 7C 08 03 A6 */ mtlr r0
+/* 802A38C8 0029F528 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A38CC 0029F52C 4E 80 00 20 */ blr
+
+.global IOS_Seek
+IOS_Seek:
+/* 802A38D0 0029F530 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A38D4 0029F534 7C 08 02 A6 */ mflr r0
+/* 802A38D8 0029F538 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A38DC 0029F53C 34 01 00 08 */ addic. r0, r1, 8
+/* 802A38E0 0029F540 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A38E4 0029F544 3B E0 00 00 */ li r31, 0
+/* 802A38E8 0029F548 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A38EC 0029F54C 7C BE 2B 78 */ mr r30, r5
+/* 802A38F0 0029F550 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A38F4 0029F554 7C 9D 23 78 */ mr r29, r4
+/* 802A38F8 0029F558 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A38FC 0029F55C 7C 7C 1B 78 */ mr r28, r3
+/* 802A3900 0029F560 40 82 00 0C */ bne lbl_802A390C
+/* 802A3904 0029F564 3B E0 FF FC */ li r31, -4
+/* 802A3908 0029F568 48 00 00 4C */ b lbl_802A3954
+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
+/* 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
+/* 802A3928 0029F588 3B E0 FF EA */ li r31, -22
+/* 802A392C 0029F58C 48 00 00 28 */ b lbl_802A3954
+lbl_802A3930:
+/* 802A3930 0029F590 38 A0 00 00 */ li r5, 0
+/* 802A3934 0029F594 38 00 00 05 */ li r0, 5
+/* 802A3938 0029F598 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A393C 0029F59C 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3940 0029F5A0 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A3944 0029F5A4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3948 0029F5A8 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A394C 0029F5AC 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3950 0029F5B0 93 83 00 08 */ stw r28, 8(r3)
+lbl_802A3954:
+/* 802A3954 0029F5B4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3958 0029F5B8 40 82 00 3C */ bne lbl_802A3994
+/* 802A395C 0029F5BC 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3960 0029F5C0 3B E0 00 00 */ li r31, 0
+/* 802A3964 0029F5C4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3968 0029F5C8 40 82 00 0C */ bne lbl_802A3974
+/* 802A396C 0029F5CC 3B E0 FF FC */ li r31, -4
+/* 802A3970 0029F5D0 48 00 00 0C */ b lbl_802A397C
+lbl_802A3974:
+/* 802A3974 0029F5D4 93 A3 00 0C */ stw r29, 0xc(r3)
+/* 802A3978 0029F5D8 93 C3 00 10 */ stw r30, 0x10(r3)
+lbl_802A397C:
+/* 802A397C 0029F5DC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3980 0029F5E0 40 82 00 14 */ bne lbl_802A3994
+/* 802A3984 0029F5E4 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3988 0029F5E8 38 80 00 00 */ li r4, 0
+/* 802A398C 0029F5EC 4B FF F4 69 */ bl __ios_Ipc2
+/* 802A3990 0029F5F0 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3994:
+/* 802A3994 0029F5F4 7F E3 FB 78 */ mr r3, r31
+/* 802A3998 0029F5F8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A399C 0029F5FC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A39A0 0029F600 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A39A4 0029F604 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A39A8 0029F608 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A39AC 0029F60C 7C 08 03 A6 */ mtlr r0
+/* 802A39B0 0029F610 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A39B4 0029F614 4E 80 00 20 */ blr
+
+.global IOS_IoctlAsync
+IOS_IoctlAsync:
+/* 802A39B8 0029F618 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802A39BC 0029F61C 7C 08 02 A6 */ mflr r0
+/* 802A39C0 0029F620 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802A39C4 0029F624 39 61 00 40 */ addi r11, r1, 0x40
+/* 802A39C8 0029F628 4B F2 37 51 */ bl _savegpr_23
+/* 802A39CC 0029F62C 34 01 00 08 */ addic. r0, r1, 8
+/* 802A39D0 0029F630 7C 77 1B 78 */ mr r23, r3
+/* 802A39D4 0029F634 7C 98 23 78 */ mr r24, r4
+/* 802A39D8 0029F638 7C B9 2B 78 */ mr r25, r5
+/* 802A39DC 0029F63C 7C DA 33 78 */ mr r26, r6
+/* 802A39E0 0029F640 7C FB 3B 78 */ mr r27, r7
+/* 802A39E4 0029F644 7D 1C 43 78 */ mr r28, r8
+/* 802A39E8 0029F648 7D 3D 4B 78 */ mr r29, r9
+/* 802A39EC 0029F64C 7D 5E 53 78 */ mr r30, r10
+/* 802A39F0 0029F650 3B E0 00 00 */ li r31, 0
+/* 802A39F4 0029F654 40 82 00 0C */ bne lbl_802A3A00
+/* 802A39F8 0029F658 3B E0 FF FC */ li r31, -4
+/* 802A39FC 0029F65C 48 00 00 4C */ b lbl_802A3A48
+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
+/* 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
+/* 802A3A1C 0029F67C 3B E0 FF EA */ li r31, -22
+/* 802A3A20 0029F680 48 00 00 28 */ b lbl_802A3A48
+lbl_802A3A24:
+/* 802A3A24 0029F684 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A3A28 0029F688 38 A0 00 00 */ li r5, 0
+/* 802A3A2C 0029F68C 38 00 00 06 */ li r0, 6
+/* 802A3A30 0029F690 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3A34 0029F694 93 C4 00 24 */ stw r30, 0x24(r4)
+/* 802A3A38 0029F698 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3A3C 0029F69C 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3A40 0029F6A0 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3A44 0029F6A4 92 E3 00 08 */ stw r23, 8(r3)
+lbl_802A3A48:
+/* 802A3A48 0029F6A8 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3A4C 0029F6AC 40 82 00 88 */ bne lbl_802A3AD4
+/* 802A3A50 0029F6B0 80 A1 00 08 */ lwz r5, 8(r1)
+/* 802A3A54 0029F6B4 3B E0 00 00 */ li r31, 0
+/* 802A3A58 0029F6B8 2C 05 00 00 */ cmpwi r5, 0
+/* 802A3A5C 0029F6BC 40 82 00 0C */ bne lbl_802A3A68
+/* 802A3A60 0029F6C0 3B E0 FF FC */ li r31, -4
+/* 802A3A64 0029F6C4 48 00 00 58 */ b lbl_802A3ABC
+lbl_802A3A68:
+/* 802A3A68 0029F6C8 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A3A6C 0029F6CC 93 05 00 0C */ stw r24, 0xc(r5)
+/* 802A3A70 0029F6D0 41 82 00 0C */ beq lbl_802A3A7C
+/* 802A3A74 0029F6D4 3C 1B 80 00 */ addis r0, r27, 0x8000
+/* 802A3A78 0029F6D8 48 00 00 08 */ b lbl_802A3A80
+lbl_802A3A7C:
+/* 802A3A7C 0029F6DC 38 00 00 00 */ li r0, 0
+lbl_802A3A80:
+/* 802A3A80 0029F6E0 90 05 00 18 */ stw r0, 0x18(r5)
+/* 802A3A84 0029F6E4 2C 19 00 00 */ cmpwi r25, 0
+/* 802A3A88 0029F6E8 93 85 00 1C */ stw r28, 0x1c(r5)
+/* 802A3A8C 0029F6EC 41 82 00 0C */ beq lbl_802A3A98
+/* 802A3A90 0029F6F0 3C 19 80 00 */ addis r0, r25, 0x8000
+/* 802A3A94 0029F6F4 48 00 00 08 */ b lbl_802A3A9C
+lbl_802A3A98:
+/* 802A3A98 0029F6F8 38 00 00 00 */ li r0, 0
+lbl_802A3A9C:
+/* 802A3A9C 0029F6FC 90 05 00 10 */ stw r0, 0x10(r5)
+/* 802A3AA0 0029F700 7F 23 CB 78 */ mr r3, r25
+/* 802A3AA4 0029F704 7F 44 D3 78 */ mr r4, r26
+/* 802A3AA8 0029F708 93 45 00 14 */ stw r26, 0x14(r5)
+/* 802A3AAC 0029F70C 4B FC 6B A9 */ bl DCFlushRange
+/* 802A3AB0 0029F710 7F 63 DB 78 */ mr r3, r27
+/* 802A3AB4 0029F714 7F 84 E3 78 */ mr r4, r28
+/* 802A3AB8 0029F718 4B FC 6B 9D */ bl DCFlushRange
+lbl_802A3ABC:
+/* 802A3ABC 0029F71C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3AC0 0029F720 40 82 00 14 */ bne lbl_802A3AD4
+/* 802A3AC4 0029F724 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3AC8 0029F728 7F A4 EB 78 */ mr r4, r29
+/* 802A3ACC 0029F72C 4B FF F3 29 */ bl __ios_Ipc2
+/* 802A3AD0 0029F730 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3AD4:
+/* 802A3AD4 0029F734 39 61 00 40 */ addi r11, r1, 0x40
+/* 802A3AD8 0029F738 7F E3 FB 78 */ mr r3, r31
+/* 802A3ADC 0029F73C 4B F2 36 89 */ bl _restgpr_23
+/* 802A3AE0 0029F740 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802A3AE4 0029F744 7C 08 03 A6 */ mtlr r0
+/* 802A3AE8 0029F748 38 21 00 40 */ addi r1, r1, 0x40
+/* 802A3AEC 0029F74C 4E 80 00 20 */ blr
+
+.global IOS_Ioctl
+IOS_Ioctl:
+/* 802A3AF0 0029F750 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A3AF4 0029F754 7C 08 02 A6 */ mflr r0
+/* 802A3AF8 0029F758 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A3AFC 0029F75C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3B00 0029F760 4B F2 36 21 */ bl _savegpr_25
+/* 802A3B04 0029F764 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3B08 0029F768 7C 79 1B 78 */ mr r25, r3
+/* 802A3B0C 0029F76C 7C 9A 23 78 */ mr r26, r4
+/* 802A3B10 0029F770 7C BB 2B 78 */ mr r27, r5
+/* 802A3B14 0029F774 7C DC 33 78 */ mr r28, r6
+/* 802A3B18 0029F778 7C FD 3B 78 */ mr r29, r7
+/* 802A3B1C 0029F77C 7D 1E 43 78 */ mr r30, r8
+/* 802A3B20 0029F780 3B E0 00 00 */ li r31, 0
+/* 802A3B24 0029F784 40 82 00 0C */ bne lbl_802A3B30
+/* 802A3B28 0029F788 3B E0 FF FC */ li r31, -4
+/* 802A3B2C 0029F78C 48 00 00 4C */ b lbl_802A3B78
+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
+/* 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
+/* 802A3B4C 0029F7AC 3B E0 FF EA */ li r31, -22
+/* 802A3B50 0029F7B0 48 00 00 28 */ b lbl_802A3B78
+lbl_802A3B54:
+/* 802A3B54 0029F7B4 38 A0 00 00 */ li r5, 0
+/* 802A3B58 0029F7B8 38 00 00 06 */ li r0, 6
+/* 802A3B5C 0029F7BC 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A3B60 0029F7C0 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3B64 0029F7C4 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A3B68 0029F7C8 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3B6C 0029F7CC 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3B70 0029F7D0 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3B74 0029F7D4 93 23 00 08 */ stw r25, 8(r3)
+lbl_802A3B78:
+/* 802A3B78 0029F7D8 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3B7C 0029F7DC 40 82 00 88 */ bne lbl_802A3C04
+/* 802A3B80 0029F7E0 80 A1 00 08 */ lwz r5, 8(r1)
+/* 802A3B84 0029F7E4 3B E0 00 00 */ li r31, 0
+/* 802A3B88 0029F7E8 2C 05 00 00 */ cmpwi r5, 0
+/* 802A3B8C 0029F7EC 40 82 00 0C */ bne lbl_802A3B98
+/* 802A3B90 0029F7F0 3B E0 FF FC */ li r31, -4
+/* 802A3B94 0029F7F4 48 00 00 58 */ b lbl_802A3BEC
+lbl_802A3B98:
+/* 802A3B98 0029F7F8 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A3B9C 0029F7FC 93 45 00 0C */ stw r26, 0xc(r5)
+/* 802A3BA0 0029F800 41 82 00 0C */ beq lbl_802A3BAC
+/* 802A3BA4 0029F804 3C 1D 80 00 */ addis r0, r29, 0x8000
+/* 802A3BA8 0029F808 48 00 00 08 */ b lbl_802A3BB0
+lbl_802A3BAC:
+/* 802A3BAC 0029F80C 38 00 00 00 */ li r0, 0
+lbl_802A3BB0:
+/* 802A3BB0 0029F810 90 05 00 18 */ stw r0, 0x18(r5)
+/* 802A3BB4 0029F814 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A3BB8 0029F818 93 C5 00 1C */ stw r30, 0x1c(r5)
+/* 802A3BBC 0029F81C 41 82 00 0C */ beq lbl_802A3BC8
+/* 802A3BC0 0029F820 3C 1B 80 00 */ addis r0, r27, 0x8000
+/* 802A3BC4 0029F824 48 00 00 08 */ b lbl_802A3BCC
+lbl_802A3BC8:
+/* 802A3BC8 0029F828 38 00 00 00 */ li r0, 0
+lbl_802A3BCC:
+/* 802A3BCC 0029F82C 90 05 00 10 */ stw r0, 0x10(r5)
+/* 802A3BD0 0029F830 7F 63 DB 78 */ mr r3, r27
+/* 802A3BD4 0029F834 7F 84 E3 78 */ mr r4, r28
+/* 802A3BD8 0029F838 93 85 00 14 */ stw r28, 0x14(r5)
+/* 802A3BDC 0029F83C 4B FC 6A 79 */ bl DCFlushRange
+/* 802A3BE0 0029F840 7F A3 EB 78 */ mr r3, r29
+/* 802A3BE4 0029F844 7F C4 F3 78 */ mr r4, r30
+/* 802A3BE8 0029F848 4B FC 6A 6D */ bl DCFlushRange
+lbl_802A3BEC:
+/* 802A3BEC 0029F84C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3BF0 0029F850 40 82 00 14 */ bne lbl_802A3C04
+/* 802A3BF4 0029F854 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3BF8 0029F858 38 80 00 00 */ li r4, 0
+/* 802A3BFC 0029F85C 4B FF F1 F9 */ bl __ios_Ipc2
+/* 802A3C00 0029F860 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3C04:
+/* 802A3C04 0029F864 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3C08 0029F868 7F E3 FB 78 */ mr r3, r31
+/* 802A3C0C 0029F86C 4B F2 35 61 */ bl _restgpr_25
+/* 802A3C10 0029F870 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A3C14 0029F874 7C 08 03 A6 */ mtlr r0
+/* 802A3C18 0029F878 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A3C1C 0029F87C 4E 80 00 20 */ blr
+
+.global __ios_Ioctlv
+__ios_Ioctlv:
+/* 802A3C20 0029F880 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A3C24 0029F884 7C 08 02 A6 */ mflr r0
+/* 802A3C28 0029F888 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A3C2C 0029F88C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A3C30 0029F890 4B F2 34 F5 */ bl _savegpr_26
+/* 802A3C34 0029F894 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3C38 0029F898 7C 7D 1B 78 */ mr r29, r3
+/* 802A3C3C 0029F89C 7C FE 3B 78 */ mr r30, r7
+/* 802A3C40 0029F8A0 3B E0 00 00 */ li r31, 0
+/* 802A3C44 0029F8A4 40 82 00 0C */ bne lbl_802A3C50
+/* 802A3C48 0029F8A8 3B E0 FF FC */ li r31, -4
+/* 802A3C4C 0029F8AC 48 00 00 F4 */ b lbl_802A3D40
+lbl_802A3C50:
+/* 802A3C50 0029F8B0 90 83 00 0C */ stw r4, 0xc(r3)
+/* 802A3C54 0029F8B4 54 BB 18 38 */ slwi r27, r5, 3
+/* 802A3C58 0029F8B8 3B 40 00 00 */ li r26, 0
+/* 802A3C5C 0029F8BC 3B 80 00 00 */ li r28, 0
+/* 802A3C60 0029F8C0 90 A3 00 10 */ stw r5, 0x10(r3)
+/* 802A3C64 0029F8C4 90 C3 00 14 */ stw r6, 0x14(r3)
+/* 802A3C68 0029F8C8 90 E3 00 18 */ stw r7, 0x18(r3)
+/* 802A3C6C 0029F8CC 48 00 00 48 */ b lbl_802A3CB4
+lbl_802A3C70:
+/* 802A3C70 0029F8D0 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 802A3C74 0029F8D4 7C 1C DA 14 */ add r0, r28, r27
+/* 802A3C78 0029F8D8 7C 83 02 14 */ add r4, r3, r0
+/* 802A3C7C 0029F8DC 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802A3C80 0029F8E0 80 84 00 04 */ lwz r4, 4(r4)
+/* 802A3C84 0029F8E4 4B FC 69 D1 */ bl DCFlushRange
+/* 802A3C88 0029F8E8 80 9D 00 18 */ lwz r4, 0x18(r29)
+/* 802A3C8C 0029F8EC 7C 7C DA 14 */ add r3, r28, r27
+/* 802A3C90 0029F8F0 7C A4 18 2E */ lwzx r5, r4, r3
+/* 802A3C94 0029F8F4 2C 05 00 00 */ cmpwi r5, 0
+/* 802A3C98 0029F8F8 41 82 00 0C */ beq lbl_802A3CA4
+/* 802A3C9C 0029F8FC 3C 05 80 00 */ addis r0, r5, 0x8000
+/* 802A3CA0 0029F900 48 00 00 08 */ b lbl_802A3CA8
+lbl_802A3CA4:
+/* 802A3CA4 0029F904 38 00 00 00 */ li r0, 0
+lbl_802A3CA8:
+/* 802A3CA8 0029F908 7C 04 19 2E */ stwx r0, r4, r3
+/* 802A3CAC 0029F90C 3B 9C 00 08 */ addi r28, r28, 8
+/* 802A3CB0 0029F910 3B 5A 00 01 */ addi r26, r26, 1
+lbl_802A3CB4:
+/* 802A3CB4 0029F914 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 802A3CB8 0029F918 7C 1A 00 40 */ cmplw r26, r0
+/* 802A3CBC 0029F91C 41 80 FF B4 */ blt lbl_802A3C70
+/* 802A3CC0 0029F920 3B 60 00 00 */ li r27, 0
+/* 802A3CC4 0029F924 3B 80 00 00 */ li r28, 0
+/* 802A3CC8 0029F928 48 00 00 40 */ b lbl_802A3D08
+lbl_802A3CCC:
+/* 802A3CCC 0029F92C 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 802A3CD0 0029F930 7C 80 E2 14 */ add r4, r0, r28
+/* 802A3CD4 0029F934 7C 7C 00 2E */ lwzx r3, r28, r0
+/* 802A3CD8 0029F938 80 84 00 04 */ lwz r4, 4(r4)
+/* 802A3CDC 0029F93C 4B FC 69 79 */ bl DCFlushRange
+/* 802A3CE0 0029F940 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 802A3CE4 0029F944 7C 83 E0 2E */ lwzx r4, r3, r28
+/* 802A3CE8 0029F948 2C 04 00 00 */ cmpwi r4, 0
+/* 802A3CEC 0029F94C 41 82 00 0C */ beq lbl_802A3CF8
+/* 802A3CF0 0029F950 3C 04 80 00 */ addis r0, r4, 0x8000
+/* 802A3CF4 0029F954 48 00 00 08 */ b lbl_802A3CFC
+lbl_802A3CF8:
+/* 802A3CF8 0029F958 38 00 00 00 */ li r0, 0
+lbl_802A3CFC:
+/* 802A3CFC 0029F95C 7C 03 E1 2E */ stwx r0, r3, r28
+/* 802A3D00 0029F960 3B 9C 00 08 */ addi r28, r28, 8
+/* 802A3D04 0029F964 3B 7B 00 01 */ addi r27, r27, 1
+lbl_802A3D08:
+/* 802A3D08 0029F968 80 9D 00 10 */ lwz r4, 0x10(r29)
+/* 802A3D0C 0029F96C 7C 1B 20 40 */ cmplw r27, r4
+/* 802A3D10 0029F970 41 80 FF BC */ blt lbl_802A3CCC
+/* 802A3D14 0029F974 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 802A3D18 0029F978 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 802A3D1C 0029F97C 7C 04 02 14 */ add r0, r4, r0
+/* 802A3D20 0029F980 54 04 18 38 */ slwi r4, r0, 3
+/* 802A3D24 0029F984 4B FC 69 31 */ bl DCFlushRange
+/* 802A3D28 0029F988 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A3D2C 0029F98C 41 82 00 0C */ beq lbl_802A3D38
+/* 802A3D30 0029F990 3C 1E 80 00 */ addis r0, r30, 0x8000
+/* 802A3D34 0029F994 48 00 00 08 */ b lbl_802A3D3C
+lbl_802A3D38:
+/* 802A3D38 0029F998 38 00 00 00 */ li r0, 0
+lbl_802A3D3C:
+/* 802A3D3C 0029F99C 90 1D 00 18 */ stw r0, 0x18(r29)
+lbl_802A3D40:
+/* 802A3D40 0029F9A0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A3D44 0029F9A4 7F E3 FB 78 */ mr r3, r31
+/* 802A3D48 0029F9A8 4B F2 34 29 */ bl _restgpr_26
+/* 802A3D4C 0029F9AC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A3D50 0029F9B0 7C 08 03 A6 */ mtlr r0
+/* 802A3D54 0029F9B4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A3D58 0029F9B8 4E 80 00 20 */ blr
+
+.global IOS_IoctlvAsync
+IOS_IoctlvAsync:
+/* 802A3D5C 0029F9BC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A3D60 0029F9C0 7C 08 02 A6 */ mflr r0
+/* 802A3D64 0029F9C4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A3D68 0029F9C8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3D6C 0029F9CC 4B F2 33 B1 */ bl _savegpr_24
+/* 802A3D70 0029F9D0 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3D74 0029F9D4 7C 78 1B 78 */ mr r24, r3
+/* 802A3D78 0029F9D8 7C 99 23 78 */ mr r25, r4
+/* 802A3D7C 0029F9DC 7C BA 2B 78 */ mr r26, r5
+/* 802A3D80 0029F9E0 7C DB 33 78 */ mr r27, r6
+/* 802A3D84 0029F9E4 7C FC 3B 78 */ mr r28, r7
+/* 802A3D88 0029F9E8 7D 1D 43 78 */ mr r29, r8
+/* 802A3D8C 0029F9EC 7D 3E 4B 78 */ mr r30, r9
+/* 802A3D90 0029F9F0 3B E0 00 00 */ li r31, 0
+/* 802A3D94 0029F9F4 40 82 00 0C */ bne lbl_802A3DA0
+/* 802A3D98 0029F9F8 3B E0 FF FC */ li r31, -4
+/* 802A3D9C 0029F9FC 48 00 00 4C */ b lbl_802A3DE8
+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
+/* 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
+/* 802A3DBC 0029FA1C 3B E0 FF EA */ li r31, -22
+/* 802A3DC0 0029FA20 48 00 00 28 */ b lbl_802A3DE8
+lbl_802A3DC4:
+/* 802A3DC4 0029FA24 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 802A3DC8 0029FA28 38 A0 00 00 */ li r5, 0
+/* 802A3DCC 0029FA2C 38 00 00 07 */ li r0, 7
+/* 802A3DD0 0029FA30 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3DD4 0029FA34 93 C4 00 24 */ stw r30, 0x24(r4)
+/* 802A3DD8 0029FA38 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3DDC 0029FA3C 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3DE0 0029FA40 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3DE4 0029FA44 93 03 00 08 */ stw r24, 8(r3)
+lbl_802A3DE8:
+/* 802A3DE8 0029FA48 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3DEC 0029FA4C 40 82 00 38 */ bne lbl_802A3E24
+/* 802A3DF0 0029FA50 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3DF4 0029FA54 7F 24 CB 78 */ mr r4, r25
+/* 802A3DF8 0029FA58 7F 45 D3 78 */ mr r5, r26
+/* 802A3DFC 0029FA5C 7F 66 DB 78 */ mr r6, r27
+/* 802A3E00 0029FA60 7F 87 E3 78 */ mr r7, r28
+/* 802A3E04 0029FA64 4B FF FE 1D */ bl __ios_Ioctlv
+/* 802A3E08 0029FA68 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3E0C 0029FA6C 7C 7F 1B 78 */ mr r31, r3
+/* 802A3E10 0029FA70 40 82 00 14 */ bne lbl_802A3E24
+/* 802A3E14 0029FA74 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3E18 0029FA78 7F A4 EB 78 */ mr r4, r29
+/* 802A3E1C 0029FA7C 4B FF EF D9 */ bl __ios_Ipc2
+/* 802A3E20 0029FA80 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3E24:
+/* 802A3E24 0029FA84 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3E28 0029FA88 7F E3 FB 78 */ mr r3, r31
+/* 802A3E2C 0029FA8C 4B F2 33 3D */ bl _restgpr_24
+/* 802A3E30 0029FA90 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A3E34 0029FA94 7C 08 03 A6 */ mtlr r0
+/* 802A3E38 0029FA98 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A3E3C 0029FA9C 4E 80 00 20 */ blr
+
+.global IOS_Ioctlv
+IOS_Ioctlv:
+/* 802A3E40 0029FAA0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A3E44 0029FAA4 7C 08 02 A6 */ mflr r0
+/* 802A3E48 0029FAA8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A3E4C 0029FAAC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3E50 0029FAB0 4B F2 32 D5 */ bl _savegpr_26
+/* 802A3E54 0029FAB4 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3E58 0029FAB8 7C 7A 1B 78 */ mr r26, r3
+/* 802A3E5C 0029FABC 7C 9B 23 78 */ mr r27, r4
+/* 802A3E60 0029FAC0 7C BC 2B 78 */ mr r28, r5
+/* 802A3E64 0029FAC4 7C DD 33 78 */ mr r29, r6
+/* 802A3E68 0029FAC8 7C FE 3B 78 */ mr r30, r7
+/* 802A3E6C 0029FACC 3B E0 00 00 */ li r31, 0
+/* 802A3E70 0029FAD0 40 82 00 0C */ bne lbl_802A3E7C
+/* 802A3E74 0029FAD4 3B E0 FF FC */ li r31, -4
+/* 802A3E78 0029FAD8 48 00 00 4C */ b lbl_802A3EC4
+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
+/* 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
+/* 802A3E98 0029FAF8 3B E0 FF EA */ li r31, -22
+/* 802A3E9C 0029FAFC 48 00 00 28 */ b lbl_802A3EC4
+lbl_802A3EA0:
+/* 802A3EA0 0029FB00 38 A0 00 00 */ li r5, 0
+/* 802A3EA4 0029FB04 38 00 00 07 */ li r0, 7
+/* 802A3EA8 0029FB08 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A3EAC 0029FB0C 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3EB0 0029FB10 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A3EB4 0029FB14 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3EB8 0029FB18 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3EBC 0029FB1C 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3EC0 0029FB20 93 43 00 08 */ stw r26, 8(r3)
+lbl_802A3EC4:
+/* 802A3EC4 0029FB24 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3EC8 0029FB28 40 82 00 38 */ bne lbl_802A3F00
+/* 802A3ECC 0029FB2C 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3ED0 0029FB30 7F 64 DB 78 */ mr r4, r27
+/* 802A3ED4 0029FB34 7F 85 E3 78 */ mr r5, r28
+/* 802A3ED8 0029FB38 7F A6 EB 78 */ mr r6, r29
+/* 802A3EDC 0029FB3C 7F C7 F3 78 */ mr r7, r30
+/* 802A3EE0 0029FB40 4B FF FD 41 */ bl __ios_Ioctlv
+/* 802A3EE4 0029FB44 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3EE8 0029FB48 7C 7F 1B 78 */ mr r31, r3
+/* 802A3EEC 0029FB4C 40 82 00 14 */ bne lbl_802A3F00
+/* 802A3EF0 0029FB50 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3EF4 0029FB54 38 80 00 00 */ li r4, 0
+/* 802A3EF8 0029FB58 4B FF EE FD */ bl __ios_Ipc2
+/* 802A3EFC 0029FB5C 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3F00:
+/* 802A3F00 0029FB60 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3F04 0029FB64 7F E3 FB 78 */ mr r3, r31
+/* 802A3F08 0029FB68 4B F2 32 69 */ bl _restgpr_26
+/* 802A3F0C 0029FB6C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A3F10 0029FB70 7C 08 03 A6 */ mtlr r0
+/* 802A3F14 0029FB74 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A3F18 0029FB78 4E 80 00 20 */ blr
+
+.global IOS_IoctlvReboot
+IOS_IoctlvReboot:
+/* 802A3F1C 0029FB7C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A3F20 0029FB80 7C 08 02 A6 */ mflr r0
+/* 802A3F24 0029FB84 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A3F28 0029FB88 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3F2C 0029FB8C 4B F2 31 F9 */ bl _savegpr_26
+/* 802A3F30 0029FB90 34 01 00 08 */ addic. r0, r1, 8
+/* 802A3F34 0029FB94 7C 7A 1B 78 */ mr r26, r3
+/* 802A3F38 0029FB98 7C 9B 23 78 */ mr r27, r4
+/* 802A3F3C 0029FB9C 7C BC 2B 78 */ mr r28, r5
+/* 802A3F40 0029FBA0 7C DD 33 78 */ mr r29, r6
+/* 802A3F44 0029FBA4 7C FE 3B 78 */ mr r30, r7
+/* 802A3F48 0029FBA8 3B E0 00 00 */ li r31, 0
+/* 802A3F4C 0029FBAC 40 82 00 0C */ bne lbl_802A3F58
+/* 802A3F50 0029FBB0 3B E0 FF FC */ li r31, -4
+/* 802A3F54 0029FBB4 48 00 00 4C */ b lbl_802A3FA0
+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
+/* 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
+/* 802A3F74 0029FBD4 3B E0 FF EA */ li r31, -22
+/* 802A3F78 0029FBD8 48 00 00 28 */ b lbl_802A3FA0
+lbl_802A3F7C:
+/* 802A3F7C 0029FBDC 38 A0 00 00 */ li r5, 0
+/* 802A3F80 0029FBE0 38 00 00 07 */ li r0, 7
+/* 802A3F84 0029FBE4 90 A3 00 20 */ stw r5, 0x20(r3)
+/* 802A3F88 0029FBE8 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3F8C 0029FBEC 90 A4 00 24 */ stw r5, 0x24(r4)
+/* 802A3F90 0029FBF0 80 81 00 08 */ lwz r4, 8(r1)
+/* 802A3F94 0029FBF4 90 A4 00 28 */ stw r5, 0x28(r4)
+/* 802A3F98 0029FBF8 90 03 00 00 */ stw r0, 0(r3)
+/* 802A3F9C 0029FBFC 93 43 00 08 */ stw r26, 8(r3)
+lbl_802A3FA0:
+/* 802A3FA0 0029FC00 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A3FA4 0029FC04 40 82 00 44 */ bne lbl_802A3FE8
+/* 802A3FA8 0029FC08 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3FAC 0029FC0C 38 00 00 01 */ li r0, 1
+/* 802A3FB0 0029FC10 7F 64 DB 78 */ mr r4, r27
+/* 802A3FB4 0029FC14 7F 85 E3 78 */ mr r5, r28
+/* 802A3FB8 0029FC18 90 03 00 28 */ stw r0, 0x28(r3)
+/* 802A3FBC 0029FC1C 7F A6 EB 78 */ mr r6, r29
+/* 802A3FC0 0029FC20 7F C7 F3 78 */ mr r7, r30
+/* 802A3FC4 0029FC24 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3FC8 0029FC28 4B FF FC 59 */ bl __ios_Ioctlv
+/* 802A3FCC 0029FC2C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3FD0 0029FC30 7C 7F 1B 78 */ mr r31, r3
+/* 802A3FD4 0029FC34 40 82 00 14 */ bne lbl_802A3FE8
+/* 802A3FD8 0029FC38 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A3FDC 0029FC3C 38 80 00 00 */ li r4, 0
+/* 802A3FE0 0029FC40 4B FF EE 15 */ bl __ios_Ipc2
+/* 802A3FE4 0029FC44 7C 7F 1B 78 */ mr r31, r3
+lbl_802A3FE8:
+/* 802A3FE8 0029FC48 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A3FEC 0029FC4C 7F E3 FB 78 */ mr r3, r31
+/* 802A3FF0 0029FC50 4B F2 31 81 */ bl _restgpr_26
+/* 802A3FF4 0029FC54 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A3FF8 0029FC58 7C 08 03 A6 */ mtlr r0
+/* 802A3FFC 0029FC5C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4000 0029FC60 4E 80 00 20 */ blr