.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