summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/SDK/MP/mpbeacon.s539
-rw-r--r--asm/SDK/MP/mpconnection.s620
-rw-r--r--asm/SDK/MP/mpnotification.s138
-rw-r--r--asm/SDK/MP/mpparent.s944
-rw-r--r--asm/SDK/MP/mpport.s399
-rw-r--r--asm/SDK/MP/mpsystem.s30
-rw-r--r--asm/SDK/MP/mptxrx.s28
-rw-r--r--asm/SDK/MP/mpwd.s10
-rw-r--r--asm/text_7.s10
-rw-r--r--asm/text_9.s2621
-rw-r--r--obj_files.mk5
11 files changed, 2686 insertions, 2658 deletions
diff --git a/asm/SDK/MP/mpbeacon.s b/asm/SDK/MP/mpbeacon.s
new file mode 100644
index 0000000..06c060f
--- /dev/null
+++ b/asm/SDK/MP/mpbeacon.s
@@ -0,0 +1,539 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global MPUpdateBeacon
+MPUpdateBeacon:
+/* 802F38A8 002EF508 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F38AC 002EF50C 7C 08 02 A6 */ mflr r0
+/* 802F38B0 002EF510 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F38B4 002EF514 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F38B8 002EF518 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F38BC 002EF51C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F38C0 002EF520 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802F38C4 002EF524 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
+/* 802F38C8 002EF528 2C 00 00 00 */ cmpwi r0, 0
+/* 802F38CC 002EF52C 40 82 00 0C */ bne lbl_802F38D8
+/* 802F38D0 002EF530 38 60 FF 14 */ li r3, -236
+/* 802F38D4 002EF534 48 00 00 D4 */ b lbl_802F39A8
+lbl_802F38D8:
+/* 802F38D8 002EF538 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
+/* 802F38DC 002EF53C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F38E0 002EF540 41 82 00 0C */ beq lbl_802F38EC
+/* 802F38E4 002EF544 38 60 FF FF */ li r3, -1
+/* 802F38E8 002EF548 48 00 00 C0 */ b lbl_802F39A8
+lbl_802F38EC:
+/* 802F38EC 002EF54C 38 61 00 08 */ addi r3, r1, 8
+/* 802F38F0 002EF550 38 80 00 01 */ li r4, 1
+/* 802F38F4 002EF554 4B FF D0 BD */ bl MPiAllocateCommandBlock
+/* 802F38F8 002EF558 2C 03 00 00 */ cmpwi r3, 0
+/* 802F38FC 002EF55C 40 80 00 08 */ bge lbl_802F3904
+/* 802F3900 002EF560 48 00 00 A8 */ b lbl_802F39A8
+lbl_802F3904:
+/* 802F3904 002EF564 83 82 AA 30 */ lwz r28, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3908 002EF568 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F390C 002EF56C 3B BC 65 DC */ addi r29, r28, 0x65dc
+/* 802F3910 002EF570 7F A3 EB 78 */ mr r3, r29
+/* 802F3914 002EF574 4B F7 C0 35 */ bl OSLockMutex
+/* 802F3918 002EF578 37 FC 55 60 */ addic. r31, r28, 0x5560
+/* 802F391C 002EF57C 40 82 00 14 */ bne lbl_802F3930
+/* 802F3920 002EF580 7F A3 EB 78 */ mr r3, r29
+/* 802F3924 002EF584 4B F7 C1 01 */ bl OSUnlockMutex
+/* 802F3928 002EF588 3B E0 FF 10 */ li r31, -240
+/* 802F392C 002EF58C 48 00 00 28 */ b lbl_802F3954
+lbl_802F3930:
+/* 802F3930 002EF590 7F E3 FB 78 */ mr r3, r31
+/* 802F3934 002EF594 48 00 02 E5 */ bl MPiMakeGameInfo
+/* 802F3938 002EF598 7F E3 FB 78 */ mr r3, r31
+/* 802F393C 002EF59C 4B FF D6 99 */ bl MPiChangeBeacon
+/* 802F3940 002EF5A0 7C 7F 1B 78 */ mr r31, r3
+/* 802F3944 002EF5A4 7F A3 EB 78 */ mr r3, r29
+/* 802F3948 002EF5A8 4B F7 C0 DD */ bl OSUnlockMutex
+/* 802F394C 002EF5AC 7F E0 FE 70 */ srawi r0, r31, 0x1f
+/* 802F3950 002EF5B0 7F FF 00 38 */ and r31, r31, r0
+lbl_802F3954:
+/* 802F3954 002EF5B4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F3958 002EF5B8 40 80 00 08 */ bge lbl_802F3960
+/* 802F395C 002EF5BC 48 00 00 30 */ b lbl_802F398C
+lbl_802F3960:
+/* 802F3960 002EF5C0 38 C0 00 00 */ li r6, 0
+/* 802F3964 002EF5C4 38 00 00 01 */ li r0, 1
+/* 802F3968 002EF5C8 90 DE 00 18 */ stw r6, 0x18(r30)
+/* 802F396C 002EF5CC 7F C4 F3 78 */ mr r4, r30
+/* 802F3970 002EF5D0 38 7C 65 24 */ addi r3, r28, 0x6524
+/* 802F3974 002EF5D4 38 A0 00 01 */ li r5, 1
+/* 802F3978 002EF5D8 90 1E 00 04 */ stw r0, 4(r30)
+/* 802F397C 002EF5DC 90 DE 00 1C */ stw r6, 0x1c(r30)
+/* 802F3980 002EF5E0 90 DE 00 20 */ stw r6, 0x20(r30)
+/* 802F3984 002EF5E4 4B FF D0 D5 */ bl MPiSendRequest
+/* 802F3988 002EF5E8 7C 7F 1B 78 */ mr r31, r3
+lbl_802F398C:
+/* 802F398C 002EF5EC 80 61 00 08 */ lwz r3, 8(r1)
+/* 802F3990 002EF5F0 4B FF D0 B5 */ bl MPiFreeCommandBlock
+/* 802F3994 002EF5F4 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F3998 002EF5F8 40 80 00 0C */ bge lbl_802F39A4
+/* 802F399C 002EF5FC 7F E3 FB 78 */ mr r3, r31
+/* 802F39A0 002EF600 48 00 00 08 */ b lbl_802F39A8
+lbl_802F39A4:
+/* 802F39A4 002EF604 38 60 00 00 */ li r3, 0
+lbl_802F39A8:
+/* 802F39A8 002EF608 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F39AC 002EF60C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F39B0 002EF610 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F39B4 002EF614 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F39B8 002EF618 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802F39BC 002EF61C 7C 08 03 A6 */ mtlr r0
+/* 802F39C0 002EF620 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F39C4 002EF624 4E 80 00 20 */ blr
+
+.global MPUpdateBeaconAsync
+MPUpdateBeaconAsync:
+/* 802F39C8 002EF628 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F39CC 002EF62C 7C 08 02 A6 */ mflr r0
+/* 802F39D0 002EF630 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F39D4 002EF634 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F39D8 002EF638 4B ED 37 51 */ bl _savegpr_27
+/* 802F39DC 002EF63C 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
+/* 802F39E0 002EF640 7C 7B 1B 78 */ mr r27, r3
+/* 802F39E4 002EF644 7C 9C 23 78 */ mr r28, r4
+/* 802F39E8 002EF648 2C 00 00 00 */ cmpwi r0, 0
+/* 802F39EC 002EF64C 40 82 00 0C */ bne lbl_802F39F8
+/* 802F39F0 002EF650 38 60 FF 14 */ li r3, -236
+/* 802F39F4 002EF654 48 00 00 A4 */ b lbl_802F3A98
+lbl_802F39F8:
+/* 802F39F8 002EF658 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
+/* 802F39FC 002EF65C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F3A00 002EF660 41 82 00 0C */ beq lbl_802F3A0C
+/* 802F3A04 002EF664 38 60 FF FF */ li r3, -1
+/* 802F3A08 002EF668 48 00 00 90 */ b lbl_802F3A98
+lbl_802F3A0C:
+/* 802F3A0C 002EF66C 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3A10 002EF670 3B DD 65 DC */ addi r30, r29, 0x65dc
+/* 802F3A14 002EF674 7F C3 F3 78 */ mr r3, r30
+/* 802F3A18 002EF678 4B F7 BF 31 */ bl OSLockMutex
+/* 802F3A1C 002EF67C 37 FD 55 60 */ addic. r31, r29, 0x5560
+/* 802F3A20 002EF680 40 82 00 14 */ bne lbl_802F3A34
+/* 802F3A24 002EF684 7F C3 F3 78 */ mr r3, r30
+/* 802F3A28 002EF688 4B F7 BF FD */ bl OSUnlockMutex
+/* 802F3A2C 002EF68C 38 60 FF 10 */ li r3, -240
+/* 802F3A30 002EF690 48 00 00 28 */ b lbl_802F3A58
+lbl_802F3A34:
+/* 802F3A34 002EF694 7F E3 FB 78 */ mr r3, r31
+/* 802F3A38 002EF698 48 00 01 E1 */ bl MPiMakeGameInfo
+/* 802F3A3C 002EF69C 7F E3 FB 78 */ mr r3, r31
+/* 802F3A40 002EF6A0 4B FF D5 95 */ bl MPiChangeBeacon
+/* 802F3A44 002EF6A4 7C 7F 1B 78 */ mr r31, r3
+/* 802F3A48 002EF6A8 7F C3 F3 78 */ mr r3, r30
+/* 802F3A4C 002EF6AC 4B F7 BF D9 */ bl OSUnlockMutex
+/* 802F3A50 002EF6B0 7F E0 FE 70 */ srawi r0, r31, 0x1f
+/* 802F3A54 002EF6B4 7F E3 00 38 */ and r3, r31, r0
+lbl_802F3A58:
+/* 802F3A58 002EF6B8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F3A5C 002EF6BC 40 80 00 08 */ bge lbl_802F3A64
+/* 802F3A60 002EF6C0 48 00 00 28 */ b lbl_802F3A88
+lbl_802F3A64:
+/* 802F3A64 002EF6C4 38 00 00 00 */ li r0, 0
+/* 802F3A68 002EF6C8 93 7C 00 18 */ stw r27, 0x18(r28)
+/* 802F3A6C 002EF6CC 7F 84 E3 78 */ mr r4, r28
+/* 802F3A70 002EF6D0 38 7D 65 24 */ addi r3, r29, 0x6524
+/* 802F3A74 002EF6D4 90 1C 00 04 */ stw r0, 4(r28)
+/* 802F3A78 002EF6D8 38 A0 00 00 */ li r5, 0
+/* 802F3A7C 002EF6DC 90 1C 00 1C */ stw r0, 0x1c(r28)
+/* 802F3A80 002EF6E0 90 1C 00 20 */ stw r0, 0x20(r28)
+/* 802F3A84 002EF6E4 4B FF CF D5 */ bl MPiSendRequest
+lbl_802F3A88:
+/* 802F3A88 002EF6E8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F3A8C 002EF6EC 40 80 00 08 */ bge lbl_802F3A94
+/* 802F3A90 002EF6F0 48 00 00 08 */ b lbl_802F3A98
+lbl_802F3A94:
+/* 802F3A94 002EF6F4 38 60 00 00 */ li r3, 0
+lbl_802F3A98:
+/* 802F3A98 002EF6F8 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F3A9C 002EF6FC 4B ED 36 D9 */ bl _restgpr_27
+/* 802F3AA0 002EF700 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F3AA4 002EF704 7C 08 03 A6 */ mtlr r0
+/* 802F3AA8 002EF708 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F3AAC 002EF70C 4E 80 00 20 */ blr
+
+.global MPiStartupBeacon
+MPiStartupBeacon:
+/* 802F3AB0 002EF710 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F3AB4 002EF714 7C 08 02 A6 */ mflr r0
+/* 802F3AB8 002EF718 38 A0 00 20 */ li r5, 0x20
+/* 802F3ABC 002EF71C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F3AC0 002EF720 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F3AC4 002EF724 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F3AC8 002EF728 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3ACC 002EF72C 38 7E 65 24 */ addi r3, r30, 0x6524
+/* 802F3AD0 002EF730 38 9E 65 44 */ addi r4, r30, 0x6544
+/* 802F3AD4 002EF734 4B F7 B4 25 */ bl OSInitMessageQueue
+/* 802F3AD8 002EF738 38 7E 65 DC */ addi r3, r30, 0x65dc
+/* 802F3ADC 002EF73C 4B F7 BE 35 */ bl OSInitMutex
+/* 802F3AE0 002EF740 38 7E 55 60 */ addi r3, r30, 0x5560
+/* 802F3AE4 002EF744 38 80 00 00 */ li r4, 0
+/* 802F3AE8 002EF748 38 A0 00 80 */ li r5, 0x80
+/* 802F3AEC 002EF74C 4B D1 06 19 */ bl memset
+/* 802F3AF0 002EF750 3B E0 00 00 */ li r31, 0
+/* 802F3AF4 002EF754 38 7E 65 F8 */ addi r3, r30, 0x65f8
+/* 802F3AF8 002EF758 93 FE 65 F4 */ stw r31, 0x65f4(r30)
+/* 802F3AFC 002EF75C 38 80 00 00 */ li r4, 0
+/* 802F3B00 002EF760 38 A0 00 14 */ li r5, 0x14
+/* 802F3B04 002EF764 4B D1 06 01 */ bl memset
+/* 802F3B08 002EF768 93 FE 66 0C */ stw r31, 0x660c(r30)
+/* 802F3B0C 002EF76C 38 60 00 00 */ li r3, 0
+/* 802F3B10 002EF770 93 FE 66 10 */ stw r31, 0x6610(r30)
+/* 802F3B14 002EF774 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3B18 002EF778 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F3B1C 002EF77C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3B20 002EF780 7C 08 03 A6 */ mtlr r0
+/* 802F3B24 002EF784 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3B28 002EF788 4E 80 00 20 */ blr
+
+.global MPiCleanupBeacon
+MPiCleanupBeacon:
+/* 802F3B2C 002EF78C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F3B30 002EF790 7C 08 02 A6 */ mflr r0
+/* 802F3B34 002EF794 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3B38 002EF798 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F3B3C 002EF79C 2C 03 00 00 */ cmpwi r3, 0
+/* 802F3B40 002EF7A0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F3B44 002EF7A4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F3B48 002EF7A8 41 82 00 74 */ beq lbl_802F3BBC
+/* 802F3B4C 002EF7AC 3B E3 65 24 */ addi r31, r3, 0x6524
+/* 802F3B50 002EF7B0 48 00 00 10 */ b lbl_802F3B60
+lbl_802F3B54:
+/* 802F3B54 002EF7B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 802F3B58 002EF7B8 38 60 FF 00 */ li r3, -256
+/* 802F3B5C 002EF7BC 4B FF CF 95 */ bl MPiRespondToWaitingRequest
+lbl_802F3B60:
+/* 802F3B60 002EF7C0 7F E3 FB 78 */ mr r3, r31
+/* 802F3B64 002EF7C4 38 81 00 08 */ addi r4, r1, 8
+/* 802F3B68 002EF7C8 38 A0 00 00 */ li r5, 0
+/* 802F3B6C 002EF7CC 4B F7 B4 B5 */ bl OSReceiveMessage
+/* 802F3B70 002EF7D0 2C 03 00 00 */ cmpwi r3, 0
+/* 802F3B74 002EF7D4 40 82 FF E0 */ bne lbl_802F3B54
+/* 802F3B78 002EF7D8 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3B7C 002EF7DC 38 80 00 00 */ li r4, 0
+/* 802F3B80 002EF7E0 38 A0 00 80 */ li r5, 0x80
+/* 802F3B84 002EF7E4 38 7E 65 44 */ addi r3, r30, 0x6544
+/* 802F3B88 002EF7E8 4B D1 05 7D */ bl memset
+/* 802F3B8C 002EF7EC 38 7E 55 60 */ addi r3, r30, 0x5560
+/* 802F3B90 002EF7F0 38 80 00 00 */ li r4, 0
+/* 802F3B94 002EF7F4 38 A0 00 80 */ li r5, 0x80
+/* 802F3B98 002EF7F8 4B D1 05 6D */ bl memset
+/* 802F3B9C 002EF7FC 3B E0 00 00 */ li r31, 0
+/* 802F3BA0 002EF800 38 7E 65 F8 */ addi r3, r30, 0x65f8
+/* 802F3BA4 002EF804 93 FE 65 F4 */ stw r31, 0x65f4(r30)
+/* 802F3BA8 002EF808 38 80 00 00 */ li r4, 0
+/* 802F3BAC 002EF80C 38 A0 00 14 */ li r5, 0x14
+/* 802F3BB0 002EF810 4B D1 05 55 */ bl memset
+/* 802F3BB4 002EF814 93 FE 66 0C */ stw r31, 0x660c(r30)
+/* 802F3BB8 002EF818 93 FE 66 10 */ stw r31, 0x6610(r30)
+lbl_802F3BBC:
+/* 802F3BBC 002EF81C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F3BC0 002EF820 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F3BC4 002EF824 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F3BC8 002EF828 7C 08 03 A6 */ mtlr r0
+/* 802F3BCC 002EF82C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F3BD0 002EF830 4E 80 00 20 */ blr
+
+.global MPiProcessBeaconSentNotification
+MPiProcessBeaconSentNotification:
+/* 802F3BD4 002EF834 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F3BD8 002EF838 7C 08 02 A6 */ mflr r0
+/* 802F3BDC 002EF83C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3BE0 002EF840 38 A0 00 00 */ li r5, 0
+/* 802F3BE4 002EF844 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F3BE8 002EF848 38 81 00 08 */ addi r4, r1, 8
+/* 802F3BEC 002EF84C 38 63 65 24 */ addi r3, r3, 0x6524
+/* 802F3BF0 002EF850 4B F7 B4 31 */ bl OSReceiveMessage
+/* 802F3BF4 002EF854 2C 03 00 00 */ cmpwi r3, 0
+/* 802F3BF8 002EF858 41 82 00 10 */ beq lbl_802F3C08
+/* 802F3BFC 002EF85C 80 81 00 08 */ lwz r4, 8(r1)
+/* 802F3C00 002EF860 38 60 00 00 */ li r3, 0
+/* 802F3C04 002EF864 4B FF CE ED */ bl MPiRespondToWaitingRequest
+lbl_802F3C08:
+/* 802F3C08 002EF868 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3C0C 002EF86C 7C 08 03 A6 */ mtlr r0
+/* 802F3C10 002EF870 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3C14 002EF874 4E 80 00 20 */ blr
+
+.global MPiMakeGameInfo
+MPiMakeGameInfo:
+/* 802F3C18 002EF878 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F3C1C 002EF87C 7C 08 02 A6 */ mflr r0
+/* 802F3C20 002EF880 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3C24 002EF884 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F3C28 002EF888 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F3C2C 002EF88C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F3C30 002EF890 7C 7E 1B 78 */ mr r30, r3
+/* 802F3C34 002EF894 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F3C38 002EF898 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802F3C3C 002EF89C 83 E4 00 14 */ lwz r31, 0x14(r4)
+/* 802F3C40 002EF8A0 3C 1F 00 01 */ addis r0, r31, 1
+/* 802F3C44 002EF8A4 28 00 FF FF */ cmplwi r0, 0xffff
+/* 802F3C48 002EF8A8 40 82 00 14 */ bne lbl_802F3C5C
+/* 802F3C4C 002EF8AC 4B FF CF 61 */ bl MPiGetNewTgid
+/* 802F3C50 002EF8B0 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3C54 002EF8B4 7C 7F 1B 78 */ mr r31, r3
+/* 802F3C58 002EF8B8 90 64 00 14 */ stw r3, 0x14(r4)
+lbl_802F3C5C:
+/* 802F3C5C 002EF8BC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3C60 002EF8C0 83 A3 00 3C */ lwz r29, 0x3c(r3)
+/* 802F3C64 002EF8C4 28 1D 00 70 */ cmplwi r29, 0x70
+/* 802F3C68 002EF8C8 40 81 00 08 */ ble lbl_802F3C70
+/* 802F3C6C 002EF8CC 3B A0 00 70 */ li r29, 0x70
+lbl_802F3C70:
+/* 802F3C70 002EF8D0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3C74 002EF8D4 3B 80 00 00 */ li r28, 0
+/* 802F3C78 002EF8D8 80 03 00 30 */ lwz r0, 0x30(r3)
+/* 802F3C7C 002EF8DC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F3C80 002EF8E0 41 82 00 08 */ beq lbl_802F3C88
+/* 802F3C84 002EF8E4 63 9C 00 01 */ ori r28, r28, 1
+lbl_802F3C88:
+/* 802F3C88 002EF8E8 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3C8C 002EF8EC 80 03 00 34 */ lwz r0, 0x34(r3)
+/* 802F3C90 002EF8F0 2C 00 00 00 */ cmpwi r0, 0
+/* 802F3C94 002EF8F4 41 82 00 08 */ beq lbl_802F3C9C
+/* 802F3C98 002EF8F8 63 9C 00 02 */ ori r28, r28, 2
+lbl_802F3C9C:
+/* 802F3C9C 002EF8FC 7F C3 F3 78 */ mr r3, r30
+/* 802F3CA0 002EF900 38 80 00 00 */ li r4, 0
+/* 802F3CA4 002EF904 38 A0 00 80 */ li r5, 0x80
+/* 802F3CA8 002EF908 4B D1 04 5D */ bl memset
+/* 802F3CAC 002EF90C 38 00 01 00 */ li r0, 0x100
+/* 802F3CB0 002EF910 38 80 00 01 */ li r4, 1
+/* 802F3CB4 002EF914 38 E0 00 08 */ li r7, 8
+/* 802F3CB8 002EF918 B0 1E 00 00 */ sth r0, 0(r30)
+/* 802F3CBC 002EF91C 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3CC0 002EF920 38 1E 00 08 */ addi r0, r30, 8
+/* 802F3CC4 002EF924 98 9E 00 02 */ stb r4, 2(r30)
+/* 802F3CC8 002EF928 7F A5 EB 78 */ mr r5, r29
+/* 802F3CCC 002EF92C 38 86 00 40 */ addi r4, r6, 0x40
+/* 802F3CD0 002EF930 38 7E 00 10 */ addi r3, r30, 0x10
+/* 802F3CD4 002EF934 98 FE 00 03 */ stb r7, 3(r30)
+/* 802F3CD8 002EF938 81 06 00 10 */ lwz r8, 0x10(r6)
+/* 802F3CDC 002EF93C 55 07 42 1E */ rlwinm r7, r8, 8, 8, 0xf
+/* 802F3CE0 002EF940 55 06 C4 2E */ rlwinm r6, r8, 0x18, 0x10, 0x17
+/* 802F3CE4 002EF944 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7
+/* 802F3CE8 002EF948 51 06 46 3E */ rlwimi r6, r8, 8, 0x18, 0x1f
+/* 802F3CEC 002EF94C 7C E6 33 78 */ or r6, r7, r6
+/* 802F3CF0 002EF950 90 DE 00 04 */ stw r6, 4(r30)
+/* 802F3CF4 002EF954 7F E0 07 2C */ sthbrx r31, 0, r0
+/* 802F3CF8 002EF958 9B BE 00 0A */ stb r29, 0xa(r30)
+/* 802F3CFC 002EF95C 4B D1 03 05 */ bl memcpy
+/* 802F3D00 002EF960 9B 9E 00 0B */ stb r28, 0xb(r30)
+/* 802F3D04 002EF964 38 1E 00 0C */ addi r0, r30, 0xc
+/* 802F3D08 002EF968 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3D0C 002EF96C 80 64 00 28 */ lwz r3, 0x28(r4)
+/* 802F3D10 002EF970 7C 60 07 2C */ sthbrx r3, 0, r0
+/* 802F3D14 002EF974 38 1E 00 0E */ addi r0, r30, 0xe
+/* 802F3D18 002EF978 80 64 00 2C */ lwz r3, 0x2c(r4)
+/* 802F3D1C 002EF97C 7C 60 07 2C */ sthbrx r3, 0, r0
+/* 802F3D20 002EF980 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F3D24 002EF984 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F3D28 002EF988 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F3D2C 002EF98C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802F3D30 002EF990 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F3D34 002EF994 7C 08 03 A6 */ mtlr r0
+/* 802F3D38 002EF998 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F3D3C 002EF99C 4E 80 00 20 */ blr
+
+.global MPiMakeAndChangeBeacon
+MPiMakeAndChangeBeacon:
+/* 802F3D40 002EF9A0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F3D44 002EF9A4 7C 08 02 A6 */ mflr r0
+/* 802F3D48 002EF9A8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F3D4C 002EF9AC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F3D50 002EF9B0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3D54 002EF9B4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F3D58 002EF9B8 3B DF 65 DC */ addi r30, r31, 0x65dc
+/* 802F3D5C 002EF9BC 7F C3 F3 78 */ mr r3, r30
+/* 802F3D60 002EF9C0 4B F7 BB E9 */ bl OSLockMutex
+/* 802F3D64 002EF9C4 37 FF 55 60 */ addic. r31, r31, 0x5560
+/* 802F3D68 002EF9C8 40 82 00 14 */ bne lbl_802F3D7C
+/* 802F3D6C 002EF9CC 7F C3 F3 78 */ mr r3, r30
+/* 802F3D70 002EF9D0 4B F7 BC B5 */ bl OSUnlockMutex
+/* 802F3D74 002EF9D4 38 60 FF 10 */ li r3, -240
+/* 802F3D78 002EF9D8 48 00 00 28 */ b lbl_802F3DA0
+lbl_802F3D7C:
+/* 802F3D7C 002EF9DC 7F E3 FB 78 */ mr r3, r31
+/* 802F3D80 002EF9E0 4B FF FE 99 */ bl MPiMakeGameInfo
+/* 802F3D84 002EF9E4 7F E3 FB 78 */ mr r3, r31
+/* 802F3D88 002EF9E8 4B FF D2 4D */ bl MPiChangeBeacon
+/* 802F3D8C 002EF9EC 7C 7F 1B 78 */ mr r31, r3
+/* 802F3D90 002EF9F0 7F C3 F3 78 */ mr r3, r30
+/* 802F3D94 002EF9F4 4B F7 BC 91 */ bl OSUnlockMutex
+/* 802F3D98 002EF9F8 7F E0 FE 70 */ srawi r0, r31, 0x1f
+/* 802F3D9C 002EF9FC 7F E3 00 38 */ and r3, r31, r0
+lbl_802F3DA0:
+/* 802F3DA0 002EFA00 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3DA4 002EFA04 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3DA8 002EFA08 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F3DAC 002EFA0C 7C 08 03 A6 */ mtlr r0
+/* 802F3DB0 002EFA10 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3DB4 002EFA14 4E 80 00 20 */ blr
+
+.global MPiSetCurrentTsf
+MPiSetCurrentTsf:
+/* 802F3DB8 002EFA18 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F3DBC 002EFA1C 7C 08 02 A6 */ mflr r0
+/* 802F3DC0 002EFA20 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F3DC4 002EFA24 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F3DC8 002EFA28 4B ED 33 59 */ bl _savegpr_25
+/* 802F3DCC 002EFA2C 7C 7E 1B 78 */ mr r30, r3
+/* 802F3DD0 002EFA30 4B F7 E9 E9 */ bl OSGetTime
+/* 802F3DD4 002EFA34 7C 9C 23 78 */ mr r28, r4
+/* 802F3DD8 002EFA38 7C 7D 1B 78 */ mr r29, r3
+/* 802F3DDC 002EFA3C 4B F7 A9 81 */ bl OSDisableInterrupts
+/* 802F3DE0 002EFA40 3C 80 80 00 */ lis r4, 0x800000F8@ha
+/* 802F3DE4 002EFA44 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3DE8 002EFA48 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
+/* 802F3DEC 002EFA4C 57 A5 18 38 */ slwi r5, r29, 3
+/* 802F3DF0 002EFA50 3C 80 43 1C */ lis r4, 0x431BDE83@ha
+/* 802F3DF4 002EFA54 83 BF 66 0C */ lwz r29, 0x660c(r31)
+/* 802F3DF8 002EFA58 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F3DFC 002EFA5C 53 85 1F 7E */ rlwimi r5, r28, 3, 0x1d, 0x1f
+/* 802F3E00 002EFA60 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l
+/* 802F3E04 002EFA64 7C 79 1B 78 */ mr r25, r3
+/* 802F3E08 002EFA68 7C 04 00 16 */ mulhwu r0, r4, r0
+/* 802F3E0C 002EFA6C 7C A3 2B 78 */ mr r3, r5
+/* 802F3E10 002EFA70 83 7F 66 10 */ lwz r27, 0x6610(r31)
+/* 802F3E14 002EFA74 3B 5F 65 F8 */ addi r26, r31, 0x65f8
+/* 802F3E18 002EFA78 57 84 18 38 */ slwi r4, r28, 3
+/* 802F3E1C 002EFA7C 38 A0 00 00 */ li r5, 0
+/* 802F3E20 002EFA80 54 06 8B FE */ srwi r6, r0, 0xf
+/* 802F3E24 002EFA84 4B ED 34 55 */ bl __div2i
+/* 802F3E28 002EFA88 54 84 D0 3E */ rotlwi r4, r4, 0x1a
+/* 802F3E2C 002EFA8C 7C 60 36 70 */ srawi r0, r3, 6
+/* 802F3E30 002EFA90 50 64 D0 0A */ rlwimi r4, r3, 0x1a, 0, 5
+/* 802F3E34 002EFA94 3B 7B 00 01 */ addi r27, r27, 1
+/* 802F3E38 002EFA98 28 1B 00 0A */ cmplwi r27, 0xa
+/* 802F3E3C 002EFA9C 57 A0 08 3C */ slwi r0, r29, 1
+/* 802F3E40 002EFAA0 7C 64 F0 10 */ subfc r3, r4, r30
+/* 802F3E44 002EFAA4 7F BC EB 78 */ mr r28, r29
+/* 802F3E48 002EFAA8 7C 7A 03 2E */ sthx r3, r26, r0
+/* 802F3E4C 002EFAAC 40 81 00 08 */ ble lbl_802F3E54
+/* 802F3E50 002EFAB0 3B 60 00 0A */ li r27, 0xa
+lbl_802F3E54:
+/* 802F3E54 002EFAB4 3B BD 00 01 */ addi r29, r29, 1
+/* 802F3E58 002EFAB8 93 7F 66 10 */ stw r27, 0x6610(r31)
+/* 802F3E5C 002EFABC 28 1D 00 0A */ cmplwi r29, 0xa
+/* 802F3E60 002EFAC0 41 80 00 08 */ blt lbl_802F3E68
+/* 802F3E64 002EFAC4 3B A0 00 00 */ li r29, 0
+lbl_802F3E68:
+/* 802F3E68 002EFAC8 93 BF 66 0C */ stw r29, 0x660c(r31)
+/* 802F3E6C 002EFACC 7F 23 CB 78 */ mr r3, r25
+/* 802F3E70 002EFAD0 4B F7 A9 15 */ bl OSRestoreInterrupts
+/* 802F3E74 002EFAD4 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
+/* 802F3E78 002EFAD8 38 C0 FF FF */ li r6, -1
+/* 802F3E7C 002EFADC 38 83 FF FF */ addi r4, r3, 0x7FFFFFFF@l
+/* 802F3E80 002EFAE0 38 A0 FF FF */ li r5, -1
+/* 802F3E84 002EFAE4 7F 69 03 A6 */ mtctr r27
+/* 802F3E88 002EFAE8 28 1B 00 00 */ cmplwi r27, 0
+/* 802F3E8C 002EFAEC 40 81 00 50 */ ble lbl_802F3EDC
+lbl_802F3E90:
+/* 802F3E90 002EFAF0 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F3E94 002EFAF4 40 80 00 08 */ bge lbl_802F3E9C
+/* 802F3E98 002EFAF8 3B 9C 00 0A */ addi r28, r28, 0xa
+lbl_802F3E9C:
+/* 802F3E9C 002EFAFC 57 80 08 3C */ slwi r0, r28, 1
+/* 802F3EA0 002EFB00 7C 7A 02 2E */ lhzx r3, r26, r0
+/* 802F3EA4 002EFB04 7C 03 20 00 */ cmpw r3, r4
+/* 802F3EA8 002EFB08 40 80 00 08 */ bge lbl_802F3EB0
+/* 802F3EAC 002EFB0C 7C 64 1B 78 */ mr r4, r3
+lbl_802F3EB0:
+/* 802F3EB0 002EFB10 7C 03 28 00 */ cmpw r3, r5
+/* 802F3EB4 002EFB14 40 81 00 08 */ ble lbl_802F3EBC
+/* 802F3EB8 002EFB18 7C 65 1B 78 */ mr r5, r3
+lbl_802F3EBC:
+/* 802F3EBC 002EFB1C 3C 63 00 01 */ addis r3, r3, 1
+/* 802F3EC0 002EFB20 38 63 80 00 */ addi r3, r3, -32768
+/* 802F3EC4 002EFB24 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 802F3EC8 002EFB28 7C 00 30 00 */ cmpw r0, r6
+/* 802F3ECC 002EFB2C 40 81 00 08 */ ble lbl_802F3ED4
+/* 802F3ED0 002EFB30 7C 06 03 78 */ mr r6, r0
+lbl_802F3ED4:
+/* 802F3ED4 002EFB34 3B 9C FF FF */ addi r28, r28, -1
+/* 802F3ED8 002EFB38 42 00 FF B8 */ bdnz lbl_802F3E90
+lbl_802F3EDC:
+/* 802F3EDC 002EFB3C 3C 60 00 01 */ lis r3, 0x00008000@ha
+/* 802F3EE0 002EFB40 38 06 80 00 */ addi r0, r6, -32768
+/* 802F3EE4 002EFB44 7C 84 28 50 */ subf r4, r4, r5
+/* 802F3EE8 002EFB48 38 63 80 00 */ addi r3, r3, 0x00008000@l
+/* 802F3EEC 002EFB4C 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 802F3EF0 002EFB50 7C 04 18 00 */ cmpw r4, r3
+/* 802F3EF4 002EFB54 40 80 00 08 */ bge lbl_802F3EFC
+/* 802F3EF8 002EFB58 54 A0 04 3E */ clrlwi r0, r5, 0x10
+lbl_802F3EFC:
+/* 802F3EFC 002EFB5C 90 1F 65 F4 */ stw r0, 0x65f4(r31)
+/* 802F3F00 002EFB60 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F3F04 002EFB64 4B ED 32 69 */ bl _restgpr_25
+/* 802F3F08 002EFB68 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F3F0C 002EFB6C 7C 08 03 A6 */ mtlr r0
+/* 802F3F10 002EFB70 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F3F14 002EFB74 4E 80 00 20 */ blr
+
+.global MPiGetVTsf
+MPiGetVTsf:
+/* 802F3F18 002EFB78 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F3F1C 002EFB7C 7C 08 02 A6 */ mflr r0
+/* 802F3F20 002EFB80 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F3F24 002EFB84 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F3F28 002EFB88 4B ED 31 FD */ bl _savegpr_26
+/* 802F3F2C 002EFB8C 3F 40 80 00 */ lis r26, 0x800000F8@ha
+/* 802F3F30 002EFB90 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3F34 002EFB94 80 1A 00 F8 */ lwz r0, 0x800000F8@l(r26)
+/* 802F3F38 002EFB98 3F 60 43 1C */ lis r27, 0x431BDE83@ha
+/* 802F3F3C 002EFB9C 38 7B DE 83 */ addi r3, r27, 0x431BDE83@l
+/* 802F3F40 002EFBA0 80 BF 6D DC */ lwz r5, 0x6ddc(r31)
+/* 802F3F44 002EFBA4 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F3F48 002EFBA8 80 9F 6D D8 */ lwz r4, 0x6dd8(r31)
+/* 802F3F4C 002EFBAC 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 802F3F50 002EFBB0 3B 80 00 00 */ li r28, 0
+/* 802F3F54 002EFBB4 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F3F58 002EFBB8 1C 00 19 64 */ mulli r0, r0, 0x1964
+/* 802F3F5C 002EFBBC 54 00 E8 FE */ srwi r0, r0, 3
+/* 802F3F60 002EFBC0 7F A0 28 10 */ subfc r29, r0, r5
+/* 802F3F64 002EFBC4 7F DC 21 10 */ subfe r30, r28, r4
+/* 802F3F68 002EFBC8 4B F7 E8 51 */ bl OSGetTime
+/* 802F3F6C 002EFBCC 6C 65 80 00 */ xoris r5, r3, 0x8000
+/* 802F3F70 002EFBD0 6F C0 80 00 */ xoris r0, r30, 0x8000
+/* 802F3F74 002EFBD4 7C 64 E8 10 */ subfc r3, r4, r29
+/* 802F3F78 002EFBD8 7C A5 01 10 */ subfe r5, r5, r0
+/* 802F3F7C 002EFBDC 7C A0 01 10 */ subfe r5, r0, r0
+/* 802F3F80 002EFBE0 7C A5 00 D1 */ neg. r5, r5
+/* 802F3F84 002EFBE4 41 82 00 28 */ beq lbl_802F3FAC
+/* 802F3F88 002EFBE8 80 1A 00 F8 */ lwz r0, 0xf8(r26)
+/* 802F3F8C 002EFBEC 38 7B DE 83 */ addi r3, r27, -8573
+/* 802F3F90 002EFBF0 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F3F94 002EFBF4 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 802F3F98 002EFBF8 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F3F9C 002EFBFC 1C 00 41 50 */ mulli r0, r0, 0x4150
+/* 802F3FA0 002EFC00 54 00 E8 FE */ srwi r0, r0, 3
+/* 802F3FA4 002EFC04 7F BD 00 14 */ addc r29, r29, r0
+/* 802F3FA8 002EFC08 7F DE E1 14 */ adde r30, r30, r28
+lbl_802F3FAC:
+/* 802F3FAC 002EFC0C 3C 60 80 00 */ lis r3, 0x800000F8@ha
+/* 802F3FB0 002EFC10 3C 80 43 1C */ lis r4, 0x431BDE83@ha
+/* 802F3FB4 002EFC14 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
+/* 802F3FB8 002EFC18 38 A4 DE 83 */ addi r5, r4, 0x431BDE83@l
+/* 802F3FBC 002EFC1C 57 C3 18 38 */ slwi r3, r30, 3
+/* 802F3FC0 002EFC20 57 A4 18 38 */ slwi r4, r29, 3
+/* 802F3FC4 002EFC24 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F3FC8 002EFC28 7C 05 00 16 */ mulhwu r0, r5, r0
+/* 802F3FCC 002EFC2C 53 A3 1F 7E */ rlwimi r3, r29, 3, 0x1d, 0x1f
+/* 802F3FD0 002EFC30 38 A0 00 00 */ li r5, 0
+/* 802F3FD4 002EFC34 54 06 8B FE */ srwi r6, r0, 0xf
+/* 802F3FD8 002EFC38 4B ED 32 A1 */ bl __div2i
+/* 802F3FDC 002EFC3C 80 1F 65 F4 */ lwz r0, 0x65f4(r31)
+/* 802F3FE0 002EFC40 54 84 D0 3E */ rotlwi r4, r4, 0x1a
+/* 802F3FE4 002EFC44 50 64 D0 0A */ rlwimi r4, r3, 0x1a, 0, 5
+/* 802F3FE8 002EFC48 7C 63 36 70 */ srawi r3, r3, 6
+/* 802F3FEC 002EFC4C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802F3FF0 002EFC50 7C 60 20 14 */ addc r3, r0, r4
+/* 802F3FF4 002EFC54 4B ED 31 7D */ bl _restgpr_26
+/* 802F3FF8 002EFC58 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F3FFC 002EFC5C 7C 08 03 A6 */ mtlr r0
+/* 802F4000 002EFC60 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F4004 002EFC64 4E 80 00 20 */ blr
diff --git a/asm/SDK/MP/mpconnection.s b/asm/SDK/MP/mpconnection.s
new file mode 100644
index 0000000..da0381e
--- /dev/null
+++ b/asm/SDK/MP/mpconnection.s
@@ -0,0 +1,620 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global MPDisconnect
+MPDisconnect:
+/* 802F1BB8 002ED818 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
+/* 802F1BBC 002ED81C 2C 80 00 00 */ cmpwi cr1, r0, 0
+/* 802F1BC0 002ED820 40 86 00 0C */ bne cr1, lbl_802F1BCC
+/* 802F1BC4 002ED824 38 60 FF 14 */ li r3, -236
+/* 802F1BC8 002ED828 4E 80 00 20 */ blr
+lbl_802F1BCC:
+/* 802F1BCC 002ED82C 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
+/* 802F1BD0 002ED830 2C 00 00 00 */ cmpwi r0, 0
+/* 802F1BD4 002ED834 41 82 00 0C */ beq lbl_802F1BE0
+/* 802F1BD8 002ED838 38 60 FF FF */ li r3, -1
+/* 802F1BDC 002ED83C 4E 80 00 20 */ blr
+lbl_802F1BE0:
+/* 802F1BE0 002ED840 41 86 00 10 */ beq cr1, lbl_802F1BF0
+/* 802F1BE4 002ED844 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1BE8 002ED848 80 84 57 64 */ lwz r4, 0x5764(r4)
+/* 802F1BEC 002ED84C 48 00 00 08 */ b lbl_802F1BF4
+lbl_802F1BF0:
+/* 802F1BF0 002ED850 38 80 00 00 */ li r4, 0
+lbl_802F1BF4:
+/* 802F1BF4 002ED854 38 00 00 01 */ li r0, 1
+/* 802F1BF8 002ED858 7C 00 18 30 */ slw r0, r0, r3
+/* 802F1BFC 002ED85C 7C 80 00 39 */ and. r0, r4, r0
+/* 802F1C00 002ED860 40 82 00 0C */ bne lbl_802F1C0C
+/* 802F1C04 002ED864 38 60 FF 01 */ li r3, -255
+/* 802F1C08 002ED868 4E 80 00 20 */ blr
+lbl_802F1C0C:
+/* 802F1C0C 002ED86C 38 80 00 00 */ li r4, 0
+/* 802F1C10 002ED870 38 A0 00 00 */ li r5, 0
+/* 802F1C14 002ED874 48 00 03 1C */ b MPiDisconnect
+/* 802F1C18 002ED878 4E 80 00 20 */ blr
+
+.global MPDisconnectAll
+MPDisconnectAll:
+/* 802F1C1C 002ED87C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F1C20 002ED880 7C 08 02 A6 */ mflr r0
+/* 802F1C24 002ED884 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F1C28 002ED888 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F1C2C 002ED88C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F1C30 002ED890 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F1C34 002ED894 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
+/* 802F1C38 002ED898 2C 00 00 00 */ cmpwi r0, 0
+/* 802F1C3C 002ED89C 40 82 00 0C */ bne lbl_802F1C48
+/* 802F1C40 002ED8A0 38 60 FF 14 */ li r3, -236
+/* 802F1C44 002ED8A4 48 00 00 74 */ b lbl_802F1CB8
+lbl_802F1C48:
+/* 802F1C48 002ED8A8 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
+/* 802F1C4C 002ED8AC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F1C50 002ED8B0 41 82 00 0C */ beq lbl_802F1C5C
+/* 802F1C54 002ED8B4 38 60 FF FF */ li r3, -1
+/* 802F1C58 002ED8B8 48 00 00 60 */ b lbl_802F1CB8
+lbl_802F1C5C:
+/* 802F1C5C 002ED8BC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1C60 002ED8C0 3B C0 00 00 */ li r30, 0
+/* 802F1C64 002ED8C4 83 A3 57 60 */ lwz r29, 0x5760(r3)
+/* 802F1C68 002ED8C8 3B E3 57 72 */ addi r31, r3, 0x5772
+lbl_802F1C6C:
+/* 802F1C6C 002ED8CC 7C 1E E8 40 */ cmplw r30, r29
+/* 802F1C70 002ED8D0 41 82 00 34 */ beq lbl_802F1CA4
+/* 802F1C74 002ED8D4 7F E3 FB 78 */ mr r3, r31
+/* 802F1C78 002ED8D8 38 82 AA 38 */ addi r4, r2, lbl_80643038-_SDA2_BASE_
+/* 802F1C7C 002ED8DC 4B FF EE 99 */ bl MPiIsEqualMacAddress
+/* 802F1C80 002ED8E0 2C 03 00 00 */ cmpwi r3, 0
+/* 802F1C84 002ED8E4 40 82 00 20 */ bne lbl_802F1CA4
+/* 802F1C88 002ED8E8 7F C3 F3 78 */ mr r3, r30
+/* 802F1C8C 002ED8EC 38 80 00 00 */ li r4, 0
+/* 802F1C90 002ED8F0 38 A0 00 00 */ li r5, 0
+/* 802F1C94 002ED8F4 48 00 02 9D */ bl MPiDisconnect
+/* 802F1C98 002ED8F8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F1C9C 002ED8FC 40 80 00 08 */ bge lbl_802F1CA4
+/* 802F1CA0 002ED900 48 00 00 18 */ b lbl_802F1CB8
+lbl_802F1CA4:
+/* 802F1CA4 002ED904 3B DE 00 01 */ addi r30, r30, 1
+/* 802F1CA8 002ED908 3B FF 00 06 */ addi r31, r31, 6
+/* 802F1CAC 002ED90C 28 1E 00 10 */ cmplwi r30, 0x10
+/* 802F1CB0 002ED910 41 80 FF BC */ blt lbl_802F1C6C
+/* 802F1CB4 002ED914 38 60 00 00 */ li r3, 0
+lbl_802F1CB8:
+/* 802F1CB8 002ED918 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F1CBC 002ED91C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F1CC0 002ED920 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F1CC4 002ED924 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F1CC8 002ED928 7C 08 03 A6 */ mtlr r0
+/* 802F1CCC 002ED92C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F1CD0 002ED930 4E 80 00 20 */ blr
+
+.global MPGetLinkLevel
+MPGetLinkLevel:
+/* 802F1CD4 002ED934 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F1CD8 002ED938 7C 08 02 A6 */ mflr r0
+/* 802F1CDC 002ED93C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F1CE0 002ED940 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F1CE4 002ED944 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F1CE8 002ED948 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F1CEC 002ED94C 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802F1CF0 002ED950 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
+/* 802F1CF4 002ED954 2C 00 00 00 */ cmpwi r0, 0
+/* 802F1CF8 002ED958 40 82 00 0C */ bne lbl_802F1D04
+/* 802F1CFC 002ED95C 38 60 FF 14 */ li r3, -236
+/* 802F1D00 002ED960 48 00 00 78 */ b lbl_802F1D78
+lbl_802F1D04:
+/* 802F1D04 002ED964 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
+/* 802F1D08 002ED968 2C 00 00 00 */ cmpwi r0, 0
+/* 802F1D0C 002ED96C 41 82 00 0C */ beq lbl_802F1D18
+/* 802F1D10 002ED970 38 60 FF FF */ li r3, -1
+/* 802F1D14 002ED974 48 00 00 64 */ b lbl_802F1D78
+lbl_802F1D18:
+/* 802F1D18 002ED978 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1D1C 002ED97C 83 C3 57 64 */ lwz r30, 0x5764(r3)
+/* 802F1D20 002ED980 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F1D24 002ED984 40 82 00 0C */ bne lbl_802F1D30
+/* 802F1D28 002ED988 38 60 00 00 */ li r3, 0
+/* 802F1D2C 002ED98C 48 00 00 4C */ b lbl_802F1D78
+lbl_802F1D30:
+/* 802F1D30 002ED990 3B 80 00 04 */ li r28, 4
+/* 802F1D34 002ED994 3B A0 00 00 */ li r29, 0
+/* 802F1D38 002ED998 3B E0 00 01 */ li r31, 1
+lbl_802F1D3C:
+/* 802F1D3C 002ED99C 7F E0 E8 30 */ slw r0, r31, r29
+/* 802F1D40 002ED9A0 7F C0 00 39 */ and. r0, r30, r0
+/* 802F1D44 002ED9A4 41 82 00 18 */ beq lbl_802F1D5C
+/* 802F1D48 002ED9A8 7F A3 EB 78 */ mr r3, r29
+/* 802F1D4C 002ED9AC 48 00 05 E1 */ bl MPiGetLinkLevel
+/* 802F1D50 002ED9B0 7C 03 E0 00 */ cmpw r3, r28
+/* 802F1D54 002ED9B4 40 80 00 08 */ bge lbl_802F1D5C
+/* 802F1D58 002ED9B8 7C 7C 1B 78 */ mr r28, r3
+lbl_802F1D5C:
+/* 802F1D5C 002ED9BC 3B BD 00 01 */ addi r29, r29, 1
+/* 802F1D60 002ED9C0 28 1D 00 10 */ cmplwi r29, 0x10
+/* 802F1D64 002ED9C4 41 80 FF D8 */ blt lbl_802F1D3C
+/* 802F1D68 002ED9C8 2C 1C 00 04 */ cmpwi r28, 4
+/* 802F1D6C 002ED9CC 40 82 00 08 */ bne lbl_802F1D74
+/* 802F1D70 002ED9D0 3B 80 00 00 */ li r28, 0
+lbl_802F1D74:
+/* 802F1D74 002ED9D4 7F 83 E3 78 */ mr r3, r28
+lbl_802F1D78:
+/* 802F1D78 002ED9D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F1D7C 002ED9DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F1D80 002ED9E0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F1D84 002ED9E4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F1D88 002ED9E8 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802F1D8C 002ED9EC 7C 08 03 A6 */ mtlr r0
+/* 802F1D90 002ED9F0 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F1D94 002ED9F4 4E 80 00 20 */ blr
+
+.global MPGetConnectedAIDs
+MPGetConnectedAIDs:
+/* 802F1D98 002ED9F8 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
+/* 802F1D9C 002ED9FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F1DA0 002EDA00 41 82 00 10 */ beq lbl_802F1DB0
+/* 802F1DA4 002EDA04 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1DA8 002EDA08 80 63 57 64 */ lwz r3, 0x5764(r3)
+/* 802F1DAC 002EDA0C 4E 80 00 20 */ blr
+lbl_802F1DB0:
+/* 802F1DB0 002EDA10 38 60 00 00 */ li r3, 0
+/* 802F1DB4 002EDA14 4E 80 00 20 */ blr
+
+.global MPiStartupConnection
+MPiStartupConnection:
+/* 802F1DB8 002EDA18 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F1DBC 002EDA1C 7C 08 02 A6 */ mflr r0
+/* 802F1DC0 002EDA20 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1DC4 002EDA24 38 80 00 00 */ li r4, 0
+/* 802F1DC8 002EDA28 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F1DCC 002EDA2C 38 A0 00 60 */ li r5, 0x60
+/* 802F1DD0 002EDA30 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F1DD4 002EDA34 3B E0 00 00 */ li r31, 0
+/* 802F1DD8 002EDA38 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F1DDC 002EDA3C 93 E3 57 64 */ stw r31, 0x5764(r3)
+/* 802F1DE0 002EDA40 38 63 57 72 */ addi r3, r3, 0x5772
+/* 802F1DE4 002EDA44 4B D1 23 21 */ bl memset
+/* 802F1DE8 002EDA48 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1DEC 002EDA4C 38 80 00 00 */ li r4, 0
+/* 802F1DF0 002EDA50 38 A0 00 20 */ li r5, 0x20
+/* 802F1DF4 002EDA54 38 63 65 04 */ addi r3, r3, 0x6504
+/* 802F1DF8 002EDA58 4B D1 23 0D */ bl memset
+/* 802F1DFC 002EDA5C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1E00 002EDA60 38 80 00 00 */ li r4, 0
+/* 802F1E04 002EDA64 38 A0 04 00 */ li r5, 0x400
+/* 802F1E08 002EDA68 38 63 60 84 */ addi r3, r3, 0x6084
+/* 802F1E0C 002EDA6C 4B D1 22 F9 */ bl memset
+/* 802F1E10 002EDA70 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1E14 002EDA74 38 80 00 00 */ li r4, 0
+/* 802F1E18 002EDA78 38 A0 00 40 */ li r5, 0x40
+/* 802F1E1C 002EDA7C 38 63 64 84 */ addi r3, r3, 0x6484
+/* 802F1E20 002EDA80 4B D1 22 E5 */ bl memset
+/* 802F1E24 002EDA84 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1E28 002EDA88 38 80 00 00 */ li r4, 0
+/* 802F1E2C 002EDA8C 38 A0 00 40 */ li r5, 0x40
+/* 802F1E30 002EDA90 38 63 64 C4 */ addi r3, r3, 0x64c4
+/* 802F1E34 002EDA94 4B D1 22 D1 */ bl memset
+/* 802F1E38 002EDA98 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1E3C 002EDA9C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 802F1E40 002EDAA0 2C 00 00 01 */ cmpwi r0, 1
+/* 802F1E44 002EDAA4 41 82 00 08 */ beq lbl_802F1E4C
+/* 802F1E48 002EDAA8 48 00 00 38 */ b lbl_802F1E80
+lbl_802F1E4C:
+/* 802F1E4C 002EDAAC 4B F7 C9 11 */ bl OSDisableInterrupts
+/* 802F1E50 002EDAB0 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1E54 002EDAB4 7C 7E 1B 78 */ mr r30, r3
+/* 802F1E58 002EDAB8 38 A0 00 06 */ li r5, 6
+/* 802F1E5C 002EDABC 93 E4 57 60 */ stw r31, 0x5760(r4)
+/* 802F1E60 002EDAC0 38 64 57 72 */ addi r3, r4, 0x5772
+/* 802F1E64 002EDAC4 38 84 57 6C */ addi r4, r4, 0x576c
+/* 802F1E68 002EDAC8 4B D1 21 99 */ bl memcpy
+/* 802F1E6C 002EDACC 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1E70 002EDAD0 7F C3 F3 78 */ mr r3, r30
+/* 802F1E74 002EDAD4 B3 E4 65 04 */ sth r31, 0x6504(r4)
+/* 802F1E78 002EDAD8 4B F7 C9 0D */ bl OSRestoreInterrupts
+/* 802F1E7C 002EDADC 48 00 00 0C */ b lbl_802F1E88
+lbl_802F1E80:
+/* 802F1E80 002EDAE0 38 60 FF 01 */ li r3, -255
+/* 802F1E84 002EDAE4 48 00 00 08 */ b lbl_802F1E8C
+lbl_802F1E88:
+/* 802F1E88 002EDAE8 38 60 00 00 */ li r3, 0
+lbl_802F1E8C:
+/* 802F1E8C 002EDAEC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F1E90 002EDAF0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F1E94 002EDAF4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F1E98 002EDAF8 7C 08 03 A6 */ mtlr r0
+/* 802F1E9C 002EDAFC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F1EA0 002EDB00 4E 80 00 20 */ blr
+
+.global MPiCleanupConnection
+MPiCleanupConnection:
+/* 802F1EA4 002EDB04 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F1EA8 002EDB08 7C 08 02 A6 */ mflr r0
+/* 802F1EAC 002EDB0C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F1EB0 002EDB10 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F1EB4 002EDB14 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1EB8 002EDB18 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F1EBC 002EDB1C 41 82 00 60 */ beq lbl_802F1F1C
+/* 802F1EC0 002EDB20 38 00 00 00 */ li r0, 0
+/* 802F1EC4 002EDB24 38 7F 57 72 */ addi r3, r31, 0x5772
+/* 802F1EC8 002EDB28 90 1F 57 60 */ stw r0, 0x5760(r31)
+/* 802F1ECC 002EDB2C 38 80 00 00 */ li r4, 0
+/* 802F1ED0 002EDB30 38 A0 00 60 */ li r5, 0x60
+/* 802F1ED4 002EDB34 90 1F 57 64 */ stw r0, 0x5764(r31)
+/* 802F1ED8 002EDB38 4B D1 22 2D */ bl memset
+/* 802F1EDC 002EDB3C 38 7F 65 04 */ addi r3, r31, 0x6504
+/* 802F1EE0 002EDB40 38 80 00 00 */ li r4, 0
+/* 802F1EE4 002EDB44 38 A0 00 20 */ li r5, 0x20
+/* 802F1EE8 002EDB48 4B D1 22 1D */ bl memset
+/* 802F1EEC 002EDB4C 38 7F 60 84 */ addi r3, r31, 0x6084
+/* 802F1EF0 002EDB50 38 80 00 00 */ li r4, 0
+/* 802F1EF4 002EDB54 38 A0 04 00 */ li r5, 0x400
+/* 802F1EF8 002EDB58 4B D1 22 0D */ bl memset
+/* 802F1EFC 002EDB5C 38 7F 64 84 */ addi r3, r31, 0x6484
+/* 802F1F00 002EDB60 38 80 00 00 */ li r4, 0
+/* 802F1F04 002EDB64 38 A0 00 40 */ li r5, 0x40
+/* 802F1F08 002EDB68 4B D1 21 FD */ bl memset
+/* 802F1F0C 002EDB6C 38 7F 64 C4 */ addi r3, r31, 0x64c4
+/* 802F1F10 002EDB70 38 80 00 00 */ li r4, 0
+/* 802F1F14 002EDB74 38 A0 00 40 */ li r5, 0x40
+/* 802F1F18 002EDB78 4B D1 21 ED */ bl memset
+lbl_802F1F1C:
+/* 802F1F1C 002EDB7C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F1F20 002EDB80 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F1F24 002EDB84 7C 08 03 A6 */ mtlr r0
+/* 802F1F28 002EDB88 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F1F2C 002EDB8C 4E 80 00 20 */ blr
+
+.global MPiDisconnect
+MPiDisconnect:
+/* 802F1F30 002EDB90 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F1F34 002EDB94 7C 08 02 A6 */ mflr r0
+/* 802F1F38 002EDB98 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F1F3C 002EDB9C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F1F40 002EDBA0 4B ED 51 E1 */ bl _savegpr_25
+/* 802F1F44 002EDBA4 28 03 00 10 */ cmplwi r3, 0x10
+/* 802F1F48 002EDBA8 7C 79 1B 78 */ mr r25, r3
+/* 802F1F4C 002EDBAC 7C BA 2B 78 */ mr r26, r5
+/* 802F1F50 002EDBB0 41 80 00 0C */ blt lbl_802F1F5C
+/* 802F1F54 002EDBB4 38 60 FF 01 */ li r3, -255
+/* 802F1F58 002EDBB8 48 00 00 A8 */ b lbl_802F2000
+lbl_802F1F5C:
+/* 802F1F5C 002EDBBC 2C 04 00 00 */ cmpwi r4, 0
+/* 802F1F60 002EDBC0 3C 60 00 01 */ lis r3, 0x0000F002@ha
+/* 802F1F64 002EDBC4 38 03 F0 02 */ addi r0, r3, 0x0000F002@l
+/* 802F1F68 002EDBC8 41 82 00 08 */ beq lbl_802F1F70
+/* 802F1F6C 002EDBCC 38 03 80 01 */ addi r0, r3, -32767
+lbl_802F1F70:
+/* 802F1F70 002EDBD0 54 1C 04 3E */ clrlwi r28, r0, 0x10
+/* 802F1F74 002EDBD4 4B F7 C7 E9 */ bl OSDisableInterrupts
+/* 802F1F78 002EDBD8 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F1F7C 002EDBDC 1F F9 00 06 */ mulli r31, r25, 6
+/* 802F1F80 002EDBE0 7C 7B 1B 78 */ mr r27, r3
+/* 802F1F84 002EDBE4 3B DD 57 72 */ addi r30, r29, 0x5772
+/* 802F1F88 002EDBE8 38 61 00 08 */ addi r3, r1, 8
+/* 802F1F8C 002EDBEC 38 A0 00 06 */ li r5, 6
+/* 802F1F90 002EDBF0 7C 9E FA 14 */ add r4, r30, r31
+/* 802F1F94 002EDBF4 4B D1 20 6D */ bl memcpy
+/* 802F1F98 002EDBF8 57 20 08 3C */ slwi r0, r25, 1
+/* 802F1F9C 002EDBFC 7F 63 DB 78 */ mr r3, r27
+/* 802F1FA0 002EDC00 7C 9D 02 14 */ add r4, r29, r0
+/* 802F1FA4 002EDC04 B3 84 65 04 */ sth r28, 0x6504(r4)
+/* 802F1FA8 002EDC08 4B F7 C7 DD */ bl OSRestoreInterrupts
+/* 802F1FAC 002EDC0C 7C 7E FA 14 */ add r3, r30, r31
+/* 802F1FB0 002EDC10 38 82 AA 38 */ addi r4, r2, lbl_80643038-_SDA2_BASE_
+/* 802F1FB4 002EDC14 4B FF EB 61 */ bl MPiIsEqualMacAddress
+/* 802F1FB8 002EDC18 2C 03 00 00 */ cmpwi r3, 0
+/* 802F1FBC 002EDC1C 41 82 00 0C */ beq lbl_802F1FC8
+/* 802F1FC0 002EDC20 38 60 FF 01 */ li r3, -255
+/* 802F1FC4 002EDC24 48 00 00 3C */ b lbl_802F2000
+lbl_802F1FC8:
+/* 802F1FC8 002EDC28 38 61 00 08 */ addi r3, r1, 8
+/* 802F1FCC 002EDC2C 4B FF F0 79 */ bl MPiDisAssoc
+/* 802F1FD0 002EDC30 3C 03 00 01 */ addis r0, r3, 1
+/* 802F1FD4 002EDC34 7C 7D 1B 78 */ mr r29, r3
+/* 802F1FD8 002EDC38 28 00 FF 01 */ cmplwi r0, 0xff01
+/* 802F1FDC 002EDC3C 40 82 00 08 */ bne lbl_802F1FE4
+/* 802F1FE0 002EDC40 3B 40 00 01 */ li r26, 1
+lbl_802F1FE4:
+/* 802F1FE4 002EDC44 2C 1A 00 00 */ cmpwi r26, 0
+/* 802F1FE8 002EDC48 41 82 00 14 */ beq lbl_802F1FFC
+/* 802F1FEC 002EDC4C 7F 23 CB 78 */ mr r3, r25
+/* 802F1FF0 002EDC50 7F 84 E3 78 */ mr r4, r28
+/* 802F1FF4 002EDC54 38 A1 00 08 */ addi r5, r1, 8
+/* 802F1FF8 002EDC58 48 00 01 61 */ bl MPiProcessDisconnectedNotification
+lbl_802F1FFC:
+/* 802F1FFC 002EDC5C 7F A3 EB 78 */ mr r3, r29
+lbl_802F2000:
+/* 802F2000 002EDC60 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2004 002EDC64 4B ED 51 69 */ bl _restgpr_25
+/* 802F2008 002EDC68 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F200C 002EDC6C 7C 08 03 A6 */ mtlr r0
+/* 802F2010 002EDC70 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F2014 002EDC74 4E 80 00 20 */ blr
+
+.global MPiProcessConnectedNotification
+MPiProcessConnectedNotification:
+/* 802F2018 002EDC78 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F201C 002EDC7C 7C 08 02 A6 */ mflr r0
+/* 802F2020 002EDC80 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F2024 002EDC84 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2028 002EDC88 4B ED 50 F9 */ bl _savegpr_25
+/* 802F202C 002EDC8C 28 03 00 10 */ cmplwi r3, 0x10
+/* 802F2030 002EDC90 7C 7A 1B 78 */ mr r26, r3
+/* 802F2034 002EDC94 7C 9B 23 78 */ mr r27, r4
+/* 802F2038 002EDC98 7C BC 2B 78 */ mr r28, r5
+/* 802F203C 002EDC9C 7C DD 33 78 */ mr r29, r6
+/* 802F2040 002EDCA0 3B E0 00 00 */ li r31, 0
+/* 802F2044 002EDCA4 41 80 00 08 */ blt lbl_802F204C
+/* 802F2048 002EDCA8 48 00 00 F8 */ b lbl_802F2140
+lbl_802F204C:
+/* 802F204C 002EDCAC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2050 002EDCB0 80 03 00 30 */ lwz r0, 0x30(r3)
+/* 802F2054 002EDCB4 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2058 002EDCB8 41 82 00 08 */ beq lbl_802F2060
+/* 802F205C 002EDCBC 3B E0 00 01 */ li r31, 1
+lbl_802F2060:
+/* 802F2060 002EDCC0 4B F7 C6 FD */ bl OSDisableInterrupts
+/* 802F2064 002EDCC4 1C 1A 00 06 */ mulli r0, r26, 6
+/* 802F2068 002EDCC8 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F206C 002EDCCC 7C 7E 1B 78 */ mr r30, r3
+/* 802F2070 002EDCD0 7F 64 DB 78 */ mr r4, r27
+/* 802F2074 002EDCD4 7C 65 02 14 */ add r3, r5, r0
+/* 802F2078 002EDCD8 38 A0 00 06 */ li r5, 6
+/* 802F207C 002EDCDC 38 63 57 72 */ addi r3, r3, 0x5772
+/* 802F2080 002EDCE0 4B D1 1F 81 */ bl memcpy
+/* 802F2084 002EDCE4 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2088 002EDCE8 57 43 08 3C */ slwi r3, r26, 1
+/* 802F208C 002EDCEC 57 40 30 32 */ slwi r0, r26, 6
+/* 802F2090 002EDCF0 3B 20 00 00 */ li r25, 0
+/* 802F2094 002EDCF4 7C A6 1A 14 */ add r5, r6, r3
+/* 802F2098 002EDCF8 38 80 00 00 */ li r4, 0
+/* 802F209C 002EDCFC 7C 66 02 14 */ add r3, r6, r0
+/* 802F20A0 002EDD00 B3 25 65 04 */ sth r25, 0x6504(r5)
+/* 802F20A4 002EDD04 38 63 60 84 */ addi r3, r3, 0x6084
+/* 802F20A8 002EDD08 38 A0 00 40 */ li r5, 0x40
+/* 802F20AC 002EDD0C 4B D1 20 59 */ bl memset
+/* 802F20B0 002EDD10 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F20B4 002EDD14 57 40 10 3A */ slwi r0, r26, 2
+/* 802F20B8 002EDD18 7C 63 02 14 */ add r3, r3, r0
+/* 802F20BC 002EDD1C 93 23 64 84 */ stw r25, 0x6484(r3)
+/* 802F20C0 002EDD20 4B F8 07 11 */ bl OSGetTick
+/* 802F20C4 002EDD24 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F20C8 002EDD28 57 40 10 3A */ slwi r0, r26, 2
+/* 802F20CC 002EDD2C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F20D0 002EDD30 7C 85 02 14 */ add r4, r5, r0
+/* 802F20D4 002EDD34 90 64 64 C4 */ stw r3, 0x64c4(r4)
+/* 802F20D8 002EDD38 41 82 00 1C */ beq lbl_802F20F4
+/* 802F20DC 002EDD3C 38 00 00 01 */ li r0, 1
+/* 802F20E0 002EDD40 80 65 57 64 */ lwz r3, 0x5764(r5)
+/* 802F20E4 002EDD44 7C 00 D0 30 */ slw r0, r0, r26
+/* 802F20E8 002EDD48 7C 60 03 78 */ or r0, r3, r0
+/* 802F20EC 002EDD4C 90 05 57 64 */ stw r0, 0x5764(r5)
+/* 802F20F0 002EDD50 48 00 00 18 */ b lbl_802F2108
+lbl_802F20F4:
+/* 802F20F4 002EDD54 38 00 00 01 */ li r0, 1
+/* 802F20F8 002EDD58 80 65 57 64 */ lwz r3, 0x5764(r5)
+/* 802F20FC 002EDD5C 7C 00 D0 30 */ slw r0, r0, r26
+/* 802F2100 002EDD60 7C 60 00 78 */ andc r0, r3, r0
+/* 802F2104 002EDD64 90 05 57 64 */ stw r0, 0x5764(r5)
+lbl_802F2108:
+/* 802F2108 002EDD68 7F 43 D3 78 */ mr r3, r26
+/* 802F210C 002EDD6C 48 00 14 C1 */ bl MPiResetPortByAid
+/* 802F2110 002EDD70 7F C3 F3 78 */ mr r3, r30
+/* 802F2114 002EDD74 4B F7 C6 71 */ bl OSRestoreInterrupts
+/* 802F2118 002EDD78 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F211C 002EDD7C 40 82 00 10 */ bne lbl_802F212C
+/* 802F2120 002EDD80 7F 63 DB 78 */ mr r3, r27
+/* 802F2124 002EDD84 4B FF EF 21 */ bl MPiDisAssoc
+/* 802F2128 002EDD88 48 00 00 18 */ b lbl_802F2140
+lbl_802F212C:
+/* 802F212C 002EDD8C 7F 43 D3 78 */ mr r3, r26
+/* 802F2130 002EDD90 7F 64 DB 78 */ mr r4, r27
+/* 802F2134 002EDD94 7F 85 E3 78 */ mr r5, r28
+/* 802F2138 002EDD98 7F A6 EB 78 */ mr r6, r29
+/* 802F213C 002EDD9C 48 00 15 C1 */ bl MPiNotifyConnectedToPort
+lbl_802F2140:
+/* 802F2140 002EDDA0 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2144 002EDDA4 4B ED 50 29 */ bl _restgpr_25
+/* 802F2148 002EDDA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F214C 002EDDAC 7C 08 03 A6 */ mtlr r0
+/* 802F2150 002EDDB0 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F2154 002EDDB4 4E 80 00 20 */ blr
+
+.global MPiProcessDisconnectedNotification
+MPiProcessDisconnectedNotification:
+/* 802F2158 002EDDB8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F215C 002EDDBC 7C 08 02 A6 */ mflr r0
+/* 802F2160 002EDDC0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F2164 002EDDC4 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2168 002EDDC8 4B ED 4F B1 */ bl _savegpr_23
+/* 802F216C 002EDDCC 28 03 00 10 */ cmplwi r3, 0x10
+/* 802F2170 002EDDD0 7C 78 1B 78 */ mr r24, r3
+/* 802F2174 002EDDD4 7C 99 23 78 */ mr r25, r4
+/* 802F2178 002EDDD8 7C BA 2B 78 */ mr r26, r5
+/* 802F217C 002EDDDC 40 80 00 EC */ bge lbl_802F2268
+/* 802F2180 002EDDE0 4B F7 C5 DD */ bl OSDisableInterrupts
+/* 802F2184 002EDDE4 7C 7B 1B 78 */ mr r27, r3
+/* 802F2188 002EDDE8 7F 03 C3 78 */ mr r3, r24
+/* 802F218C 002EDDEC 48 00 14 41 */ bl MPiResetPortByAid
+/* 802F2190 002EDDF0 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2194 002EDDF4 38 00 00 01 */ li r0, 1
+/* 802F2198 002EDDF8 7C 1F C0 30 */ slw r31, r0, r24
+/* 802F219C 002EDDFC 80 1E 57 64 */ lwz r0, 0x5764(r30)
+/* 802F21A0 002EDE00 7F E3 00 38 */ and r3, r31, r0
+/* 802F21A4 002EDE04 7C 03 00 D0 */ neg r0, r3
+/* 802F21A8 002EDE08 7C 00 1B 78 */ or r0, r0, r3
+/* 802F21AC 002EDE0C 54 1C 0F FF */ rlwinm. r28, r0, 1, 0x1f, 0x1f
+/* 802F21B0 002EDE10 41 82 00 38 */ beq lbl_802F21E8
+/* 802F21B4 002EDE14 1C 18 00 06 */ mulli r0, r24, 6
+/* 802F21B8 002EDE18 7F 44 D3 78 */ mr r4, r26
+/* 802F21BC 002EDE1C 7C 7E 02 14 */ add r3, r30, r0
+/* 802F21C0 002EDE20 38 63 57 72 */ addi r3, r3, 0x5772
+/* 802F21C4 002EDE24 4B FF E9 51 */ bl MPiIsEqualMacAddress
+/* 802F21C8 002EDE28 2C 03 00 00 */ cmpwi r3, 0
+/* 802F21CC 002EDE2C 41 82 00 1C */ beq lbl_802F21E8
+/* 802F21D0 002EDE30 57 00 08 3C */ slwi r0, r24, 1
+/* 802F21D4 002EDE34 7C 7E 02 14 */ add r3, r30, r0
+/* 802F21D8 002EDE38 A0 03 65 04 */ lhz r0, 0x6504(r3)
+/* 802F21DC 002EDE3C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F21E0 002EDE40 41 82 00 08 */ beq lbl_802F21E8
+/* 802F21E4 002EDE44 7C 19 03 78 */ mr r25, r0
+lbl_802F21E8:
+/* 802F21E8 002EDE48 1C 18 00 06 */ mulli r0, r24, 6
+/* 802F21EC 002EDE4C 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F21F0 002EDE50 38 80 00 00 */ li r4, 0
+/* 802F21F4 002EDE54 38 A0 00 06 */ li r5, 6
+/* 802F21F8 002EDE58 7C 7D 02 14 */ add r3, r29, r0
+/* 802F21FC 002EDE5C 38 63 57 72 */ addi r3, r3, 0x5772
+/* 802F2200 002EDE60 4B D1 1F 05 */ bl memset
+/* 802F2204 002EDE64 57 03 08 3C */ slwi r3, r24, 1
+/* 802F2208 002EDE68 3A E0 00 00 */ li r23, 0
+/* 802F220C 002EDE6C 7C 7D 1A 14 */ add r3, r29, r3
+/* 802F2210 002EDE70 57 00 30 32 */ slwi r0, r24, 6
+/* 802F2214 002EDE74 B2 E3 65 04 */ sth r23, 0x6504(r3)
+/* 802F2218 002EDE78 7C 7D 02 14 */ add r3, r29, r0
+/* 802F221C 002EDE7C 38 63 60 84 */ addi r3, r3, 0x6084
+/* 802F2220 002EDE80 38 80 00 00 */ li r4, 0
+/* 802F2224 002EDE84 80 1E 57 64 */ lwz r0, 0x5764(r30)
+/* 802F2228 002EDE88 38 A0 00 40 */ li r5, 0x40
+/* 802F222C 002EDE8C 7C 00 F8 78 */ andc r0, r0, r31
+/* 802F2230 002EDE90 90 1E 57 64 */ stw r0, 0x5764(r30)
+/* 802F2234 002EDE94 4B D1 1E D1 */ bl memset
+/* 802F2238 002EDE98 57 00 10 3A */ slwi r0, r24, 2
+/* 802F223C 002EDE9C 7F 63 DB 78 */ mr r3, r27
+/* 802F2240 002EDEA0 7C 9D 02 14 */ add r4, r29, r0
+/* 802F2244 002EDEA4 92 E4 64 84 */ stw r23, 0x6484(r4)
+/* 802F2248 002EDEA8 92 E4 64 C4 */ stw r23, 0x64c4(r4)
+/* 802F224C 002EDEAC 4B F7 C5 39 */ bl OSRestoreInterrupts
+/* 802F2250 002EDEB0 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F2254 002EDEB4 41 82 00 14 */ beq lbl_802F2268
+/* 802F2258 002EDEB8 7F 03 C3 78 */ mr r3, r24
+/* 802F225C 002EDEBC 7F 24 CB 78 */ mr r4, r25
+/* 802F2260 002EDEC0 7F 45 D3 78 */ mr r5, r26
+/* 802F2264 002EDEC4 48 00 15 79 */ bl MPiNotifyDisconnectedToPort
+lbl_802F2268:
+/* 802F2268 002EDEC8 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F226C 002EDECC 4B ED 4E F9 */ bl _restgpr_23
+/* 802F2270 002EDED0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F2274 002EDED4 7C 08 03 A6 */ mtlr r0
+/* 802F2278 002EDED8 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F227C 002EDEDC 4E 80 00 20 */ blr
+
+.global MPiAddRssi
+MPiAddRssi:
+/* 802F2280 002EDEE0 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2284 002EDEE4 54 65 10 3A */ slwi r5, r3, 2
+/* 802F2288 002EDEE8 54 60 30 32 */ slwi r0, r3, 6
+/* 802F228C 002EDEEC 7C A6 2A 14 */ add r5, r6, r5
+/* 802F2290 002EDEF0 80 E5 64 84 */ lwz r7, 0x6484(r5)
+/* 802F2294 002EDEF4 7C 66 02 14 */ add r3, r6, r0
+/* 802F2298 002EDEF8 54 E0 10 3A */ slwi r0, r7, 2
+/* 802F229C 002EDEFC 38 E7 00 01 */ addi r7, r7, 1
+/* 802F22A0 002EDF00 7C 63 02 14 */ add r3, r3, r0
+/* 802F22A4 002EDF04 28 07 00 10 */ cmplwi r7, 0x10
+/* 802F22A8 002EDF08 90 83 60 84 */ stw r4, 0x6084(r3)
+/* 802F22AC 002EDF0C 41 80 00 08 */ blt lbl_802F22B4
+/* 802F22B0 002EDF10 38 E0 00 00 */ li r7, 0
+lbl_802F22B4:
+/* 802F22B4 002EDF14 90 E5 64 84 */ stw r7, 0x6484(r5)
+/* 802F22B8 002EDF18 4E 80 00 20 */ blr
+
+.global MPiUpdateLifeTime
+MPiUpdateLifeTime:
+/* 802F22BC 002EDF1C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F22C0 002EDF20 7C 08 02 A6 */ mflr r0
+/* 802F22C4 002EDF24 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F22C8 002EDF28 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F22CC 002EDF2C 7C 7F 1B 78 */ mr r31, r3
+/* 802F22D0 002EDF30 4B F8 05 01 */ bl OSGetTick
+/* 802F22D4 002EDF34 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F22D8 002EDF38 57 E0 10 3A */ slwi r0, r31, 2
+/* 802F22DC 002EDF3C 7C 84 02 14 */ add r4, r4, r0
+/* 802F22E0 002EDF40 90 64 64 C4 */ stw r3, 0x64c4(r4)
+/* 802F22E4 002EDF44 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F22E8 002EDF48 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F22EC 002EDF4C 7C 08 03 A6 */ mtlr r0
+/* 802F22F0 002EDF50 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F22F4 002EDF54 4E 80 00 20 */ blr
+
+.global MPiCompareLifeTime
+MPiCompareLifeTime:
+/* 802F22F8 002EDF58 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F22FC 002EDF5C 54 60 10 3A */ slwi r0, r3, 2
+/* 802F2300 002EDF60 7C 65 02 14 */ add r3, r5, r0
+/* 802F2304 002EDF64 80 03 64 C4 */ lwz r0, 0x64c4(r3)
+/* 802F2308 002EDF68 7C 04 00 50 */ subf r0, r4, r0
+/* 802F230C 002EDF6C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 802F2310 002EDF70 4E 80 00 20 */ blr
+
+.global MPiProcessLifeTimeExpiration
+MPiProcessLifeTimeExpiration:
+/* 802F2314 002EDF74 38 80 00 01 */ li r4, 1
+/* 802F2318 002EDF78 38 A0 00 00 */ li r5, 0
+/* 802F231C 002EDF7C 4B FF FC 14 */ b MPiDisconnect
+
+.global MPiProcessForcibleLifeTimeExpiration
+MPiProcessForcibleLifeTimeExpiration:
+/* 802F2320 002EDF80 38 80 00 01 */ li r4, 1
+/* 802F2324 002EDF84 38 A0 00 01 */ li r5, 1
+/* 802F2328 002EDF88 4B FF FC 08 */ b MPiDisconnect
+
+.global MPiGetLinkLevel
+MPiGetLinkLevel:
+/* 802F232C 002EDF8C 28 03 00 10 */ cmplwi r3, 0x10
+/* 802F2330 002EDF90 41 80 00 0C */ blt lbl_802F233C
+/* 802F2334 002EDF94 38 60 FF 01 */ li r3, -255
+/* 802F2338 002EDF98 4E 80 00 20 */ blr
+lbl_802F233C:
+/* 802F233C 002EDF9C 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2340 002EDFA0 54 60 30 32 */ slwi r0, r3, 6
+/* 802F2344 002EDFA4 7C A4 02 14 */ add r5, r4, r0
+/* 802F2348 002EDFA8 80 85 60 84 */ lwz r4, 0x6084(r5)
+/* 802F234C 002EDFAC 80 05 60 88 */ lwz r0, 0x6088(r5)
+/* 802F2350 002EDFB0 80 65 60 8C */ lwz r3, 0x608c(r5)
+/* 802F2354 002EDFB4 7C C4 02 14 */ add r6, r4, r0
+/* 802F2358 002EDFB8 80 05 60 90 */ lwz r0, 0x6090(r5)
+/* 802F235C 002EDFBC 7C C6 1A 14 */ add r6, r6, r3
+/* 802F2360 002EDFC0 80 65 60 94 */ lwz r3, 0x6094(r5)
+/* 802F2364 002EDFC4 7C C6 02 14 */ add r6, r6, r0
+/* 802F2368 002EDFC8 80 05 60 98 */ lwz r0, 0x6098(r5)
+/* 802F236C 002EDFCC 7C C6 1A 14 */ add r6, r6, r3
+/* 802F2370 002EDFD0 80 65 60 9C */ lwz r3, 0x609c(r5)
+/* 802F2374 002EDFD4 7C C6 02 14 */ add r6, r6, r0
+/* 802F2378 002EDFD8 80 05 60 A0 */ lwz r0, 0x60a0(r5)
+/* 802F237C 002EDFDC 7C C6 1A 14 */ add r6, r6, r3
+/* 802F2380 002EDFE0 80 85 60 A4 */ lwz r4, 0x60a4(r5)
+/* 802F2384 002EDFE4 7C C6 02 14 */ add r6, r6, r0
+/* 802F2388 002EDFE8 80 05 60 A8 */ lwz r0, 0x60a8(r5)
+/* 802F238C 002EDFEC 7C C6 22 14 */ add r6, r6, r4
+/* 802F2390 002EDFF0 80 65 60 AC */ lwz r3, 0x60ac(r5)
+/* 802F2394 002EDFF4 7C C6 02 14 */ add r6, r6, r0
+/* 802F2398 002EDFF8 80 05 60 B0 */ lwz r0, 0x60b0(r5)
+/* 802F239C 002EDFFC 7C C6 1A 14 */ add r6, r6, r3
+/* 802F23A0 002EE000 80 65 60 B4 */ lwz r3, 0x60b4(r5)
+/* 802F23A4 002EE004 7C C6 02 14 */ add r6, r6, r0
+/* 802F23A8 002EE008 80 05 60 B8 */ lwz r0, 0x60b8(r5)
+/* 802F23AC 002EE00C 7C C6 1A 14 */ add r6, r6, r3
+/* 802F23B0 002EE010 80 65 60 BC */ lwz r3, 0x60bc(r5)
+/* 802F23B4 002EE014 7C C6 02 14 */ add r6, r6, r0
+/* 802F23B8 002EE018 80 05 60 C0 */ lwz r0, 0x60c0(r5)
+/* 802F23BC 002EE01C 7C C6 1A 14 */ add r6, r6, r3
+/* 802F23C0 002EE020 7C C6 02 14 */ add r6, r6, r0
+/* 802F23C4 002EE024 7C C0 26 70 */ srawi r0, r6, 4
+/* 802F23C8 002EE028 7C C0 01 94 */ addze r6, r0
+/* 802F23CC 002EE02C 2C 06 00 BD */ cmpwi r6, 0xbd
+/* 802F23D0 002EE030 41 80 00 0C */ blt lbl_802F23DC
+/* 802F23D4 002EE034 38 60 00 03 */ li r3, 3
+/* 802F23D8 002EE038 4E 80 00 20 */ blr
+lbl_802F23DC:
+/* 802F23DC 002EE03C 2C 06 00 B4 */ cmpwi r6, 0xb4
+/* 802F23E0 002EE040 41 80 00 0C */ blt lbl_802F23EC
+/* 802F23E4 002EE044 38 60 00 02 */ li r3, 2
+/* 802F23E8 002EE048 4E 80 00 20 */ blr
+lbl_802F23EC:
+/* 802F23EC 002EE04C 7C C3 FE 70 */ srawi r3, r6, 0x1f
+/* 802F23F0 002EE050 38 00 00 B0 */ li r0, 0xb0
+/* 802F23F4 002EE054 7C 00 30 10 */ subfc r0, r0, r6
+/* 802F23F8 002EE058 38 00 00 00 */ li r0, 0
+/* 802F23FC 002EE05C 7C 63 01 14 */ adde r3, r3, r0
+/* 802F2400 002EE060 4E 80 00 20 */ blr
diff --git a/asm/SDK/MP/mpnotification.s b/asm/SDK/MP/mpnotification.s
new file mode 100644
index 0000000..ea152fc
--- /dev/null
+++ b/asm/SDK/MP/mpnotification.s
@@ -0,0 +1,138 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global MPiStartupNotification
+MPiStartupNotification:
+/* 802F3158 002EEDB8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F315C 002EEDBC 7C 08 02 A6 */ mflr r0
+/* 802F3160 002EEDC0 38 80 00 00 */ li r4, 0
+/* 802F3164 002EEDC4 38 A0 10 00 */ li r5, 0x1000
+/* 802F3168 002EEDC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F316C 002EEDCC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F3170 002EEDD0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3174 002EEDD4 38 7F 21 40 */ addi r3, r31, 0x2140
+/* 802F3178 002EEDD8 4B D1 0F 8D */ bl memset
+/* 802F317C 002EEDDC 38 7F 6F C8 */ addi r3, r31, 0x6fc8
+/* 802F3180 002EEDE0 38 80 00 00 */ li r4, 0
+/* 802F3184 002EEDE4 38 A0 03 18 */ li r5, 0x318
+/* 802F3188 002EEDE8 4B D1 0F 7D */ bl memset
+/* 802F318C 002EEDEC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3190 002EEDF0 38 60 00 00 */ li r3, 0
+/* 802F3194 002EEDF4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3198 002EEDF8 7C 08 03 A6 */ mtlr r0
+/* 802F319C 002EEDFC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F31A0 002EEE00 4E 80 00 20 */ blr
+
+.global MPiStartupNotificationLater
+MPiStartupNotificationLater:
+/* 802F31A4 002EEE04 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F31A8 002EEE08 7C 08 02 A6 */ mflr r0
+/* 802F31AC 002EEE0C 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F31B0 002EEE10 3C 80 80 2F */ lis r4, HandleNotification@ha
+/* 802F31B4 002EEE14 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F31B8 002EEE18 38 84 32 68 */ addi r4, r4, HandleNotification@l
+/* 802F31BC 002EEE1C 38 A0 00 00 */ li r5, 0
+/* 802F31C0 002EEE20 38 66 6F C8 */ addi r3, r6, 0x6fc8
+/* 802F31C4 002EEE24 81 06 00 08 */ lwz r8, 8(r6)
+/* 802F31C8 002EEE28 38 C6 31 40 */ addi r6, r6, 0x3140
+/* 802F31CC 002EEE2C 38 E0 10 00 */ li r7, 0x1000
+/* 802F31D0 002EEE30 39 20 00 00 */ li r9, 0
+/* 802F31D4 002EEE34 39 08 00 02 */ addi r8, r8, 2
+/* 802F31D8 002EEE38 4B F7 E7 09 */ bl OSCreateThread
+/* 802F31DC 002EEE3C 2C 03 00 00 */ cmpwi r3, 0
+/* 802F31E0 002EEE40 40 82 00 0C */ bne lbl_802F31EC
+/* 802F31E4 002EEE44 38 60 FF 11 */ li r3, -239
+/* 802F31E8 002EEE48 48 00 00 14 */ b lbl_802F31FC
+lbl_802F31EC:
+/* 802F31EC 002EEE4C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F31F0 002EEE50 38 63 6F C8 */ addi r3, r3, 0x6fc8
+/* 802F31F4 002EEE54 4B F7 ED 55 */ bl OSResumeThread
+/* 802F31F8 002EEE58 38 60 00 00 */ li r3, 0
+lbl_802F31FC:
+/* 802F31FC 002EEE5C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3200 002EEE60 7C 08 03 A6 */ mtlr r0
+/* 802F3204 002EEE64 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3208 002EEE68 4E 80 00 20 */ blr
+
+.global MPiCleanupNotificationEarlier
+MPiCleanupNotificationEarlier:
+/* 802F320C 002EEE6C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F3210 002EEE70 7C 08 02 A6 */ mflr r0
+/* 802F3214 002EEE74 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F3218 002EEE78 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F321C 002EEE7C 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3220 002EEE80 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F3224 002EEE84 41 82 00 2C */ beq lbl_802F3250
+/* 802F3228 002EEE88 A0 1F 72 90 */ lhz r0, 0x7290(r31)
+/* 802F322C 002EEE8C 2C 00 00 00 */ cmpwi r0, 0
+/* 802F3230 002EEE90 41 82 00 10 */ beq lbl_802F3240
+/* 802F3234 002EEE94 38 7F 6F C8 */ addi r3, r31, 0x6fc8
+/* 802F3238 002EEE98 38 80 00 00 */ li r4, 0
+/* 802F323C 002EEE9C 4B F7 EB CD */ bl OSJoinThread
+lbl_802F3240:
+/* 802F3240 002EEEA0 38 7F 6F C8 */ addi r3, r31, 0x6fc8
+/* 802F3244 002EEEA4 38 80 00 00 */ li r4, 0
+/* 802F3248 002EEEA8 38 A0 03 18 */ li r5, 0x318
+/* 802F324C 002EEEAC 4B D1 0E B9 */ bl memset
+lbl_802F3250:
+/* 802F3250 002EEEB0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3254 002EEEB4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3258 002EEEB8 7C 08 03 A6 */ mtlr r0
+/* 802F325C 002EEEBC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3260 002EEEC0 4E 80 00 20 */ blr
+
+.global MPiCleanupNotification
+MPiCleanupNotification:
+/* 802F3264 002EEEC4 4E 80 00 20 */ blr
+
+HandleNotification:
+/* 802F3268 002EEEC8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F326C 002EEECC 7C 08 02 A6 */ mflr r0
+/* 802F3270 002EEED0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F3274 002EEED4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F3278 002EEED8 3F E0 80 44 */ lis r31, 0x8044
+/* 802F327C 002EEEDC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F3280 002EEEE0 3F C0 80 58 */ lis r30, lbl_80579160@ha
+/* 802F3284 002EEEE4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F3288 002EEEE8 3B BE 91 60 */ addi r29, r30, lbl_80579160@l
+lbl_802F328C:
+/* 802F328C 002EEEEC 38 7E 91 60 */ addi r3, r30, -28320
+/* 802F3290 002EEEF0 4B FF B0 FD */ bl WD_ReceiveNotification
+/* 802F3294 002EEEF4 3C 03 80 00 */ addis r0, r3, 0x8000
+/* 802F3298 002EEEF8 28 00 80 00 */ cmplwi r0, 0x8000
+/* 802F329C 002EEEFC 40 82 00 08 */ bne lbl_802F32A4
+/* 802F32A0 002EEF00 48 00 00 60 */ b lbl_802F3300
+lbl_802F32A4:
+/* 802F32A4 002EEF04 80 1D 00 00 */ lwz r0, 0(r29)
+/* 802F32A8 002EEF08 28 00 00 06 */ cmplwi r0, 6
+/* 802F32AC 002EEF0C 41 81 FF E0 */ bgt lbl_802F328C
+/* 802F32B0 002EEF10 38 7F 5C 88 */ addi r3, r31, 0x5c88
+/* 802F32B4 002EEF14 54 00 10 3A */ slwi r0, r0, 2
+/* 802F32B8 002EEF18 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802F32BC 002EEF1C 7C 69 03 A6 */ mtctr r3
+/* 802F32C0 002EEF20 4E 80 04 20 */ bctr
+/* 802F32C4 002EEF24 38 9D 00 08 */ addi r4, r29, 8
+/* 802F32C8 002EEF28 A0 7D 00 0E */ lhz r3, 0xe(r29)
+/* 802F32CC 002EEF2C A0 DD 00 10 */ lhz r6, 0x10(r29)
+/* 802F32D0 002EEF30 38 A4 00 0C */ addi r5, r4, 0xc
+/* 802F32D4 002EEF34 4B FF ED 45 */ bl MPiProcessConnectedNotification
+/* 802F32D8 002EEF38 4B FF FF B4 */ b lbl_802F328C
+/* 802F32DC 002EEF3C A0 7D 00 0E */ lhz r3, 0xe(r29)
+/* 802F32E0 002EEF40 38 BD 00 08 */ addi r5, r29, 8
+/* 802F32E4 002EEF44 A0 9D 00 10 */ lhz r4, 0x10(r29)
+/* 802F32E8 002EEF48 4B FF EE 71 */ bl MPiProcessDisconnectedNotification
+/* 802F32EC 002EEF4C 4B FF FF A0 */ b lbl_802F328C
+/* 802F32F0 002EEF50 48 00 08 E5 */ bl MPiProcessBeaconSentNotification
+/* 802F32F4 002EEF54 4B FF FF 98 */ b lbl_802F328C
+/* 802F32F8 002EEF58 4B FF F5 61 */ bl MPiProcessParentDataSendError
+/* 802F32FC 002EEF5C 4B FF FF 90 */ b lbl_802F328C
+lbl_802F3300:
+/* 802F3300 002EEF60 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F3304 002EEF64 38 60 00 00 */ li r3, 0
+/* 802F3308 002EEF68 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F330C 002EEF6C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F3310 002EEF70 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F3314 002EEF74 7C 08 03 A6 */ mtlr r0
+/* 802F3318 002EEF78 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F331C 002EEF7C 4E 80 00 20 */ blr
diff --git a/asm/SDK/MP/mpparent.s b/asm/SDK/MP/mpparent.s
new file mode 100644
index 0000000..8f046a0
--- /dev/null
+++ b/asm/SDK/MP/mpparent.s
@@ -0,0 +1,944 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global MPiStartupParent
+MPiStartupParent:
+/* 802F2404 002EE064 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F2408 002EE068 7C 08 02 A6 */ mflr r0
+/* 802F240C 002EE06C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F2410 002EE070 38 00 00 00 */ li r0, 0
+/* 802F2414 002EE074 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F2418 002EE078 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F241C 002EE07C 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2420 002EE080 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F2424 002EE084 38 7E 6D 08 */ addi r3, r30, 0x6d08
+/* 802F2428 002EE088 90 1E 6D E0 */ stw r0, 0x6de0(r30)
+/* 802F242C 002EE08C 4B F7 72 F9 */ bl OSCreateAlarm
+/* 802F2430 002EE090 38 7E 6D 38 */ addi r3, r30, 0x6d38
+/* 802F2434 002EE094 4B F7 72 F1 */ bl OSCreateAlarm
+/* 802F2438 002EE098 38 7E 6D 68 */ addi r3, r30, 0x6d68
+/* 802F243C 002EE09C 4B F7 72 E9 */ bl OSCreateAlarm
+/* 802F2440 002EE0A0 38 7E 6D A4 */ addi r3, r30, 0x6da4
+/* 802F2444 002EE0A4 38 80 00 00 */ li r4, 0
+/* 802F2448 002EE0A8 4B F7 EA 21 */ bl OSInitSemaphore
+/* 802F244C 002EE0AC 38 7E 6D 98 */ addi r3, r30, 0x6d98
+/* 802F2450 002EE0B0 38 80 00 00 */ li r4, 0
+/* 802F2454 002EE0B4 4B F7 EA 15 */ bl OSInitSemaphore
+/* 802F2458 002EE0B8 38 7E 6D B0 */ addi r3, r30, 0x6db0
+/* 802F245C 002EE0BC 38 9E 6D D0 */ addi r4, r30, 0x6dd0
+/* 802F2460 002EE0C0 38 A0 00 01 */ li r5, 1
+/* 802F2464 002EE0C4 4B F7 CA 95 */ bl OSInitMessageQueue
+/* 802F2468 002EE0C8 38 7E 66 14 */ addi r3, r30, 0x6614
+/* 802F246C 002EE0CC 38 9E 66 34 */ addi r4, r30, 0x6634
+/* 802F2470 002EE0D0 38 A0 00 20 */ li r5, 0x20
+/* 802F2474 002EE0D4 4B F7 CA 85 */ bl OSInitMessageQueue
+/* 802F2478 002EE0D8 38 7E 66 B4 */ addi r3, r30, 0x66b4
+/* 802F247C 002EE0DC 38 9E 66 D4 */ addi r4, r30, 0x66d4
+/* 802F2480 002EE0E0 38 A0 00 01 */ li r5, 1
+/* 802F2484 002EE0E4 4B F7 CA 75 */ bl OSInitMessageQueue
+/* 802F2488 002EE0E8 3B FE 74 58 */ addi r31, r30, 0x7458
+/* 802F248C 002EE0EC 38 80 00 00 */ li r4, 0
+/* 802F2490 002EE0F0 7F E3 FB 78 */ mr r3, r31
+/* 802F2494 002EE0F4 38 A0 00 80 */ li r5, 0x80
+/* 802F2498 002EE0F8 4B D1 1C 6D */ bl memset
+/* 802F249C 002EE0FC 3B BE 74 38 */ addi r29, r30, 0x7438
+/* 802F24A0 002EE100 7F E4 FB 78 */ mr r4, r31
+/* 802F24A4 002EE104 7F A3 EB 78 */ mr r3, r29
+/* 802F24A8 002EE108 38 A0 00 20 */ li r5, 0x20
+/* 802F24AC 002EE10C 4B F7 CA 4D */ bl OSInitMessageQueue
+/* 802F24B0 002EE110 3B DE 73 38 */ addi r30, r30, 0x7338
+/* 802F24B4 002EE114 38 80 00 00 */ li r4, 0
+/* 802F24B8 002EE118 7F C3 F3 78 */ mr r3, r30
+/* 802F24BC 002EE11C 38 A0 01 00 */ li r5, 0x100
+/* 802F24C0 002EE120 4B D1 1C 45 */ bl memset
+/* 802F24C4 002EE124 3B E0 00 00 */ li r31, 0
+lbl_802F24C8:
+/* 802F24C8 002EE128 7F A3 EB 78 */ mr r3, r29
+/* 802F24CC 002EE12C 7F C4 F3 78 */ mr r4, r30
+/* 802F24D0 002EE130 38 A0 00 00 */ li r5, 0
+/* 802F24D4 002EE134 4B F7 CA 85 */ bl OSSendMessage
+/* 802F24D8 002EE138 3B FF 00 01 */ addi r31, r31, 1
+/* 802F24DC 002EE13C 3B DE 00 08 */ addi r30, r30, 8
+/* 802F24E0 002EE140 2C 1F 00 20 */ cmpwi r31, 0x20
+/* 802F24E4 002EE144 41 80 FF E4 */ blt lbl_802F24C8
+/* 802F24E8 002EE148 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F24EC 002EE14C 38 80 00 00 */ li r4, 0
+/* 802F24F0 002EE150 38 A0 10 00 */ li r5, 0x1000
+/* 802F24F4 002EE154 38 7D 01 40 */ addi r3, r29, 0x140
+/* 802F24F8 002EE158 4B D1 1C 0D */ bl memset
+/* 802F24FC 002EE15C 38 7D 66 D8 */ addi r3, r29, 0x66d8
+/* 802F2500 002EE160 38 80 00 00 */ li r4, 0
+/* 802F2504 002EE164 38 A0 03 18 */ li r5, 0x318
+/* 802F2508 002EE168 4B D1 1B FD */ bl memset
+/* 802F250C 002EE16C 38 7D 11 40 */ addi r3, r29, 0x1140
+/* 802F2510 002EE170 38 80 00 00 */ li r4, 0
+/* 802F2514 002EE174 38 A0 10 00 */ li r5, 0x1000
+/* 802F2518 002EE178 4B D1 1B ED */ bl memset
+/* 802F251C 002EE17C 38 7D 69 F0 */ addi r3, r29, 0x69f0
+/* 802F2520 002EE180 38 80 00 00 */ li r4, 0
+/* 802F2524 002EE184 38 A0 03 18 */ li r5, 0x318
+/* 802F2528 002EE188 4B D1 1B DD */ bl memset
+/* 802F252C 002EE18C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F2530 002EE190 38 60 00 00 */ li r3, 0
+/* 802F2534 002EE194 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F2538 002EE198 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F253C 002EE19C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F2540 002EE1A0 7C 08 03 A6 */ mtlr r0
+/* 802F2544 002EE1A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F2548 002EE1A8 4E 80 00 20 */ blr
+
+.global MPiStartupParentLater
+MPiStartupParentLater:
+/* 802F254C 002EE1AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F2550 002EE1B0 7C 08 02 A6 */ mflr r0
+/* 802F2554 002EE1B4 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2558 002EE1B8 3C 80 80 2F */ lis r4, HandleMPEndIndication@ha
+/* 802F255C 002EE1BC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F2560 002EE1C0 38 84 28 AC */ addi r4, r4, HandleMPEndIndication@l
+/* 802F2564 002EE1C4 38 A0 00 00 */ li r5, 0
+/* 802F2568 002EE1C8 38 66 66 D8 */ addi r3, r6, 0x66d8
+/* 802F256C 002EE1CC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F2570 002EE1D0 38 E0 10 00 */ li r7, 0x1000
+/* 802F2574 002EE1D4 39 20 00 00 */ li r9, 0
+/* 802F2578 002EE1D8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F257C 002EE1DC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F2580 002EE1E0 81 06 00 08 */ lwz r8, 8(r6)
+/* 802F2584 002EE1E4 38 C6 11 40 */ addi r6, r6, 0x1140
+/* 802F2588 002EE1E8 39 08 00 01 */ addi r8, r8, 1
+/* 802F258C 002EE1EC 4B F7 F3 55 */ bl OSCreateThread
+/* 802F2590 002EE1F0 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2594 002EE1F4 40 82 00 0C */ bne lbl_802F25A0
+/* 802F2598 002EE1F8 38 60 FF 11 */ li r3, -239
+/* 802F259C 002EE1FC 48 00 01 A8 */ b lbl_802F2744
+lbl_802F25A0:
+/* 802F25A0 002EE200 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F25A4 002EE204 38 63 66 D8 */ addi r3, r3, 0x66d8
+/* 802F25A8 002EE208 4B F7 F9 A1 */ bl OSResumeThread
+/* 802F25AC 002EE20C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F25B0 002EE210 38 80 00 00 */ li r4, 0
+/* 802F25B4 002EE214 38 A0 00 80 */ li r5, 0x80
+/* 802F25B8 002EE218 38 63 74 58 */ addi r3, r3, 0x7458
+/* 802F25BC 002EE21C 4B D1 1B 49 */ bl memset
+/* 802F25C0 002EE220 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F25C4 002EE224 38 A0 00 20 */ li r5, 0x20
+/* 802F25C8 002EE228 38 64 74 38 */ addi r3, r4, 0x7438
+/* 802F25CC 002EE22C 38 84 74 58 */ addi r4, r4, 0x7458
+/* 802F25D0 002EE230 4B F7 C9 29 */ bl OSInitMessageQueue
+/* 802F25D4 002EE234 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F25D8 002EE238 38 80 00 00 */ li r4, 0
+/* 802F25DC 002EE23C 38 A0 01 00 */ li r5, 0x100
+/* 802F25E0 002EE240 38 63 73 38 */ addi r3, r3, 0x7338
+/* 802F25E4 002EE244 4B D1 1B 21 */ bl memset
+/* 802F25E8 002EE248 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F25EC 002EE24C 3B A0 00 00 */ li r29, 0
+/* 802F25F0 002EE250 3B E0 00 00 */ li r31, 0
+lbl_802F25F4:
+/* 802F25F4 002EE254 7C 9E FA 14 */ add r4, r30, r31
+/* 802F25F8 002EE258 38 7E 74 38 */ addi r3, r30, 0x7438
+/* 802F25FC 002EE25C 38 84 73 38 */ addi r4, r4, 0x7338
+/* 802F2600 002EE260 38 A0 00 00 */ li r5, 0
+/* 802F2604 002EE264 4B F7 C9 55 */ bl OSSendMessage
+/* 802F2608 002EE268 3B BD 00 01 */ addi r29, r29, 1
+/* 802F260C 002EE26C 3B FF 00 08 */ addi r31, r31, 8
+/* 802F2610 002EE270 2C 1D 00 20 */ cmpwi r29, 0x20
+/* 802F2614 002EE274 41 80 FF E0 */ blt lbl_802F25F4
+/* 802F2618 002EE278 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+lbl_802F261C:
+/* 802F261C 002EE27C 38 7E 66 14 */ addi r3, r30, 0x6614
+/* 802F2620 002EE280 38 81 00 08 */ addi r4, r1, 8
+/* 802F2624 002EE284 38 A0 00 00 */ li r5, 0
+/* 802F2628 002EE288 4B F7 C9 F9 */ bl OSReceiveMessage
+/* 802F262C 002EE28C 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2630 002EE290 40 82 FF EC */ bne lbl_802F261C
+/* 802F2634 002EE294 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2638 002EE298 3C 80 80 2F */ lis r4, HandleMPSequence@ha
+/* 802F263C 002EE29C 38 84 29 58 */ addi r4, r4, HandleMPSequence@l
+/* 802F2640 002EE2A0 38 A0 00 00 */ li r5, 0
+/* 802F2644 002EE2A4 81 06 00 08 */ lwz r8, 8(r6)
+/* 802F2648 002EE2A8 38 66 69 F0 */ addi r3, r6, 0x69f0
+/* 802F264C 002EE2AC 38 C6 21 40 */ addi r6, r6, 0x2140
+/* 802F2650 002EE2B0 38 E0 10 00 */ li r7, 0x1000
+/* 802F2654 002EE2B4 39 20 00 00 */ li r9, 0
+/* 802F2658 002EE2B8 4B F7 F2 89 */ bl OSCreateThread
+/* 802F265C 002EE2BC 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2660 002EE2C0 40 82 00 0C */ bne lbl_802F266C
+/* 802F2664 002EE2C4 38 60 FF 11 */ li r3, -239
+/* 802F2668 002EE2C8 48 00 00 DC */ b lbl_802F2744
+lbl_802F266C:
+/* 802F266C 002EE2CC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2670 002EE2D0 38 63 69 F0 */ addi r3, r3, 0x69f0
+/* 802F2674 002EE2D4 4B F7 F8 D5 */ bl OSResumeThread
+/* 802F2678 002EE2D8 4B F8 01 41 */ bl OSGetTime
+/* 802F267C 002EE2DC 3F C0 80 00 */ lis r30, 0x800000F8@ha
+/* 802F2680 002EE2E0 3F E0 43 1C */ lis r31, 0x431BDE83@ha
+/* 802F2684 002EE2E4 80 1E 00 F8 */ lwz r0, 0x800000F8@l(r30)
+/* 802F2688 002EE2E8 38 FF DE 83 */ addi r7, r31, 0x431BDE83@l
+/* 802F268C 002EE2EC 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2690 002EE2F0 38 C0 00 00 */ li r6, 0
+/* 802F2694 002EE2F4 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F2698 002EE2F8 7C 07 00 16 */ mulhwu r0, r7, r0
+/* 802F269C 002EE2FC 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F26A0 002EE300 1C 00 41 50 */ mulli r0, r0, 0x4150
+/* 802F26A4 002EE304 54 00 E8 FE */ srwi r0, r0, 3
+/* 802F26A8 002EE308 7C 00 20 14 */ addc r0, r0, r4
+/* 802F26AC 002EE30C 90 05 6D DC */ stw r0, 0x6ddc(r5)
+/* 802F26B0 002EE310 7C 06 19 14 */ adde r0, r6, r3
+/* 802F26B4 002EE314 90 05 6D D8 */ stw r0, 0x6dd8(r5)
+/* 802F26B8 002EE318 4B F8 01 01 */ bl OSGetTime
+/* 802F26BC 002EE31C 80 1E 00 F8 */ lwz r0, 0xf8(r30)
+/* 802F26C0 002EE320 3D 20 80 2F */ lis r9, PictureFrameAlarmHandler@ha
+/* 802F26C4 002EE324 38 DF DE 83 */ addi r6, r31, -8573
+/* 802F26C8 002EE328 80 E2 AA 30 */ lwz r7, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F26CC 002EE32C 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F26D0 002EE330 7C 65 1B 78 */ mr r5, r3
+/* 802F26D4 002EE334 7C 06 00 16 */ mulhwu r0, r6, r0
+/* 802F26D8 002EE338 38 67 6D 38 */ addi r3, r7, 0x6d38
+/* 802F26DC 002EE33C 7C 86 23 78 */ mr r6, r4
+/* 802F26E0 002EE340 39 29 30 B4 */ addi r9, r9, PictureFrameAlarmHandler@l
+/* 802F26E4 002EE344 38 E0 00 00 */ li r7, 0
+/* 802F26E8 002EE348 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F26EC 002EE34C 1C 00 41 50 */ mulli r0, r0, 0x4150
+/* 802F26F0 002EE350 54 08 E8 FE */ srwi r8, r0, 3
+/* 802F26F4 002EE354 4B F7 73 01 */ bl OSSetPeriodicAlarm
+/* 802F26F8 002EE358 4B F8 00 C1 */ bl OSGetTime
+/* 802F26FC 002EE35C 80 1E 00 F8 */ lwz r0, 0xf8(r30)
+/* 802F2700 002EE360 3D 20 80 2F */ lis r9, ParentPeriodicAlarmHandler@ha
+/* 802F2704 002EE364 38 FF DE 83 */ addi r7, r31, -8573
+/* 802F2708 002EE368 3C A0 00 0F */ lis r5, 0x000F4240@ha
+/* 802F270C 002EE36C 54 06 F0 BE */ srwi r6, r0, 2
+/* 802F2710 002EE370 81 02 AA 30 */ lwz r8, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2714 002EE374 7C E7 30 16 */ mulhwu r7, r7, r6
+/* 802F2718 002EE378 38 05 42 40 */ addi r0, r5, 0x000F4240@l
+/* 802F271C 002EE37C 7C 86 23 78 */ mr r6, r4
+/* 802F2720 002EE380 7C 65 1B 78 */ mr r5, r3
+/* 802F2724 002EE384 38 68 6D 68 */ addi r3, r8, 0x6d68
+/* 802F2728 002EE388 39 29 31 44 */ addi r9, r9, ParentPeriodicAlarmHandler@l
+/* 802F272C 002EE38C 54 E4 8B FE */ srwi r4, r7, 0xf
+/* 802F2730 002EE390 38 E0 00 00 */ li r7, 0
+/* 802F2734 002EE394 7C 04 01 D6 */ mullw r0, r4, r0
+/* 802F2738 002EE398 54 08 E8 FE */ srwi r8, r0, 3
+/* 802F273C 002EE39C 4B F7 72 B9 */ bl OSSetPeriodicAlarm
+/* 802F2740 002EE3A0 38 60 00 00 */ li r3, 0
+lbl_802F2744:
+/* 802F2744 002EE3A4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F2748 002EE3A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F274C 002EE3AC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F2750 002EE3B0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F2754 002EE3B4 7C 08 03 A6 */ mtlr r0
+/* 802F2758 002EE3B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F275C 002EE3BC 4E 80 00 20 */ blr
+
+.global MPiCleanupParentEarlier
+MPiCleanupParentEarlier:
+/* 802F2760 002EE3C0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F2764 002EE3C4 7C 08 02 A6 */ mflr r0
+/* 802F2768 002EE3C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F276C 002EE3CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F2770 002EE3D0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2774 002EE3D4 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F2778 002EE3D8 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F277C 002EE3DC 41 82 00 74 */ beq lbl_802F27F0
+/* 802F2780 002EE3E0 A0 1F 6C B8 */ lhz r0, 0x6cb8(r31)
+/* 802F2784 002EE3E4 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2788 002EE3E8 41 82 00 10 */ beq lbl_802F2798
+/* 802F278C 002EE3EC 38 7F 69 F0 */ addi r3, r31, 0x69f0
+/* 802F2790 002EE3F0 38 80 00 00 */ li r4, 0
+/* 802F2794 002EE3F4 4B F7 F6 75 */ bl OSJoinThread
+lbl_802F2798:
+/* 802F2798 002EE3F8 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F279C 002EE3FC 38 80 00 00 */ li r4, 0
+/* 802F27A0 002EE400 38 A0 03 18 */ li r5, 0x318
+/* 802F27A4 002EE404 38 7E 69 F0 */ addi r3, r30, 0x69f0
+/* 802F27A8 002EE408 4B D1 19 5D */ bl memset
+/* 802F27AC 002EE40C A0 1E 69 A0 */ lhz r0, 0x69a0(r30)
+/* 802F27B0 002EE410 2C 00 00 00 */ cmpwi r0, 0
+/* 802F27B4 002EE414 41 82 00 10 */ beq lbl_802F27C4
+/* 802F27B8 002EE418 38 7F 66 D8 */ addi r3, r31, 0x66d8
+/* 802F27BC 002EE41C 38 80 00 00 */ li r4, 0
+/* 802F27C0 002EE420 4B F7 F6 49 */ bl OSJoinThread
+lbl_802F27C4:
+/* 802F27C4 002EE424 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F27C8 002EE428 38 80 00 00 */ li r4, 0
+/* 802F27CC 002EE42C 38 A0 03 18 */ li r5, 0x318
+/* 802F27D0 002EE430 38 7E 66 D8 */ addi r3, r30, 0x66d8
+/* 802F27D4 002EE434 4B D1 19 31 */ bl memset
+/* 802F27D8 002EE438 38 7E 6D 68 */ addi r3, r30, 0x6d68
+/* 802F27DC 002EE43C 4B F7 72 9D */ bl OSCancelAlarm
+/* 802F27E0 002EE440 38 7E 6D 38 */ addi r3, r30, 0x6d38
+/* 802F27E4 002EE444 4B F7 72 95 */ bl OSCancelAlarm
+/* 802F27E8 002EE448 38 7E 6D 08 */ addi r3, r30, 0x6d08
+/* 802F27EC 002EE44C 4B F7 72 8D */ bl OSCancelAlarm
+lbl_802F27F0:
+/* 802F27F0 002EE450 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F27F4 002EE454 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F27F8 002EE458 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F27FC 002EE45C 7C 08 03 A6 */ mtlr r0
+/* 802F2800 002EE460 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F2804 002EE464 4E 80 00 20 */ blr
+
+.global MPiCleanupParent
+MPiCleanupParent:
+/* 802F2808 002EE468 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F280C 002EE46C 7C 08 02 A6 */ mflr r0
+/* 802F2810 002EE470 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F2814 002EE474 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F2818 002EE478 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F281C 002EE47C 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F2820 002EE480 41 82 00 24 */ beq lbl_802F2844
+/* 802F2824 002EE484 38 7F 66 34 */ addi r3, r31, 0x6634
+/* 802F2828 002EE488 38 80 00 00 */ li r4, 0
+/* 802F282C 002EE48C 38 A0 00 80 */ li r5, 0x80
+/* 802F2830 002EE490 4B D1 18 D5 */ bl memset
+/* 802F2834 002EE494 38 7F 66 D4 */ addi r3, r31, 0x66d4
+/* 802F2838 002EE498 38 80 00 00 */ li r4, 0
+/* 802F283C 002EE49C 38 A0 00 04 */ li r5, 4
+/* 802F2840 002EE4A0 4B D1 18 C5 */ bl memset
+lbl_802F2844:
+/* 802F2844 002EE4A4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F2848 002EE4A8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F284C 002EE4AC 7C 08 03 A6 */ mtlr r0
+/* 802F2850 002EE4B0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F2854 002EE4B4 4E 80 00 20 */ blr
+
+.global MPiProcessParentDataSendError
+MPiProcessParentDataSendError:
+/* 802F2858 002EE4B8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F285C 002EE4BC 7C 08 02 A6 */ mflr r0
+/* 802F2860 002EE4C0 38 A0 00 01 */ li r5, 1
+/* 802F2864 002EE4C4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F2868 002EE4C8 38 81 00 08 */ addi r4, r1, 8
+/* 802F286C 002EE4CC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F2870 002EE4D0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2874 002EE4D4 38 7F 74 38 */ addi r3, r31, 0x7438
+/* 802F2878 002EE4D8 4B F7 C7 A9 */ bl OSReceiveMessage
+/* 802F287C 002EE4DC 80 81 00 08 */ lwz r4, 8(r1)
+/* 802F2880 002EE4E0 38 00 00 00 */ li r0, 0
+/* 802F2884 002EE4E4 38 7F 66 14 */ addi r3, r31, 0x6614
+/* 802F2888 002EE4E8 38 A0 00 01 */ li r5, 1
+/* 802F288C 002EE4EC 90 04 00 00 */ stw r0, 0(r4)
+/* 802F2890 002EE4F0 90 04 00 04 */ stw r0, 4(r4)
+/* 802F2894 002EE4F4 4B F7 C6 C5 */ bl OSSendMessage
+/* 802F2898 002EE4F8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F289C 002EE4FC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F28A0 002EE500 7C 08 03 A6 */ mtlr r0
+/* 802F28A4 002EE504 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F28A8 002EE508 4E 80 00 20 */ blr
+
+HandleMPEndIndication:
+/* 802F28AC 002EE50C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F28B0 002EE510 7C 08 02 A6 */ mflr r0
+/* 802F28B4 002EE514 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F28B8 002EE518 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F28BC 002EE51C 4B ED 48 6D */ bl _savegpr_27
+/* 802F28C0 002EE520 83 82 AA 30 */ lwz r28, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F28C4 002EE524 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F28C8 002EE528 40 82 00 0C */ bne lbl_802F28D4
+/* 802F28CC 002EE52C 38 60 00 00 */ li r3, 0
+/* 802F28D0 002EE530 48 00 00 70 */ b lbl_802F2940
+lbl_802F28D4:
+/* 802F28D4 002EE534 3B 7C 31 40 */ addi r27, r28, 0x3140
+/* 802F28D8 002EE538 3B DC 74 38 */ addi r30, r28, 0x7438
+/* 802F28DC 002EE53C 3B BC 66 14 */ addi r29, r28, 0x6614
+lbl_802F28E0:
+/* 802F28E0 002EE540 7F 63 DB 78 */ mr r3, r27
+/* 802F28E4 002EE544 38 80 20 00 */ li r4, 0x2000
+/* 802F28E8 002EE548 4B FF E6 C5 */ bl MPiReceiveFrame
+/* 802F28EC 002EE54C 3C 03 80 00 */ addis r0, r3, 0x8000
+/* 802F28F0 002EE550 7C 7F 1B 78 */ mr r31, r3
+/* 802F28F4 002EE554 28 00 80 00 */ cmplwi r0, 0x8000
+/* 802F28F8 002EE558 40 82 00 18 */ bne lbl_802F2910
+/* 802F28FC 002EE55C 38 7C 66 14 */ addi r3, r28, 0x6614
+/* 802F2900 002EE560 38 80 00 00 */ li r4, 0
+/* 802F2904 002EE564 38 A0 00 01 */ li r5, 1
+/* 802F2908 002EE568 4B F7 C6 51 */ bl OSSendMessage
+/* 802F290C 002EE56C 48 00 00 30 */ b lbl_802F293C
+lbl_802F2910:
+/* 802F2910 002EE570 7F C3 F3 78 */ mr r3, r30
+/* 802F2914 002EE574 38 81 00 08 */ addi r4, r1, 8
+/* 802F2918 002EE578 38 A0 00 01 */ li r5, 1
+/* 802F291C 002EE57C 4B F7 C7 05 */ bl OSReceiveMessage
+/* 802F2920 002EE580 80 81 00 08 */ lwz r4, 8(r1)
+/* 802F2924 002EE584 7F A3 EB 78 */ mr r3, r29
+/* 802F2928 002EE588 38 A0 00 01 */ li r5, 1
+/* 802F292C 002EE58C 93 64 00 00 */ stw r27, 0(r4)
+/* 802F2930 002EE590 93 E4 00 04 */ stw r31, 4(r4)
+/* 802F2934 002EE594 4B F7 C6 25 */ bl OSSendMessage
+/* 802F2938 002EE598 4B FF FF A8 */ b lbl_802F28E0
+lbl_802F293C:
+/* 802F293C 002EE59C 38 60 00 00 */ li r3, 0
+lbl_802F2940:
+/* 802F2940 002EE5A0 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2944 002EE5A4 4B ED 48 31 */ bl _restgpr_27
+/* 802F2948 002EE5A8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F294C 002EE5AC 7C 08 03 A6 */ mtlr r0
+/* 802F2950 002EE5B0 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F2954 002EE5B4 4E 80 00 20 */ blr
+
+HandleMPSequence:
+/* 802F2958 002EE5B8 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 802F295C 002EE5BC 7C 08 02 A6 */ mflr r0
+/* 802F2960 002EE5C0 90 01 00 54 */ stw r0, 0x54(r1)
+/* 802F2964 002EE5C4 39 61 00 50 */ addi r11, r1, 0x50
+/* 802F2968 002EE5C8 4B ED 47 A9 */ bl _savegpr_21
+/* 802F296C 002EE5CC 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2970 002EE5D0 3B A0 00 00 */ li r29, 0
+/* 802F2974 002EE5D4 3B E0 00 00 */ li r31, 0
+/* 802F2978 002EE5D8 3F 20 80 00 */ lis r25, 0x8000
+/* 802F297C 002EE5DC 3F 40 43 1C */ lis r26, 0x431c
+/* 802F2980 002EE5E0 3F 60 80 2F */ lis r27, 0x802f
+/* 802F2984 002EE5E4 48 00 00 80 */ b lbl_802F2A04
+lbl_802F2988:
+/* 802F2988 002EE5E8 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F298C 002EE5EC 38 81 00 10 */ addi r4, r1, 0x10
+/* 802F2990 002EE5F0 38 A0 00 00 */ li r5, 0
+/* 802F2994 002EE5F4 38 63 66 14 */ addi r3, r3, 0x6614
+/* 802F2998 002EE5F8 4B F7 C6 89 */ bl OSReceiveMessage
+/* 802F299C 002EE5FC 2C 03 00 00 */ cmpwi r3, 0
+/* 802F29A0 002EE600 41 82 00 14 */ beq lbl_802F29B4
+/* 802F29A4 002EE604 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 802F29A8 002EE608 7C 00 F8 40 */ cmplw r0, r31
+/* 802F29AC 002EE60C 40 82 00 08 */ bne lbl_802F29B4
+/* 802F29B0 002EE610 48 00 02 D4 */ b lbl_802F2C84
+lbl_802F29B4:
+/* 802F29B4 002EE614 38 60 00 20 */ li r3, 0x20
+/* 802F29B8 002EE618 4B FF F1 55 */ bl MPiClearSendQueue
+/* 802F29BC 002EE61C 80 19 00 F8 */ lwz r0, 0xf8(r25)
+/* 802F29C0 002EE620 38 7A DE 83 */ addi r3, r26, -8573
+/* 802F29C4 002EE624 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F29C8 002EE628 38 FB 30 78 */ addi r7, r27, 0x3078
+/* 802F29CC 002EE62C 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F29D0 002EE630 38 A0 00 00 */ li r5, 0
+/* 802F29D4 002EE634 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 802F29D8 002EE638 38 64 6D 08 */ addi r3, r4, 0x6d08
+/* 802F29DC 002EE63C 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F29E0 002EE640 1C 00 03 E8 */ mulli r0, r0, 0x3e8
+/* 802F29E4 002EE644 54 06 E8 FE */ srwi r6, r0, 3
+/* 802F29E8 002EE648 4B F7 6F 9D */ bl OSSetAlarm
+/* 802F29EC 002EE64C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F29F0 002EE650 38 63 6D 98 */ addi r3, r3, 0x6d98
+/* 802F29F4 002EE654 4B F7 E4 CD */ bl OSWaitSemaphore
+/* 802F29F8 002EE658 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F29FC 002EE65C 38 63 6D A4 */ addi r3, r3, 0x6da4
+/* 802F2A00 002EE660 4B F7 E4 C1 */ bl OSWaitSemaphore
+lbl_802F2A04:
+/* 802F2A04 002EE664 80 1E 57 64 */ lwz r0, 0x5764(r30)
+/* 802F2A08 002EE668 7C 00 00 34 */ cntlzw r0, r0
+/* 802F2A0C 002EE66C 54 00 D9 7F */ rlwinm. r0, r0, 0x1b, 5, 0x1f
+/* 802F2A10 002EE670 40 82 FF 78 */ bne lbl_802F2988
+/* 802F2A14 002EE674 38 7E 66 B4 */ addi r3, r30, 0x66b4
+/* 802F2A18 002EE678 38 81 00 10 */ addi r4, r1, 0x10
+/* 802F2A1C 002EE67C 38 A0 00 00 */ li r5, 0
+/* 802F2A20 002EE680 4B F7 C6 01 */ bl OSReceiveMessage
+/* 802F2A24 002EE684 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2A28 002EE688 41 82 00 1C */ beq lbl_802F2A44
+/* 802F2A2C 002EE68C 48 00 02 75 */ bl CheckLifeTime
+/* 802F2A30 002EE690 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2A34 002EE694 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 802F2A38 002EE698 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2A3C 002EE69C 40 82 00 08 */ bne lbl_802F2A44
+/* 802F2A40 002EE6A0 4B FF E5 D5 */ bl MPiChangeVTSF
+lbl_802F2A44:
+/* 802F2A44 002EE6A4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2A48 002EE6A8 38 81 00 10 */ addi r4, r1, 0x10
+/* 802F2A4C 002EE6AC 38 A0 00 00 */ li r5, 0
+/* 802F2A50 002EE6B0 38 63 6D B0 */ addi r3, r3, 0x6db0
+/* 802F2A54 002EE6B4 4B F7 C5 CD */ bl OSReceiveMessage
+/* 802F2A58 002EE6B8 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2A5C 002EE6BC 41 82 00 44 */ beq lbl_802F2AA0
+/* 802F2A60 002EE6C0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2A64 002EE6C4 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 802F2A68 002EE6C8 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2A6C 002EE6CC 41 82 00 08 */ beq lbl_802F2A74
+/* 802F2A70 002EE6D0 4B FF E5 A5 */ bl MPiChangeVTSF
+lbl_802F2A74:
+/* 802F2A74 002EE6D4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2A78 002EE6D8 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 802F2A7C 002EE6DC 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2A80 002EE6E0 40 81 00 0C */ ble lbl_802F2A8C
+/* 802F2A84 002EE6E4 2C 00 00 06 */ cmpwi r0, 6
+/* 802F2A88 002EE6E8 40 81 00 08 */ ble lbl_802F2A90
+lbl_802F2A8C:
+/* 802F2A8C 002EE6EC 38 00 00 06 */ li r0, 6
+lbl_802F2A90:
+/* 802F2A90 002EE6F0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2A94 002EE6F4 90 03 6D E0 */ stw r0, 0x6de0(r3)
+/* 802F2A98 002EE6F8 80 03 57 64 */ lwz r0, 0x5764(r3)
+/* 802F2A9C 002EE6FC 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_802F2AA0:
+/* 802F2AA0 002EE700 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2AA4 002EE704 80 03 6D E0 */ lwz r0, 0x6de0(r3)
+/* 802F2AA8 002EE708 2C 00 00 01 */ cmpwi r0, 1
+/* 802F2AAC 002EE70C 41 81 00 0C */ bgt lbl_802F2AB8
+/* 802F2AB0 002EE710 3B 80 00 01 */ li r28, 1
+/* 802F2AB4 002EE714 48 00 00 08 */ b lbl_802F2ABC
+lbl_802F2AB8:
+/* 802F2AB8 002EE718 3B 80 00 00 */ li r28, 0
+lbl_802F2ABC:
+/* 802F2ABC 002EE71C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2AC0 002EE720 7F A5 EB 78 */ mr r5, r29
+/* 802F2AC4 002EE724 7F 86 E3 78 */ mr r6, r28
+/* 802F2AC8 002EE728 38 80 04 00 */ li r4, 0x400
+/* 802F2ACC 002EE72C 38 63 51 40 */ addi r3, r3, 0x5140
+/* 802F2AD0 002EE730 4B FF EE 2D */ bl MPiMakeSendFrame
+/* 802F2AD4 002EE734 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2AD8 002EE738 40 80 00 08 */ bge lbl_802F2AE0
+/* 802F2ADC 002EE73C 4B FF FF 28 */ b lbl_802F2A04
+lbl_802F2AE0:
+/* 802F2AE0 002EE740 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2AE4 002EE744 7C 76 1B 78 */ mr r22, r3
+/* 802F2AE8 002EE748 38 80 00 00 */ li r4, 0
+/* 802F2AEC 002EE74C 38 A0 00 10 */ li r5, 0x10
+/* 802F2AF0 002EE750 38 66 55 40 */ addi r3, r6, 0x5540
+/* 802F2AF4 002EE754 4B D1 16 11 */ bl memset
+/* 802F2AF8 002EE758 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2AFC 002EE75C 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F2B00 002EE760 B3 E5 55 40 */ sth r31, 0x5540(r5)
+/* 802F2B04 002EE764 B3 E5 55 42 */ sth r31, 0x5542(r5)
+/* 802F2B08 002EE768 B3 E5 55 44 */ sth r31, 0x5544(r5)
+/* 802F2B0C 002EE76C 80 65 00 2C */ lwz r3, 0x2c(r5)
+/* 802F2B10 002EE770 38 03 00 04 */ addi r0, r3, 4
+/* 802F2B14 002EE774 B0 05 55 46 */ sth r0, 0x5546(r5)
+/* 802F2B18 002EE778 B3 A5 55 48 */ sth r29, 0x5548(r5)
+/* 802F2B1C 002EE77C 41 82 00 20 */ beq lbl_802F2B3C
+/* 802F2B20 002EE780 A0 85 55 46 */ lhz r4, 0x5546(r5)
+/* 802F2B24 002EE784 7E C3 B3 78 */ mr r3, r22
+/* 802F2B28 002EE788 A0 A5 55 48 */ lhz r5, 0x5548(r5)
+/* 802F2B2C 002EE78C 48 00 04 7D */ bl GetTmptt
+/* 802F2B30 002EE790 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2B34 002EE794 B0 64 55 4A */ sth r3, 0x554a(r4)
+/* 802F2B38 002EE798 48 00 00 08 */ b lbl_802F2B40
+lbl_802F2B3C:
+/* 802F2B3C 002EE79C B3 E5 55 4A */ sth r31, 0x554a(r5)
+lbl_802F2B40:
+/* 802F2B40 002EE7A0 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2B44 002EE7A4 7E C4 B3 78 */ mr r4, r22
+/* 802F2B48 002EE7A8 B3 E6 55 4C */ sth r31, 0x554c(r6)
+/* 802F2B4C 002EE7AC 38 66 51 40 */ addi r3, r6, 0x5140
+/* 802F2B50 002EE7B0 38 A6 55 40 */ addi r5, r6, 0x5540
+/* 802F2B54 002EE7B4 A2 A6 55 48 */ lhz r21, 0x5548(r6)
+/* 802F2B58 002EE7B8 4B FF E4 29 */ bl MPiSendFrame
+/* 802F2B5C 002EE7BC 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2B60 002EE7C0 40 82 00 68 */ bne lbl_802F2BC8
+/* 802F2B64 002EE7C4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2B68 002EE7C8 38 81 00 0C */ addi r4, r1, 0xc
+/* 802F2B6C 002EE7CC 38 A0 00 01 */ li r5, 1
+/* 802F2B70 002EE7D0 38 63 66 14 */ addi r3, r3, 0x6614
+/* 802F2B74 002EE7D4 4B F7 C4 AD */ bl OSReceiveMessage
+/* 802F2B78 002EE7D8 83 01 00 0C */ lwz r24, 0xc(r1)
+/* 802F2B7C 002EE7DC 7C 18 F8 40 */ cmplw r24, r31
+/* 802F2B80 002EE7E0 40 82 00 08 */ bne lbl_802F2B88
+/* 802F2B84 002EE7E4 48 00 01 00 */ b lbl_802F2C84
+lbl_802F2B88:
+/* 802F2B88 002EE7E8 82 F8 00 00 */ lwz r23, 0(r24)
+/* 802F2B8C 002EE7EC 7F 03 C3 78 */ mr r3, r24
+/* 802F2B90 002EE7F0 82 D8 00 04 */ lwz r22, 4(r24)
+/* 802F2B94 002EE7F4 38 80 00 00 */ li r4, 0
+/* 802F2B98 002EE7F8 38 A0 00 08 */ li r5, 8
+/* 802F2B9C 002EE7FC 4B D1 15 69 */ bl memset
+/* 802F2BA0 002EE800 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2BA4 002EE804 7F 04 C3 78 */ mr r4, r24
+/* 802F2BA8 002EE808 38 A0 00 01 */ li r5, 1
+/* 802F2BAC 002EE80C 38 63 74 38 */ addi r3, r3, 0x7438
+/* 802F2BB0 002EE810 4B F7 C3 A9 */ bl OSSendMessage
+/* 802F2BB4 002EE814 7E E3 BB 78 */ mr r3, r23
+/* 802F2BB8 002EE818 7E C4 B3 78 */ mr r4, r22
+/* 802F2BBC 002EE81C 7E A5 AB 78 */ mr r5, r21
+/* 802F2BC0 002EE820 48 00 02 3D */ bl ParseMPEndIndication
+/* 802F2BC4 002EE824 48 00 00 34 */ b lbl_802F2BF8
+lbl_802F2BC8:
+/* 802F2BC8 002EE828 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2BCC 002EE82C 38 81 00 08 */ addi r4, r1, 8
+/* 802F2BD0 002EE830 38 A0 00 00 */ li r5, 0
+/* 802F2BD4 002EE834 38 63 66 14 */ addi r3, r3, 0x6614
+/* 802F2BD8 002EE838 4B F7 C4 49 */ bl OSReceiveMessage
+/* 802F2BDC 002EE83C 2C 03 00 01 */ cmpwi r3, 1
+/* 802F2BE0 002EE840 40 82 00 14 */ bne lbl_802F2BF4
+/* 802F2BE4 002EE844 80 01 00 08 */ lwz r0, 8(r1)
+/* 802F2BE8 002EE848 7C 00 F8 40 */ cmplw r0, r31
+/* 802F2BEC 002EE84C 40 82 00 08 */ bne lbl_802F2BF4
+/* 802F2BF0 002EE850 48 00 00 94 */ b lbl_802F2C84
+lbl_802F2BF4:
+/* 802F2BF4 002EE854 38 60 00 00 */ li r3, 0
+lbl_802F2BF8:
+/* 802F2BF8 002EE858 56 A0 04 3C */ rlwinm r0, r21, 0, 0x10, 0x1e
+/* 802F2BFC 002EE85C 7C 00 18 40 */ cmplw r0, r3
+/* 802F2C00 002EE860 40 82 00 20 */ bne lbl_802F2C20
+/* 802F2C04 002EE864 4B F7 BB 59 */ bl OSDisableInterrupts
+/* 802F2C08 002EE868 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2C0C 002EE86C 80 85 6D E0 */ lwz r4, 0x6de0(r5)
+/* 802F2C10 002EE870 38 04 FF FF */ addi r0, r4, -1
+/* 802F2C14 002EE874 90 05 6D E0 */ stw r0, 0x6de0(r5)
+/* 802F2C18 002EE878 4B F7 BB 6D */ bl OSRestoreInterrupts
+/* 802F2C1C 002EE87C 48 00 00 10 */ b lbl_802F2C2C
+lbl_802F2C20:
+/* 802F2C20 002EE880 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F2C24 002EE884 41 82 00 08 */ beq lbl_802F2C2C
+/* 802F2C28 002EE888 7F BD 18 78 */ andc r29, r29, r3
+lbl_802F2C2C:
+/* 802F2C2C 002EE88C 80 19 00 F8 */ lwz r0, 0xf8(r25)
+/* 802F2C30 002EE890 38 7A DE 83 */ addi r3, r26, -8573
+/* 802F2C34 002EE894 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2C38 002EE898 38 FB 30 78 */ addi r7, r27, 0x3078
+/* 802F2C3C 002EE89C 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F2C40 002EE8A0 38 A0 00 00 */ li r5, 0
+/* 802F2C44 002EE8A4 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 802F2C48 002EE8A8 38 64 6D 08 */ addi r3, r4, 0x6d08
+/* 802F2C4C 002EE8AC 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F2C50 002EE8B0 1C 00 03 E8 */ mulli r0, r0, 0x3e8
+/* 802F2C54 002EE8B4 54 06 E8 FE */ srwi r6, r0, 3
+/* 802F2C58 002EE8B8 4B F7 6D 2D */ bl OSSetAlarm
+/* 802F2C5C 002EE8BC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2C60 002EE8C0 38 63 6D 98 */ addi r3, r3, 0x6d98
+/* 802F2C64 002EE8C4 4B F7 E2 5D */ bl OSWaitSemaphore
+/* 802F2C68 002EE8C8 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2C6C 002EE8CC 80 03 6D E0 */ lwz r0, 0x6de0(r3)
+/* 802F2C70 002EE8D0 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2C74 002EE8D4 41 81 FD 90 */ bgt lbl_802F2A04
+/* 802F2C78 002EE8D8 38 63 6D A4 */ addi r3, r3, 0x6da4
+/* 802F2C7C 002EE8DC 4B F7 E2 45 */ bl OSWaitSemaphore
+/* 802F2C80 002EE8E0 4B FF FD 84 */ b lbl_802F2A04
+lbl_802F2C84:
+/* 802F2C84 002EE8E4 39 61 00 50 */ addi r11, r1, 0x50
+/* 802F2C88 002EE8E8 38 60 00 00 */ li r3, 0
+/* 802F2C8C 002EE8EC 4B ED 44 D1 */ bl _restgpr_21
+/* 802F2C90 002EE8F0 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 802F2C94 002EE8F4 7C 08 03 A6 */ mtlr r0
+/* 802F2C98 002EE8F8 38 21 00 50 */ addi r1, r1, 0x50
+/* 802F2C9C 002EE8FC 4E 80 00 20 */ blr
+
+.global CheckLifeTime
+CheckLifeTime:
+/* 802F2CA0 002EE900 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F2CA4 002EE904 7C 08 02 A6 */ mflr r0
+/* 802F2CA8 002EE908 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F2CAC 002EE90C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2CB0 002EE910 4B ED 44 69 */ bl _savegpr_23
+/* 802F2CB4 002EE914 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2CB8 002EE918 83 C3 00 1C */ lwz r30, 0x1c(r3)
+/* 802F2CBC 002EE91C 2C 1E 00 00 */ cmpwi r30, 0
+/* 802F2CC0 002EE920 41 82 01 24 */ beq lbl_802F2DE4
+/* 802F2CC4 002EE924 4B F7 FB 0D */ bl OSGetTick
+/* 802F2CC8 002EE928 3F 40 80 00 */ lis r26, 0x800000F8@ha
+/* 802F2CCC 002EE92C 3F 20 10 62 */ lis r25, 0x10624DD3@ha
+/* 802F2CD0 002EE930 80 9A 00 F8 */ lwz r4, 0x800000F8@l(r26)
+/* 802F2CD4 002EE934 38 B9 4D D3 */ addi r5, r25, 0x10624DD3@l
+/* 802F2CD8 002EE938 57 C0 08 3C */ slwi r0, r30, 1
+/* 802F2CDC 002EE93C 54 84 F0 BE */ srwi r4, r4, 2
+/* 802F2CE0 002EE940 7C 85 20 16 */ mulhwu r4, r5, r4
+/* 802F2CE4 002EE944 54 84 D1 BE */ srwi r4, r4, 6
+/* 802F2CE8 002EE948 7C 04 01 D6 */ mullw r0, r4, r0
+/* 802F2CEC 002EE94C 7F E0 18 50 */ subf r31, r0, r3
+/* 802F2CF0 002EE950 4B F7 FA E1 */ bl OSGetTick
+/* 802F2CF4 002EE954 80 1A 00 F8 */ lwz r0, 0xf8(r26)
+/* 802F2CF8 002EE958 38 99 4D D3 */ addi r4, r25, 0x4dd3
+/* 802F2CFC 002EE95C 3B A0 00 00 */ li r29, 0
+/* 802F2D00 002EE960 3B 80 00 00 */ li r28, 0
+/* 802F2D04 002EE964 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F2D08 002EE968 7C 04 00 16 */ mulhwu r0, r4, r0
+/* 802F2D0C 002EE96C 54 00 D1 BE */ srwi r0, r0, 6
+/* 802F2D10 002EE970 7C 1E 01 D6 */ mullw r0, r30, r0
+/* 802F2D14 002EE974 7F 00 18 50 */ subf r24, r0, r3
+/* 802F2D18 002EE978 4B F7 BA 45 */ bl OSDisableInterrupts
+/* 802F2D1C 002EE97C 7C 77 1B 78 */ mr r23, r3
+/* 802F2D20 002EE980 4B FF F0 79 */ bl MPGetConnectedAIDs
+/* 802F2D24 002EE984 7C 79 1B 78 */ mr r25, r3
+/* 802F2D28 002EE988 3B C0 00 01 */ li r30, 1
+/* 802F2D2C 002EE98C 3B 60 00 02 */ li r27, 2
+/* 802F2D30 002EE990 3B 40 00 01 */ li r26, 1
+lbl_802F2D34:
+/* 802F2D34 002EE994 7F 40 F0 30 */ slw r0, r26, r30
+/* 802F2D38 002EE998 7F 20 00 39 */ and. r0, r25, r0
+/* 802F2D3C 002EE99C 41 82 00 54 */ beq lbl_802F2D90
+/* 802F2D40 002EE9A0 7F C3 F3 78 */ mr r3, r30
+/* 802F2D44 002EE9A4 7F 04 C3 78 */ mr r4, r24
+/* 802F2D48 002EE9A8 4B FF F5 B1 */ bl MPiCompareLifeTime
+/* 802F2D4C 002EE9AC 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2D50 002EE9B0 41 82 00 40 */ beq lbl_802F2D90
+/* 802F2D54 002EE9B4 80 02 AA 30 */ lwz r0, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F2D58 002EE9B8 7C 60 DA 14 */ add r3, r0, r27
+/* 802F2D5C 002EE9BC A0 03 65 04 */ lhz r0, 0x6504(r3)
+/* 802F2D60 002EE9C0 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2D64 002EE9C4 40 82 00 10 */ bne lbl_802F2D74
+/* 802F2D68 002EE9C8 7F 40 F0 30 */ slw r0, r26, r30
+/* 802F2D6C 002EE9CC 7F BD 03 78 */ or r29, r29, r0
+/* 802F2D70 002EE9D0 48 00 00 20 */ b lbl_802F2D90
+lbl_802F2D74:
+/* 802F2D74 002EE9D4 7F C3 F3 78 */ mr r3, r30
+/* 802F2D78 002EE9D8 7F E4 FB 78 */ mr r4, r31
+/* 802F2D7C 002EE9DC 4B FF F5 7D */ bl MPiCompareLifeTime
+/* 802F2D80 002EE9E0 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2D84 002EE9E4 41 82 00 0C */ beq lbl_802F2D90
+/* 802F2D88 002EE9E8 7F 40 F0 30 */ slw r0, r26, r30
+/* 802F2D8C 002EE9EC 7F 9C 03 78 */ or r28, r28, r0
+lbl_802F2D90:
+/* 802F2D90 002EE9F0 3B DE 00 01 */ addi r30, r30, 1
+/* 802F2D94 002EE9F4 3B 7B 00 02 */ addi r27, r27, 2
+/* 802F2D98 002EE9F8 28 1E 00 10 */ cmplwi r30, 0x10
+/* 802F2D9C 002EE9FC 41 80 FF 98 */ blt lbl_802F2D34
+/* 802F2DA0 002EEA00 7E E3 BB 78 */ mr r3, r23
+/* 802F2DA4 002EEA04 4B F7 B9 E1 */ bl OSRestoreInterrupts
+/* 802F2DA8 002EEA08 3B C0 00 01 */ li r30, 1
+/* 802F2DAC 002EEA0C 3B 60 00 01 */ li r27, 1
+lbl_802F2DB0:
+/* 802F2DB0 002EEA10 7F 63 F0 30 */ slw r3, r27, r30
+/* 802F2DB4 002EEA14 7F A0 18 39 */ and. r0, r29, r3
+/* 802F2DB8 002EEA18 41 82 00 10 */ beq lbl_802F2DC8
+/* 802F2DBC 002EEA1C 7F C3 F3 78 */ mr r3, r30
+/* 802F2DC0 002EEA20 4B FF F5 55 */ bl MPiProcessLifeTimeExpiration
+/* 802F2DC4 002EEA24 48 00 00 14 */ b lbl_802F2DD8
+lbl_802F2DC8:
+/* 802F2DC8 002EEA28 7F 80 18 39 */ and. r0, r28, r3
+/* 802F2DCC 002EEA2C 41 82 00 0C */ beq lbl_802F2DD8
+/* 802F2DD0 002EEA30 7F C3 F3 78 */ mr r3, r30
+/* 802F2DD4 002EEA34 4B FF F5 4D */ bl MPiProcessForcibleLifeTimeExpiration
+lbl_802F2DD8:
+/* 802F2DD8 002EEA38 3B DE 00 01 */ addi r30, r30, 1
+/* 802F2DDC 002EEA3C 28 1E 00 10 */ cmplwi r30, 0x10
+/* 802F2DE0 002EEA40 41 80 FF D0 */ blt lbl_802F2DB0
+lbl_802F2DE4:
+/* 802F2DE4 002EEA44 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F2DE8 002EEA48 4B ED 43 7D */ bl _restgpr_23
+/* 802F2DEC 002EEA4C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F2DF0 002EEA50 7C 08 03 A6 */ mtlr r0
+/* 802F2DF4 002EEA54 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F2DF8 002EEA58 4E 80 00 20 */ blr
+
+.global ParseMPEndIndication
+ParseMPEndIndication:
+/* 802F2DFC 002EEA5C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 802F2E00 002EEA60 7C 08 02 A6 */ mflr r0
+/* 802F2E04 002EEA64 90 01 00 64 */ stw r0, 0x64(r1)
+/* 802F2E08 002EEA68 39 61 00 60 */ addi r11, r1, 0x60
+/* 802F2E0C 002EEA6C 4B ED 43 19 */ bl _savegpr_26
+/* 802F2E10 002EEA70 38 00 00 00 */ li r0, 0
+/* 802F2E14 002EEA74 2C 03 00 00 */ cmpwi r3, 0
+/* 802F2E18 002EEA78 90 01 00 08 */ stw r0, 8(r1)
+/* 802F2E1C 002EEA7C 7C 7D 1B 78 */ mr r29, r3
+/* 802F2E20 002EEA80 7C BE 2B 78 */ mr r30, r5
+/* 802F2E24 002EEA84 3B E0 00 00 */ li r31, 0
+/* 802F2E28 002EEA88 90 01 00 0C */ stw r0, 0xc(r1)
+/* 802F2E2C 002EEA8C 90 01 00 10 */ stw r0, 0x10(r1)
+/* 802F2E30 002EEA90 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F2E34 002EEA94 90 01 00 18 */ stw r0, 0x18(r1)
+/* 802F2E38 002EEA98 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 802F2E3C 002EEA9C 90 01 00 20 */ stw r0, 0x20(r1)
+/* 802F2E40 002EEAA0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F2E44 002EEAA4 90 01 00 28 */ stw r0, 0x28(r1)
+/* 802F2E48 002EEAA8 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 802F2E4C 002EEAAC 90 01 00 30 */ stw r0, 0x30(r1)
+/* 802F2E50 002EEAB0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F2E54 002EEAB4 90 01 00 38 */ stw r0, 0x38(r1)
+/* 802F2E58 002EEAB8 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 802F2E5C 002EEABC 90 01 00 40 */ stw r0, 0x40(r1)
+/* 802F2E60 002EEAC0 41 82 00 9C */ beq lbl_802F2EFC
+/* 802F2E64 002EEAC4 A0 A3 00 04 */ lhz r5, 4(r3)
+/* 802F2E68 002EEAC8 A0 03 00 06 */ lhz r0, 6(r3)
+/* 802F2E6C 002EEACC 7C A5 01 D6 */ mullw r5, r5, r0
+/* 802F2E70 002EEAD0 38 05 00 0A */ addi r0, r5, 0xa
+/* 802F2E74 002EEAD4 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 802F2E78 002EEAD8 7C 04 00 40 */ cmplw r4, r0
+/* 802F2E7C 002EEADC 41 82 00 0C */ beq lbl_802F2E88
+/* 802F2E80 002EEAE0 38 60 00 00 */ li r3, 0
+/* 802F2E84 002EEAE4 48 00 01 0C */ b lbl_802F2F90
+lbl_802F2E88:
+/* 802F2E88 002EEAE8 A0 63 00 02 */ lhz r3, 2(r3)
+/* 802F2E8C 002EEAEC 48 00 0F 2D */ bl MPiSetCurrentTsf
+/* 802F2E90 002EEAF0 38 FD 00 0A */ addi r7, r29, 0xa
+/* 802F2E94 002EEAF4 38 A1 00 08 */ addi r5, r1, 8
+/* 802F2E98 002EEAF8 38 C0 00 00 */ li r6, 0
+/* 802F2E9C 002EEAFC 38 60 00 01 */ li r3, 1
+/* 802F2EA0 002EEB00 48 00 00 50 */ b lbl_802F2EF0
+lbl_802F2EA4:
+/* 802F2EA4 002EEB04 A0 07 00 04 */ lhz r0, 4(r7)
+/* 802F2EA8 002EEB08 2C 00 00 00 */ cmpwi r0, 0
+/* 802F2EAC 002EEB0C 41 82 00 38 */ beq lbl_802F2EE4
+/* 802F2EB0 002EEB10 41 82 00 4C */ beq lbl_802F2EFC
+/* 802F2EB4 002EEB14 28 00 00 10 */ cmplwi r0, 0x10
+/* 802F2EB8 002EEB18 40 80 00 44 */ bge lbl_802F2EFC
+/* 802F2EBC 002EEB1C A0 87 00 00 */ lhz r4, 0(r7)
+/* 802F2EC0 002EEB20 28 04 FF FF */ cmplwi r4, 0xffff
+/* 802F2EC4 002EEB24 41 82 00 20 */ beq lbl_802F2EE4
+/* 802F2EC8 002EEB28 2C 04 00 00 */ cmpwi r4, 0
+/* 802F2ECC 002EEB2C 41 82 00 18 */ beq lbl_802F2EE4
+/* 802F2ED0 002EEB30 54 04 13 BA */ rlwinm r4, r0, 2, 0xe, 0x1d
+/* 802F2ED4 002EEB34 7C 60 00 30 */ slw r0, r3, r0
+/* 802F2ED8 002EEB38 7C 85 22 14 */ add r4, r5, r4
+/* 802F2EDC 002EEB3C 90 E4 FF FC */ stw r7, -4(r4)
+/* 802F2EE0 002EEB40 7F FF 03 78 */ or r31, r31, r0
+lbl_802F2EE4:
+/* 802F2EE4 002EEB44 A0 1D 00 06 */ lhz r0, 6(r29)
+/* 802F2EE8 002EEB48 38 C6 00 01 */ addi r6, r6, 1
+/* 802F2EEC 002EEB4C 7C E7 02 14 */ add r7, r7, r0
+lbl_802F2EF0:
+/* 802F2EF0 002EEB50 A0 1D 00 04 */ lhz r0, 4(r29)
+/* 802F2EF4 002EEB54 7C 06 00 00 */ cmpw r6, r0
+/* 802F2EF8 002EEB58 41 80 FF AC */ blt lbl_802F2EA4
+lbl_802F2EFC:
+/* 802F2EFC 002EEB5C 3B 81 00 08 */ addi r28, r1, 8
+/* 802F2F00 002EEB60 3B 60 00 00 */ li r27, 0
+/* 802F2F04 002EEB64 3B A0 00 01 */ li r29, 1
+lbl_802F2F08:
+/* 802F2F08 002EEB68 80 9C 00 00 */ lwz r4, 0(r28)
+/* 802F2F0C 002EEB6C 38 1B 00 01 */ addi r0, r27, 1
+/* 802F2F10 002EEB70 54 1A 06 3E */ clrlwi r26, r0, 0x18
+/* 802F2F14 002EEB74 2C 04 00 00 */ cmpwi r4, 0
+/* 802F2F18 002EEB78 41 82 00 44 */ beq lbl_802F2F5C
+/* 802F2F1C 002EEB7C A0 C4 00 00 */ lhz r6, 0(r4)
+/* 802F2F20 002EEB80 7F 43 D3 78 */ mr r3, r26
+/* 802F2F24 002EEB84 A0 04 00 08 */ lhz r0, 8(r4)
+/* 802F2F28 002EEB88 38 A4 00 0A */ addi r5, r4, 0xa
+/* 802F2F2C 002EEB8C 38 C6 FF FE */ addi r6, r6, -2
+/* 802F2F30 002EEB90 54 04 44 2E */ rlwinm r4, r0, 8, 0x10, 0x17
+/* 802F2F34 002EEB94 50 04 C6 3E */ rlwimi r4, r0, 0x18, 0x18, 0x1f
+/* 802F2F38 002EEB98 4B FF E7 51 */ bl MPiParseReceivedFrame
+/* 802F2F3C 002EEB9C 80 9C 00 00 */ lwz r4, 0(r28)
+/* 802F2F40 002EEBA0 7F 43 D3 78 */ mr r3, r26
+/* 802F2F44 002EEBA4 A0 04 00 02 */ lhz r0, 2(r4)
+/* 802F2F48 002EEBA8 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 802F2F4C 002EEBAC 4B FF F3 35 */ bl MPiAddRssi
+/* 802F2F50 002EEBB0 7F 43 D3 78 */ mr r3, r26
+/* 802F2F54 002EEBB4 4B FF F3 69 */ bl MPiUpdateLifeTime
+/* 802F2F58 002EEBB8 48 00 00 1C */ b lbl_802F2F74
+lbl_802F2F5C:
+/* 802F2F5C 002EEBBC 7F A0 D0 30 */ slw r0, r29, r26
+/* 802F2F60 002EEBC0 7F C0 00 39 */ and. r0, r30, r0
+/* 802F2F64 002EEBC4 41 82 00 10 */ beq lbl_802F2F74
+/* 802F2F68 002EEBC8 7F 43 D3 78 */ mr r3, r26
+/* 802F2F6C 002EEBCC 38 80 00 AF */ li r4, 0xaf
+/* 802F2F70 002EEBD0 4B FF F3 11 */ bl MPiAddRssi
+lbl_802F2F74:
+/* 802F2F74 002EEBD4 3B 7B 00 01 */ addi r27, r27, 1
+/* 802F2F78 002EEBD8 3B 9C 00 04 */ addi r28, r28, 4
+/* 802F2F7C 002EEBDC 2C 1B 00 0F */ cmpwi r27, 0xf
+/* 802F2F80 002EEBE0 41 80 FF 88 */ blt lbl_802F2F08
+/* 802F2F84 002EEBE4 7F E3 FB 78 */ mr r3, r31
+/* 802F2F88 002EEBE8 4B FF E8 99 */ bl MPiProcessDataSentNotification
+/* 802F2F8C 002EEBEC 7F E3 FB 78 */ mr r3, r31
+lbl_802F2F90:
+/* 802F2F90 002EEBF0 39 61 00 60 */ addi r11, r1, 0x60
+/* 802F2F94 002EEBF4 4B ED 41 DD */ bl _restgpr_26
+/* 802F2F98 002EEBF8 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 802F2F9C 002EEBFC 7C 08 03 A6 */ mtlr r0
+/* 802F2FA0 002EEC00 38 21 00 60 */ addi r1, r1, 0x60
+/* 802F2FA4 002EEC04 4E 80 00 20 */ blr
+
+.global GetTmptt
+GetTmptt:
+/* 802F2FA8 002EEC08 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F2FAC 002EEC0C 7C 08 02 A6 */ mflr r0
+/* 802F2FB0 002EEC10 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F2FB4 002EEC14 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10
+/* 802F2FB8 002EEC18 38 04 00 1C */ addi r0, r4, 0x1c
+/* 802F2FBC 002EEC1C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F2FC0 002EEC20 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F2FC4 002EEC24 7C 7E 1B 78 */ mr r30, r3
+/* 802F2FC8 002EEC28 54 03 10 3A */ slwi r3, r0, 2
+/* 802F2FCC 002EEC2C 3B E3 00 66 */ addi r31, r3, 0x66
+/* 802F2FD0 002EEC30 41 82 00 08 */ beq lbl_802F2FD8
+/* 802F2FD4 002EEC34 54 9F 04 7E */ clrlwi r31, r4, 0x11
+lbl_802F2FD8:
+/* 802F2FD8 002EEC38 7C A3 2B 78 */ mr r3, r5
+/* 802F2FDC 002EEC3C 4B FF DB FD */ bl MPiCountPopulation
+/* 802F2FE0 002EEC40 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 802F2FE4 002EEC44 38 7E 00 22 */ addi r3, r30, 0x22
+/* 802F2FE8 002EEC48 7C 1F 01 D6 */ mullw r0, r31, r0
+/* 802F2FEC 002EEC4C 54 63 10 3A */ slwi r3, r3, 2
+/* 802F2FF0 002EEC50 3B E3 00 60 */ addi r31, r3, 0x60
+/* 802F2FF4 002EEC54 7C 7F 02 14 */ add r3, r31, r0
+/* 802F2FF8 002EEC58 3B E3 03 88 */ addi r31, r3, 0x388
+/* 802F2FFC 002EEC5C 4B F7 F7 BD */ bl OSGetTime
+/* 802F3000 002EEC60 3C 60 80 00 */ lis r3, 0x800000F8@ha
+/* 802F3004 002EEC64 3C A0 43 1C */ lis r5, 0x431BDE83@ha
+/* 802F3008 002EEC68 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
+/* 802F300C 002EEC6C 3C 60 CC CD */ lis r3, 0xCCCCCCCD@ha
+/* 802F3010 002EEC70 38 A5 DE 83 */ addi r5, r5, 0x431BDE83@l
+/* 802F3014 002EEC74 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3018 002EEC78 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F301C 002EEC7C 38 E3 CC CD */ addi r7, r3, 0xCCCCCCCD@l
+/* 802F3020 002EEC80 7C 05 00 16 */ mulhwu r0, r5, r0
+/* 802F3024 002EEC84 80 66 6D DC */ lwz r3, 0x6ddc(r6)
+/* 802F3028 002EEC88 7C 64 18 50 */ subf r3, r4, r3
+/* 802F302C 002EEC8C 54 63 18 38 */ slwi r3, r3, 3
+/* 802F3030 002EEC90 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F3034 002EEC94 7C 03 03 96 */ divwu r0, r3, r0
+/* 802F3038 002EEC98 7C 07 00 16 */ mulhwu r0, r7, r0
+/* 802F303C 002EEC9C 54 03 E8 FE */ srwi r3, r0, 3
+/* 802F3040 002EECA0 34 63 FF EC */ addic. r3, r3, -20
+/* 802F3044 002EECA4 40 80 00 08 */ bge lbl_802F304C
+/* 802F3048 002EECA8 38 60 00 00 */ li r3, 0
+lbl_802F304C:
+/* 802F304C 002EECAC 1C 03 00 0A */ mulli r0, r3, 0xa
+/* 802F3050 002EECB0 7C 00 F8 40 */ cmplw r0, r31
+/* 802F3054 002EECB4 40 80 00 08 */ bge lbl_802F305C
+/* 802F3058 002EECB8 38 60 00 00 */ li r3, 0
+lbl_802F305C:
+/* 802F305C 002EECBC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3060 002EECC0 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 802F3064 002EECC4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F3068 002EECC8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F306C 002EECCC 7C 08 03 A6 */ mtlr r0
+/* 802F3070 002EECD0 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3074 002EECD4 4E 80 00 20 */ blr
+
+IntervalAlarmHandler:
+/* 802F3078 002EECD8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F307C 002EECDC 7C 08 02 A6 */ mflr r0
+/* 802F3080 002EECE0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3084 002EECE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F3088 002EECE8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F308C 002EECEC 3B E3 6D 98 */ addi r31, r3, 0x6d98
+/* 802F3090 002EECF0 7F E3 FB 78 */ mr r3, r31
+/* 802F3094 002EECF4 4B F7 DE 9D */ bl OSTryWaitSemaphore
+/* 802F3098 002EECF8 7F E3 FB 78 */ mr r3, r31
+/* 802F309C 002EECFC 4B F7 DE E5 */ bl OSSignalSemaphore
+/* 802F30A0 002EED00 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F30A4 002EED04 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F30A8 002EED08 7C 08 03 A6 */ mtlr r0
+/* 802F30AC 002EED0C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F30B0 002EED10 4E 80 00 20 */ blr
+
+PictureFrameAlarmHandler:
+/* 802F30B4 002EED14 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F30B8 002EED18 7C 08 02 A6 */ mflr r0
+/* 802F30BC 002EED1C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F30C0 002EED20 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F30C4 002EED24 93 C1 00 08 */ stw r30, 8(r1)
+/* 802F30C8 002EED28 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F30CC 002EED2C 4B F7 F6 ED */ bl OSGetTime
+/* 802F30D0 002EED30 3C C0 80 00 */ lis r6, 0x800000F8@ha
+/* 802F30D4 002EED34 3C A0 43 1C */ lis r5, 0x431BDE83@ha
+/* 802F30D8 002EED38 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
+/* 802F30DC 002EED3C 38 C5 DE 83 */ addi r6, r5, 0x431BDE83@l
+/* 802F30E0 002EED40 38 A0 00 00 */ li r5, 0
+/* 802F30E4 002EED44 3B FE 6D A4 */ addi r31, r30, 0x6da4
+/* 802F30E8 002EED48 54 00 F0 BE */ srwi r0, r0, 2
+/* 802F30EC 002EED4C 7C 06 00 16 */ mulhwu r0, r6, r0
+/* 802F30F0 002EED50 54 00 8B FE */ srwi r0, r0, 0xf
+/* 802F30F4 002EED54 1C 00 41 50 */ mulli r0, r0, 0x4150
+/* 802F30F8 002EED58 54 00 E8 FE */ srwi r0, r0, 3
+/* 802F30FC 002EED5C 7C 00 20 14 */ addc r0, r0, r4
+/* 802F3100 002EED60 90 1E 6D DC */ stw r0, 0x6ddc(r30)
+/* 802F3104 002EED64 7C 05 19 14 */ adde r0, r5, r3
+/* 802F3108 002EED68 7F E3 FB 78 */ mr r3, r31
+/* 802F310C 002EED6C 90 1E 6D D8 */ stw r0, 0x6dd8(r30)
+/* 802F3110 002EED70 4B F7 DE 21 */ bl OSTryWaitSemaphore
+/* 802F3114 002EED74 7F E3 FB 78 */ mr r3, r31
+/* 802F3118 002EED78 4B F7 DE 69 */ bl OSSignalSemaphore
+/* 802F311C 002EED7C 38 7E 6D B0 */ addi r3, r30, 0x6db0
+/* 802F3120 002EED80 38 80 00 00 */ li r4, 0
+/* 802F3124 002EED84 38 A0 00 00 */ li r5, 0
+/* 802F3128 002EED88 4B F7 BE 31 */ bl OSSendMessage
+/* 802F312C 002EED8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F3130 002EED90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3134 002EED94 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802F3138 002EED98 7C 08 03 A6 */ mtlr r0
+/* 802F313C 002EED9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3140 002EEDA0 4E 80 00 20 */ blr
+
+ParentPeriodicAlarmHandler:
+/* 802F3144 002EEDA4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3148 002EEDA8 38 80 00 00 */ li r4, 0
+/* 802F314C 002EEDAC 38 A0 00 00 */ li r5, 0
+/* 802F3150 002EEDB0 38 63 66 B4 */ addi r3, r3, 0x66b4
+/* 802F3154 002EEDB4 4B F7 BE 04 */ b OSSendMessage
diff --git a/asm/SDK/MP/mpport.s b/asm/SDK/MP/mpport.s
new file mode 100644
index 0000000..a47435e
--- /dev/null
+++ b/asm/SDK/MP/mpport.s
@@ -0,0 +1,399 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global MPiStartupPort
+MPiStartupPort:
+/* 802F3320 002EEF80 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802F3324 002EEF84 7C 08 02 A6 */ mflr r0
+/* 802F3328 002EEF88 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802F332C 002EEF8C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802F3330 002EEF90 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3334 002EEF94 38 7F 72 E0 */ addi r3, r31, 0x72e0
+/* 802F3338 002EEF98 4B F7 C5 D9 */ bl OSInitMutex
+/* 802F333C 002EEF9C 38 7F 58 D2 */ addi r3, r31, 0x58d2
+/* 802F3340 002EEFA0 38 80 00 00 */ li r4, 0
+/* 802F3344 002EEFA4 38 A0 00 10 */ li r5, 0x10
+/* 802F3348 002EEFA8 4B D1 0D BD */ bl memset
+/* 802F334C 002EEFAC 38 7F 57 D2 */ addi r3, r31, 0x57d2
+/* 802F3350 002EEFB0 38 80 00 00 */ li r4, 0
+/* 802F3354 002EEFB4 38 A0 01 00 */ li r5, 0x100
+/* 802F3358 002EEFB8 4B D1 0D AD */ bl memset
+/* 802F335C 002EEFBC 38 00 00 04 */ li r0, 4
+/* 802F3360 002EEFC0 38 80 00 00 */ li r4, 0
+/* 802F3364 002EEFC4 38 60 00 01 */ li r3, 1
+/* 802F3368 002EEFC8 7C 09 03 A6 */ mtctr r0
+lbl_802F336C:
+/* 802F336C 002EEFCC 7C BF 22 14 */ add r5, r31, r4
+/* 802F3370 002EEFD0 38 84 00 02 */ addi r4, r4, 2
+/* 802F3374 002EEFD4 B0 65 57 D2 */ sth r3, 0x57d2(r5)
+/* 802F3378 002EEFD8 B0 65 57 F2 */ sth r3, 0x57f2(r5)
+/* 802F337C 002EEFDC B0 65 58 12 */ sth r3, 0x5812(r5)
+/* 802F3380 002EEFE0 B0 65 58 32 */ sth r3, 0x5832(r5)
+/* 802F3384 002EEFE4 B0 65 58 52 */ sth r3, 0x5852(r5)
+/* 802F3388 002EEFE8 B0 65 58 72 */ sth r3, 0x5872(r5)
+/* 802F338C 002EEFEC B0 65 58 92 */ sth r3, 0x5892(r5)
+/* 802F3390 002EEFF0 B0 65 58 B2 */ sth r3, 0x58b2(r5)
+/* 802F3394 002EEFF4 7C BF 22 14 */ add r5, r31, r4
+/* 802F3398 002EEFF8 38 84 00 02 */ addi r4, r4, 2
+/* 802F339C 002EEFFC B0 65 57 D2 */ sth r3, 0x57d2(r5)
+/* 802F33A0 002EF000 B0 65 57 F2 */ sth r3, 0x57f2(r5)
+/* 802F33A4 002EF004 B0 65 58 12 */ sth r3, 0x5812(r5)
+/* 802F33A8 002EF008 B0 65 58 32 */ sth r3, 0x5832(r5)
+/* 802F33AC 002EF00C B0 65 58 52 */ sth r3, 0x5852(r5)
+/* 802F33B0 002EF010 B0 65 58 72 */ sth r3, 0x5872(r5)
+/* 802F33B4 002EF014 B0 65 58 92 */ sth r3, 0x5892(r5)
+/* 802F33B8 002EF018 B0 65 58 B2 */ sth r3, 0x58b2(r5)
+/* 802F33BC 002EF01C 7C BF 22 14 */ add r5, r31, r4
+/* 802F33C0 002EF020 38 84 00 02 */ addi r4, r4, 2
+/* 802F33C4 002EF024 B0 65 57 D2 */ sth r3, 0x57d2(r5)
+/* 802F33C8 002EF028 B0 65 57 F2 */ sth r3, 0x57f2(r5)
+/* 802F33CC 002EF02C B0 65 58 12 */ sth r3, 0x5812(r5)
+/* 802F33D0 002EF030 B0 65 58 32 */ sth r3, 0x5832(r5)
+/* 802F33D4 002EF034 B0 65 58 52 */ sth r3, 0x5852(r5)
+/* 802F33D8 002EF038 B0 65 58 72 */ sth r3, 0x5872(r5)
+/* 802F33DC 002EF03C B0 65 58 92 */ sth r3, 0x5892(r5)
+/* 802F33E0 002EF040 B0 65 58 B2 */ sth r3, 0x58b2(r5)
+/* 802F33E4 002EF044 7C BF 22 14 */ add r5, r31, r4
+/* 802F33E8 002EF048 38 84 00 02 */ addi r4, r4, 2
+/* 802F33EC 002EF04C B0 65 57 D2 */ sth r3, 0x57d2(r5)
+/* 802F33F0 002EF050 B0 65 57 F2 */ sth r3, 0x57f2(r5)
+/* 802F33F4 002EF054 B0 65 58 12 */ sth r3, 0x5812(r5)
+/* 802F33F8 002EF058 B0 65 58 32 */ sth r3, 0x5832(r5)
+/* 802F33FC 002EF05C B0 65 58 52 */ sth r3, 0x5852(r5)
+/* 802F3400 002EF060 B0 65 58 72 */ sth r3, 0x5872(r5)
+/* 802F3404 002EF064 B0 65 58 92 */ sth r3, 0x5892(r5)
+/* 802F3408 002EF068 B0 65 58 B2 */ sth r3, 0x58b2(r5)
+/* 802F340C 002EF06C 42 00 FF 60 */ bdnz lbl_802F336C
+/* 802F3410 002EF070 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802F3414 002EF074 38 60 00 00 */ li r3, 0
+/* 802F3418 002EF078 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802F341C 002EF07C 7C 08 03 A6 */ mtlr r0
+/* 802F3420 002EF080 38 21 00 10 */ addi r1, r1, 0x10
+/* 802F3424 002EF084 4E 80 00 20 */ blr
+
+.global MPiStartupPortLater
+MPiStartupPortLater:
+/* 802F3428 002EF088 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F342C 002EF08C 7C 08 02 A6 */ mflr r0
+/* 802F3430 002EF090 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F3434 002EF094 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F3438 002EF098 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F343C 002EF09C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F3440 002EF0A0 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3444 002EF0A4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802F3448 002EF0A8 3B DD 72 E0 */ addi r30, r29, 0x72e0
+/* 802F344C 002EF0AC 7F C3 F3 78 */ mr r3, r30
+/* 802F3450 002EF0B0 4B F7 C4 F9 */ bl OSLockMutex
+/* 802F3454 002EF0B4 3B 9D 72 F8 */ addi r28, r29, 0x72f8
+/* 802F3458 002EF0B8 38 80 00 00 */ li r4, 0
+/* 802F345C 002EF0BC 7F 83 E3 78 */ mr r3, r28
+/* 802F3460 002EF0C0 38 A0 00 40 */ li r5, 0x40
+/* 802F3464 002EF0C4 4B D1 0C A1 */ bl memset
+/* 802F3468 002EF0C8 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F346C 002EF0CC 41 82 00 58 */ beq lbl_802F34C4
+/* 802F3470 002EF0D0 38 60 00 00 */ li r3, 0
+/* 802F3474 002EF0D4 38 00 00 01 */ li r0, 1
+/* 802F3478 002EF0D8 90 7C 00 00 */ stw r3, 0(r28)
+/* 802F347C 002EF0DC 3B E0 00 00 */ li r31, 0
+/* 802F3480 002EF0E0 90 1C 00 04 */ stw r0, 4(r28)
+lbl_802F3484:
+/* 802F3484 002EF0E4 93 FC 00 08 */ stw r31, 8(r28)
+/* 802F3488 002EF0E8 81 9D 00 B4 */ lwz r12, 0xb4(r29)
+/* 802F348C 002EF0EC 2C 0C 00 00 */ cmpwi r12, 0
+/* 802F3490 002EF0F0 41 82 00 14 */ beq lbl_802F34A4
+/* 802F3494 002EF0F4 7F 84 E3 78 */ mr r4, r28
+/* 802F3498 002EF0F8 38 60 00 01 */ li r3, 1
+/* 802F349C 002EF0FC 7D 89 03 A6 */ mtctr r12
+/* 802F34A0 002EF100 4E 80 04 21 */ bctrl
+lbl_802F34A4:
+/* 802F34A4 002EF104 3B FF 00 01 */ addi r31, r31, 1
+/* 802F34A8 002EF108 3B BD 00 08 */ addi r29, r29, 8
+/* 802F34AC 002EF10C 28 1F 00 10 */ cmplwi r31, 0x10
+/* 802F34B0 002EF110 41 80 FF D4 */ blt lbl_802F3484
+/* 802F34B4 002EF114 7F C3 F3 78 */ mr r3, r30
+/* 802F34B8 002EF118 3B A0 00 00 */ li r29, 0
+/* 802F34BC 002EF11C 4B F7 C5 69 */ bl OSUnlockMutex
+/* 802F34C0 002EF120 48 00 00 08 */ b lbl_802F34C8
+lbl_802F34C4:
+/* 802F34C4 002EF124 3B A0 FF FF */ li r29, -1
+lbl_802F34C8:
+/* 802F34C8 002EF128 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F34CC 002EF12C 7F A3 EB 78 */ mr r3, r29
+/* 802F34D0 002EF130 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F34D4 002EF134 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F34D8 002EF138 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802F34DC 002EF13C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F34E0 002EF140 7C 08 03 A6 */ mtlr r0
+/* 802F34E4 002EF144 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F34E8 002EF148 4E 80 00 20 */ blr
+
+.global MPiCleanupPort
+MPiCleanupPort:
+/* 802F34EC 002EF14C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802F34F0 002EF150 7C 08 02 A6 */ mflr r0
+/* 802F34F4 002EF154 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802F34F8 002EF158 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802F34FC 002EF15C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802F3500 002EF160 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802F3504 002EF164 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3508 002EF168 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802F350C 002EF16C 2C 1D 00 00 */ cmpwi r29, 0
+/* 802F3510 002EF170 41 82 00 9C */ beq lbl_802F35AC
+/* 802F3514 002EF174 3B DD 72 E0 */ addi r30, r29, 0x72e0
+/* 802F3518 002EF178 7F C3 F3 78 */ mr r3, r30
+/* 802F351C 002EF17C 4B F7 C4 2D */ bl OSLockMutex
+/* 802F3520 002EF180 3B 9D 72 F8 */ addi r28, r29, 0x72f8
+/* 802F3524 002EF184 38 80 00 00 */ li r4, 0
+/* 802F3528 002EF188 7F 83 E3 78 */ mr r3, r28
+/* 802F352C 002EF18C 38 A0 00 40 */ li r5, 0x40
+/* 802F3530 002EF190 4B D1 0B D5 */ bl memset
+/* 802F3534 002EF194 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F3538 002EF198 41 82 00 50 */ beq lbl_802F3588
+/* 802F353C 002EF19C 38 60 00 00 */ li r3, 0
+/* 802F3540 002EF1A0 38 00 00 02 */ li r0, 2
+/* 802F3544 002EF1A4 90 7C 00 00 */ stw r3, 0(r28)
+/* 802F3548 002EF1A8 3B E0 00 00 */ li r31, 0
+/* 802F354C 002EF1AC 90 1C 00 04 */ stw r0, 4(r28)
+lbl_802F3550:
+/* 802F3550 002EF1B0 93 FC 00 08 */ stw r31, 8(r28)
+/* 802F3554 002EF1B4 81 9D 00 B4 */ lwz r12, 0xb4(r29)
+/* 802F3558 002EF1B8 2C 0C 00 00 */ cmpwi r12, 0
+/* 802F355C 002EF1BC 41 82 00 14 */ beq lbl_802F3570
+/* 802F3560 002EF1C0 7F 84 E3 78 */ mr r4, r28
+/* 802F3564 002EF1C4 38 60 00 02 */ li r3, 2
+/* 802F3568 002EF1C8 7D 89 03 A6 */ mtctr r12
+/* 802F356C 002EF1CC 4E 80 04 21 */ bctrl
+lbl_802F3570:
+/* 802F3570 002EF1D0 3B FF 00 01 */ addi r31, r31, 1
+/* 802F3574 002EF1D4 3B BD 00 08 */ addi r29, r29, 8
+/* 802F3578 002EF1D8 28 1F 00 10 */ cmplwi r31, 0x10
+/* 802F357C 002EF1DC 41 80 FF D4 */ blt lbl_802F3550
+/* 802F3580 002EF1E0 7F C3 F3 78 */ mr r3, r30
+/* 802F3584 002EF1E4 4B F7 C4 A1 */ bl OSUnlockMutex
+lbl_802F3588:
+/* 802F3588 002EF1E8 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F358C 002EF1EC 38 80 00 00 */ li r4, 0
+/* 802F3590 002EF1F0 38 A0 00 10 */ li r5, 0x10
+/* 802F3594 002EF1F4 38 7D 58 D2 */ addi r3, r29, 0x58d2
+/* 802F3598 002EF1F8 4B D1 0B 6D */ bl memset
+/* 802F359C 002EF1FC 38 7D 57 D2 */ addi r3, r29, 0x57d2
+/* 802F35A0 002EF200 38 80 00 00 */ li r4, 0
+/* 802F35A4 002EF204 38 A0 01 00 */ li r5, 0x100
+/* 802F35A8 002EF208 4B D1 0B 5D */ bl memset
+lbl_802F35AC:
+/* 802F35AC 002EF20C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802F35B0 002EF210 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802F35B4 002EF214 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802F35B8 002EF218 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802F35BC 002EF21C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802F35C0 002EF220 7C 08 03 A6 */ mtlr r0
+/* 802F35C4 002EF224 38 21 00 20 */ addi r1, r1, 0x20
+/* 802F35C8 002EF228 4E 80 00 20 */ blr
+
+.global MPiResetPortByAid
+MPiResetPortByAid:
+/* 802F35CC 002EF22C 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F35D0 002EF230 54 63 08 3C */ slwi r3, r3, 1
+/* 802F35D4 002EF234 38 00 00 01 */ li r0, 1
+/* 802F35D8 002EF238 38 84 57 D2 */ addi r4, r4, 0x57d2
+/* 802F35DC 002EF23C 7C 04 1B 2E */ sthx r0, r4, r3
+/* 802F35E0 002EF240 7C 64 1A 14 */ add r3, r4, r3
+/* 802F35E4 002EF244 B0 03 00 20 */ sth r0, 0x20(r3)
+/* 802F35E8 002EF248 B0 03 00 40 */ sth r0, 0x40(r3)
+/* 802F35EC 002EF24C B0 03 00 60 */ sth r0, 0x60(r3)
+/* 802F35F0 002EF250 B0 03 00 80 */ sth r0, 0x80(r3)
+/* 802F35F4 002EF254 B0 03 00 A0 */ sth r0, 0xa0(r3)
+/* 802F35F8 002EF258 B0 03 00 C0 */ sth r0, 0xc0(r3)
+/* 802F35FC 002EF25C B0 03 00 E0 */ sth r0, 0xe0(r3)
+/* 802F3600 002EF260 4E 80 00 20 */ blr
+
+.global MPiNotifyDataSentToPort
+MPiNotifyDataSentToPort:
+/* 802F3604 002EF264 80 A4 00 30 */ lwz r5, 0x30(r4)
+/* 802F3608 002EF268 2C 05 00 00 */ cmpwi r5, 0
+/* 802F360C 002EF26C 41 82 00 0C */ beq lbl_802F3618
+/* 802F3610 002EF270 80 04 00 2C */ lwz r0, 0x2c(r4)
+/* 802F3614 002EF274 90 05 00 00 */ stw r0, 0(r5)
+lbl_802F3618:
+/* 802F3618 002EF278 4B FF D4 D8 */ b MPiRespondToWaitingRequest
+
+.global MPiNotifyDataReceivedToPort
+MPiNotifyDataReceivedToPort:
+/* 802F361C 002EF27C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F3620 002EF280 7C 08 02 A6 */ mflr r0
+/* 802F3624 002EF284 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F3628 002EF288 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F362C 002EF28C 4B ED 3A F1 */ bl _savegpr_24
+/* 802F3630 002EF290 2C 06 00 00 */ cmpwi r6, 0
+/* 802F3634 002EF294 7C 78 1B 78 */ mr r24, r3
+/* 802F3638 002EF298 7C 99 23 78 */ mr r25, r4
+/* 802F363C 002EF29C 7C BA 2B 78 */ mr r26, r5
+/* 802F3640 002EF2A0 7C DB 33 78 */ mr r27, r6
+/* 802F3644 002EF2A4 7C FC 3B 78 */ mr r28, r7
+/* 802F3648 002EF2A8 41 82 00 9C */ beq lbl_802F36E4
+/* 802F364C 002EF2AC 28 03 00 10 */ cmplwi r3, 0x10
+/* 802F3650 002EF2B0 40 80 00 94 */ bge lbl_802F36E4
+/* 802F3654 002EF2B4 28 06 02 04 */ cmplwi r6, 0x204
+/* 802F3658 002EF2B8 40 80 00 8C */ bge lbl_802F36E4
+/* 802F365C 002EF2BC 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3660 002EF2C0 3B DD 72 E0 */ addi r30, r29, 0x72e0
+/* 802F3664 002EF2C4 7F C3 F3 78 */ mr r3, r30
+/* 802F3668 002EF2C8 4B F7 C2 E1 */ bl OSLockMutex
+/* 802F366C 002EF2CC 3B FD 72 F8 */ addi r31, r29, 0x72f8
+/* 802F3670 002EF2D0 38 80 00 00 */ li r4, 0
+/* 802F3674 002EF2D4 7F E3 FB 78 */ mr r3, r31
+/* 802F3678 002EF2D8 38 A0 00 40 */ li r5, 0x40
+/* 802F367C 002EF2DC 4B D1 0A 89 */ bl memset
+/* 802F3680 002EF2E0 2C 1F 00 00 */ cmpwi r31, 0
+/* 802F3684 002EF2E4 41 82 00 60 */ beq lbl_802F36E4
+/* 802F3688 002EF2E8 38 00 00 00 */ li r0, 0
+/* 802F368C 002EF2EC 28 18 00 10 */ cmplwi r24, 0x10
+/* 802F3690 002EF2F0 90 1F 00 00 */ stw r0, 0(r31)
+/* 802F3694 002EF2F4 93 3F 00 10 */ stw r25, 0x10(r31)
+/* 802F3698 002EF2F8 93 5F 00 14 */ stw r26, 0x14(r31)
+/* 802F369C 002EF2FC 93 7F 00 18 */ stw r27, 0x18(r31)
+/* 802F36A0 002EF300 93 9F 00 1C */ stw r28, 0x1c(r31)
+/* 802F36A4 002EF304 40 80 00 38 */ bge lbl_802F36DC
+/* 802F36A8 002EF308 90 1F 00 00 */ stw r0, 0(r31)
+/* 802F36AC 002EF30C 57 00 18 38 */ slwi r0, r24, 3
+/* 802F36B0 002EF310 38 80 00 03 */ li r4, 3
+/* 802F36B4 002EF314 93 1F 00 08 */ stw r24, 8(r31)
+/* 802F36B8 002EF318 7C 7D 02 14 */ add r3, r29, r0
+/* 802F36BC 002EF31C 90 9F 00 04 */ stw r4, 4(r31)
+/* 802F36C0 002EF320 81 83 00 B4 */ lwz r12, 0xb4(r3)
+/* 802F36C4 002EF324 2C 0C 00 00 */ cmpwi r12, 0
+/* 802F36C8 002EF328 41 82 00 14 */ beq lbl_802F36DC
+/* 802F36CC 002EF32C 7F E4 FB 78 */ mr r4, r31
+/* 802F36D0 002EF330 38 60 00 03 */ li r3, 3
+/* 802F36D4 002EF334 7D 89 03 A6 */ mtctr r12
+/* 802F36D8 002EF338 4E 80 04 21 */ bctrl
+lbl_802F36DC:
+/* 802F36DC 002EF33C 7F C3 F3 78 */ mr r3, r30
+/* 802F36E0 002EF340 4B F7 C3 45 */ bl OSUnlockMutex
+lbl_802F36E4:
+/* 802F36E4 002EF344 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F36E8 002EF348 4B ED 3A 81 */ bl _restgpr_24
+/* 802F36EC 002EF34C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F36F0 002EF350 7C 08 03 A6 */ mtlr r0
+/* 802F36F4 002EF354 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F36F8 002EF358 4E 80 00 20 */ blr
+
+.global MPiNotifyConnectedToPort
+MPiNotifyConnectedToPort:
+/* 802F36FC 002EF35C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F3700 002EF360 7C 08 02 A6 */ mflr r0
+/* 802F3704 002EF364 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F3708 002EF368 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F370C 002EF36C 4B ED 3A 11 */ bl _savegpr_24
+/* 802F3710 002EF370 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F3714 002EF374 7C 78 1B 78 */ mr r24, r3
+/* 802F3718 002EF378 7C 99 23 78 */ mr r25, r4
+/* 802F371C 002EF37C 7C BA 2B 78 */ mr r26, r5
+/* 802F3720 002EF380 3B DD 72 E0 */ addi r30, r29, 0x72e0
+/* 802F3724 002EF384 7C DB 33 78 */ mr r27, r6
+/* 802F3728 002EF388 7F C3 F3 78 */ mr r3, r30
+/* 802F372C 002EF38C 4B F7 C2 1D */ bl OSLockMutex
+/* 802F3730 002EF390 3B 9D 72 F8 */ addi r28, r29, 0x72f8
+/* 802F3734 002EF394 38 80 00 00 */ li r4, 0
+/* 802F3738 002EF398 7F 83 E3 78 */ mr r3, r28
+/* 802F373C 002EF39C 38 A0 00 40 */ li r5, 0x40
+/* 802F3740 002EF3A0 4B D1 09 C5 */ bl memset
+/* 802F3744 002EF3A4 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F3748 002EF3A8 41 82 00 7C */ beq lbl_802F37C4
+/* 802F374C 002EF3AC 3B E0 00 00 */ li r31, 0
+/* 802F3750 002EF3B0 7F 24 CB 78 */ mr r4, r25
+/* 802F3754 002EF3B4 93 FC 00 00 */ stw r31, 0(r28)
+/* 802F3758 002EF3B8 38 7C 00 18 */ addi r3, r28, 0x18
+/* 802F375C 002EF3BC 38 A0 00 06 */ li r5, 6
+/* 802F3760 002EF3C0 93 1C 00 10 */ stw r24, 0x10(r28)
+/* 802F3764 002EF3C4 93 7C 00 14 */ stw r27, 0x14(r28)
+/* 802F3768 002EF3C8 4B D1 08 99 */ bl memcpy
+/* 802F376C 002EF3CC 7F 44 D3 78 */ mr r4, r26
+/* 802F3770 002EF3D0 38 7C 00 1E */ addi r3, r28, 0x1e
+/* 802F3774 002EF3D4 38 A0 00 20 */ li r5, 0x20
+/* 802F3778 002EF3D8 4B D1 08 89 */ bl memcpy
+/* 802F377C 002EF3DC 93 FC 00 00 */ stw r31, 0(r28)
+/* 802F3780 002EF3E0 38 00 00 04 */ li r0, 4
+/* 802F3784 002EF3E4 3B E0 00 00 */ li r31, 0
+/* 802F3788 002EF3E8 90 1C 00 04 */ stw r0, 4(r28)
+lbl_802F378C:
+/* 802F378C 002EF3EC 93 FC 00 08 */ stw r31, 8(r28)
+/* 802F3790 002EF3F0 81 9D 00 B4 */ lwz r12, 0xb4(r29)
+/* 802F3794 002EF3F4 2C 0C 00 00 */ cmpwi r12, 0
+/* 802F3798 002EF3F8 41 82 00 14 */ beq lbl_802F37AC
+/* 802F379C 002EF3FC 7F 84 E3 78 */ mr r4, r28
+/* 802F37A0 002EF400 38 60 00 04 */ li r3, 4
+/* 802F37A4 002EF404 7D 89 03 A6 */ mtctr r12
+/* 802F37A8 002EF408 4E 80 04 21 */ bctrl
+lbl_802F37AC:
+/* 802F37AC 002EF40C 3B FF 00 01 */ addi r31, r31, 1
+/* 802F37B0 002EF410 3B BD 00 08 */ addi r29, r29, 8
+/* 802F37B4 002EF414 28 1F 00 10 */ cmplwi r31, 0x10
+/* 802F37B8 002EF418 41 80 FF D4 */ blt lbl_802F378C
+/* 802F37BC 002EF41C 7F C3 F3 78 */ mr r3, r30
+/* 802F37C0 002EF420 4B F7 C2 65 */ bl OSUnlockMutex
+lbl_802F37C4:
+/* 802F37C4 002EF424 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F37C8 002EF428 4B ED 39 A1 */ bl _restgpr_24
+/* 802F37CC 002EF42C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F37D0 002EF430 7C 08 03 A6 */ mtlr r0
+/* 802F37D4 002EF434 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F37D8 002EF438 4E 80 00 20 */ blr
+
+.global MPiNotifyDisconnectedToPort
+MPiNotifyDisconnectedToPort:
+/* 802F37DC 002EF43C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 802F37E0 002EF440 7C 08 02 A6 */ mflr r0
+/* 802F37E4 002EF444 90 01 00 34 */ stw r0, 0x34(r1)
+/* 802F37E8 002EF448 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F37EC 002EF44C 4B ED 39 35 */ bl _savegpr_25
+/* 802F37F0 002EF450 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
+/* 802F37F4 002EF454 7C 79 1B 78 */ mr r25, r3
+/* 802F37F8 002EF458 7C 9A 23 78 */ mr r26, r4
+/* 802F37FC 002EF45C 7C BB 2B 78 */ mr r27, r5
+/* 802F3800 002EF460 3B DD 72 E0 */ addi r30, r29, 0x72e0
+/* 802F3804 002EF464 7F C3 F3 78 */ mr r3, r30
+/* 802F3808 002EF468 4B F7 C1 41 */ bl OSLockMutex
+/* 802F380C 002EF46C 3B 9D 72 F8 */ addi r28, r29, 0x72f8
+/* 802F3810 002EF470 38 80 00 00 */ li r4, 0
+/* 802F3814 002EF474 7F 83 E3 78 */ mr r3, r28
+/* 802F3818 002EF478 38 A0 00 40 */ li r5, 0x40
+/* 802F381C 002EF47C 4B D1 08 E9 */ bl memset
+/* 802F3820 002EF480 2C 1C 00 00 */ cmpwi r28, 0
+/* 802F3824 002EF484 41 82 00 6C */ beq lbl_802F3890
+/* 802F3828 002EF488 3B E0 00 00 */ li r31, 0
+/* 802F382C 002EF48C 7F 64 DB 78 */ mr r4, r27
+/* 802F3830 002EF490 93 FC 00 00 */ stw r31, 0(r28)
+/* 802F3834 002EF494 38 7C 00 18 */ addi r3, r28, 0x18
+/* 802F3838 002EF498 38 A0 00 06 */ li r5, 6
+/* 802F383C 002EF49C 93 3C 00 10 */ stw r25, 0x10(r28)
+/* 802F3840 002EF4A0 93 5C 00 14 */ stw r26, 0x14(r28)
+/* 802F3844 002EF4A4 4B D1 07 BD */ bl memcpy
+/* 802F3848 002EF4A8 93 FC 00 00 */ stw r31, 0(r28)
+/* 802F384C 002EF4AC 38 00 00 05 */ li r0, 5
+/* 802F3850 002EF4B0 3B E0 00 00 */ li r31, 0
+/* 802F3854 002EF4B4 90 1C 00 04 */ stw r0, 4(r28)
+lbl_802F3858:
+/* 802F3858 002EF4B8 93 FC 00 08 */ stw r31, 8(r28)
+/* 802F385C 002EF4BC 81 9D 00 B4 */ lwz r12, 0xb4(r29)
+/* 802F3860 002EF4C0 2C 0C 00 00 */ cmpwi r12, 0
+/* 802F3864 002EF4C4 41 82 00 14 */ beq lbl_802F3878
+/* 802F3868 002EF4C8 7F 84 E3 78 */ mr r4, r28
+/* 802F386C 002EF4CC 38 60 00 05 */ li r3, 5
+/* 802F3870 002EF4D0 7D 89 03 A6 */ mtctr r12
+/* 802F3874 002EF4D4 4E 80 04 21 */ bctrl
+lbl_802F3878:
+/* 802F3878 002EF4D8 3B FF 00 01 */ addi r31, r31, 1
+/* 802F387C 002EF4DC 3B BD 00 08 */ addi r29, r29, 8
+/* 802F3880 002EF4E0 28 1F 00 10 */ cmplwi r31, 0x10
+/* 802F3884 002EF4E4 41 80 FF D4 */ blt lbl_802F3858
+/* 802F3888 002EF4E8 7F C3 F3 78 */ mr r3, r30
+/* 802F388C 002EF4EC 4B F7 C1 99 */ bl OSUnlockMutex
+lbl_802F3890:
+/* 802F3890 002EF4F0 39 61 00 30 */ addi r11, r1, 0x30
+/* 802F3894 002EF4F4 4B ED 38 D9 */ bl _restgpr_25
+/* 802F3898 002EF4F8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802F389C 002EF4FC 7C 08 03 A6 */ mtlr r0
+/* 802F38A0 002EF500 38 21 00 30 */ addi r1, r1, 0x30
+/* 802F38A4 002EF504 4E 80 00 20 */ blr
diff --git a/asm/SDK/MP/mpsystem.s b/asm/SDK/MP/mpsystem.s
index b8e03c8..9bb48c5 100644
--- a/asm/SDK/MP/mpsystem.s
+++ b/asm/SDK/MP/mpsystem.s
@@ -57,7 +57,7 @@ lbl_802F0620:
/* 802F0638 002EC298 2C 03 00 00 */ cmpwi r3, 0
/* 802F063C 002EC29C 7C 7E 1B 78 */ mr r30, r3
/* 802F0640 002EC2A0 41 80 00 7C */ blt lbl_802F06BC
-/* 802F0644 002EC2A4 48 00 17 75 */ bl func_802F1DB8
+/* 802F0644 002EC2A4 48 00 17 75 */ bl MPiStartupConnection
/* 802F0648 002EC2A8 2C 03 00 00 */ cmpwi r3, 0
/* 802F064C 002EC2AC 7C 7E 1B 78 */ mr r30, r3
/* 802F0650 002EC2B0 41 80 00 6C */ blt lbl_802F06BC
@@ -69,20 +69,20 @@ lbl_802F0620:
/* 802F0668 002EC2C8 80 03 00 0C */ lwz r0, 0xc(r3)
/* 802F066C 002EC2CC 28 00 00 01 */ cmplwi r0, 1
/* 802F0670 002EC2D0 40 82 00 14 */ bne lbl_802F0684
-/* 802F0674 002EC2D4 48 00 1D 91 */ bl func_802F2404
+/* 802F0674 002EC2D4 48 00 1D 91 */ bl MPiStartupParent
/* 802F0678 002EC2D8 2C 03 00 00 */ cmpwi r3, 0
/* 802F067C 002EC2DC 7C 7E 1B 78 */ mr r30, r3
/* 802F0680 002EC2E0 41 80 00 3C */ blt lbl_802F06BC
lbl_802F0684:
-/* 802F0684 002EC2E4 48 00 2A D5 */ bl func_802F3158
+/* 802F0684 002EC2E4 48 00 2A D5 */ bl MPiStartupNotification
/* 802F0688 002EC2E8 2C 03 00 00 */ cmpwi r3, 0
/* 802F068C 002EC2EC 7C 7E 1B 78 */ mr r30, r3
/* 802F0690 002EC2F0 41 80 00 2C */ blt lbl_802F06BC
-/* 802F0694 002EC2F4 48 00 34 1D */ bl func_802F3AB0
+/* 802F0694 002EC2F4 48 00 34 1D */ bl MPiStartupBeacon
/* 802F0698 002EC2F8 2C 03 00 00 */ cmpwi r3, 0
/* 802F069C 002EC2FC 7C 7E 1B 78 */ mr r30, r3
/* 802F06A0 002EC300 41 80 00 1C */ blt lbl_802F06BC
-/* 802F06A4 002EC304 48 00 2C 7D */ bl func_802F3320
+/* 802F06A4 002EC304 48 00 2C 7D */ bl MPiStartupPort
/* 802F06A8 002EC308 2C 03 00 00 */ cmpwi r3, 0
/* 802F06AC 002EC30C 7C 7E 1B 78 */ mr r30, r3
/* 802F06B0 002EC310 41 80 00 0C */ blt lbl_802F06BC
@@ -101,7 +101,7 @@ lbl_802F06D8:
/* 802F06DC 002EC33C 2C 03 00 00 */ cmpwi r3, 0
/* 802F06E0 002EC340 7C 7E 1B 78 */ mr r30, r3
/* 802F06E4 002EC344 41 80 00 4C */ blt lbl_802F0730
-/* 802F06E8 002EC348 48 00 2D 41 */ bl func_802F3428
+/* 802F06E8 002EC348 48 00 2D 41 */ bl MPiStartupPortLater
/* 802F06EC 002EC34C 2C 03 00 00 */ cmpwi r3, 0
/* 802F06F0 002EC350 7C 7E 1B 78 */ mr r30, r3
/* 802F06F4 002EC354 41 80 00 3C */ blt lbl_802F0730
@@ -113,12 +113,12 @@ lbl_802F06D8:
/* 802F070C 002EC36C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 802F0710 002EC370 28 00 00 01 */ cmplwi r0, 1
/* 802F0714 002EC374 40 82 00 14 */ bne lbl_802F0728
-/* 802F0718 002EC378 48 00 1E 35 */ bl func_802F254C
+/* 802F0718 002EC378 48 00 1E 35 */ bl MPiStartupParentLater
/* 802F071C 002EC37C 2C 03 00 00 */ cmpwi r3, 0
/* 802F0720 002EC380 7C 7E 1B 78 */ mr r30, r3
/* 802F0724 002EC384 41 80 00 0C */ blt lbl_802F0730
lbl_802F0728:
-/* 802F0728 002EC388 48 00 2A 7D */ bl func_802F31A4
+/* 802F0728 002EC388 48 00 2A 7D */ bl MPiStartupNotificationLater
/* 802F072C 002EC38C 7C 7E 1B 78 */ mr r30, r3
lbl_802F0730:
/* 802F0730 002EC390 2C 1E 00 00 */ cmpwi r30, 0
@@ -152,26 +152,26 @@ MPCleanup:
/* 802F078C 002EC3EC 4B FF D0 C9 */ bl NCDUnlockWirelessDriver
/* 802F0790 002EC3F0 2C 03 00 00 */ cmpwi r3, 0
lbl_802F0794:
-/* 802F0794 002EC3F4 48 00 2A 79 */ bl func_802F320C
-/* 802F0798 002EC3F8 48 00 1F C9 */ bl func_802F2760
+/* 802F0794 002EC3F4 48 00 2A 79 */ bl MPiCleanupNotificationEarlier
+/* 802F0798 002EC3F8 48 00 1F C9 */ bl MPiCleanupParentEarlier
/* 802F079C 002EC3FC 48 00 0D D1 */ bl MPiCleanupTxRxEarlier
/* 802F07A0 002EC400 4B F7 DF BD */ bl OSDisableInterrupts
/* 802F07A4 002EC404 3B E0 00 00 */ li r31, 0
/* 802F07A8 002EC408 7C 7E 1B 78 */ mr r30, r3
/* 802F07AC 002EC40C 93 ED AF 38 */ stw r31, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F07B0 002EC410 48 00 2D 3D */ bl func_802F34EC
-/* 802F07B4 002EC414 48 00 33 79 */ bl func_802F3B2C
-/* 802F07B8 002EC418 48 00 2A AD */ bl func_802F3264
+/* 802F07B0 002EC410 48 00 2D 3D */ bl MPiCleanupPort
+/* 802F07B4 002EC414 48 00 33 79 */ bl MPiCleanupBeacon
+/* 802F07B8 002EC418 48 00 2A AD */ bl MPiCleanupNotification
/* 802F07BC 002EC41C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
/* 802F07C0 002EC420 7C 03 F8 40 */ cmplw r3, r31
/* 802F07C4 002EC424 41 82 00 14 */ beq lbl_802F07D8
/* 802F07C8 002EC428 80 03 00 0C */ lwz r0, 0xc(r3)
/* 802F07CC 002EC42C 28 00 00 01 */ cmplwi r0, 1
/* 802F07D0 002EC430 40 82 00 08 */ bne lbl_802F07D8
-/* 802F07D4 002EC434 48 00 20 35 */ bl func_802F2808
+/* 802F07D4 002EC434 48 00 20 35 */ bl MPiCleanupParent
lbl_802F07D8:
/* 802F07D8 002EC438 48 00 0E 51 */ bl MPiCleanupTxRx
-/* 802F07DC 002EC43C 48 00 16 C9 */ bl func_802F1EA4
+/* 802F07DC 002EC43C 48 00 16 C9 */ bl MPiCleanupConnection
/* 802F07E0 002EC440 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
/* 802F07E4 002EC444 38 00 00 00 */ li r0, 0
/* 802F07E8 002EC448 7C 03 00 40 */ cmplw r3, r0
diff --git a/asm/SDK/MP/mptxrx.s b/asm/SDK/MP/mptxrx.s
index 0e8395e..53fb888 100644
--- a/asm/SDK/MP/mptxrx.s
+++ b/asm/SDK/MP/mptxrx.s
@@ -47,7 +47,7 @@ lbl_802F13E4:
lbl_802F1438:
/* 802F1438 002ED098 90 09 00 34 */ stw r0, 0x34(r9)
lbl_802F143C:
-/* 802F143C 002ED09C 48 00 09 5D */ bl func_802F1D98
+/* 802F143C 002ED09C 48 00 09 5D */ bl MPGetConnectedAIDs
/* 802F1440 002ED0A0 80 1E 00 2C */ lwz r0, 0x2c(r30)
/* 802F1444 002ED0A4 7F C4 F3 78 */ mr r4, r30
/* 802F1448 002ED0A8 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
@@ -150,7 +150,7 @@ MPiCleanupTxRxEarlier:
lbl_802F1594:
/* 802F1594 002ED1F4 80 81 00 08 */ lwz r4, 8(r1)
/* 802F1598 002ED1F8 38 60 FF 00 */ li r3, -256
-/* 802F159C 002ED1FC 48 00 20 69 */ bl func_802F3604
+/* 802F159C 002ED1FC 48 00 20 69 */ bl MPiNotifyDataSentToPort
lbl_802F15A0:
/* 802F15A0 002ED200 7F E3 FB 78 */ mr r3, r31
/* 802F15A4 002ED204 38 81 00 08 */ addi r4, r1, 8
@@ -163,7 +163,7 @@ lbl_802F15A0:
lbl_802F15C0:
/* 802F15C0 002ED220 80 81 00 08 */ lwz r4, 8(r1)
/* 802F15C4 002ED224 38 60 FF 00 */ li r3, -256
-/* 802F15C8 002ED228 48 00 20 3D */ bl func_802F3604
+/* 802F15C8 002ED228 48 00 20 3D */ bl MPiNotifyDataSentToPort
lbl_802F15CC:
/* 802F15CC 002ED22C 7F E3 FB 78 */ mr r3, r31
/* 802F15D0 002ED230 38 81 00 08 */ addi r4, r1, 8
@@ -176,7 +176,7 @@ lbl_802F15CC:
lbl_802F15EC:
/* 802F15EC 002ED24C 80 81 00 08 */ lwz r4, 8(r1)
/* 802F15F0 002ED250 38 60 FF 00 */ li r3, -256
-/* 802F15F4 002ED254 48 00 20 11 */ bl func_802F3604
+/* 802F15F4 002ED254 48 00 20 11 */ bl MPiNotifyDataSentToPort
lbl_802F15F8:
/* 802F15F8 002ED258 7F E3 FB 78 */ mr r3, r31
/* 802F15FC 002ED25C 38 81 00 08 */ addi r4, r1, 8
@@ -326,7 +326,7 @@ lbl_802F17E8:
/* 802F17F4 002ED454 B0 08 57 D2 */ sth r0, 0x57d2(r8)
lbl_802F17F8:
/* 802F17F8 002ED458 7F 04 C3 78 */ mr r4, r24
-/* 802F17FC 002ED45C 48 00 1E 21 */ bl func_802F361C
+/* 802F17FC 002ED45C 48 00 1E 21 */ bl MPiNotifyDataReceivedToPort
lbl_802F1800:
/* 802F1800 002ED460 2C 1D 00 00 */ cmpwi r29, 0
/* 802F1804 002ED464 41 81 FE E0 */ bgt lbl_802F16E4
@@ -348,7 +348,7 @@ MPiProcessDataSentNotification:
/* 802F1834 002ED494 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802F1838 002ED498 93 81 00 10 */ stw r28, 0x10(r1)
/* 802F183C 002ED49C 7C 7C 1B 78 */ mr r28, r3
-/* 802F1840 002ED4A0 48 00 05 59 */ bl func_802F1D98
+/* 802F1840 002ED4A0 48 00 05 59 */ bl MPGetConnectedAIDs
/* 802F1844 002ED4A4 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
/* 802F1848 002ED4A8 7C 7F E0 78 */ andc r31, r3, r28
/* 802F184C 002ED4AC 3B C4 6E 88 */ addi r30, r4, 0x6e88
@@ -365,7 +365,7 @@ lbl_802F1858:
/* 802F1874 002ED4D4 41 82 00 44 */ beq lbl_802F18B8
/* 802F1878 002ED4D8 2C 04 00 00 */ cmpwi r4, 0
/* 802F187C 002ED4DC 41 82 00 3C */ beq lbl_802F18B8
-/* 802F1880 002ED4E0 48 00 05 19 */ bl func_802F1D98
+/* 802F1880 002ED4E0 48 00 05 19 */ bl MPGetConnectedAIDs
/* 802F1884 002ED4E4 80 1C 00 2C */ lwz r0, 0x2c(r28)
/* 802F1888 002ED4E8 7C 00 18 39 */ and. r0, r0, r3
/* 802F188C 002ED4EC 90 1C 00 2C */ stw r0, 0x2c(r28)
@@ -378,12 +378,12 @@ lbl_802F1858:
lbl_802F18A8:
/* 802F18A8 002ED508 7F 84 E3 78 */ mr r4, r28
/* 802F18AC 002ED50C 38 60 00 00 */ li r3, 0
-/* 802F18B0 002ED510 48 00 1D 55 */ bl func_802F3604
+/* 802F18B0 002ED510 48 00 1D 55 */ bl MPiNotifyDataSentToPort
/* 802F18B4 002ED514 48 00 00 10 */ b lbl_802F18C4
lbl_802F18B8:
/* 802F18B8 002ED518 7F 84 E3 78 */ mr r4, r28
/* 802F18BC 002ED51C 38 60 00 00 */ li r3, 0
-/* 802F18C0 002ED520 48 00 1D 45 */ bl func_802F3604
+/* 802F18C0 002ED520 48 00 1D 45 */ bl MPiNotifyDataSentToPort
lbl_802F18C4:
/* 802F18C4 002ED524 7F A3 EB 78 */ mr r3, r29
/* 802F18C8 002ED528 38 81 00 08 */ addi r4, r1, 8
@@ -433,7 +433,7 @@ lbl_802F1950:
/* 802F1968 002ED5C8 40 82 00 18 */ bne lbl_802F1980
/* 802F196C 002ED5CC 7F C4 F3 78 */ mr r4, r30
/* 802F1970 002ED5D0 38 60 00 00 */ li r3, 0
-/* 802F1974 002ED5D4 48 00 1C 91 */ bl func_802F3604
+/* 802F1974 002ED5D4 48 00 1C 91 */ bl MPiNotifyDataSentToPort
/* 802F1978 002ED5D8 3B A0 00 00 */ li r29, 0
/* 802F197C 002ED5DC 48 00 00 88 */ b lbl_802F1A04
lbl_802F1980:
@@ -458,7 +458,7 @@ lbl_802F1980:
/* 802F19C8 002ED628 48 00 00 3C */ b lbl_802F1A04
lbl_802F19CC:
/* 802F19CC 002ED62C 3B A0 00 00 */ li r29, 0
-/* 802F19D0 002ED630 48 00 03 C9 */ bl func_802F1D98
+/* 802F19D0 002ED630 48 00 03 C9 */ bl MPGetConnectedAIDs
/* 802F19D4 002ED634 80 1E 00 2C */ lwz r0, 0x2c(r30)
/* 802F19D8 002ED638 7C 00 18 39 */ and. r0, r0, r3
/* 802F19DC 002ED63C 90 1E 00 2C */ stw r0, 0x2c(r30)
@@ -471,7 +471,7 @@ lbl_802F19CC:
lbl_802F19F8:
/* 802F19F8 002ED658 7F C4 F3 78 */ mr r4, r30
/* 802F19FC 002ED65C 38 60 00 00 */ li r3, 0
-/* 802F1A00 002ED660 48 00 1C 05 */ bl func_802F3604
+/* 802F1A00 002ED660 48 00 1C 05 */ bl MPiNotifyDataSentToPort
lbl_802F1A04:
/* 802F1A04 002ED664 2C 1D 00 00 */ cmpwi r29, 0
/* 802F1A08 002ED668 40 82 00 20 */ bne lbl_802F1A28
@@ -557,7 +557,7 @@ MPiClearSendQueue:
/* 802F1B20 002ED780 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802F1B24 002ED784 93 81 00 10 */ stw r28, 0x10(r1)
/* 802F1B28 002ED788 7C 7C 1B 78 */ mr r28, r3
-/* 802F1B2C 002ED78C 48 00 02 6D */ bl func_802F1D98
+/* 802F1B2C 002ED78C 48 00 02 6D */ bl MPGetConnectedAIDs
/* 802F1B30 002ED790 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
/* 802F1B34 002ED794 7C 7F 1B 78 */ mr r31, r3
/* 802F1B38 002ED798 3B C4 6E 88 */ addi r30, r4, 0x6e88
@@ -570,7 +570,7 @@ lbl_802F1B44:
/* 802F1B50 002ED7B0 7C 00 F8 38 */ and r0, r0, r31
/* 802F1B54 002ED7B4 90 04 00 2C */ stw r0, 0x2c(r4)
/* 802F1B58 002ED7B8 80 81 00 08 */ lwz r4, 8(r1)
-/* 802F1B5C 002ED7BC 48 00 1A A9 */ bl func_802F3604
+/* 802F1B5C 002ED7BC 48 00 1A A9 */ bl MPiNotifyDataSentToPort
/* 802F1B60 002ED7C0 37 9C FF FF */ addic. r28, r28, -1
/* 802F1B64 002ED7C4 40 81 00 34 */ ble lbl_802F1B98
lbl_802F1B68:
diff --git a/asm/SDK/MP/mpwd.s b/asm/SDK/MP/mpwd.s
index 77a4a9c..565f823 100644
--- a/asm/SDK/MP/mpwd.s
+++ b/asm/SDK/MP/mpwd.s
@@ -134,7 +134,7 @@ MPiCleanupWD:
/* 802F0DFC 002ECA5C 48 00 05 0D */ bl MPSetEntryFlag
/* 802F0E00 002ECA60 2C 03 00 00 */ cmpwi r3, 0
/* 802F0E04 002ECA64 40 82 00 08 */ bne lbl_802F0E0C
-/* 802F0E08 002ECA68 48 00 2F 39 */ bl func_802F3D40
+/* 802F0E08 002ECA68 48 00 2F 39 */ bl MPiMakeAndChangeBeacon
lbl_802F0E0C:
/* 802F0E0C 002ECA6C 83 42 AA 30 */ lwz r26, lbl_80643030-_SDA2_BASE_(r2)
/* 802F0E10 002ECA70 3B 60 00 00 */ li r27, 0
@@ -167,7 +167,7 @@ lbl_802F0E6C:
/* 802F0E70 002ECAD0 40 81 00 08 */ ble lbl_802F0E78
/* 802F0E74 002ECAD4 3B 40 0F A0 */ li r26, 0xfa0
lbl_802F0E78:
-/* 802F0E78 002ECAD8 48 00 0D A5 */ bl func_802F1C1C
+/* 802F0E78 002ECAD8 48 00 0D A5 */ bl MPDisconnectAll
/* 802F0E7C 002ECADC 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 802F0E80 002ECAE0 3C 60 10 62 */ lis r3, 0x10624DD3@ha
/* 802F0E84 002ECAE4 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
@@ -273,7 +273,7 @@ MPiChangeBeacon:
/* 802F0FDC 002ECC3C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F0FE0 002ECC40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F0FE4 002ECC44 7C 7F 1B 78 */ mr r31, r3
-/* 802F0FE8 002ECC48 48 00 2F 31 */ bl func_802F3F18
+/* 802F0FE8 002ECC48 48 00 2F 31 */ bl MPiGetVTsf
/* 802F0FEC 002ECC4C 7F E4 FB 78 */ mr r4, r31
/* 802F0FF0 002ECC50 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 802F0FF4 002ECC54 4B FF CF D1 */ bl WD_ChangeBeacon
@@ -290,7 +290,7 @@ MPiChangeVTSF:
/* 802F1014 002ECC74 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F1018 002ECC78 7C 08 02 A6 */ mflr r0
/* 802F101C 002ECC7C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F1020 002ECC80 48 00 2E F9 */ bl func_802F3F18
+/* 802F1020 002ECC80 48 00 2E F9 */ bl MPiGetVTsf
/* 802F1024 002ECC84 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 802F1028 002ECC88 4B FF D0 3D */ bl WD_ChangeVTSF
/* 802F102C 002ECC8C 7C 60 FE 70 */ srawi r0, r3, 0x1f
@@ -374,7 +374,7 @@ lbl_802F1134:
/* 802F1138 002ECD98 40 80 00 08 */ bge lbl_802F1140
/* 802F113C 002ECD9C 48 00 00 E0 */ b lbl_802F121C
lbl_802F1140:
-/* 802F1140 002ECDA0 48 00 2C 01 */ bl func_802F3D40
+/* 802F1140 002ECDA0 48 00 2C 01 */ bl MPiMakeAndChangeBeacon
/* 802F1144 002ECDA4 2C 03 00 00 */ cmpwi r3, 0
/* 802F1148 002ECDA8 40 80 00 08 */ bge lbl_802F1150
/* 802F114C 002ECDAC 48 00 00 D0 */ b lbl_802F121C
diff --git a/asm/text_7.s b/asm/text_7.s
index 63b272f..de53368 100644
--- a/asm/text_7.s
+++ b/asm/text_7.s
@@ -65622,7 +65622,7 @@ lbl_8025B888:
/* 8025B888 002574E8 3C 60 80 26 */ lis r3, lbl_8025B7FC@ha
/* 8025B88C 002574EC 7F E4 FB 78 */ mr r4, r31
/* 8025B890 002574F0 38 63 B7 FC */ addi r3, r3, lbl_8025B7FC@l
-/* 8025B894 002574F4 48 09 81 35 */ bl func_802F39C8
+/* 8025B894 002574F4 48 09 81 35 */ bl MPUpdateBeaconAsync
lbl_8025B898:
/* 8025B898 002574F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8025B89C 002574FC 83 E1 00 1C */ lwz r31, 0x1c(r1)
@@ -65681,7 +65681,7 @@ func_8025B904:
/* 8025B928 00257588 90 05 00 30 */ stw r0, 0x30(r5)
/* 8025B92C 0025758C 41 82 00 0C */ beq lbl_8025B938
/* 8025B930 00257590 48 09 59 D9 */ bl MPSetEntryFlag
-/* 8025B934 00257594 48 09 7F 75 */ bl func_802F38A8
+/* 8025B934 00257594 48 09 7F 75 */ bl MPUpdateBeacon
lbl_8025B938:
/* 8025B938 00257598 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8025B93C 0025759C 7C 08 03 A6 */ mtlr r0
@@ -65754,7 +65754,7 @@ func_8025B9F8:
.global func_8025B9FC
func_8025B9FC:
-/* 8025B9FC 0025765C 48 09 61 BC */ b func_802F1BB8
+/* 8025B9FC 0025765C 48 09 61 BC */ b MPDisconnect
lbl_8025BA00:
/* 8025BA00 00257660 3C 80 80 50 */ lis r4, lbl_804FE520@ha
/* 8025BA04 00257664 38 A0 01 00 */ li r5, 0x100
@@ -73833,7 +73833,7 @@ func_802625D0:
/* 802625D4 0025E234 90 83 0F AC */ stw r4, 0xfac(r3)
/* 802625D8 0025E238 90 03 0F B4 */ stw r0, 0xfb4(r3)
/* 802625DC 0025E23C 4E 80 00 20 */ blr
-/* 802625E0 0025E240 48 08 F6 F4 */ b func_802F1CD4
+/* 802625E0 0025E240 48 08 F6 F4 */ b MPGetLinkLevel
/* 802625E4 0025E244 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802625E8 0025E248 7C 08 02 A6 */ mflr r0
/* 802625EC 0025E24C 90 01 00 14 */ stw r0, 0x14(r1)
@@ -74512,7 +74512,7 @@ lbl_80262F3C:
/* 80262F44 0025EBA4 7C 08 03 A6 */ mtlr r0
/* 80262F48 0025EBA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80262F4C 0025EBAC 4E 80 00 20 */ blr
-/* 80262F50 0025EBB0 48 08 ED 84 */ b func_802F1CD4
+/* 80262F50 0025EBB0 48 08 ED 84 */ b MPGetLinkLevel
/* 80262F54 0025EBB4 80 63 0F 0C */ lwz r3, 0xf0c(r3)
/* 80262F58 0025EBB8 4E 80 00 20 */ blr
/* 80262F5C 0025EBBC 80 63 0F 00 */ lwz r3, 0xf00(r3)
diff --git a/asm/text_9.s b/asm/text_9.s
index 3b75b4b..2e0db25 100644
--- a/asm/text_9.s
+++ b/asm/text_9.s
@@ -2,2624 +2,6 @@
.section .text, "ax" # 0x80006980 - 0x803E1E60
-.global func_802F1BB8
-func_802F1BB8:
-/* 802F1BB8 002ED818 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F1BBC 002ED81C 2C 80 00 00 */ cmpwi cr1, r0, 0
-/* 802F1BC0 002ED820 40 86 00 0C */ bne cr1, lbl_802F1BCC
-/* 802F1BC4 002ED824 38 60 FF 14 */ li r3, -236
-/* 802F1BC8 002ED828 4E 80 00 20 */ blr
-lbl_802F1BCC:
-/* 802F1BCC 002ED82C 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
-/* 802F1BD0 002ED830 2C 00 00 00 */ cmpwi r0, 0
-/* 802F1BD4 002ED834 41 82 00 0C */ beq lbl_802F1BE0
-/* 802F1BD8 002ED838 38 60 FF FF */ li r3, -1
-/* 802F1BDC 002ED83C 4E 80 00 20 */ blr
-lbl_802F1BE0:
-/* 802F1BE0 002ED840 41 86 00 10 */ beq cr1, lbl_802F1BF0
-/* 802F1BE4 002ED844 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1BE8 002ED848 80 84 57 64 */ lwz r4, 0x5764(r4)
-/* 802F1BEC 002ED84C 48 00 00 08 */ b lbl_802F1BF4
-lbl_802F1BF0:
-/* 802F1BF0 002ED850 38 80 00 00 */ li r4, 0
-lbl_802F1BF4:
-/* 802F1BF4 002ED854 38 00 00 01 */ li r0, 1
-/* 802F1BF8 002ED858 7C 00 18 30 */ slw r0, r0, r3
-/* 802F1BFC 002ED85C 7C 80 00 39 */ and. r0, r4, r0
-/* 802F1C00 002ED860 40 82 00 0C */ bne lbl_802F1C0C
-/* 802F1C04 002ED864 38 60 FF 01 */ li r3, -255
-/* 802F1C08 002ED868 4E 80 00 20 */ blr
-lbl_802F1C0C:
-/* 802F1C0C 002ED86C 38 80 00 00 */ li r4, 0
-/* 802F1C10 002ED870 38 A0 00 00 */ li r5, 0
-/* 802F1C14 002ED874 48 00 03 1C */ b func_802F1F30
-/* 802F1C18 002ED878 4E 80 00 20 */ blr
-
-.global func_802F1C1C
-func_802F1C1C:
-/* 802F1C1C 002ED87C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F1C20 002ED880 7C 08 02 A6 */ mflr r0
-/* 802F1C24 002ED884 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F1C28 002ED888 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F1C2C 002ED88C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F1C30 002ED890 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F1C34 002ED894 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F1C38 002ED898 2C 00 00 00 */ cmpwi r0, 0
-/* 802F1C3C 002ED89C 40 82 00 0C */ bne lbl_802F1C48
-/* 802F1C40 002ED8A0 38 60 FF 14 */ li r3, -236
-/* 802F1C44 002ED8A4 48 00 00 74 */ b lbl_802F1CB8
-lbl_802F1C48:
-/* 802F1C48 002ED8A8 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
-/* 802F1C4C 002ED8AC 2C 00 00 00 */ cmpwi r0, 0
-/* 802F1C50 002ED8B0 41 82 00 0C */ beq lbl_802F1C5C
-/* 802F1C54 002ED8B4 38 60 FF FF */ li r3, -1
-/* 802F1C58 002ED8B8 48 00 00 60 */ b lbl_802F1CB8
-lbl_802F1C5C:
-/* 802F1C5C 002ED8BC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1C60 002ED8C0 3B C0 00 00 */ li r30, 0
-/* 802F1C64 002ED8C4 83 A3 57 60 */ lwz r29, 0x5760(r3)
-/* 802F1C68 002ED8C8 3B E3 57 72 */ addi r31, r3, 0x5772
-lbl_802F1C6C:
-/* 802F1C6C 002ED8CC 7C 1E E8 40 */ cmplw r30, r29
-/* 802F1C70 002ED8D0 41 82 00 34 */ beq lbl_802F1CA4
-/* 802F1C74 002ED8D4 7F E3 FB 78 */ mr r3, r31
-/* 802F1C78 002ED8D8 38 82 AA 38 */ addi r4, r2, lbl_80643038-_SDA2_BASE_
-/* 802F1C7C 002ED8DC 4B FF EE 99 */ bl MPiIsEqualMacAddress
-/* 802F1C80 002ED8E0 2C 03 00 00 */ cmpwi r3, 0
-/* 802F1C84 002ED8E4 40 82 00 20 */ bne lbl_802F1CA4
-/* 802F1C88 002ED8E8 7F C3 F3 78 */ mr r3, r30
-/* 802F1C8C 002ED8EC 38 80 00 00 */ li r4, 0
-/* 802F1C90 002ED8F0 38 A0 00 00 */ li r5, 0
-/* 802F1C94 002ED8F4 48 00 02 9D */ bl func_802F1F30
-/* 802F1C98 002ED8F8 2C 03 00 00 */ cmpwi r3, 0
-/* 802F1C9C 002ED8FC 40 80 00 08 */ bge lbl_802F1CA4
-/* 802F1CA0 002ED900 48 00 00 18 */ b lbl_802F1CB8
-lbl_802F1CA4:
-/* 802F1CA4 002ED904 3B DE 00 01 */ addi r30, r30, 1
-/* 802F1CA8 002ED908 3B FF 00 06 */ addi r31, r31, 6
-/* 802F1CAC 002ED90C 28 1E 00 10 */ cmplwi r30, 0x10
-/* 802F1CB0 002ED910 41 80 FF BC */ blt lbl_802F1C6C
-/* 802F1CB4 002ED914 38 60 00 00 */ li r3, 0
-lbl_802F1CB8:
-/* 802F1CB8 002ED918 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F1CBC 002ED91C 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F1CC0 002ED920 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F1CC4 002ED924 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F1CC8 002ED928 7C 08 03 A6 */ mtlr r0
-/* 802F1CCC 002ED92C 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F1CD0 002ED930 4E 80 00 20 */ blr
-
-.global func_802F1CD4
-func_802F1CD4:
-/* 802F1CD4 002ED934 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F1CD8 002ED938 7C 08 02 A6 */ mflr r0
-/* 802F1CDC 002ED93C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F1CE0 002ED940 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F1CE4 002ED944 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F1CE8 002ED948 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F1CEC 002ED94C 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802F1CF0 002ED950 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F1CF4 002ED954 2C 00 00 00 */ cmpwi r0, 0
-/* 802F1CF8 002ED958 40 82 00 0C */ bne lbl_802F1D04
-/* 802F1CFC 002ED95C 38 60 FF 14 */ li r3, -236
-/* 802F1D00 002ED960 48 00 00 78 */ b lbl_802F1D78
-lbl_802F1D04:
-/* 802F1D04 002ED964 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
-/* 802F1D08 002ED968 2C 00 00 00 */ cmpwi r0, 0
-/* 802F1D0C 002ED96C 41 82 00 0C */ beq lbl_802F1D18
-/* 802F1D10 002ED970 38 60 FF FF */ li r3, -1
-/* 802F1D14 002ED974 48 00 00 64 */ b lbl_802F1D78
-lbl_802F1D18:
-/* 802F1D18 002ED978 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1D1C 002ED97C 83 C3 57 64 */ lwz r30, 0x5764(r3)
-/* 802F1D20 002ED980 2C 1E 00 00 */ cmpwi r30, 0
-/* 802F1D24 002ED984 40 82 00 0C */ bne lbl_802F1D30
-/* 802F1D28 002ED988 38 60 00 00 */ li r3, 0
-/* 802F1D2C 002ED98C 48 00 00 4C */ b lbl_802F1D78
-lbl_802F1D30:
-/* 802F1D30 002ED990 3B 80 00 04 */ li r28, 4
-/* 802F1D34 002ED994 3B A0 00 00 */ li r29, 0
-/* 802F1D38 002ED998 3B E0 00 01 */ li r31, 1
-lbl_802F1D3C:
-/* 802F1D3C 002ED99C 7F E0 E8 30 */ slw r0, r31, r29
-/* 802F1D40 002ED9A0 7F C0 00 39 */ and. r0, r30, r0
-/* 802F1D44 002ED9A4 41 82 00 18 */ beq lbl_802F1D5C
-/* 802F1D48 002ED9A8 7F A3 EB 78 */ mr r3, r29
-/* 802F1D4C 002ED9AC 48 00 05 E1 */ bl func_802F232C
-/* 802F1D50 002ED9B0 7C 03 E0 00 */ cmpw r3, r28
-/* 802F1D54 002ED9B4 40 80 00 08 */ bge lbl_802F1D5C
-/* 802F1D58 002ED9B8 7C 7C 1B 78 */ mr r28, r3
-lbl_802F1D5C:
-/* 802F1D5C 002ED9BC 3B BD 00 01 */ addi r29, r29, 1
-/* 802F1D60 002ED9C0 28 1D 00 10 */ cmplwi r29, 0x10
-/* 802F1D64 002ED9C4 41 80 FF D8 */ blt lbl_802F1D3C
-/* 802F1D68 002ED9C8 2C 1C 00 04 */ cmpwi r28, 4
-/* 802F1D6C 002ED9CC 40 82 00 08 */ bne lbl_802F1D74
-/* 802F1D70 002ED9D0 3B 80 00 00 */ li r28, 0
-lbl_802F1D74:
-/* 802F1D74 002ED9D4 7F 83 E3 78 */ mr r3, r28
-lbl_802F1D78:
-/* 802F1D78 002ED9D8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F1D7C 002ED9DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F1D80 002ED9E0 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F1D84 002ED9E4 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F1D88 002ED9E8 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802F1D8C 002ED9EC 7C 08 03 A6 */ mtlr r0
-/* 802F1D90 002ED9F0 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F1D94 002ED9F4 4E 80 00 20 */ blr
-
-.global func_802F1D98
-func_802F1D98:
-/* 802F1D98 002ED9F8 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F1D9C 002ED9FC 2C 00 00 00 */ cmpwi r0, 0
-/* 802F1DA0 002EDA00 41 82 00 10 */ beq lbl_802F1DB0
-/* 802F1DA4 002EDA04 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1DA8 002EDA08 80 63 57 64 */ lwz r3, 0x5764(r3)
-/* 802F1DAC 002EDA0C 4E 80 00 20 */ blr
-lbl_802F1DB0:
-/* 802F1DB0 002EDA10 38 60 00 00 */ li r3, 0
-/* 802F1DB4 002EDA14 4E 80 00 20 */ blr
-
-.global func_802F1DB8
-func_802F1DB8:
-/* 802F1DB8 002EDA18 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F1DBC 002EDA1C 7C 08 02 A6 */ mflr r0
-/* 802F1DC0 002EDA20 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1DC4 002EDA24 38 80 00 00 */ li r4, 0
-/* 802F1DC8 002EDA28 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F1DCC 002EDA2C 38 A0 00 60 */ li r5, 0x60
-/* 802F1DD0 002EDA30 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F1DD4 002EDA34 3B E0 00 00 */ li r31, 0
-/* 802F1DD8 002EDA38 93 C1 00 08 */ stw r30, 8(r1)
-/* 802F1DDC 002EDA3C 93 E3 57 64 */ stw r31, 0x5764(r3)
-/* 802F1DE0 002EDA40 38 63 57 72 */ addi r3, r3, 0x5772
-/* 802F1DE4 002EDA44 4B D1 23 21 */ bl memset
-/* 802F1DE8 002EDA48 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1DEC 002EDA4C 38 80 00 00 */ li r4, 0
-/* 802F1DF0 002EDA50 38 A0 00 20 */ li r5, 0x20
-/* 802F1DF4 002EDA54 38 63 65 04 */ addi r3, r3, 0x6504
-/* 802F1DF8 002EDA58 4B D1 23 0D */ bl memset
-/* 802F1DFC 002EDA5C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1E00 002EDA60 38 80 00 00 */ li r4, 0
-/* 802F1E04 002EDA64 38 A0 04 00 */ li r5, 0x400
-/* 802F1E08 002EDA68 38 63 60 84 */ addi r3, r3, 0x6084
-/* 802F1E0C 002EDA6C 4B D1 22 F9 */ bl memset
-/* 802F1E10 002EDA70 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1E14 002EDA74 38 80 00 00 */ li r4, 0
-/* 802F1E18 002EDA78 38 A0 00 40 */ li r5, 0x40
-/* 802F1E1C 002EDA7C 38 63 64 84 */ addi r3, r3, 0x6484
-/* 802F1E20 002EDA80 4B D1 22 E5 */ bl memset
-/* 802F1E24 002EDA84 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1E28 002EDA88 38 80 00 00 */ li r4, 0
-/* 802F1E2C 002EDA8C 38 A0 00 40 */ li r5, 0x40
-/* 802F1E30 002EDA90 38 63 64 C4 */ addi r3, r3, 0x64c4
-/* 802F1E34 002EDA94 4B D1 22 D1 */ bl memset
-/* 802F1E38 002EDA98 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1E3C 002EDA9C 80 03 00 0C */ lwz r0, 0xc(r3)
-/* 802F1E40 002EDAA0 2C 00 00 01 */ cmpwi r0, 1
-/* 802F1E44 002EDAA4 41 82 00 08 */ beq lbl_802F1E4C
-/* 802F1E48 002EDAA8 48 00 00 38 */ b lbl_802F1E80
-lbl_802F1E4C:
-/* 802F1E4C 002EDAAC 4B F7 C9 11 */ bl OSDisableInterrupts
-/* 802F1E50 002EDAB0 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1E54 002EDAB4 7C 7E 1B 78 */ mr r30, r3
-/* 802F1E58 002EDAB8 38 A0 00 06 */ li r5, 6
-/* 802F1E5C 002EDABC 93 E4 57 60 */ stw r31, 0x5760(r4)
-/* 802F1E60 002EDAC0 38 64 57 72 */ addi r3, r4, 0x5772
-/* 802F1E64 002EDAC4 38 84 57 6C */ addi r4, r4, 0x576c
-/* 802F1E68 002EDAC8 4B D1 21 99 */ bl memcpy
-/* 802F1E6C 002EDACC 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1E70 002EDAD0 7F C3 F3 78 */ mr r3, r30
-/* 802F1E74 002EDAD4 B3 E4 65 04 */ sth r31, 0x6504(r4)
-/* 802F1E78 002EDAD8 4B F7 C9 0D */ bl OSRestoreInterrupts
-/* 802F1E7C 002EDADC 48 00 00 0C */ b lbl_802F1E88
-lbl_802F1E80:
-/* 802F1E80 002EDAE0 38 60 FF 01 */ li r3, -255
-/* 802F1E84 002EDAE4 48 00 00 08 */ b lbl_802F1E8C
-lbl_802F1E88:
-/* 802F1E88 002EDAE8 38 60 00 00 */ li r3, 0
-lbl_802F1E8C:
-/* 802F1E8C 002EDAEC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F1E90 002EDAF0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F1E94 002EDAF4 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F1E98 002EDAF8 7C 08 03 A6 */ mtlr r0
-/* 802F1E9C 002EDAFC 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F1EA0 002EDB00 4E 80 00 20 */ blr
-
-.global func_802F1EA4
-func_802F1EA4:
-/* 802F1EA4 002EDB04 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F1EA8 002EDB08 7C 08 02 A6 */ mflr r0
-/* 802F1EAC 002EDB0C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F1EB0 002EDB10 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F1EB4 002EDB14 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1EB8 002EDB18 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F1EBC 002EDB1C 41 82 00 60 */ beq lbl_802F1F1C
-/* 802F1EC0 002EDB20 38 00 00 00 */ li r0, 0
-/* 802F1EC4 002EDB24 38 7F 57 72 */ addi r3, r31, 0x5772
-/* 802F1EC8 002EDB28 90 1F 57 60 */ stw r0, 0x5760(r31)
-/* 802F1ECC 002EDB2C 38 80 00 00 */ li r4, 0
-/* 802F1ED0 002EDB30 38 A0 00 60 */ li r5, 0x60
-/* 802F1ED4 002EDB34 90 1F 57 64 */ stw r0, 0x5764(r31)
-/* 802F1ED8 002EDB38 4B D1 22 2D */ bl memset
-/* 802F1EDC 002EDB3C 38 7F 65 04 */ addi r3, r31, 0x6504
-/* 802F1EE0 002EDB40 38 80 00 00 */ li r4, 0
-/* 802F1EE4 002EDB44 38 A0 00 20 */ li r5, 0x20
-/* 802F1EE8 002EDB48 4B D1 22 1D */ bl memset
-/* 802F1EEC 002EDB4C 38 7F 60 84 */ addi r3, r31, 0x6084
-/* 802F1EF0 002EDB50 38 80 00 00 */ li r4, 0
-/* 802F1EF4 002EDB54 38 A0 04 00 */ li r5, 0x400
-/* 802F1EF8 002EDB58 4B D1 22 0D */ bl memset
-/* 802F1EFC 002EDB5C 38 7F 64 84 */ addi r3, r31, 0x6484
-/* 802F1F00 002EDB60 38 80 00 00 */ li r4, 0
-/* 802F1F04 002EDB64 38 A0 00 40 */ li r5, 0x40
-/* 802F1F08 002EDB68 4B D1 21 FD */ bl memset
-/* 802F1F0C 002EDB6C 38 7F 64 C4 */ addi r3, r31, 0x64c4
-/* 802F1F10 002EDB70 38 80 00 00 */ li r4, 0
-/* 802F1F14 002EDB74 38 A0 00 40 */ li r5, 0x40
-/* 802F1F18 002EDB78 4B D1 21 ED */ bl memset
-lbl_802F1F1C:
-/* 802F1F1C 002EDB7C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F1F20 002EDB80 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F1F24 002EDB84 7C 08 03 A6 */ mtlr r0
-/* 802F1F28 002EDB88 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F1F2C 002EDB8C 4E 80 00 20 */ blr
-
-.global func_802F1F30
-func_802F1F30:
-/* 802F1F30 002EDB90 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F1F34 002EDB94 7C 08 02 A6 */ mflr r0
-/* 802F1F38 002EDB98 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F1F3C 002EDB9C 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F1F40 002EDBA0 4B ED 51 E1 */ bl _savegpr_25
-/* 802F1F44 002EDBA4 28 03 00 10 */ cmplwi r3, 0x10
-/* 802F1F48 002EDBA8 7C 79 1B 78 */ mr r25, r3
-/* 802F1F4C 002EDBAC 7C BA 2B 78 */ mr r26, r5
-/* 802F1F50 002EDBB0 41 80 00 0C */ blt lbl_802F1F5C
-/* 802F1F54 002EDBB4 38 60 FF 01 */ li r3, -255
-/* 802F1F58 002EDBB8 48 00 00 A8 */ b lbl_802F2000
-lbl_802F1F5C:
-/* 802F1F5C 002EDBBC 2C 04 00 00 */ cmpwi r4, 0
-/* 802F1F60 002EDBC0 3C 60 00 01 */ lis r3, 0x0000F002@ha
-/* 802F1F64 002EDBC4 38 03 F0 02 */ addi r0, r3, 0x0000F002@l
-/* 802F1F68 002EDBC8 41 82 00 08 */ beq lbl_802F1F70
-/* 802F1F6C 002EDBCC 38 03 80 01 */ addi r0, r3, -32767
-lbl_802F1F70:
-/* 802F1F70 002EDBD0 54 1C 04 3E */ clrlwi r28, r0, 0x10
-/* 802F1F74 002EDBD4 4B F7 C7 E9 */ bl OSDisableInterrupts
-/* 802F1F78 002EDBD8 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F1F7C 002EDBDC 1F F9 00 06 */ mulli r31, r25, 6
-/* 802F1F80 002EDBE0 7C 7B 1B 78 */ mr r27, r3
-/* 802F1F84 002EDBE4 3B DD 57 72 */ addi r30, r29, 0x5772
-/* 802F1F88 002EDBE8 38 61 00 08 */ addi r3, r1, 8
-/* 802F1F8C 002EDBEC 38 A0 00 06 */ li r5, 6
-/* 802F1F90 002EDBF0 7C 9E FA 14 */ add r4, r30, r31
-/* 802F1F94 002EDBF4 4B D1 20 6D */ bl memcpy
-/* 802F1F98 002EDBF8 57 20 08 3C */ slwi r0, r25, 1
-/* 802F1F9C 002EDBFC 7F 63 DB 78 */ mr r3, r27
-/* 802F1FA0 002EDC00 7C 9D 02 14 */ add r4, r29, r0
-/* 802F1FA4 002EDC04 B3 84 65 04 */ sth r28, 0x6504(r4)
-/* 802F1FA8 002EDC08 4B F7 C7 DD */ bl OSRestoreInterrupts
-/* 802F1FAC 002EDC0C 7C 7E FA 14 */ add r3, r30, r31
-/* 802F1FB0 002EDC10 38 82 AA 38 */ addi r4, r2, lbl_80643038-_SDA2_BASE_
-/* 802F1FB4 002EDC14 4B FF EB 61 */ bl MPiIsEqualMacAddress
-/* 802F1FB8 002EDC18 2C 03 00 00 */ cmpwi r3, 0
-/* 802F1FBC 002EDC1C 41 82 00 0C */ beq lbl_802F1FC8
-/* 802F1FC0 002EDC20 38 60 FF 01 */ li r3, -255
-/* 802F1FC4 002EDC24 48 00 00 3C */ b lbl_802F2000
-lbl_802F1FC8:
-/* 802F1FC8 002EDC28 38 61 00 08 */ addi r3, r1, 8
-/* 802F1FCC 002EDC2C 4B FF F0 79 */ bl MPiDisAssoc
-/* 802F1FD0 002EDC30 3C 03 00 01 */ addis r0, r3, 1
-/* 802F1FD4 002EDC34 7C 7D 1B 78 */ mr r29, r3
-/* 802F1FD8 002EDC38 28 00 FF 01 */ cmplwi r0, 0xff01
-/* 802F1FDC 002EDC3C 40 82 00 08 */ bne lbl_802F1FE4
-/* 802F1FE0 002EDC40 3B 40 00 01 */ li r26, 1
-lbl_802F1FE4:
-/* 802F1FE4 002EDC44 2C 1A 00 00 */ cmpwi r26, 0
-/* 802F1FE8 002EDC48 41 82 00 14 */ beq lbl_802F1FFC
-/* 802F1FEC 002EDC4C 7F 23 CB 78 */ mr r3, r25
-/* 802F1FF0 002EDC50 7F 84 E3 78 */ mr r4, r28
-/* 802F1FF4 002EDC54 38 A1 00 08 */ addi r5, r1, 8
-/* 802F1FF8 002EDC58 48 00 01 61 */ bl func_802F2158
-lbl_802F1FFC:
-/* 802F1FFC 002EDC5C 7F A3 EB 78 */ mr r3, r29
-lbl_802F2000:
-/* 802F2000 002EDC60 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2004 002EDC64 4B ED 51 69 */ bl _restgpr_25
-/* 802F2008 002EDC68 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F200C 002EDC6C 7C 08 03 A6 */ mtlr r0
-/* 802F2010 002EDC70 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F2014 002EDC74 4E 80 00 20 */ blr
-
-.global func_802F2018
-func_802F2018:
-/* 802F2018 002EDC78 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F201C 002EDC7C 7C 08 02 A6 */ mflr r0
-/* 802F2020 002EDC80 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F2024 002EDC84 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2028 002EDC88 4B ED 50 F9 */ bl _savegpr_25
-/* 802F202C 002EDC8C 28 03 00 10 */ cmplwi r3, 0x10
-/* 802F2030 002EDC90 7C 7A 1B 78 */ mr r26, r3
-/* 802F2034 002EDC94 7C 9B 23 78 */ mr r27, r4
-/* 802F2038 002EDC98 7C BC 2B 78 */ mr r28, r5
-/* 802F203C 002EDC9C 7C DD 33 78 */ mr r29, r6
-/* 802F2040 002EDCA0 3B E0 00 00 */ li r31, 0
-/* 802F2044 002EDCA4 41 80 00 08 */ blt lbl_802F204C
-/* 802F2048 002EDCA8 48 00 00 F8 */ b lbl_802F2140
-lbl_802F204C:
-/* 802F204C 002EDCAC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2050 002EDCB0 80 03 00 30 */ lwz r0, 0x30(r3)
-/* 802F2054 002EDCB4 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2058 002EDCB8 41 82 00 08 */ beq lbl_802F2060
-/* 802F205C 002EDCBC 3B E0 00 01 */ li r31, 1
-lbl_802F2060:
-/* 802F2060 002EDCC0 4B F7 C6 FD */ bl OSDisableInterrupts
-/* 802F2064 002EDCC4 1C 1A 00 06 */ mulli r0, r26, 6
-/* 802F2068 002EDCC8 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F206C 002EDCCC 7C 7E 1B 78 */ mr r30, r3
-/* 802F2070 002EDCD0 7F 64 DB 78 */ mr r4, r27
-/* 802F2074 002EDCD4 7C 65 02 14 */ add r3, r5, r0
-/* 802F2078 002EDCD8 38 A0 00 06 */ li r5, 6
-/* 802F207C 002EDCDC 38 63 57 72 */ addi r3, r3, 0x5772
-/* 802F2080 002EDCE0 4B D1 1F 81 */ bl memcpy
-/* 802F2084 002EDCE4 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2088 002EDCE8 57 43 08 3C */ slwi r3, r26, 1
-/* 802F208C 002EDCEC 57 40 30 32 */ slwi r0, r26, 6
-/* 802F2090 002EDCF0 3B 20 00 00 */ li r25, 0
-/* 802F2094 002EDCF4 7C A6 1A 14 */ add r5, r6, r3
-/* 802F2098 002EDCF8 38 80 00 00 */ li r4, 0
-/* 802F209C 002EDCFC 7C 66 02 14 */ add r3, r6, r0
-/* 802F20A0 002EDD00 B3 25 65 04 */ sth r25, 0x6504(r5)
-/* 802F20A4 002EDD04 38 63 60 84 */ addi r3, r3, 0x6084
-/* 802F20A8 002EDD08 38 A0 00 40 */ li r5, 0x40
-/* 802F20AC 002EDD0C 4B D1 20 59 */ bl memset
-/* 802F20B0 002EDD10 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F20B4 002EDD14 57 40 10 3A */ slwi r0, r26, 2
-/* 802F20B8 002EDD18 7C 63 02 14 */ add r3, r3, r0
-/* 802F20BC 002EDD1C 93 23 64 84 */ stw r25, 0x6484(r3)
-/* 802F20C0 002EDD20 4B F8 07 11 */ bl OSGetTick
-/* 802F20C4 002EDD24 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F20C8 002EDD28 57 40 10 3A */ slwi r0, r26, 2
-/* 802F20CC 002EDD2C 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F20D0 002EDD30 7C 85 02 14 */ add r4, r5, r0
-/* 802F20D4 002EDD34 90 64 64 C4 */ stw r3, 0x64c4(r4)
-/* 802F20D8 002EDD38 41 82 00 1C */ beq lbl_802F20F4
-/* 802F20DC 002EDD3C 38 00 00 01 */ li r0, 1
-/* 802F20E0 002EDD40 80 65 57 64 */ lwz r3, 0x5764(r5)
-/* 802F20E4 002EDD44 7C 00 D0 30 */ slw r0, r0, r26
-/* 802F20E8 002EDD48 7C 60 03 78 */ or r0, r3, r0
-/* 802F20EC 002EDD4C 90 05 57 64 */ stw r0, 0x5764(r5)
-/* 802F20F0 002EDD50 48 00 00 18 */ b lbl_802F2108
-lbl_802F20F4:
-/* 802F20F4 002EDD54 38 00 00 01 */ li r0, 1
-/* 802F20F8 002EDD58 80 65 57 64 */ lwz r3, 0x5764(r5)
-/* 802F20FC 002EDD5C 7C 00 D0 30 */ slw r0, r0, r26
-/* 802F2100 002EDD60 7C 60 00 78 */ andc r0, r3, r0
-/* 802F2104 002EDD64 90 05 57 64 */ stw r0, 0x5764(r5)
-lbl_802F2108:
-/* 802F2108 002EDD68 7F 43 D3 78 */ mr r3, r26
-/* 802F210C 002EDD6C 48 00 14 C1 */ bl func_802F35CC
-/* 802F2110 002EDD70 7F C3 F3 78 */ mr r3, r30
-/* 802F2114 002EDD74 4B F7 C6 71 */ bl OSRestoreInterrupts
-/* 802F2118 002EDD78 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F211C 002EDD7C 40 82 00 10 */ bne lbl_802F212C
-/* 802F2120 002EDD80 7F 63 DB 78 */ mr r3, r27
-/* 802F2124 002EDD84 4B FF EF 21 */ bl MPiDisAssoc
-/* 802F2128 002EDD88 48 00 00 18 */ b lbl_802F2140
-lbl_802F212C:
-/* 802F212C 002EDD8C 7F 43 D3 78 */ mr r3, r26
-/* 802F2130 002EDD90 7F 64 DB 78 */ mr r4, r27
-/* 802F2134 002EDD94 7F 85 E3 78 */ mr r5, r28
-/* 802F2138 002EDD98 7F A6 EB 78 */ mr r6, r29
-/* 802F213C 002EDD9C 48 00 15 C1 */ bl func_802F36FC
-lbl_802F2140:
-/* 802F2140 002EDDA0 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2144 002EDDA4 4B ED 50 29 */ bl _restgpr_25
-/* 802F2148 002EDDA8 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F214C 002EDDAC 7C 08 03 A6 */ mtlr r0
-/* 802F2150 002EDDB0 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F2154 002EDDB4 4E 80 00 20 */ blr
-
-.global func_802F2158
-func_802F2158:
-/* 802F2158 002EDDB8 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F215C 002EDDBC 7C 08 02 A6 */ mflr r0
-/* 802F2160 002EDDC0 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F2164 002EDDC4 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2168 002EDDC8 4B ED 4F B1 */ bl _savegpr_23
-/* 802F216C 002EDDCC 28 03 00 10 */ cmplwi r3, 0x10
-/* 802F2170 002EDDD0 7C 78 1B 78 */ mr r24, r3
-/* 802F2174 002EDDD4 7C 99 23 78 */ mr r25, r4
-/* 802F2178 002EDDD8 7C BA 2B 78 */ mr r26, r5
-/* 802F217C 002EDDDC 40 80 00 EC */ bge lbl_802F2268
-/* 802F2180 002EDDE0 4B F7 C5 DD */ bl OSDisableInterrupts
-/* 802F2184 002EDDE4 7C 7B 1B 78 */ mr r27, r3
-/* 802F2188 002EDDE8 7F 03 C3 78 */ mr r3, r24
-/* 802F218C 002EDDEC 48 00 14 41 */ bl func_802F35CC
-/* 802F2190 002EDDF0 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2194 002EDDF4 38 00 00 01 */ li r0, 1
-/* 802F2198 002EDDF8 7C 1F C0 30 */ slw r31, r0, r24
-/* 802F219C 002EDDFC 80 1E 57 64 */ lwz r0, 0x5764(r30)
-/* 802F21A0 002EDE00 7F E3 00 38 */ and r3, r31, r0
-/* 802F21A4 002EDE04 7C 03 00 D0 */ neg r0, r3
-/* 802F21A8 002EDE08 7C 00 1B 78 */ or r0, r0, r3
-/* 802F21AC 002EDE0C 54 1C 0F FF */ rlwinm. r28, r0, 1, 0x1f, 0x1f
-/* 802F21B0 002EDE10 41 82 00 38 */ beq lbl_802F21E8
-/* 802F21B4 002EDE14 1C 18 00 06 */ mulli r0, r24, 6
-/* 802F21B8 002EDE18 7F 44 D3 78 */ mr r4, r26
-/* 802F21BC 002EDE1C 7C 7E 02 14 */ add r3, r30, r0
-/* 802F21C0 002EDE20 38 63 57 72 */ addi r3, r3, 0x5772
-/* 802F21C4 002EDE24 4B FF E9 51 */ bl MPiIsEqualMacAddress
-/* 802F21C8 002EDE28 2C 03 00 00 */ cmpwi r3, 0
-/* 802F21CC 002EDE2C 41 82 00 1C */ beq lbl_802F21E8
-/* 802F21D0 002EDE30 57 00 08 3C */ slwi r0, r24, 1
-/* 802F21D4 002EDE34 7C 7E 02 14 */ add r3, r30, r0
-/* 802F21D8 002EDE38 A0 03 65 04 */ lhz r0, 0x6504(r3)
-/* 802F21DC 002EDE3C 2C 00 00 00 */ cmpwi r0, 0
-/* 802F21E0 002EDE40 41 82 00 08 */ beq lbl_802F21E8
-/* 802F21E4 002EDE44 7C 19 03 78 */ mr r25, r0
-lbl_802F21E8:
-/* 802F21E8 002EDE48 1C 18 00 06 */ mulli r0, r24, 6
-/* 802F21EC 002EDE4C 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F21F0 002EDE50 38 80 00 00 */ li r4, 0
-/* 802F21F4 002EDE54 38 A0 00 06 */ li r5, 6
-/* 802F21F8 002EDE58 7C 7D 02 14 */ add r3, r29, r0
-/* 802F21FC 002EDE5C 38 63 57 72 */ addi r3, r3, 0x5772
-/* 802F2200 002EDE60 4B D1 1F 05 */ bl memset
-/* 802F2204 002EDE64 57 03 08 3C */ slwi r3, r24, 1
-/* 802F2208 002EDE68 3A E0 00 00 */ li r23, 0
-/* 802F220C 002EDE6C 7C 7D 1A 14 */ add r3, r29, r3
-/* 802F2210 002EDE70 57 00 30 32 */ slwi r0, r24, 6
-/* 802F2214 002EDE74 B2 E3 65 04 */ sth r23, 0x6504(r3)
-/* 802F2218 002EDE78 7C 7D 02 14 */ add r3, r29, r0
-/* 802F221C 002EDE7C 38 63 60 84 */ addi r3, r3, 0x6084
-/* 802F2220 002EDE80 38 80 00 00 */ li r4, 0
-/* 802F2224 002EDE84 80 1E 57 64 */ lwz r0, 0x5764(r30)
-/* 802F2228 002EDE88 38 A0 00 40 */ li r5, 0x40
-/* 802F222C 002EDE8C 7C 00 F8 78 */ andc r0, r0, r31
-/* 802F2230 002EDE90 90 1E 57 64 */ stw r0, 0x5764(r30)
-/* 802F2234 002EDE94 4B D1 1E D1 */ bl memset
-/* 802F2238 002EDE98 57 00 10 3A */ slwi r0, r24, 2
-/* 802F223C 002EDE9C 7F 63 DB 78 */ mr r3, r27
-/* 802F2240 002EDEA0 7C 9D 02 14 */ add r4, r29, r0
-/* 802F2244 002EDEA4 92 E4 64 84 */ stw r23, 0x6484(r4)
-/* 802F2248 002EDEA8 92 E4 64 C4 */ stw r23, 0x64c4(r4)
-/* 802F224C 002EDEAC 4B F7 C5 39 */ bl OSRestoreInterrupts
-/* 802F2250 002EDEB0 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F2254 002EDEB4 41 82 00 14 */ beq lbl_802F2268
-/* 802F2258 002EDEB8 7F 03 C3 78 */ mr r3, r24
-/* 802F225C 002EDEBC 7F 24 CB 78 */ mr r4, r25
-/* 802F2260 002EDEC0 7F 45 D3 78 */ mr r5, r26
-/* 802F2264 002EDEC4 48 00 15 79 */ bl func_802F37DC
-lbl_802F2268:
-/* 802F2268 002EDEC8 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F226C 002EDECC 4B ED 4E F9 */ bl _restgpr_23
-/* 802F2270 002EDED0 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F2274 002EDED4 7C 08 03 A6 */ mtlr r0
-/* 802F2278 002EDED8 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F227C 002EDEDC 4E 80 00 20 */ blr
-
-.global func_802F2280
-func_802F2280:
-/* 802F2280 002EDEE0 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2284 002EDEE4 54 65 10 3A */ slwi r5, r3, 2
-/* 802F2288 002EDEE8 54 60 30 32 */ slwi r0, r3, 6
-/* 802F228C 002EDEEC 7C A6 2A 14 */ add r5, r6, r5
-/* 802F2290 002EDEF0 80 E5 64 84 */ lwz r7, 0x6484(r5)
-/* 802F2294 002EDEF4 7C 66 02 14 */ add r3, r6, r0
-/* 802F2298 002EDEF8 54 E0 10 3A */ slwi r0, r7, 2
-/* 802F229C 002EDEFC 38 E7 00 01 */ addi r7, r7, 1
-/* 802F22A0 002EDF00 7C 63 02 14 */ add r3, r3, r0
-/* 802F22A4 002EDF04 28 07 00 10 */ cmplwi r7, 0x10
-/* 802F22A8 002EDF08 90 83 60 84 */ stw r4, 0x6084(r3)
-/* 802F22AC 002EDF0C 41 80 00 08 */ blt lbl_802F22B4
-/* 802F22B0 002EDF10 38 E0 00 00 */ li r7, 0
-lbl_802F22B4:
-/* 802F22B4 002EDF14 90 E5 64 84 */ stw r7, 0x6484(r5)
-/* 802F22B8 002EDF18 4E 80 00 20 */ blr
-
-.global func_802F22BC
-func_802F22BC:
-/* 802F22BC 002EDF1C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F22C0 002EDF20 7C 08 02 A6 */ mflr r0
-/* 802F22C4 002EDF24 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F22C8 002EDF28 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F22CC 002EDF2C 7C 7F 1B 78 */ mr r31, r3
-/* 802F22D0 002EDF30 4B F8 05 01 */ bl OSGetTick
-/* 802F22D4 002EDF34 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F22D8 002EDF38 57 E0 10 3A */ slwi r0, r31, 2
-/* 802F22DC 002EDF3C 7C 84 02 14 */ add r4, r4, r0
-/* 802F22E0 002EDF40 90 64 64 C4 */ stw r3, 0x64c4(r4)
-/* 802F22E4 002EDF44 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F22E8 002EDF48 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F22EC 002EDF4C 7C 08 03 A6 */ mtlr r0
-/* 802F22F0 002EDF50 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F22F4 002EDF54 4E 80 00 20 */ blr
-
-.global func_802F22F8
-func_802F22F8:
-/* 802F22F8 002EDF58 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F22FC 002EDF5C 54 60 10 3A */ slwi r0, r3, 2
-/* 802F2300 002EDF60 7C 65 02 14 */ add r3, r5, r0
-/* 802F2304 002EDF64 80 03 64 C4 */ lwz r0, 0x64c4(r3)
-/* 802F2308 002EDF68 7C 04 00 50 */ subf r0, r4, r0
-/* 802F230C 002EDF6C 54 03 0F FE */ srwi r3, r0, 0x1f
-/* 802F2310 002EDF70 4E 80 00 20 */ blr
-
-.global func_802F2314
-func_802F2314:
-/* 802F2314 002EDF74 38 80 00 01 */ li r4, 1
-/* 802F2318 002EDF78 38 A0 00 00 */ li r5, 0
-/* 802F231C 002EDF7C 4B FF FC 14 */ b func_802F1F30
-
-.global func_802F2320
-func_802F2320:
-/* 802F2320 002EDF80 38 80 00 01 */ li r4, 1
-/* 802F2324 002EDF84 38 A0 00 01 */ li r5, 1
-/* 802F2328 002EDF88 4B FF FC 08 */ b func_802F1F30
-
-.global func_802F232C
-func_802F232C:
-/* 802F232C 002EDF8C 28 03 00 10 */ cmplwi r3, 0x10
-/* 802F2330 002EDF90 41 80 00 0C */ blt lbl_802F233C
-/* 802F2334 002EDF94 38 60 FF 01 */ li r3, -255
-/* 802F2338 002EDF98 4E 80 00 20 */ blr
-lbl_802F233C:
-/* 802F233C 002EDF9C 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2340 002EDFA0 54 60 30 32 */ slwi r0, r3, 6
-/* 802F2344 002EDFA4 7C A4 02 14 */ add r5, r4, r0
-/* 802F2348 002EDFA8 80 85 60 84 */ lwz r4, 0x6084(r5)
-/* 802F234C 002EDFAC 80 05 60 88 */ lwz r0, 0x6088(r5)
-/* 802F2350 002EDFB0 80 65 60 8C */ lwz r3, 0x608c(r5)
-/* 802F2354 002EDFB4 7C C4 02 14 */ add r6, r4, r0
-/* 802F2358 002EDFB8 80 05 60 90 */ lwz r0, 0x6090(r5)
-/* 802F235C 002EDFBC 7C C6 1A 14 */ add r6, r6, r3
-/* 802F2360 002EDFC0 80 65 60 94 */ lwz r3, 0x6094(r5)
-/* 802F2364 002EDFC4 7C C6 02 14 */ add r6, r6, r0
-/* 802F2368 002EDFC8 80 05 60 98 */ lwz r0, 0x6098(r5)
-/* 802F236C 002EDFCC 7C C6 1A 14 */ add r6, r6, r3
-/* 802F2370 002EDFD0 80 65 60 9C */ lwz r3, 0x609c(r5)
-/* 802F2374 002EDFD4 7C C6 02 14 */ add r6, r6, r0
-/* 802F2378 002EDFD8 80 05 60 A0 */ lwz r0, 0x60a0(r5)
-/* 802F237C 002EDFDC 7C C6 1A 14 */ add r6, r6, r3
-/* 802F2380 002EDFE0 80 85 60 A4 */ lwz r4, 0x60a4(r5)
-/* 802F2384 002EDFE4 7C C6 02 14 */ add r6, r6, r0
-/* 802F2388 002EDFE8 80 05 60 A8 */ lwz r0, 0x60a8(r5)
-/* 802F238C 002EDFEC 7C C6 22 14 */ add r6, r6, r4
-/* 802F2390 002EDFF0 80 65 60 AC */ lwz r3, 0x60ac(r5)
-/* 802F2394 002EDFF4 7C C6 02 14 */ add r6, r6, r0
-/* 802F2398 002EDFF8 80 05 60 B0 */ lwz r0, 0x60b0(r5)
-/* 802F239C 002EDFFC 7C C6 1A 14 */ add r6, r6, r3
-/* 802F23A0 002EE000 80 65 60 B4 */ lwz r3, 0x60b4(r5)
-/* 802F23A4 002EE004 7C C6 02 14 */ add r6, r6, r0
-/* 802F23A8 002EE008 80 05 60 B8 */ lwz r0, 0x60b8(r5)
-/* 802F23AC 002EE00C 7C C6 1A 14 */ add r6, r6, r3
-/* 802F23B0 002EE010 80 65 60 BC */ lwz r3, 0x60bc(r5)
-/* 802F23B4 002EE014 7C C6 02 14 */ add r6, r6, r0
-/* 802F23B8 002EE018 80 05 60 C0 */ lwz r0, 0x60c0(r5)
-/* 802F23BC 002EE01C 7C C6 1A 14 */ add r6, r6, r3
-/* 802F23C0 002EE020 7C C6 02 14 */ add r6, r6, r0
-/* 802F23C4 002EE024 7C C0 26 70 */ srawi r0, r6, 4
-/* 802F23C8 002EE028 7C C0 01 94 */ addze r6, r0
-/* 802F23CC 002EE02C 2C 06 00 BD */ cmpwi r6, 0xbd
-/* 802F23D0 002EE030 41 80 00 0C */ blt lbl_802F23DC
-/* 802F23D4 002EE034 38 60 00 03 */ li r3, 3
-/* 802F23D8 002EE038 4E 80 00 20 */ blr
-lbl_802F23DC:
-/* 802F23DC 002EE03C 2C 06 00 B4 */ cmpwi r6, 0xb4
-/* 802F23E0 002EE040 41 80 00 0C */ blt lbl_802F23EC
-/* 802F23E4 002EE044 38 60 00 02 */ li r3, 2
-/* 802F23E8 002EE048 4E 80 00 20 */ blr
-lbl_802F23EC:
-/* 802F23EC 002EE04C 7C C3 FE 70 */ srawi r3, r6, 0x1f
-/* 802F23F0 002EE050 38 00 00 B0 */ li r0, 0xb0
-/* 802F23F4 002EE054 7C 00 30 10 */ subfc r0, r0, r6
-/* 802F23F8 002EE058 38 00 00 00 */ li r0, 0
-/* 802F23FC 002EE05C 7C 63 01 14 */ adde r3, r3, r0
-/* 802F2400 002EE060 4E 80 00 20 */ blr
-
-.global func_802F2404
-func_802F2404:
-/* 802F2404 002EE064 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F2408 002EE068 7C 08 02 A6 */ mflr r0
-/* 802F240C 002EE06C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F2410 002EE070 38 00 00 00 */ li r0, 0
-/* 802F2414 002EE074 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F2418 002EE078 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F241C 002EE07C 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2420 002EE080 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F2424 002EE084 38 7E 6D 08 */ addi r3, r30, 0x6d08
-/* 802F2428 002EE088 90 1E 6D E0 */ stw r0, 0x6de0(r30)
-/* 802F242C 002EE08C 4B F7 72 F9 */ bl OSCreateAlarm
-/* 802F2430 002EE090 38 7E 6D 38 */ addi r3, r30, 0x6d38
-/* 802F2434 002EE094 4B F7 72 F1 */ bl OSCreateAlarm
-/* 802F2438 002EE098 38 7E 6D 68 */ addi r3, r30, 0x6d68
-/* 802F243C 002EE09C 4B F7 72 E9 */ bl OSCreateAlarm
-/* 802F2440 002EE0A0 38 7E 6D A4 */ addi r3, r30, 0x6da4
-/* 802F2444 002EE0A4 38 80 00 00 */ li r4, 0
-/* 802F2448 002EE0A8 4B F7 EA 21 */ bl OSInitSemaphore
-/* 802F244C 002EE0AC 38 7E 6D 98 */ addi r3, r30, 0x6d98
-/* 802F2450 002EE0B0 38 80 00 00 */ li r4, 0
-/* 802F2454 002EE0B4 4B F7 EA 15 */ bl OSInitSemaphore
-/* 802F2458 002EE0B8 38 7E 6D B0 */ addi r3, r30, 0x6db0
-/* 802F245C 002EE0BC 38 9E 6D D0 */ addi r4, r30, 0x6dd0
-/* 802F2460 002EE0C0 38 A0 00 01 */ li r5, 1
-/* 802F2464 002EE0C4 4B F7 CA 95 */ bl OSInitMessageQueue
-/* 802F2468 002EE0C8 38 7E 66 14 */ addi r3, r30, 0x6614
-/* 802F246C 002EE0CC 38 9E 66 34 */ addi r4, r30, 0x6634
-/* 802F2470 002EE0D0 38 A0 00 20 */ li r5, 0x20
-/* 802F2474 002EE0D4 4B F7 CA 85 */ bl OSInitMessageQueue
-/* 802F2478 002EE0D8 38 7E 66 B4 */ addi r3, r30, 0x66b4
-/* 802F247C 002EE0DC 38 9E 66 D4 */ addi r4, r30, 0x66d4
-/* 802F2480 002EE0E0 38 A0 00 01 */ li r5, 1
-/* 802F2484 002EE0E4 4B F7 CA 75 */ bl OSInitMessageQueue
-/* 802F2488 002EE0E8 3B FE 74 58 */ addi r31, r30, 0x7458
-/* 802F248C 002EE0EC 38 80 00 00 */ li r4, 0
-/* 802F2490 002EE0F0 7F E3 FB 78 */ mr r3, r31
-/* 802F2494 002EE0F4 38 A0 00 80 */ li r5, 0x80
-/* 802F2498 002EE0F8 4B D1 1C 6D */ bl memset
-/* 802F249C 002EE0FC 3B BE 74 38 */ addi r29, r30, 0x7438
-/* 802F24A0 002EE100 7F E4 FB 78 */ mr r4, r31
-/* 802F24A4 002EE104 7F A3 EB 78 */ mr r3, r29
-/* 802F24A8 002EE108 38 A0 00 20 */ li r5, 0x20
-/* 802F24AC 002EE10C 4B F7 CA 4D */ bl OSInitMessageQueue
-/* 802F24B0 002EE110 3B DE 73 38 */ addi r30, r30, 0x7338
-/* 802F24B4 002EE114 38 80 00 00 */ li r4, 0
-/* 802F24B8 002EE118 7F C3 F3 78 */ mr r3, r30
-/* 802F24BC 002EE11C 38 A0 01 00 */ li r5, 0x100
-/* 802F24C0 002EE120 4B D1 1C 45 */ bl memset
-/* 802F24C4 002EE124 3B E0 00 00 */ li r31, 0
-lbl_802F24C8:
-/* 802F24C8 002EE128 7F A3 EB 78 */ mr r3, r29
-/* 802F24CC 002EE12C 7F C4 F3 78 */ mr r4, r30
-/* 802F24D0 002EE130 38 A0 00 00 */ li r5, 0
-/* 802F24D4 002EE134 4B F7 CA 85 */ bl OSSendMessage
-/* 802F24D8 002EE138 3B FF 00 01 */ addi r31, r31, 1
-/* 802F24DC 002EE13C 3B DE 00 08 */ addi r30, r30, 8
-/* 802F24E0 002EE140 2C 1F 00 20 */ cmpwi r31, 0x20
-/* 802F24E4 002EE144 41 80 FF E4 */ blt lbl_802F24C8
-/* 802F24E8 002EE148 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F24EC 002EE14C 38 80 00 00 */ li r4, 0
-/* 802F24F0 002EE150 38 A0 10 00 */ li r5, 0x1000
-/* 802F24F4 002EE154 38 7D 01 40 */ addi r3, r29, 0x140
-/* 802F24F8 002EE158 4B D1 1C 0D */ bl memset
-/* 802F24FC 002EE15C 38 7D 66 D8 */ addi r3, r29, 0x66d8
-/* 802F2500 002EE160 38 80 00 00 */ li r4, 0
-/* 802F2504 002EE164 38 A0 03 18 */ li r5, 0x318
-/* 802F2508 002EE168 4B D1 1B FD */ bl memset
-/* 802F250C 002EE16C 38 7D 11 40 */ addi r3, r29, 0x1140
-/* 802F2510 002EE170 38 80 00 00 */ li r4, 0
-/* 802F2514 002EE174 38 A0 10 00 */ li r5, 0x1000
-/* 802F2518 002EE178 4B D1 1B ED */ bl memset
-/* 802F251C 002EE17C 38 7D 69 F0 */ addi r3, r29, 0x69f0
-/* 802F2520 002EE180 38 80 00 00 */ li r4, 0
-/* 802F2524 002EE184 38 A0 03 18 */ li r5, 0x318
-/* 802F2528 002EE188 4B D1 1B DD */ bl memset
-/* 802F252C 002EE18C 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F2530 002EE190 38 60 00 00 */ li r3, 0
-/* 802F2534 002EE194 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F2538 002EE198 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F253C 002EE19C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F2540 002EE1A0 7C 08 03 A6 */ mtlr r0
-/* 802F2544 002EE1A4 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F2548 002EE1A8 4E 80 00 20 */ blr
-
-.global func_802F254C
-func_802F254C:
-/* 802F254C 002EE1AC 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F2550 002EE1B0 7C 08 02 A6 */ mflr r0
-/* 802F2554 002EE1B4 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2558 002EE1B8 3C 80 80 2F */ lis r4, lbl_802F28AC@ha
-/* 802F255C 002EE1BC 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F2560 002EE1C0 38 84 28 AC */ addi r4, r4, lbl_802F28AC@l
-/* 802F2564 002EE1C4 38 A0 00 00 */ li r5, 0
-/* 802F2568 002EE1C8 38 66 66 D8 */ addi r3, r6, 0x66d8
-/* 802F256C 002EE1CC 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F2570 002EE1D0 38 E0 10 00 */ li r7, 0x1000
-/* 802F2574 002EE1D4 39 20 00 00 */ li r9, 0
-/* 802F2578 002EE1D8 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F257C 002EE1DC 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F2580 002EE1E0 81 06 00 08 */ lwz r8, 8(r6)
-/* 802F2584 002EE1E4 38 C6 11 40 */ addi r6, r6, 0x1140
-/* 802F2588 002EE1E8 39 08 00 01 */ addi r8, r8, 1
-/* 802F258C 002EE1EC 4B F7 F3 55 */ bl OSCreateThread
-/* 802F2590 002EE1F0 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2594 002EE1F4 40 82 00 0C */ bne lbl_802F25A0
-/* 802F2598 002EE1F8 38 60 FF 11 */ li r3, -239
-/* 802F259C 002EE1FC 48 00 01 A8 */ b lbl_802F2744
-lbl_802F25A0:
-/* 802F25A0 002EE200 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F25A4 002EE204 38 63 66 D8 */ addi r3, r3, 0x66d8
-/* 802F25A8 002EE208 4B F7 F9 A1 */ bl OSResumeThread
-/* 802F25AC 002EE20C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F25B0 002EE210 38 80 00 00 */ li r4, 0
-/* 802F25B4 002EE214 38 A0 00 80 */ li r5, 0x80
-/* 802F25B8 002EE218 38 63 74 58 */ addi r3, r3, 0x7458
-/* 802F25BC 002EE21C 4B D1 1B 49 */ bl memset
-/* 802F25C0 002EE220 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F25C4 002EE224 38 A0 00 20 */ li r5, 0x20
-/* 802F25C8 002EE228 38 64 74 38 */ addi r3, r4, 0x7438
-/* 802F25CC 002EE22C 38 84 74 58 */ addi r4, r4, 0x7458
-/* 802F25D0 002EE230 4B F7 C9 29 */ bl OSInitMessageQueue
-/* 802F25D4 002EE234 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F25D8 002EE238 38 80 00 00 */ li r4, 0
-/* 802F25DC 002EE23C 38 A0 01 00 */ li r5, 0x100
-/* 802F25E0 002EE240 38 63 73 38 */ addi r3, r3, 0x7338
-/* 802F25E4 002EE244 4B D1 1B 21 */ bl memset
-/* 802F25E8 002EE248 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F25EC 002EE24C 3B A0 00 00 */ li r29, 0
-/* 802F25F0 002EE250 3B E0 00 00 */ li r31, 0
-lbl_802F25F4:
-/* 802F25F4 002EE254 7C 9E FA 14 */ add r4, r30, r31
-/* 802F25F8 002EE258 38 7E 74 38 */ addi r3, r30, 0x7438
-/* 802F25FC 002EE25C 38 84 73 38 */ addi r4, r4, 0x7338
-/* 802F2600 002EE260 38 A0 00 00 */ li r5, 0
-/* 802F2604 002EE264 4B F7 C9 55 */ bl OSSendMessage
-/* 802F2608 002EE268 3B BD 00 01 */ addi r29, r29, 1
-/* 802F260C 002EE26C 3B FF 00 08 */ addi r31, r31, 8
-/* 802F2610 002EE270 2C 1D 00 20 */ cmpwi r29, 0x20
-/* 802F2614 002EE274 41 80 FF E0 */ blt lbl_802F25F4
-/* 802F2618 002EE278 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-lbl_802F261C:
-/* 802F261C 002EE27C 38 7E 66 14 */ addi r3, r30, 0x6614
-/* 802F2620 002EE280 38 81 00 08 */ addi r4, r1, 8
-/* 802F2624 002EE284 38 A0 00 00 */ li r5, 0
-/* 802F2628 002EE288 4B F7 C9 F9 */ bl OSReceiveMessage
-/* 802F262C 002EE28C 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2630 002EE290 40 82 FF EC */ bne lbl_802F261C
-/* 802F2634 002EE294 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2638 002EE298 3C 80 80 2F */ lis r4, lbl_802F2958@ha
-/* 802F263C 002EE29C 38 84 29 58 */ addi r4, r4, lbl_802F2958@l
-/* 802F2640 002EE2A0 38 A0 00 00 */ li r5, 0
-/* 802F2644 002EE2A4 81 06 00 08 */ lwz r8, 8(r6)
-/* 802F2648 002EE2A8 38 66 69 F0 */ addi r3, r6, 0x69f0
-/* 802F264C 002EE2AC 38 C6 21 40 */ addi r6, r6, 0x2140
-/* 802F2650 002EE2B0 38 E0 10 00 */ li r7, 0x1000
-/* 802F2654 002EE2B4 39 20 00 00 */ li r9, 0
-/* 802F2658 002EE2B8 4B F7 F2 89 */ bl OSCreateThread
-/* 802F265C 002EE2BC 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2660 002EE2C0 40 82 00 0C */ bne lbl_802F266C
-/* 802F2664 002EE2C4 38 60 FF 11 */ li r3, -239
-/* 802F2668 002EE2C8 48 00 00 DC */ b lbl_802F2744
-lbl_802F266C:
-/* 802F266C 002EE2CC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2670 002EE2D0 38 63 69 F0 */ addi r3, r3, 0x69f0
-/* 802F2674 002EE2D4 4B F7 F8 D5 */ bl OSResumeThread
-/* 802F2678 002EE2D8 4B F8 01 41 */ bl OSGetTime
-/* 802F267C 002EE2DC 3F C0 80 00 */ lis r30, 0x800000F8@ha
-/* 802F2680 002EE2E0 3F E0 43 1C */ lis r31, 0x431BDE83@ha
-/* 802F2684 002EE2E4 80 1E 00 F8 */ lwz r0, 0x800000F8@l(r30)
-/* 802F2688 002EE2E8 38 FF DE 83 */ addi r7, r31, 0x431BDE83@l
-/* 802F268C 002EE2EC 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2690 002EE2F0 38 C0 00 00 */ li r6, 0
-/* 802F2694 002EE2F4 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F2698 002EE2F8 7C 07 00 16 */ mulhwu r0, r7, r0
-/* 802F269C 002EE2FC 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F26A0 002EE300 1C 00 41 50 */ mulli r0, r0, 0x4150
-/* 802F26A4 002EE304 54 00 E8 FE */ srwi r0, r0, 3
-/* 802F26A8 002EE308 7C 00 20 14 */ addc r0, r0, r4
-/* 802F26AC 002EE30C 90 05 6D DC */ stw r0, 0x6ddc(r5)
-/* 802F26B0 002EE310 7C 06 19 14 */ adde r0, r6, r3
-/* 802F26B4 002EE314 90 05 6D D8 */ stw r0, 0x6dd8(r5)
-/* 802F26B8 002EE318 4B F8 01 01 */ bl OSGetTime
-/* 802F26BC 002EE31C 80 1E 00 F8 */ lwz r0, 0xf8(r30)
-/* 802F26C0 002EE320 3D 20 80 2F */ lis r9, lbl_802F30B4@ha
-/* 802F26C4 002EE324 38 DF DE 83 */ addi r6, r31, -8573
-/* 802F26C8 002EE328 80 E2 AA 30 */ lwz r7, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F26CC 002EE32C 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F26D0 002EE330 7C 65 1B 78 */ mr r5, r3
-/* 802F26D4 002EE334 7C 06 00 16 */ mulhwu r0, r6, r0
-/* 802F26D8 002EE338 38 67 6D 38 */ addi r3, r7, 0x6d38
-/* 802F26DC 002EE33C 7C 86 23 78 */ mr r6, r4
-/* 802F26E0 002EE340 39 29 30 B4 */ addi r9, r9, lbl_802F30B4@l
-/* 802F26E4 002EE344 38 E0 00 00 */ li r7, 0
-/* 802F26E8 002EE348 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F26EC 002EE34C 1C 00 41 50 */ mulli r0, r0, 0x4150
-/* 802F26F0 002EE350 54 08 E8 FE */ srwi r8, r0, 3
-/* 802F26F4 002EE354 4B F7 73 01 */ bl OSSetPeriodicAlarm
-/* 802F26F8 002EE358 4B F8 00 C1 */ bl OSGetTime
-/* 802F26FC 002EE35C 80 1E 00 F8 */ lwz r0, 0xf8(r30)
-/* 802F2700 002EE360 3D 20 80 2F */ lis r9, lbl_802F3144@ha
-/* 802F2704 002EE364 38 FF DE 83 */ addi r7, r31, -8573
-/* 802F2708 002EE368 3C A0 00 0F */ lis r5, 0x000F4240@ha
-/* 802F270C 002EE36C 54 06 F0 BE */ srwi r6, r0, 2
-/* 802F2710 002EE370 81 02 AA 30 */ lwz r8, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2714 002EE374 7C E7 30 16 */ mulhwu r7, r7, r6
-/* 802F2718 002EE378 38 05 42 40 */ addi r0, r5, 0x000F4240@l
-/* 802F271C 002EE37C 7C 86 23 78 */ mr r6, r4
-/* 802F2720 002EE380 7C 65 1B 78 */ mr r5, r3
-/* 802F2724 002EE384 38 68 6D 68 */ addi r3, r8, 0x6d68
-/* 802F2728 002EE388 39 29 31 44 */ addi r9, r9, lbl_802F3144@l
-/* 802F272C 002EE38C 54 E4 8B FE */ srwi r4, r7, 0xf
-/* 802F2730 002EE390 38 E0 00 00 */ li r7, 0
-/* 802F2734 002EE394 7C 04 01 D6 */ mullw r0, r4, r0
-/* 802F2738 002EE398 54 08 E8 FE */ srwi r8, r0, 3
-/* 802F273C 002EE39C 4B F7 72 B9 */ bl OSSetPeriodicAlarm
-/* 802F2740 002EE3A0 38 60 00 00 */ li r3, 0
-lbl_802F2744:
-/* 802F2744 002EE3A4 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F2748 002EE3A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F274C 002EE3AC 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F2750 002EE3B0 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F2754 002EE3B4 7C 08 03 A6 */ mtlr r0
-/* 802F2758 002EE3B8 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F275C 002EE3BC 4E 80 00 20 */ blr
-
-.global func_802F2760
-func_802F2760:
-/* 802F2760 002EE3C0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F2764 002EE3C4 7C 08 02 A6 */ mflr r0
-/* 802F2768 002EE3C8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F276C 002EE3CC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F2770 002EE3D0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2774 002EE3D4 93 C1 00 08 */ stw r30, 8(r1)
-/* 802F2778 002EE3D8 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F277C 002EE3DC 41 82 00 74 */ beq lbl_802F27F0
-/* 802F2780 002EE3E0 A0 1F 6C B8 */ lhz r0, 0x6cb8(r31)
-/* 802F2784 002EE3E4 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2788 002EE3E8 41 82 00 10 */ beq lbl_802F2798
-/* 802F278C 002EE3EC 38 7F 69 F0 */ addi r3, r31, 0x69f0
-/* 802F2790 002EE3F0 38 80 00 00 */ li r4, 0
-/* 802F2794 002EE3F4 4B F7 F6 75 */ bl OSJoinThread
-lbl_802F2798:
-/* 802F2798 002EE3F8 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F279C 002EE3FC 38 80 00 00 */ li r4, 0
-/* 802F27A0 002EE400 38 A0 03 18 */ li r5, 0x318
-/* 802F27A4 002EE404 38 7E 69 F0 */ addi r3, r30, 0x69f0
-/* 802F27A8 002EE408 4B D1 19 5D */ bl memset
-/* 802F27AC 002EE40C A0 1E 69 A0 */ lhz r0, 0x69a0(r30)
-/* 802F27B0 002EE410 2C 00 00 00 */ cmpwi r0, 0
-/* 802F27B4 002EE414 41 82 00 10 */ beq lbl_802F27C4
-/* 802F27B8 002EE418 38 7F 66 D8 */ addi r3, r31, 0x66d8
-/* 802F27BC 002EE41C 38 80 00 00 */ li r4, 0
-/* 802F27C0 002EE420 4B F7 F6 49 */ bl OSJoinThread
-lbl_802F27C4:
-/* 802F27C4 002EE424 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F27C8 002EE428 38 80 00 00 */ li r4, 0
-/* 802F27CC 002EE42C 38 A0 03 18 */ li r5, 0x318
-/* 802F27D0 002EE430 38 7E 66 D8 */ addi r3, r30, 0x66d8
-/* 802F27D4 002EE434 4B D1 19 31 */ bl memset
-/* 802F27D8 002EE438 38 7E 6D 68 */ addi r3, r30, 0x6d68
-/* 802F27DC 002EE43C 4B F7 72 9D */ bl OSCancelAlarm
-/* 802F27E0 002EE440 38 7E 6D 38 */ addi r3, r30, 0x6d38
-/* 802F27E4 002EE444 4B F7 72 95 */ bl OSCancelAlarm
-/* 802F27E8 002EE448 38 7E 6D 08 */ addi r3, r30, 0x6d08
-/* 802F27EC 002EE44C 4B F7 72 8D */ bl OSCancelAlarm
-lbl_802F27F0:
-/* 802F27F0 002EE450 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F27F4 002EE454 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F27F8 002EE458 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F27FC 002EE45C 7C 08 03 A6 */ mtlr r0
-/* 802F2800 002EE460 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F2804 002EE464 4E 80 00 20 */ blr
-
-.global func_802F2808
-func_802F2808:
-/* 802F2808 002EE468 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F280C 002EE46C 7C 08 02 A6 */ mflr r0
-/* 802F2810 002EE470 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F2814 002EE474 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F2818 002EE478 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F281C 002EE47C 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F2820 002EE480 41 82 00 24 */ beq lbl_802F2844
-/* 802F2824 002EE484 38 7F 66 34 */ addi r3, r31, 0x6634
-/* 802F2828 002EE488 38 80 00 00 */ li r4, 0
-/* 802F282C 002EE48C 38 A0 00 80 */ li r5, 0x80
-/* 802F2830 002EE490 4B D1 18 D5 */ bl memset
-/* 802F2834 002EE494 38 7F 66 D4 */ addi r3, r31, 0x66d4
-/* 802F2838 002EE498 38 80 00 00 */ li r4, 0
-/* 802F283C 002EE49C 38 A0 00 04 */ li r5, 4
-/* 802F2840 002EE4A0 4B D1 18 C5 */ bl memset
-lbl_802F2844:
-/* 802F2844 002EE4A4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F2848 002EE4A8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F284C 002EE4AC 7C 08 03 A6 */ mtlr r0
-/* 802F2850 002EE4B0 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F2854 002EE4B4 4E 80 00 20 */ blr
-
-.global func_802F2858
-func_802F2858:
-/* 802F2858 002EE4B8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F285C 002EE4BC 7C 08 02 A6 */ mflr r0
-/* 802F2860 002EE4C0 38 A0 00 01 */ li r5, 1
-/* 802F2864 002EE4C4 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F2868 002EE4C8 38 81 00 08 */ addi r4, r1, 8
-/* 802F286C 002EE4CC 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F2870 002EE4D0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2874 002EE4D4 38 7F 74 38 */ addi r3, r31, 0x7438
-/* 802F2878 002EE4D8 4B F7 C7 A9 */ bl OSReceiveMessage
-/* 802F287C 002EE4DC 80 81 00 08 */ lwz r4, 8(r1)
-/* 802F2880 002EE4E0 38 00 00 00 */ li r0, 0
-/* 802F2884 002EE4E4 38 7F 66 14 */ addi r3, r31, 0x6614
-/* 802F2888 002EE4E8 38 A0 00 01 */ li r5, 1
-/* 802F288C 002EE4EC 90 04 00 00 */ stw r0, 0(r4)
-/* 802F2890 002EE4F0 90 04 00 04 */ stw r0, 4(r4)
-/* 802F2894 002EE4F4 4B F7 C6 C5 */ bl OSSendMessage
-/* 802F2898 002EE4F8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F289C 002EE4FC 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F28A0 002EE500 7C 08 03 A6 */ mtlr r0
-/* 802F28A4 002EE504 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F28A8 002EE508 4E 80 00 20 */ blr
-lbl_802F28AC:
-/* 802F28AC 002EE50C 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F28B0 002EE510 7C 08 02 A6 */ mflr r0
-/* 802F28B4 002EE514 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F28B8 002EE518 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F28BC 002EE51C 4B ED 48 6D */ bl _savegpr_27
-/* 802F28C0 002EE520 83 82 AA 30 */ lwz r28, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F28C4 002EE524 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F28C8 002EE528 40 82 00 0C */ bne lbl_802F28D4
-/* 802F28CC 002EE52C 38 60 00 00 */ li r3, 0
-/* 802F28D0 002EE530 48 00 00 70 */ b lbl_802F2940
-lbl_802F28D4:
-/* 802F28D4 002EE534 3B 7C 31 40 */ addi r27, r28, 0x3140
-/* 802F28D8 002EE538 3B DC 74 38 */ addi r30, r28, 0x7438
-/* 802F28DC 002EE53C 3B BC 66 14 */ addi r29, r28, 0x6614
-lbl_802F28E0:
-/* 802F28E0 002EE540 7F 63 DB 78 */ mr r3, r27
-/* 802F28E4 002EE544 38 80 20 00 */ li r4, 0x2000
-/* 802F28E8 002EE548 4B FF E6 C5 */ bl MPiReceiveFrame
-/* 802F28EC 002EE54C 3C 03 80 00 */ addis r0, r3, 0x8000
-/* 802F28F0 002EE550 7C 7F 1B 78 */ mr r31, r3
-/* 802F28F4 002EE554 28 00 80 00 */ cmplwi r0, 0x8000
-/* 802F28F8 002EE558 40 82 00 18 */ bne lbl_802F2910
-/* 802F28FC 002EE55C 38 7C 66 14 */ addi r3, r28, 0x6614
-/* 802F2900 002EE560 38 80 00 00 */ li r4, 0
-/* 802F2904 002EE564 38 A0 00 01 */ li r5, 1
-/* 802F2908 002EE568 4B F7 C6 51 */ bl OSSendMessage
-/* 802F290C 002EE56C 48 00 00 30 */ b lbl_802F293C
-lbl_802F2910:
-/* 802F2910 002EE570 7F C3 F3 78 */ mr r3, r30
-/* 802F2914 002EE574 38 81 00 08 */ addi r4, r1, 8
-/* 802F2918 002EE578 38 A0 00 01 */ li r5, 1
-/* 802F291C 002EE57C 4B F7 C7 05 */ bl OSReceiveMessage
-/* 802F2920 002EE580 80 81 00 08 */ lwz r4, 8(r1)
-/* 802F2924 002EE584 7F A3 EB 78 */ mr r3, r29
-/* 802F2928 002EE588 38 A0 00 01 */ li r5, 1
-/* 802F292C 002EE58C 93 64 00 00 */ stw r27, 0(r4)
-/* 802F2930 002EE590 93 E4 00 04 */ stw r31, 4(r4)
-/* 802F2934 002EE594 4B F7 C6 25 */ bl OSSendMessage
-/* 802F2938 002EE598 4B FF FF A8 */ b lbl_802F28E0
-lbl_802F293C:
-/* 802F293C 002EE59C 38 60 00 00 */ li r3, 0
-lbl_802F2940:
-/* 802F2940 002EE5A0 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2944 002EE5A4 4B ED 48 31 */ bl _restgpr_27
-/* 802F2948 002EE5A8 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F294C 002EE5AC 7C 08 03 A6 */ mtlr r0
-/* 802F2950 002EE5B0 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F2954 002EE5B4 4E 80 00 20 */ blr
-lbl_802F2958:
-/* 802F2958 002EE5B8 94 21 FF B0 */ stwu r1, -0x50(r1)
-/* 802F295C 002EE5BC 7C 08 02 A6 */ mflr r0
-/* 802F2960 002EE5C0 90 01 00 54 */ stw r0, 0x54(r1)
-/* 802F2964 002EE5C4 39 61 00 50 */ addi r11, r1, 0x50
-/* 802F2968 002EE5C8 4B ED 47 A9 */ bl _savegpr_21
-/* 802F296C 002EE5CC 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2970 002EE5D0 3B A0 00 00 */ li r29, 0
-/* 802F2974 002EE5D4 3B E0 00 00 */ li r31, 0
-/* 802F2978 002EE5D8 3F 20 80 00 */ lis r25, 0x8000
-/* 802F297C 002EE5DC 3F 40 43 1C */ lis r26, 0x431c
-/* 802F2980 002EE5E0 3F 60 80 2F */ lis r27, 0x802f
-/* 802F2984 002EE5E4 48 00 00 80 */ b lbl_802F2A04
-lbl_802F2988:
-/* 802F2988 002EE5E8 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F298C 002EE5EC 38 81 00 10 */ addi r4, r1, 0x10
-/* 802F2990 002EE5F0 38 A0 00 00 */ li r5, 0
-/* 802F2994 002EE5F4 38 63 66 14 */ addi r3, r3, 0x6614
-/* 802F2998 002EE5F8 4B F7 C6 89 */ bl OSReceiveMessage
-/* 802F299C 002EE5FC 2C 03 00 00 */ cmpwi r3, 0
-/* 802F29A0 002EE600 41 82 00 14 */ beq lbl_802F29B4
-/* 802F29A4 002EE604 80 01 00 10 */ lwz r0, 0x10(r1)
-/* 802F29A8 002EE608 7C 00 F8 40 */ cmplw r0, r31
-/* 802F29AC 002EE60C 40 82 00 08 */ bne lbl_802F29B4
-/* 802F29B0 002EE610 48 00 02 D4 */ b lbl_802F2C84
-lbl_802F29B4:
-/* 802F29B4 002EE614 38 60 00 20 */ li r3, 0x20
-/* 802F29B8 002EE618 4B FF F1 55 */ bl MPiClearSendQueue
-/* 802F29BC 002EE61C 80 19 00 F8 */ lwz r0, 0xf8(r25)
-/* 802F29C0 002EE620 38 7A DE 83 */ addi r3, r26, -8573
-/* 802F29C4 002EE624 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F29C8 002EE628 38 FB 30 78 */ addi r7, r27, 0x3078
-/* 802F29CC 002EE62C 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F29D0 002EE630 38 A0 00 00 */ li r5, 0
-/* 802F29D4 002EE634 7C 03 00 16 */ mulhwu r0, r3, r0
-/* 802F29D8 002EE638 38 64 6D 08 */ addi r3, r4, 0x6d08
-/* 802F29DC 002EE63C 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F29E0 002EE640 1C 00 03 E8 */ mulli r0, r0, 0x3e8
-/* 802F29E4 002EE644 54 06 E8 FE */ srwi r6, r0, 3
-/* 802F29E8 002EE648 4B F7 6F 9D */ bl OSSetAlarm
-/* 802F29EC 002EE64C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F29F0 002EE650 38 63 6D 98 */ addi r3, r3, 0x6d98
-/* 802F29F4 002EE654 4B F7 E4 CD */ bl OSWaitSemaphore
-/* 802F29F8 002EE658 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F29FC 002EE65C 38 63 6D A4 */ addi r3, r3, 0x6da4
-/* 802F2A00 002EE660 4B F7 E4 C1 */ bl OSWaitSemaphore
-lbl_802F2A04:
-/* 802F2A04 002EE664 80 1E 57 64 */ lwz r0, 0x5764(r30)
-/* 802F2A08 002EE668 7C 00 00 34 */ cntlzw r0, r0
-/* 802F2A0C 002EE66C 54 00 D9 7F */ rlwinm. r0, r0, 0x1b, 5, 0x1f
-/* 802F2A10 002EE670 40 82 FF 78 */ bne lbl_802F2988
-/* 802F2A14 002EE674 38 7E 66 B4 */ addi r3, r30, 0x66b4
-/* 802F2A18 002EE678 38 81 00 10 */ addi r4, r1, 0x10
-/* 802F2A1C 002EE67C 38 A0 00 00 */ li r5, 0
-/* 802F2A20 002EE680 4B F7 C6 01 */ bl OSReceiveMessage
-/* 802F2A24 002EE684 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2A28 002EE688 41 82 00 1C */ beq lbl_802F2A44
-/* 802F2A2C 002EE68C 48 00 02 75 */ bl func_802F2CA0
-/* 802F2A30 002EE690 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2A34 002EE694 80 03 00 38 */ lwz r0, 0x38(r3)
-/* 802F2A38 002EE698 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2A3C 002EE69C 40 82 00 08 */ bne lbl_802F2A44
-/* 802F2A40 002EE6A0 4B FF E5 D5 */ bl MPiChangeVTSF
-lbl_802F2A44:
-/* 802F2A44 002EE6A4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2A48 002EE6A8 38 81 00 10 */ addi r4, r1, 0x10
-/* 802F2A4C 002EE6AC 38 A0 00 00 */ li r5, 0
-/* 802F2A50 002EE6B0 38 63 6D B0 */ addi r3, r3, 0x6db0
-/* 802F2A54 002EE6B4 4B F7 C5 CD */ bl OSReceiveMessage
-/* 802F2A58 002EE6B8 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2A5C 002EE6BC 41 82 00 44 */ beq lbl_802F2AA0
-/* 802F2A60 002EE6C0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2A64 002EE6C4 80 03 00 38 */ lwz r0, 0x38(r3)
-/* 802F2A68 002EE6C8 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2A6C 002EE6CC 41 82 00 08 */ beq lbl_802F2A74
-/* 802F2A70 002EE6D0 4B FF E5 A5 */ bl MPiChangeVTSF
-lbl_802F2A74:
-/* 802F2A74 002EE6D4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2A78 002EE6D8 80 03 00 38 */ lwz r0, 0x38(r3)
-/* 802F2A7C 002EE6DC 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2A80 002EE6E0 40 81 00 0C */ ble lbl_802F2A8C
-/* 802F2A84 002EE6E4 2C 00 00 06 */ cmpwi r0, 6
-/* 802F2A88 002EE6E8 40 81 00 08 */ ble lbl_802F2A90
-lbl_802F2A8C:
-/* 802F2A8C 002EE6EC 38 00 00 06 */ li r0, 6
-lbl_802F2A90:
-/* 802F2A90 002EE6F0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2A94 002EE6F4 90 03 6D E0 */ stw r0, 0x6de0(r3)
-/* 802F2A98 002EE6F8 80 03 57 64 */ lwz r0, 0x5764(r3)
-/* 802F2A9C 002EE6FC 54 1D 04 3E */ clrlwi r29, r0, 0x10
-lbl_802F2AA0:
-/* 802F2AA0 002EE700 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2AA4 002EE704 80 03 6D E0 */ lwz r0, 0x6de0(r3)
-/* 802F2AA8 002EE708 2C 00 00 01 */ cmpwi r0, 1
-/* 802F2AAC 002EE70C 41 81 00 0C */ bgt lbl_802F2AB8
-/* 802F2AB0 002EE710 3B 80 00 01 */ li r28, 1
-/* 802F2AB4 002EE714 48 00 00 08 */ b lbl_802F2ABC
-lbl_802F2AB8:
-/* 802F2AB8 002EE718 3B 80 00 00 */ li r28, 0
-lbl_802F2ABC:
-/* 802F2ABC 002EE71C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2AC0 002EE720 7F A5 EB 78 */ mr r5, r29
-/* 802F2AC4 002EE724 7F 86 E3 78 */ mr r6, r28
-/* 802F2AC8 002EE728 38 80 04 00 */ li r4, 0x400
-/* 802F2ACC 002EE72C 38 63 51 40 */ addi r3, r3, 0x5140
-/* 802F2AD0 002EE730 4B FF EE 2D */ bl MPiMakeSendFrame
-/* 802F2AD4 002EE734 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2AD8 002EE738 40 80 00 08 */ bge lbl_802F2AE0
-/* 802F2ADC 002EE73C 4B FF FF 28 */ b lbl_802F2A04
-lbl_802F2AE0:
-/* 802F2AE0 002EE740 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2AE4 002EE744 7C 76 1B 78 */ mr r22, r3
-/* 802F2AE8 002EE748 38 80 00 00 */ li r4, 0
-/* 802F2AEC 002EE74C 38 A0 00 10 */ li r5, 0x10
-/* 802F2AF0 002EE750 38 66 55 40 */ addi r3, r6, 0x5540
-/* 802F2AF4 002EE754 4B D1 16 11 */ bl memset
-/* 802F2AF8 002EE758 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2AFC 002EE75C 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F2B00 002EE760 B3 E5 55 40 */ sth r31, 0x5540(r5)
-/* 802F2B04 002EE764 B3 E5 55 42 */ sth r31, 0x5542(r5)
-/* 802F2B08 002EE768 B3 E5 55 44 */ sth r31, 0x5544(r5)
-/* 802F2B0C 002EE76C 80 65 00 2C */ lwz r3, 0x2c(r5)
-/* 802F2B10 002EE770 38 03 00 04 */ addi r0, r3, 4
-/* 802F2B14 002EE774 B0 05 55 46 */ sth r0, 0x5546(r5)
-/* 802F2B18 002EE778 B3 A5 55 48 */ sth r29, 0x5548(r5)
-/* 802F2B1C 002EE77C 41 82 00 20 */ beq lbl_802F2B3C
-/* 802F2B20 002EE780 A0 85 55 46 */ lhz r4, 0x5546(r5)
-/* 802F2B24 002EE784 7E C3 B3 78 */ mr r3, r22
-/* 802F2B28 002EE788 A0 A5 55 48 */ lhz r5, 0x5548(r5)
-/* 802F2B2C 002EE78C 48 00 04 7D */ bl func_802F2FA8
-/* 802F2B30 002EE790 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2B34 002EE794 B0 64 55 4A */ sth r3, 0x554a(r4)
-/* 802F2B38 002EE798 48 00 00 08 */ b lbl_802F2B40
-lbl_802F2B3C:
-/* 802F2B3C 002EE79C B3 E5 55 4A */ sth r31, 0x554a(r5)
-lbl_802F2B40:
-/* 802F2B40 002EE7A0 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2B44 002EE7A4 7E C4 B3 78 */ mr r4, r22
-/* 802F2B48 002EE7A8 B3 E6 55 4C */ sth r31, 0x554c(r6)
-/* 802F2B4C 002EE7AC 38 66 51 40 */ addi r3, r6, 0x5140
-/* 802F2B50 002EE7B0 38 A6 55 40 */ addi r5, r6, 0x5540
-/* 802F2B54 002EE7B4 A2 A6 55 48 */ lhz r21, 0x5548(r6)
-/* 802F2B58 002EE7B8 4B FF E4 29 */ bl MPiSendFrame
-/* 802F2B5C 002EE7BC 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2B60 002EE7C0 40 82 00 68 */ bne lbl_802F2BC8
-/* 802F2B64 002EE7C4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2B68 002EE7C8 38 81 00 0C */ addi r4, r1, 0xc
-/* 802F2B6C 002EE7CC 38 A0 00 01 */ li r5, 1
-/* 802F2B70 002EE7D0 38 63 66 14 */ addi r3, r3, 0x6614
-/* 802F2B74 002EE7D4 4B F7 C4 AD */ bl OSReceiveMessage
-/* 802F2B78 002EE7D8 83 01 00 0C */ lwz r24, 0xc(r1)
-/* 802F2B7C 002EE7DC 7C 18 F8 40 */ cmplw r24, r31
-/* 802F2B80 002EE7E0 40 82 00 08 */ bne lbl_802F2B88
-/* 802F2B84 002EE7E4 48 00 01 00 */ b lbl_802F2C84
-lbl_802F2B88:
-/* 802F2B88 002EE7E8 82 F8 00 00 */ lwz r23, 0(r24)
-/* 802F2B8C 002EE7EC 7F 03 C3 78 */ mr r3, r24
-/* 802F2B90 002EE7F0 82 D8 00 04 */ lwz r22, 4(r24)
-/* 802F2B94 002EE7F4 38 80 00 00 */ li r4, 0
-/* 802F2B98 002EE7F8 38 A0 00 08 */ li r5, 8
-/* 802F2B9C 002EE7FC 4B D1 15 69 */ bl memset
-/* 802F2BA0 002EE800 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2BA4 002EE804 7F 04 C3 78 */ mr r4, r24
-/* 802F2BA8 002EE808 38 A0 00 01 */ li r5, 1
-/* 802F2BAC 002EE80C 38 63 74 38 */ addi r3, r3, 0x7438
-/* 802F2BB0 002EE810 4B F7 C3 A9 */ bl OSSendMessage
-/* 802F2BB4 002EE814 7E E3 BB 78 */ mr r3, r23
-/* 802F2BB8 002EE818 7E C4 B3 78 */ mr r4, r22
-/* 802F2BBC 002EE81C 7E A5 AB 78 */ mr r5, r21
-/* 802F2BC0 002EE820 48 00 02 3D */ bl func_802F2DFC
-/* 802F2BC4 002EE824 48 00 00 34 */ b lbl_802F2BF8
-lbl_802F2BC8:
-/* 802F2BC8 002EE828 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2BCC 002EE82C 38 81 00 08 */ addi r4, r1, 8
-/* 802F2BD0 002EE830 38 A0 00 00 */ li r5, 0
-/* 802F2BD4 002EE834 38 63 66 14 */ addi r3, r3, 0x6614
-/* 802F2BD8 002EE838 4B F7 C4 49 */ bl OSReceiveMessage
-/* 802F2BDC 002EE83C 2C 03 00 01 */ cmpwi r3, 1
-/* 802F2BE0 002EE840 40 82 00 14 */ bne lbl_802F2BF4
-/* 802F2BE4 002EE844 80 01 00 08 */ lwz r0, 8(r1)
-/* 802F2BE8 002EE848 7C 00 F8 40 */ cmplw r0, r31
-/* 802F2BEC 002EE84C 40 82 00 08 */ bne lbl_802F2BF4
-/* 802F2BF0 002EE850 48 00 00 94 */ b lbl_802F2C84
-lbl_802F2BF4:
-/* 802F2BF4 002EE854 38 60 00 00 */ li r3, 0
-lbl_802F2BF8:
-/* 802F2BF8 002EE858 56 A0 04 3C */ rlwinm r0, r21, 0, 0x10, 0x1e
-/* 802F2BFC 002EE85C 7C 00 18 40 */ cmplw r0, r3
-/* 802F2C00 002EE860 40 82 00 20 */ bne lbl_802F2C20
-/* 802F2C04 002EE864 4B F7 BB 59 */ bl OSDisableInterrupts
-/* 802F2C08 002EE868 80 A2 AA 30 */ lwz r5, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2C0C 002EE86C 80 85 6D E0 */ lwz r4, 0x6de0(r5)
-/* 802F2C10 002EE870 38 04 FF FF */ addi r0, r4, -1
-/* 802F2C14 002EE874 90 05 6D E0 */ stw r0, 0x6de0(r5)
-/* 802F2C18 002EE878 4B F7 BB 6D */ bl OSRestoreInterrupts
-/* 802F2C1C 002EE87C 48 00 00 10 */ b lbl_802F2C2C
-lbl_802F2C20:
-/* 802F2C20 002EE880 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F2C24 002EE884 41 82 00 08 */ beq lbl_802F2C2C
-/* 802F2C28 002EE888 7F BD 18 78 */ andc r29, r29, r3
-lbl_802F2C2C:
-/* 802F2C2C 002EE88C 80 19 00 F8 */ lwz r0, 0xf8(r25)
-/* 802F2C30 002EE890 38 7A DE 83 */ addi r3, r26, -8573
-/* 802F2C34 002EE894 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2C38 002EE898 38 FB 30 78 */ addi r7, r27, 0x3078
-/* 802F2C3C 002EE89C 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F2C40 002EE8A0 38 A0 00 00 */ li r5, 0
-/* 802F2C44 002EE8A4 7C 03 00 16 */ mulhwu r0, r3, r0
-/* 802F2C48 002EE8A8 38 64 6D 08 */ addi r3, r4, 0x6d08
-/* 802F2C4C 002EE8AC 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F2C50 002EE8B0 1C 00 03 E8 */ mulli r0, r0, 0x3e8
-/* 802F2C54 002EE8B4 54 06 E8 FE */ srwi r6, r0, 3
-/* 802F2C58 002EE8B8 4B F7 6D 2D */ bl OSSetAlarm
-/* 802F2C5C 002EE8BC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2C60 002EE8C0 38 63 6D 98 */ addi r3, r3, 0x6d98
-/* 802F2C64 002EE8C4 4B F7 E2 5D */ bl OSWaitSemaphore
-/* 802F2C68 002EE8C8 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2C6C 002EE8CC 80 03 6D E0 */ lwz r0, 0x6de0(r3)
-/* 802F2C70 002EE8D0 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2C74 002EE8D4 41 81 FD 90 */ bgt lbl_802F2A04
-/* 802F2C78 002EE8D8 38 63 6D A4 */ addi r3, r3, 0x6da4
-/* 802F2C7C 002EE8DC 4B F7 E2 45 */ bl OSWaitSemaphore
-/* 802F2C80 002EE8E0 4B FF FD 84 */ b lbl_802F2A04
-lbl_802F2C84:
-/* 802F2C84 002EE8E4 39 61 00 50 */ addi r11, r1, 0x50
-/* 802F2C88 002EE8E8 38 60 00 00 */ li r3, 0
-/* 802F2C8C 002EE8EC 4B ED 44 D1 */ bl _restgpr_21
-/* 802F2C90 002EE8F0 80 01 00 54 */ lwz r0, 0x54(r1)
-/* 802F2C94 002EE8F4 7C 08 03 A6 */ mtlr r0
-/* 802F2C98 002EE8F8 38 21 00 50 */ addi r1, r1, 0x50
-/* 802F2C9C 002EE8FC 4E 80 00 20 */ blr
-
-.global func_802F2CA0
-func_802F2CA0:
-/* 802F2CA0 002EE900 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F2CA4 002EE904 7C 08 02 A6 */ mflr r0
-/* 802F2CA8 002EE908 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F2CAC 002EE90C 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2CB0 002EE910 4B ED 44 69 */ bl _savegpr_23
-/* 802F2CB4 002EE914 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2CB8 002EE918 83 C3 00 1C */ lwz r30, 0x1c(r3)
-/* 802F2CBC 002EE91C 2C 1E 00 00 */ cmpwi r30, 0
-/* 802F2CC0 002EE920 41 82 01 24 */ beq lbl_802F2DE4
-/* 802F2CC4 002EE924 4B F7 FB 0D */ bl OSGetTick
-/* 802F2CC8 002EE928 3F 40 80 00 */ lis r26, 0x800000F8@ha
-/* 802F2CCC 002EE92C 3F 20 10 62 */ lis r25, 0x10624DD3@ha
-/* 802F2CD0 002EE930 80 9A 00 F8 */ lwz r4, 0x800000F8@l(r26)
-/* 802F2CD4 002EE934 38 B9 4D D3 */ addi r5, r25, 0x10624DD3@l
-/* 802F2CD8 002EE938 57 C0 08 3C */ slwi r0, r30, 1
-/* 802F2CDC 002EE93C 54 84 F0 BE */ srwi r4, r4, 2
-/* 802F2CE0 002EE940 7C 85 20 16 */ mulhwu r4, r5, r4
-/* 802F2CE4 002EE944 54 84 D1 BE */ srwi r4, r4, 6
-/* 802F2CE8 002EE948 7C 04 01 D6 */ mullw r0, r4, r0
-/* 802F2CEC 002EE94C 7F E0 18 50 */ subf r31, r0, r3
-/* 802F2CF0 002EE950 4B F7 FA E1 */ bl OSGetTick
-/* 802F2CF4 002EE954 80 1A 00 F8 */ lwz r0, 0xf8(r26)
-/* 802F2CF8 002EE958 38 99 4D D3 */ addi r4, r25, 0x4dd3
-/* 802F2CFC 002EE95C 3B A0 00 00 */ li r29, 0
-/* 802F2D00 002EE960 3B 80 00 00 */ li r28, 0
-/* 802F2D04 002EE964 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F2D08 002EE968 7C 04 00 16 */ mulhwu r0, r4, r0
-/* 802F2D0C 002EE96C 54 00 D1 BE */ srwi r0, r0, 6
-/* 802F2D10 002EE970 7C 1E 01 D6 */ mullw r0, r30, r0
-/* 802F2D14 002EE974 7F 00 18 50 */ subf r24, r0, r3
-/* 802F2D18 002EE978 4B F7 BA 45 */ bl OSDisableInterrupts
-/* 802F2D1C 002EE97C 7C 77 1B 78 */ mr r23, r3
-/* 802F2D20 002EE980 4B FF F0 79 */ bl func_802F1D98
-/* 802F2D24 002EE984 7C 79 1B 78 */ mr r25, r3
-/* 802F2D28 002EE988 3B C0 00 01 */ li r30, 1
-/* 802F2D2C 002EE98C 3B 60 00 02 */ li r27, 2
-/* 802F2D30 002EE990 3B 40 00 01 */ li r26, 1
-lbl_802F2D34:
-/* 802F2D34 002EE994 7F 40 F0 30 */ slw r0, r26, r30
-/* 802F2D38 002EE998 7F 20 00 39 */ and. r0, r25, r0
-/* 802F2D3C 002EE99C 41 82 00 54 */ beq lbl_802F2D90
-/* 802F2D40 002EE9A0 7F C3 F3 78 */ mr r3, r30
-/* 802F2D44 002EE9A4 7F 04 C3 78 */ mr r4, r24
-/* 802F2D48 002EE9A8 4B FF F5 B1 */ bl func_802F22F8
-/* 802F2D4C 002EE9AC 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2D50 002EE9B0 41 82 00 40 */ beq lbl_802F2D90
-/* 802F2D54 002EE9B4 80 02 AA 30 */ lwz r0, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F2D58 002EE9B8 7C 60 DA 14 */ add r3, r0, r27
-/* 802F2D5C 002EE9BC A0 03 65 04 */ lhz r0, 0x6504(r3)
-/* 802F2D60 002EE9C0 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2D64 002EE9C4 40 82 00 10 */ bne lbl_802F2D74
-/* 802F2D68 002EE9C8 7F 40 F0 30 */ slw r0, r26, r30
-/* 802F2D6C 002EE9CC 7F BD 03 78 */ or r29, r29, r0
-/* 802F2D70 002EE9D0 48 00 00 20 */ b lbl_802F2D90
-lbl_802F2D74:
-/* 802F2D74 002EE9D4 7F C3 F3 78 */ mr r3, r30
-/* 802F2D78 002EE9D8 7F E4 FB 78 */ mr r4, r31
-/* 802F2D7C 002EE9DC 4B FF F5 7D */ bl func_802F22F8
-/* 802F2D80 002EE9E0 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2D84 002EE9E4 41 82 00 0C */ beq lbl_802F2D90
-/* 802F2D88 002EE9E8 7F 40 F0 30 */ slw r0, r26, r30
-/* 802F2D8C 002EE9EC 7F 9C 03 78 */ or r28, r28, r0
-lbl_802F2D90:
-/* 802F2D90 002EE9F0 3B DE 00 01 */ addi r30, r30, 1
-/* 802F2D94 002EE9F4 3B 7B 00 02 */ addi r27, r27, 2
-/* 802F2D98 002EE9F8 28 1E 00 10 */ cmplwi r30, 0x10
-/* 802F2D9C 002EE9FC 41 80 FF 98 */ blt lbl_802F2D34
-/* 802F2DA0 002EEA00 7E E3 BB 78 */ mr r3, r23
-/* 802F2DA4 002EEA04 4B F7 B9 E1 */ bl OSRestoreInterrupts
-/* 802F2DA8 002EEA08 3B C0 00 01 */ li r30, 1
-/* 802F2DAC 002EEA0C 3B 60 00 01 */ li r27, 1
-lbl_802F2DB0:
-/* 802F2DB0 002EEA10 7F 63 F0 30 */ slw r3, r27, r30
-/* 802F2DB4 002EEA14 7F A0 18 39 */ and. r0, r29, r3
-/* 802F2DB8 002EEA18 41 82 00 10 */ beq lbl_802F2DC8
-/* 802F2DBC 002EEA1C 7F C3 F3 78 */ mr r3, r30
-/* 802F2DC0 002EEA20 4B FF F5 55 */ bl func_802F2314
-/* 802F2DC4 002EEA24 48 00 00 14 */ b lbl_802F2DD8
-lbl_802F2DC8:
-/* 802F2DC8 002EEA28 7F 80 18 39 */ and. r0, r28, r3
-/* 802F2DCC 002EEA2C 41 82 00 0C */ beq lbl_802F2DD8
-/* 802F2DD0 002EEA30 7F C3 F3 78 */ mr r3, r30
-/* 802F2DD4 002EEA34 4B FF F5 4D */ bl func_802F2320
-lbl_802F2DD8:
-/* 802F2DD8 002EEA38 3B DE 00 01 */ addi r30, r30, 1
-/* 802F2DDC 002EEA3C 28 1E 00 10 */ cmplwi r30, 0x10
-/* 802F2DE0 002EEA40 41 80 FF D0 */ blt lbl_802F2DB0
-lbl_802F2DE4:
-/* 802F2DE4 002EEA44 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F2DE8 002EEA48 4B ED 43 7D */ bl _restgpr_23
-/* 802F2DEC 002EEA4C 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F2DF0 002EEA50 7C 08 03 A6 */ mtlr r0
-/* 802F2DF4 002EEA54 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F2DF8 002EEA58 4E 80 00 20 */ blr
-
-.global func_802F2DFC
-func_802F2DFC:
-/* 802F2DFC 002EEA5C 94 21 FF A0 */ stwu r1, -0x60(r1)
-/* 802F2E00 002EEA60 7C 08 02 A6 */ mflr r0
-/* 802F2E04 002EEA64 90 01 00 64 */ stw r0, 0x64(r1)
-/* 802F2E08 002EEA68 39 61 00 60 */ addi r11, r1, 0x60
-/* 802F2E0C 002EEA6C 4B ED 43 19 */ bl _savegpr_26
-/* 802F2E10 002EEA70 38 00 00 00 */ li r0, 0
-/* 802F2E14 002EEA74 2C 03 00 00 */ cmpwi r3, 0
-/* 802F2E18 002EEA78 90 01 00 08 */ stw r0, 8(r1)
-/* 802F2E1C 002EEA7C 7C 7D 1B 78 */ mr r29, r3
-/* 802F2E20 002EEA80 7C BE 2B 78 */ mr r30, r5
-/* 802F2E24 002EEA84 3B E0 00 00 */ li r31, 0
-/* 802F2E28 002EEA88 90 01 00 0C */ stw r0, 0xc(r1)
-/* 802F2E2C 002EEA8C 90 01 00 10 */ stw r0, 0x10(r1)
-/* 802F2E30 002EEA90 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F2E34 002EEA94 90 01 00 18 */ stw r0, 0x18(r1)
-/* 802F2E38 002EEA98 90 01 00 1C */ stw r0, 0x1c(r1)
-/* 802F2E3C 002EEA9C 90 01 00 20 */ stw r0, 0x20(r1)
-/* 802F2E40 002EEAA0 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F2E44 002EEAA4 90 01 00 28 */ stw r0, 0x28(r1)
-/* 802F2E48 002EEAA8 90 01 00 2C */ stw r0, 0x2c(r1)
-/* 802F2E4C 002EEAAC 90 01 00 30 */ stw r0, 0x30(r1)
-/* 802F2E50 002EEAB0 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F2E54 002EEAB4 90 01 00 38 */ stw r0, 0x38(r1)
-/* 802F2E58 002EEAB8 90 01 00 3C */ stw r0, 0x3c(r1)
-/* 802F2E5C 002EEABC 90 01 00 40 */ stw r0, 0x40(r1)
-/* 802F2E60 002EEAC0 41 82 00 9C */ beq lbl_802F2EFC
-/* 802F2E64 002EEAC4 A0 A3 00 04 */ lhz r5, 4(r3)
-/* 802F2E68 002EEAC8 A0 03 00 06 */ lhz r0, 6(r3)
-/* 802F2E6C 002EEACC 7C A5 01 D6 */ mullw r5, r5, r0
-/* 802F2E70 002EEAD0 38 05 00 0A */ addi r0, r5, 0xa
-/* 802F2E74 002EEAD4 54 00 04 3E */ clrlwi r0, r0, 0x10
-/* 802F2E78 002EEAD8 7C 04 00 40 */ cmplw r4, r0
-/* 802F2E7C 002EEADC 41 82 00 0C */ beq lbl_802F2E88
-/* 802F2E80 002EEAE0 38 60 00 00 */ li r3, 0
-/* 802F2E84 002EEAE4 48 00 01 0C */ b lbl_802F2F90
-lbl_802F2E88:
-/* 802F2E88 002EEAE8 A0 63 00 02 */ lhz r3, 2(r3)
-/* 802F2E8C 002EEAEC 48 00 0F 2D */ bl func_802F3DB8
-/* 802F2E90 002EEAF0 38 FD 00 0A */ addi r7, r29, 0xa
-/* 802F2E94 002EEAF4 38 A1 00 08 */ addi r5, r1, 8
-/* 802F2E98 002EEAF8 38 C0 00 00 */ li r6, 0
-/* 802F2E9C 002EEAFC 38 60 00 01 */ li r3, 1
-/* 802F2EA0 002EEB00 48 00 00 50 */ b lbl_802F2EF0
-lbl_802F2EA4:
-/* 802F2EA4 002EEB04 A0 07 00 04 */ lhz r0, 4(r7)
-/* 802F2EA8 002EEB08 2C 00 00 00 */ cmpwi r0, 0
-/* 802F2EAC 002EEB0C 41 82 00 38 */ beq lbl_802F2EE4
-/* 802F2EB0 002EEB10 41 82 00 4C */ beq lbl_802F2EFC
-/* 802F2EB4 002EEB14 28 00 00 10 */ cmplwi r0, 0x10
-/* 802F2EB8 002EEB18 40 80 00 44 */ bge lbl_802F2EFC
-/* 802F2EBC 002EEB1C A0 87 00 00 */ lhz r4, 0(r7)
-/* 802F2EC0 002EEB20 28 04 FF FF */ cmplwi r4, 0xffff
-/* 802F2EC4 002EEB24 41 82 00 20 */ beq lbl_802F2EE4
-/* 802F2EC8 002EEB28 2C 04 00 00 */ cmpwi r4, 0
-/* 802F2ECC 002EEB2C 41 82 00 18 */ beq lbl_802F2EE4
-/* 802F2ED0 002EEB30 54 04 13 BA */ rlwinm r4, r0, 2, 0xe, 0x1d
-/* 802F2ED4 002EEB34 7C 60 00 30 */ slw r0, r3, r0
-/* 802F2ED8 002EEB38 7C 85 22 14 */ add r4, r5, r4
-/* 802F2EDC 002EEB3C 90 E4 FF FC */ stw r7, -4(r4)
-/* 802F2EE0 002EEB40 7F FF 03 78 */ or r31, r31, r0
-lbl_802F2EE4:
-/* 802F2EE4 002EEB44 A0 1D 00 06 */ lhz r0, 6(r29)
-/* 802F2EE8 002EEB48 38 C6 00 01 */ addi r6, r6, 1
-/* 802F2EEC 002EEB4C 7C E7 02 14 */ add r7, r7, r0
-lbl_802F2EF0:
-/* 802F2EF0 002EEB50 A0 1D 00 04 */ lhz r0, 4(r29)
-/* 802F2EF4 002EEB54 7C 06 00 00 */ cmpw r6, r0
-/* 802F2EF8 002EEB58 41 80 FF AC */ blt lbl_802F2EA4
-lbl_802F2EFC:
-/* 802F2EFC 002EEB5C 3B 81 00 08 */ addi r28, r1, 8
-/* 802F2F00 002EEB60 3B 60 00 00 */ li r27, 0
-/* 802F2F04 002EEB64 3B A0 00 01 */ li r29, 1
-lbl_802F2F08:
-/* 802F2F08 002EEB68 80 9C 00 00 */ lwz r4, 0(r28)
-/* 802F2F0C 002EEB6C 38 1B 00 01 */ addi r0, r27, 1
-/* 802F2F10 002EEB70 54 1A 06 3E */ clrlwi r26, r0, 0x18
-/* 802F2F14 002EEB74 2C 04 00 00 */ cmpwi r4, 0
-/* 802F2F18 002EEB78 41 82 00 44 */ beq lbl_802F2F5C
-/* 802F2F1C 002EEB7C A0 C4 00 00 */ lhz r6, 0(r4)
-/* 802F2F20 002EEB80 7F 43 D3 78 */ mr r3, r26
-/* 802F2F24 002EEB84 A0 04 00 08 */ lhz r0, 8(r4)
-/* 802F2F28 002EEB88 38 A4 00 0A */ addi r5, r4, 0xa
-/* 802F2F2C 002EEB8C 38 C6 FF FE */ addi r6, r6, -2
-/* 802F2F30 002EEB90 54 04 44 2E */ rlwinm r4, r0, 8, 0x10, 0x17
-/* 802F2F34 002EEB94 50 04 C6 3E */ rlwimi r4, r0, 0x18, 0x18, 0x1f
-/* 802F2F38 002EEB98 4B FF E7 51 */ bl MPiParseReceivedFrame
-/* 802F2F3C 002EEB9C 80 9C 00 00 */ lwz r4, 0(r28)
-/* 802F2F40 002EEBA0 7F 43 D3 78 */ mr r3, r26
-/* 802F2F44 002EEBA4 A0 04 00 02 */ lhz r0, 2(r4)
-/* 802F2F48 002EEBA8 54 04 06 3E */ clrlwi r4, r0, 0x18
-/* 802F2F4C 002EEBAC 4B FF F3 35 */ bl func_802F2280
-/* 802F2F50 002EEBB0 7F 43 D3 78 */ mr r3, r26
-/* 802F2F54 002EEBB4 4B FF F3 69 */ bl func_802F22BC
-/* 802F2F58 002EEBB8 48 00 00 1C */ b lbl_802F2F74
-lbl_802F2F5C:
-/* 802F2F5C 002EEBBC 7F A0 D0 30 */ slw r0, r29, r26
-/* 802F2F60 002EEBC0 7F C0 00 39 */ and. r0, r30, r0
-/* 802F2F64 002EEBC4 41 82 00 10 */ beq lbl_802F2F74
-/* 802F2F68 002EEBC8 7F 43 D3 78 */ mr r3, r26
-/* 802F2F6C 002EEBCC 38 80 00 AF */ li r4, 0xaf
-/* 802F2F70 002EEBD0 4B FF F3 11 */ bl func_802F2280
-lbl_802F2F74:
-/* 802F2F74 002EEBD4 3B 7B 00 01 */ addi r27, r27, 1
-/* 802F2F78 002EEBD8 3B 9C 00 04 */ addi r28, r28, 4
-/* 802F2F7C 002EEBDC 2C 1B 00 0F */ cmpwi r27, 0xf
-/* 802F2F80 002EEBE0 41 80 FF 88 */ blt lbl_802F2F08
-/* 802F2F84 002EEBE4 7F E3 FB 78 */ mr r3, r31
-/* 802F2F88 002EEBE8 4B FF E8 99 */ bl MPiProcessDataSentNotification
-/* 802F2F8C 002EEBEC 7F E3 FB 78 */ mr r3, r31
-lbl_802F2F90:
-/* 802F2F90 002EEBF0 39 61 00 60 */ addi r11, r1, 0x60
-/* 802F2F94 002EEBF4 4B ED 41 DD */ bl _restgpr_26
-/* 802F2F98 002EEBF8 80 01 00 64 */ lwz r0, 0x64(r1)
-/* 802F2F9C 002EEBFC 7C 08 03 A6 */ mtlr r0
-/* 802F2FA0 002EEC00 38 21 00 60 */ addi r1, r1, 0x60
-/* 802F2FA4 002EEC04 4E 80 00 20 */ blr
-
-.global func_802F2FA8
-func_802F2FA8:
-/* 802F2FA8 002EEC08 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F2FAC 002EEC0C 7C 08 02 A6 */ mflr r0
-/* 802F2FB0 002EEC10 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F2FB4 002EEC14 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10
-/* 802F2FB8 002EEC18 38 04 00 1C */ addi r0, r4, 0x1c
-/* 802F2FBC 002EEC1C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F2FC0 002EEC20 93 C1 00 08 */ stw r30, 8(r1)
-/* 802F2FC4 002EEC24 7C 7E 1B 78 */ mr r30, r3
-/* 802F2FC8 002EEC28 54 03 10 3A */ slwi r3, r0, 2
-/* 802F2FCC 002EEC2C 3B E3 00 66 */ addi r31, r3, 0x66
-/* 802F2FD0 002EEC30 41 82 00 08 */ beq lbl_802F2FD8
-/* 802F2FD4 002EEC34 54 9F 04 7E */ clrlwi r31, r4, 0x11
-lbl_802F2FD8:
-/* 802F2FD8 002EEC38 7C A3 2B 78 */ mr r3, r5
-/* 802F2FDC 002EEC3C 4B FF DB FD */ bl MPiCountPopulation
-/* 802F2FE0 002EEC40 54 60 06 3E */ clrlwi r0, r3, 0x18
-/* 802F2FE4 002EEC44 38 7E 00 22 */ addi r3, r30, 0x22
-/* 802F2FE8 002EEC48 7C 1F 01 D6 */ mullw r0, r31, r0
-/* 802F2FEC 002EEC4C 54 63 10 3A */ slwi r3, r3, 2
-/* 802F2FF0 002EEC50 3B E3 00 60 */ addi r31, r3, 0x60
-/* 802F2FF4 002EEC54 7C 7F 02 14 */ add r3, r31, r0
-/* 802F2FF8 002EEC58 3B E3 03 88 */ addi r31, r3, 0x388
-/* 802F2FFC 002EEC5C 4B F7 F7 BD */ bl OSGetTime
-/* 802F3000 002EEC60 3C 60 80 00 */ lis r3, 0x800000F8@ha
-/* 802F3004 002EEC64 3C A0 43 1C */ lis r5, 0x431BDE83@ha
-/* 802F3008 002EEC68 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
-/* 802F300C 002EEC6C 3C 60 CC CD */ lis r3, 0xCCCCCCCD@ha
-/* 802F3010 002EEC70 38 A5 DE 83 */ addi r5, r5, 0x431BDE83@l
-/* 802F3014 002EEC74 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3018 002EEC78 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F301C 002EEC7C 38 E3 CC CD */ addi r7, r3, 0xCCCCCCCD@l
-/* 802F3020 002EEC80 7C 05 00 16 */ mulhwu r0, r5, r0
-/* 802F3024 002EEC84 80 66 6D DC */ lwz r3, 0x6ddc(r6)
-/* 802F3028 002EEC88 7C 64 18 50 */ subf r3, r4, r3
-/* 802F302C 002EEC8C 54 63 18 38 */ slwi r3, r3, 3
-/* 802F3030 002EEC90 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F3034 002EEC94 7C 03 03 96 */ divwu r0, r3, r0
-/* 802F3038 002EEC98 7C 07 00 16 */ mulhwu r0, r7, r0
-/* 802F303C 002EEC9C 54 03 E8 FE */ srwi r3, r0, 3
-/* 802F3040 002EECA0 34 63 FF EC */ addic. r3, r3, -20
-/* 802F3044 002EECA4 40 80 00 08 */ bge lbl_802F304C
-/* 802F3048 002EECA8 38 60 00 00 */ li r3, 0
-lbl_802F304C:
-/* 802F304C 002EECAC 1C 03 00 0A */ mulli r0, r3, 0xa
-/* 802F3050 002EECB0 7C 00 F8 40 */ cmplw r0, r31
-/* 802F3054 002EECB4 40 80 00 08 */ bge lbl_802F305C
-/* 802F3058 002EECB8 38 60 00 00 */ li r3, 0
-lbl_802F305C:
-/* 802F305C 002EECBC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3060 002EECC0 54 63 04 3E */ clrlwi r3, r3, 0x10
-/* 802F3064 002EECC4 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F3068 002EECC8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F306C 002EECCC 7C 08 03 A6 */ mtlr r0
-/* 802F3070 002EECD0 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3074 002EECD4 4E 80 00 20 */ blr
-/* 802F3078 002EECD8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F307C 002EECDC 7C 08 02 A6 */ mflr r0
-/* 802F3080 002EECE0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3084 002EECE4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F3088 002EECE8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F308C 002EECEC 3B E3 6D 98 */ addi r31, r3, 0x6d98
-/* 802F3090 002EECF0 7F E3 FB 78 */ mr r3, r31
-/* 802F3094 002EECF4 4B F7 DE 9D */ bl OSTryWaitSemaphore
-/* 802F3098 002EECF8 7F E3 FB 78 */ mr r3, r31
-/* 802F309C 002EECFC 4B F7 DE E5 */ bl OSSignalSemaphore
-/* 802F30A0 002EED00 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F30A4 002EED04 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F30A8 002EED08 7C 08 03 A6 */ mtlr r0
-/* 802F30AC 002EED0C 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F30B0 002EED10 4E 80 00 20 */ blr
-lbl_802F30B4:
-/* 802F30B4 002EED14 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F30B8 002EED18 7C 08 02 A6 */ mflr r0
-/* 802F30BC 002EED1C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F30C0 002EED20 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F30C4 002EED24 93 C1 00 08 */ stw r30, 8(r1)
-/* 802F30C8 002EED28 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F30CC 002EED2C 4B F7 F6 ED */ bl OSGetTime
-/* 802F30D0 002EED30 3C C0 80 00 */ lis r6, 0x800000F8@ha
-/* 802F30D4 002EED34 3C A0 43 1C */ lis r5, 0x431BDE83@ha
-/* 802F30D8 002EED38 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
-/* 802F30DC 002EED3C 38 C5 DE 83 */ addi r6, r5, 0x431BDE83@l
-/* 802F30E0 002EED40 38 A0 00 00 */ li r5, 0
-/* 802F30E4 002EED44 3B FE 6D A4 */ addi r31, r30, 0x6da4
-/* 802F30E8 002EED48 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F30EC 002EED4C 7C 06 00 16 */ mulhwu r0, r6, r0
-/* 802F30F0 002EED50 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F30F4 002EED54 1C 00 41 50 */ mulli r0, r0, 0x4150
-/* 802F30F8 002EED58 54 00 E8 FE */ srwi r0, r0, 3
-/* 802F30FC 002EED5C 7C 00 20 14 */ addc r0, r0, r4
-/* 802F3100 002EED60 90 1E 6D DC */ stw r0, 0x6ddc(r30)
-/* 802F3104 002EED64 7C 05 19 14 */ adde r0, r5, r3
-/* 802F3108 002EED68 7F E3 FB 78 */ mr r3, r31
-/* 802F310C 002EED6C 90 1E 6D D8 */ stw r0, 0x6dd8(r30)
-/* 802F3110 002EED70 4B F7 DE 21 */ bl OSTryWaitSemaphore
-/* 802F3114 002EED74 7F E3 FB 78 */ mr r3, r31
-/* 802F3118 002EED78 4B F7 DE 69 */ bl OSSignalSemaphore
-/* 802F311C 002EED7C 38 7E 6D B0 */ addi r3, r30, 0x6db0
-/* 802F3120 002EED80 38 80 00 00 */ li r4, 0
-/* 802F3124 002EED84 38 A0 00 00 */ li r5, 0
-/* 802F3128 002EED88 4B F7 BE 31 */ bl OSSendMessage
-/* 802F312C 002EED8C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3130 002EED90 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3134 002EED94 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F3138 002EED98 7C 08 03 A6 */ mtlr r0
-/* 802F313C 002EED9C 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3140 002EEDA0 4E 80 00 20 */ blr
-lbl_802F3144:
-/* 802F3144 002EEDA4 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3148 002EEDA8 38 80 00 00 */ li r4, 0
-/* 802F314C 002EEDAC 38 A0 00 00 */ li r5, 0
-/* 802F3150 002EEDB0 38 63 66 B4 */ addi r3, r3, 0x66b4
-/* 802F3154 002EEDB4 4B F7 BE 04 */ b OSSendMessage
-
-.global func_802F3158
-func_802F3158:
-/* 802F3158 002EEDB8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F315C 002EEDBC 7C 08 02 A6 */ mflr r0
-/* 802F3160 002EEDC0 38 80 00 00 */ li r4, 0
-/* 802F3164 002EEDC4 38 A0 10 00 */ li r5, 0x1000
-/* 802F3168 002EEDC8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F316C 002EEDCC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F3170 002EEDD0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3174 002EEDD4 38 7F 21 40 */ addi r3, r31, 0x2140
-/* 802F3178 002EEDD8 4B D1 0F 8D */ bl memset
-/* 802F317C 002EEDDC 38 7F 6F C8 */ addi r3, r31, 0x6fc8
-/* 802F3180 002EEDE0 38 80 00 00 */ li r4, 0
-/* 802F3184 002EEDE4 38 A0 03 18 */ li r5, 0x318
-/* 802F3188 002EEDE8 4B D1 0F 7D */ bl memset
-/* 802F318C 002EEDEC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3190 002EEDF0 38 60 00 00 */ li r3, 0
-/* 802F3194 002EEDF4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3198 002EEDF8 7C 08 03 A6 */ mtlr r0
-/* 802F319C 002EEDFC 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F31A0 002EEE00 4E 80 00 20 */ blr
-
-.global func_802F31A4
-func_802F31A4:
-/* 802F31A4 002EEE04 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F31A8 002EEE08 7C 08 02 A6 */ mflr r0
-/* 802F31AC 002EEE0C 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F31B0 002EEE10 3C 80 80 2F */ lis r4, lbl_802F3268@ha
-/* 802F31B4 002EEE14 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F31B8 002EEE18 38 84 32 68 */ addi r4, r4, lbl_802F3268@l
-/* 802F31BC 002EEE1C 38 A0 00 00 */ li r5, 0
-/* 802F31C0 002EEE20 38 66 6F C8 */ addi r3, r6, 0x6fc8
-/* 802F31C4 002EEE24 81 06 00 08 */ lwz r8, 8(r6)
-/* 802F31C8 002EEE28 38 C6 31 40 */ addi r6, r6, 0x3140
-/* 802F31CC 002EEE2C 38 E0 10 00 */ li r7, 0x1000
-/* 802F31D0 002EEE30 39 20 00 00 */ li r9, 0
-/* 802F31D4 002EEE34 39 08 00 02 */ addi r8, r8, 2
-/* 802F31D8 002EEE38 4B F7 E7 09 */ bl OSCreateThread
-/* 802F31DC 002EEE3C 2C 03 00 00 */ cmpwi r3, 0
-/* 802F31E0 002EEE40 40 82 00 0C */ bne lbl_802F31EC
-/* 802F31E4 002EEE44 38 60 FF 11 */ li r3, -239
-/* 802F31E8 002EEE48 48 00 00 14 */ b lbl_802F31FC
-lbl_802F31EC:
-/* 802F31EC 002EEE4C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F31F0 002EEE50 38 63 6F C8 */ addi r3, r3, 0x6fc8
-/* 802F31F4 002EEE54 4B F7 ED 55 */ bl OSResumeThread
-/* 802F31F8 002EEE58 38 60 00 00 */ li r3, 0
-lbl_802F31FC:
-/* 802F31FC 002EEE5C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3200 002EEE60 7C 08 03 A6 */ mtlr r0
-/* 802F3204 002EEE64 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3208 002EEE68 4E 80 00 20 */ blr
-
-.global func_802F320C
-func_802F320C:
-/* 802F320C 002EEE6C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F3210 002EEE70 7C 08 02 A6 */ mflr r0
-/* 802F3214 002EEE74 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F3218 002EEE78 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F321C 002EEE7C 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3220 002EEE80 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F3224 002EEE84 41 82 00 2C */ beq lbl_802F3250
-/* 802F3228 002EEE88 A0 1F 72 90 */ lhz r0, 0x7290(r31)
-/* 802F322C 002EEE8C 2C 00 00 00 */ cmpwi r0, 0
-/* 802F3230 002EEE90 41 82 00 10 */ beq lbl_802F3240
-/* 802F3234 002EEE94 38 7F 6F C8 */ addi r3, r31, 0x6fc8
-/* 802F3238 002EEE98 38 80 00 00 */ li r4, 0
-/* 802F323C 002EEE9C 4B F7 EB CD */ bl OSJoinThread
-lbl_802F3240:
-/* 802F3240 002EEEA0 38 7F 6F C8 */ addi r3, r31, 0x6fc8
-/* 802F3244 002EEEA4 38 80 00 00 */ li r4, 0
-/* 802F3248 002EEEA8 38 A0 03 18 */ li r5, 0x318
-/* 802F324C 002EEEAC 4B D1 0E B9 */ bl memset
-lbl_802F3250:
-/* 802F3250 002EEEB0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3254 002EEEB4 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3258 002EEEB8 7C 08 03 A6 */ mtlr r0
-/* 802F325C 002EEEBC 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3260 002EEEC0 4E 80 00 20 */ blr
-
-.global func_802F3264
-func_802F3264:
-/* 802F3264 002EEEC4 4E 80 00 20 */ blr
-lbl_802F3268:
-/* 802F3268 002EEEC8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F326C 002EEECC 7C 08 02 A6 */ mflr r0
-/* 802F3270 002EEED0 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F3274 002EEED4 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F3278 002EEED8 3F E0 80 44 */ lis r31, 0x8044
-/* 802F327C 002EEEDC 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F3280 002EEEE0 3F C0 80 58 */ lis r30, lbl_80579160@ha
-/* 802F3284 002EEEE4 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F3288 002EEEE8 3B BE 91 60 */ addi r29, r30, lbl_80579160@l
-lbl_802F328C:
-/* 802F328C 002EEEEC 38 7E 91 60 */ addi r3, r30, -28320
-/* 802F3290 002EEEF0 4B FF B0 FD */ bl WD_ReceiveNotification
-/* 802F3294 002EEEF4 3C 03 80 00 */ addis r0, r3, 0x8000
-/* 802F3298 002EEEF8 28 00 80 00 */ cmplwi r0, 0x8000
-/* 802F329C 002EEEFC 40 82 00 08 */ bne lbl_802F32A4
-/* 802F32A0 002EEF00 48 00 00 60 */ b lbl_802F3300
-lbl_802F32A4:
-/* 802F32A4 002EEF04 80 1D 00 00 */ lwz r0, 0(r29)
-/* 802F32A8 002EEF08 28 00 00 06 */ cmplwi r0, 6
-/* 802F32AC 002EEF0C 41 81 FF E0 */ bgt lbl_802F328C
-/* 802F32B0 002EEF10 38 7F 5C 88 */ addi r3, r31, 0x5c88
-/* 802F32B4 002EEF14 54 00 10 3A */ slwi r0, r0, 2
-/* 802F32B8 002EEF18 7C 63 00 2E */ lwzx r3, r3, r0
-/* 802F32BC 002EEF1C 7C 69 03 A6 */ mtctr r3
-/* 802F32C0 002EEF20 4E 80 04 20 */ bctr
-/* 802F32C4 002EEF24 38 9D 00 08 */ addi r4, r29, 8
-/* 802F32C8 002EEF28 A0 7D 00 0E */ lhz r3, 0xe(r29)
-/* 802F32CC 002EEF2C A0 DD 00 10 */ lhz r6, 0x10(r29)
-/* 802F32D0 002EEF30 38 A4 00 0C */ addi r5, r4, 0xc
-/* 802F32D4 002EEF34 4B FF ED 45 */ bl func_802F2018
-/* 802F32D8 002EEF38 4B FF FF B4 */ b lbl_802F328C
-/* 802F32DC 002EEF3C A0 7D 00 0E */ lhz r3, 0xe(r29)
-/* 802F32E0 002EEF40 38 BD 00 08 */ addi r5, r29, 8
-/* 802F32E4 002EEF44 A0 9D 00 10 */ lhz r4, 0x10(r29)
-/* 802F32E8 002EEF48 4B FF EE 71 */ bl func_802F2158
-/* 802F32EC 002EEF4C 4B FF FF A0 */ b lbl_802F328C
-/* 802F32F0 002EEF50 48 00 08 E5 */ bl func_802F3BD4
-/* 802F32F4 002EEF54 4B FF FF 98 */ b lbl_802F328C
-/* 802F32F8 002EEF58 4B FF F5 61 */ bl func_802F2858
-/* 802F32FC 002EEF5C 4B FF FF 90 */ b lbl_802F328C
-lbl_802F3300:
-/* 802F3300 002EEF60 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F3304 002EEF64 38 60 00 00 */ li r3, 0
-/* 802F3308 002EEF68 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F330C 002EEF6C 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F3310 002EEF70 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F3314 002EEF74 7C 08 03 A6 */ mtlr r0
-/* 802F3318 002EEF78 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F331C 002EEF7C 4E 80 00 20 */ blr
-
-.global func_802F3320
-func_802F3320:
-/* 802F3320 002EEF80 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F3324 002EEF84 7C 08 02 A6 */ mflr r0
-/* 802F3328 002EEF88 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F332C 002EEF8C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F3330 002EEF90 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3334 002EEF94 38 7F 72 E0 */ addi r3, r31, 0x72e0
-/* 802F3338 002EEF98 4B F7 C5 D9 */ bl OSInitMutex
-/* 802F333C 002EEF9C 38 7F 58 D2 */ addi r3, r31, 0x58d2
-/* 802F3340 002EEFA0 38 80 00 00 */ li r4, 0
-/* 802F3344 002EEFA4 38 A0 00 10 */ li r5, 0x10
-/* 802F3348 002EEFA8 4B D1 0D BD */ bl memset
-/* 802F334C 002EEFAC 38 7F 57 D2 */ addi r3, r31, 0x57d2
-/* 802F3350 002EEFB0 38 80 00 00 */ li r4, 0
-/* 802F3354 002EEFB4 38 A0 01 00 */ li r5, 0x100
-/* 802F3358 002EEFB8 4B D1 0D AD */ bl memset
-/* 802F335C 002EEFBC 38 00 00 04 */ li r0, 4
-/* 802F3360 002EEFC0 38 80 00 00 */ li r4, 0
-/* 802F3364 002EEFC4 38 60 00 01 */ li r3, 1
-/* 802F3368 002EEFC8 7C 09 03 A6 */ mtctr r0
-lbl_802F336C:
-/* 802F336C 002EEFCC 7C BF 22 14 */ add r5, r31, r4
-/* 802F3370 002EEFD0 38 84 00 02 */ addi r4, r4, 2
-/* 802F3374 002EEFD4 B0 65 57 D2 */ sth r3, 0x57d2(r5)
-/* 802F3378 002EEFD8 B0 65 57 F2 */ sth r3, 0x57f2(r5)
-/* 802F337C 002EEFDC B0 65 58 12 */ sth r3, 0x5812(r5)
-/* 802F3380 002EEFE0 B0 65 58 32 */ sth r3, 0x5832(r5)
-/* 802F3384 002EEFE4 B0 65 58 52 */ sth r3, 0x5852(r5)
-/* 802F3388 002EEFE8 B0 65 58 72 */ sth r3, 0x5872(r5)
-/* 802F338C 002EEFEC B0 65 58 92 */ sth r3, 0x5892(r5)
-/* 802F3390 002EEFF0 B0 65 58 B2 */ sth r3, 0x58b2(r5)
-/* 802F3394 002EEFF4 7C BF 22 14 */ add r5, r31, r4
-/* 802F3398 002EEFF8 38 84 00 02 */ addi r4, r4, 2
-/* 802F339C 002EEFFC B0 65 57 D2 */ sth r3, 0x57d2(r5)
-/* 802F33A0 002EF000 B0 65 57 F2 */ sth r3, 0x57f2(r5)
-/* 802F33A4 002EF004 B0 65 58 12 */ sth r3, 0x5812(r5)
-/* 802F33A8 002EF008 B0 65 58 32 */ sth r3, 0x5832(r5)
-/* 802F33AC 002EF00C B0 65 58 52 */ sth r3, 0x5852(r5)
-/* 802F33B0 002EF010 B0 65 58 72 */ sth r3, 0x5872(r5)
-/* 802F33B4 002EF014 B0 65 58 92 */ sth r3, 0x5892(r5)
-/* 802F33B8 002EF018 B0 65 58 B2 */ sth r3, 0x58b2(r5)
-/* 802F33BC 002EF01C 7C BF 22 14 */ add r5, r31, r4
-/* 802F33C0 002EF020 38 84 00 02 */ addi r4, r4, 2
-/* 802F33C4 002EF024 B0 65 57 D2 */ sth r3, 0x57d2(r5)
-/* 802F33C8 002EF028 B0 65 57 F2 */ sth r3, 0x57f2(r5)
-/* 802F33CC 002EF02C B0 65 58 12 */ sth r3, 0x5812(r5)
-/* 802F33D0 002EF030 B0 65 58 32 */ sth r3, 0x5832(r5)
-/* 802F33D4 002EF034 B0 65 58 52 */ sth r3, 0x5852(r5)
-/* 802F33D8 002EF038 B0 65 58 72 */ sth r3, 0x5872(r5)
-/* 802F33DC 002EF03C B0 65 58 92 */ sth r3, 0x5892(r5)
-/* 802F33E0 002EF040 B0 65 58 B2 */ sth r3, 0x58b2(r5)
-/* 802F33E4 002EF044 7C BF 22 14 */ add r5, r31, r4
-/* 802F33E8 002EF048 38 84 00 02 */ addi r4, r4, 2
-/* 802F33EC 002EF04C B0 65 57 D2 */ sth r3, 0x57d2(r5)
-/* 802F33F0 002EF050 B0 65 57 F2 */ sth r3, 0x57f2(r5)
-/* 802F33F4 002EF054 B0 65 58 12 */ sth r3, 0x5812(r5)
-/* 802F33F8 002EF058 B0 65 58 32 */ sth r3, 0x5832(r5)
-/* 802F33FC 002EF05C B0 65 58 52 */ sth r3, 0x5852(r5)
-/* 802F3400 002EF060 B0 65 58 72 */ sth r3, 0x5872(r5)
-/* 802F3404 002EF064 B0 65 58 92 */ sth r3, 0x5892(r5)
-/* 802F3408 002EF068 B0 65 58 B2 */ sth r3, 0x58b2(r5)
-/* 802F340C 002EF06C 42 00 FF 60 */ bdnz lbl_802F336C
-/* 802F3410 002EF070 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3414 002EF074 38 60 00 00 */ li r3, 0
-/* 802F3418 002EF078 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F341C 002EF07C 7C 08 03 A6 */ mtlr r0
-/* 802F3420 002EF080 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3424 002EF084 4E 80 00 20 */ blr
-
-.global func_802F3428
-func_802F3428:
-/* 802F3428 002EF088 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F342C 002EF08C 7C 08 02 A6 */ mflr r0
-/* 802F3430 002EF090 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F3434 002EF094 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F3438 002EF098 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F343C 002EF09C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F3440 002EF0A0 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3444 002EF0A4 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802F3448 002EF0A8 3B DD 72 E0 */ addi r30, r29, 0x72e0
-/* 802F344C 002EF0AC 7F C3 F3 78 */ mr r3, r30
-/* 802F3450 002EF0B0 4B F7 C4 F9 */ bl OSLockMutex
-/* 802F3454 002EF0B4 3B 9D 72 F8 */ addi r28, r29, 0x72f8
-/* 802F3458 002EF0B8 38 80 00 00 */ li r4, 0
-/* 802F345C 002EF0BC 7F 83 E3 78 */ mr r3, r28
-/* 802F3460 002EF0C0 38 A0 00 40 */ li r5, 0x40
-/* 802F3464 002EF0C4 4B D1 0C A1 */ bl memset
-/* 802F3468 002EF0C8 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F346C 002EF0CC 41 82 00 58 */ beq lbl_802F34C4
-/* 802F3470 002EF0D0 38 60 00 00 */ li r3, 0
-/* 802F3474 002EF0D4 38 00 00 01 */ li r0, 1
-/* 802F3478 002EF0D8 90 7C 00 00 */ stw r3, 0(r28)
-/* 802F347C 002EF0DC 3B E0 00 00 */ li r31, 0
-/* 802F3480 002EF0E0 90 1C 00 04 */ stw r0, 4(r28)
-lbl_802F3484:
-/* 802F3484 002EF0E4 93 FC 00 08 */ stw r31, 8(r28)
-/* 802F3488 002EF0E8 81 9D 00 B4 */ lwz r12, 0xb4(r29)
-/* 802F348C 002EF0EC 2C 0C 00 00 */ cmpwi r12, 0
-/* 802F3490 002EF0F0 41 82 00 14 */ beq lbl_802F34A4
-/* 802F3494 002EF0F4 7F 84 E3 78 */ mr r4, r28
-/* 802F3498 002EF0F8 38 60 00 01 */ li r3, 1
-/* 802F349C 002EF0FC 7D 89 03 A6 */ mtctr r12
-/* 802F34A0 002EF100 4E 80 04 21 */ bctrl
-lbl_802F34A4:
-/* 802F34A4 002EF104 3B FF 00 01 */ addi r31, r31, 1
-/* 802F34A8 002EF108 3B BD 00 08 */ addi r29, r29, 8
-/* 802F34AC 002EF10C 28 1F 00 10 */ cmplwi r31, 0x10
-/* 802F34B0 002EF110 41 80 FF D4 */ blt lbl_802F3484
-/* 802F34B4 002EF114 7F C3 F3 78 */ mr r3, r30
-/* 802F34B8 002EF118 3B A0 00 00 */ li r29, 0
-/* 802F34BC 002EF11C 4B F7 C5 69 */ bl OSUnlockMutex
-/* 802F34C0 002EF120 48 00 00 08 */ b lbl_802F34C8
-lbl_802F34C4:
-/* 802F34C4 002EF124 3B A0 FF FF */ li r29, -1
-lbl_802F34C8:
-/* 802F34C8 002EF128 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F34CC 002EF12C 7F A3 EB 78 */ mr r3, r29
-/* 802F34D0 002EF130 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F34D4 002EF134 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F34D8 002EF138 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802F34DC 002EF13C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F34E0 002EF140 7C 08 03 A6 */ mtlr r0
-/* 802F34E4 002EF144 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F34E8 002EF148 4E 80 00 20 */ blr
-
-.global func_802F34EC
-func_802F34EC:
-/* 802F34EC 002EF14C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F34F0 002EF150 7C 08 02 A6 */ mflr r0
-/* 802F34F4 002EF154 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F34F8 002EF158 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F34FC 002EF15C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F3500 002EF160 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F3504 002EF164 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3508 002EF168 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802F350C 002EF16C 2C 1D 00 00 */ cmpwi r29, 0
-/* 802F3510 002EF170 41 82 00 9C */ beq lbl_802F35AC
-/* 802F3514 002EF174 3B DD 72 E0 */ addi r30, r29, 0x72e0
-/* 802F3518 002EF178 7F C3 F3 78 */ mr r3, r30
-/* 802F351C 002EF17C 4B F7 C4 2D */ bl OSLockMutex
-/* 802F3520 002EF180 3B 9D 72 F8 */ addi r28, r29, 0x72f8
-/* 802F3524 002EF184 38 80 00 00 */ li r4, 0
-/* 802F3528 002EF188 7F 83 E3 78 */ mr r3, r28
-/* 802F352C 002EF18C 38 A0 00 40 */ li r5, 0x40
-/* 802F3530 002EF190 4B D1 0B D5 */ bl memset
-/* 802F3534 002EF194 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F3538 002EF198 41 82 00 50 */ beq lbl_802F3588
-/* 802F353C 002EF19C 38 60 00 00 */ li r3, 0
-/* 802F3540 002EF1A0 38 00 00 02 */ li r0, 2
-/* 802F3544 002EF1A4 90 7C 00 00 */ stw r3, 0(r28)
-/* 802F3548 002EF1A8 3B E0 00 00 */ li r31, 0
-/* 802F354C 002EF1AC 90 1C 00 04 */ stw r0, 4(r28)
-lbl_802F3550:
-/* 802F3550 002EF1B0 93 FC 00 08 */ stw r31, 8(r28)
-/* 802F3554 002EF1B4 81 9D 00 B4 */ lwz r12, 0xb4(r29)
-/* 802F3558 002EF1B8 2C 0C 00 00 */ cmpwi r12, 0
-/* 802F355C 002EF1BC 41 82 00 14 */ beq lbl_802F3570
-/* 802F3560 002EF1C0 7F 84 E3 78 */ mr r4, r28
-/* 802F3564 002EF1C4 38 60 00 02 */ li r3, 2
-/* 802F3568 002EF1C8 7D 89 03 A6 */ mtctr r12
-/* 802F356C 002EF1CC 4E 80 04 21 */ bctrl
-lbl_802F3570:
-/* 802F3570 002EF1D0 3B FF 00 01 */ addi r31, r31, 1
-/* 802F3574 002EF1D4 3B BD 00 08 */ addi r29, r29, 8
-/* 802F3578 002EF1D8 28 1F 00 10 */ cmplwi r31, 0x10
-/* 802F357C 002EF1DC 41 80 FF D4 */ blt lbl_802F3550
-/* 802F3580 002EF1E0 7F C3 F3 78 */ mr r3, r30
-/* 802F3584 002EF1E4 4B F7 C4 A1 */ bl OSUnlockMutex
-lbl_802F3588:
-/* 802F3588 002EF1E8 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F358C 002EF1EC 38 80 00 00 */ li r4, 0
-/* 802F3590 002EF1F0 38 A0 00 10 */ li r5, 0x10
-/* 802F3594 002EF1F4 38 7D 58 D2 */ addi r3, r29, 0x58d2
-/* 802F3598 002EF1F8 4B D1 0B 6D */ bl memset
-/* 802F359C 002EF1FC 38 7D 57 D2 */ addi r3, r29, 0x57d2
-/* 802F35A0 002EF200 38 80 00 00 */ li r4, 0
-/* 802F35A4 002EF204 38 A0 01 00 */ li r5, 0x100
-/* 802F35A8 002EF208 4B D1 0B 5D */ bl memset
-lbl_802F35AC:
-/* 802F35AC 002EF20C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F35B0 002EF210 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F35B4 002EF214 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F35B8 002EF218 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F35BC 002EF21C 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802F35C0 002EF220 7C 08 03 A6 */ mtlr r0
-/* 802F35C4 002EF224 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F35C8 002EF228 4E 80 00 20 */ blr
-
-.global func_802F35CC
-func_802F35CC:
-/* 802F35CC 002EF22C 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F35D0 002EF230 54 63 08 3C */ slwi r3, r3, 1
-/* 802F35D4 002EF234 38 00 00 01 */ li r0, 1
-/* 802F35D8 002EF238 38 84 57 D2 */ addi r4, r4, 0x57d2
-/* 802F35DC 002EF23C 7C 04 1B 2E */ sthx r0, r4, r3
-/* 802F35E0 002EF240 7C 64 1A 14 */ add r3, r4, r3
-/* 802F35E4 002EF244 B0 03 00 20 */ sth r0, 0x20(r3)
-/* 802F35E8 002EF248 B0 03 00 40 */ sth r0, 0x40(r3)
-/* 802F35EC 002EF24C B0 03 00 60 */ sth r0, 0x60(r3)
-/* 802F35F0 002EF250 B0 03 00 80 */ sth r0, 0x80(r3)
-/* 802F35F4 002EF254 B0 03 00 A0 */ sth r0, 0xa0(r3)
-/* 802F35F8 002EF258 B0 03 00 C0 */ sth r0, 0xc0(r3)
-/* 802F35FC 002EF25C B0 03 00 E0 */ sth r0, 0xe0(r3)
-/* 802F3600 002EF260 4E 80 00 20 */ blr
-
-.global func_802F3604
-func_802F3604:
-/* 802F3604 002EF264 80 A4 00 30 */ lwz r5, 0x30(r4)
-/* 802F3608 002EF268 2C 05 00 00 */ cmpwi r5, 0
-/* 802F360C 002EF26C 41 82 00 0C */ beq lbl_802F3618
-/* 802F3610 002EF270 80 04 00 2C */ lwz r0, 0x2c(r4)
-/* 802F3614 002EF274 90 05 00 00 */ stw r0, 0(r5)
-lbl_802F3618:
-/* 802F3618 002EF278 4B FF D4 D8 */ b MPiRespondToWaitingRequest
-
-.global func_802F361C
-func_802F361C:
-/* 802F361C 002EF27C 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F3620 002EF280 7C 08 02 A6 */ mflr r0
-/* 802F3624 002EF284 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F3628 002EF288 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F362C 002EF28C 4B ED 3A F1 */ bl _savegpr_24
-/* 802F3630 002EF290 2C 06 00 00 */ cmpwi r6, 0
-/* 802F3634 002EF294 7C 78 1B 78 */ mr r24, r3
-/* 802F3638 002EF298 7C 99 23 78 */ mr r25, r4
-/* 802F363C 002EF29C 7C BA 2B 78 */ mr r26, r5
-/* 802F3640 002EF2A0 7C DB 33 78 */ mr r27, r6
-/* 802F3644 002EF2A4 7C FC 3B 78 */ mr r28, r7
-/* 802F3648 002EF2A8 41 82 00 9C */ beq lbl_802F36E4
-/* 802F364C 002EF2AC 28 03 00 10 */ cmplwi r3, 0x10
-/* 802F3650 002EF2B0 40 80 00 94 */ bge lbl_802F36E4
-/* 802F3654 002EF2B4 28 06 02 04 */ cmplwi r6, 0x204
-/* 802F3658 002EF2B8 40 80 00 8C */ bge lbl_802F36E4
-/* 802F365C 002EF2BC 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3660 002EF2C0 3B DD 72 E0 */ addi r30, r29, 0x72e0
-/* 802F3664 002EF2C4 7F C3 F3 78 */ mr r3, r30
-/* 802F3668 002EF2C8 4B F7 C2 E1 */ bl OSLockMutex
-/* 802F366C 002EF2CC 3B FD 72 F8 */ addi r31, r29, 0x72f8
-/* 802F3670 002EF2D0 38 80 00 00 */ li r4, 0
-/* 802F3674 002EF2D4 7F E3 FB 78 */ mr r3, r31
-/* 802F3678 002EF2D8 38 A0 00 40 */ li r5, 0x40
-/* 802F367C 002EF2DC 4B D1 0A 89 */ bl memset
-/* 802F3680 002EF2E0 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F3684 002EF2E4 41 82 00 60 */ beq lbl_802F36E4
-/* 802F3688 002EF2E8 38 00 00 00 */ li r0, 0
-/* 802F368C 002EF2EC 28 18 00 10 */ cmplwi r24, 0x10
-/* 802F3690 002EF2F0 90 1F 00 00 */ stw r0, 0(r31)
-/* 802F3694 002EF2F4 93 3F 00 10 */ stw r25, 0x10(r31)
-/* 802F3698 002EF2F8 93 5F 00 14 */ stw r26, 0x14(r31)
-/* 802F369C 002EF2FC 93 7F 00 18 */ stw r27, 0x18(r31)
-/* 802F36A0 002EF300 93 9F 00 1C */ stw r28, 0x1c(r31)
-/* 802F36A4 002EF304 40 80 00 38 */ bge lbl_802F36DC
-/* 802F36A8 002EF308 90 1F 00 00 */ stw r0, 0(r31)
-/* 802F36AC 002EF30C 57 00 18 38 */ slwi r0, r24, 3
-/* 802F36B0 002EF310 38 80 00 03 */ li r4, 3
-/* 802F36B4 002EF314 93 1F 00 08 */ stw r24, 8(r31)
-/* 802F36B8 002EF318 7C 7D 02 14 */ add r3, r29, r0
-/* 802F36BC 002EF31C 90 9F 00 04 */ stw r4, 4(r31)
-/* 802F36C0 002EF320 81 83 00 B4 */ lwz r12, 0xb4(r3)
-/* 802F36C4 002EF324 2C 0C 00 00 */ cmpwi r12, 0
-/* 802F36C8 002EF328 41 82 00 14 */ beq lbl_802F36DC
-/* 802F36CC 002EF32C 7F E4 FB 78 */ mr r4, r31
-/* 802F36D0 002EF330 38 60 00 03 */ li r3, 3
-/* 802F36D4 002EF334 7D 89 03 A6 */ mtctr r12
-/* 802F36D8 002EF338 4E 80 04 21 */ bctrl
-lbl_802F36DC:
-/* 802F36DC 002EF33C 7F C3 F3 78 */ mr r3, r30
-/* 802F36E0 002EF340 4B F7 C3 45 */ bl OSUnlockMutex
-lbl_802F36E4:
-/* 802F36E4 002EF344 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F36E8 002EF348 4B ED 3A 81 */ bl _restgpr_24
-/* 802F36EC 002EF34C 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F36F0 002EF350 7C 08 03 A6 */ mtlr r0
-/* 802F36F4 002EF354 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F36F8 002EF358 4E 80 00 20 */ blr
-
-.global func_802F36FC
-func_802F36FC:
-/* 802F36FC 002EF35C 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F3700 002EF360 7C 08 02 A6 */ mflr r0
-/* 802F3704 002EF364 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F3708 002EF368 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F370C 002EF36C 4B ED 3A 11 */ bl _savegpr_24
-/* 802F3710 002EF370 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3714 002EF374 7C 78 1B 78 */ mr r24, r3
-/* 802F3718 002EF378 7C 99 23 78 */ mr r25, r4
-/* 802F371C 002EF37C 7C BA 2B 78 */ mr r26, r5
-/* 802F3720 002EF380 3B DD 72 E0 */ addi r30, r29, 0x72e0
-/* 802F3724 002EF384 7C DB 33 78 */ mr r27, r6
-/* 802F3728 002EF388 7F C3 F3 78 */ mr r3, r30
-/* 802F372C 002EF38C 4B F7 C2 1D */ bl OSLockMutex
-/* 802F3730 002EF390 3B 9D 72 F8 */ addi r28, r29, 0x72f8
-/* 802F3734 002EF394 38 80 00 00 */ li r4, 0
-/* 802F3738 002EF398 7F 83 E3 78 */ mr r3, r28
-/* 802F373C 002EF39C 38 A0 00 40 */ li r5, 0x40
-/* 802F3740 002EF3A0 4B D1 09 C5 */ bl memset
-/* 802F3744 002EF3A4 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F3748 002EF3A8 41 82 00 7C */ beq lbl_802F37C4
-/* 802F374C 002EF3AC 3B E0 00 00 */ li r31, 0
-/* 802F3750 002EF3B0 7F 24 CB 78 */ mr r4, r25
-/* 802F3754 002EF3B4 93 FC 00 00 */ stw r31, 0(r28)
-/* 802F3758 002EF3B8 38 7C 00 18 */ addi r3, r28, 0x18
-/* 802F375C 002EF3BC 38 A0 00 06 */ li r5, 6
-/* 802F3760 002EF3C0 93 1C 00 10 */ stw r24, 0x10(r28)
-/* 802F3764 002EF3C4 93 7C 00 14 */ stw r27, 0x14(r28)
-/* 802F3768 002EF3C8 4B D1 08 99 */ bl memcpy
-/* 802F376C 002EF3CC 7F 44 D3 78 */ mr r4, r26
-/* 802F3770 002EF3D0 38 7C 00 1E */ addi r3, r28, 0x1e
-/* 802F3774 002EF3D4 38 A0 00 20 */ li r5, 0x20
-/* 802F3778 002EF3D8 4B D1 08 89 */ bl memcpy
-/* 802F377C 002EF3DC 93 FC 00 00 */ stw r31, 0(r28)
-/* 802F3780 002EF3E0 38 00 00 04 */ li r0, 4
-/* 802F3784 002EF3E4 3B E0 00 00 */ li r31, 0
-/* 802F3788 002EF3E8 90 1C 00 04 */ stw r0, 4(r28)
-lbl_802F378C:
-/* 802F378C 002EF3EC 93 FC 00 08 */ stw r31, 8(r28)
-/* 802F3790 002EF3F0 81 9D 00 B4 */ lwz r12, 0xb4(r29)
-/* 802F3794 002EF3F4 2C 0C 00 00 */ cmpwi r12, 0
-/* 802F3798 002EF3F8 41 82 00 14 */ beq lbl_802F37AC
-/* 802F379C 002EF3FC 7F 84 E3 78 */ mr r4, r28
-/* 802F37A0 002EF400 38 60 00 04 */ li r3, 4
-/* 802F37A4 002EF404 7D 89 03 A6 */ mtctr r12
-/* 802F37A8 002EF408 4E 80 04 21 */ bctrl
-lbl_802F37AC:
-/* 802F37AC 002EF40C 3B FF 00 01 */ addi r31, r31, 1
-/* 802F37B0 002EF410 3B BD 00 08 */ addi r29, r29, 8
-/* 802F37B4 002EF414 28 1F 00 10 */ cmplwi r31, 0x10
-/* 802F37B8 002EF418 41 80 FF D4 */ blt lbl_802F378C
-/* 802F37BC 002EF41C 7F C3 F3 78 */ mr r3, r30
-/* 802F37C0 002EF420 4B F7 C2 65 */ bl OSUnlockMutex
-lbl_802F37C4:
-/* 802F37C4 002EF424 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F37C8 002EF428 4B ED 39 A1 */ bl _restgpr_24
-/* 802F37CC 002EF42C 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F37D0 002EF430 7C 08 03 A6 */ mtlr r0
-/* 802F37D4 002EF434 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F37D8 002EF438 4E 80 00 20 */ blr
-
-.global func_802F37DC
-func_802F37DC:
-/* 802F37DC 002EF43C 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F37E0 002EF440 7C 08 02 A6 */ mflr r0
-/* 802F37E4 002EF444 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F37E8 002EF448 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F37EC 002EF44C 4B ED 39 35 */ bl _savegpr_25
-/* 802F37F0 002EF450 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F37F4 002EF454 7C 79 1B 78 */ mr r25, r3
-/* 802F37F8 002EF458 7C 9A 23 78 */ mr r26, r4
-/* 802F37FC 002EF45C 7C BB 2B 78 */ mr r27, r5
-/* 802F3800 002EF460 3B DD 72 E0 */ addi r30, r29, 0x72e0
-/* 802F3804 002EF464 7F C3 F3 78 */ mr r3, r30
-/* 802F3808 002EF468 4B F7 C1 41 */ bl OSLockMutex
-/* 802F380C 002EF46C 3B 9D 72 F8 */ addi r28, r29, 0x72f8
-/* 802F3810 002EF470 38 80 00 00 */ li r4, 0
-/* 802F3814 002EF474 7F 83 E3 78 */ mr r3, r28
-/* 802F3818 002EF478 38 A0 00 40 */ li r5, 0x40
-/* 802F381C 002EF47C 4B D1 08 E9 */ bl memset
-/* 802F3820 002EF480 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F3824 002EF484 41 82 00 6C */ beq lbl_802F3890
-/* 802F3828 002EF488 3B E0 00 00 */ li r31, 0
-/* 802F382C 002EF48C 7F 64 DB 78 */ mr r4, r27
-/* 802F3830 002EF490 93 FC 00 00 */ stw r31, 0(r28)
-/* 802F3834 002EF494 38 7C 00 18 */ addi r3, r28, 0x18
-/* 802F3838 002EF498 38 A0 00 06 */ li r5, 6
-/* 802F383C 002EF49C 93 3C 00 10 */ stw r25, 0x10(r28)
-/* 802F3840 002EF4A0 93 5C 00 14 */ stw r26, 0x14(r28)
-/* 802F3844 002EF4A4 4B D1 07 BD */ bl memcpy
-/* 802F3848 002EF4A8 93 FC 00 00 */ stw r31, 0(r28)
-/* 802F384C 002EF4AC 38 00 00 05 */ li r0, 5
-/* 802F3850 002EF4B0 3B E0 00 00 */ li r31, 0
-/* 802F3854 002EF4B4 90 1C 00 04 */ stw r0, 4(r28)
-lbl_802F3858:
-/* 802F3858 002EF4B8 93 FC 00 08 */ stw r31, 8(r28)
-/* 802F385C 002EF4BC 81 9D 00 B4 */ lwz r12, 0xb4(r29)
-/* 802F3860 002EF4C0 2C 0C 00 00 */ cmpwi r12, 0
-/* 802F3864 002EF4C4 41 82 00 14 */ beq lbl_802F3878
-/* 802F3868 002EF4C8 7F 84 E3 78 */ mr r4, r28
-/* 802F386C 002EF4CC 38 60 00 05 */ li r3, 5
-/* 802F3870 002EF4D0 7D 89 03 A6 */ mtctr r12
-/* 802F3874 002EF4D4 4E 80 04 21 */ bctrl
-lbl_802F3878:
-/* 802F3878 002EF4D8 3B FF 00 01 */ addi r31, r31, 1
-/* 802F387C 002EF4DC 3B BD 00 08 */ addi r29, r29, 8
-/* 802F3880 002EF4E0 28 1F 00 10 */ cmplwi r31, 0x10
-/* 802F3884 002EF4E4 41 80 FF D4 */ blt lbl_802F3858
-/* 802F3888 002EF4E8 7F C3 F3 78 */ mr r3, r30
-/* 802F388C 002EF4EC 4B F7 C1 99 */ bl OSUnlockMutex
-lbl_802F3890:
-/* 802F3890 002EF4F0 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F3894 002EF4F4 4B ED 38 D9 */ bl _restgpr_25
-/* 802F3898 002EF4F8 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F389C 002EF4FC 7C 08 03 A6 */ mtlr r0
-/* 802F38A0 002EF500 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F38A4 002EF504 4E 80 00 20 */ blr
-
-.global func_802F38A8
-func_802F38A8:
-/* 802F38A8 002EF508 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F38AC 002EF50C 7C 08 02 A6 */ mflr r0
-/* 802F38B0 002EF510 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F38B4 002EF514 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F38B8 002EF518 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F38BC 002EF51C 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F38C0 002EF520 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802F38C4 002EF524 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F38C8 002EF528 2C 00 00 00 */ cmpwi r0, 0
-/* 802F38CC 002EF52C 40 82 00 0C */ bne lbl_802F38D8
-/* 802F38D0 002EF530 38 60 FF 14 */ li r3, -236
-/* 802F38D4 002EF534 48 00 00 D4 */ b lbl_802F39A8
-lbl_802F38D8:
-/* 802F38D8 002EF538 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
-/* 802F38DC 002EF53C 2C 00 00 00 */ cmpwi r0, 0
-/* 802F38E0 002EF540 41 82 00 0C */ beq lbl_802F38EC
-/* 802F38E4 002EF544 38 60 FF FF */ li r3, -1
-/* 802F38E8 002EF548 48 00 00 C0 */ b lbl_802F39A8
-lbl_802F38EC:
-/* 802F38EC 002EF54C 38 61 00 08 */ addi r3, r1, 8
-/* 802F38F0 002EF550 38 80 00 01 */ li r4, 1
-/* 802F38F4 002EF554 4B FF D0 BD */ bl MPiAllocateCommandBlock
-/* 802F38F8 002EF558 2C 03 00 00 */ cmpwi r3, 0
-/* 802F38FC 002EF55C 40 80 00 08 */ bge lbl_802F3904
-/* 802F3900 002EF560 48 00 00 A8 */ b lbl_802F39A8
-lbl_802F3904:
-/* 802F3904 002EF564 83 82 AA 30 */ lwz r28, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3908 002EF568 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F390C 002EF56C 3B BC 65 DC */ addi r29, r28, 0x65dc
-/* 802F3910 002EF570 7F A3 EB 78 */ mr r3, r29
-/* 802F3914 002EF574 4B F7 C0 35 */ bl OSLockMutex
-/* 802F3918 002EF578 37 FC 55 60 */ addic. r31, r28, 0x5560
-/* 802F391C 002EF57C 40 82 00 14 */ bne lbl_802F3930
-/* 802F3920 002EF580 7F A3 EB 78 */ mr r3, r29
-/* 802F3924 002EF584 4B F7 C1 01 */ bl OSUnlockMutex
-/* 802F3928 002EF588 3B E0 FF 10 */ li r31, -240
-/* 802F392C 002EF58C 48 00 00 28 */ b lbl_802F3954
-lbl_802F3930:
-/* 802F3930 002EF590 7F E3 FB 78 */ mr r3, r31
-/* 802F3934 002EF594 48 00 02 E5 */ bl func_802F3C18
-/* 802F3938 002EF598 7F E3 FB 78 */ mr r3, r31
-/* 802F393C 002EF59C 4B FF D6 99 */ bl MPiChangeBeacon
-/* 802F3940 002EF5A0 7C 7F 1B 78 */ mr r31, r3
-/* 802F3944 002EF5A4 7F A3 EB 78 */ mr r3, r29
-/* 802F3948 002EF5A8 4B F7 C0 DD */ bl OSUnlockMutex
-/* 802F394C 002EF5AC 7F E0 FE 70 */ srawi r0, r31, 0x1f
-/* 802F3950 002EF5B0 7F FF 00 38 */ and r31, r31, r0
-lbl_802F3954:
-/* 802F3954 002EF5B4 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F3958 002EF5B8 40 80 00 08 */ bge lbl_802F3960
-/* 802F395C 002EF5BC 48 00 00 30 */ b lbl_802F398C
-lbl_802F3960:
-/* 802F3960 002EF5C0 38 C0 00 00 */ li r6, 0
-/* 802F3964 002EF5C4 38 00 00 01 */ li r0, 1
-/* 802F3968 002EF5C8 90 DE 00 18 */ stw r6, 0x18(r30)
-/* 802F396C 002EF5CC 7F C4 F3 78 */ mr r4, r30
-/* 802F3970 002EF5D0 38 7C 65 24 */ addi r3, r28, 0x6524
-/* 802F3974 002EF5D4 38 A0 00 01 */ li r5, 1
-/* 802F3978 002EF5D8 90 1E 00 04 */ stw r0, 4(r30)
-/* 802F397C 002EF5DC 90 DE 00 1C */ stw r6, 0x1c(r30)
-/* 802F3980 002EF5E0 90 DE 00 20 */ stw r6, 0x20(r30)
-/* 802F3984 002EF5E4 4B FF D0 D5 */ bl MPiSendRequest
-/* 802F3988 002EF5E8 7C 7F 1B 78 */ mr r31, r3
-lbl_802F398C:
-/* 802F398C 002EF5EC 80 61 00 08 */ lwz r3, 8(r1)
-/* 802F3990 002EF5F0 4B FF D0 B5 */ bl MPiFreeCommandBlock
-/* 802F3994 002EF5F4 2C 1F 00 00 */ cmpwi r31, 0
-/* 802F3998 002EF5F8 40 80 00 0C */ bge lbl_802F39A4
-/* 802F399C 002EF5FC 7F E3 FB 78 */ mr r3, r31
-/* 802F39A0 002EF600 48 00 00 08 */ b lbl_802F39A8
-lbl_802F39A4:
-/* 802F39A4 002EF604 38 60 00 00 */ li r3, 0
-lbl_802F39A8:
-/* 802F39A8 002EF608 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F39AC 002EF60C 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F39B0 002EF610 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F39B4 002EF614 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F39B8 002EF618 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802F39BC 002EF61C 7C 08 03 A6 */ mtlr r0
-/* 802F39C0 002EF620 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F39C4 002EF624 4E 80 00 20 */ blr
-
-.global func_802F39C8
-func_802F39C8:
-/* 802F39C8 002EF628 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F39CC 002EF62C 7C 08 02 A6 */ mflr r0
-/* 802F39D0 002EF630 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F39D4 002EF634 39 61 00 20 */ addi r11, r1, 0x20
-/* 802F39D8 002EF638 4B ED 37 51 */ bl _savegpr_27
-/* 802F39DC 002EF63C 80 0D AF 38 */ lwz r0, lbl_806401F8-_SDA_BASE_(r13)
-/* 802F39E0 002EF640 7C 7B 1B 78 */ mr r27, r3
-/* 802F39E4 002EF644 7C 9C 23 78 */ mr r28, r4
-/* 802F39E8 002EF648 2C 00 00 00 */ cmpwi r0, 0
-/* 802F39EC 002EF64C 40 82 00 0C */ bne lbl_802F39F8
-/* 802F39F0 002EF650 38 60 FF 14 */ li r3, -236
-/* 802F39F4 002EF654 48 00 00 A4 */ b lbl_802F3A98
-lbl_802F39F8:
-/* 802F39F8 002EF658 80 0D AF 3C */ lwz r0, lbl_806401FC-_SDA_BASE_(r13)
-/* 802F39FC 002EF65C 2C 00 00 00 */ cmpwi r0, 0
-/* 802F3A00 002EF660 41 82 00 0C */ beq lbl_802F3A0C
-/* 802F3A04 002EF664 38 60 FF FF */ li r3, -1
-/* 802F3A08 002EF668 48 00 00 90 */ b lbl_802F3A98
-lbl_802F3A0C:
-/* 802F3A0C 002EF66C 83 A2 AA 30 */ lwz r29, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3A10 002EF670 3B DD 65 DC */ addi r30, r29, 0x65dc
-/* 802F3A14 002EF674 7F C3 F3 78 */ mr r3, r30
-/* 802F3A18 002EF678 4B F7 BF 31 */ bl OSLockMutex
-/* 802F3A1C 002EF67C 37 FD 55 60 */ addic. r31, r29, 0x5560
-/* 802F3A20 002EF680 40 82 00 14 */ bne lbl_802F3A34
-/* 802F3A24 002EF684 7F C3 F3 78 */ mr r3, r30
-/* 802F3A28 002EF688 4B F7 BF FD */ bl OSUnlockMutex
-/* 802F3A2C 002EF68C 38 60 FF 10 */ li r3, -240
-/* 802F3A30 002EF690 48 00 00 28 */ b lbl_802F3A58
-lbl_802F3A34:
-/* 802F3A34 002EF694 7F E3 FB 78 */ mr r3, r31
-/* 802F3A38 002EF698 48 00 01 E1 */ bl func_802F3C18
-/* 802F3A3C 002EF69C 7F E3 FB 78 */ mr r3, r31
-/* 802F3A40 002EF6A0 4B FF D5 95 */ bl MPiChangeBeacon
-/* 802F3A44 002EF6A4 7C 7F 1B 78 */ mr r31, r3
-/* 802F3A48 002EF6A8 7F C3 F3 78 */ mr r3, r30
-/* 802F3A4C 002EF6AC 4B F7 BF D9 */ bl OSUnlockMutex
-/* 802F3A50 002EF6B0 7F E0 FE 70 */ srawi r0, r31, 0x1f
-/* 802F3A54 002EF6B4 7F E3 00 38 */ and r3, r31, r0
-lbl_802F3A58:
-/* 802F3A58 002EF6B8 2C 03 00 00 */ cmpwi r3, 0
-/* 802F3A5C 002EF6BC 40 80 00 08 */ bge lbl_802F3A64
-/* 802F3A60 002EF6C0 48 00 00 28 */ b lbl_802F3A88
-lbl_802F3A64:
-/* 802F3A64 002EF6C4 38 00 00 00 */ li r0, 0
-/* 802F3A68 002EF6C8 93 7C 00 18 */ stw r27, 0x18(r28)
-/* 802F3A6C 002EF6CC 7F 84 E3 78 */ mr r4, r28
-/* 802F3A70 002EF6D0 38 7D 65 24 */ addi r3, r29, 0x6524
-/* 802F3A74 002EF6D4 90 1C 00 04 */ stw r0, 4(r28)
-/* 802F3A78 002EF6D8 38 A0 00 00 */ li r5, 0
-/* 802F3A7C 002EF6DC 90 1C 00 1C */ stw r0, 0x1c(r28)
-/* 802F3A80 002EF6E0 90 1C 00 20 */ stw r0, 0x20(r28)
-/* 802F3A84 002EF6E4 4B FF CF D5 */ bl MPiSendRequest
-lbl_802F3A88:
-/* 802F3A88 002EF6E8 2C 03 00 00 */ cmpwi r3, 0
-/* 802F3A8C 002EF6EC 40 80 00 08 */ bge lbl_802F3A94
-/* 802F3A90 002EF6F0 48 00 00 08 */ b lbl_802F3A98
-lbl_802F3A94:
-/* 802F3A94 002EF6F4 38 60 00 00 */ li r3, 0
-lbl_802F3A98:
-/* 802F3A98 002EF6F8 39 61 00 20 */ addi r11, r1, 0x20
-/* 802F3A9C 002EF6FC 4B ED 36 D9 */ bl _restgpr_27
-/* 802F3AA0 002EF700 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F3AA4 002EF704 7C 08 03 A6 */ mtlr r0
-/* 802F3AA8 002EF708 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F3AAC 002EF70C 4E 80 00 20 */ blr
-
-.global func_802F3AB0
-func_802F3AB0:
-/* 802F3AB0 002EF710 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F3AB4 002EF714 7C 08 02 A6 */ mflr r0
-/* 802F3AB8 002EF718 38 A0 00 20 */ li r5, 0x20
-/* 802F3ABC 002EF71C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F3AC0 002EF720 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F3AC4 002EF724 93 C1 00 08 */ stw r30, 8(r1)
-/* 802F3AC8 002EF728 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3ACC 002EF72C 38 7E 65 24 */ addi r3, r30, 0x6524
-/* 802F3AD0 002EF730 38 9E 65 44 */ addi r4, r30, 0x6544
-/* 802F3AD4 002EF734 4B F7 B4 25 */ bl OSInitMessageQueue
-/* 802F3AD8 002EF738 38 7E 65 DC */ addi r3, r30, 0x65dc
-/* 802F3ADC 002EF73C 4B F7 BE 35 */ bl OSInitMutex
-/* 802F3AE0 002EF740 38 7E 55 60 */ addi r3, r30, 0x5560
-/* 802F3AE4 002EF744 38 80 00 00 */ li r4, 0
-/* 802F3AE8 002EF748 38 A0 00 80 */ li r5, 0x80
-/* 802F3AEC 002EF74C 4B D1 06 19 */ bl memset
-/* 802F3AF0 002EF750 3B E0 00 00 */ li r31, 0
-/* 802F3AF4 002EF754 38 7E 65 F8 */ addi r3, r30, 0x65f8
-/* 802F3AF8 002EF758 93 FE 65 F4 */ stw r31, 0x65f4(r30)
-/* 802F3AFC 002EF75C 38 80 00 00 */ li r4, 0
-/* 802F3B00 002EF760 38 A0 00 14 */ li r5, 0x14
-/* 802F3B04 002EF764 4B D1 06 01 */ bl memset
-/* 802F3B08 002EF768 93 FE 66 0C */ stw r31, 0x660c(r30)
-/* 802F3B0C 002EF76C 38 60 00 00 */ li r3, 0
-/* 802F3B10 002EF770 93 FE 66 10 */ stw r31, 0x6610(r30)
-/* 802F3B14 002EF774 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3B18 002EF778 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F3B1C 002EF77C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3B20 002EF780 7C 08 03 A6 */ mtlr r0
-/* 802F3B24 002EF784 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3B28 002EF788 4E 80 00 20 */ blr
-
-.global func_802F3B2C
-func_802F3B2C:
-/* 802F3B2C 002EF78C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F3B30 002EF790 7C 08 02 A6 */ mflr r0
-/* 802F3B34 002EF794 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3B38 002EF798 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F3B3C 002EF79C 2C 03 00 00 */ cmpwi r3, 0
-/* 802F3B40 002EF7A0 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F3B44 002EF7A4 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F3B48 002EF7A8 41 82 00 74 */ beq lbl_802F3BBC
-/* 802F3B4C 002EF7AC 3B E3 65 24 */ addi r31, r3, 0x6524
-/* 802F3B50 002EF7B0 48 00 00 10 */ b lbl_802F3B60
-lbl_802F3B54:
-/* 802F3B54 002EF7B4 80 81 00 08 */ lwz r4, 8(r1)
-/* 802F3B58 002EF7B8 38 60 FF 00 */ li r3, -256
-/* 802F3B5C 002EF7BC 4B FF CF 95 */ bl MPiRespondToWaitingRequest
-lbl_802F3B60:
-/* 802F3B60 002EF7C0 7F E3 FB 78 */ mr r3, r31
-/* 802F3B64 002EF7C4 38 81 00 08 */ addi r4, r1, 8
-/* 802F3B68 002EF7C8 38 A0 00 00 */ li r5, 0
-/* 802F3B6C 002EF7CC 4B F7 B4 B5 */ bl OSReceiveMessage
-/* 802F3B70 002EF7D0 2C 03 00 00 */ cmpwi r3, 0
-/* 802F3B74 002EF7D4 40 82 FF E0 */ bne lbl_802F3B54
-/* 802F3B78 002EF7D8 83 C2 AA 30 */ lwz r30, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3B7C 002EF7DC 38 80 00 00 */ li r4, 0
-/* 802F3B80 002EF7E0 38 A0 00 80 */ li r5, 0x80
-/* 802F3B84 002EF7E4 38 7E 65 44 */ addi r3, r30, 0x6544
-/* 802F3B88 002EF7E8 4B D1 05 7D */ bl memset
-/* 802F3B8C 002EF7EC 38 7E 55 60 */ addi r3, r30, 0x5560
-/* 802F3B90 002EF7F0 38 80 00 00 */ li r4, 0
-/* 802F3B94 002EF7F4 38 A0 00 80 */ li r5, 0x80
-/* 802F3B98 002EF7F8 4B D1 05 6D */ bl memset
-/* 802F3B9C 002EF7FC 3B E0 00 00 */ li r31, 0
-/* 802F3BA0 002EF800 38 7E 65 F8 */ addi r3, r30, 0x65f8
-/* 802F3BA4 002EF804 93 FE 65 F4 */ stw r31, 0x65f4(r30)
-/* 802F3BA8 002EF808 38 80 00 00 */ li r4, 0
-/* 802F3BAC 002EF80C 38 A0 00 14 */ li r5, 0x14
-/* 802F3BB0 002EF810 4B D1 05 55 */ bl memset
-/* 802F3BB4 002EF814 93 FE 66 0C */ stw r31, 0x660c(r30)
-/* 802F3BB8 002EF818 93 FE 66 10 */ stw r31, 0x6610(r30)
-lbl_802F3BBC:
-/* 802F3BBC 002EF81C 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F3BC0 002EF820 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F3BC4 002EF824 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F3BC8 002EF828 7C 08 03 A6 */ mtlr r0
-/* 802F3BCC 002EF82C 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F3BD0 002EF830 4E 80 00 20 */ blr
-
-.global func_802F3BD4
-func_802F3BD4:
-/* 802F3BD4 002EF834 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F3BD8 002EF838 7C 08 02 A6 */ mflr r0
-/* 802F3BDC 002EF83C 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3BE0 002EF840 38 A0 00 00 */ li r5, 0
-/* 802F3BE4 002EF844 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F3BE8 002EF848 38 81 00 08 */ addi r4, r1, 8
-/* 802F3BEC 002EF84C 38 63 65 24 */ addi r3, r3, 0x6524
-/* 802F3BF0 002EF850 4B F7 B4 31 */ bl OSReceiveMessage
-/* 802F3BF4 002EF854 2C 03 00 00 */ cmpwi r3, 0
-/* 802F3BF8 002EF858 41 82 00 10 */ beq lbl_802F3C08
-/* 802F3BFC 002EF85C 80 81 00 08 */ lwz r4, 8(r1)
-/* 802F3C00 002EF860 38 60 00 00 */ li r3, 0
-/* 802F3C04 002EF864 4B FF CE ED */ bl MPiRespondToWaitingRequest
-lbl_802F3C08:
-/* 802F3C08 002EF868 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3C0C 002EF86C 7C 08 03 A6 */ mtlr r0
-/* 802F3C10 002EF870 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3C14 002EF874 4E 80 00 20 */ blr
-
-.global func_802F3C18
-func_802F3C18:
-/* 802F3C18 002EF878 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F3C1C 002EF87C 7C 08 02 A6 */ mflr r0
-/* 802F3C20 002EF880 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3C24 002EF884 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F3C28 002EF888 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 802F3C2C 002EF88C 93 C1 00 18 */ stw r30, 0x18(r1)
-/* 802F3C30 002EF890 7C 7E 1B 78 */ mr r30, r3
-/* 802F3C34 002EF894 93 A1 00 14 */ stw r29, 0x14(r1)
-/* 802F3C38 002EF898 93 81 00 10 */ stw r28, 0x10(r1)
-/* 802F3C3C 002EF89C 83 E4 00 14 */ lwz r31, 0x14(r4)
-/* 802F3C40 002EF8A0 3C 1F 00 01 */ addis r0, r31, 1
-/* 802F3C44 002EF8A4 28 00 FF FF */ cmplwi r0, 0xffff
-/* 802F3C48 002EF8A8 40 82 00 14 */ bne lbl_802F3C5C
-/* 802F3C4C 002EF8AC 4B FF CF 61 */ bl MPiGetNewTgid
-/* 802F3C50 002EF8B0 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3C54 002EF8B4 7C 7F 1B 78 */ mr r31, r3
-/* 802F3C58 002EF8B8 90 64 00 14 */ stw r3, 0x14(r4)
-lbl_802F3C5C:
-/* 802F3C5C 002EF8BC 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3C60 002EF8C0 83 A3 00 3C */ lwz r29, 0x3c(r3)
-/* 802F3C64 002EF8C4 28 1D 00 70 */ cmplwi r29, 0x70
-/* 802F3C68 002EF8C8 40 81 00 08 */ ble lbl_802F3C70
-/* 802F3C6C 002EF8CC 3B A0 00 70 */ li r29, 0x70
-lbl_802F3C70:
-/* 802F3C70 002EF8D0 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3C74 002EF8D4 3B 80 00 00 */ li r28, 0
-/* 802F3C78 002EF8D8 80 03 00 30 */ lwz r0, 0x30(r3)
-/* 802F3C7C 002EF8DC 2C 00 00 00 */ cmpwi r0, 0
-/* 802F3C80 002EF8E0 41 82 00 08 */ beq lbl_802F3C88
-/* 802F3C84 002EF8E4 63 9C 00 01 */ ori r28, r28, 1
-lbl_802F3C88:
-/* 802F3C88 002EF8E8 80 62 AA 30 */ lwz r3, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3C8C 002EF8EC 80 03 00 34 */ lwz r0, 0x34(r3)
-/* 802F3C90 002EF8F0 2C 00 00 00 */ cmpwi r0, 0
-/* 802F3C94 002EF8F4 41 82 00 08 */ beq lbl_802F3C9C
-/* 802F3C98 002EF8F8 63 9C 00 02 */ ori r28, r28, 2
-lbl_802F3C9C:
-/* 802F3C9C 002EF8FC 7F C3 F3 78 */ mr r3, r30
-/* 802F3CA0 002EF900 38 80 00 00 */ li r4, 0
-/* 802F3CA4 002EF904 38 A0 00 80 */ li r5, 0x80
-/* 802F3CA8 002EF908 4B D1 04 5D */ bl memset
-/* 802F3CAC 002EF90C 38 00 01 00 */ li r0, 0x100
-/* 802F3CB0 002EF910 38 80 00 01 */ li r4, 1
-/* 802F3CB4 002EF914 38 E0 00 08 */ li r7, 8
-/* 802F3CB8 002EF918 B0 1E 00 00 */ sth r0, 0(r30)
-/* 802F3CBC 002EF91C 80 C2 AA 30 */ lwz r6, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3CC0 002EF920 38 1E 00 08 */ addi r0, r30, 8
-/* 802F3CC4 002EF924 98 9E 00 02 */ stb r4, 2(r30)
-/* 802F3CC8 002EF928 7F A5 EB 78 */ mr r5, r29
-/* 802F3CCC 002EF92C 38 86 00 40 */ addi r4, r6, 0x40
-/* 802F3CD0 002EF930 38 7E 00 10 */ addi r3, r30, 0x10
-/* 802F3CD4 002EF934 98 FE 00 03 */ stb r7, 3(r30)
-/* 802F3CD8 002EF938 81 06 00 10 */ lwz r8, 0x10(r6)
-/* 802F3CDC 002EF93C 55 07 42 1E */ rlwinm r7, r8, 8, 8, 0xf
-/* 802F3CE0 002EF940 55 06 C4 2E */ rlwinm r6, r8, 0x18, 0x10, 0x17
-/* 802F3CE4 002EF944 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7
-/* 802F3CE8 002EF948 51 06 46 3E */ rlwimi r6, r8, 8, 0x18, 0x1f
-/* 802F3CEC 002EF94C 7C E6 33 78 */ or r6, r7, r6
-/* 802F3CF0 002EF950 90 DE 00 04 */ stw r6, 4(r30)
-/* 802F3CF4 002EF954 7F E0 07 2C */ sthbrx r31, 0, r0
-/* 802F3CF8 002EF958 9B BE 00 0A */ stb r29, 0xa(r30)
-/* 802F3CFC 002EF95C 4B D1 03 05 */ bl memcpy
-/* 802F3D00 002EF960 9B 9E 00 0B */ stb r28, 0xb(r30)
-/* 802F3D04 002EF964 38 1E 00 0C */ addi r0, r30, 0xc
-/* 802F3D08 002EF968 80 82 AA 30 */ lwz r4, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3D0C 002EF96C 80 64 00 28 */ lwz r3, 0x28(r4)
-/* 802F3D10 002EF970 7C 60 07 2C */ sthbrx r3, 0, r0
-/* 802F3D14 002EF974 38 1E 00 0E */ addi r0, r30, 0xe
-/* 802F3D18 002EF978 80 64 00 2C */ lwz r3, 0x2c(r4)
-/* 802F3D1C 002EF97C 7C 60 07 2C */ sthbrx r3, 0, r0
-/* 802F3D20 002EF980 83 E1 00 1C */ lwz r31, 0x1c(r1)
-/* 802F3D24 002EF984 83 C1 00 18 */ lwz r30, 0x18(r1)
-/* 802F3D28 002EF988 83 A1 00 14 */ lwz r29, 0x14(r1)
-/* 802F3D2C 002EF98C 83 81 00 10 */ lwz r28, 0x10(r1)
-/* 802F3D30 002EF990 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F3D34 002EF994 7C 08 03 A6 */ mtlr r0
-/* 802F3D38 002EF998 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F3D3C 002EF99C 4E 80 00 20 */ blr
-
-.global func_802F3D40
-func_802F3D40:
-/* 802F3D40 002EF9A0 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802F3D44 002EF9A4 7C 08 02 A6 */ mflr r0
-/* 802F3D48 002EF9A8 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802F3D4C 002EF9AC 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802F3D50 002EF9B0 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3D54 002EF9B4 93 C1 00 08 */ stw r30, 8(r1)
-/* 802F3D58 002EF9B8 3B DF 65 DC */ addi r30, r31, 0x65dc
-/* 802F3D5C 002EF9BC 7F C3 F3 78 */ mr r3, r30
-/* 802F3D60 002EF9C0 4B F7 BB E9 */ bl OSLockMutex
-/* 802F3D64 002EF9C4 37 FF 55 60 */ addic. r31, r31, 0x5560
-/* 802F3D68 002EF9C8 40 82 00 14 */ bne lbl_802F3D7C
-/* 802F3D6C 002EF9CC 7F C3 F3 78 */ mr r3, r30
-/* 802F3D70 002EF9D0 4B F7 BC B5 */ bl OSUnlockMutex
-/* 802F3D74 002EF9D4 38 60 FF 10 */ li r3, -240
-/* 802F3D78 002EF9D8 48 00 00 28 */ b lbl_802F3DA0
-lbl_802F3D7C:
-/* 802F3D7C 002EF9DC 7F E3 FB 78 */ mr r3, r31
-/* 802F3D80 002EF9E0 4B FF FE 99 */ bl func_802F3C18
-/* 802F3D84 002EF9E4 7F E3 FB 78 */ mr r3, r31
-/* 802F3D88 002EF9E8 4B FF D2 4D */ bl MPiChangeBeacon
-/* 802F3D8C 002EF9EC 7C 7F 1B 78 */ mr r31, r3
-/* 802F3D90 002EF9F0 7F C3 F3 78 */ mr r3, r30
-/* 802F3D94 002EF9F4 4B F7 BC 91 */ bl OSUnlockMutex
-/* 802F3D98 002EF9F8 7F E0 FE 70 */ srawi r0, r31, 0x1f
-/* 802F3D9C 002EF9FC 7F E3 00 38 */ and r3, r31, r0
-lbl_802F3DA0:
-/* 802F3DA0 002EFA00 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802F3DA4 002EFA04 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802F3DA8 002EFA08 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802F3DAC 002EFA0C 7C 08 03 A6 */ mtlr r0
-/* 802F3DB0 002EFA10 38 21 00 10 */ addi r1, r1, 0x10
-/* 802F3DB4 002EFA14 4E 80 00 20 */ blr
-
-.global func_802F3DB8
-func_802F3DB8:
-/* 802F3DB8 002EFA18 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 802F3DBC 002EFA1C 7C 08 02 A6 */ mflr r0
-/* 802F3DC0 002EFA20 90 01 00 34 */ stw r0, 0x34(r1)
-/* 802F3DC4 002EFA24 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F3DC8 002EFA28 4B ED 33 59 */ bl _savegpr_25
-/* 802F3DCC 002EFA2C 7C 7E 1B 78 */ mr r30, r3
-/* 802F3DD0 002EFA30 4B F7 E9 E9 */ bl OSGetTime
-/* 802F3DD4 002EFA34 7C 9C 23 78 */ mr r28, r4
-/* 802F3DD8 002EFA38 7C 7D 1B 78 */ mr r29, r3
-/* 802F3DDC 002EFA3C 4B F7 A9 81 */ bl OSDisableInterrupts
-/* 802F3DE0 002EFA40 3C 80 80 00 */ lis r4, 0x800000F8@ha
-/* 802F3DE4 002EFA44 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3DE8 002EFA48 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
-/* 802F3DEC 002EFA4C 57 A5 18 38 */ slwi r5, r29, 3
-/* 802F3DF0 002EFA50 3C 80 43 1C */ lis r4, 0x431BDE83@ha
-/* 802F3DF4 002EFA54 83 BF 66 0C */ lwz r29, 0x660c(r31)
-/* 802F3DF8 002EFA58 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F3DFC 002EFA5C 53 85 1F 7E */ rlwimi r5, r28, 3, 0x1d, 0x1f
-/* 802F3E00 002EFA60 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l
-/* 802F3E04 002EFA64 7C 79 1B 78 */ mr r25, r3
-/* 802F3E08 002EFA68 7C 04 00 16 */ mulhwu r0, r4, r0
-/* 802F3E0C 002EFA6C 7C A3 2B 78 */ mr r3, r5
-/* 802F3E10 002EFA70 83 7F 66 10 */ lwz r27, 0x6610(r31)
-/* 802F3E14 002EFA74 3B 5F 65 F8 */ addi r26, r31, 0x65f8
-/* 802F3E18 002EFA78 57 84 18 38 */ slwi r4, r28, 3
-/* 802F3E1C 002EFA7C 38 A0 00 00 */ li r5, 0
-/* 802F3E20 002EFA80 54 06 8B FE */ srwi r6, r0, 0xf
-/* 802F3E24 002EFA84 4B ED 34 55 */ bl __div2i
-/* 802F3E28 002EFA88 54 84 D0 3E */ rotlwi r4, r4, 0x1a
-/* 802F3E2C 002EFA8C 7C 60 36 70 */ srawi r0, r3, 6
-/* 802F3E30 002EFA90 50 64 D0 0A */ rlwimi r4, r3, 0x1a, 0, 5
-/* 802F3E34 002EFA94 3B 7B 00 01 */ addi r27, r27, 1
-/* 802F3E38 002EFA98 28 1B 00 0A */ cmplwi r27, 0xa
-/* 802F3E3C 002EFA9C 57 A0 08 3C */ slwi r0, r29, 1
-/* 802F3E40 002EFAA0 7C 64 F0 10 */ subfc r3, r4, r30
-/* 802F3E44 002EFAA4 7F BC EB 78 */ mr r28, r29
-/* 802F3E48 002EFAA8 7C 7A 03 2E */ sthx r3, r26, r0
-/* 802F3E4C 002EFAAC 40 81 00 08 */ ble lbl_802F3E54
-/* 802F3E50 002EFAB0 3B 60 00 0A */ li r27, 0xa
-lbl_802F3E54:
-/* 802F3E54 002EFAB4 3B BD 00 01 */ addi r29, r29, 1
-/* 802F3E58 002EFAB8 93 7F 66 10 */ stw r27, 0x6610(r31)
-/* 802F3E5C 002EFABC 28 1D 00 0A */ cmplwi r29, 0xa
-/* 802F3E60 002EFAC0 41 80 00 08 */ blt lbl_802F3E68
-/* 802F3E64 002EFAC4 3B A0 00 00 */ li r29, 0
-lbl_802F3E68:
-/* 802F3E68 002EFAC8 93 BF 66 0C */ stw r29, 0x660c(r31)
-/* 802F3E6C 002EFACC 7F 23 CB 78 */ mr r3, r25
-/* 802F3E70 002EFAD0 4B F7 A9 15 */ bl OSRestoreInterrupts
-/* 802F3E74 002EFAD4 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha
-/* 802F3E78 002EFAD8 38 C0 FF FF */ li r6, -1
-/* 802F3E7C 002EFADC 38 83 FF FF */ addi r4, r3, 0x7FFFFFFF@l
-/* 802F3E80 002EFAE0 38 A0 FF FF */ li r5, -1
-/* 802F3E84 002EFAE4 7F 69 03 A6 */ mtctr r27
-/* 802F3E88 002EFAE8 28 1B 00 00 */ cmplwi r27, 0
-/* 802F3E8C 002EFAEC 40 81 00 50 */ ble lbl_802F3EDC
-lbl_802F3E90:
-/* 802F3E90 002EFAF0 2C 1C 00 00 */ cmpwi r28, 0
-/* 802F3E94 002EFAF4 40 80 00 08 */ bge lbl_802F3E9C
-/* 802F3E98 002EFAF8 3B 9C 00 0A */ addi r28, r28, 0xa
-lbl_802F3E9C:
-/* 802F3E9C 002EFAFC 57 80 08 3C */ slwi r0, r28, 1
-/* 802F3EA0 002EFB00 7C 7A 02 2E */ lhzx r3, r26, r0
-/* 802F3EA4 002EFB04 7C 03 20 00 */ cmpw r3, r4
-/* 802F3EA8 002EFB08 40 80 00 08 */ bge lbl_802F3EB0
-/* 802F3EAC 002EFB0C 7C 64 1B 78 */ mr r4, r3
-lbl_802F3EB0:
-/* 802F3EB0 002EFB10 7C 03 28 00 */ cmpw r3, r5
-/* 802F3EB4 002EFB14 40 81 00 08 */ ble lbl_802F3EBC
-/* 802F3EB8 002EFB18 7C 65 1B 78 */ mr r5, r3
-lbl_802F3EBC:
-/* 802F3EBC 002EFB1C 3C 63 00 01 */ addis r3, r3, 1
-/* 802F3EC0 002EFB20 38 63 80 00 */ addi r3, r3, -32768
-/* 802F3EC4 002EFB24 54 60 04 3E */ clrlwi r0, r3, 0x10
-/* 802F3EC8 002EFB28 7C 00 30 00 */ cmpw r0, r6
-/* 802F3ECC 002EFB2C 40 81 00 08 */ ble lbl_802F3ED4
-/* 802F3ED0 002EFB30 7C 06 03 78 */ mr r6, r0
-lbl_802F3ED4:
-/* 802F3ED4 002EFB34 3B 9C FF FF */ addi r28, r28, -1
-/* 802F3ED8 002EFB38 42 00 FF B8 */ bdnz lbl_802F3E90
-lbl_802F3EDC:
-/* 802F3EDC 002EFB3C 3C 60 00 01 */ lis r3, 0x00008000@ha
-/* 802F3EE0 002EFB40 38 06 80 00 */ addi r0, r6, -32768
-/* 802F3EE4 002EFB44 7C 84 28 50 */ subf r4, r4, r5
-/* 802F3EE8 002EFB48 38 63 80 00 */ addi r3, r3, 0x00008000@l
-/* 802F3EEC 002EFB4C 54 00 04 3E */ clrlwi r0, r0, 0x10
-/* 802F3EF0 002EFB50 7C 04 18 00 */ cmpw r4, r3
-/* 802F3EF4 002EFB54 40 80 00 08 */ bge lbl_802F3EFC
-/* 802F3EF8 002EFB58 54 A0 04 3E */ clrlwi r0, r5, 0x10
-lbl_802F3EFC:
-/* 802F3EFC 002EFB5C 90 1F 65 F4 */ stw r0, 0x65f4(r31)
-/* 802F3F00 002EFB60 39 61 00 30 */ addi r11, r1, 0x30
-/* 802F3F04 002EFB64 4B ED 32 69 */ bl _restgpr_25
-/* 802F3F08 002EFB68 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 802F3F0C 002EFB6C 7C 08 03 A6 */ mtlr r0
-/* 802F3F10 002EFB70 38 21 00 30 */ addi r1, r1, 0x30
-/* 802F3F14 002EFB74 4E 80 00 20 */ blr
-
-.global func_802F3F18
-func_802F3F18:
-/* 802F3F18 002EFB78 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802F3F1C 002EFB7C 7C 08 02 A6 */ mflr r0
-/* 802F3F20 002EFB80 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802F3F24 002EFB84 39 61 00 20 */ addi r11, r1, 0x20
-/* 802F3F28 002EFB88 4B ED 31 FD */ bl _savegpr_26
-/* 802F3F2C 002EFB8C 3F 40 80 00 */ lis r26, 0x800000F8@ha
-/* 802F3F30 002EFB90 83 E2 AA 30 */ lwz r31, lbl_80643030-_SDA2_BASE_(r2)
-/* 802F3F34 002EFB94 80 1A 00 F8 */ lwz r0, 0x800000F8@l(r26)
-/* 802F3F38 002EFB98 3F 60 43 1C */ lis r27, 0x431BDE83@ha
-/* 802F3F3C 002EFB9C 38 7B DE 83 */ addi r3, r27, 0x431BDE83@l
-/* 802F3F40 002EFBA0 80 BF 6D DC */ lwz r5, 0x6ddc(r31)
-/* 802F3F44 002EFBA4 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F3F48 002EFBA8 80 9F 6D D8 */ lwz r4, 0x6dd8(r31)
-/* 802F3F4C 002EFBAC 7C 03 00 16 */ mulhwu r0, r3, r0
-/* 802F3F50 002EFBB0 3B 80 00 00 */ li r28, 0
-/* 802F3F54 002EFBB4 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F3F58 002EFBB8 1C 00 19 64 */ mulli r0, r0, 0x1964
-/* 802F3F5C 002EFBBC 54 00 E8 FE */ srwi r0, r0, 3
-/* 802F3F60 002EFBC0 7F A0 28 10 */ subfc r29, r0, r5
-/* 802F3F64 002EFBC4 7F DC 21 10 */ subfe r30, r28, r4
-/* 802F3F68 002EFBC8 4B F7 E8 51 */ bl OSGetTime
-/* 802F3F6C 002EFBCC 6C 65 80 00 */ xoris r5, r3, 0x8000
-/* 802F3F70 002EFBD0 6F C0 80 00 */ xoris r0, r30, 0x8000
-/* 802F3F74 002EFBD4 7C 64 E8 10 */ subfc r3, r4, r29
-/* 802F3F78 002EFBD8 7C A5 01 10 */ subfe r5, r5, r0
-/* 802F3F7C 002EFBDC 7C A0 01 10 */ subfe r5, r0, r0
-/* 802F3F80 002EFBE0 7C A5 00 D1 */ neg. r5, r5
-/* 802F3F84 002EFBE4 41 82 00 28 */ beq lbl_802F3FAC
-/* 802F3F88 002EFBE8 80 1A 00 F8 */ lwz r0, 0xf8(r26)
-/* 802F3F8C 002EFBEC 38 7B DE 83 */ addi r3, r27, -8573
-/* 802F3F90 002EFBF0 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F3F94 002EFBF4 7C 03 00 16 */ mulhwu r0, r3, r0
-/* 802F3F98 002EFBF8 54 00 8B FE */ srwi r0, r0, 0xf
-/* 802F3F9C 002EFBFC 1C 00 41 50 */ mulli r0, r0, 0x4150
-/* 802F3FA0 002EFC00 54 00 E8 FE */ srwi r0, r0, 3
-/* 802F3FA4 002EFC04 7F BD 00 14 */ addc r29, r29, r0
-/* 802F3FA8 002EFC08 7F DE E1 14 */ adde r30, r30, r28
-lbl_802F3FAC:
-/* 802F3FAC 002EFC0C 3C 60 80 00 */ lis r3, 0x800000F8@ha
-/* 802F3FB0 002EFC10 3C 80 43 1C */ lis r4, 0x431BDE83@ha
-/* 802F3FB4 002EFC14 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
-/* 802F3FB8 002EFC18 38 A4 DE 83 */ addi r5, r4, 0x431BDE83@l
-/* 802F3FBC 002EFC1C 57 C3 18 38 */ slwi r3, r30, 3
-/* 802F3FC0 002EFC20 57 A4 18 38 */ slwi r4, r29, 3
-/* 802F3FC4 002EFC24 54 00 F0 BE */ srwi r0, r0, 2
-/* 802F3FC8 002EFC28 7C 05 00 16 */ mulhwu r0, r5, r0
-/* 802F3FCC 002EFC2C 53 A3 1F 7E */ rlwimi r3, r29, 3, 0x1d, 0x1f
-/* 802F3FD0 002EFC30 38 A0 00 00 */ li r5, 0
-/* 802F3FD4 002EFC34 54 06 8B FE */ srwi r6, r0, 0xf
-/* 802F3FD8 002EFC38 4B ED 32 A1 */ bl __div2i
-/* 802F3FDC 002EFC3C 80 1F 65 F4 */ lwz r0, 0x65f4(r31)
-/* 802F3FE0 002EFC40 54 84 D0 3E */ rotlwi r4, r4, 0x1a
-/* 802F3FE4 002EFC44 50 64 D0 0A */ rlwimi r4, r3, 0x1a, 0, 5
-/* 802F3FE8 002EFC48 7C 63 36 70 */ srawi r3, r3, 6
-/* 802F3FEC 002EFC4C 39 61 00 20 */ addi r11, r1, 0x20
-/* 802F3FF0 002EFC50 7C 60 20 14 */ addc r3, r0, r4
-/* 802F3FF4 002EFC54 4B ED 31 7D */ bl _restgpr_26
-/* 802F3FF8 002EFC58 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802F3FFC 002EFC5C 7C 08 03 A6 */ mtlr r0
-/* 802F4000 002EFC60 38 21 00 20 */ addi r1, r1, 0x20
-/* 802F4004 002EFC64 4E 80 00 20 */ blr
-
.global func_802F4008
func_802F4008:
/* 802F4008 002EFC68 4B D1 00 FC */ b memset
@@ -2690,6 +72,7 @@ lbl_802F4064:
/* 802F40F0 002EFD50 7C 08 03 A6 */ mtlr r0
/* 802F40F4 002EFD54 38 21 00 90 */ addi r1, r1, 0x90
/* 802F40F8 002EFD58 4E 80 00 20 */ blr
+
lbl_802F40FC:
/* 802F40FC 002EFD5C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802F4100 002EFD60 7C 08 02 A6 */ mflr r0
@@ -2892,7 +275,7 @@ lbl_802F43BC:
/* 802F43C8 002F0028 4B FF CF 8D */ bl MPiSetMultiBootFlag
/* 802F43CC 002F002C 7F 23 CB 78 */ mr r3, r25
/* 802F43D0 002F0030 4B F7 A3 B5 */ bl OSRestoreInterrupts
-/* 802F43D4 002F0034 4B FF F4 D5 */ bl func_802F38A8
+/* 802F43D4 002F0034 4B FF F4 D5 */ bl MPUpdateBeacon
/* 802F43D8 002F0038 80 1D 00 F8 */ lwz r0, 0xf8(r29)
/* 802F43DC 002F003C 54 00 F0 BE */ srwi r0, r0, 2
/* 802F43E0 002F0040 7C 1C 00 16 */ mulhwu r0, r28, r0
diff --git a/obj_files.mk b/obj_files.mk
index 857ac13..71161a5 100644
--- a/obj_files.mk
+++ b/obj_files.mk
@@ -321,6 +321,11 @@ TEXT_O_FILES := \
$(BUILD_DIR)/asm/SDK/MP/mpwd.o \
$(BUILD_DIR)/asm/SDK/MP/mpmisc.o \
$(BUILD_DIR)/asm/SDK/MP/mptxrx.o \
+ $(BUILD_DIR)/asm/SDK/MP/mpconnection.o \
+ $(BUILD_DIR)/asm/SDK/MP/mpparent.o \
+ $(BUILD_DIR)/asm/SDK/MP/mpnotification.o \
+ $(BUILD_DIR)/asm/SDK/MP/mpport.o \
+ $(BUILD_DIR)/asm/SDK/MP/mpbeacon.o \
$(BUILD_DIR)/asm/text_9.o \
$(BUILD_DIR)/asm/SDK/SO/SOCommon.o \
$(BUILD_DIR)/asm/SDK/SO/SOBasic.o \