summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/l2c_link.s
blob: 58c42818a2c8655f500ce09cb353bd48d33e91ef (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
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
.include "macros.inc"

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

.global l2c_link_hci_conn_req
l2c_link_hci_conn_req:
/* 802D78D8 002D3538  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D78DC 002D353C  7C 08 02 A6 */	mflr r0
/* 802D78E0 002D3540  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D78E4 002D3544  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802D78E8 002D3548  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802D78EC 002D354C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802D78F0 002D3550  7C 7D 1B 78 */	mr r29, r3
/* 802D78F4 002D3554  38 60 00 02 */	li r3, 2
/* 802D78F8 002D3558  4B FE 23 55 */	bl GKI_getpoolbuf
/* 802D78FC 002D355C  2C 03 00 00 */	cmpwi r3, 0
/* 802D7900 002D3560  7C 7E 1B 78 */	mr r30, r3
/* 802D7904 002D3564  41 82 01 0C */	beq lbl_802D7A10
/* 802D7908 002D3568  7F A3 EB 78 */	mr r3, r29
/* 802D790C 002D356C  48 00 23 5D */	bl l2cu_find_lcb_by_bd_addr
/* 802D7910 002D3570  2C 03 00 00 */	cmpwi r3, 0
/* 802D7914 002D3574  7C 7F 1B 78 */	mr r31, r3
/* 802D7918 002D3578  40 82 00 84 */	bne lbl_802D799C
/* 802D791C 002D357C  7F A3 EB 78 */	mr r3, r29
/* 802D7920 002D3580  48 00 21 75 */	bl l2cu_allocate_lcb
/* 802D7924 002D3584  2C 03 00 00 */	cmpwi r3, 0
/* 802D7928 002D3588  7C 7F 1B 78 */	mr r31, r3
/* 802D792C 002D358C  40 82 00 38 */	bne lbl_802D7964
/* 802D7930 002D3590  7F C3 F3 78 */	mr r3, r30
/* 802D7934 002D3594  7F A4 EB 78 */	mr r4, r29
/* 802D7938 002D3598  38 A0 00 14 */	li r5, 0x14
/* 802D793C 002D359C  4B FF 88 C9 */	bl btsnd_hcic_reject_conn
/* 802D7940 002D35A0  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D7944 002D35A4  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D7948 002D35A8  28 00 00 01 */	cmplwi r0, 1
/* 802D794C 002D35AC  41 80 00 C4 */	blt lbl_802D7A10
/* 802D7950 002D35B0  3C 80 80 44 */	lis r4, lbl_80443C08@ha
/* 802D7954 002D35B4  3C 60 00 08 */	lis r3, 8
/* 802D7958 002D35B8  38 84 3C 08 */	addi r4, r4, lbl_80443C08@l
/* 802D795C 002D35BC  4B FE 55 B5 */	bl LogMsg_0
/* 802D7960 002D35C0  48 00 00 B0 */	b lbl_802D7A10
lbl_802D7964:
/* 802D7964 002D35C4  48 00 24 1D */	bl l2cu_get_conn_role
/* 802D7968 002D35C8  7C 60 1B 78 */	mr r0, r3
/* 802D796C 002D35CC  98 7F 00 30 */	stb r3, 0x30(r31)
/* 802D7970 002D35D0  7F C3 F3 78 */	mr r3, r30
/* 802D7974 002D35D4  7F A4 EB 78 */	mr r4, r29
/* 802D7978 002D35D8  54 05 06 3E */	clrlwi r5, r0, 0x18
/* 802D797C 002D35DC  4B FF 88 29 */	bl btsnd_hcic_accept_conn
/* 802D7980 002D35E0  38 00 00 03 */	li r0, 3
/* 802D7984 002D35E4  38 7F 00 10 */	addi r3, r31, 0x10
/* 802D7988 002D35E8  90 1F 00 04 */	stw r0, 4(r31)
/* 802D798C 002D35EC  38 80 00 02 */	li r4, 2
/* 802D7990 002D35F0  38 A0 00 3C */	li r5, 0x3c
/* 802D7994 002D35F4  4B FE 5B 49 */	bl btu_start_timer
/* 802D7998 002D35F8  48 00 00 78 */	b lbl_802D7A10
lbl_802D799C:
/* 802D799C 002D35FC  80 03 00 04 */	lwz r0, 4(r3)
/* 802D79A0 002D3600  2C 00 00 03 */	cmpwi r0, 3
/* 802D79A4 002D3604  41 82 00 0C */	beq lbl_802D79B0
/* 802D79A8 002D3608  2C 00 00 01 */	cmpwi r0, 1
/* 802D79AC 002D360C  40 82 00 20 */	bne lbl_802D79CC
lbl_802D79B0:
/* 802D79B0 002D3610  88 BF 00 30 */	lbz r5, 0x30(r31)
/* 802D79B4 002D3614  7F C3 F3 78 */	mr r3, r30
/* 802D79B8 002D3618  7F A4 EB 78 */	mr r4, r29
/* 802D79BC 002D361C  4B FF 87 E9 */	bl btsnd_hcic_accept_conn
/* 802D79C0 002D3620  38 00 00 03 */	li r0, 3
/* 802D79C4 002D3624  90 1F 00 04 */	stw r0, 4(r31)
/* 802D79C8 002D3628  48 00 00 48 */	b lbl_802D7A10
lbl_802D79CC:
/* 802D79CC 002D362C  2C 00 00 05 */	cmpwi r0, 5
/* 802D79D0 002D3630  40 82 00 18 */	bne lbl_802D79E8
/* 802D79D4 002D3634  7F C3 F3 78 */	mr r3, r30
/* 802D79D8 002D3638  7F A4 EB 78 */	mr r4, r29
/* 802D79DC 002D363C  38 A0 00 15 */	li r5, 0x15
/* 802D79E0 002D3640  4B FF 88 25 */	bl btsnd_hcic_reject_conn
/* 802D79E4 002D3644  48 00 00 2C */	b lbl_802D7A10
lbl_802D79E8:
/* 802D79E8 002D3648  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D79EC 002D364C  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D79F0 002D3650  28 00 00 01 */	cmplwi r0, 1
/* 802D79F4 002D3654  41 80 00 14 */	blt lbl_802D7A08
/* 802D79F8 002D3658  3C 80 80 44 */	lis r4, lbl_80443C28@ha
/* 802D79FC 002D365C  3C 60 00 08 */	lis r3, 8
/* 802D7A00 002D3660  38 84 3C 28 */	addi r4, r4, lbl_80443C28@l
/* 802D7A04 002D3664  4B FE 55 0D */	bl LogMsg_0
lbl_802D7A08:
/* 802D7A08 002D3668  7F C3 F3 78 */	mr r3, r30
/* 802D7A0C 002D366C  4B FE 23 29 */	bl GKI_freebuf
lbl_802D7A10:
/* 802D7A10 002D3670  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D7A14 002D3674  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802D7A18 002D3678  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802D7A1C 002D367C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802D7A20 002D3680  7C 08 03 A6 */	mtlr r0
/* 802D7A24 002D3684  38 21 00 20 */	addi r1, r1, 0x20
/* 802D7A28 002D3688  4E 80 00 20 */	blr

.global l2c_link_hci_conn_comp
l2c_link_hci_conn_comp:
/* 802D7A2C 002D368C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D7A30 002D3690  7C 08 02 A6 */	mflr r0
/* 802D7A34 002D3694  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D7A38 002D3698  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 802D7A3C 002D369C  93 C1 00 28 */	stw r30, 0x28(r1)
/* 802D7A40 002D36A0  7C BE 2B 78 */	mr r30, r5
/* 802D7A44 002D36A4  38 A0 00 06 */	li r5, 6
/* 802D7A48 002D36A8  93 A1 00 24 */	stw r29, 0x24(r1)
/* 802D7A4C 002D36AC  7C 9D 23 78 */	mr r29, r4
/* 802D7A50 002D36B0  7F C4 F3 78 */	mr r4, r30
/* 802D7A54 002D36B4  93 81 00 20 */	stw r28, 0x20(r1)
/* 802D7A58 002D36B8  7C 7C 1B 78 */	mr r28, r3
/* 802D7A5C 002D36BC  98 61 00 0E */	stb r3, 0xe(r1)
/* 802D7A60 002D36C0  38 61 00 08 */	addi r3, r1, 8
/* 802D7A64 002D36C4  4B D2 C5 9D */	bl memcpy
/* 802D7A68 002D36C8  38 61 00 08 */	addi r3, r1, 8
/* 802D7A6C 002D36CC  48 00 21 FD */	bl l2cu_find_lcb_by_bd_addr
/* 802D7A70 002D36D0  2C 03 00 00 */	cmpwi r3, 0
/* 802D7A74 002D36D4  7C 7F 1B 78 */	mr r31, r3
/* 802D7A78 002D36D8  40 82 00 40 */	bne lbl_802D7AB8
/* 802D7A7C 002D36DC  7F A3 EB 78 */	mr r3, r29
/* 802D7A80 002D36E0  4B FF 4A 39 */	bl btm_sec_is_bonding
/* 802D7A84 002D36E4  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D7A88 002D36E8  40 82 00 28 */	bne lbl_802D7AB0
/* 802D7A8C 002D36EC  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D7A90 002D36F0  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D7A94 002D36F4  28 00 00 02 */	cmplwi r0, 2
/* 802D7A98 002D36F8  41 80 00 18 */	blt lbl_802D7AB0
/* 802D7A9C 002D36FC  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D7AA0 002D3700  3C 80 80 44 */	lis r4, lbl_80443C50@ha
/* 802D7AA4 002D3704  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D7AA8 002D3708  38 84 3C 50 */	addi r4, r4, lbl_80443C50@l
/* 802D7AAC 002D370C  4B FE 54 65 */	bl LogMsg_0
lbl_802D7AB0:
/* 802D7AB0 002D3710  38 60 00 00 */	li r3, 0
/* 802D7AB4 002D3714  48 00 01 90 */	b lbl_802D7C44
lbl_802D7AB8:
/* 802D7AB8 002D3718  80 A3 00 04 */	lwz r5, 4(r3)
/* 802D7ABC 002D371C  2C 05 00 03 */	cmpwi r5, 3
/* 802D7AC0 002D3720  41 82 00 44 */	beq lbl_802D7B04
/* 802D7AC4 002D3724  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D7AC8 002D3728  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D7ACC 002D372C  28 00 00 01 */	cmplwi r0, 1
/* 802D7AD0 002D3730  41 80 00 18 */	blt lbl_802D7AE8
/* 802D7AD4 002D3734  3C 80 80 44 */	lis r4, lbl_80443C78@ha
/* 802D7AD8 002D3738  7F 86 E3 78 */	mr r6, r28
/* 802D7ADC 002D373C  3C 60 00 08 */	lis r3, 8
/* 802D7AE0 002D3740  38 84 3C 78 */	addi r4, r4, lbl_80443C78@l
/* 802D7AE4 002D3744  4B FE 54 5D */	bl LogMsg_2
lbl_802D7AE8:
/* 802D7AE8 002D3748  2C 1C 00 00 */	cmpwi r28, 0
/* 802D7AEC 002D374C  41 82 00 10 */	beq lbl_802D7AFC
/* 802D7AF0 002D3750  A0 7F 00 28 */	lhz r3, 0x28(r31)
/* 802D7AF4 002D3754  7F 84 E3 78 */	mr r4, r28
/* 802D7AF8 002D3758  48 00 02 21 */	bl l2c_link_hci_disc_comp
lbl_802D7AFC:
/* 802D7AFC 002D375C  38 60 00 00 */	li r3, 0
/* 802D7B00 002D3760  48 00 01 44 */	b lbl_802D7C44
lbl_802D7B04:
/* 802D7B04 002D3764  B3 A3 00 28 */	sth r29, 0x28(r3)
/* 802D7B08 002D3768  88 01 00 0E */	lbz r0, 0xe(r1)
/* 802D7B0C 002D376C  2C 00 00 00 */	cmpwi r0, 0
/* 802D7B10 002D3770  40 82 00 D8 */	bne lbl_802D7BE8
/* 802D7B14 002D3774  38 00 00 04 */	li r0, 4
/* 802D7B18 002D3778  90 03 00 04 */	stw r0, 4(r3)
/* 802D7B1C 002D377C  7F C3 F3 78 */	mr r3, r30
/* 802D7B20 002D3780  4B FE DA FD */	bl btm_find_dev
/* 802D7B24 002D3784  2C 03 00 00 */	cmpwi r3, 0
/* 802D7B28 002D3788  7C 65 1B 78 */	mr r5, r3
/* 802D7B2C 002D378C  41 82 00 20 */	beq lbl_802D7B4C
/* 802D7B30 002D3790  88 FF 00 30 */	lbz r7, 0x30(r31)
/* 802D7B34 002D3794  38 85 00 22 */	addi r4, r5, 0x22
/* 802D7B38 002D3798  7F A6 EB 78 */	mr r6, r29
/* 802D7B3C 002D379C  38 61 00 08 */	addi r3, r1, 8
/* 802D7B40 002D37A0  38 A5 00 35 */	addi r5, r5, 0x35
/* 802D7B44 002D37A4  4B FE B9 89 */	bl btm_acl_created
/* 802D7B48 002D37A8  48 00 00 1C */	b lbl_802D7B64
lbl_802D7B4C:
/* 802D7B4C 002D37AC  88 FF 00 30 */	lbz r7, 0x30(r31)
/* 802D7B50 002D37B0  7F A6 EB 78 */	mr r6, r29
/* 802D7B54 002D37B4  38 61 00 08 */	addi r3, r1, 8
/* 802D7B58 002D37B8  38 80 00 00 */	li r4, 0
/* 802D7B5C 002D37BC  38 A0 00 00 */	li r5, 0
/* 802D7B60 002D37C0  4B FE B9 6D */	bl btm_acl_created
lbl_802D7B64:
/* 802D7B64 002D37C4  38 60 00 00 */	li r3, 0
/* 802D7B68 002D37C8  48 00 1E 01 */	bl l2c_process_held_packets
/* 802D7B6C 002D37CC  38 7F 00 10 */	addi r3, r31, 0x10
/* 802D7B70 002D37D0  4B FE 59 DD */	bl btu_stop_timer
/* 802D7B74 002D37D4  83 DF 00 08 */	lwz r30, 8(r31)
/* 802D7B78 002D37D8  48 00 00 18 */	b lbl_802D7B90
lbl_802D7B7C:
/* 802D7B7C 002D37DC  7F C3 F3 78 */	mr r3, r30
/* 802D7B80 002D37E0  38 A1 00 08 */	addi r5, r1, 8
/* 802D7B84 002D37E4  38 80 00 00 */	li r4, 0
/* 802D7B88 002D37E8  4B FF E8 75 */	bl l2c_csm_execute
/* 802D7B8C 002D37EC  83 DE 00 08 */	lwz r30, 8(r30)
lbl_802D7B90:
/* 802D7B90 002D37F0  2C 1E 00 00 */	cmpwi r30, 0
/* 802D7B94 002D37F4  40 82 FF E8 */	bne lbl_802D7B7C
/* 802D7B98 002D37F8  80 1F 00 54 */	lwz r0, 0x54(r31)
/* 802D7B9C 002D37FC  2C 00 00 00 */	cmpwi r0, 0
/* 802D7BA0 002D3800  41 82 00 28 */	beq lbl_802D7BC8
/* 802D7BA4 002D3804  7F E3 FB 78 */	mr r3, r31
/* 802D7BA8 002D3808  38 80 00 00 */	li r4, 0
/* 802D7BAC 002D380C  38 A0 00 00 */	li r5, 0
/* 802D7BB0 002D3810  48 00 2F 35 */	bl l2cu_send_peer_echo_req
/* 802D7BB4 002D3814  38 7F 00 10 */	addi r3, r31, 0x10
/* 802D7BB8 002D3818  38 80 00 02 */	li r4, 2
/* 802D7BBC 002D381C  38 A0 00 1E */	li r5, 0x1e
/* 802D7BC0 002D3820  4B FE 59 1D */	bl btu_start_timer
/* 802D7BC4 002D3824  48 00 00 7C */	b lbl_802D7C40
lbl_802D7BC8:
/* 802D7BC8 002D3828  80 1F 00 08 */	lwz r0, 8(r31)
/* 802D7BCC 002D382C  2C 00 00 00 */	cmpwi r0, 0
/* 802D7BD0 002D3830  40 82 00 70 */	bne lbl_802D7C40
/* 802D7BD4 002D3834  38 7F 00 10 */	addi r3, r31, 0x10
/* 802D7BD8 002D3838  38 80 00 02 */	li r4, 2
/* 802D7BDC 002D383C  38 A0 00 3C */	li r5, 0x3c
/* 802D7BE0 002D3840  4B FE 58 FD */	bl btu_start_timer
/* 802D7BE4 002D3844  48 00 00 5C */	b lbl_802D7C40
lbl_802D7BE8:
/* 802D7BE8 002D3848  28 00 00 09 */	cmplwi r0, 9
/* 802D7BEC 002D384C  40 82 00 28 */	bne lbl_802D7C14
/* 802D7BF0 002D3850  48 00 3C 81 */	bl l2cu_lcb_disconnecting
/* 802D7BF4 002D3854  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D7BF8 002D3858  41 82 00 1C */	beq lbl_802D7C14
/* 802D7BFC 002D385C  38 00 00 01 */	li r0, 1
/* 802D7C00 002D3860  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 802D7C04 002D3864  90 1F 00 04 */	stw r0, 4(r31)
/* 802D7C08 002D3868  38 03 FF FF */	addi r0, r3, 0x0000FFFF@l
/* 802D7C0C 002D386C  B0 1F 00 28 */	sth r0, 0x28(r31)
/* 802D7C10 002D3870  48 00 00 30 */	b lbl_802D7C40
lbl_802D7C14:
/* 802D7C14 002D3874  80 7F 00 08 */	lwz r3, 8(r31)
/* 802D7C18 002D3878  48 00 00 18 */	b lbl_802D7C30
lbl_802D7C1C:
/* 802D7C1C 002D387C  83 C3 00 08 */	lwz r30, 8(r3)
/* 802D7C20 002D3880  38 A1 00 08 */	addi r5, r1, 8
/* 802D7C24 002D3884  38 80 00 01 */	li r4, 1
/* 802D7C28 002D3888  4B FF E7 D5 */	bl l2c_csm_execute
/* 802D7C2C 002D388C  7F C3 F3 78 */	mr r3, r30
lbl_802D7C30:
/* 802D7C30 002D3890  2C 03 00 00 */	cmpwi r3, 0
/* 802D7C34 002D3894  40 82 FF E8 */	bne lbl_802D7C1C
/* 802D7C38 002D3898  7F E3 FB 78 */	mr r3, r31
/* 802D7C3C 002D389C  48 00 1F 2D */	bl l2cu_release_lcb
lbl_802D7C40:
/* 802D7C40 002D38A0  38 60 00 01 */	li r3, 1
lbl_802D7C44:
/* 802D7C44 002D38A4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D7C48 002D38A8  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 802D7C4C 002D38AC  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 802D7C50 002D38B0  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 802D7C54 002D38B4  83 81 00 20 */	lwz r28, 0x20(r1)
/* 802D7C58 002D38B8  7C 08 03 A6 */	mtlr r0
/* 802D7C5C 002D38BC  38 21 00 30 */	addi r1, r1, 0x30
/* 802D7C60 002D38C0  4E 80 00 20 */	blr

.global l2c_link_sec_comp
l2c_link_sec_comp:
/* 802D7C64 002D38C4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D7C68 002D38C8  7C 08 02 A6 */	mflr r0
/* 802D7C6C 002D38CC  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D7C70 002D38D0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802D7C74 002D38D4  7C 7F 1B 78 */	mr r31, r3
/* 802D7C78 002D38D8  38 61 00 08 */	addi r3, r1, 8
/* 802D7C7C 002D38DC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802D7C80 002D38E0  7C BE 2B 78 */	mr r30, r5
/* 802D7C84 002D38E4  7F E4 FB 78 */	mr r4, r31
/* 802D7C88 002D38E8  98 A1 00 0E */	stb r5, 0xe(r1)
/* 802D7C8C 002D38EC  38 A0 00 06 */	li r5, 6
/* 802D7C90 002D38F0  4B D2 C3 71 */	bl memcpy
/* 802D7C94 002D38F4  7F E3 FB 78 */	mr r3, r31
/* 802D7C98 002D38F8  48 00 1F D1 */	bl l2cu_find_lcb_by_bd_addr
/* 802D7C9C 002D38FC  2C 03 00 00 */	cmpwi r3, 0
/* 802D7CA0 002D3900  40 82 00 2C */	bne lbl_802D7CCC
/* 802D7CA4 002D3904  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D7CA8 002D3908  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D7CAC 002D390C  28 00 00 02 */	cmplwi r0, 2
/* 802D7CB0 002D3910  41 80 00 50 */	blt lbl_802D7D00
/* 802D7CB4 002D3914  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D7CB8 002D3918  3C 80 80 44 */	lis r4, lbl_80443CAC@ha
/* 802D7CBC 002D391C  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D7CC0 002D3920  38 84 3C AC */	addi r4, r4, lbl_80443CAC@l
/* 802D7CC4 002D3924  4B FE 52 4D */	bl LogMsg_0
/* 802D7CC8 002D3928  48 00 00 38 */	b lbl_802D7D00
lbl_802D7CCC:
/* 802D7CCC 002D392C  7F C0 00 34 */	cntlzw r0, r30
/* 802D7CD0 002D3930  80 63 00 08 */	lwz r3, 8(r3)
/* 802D7CD4 002D3934  54 00 DF FE */	rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 802D7CD8 002D3938  7F E0 00 D0 */	neg r31, r0
/* 802D7CDC 002D393C  48 00 00 1C */	b lbl_802D7CF8
lbl_802D7CE0:
/* 802D7CE0 002D3940  38 1F 00 08 */	addi r0, r31, 8
/* 802D7CE4 002D3944  83 C3 00 08 */	lwz r30, 8(r3)
/* 802D7CE8 002D3948  54 04 06 3E */	clrlwi r4, r0, 0x18
/* 802D7CEC 002D394C  38 A1 00 08 */	addi r5, r1, 8
/* 802D7CF0 002D3950  4B FF E7 0D */	bl l2c_csm_execute
/* 802D7CF4 002D3954  7F C3 F3 78 */	mr r3, r30
lbl_802D7CF8:
/* 802D7CF8 002D3958  2C 03 00 00 */	cmpwi r3, 0
/* 802D7CFC 002D395C  40 82 FF E4 */	bne lbl_802D7CE0
lbl_802D7D00:
/* 802D7D00 002D3960  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D7D04 002D3964  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802D7D08 002D3968  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802D7D0C 002D396C  7C 08 03 A6 */	mtlr r0
/* 802D7D10 002D3970  38 21 00 20 */	addi r1, r1, 0x20
/* 802D7D14 002D3974  4E 80 00 20 */	blr

.global l2c_link_hci_disc_comp
l2c_link_hci_disc_comp:
/* 802D7D18 002D3978  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D7D1C 002D397C  7C 08 02 A6 */	mflr r0
/* 802D7D20 002D3980  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D7D24 002D3984  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802D7D28 002D3988  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802D7D2C 002D398C  3B C0 00 01 */	li r30, 1
/* 802D7D30 002D3990  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802D7D34 002D3994  98 81 00 08 */	stb r4, 8(r1)
/* 802D7D38 002D3998  48 00 1F B9 */	bl l2cu_find_lcb_by_handle
/* 802D7D3C 002D399C  2C 03 00 00 */	cmpwi r3, 0
/* 802D7D40 002D39A0  7C 7F 1B 78 */	mr r31, r3
/* 802D7D44 002D39A4  40 82 00 0C */	bne lbl_802D7D50
/* 802D7D48 002D39A8  3B C0 00 00 */	li r30, 0
/* 802D7D4C 002D39AC  48 00 00 54 */	b lbl_802D7DA0
lbl_802D7D50:
/* 802D7D50 002D39B0  3C 80 80 57 */	lis r4, lbl_80568B78@ha
/* 802D7D54 002D39B4  38 84 8B 78 */	addi r4, r4, lbl_80568B78@l
/* 802D7D58 002D39B8  88 04 27 BF */	lbz r0, 0x27bf(r4)
/* 802D7D5C 002D39BC  28 00 00 0E */	cmplwi r0, 0xe
/* 802D7D60 002D39C0  41 82 00 0C */	beq lbl_802D7D6C
/* 802D7D64 002D39C4  88 01 00 08 */	lbz r0, 8(r1)
/* 802D7D68 002D39C8  98 04 27 BF */	stb r0, 0x27bf(r4)
lbl_802D7D6C:
/* 802D7D6C 002D39CC  80 63 00 08 */	lwz r3, 8(r3)
/* 802D7D70 002D39D0  48 00 00 18 */	b lbl_802D7D88
lbl_802D7D74:
/* 802D7D74 002D39D4  83 A3 00 08 */	lwz r29, 8(r3)
/* 802D7D78 002D39D8  38 A1 00 08 */	addi r5, r1, 8
/* 802D7D7C 002D39DC  38 80 00 03 */	li r4, 3
/* 802D7D80 002D39E0  4B FF E6 7D */	bl l2c_csm_execute
/* 802D7D84 002D39E4  7F A3 EB 78 */	mr r3, r29
lbl_802D7D88:
/* 802D7D88 002D39E8  2C 03 00 00 */	cmpwi r3, 0
/* 802D7D8C 002D39EC  40 82 FF E8 */	bne lbl_802D7D74
/* 802D7D90 002D39F0  38 7F 00 2A */	addi r3, r31, 0x2a
/* 802D7D94 002D39F4  4B FF 26 69 */	bl btm_sco_acl_removed
/* 802D7D98 002D39F8  7F E3 FB 78 */	mr r3, r31
/* 802D7D9C 002D39FC  48 00 1D CD */	bl l2cu_release_lcb
lbl_802D7DA0:
/* 802D7DA0 002D3A00  38 60 00 01 */	li r3, 1
/* 802D7DA4 002D3A04  48 00 3A 3D */	bl l2cu_find_lcb_by_state
/* 802D7DA8 002D3A08  2C 03 00 00 */	cmpwi r3, 0
/* 802D7DAC 002D3A0C  41 82 00 08 */	beq lbl_802D7DB4
/* 802D7DB0 002D3A10  48 00 38 49 */	bl l2cu_create_conn
lbl_802D7DB4:
/* 802D7DB4 002D3A14  7F C3 F3 78 */	mr r3, r30
/* 802D7DB8 002D3A18  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802D7DBC 002D3A1C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802D7DC0 002D3A20  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802D7DC4 002D3A24  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D7DC8 002D3A28  7C 08 03 A6 */	mtlr r0
/* 802D7DCC 002D3A2C  38 21 00 20 */	addi r1, r1, 0x20
/* 802D7DD0 002D3A30  4E 80 00 20 */	blr

.global l2c_link_hci_qos_violation
l2c_link_hci_qos_violation:
/* 802D7DD4 002D3A34  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D7DD8 002D3A38  7C 08 02 A6 */	mflr r0
/* 802D7DDC 002D3A3C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D7DE0 002D3A40  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802D7DE4 002D3A44  48 00 1F 0D */	bl l2cu_find_lcb_by_handle
/* 802D7DE8 002D3A48  2C 03 00 00 */	cmpwi r3, 0
/* 802D7DEC 002D3A4C  40 82 00 0C */	bne lbl_802D7DF8
/* 802D7DF0 002D3A50  38 60 00 00 */	li r3, 0
/* 802D7DF4 002D3A54  48 00 00 3C */	b lbl_802D7E30
lbl_802D7DF8:
/* 802D7DF8 002D3A58  83 E3 00 08 */	lwz r31, 8(r3)
/* 802D7DFC 002D3A5C  48 00 00 28 */	b lbl_802D7E24
lbl_802D7E00:
/* 802D7E00 002D3A60  80 7F 00 30 */	lwz r3, 0x30(r31)
/* 802D7E04 002D3A64  80 03 00 20 */	lwz r0, 0x20(r3)
/* 802D7E08 002D3A68  2C 00 00 00 */	cmpwi r0, 0
/* 802D7E0C 002D3A6C  41 82 00 14 */	beq lbl_802D7E20
/* 802D7E10 002D3A70  7F E3 FB 78 */	mr r3, r31
/* 802D7E14 002D3A74  38 80 00 06 */	li r4, 6
/* 802D7E18 002D3A78  38 A0 00 00 */	li r5, 0
/* 802D7E1C 002D3A7C  4B FF E5 E1 */	bl l2c_csm_execute
lbl_802D7E20:
/* 802D7E20 002D3A80  83 FF 00 08 */	lwz r31, 8(r31)
lbl_802D7E24:
/* 802D7E24 002D3A84  2C 1F 00 00 */	cmpwi r31, 0
/* 802D7E28 002D3A88  40 82 FF D8 */	bne lbl_802D7E00
/* 802D7E2C 002D3A8C  38 60 00 01 */	li r3, 1
lbl_802D7E30:
/* 802D7E30 002D3A90  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D7E34 002D3A94  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802D7E38 002D3A98  7C 08 03 A6 */	mtlr r0
/* 802D7E3C 002D3A9C  38 21 00 10 */	addi r1, r1, 0x10
/* 802D7E40 002D3AA0  4E 80 00 20 */	blr

.global l2c_link_timeout
l2c_link_timeout:
/* 802D7E44 002D3AA4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D7E48 002D3AA8  7C 08 02 A6 */	mflr r0
/* 802D7E4C 002D3AAC  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D7E50 002D3AB0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802D7E54 002D3AB4  93 C1 00 08 */	stw r30, 8(r1)
/* 802D7E58 002D3AB8  7C 7E 1B 78 */	mr r30, r3
/* 802D7E5C 002D3ABC  80 03 00 04 */	lwz r0, 4(r3)
/* 802D7E60 002D3AC0  2C 00 00 02 */	cmpwi r0, 2
/* 802D7E64 002D3AC4  41 82 00 1C */	beq lbl_802D7E80
/* 802D7E68 002D3AC8  2C 00 00 03 */	cmpwi r0, 3
/* 802D7E6C 002D3ACC  41 82 00 14 */	beq lbl_802D7E80
/* 802D7E70 002D3AD0  2C 00 00 01 */	cmpwi r0, 1
/* 802D7E74 002D3AD4  41 82 00 0C */	beq lbl_802D7E80
/* 802D7E78 002D3AD8  2C 00 00 05 */	cmpwi r0, 5
/* 802D7E7C 002D3ADC  40 82 00 30 */	bne lbl_802D7EAC
lbl_802D7E80:
/* 802D7E80 002D3AE0  80 63 00 08 */	lwz r3, 8(r3)
/* 802D7E84 002D3AE4  48 00 00 18 */	b lbl_802D7E9C
lbl_802D7E88:
/* 802D7E88 002D3AE8  83 E3 00 08 */	lwz r31, 8(r3)
/* 802D7E8C 002D3AEC  38 80 00 03 */	li r4, 3
/* 802D7E90 002D3AF0  38 A0 00 00 */	li r5, 0
/* 802D7E94 002D3AF4  4B FF E5 69 */	bl l2c_csm_execute
/* 802D7E98 002D3AF8  7F E3 FB 78 */	mr r3, r31
lbl_802D7E9C:
/* 802D7E9C 002D3AFC  2C 03 00 00 */	cmpwi r3, 0
/* 802D7EA0 002D3B00  40 82 FF E8 */	bne lbl_802D7E88
/* 802D7EA4 002D3B04  7F C3 F3 78 */	mr r3, r30
/* 802D7EA8 002D3B08  48 00 1C C1 */	bl l2cu_release_lcb
lbl_802D7EAC:
/* 802D7EAC 002D3B0C  80 1E 00 04 */	lwz r0, 4(r30)
/* 802D7EB0 002D3B10  2C 00 00 04 */	cmpwi r0, 4
/* 802D7EB4 002D3B14  40 82 00 EC */	bne lbl_802D7FA0
/* 802D7EB8 002D3B18  81 9E 00 54 */	lwz r12, 0x54(r30)
/* 802D7EBC 002D3B1C  2C 0C 00 00 */	cmpwi r12, 0
/* 802D7EC0 002D3B20  41 82 00 60 */	beq lbl_802D7F20
/* 802D7EC4 002D3B24  38 00 00 00 */	li r0, 0
/* 802D7EC8 002D3B28  38 60 00 02 */	li r3, 2
/* 802D7ECC 002D3B2C  90 1E 00 54 */	stw r0, 0x54(r30)
/* 802D7ED0 002D3B30  7D 89 03 A6 */	mtctr r12
/* 802D7ED4 002D3B34  4E 80 04 21 */	bctrl
/* 802D7ED8 002D3B38  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D7EDC 002D3B3C  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D7EE0 002D3B40  28 00 00 02 */	cmplwi r0, 2
/* 802D7EE4 002D3B44  41 80 00 18 */	blt lbl_802D7EFC
/* 802D7EE8 002D3B48  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D7EEC 002D3B4C  3C 80 80 44 */	lis r4, lbl_80443CD4@ha
/* 802D7EF0 002D3B50  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D7EF4 002D3B54  38 84 3C D4 */	addi r4, r4, lbl_80443CD4@l
/* 802D7EF8 002D3B58  4B FE 50 19 */	bl LogMsg_0
lbl_802D7EFC:
/* 802D7EFC 002D3B5C  80 7E 00 08 */	lwz r3, 8(r30)
/* 802D7F00 002D3B60  48 00 00 18 */	b lbl_802D7F18
lbl_802D7F04:
/* 802D7F04 002D3B64  83 E3 00 08 */	lwz r31, 8(r3)
/* 802D7F08 002D3B68  38 80 00 03 */	li r4, 3
/* 802D7F0C 002D3B6C  38 A0 00 00 */	li r5, 0
/* 802D7F10 002D3B70  4B FF E4 ED */	bl l2c_csm_execute
/* 802D7F14 002D3B74  7F E3 FB 78 */	mr r3, r31
lbl_802D7F18:
/* 802D7F18 002D3B78  2C 03 00 00 */	cmpwi r3, 0
/* 802D7F1C 002D3B7C  40 82 FF E8 */	bne lbl_802D7F04
lbl_802D7F20:
/* 802D7F20 002D3B80  80 1E 00 08 */	lwz r0, 8(r30)
/* 802D7F24 002D3B84  2C 00 00 00 */	cmpwi r0, 0
/* 802D7F28 002D3B88  40 82 00 68 */	bne lbl_802D7F90
/* 802D7F2C 002D3B8C  A0 7E 00 28 */	lhz r3, 0x28(r30)
/* 802D7F30 002D3B90  38 80 00 13 */	li r4, 0x13
/* 802D7F34 002D3B94  4B FF 4A 45 */	bl btm_sec_disconnect
/* 802D7F38 002D3B98  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 802D7F3C 002D3B9C  28 00 00 01 */	cmplwi r0, 1
/* 802D7F40 002D3BA0  40 82 00 14 */	bne lbl_802D7F54
/* 802D7F44 002D3BA4  38 00 00 05 */	li r0, 5
/* 802D7F48 002D3BA8  38 60 00 1E */	li r3, 0x1e
/* 802D7F4C 002D3BAC  90 1E 00 04 */	stw r0, 4(r30)
/* 802D7F50 002D3BB0  48 00 00 24 */	b lbl_802D7F74
lbl_802D7F54:
/* 802D7F54 002D3BB4  2C 00 00 00 */	cmpwi r0, 0
/* 802D7F58 002D3BB8  40 82 00 18 */	bne lbl_802D7F70
/* 802D7F5C 002D3BBC  38 00 00 05 */	li r0, 5
/* 802D7F60 002D3BC0  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 802D7F64 002D3BC4  90 1E 00 04 */	stw r0, 4(r30)
/* 802D7F68 002D3BC8  38 63 FF FF */	addi r3, r3, 0x0000FFFF@l
/* 802D7F6C 002D3BCC  48 00 00 08 */	b lbl_802D7F74
lbl_802D7F70:
/* 802D7F70 002D3BD0  38 60 00 01 */	li r3, 1
lbl_802D7F74:
/* 802D7F74 002D3BD4  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 802D7F78 002D3BD8  28 05 FF FF */	cmplwi r5, 0xffff
/* 802D7F7C 002D3BDC  41 82 00 24 */	beq lbl_802D7FA0
/* 802D7F80 002D3BE0  38 7E 00 10 */	addi r3, r30, 0x10
/* 802D7F84 002D3BE4  38 80 00 02 */	li r4, 2
/* 802D7F88 002D3BE8  4B FE 55 55 */	bl btu_start_timer
/* 802D7F8C 002D3BEC  48 00 00 14 */	b lbl_802D7FA0
lbl_802D7F90:
/* 802D7F90 002D3BF0  7F C3 F3 78 */	mr r3, r30
/* 802D7F94 002D3BF4  38 80 00 00 */	li r4, 0
/* 802D7F98 002D3BF8  38 A0 00 00 */	li r5, 0
/* 802D7F9C 002D3BFC  48 00 01 25 */	bl l2c_link_check_send_pkts
lbl_802D7FA0:
/* 802D7FA0 002D3C00  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D7FA4 002D3C04  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802D7FA8 002D3C08  83 C1 00 08 */	lwz r30, 8(r1)
/* 802D7FAC 002D3C0C  7C 08 03 A6 */	mtlr r0
/* 802D7FB0 002D3C10  38 21 00 10 */	addi r1, r1, 0x10
/* 802D7FB4 002D3C14  4E 80 00 20 */	blr

.global l2c_link_send_to_lower
l2c_link_send_to_lower:
/* 802D7FB8 002D3C18  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D7FBC 002D3C1C  7C 08 02 A6 */	mflr r0
/* 802D7FC0 002D3C20  3C C0 80 57 */	lis r6, lbl_80568650@ha
/* 802D7FC4 002D3C24  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D7FC8 002D3C28  38 C6 86 50 */	addi r6, r6, lbl_80568650@l
/* 802D7FCC 002D3C2C  7C 80 23 78 */	mr r0, r4
/* 802D7FD0 002D3C30  A0 E4 00 02 */	lhz r7, 2(r4)
/* 802D7FD4 002D3C34  A0 A6 00 7E */	lhz r5, 0x7e(r6)
/* 802D7FD8 002D3C38  7C 07 28 40 */	cmplw r7, r5
/* 802D7FDC 002D3C3C  41 81 00 40 */	bgt lbl_802D801C
/* 802D7FE0 002D3C40  A0 83 00 36 */	lhz r4, 0x36(r3)
/* 802D7FE4 002D3C44  3C C0 80 57 */	lis r6, lbl_8056BC40@ha
/* 802D7FE8 002D3C48  A0 A3 00 38 */	lhz r5, 0x38(r3)
/* 802D7FEC 002D3C4C  38 C6 BC 40 */	addi r6, r6, lbl_8056BC40@l
/* 802D7FF0 002D3C50  38 E4 FF FF */	addi r7, r4, -1
/* 802D7FF4 002D3C54  38 80 21 00 */	li r4, 0x2100
/* 802D7FF8 002D3C58  38 A5 00 01 */	addi r5, r5, 1
/* 802D7FFC 002D3C5C  B0 E3 00 36 */	sth r7, 0x36(r3)
/* 802D8000 002D3C60  B0 A3 00 38 */	sth r5, 0x38(r3)
/* 802D8004 002D3C64  7C 03 03 78 */	mr r3, r0
/* 802D8008 002D3C68  A0 A6 00 04 */	lhz r5, 4(r6)
/* 802D800C 002D3C6C  38 05 FF FF */	addi r0, r5, -1
/* 802D8010 002D3C70  B0 06 00 04 */	sth r0, 4(r6)
/* 802D8014 002D3C74  4B FE 4D 5D */	bl bte_hcisu_send
/* 802D8018 002D3C78  48 00 00 94 */	b lbl_802D80AC
lbl_802D801C:
/* 802D801C 002D3C7C  A1 06 00 7C */	lhz r8, 0x7c(r6)
/* 802D8020 002D3C80  3C A0 80 57 */	lis r5, lbl_8056BC40@ha
/* 802D8024 002D3C84  38 A5 BC 40 */	addi r5, r5, lbl_8056BC40@l
/* 802D8028 002D3C88  7C C7 42 14 */	add r6, r7, r8
/* 802D802C 002D3C8C  A0 E5 00 04 */	lhz r7, 4(r5)
/* 802D8030 002D3C90  38 A6 FF FB */	addi r5, r6, -5
/* 802D8034 002D3C94  7C A5 43 D6 */	divw r5, r5, r8
/* 802D8038 002D3C98  54 A8 04 3E */	clrlwi r8, r5, 0x10
/* 802D803C 002D3C9C  7C 08 38 40 */	cmplw r8, r7
/* 802D8040 002D3CA0  40 81 00 14 */	ble lbl_802D8054
/* 802D8044 002D3CA4  B0 E4 00 06 */	sth r7, 6(r4)
/* 802D8048 002D3CA8  38 A0 00 01 */	li r5, 1
/* 802D804C 002D3CAC  7C E8 3B 78 */	mr r8, r7
/* 802D8050 002D3CB0  98 A3 00 40 */	stb r5, 0x40(r3)
lbl_802D8054:
/* 802D8054 002D3CB4  A0 C3 00 36 */	lhz r6, 0x36(r3)
/* 802D8058 002D3CB8  55 05 04 3E */	clrlwi r5, r8, 0x10
/* 802D805C 002D3CBC  7C 05 30 40 */	cmplw r5, r6
/* 802D8060 002D3CC0  40 81 00 14 */	ble lbl_802D8074
/* 802D8064 002D3CC4  B0 C4 00 06 */	sth r6, 6(r4)
/* 802D8068 002D3CC8  38 80 00 01 */	li r4, 1
/* 802D806C 002D3CCC  7C C8 33 78 */	mr r8, r6
/* 802D8070 002D3CD0  98 83 00 40 */	stb r4, 0x40(r3)
lbl_802D8074:
/* 802D8074 002D3CD4  3C C0 80 57 */	lis r6, lbl_8056BC40@ha
/* 802D8078 002D3CD8  38 80 21 00 */	li r4, 0x2100
/* 802D807C 002D3CDC  38 C6 BC 40 */	addi r6, r6, lbl_8056BC40@l
/* 802D8080 002D3CE0  A0 A6 00 04 */	lhz r5, 4(r6)
/* 802D8084 002D3CE4  7C A8 28 50 */	subf r5, r8, r5
/* 802D8088 002D3CE8  B0 A6 00 04 */	sth r5, 4(r6)
/* 802D808C 002D3CEC  A0 C3 00 36 */	lhz r6, 0x36(r3)
/* 802D8090 002D3CF0  A0 A3 00 38 */	lhz r5, 0x38(r3)
/* 802D8094 002D3CF4  7C C8 30 50 */	subf r6, r8, r6
/* 802D8098 002D3CF8  7C A5 42 14 */	add r5, r5, r8
/* 802D809C 002D3CFC  B0 C3 00 36 */	sth r6, 0x36(r3)
/* 802D80A0 002D3D00  B0 A3 00 38 */	sth r5, 0x38(r3)
/* 802D80A4 002D3D04  7C 03 03 78 */	mr r3, r0
/* 802D80A8 002D3D08  4B FE 4C C9 */	bl bte_hcisu_send
lbl_802D80AC:
/* 802D80AC 002D3D0C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D80B0 002D3D10  38 60 00 01 */	li r3, 1
/* 802D80B4 002D3D14  7C 08 03 A6 */	mtlr r0
/* 802D80B8 002D3D18  38 21 00 10 */	addi r1, r1, 0x10
/* 802D80BC 002D3D1C  4E 80 00 20 */	blr

.global l2c_link_check_send_pkts
l2c_link_check_send_pkts:
/* 802D80C0 002D3D20  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D80C4 002D3D24  7C 08 02 A6 */	mflr r0
/* 802D80C8 002D3D28  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D80CC 002D3D2C  39 61 00 30 */	addi r11, r1, 0x30
/* 802D80D0 002D3D30  4B EE F0 55 */	bl _savegpr_26
/* 802D80D4 002D3D34  2C 05 00 00 */	cmpwi r5, 0
/* 802D80D8 002D3D38  3F E0 80 44 */	lis r31, lbl_80443C08@ha
/* 802D80DC 002D3D3C  7C 7D 1B 78 */	mr r29, r3
/* 802D80E0 002D3D40  7C BE 2B 78 */	mr r30, r5
/* 802D80E4 002D3D44  3B FF 3C 08 */	addi r31, r31, lbl_80443C08@l
/* 802D80E8 002D3D48  41 82 00 F4 */	beq lbl_802D81DC
/* 802D80EC 002D3D4C  A0 83 00 4C */	lhz r4, 0x4c(r3)
/* 802D80F0 002D3D50  A0 03 00 3A */	lhz r0, 0x3a(r3)
/* 802D80F4 002D3D54  7C 04 00 40 */	cmplw r4, r0
/* 802D80F8 002D3D58  41 80 00 94 */	blt lbl_802D818C
/* 802D80FC 002D3D5C  88 03 00 41 */	lbz r0, 0x41(r3)
/* 802D8100 002D3D60  2C 00 00 00 */	cmpwi r0, 0
/* 802D8104 002D3D64  40 82 00 88 */	bne lbl_802D818C
/* 802D8108 002D3D68  83 43 00 08 */	lwz r26, 8(r3)
/* 802D810C 002D3D6C  3F 80 00 08 */	lis r28, 8
/* 802D8110 002D3D70  3F 60 80 57 */	lis r27, 0x8057
/* 802D8114 002D3D74  48 00 00 68 */	b lbl_802D817C
lbl_802D8118:
/* 802D8118 002D3D78  88 1B BC 40 */	lbz r0, -0x43c0(r27)
/* 802D811C 002D3D7C  28 00 00 02 */	cmplwi r0, 2
/* 802D8120 002D3D80  41 80 00 14 */	blt lbl_802D8134
/* 802D8124 002D3D84  A0 BA 00 14 */	lhz r5, 0x14(r26)
/* 802D8128 002D3D88  38 7C 00 01 */	addi r3, r28, 1
/* 802D812C 002D3D8C  38 9F 00 E4 */	addi r4, r31, 0xe4
/* 802D8130 002D3D90  4B FE 4D F9 */	bl LogMsg_1
lbl_802D8134:
/* 802D8134 002D3D94  80 7A 00 30 */	lwz r3, 0x30(r26)
/* 802D8138 002D3D98  80 03 00 28 */	lwz r0, 0x28(r3)
/* 802D813C 002D3D9C  2C 00 00 00 */	cmpwi r0, 0
/* 802D8140 002D3DA0  41 82 00 38 */	beq lbl_802D8178
/* 802D8144 002D3DA4  88 1B BC 40 */	lbz r0, -0x43c0(r27)
/* 802D8148 002D3DA8  28 00 00 03 */	cmplwi r0, 3
/* 802D814C 002D3DAC  41 80 00 14 */	blt lbl_802D8160
/* 802D8150 002D3DB0  A0 BA 00 14 */	lhz r5, 0x14(r26)
/* 802D8154 002D3DB4  38 7C 00 02 */	addi r3, r28, 2
/* 802D8158 002D3DB8  38 9F 01 10 */	addi r4, r31, 0x110
/* 802D815C 002D3DBC  4B FE 4D CD */	bl LogMsg_1
lbl_802D8160:
/* 802D8160 002D3DC0  80 BA 00 30 */	lwz r5, 0x30(r26)
/* 802D8164 002D3DC4  38 80 00 01 */	li r4, 1
/* 802D8168 002D3DC8  A0 7A 00 14 */	lhz r3, 0x14(r26)
/* 802D816C 002D3DCC  81 85 00 28 */	lwz r12, 0x28(r5)
/* 802D8170 002D3DD0  7D 89 03 A6 */	mtctr r12
/* 802D8174 002D3DD4  4E 80 04 21 */	bctrl
lbl_802D8178:
/* 802D8178 002D3DD8  83 5A 00 08 */	lwz r26, 8(r26)
lbl_802D817C:
/* 802D817C 002D3DDC  2C 1A 00 00 */	cmpwi r26, 0
/* 802D8180 002D3DE0  40 82 FF 98 */	bne lbl_802D8118
/* 802D8184 002D3DE4  38 00 00 01 */	li r0, 1
/* 802D8188 002D3DE8  98 1D 00 41 */	stb r0, 0x41(r29)
lbl_802D818C:
/* 802D818C 002D3DEC  A0 7D 00 4C */	lhz r3, 0x4c(r29)
/* 802D8190 002D3DF0  A0 1D 00 3E */	lhz r0, 0x3e(r29)
/* 802D8194 002D3DF4  7C 03 00 40 */	cmplw r3, r0
/* 802D8198 002D3DF8  41 81 00 1C */	bgt lbl_802D81B4
/* 802D819C 002D3DFC  38 00 00 00 */	li r0, 0
/* 802D81A0 002D3E00  7F C4 F3 78 */	mr r4, r30
/* 802D81A4 002D3E04  B0 1E 00 06 */	sth r0, 6(r30)
/* 802D81A8 002D3E08  38 7D 00 44 */	addi r3, r29, 0x44
/* 802D81AC 002D3E0C  4B FE 1F A9 */	bl GKI_enqueue
/* 802D81B0 002D3E10  48 00 00 2C */	b lbl_802D81DC
lbl_802D81B4:
/* 802D81B4 002D3E14  7F C3 F3 78 */	mr r3, r30
/* 802D81B8 002D3E18  4B FE 1B 7D */	bl GKI_freebuf
/* 802D81BC 002D3E1C  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D81C0 002D3E20  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D81C4 002D3E24  28 00 00 02 */	cmplwi r0, 2
/* 802D81C8 002D3E28  41 80 00 14 */	blt lbl_802D81DC
/* 802D81CC 002D3E2C  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D81D0 002D3E30  38 9F 01 50 */	addi r4, r31, 0x150
/* 802D81D4 002D3E34  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D81D8 002D3E38  4B FE 4D 39 */	bl LogMsg_0
lbl_802D81DC:
/* 802D81DC 002D3E3C  88 1D 00 40 */	lbz r0, 0x40(r29)
/* 802D81E0 002D3E40  2C 00 00 00 */	cmpwi r0, 0
/* 802D81E4 002D3E44  40 82 01 90 */	bne lbl_802D8374
/* 802D81E8 002D3E48  38 7D 00 2A */	addi r3, r29, 0x2a
/* 802D81EC 002D3E4C  38 81 00 08 */	addi r4, r1, 8
/* 802D81F0 002D3E50  4B FF 0E 89 */	bl BTM_ReadPowerMode
/* 802D81F4 002D3E54  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D81F8 002D3E58  40 82 00 48 */	bne lbl_802D8240
/* 802D81FC 002D3E5C  88 01 00 08 */	lbz r0, 8(r1)
/* 802D8200 002D3E60  28 00 00 03 */	cmplwi r0, 3
/* 802D8204 002D3E64  40 82 00 3C */	bne lbl_802D8240
/* 802D8208 002D3E68  A0 1D 00 4C */	lhz r0, 0x4c(r29)
/* 802D820C 002D3E6C  2C 00 00 00 */	cmpwi r0, 0
/* 802D8210 002D3E70  41 82 00 30 */	beq lbl_802D8240
/* 802D8214 002D3E74  38 00 00 00 */	li r0, 0
/* 802D8218 002D3E78  38 9D 00 2A */	addi r4, r29, 0x2a
/* 802D821C 002D3E7C  98 01 00 14 */	stb r0, 0x14(r1)
/* 802D8220 002D3E80  38 A1 00 0C */	addi r5, r1, 0xc
/* 802D8224 002D3E84  38 60 00 80 */	li r3, 0x80
/* 802D8228 002D3E88  4B FF 0C 81 */	bl BTM_SetPowerMode
/* 802D822C 002D3E8C  38 7D 00 10 */	addi r3, r29, 0x10
/* 802D8230 002D3E90  38 80 00 02 */	li r4, 2
/* 802D8234 002D3E94  38 A0 00 01 */	li r5, 1
/* 802D8238 002D3E98  4B FE 52 A5 */	bl btu_start_timer
/* 802D823C 002D3E9C  48 00 01 38 */	b lbl_802D8374
lbl_802D8240:
/* 802D8240 002D3EA0  3F 80 80 57 */	lis r28, lbl_8056BC40@ha
/* 802D8244 002D3EA4  3B 9C BC 40 */	addi r28, r28, lbl_8056BC40@l
/* 802D8248 002D3EA8  48 00 00 50 */	b lbl_802D8298
lbl_802D824C:
/* 802D824C 002D3EAC  80 7D 00 44 */	lwz r3, 0x44(r29)
/* 802D8250 002D3EB0  2C 03 00 00 */	cmpwi r3, 0
/* 802D8254 002D3EB4  41 82 00 5C */	beq lbl_802D82B0
/* 802D8258 002D3EB8  A0 03 00 06 */	lhz r0, 6(r3)
/* 802D825C 002D3EBC  2C 00 00 00 */	cmpwi r0, 0
/* 802D8260 002D3EC0  40 82 00 50 */	bne lbl_802D82B0
/* 802D8264 002D3EC4  88 1D 00 40 */	lbz r0, 0x40(r29)
/* 802D8268 002D3EC8  2C 00 00 00 */	cmpwi r0, 0
/* 802D826C 002D3ECC  40 82 01 08 */	bne lbl_802D8374
/* 802D8270 002D3ED0  38 7D 00 44 */	addi r3, r29, 0x44
/* 802D8274 002D3ED4  4B FE 21 5D */	bl GKI_dequeue
/* 802D8278 002D3ED8  2C 03 00 00 */	cmpwi r3, 0
/* 802D827C 002D3EDC  7C 7E 1B 78 */	mr r30, r3
/* 802D8280 002D3EE0  41 82 00 30 */	beq lbl_802D82B0
/* 802D8284 002D3EE4  7F A3 EB 78 */	mr r3, r29
/* 802D8288 002D3EE8  7F C4 F3 78 */	mr r4, r30
/* 802D828C 002D3EEC  4B FF FD 2D */	bl l2c_link_send_to_lower
/* 802D8290 002D3EF0  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802D8294 002D3EF4  41 82 00 1C */	beq lbl_802D82B0
lbl_802D8298:
/* 802D8298 002D3EF8  A0 1C 00 04 */	lhz r0, 4(r28)
/* 802D829C 002D3EFC  2C 00 00 00 */	cmpwi r0, 0
/* 802D82A0 002D3F00  41 82 00 10 */	beq lbl_802D82B0
/* 802D82A4 002D3F04  A0 1D 00 36 */	lhz r0, 0x36(r29)
/* 802D82A8 002D3F08  2C 00 00 00 */	cmpwi r0, 0
/* 802D82AC 002D3F0C  40 82 FF A0 */	bne lbl_802D824C
lbl_802D82B0:
/* 802D82B0 002D3F10  88 1D 00 40 */	lbz r0, 0x40(r29)
/* 802D82B4 002D3F14  2C 00 00 00 */	cmpwi r0, 0
/* 802D82B8 002D3F18  40 82 00 BC */	bne lbl_802D8374
/* 802D82BC 002D3F1C  A0 1D 00 4C */	lhz r0, 0x4c(r29)
/* 802D82C0 002D3F20  2C 00 00 00 */	cmpwi r0, 0
/* 802D82C4 002D3F24  41 82 00 20 */	beq lbl_802D82E4
/* 802D82C8 002D3F28  A0 1D 00 36 */	lhz r0, 0x36(r29)
/* 802D82CC 002D3F2C  2C 00 00 00 */	cmpwi r0, 0
/* 802D82D0 002D3F30  41 82 00 14 */	beq lbl_802D82E4
/* 802D82D4 002D3F34  38 7D 00 10 */	addi r3, r29, 0x10
/* 802D82D8 002D3F38  38 80 00 02 */	li r4, 2
/* 802D82DC 002D3F3C  38 A0 00 02 */	li r5, 2
/* 802D82E0 002D3F40  4B FE 51 FD */	bl btu_start_timer
lbl_802D82E4:
/* 802D82E4 002D3F44  88 1D 00 41 */	lbz r0, 0x41(r29)
/* 802D82E8 002D3F48  2C 00 00 00 */	cmpwi r0, 0
/* 802D82EC 002D3F4C  41 82 00 88 */	beq lbl_802D8374
/* 802D82F0 002D3F50  A0 7D 00 4C */	lhz r3, 0x4c(r29)
/* 802D82F4 002D3F54  A0 1D 00 3C */	lhz r0, 0x3c(r29)
/* 802D82F8 002D3F58  7C 03 00 40 */	cmplw r3, r0
/* 802D82FC 002D3F5C  41 81 00 78 */	bgt lbl_802D8374
/* 802D8300 002D3F60  38 00 00 00 */	li r0, 0
/* 802D8304 002D3F64  83 7D 00 08 */	lwz r27, 8(r29)
/* 802D8308 002D3F68  98 1D 00 41 */	stb r0, 0x41(r29)
/* 802D830C 002D3F6C  3F C0 00 08 */	lis r30, 8
/* 802D8310 002D3F70  3F 80 80 57 */	lis r28, 0x8057
/* 802D8314 002D3F74  48 00 00 58 */	b lbl_802D836C
lbl_802D8318:
/* 802D8318 002D3F78  80 7B 00 30 */	lwz r3, 0x30(r27)
/* 802D831C 002D3F7C  80 03 00 28 */	lwz r0, 0x28(r3)
/* 802D8320 002D3F80  2C 00 00 00 */	cmpwi r0, 0
/* 802D8324 002D3F84  41 82 00 44 */	beq lbl_802D8368
/* 802D8328 002D3F88  88 1C BC 40 */	lbz r0, -0x43c0(r28)
/* 802D832C 002D3F8C  28 00 00 03 */	cmplwi r0, 3
/* 802D8330 002D3F90  41 80 00 14 */	blt lbl_802D8344
/* 802D8334 002D3F94  A0 BB 00 14 */	lhz r5, 0x14(r27)
/* 802D8338 002D3F98  38 7E 00 02 */	addi r3, r30, 2
/* 802D833C 002D3F9C  38 9F 01 70 */	addi r4, r31, 0x170
/* 802D8340 002D3FA0  4B FE 4B E9 */	bl LogMsg_1
lbl_802D8344:
/* 802D8344 002D3FA4  80 BB 00 30 */	lwz r5, 0x30(r27)
/* 802D8348 002D3FA8  38 80 00 00 */	li r4, 0
/* 802D834C 002D3FAC  A0 7B 00 14 */	lhz r3, 0x14(r27)
/* 802D8350 002D3FB0  81 85 00 28 */	lwz r12, 0x28(r5)
/* 802D8354 002D3FB4  7D 89 03 A6 */	mtctr r12
/* 802D8358 002D3FB8  4E 80 04 21 */	bctrl
/* 802D835C 002D3FBC  88 1D 00 41 */	lbz r0, 0x41(r29)
/* 802D8360 002D3FC0  2C 00 00 00 */	cmpwi r0, 0
/* 802D8364 002D3FC4  40 82 00 10 */	bne lbl_802D8374
lbl_802D8368:
/* 802D8368 002D3FC8  83 7B 00 08 */	lwz r27, 8(r27)
lbl_802D836C:
/* 802D836C 002D3FCC  2C 1B 00 00 */	cmpwi r27, 0
/* 802D8370 002D3FD0  40 82 FF A8 */	bne lbl_802D8318
lbl_802D8374:
/* 802D8374 002D3FD4  39 61 00 30 */	addi r11, r1, 0x30
/* 802D8378 002D3FD8  4B EE ED F9 */	bl _restgpr_26
/* 802D837C 002D3FDC  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D8380 002D3FE0  7C 08 03 A6 */	mtlr r0
/* 802D8384 002D3FE4  38 21 00 30 */	addi r1, r1, 0x30
/* 802D8388 002D3FE8  4E 80 00 20 */	blr

.global l2c_link_adjust_allocation
l2c_link_adjust_allocation:
/* 802D838C 002D3FEC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D8390 002D3FF0  7C 08 02 A6 */	mflr r0
/* 802D8394 002D3FF4  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D8398 002D3FF8  39 61 00 30 */	addi r11, r1, 0x30
/* 802D839C 002D3FFC  4B EE ED 7D */	bl _savegpr_23
/* 802D83A0 002D4000  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D83A4 002D4004  3B 40 00 00 */	li r26, 0
/* 802D83A8 002D4008  38 63 BC 40 */	addi r3, r3, lbl_8056BC40@l
/* 802D83AC 002D400C  A0 83 07 B8 */	lhz r4, 0x7b8(r3)
/* 802D83B0 002D4010  2C 04 00 00 */	cmpwi r4, 0
/* 802D83B4 002D4014  41 82 01 58 */	beq lbl_802D850C
/* 802D83B8 002D4018  88 03 00 08 */	lbz r0, 8(r3)
/* 802D83BC 002D401C  2C 00 00 00 */	cmpwi r0, 0
/* 802D83C0 002D4020  41 82 00 14 */	beq lbl_802D83D4
/* 802D83C4 002D4024  88 03 00 62 */	lbz r0, 0x62(r3)
/* 802D83C8 002D4028  28 00 00 01 */	cmplwi r0, 1
/* 802D83CC 002D402C  40 82 00 08 */	bne lbl_802D83D4
/* 802D83D0 002D4030  3B 40 00 01 */	li r26, 1
lbl_802D83D4:
/* 802D83D4 002D4034  88 03 00 64 */	lbz r0, 0x64(r3)
/* 802D83D8 002D4038  2C 00 00 00 */	cmpwi r0, 0
/* 802D83DC 002D403C  41 82 00 14 */	beq lbl_802D83F0
/* 802D83E0 002D4040  88 03 00 BE */	lbz r0, 0xbe(r3)
/* 802D83E4 002D4044  28 00 00 01 */	cmplwi r0, 1
/* 802D83E8 002D4048  40 82 00 08 */	bne lbl_802D83F0
/* 802D83EC 002D404C  3B 5A 00 01 */	addi r26, r26, 1
lbl_802D83F0:
/* 802D83F0 002D4050  88 03 00 C0 */	lbz r0, 0xc0(r3)
/* 802D83F4 002D4054  2C 00 00 00 */	cmpwi r0, 0
/* 802D83F8 002D4058  41 82 00 14 */	beq lbl_802D840C
/* 802D83FC 002D405C  88 03 01 1A */	lbz r0, 0x11a(r3)
/* 802D8400 002D4060  28 00 00 01 */	cmplwi r0, 1
/* 802D8404 002D4064  40 82 00 08 */	bne lbl_802D840C
/* 802D8408 002D4068  3B 5A 00 01 */	addi r26, r26, 1
lbl_802D840C:
/* 802D840C 002D406C  88 03 01 1C */	lbz r0, 0x11c(r3)
/* 802D8410 002D4070  2C 00 00 00 */	cmpwi r0, 0
/* 802D8414 002D4074  41 82 00 14 */	beq lbl_802D8428
/* 802D8418 002D4078  88 03 01 76 */	lbz r0, 0x176(r3)
/* 802D841C 002D407C  28 00 00 01 */	cmplwi r0, 1
/* 802D8420 002D4080  40 82 00 08 */	bne lbl_802D8428
/* 802D8424 002D4084  3B 5A 00 01 */	addi r26, r26, 1
lbl_802D8428:
/* 802D8428 002D4088  3F C0 80 57 */	lis r30, lbl_8056BC40@ha
/* 802D842C 002D408C  3B A0 00 00 */	li r29, 0
/* 802D8430 002D4090  38 7E BC 40 */	addi r3, r30, lbl_8056BC40@l
/* 802D8434 002D4094  3B E0 00 03 */	li r31, 3
/* 802D8438 002D4098  A0 03 00 02 */	lhz r0, 2(r3)
/* 802D843C 002D409C  3B 83 00 08 */	addi r28, r3, 8
/* 802D8440 002D40A0  3F 00 00 08 */	lis r24, 8
/* 802D8444 002D40A4  3F 20 80 44 */	lis r25, 0x8044
/* 802D8448 002D40A8  7C 60 23 D6 */	divw r3, r0, r4
/* 802D844C 002D40AC  3E E0 51 EC */	lis r23, 0x51ec
/* 802D8450 002D40B0  38 03 00 01 */	addi r0, r3, 1
/* 802D8454 002D40B4  54 1B 04 3E */	clrlwi r27, r0, 0x10
lbl_802D8458:
/* 802D8458 002D40B8  88 1C 00 00 */	lbz r0, 0(r28)
/* 802D845C 002D40BC  2C 00 00 00 */	cmpwi r0, 0
/* 802D8460 002D40C0  41 82 00 9C */	beq lbl_802D84FC
/* 802D8464 002D40C4  2C 1A 00 00 */	cmpwi r26, 0
/* 802D8468 002D40C8  41 82 00 10 */	beq lbl_802D8478
/* 802D846C 002D40CC  88 1C 00 5A */	lbz r0, 0x5a(r28)
/* 802D8470 002D40D0  28 00 00 01 */	cmplwi r0, 1
/* 802D8474 002D40D4  40 82 00 10 */	bne lbl_802D8484
lbl_802D8478:
/* 802D8478 002D40D8  B3 7C 00 34 */	sth r27, 0x34(r28)
/* 802D847C 002D40DC  B3 7C 00 36 */	sth r27, 0x36(r28)
/* 802D8480 002D40E0  48 00 00 0C */	b lbl_802D848C
lbl_802D8484:
/* 802D8484 002D40E4  B3 FC 00 34 */	sth r31, 0x34(r28)
/* 802D8488 002D40E8  B3 FC 00 36 */	sth r31, 0x36(r28)
lbl_802D848C:
/* 802D848C 002D40EC  A0 1C 00 34 */	lhz r0, 0x34(r28)
/* 802D8490 002D40F0  38 77 85 1F */	addi r3, r23, -31457
/* 802D8494 002D40F4  1C 00 00 78 */	mulli r0, r0, 0x78
/* 802D8498 002D40F8  7C 03 00 96 */	mulhw r0, r3, r0
/* 802D849C 002D40FC  7C 00 2E 70 */	srawi r0, r0, 5
/* 802D84A0 002D4100  54 03 0F FE */	srwi r3, r0, 0x1f
/* 802D84A4 002D4104  7C 00 1A 14 */	add r0, r0, r3
/* 802D84A8 002D4108  54 04 04 3E */	clrlwi r4, r0, 0x10
/* 802D84AC 002D410C  B0 1C 00 3A */	sth r0, 0x3a(r28)
/* 802D84B0 002D4110  7C 04 F8 10 */	subfc r0, r4, r31
/* 802D84B4 002D4114  7C 60 01 10 */	subfe r3, r0, r0
/* 802D84B8 002D4118  38 04 FF FD */	addi r0, r4, -3
/* 802D84BC 002D411C  7C 03 18 38 */	and r3, r0, r3
/* 802D84C0 002D4120  B0 7C 00 3C */	sth r3, 0x3c(r28)
/* 802D84C4 002D4124  38 04 00 02 */	addi r0, r4, 2
/* 802D84C8 002D4128  B0 1C 00 3E */	sth r0, 0x3e(r28)
/* 802D84CC 002D412C  88 1E BC 40 */	lbz r0, -0x43c0(r30)
/* 802D84D0 002D4130  28 00 00 05 */	cmplwi r0, 5
/* 802D84D4 002D4134  41 80 00 28 */	blt lbl_802D84FC
/* 802D84D8 002D4138  88 DC 00 5A */	lbz r6, 0x5a(r28)
/* 802D84DC 002D413C  38 78 00 04 */	addi r3, r24, 4
/* 802D84E0 002D4140  A0 FC 00 36 */	lhz r7, 0x36(r28)
/* 802D84E4 002D4144  38 99 3D B8 */	addi r4, r25, 0x3db8
/* 802D84E8 002D4148  A1 1C 00 3A */	lhz r8, 0x3a(r28)
/* 802D84EC 002D414C  57 A5 04 3E */	clrlwi r5, r29, 0x10
/* 802D84F0 002D4150  A1 3C 00 3C */	lhz r9, 0x3c(r28)
/* 802D84F4 002D4154  A1 5C 00 3E */	lhz r10, 0x3e(r28)
/* 802D84F8 002D4158  4B FE 4A A9 */	bl LogMsg_6
lbl_802D84FC:
/* 802D84FC 002D415C  3B BD 00 01 */	addi r29, r29, 1
/* 802D8500 002D4160  3B 9C 00 5C */	addi r28, r28, 0x5c
/* 802D8504 002D4164  28 1D 00 04 */	cmplwi r29, 4
/* 802D8508 002D4168  41 80 FF 50 */	blt lbl_802D8458
lbl_802D850C:
/* 802D850C 002D416C  39 61 00 30 */	addi r11, r1, 0x30
/* 802D8510 002D4170  4B EE EC 55 */	bl _restgpr_23
/* 802D8514 002D4174  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D8518 002D4178  7C 08 03 A6 */	mtlr r0
/* 802D851C 002D417C  38 21 00 30 */	addi r1, r1, 0x30
/* 802D8520 002D4180  4E 80 00 20 */	blr

.global l2c_link_process_num_completed_pkts
l2c_link_process_num_completed_pkts:
/* 802D8524 002D4184  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D8528 002D4188  7C 08 02 A6 */	mflr r0
/* 802D852C 002D418C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D8530 002D4190  39 61 00 20 */	addi r11, r1, 0x20
/* 802D8534 002D4194  4B EE EB F1 */	bl _savegpr_26
/* 802D8538 002D4198  3F 80 80 57 */	lis r28, lbl_8056BC40@ha
/* 802D853C 002D419C  8B E3 00 00 */	lbz r31, 0(r3)
/* 802D8540 002D41A0  3B A3 00 01 */	addi r29, r3, 1
/* 802D8544 002D41A4  3B C0 00 00 */	li r30, 0
/* 802D8548 002D41A8  3B 9C BC 40 */	addi r28, r28, lbl_8056BC40@l
/* 802D854C 002D41AC  3B 60 00 00 */	li r27, 0
/* 802D8550 002D41B0  48 00 00 94 */	b lbl_802D85E4
lbl_802D8554:
/* 802D8554 002D41B4  88 7D 00 01 */	lbz r3, 1(r29)
/* 802D8558 002D41B8  88 1D 00 03 */	lbz r0, 3(r29)
/* 802D855C 002D41BC  54 64 40 2E */	slwi r4, r3, 8
/* 802D8560 002D41C0  88 BD 00 00 */	lbz r5, 0(r29)
/* 802D8564 002D41C4  88 7D 00 02 */	lbz r3, 2(r29)
/* 802D8568 002D41C8  54 00 40 2E */	slwi r0, r0, 8
/* 802D856C 002D41CC  7C 85 22 14 */	add r4, r5, r4
/* 802D8570 002D41D0  3B BD 00 04 */	addi r29, r29, 4
/* 802D8574 002D41D4  7C 03 02 14 */	add r0, r3, r0
/* 802D8578 002D41D8  54 83 04 3E */	clrlwi r3, r4, 0x10
/* 802D857C 002D41DC  54 1A 04 3E */	clrlwi r26, r0, 0x10
/* 802D8580 002D41E0  48 00 17 71 */	bl l2cu_find_lcb_by_handle
/* 802D8584 002D41E4  2C 03 00 00 */	cmpwi r3, 0
/* 802D8588 002D41E8  41 82 00 58 */	beq lbl_802D85E0
/* 802D858C 002D41EC  A0 03 00 36 */	lhz r0, 0x36(r3)
/* 802D8590 002D41F0  7C 00 D2 14 */	add r0, r0, r26
/* 802D8594 002D41F4  B0 03 00 36 */	sth r0, 0x36(r3)
/* 802D8598 002D41F8  54 00 04 3E */	clrlwi r0, r0, 0x10
/* 802D859C 002D41FC  A0 83 00 34 */	lhz r4, 0x34(r3)
/* 802D85A0 002D4200  7C 00 20 40 */	cmplw r0, r4
/* 802D85A4 002D4204  40 81 00 08 */	ble lbl_802D85AC
/* 802D85A8 002D4208  B0 83 00 36 */	sth r4, 0x36(r3)
lbl_802D85AC:
/* 802D85AC 002D420C  A0 03 00 38 */	lhz r0, 0x38(r3)
/* 802D85B0 002D4210  7C 00 D0 40 */	cmplw r0, r26
/* 802D85B4 002D4214  40 81 00 10 */	ble lbl_802D85C4
/* 802D85B8 002D4218  7C 1A 00 50 */	subf r0, r26, r0
/* 802D85BC 002D421C  B0 03 00 38 */	sth r0, 0x38(r3)
/* 802D85C0 002D4220  48 00 00 08 */	b lbl_802D85C8
lbl_802D85C4:
/* 802D85C4 002D4224  B3 63 00 38 */	sth r27, 0x38(r3)
lbl_802D85C8:
/* 802D85C8 002D4228  A0 1C 00 04 */	lhz r0, 4(r28)
/* 802D85CC 002D422C  38 80 00 00 */	li r4, 0
/* 802D85D0 002D4230  38 A0 00 00 */	li r5, 0
/* 802D85D4 002D4234  7C 00 D2 14 */	add r0, r0, r26
/* 802D85D8 002D4238  B0 1C 00 04 */	sth r0, 4(r28)
/* 802D85DC 002D423C  4B FF FA E5 */	bl l2c_link_check_send_pkts
lbl_802D85E0:
/* 802D85E0 002D4240  3B DE 00 01 */	addi r30, r30, 1
lbl_802D85E4:
/* 802D85E4 002D4244  57 C0 06 3E */	clrlwi r0, r30, 0x18
/* 802D85E8 002D4248  7C 00 F8 40 */	cmplw r0, r31
/* 802D85EC 002D424C  41 80 FF 68 */	blt lbl_802D8554
/* 802D85F0 002D4250  39 61 00 20 */	addi r11, r1, 0x20
/* 802D85F4 002D4254  4B EE EB 7D */	bl _restgpr_26
/* 802D85F8 002D4258  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D85FC 002D425C  7C 08 03 A6 */	mtlr r0
/* 802D8600 002D4260  38 21 00 20 */	addi r1, r1, 0x20
/* 802D8604 002D4264  4E 80 00 20 */	blr

.global l2c_link_processs_num_bufs
l2c_link_processs_num_bufs:
/* 802D8608 002D4268  3C 80 80 57 */	lis r4, lbl_8056BC40@ha
/* 802D860C 002D426C  38 84 BC 40 */	addi r4, r4, lbl_8056BC40@l
/* 802D8610 002D4270  B0 64 00 02 */	sth r3, 2(r4)
/* 802D8614 002D4274  B0 64 00 04 */	sth r3, 4(r4)
/* 802D8618 002D4278  4E 80 00 20 */	blr

.global l2cap_link_chk_pkt_start
l2cap_link_chk_pkt_start:
/* 802D861C 002D427C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802D8620 002D4280  7C 08 02 A6 */	mflr r0
/* 802D8624 002D4284  90 01 00 34 */	stw r0, 0x34(r1)
/* 802D8628 002D4288  39 61 00 30 */	addi r11, r1, 0x30
/* 802D862C 002D428C  4B EE EA F1 */	bl _savegpr_24
/* 802D8630 002D4290  A0 03 00 04 */	lhz r0, 4(r3)
/* 802D8634 002D4294  38 C0 00 00 */	li r6, 0
/* 802D8638 002D4298  B0 C3 00 06 */	sth r6, 6(r3)
/* 802D863C 002D429C  3F 00 80 57 */	lis r24, lbl_8056BC40@ha
/* 802D8640 002D42A0  7C E3 02 14 */	add r7, r3, r0
/* 802D8644 002D42A4  7C 7C 1B 78 */	mr r28, r3
/* 802D8648 002D42A8  88 67 00 09 */	lbz r3, 9(r7)
/* 802D864C 002D42AC  3B 38 BC 40 */	addi r25, r24, lbl_8056BC40@l
/* 802D8650 002D42B0  88 07 00 0B */	lbz r0, 0xb(r7)
/* 802D8654 002D42B4  54 64 40 2E */	slwi r4, r3, 8
/* 802D8658 002D42B8  88 A7 00 08 */	lbz r5, 8(r7)
/* 802D865C 002D42BC  88 67 00 0A */	lbz r3, 0xa(r7)
/* 802D8660 002D42C0  54 00 40 2E */	slwi r0, r0, 8
/* 802D8664 002D42C4  7C 85 22 14 */	add r4, r5, r4
/* 802D8668 002D42C8  7C 03 02 14 */	add r0, r3, r0
/* 802D866C 002D42CC  90 D9 07 BC */	stw r6, 0x7bc(r25)
/* 802D8670 002D42D0  54 1F 04 3E */	clrlwi r31, r0, 0x10
/* 802D8674 002D42D4  54 9B A7 BE */	rlwinm r27, r4, 0x14, 0x1e, 0x1f
/* 802D8678 002D42D8  54 83 05 3E */	clrlwi r3, r4, 0x14
/* 802D867C 002D42DC  48 00 16 75 */	bl l2cu_find_lcb_by_handle
/* 802D8680 002D42E0  2C 03 00 00 */	cmpwi r3, 0
/* 802D8684 002D42E4  7C 7A 1B 78 */	mr r26, r3
/* 802D8688 002D42E8  40 82 00 0C */	bne lbl_802D8694
/* 802D868C 002D42EC  7F 83 E3 78 */	mr r3, r28
/* 802D8690 002D42F0  48 00 01 44 */	b lbl_802D87D4
lbl_802D8694:
/* 802D8694 002D42F4  28 1B 00 02 */	cmplwi r27, 2
/* 802D8698 002D42F8  40 82 00 50 */	bne lbl_802D86E8
/* 802D869C 002D42FC  80 03 00 50 */	lwz r0, 0x50(r3)
/* 802D86A0 002D4300  2C 00 00 00 */	cmpwi r0, 0
/* 802D86A4 002D4304  41 82 00 2C */	beq lbl_802D86D0
/* 802D86A8 002D4308  88 18 BC 40 */	lbz r0, -0x43c0(r24)
/* 802D86AC 002D430C  28 00 00 02 */	cmplwi r0, 2
/* 802D86B0 002D4310  41 80 00 18 */	blt lbl_802D86C8
/* 802D86B4 002D4314  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D86B8 002D4318  3C 80 80 44 */	lis r4, lbl_80443E00@ha
/* 802D86BC 002D431C  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D86C0 002D4320  38 84 3E 00 */	addi r4, r4, lbl_80443E00@l
/* 802D86C4 002D4324  4B FE 48 4D */	bl LogMsg_0
lbl_802D86C8:
/* 802D86C8 002D4328  80 7A 00 50 */	lwz r3, 0x50(r26)
/* 802D86CC 002D432C  4B FE 16 69 */	bl GKI_freebuf
lbl_802D86D0:
/* 802D86D0 002D4330  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D86D4 002D4334  93 9A 00 50 */	stw r28, 0x50(r26)
/* 802D86D8 002D4338  38 63 BC 40 */	addi r3, r3, lbl_8056BC40@l
/* 802D86DC 002D433C  7F 9E E3 78 */	mr r30, r28
/* 802D86E0 002D4340  93 43 07 BC */	stw r26, 0x7bc(r3)
/* 802D86E4 002D4344  48 00 00 DC */	b lbl_802D87C0
lbl_802D86E8:
/* 802D86E8 002D4348  83 C3 00 50 */	lwz r30, 0x50(r3)
/* 802D86EC 002D434C  2C 1E 00 00 */	cmpwi r30, 0
/* 802D86F0 002D4350  41 82 00 CC */	beq lbl_802D87BC
/* 802D86F4 002D4354  A0 1E 00 04 */	lhz r0, 4(r30)
/* 802D86F8 002D4358  7F 7E 02 14 */	add r27, r30, r0
/* 802D86FC 002D435C  88 1B 00 0B */	lbz r0, 0xb(r27)
/* 802D8700 002D4360  88 9B 00 0A */	lbz r4, 0xa(r27)
/* 802D8704 002D4364  54 00 40 2E */	slwi r0, r0, 8
/* 802D8708 002D4368  7C 04 02 14 */	add r0, r4, r0
/* 802D870C 002D436C  54 1D 04 3E */	clrlwi r29, r0, 0x10
/* 802D8710 002D4370  7C 1D FA 14 */	add r0, r29, r31
/* 802D8714 002D4374  2C 00 06 9F */	cmpwi r0, 0x69f
/* 802D8718 002D4378  41 81 00 6C */	bgt lbl_802D8784
/* 802D871C 002D437C  90 79 07 BC */	stw r3, 0x7bc(r25)
/* 802D8720 002D4380  A0 7C 00 02 */	lhz r3, 2(r28)
/* 802D8724 002D4384  28 03 00 04 */	cmplwi r3, 4
/* 802D8728 002D4388  40 81 00 40 */	ble lbl_802D8768
/* 802D872C 002D438C  A0 9E 00 04 */	lhz r4, 4(r30)
/* 802D8730 002D4390  38 A3 FF FC */	addi r5, r3, -4
/* 802D8734 002D4394  A0 1C 00 04 */	lhz r0, 4(r28)
/* 802D8738 002D4398  7C DE 22 14 */	add r6, r30, r4
/* 802D873C 002D439C  A0 7E 00 02 */	lhz r3, 2(r30)
/* 802D8740 002D43A0  7C 9C 02 14 */	add r4, r28, r0
/* 802D8744 002D43A4  7C 66 1A 14 */	add r3, r6, r3
/* 802D8748 002D43A8  38 63 00 08 */	addi r3, r3, 8
/* 802D874C 002D43AC  38 84 00 0C */	addi r4, r4, 0xc
/* 802D8750 002D43B0  4B D2 B8 B1 */	bl memcpy
/* 802D8754 002D43B4  A0 7E 00 02 */	lhz r3, 2(r30)
/* 802D8758 002D43B8  A0 1C 00 02 */	lhz r0, 2(r28)
/* 802D875C 002D43BC  7C 60 1A 14 */	add r3, r0, r3
/* 802D8760 002D43C0  38 03 FF FC */	addi r0, r3, -4
/* 802D8764 002D43C4  B0 1E 00 02 */	sth r0, 2(r30)
lbl_802D8768:
/* 802D8768 002D43C8  7F 83 E3 78 */	mr r3, r28
/* 802D876C 002D43CC  4B FE 15 C9 */	bl GKI_freebuf
/* 802D8770 002D43D0  7F BD FA 14 */	add r29, r29, r31
/* 802D8774 002D43D4  9B BB 00 0A */	stb r29, 0xa(r27)
/* 802D8778 002D43D8  57 A0 C6 3E */	rlwinm r0, r29, 0x18, 0x18, 0x1f
/* 802D877C 002D43DC  98 1B 00 0B */	stb r0, 0xb(r27)
/* 802D8780 002D43E0  48 00 00 40 */	b lbl_802D87C0
lbl_802D8784:
/* 802D8784 002D43E4  88 18 BC 40 */	lbz r0, -0x43c0(r24)
/* 802D8788 002D43E8  28 00 00 02 */	cmplwi r0, 2
/* 802D878C 002D43EC  41 80 00 18 */	blt lbl_802D87A4
/* 802D8790 002D43F0  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D8794 002D43F4  3C 80 80 44 */	lis r4, lbl_80443E20@ha
/* 802D8798 002D43F8  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D879C 002D43FC  38 84 3E 20 */	addi r4, r4, lbl_80443E20@l
/* 802D87A0 002D4400  4B FE 47 71 */	bl LogMsg_0
lbl_802D87A4:
/* 802D87A4 002D4404  80 7A 00 50 */	lwz r3, 0x50(r26)
/* 802D87A8 002D4408  4B FE 15 8D */	bl GKI_freebuf
/* 802D87AC 002D440C  38 00 00 00 */	li r0, 0
/* 802D87B0 002D4410  3B C0 00 00 */	li r30, 0
/* 802D87B4 002D4414  90 1A 00 50 */	stw r0, 0x50(r26)
/* 802D87B8 002D4418  48 00 00 08 */	b lbl_802D87C0
lbl_802D87BC:
/* 802D87BC 002D441C  3B C0 00 00 */	li r30, 0
lbl_802D87C0:
/* 802D87C0 002D4420  2C 1E 00 00 */	cmpwi r30, 0
/* 802D87C4 002D4424  40 82 00 0C */	bne lbl_802D87D0
/* 802D87C8 002D4428  7F 83 E3 78 */	mr r3, r28
/* 802D87CC 002D442C  4B FE 15 69 */	bl GKI_freebuf
lbl_802D87D0:
/* 802D87D0 002D4430  7F C3 F3 78 */	mr r3, r30
lbl_802D87D4:
/* 802D87D4 002D4434  39 61 00 30 */	addi r11, r1, 0x30
/* 802D87D8 002D4438  4B EE E9 91 */	bl _restgpr_24
/* 802D87DC 002D443C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802D87E0 002D4440  7C 08 03 A6 */	mtlr r0
/* 802D87E4 002D4444  38 21 00 30 */	addi r1, r1, 0x30
/* 802D87E8 002D4448  4E 80 00 20 */	blr

.global l2cap_link_chk_pkt_end
l2cap_link_chk_pkt_end:
/* 802D87EC 002D444C  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D87F0 002D4450  38 63 BC 40 */	addi r3, r3, lbl_8056BC40@l
/* 802D87F4 002D4454  80 C3 07 BC */	lwz r6, 0x7bc(r3)
/* 802D87F8 002D4458  2C 06 00 00 */	cmpwi r6, 0
/* 802D87FC 002D445C  41 82 00 10 */	beq lbl_802D880C
/* 802D8800 002D4460  80 86 00 50 */	lwz r4, 0x50(r6)
/* 802D8804 002D4464  2C 04 00 00 */	cmpwi r4, 0
/* 802D8808 002D4468  40 82 00 0C */	bne lbl_802D8814
lbl_802D880C:
/* 802D880C 002D446C  38 60 00 01 */	li r3, 1
/* 802D8810 002D4470  4E 80 00 20 */	blr
lbl_802D8814:
/* 802D8814 002D4474  A0 04 00 04 */	lhz r0, 4(r4)
/* 802D8818 002D4478  A0 64 00 02 */	lhz r3, 2(r4)
/* 802D881C 002D447C  7C A4 02 14 */	add r5, r4, r0
/* 802D8820 002D4480  88 85 00 0D */	lbz r4, 0xd(r5)
/* 802D8824 002D4484  38 03 FF F8 */	addi r0, r3, -8
/* 802D8828 002D4488  88 A5 00 0C */	lbz r5, 0xc(r5)
/* 802D882C 002D448C  54 83 40 2E */	slwi r3, r4, 8
/* 802D8830 002D4490  7C 65 1A 14 */	add r3, r5, r3
/* 802D8834 002D4494  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 802D8838 002D4498  7C 03 00 00 */	cmpw r3, r0
/* 802D883C 002D449C  40 81 00 0C */	ble lbl_802D8848
/* 802D8840 002D44A0  38 60 00 00 */	li r3, 0
/* 802D8844 002D44A4  4E 80 00 20 */	blr
lbl_802D8848:
/* 802D8848 002D44A8  38 00 00 00 */	li r0, 0
/* 802D884C 002D44AC  38 60 00 01 */	li r3, 1
/* 802D8850 002D44B0  90 06 00 50 */	stw r0, 0x50(r6)
/* 802D8854 002D44B4  4E 80 00 20 */	blr

.global l2c_link_role_changed
l2c_link_role_changed:
/* 802D8858 002D44B8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D885C 002D44BC  7C 08 02 A6 */	mflr r0
/* 802D8860 002D44C0  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D8864 002D44C4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802D8868 002D44C8  93 C1 00 08 */	stw r30, 8(r1)
/* 802D886C 002D44CC  7C 9E 23 78 */	mr r30, r4
/* 802D8870 002D44D0  48 00 13 F9 */	bl l2cu_find_lcb_by_bd_addr
/* 802D8874 002D44D4  2C 03 00 00 */	cmpwi r3, 0
/* 802D8878 002D44D8  41 82 00 08 */	beq lbl_802D8880
/* 802D887C 002D44DC  9B C3 00 30 */	stb r30, 0x30(r3)
lbl_802D8880:
/* 802D8880 002D44E0  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D8884 002D44E4  3B C0 00 00 */	li r30, 0
/* 802D8888 002D44E8  38 63 BC 40 */	addi r3, r3, lbl_8056BC40@l
/* 802D888C 002D44EC  3B E3 00 08 */	addi r31, r3, 8
lbl_802D8890:
/* 802D8890 002D44F0  88 1F 00 00 */	lbz r0, 0(r31)
/* 802D8894 002D44F4  2C 00 00 00 */	cmpwi r0, 0
/* 802D8898 002D44F8  41 82 00 18 */	beq lbl_802D88B0
/* 802D889C 002D44FC  80 1F 00 04 */	lwz r0, 4(r31)
/* 802D88A0 002D4500  2C 00 00 02 */	cmpwi r0, 2
/* 802D88A4 002D4504  40 82 00 0C */	bne lbl_802D88B0
/* 802D88A8 002D4508  7F E3 FB 78 */	mr r3, r31
/* 802D88AC 002D450C  48 00 2E 65 */	bl l2cu_create_conn_after_switch
lbl_802D88B0:
/* 802D88B0 002D4510  3B DE 00 01 */	addi r30, r30, 1
/* 802D88B4 002D4514  3B FF 00 5C */	addi r31, r31, 0x5c
/* 802D88B8 002D4518  2C 1E 00 04 */	cmpwi r30, 4
/* 802D88BC 002D451C  41 80 FF D4 */	blt lbl_802D8890
/* 802D88C0 002D4520  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D88C4 002D4524  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802D88C8 002D4528  83 C1 00 08 */	lwz r30, 8(r1)
/* 802D88CC 002D452C  7C 08 03 A6 */	mtlr r0
/* 802D88D0 002D4530  38 21 00 10 */	addi r1, r1, 0x10
/* 802D88D4 002D4534  4E 80 00 20 */	blr

.global l2c_link_role_change_failed
l2c_link_role_change_failed:
/* 802D88D8 002D4538  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D88DC 002D453C  7C 08 02 A6 */	mflr r0
/* 802D88E0 002D4540  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D88E4 002D4544  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D88E8 002D4548  38 63 BC 40 */	addi r3, r3, lbl_8056BC40@l
/* 802D88EC 002D454C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802D88F0 002D4550  3B E3 00 08 */	addi r31, r3, 8
/* 802D88F4 002D4554  93 C1 00 08 */	stw r30, 8(r1)
/* 802D88F8 002D4558  3B C0 00 00 */	li r30, 0
lbl_802D88FC:
/* 802D88FC 002D455C  88 1F 00 00 */	lbz r0, 0(r31)
/* 802D8900 002D4560  2C 00 00 00 */	cmpwi r0, 0
/* 802D8904 002D4564  41 82 00 18 */	beq lbl_802D891C
/* 802D8908 002D4568  80 1F 00 04 */	lwz r0, 4(r31)
/* 802D890C 002D456C  2C 00 00 02 */	cmpwi r0, 2
/* 802D8910 002D4570  40 82 00 0C */	bne lbl_802D891C
/* 802D8914 002D4574  7F E3 FB 78 */	mr r3, r31
/* 802D8918 002D4578  48 00 2D F9 */	bl l2cu_create_conn_after_switch
lbl_802D891C:
/* 802D891C 002D457C  3B DE 00 01 */	addi r30, r30, 1
/* 802D8920 002D4580  3B FF 00 5C */	addi r31, r31, 0x5c
/* 802D8924 002D4584  2C 1E 00 04 */	cmpwi r30, 4
/* 802D8928 002D4588  41 80 FF D4 */	blt lbl_802D88FC
/* 802D892C 002D458C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D8930 002D4590  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802D8934 002D4594  83 C1 00 08 */	lwz r30, 8(r1)
/* 802D8938 002D4598  7C 08 03 A6 */	mtlr r0
/* 802D893C 002D459C  38 21 00 10 */	addi r1, r1, 0x10
/* 802D8940 002D45A0  4E 80 00 20 */	blr

.global l2c_link_segments_xmitted
l2c_link_segments_xmitted:
/* 802D8944 002D45A4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802D8948 002D45A8  7C 08 02 A6 */	mflr r0
/* 802D894C 002D45AC  90 01 00 24 */	stw r0, 0x24(r1)
/* 802D8950 002D45B0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802D8954 002D45B4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802D8958 002D45B8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802D895C 002D45BC  7C 7D 1B 78 */	mr r29, r3
/* 802D8960 002D45C0  A0 03 00 04 */	lhz r0, 4(r3)
/* 802D8964 002D45C4  7C 63 02 14 */	add r3, r3, r0
/* 802D8968 002D45C8  88 03 00 09 */	lbz r0, 9(r3)
/* 802D896C 002D45CC  88 63 00 08 */	lbz r3, 8(r3)
/* 802D8970 002D45D0  54 00 40 2E */	slwi r0, r0, 8
/* 802D8974 002D45D4  7C 03 02 14 */	add r0, r3, r0
/* 802D8978 002D45D8  54 1F 05 3E */	clrlwi r31, r0, 0x14
/* 802D897C 002D45DC  7F E3 FB 78 */	mr r3, r31
/* 802D8980 002D45E0  48 00 13 71 */	bl l2cu_find_lcb_by_handle
/* 802D8984 002D45E4  2C 03 00 00 */	cmpwi r3, 0
/* 802D8988 002D45E8  7C 7E 1B 78 */	mr r30, r3
/* 802D898C 002D45EC  40 82 00 38 */	bne lbl_802D89C4
/* 802D8990 002D45F0  3C 60 80 57 */	lis r3, lbl_8056BC40@ha
/* 802D8994 002D45F4  88 03 BC 40 */	lbz r0, lbl_8056BC40@l(r3)
/* 802D8998 002D45F8  28 00 00 02 */	cmplwi r0, 2
/* 802D899C 002D45FC  41 80 00 1C */	blt lbl_802D89B8
/* 802D89A0 002D4600  3C 60 00 08 */	lis r3, 0x00080001@ha
/* 802D89A4 002D4604  3C 80 80 44 */	lis r4, lbl_80443E40@ha
/* 802D89A8 002D4608  7F E5 FB 78 */	mr r5, r31
/* 802D89AC 002D460C  38 63 00 01 */	addi r3, r3, 0x00080001@l
/* 802D89B0 002D4610  38 84 3E 40 */	addi r4, r4, lbl_80443E40@l
/* 802D89B4 002D4614  4B FE 45 75 */	bl LogMsg_1
lbl_802D89B8:
/* 802D89B8 002D4618  7F A3 EB 78 */	mr r3, r29
/* 802D89BC 002D461C  4B FE 13 79 */	bl GKI_freebuf
/* 802D89C0 002D4620  48 00 00 44 */	b lbl_802D8A04
lbl_802D89C4:
/* 802D89C4 002D4624  80 03 00 04 */	lwz r0, 4(r3)
/* 802D89C8 002D4628  2C 00 00 04 */	cmpwi r0, 4
/* 802D89CC 002D462C  40 82 00 30 */	bne lbl_802D89FC
/* 802D89D0 002D4630  3B E0 00 00 */	li r31, 0
/* 802D89D4 002D4634  7F A4 EB 78 */	mr r4, r29
/* 802D89D8 002D4638  B3 FD 00 06 */	sth r31, 6(r29)
/* 802D89DC 002D463C  38 63 00 44 */	addi r3, r3, 0x44
/* 802D89E0 002D4640  4B FE 18 B1 */	bl GKI_enqueue_head
/* 802D89E4 002D4644  9B FE 00 40 */	stb r31, 0x40(r30)
/* 802D89E8 002D4648  7F C3 F3 78 */	mr r3, r30
/* 802D89EC 002D464C  38 80 00 00 */	li r4, 0
/* 802D89F0 002D4650  38 A0 00 00 */	li r5, 0
/* 802D89F4 002D4654  4B FF F6 CD */	bl l2c_link_check_send_pkts
/* 802D89F8 002D4658  48 00 00 0C */	b lbl_802D8A04
lbl_802D89FC:
/* 802D89FC 002D465C  7F A3 EB 78 */	mr r3, r29
/* 802D8A00 002D4660  4B FE 13 35 */	bl GKI_freebuf
lbl_802D8A04:
/* 802D8A04 002D4664  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802D8A08 002D4668  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802D8A0C 002D466C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802D8A10 002D4670  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802D8A14 002D4674  7C 08 03 A6 */	mtlr r0
/* 802D8A18 002D4678  38 21 00 20 */	addi r1, r1, 0x20
/* 802D8A1C 002D467C  4E 80 00 20 */	blr

.global l2c_pin_code_request
l2c_pin_code_request:
/* 802D8A20 002D4680  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802D8A24 002D4684  7C 08 02 A6 */	mflr r0
/* 802D8A28 002D4688  90 01 00 14 */	stw r0, 0x14(r1)
/* 802D8A2C 002D468C  48 00 12 3D */	bl l2cu_find_lcb_by_bd_addr
/* 802D8A30 002D4690  2C 03 00 00 */	cmpwi r3, 0
/* 802D8A34 002D4694  41 82 00 20 */	beq lbl_802D8A54
/* 802D8A38 002D4698  80 03 00 08 */	lwz r0, 8(r3)
/* 802D8A3C 002D469C  2C 00 00 00 */	cmpwi r0, 0
/* 802D8A40 002D46A0  40 82 00 14 */	bne lbl_802D8A54
/* 802D8A44 002D46A4  38 80 00 02 */	li r4, 2
/* 802D8A48 002D46A8  38 A0 00 78 */	li r5, 0x78
/* 802D8A4C 002D46AC  38 63 00 10 */	addi r3, r3, 0x10
/* 802D8A50 002D46B0  4B FE 4A 8D */	bl btu_start_timer
lbl_802D8A54:
/* 802D8A54 002D46B4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802D8A58 002D46B8  7C 08 03 A6 */	mtlr r0
/* 802D8A5C 002D46BC  38 21 00 10 */	addi r1, r1, 0x10
/* 802D8A60 002D46C0  4E 80 00 20 */	blr