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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global BTM_PmRegister
BTM_PmRegister:
/* 802C8DEC 002C4A4C 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 802C8DF0 002C4A50 41 82 00 38 */ beq lbl_802C8E28
/* 802C8DF4 002C4A54 88 04 00 00 */ lbz r0, 0(r4)
/* 802C8DF8 002C4A58 28 00 00 02 */ cmplwi r0, 2
/* 802C8DFC 002C4A5C 41 80 00 0C */ blt lbl_802C8E08
/* 802C8E00 002C4A60 38 60 00 05 */ li r3, 5
/* 802C8E04 002C4A64 4E 80 00 20 */ blr
lbl_802C8E08:
/* 802C8E08 002C4A68 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C8E0C 002C4A6C 54 00 1D 78 */ rlwinm r0, r0, 3, 0x15, 0x1c
/* 802C8E10 002C4A70 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C8E14 002C4A74 38 A0 00 00 */ li r5, 0
/* 802C8E18 002C4A78 7C 83 02 14 */ add r4, r3, r0
/* 802C8E1C 002C4A7C 98 A4 05 58 */ stb r5, 0x558(r4)
/* 802C8E20 002C4A80 38 60 00 00 */ li r3, 0
/* 802C8E24 002C4A84 4E 80 00 20 */ blr
lbl_802C8E28:
/* 802C8E28 002C4A88 3C C0 80 57 */ lis r6, lbl_80568B78@ha
/* 802C8E2C 002C4A8C 38 00 00 02 */ li r0, 2
/* 802C8E30 002C4A90 38 C6 8B 78 */ addi r6, r6, lbl_80568B78@l
/* 802C8E34 002C4A94 38 E0 00 00 */ li r7, 0
/* 802C8E38 002C4A98 7C 09 03 A6 */ mtctr r0
lbl_802C8E3C:
/* 802C8E3C 002C4A9C 88 06 05 58 */ lbz r0, 0x558(r6)
/* 802C8E40 002C4AA0 2C 00 00 00 */ cmpwi r0, 0
/* 802C8E44 002C4AA4 40 82 00 50 */ bne lbl_802C8E94
/* 802C8E48 002C4AA8 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 802C8E4C 002C4AAC 41 82 00 28 */ beq lbl_802C8E74
/* 802C8E50 002C4AB0 2C 05 00 00 */ cmpwi r5, 0
/* 802C8E54 002C4AB4 40 82 00 0C */ bne lbl_802C8E60
/* 802C8E58 002C4AB8 38 60 00 05 */ li r3, 5
/* 802C8E5C 002C4ABC 4E 80 00 20 */ blr
lbl_802C8E60:
/* 802C8E60 002C4AC0 3C C0 80 57 */ lis r6, lbl_80568B78@ha
/* 802C8E64 002C4AC4 54 E0 18 38 */ slwi r0, r7, 3
/* 802C8E68 002C4AC8 38 C6 8B 78 */ addi r6, r6, lbl_80568B78@l
/* 802C8E6C 002C4ACC 7C C6 02 14 */ add r6, r6, r0
/* 802C8E70 002C4AD0 90 A6 05 54 */ stw r5, 0x554(r6)
lbl_802C8E74:
/* 802C8E74 002C4AD4 3C A0 80 57 */ lis r5, lbl_80568B78@ha
/* 802C8E78 002C4AD8 54 E0 18 38 */ slwi r0, r7, 3
/* 802C8E7C 002C4ADC 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
/* 802C8E80 002C4AE0 7C A5 02 14 */ add r5, r5, r0
/* 802C8E84 002C4AE4 98 65 05 58 */ stb r3, 0x558(r5)
/* 802C8E88 002C4AE8 38 60 00 00 */ li r3, 0
/* 802C8E8C 002C4AEC 98 E4 00 00 */ stb r7, 0(r4)
/* 802C8E90 002C4AF0 4E 80 00 20 */ blr
lbl_802C8E94:
/* 802C8E94 002C4AF4 38 C6 00 08 */ addi r6, r6, 8
/* 802C8E98 002C4AF8 38 E7 00 01 */ addi r7, r7, 1
/* 802C8E9C 002C4AFC 42 00 FF A0 */ bdnz lbl_802C8E3C
/* 802C8EA0 002C4B00 38 60 00 03 */ li r3, 3
/* 802C8EA4 002C4B04 4E 80 00 20 */ blr
.global BTM_SetPowerMode
BTM_SetPowerMode:
/* 802C8EA8 002C4B08 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802C8EAC 002C4B0C 7C 08 02 A6 */ mflr r0
/* 802C8EB0 002C4B10 90 01 00 24 */ stw r0, 0x24(r1)
/* 802C8EB4 002C4B14 39 61 00 20 */ addi r11, r1, 0x20
/* 802C8EB8 002C4B18 4B EF E2 6D */ bl _savegpr_26
/* 802C8EBC 002C4B1C 28 03 00 02 */ cmplwi r3, 2
/* 802C8EC0 002C4B20 7C 7B 1B 78 */ mr r27, r3
/* 802C8EC4 002C4B24 7C 9A 23 78 */ mr r26, r4
/* 802C8EC8 002C4B28 7C BC 2B 78 */ mr r28, r5
/* 802C8ECC 002C4B2C 41 80 00 08 */ blt lbl_802C8ED4
/* 802C8ED0 002C4B30 3B 60 00 80 */ li r27, 0x80
lbl_802C8ED4:
/* 802C8ED4 002C4B34 2C 05 00 00 */ cmpwi r5, 0
/* 802C8ED8 002C4B38 40 82 00 0C */ bne lbl_802C8EE4
/* 802C8EDC 002C4B3C 38 60 00 05 */ li r3, 5
/* 802C8EE0 002C4B40 48 00 01 80 */ b lbl_802C9060
lbl_802C8EE4:
/* 802C8EE4 002C4B44 88 05 00 08 */ lbz r0, 8(r5)
/* 802C8EE8 002C4B48 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C8EEC 002C4B4C 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C8EF0 002C4B50 3B A0 00 00 */ li r29, 0
/* 802C8EF4 002C4B54 54 1F 07 34 */ rlwinm r31, r0, 0, 0x1c, 0x1a
/* 802C8EF8 002C4B58 3B C3 00 34 */ addi r30, r3, 0x34
lbl_802C8EFC:
/* 802C8EFC 002C4B5C 88 1E 01 19 */ lbz r0, 0x119(r30)
/* 802C8F00 002C4B60 2C 00 00 00 */ cmpwi r0, 0
/* 802C8F04 002C4B64 41 82 00 1C */ beq lbl_802C8F20
/* 802C8F08 002C4B68 7F 44 D3 78 */ mr r4, r26
/* 802C8F0C 002C4B6C 38 7E 00 08 */ addi r3, r30, 8
/* 802C8F10 002C4B70 38 A0 00 06 */ li r5, 6
/* 802C8F14 002C4B74 4B F0 14 85 */ bl memcmp
/* 802C8F18 002C4B78 2C 03 00 00 */ cmpwi r3, 0
/* 802C8F1C 002C4B7C 41 82 00 14 */ beq lbl_802C8F30
lbl_802C8F20:
/* 802C8F20 002C4B80 3B BD 00 01 */ addi r29, r29, 1
/* 802C8F24 002C4B84 3B DE 01 1C */ addi r30, r30, 0x11c
/* 802C8F28 002C4B88 28 1D 00 04 */ cmplwi r29, 4
/* 802C8F2C 002C4B8C 41 80 FF D0 */ blt lbl_802C8EFC
lbl_802C8F30:
/* 802C8F30 002C4B90 57 BE 06 3E */ clrlwi r30, r29, 0x18
/* 802C8F34 002C4B94 2C 1E 00 04 */ cmpwi r30, 4
/* 802C8F38 002C4B98 40 82 00 0C */ bne lbl_802C8F44
/* 802C8F3C 002C4B9C 38 60 00 07 */ li r3, 7
/* 802C8F40 002C4BA0 48 00 01 20 */ b lbl_802C9060
lbl_802C8F44:
/* 802C8F44 002C4BA4 1C 1E 00 22 */ mulli r0, r30, 0x22
/* 802C8F48 002C4BA8 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C8F4C 002C4BAC 57 E3 06 3F */ clrlwi. r3, r31, 0x18
/* 802C8F50 002C4BB0 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C8F54 002C4BB4 7C 84 02 14 */ add r4, r4, r0
/* 802C8F58 002C4BB8 3B A4 04 CC */ addi r29, r4, 0x4cc
/* 802C8F5C 002C4BBC 41 82 00 30 */ beq lbl_802C8F8C
/* 802C8F60 002C4BC0 3B 43 FF FF */ addi r26, r3, -1
/* 802C8F64 002C4BC4 4B FF D9 FD */ bl BTM_ReadLocalFeatures
/* 802C8F68 002C4BC8 38 82 A4 78 */ addi r4, r2, lbl_80642A78-_SDA2_BASE_
/* 802C8F6C 002C4BCC 38 A2 A4 7C */ addi r5, r2, lbl_80642A7C-_SDA2_BASE_
/* 802C8F70 002C4BD0 7C 04 D0 AE */ lbzx r0, r4, r26
/* 802C8F74 002C4BD4 7C 85 D0 AE */ lbzx r4, r5, r26
/* 802C8F78 002C4BD8 7C 03 00 AE */ lbzx r0, r3, r0
/* 802C8F7C 002C4BDC 7C 80 00 39 */ and. r0, r4, r0
/* 802C8F80 002C4BE0 40 82 00 0C */ bne lbl_802C8F8C
/* 802C8F84 002C4BE4 38 60 00 04 */ li r3, 4
/* 802C8F88 002C4BE8 48 00 00 D8 */ b lbl_802C9060
lbl_802C8F8C:
/* 802C8F8C 002C4BEC 88 1D 00 20 */ lbz r0, 0x20(r29)
/* 802C8F90 002C4BF0 57 E3 06 3E */ clrlwi r3, r31, 0x18
/* 802C8F94 002C4BF4 7C 03 00 40 */ cmplw r3, r0
/* 802C8F98 002C4BF8 40 82 00 30 */ bne lbl_802C8FC8
/* 802C8F9C 002C4BFC 2C 03 00 00 */ cmpwi r3, 0
/* 802C8FA0 002C4C00 41 82 00 20 */ beq lbl_802C8FC0
/* 802C8FA4 002C4C04 A0 7D 00 1E */ lhz r3, 0x1e(r29)
/* 802C8FA8 002C4C08 A0 1C 00 00 */ lhz r0, 0(r28)
/* 802C8FAC 002C4C0C 7C 00 18 40 */ cmplw r0, r3
/* 802C8FB0 002C4C10 41 80 00 18 */ blt lbl_802C8FC8
/* 802C8FB4 002C4C14 A0 1C 00 02 */ lhz r0, 2(r28)
/* 802C8FB8 002C4C18 7C 00 18 40 */ cmplw r0, r3
/* 802C8FBC 002C4C1C 41 81 00 0C */ bgt lbl_802C8FC8
lbl_802C8FC0:
/* 802C8FC0 002C4C20 38 60 00 00 */ li r3, 0
/* 802C8FC4 002C4C24 48 00 00 9C */ b lbl_802C9060
lbl_802C8FC8:
/* 802C8FC8 002C4C28 28 1B 00 80 */ cmplwi r27, 0x80
/* 802C8FCC 002C4C2C 41 82 00 54 */ beq lbl_802C9020
/* 802C8FD0 002C4C30 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C8FD4 002C4C34 57 60 1D 78 */ rlwinm r0, r27, 3, 0x15, 0x1c
/* 802C8FD8 002C4C38 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C8FDC 002C4C3C 7C 63 02 14 */ add r3, r3, r0
/* 802C8FE0 002C4C40 88 03 05 58 */ lbz r0, 0x558(r3)
/* 802C8FE4 002C4C44 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 802C8FE8 002C4C48 41 82 00 38 */ beq lbl_802C9020
/* 802C8FEC 002C4C4C A0 9C 00 00 */ lhz r4, 0(r28)
/* 802C8FF0 002C4C50 1C BB 00 0A */ mulli r5, r27, 0xa
/* 802C8FF4 002C4C54 A0 7C 00 02 */ lhz r3, 2(r28)
/* 802C8FF8 002C4C58 38 00 00 01 */ li r0, 1
/* 802C8FFC 002C4C5C 7C 85 EB 6E */ sthux r4, r5, r29
/* 802C9000 002C4C60 B0 65 00 02 */ sth r3, 2(r5)
/* 802C9004 002C4C64 A0 9C 00 04 */ lhz r4, 4(r28)
/* 802C9008 002C4C68 A0 7C 00 06 */ lhz r3, 6(r28)
/* 802C900C 002C4C6C B0 85 00 04 */ sth r4, 4(r5)
/* 802C9010 002C4C70 B0 65 00 06 */ sth r3, 6(r5)
/* 802C9014 002C4C74 A0 7C 00 08 */ lhz r3, 8(r28)
/* 802C9018 002C4C78 B0 65 00 08 */ sth r3, 8(r5)
/* 802C901C 002C4C7C 98 1D 00 21 */ stb r0, 0x21(r29)
lbl_802C9020:
/* 802C9020 002C4C80 88 1D 00 20 */ lbz r0, 0x20(r29)
/* 802C9024 002C4C84 28 00 00 01 */ cmplwi r0, 1
/* 802C9028 002C4C88 41 82 00 20 */ beq lbl_802C9048
/* 802C902C 002C4C8C 28 00 00 04 */ cmplwi r0, 4
/* 802C9030 002C4C90 41 82 00 18 */ beq lbl_802C9048
/* 802C9034 002C4C94 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C9038 002C4C98 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C903C 002C4C9C 88 03 05 64 */ lbz r0, 0x564(r3)
/* 802C9040 002C4CA0 28 00 00 04 */ cmplwi r0, 4
/* 802C9044 002C4CA4 41 82 00 0C */ beq lbl_802C9050
lbl_802C9048:
/* 802C9048 002C4CA8 38 60 00 0D */ li r3, 0xd
/* 802C904C 002C4CAC 48 00 00 14 */ b lbl_802C9060
lbl_802C9050:
/* 802C9050 002C4CB0 7F 63 DB 78 */ mr r3, r27
/* 802C9054 002C4CB4 7F C4 F3 78 */ mr r4, r30
/* 802C9058 002C4CB8 7F 85 E3 78 */ mr r5, r28
/* 802C905C 002C4CBC 48 00 05 19 */ bl btm_pm_snd_md_req
lbl_802C9060:
/* 802C9060 002C4CC0 39 61 00 20 */ addi r11, r1, 0x20
/* 802C9064 002C4CC4 4B EF E1 0D */ bl _restgpr_26
/* 802C9068 002C4CC8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802C906C 002C4CCC 7C 08 03 A6 */ mtlr r0
/* 802C9070 002C4CD0 38 21 00 20 */ addi r1, r1, 0x20
/* 802C9074 002C4CD4 4E 80 00 20 */ blr
.global BTM_ReadPowerMode
BTM_ReadPowerMode:
/* 802C9078 002C4CD8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802C907C 002C4CDC 7C 08 02 A6 */ mflr r0
/* 802C9080 002C4CE0 3C A0 80 57 */ lis r5, lbl_80568B78@ha
/* 802C9084 002C4CE4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802C9088 002C4CE8 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
/* 802C908C 002C4CEC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802C9090 002C4CF0 3B E0 00 00 */ li r31, 0
/* 802C9094 002C4CF4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802C9098 002C4CF8 3B C5 00 34 */ addi r30, r5, 0x34
/* 802C909C 002C4CFC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802C90A0 002C4D00 7C 9D 23 78 */ mr r29, r4
/* 802C90A4 002C4D04 93 81 00 10 */ stw r28, 0x10(r1)
/* 802C90A8 002C4D08 7C 7C 1B 78 */ mr r28, r3
lbl_802C90AC:
/* 802C90AC 002C4D0C 88 1E 01 19 */ lbz r0, 0x119(r30)
/* 802C90B0 002C4D10 2C 00 00 00 */ cmpwi r0, 0
/* 802C90B4 002C4D14 41 82 00 1C */ beq lbl_802C90D0
/* 802C90B8 002C4D18 7F 84 E3 78 */ mr r4, r28
/* 802C90BC 002C4D1C 38 7E 00 08 */ addi r3, r30, 8
/* 802C90C0 002C4D20 38 A0 00 06 */ li r5, 6
/* 802C90C4 002C4D24 4B F0 12 D5 */ bl memcmp
/* 802C90C8 002C4D28 2C 03 00 00 */ cmpwi r3, 0
/* 802C90CC 002C4D2C 41 82 00 14 */ beq lbl_802C90E0
lbl_802C90D0:
/* 802C90D0 002C4D30 3B FF 00 01 */ addi r31, r31, 1
/* 802C90D4 002C4D34 3B DE 01 1C */ addi r30, r30, 0x11c
/* 802C90D8 002C4D38 28 1F 00 04 */ cmplwi r31, 4
/* 802C90DC 002C4D3C 41 80 FF D0 */ blt lbl_802C90AC
lbl_802C90E0:
/* 802C90E0 002C4D40 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 802C90E4 002C4D44 2C 00 00 04 */ cmpwi r0, 4
/* 802C90E8 002C4D48 40 82 00 0C */ bne lbl_802C90F4
/* 802C90EC 002C4D4C 38 60 00 07 */ li r3, 7
/* 802C90F0 002C4D50 48 00 00 20 */ b lbl_802C9110
lbl_802C90F4:
/* 802C90F4 002C4D54 1C 00 00 22 */ mulli r0, r0, 0x22
/* 802C90F8 002C4D58 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C90FC 002C4D5C 38 60 00 00 */ li r3, 0
/* 802C9100 002C4D60 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C9104 002C4D64 7C 84 02 14 */ add r4, r4, r0
/* 802C9108 002C4D68 88 04 04 EC */ lbz r0, 0x4ec(r4)
/* 802C910C 002C4D6C 98 1D 00 00 */ stb r0, 0(r29)
lbl_802C9110:
/* 802C9110 002C4D70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802C9114 002C4D74 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802C9118 002C4D78 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802C911C 002C4D7C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802C9120 002C4D80 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802C9124 002C4D84 7C 08 03 A6 */ mtlr r0
/* 802C9128 002C4D88 38 21 00 20 */ addi r1, r1, 0x20
/* 802C912C 002C4D8C 4E 80 00 20 */ blr
.global btm_pm_reset
btm_pm_reset:
/* 802C9130 002C4D90 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C9134 002C4D94 39 80 00 00 */ li r12, 0
/* 802C9138 002C4D98 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C913C 002C4D9C 88 03 05 65 */ lbz r0, 0x565(r3)
/* 802C9140 002C4DA0 28 00 00 80 */ cmplwi r0, 0x80
/* 802C9144 002C4DA4 41 82 00 1C */ beq lbl_802C9160
/* 802C9148 002C4DA8 54 00 1D 78 */ rlwinm r0, r0, 3, 0x15, 0x1c
/* 802C914C 002C4DAC 7C 63 02 14 */ add r3, r3, r0
/* 802C9150 002C4DB0 88 03 05 58 */ lbz r0, 0x558(r3)
/* 802C9154 002C4DB4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 802C9158 002C4DB8 41 82 00 08 */ beq lbl_802C9160
/* 802C915C 002C4DBC 81 83 05 54 */ lwz r12, 0x554(r3)
lbl_802C9160:
/* 802C9160 002C4DC0 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C9164 002C4DC4 2C 0C 00 00 */ cmpwi r12, 0
/* 802C9168 002C4DC8 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C916C 002C4DCC 38 00 00 00 */ li r0, 0
/* 802C9170 002C4DD0 38 80 00 04 */ li r4, 4
/* 802C9174 002C4DD4 98 03 05 58 */ stb r0, 0x558(r3)
/* 802C9178 002C4DD8 98 83 05 64 */ stb r4, 0x564(r3)
/* 802C917C 002C4DDC 98 03 05 60 */ stb r0, 0x560(r3)
/* 802C9180 002C4DE0 4D 82 00 20 */ beqlr
/* 802C9184 002C4DE4 1C 04 01 1C */ mulli r0, r4, 0x11c
/* 802C9188 002C4DE8 38 80 00 05 */ li r4, 5
/* 802C918C 002C4DEC 38 A0 00 0C */ li r5, 0xc
/* 802C9190 002C4DF0 38 C0 00 00 */ li r6, 0
/* 802C9194 002C4DF4 7C 63 02 14 */ add r3, r3, r0
/* 802C9198 002C4DF8 38 63 00 3C */ addi r3, r3, 0x3c
/* 802C919C 002C4DFC 7D 89 03 A6 */ mtctr r12
/* 802C91A0 002C4E00 4E 80 04 20 */ bctr
/* 802C91A4 002C4E04 4E 80 00 20 */ blr
.global btm_pm_sm_alloc
btm_pm_sm_alloc:
/* 802C91A8 002C4E08 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C91AC 002C4E0C 7C 08 02 A6 */ mflr r0
/* 802C91B0 002C4E10 38 80 00 00 */ li r4, 0
/* 802C91B4 002C4E14 38 A0 00 22 */ li r5, 0x22
/* 802C91B8 002C4E18 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C91BC 002C4E1C 1C 03 00 22 */ mulli r0, r3, 0x22
/* 802C91C0 002C4E20 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C91C4 002C4E24 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C91C8 002C4E28 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C91CC 002C4E2C 7C 63 02 14 */ add r3, r3, r0
/* 802C91D0 002C4E30 3B E3 04 CC */ addi r31, r3, 0x4cc
/* 802C91D4 002C4E34 7F E3 FB 78 */ mr r3, r31
/* 802C91D8 002C4E38 4B D3 AF 2D */ bl memset
/* 802C91DC 002C4E3C 38 00 00 00 */ li r0, 0
/* 802C91E0 002C4E40 98 1F 00 20 */ stb r0, 0x20(r31)
/* 802C91E4 002C4E44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C91E8 002C4E48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C91EC 002C4E4C 7C 08 03 A6 */ mtlr r0
/* 802C91F0 002C4E50 38 21 00 10 */ addi r1, r1, 0x10
/* 802C91F4 002C4E54 4E 80 00 20 */ blr
.global btm_pm_compare_modes
btm_pm_compare_modes:
/* 802C91F8 002C4E58 2C 03 00 00 */ cmpwi r3, 0
/* 802C91FC 002C4E5C 40 82 00 34 */ bne lbl_802C9230
/* 802C9200 002C4E60 A0 C4 00 00 */ lhz r6, 0(r4)
/* 802C9204 002C4E64 7C 83 23 78 */ mr r3, r4
/* 802C9208 002C4E68 A0 04 00 02 */ lhz r0, 2(r4)
/* 802C920C 002C4E6C B0 C5 00 00 */ sth r6, 0(r5)
/* 802C9210 002C4E70 B0 05 00 02 */ sth r0, 2(r5)
/* 802C9214 002C4E74 A0 C4 00 04 */ lhz r6, 4(r4)
/* 802C9218 002C4E78 A0 04 00 06 */ lhz r0, 6(r4)
/* 802C921C 002C4E7C B0 C5 00 04 */ sth r6, 4(r5)
/* 802C9220 002C4E80 B0 05 00 06 */ sth r0, 6(r5)
/* 802C9224 002C4E84 A0 04 00 08 */ lhz r0, 8(r4)
/* 802C9228 002C4E88 B0 05 00 08 */ sth r0, 8(r5)
/* 802C922C 002C4E8C 4E 80 00 20 */ blr
lbl_802C9230:
/* 802C9230 002C4E90 89 24 00 08 */ lbz r9, 8(r4)
/* 802C9234 002C4E94 2C 09 00 00 */ cmpwi r9, 0
/* 802C9238 002C4E98 41 82 00 10 */ beq lbl_802C9248
/* 802C923C 002C4E9C 89 03 00 08 */ lbz r8, 8(r3)
/* 802C9240 002C4EA0 2C 08 00 00 */ cmpwi r8, 0
/* 802C9244 002C4EA4 40 82 00 0C */ bne lbl_802C9250
lbl_802C9248:
/* 802C9248 002C4EA8 38 60 00 00 */ li r3, 0
/* 802C924C 002C4EAC 4E 80 00 20 */ blr
lbl_802C9250:
/* 802C9250 002C4EB0 55 00 06 F7 */ rlwinm. r0, r8, 0, 0x1b, 0x1b
/* 802C9254 002C4EB4 41 82 00 40 */ beq lbl_802C9294
/* 802C9258 002C4EB8 A0 83 00 00 */ lhz r4, 0(r3)
/* 802C925C 002C4EBC A0 03 00 02 */ lhz r0, 2(r3)
/* 802C9260 002C4EC0 B0 85 00 00 */ sth r4, 0(r5)
/* 802C9264 002C4EC4 B0 05 00 02 */ sth r0, 2(r5)
/* 802C9268 002C4EC8 A0 83 00 04 */ lhz r4, 4(r3)
/* 802C926C 002C4ECC A0 03 00 06 */ lhz r0, 6(r3)
/* 802C9270 002C4ED0 B0 85 00 04 */ sth r4, 4(r5)
/* 802C9274 002C4ED4 B0 05 00 06 */ sth r0, 6(r5)
/* 802C9278 002C4ED8 A0 03 00 08 */ lhz r0, 8(r3)
/* 802C927C 002C4EDC 7C A3 2B 78 */ mr r3, r5
/* 802C9280 002C4EE0 B0 05 00 08 */ sth r0, 8(r5)
/* 802C9284 002C4EE4 88 05 00 08 */ lbz r0, 8(r5)
/* 802C9288 002C4EE8 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 802C928C 002C4EEC 98 05 00 08 */ stb r0, 8(r5)
/* 802C9290 002C4EF0 4E 80 00 20 */ blr
lbl_802C9294:
/* 802C9294 002C4EF4 55 20 06 F7 */ rlwinm. r0, r9, 0, 0x1b, 0x1b
/* 802C9298 002C4EF8 41 82 00 40 */ beq lbl_802C92D8
/* 802C929C 002C4EFC A0 C4 00 00 */ lhz r6, 0(r4)
/* 802C92A0 002C4F00 7C A3 2B 78 */ mr r3, r5
/* 802C92A4 002C4F04 A0 04 00 02 */ lhz r0, 2(r4)
/* 802C92A8 002C4F08 B0 C5 00 00 */ sth r6, 0(r5)
/* 802C92AC 002C4F0C B0 05 00 02 */ sth r0, 2(r5)
/* 802C92B0 002C4F10 A0 C4 00 04 */ lhz r6, 4(r4)
/* 802C92B4 002C4F14 A0 04 00 06 */ lhz r0, 6(r4)
/* 802C92B8 002C4F18 B0 C5 00 04 */ sth r6, 4(r5)
/* 802C92BC 002C4F1C B0 05 00 06 */ sth r0, 6(r5)
/* 802C92C0 002C4F20 A0 04 00 08 */ lhz r0, 8(r4)
/* 802C92C4 002C4F24 B0 05 00 08 */ sth r0, 8(r5)
/* 802C92C8 002C4F28 88 05 00 08 */ lbz r0, 8(r5)
/* 802C92CC 002C4F2C 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 802C92D0 002C4F30 98 05 00 08 */ stb r0, 8(r5)
/* 802C92D4 002C4F34 4E 80 00 20 */ blr
lbl_802C92D8:
/* 802C92D8 002C4F38 38 E8 FF FF */ addi r7, r8, -1
/* 802C92DC 002C4F3C 3C C0 80 40 */ lis r6, lbl_803FDDB8@ha
/* 802C92E0 002C4F40 54 E0 10 3A */ slwi r0, r7, 2
/* 802C92E4 002C4F44 7C 07 00 50 */ subf r0, r7, r0
/* 802C92E8 002C4F48 38 C6 DD B8 */ addi r6, r6, lbl_803FDDB8@l
/* 802C92EC 002C4F4C 7C E9 02 14 */ add r7, r9, r0
/* 802C92F0 002C4F50 38 07 FF FF */ addi r0, r7, -1
/* 802C92F4 002C4F54 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 802C92F8 002C4F58 7C 06 00 AE */ lbzx r0, r6, r0
/* 802C92FC 002C4F5C 2C 00 00 02 */ cmpwi r0, 2
/* 802C9300 002C4F60 41 82 00 4C */ beq lbl_802C934C
/* 802C9304 002C4F64 40 80 00 10 */ bge lbl_802C9314
/* 802C9308 002C4F68 2C 00 00 01 */ cmpwi r0, 1
/* 802C930C 002C4F6C 40 80 00 14 */ bge lbl_802C9320
/* 802C9310 002C4F70 48 00 00 FC */ b lbl_802C940C
lbl_802C9314:
/* 802C9314 002C4F74 2C 00 00 04 */ cmpwi r0, 4
/* 802C9318 002C4F78 40 80 00 F4 */ bge lbl_802C940C
/* 802C931C 002C4F7C 48 00 00 60 */ b lbl_802C937C
lbl_802C9320:
/* 802C9320 002C4F80 A0 83 00 00 */ lhz r4, 0(r3)
/* 802C9324 002C4F84 A0 03 00 02 */ lhz r0, 2(r3)
/* 802C9328 002C4F88 B0 85 00 00 */ sth r4, 0(r5)
/* 802C932C 002C4F8C B0 05 00 02 */ sth r0, 2(r5)
/* 802C9330 002C4F90 A0 83 00 04 */ lhz r4, 4(r3)
/* 802C9334 002C4F94 A0 03 00 06 */ lhz r0, 6(r3)
/* 802C9338 002C4F98 B0 85 00 04 */ sth r4, 4(r5)
/* 802C933C 002C4F9C B0 05 00 06 */ sth r0, 6(r5)
/* 802C9340 002C4FA0 A0 03 00 08 */ lhz r0, 8(r3)
/* 802C9344 002C4FA4 B0 05 00 08 */ sth r0, 8(r5)
/* 802C9348 002C4FA8 4E 80 00 20 */ blr
lbl_802C934C:
/* 802C934C 002C4FAC A0 C4 00 00 */ lhz r6, 0(r4)
/* 802C9350 002C4FB0 7C 83 23 78 */ mr r3, r4
/* 802C9354 002C4FB4 A0 04 00 02 */ lhz r0, 2(r4)
/* 802C9358 002C4FB8 B0 C5 00 00 */ sth r6, 0(r5)
/* 802C935C 002C4FBC B0 05 00 02 */ sth r0, 2(r5)
/* 802C9360 002C4FC0 A0 C4 00 04 */ lhz r6, 4(r4)
/* 802C9364 002C4FC4 A0 04 00 06 */ lhz r0, 6(r4)
/* 802C9368 002C4FC8 B0 C5 00 04 */ sth r6, 4(r5)
/* 802C936C 002C4FCC B0 05 00 06 */ sth r0, 6(r5)
/* 802C9370 002C4FD0 A0 04 00 08 */ lhz r0, 8(r4)
/* 802C9374 002C4FD4 B0 05 00 08 */ sth r0, 8(r5)
/* 802C9378 002C4FD8 4E 80 00 20 */ blr
lbl_802C937C:
/* 802C937C 002C4FDC 99 05 00 08 */ stb r8, 8(r5)
/* 802C9380 002C4FE0 A0 C4 00 00 */ lhz r6, 0(r4)
/* 802C9384 002C4FE4 A0 03 00 00 */ lhz r0, 0(r3)
/* 802C9388 002C4FE8 7C 00 30 40 */ cmplw r0, r6
/* 802C938C 002C4FEC 40 80 00 08 */ bge lbl_802C9394
/* 802C9390 002C4FF0 7C 06 03 78 */ mr r6, r0
lbl_802C9394:
/* 802C9394 002C4FF4 B0 C5 00 00 */ sth r6, 0(r5)
/* 802C9398 002C4FF8 A0 E4 00 02 */ lhz r7, 2(r4)
/* 802C939C 002C4FFC A0 03 00 02 */ lhz r0, 2(r3)
/* 802C93A0 002C5000 7C 00 38 40 */ cmplw r0, r7
/* 802C93A4 002C5004 40 81 00 08 */ ble lbl_802C93AC
/* 802C93A8 002C5008 7C 07 03 78 */ mr r7, r0
lbl_802C93AC:
/* 802C93AC 002C500C A0 C5 00 00 */ lhz r6, 0(r5)
/* 802C93B0 002C5010 54 E0 04 3E */ clrlwi r0, r7, 0x10
/* 802C93B4 002C5014 B0 E5 00 02 */ sth r7, 2(r5)
/* 802C93B8 002C5018 7C 06 00 40 */ cmplw r6, r0
/* 802C93BC 002C501C 40 80 00 0C */ bge lbl_802C93C8
/* 802C93C0 002C5020 38 60 00 00 */ li r3, 0
/* 802C93C4 002C5024 4E 80 00 20 */ blr
lbl_802C93C8:
/* 802C93C8 002C5028 88 05 00 08 */ lbz r0, 8(r5)
/* 802C93CC 002C502C 28 00 00 02 */ cmplwi r0, 2
/* 802C93D0 002C5030 40 82 00 34 */ bne lbl_802C9404
/* 802C93D4 002C5034 A0 C4 00 04 */ lhz r6, 4(r4)
/* 802C93D8 002C5038 A0 03 00 04 */ lhz r0, 4(r3)
/* 802C93DC 002C503C 7C 00 30 40 */ cmplw r0, r6
/* 802C93E0 002C5040 40 81 00 08 */ ble lbl_802C93E8
/* 802C93E4 002C5044 7C 06 03 78 */ mr r6, r0
lbl_802C93E8:
/* 802C93E8 002C5048 B0 C5 00 04 */ sth r6, 4(r5)
/* 802C93EC 002C504C A0 84 00 06 */ lhz r4, 6(r4)
/* 802C93F0 002C5050 A0 03 00 06 */ lhz r0, 6(r3)
/* 802C93F4 002C5054 7C 00 20 40 */ cmplw r0, r4
/* 802C93F8 002C5058 40 81 00 08 */ ble lbl_802C9400
/* 802C93FC 002C505C 7C 04 03 78 */ mr r4, r0
lbl_802C9400:
/* 802C9400 002C5060 B0 85 00 06 */ sth r4, 6(r5)
lbl_802C9404:
/* 802C9404 002C5064 7C A3 2B 78 */ mr r3, r5
/* 802C9408 002C5068 4E 80 00 20 */ blr
lbl_802C940C:
/* 802C940C 002C506C 38 60 00 00 */ li r3, 0
/* 802C9410 002C5070 4E 80 00 20 */ blr
.global btm_pm_get_set_mode
btm_pm_get_set_mode:
/* 802C9414 002C5074 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802C9418 002C5078 7C 08 02 A6 */ mflr r0
/* 802C941C 002C507C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802C9420 002C5080 39 61 00 20 */ addi r11, r1, 0x20
/* 802C9424 002C5084 4B EF DD 01 */ bl _savegpr_26
/* 802C9428 002C5088 2C 05 00 00 */ cmpwi r5, 0
/* 802C942C 002C508C 7C 7A 1B 78 */ mr r26, r3
/* 802C9430 002C5090 7C BB 2B 78 */ mr r27, r5
/* 802C9434 002C5094 7C DC 33 78 */ mr r28, r6
/* 802C9438 002C5098 38 E0 00 00 */ li r7, 0
/* 802C943C 002C509C 41 82 00 48 */ beq lbl_802C9484
/* 802C9440 002C50A0 88 05 00 08 */ lbz r0, 8(r5)
/* 802C9444 002C50A4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 802C9448 002C50A8 41 82 00 3C */ beq lbl_802C9484
/* 802C944C 002C50AC A0 65 00 00 */ lhz r3, 0(r5)
/* 802C9450 002C50B0 A0 05 00 02 */ lhz r0, 2(r5)
/* 802C9454 002C50B4 B0 66 00 00 */ sth r3, 0(r6)
/* 802C9458 002C50B8 B0 06 00 02 */ sth r0, 2(r6)
/* 802C945C 002C50BC A0 65 00 04 */ lhz r3, 4(r5)
/* 802C9460 002C50C0 A0 05 00 06 */ lhz r0, 6(r5)
/* 802C9464 002C50C4 B0 66 00 04 */ sth r3, 4(r6)
/* 802C9468 002C50C8 B0 06 00 06 */ sth r0, 6(r6)
/* 802C946C 002C50CC A0 05 00 08 */ lhz r0, 8(r5)
/* 802C9470 002C50D0 B0 06 00 08 */ sth r0, 8(r6)
/* 802C9474 002C50D4 88 06 00 08 */ lbz r0, 8(r6)
/* 802C9478 002C50D8 54 03 07 34 */ rlwinm r3, r0, 0, 0x1c, 0x1a
/* 802C947C 002C50DC 98 66 00 08 */ stb r3, 8(r6)
/* 802C9480 002C50E0 48 00 00 DC */ b lbl_802C955C
lbl_802C9484:
/* 802C9484 002C50E4 3F E0 80 57 */ lis r31, lbl_80568B78@ha
/* 802C9488 002C50E8 7C 9E 23 78 */ mr r30, r4
/* 802C948C 002C50EC 3B FF 8B 78 */ addi r31, r31, lbl_80568B78@l
/* 802C9490 002C50F0 3B A0 00 00 */ li r29, 0
lbl_802C9494:
/* 802C9494 002C50F4 88 1F 05 58 */ lbz r0, 0x558(r31)
/* 802C9498 002C50F8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 802C949C 002C50FC 41 82 00 3C */ beq lbl_802C94D8
/* 802C94A0 002C5100 88 1E 00 08 */ lbz r0, 8(r30)
/* 802C94A4 002C5104 2C 00 00 00 */ cmpwi r0, 0
/* 802C94A8 002C5108 40 82 00 0C */ bne lbl_802C94B4
/* 802C94AC 002C510C 38 60 00 00 */ li r3, 0
/* 802C94B0 002C5110 48 00 00 AC */ b lbl_802C955C
lbl_802C94B4:
/* 802C94B4 002C5114 7C E3 3B 78 */ mr r3, r7
/* 802C94B8 002C5118 7F C4 F3 78 */ mr r4, r30
/* 802C94BC 002C511C 7F 85 E3 78 */ mr r5, r28
/* 802C94C0 002C5120 4B FF FD 39 */ bl btm_pm_compare_modes
/* 802C94C4 002C5124 2C 03 00 00 */ cmpwi r3, 0
/* 802C94C8 002C5128 40 82 00 0C */ bne lbl_802C94D4
/* 802C94CC 002C512C 38 60 00 00 */ li r3, 0
/* 802C94D0 002C5130 48 00 00 8C */ b lbl_802C955C
lbl_802C94D4:
/* 802C94D4 002C5134 7F 87 E3 78 */ mr r7, r28
lbl_802C94D8:
/* 802C94D8 002C5138 3B BD 00 01 */ addi r29, r29, 1
/* 802C94DC 002C513C 3B DE 00 0A */ addi r30, r30, 0xa
/* 802C94E0 002C5140 2C 1D 00 02 */ cmpwi r29, 2
/* 802C94E4 002C5144 3B FF 00 08 */ addi r31, r31, 8
/* 802C94E8 002C5148 41 80 FF AC */ blt lbl_802C9494
/* 802C94EC 002C514C 2C 07 00 00 */ cmpwi r7, 0
/* 802C94F0 002C5150 40 82 00 40 */ bne lbl_802C9530
/* 802C94F4 002C5154 2C 1B 00 00 */ cmpwi r27, 0
/* 802C94F8 002C5158 41 82 00 30 */ beq lbl_802C9528
/* 802C94FC 002C515C A0 7B 00 00 */ lhz r3, 0(r27)
/* 802C9500 002C5160 A0 1B 00 02 */ lhz r0, 2(r27)
/* 802C9504 002C5164 B0 7C 00 00 */ sth r3, 0(r28)
/* 802C9508 002C5168 B0 1C 00 02 */ sth r0, 2(r28)
/* 802C950C 002C516C A0 7B 00 04 */ lhz r3, 4(r27)
/* 802C9510 002C5170 A0 1B 00 06 */ lhz r0, 6(r27)
/* 802C9514 002C5174 B0 7C 00 04 */ sth r3, 4(r28)
/* 802C9518 002C5178 B0 1C 00 06 */ sth r0, 6(r28)
/* 802C951C 002C517C A0 1B 00 08 */ lhz r0, 8(r27)
/* 802C9520 002C5180 B0 1C 00 08 */ sth r0, 8(r28)
/* 802C9524 002C5184 48 00 00 34 */ b lbl_802C9558
lbl_802C9528:
/* 802C9528 002C5188 38 60 00 00 */ li r3, 0
/* 802C952C 002C518C 48 00 00 30 */ b lbl_802C955C
lbl_802C9530:
/* 802C9530 002C5190 28 1A 00 80 */ cmplwi r26, 0x80
/* 802C9534 002C5194 40 82 00 24 */ bne lbl_802C9558
/* 802C9538 002C5198 7F 63 DB 78 */ mr r3, r27
/* 802C953C 002C519C 7C E4 3B 78 */ mr r4, r7
/* 802C9540 002C51A0 7F 85 E3 78 */ mr r5, r28
/* 802C9544 002C51A4 4B FF FC B5 */ bl btm_pm_compare_modes
/* 802C9548 002C51A8 2C 03 00 00 */ cmpwi r3, 0
/* 802C954C 002C51AC 40 82 00 0C */ bne lbl_802C9558
/* 802C9550 002C51B0 38 60 00 00 */ li r3, 0
/* 802C9554 002C51B4 48 00 00 08 */ b lbl_802C955C
lbl_802C9558:
/* 802C9558 002C51B8 88 7C 00 08 */ lbz r3, 8(r28)
lbl_802C955C:
/* 802C955C 002C51BC 39 61 00 20 */ addi r11, r1, 0x20
/* 802C9560 002C51C0 4B EF DC 11 */ bl _restgpr_26
/* 802C9564 002C51C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802C9568 002C51C8 7C 08 03 A6 */ mtlr r0
/* 802C956C 002C51CC 38 21 00 20 */ addi r1, r1, 0x20
/* 802C9570 002C51D0 4E 80 00 20 */ blr
.global btm_pm_snd_md_req
btm_pm_snd_md_req:
/* 802C9574 002C51D4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802C9578 002C51D8 7C 08 02 A6 */ mflr r0
/* 802C957C 002C51DC 3C C0 80 57 */ lis r6, lbl_80568B78@ha
/* 802C9580 002C51E0 90 01 00 34 */ stw r0, 0x34(r1)
/* 802C9584 002C51E4 1C 04 00 22 */ mulli r0, r4, 0x22
/* 802C9588 002C51E8 38 C6 8B 78 */ addi r6, r6, lbl_80568B78@l
/* 802C958C 002C51EC 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802C9590 002C51F0 3B E0 00 00 */ li r31, 0
/* 802C9594 002C51F4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 802C9598 002C51F8 7C 9E 23 78 */ mr r30, r4
/* 802C959C 002C51FC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 802C95A0 002C5200 7C 7D 1B 78 */ mr r29, r3
/* 802C95A4 002C5204 7C 66 02 14 */ add r3, r6, r0
/* 802C95A8 002C5208 38 C1 00 08 */ addi r6, r1, 8
/* 802C95AC 002C520C 93 81 00 20 */ stw r28, 0x20(r1)
/* 802C95B0 002C5210 3B 83 04 CC */ addi r28, r3, 0x4cc
/* 802C95B4 002C5214 7F A3 EB 78 */ mr r3, r29
/* 802C95B8 002C5218 7F 84 E3 78 */ mr r4, r28
/* 802C95BC 002C521C 4B FF FE 59 */ bl btm_pm_get_set_mode
/* 802C95C0 002C5220 88 9C 00 20 */ lbz r4, 0x20(r28)
/* 802C95C4 002C5224 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 802C95C8 002C5228 98 61 00 10 */ stb r3, 0x10(r1)
/* 802C95CC 002C522C 7C 04 00 40 */ cmplw r4, r0
/* 802C95D0 002C5230 40 82 00 34 */ bne lbl_802C9604
/* 802C95D4 002C5234 2C 00 00 00 */ cmpwi r0, 0
/* 802C95D8 002C5238 41 82 00 20 */ beq lbl_802C95F8
/* 802C95DC 002C523C A0 9C 00 1E */ lhz r4, 0x1e(r28)
/* 802C95E0 002C5240 A0 01 00 08 */ lhz r0, 8(r1)
/* 802C95E4 002C5244 7C 00 20 40 */ cmplw r0, r4
/* 802C95E8 002C5248 41 80 00 18 */ blt lbl_802C9600
/* 802C95EC 002C524C A0 01 00 0A */ lhz r0, 0xa(r1)
/* 802C95F0 002C5250 7C 00 20 40 */ cmplw r0, r4
/* 802C95F4 002C5254 41 81 00 0C */ bgt lbl_802C9600
lbl_802C95F8:
/* 802C95F8 002C5258 38 60 00 0D */ li r3, 0xd
/* 802C95FC 002C525C 48 00 01 8C */ b lbl_802C9788
lbl_802C9600:
/* 802C9600 002C5260 3B E0 00 01 */ li r31, 1
lbl_802C9604:
/* 802C9604 002C5264 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C9608 002C5268 9B FC 00 21 */ stb r31, 0x21(r28)
/* 802C960C 002C526C 41 82 00 18 */ beq lbl_802C9624
/* 802C9610 002C5270 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 802C9614 002C5274 2C 00 00 00 */ cmpwi r0, 0
/* 802C9618 002C5278 41 82 00 0C */ beq lbl_802C9624
/* 802C961C 002C527C 38 00 00 01 */ li r0, 1
/* 802C9620 002C5280 98 1C 00 21 */ stb r0, 0x21(r28)
lbl_802C9624:
/* 802C9624 002C5284 38 60 00 02 */ li r3, 2
/* 802C9628 002C5288 4B FF 06 25 */ bl GKI_getpoolbuf
/* 802C962C 002C528C 2C 03 00 00 */ cmpwi r3, 0
/* 802C9630 002C5290 7C 7F 1B 78 */ mr r31, r3
/* 802C9634 002C5294 40 82 00 0C */ bne lbl_802C9640
/* 802C9638 002C5298 38 60 00 03 */ li r3, 3
/* 802C963C 002C529C 48 00 01 4C */ b lbl_802C9788
lbl_802C9640:
/* 802C9640 002C52A0 88 1C 00 21 */ lbz r0, 0x21(r28)
/* 802C9644 002C52A4 28 00 00 01 */ cmplwi r0, 1
/* 802C9648 002C52A8 40 82 00 0C */ bne lbl_802C9654
/* 802C964C 002C52AC 38 00 00 00 */ li r0, 0
/* 802C9650 002C52B0 98 01 00 10 */ stb r0, 0x10(r1)
lbl_802C9654:
/* 802C9654 002C52B4 88 01 00 10 */ lbz r0, 0x10(r1)
/* 802C9658 002C52B8 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C965C 002C52BC 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C9660 002C52C0 2C 00 00 02 */ cmpwi r0, 2
/* 802C9664 002C52C4 9B C4 05 64 */ stb r30, 0x564(r4)
/* 802C9668 002C52C8 9B A4 05 65 */ stb r29, 0x565(r4)
/* 802C966C 002C52CC 41 82 00 A4 */ beq lbl_802C9710
/* 802C9670 002C52D0 40 80 00 14 */ bge lbl_802C9684
/* 802C9674 002C52D4 2C 00 00 00 */ cmpwi r0, 0
/* 802C9678 002C52D8 41 82 00 18 */ beq lbl_802C9690
/* 802C967C 002C52DC 40 80 00 74 */ bge lbl_802C96F0
/* 802C9680 002C52E0 48 00 00 D8 */ b lbl_802C9758
lbl_802C9684:
/* 802C9684 002C52E4 2C 00 00 04 */ cmpwi r0, 4
/* 802C9688 002C52E8 40 80 00 D0 */ bge lbl_802C9758
/* 802C968C 002C52EC 48 00 00 AC */ b lbl_802C9738
lbl_802C9690:
/* 802C9690 002C52F0 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 802C9694 002C52F4 2C 00 00 03 */ cmpwi r0, 3
/* 802C9698 002C52F8 41 82 00 2C */ beq lbl_802C96C4
/* 802C969C 002C52FC 40 80 00 40 */ bge lbl_802C96DC
/* 802C96A0 002C5300 2C 00 00 02 */ cmpwi r0, 2
/* 802C96A4 002C5304 40 80 00 08 */ bge lbl_802C96AC
/* 802C96A8 002C5308 48 00 00 34 */ b lbl_802C96DC
lbl_802C96AC:
/* 802C96AC 002C530C 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 802C96B0 002C5310 7F E3 FB 78 */ mr r3, r31
/* 802C96B4 002C5314 7C 84 02 14 */ add r4, r4, r0
/* 802C96B8 002C5318 A0 84 00 34 */ lhz r4, 0x34(r4)
/* 802C96BC 002C531C 48 00 78 B1 */ bl btsnd_hcic_exit_sniff_mode
/* 802C96C0 002C5320 48 00 00 A8 */ b lbl_802C9768
lbl_802C96C4:
/* 802C96C4 002C5324 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 802C96C8 002C5328 7F E3 FB 78 */ mr r3, r31
/* 802C96CC 002C532C 7C 84 02 14 */ add r4, r4, r0
/* 802C96D0 002C5330 A0 84 00 34 */ lhz r4, 0x34(r4)
/* 802C96D4 002C5334 48 00 79 D1 */ bl btsnd_hcic_exit_park_mode
/* 802C96D8 002C5338 48 00 00 90 */ b lbl_802C9768
lbl_802C96DC:
/* 802C96DC 002C533C 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C96E0 002C5340 38 00 00 04 */ li r0, 4
/* 802C96E4 002C5344 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C96E8 002C5348 98 03 05 64 */ stb r0, 0x564(r3)
/* 802C96EC 002C534C 48 00 00 7C */ b lbl_802C9768
lbl_802C96F0:
/* 802C96F0 002C5350 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 802C96F4 002C5354 A0 A1 00 08 */ lhz r5, 8(r1)
/* 802C96F8 002C5358 A0 C1 00 0A */ lhz r6, 0xa(r1)
/* 802C96FC 002C535C 7F E3 FB 78 */ mr r3, r31
/* 802C9700 002C5360 7C 84 02 14 */ add r4, r4, r0
/* 802C9704 002C5364 A0 84 00 34 */ lhz r4, 0x34(r4)
/* 802C9708 002C5368 48 00 76 E5 */ bl btsnd_hcic_hold_mode
/* 802C970C 002C536C 48 00 00 5C */ b lbl_802C9768
lbl_802C9710:
/* 802C9710 002C5370 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 802C9714 002C5374 A0 A1 00 08 */ lhz r5, 8(r1)
/* 802C9718 002C5378 A0 C1 00 0A */ lhz r6, 0xa(r1)
/* 802C971C 002C537C 7F E3 FB 78 */ mr r3, r31
/* 802C9720 002C5380 A0 E1 00 0C */ lhz r7, 0xc(r1)
/* 802C9724 002C5384 7C 84 02 14 */ add r4, r4, r0
/* 802C9728 002C5388 A0 84 00 34 */ lhz r4, 0x34(r4)
/* 802C972C 002C538C A1 01 00 0E */ lhz r8, 0xe(r1)
/* 802C9730 002C5390 48 00 77 71 */ bl btsnd_hcic_sniff_mode
/* 802C9734 002C5394 48 00 00 34 */ b lbl_802C9768
lbl_802C9738:
/* 802C9738 002C5398 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 802C973C 002C539C A0 A1 00 08 */ lhz r5, 8(r1)
/* 802C9740 002C53A0 A0 C1 00 0A */ lhz r6, 0xa(r1)
/* 802C9744 002C53A4 7F E3 FB 78 */ mr r3, r31
/* 802C9748 002C53A8 7C 84 02 14 */ add r4, r4, r0
/* 802C974C 002C53AC A0 84 00 34 */ lhz r4, 0x34(r4)
/* 802C9750 002C53B0 48 00 78 A1 */ bl btsnd_hcic_park_mode
/* 802C9754 002C53B4 48 00 00 14 */ b lbl_802C9768
lbl_802C9758:
/* 802C9758 002C53B8 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C975C 002C53BC 38 00 00 04 */ li r0, 4
/* 802C9760 002C53C0 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C9764 002C53C4 98 03 05 64 */ stb r0, 0x564(r3)
lbl_802C9768:
/* 802C9768 002C53C8 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C976C 002C53CC 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C9770 002C53D0 88 03 05 64 */ lbz r0, 0x564(r3)
/* 802C9774 002C53D4 28 00 00 04 */ cmplwi r0, 4
/* 802C9778 002C53D8 40 82 00 0C */ bne lbl_802C9784
/* 802C977C 002C53DC 7F E3 FB 78 */ mr r3, r31
/* 802C9780 002C53E0 4B FF 05 B5 */ bl GKI_freebuf
lbl_802C9784:
/* 802C9784 002C53E4 38 60 00 01 */ li r3, 1
lbl_802C9788:
/* 802C9788 002C53E8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802C978C 002C53EC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802C9790 002C53F0 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 802C9794 002C53F4 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 802C9798 002C53F8 83 81 00 20 */ lwz r28, 0x20(r1)
/* 802C979C 002C53FC 7C 08 03 A6 */ mtlr r0
/* 802C97A0 002C5400 38 21 00 30 */ addi r1, r1, 0x30
/* 802C97A4 002C5404 4E 80 00 20 */ blr
.global btm_pm_proc_cmd_status
btm_pm_proc_cmd_status:
/* 802C97A8 002C5408 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C97AC 002C540C 7C 08 02 A6 */ mflr r0
/* 802C97B0 002C5410 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C97B4 002C5414 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C97B8 002C5418 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C97BC 002C541C 88 04 05 64 */ lbz r0, 0x564(r4)
/* 802C97C0 002C5420 28 00 00 04 */ cmplwi r0, 4
/* 802C97C4 002C5424 40 80 00 84 */ bge lbl_802C9848
/* 802C97C8 002C5428 1C 00 00 22 */ mulli r0, r0, 0x22
/* 802C97CC 002C542C 2C 03 00 00 */ cmpwi r3, 0
/* 802C97D0 002C5430 7C A4 02 14 */ add r5, r4, r0
/* 802C97D4 002C5434 40 82 00 14 */ bne lbl_802C97E8
/* 802C97D8 002C5438 38 00 00 04 */ li r0, 4
/* 802C97DC 002C543C 38 80 00 04 */ li r4, 4
/* 802C97E0 002C5440 98 05 04 EC */ stb r0, 0x4ec(r5)
/* 802C97E4 002C5444 48 00 00 08 */ b lbl_802C97EC
lbl_802C97E8:
/* 802C97E8 002C5448 38 80 00 05 */ li r4, 5
lbl_802C97EC:
/* 802C97EC 002C544C 3C E0 80 57 */ lis r7, lbl_80568B78@ha
/* 802C97F0 002C5450 38 E7 8B 78 */ addi r7, r7, lbl_80568B78@l
/* 802C97F4 002C5454 88 07 05 65 */ lbz r0, 0x565(r7)
/* 802C97F8 002C5458 28 00 00 80 */ cmplwi r0, 0x80
/* 802C97FC 002C545C 41 82 00 3C */ beq lbl_802C9838
/* 802C9800 002C5460 54 00 1D 78 */ rlwinm r0, r0, 3, 0x15, 0x1c
/* 802C9804 002C5464 7C A7 02 14 */ add r5, r7, r0
/* 802C9808 002C5468 88 05 05 58 */ lbz r0, 0x558(r5)
/* 802C980C 002C546C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 802C9810 002C5470 41 82 00 28 */ beq lbl_802C9838
/* 802C9814 002C5474 88 07 05 64 */ lbz r0, 0x564(r7)
/* 802C9818 002C5478 7C 66 1B 78 */ mr r6, r3
/* 802C981C 002C547C 81 85 05 54 */ lwz r12, 0x554(r5)
/* 802C9820 002C5480 38 A0 00 00 */ li r5, 0
/* 802C9824 002C5484 1C 00 01 1C */ mulli r0, r0, 0x11c
/* 802C9828 002C5488 7C 67 02 14 */ add r3, r7, r0
/* 802C982C 002C548C 38 63 00 3C */ addi r3, r3, 0x3c
/* 802C9830 002C5490 7D 89 03 A6 */ mtctr r12
/* 802C9834 002C5494 4E 80 04 21 */ bctrl
lbl_802C9838:
/* 802C9838 002C5498 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C983C 002C549C 38 00 00 04 */ li r0, 4
/* 802C9840 002C54A0 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C9844 002C54A4 98 03 05 64 */ stb r0, 0x564(r3)
lbl_802C9848:
/* 802C9848 002C54A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C984C 002C54AC 7C 08 03 A6 */ mtlr r0
/* 802C9850 002C54B0 38 21 00 10 */ addi r1, r1, 0x10
/* 802C9854 002C54B4 4E 80 00 20 */ blr
.global btm_pm_proc_mode_change
btm_pm_proc_mode_change:
/* 802C9858 002C54B8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802C985C 002C54BC 7C 08 02 A6 */ mflr r0
/* 802C9860 002C54C0 90 01 00 34 */ stw r0, 0x34(r1)
/* 802C9864 002C54C4 39 61 00 30 */ addi r11, r1, 0x30
/* 802C9868 002C54C8 4B EF D8 B5 */ bl _savegpr_24
/* 802C986C 002C54CC 7C 9A 23 78 */ mr r26, r4
/* 802C9870 002C54D0 7C 79 1B 78 */ mr r25, r3
/* 802C9874 002C54D4 7C BB 2B 78 */ mr r27, r5
/* 802C9878 002C54D8 7C DC 33 78 */ mr r28, r6
/* 802C987C 002C54DC 7F 43 D3 78 */ mr r3, r26
/* 802C9880 002C54E0 4B FF 9B C9 */ bl btm_handle_to_acl_index
/* 802C9884 002C54E4 54 7D 06 3E */ clrlwi r29, r3, 0x18
/* 802C9888 002C54E8 2C 1D 00 04 */ cmpwi r29, 4
/* 802C988C 002C54EC 40 80 01 DC */ bge lbl_802C9A68
/* 802C9890 002C54F0 1F DD 01 1C */ mulli r30, r29, 0x11c
/* 802C9894 002C54F4 3F 00 80 57 */ lis r24, lbl_80568B78@ha
/* 802C9898 002C54F8 2C 1B 00 00 */ cmpwi r27, 0
/* 802C989C 002C54FC 3B 18 8B 78 */ addi r24, r24, lbl_80568B78@l
/* 802C98A0 002C5500 7F F8 F2 14 */ add r31, r24, r30
/* 802C98A4 002C5504 40 82 00 58 */ bne lbl_802C98FC
/* 802C98A8 002C5508 A0 1F 00 38 */ lhz r0, 0x38(r31)
/* 802C98AC 002C550C 2C 00 00 00 */ cmpwi r0, 0
/* 802C98B0 002C5510 41 82 00 4C */ beq lbl_802C98FC
/* 802C98B4 002C5514 48 00 0F 1D */ bl btm_num_sco_links_active
/* 802C98B8 002C5518 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C98BC 002C551C 40 82 00 40 */ bne lbl_802C98FC
/* 802C98C0 002C5520 38 00 00 00 */ li r0, 0
/* 802C98C4 002C5524 B0 1F 00 38 */ sth r0, 0x38(r31)
/* 802C98C8 002C5528 88 18 27 C0 */ lbz r0, 0x27c0(r24)
/* 802C98CC 002C552C 28 00 00 05 */ cmplwi r0, 5
/* 802C98D0 002C5530 41 80 00 20 */ blt lbl_802C98F0
/* 802C98D4 002C5534 3C 60 00 0D */ lis r3, 0x000D0004@ha
/* 802C98D8 002C5538 3C 80 80 44 */ lis r4, lbl_80441550@ha
/* 802C98DC 002C553C A0 DF 00 36 */ lhz r6, 0x36(r31)
/* 802C98E0 002C5540 7F 45 D3 78 */ mr r5, r26
/* 802C98E4 002C5544 38 63 00 04 */ addi r3, r3, 0x000D0004@l
/* 802C98E8 002C5548 38 84 15 50 */ addi r4, r4, lbl_80441550@l
/* 802C98EC 002C554C 4B FF 36 55 */ bl LogMsg_2
lbl_802C98F0:
/* 802C98F0 002C5550 A0 7F 00 34 */ lhz r3, 0x34(r31)
/* 802C98F4 002C5554 A0 9F 00 36 */ lhz r4, 0x36(r31)
/* 802C98F8 002C5558 48 00 6E 2D */ bl btsnd_hcic_change_conn_type
lbl_802C98FC:
/* 802C98FC 002C555C 1C 1D 00 22 */ mulli r0, r29, 0x22
/* 802C9900 002C5560 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C9904 002C5564 2C 1B 00 00 */ cmpwi r27, 0
/* 802C9908 002C5568 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C990C 002C556C 7C 83 02 14 */ add r4, r3, r0
/* 802C9910 002C5570 9B 64 04 EC */ stb r27, 0x4ec(r4)
/* 802C9914 002C5574 38 00 00 00 */ li r0, 0
/* 802C9918 002C5578 B3 84 04 EA */ sth r28, 0x4ea(r4)
/* 802C991C 002C557C 40 82 00 14 */ bne lbl_802C9930
/* 802C9920 002C5580 88 64 04 D4 */ lbz r3, 0x4d4(r4)
/* 802C9924 002C5584 28 03 00 01 */ cmplwi r3, 1
/* 802C9928 002C5588 40 82 00 08 */ bne lbl_802C9930
/* 802C992C 002C558C 98 04 04 D4 */ stb r0, 0x4d4(r4)
lbl_802C9930:
/* 802C9930 002C5590 2C 1B 00 00 */ cmpwi r27, 0
/* 802C9934 002C5594 38 A4 04 D6 */ addi r5, r4, 0x4d6
/* 802C9938 002C5598 40 82 00 14 */ bne lbl_802C994C
/* 802C993C 002C559C 88 65 00 08 */ lbz r3, 8(r5)
/* 802C9940 002C55A0 28 03 00 01 */ cmplwi r3, 1
/* 802C9944 002C55A4 40 82 00 08 */ bne lbl_802C994C
/* 802C9948 002C55A8 98 05 00 08 */ stb r0, 8(r5)
lbl_802C994C:
/* 802C994C 002C55AC 88 04 04 ED */ lbz r0, 0x4ed(r4)
/* 802C9950 002C55B0 28 00 00 01 */ cmplwi r0, 1
/* 802C9954 002C55B4 40 82 00 14 */ bne lbl_802C9968
/* 802C9958 002C55B8 7F A4 EB 78 */ mr r4, r29
/* 802C995C 002C55BC 38 60 00 80 */ li r3, 0x80
/* 802C9960 002C55C0 38 A0 00 00 */ li r5, 0
/* 802C9964 002C55C4 4B FF FC 11 */ bl btm_pm_snd_md_req
lbl_802C9968:
/* 802C9968 002C55C8 3F 00 80 57 */ lis r24, lbl_80568B78@ha
/* 802C996C 002C55CC 3B A0 00 00 */ li r29, 0
/* 802C9970 002C55D0 3B 18 8B 78 */ addi r24, r24, lbl_80568B78@l
lbl_802C9974:
/* 802C9974 002C55D4 88 18 05 58 */ lbz r0, 0x558(r24)
/* 802C9978 002C55D8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 802C997C 002C55DC 41 82 00 20 */ beq lbl_802C999C
/* 802C9980 002C55E0 81 98 05 54 */ lwz r12, 0x554(r24)
/* 802C9984 002C55E4 7F 64 DB 78 */ mr r4, r27
/* 802C9988 002C55E8 7F 85 E3 78 */ mr r5, r28
/* 802C998C 002C55EC 7F 26 CB 78 */ mr r6, r25
/* 802C9990 002C55F0 38 7F 00 3C */ addi r3, r31, 0x3c
/* 802C9994 002C55F4 7D 89 03 A6 */ mtctr r12
/* 802C9998 002C55F8 4E 80 04 21 */ bctrl
lbl_802C999C:
/* 802C999C 002C55FC 3B BD 00 01 */ addi r29, r29, 1
/* 802C99A0 002C5600 3B 18 00 08 */ addi r24, r24, 8
/* 802C99A4 002C5604 2C 1D 00 02 */ cmpwi r29, 2
/* 802C99A8 002C5608 41 80 FF CC */ blt lbl_802C9974
/* 802C99AC 002C560C 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C99B0 002C5610 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C99B4 002C5614 7F 83 F2 14 */ add r28, r3, r30
/* 802C99B8 002C5618 88 1C 01 4F */ lbz r0, 0x14f(r28)
/* 802C99BC 002C561C 28 00 00 01 */ cmplwi r0, 1
/* 802C99C0 002C5620 40 82 00 A8 */ bne lbl_802C9A68
/* 802C99C4 002C5624 3B 1C 00 3C */ addi r24, r28, 0x3c
/* 802C99C8 002C5628 7F 03 C3 78 */ mr r3, r24
/* 802C99CC 002C562C 4B FF BC 51 */ bl btm_find_dev
/* 802C99D0 002C5630 2C 03 00 00 */ cmpwi r3, 0
/* 802C99D4 002C5634 41 82 00 30 */ beq lbl_802C9A04
/* 802C99D8 002C5638 88 03 00 76 */ lbz r0, 0x76(r3)
/* 802C99DC 002C563C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 802C99E0 002C5640 41 82 00 24 */ beq lbl_802C9A04
/* 802C99E4 002C5644 7F 43 D3 78 */ mr r3, r26
/* 802C99E8 002C5648 38 80 00 00 */ li r4, 0
/* 802C99EC 002C564C 48 00 6E 45 */ bl btsnd_hcic_set_conn_encrypt
/* 802C99F0 002C5650 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C99F4 002C5654 41 82 00 44 */ beq lbl_802C9A38
/* 802C99F8 002C5658 38 00 00 02 */ li r0, 2
/* 802C99FC 002C565C 98 1C 01 4F */ stb r0, 0x14f(r28)
/* 802C9A00 002C5660 48 00 00 68 */ b lbl_802C9A68
lbl_802C9A04:
/* 802C9A04 002C5664 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C9A08 002C5668 7F 03 C3 78 */ mr r3, r24
/* 802C9A0C 002C566C 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C9A10 002C5670 7C 84 F2 14 */ add r4, r4, r30
/* 802C9A14 002C5674 88 04 01 4E */ lbz r0, 0x14e(r4)
/* 802C9A18 002C5678 7C 00 00 34 */ cntlzw r0, r0
/* 802C9A1C 002C567C 54 04 DE 3E */ rlwinm r4, r0, 0x1b, 0x18, 0x1f
/* 802C9A20 002C5680 48 00 77 09 */ bl btsnd_hcic_switch_role
/* 802C9A24 002C5684 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802C9A28 002C5688 41 82 00 10 */ beq lbl_802C9A38
/* 802C9A2C 002C568C 38 00 00 00 */ li r0, 0
/* 802C9A30 002C5690 98 1C 01 4F */ stb r0, 0x14f(r28)
/* 802C9A34 002C5694 48 00 00 34 */ b lbl_802C9A68
lbl_802C9A38:
/* 802C9A38 002C5698 3B 60 00 00 */ li r27, 0
/* 802C9A3C 002C569C 3F 40 80 57 */ lis r26, lbl_80568B78@ha
/* 802C9A40 002C56A0 9B 7C 01 4F */ stb r27, 0x14f(r28)
/* 802C9A44 002C56A4 3B 5A 8B 78 */ addi r26, r26, lbl_80568B78@l
/* 802C9A48 002C56A8 81 9A 06 2C */ lwz r12, 0x62c(r26)
/* 802C9A4C 002C56AC 2C 0C 00 00 */ cmpwi r12, 0
/* 802C9A50 002C56B0 41 82 00 18 */ beq lbl_802C9A68
/* 802C9A54 002C56B4 9B 3A 06 24 */ stb r25, 0x624(r26)
/* 802C9A58 002C56B8 38 7A 06 24 */ addi r3, r26, 0x624
/* 802C9A5C 002C56BC 7D 89 03 A6 */ mtctr r12
/* 802C9A60 002C56C0 4E 80 04 21 */ bctrl
/* 802C9A64 002C56C4 93 7A 06 2C */ stw r27, 0x62c(r26)
lbl_802C9A68:
/* 802C9A68 002C56C8 39 61 00 30 */ addi r11, r1, 0x30
/* 802C9A6C 002C56CC 4B EF D6 FD */ bl _restgpr_24
/* 802C9A70 002C56D0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802C9A74 002C56D4 7C 08 03 A6 */ mtlr r0
/* 802C9A78 002C56D8 38 21 00 30 */ addi r1, r1, 0x30
/* 802C9A7C 002C56DC 4E 80 00 20 */ blr
|