summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/btm_sco.s
blob: 9943c9ad55844c68ac48a8487472f572789a5559 (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
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global btm_sco_init
btm_sco_init:
/* 802C9A80 002C56E0  3C 60 80 40 */	lis r3, lbl_80400004@ha
/* 802C9A84 002C56E4  84 C3 DD C8 */	lwzu r6, -0x2238(r3)
/* 802C9A88 002C56E8  3C 80 00 01 */	lis r4, 0x0000FFFF@ha
/* 802C9A8C 002C56EC  3C E0 80 57 */	lis r7, lbl_80568B78@ha
/* 802C9A90 002C56F0  39 04 FF FF */	addi r8, r4, 0x0000FFFF@l
/* 802C9A94 002C56F4  80 A3 00 04 */	lwz r5, lbl_80400004@l(r3)
/* 802C9A98 002C56F8  38 E7 8B 78 */	addi r7, r7, lbl_80568B78@l
/* 802C9A9C 002C56FC  80 83 00 08 */	lwz r4, 8(r3)
/* 802C9AA0 002C5700  80 63 00 0C */	lwz r3, 0xc(r3)
/* 802C9AA4 002C5704  38 00 00 02 */	li r0, 2
/* 802C9AA8 002C5708  B1 07 18 F6 */	sth r8, 0x18f6(r7)
/* 802C9AAC 002C570C  90 C7 18 F8 */	stw r6, 0x18f8(r7)
/* 802C9AB0 002C5710  90 A7 18 FC */	stw r5, 0x18fc(r7)
/* 802C9AB4 002C5714  90 87 19 00 */	stw r4, 0x1900(r7)
/* 802C9AB8 002C5718  90 67 19 04 */	stw r3, 0x1904(r7)
/* 802C9ABC 002C571C  98 07 19 09 */	stb r0, 0x1909(r7)
/* 802C9AC0 002C5720  4E 80 00 20 */	blr

.global btm_esco_conn_rsp
btm_esco_conn_rsp:
/* 802C9AC4 002C5724  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C9AC8 002C5728  7C 08 02 A6 */	mflr r0
/* 802C9ACC 002C572C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C9AD0 002C5730  39 61 00 20 */	addi r11, r1, 0x20
/* 802C9AD4 002C5734  4B EF D6 51 */	bl _savegpr_26
/* 802C9AD8 002C5738  7C 7A 1B 78 */	mr r26, r3
/* 802C9ADC 002C573C  7C 9B 23 78 */	mr r27, r4
/* 802C9AE0 002C5740  7C BD 2B 78 */	mr r29, r5
/* 802C9AE4 002C5744  7C DC 33 78 */	mr r28, r6
/* 802C9AE8 002C5748  3B E0 00 00 */	li r31, 0
/* 802C9AEC 002C574C  38 60 00 02 */	li r3, 2
/* 802C9AF0 002C5750  4B FF 01 5D */	bl GKI_getpoolbuf
/* 802C9AF4 002C5754  2C 03 00 00 */	cmpwi r3, 0
/* 802C9AF8 002C5758  7C 7E 1B 78 */	mr r30, r3
/* 802C9AFC 002C575C  40 82 00 2C */	bne lbl_802C9B28
/* 802C9B00 002C5760  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9B04 002C5764  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9B08 002C5768  88 03 27 C0 */	lbz r0, 0x27c0(r3)
/* 802C9B0C 002C576C  28 00 00 01 */	cmplwi r0, 1
/* 802C9B10 002C5770  41 80 01 78 */	blt lbl_802C9C88
/* 802C9B14 002C5774  3C 80 80 44 */	lis r4, lbl_80441590@ha
/* 802C9B18 002C5778  3C 60 00 0D */	lis r3, 0xd
/* 802C9B1C 002C577C  38 84 15 90 */	addi r4, r4, lbl_80441590@l
/* 802C9B20 002C5780  4B FF 33 F1 */	bl LogMsg_0
/* 802C9B24 002C5784  48 00 01 64 */	b lbl_802C9C88
lbl_802C9B28:
/* 802C9B28 002C5788  28 1A 00 03 */	cmplwi r26, 3
/* 802C9B2C 002C578C  40 80 00 18 */	bge lbl_802C9B44
/* 802C9B30 002C5790  1C 1A 00 34 */	mulli r0, r26, 0x34
/* 802C9B34 002C5794  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9B38 002C5798  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9B3C 002C579C  7C 63 02 14 */	add r3, r3, r0
/* 802C9B40 002C57A0  3B E3 18 54 */	addi r31, r3, 0x1854
lbl_802C9B44:
/* 802C9B44 002C57A4  2C 1B 00 00 */	cmpwi r27, 0
/* 802C9B48 002C57A8  41 82 00 5C */	beq lbl_802C9BA4
/* 802C9B4C 002C57AC  2C 1F 00 00 */	cmpwi r31, 0
/* 802C9B50 002C57B0  41 82 00 18 */	beq lbl_802C9B68
/* 802C9B54 002C57B4  A0 7F 00 08 */	lhz r3, 8(r31)
/* 802C9B58 002C57B8  38 03 FF FE */	addi r0, r3, -2
/* 802C9B5C 002C57BC  7C 00 00 34 */	cntlzw r0, r0
/* 802C9B60 002C57C0  54 00 DC 3E */	rlwinm r0, r0, 0x1b, 0x10, 0x1f
/* 802C9B64 002C57C4  B0 1F 00 08 */	sth r0, 8(r31)
lbl_802C9B68:
/* 802C9B68 002C57C8  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9B6C 002C57CC  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9B70 002C57D0  88 03 19 08 */	lbz r0, 0x1908(r3)
/* 802C9B74 002C57D4  2C 00 00 00 */	cmpwi r0, 0
/* 802C9B78 002C57D8  40 82 00 18 */	bne lbl_802C9B90
/* 802C9B7C 002C57DC  7F C3 F3 78 */	mr r3, r30
/* 802C9B80 002C57E0  7F A4 EB 78 */	mr r4, r29
/* 802C9B84 002C57E4  7F 65 DB 78 */	mr r5, r27
/* 802C9B88 002C57E8  48 00 66 7D */	bl btsnd_hcic_reject_conn
/* 802C9B8C 002C57EC  48 00 00 FC */	b lbl_802C9C88
lbl_802C9B90:
/* 802C9B90 002C57F0  7F C3 F3 78 */	mr r3, r30
/* 802C9B94 002C57F4  7F A4 EB 78 */	mr r4, r29
/* 802C9B98 002C57F8  7F 65 DB 78 */	mr r5, r27
/* 802C9B9C 002C57FC  48 00 71 F1 */	bl btsnd_hcic_reject_esco_conn
/* 802C9BA0 002C5800  48 00 00 E8 */	b lbl_802C9C88
lbl_802C9BA4:
/* 802C9BA4 002C5804  38 60 00 01 */	li r3, 1
/* 802C9BA8 002C5808  4B FF B3 A9 */	bl btm_chg_all_acl_pkt_types
/* 802C9BAC 002C580C  38 00 00 03 */	li r0, 3
/* 802C9BB0 002C5810  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9BB4 002C5814  B0 1F 00 08 */	sth r0, 8(r31)
/* 802C9BB8 002C5818  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9BBC 002C581C  88 03 19 08 */	lbz r0, 0x1908(r3)
/* 802C9BC0 002C5820  2C 00 00 00 */	cmpwi r0, 0
/* 802C9BC4 002C5824  41 82 00 B4 */	beq lbl_802C9C78
/* 802C9BC8 002C5828  88 1F 00 2E */	lbz r0, 0x2e(r31)
/* 802C9BCC 002C582C  28 00 00 02 */	cmplwi r0, 2
/* 802C9BD0 002C5830  40 82 00 A8 */	bne lbl_802C9C78
/* 802C9BD4 002C5834  2C 1C 00 00 */	cmpwi r28, 0
/* 802C9BD8 002C5838  41 82 00 24 */	beq lbl_802C9BFC
/* 802C9BDC 002C583C  80 7C 00 00 */	lwz r3, 0(r28)
/* 802C9BE0 002C5840  80 1C 00 04 */	lwz r0, 4(r28)
/* 802C9BE4 002C5844  90 7F 00 14 */	stw r3, 0x14(r31)
/* 802C9BE8 002C5848  90 1F 00 18 */	stw r0, 0x18(r31)
/* 802C9BEC 002C584C  80 7C 00 08 */	lwz r3, 8(r28)
/* 802C9BF0 002C5850  80 1C 00 0C */	lwz r0, 0xc(r28)
/* 802C9BF4 002C5854  90 7F 00 1C */	stw r3, 0x1c(r31)
/* 802C9BF8 002C5858  90 1F 00 20 */	stw r0, 0x20(r31)
lbl_802C9BFC:
/* 802C9BFC 002C585C  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9C00 002C5860  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9C04 002C5864  A0 83 19 04 */	lhz r4, 0x1904(r3)
/* 802C9C08 002C5868  B0 9F 00 20 */	sth r4, 0x20(r31)
/* 802C9C0C 002C586C  A0 A3 06 56 */	lhz r5, 0x656(r3)
/* 802C9C10 002C5870  7C 83 28 38 */	and r3, r4, r5
/* 802C9C14 002C5874  54 60 06 B9 */	rlwinm. r0, r3, 0, 0x1a, 0x1c
/* 802C9C18 002C5878  54 7C 06 BE */	clrlwi r28, r3, 0x1a
/* 802C9C1C 002C587C  40 82 00 0C */	bne lbl_802C9C28
/* 802C9C20 002C5880  63 80 00 08 */	ori r0, r28, 8
/* 802C9C24 002C5884  54 1C 04 3E */	clrlwi r28, r0, 0x10
lbl_802C9C28:
/* 802C9C28 002C5888  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9C2C 002C588C  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9C30 002C5890  88 03 06 36 */	lbz r0, 0x636(r3)
/* 802C9C34 002C5894  28 00 00 03 */	cmplwi r0, 3
/* 802C9C38 002C5898  41 80 00 14 */	blt lbl_802C9C4C
/* 802C9C3C 002C589C  7C 80 2B 78 */	or r0, r4, r5
/* 802C9C40 002C58A0  54 00 05 B2 */	rlwinm r0, r0, 0, 0x16, 0x19
/* 802C9C44 002C58A4  7F 80 03 78 */	or r0, r28, r0
/* 802C9C48 002C58A8  54 1C 04 3E */	clrlwi r28, r0, 0x10
lbl_802C9C4C:
/* 802C9C4C 002C58AC  80 BF 00 14 */	lwz r5, 0x14(r31)
/* 802C9C50 002C58B0  7F C3 F3 78 */	mr r3, r30
/* 802C9C54 002C58B4  80 DF 00 18 */	lwz r6, 0x18(r31)
/* 802C9C58 002C58B8  7F A4 EB 78 */	mr r4, r29
/* 802C9C5C 002C58BC  A0 FF 00 1C */	lhz r7, 0x1c(r31)
/* 802C9C60 002C58C0  57 8A 04 3E */	clrlwi r10, r28, 0x10
/* 802C9C64 002C58C4  A1 1F 00 1E */	lhz r8, 0x1e(r31)
/* 802C9C68 002C58C8  89 3F 00 22 */	lbz r9, 0x22(r31)
/* 802C9C6C 002C58CC  48 00 70 39 */	bl btsnd_hcic_accept_esco_conn
/* 802C9C70 002C58D0  B3 9F 00 20 */	sth r28, 0x20(r31)
/* 802C9C74 002C58D4  48 00 00 14 */	b lbl_802C9C88
lbl_802C9C78:
/* 802C9C78 002C58D8  7F C3 F3 78 */	mr r3, r30
/* 802C9C7C 002C58DC  7F A4 EB 78 */	mr r4, r29
/* 802C9C80 002C58E0  38 A0 00 00 */	li r5, 0
/* 802C9C84 002C58E4  48 00 65 21 */	bl btsnd_hcic_accept_conn
lbl_802C9C88:
/* 802C9C88 002C58E8  39 61 00 20 */	addi r11, r1, 0x20
/* 802C9C8C 002C58EC  4B EF D4 E5 */	bl _restgpr_26
/* 802C9C90 002C58F0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C9C94 002C58F4  7C 08 03 A6 */	mtlr r0
/* 802C9C98 002C58F8  38 21 00 20 */	addi r1, r1, 0x20
/* 802C9C9C 002C58FC  4E 80 00 20 */	blr

.global btm_sco_chk_pend_unpark
btm_sco_chk_pend_unpark:
/* 802C9CA0 002C5900  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 802C9CA4 002C5904  7C 08 02 A6 */	mflr r0
/* 802C9CA8 002C5908  90 01 00 44 */	stw r0, 0x44(r1)
/* 802C9CAC 002C590C  39 61 00 40 */	addi r11, r1, 0x40
/* 802C9CB0 002C5910  4B EF D4 5D */	bl _savegpr_20
/* 802C9CB4 002C5914  3F 80 80 57 */	lis r28, lbl_80568B78@ha
/* 802C9CB8 002C5918  7C 77 1B 78 */	mr r23, r3
/* 802C9CBC 002C591C  3B 9C 8B 78 */	addi r28, r28, lbl_80568B78@l
/* 802C9CC0 002C5920  7C 98 23 78 */	mr r24, r4
/* 802C9CC4 002C5924  7C B9 2B 78 */	mr r25, r5
/* 802C9CC8 002C5928  3B 60 00 00 */	li r27, 0
/* 802C9CCC 002C592C  3B 5C 18 54 */	addi r26, r28, 0x1854
/* 802C9CD0 002C5930  3F C0 00 0D */	lis r30, 0xd
/* 802C9CD4 002C5934  3F E0 80 44 */	lis r31, 0x8044
/* 802C9CD8 002C5938  3E A0 80 44 */	lis r21, 0x8044
/* 802C9CDC 002C593C  3A C0 00 03 */	li r22, 3
lbl_802C9CE0:
/* 802C9CE0 002C5940  A0 1A 00 08 */	lhz r0, 8(r26)
/* 802C9CE4 002C5944  28 00 00 06 */	cmplwi r0, 6
/* 802C9CE8 002C5948  40 82 01 1C */	bne lbl_802C9E04
/* 802C9CEC 002C594C  2C 19 00 00 */	cmpwi r25, 0
/* 802C9CF0 002C5950  40 82 01 14 */	bne lbl_802C9E04
/* 802C9CF4 002C5954  2C 17 00 00 */	cmpwi r23, 0
/* 802C9CF8 002C5958  40 82 01 0C */	bne lbl_802C9E04
/* 802C9CFC 002C595C  38 7A 00 28 */	addi r3, r26, 0x28
/* 802C9D00 002C5960  4B FF A6 A5 */	bl BTM_GetHCIConnHandle
/* 802C9D04 002C5964  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 802C9D08 002C5968  7C 7D 1B 78 */	mr r29, r3
/* 802C9D0C 002C596C  7C 18 28 40 */	cmplw r24, r5
/* 802C9D10 002C5970  40 82 00 F4 */	bne lbl_802C9E04
/* 802C9D14 002C5974  88 1C 27 C0 */	lbz r0, 0x27c0(r28)
/* 802C9D18 002C5978  28 00 00 03 */	cmplwi r0, 3
/* 802C9D1C 002C597C  41 80 00 14 */	blt lbl_802C9D30
/* 802C9D20 002C5980  88 DC 19 09 */	lbz r6, 0x1909(r28)
/* 802C9D24 002C5984  38 7E 00 02 */	addi r3, r30, 2
/* 802C9D28 002C5988  38 9F 16 6C */	addi r4, r31, 0x166c
/* 802C9D2C 002C598C  4B FF 32 15 */	bl LogMsg_2
lbl_802C9D30:
/* 802C9D30 002C5990  38 60 00 01 */	li r3, 1
/* 802C9D34 002C5994  4B FF B2 1D */	bl btm_chg_all_acl_pkt_types
/* 802C9D38 002C5998  88 1C 19 08 */	lbz r0, 0x1908(r28)
/* 802C9D3C 002C599C  2C 00 00 00 */	cmpwi r0, 0
/* 802C9D40 002C59A0  40 82 00 24 */	bne lbl_802C9D64
/* 802C9D44 002C59A4  A0 1A 00 20 */	lhz r0, 0x20(r26)
/* 802C9D48 002C59A8  57 A3 04 3E */	clrlwi r3, r29, 0x10
/* 802C9D4C 002C59AC  54 04 2E 34 */	rlwinm r4, r0, 5, 0x18, 0x1a
/* 802C9D50 002C59B0  48 00 63 C9 */	bl btsnd_hcic_add_SCO_conn
/* 802C9D54 002C59B4  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802C9D58 002C59B8  40 82 00 9C */	bne lbl_802C9DF4
/* 802C9D5C 002C59BC  38 00 00 03 */	li r0, 3
/* 802C9D60 002C59C0  48 00 00 98 */	b lbl_802C9DF8
lbl_802C9D64:
/* 802C9D64 002C59C4  88 1C 06 36 */	lbz r0, 0x636(r28)
/* 802C9D68 002C59C8  A0 7C 06 56 */	lhz r3, 0x656(r28)
/* 802C9D6C 002C59CC  A0 9A 00 20 */	lhz r4, 0x20(r26)
/* 802C9D70 002C59D0  28 00 00 03 */	cmplwi r0, 3
/* 802C9D74 002C59D4  7C 80 18 38 */	and r0, r4, r3
/* 802C9D78 002C59D8  54 14 06 BE */	clrlwi r20, r0, 0x1a
/* 802C9D7C 002C59DC  41 80 00 14 */	blt lbl_802C9D90
/* 802C9D80 002C59E0  7C 80 1B 78 */	or r0, r4, r3
/* 802C9D84 002C59E4  54 00 05 B2 */	rlwinm r0, r0, 0, 0x16, 0x19
/* 802C9D88 002C59E8  7E 80 03 78 */	or r0, r20, r0
/* 802C9D8C 002C59EC  54 14 04 3E */	clrlwi r20, r0, 0x10
lbl_802C9D90:
/* 802C9D90 002C59F0  88 1C 27 C0 */	lbz r0, 0x27c0(r28)
/* 802C9D94 002C59F4  28 00 00 03 */	cmplwi r0, 3
/* 802C9D98 002C59F8  41 80 00 28 */	blt lbl_802C9DC0
/* 802C9D9C 002C59FC  80 BA 00 14 */	lwz r5, 0x14(r26)
/* 802C9DA0 002C5A00  38 7E 00 02 */	addi r3, r30, 2
/* 802C9DA4 002C5A04  80 DA 00 18 */	lwz r6, 0x18(r26)
/* 802C9DA8 002C5A08  38 95 16 1C */	addi r4, r21, 0x161c
/* 802C9DAC 002C5A0C  A0 FA 00 1C */	lhz r7, 0x1c(r26)
/* 802C9DB0 002C5A10  56 8A 04 3E */	clrlwi r10, r20, 0x10
/* 802C9DB4 002C5A14  A1 1A 00 1E */	lhz r8, 0x1e(r26)
/* 802C9DB8 002C5A18  89 3A 00 22 */	lbz r9, 0x22(r26)
/* 802C9DBC 002C5A1C  4B FF 31 E5 */	bl LogMsg_6
lbl_802C9DC0:
/* 802C9DC0 002C5A20  80 9A 00 14 */	lwz r4, 0x14(r26)
/* 802C9DC4 002C5A24  57 A3 04 3E */	clrlwi r3, r29, 0x10
/* 802C9DC8 002C5A28  80 BA 00 18 */	lwz r5, 0x18(r26)
/* 802C9DCC 002C5A2C  56 89 04 3E */	clrlwi r9, r20, 0x10
/* 802C9DD0 002C5A30  A0 DA 00 1C */	lhz r6, 0x1c(r26)
/* 802C9DD4 002C5A34  A0 FA 00 1E */	lhz r7, 0x1e(r26)
/* 802C9DD8 002C5A38  89 1A 00 22 */	lbz r8, 0x22(r26)
/* 802C9DDC 002C5A3C  48 00 6D CD */	bl btsnd_hcic_setup_esco_conn
/* 802C9DE0 002C5A40  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802C9DE4 002C5A44  40 82 00 0C */	bne lbl_802C9DF0
/* 802C9DE8 002C5A48  38 00 00 03 */	li r0, 3
/* 802C9DEC 002C5A4C  48 00 00 0C */	b lbl_802C9DF8
lbl_802C9DF0:
/* 802C9DF0 002C5A50  B2 9A 00 20 */	sth r20, 0x20(r26)
lbl_802C9DF4:
/* 802C9DF4 002C5A54  38 00 00 01 */	li r0, 1
lbl_802C9DF8:
/* 802C9DF8 002C5A58  28 00 00 01 */	cmplwi r0, 1
/* 802C9DFC 002C5A5C  40 82 00 08 */	bne lbl_802C9E04
/* 802C9E00 002C5A60  B2 DA 00 08 */	sth r22, 8(r26)
lbl_802C9E04:
/* 802C9E04 002C5A64  3B 7B 00 01 */	addi r27, r27, 1
/* 802C9E08 002C5A68  3B 5A 00 34 */	addi r26, r26, 0x34
/* 802C9E0C 002C5A6C  28 1B 00 03 */	cmplwi r27, 3
/* 802C9E10 002C5A70  41 80 FE D0 */	blt lbl_802C9CE0
/* 802C9E14 002C5A74  39 61 00 40 */	addi r11, r1, 0x40
/* 802C9E18 002C5A78  4B EF D3 41 */	bl _restgpr_20
/* 802C9E1C 002C5A7C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 802C9E20 002C5A80  7C 08 03 A6 */	mtlr r0
/* 802C9E24 002C5A84  38 21 00 40 */	addi r1, r1, 0x40
/* 802C9E28 002C5A88  4E 80 00 20 */	blr

.global btm_sco_conn_req
btm_sco_conn_req:
/* 802C9E2C 002C5A8C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802C9E30 002C5A90  7C 08 02 A6 */	mflr r0
/* 802C9E34 002C5A94  90 01 00 34 */	stw r0, 0x34(r1)
/* 802C9E38 002C5A98  39 61 00 30 */	addi r11, r1, 0x30
/* 802C9E3C 002C5A9C  4B EF D2 ED */	bl _savegpr_27
/* 802C9E40 002C5AA0  3C C0 80 57 */	lis r6, lbl_80568B78@ha
/* 802C9E44 002C5AA4  7C 7E 1B 78 */	mr r30, r3
/* 802C9E48 002C5AA8  38 C6 8B 78 */	addi r6, r6, lbl_80568B78@l
/* 802C9E4C 002C5AAC  7C 9D 23 78 */	mr r29, r4
/* 802C9E50 002C5AB0  7C BF 2B 78 */	mr r31, r5
/* 802C9E54 002C5AB4  3B 80 00 00 */	li r28, 0
/* 802C9E58 002C5AB8  3B 66 18 54 */	addi r27, r6, 0x1854
lbl_802C9E5C:
/* 802C9E5C 002C5ABC  A0 7B 00 08 */	lhz r3, 8(r27)
/* 802C9E60 002C5AC0  28 03 00 01 */	cmplwi r3, 1
/* 802C9E64 002C5AC4  40 82 00 10 */	bne lbl_802C9E74
/* 802C9E68 002C5AC8  88 1B 00 0D */	lbz r0, 0xd(r27)
/* 802C9E6C 002C5ACC  2C 00 00 00 */	cmpwi r0, 0
/* 802C9E70 002C5AD0  40 82 00 0C */	bne lbl_802C9E7C
lbl_802C9E74:
/* 802C9E74 002C5AD4  28 03 00 03 */	cmplwi r3, 3
/* 802C9E78 002C5AD8  40 82 00 A4 */	bne lbl_802C9F1C
lbl_802C9E7C:
/* 802C9E7C 002C5ADC  7F C4 F3 78 */	mr r4, r30
/* 802C9E80 002C5AE0  38 7B 00 28 */	addi r3, r27, 0x28
/* 802C9E84 002C5AE4  38 A0 00 06 */	li r5, 6
/* 802C9E88 002C5AE8  4B F0 05 11 */	bl memcmp
/* 802C9E8C 002C5AEC  2C 03 00 00 */	cmpwi r3, 0
/* 802C9E90 002C5AF0  40 82 00 8C */	bne lbl_802C9F1C
/* 802C9E94 002C5AF4  38 00 00 01 */	li r0, 1
/* 802C9E98 002C5AF8  7F C4 F3 78 */	mr r4, r30
/* 802C9E9C 002C5AFC  98 1B 00 0D */	stb r0, 0xd(r27)
/* 802C9EA0 002C5B00  38 7B 00 28 */	addi r3, r27, 0x28
/* 802C9EA4 002C5B04  38 A0 00 06 */	li r5, 6
/* 802C9EA8 002C5B08  9B FB 00 2E */	stb r31, 0x2e(r27)
/* 802C9EAC 002C5B0C  4B D3 A1 55 */	bl memcpy
/* 802C9EB0 002C5B10  80 1B 00 10 */	lwz r0, 0x10(r27)
/* 802C9EB4 002C5B14  2C 00 00 00 */	cmpwi r0, 0
/* 802C9EB8 002C5B18  40 82 00 1C */	bne lbl_802C9ED4
/* 802C9EBC 002C5B1C  7F C5 F3 78 */	mr r5, r30
/* 802C9EC0 002C5B20  57 83 04 3E */	clrlwi r3, r28, 0x10
/* 802C9EC4 002C5B24  38 80 00 00 */	li r4, 0
/* 802C9EC8 002C5B28  38 C0 00 00 */	li r6, 0
/* 802C9ECC 002C5B2C  4B FF FB F9 */	bl btm_esco_conn_rsp
/* 802C9ED0 002C5B30  48 00 01 24 */	b lbl_802C9FF4
lbl_802C9ED4:
/* 802C9ED4 002C5B34  7F C4 F3 78 */	mr r4, r30
/* 802C9ED8 002C5B38  38 61 00 0A */	addi r3, r1, 0xa
/* 802C9EDC 002C5B3C  38 A0 00 06 */	li r5, 6
/* 802C9EE0 002C5B40  4B D3 A1 21 */	bl memcpy
/* 802C9EE4 002C5B44  7F A4 EB 78 */	mr r4, r29
/* 802C9EE8 002C5B48  38 61 00 10 */	addi r3, r1, 0x10
/* 802C9EEC 002C5B4C  38 A0 00 03 */	li r5, 3
/* 802C9EF0 002C5B50  4B D3 A1 11 */	bl memcpy
/* 802C9EF4 002C5B54  38 00 00 02 */	li r0, 2
/* 802C9EF8 002C5B58  9B E1 00 13 */	stb r31, 0x13(r1)
/* 802C9EFC 002C5B5C  38 81 00 08 */	addi r4, r1, 8
/* 802C9F00 002C5B60  38 60 00 02 */	li r3, 2
/* 802C9F04 002C5B64  B0 1B 00 08 */	sth r0, 8(r27)
/* 802C9F08 002C5B68  81 9B 00 10 */	lwz r12, 0x10(r27)
/* 802C9F0C 002C5B6C  B3 81 00 08 */	sth r28, 8(r1)
/* 802C9F10 002C5B70  7D 89 03 A6 */	mtctr r12
/* 802C9F14 002C5B74  4E 80 04 21 */	bctrl
/* 802C9F18 002C5B78  48 00 00 DC */	b lbl_802C9FF4
lbl_802C9F1C:
/* 802C9F1C 002C5B7C  3B 9C 00 01 */	addi r28, r28, 1
/* 802C9F20 002C5B80  3B 7B 00 34 */	addi r27, r27, 0x34
/* 802C9F24 002C5B84  28 1C 00 03 */	cmplwi r28, 3
/* 802C9F28 002C5B88  41 80 FF 34 */	blt lbl_802C9E5C
/* 802C9F2C 002C5B8C  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9F30 002C5B90  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9F34 002C5B94  80 03 18 50 */	lwz r0, 0x1850(r3)
/* 802C9F38 002C5B98  2C 00 00 00 */	cmpwi r0, 0
/* 802C9F3C 002C5B9C  41 82 00 7C */	beq lbl_802C9FB8
/* 802C9F40 002C5BA0  38 00 00 03 */	li r0, 3
/* 802C9F44 002C5BA4  3B 83 18 54 */	addi r28, r3, 0x1854
/* 802C9F48 002C5BA8  3B 60 00 00 */	li r27, 0
/* 802C9F4C 002C5BAC  7C 09 03 A6 */	mtctr r0
lbl_802C9F50:
/* 802C9F50 002C5BB0  A0 1C 00 08 */	lhz r0, 8(r28)
/* 802C9F54 002C5BB4  2C 00 00 00 */	cmpwi r0, 0
/* 802C9F58 002C5BB8  40 82 00 30 */	bne lbl_802C9F88
/* 802C9F5C 002C5BBC  38 00 00 00 */	li r0, 0
/* 802C9F60 002C5BC0  3B A0 00 01 */	li r29, 1
/* 802C9F64 002C5BC4  98 1C 00 0C */	stb r0, 0xc(r28)
/* 802C9F68 002C5BC8  7F C4 F3 78 */	mr r4, r30
/* 802C9F6C 002C5BCC  38 7C 00 28 */	addi r3, r28, 0x28
/* 802C9F70 002C5BD0  38 A0 00 06 */	li r5, 6
/* 802C9F74 002C5BD4  B3 BC 00 08 */	sth r29, 8(r28)
/* 802C9F78 002C5BD8  9B FC 00 2E */	stb r31, 0x2e(r28)
/* 802C9F7C 002C5BDC  4B D3 A0 85 */	bl memcpy
/* 802C9F80 002C5BE0  9B BC 00 0D */	stb r29, 0xd(r28)
/* 802C9F84 002C5BE4  48 00 00 10 */	b lbl_802C9F94
lbl_802C9F88:
/* 802C9F88 002C5BE8  3B 7B 00 01 */	addi r27, r27, 1
/* 802C9F8C 002C5BEC  3B 9C 00 34 */	addi r28, r28, 0x34
/* 802C9F90 002C5BF0  42 00 FF C0 */	bdnz lbl_802C9F50
lbl_802C9F94:
/* 802C9F94 002C5BF4  57 63 04 3E */	clrlwi r3, r27, 0x10
/* 802C9F98 002C5BF8  28 03 00 03 */	cmplwi r3, 3
/* 802C9F9C 002C5BFC  40 80 00 1C */	bge lbl_802C9FB8
/* 802C9FA0 002C5C00  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802C9FA4 002C5C04  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802C9FA8 002C5C08  81 84 18 50 */	lwz r12, 0x1850(r4)
/* 802C9FAC 002C5C0C  7D 89 03 A6 */	mtctr r12
/* 802C9FB0 002C5C10  4E 80 04 21 */	bctrl
/* 802C9FB4 002C5C14  48 00 00 40 */	b lbl_802C9FF4
lbl_802C9FB8:
/* 802C9FB8 002C5C18  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802C9FBC 002C5C1C  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802C9FC0 002C5C20  88 03 27 C0 */	lbz r0, 0x27c0(r3)
/* 802C9FC4 002C5C24  28 00 00 02 */	cmplwi r0, 2
/* 802C9FC8 002C5C28  41 80 00 18 */	blt lbl_802C9FE0
/* 802C9FCC 002C5C2C  3C 60 00 0D */	lis r3, 0x000D0001@ha
/* 802C9FD0 002C5C30  3C 80 80 44 */	lis r4, lbl_804416BC@ha
/* 802C9FD4 002C5C34  38 63 00 01 */	addi r3, r3, 0x000D0001@l
/* 802C9FD8 002C5C38  38 84 16 BC */	addi r4, r4, lbl_804416BC@l
/* 802C9FDC 002C5C3C  4B FF 2F 35 */	bl LogMsg_0
lbl_802C9FE0:
/* 802C9FE0 002C5C40  7F C5 F3 78 */	mr r5, r30
/* 802C9FE4 002C5C44  38 60 00 03 */	li r3, 3
/* 802C9FE8 002C5C48  38 80 00 0D */	li r4, 0xd
/* 802C9FEC 002C5C4C  38 C0 00 00 */	li r6, 0
/* 802C9FF0 002C5C50  4B FF FA D5 */	bl btm_esco_conn_rsp
lbl_802C9FF4:
/* 802C9FF4 002C5C54  39 61 00 30 */	addi r11, r1, 0x30
/* 802C9FF8 002C5C58  4B EF D1 7D */	bl _restgpr_27
/* 802C9FFC 002C5C5C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802CA000 002C5C60  7C 08 03 A6 */	mtlr r0
/* 802CA004 002C5C64  38 21 00 30 */	addi r1, r1, 0x30
/* 802CA008 002C5C68  4E 80 00 20 */	blr

.global btm_sco_connected
btm_sco_connected:
/* 802CA00C 002C5C6C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802CA010 002C5C70  7C 08 02 A6 */	mflr r0
/* 802CA014 002C5C74  90 01 00 34 */	stw r0, 0x34(r1)
/* 802CA018 002C5C78  39 61 00 30 */	addi r11, r1, 0x30
/* 802CA01C 002C5C7C  4B EF D1 01 */	bl _savegpr_24
/* 802CA020 002C5C80  3C E0 80 57 */	lis r7, lbl_80568B78@ha
/* 802CA024 002C5C84  7C 78 1B 78 */	mr r24, r3
/* 802CA028 002C5C88  38 E7 8B 78 */	addi r7, r7, lbl_80568B78@l
/* 802CA02C 002C5C8C  7C 99 23 78 */	mr r25, r4
/* 802CA030 002C5C90  B0 67 18 F6 */	sth r3, 0x18f6(r7)
/* 802CA034 002C5C94  7C BA 2B 78 */	mr r26, r5
/* 802CA038 002C5C98  7C DD 33 78 */	mr r29, r6
/* 802CA03C 002C5C9C  3B E7 18 54 */	addi r31, r7, 0x1854
/* 802CA040 002C5CA0  3B 60 00 00 */	li r27, 0
/* 802CA044 002C5CA4  3B C0 00 00 */	li r30, 0
lbl_802CA048:
/* 802CA048 002C5CA8  A3 9F 00 08 */	lhz r28, 8(r31)
/* 802CA04C 002C5CAC  3C 7C 00 01 */	addis r3, r28, 1
/* 802CA050 002C5CB0  38 03 FF FF */	addi r0, r3, -1
/* 802CA054 002C5CB4  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 802CA058 002C5CB8  28 00 00 02 */	cmplwi r0, 2
/* 802CA05C 002C5CBC  41 81 01 28 */	bgt lbl_802CA184
/* 802CA060 002C5CC0  88 1F 00 0D */	lbz r0, 0xd(r31)
/* 802CA064 002C5CC4  2C 00 00 00 */	cmpwi r0, 0
/* 802CA068 002C5CC8  41 82 01 1C */	beq lbl_802CA184
/* 802CA06C 002C5CCC  2C 19 00 00 */	cmpwi r25, 0
/* 802CA070 002C5CD0  41 82 00 1C */	beq lbl_802CA08C
/* 802CA074 002C5CD4  7F 24 CB 78 */	mr r4, r25
/* 802CA078 002C5CD8  38 7F 00 28 */	addi r3, r31, 0x28
/* 802CA07C 002C5CDC  38 A0 00 06 */	li r5, 6
/* 802CA080 002C5CE0  4B F0 03 19 */	bl memcmp
/* 802CA084 002C5CE4  2C 03 00 00 */	cmpwi r3, 0
/* 802CA088 002C5CE8  40 82 00 FC */	bne lbl_802CA184
lbl_802CA08C:
/* 802CA08C 002C5CEC  2C 18 00 00 */	cmpwi r24, 0
/* 802CA090 002C5CF0  41 82 00 3C */	beq lbl_802CA0CC
/* 802CA094 002C5CF4  28 1C 00 03 */	cmplwi r28, 3
/* 802CA098 002C5CF8  40 82 00 28 */	bne lbl_802CA0C0
/* 802CA09C 002C5CFC  28 18 00 23 */	cmplwi r24, 0x23
/* 802CA0A0 002C5D00  41 82 00 F4 */	beq lbl_802CA194
/* 802CA0A4 002C5D04  38 00 00 00 */	li r0, 0
/* 802CA0A8 002C5D08  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 802CA0AC 002C5D0C  B0 1F 00 08 */	sth r0, 8(r31)
/* 802CA0B0 002C5D10  81 9F 00 04 */	lwz r12, 4(r31)
/* 802CA0B4 002C5D14  7D 89 03 A6 */	mtctr r12
/* 802CA0B8 002C5D18  4E 80 04 21 */	bctrl
/* 802CA0BC 002C5D1C  48 00 00 D8 */	b lbl_802CA194
lbl_802CA0C0:
/* 802CA0C0 002C5D20  38 00 00 01 */	li r0, 1
/* 802CA0C4 002C5D24  B0 1F 00 08 */	sth r0, 8(r31)
/* 802CA0C8 002C5D28  48 00 00 CC */	b lbl_802CA194
lbl_802CA0CC:
/* 802CA0CC 002C5D2C  28 1C 00 01 */	cmplwi r28, 1
/* 802CA0D0 002C5D30  40 82 00 08 */	bne lbl_802CA0D8
/* 802CA0D4 002C5D34  3B 60 00 01 */	li r27, 1
lbl_802CA0D8:
/* 802CA0D8 002C5D38  38 00 00 04 */	li r0, 4
/* 802CA0DC 002C5D3C  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802CA0E0 002C5D40  B0 1F 00 08 */	sth r0, 8(r31)
/* 802CA0E4 002C5D44  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802CA0E8 002C5D48  B3 5F 00 0A */	sth r26, 0xa(r31)
/* 802CA0EC 002C5D4C  88 03 19 08 */	lbz r0, 0x1908(r3)
/* 802CA0F0 002C5D50  2C 00 00 00 */	cmpwi r0, 0
/* 802CA0F4 002C5D54  40 82 00 3C */	bne lbl_802CA130
/* 802CA0F8 002C5D58  38 00 00 00 */	li r0, 0
/* 802CA0FC 002C5D5C  2C 1B 00 00 */	cmpwi r27, 0
/* 802CA100 002C5D60  98 1F 00 2E */	stb r0, 0x2e(r31)
/* 802CA104 002C5D64  41 82 00 6C */	beq lbl_802CA170
/* 802CA108 002C5D68  A0 DF 00 20 */	lhz r6, 0x20(r31)
/* 802CA10C 002C5D6C  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 802CA110 002C5D70  A0 BF 00 1C */	lhz r5, 0x1c(r31)
/* 802CA114 002C5D74  38 81 00 08 */	addi r4, r1, 8
/* 802CA118 002C5D78  88 1F 00 22 */	lbz r0, 0x22(r31)
/* 802CA11C 002C5D7C  B0 C1 00 0A */	sth r6, 0xa(r1)
/* 802CA120 002C5D80  B0 A1 00 08 */	sth r5, 8(r1)
/* 802CA124 002C5D84  98 01 00 0C */	stb r0, 0xc(r1)
/* 802CA128 002C5D88  48 00 03 8D */	bl BTM_ChangeEScoLinkParms
/* 802CA12C 002C5D8C  48 00 00 44 */	b lbl_802CA170
lbl_802CA130:
/* 802CA130 002C5D90  2C 1D 00 00 */	cmpwi r29, 0
/* 802CA134 002C5D94  41 82 00 3C */	beq lbl_802CA170
/* 802CA138 002C5D98  A0 7D 00 00 */	lhz r3, 0(r29)
/* 802CA13C 002C5D9C  A0 1D 00 02 */	lhz r0, 2(r29)
/* 802CA140 002C5DA0  B0 7F 00 24 */	sth r3, 0x24(r31)
/* 802CA144 002C5DA4  B0 1F 00 26 */	sth r0, 0x26(r31)
/* 802CA148 002C5DA8  A0 7D 00 04 */	lhz r3, 4(r29)
/* 802CA14C 002C5DAC  A0 1D 00 06 */	lhz r0, 6(r29)
/* 802CA150 002C5DB0  B0 7F 00 28 */	sth r3, 0x28(r31)
/* 802CA154 002C5DB4  B0 1F 00 2A */	sth r0, 0x2a(r31)
/* 802CA158 002C5DB8  A0 1D 00 08 */	lhz r0, 8(r29)
/* 802CA15C 002C5DBC  B0 1F 00 2C */	sth r0, 0x2c(r31)
/* 802CA160 002C5DC0  A0 1D 00 0A */	lhz r0, 0xa(r29)
/* 802CA164 002C5DC4  B0 1F 00 2E */	sth r0, 0x2e(r31)
/* 802CA168 002C5DC8  A0 1D 00 0C */	lhz r0, 0xc(r29)
/* 802CA16C 002C5DCC  B0 1F 00 30 */	sth r0, 0x30(r31)
lbl_802CA170:
/* 802CA170 002C5DD0  81 9F 00 00 */	lwz r12, 0(r31)
/* 802CA174 002C5DD4  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 802CA178 002C5DD8  7D 89 03 A6 */	mtctr r12
/* 802CA17C 002C5DDC  4E 80 04 21 */	bctrl
/* 802CA180 002C5DE0  48 00 00 14 */	b lbl_802CA194
lbl_802CA184:
/* 802CA184 002C5DE4  3B DE 00 01 */	addi r30, r30, 1
/* 802CA188 002C5DE8  3B FF 00 34 */	addi r31, r31, 0x34
/* 802CA18C 002C5DEC  28 1E 00 03 */	cmplwi r30, 3
/* 802CA190 002C5DF0  41 80 FE B8 */	blt lbl_802CA048
lbl_802CA194:
/* 802CA194 002C5DF4  39 61 00 30 */	addi r11, r1, 0x30
/* 802CA198 002C5DF8  4B EF CF D1 */	bl _restgpr_24
/* 802CA19C 002C5DFC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802CA1A0 002C5E00  7C 08 03 A6 */	mtlr r0
/* 802CA1A4 002C5E04  38 21 00 30 */	addi r1, r1, 0x30
/* 802CA1A8 002C5E08  4E 80 00 20 */	blr

.global BTM_RemoveSco
BTM_RemoveSco:
/* 802CA1AC 002C5E0C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802CA1B0 002C5E10  7C 08 02 A6 */	mflr r0
/* 802CA1B4 002C5E14  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802CA1B8 002C5E18  28 03 00 03 */	cmplwi r3, 3
/* 802CA1BC 002C5E1C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802CA1C0 002C5E20  1C 03 00 34 */	mulli r0, r3, 0x34
/* 802CA1C4 002C5E24  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802CA1C8 002C5E28  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802CA1CC 002C5E2C  7F E4 02 14 */	add r31, r4, r0
/* 802CA1D0 002C5E30  93 C1 00 08 */	stw r30, 8(r1)
/* 802CA1D4 002C5E34  40 80 00 10 */	bge lbl_802CA1E4
/* 802CA1D8 002C5E38  A3 DF 18 5C */	lhz r30, 0x185c(r31)
/* 802CA1DC 002C5E3C  2C 1E 00 00 */	cmpwi r30, 0
/* 802CA1E0 002C5E40  40 82 00 0C */	bne lbl_802CA1EC
lbl_802CA1E4:
/* 802CA1E4 002C5E44  38 60 00 07 */	li r3, 7
/* 802CA1E8 002C5E48  48 00 00 64 */	b lbl_802CA24C
lbl_802CA1EC:
/* 802CA1EC 002C5E4C  A0 1F 18 5E */	lhz r0, 0x185e(r31)
/* 802CA1F0 002C5E50  28 00 FF FF */	cmplwi r0, 0xffff
/* 802CA1F4 002C5E54  41 82 00 0C */	beq lbl_802CA200
/* 802CA1F8 002C5E58  28 1E 00 06 */	cmplwi r30, 6
/* 802CA1FC 002C5E5C  40 82 00 24 */	bne lbl_802CA220
lbl_802CA200:
/* 802CA200 002C5E60  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 802CA204 002C5E64  38 00 00 00 */	li r0, 0
/* 802CA208 002C5E68  38 83 FF FF */	addi r4, r3, 0x0000FFFF@l
/* 802CA20C 002C5E6C  B0 9F 18 5E */	sth r4, 0x185e(r31)
/* 802CA210 002C5E70  38 60 00 00 */	li r3, 0
/* 802CA214 002C5E74  B0 1F 18 5C */	sth r0, 0x185c(r31)
/* 802CA218 002C5E78  90 1F 18 64 */	stw r0, 0x1864(r31)
/* 802CA21C 002C5E7C  48 00 00 30 */	b lbl_802CA24C
lbl_802CA220:
/* 802CA220 002C5E80  38 00 00 05 */	li r0, 5
/* 802CA224 002C5E84  38 80 00 13 */	li r4, 0x13
/* 802CA228 002C5E88  B0 1F 18 5C */	sth r0, 0x185c(r31)
/* 802CA22C 002C5E8C  A0 7F 18 5E */	lhz r3, 0x185e(r31)
/* 802CA230 002C5E90  48 00 5E 61 */	bl btsnd_hcic_disconnect
/* 802CA234 002C5E94  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802CA238 002C5E98  40 82 00 10 */	bne lbl_802CA248
/* 802CA23C 002C5E9C  B3 DF 18 5C */	sth r30, 0x185c(r31)
/* 802CA240 002C5EA0  38 60 00 03 */	li r3, 3
/* 802CA244 002C5EA4  48 00 00 08 */	b lbl_802CA24C
lbl_802CA248:
/* 802CA248 002C5EA8  38 60 00 01 */	li r3, 1
lbl_802CA24C:
/* 802CA24C 002C5EAC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802CA250 002C5EB0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802CA254 002C5EB4  83 C1 00 08 */	lwz r30, 8(r1)
/* 802CA258 002C5EB8  7C 08 03 A6 */	mtlr r0
/* 802CA25C 002C5EBC  38 21 00 10 */	addi r1, r1, 0x10
/* 802CA260 002C5EC0  4E 80 00 20 */	blr

.global btm_remove_sco_links
btm_remove_sco_links:
/* 802CA264 002C5EC4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CA268 002C5EC8  7C 08 02 A6 */	mflr r0
/* 802CA26C 002C5ECC  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802CA270 002C5ED0  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CA274 002C5ED4  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802CA278 002C5ED8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802CA27C 002C5EDC  3B E4 18 54 */	addi r31, r4, 0x1854
/* 802CA280 002C5EE0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802CA284 002C5EE4  3B C0 00 00 */	li r30, 0
/* 802CA288 002C5EE8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802CA28C 002C5EEC  7C 7D 1B 78 */	mr r29, r3
lbl_802CA290:
/* 802CA290 002C5EF0  88 1F 00 0D */	lbz r0, 0xd(r31)
/* 802CA294 002C5EF4  2C 00 00 00 */	cmpwi r0, 0
/* 802CA298 002C5EF8  41 82 00 24 */	beq lbl_802CA2BC
/* 802CA29C 002C5EFC  7F A4 EB 78 */	mr r4, r29
/* 802CA2A0 002C5F00  38 7F 00 28 */	addi r3, r31, 0x28
/* 802CA2A4 002C5F04  38 A0 00 06 */	li r5, 6
/* 802CA2A8 002C5F08  4B F0 00 F1 */	bl memcmp
/* 802CA2AC 002C5F0C  2C 03 00 00 */	cmpwi r3, 0
/* 802CA2B0 002C5F10  40 82 00 0C */	bne lbl_802CA2BC
/* 802CA2B4 002C5F14  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 802CA2B8 002C5F18  4B FF FE F5 */	bl BTM_RemoveSco
lbl_802CA2BC:
/* 802CA2BC 002C5F1C  3B DE 00 01 */	addi r30, r30, 1
/* 802CA2C0 002C5F20  3B FF 00 34 */	addi r31, r31, 0x34
/* 802CA2C4 002C5F24  28 1E 00 03 */	cmplwi r30, 3
/* 802CA2C8 002C5F28  41 80 FF C8 */	blt lbl_802CA290
/* 802CA2CC 002C5F2C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CA2D0 002C5F30  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802CA2D4 002C5F34  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802CA2D8 002C5F38  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802CA2DC 002C5F3C  7C 08 03 A6 */	mtlr r0
/* 802CA2E0 002C5F40  38 21 00 20 */	addi r1, r1, 0x20
/* 802CA2E4 002C5F44  4E 80 00 20 */	blr

.global btm_sco_removed
btm_sco_removed:
/* 802CA2E8 002C5F48  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802CA2EC 002C5F4C  7C 08 02 A6 */	mflr r0
/* 802CA2F0 002C5F50  3C A0 80 57 */	lis r5, lbl_80568B78@ha
/* 802CA2F4 002C5F54  90 01 00 14 */	stw r0, 0x14(r1)
/* 802CA2F8 002C5F58  38 A5 8B 78 */	addi r5, r5, lbl_80568B78@l
/* 802CA2FC 002C5F5C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802CA300 002C5F60  7C 7F 1B 78 */	mr r31, r3
/* 802CA304 002C5F64  38 60 00 00 */	li r3, 0
/* 802CA308 002C5F68  B0 85 18 F6 */	sth r4, 0x18f6(r5)
/* 802CA30C 002C5F6C  A0 05 18 5C */	lhz r0, 0x185c(r5)
/* 802CA310 002C5F70  2C 00 00 07 */	cmpwi r0, 7
/* 802CA314 002C5F74  40 80 00 14 */	bge lbl_802CA328
/* 802CA318 002C5F78  2C 00 00 02 */	cmpwi r0, 2
/* 802CA31C 002C5F7C  40 80 00 08 */	bge lbl_802CA324
/* 802CA320 002C5F80  48 00 00 08 */	b lbl_802CA328
lbl_802CA324:
/* 802CA324 002C5F84  38 60 00 01 */	li r3, 1
lbl_802CA328:
/* 802CA328 002C5F88  A0 05 18 90 */	lhz r0, 0x1890(r5)
/* 802CA32C 002C5F8C  2C 00 00 07 */	cmpwi r0, 7
/* 802CA330 002C5F90  40 80 00 14 */	bge lbl_802CA344
/* 802CA334 002C5F94  2C 00 00 02 */	cmpwi r0, 2
/* 802CA338 002C5F98  40 80 00 08 */	bge lbl_802CA340
/* 802CA33C 002C5F9C  48 00 00 08 */	b lbl_802CA344
lbl_802CA340:
/* 802CA340 002C5FA0  38 63 00 01 */	addi r3, r3, 1
lbl_802CA344:
/* 802CA344 002C5FA4  A0 05 18 C4 */	lhz r0, 0x18c4(r5)
/* 802CA348 002C5FA8  2C 00 00 07 */	cmpwi r0, 7
/* 802CA34C 002C5FAC  40 80 00 14 */	bge lbl_802CA360
/* 802CA350 002C5FB0  2C 00 00 02 */	cmpwi r0, 2
/* 802CA354 002C5FB4  40 80 00 08 */	bge lbl_802CA35C
/* 802CA358 002C5FB8  48 00 00 08 */	b lbl_802CA360
lbl_802CA35C:
/* 802CA35C 002C5FBC  38 63 00 01 */	addi r3, r3, 1
lbl_802CA360:
/* 802CA360 002C5FC0  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 802CA364 002C5FC4  28 00 00 01 */	cmplwi r0, 1
/* 802CA368 002C5FC8  41 81 00 0C */	bgt lbl_802CA374
/* 802CA36C 002C5FCC  38 60 00 00 */	li r3, 0
/* 802CA370 002C5FD0  4B FF AB E1 */	bl btm_chg_all_acl_pkt_types
lbl_802CA374:
/* 802CA374 002C5FD4  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802CA378 002C5FD8  38 00 00 03 */	li r0, 3
/* 802CA37C 002C5FDC  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802CA380 002C5FE0  38 C0 00 00 */	li r6, 0
/* 802CA384 002C5FE4  38 A3 18 54 */	addi r5, r3, 0x1854
/* 802CA388 002C5FE8  7C 09 03 A6 */	mtctr r0
lbl_802CA38C:
/* 802CA38C 002C5FEC  A0 05 00 08 */	lhz r0, 8(r5)
/* 802CA390 002C5FF0  2C 00 00 00 */	cmpwi r0, 0
/* 802CA394 002C5FF4  41 82 00 48 */	beq lbl_802CA3DC
/* 802CA398 002C5FF8  28 00 00 01 */	cmplwi r0, 1
/* 802CA39C 002C5FFC  41 82 00 40 */	beq lbl_802CA3DC
/* 802CA3A0 002C6000  A0 05 00 0A */	lhz r0, 0xa(r5)
/* 802CA3A4 002C6004  7C 00 F8 40 */	cmplw r0, r31
/* 802CA3A8 002C6008  40 82 00 34 */	bne lbl_802CA3DC
/* 802CA3AC 002C600C  38 80 00 00 */	li r4, 0
/* 802CA3B0 002C6010  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 802CA3B4 002C6014  B0 85 00 08 */	sth r4, 8(r5)
/* 802CA3B8 002C6018  38 03 FF FF */	addi r0, r3, 0x0000FFFF@l
/* 802CA3BC 002C601C  54 C3 04 3E */	clrlwi r3, r6, 0x10
/* 802CA3C0 002C6020  B0 05 00 0A */	sth r0, 0xa(r5)
/* 802CA3C4 002C6024  98 85 00 0D */	stb r4, 0xd(r5)
/* 802CA3C8 002C6028  90 85 00 10 */	stw r4, 0x10(r5)
/* 802CA3CC 002C602C  81 85 00 04 */	lwz r12, 4(r5)
/* 802CA3D0 002C6030  7D 89 03 A6 */	mtctr r12
/* 802CA3D4 002C6034  4E 80 04 21 */	bctrl
/* 802CA3D8 002C6038  48 00 00 10 */	b lbl_802CA3E8
lbl_802CA3DC:
/* 802CA3DC 002C603C  38 C6 00 01 */	addi r6, r6, 1
/* 802CA3E0 002C6040  38 A5 00 34 */	addi r5, r5, 0x34
/* 802CA3E4 002C6044  42 00 FF A8 */	bdnz lbl_802CA38C
lbl_802CA3E8:
/* 802CA3E8 002C6048  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802CA3EC 002C604C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802CA3F0 002C6050  7C 08 03 A6 */	mtlr r0
/* 802CA3F4 002C6054  38 21 00 10 */	addi r1, r1, 0x10
/* 802CA3F8 002C6058  4E 80 00 20 */	blr

.global btm_sco_acl_removed
btm_sco_acl_removed:
/* 802CA3FC 002C605C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CA400 002C6060  7C 08 02 A6 */	mflr r0
/* 802CA404 002C6064  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802CA408 002C6068  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CA40C 002C606C  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802CA410 002C6070  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802CA414 002C6074  3B E0 00 00 */	li r31, 0
/* 802CA418 002C6078  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802CA41C 002C607C  3B C4 18 54 */	addi r30, r4, 0x1854
/* 802CA420 002C6080  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802CA424 002C6084  3B A0 00 00 */	li r29, 0
/* 802CA428 002C6088  93 81 00 10 */	stw r28, 0x10(r1)
/* 802CA42C 002C608C  7C 7C 1B 78 */	mr r28, r3
lbl_802CA430:
/* 802CA430 002C6090  A0 1E 00 08 */	lhz r0, 8(r30)
/* 802CA434 002C6094  2C 00 00 00 */	cmpwi r0, 0
/* 802CA438 002C6098  41 82 00 48 */	beq lbl_802CA480
/* 802CA43C 002C609C  2C 1C 00 00 */	cmpwi r28, 0
/* 802CA440 002C60A0  41 82 00 28 */	beq lbl_802CA468
/* 802CA444 002C60A4  7F 84 E3 78 */	mr r4, r28
/* 802CA448 002C60A8  38 7E 00 28 */	addi r3, r30, 0x28
/* 802CA44C 002C60AC  38 A0 00 06 */	li r5, 6
/* 802CA450 002C60B0  4B EF FF 49 */	bl memcmp
/* 802CA454 002C60B4  2C 03 00 00 */	cmpwi r3, 0
/* 802CA458 002C60B8  40 82 00 28 */	bne lbl_802CA480
/* 802CA45C 002C60BC  88 1E 00 0D */	lbz r0, 0xd(r30)
/* 802CA460 002C60C0  2C 00 00 00 */	cmpwi r0, 0
/* 802CA464 002C60C4  41 82 00 1C */	beq lbl_802CA480
lbl_802CA468:
/* 802CA468 002C60C8  B3 FE 00 08 */	sth r31, 8(r30)
/* 802CA46C 002C60CC  57 A3 04 3E */	clrlwi r3, r29, 0x10
/* 802CA470 002C60D0  93 FE 00 10 */	stw r31, 0x10(r30)
/* 802CA474 002C60D4  81 9E 00 04 */	lwz r12, 4(r30)
/* 802CA478 002C60D8  7D 89 03 A6 */	mtctr r12
/* 802CA47C 002C60DC  4E 80 04 21 */	bctrl
lbl_802CA480:
/* 802CA480 002C60E0  3B BD 00 01 */	addi r29, r29, 1
/* 802CA484 002C60E4  3B DE 00 34 */	addi r30, r30, 0x34
/* 802CA488 002C60E8  28 1D 00 03 */	cmplwi r29, 3
/* 802CA48C 002C60EC  41 80 FF A4 */	blt lbl_802CA430
/* 802CA490 002C60F0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CA494 002C60F4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802CA498 002C60F8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802CA49C 002C60FC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802CA4A0 002C6100  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802CA4A4 002C6104  7C 08 03 A6 */	mtlr r0
/* 802CA4A8 002C6108  38 21 00 20 */	addi r1, r1, 0x20
/* 802CA4AC 002C610C  4E 80 00 20 */	blr

.global btm_route_sco_data
btm_route_sco_data:
/* 802CA4B0 002C6110  4B FE F8 84 */	b GKI_freebuf

.global BTM_ChangeEScoLinkParms
BTM_ChangeEScoLinkParms:
/* 802CA4B4 002C6114  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CA4B8 002C6118  7C 08 02 A6 */	mflr r0
/* 802CA4BC 002C611C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CA4C0 002C6120  39 61 00 20 */	addi r11, r1, 0x20
/* 802CA4C4 002C6124  4B EF CC 65 */	bl _savegpr_27
/* 802CA4C8 002C6128  28 03 00 03 */	cmplwi r3, 3
/* 802CA4CC 002C612C  3F C0 80 44 */	lis r30, lbl_80441590@ha
/* 802CA4D0 002C6130  7C 9C 23 78 */	mr r28, r4
/* 802CA4D4 002C6134  3B DE 15 90 */	addi r30, r30, lbl_80441590@l
/* 802CA4D8 002C6138  40 80 00 20 */	bge lbl_802CA4F8
/* 802CA4DC 002C613C  1C 03 00 34 */	mulli r0, r3, 0x34
/* 802CA4E0 002C6140  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802CA4E4 002C6144  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802CA4E8 002C6148  7F E3 02 14 */	add r31, r3, r0
/* 802CA4EC 002C614C  A0 1F 18 5C */	lhz r0, 0x185c(r31)
/* 802CA4F0 002C6150  28 00 00 04 */	cmplwi r0, 4
/* 802CA4F4 002C6154  41 82 00 0C */	beq lbl_802CA500
lbl_802CA4F8:
/* 802CA4F8 002C6158  38 60 00 06 */	li r3, 6
/* 802CA4FC 002C615C  48 00 01 48 */	b lbl_802CA644
lbl_802CA500:
/* 802CA500 002C6160  88 1F 18 82 */	lbz r0, 0x1882(r31)
/* 802CA504 002C6164  3B BF 18 68 */	addi r29, r31, 0x1868
/* 802CA508 002C6168  2C 00 00 00 */	cmpwi r0, 0
/* 802CA50C 002C616C  41 82 00 10 */	beq lbl_802CA51C
/* 802CA510 002C6170  88 03 19 08 */	lbz r0, 0x1908(r3)
/* 802CA514 002C6174  2C 00 00 00 */	cmpwi r0, 0
/* 802CA518 002C6178  40 82 00 64 */	bne lbl_802CA57C
lbl_802CA51C:
/* 802CA51C 002C617C  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802CA520 002C6180  A0 84 00 02 */	lhz r4, 2(r4)
/* 802CA524 002C6184  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802CA528 002C6188  A0 03 06 56 */	lhz r0, 0x656(r3)
/* 802CA52C 002C618C  54 00 07 7E */	clrlwi r0, r0, 0x1d
/* 802CA530 002C6190  7C 80 00 38 */	and r0, r4, r0
/* 802CA534 002C6194  B0 1D 00 0C */	sth r0, 0xc(r29)
/* 802CA538 002C6198  88 03 27 C0 */	lbz r0, 0x27c0(r3)
/* 802CA53C 002C619C  28 00 00 03 */	cmplwi r0, 3
/* 802CA540 002C61A0  41 80 00 1C */	blt lbl_802CA55C
/* 802CA544 002C61A4  3C 60 00 0D */	lis r3, 0x000D0002@ha
/* 802CA548 002C61A8  A0 BF 18 5E */	lhz r5, 0x185e(r31)
/* 802CA54C 002C61AC  A0 DD 00 0C */	lhz r6, 0xc(r29)
/* 802CA550 002C61B0  38 63 00 02 */	addi r3, r3, 0x000D0002@l
/* 802CA554 002C61B4  38 9E 02 48 */	addi r4, r30, 0x248
/* 802CA558 002C61B8  4B FF 29 E9 */	bl LogMsg_2
lbl_802CA55C:
/* 802CA55C 002C61BC  A0 1D 00 0C */	lhz r0, 0xc(r29)
/* 802CA560 002C61C0  A0 7F 18 5E */	lhz r3, 0x185e(r31)
/* 802CA564 002C61C4  54 04 2E 34 */	rlwinm r4, r0, 5, 0x18, 0x1a
/* 802CA568 002C61C8  48 00 61 BD */	bl btsnd_hcic_change_conn_type
/* 802CA56C 002C61CC  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802CA570 002C61D0  40 82 00 D0 */	bne lbl_802CA640
/* 802CA574 002C61D4  38 60 00 03 */	li r3, 3
/* 802CA578 002C61D8  48 00 00 CC */	b lbl_802CA644
lbl_802CA57C:
/* 802CA57C 002C61DC  88 03 06 36 */	lbz r0, 0x636(r3)
/* 802CA580 002C61E0  A0 63 06 56 */	lhz r3, 0x656(r3)
/* 802CA584 002C61E4  A0 84 00 02 */	lhz r4, 2(r4)
/* 802CA588 002C61E8  28 00 00 03 */	cmplwi r0, 3
/* 802CA58C 002C61EC  7C 80 18 38 */	and r0, r4, r3
/* 802CA590 002C61F0  54 1B 06 BE */	clrlwi r27, r0, 0x1a
/* 802CA594 002C61F4  41 80 00 14 */	blt lbl_802CA5A8
/* 802CA598 002C61F8  7C 80 1B 78 */	or r0, r4, r3
/* 802CA59C 002C61FC  54 00 05 B2 */	rlwinm r0, r0, 0, 0x16, 0x19
/* 802CA5A0 002C6200  7F 60 03 78 */	or r0, r27, r0
/* 802CA5A4 002C6204  54 1B 04 3E */	clrlwi r27, r0, 0x10
lbl_802CA5A8:
/* 802CA5A8 002C6208  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802CA5AC 002C620C  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802CA5B0 002C6210  88 03 27 C0 */	lbz r0, 0x27c0(r3)
/* 802CA5B4 002C6214  28 00 00 03 */	cmplwi r0, 3
/* 802CA5B8 002C6218  41 80 00 18 */	blt lbl_802CA5D0
/* 802CA5BC 002C621C  3C 60 00 0D */	lis r3, 0x000D0002@ha
/* 802CA5C0 002C6220  A0 BF 18 5E */	lhz r5, 0x185e(r31)
/* 802CA5C4 002C6224  38 63 00 02 */	addi r3, r3, 0x000D0002@l
/* 802CA5C8 002C6228  38 9E 02 8C */	addi r4, r30, 0x28c
/* 802CA5CC 002C622C  4B FF 29 5D */	bl LogMsg_1
lbl_802CA5D0:
/* 802CA5D0 002C6230  3C 60 80 57 */	lis r3, lbl_80568B78@ha
/* 802CA5D4 002C6234  38 63 8B 78 */	addi r3, r3, lbl_80568B78@l
/* 802CA5D8 002C6238  88 03 27 C0 */	lbz r0, 0x27c0(r3)
/* 802CA5DC 002C623C  28 00 00 03 */	cmplwi r0, 3
/* 802CA5E0 002C6240  41 80 00 2C */	blt lbl_802CA60C
/* 802CA5E4 002C6244  3C 60 00 0D */	lis r3, 0x000D0002@ha
/* 802CA5E8 002C6248  80 BD 00 00 */	lwz r5, 0(r29)
/* 802CA5EC 002C624C  80 DD 00 04 */	lwz r6, 4(r29)
/* 802CA5F0 002C6250  38 63 00 02 */	addi r3, r3, 0x000D0002@l
/* 802CA5F4 002C6254  A0 FC 00 00 */	lhz r7, 0(r28)
/* 802CA5F8 002C6258  38 9E 00 8C */	addi r4, r30, 0x8c
/* 802CA5FC 002C625C  A1 1D 00 0A */	lhz r8, 0xa(r29)
/* 802CA600 002C6260  57 6A 04 3E */	clrlwi r10, r27, 0x10
/* 802CA604 002C6264  89 3C 00 04 */	lbz r9, 4(r28)
/* 802CA608 002C6268  4B FF 29 99 */	bl LogMsg_6
lbl_802CA60C:
/* 802CA60C 002C626C  A0 7F 18 5E */	lhz r3, 0x185e(r31)
/* 802CA610 002C6270  57 69 04 3E */	clrlwi r9, r27, 0x10
/* 802CA614 002C6274  80 9D 00 00 */	lwz r4, 0(r29)
/* 802CA618 002C6278  80 BD 00 04 */	lwz r5, 4(r29)
/* 802CA61C 002C627C  A0 DC 00 00 */	lhz r6, 0(r28)
/* 802CA620 002C6280  A0 FD 00 0A */	lhz r7, 0xa(r29)
/* 802CA624 002C6284  89 1C 00 04 */	lbz r8, 4(r28)
/* 802CA628 002C6288  48 00 65 81 */	bl btsnd_hcic_setup_esco_conn
/* 802CA62C 002C628C  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802CA630 002C6290  40 82 00 0C */	bne lbl_802CA63C
/* 802CA634 002C6294  38 60 00 03 */	li r3, 3
/* 802CA638 002C6298  48 00 00 0C */	b lbl_802CA644
lbl_802CA63C:
/* 802CA63C 002C629C  B3 7C 00 02 */	sth r27, 2(r28)
lbl_802CA640:
/* 802CA640 002C62A0  38 60 00 01 */	li r3, 1
lbl_802CA644:
/* 802CA644 002C62A4  39 61 00 20 */	addi r11, r1, 0x20
/* 802CA648 002C62A8  4B EF CB 2D */	bl _restgpr_27
/* 802CA64C 002C62AC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CA650 002C62B0  7C 08 03 A6 */	mtlr r0
/* 802CA654 002C62B4  38 21 00 20 */	addi r1, r1, 0x20
/* 802CA658 002C62B8  4E 80 00 20 */	blr

.global btm_esco_proc_conn_chg
btm_esco_proc_conn_chg:
/* 802CA65C 002C62BC  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 802CA660 002C62C0  7C 08 02 A6 */	mflr r0
/* 802CA664 002C62C4  90 01 00 44 */	stw r0, 0x44(r1)
/* 802CA668 002C62C8  39 61 00 40 */	addi r11, r1, 0x40
/* 802CA66C 002C62CC  4B EF CA B1 */	bl _savegpr_24
/* 802CA670 002C62D0  3D 20 80 57 */	lis r9, lbl_80568B78@ha
/* 802CA674 002C62D4  7C 78 1B 78 */	mr r24, r3
/* 802CA678 002C62D8  39 29 8B 78 */	addi r9, r9, lbl_80568B78@l
/* 802CA67C 002C62DC  7C 99 23 78 */	mr r25, r4
/* 802CA680 002C62E0  88 09 27 C0 */	lbz r0, 0x27c0(r9)
/* 802CA684 002C62E4  7C BA 2B 78 */	mr r26, r5
/* 802CA688 002C62E8  7C DB 33 78 */	mr r27, r6
/* 802CA68C 002C62EC  7C FC 3B 78 */	mr r28, r7
/* 802CA690 002C62F0  28 00 00 04 */	cmplwi r0, 4
/* 802CA694 002C62F4  7D 1D 43 78 */	mr r29, r8
/* 802CA698 002C62F8  3B E9 18 54 */	addi r31, r9, 0x1854
/* 802CA69C 002C62FC  41 80 00 20 */	blt lbl_802CA6BC
/* 802CA6A0 002C6300  3C 60 00 0D */	lis r3, 0x000D0003@ha
/* 802CA6A4 002C6304  3C 80 80 44 */	lis r4, lbl_80441854@ha
/* 802CA6A8 002C6308  7F 25 CB 78 */	mr r5, r25
/* 802CA6AC 002C630C  7F 06 C3 78 */	mr r6, r24
/* 802CA6B0 002C6310  38 63 00 03 */	addi r3, r3, 0x000D0003@l
/* 802CA6B4 002C6314  38 84 18 54 */	addi r4, r4, lbl_80441854@l
/* 802CA6B8 002C6318  4B FF 28 89 */	bl LogMsg_2
lbl_802CA6BC:
/* 802CA6BC 002C631C  38 00 00 03 */	li r0, 3
/* 802CA6C0 002C6320  3B C0 00 00 */	li r30, 0
/* 802CA6C4 002C6324  7C 09 03 A6 */	mtctr r0
lbl_802CA6C8:
/* 802CA6C8 002C6328  A0 1F 00 08 */	lhz r0, 8(r31)
/* 802CA6CC 002C632C  28 00 00 04 */	cmplwi r0, 4
/* 802CA6D0 002C6330  40 82 00 6C */	bne lbl_802CA73C
/* 802CA6D4 002C6334  A0 1F 00 0A */	lhz r0, 0xa(r31)
/* 802CA6D8 002C6338  7C 19 00 40 */	cmplw r25, r0
/* 802CA6DC 002C633C  40 82 00 60 */	bne lbl_802CA73C
/* 802CA6E0 002C6340  80 1F 00 10 */	lwz r0, 0x10(r31)
/* 802CA6E4 002C6344  2C 00 00 00 */	cmpwi r0, 0
/* 802CA6E8 002C6348  41 82 00 60 */	beq lbl_802CA748
/* 802CA6EC 002C634C  38 61 00 0E */	addi r3, r1, 0xe
/* 802CA6F0 002C6350  38 9F 00 28 */	addi r4, r31, 0x28
/* 802CA6F4 002C6354  38 A0 00 06 */	li r5, 6
/* 802CA6F8 002C6358  4B D3 99 09 */	bl memcpy
/* 802CA6FC 002C635C  B3 9F 00 24 */	sth r28, 0x24(r31)
/* 802CA700 002C6360  38 81 00 08 */	addi r4, r1, 8
/* 802CA704 002C6364  38 60 00 01 */	li r3, 1
/* 802CA708 002C6368  B3 BF 00 26 */	sth r29, 0x26(r31)
/* 802CA70C 002C636C  9B 5F 00 2F */	stb r26, 0x2f(r31)
/* 802CA710 002C6370  9B 7F 00 30 */	stb r27, 0x30(r31)
/* 802CA714 002C6374  81 9F 00 10 */	lwz r12, 0x10(r31)
/* 802CA718 002C6378  9B 01 00 14 */	stb r24, 0x14(r1)
/* 802CA71C 002C637C  B3 C1 00 08 */	sth r30, 8(r1)
/* 802CA720 002C6380  B3 81 00 0A */	sth r28, 0xa(r1)
/* 802CA724 002C6384  B3 A1 00 0C */	sth r29, 0xc(r1)
/* 802CA728 002C6388  9B 41 00 15 */	stb r26, 0x15(r1)
/* 802CA72C 002C638C  9B 61 00 16 */	stb r27, 0x16(r1)
/* 802CA730 002C6390  7D 89 03 A6 */	mtctr r12
/* 802CA734 002C6394  4E 80 04 21 */	bctrl
/* 802CA738 002C6398  48 00 00 10 */	b lbl_802CA748
lbl_802CA73C:
/* 802CA73C 002C639C  3B DE 00 01 */	addi r30, r30, 1
/* 802CA740 002C63A0  3B FF 00 34 */	addi r31, r31, 0x34
/* 802CA744 002C63A4  42 00 FF 84 */	bdnz lbl_802CA6C8
lbl_802CA748:
/* 802CA748 002C63A8  39 61 00 40 */	addi r11, r1, 0x40
/* 802CA74C 002C63AC  4B EF CA 1D */	bl _restgpr_24
/* 802CA750 002C63B0  80 01 00 44 */	lwz r0, 0x44(r1)
/* 802CA754 002C63B4  7C 08 03 A6 */	mtlr r0
/* 802CA758 002C63B8  38 21 00 40 */	addi r1, r1, 0x40
/* 802CA75C 002C63BC  4E 80 00 20 */	blr

.global btm_is_sco_active
btm_is_sco_active:
/* 802CA760 002C63C0  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802CA764 002C63C4  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802CA768 002C63C8  A0 04 18 5E */	lhz r0, 0x185e(r4)
/* 802CA76C 002C63CC  7C 03 00 40 */	cmplw r3, r0
/* 802CA770 002C63D0  40 82 00 18 */	bne lbl_802CA788
/* 802CA774 002C63D4  A0 04 18 5C */	lhz r0, 0x185c(r4)
/* 802CA778 002C63D8  28 00 00 04 */	cmplwi r0, 4
/* 802CA77C 002C63DC  40 82 00 0C */	bne lbl_802CA788
/* 802CA780 002C63E0  38 60 00 01 */	li r3, 1
/* 802CA784 002C63E4  4E 80 00 20 */	blr
lbl_802CA788:
/* 802CA788 002C63E8  A0 04 18 92 */	lhz r0, 0x1892(r4)
/* 802CA78C 002C63EC  7C 03 00 40 */	cmplw r3, r0
/* 802CA790 002C63F0  40 82 00 18 */	bne lbl_802CA7A8
/* 802CA794 002C63F4  A0 04 18 90 */	lhz r0, 0x1890(r4)
/* 802CA798 002C63F8  28 00 00 04 */	cmplwi r0, 4
/* 802CA79C 002C63FC  40 82 00 0C */	bne lbl_802CA7A8
/* 802CA7A0 002C6400  38 60 00 01 */	li r3, 1
/* 802CA7A4 002C6404  4E 80 00 20 */	blr
lbl_802CA7A8:
/* 802CA7A8 002C6408  A0 04 18 C6 */	lhz r0, 0x18c6(r4)
/* 802CA7AC 002C640C  7C 03 00 40 */	cmplw r3, r0
/* 802CA7B0 002C6410  40 82 00 18 */	bne lbl_802CA7C8
/* 802CA7B4 002C6414  A0 04 18 C4 */	lhz r0, 0x18c4(r4)
/* 802CA7B8 002C6418  28 00 00 04 */	cmplwi r0, 4
/* 802CA7BC 002C641C  40 82 00 0C */	bne lbl_802CA7C8
/* 802CA7C0 002C6420  38 60 00 01 */	li r3, 1
/* 802CA7C4 002C6424  4E 80 00 20 */	blr
lbl_802CA7C8:
/* 802CA7C8 002C6428  38 60 00 00 */	li r3, 0
/* 802CA7CC 002C642C  4E 80 00 20 */	blr

.global btm_num_sco_links_active
btm_num_sco_links_active:
/* 802CA7D0 002C6430  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802CA7D4 002C6434  38 60 00 00 */	li r3, 0
/* 802CA7D8 002C6438  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802CA7DC 002C643C  A0 04 18 5C */	lhz r0, 0x185c(r4)
/* 802CA7E0 002C6440  2C 00 00 07 */	cmpwi r0, 7
/* 802CA7E4 002C6444  40 80 00 14 */	bge lbl_802CA7F8
/* 802CA7E8 002C6448  2C 00 00 02 */	cmpwi r0, 2
/* 802CA7EC 002C644C  40 80 00 08 */	bge lbl_802CA7F4
/* 802CA7F0 002C6450  48 00 00 08 */	b lbl_802CA7F8
lbl_802CA7F4:
/* 802CA7F4 002C6454  38 60 00 01 */	li r3, 1
lbl_802CA7F8:
/* 802CA7F8 002C6458  A0 04 18 90 */	lhz r0, 0x1890(r4)
/* 802CA7FC 002C645C  2C 00 00 07 */	cmpwi r0, 7
/* 802CA800 002C6460  40 80 00 14 */	bge lbl_802CA814
/* 802CA804 002C6464  2C 00 00 02 */	cmpwi r0, 2
/* 802CA808 002C6468  40 80 00 08 */	bge lbl_802CA810
/* 802CA80C 002C646C  48 00 00 08 */	b lbl_802CA814
lbl_802CA810:
/* 802CA810 002C6470  38 63 00 01 */	addi r3, r3, 1
lbl_802CA814:
/* 802CA814 002C6474  A0 04 18 C4 */	lhz r0, 0x18c4(r4)
/* 802CA818 002C6478  2C 00 00 07 */	cmpwi r0, 7
/* 802CA81C 002C647C  4C 80 00 20 */	bgelr
/* 802CA820 002C6480  2C 00 00 02 */	cmpwi r0, 2
/* 802CA824 002C6484  4D 80 00 20 */	bltlr
/* 802CA828 002C6488  38 63 00 01 */	addi r3, r3, 1
/* 802CA82C 002C648C  4E 80 00 20 */	blr

.global btm_is_sco_active_by_bdaddr
btm_is_sco_active_by_bdaddr:
/* 802CA830 002C6490  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CA834 002C6494  7C 08 02 A6 */	mflr r0
/* 802CA838 002C6498  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802CA83C 002C649C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CA840 002C64A0  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802CA844 002C64A4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802CA848 002C64A8  3B E0 00 00 */	li r31, 0
/* 802CA84C 002C64AC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802CA850 002C64B0  3B C4 18 54 */	addi r30, r4, 0x1854
/* 802CA854 002C64B4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802CA858 002C64B8  7C 7D 1B 78 */	mr r29, r3
lbl_802CA85C:
/* 802CA85C 002C64BC  7F A4 EB 78 */	mr r4, r29
/* 802CA860 002C64C0  38 7E 00 28 */	addi r3, r30, 0x28
/* 802CA864 002C64C4  38 A0 00 06 */	li r5, 6
/* 802CA868 002C64C8  4B EF FB 31 */	bl memcmp
/* 802CA86C 002C64CC  2C 03 00 00 */	cmpwi r3, 0
/* 802CA870 002C64D0  40 82 00 18 */	bne lbl_802CA888
/* 802CA874 002C64D4  A0 1E 00 08 */	lhz r0, 8(r30)
/* 802CA878 002C64D8  28 00 00 04 */	cmplwi r0, 4
/* 802CA87C 002C64DC  40 82 00 0C */	bne lbl_802CA888
/* 802CA880 002C64E0  38 60 00 01 */	li r3, 1
/* 802CA884 002C64E4  48 00 00 18 */	b lbl_802CA89C
lbl_802CA888:
/* 802CA888 002C64E8  3B FF 00 01 */	addi r31, r31, 1
/* 802CA88C 002C64EC  3B DE 00 34 */	addi r30, r30, 0x34
/* 802CA890 002C64F0  28 1F 00 03 */	cmplwi r31, 3
/* 802CA894 002C64F4  41 80 FF C8 */	blt lbl_802CA85C
/* 802CA898 002C64F8  38 60 00 00 */	li r3, 0
lbl_802CA89C:
/* 802CA89C 002C64FC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CA8A0 002C6500  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802CA8A4 002C6504  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802CA8A8 002C6508  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802CA8AC 002C650C  7C 08 03 A6 */	mtlr r0
/* 802CA8B0 002C6510  38 21 00 20 */	addi r1, r1, 0x20
/* 802CA8B4 002C6514  4E 80 00 20 */	blr