1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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
|