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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
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
|