summaryrefslogtreecommitdiff
path: root/asm/SDK/MP/mpconnection.s
blob: da0381e913c2d29cde082d4e4c8bb2a375200d78 (plain)
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
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
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