diff options
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/DVD/dvd_broadway.s | 44 | ||||
-rw-r--r-- | asm/SDK/HBM/HBMBase.s | 44 | ||||
-rw-r--r-- | asm/SDK/HBM/HBMController.s | 42 | ||||
-rw-r--r-- | asm/SDK/HBM/HBMRemoteSpk.s | 14 | ||||
-rw-r--r-- | asm/SDK/KPAD/KPAD.s | 3299 | ||||
-rw-r--r-- | asm/SDK/OS/OS.s | 2 | ||||
-rw-r--r-- | asm/SDK/OS/OSExec.s | 16 | ||||
-rw-r--r-- | asm/SDK/OS/OSReset.s | 4 | ||||
-rw-r--r-- | asm/SDK/OS/OSStateTM.s | 24 | ||||
-rw-r--r-- | asm/SDK/PAD/Pad.s | 30 | ||||
-rw-r--r-- | asm/SDK/WPAD/WPAD.s | 8165 | ||||
-rw-r--r-- | asm/SDK/fs.s | 1474 | ||||
-rw-r--r-- | asm/SDK/ipcMain.s | 55 | ||||
-rw-r--r-- | asm/SDK/ipcProfile.s | 133 | ||||
-rw-r--r-- | asm/SDK/ipcclt.s | 1695 | ||||
-rw-r--r-- | asm/SDK/memory.s | 373 |
16 files changed, 15319 insertions, 95 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/HBM/HBMBase.s b/asm/SDK/HBM/HBMBase.s index cca0fcd..113d31f 100644 --- a/asm/SDK/HBM/HBMBase.s +++ b/asm/SDK/HBM/HBMBase.s @@ -1707,7 +1707,7 @@ init_volume__Q210homebutton10HomeButtonFv: /* 8039B824 00397484 39 61 00 40 */ addi r11, r1, 0x40
/* 8039B828 00397488 4B E2 B8 F9 */ bl _savegpr_25
/* 8039B82C 0039748C 7C 7E 1B 78 */ mr r30, r3
-/* 8039B830 00397490 4B F0 FA 01 */ bl func_802AB230
+/* 8039B830 00397490 4B F0 FA 01 */ bl WPADGetSpeakerVolume
/* 8039B834 00397494 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 8039B838 00397498 3F 40 43 30 */ lis r26, 0x4330
/* 8039B83C 0039749C 90 01 00 0C */ stw r0, 0xc(r1)
@@ -1724,7 +1724,7 @@ init_volume__Q210homebutton10HomeButtonFv: /* 8039B868 003974C8 D8 01 00 10 */ stfd f0, 0x10(r1)
/* 8039B86C 003974CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8039B870 003974D0 90 1E 00 80 */ stw r0, 0x80(r30)
-/* 8039B874 003974D4 4B F0 F9 F1 */ bl func_802AB264
+/* 8039B874 003974D4 4B F0 F9 F1 */ bl WPADSetSpeakerVolume
/* 8039B878 003974D8 CB C2 A9 68 */ lfd f30, lbl_80642F68-_SDA2_BASE_(r2)
/* 8039B87C 003974DC 7F D9 F3 78 */ mr r25, r30
/* 8039B880 003974E0 C3 E2 A9 60 */ lfs f31, lbl_80642F60-_SDA2_BASE_(r2)
@@ -2338,7 +2338,7 @@ lbl_8039C0C4: /* 8039C118 00397D78 41 82 16 74 */ beq lbl_8039D78C
/* 8039C11C 00397D7C 7F A3 EB 78 */ mr r3, r29
/* 8039C120 00397D80 4B FF F6 E9 */ bl init_volume__Q210homebutton10HomeButtonFv
-/* 8039C124 00397D84 4B F0 D2 85 */ bl func_802A93A8
+/* 8039C124 00397D84 4B F0 D2 85 */ bl WPADIsMotorEnabled
/* 8039C128 00397D88 7C 03 00 D0 */ neg r0, r3
/* 8039C12C 00397D8C 7C 00 1B 78 */ or r0, r0, r3
/* 8039C130 00397D90 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -2622,7 +2622,7 @@ lbl_8039C518: /* 8039C528 00398188 3B 20 00 00 */ li r25, 0
lbl_8039C52C:
/* 8039C52C 0039818C 7F 23 CB 78 */ mr r3, r25
-/* 8039C530 00398190 4B F0 C7 85 */ bl func_802A8CB4
+/* 8039C530 00398190 4B F0 C7 85 */ bl WPADDisconnect
/* 8039C534 00398194 3B 39 00 01 */ addi r25, r25, 1
/* 8039C538 00398198 2C 19 00 04 */ cmpwi r25, 4
/* 8039C53C 0039819C 41 80 FF F0 */ blt lbl_8039C52C
@@ -2652,7 +2652,7 @@ lbl_8039C52C: lbl_8039C59C:
/* 8039C59C 003981FC 7F 23 CB 78 */ mr r3, r25
/* 8039C5A0 00398200 38 81 00 08 */ addi r4, r1, 8
-/* 8039C5A4 00398204 4B F0 C7 D5 */ bl func_802A8D78
+/* 8039C5A4 00398204 4B F0 C7 D5 */ bl WPADProbe
/* 8039C5A8 00398208 2C 03 FF FF */ cmpwi r3, -1
/* 8039C5AC 0039820C 40 82 00 10 */ bne lbl_8039C5BC
/* 8039C5B0 00398210 3B 39 00 01 */ addi r25, r25, 1
@@ -2676,7 +2676,7 @@ lbl_8039C5DC: /* 8039C5EC 0039824C 38 63 DE EC */ addi r3, r3, SimpleSyncCallback__10homebuttonFll@l
/* 8039C5F0 00398250 93 7D 00 18 */ stw r27, 0x18(r29)
/* 8039C5F4 00398254 93 7D 00 94 */ stw r27, 0x94(r29)
-/* 8039C5F8 00398258 4B F0 B4 F9 */ bl func_802A7AF0
+/* 8039C5F8 00398258 4B F0 B4 F9 */ bl WPADSetSimpleSyncCallback
/* 8039C5FC 0039825C 90 7D 01 BC */ stw r3, 0x1bc(r29)
/* 8039C600 00398260 38 00 00 01 */ li r0, 1
/* 8039C604 00398264 80 7D 02 5C */ lwz r3, 0x25c(r29)
@@ -2688,7 +2688,7 @@ lbl_8039C5DC: /* 8039C61C 0039827C 98 03 00 44 */ stb r0, 0x44(r3)
/* 8039C620 00398280 80 7D 02 68 */ lwz r3, 0x268(r29)
/* 8039C624 00398284 98 03 00 44 */ stb r0, 0x44(r3)
-/* 8039C628 00398288 4B F0 B4 C1 */ bl func_802A7AE8
+/* 8039C628 00398288 4B F0 B4 C1 */ bl WPADStartFastSimpleSync
/* 8039C62C 0039828C 7C 03 00 D0 */ neg r0, r3
/* 8039C630 00398290 7C 00 1B 78 */ or r0, r0, r3
/* 8039C634 00398294 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -2823,7 +2823,7 @@ lbl_8039C800: /* 8039C814 00398474 40 81 0F 78 */ ble lbl_8039D78C
/* 8039C818 00398478 38 00 00 07 */ li r0, 7
/* 8039C81C 0039847C 90 1D 00 10 */ stw r0, 0x10(r29)
-/* 8039C820 00398480 4B F0 B2 CD */ bl func_802A7AEC
+/* 8039C820 00398480 4B F0 B2 CD */ bl WPADStopSimpleSync
/* 8039C824 00398484 2C 03 00 00 */ cmpwi r3, 0
/* 8039C828 00398488 40 82 00 4C */ bne lbl_8039C874
/* 8039C82C 0039848C 38 7D 05 98 */ addi r3, r29, 0x598
@@ -2852,7 +2852,7 @@ lbl_8039C874: /* 8039C884 003984E4 2C 00 00 00 */ cmpwi r0, 0
/* 8039C888 003984E8 41 82 0F 04 */ beq lbl_8039D78C
/* 8039C88C 003984EC 80 7D 01 BC */ lwz r3, 0x1bc(r29)
-/* 8039C890 003984F0 4B F0 B2 61 */ bl func_802A7AF0
+/* 8039C890 003984F0 4B F0 B2 61 */ bl WPADSetSimpleSyncCallback
/* 8039C894 003984F4 80 7D 02 6C */ lwz r3, 0x26c(r29)
/* 8039C898 003984F8 48 00 92 B1 */ bl ClearPcm__Q210homebutton9RemoteSpkFv
/* 8039C89C 003984FC 3B 20 00 00 */ li r25, 0
@@ -3534,9 +3534,9 @@ lbl_8039D25C: /* 8039D280 00398EE0 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 8039D284 00398EE4 80 61 00 24 */ lwz r3, 0x24(r1)
/* 8039D288 00398EE8 54 63 06 3E */ clrlwi r3, r3, 0x18
-/* 8039D28C 00398EEC 4B F0 DF D9 */ bl func_802AB264
+/* 8039D28C 00398EEC 4B F0 DF D9 */ bl WPADSetSpeakerVolume
/* 8039D290 00398EF0 38 60 00 00 */ li r3, 0
-/* 8039D294 00398EF4 4B F0 C3 31 */ bl func_802A95C4
+/* 8039D294 00398EF4 4B F0 C3 31 */ bl WPADSaveConfig
/* 8039D298 00398EF8 80 7D 02 6C */ lwz r3, 0x26c(r29)
/* 8039D29C 00398EFC 48 00 8A C9 */ bl Stop__Q210homebutton9RemoteSpkFv
/* 8039D2A0 00398F00 7F B9 EB 78 */ mr r25, r29
@@ -3580,7 +3580,7 @@ lbl_8039D324: /* 8039D32C 00398F8C 41 82 02 20 */ beq lbl_8039D54C
/* 8039D330 00398F90 7F A3 EB 78 */ mr r3, r29
/* 8039D334 00398F94 4B FF E4 D5 */ bl init_volume__Q210homebutton10HomeButtonFv
-/* 8039D338 00398F98 4B F0 C0 71 */ bl func_802A93A8
+/* 8039D338 00398F98 4B F0 C0 71 */ bl WPADIsMotorEnabled
/* 8039D33C 00398F9C 7C 03 00 D0 */ neg r0, r3
/* 8039D340 00398FA0 7C 00 1B 78 */ or r0, r0, r3
/* 8039D344 00398FA4 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -3761,7 +3761,7 @@ lbl_8039D590: /* 8039D5A8 00399208 2C 00 00 00 */ cmpwi r0, 0
/* 8039D5AC 0039920C 41 82 01 E0 */ beq lbl_8039D78C
/* 8039D5B0 00399210 80 7D 01 BC */ lwz r3, 0x1bc(r29)
-/* 8039D5B4 00399214 4B F0 A5 3D */ bl func_802A7AF0
+/* 8039D5B4 00399214 4B F0 A5 3D */ bl WPADSetSimpleSyncCallback
/* 8039D5B8 00399218 38 00 00 00 */ li r0, 0
/* 8039D5BC 0039921C 98 1D 00 8F */ stb r0, 0x8f(r29)
lbl_8039D5C0:
@@ -4305,7 +4305,7 @@ SpeakerCallback__10homebuttonFP7OSAlarmP9OSContext: /* 8039DD40 003999A0 83 CD B2 E0 */ lwz r30, lbl_806405A0-_SDA_BASE_(r13)
/* 8039DD44 003999A4 54 7C 04 3E */ clrlwi r28, r3, 0x10
/* 8039DD48 003999A8 7F A3 EB 78 */ mr r3, r29
-/* 8039DD4C 003999AC 4B F0 BE 85 */ bl func_802A9BD0
+/* 8039DD4C 003999AC 4B F0 BE 85 */ bl WPADIsSpeakerEnabled
/* 8039DD50 003999B0 2C 03 00 00 */ cmpwi r3, 0
/* 8039DD54 003999B4 41 82 00 1C */ beq lbl_8039DD70
/* 8039DD58 003999B8 57 A0 10 3A */ slwi r0, r29, 2
@@ -4380,7 +4380,7 @@ RetrySimpleSyncCallback__10homebuttonFP7OSAlarmP9OSContext: /* 8039DE48 00399AA8 7C 7E 1B 78 */ mr r30, r3
/* 8039DE4C 00399AAC 3B A0 00 00 */ li r29, 0
/* 8039DE50 00399AB0 40 82 00 20 */ bne lbl_8039DE70
-/* 8039DE54 00399AB4 4B F0 9C 95 */ bl func_802A7AE8
+/* 8039DE54 00399AB4 4B F0 9C 95 */ bl WPADStartFastSimpleSync
/* 8039DE58 00399AB8 2C 03 00 00 */ cmpwi r3, 0
/* 8039DE5C 00399ABC 41 82 00 24 */ beq lbl_8039DE80
/* 8039DE60 00399AC0 38 00 00 01 */ li r0, 1
@@ -4388,7 +4388,7 @@ RetrySimpleSyncCallback__10homebuttonFP7OSAlarmP9OSContext: /* 8039DE68 00399AC8 98 1F 00 89 */ stb r0, 0x89(r31)
/* 8039DE6C 00399ACC 48 00 00 14 */ b lbl_8039DE80
lbl_8039DE70:
-/* 8039DE70 00399AD0 4B F0 9C 7D */ bl func_802A7AEC
+/* 8039DE70 00399AD0 4B F0 9C 7D */ bl WPADStopSimpleSync
/* 8039DE74 00399AD4 2C 03 00 00 */ cmpwi r3, 0
/* 8039DE78 00399AD8 41 82 00 08 */ beq lbl_8039DE80
/* 8039DE7C 00399ADC 3B A0 00 01 */ li r29, 1
@@ -4577,7 +4577,7 @@ lbl_8039E0E8: /* 8039E10C 00399D6C 41 81 00 7C */ bgt lbl_8039E188
/* 8039E110 00399D70 7E 23 8B 78 */ mr r3, r17
/* 8039E114 00399D74 38 81 00 08 */ addi r4, r1, 8
-/* 8039E118 00399D78 4B F0 AC 61 */ bl func_802A8D78
+/* 8039E118 00399D78 4B F0 AC 61 */ bl WPADProbe
/* 8039E11C 00399D7C 80 9B 00 00 */ lwz r4, 0(r27)
/* 8039E120 00399D80 88 04 00 5D */ lbz r0, 0x5d(r4)
/* 8039E124 00399D84 7C 00 07 74 */ extsb r0, r0
@@ -9073,7 +9073,7 @@ lbl_803A2090: /* 803A2100 0039DD60 38 00 00 01 */ li r0, 1
/* 803A2104 0039DD64 38 60 00 01 */ li r3, 1
/* 803A2108 0039DD68 98 1D 00 84 */ stb r0, 0x84(r29)
-/* 803A210C 0039DD6C 4B F0 72 69 */ bl func_802A9374
+/* 803A210C 0039DD6C 4B F0 72 69 */ bl WPADEnableMotor
/* 803A2110 0039DD70 3C 80 80 40 */ lis r4, lbl_80404DF8@ha
/* 803A2114 0039DD74 38 00 00 25 */ li r0, 0x25
/* 803A2118 0039DD78 38 84 4D F8 */ addi r4, r4, lbl_80404DF8@l
@@ -9273,7 +9273,7 @@ lbl_803A23A4: /* 803A23DC 0039E03C 38 00 00 00 */ li r0, 0
/* 803A23E0 0039E040 38 60 00 00 */ li r3, 0
/* 803A23E4 0039E044 98 1D 00 84 */ stb r0, 0x84(r29)
-/* 803A23E8 0039E048 4B F0 6F 8D */ bl func_802A9374
+/* 803A23E8 0039E048 4B F0 6F 8D */ bl WPADEnableMotor
/* 803A23EC 0039E04C 3C 80 80 40 */ lis r4, lbl_80404DF8@ha
/* 803A23F0 0039E050 38 00 00 25 */ li r0, 0x25
/* 803A23F4 0039E054 38 84 4D F8 */ addi r4, r4, lbl_80404DF8@l
@@ -10226,7 +10226,7 @@ lbl_803A3154: /* 803A3154 0039EDB4 38 7F 05 98 */ addi r3, r31, 0x598
/* 803A3158 0039EDB8 4B EC 69 21 */ bl OSCancelAlarm
/* 803A315C 0039EDBC 80 7F 01 BC */ lwz r3, 0x1bc(r31)
-/* 803A3160 0039EDC0 4B F0 49 91 */ bl func_802A7AF0
+/* 803A3160 0039EDC0 4B F0 49 91 */ bl WPADSetSimpleSyncCallback
/* 803A3164 0039EDC4 48 00 00 80 */ b lbl_803A31E4
lbl_803A3168:
/* 803A3168 0039EDC8 88 1F 00 8A */ lbz r0, 0x8a(r31)
@@ -10236,7 +10236,7 @@ lbl_803A3168: /* 803A3178 0039EDD8 40 81 00 64 */ ble lbl_803A31DC
/* 803A317C 0039EDDC 38 00 00 01 */ li r0, 1
/* 803A3180 0039EDE0 98 1F 00 8F */ stb r0, 0x8f(r31)
-/* 803A3184 0039EDE4 4B F0 49 69 */ bl func_802A7AEC
+/* 803A3184 0039EDE4 4B F0 49 69 */ bl WPADStopSimpleSync
/* 803A3188 0039EDE8 2C 03 00 00 */ cmpwi r3, 0
/* 803A318C 0039EDEC 40 82 00 58 */ bne lbl_803A31E4
/* 803A3190 0039EDF0 38 7F 05 98 */ addi r3, r31, 0x598
@@ -10260,7 +10260,7 @@ lbl_803A3168: /* 803A31D8 0039EE38 48 00 00 0C */ b lbl_803A31E4
lbl_803A31DC:
/* 803A31DC 0039EE3C 80 7F 01 BC */ lwz r3, 0x1bc(r31)
-/* 803A31E0 0039EE40 4B F0 49 11 */ bl func_802A7AF0
+/* 803A31E0 0039EE40 4B F0 49 11 */ bl WPADSetSimpleSyncCallback
lbl_803A31E4:
/* 803A31E4 0039EE44 38 00 00 01 */ li r0, 1
/* 803A31E8 0039EE48 98 1F 00 90 */ stb r0, 0x90(r31)
diff --git a/asm/SDK/HBM/HBMController.s b/asm/SDK/HBM/HBMController.s index 3284a3b..cfcda62 100644 --- a/asm/SDK/HBM/HBMController.s +++ b/asm/SDK/HBM/HBMController.s @@ -29,7 +29,7 @@ lbl_803A4DD8: /* 803A4DF0 003A0A50 40 82 00 24 */ bne lbl_803A4E14
/* 803A4DF4 003A0A54 3C 80 80 3A */ lis r4, wpadExtensionCallback__Q210homebutton10ControllerFll@ha
/* 803A4DF8 003A0A58 38 84 4E B0 */ addi r4, r4, wpadExtensionCallback__Q210homebutton10ControllerFll@l
-/* 803A4DFC 003A0A5C 4B F0 40 D9 */ bl func_802A8ED4
+/* 803A4DFC 003A0A5C 4B F0 40 D9 */ bl WPADSetExtensionCallback
/* 803A4E00 003A0A60 7C 9C E8 2E */ lwzx r4, r28, r29
/* 803A4E04 003A0A64 38 00 00 01 */ li r0, 1
/* 803A4E08 003A0A68 90 64 00 2C */ stw r3, 0x2c(r4)
@@ -39,7 +39,7 @@ lbl_803A4E14: /* 803A4E14 003A0A74 7F C3 F3 78 */ mr r3, r30
/* 803A4E18 003A0A78 38 80 00 00 */ li r4, 0
/* 803A4E1C 003A0A7C 38 A0 00 00 */ li r5, 0
-/* 803A4E20 003A0A80 4B F0 4D F5 */ bl func_802A9C14
+/* 803A4E20 003A0A80 4B F0 4D F5 */ bl WPADControlSpeaker
/* 803A4E24 003A0A84 48 00 00 40 */ b lbl_803A4E64
lbl_803A4E28:
/* 803A4E28 003A0A88 3F A0 80 64 */ lis r29, lbl_8063D070@ha
@@ -47,7 +47,7 @@ lbl_803A4E28: /* 803A4E30 003A0A90 3B BD D0 70 */ addi r29, r29, lbl_8063D070@l
/* 803A4E34 003A0A94 7C 9D E0 2E */ lwzx r4, r29, r28
/* 803A4E38 003A0A98 80 84 00 2C */ lwz r4, 0x2c(r4)
-/* 803A4E3C 003A0A9C 4B F0 40 99 */ bl func_802A8ED4
+/* 803A4E3C 003A0A9C 4B F0 40 99 */ bl WPADSetExtensionCallback
/* 803A4E40 003A0AA0 7C 7D E0 2E */ lwzx r3, r29, r28
/* 803A4E44 003A0AA4 38 00 00 00 */ li r0, 0
/* 803A4E48 003A0AA8 90 03 00 2C */ stw r0, 0x2c(r3)
@@ -100,13 +100,13 @@ lbl_803A4EE0: /* 803A4EEC 003A0B4C 7F A4 00 2E */ lwzx r29, r4, r0
/* 803A4EF0 003A0B50 83 9D 00 00 */ lwz r28, 0(r29)
/* 803A4EF4 003A0B54 7F 83 E3 78 */ mr r3, r28
-/* 803A4EF8 003A0B58 4B F0 4C D9 */ bl func_802A9BD0
+/* 803A4EF8 003A0B58 4B F0 4C D9 */ bl WPADIsSpeakerEnabled
/* 803A4EFC 003A0B5C 2C 03 00 00 */ cmpwi r3, 0
/* 803A4F00 003A0B60 41 82 00 74 */ beq lbl_803A4F74
/* 803A4F04 003A0B64 7F 83 E3 78 */ mr r3, r28
/* 803A4F08 003A0B68 38 80 00 02 */ li r4, 2
/* 803A4F0C 003A0B6C 38 A0 00 00 */ li r5, 0
-/* 803A4F10 003A0B70 4B F0 4D 05 */ bl func_802A9C14
+/* 803A4F10 003A0B70 4B F0 4D 05 */ bl WPADControlSpeaker
/* 803A4F14 003A0B74 1C 1C 00 30 */ mulli r0, r28, 0x30
/* 803A4F18 003A0B78 3C 60 80 64 */ lis r3, lbl_8063CFB0@ha
/* 803A4F1C 003A0B7C 7F 84 E3 78 */ mr r4, r28
@@ -167,13 +167,13 @@ soundOnCallback__Q210homebutton10ControllerFP7OSAlarmP9OSContext: /* 803A4FE4 003A0C44 7F E4 00 2E */ lwzx r31, r4, r0
/* 803A4FE8 003A0C48 83 DF 00 00 */ lwz r30, 0(r31)
/* 803A4FEC 003A0C4C 7F C3 F3 78 */ mr r3, r30
-/* 803A4FF0 003A0C50 4B F0 4B E1 */ bl func_802A9BD0
+/* 803A4FF0 003A0C50 4B F0 4B E1 */ bl WPADIsSpeakerEnabled
/* 803A4FF4 003A0C54 2C 03 00 00 */ cmpwi r3, 0
/* 803A4FF8 003A0C58 41 82 00 14 */ beq lbl_803A500C
/* 803A4FFC 003A0C5C 7F C3 F3 78 */ mr r3, r30
/* 803A5000 003A0C60 38 80 00 03 */ li r4, 3
/* 803A5004 003A0C64 38 A0 00 00 */ li r5, 0
-/* 803A5008 003A0C68 4B F0 4C 0D */ bl func_802A9C14
+/* 803A5008 003A0C68 4B F0 4C 0D */ bl WPADControlSpeaker
lbl_803A500C:
/* 803A500C 003A0C6C 38 00 00 00 */ li r0, 0
/* 803A5010 003A0C70 98 1F 00 41 */ stb r0, 0x41(r31)
@@ -286,13 +286,13 @@ initCallback__Q210homebutton10ControllerFv: /* 803A518C 003A0DEC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803A5190 003A0DF0 7C 7E 1B 78 */ mr r30, r3
/* 803A5194 003A0DF4 80 63 00 00 */ lwz r3, 0(r3)
-/* 803A5198 003A0DF8 4B F0 3C D5 */ bl func_802A8E6C
+/* 803A5198 003A0DF8 4B F0 3C D5 */ bl WPADSetConnectCallback
/* 803A519C 003A0DFC 3B E0 00 01 */ li r31, 1
/* 803A51A0 003A0E00 90 7E 00 28 */ stw r3, 0x28(r30)
/* 803A51A4 003A0E04 80 7E 00 00 */ lwz r3, 0(r30)
/* 803A51A8 003A0E08 38 81 00 08 */ addi r4, r1, 8
/* 803A51AC 003A0E0C 9B FE 00 44 */ stb r31, 0x44(r30)
-/* 803A51B0 003A0E10 4B F0 3B C9 */ bl func_802A8D78
+/* 803A51B0 003A0E10 4B F0 3B C9 */ bl WPADProbe
/* 803A51B4 003A0E14 2C 03 00 00 */ cmpwi r3, 0
/* 803A51B8 003A0E18 41 82 00 14 */ beq lbl_803A51CC
/* 803A51BC 003A0E1C 40 80 00 34 */ bge lbl_803A51F0
@@ -303,7 +303,7 @@ lbl_803A51CC: /* 803A51CC 003A0E2C 3C 80 80 3A */ lis r4, wpadExtensionCallback__Q210homebutton10ControllerFll@ha
/* 803A51D0 003A0E30 80 7E 00 00 */ lwz r3, 0(r30)
/* 803A51D4 003A0E34 38 84 4E B0 */ addi r4, r4, wpadExtensionCallback__Q210homebutton10ControllerFll@l
-/* 803A51D8 003A0E38 4B F0 3C FD */ bl func_802A8ED4
+/* 803A51D8 003A0E38 4B F0 3C FD */ bl WPADSetExtensionCallback
/* 803A51DC 003A0E3C 90 7E 00 2C */ stw r3, 0x2c(r30)
/* 803A51E0 003A0E40 9B FE 00 40 */ stb r31, 0x40(r30)
/* 803A51E4 003A0E44 48 00 00 0C */ b lbl_803A51F0
@@ -328,12 +328,12 @@ clearCallback__Q210homebutton10ControllerFv: /* 803A521C 003A0E7C 7C 7E 1B 78 */ mr r30, r3
/* 803A5220 003A0E80 80 63 00 00 */ lwz r3, 0(r3)
/* 803A5224 003A0E84 80 9E 00 28 */ lwz r4, 0x28(r30)
-/* 803A5228 003A0E88 4B F0 3C 45 */ bl func_802A8E6C
+/* 803A5228 003A0E88 4B F0 3C 45 */ bl WPADSetConnectCallback
/* 803A522C 003A0E8C 3B E0 00 00 */ li r31, 0
/* 803A5230 003A0E90 80 7E 00 00 */ lwz r3, 0(r30)
/* 803A5234 003A0E94 93 FE 00 28 */ stw r31, 0x28(r30)
/* 803A5238 003A0E98 80 9E 00 2C */ lwz r4, 0x2c(r30)
-/* 803A523C 003A0E9C 4B F0 3C 99 */ bl func_802A8ED4
+/* 803A523C 003A0E9C 4B F0 3C 99 */ bl WPADSetExtensionCallback
/* 803A5240 003A0EA0 93 FE 00 2C */ stw r31, 0x2c(r30)
/* 803A5244 003A0EA4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A5248 003A0EA8 83 C1 00 08 */ lwz r30, 8(r1)
@@ -507,7 +507,7 @@ playSound__Q210homebutton10ControllerFPQ34nw4r3snd18SoundArchivePlayeri: /* 803A5460 003A10C0 7C C6 07 74 */ extsb r6, r6
/* 803A5464 003A10C4 48 00 0B 75 */ bl Play__Q210homebutton9RemoteSpkFliSc
/* 803A5468 003A10C8 80 7F 00 00 */ lwz r3, 0(r31)
-/* 803A546C 003A10CC 4B F0 47 65 */ bl func_802A9BD0
+/* 803A546C 003A10CC 4B F0 47 65 */ bl WPADIsSpeakerEnabled
/* 803A5470 003A10D0 2C 03 00 00 */ cmpwi r3, 0
/* 803A5474 003A10D4 41 82 00 2C */ beq lbl_803A54A0
/* 803A5478 003A10D8 88 1F 00 42 */ lbz r0, 0x42(r31)
@@ -633,13 +633,13 @@ lbl_803A55C8: /* 803A561C 003A127C 9B 9F 00 42 */ stb r28, 0x42(r31)
/* 803A5620 003A1280 7F 63 DB 78 */ mr r3, r27
/* 803A5624 003A1284 9B 9F 00 43 */ stb r28, 0x43(r31)
-/* 803A5628 003A1288 4B F0 45 A9 */ bl func_802A9BD0
+/* 803A5628 003A1288 4B F0 45 A9 */ bl WPADIsSpeakerEnabled
/* 803A562C 003A128C 2C 03 00 00 */ cmpwi r3, 0
/* 803A5630 003A1290 41 82 01 14 */ beq lbl_803A5744
/* 803A5634 003A1294 7F 63 DB 78 */ mr r3, r27
/* 803A5638 003A1298 38 80 00 02 */ li r4, 2
/* 803A563C 003A129C 38 A0 00 00 */ li r5, 0
-/* 803A5640 003A12A0 4B F0 45 D5 */ bl func_802A9C14
+/* 803A5640 003A12A0 4B F0 45 D5 */ bl WPADControlSpeaker
/* 803A5644 003A12A4 1C 1B 00 30 */ mulli r0, r27, 0x30
/* 803A5648 003A12A8 3C 60 80 64 */ lis r3, lbl_8063CFB0@ha
/* 803A564C 003A12AC 7F 64 DB 78 */ mr r4, r27
@@ -668,19 +668,19 @@ lbl_803A56A0: /* 803A56A4 003A1304 2C 00 00 00 */ cmpwi r0, 0
/* 803A56A8 003A1308 40 82 00 9C */ bne lbl_803A5744
/* 803A56AC 003A130C 7F 63 DB 78 */ mr r3, r27
-/* 803A56B0 003A1310 4B F0 24 4D */ bl func_802A7AFC
+/* 803A56B0 003A1310 4B F0 24 4D */ bl WPADGetRadioSensitivity
/* 803A56B4 003A1314 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803A56B8 003A1318 28 00 00 55 */ cmplwi r0, 0x55
/* 803A56BC 003A131C 41 81 00 88 */ bgt lbl_803A5744
/* 803A56C0 003A1320 83 7F 00 00 */ lwz r27, 0(r31)
/* 803A56C4 003A1324 7F 63 DB 78 */ mr r3, r27
-/* 803A56C8 003A1328 4B F0 45 09 */ bl func_802A9BD0
+/* 803A56C8 003A1328 4B F0 45 09 */ bl WPADIsSpeakerEnabled
/* 803A56CC 003A132C 2C 03 00 00 */ cmpwi r3, 0
/* 803A56D0 003A1330 41 82 00 74 */ beq lbl_803A5744
/* 803A56D4 003A1334 7F 63 DB 78 */ mr r3, r27
/* 803A56D8 003A1338 38 80 00 02 */ li r4, 2
/* 803A56DC 003A133C 38 A0 00 00 */ li r5, 0
-/* 803A56E0 003A1340 4B F0 45 35 */ bl func_802A9C14
+/* 803A56E0 003A1340 4B F0 45 35 */ bl WPADControlSpeaker
/* 803A56E4 003A1344 1C 1B 00 30 */ mulli r0, r27, 0x30
/* 803A56E8 003A1348 3C 60 80 64 */ lis r3, lbl_8063CFB0@ha
/* 803A56EC 003A134C 7F 64 DB 78 */ mr r4, r27
@@ -745,7 +745,7 @@ startMotor__Q210homebutton10ControllerFv: /* 803A57B0 003A1410 80 7F 00 00 */ lwz r3, 0(r31)
/* 803A57B4 003A1414 98 1F 00 1C */ stb r0, 0x1c(r31)
/* 803A57B8 003A1418 38 80 00 01 */ li r4, 1
-/* 803A57BC 003A141C 4B F0 3A ED */ bl func_802A92A8
+/* 803A57BC 003A141C 4B F0 3A ED */ bl WPADControlMotor
lbl_803A57C0:
/* 803A57C0 003A1420 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A57C4 003A1424 83 E1 00 0C */ lwz r31, 0xc(r1)
@@ -765,7 +765,7 @@ stopMotor__Q210homebutton10ControllerFv: /* 803A57F0 003A1450 38 80 00 00 */ li r4, 0
/* 803A57F4 003A1454 98 03 00 1C */ stb r0, 0x1c(r3)
/* 803A57F8 003A1458 7C A3 2B 78 */ mr r3, r5
-/* 803A57FC 003A145C 4B F0 3A AC */ b func_802A92A8
+/* 803A57FC 003A145C 4B F0 3A AC */ b WPADControlMotor
/* 803A5800 003A1460 4E 80 00 20 */ blr
.global getInfoAsync__Q210homebutton10ControllerFP8WPADInfo
@@ -799,7 +799,7 @@ lbl_803A585C: /* 803A5860 003A14C0 80 7E 00 00 */ lwz r3, 0(r30)
/* 803A5864 003A14C4 7F E4 FB 78 */ mr r4, r31
/* 803A5868 003A14C8 38 A5 58 88 */ addi r5, r5, ControllerCallback__Q210homebutton10ControllerFll@l
-/* 803A586C 003A14CC 4B F0 38 1D */ bl func_802A9088
+/* 803A586C 003A14CC 4B F0 38 1D */ bl WPADGetInfoAsync
lbl_803A5870:
/* 803A5870 003A14D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A5874 003A14D4 83 E1 00 0C */ lwz r31, 0xc(r1)
diff --git a/asm/SDK/HBM/HBMRemoteSpk.s b/asm/SDK/HBM/HBMRemoteSpk.s index adcdd64..0850e68 100644 --- a/asm/SDK/HBM/HBMRemoteSpk.s +++ b/asm/SDK/HBM/HBMRemoteSpk.s @@ -21,13 +21,13 @@ lbl_803A5914: /* 803A5918 003A1578 2C 00 00 00 */ cmpwi r0, 0
/* 803A591C 003A157C 41 82 02 04 */ beq lbl_803A5B20
/* 803A5920 003A1580 7F 83 E3 78 */ mr r3, r28
-/* 803A5924 003A1584 4B F0 42 AD */ bl func_802A9BD0
+/* 803A5924 003A1584 4B F0 42 AD */ bl WPADIsSpeakerEnabled
/* 803A5928 003A1588 2C 03 00 00 */ cmpwi r3, 0
/* 803A592C 003A158C 41 82 01 F4 */ beq lbl_803A5B20
/* 803A5930 003A1590 4B EC 8E 2D */ bl OSDisableInterrupts
/* 803A5934 003A1594 7C 7B 1B 78 */ mr r27, r3
/* 803A5938 003A1598 7F 83 E3 78 */ mr r3, r28
-/* 803A593C 003A159C 4B F0 5A B1 */ bl func_802AB3EC
+/* 803A593C 003A159C 4B F0 5A B1 */ bl WPADCanSendStreamData
/* 803A5940 003A15A0 2C 03 00 00 */ cmpwi r3, 0
/* 803A5944 003A15A4 41 82 01 B4 */ beq lbl_803A5AF8
/* 803A5948 003A15A8 80 1D 00 54 */ lwz r0, 0x54(r29)
@@ -134,7 +134,7 @@ lbl_803A5A98: /* 803A5AB8 003A1718 7F 83 E3 78 */ mr r3, r28
/* 803A5ABC 003A171C 38 81 00 08 */ addi r4, r1, 8
/* 803A5AC0 003A1720 38 A0 00 14 */ li r5, 0x14
-/* 803A5AC4 003A1724 4B F0 59 AD */ bl func_802AB470
+/* 803A5AC4 003A1724 4B F0 59 AD */ bl WPADSendStreamData
/* 803A5AC8 003A1728 9B FD 00 5C */ stb r31, 0x5c(r29)
/* 803A5ACC 003A172C 9B FD 00 5E */ stb r31, 0x5e(r29)
/* 803A5AD0 003A1730 80 7D 00 50 */ lwz r3, 0x50(r29)
@@ -339,7 +339,7 @@ DelaySpeakerOnCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext: /* 803A5D7C 003A19DC 3C A0 80 3A */ lis r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@ha
/* 803A5D80 003A19E0 38 80 00 01 */ li r4, 1
/* 803A5D84 003A19E4 38 A5 5D 9C */ addi r5, r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@l
-/* 803A5D88 003A19E8 4B F0 3E 8D */ bl func_802A9C14
+/* 803A5D88 003A19E8 4B F0 3E 8D */ bl WPADControlSpeaker
/* 803A5D8C 003A19EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A5D90 003A19F0 7C 08 03 A6 */ mtlr r0
/* 803A5D94 003A19F4 38 21 00 10 */ addi r1, r1, 0x10
@@ -370,7 +370,7 @@ lbl_803A5DD0: /* 803A5DE8 003A1A48 7C C6 02 14 */ add r6, r6, r0
/* 803A5DEC 003A1A4C 38 80 00 04 */ li r4, 4
/* 803A5DF0 003A1A50 98 E6 00 5C */ stb r7, 0x5c(r6)
-/* 803A5DF4 003A1A54 4B F0 3E 21 */ bl func_802A9C14
+/* 803A5DF4 003A1A54 4B F0 3E 21 */ bl WPADControlSpeaker
/* 803A5DF8 003A1A58 48 00 00 54 */ b lbl_803A5E4C
lbl_803A5DFC:
/* 803A5DFC 003A1A5C 1C 03 00 68 */ mulli r0, r3, 0x68
@@ -409,7 +409,7 @@ DelaySpeakerPlayCallback__Q210homebutton9RemoteSpkFP7OSAlarmP9OSContext: /* 803A5E70 003A1AD0 3C A0 80 3A */ lis r5, SpeakerPlayCallback__Q210homebutton9RemoteSpkFll@ha
/* 803A5E74 003A1AD4 38 80 00 04 */ li r4, 4
/* 803A5E78 003A1AD8 38 A5 5E 90 */ addi r5, r5, SpeakerPlayCallback__Q210homebutton9RemoteSpkFll@l
-/* 803A5E7C 003A1ADC 4B F0 3D 99 */ bl func_802A9C14
+/* 803A5E7C 003A1ADC 4B F0 3D 99 */ bl WPADControlSpeaker
/* 803A5E80 003A1AE0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A5E84 003A1AE4 7C 08 03 A6 */ mtlr r0
/* 803A5E88 003A1AE8 38 21 00 10 */ addi r1, r1, 0x10
@@ -488,7 +488,7 @@ Connect__Q210homebutton9RemoteSpkFl: /* 803A5F84 003A1BE4 7F E3 FB 78 */ mr r3, r31
/* 803A5F88 003A1BE8 38 A5 5D 9C */ addi r5, r5, SpeakerOnCallback__Q210homebutton9RemoteSpkFll@l
/* 803A5F8C 003A1BEC 38 80 00 01 */ li r4, 1
-/* 803A5F90 003A1BF0 4B F0 3C 85 */ bl func_802A9C14
+/* 803A5F90 003A1BF0 4B F0 3C 85 */ bl WPADControlSpeaker
/* 803A5F94 003A1BF4 1F FF 00 68 */ mulli r31, r31, 0x68
/* 803A5F98 003A1BF8 38 80 00 00 */ li r4, 0
/* 803A5F9C 003A1BFC 38 A0 00 20 */ li r5, 0x20
diff --git a/asm/SDK/KPAD/KPAD.s b/asm/SDK/KPAD/KPAD.s new file mode 100644 index 0000000..1d40162 --- /dev/null +++ b/asm/SDK/KPAD/KPAD.s @@ -0,0 +1,3299 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global KPADSetFSStickClamp
+KPADSetFSStickClamp:
+/* 8029F390 0029AFF0 7C 63 07 74 */ extsb r3, r3
+/* 8029F394 0029AFF4 7C 80 07 74 */ extsb r0, r4
+/* 8029F398 0029AFF8 90 6D 89 64 */ stw r3, lbl_8063DC24-_SDA_BASE_(r13)
+/* 8029F39C 0029AFFC 90 0D 89 68 */ stw r0, lbl_8063DC28-_SDA_BASE_(r13)
+/* 8029F3A0 0029B000 4E 80 00 20 */ blr
+
+# KPADSetPosParam, KPADSetHoriParam, KPADSetDistParam, or KPADSetAccParam
+.global func_8029F3A4
+func_8029F3A4:
+/* 8029F3A4 0029B004 1C 03 05 24 */ mulli r0, r3, 0x524
+/* 8029F3A8 0029B008 3C 60 80 53 */ lis r3, lbl_805356D0@ha
+/* 8029F3AC 0029B00C 38 63 56 D0 */ addi r3, r3, lbl_805356D0@l
+/* 8029F3B0 0029B010 7C 63 02 14 */ add r3, r3, r0
+/* 8029F3B4 0029B014 D0 23 00 84 */ stfs f1, 0x84(r3)
+/* 8029F3B8 0029B018 D0 43 00 88 */ stfs f2, 0x88(r3)
+/* 8029F3BC 0029B01C 4E 80 00 20 */ blr
+
+.global reset_kpad
+reset_kpad:
+/* 8029F3C0 0029B020 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8029F3C4 0029B024 38 03 00 C4 */ addi r0, r3, 0xc4
+/* 8029F3C8 0029B028 C0 C2 A3 AC */ lfs f6, lbl_806429AC-_SDA2_BASE_(r2)
+/* 8029F3CC 0029B02C 38 80 FF FF */ li r4, -1
+/* 8029F3D0 0029B030 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8029F3D4 0029B034 C0 A2 A3 B0 */ lfs f5, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029F3D8 0029B038 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8029F3DC 0029B03C 3B C0 00 00 */ li r30, 0
+/* 8029F3E0 0029B040 C0 82 A3 B4 */ lfs f4, lbl_806429B4-_SDA2_BASE_(r2)
+/* 8029F3E4 0029B044 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8029F3E8 0029B048 3B A3 00 E8 */ addi r29, r3, 0xe8
+/* 8029F3EC 0029B04C C0 62 A3 B8 */ lfs f3, lbl_806429B8-_SDA2_BASE_(r2)
+/* 8029F3F0 0029B050 9B C3 05 1D */ stb r30, 0x51d(r3)
+/* 8029F3F4 0029B054 C0 23 00 A4 */ lfs f1, 0xa4(r3)
+/* 8029F3F8 0029B058 C0 0D 89 44 */ lfs f0, lbl_8063DC04-_SDA_BASE_(r13)
+/* 8029F3FC 0029B05C A0 A3 04 D0 */ lhz r5, 0x4d0(r3)
+/* 8029F400 0029B060 EC 06 00 2A */ fadds f0, f6, f0
+/* 8029F404 0029B064 C0 42 A3 A0 */ lfs f2, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029F408 0029B068 81 63 00 B0 */ lwz r11, 0xb0(r3)
+/* 8029F40C 0029B06C 81 43 00 B4 */ lwz r10, 0xb4(r3)
+/* 8029F410 0029B070 D0 03 04 F4 */ stfs f0, 0x4f4(r3)
+/* 8029F414 0029B074 C0 0D 89 44 */ lfs f0, lbl_8063DC04-_SDA_BASE_(r13)
+/* 8029F418 0029B078 EC 05 00 28 */ fsubs f0, f5, f0
+/* 8029F41C 0029B07C D0 03 04 FC */ stfs f0, 0x4fc(r3)
+/* 8029F420 0029B080 C0 0D 89 44 */ lfs f0, lbl_8063DC04-_SDA_BASE_(r13)
+/* 8029F424 0029B084 EC 04 00 2A */ fadds f0, f4, f0
+/* 8029F428 0029B088 D0 03 04 F8 */ stfs f0, 0x4f8(r3)
+/* 8029F42C 0029B08C C0 0D 89 44 */ lfs f0, lbl_8063DC04-_SDA_BASE_(r13)
+/* 8029F430 0029B090 EC 03 00 28 */ fsubs f0, f3, f0
+/* 8029F434 0029B094 D0 03 05 00 */ stfs f0, 0x500(r3)
+/* 8029F438 0029B098 C0 0D 89 4C */ lfs f0, lbl_8063DC0C-_SDA_BASE_(r13)
+/* 8029F43C 0029B09C EC 05 00 24 */ fdivs f0, f5, f0
+/* 8029F440 0029B0A0 D0 03 05 04 */ stfs f0, 0x504(r3)
+/* 8029F444 0029B0A4 C0 0D 89 4C */ lfs f0, lbl_8063DC0C-_SDA_BASE_(r13)
+/* 8029F448 0029B0A8 EC 06 00 24 */ fdivs f0, f6, f0
+/* 8029F44C 0029B0AC D0 03 05 08 */ stfs f0, 0x508(r3)
+/* 8029F450 0029B0B0 C0 0D 89 38 */ lfs f0, lbl_8063DBF8-_SDA_BASE_(r13)
+/* 8029F454 0029B0B4 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8029F458 0029B0B8 D0 03 05 0C */ stfs f0, 0x50c(r3)
+/* 8029F45C 0029B0BC C0 0D AD E4 */ lfs f0, lbl_806400A4-_SDA_BASE_(r13)
+/* 8029F460 0029B0C0 D0 03 05 14 */ stfs f0, 0x514(r3)
+/* 8029F464 0029B0C4 C0 6D AD E0 */ lfs f3, lbl_806400A0-_SDA_BASE_(r13)
+/* 8029F468 0029B0C8 EC 03 08 24 */ fdivs f0, f3, f1
+/* 8029F46C 0029B0CC D0 63 05 10 */ stfs f3, 0x510(r3)
+/* 8029F470 0029B0D0 93 C3 00 08 */ stw r30, 8(r3)
+/* 8029F474 0029B0D4 93 C3 00 04 */ stw r30, 4(r3)
+/* 8029F478 0029B0D8 93 C3 00 00 */ stw r30, 0(r3)
+/* 8029F47C 0029B0DC B3 C3 04 CC */ sth r30, 0x4cc(r3)
+/* 8029F480 0029B0E0 B0 A3 04 CE */ sth r5, 0x4ce(r3)
+/* 8029F484 0029B0E4 9B C3 00 5E */ stb r30, 0x5e(r3)
+/* 8029F488 0029B0E8 9B C3 04 CA */ stb r30, 0x4ca(r3)
+/* 8029F48C 0029B0EC 81 0D AD D8 */ lwz r8, lbl_80640098-_SDA_BASE_(r13)
+/* 8029F490 0029B0F0 80 ED AD DC */ lwz r7, lbl_8064009C-_SDA_BASE_(r13)
+/* 8029F494 0029B0F4 D0 A3 04 B8 */ stfs f5, 0x4b8(r3)
+/* 8029F498 0029B0F8 D0 43 04 BC */ stfs f2, 0x4bc(r3)
+/* 8029F49C 0029B0FC 80 C3 04 B8 */ lwz r6, 0x4b8(r3)
+/* 8029F4A0 0029B100 91 03 00 28 */ stw r8, 0x28(r3)
+/* 8029F4A4 0029B104 80 A3 04 BC */ lwz r5, 0x4bc(r3)
+/* 8029F4A8 0029B108 90 E3 00 2C */ stw r7, 0x2c(r3)
+/* 8029F4AC 0029B10C 91 03 00 20 */ stw r8, 0x20(r3)
+/* 8029F4B0 0029B110 90 E3 00 24 */ stw r7, 0x24(r3)
+/* 8029F4B4 0029B114 D0 43 00 30 */ stfs f2, 0x30(r3)
+/* 8029F4B8 0029B118 D0 A3 04 B0 */ stfs f5, 0x4b0(r3)
+/* 8029F4BC 0029B11C D0 A3 00 34 */ stfs f5, 0x34(r3)
+/* 8029F4C0 0029B120 D0 43 04 B4 */ stfs f2, 0x4b4(r3)
+/* 8029F4C4 0029B124 D0 43 00 38 */ stfs f2, 0x38(r3)
+/* 8029F4C8 0029B128 83 ED AD D8 */ lwz r31, lbl_80640098-_SDA_BASE_(r13)
+/* 8029F4CC 0029B12C 81 8D AD DC */ lwz r12, lbl_8064009C-_SDA_BASE_(r13)
+/* 8029F4D0 0029B130 D0 43 00 14 */ stfs f2, 0x14(r3)
+/* 8029F4D4 0029B134 D0 43 00 0C */ stfs f2, 0xc(r3)
+/* 8029F4D8 0029B138 80 E3 00 14 */ lwz r7, 0x14(r3)
+/* 8029F4DC 0029B13C D0 C3 00 10 */ stfs f6, 0x10(r3)
+/* 8029F4E0 0029B140 81 23 00 0C */ lwz r9, 0xc(r3)
+/* 8029F4E4 0029B144 81 03 00 10 */ lwz r8, 0x10(r3)
+/* 8029F4E8 0029B148 93 E3 00 3C */ stw r31, 0x3c(r3)
+/* 8029F4EC 0029B14C 91 83 00 40 */ stw r12, 0x40(r3)
+/* 8029F4F0 0029B150 D0 43 00 44 */ stfs f2, 0x44(r3)
+/* 8029F4F4 0029B154 D0 A3 00 54 */ stfs f5, 0x54(r3)
+/* 8029F4F8 0029B158 D0 43 00 58 */ stfs f2, 0x58(r3)
+/* 8029F4FC 0029B15C D0 23 00 48 */ stfs f1, 0x48(r3)
+/* 8029F500 0029B160 D0 43 00 50 */ stfs f2, 0x50(r3)
+/* 8029F504 0029B164 D0 43 00 4C */ stfs f2, 0x4c(r3)
+/* 8029F508 0029B168 D0 23 04 9C */ stfs f1, 0x49c(r3)
+/* 8029F50C 0029B16C D0 03 04 A0 */ stfs f0, 0x4a0(r3)
+/* 8029F510 0029B170 D0 03 04 90 */ stfs f0, 0x490(r3)
+/* 8029F514 0029B174 91 63 04 94 */ stw r11, 0x494(r3)
+/* 8029F518 0029B178 91 43 04 98 */ stw r10, 0x498(r3)
+/* 8029F51C 0029B17C D0 A3 00 18 */ stfs f5, 0x18(r3)
+/* 8029F520 0029B180 D0 43 00 1C */ stfs f2, 0x1c(r3)
+/* 8029F524 0029B184 91 23 04 A4 */ stw r9, 0x4a4(r3)
+/* 8029F528 0029B188 91 03 04 A8 */ stw r8, 0x4a8(r3)
+/* 8029F52C 0029B18C 90 E3 04 AC */ stw r7, 0x4ac(r3)
+/* 8029F530 0029B190 90 C3 04 C0 */ stw r6, 0x4c0(r3)
+/* 8029F534 0029B194 90 A3 04 C4 */ stw r5, 0x4c4(r3)
+/* 8029F538 0029B198 A0 AD 89 40 */ lhz r5, lbl_8063DC00-_SDA_BASE_(r13)
+/* 8029F53C 0029B19C B0 A3 04 C8 */ sth r5, 0x4c8(r3)
+/* 8029F540 0029B1A0 B3 C3 01 0C */ sth r30, 0x10c(r3)
+lbl_8029F544:
+/* 8029F544 0029B1A4 98 9D 00 08 */ stb r4, 8(r29)
+/* 8029F548 0029B1A8 3B BD FF F4 */ addi r29, r29, -12
+/* 8029F54C 0029B1AC 7C 1D 00 40 */ cmplw r29, r0
+/* 8029F550 0029B1B0 40 80 FF F4 */ bge lbl_8029F544
+/* 8029F554 0029B1B4 38 A3 01 00 */ addi r5, r3, 0x100
+/* 8029F558 0029B1B8 38 03 00 F4 */ addi r0, r3, 0xf4
+/* 8029F55C 0029B1BC 38 80 FF FF */ li r4, -1
+lbl_8029F560:
+/* 8029F560 0029B1C0 98 85 00 08 */ stb r4, 8(r5)
+/* 8029F564 0029B1C4 38 A5 FF F4 */ addi r5, r5, -12
+/* 8029F568 0029B1C8 7C 05 00 40 */ cmplw r5, r0
+/* 8029F56C 0029B1CC 40 80 FF F4 */ bge lbl_8029F560
+/* 8029F570 0029B1D0 38 80 00 00 */ li r4, 0
+/* 8029F574 0029B1D4 38 00 00 01 */ li r0, 1
+/* 8029F578 0029B1D8 98 83 01 0F */ stb r4, 0x10f(r3)
+/* 8029F57C 0029B1DC 98 03 05 1E */ stb r0, 0x51e(r3)
+/* 8029F580 0029B1E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8029F584 0029B1E4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8029F588 0029B1E8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8029F58C 0029B1EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8029F590 0029B1F0 4E 80 00 20 */ blr
+
+.global calc_button_repeat
+calc_button_repeat:
+/* 8029F594 0029B1F4 80 03 00 04 */ lwz r0, 4(r3)
+/* 8029F598 0029B1F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F59C 0029B1FC 40 82 00 10 */ bne lbl_8029F5AC
+/* 8029F5A0 0029B200 80 03 00 08 */ lwz r0, 8(r3)
+/* 8029F5A4 0029B204 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F5A8 0029B208 41 82 00 3C */ beq lbl_8029F5E4
+lbl_8029F5AC:
+/* 8029F5AC 0029B20C 80 03 00 04 */ lwz r0, 4(r3)
+/* 8029F5B0 0029B210 38 E0 00 00 */ li r7, 0
+/* 8029F5B4 0029B214 A0 C3 04 D0 */ lhz r6, 0x4d0(r3)
+/* 8029F5B8 0029B218 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F5BC 0029B21C B0 E3 04 CC */ sth r7, 0x4cc(r3)
+/* 8029F5C0 0029B220 B0 C3 04 CE */ sth r6, 0x4ce(r3)
+/* 8029F5C4 0029B224 41 82 00 94 */ beq lbl_8029F658
+/* 8029F5C8 0029B228 A0 03 04 D2 */ lhz r0, 0x4d2(r3)
+/* 8029F5CC 0029B22C 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F5D0 0029B230 41 82 00 88 */ beq lbl_8029F658
+/* 8029F5D4 0029B234 80 03 00 00 */ lwz r0, 0(r3)
+/* 8029F5D8 0029B238 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8029F5DC 0029B23C 90 03 00 00 */ stw r0, 0(r3)
+/* 8029F5E0 0029B240 48 00 00 78 */ b lbl_8029F658
+lbl_8029F5E4:
+/* 8029F5E4 0029B244 80 03 00 00 */ lwz r0, 0(r3)
+/* 8029F5E8 0029B248 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F5EC 0029B24C 41 82 00 6C */ beq lbl_8029F658
+/* 8029F5F0 0029B250 A0 03 04 CC */ lhz r0, 0x4cc(r3)
+/* 8029F5F4 0029B254 7C 00 2A 14 */ add r0, r0, r5
+/* 8029F5F8 0029B258 54 06 04 3E */ clrlwi r6, r0, 0x10
+/* 8029F5FC 0029B25C B0 03 04 CC */ sth r0, 0x4cc(r3)
+/* 8029F600 0029B260 28 06 9C 40 */ cmplwi r6, 0x9c40
+/* 8029F604 0029B264 41 80 00 10 */ blt lbl_8029F614
+/* 8029F608 0029B268 3C C6 FF FF */ addis r6, r6, 0xffff
+/* 8029F60C 0029B26C 38 06 63 C0 */ addi r0, r6, 0x63c0
+/* 8029F610 0029B270 B0 03 04 CC */ sth r0, 0x4cc(r3)
+lbl_8029F614:
+/* 8029F614 0029B274 A1 03 04 CC */ lhz r8, 0x4cc(r3)
+/* 8029F618 0029B278 A0 E3 04 CE */ lhz r7, 0x4ce(r3)
+/* 8029F61C 0029B27C 7C 08 38 40 */ cmplw r8, r7
+/* 8029F620 0029B280 41 80 00 38 */ blt lbl_8029F658
+/* 8029F624 0029B284 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8029F628 0029B288 28 08 4E 20 */ cmplwi r8, 0x4e20
+/* 8029F62C 0029B28C A0 03 04 D2 */ lhz r0, 0x4d2(r3)
+/* 8029F630 0029B290 64 C6 80 00 */ oris r6, r6, 0x8000
+/* 8029F634 0029B294 7C 07 02 14 */ add r0, r7, r0
+/* 8029F638 0029B298 90 C3 00 00 */ stw r6, 0(r3)
+/* 8029F63C 0029B29C B0 03 04 CE */ sth r0, 0x4ce(r3)
+/* 8029F640 0029B2A0 41 80 00 18 */ blt lbl_8029F658
+/* 8029F644 0029B2A4 54 06 04 3E */ clrlwi r6, r0, 0x10
+/* 8029F648 0029B2A8 38 E8 B1 E0 */ addi r7, r8, -20000
+/* 8029F64C 0029B2AC 38 06 B1 E0 */ addi r0, r6, -20000
+/* 8029F650 0029B2B0 B0 E3 04 CC */ sth r7, 0x4cc(r3)
+/* 8029F654 0029B2B4 B0 03 04 CE */ sth r0, 0x4ce(r3)
+lbl_8029F658:
+/* 8029F658 0029B2B8 28 04 00 02 */ cmplwi r4, 2
+/* 8029F65C 0029B2BC 4C 82 00 20 */ bnelr
+/* 8029F660 0029B2C0 80 03 00 64 */ lwz r0, 0x64(r3)
+/* 8029F664 0029B2C4 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F668 0029B2C8 40 82 00 10 */ bne lbl_8029F678
+/* 8029F66C 0029B2CC 80 03 00 68 */ lwz r0, 0x68(r3)
+/* 8029F670 0029B2D0 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F674 0029B2D4 41 82 00 3C */ beq lbl_8029F6B0
+lbl_8029F678:
+/* 8029F678 0029B2D8 80 03 00 64 */ lwz r0, 0x64(r3)
+/* 8029F67C 0029B2DC 38 A0 00 00 */ li r5, 0
+/* 8029F680 0029B2E0 A0 83 04 D0 */ lhz r4, 0x4d0(r3)
+/* 8029F684 0029B2E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F688 0029B2E8 B0 A3 04 D4 */ sth r5, 0x4d4(r3)
+/* 8029F68C 0029B2EC B0 83 04 D6 */ sth r4, 0x4d6(r3)
+/* 8029F690 0029B2F0 4D 82 00 20 */ beqlr
+/* 8029F694 0029B2F4 A0 03 04 D2 */ lhz r0, 0x4d2(r3)
+/* 8029F698 0029B2F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F69C 0029B2FC 4D 82 00 20 */ beqlr
+/* 8029F6A0 0029B300 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 8029F6A4 0029B304 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8029F6A8 0029B308 90 03 00 60 */ stw r0, 0x60(r3)
+/* 8029F6AC 0029B30C 4E 80 00 20 */ blr
+lbl_8029F6B0:
+/* 8029F6B0 0029B310 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 8029F6B4 0029B314 2C 00 00 00 */ cmpwi r0, 0
+/* 8029F6B8 0029B318 4D 82 00 20 */ beqlr
+/* 8029F6BC 0029B31C A0 03 04 D4 */ lhz r0, 0x4d4(r3)
+/* 8029F6C0 0029B320 7C 00 2A 14 */ add r0, r0, r5
+/* 8029F6C4 0029B324 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 8029F6C8 0029B328 B0 03 04 D4 */ sth r0, 0x4d4(r3)
+/* 8029F6CC 0029B32C 28 04 9C 40 */ cmplwi r4, 0x9c40
+/* 8029F6D0 0029B330 41 80 00 10 */ blt lbl_8029F6E0
+/* 8029F6D4 0029B334 3C 84 FF FF */ addis r4, r4, 0xffff
+/* 8029F6D8 0029B338 38 04 63 C0 */ addi r0, r4, 0x63c0
+/* 8029F6DC 0029B33C B0 03 04 D4 */ sth r0, 0x4d4(r3)
+lbl_8029F6E0:
+/* 8029F6E0 0029B340 A0 C3 04 D4 */ lhz r6, 0x4d4(r3)
+/* 8029F6E4 0029B344 A0 A3 04 D6 */ lhz r5, 0x4d6(r3)
+/* 8029F6E8 0029B348 7C 06 28 40 */ cmplw r6, r5
+/* 8029F6EC 0029B34C 4D 80 00 20 */ bltlr
+/* 8029F6F0 0029B350 80 83 00 60 */ lwz r4, 0x60(r3)
+/* 8029F6F4 0029B354 28 06 4E 20 */ cmplwi r6, 0x4e20
+/* 8029F6F8 0029B358 A0 03 04 D2 */ lhz r0, 0x4d2(r3)
+/* 8029F6FC 0029B35C 64 84 80 00 */ oris r4, r4, 0x8000
+/* 8029F700 0029B360 7C 05 02 14 */ add r0, r5, r0
+/* 8029F704 0029B364 90 83 00 60 */ stw r4, 0x60(r3)
+/* 8029F708 0029B368 B0 03 04 D6 */ sth r0, 0x4d6(r3)
+/* 8029F70C 0029B36C 4D 80 00 20 */ bltlr
+/* 8029F710 0029B370 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 8029F714 0029B374 38 A6 B1 E0 */ addi r5, r6, -20000
+/* 8029F718 0029B378 38 04 B1 E0 */ addi r0, r4, -20000
+/* 8029F71C 0029B37C B0 A3 04 D4 */ sth r5, 0x4d4(r3)
+/* 8029F720 0029B380 B0 03 04 D6 */ sth r0, 0x4d6(r3)
+/* 8029F724 0029B384 4E 80 00 20 */ blr
+
+.global calc_acc_horizon
+calc_acc_horizon:
+/* 8029F728 0029B388 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8029F72C 0029B38C 7C 08 02 A6 */ mflr r0
+/* 8029F730 0029B390 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8029F734 0029B394 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8029F738 0029B398 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
+/* 8029F73C 0029B39C DB C1 00 10 */ stfd f30, 0x10(r1)
+/* 8029F740 0029B3A0 F3 C1 00 18 */ psq_st f30, 24(r1), 0, qr0
+/* 8029F744 0029B3A4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8029F748 0029B3A8 7C 7F 1B 78 */ mr r31, r3
+/* 8029F74C 0029B3AC C0 23 04 A4 */ lfs f1, 0x4a4(r3)
+/* 8029F750 0029B3B0 C0 03 04 A8 */ lfs f0, 0x4a8(r3)
+/* 8029F754 0029B3B4 EC 21 00 72 */ fmuls f1, f1, f1
+/* 8029F758 0029B3B8 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8029F75C 0029B3BC EC 21 00 2A */ fadds f1, f1, f0
+/* 8029F760 0029B3C0 4B F3 50 D5 */ bl sqrt
+/* 8029F764 0029B3C4 FD 00 08 18 */ frsp f8, f1
+/* 8029F768 0029B3C8 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029F76C 0029B3CC FC 00 40 00 */ fcmpu cr0, f0, f8
+/* 8029F770 0029B3D0 41 82 01 28 */ beq lbl_8029F898
+/* 8029F774 0029B3D4 C0 42 A3 C4 */ lfs f2, lbl_806429C4-_SDA2_BASE_(r2)
+/* 8029F778 0029B3D8 FC 08 10 40 */ fcmpo cr0, f8, f2
+/* 8029F77C 0029B3DC 4C 41 13 82 */ cror 2, 1, 2
+/* 8029F780 0029B3E0 40 82 00 08 */ bne lbl_8029F788
+/* 8029F784 0029B3E4 48 00 01 14 */ b lbl_8029F898
+lbl_8029F788:
+/* 8029F788 0029B3E8 C0 1F 04 A4 */ lfs f0, 0x4a4(r31)
+/* 8029F78C 0029B3EC C0 3F 04 A8 */ lfs f1, 0x4a8(r31)
+/* 8029F790 0029B3F0 ED 20 40 24 */ fdivs f9, f0, f8
+/* 8029F794 0029B3F4 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029F798 0029B3F8 ED 41 40 24 */ fdivs f10, f1, f8
+/* 8029F79C 0029B3FC FC 08 00 40 */ fcmpo cr0, f8, f0
+/* 8029F7A0 0029B400 40 81 00 08 */ ble lbl_8029F7A8
+/* 8029F7A4 0029B404 ED 02 40 28 */ fsubs f8, f2, f8
+lbl_8029F7A8:
+/* 8029F7A8 0029B408 C0 1F 00 AC */ lfs f0, 0xac(r31)
+/* 8029F7AC 0029B40C C0 DF 00 A8 */ lfs f6, 0xa8(r31)
+/* 8029F7B0 0029B410 EC 80 02 B2 */ fmuls f4, f0, f10
+/* 8029F7B4 0029B414 C0 ED 89 34 */ lfs f7, lbl_8063DBF4-_SDA_BASE_(r13)
+/* 8029F7B8 0029B418 EC A6 02 72 */ fmuls f5, f6, f9
+/* 8029F7BC 0029B41C C0 7F 04 B8 */ lfs f3, 0x4b8(r31)
+/* 8029F7C0 0029B420 EC 40 02 72 */ fmuls f2, f0, f9
+/* 8029F7C4 0029B424 C0 3F 04 BC */ lfs f1, 0x4bc(r31)
+/* 8029F7C8 0029B428 EC 06 02 B2 */ fmuls f0, f6, f10
+/* 8029F7CC 0029B42C EC C8 01 F2 */ fmuls f6, f8, f7
+/* 8029F7D0 0029B430 EC 85 20 2A */ fadds f4, f5, f4
+/* 8029F7D4 0029B434 EC 02 00 28 */ fsubs f0, f2, f0
+/* 8029F7D8 0029B438 ED 08 01 B2 */ fmuls f8, f8, f6
+/* 8029F7DC 0029B43C EC 44 18 28 */ fsubs f2, f4, f3
+/* 8029F7E0 0029B440 EC 00 08 28 */ fsubs f0, f0, f1
+/* 8029F7E4 0029B444 EC 48 00 B2 */ fmuls f2, f8, f2
+/* 8029F7E8 0029B448 EC 08 00 32 */ fmuls f0, f8, f0
+/* 8029F7EC 0029B44C EF E3 10 2A */ fadds f31, f3, f2
+/* 8029F7F0 0029B450 EF C1 00 2A */ fadds f30, f1, f0
+/* 8029F7F4 0029B454 EC 3F 07 F2 */ fmuls f1, f31, f31
+/* 8029F7F8 0029B458 EC 1E 07 B2 */ fmuls f0, f30, f30
+/* 8029F7FC 0029B45C EC 21 00 2A */ fadds f1, f1, f0
+/* 8029F800 0029B460 4B F3 50 35 */ bl sqrt
+/* 8029F804 0029B464 FC 20 08 18 */ frsp f1, f1
+/* 8029F808 0029B468 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029F80C 0029B46C FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 8029F810 0029B470 41 82 00 88 */ beq lbl_8029F898
+/* 8029F814 0029B474 EC FF 08 24 */ fdivs f7, f31, f1
+/* 8029F818 0029B478 C0 BF 04 C0 */ lfs f5, 0x4c0(r31)
+/* 8029F81C 0029B47C C0 9F 04 C4 */ lfs f4, 0x4c4(r31)
+/* 8029F820 0029B480 C0 1F 05 0C */ lfs f0, 0x50c(r31)
+/* 8029F824 0029B484 EC DE 08 24 */ fdivs f6, f30, f1
+/* 8029F828 0029B488 D0 FF 04 B8 */ stfs f7, 0x4b8(r31)
+/* 8029F82C 0029B48C D0 DF 04 BC */ stfs f6, 0x4bc(r31)
+/* 8029F830 0029B490 EC 47 28 28 */ fsubs f2, f7, f5
+/* 8029F834 0029B494 EC 66 20 28 */ fsubs f3, f6, f4
+/* 8029F838 0029B498 C0 2D 89 3C */ lfs f1, lbl_8063DBFC-_SDA_BASE_(r13)
+/* 8029F83C 0029B49C EC 21 00 B2 */ fmuls f1, f1, f2
+/* 8029F840 0029B4A0 EC 25 08 2A */ fadds f1, f5, f1
+/* 8029F844 0029B4A4 EC 47 08 28 */ fsubs f2, f7, f1
+/* 8029F848 0029B4A8 D0 3F 04 C0 */ stfs f1, 0x4c0(r31)
+/* 8029F84C 0029B4AC C0 2D 89 3C */ lfs f1, lbl_8063DBFC-_SDA_BASE_(r13)
+/* 8029F850 0029B4B0 EC 42 00 B2 */ fmuls f2, f2, f2
+/* 8029F854 0029B4B4 EC 21 00 F2 */ fmuls f1, f1, f3
+/* 8029F858 0029B4B8 EC 24 08 2A */ fadds f1, f4, f1
+/* 8029F85C 0029B4BC EC 66 08 28 */ fsubs f3, f6, f1
+/* 8029F860 0029B4C0 D0 3F 04 C4 */ stfs f1, 0x4c4(r31)
+/* 8029F864 0029B4C4 EC 23 00 F2 */ fmuls f1, f3, f3
+/* 8029F868 0029B4C8 EC 22 08 2A */ fadds f1, f2, f1
+/* 8029F86C 0029B4CC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029F870 0029B4D0 4C 40 13 82 */ cror 2, 0, 2
+/* 8029F874 0029B4D4 40 82 00 1C */ bne lbl_8029F890
+/* 8029F878 0029B4D8 A0 7F 04 C8 */ lhz r3, 0x4c8(r31)
+/* 8029F87C 0029B4DC 2C 03 00 00 */ cmpwi r3, 0
+/* 8029F880 0029B4E0 41 82 00 18 */ beq lbl_8029F898
+/* 8029F884 0029B4E4 38 03 FF FF */ addi r0, r3, -1
+/* 8029F888 0029B4E8 B0 1F 04 C8 */ sth r0, 0x4c8(r31)
+/* 8029F88C 0029B4EC 48 00 00 0C */ b lbl_8029F898
+lbl_8029F890:
+/* 8029F890 0029B4F0 A0 0D 89 40 */ lhz r0, lbl_8063DC00-_SDA_BASE_(r13)
+/* 8029F894 0029B4F4 B0 1F 04 C8 */ sth r0, 0x4c8(r31)
+lbl_8029F898:
+/* 8029F898 0029B4F8 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
+/* 8029F89C 0029B4FC CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8029F8A0 0029B500 E3 C1 00 18 */ psq_l f30, 24(r1), 0, qr0
+/* 8029F8A4 0029B504 CB C1 00 10 */ lfd f30, 0x10(r1)
+/* 8029F8A8 0029B508 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8029F8AC 0029B50C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8029F8B0 0029B510 7C 08 03 A6 */ mtlr r0
+/* 8029F8B4 0029B514 38 21 00 30 */ addi r1, r1, 0x30
+/* 8029F8B8 0029B518 4E 80 00 20 */ blr
+
+.global calc_acc_vertical
+calc_acc_vertical:
+/* 8029F8BC 0029B51C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8029F8C0 0029B520 7C 08 02 A6 */ mflr r0
+/* 8029F8C4 0029B524 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8029F8C8 0029B528 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 8029F8CC 0029B52C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
+/* 8029F8D0 0029B530 DB C1 00 20 */ stfd f30, 0x20(r1)
+/* 8029F8D4 0029B534 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0
+/* 8029F8D8 0029B538 DB A1 00 10 */ stfd f29, 0x10(r1)
+/* 8029F8DC 0029B53C F3 A1 00 18 */ psq_st f29, 24(r1), 0, qr0
+/* 8029F8E0 0029B540 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8029F8E4 0029B544 7C 7F 1B 78 */ mr r31, r3
+/* 8029F8E8 0029B548 C0 23 04 A4 */ lfs f1, 0x4a4(r3)
+/* 8029F8EC 0029B54C C0 03 04 A8 */ lfs f0, 0x4a8(r3)
+/* 8029F8F0 0029B550 EC 21 00 72 */ fmuls f1, f1, f1
+/* 8029F8F4 0029B554 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8029F8F8 0029B558 EF C1 00 2A */ fadds f30, f1, f0
+/* 8029F8FC 0029B55C FC 20 F0 90 */ fmr f1, f30
+/* 8029F900 0029B560 4B F3 4F 35 */ bl sqrt
+/* 8029F904 0029B564 C0 1F 04 AC */ lfs f0, 0x4ac(r31)
+/* 8029F908 0029B568 FF E0 08 18 */ frsp f31, f1
+/* 8029F90C 0029B56C FF A0 00 50 */ fneg f29, f0
+/* 8029F910 0029B570 EC 1D 07 72 */ fmuls f0, f29, f29
+/* 8029F914 0029B574 EC 3E 00 2A */ fadds f1, f30, f0
+/* 8029F918 0029B578 4B F3 4F 1D */ bl sqrt
+/* 8029F91C 0029B57C FC A0 08 18 */ frsp f5, f1
+/* 8029F920 0029B580 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029F924 0029B584 FC 00 28 00 */ fcmpu cr0, f0, f5
+/* 8029F928 0029B588 41 82 00 8C */ beq lbl_8029F9B4
+/* 8029F92C 0029B58C C0 22 A3 C4 */ lfs f1, lbl_806429C4-_SDA2_BASE_(r2)
+/* 8029F930 0029B590 FC 05 08 40 */ fcmpo cr0, f5, f1
+/* 8029F934 0029B594 4C 41 13 82 */ cror 2, 1, 2
+/* 8029F938 0029B598 40 82 00 08 */ bne lbl_8029F940
+/* 8029F93C 0029B59C 48 00 00 78 */ b lbl_8029F9B4
+lbl_8029F940:
+/* 8029F940 0029B5A0 EC 5F 28 24 */ fdivs f2, f31, f5
+/* 8029F944 0029B5A4 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029F948 0029B5A8 EF BD 28 24 */ fdivs f29, f29, f5
+/* 8029F94C 0029B5AC FC 05 00 40 */ fcmpo cr0, f5, f0
+/* 8029F950 0029B5B0 40 81 00 08 */ ble lbl_8029F958
+/* 8029F954 0029B5B4 EC A1 28 28 */ fsubs f5, f1, f5
+lbl_8029F958:
+/* 8029F958 0029B5B8 C0 0D 89 34 */ lfs f0, lbl_8063DBF4-_SDA_BASE_(r13)
+/* 8029F95C 0029B5BC C0 7F 00 54 */ lfs f3, 0x54(r31)
+/* 8029F960 0029B5C0 EC 85 00 32 */ fmuls f4, f5, f0
+/* 8029F964 0029B5C4 C0 3F 00 58 */ lfs f1, 0x58(r31)
+/* 8029F968 0029B5C8 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8029F96C 0029B5CC EC 1D 08 28 */ fsubs f0, f29, f1
+/* 8029F970 0029B5D0 EC A5 01 32 */ fmuls f5, f5, f4
+/* 8029F974 0029B5D4 EC 45 00 B2 */ fmuls f2, f5, f2
+/* 8029F978 0029B5D8 EC 05 00 32 */ fmuls f0, f5, f0
+/* 8029F97C 0029B5DC EF E3 10 2A */ fadds f31, f3, f2
+/* 8029F980 0029B5E0 EF C1 00 2A */ fadds f30, f1, f0
+/* 8029F984 0029B5E4 EC 3F 07 F2 */ fmuls f1, f31, f31
+/* 8029F988 0029B5E8 EC 1E 07 B2 */ fmuls f0, f30, f30
+/* 8029F98C 0029B5EC EC 21 00 2A */ fadds f1, f1, f0
+/* 8029F990 0029B5F0 4B F3 4E A5 */ bl sqrt
+/* 8029F994 0029B5F4 FC 40 08 18 */ frsp f2, f1
+/* 8029F998 0029B5F8 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029F99C 0029B5FC FC 00 10 00 */ fcmpu cr0, f0, f2
+/* 8029F9A0 0029B600 41 82 00 14 */ beq lbl_8029F9B4
+/* 8029F9A4 0029B604 EC 3F 10 24 */ fdivs f1, f31, f2
+/* 8029F9A8 0029B608 EC 1E 10 24 */ fdivs f0, f30, f2
+/* 8029F9AC 0029B60C D0 3F 00 54 */ stfs f1, 0x54(r31)
+/* 8029F9B0 0029B610 D0 1F 00 58 */ stfs f0, 0x58(r31)
+lbl_8029F9B4:
+/* 8029F9B4 0029B614 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
+/* 8029F9B8 0029B618 CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 8029F9BC 0029B61C E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0
+/* 8029F9C0 0029B620 CB C1 00 20 */ lfd f30, 0x20(r1)
+/* 8029F9C4 0029B624 E3 A1 00 18 */ psq_l f29, 24(r1), 0, qr0
+/* 8029F9C8 0029B628 CB A1 00 10 */ lfd f29, 0x10(r1)
+/* 8029F9CC 0029B62C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8029F9D0 0029B630 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8029F9D4 0029B634 7C 08 03 A6 */ mtlr r0
+/* 8029F9D8 0029B638 38 21 00 40 */ addi r1, r1, 0x40
+/* 8029F9DC 0029B63C 4E 80 00 20 */ blr
+
+.global read_kpad_acc
+read_kpad_acc:
+/* 8029F9E0 0029B640 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8029F9E4 0029B644 7C 08 02 A6 */ mflr r0
+/* 8029F9E8 0029B648 3C A0 43 30 */ lis r5, 0x4330
+/* 8029F9EC 0029B64C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8029F9F0 0029B650 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 8029F9F4 0029B654 7C 9F 23 78 */ mr r31, r4
+/* 8029F9F8 0029B658 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 8029F9FC 0029B65C 7C 7E 1B 78 */ mr r30, r3
+/* 8029FA00 0029B660 88 04 00 36 */ lbz r0, 0x36(r4)
+/* 8029FA04 0029B664 90 A1 00 20 */ stw r5, 0x20(r1)
+/* 8029FA08 0029B668 2C 00 00 06 */ cmpwi r0, 6
+/* 8029FA0C 0029B66C 90 A1 00 28 */ stw r5, 0x28(r1)
+/* 8029FA10 0029B670 41 82 05 C0 */ beq lbl_8029FFD0
+/* 8029FA14 0029B674 40 80 00 1C */ bge lbl_8029FA30
+/* 8029FA18 0029B678 2C 00 00 03 */ cmpwi r0, 3
+/* 8029FA1C 0029B67C 41 82 05 B4 */ beq lbl_8029FFD0
+/* 8029FA20 0029B680 40 80 00 20 */ bge lbl_8029FA40
+/* 8029FA24 0029B684 2C 00 00 01 */ cmpwi r0, 1
+/* 8029FA28 0029B688 40 80 00 18 */ bge lbl_8029FA40
+/* 8029FA2C 0029B68C 48 00 05 A4 */ b lbl_8029FFD0
+lbl_8029FA30:
+/* 8029FA30 0029B690 2C 00 00 09 */ cmpwi r0, 9
+/* 8029FA34 0029B694 40 80 05 9C */ bge lbl_8029FFD0
+/* 8029FA38 0029B698 48 00 00 08 */ b lbl_8029FA40
+/* 8029FA3C 0029B69C 48 00 05 94 */ b lbl_8029FFD0
+lbl_8029FA40:
+/* 8029FA40 0029B6A0 A8 04 00 02 */ lha r0, 2(r4)
+/* 8029FA44 0029B6A4 C8 62 A3 C8 */ lfd f3, lbl_806429C8-_SDA2_BASE_(r2)
+/* 8029FA48 0029B6A8 7C 00 00 D0 */ neg r0, r0
+/* 8029FA4C 0029B6AC C0 23 04 DC */ lfs f1, 0x4dc(r3)
+/* 8029FA50 0029B6B0 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8029FA54 0029B6B4 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FA58 0029B6B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8029FA5C 0029B6BC C0 8D 89 7C */ lfs f4, lbl_8063DC3C-_SDA_BASE_(r13)
+/* 8029FA60 0029B6C0 C8 41 00 20 */ lfd f2, 0x20(r1)
+/* 8029FA64 0029B6C4 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8029FA68 0029B6C8 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8029FA6C 0029B6CC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029FA70 0029B6D0 40 80 00 14 */ bge lbl_8029FA84
+/* 8029FA74 0029B6D4 FC 80 20 50 */ fneg f4, f4
+/* 8029FA78 0029B6D8 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FA7C 0029B6DC 40 80 00 14 */ bge lbl_8029FA90
+/* 8029FA80 0029B6E0 48 00 00 14 */ b lbl_8029FA94
+lbl_8029FA84:
+/* 8029FA84 0029B6E4 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FA88 0029B6E8 40 81 00 08 */ ble lbl_8029FA90
+/* 8029FA8C 0029B6EC 48 00 00 08 */ b lbl_8029FA94
+lbl_8029FA90:
+/* 8029FA90 0029B6F0 FC 80 08 90 */ fmr f4, f1
+lbl_8029FA94:
+/* 8029FA94 0029B6F4 D0 83 04 A4 */ stfs f4, 0x4a4(r3)
+/* 8029FA98 0029B6F8 C8 62 A3 C8 */ lfd f3, lbl_806429C8-_SDA2_BASE_(r2)
+/* 8029FA9C 0029B6FC A8 04 00 06 */ lha r0, 6(r4)
+/* 8029FAA0 0029B700 C0 23 04 E4 */ lfs f1, 0x4e4(r3)
+/* 8029FAA4 0029B704 7C 00 00 D0 */ neg r0, r0
+/* 8029FAA8 0029B708 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FAAC 0029B70C 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8029FAB0 0029B710 C0 8D 89 7C */ lfs f4, lbl_8063DC3C-_SDA_BASE_(r13)
+/* 8029FAB4 0029B714 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8029FAB8 0029B718 C8 41 00 28 */ lfd f2, 0x28(r1)
+/* 8029FABC 0029B71C EC 42 18 28 */ fsubs f2, f2, f3
+/* 8029FAC0 0029B720 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8029FAC4 0029B724 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029FAC8 0029B728 40 80 00 14 */ bge lbl_8029FADC
+/* 8029FACC 0029B72C FC 80 20 50 */ fneg f4, f4
+/* 8029FAD0 0029B730 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FAD4 0029B734 40 80 00 14 */ bge lbl_8029FAE8
+/* 8029FAD8 0029B738 48 00 00 14 */ b lbl_8029FAEC
+lbl_8029FADC:
+/* 8029FADC 0029B73C FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FAE0 0029B740 40 81 00 08 */ ble lbl_8029FAE8
+/* 8029FAE4 0029B744 48 00 00 08 */ b lbl_8029FAEC
+lbl_8029FAE8:
+/* 8029FAE8 0029B748 FC 80 08 90 */ fmr f4, f1
+lbl_8029FAEC:
+/* 8029FAEC 0029B74C D0 83 04 A8 */ stfs f4, 0x4a8(r3)
+/* 8029FAF0 0029B750 C8 62 A3 C8 */ lfd f3, lbl_806429C8-_SDA2_BASE_(r2)
+/* 8029FAF4 0029B754 A8 04 00 04 */ lha r0, 4(r4)
+/* 8029FAF8 0029B758 C0 23 04 E0 */ lfs f1, 0x4e0(r3)
+/* 8029FAFC 0029B75C 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8029FB00 0029B760 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FB04 0029B764 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8029FB08 0029B768 C0 8D 89 7C */ lfs f4, lbl_8063DC3C-_SDA_BASE_(r13)
+/* 8029FB0C 0029B76C C8 41 00 20 */ lfd f2, 0x20(r1)
+/* 8029FB10 0029B770 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8029FB14 0029B774 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8029FB18 0029B778 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029FB1C 0029B77C 40 80 00 14 */ bge lbl_8029FB30
+/* 8029FB20 0029B780 FC 80 20 50 */ fneg f4, f4
+/* 8029FB24 0029B784 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FB28 0029B788 40 80 00 14 */ bge lbl_8029FB3C
+/* 8029FB2C 0029B78C 48 00 00 14 */ b lbl_8029FB40
+lbl_8029FB30:
+/* 8029FB30 0029B790 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FB34 0029B794 40 81 00 08 */ ble lbl_8029FB3C
+/* 8029FB38 0029B798 48 00 00 08 */ b lbl_8029FB40
+lbl_8029FB3C:
+/* 8029FB3C 0029B79C FC 80 08 90 */ fmr f4, f1
+lbl_8029FB40:
+/* 8029FB40 0029B7A0 C0 23 04 A4 */ lfs f1, 0x4a4(r3)
+/* 8029FB44 0029B7A4 C0 03 00 0C */ lfs f0, 0xc(r3)
+/* 8029FB48 0029B7A8 80 A3 00 0C */ lwz r5, 0xc(r3)
+/* 8029FB4C 0029B7AC EC 41 00 28 */ fsubs f2, f1, f0
+/* 8029FB50 0029B7B0 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FB54 0029B7B4 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 8029FB58 0029B7B8 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8029FB5C 0029B7BC FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8029FB60 0029B7C0 D0 83 04 AC */ stfs f4, 0x4ac(r3)
+/* 8029FB64 0029B7C4 90 A1 00 14 */ stw r5, 0x14(r1)
+/* 8029FB68 0029B7C8 90 81 00 18 */ stw r4, 0x18(r1)
+/* 8029FB6C 0029B7CC 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 8029FB70 0029B7D0 40 80 00 0C */ bge lbl_8029FB7C
+/* 8029FB74 0029B7D4 FC 60 10 50 */ fneg f3, f2
+/* 8029FB78 0029B7D8 48 00 00 08 */ b lbl_8029FB80
+lbl_8029FB7C:
+/* 8029FB7C 0029B7DC FC 60 10 90 */ fmr f3, f2
+lbl_8029FB80:
+/* 8029FB80 0029B7E0 C0 03 00 9C */ lfs f0, 0x9c(r3)
+/* 8029FB84 0029B7E4 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8029FB88 0029B7E8 4C 41 13 82 */ cror 2, 1, 2
+/* 8029FB8C 0029B7EC 40 82 00 0C */ bne lbl_8029FB98
+/* 8029FB90 0029B7F0 C0 62 A3 B0 */ lfs f3, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029FB94 0029B7F4 48 00 00 10 */ b lbl_8029FBA4
+lbl_8029FB98:
+/* 8029FB98 0029B7F8 EC 63 00 24 */ fdivs f3, f3, f0
+/* 8029FB9C 0029B7FC EC 63 00 F2 */ fmuls f3, f3, f3
+/* 8029FBA0 0029B800 EC 63 00 F2 */ fmuls f3, f3, f3
+lbl_8029FBA4:
+/* 8029FBA4 0029B804 C0 03 00 A0 */ lfs f0, 0xa0(r3)
+/* 8029FBA8 0029B808 C0 83 04 A8 */ lfs f4, 0x4a8(r3)
+/* 8029FBAC 0029B80C EC 63 00 32 */ fmuls f3, f3, f0
+/* 8029FBB0 0029B810 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8029FBB4 0029B814 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8029FBB8 0029B818 EC 84 00 28 */ fsubs f4, f4, f0
+/* 8029FBBC 0029B81C C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FBC0 0029B820 EC 43 00 B2 */ fmuls f2, f3, f2
+/* 8029FBC4 0029B824 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8029FBC8 0029B828 EC 01 10 2A */ fadds f0, f1, f2
+/* 8029FBCC 0029B82C D0 03 00 0C */ stfs f0, 0xc(r3)
+/* 8029FBD0 0029B830 40 80 00 0C */ bge lbl_8029FBDC
+/* 8029FBD4 0029B834 FC 40 20 50 */ fneg f2, f4
+/* 8029FBD8 0029B838 48 00 00 08 */ b lbl_8029FBE0
+lbl_8029FBDC:
+/* 8029FBDC 0029B83C FC 40 20 90 */ fmr f2, f4
+lbl_8029FBE0:
+/* 8029FBE0 0029B840 C0 03 00 9C */ lfs f0, 0x9c(r3)
+/* 8029FBE4 0029B844 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 8029FBE8 0029B848 4C 41 13 82 */ cror 2, 1, 2
+/* 8029FBEC 0029B84C 40 82 00 0C */ bne lbl_8029FBF8
+/* 8029FBF0 0029B850 C0 42 A3 B0 */ lfs f2, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029FBF4 0029B854 48 00 00 10 */ b lbl_8029FC04
+lbl_8029FBF8:
+/* 8029FBF8 0029B858 EC 42 00 24 */ fdivs f2, f2, f0
+/* 8029FBFC 0029B85C EC 42 00 B2 */ fmuls f2, f2, f2
+/* 8029FC00 0029B860 EC 42 00 B2 */ fmuls f2, f2, f2
+lbl_8029FC04:
+/* 8029FC04 0029B864 C0 03 00 A0 */ lfs f0, 0xa0(r3)
+/* 8029FC08 0029B868 C0 63 04 AC */ lfs f3, 0x4ac(r3)
+/* 8029FC0C 0029B86C EC 42 00 32 */ fmuls f2, f2, f0
+/* 8029FC10 0029B870 C0 03 00 14 */ lfs f0, 0x14(r3)
+/* 8029FC14 0029B874 C0 23 00 10 */ lfs f1, 0x10(r3)
+/* 8029FC18 0029B878 EC 63 00 28 */ fsubs f3, f3, f0
+/* 8029FC1C 0029B87C C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FC20 0029B880 EC 42 01 32 */ fmuls f2, f2, f4
+/* 8029FC24 0029B884 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8029FC28 0029B888 EC 01 10 2A */ fadds f0, f1, f2
+/* 8029FC2C 0029B88C D0 03 00 10 */ stfs f0, 0x10(r3)
+/* 8029FC30 0029B890 40 80 00 0C */ bge lbl_8029FC3C
+/* 8029FC34 0029B894 FC 80 18 50 */ fneg f4, f3
+/* 8029FC38 0029B898 48 00 00 08 */ b lbl_8029FC40
+lbl_8029FC3C:
+/* 8029FC3C 0029B89C FC 80 18 90 */ fmr f4, f3
+lbl_8029FC40:
+/* 8029FC40 0029B8A0 C0 03 00 9C */ lfs f0, 0x9c(r3)
+/* 8029FC44 0029B8A4 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8029FC48 0029B8A8 4C 41 13 82 */ cror 2, 1, 2
+/* 8029FC4C 0029B8AC 40 82 00 0C */ bne lbl_8029FC58
+/* 8029FC50 0029B8B0 C0 82 A3 B0 */ lfs f4, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029FC54 0029B8B4 48 00 00 10 */ b lbl_8029FC64
+lbl_8029FC58:
+/* 8029FC58 0029B8B8 EC 84 00 24 */ fdivs f4, f4, f0
+/* 8029FC5C 0029B8BC EC 84 01 32 */ fmuls f4, f4, f4
+/* 8029FC60 0029B8C0 EC 84 01 32 */ fmuls f4, f4, f4
+lbl_8029FC64:
+/* 8029FC64 0029B8C4 C0 03 00 A0 */ lfs f0, 0xa0(r3)
+/* 8029FC68 0029B8C8 C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 8029FC6C 0029B8CC EC 84 00 32 */ fmuls f4, f4, f0
+/* 8029FC70 0029B8D0 C0 03 00 10 */ lfs f0, 0x10(r3)
+/* 8029FC74 0029B8D4 C0 43 00 14 */ lfs f2, 0x14(r3)
+/* 8029FC78 0029B8D8 EC 21 00 72 */ fmuls f1, f1, f1
+/* 8029FC7C 0029B8DC EC 00 00 32 */ fmuls f0, f0, f0
+/* 8029FC80 0029B8E0 EC 64 00 F2 */ fmuls f3, f4, f3
+/* 8029FC84 0029B8E4 EC 01 00 2A */ fadds f0, f1, f0
+/* 8029FC88 0029B8E8 EC 42 18 2A */ fadds f2, f2, f3
+/* 8029FC8C 0029B8EC EC 22 00 B2 */ fmuls f1, f2, f2
+/* 8029FC90 0029B8F0 D0 43 00 14 */ stfs f2, 0x14(r3)
+/* 8029FC94 0029B8F4 EC 21 00 2A */ fadds f1, f1, f0
+/* 8029FC98 0029B8F8 4B F3 4B 9D */ bl sqrt
+/* 8029FC9C 0029B8FC C0 41 00 14 */ lfs f2, 0x14(r1)
+/* 8029FCA0 0029B900 FC C0 08 18 */ frsp f6, f1
+/* 8029FCA4 0029B904 C0 1E 00 0C */ lfs f0, 0xc(r30)
+/* 8029FCA8 0029B908 C0 21 00 18 */ lfs f1, 0x18(r1)
+/* 8029FCAC 0029B90C EC A2 00 28 */ fsubs f5, f2, f0
+/* 8029FCB0 0029B910 C0 1E 00 10 */ lfs f0, 0x10(r30)
+/* 8029FCB4 0029B914 C0 41 00 1C */ lfs f2, 0x1c(r1)
+/* 8029FCB8 0029B918 EC 81 00 28 */ fsubs f4, f1, f0
+/* 8029FCBC 0029B91C C0 1E 00 14 */ lfs f0, 0x14(r30)
+/* 8029FCC0 0029B920 EC 25 01 72 */ fmuls f1, f5, f5
+/* 8029FCC4 0029B924 EC 62 00 28 */ fsubs f3, f2, f0
+/* 8029FCC8 0029B928 D0 DE 00 18 */ stfs f6, 0x18(r30)
+/* 8029FCCC 0029B92C EC 04 01 32 */ fmuls f0, f4, f4
+/* 8029FCD0 0029B930 D0 A1 00 14 */ stfs f5, 0x14(r1)
+/* 8029FCD4 0029B934 EC 43 00 F2 */ fmuls f2, f3, f3
+/* 8029FCD8 0029B938 EC 01 00 2A */ fadds f0, f1, f0
+/* 8029FCDC 0029B93C D0 81 00 18 */ stfs f4, 0x18(r1)
+/* 8029FCE0 0029B940 D0 61 00 1C */ stfs f3, 0x1c(r1)
+/* 8029FCE4 0029B944 EC 22 00 2A */ fadds f1, f2, f0
+/* 8029FCE8 0029B948 4B F3 4B 4D */ bl sqrt
+/* 8029FCEC 0029B94C FC 00 08 18 */ frsp f0, f1
+/* 8029FCF0 0029B950 7F C3 F3 78 */ mr r3, r30
+/* 8029FCF4 0029B954 D0 1E 00 1C */ stfs f0, 0x1c(r30)
+/* 8029FCF8 0029B958 4B FF FA 31 */ bl calc_acc_horizon
+/* 8029FCFC 0029B95C 7F C3 F3 78 */ mr r3, r30
+/* 8029FD00 0029B960 4B FF FB BD */ bl calc_acc_vertical
+/* 8029FD04 0029B964 88 1F 00 29 */ lbz r0, 0x29(r31)
+/* 8029FD08 0029B968 7C 00 07 75 */ extsb. r0, r0
+/* 8029FD0C 0029B96C 40 82 02 C4 */ bne lbl_8029FFD0
+/* 8029FD10 0029B970 88 1F 00 28 */ lbz r0, 0x28(r31)
+/* 8029FD14 0029B974 28 00 00 01 */ cmplwi r0, 1
+/* 8029FD18 0029B978 40 82 02 B8 */ bne lbl_8029FFD0
+/* 8029FD1C 0029B97C 88 1F 00 36 */ lbz r0, 0x36(r31)
+/* 8029FD20 0029B980 28 00 00 04 */ cmplwi r0, 4
+/* 8029FD24 0029B984 41 82 00 10 */ beq lbl_8029FD34
+/* 8029FD28 0029B988 28 00 00 05 */ cmplwi r0, 5
+/* 8029FD2C 0029B98C 41 82 00 08 */ beq lbl_8029FD34
+/* 8029FD30 0029B990 48 00 02 A0 */ b lbl_8029FFD0
+lbl_8029FD34:
+/* 8029FD34 0029B994 A8 1F 00 2A */ lha r0, 0x2a(r31)
+/* 8029FD38 0029B998 80 BE 00 68 */ lwz r5, 0x68(r30)
+/* 8029FD3C 0029B99C 7C 00 00 D0 */ neg r0, r0
+/* 8029FD40 0029B9A0 80 9E 00 6C */ lwz r4, 0x6c(r30)
+/* 8029FD44 0029B9A4 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8029FD48 0029B9A8 80 7E 00 70 */ lwz r3, 0x70(r30)
+/* 8029FD4C 0029B9AC 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8029FD50 0029B9B0 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 8029FD54 0029B9B4 C8 01 00 28 */ lfd f0, 0x28(r1)
+/* 8029FD58 0029B9B8 C0 3E 04 E8 */ lfs f1, 0x4e8(r30)
+/* 8029FD5C 0029B9BC EC 40 10 28 */ fsubs f2, f0, f2
+/* 8029FD60 0029B9C0 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FD64 0029B9C4 90 A1 00 08 */ stw r5, 8(r1)
+/* 8029FD68 0029B9C8 C0 6D 89 80 */ lfs f3, lbl_8063DC40-_SDA_BASE_(r13)
+/* 8029FD6C 0029B9CC EC 22 00 72 */ fmuls f1, f2, f1
+/* 8029FD70 0029B9D0 90 81 00 0C */ stw r4, 0xc(r1)
+/* 8029FD74 0029B9D4 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8029FD78 0029B9D8 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029FD7C 0029B9DC 40 80 00 14 */ bge lbl_8029FD90
+/* 8029FD80 0029B9E0 FC 60 18 50 */ fneg f3, f3
+/* 8029FD84 0029B9E4 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8029FD88 0029B9E8 40 80 00 14 */ bge lbl_8029FD9C
+/* 8029FD8C 0029B9EC 48 00 00 14 */ b lbl_8029FDA0
+lbl_8029FD90:
+/* 8029FD90 0029B9F0 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 8029FD94 0029B9F4 40 81 00 08 */ ble lbl_8029FD9C
+/* 8029FD98 0029B9F8 48 00 00 08 */ b lbl_8029FDA0
+lbl_8029FD9C:
+/* 8029FD9C 0029B9FC FC 60 08 90 */ fmr f3, f1
+lbl_8029FDA0:
+/* 8029FDA0 0029BA00 C0 3E 00 68 */ lfs f1, 0x68(r30)
+/* 8029FDA4 0029BA04 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FDA8 0029BA08 EC 83 08 28 */ fsubs f4, f3, f1
+/* 8029FDAC 0029BA0C FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8029FDB0 0029BA10 40 80 00 0C */ bge lbl_8029FDBC
+/* 8029FDB4 0029BA14 FC A0 20 50 */ fneg f5, f4
+/* 8029FDB8 0029BA18 48 00 00 08 */ b lbl_8029FDC0
+lbl_8029FDBC:
+/* 8029FDBC 0029BA1C FC A0 20 90 */ fmr f5, f4
+lbl_8029FDC0:
+/* 8029FDC0 0029BA20 C0 1E 00 9C */ lfs f0, 0x9c(r30)
+/* 8029FDC4 0029BA24 FC 05 00 40 */ fcmpo cr0, f5, f0
+/* 8029FDC8 0029BA28 4C 41 13 82 */ cror 2, 1, 2
+/* 8029FDCC 0029BA2C 40 82 00 0C */ bne lbl_8029FDD8
+/* 8029FDD0 0029BA30 C0 A2 A3 B0 */ lfs f5, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029FDD4 0029BA34 48 00 00 10 */ b lbl_8029FDE4
+lbl_8029FDD8:
+/* 8029FDD8 0029BA38 EC A5 00 24 */ fdivs f5, f5, f0
+/* 8029FDDC 0029BA3C EC A5 01 72 */ fmuls f5, f5, f5
+/* 8029FDE0 0029BA40 EC A5 01 72 */ fmuls f5, f5, f5
+lbl_8029FDE4:
+/* 8029FDE4 0029BA44 C0 1E 00 A0 */ lfs f0, 0xa0(r30)
+/* 8029FDE8 0029BA48 C0 5E 00 68 */ lfs f2, 0x68(r30)
+/* 8029FDEC 0029BA4C EC A5 00 32 */ fmuls f5, f5, f0
+/* 8029FDF0 0029BA50 C8 62 A3 C8 */ lfd f3, lbl_806429C8-_SDA2_BASE_(r2)
+/* 8029FDF4 0029BA54 C0 3E 04 F0 */ lfs f1, 0x4f0(r30)
+/* 8029FDF8 0029BA58 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FDFC 0029BA5C EC 85 01 32 */ fmuls f4, f5, f4
+/* 8029FE00 0029BA60 EC 42 20 2A */ fadds f2, f2, f4
+/* 8029FE04 0029BA64 D0 5E 00 68 */ stfs f2, 0x68(r30)
+/* 8029FE08 0029BA68 A8 1F 00 2E */ lha r0, 0x2e(r31)
+/* 8029FE0C 0029BA6C C0 8D 89 80 */ lfs f4, lbl_8063DC40-_SDA_BASE_(r13)
+/* 8029FE10 0029BA70 7C 00 00 D0 */ neg r0, r0
+/* 8029FE14 0029BA74 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8029FE18 0029BA78 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8029FE1C 0029BA7C C8 41 00 20 */ lfd f2, 0x20(r1)
+/* 8029FE20 0029BA80 EC 42 18 28 */ fsubs f2, f2, f3
+/* 8029FE24 0029BA84 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8029FE28 0029BA88 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029FE2C 0029BA8C 40 80 00 14 */ bge lbl_8029FE40
+/* 8029FE30 0029BA90 FC 80 20 50 */ fneg f4, f4
+/* 8029FE34 0029BA94 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FE38 0029BA98 40 80 00 14 */ bge lbl_8029FE4C
+/* 8029FE3C 0029BA9C 48 00 00 14 */ b lbl_8029FE50
+lbl_8029FE40:
+/* 8029FE40 0029BAA0 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FE44 0029BAA4 40 81 00 08 */ ble lbl_8029FE4C
+/* 8029FE48 0029BAA8 48 00 00 08 */ b lbl_8029FE50
+lbl_8029FE4C:
+/* 8029FE4C 0029BAAC FC 80 08 90 */ fmr f4, f1
+lbl_8029FE50:
+/* 8029FE50 0029BAB0 C0 3E 00 6C */ lfs f1, 0x6c(r30)
+/* 8029FE54 0029BAB4 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FE58 0029BAB8 EC 84 08 28 */ fsubs f4, f4, f1
+/* 8029FE5C 0029BABC FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8029FE60 0029BAC0 40 80 00 0C */ bge lbl_8029FE6C
+/* 8029FE64 0029BAC4 FC A0 20 50 */ fneg f5, f4
+/* 8029FE68 0029BAC8 48 00 00 08 */ b lbl_8029FE70
+lbl_8029FE6C:
+/* 8029FE6C 0029BACC FC A0 20 90 */ fmr f5, f4
+lbl_8029FE70:
+/* 8029FE70 0029BAD0 C0 1E 00 9C */ lfs f0, 0x9c(r30)
+/* 8029FE74 0029BAD4 FC 05 00 40 */ fcmpo cr0, f5, f0
+/* 8029FE78 0029BAD8 4C 41 13 82 */ cror 2, 1, 2
+/* 8029FE7C 0029BADC 40 82 00 0C */ bne lbl_8029FE88
+/* 8029FE80 0029BAE0 C0 A2 A3 B0 */ lfs f5, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029FE84 0029BAE4 48 00 00 10 */ b lbl_8029FE94
+lbl_8029FE88:
+/* 8029FE88 0029BAE8 EC A5 00 24 */ fdivs f5, f5, f0
+/* 8029FE8C 0029BAEC EC A5 01 72 */ fmuls f5, f5, f5
+/* 8029FE90 0029BAF0 EC A5 01 72 */ fmuls f5, f5, f5
+lbl_8029FE94:
+/* 8029FE94 0029BAF4 C0 1E 00 A0 */ lfs f0, 0xa0(r30)
+/* 8029FE98 0029BAF8 C0 5E 00 6C */ lfs f2, 0x6c(r30)
+/* 8029FE9C 0029BAFC EC A5 00 32 */ fmuls f5, f5, f0
+/* 8029FEA0 0029BB00 C8 62 A3 C8 */ lfd f3, lbl_806429C8-_SDA2_BASE_(r2)
+/* 8029FEA4 0029BB04 C0 3E 04 EC */ lfs f1, 0x4ec(r30)
+/* 8029FEA8 0029BB08 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FEAC 0029BB0C EC 85 01 32 */ fmuls f4, f5, f4
+/* 8029FEB0 0029BB10 EC 42 20 2A */ fadds f2, f2, f4
+/* 8029FEB4 0029BB14 D0 5E 00 6C */ stfs f2, 0x6c(r30)
+/* 8029FEB8 0029BB18 A8 1F 00 2C */ lha r0, 0x2c(r31)
+/* 8029FEBC 0029BB1C C0 8D 89 80 */ lfs f4, lbl_8063DC40-_SDA_BASE_(r13)
+/* 8029FEC0 0029BB20 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 8029FEC4 0029BB24 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8029FEC8 0029BB28 C8 41 00 28 */ lfd f2, 0x28(r1)
+/* 8029FECC 0029BB2C EC 42 18 28 */ fsubs f2, f2, f3
+/* 8029FED0 0029BB30 EC 22 00 72 */ fmuls f1, f2, f1
+/* 8029FED4 0029BB34 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8029FED8 0029BB38 40 80 00 14 */ bge lbl_8029FEEC
+/* 8029FEDC 0029BB3C FC 80 20 50 */ fneg f4, f4
+/* 8029FEE0 0029BB40 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FEE4 0029BB44 40 80 00 14 */ bge lbl_8029FEF8
+/* 8029FEE8 0029BB48 48 00 00 14 */ b lbl_8029FEFC
+lbl_8029FEEC:
+/* 8029FEEC 0029BB4C FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 8029FEF0 0029BB50 40 81 00 08 */ ble lbl_8029FEF8
+/* 8029FEF4 0029BB54 48 00 00 08 */ b lbl_8029FEFC
+lbl_8029FEF8:
+/* 8029FEF8 0029BB58 FC 80 08 90 */ fmr f4, f1
+lbl_8029FEFC:
+/* 8029FEFC 0029BB5C C0 3E 00 70 */ lfs f1, 0x70(r30)
+/* 8029FF00 0029BB60 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 8029FF04 0029BB64 EC 64 08 28 */ fsubs f3, f4, f1
+/* 8029FF08 0029BB68 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 8029FF0C 0029BB6C 40 80 00 0C */ bge lbl_8029FF18
+/* 8029FF10 0029BB70 FC 80 18 50 */ fneg f4, f3
+/* 8029FF14 0029BB74 48 00 00 08 */ b lbl_8029FF1C
+lbl_8029FF18:
+/* 8029FF18 0029BB78 FC 80 18 90 */ fmr f4, f3
+lbl_8029FF1C:
+/* 8029FF1C 0029BB7C C0 1E 00 9C */ lfs f0, 0x9c(r30)
+/* 8029FF20 0029BB80 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 8029FF24 0029BB84 4C 41 13 82 */ cror 2, 1, 2
+/* 8029FF28 0029BB88 40 82 00 0C */ bne lbl_8029FF34
+/* 8029FF2C 0029BB8C C0 82 A3 B0 */ lfs f4, lbl_806429B0-_SDA2_BASE_(r2)
+/* 8029FF30 0029BB90 48 00 00 10 */ b lbl_8029FF40
+lbl_8029FF34:
+/* 8029FF34 0029BB94 EC 84 00 24 */ fdivs f4, f4, f0
+/* 8029FF38 0029BB98 EC 84 01 32 */ fmuls f4, f4, f4
+/* 8029FF3C 0029BB9C EC 84 01 32 */ fmuls f4, f4, f4
+lbl_8029FF40:
+/* 8029FF40 0029BBA0 C0 1E 00 A0 */ lfs f0, 0xa0(r30)
+/* 8029FF44 0029BBA4 C0 3E 00 68 */ lfs f1, 0x68(r30)
+/* 8029FF48 0029BBA8 EC 84 00 32 */ fmuls f4, f4, f0
+/* 8029FF4C 0029BBAC C0 1E 00 6C */ lfs f0, 0x6c(r30)
+/* 8029FF50 0029BBB0 C0 5E 00 70 */ lfs f2, 0x70(r30)
+/* 8029FF54 0029BBB4 EC 21 00 72 */ fmuls f1, f1, f1
+/* 8029FF58 0029BBB8 EC 00 00 32 */ fmuls f0, f0, f0
+/* 8029FF5C 0029BBBC EC 64 00 F2 */ fmuls f3, f4, f3
+/* 8029FF60 0029BBC0 EC 01 00 2A */ fadds f0, f1, f0
+/* 8029FF64 0029BBC4 EC 42 18 2A */ fadds f2, f2, f3
+/* 8029FF68 0029BBC8 EC 22 00 B2 */ fmuls f1, f2, f2
+/* 8029FF6C 0029BBCC D0 5E 00 70 */ stfs f2, 0x70(r30)
+/* 8029FF70 0029BBD0 EC 21 00 2A */ fadds f1, f1, f0
+/* 8029FF74 0029BBD4 4B F3 48 C1 */ bl sqrt
+/* 8029FF78 0029BBD8 C0 41 00 08 */ lfs f2, 8(r1)
+/* 8029FF7C 0029BBDC FC C0 08 18 */ frsp f6, f1
+/* 8029FF80 0029BBE0 C0 1E 00 68 */ lfs f0, 0x68(r30)
+/* 8029FF84 0029BBE4 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 8029FF88 0029BBE8 EC A2 00 28 */ fsubs f5, f2, f0
+/* 8029FF8C 0029BBEC C0 1E 00 6C */ lfs f0, 0x6c(r30)
+/* 8029FF90 0029BBF0 C0 41 00 10 */ lfs f2, 0x10(r1)
+/* 8029FF94 0029BBF4 EC 81 00 28 */ fsubs f4, f1, f0
+/* 8029FF98 0029BBF8 C0 1E 00 70 */ lfs f0, 0x70(r30)
+/* 8029FF9C 0029BBFC EC 25 01 72 */ fmuls f1, f5, f5
+/* 8029FFA0 0029BC00 EC 62 00 28 */ fsubs f3, f2, f0
+/* 8029FFA4 0029BC04 D0 DE 00 74 */ stfs f6, 0x74(r30)
+/* 8029FFA8 0029BC08 EC 04 01 32 */ fmuls f0, f4, f4
+/* 8029FFAC 0029BC0C D0 A1 00 08 */ stfs f5, 8(r1)
+/* 8029FFB0 0029BC10 EC 43 00 F2 */ fmuls f2, f3, f3
+/* 8029FFB4 0029BC14 EC 01 00 2A */ fadds f0, f1, f0
+/* 8029FFB8 0029BC18 D0 81 00 0C */ stfs f4, 0xc(r1)
+/* 8029FFBC 0029BC1C D0 61 00 10 */ stfs f3, 0x10(r1)
+/* 8029FFC0 0029BC20 EC 22 00 2A */ fadds f1, f2, f0
+/* 8029FFC4 0029BC24 4B F3 48 71 */ bl sqrt
+/* 8029FFC8 0029BC28 FC 00 08 18 */ frsp f0, f1
+/* 8029FFCC 0029BC2C D0 1E 00 78 */ stfs f0, 0x78(r30)
+lbl_8029FFD0:
+/* 8029FFD0 0029BC30 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8029FFD4 0029BC34 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8029FFD8 0029BC38 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 8029FFDC 0029BC3C 7C 08 03 A6 */ mtlr r0
+/* 8029FFE0 0029BC40 38 21 00 40 */ addi r1, r1, 0x40
+/* 8029FFE4 0029BC44 4E 80 00 20 */ blr
+
+.global select_2obj_first
+select_2obj_first:
+/* 8029FFE8 0029BC48 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 8029FFEC 0029BC4C 7C 08 02 A6 */ mflr r0
+/* 8029FFF0 0029BC50 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8029FFF4 0029BC54 DB E1 00 70 */ stfd f31, 0x70(r1)
+/* 8029FFF8 0029BC58 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
+/* 8029FFFC 0029BC5C DB C1 00 60 */ stfd f30, 0x60(r1)
+/* 802A0000 0029BC60 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0
+/* 802A0004 0029BC64 DB A1 00 50 */ stfd f29, 0x50(r1)
+/* 802A0008 0029BC68 F3 A1 00 58 */ psq_st f29, 88(r1), 0, qr0
+/* 802A000C 0029BC6C DB 81 00 40 */ stfd f28, 0x40(r1)
+/* 802A0010 0029BC70 F3 81 00 48 */ psq_st f28, 72(r1), 0, qr0
+/* 802A0014 0029BC74 DB 61 00 30 */ stfd f27, 0x30(r1)
+/* 802A0018 0029BC78 F3 61 00 38 */ psq_st f27, 56(r1), 0, qr0
+/* 802A001C 0029BC7C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A0020 0029BC80 4B F2 71 01 */ bl _savegpr_25
+/* 802A0024 0029BC84 C3 CD 89 50 */ lfs f30, lbl_8063DC10-_SDA_BASE_(r13)
+/* 802A0028 0029BC88 7C 79 1B 78 */ mr r25, r3
+/* 802A002C 0029BC8C C3 A2 A3 A0 */ lfs f29, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A0030 0029BC90 3B A3 00 C4 */ addi r29, r3, 0xc4
+/* 802A0034 0029BC94 C3 E2 A3 B0 */ lfs f31, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A0038 0029BC98 3B E3 00 E8 */ addi r31, r3, 0xe8
+lbl_802A003C:
+/* 802A003C 0029BC9C 88 1D 00 08 */ lbz r0, 8(r29)
+/* 802A0040 0029BCA0 7C 00 07 75 */ extsb. r0, r0
+/* 802A0044 0029BCA4 40 82 00 F8 */ bne lbl_802A013C
+/* 802A0048 0029BCA8 3B 9D 00 0C */ addi r28, r29, 0xc
+/* 802A004C 0029BCAC 3B D9 00 E8 */ addi r30, r25, 0xe8
+lbl_802A0050:
+/* 802A0050 0029BCB0 88 1C 00 08 */ lbz r0, 8(r28)
+/* 802A0054 0029BCB4 7C 00 07 75 */ extsb. r0, r0
+/* 802A0058 0029BCB8 40 82 00 D8 */ bne lbl_802A0130
+/* 802A005C 0029BCBC C0 7C 00 00 */ lfs f3, 0(r28)
+/* 802A0060 0029BCC0 C0 5D 00 00 */ lfs f2, 0(r29)
+/* 802A0064 0029BCC4 C0 3C 00 04 */ lfs f1, 4(r28)
+/* 802A0068 0029BCC8 C0 1D 00 04 */ lfs f0, 4(r29)
+/* 802A006C 0029BCCC EF 63 10 28 */ fsubs f27, f3, f2
+/* 802A0070 0029BCD0 EF 81 00 28 */ fsubs f28, f1, f0
+/* 802A0074 0029BCD4 EC 3B 06 F2 */ fmuls f1, f27, f27
+/* 802A0078 0029BCD8 EC 1C 07 32 */ fmuls f0, f28, f28
+/* 802A007C 0029BCDC EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0080 0029BCE0 4B F3 47 B5 */ bl sqrt
+/* 802A0084 0029BCE4 FC 00 08 18 */ frsp f0, f1
+/* 802A0088 0029BCE8 C0 B9 00 B0 */ lfs f5, 0xb0(r25)
+/* 802A008C 0029BCEC C0 59 00 B4 */ lfs f2, 0xb4(r25)
+/* 802A0090 0029BCF0 C0 39 05 10 */ lfs f1, 0x510(r25)
+/* 802A0094 0029BCF4 EC 7F 00 24 */ fdivs f3, f31, f0
+/* 802A0098 0029BCF8 C0 19 05 14 */ lfs f0, 0x514(r25)
+/* 802A009C 0029BCFC EF 7B 00 F2 */ fmuls f27, f27, f3
+/* 802A00A0 0029BD00 EF 9C 00 F2 */ fmuls f28, f28, f3
+/* 802A00A4 0029BD04 EC C1 00 F2 */ fmuls f6, f1, f3
+/* 802A00A8 0029BD08 EC 85 06 F2 */ fmuls f4, f5, f27
+/* 802A00AC 0029BD0C EC 62 07 32 */ fmuls f3, f2, f28
+/* 802A00B0 0029BD10 EC 42 06 F2 */ fmuls f2, f2, f27
+/* 802A00B4 0029BD14 EC 25 07 32 */ fmuls f1, f5, f28
+/* 802A00B8 0029BD18 EC 64 18 2A */ fadds f3, f4, f3
+/* 802A00BC 0029BD1C FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 802A00C0 0029BD20 EC 42 08 28 */ fsubs f2, f2, f1
+/* 802A00C4 0029BD24 D0 61 00 08 */ stfs f3, 8(r1)
+/* 802A00C8 0029BD28 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802A00CC 0029BD2C 4C 40 13 82 */ cror 2, 0, 2
+/* 802A00D0 0029BD30 41 82 00 60 */ beq lbl_802A0130
+/* 802A00D4 0029BD34 C0 0D 89 48 */ lfs f0, lbl_8063DC08-_SDA_BASE_(r13)
+/* 802A00D8 0029BD38 FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 802A00DC 0029BD3C 4C 41 13 82 */ cror 2, 1, 2
+/* 802A00E0 0029BD40 41 82 00 50 */ beq lbl_802A0130
+/* 802A00E4 0029BD44 C0 39 04 B8 */ lfs f1, 0x4b8(r25)
+/* 802A00E8 0029BD48 C0 19 04 BC */ lfs f0, 0x4bc(r25)
+/* 802A00EC 0029BD4C EC 21 00 F2 */ fmuls f1, f1, f3
+/* 802A00F0 0029BD50 EC 00 00 B2 */ fmuls f0, f0, f2
+/* 802A00F4 0029BD54 EC 01 00 2A */ fadds f0, f1, f0
+/* 802A00F8 0029BD58 FC 00 E8 40 */ fcmpo cr0, f0, f29
+/* 802A00FC 0029BD5C 40 80 00 20 */ bge lbl_802A011C
+/* 802A0100 0029BD60 FC 00 00 50 */ fneg f0, f0
+/* 802A0104 0029BD64 FC 00 F0 40 */ fcmpo cr0, f0, f30
+/* 802A0108 0029BD68 40 81 00 28 */ ble lbl_802A0130
+/* 802A010C 0029BD6C FF C0 00 90 */ fmr f30, f0
+/* 802A0110 0029BD70 7F 9B E3 78 */ mr r27, r28
+/* 802A0114 0029BD74 7F BA EB 78 */ mr r26, r29
+/* 802A0118 0029BD78 48 00 00 18 */ b lbl_802A0130
+lbl_802A011C:
+/* 802A011C 0029BD7C FC 00 F0 40 */ fcmpo cr0, f0, f30
+/* 802A0120 0029BD80 40 81 00 10 */ ble lbl_802A0130
+/* 802A0124 0029BD84 FF C0 00 90 */ fmr f30, f0
+/* 802A0128 0029BD88 7F BB EB 78 */ mr r27, r29
+/* 802A012C 0029BD8C 7F 9A E3 78 */ mr r26, r28
+lbl_802A0130:
+/* 802A0130 0029BD90 3B 9C 00 0C */ addi r28, r28, 0xc
+/* 802A0134 0029BD94 7C 1C F0 40 */ cmplw r28, r30
+/* 802A0138 0029BD98 40 81 FF 18 */ ble lbl_802A0050
+lbl_802A013C:
+/* 802A013C 0029BD9C 3B BD 00 0C */ addi r29, r29, 0xc
+/* 802A0140 0029BDA0 7C 1D F8 40 */ cmplw r29, r31
+/* 802A0144 0029BDA4 41 80 FE F8 */ blt lbl_802A003C
+/* 802A0148 0029BDA8 C0 0D 89 50 */ lfs f0, lbl_8063DC10-_SDA_BASE_(r13)
+/* 802A014C 0029BDAC FC 1E 00 00 */ fcmpu cr0, f30, f0
+/* 802A0150 0029BDB0 40 82 00 0C */ bne lbl_802A015C
+/* 802A0154 0029BDB4 38 60 00 00 */ li r3, 0
+/* 802A0158 0029BDB8 48 00 00 38 */ b lbl_802A0190
+lbl_802A015C:
+/* 802A015C 0029BDBC 80 9B 00 00 */ lwz r4, 0(r27)
+/* 802A0160 0029BDC0 38 60 00 02 */ li r3, 2
+/* 802A0164 0029BDC4 80 1B 00 04 */ lwz r0, 4(r27)
+/* 802A0168 0029BDC8 90 99 00 F4 */ stw r4, 0xf4(r25)
+/* 802A016C 0029BDCC 90 19 00 F8 */ stw r0, 0xf8(r25)
+/* 802A0170 0029BDD0 80 1B 00 08 */ lwz r0, 8(r27)
+/* 802A0174 0029BDD4 90 19 00 FC */ stw r0, 0xfc(r25)
+/* 802A0178 0029BDD8 80 9A 00 00 */ lwz r4, 0(r26)
+/* 802A017C 0029BDDC 80 1A 00 04 */ lwz r0, 4(r26)
+/* 802A0180 0029BDE0 90 99 01 00 */ stw r4, 0x100(r25)
+/* 802A0184 0029BDE4 90 19 01 04 */ stw r0, 0x104(r25)
+/* 802A0188 0029BDE8 80 1A 00 08 */ lwz r0, 8(r26)
+/* 802A018C 0029BDEC 90 19 01 08 */ stw r0, 0x108(r25)
+lbl_802A0190:
+/* 802A0190 0029BDF0 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
+/* 802A0194 0029BDF4 CB E1 00 70 */ lfd f31, 0x70(r1)
+/* 802A0198 0029BDF8 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0
+/* 802A019C 0029BDFC CB C1 00 60 */ lfd f30, 0x60(r1)
+/* 802A01A0 0029BE00 E3 A1 00 58 */ psq_l f29, 88(r1), 0, qr0
+/* 802A01A4 0029BE04 CB A1 00 50 */ lfd f29, 0x50(r1)
+/* 802A01A8 0029BE08 E3 81 00 48 */ psq_l f28, 72(r1), 0, qr0
+/* 802A01AC 0029BE0C CB 81 00 40 */ lfd f28, 0x40(r1)
+/* 802A01B0 0029BE10 E3 61 00 38 */ psq_l f27, 56(r1), 0, qr0
+/* 802A01B4 0029BE14 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A01B8 0029BE18 CB 61 00 30 */ lfd f27, 0x30(r1)
+/* 802A01BC 0029BE1C 4B F2 6F B1 */ bl _restgpr_25
+/* 802A01C0 0029BE20 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802A01C4 0029BE24 7C 08 03 A6 */ mtlr r0
+/* 802A01C8 0029BE28 38 21 00 80 */ addi r1, r1, 0x80
+/* 802A01CC 0029BE2C 4E 80 00 20 */ blr
+
+.global select_2obj_continue
+select_2obj_continue:
+/* 802A01D0 0029BE30 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802A01D4 0029BE34 7C 08 02 A6 */ mflr r0
+/* 802A01D8 0029BE38 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802A01DC 0029BE3C DB E1 00 70 */ stfd f31, 0x70(r1)
+/* 802A01E0 0029BE40 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0
+/* 802A01E4 0029BE44 DB C1 00 60 */ stfd f30, 0x60(r1)
+/* 802A01E8 0029BE48 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0
+/* 802A01EC 0029BE4C DB A1 00 50 */ stfd f29, 0x50(r1)
+/* 802A01F0 0029BE50 F3 A1 00 58 */ psq_st f29, 88(r1), 0, qr0
+/* 802A01F4 0029BE54 DB 81 00 40 */ stfd f28, 0x40(r1)
+/* 802A01F8 0029BE58 F3 81 00 48 */ psq_st f28, 72(r1), 0, qr0
+/* 802A01FC 0029BE5C DB 61 00 30 */ stfd f27, 0x30(r1)
+/* 802A0200 0029BE60 F3 61 00 38 */ psq_st f27, 56(r1), 0, qr0
+/* 802A0204 0029BE64 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A0208 0029BE68 4B F2 6F 19 */ bl _savegpr_25
+/* 802A020C 0029BE6C C3 E2 A3 C4 */ lfs f31, lbl_806429C4-_SDA2_BASE_(r2)
+/* 802A0210 0029BE70 7C 7F 1B 78 */ mr r31, r3
+/* 802A0214 0029BE74 C3 A2 A3 A0 */ lfs f29, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A0218 0029BE78 3B 83 00 C4 */ addi r28, r3, 0xc4
+/* 802A021C 0029BE7C C3 C2 A3 B0 */ lfs f30, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A0220 0029BE80 3B C3 00 E8 */ addi r30, r3, 0xe8
+lbl_802A0224:
+/* 802A0224 0029BE84 88 1C 00 08 */ lbz r0, 8(r28)
+/* 802A0228 0029BE88 7C 00 07 75 */ extsb. r0, r0
+/* 802A022C 0029BE8C 40 82 01 38 */ bne lbl_802A0364
+/* 802A0230 0029BE90 3B 7C 00 0C */ addi r27, r28, 0xc
+/* 802A0234 0029BE94 3B BF 00 E8 */ addi r29, r31, 0xe8
+lbl_802A0238:
+/* 802A0238 0029BE98 88 1B 00 08 */ lbz r0, 8(r27)
+/* 802A023C 0029BE9C 7C 00 07 75 */ extsb. r0, r0
+/* 802A0240 0029BEA0 40 82 01 18 */ bne lbl_802A0358
+/* 802A0244 0029BEA4 C0 7B 00 00 */ lfs f3, 0(r27)
+/* 802A0248 0029BEA8 C0 5C 00 00 */ lfs f2, 0(r28)
+/* 802A024C 0029BEAC C0 3B 00 04 */ lfs f1, 4(r27)
+/* 802A0250 0029BEB0 C0 1C 00 04 */ lfs f0, 4(r28)
+/* 802A0254 0029BEB4 EF 83 10 28 */ fsubs f28, f3, f2
+/* 802A0258 0029BEB8 EF 61 00 28 */ fsubs f27, f1, f0
+/* 802A025C 0029BEBC EC 3C 07 32 */ fmuls f1, f28, f28
+/* 802A0260 0029BEC0 EC 1B 06 F2 */ fmuls f0, f27, f27
+/* 802A0264 0029BEC4 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0268 0029BEC8 4B F3 45 CD */ bl sqrt
+/* 802A026C 0029BECC FC 40 08 18 */ frsp f2, f1
+/* 802A0270 0029BED0 C0 3F 05 10 */ lfs f1, 0x510(r31)
+/* 802A0274 0029BED4 C0 1F 05 14 */ lfs f0, 0x514(r31)
+/* 802A0278 0029BED8 EC 9E 10 24 */ fdivs f4, f30, f2
+/* 802A027C 0029BEDC EC 7C 01 32 */ fmuls f3, f28, f4
+/* 802A0280 0029BEE0 EC 5B 01 32 */ fmuls f2, f27, f4
+/* 802A0284 0029BEE4 EC 84 00 72 */ fmuls f4, f4, f1
+/* 802A0288 0029BEE8 D0 61 00 08 */ stfs f3, 8(r1)
+/* 802A028C 0029BEEC FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 802A0290 0029BEF0 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802A0294 0029BEF4 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0298 0029BEF8 41 82 00 C0 */ beq lbl_802A0358
+/* 802A029C 0029BEFC C0 0D 89 48 */ lfs f0, lbl_8063DC08-_SDA_BASE_(r13)
+/* 802A02A0 0029BF00 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 802A02A4 0029BF04 4C 41 13 82 */ cror 2, 1, 2
+/* 802A02A8 0029BF08 41 82 00 B0 */ beq lbl_802A0358
+/* 802A02AC 0029BF0C C0 1F 04 9C */ lfs f0, 0x49c(r31)
+/* 802A02B0 0029BF10 EC 84 00 28 */ fsubs f4, f4, f0
+/* 802A02B4 0029BF14 FC 04 E8 40 */ fcmpo cr0, f4, f29
+/* 802A02B8 0029BF18 40 80 00 10 */ bge lbl_802A02C8
+/* 802A02BC 0029BF1C C0 1F 05 08 */ lfs f0, 0x508(r31)
+/* 802A02C0 0029BF20 EC 84 00 32 */ fmuls f4, f4, f0
+/* 802A02C4 0029BF24 48 00 00 0C */ b lbl_802A02D0
+lbl_802A02C8:
+/* 802A02C8 0029BF28 C0 1F 05 04 */ lfs f0, 0x504(r31)
+/* 802A02CC 0029BF2C EC 84 00 32 */ fmuls f4, f4, f0
+lbl_802A02D0:
+/* 802A02D0 0029BF30 FC 04 F0 40 */ fcmpo cr0, f4, f30
+/* 802A02D4 0029BF34 4C 41 13 82 */ cror 2, 1, 2
+/* 802A02D8 0029BF38 41 82 00 80 */ beq lbl_802A0358
+/* 802A02DC 0029BF3C C0 7F 04 94 */ lfs f3, 0x494(r31)
+/* 802A02E0 0029BF40 C0 41 00 08 */ lfs f2, 8(r1)
+/* 802A02E4 0029BF44 C0 3F 04 98 */ lfs f1, 0x498(r31)
+/* 802A02E8 0029BF48 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 802A02EC 0029BF4C EC 43 00 B2 */ fmuls f2, f3, f2
+/* 802A02F0 0029BF50 EC 01 00 32 */ fmuls f0, f1, f0
+/* 802A02F4 0029BF54 EC 22 00 2A */ fadds f1, f2, f0
+/* 802A02F8 0029BF58 FC 01 E8 40 */ fcmpo cr0, f1, f29
+/* 802A02FC 0029BF5C 40 80 00 10 */ bge lbl_802A030C
+/* 802A0300 0029BF60 FC 20 08 50 */ fneg f1, f1
+/* 802A0304 0029BF64 38 00 00 01 */ li r0, 1
+/* 802A0308 0029BF68 48 00 00 08 */ b lbl_802A0310
+lbl_802A030C:
+/* 802A030C 0029BF6C 38 00 00 00 */ li r0, 0
+lbl_802A0310:
+/* 802A0310 0029BF70 C0 0D 89 54 */ lfs f0, lbl_8063DC14-_SDA_BASE_(r13)
+/* 802A0314 0029BF74 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0318 0029BF78 4C 40 13 82 */ cror 2, 0, 2
+/* 802A031C 0029BF7C 41 82 00 3C */ beq lbl_802A0358
+/* 802A0320 0029BF80 EC 3E 08 28 */ fsubs f1, f30, f1
+/* 802A0324 0029BF84 EC 1E 00 28 */ fsubs f0, f30, f0
+/* 802A0328 0029BF88 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A032C 0029BF8C EC 84 00 2A */ fadds f4, f4, f0
+/* 802A0330 0029BF90 FC 04 F8 40 */ fcmpo cr0, f4, f31
+/* 802A0334 0029BF94 40 80 00 24 */ bge lbl_802A0358
+/* 802A0338 0029BF98 FF E0 20 90 */ fmr f31, f4
+/* 802A033C 0029BF9C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A0340 0029BFA0 41 82 00 10 */ beq lbl_802A0350
+/* 802A0344 0029BFA4 7F 7A DB 78 */ mr r26, r27
+/* 802A0348 0029BFA8 7F 99 E3 78 */ mr r25, r28
+/* 802A034C 0029BFAC 48 00 00 0C */ b lbl_802A0358
+lbl_802A0350:
+/* 802A0350 0029BFB0 7F 9A E3 78 */ mr r26, r28
+/* 802A0354 0029BFB4 7F 79 DB 78 */ mr r25, r27
+lbl_802A0358:
+/* 802A0358 0029BFB8 3B 7B 00 0C */ addi r27, r27, 0xc
+/* 802A035C 0029BFBC 7C 1B E8 40 */ cmplw r27, r29
+/* 802A0360 0029BFC0 40 81 FE D8 */ ble lbl_802A0238
+lbl_802A0364:
+/* 802A0364 0029BFC4 3B 9C 00 0C */ addi r28, r28, 0xc
+/* 802A0368 0029BFC8 7C 1C F0 40 */ cmplw r28, r30
+/* 802A036C 0029BFCC 41 80 FE B8 */ blt lbl_802A0224
+/* 802A0370 0029BFD0 C0 02 A3 C4 */ lfs f0, lbl_806429C4-_SDA2_BASE_(r2)
+/* 802A0374 0029BFD4 FC 00 F8 00 */ fcmpu cr0, f0, f31
+/* 802A0378 0029BFD8 40 82 00 0C */ bne lbl_802A0384
+/* 802A037C 0029BFDC 38 60 00 00 */ li r3, 0
+/* 802A0380 0029BFE0 48 00 00 38 */ b lbl_802A03B8
+lbl_802A0384:
+/* 802A0384 0029BFE4 80 9A 00 00 */ lwz r4, 0(r26)
+/* 802A0388 0029BFE8 38 60 00 02 */ li r3, 2
+/* 802A038C 0029BFEC 80 1A 00 04 */ lwz r0, 4(r26)
+/* 802A0390 0029BFF0 90 9F 00 F4 */ stw r4, 0xf4(r31)
+/* 802A0394 0029BFF4 90 1F 00 F8 */ stw r0, 0xf8(r31)
+/* 802A0398 0029BFF8 80 1A 00 08 */ lwz r0, 8(r26)
+/* 802A039C 0029BFFC 90 1F 00 FC */ stw r0, 0xfc(r31)
+/* 802A03A0 0029C000 80 99 00 00 */ lwz r4, 0(r25)
+/* 802A03A4 0029C004 80 19 00 04 */ lwz r0, 4(r25)
+/* 802A03A8 0029C008 90 9F 01 00 */ stw r4, 0x100(r31)
+/* 802A03AC 0029C00C 90 1F 01 04 */ stw r0, 0x104(r31)
+/* 802A03B0 0029C010 80 19 00 08 */ lwz r0, 8(r25)
+/* 802A03B4 0029C014 90 1F 01 08 */ stw r0, 0x108(r31)
+lbl_802A03B8:
+/* 802A03B8 0029C018 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
+/* 802A03BC 0029C01C CB E1 00 70 */ lfd f31, 0x70(r1)
+/* 802A03C0 0029C020 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0
+/* 802A03C4 0029C024 CB C1 00 60 */ lfd f30, 0x60(r1)
+/* 802A03C8 0029C028 E3 A1 00 58 */ psq_l f29, 88(r1), 0, qr0
+/* 802A03CC 0029C02C CB A1 00 50 */ lfd f29, 0x50(r1)
+/* 802A03D0 0029C030 E3 81 00 48 */ psq_l f28, 72(r1), 0, qr0
+/* 802A03D4 0029C034 CB 81 00 40 */ lfd f28, 0x40(r1)
+/* 802A03D8 0029C038 E3 61 00 38 */ psq_l f27, 56(r1), 0, qr0
+/* 802A03DC 0029C03C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A03E0 0029C040 CB 61 00 30 */ lfd f27, 0x30(r1)
+/* 802A03E4 0029C044 4B F2 6D 89 */ bl _restgpr_25
+/* 802A03E8 0029C048 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802A03EC 0029C04C 7C 08 03 A6 */ mtlr r0
+/* 802A03F0 0029C050 38 21 00 80 */ addi r1, r1, 0x80
+/* 802A03F4 0029C054 4E 80 00 20 */ blr
+
+.global select_1obj_first
+select_1obj_first:
+/* 802A03F8 0029C058 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A03FC 0029C05C 39 03 00 C4 */ addi r8, r3, 0xc4
+/* 802A0400 0029C060 38 03 00 F4 */ addi r0, r3, 0xf4
+/* 802A0404 0029C064 C0 A3 00 B0 */ lfs f5, 0xb0(r3)
+/* 802A0408 0029C068 C0 03 04 B8 */ lfs f0, 0x4b8(r3)
+/* 802A040C 0029C06C C0 63 00 B4 */ lfs f3, 0xb4(r3)
+/* 802A0410 0029C070 C0 23 04 BC */ lfs f1, 0x4bc(r3)
+/* 802A0414 0029C074 EC 85 00 32 */ fmuls f4, f5, f0
+/* 802A0418 0029C078 EC 43 00 32 */ fmuls f2, f3, f0
+/* 802A041C 0029C07C C0 03 04 A0 */ lfs f0, 0x4a0(r3)
+/* 802A0420 0029C080 EC 63 00 72 */ fmuls f3, f3, f1
+/* 802A0424 0029C084 EC 25 00 72 */ fmuls f1, f5, f1
+/* 802A0428 0029C088 EC E4 18 2A */ fadds f7, f4, f3
+/* 802A042C 0029C08C ED 02 08 28 */ fsubs f8, f2, f1
+/* 802A0430 0029C090 EC E7 00 32 */ fmuls f7, f7, f0
+/* 802A0434 0029C094 ED 08 00 32 */ fmuls f8, f8, f0
+lbl_802A0438:
+/* 802A0438 0029C098 88 88 00 08 */ lbz r4, 8(r8)
+/* 802A043C 0029C09C 7C 84 07 75 */ extsb. r4, r4
+/* 802A0440 0029C0A0 40 82 01 54 */ bne lbl_802A0594
+/* 802A0444 0029C0A4 C0 48 00 00 */ lfs f2, 0(r8)
+/* 802A0448 0029C0A8 C0 08 00 04 */ lfs f0, 4(r8)
+/* 802A044C 0029C0AC EC 22 38 28 */ fsubs f1, f2, f7
+/* 802A0450 0029C0B0 C0 63 04 F4 */ lfs f3, 0x4f4(r3)
+/* 802A0454 0029C0B4 EC C0 40 28 */ fsubs f6, f0, f8
+/* 802A0458 0029C0B8 EC A2 38 2A */ fadds f5, f2, f7
+/* 802A045C 0029C0BC EC 80 40 2A */ fadds f4, f0, f8
+/* 802A0460 0029C0C0 D0 21 00 10 */ stfs f1, 0x10(r1)
+/* 802A0464 0029C0C4 FC 01 18 40 */ fcmpo cr0, f1, f3
+/* 802A0468 0029C0C8 D0 C1 00 14 */ stfs f6, 0x14(r1)
+/* 802A046C 0029C0CC D0 A1 00 08 */ stfs f5, 8(r1)
+/* 802A0470 0029C0D0 D0 81 00 0C */ stfs f4, 0xc(r1)
+/* 802A0474 0029C0D4 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0478 0029C0D8 41 82 00 34 */ beq lbl_802A04AC
+/* 802A047C 0029C0DC C0 43 04 FC */ lfs f2, 0x4fc(r3)
+/* 802A0480 0029C0E0 FC 01 10 40 */ fcmpo cr0, f1, f2
+/* 802A0484 0029C0E4 4C 41 13 82 */ cror 2, 1, 2
+/* 802A0488 0029C0E8 41 82 00 24 */ beq lbl_802A04AC
+/* 802A048C 0029C0EC C0 23 04 F8 */ lfs f1, 0x4f8(r3)
+/* 802A0490 0029C0F0 FC 06 08 40 */ fcmpo cr0, f6, f1
+/* 802A0494 0029C0F4 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0498 0029C0F8 41 82 00 14 */ beq lbl_802A04AC
+/* 802A049C 0029C0FC C0 03 05 00 */ lfs f0, 0x500(r3)
+/* 802A04A0 0029C100 FC 06 00 40 */ fcmpo cr0, f6, f0
+/* 802A04A4 0029C104 4C 41 13 82 */ cror 2, 1, 2
+/* 802A04A8 0029C108 40 82 00 7C */ bne lbl_802A0524
+lbl_802A04AC:
+/* 802A04AC 0029C10C C0 21 00 08 */ lfs f1, 8(r1)
+/* 802A04B0 0029C110 C0 03 04 F4 */ lfs f0, 0x4f4(r3)
+/* 802A04B4 0029C114 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A04B8 0029C118 40 81 00 DC */ ble lbl_802A0594
+/* 802A04BC 0029C11C C0 03 04 FC */ lfs f0, 0x4fc(r3)
+/* 802A04C0 0029C120 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A04C4 0029C124 40 80 00 D0 */ bge lbl_802A0594
+/* 802A04C8 0029C128 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 802A04CC 0029C12C C0 03 04 F8 */ lfs f0, 0x4f8(r3)
+/* 802A04D0 0029C130 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A04D4 0029C134 40 81 00 C0 */ ble lbl_802A0594
+/* 802A04D8 0029C138 C0 03 05 00 */ lfs f0, 0x500(r3)
+/* 802A04DC 0029C13C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A04E0 0029C140 40 80 00 B4 */ bge lbl_802A0594
+/* 802A04E4 0029C144 80 A8 00 00 */ lwz r5, 0(r8)
+/* 802A04E8 0029C148 38 80 00 00 */ li r4, 0
+/* 802A04EC 0029C14C 80 E8 00 04 */ lwz r7, 4(r8)
+/* 802A04F0 0029C150 38 00 FF FF */ li r0, -1
+/* 802A04F4 0029C154 80 C1 00 10 */ lwz r6, 0x10(r1)
+/* 802A04F8 0029C158 90 A3 01 00 */ stw r5, 0x100(r3)
+/* 802A04FC 0029C15C 80 A1 00 14 */ lwz r5, 0x14(r1)
+/* 802A0500 0029C160 90 E3 01 04 */ stw r7, 0x104(r3)
+/* 802A0504 0029C164 80 E8 00 08 */ lwz r7, 8(r8)
+/* 802A0508 0029C168 90 E3 01 08 */ stw r7, 0x108(r3)
+/* 802A050C 0029C16C 90 C3 00 F4 */ stw r6, 0xf4(r3)
+/* 802A0510 0029C170 90 A3 00 F8 */ stw r5, 0xf8(r3)
+/* 802A0514 0029C174 98 83 00 FC */ stb r4, 0xfc(r3)
+/* 802A0518 0029C178 98 03 00 FD */ stb r0, 0xfd(r3)
+/* 802A051C 0029C17C 38 60 FF FF */ li r3, -1
+/* 802A0520 0029C180 48 00 00 84 */ b lbl_802A05A4
+lbl_802A0524:
+/* 802A0524 0029C184 FC 05 18 40 */ fcmpo cr0, f5, f3
+/* 802A0528 0029C188 4C 40 13 82 */ cror 2, 0, 2
+/* 802A052C 0029C18C 41 82 00 28 */ beq lbl_802A0554
+/* 802A0530 0029C190 FC 05 10 40 */ fcmpo cr0, f5, f2
+/* 802A0534 0029C194 4C 41 13 82 */ cror 2, 1, 2
+/* 802A0538 0029C198 41 82 00 1C */ beq lbl_802A0554
+/* 802A053C 0029C19C FC 04 08 40 */ fcmpo cr0, f4, f1
+/* 802A0540 0029C1A0 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0544 0029C1A4 41 82 00 10 */ beq lbl_802A0554
+/* 802A0548 0029C1A8 FC 04 00 40 */ fcmpo cr0, f4, f0
+/* 802A054C 0029C1AC 4C 41 13 82 */ cror 2, 1, 2
+/* 802A0550 0029C1B0 40 82 00 44 */ bne lbl_802A0594
+lbl_802A0554:
+/* 802A0554 0029C1B4 80 A8 00 00 */ lwz r5, 0(r8)
+/* 802A0558 0029C1B8 38 80 00 00 */ li r4, 0
+/* 802A055C 0029C1BC 80 E8 00 04 */ lwz r7, 4(r8)
+/* 802A0560 0029C1C0 38 00 FF FF */ li r0, -1
+/* 802A0564 0029C1C4 80 C1 00 08 */ lwz r6, 8(r1)
+/* 802A0568 0029C1C8 90 A3 00 F4 */ stw r5, 0xf4(r3)
+/* 802A056C 0029C1CC 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 802A0570 0029C1D0 90 E3 00 F8 */ stw r7, 0xf8(r3)
+/* 802A0574 0029C1D4 80 E8 00 08 */ lwz r7, 8(r8)
+/* 802A0578 0029C1D8 90 E3 00 FC */ stw r7, 0xfc(r3)
+/* 802A057C 0029C1DC 90 C3 01 00 */ stw r6, 0x100(r3)
+/* 802A0580 0029C1E0 90 A3 01 04 */ stw r5, 0x104(r3)
+/* 802A0584 0029C1E4 98 83 01 08 */ stb r4, 0x108(r3)
+/* 802A0588 0029C1E8 98 03 01 09 */ stb r0, 0x109(r3)
+/* 802A058C 0029C1EC 38 60 FF FF */ li r3, -1
+/* 802A0590 0029C1F0 48 00 00 14 */ b lbl_802A05A4
+lbl_802A0594:
+/* 802A0594 0029C1F4 39 08 00 0C */ addi r8, r8, 0xc
+/* 802A0598 0029C1F8 7C 08 00 40 */ cmplw r8, r0
+/* 802A059C 0029C1FC 41 80 FE 9C */ blt lbl_802A0438
+/* 802A05A0 0029C200 38 60 00 00 */ li r3, 0
+lbl_802A05A4:
+/* 802A05A4 0029C204 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A05A8 0029C208 4E 80 00 20 */ blr
+
+.global select_1obj_continue
+select_1obj_continue:
+/* 802A05AC 0029C20C C0 0D 89 60 */ lfs f0, lbl_8063DC20-_SDA_BASE_(r13)
+/* 802A05B0 0029C210 38 C3 00 F4 */ addi r6, r3, 0xf4
+/* 802A05B4 0029C214 38 03 01 0C */ addi r0, r3, 0x10c
+/* 802A05B8 0029C218 EC 80 00 32 */ fmuls f4, f0, f0
+lbl_802A05BC:
+/* 802A05BC 0029C21C 88 86 00 08 */ lbz r4, 8(r6)
+/* 802A05C0 0029C220 7C 84 07 75 */ extsb. r4, r4
+/* 802A05C4 0029C224 40 82 00 68 */ bne lbl_802A062C
+/* 802A05C8 0029C228 88 86 00 09 */ lbz r4, 9(r6)
+/* 802A05CC 0029C22C 7C 84 07 75 */ extsb. r4, r4
+/* 802A05D0 0029C230 40 82 00 5C */ bne lbl_802A062C
+/* 802A05D4 0029C234 38 E3 00 C4 */ addi r7, r3, 0xc4
+/* 802A05D8 0029C238 38 83 00 F4 */ addi r4, r3, 0xf4
+lbl_802A05DC:
+/* 802A05DC 0029C23C 88 A7 00 08 */ lbz r5, 8(r7)
+/* 802A05E0 0029C240 7C A5 07 75 */ extsb. r5, r5
+/* 802A05E4 0029C244 40 82 00 3C */ bne lbl_802A0620
+/* 802A05E8 0029C248 C0 66 00 00 */ lfs f3, 0(r6)
+/* 802A05EC 0029C24C C0 47 00 00 */ lfs f2, 0(r7)
+/* 802A05F0 0029C250 C0 26 00 04 */ lfs f1, 4(r6)
+/* 802A05F4 0029C254 C0 07 00 04 */ lfs f0, 4(r7)
+/* 802A05F8 0029C258 EC 43 10 28 */ fsubs f2, f3, f2
+/* 802A05FC 0029C25C EC 01 00 28 */ fsubs f0, f1, f0
+/* 802A0600 0029C260 EC 22 00 B2 */ fmuls f1, f2, f2
+/* 802A0604 0029C264 EC 00 00 32 */ fmuls f0, f0, f0
+/* 802A0608 0029C268 EC 01 00 2A */ fadds f0, f1, f0
+/* 802A060C 0029C26C FC 00 20 40 */ fcmpo cr0, f0, f4
+/* 802A0610 0029C270 40 80 00 10 */ bge lbl_802A0620
+/* 802A0614 0029C274 FC 80 00 90 */ fmr f4, f0
+/* 802A0618 0029C278 7C C8 33 78 */ mr r8, r6
+/* 802A061C 0029C27C 7C E9 3B 78 */ mr r9, r7
+lbl_802A0620:
+/* 802A0620 0029C280 38 E7 00 0C */ addi r7, r7, 0xc
+/* 802A0624 0029C284 7C 07 20 40 */ cmplw r7, r4
+/* 802A0628 0029C288 41 80 FF B4 */ blt lbl_802A05DC
+lbl_802A062C:
+/* 802A062C 0029C28C 38 C6 00 0C */ addi r6, r6, 0xc
+/* 802A0630 0029C290 7C 06 00 40 */ cmplw r6, r0
+/* 802A0634 0029C294 41 80 FF 88 */ blt lbl_802A05BC
+/* 802A0638 0029C298 C0 0D 89 60 */ lfs f0, lbl_8063DC20-_SDA_BASE_(r13)
+/* 802A063C 0029C29C EC 00 00 32 */ fmuls f0, f0, f0
+/* 802A0640 0029C2A0 FC 04 00 00 */ fcmpu cr0, f4, f0
+/* 802A0644 0029C2A4 40 82 00 0C */ bne lbl_802A0650
+/* 802A0648 0029C2A8 38 60 00 00 */ li r3, 0
+/* 802A064C 0029C2AC 4E 80 00 20 */ blr
+lbl_802A0650:
+/* 802A0650 0029C2B0 80 A9 00 00 */ lwz r5, 0(r9)
+/* 802A0654 0029C2B4 38 03 00 F4 */ addi r0, r3, 0xf4
+/* 802A0658 0029C2B8 80 89 00 04 */ lwz r4, 4(r9)
+/* 802A065C 0029C2BC 7C 08 00 40 */ cmplw r8, r0
+/* 802A0660 0029C2C0 90 A8 00 00 */ stw r5, 0(r8)
+/* 802A0664 0029C2C4 90 88 00 04 */ stw r4, 4(r8)
+/* 802A0668 0029C2C8 80 09 00 08 */ lwz r0, 8(r9)
+/* 802A066C 0029C2CC 90 08 00 08 */ stw r0, 8(r8)
+/* 802A0670 0029C2D0 C0 A3 00 B0 */ lfs f5, 0xb0(r3)
+/* 802A0674 0029C2D4 C0 03 04 B8 */ lfs f0, 0x4b8(r3)
+/* 802A0678 0029C2D8 C0 63 00 B4 */ lfs f3, 0xb4(r3)
+/* 802A067C 0029C2DC C0 23 04 BC */ lfs f1, 0x4bc(r3)
+/* 802A0680 0029C2E0 EC 85 00 32 */ fmuls f4, f5, f0
+/* 802A0684 0029C2E4 EC 43 00 32 */ fmuls f2, f3, f0
+/* 802A0688 0029C2E8 C0 03 04 90 */ lfs f0, 0x490(r3)
+/* 802A068C 0029C2EC EC 63 00 72 */ fmuls f3, f3, f1
+/* 802A0690 0029C2F0 EC 25 00 72 */ fmuls f1, f5, f1
+/* 802A0694 0029C2F4 EC 64 18 2A */ fadds f3, f4, f3
+/* 802A0698 0029C2F8 EC 22 08 28 */ fsubs f1, f2, f1
+/* 802A069C 0029C2FC EC 40 00 F2 */ fmuls f2, f0, f3
+/* 802A06A0 0029C300 D0 63 04 94 */ stfs f3, 0x494(r3)
+/* 802A06A4 0029C304 EC 60 00 72 */ fmuls f3, f0, f1
+/* 802A06A8 0029C308 D0 23 04 98 */ stfs f1, 0x498(r3)
+/* 802A06AC 0029C30C 40 82 00 30 */ bne lbl_802A06DC
+/* 802A06B0 0029C310 C0 08 00 00 */ lfs f0, 0(r8)
+/* 802A06B4 0029C314 38 80 00 00 */ li r4, 0
+/* 802A06B8 0029C318 38 00 FF FF */ li r0, -1
+/* 802A06BC 0029C31C EC 00 10 2A */ fadds f0, f0, f2
+/* 802A06C0 0029C320 D0 03 01 00 */ stfs f0, 0x100(r3)
+/* 802A06C4 0029C324 C0 08 00 04 */ lfs f0, 4(r8)
+/* 802A06C8 0029C328 EC 00 18 2A */ fadds f0, f0, f3
+/* 802A06CC 0029C32C 98 83 01 08 */ stb r4, 0x108(r3)
+/* 802A06D0 0029C330 98 03 01 09 */ stb r0, 0x109(r3)
+/* 802A06D4 0029C334 D0 03 01 04 */ stfs f0, 0x104(r3)
+/* 802A06D8 0029C338 48 00 00 2C */ b lbl_802A0704
+lbl_802A06DC:
+/* 802A06DC 0029C33C C0 08 00 00 */ lfs f0, 0(r8)
+/* 802A06E0 0029C340 38 80 00 00 */ li r4, 0
+/* 802A06E4 0029C344 38 00 FF FF */ li r0, -1
+/* 802A06E8 0029C348 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A06EC 0029C34C D0 03 00 F4 */ stfs f0, 0xf4(r3)
+/* 802A06F0 0029C350 C0 08 00 04 */ lfs f0, 4(r8)
+/* 802A06F4 0029C354 EC 00 18 28 */ fsubs f0, f0, f3
+/* 802A06F8 0029C358 98 83 00 FC */ stb r4, 0xfc(r3)
+/* 802A06FC 0029C35C 98 03 00 FD */ stb r0, 0xfd(r3)
+/* 802A0700 0029C360 D0 03 00 F8 */ stfs f0, 0xf8(r3)
+lbl_802A0704:
+/* 802A0704 0029C364 88 03 00 5E */ lbz r0, 0x5e(r3)
+/* 802A0708 0029C368 7C 00 07 75 */ extsb. r0, r0
+/* 802A070C 0029C36C 40 80 00 0C */ bge lbl_802A0718
+/* 802A0710 0029C370 38 60 FF FF */ li r3, -1
+/* 802A0714 0029C374 4E 80 00 20 */ blr
+lbl_802A0718:
+/* 802A0718 0029C378 38 60 00 01 */ li r3, 1
+/* 802A071C 0029C37C 4E 80 00 20 */ blr
+
+.global calc_dpd_variable
+calc_dpd_variable:
+/* 802A0720 0029C380 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A0724 0029C384 7C 08 02 A6 */ mflr r0
+/* 802A0728 0029C388 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A072C 0029C38C 7C 80 07 75 */ extsb. r0, r4
+/* 802A0730 0029C390 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A0734 0029C394 7C 9F 23 78 */ mr r31, r4
+/* 802A0738 0029C398 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A073C 0029C39C 7C 7E 1B 78 */ mr r30, r3
+/* 802A0740 0029C3A0 40 82 00 10 */ bne lbl_802A0750
+/* 802A0744 0029C3A4 38 00 00 00 */ li r0, 0
+/* 802A0748 0029C3A8 98 03 00 5E */ stb r0, 0x5e(r3)
+/* 802A074C 0029C3AC 48 00 03 A4 */ b lbl_802A0AF0
+lbl_802A0750:
+/* 802A0750 0029C3B0 C0 83 00 B0 */ lfs f4, 0xb0(r3)
+/* 802A0754 0029C3B4 C0 23 04 94 */ lfs f1, 0x494(r3)
+/* 802A0758 0029C3B8 C0 43 00 B4 */ lfs f2, 0xb4(r3)
+/* 802A075C 0029C3BC EC 64 00 72 */ fmuls f3, f4, f1
+/* 802A0760 0029C3C0 C0 03 04 98 */ lfs f0, 0x498(r3)
+/* 802A0764 0029C3C4 EC 22 00 72 */ fmuls f1, f2, f1
+/* 802A0768 0029C3C8 88 03 00 5E */ lbz r0, 0x5e(r3)
+/* 802A076C 0029C3CC EC 42 00 32 */ fmuls f2, f2, f0
+/* 802A0770 0029C3D0 EC 04 00 32 */ fmuls f0, f4, f0
+/* 802A0774 0029C3D4 7C 00 07 75 */ extsb. r0, r0
+/* 802A0778 0029C3D8 EC 63 10 2A */ fadds f3, f3, f2
+/* 802A077C 0029C3DC EC 41 00 28 */ fsubs f2, f1, f0
+/* 802A0780 0029C3E0 D0 61 00 10 */ stfs f3, 0x10(r1)
+/* 802A0784 0029C3E4 D0 41 00 14 */ stfs f2, 0x14(r1)
+/* 802A0788 0029C3E8 40 82 00 30 */ bne lbl_802A07B8
+/* 802A078C 0029C3EC 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 802A0790 0029C3F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A0794 0029C3F4 90 83 00 34 */ stw r4, 0x34(r3)
+/* 802A0798 0029C3F8 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A079C 0029C3FC 90 03 00 38 */ stw r0, 0x38(r3)
+/* 802A07A0 0029C400 80 8D AD D8 */ lwz r4, lbl_80640098-_SDA_BASE_(r13)
+/* 802A07A4 0029C404 80 0D AD DC */ lwz r0, lbl_8064009C-_SDA_BASE_(r13)
+/* 802A07A8 0029C408 90 83 00 3C */ stw r4, 0x3c(r3)
+/* 802A07AC 0029C40C 90 03 00 40 */ stw r0, 0x40(r3)
+/* 802A07B0 0029C410 D0 03 00 44 */ stfs f0, 0x44(r3)
+/* 802A07B4 0029C414 48 00 00 F0 */ b lbl_802A08A4
+lbl_802A07B8:
+/* 802A07B8 0029C418 C0 23 00 34 */ lfs f1, 0x34(r3)
+/* 802A07BC 0029C41C C0 03 00 38 */ lfs f0, 0x38(r3)
+/* 802A07C0 0029C420 EC 63 08 28 */ fsubs f3, f3, f1
+/* 802A07C4 0029C424 EC 42 00 28 */ fsubs f2, f2, f0
+/* 802A07C8 0029C428 EC 23 00 F2 */ fmuls f1, f3, f3
+/* 802A07CC 0029C42C D0 61 00 08 */ stfs f3, 8(r1)
+/* 802A07D0 0029C430 EC 02 00 B2 */ fmuls f0, f2, f2
+/* 802A07D4 0029C434 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802A07D8 0029C438 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A07DC 0029C43C 4B F3 40 59 */ bl sqrt
+/* 802A07E0 0029C440 FC 20 08 18 */ frsp f1, f1
+/* 802A07E4 0029C444 C0 1E 00 8C */ lfs f0, 0x8c(r30)
+/* 802A07E8 0029C448 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A07EC 0029C44C 4C 41 13 82 */ cror 2, 1, 2
+/* 802A07F0 0029C450 40 82 00 0C */ bne lbl_802A07FC
+/* 802A07F4 0029C454 C0 82 A3 B0 */ lfs f4, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A07F8 0029C458 48 00 00 10 */ b lbl_802A0808
+lbl_802A07FC:
+/* 802A07FC 0029C45C EC 81 00 24 */ fdivs f4, f1, f0
+/* 802A0800 0029C460 EC 84 01 32 */ fmuls f4, f4, f4
+/* 802A0804 0029C464 EC 84 01 32 */ fmuls f4, f4, f4
+lbl_802A0808:
+/* 802A0808 0029C468 C0 1E 00 90 */ lfs f0, 0x90(r30)
+/* 802A080C 0029C46C C0 61 00 08 */ lfs f3, 8(r1)
+/* 802A0810 0029C470 EC 84 00 32 */ fmuls f4, f4, f0
+/* 802A0814 0029C474 C0 21 00 0C */ lfs f1, 0xc(r1)
+/* 802A0818 0029C478 C0 5E 00 34 */ lfs f2, 0x34(r30)
+/* 802A081C 0029C47C C0 1E 00 38 */ lfs f0, 0x38(r30)
+/* 802A0820 0029C480 EC 64 00 F2 */ fmuls f3, f4, f3
+/* 802A0824 0029C484 EC 24 00 72 */ fmuls f1, f4, f1
+/* 802A0828 0029C488 EC 62 18 2A */ fadds f3, f2, f3
+/* 802A082C 0029C48C EC 40 08 2A */ fadds f2, f0, f1
+/* 802A0830 0029C490 EC 23 00 F2 */ fmuls f1, f3, f3
+/* 802A0834 0029C494 D0 61 00 08 */ stfs f3, 8(r1)
+/* 802A0838 0029C498 EC 02 00 B2 */ fmuls f0, f2, f2
+/* 802A083C 0029C49C D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802A0840 0029C4A0 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0844 0029C4A4 4B F3 3F F1 */ bl sqrt
+/* 802A0848 0029C4A8 FC 80 08 18 */ frsp f4, f1
+/* 802A084C 0029C4AC C0 01 00 08 */ lfs f0, 8(r1)
+/* 802A0850 0029C4B0 C0 41 00 0C */ lfs f2, 0xc(r1)
+/* 802A0854 0029C4B4 C0 3E 00 34 */ lfs f1, 0x34(r30)
+/* 802A0858 0029C4B8 EC 60 20 24 */ fdivs f3, f0, f4
+/* 802A085C 0029C4BC C0 1E 00 38 */ lfs f0, 0x38(r30)
+/* 802A0860 0029C4C0 EC 42 20 24 */ fdivs f2, f2, f4
+/* 802A0864 0029C4C4 D0 61 00 08 */ stfs f3, 8(r1)
+/* 802A0868 0029C4C8 EC 63 08 28 */ fsubs f3, f3, f1
+/* 802A086C 0029C4CC D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802A0870 0029C4D0 EC 42 00 28 */ fsubs f2, f2, f0
+/* 802A0874 0029C4D4 EC 23 00 F2 */ fmuls f1, f3, f3
+/* 802A0878 0029C4D8 D0 7E 00 3C */ stfs f3, 0x3c(r30)
+/* 802A087C 0029C4DC EC 02 00 B2 */ fmuls f0, f2, f2
+/* 802A0880 0029C4E0 D0 5E 00 40 */ stfs f2, 0x40(r30)
+/* 802A0884 0029C4E4 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0888 0029C4E8 4B F3 3F AD */ bl sqrt
+/* 802A088C 0029C4EC FC 00 08 18 */ frsp f0, f1
+/* 802A0890 0029C4F0 80 61 00 08 */ lwz r3, 8(r1)
+/* 802A0894 0029C4F4 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 802A0898 0029C4F8 90 7E 00 34 */ stw r3, 0x34(r30)
+/* 802A089C 0029C4FC D0 1E 00 44 */ stfs f0, 0x44(r30)
+/* 802A08A0 0029C500 90 1E 00 38 */ stw r0, 0x38(r30)
+lbl_802A08A4:
+/* 802A08A4 0029C504 C0 3E 05 10 */ lfs f1, 0x510(r30)
+/* 802A08A8 0029C508 C0 1E 04 90 */ lfs f0, 0x490(r30)
+/* 802A08AC 0029C50C 88 1E 00 5E */ lbz r0, 0x5e(r30)
+/* 802A08B0 0029C510 EC 41 00 24 */ fdivs f2, f1, f0
+/* 802A08B4 0029C514 7C 00 07 75 */ extsb. r0, r0
+/* 802A08B8 0029C518 40 82 00 18 */ bne lbl_802A08D0
+/* 802A08BC 0029C51C C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A08C0 0029C520 D0 5E 00 48 */ stfs f2, 0x48(r30)
+/* 802A08C4 0029C524 D0 1E 00 4C */ stfs f0, 0x4c(r30)
+/* 802A08C8 0029C528 D0 1E 00 50 */ stfs f0, 0x50(r30)
+/* 802A08CC 0029C52C 48 00 00 84 */ b lbl_802A0950
+lbl_802A08D0:
+/* 802A08D0 0029C530 C0 3E 00 48 */ lfs f1, 0x48(r30)
+/* 802A08D4 0029C534 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A08D8 0029C538 EC 62 08 28 */ fsubs f3, f2, f1
+/* 802A08DC 0029C53C FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 802A08E0 0029C540 40 80 00 0C */ bge lbl_802A08EC
+/* 802A08E4 0029C544 FC 40 18 50 */ fneg f2, f3
+/* 802A08E8 0029C548 48 00 00 08 */ b lbl_802A08F0
+lbl_802A08EC:
+/* 802A08EC 0029C54C FC 40 18 90 */ fmr f2, f3
+lbl_802A08F0:
+/* 802A08F0 0029C550 C0 1E 00 94 */ lfs f0, 0x94(r30)
+/* 802A08F4 0029C554 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802A08F8 0029C558 4C 41 13 82 */ cror 2, 1, 2
+/* 802A08FC 0029C55C 40 82 00 0C */ bne lbl_802A0908
+/* 802A0900 0029C560 C0 42 A3 B0 */ lfs f2, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A0904 0029C564 48 00 00 10 */ b lbl_802A0914
+lbl_802A0908:
+/* 802A0908 0029C568 EC 42 00 24 */ fdivs f2, f2, f0
+/* 802A090C 0029C56C EC 42 00 B2 */ fmuls f2, f2, f2
+/* 802A0910 0029C570 EC 42 00 B2 */ fmuls f2, f2, f2
+lbl_802A0914:
+/* 802A0914 0029C574 C0 3E 00 98 */ lfs f1, 0x98(r30)
+/* 802A0918 0029C578 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A091C 0029C57C EC 42 00 72 */ fmuls f2, f2, f1
+/* 802A0920 0029C580 EC 22 00 F2 */ fmuls f1, f2, f3
+/* 802A0924 0029C584 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0928 0029C588 D0 3E 00 4C */ stfs f1, 0x4c(r30)
+/* 802A092C 0029C58C 40 80 00 10 */ bge lbl_802A093C
+/* 802A0930 0029C590 FC 00 08 50 */ fneg f0, f1
+/* 802A0934 0029C594 D0 1E 00 50 */ stfs f0, 0x50(r30)
+/* 802A0938 0029C598 48 00 00 08 */ b lbl_802A0940
+lbl_802A093C:
+/* 802A093C 0029C59C D0 3E 00 50 */ stfs f1, 0x50(r30)
+lbl_802A0940:
+/* 802A0940 0029C5A0 C0 3E 00 48 */ lfs f1, 0x48(r30)
+/* 802A0944 0029C5A4 C0 1E 00 4C */ lfs f0, 0x4c(r30)
+/* 802A0948 0029C5A8 EC 01 00 2A */ fadds f0, f1, f0
+/* 802A094C 0029C5AC D0 1E 00 48 */ stfs f0, 0x48(r30)
+lbl_802A0950:
+/* 802A0950 0029C5B0 C0 5E 04 98 */ lfs f2, 0x498(r30)
+/* 802A0954 0029C5B4 C0 1E 00 B4 */ lfs f0, 0xb4(r30)
+/* 802A0958 0029C5B8 FC 20 10 50 */ fneg f1, f2
+/* 802A095C 0029C5BC 88 1E 00 5E */ lbz r0, 0x5e(r30)
+/* 802A0960 0029C5C0 C0 BE 04 94 */ lfs f5, 0x494(r30)
+/* 802A0964 0029C5C4 EC 62 00 32 */ fmuls f3, f2, f0
+/* 802A0968 0029C5C8 C0 9E 00 B0 */ lfs f4, 0xb0(r30)
+/* 802A096C 0029C5CC 7C 00 07 75 */ extsb. r0, r0
+/* 802A0970 0029C5D0 EC 05 00 32 */ fmuls f0, f5, f0
+/* 802A0974 0029C5D4 C0 FE 00 F4 */ lfs f7, 0xf4(r30)
+/* 802A0978 0029C5D8 EC 41 01 32 */ fmuls f2, f1, f4
+/* 802A097C 0029C5DC C0 DE 01 00 */ lfs f6, 0x100(r30)
+/* 802A0980 0029C5E0 EC A5 01 32 */ fmuls f5, f5, f4
+/* 802A0984 0029C5E4 C0 9E 00 F8 */ lfs f4, 0xf8(r30)
+/* 802A0988 0029C5E8 C0 3E 01 04 */ lfs f1, 0x104(r30)
+/* 802A098C 0029C5EC EC E7 30 2A */ fadds f7, f7, f6
+/* 802A0990 0029C5F0 C1 02 A3 A4 */ lfs f8, lbl_806429A4-_SDA2_BASE_(r2)
+/* 802A0994 0029C5F4 EC 65 18 2A */ fadds f3, f5, f3
+/* 802A0998 0029C5F8 EC C4 08 2A */ fadds f6, f4, f1
+/* 802A099C 0029C5FC C0 9E 00 AC */ lfs f4, 0xac(r30)
+/* 802A09A0 0029C600 EC E8 01 F2 */ fmuls f7, f8, f7
+/* 802A09A4 0029C604 EC 42 00 2A */ fadds f2, f2, f0
+/* 802A09A8 0029C608 C0 3E 00 A8 */ lfs f1, 0xa8(r30)
+/* 802A09AC 0029C60C EC A8 01 B2 */ fmuls f5, f8, f6
+/* 802A09B0 0029C610 ED 23 01 F2 */ fmuls f9, f3, f7
+/* 802A09B4 0029C614 C0 DE 00 B8 */ lfs f6, 0xb8(r30)
+/* 802A09B8 0029C618 EC E2 01 F2 */ fmuls f7, f2, f7
+/* 802A09BC 0029C61C EC 03 01 72 */ fmuls f0, f3, f5
+/* 802A09C0 0029C620 C0 7E 00 BC */ lfs f3, 0xbc(r30)
+/* 802A09C4 0029C624 ED 02 01 72 */ fmuls f8, f2, f5
+/* 802A09C8 0029C628 C0 BE 00 C0 */ lfs f5, 0xc0(r30)
+/* 802A09CC 0029C62C FC 40 20 50 */ fneg f2, f4
+/* 802A09D0 0029C630 EC E7 00 2A */ fadds f7, f7, f0
+/* 802A09D4 0029C634 ED 09 40 28 */ fsubs f8, f9, f8
+/* 802A09D8 0029C638 FC 00 08 50 */ fneg f0, f1
+/* 802A09DC 0029C63C EC 63 38 28 */ fsubs f3, f3, f7
+/* 802A09E0 0029C640 EC C6 40 28 */ fsubs f6, f6, f8
+/* 802A09E4 0029C644 EC C5 01 B2 */ fmuls f6, f5, f6
+/* 802A09E8 0029C648 EC A5 00 F2 */ fmuls f5, f5, f3
+/* 802A09EC 0029C64C EC 62 01 B2 */ fmuls f3, f2, f6
+/* 802A09F0 0029C650 D0 C1 00 08 */ stfs f6, 8(r1)
+/* 802A09F4 0029C654 EC 41 01 72 */ fmuls f2, f1, f5
+/* 802A09F8 0029C658 EC 20 01 B2 */ fmuls f1, f0, f6
+/* 802A09FC 0029C65C D0 A1 00 0C */ stfs f5, 0xc(r1)
+/* 802A0A00 0029C660 EC 04 01 72 */ fmuls f0, f4, f5
+/* 802A0A04 0029C664 EC 63 10 2A */ fadds f3, f3, f2
+/* 802A0A08 0029C668 EC 41 00 28 */ fsubs f2, f1, f0
+/* 802A0A0C 0029C66C D0 61 00 10 */ stfs f3, 0x10(r1)
+/* 802A0A10 0029C670 D0 41 00 14 */ stfs f2, 0x14(r1)
+/* 802A0A14 0029C674 40 82 00 30 */ bne lbl_802A0A44
+/* 802A0A18 0029C678 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 802A0A1C 0029C67C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A0A20 0029C680 90 7E 00 20 */ stw r3, 0x20(r30)
+/* 802A0A24 0029C684 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A0A28 0029C688 90 1E 00 24 */ stw r0, 0x24(r30)
+/* 802A0A2C 0029C68C 80 6D AD D8 */ lwz r3, lbl_80640098-_SDA_BASE_(r13)
+/* 802A0A30 0029C690 80 0D AD DC */ lwz r0, lbl_8064009C-_SDA_BASE_(r13)
+/* 802A0A34 0029C694 90 7E 00 28 */ stw r3, 0x28(r30)
+/* 802A0A38 0029C698 90 1E 00 2C */ stw r0, 0x2c(r30)
+/* 802A0A3C 0029C69C D0 1E 00 30 */ stfs f0, 0x30(r30)
+/* 802A0A40 0029C6A0 48 00 00 AC */ b lbl_802A0AEC
+lbl_802A0A44:
+/* 802A0A44 0029C6A4 C0 3E 00 20 */ lfs f1, 0x20(r30)
+/* 802A0A48 0029C6A8 C0 1E 00 24 */ lfs f0, 0x24(r30)
+/* 802A0A4C 0029C6AC EC 63 08 28 */ fsubs f3, f3, f1
+/* 802A0A50 0029C6B0 EC 42 00 28 */ fsubs f2, f2, f0
+/* 802A0A54 0029C6B4 EC 23 00 F2 */ fmuls f1, f3, f3
+/* 802A0A58 0029C6B8 D0 61 00 08 */ stfs f3, 8(r1)
+/* 802A0A5C 0029C6BC EC 02 00 B2 */ fmuls f0, f2, f2
+/* 802A0A60 0029C6C0 D0 41 00 0C */ stfs f2, 0xc(r1)
+/* 802A0A64 0029C6C4 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0A68 0029C6C8 4B F3 3D CD */ bl sqrt
+/* 802A0A6C 0029C6CC FC 20 08 18 */ frsp f1, f1
+/* 802A0A70 0029C6D0 C0 1E 00 84 */ lfs f0, 0x84(r30)
+/* 802A0A74 0029C6D4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0A78 0029C6D8 4C 41 13 82 */ cror 2, 1, 2
+/* 802A0A7C 0029C6DC 40 82 00 0C */ bne lbl_802A0A88
+/* 802A0A80 0029C6E0 C0 42 A3 B0 */ lfs f2, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A0A84 0029C6E4 48 00 00 10 */ b lbl_802A0A94
+lbl_802A0A88:
+/* 802A0A88 0029C6E8 EC 41 00 24 */ fdivs f2, f1, f0
+/* 802A0A8C 0029C6EC EC 42 00 B2 */ fmuls f2, f2, f2
+/* 802A0A90 0029C6F0 EC 42 00 B2 */ fmuls f2, f2, f2
+lbl_802A0A94:
+/* 802A0A94 0029C6F4 C0 1E 00 88 */ lfs f0, 0x88(r30)
+/* 802A0A98 0029C6F8 C0 21 00 08 */ lfs f1, 8(r1)
+/* 802A0A9C 0029C6FC EC 42 00 32 */ fmuls f2, f2, f0
+/* 802A0AA0 0029C700 C0 01 00 0C */ lfs f0, 0xc(r1)
+/* 802A0AA4 0029C704 EC 62 00 72 */ fmuls f3, f2, f1
+/* 802A0AA8 0029C708 EC 42 00 32 */ fmuls f2, f2, f0
+/* 802A0AAC 0029C70C EC 23 00 F2 */ fmuls f1, f3, f3
+/* 802A0AB0 0029C710 D0 7E 00 28 */ stfs f3, 0x28(r30)
+/* 802A0AB4 0029C714 EC 02 00 B2 */ fmuls f0, f2, f2
+/* 802A0AB8 0029C718 D0 5E 00 2C */ stfs f2, 0x2c(r30)
+/* 802A0ABC 0029C71C EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0AC0 0029C720 4B F3 3D 75 */ bl sqrt
+/* 802A0AC4 0029C724 FC 80 08 18 */ frsp f4, f1
+/* 802A0AC8 0029C728 C0 7E 00 20 */ lfs f3, 0x20(r30)
+/* 802A0ACC 0029C72C C0 5E 00 28 */ lfs f2, 0x28(r30)
+/* 802A0AD0 0029C730 C0 3E 00 24 */ lfs f1, 0x24(r30)
+/* 802A0AD4 0029C734 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 802A0AD8 0029C738 EC 43 10 2A */ fadds f2, f3, f2
+/* 802A0ADC 0029C73C D0 9E 00 30 */ stfs f4, 0x30(r30)
+/* 802A0AE0 0029C740 EC 01 00 2A */ fadds f0, f1, f0
+/* 802A0AE4 0029C744 D0 5E 00 20 */ stfs f2, 0x20(r30)
+/* 802A0AE8 0029C748 D0 1E 00 24 */ stfs f0, 0x24(r30)
+lbl_802A0AEC:
+/* 802A0AEC 0029C74C 9B FE 00 5E */ stb r31, 0x5e(r30)
+lbl_802A0AF0:
+/* 802A0AF0 0029C750 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A0AF4 0029C754 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A0AF8 0029C758 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A0AFC 0029C75C 7C 08 03 A6 */ mtlr r0
+/* 802A0B00 0029C760 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A0B04 0029C764 4E 80 00 20 */ blr
+
+.global read_kpad_dpd
+read_kpad_dpd:
+/* 802A0B08 0029C768 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802A0B0C 0029C76C 7C 08 02 A6 */ mflr r0
+/* 802A0B10 0029C770 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802A0B14 0029C774 DB E1 00 30 */ stfd f31, 0x30(r1)
+/* 802A0B18 0029C778 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
+/* 802A0B1C 0029C77C DB C1 00 20 */ stfd f30, 0x20(r1)
+/* 802A0B20 0029C780 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0
+/* 802A0B24 0029C784 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A0B28 0029C788 7C 7F 1B 78 */ mr r31, r3
+/* 802A0B2C 0029C78C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A0B30 0029C790 88 04 00 36 */ lbz r0, 0x36(r4)
+/* 802A0B34 0029C794 28 00 00 02 */ cmplwi r0, 2
+/* 802A0B38 0029C798 41 82 00 14 */ beq lbl_802A0B4C
+/* 802A0B3C 0029C79C 28 00 00 05 */ cmplwi r0, 5
+/* 802A0B40 0029C7A0 41 82 00 0C */ beq lbl_802A0B4C
+/* 802A0B44 0029C7A4 28 00 00 08 */ cmplwi r0, 8
+/* 802A0B48 0029C7A8 40 82 00 A4 */ bne lbl_802A0BEC
+lbl_802A0B4C:
+/* 802A0B4C 0029C7AC C8 82 A3 C8 */ lfd f4, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A0B50 0029C7B0 39 04 00 20 */ addi r8, r4, 0x20
+/* 802A0B54 0029C7B4 C0 62 A3 D0 */ lfs f3, lbl_806429D0-_SDA2_BASE_(r2)
+/* 802A0B58 0029C7B8 39 23 00 E8 */ addi r9, r3, 0xe8
+/* 802A0B5C 0029C7BC C0 42 A3 D4 */ lfs f2, lbl_806429D4-_SDA2_BASE_(r2)
+/* 802A0B60 0029C7C0 38 03 00 C4 */ addi r0, r3, 0xc4
+/* 802A0B64 0029C7C4 C0 22 A3 D8 */ lfs f1, lbl_806429D8-_SDA2_BASE_(r2)
+/* 802A0B68 0029C7C8 38 80 FF FF */ li r4, -1
+/* 802A0B6C 0029C7CC 3C E0 43 30 */ lis r7, 0x4330
+/* 802A0B70 0029C7D0 38 A0 00 00 */ li r5, 0
+lbl_802A0B74:
+/* 802A0B74 0029C7D4 A0 C8 00 04 */ lhz r6, 4(r8)
+/* 802A0B78 0029C7D8 2C 06 00 00 */ cmpwi r6, 0
+/* 802A0B7C 0029C7DC 41 82 00 58 */ beq lbl_802A0BD4
+/* 802A0B80 0029C7E0 A8 C8 00 00 */ lha r6, 0(r8)
+/* 802A0B84 0029C7E4 90 E1 00 08 */ stw r7, 8(r1)
+/* 802A0B88 0029C7E8 6C C6 80 00 */ xoris r6, r6, 0x8000
+/* 802A0B8C 0029C7EC 90 C1 00 0C */ stw r6, 0xc(r1)
+/* 802A0B90 0029C7F0 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802A0B94 0029C7F4 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 802A0B98 0029C7F8 EC 00 20 28 */ fsubs f0, f0, f4
+/* 802A0B9C 0029C7FC EC 03 00 32 */ fmuls f0, f3, f0
+/* 802A0BA0 0029C800 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A0BA4 0029C804 D0 09 00 00 */ stfs f0, 0(r9)
+/* 802A0BA8 0029C808 A8 C8 00 02 */ lha r6, 2(r8)
+/* 802A0BAC 0029C80C 6C C6 80 00 */ xoris r6, r6, 0x8000
+/* 802A0BB0 0029C810 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 802A0BB4 0029C814 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A0BB8 0029C818 EC 00 20 28 */ fsubs f0, f0, f4
+/* 802A0BBC 0029C81C EC 03 00 32 */ fmuls f0, f3, f0
+/* 802A0BC0 0029C820 EC 00 08 28 */ fsubs f0, f0, f1
+/* 802A0BC4 0029C824 D0 09 00 04 */ stfs f0, 4(r9)
+/* 802A0BC8 0029C828 98 A9 00 08 */ stb r5, 8(r9)
+/* 802A0BCC 0029C82C 98 A9 00 09 */ stb r5, 9(r9)
+/* 802A0BD0 0029C830 48 00 00 08 */ b lbl_802A0BD8
+lbl_802A0BD4:
+/* 802A0BD4 0029C834 98 89 00 08 */ stb r4, 8(r9)
+lbl_802A0BD8:
+/* 802A0BD8 0029C838 39 29 FF F4 */ addi r9, r9, -12
+/* 802A0BDC 0029C83C 39 08 FF F8 */ addi r8, r8, -8
+/* 802A0BE0 0029C840 7C 09 00 40 */ cmplw r9, r0
+/* 802A0BE4 0029C844 40 80 FF 90 */ bge lbl_802A0B74
+/* 802A0BE8 0029C848 48 00 00 20 */ b lbl_802A0C08
+lbl_802A0BEC:
+/* 802A0BEC 0029C84C 38 A3 00 E8 */ addi r5, r3, 0xe8
+/* 802A0BF0 0029C850 38 03 00 C4 */ addi r0, r3, 0xc4
+/* 802A0BF4 0029C854 38 80 FF FF */ li r4, -1
+lbl_802A0BF8:
+/* 802A0BF8 0029C858 98 85 00 08 */ stb r4, 8(r5)
+/* 802A0BFC 0029C85C 38 A5 FF F4 */ addi r5, r5, -12
+/* 802A0C00 0029C860 7C 05 00 40 */ cmplw r5, r0
+/* 802A0C04 0029C864 40 80 FF F4 */ bge lbl_802A0BF8
+lbl_802A0C08:
+/* 802A0C08 0029C868 38 E3 00 E8 */ addi r7, r3, 0xe8
+/* 802A0C0C 0029C86C 38 C3 00 C4 */ addi r6, r3, 0xc4
+/* 802A0C10 0029C870 7C E4 3B 78 */ mr r4, r7
+lbl_802A0C14:
+/* 802A0C14 0029C874 88 04 00 08 */ lbz r0, 8(r4)
+/* 802A0C18 0029C878 7C 00 07 75 */ extsb. r0, r0
+/* 802A0C1C 0029C87C 41 80 00 58 */ blt lbl_802A0C74
+/* 802A0C20 0029C880 C0 24 00 00 */ lfs f1, 0(r4)
+/* 802A0C24 0029C884 C0 03 04 F4 */ lfs f0, 0x4f4(r3)
+/* 802A0C28 0029C888 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0C2C 0029C88C 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0C30 0029C890 41 82 00 38 */ beq lbl_802A0C68
+/* 802A0C34 0029C894 C0 03 04 FC */ lfs f0, 0x4fc(r3)
+/* 802A0C38 0029C898 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0C3C 0029C89C 4C 41 13 82 */ cror 2, 1, 2
+/* 802A0C40 0029C8A0 41 82 00 28 */ beq lbl_802A0C68
+/* 802A0C44 0029C8A4 C0 24 00 04 */ lfs f1, 4(r4)
+/* 802A0C48 0029C8A8 C0 03 04 F8 */ lfs f0, 0x4f8(r3)
+/* 802A0C4C 0029C8AC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0C50 0029C8B0 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0C54 0029C8B4 41 82 00 14 */ beq lbl_802A0C68
+/* 802A0C58 0029C8B8 C0 03 05 00 */ lfs f0, 0x500(r3)
+/* 802A0C5C 0029C8BC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0C60 0029C8C0 4C 41 13 82 */ cror 2, 1, 2
+/* 802A0C64 0029C8C4 40 82 00 10 */ bne lbl_802A0C74
+lbl_802A0C68:
+/* 802A0C68 0029C8C8 88 04 00 08 */ lbz r0, 8(r4)
+/* 802A0C6C 0029C8CC 60 00 00 01 */ ori r0, r0, 1
+/* 802A0C70 0029C8D0 98 04 00 08 */ stb r0, 8(r4)
+lbl_802A0C74:
+/* 802A0C74 0029C8D4 38 84 FF F4 */ addi r4, r4, -12
+/* 802A0C78 0029C8D8 7C 04 30 40 */ cmplw r4, r6
+/* 802A0C7C 0029C8DC 40 80 FF 98 */ bge lbl_802A0C14
+lbl_802A0C80:
+/* 802A0C80 0029C8E0 88 06 00 08 */ lbz r0, 8(r6)
+/* 802A0C84 0029C8E4 7C 00 07 75 */ extsb. r0, r0
+/* 802A0C88 0029C8E8 40 82 00 48 */ bne lbl_802A0CD0
+/* 802A0C8C 0029C8EC 38 A6 00 0C */ addi r5, r6, 0xc
+lbl_802A0C90:
+/* 802A0C90 0029C8F0 88 85 00 08 */ lbz r4, 8(r5)
+/* 802A0C94 0029C8F4 7C 80 07 75 */ extsb. r0, r4
+/* 802A0C98 0029C8F8 40 82 00 2C */ bne lbl_802A0CC4
+/* 802A0C9C 0029C8FC C0 26 00 00 */ lfs f1, 0(r6)
+/* 802A0CA0 0029C900 C0 05 00 00 */ lfs f0, 0(r5)
+/* 802A0CA4 0029C904 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 802A0CA8 0029C908 40 82 00 1C */ bne lbl_802A0CC4
+/* 802A0CAC 0029C90C C0 26 00 04 */ lfs f1, 4(r6)
+/* 802A0CB0 0029C910 C0 05 00 04 */ lfs f0, 4(r5)
+/* 802A0CB4 0029C914 FC 01 00 00 */ fcmpu cr0, f1, f0
+/* 802A0CB8 0029C918 40 82 00 0C */ bne lbl_802A0CC4
+/* 802A0CBC 0029C91C 60 80 00 02 */ ori r0, r4, 2
+/* 802A0CC0 0029C920 98 05 00 08 */ stb r0, 8(r5)
+lbl_802A0CC4:
+/* 802A0CC4 0029C924 38 A5 00 0C */ addi r5, r5, 0xc
+/* 802A0CC8 0029C928 7C 05 38 40 */ cmplw r5, r7
+/* 802A0CCC 0029C92C 40 81 FF C4 */ ble lbl_802A0C90
+lbl_802A0CD0:
+/* 802A0CD0 0029C930 38 C6 00 0C */ addi r6, r6, 0xc
+/* 802A0CD4 0029C934 7C 06 38 40 */ cmplw r6, r7
+/* 802A0CD8 0029C938 41 80 FF A8 */ blt lbl_802A0C80
+/* 802A0CDC 0029C93C 38 00 00 00 */ li r0, 0
+/* 802A0CE0 0029C940 38 A3 00 E8 */ addi r5, r3, 0xe8
+/* 802A0CE4 0029C944 B0 03 01 0C */ sth r0, 0x10c(r3)
+/* 802A0CE8 0029C948 38 03 00 C4 */ addi r0, r3, 0xc4
+lbl_802A0CEC:
+/* 802A0CEC 0029C94C 88 85 00 08 */ lbz r4, 8(r5)
+/* 802A0CF0 0029C950 7C 84 07 75 */ extsb. r4, r4
+/* 802A0CF4 0029C954 40 82 00 10 */ bne lbl_802A0D04
+/* 802A0CF8 0029C958 A8 83 01 0C */ lha r4, 0x10c(r3)
+/* 802A0CFC 0029C95C 38 84 00 01 */ addi r4, r4, 1
+/* 802A0D00 0029C960 B0 83 01 0C */ sth r4, 0x10c(r3)
+lbl_802A0D04:
+/* 802A0D04 0029C964 38 A5 FF F4 */ addi r5, r5, -12
+/* 802A0D08 0029C968 7C 05 00 40 */ cmplw r5, r0
+/* 802A0D0C 0029C96C 40 80 FF E0 */ bge lbl_802A0CEC
+/* 802A0D10 0029C970 C0 23 00 54 */ lfs f1, 0x54(r3)
+/* 802A0D14 0029C974 C0 0D 89 5C */ lfs f0, lbl_8063DC1C-_SDA_BASE_(r13)
+/* 802A0D18 0029C978 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0D1C 0029C97C 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0D20 0029C980 41 82 00 F4 */ beq lbl_802A0E14
+/* 802A0D24 0029C984 88 03 00 5E */ lbz r0, 0x5e(r3)
+/* 802A0D28 0029C988 7C 00 07 74 */ extsb r0, r0
+/* 802A0D2C 0029C98C 2C 00 00 02 */ cmpwi r0, 2
+/* 802A0D30 0029C990 41 82 00 0C */ beq lbl_802A0D3C
+/* 802A0D34 0029C994 2C 00 FF FE */ cmpwi r0, -2
+/* 802A0D38 0029C998 40 82 00 48 */ bne lbl_802A0D80
+lbl_802A0D3C:
+/* 802A0D3C 0029C99C A8 03 01 0C */ lha r0, 0x10c(r3)
+/* 802A0D40 0029C9A0 2C 00 00 02 */ cmpwi r0, 2
+/* 802A0D44 0029C9A4 41 80 00 18 */ blt lbl_802A0D5C
+/* 802A0D48 0029C9A8 7F E3 FB 78 */ mr r3, r31
+/* 802A0D4C 0029C9AC 4B FF F4 85 */ bl select_2obj_continue
+/* 802A0D50 0029C9B0 7C 60 07 75 */ extsb. r0, r3
+/* 802A0D54 0029C9B4 7C 7E 1B 78 */ mr r30, r3
+/* 802A0D58 0029C9B8 40 82 00 C0 */ bne lbl_802A0E18
+lbl_802A0D5C:
+/* 802A0D5C 0029C9BC A8 1F 01 0C */ lha r0, 0x10c(r31)
+/* 802A0D60 0029C9C0 2C 00 00 01 */ cmpwi r0, 1
+/* 802A0D64 0029C9C4 41 80 00 B0 */ blt lbl_802A0E14
+/* 802A0D68 0029C9C8 7F E3 FB 78 */ mr r3, r31
+/* 802A0D6C 0029C9CC 4B FF F8 41 */ bl select_1obj_continue
+/* 802A0D70 0029C9D0 7C 60 07 75 */ extsb. r0, r3
+/* 802A0D74 0029C9D4 7C 7E 1B 78 */ mr r30, r3
+/* 802A0D78 0029C9D8 40 82 00 A0 */ bne lbl_802A0E18
+/* 802A0D7C 0029C9DC 48 00 00 98 */ b lbl_802A0E14
+lbl_802A0D80:
+/* 802A0D80 0029C9E0 2C 00 00 01 */ cmpwi r0, 1
+/* 802A0D84 0029C9E4 41 82 00 0C */ beq lbl_802A0D90
+/* 802A0D88 0029C9E8 2C 00 FF FF */ cmpwi r0, -1
+/* 802A0D8C 0029C9EC 40 82 00 48 */ bne lbl_802A0DD4
+lbl_802A0D90:
+/* 802A0D90 0029C9F0 A8 03 01 0C */ lha r0, 0x10c(r3)
+/* 802A0D94 0029C9F4 2C 00 00 02 */ cmpwi r0, 2
+/* 802A0D98 0029C9F8 41 80 00 18 */ blt lbl_802A0DB0
+/* 802A0D9C 0029C9FC 7F E3 FB 78 */ mr r3, r31
+/* 802A0DA0 0029CA00 4B FF F2 49 */ bl select_2obj_first
+/* 802A0DA4 0029CA04 7C 60 07 75 */ extsb. r0, r3
+/* 802A0DA8 0029CA08 7C 7E 1B 78 */ mr r30, r3
+/* 802A0DAC 0029CA0C 40 82 00 6C */ bne lbl_802A0E18
+lbl_802A0DB0:
+/* 802A0DB0 0029CA10 A8 1F 01 0C */ lha r0, 0x10c(r31)
+/* 802A0DB4 0029CA14 2C 00 00 01 */ cmpwi r0, 1
+/* 802A0DB8 0029CA18 41 80 00 5C */ blt lbl_802A0E14
+/* 802A0DBC 0029CA1C 7F E3 FB 78 */ mr r3, r31
+/* 802A0DC0 0029CA20 4B FF F7 ED */ bl select_1obj_continue
+/* 802A0DC4 0029CA24 7C 60 07 75 */ extsb. r0, r3
+/* 802A0DC8 0029CA28 7C 7E 1B 78 */ mr r30, r3
+/* 802A0DCC 0029CA2C 40 82 00 4C */ bne lbl_802A0E18
+/* 802A0DD0 0029CA30 48 00 00 44 */ b lbl_802A0E14
+lbl_802A0DD4:
+/* 802A0DD4 0029CA34 A8 03 01 0C */ lha r0, 0x10c(r3)
+/* 802A0DD8 0029CA38 2C 00 00 02 */ cmpwi r0, 2
+/* 802A0DDC 0029CA3C 41 80 00 18 */ blt lbl_802A0DF4
+/* 802A0DE0 0029CA40 7F E3 FB 78 */ mr r3, r31
+/* 802A0DE4 0029CA44 4B FF F2 05 */ bl select_2obj_first
+/* 802A0DE8 0029CA48 7C 60 07 75 */ extsb. r0, r3
+/* 802A0DEC 0029CA4C 7C 7E 1B 78 */ mr r30, r3
+/* 802A0DF0 0029CA50 40 82 00 28 */ bne lbl_802A0E18
+lbl_802A0DF4:
+/* 802A0DF4 0029CA54 A8 1F 01 0C */ lha r0, 0x10c(r31)
+/* 802A0DF8 0029CA58 2C 00 00 01 */ cmpwi r0, 1
+/* 802A0DFC 0029CA5C 40 82 00 18 */ bne lbl_802A0E14
+/* 802A0E00 0029CA60 7F E3 FB 78 */ mr r3, r31
+/* 802A0E04 0029CA64 4B FF F5 F5 */ bl select_1obj_first
+/* 802A0E08 0029CA68 7C 60 07 75 */ extsb. r0, r3
+/* 802A0E0C 0029CA6C 7C 7E 1B 78 */ mr r30, r3
+/* 802A0E10 0029CA70 40 82 00 08 */ bne lbl_802A0E18
+lbl_802A0E14:
+/* 802A0E14 0029CA74 3B C0 00 00 */ li r30, 0
+lbl_802A0E18:
+/* 802A0E18 0029CA78 7F C0 07 75 */ extsb. r0, r30
+/* 802A0E1C 0029CA7C 41 82 01 08 */ beq lbl_802A0F24
+/* 802A0E20 0029CA80 C0 7F 01 00 */ lfs f3, 0x100(r31)
+/* 802A0E24 0029CA84 C0 5F 00 F4 */ lfs f2, 0xf4(r31)
+/* 802A0E28 0029CA88 C0 3F 01 04 */ lfs f1, 0x104(r31)
+/* 802A0E2C 0029CA8C C0 1F 00 F8 */ lfs f0, 0xf8(r31)
+/* 802A0E30 0029CA90 EF C3 10 28 */ fsubs f30, f3, f2
+/* 802A0E34 0029CA94 EF E1 00 28 */ fsubs f31, f1, f0
+/* 802A0E38 0029CA98 EC 3E 07 B2 */ fmuls f1, f30, f30
+/* 802A0E3C 0029CA9C EC 1F 07 F2 */ fmuls f0, f31, f31
+/* 802A0E40 0029CAA0 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0E44 0029CAA4 4B F3 39 F1 */ bl sqrt
+/* 802A0E48 0029CAA8 FC 60 08 18 */ frsp f3, f1
+/* 802A0E4C 0029CAAC C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A0E50 0029CAB0 A0 1F 04 C8 */ lhz r0, 0x4c8(r31)
+/* 802A0E54 0029CAB4 C0 9F 00 B0 */ lfs f4, 0xb0(r31)
+/* 802A0E58 0029CAB8 EC 40 18 24 */ fdivs f2, f0, f3
+/* 802A0E5C 0029CABC C0 3F 05 10 */ lfs f1, 0x510(r31)
+/* 802A0E60 0029CAC0 C0 1F 00 B4 */ lfs f0, 0xb4(r31)
+/* 802A0E64 0029CAC4 2C 00 00 00 */ cmpwi r0, 0
+/* 802A0E68 0029CAC8 D0 7F 04 90 */ stfs f3, 0x490(r31)
+/* 802A0E6C 0029CACC EF DE 00 B2 */ fmuls f30, f30, f2
+/* 802A0E70 0029CAD0 EF FF 00 B2 */ fmuls f31, f31, f2
+/* 802A0E74 0029CAD4 EC A1 00 B2 */ fmuls f5, f1, f2
+/* 802A0E78 0029CAD8 EC 64 07 B2 */ fmuls f3, f4, f30
+/* 802A0E7C 0029CADC D3 DF 04 94 */ stfs f30, 0x494(r31)
+/* 802A0E80 0029CAE0 EC 40 07 F2 */ fmuls f2, f0, f31
+/* 802A0E84 0029CAE4 EC 20 07 B2 */ fmuls f1, f0, f30
+/* 802A0E88 0029CAE8 D0 BF 04 9C */ stfs f5, 0x49c(r31)
+/* 802A0E8C 0029CAEC EC 04 07 F2 */ fmuls f0, f4, f31
+/* 802A0E90 0029CAF0 EC 43 10 2A */ fadds f2, f3, f2
+/* 802A0E94 0029CAF4 D3 FF 04 98 */ stfs f31, 0x498(r31)
+/* 802A0E98 0029CAF8 EC 61 00 28 */ fsubs f3, f1, f0
+/* 802A0E9C 0029CAFC D0 5F 04 B0 */ stfs f2, 0x4b0(r31)
+/* 802A0EA0 0029CB00 D0 7F 04 B4 */ stfs f3, 0x4b4(r31)
+/* 802A0EA4 0029CB04 40 82 00 38 */ bne lbl_802A0EDC
+/* 802A0EA8 0029CB08 C0 1F 04 B8 */ lfs f0, 0x4b8(r31)
+/* 802A0EAC 0029CB0C C0 3F 04 BC */ lfs f1, 0x4bc(r31)
+/* 802A0EB0 0029CB10 EC 42 00 32 */ fmuls f2, f2, f0
+/* 802A0EB4 0029CB14 C0 0D 89 58 */ lfs f0, lbl_8063DC18-_SDA_BASE_(r13)
+/* 802A0EB8 0029CB18 EC 23 00 72 */ fmuls f1, f3, f1
+/* 802A0EBC 0029CB1C EC 22 08 2A */ fadds f1, f2, f1
+/* 802A0EC0 0029CB20 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A0EC4 0029CB24 4C 40 13 82 */ cror 2, 0, 2
+/* 802A0EC8 0029CB28 40 82 00 14 */ bne lbl_802A0EDC
+/* 802A0ECC 0029CB2C 38 00 00 01 */ li r0, 1
+/* 802A0ED0 0029CB30 3B C0 00 00 */ li r30, 0
+/* 802A0ED4 0029CB34 98 1F 01 08 */ stb r0, 0x108(r31)
+/* 802A0ED8 0029CB38 98 1F 00 FC */ stb r0, 0xfc(r31)
+lbl_802A0EDC:
+/* 802A0EDC 0029CB3C 88 1F 00 5E */ lbz r0, 0x5e(r31)
+/* 802A0EE0 0029CB40 2C 00 00 02 */ cmpwi r0, 2
+/* 802A0EE4 0029CB44 40 82 00 34 */ bne lbl_802A0F18
+/* 802A0EE8 0029CB48 7F C0 07 74 */ extsb r0, r30
+/* 802A0EEC 0029CB4C 2C 00 00 02 */ cmpwi r0, 2
+/* 802A0EF0 0029CB50 40 82 00 28 */ bne lbl_802A0F18
+/* 802A0EF4 0029CB54 88 7F 04 CA */ lbz r3, 0x4ca(r31)
+/* 802A0EF8 0029CB58 28 03 00 C8 */ cmplwi r3, 0xc8
+/* 802A0EFC 0029CB5C 40 82 00 10 */ bne lbl_802A0F0C
+/* 802A0F00 0029CB60 C0 1F 04 90 */ lfs f0, 0x490(r31)
+/* 802A0F04 0029CB64 D0 1F 04 A0 */ stfs f0, 0x4a0(r31)
+/* 802A0F08 0029CB68 48 00 00 24 */ b lbl_802A0F2C
+lbl_802A0F0C:
+/* 802A0F0C 0029CB6C 38 03 00 01 */ addi r0, r3, 1
+/* 802A0F10 0029CB70 98 1F 04 CA */ stb r0, 0x4ca(r31)
+/* 802A0F14 0029CB74 48 00 00 18 */ b lbl_802A0F2C
+lbl_802A0F18:
+/* 802A0F18 0029CB78 38 00 00 00 */ li r0, 0
+/* 802A0F1C 0029CB7C 98 1F 04 CA */ stb r0, 0x4ca(r31)
+/* 802A0F20 0029CB80 48 00 00 0C */ b lbl_802A0F2C
+lbl_802A0F24:
+/* 802A0F24 0029CB84 38 00 00 00 */ li r0, 0
+/* 802A0F28 0029CB88 98 1F 04 CA */ stb r0, 0x4ca(r31)
+lbl_802A0F2C:
+/* 802A0F2C 0029CB8C 7F E3 FB 78 */ mr r3, r31
+/* 802A0F30 0029CB90 7F C4 07 74 */ extsb r4, r30
+/* 802A0F34 0029CB94 4B FF F7 ED */ bl calc_dpd_variable
+/* 802A0F38 0029CB98 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
+/* 802A0F3C 0029CB9C CB E1 00 30 */ lfd f31, 0x30(r1)
+/* 802A0F40 0029CBA0 E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0
+/* 802A0F44 0029CBA4 CB C1 00 20 */ lfd f30, 0x20(r1)
+/* 802A0F48 0029CBA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A0F4C 0029CBAC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802A0F50 0029CBB0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A0F54 0029CBB4 7C 08 03 A6 */ mtlr r0
+/* 802A0F58 0029CBB8 38 21 00 40 */ addi r1, r1, 0x40
+/* 802A0F5C 0029CBBC 4E 80 00 20 */ blr
+clamp_stick_circle:
+/* 802A0F60 0029CBC0 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 802A0F64 0029CBC4 7C 08 02 A6 */ mflr r0
+/* 802A0F68 0029CBC8 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802A0F6C 0029CBCC DB E1 00 50 */ stfd f31, 0x50(r1)
+/* 802A0F70 0029CBD0 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0
+/* 802A0F74 0029CBD4 DB C1 00 40 */ stfd f30, 0x40(r1)
+/* 802A0F78 0029CBD8 F3 C1 00 48 */ psq_st f30, 72(r1), 0, qr0
+/* 802A0F7C 0029CBDC DB A1 00 30 */ stfd f29, 0x30(r1)
+/* 802A0F80 0029CBE0 F3 A1 00 38 */ psq_st f29, 56(r1), 0, qr0
+/* 802A0F84 0029CBE4 DB 81 00 20 */ stfd f28, 0x20(r1)
+/* 802A0F88 0029CBE8 F3 81 00 28 */ psq_st f28, 40(r1), 0, qr0
+/* 802A0F8C 0029CBEC 3D 00 43 30 */ lis r8, 0x4330
+/* 802A0F90 0029CBF0 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 802A0F94 0029CBF4 6C A5 80 00 */ xoris r5, r5, 0x8000
+/* 802A0F98 0029CBF8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802A0F9C 0029CBFC 6C C4 80 00 */ xoris r4, r6, 0x8000
+/* 802A0FA0 0029CC00 C8 82 A3 C8 */ lfd f4, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A0FA4 0029CC04 6C E0 80 00 */ xoris r0, r7, 0x8000
+/* 802A0FA8 0029CC08 91 01 00 08 */ stw r8, 8(r1)
+/* 802A0FAC 0029CC0C C8 01 00 08 */ lfd f0, 8(r1)
+/* 802A0FB0 0029CC10 91 01 00 10 */ stw r8, 0x10(r1)
+/* 802A0FB4 0029CC14 EF E0 20 28 */ fsubs f31, f0, f4
+/* 802A0FB8 0029CC18 90 A1 00 14 */ stw r5, 0x14(r1)
+/* 802A0FBC 0029CC1C C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A0FC0 0029CC20 EC 3F 07 F2 */ fmuls f1, f31, f31
+/* 802A0FC4 0029CC24 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802A0FC8 0029CC28 EF C0 20 28 */ fsubs f30, f0, f4
+/* 802A0FCC 0029CC2C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A0FD0 0029CC30 C8 61 00 08 */ lfd f3, 8(r1)
+/* 802A0FD4 0029CC34 EC 1E 07 B2 */ fmuls f0, f30, f30
+/* 802A0FD8 0029CC38 C8 41 00 10 */ lfd f2, 0x10(r1)
+/* 802A0FDC 0029CC3C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A0FE0 0029CC40 EF A3 20 28 */ fsubs f29, f3, f4
+/* 802A0FE4 0029CC44 EF 82 20 28 */ fsubs f28, f2, f4
+/* 802A0FE8 0029CC48 7C 7F 1B 78 */ mr r31, r3
+/* 802A0FEC 0029CC4C EC 21 00 2A */ fadds f1, f1, f0
+/* 802A0FF0 0029CC50 4B F3 38 45 */ bl sqrt
+/* 802A0FF4 0029CC54 FC 40 08 18 */ frsp f2, f1
+/* 802A0FF8 0029CC58 FC 02 E8 40 */ fcmpo cr0, f2, f29
+/* 802A0FFC 0029CC5C 4C 40 13 82 */ cror 2, 0, 2
+/* 802A1000 0029CC60 40 82 00 14 */ bne lbl_802A1014
+/* 802A1004 0029CC64 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1008 0029CC68 D0 1F 00 04 */ stfs f0, 4(r31)
+/* 802A100C 0029CC6C D0 1F 00 00 */ stfs f0, 0(r31)
+/* 802A1010 0029CC70 48 00 00 44 */ b lbl_802A1054
+lbl_802A1014:
+/* 802A1014 0029CC74 FC 02 E0 40 */ fcmpo cr0, f2, f28
+/* 802A1018 0029CC78 4C 41 13 82 */ cror 2, 1, 2
+/* 802A101C 0029CC7C 40 82 00 18 */ bne lbl_802A1034
+/* 802A1020 0029CC80 EC 3F 10 24 */ fdivs f1, f31, f2
+/* 802A1024 0029CC84 EC 1E 10 24 */ fdivs f0, f30, f2
+/* 802A1028 0029CC88 D0 3F 00 00 */ stfs f1, 0(r31)
+/* 802A102C 0029CC8C D0 1F 00 04 */ stfs f0, 4(r31)
+/* 802A1030 0029CC90 48 00 00 24 */ b lbl_802A1054
+lbl_802A1034:
+/* 802A1034 0029CC94 EC 22 E8 28 */ fsubs f1, f2, f29
+/* 802A1038 0029CC98 EC 1C E8 28 */ fsubs f0, f28, f29
+/* 802A103C 0029CC9C EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A1040 0029CCA0 EC 00 10 24 */ fdivs f0, f0, f2
+/* 802A1044 0029CCA4 EC 3F 00 32 */ fmuls f1, f31, f0
+/* 802A1048 0029CCA8 EC 1E 00 32 */ fmuls f0, f30, f0
+/* 802A104C 0029CCAC D0 3F 00 00 */ stfs f1, 0(r31)
+/* 802A1050 0029CCB0 D0 1F 00 04 */ stfs f0, 4(r31)
+lbl_802A1054:
+/* 802A1054 0029CCB4 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0
+/* 802A1058 0029CCB8 CB E1 00 50 */ lfd f31, 0x50(r1)
+/* 802A105C 0029CCBC E3 C1 00 48 */ psq_l f30, 72(r1), 0, qr0
+/* 802A1060 0029CCC0 CB C1 00 40 */ lfd f30, 0x40(r1)
+/* 802A1064 0029CCC4 E3 A1 00 38 */ psq_l f29, 56(r1), 0, qr0
+/* 802A1068 0029CCC8 CB A1 00 30 */ lfd f29, 0x30(r1)
+/* 802A106C 0029CCCC E3 81 00 28 */ psq_l f28, 40(r1), 0, qr0
+/* 802A1070 0029CCD0 CB 81 00 20 */ lfd f28, 0x20(r1)
+/* 802A1074 0029CCD4 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 802A1078 0029CCD8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A107C 0029CCDC 7C 08 03 A6 */ mtlr r0
+/* 802A1080 0029CCE0 38 21 00 60 */ addi r1, r1, 0x60
+/* 802A1084 0029CCE4 4E 80 00 20 */ blr
+clamp_stick_cross:
+/* 802A1088 0029CCE8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A108C 0029CCEC 7C 08 02 A6 */ mflr r0
+/* 802A1090 0029CCF0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A1094 0029CCF4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A1098 0029CCF8 3C 00 43 30 */ lis r0, 0x4330
+/* 802A109C 0029CCFC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A10A0 0029CD00 7C 7F 1B 78 */ mr r31, r3
+/* 802A10A4 0029CD04 90 01 00 08 */ stw r0, 8(r1)
+/* 802A10A8 0029CD08 90 01 00 10 */ stw r0, 0x10(r1)
+/* 802A10AC 0029CD0C 40 80 00 78 */ bge lbl_802A1124
+/* 802A10B0 0029CD10 7C 04 00 D0 */ neg r0, r4
+/* 802A10B4 0029CD14 7C 00 30 00 */ cmpw r0, r6
+/* 802A10B8 0029CD18 41 81 00 10 */ bgt lbl_802A10C8
+/* 802A10BC 0029CD1C C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A10C0 0029CD20 D0 03 00 00 */ stfs f0, 0(r3)
+/* 802A10C4 0029CD24 48 00 00 50 */ b lbl_802A1114
+lbl_802A10C8:
+/* 802A10C8 0029CD28 7C 00 38 00 */ cmpw r0, r7
+/* 802A10CC 0029CD2C 41 80 00 10 */ blt lbl_802A10DC
+/* 802A10D0 0029CD30 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A10D4 0029CD34 D0 03 00 00 */ stfs f0, 0(r3)
+/* 802A10D8 0029CD38 48 00 00 3C */ b lbl_802A1114
+lbl_802A10DC:
+/* 802A10DC 0029CD3C 7C 84 32 14 */ add r4, r4, r6
+/* 802A10E0 0029CD40 7C 06 38 50 */ subf r0, r6, r7
+/* 802A10E4 0029CD44 7C 84 00 D0 */ neg r4, r4
+/* 802A10E8 0029CD48 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A10EC 0029CD4C 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 802A10F0 0029CD50 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802A10F4 0029CD54 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802A10F8 0029CD58 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A10FC 0029CD5C C8 21 00 08 */ lfd f1, 8(r1)
+/* 802A1100 0029CD60 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A1104 0029CD64 EC 21 10 28 */ fsubs f1, f1, f2
+/* 802A1108 0029CD68 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A110C 0029CD6C EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A1110 0029CD70 D0 03 00 00 */ stfs f0, 0(r3)
+lbl_802A1114:
+/* 802A1114 0029CD74 C0 03 00 00 */ lfs f0, 0(r3)
+/* 802A1118 0029CD78 FC 00 00 50 */ fneg f0, f0
+/* 802A111C 0029CD7C D0 03 00 00 */ stfs f0, 0(r3)
+/* 802A1120 0029CD80 48 00 00 60 */ b lbl_802A1180
+lbl_802A1124:
+/* 802A1124 0029CD84 7C 04 30 00 */ cmpw r4, r6
+/* 802A1128 0029CD88 41 81 00 10 */ bgt lbl_802A1138
+/* 802A112C 0029CD8C C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1130 0029CD90 D0 03 00 00 */ stfs f0, 0(r3)
+/* 802A1134 0029CD94 48 00 00 4C */ b lbl_802A1180
+lbl_802A1138:
+/* 802A1138 0029CD98 7C 04 38 00 */ cmpw r4, r7
+/* 802A113C 0029CD9C 41 80 00 10 */ blt lbl_802A114C
+/* 802A1140 0029CDA0 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1144 0029CDA4 D0 03 00 00 */ stfs f0, 0(r3)
+/* 802A1148 0029CDA8 48 00 00 38 */ b lbl_802A1180
+lbl_802A114C:
+/* 802A114C 0029CDAC 7C 86 20 50 */ subf r4, r6, r4
+/* 802A1150 0029CDB0 7C 06 38 50 */ subf r0, r6, r7
+/* 802A1154 0029CDB4 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 802A1158 0029CDB8 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A115C 0029CDBC 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802A1160 0029CDC0 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802A1164 0029CDC4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A1168 0029CDC8 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802A116C 0029CDCC C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A1170 0029CDD0 EC 21 10 28 */ fsubs f1, f1, f2
+/* 802A1174 0029CDD4 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A1178 0029CDD8 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A117C 0029CDDC D0 03 00 00 */ stfs f0, 0(r3)
+lbl_802A1180:
+/* 802A1180 0029CDE0 2C 05 00 00 */ cmpwi r5, 0
+/* 802A1184 0029CDE4 40 80 00 78 */ bge lbl_802A11FC
+/* 802A1188 0029CDE8 7C 05 00 D0 */ neg r0, r5
+/* 802A118C 0029CDEC 7C 00 30 00 */ cmpw r0, r6
+/* 802A1190 0029CDF0 41 81 00 10 */ bgt lbl_802A11A0
+/* 802A1194 0029CDF4 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1198 0029CDF8 D0 03 00 04 */ stfs f0, 4(r3)
+/* 802A119C 0029CDFC 48 00 00 50 */ b lbl_802A11EC
+lbl_802A11A0:
+/* 802A11A0 0029CE00 7C 00 38 00 */ cmpw r0, r7
+/* 802A11A4 0029CE04 41 80 00 10 */ blt lbl_802A11B4
+/* 802A11A8 0029CE08 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A11AC 0029CE0C D0 03 00 04 */ stfs f0, 4(r3)
+/* 802A11B0 0029CE10 48 00 00 3C */ b lbl_802A11EC
+lbl_802A11B4:
+/* 802A11B4 0029CE14 7C 85 32 14 */ add r4, r5, r6
+/* 802A11B8 0029CE18 7C 06 38 50 */ subf r0, r6, r7
+/* 802A11BC 0029CE1C 7C 84 00 D0 */ neg r4, r4
+/* 802A11C0 0029CE20 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A11C4 0029CE24 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 802A11C8 0029CE28 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802A11CC 0029CE2C 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802A11D0 0029CE30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A11D4 0029CE34 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802A11D8 0029CE38 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A11DC 0029CE3C EC 21 10 28 */ fsubs f1, f1, f2
+/* 802A11E0 0029CE40 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A11E4 0029CE44 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A11E8 0029CE48 D0 03 00 04 */ stfs f0, 4(r3)
+lbl_802A11EC:
+/* 802A11EC 0029CE4C C0 03 00 04 */ lfs f0, 4(r3)
+/* 802A11F0 0029CE50 FC 00 00 50 */ fneg f0, f0
+/* 802A11F4 0029CE54 D0 03 00 04 */ stfs f0, 4(r3)
+/* 802A11F8 0029CE58 48 00 00 60 */ b lbl_802A1258
+lbl_802A11FC:
+/* 802A11FC 0029CE5C 7C 05 30 00 */ cmpw r5, r6
+/* 802A1200 0029CE60 41 81 00 10 */ bgt lbl_802A1210
+/* 802A1204 0029CE64 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1208 0029CE68 D0 03 00 04 */ stfs f0, 4(r3)
+/* 802A120C 0029CE6C 48 00 00 4C */ b lbl_802A1258
+lbl_802A1210:
+/* 802A1210 0029CE70 7C 05 38 00 */ cmpw r5, r7
+/* 802A1214 0029CE74 41 80 00 10 */ blt lbl_802A1224
+/* 802A1218 0029CE78 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A121C 0029CE7C D0 03 00 04 */ stfs f0, 4(r3)
+/* 802A1220 0029CE80 48 00 00 38 */ b lbl_802A1258
+lbl_802A1224:
+/* 802A1224 0029CE84 7C 86 28 50 */ subf r4, r6, r5
+/* 802A1228 0029CE88 7C 06 38 50 */ subf r0, r6, r7
+/* 802A122C 0029CE8C 6C 84 80 00 */ xoris r4, r4, 0x8000
+/* 802A1230 0029CE90 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A1234 0029CE94 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802A1238 0029CE98 90 81 00 0C */ stw r4, 0xc(r1)
+/* 802A123C 0029CE9C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A1240 0029CEA0 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802A1244 0029CEA4 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A1248 0029CEA8 EC 21 10 28 */ fsubs f1, f1, f2
+/* 802A124C 0029CEAC EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A1250 0029CEB0 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A1254 0029CEB4 D0 03 00 04 */ stfs f0, 4(r3)
+lbl_802A1258:
+/* 802A1258 0029CEB8 C0 03 00 00 */ lfs f0, 0(r3)
+/* 802A125C 0029CEBC C0 23 00 04 */ lfs f1, 4(r3)
+/* 802A1260 0029CEC0 EC 40 00 32 */ fmuls f2, f0, f0
+/* 802A1264 0029CEC4 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1268 0029CEC8 EC 21 00 72 */ fmuls f1, f1, f1
+/* 802A126C 0029CECC EC 22 08 2A */ fadds f1, f2, f1
+/* 802A1270 0029CED0 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802A1274 0029CED4 40 81 00 24 */ ble lbl_802A1298
+/* 802A1278 0029CED8 4B F3 35 BD */ bl sqrt
+/* 802A127C 0029CEDC FC 40 08 18 */ frsp f2, f1
+/* 802A1280 0029CEE0 C0 3F 00 00 */ lfs f1, 0(r31)
+/* 802A1284 0029CEE4 C0 1F 00 04 */ lfs f0, 4(r31)
+/* 802A1288 0029CEE8 EC 21 10 24 */ fdivs f1, f1, f2
+/* 802A128C 0029CEEC EC 00 10 24 */ fdivs f0, f0, f2
+/* 802A1290 0029CEF0 D0 3F 00 00 */ stfs f1, 0(r31)
+/* 802A1294 0029CEF4 D0 1F 00 04 */ stfs f0, 4(r31)
+lbl_802A1298:
+/* 802A1298 0029CEF8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A129C 0029CEFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A12A0 0029CF00 7C 08 03 A6 */ mtlr r0
+/* 802A12A4 0029CF04 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A12A8 0029CF08 4E 80 00 20 */ blr
+
+.global read_kpad_stick
+read_kpad_stick:
+/* 802A12AC 0029CF0C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A12B0 0029CF10 7C 08 02 A6 */ mflr r0
+/* 802A12B4 0029CF14 3C A0 43 30 */ lis r5, 0x4330
+/* 802A12B8 0029CF18 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A12BC 0029CF1C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 802A12C0 0029CF20 3F E0 80 2A */ lis r31, clamp_stick_cross@ha
+/* 802A12C4 0029CF24 3B FF 10 88 */ addi r31, r31, clamp_stick_cross@l
+/* 802A12C8 0029CF28 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 802A12CC 0029CF2C 3B C3 00 60 */ addi r30, r3, 0x60
+/* 802A12D0 0029CF30 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 802A12D4 0029CF34 7C 9D 23 78 */ mr r29, r4
+/* 802A12D8 0029CF38 80 0D AD D0 */ lwz r0, lbl_80640090-_SDA_BASE_(r13)
+/* 802A12DC 0029CF3C 90 A1 00 08 */ stw r5, 8(r1)
+/* 802A12E0 0029CF40 2C 00 00 00 */ cmpwi r0, 0
+/* 802A12E4 0029CF44 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 802A12E8 0029CF48 41 82 00 0C */ beq lbl_802A12F4
+/* 802A12EC 0029CF4C 3F E0 80 2A */ lis r31, clamp_stick_circle@ha
+/* 802A12F0 0029CF50 3B FF 0F 60 */ addi r31, r31, clamp_stick_circle@l
+lbl_802A12F4:
+/* 802A12F4 0029CF54 88 C4 00 28 */ lbz r6, 0x28(r4)
+/* 802A12F8 0029CF58 28 06 00 01 */ cmplwi r6, 1
+/* 802A12FC 0029CF5C 40 82 00 88 */ bne lbl_802A1384
+/* 802A1300 0029CF60 88 A4 00 36 */ lbz r5, 0x36(r4)
+/* 802A1304 0029CF64 38 05 00 FD */ addi r0, r5, 0xfd
+/* 802A1308 0029CF68 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A130C 0029CF6C 28 00 00 02 */ cmplwi r0, 2
+/* 802A1310 0029CF70 41 81 00 74 */ bgt lbl_802A1384
+/* 802A1314 0029CF74 88 03 05 1E */ lbz r0, 0x51e(r3)
+/* 802A1318 0029CF78 2C 00 00 00 */ cmpwi r0, 0
+/* 802A131C 0029CF7C 41 82 00 3C */ beq lbl_802A1358
+/* 802A1320 0029CF80 38 00 00 00 */ li r0, 0
+/* 802A1324 0029CF84 C0 42 A3 A0 */ lfs f2, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1328 0029CF88 98 03 05 1E */ stb r0, 0x51e(r3)
+/* 802A132C 0029CF8C C0 22 A3 AC */ lfs f1, lbl_806429AC-_SDA2_BASE_(r2)
+/* 802A1330 0029CF90 80 6D AD D8 */ lwz r3, lbl_80640098-_SDA_BASE_(r13)
+/* 802A1334 0029CF94 80 0D AD DC */ lwz r0, lbl_8064009C-_SDA_BASE_(r13)
+/* 802A1338 0029CF98 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A133C 0029CF9C 90 7E 00 00 */ stw r3, 0(r30)
+/* 802A1340 0029CFA0 90 1E 00 04 */ stw r0, 4(r30)
+/* 802A1344 0029CFA4 D0 5E 00 10 */ stfs f2, 0x10(r30)
+/* 802A1348 0029CFA8 D0 5E 00 08 */ stfs f2, 8(r30)
+/* 802A134C 0029CFAC D0 3E 00 0C */ stfs f1, 0xc(r30)
+/* 802A1350 0029CFB0 D0 1E 00 14 */ stfs f0, 0x14(r30)
+/* 802A1354 0029CFB4 D0 5E 00 18 */ stfs f2, 0x18(r30)
+lbl_802A1358:
+/* 802A1358 0029CFB8 88 84 00 30 */ lbz r4, 0x30(r4)
+/* 802A135C 0029CFBC 7F EC FB 78 */ mr r12, r31
+/* 802A1360 0029CFC0 88 BD 00 31 */ lbz r5, 0x31(r29)
+/* 802A1364 0029CFC4 7F C3 F3 78 */ mr r3, r30
+/* 802A1368 0029CFC8 7C 84 07 74 */ extsb r4, r4
+/* 802A136C 0029CFCC 80 CD 89 64 */ lwz r6, lbl_8063DC24-_SDA_BASE_(r13)
+/* 802A1370 0029CFD0 7C A5 07 74 */ extsb r5, r5
+/* 802A1374 0029CFD4 80 ED 89 68 */ lwz r7, lbl_8063DC28-_SDA_BASE_(r13)
+/* 802A1378 0029CFD8 7D 89 03 A6 */ mtctr r12
+/* 802A137C 0029CFDC 4E 80 04 21 */ bctrl
+/* 802A1380 0029CFE0 48 00 01 88 */ b lbl_802A1508
+lbl_802A1384:
+/* 802A1384 0029CFE4 28 06 00 02 */ cmplwi r6, 2
+/* 802A1388 0029CFE8 40 82 01 80 */ bne lbl_802A1508
+/* 802A138C 0029CFEC 88 A4 00 36 */ lbz r5, 0x36(r4)
+/* 802A1390 0029CFF0 38 05 00 FA */ addi r0, r5, 0xfa
+/* 802A1394 0029CFF4 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A1398 0029CFF8 28 00 00 02 */ cmplwi r0, 2
+/* 802A139C 0029CFFC 41 81 01 6C */ bgt lbl_802A1508
+/* 802A13A0 0029D000 88 03 05 1E */ lbz r0, 0x51e(r3)
+/* 802A13A4 0029D004 2C 00 00 00 */ cmpwi r0, 0
+/* 802A13A8 0029D008 41 82 00 50 */ beq lbl_802A13F8
+/* 802A13AC 0029D00C 38 E0 00 00 */ li r7, 0
+/* 802A13B0 0029D010 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A13B4 0029D014 98 E3 05 1E */ stb r7, 0x51e(r3)
+/* 802A13B8 0029D018 A0 03 04 D0 */ lhz r0, 0x4d0(r3)
+/* 802A13BC 0029D01C 80 CD AD D8 */ lwz r6, lbl_80640098-_SDA_BASE_(r13)
+/* 802A13C0 0029D020 80 AD AD DC */ lwz r5, lbl_8064009C-_SDA_BASE_(r13)
+/* 802A13C4 0029D024 90 DE 00 0C */ stw r6, 0xc(r30)
+/* 802A13C8 0029D028 90 BE 00 10 */ stw r5, 0x10(r30)
+/* 802A13CC 0029D02C 80 CD AD D8 */ lwz r6, lbl_80640098-_SDA_BASE_(r13)
+/* 802A13D0 0029D030 80 AD AD DC */ lwz r5, lbl_8064009C-_SDA_BASE_(r13)
+/* 802A13D4 0029D034 90 DE 00 14 */ stw r6, 0x14(r30)
+/* 802A13D8 0029D038 90 BE 00 18 */ stw r5, 0x18(r30)
+/* 802A13DC 0029D03C D0 1E 00 20 */ stfs f0, 0x20(r30)
+/* 802A13E0 0029D040 D0 1E 00 1C */ stfs f0, 0x1c(r30)
+/* 802A13E4 0029D044 90 FE 00 08 */ stw r7, 8(r30)
+/* 802A13E8 0029D048 90 FE 00 04 */ stw r7, 4(r30)
+/* 802A13EC 0029D04C 90 FE 00 00 */ stw r7, 0(r30)
+/* 802A13F0 0029D050 B0 E3 04 D4 */ sth r7, 0x4d4(r3)
+/* 802A13F4 0029D054 B0 03 04 D6 */ sth r0, 0x4d6(r3)
+lbl_802A13F8:
+/* 802A13F8 0029D058 7F EC FB 78 */ mr r12, r31
+/* 802A13FC 0029D05C 38 7E 00 0C */ addi r3, r30, 0xc
+/* 802A1400 0029D060 A8 84 00 2C */ lha r4, 0x2c(r4)
+/* 802A1404 0029D064 A8 BD 00 2E */ lha r5, 0x2e(r29)
+/* 802A1408 0029D068 80 CD 89 6C */ lwz r6, lbl_8063DC2C-_SDA_BASE_(r13)
+/* 802A140C 0029D06C 80 ED 89 70 */ lwz r7, lbl_8063DC30-_SDA_BASE_(r13)
+/* 802A1410 0029D070 7D 89 03 A6 */ mtctr r12
+/* 802A1414 0029D074 4E 80 04 21 */ bctrl
+/* 802A1418 0029D078 7F EC FB 78 */ mr r12, r31
+/* 802A141C 0029D07C 38 7E 00 14 */ addi r3, r30, 0x14
+/* 802A1420 0029D080 A8 9D 00 30 */ lha r4, 0x30(r29)
+/* 802A1424 0029D084 A8 BD 00 32 */ lha r5, 0x32(r29)
+/* 802A1428 0029D088 80 CD 89 6C */ lwz r6, lbl_8063DC2C-_SDA_BASE_(r13)
+/* 802A142C 0029D08C 80 ED 89 70 */ lwz r7, lbl_8063DC30-_SDA_BASE_(r13)
+/* 802A1430 0029D090 7D 89 03 A6 */ mtctr r12
+/* 802A1434 0029D094 4E 80 04 21 */ bctrl
+/* 802A1438 0029D098 80 AD 89 74 */ lwz r5, lbl_8063DC34-_SDA_BASE_(r13)
+/* 802A143C 0029D09C 88 1D 00 34 */ lbz r0, 0x34(r29)
+/* 802A1440 0029D0A0 80 8D 89 78 */ lwz r4, lbl_8063DC38-_SDA_BASE_(r13)
+/* 802A1444 0029D0A4 7C 00 28 00 */ cmpw r0, r5
+/* 802A1448 0029D0A8 41 81 00 10 */ bgt lbl_802A1458
+/* 802A144C 0029D0AC C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1450 0029D0B0 D0 1E 00 1C */ stfs f0, 0x1c(r30)
+/* 802A1454 0029D0B4 48 00 00 4C */ b lbl_802A14A0
+lbl_802A1458:
+/* 802A1458 0029D0B8 7C 00 20 00 */ cmpw r0, r4
+/* 802A145C 0029D0BC 41 80 00 10 */ blt lbl_802A146C
+/* 802A1460 0029D0C0 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1464 0029D0C4 D0 1E 00 1C */ stfs f0, 0x1c(r30)
+/* 802A1468 0029D0C8 48 00 00 38 */ b lbl_802A14A0
+lbl_802A146C:
+/* 802A146C 0029D0CC 7C 65 00 50 */ subf r3, r5, r0
+/* 802A1470 0029D0D0 7C 05 20 50 */ subf r0, r5, r4
+/* 802A1474 0029D0D4 6C 63 80 00 */ xoris r3, r3, 0x8000
+/* 802A1478 0029D0D8 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A147C 0029D0DC 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802A1480 0029D0E0 90 61 00 0C */ stw r3, 0xc(r1)
+/* 802A1484 0029D0E4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A1488 0029D0E8 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802A148C 0029D0EC C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A1490 0029D0F0 EC 21 10 28 */ fsubs f1, f1, f2
+/* 802A1494 0029D0F4 EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A1498 0029D0F8 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A149C 0029D0FC D0 1E 00 1C */ stfs f0, 0x1c(r30)
+lbl_802A14A0:
+/* 802A14A0 0029D100 80 AD 89 74 */ lwz r5, lbl_8063DC34-_SDA_BASE_(r13)
+/* 802A14A4 0029D104 88 1D 00 35 */ lbz r0, 0x35(r29)
+/* 802A14A8 0029D108 80 8D 89 78 */ lwz r4, lbl_8063DC38-_SDA_BASE_(r13)
+/* 802A14AC 0029D10C 7C 00 28 00 */ cmpw r0, r5
+/* 802A14B0 0029D110 41 81 00 10 */ bgt lbl_802A14C0
+/* 802A14B4 0029D114 C0 02 A3 A0 */ lfs f0, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A14B8 0029D118 D0 1E 00 20 */ stfs f0, 0x20(r30)
+/* 802A14BC 0029D11C 48 00 00 4C */ b lbl_802A1508
+lbl_802A14C0:
+/* 802A14C0 0029D120 7C 00 20 00 */ cmpw r0, r4
+/* 802A14C4 0029D124 41 80 00 10 */ blt lbl_802A14D4
+/* 802A14C8 0029D128 C0 02 A3 B0 */ lfs f0, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A14CC 0029D12C D0 1E 00 20 */ stfs f0, 0x20(r30)
+/* 802A14D0 0029D130 48 00 00 38 */ b lbl_802A1508
+lbl_802A14D4:
+/* 802A14D4 0029D134 7C 65 00 50 */ subf r3, r5, r0
+/* 802A14D8 0029D138 7C 05 20 50 */ subf r0, r5, r4
+/* 802A14DC 0029D13C 6C 63 80 00 */ xoris r3, r3, 0x8000
+/* 802A14E0 0029D140 C8 42 A3 C8 */ lfd f2, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A14E4 0029D144 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802A14E8 0029D148 90 61 00 0C */ stw r3, 0xc(r1)
+/* 802A14EC 0029D14C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A14F0 0029D150 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802A14F4 0029D154 C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802A14F8 0029D158 EC 21 10 28 */ fsubs f1, f1, f2
+/* 802A14FC 0029D15C EC 00 10 28 */ fsubs f0, f0, f2
+/* 802A1500 0029D160 EC 01 00 24 */ fdivs f0, f1, f0
+/* 802A1504 0029D164 D0 1E 00 20 */ stfs f0, 0x20(r30)
+lbl_802A1508:
+/* 802A1508 0029D168 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A150C 0029D16C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 802A1510 0029D170 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 802A1514 0029D174 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 802A1518 0029D178 7C 08 03 A6 */ mtlr r0
+/* 802A151C 0029D17C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A1520 0029D180 4E 80 00 20 */ blr
+
+.global KPADRead
+KPADRead:
+/* 802A1524 0029D184 94 21 FF 40 */ stwu r1, -0xc0(r1)
+/* 802A1528 0029D188 7C 08 02 A6 */ mflr r0
+/* 802A152C 0029D18C 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 802A1530 0029D190 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 802A1534 0029D194 4B F2 5B C1 */ bl __save_gpr
+/* 802A1538 0029D198 1C 03 05 24 */ mulli r0, r3, 0x524
+/* 802A153C 0029D19C 3C E0 43 30 */ lis r7, 0x4330
+/* 802A1540 0029D1A0 3C C0 80 53 */ lis r6, lbl_805356D0@ha
+/* 802A1544 0029D1A4 90 E1 00 50 */ stw r7, 0x50(r1)
+/* 802A1548 0029D1A8 7C 7B 1B 78 */ mr r27, r3
+/* 802A154C 0029D1AC 38 C6 56 D0 */ addi r6, r6, lbl_805356D0@l
+/* 802A1550 0029D1B0 90 E1 00 58 */ stw r7, 0x58(r1)
+/* 802A1554 0029D1B4 7C 9C 23 78 */ mr r28, r4
+/* 802A1558 0029D1B8 7C AE 2B 78 */ mr r14, r5
+/* 802A155C 0029D1BC 7F E6 02 14 */ add r31, r6, r0
+/* 802A1560 0029D1C0 3B C0 00 00 */ li r30, 0
+/* 802A1564 0029D1C4 4B FC D1 F9 */ bl OSDisableInterrupts
+/* 802A1568 0029D1C8 88 1F 05 1C */ lbz r0, 0x51c(r31)
+/* 802A156C 0029D1CC 7C 71 1B 78 */ mr r17, r3
+/* 802A1570 0029D1D0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A1574 0029D1D4 41 82 00 10 */ beq lbl_802A1584
+/* 802A1578 0029D1D8 4B FC D2 0D */ bl OSRestoreInterrupts
+/* 802A157C 0029D1DC 38 60 00 00 */ li r3, 0
+/* 802A1580 0029D1E0 48 00 06 A4 */ b lbl_802A1C24
+lbl_802A1584:
+/* 802A1584 0029D1E4 3A 00 00 01 */ li r16, 1
+/* 802A1588 0029D1E8 7F 63 DB 78 */ mr r3, r27
+/* 802A158C 0029D1EC 9A 1F 05 1C */ stb r16, 0x51c(r31)
+/* 802A1590 0029D1F0 38 80 00 00 */ li r4, 0
+/* 802A1594 0029D1F4 48 00 77 E5 */ bl WPADProbe
+/* 802A1598 0029D1F8 2C 03 FF FF */ cmpwi r3, -1
+/* 802A159C 0029D1FC 7C 6F 1B 78 */ mr r15, r3
+/* 802A15A0 0029D200 40 82 00 58 */ bne lbl_802A15F8
+/* 802A15A4 0029D204 80 1F 04 D8 */ lwz r0, 0x4d8(r31)
+/* 802A15A8 0029D208 2C 80 00 00 */ cmpwi cr1, r0, 0
+/* 802A15AC 0029D20C 41 86 00 4C */ beq cr1, lbl_802A15F8
+/* 802A15B0 0029D210 88 1F 05 22 */ lbz r0, 0x522(r31)
+/* 802A15B4 0029D214 2C 00 00 00 */ cmpwi r0, 0
+/* 802A15B8 0029D218 41 82 00 40 */ beq lbl_802A15F8
+/* 802A15BC 0029D21C 88 1F 05 23 */ lbz r0, 0x523(r31)
+/* 802A15C0 0029D220 2C 00 00 00 */ cmpwi r0, 0
+/* 802A15C4 0029D224 40 82 00 34 */ bne lbl_802A15F8
+/* 802A15C8 0029D228 41 86 00 28 */ beq cr1, lbl_802A15F0
+/* 802A15CC 0029D22C 40 82 00 24 */ bne lbl_802A15F0
+/* 802A15D0 0029D230 9A 1F 05 23 */ stb r16, 0x523(r31)
+/* 802A15D4 0029D234 7F 63 DB 78 */ mr r3, r27
+/* 802A15D8 0029D238 38 80 00 01 */ li r4, 1
+/* 802A15DC 0029D23C 81 9F 04 D8 */ lwz r12, 0x4d8(r31)
+/* 802A15E0 0029D240 7D 89 03 A6 */ mtctr r12
+/* 802A15E4 0029D244 4E 80 04 21 */ bctrl
+/* 802A15E8 0029D248 38 00 00 00 */ li r0, 0
+/* 802A15EC 0029D24C 98 1F 05 22 */ stb r0, 0x522(r31)
+lbl_802A15F0:
+/* 802A15F0 0029D250 38 00 00 00 */ li r0, 0
+/* 802A15F4 0029D254 98 1F 05 1F */ stb r0, 0x51f(r31)
+lbl_802A15F8:
+/* 802A15F8 0029D258 7E 23 8B 78 */ mr r3, r17
+/* 802A15FC 0029D25C 4B FC D1 89 */ bl OSRestoreInterrupts
+/* 802A1600 0029D260 88 1F 05 1D */ lbz r0, 0x51d(r31)
+/* 802A1604 0029D264 2C 00 00 00 */ cmpwi r0, 0
+/* 802A1608 0029D268 41 82 00 10 */ beq lbl_802A1618
+/* 802A160C 0029D26C 99 FF 00 5D */ stb r15, 0x5d(r31)
+/* 802A1610 0029D270 7F E3 FB 78 */ mr r3, r31
+/* 802A1614 0029D274 4B FF DD AD */ bl reset_kpad
+lbl_802A1618:
+/* 802A1618 0029D278 3C 80 80 2A */ lis r4, KPADiSamplingCallback@ha
+/* 802A161C 0029D27C 7F 63 DB 78 */ mr r3, r27
+/* 802A1620 0029D280 38 84 1F D0 */ addi r4, r4, KPADiSamplingCallback@l
+/* 802A1624 0029D284 48 00 77 E1 */ bl WPADSetSamplingCallback
+/* 802A1628 0029D288 88 1F 01 0F */ lbz r0, 0x10f(r31)
+/* 802A162C 0029D28C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A1630 0029D290 41 82 05 E8 */ beq lbl_802A1C18
+/* 802A1634 0029D294 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A1638 0029D298 41 82 05 E0 */ beq lbl_802A1C18
+/* 802A163C 0029D29C 2C 0E 00 00 */ cmpwi r14, 0
+/* 802A1640 0029D2A0 41 82 05 D8 */ beq lbl_802A1C18
+/* 802A1644 0029D2A4 4B FC D1 19 */ bl OSDisableInterrupts
+/* 802A1648 0029D2A8 8B BF 01 0F */ lbz r29, 0x10f(r31)
+/* 802A164C 0029D2AC 7C 1D 70 40 */ cmplw r29, r14
+/* 802A1650 0029D2B0 7F BE EB 78 */ mr r30, r29
+/* 802A1654 0029D2B4 40 81 00 08 */ ble lbl_802A165C
+/* 802A1658 0029D2B8 7D DE 73 78 */ mr r30, r14
+lbl_802A165C:
+/* 802A165C 0029D2BC 38 80 00 00 */ li r4, 0
+/* 802A1660 0029D2C0 7F C0 F3 78 */ mr r0, r30
+/* 802A1664 0029D2C4 98 9F 01 0F */ stb r4, 0x10f(r31)
+/* 802A1668 0029D2C8 1C BE 00 84 */ mulli r5, r30, 0x84
+/* 802A166C 0029D2CC 88 9F 01 0E */ lbz r4, 0x10e(r31)
+/* 802A1670 0029D2D0 7C BC 2A 14 */ add r5, r28, r5
+/* 802A1674 0029D2D4 7C DE 20 51 */ subf. r6, r30, r4
+/* 802A1678 0029D2D8 40 80 00 08 */ bge lbl_802A1680
+/* 802A167C 0029D2DC 38 C6 00 10 */ addi r6, r6, 0x10
+lbl_802A1680:
+/* 802A1680 0029D2E0 38 A5 FF 7C */ addi r5, r5, -132
+/* 802A1684 0029D2E4 48 00 01 00 */ b lbl_802A1784
+lbl_802A1688:
+/* 802A1688 0029D2E8 1C 86 00 38 */ mulli r4, r6, 0x38
+/* 802A168C 0029D2EC 38 C6 00 01 */ addi r6, r6, 1
+/* 802A1690 0029D2F0 2C 06 00 10 */ cmpwi r6, 0x10
+/* 802A1694 0029D2F4 7C 9F 22 14 */ add r4, r31, r4
+/* 802A1698 0029D2F8 A1 04 01 10 */ lhz r8, 0x110(r4)
+/* 802A169C 0029D2FC A0 E4 01 12 */ lhz r7, 0x112(r4)
+/* 802A16A0 0029D300 B1 05 FF 7C */ sth r8, -0x84(r5)
+/* 802A16A4 0029D304 B0 E5 FF 7E */ sth r7, -0x82(r5)
+/* 802A16A8 0029D308 A1 04 01 14 */ lhz r8, 0x114(r4)
+/* 802A16AC 0029D30C A0 E4 01 16 */ lhz r7, 0x116(r4)
+/* 802A16B0 0029D310 B1 05 FF 80 */ sth r8, -0x80(r5)
+/* 802A16B4 0029D314 B0 E5 FF 82 */ sth r7, -0x7e(r5)
+/* 802A16B8 0029D318 A1 04 01 18 */ lhz r8, 0x118(r4)
+/* 802A16BC 0029D31C A0 E4 01 1A */ lhz r7, 0x11a(r4)
+/* 802A16C0 0029D320 B1 05 FF 84 */ sth r8, -0x7c(r5)
+/* 802A16C4 0029D324 B0 E5 FF 86 */ sth r7, -0x7a(r5)
+/* 802A16C8 0029D328 A1 04 01 1C */ lhz r8, 0x11c(r4)
+/* 802A16CC 0029D32C A0 E4 01 1E */ lhz r7, 0x11e(r4)
+/* 802A16D0 0029D330 B1 05 FF 88 */ sth r8, -0x78(r5)
+/* 802A16D4 0029D334 B0 E5 FF 8A */ sth r7, -0x76(r5)
+/* 802A16D8 0029D338 A1 04 01 20 */ lhz r8, 0x120(r4)
+/* 802A16DC 0029D33C A0 E4 01 22 */ lhz r7, 0x122(r4)
+/* 802A16E0 0029D340 B1 05 FF 8C */ sth r8, -0x74(r5)
+/* 802A16E4 0029D344 B0 E5 FF 8E */ sth r7, -0x72(r5)
+/* 802A16E8 0029D348 A1 04 01 24 */ lhz r8, 0x124(r4)
+/* 802A16EC 0029D34C A0 E4 01 26 */ lhz r7, 0x126(r4)
+/* 802A16F0 0029D350 B1 05 FF 90 */ sth r8, -0x70(r5)
+/* 802A16F4 0029D354 B0 E5 FF 92 */ sth r7, -0x6e(r5)
+/* 802A16F8 0029D358 A1 04 01 28 */ lhz r8, 0x128(r4)
+/* 802A16FC 0029D35C A0 E4 01 2A */ lhz r7, 0x12a(r4)
+/* 802A1700 0029D360 B1 05 FF 94 */ sth r8, -0x6c(r5)
+/* 802A1704 0029D364 B0 E5 FF 96 */ sth r7, -0x6a(r5)
+/* 802A1708 0029D368 A1 04 01 2C */ lhz r8, 0x12c(r4)
+/* 802A170C 0029D36C A0 E4 01 2E */ lhz r7, 0x12e(r4)
+/* 802A1710 0029D370 B1 05 FF 98 */ sth r8, -0x68(r5)
+/* 802A1714 0029D374 B0 E5 FF 9A */ sth r7, -0x66(r5)
+/* 802A1718 0029D378 A1 04 01 30 */ lhz r8, 0x130(r4)
+/* 802A171C 0029D37C A0 E4 01 32 */ lhz r7, 0x132(r4)
+/* 802A1720 0029D380 B1 05 FF 9C */ sth r8, -0x64(r5)
+/* 802A1724 0029D384 B0 E5 FF 9E */ sth r7, -0x62(r5)
+/* 802A1728 0029D388 A1 04 01 34 */ lhz r8, 0x134(r4)
+/* 802A172C 0029D38C A0 E4 01 36 */ lhz r7, 0x136(r4)
+/* 802A1730 0029D390 B1 05 FF A0 */ sth r8, -0x60(r5)
+/* 802A1734 0029D394 B0 E5 FF A2 */ sth r7, -0x5e(r5)
+/* 802A1738 0029D398 A1 04 01 38 */ lhz r8, 0x138(r4)
+/* 802A173C 0029D39C A0 E4 01 3A */ lhz r7, 0x13a(r4)
+/* 802A1740 0029D3A0 B1 05 FF A4 */ sth r8, -0x5c(r5)
+/* 802A1744 0029D3A4 B0 E5 FF A6 */ sth r7, -0x5a(r5)
+/* 802A1748 0029D3A8 A1 04 01 3C */ lhz r8, 0x13c(r4)
+/* 802A174C 0029D3AC A0 E4 01 3E */ lhz r7, 0x13e(r4)
+/* 802A1750 0029D3B0 B1 05 FF A8 */ sth r8, -0x58(r5)
+/* 802A1754 0029D3B4 B0 E5 FF AA */ sth r7, -0x56(r5)
+/* 802A1758 0029D3B8 A1 04 01 40 */ lhz r8, 0x140(r4)
+/* 802A175C 0029D3BC A0 E4 01 42 */ lhz r7, 0x142(r4)
+/* 802A1760 0029D3C0 B1 05 FF AC */ sth r8, -0x54(r5)
+/* 802A1764 0029D3C4 B0 E5 FF AE */ sth r7, -0x52(r5)
+/* 802A1768 0029D3C8 A0 E4 01 44 */ lhz r7, 0x144(r4)
+/* 802A176C 0029D3CC A0 84 01 46 */ lhz r4, 0x146(r4)
+/* 802A1770 0029D3D0 B0 E5 FF B0 */ sth r7, -0x50(r5)
+/* 802A1774 0029D3D4 B0 85 FF B2 */ sth r4, -0x4e(r5)
+/* 802A1778 0029D3D8 38 A5 FF 7C */ addi r5, r5, -132
+/* 802A177C 0029D3DC 41 80 00 08 */ blt lbl_802A1784
+/* 802A1780 0029D3E0 38 C0 00 00 */ li r6, 0
+lbl_802A1784:
+/* 802A1784 0029D3E4 34 00 FF FF */ addic. r0, r0, -1
+/* 802A1788 0029D3E8 40 82 FF 00 */ bne lbl_802A1688
+/* 802A178C 0029D3EC 1C 06 00 38 */ mulli r0, r6, 0x38
+/* 802A1790 0029D3F0 7E 1F 02 14 */ add r16, r31, r0
+/* 802A1794 0029D3F4 A1 F0 01 3A */ lhz r15, 0x13a(r16)
+/* 802A1798 0029D3F8 A0 10 01 36 */ lhz r0, 0x136(r16)
+/* 802A179C 0029D3FC 91 E1 00 74 */ stw r15, 0x74(r1)
+/* 802A17A0 0029D400 A1 F0 01 3C */ lhz r15, 0x13c(r16)
+/* 802A17A4 0029D404 B0 01 00 3E */ sth r0, 0x3e(r1)
+/* 802A17A8 0029D408 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 802A17AC 0029D40C 91 E1 00 60 */ stw r15, 0x60(r1)
+/* 802A17B0 0029D410 A1 F0 01 3E */ lhz r15, 0x13e(r16)
+/* 802A17B4 0029D414 B0 01 00 42 */ sth r0, 0x42(r1)
+/* 802A17B8 0029D418 80 01 00 60 */ lwz r0, 0x60(r1)
+/* 802A17BC 0029D41C 91 E1 00 64 */ stw r15, 0x64(r1)
+/* 802A17C0 0029D420 A1 F0 01 40 */ lhz r15, 0x140(r16)
+/* 802A17C4 0029D424 B0 01 00 44 */ sth r0, 0x44(r1)
+/* 802A17C8 0029D428 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 802A17CC 0029D42C 91 E1 00 68 */ stw r15, 0x68(r1)
+/* 802A17D0 0029D430 A1 F0 01 42 */ lhz r15, 0x142(r16)
+/* 802A17D4 0029D434 B0 01 00 46 */ sth r0, 0x46(r1)
+/* 802A17D8 0029D438 80 01 00 68 */ lwz r0, 0x68(r1)
+/* 802A17DC 0029D43C 91 E1 00 6C */ stw r15, 0x6c(r1)
+/* 802A17E0 0029D440 A1 F0 01 44 */ lhz r15, 0x144(r16)
+/* 802A17E4 0029D444 B0 01 00 48 */ sth r0, 0x48(r1)
+/* 802A17E8 0029D448 80 01 00 6C */ lwz r0, 0x6c(r1)
+/* 802A17EC 0029D44C 91 E1 00 70 */ stw r15, 0x70(r1)
+/* 802A17F0 0029D450 A2 30 01 10 */ lhz r17, 0x110(r16)
+/* 802A17F4 0029D454 A2 50 01 12 */ lhz r18, 0x112(r16)
+/* 802A17F8 0029D458 A2 70 01 14 */ lhz r19, 0x114(r16)
+/* 802A17FC 0029D45C A2 90 01 16 */ lhz r20, 0x116(r16)
+/* 802A1800 0029D460 A2 B0 01 18 */ lhz r21, 0x118(r16)
+/* 802A1804 0029D464 A2 D0 01 1A */ lhz r22, 0x11a(r16)
+/* 802A1808 0029D468 A2 F0 01 1C */ lhz r23, 0x11c(r16)
+/* 802A180C 0029D46C A3 10 01 1E */ lhz r24, 0x11e(r16)
+/* 802A1810 0029D470 A3 30 01 20 */ lhz r25, 0x120(r16)
+/* 802A1814 0029D474 A3 50 01 22 */ lhz r26, 0x122(r16)
+/* 802A1818 0029D478 A1 90 01 24 */ lhz r12, 0x124(r16)
+/* 802A181C 0029D47C A1 70 01 26 */ lhz r11, 0x126(r16)
+/* 802A1820 0029D480 A1 50 01 28 */ lhz r10, 0x128(r16)
+/* 802A1824 0029D484 A1 30 01 2A */ lhz r9, 0x12a(r16)
+/* 802A1828 0029D488 A1 10 01 2C */ lhz r8, 0x12c(r16)
+/* 802A182C 0029D48C A0 F0 01 2E */ lhz r7, 0x12e(r16)
+/* 802A1830 0029D490 A0 D0 01 30 */ lhz r6, 0x130(r16)
+/* 802A1834 0029D494 A0 B0 01 32 */ lhz r5, 0x132(r16)
+/* 802A1838 0029D498 A0 90 01 34 */ lhz r4, 0x134(r16)
+/* 802A183C 0029D49C A1 D0 01 38 */ lhz r14, 0x138(r16)
+/* 802A1840 0029D4A0 A1 F0 01 46 */ lhz r15, 0x146(r16)
+/* 802A1844 0029D4A4 B0 01 00 4A */ sth r0, 0x4a(r1)
+/* 802A1848 0029D4A8 80 01 00 70 */ lwz r0, 0x70(r1)
+/* 802A184C 0029D4AC B2 21 00 18 */ sth r17, 0x18(r1)
+/* 802A1850 0029D4B0 B2 41 00 1A */ sth r18, 0x1a(r1)
+/* 802A1854 0029D4B4 B2 61 00 1C */ sth r19, 0x1c(r1)
+/* 802A1858 0029D4B8 B2 81 00 1E */ sth r20, 0x1e(r1)
+/* 802A185C 0029D4BC B2 A1 00 20 */ sth r21, 0x20(r1)
+/* 802A1860 0029D4C0 B2 C1 00 22 */ sth r22, 0x22(r1)
+/* 802A1864 0029D4C4 B2 E1 00 24 */ sth r23, 0x24(r1)
+/* 802A1868 0029D4C8 B3 01 00 26 */ sth r24, 0x26(r1)
+/* 802A186C 0029D4CC B3 21 00 28 */ sth r25, 0x28(r1)
+/* 802A1870 0029D4D0 B3 41 00 2A */ sth r26, 0x2a(r1)
+/* 802A1874 0029D4D4 B1 81 00 2C */ sth r12, 0x2c(r1)
+/* 802A1878 0029D4D8 B1 61 00 2E */ sth r11, 0x2e(r1)
+/* 802A187C 0029D4DC B1 41 00 30 */ sth r10, 0x30(r1)
+/* 802A1880 0029D4E0 B1 21 00 32 */ sth r9, 0x32(r1)
+/* 802A1884 0029D4E4 B1 01 00 34 */ sth r8, 0x34(r1)
+/* 802A1888 0029D4E8 B0 E1 00 36 */ sth r7, 0x36(r1)
+/* 802A188C 0029D4EC B0 C1 00 38 */ sth r6, 0x38(r1)
+/* 802A1890 0029D4F0 B0 A1 00 3A */ sth r5, 0x3a(r1)
+/* 802A1894 0029D4F4 B0 81 00 3C */ sth r4, 0x3c(r1)
+/* 802A1898 0029D4F8 B1 C1 00 40 */ sth r14, 0x40(r1)
+/* 802A189C 0029D4FC B0 01 00 4C */ sth r0, 0x4c(r1)
+/* 802A18A0 0029D500 B1 E1 00 4E */ sth r15, 0x4e(r1)
+/* 802A18A4 0029D504 4B FC CE E1 */ bl OSRestoreInterrupts
+/* 802A18A8 0029D508 A1 42 A3 DC */ lhz r10, lbl_806429DC-_SDA2_BASE_(r2)
+/* 802A18AC 0029D50C 7F 63 DB 78 */ mr r3, r27
+/* 802A18B0 0029D510 A1 22 A3 DE */ lhz r9, lbl_806429DE-_SDA2_BASE_(r2)
+/* 802A18B4 0029D514 38 A1 00 10 */ addi r5, r1, 0x10
+/* 802A18B8 0029D518 A1 02 A3 E0 */ lhz r8, lbl_806429E0-_SDA2_BASE_(r2)
+/* 802A18BC 0029D51C 38 80 00 00 */ li r4, 0
+/* 802A18C0 0029D520 A0 E2 A3 E4 */ lhz r7, lbl_806429E4-_SDA2_BASE_(r2)
+/* 802A18C4 0029D524 A0 C2 A3 E6 */ lhz r6, lbl_806429E6-_SDA2_BASE_(r2)
+/* 802A18C8 0029D528 A0 02 A3 E8 */ lhz r0, lbl_806429E8-_SDA2_BASE_(r2)
+/* 802A18CC 0029D52C B1 41 00 10 */ sth r10, 0x10(r1)
+/* 802A18D0 0029D530 B1 21 00 12 */ sth r9, 0x12(r1)
+/* 802A18D4 0029D534 B1 01 00 14 */ sth r8, 0x14(r1)
+/* 802A18D8 0029D538 B0 E1 00 08 */ sth r7, 8(r1)
+/* 802A18DC 0029D53C B0 C1 00 0A */ sth r6, 0xa(r1)
+/* 802A18E0 0029D540 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 802A18E4 0029D544 48 00 72 D5 */ bl WPADGetAccGravityUnit
+/* 802A18E8 0029D548 A8 A1 00 10 */ lha r5, 0x10(r1)
+/* 802A18EC 0029D54C A8 81 00 14 */ lha r4, 0x14(r1)
+/* 802A18F0 0029D550 A8 61 00 12 */ lha r3, 0x12(r1)
+/* 802A18F4 0029D554 7C 04 29 D6 */ mullw r0, r4, r5
+/* 802A18F8 0029D558 7C 00 19 D7 */ mullw. r0, r0, r3
+/* 802A18FC 0029D55C 41 82 00 58 */ beq lbl_802A1954
+/* 802A1900 0029D560 6C A0 80 00 */ xoris r0, r5, 0x8000
+/* 802A1904 0029D564 6C 63 80 00 */ xoris r3, r3, 0x8000
+/* 802A1908 0029D568 90 01 00 54 */ stw r0, 0x54(r1)
+/* 802A190C 0029D56C 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 802A1910 0029D570 C8 82 A3 C8 */ lfd f4, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A1914 0029D574 C8 01 00 50 */ lfd f0, 0x50(r1)
+/* 802A1918 0029D578 90 61 00 5C */ stw r3, 0x5c(r1)
+/* 802A191C 0029D57C EC 40 20 28 */ fsubs f2, f0, f4
+/* 802A1920 0029D580 C0 62 A3 B0 */ lfs f3, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1924 0029D584 90 01 00 54 */ stw r0, 0x54(r1)
+/* 802A1928 0029D588 C8 21 00 58 */ lfd f1, 0x58(r1)
+/* 802A192C 0029D58C C8 01 00 50 */ lfd f0, 0x50(r1)
+/* 802A1930 0029D590 EC 43 10 24 */ fdivs f2, f3, f2
+/* 802A1934 0029D594 EC 21 20 28 */ fsubs f1, f1, f4
+/* 802A1938 0029D598 D0 5F 04 DC */ stfs f2, 0x4dc(r31)
+/* 802A193C 0029D59C EC 00 20 28 */ fsubs f0, f0, f4
+/* 802A1940 0029D5A0 EC 23 08 24 */ fdivs f1, f3, f1
+/* 802A1944 0029D5A4 EC 03 00 24 */ fdivs f0, f3, f0
+/* 802A1948 0029D5A8 D0 3F 04 E0 */ stfs f1, 0x4e0(r31)
+/* 802A194C 0029D5AC D0 1F 04 E4 */ stfs f0, 0x4e4(r31)
+/* 802A1950 0029D5B0 48 00 00 14 */ b lbl_802A1964
+lbl_802A1954:
+/* 802A1954 0029D5B4 C0 02 A3 EC */ lfs f0, lbl_806429EC-_SDA2_BASE_(r2)
+/* 802A1958 0029D5B8 D0 1F 04 DC */ stfs f0, 0x4dc(r31)
+/* 802A195C 0029D5BC D0 1F 04 E0 */ stfs f0, 0x4e0(r31)
+/* 802A1960 0029D5C0 D0 1F 04 E4 */ stfs f0, 0x4e4(r31)
+lbl_802A1964:
+/* 802A1964 0029D5C4 7F 63 DB 78 */ mr r3, r27
+/* 802A1968 0029D5C8 38 A1 00 08 */ addi r5, r1, 8
+/* 802A196C 0029D5CC 38 80 00 01 */ li r4, 1
+/* 802A1970 0029D5D0 48 00 72 49 */ bl WPADGetAccGravityUnit
+/* 802A1974 0029D5D4 A8 A1 00 08 */ lha r5, 8(r1)
+/* 802A1978 0029D5D8 A8 81 00 0C */ lha r4, 0xc(r1)
+/* 802A197C 0029D5DC A8 61 00 0A */ lha r3, 0xa(r1)
+/* 802A1980 0029D5E0 7C 04 29 D6 */ mullw r0, r4, r5
+/* 802A1984 0029D5E4 7C 00 19 D7 */ mullw. r0, r0, r3
+/* 802A1988 0029D5E8 41 82 00 58 */ beq lbl_802A19E0
+/* 802A198C 0029D5EC 6C A0 80 00 */ xoris r0, r5, 0x8000
+/* 802A1990 0029D5F0 6C 63 80 00 */ xoris r3, r3, 0x8000
+/* 802A1994 0029D5F4 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 802A1998 0029D5F8 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 802A199C 0029D5FC C8 82 A3 C8 */ lfd f4, lbl_806429C8-_SDA2_BASE_(r2)
+/* 802A19A0 0029D600 C8 01 00 58 */ lfd f0, 0x58(r1)
+/* 802A19A4 0029D604 90 61 00 54 */ stw r3, 0x54(r1)
+/* 802A19A8 0029D608 EC 40 20 28 */ fsubs f2, f0, f4
+/* 802A19AC 0029D60C C0 62 A3 B0 */ lfs f3, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A19B0 0029D610 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 802A19B4 0029D614 C8 21 00 50 */ lfd f1, 0x50(r1)
+/* 802A19B8 0029D618 C8 01 00 58 */ lfd f0, 0x58(r1)
+/* 802A19BC 0029D61C EC 43 10 24 */ fdivs f2, f3, f2
+/* 802A19C0 0029D620 EC 21 20 28 */ fsubs f1, f1, f4
+/* 802A19C4 0029D624 D0 5F 04 E8 */ stfs f2, 0x4e8(r31)
+/* 802A19C8 0029D628 EC 00 20 28 */ fsubs f0, f0, f4
+/* 802A19CC 0029D62C EC 23 08 24 */ fdivs f1, f3, f1
+/* 802A19D0 0029D630 EC 03 00 24 */ fdivs f0, f3, f0
+/* 802A19D4 0029D634 D0 3F 04 EC */ stfs f1, 0x4ec(r31)
+/* 802A19D8 0029D638 D0 1F 04 F0 */ stfs f0, 0x4f0(r31)
+/* 802A19DC 0029D63C 48 00 00 14 */ b lbl_802A19F0
+lbl_802A19E0:
+/* 802A19E0 0029D640 C0 02 A3 F0 */ lfs f0, lbl_806429F0-_SDA2_BASE_(r2)
+/* 802A19E4 0029D644 D0 1F 04 E8 */ stfs f0, 0x4e8(r31)
+/* 802A19E8 0029D648 D0 1F 04 EC */ stfs f0, 0x4ec(r31)
+/* 802A19EC 0029D64C D0 1F 04 F0 */ stfs f0, 0x4f0(r31)
+lbl_802A19F0:
+/* 802A19F0 0029D650 1C 1E 00 84 */ mulli r0, r30, 0x84
+/* 802A19F4 0029D654 3C 60 00 01 */ lis r3, 0x0000FFFF@ha
+/* 802A19F8 0029D658 7F C6 F3 78 */ mr r6, r30
+/* 802A19FC 0029D65C 39 23 FF FF */ addi r9, r3, 0x0000FFFF@l
+/* 802A1A00 0029D660 7D DC 02 14 */ add r14, r28, r0
+/* 802A1A04 0029D664 38 80 00 FD */ li r4, 0xfd
+/* 802A1A08 0029D668 7D 28 4B 78 */ mr r8, r9
+/* 802A1A0C 0029D66C 7D 27 4B 78 */ mr r7, r9
+/* 802A1A10 0029D670 38 AE FF 7C */ addi r5, r14, -132
+lbl_802A1A14:
+/* 802A1A14 0029D674 28 06 00 01 */ cmplwi r6, 1
+/* 802A1A18 0029D678 38 A5 FF 7C */ addi r5, r5, -132
+/* 802A1A1C 0029D67C 40 81 00 0C */ ble lbl_802A1A28
+/* 802A1A20 0029D680 7C A3 2B 78 */ mr r3, r5
+/* 802A1A24 0029D684 48 00 00 08 */ b lbl_802A1A2C
+lbl_802A1A28:
+/* 802A1A28 0029D688 38 61 00 18 */ addi r3, r1, 0x18
+lbl_802A1A2C:
+/* 802A1A2C 0029D68C 88 03 00 29 */ lbz r0, 0x29(r3)
+/* 802A1A30 0029D690 7C 00 07 74 */ extsb r0, r0
+/* 802A1A34 0029D694 2C 00 FF FE */ cmpwi r0, -2
+/* 802A1A38 0029D698 41 82 00 54 */ beq lbl_802A1A8C
+/* 802A1A3C 0029D69C 40 80 00 10 */ bge lbl_802A1A4C
+/* 802A1A40 0029D6A0 2C 00 FF F9 */ cmpwi r0, -7
+/* 802A1A44 0029D6A4 41 82 00 48 */ beq lbl_802A1A8C
+/* 802A1A48 0029D6A8 48 00 00 48 */ b lbl_802A1A90
+lbl_802A1A4C:
+/* 802A1A4C 0029D6AC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A1A50 0029D6B0 41 82 00 08 */ beq lbl_802A1A58
+/* 802A1A54 0029D6B4 48 00 00 3C */ b lbl_802A1A90
+lbl_802A1A58:
+/* 802A1A58 0029D6B8 88 83 00 28 */ lbz r4, 0x28(r3)
+/* 802A1A5C 0029D6BC 28 04 00 01 */ cmplwi r4, 1
+/* 802A1A60 0029D6C0 40 82 00 10 */ bne lbl_802A1A70
+/* 802A1A64 0029D6C4 A1 03 00 00 */ lhz r8, 0(r3)
+/* 802A1A68 0029D6C8 39 20 00 00 */ li r9, 0
+/* 802A1A6C 0029D6CC 48 00 00 20 */ b lbl_802A1A8C
+lbl_802A1A70:
+/* 802A1A70 0029D6D0 28 04 00 02 */ cmplwi r4, 2
+/* 802A1A74 0029D6D4 40 82 00 10 */ bne lbl_802A1A84
+/* 802A1A78 0029D6D8 A1 23 00 2A */ lhz r9, 0x2a(r3)
+/* 802A1A7C 0029D6DC 39 00 00 00 */ li r8, 0
+/* 802A1A80 0029D6E0 48 00 00 0C */ b lbl_802A1A8C
+lbl_802A1A84:
+/* 802A1A84 0029D6E4 39 20 00 00 */ li r9, 0
+/* 802A1A88 0029D6E8 39 00 00 00 */ li r8, 0
+lbl_802A1A8C:
+/* 802A1A8C 0029D6EC A0 E3 00 00 */ lhz r7, 0(r3)
+lbl_802A1A90:
+/* 802A1A90 0029D6F0 34 C6 FF FF */ addic. r6, r6, -1
+/* 802A1A94 0029D6F4 40 82 FF 80 */ bne lbl_802A1A14
+/* 802A1A98 0029D6F8 28 07 FF FF */ cmplwi r7, 0xffff
+/* 802A1A9C 0029D6FC 40 82 00 24 */ bne lbl_802A1AC0
+lbl_802A1AA0:
+/* 802A1AA0 0029D700 7F 83 E3 78 */ mr r3, r28
+/* 802A1AA4 0029D704 7F E4 FB 78 */ mr r4, r31
+/* 802A1AA8 0029D708 38 A0 00 84 */ li r5, 0x84
+/* 802A1AAC 0029D70C 4B D6 25 55 */ bl memcpy
+/* 802A1AB0 0029D710 37 DE FF FF */ addic. r30, r30, -1
+/* 802A1AB4 0029D714 3B 9C 00 84 */ addi r28, r28, 0x84
+/* 802A1AB8 0029D718 40 82 FF E8 */ bne lbl_802A1AA0
+/* 802A1ABC 0029D71C 48 00 01 5C */ b lbl_802A1C18
+lbl_802A1AC0:
+/* 802A1AC0 0029D720 28 08 FF FF */ cmplwi r8, 0xffff
+/* 802A1AC4 0029D724 40 82 00 08 */ bne lbl_802A1ACC
+/* 802A1AC8 0029D728 81 1F 00 00 */ lwz r8, 0(r31)
+lbl_802A1ACC:
+/* 802A1ACC 0029D72C 28 09 FF FF */ cmplwi r9, 0xffff
+/* 802A1AD0 0029D730 40 82 00 08 */ bne lbl_802A1AD8
+/* 802A1AD4 0029D734 81 3F 00 60 */ lwz r9, 0x60(r31)
+lbl_802A1AD8:
+/* 802A1AD8 0029D738 70 E0 9F FF */ andi. r0, r7, 0x9fff
+/* 802A1ADC 0029D73C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 802A1AE0 0029D740 51 00 04 64 */ rlwimi r0, r8, 0, 0x11, 0x12
+/* 802A1AE4 0029D744 28 04 00 02 */ cmplwi r4, 2
+/* 802A1AE8 0029D748 54 65 04 3E */ clrlwi r5, r3, 0x10
+/* 802A1AEC 0029D74C 7C 03 2A 78 */ xor r3, r0, r5
+/* 802A1AF0 0029D750 90 1F 00 00 */ stw r0, 0(r31)
+/* 802A1AF4 0029D754 7C 60 00 38 */ and r0, r3, r0
+/* 802A1AF8 0029D758 90 1F 00 04 */ stw r0, 4(r31)
+/* 802A1AFC 0029D75C 7C 60 28 38 */ and r0, r3, r5
+/* 802A1B00 0029D760 90 1F 00 08 */ stw r0, 8(r31)
+/* 802A1B04 0029D764 40 82 00 28 */ bne lbl_802A1B2C
+/* 802A1B08 0029D768 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 802A1B0C 0029D76C 55 20 04 3E */ clrlwi r0, r9, 0x10
+/* 802A1B10 0029D770 54 65 04 3E */ clrlwi r5, r3, 0x10
+/* 802A1B14 0029D774 90 1F 00 60 */ stw r0, 0x60(r31)
+/* 802A1B18 0029D778 7C 03 2A 78 */ xor r3, r0, r5
+/* 802A1B1C 0029D77C 7C 60 00 38 */ and r0, r3, r0
+/* 802A1B20 0029D780 90 1F 00 64 */ stw r0, 0x64(r31)
+/* 802A1B24 0029D784 7C 60 28 38 */ and r0, r3, r5
+/* 802A1B28 0029D788 90 1F 00 68 */ stw r0, 0x68(r31)
+lbl_802A1B2C:
+/* 802A1B2C 0029D78C 7F E3 FB 78 */ mr r3, r31
+/* 802A1B30 0029D790 7F A5 EB 78 */ mr r5, r29
+/* 802A1B34 0029D794 4B FF DA 61 */ bl calc_button_repeat
+/* 802A1B38 0029D798 7F CF F3 78 */ mr r15, r30
+/* 802A1B3C 0029D79C 39 CE FF 7C */ addi r14, r14, -132
+/* 802A1B40 0029D7A0 3A 40 00 01 */ li r18, 1
+/* 802A1B44 0029D7A4 3A 20 00 00 */ li r17, 0
+/* 802A1B48 0029D7A8 3A 00 00 10 */ li r16, 0x10
+lbl_802A1B4C:
+/* 802A1B4C 0029D7AC 28 0F 00 01 */ cmplwi r15, 1
+/* 802A1B50 0029D7B0 39 CE FF 7C */ addi r14, r14, -132
+/* 802A1B54 0029D7B4 40 81 00 0C */ ble lbl_802A1B60
+/* 802A1B58 0029D7B8 7D D3 73 78 */ mr r19, r14
+/* 802A1B5C 0029D7BC 48 00 00 08 */ b lbl_802A1B64
+lbl_802A1B60:
+/* 802A1B60 0029D7C0 3A 61 00 18 */ addi r19, r1, 0x18
+lbl_802A1B64:
+/* 802A1B64 0029D7C4 88 13 00 29 */ lbz r0, 0x29(r19)
+/* 802A1B68 0029D7C8 98 1F 00 5D */ stb r0, 0x5d(r31)
+/* 802A1B6C 0029D7CC 88 93 00 28 */ lbz r4, 0x28(r19)
+/* 802A1B70 0029D7D0 88 1F 00 5C */ lbz r0, 0x5c(r31)
+/* 802A1B74 0029D7D4 7C 00 20 40 */ cmplw r0, r4
+/* 802A1B78 0029D7D8 41 82 00 20 */ beq lbl_802A1B98
+/* 802A1B7C 0029D7DC 88 73 00 29 */ lbz r3, 0x29(r19)
+/* 802A1B80 0029D7E0 38 03 00 02 */ addi r0, r3, 2
+/* 802A1B84 0029D7E4 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A1B88 0029D7E8 28 00 00 02 */ cmplwi r0, 2
+/* 802A1B8C 0029D7EC 41 81 00 0C */ bgt lbl_802A1B98
+/* 802A1B90 0029D7F0 98 9F 00 5C */ stb r4, 0x5c(r31)
+/* 802A1B94 0029D7F4 9A 5F 05 1E */ stb r18, 0x51e(r31)
+lbl_802A1B98:
+/* 802A1B98 0029D7F8 88 13 00 36 */ lbz r0, 0x36(r19)
+/* 802A1B9C 0029D7FC 98 1F 00 5F */ stb r0, 0x5f(r31)
+/* 802A1BA0 0029D800 88 13 00 29 */ lbz r0, 0x29(r19)
+/* 802A1BA4 0029D804 7C 00 07 75 */ extsb. r0, r0
+/* 802A1BA8 0029D808 41 82 00 14 */ beq lbl_802A1BBC
+/* 802A1BAC 0029D80C 40 80 00 38 */ bge lbl_802A1BE4
+/* 802A1BB0 0029D810 2C 00 FF F9 */ cmpwi r0, -7
+/* 802A1BB4 0029D814 41 82 00 14 */ beq lbl_802A1BC8
+/* 802A1BB8 0029D818 48 00 00 2C */ b lbl_802A1BE4
+lbl_802A1BBC:
+/* 802A1BBC 0029D81C 7F E3 FB 78 */ mr r3, r31
+/* 802A1BC0 0029D820 7E 64 9B 78 */ mr r4, r19
+/* 802A1BC4 0029D824 4B FF F6 E9 */ bl read_kpad_stick
+lbl_802A1BC8:
+/* 802A1BC8 0029D828 7F E3 FB 78 */ mr r3, r31
+/* 802A1BCC 0029D82C 7E 64 9B 78 */ mr r4, r19
+/* 802A1BD0 0029D830 4B FF DE 11 */ bl read_kpad_acc
+/* 802A1BD4 0029D834 7F E3 FB 78 */ mr r3, r31
+/* 802A1BD8 0029D838 7E 64 9B 78 */ mr r4, r19
+/* 802A1BDC 0029D83C 4B FF EF 2D */ bl read_kpad_dpd
+/* 802A1BE0 0029D840 48 00 00 08 */ b lbl_802A1BE8
+lbl_802A1BE4:
+/* 802A1BE4 0029D844 9A 3F 00 5E */ stb r17, 0x5e(r31)
+lbl_802A1BE8:
+/* 802A1BE8 0029D848 38 AE 00 80 */ addi r5, r14, 0x80
+/* 802A1BEC 0029D84C 38 9F FF FC */ addi r4, r31, -4
+/* 802A1BF0 0029D850 7E 09 03 A6 */ mtctr r16
+lbl_802A1BF4:
+/* 802A1BF4 0029D854 80 64 00 04 */ lwz r3, 4(r4)
+/* 802A1BF8 0029D858 84 04 00 08 */ lwzu r0, 8(r4)
+/* 802A1BFC 0029D85C 90 65 00 04 */ stw r3, 4(r5)
+/* 802A1C00 0029D860 94 05 00 08 */ stwu r0, 8(r5)
+/* 802A1C04 0029D864 42 00 FF F0 */ bdnz lbl_802A1BF4
+/* 802A1C08 0029D868 80 04 00 04 */ lwz r0, 4(r4)
+/* 802A1C0C 0029D86C 35 EF FF FF */ addic. r15, r15, -1
+/* 802A1C10 0029D870 90 05 00 04 */ stw r0, 4(r5)
+/* 802A1C14 0029D874 40 82 FF 38 */ bne lbl_802A1B4C
+lbl_802A1C18:
+/* 802A1C18 0029D878 38 00 00 00 */ li r0, 0
+/* 802A1C1C 0029D87C 7F C3 F3 78 */ mr r3, r30
+/* 802A1C20 0029D880 98 1F 05 1C */ stb r0, 0x51c(r31)
+lbl_802A1C24:
+/* 802A1C24 0029D884 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 802A1C28 0029D888 4B F2 55 19 */ bl __restore_gpr
+/* 802A1C2C 0029D88C 80 01 00 C4 */ lwz r0, 0xc4(r1)
+/* 802A1C30 0029D890 7C 08 03 A6 */ mtlr r0
+/* 802A1C34 0029D894 38 21 00 C0 */ addi r1, r1, 0xc0
+/* 802A1C38 0029D898 4E 80 00 20 */ blr
+
+.global KPADInit
+KPADInit:
+/* 802A1C3C 0029D89C 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 802A1C40 0029D8A0 7C 08 02 A6 */ mflr r0
+/* 802A1C44 0029D8A4 90 01 00 94 */ stw r0, 0x94(r1)
+/* 802A1C48 0029D8A8 DB E1 00 80 */ stfd f31, 0x80(r1)
+/* 802A1C4C 0029D8AC F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0
+/* 802A1C50 0029D8B0 DB C1 00 70 */ stfd f30, 0x70(r1)
+/* 802A1C54 0029D8B4 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0
+/* 802A1C58 0029D8B8 DB A1 00 60 */ stfd f29, 0x60(r1)
+/* 802A1C5C 0029D8BC F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0
+/* 802A1C60 0029D8C0 DB 81 00 50 */ stfd f28, 0x50(r1)
+/* 802A1C64 0029D8C4 F3 81 00 58 */ psq_st f28, 88(r1), 0, qr0
+/* 802A1C68 0029D8C8 DB 61 00 40 */ stfd f27, 0x40(r1)
+/* 802A1C6C 0029D8CC F3 61 00 48 */ psq_st f27, 72(r1), 0, qr0
+/* 802A1C70 0029D8D0 DB 41 00 30 */ stfd f26, 0x30(r1)
+/* 802A1C74 0029D8D4 F3 41 00 38 */ psq_st f26, 56(r1), 0, qr0
+/* 802A1C78 0029D8D8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A1C7C 0029D8DC 4B F2 54 A5 */ bl _savegpr_25
+/* 802A1C80 0029D8E0 48 00 5E 0D */ bl WPADInit
+lbl_802A1C84:
+/* 802A1C84 0029D8E4 48 00 5E 75 */ bl WPADGetStatus
+/* 802A1C88 0029D8E8 2C 03 00 03 */ cmpwi r3, 3
+/* 802A1C8C 0029D8EC 40 82 FF F8 */ bne lbl_802A1C84
+/* 802A1C90 0029D8F0 3F 60 80 53 */ lis r27, lbl_805356D0@ha
+/* 802A1C94 0029D8F4 38 80 00 00 */ li r4, 0
+/* 802A1C98 0029D8F8 38 7B 56 D0 */ addi r3, r27, lbl_805356D0@l
+/* 802A1C9C 0029D8FC 38 A0 14 90 */ li r5, 0x1490
+/* 802A1CA0 0029D900 4B D6 24 65 */ bl memset
+/* 802A1CA4 0029D904 48 00 99 DD */ bl WPADGetDpdSensitivity
+/* 802A1CA8 0029D908 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802A1CAC 0029D90C 3C 00 43 30 */ lis r0, 0x4330
+/* 802A1CB0 0029D910 90 61 00 0C */ stw r3, 0xc(r1)
+/* 802A1CB4 0029D914 3C 60 00 01 */ lis r3, 0x00009C40@ha
+/* 802A1CB8 0029D918 3B 5B 56 D0 */ addi r26, r27, 0x56d0
+/* 802A1CBC 0029D91C C8 22 A3 F8 */ lfd f1, lbl_806429F8-_SDA2_BASE_(r2)
+/* 802A1CC0 0029D920 90 01 00 08 */ stw r0, 8(r1)
+/* 802A1CC4 0029D924 3B A3 9C 40 */ addi r29, r3, 0x00009C40@l
+/* 802A1CC8 0029D928 C3 E2 A3 B0 */ lfs f31, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1CCC 0029D92C 3B 20 00 00 */ li r25, 0
+/* 802A1CD0 0029D930 C8 01 00 08 */ lfd f0, 8(r1)
+/* 802A1CD4 0029D934 3B E0 FF FF */ li r31, -1
+/* 802A1CD8 0029D938 C3 82 A3 A0 */ lfs f28, lbl_806429A0-_SDA2_BASE_(r2)
+/* 802A1CDC 0029D93C 3B C0 00 00 */ li r30, 0
+/* 802A1CE0 0029D940 EC 00 08 28 */ fsubs f0, f0, f1
+/* 802A1CE4 0029D944 C3 A2 A3 BC */ lfs f29, lbl_806429BC-_SDA2_BASE_(r2)
+/* 802A1CE8 0029D948 C3 C2 A3 C0 */ lfs f30, lbl_806429C0-_SDA2_BASE_(r2)
+/* 802A1CEC 0029D94C 3B 60 00 01 */ li r27, 1
+/* 802A1CF0 0029D950 3B 80 00 FD */ li r28, 0xfd
+/* 802A1CF4 0029D954 EC 1F 00 2A */ fadds f0, f31, f0
+/* 802A1CF8 0029D958 D0 0D 89 48 */ stfs f0, lbl_8063DC08-_SDA_BASE_(r13)
+lbl_802A1CFC:
+/* 802A1CFC 0029D95C 9B 7A 05 20 */ stb r27, 0x520(r26)
+/* 802A1D00 0029D960 C3 42 A3 B0 */ lfs f26, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1D04 0029D964 9B DA 05 21 */ stb r30, 0x521(r26)
+/* 802A1D08 0029D968 C3 62 A3 B8 */ lfs f27, lbl_806429B8-_SDA2_BASE_(r2)
+/* 802A1D0C 0029D96C EC 3A 06 B2 */ fmuls f1, f26, f26
+/* 802A1D10 0029D970 9B 9A 00 5C */ stb r28, 0x5c(r26)
+/* 802A1D14 0029D974 EC 1B 06 F2 */ fmuls f0, f27, f27
+/* 802A1D18 0029D978 C0 4D 89 1C */ lfs f2, lbl_8063DBDC-_SDA_BASE_(r13)
+/* 802A1D1C 0029D97C 9B DA 00 5F */ stb r30, 0x5f(r26)
+/* 802A1D20 0029D980 80 6D 89 20 */ lwz r3, lbl_8063DBE0-_SDA_BASE_(r13)
+/* 802A1D24 0029D984 D0 5A 00 A4 */ stfs f2, 0xa4(r26)
+/* 802A1D28 0029D988 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A1D2C 0029D98C 80 0D 89 24 */ lwz r0, lbl_8063DBE4-_SDA_BASE_(r13)
+/* 802A1D30 0029D990 90 7A 00 A8 */ stw r3, 0xa8(r26)
+/* 802A1D34 0029D994 80 6D 89 28 */ lwz r3, lbl_8063DBE8-_SDA_BASE_(r13)
+/* 802A1D38 0029D998 90 1A 00 AC */ stw r0, 0xac(r26)
+/* 802A1D3C 0029D99C 80 0D 89 2C */ lwz r0, lbl_8063DBEC-_SDA_BASE_(r13)
+/* 802A1D40 0029D9A0 90 7A 00 B0 */ stw r3, 0xb0(r26)
+/* 802A1D44 0029D9A4 80 6D AD C8 */ lwz r3, lbl_80640088-_SDA_BASE_(r13)
+/* 802A1D48 0029D9A8 90 1A 00 B4 */ stw r0, 0xb4(r26)
+/* 802A1D4C 0029D9AC 80 0D AD CC */ lwz r0, lbl_8064008C-_SDA_BASE_(r13)
+/* 802A1D50 0029D9B0 90 7A 00 B8 */ stw r3, 0xb8(r26)
+/* 802A1D54 0029D9B4 90 1A 00 BC */ stw r0, 0xbc(r26)
+/* 802A1D58 0029D9B8 4B F3 2A DD */ bl sqrt
+/* 802A1D5C 0029D9BC C0 1A 00 B8 */ lfs f0, 0xb8(r26)
+/* 802A1D60 0029D9C0 FC 20 08 18 */ frsp f1, f1
+/* 802A1D64 0029D9C4 FC 00 E0 40 */ fcmpo cr0, f0, f28
+/* 802A1D68 0029D9C8 40 80 00 0C */ bge lbl_802A1D74
+/* 802A1D6C 0029D9CC EF 5A 00 2A */ fadds f26, f26, f0
+/* 802A1D70 0029D9D0 48 00 00 08 */ b lbl_802A1D78
+lbl_802A1D74:
+/* 802A1D74 0029D9D4 EF 5A 00 28 */ fsubs f26, f26, f0
+lbl_802A1D78:
+/* 802A1D78 0029D9D8 C0 1A 00 BC */ lfs f0, 0xbc(r26)
+/* 802A1D7C 0029D9DC FC 00 E0 40 */ fcmpo cr0, f0, f28
+/* 802A1D80 0029D9E0 40 80 00 0C */ bge lbl_802A1D8C
+/* 802A1D84 0029D9E4 EF 7B 00 2A */ fadds f27, f27, f0
+/* 802A1D88 0029D9E8 48 00 00 08 */ b lbl_802A1D90
+lbl_802A1D8C:
+/* 802A1D8C 0029D9EC EF 7B 00 28 */ fsubs f27, f27, f0
+lbl_802A1D90:
+/* 802A1D90 0029D9F0 FC 1A D8 40 */ fcmpo cr0, f26, f27
+/* 802A1D94 0029D9F4 40 80 00 08 */ bge lbl_802A1D9C
+/* 802A1D98 0029D9F8 48 00 00 08 */ b lbl_802A1DA0
+lbl_802A1D9C:
+/* 802A1D9C 0029D9FC FF 40 D8 90 */ fmr f26, f27
+lbl_802A1DA0:
+/* 802A1DA0 0029DA00 EC 01 D0 24 */ fdivs f0, f1, f26
+/* 802A1DA4 0029DA04 D0 1A 00 C0 */ stfs f0, 0xc0(r26)
+/* 802A1DA8 0029DA08 D3 9A 00 9C */ stfs f28, 0x9c(r26)
+/* 802A1DAC 0029DA0C D3 9A 00 94 */ stfs f28, 0x94(r26)
+/* 802A1DB0 0029DA10 D3 9A 00 8C */ stfs f28, 0x8c(r26)
+/* 802A1DB4 0029DA14 D3 9A 00 84 */ stfs f28, 0x84(r26)
+/* 802A1DB8 0029DA18 D3 FA 00 A0 */ stfs f31, 0xa0(r26)
+/* 802A1DBC 0029DA1C D3 FA 00 98 */ stfs f31, 0x98(r26)
+/* 802A1DC0 0029DA20 D3 FA 00 90 */ stfs f31, 0x90(r26)
+/* 802A1DC4 0029DA24 D3 FA 00 88 */ stfs f31, 0x88(r26)
+/* 802A1DC8 0029DA28 B3 BA 04 D0 */ sth r29, 0x4d0(r26)
+/* 802A1DCC 0029DA2C B3 DA 04 D2 */ sth r30, 0x4d2(r26)
+/* 802A1DD0 0029DA30 B3 DA 04 CC */ sth r30, 0x4cc(r26)
+/* 802A1DD4 0029DA34 B3 BA 04 CE */ sth r29, 0x4ce(r26)
+/* 802A1DD8 0029DA38 B3 DA 04 D4 */ sth r30, 0x4d4(r26)
+/* 802A1DDC 0029DA3C B3 BA 04 D6 */ sth r29, 0x4d6(r26)
+/* 802A1DE0 0029DA40 48 00 5D 61 */ bl WPADGetSensorBarPosition
+/* 802A1DE4 0029DA44 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A1DE8 0029DA48 28 00 00 01 */ cmplwi r0, 1
+/* 802A1DEC 0029DA4C 40 82 00 74 */ bne lbl_802A1E60
+/* 802A1DF0 0029DA50 C3 42 A3 B0 */ lfs f26, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1DF4 0029DA54 C3 62 A3 B8 */ lfs f27, lbl_806429B8-_SDA2_BASE_(r2)
+/* 802A1DF8 0029DA58 EC 3A 06 B2 */ fmuls f1, f26, f26
+/* 802A1DFC 0029DA5C D3 9A 00 B8 */ stfs f28, 0xb8(r26)
+/* 802A1E00 0029DA60 EC 1B 06 F2 */ fmuls f0, f27, f27
+/* 802A1E04 0029DA64 D3 BA 00 BC */ stfs f29, 0xbc(r26)
+/* 802A1E08 0029DA68 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A1E0C 0029DA6C 4B F3 2A 29 */ bl sqrt
+/* 802A1E10 0029DA70 C0 1A 00 B8 */ lfs f0, 0xb8(r26)
+/* 802A1E14 0029DA74 FC 20 08 18 */ frsp f1, f1
+/* 802A1E18 0029DA78 FC 00 E0 40 */ fcmpo cr0, f0, f28
+/* 802A1E1C 0029DA7C 40 80 00 0C */ bge lbl_802A1E28
+/* 802A1E20 0029DA80 EF 5A 00 2A */ fadds f26, f26, f0
+/* 802A1E24 0029DA84 48 00 00 08 */ b lbl_802A1E2C
+lbl_802A1E28:
+/* 802A1E28 0029DA88 EF 5A 00 28 */ fsubs f26, f26, f0
+lbl_802A1E2C:
+/* 802A1E2C 0029DA8C C0 1A 00 BC */ lfs f0, 0xbc(r26)
+/* 802A1E30 0029DA90 FC 00 E0 40 */ fcmpo cr0, f0, f28
+/* 802A1E34 0029DA94 40 80 00 0C */ bge lbl_802A1E40
+/* 802A1E38 0029DA98 EF 7B 00 2A */ fadds f27, f27, f0
+/* 802A1E3C 0029DA9C 48 00 00 08 */ b lbl_802A1E44
+lbl_802A1E40:
+/* 802A1E40 0029DAA0 EF 7B 00 28 */ fsubs f27, f27, f0
+lbl_802A1E44:
+/* 802A1E44 0029DAA4 FC 1A D8 40 */ fcmpo cr0, f26, f27
+/* 802A1E48 0029DAA8 40 80 00 08 */ bge lbl_802A1E50
+/* 802A1E4C 0029DAAC 48 00 00 08 */ b lbl_802A1E54
+lbl_802A1E50:
+/* 802A1E50 0029DAB0 FF 40 D8 90 */ fmr f26, f27
+lbl_802A1E54:
+/* 802A1E54 0029DAB4 EC 01 D0 24 */ fdivs f0, f1, f26
+/* 802A1E58 0029DAB8 D0 1A 00 C0 */ stfs f0, 0xc0(r26)
+/* 802A1E5C 0029DABC 48 00 00 70 */ b lbl_802A1ECC
+lbl_802A1E60:
+/* 802A1E60 0029DAC0 C3 42 A3 B0 */ lfs f26, lbl_806429B0-_SDA2_BASE_(r2)
+/* 802A1E64 0029DAC4 C3 62 A3 B8 */ lfs f27, lbl_806429B8-_SDA2_BASE_(r2)
+/* 802A1E68 0029DAC8 EC 3A 06 B2 */ fmuls f1, f26, f26
+/* 802A1E6C 0029DACC D3 9A 00 B8 */ stfs f28, 0xb8(r26)
+/* 802A1E70 0029DAD0 EC 1B 06 F2 */ fmuls f0, f27, f27
+/* 802A1E74 0029DAD4 D3 DA 00 BC */ stfs f30, 0xbc(r26)
+/* 802A1E78 0029DAD8 EC 21 00 2A */ fadds f1, f1, f0
+/* 802A1E7C 0029DADC 4B F3 29 B9 */ bl sqrt
+/* 802A1E80 0029DAE0 C0 1A 00 B8 */ lfs f0, 0xb8(r26)
+/* 802A1E84 0029DAE4 FC 20 08 18 */ frsp f1, f1
+/* 802A1E88 0029DAE8 FC 00 E0 40 */ fcmpo cr0, f0, f28
+/* 802A1E8C 0029DAEC 40 80 00 0C */ bge lbl_802A1E98
+/* 802A1E90 0029DAF0 EF 5A 00 2A */ fadds f26, f26, f0
+/* 802A1E94 0029DAF4 48 00 00 08 */ b lbl_802A1E9C
+lbl_802A1E98:
+/* 802A1E98 0029DAF8 EF 5A 00 28 */ fsubs f26, f26, f0
+lbl_802A1E9C:
+/* 802A1E9C 0029DAFC C0 1A 00 BC */ lfs f0, 0xbc(r26)
+/* 802A1EA0 0029DB00 FC 00 E0 40 */ fcmpo cr0, f0, f28
+/* 802A1EA4 0029DB04 40 80 00 0C */ bge lbl_802A1EB0
+/* 802A1EA8 0029DB08 EF 7B 00 2A */ fadds f27, f27, f0
+/* 802A1EAC 0029DB0C 48 00 00 08 */ b lbl_802A1EB4
+lbl_802A1EB0:
+/* 802A1EB0 0029DB10 EF 7B 00 28 */ fsubs f27, f27, f0
+lbl_802A1EB4:
+/* 802A1EB4 0029DB14 FC 1A D8 40 */ fcmpo cr0, f26, f27
+/* 802A1EB8 0029DB18 40 80 00 08 */ bge lbl_802A1EC0
+/* 802A1EBC 0029DB1C 48 00 00 08 */ b lbl_802A1EC4
+lbl_802A1EC0:
+/* 802A1EC0 0029DB20 FF 40 D8 90 */ fmr f26, f27
+lbl_802A1EC4:
+/* 802A1EC4 0029DB24 EC 01 D0 24 */ fdivs f0, f1, f26
+/* 802A1EC8 0029DB28 D0 1A 00 C0 */ stfs f0, 0xc0(r26)
+lbl_802A1ECC:
+/* 802A1ECC 0029DB2C 7F 43 D3 78 */ mr r3, r26
+/* 802A1ED0 0029DB30 38 80 00 00 */ li r4, 0
+lbl_802A1ED4:
+/* 802A1ED4 0029DB34 38 84 00 01 */ addi r4, r4, 1
+/* 802A1ED8 0029DB38 9B E3 01 39 */ stb r31, 0x139(r3)
+/* 802A1EDC 0029DB3C 28 04 00 10 */ cmplwi r4, 0x10
+/* 802A1EE0 0029DB40 38 63 00 38 */ addi r3, r3, 0x38
+/* 802A1EE4 0029DB44 41 80 FF F0 */ blt lbl_802A1ED4
+/* 802A1EE8 0029DB48 3B 39 00 01 */ addi r25, r25, 1
+/* 802A1EEC 0029DB4C 3B 5A 05 24 */ addi r26, r26, 0x524
+/* 802A1EF0 0029DB50 2C 19 00 04 */ cmpwi r25, 4
+/* 802A1EF4 0029DB54 41 80 FE 08 */ blt lbl_802A1CFC
+/* 802A1EF8 0029DB58 C3 6D 89 30 */ lfs f27, lbl_8063DBF0-_SDA_BASE_(r13)
+/* 802A1EFC 0029DB5C 4B FC C8 61 */ bl OSDisableInterrupts
+/* 802A1F00 0029DB60 C0 02 A3 A8 */ lfs f0, lbl_806429A8-_SDA2_BASE_(r2)
+/* 802A1F04 0029DB64 D3 6D 89 30 */ stfs f27, lbl_8063DBF0-_SDA_BASE_(r13)
+/* 802A1F08 0029DB68 EC 1B 00 24 */ fdivs f0, f27, f0
+/* 802A1F0C 0029DB6C D0 0D AD E4 */ stfs f0, lbl_806400A4-_SDA_BASE_(r13)
+/* 802A1F10 0029DB70 D0 0D AD E0 */ stfs f0, lbl_806400A0-_SDA_BASE_(r13)
+/* 802A1F14 0029DB74 4B FC C8 71 */ bl OSRestoreInterrupts
+/* 802A1F18 0029DB78 3C 60 80 53 */ lis r3, lbl_805356D0@ha
+/* 802A1F1C 0029DB7C 3B 60 00 03 */ li r27, 3
+/* 802A1F20 0029DB80 38 63 56 D0 */ addi r3, r3, lbl_805356D0@l
+/* 802A1F24 0029DB84 3B E0 00 01 */ li r31, 1
+/* 802A1F28 0029DB88 3B 83 0F 6C */ addi r28, r3, 0xf6c
+lbl_802A1F2C:
+/* 802A1F2C 0029DB8C 7F 63 DB 78 */ mr r3, r27
+/* 802A1F30 0029DB90 38 80 00 00 */ li r4, 0
+/* 802A1F34 0029DB94 48 00 73 75 */ bl WPADControlMotor
+/* 802A1F38 0029DB98 37 7B FF FF */ addic. r27, r27, -1
+/* 802A1F3C 0029DB9C 9B FC 05 1D */ stb r31, 0x51d(r28)
+/* 802A1F40 0029DBA0 3B 9C FA DC */ addi r28, r28, -1316
+/* 802A1F44 0029DBA4 40 80 FF E8 */ bge lbl_802A1F2C
+/* 802A1F48 0029DBA8 80 6D 89 18 */ lwz r3, lbl_8063DBD8-_SDA_BASE_(r13)
+/* 802A1F4C 0029DBAC 4B FC 77 05 */ bl OSRegisterVersion
+/* 802A1F50 0029DBB0 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0
+/* 802A1F54 0029DBB4 CB E1 00 80 */ lfd f31, 0x80(r1)
+/* 802A1F58 0029DBB8 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0
+/* 802A1F5C 0029DBBC CB C1 00 70 */ lfd f30, 0x70(r1)
+/* 802A1F60 0029DBC0 E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0
+/* 802A1F64 0029DBC4 CB A1 00 60 */ lfd f29, 0x60(r1)
+/* 802A1F68 0029DBC8 E3 81 00 58 */ psq_l f28, 88(r1), 0, qr0
+/* 802A1F6C 0029DBCC CB 81 00 50 */ lfd f28, 0x50(r1)
+/* 802A1F70 0029DBD0 E3 61 00 48 */ psq_l f27, 72(r1), 0, qr0
+/* 802A1F74 0029DBD4 CB 61 00 40 */ lfd f27, 0x40(r1)
+/* 802A1F78 0029DBD8 E3 41 00 38 */ psq_l f26, 56(r1), 0, qr0
+/* 802A1F7C 0029DBDC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A1F80 0029DBE0 CB 41 00 30 */ lfd f26, 0x30(r1)
+/* 802A1F84 0029DBE4 4B F2 51 E9 */ bl _restgpr_25
+/* 802A1F88 0029DBE8 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 802A1F8C 0029DBEC 7C 08 03 A6 */ mtlr r0
+/* 802A1F90 0029DBF0 38 21 00 90 */ addi r1, r1, 0x90
+/* 802A1F94 0029DBF4 4E 80 00 20 */ blr
+
+.global KPADDisableDPD
+KPADDisableDPD:
+/* 802A1F98 0029DBF8 1C 03 05 24 */ mulli r0, r3, 0x524
+/* 802A1F9C 0029DBFC 3C 60 80 53 */ lis r3, lbl_805356D0@ha
+/* 802A1FA0 0029DC00 38 80 00 00 */ li r4, 0
+/* 802A1FA4 0029DC04 38 63 56 D0 */ addi r3, r3, lbl_805356D0@l
+/* 802A1FA8 0029DC08 7C 63 02 14 */ add r3, r3, r0
+/* 802A1FAC 0029DC0C 98 83 05 20 */ stb r4, 0x520(r3)
+/* 802A1FB0 0029DC10 4E 80 00 20 */ blr
+
+.global KPADEnableDPD
+KPADEnableDPD:
+/* 802A1FB4 0029DC14 1C 03 05 24 */ mulli r0, r3, 0x524
+/* 802A1FB8 0029DC18 3C 60 80 53 */ lis r3, lbl_805356D0@ha
+/* 802A1FBC 0029DC1C 38 80 00 01 */ li r4, 1
+/* 802A1FC0 0029DC20 38 63 56 D0 */ addi r3, r3, lbl_805356D0@l
+/* 802A1FC4 0029DC24 7C 63 02 14 */ add r3, r3, r0
+/* 802A1FC8 0029DC28 98 83 05 20 */ stb r4, 0x520(r3)
+/* 802A1FCC 0029DC2C 4E 80 00 20 */ blr
+
+KPADiSamplingCallback:
+/* 802A1FD0 0029DC30 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A1FD4 0029DC34 7C 08 02 A6 */ mflr r0
+/* 802A1FD8 0029DC38 3C 80 80 53 */ lis r4, lbl_805356D0@ha
+/* 802A1FDC 0029DC3C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A1FE0 0029DC40 1C 03 05 24 */ mulli r0, r3, 0x524
+/* 802A1FE4 0029DC44 38 84 56 D0 */ addi r4, r4, lbl_805356D0@l
+/* 802A1FE8 0029DC48 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A1FEC 0029DC4C 7F E4 02 14 */ add r31, r4, r0
+/* 802A1FF0 0029DC50 38 81 00 08 */ addi r4, r1, 8
+/* 802A1FF4 0029DC54 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A1FF8 0029DC58 7C 7E 1B 78 */ mr r30, r3
+/* 802A1FFC 0029DC5C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A2000 0029DC60 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A2004 0029DC64 48 00 6D 75 */ bl WPADProbe
+/* 802A2008 0029DC68 2C 03 FF FF */ cmpwi r3, -1
+/* 802A200C 0029DC6C 41 82 01 84 */ beq lbl_802A2190
+/* 802A2010 0029DC70 8B BF 01 0E */ lbz r29, 0x10e(r31)
+/* 802A2014 0029DC74 28 1D 00 10 */ cmplwi r29, 0x10
+/* 802A2018 0029DC78 41 80 00 08 */ blt lbl_802A2020
+/* 802A201C 0029DC7C 3B A0 00 00 */ li r29, 0
+lbl_802A2020:
+/* 802A2020 0029DC80 1C 1D 00 38 */ mulli r0, r29, 0x38
+/* 802A2024 0029DC84 7F C3 F3 78 */ mr r3, r30
+/* 802A2028 0029DC88 7C 9F 02 14 */ add r4, r31, r0
+/* 802A202C 0029DC8C 3B 84 01 10 */ addi r28, r4, 0x110
+/* 802A2030 0029DC90 7F 84 E3 78 */ mr r4, r28
+/* 802A2034 0029DC94 48 00 76 3D */ bl WPADRead
+/* 802A2038 0029DC98 7F C3 F3 78 */ mr r3, r30
+/* 802A203C 0029DC9C 48 00 6F 01 */ bl WPADGetDataFormat
+/* 802A2040 0029DCA0 98 7C 00 36 */ stb r3, 0x36(r28)
+/* 802A2044 0029DCA4 38 1D 00 01 */ addi r0, r29, 1
+/* 802A2048 0029DCA8 98 1F 01 0E */ stb r0, 0x10e(r31)
+/* 802A204C 0029DCAC 88 7F 01 0F */ lbz r3, 0x10f(r31)
+/* 802A2050 0029DCB0 28 03 00 10 */ cmplwi r3, 0x10
+/* 802A2054 0029DCB4 40 80 00 0C */ bge lbl_802A2060
+/* 802A2058 0029DCB8 38 03 00 01 */ addi r0, r3, 1
+/* 802A205C 0029DCBC 98 1F 01 0F */ stb r0, 0x10f(r31)
+lbl_802A2060:
+/* 802A2060 0029DCC0 80 01 00 08 */ lwz r0, 8(r1)
+/* 802A2064 0029DCC4 2C 00 00 FB */ cmpwi r0, 0xfb
+/* 802A2068 0029DCC8 40 80 00 28 */ bge lbl_802A2090
+/* 802A206C 0029DCCC 2C 00 00 01 */ cmpwi r0, 1
+/* 802A2070 0029DCD0 41 82 00 3C */ beq lbl_802A20AC
+/* 802A2074 0029DCD4 40 80 00 10 */ bge lbl_802A2084
+/* 802A2078 0029DCD8 2C 00 00 00 */ cmpwi r0, 0
+/* 802A207C 0029DCDC 40 80 00 28 */ bge lbl_802A20A4
+/* 802A2080 0029DCE0 48 00 01 10 */ b lbl_802A2190
+lbl_802A2084:
+/* 802A2084 0029DCE4 2C 00 00 03 */ cmpwi r0, 3
+/* 802A2088 0029DCE8 40 80 01 08 */ bge lbl_802A2190
+/* 802A208C 0029DCEC 48 00 00 28 */ b lbl_802A20B4
+lbl_802A2090:
+/* 802A2090 0029DCF0 2C 00 00 FF */ cmpwi r0, 0xff
+/* 802A2094 0029DCF4 41 82 00 10 */ beq lbl_802A20A4
+/* 802A2098 0029DCF8 40 80 00 F8 */ bge lbl_802A2190
+/* 802A209C 0029DCFC 2C 00 00 FD */ cmpwi r0, 0xfd
+/* 802A20A0 0029DD00 40 80 00 F0 */ bge lbl_802A2190
+lbl_802A20A4:
+/* 802A20A4 0029DD04 3B A0 00 00 */ li r29, 0
+/* 802A20A8 0029DD08 48 00 00 10 */ b lbl_802A20B8
+lbl_802A20AC:
+/* 802A20AC 0029DD0C 3B A0 00 02 */ li r29, 2
+/* 802A20B0 0029DD10 48 00 00 08 */ b lbl_802A20B8
+lbl_802A20B4:
+/* 802A20B4 0029DD14 3B A0 00 04 */ li r29, 4
+lbl_802A20B8:
+/* 802A20B8 0029DD18 88 1F 05 20 */ lbz r0, 0x520(r31)
+/* 802A20BC 0029DD1C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A20C0 0029DD20 41 82 00 08 */ beq lbl_802A20C8
+/* 802A20C4 0029DD24 3B BD 00 01 */ addi r29, r29, 1
+lbl_802A20C8:
+/* 802A20C8 0029DD28 7F C3 F3 78 */ mr r3, r30
+/* 802A20CC 0029DD2C 48 00 95 BD */ bl WPADIsDpdEnabled
+/* 802A20D0 0029DD30 2C 03 00 00 */ cmpwi r3, 0
+/* 802A20D4 0029DD34 41 82 00 0C */ beq lbl_802A20E0
+/* 802A20D8 0029DD38 88 9F 05 21 */ lbz r4, 0x521(r31)
+/* 802A20DC 0029DD3C 48 00 00 08 */ b lbl_802A20E4
+lbl_802A20E0:
+/* 802A20E0 0029DD40 38 80 00 00 */ li r4, 0
+lbl_802A20E4:
+/* 802A20E4 0029DD44 3C 60 80 44 */ lis r3, lbl_8043BF84@ha
+/* 802A20E8 0029DD48 57 A0 08 3C */ slwi r0, r29, 1
+/* 802A20EC 0029DD4C 38 63 BF 84 */ addi r3, r3, lbl_8043BF84@l
+/* 802A20F0 0029DD50 7F A3 02 14 */ add r29, r3, r0
+/* 802A20F4 0029DD54 7C 03 00 AE */ lbzx r0, r3, r0
+/* 802A20F8 0029DD58 7C 04 00 40 */ cmplw r4, r0
+/* 802A20FC 0029DD5C 41 82 00 7C */ beq lbl_802A2178
+/* 802A2100 0029DD60 80 1F 04 D8 */ lwz r0, 0x4d8(r31)
+/* 802A2104 0029DD64 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2108 0029DD68 41 82 00 34 */ beq lbl_802A213C
+/* 802A210C 0029DD6C 88 1F 05 22 */ lbz r0, 0x522(r31)
+/* 802A2110 0029DD70 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2114 0029DD74 40 82 00 28 */ bne lbl_802A213C
+/* 802A2118 0029DD78 38 00 00 01 */ li r0, 1
+/* 802A211C 0029DD7C 7F C3 F3 78 */ mr r3, r30
+/* 802A2120 0029DD80 98 1F 05 22 */ stb r0, 0x522(r31)
+/* 802A2124 0029DD84 38 80 00 00 */ li r4, 0
+/* 802A2128 0029DD88 81 9F 04 D8 */ lwz r12, 0x4d8(r31)
+/* 802A212C 0029DD8C 7D 89 03 A6 */ mtctr r12
+/* 802A2130 0029DD90 4E 80 04 21 */ bctrl
+/* 802A2134 0029DD94 38 00 00 00 */ li r0, 0
+/* 802A2138 0029DD98 98 1F 05 23 */ stb r0, 0x523(r31)
+lbl_802A213C:
+/* 802A213C 0029DD9C 88 1F 05 1F */ lbz r0, 0x51f(r31)
+/* 802A2140 0029DDA0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2144 0029DDA4 40 82 00 4C */ bne lbl_802A2190
+/* 802A2148 0029DDA8 38 00 00 01 */ li r0, 1
+/* 802A214C 0029DDAC 3C A0 80 2A */ lis r5, KPADiControlDpdCallback@ha
+/* 802A2150 0029DDB0 98 1F 05 1F */ stb r0, 0x51f(r31)
+/* 802A2154 0029DDB4 7F C3 F3 78 */ mr r3, r30
+/* 802A2158 0029DDB8 88 9D 00 00 */ lbz r4, 0(r29)
+/* 802A215C 0029DDBC 38 A5 21 C8 */ addi r5, r5, KPADiControlDpdCallback@l
+/* 802A2160 0029DDC0 48 00 95 9D */ bl WPADControlDpd
+/* 802A2164 0029DDC4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A2168 0029DDC8 40 82 00 28 */ bne lbl_802A2190
+/* 802A216C 0029DDCC 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802A2170 0029DDD0 98 1F 05 21 */ stb r0, 0x521(r31)
+/* 802A2174 0029DDD4 48 00 00 1C */ b lbl_802A2190
+lbl_802A2178:
+/* 802A2178 0029DDD8 88 9D 00 01 */ lbz r4, 1(r29)
+/* 802A217C 0029DDDC 88 1C 00 36 */ lbz r0, 0x36(r28)
+/* 802A2180 0029DDE0 7C 00 20 40 */ cmplw r0, r4
+/* 802A2184 0029DDE4 41 82 00 0C */ beq lbl_802A2190
+/* 802A2188 0029DDE8 7F C3 F3 78 */ mr r3, r30
+/* 802A218C 0029DDEC 48 00 6D F9 */ bl WPADSetDataFormat
+lbl_802A2190:
+/* 802A2190 0029DDF0 81 9F 05 18 */ lwz r12, 0x518(r31)
+/* 802A2194 0029DDF4 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A2198 0029DDF8 41 82 00 10 */ beq lbl_802A21A8
+/* 802A219C 0029DDFC 7F C3 F3 78 */ mr r3, r30
+/* 802A21A0 0029DE00 7D 89 03 A6 */ mtctr r12
+/* 802A21A4 0029DE04 4E 80 04 21 */ bctrl
+lbl_802A21A8:
+/* 802A21A8 0029DE08 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A21AC 0029DE0C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A21B0 0029DE10 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A21B4 0029DE14 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A21B8 0029DE18 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A21BC 0029DE1C 7C 08 03 A6 */ mtlr r0
+/* 802A21C0 0029DE20 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A21C4 0029DE24 4E 80 00 20 */ blr
+KPADiControlDpdCallback:
+/* 802A21C8 0029DE28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A21CC 0029DE2C 7C 08 02 A6 */ mflr r0
+/* 802A21D0 0029DE30 3C A0 80 53 */ lis r5, lbl_805356D0@ha
+/* 802A21D4 0029DE34 2C 04 00 00 */ cmpwi r4, 0
+/* 802A21D8 0029DE38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A21DC 0029DE3C 1C 03 05 24 */ mulli r0, r3, 0x524
+/* 802A21E0 0029DE40 38 A5 56 D0 */ addi r5, r5, lbl_805356D0@l
+/* 802A21E4 0029DE44 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A21E8 0029DE48 7F E5 02 14 */ add r31, r5, r0
+/* 802A21EC 0029DE4C 40 82 00 3C */ bne lbl_802A2228
+/* 802A21F0 0029DE50 80 1F 04 D8 */ lwz r0, 0x4d8(r31)
+/* 802A21F4 0029DE54 2C 00 00 00 */ cmpwi r0, 0
+/* 802A21F8 0029DE58 41 82 00 30 */ beq lbl_802A2228
+/* 802A21FC 0029DE5C 88 1F 05 23 */ lbz r0, 0x523(r31)
+/* 802A2200 0029DE60 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2204 0029DE64 40 82 00 24 */ bne lbl_802A2228
+/* 802A2208 0029DE68 38 00 00 01 */ li r0, 1
+/* 802A220C 0029DE6C 38 80 00 01 */ li r4, 1
+/* 802A2210 0029DE70 98 1F 05 23 */ stb r0, 0x523(r31)
+/* 802A2214 0029DE74 81 9F 04 D8 */ lwz r12, 0x4d8(r31)
+/* 802A2218 0029DE78 7D 89 03 A6 */ mtctr r12
+/* 802A221C 0029DE7C 4E 80 04 21 */ bctrl
+/* 802A2220 0029DE80 38 00 00 00 */ li r0, 0
+/* 802A2224 0029DE84 98 1F 05 22 */ stb r0, 0x522(r31)
+lbl_802A2228:
+/* 802A2228 0029DE88 38 00 00 00 */ li r0, 0
+/* 802A222C 0029DE8C 98 1F 05 1F */ stb r0, 0x51f(r31)
+/* 802A2230 0029DE90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A2234 0029DE94 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A2238 0029DE98 7C 08 03 A6 */ mtlr r0
+/* 802A223C 0029DE9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A2240 0029DEA0 4E 80 00 20 */ blr
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/OSReset.s b/asm/SDK/OS/OSReset.s index 0320e9b..1d6365b 100644 --- a/asm/SDK/OS/OSReset.s +++ b/asm/SDK/OS/OSReset.s @@ -123,7 +123,7 @@ lbl_8026FE08: /* 8026FE0C 0026BA6C 2C 1C 00 00 */ cmpwi r28, 0
/* 8026FE10 0026BA70 40 82 00 10 */ bne lbl_8026FE20
/* 8026FE14 0026BA74 38 60 00 01 */ li r3, 1
-/* 8026FE18 0026BA78 48 03 5D 11 */ bl func_802A5B28
+/* 8026FE18 0026BA78 48 03 5D 11 */ bl __PADDisableRecalibration
/* 8026FE1C 0026BA7C 7C 7D 1B 78 */ mr r29, r3
lbl_8026FE20:
/* 8026FE20 0026BA80 83 CD A8 20 */ lwz r30, lbl_8063FAE0-_SDA_BASE_(r13)
@@ -191,7 +191,7 @@ lbl_8026FEEC: /* 8026FEF4 0026BB54 2C 1C 00 00 */ cmpwi r28, 0
/* 8026FEF8 0026BB58 40 82 00 0C */ bne lbl_8026FF04
/* 8026FEFC 0026BB5C 7F A3 EB 78 */ mr r3, r29
-/* 8026FF00 0026BB60 48 03 5C 29 */ bl func_802A5B28
+/* 8026FF00 0026BB60 48 03 5C 29 */ bl __PADDisableRecalibration
lbl_8026FF04:
/* 8026FF04 0026BB64 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 8026FF08 0026BB68 80 63 00 DC */ lwz r3, 0x800000DC@l(r3)
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/PAD/Pad.s b/asm/SDK/PAD/Pad.s new file mode 100644 index 0000000..96145fd --- /dev/null +++ b/asm/SDK/PAD/Pad.s @@ -0,0 +1,30 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __PADDisableRecalibration
+__PADDisableRecalibration:
+/* 802A5B28 002A1788 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A5B2C 002A178C 7C 08 02 A6 */ mflr r0
+/* 802A5B30 002A1790 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A5B34 002A1794 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A5B38 002A1798 7C 7F 1B 78 */ mr r31, r3
+/* 802A5B3C 002A179C 4B FC 8C 21 */ bl OSDisableInterrupts
+/* 802A5B40 002A17A0 3C A0 80 00 */ lis r5, 0x800030E3@ha
+/* 802A5B44 002A17A4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A5B48 002A17A8 88 85 30 E3 */ lbz r4, 0x800030E3@l(r5)
+/* 802A5B4C 002A17AC 54 80 06 B0 */ rlwinm r0, r4, 0, 0x1a, 0x18
+/* 802A5B50 002A17B0 54 9F D7 FE */ rlwinm r31, r4, 0x1a, 0x1f, 0x1f
+/* 802A5B54 002A17B4 98 05 30 E3 */ stb r0, 0x30e3(r5)
+/* 802A5B58 002A17B8 41 82 00 10 */ beq lbl_802A5B68
+/* 802A5B5C 002A17BC 88 05 30 E3 */ lbz r0, 0x30e3(r5)
+/* 802A5B60 002A17C0 60 00 00 40 */ ori r0, r0, 0x40
+/* 802A5B64 002A17C4 98 05 30 E3 */ stb r0, 0x30e3(r5)
+lbl_802A5B68:
+/* 802A5B68 002A17C8 4B FC 8C 1D */ bl OSRestoreInterrupts
+/* 802A5B6C 002A17CC 7F E3 FB 78 */ mr r3, r31
+/* 802A5B70 002A17D0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A5B74 002A17D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A5B78 002A17D8 7C 08 03 A6 */ mtlr r0
+/* 802A5B7C 002A17DC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A5B80 002A17E0 4E 80 00 20 */ blr
diff --git a/asm/SDK/WPAD/WPAD.s b/asm/SDK/WPAD/WPAD.s new file mode 100644 index 0000000..4d3d877 --- /dev/null +++ b/asm/SDK/WPAD/WPAD.s @@ -0,0 +1,8165 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+noAlloc:
+/* 802A5B84 002A17E4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A5B88 002A17E8 7C 08 02 A6 */ mflr r0
+/* 802A5B8C 002A17EC 3C 60 80 44 */ lis r3, lbl_8043C004@ha
+/* 802A5B90 002A17F0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A5B94 002A17F4 38 63 C0 04 */ addi r3, r3, lbl_8043C004@l
+/* 802A5B98 002A17F8 4C C6 31 82 */ crclr 6
+/* 802A5B9C 002A17FC 48 00 DC C5 */ bl func_802B3860
+/* 802A5BA0 002A1800 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A5BA4 002A1804 38 60 00 00 */ li r3, 0
+/* 802A5BA8 002A1808 7C 08 03 A6 */ mtlr r0
+/* 802A5BAC 002A180C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A5BB0 002A1810 4E 80 00 20 */ blr
+
+noFree:
+/* 802A5BB4 002A1814 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A5BB8 002A1818 7C 08 02 A6 */ mflr r0
+/* 802A5BBC 002A181C 3C 60 80 44 */ lis r3, lbl_8043C020@ha
+/* 802A5BC0 002A1820 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A5BC4 002A1824 38 63 C0 20 */ addi r3, r3, lbl_8043C020@l
+/* 802A5BC8 002A1828 4C C6 31 82 */ crclr 6
+/* 802A5BCC 002A182C 48 00 DC 95 */ bl func_802B3860
+/* 802A5BD0 002A1830 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A5BD4 002A1834 38 60 00 00 */ li r3, 0
+/* 802A5BD8 002A1838 7C 08 03 A6 */ mtlr r0
+/* 802A5BDC 002A183C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A5BE0 002A1840 4E 80 00 20 */ blr
+
+OnShutdown:
+/* 802A5BE4 002A1844 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5BE8 002A1848 7C 08 02 A6 */ mflr r0
+/* 802A5BEC 002A184C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5BF0 002A1850 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A5BF4 002A1854 7C 7F 1B 78 */ mr r31, r3
+/* 802A5BF8 002A1858 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A5BFC 002A185C 7C 9E 23 78 */ mr r30, r4
+/* 802A5C00 002A1860 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A5C04 002A1864 3B A0 00 00 */ li r29, 0
+/* 802A5C08 002A1868 48 01 0D 89 */ bl func_802B6990
+/* 802A5C0C 002A186C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A5C10 002A1870 40 82 01 74 */ bne lbl_802A5D84
+/* 802A5C14 002A1874 2C 03 00 03 */ cmpwi r3, 3
+/* 802A5C18 002A1878 40 82 01 2C */ bne lbl_802A5D44
+/* 802A5C1C 002A187C 2C 1E 00 01 */ cmpwi r30, 1
+/* 802A5C20 002A1880 41 82 00 D4 */ beq lbl_802A5CF4
+/* 802A5C24 002A1884 40 80 00 10 */ bge lbl_802A5C34
+/* 802A5C28 002A1888 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A5C2C 002A188C 40 80 00 1C */ bge lbl_802A5C48
+/* 802A5C30 002A1890 48 00 01 58 */ b lbl_802A5D88
+lbl_802A5C34:
+/* 802A5C34 002A1894 2C 1E 00 07 */ cmpwi r30, 7
+/* 802A5C38 002A1898 40 80 01 50 */ bge lbl_802A5D88
+/* 802A5C3C 002A189C 2C 1E 00 04 */ cmpwi r30, 4
+/* 802A5C40 002A18A0 40 80 00 B4 */ bge lbl_802A5CF4
+/* 802A5C44 002A18A4 48 00 00 28 */ b lbl_802A5C6C
+lbl_802A5C48:
+/* 802A5C48 002A18A8 3C 60 80 44 */ lis r3, lbl_8043C03C@ha
+/* 802A5C4C 002A18AC 38 63 C0 3C */ addi r3, r3, lbl_8043C03C@l
+/* 802A5C50 002A18B0 4C C6 31 82 */ crclr 6
+/* 802A5C54 002A18B4 48 00 DC 0D */ bl func_802B3860
+/* 802A5C58 002A18B8 3C 60 80 2A */ lis r3, noAlloc@ha
+/* 802A5C5C 002A18BC 3C 80 80 2A */ lis r4, noFree@ha
+/* 802A5C60 002A18C0 38 63 5B 84 */ addi r3, r3, noAlloc@l
+/* 802A5C64 002A18C4 38 84 5B B4 */ addi r4, r4, noFree@l
+/* 802A5C68 002A18C8 48 01 0B 51 */ bl func_802B67B8
+lbl_802A5C6C:
+/* 802A5C6C 002A18CC 4B FC 8A F1 */ bl OSDisableInterrupts
+/* 802A5C70 002A18D0 88 0D AE 4D */ lbz r0, lbl_8064010D-_SDA_BASE_(r13)
+/* 802A5C74 002A18D4 7C 7E 1B 78 */ mr r30, r3
+/* 802A5C78 002A18D8 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5C7C 002A18DC 41 82 00 0C */ beq lbl_802A5C88
+/* 802A5C80 002A18E0 4B FC 8B 05 */ bl OSRestoreInterrupts
+/* 802A5C84 002A18E4 48 00 00 68 */ b lbl_802A5CEC
+lbl_802A5C88:
+/* 802A5C88 002A18E8 38 00 00 01 */ li r0, 1
+/* 802A5C8C 002A18EC 38 60 00 00 */ li r3, 0
+/* 802A5C90 002A18F0 98 0D AE 4D */ stb r0, lbl_8064010D-_SDA_BASE_(r13)
+/* 802A5C94 002A18F4 38 80 00 00 */ li r4, 0
+/* 802A5C98 002A18F8 48 01 12 41 */ bl func_802B6ED8
+/* 802A5C9C 002A18FC 3C 60 80 54 */ lis r3, lbl_8053AC28@ha
+/* 802A5CA0 002A1900 3B E0 00 0A */ li r31, 0xa
+/* 802A5CA4 002A1904 38 63 AC 28 */ addi r3, r3, lbl_8053AC28@l
+/* 802A5CA8 002A1908 3B A3 02 BD */ addi r29, r3, 0x2bd
+lbl_802A5CAC:
+/* 802A5CAC 002A190C 7F A3 EB 78 */ mr r3, r29
+/* 802A5CB0 002A1910 38 80 00 00 */ li r4, 0
+/* 802A5CB4 002A1914 38 A0 00 46 */ li r5, 0x46
+/* 802A5CB8 002A1918 4B D5 E4 4D */ bl memset
+/* 802A5CBC 002A191C 3B FF 00 01 */ addi r31, r31, 1
+/* 802A5CC0 002A1920 3B BD 00 46 */ addi r29, r29, 0x46
+/* 802A5CC4 002A1924 2C 1F 00 0E */ cmpwi r31, 0xe
+/* 802A5CC8 002A1928 41 80 FF E4 */ blt lbl_802A5CAC
+/* 802A5CCC 002A192C 3C 60 80 53 */ lis r3, lbl_80536D40@ha
+/* 802A5CD0 002A1930 38 63 6D 40 */ addi r3, r3, lbl_80536D40@l
+/* 802A5CD4 002A1934 4B FC 3D A5 */ bl OSCancelAlarm
+/* 802A5CD8 002A1938 38 60 00 00 */ li r3, 0
+/* 802A5CDC 002A193C 48 01 11 45 */ bl func_802B6E20
+/* 802A5CE0 002A1940 48 01 0B 25 */ bl func_802B6804
+/* 802A5CE4 002A1944 7F C3 F3 78 */ mr r3, r30
+/* 802A5CE8 002A1948 4B FC 8A 9D */ bl OSRestoreInterrupts
+lbl_802A5CEC:
+/* 802A5CEC 002A194C 3B A0 00 00 */ li r29, 0
+/* 802A5CF0 002A1950 48 00 00 98 */ b lbl_802A5D88
+lbl_802A5CF4:
+/* 802A5CF4 002A1954 4B FC 8A 69 */ bl OSDisableInterrupts
+/* 802A5CF8 002A1958 88 0D AE 4D */ lbz r0, lbl_8064010D-_SDA_BASE_(r13)
+/* 802A5CFC 002A195C 7C 7E 1B 78 */ mr r30, r3
+/* 802A5D00 002A1960 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5D04 002A1964 41 82 00 0C */ beq lbl_802A5D10
+/* 802A5D08 002A1968 4B FC 8A 7D */ bl OSRestoreInterrupts
+/* 802A5D0C 002A196C 48 00 00 30 */ b lbl_802A5D3C
+lbl_802A5D10:
+/* 802A5D10 002A1970 38 00 00 01 */ li r0, 1
+/* 802A5D14 002A1974 98 0D AE 4D */ stb r0, lbl_8064010D-_SDA_BASE_(r13)
+/* 802A5D18 002A1978 48 01 A7 49 */ bl func_802C0460
+/* 802A5D1C 002A197C 3C 60 80 53 */ lis r3, lbl_80536D40@ha
+/* 802A5D20 002A1980 38 63 6D 40 */ addi r3, r3, lbl_80536D40@l
+/* 802A5D24 002A1984 4B FC 3D 55 */ bl OSCancelAlarm
+/* 802A5D28 002A1988 38 60 00 00 */ li r3, 0
+/* 802A5D2C 002A198C 48 01 10 F5 */ bl func_802B6E20
+/* 802A5D30 002A1990 48 01 0A D5 */ bl func_802B6804
+/* 802A5D34 002A1994 7F C3 F3 78 */ mr r3, r30
+/* 802A5D38 002A1998 4B FC 8A 4D */ bl OSRestoreInterrupts
+lbl_802A5D3C:
+/* 802A5D3C 002A199C 3B A0 00 00 */ li r29, 0
+/* 802A5D40 002A19A0 48 00 00 48 */ b lbl_802A5D88
+lbl_802A5D44:
+/* 802A5D44 002A19A4 2C 03 00 05 */ cmpwi r3, 5
+/* 802A5D48 002A19A8 40 82 00 10 */ bne lbl_802A5D58
+/* 802A5D4C 002A19AC 48 01 0F 51 */ bl func_802B6C9C
+/* 802A5D50 002A19B0 3B A0 00 00 */ li r29, 0
+/* 802A5D54 002A19B4 48 00 00 34 */ b lbl_802A5D88
+lbl_802A5D58:
+/* 802A5D58 002A19B8 2C 03 00 04 */ cmpwi r3, 4
+/* 802A5D5C 002A19BC 41 82 00 10 */ beq lbl_802A5D6C
+/* 802A5D60 002A19C0 38 03 FF FF */ addi r0, r3, -1
+/* 802A5D64 002A19C4 28 00 00 01 */ cmplwi r0, 1
+/* 802A5D68 002A19C8 41 81 00 0C */ bgt lbl_802A5D74
+lbl_802A5D6C:
+/* 802A5D6C 002A19CC 3B A0 00 00 */ li r29, 0
+/* 802A5D70 002A19D0 48 00 00 18 */ b lbl_802A5D88
+lbl_802A5D74:
+/* 802A5D74 002A19D4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5D78 002A19D8 40 82 00 10 */ bne lbl_802A5D88
+/* 802A5D7C 002A19DC 3B A0 00 01 */ li r29, 1
+/* 802A5D80 002A19E0 48 00 00 08 */ b lbl_802A5D88
+lbl_802A5D84:
+/* 802A5D84 002A19E4 3B A0 00 01 */ li r29, 1
+lbl_802A5D88:
+/* 802A5D88 002A19E8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A5D8C 002A19EC 7F A3 EB 78 */ mr r3, r29
+/* 802A5D90 002A19F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A5D94 002A19F4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A5D98 002A19F8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5D9C 002A19FC 7C 08 03 A6 */ mtlr r0
+/* 802A5DA0 002A1A00 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5DA4 002A1A04 4E 80 00 20 */ blr
+
+.global WPADiSendData
+WPADiSendData:
+/* 802A5DA8 002A1A08 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 802A5DAC 002A1A0C 7C 08 02 A6 */ mflr r0
+/* 802A5DB0 002A1A10 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802A5DB4 002A1A14 39 61 00 60 */ addi r11, r1, 0x60
+/* 802A5DB8 002A1A18 4B F2 13 65 */ bl _savegpr_24
+/* 802A5DBC 002A1A1C 3F E0 80 53 */ lis r31, lbl_80536D70@ha
+/* 802A5DC0 002A1A20 54 7E 10 3A */ slwi r30, r3, 2
+/* 802A5DC4 002A1A24 3B FF 6D 70 */ addi r31, r31, lbl_80536D70@l
+/* 802A5DC8 002A1A28 7C 7A 1B 78 */ mr r26, r3
+/* 802A5DCC 002A1A2C 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A5DD0 002A1A30 7C 98 23 78 */ mr r24, r4
+/* 802A5DD4 002A1A34 4B FC 89 89 */ bl OSDisableInterrupts
+/* 802A5DD8 002A1A38 83 9D 08 BC */ lwz r28, 0x8bc(r29)
+/* 802A5DDC 002A1A3C 4B FC 89 A9 */ bl OSRestoreInterrupts
+/* 802A5DE0 002A1A40 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A5DE4 002A1A44 40 82 00 90 */ bne lbl_802A5E74
+/* 802A5DE8 002A1A48 4B FC 89 75 */ bl OSDisableInterrupts
+/* 802A5DEC 002A1A4C 8B 3D 08 C0 */ lbz r25, 0x8c0(r29)
+/* 802A5DF0 002A1A50 4B FC 89 95 */ bl OSRestoreInterrupts
+/* 802A5DF4 002A1A54 2C 19 00 00 */ cmpwi r25, 0
+/* 802A5DF8 002A1A58 41 82 00 0C */ beq lbl_802A5E04
+/* 802A5DFC 002A1A5C 3B 80 FF FE */ li r28, -2
+/* 802A5E00 002A1A60 48 00 00 94 */ b lbl_802A5E94
+lbl_802A5E04:
+/* 802A5E04 002A1A64 83 38 00 00 */ lwz r25, 0(r24)
+/* 802A5E08 002A1A68 7F 43 D3 78 */ mr r3, r26
+/* 802A5E0C 002A1A6C 83 58 00 04 */ lwz r26, 4(r24)
+/* 802A5E10 002A1A70 38 81 00 10 */ addi r4, r1, 0x10
+/* 802A5E14 002A1A74 83 78 00 08 */ lwz r27, 8(r24)
+/* 802A5E18 002A1A78 81 98 00 0C */ lwz r12, 0xc(r24)
+/* 802A5E1C 002A1A7C 81 78 00 10 */ lwz r11, 0x10(r24)
+/* 802A5E20 002A1A80 81 58 00 14 */ lwz r10, 0x14(r24)
+/* 802A5E24 002A1A84 81 38 00 18 */ lwz r9, 0x18(r24)
+/* 802A5E28 002A1A88 81 18 00 1C */ lwz r8, 0x1c(r24)
+/* 802A5E2C 002A1A8C 80 F8 00 20 */ lwz r7, 0x20(r24)
+/* 802A5E30 002A1A90 80 D8 00 24 */ lwz r6, 0x24(r24)
+/* 802A5E34 002A1A94 80 B8 00 28 */ lwz r5, 0x28(r24)
+/* 802A5E38 002A1A98 80 18 00 2C */ lwz r0, 0x2c(r24)
+/* 802A5E3C 002A1A9C 93 21 00 10 */ stw r25, 0x10(r1)
+/* 802A5E40 002A1AA0 93 41 00 14 */ stw r26, 0x14(r1)
+/* 802A5E44 002A1AA4 93 61 00 18 */ stw r27, 0x18(r1)
+/* 802A5E48 002A1AA8 91 81 00 1C */ stw r12, 0x1c(r1)
+/* 802A5E4C 002A1AAC 91 61 00 20 */ stw r11, 0x20(r1)
+/* 802A5E50 002A1AB0 91 41 00 24 */ stw r10, 0x24(r1)
+/* 802A5E54 002A1AB4 91 21 00 28 */ stw r9, 0x28(r1)
+/* 802A5E58 002A1AB8 91 01 00 2C */ stw r8, 0x2c(r1)
+/* 802A5E5C 002A1ABC 90 E1 00 30 */ stw r7, 0x30(r1)
+/* 802A5E60 002A1AC0 90 C1 00 34 */ stw r6, 0x34(r1)
+/* 802A5E64 002A1AC4 90 A1 00 38 */ stw r5, 0x38(r1)
+/* 802A5E68 002A1AC8 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 802A5E6C 002A1ACC 48 00 69 0D */ bl __SendData
+/* 802A5E70 002A1AD0 48 00 00 24 */ b lbl_802A5E94
+lbl_802A5E74:
+/* 802A5E74 002A1AD4 2C 1C FF FE */ cmpwi r28, -2
+/* 802A5E78 002A1AD8 41 82 00 1C */ beq lbl_802A5E94
+/* 802A5E7C 002A1ADC 2C 1C FF FD */ cmpwi r28, -3
+/* 802A5E80 002A1AE0 40 82 00 14 */ bne lbl_802A5E94
+/* 802A5E84 002A1AE4 4B FC 88 D9 */ bl OSDisableInterrupts
+/* 802A5E88 002A1AE8 38 00 00 00 */ li r0, 0
+/* 802A5E8C 002A1AEC 90 1D 08 BC */ stw r0, 0x8bc(r29)
+/* 802A5E90 002A1AF0 4B FC 88 F5 */ bl OSRestoreInterrupts
+lbl_802A5E94:
+/* 802A5E94 002A1AF4 2C 1C FF FE */ cmpwi r28, -2
+/* 802A5E98 002A1AF8 40 82 00 D0 */ bne lbl_802A5F68
+/* 802A5E9C 002A1AFC 4B FC C9 3D */ bl __OSGetSystemTime
+/* 802A5EA0 002A1B00 80 DD 09 0C */ lwz r6, 0x90c(r29)
+/* 802A5EA4 002A1B04 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 802A5EA8 002A1B08 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 802A5EAC 002A1B0C 38 A0 00 00 */ li r5, 0
+/* 802A5EB0 002A1B10 7C 86 20 10 */ subfc r4, r6, r4
+/* 802A5EB4 002A1B14 80 FD 09 08 */ lwz r7, 0x908(r29)
+/* 802A5EB8 002A1B18 54 06 F0 BE */ srwi r6, r0, 2
+/* 802A5EBC 002A1B1C 7C 67 19 10 */ subfe r3, r7, r3
+/* 802A5EC0 002A1B20 4B F2 13 B9 */ bl __div2i
+/* 802A5EC4 002A1B24 2C 04 00 01 */ cmpwi r4, 1
+/* 802A5EC8 002A1B28 40 81 00 A0 */ ble lbl_802A5F68
+/* 802A5ECC 002A1B2C 88 0D AE 62 */ lbz r0, lbl_80640122-_SDA_BASE_(r13)
+/* 802A5ED0 002A1B30 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5ED4 002A1B34 41 82 00 94 */ beq lbl_802A5F68
+/* 802A5ED8 002A1B38 88 1D 09 10 */ lbz r0, 0x910(r29)
+/* 802A5EDC 002A1B3C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5EE0 002A1B40 40 82 00 78 */ bne lbl_802A5F58
+/* 802A5EE4 002A1B44 4B FC C8 F5 */ bl __OSGetSystemTime
+/* 802A5EE8 002A1B48 90 9D 09 0C */ stw r4, 0x90c(r29)
+/* 802A5EEC 002A1B4C 90 7D 09 08 */ stw r3, 0x908(r29)
+/* 802A5EF0 002A1B50 7F 3F F0 2E */ lwzx r25, r31, r30
+/* 802A5EF4 002A1B54 4B FC 88 69 */ bl OSDisableInterrupts
+/* 802A5EF8 002A1B58 83 39 08 BC */ lwz r25, 0x8bc(r25)
+/* 802A5EFC 002A1B5C 4B FC 88 89 */ bl OSRestoreInterrupts
+/* 802A5F00 002A1B60 2C 19 FF FF */ cmpwi r25, -1
+/* 802A5F04 002A1B64 41 82 00 64 */ beq lbl_802A5F68
+/* 802A5F08 002A1B68 7F 3F F0 2E */ lwzx r25, r31, r30
+/* 802A5F0C 002A1B6C 4B FC 88 51 */ bl OSDisableInterrupts
+/* 802A5F10 002A1B70 8B 39 08 C3 */ lbz r25, 0x8c3(r25)
+/* 802A5F14 002A1B74 4B FC 88 71 */ bl OSRestoreInterrupts
+/* 802A5F18 002A1B78 7F 23 CB 78 */ mr r3, r25
+/* 802A5F1C 002A1B7C 48 01 2F CD */ bl func_802B8EE8
+/* 802A5F20 002A1B80 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5F24 002A1B84 41 82 00 18 */ beq lbl_802A5F3C
+/* 802A5F28 002A1B88 7C 64 1B 78 */ mr r4, r3
+/* 802A5F2C 002A1B8C 38 61 00 08 */ addi r3, r1, 8
+/* 802A5F30 002A1B90 38 A0 00 06 */ li r5, 6
+/* 802A5F34 002A1B94 4B D5 E0 CD */ bl memcpy
+/* 802A5F38 002A1B98 48 00 00 14 */ b lbl_802A5F4C
+lbl_802A5F3C:
+/* 802A5F3C 002A1B9C 38 61 00 08 */ addi r3, r1, 8
+/* 802A5F40 002A1BA0 38 80 00 00 */ li r4, 0
+/* 802A5F44 002A1BA4 38 A0 00 06 */ li r5, 6
+/* 802A5F48 002A1BA8 4B D5 E1 BD */ bl memset
+lbl_802A5F4C:
+/* 802A5F4C 002A1BAC 38 61 00 08 */ addi r3, r1, 8
+/* 802A5F50 002A1BB0 48 01 EF 45 */ bl func_802C4E94
+/* 802A5F54 002A1BB4 48 00 00 14 */ b lbl_802A5F68
+lbl_802A5F58:
+/* 802A5F58 002A1BB8 4B FC 88 05 */ bl OSDisableInterrupts
+/* 802A5F5C 002A1BBC 38 00 FF FD */ li r0, -3
+/* 802A5F60 002A1BC0 90 1D 08 BC */ stw r0, 0x8bc(r29)
+/* 802A5F64 002A1BC4 4B FC 88 21 */ bl OSRestoreInterrupts
+lbl_802A5F68:
+/* 802A5F68 002A1BC8 39 61 00 60 */ addi r11, r1, 0x60
+/* 802A5F6C 002A1BCC 7F 83 E3 78 */ mr r3, r28
+/* 802A5F70 002A1BD0 4B F2 11 F9 */ bl _restgpr_24
+/* 802A5F74 002A1BD4 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 802A5F78 002A1BD8 7C 08 03 A6 */ mtlr r0
+/* 802A5F7C 002A1BDC 38 21 00 60 */ addi r1, r1, 0x60
+/* 802A5F80 002A1BE0 4E 80 00 20 */ blr
+
+.global WPADiRadioSensitivity
+WPADiRadioSensitivity:
+/* 802A5F84 002A1BE4 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A5F88 002A1BE8 3C 80 66 66 */ lis r4, 0x66666667@ha
+/* 802A5F8C 002A1BEC 54 63 10 3A */ slwi r3, r3, 2
+/* 802A5F90 002A1BF0 38 00 00 64 */ li r0, 0x64
+/* 802A5F94 002A1BF4 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A5F98 002A1BF8 38 84 66 67 */ addi r4, r4, 0x66666667@l
+/* 802A5F9C 002A1BFC 7C E5 18 2E */ lwzx r7, r5, r3
+/* 802A5FA0 002A1C00 A0 67 09 84 */ lhz r3, 0x984(r7)
+/* 802A5FA4 002A1C04 88 C7 09 83 */ lbz r6, 0x983(r7)
+/* 802A5FA8 002A1C08 1C 63 00 64 */ mulli r3, r3, 0x64
+/* 802A5FAC 002A1C0C 54 C5 18 38 */ slwi r5, r6, 3
+/* 802A5FB0 002A1C10 7C A5 32 14 */ add r5, r5, r6
+/* 802A5FB4 002A1C14 54 A5 04 3E */ clrlwi r5, r5, 0x10
+/* 802A5FB8 002A1C18 54 63 FC 3E */ rlwinm r3, r3, 0x1f, 0x10, 0x1f
+/* 802A5FBC 002A1C1C 7C A5 1A 14 */ add r5, r5, r3
+/* 802A5FC0 002A1C20 54 A3 04 3E */ clrlwi r3, r5, 0x10
+/* 802A5FC4 002A1C24 7C 64 18 96 */ mulhw r3, r4, r3
+/* 802A5FC8 002A1C28 7C 63 16 70 */ srawi r3, r3, 2
+/* 802A5FCC 002A1C2C 54 64 0F FE */ srwi r4, r3, 0x1f
+/* 802A5FD0 002A1C30 7C 63 22 14 */ add r3, r3, r4
+/* 802A5FD4 002A1C34 54 65 04 3E */ clrlwi r5, r3, 0x10
+/* 802A5FD8 002A1C38 28 05 00 64 */ cmplwi r5, 0x64
+/* 802A5FDC 002A1C3C 41 81 00 08 */ bgt lbl_802A5FE4
+/* 802A5FE0 002A1C40 7C A0 2B 78 */ mr r0, r5
+lbl_802A5FE4:
+/* 802A5FE4 002A1C44 98 07 09 83 */ stb r0, 0x983(r7)
+/* 802A5FE8 002A1C48 38 80 00 00 */ li r4, 0
+/* 802A5FEC 002A1C4C 54 03 04 3E */ clrlwi r3, r0, 0x10
+/* 802A5FF0 002A1C50 B0 87 09 84 */ sth r4, 0x984(r7)
+/* 802A5FF4 002A1C54 88 07 08 CD */ lbz r0, 0x8cd(r7)
+/* 802A5FF8 002A1C58 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5FFC 002A1C5C 41 82 00 44 */ beq lbl_802A6040
+/* 802A6000 002A1C60 28 03 00 55 */ cmplwi r3, 0x55
+/* 802A6004 002A1C64 40 81 00 10 */ ble lbl_802A6014
+/* 802A6008 002A1C68 98 87 08 CD */ stb r4, 0x8cd(r7)
+/* 802A600C 002A1C6C 98 87 08 CE */ stb r4, 0x8ce(r7)
+/* 802A6010 002A1C70 4E 80 00 20 */ blr
+lbl_802A6014:
+/* 802A6014 002A1C74 28 03 00 50 */ cmplwi r3, 0x50
+/* 802A6018 002A1C78 4C 81 00 20 */ blelr
+/* 802A601C 002A1C7C 88 67 08 CE */ lbz r3, 0x8ce(r7)
+/* 802A6020 002A1C80 38 63 00 01 */ addi r3, r3, 1
+/* 802A6024 002A1C84 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A6028 002A1C88 98 67 08 CE */ stb r3, 0x8ce(r7)
+/* 802A602C 002A1C8C 28 00 00 14 */ cmplwi r0, 0x14
+/* 802A6030 002A1C90 4D 80 00 20 */ bltlr
+/* 802A6034 002A1C94 98 87 08 CD */ stb r4, 0x8cd(r7)
+/* 802A6038 002A1C98 98 87 08 CE */ stb r4, 0x8ce(r7)
+/* 802A603C 002A1C9C 4E 80 00 20 */ blr
+lbl_802A6040:
+/* 802A6040 002A1CA0 28 03 00 4B */ cmplwi r3, 0x4b
+/* 802A6044 002A1CA4 40 80 00 14 */ bge lbl_802A6058
+/* 802A6048 002A1CA8 38 00 00 01 */ li r0, 1
+/* 802A604C 002A1CAC 98 07 08 CD */ stb r0, 0x8cd(r7)
+/* 802A6050 002A1CB0 98 87 08 CE */ stb r4, 0x8ce(r7)
+/* 802A6054 002A1CB4 4E 80 00 20 */ blr
+lbl_802A6058:
+/* 802A6058 002A1CB8 28 03 00 50 */ cmplwi r3, 0x50
+/* 802A605C 002A1CBC 4C 80 00 20 */ bgelr
+/* 802A6060 002A1CC0 88 67 08 CE */ lbz r3, 0x8ce(r7)
+/* 802A6064 002A1CC4 38 63 00 01 */ addi r3, r3, 1
+/* 802A6068 002A1CC8 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A606C 002A1CCC 98 67 08 CE */ stb r3, 0x8ce(r7)
+/* 802A6070 002A1CD0 28 00 00 01 */ cmplwi r0, 1
+/* 802A6074 002A1CD4 4D 80 00 20 */ bltlr
+/* 802A6078 002A1CD8 38 00 00 01 */ li r0, 1
+/* 802A607C 002A1CDC 98 07 08 CD */ stb r0, 0x8cd(r7)
+/* 802A6080 002A1CE0 98 87 08 CE */ stb r4, 0x8ce(r7)
+/* 802A6084 002A1CE4 4E 80 00 20 */ blr
+
+.global IsControllerDataChanged
+IsControllerDataChanged:
+/* 802A6088 002A1CE8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A608C 002A1CEC 7C 08 02 A6 */ mflr r0
+/* 802A6090 002A1CF0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A6094 002A1CF4 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A6098 002A1CF8 4B F2 10 91 */ bl _savegpr_27
+/* 802A609C 002A1CFC 80 C3 08 B8 */ lwz r6, 0x8b8(r3)
+/* 802A60A0 002A1D00 89 03 08 C2 */ lbz r8, 0x8c2(r3)
+/* 802A60A4 002A1D04 28 06 00 02 */ cmplwi r6, 2
+/* 802A60A8 002A1D08 41 81 02 14 */ bgt lbl_802A62BC
+/* 802A60AC 002A1D0C 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A60B0 002A1D10 A1 04 00 00 */ lhz r8, 0(r4)
+/* 802A60B4 002A1D14 A0 E5 00 00 */ lhz r7, 0(r5)
+/* 802A60B8 002A1D18 7C 00 07 75 */ extsb. r0, r0
+/* 802A60BC 002A1D1C 7C C8 38 50 */ subf r6, r8, r7
+/* 802A60C0 002A1D20 7C 07 40 50 */ subf r0, r7, r8
+/* 802A60C4 002A1D24 7C C0 03 78 */ or r0, r6, r0
+/* 802A60C8 002A1D28 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802A60CC 002A1D2C 40 82 0B 4C */ bne lbl_802A6C18
+/* 802A60D0 002A1D30 88 C5 00 29 */ lbz r6, 0x29(r5)
+/* 802A60D4 002A1D34 7C C6 07 75 */ extsb. r6, r6
+/* 802A60D8 002A1D38 40 82 0B 40 */ bne lbl_802A6C18
+/* 802A60DC 002A1D3C A8 E5 00 04 */ lha r7, 4(r5)
+/* 802A60E0 002A1D40 A8 C4 00 04 */ lha r6, 4(r4)
+/* 802A60E4 002A1D44 7D 47 30 51 */ subf. r10, r7, r6
+/* 802A60E8 002A1D48 40 80 00 08 */ bge lbl_802A60F0
+/* 802A60EC 002A1D4C 7D 46 38 50 */ subf r10, r6, r7
+lbl_802A60F0:
+/* 802A60F0 002A1D50 A9 25 00 02 */ lha r9, 2(r5)
+/* 802A60F4 002A1D54 69 46 00 0C */ xori r6, r10, 0xc
+/* 802A60F8 002A1D58 A9 04 00 02 */ lha r8, 2(r4)
+/* 802A60FC 002A1D5C 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6100 002A1D60 7C C6 50 38 */ and r6, r6, r10
+/* 802A6104 002A1D64 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6108 002A1D68 7D 69 40 51 */ subf. r11, r9, r8
+/* 802A610C 002A1D6C 54 CA 0F FE */ srwi r10, r6, 0x1f
+/* 802A6110 002A1D70 40 80 00 08 */ bge lbl_802A6118
+/* 802A6114 002A1D74 7D 68 48 50 */ subf r11, r8, r9
+lbl_802A6118:
+/* 802A6118 002A1D78 A9 25 00 06 */ lha r9, 6(r5)
+/* 802A611C 002A1D7C 69 66 00 0C */ xori r6, r11, 0xc
+/* 802A6120 002A1D80 A9 04 00 06 */ lha r8, 6(r4)
+/* 802A6124 002A1D84 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6128 002A1D88 7C C6 58 38 */ and r6, r6, r11
+/* 802A612C 002A1D8C 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6130 002A1D90 7D 69 40 51 */ subf. r11, r9, r8
+/* 802A6134 002A1D94 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6138 002A1D98 40 80 00 08 */ bge lbl_802A6140
+/* 802A613C 002A1D9C 7D 68 48 50 */ subf r11, r8, r9
+lbl_802A6140:
+/* 802A6140 002A1DA0 69 67 00 0C */ xori r7, r11, 0xc
+/* 802A6144 002A1DA4 7C C6 53 78 */ or r6, r6, r10
+/* 802A6148 002A1DA8 7C E8 0E 70 */ srawi r8, r7, 1
+/* 802A614C 002A1DAC 7C E7 58 38 */ and r7, r7, r11
+/* 802A6150 002A1DB0 7C E7 40 50 */ subf r7, r7, r8
+/* 802A6154 002A1DB4 54 E7 0F FE */ srwi r7, r7, 0x1f
+/* 802A6158 002A1DB8 7C E6 33 79 */ or. r6, r7, r6
+/* 802A615C 002A1DBC 41 82 00 38 */ beq lbl_802A6194
+/* 802A6160 002A1DC0 A0 C3 08 FC */ lhz r6, 0x8fc(r3)
+/* 802A6164 002A1DC4 38 C6 00 01 */ addi r6, r6, 1
+/* 802A6168 002A1DC8 B0 C3 08 FC */ sth r6, 0x8fc(r3)
+/* 802A616C 002A1DCC 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6170 002A1DD0 A0 CD 89 A4 */ lhz r6, lbl_8063DC64-_SDA_BASE_(r13)
+/* 802A6174 002A1DD4 7C 07 30 40 */ cmplw r7, r6
+/* 802A6178 002A1DD8 40 81 00 60 */ ble lbl_802A61D8
+/* 802A617C 002A1DDC 38 C0 00 00 */ li r6, 0
+/* 802A6180 002A1DE0 60 00 00 01 */ ori r0, r0, 1
+/* 802A6184 002A1DE4 B0 C3 08 FC */ sth r6, 0x8fc(r3)
+/* 802A6188 002A1DE8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A618C 002A1DEC B0 C3 08 FE */ sth r6, 0x8fe(r3)
+/* 802A6190 002A1DF0 48 00 00 48 */ b lbl_802A61D8
+lbl_802A6194:
+/* 802A6194 002A1DF4 A0 C3 08 FE */ lhz r6, 0x8fe(r3)
+/* 802A6198 002A1DF8 A0 ED 89 A8 */ lhz r7, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A619C 002A1DFC 39 06 00 01 */ addi r8, r6, 1
+/* 802A61A0 002A1E00 7C C8 3B D6 */ divw r6, r8, r7
+/* 802A61A4 002A1E04 7C C6 39 D6 */ mullw r6, r6, r7
+/* 802A61A8 002A1E08 7C C6 40 50 */ subf r6, r6, r8
+/* 802A61AC 002A1E0C B0 C3 08 FE */ sth r6, 0x8fe(r3)
+/* 802A61B0 002A1E10 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A61B4 002A1E14 A0 CD 89 A8 */ lhz r6, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A61B8 002A1E18 38 C6 FF FF */ addi r6, r6, -1
+/* 802A61BC 002A1E1C 7C 07 30 00 */ cmpw r7, r6
+/* 802A61C0 002A1E20 40 82 00 18 */ bne lbl_802A61D8
+/* 802A61C4 002A1E24 A0 C3 08 FC */ lhz r6, 0x8fc(r3)
+/* 802A61C8 002A1E28 2C 06 00 00 */ cmpwi r6, 0
+/* 802A61CC 002A1E2C 41 82 00 0C */ beq lbl_802A61D8
+/* 802A61D0 002A1E30 38 C6 FF FF */ addi r6, r6, -1
+/* 802A61D4 002A1E34 B0 C3 08 FC */ sth r6, 0x8fc(r3)
+lbl_802A61D8:
+/* 802A61D8 002A1E38 38 C0 00 04 */ li r6, 4
+/* 802A61DC 002A1E3C 39 20 00 00 */ li r9, 0
+/* 802A61E0 002A1E40 7C C9 03 A6 */ mtctr r6
+lbl_802A61E4:
+/* 802A61E4 002A1E44 A8 E5 00 0A */ lha r7, 0xa(r5)
+/* 802A61E8 002A1E48 A8 C4 00 0A */ lha r6, 0xa(r4)
+/* 802A61EC 002A1E4C 7D 67 30 51 */ subf. r11, r7, r6
+/* 802A61F0 002A1E50 40 80 00 08 */ bge lbl_802A61F8
+/* 802A61F4 002A1E54 7D 66 38 50 */ subf r11, r6, r7
+lbl_802A61F8:
+/* 802A61F8 002A1E58 A9 45 00 08 */ lha r10, 8(r5)
+/* 802A61FC 002A1E5C 69 66 00 02 */ xori r6, r11, 2
+/* 802A6200 002A1E60 A9 04 00 08 */ lha r8, 8(r4)
+/* 802A6204 002A1E64 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6208 002A1E68 7C C6 58 38 */ and r6, r6, r11
+/* 802A620C 002A1E6C 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6210 002A1E70 7D 8A 40 51 */ subf. r12, r10, r8
+/* 802A6214 002A1E74 54 CB 0F FE */ srwi r11, r6, 0x1f
+/* 802A6218 002A1E78 40 80 00 08 */ bge lbl_802A6220
+/* 802A621C 002A1E7C 7D 88 50 50 */ subf r12, r8, r10
+lbl_802A6220:
+/* 802A6220 002A1E80 69 86 00 02 */ xori r6, r12, 2
+/* 802A6224 002A1E84 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6228 002A1E88 7C C6 60 38 */ and r6, r6, r12
+/* 802A622C 002A1E8C 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6230 002A1E90 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6234 002A1E94 7C C6 5B 79 */ or. r6, r6, r11
+/* 802A6238 002A1E98 41 82 00 30 */ beq lbl_802A6268
+/* 802A623C 002A1E9C A0 C3 08 F8 */ lhz r6, 0x8f8(r3)
+/* 802A6240 002A1EA0 38 C6 00 01 */ addi r6, r6, 1
+/* 802A6244 002A1EA4 B0 C3 08 F8 */ sth r6, 0x8f8(r3)
+/* 802A6248 002A1EA8 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A624C 002A1EAC A0 CD 89 A6 */ lhz r6, lbl_8063DC66-_SDA_BASE_(r13)
+/* 802A6250 002A1EB0 7C 07 30 40 */ cmplw r7, r6
+/* 802A6254 002A1EB4 40 81 00 58 */ ble lbl_802A62AC
+/* 802A6258 002A1EB8 60 00 00 01 */ ori r0, r0, 1
+/* 802A625C 002A1EBC B1 23 08 F8 */ sth r9, 0x8f8(r3)
+/* 802A6260 002A1EC0 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A6264 002A1EC4 48 00 00 48 */ b lbl_802A62AC
+lbl_802A6268:
+/* 802A6268 002A1EC8 A0 C3 08 FA */ lhz r6, 0x8fa(r3)
+/* 802A626C 002A1ECC A0 ED 89 AA */ lhz r7, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A6270 002A1ED0 39 06 00 01 */ addi r8, r6, 1
+/* 802A6274 002A1ED4 7C C8 3B D6 */ divw r6, r8, r7
+/* 802A6278 002A1ED8 7C C6 39 D6 */ mullw r6, r6, r7
+/* 802A627C 002A1EDC 7C C6 40 50 */ subf r6, r6, r8
+/* 802A6280 002A1EE0 B0 C3 08 FA */ sth r6, 0x8fa(r3)
+/* 802A6284 002A1EE4 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6288 002A1EE8 A0 CD 89 AA */ lhz r6, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A628C 002A1EEC 38 C6 FF FF */ addi r6, r6, -1
+/* 802A6290 002A1EF0 7C 07 30 00 */ cmpw r7, r6
+/* 802A6294 002A1EF4 40 82 00 18 */ bne lbl_802A62AC
+/* 802A6298 002A1EF8 A0 C3 08 F8 */ lhz r6, 0x8f8(r3)
+/* 802A629C 002A1EFC 2C 06 00 00 */ cmpwi r6, 0
+/* 802A62A0 002A1F00 41 82 00 0C */ beq lbl_802A62AC
+/* 802A62A4 002A1F04 38 C6 FF FF */ addi r6, r6, -1
+/* 802A62A8 002A1F08 B0 C3 08 F8 */ sth r6, 0x8f8(r3)
+lbl_802A62AC:
+/* 802A62AC 002A1F0C 38 A5 00 08 */ addi r5, r5, 8
+/* 802A62B0 002A1F10 38 84 00 08 */ addi r4, r4, 8
+/* 802A62B4 002A1F14 42 00 FF 30 */ bdnz lbl_802A61E4
+/* 802A62B8 002A1F18 48 00 09 60 */ b lbl_802A6C18
+lbl_802A62BC:
+/* 802A62BC 002A1F1C 38 06 FF FD */ addi r0, r6, -3
+/* 802A62C0 002A1F20 28 00 00 02 */ cmplwi r0, 2
+/* 802A62C4 002A1F24 41 81 03 80 */ bgt lbl_802A6644
+/* 802A62C8 002A1F28 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A62CC 002A1F2C 7C 86 23 78 */ mr r6, r4
+/* 802A62D0 002A1F30 A1 44 00 00 */ lhz r10, 0(r4)
+/* 802A62D4 002A1F34 7C A7 2B 78 */ mr r7, r5
+/* 802A62D8 002A1F38 A1 25 00 00 */ lhz r9, 0(r5)
+/* 802A62DC 002A1F3C 7C 00 07 75 */ extsb. r0, r0
+/* 802A62E0 002A1F40 7D 0A 48 50 */ subf r8, r10, r9
+/* 802A62E4 002A1F44 7C 09 50 50 */ subf r0, r9, r10
+/* 802A62E8 002A1F48 7D 00 03 78 */ or r0, r8, r0
+/* 802A62EC 002A1F4C 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802A62F0 002A1F50 40 82 09 28 */ bne lbl_802A6C18
+/* 802A62F4 002A1F54 89 05 00 29 */ lbz r8, 0x29(r5)
+/* 802A62F8 002A1F58 7D 08 07 75 */ extsb. r8, r8
+/* 802A62FC 002A1F5C 40 82 09 1C */ bne lbl_802A6C18
+/* 802A6300 002A1F60 A9 25 00 04 */ lha r9, 4(r5)
+/* 802A6304 002A1F64 A9 04 00 04 */ lha r8, 4(r4)
+/* 802A6308 002A1F68 7D 89 40 51 */ subf. r12, r9, r8
+/* 802A630C 002A1F6C 40 80 00 08 */ bge lbl_802A6314
+/* 802A6310 002A1F70 7D 88 48 50 */ subf r12, r8, r9
+lbl_802A6314:
+/* 802A6314 002A1F74 A9 65 00 02 */ lha r11, 2(r5)
+/* 802A6318 002A1F78 69 88 00 0C */ xori r8, r12, 0xc
+/* 802A631C 002A1F7C A9 44 00 02 */ lha r10, 2(r4)
+/* 802A6320 002A1F80 7D 09 0E 70 */ srawi r9, r8, 1
+/* 802A6324 002A1F84 7D 08 60 38 */ and r8, r8, r12
+/* 802A6328 002A1F88 7D 08 48 50 */ subf r8, r8, r9
+/* 802A632C 002A1F8C 7F 8B 50 51 */ subf. r28, r11, r10
+/* 802A6330 002A1F90 55 0C 0F FE */ srwi r12, r8, 0x1f
+/* 802A6334 002A1F94 40 80 00 08 */ bge lbl_802A633C
+/* 802A6338 002A1F98 7F 8A 58 50 */ subf r28, r10, r11
+lbl_802A633C:
+/* 802A633C 002A1F9C A9 65 00 06 */ lha r11, 6(r5)
+/* 802A6340 002A1FA0 6B 88 00 0C */ xori r8, r28, 0xc
+/* 802A6344 002A1FA4 A9 44 00 06 */ lha r10, 6(r4)
+/* 802A6348 002A1FA8 7D 09 0E 70 */ srawi r9, r8, 1
+/* 802A634C 002A1FAC 7D 08 E0 38 */ and r8, r8, r28
+/* 802A6350 002A1FB0 7D 08 48 50 */ subf r8, r8, r9
+/* 802A6354 002A1FB4 7F 8B 50 51 */ subf. r28, r11, r10
+/* 802A6358 002A1FB8 55 08 0F FE */ srwi r8, r8, 0x1f
+/* 802A635C 002A1FBC 40 80 00 08 */ bge lbl_802A6364
+/* 802A6360 002A1FC0 7F 8A 58 50 */ subf r28, r10, r11
+lbl_802A6364:
+/* 802A6364 002A1FC4 6B 89 00 0C */ xori r9, r28, 0xc
+/* 802A6368 002A1FC8 7D 08 63 78 */ or r8, r8, r12
+/* 802A636C 002A1FCC 7D 2A 0E 70 */ srawi r10, r9, 1
+/* 802A6370 002A1FD0 7D 29 E0 38 */ and r9, r9, r28
+/* 802A6374 002A1FD4 7D 29 50 50 */ subf r9, r9, r10
+/* 802A6378 002A1FD8 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 802A637C 002A1FDC 7D 28 43 79 */ or. r8, r9, r8
+/* 802A6380 002A1FE0 41 82 00 38 */ beq lbl_802A63B8
+/* 802A6384 002A1FE4 A1 03 08 FC */ lhz r8, 0x8fc(r3)
+/* 802A6388 002A1FE8 39 08 00 01 */ addi r8, r8, 1
+/* 802A638C 002A1FEC B1 03 08 FC */ sth r8, 0x8fc(r3)
+/* 802A6390 002A1FF0 55 09 04 3E */ clrlwi r9, r8, 0x10
+/* 802A6394 002A1FF4 A1 0D 89 A4 */ lhz r8, lbl_8063DC64-_SDA_BASE_(r13)
+/* 802A6398 002A1FF8 7C 09 40 40 */ cmplw r9, r8
+/* 802A639C 002A1FFC 40 81 00 60 */ ble lbl_802A63FC
+/* 802A63A0 002A2000 39 00 00 00 */ li r8, 0
+/* 802A63A4 002A2004 60 00 00 01 */ ori r0, r0, 1
+/* 802A63A8 002A2008 B1 03 08 FC */ sth r8, 0x8fc(r3)
+/* 802A63AC 002A200C 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A63B0 002A2010 B1 03 08 FE */ sth r8, 0x8fe(r3)
+/* 802A63B4 002A2014 48 00 00 48 */ b lbl_802A63FC
+lbl_802A63B8:
+/* 802A63B8 002A2018 A1 03 08 FE */ lhz r8, 0x8fe(r3)
+/* 802A63BC 002A201C A1 2D 89 A8 */ lhz r9, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A63C0 002A2020 39 48 00 01 */ addi r10, r8, 1
+/* 802A63C4 002A2024 7D 0A 4B D6 */ divw r8, r10, r9
+/* 802A63C8 002A2028 7D 08 49 D6 */ mullw r8, r8, r9
+/* 802A63CC 002A202C 7D 08 50 50 */ subf r8, r8, r10
+/* 802A63D0 002A2030 B1 03 08 FE */ sth r8, 0x8fe(r3)
+/* 802A63D4 002A2034 55 09 04 3E */ clrlwi r9, r8, 0x10
+/* 802A63D8 002A2038 A1 0D 89 A8 */ lhz r8, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A63DC 002A203C 39 08 FF FF */ addi r8, r8, -1
+/* 802A63E0 002A2040 7C 09 40 00 */ cmpw r9, r8
+/* 802A63E4 002A2044 40 82 00 18 */ bne lbl_802A63FC
+/* 802A63E8 002A2048 A1 03 08 FC */ lhz r8, 0x8fc(r3)
+/* 802A63EC 002A204C 2C 08 00 00 */ cmpwi r8, 0
+/* 802A63F0 002A2050 41 82 00 0C */ beq lbl_802A63FC
+/* 802A63F4 002A2054 39 08 FF FF */ addi r8, r8, -1
+/* 802A63F8 002A2058 B1 03 08 FC */ sth r8, 0x8fc(r3)
+lbl_802A63FC:
+/* 802A63FC 002A205C 39 00 00 04 */ li r8, 4
+/* 802A6400 002A2060 39 60 00 00 */ li r11, 0
+/* 802A6404 002A2064 7D 09 03 A6 */ mtctr r8
+lbl_802A6408:
+/* 802A6408 002A2068 A9 27 00 0A */ lha r9, 0xa(r7)
+/* 802A640C 002A206C A9 06 00 0A */ lha r8, 0xa(r6)
+/* 802A6410 002A2070 7F 89 40 51 */ subf. r28, r9, r8
+/* 802A6414 002A2074 40 80 00 08 */ bge lbl_802A641C
+/* 802A6418 002A2078 7F 88 48 50 */ subf r28, r8, r9
+lbl_802A641C:
+/* 802A641C 002A207C A9 87 00 08 */ lha r12, 8(r7)
+/* 802A6420 002A2080 6B 88 00 02 */ xori r8, r28, 2
+/* 802A6424 002A2084 A9 46 00 08 */ lha r10, 8(r6)
+/* 802A6428 002A2088 7D 09 0E 70 */ srawi r9, r8, 1
+/* 802A642C 002A208C 7D 08 E0 38 */ and r8, r8, r28
+/* 802A6430 002A2090 7D 08 48 50 */ subf r8, r8, r9
+/* 802A6434 002A2094 7F 8C 50 51 */ subf. r28, r12, r10
+/* 802A6438 002A2098 55 1D 0F FE */ srwi r29, r8, 0x1f
+/* 802A643C 002A209C 40 80 00 08 */ bge lbl_802A6444
+/* 802A6440 002A20A0 7F 8A 60 50 */ subf r28, r10, r12
+lbl_802A6444:
+/* 802A6444 002A20A4 6B 88 00 02 */ xori r8, r28, 2
+/* 802A6448 002A20A8 7D 09 0E 70 */ srawi r9, r8, 1
+/* 802A644C 002A20AC 7D 08 E0 38 */ and r8, r8, r28
+/* 802A6450 002A20B0 7D 08 48 50 */ subf r8, r8, r9
+/* 802A6454 002A20B4 55 08 0F FE */ srwi r8, r8, 0x1f
+/* 802A6458 002A20B8 7D 08 EB 79 */ or. r8, r8, r29
+/* 802A645C 002A20BC 41 82 00 30 */ beq lbl_802A648C
+/* 802A6460 002A20C0 A1 03 08 F8 */ lhz r8, 0x8f8(r3)
+/* 802A6464 002A20C4 39 08 00 01 */ addi r8, r8, 1
+/* 802A6468 002A20C8 B1 03 08 F8 */ sth r8, 0x8f8(r3)
+/* 802A646C 002A20CC 55 09 04 3E */ clrlwi r9, r8, 0x10
+/* 802A6470 002A20D0 A1 0D 89 A6 */ lhz r8, lbl_8063DC66-_SDA_BASE_(r13)
+/* 802A6474 002A20D4 7C 09 40 40 */ cmplw r9, r8
+/* 802A6478 002A20D8 40 81 00 58 */ ble lbl_802A64D0
+/* 802A647C 002A20DC 60 00 00 01 */ ori r0, r0, 1
+/* 802A6480 002A20E0 B1 63 08 F8 */ sth r11, 0x8f8(r3)
+/* 802A6484 002A20E4 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A6488 002A20E8 48 00 00 48 */ b lbl_802A64D0
+lbl_802A648C:
+/* 802A648C 002A20EC A1 03 08 FA */ lhz r8, 0x8fa(r3)
+/* 802A6490 002A20F0 A1 2D 89 AA */ lhz r9, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A6494 002A20F4 39 48 00 01 */ addi r10, r8, 1
+/* 802A6498 002A20F8 7D 0A 4B D6 */ divw r8, r10, r9
+/* 802A649C 002A20FC 7D 08 49 D6 */ mullw r8, r8, r9
+/* 802A64A0 002A2100 7D 08 50 50 */ subf r8, r8, r10
+/* 802A64A4 002A2104 B1 03 08 FA */ sth r8, 0x8fa(r3)
+/* 802A64A8 002A2108 55 09 04 3E */ clrlwi r9, r8, 0x10
+/* 802A64AC 002A210C A1 0D 89 AA */ lhz r8, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A64B0 002A2110 39 08 FF FF */ addi r8, r8, -1
+/* 802A64B4 002A2114 7C 09 40 00 */ cmpw r9, r8
+/* 802A64B8 002A2118 40 82 00 18 */ bne lbl_802A64D0
+/* 802A64BC 002A211C A1 03 08 F8 */ lhz r8, 0x8f8(r3)
+/* 802A64C0 002A2120 2C 08 00 00 */ cmpwi r8, 0
+/* 802A64C4 002A2124 41 82 00 0C */ beq lbl_802A64D0
+/* 802A64C8 002A2128 39 08 FF FF */ addi r8, r8, -1
+/* 802A64CC 002A212C B1 03 08 F8 */ sth r8, 0x8f8(r3)
+lbl_802A64D0:
+/* 802A64D0 002A2130 38 E7 00 08 */ addi r7, r7, 8
+/* 802A64D4 002A2134 38 C6 00 08 */ addi r6, r6, 8
+/* 802A64D8 002A2138 42 00 FF 30 */ bdnz lbl_802A6408
+/* 802A64DC 002A213C A8 E5 00 2C */ lha r7, 0x2c(r5)
+/* 802A64E0 002A2140 A8 C4 00 2C */ lha r6, 0x2c(r4)
+/* 802A64E4 002A2144 7D 47 30 51 */ subf. r10, r7, r6
+/* 802A64E8 002A2148 40 80 00 08 */ bge lbl_802A64F0
+/* 802A64EC 002A214C 7D 46 38 50 */ subf r10, r6, r7
+lbl_802A64F0:
+/* 802A64F0 002A2150 A9 25 00 2A */ lha r9, 0x2a(r5)
+/* 802A64F4 002A2154 69 46 00 0C */ xori r6, r10, 0xc
+/* 802A64F8 002A2158 A9 04 00 2A */ lha r8, 0x2a(r4)
+/* 802A64FC 002A215C 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6500 002A2160 7C C6 50 38 */ and r6, r6, r10
+/* 802A6504 002A2164 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6508 002A2168 7D 69 40 51 */ subf. r11, r9, r8
+/* 802A650C 002A216C 54 CA 0F FE */ srwi r10, r6, 0x1f
+/* 802A6510 002A2170 40 80 00 08 */ bge lbl_802A6518
+/* 802A6514 002A2174 7D 68 48 50 */ subf r11, r8, r9
+lbl_802A6518:
+/* 802A6518 002A2178 A9 25 00 2E */ lha r9, 0x2e(r5)
+/* 802A651C 002A217C 69 66 00 0C */ xori r6, r11, 0xc
+/* 802A6520 002A2180 A9 04 00 2E */ lha r8, 0x2e(r4)
+/* 802A6524 002A2184 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6528 002A2188 7C C6 58 38 */ and r6, r6, r11
+/* 802A652C 002A218C 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6530 002A2190 7D 69 40 51 */ subf. r11, r9, r8
+/* 802A6534 002A2194 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6538 002A2198 40 80 00 08 */ bge lbl_802A6540
+/* 802A653C 002A219C 7D 68 48 50 */ subf r11, r8, r9
+lbl_802A6540:
+/* 802A6540 002A21A0 69 67 00 0C */ xori r7, r11, 0xc
+/* 802A6544 002A21A4 7C C6 53 78 */ or r6, r6, r10
+/* 802A6548 002A21A8 7C E8 0E 70 */ srawi r8, r7, 1
+/* 802A654C 002A21AC 7C E7 58 38 */ and r7, r7, r11
+/* 802A6550 002A21B0 7C E7 40 50 */ subf r7, r7, r8
+/* 802A6554 002A21B4 54 E7 0F FE */ srwi r7, r7, 0x1f
+/* 802A6558 002A21B8 7C E6 33 79 */ or. r6, r7, r6
+/* 802A655C 002A21BC 41 82 00 38 */ beq lbl_802A6594
+/* 802A6560 002A21C0 A0 C3 09 00 */ lhz r6, 0x900(r3)
+/* 802A6564 002A21C4 38 C6 00 01 */ addi r6, r6, 1
+/* 802A6568 002A21C8 B0 C3 09 00 */ sth r6, 0x900(r3)
+/* 802A656C 002A21CC 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6570 002A21D0 A0 CD 89 A4 */ lhz r6, lbl_8063DC64-_SDA_BASE_(r13)
+/* 802A6574 002A21D4 7C 07 30 40 */ cmplw r7, r6
+/* 802A6578 002A21D8 40 81 00 60 */ ble lbl_802A65D8
+/* 802A657C 002A21DC 38 C0 00 00 */ li r6, 0
+/* 802A6580 002A21E0 60 00 00 01 */ ori r0, r0, 1
+/* 802A6584 002A21E4 B0 C3 09 00 */ sth r6, 0x900(r3)
+/* 802A6588 002A21E8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A658C 002A21EC B0 C3 09 02 */ sth r6, 0x902(r3)
+/* 802A6590 002A21F0 48 00 00 48 */ b lbl_802A65D8
+lbl_802A6594:
+/* 802A6594 002A21F4 A0 C3 09 02 */ lhz r6, 0x902(r3)
+/* 802A6598 002A21F8 A0 ED 89 A8 */ lhz r7, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A659C 002A21FC 39 06 00 01 */ addi r8, r6, 1
+/* 802A65A0 002A2200 7C C8 3B D6 */ divw r6, r8, r7
+/* 802A65A4 002A2204 7C C6 39 D6 */ mullw r6, r6, r7
+/* 802A65A8 002A2208 7C C6 40 50 */ subf r6, r6, r8
+/* 802A65AC 002A220C B0 C3 09 02 */ sth r6, 0x902(r3)
+/* 802A65B0 002A2210 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A65B4 002A2214 A0 CD 89 A8 */ lhz r6, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A65B8 002A2218 38 C6 FF FF */ addi r6, r6, -1
+/* 802A65BC 002A221C 7C 07 30 00 */ cmpw r7, r6
+/* 802A65C0 002A2220 40 82 00 18 */ bne lbl_802A65D8
+/* 802A65C4 002A2224 A0 C3 09 00 */ lhz r6, 0x900(r3)
+/* 802A65C8 002A2228 2C 06 00 00 */ cmpwi r6, 0
+/* 802A65CC 002A222C 41 82 00 0C */ beq lbl_802A65D8
+/* 802A65D0 002A2230 38 C6 FF FF */ addi r6, r6, -1
+/* 802A65D4 002A2234 B0 C3 09 00 */ sth r6, 0x900(r3)
+lbl_802A65D8:
+/* 802A65D8 002A2238 88 C5 00 30 */ lbz r6, 0x30(r5)
+/* 802A65DC 002A223C 88 64 00 30 */ lbz r3, 0x30(r4)
+/* 802A65E0 002A2240 7C C6 07 74 */ extsb r6, r6
+/* 802A65E4 002A2244 7C 63 07 74 */ extsb r3, r3
+/* 802A65E8 002A2248 7C E6 18 51 */ subf. r7, r6, r3
+/* 802A65EC 002A224C 40 80 00 08 */ bge lbl_802A65F4
+/* 802A65F0 002A2250 7C E3 30 50 */ subf r7, r3, r6
+lbl_802A65F4:
+/* 802A65F4 002A2254 88 C5 00 31 */ lbz r6, 0x31(r5)
+/* 802A65F8 002A2258 68 E3 00 01 */ xori r3, r7, 1
+/* 802A65FC 002A225C 88 A4 00 31 */ lbz r5, 0x31(r4)
+/* 802A6600 002A2260 7C 64 0E 70 */ srawi r4, r3, 1
+/* 802A6604 002A2264 7C 63 38 38 */ and r3, r3, r7
+/* 802A6608 002A2268 7C C6 07 74 */ extsb r6, r6
+/* 802A660C 002A226C 7C A5 07 74 */ extsb r5, r5
+/* 802A6610 002A2270 7C 63 20 50 */ subf r3, r3, r4
+/* 802A6614 002A2274 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 802A6618 002A2278 7C E6 28 51 */ subf. r7, r6, r5
+/* 802A661C 002A227C 7C 00 1B 78 */ or r0, r0, r3
+/* 802A6620 002A2280 40 80 00 08 */ bge lbl_802A6628
+/* 802A6624 002A2284 7C E5 30 50 */ subf r7, r5, r6
+lbl_802A6628:
+/* 802A6628 002A2288 68 E3 00 01 */ xori r3, r7, 1
+/* 802A662C 002A228C 7C 64 0E 70 */ srawi r4, r3, 1
+/* 802A6630 002A2290 7C 63 38 38 */ and r3, r3, r7
+/* 802A6634 002A2294 7C 63 20 50 */ subf r3, r3, r4
+/* 802A6638 002A2298 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 802A663C 002A229C 7C 00 1B 78 */ or r0, r0, r3
+/* 802A6640 002A22A0 48 00 05 D8 */ b lbl_802A6C18
+lbl_802A6644:
+/* 802A6644 002A22A4 38 06 FF FA */ addi r0, r6, -6
+/* 802A6648 002A22A8 28 00 00 02 */ cmplwi r0, 2
+/* 802A664C 002A22AC 41 81 03 C0 */ bgt lbl_802A6A0C
+/* 802A6650 002A22B0 2C 08 00 02 */ cmpwi r8, 2
+/* 802A6654 002A22B4 7C 86 23 78 */ mr r6, r4
+/* 802A6658 002A22B8 7C A7 2B 78 */ mr r7, r5
+/* 802A665C 002A22BC 41 82 00 40 */ beq lbl_802A669C
+/* 802A6660 002A22C0 40 80 00 10 */ bge lbl_802A6670
+/* 802A6664 002A22C4 2C 08 00 01 */ cmpwi r8, 1
+/* 802A6668 002A22C8 40 80 00 14 */ bge lbl_802A667C
+/* 802A666C 002A22CC 48 00 00 30 */ b lbl_802A669C
+lbl_802A6670:
+/* 802A6670 002A22D0 2C 08 00 04 */ cmpwi r8, 4
+/* 802A6674 002A22D4 40 80 00 28 */ bge lbl_802A669C
+/* 802A6678 002A22D8 48 00 00 14 */ b lbl_802A668C
+lbl_802A667C:
+/* 802A667C 002A22DC 39 00 00 10 */ li r8, 0x10
+/* 802A6680 002A22E0 39 20 00 20 */ li r9, 0x20
+/* 802A6684 002A22E4 39 40 00 08 */ li r10, 8
+/* 802A6688 002A22E8 48 00 00 20 */ b lbl_802A66A8
+lbl_802A668C:
+/* 802A668C 002A22EC 39 00 00 04 */ li r8, 4
+/* 802A6690 002A22F0 39 20 00 04 */ li r9, 4
+/* 802A6694 002A22F4 39 40 00 01 */ li r10, 1
+/* 802A6698 002A22F8 48 00 00 10 */ b lbl_802A66A8
+lbl_802A669C:
+/* 802A669C 002A22FC 39 00 00 01 */ li r8, 1
+/* 802A66A0 002A2300 39 20 00 01 */ li r9, 1
+/* 802A66A4 002A2304 39 40 00 01 */ li r10, 1
+lbl_802A66A8:
+/* 802A66A8 002A2308 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A66AC 002A230C A3 C4 00 00 */ lhz r30, 0(r4)
+/* 802A66B0 002A2310 A1 85 00 00 */ lhz r12, 0(r5)
+/* 802A66B4 002A2314 7C 00 07 75 */ extsb. r0, r0
+/* 802A66B8 002A2318 7D 7E 60 50 */ subf r11, r30, r12
+/* 802A66BC 002A231C 7C 0C F0 50 */ subf r0, r12, r30
+/* 802A66C0 002A2320 7D 60 03 78 */ or r0, r11, r0
+/* 802A66C4 002A2324 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802A66C8 002A2328 40 82 05 50 */ bne lbl_802A6C18
+/* 802A66CC 002A232C 89 65 00 29 */ lbz r11, 0x29(r5)
+/* 802A66D0 002A2330 7D 6B 07 75 */ extsb. r11, r11
+/* 802A66D4 002A2334 40 82 05 44 */ bne lbl_802A6C18
+/* 802A66D8 002A2338 A9 85 00 04 */ lha r12, 4(r5)
+/* 802A66DC 002A233C A9 64 00 04 */ lha r11, 4(r4)
+/* 802A66E0 002A2340 7F 8C 58 51 */ subf. r28, r12, r11
+/* 802A66E4 002A2344 40 80 00 08 */ bge lbl_802A66EC
+/* 802A66E8 002A2348 7F 8B 60 50 */ subf r28, r11, r12
+lbl_802A66EC:
+/* 802A66EC 002A234C AB E5 00 02 */ lha r31, 2(r5)
+/* 802A66F0 002A2350 6B 8B 00 0C */ xori r11, r28, 0xc
+/* 802A66F4 002A2354 AB C4 00 02 */ lha r30, 2(r4)
+/* 802A66F8 002A2358 7D 6C 0E 70 */ srawi r12, r11, 1
+/* 802A66FC 002A235C 7D 6B E0 38 */ and r11, r11, r28
+/* 802A6700 002A2360 7D 6B 60 50 */ subf r11, r11, r12
+/* 802A6704 002A2364 7F 9F F0 51 */ subf. r28, r31, r30
+/* 802A6708 002A2368 55 7D 0F FE */ srwi r29, r11, 0x1f
+/* 802A670C 002A236C 40 80 00 08 */ bge lbl_802A6714
+/* 802A6710 002A2370 7F 9E F8 50 */ subf r28, r30, r31
+lbl_802A6714:
+/* 802A6714 002A2374 AB E5 00 06 */ lha r31, 6(r5)
+/* 802A6718 002A2378 6B 8B 00 0C */ xori r11, r28, 0xc
+/* 802A671C 002A237C AB C4 00 06 */ lha r30, 6(r4)
+/* 802A6720 002A2380 7D 6C 0E 70 */ srawi r12, r11, 1
+/* 802A6724 002A2384 7D 6B E0 38 */ and r11, r11, r28
+/* 802A6728 002A2388 7D 6B 60 50 */ subf r11, r11, r12
+/* 802A672C 002A238C 7F 9F F0 51 */ subf. r28, r31, r30
+/* 802A6730 002A2390 55 6B 0F FE */ srwi r11, r11, 0x1f
+/* 802A6734 002A2394 40 80 00 08 */ bge lbl_802A673C
+/* 802A6738 002A2398 7F 9E F8 50 */ subf r28, r30, r31
+lbl_802A673C:
+/* 802A673C 002A239C 6B 8C 00 0C */ xori r12, r28, 0xc
+/* 802A6740 002A23A0 7D 6B EB 78 */ or r11, r11, r29
+/* 802A6744 002A23A4 7D 9E 0E 70 */ srawi r30, r12, 1
+/* 802A6748 002A23A8 7D 8C E0 38 */ and r12, r12, r28
+/* 802A674C 002A23AC 7D 8C F0 50 */ subf r12, r12, r30
+/* 802A6750 002A23B0 55 8C 0F FE */ srwi r12, r12, 0x1f
+/* 802A6754 002A23B4 7D 8B 5B 79 */ or. r11, r12, r11
+/* 802A6758 002A23B8 41 82 00 38 */ beq lbl_802A6790
+/* 802A675C 002A23BC A1 63 08 FC */ lhz r11, 0x8fc(r3)
+/* 802A6760 002A23C0 39 6B 00 01 */ addi r11, r11, 1
+/* 802A6764 002A23C4 B1 63 08 FC */ sth r11, 0x8fc(r3)
+/* 802A6768 002A23C8 55 6C 04 3E */ clrlwi r12, r11, 0x10
+/* 802A676C 002A23CC A1 6D 89 A4 */ lhz r11, lbl_8063DC64-_SDA_BASE_(r13)
+/* 802A6770 002A23D0 7C 0C 58 40 */ cmplw r12, r11
+/* 802A6774 002A23D4 40 81 00 60 */ ble lbl_802A67D4
+/* 802A6778 002A23D8 39 60 00 00 */ li r11, 0
+/* 802A677C 002A23DC 60 00 00 01 */ ori r0, r0, 1
+/* 802A6780 002A23E0 B1 63 08 FC */ sth r11, 0x8fc(r3)
+/* 802A6784 002A23E4 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A6788 002A23E8 B1 63 08 FE */ sth r11, 0x8fe(r3)
+/* 802A678C 002A23EC 48 00 00 48 */ b lbl_802A67D4
+lbl_802A6790:
+/* 802A6790 002A23F0 A1 63 08 FE */ lhz r11, 0x8fe(r3)
+/* 802A6794 002A23F4 A1 8D 89 A8 */ lhz r12, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A6798 002A23F8 3B CB 00 01 */ addi r30, r11, 1
+/* 802A679C 002A23FC 7D 7E 63 D6 */ divw r11, r30, r12
+/* 802A67A0 002A2400 7D 6B 61 D6 */ mullw r11, r11, r12
+/* 802A67A4 002A2404 7D 6B F0 50 */ subf r11, r11, r30
+/* 802A67A8 002A2408 B1 63 08 FE */ sth r11, 0x8fe(r3)
+/* 802A67AC 002A240C 55 6C 04 3E */ clrlwi r12, r11, 0x10
+/* 802A67B0 002A2410 A1 6D 89 A8 */ lhz r11, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A67B4 002A2414 39 6B FF FF */ addi r11, r11, -1
+/* 802A67B8 002A2418 7C 0C 58 00 */ cmpw r12, r11
+/* 802A67BC 002A241C 40 82 00 18 */ bne lbl_802A67D4
+/* 802A67C0 002A2420 A1 63 08 FC */ lhz r11, 0x8fc(r3)
+/* 802A67C4 002A2424 2C 0B 00 00 */ cmpwi r11, 0
+/* 802A67C8 002A2428 41 82 00 0C */ beq lbl_802A67D4
+/* 802A67CC 002A242C 39 6B FF FF */ addi r11, r11, -1
+/* 802A67D0 002A2430 B1 63 08 FC */ sth r11, 0x8fc(r3)
+lbl_802A67D4:
+/* 802A67D4 002A2434 39 60 00 04 */ li r11, 4
+/* 802A67D8 002A2438 3B C0 00 00 */ li r30, 0
+/* 802A67DC 002A243C 7D 69 03 A6 */ mtctr r11
+lbl_802A67E0:
+/* 802A67E0 002A2440 A9 87 00 0A */ lha r12, 0xa(r7)
+/* 802A67E4 002A2444 A9 66 00 0A */ lha r11, 0xa(r6)
+/* 802A67E8 002A2448 7F 8C 58 51 */ subf. r28, r12, r11
+/* 802A67EC 002A244C 40 80 00 08 */ bge lbl_802A67F4
+/* 802A67F0 002A2450 7F 8B 60 50 */ subf r28, r11, r12
+lbl_802A67F4:
+/* 802A67F4 002A2454 AB A7 00 08 */ lha r29, 8(r7)
+/* 802A67F8 002A2458 6B 8B 00 02 */ xori r11, r28, 2
+/* 802A67FC 002A245C AB E6 00 08 */ lha r31, 8(r6)
+/* 802A6800 002A2460 7D 6C 0E 70 */ srawi r12, r11, 1
+/* 802A6804 002A2464 7D 6B E0 38 */ and r11, r11, r28
+/* 802A6808 002A2468 7D 6B 60 50 */ subf r11, r11, r12
+/* 802A680C 002A246C 7F 7D F8 51 */ subf. r27, r29, r31
+/* 802A6810 002A2470 55 7C 0F FE */ srwi r28, r11, 0x1f
+/* 802A6814 002A2474 40 80 00 08 */ bge lbl_802A681C
+/* 802A6818 002A2478 7F 7F E8 50 */ subf r27, r31, r29
+lbl_802A681C:
+/* 802A681C 002A247C 6B 6B 00 02 */ xori r11, r27, 2
+/* 802A6820 002A2480 7D 6C 0E 70 */ srawi r12, r11, 1
+/* 802A6824 002A2484 7D 6B D8 38 */ and r11, r11, r27
+/* 802A6828 002A2488 7D 6B 60 50 */ subf r11, r11, r12
+/* 802A682C 002A248C 55 6B 0F FE */ srwi r11, r11, 0x1f
+/* 802A6830 002A2490 7D 6B E3 79 */ or. r11, r11, r28
+/* 802A6834 002A2494 41 82 00 30 */ beq lbl_802A6864
+/* 802A6838 002A2498 A1 63 08 F8 */ lhz r11, 0x8f8(r3)
+/* 802A683C 002A249C 39 6B 00 01 */ addi r11, r11, 1
+/* 802A6840 002A24A0 B1 63 08 F8 */ sth r11, 0x8f8(r3)
+/* 802A6844 002A24A4 55 6C 04 3E */ clrlwi r12, r11, 0x10
+/* 802A6848 002A24A8 A1 6D 89 A6 */ lhz r11, lbl_8063DC66-_SDA_BASE_(r13)
+/* 802A684C 002A24AC 7C 0C 58 40 */ cmplw r12, r11
+/* 802A6850 002A24B0 40 81 00 58 */ ble lbl_802A68A8
+/* 802A6854 002A24B4 60 00 00 01 */ ori r0, r0, 1
+/* 802A6858 002A24B8 B3 C3 08 F8 */ sth r30, 0x8f8(r3)
+/* 802A685C 002A24BC 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A6860 002A24C0 48 00 00 48 */ b lbl_802A68A8
+lbl_802A6864:
+/* 802A6864 002A24C4 A1 63 08 FA */ lhz r11, 0x8fa(r3)
+/* 802A6868 002A24C8 A1 8D 89 AA */ lhz r12, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A686C 002A24CC 3B EB 00 01 */ addi r31, r11, 1
+/* 802A6870 002A24D0 7D 7F 63 D6 */ divw r11, r31, r12
+/* 802A6874 002A24D4 7D 6B 61 D6 */ mullw r11, r11, r12
+/* 802A6878 002A24D8 7D 6B F8 50 */ subf r11, r11, r31
+/* 802A687C 002A24DC B1 63 08 FA */ sth r11, 0x8fa(r3)
+/* 802A6880 002A24E0 55 6C 04 3E */ clrlwi r12, r11, 0x10
+/* 802A6884 002A24E4 A1 6D 89 AA */ lhz r11, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A6888 002A24E8 39 6B FF FF */ addi r11, r11, -1
+/* 802A688C 002A24EC 7C 0C 58 00 */ cmpw r12, r11
+/* 802A6890 002A24F0 40 82 00 18 */ bne lbl_802A68A8
+/* 802A6894 002A24F4 A1 63 08 F8 */ lhz r11, 0x8f8(r3)
+/* 802A6898 002A24F8 2C 0B 00 00 */ cmpwi r11, 0
+/* 802A689C 002A24FC 41 82 00 0C */ beq lbl_802A68A8
+/* 802A68A0 002A2500 39 6B FF FF */ addi r11, r11, -1
+/* 802A68A4 002A2504 B1 63 08 F8 */ sth r11, 0x8f8(r3)
+lbl_802A68A8:
+/* 802A68A8 002A2508 38 E7 00 08 */ addi r7, r7, 8
+/* 802A68AC 002A250C 38 C6 00 08 */ addi r6, r6, 8
+/* 802A68B0 002A2510 42 00 FF 30 */ bdnz lbl_802A67E0
+/* 802A68B4 002A2514 A8 C5 00 2C */ lha r6, 0x2c(r5)
+/* 802A68B8 002A2518 A1 64 00 2A */ lhz r11, 0x2a(r4)
+/* 802A68BC 002A251C 7D 86 43 D6 */ divw r12, r6, r8
+/* 802A68C0 002A2520 A0 C5 00 2A */ lhz r6, 0x2a(r5)
+/* 802A68C4 002A2524 A8 64 00 2C */ lha r3, 0x2c(r4)
+/* 802A68C8 002A2528 7C EB 30 50 */ subf r7, r11, r6
+/* 802A68CC 002A252C 7C C6 58 50 */ subf r6, r6, r11
+/* 802A68D0 002A2530 7C E6 33 78 */ or r6, r7, r6
+/* 802A68D4 002A2534 7C E3 43 D6 */ divw r7, r3, r8
+/* 802A68D8 002A2538 54 C3 0F FE */ srwi r3, r6, 0x1f
+/* 802A68DC 002A253C 7C 00 1B 78 */ or r0, r0, r3
+/* 802A68E0 002A2540 7F 6C 38 51 */ subf. r27, r12, r7
+/* 802A68E4 002A2544 40 80 00 08 */ bge lbl_802A68EC
+/* 802A68E8 002A2548 7F 67 60 50 */ subf r27, r7, r12
+lbl_802A68EC:
+/* 802A68EC 002A254C A8 C5 00 2E */ lha r6, 0x2e(r5)
+/* 802A68F0 002A2550 6B 6B 00 01 */ xori r11, r27, 1
+/* 802A68F4 002A2554 A8 64 00 2E */ lha r3, 0x2e(r4)
+/* 802A68F8 002A2558 7D 67 0E 70 */ srawi r7, r11, 1
+/* 802A68FC 002A255C 7D 86 43 D6 */ divw r12, r6, r8
+/* 802A6900 002A2560 7D 66 D8 38 */ and r6, r11, r27
+/* 802A6904 002A2564 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6908 002A2568 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A690C 002A256C 7C 00 33 78 */ or r0, r0, r6
+/* 802A6910 002A2570 7C 63 43 D6 */ divw r3, r3, r8
+/* 802A6914 002A2574 7F 6C 18 51 */ subf. r27, r12, r3
+/* 802A6918 002A2578 40 80 00 08 */ bge lbl_802A6920
+/* 802A691C 002A257C 7F 63 60 50 */ subf r27, r3, r12
+lbl_802A6920:
+/* 802A6920 002A2580 A8 C5 00 30 */ lha r6, 0x30(r5)
+/* 802A6924 002A2584 6B 68 00 01 */ xori r8, r27, 1
+/* 802A6928 002A2588 A8 64 00 30 */ lha r3, 0x30(r4)
+/* 802A692C 002A258C 7D 07 0E 70 */ srawi r7, r8, 1
+/* 802A6930 002A2590 7D 66 4B D6 */ divw r11, r6, r9
+/* 802A6934 002A2594 7D 06 D8 38 */ and r6, r8, r27
+/* 802A6938 002A2598 7C C6 38 50 */ subf r6, r6, r7
+/* 802A693C 002A259C 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6940 002A25A0 7C 00 33 78 */ or r0, r0, r6
+/* 802A6944 002A25A4 7C 63 4B D6 */ divw r3, r3, r9
+/* 802A6948 002A25A8 7D 8B 18 51 */ subf. r12, r11, r3
+/* 802A694C 002A25AC 40 80 00 08 */ bge lbl_802A6954
+/* 802A6950 002A25B0 7D 83 58 50 */ subf r12, r3, r11
+lbl_802A6954:
+/* 802A6954 002A25B4 A8 C5 00 32 */ lha r6, 0x32(r5)
+/* 802A6958 002A25B8 69 88 00 01 */ xori r8, r12, 1
+/* 802A695C 002A25BC A8 64 00 32 */ lha r3, 0x32(r4)
+/* 802A6960 002A25C0 7D 07 0E 70 */ srawi r7, r8, 1
+/* 802A6964 002A25C4 7D 66 4B D6 */ divw r11, r6, r9
+/* 802A6968 002A25C8 7D 06 60 38 */ and r6, r8, r12
+/* 802A696C 002A25CC 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6970 002A25D0 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6974 002A25D4 7C 00 33 78 */ or r0, r0, r6
+/* 802A6978 002A25D8 7C 63 4B D6 */ divw r3, r3, r9
+/* 802A697C 002A25DC 7D 8B 18 51 */ subf. r12, r11, r3
+/* 802A6980 002A25E0 40 80 00 08 */ bge lbl_802A6988
+/* 802A6984 002A25E4 7D 83 58 50 */ subf r12, r3, r11
+lbl_802A6988:
+/* 802A6988 002A25E8 88 C5 00 34 */ lbz r6, 0x34(r5)
+/* 802A698C 002A25EC 69 88 00 01 */ xori r8, r12, 1
+/* 802A6990 002A25F0 88 64 00 34 */ lbz r3, 0x34(r4)
+/* 802A6994 002A25F4 7D 07 0E 70 */ srawi r7, r8, 1
+/* 802A6998 002A25F8 7D 26 53 D6 */ divw r9, r6, r10
+/* 802A699C 002A25FC 7D 06 60 38 */ and r6, r8, r12
+/* 802A69A0 002A2600 7C C6 38 50 */ subf r6, r6, r7
+/* 802A69A4 002A2604 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A69A8 002A2608 7C 00 33 78 */ or r0, r0, r6
+/* 802A69AC 002A260C 7C 63 53 D6 */ divw r3, r3, r10
+/* 802A69B0 002A2610 7D 09 18 51 */ subf. r8, r9, r3
+/* 802A69B4 002A2614 40 80 00 08 */ bge lbl_802A69BC
+/* 802A69B8 002A2618 7D 03 48 50 */ subf r8, r3, r9
+lbl_802A69BC:
+/* 802A69BC 002A261C 88 A5 00 35 */ lbz r5, 0x35(r5)
+/* 802A69C0 002A2620 69 07 00 01 */ xori r7, r8, 1
+/* 802A69C4 002A2624 88 64 00 35 */ lbz r3, 0x35(r4)
+/* 802A69C8 002A2628 7C E6 0E 70 */ srawi r6, r7, 1
+/* 802A69CC 002A262C 7C A5 53 D6 */ divw r5, r5, r10
+/* 802A69D0 002A2630 7C E4 40 38 */ and r4, r7, r8
+/* 802A69D4 002A2634 7C 84 30 50 */ subf r4, r4, r6
+/* 802A69D8 002A2638 54 84 0F FE */ srwi r4, r4, 0x1f
+/* 802A69DC 002A263C 7C 00 23 78 */ or r0, r0, r4
+/* 802A69E0 002A2640 7C 63 53 D6 */ divw r3, r3, r10
+/* 802A69E4 002A2644 7C C5 18 51 */ subf. r6, r5, r3
+/* 802A69E8 002A2648 40 80 00 08 */ bge lbl_802A69F0
+/* 802A69EC 002A264C 7C C3 28 50 */ subf r6, r3, r5
+lbl_802A69F0:
+/* 802A69F0 002A2650 68 C3 00 01 */ xori r3, r6, 1
+/* 802A69F4 002A2654 7C 64 0E 70 */ srawi r4, r3, 1
+/* 802A69F8 002A2658 7C 63 30 38 */ and r3, r3, r6
+/* 802A69FC 002A265C 7C 63 20 50 */ subf r3, r3, r4
+/* 802A6A00 002A2660 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 802A6A04 002A2664 7C 00 1B 78 */ or r0, r0, r3
+/* 802A6A08 002A2668 48 00 02 10 */ b lbl_802A6C18
+lbl_802A6A0C:
+/* 802A6A0C 002A266C 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A6A10 002A2670 A1 04 00 00 */ lhz r8, 0(r4)
+/* 802A6A14 002A2674 A0 E5 00 00 */ lhz r7, 0(r5)
+/* 802A6A18 002A2678 7C 00 07 75 */ extsb. r0, r0
+/* 802A6A1C 002A267C 7C C8 38 50 */ subf r6, r8, r7
+/* 802A6A20 002A2680 7C 07 40 50 */ subf r0, r7, r8
+/* 802A6A24 002A2684 7C C0 03 78 */ or r0, r6, r0
+/* 802A6A28 002A2688 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802A6A2C 002A268C 40 82 01 EC */ bne lbl_802A6C18
+/* 802A6A30 002A2690 88 C5 00 29 */ lbz r6, 0x29(r5)
+/* 802A6A34 002A2694 7C C6 07 75 */ extsb. r6, r6
+/* 802A6A38 002A2698 40 82 01 E0 */ bne lbl_802A6C18
+/* 802A6A3C 002A269C A8 E5 00 04 */ lha r7, 4(r5)
+/* 802A6A40 002A26A0 A8 C4 00 04 */ lha r6, 4(r4)
+/* 802A6A44 002A26A4 7D 47 30 51 */ subf. r10, r7, r6
+/* 802A6A48 002A26A8 40 80 00 08 */ bge lbl_802A6A50
+/* 802A6A4C 002A26AC 7D 46 38 50 */ subf r10, r6, r7
+lbl_802A6A50:
+/* 802A6A50 002A26B0 A9 25 00 02 */ lha r9, 2(r5)
+/* 802A6A54 002A26B4 69 46 00 0C */ xori r6, r10, 0xc
+/* 802A6A58 002A26B8 A9 04 00 02 */ lha r8, 2(r4)
+/* 802A6A5C 002A26BC 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6A60 002A26C0 7C C6 50 38 */ and r6, r6, r10
+/* 802A6A64 002A26C4 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6A68 002A26C8 7D 69 40 51 */ subf. r11, r9, r8
+/* 802A6A6C 002A26CC 54 CA 0F FE */ srwi r10, r6, 0x1f
+/* 802A6A70 002A26D0 40 80 00 08 */ bge lbl_802A6A78
+/* 802A6A74 002A26D4 7D 68 48 50 */ subf r11, r8, r9
+lbl_802A6A78:
+/* 802A6A78 002A26D8 A9 25 00 06 */ lha r9, 6(r5)
+/* 802A6A7C 002A26DC 69 66 00 0C */ xori r6, r11, 0xc
+/* 802A6A80 002A26E0 A9 04 00 06 */ lha r8, 6(r4)
+/* 802A6A84 002A26E4 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6A88 002A26E8 7C C6 58 38 */ and r6, r6, r11
+/* 802A6A8C 002A26EC 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6A90 002A26F0 7D 69 40 51 */ subf. r11, r9, r8
+/* 802A6A94 002A26F4 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6A98 002A26F8 40 80 00 08 */ bge lbl_802A6AA0
+/* 802A6A9C 002A26FC 7D 68 48 50 */ subf r11, r8, r9
+lbl_802A6AA0:
+/* 802A6AA0 002A2700 69 67 00 0C */ xori r7, r11, 0xc
+/* 802A6AA4 002A2704 7C C6 53 78 */ or r6, r6, r10
+/* 802A6AA8 002A2708 7C E8 0E 70 */ srawi r8, r7, 1
+/* 802A6AAC 002A270C 7C E7 58 38 */ and r7, r7, r11
+/* 802A6AB0 002A2710 7C E7 40 50 */ subf r7, r7, r8
+/* 802A6AB4 002A2714 54 E7 0F FE */ srwi r7, r7, 0x1f
+/* 802A6AB8 002A2718 7C E6 33 79 */ or. r6, r7, r6
+/* 802A6ABC 002A271C 41 82 00 38 */ beq lbl_802A6AF4
+/* 802A6AC0 002A2720 A0 C3 08 FC */ lhz r6, 0x8fc(r3)
+/* 802A6AC4 002A2724 38 C6 00 01 */ addi r6, r6, 1
+/* 802A6AC8 002A2728 B0 C3 08 FC */ sth r6, 0x8fc(r3)
+/* 802A6ACC 002A272C 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6AD0 002A2730 A0 CD 89 A4 */ lhz r6, lbl_8063DC64-_SDA_BASE_(r13)
+/* 802A6AD4 002A2734 7C 07 30 40 */ cmplw r7, r6
+/* 802A6AD8 002A2738 40 81 00 60 */ ble lbl_802A6B38
+/* 802A6ADC 002A273C 38 C0 00 00 */ li r6, 0
+/* 802A6AE0 002A2740 60 00 00 01 */ ori r0, r0, 1
+/* 802A6AE4 002A2744 B0 C3 08 FC */ sth r6, 0x8fc(r3)
+/* 802A6AE8 002A2748 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A6AEC 002A274C B0 C3 08 FE */ sth r6, 0x8fe(r3)
+/* 802A6AF0 002A2750 48 00 00 48 */ b lbl_802A6B38
+lbl_802A6AF4:
+/* 802A6AF4 002A2754 A0 C3 08 FE */ lhz r6, 0x8fe(r3)
+/* 802A6AF8 002A2758 A0 ED 89 A8 */ lhz r7, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A6AFC 002A275C 39 06 00 01 */ addi r8, r6, 1
+/* 802A6B00 002A2760 7C C8 3B D6 */ divw r6, r8, r7
+/* 802A6B04 002A2764 7C C6 39 D6 */ mullw r6, r6, r7
+/* 802A6B08 002A2768 7C C6 40 50 */ subf r6, r6, r8
+/* 802A6B0C 002A276C B0 C3 08 FE */ sth r6, 0x8fe(r3)
+/* 802A6B10 002A2770 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6B14 002A2774 A0 CD 89 A8 */ lhz r6, lbl_8063DC68-_SDA_BASE_(r13)
+/* 802A6B18 002A2778 38 C6 FF FF */ addi r6, r6, -1
+/* 802A6B1C 002A277C 7C 07 30 00 */ cmpw r7, r6
+/* 802A6B20 002A2780 40 82 00 18 */ bne lbl_802A6B38
+/* 802A6B24 002A2784 A0 C3 08 FC */ lhz r6, 0x8fc(r3)
+/* 802A6B28 002A2788 2C 06 00 00 */ cmpwi r6, 0
+/* 802A6B2C 002A278C 41 82 00 0C */ beq lbl_802A6B38
+/* 802A6B30 002A2790 38 C6 FF FF */ addi r6, r6, -1
+/* 802A6B34 002A2794 B0 C3 08 FC */ sth r6, 0x8fc(r3)
+lbl_802A6B38:
+/* 802A6B38 002A2798 38 C0 00 04 */ li r6, 4
+/* 802A6B3C 002A279C 39 20 00 00 */ li r9, 0
+/* 802A6B40 002A27A0 7C C9 03 A6 */ mtctr r6
+lbl_802A6B44:
+/* 802A6B44 002A27A4 A8 E5 00 0A */ lha r7, 0xa(r5)
+/* 802A6B48 002A27A8 A8 C4 00 0A */ lha r6, 0xa(r4)
+/* 802A6B4C 002A27AC 7D 67 30 51 */ subf. r11, r7, r6
+/* 802A6B50 002A27B0 40 80 00 08 */ bge lbl_802A6B58
+/* 802A6B54 002A27B4 7D 66 38 50 */ subf r11, r6, r7
+lbl_802A6B58:
+/* 802A6B58 002A27B8 A9 45 00 08 */ lha r10, 8(r5)
+/* 802A6B5C 002A27BC 69 66 00 02 */ xori r6, r11, 2
+/* 802A6B60 002A27C0 A9 04 00 08 */ lha r8, 8(r4)
+/* 802A6B64 002A27C4 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6B68 002A27C8 7C C6 58 38 */ and r6, r6, r11
+/* 802A6B6C 002A27CC 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6B70 002A27D0 7D 8A 40 51 */ subf. r12, r10, r8
+/* 802A6B74 002A27D4 54 CB 0F FE */ srwi r11, r6, 0x1f
+/* 802A6B78 002A27D8 40 80 00 08 */ bge lbl_802A6B80
+/* 802A6B7C 002A27DC 7D 88 50 50 */ subf r12, r8, r10
+lbl_802A6B80:
+/* 802A6B80 002A27E0 69 86 00 02 */ xori r6, r12, 2
+/* 802A6B84 002A27E4 7C C7 0E 70 */ srawi r7, r6, 1
+/* 802A6B88 002A27E8 7C C6 60 38 */ and r6, r6, r12
+/* 802A6B8C 002A27EC 7C C6 38 50 */ subf r6, r6, r7
+/* 802A6B90 002A27F0 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 802A6B94 002A27F4 7C C6 5B 79 */ or. r6, r6, r11
+/* 802A6B98 002A27F8 41 82 00 30 */ beq lbl_802A6BC8
+/* 802A6B9C 002A27FC A0 C3 08 F8 */ lhz r6, 0x8f8(r3)
+/* 802A6BA0 002A2800 38 C6 00 01 */ addi r6, r6, 1
+/* 802A6BA4 002A2804 B0 C3 08 F8 */ sth r6, 0x8f8(r3)
+/* 802A6BA8 002A2808 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6BAC 002A280C A0 CD 89 A6 */ lhz r6, lbl_8063DC66-_SDA_BASE_(r13)
+/* 802A6BB0 002A2810 7C 07 30 40 */ cmplw r7, r6
+/* 802A6BB4 002A2814 40 81 00 58 */ ble lbl_802A6C0C
+/* 802A6BB8 002A2818 60 00 00 01 */ ori r0, r0, 1
+/* 802A6BBC 002A281C B1 23 08 F8 */ sth r9, 0x8f8(r3)
+/* 802A6BC0 002A2820 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 802A6BC4 002A2824 48 00 00 48 */ b lbl_802A6C0C
+lbl_802A6BC8:
+/* 802A6BC8 002A2828 A0 C3 08 FA */ lhz r6, 0x8fa(r3)
+/* 802A6BCC 002A282C A0 ED 89 AA */ lhz r7, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A6BD0 002A2830 39 06 00 01 */ addi r8, r6, 1
+/* 802A6BD4 002A2834 7C C8 3B D6 */ divw r6, r8, r7
+/* 802A6BD8 002A2838 7C C6 39 D6 */ mullw r6, r6, r7
+/* 802A6BDC 002A283C 7C C6 40 50 */ subf r6, r6, r8
+/* 802A6BE0 002A2840 B0 C3 08 FA */ sth r6, 0x8fa(r3)
+/* 802A6BE4 002A2844 54 C7 04 3E */ clrlwi r7, r6, 0x10
+/* 802A6BE8 002A2848 A0 CD 89 AA */ lhz r6, lbl_8063DC6A-_SDA_BASE_(r13)
+/* 802A6BEC 002A284C 38 C6 FF FF */ addi r6, r6, -1
+/* 802A6BF0 002A2850 7C 07 30 00 */ cmpw r7, r6
+/* 802A6BF4 002A2854 40 82 00 18 */ bne lbl_802A6C0C
+/* 802A6BF8 002A2858 A0 C3 08 F8 */ lhz r6, 0x8f8(r3)
+/* 802A6BFC 002A285C 2C 06 00 00 */ cmpwi r6, 0
+/* 802A6C00 002A2860 41 82 00 0C */ beq lbl_802A6C0C
+/* 802A6C04 002A2864 38 C6 FF FF */ addi r6, r6, -1
+/* 802A6C08 002A2868 B0 C3 08 F8 */ sth r6, 0x8f8(r3)
+lbl_802A6C0C:
+/* 802A6C0C 002A286C 38 A5 00 08 */ addi r5, r5, 8
+/* 802A6C10 002A2870 38 84 00 08 */ addi r4, r4, 8
+/* 802A6C14 002A2874 42 00 FF 30 */ bdnz lbl_802A6B44
+lbl_802A6C18:
+/* 802A6C18 002A2878 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A6C1C 002A287C 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 802A6C20 002A2880 4B F2 05 55 */ bl _restgpr_27
+/* 802A6C24 002A2884 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A6C28 002A2888 7C 08 03 A6 */ mtlr r0
+/* 802A6C2C 002A288C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A6C30 002A2890 4E 80 00 20 */ blr
+
+.global CheckButtonCombination
+CheckButtonCombination:
+/* 802A6C34 002A2894 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A6C38 002A2898 7C 08 02 A6 */ mflr r0
+/* 802A6C3C 002A289C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A6C40 002A28A0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A6C44 002A28A4 3F E0 80 53 */ lis r31, lbl_80536D70@ha
+/* 802A6C48 002A28A8 3B FF 6D 70 */ addi r31, r31, lbl_80536D70@l
+/* 802A6C4C 002A28AC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A6C50 002A28B0 54 7E 10 3A */ slwi r30, r3, 2
+/* 802A6C54 002A28B4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A6C58 002A28B8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A6C5C 002A28BC 3B 80 FF FF */ li r28, -1
+/* 802A6C60 002A28C0 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A6C64 002A28C4 4B FC 7A F9 */ bl OSDisableInterrupts
+/* 802A6C68 002A28C8 88 1D 08 C8 */ lbz r0, 0x8c8(r29)
+/* 802A6C6C 002A28CC 80 BD 08 B8 */ lwz r5, 0x8b8(r29)
+/* 802A6C70 002A28D0 7C 00 00 34 */ cntlzw r0, r0
+/* 802A6C74 002A28D4 54 04 DE 3E */ rlwinm r4, r0, 0x1b, 0x18, 0x1f
+/* 802A6C78 002A28D8 38 05 FF FD */ addi r0, r5, -3
+/* 802A6C7C 002A28DC 1C 84 00 60 */ mulli r4, r4, 0x60
+/* 802A6C80 002A28E0 28 00 00 02 */ cmplwi r0, 2
+/* 802A6C84 002A28E4 7C 9D 22 14 */ add r4, r29, r4
+/* 802A6C88 002A28E8 41 81 00 14 */ bgt lbl_802A6C9C
+/* 802A6C8C 002A28EC A0 04 00 A0 */ lhz r0, 0xa0(r4)
+/* 802A6C90 002A28F0 28 00 1C 10 */ cmplwi r0, 0x1c10
+/* 802A6C94 002A28F4 40 82 00 08 */ bne lbl_802A6C9C
+/* 802A6C98 002A28F8 3B 80 00 01 */ li r28, 1
+lbl_802A6C9C:
+/* 802A6C9C 002A28FC 38 05 FF FA */ addi r0, r5, -6
+/* 802A6CA0 002A2900 28 00 00 02 */ cmplwi r0, 2
+/* 802A6CA4 002A2904 41 81 00 38 */ bgt lbl_802A6CDC
+/* 802A6CA8 002A2908 A0 04 00 A0 */ lhz r0, 0xa0(r4)
+/* 802A6CAC 002A290C 28 00 1C 10 */ cmplwi r0, 0x1c10
+/* 802A6CB0 002A2910 40 82 00 08 */ bne lbl_802A6CB8
+/* 802A6CB4 002A2914 3B 80 00 01 */ li r28, 1
+lbl_802A6CB8:
+/* 802A6CB8 002A2918 88 04 00 C9 */ lbz r0, 0xc9(r4)
+/* 802A6CBC 002A291C 7C 00 07 75 */ extsb. r0, r0
+/* 802A6CC0 002A2920 41 82 00 0C */ beq lbl_802A6CCC
+/* 802A6CC4 002A2924 3B 80 00 00 */ li r28, 0
+/* 802A6CC8 002A2928 48 00 00 14 */ b lbl_802A6CDC
+lbl_802A6CCC:
+/* 802A6CCC 002A292C A0 04 00 CA */ lhz r0, 0xca(r4)
+/* 802A6CD0 002A2930 28 00 14 50 */ cmplwi r0, 0x1450
+/* 802A6CD4 002A2934 40 82 00 08 */ bne lbl_802A6CDC
+/* 802A6CD8 002A2938 3B 80 00 01 */ li r28, 1
+lbl_802A6CDC:
+/* 802A6CDC 002A293C 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A6CE0 002A2940 40 80 00 10 */ bge lbl_802A6CF0
+/* 802A6CE4 002A2944 38 00 00 00 */ li r0, 0
+/* 802A6CE8 002A2948 B0 1D 09 12 */ sth r0, 0x912(r29)
+/* 802A6CEC 002A294C 48 00 00 10 */ b lbl_802A6CFC
+lbl_802A6CF0:
+/* 802A6CF0 002A2950 A0 1D 09 12 */ lhz r0, 0x912(r29)
+/* 802A6CF4 002A2954 7C 00 E2 14 */ add r0, r0, r28
+/* 802A6CF8 002A2958 B0 1D 09 12 */ sth r0, 0x912(r29)
+lbl_802A6CFC:
+/* 802A6CFC 002A295C 4B FC 7A 89 */ bl OSRestoreInterrupts
+/* 802A6D00 002A2960 A0 1D 09 12 */ lhz r0, 0x912(r29)
+/* 802A6D04 002A2964 28 00 02 58 */ cmplwi r0, 0x258
+/* 802A6D08 002A2968 40 81 00 18 */ ble lbl_802A6D20
+/* 802A6D0C 002A296C 7F 9F F0 2E */ lwzx r28, r31, r30
+/* 802A6D10 002A2970 4B FC 7A 4D */ bl OSDisableInterrupts
+/* 802A6D14 002A2974 38 00 00 00 */ li r0, 0
+/* 802A6D18 002A2978 98 1C 09 11 */ stb r0, 0x911(r28)
+/* 802A6D1C 002A297C 4B FC 7A 69 */ bl OSRestoreInterrupts
+lbl_802A6D20:
+/* 802A6D20 002A2980 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A6D24 002A2984 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A6D28 002A2988 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A6D2C 002A298C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A6D30 002A2990 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A6D34 002A2994 7C 08 03 A6 */ mtlr r0
+/* 802A6D38 002A2998 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A6D3C 002A299C 4E 80 00 20 */ blr
+
+.global WPADiCheckContInputs
+WPADiCheckContInputs:
+/* 802A6D40 002A29A0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A6D44 002A29A4 7C 08 02 A6 */ mflr r0
+/* 802A6D48 002A29A8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A6D4C 002A29AC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A6D50 002A29B0 4B F2 03 CD */ bl _savegpr_24
+/* 802A6D54 002A29B4 3F E0 80 53 */ lis r31, lbl_80536D70@ha
+/* 802A6D58 002A29B8 54 7E 10 3A */ slwi r30, r3, 2
+/* 802A6D5C 002A29BC 3B FF 6D 70 */ addi r31, r31, lbl_80536D70@l
+/* 802A6D60 002A29C0 7C 7B 1B 78 */ mr r27, r3
+/* 802A6D64 002A29C4 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A6D68 002A29C8 3B 80 00 00 */ li r28, 0
+/* 802A6D6C 002A29CC 80 1D 08 BC */ lwz r0, 0x8bc(r29)
+/* 802A6D70 002A29D0 2C 00 FF FF */ cmpwi r0, -1
+/* 802A6D74 002A29D4 41 82 01 38 */ beq lbl_802A6EAC
+/* 802A6D78 002A29D8 4B FC 79 E5 */ bl OSDisableInterrupts
+/* 802A6D7C 002A29DC 88 1D 08 C8 */ lbz r0, 0x8c8(r29)
+/* 802A6D80 002A29E0 7C 79 1B 78 */ mr r25, r3
+/* 802A6D84 002A29E4 7F A3 EB 78 */ mr r3, r29
+/* 802A6D88 002A29E8 38 BD 00 40 */ addi r5, r29, 0x40
+/* 802A6D8C 002A29EC 7C 00 00 34 */ cntlzw r0, r0
+/* 802A6D90 002A29F0 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
+/* 802A6D94 002A29F4 1C 00 00 60 */ mulli r0, r0, 0x60
+/* 802A6D98 002A29F8 7C 9D 02 14 */ add r4, r29, r0
+/* 802A6D9C 002A29FC 3B 04 00 A0 */ addi r24, r4, 0xa0
+/* 802A6DA0 002A2A00 7F 04 C3 78 */ mr r4, r24
+/* 802A6DA4 002A2A04 4B FF F2 E5 */ bl IsControllerDataChanged
+/* 802A6DA8 002A2A08 2C 03 00 00 */ cmpwi r3, 0
+/* 802A6DAC 002A2A0C 7C 7A 1B 78 */ mr r26, r3
+/* 802A6DB0 002A2A10 41 82 00 14 */ beq lbl_802A6DC4
+/* 802A6DB4 002A2A14 7F 04 C3 78 */ mr r4, r24
+/* 802A6DB8 002A2A18 38 7D 00 40 */ addi r3, r29, 0x40
+/* 802A6DBC 002A2A1C 38 A0 00 60 */ li r5, 0x60
+/* 802A6DC0 002A2A20 4B D5 D2 41 */ bl memcpy
+lbl_802A6DC4:
+/* 802A6DC4 002A2A24 88 1D 00 69 */ lbz r0, 0x69(r29)
+/* 802A6DC8 002A2A28 7C 00 07 75 */ extsb. r0, r0
+/* 802A6DCC 002A2A2C 41 82 00 14 */ beq lbl_802A6DE0
+/* 802A6DD0 002A2A30 38 7D 00 40 */ addi r3, r29, 0x40
+/* 802A6DD4 002A2A34 38 80 00 00 */ li r4, 0
+/* 802A6DD8 002A2A38 38 A0 00 60 */ li r5, 0x60
+/* 802A6DDC 002A2A3C 4B D5 D3 29 */ bl memset
+lbl_802A6DE0:
+/* 802A6DE0 002A2A40 7F 23 CB 78 */ mr r3, r25
+/* 802A6DE4 002A2A44 4B FC 79 A1 */ bl OSRestoreInterrupts
+/* 802A6DE8 002A2A48 7F 63 DB 78 */ mr r3, r27
+/* 802A6DEC 002A2A4C 4B FF FE 49 */ bl CheckButtonCombination
+/* 802A6DF0 002A2A50 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A6DF4 002A2A54 41 82 00 18 */ beq lbl_802A6E0C
+/* 802A6DF8 002A2A58 3B 80 00 01 */ li r28, 1
+/* 802A6DFC 002A2A5C 4B FC B9 DD */ bl __OSGetSystemTime
+/* 802A6E00 002A2A60 90 9D 08 F4 */ stw r4, 0x8f4(r29)
+/* 802A6E04 002A2A64 90 7D 08 F0 */ stw r3, 0x8f0(r29)
+/* 802A6E08 002A2A68 48 00 00 98 */ b lbl_802A6EA0
+lbl_802A6E0C:
+/* 802A6E0C 002A2A6C 88 0D AE 62 */ lbz r0, lbl_80640122-_SDA_BASE_(r13)
+/* 802A6E10 002A2A70 2C 00 00 00 */ cmpwi r0, 0
+/* 802A6E14 002A2A74 41 82 00 8C */ beq lbl_802A6EA0
+/* 802A6E18 002A2A78 4B FC B9 C1 */ bl __OSGetSystemTime
+/* 802A6E1C 002A2A7C 80 DD 08 F4 */ lwz r6, 0x8f4(r29)
+/* 802A6E20 002A2A80 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 802A6E24 002A2A84 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 802A6E28 002A2A88 38 A0 00 00 */ li r5, 0
+/* 802A6E2C 002A2A8C 7C 86 20 10 */ subfc r4, r6, r4
+/* 802A6E30 002A2A90 80 FD 08 F0 */ lwz r7, 0x8f0(r29)
+/* 802A6E34 002A2A94 54 06 F0 BE */ srwi r6, r0, 2
+/* 802A6E38 002A2A98 7C 67 19 10 */ subfe r3, r7, r3
+/* 802A6E3C 002A2A9C 4B F2 04 3D */ bl __div2i
+/* 802A6E40 002A2AA0 88 0D AE 62 */ lbz r0, lbl_80640122-_SDA_BASE_(r13)
+/* 802A6E44 002A2AA4 1C 00 00 3C */ mulli r0, r0, 0x3c
+/* 802A6E48 002A2AA8 7C 04 00 00 */ cmpw r4, r0
+/* 802A6E4C 002A2AAC 40 81 00 54 */ ble lbl_802A6EA0
+/* 802A6E50 002A2AB0 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A6E54 002A2AB4 4B FC 79 09 */ bl OSDisableInterrupts
+/* 802A6E58 002A2AB8 83 5D 08 BC */ lwz r26, 0x8bc(r29)
+/* 802A6E5C 002A2ABC 4B FC 79 29 */ bl OSRestoreInterrupts
+/* 802A6E60 002A2AC0 2C 1A FF FF */ cmpwi r26, -1
+/* 802A6E64 002A2AC4 41 82 00 3C */ beq lbl_802A6EA0
+/* 802A6E68 002A2AC8 4B FC 78 F5 */ bl OSDisableInterrupts
+/* 802A6E6C 002A2ACC 88 1D 09 86 */ lbz r0, 0x986(r29)
+/* 802A6E70 002A2AD0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A6E74 002A2AD4 41 82 00 0C */ beq lbl_802A6E80
+/* 802A6E78 002A2AD8 4B FC 79 0D */ bl OSRestoreInterrupts
+/* 802A6E7C 002A2ADC 48 00 00 24 */ b lbl_802A6EA0
+lbl_802A6E80:
+/* 802A6E80 002A2AE0 38 00 00 01 */ li r0, 1
+/* 802A6E84 002A2AE4 98 1D 09 86 */ stb r0, 0x986(r29)
+/* 802A6E88 002A2AE8 4B FC 78 FD */ bl OSRestoreInterrupts
+/* 802A6E8C 002A2AEC 3C A0 80 2B */ lis r5, CloseCallback@ha
+/* 802A6E90 002A2AF0 7F 63 DB 78 */ mr r3, r27
+/* 802A6E94 002A2AF4 38 A5 8C 90 */ addi r5, r5, CloseCallback@l
+/* 802A6E98 002A2AF8 38 80 00 00 */ li r4, 0
+/* 802A6E9C 002A2AFC 48 00 25 41 */ bl WPADControlLed
+lbl_802A6EA0:
+/* 802A6EA0 002A2B00 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A6EA4 002A2B04 41 82 00 08 */ beq lbl_802A6EAC
+/* 802A6EA8 002A2B08 4B FD 2F B5 */ bl __VIResetRFIdle
+lbl_802A6EAC:
+/* 802A6EAC 002A2B0C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A6EB0 002A2B10 4B F2 02 B9 */ bl _restgpr_24
+/* 802A6EB4 002A2B14 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A6EB8 002A2B18 7C 08 03 A6 */ mtlr r0
+/* 802A6EBC 002A2B1C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A6EC0 002A2B20 4E 80 00 20 */ blr
+WPADiManageHandler:
+/* 802A6EC4 002A2B24 94 21 FE A0 */ stwu r1, -0x160(r1)
+/* 802A6EC8 002A2B28 7C 08 02 A6 */ mflr r0
+/* 802A6ECC 002A2B2C 90 01 01 64 */ stw r0, 0x164(r1)
+/* 802A6ED0 002A2B30 39 61 01 60 */ addi r11, r1, 0x160
+/* 802A6ED4 002A2B34 4B F2 02 39 */ bl _savegpr_20
+/* 802A6ED8 002A2B38 48 00 FA B9 */ bl func_802B6990
+/* 802A6EDC 002A2B3C 2C 03 00 03 */ cmpwi r3, 3
+/* 802A6EE0 002A2B40 41 82 00 3C */ beq lbl_802A6F1C
+/* 802A6EE4 002A2B44 2C 03 00 02 */ cmpwi r3, 2
+/* 802A6EE8 002A2B48 40 82 06 EC */ bne lbl_802A75D4
+/* 802A6EEC 002A2B4C 80 0D AE 48 */ lwz r0, lbl_80640108-_SDA_BASE_(r13)
+/* 802A6EF0 002A2B50 2C 00 00 00 */ cmpwi r0, 0
+/* 802A6EF4 002A2B54 40 82 06 E0 */ bne lbl_802A75D4
+/* 802A6EF8 002A2B58 38 00 00 01 */ li r0, 1
+/* 802A6EFC 002A2B5C 3C 60 80 2B */ lis r3, WPADiConnCallback@ha
+/* 802A6F00 002A2B60 90 0D AE 48 */ stw r0, lbl_80640108-_SDA_BASE_(r13)
+/* 802A6F04 002A2B64 38 63 87 08 */ addi r3, r3, WPADiConnCallback@l
+/* 802A6F08 002A2B68 48 00 FF 75 */ bl func_802B6E7C
+/* 802A6F0C 002A2B6C 3C 60 80 2B */ lis r3, WPADiRecvCallback@ha
+/* 802A6F10 002A2B70 38 63 8B 4C */ addi r3, r3, WPADiRecvCallback@l
+/* 802A6F14 002A2B74 48 00 FF 0D */ bl func_802B6E20
+/* 802A6F18 002A2B78 48 00 06 BC */ b lbl_802A75D4
+lbl_802A6F1C:
+/* 802A6F1C 002A2B7C 3F 20 80 53 */ lis r25, lbl_80536D70@ha
+/* 802A6F20 002A2B80 3A E0 00 00 */ li r23, 0
+/* 802A6F24 002A2B84 3B 39 6D 70 */ addi r25, r25, lbl_80536D70@l
+/* 802A6F28 002A2B88 3B 4D AE 40 */ addi r26, r13, lbl_80640100-_SDA_BASE_
+/* 802A6F2C 002A2B8C 3B 0D AE 44 */ addi r24, r13, lbl_80640104-_SDA_BASE_
+/* 802A6F30 002A2B90 3B A0 00 00 */ li r29, 0
+/* 802A6F34 002A2B94 3B C0 00 10 */ li r30, 0x10
+/* 802A6F38 002A2B98 3B E0 00 01 */ li r31, 1
+lbl_802A6F3C:
+/* 802A6F3C 002A2B9C 88 1A 00 00 */ lbz r0, 0(r26)
+/* 802A6F40 002A2BA0 3A C0 00 00 */ li r22, 0
+/* 802A6F44 002A2BA4 28 00 00 05 */ cmplwi r0, 5
+/* 802A6F48 002A2BA8 40 82 01 CC */ bne lbl_802A7114
+/* 802A6F4C 002A2BAC 83 79 00 00 */ lwz r27, 0(r25)
+/* 802A6F50 002A2BB0 80 1B 08 D8 */ lwz r0, 0x8d8(r27)
+/* 802A6F54 002A2BB4 2C 00 00 00 */ cmpwi r0, 0
+/* 802A6F58 002A2BB8 41 82 01 AC */ beq lbl_802A7104
+/* 802A6F5C 002A2BBC 4B FC 78 01 */ bl OSDisableInterrupts
+/* 802A6F60 002A2BC0 7C 7C 1B 78 */ mr r28, r3
+/* 802A6F64 002A2BC4 4B FC 77 F9 */ bl OSDisableInterrupts
+/* 802A6F68 002A2BC8 88 9B 05 EC */ lbz r4, 0x5ec(r27)
+/* 802A6F6C 002A2BCC 88 1B 05 ED */ lbz r0, 0x5ed(r27)
+/* 802A6F70 002A2BD0 7C 04 00 50 */ subf r0, r4, r0
+/* 802A6F74 002A2BD4 7C 14 07 75 */ extsb. r20, r0
+/* 802A6F78 002A2BD8 40 80 00 10 */ bge lbl_802A6F88
+/* 802A6F7C 002A2BDC 80 1B 05 F4 */ lwz r0, 0x5f4(r27)
+/* 802A6F80 002A2BE0 7C 14 02 14 */ add r0, r20, r0
+/* 802A6F84 002A2BE4 7C 14 07 74 */ extsb r20, r0
+lbl_802A6F88:
+/* 802A6F88 002A2BE8 4B FC 77 FD */ bl OSRestoreInterrupts
+/* 802A6F8C 002A2BEC 2C 14 00 00 */ cmpwi r20, 0
+/* 802A6F90 002A2BF0 40 82 00 14 */ bne lbl_802A6FA4
+/* 802A6F94 002A2BF4 7F 83 E3 78 */ mr r3, r28
+/* 802A6F98 002A2BF8 4B FC 77 ED */ bl OSRestoreInterrupts
+/* 802A6F9C 002A2BFC 38 00 00 00 */ li r0, 0
+/* 802A6FA0 002A2C00 48 00 00 30 */ b lbl_802A6FD0
+lbl_802A6FA4:
+/* 802A6FA4 002A2C04 88 1B 05 EC */ lbz r0, 0x5ec(r27)
+/* 802A6FA8 002A2C08 38 61 00 C8 */ addi r3, r1, 0xc8
+/* 802A6FAC 002A2C0C 80 9B 05 F0 */ lwz r4, 0x5f0(r27)
+/* 802A6FB0 002A2C10 38 A0 00 30 */ li r5, 0x30
+/* 802A6FB4 002A2C14 7C 00 07 74 */ extsb r0, r0
+/* 802A6FB8 002A2C18 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A6FBC 002A2C1C 7C 84 02 14 */ add r4, r4, r0
+/* 802A6FC0 002A2C20 4B D5 D0 41 */ bl memcpy
+/* 802A6FC4 002A2C24 7F 83 E3 78 */ mr r3, r28
+/* 802A6FC8 002A2C28 4B FC 77 BD */ bl OSRestoreInterrupts
+/* 802A6FCC 002A2C2C 38 00 00 01 */ li r0, 1
+lbl_802A6FD0:
+/* 802A6FD0 002A2C30 2C 00 00 00 */ cmpwi r0, 0
+/* 802A6FD4 002A2C34 41 82 01 30 */ beq lbl_802A7104
+/* 802A6FD8 002A2C38 80 01 00 C8 */ lwz r0, 0xc8(r1)
+/* 802A6FDC 002A2C3C 28 00 00 12 */ cmplwi r0, 0x12
+/* 802A6FE0 002A2C40 41 82 00 10 */ beq lbl_802A6FF0
+/* 802A6FE4 002A2C44 80 1B 08 40 */ lwz r0, 0x840(r27)
+/* 802A6FE8 002A2C48 2C 00 00 00 */ cmpwi r0, 0
+/* 802A6FEC 002A2C4C 41 82 01 18 */ beq lbl_802A7104
+lbl_802A6FF0:
+/* 802A6FF0 002A2C50 82 C1 00 C8 */ lwz r22, 0xc8(r1)
+/* 802A6FF4 002A2C54 7E E3 BB 78 */ mr r3, r23
+/* 802A6FF8 002A2C58 82 A1 00 CC */ lwz r21, 0xcc(r1)
+/* 802A6FFC 002A2C5C 38 81 00 F8 */ addi r4, r1, 0xf8
+/* 802A7000 002A2C60 82 81 00 D0 */ lwz r20, 0xd0(r1)
+/* 802A7004 002A2C64 81 81 00 D4 */ lwz r12, 0xd4(r1)
+/* 802A7008 002A2C68 81 61 00 D8 */ lwz r11, 0xd8(r1)
+/* 802A700C 002A2C6C 81 41 00 DC */ lwz r10, 0xdc(r1)
+/* 802A7010 002A2C70 81 21 00 E0 */ lwz r9, 0xe0(r1)
+/* 802A7014 002A2C74 81 01 00 E4 */ lwz r8, 0xe4(r1)
+/* 802A7018 002A2C78 80 E1 00 E8 */ lwz r7, 0xe8(r1)
+/* 802A701C 002A2C7C 80 C1 00 EC */ lwz r6, 0xec(r1)
+/* 802A7020 002A2C80 80 A1 00 F0 */ lwz r5, 0xf0(r1)
+/* 802A7024 002A2C84 80 01 00 F4 */ lwz r0, 0xf4(r1)
+/* 802A7028 002A2C88 92 C1 00 F8 */ stw r22, 0xf8(r1)
+/* 802A702C 002A2C8C 92 A1 00 FC */ stw r21, 0xfc(r1)
+/* 802A7030 002A2C90 92 81 01 00 */ stw r20, 0x100(r1)
+/* 802A7034 002A2C94 91 81 01 04 */ stw r12, 0x104(r1)
+/* 802A7038 002A2C98 91 61 01 08 */ stw r11, 0x108(r1)
+/* 802A703C 002A2C9C 91 41 01 0C */ stw r10, 0x10c(r1)
+/* 802A7040 002A2CA0 91 21 01 10 */ stw r9, 0x110(r1)
+/* 802A7044 002A2CA4 91 01 01 14 */ stw r8, 0x114(r1)
+/* 802A7048 002A2CA8 90 E1 01 18 */ stw r7, 0x118(r1)
+/* 802A704C 002A2CAC 90 C1 01 1C */ stw r6, 0x11c(r1)
+/* 802A7050 002A2CB0 90 A1 01 20 */ stw r5, 0x120(r1)
+/* 802A7054 002A2CB4 90 01 01 24 */ stw r0, 0x124(r1)
+/* 802A7058 002A2CB8 4B FF ED 51 */ bl WPADiSendData
+/* 802A705C 002A2CBC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A7060 002A2CC0 40 82 00 A4 */ bne lbl_802A7104
+/* 802A7064 002A2CC4 4B FC 76 F9 */ bl OSDisableInterrupts
+/* 802A7068 002A2CC8 7C 7C 1B 78 */ mr r28, r3
+/* 802A706C 002A2CCC 4B FC 76 F1 */ bl OSDisableInterrupts
+/* 802A7070 002A2CD0 88 9B 05 EC */ lbz r4, 0x5ec(r27)
+/* 802A7074 002A2CD4 88 1B 05 ED */ lbz r0, 0x5ed(r27)
+/* 802A7078 002A2CD8 7C 04 00 50 */ subf r0, r4, r0
+/* 802A707C 002A2CDC 7C 14 07 75 */ extsb. r20, r0
+/* 802A7080 002A2CE0 40 80 00 10 */ bge lbl_802A7090
+/* 802A7084 002A2CE4 80 1B 05 F4 */ lwz r0, 0x5f4(r27)
+/* 802A7088 002A2CE8 7C 14 02 14 */ add r0, r20, r0
+/* 802A708C 002A2CEC 7C 14 07 74 */ extsb r20, r0
+lbl_802A7090:
+/* 802A7090 002A2CF0 4B FC 76 F5 */ bl OSRestoreInterrupts
+/* 802A7094 002A2CF4 2C 14 00 00 */ cmpwi r20, 0
+/* 802A7098 002A2CF8 40 82 00 10 */ bne lbl_802A70A8
+/* 802A709C 002A2CFC 7F 83 E3 78 */ mr r3, r28
+/* 802A70A0 002A2D00 4B FC 76 E5 */ bl OSRestoreInterrupts
+/* 802A70A4 002A2D04 48 00 00 58 */ b lbl_802A70FC
+lbl_802A70A8:
+/* 802A70A8 002A2D08 88 1B 05 EC */ lbz r0, 0x5ec(r27)
+/* 802A70AC 002A2D0C 38 80 00 00 */ li r4, 0
+/* 802A70B0 002A2D10 80 7B 05 F0 */ lwz r3, 0x5f0(r27)
+/* 802A70B4 002A2D14 38 A0 00 30 */ li r5, 0x30
+/* 802A70B8 002A2D18 7C 00 07 74 */ extsb r0, r0
+/* 802A70BC 002A2D1C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A70C0 002A2D20 7C 63 02 14 */ add r3, r3, r0
+/* 802A70C4 002A2D24 4B D5 D0 41 */ bl memset
+/* 802A70C8 002A2D28 88 1B 05 EC */ lbz r0, 0x5ec(r27)
+/* 802A70CC 002A2D2C 7F 83 E3 78 */ mr r3, r28
+/* 802A70D0 002A2D30 80 9B 05 F4 */ lwz r4, 0x5f4(r27)
+/* 802A70D4 002A2D34 7C 06 07 74 */ extsb r6, r0
+/* 802A70D8 002A2D38 38 84 FF FF */ addi r4, r4, -1
+/* 802A70DC 002A2D3C 7C A4 30 50 */ subf r5, r4, r6
+/* 802A70E0 002A2D40 38 06 00 01 */ addi r0, r6, 1
+/* 802A70E4 002A2D44 7C 86 20 50 */ subf r4, r6, r4
+/* 802A70E8 002A2D48 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A70EC 002A2D4C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A70F0 002A2D50 7C 00 20 78 */ andc r0, r0, r4
+/* 802A70F4 002A2D54 98 1B 05 EC */ stb r0, 0x5ec(r27)
+/* 802A70F8 002A2D58 4B FC 76 8D */ bl OSRestoreInterrupts
+lbl_802A70FC:
+/* 802A70FC 002A2D5C 3A C0 00 01 */ li r22, 1
+/* 802A7100 002A2D60 48 00 00 08 */ b lbl_802A7108
+lbl_802A7104:
+/* 802A7104 002A2D64 3A C0 00 00 */ li r22, 0
+lbl_802A7108:
+/* 802A7108 002A2D68 2C 16 00 00 */ cmpwi r22, 0
+/* 802A710C 002A2D6C 41 82 00 08 */ beq lbl_802A7114
+/* 802A7110 002A2D70 9B BA 00 00 */ stb r29, 0(r26)
+lbl_802A7114:
+/* 802A7114 002A2D74 2C 16 00 00 */ cmpwi r22, 0
+/* 802A7118 002A2D78 40 82 01 AC */ bne lbl_802A72C4
+/* 802A711C 002A2D7C 83 99 00 00 */ lwz r28, 0(r25)
+/* 802A7120 002A2D80 80 1C 08 D8 */ lwz r0, 0x8d8(r28)
+/* 802A7124 002A2D84 2C 00 00 00 */ cmpwi r0, 0
+/* 802A7128 002A2D88 41 82 01 94 */ beq lbl_802A72BC
+/* 802A712C 002A2D8C 4B FC 76 31 */ bl OSDisableInterrupts
+/* 802A7130 002A2D90 7C 7B 1B 78 */ mr r27, r3
+/* 802A7134 002A2D94 4B FC 76 29 */ bl OSDisableInterrupts
+/* 802A7138 002A2D98 88 9C 01 60 */ lbz r4, 0x160(r28)
+/* 802A713C 002A2D9C 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A7140 002A2DA0 7C 04 00 50 */ subf r0, r4, r0
+/* 802A7144 002A2DA4 7C 14 07 75 */ extsb. r20, r0
+/* 802A7148 002A2DA8 40 80 00 10 */ bge lbl_802A7158
+/* 802A714C 002A2DAC 80 1C 01 68 */ lwz r0, 0x168(r28)
+/* 802A7150 002A2DB0 7C 14 02 14 */ add r0, r20, r0
+/* 802A7154 002A2DB4 7C 14 07 74 */ extsb r20, r0
+lbl_802A7158:
+/* 802A7158 002A2DB8 4B FC 76 2D */ bl OSRestoreInterrupts
+/* 802A715C 002A2DBC 2C 14 00 00 */ cmpwi r20, 0
+/* 802A7160 002A2DC0 40 82 00 14 */ bne lbl_802A7174
+/* 802A7164 002A2DC4 7F 63 DB 78 */ mr r3, r27
+/* 802A7168 002A2DC8 4B FC 76 1D */ bl OSRestoreInterrupts
+/* 802A716C 002A2DCC 38 00 00 00 */ li r0, 0
+/* 802A7170 002A2DD0 48 00 00 30 */ b lbl_802A71A0
+lbl_802A7174:
+/* 802A7174 002A2DD4 88 1C 01 60 */ lbz r0, 0x160(r28)
+/* 802A7178 002A2DD8 38 61 00 68 */ addi r3, r1, 0x68
+/* 802A717C 002A2DDC 80 9C 01 64 */ lwz r4, 0x164(r28)
+/* 802A7180 002A2DE0 38 A0 00 30 */ li r5, 0x30
+/* 802A7184 002A2DE4 7C 00 07 74 */ extsb r0, r0
+/* 802A7188 002A2DE8 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A718C 002A2DEC 7C 84 02 14 */ add r4, r4, r0
+/* 802A7190 002A2DF0 4B D5 CE 71 */ bl memcpy
+/* 802A7194 002A2DF4 7F 63 DB 78 */ mr r3, r27
+/* 802A7198 002A2DF8 4B FC 75 ED */ bl OSRestoreInterrupts
+/* 802A719C 002A2DFC 38 00 00 01 */ li r0, 1
+lbl_802A71A0:
+/* 802A71A0 002A2E00 2C 00 00 00 */ cmpwi r0, 0
+/* 802A71A4 002A2E04 41 82 01 18 */ beq lbl_802A72BC
+/* 802A71A8 002A2E08 82 81 00 68 */ lwz r20, 0x68(r1)
+/* 802A71AC 002A2E0C 7E E3 BB 78 */ mr r3, r23
+/* 802A71B0 002A2E10 82 A1 00 6C */ lwz r21, 0x6c(r1)
+/* 802A71B4 002A2E14 38 81 00 98 */ addi r4, r1, 0x98
+/* 802A71B8 002A2E18 83 61 00 70 */ lwz r27, 0x70(r1)
+/* 802A71BC 002A2E1C 81 81 00 74 */ lwz r12, 0x74(r1)
+/* 802A71C0 002A2E20 81 61 00 78 */ lwz r11, 0x78(r1)
+/* 802A71C4 002A2E24 81 41 00 7C */ lwz r10, 0x7c(r1)
+/* 802A71C8 002A2E28 81 21 00 80 */ lwz r9, 0x80(r1)
+/* 802A71CC 002A2E2C 81 01 00 84 */ lwz r8, 0x84(r1)
+/* 802A71D0 002A2E30 80 E1 00 88 */ lwz r7, 0x88(r1)
+/* 802A71D4 002A2E34 80 C1 00 8C */ lwz r6, 0x8c(r1)
+/* 802A71D8 002A2E38 80 A1 00 90 */ lwz r5, 0x90(r1)
+/* 802A71DC 002A2E3C 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 802A71E0 002A2E40 92 81 00 98 */ stw r20, 0x98(r1)
+/* 802A71E4 002A2E44 92 A1 00 9C */ stw r21, 0x9c(r1)
+/* 802A71E8 002A2E48 93 61 00 A0 */ stw r27, 0xa0(r1)
+/* 802A71EC 002A2E4C 91 81 00 A4 */ stw r12, 0xa4(r1)
+/* 802A71F0 002A2E50 91 61 00 A8 */ stw r11, 0xa8(r1)
+/* 802A71F4 002A2E54 91 41 00 AC */ stw r10, 0xac(r1)
+/* 802A71F8 002A2E58 91 21 00 B0 */ stw r9, 0xb0(r1)
+/* 802A71FC 002A2E5C 91 01 00 B4 */ stw r8, 0xb4(r1)
+/* 802A7200 002A2E60 90 E1 00 B8 */ stw r7, 0xb8(r1)
+/* 802A7204 002A2E64 90 C1 00 BC */ stw r6, 0xbc(r1)
+/* 802A7208 002A2E68 90 A1 00 C0 */ stw r5, 0xc0(r1)
+/* 802A720C 002A2E6C 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 802A7210 002A2E70 4B FF EB 99 */ bl WPADiSendData
+/* 802A7214 002A2E74 2C 03 00 00 */ cmpwi r3, 0
+/* 802A7218 002A2E78 40 82 00 A4 */ bne lbl_802A72BC
+/* 802A721C 002A2E7C 4B FC 75 41 */ bl OSDisableInterrupts
+/* 802A7220 002A2E80 7C 7B 1B 78 */ mr r27, r3
+/* 802A7224 002A2E84 4B FC 75 39 */ bl OSDisableInterrupts
+/* 802A7228 002A2E88 88 9C 01 60 */ lbz r4, 0x160(r28)
+/* 802A722C 002A2E8C 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A7230 002A2E90 7C 04 00 50 */ subf r0, r4, r0
+/* 802A7234 002A2E94 7C 14 07 75 */ extsb. r20, r0
+/* 802A7238 002A2E98 40 80 00 10 */ bge lbl_802A7248
+/* 802A723C 002A2E9C 80 1C 01 68 */ lwz r0, 0x168(r28)
+/* 802A7240 002A2EA0 7C 14 02 14 */ add r0, r20, r0
+/* 802A7244 002A2EA4 7C 14 07 74 */ extsb r20, r0
+lbl_802A7248:
+/* 802A7248 002A2EA8 4B FC 75 3D */ bl OSRestoreInterrupts
+/* 802A724C 002A2EAC 2C 14 00 00 */ cmpwi r20, 0
+/* 802A7250 002A2EB0 40 82 00 10 */ bne lbl_802A7260
+/* 802A7254 002A2EB4 7F 63 DB 78 */ mr r3, r27
+/* 802A7258 002A2EB8 4B FC 75 2D */ bl OSRestoreInterrupts
+/* 802A725C 002A2EBC 48 00 00 58 */ b lbl_802A72B4
+lbl_802A7260:
+/* 802A7260 002A2EC0 88 1C 01 60 */ lbz r0, 0x160(r28)
+/* 802A7264 002A2EC4 38 80 00 00 */ li r4, 0
+/* 802A7268 002A2EC8 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 802A726C 002A2ECC 38 A0 00 30 */ li r5, 0x30
+/* 802A7270 002A2ED0 7C 00 07 74 */ extsb r0, r0
+/* 802A7274 002A2ED4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A7278 002A2ED8 7C 63 02 14 */ add r3, r3, r0
+/* 802A727C 002A2EDC 4B D5 CE 89 */ bl memset
+/* 802A7280 002A2EE0 88 1C 01 60 */ lbz r0, 0x160(r28)
+/* 802A7284 002A2EE4 7F 63 DB 78 */ mr r3, r27
+/* 802A7288 002A2EE8 80 9C 01 68 */ lwz r4, 0x168(r28)
+/* 802A728C 002A2EEC 7C 06 07 74 */ extsb r6, r0
+/* 802A7290 002A2EF0 38 84 FF FF */ addi r4, r4, -1
+/* 802A7294 002A2EF4 7C A4 30 50 */ subf r5, r4, r6
+/* 802A7298 002A2EF8 38 06 00 01 */ addi r0, r6, 1
+/* 802A729C 002A2EFC 7C 86 20 50 */ subf r4, r6, r4
+/* 802A72A0 002A2F00 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A72A4 002A2F04 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A72A8 002A2F08 7C 00 20 78 */ andc r0, r0, r4
+/* 802A72AC 002A2F0C 98 1C 01 60 */ stb r0, 0x160(r28)
+/* 802A72B0 002A2F10 4B FC 74 D5 */ bl OSRestoreInterrupts
+lbl_802A72B4:
+/* 802A72B4 002A2F14 38 00 00 01 */ li r0, 1
+/* 802A72B8 002A2F18 48 00 00 08 */ b lbl_802A72C0
+lbl_802A72BC:
+/* 802A72BC 002A2F1C 38 00 00 00 */ li r0, 0
+lbl_802A72C0:
+/* 802A72C0 002A2F20 7E D6 03 78 */ or r22, r22, r0
+lbl_802A72C4:
+/* 802A72C4 002A2F24 82 B9 00 00 */ lwz r21, 0(r25)
+/* 802A72C8 002A2F28 80 15 08 BC */ lwz r0, 0x8bc(r21)
+/* 802A72CC 002A2F2C 2C 00 FF FF */ cmpwi r0, -1
+/* 802A72D0 002A2F30 41 82 00 F4 */ beq lbl_802A73C4
+/* 802A72D4 002A2F34 2C 16 00 01 */ cmpwi r22, 1
+/* 802A72D8 002A2F38 41 82 00 34 */ beq lbl_802A730C
+/* 802A72DC 002A2F3C 4B FC 74 81 */ bl OSDisableInterrupts
+/* 802A72E0 002A2F40 88 95 01 60 */ lbz r4, 0x160(r21)
+/* 802A72E4 002A2F44 88 15 01 61 */ lbz r0, 0x161(r21)
+/* 802A72E8 002A2F48 7C 04 00 50 */ subf r0, r4, r0
+/* 802A72EC 002A2F4C 7C 14 07 75 */ extsb. r20, r0
+/* 802A72F0 002A2F50 40 80 00 10 */ bge lbl_802A7300
+/* 802A72F4 002A2F54 80 15 01 68 */ lwz r0, 0x168(r21)
+/* 802A72F8 002A2F58 7C 14 02 14 */ add r0, r20, r0
+/* 802A72FC 002A2F5C 7C 14 07 74 */ extsb r20, r0
+lbl_802A7300:
+/* 802A7300 002A2F60 4B FC 74 85 */ bl OSRestoreInterrupts
+/* 802A7304 002A2F64 2C 14 00 00 */ cmpwi r20, 0
+/* 802A7308 002A2F68 40 81 00 10 */ ble lbl_802A7318
+lbl_802A730C:
+/* 802A730C 002A2F6C 80 79 00 00 */ lwz r3, 0(r25)
+/* 802A7310 002A2F70 93 A3 08 D0 */ stw r29, 0x8d0(r3)
+/* 802A7314 002A2F74 48 00 00 8C */ b lbl_802A73A0
+lbl_802A7318:
+/* 802A7318 002A2F78 88 18 00 00 */ lbz r0, 0(r24)
+/* 802A731C 002A2F7C 28 00 00 05 */ cmplwi r0, 5
+/* 802A7320 002A2F80 40 82 00 80 */ bne lbl_802A73A0
+/* 802A7324 002A2F84 B3 E1 00 22 */ sth r31, 0x22(r1)
+/* 802A7328 002A2F88 7E E3 BB 78 */ mr r3, r23
+/* 802A732C 002A2F8C 80 B9 00 00 */ lwz r5, 0(r25)
+/* 802A7330 002A2F90 38 81 00 38 */ addi r4, r1, 0x38
+/* 802A7334 002A2F94 9B A1 00 0C */ stb r29, 0xc(r1)
+/* 802A7338 002A2F98 81 81 00 10 */ lwz r12, 0x10(r1)
+/* 802A733C 002A2F9C 93 A5 08 D0 */ stw r29, 0x8d0(r5)
+/* 802A7340 002A2FA0 82 C1 00 0C */ lwz r22, 0xc(r1)
+/* 802A7344 002A2FA4 81 61 00 14 */ lwz r11, 0x14(r1)
+/* 802A7348 002A2FA8 81 41 00 18 */ lwz r10, 0x18(r1)
+/* 802A734C 002A2FAC 81 21 00 1C */ lwz r9, 0x1c(r1)
+/* 802A7350 002A2FB0 81 01 00 20 */ lwz r8, 0x20(r1)
+/* 802A7354 002A2FB4 80 E1 00 24 */ lwz r7, 0x24(r1)
+/* 802A7358 002A2FB8 80 C1 00 28 */ lwz r6, 0x28(r1)
+/* 802A735C 002A2FBC 80 A1 00 2C */ lwz r5, 0x2c(r1)
+/* 802A7360 002A2FC0 80 01 00 30 */ lwz r0, 0x30(r1)
+/* 802A7364 002A2FC4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A7368 002A2FC8 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 802A736C 002A2FCC 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 802A7370 002A2FD0 92 C1 00 3C */ stw r22, 0x3c(r1)
+/* 802A7374 002A2FD4 91 81 00 40 */ stw r12, 0x40(r1)
+/* 802A7378 002A2FD8 91 61 00 44 */ stw r11, 0x44(r1)
+/* 802A737C 002A2FDC 91 41 00 48 */ stw r10, 0x48(r1)
+/* 802A7380 002A2FE0 91 21 00 4C */ stw r9, 0x4c(r1)
+/* 802A7384 002A2FE4 91 01 00 50 */ stw r8, 0x50(r1)
+/* 802A7388 002A2FE8 90 E1 00 54 */ stw r7, 0x54(r1)
+/* 802A738C 002A2FEC 90 C1 00 58 */ stw r6, 0x58(r1)
+/* 802A7390 002A2FF0 90 A1 00 5C */ stw r5, 0x5c(r1)
+/* 802A7394 002A2FF4 90 01 00 60 */ stw r0, 0x60(r1)
+/* 802A7398 002A2FF8 93 A1 00 64 */ stw r29, 0x64(r1)
+/* 802A739C 002A2FFC 48 00 53 DD */ bl __SendData
+lbl_802A73A0:
+/* 802A73A0 002A3000 80 79 00 00 */ lwz r3, 0(r25)
+/* 802A73A4 002A3004 80 03 08 D0 */ lwz r0, 0x8d0(r3)
+/* 802A73A8 002A3008 2C 00 00 00 */ cmpwi r0, 0
+/* 802A73AC 002A300C 41 82 00 10 */ beq lbl_802A73BC
+/* 802A73B0 002A3010 88 78 00 00 */ lbz r3, 0(r24)
+/* 802A73B4 002A3014 38 03 00 01 */ addi r0, r3, 1
+/* 802A73B8 002A3018 48 00 00 08 */ b lbl_802A73C0
+lbl_802A73BC:
+/* 802A73BC 002A301C 38 00 00 00 */ li r0, 0
+lbl_802A73C0:
+/* 802A73C0 002A3020 98 18 00 00 */ stb r0, 0(r24)
+lbl_802A73C4:
+/* 802A73C4 002A3024 88 0D AE 3C */ lbz r0, lbl_806400FC-_SDA_BASE_(r13)
+/* 802A73C8 002A3028 28 00 00 05 */ cmplwi r0, 5
+/* 802A73CC 002A302C 40 82 00 0C */ bne lbl_802A73D8
+/* 802A73D0 002A3030 7E E3 BB 78 */ mr r3, r23
+/* 802A73D4 002A3034 4B FF F9 6D */ bl WPADiCheckContInputs
+lbl_802A73D8:
+/* 802A73D8 002A3038 A0 0D AE 3A */ lhz r0, lbl_806400FA-_SDA_BASE_(r13)
+/* 802A73DC 002A303C 28 00 00 0A */ cmplwi r0, 0xa
+/* 802A73E0 002A3040 40 82 00 0C */ bne lbl_802A73EC
+/* 802A73E4 002A3044 7E E3 BB 78 */ mr r3, r23
+/* 802A73E8 002A3048 4B FF EB 9D */ bl WPADiRadioSensitivity
+lbl_802A73EC:
+/* 802A73EC 002A304C 88 7A 00 00 */ lbz r3, 0(r26)
+/* 802A73F0 002A3050 28 03 00 05 */ cmplwi r3, 5
+/* 802A73F4 002A3054 38 03 00 01 */ addi r0, r3, 1
+/* 802A73F8 002A3058 40 82 00 08 */ bne lbl_802A7400
+/* 802A73FC 002A305C 7C 60 1B 78 */ mr r0, r3
+lbl_802A7400:
+/* 802A7400 002A3060 3A F7 00 01 */ addi r23, r23, 1
+/* 802A7404 002A3064 98 1A 00 00 */ stb r0, 0(r26)
+/* 802A7408 002A3068 2C 17 00 04 */ cmpwi r23, 4
+/* 802A740C 002A306C 3B 5A 00 01 */ addi r26, r26, 1
+/* 802A7410 002A3070 3B 39 00 04 */ addi r25, r25, 4
+/* 802A7414 002A3074 3B 18 00 01 */ addi r24, r24, 1
+/* 802A7418 002A3078 41 80 FB 24 */ blt lbl_802A6F3C
+/* 802A741C 002A307C A0 0D AE 3E */ lhz r0, lbl_806400FE-_SDA_BASE_(r13)
+/* 802A7420 002A3080 28 00 EA 60 */ cmplwi r0, 0xea60
+/* 802A7424 002A3084 40 82 00 68 */ bne lbl_802A748C
+/* 802A7428 002A3088 3E C0 80 00 */ lis r22, 0x800031A2@ha
+/* 802A742C 002A308C 38 80 00 01 */ li r4, 1
+/* 802A7430 002A3090 38 76 31 A2 */ addi r3, r22, 0x800031A2@l
+/* 802A7434 002A3094 4B FC 31 F5 */ bl DCInvalidateRange
+/* 802A7438 002A3098 3C 60 80 44 */ lis r3, lbl_8043C080@ha
+/* 802A743C 002A309C 38 63 C0 80 */ addi r3, r3, lbl_8043C080@l
+/* 802A7440 002A30A0 4C C6 31 82 */ crclr 6
+/* 802A7444 002A30A4 48 00 C4 1D */ bl func_802B3860
+/* 802A7448 002A30A8 88 6D AE 4C */ lbz r3, lbl_8064010C-_SDA_BASE_(r13)
+/* 802A744C 002A30AC 88 16 31 A2 */ lbz r0, 0x31a2(r22)
+/* 802A7450 002A30B0 7C 63 07 74 */ extsb r3, r3
+/* 802A7454 002A30B4 7C 03 00 00 */ cmpw r3, r0
+/* 802A7458 002A30B8 41 82 00 34 */ beq lbl_802A748C
+/* 802A745C 002A30BC 4B FC 73 01 */ bl OSDisableInterrupts
+/* 802A7460 002A30C0 88 16 31 A2 */ lbz r0, 0x31a2(r22)
+/* 802A7464 002A30C4 98 0D AE 4C */ stb r0, lbl_8064010C-_SDA_BASE_(r13)
+/* 802A7468 002A30C8 4B FC 73 1D */ bl OSRestoreInterrupts
+/* 802A746C 002A30CC 3C 60 80 44 */ lis r3, lbl_8043C0A8@ha
+/* 802A7470 002A30D0 88 96 31 A2 */ lbz r4, 0x31a2(r22)
+/* 802A7474 002A30D4 38 63 C0 A8 */ addi r3, r3, lbl_8043C0A8@l
+/* 802A7478 002A30D8 4C C6 31 82 */ crclr 6
+/* 802A747C 002A30DC 48 00 C3 E5 */ bl func_802B3860
+/* 802A7480 002A30E0 88 0D AE 4C */ lbz r0, lbl_8064010C-_SDA_BASE_(r13)
+/* 802A7484 002A30E4 7C 03 07 74 */ extsb r3, r0
+/* 802A7488 002A30E8 48 00 F8 AD */ bl func_802B6D34
+lbl_802A748C:
+/* 802A748C 002A30EC A0 CD AE 3A */ lhz r6, lbl_806400FA-_SDA_BASE_(r13)
+/* 802A7490 002A30F0 3C 60 00 01 */ lis r3, 0x0000EA60@ha
+/* 802A7494 002A30F4 38 03 EA 60 */ addi r0, r3, 0x0000EA60@l
+/* 802A7498 002A30F8 89 2D AE 3C */ lbz r9, lbl_806400FC-_SDA_BASE_(r13)
+/* 802A749C 002A30FC 38 86 FF F6 */ addi r4, r6, -10
+/* 802A74A0 002A3100 20 66 00 0A */ subfic r3, r6, 0xa
+/* 802A74A4 002A3104 7C 83 18 F8 */ nor r3, r4, r3
+/* 802A74A8 002A3108 A1 4D AE 3E */ lhz r10, lbl_806400FE-_SDA_BASE_(r13)
+/* 802A74AC 002A310C 7C 68 FE 70 */ srawi r8, r3, 0x1f
+/* 802A74B0 002A3110 38 E6 00 01 */ addi r7, r6, 1
+/* 802A74B4 002A3114 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 802A74B8 002A3118 38 89 FF FB */ addi r4, r9, -5
+/* 802A74BC 002A311C 20 69 00 05 */ subfic r3, r9, 5
+/* 802A74C0 002A3120 7C E7 40 78 */ andc r7, r7, r8
+/* 802A74C4 002A3124 7C 85 18 F8 */ nor r5, r4, r3
+/* 802A74C8 002A3128 7C 80 50 50 */ subf r4, r0, r10
+/* 802A74CC 002A312C 7C 6A 00 50 */ subf r3, r10, r0
+/* 802A74D0 002A3130 88 0D AE 59 */ lbz r0, lbl_80640119-_SDA_BASE_(r13)
+/* 802A74D4 002A3134 7C A6 FE 70 */ srawi r6, r5, 0x1f
+/* 802A74D8 002A3138 38 A9 00 01 */ addi r5, r9, 1
+/* 802A74DC 002A313C 7C 84 18 F8 */ nor r4, r4, r3
+/* 802A74E0 002A3140 38 6A 00 01 */ addi r3, r10, 1
+/* 802A74E4 002A3144 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A74E8 002A3148 7C A5 30 78 */ andc r5, r5, r6
+/* 802A74EC 002A314C 7C 63 20 78 */ andc r3, r3, r4
+/* 802A74F0 002A3150 2C 00 00 00 */ cmpwi r0, 0
+/* 802A74F4 002A3154 B0 ED AE 3A */ sth r7, lbl_806400FA-_SDA_BASE_(r13)
+/* 802A74F8 002A3158 98 AD AE 3C */ stb r5, lbl_806400FC-_SDA_BASE_(r13)
+/* 802A74FC 002A315C B0 6D AE 3E */ sth r3, lbl_806400FE-_SDA_BASE_(r13)
+/* 802A7500 002A3160 41 82 00 34 */ beq lbl_802A7534
+/* 802A7504 002A3164 48 04 34 E9 */ bl func_802EA9EC
+/* 802A7508 002A3168 2C 03 00 00 */ cmpwi r3, 0
+/* 802A750C 002A316C 40 82 00 28 */ bne lbl_802A7534
+/* 802A7510 002A3170 3C 60 80 54 */ lis r3, lbl_8053AC28@ha
+/* 802A7514 002A3174 38 63 AC 28 */ addi r3, r3, lbl_8053AC28@l
+/* 802A7518 002A3178 48 04 50 F5 */ bl func_802EC60C
+/* 802A751C 002A317C 2C 03 00 01 */ cmpwi r3, 1
+/* 802A7520 002A3180 40 82 00 14 */ bne lbl_802A7534
+/* 802A7524 002A3184 38 60 00 00 */ li r3, 0
+/* 802A7528 002A3188 48 04 48 A5 */ bl func_802EBDCC
+/* 802A752C 002A318C 38 00 00 00 */ li r0, 0
+/* 802A7530 002A3190 98 0D AE 59 */ stb r0, lbl_80640119-_SDA_BASE_(r13)
+lbl_802A7534:
+/* 802A7534 002A3194 88 0D AE 4E */ lbz r0, lbl_8064010E-_SDA_BASE_(r13)
+/* 802A7538 002A3198 2C 00 00 00 */ cmpwi r0, 0
+/* 802A753C 002A319C 41 82 00 94 */ beq lbl_802A75D0
+/* 802A7540 002A31A0 48 04 34 AD */ bl func_802EA9EC
+/* 802A7544 002A31A4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A7548 002A31A8 40 82 00 88 */ bne lbl_802A75D0
+/* 802A754C 002A31AC 48 04 50 CD */ bl func_802EC618
+/* 802A7550 002A31B0 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A7554 002A31B4 28 00 00 01 */ cmplwi r0, 1
+/* 802A7558 002A31B8 40 80 00 08 */ bge ENCiCheckBreakType
+/* 802A755C 002A31BC 38 00 00 01 */ li r0, 1
+ENCiCheckBreakType:
+/* 802A7560 002A31C0 28 00 00 05 */ cmplwi r0, 5
+/* 802A7564 002A31C4 40 81 00 08 */ ble lbl_802A756C
+/* 802A7568 002A31C8 38 00 00 05 */ li r0, 5
+lbl_802A756C:
+/* 802A756C 002A31CC 98 0D AE 61 */ stb r0, lbl_80640121-_SDA_BASE_(r13)
+/* 802A7570 002A31D0 48 04 51 6D */ bl func_802EC6DC
+/* 802A7574 002A31D4 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802A7578 002A31D8 38 03 FF FF */ addi r0, r3, -1
+/* 802A757C 002A31DC 7C 00 00 34 */ cntlzw r0, r0
+/* 802A7580 002A31E0 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
+/* 802A7584 002A31E4 98 0D AE 60 */ stb r0, lbl_80640120-_SDA_BASE_(r13)
+/* 802A7588 002A31E8 48 04 50 F9 */ bl func_802EC680
+/* 802A758C 002A31EC 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802A7590 002A31F0 38 03 FF FF */ addi r0, r3, -1
+/* 802A7594 002A31F4 7C 00 00 34 */ cntlzw r0, r0
+/* 802A7598 002A31F8 54 00 D9 7E */ srwi r0, r0, 5
+/* 802A759C 002A31FC 90 0D AE 5C */ stw r0, lbl_8064011C-_SDA_BASE_(r13)
+/* 802A75A0 002A3200 48 04 51 91 */ bl func_802EC730
+/* 802A75A4 002A3204 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802A75A8 002A3208 7C 64 1B 78 */ mr r4, r3
+/* 802A75AC 002A320C 40 82 00 08 */ bne lbl_802A75B4
+/* 802A75B0 002A3210 38 80 00 00 */ li r4, 0
+lbl_802A75B4:
+/* 802A75B4 002A3214 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A75B8 002A3218 28 00 00 7F */ cmplwi r0, 0x7f
+/* 802A75BC 002A321C 41 80 00 08 */ blt lbl_802A75C4
+/* 802A75C0 002A3220 38 80 00 7F */ li r4, 0x7f
+lbl_802A75C4:
+/* 802A75C4 002A3224 38 00 00 00 */ li r0, 0
+/* 802A75C8 002A3228 98 8D AE 5A */ stb r4, lbl_8064011A-_SDA_BASE_(r13)
+/* 802A75CC 002A322C 98 0D AE 4E */ stb r0, lbl_8064010E-_SDA_BASE_(r13)
+lbl_802A75D0:
+/* 802A75D0 002A3230 48 01 B5 09 */ bl func_802C2AD8
+lbl_802A75D4:
+/* 802A75D4 002A3234 39 61 01 60 */ addi r11, r1, 0x160
+/* 802A75D8 002A3238 4B F1 FB 81 */ bl _restgpr_20
+/* 802A75DC 002A323C 80 01 01 64 */ lwz r0, 0x164(r1)
+/* 802A75E0 002A3240 7C 08 03 A6 */ mtlr r0
+/* 802A75E4 002A3244 38 21 01 60 */ addi r1, r1, 0x160
+/* 802A75E8 002A3248 4E 80 00 20 */ blr
+WPADiManageHandler0:
+/* 802A75EC 002A324C 3D 00 80 53 */ lis r8, lbl_80536D80@ha
+/* 802A75F0 002A3250 3C E0 80 2A */ lis r7, WPADiManageHandler@ha
+/* 802A75F4 002A3254 39 08 6D 80 */ addi r8, r8, lbl_80536D80@l
+/* 802A75F8 002A3258 38 A0 00 00 */ li r5, 0
+/* 802A75FC 002A325C 38 E7 6E C4 */ addi r7, r7, WPADiManageHandler@l
+/* 802A7600 002A3260 38 C0 00 00 */ li r6, 0
+/* 802A7604 002A3264 39 08 10 00 */ addi r8, r8, 0x1000
+/* 802A7608 002A3268 4B FC 3A 58 */ b OSSwitchFiberEx
+
+.global __ClearControlBlock
+__ClearControlBlock:
+/* 802A760C 002A326C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A7610 002A3270 7C 08 02 A6 */ mflr r0
+/* 802A7614 002A3274 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A7618 002A3278 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A761C 002A327C 4B F1 FB 0D */ bl _savegpr_27
+/* 802A7620 002A3280 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A7624 002A3284 54 60 10 3A */ slwi r0, r3, 2
+/* 802A7628 002A3288 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A762C 002A328C 3B 80 00 00 */ li r28, 0
+/* 802A7630 002A3290 7F 64 00 2E */ lwzx r27, r4, r0
+/* 802A7634 002A3294 3B A0 FF FF */ li r29, -1
+/* 802A7638 002A3298 38 00 00 FD */ li r0, 0xfd
+/* 802A763C 002A329C 3B C0 00 0C */ li r30, 0xc
+/* 802A7640 002A32A0 9B 9B 08 C8 */ stb r28, 0x8c8(r27)
+/* 802A7644 002A32A4 7C 7F 1B 78 */ mr r31, r3
+/* 802A7648 002A32A8 93 9B 08 50 */ stw r28, 0x850(r27)
+/* 802A764C 002A32AC 93 9B 08 D4 */ stw r28, 0x8d4(r27)
+/* 802A7650 002A32B0 93 9B 08 9C */ stw r28, 0x89c(r27)
+/* 802A7654 002A32B4 93 9B 08 A0 */ stw r28, 0x8a0(r27)
+/* 802A7658 002A32B8 93 9B 08 A8 */ stw r28, 0x8a8(r27)
+/* 802A765C 002A32BC 93 9B 08 AC */ stw r28, 0x8ac(r27)
+/* 802A7660 002A32C0 93 9B 08 B0 */ stw r28, 0x8b0(r27)
+/* 802A7664 002A32C4 93 9B 08 B4 */ stw r28, 0x8b4(r27)
+/* 802A7668 002A32C8 93 9B 08 B8 */ stw r28, 0x8b8(r27)
+/* 802A766C 002A32CC 93 BB 08 BC */ stw r29, 0x8bc(r27)
+/* 802A7670 002A32D0 98 1B 08 C1 */ stb r0, 0x8c1(r27)
+/* 802A7674 002A32D4 9B 9B 08 C2 */ stb r28, 0x8c2(r27)
+/* 802A7678 002A32D8 9B 9B 09 11 */ stb r28, 0x911(r27)
+/* 802A767C 002A32DC B3 9B 09 12 */ sth r28, 0x912(r27)
+/* 802A7680 002A32E0 9B 9B 08 C0 */ stb r28, 0x8c0(r27)
+/* 802A7684 002A32E4 9B DB 08 CA */ stb r30, 0x8ca(r27)
+/* 802A7688 002A32E8 9B 9B 08 CB */ stb r28, 0x8cb(r27)
+/* 802A768C 002A32EC 9B 9B 08 CC */ stb r28, 0x8cc(r27)
+/* 802A7690 002A32F0 B3 9B 08 F8 */ sth r28, 0x8f8(r27)
+/* 802A7694 002A32F4 B3 9B 08 FA */ sth r28, 0x8fa(r27)
+/* 802A7698 002A32F8 B3 9B 08 FC */ sth r28, 0x8fc(r27)
+/* 802A769C 002A32FC B3 9B 08 FE */ sth r28, 0x8fe(r27)
+/* 802A76A0 002A3300 B3 9B 09 00 */ sth r28, 0x900(r27)
+/* 802A76A4 002A3304 B3 9B 09 02 */ sth r28, 0x902(r27)
+/* 802A76A8 002A3308 4B FC B1 31 */ bl __OSGetSystemTime
+/* 802A76AC 002A330C 90 9B 08 F4 */ stw r4, 0x8f4(r27)
+/* 802A76B0 002A3310 90 7B 08 F0 */ stw r3, 0x8f0(r27)
+/* 802A76B4 002A3314 4B FC B1 25 */ bl __OSGetSystemTime
+/* 802A76B8 002A3318 90 9B 09 0C */ stw r4, 0x90c(r27)
+/* 802A76BC 002A331C 38 00 00 01 */ li r0, 1
+/* 802A76C0 002A3320 38 80 00 00 */ li r4, 0
+/* 802A76C4 002A3324 38 A0 00 18 */ li r5, 0x18
+/* 802A76C8 002A3328 90 7B 09 08 */ stw r3, 0x908(r27)
+/* 802A76CC 002A332C 38 7B 08 38 */ addi r3, r27, 0x838
+/* 802A76D0 002A3330 9B 9B 09 10 */ stb r28, 0x910(r27)
+/* 802A76D4 002A3334 9B 9B 08 C9 */ stb r28, 0x8c9(r27)
+/* 802A76D8 002A3338 93 9B 08 C4 */ stw r28, 0x8c4(r27)
+/* 802A76DC 002A333C 93 9B 09 74 */ stw r28, 0x974(r27)
+/* 802A76E0 002A3340 93 9B 09 78 */ stw r28, 0x978(r27)
+/* 802A76E4 002A3344 B3 9B 09 80 */ sth r28, 0x980(r27)
+/* 802A76E8 002A3348 93 9B 09 7C */ stw r28, 0x97c(r27)
+/* 802A76EC 002A334C 9B BB 08 C3 */ stb r29, 0x8c3(r27)
+/* 802A76F0 002A3350 93 9B 08 D8 */ stw r28, 0x8d8(r27)
+/* 802A76F4 002A3354 93 9B 08 DC */ stw r28, 0x8dc(r27)
+/* 802A76F8 002A3358 93 9B 08 E0 */ stw r28, 0x8e0(r27)
+/* 802A76FC 002A335C 98 1B 08 CD */ stb r0, 0x8cd(r27)
+/* 802A7700 002A3360 9B 9B 08 CE */ stb r28, 0x8ce(r27)
+/* 802A7704 002A3364 9B 9B 08 CF */ stb r28, 0x8cf(r27)
+/* 802A7708 002A3368 9B 9B 09 82 */ stb r28, 0x982(r27)
+/* 802A770C 002A336C 9B 9B 09 83 */ stb r28, 0x983(r27)
+/* 802A7710 002A3370 B3 9B 09 84 */ sth r28, 0x984(r27)
+/* 802A7714 002A3374 98 1B 09 86 */ stb r0, 0x986(r27)
+/* 802A7718 002A3378 9B 9B 09 8C */ stb r28, 0x98c(r27)
+/* 802A771C 002A337C 93 9B 09 88 */ stw r28, 0x988(r27)
+/* 802A7720 002A3380 4B D5 C9 E5 */ bl memset
+/* 802A7724 002A3384 38 7B 09 34 */ addi r3, r27, 0x934
+/* 802A7728 002A3388 38 80 00 00 */ li r4, 0
+/* 802A772C 002A338C 38 A0 00 40 */ li r5, 0x40
+/* 802A7730 002A3390 4B D5 C9 D5 */ bl memset
+/* 802A7734 002A3394 38 7B 00 A0 */ addi r3, r27, 0xa0
+/* 802A7738 002A3398 38 80 00 00 */ li r4, 0
+/* 802A773C 002A339C 38 A0 00 C0 */ li r5, 0xc0
+/* 802A7740 002A33A0 4B D5 C9 C5 */ bl memset
+/* 802A7744 002A33A4 38 7B 00 40 */ addi r3, r27, 0x40
+/* 802A7748 002A33A8 38 80 00 00 */ li r4, 0
+/* 802A774C 002A33AC 38 A0 00 60 */ li r5, 0x60
+/* 802A7750 002A33B0 4B D5 C9 B5 */ bl memset
+/* 802A7754 002A33B4 38 7B 08 54 */ addi r3, r27, 0x854
+/* 802A7758 002A33B8 38 80 00 00 */ li r4, 0
+/* 802A775C 002A33BC 38 A0 00 2E */ li r5, 0x2e
+/* 802A7760 002A33C0 4B D5 C9 A5 */ bl memset
+/* 802A7764 002A33C4 38 7B 08 82 */ addi r3, r27, 0x882
+/* 802A7768 002A33C8 38 80 00 00 */ li r4, 0
+/* 802A776C 002A33CC 38 A0 00 1A */ li r5, 0x1a
+/* 802A7770 002A33D0 4B D5 C9 95 */ bl memset
+/* 802A7774 002A33D4 38 7B 09 14 */ addi r3, r27, 0x914
+/* 802A7778 002A33D8 38 80 00 00 */ li r4, 0
+/* 802A777C 002A33DC 38 A0 00 10 */ li r5, 0x10
+/* 802A7780 002A33E0 4B D5 C9 85 */ bl memset
+/* 802A7784 002A33E4 38 7B 09 24 */ addi r3, r27, 0x924
+/* 802A7788 002A33E8 38 80 00 00 */ li r4, 0
+/* 802A778C 002A33EC 38 A0 00 08 */ li r5, 8
+/* 802A7790 002A33F0 4B D5 C9 75 */ bl memset
+/* 802A7794 002A33F4 38 7B 09 2C */ addi r3, r27, 0x92c
+/* 802A7798 002A33F8 38 80 00 00 */ li r4, 0
+/* 802A779C 002A33FC 38 A0 00 08 */ li r5, 8
+/* 802A77A0 002A3400 4B D5 C9 65 */ bl memset
+/* 802A77A4 002A3404 7F 63 DB 78 */ mr r3, r27
+/* 802A77A8 002A3408 38 80 00 00 */ li r4, 0
+/* 802A77AC 002A340C 38 A0 00 38 */ li r5, 0x38
+/* 802A77B0 002A3410 4B D5 C9 55 */ bl memset
+/* 802A77B4 002A3414 93 BB 00 38 */ stw r29, 0x38(r27)
+/* 802A77B8 002A3418 38 9B 01 6C */ addi r4, r27, 0x16c
+/* 802A77BC 002A341C 38 60 00 18 */ li r3, 0x18
+/* 802A77C0 002A3420 38 1B 05 F8 */ addi r0, r27, 0x5f8
+/* 802A77C4 002A3424 93 BB 00 3C */ stw r29, 0x3c(r27)
+/* 802A77C8 002A3428 90 9B 01 64 */ stw r4, 0x164(r27)
+/* 802A77CC 002A342C 90 7B 01 68 */ stw r3, 0x168(r27)
+/* 802A77D0 002A3430 90 1B 05 F0 */ stw r0, 0x5f0(r27)
+/* 802A77D4 002A3434 93 DB 05 F4 */ stw r30, 0x5f4(r27)
+/* 802A77D8 002A3438 4B FC 6F 85 */ bl OSDisableInterrupts
+/* 802A77DC 002A343C 9B 9B 01 60 */ stb r28, 0x160(r27)
+/* 802A77E0 002A3440 7C 7D 1B 78 */ mr r29, r3
+/* 802A77E4 002A3444 38 80 00 00 */ li r4, 0
+/* 802A77E8 002A3448 9B 9B 01 61 */ stb r28, 0x161(r27)
+/* 802A77EC 002A344C 80 1B 01 68 */ lwz r0, 0x168(r27)
+/* 802A77F0 002A3450 80 7B 01 64 */ lwz r3, 0x164(r27)
+/* 802A77F4 002A3454 1C A0 00 30 */ mulli r5, r0, 0x30
+/* 802A77F8 002A3458 4B D5 C9 0D */ bl memset
+/* 802A77FC 002A345C 7F A3 EB 78 */ mr r3, r29
+/* 802A7800 002A3460 4B FC 6F 85 */ bl OSRestoreInterrupts
+/* 802A7804 002A3464 4B FC 6F 59 */ bl OSDisableInterrupts
+/* 802A7808 002A3468 9B 9B 05 EC */ stb r28, 0x5ec(r27)
+/* 802A780C 002A346C 7C 7D 1B 78 */ mr r29, r3
+/* 802A7810 002A3470 38 80 00 00 */ li r4, 0
+/* 802A7814 002A3474 9B 9B 05 ED */ stb r28, 0x5ed(r27)
+/* 802A7818 002A3478 80 1B 05 F4 */ lwz r0, 0x5f4(r27)
+/* 802A781C 002A347C 80 7B 05 F0 */ lwz r3, 0x5f0(r27)
+/* 802A7820 002A3480 1C A0 00 30 */ mulli r5, r0, 0x30
+/* 802A7824 002A3484 4B D5 C8 E1 */ bl memset
+/* 802A7828 002A3488 7F A3 EB 78 */ mr r3, r29
+/* 802A782C 002A348C 4B FC 6F 59 */ bl OSRestoreInterrupts
+/* 802A7830 002A3490 1C 1F 00 14 */ mulli r0, r31, 0x14
+/* 802A7834 002A3494 3C 80 80 54 */ lis r4, lbl_8053A480@ha
+/* 802A7838 002A3498 38 6D AE 40 */ addi r3, r13, lbl_80640100-_SDA_BASE_
+/* 802A783C 002A349C 38 84 A4 80 */ addi r4, r4, lbl_8053A480@l
+/* 802A7840 002A34A0 7F 83 F9 AE */ stbx r28, r3, r31
+/* 802A7844 002A34A4 38 6D AE 44 */ addi r3, r13, lbl_80640104-_SDA_BASE_
+/* 802A7848 002A34A8 7F 84 01 2E */ stwx r28, r4, r0
+/* 802A784C 002A34AC 7C 84 02 14 */ add r4, r4, r0
+/* 802A7850 002A34B0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A7854 002A34B4 93 84 00 04 */ stw r28, 4(r4)
+/* 802A7858 002A34B8 B3 84 00 08 */ sth r28, 8(r4)
+/* 802A785C 002A34BC 93 84 00 0C */ stw r28, 0xc(r4)
+/* 802A7860 002A34C0 93 84 00 10 */ stw r28, 0x10(r4)
+/* 802A7864 002A34C4 7F 83 F9 AE */ stbx r28, r3, r31
+/* 802A7868 002A34C8 4B F1 F9 0D */ bl _restgpr_27
+/* 802A786C 002A34CC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A7870 002A34D0 7C 08 03 A6 */ mtlr r0
+/* 802A7874 002A34D4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A7878 002A34D8 4E 80 00 20 */ blr
+
+.global WPADiInitSub
+WPADiInitSub:
+/* 802A787C 002A34DC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A7880 002A34E0 7C 08 02 A6 */ mflr r0
+/* 802A7884 002A34E4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A7888 002A34E8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A788C 002A34EC 4B F1 F8 91 */ bl _savegpr_24
+/* 802A7890 002A34F0 3F E0 80 53 */ lis r31, lbl_80536D40@ha
+/* 802A7894 002A34F4 3B FF 6D 40 */ addi r31, r31, lbl_80536D40@l
+/* 802A7898 002A34F8 4B FC 6E C5 */ bl OSDisableInterrupts
+/* 802A789C 002A34FC 3C 80 CD 00 */ lis r4, 0xCD0000C0@ha
+/* 802A78A0 002A3500 80 04 00 C0 */ lwz r0, 0xCD0000C0@l(r4)
+/* 802A78A4 002A3504 60 00 01 00 */ ori r0, r0, 0x100
+/* 802A78A8 002A3508 90 04 00 C0 */ stw r0, 0xc0(r4)
+/* 802A78AC 002A350C 4B FC 6E D9 */ bl OSRestoreInterrupts
+/* 802A78B0 002A3510 38 9F 10 40 */ addi r4, r31, 0x1040
+/* 802A78B4 002A3514 38 00 FF FF */ li r0, -1
+/* 802A78B8 002A3518 98 04 00 00 */ stb r0, 0(r4)
+/* 802A78BC 002A351C 3C 60 80 44 */ lis r3, lbl_8043C0C0@ha
+/* 802A78C0 002A3520 38 63 C0 C0 */ addi r3, r3, lbl_8043C0C0@l
+/* 802A78C4 002A3524 98 04 00 01 */ stb r0, 1(r4)
+/* 802A78C8 002A3528 98 04 00 02 */ stb r0, 2(r4)
+/* 802A78CC 002A352C 98 04 00 03 */ stb r0, 3(r4)
+/* 802A78D0 002A3530 98 04 00 04 */ stb r0, 4(r4)
+/* 802A78D4 002A3534 98 04 00 05 */ stb r0, 5(r4)
+/* 802A78D8 002A3538 98 04 00 06 */ stb r0, 6(r4)
+/* 802A78DC 002A353C 98 04 00 07 */ stb r0, 7(r4)
+/* 802A78E0 002A3540 98 04 00 08 */ stb r0, 8(r4)
+/* 802A78E4 002A3544 98 04 00 09 */ stb r0, 9(r4)
+/* 802A78E8 002A3548 98 04 00 0A */ stb r0, 0xa(r4)
+/* 802A78EC 002A354C 98 04 00 0B */ stb r0, 0xb(r4)
+/* 802A78F0 002A3550 98 04 00 0C */ stb r0, 0xc(r4)
+/* 802A78F4 002A3554 98 04 00 0D */ stb r0, 0xd(r4)
+/* 802A78F8 002A3558 98 04 00 0E */ stb r0, 0xe(r4)
+/* 802A78FC 002A355C 98 04 00 0F */ stb r0, 0xf(r4)
+/* 802A7900 002A3560 4C C6 31 82 */ crclr 6
+/* 802A7904 002A3564 48 00 BF 5D */ bl func_802B3860
+/* 802A7908 002A3568 3B BF 10 60 */ addi r29, r31, 0x1060
+/* 802A790C 002A356C 3B 9F 00 30 */ addi r28, r31, 0x30
+/* 802A7910 002A3570 3B 00 00 00 */ li r24, 0
+/* 802A7914 002A3574 3B 6D AE 50 */ addi r27, r13, lbl_80640110-_SDA_BASE_
+/* 802A7918 002A3578 3B 4D AE 40 */ addi r26, r13, lbl_80640100-_SDA_BASE_
+/* 802A791C 002A357C 3B 2D AE 44 */ addi r25, r13, lbl_80640104-_SDA_BASE_
+/* 802A7920 002A3580 3B C0 00 00 */ li r30, 0
+lbl_802A7924:
+/* 802A7924 002A3584 93 BC 00 00 */ stw r29, 0(r28)
+/* 802A7928 002A3588 7F 03 C3 78 */ mr r3, r24
+/* 802A792C 002A358C 9B DB 00 00 */ stb r30, 0(r27)
+/* 802A7930 002A3590 80 9C 00 00 */ lwz r4, 0(r28)
+/* 802A7934 002A3594 93 C4 08 A4 */ stw r30, 0x8a4(r4)
+/* 802A7938 002A3598 4B FF FC D5 */ bl __ClearControlBlock
+/* 802A793C 002A359C 38 7D 08 E4 */ addi r3, r29, 0x8e4
+/* 802A7940 002A35A0 4B FC 99 A9 */ bl OSInitThreadQueue
+/* 802A7944 002A35A4 3B 18 00 01 */ addi r24, r24, 1
+/* 802A7948 002A35A8 9B DA 00 00 */ stb r30, 0(r26)
+/* 802A794C 002A35AC 2C 18 00 04 */ cmpwi r24, 4
+/* 802A7950 002A35B0 3B 9C 00 04 */ addi r28, r28, 4
+/* 802A7954 002A35B4 9B D9 00 00 */ stb r30, 0(r25)
+/* 802A7958 002A35B8 3B 7B 00 01 */ addi r27, r27, 1
+/* 802A795C 002A35BC 3B 5A 00 01 */ addi r26, r26, 1
+/* 802A7960 002A35C0 3B 39 00 01 */ addi r25, r25, 1
+/* 802A7964 002A35C4 3B BD 09 A0 */ addi r29, r29, 0x9a0
+/* 802A7968 002A35C8 41 80 FF BC */ blt lbl_802A7924
+/* 802A796C 002A35CC 38 00 00 05 */ li r0, 5
+/* 802A7970 002A35D0 98 0D AE 62 */ stb r0, lbl_80640122-_SDA_BASE_(r13)
+/* 802A7974 002A35D4 4B FC 1C ED */ bl OSGetAppGamename
+/* 802A7978 002A35D8 90 6D AE 54 */ stw r3, lbl_80640114-_SDA_BASE_(r13)
+/* 802A797C 002A35DC 4B FC 1D 31 */ bl OSGetAppType
+/* 802A7980 002A35E0 98 6D AE 58 */ stb r3, lbl_80640118-_SDA_BASE_(r13)
+/* 802A7984 002A35E4 48 04 4C 95 */ bl func_802EC618
+/* 802A7988 002A35E8 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A798C 002A35EC 28 00 00 01 */ cmplwi r0, 1
+/* 802A7990 002A35F0 40 80 00 08 */ bge lbl_802A7998
+/* 802A7994 002A35F4 38 00 00 01 */ li r0, 1
+lbl_802A7998:
+/* 802A7998 002A35F8 28 00 00 05 */ cmplwi r0, 5
+/* 802A799C 002A35FC 40 81 00 08 */ ble lbl_802A79A4
+/* 802A79A0 002A3600 38 00 00 05 */ li r0, 5
+lbl_802A79A4:
+/* 802A79A4 002A3604 98 0D AE 61 */ stb r0, lbl_80640121-_SDA_BASE_(r13)
+/* 802A79A8 002A3608 48 04 4D 35 */ bl func_802EC6DC
+/* 802A79AC 002A360C 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802A79B0 002A3610 38 03 FF FF */ addi r0, r3, -1
+/* 802A79B4 002A3614 7C 00 00 34 */ cntlzw r0, r0
+/* 802A79B8 002A3618 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
+/* 802A79BC 002A361C 98 0D AE 60 */ stb r0, lbl_80640120-_SDA_BASE_(r13)
+/* 802A79C0 002A3620 48 04 4C C1 */ bl func_802EC680
+/* 802A79C4 002A3624 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 802A79C8 002A3628 38 03 FF FF */ addi r0, r3, -1
+/* 802A79CC 002A362C 7C 00 00 34 */ cntlzw r0, r0
+/* 802A79D0 002A3630 54 00 D9 7E */ srwi r0, r0, 5
+/* 802A79D4 002A3634 90 0D AE 5C */ stw r0, lbl_8064011C-_SDA_BASE_(r13)
+/* 802A79D8 002A3638 48 04 4D 59 */ bl func_802EC730
+/* 802A79DC 002A363C 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802A79E0 002A3640 7C 66 1B 78 */ mr r6, r3
+/* 802A79E4 002A3644 40 82 00 08 */ bne lbl_802A79EC
+/* 802A79E8 002A3648 38 C0 00 00 */ li r6, 0
+lbl_802A79EC:
+/* 802A79EC 002A364C 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802A79F0 002A3650 28 00 00 7F */ cmplwi r0, 0x7f
+/* 802A79F4 002A3654 41 80 00 08 */ blt lbl_802A79FC
+/* 802A79F8 002A3658 38 C0 00 7F */ li r6, 0x7f
+lbl_802A79FC:
+/* 802A79FC 002A365C 38 A0 00 00 */ li r5, 0
+/* 802A7A00 002A3660 38 80 00 01 */ li r4, 1
+/* 802A7A04 002A3664 38 00 FF FF */ li r0, -1
+/* 802A7A08 002A3668 98 CD AE 5A */ stb r6, lbl_8064011A-_SDA_BASE_(r13)
+/* 802A7A0C 002A366C 38 7F 00 00 */ addi r3, r31, 0
+/* 802A7A10 002A3670 B0 AD AE 3A */ sth r5, lbl_806400FA-_SDA_BASE_(r13)
+/* 802A7A14 002A3674 98 AD AE 3C */ stb r5, lbl_806400FC-_SDA_BASE_(r13)
+/* 802A7A18 002A3678 B0 AD AE 3E */ sth r5, lbl_806400FE-_SDA_BASE_(r13)
+/* 802A7A1C 002A367C 98 AD AE 4D */ stb r5, lbl_8064010D-_SDA_BASE_(r13)
+/* 802A7A20 002A3680 98 AD AE 59 */ stb r5, lbl_80640119-_SDA_BASE_(r13)
+/* 802A7A24 002A3684 98 8D AE 4E */ stb r4, lbl_8064010E-_SDA_BASE_(r13)
+/* 802A7A28 002A3688 98 0D AE 4C */ stb r0, lbl_8064010C-_SDA_BASE_(r13)
+/* 802A7A2C 002A368C 4B FC 1C F9 */ bl OSCreateAlarm
+/* 802A7A30 002A3690 4B FC AD 89 */ bl OSGetTime
+/* 802A7A34 002A3694 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 802A7A38 002A3698 3D 20 80 2A */ lis r9, WPADiManageHandler0@ha
+/* 802A7A3C 002A369C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 802A7A40 002A36A0 3C C0 10 62 */ lis r6, 0x10624DD3@ha
+/* 802A7A44 002A36A4 7C 65 1B 78 */ mr r5, r3
+/* 802A7A48 002A36A8 39 29 75 EC */ addi r9, r9, WPADiManageHandler0@l
+/* 802A7A4C 002A36AC 38 66 4D D3 */ addi r3, r6, 0x10624DD3@l
+/* 802A7A50 002A36B0 54 00 F0 BE */ srwi r0, r0, 2
+/* 802A7A54 002A36B4 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 802A7A58 002A36B8 7C 86 23 78 */ mr r6, r4
+/* 802A7A5C 002A36BC 38 7F 00 00 */ addi r3, r31, 0
+/* 802A7A60 002A36C0 38 E0 00 00 */ li r7, 0
+/* 802A7A64 002A36C4 54 08 D1 BE */ srwi r8, r0, 6
+/* 802A7A68 002A36C8 4B FC 1F 8D */ bl OSSetPeriodicAlarm
+/* 802A7A6C 002A36CC 80 6D 89 A0 */ lwz r3, lbl_8063DC60-_SDA_BASE_(r13)
+/* 802A7A70 002A36D0 4B FC 1B E1 */ bl OSRegisterVersion
+/* 802A7A74 002A36D4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A7A78 002A36D8 4B F1 F6 F1 */ bl _restgpr_24
+/* 802A7A7C 002A36DC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A7A80 002A36E0 7C 08 03 A6 */ mtlr r0
+/* 802A7A84 002A36E4 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A7A88 002A36E8 4E 80 00 20 */ blr
+
+.global WPADInit
+WPADInit:
+/* 802A7A8C 002A36EC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A7A90 002A36F0 7C 08 02 A6 */ mflr r0
+/* 802A7A94 002A36F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A7A98 002A36F8 88 0D AE 38 */ lbz r0, lbl_806400F8-_SDA_BASE_(r13)
+/* 802A7A9C 002A36FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A7AA0 002A3700 40 82 00 18 */ bne lbl_802A7AB8
+/* 802A7AA4 002A3704 3C 60 80 44 */ lis r3, lbl_8043C070@ha
+/* 802A7AA8 002A3708 38 63 C0 70 */ addi r3, r3, lbl_8043C070@l
+/* 802A7AAC 002A370C 4B FC 81 E5 */ bl OSRegisterShutdownFunction
+/* 802A7AB0 002A3710 38 00 00 01 */ li r0, 1
+/* 802A7AB4 002A3714 98 0D AE 38 */ stb r0, lbl_806400F8-_SDA_BASE_(r13)
+lbl_802A7AB8:
+/* 802A7AB8 002A3718 48 00 EC 09 */ bl func_802B66C0
+/* 802A7ABC 002A371C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A7AC0 002A3720 41 82 00 10 */ beq lbl_802A7AD0
+/* 802A7AC4 002A3724 38 00 00 00 */ li r0, 0
+/* 802A7AC8 002A3728 90 0D AE 48 */ stw r0, lbl_80640108-_SDA_BASE_(r13)
+/* 802A7ACC 002A372C 4B FF FD B1 */ bl WPADiInitSub
+lbl_802A7AD0:
+/* 802A7AD0 002A3730 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A7AD4 002A3734 7C 08 03 A6 */ mtlr r0
+/* 802A7AD8 002A3738 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A7ADC 002A373C 4E 80 00 20 */ blr
+
+.global WPADSetDisableChannel
+WPADSetDisableChannel:
+/* 802A7AE0 002A3740 38 60 00 01 */ li r3, 1
+/* 802A7AE4 002A3744 4E 80 00 20 */ blr
+
+.global WPADStartFastSimpleSync
+WPADStartFastSimpleSync:
+/* 802A7AE8 002A3748 48 00 F1 28 */ b lbl_802B6C10
+
+.global WPADStopSimpleSync
+WPADStopSimpleSync:
+/* 802A7AEC 002A374C 48 00 F1 B0 */ b func_802B6C9C
+
+.global WPADSetSimpleSyncCallback
+WPADSetSimpleSyncCallback:
+/* 802A7AF0 002A3750 48 00 EF 90 */ b lbl_802B6A80
+
+.global WPADRegisterAllocator
+WPADRegisterAllocator:
+/* 802A7AF4 002A3754 48 00 EC C4 */ b func_802B67B8
+
+.global WPADGetStatus
+WPADGetStatus:
+/* 802A7AF8 002A3758 48 00 EE 98 */ b func_802B6990
+
+.global WPADGetRadioSensitivity
+WPADGetRadioSensitivity:
+/* 802A7AFC 002A375C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A7B00 002A3760 7C 08 02 A6 */ mflr r0
+/* 802A7B04 002A3764 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A7B08 002A3768 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A7B0C 002A376C 54 60 10 3A */ slwi r0, r3, 2
+/* 802A7B10 002A3770 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A7B14 002A3774 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A7B18 002A3778 7F E4 00 2E */ lwzx r31, r4, r0
+/* 802A7B1C 002A377C 4B FC 6C 41 */ bl OSDisableInterrupts
+/* 802A7B20 002A3780 8B FF 09 83 */ lbz r31, 0x983(r31)
+/* 802A7B24 002A3784 4B FC 6C 61 */ bl OSRestoreInterrupts
+/* 802A7B28 002A3788 7F E3 FB 78 */ mr r3, r31
+/* 802A7B2C 002A378C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A7B30 002A3790 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A7B34 002A3794 7C 08 03 A6 */ mtlr r0
+/* 802A7B38 002A3798 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A7B3C 002A379C 4E 80 00 20 */ blr
+
+.global WPADGetSensorBarPosition
+WPADGetSensorBarPosition:
+/* 802A7B40 002A37A0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A7B44 002A37A4 7C 08 02 A6 */ mflr r0
+/* 802A7B48 002A37A8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A7B4C 002A37AC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A7B50 002A37B0 4B FC 6C 0D */ bl OSDisableInterrupts
+/* 802A7B54 002A37B4 8B ED AE 60 */ lbz r31, lbl_80640120-_SDA_BASE_(r13)
+/* 802A7B58 002A37B8 4B FC 6C 2D */ bl OSRestoreInterrupts
+/* 802A7B5C 002A37BC 7F E3 FB 78 */ mr r3, r31
+/* 802A7B60 002A37C0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A7B64 002A37C4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A7B68 002A37C8 7C 08 03 A6 */ mtlr r0
+/* 802A7B6C 002A37CC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A7B70 002A37D0 4E 80 00 20 */ blr
+setupCallback:
+/* 802A7B74 002A37D4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A7B78 002A37D8 7C 08 02 A6 */ mflr r0
+/* 802A7B7C 002A37DC 2C 04 FF FF */ cmpwi r4, -1
+/* 802A7B80 002A37E0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A7B84 002A37E4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A7B88 002A37E8 3F E0 80 53 */ lis r31, lbl_80536D70@ha
+/* 802A7B8C 002A37EC 3B FF 6D 70 */ addi r31, r31, lbl_80536D70@l
+/* 802A7B90 002A37F0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A7B94 002A37F4 54 7E 10 3A */ slwi r30, r3, 2
+/* 802A7B98 002A37F8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A7B9C 002A37FC 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A7BA0 002A3800 41 82 00 8C */ beq lbl_802A7C2C
+/* 802A7BA4 002A3804 2C 04 00 00 */ cmpwi r4, 0
+/* 802A7BA8 002A3808 40 82 00 24 */ bne lbl_802A7BCC
+/* 802A7BAC 002A380C 38 00 00 01 */ li r0, 1
+/* 802A7BB0 002A3810 90 1D 08 DC */ stw r0, 0x8dc(r29)
+/* 802A7BB4 002A3814 81 9D 08 A4 */ lwz r12, 0x8a4(r29)
+/* 802A7BB8 002A3818 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A7BBC 002A381C 41 82 00 70 */ beq lbl_802A7C2C
+/* 802A7BC0 002A3820 7D 89 03 A6 */ mtctr r12
+/* 802A7BC4 002A3824 4E 80 04 21 */ bctrl
+/* 802A7BC8 002A3828 48 00 00 64 */ b lbl_802A7C2C
+lbl_802A7BCC:
+/* 802A7BCC 002A382C 4B FC 6B 91 */ bl OSDisableInterrupts
+/* 802A7BD0 002A3830 83 BD 08 BC */ lwz r29, 0x8bc(r29)
+/* 802A7BD4 002A3834 4B FC 6B B1 */ bl OSRestoreInterrupts
+/* 802A7BD8 002A3838 2C 1D FF FF */ cmpwi r29, -1
+/* 802A7BDC 002A383C 41 82 00 50 */ beq lbl_802A7C2C
+/* 802A7BE0 002A3840 7F DF F0 2E */ lwzx r30, r31, r30
+/* 802A7BE4 002A3844 4B FC 6B 79 */ bl OSDisableInterrupts
+/* 802A7BE8 002A3848 8B DE 08 C3 */ lbz r30, 0x8c3(r30)
+/* 802A7BEC 002A384C 4B FC 6B 99 */ bl OSRestoreInterrupts
+/* 802A7BF0 002A3850 7F C3 F3 78 */ mr r3, r30
+/* 802A7BF4 002A3854 48 01 12 F5 */ bl func_802B8EE8
+/* 802A7BF8 002A3858 2C 03 00 00 */ cmpwi r3, 0
+/* 802A7BFC 002A385C 41 82 00 18 */ beq lbl_802A7C14
+/* 802A7C00 002A3860 7C 64 1B 78 */ mr r4, r3
+/* 802A7C04 002A3864 38 61 00 08 */ addi r3, r1, 8
+/* 802A7C08 002A3868 38 A0 00 06 */ li r5, 6
+/* 802A7C0C 002A386C 4B D5 C3 F5 */ bl memcpy
+/* 802A7C10 002A3870 48 00 00 14 */ b lbl_802A7C24
+lbl_802A7C14:
+/* 802A7C14 002A3874 38 61 00 08 */ addi r3, r1, 8
+/* 802A7C18 002A3878 38 80 00 00 */ li r4, 0
+/* 802A7C1C 002A387C 38 A0 00 06 */ li r5, 6
+/* 802A7C20 002A3880 4B D5 C4 E5 */ bl memset
+lbl_802A7C24:
+/* 802A7C24 002A3884 38 61 00 08 */ addi r3, r1, 8
+/* 802A7C28 002A3888 48 01 D2 6D */ bl func_802C4E94
+lbl_802A7C2C:
+/* 802A7C2C 002A388C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A7C30 002A3890 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A7C34 002A3894 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A7C38 002A3898 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A7C3C 002A389C 7C 08 03 A6 */ mtlr r0
+/* 802A7C40 002A38A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A7C44 002A38A4 4E 80 00 20 */ blr
+abortConnCallback:
+/* 802A7C48 002A38A8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A7C4C 002A38AC 7C 08 02 A6 */ mflr r0
+/* 802A7C50 002A38B0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A7C54 002A38B4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A7C58 002A38B8 4B F1 F4 D1 */ bl _savegpr_27
+/* 802A7C5C 002A38BC 3F E0 80 53 */ lis r31, lbl_80536D70@ha
+/* 802A7C60 002A38C0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A7C64 002A38C4 54 7E 10 3A */ slwi r30, r3, 2
+/* 802A7C68 002A38C8 7C 9B 23 78 */ mr r27, r4
+/* 802A7C6C 002A38CC 3B FF 6D 70 */ addi r31, r31, lbl_80536D70@l
+/* 802A7C70 002A38D0 7F 9F F0 2E */ lwzx r28, r31, r30
+/* 802A7C74 002A38D4 41 82 00 A0 */ beq lbl_802A7D14
+/* 802A7C78 002A38D8 4B FC 6A E5 */ bl OSDisableInterrupts
+/* 802A7C7C 002A38DC 38 00 00 00 */ li r0, 0
+/* 802A7C80 002A38E0 7C 7D 1B 78 */ mr r29, r3
+/* 802A7C84 002A38E4 98 1C 01 60 */ stb r0, 0x160(r28)
+/* 802A7C88 002A38E8 38 80 00 00 */ li r4, 0
+/* 802A7C8C 002A38EC 98 1C 01 61 */ stb r0, 0x161(r28)
+/* 802A7C90 002A38F0 80 1C 01 68 */ lwz r0, 0x168(r28)
+/* 802A7C94 002A38F4 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 802A7C98 002A38F8 1C A0 00 30 */ mulli r5, r0, 0x30
+/* 802A7C9C 002A38FC 4B D5 C4 69 */ bl memset
+/* 802A7CA0 002A3900 7F A3 EB 78 */ mr r3, r29
+/* 802A7CA4 002A3904 4B FC 6A E1 */ bl OSRestoreInterrupts
+/* 802A7CA8 002A3908 2C 1B FF FF */ cmpwi r27, -1
+/* 802A7CAC 002A390C 41 82 00 68 */ beq lbl_802A7D14
+/* 802A7CB0 002A3910 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A7CB4 002A3914 4B FC 6A A9 */ bl OSDisableInterrupts
+/* 802A7CB8 002A3918 83 BD 08 BC */ lwz r29, 0x8bc(r29)
+/* 802A7CBC 002A391C 4B FC 6A C9 */ bl OSRestoreInterrupts
+/* 802A7CC0 002A3920 2C 1D FF FF */ cmpwi r29, -1
+/* 802A7CC4 002A3924 41 82 00 50 */ beq lbl_802A7D14
+/* 802A7CC8 002A3928 7F BF F0 2E */ lwzx r29, r31, r30
+/* 802A7CCC 002A392C 4B FC 6A 91 */ bl OSDisableInterrupts
+/* 802A7CD0 002A3930 8B BD 08 C3 */ lbz r29, 0x8c3(r29)
+/* 802A7CD4 002A3934 4B FC 6A B1 */ bl OSRestoreInterrupts
+/* 802A7CD8 002A3938 7F A3 EB 78 */ mr r3, r29
+/* 802A7CDC 002A393C 48 01 12 0D */ bl func_802B8EE8
+/* 802A7CE0 002A3940 2C 03 00 00 */ cmpwi r3, 0
+/* 802A7CE4 002A3944 41 82 00 18 */ beq lbl_802A7CFC
+/* 802A7CE8 002A3948 7C 64 1B 78 */ mr r4, r3
+/* 802A7CEC 002A394C 38 61 00 08 */ addi r3, r1, 8
+/* 802A7CF0 002A3950 38 A0 00 06 */ li r5, 6
+/* 802A7CF4 002A3954 4B D5 C3 0D */ bl memcpy
+/* 802A7CF8 002A3958 48 00 00 14 */ b lbl_802A7D0C
+lbl_802A7CFC:
+/* 802A7CFC 002A395C 38 61 00 08 */ addi r3, r1, 8
+/* 802A7D00 002A3960 38 80 00 00 */ li r4, 0
+/* 802A7D04 002A3964 38 A0 00 06 */ li r5, 6
+/* 802A7D08 002A3968 4B D5 C3 FD */ bl memset
+lbl_802A7D0C:
+/* 802A7D0C 002A396C 38 61 00 08 */ addi r3, r1, 8
+/* 802A7D10 002A3970 48 01 D1 85 */ bl func_802C4E94
+lbl_802A7D14:
+/* 802A7D14 002A3974 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A7D18 002A3978 4B F1 F4 5D */ bl _restgpr_27
+/* 802A7D1C 002A397C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A7D20 002A3980 7C 08 03 A6 */ mtlr r0
+/* 802A7D24 002A3984 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A7D28 002A3988 4E 80 00 20 */ blr
+firmwareCheckCallback:
+/* 802A7D2C 002A398C 94 21 FD 80 */ stwu r1, -0x280(r1)
+/* 802A7D30 002A3990 7C 08 02 A6 */ mflr r0
+/* 802A7D34 002A3994 90 01 02 84 */ stw r0, 0x284(r1)
+/* 802A7D38 002A3998 39 61 02 80 */ addi r11, r1, 0x280
+/* 802A7D3C 002A399C 4B F1 F3 E9 */ bl _savegpr_26
+/* 802A7D40 002A39A0 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A7D44 002A39A4 2C 04 FF FF */ cmpwi r4, -1
+/* 802A7D48 002A39A8 54 60 10 3A */ slwi r0, r3, 2
+/* 802A7D4C 002A39AC 7C 7B 1B 78 */ mr r27, r3
+/* 802A7D50 002A39B0 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A7D54 002A39B4 7C 9A 23 78 */ mr r26, r4
+/* 802A7D58 002A39B8 7F A5 00 2E */ lwzx r29, r5, r0
+/* 802A7D5C 002A39BC 41 82 08 94 */ beq lbl_802A85F0
+/* 802A7D60 002A39C0 4B FC 69 FD */ bl OSDisableInterrupts
+/* 802A7D64 002A39C4 7F 44 00 34 */ cntlzw r4, r26
+/* 802A7D68 002A39C8 38 00 00 00 */ li r0, 0
+/* 802A7D6C 002A39CC 54 84 D9 7E */ srwi r4, r4, 5
+/* 802A7D70 002A39D0 90 9D 08 E0 */ stw r4, 0x8e0(r29)
+/* 802A7D74 002A39D4 90 1D 08 BC */ stw r0, 0x8bc(r29)
+/* 802A7D78 002A39D8 4B FC 6A 0D */ bl OSRestoreInterrupts
+/* 802A7D7C 002A39DC 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A7D80 002A39E0 3B E0 00 2A */ li r31, 0x2a
+/* 802A7D84 002A39E4 40 82 00 08 */ bne lbl_802A7D8C
+/* 802A7D88 002A39E8 3B E0 00 14 */ li r31, 0x14
+lbl_802A7D8C:
+/* 802A7D8C 002A39EC 7F 43 00 34 */ cntlzw r3, r26
+/* 802A7D90 002A39F0 80 1D 08 E0 */ lwz r0, 0x8e0(r29)
+/* 802A7D94 002A39F4 54 64 DF FE */ rlwinm r4, r3, 0x1b, 0x1f, 0x1f
+/* 802A7D98 002A39F8 7C A4 00 D0 */ neg r5, r4
+/* 802A7D9C 002A39FC 3C 60 80 44 */ lis r3, lbl_8043C0CC@ha
+/* 802A7DA0 002A3A00 2F 00 00 00 */ cmpwi cr6, r0, 0
+/* 802A7DA4 002A3A04 3C 80 80 44 */ lis r4, lbl_8043C104@ha
+/* 802A7DA8 002A3A08 70 BC 17 6C */ andi. r28, r5, 0x176c
+/* 802A7DAC 002A3A0C 38 63 C0 CC */ addi r3, r3, lbl_8043C0CC@l
+/* 802A7DB0 002A3A10 38 84 C1 04 */ addi r4, r4, lbl_8043C104@l
+/* 802A7DB4 002A3A14 41 9A 00 08 */ beq cr6, lbl_802A7DBC
+/* 802A7DB8 002A3A18 38 8D 89 AC */ addi r4, r13, lbl_8063DC6C-_SDA_BASE_
+lbl_802A7DBC:
+/* 802A7DBC 002A3A1C 4C C6 31 82 */ crclr 6
+/* 802A7DC0 002A3A20 48 00 BA A1 */ bl func_802B3860
+/* 802A7DC4 002A3A24 3F C0 80 2A */ lis r30, abortConnCallback@ha
+/* 802A7DC8 002A3A28 38 7D 01 60 */ addi r3, r29, 0x160
+/* 802A7DCC 002A3A2C 38 BE 7C 48 */ addi r5, r30, abortConnCallback@l
+/* 802A7DD0 002A3A30 38 80 00 00 */ li r4, 0
+/* 802A7DD4 002A3A34 48 00 4B D9 */ bl WPADiSendSetReportType
+/* 802A7DD8 002A3A38 38 60 00 01 */ li r3, 1
+/* 802A7DDC 002A3A3C 38 00 00 00 */ li r0, 0
+/* 802A7DE0 002A3A40 B0 61 02 1A */ sth r3, 0x21a(r1)
+/* 802A7DE4 002A3A44 39 9E 7C 48 */ addi r12, r30, 0x7c48
+/* 802A7DE8 002A3A48 3B C0 00 1A */ li r30, 0x1a
+/* 802A7DEC 002A3A4C 81 41 02 08 */ lwz r10, 0x208(r1)
+/* 802A7DF0 002A3A50 98 01 02 04 */ stb r0, 0x204(r1)
+/* 802A7DF4 002A3A54 81 21 02 0C */ lwz r9, 0x20c(r1)
+/* 802A7DF8 002A3A58 81 61 02 04 */ lwz r11, 0x204(r1)
+/* 802A7DFC 002A3A5C 81 01 02 10 */ lwz r8, 0x210(r1)
+/* 802A7E00 002A3A60 80 E1 02 14 */ lwz r7, 0x214(r1)
+/* 802A7E04 002A3A64 80 C1 02 18 */ lwz r6, 0x218(r1)
+/* 802A7E08 002A3A68 80 A1 02 1C */ lwz r5, 0x21c(r1)
+/* 802A7E0C 002A3A6C 80 81 02 20 */ lwz r4, 0x220(r1)
+/* 802A7E10 002A3A70 80 61 02 24 */ lwz r3, 0x224(r1)
+/* 802A7E14 002A3A74 80 01 02 28 */ lwz r0, 0x228(r1)
+/* 802A7E18 002A3A78 93 C1 02 00 */ stw r30, 0x200(r1)
+/* 802A7E1C 002A3A7C 91 81 02 2C */ stw r12, 0x22c(r1)
+/* 802A7E20 002A3A80 93 C1 02 30 */ stw r30, 0x230(r1)
+/* 802A7E24 002A3A84 91 61 02 34 */ stw r11, 0x234(r1)
+/* 802A7E28 002A3A88 91 41 02 38 */ stw r10, 0x238(r1)
+/* 802A7E2C 002A3A8C 91 21 02 3C */ stw r9, 0x23c(r1)
+/* 802A7E30 002A3A90 91 01 02 40 */ stw r8, 0x240(r1)
+/* 802A7E34 002A3A94 90 E1 02 44 */ stw r7, 0x244(r1)
+/* 802A7E38 002A3A98 90 C1 02 48 */ stw r6, 0x248(r1)
+/* 802A7E3C 002A3A9C 90 A1 02 4C */ stw r5, 0x24c(r1)
+/* 802A7E40 002A3AA0 90 81 02 50 */ stw r4, 0x250(r1)
+/* 802A7E44 002A3AA4 90 61 02 54 */ stw r3, 0x254(r1)
+/* 802A7E48 002A3AA8 90 01 02 58 */ stw r0, 0x258(r1)
+/* 802A7E4C 002A3AAC 91 81 02 5C */ stw r12, 0x25c(r1)
+/* 802A7E50 002A3AB0 4B FC 69 0D */ bl OSDisableInterrupts
+/* 802A7E54 002A3AB4 7C 7E 1B 78 */ mr r30, r3
+/* 802A7E58 002A3AB8 4B FC 69 05 */ bl OSDisableInterrupts
+/* 802A7E5C 002A3ABC 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802A7E60 002A3AC0 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A7E64 002A3AC4 7C 04 00 50 */ subf r0, r4, r0
+/* 802A7E68 002A3AC8 7C 1A 07 75 */ extsb. r26, r0
+/* 802A7E6C 002A3ACC 40 80 00 10 */ bge lbl_802A7E7C
+/* 802A7E70 002A3AD0 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802A7E74 002A3AD4 7C 1A 02 14 */ add r0, r26, r0
+/* 802A7E78 002A3AD8 7C 1A 07 74 */ extsb r26, r0
+lbl_802A7E7C:
+/* 802A7E7C 002A3ADC 4B FC 69 09 */ bl OSRestoreInterrupts
+/* 802A7E80 002A3AE0 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802A7E84 002A3AE4 38 03 FF FF */ addi r0, r3, -1
+/* 802A7E88 002A3AE8 7C 00 D0 40 */ cmplw r0, r26
+/* 802A7E8C 002A3AEC 40 82 00 10 */ bne lbl_802A7E9C
+/* 802A7E90 002A3AF0 7F C3 F3 78 */ mr r3, r30
+/* 802A7E94 002A3AF4 4B FC 68 F1 */ bl OSRestoreInterrupts
+/* 802A7E98 002A3AF8 48 00 00 78 */ b lbl_802A7F10
+lbl_802A7E9C:
+/* 802A7E9C 002A3AFC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A7EA0 002A3B00 38 80 00 00 */ li r4, 0
+/* 802A7EA4 002A3B04 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A7EA8 002A3B08 38 A0 00 30 */ li r5, 0x30
+/* 802A7EAC 002A3B0C 7C 00 07 74 */ extsb r0, r0
+/* 802A7EB0 002A3B10 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A7EB4 002A3B14 7C 63 02 14 */ add r3, r3, r0
+/* 802A7EB8 002A3B18 4B D5 C2 4D */ bl memset
+/* 802A7EBC 002A3B1C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A7EC0 002A3B20 38 81 02 30 */ addi r4, r1, 0x230
+/* 802A7EC4 002A3B24 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A7EC8 002A3B28 38 A0 00 30 */ li r5, 0x30
+/* 802A7ECC 002A3B2C 7C 00 07 74 */ extsb r0, r0
+/* 802A7ED0 002A3B30 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A7ED4 002A3B34 7C 63 02 14 */ add r3, r3, r0
+/* 802A7ED8 002A3B38 4B D5 C1 29 */ bl memcpy
+/* 802A7EDC 002A3B3C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A7EE0 002A3B40 7F C3 F3 78 */ mr r3, r30
+/* 802A7EE4 002A3B44 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802A7EE8 002A3B48 7C 06 07 74 */ extsb r6, r0
+/* 802A7EEC 002A3B4C 38 84 FF FF */ addi r4, r4, -1
+/* 802A7EF0 002A3B50 7C A4 30 50 */ subf r5, r4, r6
+/* 802A7EF4 002A3B54 38 06 00 01 */ addi r0, r6, 1
+/* 802A7EF8 002A3B58 7C 86 20 50 */ subf r4, r6, r4
+/* 802A7EFC 002A3B5C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A7F00 002A3B60 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A7F04 002A3B64 7C 00 20 78 */ andc r0, r0, r4
+/* 802A7F08 002A3B68 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802A7F0C 002A3B6C 4B FC 68 79 */ bl OSRestoreInterrupts
+lbl_802A7F10:
+/* 802A7F10 002A3B70 38 60 00 01 */ li r3, 1
+/* 802A7F14 002A3B74 3B C0 00 11 */ li r30, 0x11
+/* 802A7F18 002A3B78 7C 60 D8 30 */ slw r0, r3, r27
+/* 802A7F1C 002A3B7C B0 61 01 BA */ sth r3, 0x1ba(r1)
+/* 802A7F20 002A3B80 54 00 26 36 */ rlwinm r0, r0, 4, 0x18, 0x1b
+/* 802A7F24 002A3B84 81 41 01 A8 */ lwz r10, 0x1a8(r1)
+/* 802A7F28 002A3B88 98 01 01 A4 */ stb r0, 0x1a4(r1)
+/* 802A7F2C 002A3B8C 3D 80 80 2A */ lis r12, abortConnCallback@ha
+/* 802A7F30 002A3B90 39 8C 7C 48 */ addi r12, r12, abortConnCallback@l
+/* 802A7F34 002A3B94 81 21 01 AC */ lwz r9, 0x1ac(r1)
+/* 802A7F38 002A3B98 81 61 01 A4 */ lwz r11, 0x1a4(r1)
+/* 802A7F3C 002A3B9C 81 01 01 B0 */ lwz r8, 0x1b0(r1)
+/* 802A7F40 002A3BA0 80 E1 01 B4 */ lwz r7, 0x1b4(r1)
+/* 802A7F44 002A3BA4 80 C1 01 B8 */ lwz r6, 0x1b8(r1)
+/* 802A7F48 002A3BA8 80 A1 01 BC */ lwz r5, 0x1bc(r1)
+/* 802A7F4C 002A3BAC 80 81 01 C0 */ lwz r4, 0x1c0(r1)
+/* 802A7F50 002A3BB0 80 61 01 C4 */ lwz r3, 0x1c4(r1)
+/* 802A7F54 002A3BB4 80 01 01 C8 */ lwz r0, 0x1c8(r1)
+/* 802A7F58 002A3BB8 93 C1 01 A0 */ stw r30, 0x1a0(r1)
+/* 802A7F5C 002A3BBC 91 81 01 CC */ stw r12, 0x1cc(r1)
+/* 802A7F60 002A3BC0 93 C1 01 D0 */ stw r30, 0x1d0(r1)
+/* 802A7F64 002A3BC4 91 61 01 D4 */ stw r11, 0x1d4(r1)
+/* 802A7F68 002A3BC8 91 41 01 D8 */ stw r10, 0x1d8(r1)
+/* 802A7F6C 002A3BCC 91 21 01 DC */ stw r9, 0x1dc(r1)
+/* 802A7F70 002A3BD0 91 01 01 E0 */ stw r8, 0x1e0(r1)
+/* 802A7F74 002A3BD4 90 E1 01 E4 */ stw r7, 0x1e4(r1)
+/* 802A7F78 002A3BD8 90 C1 01 E8 */ stw r6, 0x1e8(r1)
+/* 802A7F7C 002A3BDC 90 A1 01 EC */ stw r5, 0x1ec(r1)
+/* 802A7F80 002A3BE0 90 81 01 F0 */ stw r4, 0x1f0(r1)
+/* 802A7F84 002A3BE4 90 61 01 F4 */ stw r3, 0x1f4(r1)
+/* 802A7F88 002A3BE8 90 01 01 F8 */ stw r0, 0x1f8(r1)
+/* 802A7F8C 002A3BEC 91 81 01 FC */ stw r12, 0x1fc(r1)
+/* 802A7F90 002A3BF0 4B FC 67 CD */ bl OSDisableInterrupts
+/* 802A7F94 002A3BF4 7C 7E 1B 78 */ mr r30, r3
+/* 802A7F98 002A3BF8 4B FC 67 C5 */ bl OSDisableInterrupts
+/* 802A7F9C 002A3BFC 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802A7FA0 002A3C00 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A7FA4 002A3C04 7C 04 00 50 */ subf r0, r4, r0
+/* 802A7FA8 002A3C08 7C 1A 07 75 */ extsb. r26, r0
+/* 802A7FAC 002A3C0C 40 80 00 10 */ bge lbl_802A7FBC
+/* 802A7FB0 002A3C10 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802A7FB4 002A3C14 7C 1A 02 14 */ add r0, r26, r0
+/* 802A7FB8 002A3C18 7C 1A 07 74 */ extsb r26, r0
+lbl_802A7FBC:
+/* 802A7FBC 002A3C1C 4B FC 67 C9 */ bl OSRestoreInterrupts
+/* 802A7FC0 002A3C20 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802A7FC4 002A3C24 38 03 FF FF */ addi r0, r3, -1
+/* 802A7FC8 002A3C28 7C 00 D0 40 */ cmplw r0, r26
+/* 802A7FCC 002A3C2C 40 82 00 10 */ bne lbl_802A7FDC
+/* 802A7FD0 002A3C30 7F C3 F3 78 */ mr r3, r30
+/* 802A7FD4 002A3C34 4B FC 67 B1 */ bl OSRestoreInterrupts
+/* 802A7FD8 002A3C38 48 00 00 78 */ b lbl_802A8050
+lbl_802A7FDC:
+/* 802A7FDC 002A3C3C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A7FE0 002A3C40 38 80 00 00 */ li r4, 0
+/* 802A7FE4 002A3C44 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A7FE8 002A3C48 38 A0 00 30 */ li r5, 0x30
+/* 802A7FEC 002A3C4C 7C 00 07 74 */ extsb r0, r0
+/* 802A7FF0 002A3C50 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A7FF4 002A3C54 7C 63 02 14 */ add r3, r3, r0
+/* 802A7FF8 002A3C58 4B D5 C1 0D */ bl memset
+/* 802A7FFC 002A3C5C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8000 002A3C60 38 81 01 D0 */ addi r4, r1, 0x1d0
+/* 802A8004 002A3C64 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8008 002A3C68 38 A0 00 30 */ li r5, 0x30
+/* 802A800C 002A3C6C 7C 00 07 74 */ extsb r0, r0
+/* 802A8010 002A3C70 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8014 002A3C74 7C 63 02 14 */ add r3, r3, r0
+/* 802A8018 002A3C78 4B D5 BF E9 */ bl memcpy
+/* 802A801C 002A3C7C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8020 002A3C80 7F C3 F3 78 */ mr r3, r30
+/* 802A8024 002A3C84 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802A8028 002A3C88 7C 06 07 74 */ extsb r6, r0
+/* 802A802C 002A3C8C 38 84 FF FF */ addi r4, r4, -1
+/* 802A8030 002A3C90 7C A4 30 50 */ subf r5, r4, r6
+/* 802A8034 002A3C94 38 06 00 01 */ addi r0, r6, 1
+/* 802A8038 002A3C98 7C 86 20 50 */ subf r4, r6, r4
+/* 802A803C 002A3C9C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A8040 002A3CA0 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A8044 002A3CA4 7C 00 20 78 */ andc r0, r0, r4
+/* 802A8048 002A3CA8 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802A804C 002A3CAC 4B FC 67 39 */ bl OSRestoreInterrupts
+lbl_802A8050:
+/* 802A8050 002A3CB0 3C C0 80 2A */ lis r6, abortConnCallback@ha
+/* 802A8054 002A3CB4 38 60 00 2A */ li r3, 0x2a
+/* 802A8058 002A3CB8 38 C6 7C 48 */ addi r6, r6, abortConnCallback@l
+/* 802A805C 002A3CBC 39 00 00 38 */ li r8, 0x38
+/* 802A8060 002A3CC0 38 E0 00 17 */ li r7, 0x17
+/* 802A8064 002A3CC4 38 00 00 06 */ li r0, 6
+/* 802A8068 002A3CC8 90 61 00 18 */ stw r3, 0x18(r1)
+/* 802A806C 002A3CCC 38 61 01 44 */ addi r3, r1, 0x144
+/* 802A8070 002A3CD0 38 81 00 18 */ addi r4, r1, 0x18
+/* 802A8074 002A3CD4 38 A0 00 04 */ li r5, 4
+/* 802A8078 002A3CD8 B1 01 00 0C */ sth r8, 0xc(r1)
+/* 802A807C 002A3CDC 90 E1 01 40 */ stw r7, 0x140(r1)
+/* 802A8080 002A3CE0 B0 01 01 5A */ sth r0, 0x15a(r1)
+/* 802A8084 002A3CE4 90 C1 01 6C */ stw r6, 0x16c(r1)
+/* 802A8088 002A3CE8 4B D5 BF 79 */ bl memcpy
+/* 802A808C 002A3CEC 38 61 01 48 */ addi r3, r1, 0x148
+/* 802A8090 002A3CF0 38 81 00 0C */ addi r4, r1, 0xc
+/* 802A8094 002A3CF4 38 A0 00 02 */ li r5, 2
+/* 802A8098 002A3CF8 4B D5 BF 69 */ bl memcpy
+/* 802A809C 002A3CFC A0 01 00 0C */ lhz r0, 0xc(r1)
+/* 802A80A0 002A3D00 3B 7D 09 34 */ addi r27, r29, 0x934
+/* 802A80A4 002A3D04 81 81 00 18 */ lwz r12, 0x18(r1)
+/* 802A80A8 002A3D08 B0 01 01 60 */ sth r0, 0x160(r1)
+/* 802A80AC 002A3D0C 81 61 01 40 */ lwz r11, 0x140(r1)
+/* 802A80B0 002A3D10 81 41 01 44 */ lwz r10, 0x144(r1)
+/* 802A80B4 002A3D14 81 21 01 48 */ lwz r9, 0x148(r1)
+/* 802A80B8 002A3D18 81 01 01 4C */ lwz r8, 0x14c(r1)
+/* 802A80BC 002A3D1C 80 E1 01 50 */ lwz r7, 0x150(r1)
+/* 802A80C0 002A3D20 80 C1 01 54 */ lwz r6, 0x154(r1)
+/* 802A80C4 002A3D24 80 A1 01 58 */ lwz r5, 0x158(r1)
+/* 802A80C8 002A3D28 80 81 01 60 */ lwz r4, 0x160(r1)
+/* 802A80CC 002A3D2C 80 61 01 68 */ lwz r3, 0x168(r1)
+/* 802A80D0 002A3D30 80 01 01 6C */ lwz r0, 0x16c(r1)
+/* 802A80D4 002A3D34 93 61 01 5C */ stw r27, 0x15c(r1)
+/* 802A80D8 002A3D38 91 81 01 64 */ stw r12, 0x164(r1)
+/* 802A80DC 002A3D3C 91 61 01 70 */ stw r11, 0x170(r1)
+/* 802A80E0 002A3D40 91 41 01 74 */ stw r10, 0x174(r1)
+/* 802A80E4 002A3D44 91 21 01 78 */ stw r9, 0x178(r1)
+/* 802A80E8 002A3D48 91 01 01 7C */ stw r8, 0x17c(r1)
+/* 802A80EC 002A3D4C 90 E1 01 80 */ stw r7, 0x180(r1)
+/* 802A80F0 002A3D50 90 C1 01 84 */ stw r6, 0x184(r1)
+/* 802A80F4 002A3D54 90 A1 01 88 */ stw r5, 0x188(r1)
+/* 802A80F8 002A3D58 93 61 01 8C */ stw r27, 0x18c(r1)
+/* 802A80FC 002A3D5C 90 81 01 90 */ stw r4, 0x190(r1)
+/* 802A8100 002A3D60 91 81 01 94 */ stw r12, 0x194(r1)
+/* 802A8104 002A3D64 90 61 01 98 */ stw r3, 0x198(r1)
+/* 802A8108 002A3D68 90 01 01 9C */ stw r0, 0x19c(r1)
+/* 802A810C 002A3D6C 4B FC 66 51 */ bl OSDisableInterrupts
+/* 802A8110 002A3D70 7C 7E 1B 78 */ mr r30, r3
+/* 802A8114 002A3D74 4B FC 66 49 */ bl OSDisableInterrupts
+/* 802A8118 002A3D78 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802A811C 002A3D7C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8120 002A3D80 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8124 002A3D84 7C 1A 07 75 */ extsb. r26, r0
+/* 802A8128 002A3D88 40 80 00 10 */ bge lbl_802A8138
+/* 802A812C 002A3D8C 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802A8130 002A3D90 7C 1A 02 14 */ add r0, r26, r0
+/* 802A8134 002A3D94 7C 1A 07 74 */ extsb r26, r0
+lbl_802A8138:
+/* 802A8138 002A3D98 4B FC 66 4D */ bl OSRestoreInterrupts
+/* 802A813C 002A3D9C 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802A8140 002A3DA0 38 03 FF FF */ addi r0, r3, -1
+/* 802A8144 002A3DA4 7C 00 D0 40 */ cmplw r0, r26
+/* 802A8148 002A3DA8 40 82 00 10 */ bne lbl_802A8158
+/* 802A814C 002A3DAC 7F C3 F3 78 */ mr r3, r30
+/* 802A8150 002A3DB0 4B FC 66 35 */ bl OSRestoreInterrupts
+/* 802A8154 002A3DB4 48 00 00 78 */ b lbl_802A81CC
+lbl_802A8158:
+/* 802A8158 002A3DB8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A815C 002A3DBC 38 80 00 00 */ li r4, 0
+/* 802A8160 002A3DC0 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8164 002A3DC4 38 A0 00 30 */ li r5, 0x30
+/* 802A8168 002A3DC8 7C 00 07 74 */ extsb r0, r0
+/* 802A816C 002A3DCC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8170 002A3DD0 7C 63 02 14 */ add r3, r3, r0
+/* 802A8174 002A3DD4 4B D5 BF 91 */ bl memset
+/* 802A8178 002A3DD8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A817C 002A3DDC 38 81 01 70 */ addi r4, r1, 0x170
+/* 802A8180 002A3DE0 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8184 002A3DE4 38 A0 00 30 */ li r5, 0x30
+/* 802A8188 002A3DE8 7C 00 07 74 */ extsb r0, r0
+/* 802A818C 002A3DEC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8190 002A3DF0 7C 63 02 14 */ add r3, r3, r0
+/* 802A8194 002A3DF4 4B D5 BE 6D */ bl memcpy
+/* 802A8198 002A3DF8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A819C 002A3DFC 7F C3 F3 78 */ mr r3, r30
+/* 802A81A0 002A3E00 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802A81A4 002A3E04 7C 06 07 74 */ extsb r6, r0
+/* 802A81A8 002A3E08 38 84 FF FF */ addi r4, r4, -1
+/* 802A81AC 002A3E0C 7C A4 30 50 */ subf r5, r4, r6
+/* 802A81B0 002A3E10 38 06 00 01 */ addi r0, r6, 1
+/* 802A81B4 002A3E14 7C 86 20 50 */ subf r4, r6, r4
+/* 802A81B8 002A3E18 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A81BC 002A3E1C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A81C0 002A3E20 7C 00 20 78 */ andc r0, r0, r4
+/* 802A81C4 002A3E24 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802A81C8 002A3E28 4B FC 65 BD */ bl OSRestoreInterrupts
+lbl_802A81CC:
+/* 802A81CC 002A3E2C 3C C0 80 2A */ lis r6, abortConnCallback@ha
+/* 802A81D0 002A3E30 38 60 00 62 */ li r3, 0x62
+/* 802A81D4 002A3E34 38 C6 7C 48 */ addi r6, r6, abortConnCallback@l
+/* 802A81D8 002A3E38 39 00 00 38 */ li r8, 0x38
+/* 802A81DC 002A3E3C 38 E0 00 17 */ li r7, 0x17
+/* 802A81E0 002A3E40 38 00 00 06 */ li r0, 6
+/* 802A81E4 002A3E44 90 61 00 14 */ stw r3, 0x14(r1)
+/* 802A81E8 002A3E48 38 61 00 E4 */ addi r3, r1, 0xe4
+/* 802A81EC 002A3E4C 38 81 00 14 */ addi r4, r1, 0x14
+/* 802A81F0 002A3E50 38 A0 00 04 */ li r5, 4
+/* 802A81F4 002A3E54 B1 01 00 0A */ sth r8, 0xa(r1)
+/* 802A81F8 002A3E58 90 E1 00 E0 */ stw r7, 0xe0(r1)
+/* 802A81FC 002A3E5C B0 01 00 FA */ sth r0, 0xfa(r1)
+/* 802A8200 002A3E60 90 C1 01 0C */ stw r6, 0x10c(r1)
+/* 802A8204 002A3E64 4B D5 BD FD */ bl memcpy
+/* 802A8208 002A3E68 38 61 00 E8 */ addi r3, r1, 0xe8
+/* 802A820C 002A3E6C 38 81 00 0A */ addi r4, r1, 0xa
+/* 802A8210 002A3E70 38 A0 00 02 */ li r5, 2
+/* 802A8214 002A3E74 4B D5 BD ED */ bl memcpy
+/* 802A8218 002A3E78 A0 01 00 0A */ lhz r0, 0xa(r1)
+/* 802A821C 002A3E7C 3B 7D 09 34 */ addi r27, r29, 0x934
+/* 802A8220 002A3E80 81 81 00 14 */ lwz r12, 0x14(r1)
+/* 802A8224 002A3E84 B0 01 01 00 */ sth r0, 0x100(r1)
+/* 802A8228 002A3E88 81 61 00 E0 */ lwz r11, 0xe0(r1)
+/* 802A822C 002A3E8C 81 41 00 E4 */ lwz r10, 0xe4(r1)
+/* 802A8230 002A3E90 81 21 00 E8 */ lwz r9, 0xe8(r1)
+/* 802A8234 002A3E94 81 01 00 EC */ lwz r8, 0xec(r1)
+/* 802A8238 002A3E98 80 E1 00 F0 */ lwz r7, 0xf0(r1)
+/* 802A823C 002A3E9C 80 C1 00 F4 */ lwz r6, 0xf4(r1)
+/* 802A8240 002A3EA0 80 A1 00 F8 */ lwz r5, 0xf8(r1)
+/* 802A8244 002A3EA4 80 81 01 00 */ lwz r4, 0x100(r1)
+/* 802A8248 002A3EA8 80 61 01 08 */ lwz r3, 0x108(r1)
+/* 802A824C 002A3EAC 80 01 01 0C */ lwz r0, 0x10c(r1)
+/* 802A8250 002A3EB0 93 61 00 FC */ stw r27, 0xfc(r1)
+/* 802A8254 002A3EB4 91 81 01 04 */ stw r12, 0x104(r1)
+/* 802A8258 002A3EB8 91 61 01 10 */ stw r11, 0x110(r1)
+/* 802A825C 002A3EBC 91 41 01 14 */ stw r10, 0x114(r1)
+/* 802A8260 002A3EC0 91 21 01 18 */ stw r9, 0x118(r1)
+/* 802A8264 002A3EC4 91 01 01 1C */ stw r8, 0x11c(r1)
+/* 802A8268 002A3EC8 90 E1 01 20 */ stw r7, 0x120(r1)
+/* 802A826C 002A3ECC 90 C1 01 24 */ stw r6, 0x124(r1)
+/* 802A8270 002A3ED0 90 A1 01 28 */ stw r5, 0x128(r1)
+/* 802A8274 002A3ED4 93 61 01 2C */ stw r27, 0x12c(r1)
+/* 802A8278 002A3ED8 90 81 01 30 */ stw r4, 0x130(r1)
+/* 802A827C 002A3EDC 91 81 01 34 */ stw r12, 0x134(r1)
+/* 802A8280 002A3EE0 90 61 01 38 */ stw r3, 0x138(r1)
+/* 802A8284 002A3EE4 90 01 01 3C */ stw r0, 0x13c(r1)
+/* 802A8288 002A3EE8 4B FC 64 D5 */ bl OSDisableInterrupts
+/* 802A828C 002A3EEC 7C 7E 1B 78 */ mr r30, r3
+/* 802A8290 002A3EF0 4B FC 64 CD */ bl OSDisableInterrupts
+/* 802A8294 002A3EF4 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802A8298 002A3EF8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A829C 002A3EFC 7C 04 00 50 */ subf r0, r4, r0
+/* 802A82A0 002A3F00 7C 1A 07 75 */ extsb. r26, r0
+/* 802A82A4 002A3F04 40 80 00 10 */ bge lbl_802A82B4
+/* 802A82A8 002A3F08 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802A82AC 002A3F0C 7C 1A 02 14 */ add r0, r26, r0
+/* 802A82B0 002A3F10 7C 1A 07 74 */ extsb r26, r0
+lbl_802A82B4:
+/* 802A82B4 002A3F14 4B FC 64 D1 */ bl OSRestoreInterrupts
+/* 802A82B8 002A3F18 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802A82BC 002A3F1C 38 03 FF FF */ addi r0, r3, -1
+/* 802A82C0 002A3F20 7C 00 D0 40 */ cmplw r0, r26
+/* 802A82C4 002A3F24 40 82 00 10 */ bne lbl_802A82D4
+/* 802A82C8 002A3F28 7F C3 F3 78 */ mr r3, r30
+/* 802A82CC 002A3F2C 4B FC 64 B9 */ bl OSRestoreInterrupts
+/* 802A82D0 002A3F30 48 00 00 78 */ b lbl_802A8348
+lbl_802A82D4:
+/* 802A82D4 002A3F34 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A82D8 002A3F38 38 80 00 00 */ li r4, 0
+/* 802A82DC 002A3F3C 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A82E0 002A3F40 38 A0 00 30 */ li r5, 0x30
+/* 802A82E4 002A3F44 7C 00 07 74 */ extsb r0, r0
+/* 802A82E8 002A3F48 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A82EC 002A3F4C 7C 63 02 14 */ add r3, r3, r0
+/* 802A82F0 002A3F50 4B D5 BE 15 */ bl memset
+/* 802A82F4 002A3F54 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A82F8 002A3F58 38 81 01 10 */ addi r4, r1, 0x110
+/* 802A82FC 002A3F5C 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8300 002A3F60 38 A0 00 30 */ li r5, 0x30
+/* 802A8304 002A3F64 7C 00 07 74 */ extsb r0, r0
+/* 802A8308 002A3F68 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A830C 002A3F6C 7C 63 02 14 */ add r3, r3, r0
+/* 802A8310 002A3F70 4B D5 BC F1 */ bl memcpy
+/* 802A8314 002A3F74 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8318 002A3F78 7F C3 F3 78 */ mr r3, r30
+/* 802A831C 002A3F7C 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802A8320 002A3F80 7C 06 07 74 */ extsb r6, r0
+/* 802A8324 002A3F84 38 84 FF FF */ addi r4, r4, -1
+/* 802A8328 002A3F88 7C A4 30 50 */ subf r5, r4, r6
+/* 802A832C 002A3F8C 38 06 00 01 */ addi r0, r6, 1
+/* 802A8330 002A3F90 7C 86 20 50 */ subf r4, r6, r4
+/* 802A8334 002A3F94 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A8338 002A3F98 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A833C 002A3F9C 7C 00 20 78 */ andc r0, r0, r4
+/* 802A8340 002A3FA0 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802A8344 002A3FA4 4B FC 64 41 */ bl OSRestoreInterrupts
+lbl_802A8348:
+/* 802A8348 002A3FA8 3C C0 80 2A */ lis r6, setupCallback@ha
+/* 802A834C 002A3FAC 38 E0 00 17 */ li r7, 0x17
+/* 802A8350 002A3FB0 38 C6 7B 74 */ addi r6, r6, setupCallback@l
+/* 802A8354 002A3FB4 38 00 00 06 */ li r0, 6
+/* 802A8358 002A3FB8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A835C 002A3FBC 38 61 00 84 */ addi r3, r1, 0x84
+/* 802A8360 002A3FC0 38 81 00 10 */ addi r4, r1, 0x10
+/* 802A8364 002A3FC4 38 A0 00 04 */ li r5, 4
+/* 802A8368 002A3FC8 B3 E1 00 08 */ sth r31, 8(r1)
+/* 802A836C 002A3FCC 90 E1 00 80 */ stw r7, 0x80(r1)
+/* 802A8370 002A3FD0 B0 01 00 9A */ sth r0, 0x9a(r1)
+/* 802A8374 002A3FD4 90 C1 00 AC */ stw r6, 0xac(r1)
+/* 802A8378 002A3FD8 4B D5 BC 89 */ bl memcpy
+/* 802A837C 002A3FDC 38 61 00 88 */ addi r3, r1, 0x88
+/* 802A8380 002A3FE0 38 81 00 08 */ addi r4, r1, 8
+/* 802A8384 002A3FE4 38 A0 00 02 */ li r5, 2
+/* 802A8388 002A3FE8 4B D5 BC 79 */ bl memcpy
+/* 802A838C 002A3FEC A0 01 00 08 */ lhz r0, 8(r1)
+/* 802A8390 002A3FF0 3B 7D 09 34 */ addi r27, r29, 0x934
+/* 802A8394 002A3FF4 81 81 00 10 */ lwz r12, 0x10(r1)
+/* 802A8398 002A3FF8 B0 01 00 A0 */ sth r0, 0xa0(r1)
+/* 802A839C 002A3FFC 81 61 00 80 */ lwz r11, 0x80(r1)
+/* 802A83A0 002A4000 81 41 00 84 */ lwz r10, 0x84(r1)
+/* 802A83A4 002A4004 81 21 00 88 */ lwz r9, 0x88(r1)
+/* 802A83A8 002A4008 81 01 00 8C */ lwz r8, 0x8c(r1)
+/* 802A83AC 002A400C 80 E1 00 90 */ lwz r7, 0x90(r1)
+/* 802A83B0 002A4010 80 C1 00 94 */ lwz r6, 0x94(r1)
+/* 802A83B4 002A4014 80 A1 00 98 */ lwz r5, 0x98(r1)
+/* 802A83B8 002A4018 80 81 00 A0 */ lwz r4, 0xa0(r1)
+/* 802A83BC 002A401C 80 61 00 A8 */ lwz r3, 0xa8(r1)
+/* 802A83C0 002A4020 80 01 00 AC */ lwz r0, 0xac(r1)
+/* 802A83C4 002A4024 93 61 00 9C */ stw r27, 0x9c(r1)
+/* 802A83C8 002A4028 91 81 00 A4 */ stw r12, 0xa4(r1)
+/* 802A83CC 002A402C 91 61 00 B0 */ stw r11, 0xb0(r1)
+/* 802A83D0 002A4030 91 41 00 B4 */ stw r10, 0xb4(r1)
+/* 802A83D4 002A4034 91 21 00 B8 */ stw r9, 0xb8(r1)
+/* 802A83D8 002A4038 91 01 00 BC */ stw r8, 0xbc(r1)
+/* 802A83DC 002A403C 90 E1 00 C0 */ stw r7, 0xc0(r1)
+/* 802A83E0 002A4040 90 C1 00 C4 */ stw r6, 0xc4(r1)
+/* 802A83E4 002A4044 90 A1 00 C8 */ stw r5, 0xc8(r1)
+/* 802A83E8 002A4048 93 61 00 CC */ stw r27, 0xcc(r1)
+/* 802A83EC 002A404C 90 81 00 D0 */ stw r4, 0xd0(r1)
+/* 802A83F0 002A4050 91 81 00 D4 */ stw r12, 0xd4(r1)
+/* 802A83F4 002A4054 90 61 00 D8 */ stw r3, 0xd8(r1)
+/* 802A83F8 002A4058 90 01 00 DC */ stw r0, 0xdc(r1)
+/* 802A83FC 002A405C 4B FC 63 61 */ bl OSDisableInterrupts
+/* 802A8400 002A4060 7C 7A 1B 78 */ mr r26, r3
+/* 802A8404 002A4064 4B FC 63 59 */ bl OSDisableInterrupts
+/* 802A8408 002A4068 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802A840C 002A406C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8410 002A4070 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8414 002A4074 7C 1B 07 75 */ extsb. r27, r0
+/* 802A8418 002A4078 40 80 00 10 */ bge lbl_802A8428
+/* 802A841C 002A407C 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802A8420 002A4080 7C 1B 02 14 */ add r0, r27, r0
+/* 802A8424 002A4084 7C 1B 07 74 */ extsb r27, r0
+lbl_802A8428:
+/* 802A8428 002A4088 4B FC 63 5D */ bl OSRestoreInterrupts
+/* 802A842C 002A408C 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802A8430 002A4090 38 03 FF FF */ addi r0, r3, -1
+/* 802A8434 002A4094 7C 00 D8 40 */ cmplw r0, r27
+/* 802A8438 002A4098 40 82 00 10 */ bne lbl_802A8448
+/* 802A843C 002A409C 7F 43 D3 78 */ mr r3, r26
+/* 802A8440 002A40A0 4B FC 63 45 */ bl OSRestoreInterrupts
+/* 802A8444 002A40A4 48 00 00 78 */ b lbl_802A84BC
+lbl_802A8448:
+/* 802A8448 002A40A8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A844C 002A40AC 38 80 00 00 */ li r4, 0
+/* 802A8450 002A40B0 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8454 002A40B4 38 A0 00 30 */ li r5, 0x30
+/* 802A8458 002A40B8 7C 00 07 74 */ extsb r0, r0
+/* 802A845C 002A40BC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8460 002A40C0 7C 63 02 14 */ add r3, r3, r0
+/* 802A8464 002A40C4 4B D5 BC A1 */ bl memset
+/* 802A8468 002A40C8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A846C 002A40CC 38 81 00 B0 */ addi r4, r1, 0xb0
+/* 802A8470 002A40D0 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8474 002A40D4 38 A0 00 30 */ li r5, 0x30
+/* 802A8478 002A40D8 7C 00 07 74 */ extsb r0, r0
+/* 802A847C 002A40DC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8480 002A40E0 7C 63 02 14 */ add r3, r3, r0
+/* 802A8484 002A40E4 4B D5 BB 7D */ bl memcpy
+/* 802A8488 002A40E8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A848C 002A40EC 7F 43 D3 78 */ mr r3, r26
+/* 802A8490 002A40F0 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802A8494 002A40F4 7C 06 07 74 */ extsb r6, r0
+/* 802A8498 002A40F8 38 84 FF FF */ addi r4, r4, -1
+/* 802A849C 002A40FC 7C A4 30 50 */ subf r5, r4, r6
+/* 802A84A0 002A4100 38 06 00 01 */ addi r0, r6, 1
+/* 802A84A4 002A4104 7C 86 20 50 */ subf r4, r6, r4
+/* 802A84A8 002A4108 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A84AC 002A410C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A84B0 002A4110 7C 00 20 78 */ andc r0, r0, r4
+/* 802A84B4 002A4114 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802A84B8 002A4118 4B FC 62 CD */ bl OSRestoreInterrupts
+lbl_802A84BC:
+/* 802A84BC 002A411C 39 60 00 00 */ li r11, 0
+/* 802A84C0 002A4120 38 00 00 01 */ li r0, 1
+/* 802A84C4 002A4124 B0 01 00 3A */ sth r0, 0x3a(r1)
+/* 802A84C8 002A4128 39 80 00 15 */ li r12, 0x15
+/* 802A84CC 002A412C 81 21 00 28 */ lwz r9, 0x28(r1)
+/* 802A84D0 002A4130 99 61 00 24 */ stb r11, 0x24(r1)
+/* 802A84D4 002A4134 81 01 00 2C */ lwz r8, 0x2c(r1)
+/* 802A84D8 002A4138 81 41 00 24 */ lwz r10, 0x24(r1)
+/* 802A84DC 002A413C 80 E1 00 30 */ lwz r7, 0x30(r1)
+/* 802A84E0 002A4140 80 C1 00 34 */ lwz r6, 0x34(r1)
+/* 802A84E4 002A4144 80 A1 00 38 */ lwz r5, 0x38(r1)
+/* 802A84E8 002A4148 80 81 00 3C */ lwz r4, 0x3c(r1)
+/* 802A84EC 002A414C 80 61 00 40 */ lwz r3, 0x40(r1)
+/* 802A84F0 002A4150 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802A84F4 002A4154 91 81 00 20 */ stw r12, 0x20(r1)
+/* 802A84F8 002A4158 91 61 00 4C */ stw r11, 0x4c(r1)
+/* 802A84FC 002A415C 91 61 00 48 */ stw r11, 0x48(r1)
+/* 802A8500 002A4160 91 81 00 50 */ stw r12, 0x50(r1)
+/* 802A8504 002A4164 91 41 00 54 */ stw r10, 0x54(r1)
+/* 802A8508 002A4168 91 21 00 58 */ stw r9, 0x58(r1)
+/* 802A850C 002A416C 91 01 00 5C */ stw r8, 0x5c(r1)
+/* 802A8510 002A4170 90 E1 00 60 */ stw r7, 0x60(r1)
+/* 802A8514 002A4174 90 C1 00 64 */ stw r6, 0x64(r1)
+/* 802A8518 002A4178 90 A1 00 68 */ stw r5, 0x68(r1)
+/* 802A851C 002A417C 90 81 00 6C */ stw r4, 0x6c(r1)
+/* 802A8520 002A4180 90 61 00 70 */ stw r3, 0x70(r1)
+/* 802A8524 002A4184 90 01 00 74 */ stw r0, 0x74(r1)
+/* 802A8528 002A4188 91 61 00 78 */ stw r11, 0x78(r1)
+/* 802A852C 002A418C 91 61 00 7C */ stw r11, 0x7c(r1)
+/* 802A8530 002A4190 4B FC 62 2D */ bl OSDisableInterrupts
+/* 802A8534 002A4194 7C 7A 1B 78 */ mr r26, r3
+/* 802A8538 002A4198 4B FC 62 25 */ bl OSDisableInterrupts
+/* 802A853C 002A419C 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802A8540 002A41A0 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8544 002A41A4 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8548 002A41A8 7C 1B 07 75 */ extsb. r27, r0
+/* 802A854C 002A41AC 40 80 00 10 */ bge lbl_802A855C
+/* 802A8550 002A41B0 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802A8554 002A41B4 7C 1B 02 14 */ add r0, r27, r0
+/* 802A8558 002A41B8 7C 1B 07 74 */ extsb r27, r0
+lbl_802A855C:
+/* 802A855C 002A41BC 4B FC 62 29 */ bl OSRestoreInterrupts
+/* 802A8560 002A41C0 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802A8564 002A41C4 38 03 FF FF */ addi r0, r3, -1
+/* 802A8568 002A41C8 7C 00 D8 40 */ cmplw r0, r27
+/* 802A856C 002A41CC 40 82 00 10 */ bne lbl_802A857C
+/* 802A8570 002A41D0 7F 43 D3 78 */ mr r3, r26
+/* 802A8574 002A41D4 4B FC 62 11 */ bl OSRestoreInterrupts
+/* 802A8578 002A41D8 48 00 00 78 */ b lbl_802A85F0
+lbl_802A857C:
+/* 802A857C 002A41DC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A8580 002A41E0 38 80 00 00 */ li r4, 0
+/* 802A8584 002A41E4 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A8588 002A41E8 38 A0 00 30 */ li r5, 0x30
+/* 802A858C 002A41EC 7C 00 07 74 */ extsb r0, r0
+/* 802A8590 002A41F0 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8594 002A41F4 7C 63 02 14 */ add r3, r3, r0
+/* 802A8598 002A41F8 4B D5 BB 6D */ bl memset
+/* 802A859C 002A41FC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A85A0 002A4200 38 81 00 50 */ addi r4, r1, 0x50
+/* 802A85A4 002A4204 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802A85A8 002A4208 38 A0 00 30 */ li r5, 0x30
+/* 802A85AC 002A420C 7C 00 07 74 */ extsb r0, r0
+/* 802A85B0 002A4210 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A85B4 002A4214 7C 63 02 14 */ add r3, r3, r0
+/* 802A85B8 002A4218 4B D5 BA 49 */ bl memcpy
+/* 802A85BC 002A421C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802A85C0 002A4220 7F 43 D3 78 */ mr r3, r26
+/* 802A85C4 002A4224 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802A85C8 002A4228 7C 06 07 74 */ extsb r6, r0
+/* 802A85CC 002A422C 38 84 FF FF */ addi r4, r4, -1
+/* 802A85D0 002A4230 7C A4 30 50 */ subf r5, r4, r6
+/* 802A85D4 002A4234 38 06 00 01 */ addi r0, r6, 1
+/* 802A85D8 002A4238 7C 86 20 50 */ subf r4, r6, r4
+/* 802A85DC 002A423C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A85E0 002A4240 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A85E4 002A4244 7C 00 20 78 */ andc r0, r0, r4
+/* 802A85E8 002A4248 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802A85EC 002A424C 4B FC 61 99 */ bl OSRestoreInterrupts
+lbl_802A85F0:
+/* 802A85F0 002A4250 39 61 02 80 */ addi r11, r1, 0x280
+/* 802A85F4 002A4254 4B F1 EB 7D */ bl _restgpr_26
+/* 802A85F8 002A4258 80 01 02 84 */ lwz r0, 0x284(r1)
+/* 802A85FC 002A425C 7C 08 03 A6 */ mtlr r0
+/* 802A8600 002A4260 38 21 02 80 */ addi r1, r1, 0x280
+/* 802A8604 002A4264 4E 80 00 20 */ blr
+
+.global WPADiRetrieveChannel
+WPADiRetrieveChannel:
+/* 802A8608 002A4268 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A860C 002A426C 7C 08 02 A6 */ mflr r0
+/* 802A8610 002A4270 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A8614 002A4274 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A8618 002A4278 4B F1 EB 11 */ bl _savegpr_27
+/* 802A861C 002A427C 48 01 08 CD */ bl func_802B8EE8
+/* 802A8620 002A4280 3F E0 80 54 */ lis r31, lbl_8053AC28@ha
+/* 802A8624 002A4284 7C 7C 1B 78 */ mr r28, r3
+/* 802A8628 002A4288 3B FF AC 28 */ addi r31, r31, lbl_8053AC28@l
+/* 802A862C 002A428C 3B 60 00 00 */ li r27, 0
+/* 802A8630 002A4290 3B C0 00 00 */ li r30, 0
+/* 802A8634 002A4294 3B AD AE 50 */ addi r29, r13, lbl_80640110-_SDA_BASE_
+lbl_802A8638:
+/* 802A8638 002A4298 7C 7E FA 14 */ add r3, r30, r31
+/* 802A863C 002A429C 7F 84 E3 78 */ mr r4, r28
+/* 802A8640 002A42A0 38 63 02 BD */ addi r3, r3, 0x2bd
+/* 802A8644 002A42A4 38 A0 00 06 */ li r5, 6
+/* 802A8648 002A42A8 4B F2 1D 51 */ bl memcmp
+/* 802A864C 002A42AC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A8650 002A42B0 40 82 00 24 */ bne lbl_802A8674
+/* 802A8654 002A42B4 88 1D 00 00 */ lbz r0, 0(r29)
+/* 802A8658 002A42B8 2C 00 00 00 */ cmpwi r0, 0
+/* 802A865C 002A42BC 40 82 00 18 */ bne lbl_802A8674
+/* 802A8660 002A42C0 38 00 00 01 */ li r0, 1
+/* 802A8664 002A42C4 38 6D AE 50 */ addi r3, r13, lbl_80640110-_SDA_BASE_
+/* 802A8668 002A42C8 7C 03 D9 AE */ stbx r0, r3, r27
+/* 802A866C 002A42CC 7F 63 DB 78 */ mr r3, r27
+/* 802A8670 002A42D0 48 00 00 80 */ b lbl_802A86F0
+lbl_802A8674:
+/* 802A8674 002A42D4 3B 7B 00 01 */ addi r27, r27, 1
+/* 802A8678 002A42D8 3B BD 00 01 */ addi r29, r29, 1
+/* 802A867C 002A42DC 2C 1B 00 04 */ cmpwi r27, 4
+/* 802A8680 002A42E0 3B DE 00 46 */ addi r30, r30, 0x46
+/* 802A8684 002A42E4 41 80 FF B4 */ blt lbl_802A8638
+/* 802A8688 002A42E8 38 00 00 04 */ li r0, 4
+/* 802A868C 002A42EC 3B A0 00 00 */ li r29, 0
+/* 802A8690 002A42F0 38 6D AE 50 */ addi r3, r13, lbl_80640110-_SDA_BASE_
+/* 802A8694 002A42F4 7C 09 03 A6 */ mtctr r0
+lbl_802A8698:
+/* 802A8698 002A42F8 88 03 00 00 */ lbz r0, 0(r3)
+/* 802A869C 002A42FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A86A0 002A4300 40 82 00 40 */ bne lbl_802A86E0
+/* 802A86A4 002A4304 38 1D 00 0A */ addi r0, r29, 0xa
+/* 802A86A8 002A4308 3C 60 80 54 */ lis r3, lbl_8053AC28@ha
+/* 802A86AC 002A430C 1C 00 00 46 */ mulli r0, r0, 0x46
+/* 802A86B0 002A4310 3B E0 00 01 */ li r31, 1
+/* 802A86B4 002A4314 38 63 AC 28 */ addi r3, r3, lbl_8053AC28@l
+/* 802A86B8 002A4318 38 8D AE 50 */ addi r4, r13, lbl_80640110-_SDA_BASE_
+/* 802A86BC 002A431C 7C 63 02 14 */ add r3, r3, r0
+/* 802A86C0 002A4320 7F E4 E9 AE */ stbx r31, r4, r29
+/* 802A86C4 002A4324 7F 84 E3 78 */ mr r4, r28
+/* 802A86C8 002A4328 38 A0 00 06 */ li r5, 6
+/* 802A86CC 002A432C 38 63 00 01 */ addi r3, r3, 1
+/* 802A86D0 002A4330 4B D5 B9 31 */ bl memcpy
+/* 802A86D4 002A4334 9B ED AE 59 */ stb r31, lbl_80640119-_SDA_BASE_(r13)
+/* 802A86D8 002A4338 7F A3 EB 78 */ mr r3, r29
+/* 802A86DC 002A433C 48 00 00 14 */ b lbl_802A86F0
+lbl_802A86E0:
+/* 802A86E0 002A4340 38 63 00 01 */ addi r3, r3, 1
+/* 802A86E4 002A4344 3B BD 00 01 */ addi r29, r29, 1
+/* 802A86E8 002A4348 42 00 FF B0 */ bdnz lbl_802A8698
+/* 802A86EC 002A434C 38 60 FF FF */ li r3, -1
+lbl_802A86F0:
+/* 802A86F0 002A4350 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A86F4 002A4354 4B F1 EA 81 */ bl _restgpr_27
+/* 802A86F8 002A4358 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A86FC 002A435C 7C 08 03 A6 */ mtlr r0
+/* 802A8700 002A4360 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A8704 002A4364 4E 80 00 20 */ blr
+WPADiConnCallback:
+/* 802A8708 002A4368 94 21 FF 40 */ stwu r1, -0xc0(r1)
+/* 802A870C 002A436C 7C 08 02 A6 */ mflr r0
+/* 802A8710 002A4370 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 802A8714 002A4374 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 802A8718 002A4378 4B F1 EA 0D */ bl _savegpr_26
+/* 802A871C 002A437C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A8720 002A4380 3F E0 80 44 */ lis r31, lbl_8043BFB8@ha
+/* 802A8724 002A4384 7C 7A 1B 78 */ mr r26, r3
+/* 802A8728 002A4388 3B FF BF B8 */ addi r31, r31, lbl_8043BFB8@l
+/* 802A872C 002A438C 41 82 01 E0 */ beq lbl_802A890C
+/* 802A8730 002A4390 38 7F 01 5C */ addi r3, r31, 0x15c
+/* 802A8734 002A4394 4C C6 31 82 */ crclr 6
+/* 802A8738 002A4398 48 00 B1 29 */ bl func_802B3860
+/* 802A873C 002A439C 7F 43 D3 78 */ mr r3, r26
+/* 802A8740 002A43A0 4B FF FE C9 */ bl WPADiRetrieveChannel
+/* 802A8744 002A43A4 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A8748 002A43A8 3C 80 80 53 */ lis r4, lbl_80537D80@ha
+/* 802A874C 002A43AC 38 84 7D 80 */ addi r4, r4, lbl_80537D80@l
+/* 802A8750 002A43B0 54 60 10 3A */ slwi r0, r3, 2
+/* 802A8754 002A43B4 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A8758 002A43B8 7C 64 D1 AE */ stbx r3, r4, r26
+/* 802A875C 002A43BC 7F 85 00 2E */ lwzx r28, r5, r0
+/* 802A8760 002A43C0 4B FF EE AD */ bl __ClearControlBlock
+/* 802A8764 002A43C4 9B 5C 08 C3 */ stb r26, 0x8c3(r28)
+/* 802A8768 002A43C8 39 60 00 00 */ li r11, 0
+/* 802A876C 002A43CC 3C C0 80 2A */ lis r6, firmwareCheckCallback@ha
+/* 802A8770 002A43D0 39 40 00 01 */ li r10, 1
+/* 802A8774 002A43D4 99 7C 08 C1 */ stb r11, 0x8c1(r28)
+/* 802A8778 002A43D8 39 20 00 64 */ li r9, 0x64
+/* 802A877C 002A43DC 38 C6 7D 2C */ addi r6, r6, firmwareCheckCallback@l
+/* 802A8780 002A43E0 39 00 17 70 */ li r8, 0x1770
+/* 802A8784 002A43E4 91 7C 08 B8 */ stw r11, 0x8b8(r28)
+/* 802A8788 002A43E8 38 E0 00 17 */ li r7, 0x17
+/* 802A878C 002A43EC 38 00 00 06 */ li r0, 6
+/* 802A8790 002A43F0 38 61 00 14 */ addi r3, r1, 0x14
+/* 802A8794 002A43F4 91 5C 08 D8 */ stw r10, 0x8d8(r28)
+/* 802A8798 002A43F8 38 81 00 0C */ addi r4, r1, 0xc
+/* 802A879C 002A43FC 38 A0 00 04 */ li r5, 4
+/* 802A87A0 002A4400 91 7C 08 BC */ stw r11, 0x8bc(r28)
+/* 802A87A4 002A4404 99 3C 09 83 */ stb r9, 0x983(r28)
+/* 802A87A8 002A4408 99 7C 09 86 */ stb r11, 0x986(r28)
+/* 802A87AC 002A440C 91 01 00 0C */ stw r8, 0xc(r1)
+/* 802A87B0 002A4410 B1 41 00 08 */ sth r10, 8(r1)
+/* 802A87B4 002A4414 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 802A87B8 002A4418 B0 01 00 2A */ sth r0, 0x2a(r1)
+/* 802A87BC 002A441C 90 C1 00 3C */ stw r6, 0x3c(r1)
+/* 802A87C0 002A4420 4B D5 B8 41 */ bl memcpy
+/* 802A87C4 002A4424 38 61 00 18 */ addi r3, r1, 0x18
+/* 802A87C8 002A4428 38 81 00 08 */ addi r4, r1, 8
+/* 802A87CC 002A442C 38 A0 00 02 */ li r5, 2
+/* 802A87D0 002A4430 4B D5 B8 31 */ bl memcpy
+/* 802A87D4 002A4434 A0 01 00 08 */ lhz r0, 8(r1)
+/* 802A87D8 002A4438 3B BC 09 34 */ addi r29, r28, 0x934
+/* 802A87DC 002A443C 81 81 00 0C */ lwz r12, 0xc(r1)
+/* 802A87E0 002A4440 B0 01 00 30 */ sth r0, 0x30(r1)
+/* 802A87E4 002A4444 81 61 00 10 */ lwz r11, 0x10(r1)
+/* 802A87E8 002A4448 81 41 00 14 */ lwz r10, 0x14(r1)
+/* 802A87EC 002A444C 81 21 00 18 */ lwz r9, 0x18(r1)
+/* 802A87F0 002A4450 81 01 00 1C */ lwz r8, 0x1c(r1)
+/* 802A87F4 002A4454 80 E1 00 20 */ lwz r7, 0x20(r1)
+/* 802A87F8 002A4458 80 C1 00 24 */ lwz r6, 0x24(r1)
+/* 802A87FC 002A445C 80 A1 00 28 */ lwz r5, 0x28(r1)
+/* 802A8800 002A4460 80 81 00 30 */ lwz r4, 0x30(r1)
+/* 802A8804 002A4464 80 61 00 38 */ lwz r3, 0x38(r1)
+/* 802A8808 002A4468 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 802A880C 002A446C 93 A1 00 2C */ stw r29, 0x2c(r1)
+/* 802A8810 002A4470 91 81 00 34 */ stw r12, 0x34(r1)
+/* 802A8814 002A4474 91 61 00 40 */ stw r11, 0x40(r1)
+/* 802A8818 002A4478 91 41 00 44 */ stw r10, 0x44(r1)
+/* 802A881C 002A447C 91 21 00 48 */ stw r9, 0x48(r1)
+/* 802A8820 002A4480 91 01 00 4C */ stw r8, 0x4c(r1)
+/* 802A8824 002A4484 90 E1 00 50 */ stw r7, 0x50(r1)
+/* 802A8828 002A4488 90 C1 00 54 */ stw r6, 0x54(r1)
+/* 802A882C 002A448C 90 A1 00 58 */ stw r5, 0x58(r1)
+/* 802A8830 002A4490 93 A1 00 5C */ stw r29, 0x5c(r1)
+/* 802A8834 002A4494 90 81 00 60 */ stw r4, 0x60(r1)
+/* 802A8838 002A4498 91 81 00 64 */ stw r12, 0x64(r1)
+/* 802A883C 002A449C 90 61 00 68 */ stw r3, 0x68(r1)
+/* 802A8840 002A44A0 90 01 00 6C */ stw r0, 0x6c(r1)
+/* 802A8844 002A44A4 4B FC 5F 19 */ bl OSDisableInterrupts
+/* 802A8848 002A44A8 7C 7D 1B 78 */ mr r29, r3
+/* 802A884C 002A44AC 4B FC 5F 11 */ bl OSDisableInterrupts
+/* 802A8850 002A44B0 88 9C 01 60 */ lbz r4, 0x160(r28)
+/* 802A8854 002A44B4 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A8858 002A44B8 7C 04 00 50 */ subf r0, r4, r0
+/* 802A885C 002A44BC 7C 1E 07 75 */ extsb. r30, r0
+/* 802A8860 002A44C0 40 80 00 10 */ bge lbl_802A8870
+/* 802A8864 002A44C4 80 1C 01 68 */ lwz r0, 0x168(r28)
+/* 802A8868 002A44C8 7C 1E 02 14 */ add r0, r30, r0
+/* 802A886C 002A44CC 7C 1E 07 74 */ extsb r30, r0
+lbl_802A8870:
+/* 802A8870 002A44D0 4B FC 5F 15 */ bl OSRestoreInterrupts
+/* 802A8874 002A44D4 80 7C 01 68 */ lwz r3, 0x168(r28)
+/* 802A8878 002A44D8 38 03 FF FF */ addi r0, r3, -1
+/* 802A887C 002A44DC 7C 00 F0 40 */ cmplw r0, r30
+/* 802A8880 002A44E0 40 82 00 10 */ bne lbl_802A8890
+/* 802A8884 002A44E4 7F A3 EB 78 */ mr r3, r29
+/* 802A8888 002A44E8 4B FC 5E FD */ bl OSRestoreInterrupts
+/* 802A888C 002A44EC 48 00 00 78 */ b lbl_802A8904
+lbl_802A8890:
+/* 802A8890 002A44F0 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A8894 002A44F4 38 80 00 00 */ li r4, 0
+/* 802A8898 002A44F8 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 802A889C 002A44FC 38 A0 00 30 */ li r5, 0x30
+/* 802A88A0 002A4500 7C 00 07 74 */ extsb r0, r0
+/* 802A88A4 002A4504 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A88A8 002A4508 7C 63 02 14 */ add r3, r3, r0
+/* 802A88AC 002A450C 4B D5 B8 59 */ bl memset
+/* 802A88B0 002A4510 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A88B4 002A4514 38 81 00 40 */ addi r4, r1, 0x40
+/* 802A88B8 002A4518 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 802A88BC 002A451C 38 A0 00 30 */ li r5, 0x30
+/* 802A88C0 002A4520 7C 00 07 74 */ extsb r0, r0
+/* 802A88C4 002A4524 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A88C8 002A4528 7C 63 02 14 */ add r3, r3, r0
+/* 802A88CC 002A452C 4B D5 B7 35 */ bl memcpy
+/* 802A88D0 002A4530 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A88D4 002A4534 7F A3 EB 78 */ mr r3, r29
+/* 802A88D8 002A4538 80 9C 01 68 */ lwz r4, 0x168(r28)
+/* 802A88DC 002A453C 7C 06 07 74 */ extsb r6, r0
+/* 802A88E0 002A4540 38 84 FF FF */ addi r4, r4, -1
+/* 802A88E4 002A4544 7C A4 30 50 */ subf r5, r4, r6
+/* 802A88E8 002A4548 38 06 00 01 */ addi r0, r6, 1
+/* 802A88EC 002A454C 7C 86 20 50 */ subf r4, r6, r4
+/* 802A88F0 002A4550 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A88F4 002A4554 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A88F8 002A4558 7C 00 20 78 */ andc r0, r0, r4
+/* 802A88FC 002A455C 98 1C 01 61 */ stb r0, 0x161(r28)
+/* 802A8900 002A4560 4B FC 5E 85 */ bl OSRestoreInterrupts
+lbl_802A8904:
+/* 802A8904 002A4564 4B FD 15 59 */ bl __VIResetRFIdle
+/* 802A8908 002A4568 48 00 02 2C */ b lbl_802A8B34
+lbl_802A890C:
+/* 802A890C 002A456C 38 7F 01 74 */ addi r3, r31, 0x174
+/* 802A8910 002A4570 4C C6 31 82 */ crclr 6
+/* 802A8914 002A4574 48 00 AF 4D */ bl func_802B3860
+/* 802A8918 002A4578 3C 60 80 53 */ lis r3, lbl_80537D80@ha
+/* 802A891C 002A457C 38 80 FF FF */ li r4, -1
+/* 802A8920 002A4580 38 63 7D 80 */ addi r3, r3, lbl_80537D80@l
+/* 802A8924 002A4584 7F A3 D0 AE */ lbzx r29, r3, r26
+/* 802A8928 002A4588 7F BD 07 74 */ extsb r29, r29
+/* 802A892C 002A458C 7C 83 D1 AE */ stbx r4, r3, r26
+/* 802A8930 002A4590 2C 1D FF FF */ cmpwi r29, -1
+/* 802A8934 002A4594 41 82 01 F4 */ beq lbl_802A8B28
+/* 802A8938 002A4598 3C 60 80 53 */ lis r3, lbl_80536D70@ha
+/* 802A893C 002A459C 57 A0 10 3A */ slwi r0, r29, 2
+/* 802A8940 002A45A0 38 63 6D 70 */ addi r3, r3, lbl_80536D70@l
+/* 802A8944 002A45A4 7F 83 00 2E */ lwzx r28, r3, r0
+/* 802A8948 002A45A8 90 9C 08 BC */ stw r4, 0x8bc(r28)
+/* 802A894C 002A45AC 81 9C 08 9C */ lwz r12, 0x89c(r28)
+/* 802A8950 002A45B0 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A8954 002A45B4 41 82 00 18 */ beq lbl_802A896C
+/* 802A8958 002A45B8 7F A3 EB 78 */ mr r3, r29
+/* 802A895C 002A45BC 38 80 FF FF */ li r4, -1
+/* 802A8960 002A45C0 7D 89 03 A6 */ mtctr r12
+/* 802A8964 002A45C4 4E 80 04 21 */ bctrl
+/* 802A8968 002A45C8 48 00 00 30 */ b lbl_802A8998
+lbl_802A896C:
+/* 802A896C 002A45CC 1C 1D 00 14 */ mulli r0, r29, 0x14
+/* 802A8970 002A45D0 3C 60 80 54 */ lis r3, lbl_8053A480@ha
+/* 802A8974 002A45D4 38 63 A4 80 */ addi r3, r3, lbl_8053A480@l
+/* 802A8978 002A45D8 7C 63 02 14 */ add r3, r3, r0
+/* 802A897C 002A45DC 81 83 00 10 */ lwz r12, 0x10(r3)
+/* 802A8980 002A45E0 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A8984 002A45E4 41 82 00 14 */ beq lbl_802A8998
+/* 802A8988 002A45E8 7F A3 EB 78 */ mr r3, r29
+/* 802A898C 002A45EC 38 80 FF FF */ li r4, -1
+/* 802A8990 002A45F0 7D 89 03 A6 */ mtctr r12
+/* 802A8994 002A45F4 4E 80 04 21 */ bctrl
+lbl_802A8998:
+/* 802A8998 002A45F8 4B FC 5D C5 */ bl OSDisableInterrupts
+/* 802A899C 002A45FC 7C 7B 1B 78 */ mr r27, r3
+/* 802A89A0 002A4600 4B FC 5D BD */ bl OSDisableInterrupts
+/* 802A89A4 002A4604 88 9C 01 60 */ lbz r4, 0x160(r28)
+/* 802A89A8 002A4608 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A89AC 002A460C 7C 04 00 50 */ subf r0, r4, r0
+/* 802A89B0 002A4610 7C 1E 07 75 */ extsb. r30, r0
+/* 802A89B4 002A4614 40 80 00 10 */ bge lbl_802A89C4
+/* 802A89B8 002A4618 80 1C 01 68 */ lwz r0, 0x168(r28)
+/* 802A89BC 002A461C 7C 1E 02 14 */ add r0, r30, r0
+/* 802A89C0 002A4620 7C 1E 07 74 */ extsb r30, r0
+lbl_802A89C4:
+/* 802A89C4 002A4624 4B FC 5D C1 */ bl OSRestoreInterrupts
+/* 802A89C8 002A4628 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A89CC 002A462C 40 82 00 14 */ bne lbl_802A89E0
+/* 802A89D0 002A4630 7F 63 DB 78 */ mr r3, r27
+/* 802A89D4 002A4634 4B FC 5D B1 */ bl OSRestoreInterrupts
+/* 802A89D8 002A4638 3B C0 00 00 */ li r30, 0
+/* 802A89DC 002A463C 48 00 00 30 */ b lbl_802A8A0C
+lbl_802A89E0:
+/* 802A89E0 002A4640 88 1C 01 60 */ lbz r0, 0x160(r28)
+/* 802A89E4 002A4644 38 61 00 70 */ addi r3, r1, 0x70
+/* 802A89E8 002A4648 80 9C 01 64 */ lwz r4, 0x164(r28)
+/* 802A89EC 002A464C 38 A0 00 30 */ li r5, 0x30
+/* 802A89F0 002A4650 7C 00 07 74 */ extsb r0, r0
+/* 802A89F4 002A4654 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A89F8 002A4658 7C 84 02 14 */ add r4, r4, r0
+/* 802A89FC 002A465C 4B D5 B6 05 */ bl memcpy
+/* 802A8A00 002A4660 7F 63 DB 78 */ mr r3, r27
+/* 802A8A04 002A4664 4B FC 5D 81 */ bl OSRestoreInterrupts
+/* 802A8A08 002A4668 3B C0 00 01 */ li r30, 1
+lbl_802A8A0C:
+/* 802A8A0C 002A466C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A8A10 002A4670 41 82 00 B8 */ beq lbl_802A8AC8
+/* 802A8A14 002A4674 81 81 00 9C */ lwz r12, 0x9c(r1)
+/* 802A8A18 002A4678 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A8A1C 002A467C 41 82 00 14 */ beq lbl_802A8A30
+/* 802A8A20 002A4680 7F A3 EB 78 */ mr r3, r29
+/* 802A8A24 002A4684 38 80 FF FF */ li r4, -1
+/* 802A8A28 002A4688 7D 89 03 A6 */ mtctr r12
+/* 802A8A2C 002A468C 4E 80 04 21 */ bctrl
+lbl_802A8A30:
+/* 802A8A30 002A4690 4B FC 5D 2D */ bl OSDisableInterrupts
+/* 802A8A34 002A4694 7C 7A 1B 78 */ mr r26, r3
+/* 802A8A38 002A4698 4B FC 5D 25 */ bl OSDisableInterrupts
+/* 802A8A3C 002A469C 88 9C 01 60 */ lbz r4, 0x160(r28)
+/* 802A8A40 002A46A0 88 1C 01 61 */ lbz r0, 0x161(r28)
+/* 802A8A44 002A46A4 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8A48 002A46A8 7C 1B 07 75 */ extsb. r27, r0
+/* 802A8A4C 002A46AC 40 80 00 10 */ bge lbl_802A8A5C
+/* 802A8A50 002A46B0 80 1C 01 68 */ lwz r0, 0x168(r28)
+/* 802A8A54 002A46B4 7C 1B 02 14 */ add r0, r27, r0
+/* 802A8A58 002A46B8 7C 1B 07 74 */ extsb r27, r0
+lbl_802A8A5C:
+/* 802A8A5C 002A46BC 4B FC 5D 29 */ bl OSRestoreInterrupts
+/* 802A8A60 002A46C0 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A8A64 002A46C4 40 82 00 10 */ bne lbl_802A8A74
+/* 802A8A68 002A46C8 7F 43 D3 78 */ mr r3, r26
+/* 802A8A6C 002A46CC 4B FC 5D 19 */ bl OSRestoreInterrupts
+/* 802A8A70 002A46D0 48 00 00 58 */ b lbl_802A8AC8
+lbl_802A8A74:
+/* 802A8A74 002A46D4 88 1C 01 60 */ lbz r0, 0x160(r28)
+/* 802A8A78 002A46D8 38 80 00 00 */ li r4, 0
+/* 802A8A7C 002A46DC 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 802A8A80 002A46E0 38 A0 00 30 */ li r5, 0x30
+/* 802A8A84 002A46E4 7C 00 07 74 */ extsb r0, r0
+/* 802A8A88 002A46E8 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A8A8C 002A46EC 7C 63 02 14 */ add r3, r3, r0
+/* 802A8A90 002A46F0 4B D5 B6 75 */ bl memset
+/* 802A8A94 002A46F4 88 1C 01 60 */ lbz r0, 0x160(r28)
+/* 802A8A98 002A46F8 7F 43 D3 78 */ mr r3, r26
+/* 802A8A9C 002A46FC 80 9C 01 68 */ lwz r4, 0x168(r28)
+/* 802A8AA0 002A4700 7C 06 07 74 */ extsb r6, r0
+/* 802A8AA4 002A4704 38 84 FF FF */ addi r4, r4, -1
+/* 802A8AA8 002A4708 7C A4 30 50 */ subf r5, r4, r6
+/* 802A8AAC 002A470C 38 06 00 01 */ addi r0, r6, 1
+/* 802A8AB0 002A4710 7C 86 20 50 */ subf r4, r6, r4
+/* 802A8AB4 002A4714 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A8AB8 002A4718 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A8ABC 002A471C 7C 00 20 78 */ andc r0, r0, r4
+/* 802A8AC0 002A4720 98 1C 01 60 */ stb r0, 0x160(r28)
+/* 802A8AC4 002A4724 4B FC 5C C1 */ bl OSRestoreInterrupts
+lbl_802A8AC8:
+/* 802A8AC8 002A4728 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A8ACC 002A472C 40 82 FE CC */ bne lbl_802A8998
+/* 802A8AD0 002A4730 38 7F 01 90 */ addi r3, r31, 0x190
+/* 802A8AD4 002A4734 4C C6 31 82 */ crclr 6
+/* 802A8AD8 002A4738 48 00 AD 89 */ bl func_802B3860
+/* 802A8ADC 002A473C 80 9C 08 AC */ lwz r4, 0x8ac(r28)
+/* 802A8AE0 002A4740 2C 04 00 00 */ cmpwi r4, 0
+/* 802A8AE4 002A4744 41 82 00 10 */ beq lbl_802A8AF4
+/* 802A8AE8 002A4748 80 BC 08 B4 */ lwz r5, 0x8b4(r28)
+/* 802A8AEC 002A474C 7F A3 EB 78 */ mr r3, r29
+/* 802A8AF0 002A4750 48 00 0D 21 */ bl WPADSetAutoSamplingBuf
+lbl_802A8AF4:
+/* 802A8AF4 002A4754 7F A3 EB 78 */ mr r3, r29
+/* 802A8AF8 002A4758 4B FF EB 15 */ bl __ClearControlBlock
+/* 802A8AFC 002A475C 38 00 00 00 */ li r0, 0
+/* 802A8B00 002A4760 38 6D AE 50 */ addi r3, r13, lbl_80640110-_SDA_BASE_
+/* 802A8B04 002A4764 7C 03 E9 AE */ stbx r0, r3, r29
+/* 802A8B08 002A4768 81 9C 08 A4 */ lwz r12, 0x8a4(r28)
+/* 802A8B0C 002A476C 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A8B10 002A4770 41 82 00 24 */ beq lbl_802A8B34
+/* 802A8B14 002A4774 7F A3 EB 78 */ mr r3, r29
+/* 802A8B18 002A4778 38 80 FF FF */ li r4, -1
+/* 802A8B1C 002A477C 7D 89 03 A6 */ mtctr r12
+/* 802A8B20 002A4780 4E 80 04 21 */ bctrl
+/* 802A8B24 002A4784 48 00 00 10 */ b lbl_802A8B34
+lbl_802A8B28:
+/* 802A8B28 002A4788 38 7F 01 A8 */ addi r3, r31, 0x1a8
+/* 802A8B2C 002A478C 4C C6 31 82 */ crclr 6
+/* 802A8B30 002A4790 48 00 AD 31 */ bl func_802B3860
+lbl_802A8B34:
+/* 802A8B34 002A4794 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 802A8B38 002A4798 4B F1 E6 39 */ bl _restgpr_26
+/* 802A8B3C 002A479C 80 01 00 C4 */ lwz r0, 0xc4(r1)
+/* 802A8B40 002A47A0 7C 08 03 A6 */ mtlr r0
+/* 802A8B44 002A47A4 38 21 00 C0 */ addi r1, r1, 0xc0
+/* 802A8B48 002A47A8 4E 80 00 20 */ blr
+WPADiRecvCallback:
+/* 802A8B4C 002A47AC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A8B50 002A47B0 7C 08 02 A6 */ mflr r0
+/* 802A8B54 002A47B4 3C A0 80 53 */ lis r5, lbl_80537D80@ha
+/* 802A8B58 002A47B8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A8B5C 002A47BC 38 A5 7D 80 */ addi r5, r5, lbl_80537D80@l
+/* 802A8B60 002A47C0 7C 05 18 AE */ lbzx r0, r5, r3
+/* 802A8B64 002A47C4 28 00 00 04 */ cmplwi r0, 4
+/* 802A8B68 002A47C8 41 81 00 2C */ bgt lbl_802A8B94
+/* 802A8B6C 002A47CC 7C 03 03 78 */ mr r3, r0
+/* 802A8B70 002A47D0 48 00 56 B9 */ bl func_802AE228
+/* 802A8B74 002A47D4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A8B78 002A47D8 7C 64 1B 78 */ mr r4, r3
+/* 802A8B7C 002A47DC 41 82 00 2C */ beq lbl_802A8BA8
+/* 802A8B80 002A47E0 3C 60 80 44 */ lis r3, lbl_8043C1A8@ha
+/* 802A8B84 002A47E4 38 63 C1 A8 */ addi r3, r3, lbl_8043C1A8@l
+/* 802A8B88 002A47E8 4C C6 31 82 */ crclr 6
+/* 802A8B8C 002A47EC 48 00 AC D5 */ bl func_802B3860
+/* 802A8B90 002A47F0 48 00 00 18 */ b lbl_802A8BA8
+lbl_802A8B94:
+/* 802A8B94 002A47F4 3C 60 80 44 */ lis r3, lbl_8043C1C0@ha
+/* 802A8B98 002A47F8 7C 04 03 78 */ mr r4, r0
+/* 802A8B9C 002A47FC 38 63 C1 C0 */ addi r3, r3, lbl_8043C1C0@l
+/* 802A8BA0 002A4800 4C C6 31 82 */ crclr 6
+/* 802A8BA4 002A4804 48 00 AC BD */ bl func_802B3860
+lbl_802A8BA8:
+/* 802A8BA8 002A4808 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A8BAC 002A480C 7C 08 03 A6 */ mtlr r0
+/* 802A8BB0 002A4810 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A8BB4 002A4814 4E 80 00 20 */ blr
+
+.global WPADGetAccGravityUnit
+WPADGetAccGravityUnit:
+/* 802A8BB8 002A4818 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A8BBC 002A481C 7C 08 02 A6 */ mflr r0
+/* 802A8BC0 002A4820 3C C0 80 53 */ lis r6, lbl_80536D70@ha
+/* 802A8BC4 002A4824 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A8BC8 002A4828 54 60 10 3A */ slwi r0, r3, 2
+/* 802A8BCC 002A482C 38 C6 6D 70 */ addi r6, r6, lbl_80536D70@l
+/* 802A8BD0 002A4830 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A8BD4 002A4834 7C BF 2B 78 */ mr r31, r5
+/* 802A8BD8 002A4838 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A8BDC 002A483C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A8BE0 002A4840 7C 9D 23 78 */ mr r29, r4
+/* 802A8BE4 002A4844 7F C6 00 2E */ lwzx r30, r6, r0
+/* 802A8BE8 002A4848 4B FC 5B 75 */ bl OSDisableInterrupts
+/* 802A8BEC 002A484C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A8BF0 002A4850 41 82 00 80 */ beq lbl_802A8C70
+/* 802A8BF4 002A4854 2C 1D 00 01 */ cmpwi r29, 1
+/* 802A8BF8 002A4858 41 82 00 48 */ beq lbl_802A8C40
+/* 802A8BFC 002A485C 40 80 00 74 */ bge lbl_802A8C70
+/* 802A8C00 002A4860 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A8C04 002A4864 40 80 00 08 */ bge lbl_802A8C0C
+/* 802A8C08 002A4868 48 00 00 68 */ b lbl_802A8C70
+lbl_802A8C0C:
+/* 802A8C0C 002A486C A8 9E 08 74 */ lha r4, 0x874(r30)
+/* 802A8C10 002A4870 A8 1E 08 7A */ lha r0, 0x87a(r30)
+/* 802A8C14 002A4874 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8C18 002A4878 B0 1F 00 00 */ sth r0, 0(r31)
+/* 802A8C1C 002A487C A8 9E 08 76 */ lha r4, 0x876(r30)
+/* 802A8C20 002A4880 A8 1E 08 7C */ lha r0, 0x87c(r30)
+/* 802A8C24 002A4884 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8C28 002A4888 B0 1F 00 02 */ sth r0, 2(r31)
+/* 802A8C2C 002A488C A8 9E 08 78 */ lha r4, 0x878(r30)
+/* 802A8C30 002A4890 A8 1E 08 7E */ lha r0, 0x87e(r30)
+/* 802A8C34 002A4894 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8C38 002A4898 B0 1F 00 04 */ sth r0, 4(r31)
+/* 802A8C3C 002A489C 48 00 00 34 */ b lbl_802A8C70
+lbl_802A8C40:
+/* 802A8C40 002A48A0 A8 9E 08 8E */ lha r4, 0x88e(r30)
+/* 802A8C44 002A48A4 A8 1E 08 94 */ lha r0, 0x894(r30)
+/* 802A8C48 002A48A8 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8C4C 002A48AC B0 1F 00 00 */ sth r0, 0(r31)
+/* 802A8C50 002A48B0 A8 9E 08 90 */ lha r4, 0x890(r30)
+/* 802A8C54 002A48B4 A8 1E 08 96 */ lha r0, 0x896(r30)
+/* 802A8C58 002A48B8 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8C5C 002A48BC B0 1F 00 02 */ sth r0, 2(r31)
+/* 802A8C60 002A48C0 A8 9E 08 92 */ lha r4, 0x892(r30)
+/* 802A8C64 002A48C4 A8 1E 08 98 */ lha r0, 0x898(r30)
+/* 802A8C68 002A48C8 7C 04 00 50 */ subf r0, r4, r0
+/* 802A8C6C 002A48CC B0 1F 00 04 */ sth r0, 4(r31)
+lbl_802A8C70:
+/* 802A8C70 002A48D0 4B FC 5B 15 */ bl OSRestoreInterrupts
+/* 802A8C74 002A48D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A8C78 002A48D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A8C7C 002A48DC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A8C80 002A48E0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A8C84 002A48E4 7C 08 03 A6 */ mtlr r0
+/* 802A8C88 002A48E8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A8C8C 002A48EC 4E 80 00 20 */ blr
+CloseCallback:
+/* 802A8C90 002A48F0 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A8C94 002A48F4 2C 04 FF FF */ cmpwi r4, -1
+/* 802A8C98 002A48F8 54 60 10 3A */ slwi r0, r3, 2
+/* 802A8C9C 002A48FC 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A8CA0 002A4900 7C 65 00 2E */ lwzx r3, r5, r0
+/* 802A8CA4 002A4904 4D 82 00 20 */ beqlr
+/* 802A8CA8 002A4908 88 63 08 C3 */ lbz r3, 0x8c3(r3)
+/* 802A8CAC 002A490C 48 01 9B 70 */ b lbl_802C281C
+/* 802A8CB0 002A4910 4E 80 00 20 */ blr
+
+.global WPADDisconnect
+WPADDisconnect:
+/* 802A8CB4 002A4914 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A8CB8 002A4918 7C 08 02 A6 */ mflr r0
+/* 802A8CBC 002A491C 3C A0 80 54 */ lis r5, lbl_8053AC28@ha
+/* 802A8CC0 002A4920 38 80 00 00 */ li r4, 0
+/* 802A8CC4 002A4924 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A8CC8 002A4928 38 03 00 0A */ addi r0, r3, 0xa
+/* 802A8CCC 002A492C 1C 00 00 46 */ mulli r0, r0, 0x46
+/* 802A8CD0 002A4930 38 A5 AC 28 */ addi r5, r5, lbl_8053AC28@l
+/* 802A8CD4 002A4934 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A8CD8 002A4938 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A8CDC 002A493C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A8CE0 002A4940 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A8CE4 002A4944 7C 7C 1B 78 */ mr r28, r3
+/* 802A8CE8 002A4948 7C 65 02 14 */ add r3, r5, r0
+/* 802A8CEC 002A494C 38 A0 00 46 */ li r5, 0x46
+/* 802A8CF0 002A4950 38 63 00 01 */ addi r3, r3, 1
+/* 802A8CF4 002A4954 4B D5 B4 11 */ bl memset
+/* 802A8CF8 002A4958 3C 60 80 53 */ lis r3, lbl_80536D70@ha
+/* 802A8CFC 002A495C 3B E0 00 01 */ li r31, 1
+/* 802A8D00 002A4960 57 80 10 3A */ slwi r0, r28, 2
+/* 802A8D04 002A4964 9B ED AE 59 */ stb r31, lbl_80640119-_SDA_BASE_(r13)
+/* 802A8D08 002A4968 38 63 6D 70 */ addi r3, r3, lbl_80536D70@l
+/* 802A8D0C 002A496C 7F A3 00 2E */ lwzx r29, r3, r0
+/* 802A8D10 002A4970 4B FC 5A 4D */ bl OSDisableInterrupts
+/* 802A8D14 002A4974 83 DD 08 BC */ lwz r30, 0x8bc(r29)
+/* 802A8D18 002A4978 4B FC 5A 6D */ bl OSRestoreInterrupts
+/* 802A8D1C 002A497C 2C 1E FF FF */ cmpwi r30, -1
+/* 802A8D20 002A4980 41 82 00 38 */ beq lbl_802A8D58
+/* 802A8D24 002A4984 4B FC 5A 39 */ bl OSDisableInterrupts
+/* 802A8D28 002A4988 88 1D 09 86 */ lbz r0, 0x986(r29)
+/* 802A8D2C 002A498C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A8D30 002A4990 41 82 00 0C */ beq lbl_802A8D3C
+/* 802A8D34 002A4994 4B FC 5A 51 */ bl OSRestoreInterrupts
+/* 802A8D38 002A4998 48 00 00 20 */ b lbl_802A8D58
+lbl_802A8D3C:
+/* 802A8D3C 002A499C 9B FD 09 86 */ stb r31, 0x986(r29)
+/* 802A8D40 002A49A0 4B FC 5A 45 */ bl OSRestoreInterrupts
+/* 802A8D44 002A49A4 3C A0 80 2B */ lis r5, CloseCallback@ha
+/* 802A8D48 002A49A8 7F 83 E3 78 */ mr r3, r28
+/* 802A8D4C 002A49AC 38 A5 8C 90 */ addi r5, r5, CloseCallback@l
+/* 802A8D50 002A49B0 38 80 00 00 */ li r4, 0
+/* 802A8D54 002A49B4 48 00 06 89 */ bl WPADControlLed
+lbl_802A8D58:
+/* 802A8D58 002A49B8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A8D5C 002A49BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A8D60 002A49C0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A8D64 002A49C4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A8D68 002A49C8 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A8D6C 002A49CC 7C 08 03 A6 */ mtlr r0
+/* 802A8D70 002A49D0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A8D74 002A49D4 4E 80 00 20 */ blr
+
+.global WPADProbe
+WPADProbe:
+/* 802A8D78 002A49D8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A8D7C 002A49DC 7C 08 02 A6 */ mflr r0
+/* 802A8D80 002A49E0 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A8D84 002A49E4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A8D88 002A49E8 54 60 10 3A */ slwi r0, r3, 2
+/* 802A8D8C 002A49EC 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A8D90 002A49F0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A8D94 002A49F4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A8D98 002A49F8 7C 9E 23 78 */ mr r30, r4
+/* 802A8D9C 002A49FC 7F E5 00 2E */ lwzx r31, r5, r0
+/* 802A8DA0 002A4A00 4B FC 59 BD */ bl OSDisableInterrupts
+/* 802A8DA4 002A4A04 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A8DA8 002A4A08 41 82 00 0C */ beq lbl_802A8DB4
+/* 802A8DAC 002A4A0C 88 1F 08 C1 */ lbz r0, 0x8c1(r31)
+/* 802A8DB0 002A4A10 90 1E 00 00 */ stw r0, 0(r30)
+lbl_802A8DB4:
+/* 802A8DB4 002A4A14 83 DF 08 BC */ lwz r30, 0x8bc(r31)
+/* 802A8DB8 002A4A18 2C 1E FF FF */ cmpwi r30, -1
+/* 802A8DBC 002A4A1C 41 82 00 28 */ beq lbl_802A8DE4
+/* 802A8DC0 002A4A20 88 1F 08 C1 */ lbz r0, 0x8c1(r31)
+/* 802A8DC4 002A4A24 28 00 00 FD */ cmplwi r0, 0xfd
+/* 802A8DC8 002A4A28 40 82 00 0C */ bne lbl_802A8DD4
+/* 802A8DCC 002A4A2C 3B C0 FF FF */ li r30, -1
+/* 802A8DD0 002A4A30 48 00 00 14 */ b lbl_802A8DE4
+lbl_802A8DD4:
+/* 802A8DD4 002A4A34 80 1F 08 DC */ lwz r0, 0x8dc(r31)
+/* 802A8DD8 002A4A38 2C 00 00 00 */ cmpwi r0, 0
+/* 802A8DDC 002A4A3C 40 82 00 08 */ bne lbl_802A8DE4
+/* 802A8DE0 002A4A40 3B C0 FF FE */ li r30, -2
+lbl_802A8DE4:
+/* 802A8DE4 002A4A44 4B FC 59 A1 */ bl OSRestoreInterrupts
+/* 802A8DE8 002A4A48 7F C3 F3 78 */ mr r3, r30
+/* 802A8DEC 002A4A4C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A8DF0 002A4A50 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A8DF4 002A4A54 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A8DF8 002A4A58 7C 08 03 A6 */ mtlr r0
+/* 802A8DFC 002A4A5C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A8E00 002A4A60 4E 80 00 20 */ blr
+
+.global WPADSetSamplingCallback
+WPADSetSamplingCallback:
+/* 802A8E04 002A4A64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A8E08 002A4A68 7C 08 02 A6 */ mflr r0
+/* 802A8E0C 002A4A6C 3C A0 80 44 */ lis r5, lbl_8043C1EC@ha
+/* 802A8E10 002A4A70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A8E14 002A4A74 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A8E18 002A4A78 7C 7F 1B 78 */ mr r31, r3
+/* 802A8E1C 002A4A7C 38 65 C1 EC */ addi r3, r5, lbl_8043C1EC@l
+/* 802A8E20 002A4A80 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A8E24 002A4A84 7C 9E 23 78 */ mr r30, r4
+/* 802A8E28 002A4A88 4C C6 31 82 */ crclr 6
+/* 802A8E2C 002A4A8C 48 00 AA 35 */ bl func_802B3860
+/* 802A8E30 002A4A90 4B FC 59 2D */ bl OSDisableInterrupts
+/* 802A8E34 002A4A94 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A8E38 002A4A98 57 E0 10 3A */ slwi r0, r31, 2
+/* 802A8E3C 002A4A9C 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A8E40 002A4AA0 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A8E44 002A4AA4 83 E4 08 A8 */ lwz r31, 0x8a8(r4)
+/* 802A8E48 002A4AA8 93 C4 08 A8 */ stw r30, 0x8a8(r4)
+/* 802A8E4C 002A4AAC 4B FC 59 39 */ bl OSRestoreInterrupts
+/* 802A8E50 002A4AB0 7F E3 FB 78 */ mr r3, r31
+/* 802A8E54 002A4AB4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A8E58 002A4AB8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A8E5C 002A4ABC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A8E60 002A4AC0 7C 08 03 A6 */ mtlr r0
+/* 802A8E64 002A4AC4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A8E68 002A4AC8 4E 80 00 20 */ blr
+
+.global WPADSetConnectCallback
+WPADSetConnectCallback:
+/* 802A8E6C 002A4ACC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A8E70 002A4AD0 7C 08 02 A6 */ mflr r0
+/* 802A8E74 002A4AD4 3C A0 80 44 */ lis r5, lbl_8043C208@ha
+/* 802A8E78 002A4AD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A8E7C 002A4ADC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A8E80 002A4AE0 7C 7F 1B 78 */ mr r31, r3
+/* 802A8E84 002A4AE4 38 65 C2 08 */ addi r3, r5, lbl_8043C208@l
+/* 802A8E88 002A4AE8 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A8E8C 002A4AEC 7C 9E 23 78 */ mr r30, r4
+/* 802A8E90 002A4AF0 4C C6 31 82 */ crclr 6
+/* 802A8E94 002A4AF4 48 00 A9 CD */ bl func_802B3860
+/* 802A8E98 002A4AF8 4B FC 58 C5 */ bl OSDisableInterrupts
+/* 802A8E9C 002A4AFC 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A8EA0 002A4B00 57 E0 10 3A */ slwi r0, r31, 2
+/* 802A8EA4 002A4B04 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A8EA8 002A4B08 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A8EAC 002A4B0C 83 E4 08 A4 */ lwz r31, 0x8a4(r4)
+/* 802A8EB0 002A4B10 93 C4 08 A4 */ stw r30, 0x8a4(r4)
+/* 802A8EB4 002A4B14 4B FC 58 D1 */ bl OSRestoreInterrupts
+/* 802A8EB8 002A4B18 7F E3 FB 78 */ mr r3, r31
+/* 802A8EBC 002A4B1C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A8EC0 002A4B20 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A8EC4 002A4B24 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A8EC8 002A4B28 7C 08 03 A6 */ mtlr r0
+/* 802A8ECC 002A4B2C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A8ED0 002A4B30 4E 80 00 20 */ blr
+
+.global WPADSetExtensionCallback
+WPADSetExtensionCallback:
+/* 802A8ED4 002A4B34 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A8ED8 002A4B38 7C 08 02 A6 */ mflr r0
+/* 802A8EDC 002A4B3C 3C A0 80 44 */ lis r5, lbl_8043C224@ha
+/* 802A8EE0 002A4B40 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A8EE4 002A4B44 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A8EE8 002A4B48 7C 7F 1B 78 */ mr r31, r3
+/* 802A8EEC 002A4B4C 38 65 C2 24 */ addi r3, r5, lbl_8043C224@l
+/* 802A8EF0 002A4B50 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A8EF4 002A4B54 7C 9E 23 78 */ mr r30, r4
+/* 802A8EF8 002A4B58 4C C6 31 82 */ crclr 6
+/* 802A8EFC 002A4B5C 48 00 A9 65 */ bl func_802B3860
+/* 802A8F00 002A4B60 4B FC 58 5D */ bl OSDisableInterrupts
+/* 802A8F04 002A4B64 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A8F08 002A4B68 57 E0 10 3A */ slwi r0, r31, 2
+/* 802A8F0C 002A4B6C 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A8F10 002A4B70 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A8F14 002A4B74 83 E4 08 A0 */ lwz r31, 0x8a0(r4)
+/* 802A8F18 002A4B78 93 C4 08 A0 */ stw r30, 0x8a0(r4)
+/* 802A8F1C 002A4B7C 4B FC 58 69 */ bl OSRestoreInterrupts
+/* 802A8F20 002A4B80 7F E3 FB 78 */ mr r3, r31
+/* 802A8F24 002A4B84 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A8F28 002A4B88 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A8F2C 002A4B8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A8F30 002A4B90 7C 08 03 A6 */ mtlr r0
+/* 802A8F34 002A4B94 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A8F38 002A4B98 4E 80 00 20 */ blr
+
+.global WPADGetDataFormat
+WPADGetDataFormat:
+/* 802A8F3C 002A4B9C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A8F40 002A4BA0 7C 08 02 A6 */ mflr r0
+/* 802A8F44 002A4BA4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A8F48 002A4BA8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A8F4C 002A4BAC 7C 7F 1B 78 */ mr r31, r3
+/* 802A8F50 002A4BB0 4B FC 58 0D */ bl OSDisableInterrupts
+/* 802A8F54 002A4BB4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A8F58 002A4BB8 57 E0 10 3A */ slwi r0, r31, 2
+/* 802A8F5C 002A4BBC 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A8F60 002A4BC0 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A8F64 002A4BC4 83 E4 08 B8 */ lwz r31, 0x8b8(r4)
+/* 802A8F68 002A4BC8 4B FC 58 1D */ bl OSRestoreInterrupts
+/* 802A8F6C 002A4BCC 7F E3 FB 78 */ mr r3, r31
+/* 802A8F70 002A4BD0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A8F74 002A4BD4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A8F78 002A4BD8 7C 08 03 A6 */ mtlr r0
+/* 802A8F7C 002A4BDC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A8F80 002A4BE0 4E 80 00 20 */ blr
+
+.global WPADSetDataFormat
+WPADSetDataFormat:
+/* 802A8F84 002A4BE4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A8F88 002A4BE8 7C 08 02 A6 */ mflr r0
+/* 802A8F8C 002A4BEC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A8F90 002A4BF0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A8F94 002A4BF4 4B F1 E1 95 */ bl _savegpr_27
+/* 802A8F98 002A4BF8 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A8F9C 002A4BFC 54 60 10 3A */ slwi r0, r3, 2
+/* 802A8FA0 002A4C00 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A8FA4 002A4C04 7C 9B 23 78 */ mr r27, r4
+/* 802A8FA8 002A4C08 7F E5 00 2E */ lwzx r31, r5, r0
+/* 802A8FAC 002A4C0C 4B FC 57 B1 */ bl OSDisableInterrupts
+/* 802A8FB0 002A4C10 83 BF 08 DC */ lwz r29, 0x8dc(r31)
+/* 802A8FB4 002A4C14 83 DF 08 BC */ lwz r30, 0x8bc(r31)
+/* 802A8FB8 002A4C18 83 9F 08 B8 */ lwz r28, 0x8b8(r31)
+/* 802A8FBC 002A4C1C 4B FC 57 C9 */ bl OSRestoreInterrupts
+/* 802A8FC0 002A4C20 2C 1E FF FF */ cmpwi r30, -1
+/* 802A8FC4 002A4C24 41 82 00 54 */ beq lbl_802A9018
+/* 802A8FC8 002A4C28 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A8FCC 002A4C2C 40 82 00 0C */ bne lbl_802A8FD8
+/* 802A8FD0 002A4C30 3B C0 FF FE */ li r30, -2
+/* 802A8FD4 002A4C34 48 00 00 44 */ b lbl_802A9018
+lbl_802A8FD8:
+/* 802A8FD8 002A4C38 7C 1C D8 40 */ cmplw r28, r27
+/* 802A8FDC 002A4C3C 41 82 00 38 */ beq lbl_802A9014
+/* 802A8FE0 002A4C40 7F 64 DB 78 */ mr r4, r27
+/* 802A8FE4 002A4C44 38 7F 01 60 */ addi r3, r31, 0x160
+/* 802A8FE8 002A4C48 38 A0 00 00 */ li r5, 0
+/* 802A8FEC 002A4C4C 48 00 39 C1 */ bl WPADiSendSetReportType
+/* 802A8FF0 002A4C50 2C 03 00 00 */ cmpwi r3, 0
+/* 802A8FF4 002A4C54 40 82 00 0C */ bne lbl_802A9000
+/* 802A8FF8 002A4C58 3B C0 FF FE */ li r30, -2
+/* 802A8FFC 002A4C5C 48 00 00 1C */ b lbl_802A9018
+lbl_802A9000:
+/* 802A9000 002A4C60 4B FC 57 5D */ bl OSDisableInterrupts
+/* 802A9004 002A4C64 93 7F 08 B8 */ stw r27, 0x8b8(r31)
+/* 802A9008 002A4C68 4B FC 57 7D */ bl OSRestoreInterrupts
+/* 802A900C 002A4C6C 3B C0 00 00 */ li r30, 0
+/* 802A9010 002A4C70 48 00 00 08 */ b lbl_802A9018
+lbl_802A9014:
+/* 802A9014 002A4C74 3B C0 00 00 */ li r30, 0
+lbl_802A9018:
+/* 802A9018 002A4C78 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A901C 002A4C7C 7F C3 F3 78 */ mr r3, r30
+/* 802A9020 002A4C80 4B F1 E1 55 */ bl _restgpr_27
+/* 802A9024 002A4C84 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A9028 002A4C88 7C 08 03 A6 */ mtlr r0
+/* 802A902C 002A4C8C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A9030 002A4C90 4E 80 00 20 */ blr
+__infoCallback:
+/* 802A9034 002A4C94 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A9038 002A4C98 7C 08 02 A6 */ mflr r0
+/* 802A903C 002A4C9C 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A9040 002A4CA0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A9044 002A4CA4 54 60 10 3A */ slwi r0, r3, 2
+/* 802A9048 002A4CA8 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A904C 002A4CAC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A9050 002A4CB0 7F E5 00 2E */ lwzx r31, r5, r0
+/* 802A9054 002A4CB4 81 9F 09 88 */ lwz r12, 0x988(r31)
+/* 802A9058 002A4CB8 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A905C 002A4CBC 41 82 00 0C */ beq lbl_802A9068
+/* 802A9060 002A4CC0 7D 89 03 A6 */ mtctr r12
+/* 802A9064 002A4CC4 4E 80 04 21 */ bctrl
+lbl_802A9068:
+/* 802A9068 002A4CC8 38 00 00 00 */ li r0, 0
+/* 802A906C 002A4CCC 90 1F 09 88 */ stw r0, 0x988(r31)
+/* 802A9070 002A4CD0 98 1F 09 8C */ stb r0, 0x98c(r31)
+/* 802A9074 002A4CD4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A9078 002A4CD8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A907C 002A4CDC 7C 08 03 A6 */ mtlr r0
+/* 802A9080 002A4CE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A9084 002A4CE4 4E 80 00 20 */ blr
+
+.global WPADGetInfoAsync
+WPADGetInfoAsync:
+/* 802A9088 002A4CE8 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 802A908C 002A4CEC 7C 08 02 A6 */ mflr r0
+/* 802A9090 002A4CF0 90 01 00 94 */ stw r0, 0x94(r1)
+/* 802A9094 002A4CF4 39 61 00 90 */ addi r11, r1, 0x90
+/* 802A9098 002A4CF8 4B F1 E0 89 */ bl _savegpr_25
+/* 802A909C 002A4CFC 3C C0 80 53 */ lis r6, lbl_80536D70@ha
+/* 802A90A0 002A4D00 54 60 10 3A */ slwi r0, r3, 2
+/* 802A90A4 002A4D04 38 C6 6D 70 */ addi r6, r6, lbl_80536D70@l
+/* 802A90A8 002A4D08 7C 7C 1B 78 */ mr r28, r3
+/* 802A90AC 002A4D0C 7F C6 00 2E */ lwzx r30, r6, r0
+/* 802A90B0 002A4D10 7C 9F 23 78 */ mr r31, r4
+/* 802A90B4 002A4D14 7C BD 2B 78 */ mr r29, r5
+/* 802A90B8 002A4D18 4B FC 56 A5 */ bl OSDisableInterrupts
+/* 802A90BC 002A4D1C 83 7E 08 DC */ lwz r27, 0x8dc(r30)
+/* 802A90C0 002A4D20 83 5E 08 BC */ lwz r26, 0x8bc(r30)
+/* 802A90C4 002A4D24 8B 3E 09 8C */ lbz r25, 0x98c(r30)
+/* 802A90C8 002A4D28 4B FC 56 BD */ bl OSRestoreInterrupts
+/* 802A90CC 002A4D2C 2C 1A FF FF */ cmpwi r26, -1
+/* 802A90D0 002A4D30 41 82 01 98 */ beq lbl_802A9268
+/* 802A90D4 002A4D34 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A90D8 002A4D38 41 82 00 0C */ beq lbl_802A90E4
+/* 802A90DC 002A4D3C 2C 19 00 00 */ cmpwi r25, 0
+/* 802A90E0 002A4D40 41 82 00 0C */ beq lbl_802A90EC
+lbl_802A90E4:
+/* 802A90E4 002A4D44 3B 40 FF FE */ li r26, -2
+/* 802A90E8 002A4D48 48 00 01 80 */ b lbl_802A9268
+lbl_802A90EC:
+/* 802A90EC 002A4D4C 4B FC 56 71 */ bl OSDisableInterrupts
+/* 802A90F0 002A4D50 3B 60 00 01 */ li r27, 1
+/* 802A90F4 002A4D54 9B 7E 09 8C */ stb r27, 0x98c(r30)
+/* 802A90F8 002A4D58 93 BE 09 88 */ stw r29, 0x988(r30)
+/* 802A90FC 002A4D5C 4B FC 56 89 */ bl OSRestoreInterrupts
+/* 802A9100 002A4D60 38 00 00 00 */ li r0, 0
+/* 802A9104 002A4D64 39 80 00 15 */ li r12, 0x15
+/* 802A9108 002A4D68 98 01 00 0C */ stb r0, 0xc(r1)
+/* 802A910C 002A4D6C 3D 60 80 2B */ lis r11, __infoCallback@ha
+/* 802A9110 002A4D70 39 6B 90 34 */ addi r11, r11, __infoCallback@l
+/* 802A9114 002A4D74 81 21 00 10 */ lwz r9, 0x10(r1)
+/* 802A9118 002A4D78 B3 61 00 22 */ sth r27, 0x22(r1)
+/* 802A911C 002A4D7C 81 01 00 14 */ lwz r8, 0x14(r1)
+/* 802A9120 002A4D80 81 41 00 0C */ lwz r10, 0xc(r1)
+/* 802A9124 002A4D84 80 E1 00 18 */ lwz r7, 0x18(r1)
+/* 802A9128 002A4D88 80 C1 00 1C */ lwz r6, 0x1c(r1)
+/* 802A912C 002A4D8C 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 802A9130 002A4D90 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 802A9134 002A4D94 80 61 00 28 */ lwz r3, 0x28(r1)
+/* 802A9138 002A4D98 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 802A913C 002A4D9C 91 81 00 08 */ stw r12, 8(r1)
+/* 802A9140 002A4DA0 91 61 00 34 */ stw r11, 0x34(r1)
+/* 802A9144 002A4DA4 93 E1 00 30 */ stw r31, 0x30(r1)
+/* 802A9148 002A4DA8 91 81 00 38 */ stw r12, 0x38(r1)
+/* 802A914C 002A4DAC 91 41 00 3C */ stw r10, 0x3c(r1)
+/* 802A9150 002A4DB0 91 21 00 40 */ stw r9, 0x40(r1)
+/* 802A9154 002A4DB4 91 01 00 44 */ stw r8, 0x44(r1)
+/* 802A9158 002A4DB8 90 E1 00 48 */ stw r7, 0x48(r1)
+/* 802A915C 002A4DBC 90 C1 00 4C */ stw r6, 0x4c(r1)
+/* 802A9160 002A4DC0 90 A1 00 50 */ stw r5, 0x50(r1)
+/* 802A9164 002A4DC4 90 81 00 54 */ stw r4, 0x54(r1)
+/* 802A9168 002A4DC8 90 61 00 58 */ stw r3, 0x58(r1)
+/* 802A916C 002A4DCC 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 802A9170 002A4DD0 93 E1 00 60 */ stw r31, 0x60(r1)
+/* 802A9174 002A4DD4 91 61 00 64 */ stw r11, 0x64(r1)
+/* 802A9178 002A4DD8 4B FC 55 E5 */ bl OSDisableInterrupts
+/* 802A917C 002A4DDC 7C 7F 1B 78 */ mr r31, r3
+/* 802A9180 002A4DE0 4B FC 55 DD */ bl OSDisableInterrupts
+/* 802A9184 002A4DE4 88 9E 01 60 */ lbz r4, 0x160(r30)
+/* 802A9188 002A4DE8 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A918C 002A4DEC 7C 04 00 50 */ subf r0, r4, r0
+/* 802A9190 002A4DF0 7C 1B 07 75 */ extsb. r27, r0
+/* 802A9194 002A4DF4 40 80 00 10 */ bge lbl_802A91A4
+/* 802A9198 002A4DF8 80 1E 01 68 */ lwz r0, 0x168(r30)
+/* 802A919C 002A4DFC 7C 1B 02 14 */ add r0, r27, r0
+/* 802A91A0 002A4E00 7C 1B 07 74 */ extsb r27, r0
+lbl_802A91A4:
+/* 802A91A4 002A4E04 4B FC 55 E1 */ bl OSRestoreInterrupts
+/* 802A91A8 002A4E08 80 7E 01 68 */ lwz r3, 0x168(r30)
+/* 802A91AC 002A4E0C 38 03 FF FF */ addi r0, r3, -1
+/* 802A91B0 002A4E10 7C 00 D8 40 */ cmplw r0, r27
+/* 802A91B4 002A4E14 40 82 00 14 */ bne lbl_802A91C8
+/* 802A91B8 002A4E18 7F E3 FB 78 */ mr r3, r31
+/* 802A91BC 002A4E1C 4B FC 55 C9 */ bl OSRestoreInterrupts
+/* 802A91C0 002A4E20 38 00 00 00 */ li r0, 0
+/* 802A91C4 002A4E24 48 00 00 7C */ b lbl_802A9240
+lbl_802A91C8:
+/* 802A91C8 002A4E28 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A91CC 002A4E2C 38 80 00 00 */ li r4, 0
+/* 802A91D0 002A4E30 80 7E 01 64 */ lwz r3, 0x164(r30)
+/* 802A91D4 002A4E34 38 A0 00 30 */ li r5, 0x30
+/* 802A91D8 002A4E38 7C 00 07 74 */ extsb r0, r0
+/* 802A91DC 002A4E3C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A91E0 002A4E40 7C 63 02 14 */ add r3, r3, r0
+/* 802A91E4 002A4E44 4B D5 AF 21 */ bl memset
+/* 802A91E8 002A4E48 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A91EC 002A4E4C 38 81 00 38 */ addi r4, r1, 0x38
+/* 802A91F0 002A4E50 80 7E 01 64 */ lwz r3, 0x164(r30)
+/* 802A91F4 002A4E54 38 A0 00 30 */ li r5, 0x30
+/* 802A91F8 002A4E58 7C 00 07 74 */ extsb r0, r0
+/* 802A91FC 002A4E5C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9200 002A4E60 7C 63 02 14 */ add r3, r3, r0
+/* 802A9204 002A4E64 4B D5 AD FD */ bl memcpy
+/* 802A9208 002A4E68 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A920C 002A4E6C 7F E3 FB 78 */ mr r3, r31
+/* 802A9210 002A4E70 80 9E 01 68 */ lwz r4, 0x168(r30)
+/* 802A9214 002A4E74 7C 06 07 74 */ extsb r6, r0
+/* 802A9218 002A4E78 38 84 FF FF */ addi r4, r4, -1
+/* 802A921C 002A4E7C 7C A4 30 50 */ subf r5, r4, r6
+/* 802A9220 002A4E80 38 06 00 01 */ addi r0, r6, 1
+/* 802A9224 002A4E84 7C 86 20 50 */ subf r4, r6, r4
+/* 802A9228 002A4E88 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A922C 002A4E8C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A9230 002A4E90 7C 00 20 78 */ andc r0, r0, r4
+/* 802A9234 002A4E94 98 1E 01 61 */ stb r0, 0x161(r30)
+/* 802A9238 002A4E98 4B FC 55 4D */ bl OSRestoreInterrupts
+/* 802A923C 002A4E9C 38 00 00 01 */ li r0, 1
+lbl_802A9240:
+/* 802A9240 002A4EA0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A9244 002A4EA4 41 82 00 0C */ beq lbl_802A9250
+/* 802A9248 002A4EA8 3B 40 00 00 */ li r26, 0
+/* 802A924C 002A4EAC 48 00 00 1C */ b lbl_802A9268
+lbl_802A9250:
+/* 802A9250 002A4EB0 3B 40 FF FE */ li r26, -2
+/* 802A9254 002A4EB4 4B FC 55 09 */ bl OSDisableInterrupts
+/* 802A9258 002A4EB8 38 00 00 00 */ li r0, 0
+/* 802A925C 002A4EBC 98 1E 09 8C */ stb r0, 0x98c(r30)
+/* 802A9260 002A4EC0 90 1E 09 88 */ stw r0, 0x988(r30)
+/* 802A9264 002A4EC4 4B FC 55 21 */ bl OSRestoreInterrupts
+lbl_802A9268:
+/* 802A9268 002A4EC8 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A926C 002A4ECC 41 82 00 20 */ beq lbl_802A928C
+/* 802A9270 002A4ED0 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A9274 002A4ED4 41 82 00 18 */ beq lbl_802A928C
+/* 802A9278 002A4ED8 7F AC EB 78 */ mr r12, r29
+/* 802A927C 002A4EDC 7F 83 E3 78 */ mr r3, r28
+/* 802A9280 002A4EE0 7F 44 D3 78 */ mr r4, r26
+/* 802A9284 002A4EE4 7D 89 03 A6 */ mtctr r12
+/* 802A9288 002A4EE8 4E 80 04 21 */ bctrl
+lbl_802A928C:
+/* 802A928C 002A4EEC 39 61 00 90 */ addi r11, r1, 0x90
+/* 802A9290 002A4EF0 7F 43 D3 78 */ mr r3, r26
+/* 802A9294 002A4EF4 4B F1 DE D9 */ bl _restgpr_25
+/* 802A9298 002A4EF8 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 802A929C 002A4EFC 7C 08 03 A6 */ mtlr r0
+/* 802A92A0 002A4F00 38 21 00 90 */ addi r1, r1, 0x90
+/* 802A92A4 002A4F04 4E 80 00 20 */ blr
+
+.global WPADControlMotor
+WPADControlMotor:
+/* 802A92A8 002A4F08 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A92AC 002A4F0C 7C 08 02 A6 */ mflr r0
+/* 802A92B0 002A4F10 3C A0 80 53 */ lis r5, lbl_80536D70@ha
+/* 802A92B4 002A4F14 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A92B8 002A4F18 54 60 10 3A */ slwi r0, r3, 2
+/* 802A92BC 002A4F1C 38 A5 6D 70 */ addi r5, r5, lbl_80536D70@l
+/* 802A92C0 002A4F20 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A92C4 002A4F24 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A92C8 002A4F28 7C 9E 23 78 */ mr r30, r4
+/* 802A92CC 002A4F2C 7F E5 00 2E */ lwzx r31, r5, r0
+/* 802A92D0 002A4F30 4B FC 54 8D */ bl OSDisableInterrupts
+/* 802A92D4 002A4F34 80 1F 08 BC */ lwz r0, 0x8bc(r31)
+/* 802A92D8 002A4F38 2C 00 FF FF */ cmpwi r0, -1
+/* 802A92DC 002A4F3C 40 82 00 0C */ bne lbl_802A92E8
+/* 802A92E0 002A4F40 4B FC 54 A5 */ bl OSRestoreInterrupts
+/* 802A92E4 002A4F44 48 00 00 78 */ b lbl_802A935C
+lbl_802A92E8:
+/* 802A92E8 002A4F48 80 0D AE 5C */ lwz r0, lbl_8064011C-_SDA_BASE_(r13)
+/* 802A92EC 002A4F4C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A92F0 002A4F50 40 82 00 20 */ bne lbl_802A9310
+/* 802A92F4 002A4F54 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A92F8 002A4F58 40 82 00 10 */ bne lbl_802A9308
+/* 802A92FC 002A4F5C 80 1F 08 D4 */ lwz r0, 0x8d4(r31)
+/* 802A9300 002A4F60 2C 00 00 01 */ cmpwi r0, 1
+/* 802A9304 002A4F64 41 82 00 0C */ beq lbl_802A9310
+lbl_802A9308:
+/* 802A9308 002A4F68 4B FC 54 7D */ bl OSRestoreInterrupts
+/* 802A930C 002A4F6C 48 00 00 50 */ b lbl_802A935C
+lbl_802A9310:
+/* 802A9310 002A4F70 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A9314 002A4F74 40 82 00 10 */ bne lbl_802A9324
+/* 802A9318 002A4F78 80 1F 08 D4 */ lwz r0, 0x8d4(r31)
+/* 802A931C 002A4F7C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A9320 002A4F80 41 82 00 18 */ beq lbl_802A9338
+lbl_802A9324:
+/* 802A9324 002A4F84 28 1E 00 01 */ cmplwi r30, 1
+/* 802A9328 002A4F88 40 82 00 18 */ bne lbl_802A9340
+/* 802A932C 002A4F8C 80 1F 08 D4 */ lwz r0, 0x8d4(r31)
+/* 802A9330 002A4F90 2C 00 00 01 */ cmpwi r0, 1
+/* 802A9334 002A4F94 40 82 00 0C */ bne lbl_802A9340
+lbl_802A9338:
+/* 802A9338 002A4F98 4B FC 54 4D */ bl OSRestoreInterrupts
+/* 802A933C 002A4F9C 48 00 00 20 */ b lbl_802A935C
+lbl_802A9340:
+/* 802A9340 002A4FA0 7C 9E 00 D0 */ neg r4, r30
+/* 802A9344 002A4FA4 38 00 00 01 */ li r0, 1
+/* 802A9348 002A4FA8 7C 84 F3 78 */ or r4, r4, r30
+/* 802A934C 002A4FAC 54 84 0F FE */ srwi r4, r4, 0x1f
+/* 802A9350 002A4FB0 90 9F 08 D4 */ stw r4, 0x8d4(r31)
+/* 802A9354 002A4FB4 90 1F 08 D0 */ stw r0, 0x8d0(r31)
+/* 802A9358 002A4FB8 4B FC 54 2D */ bl OSRestoreInterrupts
+lbl_802A935C:
+/* 802A935C 002A4FBC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A9360 002A4FC0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A9364 002A4FC4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A9368 002A4FC8 7C 08 03 A6 */ mtlr r0
+/* 802A936C 002A4FCC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A9370 002A4FD0 4E 80 00 20 */ blr
+
+.global WPADEnableMotor
+WPADEnableMotor:
+/* 802A9374 002A4FD4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A9378 002A4FD8 7C 08 02 A6 */ mflr r0
+/* 802A937C 002A4FDC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A9380 002A4FE0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A9384 002A4FE4 7C 7F 1B 78 */ mr r31, r3
+/* 802A9388 002A4FE8 4B FC 53 D5 */ bl OSDisableInterrupts
+/* 802A938C 002A4FEC 93 ED AE 5C */ stw r31, lbl_8064011C-_SDA_BASE_(r13)
+/* 802A9390 002A4FF0 4B FC 53 F5 */ bl OSRestoreInterrupts
+/* 802A9394 002A4FF4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A9398 002A4FF8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A939C 002A4FFC 7C 08 03 A6 */ mtlr r0
+/* 802A93A0 002A5000 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A93A4 002A5004 4E 80 00 20 */ blr
+
+.global WPADIsMotorEnabled
+WPADIsMotorEnabled:
+/* 802A93A8 002A5008 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A93AC 002A500C 7C 08 02 A6 */ mflr r0
+/* 802A93B0 002A5010 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A93B4 002A5014 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A93B8 002A5018 4B FC 53 A5 */ bl OSDisableInterrupts
+/* 802A93BC 002A501C 83 ED AE 5C */ lwz r31, lbl_8064011C-_SDA_BASE_(r13)
+/* 802A93C0 002A5020 4B FC 53 C5 */ bl OSRestoreInterrupts
+/* 802A93C4 002A5024 7F E3 FB 78 */ mr r3, r31
+/* 802A93C8 002A5028 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A93CC 002A502C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A93D0 002A5030 7C 08 03 A6 */ mtlr r0
+/* 802A93D4 002A5034 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A93D8 002A5038 4E 80 00 20 */ blr
+
+.global WPADControlLed
+WPADControlLed:
+/* 802A93DC 002A503C 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802A93E0 002A5040 7C 08 02 A6 */ mflr r0
+/* 802A93E4 002A5044 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802A93E8 002A5048 39 61 00 80 */ addi r11, r1, 0x80
+/* 802A93EC 002A504C 4B F1 DD 39 */ bl _savegpr_26
+/* 802A93F0 002A5050 3C C0 80 53 */ lis r6, lbl_80536D70@ha
+/* 802A93F4 002A5054 54 60 10 3A */ slwi r0, r3, 2
+/* 802A93F8 002A5058 38 C6 6D 70 */ addi r6, r6, lbl_80536D70@l
+/* 802A93FC 002A505C 7C 7C 1B 78 */ mr r28, r3
+/* 802A9400 002A5060 7F C6 00 2E */ lwzx r30, r6, r0
+/* 802A9404 002A5064 7C 9A 23 78 */ mr r26, r4
+/* 802A9408 002A5068 7C BD 2B 78 */ mr r29, r5
+/* 802A940C 002A506C 4B FC 53 51 */ bl OSDisableInterrupts
+/* 802A9410 002A5070 83 FE 08 BC */ lwz r31, 0x8bc(r30)
+/* 802A9414 002A5074 83 7E 08 DC */ lwz r27, 0x8dc(r30)
+/* 802A9418 002A5078 4B FC 53 6D */ bl OSRestoreInterrupts
+/* 802A941C 002A507C 2C 1F FF FF */ cmpwi r31, -1
+/* 802A9420 002A5080 41 82 01 64 */ beq lbl_802A9584
+/* 802A9424 002A5084 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A9428 002A5088 40 82 00 0C */ bne lbl_802A9434
+/* 802A942C 002A508C 3B E0 FF FE */ li r31, -2
+/* 802A9430 002A5090 48 00 01 54 */ b lbl_802A9584
+lbl_802A9434:
+/* 802A9434 002A5094 57 40 26 36 */ rlwinm r0, r26, 4, 0x18, 0x1b
+/* 802A9438 002A5098 38 60 00 01 */ li r3, 1
+/* 802A943C 002A509C B0 61 00 22 */ sth r3, 0x22(r1)
+/* 802A9440 002A50A0 39 80 00 11 */ li r12, 0x11
+/* 802A9444 002A50A4 81 41 00 10 */ lwz r10, 0x10(r1)
+/* 802A9448 002A50A8 98 01 00 0C */ stb r0, 0xc(r1)
+/* 802A944C 002A50AC 81 21 00 14 */ lwz r9, 0x14(r1)
+/* 802A9450 002A50B0 81 61 00 0C */ lwz r11, 0xc(r1)
+/* 802A9454 002A50B4 81 01 00 18 */ lwz r8, 0x18(r1)
+/* 802A9458 002A50B8 80 E1 00 1C */ lwz r7, 0x1c(r1)
+/* 802A945C 002A50BC 80 C1 00 20 */ lwz r6, 0x20(r1)
+/* 802A9460 002A50C0 80 A1 00 24 */ lwz r5, 0x24(r1)
+/* 802A9464 002A50C4 80 81 00 28 */ lwz r4, 0x28(r1)
+/* 802A9468 002A50C8 80 61 00 2C */ lwz r3, 0x2c(r1)
+/* 802A946C 002A50CC 80 01 00 30 */ lwz r0, 0x30(r1)
+/* 802A9470 002A50D0 91 81 00 08 */ stw r12, 8(r1)
+/* 802A9474 002A50D4 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 802A9478 002A50D8 91 81 00 38 */ stw r12, 0x38(r1)
+/* 802A947C 002A50DC 91 61 00 3C */ stw r11, 0x3c(r1)
+/* 802A9480 002A50E0 91 41 00 40 */ stw r10, 0x40(r1)
+/* 802A9484 002A50E4 91 21 00 44 */ stw r9, 0x44(r1)
+/* 802A9488 002A50E8 91 01 00 48 */ stw r8, 0x48(r1)
+/* 802A948C 002A50EC 90 E1 00 4C */ stw r7, 0x4c(r1)
+/* 802A9490 002A50F0 90 C1 00 50 */ stw r6, 0x50(r1)
+/* 802A9494 002A50F4 90 A1 00 54 */ stw r5, 0x54(r1)
+/* 802A9498 002A50F8 90 81 00 58 */ stw r4, 0x58(r1)
+/* 802A949C 002A50FC 90 61 00 5C */ stw r3, 0x5c(r1)
+/* 802A94A0 002A5100 90 01 00 60 */ stw r0, 0x60(r1)
+/* 802A94A4 002A5104 93 A1 00 64 */ stw r29, 0x64(r1)
+/* 802A94A8 002A5108 4B FC 52 B5 */ bl OSDisableInterrupts
+/* 802A94AC 002A510C 7C 7F 1B 78 */ mr r31, r3
+/* 802A94B0 002A5110 4B FC 52 AD */ bl OSDisableInterrupts
+/* 802A94B4 002A5114 88 9E 01 60 */ lbz r4, 0x160(r30)
+/* 802A94B8 002A5118 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A94BC 002A511C 7C 04 00 50 */ subf r0, r4, r0
+/* 802A94C0 002A5120 7C 1B 07 75 */ extsb. r27, r0
+/* 802A94C4 002A5124 40 80 00 10 */ bge lbl_802A94D4
+/* 802A94C8 002A5128 80 1E 01 68 */ lwz r0, 0x168(r30)
+/* 802A94CC 002A512C 7C 1B 02 14 */ add r0, r27, r0
+/* 802A94D0 002A5130 7C 1B 07 74 */ extsb r27, r0
+lbl_802A94D4:
+/* 802A94D4 002A5134 4B FC 52 B1 */ bl OSRestoreInterrupts
+/* 802A94D8 002A5138 80 7E 01 68 */ lwz r3, 0x168(r30)
+/* 802A94DC 002A513C 38 03 FF FF */ addi r0, r3, -1
+/* 802A94E0 002A5140 7C 00 D8 40 */ cmplw r0, r27
+/* 802A94E4 002A5144 40 82 00 14 */ bne lbl_802A94F8
+/* 802A94E8 002A5148 7F E3 FB 78 */ mr r3, r31
+/* 802A94EC 002A514C 4B FC 52 99 */ bl OSRestoreInterrupts
+/* 802A94F0 002A5150 38 80 00 00 */ li r4, 0
+/* 802A94F4 002A5154 48 00 00 7C */ b lbl_802A9570
+lbl_802A94F8:
+/* 802A94F8 002A5158 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A94FC 002A515C 38 80 00 00 */ li r4, 0
+/* 802A9500 002A5160 80 7E 01 64 */ lwz r3, 0x164(r30)
+/* 802A9504 002A5164 38 A0 00 30 */ li r5, 0x30
+/* 802A9508 002A5168 7C 00 07 74 */ extsb r0, r0
+/* 802A950C 002A516C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9510 002A5170 7C 63 02 14 */ add r3, r3, r0
+/* 802A9514 002A5174 4B D5 AB F1 */ bl memset
+/* 802A9518 002A5178 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A951C 002A517C 38 81 00 38 */ addi r4, r1, 0x38
+/* 802A9520 002A5180 80 7E 01 64 */ lwz r3, 0x164(r30)
+/* 802A9524 002A5184 38 A0 00 30 */ li r5, 0x30
+/* 802A9528 002A5188 7C 00 07 74 */ extsb r0, r0
+/* 802A952C 002A518C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9530 002A5190 7C 63 02 14 */ add r3, r3, r0
+/* 802A9534 002A5194 4B D5 AA CD */ bl memcpy
+/* 802A9538 002A5198 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802A953C 002A519C 7F E3 FB 78 */ mr r3, r31
+/* 802A9540 002A51A0 80 9E 01 68 */ lwz r4, 0x168(r30)
+/* 802A9544 002A51A4 7C 06 07 74 */ extsb r6, r0
+/* 802A9548 002A51A8 38 84 FF FF */ addi r4, r4, -1
+/* 802A954C 002A51AC 7C A4 30 50 */ subf r5, r4, r6
+/* 802A9550 002A51B0 38 06 00 01 */ addi r0, r6, 1
+/* 802A9554 002A51B4 7C 86 20 50 */ subf r4, r6, r4
+/* 802A9558 002A51B8 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A955C 002A51BC 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A9560 002A51C0 7C 00 20 78 */ andc r0, r0, r4
+/* 802A9564 002A51C4 98 1E 01 61 */ stb r0, 0x161(r30)
+/* 802A9568 002A51C8 4B FC 52 1D */ bl OSRestoreInterrupts
+/* 802A956C 002A51CC 38 80 00 01 */ li r4, 1
+lbl_802A9570:
+/* 802A9570 002A51D0 7C 64 00 D0 */ neg r3, r4
+/* 802A9574 002A51D4 38 00 FF FE */ li r0, -2
+/* 802A9578 002A51D8 7C 63 23 78 */ or r3, r3, r4
+/* 802A957C 002A51DC 7C 63 FE 70 */ srawi r3, r3, 0x1f
+/* 802A9580 002A51E0 7C 1F 18 78 */ andc r31, r0, r3
+lbl_802A9584:
+/* 802A9584 002A51E4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A9588 002A51E8 41 82 00 20 */ beq lbl_802A95A8
+/* 802A958C 002A51EC 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A9590 002A51F0 41 82 00 18 */ beq lbl_802A95A8
+/* 802A9594 002A51F4 7F AC EB 78 */ mr r12, r29
+/* 802A9598 002A51F8 7F 83 E3 78 */ mr r3, r28
+/* 802A959C 002A51FC 7F E4 FB 78 */ mr r4, r31
+/* 802A95A0 002A5200 7D 89 03 A6 */ mtctr r12
+/* 802A95A4 002A5204 4E 80 04 21 */ bctrl
+lbl_802A95A8:
+/* 802A95A8 002A5208 39 61 00 80 */ addi r11, r1, 0x80
+/* 802A95AC 002A520C 7F E3 FB 78 */ mr r3, r31
+/* 802A95B0 002A5210 4B F1 DB C1 */ bl _restgpr_26
+/* 802A95B4 002A5214 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802A95B8 002A5218 7C 08 03 A6 */ mtlr r0
+/* 802A95BC 002A521C 38 21 00 80 */ addi r1, r1, 0x80
+/* 802A95C0 002A5220 4E 80 00 20 */ blr
+
+.global WPADSaveConfig
+WPADSaveConfig:
+/* 802A95C4 002A5224 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A95C8 002A5228 7C 08 02 A6 */ mflr r0
+/* 802A95CC 002A522C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A95D0 002A5230 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A95D4 002A5234 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A95D8 002A5238 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A95DC 002A523C 7C 7D 1B 78 */ mr r29, r3
+/* 802A95E0 002A5240 48 04 14 0D */ bl func_802EA9EC
+/* 802A95E4 002A5244 2C 03 00 00 */ cmpwi r3, 0
+/* 802A95E8 002A5248 41 82 00 0C */ beq lbl_802A95F4
+/* 802A95EC 002A524C 38 60 00 00 */ li r3, 0
+/* 802A95F0 002A5250 48 00 00 64 */ b lbl_802A9654
+lbl_802A95F4:
+/* 802A95F4 002A5254 4B FC 51 69 */ bl OSDisableInterrupts
+/* 802A95F8 002A5258 80 8D AE 5C */ lwz r4, lbl_8064011C-_SDA_BASE_(r13)
+/* 802A95FC 002A525C 8B CD AE 5A */ lbz r30, lbl_8064011A-_SDA_BASE_(r13)
+/* 802A9600 002A5260 7C 04 00 D0 */ neg r0, r4
+/* 802A9604 002A5264 7C 00 23 78 */ or r0, r0, r4
+/* 802A9608 002A5268 54 1F 0F FE */ srwi r31, r0, 0x1f
+/* 802A960C 002A526C 4B FC 51 79 */ bl OSRestoreInterrupts
+/* 802A9610 002A5270 7F C3 F3 78 */ mr r3, r30
+/* 802A9614 002A5274 48 04 31 71 */ bl func_802EC784
+/* 802A9618 002A5278 54 7E 07 FE */ clrlwi r30, r3, 0x1f
+/* 802A961C 002A527C 7F E3 FB 78 */ mr r3, r31
+/* 802A9620 002A5280 48 04 30 B5 */ bl func_802EC6D4
+/* 802A9624 002A5284 7F DE 18 39 */ and. r30, r30, r3
+/* 802A9628 002A5288 41 82 00 10 */ beq lbl_802A9638
+/* 802A962C 002A528C 7F A3 EB 78 */ mr r3, r29
+/* 802A9630 002A5290 48 04 27 9D */ bl func_802EBDCC
+/* 802A9634 002A5294 48 00 00 1C */ b lbl_802A9650
+lbl_802A9638:
+/* 802A9638 002A5298 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A963C 002A529C 41 82 00 14 */ beq lbl_802A9650
+/* 802A9640 002A52A0 7F AC EB 78 */ mr r12, r29
+/* 802A9644 002A52A4 38 60 00 02 */ li r3, 2
+/* 802A9648 002A52A8 7D 89 03 A6 */ mtctr r12
+/* 802A964C 002A52AC 4E 80 04 21 */ bctrl
+lbl_802A9650:
+/* 802A9650 002A52B0 7F C3 F3 78 */ mr r3, r30
+lbl_802A9654:
+/* 802A9654 002A52B4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A9658 002A52B8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A965C 002A52BC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A9660 002A52C0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A9664 002A52C4 7C 08 03 A6 */ mtlr r0
+/* 802A9668 002A52C8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A966C 002A52CC 4E 80 00 20 */ blr
+
+.global WPADRead
+WPADRead:
+/* 802A9670 002A52D0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A9674 002A52D4 7C 08 02 A6 */ mflr r0
+/* 802A9678 002A52D8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A967C 002A52DC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A9680 002A52E0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A9684 002A52E4 7C 9E 23 78 */ mr r30, r4
+/* 802A9688 002A52E8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A968C 002A52EC 7C 7D 1B 78 */ mr r29, r3
+/* 802A9690 002A52F0 4B FC 50 CD */ bl OSDisableInterrupts
+/* 802A9694 002A52F4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A9698 002A52F8 57 A0 10 3A */ slwi r0, r29, 2
+/* 802A969C 002A52FC 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A96A0 002A5300 7C 7F 1B 78 */ mr r31, r3
+/* 802A96A4 002A5304 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A96A8 002A5308 88 04 08 C8 */ lbz r0, 0x8c8(r4)
+/* 802A96AC 002A530C 7C 00 00 34 */ cntlzw r0, r0
+/* 802A96B0 002A5310 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
+/* 802A96B4 002A5314 1C 00 00 60 */ mulli r0, r0, 0x60
+/* 802A96B8 002A5318 7C 64 02 14 */ add r3, r4, r0
+/* 802A96BC 002A531C 88 03 00 C9 */ lbz r0, 0xc9(r3)
+/* 802A96C0 002A5320 3B A3 00 A0 */ addi r29, r3, 0xa0
+/* 802A96C4 002A5324 7C 00 07 74 */ extsb r0, r0
+/* 802A96C8 002A5328 2C 00 FF FE */ cmpwi r0, -2
+/* 802A96CC 002A532C 41 82 00 94 */ beq lbl_802A9760
+/* 802A96D0 002A5330 40 80 00 10 */ bge lbl_802A96E0
+/* 802A96D4 002A5334 2C 00 FF F9 */ cmpwi r0, -7
+/* 802A96D8 002A5338 41 82 00 88 */ beq lbl_802A9760
+/* 802A96DC 002A533C 48 00 00 98 */ b lbl_802A9774
+lbl_802A96E0:
+/* 802A96E0 002A5340 2C 00 00 00 */ cmpwi r0, 0
+/* 802A96E4 002A5344 41 82 00 08 */ beq lbl_802A96EC
+/* 802A96E8 002A5348 48 00 00 8C */ b lbl_802A9774
+lbl_802A96EC:
+/* 802A96EC 002A534C 80 64 08 B8 */ lwz r3, 0x8b8(r4)
+/* 802A96F0 002A5350 28 03 00 02 */ cmplwi r3, 2
+/* 802A96F4 002A5354 41 81 00 18 */ bgt lbl_802A970C
+/* 802A96F8 002A5358 7F C3 F3 78 */ mr r3, r30
+/* 802A96FC 002A535C 7F A4 EB 78 */ mr r4, r29
+/* 802A9700 002A5360 38 A0 00 2A */ li r5, 0x2a
+/* 802A9704 002A5364 4B D5 A8 FD */ bl memcpy
+/* 802A9708 002A5368 48 00 00 E4 */ b lbl_802A97EC
+lbl_802A970C:
+/* 802A970C 002A536C 38 03 FF FD */ addi r0, r3, -3
+/* 802A9710 002A5370 28 00 00 02 */ cmplwi r0, 2
+/* 802A9714 002A5374 41 81 00 18 */ bgt lbl_802A972C
+/* 802A9718 002A5378 7F C3 F3 78 */ mr r3, r30
+/* 802A971C 002A537C 7F A4 EB 78 */ mr r4, r29
+/* 802A9720 002A5380 38 A0 00 32 */ li r5, 0x32
+/* 802A9724 002A5384 4B D5 A8 DD */ bl memcpy
+/* 802A9728 002A5388 48 00 00 C4 */ b lbl_802A97EC
+lbl_802A972C:
+/* 802A972C 002A538C 38 03 FF FA */ addi r0, r3, -6
+/* 802A9730 002A5390 28 00 00 02 */ cmplwi r0, 2
+/* 802A9734 002A5394 41 81 00 18 */ bgt lbl_802A974C
+/* 802A9738 002A5398 7F C3 F3 78 */ mr r3, r30
+/* 802A973C 002A539C 7F A4 EB 78 */ mr r4, r29
+/* 802A9740 002A53A0 38 A0 00 36 */ li r5, 0x36
+/* 802A9744 002A53A4 4B D5 A8 BD */ bl memcpy
+/* 802A9748 002A53A8 48 00 00 A4 */ b lbl_802A97EC
+lbl_802A974C:
+/* 802A974C 002A53AC 7F C3 F3 78 */ mr r3, r30
+/* 802A9750 002A53B0 7F A4 EB 78 */ mr r4, r29
+/* 802A9754 002A53B4 38 A0 00 5A */ li r5, 0x5a
+/* 802A9758 002A53B8 4B D5 A8 A9 */ bl memcpy
+/* 802A975C 002A53BC 48 00 00 90 */ b lbl_802A97EC
+lbl_802A9760:
+/* 802A9760 002A53C0 7F C3 F3 78 */ mr r3, r30
+/* 802A9764 002A53C4 7F A4 EB 78 */ mr r4, r29
+/* 802A9768 002A53C8 38 A0 00 2A */ li r5, 0x2a
+/* 802A976C 002A53CC 4B D5 A8 95 */ bl memcpy
+/* 802A9770 002A53D0 48 00 00 7C */ b lbl_802A97EC
+lbl_802A9774:
+/* 802A9774 002A53D4 80 64 08 B8 */ lwz r3, 0x8b8(r4)
+/* 802A9778 002A53D8 28 03 00 02 */ cmplwi r3, 2
+/* 802A977C 002A53DC 41 81 00 18 */ bgt lbl_802A9794
+/* 802A9780 002A53E0 7F C3 F3 78 */ mr r3, r30
+/* 802A9784 002A53E4 38 80 00 00 */ li r4, 0
+/* 802A9788 002A53E8 38 A0 00 2A */ li r5, 0x2a
+/* 802A978C 002A53EC 4B D5 A9 79 */ bl memset
+/* 802A9790 002A53F0 48 00 00 54 */ b lbl_802A97E4
+lbl_802A9794:
+/* 802A9794 002A53F4 38 03 FF FD */ addi r0, r3, -3
+/* 802A9798 002A53F8 28 00 00 02 */ cmplwi r0, 2
+/* 802A979C 002A53FC 41 81 00 18 */ bgt lbl_802A97B4
+/* 802A97A0 002A5400 7F C3 F3 78 */ mr r3, r30
+/* 802A97A4 002A5404 38 80 00 00 */ li r4, 0
+/* 802A97A8 002A5408 38 A0 00 32 */ li r5, 0x32
+/* 802A97AC 002A540C 4B D5 A9 59 */ bl memset
+/* 802A97B0 002A5410 48 00 00 34 */ b lbl_802A97E4
+lbl_802A97B4:
+/* 802A97B4 002A5414 38 03 FF FA */ addi r0, r3, -6
+/* 802A97B8 002A5418 28 00 00 02 */ cmplwi r0, 2
+/* 802A97BC 002A541C 41 81 00 18 */ bgt lbl_802A97D4
+/* 802A97C0 002A5420 7F C3 F3 78 */ mr r3, r30
+/* 802A97C4 002A5424 38 80 00 00 */ li r4, 0
+/* 802A97C8 002A5428 38 A0 00 36 */ li r5, 0x36
+/* 802A97CC 002A542C 4B D5 A9 39 */ bl memset
+/* 802A97D0 002A5430 48 00 00 14 */ b lbl_802A97E4
+lbl_802A97D4:
+/* 802A97D4 002A5434 7F C3 F3 78 */ mr r3, r30
+/* 802A97D8 002A5438 38 80 00 00 */ li r4, 0
+/* 802A97DC 002A543C 38 A0 00 5A */ li r5, 0x5a
+/* 802A97E0 002A5440 4B D5 A9 25 */ bl memset
+lbl_802A97E4:
+/* 802A97E4 002A5444 88 1D 00 29 */ lbz r0, 0x29(r29)
+/* 802A97E8 002A5448 98 1E 00 29 */ stb r0, 0x29(r30)
+lbl_802A97EC:
+/* 802A97EC 002A544C 7F E3 FB 78 */ mr r3, r31
+/* 802A97F0 002A5450 4B FC 4F 95 */ bl OSRestoreInterrupts
+/* 802A97F4 002A5454 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A97F8 002A5458 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A97FC 002A545C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A9800 002A5460 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A9804 002A5464 7C 08 03 A6 */ mtlr r0
+/* 802A9808 002A5468 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A980C 002A546C 4E 80 00 20 */ blr
+
+.global WPADSetAutoSamplingBuf
+WPADSetAutoSamplingBuf:
+/* 802A9810 002A5470 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A9814 002A5474 7C 08 02 A6 */ mflr r0
+/* 802A9818 002A5478 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A981C 002A547C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A9820 002A5480 4B F1 D9 05 */ bl _savegpr_26
+/* 802A9824 002A5484 3C C0 80 44 */ lis r6, lbl_8043C240@ha
+/* 802A9828 002A5488 7C 7A 1B 78 */ mr r26, r3
+/* 802A982C 002A548C 7C 9E 23 78 */ mr r30, r4
+/* 802A9830 002A5490 7C BF 2B 78 */ mr r31, r5
+/* 802A9834 002A5494 38 66 C2 40 */ addi r3, r6, lbl_8043C240@l
+/* 802A9838 002A5498 4C C6 31 82 */ crclr 6
+/* 802A983C 002A549C 48 00 A0 25 */ bl func_802B3860
+/* 802A9840 002A54A0 4B FC 4F 1D */ bl OSDisableInterrupts
+/* 802A9844 002A54A4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A9848 002A54A8 57 40 10 3A */ slwi r0, r26, 2
+/* 802A984C 002A54AC 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A9850 002A54B0 7C 7B 1B 78 */ mr r27, r3
+/* 802A9854 002A54B4 7F 84 00 2E */ lwzx r28, r4, r0
+/* 802A9858 002A54B8 3B A0 FF FC */ li r29, -4
+/* 802A985C 002A54BC 80 1C 08 BC */ lwz r0, 0x8bc(r28)
+/* 802A9860 002A54C0 2C 00 FF FF */ cmpwi r0, -1
+/* 802A9864 002A54C4 40 82 00 08 */ bne lbl_802A986C
+/* 802A9868 002A54C8 3B A0 FF FF */ li r29, -1
+lbl_802A986C:
+/* 802A986C 002A54CC 80 7C 08 B8 */ lwz r3, 0x8b8(r28)
+/* 802A9870 002A54D0 28 03 00 02 */ cmplwi r3, 2
+/* 802A9874 002A54D4 41 81 00 0C */ bgt lbl_802A9880
+/* 802A9878 002A54D8 3B 40 00 2A */ li r26, 0x2a
+/* 802A987C 002A54DC 48 00 00 2C */ b lbl_802A98A8
+lbl_802A9880:
+/* 802A9880 002A54E0 38 03 FF FD */ addi r0, r3, -3
+/* 802A9884 002A54E4 28 00 00 02 */ cmplwi r0, 2
+/* 802A9888 002A54E8 41 81 00 0C */ bgt lbl_802A9894
+/* 802A988C 002A54EC 3B 40 00 32 */ li r26, 0x32
+/* 802A9890 002A54F0 48 00 00 18 */ b lbl_802A98A8
+lbl_802A9894:
+/* 802A9894 002A54F4 38 03 FF FA */ addi r0, r3, -6
+/* 802A9898 002A54F8 3B 40 00 5A */ li r26, 0x5a
+/* 802A989C 002A54FC 28 00 00 02 */ cmplwi r0, 2
+/* 802A98A0 002A5500 41 81 00 08 */ bgt lbl_802A98A8
+/* 802A98A4 002A5504 3B 40 00 36 */ li r26, 0x36
+lbl_802A98A8:
+/* 802A98A8 002A5508 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A98AC 002A550C 41 82 00 BC */ beq lbl_802A9968
+/* 802A98B0 002A5510 7C BA F9 D6 */ mullw r5, r26, r31
+/* 802A98B4 002A5514 7F C3 F3 78 */ mr r3, r30
+/* 802A98B8 002A5518 38 80 00 00 */ li r4, 0
+/* 802A98BC 002A551C 4B D5 A8 49 */ bl memset
+/* 802A98C0 002A5520 28 1F 00 00 */ cmplwi r31, 0
+/* 802A98C4 002A5524 7F E3 FB 78 */ mr r3, r31
+/* 802A98C8 002A5528 38 80 00 00 */ li r4, 0
+/* 802A98CC 002A552C 40 81 00 90 */ ble lbl_802A995C
+/* 802A98D0 002A5530 57 E0 E8 FF */ rlwinm. r0, r31, 0x1d, 3, 0x1f
+/* 802A98D4 002A5534 7C 09 03 A6 */ mtctr r0
+/* 802A98D8 002A5538 41 82 00 70 */ beq lbl_802A9948
+lbl_802A98DC:
+/* 802A98DC 002A553C 7C 7E 22 14 */ add r3, r30, r4
+/* 802A98E0 002A5540 7C 84 D2 14 */ add r4, r4, r26
+/* 802A98E4 002A5544 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A98E8 002A5548 7C 7E 22 14 */ add r3, r30, r4
+/* 802A98EC 002A554C 7C 84 D2 14 */ add r4, r4, r26
+/* 802A98F0 002A5550 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A98F4 002A5554 7C 7E 22 14 */ add r3, r30, r4
+/* 802A98F8 002A5558 7C 84 D2 14 */ add r4, r4, r26
+/* 802A98FC 002A555C 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A9900 002A5560 7C 7E 22 14 */ add r3, r30, r4
+/* 802A9904 002A5564 7C 84 D2 14 */ add r4, r4, r26
+/* 802A9908 002A5568 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A990C 002A556C 7C 7E 22 14 */ add r3, r30, r4
+/* 802A9910 002A5570 7C 84 D2 14 */ add r4, r4, r26
+/* 802A9914 002A5574 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A9918 002A5578 7C 7E 22 14 */ add r3, r30, r4
+/* 802A991C 002A557C 7C 84 D2 14 */ add r4, r4, r26
+/* 802A9920 002A5580 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A9924 002A5584 7C 7E 22 14 */ add r3, r30, r4
+/* 802A9928 002A5588 7C 84 D2 14 */ add r4, r4, r26
+/* 802A992C 002A558C 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A9930 002A5590 7C 7E 22 14 */ add r3, r30, r4
+/* 802A9934 002A5594 7C 84 D2 14 */ add r4, r4, r26
+/* 802A9938 002A5598 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A993C 002A559C 42 00 FF A0 */ bdnz lbl_802A98DC
+/* 802A9940 002A55A0 73 E3 00 07 */ andi. r3, r31, 7
+/* 802A9944 002A55A4 41 82 00 18 */ beq lbl_802A995C
+lbl_802A9948:
+/* 802A9948 002A55A8 7C 69 03 A6 */ mtctr r3
+lbl_802A994C:
+/* 802A994C 002A55AC 7C 7E 22 14 */ add r3, r30, r4
+/* 802A9950 002A55B0 7C 84 D2 14 */ add r4, r4, r26
+/* 802A9954 002A55B4 9B A3 00 29 */ stb r29, 0x29(r3)
+/* 802A9958 002A55B8 42 00 FF F4 */ bdnz lbl_802A994C
+lbl_802A995C:
+/* 802A995C 002A55BC 38 00 FF FF */ li r0, -1
+/* 802A9960 002A55C0 90 1C 08 B0 */ stw r0, 0x8b0(r28)
+/* 802A9964 002A55C4 93 FC 08 B4 */ stw r31, 0x8b4(r28)
+lbl_802A9968:
+/* 802A9968 002A55C8 93 DC 08 AC */ stw r30, 0x8ac(r28)
+/* 802A996C 002A55CC 7F 63 DB 78 */ mr r3, r27
+/* 802A9970 002A55D0 4B FC 4E 15 */ bl OSRestoreInterrupts
+/* 802A9974 002A55D4 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A9978 002A55D8 4B F1 D7 F9 */ bl _restgpr_26
+/* 802A997C 002A55DC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A9980 002A55E0 7C 08 03 A6 */ mtlr r0
+/* 802A9984 002A55E4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A9988 002A55E8 4E 80 00 20 */ blr
+
+.global WPADiExcludeButton
+WPADiExcludeButton:
+/* 802A998C 002A55EC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A9990 002A55F0 7C 08 02 A6 */ mflr r0
+/* 802A9994 002A55F4 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A9998 002A55F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A999C 002A55FC 54 60 10 3A */ slwi r0, r3, 2
+/* 802A99A0 002A5600 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A99A4 002A5604 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A99A8 002A5608 7F E4 00 2E */ lwzx r31, r4, r0
+/* 802A99AC 002A560C 4B FC 4D B1 */ bl OSDisableInterrupts
+/* 802A99B0 002A5610 88 1F 08 C8 */ lbz r0, 0x8c8(r31)
+/* 802A99B4 002A5614 7C 00 00 34 */ cntlzw r0, r0
+/* 802A99B8 002A5618 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
+/* 802A99BC 002A561C 1C 00 00 60 */ mulli r0, r0, 0x60
+/* 802A99C0 002A5620 7C DF 02 14 */ add r6, r31, r0
+/* 802A99C4 002A5624 A0 86 00 A0 */ lhz r4, 0xa0(r6)
+/* 802A99C8 002A5628 54 80 07 BE */ clrlwi r0, r4, 0x1e
+/* 802A99CC 002A562C 2C 00 00 03 */ cmpwi r0, 3
+/* 802A99D0 002A5630 40 82 00 0C */ bne lbl_802A99DC
+/* 802A99D4 002A5634 54 80 07 FA */ rlwinm r0, r4, 0, 0x1f, 0x1d
+/* 802A99D8 002A5638 B0 06 00 A0 */ sth r0, 0xa0(r6)
+lbl_802A99DC:
+/* 802A99DC 002A563C A0 86 00 A0 */ lhz r4, 0xa0(r6)
+/* 802A99E0 002A5640 54 80 07 3A */ rlwinm r0, r4, 0, 0x1c, 0x1d
+/* 802A99E4 002A5644 2C 00 00 0C */ cmpwi r0, 0xc
+/* 802A99E8 002A5648 40 82 00 0C */ bne lbl_802A99F4
+/* 802A99EC 002A564C 54 80 07 B8 */ rlwinm r0, r4, 0, 0x1e, 0x1c
+/* 802A99F0 002A5650 B0 06 00 A0 */ sth r0, 0xa0(r6)
+lbl_802A99F4:
+/* 802A99F4 002A5654 80 9F 08 B8 */ lwz r4, 0x8b8(r31)
+/* 802A99F8 002A5658 38 04 FF FA */ addi r0, r4, -6
+/* 802A99FC 002A565C 28 00 00 02 */ cmplwi r0, 2
+/* 802A9A00 002A5660 41 81 00 38 */ bgt lbl_802A9A38
+/* 802A9A04 002A5664 A0 A6 00 CA */ lhz r5, 0xca(r6)
+/* 802A9A08 002A5668 70 A4 80 02 */ andi. r4, r5, 0x8002
+/* 802A9A0C 002A566C 3C 04 00 00 */ addis r0, r4, 0
+/* 802A9A10 002A5670 28 00 80 02 */ cmplwi r0, 0x8002
+/* 802A9A14 002A5674 40 82 00 0C */ bne lbl_802A9A20
+/* 802A9A18 002A5678 54 A0 04 7E */ clrlwi r0, r5, 0x11
+/* 802A9A1C 002A567C B0 06 00 CA */ sth r0, 0xca(r6)
+lbl_802A9A20:
+/* 802A9A20 002A5680 A0 86 00 CA */ lhz r4, 0xca(r6)
+/* 802A9A24 002A5684 70 80 40 01 */ andi. r0, r4, 0x4001
+/* 802A9A28 002A5688 2C 00 40 01 */ cmpwi r0, 0x4001
+/* 802A9A2C 002A568C 40 82 00 0C */ bne lbl_802A9A38
+/* 802A9A30 002A5690 54 80 04 A0 */ rlwinm r0, r4, 0, 0x12, 0x10
+/* 802A9A34 002A5694 B0 06 00 CA */ sth r0, 0xca(r6)
+lbl_802A9A38:
+/* 802A9A38 002A5698 4B FC 4D 4D */ bl OSRestoreInterrupts
+/* 802A9A3C 002A569C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A9A40 002A56A0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A9A44 002A56A4 7C 08 03 A6 */ mtlr r0
+/* 802A9A48 002A56A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A9A4C 002A56AC 4E 80 00 20 */ blr
+
+.global WPADiCopyOut
+WPADiCopyOut:
+/* 802A9A50 002A56B0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A9A54 002A56B4 7C 08 02 A6 */ mflr r0
+/* 802A9A58 002A56B8 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A9A5C 002A56BC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A9A60 002A56C0 54 60 10 3A */ slwi r0, r3, 2
+/* 802A9A64 002A56C4 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A9A68 002A56C8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A9A6C 002A56CC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A9A70 002A56D0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A9A74 002A56D4 7C 7D 1B 78 */ mr r29, r3
+/* 802A9A78 002A56D8 7F E4 00 2E */ lwzx r31, r4, r0
+/* 802A9A7C 002A56DC 4B FC 4C E1 */ bl OSDisableInterrupts
+/* 802A9A80 002A56E0 88 9F 08 C8 */ lbz r4, 0x8c8(r31)
+/* 802A9A84 002A56E4 7C 7E 1B 78 */ mr r30, r3
+/* 802A9A88 002A56E8 80 1F 08 AC */ lwz r0, 0x8ac(r31)
+/* 802A9A8C 002A56EC 7C 83 00 34 */ cntlzw r3, r4
+/* 802A9A90 002A56F0 54 63 DE 3E */ rlwinm r3, r3, 0x1b, 0x18, 0x1f
+/* 802A9A94 002A56F4 2C 00 00 00 */ cmpwi r0, 0
+/* 802A9A98 002A56F8 1C 03 00 60 */ mulli r0, r3, 0x60
+/* 802A9A9C 002A56FC 7C 7F 02 14 */ add r3, r31, r0
+/* 802A9AA0 002A5700 38 83 00 A0 */ addi r4, r3, 0xa0
+/* 802A9AA4 002A5704 41 82 00 E4 */ beq lbl_802A9B88
+/* 802A9AA8 002A5708 80 7F 08 B0 */ lwz r3, 0x8b0(r31)
+/* 802A9AAC 002A570C 38 63 00 01 */ addi r3, r3, 1
+/* 802A9AB0 002A5710 90 7F 08 B0 */ stw r3, 0x8b0(r31)
+/* 802A9AB4 002A5714 80 1F 08 B4 */ lwz r0, 0x8b4(r31)
+/* 802A9AB8 002A5718 7C 03 00 40 */ cmplw r3, r0
+/* 802A9ABC 002A571C 41 80 00 0C */ blt lbl_802A9AC8
+/* 802A9AC0 002A5720 38 00 00 00 */ li r0, 0
+/* 802A9AC4 002A5724 90 1F 08 B0 */ stw r0, 0x8b0(r31)
+lbl_802A9AC8:
+/* 802A9AC8 002A5728 80 7F 08 B8 */ lwz r3, 0x8b8(r31)
+/* 802A9ACC 002A572C 28 03 00 02 */ cmplwi r3, 2
+/* 802A9AD0 002A5730 41 81 00 20 */ bgt lbl_802A9AF0
+/* 802A9AD4 002A5734 80 1F 08 B0 */ lwz r0, 0x8b0(r31)
+/* 802A9AD8 002A5738 38 A0 00 2A */ li r5, 0x2a
+/* 802A9ADC 002A573C 80 7F 08 AC */ lwz r3, 0x8ac(r31)
+/* 802A9AE0 002A5740 1C 00 00 2A */ mulli r0, r0, 0x2a
+/* 802A9AE4 002A5744 7C 63 02 14 */ add r3, r3, r0
+/* 802A9AE8 002A5748 4B D5 A5 19 */ bl memcpy
+/* 802A9AEC 002A574C 48 00 00 9C */ b lbl_802A9B88
+lbl_802A9AF0:
+/* 802A9AF0 002A5750 38 03 FF FD */ addi r0, r3, -3
+/* 802A9AF4 002A5754 28 00 00 02 */ cmplwi r0, 2
+/* 802A9AF8 002A5758 41 81 00 30 */ bgt lbl_802A9B28
+/* 802A9AFC 002A575C 80 7F 08 B0 */ lwz r3, 0x8b0(r31)
+/* 802A9B00 002A5760 38 A0 00 2A */ li r5, 0x2a
+/* 802A9B04 002A5764 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A9B08 002A5768 1C 63 00 32 */ mulli r3, r3, 0x32
+/* 802A9B0C 002A576C 80 DF 08 AC */ lwz r6, 0x8ac(r31)
+/* 802A9B10 002A5770 7C 00 07 75 */ extsb. r0, r0
+/* 802A9B14 002A5774 7C 66 1A 14 */ add r3, r6, r3
+/* 802A9B18 002A5778 40 82 00 08 */ bne lbl_802A9B20
+/* 802A9B1C 002A577C 38 A0 00 32 */ li r5, 0x32
+lbl_802A9B20:
+/* 802A9B20 002A5780 4B D5 A4 E1 */ bl memcpy
+/* 802A9B24 002A5784 48 00 00 64 */ b lbl_802A9B88
+lbl_802A9B28:
+/* 802A9B28 002A5788 38 03 FF FA */ addi r0, r3, -6
+/* 802A9B2C 002A578C 28 00 00 02 */ cmplwi r0, 2
+/* 802A9B30 002A5790 41 81 00 30 */ bgt lbl_802A9B60
+/* 802A9B34 002A5794 80 7F 08 B0 */ lwz r3, 0x8b0(r31)
+/* 802A9B38 002A5798 38 A0 00 2A */ li r5, 0x2a
+/* 802A9B3C 002A579C 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A9B40 002A57A0 1C 63 00 36 */ mulli r3, r3, 0x36
+/* 802A9B44 002A57A4 80 DF 08 AC */ lwz r6, 0x8ac(r31)
+/* 802A9B48 002A57A8 7C 00 07 75 */ extsb. r0, r0
+/* 802A9B4C 002A57AC 7C 66 1A 14 */ add r3, r6, r3
+/* 802A9B50 002A57B0 40 82 00 08 */ bne lbl_802A9B58
+/* 802A9B54 002A57B4 38 A0 00 36 */ li r5, 0x36
+lbl_802A9B58:
+/* 802A9B58 002A57B8 4B D5 A4 A9 */ bl memcpy
+/* 802A9B5C 002A57BC 48 00 00 2C */ b lbl_802A9B88
+lbl_802A9B60:
+/* 802A9B60 002A57C0 80 7F 08 B0 */ lwz r3, 0x8b0(r31)
+/* 802A9B64 002A57C4 38 A0 00 2A */ li r5, 0x2a
+/* 802A9B68 002A57C8 88 04 00 29 */ lbz r0, 0x29(r4)
+/* 802A9B6C 002A57CC 1C 63 00 5A */ mulli r3, r3, 0x5a
+/* 802A9B70 002A57D0 80 DF 08 AC */ lwz r6, 0x8ac(r31)
+/* 802A9B74 002A57D4 7C 00 07 75 */ extsb. r0, r0
+/* 802A9B78 002A57D8 7C 66 1A 14 */ add r3, r6, r3
+/* 802A9B7C 002A57DC 40 82 00 08 */ bne lbl_802A9B84
+/* 802A9B80 002A57E0 38 A0 00 5A */ li r5, 0x5a
+lbl_802A9B84:
+/* 802A9B84 002A57E4 4B D5 A4 7D */ bl memcpy
+lbl_802A9B88:
+/* 802A9B88 002A57E8 81 9F 08 A8 */ lwz r12, 0x8a8(r31)
+/* 802A9B8C 002A57EC 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A9B90 002A57F0 41 82 00 10 */ beq lbl_802A9BA0
+/* 802A9B94 002A57F4 7F A3 EB 78 */ mr r3, r29
+/* 802A9B98 002A57F8 7D 89 03 A6 */ mtctr r12
+/* 802A9B9C 002A57FC 4E 80 04 21 */ bctrl
+lbl_802A9BA0:
+/* 802A9BA0 002A5800 A0 9F 09 84 */ lhz r4, 0x984(r31)
+/* 802A9BA4 002A5804 7F C3 F3 78 */ mr r3, r30
+/* 802A9BA8 002A5808 38 04 00 01 */ addi r0, r4, 1
+/* 802A9BAC 002A580C B0 1F 09 84 */ sth r0, 0x984(r31)
+/* 802A9BB0 002A5810 4B FC 4B D5 */ bl OSRestoreInterrupts
+/* 802A9BB4 002A5814 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A9BB8 002A5818 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A9BBC 002A581C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A9BC0 002A5820 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A9BC4 002A5824 7C 08 03 A6 */ mtlr r0
+/* 802A9BC8 002A5828 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A9BCC 002A582C 4E 80 00 20 */ blr
+
+.global WPADIsSpeakerEnabled
+WPADIsSpeakerEnabled:
+/* 802A9BD0 002A5830 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A9BD4 002A5834 7C 08 02 A6 */ mflr r0
+/* 802A9BD8 002A5838 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802A9BDC 002A583C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A9BE0 002A5840 54 60 10 3A */ slwi r0, r3, 2
+/* 802A9BE4 002A5844 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802A9BE8 002A5848 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A9BEC 002A584C 7F E4 00 2E */ lwzx r31, r4, r0
+/* 802A9BF0 002A5850 4B FC 4B 6D */ bl OSDisableInterrupts
+/* 802A9BF4 002A5854 83 FF 08 3C */ lwz r31, 0x83c(r31)
+/* 802A9BF8 002A5858 4B FC 4B 8D */ bl OSRestoreInterrupts
+/* 802A9BFC 002A585C 7F E3 FB 78 */ mr r3, r31
+/* 802A9C00 002A5860 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A9C04 002A5864 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A9C08 002A5868 7C 08 03 A6 */ mtlr r0
+/* 802A9C0C 002A586C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A9C10 002A5870 4E 80 00 20 */ blr
+
+.global WPADControlSpeaker
+WPADControlSpeaker:
+/* 802A9C14 002A5874 94 21 FA 00 */ stwu r1, -0x600(r1)
+/* 802A9C18 002A5878 7C 08 02 A6 */ mflr r0
+/* 802A9C1C 002A587C 90 01 06 04 */ stw r0, 0x604(r1)
+/* 802A9C20 002A5880 39 61 06 00 */ addi r11, r1, 0x600
+/* 802A9C24 002A5884 4B F1 D4 FD */ bl _savegpr_25
+/* 802A9C28 002A5888 89 62 A4 00 */ lbz r11, lbl_80642A00-_SDA2_BASE_(r2)
+/* 802A9C2C 002A588C 3C C0 80 53 */ lis r6, lbl_80536D70@ha
+/* 802A9C30 002A5890 89 42 A4 01 */ lbz r10, lbl_80642A01-_SDA2_BASE_(r2)
+/* 802A9C34 002A5894 7C 99 23 78 */ mr r25, r4
+/* 802A9C38 002A5898 89 22 A4 02 */ lbz r9, lbl_80642A02-_SDA2_BASE_(r2)
+/* 802A9C3C 002A589C 54 60 10 3A */ slwi r0, r3, 2
+/* 802A9C40 002A58A0 89 02 A4 03 */ lbz r8, lbl_80642A03-_SDA2_BASE_(r2)
+/* 802A9C44 002A58A4 7C 7B 1B 78 */ mr r27, r3
+/* 802A9C48 002A58A8 88 E2 A4 04 */ lbz r7, lbl_80642A04-_SDA2_BASE_(r2)
+/* 802A9C4C 002A58AC 38 C6 6D 70 */ addi r6, r6, lbl_80536D70@l
+/* 802A9C50 002A58B0 88 82 A4 05 */ lbz r4, lbl_80642A05-_SDA2_BASE_(r2)
+/* 802A9C54 002A58B4 7C BC 2B 78 */ mr r28, r5
+/* 802A9C58 002A58B8 88 62 A4 06 */ lbz r3, lbl_80642A06-_SDA2_BASE_(r2)
+/* 802A9C5C 002A58BC 99 61 00 2C */ stb r11, 0x2c(r1)
+/* 802A9C60 002A58C0 7F E6 00 2E */ lwzx r31, r6, r0
+/* 802A9C64 002A58C4 99 41 00 2D */ stb r10, 0x2d(r1)
+/* 802A9C68 002A58C8 99 21 00 2E */ stb r9, 0x2e(r1)
+/* 802A9C6C 002A58CC 99 01 00 2F */ stb r8, 0x2f(r1)
+/* 802A9C70 002A58D0 98 E1 00 30 */ stb r7, 0x30(r1)
+/* 802A9C74 002A58D4 98 81 00 31 */ stb r4, 0x31(r1)
+/* 802A9C78 002A58D8 98 61 00 32 */ stb r3, 0x32(r1)
+/* 802A9C7C 002A58DC 4B FC 4A E1 */ bl OSDisableInterrupts
+/* 802A9C80 002A58E0 83 BF 08 3C */ lwz r29, 0x83c(r31)
+/* 802A9C84 002A58E4 83 5F 08 BC */ lwz r26, 0x8bc(r31)
+/* 802A9C88 002A58E8 83 DF 08 DC */ lwz r30, 0x8dc(r31)
+/* 802A9C8C 002A58EC 4B FC 4A F9 */ bl OSRestoreInterrupts
+/* 802A9C90 002A58F0 2C 1A FF FF */ cmpwi r26, -1
+/* 802A9C94 002A58F4 41 82 15 64 */ beq lbl_802AB1F8
+/* 802A9C98 002A58F8 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A9C9C 002A58FC 40 82 00 0C */ bne lbl_802A9CA8
+/* 802A9CA0 002A5900 3B 40 FF FE */ li r26, -2
+/* 802A9CA4 002A5904 48 00 15 54 */ b lbl_802AB1F8
+lbl_802A9CA8:
+/* 802A9CA8 002A5908 2C 19 00 00 */ cmpwi r25, 0
+/* 802A9CAC 002A590C 40 82 07 18 */ bne lbl_802AA3C4
+/* 802A9CB0 002A5910 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A9CB4 002A5914 40 82 00 0C */ bne lbl_802A9CC0
+/* 802A9CB8 002A5918 3B 40 00 00 */ li r26, 0
+/* 802A9CBC 002A591C 48 00 15 3C */ b lbl_802AB1F8
+lbl_802A9CC0:
+/* 802A9CC0 002A5920 4B FC 4A 9D */ bl OSDisableInterrupts
+/* 802A9CC4 002A5924 7C 7D 1B 78 */ mr r29, r3
+/* 802A9CC8 002A5928 4B FC 4A 95 */ bl OSDisableInterrupts
+/* 802A9CCC 002A592C 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802A9CD0 002A5930 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9CD4 002A5934 7C 04 00 50 */ subf r0, r4, r0
+/* 802A9CD8 002A5938 7C 1E 07 75 */ extsb. r30, r0
+/* 802A9CDC 002A593C 40 80 00 10 */ bge lbl_802A9CEC
+/* 802A9CE0 002A5940 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802A9CE4 002A5944 7C 1E 02 14 */ add r0, r30, r0
+/* 802A9CE8 002A5948 7C 1E 07 74 */ extsb r30, r0
+lbl_802A9CEC:
+/* 802A9CEC 002A594C 4B FC 4A 99 */ bl OSRestoreInterrupts
+/* 802A9CF0 002A5950 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802A9CF4 002A5954 38 9E 00 05 */ addi r4, r30, 5
+/* 802A9CF8 002A5958 38 03 FF FF */ addi r0, r3, -1
+/* 802A9CFC 002A595C 7C 04 00 40 */ cmplw r4, r0
+/* 802A9D00 002A5960 41 81 06 B4 */ bgt lbl_802AA3B4
+/* 802A9D04 002A5964 38 60 00 01 */ li r3, 1
+/* 802A9D08 002A5968 38 00 00 04 */ li r0, 4
+/* 802A9D0C 002A596C B0 61 05 92 */ sth r3, 0x592(r1)
+/* 802A9D10 002A5970 3B 60 00 19 */ li r27, 0x19
+/* 802A9D14 002A5974 39 80 00 00 */ li r12, 0
+/* 802A9D18 002A5978 81 41 05 80 */ lwz r10, 0x580(r1)
+/* 802A9D1C 002A597C 98 01 05 7C */ stb r0, 0x57c(r1)
+/* 802A9D20 002A5980 81 21 05 84 */ lwz r9, 0x584(r1)
+/* 802A9D24 002A5984 81 61 05 7C */ lwz r11, 0x57c(r1)
+/* 802A9D28 002A5988 81 01 05 88 */ lwz r8, 0x588(r1)
+/* 802A9D2C 002A598C 80 E1 05 8C */ lwz r7, 0x58c(r1)
+/* 802A9D30 002A5990 80 C1 05 90 */ lwz r6, 0x590(r1)
+/* 802A9D34 002A5994 80 A1 05 94 */ lwz r5, 0x594(r1)
+/* 802A9D38 002A5998 80 81 05 98 */ lwz r4, 0x598(r1)
+/* 802A9D3C 002A599C 80 61 05 9C */ lwz r3, 0x59c(r1)
+/* 802A9D40 002A59A0 80 01 05 A0 */ lwz r0, 0x5a0(r1)
+/* 802A9D44 002A59A4 93 61 05 78 */ stw r27, 0x578(r1)
+/* 802A9D48 002A59A8 91 81 05 A4 */ stw r12, 0x5a4(r1)
+/* 802A9D4C 002A59AC 93 61 05 A8 */ stw r27, 0x5a8(r1)
+/* 802A9D50 002A59B0 91 61 05 AC */ stw r11, 0x5ac(r1)
+/* 802A9D54 002A59B4 91 41 05 B0 */ stw r10, 0x5b0(r1)
+/* 802A9D58 002A59B8 91 21 05 B4 */ stw r9, 0x5b4(r1)
+/* 802A9D5C 002A59BC 91 01 05 B8 */ stw r8, 0x5b8(r1)
+/* 802A9D60 002A59C0 90 E1 05 BC */ stw r7, 0x5bc(r1)
+/* 802A9D64 002A59C4 90 C1 05 C0 */ stw r6, 0x5c0(r1)
+/* 802A9D68 002A59C8 90 A1 05 C4 */ stw r5, 0x5c4(r1)
+/* 802A9D6C 002A59CC 90 81 05 C8 */ stw r4, 0x5c8(r1)
+/* 802A9D70 002A59D0 90 61 05 CC */ stw r3, 0x5cc(r1)
+/* 802A9D74 002A59D4 90 01 05 D0 */ stw r0, 0x5d0(r1)
+/* 802A9D78 002A59D8 91 81 05 D4 */ stw r12, 0x5d4(r1)
+/* 802A9D7C 002A59DC 4B FC 49 E1 */ bl OSDisableInterrupts
+/* 802A9D80 002A59E0 7C 7E 1B 78 */ mr r30, r3
+/* 802A9D84 002A59E4 4B FC 49 D9 */ bl OSDisableInterrupts
+/* 802A9D88 002A59E8 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802A9D8C 002A59EC 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9D90 002A59F0 7C 04 00 50 */ subf r0, r4, r0
+/* 802A9D94 002A59F4 7C 1B 07 75 */ extsb. r27, r0
+/* 802A9D98 002A59F8 40 80 00 10 */ bge lbl_802A9DA8
+/* 802A9D9C 002A59FC 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802A9DA0 002A5A00 7C 1B 02 14 */ add r0, r27, r0
+/* 802A9DA4 002A5A04 7C 1B 07 74 */ extsb r27, r0
+lbl_802A9DA8:
+/* 802A9DA8 002A5A08 4B FC 49 DD */ bl OSRestoreInterrupts
+/* 802A9DAC 002A5A0C 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802A9DB0 002A5A10 38 03 FF FF */ addi r0, r3, -1
+/* 802A9DB4 002A5A14 7C 00 D8 40 */ cmplw r0, r27
+/* 802A9DB8 002A5A18 40 82 00 10 */ bne lbl_802A9DC8
+/* 802A9DBC 002A5A1C 7F C3 F3 78 */ mr r3, r30
+/* 802A9DC0 002A5A20 4B FC 49 C5 */ bl OSRestoreInterrupts
+/* 802A9DC4 002A5A24 48 00 00 78 */ b lbl_802A9E3C
+lbl_802A9DC8:
+/* 802A9DC8 002A5A28 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9DCC 002A5A2C 38 80 00 00 */ li r4, 0
+/* 802A9DD0 002A5A30 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802A9DD4 002A5A34 38 A0 00 30 */ li r5, 0x30
+/* 802A9DD8 002A5A38 7C 00 07 74 */ extsb r0, r0
+/* 802A9DDC 002A5A3C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9DE0 002A5A40 7C 63 02 14 */ add r3, r3, r0
+/* 802A9DE4 002A5A44 4B D5 A3 21 */ bl memset
+/* 802A9DE8 002A5A48 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9DEC 002A5A4C 38 81 05 A8 */ addi r4, r1, 0x5a8
+/* 802A9DF0 002A5A50 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802A9DF4 002A5A54 38 A0 00 30 */ li r5, 0x30
+/* 802A9DF8 002A5A58 7C 00 07 74 */ extsb r0, r0
+/* 802A9DFC 002A5A5C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9E00 002A5A60 7C 63 02 14 */ add r3, r3, r0
+/* 802A9E04 002A5A64 4B D5 A1 FD */ bl memcpy
+/* 802A9E08 002A5A68 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9E0C 002A5A6C 7F C3 F3 78 */ mr r3, r30
+/* 802A9E10 002A5A70 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802A9E14 002A5A74 7C 06 07 74 */ extsb r6, r0
+/* 802A9E18 002A5A78 38 84 FF FF */ addi r4, r4, -1
+/* 802A9E1C 002A5A7C 7C A4 30 50 */ subf r5, r4, r6
+/* 802A9E20 002A5A80 38 06 00 01 */ addi r0, r6, 1
+/* 802A9E24 002A5A84 7C 86 20 50 */ subf r4, r6, r4
+/* 802A9E28 002A5A88 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A9E2C 002A5A8C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A9E30 002A5A90 7C 00 20 78 */ andc r0, r0, r4
+/* 802A9E34 002A5A94 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802A9E38 002A5A98 4B FC 49 4D */ bl OSRestoreInterrupts
+lbl_802A9E3C:
+/* 802A9E3C 002A5A9C 3C 60 04 A2 */ lis r3, 0x04A20001@ha
+/* 802A9E40 002A5AA0 39 20 00 01 */ li r9, 1
+/* 802A9E44 002A5AA4 39 03 00 01 */ addi r8, r3, 0x04A20001@l
+/* 802A9E48 002A5AA8 38 E0 00 16 */ li r7, 0x16
+/* 802A9E4C 002A5AAC 38 C0 00 15 */ li r6, 0x15
+/* 802A9E50 002A5AB0 38 00 00 00 */ li r0, 0
+/* 802A9E54 002A5AB4 99 21 00 12 */ stb r9, 0x12(r1)
+/* 802A9E58 002A5AB8 38 61 05 4C */ addi r3, r1, 0x54c
+/* 802A9E5C 002A5ABC 38 81 00 28 */ addi r4, r1, 0x28
+/* 802A9E60 002A5AC0 38 A0 00 04 */ li r5, 4
+/* 802A9E64 002A5AC4 91 01 00 28 */ stw r8, 0x28(r1)
+/* 802A9E68 002A5AC8 99 21 00 11 */ stb r9, 0x11(r1)
+/* 802A9E6C 002A5ACC 90 E1 05 48 */ stw r7, 0x548(r1)
+/* 802A9E70 002A5AD0 B0 C1 05 62 */ sth r6, 0x562(r1)
+/* 802A9E74 002A5AD4 90 01 05 74 */ stw r0, 0x574(r1)
+/* 802A9E78 002A5AD8 4B D5 A1 89 */ bl memcpy
+/* 802A9E7C 002A5ADC 38 61 05 50 */ addi r3, r1, 0x550
+/* 802A9E80 002A5AE0 38 81 00 11 */ addi r4, r1, 0x11
+/* 802A9E84 002A5AE4 38 A0 00 01 */ li r5, 1
+/* 802A9E88 002A5AE8 4B D5 A1 79 */ bl memcpy
+/* 802A9E8C 002A5AEC 38 61 05 51 */ addi r3, r1, 0x551
+/* 802A9E90 002A5AF0 38 81 00 12 */ addi r4, r1, 0x12
+/* 802A9E94 002A5AF4 38 A0 00 01 */ li r5, 1
+/* 802A9E98 002A5AF8 4B D5 A1 69 */ bl memcpy
+/* 802A9E9C 002A5AFC 83 61 05 48 */ lwz r27, 0x548(r1)
+/* 802A9EA0 002A5B00 81 81 05 4C */ lwz r12, 0x54c(r1)
+/* 802A9EA4 002A5B04 81 61 05 50 */ lwz r11, 0x550(r1)
+/* 802A9EA8 002A5B08 81 41 05 54 */ lwz r10, 0x554(r1)
+/* 802A9EAC 002A5B0C 81 21 05 58 */ lwz r9, 0x558(r1)
+/* 802A9EB0 002A5B10 81 01 05 5C */ lwz r8, 0x55c(r1)
+/* 802A9EB4 002A5B14 80 E1 05 60 */ lwz r7, 0x560(r1)
+/* 802A9EB8 002A5B18 80 C1 05 64 */ lwz r6, 0x564(r1)
+/* 802A9EBC 002A5B1C 80 A1 05 68 */ lwz r5, 0x568(r1)
+/* 802A9EC0 002A5B20 80 81 05 6C */ lwz r4, 0x56c(r1)
+/* 802A9EC4 002A5B24 80 61 05 70 */ lwz r3, 0x570(r1)
+/* 802A9EC8 002A5B28 80 01 05 74 */ lwz r0, 0x574(r1)
+/* 802A9ECC 002A5B2C 93 61 05 18 */ stw r27, 0x518(r1)
+/* 802A9ED0 002A5B30 91 81 05 1C */ stw r12, 0x51c(r1)
+/* 802A9ED4 002A5B34 91 61 05 20 */ stw r11, 0x520(r1)
+/* 802A9ED8 002A5B38 91 41 05 24 */ stw r10, 0x524(r1)
+/* 802A9EDC 002A5B3C 91 21 05 28 */ stw r9, 0x528(r1)
+/* 802A9EE0 002A5B40 91 01 05 2C */ stw r8, 0x52c(r1)
+/* 802A9EE4 002A5B44 90 E1 05 30 */ stw r7, 0x530(r1)
+/* 802A9EE8 002A5B48 90 C1 05 34 */ stw r6, 0x534(r1)
+/* 802A9EEC 002A5B4C 90 A1 05 38 */ stw r5, 0x538(r1)
+/* 802A9EF0 002A5B50 90 81 05 3C */ stw r4, 0x53c(r1)
+/* 802A9EF4 002A5B54 90 61 05 40 */ stw r3, 0x540(r1)
+/* 802A9EF8 002A5B58 90 01 05 44 */ stw r0, 0x544(r1)
+/* 802A9EFC 002A5B5C 4B FC 48 61 */ bl OSDisableInterrupts
+/* 802A9F00 002A5B60 7C 7E 1B 78 */ mr r30, r3
+/* 802A9F04 002A5B64 4B FC 48 59 */ bl OSDisableInterrupts
+/* 802A9F08 002A5B68 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802A9F0C 002A5B6C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9F10 002A5B70 7C 04 00 50 */ subf r0, r4, r0
+/* 802A9F14 002A5B74 7C 1B 07 75 */ extsb. r27, r0
+/* 802A9F18 002A5B78 40 80 00 10 */ bge lbl_802A9F28
+/* 802A9F1C 002A5B7C 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802A9F20 002A5B80 7C 1B 02 14 */ add r0, r27, r0
+/* 802A9F24 002A5B84 7C 1B 07 74 */ extsb r27, r0
+lbl_802A9F28:
+/* 802A9F28 002A5B88 4B FC 48 5D */ bl OSRestoreInterrupts
+/* 802A9F2C 002A5B8C 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802A9F30 002A5B90 38 03 FF FF */ addi r0, r3, -1
+/* 802A9F34 002A5B94 7C 00 D8 40 */ cmplw r0, r27
+/* 802A9F38 002A5B98 40 82 00 10 */ bne lbl_802A9F48
+/* 802A9F3C 002A5B9C 7F C3 F3 78 */ mr r3, r30
+/* 802A9F40 002A5BA0 4B FC 48 45 */ bl OSRestoreInterrupts
+/* 802A9F44 002A5BA4 48 00 00 78 */ b lbl_802A9FBC
+lbl_802A9F48:
+/* 802A9F48 002A5BA8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9F4C 002A5BAC 38 80 00 00 */ li r4, 0
+/* 802A9F50 002A5BB0 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802A9F54 002A5BB4 38 A0 00 30 */ li r5, 0x30
+/* 802A9F58 002A5BB8 7C 00 07 74 */ extsb r0, r0
+/* 802A9F5C 002A5BBC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9F60 002A5BC0 7C 63 02 14 */ add r3, r3, r0
+/* 802A9F64 002A5BC4 4B D5 A1 A1 */ bl memset
+/* 802A9F68 002A5BC8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9F6C 002A5BCC 38 81 05 18 */ addi r4, r1, 0x518
+/* 802A9F70 002A5BD0 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802A9F74 002A5BD4 38 A0 00 30 */ li r5, 0x30
+/* 802A9F78 002A5BD8 7C 00 07 74 */ extsb r0, r0
+/* 802A9F7C 002A5BDC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802A9F80 002A5BE0 7C 63 02 14 */ add r3, r3, r0
+/* 802A9F84 002A5BE4 4B D5 A0 7D */ bl memcpy
+/* 802A9F88 002A5BE8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802A9F8C 002A5BEC 7F C3 F3 78 */ mr r3, r30
+/* 802A9F90 002A5BF0 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802A9F94 002A5BF4 7C 06 07 74 */ extsb r6, r0
+/* 802A9F98 002A5BF8 38 84 FF FF */ addi r4, r4, -1
+/* 802A9F9C 002A5BFC 7C A4 30 50 */ subf r5, r4, r6
+/* 802A9FA0 002A5C00 38 06 00 01 */ addi r0, r6, 1
+/* 802A9FA4 002A5C04 7C 86 20 50 */ subf r4, r6, r4
+/* 802A9FA8 002A5C08 7C A4 20 F8 */ nor r4, r5, r4
+/* 802A9FAC 002A5C0C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802A9FB0 002A5C10 7C 00 20 78 */ andc r0, r0, r4
+/* 802A9FB4 002A5C14 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802A9FB8 002A5C18 4B FC 47 CD */ bl OSRestoreInterrupts
+lbl_802A9FBC:
+/* 802A9FBC 002A5C1C 3C 60 04 A2 */ lis r3, 0x04A20009@ha
+/* 802A9FC0 002A5C20 39 20 00 00 */ li r9, 0
+/* 802A9FC4 002A5C24 39 03 00 09 */ addi r8, r3, 0x04A20009@l
+/* 802A9FC8 002A5C28 38 E0 00 01 */ li r7, 1
+/* 802A9FCC 002A5C2C 38 C0 00 16 */ li r6, 0x16
+/* 802A9FD0 002A5C30 38 00 00 15 */ li r0, 0x15
+/* 802A9FD4 002A5C34 99 21 00 10 */ stb r9, 0x10(r1)
+/* 802A9FD8 002A5C38 38 61 04 EC */ addi r3, r1, 0x4ec
+/* 802A9FDC 002A5C3C 38 81 00 24 */ addi r4, r1, 0x24
+/* 802A9FE0 002A5C40 38 A0 00 04 */ li r5, 4
+/* 802A9FE4 002A5C44 91 01 00 24 */ stw r8, 0x24(r1)
+/* 802A9FE8 002A5C48 98 E1 00 0F */ stb r7, 0xf(r1)
+/* 802A9FEC 002A5C4C 90 C1 04 E8 */ stw r6, 0x4e8(r1)
+/* 802A9FF0 002A5C50 B0 01 05 02 */ sth r0, 0x502(r1)
+/* 802A9FF4 002A5C54 91 21 05 14 */ stw r9, 0x514(r1)
+/* 802A9FF8 002A5C58 4B D5 A0 09 */ bl memcpy
+/* 802A9FFC 002A5C5C 38 61 04 F0 */ addi r3, r1, 0x4f0
+/* 802AA000 002A5C60 38 81 00 0F */ addi r4, r1, 0xf
+/* 802AA004 002A5C64 38 A0 00 01 */ li r5, 1
+/* 802AA008 002A5C68 4B D5 9F F9 */ bl memcpy
+/* 802AA00C 002A5C6C 38 61 04 F1 */ addi r3, r1, 0x4f1
+/* 802AA010 002A5C70 38 81 00 10 */ addi r4, r1, 0x10
+/* 802AA014 002A5C74 38 A0 00 01 */ li r5, 1
+/* 802AA018 002A5C78 4B D5 9F E9 */ bl memcpy
+/* 802AA01C 002A5C7C 83 61 04 E8 */ lwz r27, 0x4e8(r1)
+/* 802AA020 002A5C80 81 81 04 EC */ lwz r12, 0x4ec(r1)
+/* 802AA024 002A5C84 81 61 04 F0 */ lwz r11, 0x4f0(r1)
+/* 802AA028 002A5C88 81 41 04 F4 */ lwz r10, 0x4f4(r1)
+/* 802AA02C 002A5C8C 81 21 04 F8 */ lwz r9, 0x4f8(r1)
+/* 802AA030 002A5C90 81 01 04 FC */ lwz r8, 0x4fc(r1)
+/* 802AA034 002A5C94 80 E1 05 00 */ lwz r7, 0x500(r1)
+/* 802AA038 002A5C98 80 C1 05 04 */ lwz r6, 0x504(r1)
+/* 802AA03C 002A5C9C 80 A1 05 08 */ lwz r5, 0x508(r1)
+/* 802AA040 002A5CA0 80 81 05 0C */ lwz r4, 0x50c(r1)
+/* 802AA044 002A5CA4 80 61 05 10 */ lwz r3, 0x510(r1)
+/* 802AA048 002A5CA8 80 01 05 14 */ lwz r0, 0x514(r1)
+/* 802AA04C 002A5CAC 93 61 04 B8 */ stw r27, 0x4b8(r1)
+/* 802AA050 002A5CB0 91 81 04 BC */ stw r12, 0x4bc(r1)
+/* 802AA054 002A5CB4 91 61 04 C0 */ stw r11, 0x4c0(r1)
+/* 802AA058 002A5CB8 91 41 04 C4 */ stw r10, 0x4c4(r1)
+/* 802AA05C 002A5CBC 91 21 04 C8 */ stw r9, 0x4c8(r1)
+/* 802AA060 002A5CC0 91 01 04 CC */ stw r8, 0x4cc(r1)
+/* 802AA064 002A5CC4 90 E1 04 D0 */ stw r7, 0x4d0(r1)
+/* 802AA068 002A5CC8 90 C1 04 D4 */ stw r6, 0x4d4(r1)
+/* 802AA06C 002A5CCC 90 A1 04 D8 */ stw r5, 0x4d8(r1)
+/* 802AA070 002A5CD0 90 81 04 DC */ stw r4, 0x4dc(r1)
+/* 802AA074 002A5CD4 90 61 04 E0 */ stw r3, 0x4e0(r1)
+/* 802AA078 002A5CD8 90 01 04 E4 */ stw r0, 0x4e4(r1)
+/* 802AA07C 002A5CDC 4B FC 46 E1 */ bl OSDisableInterrupts
+/* 802AA080 002A5CE0 7C 7E 1B 78 */ mr r30, r3
+/* 802AA084 002A5CE4 4B FC 46 D9 */ bl OSDisableInterrupts
+/* 802AA088 002A5CE8 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA08C 002A5CEC 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA090 002A5CF0 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA094 002A5CF4 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA098 002A5CF8 40 80 00 10 */ bge lbl_802AA0A8
+/* 802AA09C 002A5CFC 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA0A0 002A5D00 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA0A4 002A5D04 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA0A8:
+/* 802AA0A8 002A5D08 4B FC 46 DD */ bl OSRestoreInterrupts
+/* 802AA0AC 002A5D0C 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA0B0 002A5D10 38 03 FF FF */ addi r0, r3, -1
+/* 802AA0B4 002A5D14 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA0B8 002A5D18 40 82 00 10 */ bne lbl_802AA0C8
+/* 802AA0BC 002A5D1C 7F C3 F3 78 */ mr r3, r30
+/* 802AA0C0 002A5D20 4B FC 46 C5 */ bl OSRestoreInterrupts
+/* 802AA0C4 002A5D24 48 00 00 78 */ b lbl_802AA13C
+lbl_802AA0C8:
+/* 802AA0C8 002A5D28 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA0CC 002A5D2C 38 80 00 00 */ li r4, 0
+/* 802AA0D0 002A5D30 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA0D4 002A5D34 38 A0 00 30 */ li r5, 0x30
+/* 802AA0D8 002A5D38 7C 00 07 74 */ extsb r0, r0
+/* 802AA0DC 002A5D3C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA0E0 002A5D40 7C 63 02 14 */ add r3, r3, r0
+/* 802AA0E4 002A5D44 4B D5 A0 21 */ bl memset
+/* 802AA0E8 002A5D48 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA0EC 002A5D4C 38 81 04 B8 */ addi r4, r1, 0x4b8
+/* 802AA0F0 002A5D50 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA0F4 002A5D54 38 A0 00 30 */ li r5, 0x30
+/* 802AA0F8 002A5D58 7C 00 07 74 */ extsb r0, r0
+/* 802AA0FC 002A5D5C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA100 002A5D60 7C 63 02 14 */ add r3, r3, r0
+/* 802AA104 002A5D64 4B D5 9E FD */ bl memcpy
+/* 802AA108 002A5D68 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA10C 002A5D6C 7F C3 F3 78 */ mr r3, r30
+/* 802AA110 002A5D70 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA114 002A5D74 7C 06 07 74 */ extsb r6, r0
+/* 802AA118 002A5D78 38 84 FF FF */ addi r4, r4, -1
+/* 802AA11C 002A5D7C 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA120 002A5D80 38 06 00 01 */ addi r0, r6, 1
+/* 802AA124 002A5D84 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA128 002A5D88 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA12C 002A5D8C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA130 002A5D90 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA134 002A5D94 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA138 002A5D98 4B FC 46 4D */ bl OSRestoreInterrupts
+lbl_802AA13C:
+/* 802AA13C 002A5D9C 39 80 00 00 */ li r12, 0
+/* 802AA140 002A5DA0 38 00 00 01 */ li r0, 1
+/* 802AA144 002A5DA4 B0 01 04 72 */ sth r0, 0x472(r1)
+/* 802AA148 002A5DA8 3B 60 00 14 */ li r27, 0x14
+/* 802AA14C 002A5DAC 81 41 04 60 */ lwz r10, 0x460(r1)
+/* 802AA150 002A5DB0 99 81 04 5C */ stb r12, 0x45c(r1)
+/* 802AA154 002A5DB4 81 21 04 64 */ lwz r9, 0x464(r1)
+/* 802AA158 002A5DB8 81 61 04 5C */ lwz r11, 0x45c(r1)
+/* 802AA15C 002A5DBC 81 01 04 68 */ lwz r8, 0x468(r1)
+/* 802AA160 002A5DC0 80 E1 04 6C */ lwz r7, 0x46c(r1)
+/* 802AA164 002A5DC4 80 C1 04 70 */ lwz r6, 0x470(r1)
+/* 802AA168 002A5DC8 80 A1 04 74 */ lwz r5, 0x474(r1)
+/* 802AA16C 002A5DCC 80 81 04 78 */ lwz r4, 0x478(r1)
+/* 802AA170 002A5DD0 80 61 04 7C */ lwz r3, 0x47c(r1)
+/* 802AA174 002A5DD4 80 01 04 80 */ lwz r0, 0x480(r1)
+/* 802AA178 002A5DD8 93 61 04 58 */ stw r27, 0x458(r1)
+/* 802AA17C 002A5DDC 91 81 04 84 */ stw r12, 0x484(r1)
+/* 802AA180 002A5DE0 93 61 04 88 */ stw r27, 0x488(r1)
+/* 802AA184 002A5DE4 91 61 04 8C */ stw r11, 0x48c(r1)
+/* 802AA188 002A5DE8 91 41 04 90 */ stw r10, 0x490(r1)
+/* 802AA18C 002A5DEC 91 21 04 94 */ stw r9, 0x494(r1)
+/* 802AA190 002A5DF0 91 01 04 98 */ stw r8, 0x498(r1)
+/* 802AA194 002A5DF4 90 E1 04 9C */ stw r7, 0x49c(r1)
+/* 802AA198 002A5DF8 90 C1 04 A0 */ stw r6, 0x4a0(r1)
+/* 802AA19C 002A5DFC 90 A1 04 A4 */ stw r5, 0x4a4(r1)
+/* 802AA1A0 002A5E00 90 81 04 A8 */ stw r4, 0x4a8(r1)
+/* 802AA1A4 002A5E04 90 61 04 AC */ stw r3, 0x4ac(r1)
+/* 802AA1A8 002A5E08 90 01 04 B0 */ stw r0, 0x4b0(r1)
+/* 802AA1AC 002A5E0C 91 81 04 B4 */ stw r12, 0x4b4(r1)
+/* 802AA1B0 002A5E10 4B FC 45 AD */ bl OSDisableInterrupts
+/* 802AA1B4 002A5E14 7C 7E 1B 78 */ mr r30, r3
+/* 802AA1B8 002A5E18 4B FC 45 A5 */ bl OSDisableInterrupts
+/* 802AA1BC 002A5E1C 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA1C0 002A5E20 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA1C4 002A5E24 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA1C8 002A5E28 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA1CC 002A5E2C 40 80 00 10 */ bge lbl_802AA1DC
+/* 802AA1D0 002A5E30 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA1D4 002A5E34 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA1D8 002A5E38 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA1DC:
+/* 802AA1DC 002A5E3C 4B FC 45 A9 */ bl OSRestoreInterrupts
+/* 802AA1E0 002A5E40 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA1E4 002A5E44 38 03 FF FF */ addi r0, r3, -1
+/* 802AA1E8 002A5E48 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA1EC 002A5E4C 40 82 00 10 */ bne lbl_802AA1FC
+/* 802AA1F0 002A5E50 7F C3 F3 78 */ mr r3, r30
+/* 802AA1F4 002A5E54 4B FC 45 91 */ bl OSRestoreInterrupts
+/* 802AA1F8 002A5E58 48 00 00 78 */ b lbl_802AA270
+lbl_802AA1FC:
+/* 802AA1FC 002A5E5C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA200 002A5E60 38 80 00 00 */ li r4, 0
+/* 802AA204 002A5E64 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA208 002A5E68 38 A0 00 30 */ li r5, 0x30
+/* 802AA20C 002A5E6C 7C 00 07 74 */ extsb r0, r0
+/* 802AA210 002A5E70 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA214 002A5E74 7C 63 02 14 */ add r3, r3, r0
+/* 802AA218 002A5E78 4B D5 9E ED */ bl memset
+/* 802AA21C 002A5E7C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA220 002A5E80 38 81 04 88 */ addi r4, r1, 0x488
+/* 802AA224 002A5E84 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA228 002A5E88 38 A0 00 30 */ li r5, 0x30
+/* 802AA22C 002A5E8C 7C 00 07 74 */ extsb r0, r0
+/* 802AA230 002A5E90 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA234 002A5E94 7C 63 02 14 */ add r3, r3, r0
+/* 802AA238 002A5E98 4B D5 9D C9 */ bl memcpy
+/* 802AA23C 002A5E9C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA240 002A5EA0 7F C3 F3 78 */ mr r3, r30
+/* 802AA244 002A5EA4 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA248 002A5EA8 7C 06 07 74 */ extsb r6, r0
+/* 802AA24C 002A5EAC 38 84 FF FF */ addi r4, r4, -1
+/* 802AA250 002A5EB0 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA254 002A5EB4 38 06 00 01 */ addi r0, r6, 1
+/* 802AA258 002A5EB8 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA25C 002A5EBC 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA260 002A5EC0 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA264 002A5EC4 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA268 002A5EC8 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA26C 002A5ECC 4B FC 45 19 */ bl OSRestoreInterrupts
+lbl_802AA270:
+/* 802AA270 002A5ED0 39 60 00 00 */ li r11, 0
+/* 802AA274 002A5ED4 38 00 00 01 */ li r0, 1
+/* 802AA278 002A5ED8 B0 01 04 12 */ sth r0, 0x412(r1)
+/* 802AA27C 002A5EDC 39 80 00 15 */ li r12, 0x15
+/* 802AA280 002A5EE0 81 21 04 00 */ lwz r9, 0x400(r1)
+/* 802AA284 002A5EE4 99 61 03 FC */ stb r11, 0x3fc(r1)
+/* 802AA288 002A5EE8 81 01 04 04 */ lwz r8, 0x404(r1)
+/* 802AA28C 002A5EEC 81 41 03 FC */ lwz r10, 0x3fc(r1)
+/* 802AA290 002A5EF0 80 E1 04 08 */ lwz r7, 0x408(r1)
+/* 802AA294 002A5EF4 80 C1 04 0C */ lwz r6, 0x40c(r1)
+/* 802AA298 002A5EF8 80 A1 04 10 */ lwz r5, 0x410(r1)
+/* 802AA29C 002A5EFC 80 81 04 14 */ lwz r4, 0x414(r1)
+/* 802AA2A0 002A5F00 80 61 04 18 */ lwz r3, 0x418(r1)
+/* 802AA2A4 002A5F04 80 01 04 1C */ lwz r0, 0x41c(r1)
+/* 802AA2A8 002A5F08 91 81 03 F8 */ stw r12, 0x3f8(r1)
+/* 802AA2AC 002A5F0C 93 81 04 24 */ stw r28, 0x424(r1)
+/* 802AA2B0 002A5F10 91 61 04 20 */ stw r11, 0x420(r1)
+/* 802AA2B4 002A5F14 91 81 04 28 */ stw r12, 0x428(r1)
+/* 802AA2B8 002A5F18 91 41 04 2C */ stw r10, 0x42c(r1)
+/* 802AA2BC 002A5F1C 91 21 04 30 */ stw r9, 0x430(r1)
+/* 802AA2C0 002A5F20 91 01 04 34 */ stw r8, 0x434(r1)
+/* 802AA2C4 002A5F24 90 E1 04 38 */ stw r7, 0x438(r1)
+/* 802AA2C8 002A5F28 90 C1 04 3C */ stw r6, 0x43c(r1)
+/* 802AA2CC 002A5F2C 90 A1 04 40 */ stw r5, 0x440(r1)
+/* 802AA2D0 002A5F30 90 81 04 44 */ stw r4, 0x444(r1)
+/* 802AA2D4 002A5F34 90 61 04 48 */ stw r3, 0x448(r1)
+/* 802AA2D8 002A5F38 90 01 04 4C */ stw r0, 0x44c(r1)
+/* 802AA2DC 002A5F3C 91 61 04 50 */ stw r11, 0x450(r1)
+/* 802AA2E0 002A5F40 93 81 04 54 */ stw r28, 0x454(r1)
+/* 802AA2E4 002A5F44 4B FC 44 79 */ bl OSDisableInterrupts
+/* 802AA2E8 002A5F48 7C 7E 1B 78 */ mr r30, r3
+/* 802AA2EC 002A5F4C 4B FC 44 71 */ bl OSDisableInterrupts
+/* 802AA2F0 002A5F50 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA2F4 002A5F54 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA2F8 002A5F58 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA2FC 002A5F5C 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA300 002A5F60 40 80 00 10 */ bge lbl_802AA310
+/* 802AA304 002A5F64 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA308 002A5F68 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA30C 002A5F6C 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA310:
+/* 802AA310 002A5F70 4B FC 44 75 */ bl OSRestoreInterrupts
+/* 802AA314 002A5F74 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA318 002A5F78 38 03 FF FF */ addi r0, r3, -1
+/* 802AA31C 002A5F7C 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA320 002A5F80 40 82 00 10 */ bne lbl_802AA330
+/* 802AA324 002A5F84 7F C3 F3 78 */ mr r3, r30
+/* 802AA328 002A5F88 4B FC 44 5D */ bl OSRestoreInterrupts
+/* 802AA32C 002A5F8C 48 00 00 78 */ b lbl_802AA3A4
+lbl_802AA330:
+/* 802AA330 002A5F90 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA334 002A5F94 38 80 00 00 */ li r4, 0
+/* 802AA338 002A5F98 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA33C 002A5F9C 38 A0 00 30 */ li r5, 0x30
+/* 802AA340 002A5FA0 7C 00 07 74 */ extsb r0, r0
+/* 802AA344 002A5FA4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA348 002A5FA8 7C 63 02 14 */ add r3, r3, r0
+/* 802AA34C 002A5FAC 4B D5 9D B9 */ bl memset
+/* 802AA350 002A5FB0 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA354 002A5FB4 38 81 04 28 */ addi r4, r1, 0x428
+/* 802AA358 002A5FB8 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA35C 002A5FBC 38 A0 00 30 */ li r5, 0x30
+/* 802AA360 002A5FC0 7C 00 07 74 */ extsb r0, r0
+/* 802AA364 002A5FC4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA368 002A5FC8 7C 63 02 14 */ add r3, r3, r0
+/* 802AA36C 002A5FCC 4B D5 9C 95 */ bl memcpy
+/* 802AA370 002A5FD0 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA374 002A5FD4 7F C3 F3 78 */ mr r3, r30
+/* 802AA378 002A5FD8 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA37C 002A5FDC 7C 06 07 74 */ extsb r6, r0
+/* 802AA380 002A5FE0 38 84 FF FF */ addi r4, r4, -1
+/* 802AA384 002A5FE4 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA388 002A5FE8 38 06 00 01 */ addi r0, r6, 1
+/* 802AA38C 002A5FEC 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA390 002A5FF0 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA394 002A5FF4 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA398 002A5FF8 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA39C 002A5FFC 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA3A0 002A6000 4B FC 43 E5 */ bl OSRestoreInterrupts
+lbl_802AA3A4:
+/* 802AA3A4 002A6004 7F A3 EB 78 */ mr r3, r29
+/* 802AA3A8 002A6008 4B FC 43 DD */ bl OSRestoreInterrupts
+/* 802AA3AC 002A600C 38 60 00 00 */ li r3, 0
+/* 802AA3B0 002A6010 48 00 0E 68 */ b lbl_802AB218
+lbl_802AA3B4:
+/* 802AA3B4 002A6014 7F A3 EB 78 */ mr r3, r29
+/* 802AA3B8 002A6018 3B 40 FF FE */ li r26, -2
+/* 802AA3BC 002A601C 4B FC 43 C9 */ bl OSRestoreInterrupts
+/* 802AA3C0 002A6020 48 00 0E 38 */ b lbl_802AB1F8
+lbl_802AA3C4:
+/* 802AA3C4 002A6024 2C 19 00 03 */ cmpwi r25, 3
+/* 802AA3C8 002A6028 41 82 0B 40 */ beq lbl_802AAF08
+/* 802AA3CC 002A602C 40 80 00 14 */ bge lbl_802AA3E0
+/* 802AA3D0 002A6030 2C 19 00 01 */ cmpwi r25, 1
+/* 802AA3D4 002A6034 41 82 00 1C */ beq lbl_802AA3F0
+/* 802AA3D8 002A6038 40 80 09 DC */ bge lbl_802AADB4
+/* 802AA3DC 002A603C 48 00 0E 1C */ b lbl_802AB1F8
+lbl_802AA3E0:
+/* 802AA3E0 002A6040 2C 19 00 05 */ cmpwi r25, 5
+/* 802AA3E4 002A6044 41 82 00 0C */ beq lbl_802AA3F0
+/* 802AA3E8 002A6048 40 80 0E 10 */ bge lbl_802AB1F8
+/* 802AA3EC 002A604C 48 00 0C 70 */ b lbl_802AB05C
+lbl_802AA3F0:
+/* 802AA3F0 002A6050 4B FC 43 6D */ bl OSDisableInterrupts
+/* 802AA3F4 002A6054 7C 7D 1B 78 */ mr r29, r3
+/* 802AA3F8 002A6058 4B FC 43 65 */ bl OSDisableInterrupts
+/* 802AA3FC 002A605C 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA400 002A6060 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA404 002A6064 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA408 002A6068 7C 1E 07 75 */ extsb. r30, r0
+/* 802AA40C 002A606C 40 80 00 10 */ bge lbl_802AA41C
+/* 802AA410 002A6070 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA414 002A6074 7C 1E 02 14 */ add r0, r30, r0
+/* 802AA418 002A6078 7C 1E 07 74 */ extsb r30, r0
+lbl_802AA41C:
+/* 802AA41C 002A607C 4B FC 43 69 */ bl OSRestoreInterrupts
+/* 802AA420 002A6080 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA424 002A6084 38 9E 00 07 */ addi r4, r30, 7
+/* 802AA428 002A6088 38 03 FF FF */ addi r0, r3, -1
+/* 802AA42C 002A608C 7C 04 00 40 */ cmplw r4, r0
+/* 802AA430 002A6090 41 81 09 74 */ bgt lbl_802AADA4
+/* 802AA434 002A6094 38 60 00 01 */ li r3, 1
+/* 802AA438 002A6098 38 00 00 04 */ li r0, 4
+/* 802AA43C 002A609C B0 61 03 B2 */ sth r3, 0x3b2(r1)
+/* 802AA440 002A60A0 3B 60 00 14 */ li r27, 0x14
+/* 802AA444 002A60A4 39 80 00 00 */ li r12, 0
+/* 802AA448 002A60A8 81 41 03 A0 */ lwz r10, 0x3a0(r1)
+/* 802AA44C 002A60AC 98 01 03 9C */ stb r0, 0x39c(r1)
+/* 802AA450 002A60B0 81 21 03 A4 */ lwz r9, 0x3a4(r1)
+/* 802AA454 002A60B4 81 61 03 9C */ lwz r11, 0x39c(r1)
+/* 802AA458 002A60B8 81 01 03 A8 */ lwz r8, 0x3a8(r1)
+/* 802AA45C 002A60BC 80 E1 03 AC */ lwz r7, 0x3ac(r1)
+/* 802AA460 002A60C0 80 C1 03 B0 */ lwz r6, 0x3b0(r1)
+/* 802AA464 002A60C4 80 A1 03 B4 */ lwz r5, 0x3b4(r1)
+/* 802AA468 002A60C8 80 81 03 B8 */ lwz r4, 0x3b8(r1)
+/* 802AA46C 002A60CC 80 61 03 BC */ lwz r3, 0x3bc(r1)
+/* 802AA470 002A60D0 80 01 03 C0 */ lwz r0, 0x3c0(r1)
+/* 802AA474 002A60D4 93 61 03 98 */ stw r27, 0x398(r1)
+/* 802AA478 002A60D8 91 81 03 C4 */ stw r12, 0x3c4(r1)
+/* 802AA47C 002A60DC 93 61 03 C8 */ stw r27, 0x3c8(r1)
+/* 802AA480 002A60E0 91 61 03 CC */ stw r11, 0x3cc(r1)
+/* 802AA484 002A60E4 91 41 03 D0 */ stw r10, 0x3d0(r1)
+/* 802AA488 002A60E8 91 21 03 D4 */ stw r9, 0x3d4(r1)
+/* 802AA48C 002A60EC 91 01 03 D8 */ stw r8, 0x3d8(r1)
+/* 802AA490 002A60F0 90 E1 03 DC */ stw r7, 0x3dc(r1)
+/* 802AA494 002A60F4 90 C1 03 E0 */ stw r6, 0x3e0(r1)
+/* 802AA498 002A60F8 90 A1 03 E4 */ stw r5, 0x3e4(r1)
+/* 802AA49C 002A60FC 90 81 03 E8 */ stw r4, 0x3e8(r1)
+/* 802AA4A0 002A6100 90 61 03 EC */ stw r3, 0x3ec(r1)
+/* 802AA4A4 002A6104 90 01 03 F0 */ stw r0, 0x3f0(r1)
+/* 802AA4A8 002A6108 91 81 03 F4 */ stw r12, 0x3f4(r1)
+/* 802AA4AC 002A610C 4B FC 42 B1 */ bl OSDisableInterrupts
+/* 802AA4B0 002A6110 7C 7E 1B 78 */ mr r30, r3
+/* 802AA4B4 002A6114 4B FC 42 A9 */ bl OSDisableInterrupts
+/* 802AA4B8 002A6118 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA4BC 002A611C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA4C0 002A6120 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA4C4 002A6124 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA4C8 002A6128 40 80 00 10 */ bge lbl_802AA4D8
+/* 802AA4CC 002A612C 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA4D0 002A6130 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA4D4 002A6134 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA4D8:
+/* 802AA4D8 002A6138 4B FC 42 AD */ bl OSRestoreInterrupts
+/* 802AA4DC 002A613C 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA4E0 002A6140 38 03 FF FF */ addi r0, r3, -1
+/* 802AA4E4 002A6144 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA4E8 002A6148 40 82 00 10 */ bne lbl_802AA4F8
+/* 802AA4EC 002A614C 7F C3 F3 78 */ mr r3, r30
+/* 802AA4F0 002A6150 4B FC 42 95 */ bl OSRestoreInterrupts
+/* 802AA4F4 002A6154 48 00 00 78 */ b lbl_802AA56C
+lbl_802AA4F8:
+/* 802AA4F8 002A6158 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA4FC 002A615C 38 80 00 00 */ li r4, 0
+/* 802AA500 002A6160 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA504 002A6164 38 A0 00 30 */ li r5, 0x30
+/* 802AA508 002A6168 7C 00 07 74 */ extsb r0, r0
+/* 802AA50C 002A616C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA510 002A6170 7C 63 02 14 */ add r3, r3, r0
+/* 802AA514 002A6174 4B D5 9B F1 */ bl memset
+/* 802AA518 002A6178 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA51C 002A617C 38 81 03 C8 */ addi r4, r1, 0x3c8
+/* 802AA520 002A6180 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA524 002A6184 38 A0 00 30 */ li r5, 0x30
+/* 802AA528 002A6188 7C 00 07 74 */ extsb r0, r0
+/* 802AA52C 002A618C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA530 002A6190 7C 63 02 14 */ add r3, r3, r0
+/* 802AA534 002A6194 4B D5 9A CD */ bl memcpy
+/* 802AA538 002A6198 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA53C 002A619C 7F C3 F3 78 */ mr r3, r30
+/* 802AA540 002A61A0 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA544 002A61A4 7C 06 07 74 */ extsb r6, r0
+/* 802AA548 002A61A8 38 84 FF FF */ addi r4, r4, -1
+/* 802AA54C 002A61AC 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA550 002A61B0 38 06 00 01 */ addi r0, r6, 1
+/* 802AA554 002A61B4 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA558 002A61B8 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA55C 002A61BC 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA560 002A61C0 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA564 002A61C4 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA568 002A61C8 4B FC 42 1D */ bl OSRestoreInterrupts
+lbl_802AA56C:
+/* 802AA56C 002A61CC 38 60 00 01 */ li r3, 1
+/* 802AA570 002A61D0 38 00 00 04 */ li r0, 4
+/* 802AA574 002A61D4 B0 61 03 52 */ sth r3, 0x352(r1)
+/* 802AA578 002A61D8 3B 60 00 19 */ li r27, 0x19
+/* 802AA57C 002A61DC 39 80 00 00 */ li r12, 0
+/* 802AA580 002A61E0 81 41 03 40 */ lwz r10, 0x340(r1)
+/* 802AA584 002A61E4 98 01 03 3C */ stb r0, 0x33c(r1)
+/* 802AA588 002A61E8 81 21 03 44 */ lwz r9, 0x344(r1)
+/* 802AA58C 002A61EC 81 61 03 3C */ lwz r11, 0x33c(r1)
+/* 802AA590 002A61F0 81 01 03 48 */ lwz r8, 0x348(r1)
+/* 802AA594 002A61F4 80 E1 03 4C */ lwz r7, 0x34c(r1)
+/* 802AA598 002A61F8 80 C1 03 50 */ lwz r6, 0x350(r1)
+/* 802AA59C 002A61FC 80 A1 03 54 */ lwz r5, 0x354(r1)
+/* 802AA5A0 002A6200 80 81 03 58 */ lwz r4, 0x358(r1)
+/* 802AA5A4 002A6204 80 61 03 5C */ lwz r3, 0x35c(r1)
+/* 802AA5A8 002A6208 80 01 03 60 */ lwz r0, 0x360(r1)
+/* 802AA5AC 002A620C 93 61 03 38 */ stw r27, 0x338(r1)
+/* 802AA5B0 002A6210 91 81 03 64 */ stw r12, 0x364(r1)
+/* 802AA5B4 002A6214 93 61 03 68 */ stw r27, 0x368(r1)
+/* 802AA5B8 002A6218 91 61 03 6C */ stw r11, 0x36c(r1)
+/* 802AA5BC 002A621C 91 41 03 70 */ stw r10, 0x370(r1)
+/* 802AA5C0 002A6220 91 21 03 74 */ stw r9, 0x374(r1)
+/* 802AA5C4 002A6224 91 01 03 78 */ stw r8, 0x378(r1)
+/* 802AA5C8 002A6228 90 E1 03 7C */ stw r7, 0x37c(r1)
+/* 802AA5CC 002A622C 90 C1 03 80 */ stw r6, 0x380(r1)
+/* 802AA5D0 002A6230 90 A1 03 84 */ stw r5, 0x384(r1)
+/* 802AA5D4 002A6234 90 81 03 88 */ stw r4, 0x388(r1)
+/* 802AA5D8 002A6238 90 61 03 8C */ stw r3, 0x38c(r1)
+/* 802AA5DC 002A623C 90 01 03 90 */ stw r0, 0x390(r1)
+/* 802AA5E0 002A6240 91 81 03 94 */ stw r12, 0x394(r1)
+/* 802AA5E4 002A6244 4B FC 41 79 */ bl OSDisableInterrupts
+/* 802AA5E8 002A6248 7C 7E 1B 78 */ mr r30, r3
+/* 802AA5EC 002A624C 4B FC 41 71 */ bl OSDisableInterrupts
+/* 802AA5F0 002A6250 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA5F4 002A6254 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA5F8 002A6258 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA5FC 002A625C 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA600 002A6260 40 80 00 10 */ bge lbl_802AA610
+/* 802AA604 002A6264 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA608 002A6268 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA60C 002A626C 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA610:
+/* 802AA610 002A6270 4B FC 41 75 */ bl OSRestoreInterrupts
+/* 802AA614 002A6274 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA618 002A6278 38 03 FF FF */ addi r0, r3, -1
+/* 802AA61C 002A627C 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA620 002A6280 40 82 00 10 */ bne lbl_802AA630
+/* 802AA624 002A6284 7F C3 F3 78 */ mr r3, r30
+/* 802AA628 002A6288 4B FC 41 5D */ bl OSRestoreInterrupts
+/* 802AA62C 002A628C 48 00 00 78 */ b lbl_802AA6A4
+lbl_802AA630:
+/* 802AA630 002A6290 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA634 002A6294 38 80 00 00 */ li r4, 0
+/* 802AA638 002A6298 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA63C 002A629C 38 A0 00 30 */ li r5, 0x30
+/* 802AA640 002A62A0 7C 00 07 74 */ extsb r0, r0
+/* 802AA644 002A62A4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA648 002A62A8 7C 63 02 14 */ add r3, r3, r0
+/* 802AA64C 002A62AC 4B D5 9A B9 */ bl memset
+/* 802AA650 002A62B0 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA654 002A62B4 38 81 03 68 */ addi r4, r1, 0x368
+/* 802AA658 002A62B8 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA65C 002A62BC 38 A0 00 30 */ li r5, 0x30
+/* 802AA660 002A62C0 7C 00 07 74 */ extsb r0, r0
+/* 802AA664 002A62C4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA668 002A62C8 7C 63 02 14 */ add r3, r3, r0
+/* 802AA66C 002A62CC 4B D5 99 95 */ bl memcpy
+/* 802AA670 002A62D0 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA674 002A62D4 7F C3 F3 78 */ mr r3, r30
+/* 802AA678 002A62D8 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA67C 002A62DC 7C 06 07 74 */ extsb r6, r0
+/* 802AA680 002A62E0 38 84 FF FF */ addi r4, r4, -1
+/* 802AA684 002A62E4 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA688 002A62E8 38 06 00 01 */ addi r0, r6, 1
+/* 802AA68C 002A62EC 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA690 002A62F0 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA694 002A62F4 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA698 002A62F8 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA69C 002A62FC 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA6A0 002A6300 4B FC 40 E5 */ bl OSRestoreInterrupts
+lbl_802AA6A4:
+/* 802AA6A4 002A6304 3C 60 04 A2 */ lis r3, 0x04A20009@ha
+/* 802AA6A8 002A6308 39 20 00 01 */ li r9, 1
+/* 802AA6AC 002A630C 39 03 00 09 */ addi r8, r3, 0x04A20009@l
+/* 802AA6B0 002A6310 38 E0 00 16 */ li r7, 0x16
+/* 802AA6B4 002A6314 38 C0 00 15 */ li r6, 0x15
+/* 802AA6B8 002A6318 38 00 00 00 */ li r0, 0
+/* 802AA6BC 002A631C 99 21 00 0E */ stb r9, 0xe(r1)
+/* 802AA6C0 002A6320 38 61 03 0C */ addi r3, r1, 0x30c
+/* 802AA6C4 002A6324 38 81 00 20 */ addi r4, r1, 0x20
+/* 802AA6C8 002A6328 38 A0 00 04 */ li r5, 4
+/* 802AA6CC 002A632C 91 01 00 20 */ stw r8, 0x20(r1)
+/* 802AA6D0 002A6330 99 21 00 0D */ stb r9, 0xd(r1)
+/* 802AA6D4 002A6334 90 E1 03 08 */ stw r7, 0x308(r1)
+/* 802AA6D8 002A6338 B0 C1 03 22 */ sth r6, 0x322(r1)
+/* 802AA6DC 002A633C 90 01 03 34 */ stw r0, 0x334(r1)
+/* 802AA6E0 002A6340 4B D5 99 21 */ bl memcpy
+/* 802AA6E4 002A6344 38 61 03 10 */ addi r3, r1, 0x310
+/* 802AA6E8 002A6348 38 81 00 0D */ addi r4, r1, 0xd
+/* 802AA6EC 002A634C 38 A0 00 01 */ li r5, 1
+/* 802AA6F0 002A6350 4B D5 99 11 */ bl memcpy
+/* 802AA6F4 002A6354 38 61 03 11 */ addi r3, r1, 0x311
+/* 802AA6F8 002A6358 38 81 00 0E */ addi r4, r1, 0xe
+/* 802AA6FC 002A635C 38 A0 00 01 */ li r5, 1
+/* 802AA700 002A6360 4B D5 99 01 */ bl memcpy
+/* 802AA704 002A6364 83 61 03 08 */ lwz r27, 0x308(r1)
+/* 802AA708 002A6368 81 81 03 0C */ lwz r12, 0x30c(r1)
+/* 802AA70C 002A636C 81 61 03 10 */ lwz r11, 0x310(r1)
+/* 802AA710 002A6370 81 41 03 14 */ lwz r10, 0x314(r1)
+/* 802AA714 002A6374 81 21 03 18 */ lwz r9, 0x318(r1)
+/* 802AA718 002A6378 81 01 03 1C */ lwz r8, 0x31c(r1)
+/* 802AA71C 002A637C 80 E1 03 20 */ lwz r7, 0x320(r1)
+/* 802AA720 002A6380 80 C1 03 24 */ lwz r6, 0x324(r1)
+/* 802AA724 002A6384 80 A1 03 28 */ lwz r5, 0x328(r1)
+/* 802AA728 002A6388 80 81 03 2C */ lwz r4, 0x32c(r1)
+/* 802AA72C 002A638C 80 61 03 30 */ lwz r3, 0x330(r1)
+/* 802AA730 002A6390 80 01 03 34 */ lwz r0, 0x334(r1)
+/* 802AA734 002A6394 93 61 02 D8 */ stw r27, 0x2d8(r1)
+/* 802AA738 002A6398 91 81 02 DC */ stw r12, 0x2dc(r1)
+/* 802AA73C 002A639C 91 61 02 E0 */ stw r11, 0x2e0(r1)
+/* 802AA740 002A63A0 91 41 02 E4 */ stw r10, 0x2e4(r1)
+/* 802AA744 002A63A4 91 21 02 E8 */ stw r9, 0x2e8(r1)
+/* 802AA748 002A63A8 91 01 02 EC */ stw r8, 0x2ec(r1)
+/* 802AA74C 002A63AC 90 E1 02 F0 */ stw r7, 0x2f0(r1)
+/* 802AA750 002A63B0 90 C1 02 F4 */ stw r6, 0x2f4(r1)
+/* 802AA754 002A63B4 90 A1 02 F8 */ stw r5, 0x2f8(r1)
+/* 802AA758 002A63B8 90 81 02 FC */ stw r4, 0x2fc(r1)
+/* 802AA75C 002A63BC 90 61 03 00 */ stw r3, 0x300(r1)
+/* 802AA760 002A63C0 90 01 03 04 */ stw r0, 0x304(r1)
+/* 802AA764 002A63C4 4B FC 3F F9 */ bl OSDisableInterrupts
+/* 802AA768 002A63C8 7C 7E 1B 78 */ mr r30, r3
+/* 802AA76C 002A63CC 4B FC 3F F1 */ bl OSDisableInterrupts
+/* 802AA770 002A63D0 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA774 002A63D4 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA778 002A63D8 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA77C 002A63DC 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA780 002A63E0 40 80 00 10 */ bge lbl_802AA790
+/* 802AA784 002A63E4 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA788 002A63E8 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA78C 002A63EC 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA790:
+/* 802AA790 002A63F0 4B FC 3F F5 */ bl OSRestoreInterrupts
+/* 802AA794 002A63F4 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA798 002A63F8 38 03 FF FF */ addi r0, r3, -1
+/* 802AA79C 002A63FC 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA7A0 002A6400 40 82 00 10 */ bne lbl_802AA7B0
+/* 802AA7A4 002A6404 7F C3 F3 78 */ mr r3, r30
+/* 802AA7A8 002A6408 4B FC 3F DD */ bl OSRestoreInterrupts
+/* 802AA7AC 002A640C 48 00 00 78 */ b lbl_802AA824
+lbl_802AA7B0:
+/* 802AA7B0 002A6410 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA7B4 002A6414 38 80 00 00 */ li r4, 0
+/* 802AA7B8 002A6418 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA7BC 002A641C 38 A0 00 30 */ li r5, 0x30
+/* 802AA7C0 002A6420 7C 00 07 74 */ extsb r0, r0
+/* 802AA7C4 002A6424 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA7C8 002A6428 7C 63 02 14 */ add r3, r3, r0
+/* 802AA7CC 002A642C 4B D5 99 39 */ bl memset
+/* 802AA7D0 002A6430 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA7D4 002A6434 38 81 02 D8 */ addi r4, r1, 0x2d8
+/* 802AA7D8 002A6438 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA7DC 002A643C 38 A0 00 30 */ li r5, 0x30
+/* 802AA7E0 002A6440 7C 00 07 74 */ extsb r0, r0
+/* 802AA7E4 002A6444 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA7E8 002A6448 7C 63 02 14 */ add r3, r3, r0
+/* 802AA7EC 002A644C 4B D5 98 15 */ bl memcpy
+/* 802AA7F0 002A6450 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA7F4 002A6454 7F C3 F3 78 */ mr r3, r30
+/* 802AA7F8 002A6458 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA7FC 002A645C 7C 06 07 74 */ extsb r6, r0
+/* 802AA800 002A6460 38 84 FF FF */ addi r4, r4, -1
+/* 802AA804 002A6464 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA808 002A6468 38 06 00 01 */ addi r0, r6, 1
+/* 802AA80C 002A646C 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA810 002A6470 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA814 002A6474 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA818 002A6478 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA81C 002A647C 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA820 002A6480 4B FC 3F 65 */ bl OSRestoreInterrupts
+lbl_802AA824:
+/* 802AA824 002A6484 3C 60 04 A2 */ lis r3, 0x04A20001@ha
+/* 802AA828 002A6488 38 80 00 80 */ li r4, 0x80
+/* 802AA82C 002A648C 38 A3 00 01 */ addi r5, r3, 0x04A20001@l
+/* 802AA830 002A6490 39 00 00 01 */ li r8, 1
+/* 802AA834 002A6494 38 E0 00 16 */ li r7, 0x16
+/* 802AA838 002A6498 38 C0 00 15 */ li r6, 0x15
+/* 802AA83C 002A649C 38 00 00 00 */ li r0, 0
+/* 802AA840 002A64A0 98 81 00 0C */ stb r4, 0xc(r1)
+/* 802AA844 002A64A4 38 61 02 AC */ addi r3, r1, 0x2ac
+/* 802AA848 002A64A8 38 81 00 1C */ addi r4, r1, 0x1c
+/* 802AA84C 002A64AC 90 A1 00 1C */ stw r5, 0x1c(r1)
+/* 802AA850 002A64B0 38 A0 00 04 */ li r5, 4
+/* 802AA854 002A64B4 99 01 00 0B */ stb r8, 0xb(r1)
+/* 802AA858 002A64B8 90 E1 02 A8 */ stw r7, 0x2a8(r1)
+/* 802AA85C 002A64BC B0 C1 02 C2 */ sth r6, 0x2c2(r1)
+/* 802AA860 002A64C0 90 01 02 D4 */ stw r0, 0x2d4(r1)
+/* 802AA864 002A64C4 4B D5 97 9D */ bl memcpy
+/* 802AA868 002A64C8 38 61 02 B0 */ addi r3, r1, 0x2b0
+/* 802AA86C 002A64CC 38 81 00 0B */ addi r4, r1, 0xb
+/* 802AA870 002A64D0 38 A0 00 01 */ li r5, 1
+/* 802AA874 002A64D4 4B D5 97 8D */ bl memcpy
+/* 802AA878 002A64D8 38 61 02 B1 */ addi r3, r1, 0x2b1
+/* 802AA87C 002A64DC 38 81 00 0C */ addi r4, r1, 0xc
+/* 802AA880 002A64E0 38 A0 00 01 */ li r5, 1
+/* 802AA884 002A64E4 4B D5 97 7D */ bl memcpy
+/* 802AA888 002A64E8 83 61 02 A8 */ lwz r27, 0x2a8(r1)
+/* 802AA88C 002A64EC 81 81 02 AC */ lwz r12, 0x2ac(r1)
+/* 802AA890 002A64F0 81 61 02 B0 */ lwz r11, 0x2b0(r1)
+/* 802AA894 002A64F4 81 41 02 B4 */ lwz r10, 0x2b4(r1)
+/* 802AA898 002A64F8 81 21 02 B8 */ lwz r9, 0x2b8(r1)
+/* 802AA89C 002A64FC 81 01 02 BC */ lwz r8, 0x2bc(r1)
+/* 802AA8A0 002A6500 80 E1 02 C0 */ lwz r7, 0x2c0(r1)
+/* 802AA8A4 002A6504 80 C1 02 C4 */ lwz r6, 0x2c4(r1)
+/* 802AA8A8 002A6508 80 A1 02 C8 */ lwz r5, 0x2c8(r1)
+/* 802AA8AC 002A650C 80 81 02 CC */ lwz r4, 0x2cc(r1)
+/* 802AA8B0 002A6510 80 61 02 D0 */ lwz r3, 0x2d0(r1)
+/* 802AA8B4 002A6514 80 01 02 D4 */ lwz r0, 0x2d4(r1)
+/* 802AA8B8 002A6518 93 61 02 78 */ stw r27, 0x278(r1)
+/* 802AA8BC 002A651C 91 81 02 7C */ stw r12, 0x27c(r1)
+/* 802AA8C0 002A6520 91 61 02 80 */ stw r11, 0x280(r1)
+/* 802AA8C4 002A6524 91 41 02 84 */ stw r10, 0x284(r1)
+/* 802AA8C8 002A6528 91 21 02 88 */ stw r9, 0x288(r1)
+/* 802AA8CC 002A652C 91 01 02 8C */ stw r8, 0x28c(r1)
+/* 802AA8D0 002A6530 90 E1 02 90 */ stw r7, 0x290(r1)
+/* 802AA8D4 002A6534 90 C1 02 94 */ stw r6, 0x294(r1)
+/* 802AA8D8 002A6538 90 A1 02 98 */ stw r5, 0x298(r1)
+/* 802AA8DC 002A653C 90 81 02 9C */ stw r4, 0x29c(r1)
+/* 802AA8E0 002A6540 90 61 02 A0 */ stw r3, 0x2a0(r1)
+/* 802AA8E4 002A6544 90 01 02 A4 */ stw r0, 0x2a4(r1)
+/* 802AA8E8 002A6548 4B FC 3E 75 */ bl OSDisableInterrupts
+/* 802AA8EC 002A654C 7C 7E 1B 78 */ mr r30, r3
+/* 802AA8F0 002A6550 4B FC 3E 6D */ bl OSDisableInterrupts
+/* 802AA8F4 002A6554 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AA8F8 002A6558 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA8FC 002A655C 7C 04 00 50 */ subf r0, r4, r0
+/* 802AA900 002A6560 7C 1B 07 75 */ extsb. r27, r0
+/* 802AA904 002A6564 40 80 00 10 */ bge lbl_802AA914
+/* 802AA908 002A6568 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AA90C 002A656C 7C 1B 02 14 */ add r0, r27, r0
+/* 802AA910 002A6570 7C 1B 07 74 */ extsb r27, r0
+lbl_802AA914:
+/* 802AA914 002A6574 4B FC 3E 71 */ bl OSRestoreInterrupts
+/* 802AA918 002A6578 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AA91C 002A657C 38 03 FF FF */ addi r0, r3, -1
+/* 802AA920 002A6580 7C 00 D8 40 */ cmplw r0, r27
+/* 802AA924 002A6584 40 82 00 10 */ bne lbl_802AA934
+/* 802AA928 002A6588 7F C3 F3 78 */ mr r3, r30
+/* 802AA92C 002A658C 4B FC 3E 59 */ bl OSRestoreInterrupts
+/* 802AA930 002A6590 48 00 00 78 */ b lbl_802AA9A8
+lbl_802AA934:
+/* 802AA934 002A6594 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA938 002A6598 38 80 00 00 */ li r4, 0
+/* 802AA93C 002A659C 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA940 002A65A0 38 A0 00 30 */ li r5, 0x30
+/* 802AA944 002A65A4 7C 00 07 74 */ extsb r0, r0
+/* 802AA948 002A65A8 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA94C 002A65AC 7C 63 02 14 */ add r3, r3, r0
+/* 802AA950 002A65B0 4B D5 97 B5 */ bl memset
+/* 802AA954 002A65B4 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA958 002A65B8 38 81 02 78 */ addi r4, r1, 0x278
+/* 802AA95C 002A65BC 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AA960 002A65C0 38 A0 00 30 */ li r5, 0x30
+/* 802AA964 002A65C4 7C 00 07 74 */ extsb r0, r0
+/* 802AA968 002A65C8 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AA96C 002A65CC 7C 63 02 14 */ add r3, r3, r0
+/* 802AA970 002A65D0 4B D5 96 91 */ bl memcpy
+/* 802AA974 002A65D4 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AA978 002A65D8 7F C3 F3 78 */ mr r3, r30
+/* 802AA97C 002A65DC 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AA980 002A65E0 7C 06 07 74 */ extsb r6, r0
+/* 802AA984 002A65E4 38 84 FF FF */ addi r4, r4, -1
+/* 802AA988 002A65E8 7C A4 30 50 */ subf r5, r4, r6
+/* 802AA98C 002A65EC 38 06 00 01 */ addi r0, r6, 1
+/* 802AA990 002A65F0 7C 86 20 50 */ subf r4, r6, r4
+/* 802AA994 002A65F4 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AA998 002A65F8 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AA99C 002A65FC 7C 00 20 78 */ andc r0, r0, r4
+/* 802AA9A0 002A6600 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AA9A4 002A6604 4B FC 3D E1 */ bl OSRestoreInterrupts
+lbl_802AA9A8:
+/* 802AA9A8 002A6608 88 8D AE 5A */ lbz r4, lbl_8064011A-_SDA_BASE_(r13)
+/* 802AA9AC 002A660C 3C 60 04 A2 */ lis r3, 0x04A20001@ha
+/* 802AA9B0 002A6610 38 A3 00 01 */ addi r5, r3, 0x04A20001@l
+/* 802AA9B4 002A6614 39 00 00 07 */ li r8, 7
+/* 802AA9B8 002A6618 38 E0 00 16 */ li r7, 0x16
+/* 802AA9BC 002A661C 38 C0 00 15 */ li r6, 0x15
+/* 802AA9C0 002A6620 38 00 00 00 */ li r0, 0
+/* 802AA9C4 002A6624 98 81 00 30 */ stb r4, 0x30(r1)
+/* 802AA9C8 002A6628 38 61 02 1C */ addi r3, r1, 0x21c
+/* 802AA9CC 002A662C 38 81 00 18 */ addi r4, r1, 0x18
+/* 802AA9D0 002A6630 90 A1 00 18 */ stw r5, 0x18(r1)
+/* 802AA9D4 002A6634 38 A0 00 04 */ li r5, 4
+/* 802AA9D8 002A6638 99 01 00 0A */ stb r8, 0xa(r1)
+/* 802AA9DC 002A663C 90 E1 02 18 */ stw r7, 0x218(r1)
+/* 802AA9E0 002A6640 B0 C1 02 32 */ sth r6, 0x232(r1)
+/* 802AA9E4 002A6644 90 01 02 44 */ stw r0, 0x244(r1)
+/* 802AA9E8 002A6648 4B D5 96 19 */ bl memcpy
+/* 802AA9EC 002A664C 38 61 02 20 */ addi r3, r1, 0x220
+/* 802AA9F0 002A6650 38 81 00 0A */ addi r4, r1, 0xa
+/* 802AA9F4 002A6654 38 A0 00 01 */ li r5, 1
+/* 802AA9F8 002A6658 4B D5 96 09 */ bl memcpy
+/* 802AA9FC 002A665C 38 61 02 21 */ addi r3, r1, 0x221
+/* 802AAA00 002A6660 38 81 00 2C */ addi r4, r1, 0x2c
+/* 802AAA04 002A6664 38 A0 00 07 */ li r5, 7
+/* 802AAA08 002A6668 4B D5 95 F9 */ bl memcpy
+/* 802AAA0C 002A666C 83 61 02 18 */ lwz r27, 0x218(r1)
+/* 802AAA10 002A6670 81 81 02 1C */ lwz r12, 0x21c(r1)
+/* 802AAA14 002A6674 81 61 02 20 */ lwz r11, 0x220(r1)
+/* 802AAA18 002A6678 81 41 02 24 */ lwz r10, 0x224(r1)
+/* 802AAA1C 002A667C 81 21 02 28 */ lwz r9, 0x228(r1)
+/* 802AAA20 002A6680 81 01 02 2C */ lwz r8, 0x22c(r1)
+/* 802AAA24 002A6684 80 E1 02 30 */ lwz r7, 0x230(r1)
+/* 802AAA28 002A6688 80 C1 02 34 */ lwz r6, 0x234(r1)
+/* 802AAA2C 002A668C 80 A1 02 38 */ lwz r5, 0x238(r1)
+/* 802AAA30 002A6690 80 81 02 3C */ lwz r4, 0x23c(r1)
+/* 802AAA34 002A6694 80 61 02 40 */ lwz r3, 0x240(r1)
+/* 802AAA38 002A6698 80 01 02 44 */ lwz r0, 0x244(r1)
+/* 802AAA3C 002A669C 93 61 02 48 */ stw r27, 0x248(r1)
+/* 802AAA40 002A66A0 91 81 02 4C */ stw r12, 0x24c(r1)
+/* 802AAA44 002A66A4 91 61 02 50 */ stw r11, 0x250(r1)
+/* 802AAA48 002A66A8 91 41 02 54 */ stw r10, 0x254(r1)
+/* 802AAA4C 002A66AC 91 21 02 58 */ stw r9, 0x258(r1)
+/* 802AAA50 002A66B0 91 01 02 5C */ stw r8, 0x25c(r1)
+/* 802AAA54 002A66B4 90 E1 02 60 */ stw r7, 0x260(r1)
+/* 802AAA58 002A66B8 90 C1 02 64 */ stw r6, 0x264(r1)
+/* 802AAA5C 002A66BC 90 A1 02 68 */ stw r5, 0x268(r1)
+/* 802AAA60 002A66C0 90 81 02 6C */ stw r4, 0x26c(r1)
+/* 802AAA64 002A66C4 90 61 02 70 */ stw r3, 0x270(r1)
+/* 802AAA68 002A66C8 90 01 02 74 */ stw r0, 0x274(r1)
+/* 802AAA6C 002A66CC 4B FC 3C F1 */ bl OSDisableInterrupts
+/* 802AAA70 002A66D0 7C 7E 1B 78 */ mr r30, r3
+/* 802AAA74 002A66D4 4B FC 3C E9 */ bl OSDisableInterrupts
+/* 802AAA78 002A66D8 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AAA7C 002A66DC 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAA80 002A66E0 7C 04 00 50 */ subf r0, r4, r0
+/* 802AAA84 002A66E4 7C 1B 07 75 */ extsb. r27, r0
+/* 802AAA88 002A66E8 40 80 00 10 */ bge lbl_802AAA98
+/* 802AAA8C 002A66EC 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AAA90 002A66F0 7C 1B 02 14 */ add r0, r27, r0
+/* 802AAA94 002A66F4 7C 1B 07 74 */ extsb r27, r0
+lbl_802AAA98:
+/* 802AAA98 002A66F8 4B FC 3C ED */ bl OSRestoreInterrupts
+/* 802AAA9C 002A66FC 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AAAA0 002A6700 38 03 FF FF */ addi r0, r3, -1
+/* 802AAAA4 002A6704 7C 00 D8 40 */ cmplw r0, r27
+/* 802AAAA8 002A6708 40 82 00 10 */ bne lbl_802AAAB8
+/* 802AAAAC 002A670C 7F C3 F3 78 */ mr r3, r30
+/* 802AAAB0 002A6710 4B FC 3C D5 */ bl OSRestoreInterrupts
+/* 802AAAB4 002A6714 48 00 00 78 */ b lbl_802AAB2C
+lbl_802AAAB8:
+/* 802AAAB8 002A6718 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAABC 002A671C 38 80 00 00 */ li r4, 0
+/* 802AAAC0 002A6720 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAAC4 002A6724 38 A0 00 30 */ li r5, 0x30
+/* 802AAAC8 002A6728 7C 00 07 74 */ extsb r0, r0
+/* 802AAACC 002A672C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAAD0 002A6730 7C 63 02 14 */ add r3, r3, r0
+/* 802AAAD4 002A6734 4B D5 96 31 */ bl memset
+/* 802AAAD8 002A6738 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAADC 002A673C 38 81 02 48 */ addi r4, r1, 0x248
+/* 802AAAE0 002A6740 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAAE4 002A6744 38 A0 00 30 */ li r5, 0x30
+/* 802AAAE8 002A6748 7C 00 07 74 */ extsb r0, r0
+/* 802AAAEC 002A674C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAAF0 002A6750 7C 63 02 14 */ add r3, r3, r0
+/* 802AAAF4 002A6754 4B D5 95 0D */ bl memcpy
+/* 802AAAF8 002A6758 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAAFC 002A675C 7F C3 F3 78 */ mr r3, r30
+/* 802AAB00 002A6760 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AAB04 002A6764 7C 06 07 74 */ extsb r6, r0
+/* 802AAB08 002A6768 38 84 FF FF */ addi r4, r4, -1
+/* 802AAB0C 002A676C 7C A4 30 50 */ subf r5, r4, r6
+/* 802AAB10 002A6770 38 06 00 01 */ addi r0, r6, 1
+/* 802AAB14 002A6774 7C 86 20 50 */ subf r4, r6, r4
+/* 802AAB18 002A6778 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AAB1C 002A677C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AAB20 002A6780 7C 00 20 78 */ andc r0, r0, r4
+/* 802AAB24 002A6784 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AAB28 002A6788 4B FC 3C 5D */ bl OSRestoreInterrupts
+lbl_802AAB2C:
+/* 802AAB2C 002A678C 39 80 00 00 */ li r12, 0
+/* 802AAB30 002A6790 38 00 00 01 */ li r0, 1
+/* 802AAB34 002A6794 B0 01 01 D2 */ sth r0, 0x1d2(r1)
+/* 802AAB38 002A6798 3B 60 00 19 */ li r27, 0x19
+/* 802AAB3C 002A679C 81 41 01 C0 */ lwz r10, 0x1c0(r1)
+/* 802AAB40 002A67A0 99 81 01 BC */ stb r12, 0x1bc(r1)
+/* 802AAB44 002A67A4 81 21 01 C4 */ lwz r9, 0x1c4(r1)
+/* 802AAB48 002A67A8 81 61 01 BC */ lwz r11, 0x1bc(r1)
+/* 802AAB4C 002A67AC 81 01 01 C8 */ lwz r8, 0x1c8(r1)
+/* 802AAB50 002A67B0 80 E1 01 CC */ lwz r7, 0x1cc(r1)
+/* 802AAB54 002A67B4 80 C1 01 D0 */ lwz r6, 0x1d0(r1)
+/* 802AAB58 002A67B8 80 A1 01 D4 */ lwz r5, 0x1d4(r1)
+/* 802AAB5C 002A67BC 80 81 01 D8 */ lwz r4, 0x1d8(r1)
+/* 802AAB60 002A67C0 80 61 01 DC */ lwz r3, 0x1dc(r1)
+/* 802AAB64 002A67C4 80 01 01 E0 */ lwz r0, 0x1e0(r1)
+/* 802AAB68 002A67C8 93 61 01 B8 */ stw r27, 0x1b8(r1)
+/* 802AAB6C 002A67CC 91 81 01 E4 */ stw r12, 0x1e4(r1)
+/* 802AAB70 002A67D0 93 61 01 E8 */ stw r27, 0x1e8(r1)
+/* 802AAB74 002A67D4 91 61 01 EC */ stw r11, 0x1ec(r1)
+/* 802AAB78 002A67D8 91 41 01 F0 */ stw r10, 0x1f0(r1)
+/* 802AAB7C 002A67DC 91 21 01 F4 */ stw r9, 0x1f4(r1)
+/* 802AAB80 002A67E0 91 01 01 F8 */ stw r8, 0x1f8(r1)
+/* 802AAB84 002A67E4 90 E1 01 FC */ stw r7, 0x1fc(r1)
+/* 802AAB88 002A67E8 90 C1 02 00 */ stw r6, 0x200(r1)
+/* 802AAB8C 002A67EC 90 A1 02 04 */ stw r5, 0x204(r1)
+/* 802AAB90 002A67F0 90 81 02 08 */ stw r4, 0x208(r1)
+/* 802AAB94 002A67F4 90 61 02 0C */ stw r3, 0x20c(r1)
+/* 802AAB98 002A67F8 90 01 02 10 */ stw r0, 0x210(r1)
+/* 802AAB9C 002A67FC 91 81 02 14 */ stw r12, 0x214(r1)
+/* 802AABA0 002A6800 4B FC 3B BD */ bl OSDisableInterrupts
+/* 802AABA4 002A6804 7C 7E 1B 78 */ mr r30, r3
+/* 802AABA8 002A6808 4B FC 3B B5 */ bl OSDisableInterrupts
+/* 802AABAC 002A680C 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AABB0 002A6810 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AABB4 002A6814 7C 04 00 50 */ subf r0, r4, r0
+/* 802AABB8 002A6818 7C 1B 07 75 */ extsb. r27, r0
+/* 802AABBC 002A681C 40 80 00 10 */ bge lbl_802AABCC
+/* 802AABC0 002A6820 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AABC4 002A6824 7C 1B 02 14 */ add r0, r27, r0
+/* 802AABC8 002A6828 7C 1B 07 74 */ extsb r27, r0
+lbl_802AABCC:
+/* 802AABCC 002A682C 4B FC 3B B9 */ bl OSRestoreInterrupts
+/* 802AABD0 002A6830 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AABD4 002A6834 38 03 FF FF */ addi r0, r3, -1
+/* 802AABD8 002A6838 7C 00 D8 40 */ cmplw r0, r27
+/* 802AABDC 002A683C 40 82 00 10 */ bne lbl_802AABEC
+/* 802AABE0 002A6840 7F C3 F3 78 */ mr r3, r30
+/* 802AABE4 002A6844 4B FC 3B A1 */ bl OSRestoreInterrupts
+/* 802AABE8 002A6848 48 00 00 78 */ b lbl_802AAC60
+lbl_802AABEC:
+/* 802AABEC 002A684C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AABF0 002A6850 38 80 00 00 */ li r4, 0
+/* 802AABF4 002A6854 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AABF8 002A6858 38 A0 00 30 */ li r5, 0x30
+/* 802AABFC 002A685C 7C 00 07 74 */ extsb r0, r0
+/* 802AAC00 002A6860 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAC04 002A6864 7C 63 02 14 */ add r3, r3, r0
+/* 802AAC08 002A6868 4B D5 94 FD */ bl memset
+/* 802AAC0C 002A686C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAC10 002A6870 38 81 01 E8 */ addi r4, r1, 0x1e8
+/* 802AAC14 002A6874 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAC18 002A6878 38 A0 00 30 */ li r5, 0x30
+/* 802AAC1C 002A687C 7C 00 07 74 */ extsb r0, r0
+/* 802AAC20 002A6880 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAC24 002A6884 7C 63 02 14 */ add r3, r3, r0
+/* 802AAC28 002A6888 4B D5 93 D9 */ bl memcpy
+/* 802AAC2C 002A688C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAC30 002A6890 7F C3 F3 78 */ mr r3, r30
+/* 802AAC34 002A6894 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AAC38 002A6898 7C 06 07 74 */ extsb r6, r0
+/* 802AAC3C 002A689C 38 84 FF FF */ addi r4, r4, -1
+/* 802AAC40 002A68A0 7C A4 30 50 */ subf r5, r4, r6
+/* 802AAC44 002A68A4 38 06 00 01 */ addi r0, r6, 1
+/* 802AAC48 002A68A8 7C 86 20 50 */ subf r4, r6, r4
+/* 802AAC4C 002A68AC 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AAC50 002A68B0 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AAC54 002A68B4 7C 00 20 78 */ andc r0, r0, r4
+/* 802AAC58 002A68B8 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AAC5C 002A68BC 4B FC 3B 29 */ bl OSRestoreInterrupts
+lbl_802AAC60:
+/* 802AAC60 002A68C0 39 60 00 00 */ li r11, 0
+/* 802AAC64 002A68C4 38 00 00 01 */ li r0, 1
+/* 802AAC68 002A68C8 B0 01 01 72 */ sth r0, 0x172(r1)
+/* 802AAC6C 002A68CC 39 80 00 15 */ li r12, 0x15
+/* 802AAC70 002A68D0 81 21 01 60 */ lwz r9, 0x160(r1)
+/* 802AAC74 002A68D4 99 61 01 5C */ stb r11, 0x15c(r1)
+/* 802AAC78 002A68D8 81 01 01 64 */ lwz r8, 0x164(r1)
+/* 802AAC7C 002A68DC 81 41 01 5C */ lwz r10, 0x15c(r1)
+/* 802AAC80 002A68E0 80 E1 01 68 */ lwz r7, 0x168(r1)
+/* 802AAC84 002A68E4 80 C1 01 6C */ lwz r6, 0x16c(r1)
+/* 802AAC88 002A68E8 80 A1 01 70 */ lwz r5, 0x170(r1)
+/* 802AAC8C 002A68EC 80 81 01 74 */ lwz r4, 0x174(r1)
+/* 802AAC90 002A68F0 80 61 01 78 */ lwz r3, 0x178(r1)
+/* 802AAC94 002A68F4 80 01 01 7C */ lwz r0, 0x17c(r1)
+/* 802AAC98 002A68F8 91 81 01 58 */ stw r12, 0x158(r1)
+/* 802AAC9C 002A68FC 93 81 01 84 */ stw r28, 0x184(r1)
+/* 802AACA0 002A6900 91 61 01 80 */ stw r11, 0x180(r1)
+/* 802AACA4 002A6904 91 81 01 88 */ stw r12, 0x188(r1)
+/* 802AACA8 002A6908 91 41 01 8C */ stw r10, 0x18c(r1)
+/* 802AACAC 002A690C 91 21 01 90 */ stw r9, 0x190(r1)
+/* 802AACB0 002A6910 91 01 01 94 */ stw r8, 0x194(r1)
+/* 802AACB4 002A6914 90 E1 01 98 */ stw r7, 0x198(r1)
+/* 802AACB8 002A6918 90 C1 01 9C */ stw r6, 0x19c(r1)
+/* 802AACBC 002A691C 90 A1 01 A0 */ stw r5, 0x1a0(r1)
+/* 802AACC0 002A6920 90 81 01 A4 */ stw r4, 0x1a4(r1)
+/* 802AACC4 002A6924 90 61 01 A8 */ stw r3, 0x1a8(r1)
+/* 802AACC8 002A6928 90 01 01 AC */ stw r0, 0x1ac(r1)
+/* 802AACCC 002A692C 91 61 01 B0 */ stw r11, 0x1b0(r1)
+/* 802AACD0 002A6930 93 81 01 B4 */ stw r28, 0x1b4(r1)
+/* 802AACD4 002A6934 4B FC 3A 89 */ bl OSDisableInterrupts
+/* 802AACD8 002A6938 7C 7E 1B 78 */ mr r30, r3
+/* 802AACDC 002A693C 4B FC 3A 81 */ bl OSDisableInterrupts
+/* 802AACE0 002A6940 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AACE4 002A6944 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AACE8 002A6948 7C 04 00 50 */ subf r0, r4, r0
+/* 802AACEC 002A694C 7C 1B 07 75 */ extsb. r27, r0
+/* 802AACF0 002A6950 40 80 00 10 */ bge lbl_802AAD00
+/* 802AACF4 002A6954 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AACF8 002A6958 7C 1B 02 14 */ add r0, r27, r0
+/* 802AACFC 002A695C 7C 1B 07 74 */ extsb r27, r0
+lbl_802AAD00:
+/* 802AAD00 002A6960 4B FC 3A 85 */ bl OSRestoreInterrupts
+/* 802AAD04 002A6964 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AAD08 002A6968 38 03 FF FF */ addi r0, r3, -1
+/* 802AAD0C 002A696C 7C 00 D8 40 */ cmplw r0, r27
+/* 802AAD10 002A6970 40 82 00 10 */ bne lbl_802AAD20
+/* 802AAD14 002A6974 7F C3 F3 78 */ mr r3, r30
+/* 802AAD18 002A6978 4B FC 3A 6D */ bl OSRestoreInterrupts
+/* 802AAD1C 002A697C 48 00 00 78 */ b lbl_802AAD94
+lbl_802AAD20:
+/* 802AAD20 002A6980 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAD24 002A6984 38 80 00 00 */ li r4, 0
+/* 802AAD28 002A6988 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAD2C 002A698C 38 A0 00 30 */ li r5, 0x30
+/* 802AAD30 002A6990 7C 00 07 74 */ extsb r0, r0
+/* 802AAD34 002A6994 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAD38 002A6998 7C 63 02 14 */ add r3, r3, r0
+/* 802AAD3C 002A699C 4B D5 93 C9 */ bl memset
+/* 802AAD40 002A69A0 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAD44 002A69A4 38 81 01 88 */ addi r4, r1, 0x188
+/* 802AAD48 002A69A8 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAD4C 002A69AC 38 A0 00 30 */ li r5, 0x30
+/* 802AAD50 002A69B0 7C 00 07 74 */ extsb r0, r0
+/* 802AAD54 002A69B4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAD58 002A69B8 7C 63 02 14 */ add r3, r3, r0
+/* 802AAD5C 002A69BC 4B D5 92 A5 */ bl memcpy
+/* 802AAD60 002A69C0 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAD64 002A69C4 7F C3 F3 78 */ mr r3, r30
+/* 802AAD68 002A69C8 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AAD6C 002A69CC 7C 06 07 74 */ extsb r6, r0
+/* 802AAD70 002A69D0 38 84 FF FF */ addi r4, r4, -1
+/* 802AAD74 002A69D4 7C A4 30 50 */ subf r5, r4, r6
+/* 802AAD78 002A69D8 38 06 00 01 */ addi r0, r6, 1
+/* 802AAD7C 002A69DC 7C 86 20 50 */ subf r4, r6, r4
+/* 802AAD80 002A69E0 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AAD84 002A69E4 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AAD88 002A69E8 7C 00 20 78 */ andc r0, r0, r4
+/* 802AAD8C 002A69EC 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AAD90 002A69F0 4B FC 39 F5 */ bl OSRestoreInterrupts
+lbl_802AAD94:
+/* 802AAD94 002A69F4 7F A3 EB 78 */ mr r3, r29
+/* 802AAD98 002A69F8 4B FC 39 ED */ bl OSRestoreInterrupts
+/* 802AAD9C 002A69FC 38 60 00 00 */ li r3, 0
+/* 802AADA0 002A6A00 48 00 04 78 */ b lbl_802AB218
+lbl_802AADA4:
+/* 802AADA4 002A6A04 7F A3 EB 78 */ mr r3, r29
+/* 802AADA8 002A6A08 3B 40 FF FE */ li r26, -2
+/* 802AADAC 002A6A0C 4B FC 39 D9 */ bl OSRestoreInterrupts
+/* 802AADB0 002A6A10 48 00 04 48 */ b lbl_802AB1F8
+lbl_802AADB4:
+/* 802AADB4 002A6A14 38 60 00 01 */ li r3, 1
+/* 802AADB8 002A6A18 38 00 00 04 */ li r0, 4
+/* 802AADBC 002A6A1C B0 61 01 12 */ sth r3, 0x112(r1)
+/* 802AADC0 002A6A20 39 80 00 19 */ li r12, 0x19
+/* 802AADC4 002A6A24 81 41 01 00 */ lwz r10, 0x100(r1)
+/* 802AADC8 002A6A28 98 01 00 FC */ stb r0, 0xfc(r1)
+/* 802AADCC 002A6A2C 81 21 01 04 */ lwz r9, 0x104(r1)
+/* 802AADD0 002A6A30 81 61 00 FC */ lwz r11, 0xfc(r1)
+/* 802AADD4 002A6A34 81 01 01 08 */ lwz r8, 0x108(r1)
+/* 802AADD8 002A6A38 80 E1 01 0C */ lwz r7, 0x10c(r1)
+/* 802AADDC 002A6A3C 80 C1 01 10 */ lwz r6, 0x110(r1)
+/* 802AADE0 002A6A40 80 A1 01 14 */ lwz r5, 0x114(r1)
+/* 802AADE4 002A6A44 80 81 01 18 */ lwz r4, 0x118(r1)
+/* 802AADE8 002A6A48 80 61 01 1C */ lwz r3, 0x11c(r1)
+/* 802AADEC 002A6A4C 80 01 01 20 */ lwz r0, 0x120(r1)
+/* 802AADF0 002A6A50 91 81 00 F8 */ stw r12, 0xf8(r1)
+/* 802AADF4 002A6A54 93 81 01 24 */ stw r28, 0x124(r1)
+/* 802AADF8 002A6A58 91 81 01 28 */ stw r12, 0x128(r1)
+/* 802AADFC 002A6A5C 91 61 01 2C */ stw r11, 0x12c(r1)
+/* 802AAE00 002A6A60 91 41 01 30 */ stw r10, 0x130(r1)
+/* 802AAE04 002A6A64 91 21 01 34 */ stw r9, 0x134(r1)
+/* 802AAE08 002A6A68 91 01 01 38 */ stw r8, 0x138(r1)
+/* 802AAE0C 002A6A6C 90 E1 01 3C */ stw r7, 0x13c(r1)
+/* 802AAE10 002A6A70 90 C1 01 40 */ stw r6, 0x140(r1)
+/* 802AAE14 002A6A74 90 A1 01 44 */ stw r5, 0x144(r1)
+/* 802AAE18 002A6A78 90 81 01 48 */ stw r4, 0x148(r1)
+/* 802AAE1C 002A6A7C 90 61 01 4C */ stw r3, 0x14c(r1)
+/* 802AAE20 002A6A80 90 01 01 50 */ stw r0, 0x150(r1)
+/* 802AAE24 002A6A84 93 81 01 54 */ stw r28, 0x154(r1)
+/* 802AAE28 002A6A88 4B FC 39 35 */ bl OSDisableInterrupts
+/* 802AAE2C 002A6A8C 7C 7E 1B 78 */ mr r30, r3
+/* 802AAE30 002A6A90 4B FC 39 2D */ bl OSDisableInterrupts
+/* 802AAE34 002A6A94 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AAE38 002A6A98 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAE3C 002A6A9C 7C 04 00 50 */ subf r0, r4, r0
+/* 802AAE40 002A6AA0 7C 1D 07 75 */ extsb. r29, r0
+/* 802AAE44 002A6AA4 40 80 00 10 */ bge lbl_802AAE54
+/* 802AAE48 002A6AA8 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AAE4C 002A6AAC 7C 1D 02 14 */ add r0, r29, r0
+/* 802AAE50 002A6AB0 7C 1D 07 74 */ extsb r29, r0
+lbl_802AAE54:
+/* 802AAE54 002A6AB4 4B FC 39 31 */ bl OSRestoreInterrupts
+/* 802AAE58 002A6AB8 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AAE5C 002A6ABC 38 03 FF FF */ addi r0, r3, -1
+/* 802AAE60 002A6AC0 7C 00 E8 40 */ cmplw r0, r29
+/* 802AAE64 002A6AC4 40 82 00 14 */ bne lbl_802AAE78
+/* 802AAE68 002A6AC8 7F C3 F3 78 */ mr r3, r30
+/* 802AAE6C 002A6ACC 4B FC 39 19 */ bl OSRestoreInterrupts
+/* 802AAE70 002A6AD0 38 00 00 00 */ li r0, 0
+/* 802AAE74 002A6AD4 48 00 00 7C */ b lbl_802AAEF0
+lbl_802AAE78:
+/* 802AAE78 002A6AD8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAE7C 002A6ADC 38 80 00 00 */ li r4, 0
+/* 802AAE80 002A6AE0 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAE84 002A6AE4 38 A0 00 30 */ li r5, 0x30
+/* 802AAE88 002A6AE8 7C 00 07 74 */ extsb r0, r0
+/* 802AAE8C 002A6AEC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAE90 002A6AF0 7C 63 02 14 */ add r3, r3, r0
+/* 802AAE94 002A6AF4 4B D5 92 71 */ bl memset
+/* 802AAE98 002A6AF8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAE9C 002A6AFC 38 81 01 28 */ addi r4, r1, 0x128
+/* 802AAEA0 002A6B00 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAEA4 002A6B04 38 A0 00 30 */ li r5, 0x30
+/* 802AAEA8 002A6B08 7C 00 07 74 */ extsb r0, r0
+/* 802AAEAC 002A6B0C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAEB0 002A6B10 7C 63 02 14 */ add r3, r3, r0
+/* 802AAEB4 002A6B14 4B D5 91 4D */ bl memcpy
+/* 802AAEB8 002A6B18 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAEBC 002A6B1C 7F C3 F3 78 */ mr r3, r30
+/* 802AAEC0 002A6B20 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AAEC4 002A6B24 7C 06 07 74 */ extsb r6, r0
+/* 802AAEC8 002A6B28 38 84 FF FF */ addi r4, r4, -1
+/* 802AAECC 002A6B2C 7C A4 30 50 */ subf r5, r4, r6
+/* 802AAED0 002A6B30 38 06 00 01 */ addi r0, r6, 1
+/* 802AAED4 002A6B34 7C 86 20 50 */ subf r4, r6, r4
+/* 802AAED8 002A6B38 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AAEDC 002A6B3C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AAEE0 002A6B40 7C 00 20 78 */ andc r0, r0, r4
+/* 802AAEE4 002A6B44 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AAEE8 002A6B48 4B FC 38 9D */ bl OSRestoreInterrupts
+/* 802AAEEC 002A6B4C 38 00 00 01 */ li r0, 1
+lbl_802AAEF0:
+/* 802AAEF0 002A6B50 2C 00 00 00 */ cmpwi r0, 0
+/* 802AAEF4 002A6B54 40 82 00 0C */ bne lbl_802AAF00
+/* 802AAEF8 002A6B58 3B 40 FF FE */ li r26, -2
+/* 802AAEFC 002A6B5C 48 00 02 FC */ b lbl_802AB1F8
+lbl_802AAF00:
+/* 802AAF00 002A6B60 38 60 00 00 */ li r3, 0
+/* 802AAF04 002A6B64 48 00 03 14 */ b lbl_802AB218
+lbl_802AAF08:
+/* 802AAF08 002A6B68 38 60 00 01 */ li r3, 1
+/* 802AAF0C 002A6B6C 38 00 00 00 */ li r0, 0
+/* 802AAF10 002A6B70 B0 61 00 B2 */ sth r3, 0xb2(r1)
+/* 802AAF14 002A6B74 39 80 00 19 */ li r12, 0x19
+/* 802AAF18 002A6B78 81 41 00 A0 */ lwz r10, 0xa0(r1)
+/* 802AAF1C 002A6B7C 98 01 00 9C */ stb r0, 0x9c(r1)
+/* 802AAF20 002A6B80 81 21 00 A4 */ lwz r9, 0xa4(r1)
+/* 802AAF24 002A6B84 81 61 00 9C */ lwz r11, 0x9c(r1)
+/* 802AAF28 002A6B88 81 01 00 A8 */ lwz r8, 0xa8(r1)
+/* 802AAF2C 002A6B8C 80 E1 00 AC */ lwz r7, 0xac(r1)
+/* 802AAF30 002A6B90 80 C1 00 B0 */ lwz r6, 0xb0(r1)
+/* 802AAF34 002A6B94 80 A1 00 B4 */ lwz r5, 0xb4(r1)
+/* 802AAF38 002A6B98 80 81 00 B8 */ lwz r4, 0xb8(r1)
+/* 802AAF3C 002A6B9C 80 61 00 BC */ lwz r3, 0xbc(r1)
+/* 802AAF40 002A6BA0 80 01 00 C0 */ lwz r0, 0xc0(r1)
+/* 802AAF44 002A6BA4 91 81 00 98 */ stw r12, 0x98(r1)
+/* 802AAF48 002A6BA8 93 81 00 C4 */ stw r28, 0xc4(r1)
+/* 802AAF4C 002A6BAC 91 81 00 C8 */ stw r12, 0xc8(r1)
+/* 802AAF50 002A6BB0 91 61 00 CC */ stw r11, 0xcc(r1)
+/* 802AAF54 002A6BB4 91 41 00 D0 */ stw r10, 0xd0(r1)
+/* 802AAF58 002A6BB8 91 21 00 D4 */ stw r9, 0xd4(r1)
+/* 802AAF5C 002A6BBC 91 01 00 D8 */ stw r8, 0xd8(r1)
+/* 802AAF60 002A6BC0 90 E1 00 DC */ stw r7, 0xdc(r1)
+/* 802AAF64 002A6BC4 90 C1 00 E0 */ stw r6, 0xe0(r1)
+/* 802AAF68 002A6BC8 90 A1 00 E4 */ stw r5, 0xe4(r1)
+/* 802AAF6C 002A6BCC 90 81 00 E8 */ stw r4, 0xe8(r1)
+/* 802AAF70 002A6BD0 90 61 00 EC */ stw r3, 0xec(r1)
+/* 802AAF74 002A6BD4 90 01 00 F0 */ stw r0, 0xf0(r1)
+/* 802AAF78 002A6BD8 93 81 00 F4 */ stw r28, 0xf4(r1)
+/* 802AAF7C 002A6BDC 4B FC 37 E1 */ bl OSDisableInterrupts
+/* 802AAF80 002A6BE0 7C 7E 1B 78 */ mr r30, r3
+/* 802AAF84 002A6BE4 4B FC 37 D9 */ bl OSDisableInterrupts
+/* 802AAF88 002A6BE8 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AAF8C 002A6BEC 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAF90 002A6BF0 7C 04 00 50 */ subf r0, r4, r0
+/* 802AAF94 002A6BF4 7C 1D 07 75 */ extsb. r29, r0
+/* 802AAF98 002A6BF8 40 80 00 10 */ bge lbl_802AAFA8
+/* 802AAF9C 002A6BFC 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AAFA0 002A6C00 7C 1D 02 14 */ add r0, r29, r0
+/* 802AAFA4 002A6C04 7C 1D 07 74 */ extsb r29, r0
+lbl_802AAFA8:
+/* 802AAFA8 002A6C08 4B FC 37 DD */ bl OSRestoreInterrupts
+/* 802AAFAC 002A6C0C 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AAFB0 002A6C10 38 03 FF FF */ addi r0, r3, -1
+/* 802AAFB4 002A6C14 7C 00 E8 40 */ cmplw r0, r29
+/* 802AAFB8 002A6C18 40 82 00 14 */ bne lbl_802AAFCC
+/* 802AAFBC 002A6C1C 7F C3 F3 78 */ mr r3, r30
+/* 802AAFC0 002A6C20 4B FC 37 C5 */ bl OSRestoreInterrupts
+/* 802AAFC4 002A6C24 38 00 00 00 */ li r0, 0
+/* 802AAFC8 002A6C28 48 00 00 7C */ b lbl_802AB044
+lbl_802AAFCC:
+/* 802AAFCC 002A6C2C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAFD0 002A6C30 38 80 00 00 */ li r4, 0
+/* 802AAFD4 002A6C34 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAFD8 002A6C38 38 A0 00 30 */ li r5, 0x30
+/* 802AAFDC 002A6C3C 7C 00 07 74 */ extsb r0, r0
+/* 802AAFE0 002A6C40 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AAFE4 002A6C44 7C 63 02 14 */ add r3, r3, r0
+/* 802AAFE8 002A6C48 4B D5 91 1D */ bl memset
+/* 802AAFEC 002A6C4C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AAFF0 002A6C50 38 81 00 C8 */ addi r4, r1, 0xc8
+/* 802AAFF4 002A6C54 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AAFF8 002A6C58 38 A0 00 30 */ li r5, 0x30
+/* 802AAFFC 002A6C5C 7C 00 07 74 */ extsb r0, r0
+/* 802AB000 002A6C60 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB004 002A6C64 7C 63 02 14 */ add r3, r3, r0
+/* 802AB008 002A6C68 4B D5 8F F9 */ bl memcpy
+/* 802AB00C 002A6C6C 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB010 002A6C70 7F C3 F3 78 */ mr r3, r30
+/* 802AB014 002A6C74 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AB018 002A6C78 7C 06 07 74 */ extsb r6, r0
+/* 802AB01C 002A6C7C 38 84 FF FF */ addi r4, r4, -1
+/* 802AB020 002A6C80 7C A4 30 50 */ subf r5, r4, r6
+/* 802AB024 002A6C84 38 06 00 01 */ addi r0, r6, 1
+/* 802AB028 002A6C88 7C 86 20 50 */ subf r4, r6, r4
+/* 802AB02C 002A6C8C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AB030 002A6C90 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AB034 002A6C94 7C 00 20 78 */ andc r0, r0, r4
+/* 802AB038 002A6C98 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AB03C 002A6C9C 4B FC 37 49 */ bl OSRestoreInterrupts
+/* 802AB040 002A6CA0 38 00 00 01 */ li r0, 1
+lbl_802AB044:
+/* 802AB044 002A6CA4 2C 00 00 00 */ cmpwi r0, 0
+/* 802AB048 002A6CA8 40 82 00 0C */ bne lbl_802AB054
+/* 802AB04C 002A6CAC 3B 40 FF FE */ li r26, -2
+/* 802AB050 002A6CB0 48 00 01 A8 */ b lbl_802AB1F8
+lbl_802AB054:
+/* 802AB054 002A6CB4 38 60 00 00 */ li r3, 0
+/* 802AB058 002A6CB8 48 00 01 C0 */ b lbl_802AB218
+lbl_802AB05C:
+/* 802AB05C 002A6CBC 3C 60 04 A2 */ lis r3, 0x04A20008@ha
+/* 802AB060 002A6CC0 38 E0 00 01 */ li r7, 1
+/* 802AB064 002A6CC4 38 A3 00 08 */ addi r5, r3, 0x04A20008@l
+/* 802AB068 002A6CC8 38 C0 00 16 */ li r6, 0x16
+/* 802AB06C 002A6CCC 38 00 00 15 */ li r0, 0x15
+/* 802AB070 002A6CD0 90 A1 00 14 */ stw r5, 0x14(r1)
+/* 802AB074 002A6CD4 38 61 00 6C */ addi r3, r1, 0x6c
+/* 802AB078 002A6CD8 38 81 00 14 */ addi r4, r1, 0x14
+/* 802AB07C 002A6CDC 98 E1 00 09 */ stb r7, 9(r1)
+/* 802AB080 002A6CE0 38 A0 00 04 */ li r5, 4
+/* 802AB084 002A6CE4 98 E1 00 08 */ stb r7, 8(r1)
+/* 802AB088 002A6CE8 90 C1 00 68 */ stw r6, 0x68(r1)
+/* 802AB08C 002A6CEC B0 01 00 82 */ sth r0, 0x82(r1)
+/* 802AB090 002A6CF0 93 81 00 94 */ stw r28, 0x94(r1)
+/* 802AB094 002A6CF4 4B D5 8F 6D */ bl memcpy
+/* 802AB098 002A6CF8 38 61 00 70 */ addi r3, r1, 0x70
+/* 802AB09C 002A6CFC 38 81 00 08 */ addi r4, r1, 8
+/* 802AB0A0 002A6D00 38 A0 00 01 */ li r5, 1
+/* 802AB0A4 002A6D04 4B D5 8F 5D */ bl memcpy
+/* 802AB0A8 002A6D08 38 61 00 71 */ addi r3, r1, 0x71
+/* 802AB0AC 002A6D0C 38 81 00 09 */ addi r4, r1, 9
+/* 802AB0B0 002A6D10 38 A0 00 01 */ li r5, 1
+/* 802AB0B4 002A6D14 4B D5 8F 4D */ bl memcpy
+/* 802AB0B8 002A6D18 83 A1 00 68 */ lwz r29, 0x68(r1)
+/* 802AB0BC 002A6D1C 81 81 00 6C */ lwz r12, 0x6c(r1)
+/* 802AB0C0 002A6D20 81 61 00 70 */ lwz r11, 0x70(r1)
+/* 802AB0C4 002A6D24 81 41 00 74 */ lwz r10, 0x74(r1)
+/* 802AB0C8 002A6D28 81 21 00 78 */ lwz r9, 0x78(r1)
+/* 802AB0CC 002A6D2C 81 01 00 7C */ lwz r8, 0x7c(r1)
+/* 802AB0D0 002A6D30 80 E1 00 80 */ lwz r7, 0x80(r1)
+/* 802AB0D4 002A6D34 80 C1 00 84 */ lwz r6, 0x84(r1)
+/* 802AB0D8 002A6D38 80 A1 00 88 */ lwz r5, 0x88(r1)
+/* 802AB0DC 002A6D3C 80 81 00 8C */ lwz r4, 0x8c(r1)
+/* 802AB0E0 002A6D40 80 61 00 90 */ lwz r3, 0x90(r1)
+/* 802AB0E4 002A6D44 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 802AB0E8 002A6D48 93 A1 00 38 */ stw r29, 0x38(r1)
+/* 802AB0EC 002A6D4C 91 81 00 3C */ stw r12, 0x3c(r1)
+/* 802AB0F0 002A6D50 91 61 00 40 */ stw r11, 0x40(r1)
+/* 802AB0F4 002A6D54 91 41 00 44 */ stw r10, 0x44(r1)
+/* 802AB0F8 002A6D58 91 21 00 48 */ stw r9, 0x48(r1)
+/* 802AB0FC 002A6D5C 91 01 00 4C */ stw r8, 0x4c(r1)
+/* 802AB100 002A6D60 90 E1 00 50 */ stw r7, 0x50(r1)
+/* 802AB104 002A6D64 90 C1 00 54 */ stw r6, 0x54(r1)
+/* 802AB108 002A6D68 90 A1 00 58 */ stw r5, 0x58(r1)
+/* 802AB10C 002A6D6C 90 81 00 5C */ stw r4, 0x5c(r1)
+/* 802AB110 002A6D70 90 61 00 60 */ stw r3, 0x60(r1)
+/* 802AB114 002A6D74 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802AB118 002A6D78 4B FC 36 45 */ bl OSDisableInterrupts
+/* 802AB11C 002A6D7C 7C 7E 1B 78 */ mr r30, r3
+/* 802AB120 002A6D80 4B FC 36 3D */ bl OSDisableInterrupts
+/* 802AB124 002A6D84 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AB128 002A6D88 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB12C 002A6D8C 7C 04 00 50 */ subf r0, r4, r0
+/* 802AB130 002A6D90 7C 1D 07 75 */ extsb. r29, r0
+/* 802AB134 002A6D94 40 80 00 10 */ bge lbl_802AB144
+/* 802AB138 002A6D98 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AB13C 002A6D9C 7C 1D 02 14 */ add r0, r29, r0
+/* 802AB140 002A6DA0 7C 1D 07 74 */ extsb r29, r0
+lbl_802AB144:
+/* 802AB144 002A6DA4 4B FC 36 41 */ bl OSRestoreInterrupts
+/* 802AB148 002A6DA8 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AB14C 002A6DAC 38 03 FF FF */ addi r0, r3, -1
+/* 802AB150 002A6DB0 7C 00 E8 40 */ cmplw r0, r29
+/* 802AB154 002A6DB4 40 82 00 14 */ bne lbl_802AB168
+/* 802AB158 002A6DB8 7F C3 F3 78 */ mr r3, r30
+/* 802AB15C 002A6DBC 4B FC 36 29 */ bl OSRestoreInterrupts
+/* 802AB160 002A6DC0 38 00 00 00 */ li r0, 0
+/* 802AB164 002A6DC4 48 00 00 7C */ b lbl_802AB1E0
+lbl_802AB168:
+/* 802AB168 002A6DC8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB16C 002A6DCC 38 80 00 00 */ li r4, 0
+/* 802AB170 002A6DD0 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AB174 002A6DD4 38 A0 00 30 */ li r5, 0x30
+/* 802AB178 002A6DD8 7C 00 07 74 */ extsb r0, r0
+/* 802AB17C 002A6DDC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB180 002A6DE0 7C 63 02 14 */ add r3, r3, r0
+/* 802AB184 002A6DE4 4B D5 8F 81 */ bl memset
+/* 802AB188 002A6DE8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB18C 002A6DEC 38 81 00 38 */ addi r4, r1, 0x38
+/* 802AB190 002A6DF0 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AB194 002A6DF4 38 A0 00 30 */ li r5, 0x30
+/* 802AB198 002A6DF8 7C 00 07 74 */ extsb r0, r0
+/* 802AB19C 002A6DFC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB1A0 002A6E00 7C 63 02 14 */ add r3, r3, r0
+/* 802AB1A4 002A6E04 4B D5 8E 5D */ bl memcpy
+/* 802AB1A8 002A6E08 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB1AC 002A6E0C 7F C3 F3 78 */ mr r3, r30
+/* 802AB1B0 002A6E10 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AB1B4 002A6E14 7C 06 07 74 */ extsb r6, r0
+/* 802AB1B8 002A6E18 38 84 FF FF */ addi r4, r4, -1
+/* 802AB1BC 002A6E1C 7C A4 30 50 */ subf r5, r4, r6
+/* 802AB1C0 002A6E20 38 06 00 01 */ addi r0, r6, 1
+/* 802AB1C4 002A6E24 7C 86 20 50 */ subf r4, r6, r4
+/* 802AB1C8 002A6E28 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AB1CC 002A6E2C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AB1D0 002A6E30 7C 00 20 78 */ andc r0, r0, r4
+/* 802AB1D4 002A6E34 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AB1D8 002A6E38 4B FC 35 AD */ bl OSRestoreInterrupts
+/* 802AB1DC 002A6E3C 38 00 00 01 */ li r0, 1
+lbl_802AB1E0:
+/* 802AB1E0 002A6E40 2C 00 00 00 */ cmpwi r0, 0
+/* 802AB1E4 002A6E44 40 82 00 0C */ bne lbl_802AB1F0
+/* 802AB1E8 002A6E48 3B 40 FF FE */ li r26, -2
+/* 802AB1EC 002A6E4C 48 00 00 0C */ b lbl_802AB1F8
+lbl_802AB1F0:
+/* 802AB1F0 002A6E50 38 60 00 00 */ li r3, 0
+/* 802AB1F4 002A6E54 48 00 00 24 */ b lbl_802AB218
+lbl_802AB1F8:
+/* 802AB1F8 002A6E58 2C 1C 00 00 */ cmpwi r28, 0
+/* 802AB1FC 002A6E5C 41 82 00 18 */ beq lbl_802AB214
+/* 802AB200 002A6E60 7F 8C E3 78 */ mr r12, r28
+/* 802AB204 002A6E64 7F 63 DB 78 */ mr r3, r27
+/* 802AB208 002A6E68 7F 44 D3 78 */ mr r4, r26
+/* 802AB20C 002A6E6C 7D 89 03 A6 */ mtctr r12
+/* 802AB210 002A6E70 4E 80 04 21 */ bctrl
+lbl_802AB214:
+/* 802AB214 002A6E74 7F 43 D3 78 */ mr r3, r26
+lbl_802AB218:
+/* 802AB218 002A6E78 39 61 06 00 */ addi r11, r1, 0x600
+/* 802AB21C 002A6E7C 4B F1 BF 51 */ bl _restgpr_25
+/* 802AB220 002A6E80 80 01 06 04 */ lwz r0, 0x604(r1)
+/* 802AB224 002A6E84 7C 08 03 A6 */ mtlr r0
+/* 802AB228 002A6E88 38 21 06 00 */ addi r1, r1, 0x600
+/* 802AB22C 002A6E8C 4E 80 00 20 */ blr
+
+.global WPADGetSpeakerVolume
+WPADGetSpeakerVolume:
+/* 802AB230 002A6E90 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802AB234 002A6E94 7C 08 02 A6 */ mflr r0
+/* 802AB238 002A6E98 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802AB23C 002A6E9C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802AB240 002A6EA0 4B FC 35 1D */ bl OSDisableInterrupts
+/* 802AB244 002A6EA4 8B ED AE 5A */ lbz r31, lbl_8064011A-_SDA_BASE_(r13)
+/* 802AB248 002A6EA8 4B FC 35 3D */ bl OSRestoreInterrupts
+/* 802AB24C 002A6EAC 7F E3 FB 78 */ mr r3, r31
+/* 802AB250 002A6EB0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802AB254 002A6EB4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802AB258 002A6EB8 7C 08 03 A6 */ mtlr r0
+/* 802AB25C 002A6EBC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802AB260 002A6EC0 4E 80 00 20 */ blr
+
+.global WPADSetSpeakerVolume
+WPADSetSpeakerVolume:
+/* 802AB264 002A6EC4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802AB268 002A6EC8 7C 08 02 A6 */ mflr r0
+/* 802AB26C 002A6ECC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802AB270 002A6ED0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802AB274 002A6ED4 7C 7F 1B 78 */ mr r31, r3
+/* 802AB278 002A6ED8 4B FC 34 E5 */ bl OSDisableInterrupts
+/* 802AB27C 002A6EDC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802AB280 002A6EE0 7F E0 FB 78 */ mr r0, r31
+/* 802AB284 002A6EE4 40 82 00 08 */ bne lbl_802AB28C
+/* 802AB288 002A6EE8 38 00 00 00 */ li r0, 0
+lbl_802AB28C:
+/* 802AB28C 002A6EEC 28 1F 00 7F */ cmplwi r31, 0x7f
+/* 802AB290 002A6EF0 41 80 00 08 */ blt lbl_802AB298
+/* 802AB294 002A6EF4 38 00 00 7F */ li r0, 0x7f
+lbl_802AB298:
+/* 802AB298 002A6EF8 98 0D AE 5A */ stb r0, lbl_8064011A-_SDA_BASE_(r13)
+/* 802AB29C 002A6EFC 4B FC 34 E9 */ bl OSRestoreInterrupts
+/* 802AB2A0 002A6F00 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802AB2A4 002A6F04 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802AB2A8 002A6F08 7C 08 03 A6 */ mtlr r0
+/* 802AB2AC 002A6F0C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802AB2B0 002A6F10 4E 80 00 20 */ blr
+
+.global IsBusyStream
+IsBusyStream:
+/* 802AB2B4 002A6F14 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802AB2B8 002A6F18 7C 08 02 A6 */ mflr r0
+/* 802AB2BC 002A6F1C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802AB2C0 002A6F20 39 61 00 30 */ addi r11, r1, 0x30
+/* 802AB2C4 002A6F24 4B F1 BE 51 */ bl _savegpr_22
+/* 802AB2C8 002A6F28 3F 60 80 53 */ lis r27, lbl_80536D70@ha
+/* 802AB2CC 002A6F2C 54 79 10 3A */ slwi r25, r3, 2
+/* 802AB2D0 002A6F30 3B 7B 6D 70 */ addi r27, r27, lbl_80536D70@l
+/* 802AB2D4 002A6F34 7F DB C8 2E */ lwzx r30, r27, r25
+/* 802AB2D8 002A6F38 4B FC 34 85 */ bl OSDisableInterrupts
+/* 802AB2DC 002A6F3C 8B BE 08 CD */ lbz r29, 0x8cd(r30)
+/* 802AB2E0 002A6F40 7C 7F 1B 78 */ mr r31, r3
+/* 802AB2E4 002A6F44 8B 9E 08 C1 */ lbz r28, 0x8c1(r30)
+/* 802AB2E8 002A6F48 48 00 B6 E5 */ bl func_802B69CC
+/* 802AB2EC 002A6F4C 7C 7A 1B 78 */ mr r26, r3
+/* 802AB2F0 002A6F50 4B FC 34 6D */ bl OSDisableInterrupts
+/* 802AB2F4 002A6F54 88 9E 01 60 */ lbz r4, 0x160(r30)
+/* 802AB2F8 002A6F58 88 1E 01 61 */ lbz r0, 0x161(r30)
+/* 802AB2FC 002A6F5C 7C 04 00 50 */ subf r0, r4, r0
+/* 802AB300 002A6F60 7C 18 07 75 */ extsb. r24, r0
+/* 802AB304 002A6F64 40 80 00 10 */ bge lbl_802AB314
+/* 802AB308 002A6F68 80 1E 01 68 */ lwz r0, 0x168(r30)
+/* 802AB30C 002A6F6C 7C 18 02 14 */ add r0, r24, r0
+/* 802AB310 002A6F70 7C 18 07 74 */ extsb r24, r0
+lbl_802AB314:
+/* 802AB314 002A6F74 4B FC 34 71 */ bl OSRestoreInterrupts
+/* 802AB318 002A6F78 7E FB C8 2E */ lwzx r23, r27, r25
+/* 802AB31C 002A6F7C 4B FC 34 41 */ bl OSDisableInterrupts
+/* 802AB320 002A6F80 82 D7 08 BC */ lwz r22, 0x8bc(r23)
+/* 802AB324 002A6F84 8A F7 08 C3 */ lbz r23, 0x8c3(r23)
+/* 802AB328 002A6F88 4B FC 34 5D */ bl OSRestoreInterrupts
+/* 802AB32C 002A6F8C 2C 16 FF FF */ cmpwi r22, -1
+/* 802AB330 002A6F90 41 82 00 0C */ beq lbl_802AB33C
+/* 802AB334 002A6F94 7E E3 07 74 */ extsb r3, r23
+/* 802AB338 002A6F98 48 00 DC 05 */ bl func_802B8F3C
+lbl_802AB33C:
+/* 802AB33C 002A6F9C 7E DB C8 2E */ lwzx r22, r27, r25
+/* 802AB340 002A6FA0 4B FC 34 1D */ bl OSDisableInterrupts
+/* 802AB344 002A6FA4 82 F6 08 BC */ lwz r23, 0x8bc(r22)
+/* 802AB348 002A6FA8 8A D6 08 C3 */ lbz r22, 0x8c3(r22)
+/* 802AB34C 002A6FAC 4B FC 34 39 */ bl OSRestoreInterrupts
+/* 802AB350 002A6FB0 2C 17 FF FF */ cmpwi r23, -1
+/* 802AB354 002A6FB4 40 82 00 0C */ bne lbl_802AB360
+/* 802AB358 002A6FB8 3B 60 00 00 */ li r27, 0
+/* 802AB35C 002A6FBC 48 00 00 10 */ b lbl_802AB36C
+lbl_802AB360:
+/* 802AB360 002A6FC0 7E C3 07 74 */ extsb r3, r22
+/* 802AB364 002A6FC4 48 00 DC 35 */ bl func_802B8F98
+/* 802AB368 002A6FC8 7C 7B 1B 78 */ mr r27, r3
+lbl_802AB36C:
+/* 802AB36C 002A6FCC 8A DE 08 CF */ lbz r22, 0x8cf(r30)
+/* 802AB370 002A6FD0 48 00 DC 85 */ bl func_802B8FF4
+/* 802AB374 002A6FD4 7C 7E 1B 78 */ mr r30, r3
+/* 802AB378 002A6FD8 7F E3 FB 78 */ mr r3, r31
+/* 802AB37C 002A6FDC 4B FC 34 09 */ bl OSRestoreInterrupts
+/* 802AB380 002A6FE0 2C 1D 00 00 */ cmpwi r29, 0
+/* 802AB384 002A6FE4 40 82 00 44 */ bne lbl_802AB3C8
+/* 802AB388 002A6FE8 57 60 04 3E */ clrlwi r0, r27, 0x10
+/* 802AB38C 002A6FEC 28 00 00 03 */ cmplwi r0, 3
+/* 802AB390 002A6FF0 41 81 00 38 */ bgt lbl_802AB3C8
+/* 802AB394 002A6FF4 57 44 06 3E */ clrlwi r4, r26, 0x18
+/* 802AB398 002A6FF8 28 04 00 0A */ cmplwi r4, 0xa
+/* 802AB39C 002A6FFC 41 82 00 2C */ beq lbl_802AB3C8
+/* 802AB3A0 002A7000 57 C3 0D FC */ rlwinm r3, r30, 1, 0x17, 0x1e
+/* 802AB3A4 002A7004 38 03 00 02 */ addi r0, r3, 2
+/* 802AB3A8 002A7008 7C 04 00 00 */ cmpw r4, r0
+/* 802AB3AC 002A700C 40 80 00 1C */ bge lbl_802AB3C8
+/* 802AB3B0 002A7010 28 1C 00 FF */ cmplwi r28, 0xff
+/* 802AB3B4 002A7014 41 82 00 14 */ beq lbl_802AB3C8
+/* 802AB3B8 002A7018 2C 18 00 15 */ cmpwi r24, 0x15
+/* 802AB3BC 002A701C 40 80 00 0C */ bge lbl_802AB3C8
+/* 802AB3C0 002A7020 28 16 00 01 */ cmplwi r22, 1
+/* 802AB3C4 002A7024 41 80 00 0C */ blt lbl_802AB3D0
+lbl_802AB3C8:
+/* 802AB3C8 002A7028 38 60 00 01 */ li r3, 1
+/* 802AB3CC 002A702C 48 00 00 08 */ b lbl_802AB3D4
+lbl_802AB3D0:
+/* 802AB3D0 002A7030 38 60 00 00 */ li r3, 0
+lbl_802AB3D4:
+/* 802AB3D4 002A7034 39 61 00 30 */ addi r11, r1, 0x30
+/* 802AB3D8 002A7038 4B F1 BD 89 */ bl _restgpr_22
+/* 802AB3DC 002A703C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802AB3E0 002A7040 7C 08 03 A6 */ mtlr r0
+/* 802AB3E4 002A7044 38 21 00 30 */ addi r1, r1, 0x30
+/* 802AB3E8 002A7048 4E 80 00 20 */ blr
+
+.global WPADCanSendStreamData
+WPADCanSendStreamData:
+/* 802AB3EC 002A704C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802AB3F0 002A7050 7C 08 02 A6 */ mflr r0
+/* 802AB3F4 002A7054 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802AB3F8 002A7058 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802AB3FC 002A705C 54 60 10 3A */ slwi r0, r3, 2
+/* 802AB400 002A7060 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802AB404 002A7064 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802AB408 002A7068 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802AB40C 002A706C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802AB410 002A7070 7C 7D 1B 78 */ mr r29, r3
+/* 802AB414 002A7074 7F E4 00 2E */ lwzx r31, r4, r0
+/* 802AB418 002A7078 4B FC 33 45 */ bl OSDisableInterrupts
+/* 802AB41C 002A707C 83 DF 08 BC */ lwz r30, 0x8bc(r31)
+/* 802AB420 002A7080 83 FF 08 DC */ lwz r31, 0x8dc(r31)
+/* 802AB424 002A7084 4B FC 33 61 */ bl OSRestoreInterrupts
+/* 802AB428 002A7088 2C 1E FF FF */ cmpwi r30, -1
+/* 802AB42C 002A708C 41 82 00 1C */ beq lbl_802AB448
+/* 802AB430 002A7090 2C 1F 00 00 */ cmpwi r31, 0
+/* 802AB434 002A7094 41 82 00 14 */ beq lbl_802AB448
+/* 802AB438 002A7098 7F A3 EB 78 */ mr r3, r29
+/* 802AB43C 002A709C 4B FF FE 79 */ bl IsBusyStream
+/* 802AB440 002A70A0 2C 03 00 00 */ cmpwi r3, 0
+/* 802AB444 002A70A4 41 82 00 0C */ beq lbl_802AB450
+lbl_802AB448:
+/* 802AB448 002A70A8 38 60 00 00 */ li r3, 0
+/* 802AB44C 002A70AC 48 00 00 08 */ b lbl_802AB454
+lbl_802AB450:
+/* 802AB450 002A70B0 38 60 00 01 */ li r3, 1
+lbl_802AB454:
+/* 802AB454 002A70B4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802AB458 002A70B8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802AB45C 002A70BC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802AB460 002A70C0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802AB464 002A70C4 7C 08 03 A6 */ mtlr r0
+/* 802AB468 002A70C8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802AB46C 002A70CC 4E 80 00 20 */ blr
+
+.global WPADSendStreamData
+WPADSendStreamData:
+/* 802AB470 002A70D0 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802AB474 002A70D4 7C 08 02 A6 */ mflr r0
+/* 802AB478 002A70D8 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802AB47C 002A70DC 39 61 00 80 */ addi r11, r1, 0x80
+/* 802AB480 002A70E0 4B F1 BC A5 */ bl _savegpr_26
+/* 802AB484 002A70E4 3C C0 80 53 */ lis r6, lbl_80536D70@ha
+/* 802AB488 002A70E8 54 60 10 3A */ slwi r0, r3, 2
+/* 802AB48C 002A70EC 38 C6 6D 70 */ addi r6, r6, lbl_80536D70@l
+/* 802AB490 002A70F0 7C 7A 1B 78 */ mr r26, r3
+/* 802AB494 002A70F4 7F E6 00 2E */ lwzx r31, r6, r0
+/* 802AB498 002A70F8 7C 9B 23 78 */ mr r27, r4
+/* 802AB49C 002A70FC 7C BC 2B 78 */ mr r28, r5
+/* 802AB4A0 002A7100 4B FC 32 BD */ bl OSDisableInterrupts
+/* 802AB4A4 002A7104 83 DF 08 BC */ lwz r30, 0x8bc(r31)
+/* 802AB4A8 002A7108 83 BF 08 DC */ lwz r29, 0x8dc(r31)
+/* 802AB4AC 002A710C 4B FC 32 D9 */ bl OSRestoreInterrupts
+/* 802AB4B0 002A7110 2C 1E FF FF */ cmpwi r30, -1
+/* 802AB4B4 002A7114 40 82 00 0C */ bne lbl_802AB4C0
+/* 802AB4B8 002A7118 38 60 FF FF */ li r3, -1
+/* 802AB4BC 002A711C 48 00 01 AC */ b lbl_802AB668
+lbl_802AB4C0:
+/* 802AB4C0 002A7120 2C 1D 00 00 */ cmpwi r29, 0
+/* 802AB4C4 002A7124 40 82 00 0C */ bne lbl_802AB4D0
+/* 802AB4C8 002A7128 38 60 FF FE */ li r3, -2
+/* 802AB4CC 002A712C 48 00 01 9C */ b lbl_802AB668
+lbl_802AB4D0:
+/* 802AB4D0 002A7130 7F 43 D3 78 */ mr r3, r26
+/* 802AB4D4 002A7134 4B FF FD E1 */ bl IsBusyStream
+/* 802AB4D8 002A7138 2C 03 00 00 */ cmpwi r3, 0
+/* 802AB4DC 002A713C 41 82 00 0C */ beq lbl_802AB4E8
+/* 802AB4E0 002A7140 38 60 FF FE */ li r3, -2
+/* 802AB4E4 002A7144 48 00 01 84 */ b lbl_802AB668
+lbl_802AB4E8:
+/* 802AB4E8 002A7148 57 86 1E 38 */ rlwinm r6, r28, 3, 0x18, 0x1c
+/* 802AB4EC 002A714C 38 60 00 18 */ li r3, 0x18
+/* 802AB4F0 002A7150 38 E0 00 15 */ li r7, 0x15
+/* 802AB4F4 002A7154 38 00 00 00 */ li r0, 0
+/* 802AB4F8 002A7158 90 61 00 08 */ stw r3, 8(r1)
+/* 802AB4FC 002A715C 7F 64 DB 78 */ mr r4, r27
+/* 802AB500 002A7160 7F 85 E3 78 */ mr r5, r28
+/* 802AB504 002A7164 38 61 00 0D */ addi r3, r1, 0xd
+/* 802AB508 002A7168 B0 E1 00 22 */ sth r7, 0x22(r1)
+/* 802AB50C 002A716C 98 C1 00 0C */ stb r6, 0xc(r1)
+/* 802AB510 002A7170 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802AB514 002A7174 4B D5 8A ED */ bl memcpy
+/* 802AB518 002A7178 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802AB51C 002A717C 81 81 00 0C */ lwz r12, 0xc(r1)
+/* 802AB520 002A7180 81 61 00 10 */ lwz r11, 0x10(r1)
+/* 802AB524 002A7184 81 41 00 14 */ lwz r10, 0x14(r1)
+/* 802AB528 002A7188 81 21 00 18 */ lwz r9, 0x18(r1)
+/* 802AB52C 002A718C 81 01 00 1C */ lwz r8, 0x1c(r1)
+/* 802AB530 002A7190 80 E1 00 20 */ lwz r7, 0x20(r1)
+/* 802AB534 002A7194 80 C1 00 24 */ lwz r6, 0x24(r1)
+/* 802AB538 002A7198 80 A1 00 28 */ lwz r5, 0x28(r1)
+/* 802AB53C 002A719C 80 81 00 2C */ lwz r4, 0x2c(r1)
+/* 802AB540 002A71A0 80 61 00 30 */ lwz r3, 0x30(r1)
+/* 802AB544 002A71A4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802AB548 002A71A8 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 802AB54C 002A71AC 91 81 00 3C */ stw r12, 0x3c(r1)
+/* 802AB550 002A71B0 91 61 00 40 */ stw r11, 0x40(r1)
+/* 802AB554 002A71B4 91 41 00 44 */ stw r10, 0x44(r1)
+/* 802AB558 002A71B8 91 21 00 48 */ stw r9, 0x48(r1)
+/* 802AB55C 002A71BC 91 01 00 4C */ stw r8, 0x4c(r1)
+/* 802AB560 002A71C0 90 E1 00 50 */ stw r7, 0x50(r1)
+/* 802AB564 002A71C4 90 C1 00 54 */ stw r6, 0x54(r1)
+/* 802AB568 002A71C8 90 A1 00 58 */ stw r5, 0x58(r1)
+/* 802AB56C 002A71CC 90 81 00 5C */ stw r4, 0x5c(r1)
+/* 802AB570 002A71D0 90 61 00 60 */ stw r3, 0x60(r1)
+/* 802AB574 002A71D4 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802AB578 002A71D8 4B FC 31 E5 */ bl OSDisableInterrupts
+/* 802AB57C 002A71DC 7C 7E 1B 78 */ mr r30, r3
+/* 802AB580 002A71E0 4B FC 31 DD */ bl OSDisableInterrupts
+/* 802AB584 002A71E4 88 9F 01 60 */ lbz r4, 0x160(r31)
+/* 802AB588 002A71E8 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB58C 002A71EC 7C 04 00 50 */ subf r0, r4, r0
+/* 802AB590 002A71F0 7C 1D 07 75 */ extsb. r29, r0
+/* 802AB594 002A71F4 40 80 00 10 */ bge lbl_802AB5A4
+/* 802AB598 002A71F8 80 1F 01 68 */ lwz r0, 0x168(r31)
+/* 802AB59C 002A71FC 7C 1D 02 14 */ add r0, r29, r0
+/* 802AB5A0 002A7200 7C 1D 07 74 */ extsb r29, r0
+lbl_802AB5A4:
+/* 802AB5A4 002A7204 4B FC 31 E1 */ bl OSRestoreInterrupts
+/* 802AB5A8 002A7208 80 7F 01 68 */ lwz r3, 0x168(r31)
+/* 802AB5AC 002A720C 38 03 FF FF */ addi r0, r3, -1
+/* 802AB5B0 002A7210 7C 00 E8 40 */ cmplw r0, r29
+/* 802AB5B4 002A7214 40 82 00 14 */ bne lbl_802AB5C8
+/* 802AB5B8 002A7218 7F C3 F3 78 */ mr r3, r30
+/* 802AB5BC 002A721C 4B FC 31 C9 */ bl OSRestoreInterrupts
+/* 802AB5C0 002A7220 38 00 00 00 */ li r0, 0
+/* 802AB5C4 002A7224 48 00 00 7C */ b lbl_802AB640
+lbl_802AB5C8:
+/* 802AB5C8 002A7228 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB5CC 002A722C 38 80 00 00 */ li r4, 0
+/* 802AB5D0 002A7230 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AB5D4 002A7234 38 A0 00 30 */ li r5, 0x30
+/* 802AB5D8 002A7238 7C 00 07 74 */ extsb r0, r0
+/* 802AB5DC 002A723C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB5E0 002A7240 7C 63 02 14 */ add r3, r3, r0
+/* 802AB5E4 002A7244 4B D5 8B 21 */ bl memset
+/* 802AB5E8 002A7248 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB5EC 002A724C 38 81 00 38 */ addi r4, r1, 0x38
+/* 802AB5F0 002A7250 80 7F 01 64 */ lwz r3, 0x164(r31)
+/* 802AB5F4 002A7254 38 A0 00 30 */ li r5, 0x30
+/* 802AB5F8 002A7258 7C 00 07 74 */ extsb r0, r0
+/* 802AB5FC 002A725C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB600 002A7260 7C 63 02 14 */ add r3, r3, r0
+/* 802AB604 002A7264 4B D5 89 FD */ bl memcpy
+/* 802AB608 002A7268 88 1F 01 61 */ lbz r0, 0x161(r31)
+/* 802AB60C 002A726C 7F C3 F3 78 */ mr r3, r30
+/* 802AB610 002A7270 80 9F 01 68 */ lwz r4, 0x168(r31)
+/* 802AB614 002A7274 7C 06 07 74 */ extsb r6, r0
+/* 802AB618 002A7278 38 84 FF FF */ addi r4, r4, -1
+/* 802AB61C 002A727C 7C A4 30 50 */ subf r5, r4, r6
+/* 802AB620 002A7280 38 06 00 01 */ addi r0, r6, 1
+/* 802AB624 002A7284 7C 86 20 50 */ subf r4, r6, r4
+/* 802AB628 002A7288 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AB62C 002A728C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AB630 002A7290 7C 00 20 78 */ andc r0, r0, r4
+/* 802AB634 002A7294 98 1F 01 61 */ stb r0, 0x161(r31)
+/* 802AB638 002A7298 4B FC 31 4D */ bl OSRestoreInterrupts
+/* 802AB63C 002A729C 38 00 00 01 */ li r0, 1
+lbl_802AB640:
+/* 802AB640 002A72A0 2C 00 00 00 */ cmpwi r0, 0
+/* 802AB644 002A72A4 40 82 00 0C */ bne lbl_802AB650
+/* 802AB648 002A72A8 38 60 FF FE */ li r3, -2
+/* 802AB64C 002A72AC 48 00 00 1C */ b lbl_802AB668
+lbl_802AB650:
+/* 802AB650 002A72B0 4B FC 31 0D */ bl OSDisableInterrupts
+/* 802AB654 002A72B4 88 9F 08 CF */ lbz r4, 0x8cf(r31)
+/* 802AB658 002A72B8 38 04 00 01 */ addi r0, r4, 1
+/* 802AB65C 002A72BC 98 1F 08 CF */ stb r0, 0x8cf(r31)
+/* 802AB660 002A72C0 4B FC 31 25 */ bl OSRestoreInterrupts
+/* 802AB664 002A72C4 38 60 00 00 */ li r3, 0
+lbl_802AB668:
+/* 802AB668 002A72C8 39 61 00 80 */ addi r11, r1, 0x80
+/* 802AB66C 002A72CC 4B F1 BB 05 */ bl _restgpr_26
+/* 802AB670 002A72D0 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802AB674 002A72D4 7C 08 03 A6 */ mtlr r0
+/* 802AB678 002A72D8 38 21 00 80 */ addi r1, r1, 0x80
+/* 802AB67C 002A72DC 4E 80 00 20 */ blr
+
+.global WPADGetDpdSensitivity
+WPADGetDpdSensitivity:
+/* 802AB680 002A72E0 88 6D AE 61 */ lbz r3, lbl_80640121-_SDA_BASE_(r13)
+/* 802AB684 002A72E4 4E 80 00 20 */ blr
+
+.global WPADIsDpdEnabled
+WPADIsDpdEnabled:
+/* 802AB688 002A72E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802AB68C 002A72EC 7C 08 02 A6 */ mflr r0
+/* 802AB690 002A72F0 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802AB694 002A72F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802AB698 002A72F8 54 60 10 3A */ slwi r0, r3, 2
+/* 802AB69C 002A72FC 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802AB6A0 002A7300 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802AB6A4 002A7304 7F E4 00 2E */ lwzx r31, r4, r0
+/* 802AB6A8 002A7308 4B FC 30 B5 */ bl OSDisableInterrupts
+/* 802AB6AC 002A730C 83 FF 08 38 */ lwz r31, 0x838(r31)
+/* 802AB6B0 002A7310 4B FC 30 D5 */ bl OSRestoreInterrupts
+/* 802AB6B4 002A7314 7F E3 FB 78 */ mr r3, r31
+/* 802AB6B8 002A7318 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802AB6BC 002A731C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802AB6C0 002A7320 7C 08 03 A6 */ mtlr r0
+/* 802AB6C4 002A7324 38 21 00 10 */ addi r1, r1, 0x10
+/* 802AB6C8 002A7328 4E 80 00 20 */ blr
+__dpdCb:
+/* 802AB6CC 002A732C 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802AB6D0 002A7330 54 60 10 3A */ slwi r0, r3, 2
+/* 802AB6D4 002A7334 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802AB6D8 002A7338 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802AB6DC 002A733C 88 04 08 CC */ lbz r0, 0x8cc(r4)
+/* 802AB6E0 002A7340 98 04 08 CB */ stb r0, 0x8cb(r4)
+/* 802AB6E4 002A7344 88 64 08 CC */ lbz r3, 0x8cc(r4)
+/* 802AB6E8 002A7348 7C 03 00 D0 */ neg r0, r3
+/* 802AB6EC 002A734C 7C 00 1B 78 */ or r0, r0, r3
+/* 802AB6F0 002A7350 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 802AB6F4 002A7354 90 04 08 38 */ stw r0, 0x838(r4)
+/* 802AB6F8 002A7358 4E 80 00 20 */ blr
+
+.global WPADControlDpd
+WPADControlDpd:
+/* 802AB6FC 002A735C 94 21 FB 90 */ stwu r1, -0x470(r1)
+/* 802AB700 002A7360 7C 08 02 A6 */ mflr r0
+/* 802AB704 002A7364 90 01 04 74 */ stw r0, 0x474(r1)
+/* 802AB708 002A7368 39 61 04 70 */ addi r11, r1, 0x470
+/* 802AB70C 002A736C 4B F1 BA 11 */ bl _savegpr_24
+/* 802AB710 002A7370 3C C0 80 53 */ lis r6, lbl_80536D70@ha
+/* 802AB714 002A7374 54 60 10 3A */ slwi r0, r3, 2
+/* 802AB718 002A7378 38 C6 6D 70 */ addi r6, r6, lbl_80536D70@l
+/* 802AB71C 002A737C 7C 7F 1B 78 */ mr r31, r3
+/* 802AB720 002A7380 7F A6 00 2E */ lwzx r29, r6, r0
+/* 802AB724 002A7384 7C 9B 23 78 */ mr r27, r4
+/* 802AB728 002A7388 7C BC 2B 78 */ mr r28, r5
+/* 802AB72C 002A738C 4B FC 30 31 */ bl OSDisableInterrupts
+/* 802AB730 002A7390 83 5D 08 38 */ lwz r26, 0x838(r29)
+/* 802AB734 002A7394 8B 3D 08 CC */ lbz r25, 0x8cc(r29)
+/* 802AB738 002A7398 83 1D 08 BC */ lwz r24, 0x8bc(r29)
+/* 802AB73C 002A739C 83 DD 08 DC */ lwz r30, 0x8dc(r29)
+/* 802AB740 002A73A0 4B FC 30 45 */ bl OSRestoreInterrupts
+/* 802AB744 002A73A4 2C 18 FF FF */ cmpwi r24, -1
+/* 802AB748 002A73A8 41 82 0F F8 */ beq lbl_802AC740
+/* 802AB74C 002A73AC 2C 1E 00 00 */ cmpwi r30, 0
+/* 802AB750 002A73B0 40 82 00 0C */ bne lbl_802AB75C
+/* 802AB754 002A73B4 3B 00 FF FE */ li r24, -2
+/* 802AB758 002A73B8 48 00 0F E8 */ b lbl_802AC740
+lbl_802AB75C:
+/* 802AB75C 002A73BC 2C 1B 00 00 */ cmpwi r27, 0
+/* 802AB760 002A73C0 40 82 04 20 */ bne lbl_802ABB80
+/* 802AB764 002A73C4 2C 1A 00 00 */ cmpwi r26, 0
+/* 802AB768 002A73C8 40 82 00 0C */ bne lbl_802AB774
+/* 802AB76C 002A73CC 3B 00 00 00 */ li r24, 0
+/* 802AB770 002A73D0 48 00 0F D0 */ b lbl_802AC740
+lbl_802AB774:
+/* 802AB774 002A73D4 4B FC 2F E9 */ bl OSDisableInterrupts
+/* 802AB778 002A73D8 7C 7E 1B 78 */ mr r30, r3
+/* 802AB77C 002A73DC 4B FC 2F E1 */ bl OSDisableInterrupts
+/* 802AB780 002A73E0 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AB784 002A73E4 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB788 002A73E8 7C 04 00 50 */ subf r0, r4, r0
+/* 802AB78C 002A73EC 7C 1A 07 75 */ extsb. r26, r0
+/* 802AB790 002A73F0 40 80 00 10 */ bge lbl_802AB7A0
+/* 802AB794 002A73F4 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AB798 002A73F8 7C 1A 02 14 */ add r0, r26, r0
+/* 802AB79C 002A73FC 7C 1A 07 74 */ extsb r26, r0
+lbl_802AB7A0:
+/* 802AB7A0 002A7400 4B FC 2F E5 */ bl OSRestoreInterrupts
+/* 802AB7A4 002A7404 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AB7A8 002A7408 38 9A 00 03 */ addi r4, r26, 3
+/* 802AB7AC 002A740C 38 03 FF FF */ addi r0, r3, -1
+/* 802AB7B0 002A7410 7C 04 00 40 */ cmplw r4, r0
+/* 802AB7B4 002A7414 41 81 03 BC */ bgt lbl_802ABB70
+/* 802AB7B8 002A7418 39 80 00 00 */ li r12, 0
+/* 802AB7BC 002A741C 38 00 00 01 */ li r0, 1
+/* 802AB7C0 002A7420 B0 01 04 02 */ sth r0, 0x402(r1)
+/* 802AB7C4 002A7424 3B E0 00 13 */ li r31, 0x13
+/* 802AB7C8 002A7428 81 41 03 F0 */ lwz r10, 0x3f0(r1)
+/* 802AB7CC 002A742C 9B 7D 08 CC */ stb r27, 0x8cc(r29)
+/* 802AB7D0 002A7430 81 21 03 F4 */ lwz r9, 0x3f4(r1)
+/* 802AB7D4 002A7434 99 81 03 EC */ stb r12, 0x3ec(r1)
+/* 802AB7D8 002A7438 81 01 03 F8 */ lwz r8, 0x3f8(r1)
+/* 802AB7DC 002A743C 81 61 03 EC */ lwz r11, 0x3ec(r1)
+/* 802AB7E0 002A7440 80 E1 03 FC */ lwz r7, 0x3fc(r1)
+/* 802AB7E4 002A7444 80 C1 04 00 */ lwz r6, 0x400(r1)
+/* 802AB7E8 002A7448 80 A1 04 04 */ lwz r5, 0x404(r1)
+/* 802AB7EC 002A744C 80 81 04 08 */ lwz r4, 0x408(r1)
+/* 802AB7F0 002A7450 80 61 04 0C */ lwz r3, 0x40c(r1)
+/* 802AB7F4 002A7454 80 01 04 10 */ lwz r0, 0x410(r1)
+/* 802AB7F8 002A7458 93 E1 03 E8 */ stw r31, 0x3e8(r1)
+/* 802AB7FC 002A745C 91 81 04 14 */ stw r12, 0x414(r1)
+/* 802AB800 002A7460 93 E1 04 18 */ stw r31, 0x418(r1)
+/* 802AB804 002A7464 91 61 04 1C */ stw r11, 0x41c(r1)
+/* 802AB808 002A7468 91 41 04 20 */ stw r10, 0x420(r1)
+/* 802AB80C 002A746C 91 21 04 24 */ stw r9, 0x424(r1)
+/* 802AB810 002A7470 91 01 04 28 */ stw r8, 0x428(r1)
+/* 802AB814 002A7474 90 E1 04 2C */ stw r7, 0x42c(r1)
+/* 802AB818 002A7478 90 C1 04 30 */ stw r6, 0x430(r1)
+/* 802AB81C 002A747C 90 A1 04 34 */ stw r5, 0x434(r1)
+/* 802AB820 002A7480 90 81 04 38 */ stw r4, 0x438(r1)
+/* 802AB824 002A7484 90 61 04 3C */ stw r3, 0x43c(r1)
+/* 802AB828 002A7488 90 01 04 40 */ stw r0, 0x440(r1)
+/* 802AB82C 002A748C 91 81 04 44 */ stw r12, 0x444(r1)
+/* 802AB830 002A7490 4B FC 2F 2D */ bl OSDisableInterrupts
+/* 802AB834 002A7494 7C 7F 1B 78 */ mr r31, r3
+/* 802AB838 002A7498 4B FC 2F 25 */ bl OSDisableInterrupts
+/* 802AB83C 002A749C 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AB840 002A74A0 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB844 002A74A4 7C 04 00 50 */ subf r0, r4, r0
+/* 802AB848 002A74A8 7C 1A 07 75 */ extsb. r26, r0
+/* 802AB84C 002A74AC 40 80 00 10 */ bge lbl_802AB85C
+/* 802AB850 002A74B0 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AB854 002A74B4 7C 1A 02 14 */ add r0, r26, r0
+/* 802AB858 002A74B8 7C 1A 07 74 */ extsb r26, r0
+lbl_802AB85C:
+/* 802AB85C 002A74BC 4B FC 2F 29 */ bl OSRestoreInterrupts
+/* 802AB860 002A74C0 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AB864 002A74C4 38 03 FF FF */ addi r0, r3, -1
+/* 802AB868 002A74C8 7C 00 D0 40 */ cmplw r0, r26
+/* 802AB86C 002A74CC 40 82 00 10 */ bne lbl_802AB87C
+/* 802AB870 002A74D0 7F E3 FB 78 */ mr r3, r31
+/* 802AB874 002A74D4 4B FC 2F 11 */ bl OSRestoreInterrupts
+/* 802AB878 002A74D8 48 00 00 78 */ b lbl_802AB8F0
+lbl_802AB87C:
+/* 802AB87C 002A74DC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB880 002A74E0 38 80 00 00 */ li r4, 0
+/* 802AB884 002A74E4 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AB888 002A74E8 38 A0 00 30 */ li r5, 0x30
+/* 802AB88C 002A74EC 7C 00 07 74 */ extsb r0, r0
+/* 802AB890 002A74F0 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB894 002A74F4 7C 63 02 14 */ add r3, r3, r0
+/* 802AB898 002A74F8 4B D5 88 6D */ bl memset
+/* 802AB89C 002A74FC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB8A0 002A7500 38 81 04 18 */ addi r4, r1, 0x418
+/* 802AB8A4 002A7504 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AB8A8 002A7508 38 A0 00 30 */ li r5, 0x30
+/* 802AB8AC 002A750C 7C 00 07 74 */ extsb r0, r0
+/* 802AB8B0 002A7510 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB8B4 002A7514 7C 63 02 14 */ add r3, r3, r0
+/* 802AB8B8 002A7518 4B D5 87 49 */ bl memcpy
+/* 802AB8BC 002A751C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB8C0 002A7520 7F E3 FB 78 */ mr r3, r31
+/* 802AB8C4 002A7524 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802AB8C8 002A7528 7C 06 07 74 */ extsb r6, r0
+/* 802AB8CC 002A752C 38 84 FF FF */ addi r4, r4, -1
+/* 802AB8D0 002A7530 7C A4 30 50 */ subf r5, r4, r6
+/* 802AB8D4 002A7534 38 06 00 01 */ addi r0, r6, 1
+/* 802AB8D8 002A7538 7C 86 20 50 */ subf r4, r6, r4
+/* 802AB8DC 002A753C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AB8E0 002A7540 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AB8E4 002A7544 7C 00 20 78 */ andc r0, r0, r4
+/* 802AB8E8 002A7548 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802AB8EC 002A754C 4B FC 2E 99 */ bl OSRestoreInterrupts
+lbl_802AB8F0:
+/* 802AB8F0 002A7550 38 60 00 01 */ li r3, 1
+/* 802AB8F4 002A7554 38 00 00 00 */ li r0, 0
+/* 802AB8F8 002A7558 B0 61 03 A2 */ sth r3, 0x3a2(r1)
+/* 802AB8FC 002A755C 3B 60 00 1A */ li r27, 0x1a
+/* 802AB900 002A7560 81 41 03 90 */ lwz r10, 0x390(r1)
+/* 802AB904 002A7564 3D 80 80 2B */ lis r12, __dpdCb@ha
+/* 802AB908 002A7568 98 01 03 8C */ stb r0, 0x38c(r1)
+/* 802AB90C 002A756C 39 8C B6 CC */ addi r12, r12, __dpdCb@l
+/* 802AB910 002A7570 81 21 03 94 */ lwz r9, 0x394(r1)
+/* 802AB914 002A7574 81 61 03 8C */ lwz r11, 0x38c(r1)
+/* 802AB918 002A7578 81 01 03 98 */ lwz r8, 0x398(r1)
+/* 802AB91C 002A757C 80 E1 03 9C */ lwz r7, 0x39c(r1)
+/* 802AB920 002A7580 80 C1 03 A0 */ lwz r6, 0x3a0(r1)
+/* 802AB924 002A7584 80 A1 03 A4 */ lwz r5, 0x3a4(r1)
+/* 802AB928 002A7588 80 81 03 A8 */ lwz r4, 0x3a8(r1)
+/* 802AB92C 002A758C 80 61 03 AC */ lwz r3, 0x3ac(r1)
+/* 802AB930 002A7590 80 01 03 B0 */ lwz r0, 0x3b0(r1)
+/* 802AB934 002A7594 93 61 03 88 */ stw r27, 0x388(r1)
+/* 802AB938 002A7598 91 81 03 B4 */ stw r12, 0x3b4(r1)
+/* 802AB93C 002A759C 93 61 03 B8 */ stw r27, 0x3b8(r1)
+/* 802AB940 002A75A0 91 61 03 BC */ stw r11, 0x3bc(r1)
+/* 802AB944 002A75A4 91 41 03 C0 */ stw r10, 0x3c0(r1)
+/* 802AB948 002A75A8 91 21 03 C4 */ stw r9, 0x3c4(r1)
+/* 802AB94C 002A75AC 91 01 03 C8 */ stw r8, 0x3c8(r1)
+/* 802AB950 002A75B0 90 E1 03 CC */ stw r7, 0x3cc(r1)
+/* 802AB954 002A75B4 90 C1 03 D0 */ stw r6, 0x3d0(r1)
+/* 802AB958 002A75B8 90 A1 03 D4 */ stw r5, 0x3d4(r1)
+/* 802AB95C 002A75BC 90 81 03 D8 */ stw r4, 0x3d8(r1)
+/* 802AB960 002A75C0 90 61 03 DC */ stw r3, 0x3dc(r1)
+/* 802AB964 002A75C4 90 01 03 E0 */ stw r0, 0x3e0(r1)
+/* 802AB968 002A75C8 91 81 03 E4 */ stw r12, 0x3e4(r1)
+/* 802AB96C 002A75CC 4B FC 2D F1 */ bl OSDisableInterrupts
+/* 802AB970 002A75D0 7C 7F 1B 78 */ mr r31, r3
+/* 802AB974 002A75D4 4B FC 2D E9 */ bl OSDisableInterrupts
+/* 802AB978 002A75D8 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AB97C 002A75DC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB980 002A75E0 7C 04 00 50 */ subf r0, r4, r0
+/* 802AB984 002A75E4 7C 1A 07 75 */ extsb. r26, r0
+/* 802AB988 002A75E8 40 80 00 10 */ bge lbl_802AB998
+/* 802AB98C 002A75EC 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AB990 002A75F0 7C 1A 02 14 */ add r0, r26, r0
+/* 802AB994 002A75F4 7C 1A 07 74 */ extsb r26, r0
+lbl_802AB998:
+/* 802AB998 002A75F8 4B FC 2D ED */ bl OSRestoreInterrupts
+/* 802AB99C 002A75FC 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AB9A0 002A7600 38 03 FF FF */ addi r0, r3, -1
+/* 802AB9A4 002A7604 7C 00 D0 40 */ cmplw r0, r26
+/* 802AB9A8 002A7608 40 82 00 10 */ bne lbl_802AB9B8
+/* 802AB9AC 002A760C 7F E3 FB 78 */ mr r3, r31
+/* 802AB9B0 002A7610 4B FC 2D D5 */ bl OSRestoreInterrupts
+/* 802AB9B4 002A7614 48 00 00 78 */ b lbl_802ABA2C
+lbl_802AB9B8:
+/* 802AB9B8 002A7618 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB9BC 002A761C 38 80 00 00 */ li r4, 0
+/* 802AB9C0 002A7620 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AB9C4 002A7624 38 A0 00 30 */ li r5, 0x30
+/* 802AB9C8 002A7628 7C 00 07 74 */ extsb r0, r0
+/* 802AB9CC 002A762C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB9D0 002A7630 7C 63 02 14 */ add r3, r3, r0
+/* 802AB9D4 002A7634 4B D5 87 31 */ bl memset
+/* 802AB9D8 002A7638 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB9DC 002A763C 38 81 03 B8 */ addi r4, r1, 0x3b8
+/* 802AB9E0 002A7640 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AB9E4 002A7644 38 A0 00 30 */ li r5, 0x30
+/* 802AB9E8 002A7648 7C 00 07 74 */ extsb r0, r0
+/* 802AB9EC 002A764C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AB9F0 002A7650 7C 63 02 14 */ add r3, r3, r0
+/* 802AB9F4 002A7654 4B D5 86 0D */ bl memcpy
+/* 802AB9F8 002A7658 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AB9FC 002A765C 7F E3 FB 78 */ mr r3, r31
+/* 802ABA00 002A7660 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802ABA04 002A7664 7C 06 07 74 */ extsb r6, r0
+/* 802ABA08 002A7668 38 84 FF FF */ addi r4, r4, -1
+/* 802ABA0C 002A766C 7C A4 30 50 */ subf r5, r4, r6
+/* 802ABA10 002A7670 38 06 00 01 */ addi r0, r6, 1
+/* 802ABA14 002A7674 7C 86 20 50 */ subf r4, r6, r4
+/* 802ABA18 002A7678 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ABA1C 002A767C 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ABA20 002A7680 7C 00 20 78 */ andc r0, r0, r4
+/* 802ABA24 002A7684 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802ABA28 002A7688 4B FC 2D 5D */ bl OSRestoreInterrupts
+lbl_802ABA2C:
+/* 802ABA2C 002A768C 39 60 00 00 */ li r11, 0
+/* 802ABA30 002A7690 38 00 00 01 */ li r0, 1
+/* 802ABA34 002A7694 B0 01 03 42 */ sth r0, 0x342(r1)
+/* 802ABA38 002A7698 39 80 00 15 */ li r12, 0x15
+/* 802ABA3C 002A769C 81 21 03 30 */ lwz r9, 0x330(r1)
+/* 802ABA40 002A76A0 99 61 03 2C */ stb r11, 0x32c(r1)
+/* 802ABA44 002A76A4 81 01 03 34 */ lwz r8, 0x334(r1)
+/* 802ABA48 002A76A8 81 41 03 2C */ lwz r10, 0x32c(r1)
+/* 802ABA4C 002A76AC 80 E1 03 38 */ lwz r7, 0x338(r1)
+/* 802ABA50 002A76B0 80 C1 03 3C */ lwz r6, 0x33c(r1)
+/* 802ABA54 002A76B4 80 A1 03 40 */ lwz r5, 0x340(r1)
+/* 802ABA58 002A76B8 80 81 03 44 */ lwz r4, 0x344(r1)
+/* 802ABA5C 002A76BC 80 61 03 48 */ lwz r3, 0x348(r1)
+/* 802ABA60 002A76C0 80 01 03 4C */ lwz r0, 0x34c(r1)
+/* 802ABA64 002A76C4 91 81 03 28 */ stw r12, 0x328(r1)
+/* 802ABA68 002A76C8 93 81 03 54 */ stw r28, 0x354(r1)
+/* 802ABA6C 002A76CC 91 61 03 50 */ stw r11, 0x350(r1)
+/* 802ABA70 002A76D0 91 81 03 58 */ stw r12, 0x358(r1)
+/* 802ABA74 002A76D4 91 41 03 5C */ stw r10, 0x35c(r1)
+/* 802ABA78 002A76D8 91 21 03 60 */ stw r9, 0x360(r1)
+/* 802ABA7C 002A76DC 91 01 03 64 */ stw r8, 0x364(r1)
+/* 802ABA80 002A76E0 90 E1 03 68 */ stw r7, 0x368(r1)
+/* 802ABA84 002A76E4 90 C1 03 6C */ stw r6, 0x36c(r1)
+/* 802ABA88 002A76E8 90 A1 03 70 */ stw r5, 0x370(r1)
+/* 802ABA8C 002A76EC 90 81 03 74 */ stw r4, 0x374(r1)
+/* 802ABA90 002A76F0 90 61 03 78 */ stw r3, 0x378(r1)
+/* 802ABA94 002A76F4 90 01 03 7C */ stw r0, 0x37c(r1)
+/* 802ABA98 002A76F8 91 61 03 80 */ stw r11, 0x380(r1)
+/* 802ABA9C 002A76FC 93 81 03 84 */ stw r28, 0x384(r1)
+/* 802ABAA0 002A7700 4B FC 2C BD */ bl OSDisableInterrupts
+/* 802ABAA4 002A7704 7C 7F 1B 78 */ mr r31, r3
+/* 802ABAA8 002A7708 4B FC 2C B5 */ bl OSDisableInterrupts
+/* 802ABAAC 002A770C 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802ABAB0 002A7710 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABAB4 002A7714 7C 04 00 50 */ subf r0, r4, r0
+/* 802ABAB8 002A7718 7C 1A 07 75 */ extsb. r26, r0
+/* 802ABABC 002A771C 40 80 00 10 */ bge lbl_802ABACC
+/* 802ABAC0 002A7720 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802ABAC4 002A7724 7C 1A 02 14 */ add r0, r26, r0
+/* 802ABAC8 002A7728 7C 1A 07 74 */ extsb r26, r0
+lbl_802ABACC:
+/* 802ABACC 002A772C 4B FC 2C B9 */ bl OSRestoreInterrupts
+/* 802ABAD0 002A7730 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802ABAD4 002A7734 38 03 FF FF */ addi r0, r3, -1
+/* 802ABAD8 002A7738 7C 00 D0 40 */ cmplw r0, r26
+/* 802ABADC 002A773C 40 82 00 10 */ bne lbl_802ABAEC
+/* 802ABAE0 002A7740 7F E3 FB 78 */ mr r3, r31
+/* 802ABAE4 002A7744 4B FC 2C A1 */ bl OSRestoreInterrupts
+/* 802ABAE8 002A7748 48 00 00 78 */ b lbl_802ABB60
+lbl_802ABAEC:
+/* 802ABAEC 002A774C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABAF0 002A7750 38 80 00 00 */ li r4, 0
+/* 802ABAF4 002A7754 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABAF8 002A7758 38 A0 00 30 */ li r5, 0x30
+/* 802ABAFC 002A775C 7C 00 07 74 */ extsb r0, r0
+/* 802ABB00 002A7760 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABB04 002A7764 7C 63 02 14 */ add r3, r3, r0
+/* 802ABB08 002A7768 4B D5 85 FD */ bl memset
+/* 802ABB0C 002A776C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABB10 002A7770 38 81 03 58 */ addi r4, r1, 0x358
+/* 802ABB14 002A7774 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABB18 002A7778 38 A0 00 30 */ li r5, 0x30
+/* 802ABB1C 002A777C 7C 00 07 74 */ extsb r0, r0
+/* 802ABB20 002A7780 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABB24 002A7784 7C 63 02 14 */ add r3, r3, r0
+/* 802ABB28 002A7788 4B D5 84 D9 */ bl memcpy
+/* 802ABB2C 002A778C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABB30 002A7790 7F E3 FB 78 */ mr r3, r31
+/* 802ABB34 002A7794 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802ABB38 002A7798 7C 06 07 74 */ extsb r6, r0
+/* 802ABB3C 002A779C 38 84 FF FF */ addi r4, r4, -1
+/* 802ABB40 002A77A0 7C A4 30 50 */ subf r5, r4, r6
+/* 802ABB44 002A77A4 38 06 00 01 */ addi r0, r6, 1
+/* 802ABB48 002A77A8 7C 86 20 50 */ subf r4, r6, r4
+/* 802ABB4C 002A77AC 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ABB50 002A77B0 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ABB54 002A77B4 7C 00 20 78 */ andc r0, r0, r4
+/* 802ABB58 002A77B8 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802ABB5C 002A77BC 4B FC 2C 29 */ bl OSRestoreInterrupts
+lbl_802ABB60:
+/* 802ABB60 002A77C0 7F C3 F3 78 */ mr r3, r30
+/* 802ABB64 002A77C4 4B FC 2C 21 */ bl OSRestoreInterrupts
+/* 802ABB68 002A77C8 38 60 00 00 */ li r3, 0
+/* 802ABB6C 002A77CC 48 00 0B F4 */ b lbl_802AC760
+lbl_802ABB70:
+/* 802ABB70 002A77D0 7F C3 F3 78 */ mr r3, r30
+/* 802ABB74 002A77D4 3B 00 FF FE */ li r24, -2
+/* 802ABB78 002A77D8 4B FC 2C 0D */ bl OSRestoreInterrupts
+/* 802ABB7C 002A77DC 48 00 0B C4 */ b lbl_802AC740
+lbl_802ABB80:
+/* 802ABB80 002A77E0 7C 1B C8 40 */ cmplw r27, r25
+/* 802ABB84 002A77E4 41 82 0B BC */ beq lbl_802AC740
+/* 802ABB88 002A77E8 4B FC 2B D5 */ bl OSDisableInterrupts
+/* 802ABB8C 002A77EC 7C 7E 1B 78 */ mr r30, r3
+/* 802ABB90 002A77F0 4B FC 2B CD */ bl OSDisableInterrupts
+/* 802ABB94 002A77F4 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802ABB98 002A77F8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABB9C 002A77FC 7C 04 00 50 */ subf r0, r4, r0
+/* 802ABBA0 002A7800 7C 1A 07 75 */ extsb. r26, r0
+/* 802ABBA4 002A7804 40 80 00 10 */ bge lbl_802ABBB4
+/* 802ABBA8 002A7808 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802ABBAC 002A780C 7C 1A 02 14 */ add r0, r26, r0
+/* 802ABBB0 002A7810 7C 1A 07 74 */ extsb r26, r0
+lbl_802ABBB4:
+/* 802ABBB4 002A7814 4B FC 2B D1 */ bl OSRestoreInterrupts
+/* 802ABBB8 002A7818 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802ABBBC 002A781C 38 9A 00 08 */ addi r4, r26, 8
+/* 802ABBC0 002A7820 38 03 FF FF */ addi r0, r3, -1
+/* 802ABBC4 002A7824 7C 04 00 40 */ cmplw r4, r0
+/* 802ABBC8 002A7828 41 81 0B 6C */ bgt lbl_802AC734
+/* 802ABBCC 002A782C 38 60 00 01 */ li r3, 1
+/* 802ABBD0 002A7830 38 00 00 04 */ li r0, 4
+/* 802ABBD4 002A7834 B0 61 02 E2 */ sth r3, 0x2e2(r1)
+/* 802ABBD8 002A7838 3B E0 00 13 */ li r31, 0x13
+/* 802ABBDC 002A783C 39 80 00 00 */ li r12, 0
+/* 802ABBE0 002A7840 81 41 02 D0 */ lwz r10, 0x2d0(r1)
+/* 802ABBE4 002A7844 9B 7D 08 CC */ stb r27, 0x8cc(r29)
+/* 802ABBE8 002A7848 81 21 02 D4 */ lwz r9, 0x2d4(r1)
+/* 802ABBEC 002A784C 98 01 02 CC */ stb r0, 0x2cc(r1)
+/* 802ABBF0 002A7850 81 01 02 D8 */ lwz r8, 0x2d8(r1)
+/* 802ABBF4 002A7854 81 61 02 CC */ lwz r11, 0x2cc(r1)
+/* 802ABBF8 002A7858 80 E1 02 DC */ lwz r7, 0x2dc(r1)
+/* 802ABBFC 002A785C 80 C1 02 E0 */ lwz r6, 0x2e0(r1)
+/* 802ABC00 002A7860 80 A1 02 E4 */ lwz r5, 0x2e4(r1)
+/* 802ABC04 002A7864 80 81 02 E8 */ lwz r4, 0x2e8(r1)
+/* 802ABC08 002A7868 80 61 02 EC */ lwz r3, 0x2ec(r1)
+/* 802ABC0C 002A786C 80 01 02 F0 */ lwz r0, 0x2f0(r1)
+/* 802ABC10 002A7870 93 E1 02 C8 */ stw r31, 0x2c8(r1)
+/* 802ABC14 002A7874 91 81 02 F4 */ stw r12, 0x2f4(r1)
+/* 802ABC18 002A7878 93 E1 02 F8 */ stw r31, 0x2f8(r1)
+/* 802ABC1C 002A787C 91 61 02 FC */ stw r11, 0x2fc(r1)
+/* 802ABC20 002A7880 91 41 03 00 */ stw r10, 0x300(r1)
+/* 802ABC24 002A7884 91 21 03 04 */ stw r9, 0x304(r1)
+/* 802ABC28 002A7888 91 01 03 08 */ stw r8, 0x308(r1)
+/* 802ABC2C 002A788C 90 E1 03 0C */ stw r7, 0x30c(r1)
+/* 802ABC30 002A7890 90 C1 03 10 */ stw r6, 0x310(r1)
+/* 802ABC34 002A7894 90 A1 03 14 */ stw r5, 0x314(r1)
+/* 802ABC38 002A7898 90 81 03 18 */ stw r4, 0x318(r1)
+/* 802ABC3C 002A789C 90 61 03 1C */ stw r3, 0x31c(r1)
+/* 802ABC40 002A78A0 90 01 03 20 */ stw r0, 0x320(r1)
+/* 802ABC44 002A78A4 91 81 03 24 */ stw r12, 0x324(r1)
+/* 802ABC48 002A78A8 4B FC 2B 15 */ bl OSDisableInterrupts
+/* 802ABC4C 002A78AC 7C 7F 1B 78 */ mr r31, r3
+/* 802ABC50 002A78B0 4B FC 2B 0D */ bl OSDisableInterrupts
+/* 802ABC54 002A78B4 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802ABC58 002A78B8 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABC5C 002A78BC 7C 04 00 50 */ subf r0, r4, r0
+/* 802ABC60 002A78C0 7C 1A 07 75 */ extsb. r26, r0
+/* 802ABC64 002A78C4 40 80 00 10 */ bge lbl_802ABC74
+/* 802ABC68 002A78C8 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802ABC6C 002A78CC 7C 1A 02 14 */ add r0, r26, r0
+/* 802ABC70 002A78D0 7C 1A 07 74 */ extsb r26, r0
+lbl_802ABC74:
+/* 802ABC74 002A78D4 4B FC 2B 11 */ bl OSRestoreInterrupts
+/* 802ABC78 002A78D8 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802ABC7C 002A78DC 38 03 FF FF */ addi r0, r3, -1
+/* 802ABC80 002A78E0 7C 00 D0 40 */ cmplw r0, r26
+/* 802ABC84 002A78E4 40 82 00 10 */ bne lbl_802ABC94
+/* 802ABC88 002A78E8 7F E3 FB 78 */ mr r3, r31
+/* 802ABC8C 002A78EC 4B FC 2A F9 */ bl OSRestoreInterrupts
+/* 802ABC90 002A78F0 48 00 00 78 */ b lbl_802ABD08
+lbl_802ABC94:
+/* 802ABC94 002A78F4 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABC98 002A78F8 38 80 00 00 */ li r4, 0
+/* 802ABC9C 002A78FC 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABCA0 002A7900 38 A0 00 30 */ li r5, 0x30
+/* 802ABCA4 002A7904 7C 00 07 74 */ extsb r0, r0
+/* 802ABCA8 002A7908 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABCAC 002A790C 7C 63 02 14 */ add r3, r3, r0
+/* 802ABCB0 002A7910 4B D5 84 55 */ bl memset
+/* 802ABCB4 002A7914 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABCB8 002A7918 38 81 02 F8 */ addi r4, r1, 0x2f8
+/* 802ABCBC 002A791C 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABCC0 002A7920 38 A0 00 30 */ li r5, 0x30
+/* 802ABCC4 002A7924 7C 00 07 74 */ extsb r0, r0
+/* 802ABCC8 002A7928 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABCCC 002A792C 7C 63 02 14 */ add r3, r3, r0
+/* 802ABCD0 002A7930 4B D5 83 31 */ bl memcpy
+/* 802ABCD4 002A7934 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABCD8 002A7938 7F E3 FB 78 */ mr r3, r31
+/* 802ABCDC 002A793C 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802ABCE0 002A7940 7C 06 07 74 */ extsb r6, r0
+/* 802ABCE4 002A7944 38 84 FF FF */ addi r4, r4, -1
+/* 802ABCE8 002A7948 7C A4 30 50 */ subf r5, r4, r6
+/* 802ABCEC 002A794C 38 06 00 01 */ addi r0, r6, 1
+/* 802ABCF0 002A7950 7C 86 20 50 */ subf r4, r6, r4
+/* 802ABCF4 002A7954 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ABCF8 002A7958 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ABCFC 002A795C 7C 00 20 78 */ andc r0, r0, r4
+/* 802ABD00 002A7960 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802ABD04 002A7964 4B FC 2A 81 */ bl OSRestoreInterrupts
+lbl_802ABD08:
+/* 802ABD08 002A7968 38 60 00 01 */ li r3, 1
+/* 802ABD0C 002A796C 38 00 00 04 */ li r0, 4
+/* 802ABD10 002A7970 B0 61 02 82 */ sth r3, 0x282(r1)
+/* 802ABD14 002A7974 3B E0 00 1A */ li r31, 0x1a
+/* 802ABD18 002A7978 39 80 00 00 */ li r12, 0
+/* 802ABD1C 002A797C 81 41 02 70 */ lwz r10, 0x270(r1)
+/* 802ABD20 002A7980 98 01 02 6C */ stb r0, 0x26c(r1)
+/* 802ABD24 002A7984 81 21 02 74 */ lwz r9, 0x274(r1)
+/* 802ABD28 002A7988 81 61 02 6C */ lwz r11, 0x26c(r1)
+/* 802ABD2C 002A798C 81 01 02 78 */ lwz r8, 0x278(r1)
+/* 802ABD30 002A7990 80 E1 02 7C */ lwz r7, 0x27c(r1)
+/* 802ABD34 002A7994 80 C1 02 80 */ lwz r6, 0x280(r1)
+/* 802ABD38 002A7998 80 A1 02 84 */ lwz r5, 0x284(r1)
+/* 802ABD3C 002A799C 80 81 02 88 */ lwz r4, 0x288(r1)
+/* 802ABD40 002A79A0 80 61 02 8C */ lwz r3, 0x28c(r1)
+/* 802ABD44 002A79A4 80 01 02 90 */ lwz r0, 0x290(r1)
+/* 802ABD48 002A79A8 93 E1 02 68 */ stw r31, 0x268(r1)
+/* 802ABD4C 002A79AC 91 81 02 94 */ stw r12, 0x294(r1)
+/* 802ABD50 002A79B0 93 E1 02 98 */ stw r31, 0x298(r1)
+/* 802ABD54 002A79B4 91 61 02 9C */ stw r11, 0x29c(r1)
+/* 802ABD58 002A79B8 91 41 02 A0 */ stw r10, 0x2a0(r1)
+/* 802ABD5C 002A79BC 91 21 02 A4 */ stw r9, 0x2a4(r1)
+/* 802ABD60 002A79C0 91 01 02 A8 */ stw r8, 0x2a8(r1)
+/* 802ABD64 002A79C4 90 E1 02 AC */ stw r7, 0x2ac(r1)
+/* 802ABD68 002A79C8 90 C1 02 B0 */ stw r6, 0x2b0(r1)
+/* 802ABD6C 002A79CC 90 A1 02 B4 */ stw r5, 0x2b4(r1)
+/* 802ABD70 002A79D0 90 81 02 B8 */ stw r4, 0x2b8(r1)
+/* 802ABD74 002A79D4 90 61 02 BC */ stw r3, 0x2bc(r1)
+/* 802ABD78 002A79D8 90 01 02 C0 */ stw r0, 0x2c0(r1)
+/* 802ABD7C 002A79DC 91 81 02 C4 */ stw r12, 0x2c4(r1)
+/* 802ABD80 002A79E0 4B FC 29 DD */ bl OSDisableInterrupts
+/* 802ABD84 002A79E4 7C 7F 1B 78 */ mr r31, r3
+/* 802ABD88 002A79E8 4B FC 29 D5 */ bl OSDisableInterrupts
+/* 802ABD8C 002A79EC 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802ABD90 002A79F0 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABD94 002A79F4 7C 04 00 50 */ subf r0, r4, r0
+/* 802ABD98 002A79F8 7C 1A 07 75 */ extsb. r26, r0
+/* 802ABD9C 002A79FC 40 80 00 10 */ bge lbl_802ABDAC
+/* 802ABDA0 002A7A00 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802ABDA4 002A7A04 7C 1A 02 14 */ add r0, r26, r0
+/* 802ABDA8 002A7A08 7C 1A 07 74 */ extsb r26, r0
+lbl_802ABDAC:
+/* 802ABDAC 002A7A0C 4B FC 29 D9 */ bl OSRestoreInterrupts
+/* 802ABDB0 002A7A10 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802ABDB4 002A7A14 38 03 FF FF */ addi r0, r3, -1
+/* 802ABDB8 002A7A18 7C 00 D0 40 */ cmplw r0, r26
+/* 802ABDBC 002A7A1C 40 82 00 10 */ bne lbl_802ABDCC
+/* 802ABDC0 002A7A20 7F E3 FB 78 */ mr r3, r31
+/* 802ABDC4 002A7A24 4B FC 29 C1 */ bl OSRestoreInterrupts
+/* 802ABDC8 002A7A28 48 00 00 78 */ b lbl_802ABE40
+lbl_802ABDCC:
+/* 802ABDCC 002A7A2C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABDD0 002A7A30 38 80 00 00 */ li r4, 0
+/* 802ABDD4 002A7A34 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABDD8 002A7A38 38 A0 00 30 */ li r5, 0x30
+/* 802ABDDC 002A7A3C 7C 00 07 74 */ extsb r0, r0
+/* 802ABDE0 002A7A40 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABDE4 002A7A44 7C 63 02 14 */ add r3, r3, r0
+/* 802ABDE8 002A7A48 4B D5 83 1D */ bl memset
+/* 802ABDEC 002A7A4C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABDF0 002A7A50 38 81 02 98 */ addi r4, r1, 0x298
+/* 802ABDF4 002A7A54 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABDF8 002A7A58 38 A0 00 30 */ li r5, 0x30
+/* 802ABDFC 002A7A5C 7C 00 07 74 */ extsb r0, r0
+/* 802ABE00 002A7A60 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABE04 002A7A64 7C 63 02 14 */ add r3, r3, r0
+/* 802ABE08 002A7A68 4B D5 81 F9 */ bl memcpy
+/* 802ABE0C 002A7A6C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABE10 002A7A70 7F E3 FB 78 */ mr r3, r31
+/* 802ABE14 002A7A74 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802ABE18 002A7A78 7C 06 07 74 */ extsb r6, r0
+/* 802ABE1C 002A7A7C 38 84 FF FF */ addi r4, r4, -1
+/* 802ABE20 002A7A80 7C A4 30 50 */ subf r5, r4, r6
+/* 802ABE24 002A7A84 38 06 00 01 */ addi r0, r6, 1
+/* 802ABE28 002A7A88 7C 86 20 50 */ subf r4, r6, r4
+/* 802ABE2C 002A7A8C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ABE30 002A7A90 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ABE34 002A7A94 7C 00 20 78 */ andc r0, r0, r4
+/* 802ABE38 002A7A98 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802ABE3C 002A7A9C 4B FC 29 49 */ bl OSRestoreInterrupts
+lbl_802ABE40:
+/* 802ABE40 002A7AA0 3C 60 04 B0 */ lis r3, 0x04B00030@ha
+/* 802ABE44 002A7AA4 39 20 00 01 */ li r9, 1
+/* 802ABE48 002A7AA8 39 03 00 30 */ addi r8, r3, 0x04B00030@l
+/* 802ABE4C 002A7AAC 38 E0 00 16 */ li r7, 0x16
+/* 802ABE50 002A7AB0 38 C0 00 15 */ li r6, 0x15
+/* 802ABE54 002A7AB4 38 00 00 00 */ li r0, 0
+/* 802ABE58 002A7AB8 99 21 00 0F */ stb r9, 0xf(r1)
+/* 802ABE5C 002A7ABC 38 61 02 3C */ addi r3, r1, 0x23c
+/* 802ABE60 002A7AC0 38 81 00 20 */ addi r4, r1, 0x20
+/* 802ABE64 002A7AC4 38 A0 00 04 */ li r5, 4
+/* 802ABE68 002A7AC8 91 01 00 20 */ stw r8, 0x20(r1)
+/* 802ABE6C 002A7ACC 99 21 00 0E */ stb r9, 0xe(r1)
+/* 802ABE70 002A7AD0 90 E1 02 38 */ stw r7, 0x238(r1)
+/* 802ABE74 002A7AD4 B0 C1 02 52 */ sth r6, 0x252(r1)
+/* 802ABE78 002A7AD8 90 01 02 64 */ stw r0, 0x264(r1)
+/* 802ABE7C 002A7ADC 4B D5 81 85 */ bl memcpy
+/* 802ABE80 002A7AE0 38 61 02 40 */ addi r3, r1, 0x240
+/* 802ABE84 002A7AE4 38 81 00 0E */ addi r4, r1, 0xe
+/* 802ABE88 002A7AE8 38 A0 00 01 */ li r5, 1
+/* 802ABE8C 002A7AEC 4B D5 81 75 */ bl memcpy
+/* 802ABE90 002A7AF0 38 61 02 41 */ addi r3, r1, 0x241
+/* 802ABE94 002A7AF4 38 81 00 0F */ addi r4, r1, 0xf
+/* 802ABE98 002A7AF8 38 A0 00 01 */ li r5, 1
+/* 802ABE9C 002A7AFC 4B D5 81 65 */ bl memcpy
+/* 802ABEA0 002A7B00 83 E1 02 38 */ lwz r31, 0x238(r1)
+/* 802ABEA4 002A7B04 81 81 02 3C */ lwz r12, 0x23c(r1)
+/* 802ABEA8 002A7B08 81 61 02 40 */ lwz r11, 0x240(r1)
+/* 802ABEAC 002A7B0C 81 41 02 44 */ lwz r10, 0x244(r1)
+/* 802ABEB0 002A7B10 81 21 02 48 */ lwz r9, 0x248(r1)
+/* 802ABEB4 002A7B14 81 01 02 4C */ lwz r8, 0x24c(r1)
+/* 802ABEB8 002A7B18 80 E1 02 50 */ lwz r7, 0x250(r1)
+/* 802ABEBC 002A7B1C 80 C1 02 54 */ lwz r6, 0x254(r1)
+/* 802ABEC0 002A7B20 80 A1 02 58 */ lwz r5, 0x258(r1)
+/* 802ABEC4 002A7B24 80 81 02 5C */ lwz r4, 0x25c(r1)
+/* 802ABEC8 002A7B28 80 61 02 60 */ lwz r3, 0x260(r1)
+/* 802ABECC 002A7B2C 80 01 02 64 */ lwz r0, 0x264(r1)
+/* 802ABED0 002A7B30 93 E1 02 08 */ stw r31, 0x208(r1)
+/* 802ABED4 002A7B34 91 81 02 0C */ stw r12, 0x20c(r1)
+/* 802ABED8 002A7B38 91 61 02 10 */ stw r11, 0x210(r1)
+/* 802ABEDC 002A7B3C 91 41 02 14 */ stw r10, 0x214(r1)
+/* 802ABEE0 002A7B40 91 21 02 18 */ stw r9, 0x218(r1)
+/* 802ABEE4 002A7B44 91 01 02 1C */ stw r8, 0x21c(r1)
+/* 802ABEE8 002A7B48 90 E1 02 20 */ stw r7, 0x220(r1)
+/* 802ABEEC 002A7B4C 90 C1 02 24 */ stw r6, 0x224(r1)
+/* 802ABEF0 002A7B50 90 A1 02 28 */ stw r5, 0x228(r1)
+/* 802ABEF4 002A7B54 90 81 02 2C */ stw r4, 0x22c(r1)
+/* 802ABEF8 002A7B58 90 61 02 30 */ stw r3, 0x230(r1)
+/* 802ABEFC 002A7B5C 90 01 02 34 */ stw r0, 0x234(r1)
+/* 802ABF00 002A7B60 4B FC 28 5D */ bl OSDisableInterrupts
+/* 802ABF04 002A7B64 7C 7F 1B 78 */ mr r31, r3
+/* 802ABF08 002A7B68 4B FC 28 55 */ bl OSDisableInterrupts
+/* 802ABF0C 002A7B6C 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802ABF10 002A7B70 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABF14 002A7B74 7C 04 00 50 */ subf r0, r4, r0
+/* 802ABF18 002A7B78 7C 1A 07 75 */ extsb. r26, r0
+/* 802ABF1C 002A7B7C 40 80 00 10 */ bge lbl_802ABF2C
+/* 802ABF20 002A7B80 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802ABF24 002A7B84 7C 1A 02 14 */ add r0, r26, r0
+/* 802ABF28 002A7B88 7C 1A 07 74 */ extsb r26, r0
+lbl_802ABF2C:
+/* 802ABF2C 002A7B8C 4B FC 28 59 */ bl OSRestoreInterrupts
+/* 802ABF30 002A7B90 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802ABF34 002A7B94 38 03 FF FF */ addi r0, r3, -1
+/* 802ABF38 002A7B98 7C 00 D0 40 */ cmplw r0, r26
+/* 802ABF3C 002A7B9C 40 82 00 10 */ bne lbl_802ABF4C
+/* 802ABF40 002A7BA0 7F E3 FB 78 */ mr r3, r31
+/* 802ABF44 002A7BA4 4B FC 28 41 */ bl OSRestoreInterrupts
+/* 802ABF48 002A7BA8 48 00 00 78 */ b lbl_802ABFC0
+lbl_802ABF4C:
+/* 802ABF4C 002A7BAC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABF50 002A7BB0 38 80 00 00 */ li r4, 0
+/* 802ABF54 002A7BB4 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABF58 002A7BB8 38 A0 00 30 */ li r5, 0x30
+/* 802ABF5C 002A7BBC 7C 00 07 74 */ extsb r0, r0
+/* 802ABF60 002A7BC0 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABF64 002A7BC4 7C 63 02 14 */ add r3, r3, r0
+/* 802ABF68 002A7BC8 4B D5 81 9D */ bl memset
+/* 802ABF6C 002A7BCC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABF70 002A7BD0 38 81 02 08 */ addi r4, r1, 0x208
+/* 802ABF74 002A7BD4 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802ABF78 002A7BD8 38 A0 00 30 */ li r5, 0x30
+/* 802ABF7C 002A7BDC 7C 00 07 74 */ extsb r0, r0
+/* 802ABF80 002A7BE0 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ABF84 002A7BE4 7C 63 02 14 */ add r3, r3, r0
+/* 802ABF88 002A7BE8 4B D5 80 79 */ bl memcpy
+/* 802ABF8C 002A7BEC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802ABF90 002A7BF0 7F E3 FB 78 */ mr r3, r31
+/* 802ABF94 002A7BF4 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802ABF98 002A7BF8 7C 06 07 74 */ extsb r6, r0
+/* 802ABF9C 002A7BFC 38 84 FF FF */ addi r4, r4, -1
+/* 802ABFA0 002A7C00 7C A4 30 50 */ subf r5, r4, r6
+/* 802ABFA4 002A7C04 38 06 00 01 */ addi r0, r6, 1
+/* 802ABFA8 002A7C08 7C 86 20 50 */ subf r4, r6, r4
+/* 802ABFAC 002A7C0C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ABFB0 002A7C10 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ABFB4 002A7C14 7C 00 20 78 */ andc r0, r0, r4
+/* 802ABFB8 002A7C18 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802ABFBC 002A7C1C 4B FC 27 C9 */ bl OSRestoreInterrupts
+lbl_802ABFC0:
+/* 802ABFC0 002A7C20 88 AD AE 61 */ lbz r5, lbl_80640121-_SDA_BASE_(r13)
+/* 802ABFC4 002A7C24 3D 20 04 B0 */ lis r9, 0x4b0
+/* 802ABFC8 002A7C28 3C 80 80 40 */ lis r4, lbl_803FDA68@ha
+/* 802ABFCC 002A7C2C 38 60 00 09 */ li r3, 9
+/* 802ABFD0 002A7C30 39 05 FF FF */ addi r8, r5, -1
+/* 802ABFD4 002A7C34 38 A0 00 16 */ li r5, 0x16
+/* 802ABFD8 002A7C38 55 07 18 38 */ slwi r7, r8, 3
+/* 802ABFDC 002A7C3C 38 C0 00 15 */ li r6, 0x15
+/* 802ABFE0 002A7C40 38 00 00 00 */ li r0, 0
+/* 802ABFE4 002A7C44 98 61 00 0D */ stb r3, 0xd(r1)
+/* 802ABFE8 002A7C48 7C E7 42 14 */ add r7, r7, r8
+/* 802ABFEC 002A7C4C 38 84 DA 68 */ addi r4, r4, lbl_803FDA68@l
+/* 802ABFF0 002A7C50 90 A1 01 A8 */ stw r5, 0x1a8(r1)
+/* 802ABFF4 002A7C54 7F 44 3A 14 */ add r26, r4, r7
+/* 802ABFF8 002A7C58 38 61 01 AC */ addi r3, r1, 0x1ac
+/* 802ABFFC 002A7C5C 38 81 00 1C */ addi r4, r1, 0x1c
+/* 802AC000 002A7C60 91 21 00 1C */ stw r9, 0x1c(r1)
+/* 802AC004 002A7C64 38 A0 00 04 */ li r5, 4
+/* 802AC008 002A7C68 B0 C1 01 C2 */ sth r6, 0x1c2(r1)
+/* 802AC00C 002A7C6C 90 01 01 D4 */ stw r0, 0x1d4(r1)
+/* 802AC010 002A7C70 4B D5 7F F1 */ bl memcpy
+/* 802AC014 002A7C74 38 61 01 B0 */ addi r3, r1, 0x1b0
+/* 802AC018 002A7C78 38 81 00 0D */ addi r4, r1, 0xd
+/* 802AC01C 002A7C7C 38 A0 00 01 */ li r5, 1
+/* 802AC020 002A7C80 4B D5 7F E1 */ bl memcpy
+/* 802AC024 002A7C84 7F 44 D3 78 */ mr r4, r26
+/* 802AC028 002A7C88 38 61 01 B1 */ addi r3, r1, 0x1b1
+/* 802AC02C 002A7C8C 38 A0 00 09 */ li r5, 9
+/* 802AC030 002A7C90 4B D5 7F D1 */ bl memcpy
+/* 802AC034 002A7C94 83 E1 01 A8 */ lwz r31, 0x1a8(r1)
+/* 802AC038 002A7C98 81 81 01 AC */ lwz r12, 0x1ac(r1)
+/* 802AC03C 002A7C9C 81 61 01 B0 */ lwz r11, 0x1b0(r1)
+/* 802AC040 002A7CA0 81 41 01 B4 */ lwz r10, 0x1b4(r1)
+/* 802AC044 002A7CA4 81 21 01 B8 */ lwz r9, 0x1b8(r1)
+/* 802AC048 002A7CA8 81 01 01 BC */ lwz r8, 0x1bc(r1)
+/* 802AC04C 002A7CAC 80 E1 01 C0 */ lwz r7, 0x1c0(r1)
+/* 802AC050 002A7CB0 80 C1 01 C4 */ lwz r6, 0x1c4(r1)
+/* 802AC054 002A7CB4 80 A1 01 C8 */ lwz r5, 0x1c8(r1)
+/* 802AC058 002A7CB8 80 81 01 CC */ lwz r4, 0x1cc(r1)
+/* 802AC05C 002A7CBC 80 61 01 D0 */ lwz r3, 0x1d0(r1)
+/* 802AC060 002A7CC0 80 01 01 D4 */ lwz r0, 0x1d4(r1)
+/* 802AC064 002A7CC4 93 E1 01 D8 */ stw r31, 0x1d8(r1)
+/* 802AC068 002A7CC8 91 81 01 DC */ stw r12, 0x1dc(r1)
+/* 802AC06C 002A7CCC 91 61 01 E0 */ stw r11, 0x1e0(r1)
+/* 802AC070 002A7CD0 91 41 01 E4 */ stw r10, 0x1e4(r1)
+/* 802AC074 002A7CD4 91 21 01 E8 */ stw r9, 0x1e8(r1)
+/* 802AC078 002A7CD8 91 01 01 EC */ stw r8, 0x1ec(r1)
+/* 802AC07C 002A7CDC 90 E1 01 F0 */ stw r7, 0x1f0(r1)
+/* 802AC080 002A7CE0 90 C1 01 F4 */ stw r6, 0x1f4(r1)
+/* 802AC084 002A7CE4 90 A1 01 F8 */ stw r5, 0x1f8(r1)
+/* 802AC088 002A7CE8 90 81 01 FC */ stw r4, 0x1fc(r1)
+/* 802AC08C 002A7CEC 90 61 02 00 */ stw r3, 0x200(r1)
+/* 802AC090 002A7CF0 90 01 02 04 */ stw r0, 0x204(r1)
+/* 802AC094 002A7CF4 4B FC 26 C9 */ bl OSDisableInterrupts
+/* 802AC098 002A7CF8 7C 7F 1B 78 */ mr r31, r3
+/* 802AC09C 002A7CFC 4B FC 26 C1 */ bl OSDisableInterrupts
+/* 802AC0A0 002A7D00 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AC0A4 002A7D04 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC0A8 002A7D08 7C 04 00 50 */ subf r0, r4, r0
+/* 802AC0AC 002A7D0C 7C 1A 07 75 */ extsb. r26, r0
+/* 802AC0B0 002A7D10 40 80 00 10 */ bge lbl_802AC0C0
+/* 802AC0B4 002A7D14 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AC0B8 002A7D18 7C 1A 02 14 */ add r0, r26, r0
+/* 802AC0BC 002A7D1C 7C 1A 07 74 */ extsb r26, r0
+lbl_802AC0C0:
+/* 802AC0C0 002A7D20 4B FC 26 C5 */ bl OSRestoreInterrupts
+/* 802AC0C4 002A7D24 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AC0C8 002A7D28 38 03 FF FF */ addi r0, r3, -1
+/* 802AC0CC 002A7D2C 7C 00 D0 40 */ cmplw r0, r26
+/* 802AC0D0 002A7D30 40 82 00 10 */ bne lbl_802AC0E0
+/* 802AC0D4 002A7D34 7F E3 FB 78 */ mr r3, r31
+/* 802AC0D8 002A7D38 4B FC 26 AD */ bl OSRestoreInterrupts
+/* 802AC0DC 002A7D3C 48 00 00 78 */ b lbl_802AC154
+lbl_802AC0E0:
+/* 802AC0E0 002A7D40 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC0E4 002A7D44 38 80 00 00 */ li r4, 0
+/* 802AC0E8 002A7D48 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC0EC 002A7D4C 38 A0 00 30 */ li r5, 0x30
+/* 802AC0F0 002A7D50 7C 00 07 74 */ extsb r0, r0
+/* 802AC0F4 002A7D54 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC0F8 002A7D58 7C 63 02 14 */ add r3, r3, r0
+/* 802AC0FC 002A7D5C 4B D5 80 09 */ bl memset
+/* 802AC100 002A7D60 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC104 002A7D64 38 81 01 D8 */ addi r4, r1, 0x1d8
+/* 802AC108 002A7D68 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC10C 002A7D6C 38 A0 00 30 */ li r5, 0x30
+/* 802AC110 002A7D70 7C 00 07 74 */ extsb r0, r0
+/* 802AC114 002A7D74 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC118 002A7D78 7C 63 02 14 */ add r3, r3, r0
+/* 802AC11C 002A7D7C 4B D5 7E E5 */ bl memcpy
+/* 802AC120 002A7D80 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC124 002A7D84 7F E3 FB 78 */ mr r3, r31
+/* 802AC128 002A7D88 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802AC12C 002A7D8C 7C 06 07 74 */ extsb r6, r0
+/* 802AC130 002A7D90 38 84 FF FF */ addi r4, r4, -1
+/* 802AC134 002A7D94 7C A4 30 50 */ subf r5, r4, r6
+/* 802AC138 002A7D98 38 06 00 01 */ addi r0, r6, 1
+/* 802AC13C 002A7D9C 7C 86 20 50 */ subf r4, r6, r4
+/* 802AC140 002A7DA0 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AC144 002A7DA4 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AC148 002A7DA8 7C 00 20 78 */ andc r0, r0, r4
+/* 802AC14C 002A7DAC 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802AC150 002A7DB0 4B FC 26 35 */ bl OSRestoreInterrupts
+lbl_802AC154:
+/* 802AC154 002A7DB4 88 6D AE 61 */ lbz r3, lbl_80640121-_SDA_BASE_(r13)
+/* 802AC158 002A7DB8 3C 80 04 B0 */ lis r4, 0x04B0001A@ha
+/* 802AC15C 002A7DBC 39 04 00 1A */ addi r8, r4, 0x04B0001A@l
+/* 802AC160 002A7DC0 38 A0 00 16 */ li r5, 0x16
+/* 802AC164 002A7DC4 38 E3 FF FF */ addi r7, r3, -1
+/* 802AC168 002A7DC8 3C 80 80 40 */ lis r4, lbl_803FDA98@ha
+/* 802AC16C 002A7DCC 38 60 00 02 */ li r3, 2
+/* 802AC170 002A7DD0 38 C0 00 15 */ li r6, 0x15
+/* 802AC174 002A7DD4 38 00 00 00 */ li r0, 0
+/* 802AC178 002A7DD8 98 61 00 0C */ stb r3, 0xc(r1)
+/* 802AC17C 002A7DDC 54 E7 08 3C */ slwi r7, r7, 1
+/* 802AC180 002A7DE0 38 84 DA 98 */ addi r4, r4, lbl_803FDA98@l
+/* 802AC184 002A7DE4 90 A1 01 48 */ stw r5, 0x148(r1)
+/* 802AC188 002A7DE8 7F 44 3A 14 */ add r26, r4, r7
+/* 802AC18C 002A7DEC 38 61 01 4C */ addi r3, r1, 0x14c
+/* 802AC190 002A7DF0 38 81 00 18 */ addi r4, r1, 0x18
+/* 802AC194 002A7DF4 91 01 00 18 */ stw r8, 0x18(r1)
+/* 802AC198 002A7DF8 38 A0 00 04 */ li r5, 4
+/* 802AC19C 002A7DFC B0 C1 01 62 */ sth r6, 0x162(r1)
+/* 802AC1A0 002A7E00 90 01 01 74 */ stw r0, 0x174(r1)
+/* 802AC1A4 002A7E04 4B D5 7E 5D */ bl memcpy
+/* 802AC1A8 002A7E08 38 61 01 50 */ addi r3, r1, 0x150
+/* 802AC1AC 002A7E0C 38 81 00 0C */ addi r4, r1, 0xc
+/* 802AC1B0 002A7E10 38 A0 00 01 */ li r5, 1
+/* 802AC1B4 002A7E14 4B D5 7E 4D */ bl memcpy
+/* 802AC1B8 002A7E18 7F 44 D3 78 */ mr r4, r26
+/* 802AC1BC 002A7E1C 38 61 01 51 */ addi r3, r1, 0x151
+/* 802AC1C0 002A7E20 38 A0 00 02 */ li r5, 2
+/* 802AC1C4 002A7E24 4B D5 7E 3D */ bl memcpy
+/* 802AC1C8 002A7E28 83 E1 01 48 */ lwz r31, 0x148(r1)
+/* 802AC1CC 002A7E2C 81 81 01 4C */ lwz r12, 0x14c(r1)
+/* 802AC1D0 002A7E30 81 61 01 50 */ lwz r11, 0x150(r1)
+/* 802AC1D4 002A7E34 81 41 01 54 */ lwz r10, 0x154(r1)
+/* 802AC1D8 002A7E38 81 21 01 58 */ lwz r9, 0x158(r1)
+/* 802AC1DC 002A7E3C 81 01 01 5C */ lwz r8, 0x15c(r1)
+/* 802AC1E0 002A7E40 80 E1 01 60 */ lwz r7, 0x160(r1)
+/* 802AC1E4 002A7E44 80 C1 01 64 */ lwz r6, 0x164(r1)
+/* 802AC1E8 002A7E48 80 A1 01 68 */ lwz r5, 0x168(r1)
+/* 802AC1EC 002A7E4C 80 81 01 6C */ lwz r4, 0x16c(r1)
+/* 802AC1F0 002A7E50 80 61 01 70 */ lwz r3, 0x170(r1)
+/* 802AC1F4 002A7E54 80 01 01 74 */ lwz r0, 0x174(r1)
+/* 802AC1F8 002A7E58 93 E1 01 78 */ stw r31, 0x178(r1)
+/* 802AC1FC 002A7E5C 91 81 01 7C */ stw r12, 0x17c(r1)
+/* 802AC200 002A7E60 91 61 01 80 */ stw r11, 0x180(r1)
+/* 802AC204 002A7E64 91 41 01 84 */ stw r10, 0x184(r1)
+/* 802AC208 002A7E68 91 21 01 88 */ stw r9, 0x188(r1)
+/* 802AC20C 002A7E6C 91 01 01 8C */ stw r8, 0x18c(r1)
+/* 802AC210 002A7E70 90 E1 01 90 */ stw r7, 0x190(r1)
+/* 802AC214 002A7E74 90 C1 01 94 */ stw r6, 0x194(r1)
+/* 802AC218 002A7E78 90 A1 01 98 */ stw r5, 0x198(r1)
+/* 802AC21C 002A7E7C 90 81 01 9C */ stw r4, 0x19c(r1)
+/* 802AC220 002A7E80 90 61 01 A0 */ stw r3, 0x1a0(r1)
+/* 802AC224 002A7E84 90 01 01 A4 */ stw r0, 0x1a4(r1)
+/* 802AC228 002A7E88 4B FC 25 35 */ bl OSDisableInterrupts
+/* 802AC22C 002A7E8C 7C 7F 1B 78 */ mr r31, r3
+/* 802AC230 002A7E90 4B FC 25 2D */ bl OSDisableInterrupts
+/* 802AC234 002A7E94 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AC238 002A7E98 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC23C 002A7E9C 7C 04 00 50 */ subf r0, r4, r0
+/* 802AC240 002A7EA0 7C 1A 07 75 */ extsb. r26, r0
+/* 802AC244 002A7EA4 40 80 00 10 */ bge lbl_802AC254
+/* 802AC248 002A7EA8 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AC24C 002A7EAC 7C 1A 02 14 */ add r0, r26, r0
+/* 802AC250 002A7EB0 7C 1A 07 74 */ extsb r26, r0
+lbl_802AC254:
+/* 802AC254 002A7EB4 4B FC 25 31 */ bl OSRestoreInterrupts
+/* 802AC258 002A7EB8 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AC25C 002A7EBC 38 03 FF FF */ addi r0, r3, -1
+/* 802AC260 002A7EC0 7C 00 D0 40 */ cmplw r0, r26
+/* 802AC264 002A7EC4 40 82 00 10 */ bne lbl_802AC274
+/* 802AC268 002A7EC8 7F E3 FB 78 */ mr r3, r31
+/* 802AC26C 002A7ECC 4B FC 25 19 */ bl OSRestoreInterrupts
+/* 802AC270 002A7ED0 48 00 00 78 */ b lbl_802AC2E8
+lbl_802AC274:
+/* 802AC274 002A7ED4 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC278 002A7ED8 38 80 00 00 */ li r4, 0
+/* 802AC27C 002A7EDC 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC280 002A7EE0 38 A0 00 30 */ li r5, 0x30
+/* 802AC284 002A7EE4 7C 00 07 74 */ extsb r0, r0
+/* 802AC288 002A7EE8 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC28C 002A7EEC 7C 63 02 14 */ add r3, r3, r0
+/* 802AC290 002A7EF0 4B D5 7E 75 */ bl memset
+/* 802AC294 002A7EF4 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC298 002A7EF8 38 81 01 78 */ addi r4, r1, 0x178
+/* 802AC29C 002A7EFC 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC2A0 002A7F00 38 A0 00 30 */ li r5, 0x30
+/* 802AC2A4 002A7F04 7C 00 07 74 */ extsb r0, r0
+/* 802AC2A8 002A7F08 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC2AC 002A7F0C 7C 63 02 14 */ add r3, r3, r0
+/* 802AC2B0 002A7F10 4B D5 7D 51 */ bl memcpy
+/* 802AC2B4 002A7F14 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC2B8 002A7F18 7F E3 FB 78 */ mr r3, r31
+/* 802AC2BC 002A7F1C 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802AC2C0 002A7F20 7C 06 07 74 */ extsb r6, r0
+/* 802AC2C4 002A7F24 38 84 FF FF */ addi r4, r4, -1
+/* 802AC2C8 002A7F28 7C A4 30 50 */ subf r5, r4, r6
+/* 802AC2CC 002A7F2C 38 06 00 01 */ addi r0, r6, 1
+/* 802AC2D0 002A7F30 7C 86 20 50 */ subf r4, r6, r4
+/* 802AC2D4 002A7F34 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AC2D8 002A7F38 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AC2DC 002A7F3C 7C 00 20 78 */ andc r0, r0, r4
+/* 802AC2E0 002A7F40 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802AC2E4 002A7F44 4B FC 24 A1 */ bl OSRestoreInterrupts
+lbl_802AC2E8:
+/* 802AC2E8 002A7F48 3C 60 04 B0 */ lis r3, 0x04B00033@ha
+/* 802AC2EC 002A7F4C 39 00 00 01 */ li r8, 1
+/* 802AC2F0 002A7F50 39 23 00 33 */ addi r9, r3, 0x04B00033@l
+/* 802AC2F4 002A7F54 38 E0 00 16 */ li r7, 0x16
+/* 802AC2F8 002A7F58 38 C0 00 15 */ li r6, 0x15
+/* 802AC2FC 002A7F5C 38 00 00 00 */ li r0, 0
+/* 802AC300 002A7F60 9B 61 00 0B */ stb r27, 0xb(r1)
+/* 802AC304 002A7F64 38 61 01 1C */ addi r3, r1, 0x11c
+/* 802AC308 002A7F68 38 81 00 14 */ addi r4, r1, 0x14
+/* 802AC30C 002A7F6C 38 A0 00 04 */ li r5, 4
+/* 802AC310 002A7F70 91 21 00 14 */ stw r9, 0x14(r1)
+/* 802AC314 002A7F74 99 01 00 0A */ stb r8, 0xa(r1)
+/* 802AC318 002A7F78 90 E1 01 18 */ stw r7, 0x118(r1)
+/* 802AC31C 002A7F7C B0 C1 01 32 */ sth r6, 0x132(r1)
+/* 802AC320 002A7F80 90 01 01 44 */ stw r0, 0x144(r1)
+/* 802AC324 002A7F84 4B D5 7C DD */ bl memcpy
+/* 802AC328 002A7F88 38 61 01 20 */ addi r3, r1, 0x120
+/* 802AC32C 002A7F8C 38 81 00 0A */ addi r4, r1, 0xa
+/* 802AC330 002A7F90 38 A0 00 01 */ li r5, 1
+/* 802AC334 002A7F94 4B D5 7C CD */ bl memcpy
+/* 802AC338 002A7F98 38 61 01 21 */ addi r3, r1, 0x121
+/* 802AC33C 002A7F9C 38 81 00 0B */ addi r4, r1, 0xb
+/* 802AC340 002A7FA0 38 A0 00 01 */ li r5, 1
+/* 802AC344 002A7FA4 4B D5 7C BD */ bl memcpy
+/* 802AC348 002A7FA8 83 61 01 18 */ lwz r27, 0x118(r1)
+/* 802AC34C 002A7FAC 81 81 01 1C */ lwz r12, 0x11c(r1)
+/* 802AC350 002A7FB0 81 61 01 20 */ lwz r11, 0x120(r1)
+/* 802AC354 002A7FB4 81 41 01 24 */ lwz r10, 0x124(r1)
+/* 802AC358 002A7FB8 81 21 01 28 */ lwz r9, 0x128(r1)
+/* 802AC35C 002A7FBC 81 01 01 2C */ lwz r8, 0x12c(r1)
+/* 802AC360 002A7FC0 80 E1 01 30 */ lwz r7, 0x130(r1)
+/* 802AC364 002A7FC4 80 C1 01 34 */ lwz r6, 0x134(r1)
+/* 802AC368 002A7FC8 80 A1 01 38 */ lwz r5, 0x138(r1)
+/* 802AC36C 002A7FCC 80 81 01 3C */ lwz r4, 0x13c(r1)
+/* 802AC370 002A7FD0 80 61 01 40 */ lwz r3, 0x140(r1)
+/* 802AC374 002A7FD4 80 01 01 44 */ lwz r0, 0x144(r1)
+/* 802AC378 002A7FD8 93 61 00 E8 */ stw r27, 0xe8(r1)
+/* 802AC37C 002A7FDC 91 81 00 EC */ stw r12, 0xec(r1)
+/* 802AC380 002A7FE0 91 61 00 F0 */ stw r11, 0xf0(r1)
+/* 802AC384 002A7FE4 91 41 00 F4 */ stw r10, 0xf4(r1)
+/* 802AC388 002A7FE8 91 21 00 F8 */ stw r9, 0xf8(r1)
+/* 802AC38C 002A7FEC 91 01 00 FC */ stw r8, 0xfc(r1)
+/* 802AC390 002A7FF0 90 E1 01 00 */ stw r7, 0x100(r1)
+/* 802AC394 002A7FF4 90 C1 01 04 */ stw r6, 0x104(r1)
+/* 802AC398 002A7FF8 90 A1 01 08 */ stw r5, 0x108(r1)
+/* 802AC39C 002A7FFC 90 81 01 0C */ stw r4, 0x10c(r1)
+/* 802AC3A0 002A8000 90 61 01 10 */ stw r3, 0x110(r1)
+/* 802AC3A4 002A8004 90 01 01 14 */ stw r0, 0x114(r1)
+/* 802AC3A8 002A8008 4B FC 23 B5 */ bl OSDisableInterrupts
+/* 802AC3AC 002A800C 7C 7F 1B 78 */ mr r31, r3
+/* 802AC3B0 002A8010 4B FC 23 AD */ bl OSDisableInterrupts
+/* 802AC3B4 002A8014 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AC3B8 002A8018 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC3BC 002A801C 7C 04 00 50 */ subf r0, r4, r0
+/* 802AC3C0 002A8020 7C 1A 07 75 */ extsb. r26, r0
+/* 802AC3C4 002A8024 40 80 00 10 */ bge lbl_802AC3D4
+/* 802AC3C8 002A8028 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AC3CC 002A802C 7C 1A 02 14 */ add r0, r26, r0
+/* 802AC3D0 002A8030 7C 1A 07 74 */ extsb r26, r0
+lbl_802AC3D4:
+/* 802AC3D4 002A8034 4B FC 23 B1 */ bl OSRestoreInterrupts
+/* 802AC3D8 002A8038 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AC3DC 002A803C 38 03 FF FF */ addi r0, r3, -1
+/* 802AC3E0 002A8040 7C 00 D0 40 */ cmplw r0, r26
+/* 802AC3E4 002A8044 40 82 00 10 */ bne lbl_802AC3F4
+/* 802AC3E8 002A8048 7F E3 FB 78 */ mr r3, r31
+/* 802AC3EC 002A804C 4B FC 23 99 */ bl OSRestoreInterrupts
+/* 802AC3F0 002A8050 48 00 00 78 */ b lbl_802AC468
+lbl_802AC3F4:
+/* 802AC3F4 002A8054 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC3F8 002A8058 38 80 00 00 */ li r4, 0
+/* 802AC3FC 002A805C 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC400 002A8060 38 A0 00 30 */ li r5, 0x30
+/* 802AC404 002A8064 7C 00 07 74 */ extsb r0, r0
+/* 802AC408 002A8068 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC40C 002A806C 7C 63 02 14 */ add r3, r3, r0
+/* 802AC410 002A8070 4B D5 7C F5 */ bl memset
+/* 802AC414 002A8074 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC418 002A8078 38 81 00 E8 */ addi r4, r1, 0xe8
+/* 802AC41C 002A807C 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC420 002A8080 38 A0 00 30 */ li r5, 0x30
+/* 802AC424 002A8084 7C 00 07 74 */ extsb r0, r0
+/* 802AC428 002A8088 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC42C 002A808C 7C 63 02 14 */ add r3, r3, r0
+/* 802AC430 002A8090 4B D5 7B D1 */ bl memcpy
+/* 802AC434 002A8094 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC438 002A8098 7F E3 FB 78 */ mr r3, r31
+/* 802AC43C 002A809C 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802AC440 002A80A0 7C 06 07 74 */ extsb r6, r0
+/* 802AC444 002A80A4 38 84 FF FF */ addi r4, r4, -1
+/* 802AC448 002A80A8 7C A4 30 50 */ subf r5, r4, r6
+/* 802AC44C 002A80AC 38 06 00 01 */ addi r0, r6, 1
+/* 802AC450 002A80B0 7C 86 20 50 */ subf r4, r6, r4
+/* 802AC454 002A80B4 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AC458 002A80B8 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AC45C 002A80BC 7C 00 20 78 */ andc r0, r0, r4
+/* 802AC460 002A80C0 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802AC464 002A80C4 4B FC 23 21 */ bl OSRestoreInterrupts
+lbl_802AC468:
+/* 802AC468 002A80C8 3C 60 04 B0 */ lis r3, 0x04B00030@ha
+/* 802AC46C 002A80CC 3C C0 80 2B */ lis r6, __dpdCb@ha
+/* 802AC470 002A80D0 39 23 00 30 */ addi r9, r3, 0x04B00030@l
+/* 802AC474 002A80D4 39 00 00 01 */ li r8, 1
+/* 802AC478 002A80D8 38 60 00 08 */ li r3, 8
+/* 802AC47C 002A80DC 38 C6 B6 CC */ addi r6, r6, __dpdCb@l
+/* 802AC480 002A80E0 38 E0 00 16 */ li r7, 0x16
+/* 802AC484 002A80E4 38 00 00 15 */ li r0, 0x15
+/* 802AC488 002A80E8 98 61 00 09 */ stb r3, 9(r1)
+/* 802AC48C 002A80EC 38 61 00 BC */ addi r3, r1, 0xbc
+/* 802AC490 002A80F0 38 81 00 10 */ addi r4, r1, 0x10
+/* 802AC494 002A80F4 38 A0 00 04 */ li r5, 4
+/* 802AC498 002A80F8 91 21 00 10 */ stw r9, 0x10(r1)
+/* 802AC49C 002A80FC 99 01 00 08 */ stb r8, 8(r1)
+/* 802AC4A0 002A8100 90 E1 00 B8 */ stw r7, 0xb8(r1)
+/* 802AC4A4 002A8104 B0 01 00 D2 */ sth r0, 0xd2(r1)
+/* 802AC4A8 002A8108 90 C1 00 E4 */ stw r6, 0xe4(r1)
+/* 802AC4AC 002A810C 4B D5 7B 55 */ bl memcpy
+/* 802AC4B0 002A8110 38 61 00 C0 */ addi r3, r1, 0xc0
+/* 802AC4B4 002A8114 38 81 00 08 */ addi r4, r1, 8
+/* 802AC4B8 002A8118 38 A0 00 01 */ li r5, 1
+/* 802AC4BC 002A811C 4B D5 7B 45 */ bl memcpy
+/* 802AC4C0 002A8120 38 61 00 C1 */ addi r3, r1, 0xc1
+/* 802AC4C4 002A8124 38 81 00 09 */ addi r4, r1, 9
+/* 802AC4C8 002A8128 38 A0 00 01 */ li r5, 1
+/* 802AC4CC 002A812C 4B D5 7B 35 */ bl memcpy
+/* 802AC4D0 002A8130 83 61 00 B8 */ lwz r27, 0xb8(r1)
+/* 802AC4D4 002A8134 81 81 00 BC */ lwz r12, 0xbc(r1)
+/* 802AC4D8 002A8138 81 61 00 C0 */ lwz r11, 0xc0(r1)
+/* 802AC4DC 002A813C 81 41 00 C4 */ lwz r10, 0xc4(r1)
+/* 802AC4E0 002A8140 81 21 00 C8 */ lwz r9, 0xc8(r1)
+/* 802AC4E4 002A8144 81 01 00 CC */ lwz r8, 0xcc(r1)
+/* 802AC4E8 002A8148 80 E1 00 D0 */ lwz r7, 0xd0(r1)
+/* 802AC4EC 002A814C 80 C1 00 D4 */ lwz r6, 0xd4(r1)
+/* 802AC4F0 002A8150 80 A1 00 D8 */ lwz r5, 0xd8(r1)
+/* 802AC4F4 002A8154 80 81 00 DC */ lwz r4, 0xdc(r1)
+/* 802AC4F8 002A8158 80 61 00 E0 */ lwz r3, 0xe0(r1)
+/* 802AC4FC 002A815C 80 01 00 E4 */ lwz r0, 0xe4(r1)
+/* 802AC500 002A8160 93 61 00 88 */ stw r27, 0x88(r1)
+/* 802AC504 002A8164 91 81 00 8C */ stw r12, 0x8c(r1)
+/* 802AC508 002A8168 91 61 00 90 */ stw r11, 0x90(r1)
+/* 802AC50C 002A816C 91 41 00 94 */ stw r10, 0x94(r1)
+/* 802AC510 002A8170 91 21 00 98 */ stw r9, 0x98(r1)
+/* 802AC514 002A8174 91 01 00 9C */ stw r8, 0x9c(r1)
+/* 802AC518 002A8178 90 E1 00 A0 */ stw r7, 0xa0(r1)
+/* 802AC51C 002A817C 90 C1 00 A4 */ stw r6, 0xa4(r1)
+/* 802AC520 002A8180 90 A1 00 A8 */ stw r5, 0xa8(r1)
+/* 802AC524 002A8184 90 81 00 AC */ stw r4, 0xac(r1)
+/* 802AC528 002A8188 90 61 00 B0 */ stw r3, 0xb0(r1)
+/* 802AC52C 002A818C 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 802AC530 002A8190 4B FC 22 2D */ bl OSDisableInterrupts
+/* 802AC534 002A8194 7C 7F 1B 78 */ mr r31, r3
+/* 802AC538 002A8198 4B FC 22 25 */ bl OSDisableInterrupts
+/* 802AC53C 002A819C 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AC540 002A81A0 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC544 002A81A4 7C 04 00 50 */ subf r0, r4, r0
+/* 802AC548 002A81A8 7C 1A 07 75 */ extsb. r26, r0
+/* 802AC54C 002A81AC 40 80 00 10 */ bge lbl_802AC55C
+/* 802AC550 002A81B0 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AC554 002A81B4 7C 1A 02 14 */ add r0, r26, r0
+/* 802AC558 002A81B8 7C 1A 07 74 */ extsb r26, r0
+lbl_802AC55C:
+/* 802AC55C 002A81BC 4B FC 22 29 */ bl OSRestoreInterrupts
+/* 802AC560 002A81C0 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AC564 002A81C4 38 03 FF FF */ addi r0, r3, -1
+/* 802AC568 002A81C8 7C 00 D0 40 */ cmplw r0, r26
+/* 802AC56C 002A81CC 40 82 00 10 */ bne lbl_802AC57C
+/* 802AC570 002A81D0 7F E3 FB 78 */ mr r3, r31
+/* 802AC574 002A81D4 4B FC 22 11 */ bl OSRestoreInterrupts
+/* 802AC578 002A81D8 48 00 00 78 */ b lbl_802AC5F0
+lbl_802AC57C:
+/* 802AC57C 002A81DC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC580 002A81E0 38 80 00 00 */ li r4, 0
+/* 802AC584 002A81E4 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC588 002A81E8 38 A0 00 30 */ li r5, 0x30
+/* 802AC58C 002A81EC 7C 00 07 74 */ extsb r0, r0
+/* 802AC590 002A81F0 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC594 002A81F4 7C 63 02 14 */ add r3, r3, r0
+/* 802AC598 002A81F8 4B D5 7B 6D */ bl memset
+/* 802AC59C 002A81FC 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC5A0 002A8200 38 81 00 88 */ addi r4, r1, 0x88
+/* 802AC5A4 002A8204 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC5A8 002A8208 38 A0 00 30 */ li r5, 0x30
+/* 802AC5AC 002A820C 7C 00 07 74 */ extsb r0, r0
+/* 802AC5B0 002A8210 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC5B4 002A8214 7C 63 02 14 */ add r3, r3, r0
+/* 802AC5B8 002A8218 4B D5 7A 49 */ bl memcpy
+/* 802AC5BC 002A821C 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC5C0 002A8220 7F E3 FB 78 */ mr r3, r31
+/* 802AC5C4 002A8224 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802AC5C8 002A8228 7C 06 07 74 */ extsb r6, r0
+/* 802AC5CC 002A822C 38 84 FF FF */ addi r4, r4, -1
+/* 802AC5D0 002A8230 7C A4 30 50 */ subf r5, r4, r6
+/* 802AC5D4 002A8234 38 06 00 01 */ addi r0, r6, 1
+/* 802AC5D8 002A8238 7C 86 20 50 */ subf r4, r6, r4
+/* 802AC5DC 002A823C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AC5E0 002A8240 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AC5E4 002A8244 7C 00 20 78 */ andc r0, r0, r4
+/* 802AC5E8 002A8248 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802AC5EC 002A824C 4B FC 21 99 */ bl OSRestoreInterrupts
+lbl_802AC5F0:
+/* 802AC5F0 002A8250 39 60 00 00 */ li r11, 0
+/* 802AC5F4 002A8254 38 00 00 01 */ li r0, 1
+/* 802AC5F8 002A8258 B0 01 00 42 */ sth r0, 0x42(r1)
+/* 802AC5FC 002A825C 39 80 00 15 */ li r12, 0x15
+/* 802AC600 002A8260 81 21 00 30 */ lwz r9, 0x30(r1)
+/* 802AC604 002A8264 99 61 00 2C */ stb r11, 0x2c(r1)
+/* 802AC608 002A8268 81 01 00 34 */ lwz r8, 0x34(r1)
+/* 802AC60C 002A826C 81 41 00 2C */ lwz r10, 0x2c(r1)
+/* 802AC610 002A8270 80 E1 00 38 */ lwz r7, 0x38(r1)
+/* 802AC614 002A8274 80 C1 00 3C */ lwz r6, 0x3c(r1)
+/* 802AC618 002A8278 80 A1 00 40 */ lwz r5, 0x40(r1)
+/* 802AC61C 002A827C 80 81 00 44 */ lwz r4, 0x44(r1)
+/* 802AC620 002A8280 80 61 00 48 */ lwz r3, 0x48(r1)
+/* 802AC624 002A8284 80 01 00 4C */ lwz r0, 0x4c(r1)
+/* 802AC628 002A8288 91 81 00 28 */ stw r12, 0x28(r1)
+/* 802AC62C 002A828C 93 81 00 54 */ stw r28, 0x54(r1)
+/* 802AC630 002A8290 91 61 00 50 */ stw r11, 0x50(r1)
+/* 802AC634 002A8294 91 81 00 58 */ stw r12, 0x58(r1)
+/* 802AC638 002A8298 91 41 00 5C */ stw r10, 0x5c(r1)
+/* 802AC63C 002A829C 91 21 00 60 */ stw r9, 0x60(r1)
+/* 802AC640 002A82A0 91 01 00 64 */ stw r8, 0x64(r1)
+/* 802AC644 002A82A4 90 E1 00 68 */ stw r7, 0x68(r1)
+/* 802AC648 002A82A8 90 C1 00 6C */ stw r6, 0x6c(r1)
+/* 802AC64C 002A82AC 90 A1 00 70 */ stw r5, 0x70(r1)
+/* 802AC650 002A82B0 90 81 00 74 */ stw r4, 0x74(r1)
+/* 802AC654 002A82B4 90 61 00 78 */ stw r3, 0x78(r1)
+/* 802AC658 002A82B8 90 01 00 7C */ stw r0, 0x7c(r1)
+/* 802AC65C 002A82BC 91 61 00 80 */ stw r11, 0x80(r1)
+/* 802AC660 002A82C0 93 81 00 84 */ stw r28, 0x84(r1)
+/* 802AC664 002A82C4 4B FC 20 F9 */ bl OSDisableInterrupts
+/* 802AC668 002A82C8 7C 7F 1B 78 */ mr r31, r3
+/* 802AC66C 002A82CC 4B FC 20 F1 */ bl OSDisableInterrupts
+/* 802AC670 002A82D0 88 9D 01 60 */ lbz r4, 0x160(r29)
+/* 802AC674 002A82D4 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC678 002A82D8 7C 04 00 50 */ subf r0, r4, r0
+/* 802AC67C 002A82DC 7C 1A 07 75 */ extsb. r26, r0
+/* 802AC680 002A82E0 40 80 00 10 */ bge lbl_802AC690
+/* 802AC684 002A82E4 80 1D 01 68 */ lwz r0, 0x168(r29)
+/* 802AC688 002A82E8 7C 1A 02 14 */ add r0, r26, r0
+/* 802AC68C 002A82EC 7C 1A 07 74 */ extsb r26, r0
+lbl_802AC690:
+/* 802AC690 002A82F0 4B FC 20 F5 */ bl OSRestoreInterrupts
+/* 802AC694 002A82F4 80 7D 01 68 */ lwz r3, 0x168(r29)
+/* 802AC698 002A82F8 38 03 FF FF */ addi r0, r3, -1
+/* 802AC69C 002A82FC 7C 00 D0 40 */ cmplw r0, r26
+/* 802AC6A0 002A8300 40 82 00 10 */ bne lbl_802AC6B0
+/* 802AC6A4 002A8304 7F E3 FB 78 */ mr r3, r31
+/* 802AC6A8 002A8308 4B FC 20 DD */ bl OSRestoreInterrupts
+/* 802AC6AC 002A830C 48 00 00 78 */ b lbl_802AC724
+lbl_802AC6B0:
+/* 802AC6B0 002A8310 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC6B4 002A8314 38 80 00 00 */ li r4, 0
+/* 802AC6B8 002A8318 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC6BC 002A831C 38 A0 00 30 */ li r5, 0x30
+/* 802AC6C0 002A8320 7C 00 07 74 */ extsb r0, r0
+/* 802AC6C4 002A8324 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC6C8 002A8328 7C 63 02 14 */ add r3, r3, r0
+/* 802AC6CC 002A832C 4B D5 7A 39 */ bl memset
+/* 802AC6D0 002A8330 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC6D4 002A8334 38 81 00 58 */ addi r4, r1, 0x58
+/* 802AC6D8 002A8338 80 7D 01 64 */ lwz r3, 0x164(r29)
+/* 802AC6DC 002A833C 38 A0 00 30 */ li r5, 0x30
+/* 802AC6E0 002A8340 7C 00 07 74 */ extsb r0, r0
+/* 802AC6E4 002A8344 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AC6E8 002A8348 7C 63 02 14 */ add r3, r3, r0
+/* 802AC6EC 002A834C 4B D5 79 15 */ bl memcpy
+/* 802AC6F0 002A8350 88 1D 01 61 */ lbz r0, 0x161(r29)
+/* 802AC6F4 002A8354 7F E3 FB 78 */ mr r3, r31
+/* 802AC6F8 002A8358 80 9D 01 68 */ lwz r4, 0x168(r29)
+/* 802AC6FC 002A835C 7C 06 07 74 */ extsb r6, r0
+/* 802AC700 002A8360 38 84 FF FF */ addi r4, r4, -1
+/* 802AC704 002A8364 7C A4 30 50 */ subf r5, r4, r6
+/* 802AC708 002A8368 38 06 00 01 */ addi r0, r6, 1
+/* 802AC70C 002A836C 7C 86 20 50 */ subf r4, r6, r4
+/* 802AC710 002A8370 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AC714 002A8374 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AC718 002A8378 7C 00 20 78 */ andc r0, r0, r4
+/* 802AC71C 002A837C 98 1D 01 61 */ stb r0, 0x161(r29)
+/* 802AC720 002A8380 4B FC 20 65 */ bl OSRestoreInterrupts
+lbl_802AC724:
+/* 802AC724 002A8384 7F C3 F3 78 */ mr r3, r30
+/* 802AC728 002A8388 4B FC 20 5D */ bl OSRestoreInterrupts
+/* 802AC72C 002A838C 38 60 00 00 */ li r3, 0
+/* 802AC730 002A8390 48 00 00 30 */ b lbl_802AC760
+lbl_802AC734:
+/* 802AC734 002A8394 7F C3 F3 78 */ mr r3, r30
+/* 802AC738 002A8398 3B 00 FF FE */ li r24, -2
+/* 802AC73C 002A839C 4B FC 20 49 */ bl OSRestoreInterrupts
+lbl_802AC740:
+/* 802AC740 002A83A0 2C 1C 00 00 */ cmpwi r28, 0
+/* 802AC744 002A83A4 41 82 00 18 */ beq lbl_802AC75C
+/* 802AC748 002A83A8 7F 8C E3 78 */ mr r12, r28
+/* 802AC74C 002A83AC 7F E3 FB 78 */ mr r3, r31
+/* 802AC750 002A83B0 7F 04 C3 78 */ mr r4, r24
+/* 802AC754 002A83B4 7D 89 03 A6 */ mtctr r12
+/* 802AC758 002A83B8 4E 80 04 21 */ bctrl
+lbl_802AC75C:
+/* 802AC75C 002A83BC 7F 03 C3 78 */ mr r3, r24
+lbl_802AC760:
+/* 802AC760 002A83C0 39 61 04 70 */ addi r11, r1, 0x470
+/* 802AC764 002A83C4 4B F1 AA 05 */ bl _restgpr_24
+/* 802AC768 002A83C8 80 01 04 74 */ lwz r0, 0x474(r1)
+/* 802AC76C 002A83CC 7C 08 03 A6 */ mtlr r0
+/* 802AC770 002A83D0 38 21 04 70 */ addi r1, r1, 0x470
+/* 802AC774 002A83D4 4E 80 00 20 */ blr
+
+.global __SendData
+__SendData:
+/* 802AC778 002A83D8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802AC77C 002A83DC 7C 08 02 A6 */ mflr r0
+/* 802AC780 002A83E0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802AC784 002A83E4 39 61 00 40 */ addi r11, r1, 0x40
+/* 802AC788 002A83E8 4B F1 A9 91 */ bl _savegpr_23
+/* 802AC78C 002A83EC 80 04 00 00 */ lwz r0, 0(r4)
+/* 802AC790 002A83F0 7C 77 1B 78 */ mr r23, r3
+/* 802AC794 002A83F4 A3 24 00 1A */ lhz r25, 0x1a(r4)
+/* 802AC798 002A83F8 7C 98 23 78 */ mr r24, r4
+/* 802AC79C 002A83FC 54 1B 06 3E */ clrlwi r27, r0, 0x18
+/* 802AC7A0 002A8400 3B 44 00 04 */ addi r26, r4, 4
+/* 802AC7A4 002A8404 4B FC 1F B9 */ bl OSDisableInterrupts
+/* 802AC7A8 002A8408 3C 80 80 53 */ lis r4, lbl_80536D70@ha
+/* 802AC7AC 002A840C 56 E0 10 3A */ slwi r0, r23, 2
+/* 802AC7B0 002A8410 38 84 6D 70 */ addi r4, r4, lbl_80536D70@l
+/* 802AC7B4 002A8414 7F 84 00 2E */ lwzx r28, r4, r0
+/* 802AC7B8 002A8418 8B BC 08 C3 */ lbz r29, 0x8c3(r28)
+/* 802AC7BC 002A841C 82 FC 08 BC */ lwz r23, 0x8bc(r28)
+/* 802AC7C0 002A8420 7F A0 07 75 */ extsb. r0, r29
+/* 802AC7C4 002A8424 40 80 00 0C */ bge lbl_802AC7D0
+/* 802AC7C8 002A8428 4B FC 1F BD */ bl OSRestoreInterrupts
+/* 802AC7CC 002A842C 48 00 01 C8 */ b lbl_802AC994
+lbl_802AC7D0:
+/* 802AC7D0 002A8430 38 00 FF FE */ li r0, -2
+/* 802AC7D4 002A8434 90 1C 08 BC */ stw r0, 0x8bc(r28)
+/* 802AC7D8 002A8438 80 9C 08 D4 */ lwz r4, 0x8d4(r28)
+/* 802AC7DC 002A843C 80 0D AE 5C */ lwz r0, lbl_8064011C-_SDA_BASE_(r13)
+/* 802AC7E0 002A8440 7C 9E 00 38 */ and r30, r4, r0
+/* 802AC7E4 002A8444 4B FC 1F A1 */ bl OSRestoreInterrupts
+/* 802AC7E8 002A8448 28 1B 00 10 */ cmplwi r27, 0x10
+/* 802AC7EC 002A844C 40 82 00 14 */ bne lbl_802AC800
+/* 802AC7F0 002A8450 4B FC 1F 6D */ bl OSDisableInterrupts
+/* 802AC7F4 002A8454 92 FC 08 BC */ stw r23, 0x8bc(r28)
+/* 802AC7F8 002A8458 4B FC 1F 8D */ bl OSRestoreInterrupts
+/* 802AC7FC 002A845C 48 00 01 14 */ b lbl_802AC910
+lbl_802AC800:
+/* 802AC800 002A8460 28 1B 00 18 */ cmplwi r27, 0x18
+/* 802AC804 002A8464 40 82 00 20 */ bne lbl_802AC824
+/* 802AC808 002A8468 4B FC 1F 55 */ bl OSDisableInterrupts
+/* 802AC80C 002A846C 92 FC 08 BC */ stw r23, 0x8bc(r28)
+/* 802AC810 002A8470 88 9C 08 CF */ lbz r4, 0x8cf(r28)
+/* 802AC814 002A8474 38 04 FF FF */ addi r0, r4, -1
+/* 802AC818 002A8478 98 1C 08 CF */ stb r0, 0x8cf(r28)
+/* 802AC81C 002A847C 4B FC 1F 69 */ bl OSRestoreInterrupts
+/* 802AC820 002A8480 48 00 00 F0 */ b lbl_802AC910
+lbl_802AC824:
+/* 802AC824 002A8484 4B FC 1F 39 */ bl OSDisableInterrupts
+/* 802AC828 002A8488 2C 1B 00 17 */ cmpwi r27, 0x17
+/* 802AC82C 002A848C 7C 7F 1B 78 */ mr r31, r3
+/* 802AC830 002A8490 41 82 00 24 */ beq lbl_802AC854
+/* 802AC834 002A8494 40 80 00 14 */ bge lbl_802AC848
+/* 802AC838 002A8498 2C 1B 00 15 */ cmpwi r27, 0x15
+/* 802AC83C 002A849C 41 82 00 3C */ beq lbl_802AC878
+/* 802AC840 002A84A0 40 80 00 94 */ bge lbl_802AC8D4
+/* 802AC844 002A84A4 48 00 00 84 */ b lbl_802AC8C8
+lbl_802AC848:
+/* 802AC848 002A84A8 2C 1B 00 FF */ cmpwi r27, 0xff
+/* 802AC84C 002A84AC 41 82 00 44 */ beq lbl_802AC890
+/* 802AC850 002A84B0 48 00 00 78 */ b lbl_802AC8C8
+lbl_802AC854:
+/* 802AC854 002A84B4 38 00 00 00 */ li r0, 0
+/* 802AC858 002A84B8 90 1C 09 7C */ stw r0, 0x97c(r28)
+/* 802AC85C 002A84BC 80 18 00 24 */ lwz r0, 0x24(r24)
+/* 802AC860 002A84C0 90 1C 09 78 */ stw r0, 0x978(r28)
+/* 802AC864 002A84C4 A0 18 00 20 */ lhz r0, 0x20(r24)
+/* 802AC868 002A84C8 B0 1C 09 80 */ sth r0, 0x980(r28)
+/* 802AC86C 002A84CC 80 18 00 1C */ lwz r0, 0x1c(r24)
+/* 802AC870 002A84D0 90 1C 09 74 */ stw r0, 0x974(r28)
+/* 802AC874 002A84D4 48 00 00 60 */ b lbl_802AC8D4
+lbl_802AC878:
+/* 802AC878 002A84D8 92 FC 08 BC */ stw r23, 0x8bc(r28)
+/* 802AC87C 002A84DC 38 00 00 01 */ li r0, 1
+/* 802AC880 002A84E0 80 78 00 28 */ lwz r3, 0x28(r24)
+/* 802AC884 002A84E4 90 7C 08 50 */ stw r3, 0x850(r28)
+/* 802AC888 002A84E8 98 1C 08 C0 */ stb r0, 0x8c0(r28)
+/* 802AC88C 002A84EC 48 00 00 48 */ b lbl_802AC8D4
+lbl_802AC890:
+/* 802AC890 002A84F0 38 61 00 08 */ addi r3, r1, 8
+/* 802AC894 002A84F4 7F 44 D3 78 */ mr r4, r26
+/* 802AC898 002A84F8 38 A0 00 04 */ li r5, 4
+/* 802AC89C 002A84FC 4B D5 77 65 */ bl memcpy
+/* 802AC8A0 002A8500 4B FC 5F 39 */ bl __OSGetSystemTime
+/* 802AC8A4 002A8504 80 C1 00 08 */ lwz r6, 8(r1)
+/* 802AC8A8 002A8508 38 A0 00 00 */ li r5, 0
+/* 802AC8AC 002A850C 38 00 00 01 */ li r0, 1
+/* 802AC8B0 002A8510 7C 86 20 14 */ addc r4, r6, r4
+/* 802AC8B4 002A8514 90 9C 09 0C */ stw r4, 0x90c(r28)
+/* 802AC8B8 002A8518 7C 65 19 14 */ adde r3, r5, r3
+/* 802AC8BC 002A851C 90 7C 09 08 */ stw r3, 0x908(r28)
+/* 802AC8C0 002A8520 98 1C 09 10 */ stb r0, 0x910(r28)
+/* 802AC8C4 002A8524 48 00 00 D0 */ b lbl_802AC994
+lbl_802AC8C8:
+/* 802AC8C8 002A8528 88 1A 00 00 */ lbz r0, 0(r26)
+/* 802AC8CC 002A852C 60 00 00 02 */ ori r0, r0, 2
+/* 802AC8D0 002A8530 98 1A 00 00 */ stb r0, 0(r26)
+lbl_802AC8D4:
+/* 802AC8D4 002A8534 80 18 00 2C */ lwz r0, 0x2c(r24)
+/* 802AC8D8 002A8538 90 1C 08 9C */ stw r0, 0x89c(r28)
+/* 802AC8DC 002A853C 9B 7C 09 87 */ stb r27, 0x987(r28)
+/* 802AC8E0 002A8540 4B FC 5E F9 */ bl __OSGetSystemTime
+/* 802AC8E4 002A8544 3C C0 80 00 */ lis r6, 0x800000F8@ha
+/* 802AC8E8 002A8548 38 A0 00 00 */ li r5, 0
+/* 802AC8EC 002A854C 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
+/* 802AC8F0 002A8550 54 00 F8 7C */ rlwinm r0, r0, 0x1f, 1, 0x1e
+/* 802AC8F4 002A8554 7C 00 20 14 */ addc r0, r0, r4
+/* 802AC8F8 002A8558 90 1C 09 0C */ stw r0, 0x90c(r28)
+/* 802AC8FC 002A855C 7C 05 19 14 */ adde r0, r5, r3
+/* 802AC900 002A8560 7F E3 FB 78 */ mr r3, r31
+/* 802AC904 002A8564 90 1C 09 08 */ stw r0, 0x908(r28)
+/* 802AC908 002A8568 98 BC 09 10 */ stb r5, 0x910(r28)
+/* 802AC90C 002A856C 4B FC 1E 79 */ bl OSRestoreInterrupts
+lbl_802AC910:
+/* 802AC910 002A8570 3C 60 80 44 */ lis r3, lbl_8043C25C@ha
+/* 802AC914 002A8574 7F 65 DB 78 */ mr r5, r27
+/* 802AC918 002A8578 38 63 C2 5C */ addi r3, r3, lbl_8043C25C@l
+/* 802AC91C 002A857C 7F A4 07 74 */ extsb r4, r29
+/* 802AC920 002A8580 4C C6 31 82 */ crclr 6
+/* 802AC924 002A8584 48 00 6F 3D */ bl func_802B3860
+/* 802AC928 002A8588 38 19 00 12 */ addi r0, r25, 0x12
+/* 802AC92C 002A858C 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 802AC930 002A8590 48 00 D1 7D */ bl func_802B9AAC
+/* 802AC934 002A8594 38 99 00 01 */ addi r4, r25, 1
+/* 802AC938 002A8598 38 00 00 0A */ li r0, 0xa
+/* 802AC93C 002A859C 54 84 06 3E */ clrlwi r4, r4, 0x18
+/* 802AC940 002A85A0 3B 83 00 12 */ addi r28, r3, 0x12
+/* 802AC944 002A85A4 B0 83 00 02 */ sth r4, 2(r3)
+/* 802AC948 002A85A8 7C 78 1B 78 */ mr r24, r3
+/* 802AC94C 002A85AC 7F 44 D3 78 */ mr r4, r26
+/* 802AC950 002A85B0 7F 25 CB 78 */ mr r5, r25
+/* 802AC954 002A85B4 B0 03 00 04 */ sth r0, 4(r3)
+/* 802AC958 002A85B8 38 7C 00 01 */ addi r3, r28, 1
+/* 802AC95C 002A85BC 9B 7C 00 00 */ stb r27, 0(r28)
+/* 802AC960 002A85C0 4B D5 76 A1 */ bl memcpy
+/* 802AC964 002A85C4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802AC968 002A85C8 41 82 00 14 */ beq lbl_802AC97C
+/* 802AC96C 002A85CC 88 1C 00 01 */ lbz r0, 1(r28)
+/* 802AC970 002A85D0 60 00 00 01 */ ori r0, r0, 1
+/* 802AC974 002A85D4 98 1C 00 01 */ stb r0, 1(r28)
+/* 802AC978 002A85D8 48 00 00 10 */ b lbl_802AC988
+lbl_802AC97C:
+/* 802AC97C 002A85DC 88 1C 00 01 */ lbz r0, 1(r28)
+/* 802AC980 002A85E0 54 00 06 3C */ rlwinm r0, r0, 0, 0x18, 0x1e
+/* 802AC984 002A85E4 98 1C 00 01 */ stb r0, 1(r28)
+lbl_802AC988:
+/* 802AC988 002A85E8 7F A3 EB 78 */ mr r3, r29
+/* 802AC98C 002A85EC 7F 04 C3 78 */ mr r4, r24
+/* 802AC990 002A85F0 48 01 5F A5 */ bl func_802C2934
+lbl_802AC994:
+/* 802AC994 002A85F4 39 61 00 40 */ addi r11, r1, 0x40
+/* 802AC998 002A85F8 4B F1 A7 CD */ bl _restgpr_23
+/* 802AC99C 002A85FC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802AC9A0 002A8600 7C 08 03 A6 */ mtlr r0
+/* 802AC9A4 002A8604 38 21 00 40 */ addi r1, r1, 0x40
+/* 802AC9A8 002A8608 4E 80 00 20 */ blr
+
+.global WPADiSendSetReportType
+WPADiSendSetReportType:
+/* 802AC9AC 002A860C 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802AC9B0 002A8610 7C 08 02 A6 */ mflr r0
+/* 802AC9B4 002A8614 38 E0 00 12 */ li r7, 0x12
+/* 802AC9B8 002A8618 38 C0 00 02 */ li r6, 2
+/* 802AC9BC 002A861C 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802AC9C0 002A8620 38 00 00 04 */ li r0, 4
+/* 802AC9C4 002A8624 28 04 00 09 */ cmplwi r4, 9
+/* 802AC9C8 002A8628 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 802AC9CC 002A862C 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 802AC9D0 002A8630 7C 7E 1B 78 */ mr r30, r3
+/* 802AC9D4 002A8634 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 802AC9D8 002A8638 90 E1 00 38 */ stw r7, 0x38(r1)
+/* 802AC9DC 002A863C B0 C1 00 52 */ sth r6, 0x52(r1)
+/* 802AC9E0 002A8640 98 01 00 3C */ stb r0, 0x3c(r1)
+/* 802AC9E4 002A8644 90 A1 00 64 */ stw r5, 0x64(r1)
+/* 802AC9E8 002A8648 41 81 00 90 */ bgt lbl_802ACA78
+/* 802AC9EC 002A864C 3C 60 80 44 */ lis r3, lbl_8043C278@ha
+/* 802AC9F0 002A8650 54 80 10 3A */ slwi r0, r4, 2
+/* 802AC9F4 002A8654 38 63 C2 78 */ addi r3, r3, lbl_8043C278@l
+/* 802AC9F8 002A8658 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802AC9FC 002A865C 7C 69 03 A6 */ mtctr r3
+/* 802ACA00 002A8660 4E 80 04 20 */ bctr
+/* 802ACA04 002A8664 38 00 00 30 */ li r0, 0x30
+/* 802ACA08 002A8668 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA0C 002A866C 48 00 00 6C */ b lbl_802ACA78
+/* 802ACA10 002A8670 38 00 00 31 */ li r0, 0x31
+/* 802ACA14 002A8674 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA18 002A8678 48 00 00 60 */ b lbl_802ACA78
+/* 802ACA1C 002A867C 38 00 00 33 */ li r0, 0x33
+/* 802ACA20 002A8680 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA24 002A8684 48 00 00 54 */ b lbl_802ACA78
+/* 802ACA28 002A8688 38 00 00 32 */ li r0, 0x32
+/* 802ACA2C 002A868C 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA30 002A8690 48 00 00 48 */ b lbl_802ACA78
+/* 802ACA34 002A8694 38 00 00 35 */ li r0, 0x35
+/* 802ACA38 002A8698 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA3C 002A869C 48 00 00 3C */ b lbl_802ACA78
+/* 802ACA40 002A86A0 38 00 00 37 */ li r0, 0x37
+/* 802ACA44 002A86A4 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA48 002A86A8 48 00 00 30 */ b lbl_802ACA78
+/* 802ACA4C 002A86AC 38 00 00 32 */ li r0, 0x32
+/* 802ACA50 002A86B0 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA54 002A86B4 48 00 00 24 */ b lbl_802ACA78
+/* 802ACA58 002A86B8 38 00 00 35 */ li r0, 0x35
+/* 802ACA5C 002A86BC 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA60 002A86C0 48 00 00 18 */ b lbl_802ACA78
+/* 802ACA64 002A86C4 38 00 00 37 */ li r0, 0x37
+/* 802ACA68 002A86C8 98 01 00 3D */ stb r0, 0x3d(r1)
+/* 802ACA6C 002A86CC 48 00 00 0C */ b lbl_802ACA78
+/* 802ACA70 002A86D0 38 00 00 3E */ li r0, 0x3e
+/* 802ACA74 002A86D4 98 01 00 3D */ stb r0, 0x3d(r1)
+lbl_802ACA78:
+/* 802ACA78 002A86D8 83 E1 00 38 */ lwz r31, 0x38(r1)
+/* 802ACA7C 002A86DC 81 81 00 3C */ lwz r12, 0x3c(r1)
+/* 802ACA80 002A86E0 81 61 00 40 */ lwz r11, 0x40(r1)
+/* 802ACA84 002A86E4 81 41 00 44 */ lwz r10, 0x44(r1)
+/* 802ACA88 002A86E8 81 21 00 48 */ lwz r9, 0x48(r1)
+/* 802ACA8C 002A86EC 81 01 00 4C */ lwz r8, 0x4c(r1)
+/* 802ACA90 002A86F0 80 E1 00 50 */ lwz r7, 0x50(r1)
+/* 802ACA94 002A86F4 80 C1 00 54 */ lwz r6, 0x54(r1)
+/* 802ACA98 002A86F8 80 A1 00 58 */ lwz r5, 0x58(r1)
+/* 802ACA9C 002A86FC 80 81 00 5C */ lwz r4, 0x5c(r1)
+/* 802ACAA0 002A8700 80 61 00 60 */ lwz r3, 0x60(r1)
+/* 802ACAA4 002A8704 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 802ACAA8 002A8708 93 E1 00 08 */ stw r31, 8(r1)
+/* 802ACAAC 002A870C 91 81 00 0C */ stw r12, 0xc(r1)
+/* 802ACAB0 002A8710 91 61 00 10 */ stw r11, 0x10(r1)
+/* 802ACAB4 002A8714 91 41 00 14 */ stw r10, 0x14(r1)
+/* 802ACAB8 002A8718 91 21 00 18 */ stw r9, 0x18(r1)
+/* 802ACABC 002A871C 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 802ACAC0 002A8720 90 E1 00 20 */ stw r7, 0x20(r1)
+/* 802ACAC4 002A8724 90 C1 00 24 */ stw r6, 0x24(r1)
+/* 802ACAC8 002A8728 90 A1 00 28 */ stw r5, 0x28(r1)
+/* 802ACACC 002A872C 90 81 00 2C */ stw r4, 0x2c(r1)
+/* 802ACAD0 002A8730 90 61 00 30 */ stw r3, 0x30(r1)
+/* 802ACAD4 002A8734 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802ACAD8 002A8738 4B FC 1C 85 */ bl OSDisableInterrupts
+/* 802ACADC 002A873C 7C 7F 1B 78 */ mr r31, r3
+/* 802ACAE0 002A8740 4B FC 1C 7D */ bl OSDisableInterrupts
+/* 802ACAE4 002A8744 88 9E 00 00 */ lbz r4, 0(r30)
+/* 802ACAE8 002A8748 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACAEC 002A874C 7C 04 00 50 */ subf r0, r4, r0
+/* 802ACAF0 002A8750 7C 1D 07 75 */ extsb. r29, r0
+/* 802ACAF4 002A8754 40 80 00 10 */ bge lbl_802ACB04
+/* 802ACAF8 002A8758 80 1E 00 08 */ lwz r0, 8(r30)
+/* 802ACAFC 002A875C 7C 1D 02 14 */ add r0, r29, r0
+/* 802ACB00 002A8760 7C 1D 07 74 */ extsb r29, r0
+lbl_802ACB04:
+/* 802ACB04 002A8764 4B FC 1C 81 */ bl OSRestoreInterrupts
+/* 802ACB08 002A8768 80 7E 00 08 */ lwz r3, 8(r30)
+/* 802ACB0C 002A876C 38 03 FF FF */ addi r0, r3, -1
+/* 802ACB10 002A8770 7C 00 E8 40 */ cmplw r0, r29
+/* 802ACB14 002A8774 40 82 00 14 */ bne lbl_802ACB28
+/* 802ACB18 002A8778 7F E3 FB 78 */ mr r3, r31
+/* 802ACB1C 002A877C 4B FC 1C 69 */ bl OSRestoreInterrupts
+/* 802ACB20 002A8780 38 60 00 00 */ li r3, 0
+/* 802ACB24 002A8784 48 00 00 7C */ b lbl_802ACBA0
+lbl_802ACB28:
+/* 802ACB28 002A8788 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACB2C 002A878C 38 80 00 00 */ li r4, 0
+/* 802ACB30 002A8790 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802ACB34 002A8794 38 A0 00 30 */ li r5, 0x30
+/* 802ACB38 002A8798 7C 00 07 74 */ extsb r0, r0
+/* 802ACB3C 002A879C 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ACB40 002A87A0 7C 63 02 14 */ add r3, r3, r0
+/* 802ACB44 002A87A4 4B D5 75 C1 */ bl memset
+/* 802ACB48 002A87A8 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACB4C 002A87AC 38 81 00 08 */ addi r4, r1, 8
+/* 802ACB50 002A87B0 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802ACB54 002A87B4 38 A0 00 30 */ li r5, 0x30
+/* 802ACB58 002A87B8 7C 00 07 74 */ extsb r0, r0
+/* 802ACB5C 002A87BC 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ACB60 002A87C0 7C 63 02 14 */ add r3, r3, r0
+/* 802ACB64 002A87C4 4B D5 74 9D */ bl memcpy
+/* 802ACB68 002A87C8 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACB6C 002A87CC 7F E3 FB 78 */ mr r3, r31
+/* 802ACB70 002A87D0 80 9E 00 08 */ lwz r4, 8(r30)
+/* 802ACB74 002A87D4 7C 06 07 74 */ extsb r6, r0
+/* 802ACB78 002A87D8 38 84 FF FF */ addi r4, r4, -1
+/* 802ACB7C 002A87DC 7C A4 30 50 */ subf r5, r4, r6
+/* 802ACB80 002A87E0 38 06 00 01 */ addi r0, r6, 1
+/* 802ACB84 002A87E4 7C 86 20 50 */ subf r4, r6, r4
+/* 802ACB88 002A87E8 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ACB8C 002A87EC 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ACB90 002A87F0 7C 00 20 78 */ andc r0, r0, r4
+/* 802ACB94 002A87F4 98 1E 00 01 */ stb r0, 1(r30)
+/* 802ACB98 002A87F8 4B FC 1B ED */ bl OSRestoreInterrupts
+/* 802ACB9C 002A87FC 38 60 00 01 */ li r3, 1
+lbl_802ACBA0:
+/* 802ACBA0 002A8800 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802ACBA4 002A8804 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 802ACBA8 002A8808 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 802ACBAC 002A880C 83 A1 00 74 */ lwz r29, 0x74(r1)
+/* 802ACBB0 002A8810 7C 08 03 A6 */ mtlr r0
+/* 802ACBB4 002A8814 38 21 00 80 */ addi r1, r1, 0x80
+/* 802ACBB8 002A8818 4E 80 00 20 */ blr
+
+.global WPADiSendWriteDataCmd
+WPADiSendWriteDataCmd:
+/* 802ACBBC 002A881C 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802ACBC0 002A8820 7C 08 02 A6 */ mflr r0
+/* 802ACBC4 002A8824 39 00 00 01 */ li r8, 1
+/* 802ACBC8 002A8828 38 E0 00 16 */ li r7, 0x16
+/* 802ACBCC 002A882C 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802ACBD0 002A8830 38 00 00 15 */ li r0, 0x15
+/* 802ACBD4 002A8834 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 802ACBD8 002A8838 7C 7F 1B 78 */ mr r31, r3
+/* 802ACBDC 002A883C 38 61 00 14 */ addi r3, r1, 0x14
+/* 802ACBE0 002A8840 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 802ACBE4 002A8844 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 802ACBE8 002A8848 98 81 00 08 */ stb r4, 8(r1)
+/* 802ACBEC 002A884C 38 81 00 0C */ addi r4, r1, 0xc
+/* 802ACBF0 002A8850 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 802ACBF4 002A8854 38 A0 00 04 */ li r5, 4
+/* 802ACBF8 002A8858 99 01 00 09 */ stb r8, 9(r1)
+/* 802ACBFC 002A885C 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 802ACC00 002A8860 B0 01 00 2A */ sth r0, 0x2a(r1)
+/* 802ACC04 002A8864 90 C1 00 3C */ stw r6, 0x3c(r1)
+/* 802ACC08 002A8868 4B D5 73 F9 */ bl memcpy
+/* 802ACC0C 002A886C 38 61 00 18 */ addi r3, r1, 0x18
+/* 802ACC10 002A8870 38 81 00 09 */ addi r4, r1, 9
+/* 802ACC14 002A8874 38 A0 00 01 */ li r5, 1
+/* 802ACC18 002A8878 4B D5 73 E9 */ bl memcpy
+/* 802ACC1C 002A887C 38 61 00 19 */ addi r3, r1, 0x19
+/* 802ACC20 002A8880 38 81 00 08 */ addi r4, r1, 8
+/* 802ACC24 002A8884 38 A0 00 01 */ li r5, 1
+/* 802ACC28 002A8888 4B D5 73 D9 */ bl memcpy
+/* 802ACC2C 002A888C 83 C1 00 10 */ lwz r30, 0x10(r1)
+/* 802ACC30 002A8890 81 81 00 14 */ lwz r12, 0x14(r1)
+/* 802ACC34 002A8894 81 61 00 18 */ lwz r11, 0x18(r1)
+/* 802ACC38 002A8898 81 41 00 1C */ lwz r10, 0x1c(r1)
+/* 802ACC3C 002A889C 81 21 00 20 */ lwz r9, 0x20(r1)
+/* 802ACC40 002A88A0 81 01 00 24 */ lwz r8, 0x24(r1)
+/* 802ACC44 002A88A4 80 E1 00 28 */ lwz r7, 0x28(r1)
+/* 802ACC48 002A88A8 80 C1 00 2C */ lwz r6, 0x2c(r1)
+/* 802ACC4C 002A88AC 80 A1 00 30 */ lwz r5, 0x30(r1)
+/* 802ACC50 002A88B0 80 81 00 34 */ lwz r4, 0x34(r1)
+/* 802ACC54 002A88B4 80 61 00 38 */ lwz r3, 0x38(r1)
+/* 802ACC58 002A88B8 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 802ACC5C 002A88BC 93 C1 00 40 */ stw r30, 0x40(r1)
+/* 802ACC60 002A88C0 91 81 00 44 */ stw r12, 0x44(r1)
+/* 802ACC64 002A88C4 91 61 00 48 */ stw r11, 0x48(r1)
+/* 802ACC68 002A88C8 91 41 00 4C */ stw r10, 0x4c(r1)
+/* 802ACC6C 002A88CC 91 21 00 50 */ stw r9, 0x50(r1)
+/* 802ACC70 002A88D0 91 01 00 54 */ stw r8, 0x54(r1)
+/* 802ACC74 002A88D4 90 E1 00 58 */ stw r7, 0x58(r1)
+/* 802ACC78 002A88D8 90 C1 00 5C */ stw r6, 0x5c(r1)
+/* 802ACC7C 002A88DC 90 A1 00 60 */ stw r5, 0x60(r1)
+/* 802ACC80 002A88E0 90 81 00 64 */ stw r4, 0x64(r1)
+/* 802ACC84 002A88E4 90 61 00 68 */ stw r3, 0x68(r1)
+/* 802ACC88 002A88E8 90 01 00 6C */ stw r0, 0x6c(r1)
+/* 802ACC8C 002A88EC 4B FC 1A D1 */ bl OSDisableInterrupts
+/* 802ACC90 002A88F0 7C 7E 1B 78 */ mr r30, r3
+/* 802ACC94 002A88F4 4B FC 1A C9 */ bl OSDisableInterrupts
+/* 802ACC98 002A88F8 88 9F 00 00 */ lbz r4, 0(r31)
+/* 802ACC9C 002A88FC 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802ACCA0 002A8900 7C 04 00 50 */ subf r0, r4, r0
+/* 802ACCA4 002A8904 7C 1D 07 75 */ extsb. r29, r0
+/* 802ACCA8 002A8908 40 80 00 10 */ bge lbl_802ACCB8
+/* 802ACCAC 002A890C 80 1F 00 08 */ lwz r0, 8(r31)
+/* 802ACCB0 002A8910 7C 1D 02 14 */ add r0, r29, r0
+/* 802ACCB4 002A8914 7C 1D 07 74 */ extsb r29, r0
+lbl_802ACCB8:
+/* 802ACCB8 002A8918 4B FC 1A CD */ bl OSRestoreInterrupts
+/* 802ACCBC 002A891C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 802ACCC0 002A8920 38 03 FF FF */ addi r0, r3, -1
+/* 802ACCC4 002A8924 7C 00 E8 40 */ cmplw r0, r29
+/* 802ACCC8 002A8928 40 82 00 14 */ bne lbl_802ACCDC
+/* 802ACCCC 002A892C 7F C3 F3 78 */ mr r3, r30
+/* 802ACCD0 002A8930 4B FC 1A B5 */ bl OSRestoreInterrupts
+/* 802ACCD4 002A8934 38 60 00 00 */ li r3, 0
+/* 802ACCD8 002A8938 48 00 00 7C */ b lbl_802ACD54
+lbl_802ACCDC:
+/* 802ACCDC 002A893C 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802ACCE0 002A8940 38 80 00 00 */ li r4, 0
+/* 802ACCE4 002A8944 80 7F 00 04 */ lwz r3, 4(r31)
+/* 802ACCE8 002A8948 38 A0 00 30 */ li r5, 0x30
+/* 802ACCEC 002A894C 7C 00 07 74 */ extsb r0, r0
+/* 802ACCF0 002A8950 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ACCF4 002A8954 7C 63 02 14 */ add r3, r3, r0
+/* 802ACCF8 002A8958 4B D5 74 0D */ bl memset
+/* 802ACCFC 002A895C 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802ACD00 002A8960 38 81 00 40 */ addi r4, r1, 0x40
+/* 802ACD04 002A8964 80 7F 00 04 */ lwz r3, 4(r31)
+/* 802ACD08 002A8968 38 A0 00 30 */ li r5, 0x30
+/* 802ACD0C 002A896C 7C 00 07 74 */ extsb r0, r0
+/* 802ACD10 002A8970 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ACD14 002A8974 7C 63 02 14 */ add r3, r3, r0
+/* 802ACD18 002A8978 4B D5 72 E9 */ bl memcpy
+/* 802ACD1C 002A897C 88 1F 00 01 */ lbz r0, 1(r31)
+/* 802ACD20 002A8980 7F C3 F3 78 */ mr r3, r30
+/* 802ACD24 002A8984 80 9F 00 08 */ lwz r4, 8(r31)
+/* 802ACD28 002A8988 7C 06 07 74 */ extsb r6, r0
+/* 802ACD2C 002A898C 38 84 FF FF */ addi r4, r4, -1
+/* 802ACD30 002A8990 7C A4 30 50 */ subf r5, r4, r6
+/* 802ACD34 002A8994 38 06 00 01 */ addi r0, r6, 1
+/* 802ACD38 002A8998 7C 86 20 50 */ subf r4, r6, r4
+/* 802ACD3C 002A899C 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ACD40 002A89A0 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ACD44 002A89A4 7C 00 20 78 */ andc r0, r0, r4
+/* 802ACD48 002A89A8 98 1F 00 01 */ stb r0, 1(r31)
+/* 802ACD4C 002A89AC 4B FC 1A 39 */ bl OSRestoreInterrupts
+/* 802ACD50 002A89B0 38 60 00 01 */ li r3, 1
+lbl_802ACD54:
+/* 802ACD54 002A89B4 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802ACD58 002A89B8 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 802ACD5C 002A89BC 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 802ACD60 002A89C0 83 A1 00 74 */ lwz r29, 0x74(r1)
+/* 802ACD64 002A89C4 7C 08 03 A6 */ mtlr r0
+/* 802ACD68 002A89C8 38 21 00 80 */ addi r1, r1, 0x80
+/* 802ACD6C 002A89CC 4E 80 00 20 */ blr
+
+.global WPADiSendWriteData
+WPADiSendWriteData:
+/* 802ACD70 002A89D0 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802ACD74 002A89D4 7C 08 02 A6 */ mflr r0
+/* 802ACD78 002A89D8 54 A9 06 FE */ clrlwi r9, r5, 0x1b
+/* 802ACD7C 002A89DC 39 00 00 16 */ li r8, 0x16
+/* 802ACD80 002A89E0 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802ACD84 002A89E4 38 00 00 15 */ li r0, 0x15
+/* 802ACD88 002A89E8 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 802ACD8C 002A89EC 7C 9F 23 78 */ mr r31, r4
+/* 802ACD90 002A89F0 38 81 00 08 */ addi r4, r1, 8
+/* 802ACD94 002A89F4 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 802ACD98 002A89F8 7C 7E 1B 78 */ mr r30, r3
+/* 802ACD9C 002A89FC 38 61 00 44 */ addi r3, r1, 0x44
+/* 802ACDA0 002A8A00 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 802ACDA4 002A8A04 7C BD 2B 78 */ mr r29, r5
+/* 802ACDA8 002A8A08 38 A0 00 04 */ li r5, 4
+/* 802ACDAC 002A8A0C 90 C1 00 08 */ stw r6, 8(r1)
+/* 802ACDB0 002A8A10 99 21 00 0C */ stb r9, 0xc(r1)
+/* 802ACDB4 002A8A14 91 01 00 40 */ stw r8, 0x40(r1)
+/* 802ACDB8 002A8A18 B0 01 00 5A */ sth r0, 0x5a(r1)
+/* 802ACDBC 002A8A1C 90 E1 00 6C */ stw r7, 0x6c(r1)
+/* 802ACDC0 002A8A20 4B D5 72 41 */ bl memcpy
+/* 802ACDC4 002A8A24 38 61 00 48 */ addi r3, r1, 0x48
+/* 802ACDC8 002A8A28 38 81 00 0C */ addi r4, r1, 0xc
+/* 802ACDCC 002A8A2C 38 A0 00 01 */ li r5, 1
+/* 802ACDD0 002A8A30 4B D5 72 31 */ bl memcpy
+/* 802ACDD4 002A8A34 7F E4 FB 78 */ mr r4, r31
+/* 802ACDD8 002A8A38 7F A5 EB 78 */ mr r5, r29
+/* 802ACDDC 002A8A3C 38 61 00 49 */ addi r3, r1, 0x49
+/* 802ACDE0 002A8A40 4B D5 72 21 */ bl memcpy
+/* 802ACDE4 002A8A44 83 E1 00 40 */ lwz r31, 0x40(r1)
+/* 802ACDE8 002A8A48 81 81 00 44 */ lwz r12, 0x44(r1)
+/* 802ACDEC 002A8A4C 81 61 00 48 */ lwz r11, 0x48(r1)
+/* 802ACDF0 002A8A50 81 41 00 4C */ lwz r10, 0x4c(r1)
+/* 802ACDF4 002A8A54 81 21 00 50 */ lwz r9, 0x50(r1)
+/* 802ACDF8 002A8A58 81 01 00 54 */ lwz r8, 0x54(r1)
+/* 802ACDFC 002A8A5C 80 E1 00 58 */ lwz r7, 0x58(r1)
+/* 802ACE00 002A8A60 80 C1 00 5C */ lwz r6, 0x5c(r1)
+/* 802ACE04 002A8A64 80 A1 00 60 */ lwz r5, 0x60(r1)
+/* 802ACE08 002A8A68 80 81 00 64 */ lwz r4, 0x64(r1)
+/* 802ACE0C 002A8A6C 80 61 00 68 */ lwz r3, 0x68(r1)
+/* 802ACE10 002A8A70 80 01 00 6C */ lwz r0, 0x6c(r1)
+/* 802ACE14 002A8A74 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 802ACE18 002A8A78 91 81 00 14 */ stw r12, 0x14(r1)
+/* 802ACE1C 002A8A7C 91 61 00 18 */ stw r11, 0x18(r1)
+/* 802ACE20 002A8A80 91 41 00 1C */ stw r10, 0x1c(r1)
+/* 802ACE24 002A8A84 91 21 00 20 */ stw r9, 0x20(r1)
+/* 802ACE28 002A8A88 91 01 00 24 */ stw r8, 0x24(r1)
+/* 802ACE2C 002A8A8C 90 E1 00 28 */ stw r7, 0x28(r1)
+/* 802ACE30 002A8A90 90 C1 00 2C */ stw r6, 0x2c(r1)
+/* 802ACE34 002A8A94 90 A1 00 30 */ stw r5, 0x30(r1)
+/* 802ACE38 002A8A98 90 81 00 34 */ stw r4, 0x34(r1)
+/* 802ACE3C 002A8A9C 90 61 00 38 */ stw r3, 0x38(r1)
+/* 802ACE40 002A8AA0 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 802ACE44 002A8AA4 4B FC 19 19 */ bl OSDisableInterrupts
+/* 802ACE48 002A8AA8 7C 7F 1B 78 */ mr r31, r3
+/* 802ACE4C 002A8AAC 4B FC 19 11 */ bl OSDisableInterrupts
+/* 802ACE50 002A8AB0 88 9E 00 00 */ lbz r4, 0(r30)
+/* 802ACE54 002A8AB4 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACE58 002A8AB8 7C 04 00 50 */ subf r0, r4, r0
+/* 802ACE5C 002A8ABC 7C 1D 07 75 */ extsb. r29, r0
+/* 802ACE60 002A8AC0 40 80 00 10 */ bge lbl_802ACE70
+/* 802ACE64 002A8AC4 80 1E 00 08 */ lwz r0, 8(r30)
+/* 802ACE68 002A8AC8 7C 1D 02 14 */ add r0, r29, r0
+/* 802ACE6C 002A8ACC 7C 1D 07 74 */ extsb r29, r0
+lbl_802ACE70:
+/* 802ACE70 002A8AD0 4B FC 19 15 */ bl OSRestoreInterrupts
+/* 802ACE74 002A8AD4 80 7E 00 08 */ lwz r3, 8(r30)
+/* 802ACE78 002A8AD8 38 03 FF FF */ addi r0, r3, -1
+/* 802ACE7C 002A8ADC 7C 00 E8 40 */ cmplw r0, r29
+/* 802ACE80 002A8AE0 40 82 00 14 */ bne lbl_802ACE94
+/* 802ACE84 002A8AE4 7F E3 FB 78 */ mr r3, r31
+/* 802ACE88 002A8AE8 4B FC 18 FD */ bl OSRestoreInterrupts
+/* 802ACE8C 002A8AEC 38 60 00 00 */ li r3, 0
+/* 802ACE90 002A8AF0 48 00 00 7C */ b lbl_802ACF0C
+lbl_802ACE94:
+/* 802ACE94 002A8AF4 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACE98 002A8AF8 38 80 00 00 */ li r4, 0
+/* 802ACE9C 002A8AFC 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802ACEA0 002A8B00 38 A0 00 30 */ li r5, 0x30
+/* 802ACEA4 002A8B04 7C 00 07 74 */ extsb r0, r0
+/* 802ACEA8 002A8B08 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ACEAC 002A8B0C 7C 63 02 14 */ add r3, r3, r0
+/* 802ACEB0 002A8B10 4B D5 72 55 */ bl memset
+/* 802ACEB4 002A8B14 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACEB8 002A8B18 38 81 00 10 */ addi r4, r1, 0x10
+/* 802ACEBC 002A8B1C 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802ACEC0 002A8B20 38 A0 00 30 */ li r5, 0x30
+/* 802ACEC4 002A8B24 7C 00 07 74 */ extsb r0, r0
+/* 802ACEC8 002A8B28 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802ACECC 002A8B2C 7C 63 02 14 */ add r3, r3, r0
+/* 802ACED0 002A8B30 4B D5 71 31 */ bl memcpy
+/* 802ACED4 002A8B34 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802ACED8 002A8B38 7F E3 FB 78 */ mr r3, r31
+/* 802ACEDC 002A8B3C 80 9E 00 08 */ lwz r4, 8(r30)
+/* 802ACEE0 002A8B40 7C 06 07 74 */ extsb r6, r0
+/* 802ACEE4 002A8B44 38 84 FF FF */ addi r4, r4, -1
+/* 802ACEE8 002A8B48 7C A4 30 50 */ subf r5, r4, r6
+/* 802ACEEC 002A8B4C 38 06 00 01 */ addi r0, r6, 1
+/* 802ACEF0 002A8B50 7C 86 20 50 */ subf r4, r6, r4
+/* 802ACEF4 002A8B54 7C A4 20 F8 */ nor r4, r5, r4
+/* 802ACEF8 002A8B58 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802ACEFC 002A8B5C 7C 00 20 78 */ andc r0, r0, r4
+/* 802ACF00 002A8B60 98 1E 00 01 */ stb r0, 1(r30)
+/* 802ACF04 002A8B64 4B FC 18 81 */ bl OSRestoreInterrupts
+/* 802ACF08 002A8B68 38 60 00 01 */ li r3, 1
+lbl_802ACF0C:
+/* 802ACF0C 002A8B6C 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802ACF10 002A8B70 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 802ACF14 002A8B74 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 802ACF18 002A8B78 83 A1 00 74 */ lwz r29, 0x74(r1)
+/* 802ACF1C 002A8B7C 7C 08 03 A6 */ mtlr r0
+/* 802ACF20 002A8B80 38 21 00 80 */ addi r1, r1, 0x80
+/* 802ACF24 002A8B84 4E 80 00 20 */ blr
+
+.global WPADiSendReadData
+WPADiSendReadData:
+/* 802ACF28 002A8B88 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 802ACF2C 002A8B8C 7C 08 02 A6 */ mflr r0
+/* 802ACF30 002A8B90 39 00 00 17 */ li r8, 0x17
+/* 802ACF34 002A8B94 90 01 00 84 */ stw r0, 0x84(r1)
+/* 802ACF38 002A8B98 38 00 00 06 */ li r0, 6
+/* 802ACF3C 002A8B9C 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 802ACF40 002A8BA0 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 802ACF44 002A8BA4 7C 7E 1B 78 */ mr r30, r3
+/* 802ACF48 002A8BA8 38 61 00 44 */ addi r3, r1, 0x44
+/* 802ACF4C 002A8BAC 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 802ACF50 002A8BB0 7C 9D 23 78 */ mr r29, r4
+/* 802ACF54 002A8BB4 38 81 00 0C */ addi r4, r1, 0xc
+/* 802ACF58 002A8BB8 B0 A1 00 08 */ sth r5, 8(r1)
+/* 802ACF5C 002A8BBC 38 A0 00 04 */ li r5, 4
+/* 802ACF60 002A8BC0 90 C1 00 0C */ stw r6, 0xc(r1)
+/* 802ACF64 002A8BC4 91 01 00 40 */ stw r8, 0x40(r1)
+/* 802ACF68 002A8BC8 B0 01 00 5A */ sth r0, 0x5a(r1)
+/* 802ACF6C 002A8BCC 90 E1 00 6C */ stw r7, 0x6c(r1)
+/* 802ACF70 002A8BD0 4B D5 70 91 */ bl memcpy
+/* 802ACF74 002A8BD4 38 61 00 48 */ addi r3, r1, 0x48
+/* 802ACF78 002A8BD8 38 81 00 08 */ addi r4, r1, 8
+/* 802ACF7C 002A8BDC 38 A0 00 02 */ li r5, 2
+/* 802ACF80 002A8BE0 4B D5 70 81 */ bl memcpy
+/* 802ACF84 002A8BE4 A0 01 00 08 */ lhz r0, 8(r1)
+/* 802ACF88 002A8BE8 81 81 00 0C */ lwz r12, 0xc(r1)
+/* 802ACF8C 002A8BEC B0 01 00 60 */ sth r0, 0x60(r1)
+/* 802ACF90 002A8BF0 81 61 00 40 */ lwz r11, 0x40(r1)
+/* 802ACF94 002A8BF4 81 41 00 44 */ lwz r10, 0x44(r1)
+/* 802ACF98 002A8BF8 81 21 00 48 */ lwz r9, 0x48(r1)
+/* 802ACF9C 002A8BFC 81 01 00 4C */ lwz r8, 0x4c(r1)
+/* 802ACFA0 002A8C00 80 E1 00 50 */ lwz r7, 0x50(r1)
+/* 802ACFA4 002A8C04 80 C1 00 54 */ lwz r6, 0x54(r1)
+/* 802ACFA8 002A8C08 80 A1 00 58 */ lwz r5, 0x58(r1)
+/* 802ACFAC 002A8C0C 80 81 00 60 */ lwz r4, 0x60(r1)
+/* 802ACFB0 002A8C10 80 61 00 68 */ lwz r3, 0x68(r1)
+/* 802ACFB4 002A8C14 80 01 00 6C */ lwz r0, 0x6c(r1)
+/* 802ACFB8 002A8C18 93 A1 00 5C */ stw r29, 0x5c(r1)
+/* 802ACFBC 002A8C1C 91 81 00 64 */ stw r12, 0x64(r1)
+/* 802ACFC0 002A8C20 91 61 00 10 */ stw r11, 0x10(r1)
+/* 802ACFC4 002A8C24 91 41 00 14 */ stw r10, 0x14(r1)
+/* 802ACFC8 002A8C28 91 21 00 18 */ stw r9, 0x18(r1)
+/* 802ACFCC 002A8C2C 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 802ACFD0 002A8C30 90 E1 00 20 */ stw r7, 0x20(r1)
+/* 802ACFD4 002A8C34 90 C1 00 24 */ stw r6, 0x24(r1)
+/* 802ACFD8 002A8C38 90 A1 00 28 */ stw r5, 0x28(r1)
+/* 802ACFDC 002A8C3C 93 A1 00 2C */ stw r29, 0x2c(r1)
+/* 802ACFE0 002A8C40 90 81 00 30 */ stw r4, 0x30(r1)
+/* 802ACFE4 002A8C44 91 81 00 34 */ stw r12, 0x34(r1)
+/* 802ACFE8 002A8C48 90 61 00 38 */ stw r3, 0x38(r1)
+/* 802ACFEC 002A8C4C 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 802ACFF0 002A8C50 4B FC 17 6D */ bl OSDisableInterrupts
+/* 802ACFF4 002A8C54 7C 7F 1B 78 */ mr r31, r3
+/* 802ACFF8 002A8C58 4B FC 17 65 */ bl OSDisableInterrupts
+/* 802ACFFC 002A8C5C 88 9E 00 00 */ lbz r4, 0(r30)
+/* 802AD000 002A8C60 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802AD004 002A8C64 7C 04 00 50 */ subf r0, r4, r0
+/* 802AD008 002A8C68 7C 1D 07 75 */ extsb. r29, r0
+/* 802AD00C 002A8C6C 40 80 00 10 */ bge lbl_802AD01C
+/* 802AD010 002A8C70 80 1E 00 08 */ lwz r0, 8(r30)
+/* 802AD014 002A8C74 7C 1D 02 14 */ add r0, r29, r0
+/* 802AD018 002A8C78 7C 1D 07 74 */ extsb r29, r0
+lbl_802AD01C:
+/* 802AD01C 002A8C7C 4B FC 17 69 */ bl OSRestoreInterrupts
+/* 802AD020 002A8C80 80 7E 00 08 */ lwz r3, 8(r30)
+/* 802AD024 002A8C84 38 03 FF FF */ addi r0, r3, -1
+/* 802AD028 002A8C88 7C 00 E8 40 */ cmplw r0, r29
+/* 802AD02C 002A8C8C 40 82 00 14 */ bne lbl_802AD040
+/* 802AD030 002A8C90 7F E3 FB 78 */ mr r3, r31
+/* 802AD034 002A8C94 4B FC 17 51 */ bl OSRestoreInterrupts
+/* 802AD038 002A8C98 38 60 00 00 */ li r3, 0
+/* 802AD03C 002A8C9C 48 00 00 7C */ b lbl_802AD0B8
+lbl_802AD040:
+/* 802AD040 002A8CA0 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802AD044 002A8CA4 38 80 00 00 */ li r4, 0
+/* 802AD048 002A8CA8 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802AD04C 002A8CAC 38 A0 00 30 */ li r5, 0x30
+/* 802AD050 002A8CB0 7C 00 07 74 */ extsb r0, r0
+/* 802AD054 002A8CB4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AD058 002A8CB8 7C 63 02 14 */ add r3, r3, r0
+/* 802AD05C 002A8CBC 4B D5 70 A9 */ bl memset
+/* 802AD060 002A8CC0 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802AD064 002A8CC4 38 81 00 10 */ addi r4, r1, 0x10
+/* 802AD068 002A8CC8 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802AD06C 002A8CCC 38 A0 00 30 */ li r5, 0x30
+/* 802AD070 002A8CD0 7C 00 07 74 */ extsb r0, r0
+/* 802AD074 002A8CD4 1C 00 00 30 */ mulli r0, r0, 0x30
+/* 802AD078 002A8CD8 7C 63 02 14 */ add r3, r3, r0
+/* 802AD07C 002A8CDC 4B D5 6F 85 */ bl memcpy
+/* 802AD080 002A8CE0 88 1E 00 01 */ lbz r0, 1(r30)
+/* 802AD084 002A8CE4 7F E3 FB 78 */ mr r3, r31
+/* 802AD088 002A8CE8 80 9E 00 08 */ lwz r4, 8(r30)
+/* 802AD08C 002A8CEC 7C 06 07 74 */ extsb r6, r0
+/* 802AD090 002A8CF0 38 84 FF FF */ addi r4, r4, -1
+/* 802AD094 002A8CF4 7C A4 30 50 */ subf r5, r4, r6
+/* 802AD098 002A8CF8 38 06 00 01 */ addi r0, r6, 1
+/* 802AD09C 002A8CFC 7C 86 20 50 */ subf r4, r6, r4
+/* 802AD0A0 002A8D00 7C A4 20 F8 */ nor r4, r5, r4
+/* 802AD0A4 002A8D04 7C 84 FE 70 */ srawi r4, r4, 0x1f
+/* 802AD0A8 002A8D08 7C 00 20 78 */ andc r0, r0, r4
+/* 802AD0AC 002A8D0C 98 1E 00 01 */ stb r0, 1(r30)
+/* 802AD0B0 002A8D10 4B FC 16 D5 */ bl OSRestoreInterrupts
+/* 802AD0B4 002A8D14 38 60 00 01 */ li r3, 1
+lbl_802AD0B8:
+/* 802AD0B8 002A8D18 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 802AD0BC 002A8D1C 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 802AD0C0 002A8D20 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 802AD0C4 002A8D24 83 A1 00 74 */ lwz r29, 0x74(r1)
+/* 802AD0C8 002A8D28 7C 08 03 A6 */ mtlr r0
+/* 802AD0CC 002A8D2C 38 21 00 80 */ addi r1, r1, 0x80
+/* 802AD0D0 002A8D30 4E 80 00 20 */ blr
+
+.global __CanPushCmdQueue
+__CanPushCmdQueue:
+/* 802AD0D4 002A8D34 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802AD0D8 002A8D38 7C 08 02 A6 */ mflr r0
+/* 802AD0DC 002A8D3C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802AD0E0 002A8D40 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802AD0E4 002A8D44 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802AD0E8 002A8D48 7C 9E 23 78 */ mr r30, r4
+/* 802AD0EC 002A8D4C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802AD0F0 002A8D50 7C 7D 1B 78 */ mr r29, r3
+/* 802AD0F4 002A8D54 4B FC 16 69 */ bl OSDisableInterrupts
+/* 802AD0F8 002A8D58 88 9D 00 00 */ lbz r4, 0(r29)
+/* 802AD0FC 002A8D5C 88 1D 00 01 */ lbz r0, 1(r29)
+/* 802AD100 002A8D60 7C 04 00 50 */ subf r0, r4, r0
+/* 802AD104 002A8D64 7C 1F 07 75 */ extsb. r31, r0
+/* 802AD108 002A8D68 40 80 00 10 */ bge lbl_802AD118
+/* 802AD10C 002A8D6C 80 1D 00 08 */ lwz r0, 8(r29)
+/* 802AD110 002A8D70 7C 1F 02 14 */ add r0, r31, r0
+/* 802AD114 002A8D74 7C 1F 07 74 */ extsb r31, r0
+lbl_802AD118:
+/* 802AD118 002A8D78 4B FC 16 6D */ bl OSRestoreInterrupts
+/* 802AD11C 002A8D7C 80 7D 00 08 */ lwz r3, 8(r29)
+/* 802AD120 002A8D80 7F C0 07 74 */ extsb r0, r30
+/* 802AD124 002A8D84 7C 9F 02 14 */ add r4, r31, r0
+/* 802AD128 002A8D88 38 03 FF FF */ addi r0, r3, -1
+/* 802AD12C 002A8D8C 7C 04 00 40 */ cmplw r4, r0
+/* 802AD130 002A8D90 41 81 00 0C */ bgt lbl_802AD13C
+/* 802AD134 002A8D94 38 60 00 01 */ li r3, 1
+/* 802AD138 002A8D98 48 00 00 08 */ b lbl_802AD140
+lbl_802AD13C:
+/* 802AD13C 002A8D9C 38 60 00 00 */ li r3, 0
+lbl_802AD140:
+/* 802AD140 002A8DA0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802AD144 002A8DA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802AD148 002A8DA8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802AD14C 002A8DAC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802AD150 002A8DB0 7C 08 03 A6 */ mtlr r0
+/* 802AD154 002A8DB4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802AD158 002A8DB8 4E 80 00 20 */ blr
+
+.global WPADiClearQueue
+WPADiClearQueue:
+/* 802AD15C 002A8DBC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802AD160 002A8DC0 7C 08 02 A6 */ mflr r0
+/* 802AD164 002A8DC4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802AD168 002A8DC8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802AD16C 002A8DCC 93 C1 00 08 */ stw r30, 8(r1)
+/* 802AD170 002A8DD0 7C 7E 1B 78 */ mr r30, r3
+/* 802AD174 002A8DD4 4B FC 15 E9 */ bl OSDisableInterrupts
+/* 802AD178 002A8DD8 80 1E 00 08 */ lwz r0, 8(r30)
+/* 802AD17C 002A8DDC 38 80 00 00 */ li r4, 0
+/* 802AD180 002A8DE0 7C 7F 1B 78 */ mr r31, r3
+/* 802AD184 002A8DE4 98 9E 00 00 */ stb r4, 0(r30)
+/* 802AD188 002A8DE8 1C A0 00 30 */ mulli r5, r0, 0x30
+/* 802AD18C 002A8DEC 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802AD190 002A8DF0 98 9E 00 01 */ stb r4, 1(r30)
+/* 802AD194 002A8DF4 38 80 00 00 */ li r4, 0
+/* 802AD198 002A8DF8 4B D5 6F 6D */ bl memset
+/* 802AD19C 002A8DFC 7F E3 FB 78 */ mr r3, r31
+/* 802AD1A0 002A8E00 4B FC 15 E5 */ bl OSRestoreInterrupts
+/* 802AD1A4 002A8E04 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802AD1A8 002A8E08 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802AD1AC 002A8E0C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802AD1B0 002A8E10 7C 08 03 A6 */ mtlr r0
+/* 802AD1B4 002A8E14 38 21 00 10 */ addi r1, r1, 0x10
+/* 802AD1B8 002A8E18 4E 80 00 20 */ blr
diff --git a/asm/SDK/fs.s b/asm/SDK/fs.s new file mode 100644 index 0000000..f3d27b5 --- /dev/null +++ b/asm/SDK/fs.s @@ -0,0 +1,1474 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ISFS_OpenLib
+ISFS_OpenLib:
+/* 802A46EC 002A034C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A46F0 002A0350 7C 08 02 A6 */ mflr r0
+/* 802A46F4 002A0354 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A46F8 002A0358 80 0D 89 94 */ lwz r0, lbl_8063DC54-_SDA_BASE_(r13)
+/* 802A46FC 002A035C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A4700 002A0360 3B E0 00 00 */ li r31, 0
+/* 802A4704 002A0364 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4708 002A0368 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A470C 002A036C 41 82 00 14 */ beq lbl_802A4720
+/* 802A4710 002A0370 4B FF E1 E5 */ bl IPCGetBufferLo
+/* 802A4714 002A0374 90 6D AE 20 */ stw r3, lbl_806400E0-_SDA_BASE_(r13)
+/* 802A4718 002A0378 4B FF E1 D5 */ bl IPCGetBufferHi
+/* 802A471C 002A037C 90 6D AE 24 */ stw r3, lbl_806400E4-_SDA_BASE_(r13)
+lbl_802A4720:
+/* 802A4720 002A0380 80 6D AE 20 */ lwz r3, lbl_806400E0-_SDA_BASE_(r13)
+/* 802A4724 002A0384 80 0D 89 94 */ lwz r0, lbl_8063DC54-_SDA_BASE_(r13)
+/* 802A4728 002A0388 38 63 00 1F */ addi r3, r3, 0x1f
+/* 802A472C 002A038C 54 63 00 34 */ rlwinm r3, r3, 0, 0, 0x1a
+/* 802A4730 002A0390 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4734 002A0394 90 6D AE 18 */ stw r3, lbl_806400D8-_SDA_BASE_(r13)
+/* 802A4738 002A0398 41 82 00 2C */ beq lbl_802A4764
+/* 802A473C 002A039C 80 0D AE 24 */ lwz r0, lbl_806400E4-_SDA_BASE_(r13)
+/* 802A4740 002A03A0 38 83 00 40 */ addi r4, r3, 0x40
+/* 802A4744 002A03A4 7C 04 00 40 */ cmplw r4, r0
+/* 802A4748 002A03A8 40 81 00 1C */ ble lbl_802A4764
+/* 802A474C 002A03AC 3C 60 80 44 */ lis r3, lbl_8043BF90@ha
+/* 802A4750 002A03B0 38 63 BF 90 */ addi r3, r3, lbl_8043BF90@l
+/* 802A4754 002A03B4 4C C6 31 82 */ crclr 6
+/* 802A4758 002A03B8 4B D6 33 6D */ bl func_80007AC4
+/* 802A475C 002A03BC 3B E0 FF EA */ li r31, -22
+/* 802A4760 002A03C0 48 00 00 98 */ b lbl_802A47F8
+lbl_802A4764:
+/* 802A4764 002A03C4 38 8D 89 98 */ addi r4, r13, lbl_8063DC58-_SDA_BASE_
+/* 802A4768 002A03C8 4B F2 9B 69 */ bl strcpy
+/* 802A476C 002A03CC 80 6D AE 18 */ lwz r3, lbl_806400D8-_SDA_BASE_(r13)
+/* 802A4770 002A03D0 38 80 00 00 */ li r4, 0
+/* 802A4774 002A03D4 4B FF E9 E5 */ bl IOS_Open
+/* 802A4778 002A03D8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A477C 002A03DC 90 6D 89 90 */ stw r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4780 002A03E0 40 80 00 0C */ bge lbl_802A478C
+/* 802A4784 002A03E4 7C 7F 1B 78 */ mr r31, r3
+/* 802A4788 002A03E8 48 00 00 70 */ b lbl_802A47F8
+lbl_802A478C:
+/* 802A478C 002A03EC 80 8D 89 94 */ lwz r4, lbl_8063DC54-_SDA_BASE_(r13)
+/* 802A4790 002A03F0 83 CD AE 18 */ lwz r30, lbl_806400D8-_SDA_BASE_(r13)
+/* 802A4794 002A03F4 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4798 002A03F8 41 82 00 2C */ beq lbl_802A47C4
+/* 802A479C 002A03FC 80 0D AE 24 */ lwz r0, lbl_806400E4-_SDA_BASE_(r13)
+/* 802A47A0 002A0400 38 7E 15 40 */ addi r3, r30, 0x1540
+/* 802A47A4 002A0404 7C 03 00 40 */ cmplw r3, r0
+/* 802A47A8 002A0408 40 81 00 1C */ ble lbl_802A47C4
+/* 802A47AC 002A040C 3C 60 80 44 */ lis r3, lbl_8043BF90@ha
+/* 802A47B0 002A0410 38 63 BF 90 */ addi r3, r3, lbl_8043BF90@l
+/* 802A47B4 002A0414 4C C6 31 82 */ crclr 6
+/* 802A47B8 002A0418 4B D6 33 0D */ bl func_80007AC4
+/* 802A47BC 002A041C 3B E0 FF EA */ li r31, -22
+/* 802A47C0 002A0420 48 00 00 38 */ b lbl_802A47F8
+lbl_802A47C4:
+/* 802A47C4 002A0424 2C 04 00 00 */ cmpwi r4, 0
+/* 802A47C8 002A0428 41 82 00 14 */ beq lbl_802A47DC
+/* 802A47CC 002A042C 38 7E 15 40 */ addi r3, r30, 0x1540
+/* 802A47D0 002A0430 4B FF E1 2D */ bl IPCSetBufferLo
+/* 802A47D4 002A0434 38 00 00 00 */ li r0, 0
+/* 802A47D8 002A0438 90 0D 89 94 */ stw r0, lbl_8063DC54-_SDA_BASE_(r13)
+lbl_802A47DC:
+/* 802A47DC 002A043C 7F C3 F3 78 */ mr r3, r30
+/* 802A47E0 002A0440 38 80 15 40 */ li r4, 0x1540
+/* 802A47E4 002A0444 4B FF F8 21 */ bl iosCreateHeap
+/* 802A47E8 002A0448 2C 03 00 00 */ cmpwi r3, 0
+/* 802A47EC 002A044C 90 6D AE 28 */ stw r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A47F0 002A0450 40 80 00 08 */ bge lbl_802A47F8
+/* 802A47F4 002A0454 3B E0 FF EA */ li r31, -22
+lbl_802A47F8:
+/* 802A47F8 002A0458 7F E3 FB 78 */ mr r3, r31
+/* 802A47FC 002A045C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A4800 002A0460 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A4804 002A0464 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A4808 002A0468 7C 08 03 A6 */ mtlr r0
+/* 802A480C 002A046C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A4810 002A0470 4E 80 00 20 */ blr
+_isfsFuncCb:
+/* 802A4814 002A0474 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A4818 002A0478 7C 08 02 A6 */ mflr r0
+/* 802A481C 002A047C 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 802A4820 002A0480 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A4824 002A0484 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A4828 002A0488 7C 9F 23 78 */ mr r31, r4
+/* 802A482C 002A048C 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A4830 002A0490 7C 7E 1B 78 */ mr r30, r3
+/* 802A4834 002A0494 41 84 00 F4 */ blt cr1, lbl_802A4928
+/* 802A4838 002A0498 80 04 01 08 */ lwz r0, 0x108(r4)
+/* 802A483C 002A049C 2C 00 00 03 */ cmpwi r0, 3
+/* 802A4840 002A04A0 41 82 00 5C */ beq lbl_802A489C
+/* 802A4844 002A04A4 40 80 00 14 */ bge lbl_802A4858
+/* 802A4848 002A04A8 2C 00 00 01 */ cmpwi r0, 1
+/* 802A484C 002A04AC 41 82 00 18 */ beq lbl_802A4864
+/* 802A4850 002A04B0 40 80 00 28 */ bge lbl_802A4878
+/* 802A4854 002A04B4 48 00 00 D4 */ b lbl_802A4928
+lbl_802A4858:
+/* 802A4858 002A04B8 2C 00 00 05 */ cmpwi r0, 5
+/* 802A485C 002A04BC 40 80 00 CC */ bge lbl_802A4928
+/* 802A4860 002A04C0 48 00 00 94 */ b lbl_802A48F4
+lbl_802A4864:
+/* 802A4864 002A04C4 40 86 00 C4 */ bne cr1, lbl_802A4928
+/* 802A4868 002A04C8 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A486C 002A04CC 38 A0 00 1C */ li r5, 0x1c
+/* 802A4870 002A04D0 4B D5 F7 91 */ bl memcpy
+/* 802A4874 002A04D4 48 00 00 B4 */ b lbl_802A4928
+lbl_802A4878:
+/* 802A4878 002A04D8 40 86 00 B0 */ bne cr1, lbl_802A4928
+/* 802A487C 002A04DC 38 04 00 3F */ addi r0, r4, 0x3f
+/* 802A4880 002A04E0 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A4884 002A04E4 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
+/* 802A4888 002A04E8 38 04 00 5F */ addi r0, r4, 0x5f
+/* 802A488C 002A04EC 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
+/* 802A4890 002A04F0 80 04 00 00 */ lwz r0, 0(r4)
+/* 802A4894 002A04F4 90 03 00 00 */ stw r0, 0(r3)
+/* 802A4898 002A04F8 48 00 00 90 */ b lbl_802A4928
+lbl_802A489C:
+/* 802A489C 002A04FC 40 86 00 8C */ bne cr1, lbl_802A4928
+/* 802A48A0 002A0500 38 04 00 5F */ addi r0, r4, 0x5f
+/* 802A48A4 002A0504 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A48A8 002A0508 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
+/* 802A48AC 002A050C 80 05 00 00 */ lwz r0, 0(r5)
+/* 802A48B0 002A0510 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48B4 002A0514 A0 05 00 04 */ lhz r0, 4(r5)
+/* 802A48B8 002A0518 80 64 01 10 */ lwz r3, 0x110(r4)
+/* 802A48BC 002A051C B0 03 00 00 */ sth r0, 0(r3)
+/* 802A48C0 002A0520 88 05 00 49 */ lbz r0, 0x49(r5)
+/* 802A48C4 002A0524 80 64 01 14 */ lwz r3, 0x114(r4)
+/* 802A48C8 002A0528 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48CC 002A052C 88 05 00 46 */ lbz r0, 0x46(r5)
+/* 802A48D0 002A0530 80 64 01 18 */ lwz r3, 0x118(r4)
+/* 802A48D4 002A0534 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48D8 002A0538 88 05 00 47 */ lbz r0, 0x47(r5)
+/* 802A48DC 002A053C 80 64 01 1C */ lwz r3, 0x11c(r4)
+/* 802A48E0 002A0540 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48E4 002A0544 88 05 00 48 */ lbz r0, 0x48(r5)
+/* 802A48E8 002A0548 80 64 01 20 */ lwz r3, 0x120(r4)
+/* 802A48EC 002A054C 90 03 00 00 */ stw r0, 0(r3)
+/* 802A48F0 002A0550 48 00 00 38 */ b lbl_802A4928
+lbl_802A48F4:
+/* 802A48F4 002A0554 40 86 00 34 */ bne cr1, lbl_802A4928
+/* 802A48F8 002A0558 38 04 00 3F */ addi r0, r4, 0x3f
+/* 802A48FC 002A055C 80 64 01 0C */ lwz r3, 0x10c(r4)
+/* 802A4900 002A0560 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a
+/* 802A4904 002A0564 38 05 00 5F */ addi r0, r5, 0x5f
+/* 802A4908 002A0568 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a
+/* 802A490C 002A056C 80 A6 00 00 */ lwz r5, 0(r6)
+/* 802A4910 002A0570 38 06 00 23 */ addi r0, r6, 0x23
+/* 802A4914 002A0574 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a
+/* 802A4918 002A0578 90 A3 00 00 */ stw r5, 0(r3)
+/* 802A491C 002A057C 80 06 00 00 */ lwz r0, 0(r6)
+/* 802A4920 002A0580 80 64 01 10 */ lwz r3, 0x110(r4)
+/* 802A4924 002A0584 90 03 00 00 */ stw r0, 0(r3)
+lbl_802A4928:
+/* 802A4928 002A0588 38 00 00 00 */ li r0, 0
+/* 802A492C 002A058C 90 0D AE 1C */ stw r0, lbl_806400DC-_SDA_BASE_(r13)
+/* 802A4930 002A0590 81 9F 01 00 */ lwz r12, 0x100(r31)
+/* 802A4934 002A0594 2C 0C 00 00 */ cmpwi r12, 0
+/* 802A4938 002A0598 41 82 00 14 */ beq lbl_802A494C
+/* 802A493C 002A059C 7F C3 F3 78 */ mr r3, r30
+/* 802A4940 002A05A0 80 9F 01 04 */ lwz r4, 0x104(r31)
+/* 802A4944 002A05A4 7D 89 03 A6 */ mtctr r12
+/* 802A4948 002A05A8 4E 80 04 21 */ bctrl
+lbl_802A494C:
+/* 802A494C 002A05AC 2C 1F 00 00 */ cmpwi r31, 0
+/* 802A4950 002A05B0 41 82 00 10 */ beq lbl_802A4960
+/* 802A4954 002A05B4 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4958 002A05B8 7F E4 FB 78 */ mr r4, r31
+/* 802A495C 002A05BC 4B FF F9 E1 */ bl iosFree
+lbl_802A4960:
+/* 802A4960 002A05C0 7F C3 F3 78 */ mr r3, r30
+/* 802A4964 002A05C4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A4968 002A05C8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A496C 002A05CC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A4970 002A05D0 7C 08 03 A6 */ mtlr r0
+/* 802A4974 002A05D4 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A4978 002A05D8 4E 80 00 20 */ blr
+
+.global ISFS_CreateDir
+ISFS_CreateDir:
+/* 802A497C 002A05DC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4980 002A05E0 7C 08 02 A6 */ mflr r0
+/* 802A4984 002A05E4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4988 002A05E8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A498C 002A05EC 4B F2 27 95 */ bl _savegpr_25
+/* 802A4990 002A05F0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4994 002A05F4 7C 79 1B 78 */ mr r25, r3
+/* 802A4998 002A05F8 7C 9A 23 78 */ mr r26, r4
+/* 802A499C 002A05FC 7C BB 2B 78 */ mr r27, r5
+/* 802A49A0 002A0600 7C DC 33 78 */ mr r28, r6
+/* 802A49A4 002A0604 7C FD 3B 78 */ mr r29, r7
+/* 802A49A8 002A0608 3B C0 00 00 */ li r30, 0
+/* 802A49AC 002A060C 41 82 00 24 */ beq lbl_802A49D0
+/* 802A49B0 002A0610 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A49B4 002A0614 2C 00 00 00 */ cmpwi r0, 0
+/* 802A49B8 002A0618 41 80 00 18 */ blt lbl_802A49D0
+/* 802A49BC 002A061C 38 80 00 40 */ li r4, 0x40
+/* 802A49C0 002A0620 4B FF DF 45 */ bl strnlen
+/* 802A49C4 002A0624 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A49C8 002A0628 7C 7F 1B 78 */ mr r31, r3
+/* 802A49CC 002A062C 40 82 00 0C */ bne lbl_802A49D8
+lbl_802A49D0:
+/* 802A49D0 002A0630 3B E0 FF 9B */ li r31, -101
+/* 802A49D4 002A0634 48 00 00 68 */ b lbl_802A4A3C
+lbl_802A49D8:
+/* 802A49D8 002A0638 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A49DC 002A063C 38 80 01 40 */ li r4, 0x140
+/* 802A49E0 002A0640 38 A0 00 20 */ li r5, 0x20
+/* 802A49E4 002A0644 4B FF F9 55 */ bl iosAllocAligned
+/* 802A49E8 002A0648 2C 03 00 00 */ cmpwi r3, 0
+/* 802A49EC 002A064C 7C 7E 1B 78 */ mr r30, r3
+/* 802A49F0 002A0650 40 82 00 0C */ bne lbl_802A49FC
+/* 802A49F4 002A0654 3B E0 FF EA */ li r31, -22
+/* 802A49F8 002A0658 48 00 00 44 */ b lbl_802A4A3C
+lbl_802A49FC:
+/* 802A49FC 002A065C 7F 24 CB 78 */ mr r4, r25
+/* 802A4A00 002A0660 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4A04 002A0664 38 63 00 06 */ addi r3, r3, 6
+/* 802A4A08 002A0668 4B D5 F5 F9 */ bl memcpy
+/* 802A4A0C 002A066C 9B 5E 00 49 */ stb r26, 0x49(r30)
+/* 802A4A10 002A0670 7F C5 F3 78 */ mr r5, r30
+/* 802A4A14 002A0674 38 80 00 03 */ li r4, 3
+/* 802A4A18 002A0678 38 C0 00 4C */ li r6, 0x4c
+/* 802A4A1C 002A067C 9B 7E 00 46 */ stb r27, 0x46(r30)
+/* 802A4A20 002A0680 38 E0 00 00 */ li r7, 0
+/* 802A4A24 002A0684 39 00 00 00 */ li r8, 0
+/* 802A4A28 002A0688 9B 9E 00 47 */ stb r28, 0x47(r30)
+/* 802A4A2C 002A068C 9B BE 00 48 */ stb r29, 0x48(r30)
+/* 802A4A30 002A0690 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4A34 002A0694 4B FF F0 BD */ bl IOS_Ioctl
+/* 802A4A38 002A0698 7C 7F 1B 78 */ mr r31, r3
+lbl_802A4A3C:
+/* 802A4A3C 002A069C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A4A40 002A06A0 41 82 00 14 */ beq lbl_802A4A54
+/* 802A4A44 002A06A4 41 82 00 10 */ beq lbl_802A4A54
+/* 802A4A48 002A06A8 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4A4C 002A06AC 7F C4 F3 78 */ mr r4, r30
+/* 802A4A50 002A06B0 4B FF F8 ED */ bl iosFree
+lbl_802A4A54:
+/* 802A4A54 002A06B4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4A58 002A06B8 7F E3 FB 78 */ mr r3, r31
+/* 802A4A5C 002A06BC 4B F2 27 11 */ bl _restgpr_25
+/* 802A4A60 002A06C0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4A64 002A06C4 7C 08 03 A6 */ mtlr r0
+/* 802A4A68 002A06C8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4A6C 002A06CC 4E 80 00 20 */ blr
+
+.global ISFS_CreateDirAsync
+ISFS_CreateDirAsync:
+/* 802A4A70 002A06D0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4A74 002A06D4 7C 08 02 A6 */ mflr r0
+/* 802A4A78 002A06D8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4A7C 002A06DC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4A80 002A06E0 4B F2 26 99 */ bl _savegpr_23
+/* 802A4A84 002A06E4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4A88 002A06E8 7C 77 1B 78 */ mr r23, r3
+/* 802A4A8C 002A06EC 7C 98 23 78 */ mr r24, r4
+/* 802A4A90 002A06F0 7C B9 2B 78 */ mr r25, r5
+/* 802A4A94 002A06F4 7C DA 33 78 */ mr r26, r6
+/* 802A4A98 002A06F8 7C FB 3B 78 */ mr r27, r7
+/* 802A4A9C 002A06FC 7D 1C 43 78 */ mr r28, r8
+/* 802A4AA0 002A0700 7D 3D 4B 78 */ mr r29, r9
+/* 802A4AA4 002A0704 41 82 00 24 */ beq lbl_802A4AC8
+/* 802A4AA8 002A0708 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4AAC 002A070C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4AB0 002A0710 41 80 00 18 */ blt lbl_802A4AC8
+/* 802A4AB4 002A0714 38 80 00 40 */ li r4, 0x40
+/* 802A4AB8 002A0718 4B FF DE 4D */ bl strnlen
+/* 802A4ABC 002A071C 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4AC0 002A0720 7C 7F 1B 78 */ mr r31, r3
+/* 802A4AC4 002A0724 40 82 00 0C */ bne lbl_802A4AD0
+lbl_802A4AC8:
+/* 802A4AC8 002A0728 38 60 FF 9B */ li r3, -101
+/* 802A4ACC 002A072C 48 00 00 80 */ b lbl_802A4B4C
+lbl_802A4AD0:
+/* 802A4AD0 002A0730 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4AD4 002A0734 38 80 01 40 */ li r4, 0x140
+/* 802A4AD8 002A0738 38 A0 00 20 */ li r5, 0x20
+/* 802A4ADC 002A073C 4B FF F8 5D */ bl iosAllocAligned
+/* 802A4AE0 002A0740 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4AE4 002A0744 7C 7E 1B 78 */ mr r30, r3
+/* 802A4AE8 002A0748 40 82 00 0C */ bne lbl_802A4AF4
+/* 802A4AEC 002A074C 38 60 FF 8A */ li r3, -118
+/* 802A4AF0 002A0750 48 00 00 5C */ b lbl_802A4B4C
+lbl_802A4AF4:
+/* 802A4AF4 002A0754 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A4AF8 002A0758 38 00 00 00 */ li r0, 0
+/* 802A4AFC 002A075C 7E E4 BB 78 */ mr r4, r23
+/* 802A4B00 002A0760 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4B04 002A0764 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A4B08 002A0768 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A4B0C 002A076C 38 63 00 06 */ addi r3, r3, 6
+/* 802A4B10 002A0770 4B D5 F4 F1 */ bl memcpy
+/* 802A4B14 002A0774 9B 1E 00 49 */ stb r24, 0x49(r30)
+/* 802A4B18 002A0778 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A4B1C 002A077C 7F C5 F3 78 */ mr r5, r30
+/* 802A4B20 002A0780 7F CA F3 78 */ mr r10, r30
+/* 802A4B24 002A0784 9B 3E 00 46 */ stb r25, 0x46(r30)
+/* 802A4B28 002A0788 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A4B2C 002A078C 38 80 00 03 */ li r4, 3
+/* 802A4B30 002A0790 38 C0 00 4C */ li r6, 0x4c
+/* 802A4B34 002A0794 9B 5E 00 47 */ stb r26, 0x47(r30)
+/* 802A4B38 002A0798 38 E0 00 00 */ li r7, 0
+/* 802A4B3C 002A079C 39 00 00 00 */ li r8, 0
+/* 802A4B40 002A07A0 9B 7E 00 48 */ stb r27, 0x48(r30)
+/* 802A4B44 002A07A4 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4B48 002A07A8 4B FF EE 71 */ bl IOS_IoctlAsync
+lbl_802A4B4C:
+/* 802A4B4C 002A07AC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4B50 002A07B0 4B F2 26 15 */ bl _restgpr_23
+/* 802A4B54 002A07B4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4B58 002A07B8 7C 08 03 A6 */ mtlr r0
+/* 802A4B5C 002A07BC 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4B60 002A07C0 4E 80 00 20 */ blr
+
+.global ISFS_ReadDir
+ISFS_ReadDir:
+/* 802A4B64 002A07C4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4B68 002A07C8 7C 08 02 A6 */ mflr r0
+/* 802A4B6C 002A07CC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4B70 002A07D0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A4B74 002A07D4 4B F2 25 B1 */ bl _savegpr_26
+/* 802A4B78 002A07D8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4B7C 002A07DC 7C 7A 1B 78 */ mr r26, r3
+/* 802A4B80 002A07E0 7C 9B 23 78 */ mr r27, r4
+/* 802A4B84 002A07E4 7C BC 2B 78 */ mr r28, r5
+/* 802A4B88 002A07E8 3B A0 00 00 */ li r29, 0
+/* 802A4B8C 002A07EC 41 82 00 34 */ beq lbl_802A4BC0
+/* 802A4B90 002A07F0 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4B94 002A07F4 41 82 00 2C */ beq lbl_802A4BC0
+/* 802A4B98 002A07F8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4B9C 002A07FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4BA0 002A0800 41 80 00 20 */ blt lbl_802A4BC0
+/* 802A4BA4 002A0804 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A4BA8 002A0808 40 82 00 18 */ bne lbl_802A4BC0
+/* 802A4BAC 002A080C 38 80 00 40 */ li r4, 0x40
+/* 802A4BB0 002A0810 4B FF DD 55 */ bl strnlen
+/* 802A4BB4 002A0814 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4BB8 002A0818 7C 7F 1B 78 */ mr r31, r3
+/* 802A4BBC 002A081C 40 82 00 0C */ bne lbl_802A4BC8
+lbl_802A4BC0:
+/* 802A4BC0 002A0820 3B E0 FF 9B */ li r31, -101
+/* 802A4BC4 002A0824 48 00 00 C0 */ b lbl_802A4C84
+lbl_802A4BC8:
+/* 802A4BC8 002A0828 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4BCC 002A082C 38 80 01 40 */ li r4, 0x140
+/* 802A4BD0 002A0830 38 A0 00 20 */ li r5, 0x20
+/* 802A4BD4 002A0834 4B FF F7 65 */ bl iosAllocAligned
+/* 802A4BD8 002A0838 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4BDC 002A083C 7C 7D 1B 78 */ mr r29, r3
+/* 802A4BE0 002A0840 40 82 00 0C */ bne lbl_802A4BEC
+/* 802A4BE4 002A0844 3B E0 FF EA */ li r31, -22
+/* 802A4BE8 002A0848 48 00 00 9C */ b lbl_802A4C84
+lbl_802A4BEC:
+/* 802A4BEC 002A084C 38 03 00 3F */ addi r0, r3, 0x3f
+/* 802A4BF0 002A0850 7F 44 D3 78 */ mr r4, r26
+/* 802A4BF4 002A0854 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
+/* 802A4BF8 002A0858 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4BFC 002A085C 7F C3 F3 78 */ mr r3, r30
+/* 802A4C00 002A0860 4B D5 F4 01 */ bl memcpy
+/* 802A4C04 002A0864 93 DD 00 00 */ stw r30, 0(r29)
+/* 802A4C08 002A0868 38 60 00 40 */ li r3, 0x40
+/* 802A4C0C 002A086C 38 1E 00 5F */ addi r0, r30, 0x5f
+/* 802A4C10 002A0870 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A4C14 002A0874 90 7D 00 04 */ stw r3, 4(r29)
+/* 802A4C18 002A0878 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
+/* 802A4C1C 002A087C 38 60 00 04 */ li r3, 4
+/* 802A4C20 002A0880 93 DD 00 08 */ stw r30, 8(r29)
+/* 802A4C24 002A0884 90 7D 00 0C */ stw r3, 0xc(r29)
+/* 802A4C28 002A0888 41 82 00 30 */ beq lbl_802A4C58
+/* 802A4C2C 002A088C 80 1C 00 00 */ lwz r0, 0(r28)
+/* 802A4C30 002A0890 38 A0 00 02 */ li r5, 2
+/* 802A4C34 002A0894 38 C0 00 02 */ li r6, 2
+/* 802A4C38 002A0898 90 1E 00 00 */ stw r0, 0(r30)
+/* 802A4C3C 002A089C 93 7D 00 10 */ stw r27, 0x10(r29)
+/* 802A4C40 002A08A0 80 1C 00 00 */ lwz r0, 0(r28)
+/* 802A4C44 002A08A4 1C 00 00 0D */ mulli r0, r0, 0xd
+/* 802A4C48 002A08A8 90 1D 00 14 */ stw r0, 0x14(r29)
+/* 802A4C4C 002A08AC 93 DD 00 18 */ stw r30, 0x18(r29)
+/* 802A4C50 002A08B0 90 7D 00 1C */ stw r3, 0x1c(r29)
+/* 802A4C54 002A08B4 48 00 00 0C */ b lbl_802A4C60
+lbl_802A4C58:
+/* 802A4C58 002A08B8 38 A0 00 01 */ li r5, 1
+/* 802A4C5C 002A08BC 38 C0 00 01 */ li r6, 1
+lbl_802A4C60:
+/* 802A4C60 002A08C0 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4C64 002A08C4 7F A7 EB 78 */ mr r7, r29
+/* 802A4C68 002A08C8 38 80 00 04 */ li r4, 4
+/* 802A4C6C 002A08CC 4B FF F1 D5 */ bl IOS_Ioctlv
+/* 802A4C70 002A08D0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4C74 002A08D4 7C 7F 1B 78 */ mr r31, r3
+/* 802A4C78 002A08D8 40 82 00 0C */ bne lbl_802A4C84
+/* 802A4C7C 002A08DC 80 1E 00 00 */ lwz r0, 0(r30)
+/* 802A4C80 002A08E0 90 1C 00 00 */ stw r0, 0(r28)
+lbl_802A4C84:
+/* 802A4C84 002A08E4 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4C88 002A08E8 41 82 00 14 */ beq lbl_802A4C9C
+/* 802A4C8C 002A08EC 41 82 00 10 */ beq lbl_802A4C9C
+/* 802A4C90 002A08F0 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4C94 002A08F4 7F A4 EB 78 */ mr r4, r29
+/* 802A4C98 002A08F8 4B FF F6 A5 */ bl iosFree
+lbl_802A4C9C:
+/* 802A4C9C 002A08FC 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A4CA0 002A0900 7F E3 FB 78 */ mr r3, r31
+/* 802A4CA4 002A0904 4B F2 24 CD */ bl _restgpr_26
+/* 802A4CA8 002A0908 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A4CAC 002A090C 7C 08 03 A6 */ mtlr r0
+/* 802A4CB0 002A0910 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4CB4 002A0914 4E 80 00 20 */ blr
+
+.global ISFS_ReadDirAsync
+ISFS_ReadDirAsync:
+/* 802A4CB8 002A0918 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4CBC 002A091C 7C 08 02 A6 */ mflr r0
+/* 802A4CC0 002A0920 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4CC4 002A0924 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4CC8 002A0928 4B F2 24 59 */ bl _savegpr_25
+/* 802A4CCC 002A092C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4CD0 002A0930 7C 79 1B 78 */ mr r25, r3
+/* 802A4CD4 002A0934 7C 9A 23 78 */ mr r26, r4
+/* 802A4CD8 002A0938 7C BB 2B 78 */ mr r27, r5
+/* 802A4CDC 002A093C 7C DC 33 78 */ mr r28, r6
+/* 802A4CE0 002A0940 7C FD 3B 78 */ mr r29, r7
+/* 802A4CE4 002A0944 41 82 00 34 */ beq lbl_802A4D18
+/* 802A4CE8 002A0948 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4CEC 002A094C 41 82 00 2C */ beq lbl_802A4D18
+/* 802A4CF0 002A0950 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4CF4 002A0954 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4CF8 002A0958 41 80 00 20 */ blt lbl_802A4D18
+/* 802A4CFC 002A095C 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A4D00 002A0960 40 82 00 18 */ bne lbl_802A4D18
+/* 802A4D04 002A0964 38 80 00 40 */ li r4, 0x40
+/* 802A4D08 002A0968 4B FF DB FD */ bl strnlen
+/* 802A4D0C 002A096C 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4D10 002A0970 7C 7F 1B 78 */ mr r31, r3
+/* 802A4D14 002A0974 40 82 00 0C */ bne lbl_802A4D20
+lbl_802A4D18:
+/* 802A4D18 002A0978 38 60 FF 9B */ li r3, -101
+/* 802A4D1C 002A097C 48 00 00 CC */ b lbl_802A4DE8
+lbl_802A4D20:
+/* 802A4D20 002A0980 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4D24 002A0984 38 80 01 40 */ li r4, 0x140
+/* 802A4D28 002A0988 38 A0 00 20 */ li r5, 0x20
+/* 802A4D2C 002A098C 4B FF F6 0D */ bl iosAllocAligned
+/* 802A4D30 002A0990 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4D34 002A0994 7C 7E 1B 78 */ mr r30, r3
+/* 802A4D38 002A0998 40 82 00 0C */ bne lbl_802A4D44
+/* 802A4D3C 002A099C 38 60 FF 8A */ li r3, -118
+/* 802A4D40 002A09A0 48 00 00 A8 */ b lbl_802A4DE8
+lbl_802A4D44:
+/* 802A4D44 002A09A4 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A4D48 002A09A8 38 C0 00 02 */ li r6, 2
+/* 802A4D4C 002A09AC 38 03 00 3F */ addi r0, r3, 0x3f
+/* 802A4D50 002A09B0 7F 24 CB 78 */ mr r4, r25
+/* 802A4D54 002A09B4 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A4D58 002A09B8 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a
+/* 802A4D5C 002A09BC 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4D60 002A09C0 90 C3 01 08 */ stw r6, 0x108(r3)
+/* 802A4D64 002A09C4 93 63 01 0C */ stw r27, 0x10c(r3)
+/* 802A4D68 002A09C8 7F A3 EB 78 */ mr r3, r29
+/* 802A4D6C 002A09CC 4B D5 F2 95 */ bl memcpy
+/* 802A4D70 002A09D0 93 BE 00 00 */ stw r29, 0(r30)
+/* 802A4D74 002A09D4 38 60 00 40 */ li r3, 0x40
+/* 802A4D78 002A09D8 38 1D 00 5F */ addi r0, r29, 0x5f
+/* 802A4D7C 002A09DC 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A4D80 002A09E0 90 7E 00 04 */ stw r3, 4(r30)
+/* 802A4D84 002A09E4 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
+/* 802A4D88 002A09E8 38 60 00 04 */ li r3, 4
+/* 802A4D8C 002A09EC 90 9E 00 08 */ stw r4, 8(r30)
+/* 802A4D90 002A09F0 90 7E 00 0C */ stw r3, 0xc(r30)
+/* 802A4D94 002A09F4 41 82 00 30 */ beq lbl_802A4DC4
+/* 802A4D98 002A09F8 80 1B 00 00 */ lwz r0, 0(r27)
+/* 802A4D9C 002A09FC 38 A0 00 02 */ li r5, 2
+/* 802A4DA0 002A0A00 38 C0 00 02 */ li r6, 2
+/* 802A4DA4 002A0A04 90 04 00 00 */ stw r0, 0(r4)
+/* 802A4DA8 002A0A08 93 5E 00 10 */ stw r26, 0x10(r30)
+/* 802A4DAC 002A0A0C 80 1B 00 00 */ lwz r0, 0(r27)
+/* 802A4DB0 002A0A10 1C 00 00 0D */ mulli r0, r0, 0xd
+/* 802A4DB4 002A0A14 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 802A4DB8 002A0A18 90 9E 00 18 */ stw r4, 0x18(r30)
+/* 802A4DBC 002A0A1C 90 7E 00 1C */ stw r3, 0x1c(r30)
+/* 802A4DC0 002A0A20 48 00 00 0C */ b lbl_802A4DCC
+lbl_802A4DC4:
+/* 802A4DC4 002A0A24 38 A0 00 01 */ li r5, 1
+/* 802A4DC8 002A0A28 38 C0 00 01 */ li r6, 1
+lbl_802A4DCC:
+/* 802A4DCC 002A0A2C 3D 00 80 2A */ lis r8, _isfsFuncCb@ha
+/* 802A4DD0 002A0A30 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4DD4 002A0A34 7F C7 F3 78 */ mr r7, r30
+/* 802A4DD8 002A0A38 7F C9 F3 78 */ mr r9, r30
+/* 802A4DDC 002A0A3C 39 08 48 14 */ addi r8, r8, _isfsFuncCb@l
+/* 802A4DE0 002A0A40 38 80 00 04 */ li r4, 4
+/* 802A4DE4 002A0A44 4B FF EF 79 */ bl IOS_IoctlvAsync
+lbl_802A4DE8:
+/* 802A4DE8 002A0A48 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4DEC 002A0A4C 4B F2 23 81 */ bl _restgpr_25
+/* 802A4DF0 002A0A50 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4DF4 002A0A54 7C 08 03 A6 */ mtlr r0
+/* 802A4DF8 002A0A58 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4DFC 002A0A5C 4E 80 00 20 */ blr
+
+.global ISFS_GetAttr
+ISFS_GetAttr:
+/* 802A4E00 002A0A60 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A4E04 002A0A64 7C 08 02 A6 */ mflr r0
+/* 802A4E08 002A0A68 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A4E0C 002A0A6C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4E10 002A0A70 4B F2 23 09 */ bl _savegpr_23
+/* 802A4E14 002A0A74 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4E18 002A0A78 7C 7E 1B 78 */ mr r30, r3
+/* 802A4E1C 002A0A7C 7C 97 23 78 */ mr r23, r4
+/* 802A4E20 002A0A80 7C B8 2B 78 */ mr r24, r5
+/* 802A4E24 002A0A84 7C D9 33 78 */ mr r25, r6
+/* 802A4E28 002A0A88 7C FA 3B 78 */ mr r26, r7
+/* 802A4E2C 002A0A8C 7D 1B 43 78 */ mr r27, r8
+/* 802A4E30 002A0A90 7D 3C 4B 78 */ mr r28, r9
+/* 802A4E34 002A0A94 3B A0 00 00 */ li r29, 0
+/* 802A4E38 002A0A98 41 82 00 54 */ beq lbl_802A4E8C
+/* 802A4E3C 002A0A9C 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4E40 002A0AA0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4E44 002A0AA4 41 80 00 48 */ blt lbl_802A4E8C
+/* 802A4E48 002A0AA8 38 80 00 40 */ li r4, 0x40
+/* 802A4E4C 002A0AAC 4B FF DA B9 */ bl strnlen
+/* 802A4E50 002A0AB0 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4E54 002A0AB4 7C 7F 1B 78 */ mr r31, r3
+/* 802A4E58 002A0AB8 41 82 00 34 */ beq lbl_802A4E8C
+/* 802A4E5C 002A0ABC 2C 17 00 00 */ cmpwi r23, 0
+/* 802A4E60 002A0AC0 41 82 00 2C */ beq lbl_802A4E8C
+/* 802A4E64 002A0AC4 2C 18 00 00 */ cmpwi r24, 0
+/* 802A4E68 002A0AC8 41 82 00 24 */ beq lbl_802A4E8C
+/* 802A4E6C 002A0ACC 2C 19 00 00 */ cmpwi r25, 0
+/* 802A4E70 002A0AD0 41 82 00 1C */ beq lbl_802A4E8C
+/* 802A4E74 002A0AD4 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A4E78 002A0AD8 41 82 00 14 */ beq lbl_802A4E8C
+/* 802A4E7C 002A0ADC 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A4E80 002A0AE0 41 82 00 0C */ beq lbl_802A4E8C
+/* 802A4E84 002A0AE4 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A4E88 002A0AE8 40 82 00 0C */ bne lbl_802A4E94
+lbl_802A4E8C:
+/* 802A4E8C 002A0AEC 3B E0 FF 9B */ li r31, -101
+/* 802A4E90 002A0AF0 48 00 00 94 */ b lbl_802A4F24
+lbl_802A4E94:
+/* 802A4E94 002A0AF4 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4E98 002A0AF8 38 80 01 40 */ li r4, 0x140
+/* 802A4E9C 002A0AFC 38 A0 00 20 */ li r5, 0x20
+/* 802A4EA0 002A0B00 4B FF F4 99 */ bl iosAllocAligned
+/* 802A4EA4 002A0B04 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4EA8 002A0B08 7C 7D 1B 78 */ mr r29, r3
+/* 802A4EAC 002A0B0C 40 82 00 0C */ bne lbl_802A4EB8
+/* 802A4EB0 002A0B10 3B E0 FF EA */ li r31, -22
+/* 802A4EB4 002A0B14 48 00 00 70 */ b lbl_802A4F24
+lbl_802A4EB8:
+/* 802A4EB8 002A0B18 7F C4 F3 78 */ mr r4, r30
+/* 802A4EBC 002A0B1C 38 BF 00 01 */ addi r5, r31, 1
+/* 802A4EC0 002A0B20 4B D5 F1 41 */ bl memcpy
+/* 802A4EC4 002A0B24 38 1D 00 5F */ addi r0, r29, 0x5f
+/* 802A4EC8 002A0B28 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4ECC 002A0B2C 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a
+/* 802A4ED0 002A0B30 7F A5 EB 78 */ mr r5, r29
+/* 802A4ED4 002A0B34 7F C7 F3 78 */ mr r7, r30
+/* 802A4ED8 002A0B38 38 80 00 06 */ li r4, 6
+/* 802A4EDC 002A0B3C 38 C0 00 40 */ li r6, 0x40
+/* 802A4EE0 002A0B40 39 00 00 4C */ li r8, 0x4c
+/* 802A4EE4 002A0B44 4B FF EC 0D */ bl IOS_Ioctl
+/* 802A4EE8 002A0B48 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4EEC 002A0B4C 7C 7F 1B 78 */ mr r31, r3
+/* 802A4EF0 002A0B50 40 82 00 34 */ bne lbl_802A4F24
+/* 802A4EF4 002A0B54 80 1E 00 00 */ lwz r0, 0(r30)
+/* 802A4EF8 002A0B58 90 17 00 00 */ stw r0, 0(r23)
+/* 802A4EFC 002A0B5C A0 1E 00 04 */ lhz r0, 4(r30)
+/* 802A4F00 002A0B60 B0 18 00 00 */ sth r0, 0(r24)
+/* 802A4F04 002A0B64 88 1E 00 49 */ lbz r0, 0x49(r30)
+/* 802A4F08 002A0B68 90 19 00 00 */ stw r0, 0(r25)
+/* 802A4F0C 002A0B6C 88 1E 00 46 */ lbz r0, 0x46(r30)
+/* 802A4F10 002A0B70 90 1A 00 00 */ stw r0, 0(r26)
+/* 802A4F14 002A0B74 88 1E 00 47 */ lbz r0, 0x47(r30)
+/* 802A4F18 002A0B78 90 1B 00 00 */ stw r0, 0(r27)
+/* 802A4F1C 002A0B7C 88 1E 00 48 */ lbz r0, 0x48(r30)
+/* 802A4F20 002A0B80 90 1C 00 00 */ stw r0, 0(r28)
+lbl_802A4F24:
+/* 802A4F24 002A0B84 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4F28 002A0B88 41 82 00 14 */ beq lbl_802A4F3C
+/* 802A4F2C 002A0B8C 41 82 00 10 */ beq lbl_802A4F3C
+/* 802A4F30 002A0B90 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4F34 002A0B94 7F A4 EB 78 */ mr r4, r29
+/* 802A4F38 002A0B98 4B FF F4 05 */ bl iosFree
+lbl_802A4F3C:
+/* 802A4F3C 002A0B9C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A4F40 002A0BA0 7F E3 FB 78 */ mr r3, r31
+/* 802A4F44 002A0BA4 4B F2 22 21 */ bl _restgpr_23
+/* 802A4F48 002A0BA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A4F4C 002A0BAC 7C 08 03 A6 */ mtlr r0
+/* 802A4F50 002A0BB0 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A4F54 002A0BB4 4E 80 00 20 */ blr
+
+.global ISFS_GetAttrAsync
+ISFS_GetAttrAsync:
+/* 802A4F58 002A0BB8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 802A4F5C 002A0BBC 7C 08 02 A6 */ mflr r0
+/* 802A4F60 002A0BC0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 802A4F64 002A0BC4 39 61 00 40 */ addi r11, r1, 0x40
+/* 802A4F68 002A0BC8 4B F2 21 A9 */ bl _savegpr_21
+/* 802A4F6C 002A0BCC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A4F70 002A0BD0 83 A1 00 48 */ lwz r29, 0x48(r1)
+/* 802A4F74 002A0BD4 7C 75 1B 78 */ mr r21, r3
+/* 802A4F78 002A0BD8 7C 96 23 78 */ mr r22, r4
+/* 802A4F7C 002A0BDC 7C B7 2B 78 */ mr r23, r5
+/* 802A4F80 002A0BE0 7C D8 33 78 */ mr r24, r6
+/* 802A4F84 002A0BE4 7C F9 3B 78 */ mr r25, r7
+/* 802A4F88 002A0BE8 7D 1A 43 78 */ mr r26, r8
+/* 802A4F8C 002A0BEC 7D 3B 4B 78 */ mr r27, r9
+/* 802A4F90 002A0BF0 7D 5C 53 78 */ mr r28, r10
+/* 802A4F94 002A0BF4 41 82 00 54 */ beq lbl_802A4FE8
+/* 802A4F98 002A0BF8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A4F9C 002A0BFC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4FA0 002A0C00 41 80 00 48 */ blt lbl_802A4FE8
+/* 802A4FA4 002A0C04 38 80 00 40 */ li r4, 0x40
+/* 802A4FA8 002A0C08 4B FF D9 5D */ bl strnlen
+/* 802A4FAC 002A0C0C 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A4FB0 002A0C10 7C 7F 1B 78 */ mr r31, r3
+/* 802A4FB4 002A0C14 41 82 00 34 */ beq lbl_802A4FE8
+/* 802A4FB8 002A0C18 2C 16 00 00 */ cmpwi r22, 0
+/* 802A4FBC 002A0C1C 41 82 00 2C */ beq lbl_802A4FE8
+/* 802A4FC0 002A0C20 2C 17 00 00 */ cmpwi r23, 0
+/* 802A4FC4 002A0C24 41 82 00 24 */ beq lbl_802A4FE8
+/* 802A4FC8 002A0C28 2C 18 00 00 */ cmpwi r24, 0
+/* 802A4FCC 002A0C2C 41 82 00 1C */ beq lbl_802A4FE8
+/* 802A4FD0 002A0C30 2C 19 00 00 */ cmpwi r25, 0
+/* 802A4FD4 002A0C34 41 82 00 14 */ beq lbl_802A4FE8
+/* 802A4FD8 002A0C38 2C 1A 00 00 */ cmpwi r26, 0
+/* 802A4FDC 002A0C3C 41 82 00 0C */ beq lbl_802A4FE8
+/* 802A4FE0 002A0C40 2C 1B 00 00 */ cmpwi r27, 0
+/* 802A4FE4 002A0C44 40 82 00 0C */ bne lbl_802A4FF0
+lbl_802A4FE8:
+/* 802A4FE8 002A0C48 38 60 FF 9B */ li r3, -101
+/* 802A4FEC 002A0C4C 48 00 00 88 */ b lbl_802A5074
+lbl_802A4FF0:
+/* 802A4FF0 002A0C50 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A4FF4 002A0C54 38 80 01 40 */ li r4, 0x140
+/* 802A4FF8 002A0C58 38 A0 00 20 */ li r5, 0x20
+/* 802A4FFC 002A0C5C 4B FF F3 3D */ bl iosAllocAligned
+/* 802A5000 002A0C60 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5004 002A0C64 7C 7E 1B 78 */ mr r30, r3
+/* 802A5008 002A0C68 40 82 00 0C */ bne lbl_802A5014
+/* 802A500C 002A0C6C 38 60 FF 8A */ li r3, -118
+/* 802A5010 002A0C70 48 00 00 64 */ b lbl_802A5074
+lbl_802A5014:
+/* 802A5014 002A0C74 92 C3 01 0C */ stw r22, 0x10c(r3)
+/* 802A5018 002A0C78 38 00 00 03 */ li r0, 3
+/* 802A501C 002A0C7C 7E A4 AB 78 */ mr r4, r21
+/* 802A5020 002A0C80 38 BF 00 01 */ addi r5, r31, 1
+/* 802A5024 002A0C84 92 E3 01 10 */ stw r23, 0x110(r3)
+/* 802A5028 002A0C88 93 03 01 14 */ stw r24, 0x114(r3)
+/* 802A502C 002A0C8C 93 23 01 18 */ stw r25, 0x118(r3)
+/* 802A5030 002A0C90 93 43 01 1C */ stw r26, 0x11c(r3)
+/* 802A5034 002A0C94 93 63 01 20 */ stw r27, 0x120(r3)
+/* 802A5038 002A0C98 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A503C 002A0C9C 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A5040 002A0CA0 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5044 002A0CA4 4B D5 EF BD */ bl memcpy
+/* 802A5048 002A0CA8 38 1E 00 5F */ addi r0, r30, 0x5f
+/* 802A504C 002A0CAC 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A5050 002A0CB0 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5054 002A0CB4 7F C5 F3 78 */ mr r5, r30
+/* 802A5058 002A0CB8 7F CA F3 78 */ mr r10, r30
+/* 802A505C 002A0CBC 54 07 00 34 */ rlwinm r7, r0, 0, 0, 0x1a
+/* 802A5060 002A0CC0 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A5064 002A0CC4 38 80 00 06 */ li r4, 6
+/* 802A5068 002A0CC8 38 C0 00 40 */ li r6, 0x40
+/* 802A506C 002A0CCC 39 00 00 4C */ li r8, 0x4c
+/* 802A5070 002A0CD0 4B FF E9 49 */ bl IOS_IoctlAsync
+lbl_802A5074:
+/* 802A5074 002A0CD4 39 61 00 40 */ addi r11, r1, 0x40
+/* 802A5078 002A0CD8 4B F2 20 E5 */ bl _restgpr_21
+/* 802A507C 002A0CDC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 802A5080 002A0CE0 7C 08 03 A6 */ mtlr r0
+/* 802A5084 002A0CE4 38 21 00 40 */ addi r1, r1, 0x40
+/* 802A5088 002A0CE8 4E 80 00 20 */ blr
+
+.global ISFS_Delete
+ISFS_Delete:
+/* 802A508C 002A0CEC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5090 002A0CF0 7C 08 02 A6 */ mflr r0
+/* 802A5094 002A0CF4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5098 002A0CF8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A509C 002A0CFC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A50A0 002A0D00 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A50A4 002A0D04 3B C0 00 00 */ li r30, 0
+/* 802A50A8 002A0D08 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A50AC 002A0D0C 7C 7D 1B 78 */ mr r29, r3
+/* 802A50B0 002A0D10 41 82 00 24 */ beq lbl_802A50D4
+/* 802A50B4 002A0D14 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A50B8 002A0D18 2C 00 00 00 */ cmpwi r0, 0
+/* 802A50BC 002A0D1C 41 80 00 18 */ blt lbl_802A50D4
+/* 802A50C0 002A0D20 38 80 00 40 */ li r4, 0x40
+/* 802A50C4 002A0D24 4B FF D8 41 */ bl strnlen
+/* 802A50C8 002A0D28 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A50CC 002A0D2C 7C 7F 1B 78 */ mr r31, r3
+/* 802A50D0 002A0D30 40 82 00 0C */ bne lbl_802A50DC
+lbl_802A50D4:
+/* 802A50D4 002A0D34 3B E0 FF 9B */ li r31, -101
+/* 802A50D8 002A0D38 48 00 00 54 */ b lbl_802A512C
+lbl_802A50DC:
+/* 802A50DC 002A0D3C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A50E0 002A0D40 38 80 01 40 */ li r4, 0x140
+/* 802A50E4 002A0D44 38 A0 00 20 */ li r5, 0x20
+/* 802A50E8 002A0D48 4B FF F2 51 */ bl iosAllocAligned
+/* 802A50EC 002A0D4C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A50F0 002A0D50 7C 7E 1B 78 */ mr r30, r3
+/* 802A50F4 002A0D54 40 82 00 0C */ bne lbl_802A5100
+/* 802A50F8 002A0D58 3B E0 FF EA */ li r31, -22
+/* 802A50FC 002A0D5C 48 00 00 30 */ b lbl_802A512C
+lbl_802A5100:
+/* 802A5100 002A0D60 7F A4 EB 78 */ mr r4, r29
+/* 802A5104 002A0D64 38 BF 00 01 */ addi r5, r31, 1
+/* 802A5108 002A0D68 4B D5 EE F9 */ bl memcpy
+/* 802A510C 002A0D6C 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5110 002A0D70 7F C5 F3 78 */ mr r5, r30
+/* 802A5114 002A0D74 38 80 00 07 */ li r4, 7
+/* 802A5118 002A0D78 38 C0 00 40 */ li r6, 0x40
+/* 802A511C 002A0D7C 38 E0 00 00 */ li r7, 0
+/* 802A5120 002A0D80 39 00 00 00 */ li r8, 0
+/* 802A5124 002A0D84 4B FF E9 CD */ bl IOS_Ioctl
+/* 802A5128 002A0D88 7C 7F 1B 78 */ mr r31, r3
+lbl_802A512C:
+/* 802A512C 002A0D8C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A5130 002A0D90 41 82 00 14 */ beq lbl_802A5144
+/* 802A5134 002A0D94 41 82 00 10 */ beq lbl_802A5144
+/* 802A5138 002A0D98 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A513C 002A0D9C 7F C4 F3 78 */ mr r4, r30
+/* 802A5140 002A0DA0 4B FF F1 FD */ bl iosFree
+lbl_802A5144:
+/* 802A5144 002A0DA4 7F E3 FB 78 */ mr r3, r31
+/* 802A5148 002A0DA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A514C 002A0DAC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A5150 002A0DB0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A5154 002A0DB4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5158 002A0DB8 7C 08 03 A6 */ mtlr r0
+/* 802A515C 002A0DBC 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5160 002A0DC0 4E 80 00 20 */ blr
+
+.global ISFS_DeleteAsync
+ISFS_DeleteAsync:
+/* 802A5164 002A0DC4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5168 002A0DC8 7C 08 02 A6 */ mflr r0
+/* 802A516C 002A0DCC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5170 002A0DD0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5174 002A0DD4 4B F2 1F B5 */ bl _savegpr_27
+/* 802A5178 002A0DD8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A517C 002A0DDC 7C 7B 1B 78 */ mr r27, r3
+/* 802A5180 002A0DE0 7C 9C 23 78 */ mr r28, r4
+/* 802A5184 002A0DE4 7C BD 2B 78 */ mr r29, r5
+/* 802A5188 002A0DE8 41 82 00 24 */ beq lbl_802A51AC
+/* 802A518C 002A0DEC 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5190 002A0DF0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5194 002A0DF4 41 80 00 18 */ blt lbl_802A51AC
+/* 802A5198 002A0DF8 38 80 00 40 */ li r4, 0x40
+/* 802A519C 002A0DFC 4B FF D7 69 */ bl strnlen
+/* 802A51A0 002A0E00 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A51A4 002A0E04 7C 7F 1B 78 */ mr r31, r3
+/* 802A51A8 002A0E08 40 82 00 0C */ bne lbl_802A51B4
+lbl_802A51AC:
+/* 802A51AC 002A0E0C 38 60 FF 9B */ li r3, -101
+/* 802A51B0 002A0E10 48 00 00 6C */ b lbl_802A521C
+lbl_802A51B4:
+/* 802A51B4 002A0E14 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A51B8 002A0E18 38 80 01 40 */ li r4, 0x140
+/* 802A51BC 002A0E1C 38 A0 00 20 */ li r5, 0x20
+/* 802A51C0 002A0E20 4B FF F1 79 */ bl iosAllocAligned
+/* 802A51C4 002A0E24 2C 03 00 00 */ cmpwi r3, 0
+/* 802A51C8 002A0E28 7C 7E 1B 78 */ mr r30, r3
+/* 802A51CC 002A0E2C 40 82 00 0C */ bne lbl_802A51D8
+/* 802A51D0 002A0E30 38 60 FF 8A */ li r3, -118
+/* 802A51D4 002A0E34 48 00 00 48 */ b lbl_802A521C
+lbl_802A51D8:
+/* 802A51D8 002A0E38 7F 64 DB 78 */ mr r4, r27
+/* 802A51DC 002A0E3C 38 BF 00 01 */ addi r5, r31, 1
+/* 802A51E0 002A0E40 4B D5 EE 21 */ bl memcpy
+/* 802A51E4 002A0E44 93 9E 01 00 */ stw r28, 0x100(r30)
+/* 802A51E8 002A0E48 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A51EC 002A0E4C 38 00 00 00 */ li r0, 0
+/* 802A51F0 002A0E50 7F C5 F3 78 */ mr r5, r30
+/* 802A51F4 002A0E54 93 BE 01 04 */ stw r29, 0x104(r30)
+/* 802A51F8 002A0E58 7F CA F3 78 */ mr r10, r30
+/* 802A51FC 002A0E5C 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A5200 002A0E60 38 80 00 07 */ li r4, 7
+/* 802A5204 002A0E64 90 1E 01 08 */ stw r0, 0x108(r30)
+/* 802A5208 002A0E68 38 C0 00 40 */ li r6, 0x40
+/* 802A520C 002A0E6C 38 E0 00 00 */ li r7, 0
+/* 802A5210 002A0E70 39 00 00 00 */ li r8, 0
+/* 802A5214 002A0E74 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5218 002A0E78 4B FF E7 A1 */ bl IOS_IoctlAsync
+lbl_802A521C:
+/* 802A521C 002A0E7C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5220 002A0E80 4B F2 1F 55 */ bl _restgpr_27
+/* 802A5224 002A0E84 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5228 002A0E88 7C 08 03 A6 */ mtlr r0
+/* 802A522C 002A0E8C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5230 002A0E90 4E 80 00 20 */ blr
+
+.global ISFS_RenameAsync
+ISFS_RenameAsync:
+/* 802A5234 002A0E94 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A5238 002A0E98 7C 08 02 A6 */ mflr r0
+/* 802A523C 002A0E9C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A5240 002A0EA0 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5244 002A0EA4 4B F2 1E DD */ bl _savegpr_25
+/* 802A5248 002A0EA8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A524C 002A0EAC 7C 79 1B 78 */ mr r25, r3
+/* 802A5250 002A0EB0 7C 9A 23 78 */ mr r26, r4
+/* 802A5254 002A0EB4 7C BB 2B 78 */ mr r27, r5
+/* 802A5258 002A0EB8 7C DC 33 78 */ mr r28, r6
+/* 802A525C 002A0EBC 41 82 00 44 */ beq lbl_802A52A0
+/* 802A5260 002A0EC0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5264 002A0EC4 41 82 00 3C */ beq lbl_802A52A0
+/* 802A5268 002A0EC8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A526C 002A0ECC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5270 002A0ED0 41 80 00 30 */ blt lbl_802A52A0
+/* 802A5274 002A0ED4 38 80 00 40 */ li r4, 0x40
+/* 802A5278 002A0ED8 4B FF D6 8D */ bl strnlen
+/* 802A527C 002A0EDC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5280 002A0EE0 7C 7E 1B 78 */ mr r30, r3
+/* 802A5284 002A0EE4 41 82 00 1C */ beq lbl_802A52A0
+/* 802A5288 002A0EE8 7F 43 D3 78 */ mr r3, r26
+/* 802A528C 002A0EEC 38 80 00 40 */ li r4, 0x40
+/* 802A5290 002A0EF0 4B FF D6 75 */ bl strnlen
+/* 802A5294 002A0EF4 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5298 002A0EF8 7C 7F 1B 78 */ mr r31, r3
+/* 802A529C 002A0EFC 40 82 00 0C */ bne lbl_802A52A8
+lbl_802A52A0:
+/* 802A52A0 002A0F00 38 60 FF 9B */ li r3, -101
+/* 802A52A4 002A0F04 48 00 00 7C */ b lbl_802A5320
+lbl_802A52A8:
+/* 802A52A8 002A0F08 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A52AC 002A0F0C 38 80 01 40 */ li r4, 0x140
+/* 802A52B0 002A0F10 38 A0 00 20 */ li r5, 0x20
+/* 802A52B4 002A0F14 4B FF F0 85 */ bl iosAllocAligned
+/* 802A52B8 002A0F18 2C 03 00 00 */ cmpwi r3, 0
+/* 802A52BC 002A0F1C 7C 7D 1B 78 */ mr r29, r3
+/* 802A52C0 002A0F20 40 82 00 0C */ bne lbl_802A52CC
+/* 802A52C4 002A0F24 38 60 FF 8A */ li r3, -118
+/* 802A52C8 002A0F28 48 00 00 58 */ b lbl_802A5320
+lbl_802A52CC:
+/* 802A52CC 002A0F2C 93 63 01 00 */ stw r27, 0x100(r3)
+/* 802A52D0 002A0F30 38 00 00 00 */ li r0, 0
+/* 802A52D4 002A0F34 7F 24 CB 78 */ mr r4, r25
+/* 802A52D8 002A0F38 38 BE 00 01 */ addi r5, r30, 1
+/* 802A52DC 002A0F3C 93 83 01 04 */ stw r28, 0x104(r3)
+/* 802A52E0 002A0F40 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A52E4 002A0F44 4B D5 ED 1D */ bl memcpy
+/* 802A52E8 002A0F48 7F 44 D3 78 */ mr r4, r26
+/* 802A52EC 002A0F4C 38 7D 00 40 */ addi r3, r29, 0x40
+/* 802A52F0 002A0F50 38 BF 00 01 */ addi r5, r31, 1
+/* 802A52F4 002A0F54 4B D5 ED 0D */ bl memcpy
+/* 802A52F8 002A0F58 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A52FC 002A0F5C 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5300 002A0F60 7F A5 EB 78 */ mr r5, r29
+/* 802A5304 002A0F64 7F AA EB 78 */ mr r10, r29
+/* 802A5308 002A0F68 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A530C 002A0F6C 38 80 00 08 */ li r4, 8
+/* 802A5310 002A0F70 38 C0 00 80 */ li r6, 0x80
+/* 802A5314 002A0F74 38 E0 00 00 */ li r7, 0
+/* 802A5318 002A0F78 39 00 00 00 */ li r8, 0
+/* 802A531C 002A0F7C 4B FF E6 9D */ bl IOS_IoctlAsync
+lbl_802A5320:
+/* 802A5320 002A0F80 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5324 002A0F84 4B F2 1E 49 */ bl _restgpr_25
+/* 802A5328 002A0F88 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A532C 002A0F8C 7C 08 03 A6 */ mtlr r0
+/* 802A5330 002A0F90 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A5334 002A0F94 4E 80 00 20 */ blr
+
+.global ISFS_GetUsageAsync
+ISFS_GetUsageAsync:
+/* 802A5338 002A0F98 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A533C 002A0F9C 7C 08 02 A6 */ mflr r0
+/* 802A5340 002A0FA0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A5344 002A0FA4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5348 002A0FA8 4B F2 1D D9 */ bl _savegpr_25
+/* 802A534C 002A0FAC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5350 002A0FB0 7C 79 1B 78 */ mr r25, r3
+/* 802A5354 002A0FB4 7C 9A 23 78 */ mr r26, r4
+/* 802A5358 002A0FB8 7C BB 2B 78 */ mr r27, r5
+/* 802A535C 002A0FBC 7C DF 33 78 */ mr r31, r6
+/* 802A5360 002A0FC0 7C FC 3B 78 */ mr r28, r7
+/* 802A5364 002A0FC4 41 82 00 34 */ beq lbl_802A5398
+/* 802A5368 002A0FC8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A536C 002A0FCC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5370 002A0FD0 41 80 00 28 */ blt lbl_802A5398
+/* 802A5374 002A0FD4 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5378 002A0FD8 41 82 00 20 */ beq lbl_802A5398
+/* 802A537C 002A0FDC 2C 05 00 00 */ cmpwi r5, 0
+/* 802A5380 002A0FE0 41 82 00 18 */ beq lbl_802A5398
+/* 802A5384 002A0FE4 38 80 00 40 */ li r4, 0x40
+/* 802A5388 002A0FE8 4B FF D5 7D */ bl strnlen
+/* 802A538C 002A0FEC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5390 002A0FF0 7C 7E 1B 78 */ mr r30, r3
+/* 802A5394 002A0FF4 40 82 00 0C */ bne lbl_802A53A0
+lbl_802A5398:
+/* 802A5398 002A0FF8 38 60 FF 9B */ li r3, -101
+/* 802A539C 002A0FFC 48 00 00 A8 */ b lbl_802A5444
+lbl_802A53A0:
+/* 802A53A0 002A1000 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A53A4 002A1004 38 80 01 40 */ li r4, 0x140
+/* 802A53A8 002A1008 38 A0 00 20 */ li r5, 0x20
+/* 802A53AC 002A100C 4B FF EF 8D */ bl iosAllocAligned
+/* 802A53B0 002A1010 2C 03 00 00 */ cmpwi r3, 0
+/* 802A53B4 002A1014 7C 7D 1B 78 */ mr r29, r3
+/* 802A53B8 002A1018 40 82 00 0C */ bne lbl_802A53C4
+/* 802A53BC 002A101C 38 60 FF 8A */ li r3, -118
+/* 802A53C0 002A1020 48 00 00 84 */ b lbl_802A5444
+lbl_802A53C4:
+/* 802A53C4 002A1024 93 E3 01 00 */ stw r31, 0x100(r3)
+/* 802A53C8 002A1028 3B E0 00 04 */ li r31, 4
+/* 802A53CC 002A102C 38 03 00 37 */ addi r0, r3, 0x37
+/* 802A53D0 002A1030 7F 24 CB 78 */ mr r4, r25
+/* 802A53D4 002A1034 93 83 01 04 */ stw r28, 0x104(r3)
+/* 802A53D8 002A1038 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a
+/* 802A53DC 002A103C 38 BE 00 01 */ addi r5, r30, 1
+/* 802A53E0 002A1040 93 E3 01 08 */ stw r31, 0x108(r3)
+/* 802A53E4 002A1044 93 43 01 0C */ stw r26, 0x10c(r3)
+/* 802A53E8 002A1048 93 63 01 10 */ stw r27, 0x110(r3)
+/* 802A53EC 002A104C 7F 83 E3 78 */ mr r3, r28
+/* 802A53F0 002A1050 4B D5 EC 11 */ bl memcpy
+/* 802A53F4 002A1054 93 9D 00 00 */ stw r28, 0(r29)
+/* 802A53F8 002A1058 38 60 00 40 */ li r3, 0x40
+/* 802A53FC 002A105C 3D 00 80 2A */ lis r8, _isfsFuncCb@ha
+/* 802A5400 002A1060 38 1C 00 5F */ addi r0, r28, 0x5f
+/* 802A5404 002A1064 90 7D 00 04 */ stw r3, 4(r29)
+/* 802A5408 002A1068 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
+/* 802A540C 002A106C 38 03 00 23 */ addi r0, r3, 0x23
+/* 802A5410 002A1070 7F A7 EB 78 */ mr r7, r29
+/* 802A5414 002A1074 90 7D 00 08 */ stw r3, 8(r29)
+/* 802A5418 002A1078 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
+/* 802A541C 002A107C 7F A9 EB 78 */ mr r9, r29
+/* 802A5420 002A1080 39 08 48 14 */ addi r8, r8, _isfsFuncCb@l
+/* 802A5424 002A1084 93 FD 00 0C */ stw r31, 0xc(r29)
+/* 802A5428 002A1088 38 80 00 0C */ li r4, 0xc
+/* 802A542C 002A108C 38 A0 00 01 */ li r5, 1
+/* 802A5430 002A1090 38 C0 00 02 */ li r6, 2
+/* 802A5434 002A1094 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 802A5438 002A1098 93 FD 00 14 */ stw r31, 0x14(r29)
+/* 802A543C 002A109C 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5440 002A10A0 4B FF E9 1D */ bl IOS_IoctlvAsync
+lbl_802A5444:
+/* 802A5444 002A10A4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5448 002A10A8 4B F2 1D 25 */ bl _restgpr_25
+/* 802A544C 002A10AC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A5450 002A10B0 7C 08 03 A6 */ mtlr r0
+/* 802A5454 002A10B4 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A5458 002A10B8 4E 80 00 20 */ blr
+
+.global ISFS_CreateFile
+ISFS_CreateFile:
+/* 802A545C 002A10BC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A5460 002A10C0 7C 08 02 A6 */ mflr r0
+/* 802A5464 002A10C4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A5468 002A10C8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A546C 002A10CC 4B F2 1C B5 */ bl _savegpr_25
+/* 802A5470 002A10D0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5474 002A10D4 7C 79 1B 78 */ mr r25, r3
+/* 802A5478 002A10D8 7C 9A 23 78 */ mr r26, r4
+/* 802A547C 002A10DC 7C BB 2B 78 */ mr r27, r5
+/* 802A5480 002A10E0 7C DC 33 78 */ mr r28, r6
+/* 802A5484 002A10E4 7C FD 3B 78 */ mr r29, r7
+/* 802A5488 002A10E8 3B C0 00 00 */ li r30, 0
+/* 802A548C 002A10EC 41 82 00 24 */ beq lbl_802A54B0
+/* 802A5490 002A10F0 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5494 002A10F4 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5498 002A10F8 41 80 00 18 */ blt lbl_802A54B0
+/* 802A549C 002A10FC 38 80 00 40 */ li r4, 0x40
+/* 802A54A0 002A1100 4B FF D4 65 */ bl strnlen
+/* 802A54A4 002A1104 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A54A8 002A1108 7C 7F 1B 78 */ mr r31, r3
+/* 802A54AC 002A110C 40 82 00 0C */ bne lbl_802A54B8
+lbl_802A54B0:
+/* 802A54B0 002A1110 3B E0 FF 9B */ li r31, -101
+/* 802A54B4 002A1114 48 00 00 68 */ b lbl_802A551C
+lbl_802A54B8:
+/* 802A54B8 002A1118 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A54BC 002A111C 38 80 01 40 */ li r4, 0x140
+/* 802A54C0 002A1120 38 A0 00 20 */ li r5, 0x20
+/* 802A54C4 002A1124 4B FF EE 75 */ bl iosAllocAligned
+/* 802A54C8 002A1128 2C 03 00 00 */ cmpwi r3, 0
+/* 802A54CC 002A112C 7C 7E 1B 78 */ mr r30, r3
+/* 802A54D0 002A1130 40 82 00 0C */ bne lbl_802A54DC
+/* 802A54D4 002A1134 3B E0 FF EA */ li r31, -22
+/* 802A54D8 002A1138 48 00 00 44 */ b lbl_802A551C
+lbl_802A54DC:
+/* 802A54DC 002A113C 7F 24 CB 78 */ mr r4, r25
+/* 802A54E0 002A1140 38 BF 00 01 */ addi r5, r31, 1
+/* 802A54E4 002A1144 38 63 00 06 */ addi r3, r3, 6
+/* 802A54E8 002A1148 4B D5 EB 19 */ bl memcpy
+/* 802A54EC 002A114C 9B 5E 00 49 */ stb r26, 0x49(r30)
+/* 802A54F0 002A1150 7F C5 F3 78 */ mr r5, r30
+/* 802A54F4 002A1154 38 80 00 09 */ li r4, 9
+/* 802A54F8 002A1158 38 C0 00 4C */ li r6, 0x4c
+/* 802A54FC 002A115C 9B 7E 00 46 */ stb r27, 0x46(r30)
+/* 802A5500 002A1160 38 E0 00 00 */ li r7, 0
+/* 802A5504 002A1164 39 00 00 00 */ li r8, 0
+/* 802A5508 002A1168 9B 9E 00 47 */ stb r28, 0x47(r30)
+/* 802A550C 002A116C 9B BE 00 48 */ stb r29, 0x48(r30)
+/* 802A5510 002A1170 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5514 002A1174 4B FF E5 DD */ bl IOS_Ioctl
+/* 802A5518 002A1178 7C 7F 1B 78 */ mr r31, r3
+lbl_802A551C:
+/* 802A551C 002A117C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A5520 002A1180 41 82 00 14 */ beq lbl_802A5534
+/* 802A5524 002A1184 41 82 00 10 */ beq lbl_802A5534
+/* 802A5528 002A1188 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A552C 002A118C 7F C4 F3 78 */ mr r4, r30
+/* 802A5530 002A1190 4B FF EE 0D */ bl iosFree
+lbl_802A5534:
+/* 802A5534 002A1194 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5538 002A1198 7F E3 FB 78 */ mr r3, r31
+/* 802A553C 002A119C 4B F2 1C 31 */ bl _restgpr_25
+/* 802A5540 002A11A0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A5544 002A11A4 7C 08 03 A6 */ mtlr r0
+/* 802A5548 002A11A8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A554C 002A11AC 4E 80 00 20 */ blr
+
+.global ISFS_CreateFileAsync
+ISFS_CreateFileAsync:
+/* 802A5550 002A11B0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802A5554 002A11B4 7C 08 02 A6 */ mflr r0
+/* 802A5558 002A11B8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802A555C 002A11BC 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5560 002A11C0 4B F2 1B B9 */ bl _savegpr_23
+/* 802A5564 002A11C4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5568 002A11C8 7C 77 1B 78 */ mr r23, r3
+/* 802A556C 002A11CC 7C 98 23 78 */ mr r24, r4
+/* 802A5570 002A11D0 7C B9 2B 78 */ mr r25, r5
+/* 802A5574 002A11D4 7C DA 33 78 */ mr r26, r6
+/* 802A5578 002A11D8 7C FB 3B 78 */ mr r27, r7
+/* 802A557C 002A11DC 7D 1C 43 78 */ mr r28, r8
+/* 802A5580 002A11E0 7D 3D 4B 78 */ mr r29, r9
+/* 802A5584 002A11E4 41 82 00 24 */ beq lbl_802A55A8
+/* 802A5588 002A11E8 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A558C 002A11EC 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5590 002A11F0 41 80 00 18 */ blt lbl_802A55A8
+/* 802A5594 002A11F4 38 80 00 40 */ li r4, 0x40
+/* 802A5598 002A11F8 4B FF D3 6D */ bl strnlen
+/* 802A559C 002A11FC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A55A0 002A1200 7C 7F 1B 78 */ mr r31, r3
+/* 802A55A4 002A1204 40 82 00 0C */ bne lbl_802A55B0
+lbl_802A55A8:
+/* 802A55A8 002A1208 38 60 FF 9B */ li r3, -101
+/* 802A55AC 002A120C 48 00 00 80 */ b lbl_802A562C
+lbl_802A55B0:
+/* 802A55B0 002A1210 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A55B4 002A1214 38 80 01 40 */ li r4, 0x140
+/* 802A55B8 002A1218 38 A0 00 20 */ li r5, 0x20
+/* 802A55BC 002A121C 4B FF ED 7D */ bl iosAllocAligned
+/* 802A55C0 002A1220 2C 03 00 00 */ cmpwi r3, 0
+/* 802A55C4 002A1224 7C 7E 1B 78 */ mr r30, r3
+/* 802A55C8 002A1228 40 82 00 0C */ bne lbl_802A55D4
+/* 802A55CC 002A122C 38 60 FF 8A */ li r3, -118
+/* 802A55D0 002A1230 48 00 00 5C */ b lbl_802A562C
+lbl_802A55D4:
+/* 802A55D4 002A1234 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A55D8 002A1238 38 00 00 00 */ li r0, 0
+/* 802A55DC 002A123C 7E E4 BB 78 */ mr r4, r23
+/* 802A55E0 002A1240 38 BF 00 01 */ addi r5, r31, 1
+/* 802A55E4 002A1244 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A55E8 002A1248 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A55EC 002A124C 38 63 00 06 */ addi r3, r3, 6
+/* 802A55F0 002A1250 4B D5 EA 11 */ bl memcpy
+/* 802A55F4 002A1254 9B 1E 00 49 */ stb r24, 0x49(r30)
+/* 802A55F8 002A1258 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A55FC 002A125C 7F C5 F3 78 */ mr r5, r30
+/* 802A5600 002A1260 7F CA F3 78 */ mr r10, r30
+/* 802A5604 002A1264 9B 3E 00 46 */ stb r25, 0x46(r30)
+/* 802A5608 002A1268 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A560C 002A126C 38 80 00 09 */ li r4, 9
+/* 802A5610 002A1270 38 C0 00 4C */ li r6, 0x4c
+/* 802A5614 002A1274 9B 5E 00 47 */ stb r26, 0x47(r30)
+/* 802A5618 002A1278 38 E0 00 00 */ li r7, 0
+/* 802A561C 002A127C 39 00 00 00 */ li r8, 0
+/* 802A5620 002A1280 9B 7E 00 48 */ stb r27, 0x48(r30)
+/* 802A5624 002A1284 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5628 002A1288 4B FF E3 91 */ bl IOS_IoctlAsync
+lbl_802A562C:
+/* 802A562C 002A128C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802A5630 002A1290 4B F2 1B 35 */ bl _restgpr_23
+/* 802A5634 002A1294 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802A5638 002A1298 7C 08 03 A6 */ mtlr r0
+/* 802A563C 002A129C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802A5640 002A12A0 4E 80 00 20 */ blr
+
+.global ISFS_Open
+ISFS_Open:
+/* 802A5644 002A12A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5648 002A12A8 7C 08 02 A6 */ mflr r0
+/* 802A564C 002A12AC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5650 002A12B0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5654 002A12B4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A5658 002A12B8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A565C 002A12BC 3B C0 00 00 */ li r30, 0
+/* 802A5660 002A12C0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A5664 002A12C4 7C 9D 23 78 */ mr r29, r4
+/* 802A5668 002A12C8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A566C 002A12CC 7C 7C 1B 78 */ mr r28, r3
+/* 802A5670 002A12D0 41 82 00 18 */ beq lbl_802A5688
+/* 802A5674 002A12D4 38 80 00 40 */ li r4, 0x40
+/* 802A5678 002A12D8 4B FF D2 8D */ bl strnlen
+/* 802A567C 002A12DC 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5680 002A12E0 7C 7F 1B 78 */ mr r31, r3
+/* 802A5684 002A12E4 40 82 00 0C */ bne lbl_802A5690
+lbl_802A5688:
+/* 802A5688 002A12E8 3B E0 FF 9B */ li r31, -101
+/* 802A568C 002A12EC 48 00 00 44 */ b lbl_802A56D0
+lbl_802A5690:
+/* 802A5690 002A12F0 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5694 002A12F4 38 80 01 40 */ li r4, 0x140
+/* 802A5698 002A12F8 38 A0 00 20 */ li r5, 0x20
+/* 802A569C 002A12FC 4B FF EC 9D */ bl iosAllocAligned
+/* 802A56A0 002A1300 2C 03 00 00 */ cmpwi r3, 0
+/* 802A56A4 002A1304 7C 7E 1B 78 */ mr r30, r3
+/* 802A56A8 002A1308 40 82 00 0C */ bne lbl_802A56B4
+/* 802A56AC 002A130C 3B E0 FF EA */ li r31, -22
+/* 802A56B0 002A1310 48 00 00 20 */ b lbl_802A56D0
+lbl_802A56B4:
+/* 802A56B4 002A1314 7F 84 E3 78 */ mr r4, r28
+/* 802A56B8 002A1318 38 BF 00 01 */ addi r5, r31, 1
+/* 802A56BC 002A131C 4B D5 E9 45 */ bl memcpy
+/* 802A56C0 002A1320 7F C3 F3 78 */ mr r3, r30
+/* 802A56C4 002A1324 7F A4 EB 78 */ mr r4, r29
+/* 802A56C8 002A1328 4B FF DA 91 */ bl IOS_Open
+/* 802A56CC 002A132C 7C 7F 1B 78 */ mr r31, r3
+lbl_802A56D0:
+/* 802A56D0 002A1330 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A56D4 002A1334 41 82 00 14 */ beq lbl_802A56E8
+/* 802A56D8 002A1338 41 82 00 10 */ beq lbl_802A56E8
+/* 802A56DC 002A133C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A56E0 002A1340 7F C4 F3 78 */ mr r4, r30
+/* 802A56E4 002A1344 4B FF EC 59 */ bl iosFree
+lbl_802A56E8:
+/* 802A56E8 002A1348 7F E3 FB 78 */ mr r3, r31
+/* 802A56EC 002A134C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A56F0 002A1350 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A56F4 002A1354 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A56F8 002A1358 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A56FC 002A135C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5700 002A1360 7C 08 03 A6 */ mtlr r0
+/* 802A5704 002A1364 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5708 002A1368 4E 80 00 20 */ blr
+
+.global ISFS_OpenAsync
+ISFS_OpenAsync:
+/* 802A570C 002A136C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5710 002A1370 7C 08 02 A6 */ mflr r0
+/* 802A5714 002A1374 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5718 002A1378 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A571C 002A137C 4B F2 1A 09 */ bl _savegpr_26
+/* 802A5720 002A1380 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5724 002A1384 7C 7A 1B 78 */ mr r26, r3
+/* 802A5728 002A1388 7C 9B 23 78 */ mr r27, r4
+/* 802A572C 002A138C 7C BC 2B 78 */ mr r28, r5
+/* 802A5730 002A1390 7C DD 33 78 */ mr r29, r6
+/* 802A5734 002A1394 41 82 00 18 */ beq lbl_802A574C
+/* 802A5738 002A1398 38 80 00 40 */ li r4, 0x40
+/* 802A573C 002A139C 4B FF D1 C9 */ bl strnlen
+/* 802A5740 002A13A0 28 03 00 40 */ cmplwi r3, 0x40
+/* 802A5744 002A13A4 7C 7F 1B 78 */ mr r31, r3
+/* 802A5748 002A13A8 40 82 00 0C */ bne lbl_802A5754
+lbl_802A574C:
+/* 802A574C 002A13AC 38 60 FF 9B */ li r3, -101
+/* 802A5750 002A13B0 48 00 00 5C */ b lbl_802A57AC
+lbl_802A5754:
+/* 802A5754 002A13B4 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5758 002A13B8 38 80 01 40 */ li r4, 0x140
+/* 802A575C 002A13BC 38 A0 00 20 */ li r5, 0x20
+/* 802A5760 002A13C0 4B FF EB D9 */ bl iosAllocAligned
+/* 802A5764 002A13C4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5768 002A13C8 7C 7E 1B 78 */ mr r30, r3
+/* 802A576C 002A13CC 40 82 00 0C */ bne lbl_802A5778
+/* 802A5770 002A13D0 38 60 FF 8A */ li r3, -118
+/* 802A5774 002A13D4 48 00 00 38 */ b lbl_802A57AC
+lbl_802A5778:
+/* 802A5778 002A13D8 93 83 01 00 */ stw r28, 0x100(r3)
+/* 802A577C 002A13DC 38 00 00 00 */ li r0, 0
+/* 802A5780 002A13E0 7F 44 D3 78 */ mr r4, r26
+/* 802A5784 002A13E4 38 BF 00 01 */ addi r5, r31, 1
+/* 802A5788 002A13E8 93 A3 01 04 */ stw r29, 0x104(r3)
+/* 802A578C 002A13EC 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5790 002A13F0 4B D5 E8 71 */ bl memcpy
+/* 802A5794 002A13F4 3C A0 80 2A */ lis r5, _isfsFuncCb@ha
+/* 802A5798 002A13F8 7F C3 F3 78 */ mr r3, r30
+/* 802A579C 002A13FC 7F 64 DB 78 */ mr r4, r27
+/* 802A57A0 002A1400 7F C6 F3 78 */ mr r6, r30
+/* 802A57A4 002A1404 38 A5 48 14 */ addi r5, r5, _isfsFuncCb@l
+/* 802A57A8 002A1408 4B FF D8 99 */ bl IOS_OpenAsync
+lbl_802A57AC:
+/* 802A57AC 002A140C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A57B0 002A1410 4B F2 19 C1 */ bl _restgpr_26
+/* 802A57B4 002A1414 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A57B8 002A1418 7C 08 03 A6 */ mtlr r0
+/* 802A57BC 002A141C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A57C0 002A1420 4E 80 00 20 */ blr
+
+.global ISFS_GetFileStats
+ISFS_GetFileStats:
+/* 802A57C4 002A1424 2C 04 00 00 */ cmpwi r4, 0
+/* 802A57C8 002A1428 41 82 00 0C */ beq lbl_802A57D4
+/* 802A57CC 002A142C 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A57D0 002A1430 41 82 00 0C */ beq lbl_802A57DC
+lbl_802A57D4:
+/* 802A57D4 002A1434 38 60 FF 9B */ li r3, -101
+/* 802A57D8 002A1438 4E 80 00 20 */ blr
+lbl_802A57DC:
+/* 802A57DC 002A143C 7C 87 23 78 */ mr r7, r4
+/* 802A57E0 002A1440 38 80 00 0B */ li r4, 0xb
+/* 802A57E4 002A1444 38 A0 00 00 */ li r5, 0
+/* 802A57E8 002A1448 38 C0 00 00 */ li r6, 0
+/* 802A57EC 002A144C 39 00 00 08 */ li r8, 8
+/* 802A57F0 002A1450 4B FF E3 00 */ b IOS_Ioctl
+/* 802A57F4 002A1454 4E 80 00 20 */ blr
+
+.global ISFS_Seek
+ISFS_Seek:
+/* 802A57F8 002A1458 4B FF E0 D8 */ b IOS_Seek
+
+.global ISFS_SeekAsync
+ISFS_SeekAsync:
+/* 802A57FC 002A145C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5800 002A1460 7C 08 02 A6 */ mflr r0
+/* 802A5804 002A1464 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5808 002A1468 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A580C 002A146C 4B F2 19 1D */ bl _savegpr_27
+/* 802A5810 002A1470 7C 7B 1B 78 */ mr r27, r3
+/* 802A5814 002A1474 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5818 002A1478 7C 9C 23 78 */ mr r28, r4
+/* 802A581C 002A147C 7C BD 2B 78 */ mr r29, r5
+/* 802A5820 002A1480 7C DE 33 78 */ mr r30, r6
+/* 802A5824 002A1484 7C FF 3B 78 */ mr r31, r7
+/* 802A5828 002A1488 38 80 01 40 */ li r4, 0x140
+/* 802A582C 002A148C 38 A0 00 20 */ li r5, 0x20
+/* 802A5830 002A1490 4B FF EB 09 */ bl iosAllocAligned
+/* 802A5834 002A1494 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5838 002A1498 40 82 00 0C */ bne lbl_802A5844
+/* 802A583C 002A149C 38 60 FF 8A */ li r3, -118
+/* 802A5840 002A14A0 48 00 00 30 */ b lbl_802A5870
+lbl_802A5844:
+/* 802A5844 002A14A4 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A5848 002A14A8 3C C0 80 2A */ lis r6, _isfsFuncCb@ha
+/* 802A584C 002A14AC 38 00 00 00 */ li r0, 0
+/* 802A5850 002A14B0 7F 84 E3 78 */ mr r4, r28
+/* 802A5854 002A14B4 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A5858 002A14B8 7F A5 EB 78 */ mr r5, r29
+/* 802A585C 002A14BC 7C 67 1B 78 */ mr r7, r3
+/* 802A5860 002A14C0 38 C6 48 14 */ addi r6, r6, _isfsFuncCb@l
+/* 802A5864 002A14C4 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5868 002A14C8 7F 63 DB 78 */ mr r3, r27
+/* 802A586C 002A14CC 4B FF DF 85 */ bl IOS_SeekAsync
+lbl_802A5870:
+/* 802A5870 002A14D0 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5874 002A14D4 4B F2 19 01 */ bl _restgpr_27
+/* 802A5878 002A14D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A587C 002A14DC 7C 08 03 A6 */ mtlr r0
+/* 802A5880 002A14E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5884 002A14E4 4E 80 00 20 */ blr
+
+.global ISFS_Read
+ISFS_Read:
+/* 802A5888 002A14E8 2C 04 00 00 */ cmpwi r4, 0
+/* 802A588C 002A14EC 41 82 00 0C */ beq lbl_802A5898
+/* 802A5890 002A14F0 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A5894 002A14F4 41 82 00 0C */ beq lbl_802A58A0
+lbl_802A5898:
+/* 802A5898 002A14F8 38 60 FF 9B */ li r3, -101
+/* 802A589C 002A14FC 4E 80 00 20 */ blr
+lbl_802A58A0:
+/* 802A58A0 002A1500 4B FF DC 40 */ b IOS_Read
+/* 802A58A4 002A1504 4E 80 00 20 */ blr
+
+.global ISFS_ReadAsync
+ISFS_ReadAsync:
+/* 802A58A8 002A1508 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A58AC 002A150C 7C 08 02 A6 */ mflr r0
+/* 802A58B0 002A1510 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A58B4 002A1514 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A58B8 002A1518 4B F2 18 71 */ bl _savegpr_27
+/* 802A58BC 002A151C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A58C0 002A1520 7C 7B 1B 78 */ mr r27, r3
+/* 802A58C4 002A1524 7C 9C 23 78 */ mr r28, r4
+/* 802A58C8 002A1528 7C BD 2B 78 */ mr r29, r5
+/* 802A58CC 002A152C 7C DE 33 78 */ mr r30, r6
+/* 802A58D0 002A1530 7C FF 3B 78 */ mr r31, r7
+/* 802A58D4 002A1534 41 82 00 0C */ beq lbl_802A58E0
+/* 802A58D8 002A1538 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A58DC 002A153C 41 82 00 0C */ beq lbl_802A58E8
+lbl_802A58E0:
+/* 802A58E0 002A1540 38 60 FF 9B */ li r3, -101
+/* 802A58E4 002A1544 48 00 00 50 */ b lbl_802A5934
+lbl_802A58E8:
+/* 802A58E8 002A1548 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A58EC 002A154C 38 80 01 40 */ li r4, 0x140
+/* 802A58F0 002A1550 38 A0 00 20 */ li r5, 0x20
+/* 802A58F4 002A1554 4B FF EA 45 */ bl iosAllocAligned
+/* 802A58F8 002A1558 2C 03 00 00 */ cmpwi r3, 0
+/* 802A58FC 002A155C 40 82 00 0C */ bne lbl_802A5908
+/* 802A5900 002A1560 38 60 FF 8A */ li r3, -118
+/* 802A5904 002A1564 48 00 00 30 */ b lbl_802A5934
+lbl_802A5908:
+/* 802A5908 002A1568 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A590C 002A156C 3C C0 80 2A */ lis r6, _isfsFuncCb@ha
+/* 802A5910 002A1570 38 00 00 00 */ li r0, 0
+/* 802A5914 002A1574 7F 84 E3 78 */ mr r4, r28
+/* 802A5918 002A1578 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A591C 002A157C 7F A5 EB 78 */ mr r5, r29
+/* 802A5920 002A1580 7C 67 1B 78 */ mr r7, r3
+/* 802A5924 002A1584 38 C6 48 14 */ addi r6, r6, _isfsFuncCb@l
+/* 802A5928 002A1588 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A592C 002A158C 7F 63 DB 78 */ mr r3, r27
+/* 802A5930 002A1590 4B FF DA B1 */ bl IOS_ReadAsync
+lbl_802A5934:
+/* 802A5934 002A1594 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A5938 002A1598 4B F2 18 3D */ bl _restgpr_27
+/* 802A593C 002A159C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5940 002A15A0 7C 08 03 A6 */ mtlr r0
+/* 802A5944 002A15A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5948 002A15A8 4E 80 00 20 */ blr
+
+.global ISFS_Write
+ISFS_Write:
+/* 802A594C 002A15AC 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5950 002A15B0 41 82 00 0C */ beq lbl_802A595C
+/* 802A5954 002A15B4 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A5958 002A15B8 41 82 00 0C */ beq lbl_802A5964
+lbl_802A595C:
+/* 802A595C 002A15BC 38 60 FF 9B */ li r3, -101
+/* 802A5960 002A15C0 4E 80 00 20 */ blr
+lbl_802A5964:
+/* 802A5964 002A15C4 4B FF DD 84 */ b IOS_Write
+/* 802A5968 002A15C8 4E 80 00 20 */ blr
+
+.global ISFS_WriteAsync
+ISFS_WriteAsync:
+/* 802A596C 002A15CC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5970 002A15D0 7C 08 02 A6 */ mflr r0
+/* 802A5974 002A15D4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5978 002A15D8 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A597C 002A15DC 4B F2 17 AD */ bl _savegpr_27
+/* 802A5980 002A15E0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A5984 002A15E4 7C 7B 1B 78 */ mr r27, r3
+/* 802A5988 002A15E8 7C 9C 23 78 */ mr r28, r4
+/* 802A598C 002A15EC 7C BD 2B 78 */ mr r29, r5
+/* 802A5990 002A15F0 7C DE 33 78 */ mr r30, r6
+/* 802A5994 002A15F4 7C FF 3B 78 */ mr r31, r7
+/* 802A5998 002A15F8 41 82 00 0C */ beq lbl_802A59A4
+/* 802A599C 002A15FC 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 802A59A0 002A1600 41 82 00 0C */ beq lbl_802A59AC
+lbl_802A59A4:
+/* 802A59A4 002A1604 38 60 FF 9B */ li r3, -101
+/* 802A59A8 002A1608 48 00 00 50 */ b lbl_802A59F8
+lbl_802A59AC:
+/* 802A59AC 002A160C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A59B0 002A1610 38 80 01 40 */ li r4, 0x140
+/* 802A59B4 002A1614 38 A0 00 20 */ li r5, 0x20
+/* 802A59B8 002A1618 4B FF E9 81 */ bl iosAllocAligned
+/* 802A59BC 002A161C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A59C0 002A1620 40 82 00 0C */ bne lbl_802A59CC
+/* 802A59C4 002A1624 38 60 FF 8A */ li r3, -118
+/* 802A59C8 002A1628 48 00 00 30 */ b lbl_802A59F8
+lbl_802A59CC:
+/* 802A59CC 002A162C 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A59D0 002A1630 3C C0 80 2A */ lis r6, _isfsFuncCb@ha
+/* 802A59D4 002A1634 38 00 00 00 */ li r0, 0
+/* 802A59D8 002A1638 7F 84 E3 78 */ mr r4, r28
+/* 802A59DC 002A163C 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A59E0 002A1640 7F A5 EB 78 */ mr r5, r29
+/* 802A59E4 002A1644 7C 67 1B 78 */ mr r7, r3
+/* 802A59E8 002A1648 38 C6 48 14 */ addi r6, r6, _isfsFuncCb@l
+/* 802A59EC 002A164C 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A59F0 002A1650 7F 63 DB 78 */ mr r3, r27
+/* 802A59F4 002A1654 4B FF DB F5 */ bl IOS_WriteAsync
+lbl_802A59F8:
+/* 802A59F8 002A1658 39 61 00 20 */ addi r11, r1, 0x20
+/* 802A59FC 002A165C 4B F2 17 79 */ bl _restgpr_27
+/* 802A5A00 002A1660 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5A04 002A1664 7C 08 03 A6 */ mtlr r0
+/* 802A5A08 002A1668 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5A0C 002A166C 4E 80 00 20 */ blr
+
+.global ISFS_Close
+ISFS_Close:
+/* 802A5A10 002A1670 4B FF D9 28 */ b IOS_Close
+
+.global ISFS_CloseAsync
+ISFS_CloseAsync:
+/* 802A5A14 002A1674 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A5A18 002A1678 7C 08 02 A6 */ mflr r0
+/* 802A5A1C 002A167C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A5A20 002A1680 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A5A24 002A1684 7C BF 2B 78 */ mr r31, r5
+/* 802A5A28 002A1688 38 A0 00 20 */ li r5, 0x20
+/* 802A5A2C 002A168C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A5A30 002A1690 7C 9E 23 78 */ mr r30, r4
+/* 802A5A34 002A1694 38 80 01 40 */ li r4, 0x140
+/* 802A5A38 002A1698 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A5A3C 002A169C 7C 7D 1B 78 */ mr r29, r3
+/* 802A5A40 002A16A0 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5A44 002A16A4 4B FF E8 F5 */ bl iosAllocAligned
+/* 802A5A48 002A16A8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A5A4C 002A16AC 40 82 00 0C */ bne lbl_802A5A58
+/* 802A5A50 002A16B0 38 60 FF 8A */ li r3, -118
+/* 802A5A54 002A16B4 48 00 00 28 */ b lbl_802A5A7C
+lbl_802A5A58:
+/* 802A5A58 002A16B8 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A5A5C 002A16BC 3C 80 80 2A */ lis r4, _isfsFuncCb@ha
+/* 802A5A60 002A16C0 38 00 00 00 */ li r0, 0
+/* 802A5A64 002A16C4 7C 65 1B 78 */ mr r5, r3
+/* 802A5A68 002A16C8 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A5A6C 002A16CC 38 84 48 14 */ addi r4, r4, _isfsFuncCb@l
+/* 802A5A70 002A16D0 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5A74 002A16D4 7F A3 EB 78 */ mr r3, r29
+/* 802A5A78 002A16D8 4B FF D8 01 */ bl IOS_CloseAsync
+lbl_802A5A7C:
+/* 802A5A7C 002A16DC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A5A80 002A16E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A5A84 002A16E4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A5A88 002A16E8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A5A8C 002A16EC 7C 08 03 A6 */ mtlr r0
+/* 802A5A90 002A16F0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A5A94 002A16F4 4E 80 00 20 */ blr
+
+.global ISFS_ShutdownAsync
+ISFS_ShutdownAsync:
+/* 802A5A98 002A16F8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A5A9C 002A16FC 7C 08 02 A6 */ mflr r0
+/* 802A5AA0 002A1700 38 A0 00 20 */ li r5, 0x20
+/* 802A5AA4 002A1704 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A5AA8 002A1708 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802A5AAC 002A170C 7C 9F 23 78 */ mr r31, r4
+/* 802A5AB0 002A1710 38 80 01 40 */ li r4, 0x140
+/* 802A5AB4 002A1714 93 C1 00 08 */ stw r30, 8(r1)
+/* 802A5AB8 002A1718 7C 7E 1B 78 */ mr r30, r3
+/* 802A5ABC 002A171C 80 6D AE 28 */ lwz r3, lbl_806400E8-_SDA_BASE_(r13)
+/* 802A5AC0 002A1720 4B FF E8 79 */ bl iosAllocAligned
+/* 802A5AC4 002A1724 80 0D 89 90 */ lwz r0, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5AC8 002A1728 2C 00 00 00 */ cmpwi r0, 0
+/* 802A5ACC 002A172C 40 80 00 0C */ bge lbl_802A5AD8
+/* 802A5AD0 002A1730 38 60 FF 9B */ li r3, -101
+/* 802A5AD4 002A1734 48 00 00 3C */ b lbl_802A5B10
+lbl_802A5AD8:
+/* 802A5AD8 002A1738 93 C3 01 00 */ stw r30, 0x100(r3)
+/* 802A5ADC 002A173C 3D 20 80 2A */ lis r9, _isfsFuncCb@ha
+/* 802A5AE0 002A1740 38 00 00 00 */ li r0, 0
+/* 802A5AE4 002A1744 7C 6A 1B 78 */ mr r10, r3
+/* 802A5AE8 002A1748 93 E3 01 04 */ stw r31, 0x104(r3)
+/* 802A5AEC 002A174C 39 29 48 14 */ addi r9, r9, _isfsFuncCb@l
+/* 802A5AF0 002A1750 38 80 00 0D */ li r4, 0xd
+/* 802A5AF4 002A1754 38 A0 00 00 */ li r5, 0
+/* 802A5AF8 002A1758 90 03 01 08 */ stw r0, 0x108(r3)
+/* 802A5AFC 002A175C 38 C0 00 00 */ li r6, 0
+/* 802A5B00 002A1760 38 E0 00 00 */ li r7, 0
+/* 802A5B04 002A1764 39 00 00 00 */ li r8, 0
+/* 802A5B08 002A1768 80 6D 89 90 */ lwz r3, lbl_8063DC50-_SDA_BASE_(r13)
+/* 802A5B0C 002A176C 4B FF DE AD */ bl IOS_IoctlAsync
+lbl_802A5B10:
+/* 802A5B10 002A1770 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A5B14 002A1774 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802A5B18 002A1778 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802A5B1C 002A177C 7C 08 03 A6 */ mtlr r0
+/* 802A5B20 002A1780 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A5B24 002A1784 4E 80 00 20 */ blr
diff --git a/asm/SDK/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/ipcProfile.s b/asm/SDK/ipcProfile.s new file mode 100644 index 0000000..e956ce2 --- /dev/null +++ b/asm/SDK/ipcProfile.s @@ -0,0 +1,133 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global IPCiProfInit
+IPCiProfInit:
+/* 802A4528 002A0188 38 80 00 00 */ li r4, 0
+/* 802A452C 002A018C 3C A0 80 53 */ lis r5, lbl_80536CB0@ha
+/* 802A4530 002A0190 3C C0 80 53 */ lis r6, lbl_80536C30@ha
+/* 802A4534 002A0194 38 00 00 02 */ li r0, 2
+/* 802A4538 002A0198 90 8D AE 10 */ stw r4, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A453C 002A019C 38 A5 6C B0 */ addi r5, r5, lbl_80536CB0@l
+/* 802A4540 002A01A0 38 C6 6C 30 */ addi r6, r6, lbl_80536C30@l
+/* 802A4544 002A01A4 38 60 FF FF */ li r3, -1
+/* 802A4548 002A01A8 90 8D AE 14 */ stw r4, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A454C 002A01AC 7C 09 03 A6 */ mtctr r0
+lbl_802A4550:
+/* 802A4550 002A01B0 90 85 00 00 */ stw r4, 0(r5)
+/* 802A4554 002A01B4 90 66 00 00 */ stw r3, 0(r6)
+/* 802A4558 002A01B8 90 85 00 04 */ stw r4, 4(r5)
+/* 802A455C 002A01BC 90 66 00 04 */ stw r3, 4(r6)
+/* 802A4560 002A01C0 90 85 00 08 */ stw r4, 8(r5)
+/* 802A4564 002A01C4 90 66 00 08 */ stw r3, 8(r6)
+/* 802A4568 002A01C8 90 85 00 0C */ stw r4, 0xc(r5)
+/* 802A456C 002A01CC 90 66 00 0C */ stw r3, 0xc(r6)
+/* 802A4570 002A01D0 90 85 00 10 */ stw r4, 0x10(r5)
+/* 802A4574 002A01D4 90 66 00 10 */ stw r3, 0x10(r6)
+/* 802A4578 002A01D8 90 85 00 14 */ stw r4, 0x14(r5)
+/* 802A457C 002A01DC 90 66 00 14 */ stw r3, 0x14(r6)
+/* 802A4580 002A01E0 90 85 00 18 */ stw r4, 0x18(r5)
+/* 802A4584 002A01E4 90 66 00 18 */ stw r3, 0x18(r6)
+/* 802A4588 002A01E8 90 85 00 1C */ stw r4, 0x1c(r5)
+/* 802A458C 002A01EC 90 66 00 1C */ stw r3, 0x1c(r6)
+/* 802A4590 002A01F0 90 85 00 20 */ stw r4, 0x20(r5)
+/* 802A4594 002A01F4 90 66 00 20 */ stw r3, 0x20(r6)
+/* 802A4598 002A01F8 90 85 00 24 */ stw r4, 0x24(r5)
+/* 802A459C 002A01FC 90 66 00 24 */ stw r3, 0x24(r6)
+/* 802A45A0 002A0200 90 85 00 28 */ stw r4, 0x28(r5)
+/* 802A45A4 002A0204 90 66 00 28 */ stw r3, 0x28(r6)
+/* 802A45A8 002A0208 90 85 00 2C */ stw r4, 0x2c(r5)
+/* 802A45AC 002A020C 90 66 00 2C */ stw r3, 0x2c(r6)
+/* 802A45B0 002A0210 90 85 00 30 */ stw r4, 0x30(r5)
+/* 802A45B4 002A0214 90 66 00 30 */ stw r3, 0x30(r6)
+/* 802A45B8 002A0218 90 85 00 34 */ stw r4, 0x34(r5)
+/* 802A45BC 002A021C 90 66 00 34 */ stw r3, 0x34(r6)
+/* 802A45C0 002A0220 90 85 00 38 */ stw r4, 0x38(r5)
+/* 802A45C4 002A0224 90 66 00 38 */ stw r3, 0x38(r6)
+/* 802A45C8 002A0228 90 85 00 3C */ stw r4, 0x3c(r5)
+/* 802A45CC 002A022C 38 A5 00 40 */ addi r5, r5, 0x40
+/* 802A45D0 002A0230 90 66 00 3C */ stw r3, 0x3c(r6)
+/* 802A45D4 002A0234 38 C6 00 40 */ addi r6, r6, 0x40
+/* 802A45D8 002A0238 42 00 FF 78 */ bdnz lbl_802A4550
+/* 802A45DC 002A023C 4E 80 00 20 */ blr
+
+.global IPCiProfQueueReq
+IPCiProfQueueReq:
+/* 802A45E0 002A0240 80 CD AE 10 */ lwz r6, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A45E4 002A0244 3D 00 80 53 */ lis r8, lbl_80536CB0@ha
+/* 802A45E8 002A0248 80 AD AE 14 */ lwz r5, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A45EC 002A024C 3D 20 80 53 */ lis r9, lbl_80536C30@ha
+/* 802A45F0 002A0250 38 C6 00 01 */ addi r6, r6, 1
+/* 802A45F4 002A0254 38 00 00 20 */ li r0, 0x20
+/* 802A45F8 002A0258 38 A5 00 01 */ addi r5, r5, 1
+/* 802A45FC 002A025C 90 CD AE 10 */ stw r6, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A4600 002A0260 39 08 6C B0 */ addi r8, r8, lbl_80536CB0@l
+/* 802A4604 002A0264 39 29 6C 30 */ addi r9, r9, lbl_80536C30@l
+/* 802A4608 002A0268 90 AD AE 14 */ stw r5, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A460C 002A026C 38 E0 00 00 */ li r7, 0
+/* 802A4610 002A0270 7C 09 03 A6 */ mtctr r0
+lbl_802A4614:
+/* 802A4614 002A0274 80 08 00 00 */ lwz r0, 0(r8)
+/* 802A4618 002A0278 2C 00 00 00 */ cmpwi r0, 0
+/* 802A461C 002A027C 40 82 00 30 */ bne lbl_802A464C
+/* 802A4620 002A0280 80 09 00 00 */ lwz r0, 0(r9)
+/* 802A4624 002A0284 2C 00 FF FF */ cmpwi r0, -1
+/* 802A4628 002A0288 40 82 00 24 */ bne lbl_802A464C
+/* 802A462C 002A028C 3C C0 80 53 */ lis r6, lbl_80536CB0@ha
+/* 802A4630 002A0290 3C A0 80 53 */ lis r5, lbl_80536C30@ha
+/* 802A4634 002A0294 54 E0 10 3A */ slwi r0, r7, 2
+/* 802A4638 002A0298 38 C6 6C B0 */ addi r6, r6, lbl_80536CB0@l
+/* 802A463C 002A029C 38 A5 6C 30 */ addi r5, r5, lbl_80536C30@l
+/* 802A4640 002A02A0 7C 66 01 2E */ stwx r3, r6, r0
+/* 802A4644 002A02A4 7C 85 01 2E */ stwx r4, r5, r0
+/* 802A4648 002A02A8 4E 80 00 20 */ blr
+lbl_802A464C:
+/* 802A464C 002A02AC 39 08 00 04 */ addi r8, r8, 4
+/* 802A4650 002A02B0 39 29 00 04 */ addi r9, r9, 4
+/* 802A4654 002A02B4 38 E7 00 01 */ addi r7, r7, 1
+/* 802A4658 002A02B8 42 00 FF BC */ bdnz lbl_802A4614
+/* 802A465C 002A02BC 4E 80 00 20 */ blr
+
+.global IPCiProfAck
+IPCiProfAck:
+/* 802A4660 002A02C0 80 6D AE 14 */ lwz r3, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A4664 002A02C4 38 03 FF FF */ addi r0, r3, -1
+/* 802A4668 002A02C8 90 0D AE 14 */ stw r0, lbl_806400D4-_SDA_BASE_(r13)
+/* 802A466C 002A02CC 4E 80 00 20 */ blr
+
+.global IPCiProfReply
+IPCiProfReply:
+/* 802A4670 002A02D0 80 AD AE 10 */ lwz r5, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A4674 002A02D4 3C C0 80 53 */ lis r6, lbl_80536CB0@ha
+/* 802A4678 002A02D8 3C E0 80 53 */ lis r7, lbl_80536C30@ha
+/* 802A467C 002A02DC 38 00 00 20 */ li r0, 0x20
+/* 802A4680 002A02E0 38 A5 FF FF */ addi r5, r5, -1
+/* 802A4684 002A02E4 38 C6 6C B0 */ addi r6, r6, lbl_80536CB0@l
+/* 802A4688 002A02E8 90 AD AE 10 */ stw r5, lbl_806400D0-_SDA_BASE_(r13)
+/* 802A468C 002A02EC 38 E7 6C 30 */ addi r7, r7, lbl_80536C30@l
+/* 802A4690 002A02F0 38 A0 00 00 */ li r5, 0
+/* 802A4694 002A02F4 7C 09 03 A6 */ mtctr r0
+lbl_802A4698:
+/* 802A4698 002A02F8 80 06 00 00 */ lwz r0, 0(r6)
+/* 802A469C 002A02FC 7C 03 00 40 */ cmplw r3, r0
+/* 802A46A0 002A0300 40 82 00 38 */ bne lbl_802A46D8
+/* 802A46A4 002A0304 80 07 00 00 */ lwz r0, 0(r7)
+/* 802A46A8 002A0308 7C 04 00 00 */ cmpw r4, r0
+/* 802A46AC 002A030C 40 82 00 2C */ bne lbl_802A46D8
+/* 802A46B0 002A0310 3C 80 80 53 */ lis r4, lbl_80536CB0@ha
+/* 802A46B4 002A0314 3C 60 80 53 */ lis r3, lbl_80536C30@ha
+/* 802A46B8 002A0318 54 A6 10 3A */ slwi r6, r5, 2
+/* 802A46BC 002A031C 38 A0 00 00 */ li r5, 0
+/* 802A46C0 002A0320 38 84 6C B0 */ addi r4, r4, lbl_80536CB0@l
+/* 802A46C4 002A0324 38 63 6C 30 */ addi r3, r3, lbl_80536C30@l
+/* 802A46C8 002A0328 38 00 FF FF */ li r0, -1
+/* 802A46CC 002A032C 7C A4 31 2E */ stwx r5, r4, r6
+/* 802A46D0 002A0330 7C 03 31 2E */ stwx r0, r3, r6
+/* 802A46D4 002A0334 4E 80 00 20 */ blr
+lbl_802A46D8:
+/* 802A46D8 002A0338 38 C6 00 04 */ addi r6, r6, 4
+/* 802A46DC 002A033C 38 E7 00 04 */ addi r7, r7, 4
+/* 802A46E0 002A0340 38 A5 00 01 */ addi r5, r5, 1
+/* 802A46E4 002A0344 42 00 FF B4 */ bdnz lbl_802A4698
+/* 802A46E8 002A0348 4E 80 00 20 */ blr
diff --git a/asm/SDK/ipcclt.s b/asm/SDK/ipcclt.s new file mode 100644 index 0000000..4fcfe96 --- /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 iosFree
+/* 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 IPCiProfReply
+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 IPCiProfAck
+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 iosCreateHeap
+/* 802A2DA0 0029EA00 90 6D 89 8C */ stw r3, lbl_8063DC4C-_SDA_BASE_(r13)
+/* 802A2DA4 0029EA04 7F E3 FB 78 */ mr r3, r31
+/* 802A2DA8 0029EA08 4B FF FB 55 */ bl IPCSetBufferLo
+/* 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 IPCiProfInit
+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 IPCiProfQueueReq
+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 iosFree
+/* 802A2F00 0029EB60 48 00 01 00 */ b lbl_802A3000
+lbl_802A2F04:
+/* 802A2F04 0029EB64 80 0D 89 88 */ lwz r0, lbl_8063DC48-_SDA_BASE_(r13)
+/* 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 iosFree
+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 iosAllocAligned
+/* 802A3088 0029ECE8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A308C 0029ECEC 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3090 0029ECF0 40 82 00 0C */ bne lbl_802A309C
+/* 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 iosAllocAligned
+/* 802A31A0 0029EE00 2C 03 00 00 */ cmpwi r3, 0
+/* 802A31A4 0029EE04 90 61 00 08 */ stw r3, 8(r1)
+/* 802A31A8 0029EE08 40 82 00 0C */ bne lbl_802A31B4
+/* 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 iosAllocAligned
+/* 802A32C4 0029EF24 2C 03 00 00 */ cmpwi r3, 0
+/* 802A32C8 0029EF28 90 61 00 08 */ stw r3, 8(r1)
+/* 802A32CC 0029EF2C 40 82 00 0C */ bne lbl_802A32D8
+/* 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 iosAllocAligned
+/* 802A3374 0029EFD4 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3378 0029EFD8 90 61 00 08 */ stw r3, 8(r1)
+/* 802A337C 0029EFDC 40 82 00 0C */ bne lbl_802A3388
+/* 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 iosAllocAligned
+/* 802A342C 0029F08C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3430 0029F090 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3434 0029F094 40 82 00 0C */ bne lbl_802A3440
+/* 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 iosAllocAligned
+/* 802A352C 0029F18C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3530 0029F190 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3534 0029F194 40 82 00 0C */ bne lbl_802A3540
+/* 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 iosAllocAligned
+/* 802A3634 0029F294 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3638 0029F298 90 61 00 08 */ stw r3, 8(r1)
+/* 802A363C 0029F29C 40 82 00 0C */ bne lbl_802A3648
+/* 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 iosAllocAligned
+/* 802A3734 0029F394 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3738 0029F398 90 61 00 08 */ stw r3, 8(r1)
+/* 802A373C 0029F39C 40 82 00 0C */ bne lbl_802A3748
+/* 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 iosAllocAligned
+/* 802A383C 0029F49C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3840 0029F4A0 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3844 0029F4A4 40 82 00 0C */ bne lbl_802A3850
+/* 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 iosAllocAligned
+/* 802A391C 0029F57C 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3920 0029F580 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3924 0029F584 40 82 00 0C */ bne lbl_802A3930
+/* 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 iosAllocAligned
+/* 802A3A10 0029F670 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3A14 0029F674 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3A18 0029F678 40 82 00 0C */ bne lbl_802A3A24
+/* 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 iosAllocAligned
+/* 802A3B40 0029F7A0 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3B44 0029F7A4 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3B48 0029F7A8 40 82 00 0C */ bne lbl_802A3B54
+/* 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 iosAllocAligned
+/* 802A3DB0 0029FA10 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3DB4 0029FA14 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3DB8 0029FA18 40 82 00 0C */ bne lbl_802A3DC4
+/* 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 iosAllocAligned
+/* 802A3E8C 0029FAEC 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3E90 0029FAF0 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3E94 0029FAF4 40 82 00 0C */ bne lbl_802A3EA0
+/* 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 iosAllocAligned
+/* 802A3F68 0029FBC8 2C 03 00 00 */ cmpwi r3, 0
+/* 802A3F6C 0029FBCC 90 61 00 08 */ stw r3, 8(r1)
+/* 802A3F70 0029FBD0 40 82 00 0C */ bne lbl_802A3F7C
+/* 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
diff --git a/asm/SDK/memory.s b/asm/SDK/memory.s new file mode 100644 index 0000000..69e943a --- /dev/null +++ b/asm/SDK/memory.s @@ -0,0 +1,373 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global iosCreateHeap
+iosCreateHeap:
+/* 802A4004 0029FC64 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4008 0029FC68 7C 08 02 A6 */ mflr r0
+/* 802A400C 0029FC6C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4010 0029FC70 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A4014 0029FC74 3B E0 FF FC */ li r31, -4
+/* 802A4018 0029FC78 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A401C 0029FC7C 7C 9E 23 78 */ mr r30, r4
+/* 802A4020 0029FC80 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A4024 0029FC84 7C 7D 1B 78 */ mr r29, r3
+/* 802A4028 0029FC88 4B FC A7 35 */ bl OSDisableInterrupts
+/* 802A402C 0029FC8C 57 A0 06 FF */ clrlwi. r0, r29, 0x1b
+/* 802A4030 0029FC90 40 82 00 E0 */ bne lbl_802A4110
+/* 802A4034 0029FC94 3C 80 80 53 */ lis r4, 0x8053
+/* 802A4038 0029FC98 84 04 6B B0 */ lwzu r0, 0x6bb0(r4)
+/* 802A403C 0029FC9C 3B E0 00 00 */ li r31, 0
+/* 802A4040 0029FCA0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4044 0029FCA4 41 82 00 78 */ beq lbl_802A40BC
+/* 802A4048 0029FCA8 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 802A404C 0029FCAC 3B E0 00 01 */ li r31, 1
+/* 802A4050 0029FCB0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4054 0029FCB4 41 82 00 68 */ beq lbl_802A40BC
+/* 802A4058 0029FCB8 80 04 00 20 */ lwz r0, 0x20(r4)
+/* 802A405C 0029FCBC 3B E0 00 02 */ li r31, 2
+/* 802A4060 0029FCC0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4064 0029FCC4 41 82 00 58 */ beq lbl_802A40BC
+/* 802A4068 0029FCC8 80 04 00 30 */ lwz r0, 0x30(r4)
+/* 802A406C 0029FCCC 3B E0 00 03 */ li r31, 3
+/* 802A4070 0029FCD0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4074 0029FCD4 41 82 00 48 */ beq lbl_802A40BC
+/* 802A4078 0029FCD8 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 802A407C 0029FCDC 3B E0 00 04 */ li r31, 4
+/* 802A4080 0029FCE0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4084 0029FCE4 41 82 00 38 */ beq lbl_802A40BC
+/* 802A4088 0029FCE8 80 04 00 50 */ lwz r0, 0x50(r4)
+/* 802A408C 0029FCEC 3B E0 00 05 */ li r31, 5
+/* 802A4090 0029FCF0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4094 0029FCF4 41 82 00 28 */ beq lbl_802A40BC
+/* 802A4098 0029FCF8 80 04 00 60 */ lwz r0, 0x60(r4)
+/* 802A409C 0029FCFC 3B E0 00 06 */ li r31, 6
+/* 802A40A0 0029FD00 2C 00 00 00 */ cmpwi r0, 0
+/* 802A40A4 0029FD04 41 82 00 18 */ beq lbl_802A40BC
+/* 802A40A8 0029FD08 80 04 00 70 */ lwz r0, 0x70(r4)
+/* 802A40AC 0029FD0C 3B E0 00 07 */ li r31, 7
+/* 802A40B0 0029FD10 2C 00 00 00 */ cmpwi r0, 0
+/* 802A40B4 0029FD14 41 82 00 08 */ beq lbl_802A40BC
+/* 802A40B8 0029FD18 3B E0 00 08 */ li r31, 8
+lbl_802A40BC:
+/* 802A40BC 0029FD1C 2C 1F 00 08 */ cmpwi r31, 8
+/* 802A40C0 0029FD20 40 82 00 0C */ bne lbl_802A40CC
+/* 802A40C4 0029FD24 3B E0 FF FB */ li r31, -5
+/* 802A40C8 0029FD28 48 00 00 48 */ b lbl_802A4110
+lbl_802A40CC:
+/* 802A40CC 0029FD2C 3C A0 80 53 */ lis r5, lbl_80536BB0@ha
+/* 802A40D0 0029FD30 57 E0 20 36 */ slwi r0, r31, 4
+/* 802A40D4 0029FD34 38 A5 6B B0 */ addi r5, r5, lbl_80536BB0@l
+/* 802A40D8 0029FD38 3C 80 BA BE */ lis r4, 0xbabe
+/* 802A40DC 0029FD3C 7C C5 02 14 */ add r6, r5, r0
+/* 802A40E0 0029FD40 38 00 00 00 */ li r0, 0
+/* 802A40E4 0029FD44 93 A6 00 00 */ stw r29, 0(r6)
+/* 802A40E8 0029FD48 38 BE FF F0 */ addi r5, r30, -16
+/* 802A40EC 0029FD4C 93 C6 00 08 */ stw r30, 8(r6)
+/* 802A40F0 0029FD50 93 A6 00 0C */ stw r29, 0xc(r6)
+/* 802A40F4 0029FD54 90 9D 00 00 */ stw r4, 0(r29)
+/* 802A40F8 0029FD58 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A40FC 0029FD5C 90 A4 00 04 */ stw r5, 4(r4)
+/* 802A4100 0029FD60 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A4104 0029FD64 90 04 00 08 */ stw r0, 8(r4)
+/* 802A4108 0029FD68 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A410C 0029FD6C 90 04 00 0C */ stw r0, 0xc(r4)
+lbl_802A4110:
+/* 802A4110 0029FD70 4B FC A6 75 */ bl OSRestoreInterrupts
+/* 802A4114 0029FD74 7F E3 FB 78 */ mr r3, r31
+/* 802A4118 0029FD78 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A411C 0029FD7C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A4120 0029FD80 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A4124 0029FD84 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A4128 0029FD88 7C 08 03 A6 */ mtlr r0
+/* 802A412C 0029FD8C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4130 0029FD90 4E 80 00 20 */ blr
+__iosAlloc:
+/* 802A4134 0029FD94 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4138 0029FD98 7C 08 02 A6 */ mflr r0
+/* 802A413C 0029FD9C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4140 0029FDA0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A4144 0029FDA4 3B E0 00 00 */ li r31, 0
+/* 802A4148 0029FDA8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A414C 0029FDAC 7C BE 2B 78 */ mr r30, r5
+/* 802A4150 0029FDB0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A4154 0029FDB4 7C 9D 23 78 */ mr r29, r4
+/* 802A4158 0029FDB8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802A415C 0029FDBC 7C 7C 1B 78 */ mr r28, r3
+/* 802A4160 0029FDC0 4B FC A5 FD */ bl OSDisableInterrupts
+/* 802A4164 0029FDC4 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4168 0029FDC8 41 82 01 A8 */ beq lbl_802A4310
+/* 802A416C 0029FDCC 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A4170 0029FDD0 41 82 01 A0 */ beq lbl_802A4310
+/* 802A4174 0029FDD4 38 1E FF FF */ addi r0, r30, -1
+/* 802A4178 0029FDD8 7F C0 00 39 */ and. r0, r30, r0
+/* 802A417C 0029FDDC 40 82 01 94 */ bne lbl_802A4310
+/* 802A4180 0029FDE0 28 1E 00 20 */ cmplwi r30, 0x20
+/* 802A4184 0029FDE4 40 80 00 08 */ bge lbl_802A418C
+/* 802A4188 0029FDE8 3B C0 00 20 */ li r30, 0x20
+lbl_802A418C:
+/* 802A418C 0029FDEC 2C 1C 00 00 */ cmpwi r28, 0
+/* 802A4190 0029FDF0 38 1D 00 1F */ addi r0, r29, 0x1f
+/* 802A4194 0029FDF4 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a
+/* 802A4198 0029FDF8 41 80 00 24 */ blt lbl_802A41BC
+/* 802A419C 0029FDFC 2C 1C 00 08 */ cmpwi r28, 8
+/* 802A41A0 0029FE00 40 80 00 1C */ bge lbl_802A41BC
+/* 802A41A4 0029FE04 3C 80 80 53 */ lis r4, lbl_80536BB0@ha
+/* 802A41A8 0029FE08 57 80 20 36 */ slwi r0, r28, 4
+/* 802A41AC 0029FE0C 38 84 6B B0 */ addi r4, r4, lbl_80536BB0@l
+/* 802A41B0 0029FE10 7C 04 00 6E */ lwzux r0, r4, r0
+/* 802A41B4 0029FE14 2C 00 00 00 */ cmpwi r0, 0
+/* 802A41B8 0029FE18 40 82 00 0C */ bne lbl_802A41C4
+lbl_802A41BC:
+/* 802A41BC 0029FE1C 3B E0 00 00 */ li r31, 0
+/* 802A41C0 0029FE20 48 00 01 50 */ b lbl_802A4310
+lbl_802A41C4:
+/* 802A41C4 0029FE24 81 04 00 0C */ lwz r8, 0xc(r4)
+/* 802A41C8 0029FE28 38 DE FF FF */ addi r6, r30, -1
+/* 802A41CC 0029FE2C 38 A0 00 00 */ li r5, 0
+/* 802A41D0 0029FE30 48 00 00 58 */ b lbl_802A4228
+lbl_802A41D4:
+/* 802A41D4 0029FE34 80 E8 00 04 */ lwz r7, 4(r8)
+/* 802A41D8 0029FE38 38 08 00 10 */ addi r0, r8, 0x10
+/* 802A41DC 0029FE3C 7C 00 30 38 */ and r0, r0, r6
+/* 802A41E0 0029FE40 7C 07 E8 40 */ cmplw r7, r29
+/* 802A41E4 0029FE44 7C 00 F0 50 */ subf r0, r0, r30
+/* 802A41E8 0029FE48 7C C0 00 38 */ and r0, r6, r0
+/* 802A41EC 0029FE4C 40 82 00 14 */ bne lbl_802A4200
+/* 802A41F0 0029FE50 2C 00 00 00 */ cmpwi r0, 0
+/* 802A41F4 0029FE54 40 82 00 0C */ bne lbl_802A4200
+/* 802A41F8 0029FE58 7D 05 43 78 */ mr r5, r8
+/* 802A41FC 0029FE5C 48 00 00 34 */ b lbl_802A4230
+lbl_802A4200:
+/* 802A4200 0029FE60 7C 1D 02 14 */ add r0, r29, r0
+/* 802A4204 0029FE64 7C 07 00 40 */ cmplw r7, r0
+/* 802A4208 0029FE68 41 80 00 1C */ blt lbl_802A4224
+/* 802A420C 0029FE6C 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4210 0029FE70 41 82 00 10 */ beq lbl_802A4220
+/* 802A4214 0029FE74 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A4218 0029FE78 7C 07 00 40 */ cmplw r7, r0
+/* 802A421C 0029FE7C 40 80 00 08 */ bge lbl_802A4224
+lbl_802A4220:
+/* 802A4220 0029FE80 7D 05 43 78 */ mr r5, r8
+lbl_802A4224:
+/* 802A4224 0029FE84 81 08 00 0C */ lwz r8, 0xc(r8)
+lbl_802A4228:
+/* 802A4228 0029FE88 2C 08 00 00 */ cmpwi r8, 0
+/* 802A422C 0029FE8C 40 82 FF A8 */ bne lbl_802A41D4
+lbl_802A4230:
+/* 802A4230 0029FE90 2C 05 00 00 */ cmpwi r5, 0
+/* 802A4234 0029FE94 41 82 00 DC */ beq lbl_802A4310
+/* 802A4238 0029FE98 38 FE FF FF */ addi r7, r30, -1
+/* 802A423C 0029FE9C 38 05 00 10 */ addi r0, r5, 0x10
+/* 802A4240 0029FEA0 7C 00 38 38 */ and r0, r0, r7
+/* 802A4244 0029FEA4 80 C5 00 04 */ lwz r6, 4(r5)
+/* 802A4248 0029FEA8 7C 00 F0 50 */ subf r0, r0, r30
+/* 802A424C 0029FEAC 7C E8 00 38 */ and r8, r7, r0
+/* 802A4250 0029FEB0 7C FD 42 14 */ add r7, r29, r8
+/* 802A4254 0029FEB4 38 07 00 10 */ addi r0, r7, 0x10
+/* 802A4258 0029FEB8 7C 06 00 40 */ cmplw r6, r0
+/* 802A425C 0029FEBC 40 81 00 48 */ ble lbl_802A42A4
+/* 802A4260 0029FEC0 7C C5 EA 14 */ add r6, r5, r29
+/* 802A4264 0029FEC4 3C 00 BA BE */ lis r0, 0xbabe
+/* 802A4268 0029FEC8 7D 28 32 14 */ add r9, r8, r6
+/* 802A426C 0029FECC 90 09 00 10 */ stw r0, 0x10(r9)
+/* 802A4270 0029FED0 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A4274 0029FED4 7C 1D 00 50 */ subf r0, r29, r0
+/* 802A4278 0029FED8 7C C8 00 50 */ subf r6, r8, r0
+/* 802A427C 0029FEDC 38 06 FF F0 */ addi r0, r6, -16
+/* 802A4280 0029FEE0 90 09 00 14 */ stw r0, 0x14(r9)
+/* 802A4284 0029FEE4 80 C5 00 0C */ lwz r6, 0xc(r5)
+/* 802A4288 0029FEE8 2C 06 00 00 */ cmpwi r6, 0
+/* 802A428C 0029FEEC 90 C9 00 1C */ stw r6, 0x1c(r9)
+/* 802A4290 0029FEF0 39 29 00 10 */ addi r9, r9, 0x10
+/* 802A4294 0029FEF4 41 82 00 08 */ beq lbl_802A429C
+/* 802A4298 0029FEF8 91 26 00 08 */ stw r9, 8(r6)
+lbl_802A429C:
+/* 802A429C 0029FEFC 91 25 00 0C */ stw r9, 0xc(r5)
+/* 802A42A0 0029FF00 90 E5 00 04 */ stw r7, 4(r5)
+lbl_802A42A4:
+/* 802A42A4 0029FF04 3C C0 BA BE */ lis r6, 0xBABE0001@ha
+/* 802A42A8 0029FF08 38 06 00 01 */ addi r0, r6, 0xBABE0001@l
+/* 802A42AC 0029FF0C 90 05 00 00 */ stw r0, 0(r5)
+/* 802A42B0 0029FF10 80 C5 00 08 */ lwz r6, 8(r5)
+/* 802A42B4 0029FF14 2C 06 00 00 */ cmpwi r6, 0
+/* 802A42B8 0029FF18 41 82 00 10 */ beq lbl_802A42C8
+/* 802A42BC 0029FF1C 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 802A42C0 0029FF20 90 06 00 0C */ stw r0, 0xc(r6)
+/* 802A42C4 0029FF24 48 00 00 0C */ b lbl_802A42D0
+lbl_802A42C8:
+/* 802A42C8 0029FF28 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 802A42CC 0029FF2C 90 04 00 0C */ stw r0, 0xc(r4)
+lbl_802A42D0:
+/* 802A42D0 0029FF30 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 802A42D4 0029FF34 2C 04 00 00 */ cmpwi r4, 0
+/* 802A42D8 0029FF38 41 82 00 0C */ beq lbl_802A42E4
+/* 802A42DC 0029FF3C 80 05 00 08 */ lwz r0, 8(r5)
+/* 802A42E0 0029FF40 90 04 00 08 */ stw r0, 8(r4)
+lbl_802A42E4:
+/* 802A42E4 0029FF44 38 00 00 00 */ li r0, 0
+/* 802A42E8 0029FF48 7F E5 42 14 */ add r31, r5, r8
+/* 802A42EC 0029FF4C 90 05 00 0C */ stw r0, 0xc(r5)
+/* 802A42F0 0029FF50 2C 08 00 00 */ cmpwi r8, 0
+/* 802A42F4 0029FF54 3B FF 00 10 */ addi r31, r31, 0x10
+/* 802A42F8 0029FF58 90 05 00 08 */ stw r0, 8(r5)
+/* 802A42FC 0029FF5C 41 82 00 14 */ beq lbl_802A4310
+/* 802A4300 0029FF60 3C 80 BA BE */ lis r4, 0xBABE0002@ha
+/* 802A4304 0029FF64 38 04 00 02 */ addi r0, r4, 0xBABE0002@l
+/* 802A4308 0029FF68 90 1F FF F0 */ stw r0, -0x10(r31)
+/* 802A430C 0029FF6C 90 BF FF F8 */ stw r5, -8(r31)
+lbl_802A4310:
+/* 802A4310 0029FF70 4B FC A4 75 */ bl OSRestoreInterrupts
+/* 802A4314 0029FF74 7F E3 FB 78 */ mr r3, r31
+/* 802A4318 0029FF78 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A431C 0029FF7C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A4320 0029FF80 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A4324 0029FF84 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802A4328 0029FF88 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A432C 0029FF8C 7C 08 03 A6 */ mtlr r0
+/* 802A4330 0029FF90 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4334 0029FF94 4E 80 00 20 */ blr
+
+.global iosAllocAligned
+iosAllocAligned:
+/* 802A4338 0029FF98 4B FF FD FC */ b __iosAlloc
+
+.global iosFree
+iosFree:
+/* 802A433C 0029FF9C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802A4340 0029FFA0 7C 08 02 A6 */ mflr r0
+/* 802A4344 0029FFA4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802A4348 0029FFA8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802A434C 0029FFAC 3B E0 FF FC */ li r31, -4
+/* 802A4350 0029FFB0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802A4354 0029FFB4 7C 9E 23 78 */ mr r30, r4
+/* 802A4358 0029FFB8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802A435C 0029FFBC 7C 7D 1B 78 */ mr r29, r3
+/* 802A4360 0029FFC0 4B FC A3 FD */ bl OSDisableInterrupts
+/* 802A4364 0029FFC4 2C 1E 00 00 */ cmpwi r30, 0
+/* 802A4368 0029FFC8 41 82 01 9C */ beq lbl_802A4504
+/* 802A436C 0029FFCC 2C 1D 00 00 */ cmpwi r29, 0
+/* 802A4370 0029FFD0 41 80 00 28 */ blt lbl_802A4398
+/* 802A4374 0029FFD4 2C 1D 00 08 */ cmpwi r29, 8
+/* 802A4378 0029FFD8 40 80 00 20 */ bge lbl_802A4398
+/* 802A437C 0029FFDC 3C 80 80 53 */ lis r4, lbl_80536BB0@ha
+/* 802A4380 0029FFE0 57 A0 20 36 */ slwi r0, r29, 4
+/* 802A4384 0029FFE4 38 84 6B B0 */ addi r4, r4, lbl_80536BB0@l
+/* 802A4388 0029FFE8 7C A4 02 14 */ add r5, r4, r0
+/* 802A438C 0029FFEC 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802A4390 0029FFF0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4394 0029FFF4 40 82 00 0C */ bne lbl_802A43A0
+lbl_802A4398:
+/* 802A4398 0029FFF8 3B E0 FF FC */ li r31, -4
+/* 802A439C 0029FFFC 48 00 01 68 */ b lbl_802A4504
+lbl_802A43A0:
+/* 802A43A0 002A0000 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A43A4 002A0004 7C 1E 00 40 */ cmplw r30, r0
+/* 802A43A8 002A0008 41 80 01 5C */ blt lbl_802A4504
+/* 802A43AC 002A000C 80 05 00 08 */ lwz r0, 8(r5)
+/* 802A43B0 002A0010 7C 04 02 14 */ add r0, r4, r0
+/* 802A43B4 002A0014 7C 1E 00 40 */ cmplw r30, r0
+/* 802A43B8 002A0018 41 81 01 4C */ bgt lbl_802A4504
+/* 802A43BC 002A001C 80 9E FF F0 */ lwz r4, -0x10(r30)
+/* 802A43C0 002A0020 38 DE FF F0 */ addi r6, r30, -16
+/* 802A43C4 002A0024 3C 04 45 42 */ addis r0, r4, 0x4542
+/* 802A43C8 002A0028 28 00 00 02 */ cmplwi r0, 2
+/* 802A43CC 002A002C 40 82 00 08 */ bne lbl_802A43D4
+/* 802A43D0 002A0030 80 C6 00 08 */ lwz r6, 8(r6)
+lbl_802A43D4:
+/* 802A43D4 002A0034 80 86 00 00 */ lwz r4, 0(r6)
+/* 802A43D8 002A0038 3C 04 45 42 */ addis r0, r4, 0x4542
+/* 802A43DC 002A003C 28 00 00 01 */ cmplwi r0, 1
+/* 802A43E0 002A0040 40 82 01 24 */ bne lbl_802A4504
+/* 802A43E4 002A0044 3C 00 BA BE */ lis r0, 0xbabe
+/* 802A43E8 002A0048 90 06 00 00 */ stw r0, 0(r6)
+/* 802A43EC 002A004C 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 802A43F0 002A0050 7C 87 23 78 */ mr r7, r4
+/* 802A43F4 002A0054 48 00 00 1C */ b lbl_802A4410
+lbl_802A43F8:
+/* 802A43F8 002A0058 80 07 00 0C */ lwz r0, 0xc(r7)
+/* 802A43FC 002A005C 2C 00 00 00 */ cmpwi r0, 0
+/* 802A4400 002A0060 41 82 00 18 */ beq lbl_802A4418
+/* 802A4404 002A0064 7C 00 30 40 */ cmplw r0, r6
+/* 802A4408 002A0068 41 81 00 10 */ bgt lbl_802A4418
+/* 802A440C 002A006C 7C 07 03 78 */ mr r7, r0
+lbl_802A4410:
+/* 802A4410 002A0070 2C 07 00 00 */ cmpwi r7, 0
+/* 802A4414 002A0074 40 82 FF E4 */ bne lbl_802A43F8
+lbl_802A4418:
+/* 802A4418 002A0078 2C 07 00 00 */ cmpwi r7, 0
+/* 802A441C 002A007C 41 82 00 30 */ beq lbl_802A444C
+/* 802A4420 002A0080 7C 06 38 40 */ cmplw r6, r7
+/* 802A4424 002A0084 40 81 00 28 */ ble lbl_802A444C
+/* 802A4428 002A0088 90 E6 00 08 */ stw r7, 8(r6)
+/* 802A442C 002A008C 80 07 00 0C */ lwz r0, 0xc(r7)
+/* 802A4430 002A0090 90 06 00 0C */ stw r0, 0xc(r6)
+/* 802A4434 002A0094 90 C7 00 0C */ stw r6, 0xc(r7)
+/* 802A4438 002A0098 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A443C 002A009C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4440 002A00A0 41 82 00 2C */ beq lbl_802A446C
+/* 802A4444 002A00A4 90 C4 00 08 */ stw r6, 8(r4)
+/* 802A4448 002A00A8 48 00 00 24 */ b lbl_802A446C
+lbl_802A444C:
+/* 802A444C 002A00AC 90 86 00 0C */ stw r4, 0xc(r6)
+/* 802A4450 002A00B0 38 00 00 00 */ li r0, 0
+/* 802A4454 002A00B4 90 C5 00 0C */ stw r6, 0xc(r5)
+/* 802A4458 002A00B8 90 06 00 08 */ stw r0, 8(r6)
+/* 802A445C 002A00BC 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A4460 002A00C0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4464 002A00C4 41 82 00 08 */ beq lbl_802A446C
+/* 802A4468 002A00C8 90 C4 00 08 */ stw r6, 8(r4)
+lbl_802A446C:
+/* 802A446C 002A00CC 2C 06 00 00 */ cmpwi r6, 0
+/* 802A4470 002A00D0 41 82 00 44 */ beq lbl_802A44B4
+/* 802A4474 002A00D4 80 06 00 04 */ lwz r0, 4(r6)
+/* 802A4478 002A00D8 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 802A447C 002A00DC 7C 86 02 14 */ add r4, r6, r0
+/* 802A4480 002A00E0 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A4484 002A00E4 7C 05 00 40 */ cmplw r5, r0
+/* 802A4488 002A00E8 40 82 00 2C */ bne lbl_802A44B4
+/* 802A448C 002A00EC 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 802A4490 002A00F0 2C 04 00 00 */ cmpwi r4, 0
+/* 802A4494 002A00F4 90 86 00 0C */ stw r4, 0xc(r6)
+/* 802A4498 002A00F8 41 82 00 08 */ beq lbl_802A44A0
+/* 802A449C 002A00FC 90 C4 00 08 */ stw r6, 8(r4)
+lbl_802A44A0:
+/* 802A44A0 002A0100 80 86 00 04 */ lwz r4, 4(r6)
+/* 802A44A4 002A0104 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A44A8 002A0108 7C 80 22 14 */ add r4, r0, r4
+/* 802A44AC 002A010C 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A44B0 002A0110 90 06 00 04 */ stw r0, 4(r6)
+lbl_802A44B4:
+/* 802A44B4 002A0114 80 A6 00 08 */ lwz r5, 8(r6)
+/* 802A44B8 002A0118 2C 05 00 00 */ cmpwi r5, 0
+/* 802A44BC 002A011C 41 82 00 44 */ beq lbl_802A4500
+/* 802A44C0 002A0120 80 05 00 04 */ lwz r0, 4(r5)
+/* 802A44C4 002A0124 80 C5 00 0C */ lwz r6, 0xc(r5)
+/* 802A44C8 002A0128 7C 85 02 14 */ add r4, r5, r0
+/* 802A44CC 002A012C 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A44D0 002A0130 7C 06 00 40 */ cmplw r6, r0
+/* 802A44D4 002A0134 40 82 00 2C */ bne lbl_802A4500
+/* 802A44D8 002A0138 80 86 00 0C */ lwz r4, 0xc(r6)
+/* 802A44DC 002A013C 2C 04 00 00 */ cmpwi r4, 0
+/* 802A44E0 002A0140 90 85 00 0C */ stw r4, 0xc(r5)
+/* 802A44E4 002A0144 41 82 00 08 */ beq lbl_802A44EC
+/* 802A44E8 002A0148 90 A4 00 08 */ stw r5, 8(r4)
+lbl_802A44EC:
+/* 802A44EC 002A014C 80 85 00 04 */ lwz r4, 4(r5)
+/* 802A44F0 002A0150 80 06 00 04 */ lwz r0, 4(r6)
+/* 802A44F4 002A0154 7C 80 22 14 */ add r4, r0, r4
+/* 802A44F8 002A0158 38 04 00 10 */ addi r0, r4, 0x10
+/* 802A44FC 002A015C 90 05 00 04 */ stw r0, 4(r5)
+lbl_802A4500:
+/* 802A4500 002A0160 3B E0 00 00 */ li r31, 0
+lbl_802A4504:
+/* 802A4504 002A0164 4B FC A2 81 */ bl OSRestoreInterrupts
+/* 802A4508 002A0168 7F E3 FB 78 */ mr r3, r31
+/* 802A450C 002A016C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802A4510 002A0170 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802A4514 002A0174 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802A4518 002A0178 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802A451C 002A017C 7C 08 03 A6 */ mtlr r0
+/* 802A4520 002A0180 38 21 00 20 */ addi r1, r1, 0x20
+/* 802A4524 002A0184 4E 80 00 20 */ blr
|