summaryrefslogtreecommitdiff
path: root/asm/SDK/MP/mpparent.s
blob: 8f046a0ea472c210d974896d1f63548c53f1b7c2 (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
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
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