summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/sdp_main.s
blob: 7ec154202717733f06abdfbd7b46bfd3e328cd67 (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
.include "macros.inc"

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

.global sdp_init
sdp_init:
/* 802E4B94 002E07F4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E4B98 002E07F8  7C 08 02 A6 */	mflr r0
/* 802E4B9C 002E07FC  38 80 00 00 */	li r4, 0
/* 802E4BA0 002E0800  38 A0 46 34 */	li r5, 0x4634
/* 802E4BA4 002E0804  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E4BA8 002E0808  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E4BAC 002E080C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E4BB0 002E0810  3F C0 80 44 */	lis r30, lbl_804451A8@ha
/* 802E4BB4 002E0814  3B DE 51 A8 */	addi r30, r30, lbl_804451A8@l
/* 802E4BB8 002E0818  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E4BBC 002E081C  3F A0 80 57 */	lis r29, lbl_8056C840@ha
/* 802E4BC0 002E0820  38 7D C8 40 */	addi r3, r29, lbl_8056C840@l
/* 802E4BC4 002E0824  4B D1 F5 41 */	bl memset
/* 802E4BC8 002E0828  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 802E4BCC 002E082C  3B FD C8 40 */	addi r31, r29, -14272
/* 802E4BD0 002E0830  38 E0 00 01 */	li r7, 1
/* 802E4BD4 002E0834  38 A0 01 00 */	li r5, 0x100
/* 802E4BD8 002E0838  39 63 FF FF */	addi r11, r3, 0x0000FFFF@l
/* 802E4BDC 002E083C  39 40 00 F0 */	li r10, 0xf0
/* 802E4BE0 002E0840  38 00 00 15 */	li r0, 0x15
/* 802E4BE4 002E0844  B0 BF 00 04 */	sth r5, 4(r31)
/* 802E4BE8 002E0848  38 9E 00 00 */	addi r4, r30, 0
/* 802E4BEC 002E084C  3B A0 00 00 */	li r29, 0
/* 802E4BF0 002E0850  98 FF 00 02 */	stb r7, 2(r31)
/* 802E4BF4 002E0854  38 60 00 00 */	li r3, 0
/* 802E4BF8 002E0858  38 A0 00 00 */	li r5, 0
/* 802E4BFC 002E085C  38 C0 00 00 */	li r6, 0
/* 802E4C00 002E0860  98 FF 00 20 */	stb r7, 0x20(r31)
/* 802E4C04 002E0864  38 E0 00 01 */	li r7, 1
/* 802E4C08 002E0868  39 00 00 00 */	li r8, 0
/* 802E4C0C 002E086C  39 20 00 00 */	li r9, 0
/* 802E4C10 002E0870  B1 7F 00 22 */	sth r11, 0x22(r31)
/* 802E4C14 002E0874  B1 5F 46 2C */	sth r10, 0x462c(r31)
/* 802E4C18 002E0878  B0 1F 46 2E */	sth r0, 0x462e(r31)
/* 802E4C1C 002E087C  4B FE 5E 69 */	bl BTM_SetSecurityLevel
/* 802E4C20 002E0880  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802E4C24 002E0884  40 82 00 20 */	bne lbl_802E4C44
/* 802E4C28 002E0888  88 1F 46 30 */	lbz r0, 0x4630(r31)
/* 802E4C2C 002E088C  28 00 00 01 */	cmplwi r0, 1
/* 802E4C30 002E0890  41 80 00 E8 */	blt lbl_802E4D18
/* 802E4C34 002E0894  38 9E 00 14 */	addi r4, r30, 0x14
/* 802E4C38 002E0898  3C 60 00 0A */	lis r3, 0xa
/* 802E4C3C 002E089C  4B FD 82 D5 */	bl LogMsg_0
/* 802E4C40 002E08A0  48 00 00 D8 */	b lbl_802E4D18
lbl_802E4C44:
/* 802E4C44 002E08A4  38 9E 00 00 */	addi r4, r30, 0
/* 802E4C48 002E08A8  38 60 00 01 */	li r3, 1
/* 802E4C4C 002E08AC  38 A0 00 00 */	li r5, 0
/* 802E4C50 002E08B0  38 C0 00 00 */	li r6, 0
/* 802E4C54 002E08B4  38 E0 00 01 */	li r7, 1
/* 802E4C58 002E08B8  39 00 00 00 */	li r8, 0
/* 802E4C5C 002E08BC  39 20 00 00 */	li r9, 0
/* 802E4C60 002E08C0  4B FE 5E 25 */	bl BTM_SetSecurityLevel
/* 802E4C64 002E08C4  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802E4C68 002E08C8  40 82 00 20 */	bne lbl_802E4C88
/* 802E4C6C 002E08CC  88 1F 46 30 */	lbz r0, 0x4630(r31)
/* 802E4C70 002E08D0  28 00 00 01 */	cmplwi r0, 1
/* 802E4C74 002E08D4  41 80 00 A4 */	blt lbl_802E4D18
/* 802E4C78 002E08D8  38 9E 00 38 */	addi r4, r30, 0x38
/* 802E4C7C 002E08DC  3C 60 00 0A */	lis r3, 0xa
/* 802E4C80 002E08E0  4B FD 82 91 */	bl LogMsg_0
/* 802E4C84 002E08E4  48 00 00 94 */	b lbl_802E4D18
lbl_802E4C88:
/* 802E4C88 002E08E8  3D 60 80 2E */	lis r11, sdp_connect_ind@ha
/* 802E4C8C 002E08EC  3D 40 80 2E */	lis r10, sdp_connect_cfm@ha
/* 802E4C90 002E08F0  3D 20 80 2E */	lis r9, sdp_config_ind@ha
/* 802E4C94 002E08F4  3D 00 80 2E */	lis r8, sdp_config_cfm@ha
/* 802E4C98 002E08F8  3C E0 80 2E */	lis r7, sdp_disconnect_ind@ha
/* 802E4C9C 002E08FC  3C C0 80 2E */	lis r6, sdp_disconnect_cfm@ha
/* 802E4CA0 002E0900  3C A0 80 2E */	lis r5, sdp_data_ind@ha
/* 802E4CA4 002E0904  39 6B 4D 34 */	addi r11, r11, sdp_connect_ind@l
/* 802E4CA8 002E0908  39 4A 4D F8 */	addi r10, r10, sdp_connect_cfm@l
/* 802E4CAC 002E090C  39 29 4F 88 */	addi r9, r9, sdp_config_ind@l
/* 802E4CB0 002E0910  39 08 50 C4 */	addi r8, r8, sdp_config_cfm@l
/* 802E4CB4 002E0914  38 E7 52 40 */	addi r7, r7, sdp_disconnect_ind@l
/* 802E4CB8 002E0918  38 C6 55 BC */	addi r6, r6, sdp_disconnect_cfm@l
/* 802E4CBC 002E091C  38 A5 53 38 */	addi r5, r5, sdp_data_ind@l
/* 802E4CC0 002E0920  9B BF 46 30 */	stb r29, 0x4630(r31)
/* 802E4CC4 002E0924  38 9F 46 04 */	addi r4, r31, 0x4604
/* 802E4CC8 002E0928  38 60 00 01 */	li r3, 1
/* 802E4CCC 002E092C  91 7F 46 04 */	stw r11, 0x4604(r31)
/* 802E4CD0 002E0930  91 5F 46 08 */	stw r10, 0x4608(r31)
/* 802E4CD4 002E0934  93 BF 46 0C */	stw r29, 0x460c(r31)
/* 802E4CD8 002E0938  91 3F 46 10 */	stw r9, 0x4610(r31)
/* 802E4CDC 002E093C  91 1F 46 14 */	stw r8, 0x4614(r31)
/* 802E4CE0 002E0940  90 FF 46 18 */	stw r7, 0x4618(r31)
/* 802E4CE4 002E0944  90 DF 46 1C */	stw r6, 0x461c(r31)
/* 802E4CE8 002E0948  93 BF 46 20 */	stw r29, 0x4620(r31)
/* 802E4CEC 002E094C  90 BF 46 24 */	stw r5, 0x4624(r31)
/* 802E4CF0 002E0950  93 BF 46 28 */	stw r29, 0x4628(r31)
/* 802E4CF4 002E0954  4B FF 0B 3D */	bl L2CA_Register
/* 802E4CF8 002E0958  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802E4CFC 002E095C  40 82 00 1C */	bne lbl_802E4D18
/* 802E4D00 002E0960  88 1F 46 30 */	lbz r0, 0x4630(r31)
/* 802E4D04 002E0964  28 00 00 01 */	cmplwi r0, 1
/* 802E4D08 002E0968  41 80 00 10 */	blt lbl_802E4D18
/* 802E4D0C 002E096C  38 9E 00 60 */	addi r4, r30, 0x60
/* 802E4D10 002E0970  3C 60 00 0A */	lis r3, 0xa
/* 802E4D14 002E0974  4B FD 81 FD */	bl LogMsg_0
lbl_802E4D18:
/* 802E4D18 002E0978  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E4D1C 002E097C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E4D20 002E0980  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E4D24 002E0984  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E4D28 002E0988  7C 08 03 A6 */	mtlr r0
/* 802E4D2C 002E098C  38 21 00 20 */	addi r1, r1, 0x20
/* 802E4D30 002E0990  4E 80 00 20 */	blr

sdp_connect_ind:
/* 802E4D34 002E0994  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E4D38 002E0998  7C 08 02 A6 */	mflr r0
/* 802E4D3C 002E099C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E4D40 002E09A0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E4D44 002E09A4  7C DF 33 78 */	mr r31, r6
/* 802E4D48 002E09A8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E4D4C 002E09AC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E4D50 002E09B0  7C 9D 23 78 */	mr r29, r4
/* 802E4D54 002E09B4  93 81 00 10 */	stw r28, 0x10(r1)
/* 802E4D58 002E09B8  7C 7C 1B 78 */	mr r28, r3
/* 802E4D5C 002E09BC  48 00 17 45 */	bl sdpu_allocate_ccb
/* 802E4D60 002E09C0  2C 03 00 00 */	cmpwi r3, 0
/* 802E4D64 002E09C4  7C 7E 1B 78 */	mr r30, r3
/* 802E4D68 002E09C8  41 82 00 70 */	beq lbl_802E4DD8
/* 802E4D6C 002E09CC  38 00 00 02 */	li r0, 2
/* 802E4D70 002E09D0  7F 84 E3 78 */	mr r4, r28
/* 802E4D74 002E09D4  98 03 00 00 */	stb r0, 0(r3)
/* 802E4D78 002E09D8  38 A0 00 06 */	li r5, 6
/* 802E4D7C 002E09DC  38 63 00 02 */	addi r3, r3, 2
/* 802E4D80 002E09E0  4B D1 F2 81 */	bl memcpy
/* 802E4D84 002E09E4  B3 BE 00 22 */	sth r29, 0x22(r30)
/* 802E4D88 002E09E8  7F 83 E3 78 */	mr r3, r28
/* 802E4D8C 002E09EC  7F E4 FB 78 */	mr r4, r31
/* 802E4D90 002E09F0  7F A5 EB 78 */	mr r5, r29
/* 802E4D94 002E09F4  38 C0 00 00 */	li r6, 0
/* 802E4D98 002E09F8  38 E0 00 00 */	li r7, 0
/* 802E4D9C 002E09FC  4B FF 0E F5 */	bl L2CA_ConnectRsp
/* 802E4DA0 002E0A00  3F E0 80 57 */	lis r31, lbl_8056C840@ha
/* 802E4DA4 002E0A04  7F A3 EB 78 */	mr r3, r29
/* 802E4DA8 002E0A08  38 9F C8 40 */	addi r4, r31, lbl_8056C840@l
/* 802E4DAC 002E0A0C  4B FF 10 75 */	bl L2CA_ConfigReq
/* 802E4DB0 002E0A10  38 7F C8 40 */	addi r3, r31, -14272
/* 802E4DB4 002E0A14  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E4DB8 002E0A18  28 00 00 04 */	cmplwi r0, 4
/* 802E4DBC 002E0A1C  41 80 00 1C */	blt lbl_802E4DD8
/* 802E4DC0 002E0A20  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E4DC4 002E0A24  3C 80 80 44 */	lis r4, lbl_80445220@ha
/* 802E4DC8 002E0A28  A0 BE 00 22 */	lhz r5, 0x22(r30)
/* 802E4DCC 002E0A2C  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E4DD0 002E0A30  38 84 52 20 */	addi r4, r4, lbl_80445220@l
/* 802E4DD4 002E0A34  4B FD 81 55 */	bl LogMsg_1
lbl_802E4DD8:
/* 802E4DD8 002E0A38  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E4DDC 002E0A3C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E4DE0 002E0A40  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E4DE4 002E0A44  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E4DE8 002E0A48  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802E4DEC 002E0A4C  7C 08 03 A6 */	mtlr r0
/* 802E4DF0 002E0A50  38 21 00 20 */	addi r1, r1, 0x20
/* 802E4DF4 002E0A54  4E 80 00 20 */	blr

sdp_connect_cfm:
/* 802E4DF8 002E0A58  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E4DFC 002E0A5C  7C 08 02 A6 */	mflr r0
/* 802E4E00 002E0A60  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E4E04 002E0A64  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E4E08 002E0A68  7C 9F 23 78 */	mr r31, r4
/* 802E4E0C 002E0A6C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E4E10 002E0A70  3F C0 80 44 */	lis r30, lbl_804451A8@ha
/* 802E4E14 002E0A74  3B DE 51 A8 */	addi r30, r30, lbl_804451A8@l
/* 802E4E18 002E0A78  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E4E1C 002E0A7C  93 81 00 10 */	stw r28, 0x10(r1)
/* 802E4E20 002E0A80  7C 7C 1B 78 */	mr r28, r3
/* 802E4E24 002E0A84  48 00 15 ED */	bl sdpu_find_ccb_by_cid
/* 802E4E28 002E0A88  2C 03 00 00 */	cmpwi r3, 0
/* 802E4E2C 002E0A8C  7C 7D 1B 78 */	mr r29, r3
/* 802E4E30 002E0A90  40 82 00 30 */	bne lbl_802E4E60
/* 802E4E34 002E0A94  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E4E38 002E0A98  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E4E3C 002E0A9C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E4E40 002E0AA0  28 00 00 02 */	cmplwi r0, 2
/* 802E4E44 002E0AA4  41 80 01 24 */	blt lbl_802E4F68
/* 802E4E48 002E0AA8  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E4E4C 002E0AAC  7F 85 E3 78 */	mr r5, r28
/* 802E4E50 002E0AB0  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E4E54 002E0AB4  38 9E 00 B0 */	addi r4, r30, 0xb0
/* 802E4E58 002E0AB8  4B FD 80 D1 */	bl LogMsg_1
/* 802E4E5C 002E0ABC  48 00 01 0C */	b lbl_802E4F68
lbl_802E4E60:
/* 802E4E60 002E0AC0  2C 1F 00 00 */	cmpwi r31, 0
/* 802E4E64 002E0AC4  40 82 00 50 */	bne lbl_802E4EB4
/* 802E4E68 002E0AC8  88 03 00 00 */	lbz r0, 0(r3)
/* 802E4E6C 002E0ACC  28 00 00 01 */	cmplwi r0, 1
/* 802E4E70 002E0AD0  40 82 00 44 */	bne lbl_802E4EB4
/* 802E4E74 002E0AD4  38 00 00 02 */	li r0, 2
/* 802E4E78 002E0AD8  3F E0 80 57 */	lis r31, lbl_8056C840@ha
/* 802E4E7C 002E0ADC  98 03 00 00 */	stb r0, 0(r3)
/* 802E4E80 002E0AE0  7F 83 E3 78 */	mr r3, r28
/* 802E4E84 002E0AE4  38 9F C8 40 */	addi r4, r31, lbl_8056C840@l
/* 802E4E88 002E0AE8  4B FF 0F 99 */	bl L2CA_ConfigReq
/* 802E4E8C 002E0AEC  38 7F C8 40 */	addi r3, r31, -14272
/* 802E4E90 002E0AF0  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E4E94 002E0AF4  28 00 00 04 */	cmplwi r0, 4
/* 802E4E98 002E0AF8  41 80 00 D0 */	blt lbl_802E4F68
/* 802E4E9C 002E0AFC  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E4EA0 002E0B00  A0 BD 00 22 */	lhz r5, 0x22(r29)
/* 802E4EA4 002E0B04  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E4EA8 002E0B08  38 9E 00 DC */	addi r4, r30, 0xdc
/* 802E4EAC 002E0B0C  4B FD 80 7D */	bl LogMsg_1
/* 802E4EB0 002E0B10  48 00 00 B8 */	b lbl_802E4F68
lbl_802E4EB4:
/* 802E4EB4 002E0B14  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E4EB8 002E0B18  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E4EBC 002E0B1C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E4EC0 002E0B20  28 00 00 02 */	cmplwi r0, 2
/* 802E4EC4 002E0B24  41 80 00 1C */	blt lbl_802E4EE0
/* 802E4EC8 002E0B28  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E4ECC 002E0B2C  A0 DD 00 22 */	lhz r6, 0x22(r29)
/* 802E4ED0 002E0B30  7F E5 FB 78 */	mr r5, r31
/* 802E4ED4 002E0B34  38 9E 01 08 */	addi r4, r30, 0x108
/* 802E4ED8 002E0B38  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E4EDC 002E0B3C  4B FD 80 65 */	bl LogMsg_2
lbl_802E4EE0:
/* 802E4EE0 002E0B40  81 9D 04 14 */	lwz r12, 0x414(r29)
/* 802E4EE4 002E0B44  2C 0C 00 00 */	cmpwi r12, 0
/* 802E4EE8 002E0B48  41 82 00 78 */	beq lbl_802E4F60
/* 802E4EEC 002E0B4C  28 1F 00 0E */	cmplwi r31, 0xe
/* 802E4EF0 002E0B50  41 82 00 24 */	beq lbl_802E4F14
/* 802E4EF4 002E0B54  28 1F 00 05 */	cmplwi r31, 5
/* 802E4EF8 002E0B58  41 82 00 1C */	beq lbl_802E4F14
/* 802E4EFC 002E0B5C  28 1F 00 18 */	cmplwi r31, 0x18
/* 802E4F00 002E0B60  41 82 00 14 */	beq lbl_802E4F14
/* 802E4F04 002E0B64  28 1F 00 29 */	cmplwi r31, 0x29
/* 802E4F08 002E0B68  41 82 00 0C */	beq lbl_802E4F14
/* 802E4F0C 002E0B6C  28 1F 00 06 */	cmplwi r31, 6
/* 802E4F10 002E0B70  40 82 00 1C */	bne lbl_802E4F2C
lbl_802E4F14:
/* 802E4F14 002E0B74  3C 60 00 01 */	lis r3, 0x0000FFF6@ha
/* 802E4F18 002E0B78  38 03 FF F6 */	addi r0, r3, 0x0000FFF6@l
/* 802E4F1C 002E0B7C  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E4F20 002E0B80  7D 89 03 A6 */	mtctr r12
/* 802E4F24 002E0B84  4E 80 04 21 */	bctrl
/* 802E4F28 002E0B88  48 00 00 38 */	b lbl_802E4F60
lbl_802E4F2C:
/* 802E4F2C 002E0B8C  28 1F 00 0F */	cmplwi r31, 0xf
/* 802E4F30 002E0B90  40 82 00 1C */	bne lbl_802E4F4C
/* 802E4F34 002E0B94  3C 60 00 01 */	lis r3, 0x0000FFF7@ha
/* 802E4F38 002E0B98  38 03 FF F7 */	addi r0, r3, 0x0000FFF7@l
/* 802E4F3C 002E0B9C  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E4F40 002E0BA0  7D 89 03 A6 */	mtctr r12
/* 802E4F44 002E0BA4  4E 80 04 21 */	bctrl
/* 802E4F48 002E0BA8  48 00 00 18 */	b lbl_802E4F60
lbl_802E4F4C:
/* 802E4F4C 002E0BAC  3C 60 00 01 */	lis r3, 0x0000FFF1@ha
/* 802E4F50 002E0BB0  38 03 FF F1 */	addi r0, r3, 0x0000FFF1@l
/* 802E4F54 002E0BB4  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E4F58 002E0BB8  7D 89 03 A6 */	mtctr r12
/* 802E4F5C 002E0BBC  4E 80 04 21 */	bctrl
lbl_802E4F60:
/* 802E4F60 002E0BC0  7F A3 EB 78 */	mr r3, r29
/* 802E4F64 002E0BC4  48 00 15 B1 */	bl sdpu_release_ccb
lbl_802E4F68:
/* 802E4F68 002E0BC8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E4F6C 002E0BCC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E4F70 002E0BD0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E4F74 002E0BD4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E4F78 002E0BD8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802E4F7C 002E0BDC  7C 08 03 A6 */	mtlr r0
/* 802E4F80 002E0BE0  38 21 00 20 */	addi r1, r1, 0x20
/* 802E4F84 002E0BE4  4E 80 00 20 */	blr

sdp_config_ind:
/* 802E4F88 002E0BE8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E4F8C 002E0BEC  7C 08 02 A6 */	mflr r0
/* 802E4F90 002E0BF0  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E4F94 002E0BF4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E4F98 002E0BF8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E4F9C 002E0BFC  7C 9E 23 78 */	mr r30, r4
/* 802E4FA0 002E0C00  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E4FA4 002E0C04  7C 7D 1B 78 */	mr r29, r3
/* 802E4FA8 002E0C08  48 00 14 69 */	bl sdpu_find_ccb_by_cid
/* 802E4FAC 002E0C0C  2C 03 00 00 */	cmpwi r3, 0
/* 802E4FB0 002E0C10  7C 7F 1B 78 */	mr r31, r3
/* 802E4FB4 002E0C14  40 82 00 34 */	bne lbl_802E4FE8
/* 802E4FB8 002E0C18  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E4FBC 002E0C1C  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E4FC0 002E0C20  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E4FC4 002E0C24  28 00 00 02 */	cmplwi r0, 2
/* 802E4FC8 002E0C28  41 80 00 E0 */	blt lbl_802E50A8
/* 802E4FCC 002E0C2C  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E4FD0 002E0C30  3C 80 80 44 */	lis r4, lbl_804452E0@ha
/* 802E4FD4 002E0C34  7F A5 EB 78 */	mr r5, r29
/* 802E4FD8 002E0C38  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E4FDC 002E0C3C  38 84 52 E0 */	addi r4, r4, lbl_804452E0@l
/* 802E4FE0 002E0C40  4B FD 7F 49 */	bl LogMsg_1
/* 802E4FE4 002E0C44  48 00 00 C4 */	b lbl_802E50A8
lbl_802E4FE8:
/* 802E4FE8 002E0C48  88 1E 00 02 */	lbz r0, 2(r30)
/* 802E4FEC 002E0C4C  2C 00 00 00 */	cmpwi r0, 0
/* 802E4FF0 002E0C50  40 82 00 10 */	bne lbl_802E5000
/* 802E4FF4 002E0C54  38 00 01 00 */	li r0, 0x100
/* 802E4FF8 002E0C58  B0 03 00 20 */	sth r0, 0x20(r3)
/* 802E4FFC 002E0C5C  48 00 00 20 */	b lbl_802E501C
lbl_802E5000:
/* 802E5000 002E0C60  A0 1E 00 04 */	lhz r0, 4(r30)
/* 802E5004 002E0C64  28 00 01 00 */	cmplwi r0, 0x100
/* 802E5008 002E0C68  40 81 00 10 */	ble lbl_802E5018
/* 802E500C 002E0C6C  38 00 01 00 */	li r0, 0x100
/* 802E5010 002E0C70  B0 03 00 20 */	sth r0, 0x20(r3)
/* 802E5014 002E0C74  48 00 00 08 */	b lbl_802E501C
lbl_802E5018:
/* 802E5018 002E0C78  B0 03 00 20 */	sth r0, 0x20(r3)
lbl_802E501C:
/* 802E501C 002E0C7C  38 00 00 00 */	li r0, 0
/* 802E5020 002E0C80  7F A3 EB 78 */	mr r3, r29
/* 802E5024 002E0C84  98 1E 00 20 */	stb r0, 0x20(r30)
/* 802E5028 002E0C88  7F C4 F3 78 */	mr r4, r30
/* 802E502C 002E0C8C  98 1E 00 02 */	stb r0, 2(r30)
/* 802E5030 002E0C90  B0 1E 00 00 */	sth r0, 0(r30)
/* 802E5034 002E0C94  4B FF 0E A5 */	bl L2CA_ConfigRsp
/* 802E5038 002E0C98  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E503C 002E0C9C  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5040 002E0CA0  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E5044 002E0CA4  28 00 00 04 */	cmplwi r0, 4
/* 802E5048 002E0CA8  41 80 00 1C */	blt lbl_802E5064
/* 802E504C 002E0CAC  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E5050 002E0CB0  3C 80 80 44 */	lis r4, lbl_8044530C@ha
/* 802E5054 002E0CB4  7F A5 EB 78 */	mr r5, r29
/* 802E5058 002E0CB8  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E505C 002E0CBC  38 84 53 0C */	addi r4, r4, lbl_8044530C@l
/* 802E5060 002E0CC0  4B FD 7E C9 */	bl LogMsg_1
lbl_802E5064:
/* 802E5064 002E0CC4  88 1F 00 01 */	lbz r0, 1(r31)
/* 802E5068 002E0CC8  60 03 00 02 */	ori r3, r0, 2
/* 802E506C 002E0CCC  54 60 07 7B */	rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 802E5070 002E0CD0  98 7F 00 01 */	stb r3, 1(r31)
/* 802E5074 002E0CD4  41 82 00 34 */	beq lbl_802E50A8
/* 802E5078 002E0CD8  38 00 00 03 */	li r0, 3
/* 802E507C 002E0CDC  98 1F 00 00 */	stb r0, 0(r31)
/* 802E5080 002E0CE0  88 1F 00 01 */	lbz r0, 1(r31)
/* 802E5084 002E0CE4  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 802E5088 002E0CE8  41 82 00 10 */	beq lbl_802E5098
/* 802E508C 002E0CEC  7F E3 FB 78 */	mr r3, r31
/* 802E5090 002E0CF0  4B FF EA A9 */	bl sdp_disc_connected
/* 802E5094 002E0CF4  48 00 00 14 */	b lbl_802E50A8
lbl_802E5098:
/* 802E5098 002E0CF8  38 7F 00 08 */	addi r3, r31, 8
/* 802E509C 002E0CFC  38 80 00 05 */	li r4, 5
/* 802E50A0 002E0D00  38 A0 00 1E */	li r5, 0x1e
/* 802E50A4 002E0D04  4B FD 84 39 */	bl btu_start_timer
lbl_802E50A8:
/* 802E50A8 002E0D08  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E50AC 002E0D0C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E50B0 002E0D10  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E50B4 002E0D14  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E50B8 002E0D18  7C 08 03 A6 */	mtlr r0
/* 802E50BC 002E0D1C  38 21 00 20 */	addi r1, r1, 0x20
/* 802E50C0 002E0D20  4E 80 00 20 */	blr

sdp_config_cfm:
/* 802E50C4 002E0D24  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E50C8 002E0D28  7C 08 02 A6 */	mflr r0
/* 802E50CC 002E0D2C  3C A0 80 57 */	lis r5, lbl_8056C840@ha
/* 802E50D0 002E0D30  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E50D4 002E0D34  38 A5 C8 40 */	addi r5, r5, lbl_8056C840@l
/* 802E50D8 002E0D38  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E50DC 002E0D3C  3F E0 80 44 */	lis r31, lbl_804451A8@ha
/* 802E50E0 002E0D40  3B FF 51 A8 */	addi r31, r31, lbl_804451A8@l
/* 802E50E4 002E0D44  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E50E8 002E0D48  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E50EC 002E0D4C  7C 9D 23 78 */	mr r29, r4
/* 802E50F0 002E0D50  93 81 00 10 */	stw r28, 0x10(r1)
/* 802E50F4 002E0D54  7C 7C 1B 78 */	mr r28, r3
/* 802E50F8 002E0D58  88 05 46 30 */	lbz r0, 0x4630(r5)
/* 802E50FC 002E0D5C  28 00 00 04 */	cmplwi r0, 4
/* 802E5100 002E0D60  41 80 00 1C */	blt lbl_802E511C
/* 802E5104 002E0D64  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E5108 002E0D68  A0 DD 00 00 */	lhz r6, 0(r29)
/* 802E510C 002E0D6C  7F 85 E3 78 */	mr r5, r28
/* 802E5110 002E0D70  38 9F 01 90 */	addi r4, r31, 0x190
/* 802E5114 002E0D74  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E5118 002E0D78  4B FD 7E 29 */	bl LogMsg_2
lbl_802E511C:
/* 802E511C 002E0D7C  7F 83 E3 78 */	mr r3, r28
/* 802E5120 002E0D80  48 00 12 F1 */	bl sdpu_find_ccb_by_cid
/* 802E5124 002E0D84  2C 03 00 00 */	cmpwi r3, 0
/* 802E5128 002E0D88  7C 7E 1B 78 */	mr r30, r3
/* 802E512C 002E0D8C  40 82 00 30 */	bne lbl_802E515C
/* 802E5130 002E0D90  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5134 002E0D94  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5138 002E0D98  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E513C 002E0D9C  28 00 00 02 */	cmplwi r0, 2
/* 802E5140 002E0DA0  41 80 00 E0 */	blt lbl_802E5220
/* 802E5144 002E0DA4  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E5148 002E0DA8  7F 85 E3 78 */	mr r5, r28
/* 802E514C 002E0DAC  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E5150 002E0DB0  38 9F 01 38 */	addi r4, r31, 0x138
/* 802E5154 002E0DB4  4B FD 7D D5 */	bl LogMsg_1
/* 802E5158 002E0DB8  48 00 00 C8 */	b lbl_802E5220
lbl_802E515C:
/* 802E515C 002E0DBC  A0 1D 00 00 */	lhz r0, 0(r29)
/* 802E5160 002E0DC0  2C 00 00 00 */	cmpwi r0, 0
/* 802E5164 002E0DC4  40 82 00 48 */	bne lbl_802E51AC
/* 802E5168 002E0DC8  88 03 00 01 */	lbz r0, 1(r3)
/* 802E516C 002E0DCC  60 04 00 04 */	ori r4, r0, 4
/* 802E5170 002E0DD0  54 80 07 BD */	rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 802E5174 002E0DD4  98 83 00 01 */	stb r4, 1(r3)
/* 802E5178 002E0DD8  41 82 00 A8 */	beq lbl_802E5220
/* 802E517C 002E0DDC  38 00 00 03 */	li r0, 3
/* 802E5180 002E0DE0  98 03 00 00 */	stb r0, 0(r3)
/* 802E5184 002E0DE4  88 03 00 01 */	lbz r0, 1(r3)
/* 802E5188 002E0DE8  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 802E518C 002E0DEC  41 82 00 0C */	beq lbl_802E5198
/* 802E5190 002E0DF0  4B FF E9 A9 */	bl sdp_disc_connected
/* 802E5194 002E0DF4  48 00 00 8C */	b lbl_802E5220
lbl_802E5198:
/* 802E5198 002E0DF8  38 80 00 05 */	li r4, 5
/* 802E519C 002E0DFC  38 A0 00 1E */	li r5, 0x1e
/* 802E51A0 002E0E00  38 63 00 08 */	addi r3, r3, 8
/* 802E51A4 002E0E04  4B FD 83 39 */	bl btu_start_timer
/* 802E51A8 002E0E08  48 00 00 78 */	b lbl_802E5220
lbl_802E51AC:
/* 802E51AC 002E0E0C  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E51B0 002E0E10  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E51B4 002E0E14  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E51B8 002E0E18  28 00 00 04 */	cmplwi r0, 4
/* 802E51BC 002E0E1C  41 80 00 18 */	blt lbl_802E51D4
/* 802E51C0 002E0E20  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E51C4 002E0E24  A0 BE 00 22 */	lhz r5, 0x22(r30)
/* 802E51C8 002E0E28  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E51CC 002E0E2C  38 9F 01 BC */	addi r4, r31, 0x1bc
/* 802E51D0 002E0E30  4B FD 7D 59 */	bl LogMsg_1
lbl_802E51D4:
/* 802E51D4 002E0E34  88 1E 00 00 */	lbz r0, 0(r30)
/* 802E51D8 002E0E38  28 00 00 01 */	cmplwi r0, 1
/* 802E51DC 002E0E3C  41 82 00 1C */	beq lbl_802E51F8
/* 802E51E0 002E0E40  A0 7E 00 22 */	lhz r3, 0x22(r30)
/* 802E51E4 002E0E44  4B FF 0D C5 */	bl L2CA_DisconnectReq
/* 802E51E8 002E0E48  3C 60 00 01 */	lis r3, 0x0000FFF2@ha
/* 802E51EC 002E0E4C  38 03 FF F2 */	addi r0, r3, 0x0000FFF2@l
/* 802E51F0 002E0E50  B0 1E 04 72 */	sth r0, 0x472(r30)
/* 802E51F4 002E0E54  48 00 00 2C */	b lbl_802E5220
lbl_802E51F8:
/* 802E51F8 002E0E58  81 9E 04 14 */	lwz r12, 0x414(r30)
/* 802E51FC 002E0E5C  2C 0C 00 00 */	cmpwi r12, 0
/* 802E5200 002E0E60  41 82 00 18 */	beq lbl_802E5218
/* 802E5204 002E0E64  3C 60 00 01 */	lis r3, 0x0000FFF2@ha
/* 802E5208 002E0E68  38 03 FF F2 */	addi r0, r3, 0x0000FFF2@l
/* 802E520C 002E0E6C  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E5210 002E0E70  7D 89 03 A6 */	mtctr r12
/* 802E5214 002E0E74  4E 80 04 21 */	bctrl
lbl_802E5218:
/* 802E5218 002E0E78  7F C3 F3 78 */	mr r3, r30
/* 802E521C 002E0E7C  48 00 12 F9 */	bl sdpu_release_ccb
lbl_802E5220:
/* 802E5220 002E0E80  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E5224 002E0E84  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E5228 002E0E88  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E522C 002E0E8C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E5230 002E0E90  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802E5234 002E0E94  7C 08 03 A6 */	mtlr r0
/* 802E5238 002E0E98  38 21 00 20 */	addi r1, r1, 0x20
/* 802E523C 002E0E9C  4E 80 00 20 */	blr

sdp_disconnect_ind:
/* 802E5240 002E0EA0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E5244 002E0EA4  7C 08 02 A6 */	mflr r0
/* 802E5248 002E0EA8  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E524C 002E0EAC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E5250 002E0EB0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E5254 002E0EB4  7C 9E 23 78 */	mr r30, r4
/* 802E5258 002E0EB8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E525C 002E0EBC  7C 7D 1B 78 */	mr r29, r3
/* 802E5260 002E0EC0  48 00 11 B1 */	bl sdpu_find_ccb_by_cid
/* 802E5264 002E0EC4  2C 03 00 00 */	cmpwi r3, 0
/* 802E5268 002E0EC8  7C 7F 1B 78 */	mr r31, r3
/* 802E526C 002E0ECC  40 82 00 34 */	bne lbl_802E52A0
/* 802E5270 002E0ED0  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5274 002E0ED4  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5278 002E0ED8  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E527C 002E0EDC  28 00 00 02 */	cmplwi r0, 2
/* 802E5280 002E0EE0  41 80 00 9C */	blt lbl_802E531C
/* 802E5284 002E0EE4  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E5288 002E0EE8  3C 80 80 44 */	lis r4, lbl_80445380@ha
/* 802E528C 002E0EEC  7F A5 EB 78 */	mr r5, r29
/* 802E5290 002E0EF0  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E5294 002E0EF4  38 84 53 80 */	addi r4, r4, lbl_80445380@l
/* 802E5298 002E0EF8  4B FD 7C 91 */	bl LogMsg_1
/* 802E529C 002E0EFC  48 00 00 80 */	b lbl_802E531C
lbl_802E52A0:
/* 802E52A0 002E0F00  2C 1E 00 00 */	cmpwi r30, 0
/* 802E52A4 002E0F04  41 82 00 0C */	beq lbl_802E52B0
/* 802E52A8 002E0F08  7F A3 EB 78 */	mr r3, r29
/* 802E52AC 002E0F0C  4B FF 0D A1 */	bl L2CA_DisconnectRsp
lbl_802E52B0:
/* 802E52B0 002E0F10  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E52B4 002E0F14  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E52B8 002E0F18  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E52BC 002E0F1C  28 00 00 04 */	cmplwi r0, 4
/* 802E52C0 002E0F20  41 80 00 1C */	blt lbl_802E52DC
/* 802E52C4 002E0F24  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E52C8 002E0F28  3C 80 80 44 */	lis r4, lbl_804453AC@ha
/* 802E52CC 002E0F2C  7F A5 EB 78 */	mr r5, r29
/* 802E52D0 002E0F30  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E52D4 002E0F34  38 84 53 AC */	addi r4, r4, lbl_804453AC@l
/* 802E52D8 002E0F38  4B FD 7C 51 */	bl LogMsg_1
lbl_802E52DC:
/* 802E52DC 002E0F3C  81 9F 04 14 */	lwz r12, 0x414(r31)
/* 802E52E0 002E0F40  2C 0C 00 00 */	cmpwi r12, 0
/* 802E52E4 002E0F44  41 82 00 30 */	beq lbl_802E5314
/* 802E52E8 002E0F48  88 BF 00 00 */	lbz r5, 0(r31)
/* 802E52EC 002E0F4C  3C 60 00 01 */	lis r3, 0x0000FFF1@ha
/* 802E52F0 002E0F50  38 03 FF F1 */	addi r0, r3, 0x0000FFF1@l
/* 802E52F4 002E0F54  38 85 FF FD */	addi r4, r5, -3
/* 802E52F8 002E0F58  20 65 00 03 */	subfic r3, r5, 3
/* 802E52FC 002E0F5C  7C 83 18 F8 */	nor r3, r4, r3
/* 802E5300 002E0F60  7C 63 FE 70 */	srawi r3, r3, 0x1f
/* 802E5304 002E0F64  7C 00 18 78 */	andc r0, r0, r3
/* 802E5308 002E0F68  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E530C 002E0F6C  7D 89 03 A6 */	mtctr r12
/* 802E5310 002E0F70  4E 80 04 21 */	bctrl
lbl_802E5314:
/* 802E5314 002E0F74  7F E3 FB 78 */	mr r3, r31
/* 802E5318 002E0F78  48 00 11 FD */	bl sdpu_release_ccb
lbl_802E531C:
/* 802E531C 002E0F7C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E5320 002E0F80  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E5324 002E0F84  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E5328 002E0F88  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E532C 002E0F8C  7C 08 03 A6 */	mtlr r0
/* 802E5330 002E0F90  38 21 00 20 */	addi r1, r1, 0x20
/* 802E5334 002E0F94  4E 80 00 20 */	blr

sdp_data_ind:
/* 802E5338 002E0F98  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E533C 002E0F9C  7C 08 02 A6 */	mflr r0
/* 802E5340 002E0FA0  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E5344 002E0FA4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E5348 002E0FA8  7C 9F 23 78 */	mr r31, r4
/* 802E534C 002E0FAC  93 C1 00 08 */	stw r30, 8(r1)
/* 802E5350 002E0FB0  7C 7E 1B 78 */	mr r30, r3
/* 802E5354 002E0FB4  48 00 10 BD */	bl sdpu_find_ccb_by_cid
/* 802E5358 002E0FB8  2C 03 00 00 */	cmpwi r3, 0
/* 802E535C 002E0FBC  41 82 00 64 */	beq lbl_802E53C0
/* 802E5360 002E0FC0  88 A3 00 00 */	lbz r5, 0(r3)
/* 802E5364 002E0FC4  28 05 00 03 */	cmplwi r5, 3
/* 802E5368 002E0FC8  40 82 00 28 */	bne lbl_802E5390
/* 802E536C 002E0FCC  88 03 00 01 */	lbz r0, 1(r3)
/* 802E5370 002E0FD0  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 802E5374 002E0FD4  41 82 00 10 */	beq lbl_802E5384
/* 802E5378 002E0FD8  7F E4 FB 78 */	mr r4, r31
/* 802E537C 002E0FDC  4B FF E7 F1 */	bl sdp_disc_server_rsp
/* 802E5380 002E0FE0  48 00 00 6C */	b lbl_802E53EC
lbl_802E5384:
/* 802E5384 002E0FE4  7F E4 FB 78 */	mr r4, r31
/* 802E5388 002E0FE8  48 00 03 79 */	bl sdp_server_handle_client_req
/* 802E538C 002E0FEC  48 00 00 60 */	b lbl_802E53EC
lbl_802E5390:
/* 802E5390 002E0FF0  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5394 002E0FF4  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5398 002E0FF8  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E539C 002E0FFC  28 00 00 02 */	cmplwi r0, 2
/* 802E53A0 002E1000  41 80 00 4C */	blt lbl_802E53EC
/* 802E53A4 002E1004  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E53A8 002E1008  3C 80 80 44 */	lis r4, lbl_804453D0@ha
/* 802E53AC 002E100C  7F C6 F3 78 */	mr r6, r30
/* 802E53B0 002E1010  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E53B4 002E1014  38 84 53 D0 */	addi r4, r4, lbl_804453D0@l
/* 802E53B8 002E1018  4B FD 7B 89 */	bl LogMsg_2
/* 802E53BC 002E101C  48 00 00 30 */	b lbl_802E53EC
lbl_802E53C0:
/* 802E53C0 002E1020  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E53C4 002E1024  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E53C8 002E1028  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E53CC 002E102C  28 00 00 02 */	cmplwi r0, 2
/* 802E53D0 002E1030  41 80 00 1C */	blt lbl_802E53EC
/* 802E53D4 002E1034  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E53D8 002E1038  3C 80 80 44 */	lis r4, lbl_80445408@ha
/* 802E53DC 002E103C  7F C5 F3 78 */	mr r5, r30
/* 802E53E0 002E1040  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E53E4 002E1044  38 84 54 08 */	addi r4, r4, lbl_80445408@l
/* 802E53E8 002E1048  4B FD 7B 41 */	bl LogMsg_1
lbl_802E53EC:
/* 802E53EC 002E104C  7F E3 FB 78 */	mr r3, r31
/* 802E53F0 002E1050  4B FD 49 45 */	bl GKI_freebuf
/* 802E53F4 002E1054  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E53F8 002E1058  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E53FC 002E105C  83 C1 00 08 */	lwz r30, 8(r1)
/* 802E5400 002E1060  7C 08 03 A6 */	mtlr r0
/* 802E5404 002E1064  38 21 00 10 */	addi r1, r1, 0x10
/* 802E5408 002E1068  4E 80 00 20 */	blr

.global sdp_conn_originate
sdp_conn_originate:
/* 802E540C 002E106C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802E5410 002E1070  7C 08 02 A6 */	mflr r0
/* 802E5414 002E1074  90 01 00 24 */	stw r0, 0x24(r1)
/* 802E5418 002E1078  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802E541C 002E107C  3F E0 80 44 */	lis r31, lbl_804451A8@ha
/* 802E5420 002E1080  3B FF 51 A8 */	addi r31, r31, lbl_804451A8@l
/* 802E5424 002E1084  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802E5428 002E1088  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802E542C 002E108C  7C 7D 1B 78 */	mr r29, r3
/* 802E5430 002E1090  48 00 10 71 */	bl sdpu_allocate_ccb
/* 802E5434 002E1094  2C 03 00 00 */	cmpwi r3, 0
/* 802E5438 002E1098  7C 7E 1B 78 */	mr r30, r3
/* 802E543C 002E109C  40 82 00 30 */	bne lbl_802E546C
/* 802E5440 002E10A0  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5444 002E10A4  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5448 002E10A8  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E544C 002E10AC  28 00 00 02 */	cmplwi r0, 2
/* 802E5450 002E10B0  41 80 00 14 */	blt lbl_802E5464
/* 802E5454 002E10B4  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E5458 002E10B8  38 9F 02 8C */	addi r4, r31, 0x28c
/* 802E545C 002E10BC  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E5460 002E10C0  4B FD 7A B1 */	bl LogMsg_0
lbl_802E5464:
/* 802E5464 002E10C4  38 60 00 00 */	li r3, 0
/* 802E5468 002E10C8  48 00 00 9C */	b lbl_802E5504
lbl_802E546C:
/* 802E546C 002E10CC  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5470 002E10D0  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E5474 002E10D4  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E5478 002E10D8  28 00 00 04 */	cmplwi r0, 4
/* 802E547C 002E10DC  41 80 00 14 */	blt lbl_802E5490
/* 802E5480 002E10E0  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E5484 002E10E4  38 9F 02 A8 */	addi r4, r31, 0x2a8
/* 802E5488 002E10E8  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E548C 002E10EC  4B FD 7A 85 */	bl LogMsg_0
lbl_802E5490:
/* 802E5490 002E10F0  88 1E 00 01 */	lbz r0, 1(r30)
/* 802E5494 002E10F4  7F A4 EB 78 */	mr r4, r29
/* 802E5498 002E10F8  38 7E 00 02 */	addi r3, r30, 2
/* 802E549C 002E10FC  38 A0 00 06 */	li r5, 6
/* 802E54A0 002E1100  60 00 00 01 */	ori r0, r0, 1
/* 802E54A4 002E1104  98 1E 00 01 */	stb r0, 1(r30)
/* 802E54A8 002E1108  4B D1 EB 59 */	bl memcpy
/* 802E54AC 002E110C  38 00 00 01 */	li r0, 1
/* 802E54B0 002E1110  7F A4 EB 78 */	mr r4, r29
/* 802E54B4 002E1114  98 1E 00 00 */	stb r0, 0(r30)
/* 802E54B8 002E1118  38 60 00 01 */	li r3, 1
/* 802E54BC 002E111C  4B FF 05 A1 */	bl L2CA_ConnectReq
/* 802E54C0 002E1120  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 802E54C4 002E1124  41 82 00 10 */	beq lbl_802E54D4
/* 802E54C8 002E1128  B0 7E 00 22 */	sth r3, 0x22(r30)
/* 802E54CC 002E112C  7F C3 F3 78 */	mr r3, r30
/* 802E54D0 002E1130  48 00 00 34 */	b lbl_802E5504
lbl_802E54D4:
/* 802E54D4 002E1134  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E54D8 002E1138  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E54DC 002E113C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E54E0 002E1140  28 00 00 02 */	cmplwi r0, 2
/* 802E54E4 002E1144  41 80 00 14 */	blt lbl_802E54F8
/* 802E54E8 002E1148  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E54EC 002E114C  38 9F 02 C0 */	addi r4, r31, 0x2c0
/* 802E54F0 002E1150  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E54F4 002E1154  4B FD 7A 1D */	bl LogMsg_0
lbl_802E54F8:
/* 802E54F8 002E1158  7F C3 F3 78 */	mr r3, r30
/* 802E54FC 002E115C  48 00 10 19 */	bl sdpu_release_ccb
/* 802E5500 002E1160  38 60 00 00 */	li r3, 0
lbl_802E5504:
/* 802E5504 002E1164  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802E5508 002E1168  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802E550C 002E116C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802E5510 002E1170  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802E5514 002E1174  7C 08 03 A6 */	mtlr r0
/* 802E5518 002E1178  38 21 00 20 */	addi r1, r1, 0x20
/* 802E551C 002E117C  4E 80 00 20 */	blr

.global sdp_disconnect
sdp_disconnect:
/* 802E5520 002E1180  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E5524 002E1184  7C 08 02 A6 */	mflr r0
/* 802E5528 002E1188  3C A0 80 57 */	lis r5, lbl_8056C840@ha
/* 802E552C 002E118C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E5530 002E1190  38 A5 C8 40 */	addi r5, r5, lbl_8056C840@l
/* 802E5534 002E1194  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E5538 002E1198  7C 9F 23 78 */	mr r31, r4
/* 802E553C 002E119C  93 C1 00 08 */	stw r30, 8(r1)
/* 802E5540 002E11A0  7C 7E 1B 78 */	mr r30, r3
/* 802E5544 002E11A4  88 05 46 30 */	lbz r0, 0x4630(r5)
/* 802E5548 002E11A8  28 00 00 04 */	cmplwi r0, 4
/* 802E554C 002E11AC  41 80 00 1C */	blt lbl_802E5568
/* 802E5550 002E11B0  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E5554 002E11B4  3C 80 80 44 */	lis r4, lbl_80445364@ha
/* 802E5558 002E11B8  A0 BE 00 22 */	lhz r5, 0x22(r30)
/* 802E555C 002E11BC  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E5560 002E11C0  38 84 53 64 */	addi r4, r4, lbl_80445364@l
/* 802E5564 002E11C4  4B FD 79 C5 */	bl LogMsg_1
lbl_802E5568:
/* 802E5568 002E11C8  88 1E 00 00 */	lbz r0, 0(r30)
/* 802E556C 002E11CC  28 00 00 01 */	cmplwi r0, 1
/* 802E5570 002E11D0  41 82 00 14 */	beq lbl_802E5584
/* 802E5574 002E11D4  A0 7E 00 22 */	lhz r3, 0x22(r30)
/* 802E5578 002E11D8  4B FF 0A 31 */	bl L2CA_DisconnectReq
/* 802E557C 002E11DC  B3 FE 04 72 */	sth r31, 0x472(r30)
/* 802E5580 002E11E0  48 00 00 24 */	b lbl_802E55A4
lbl_802E5584:
/* 802E5584 002E11E4  81 9E 04 14 */	lwz r12, 0x414(r30)
/* 802E5588 002E11E8  2C 0C 00 00 */	cmpwi r12, 0
/* 802E558C 002E11EC  41 82 00 10 */	beq lbl_802E559C
/* 802E5590 002E11F0  7F E3 FB 78 */	mr r3, r31
/* 802E5594 002E11F4  7D 89 03 A6 */	mtctr r12
/* 802E5598 002E11F8  4E 80 04 21 */	bctrl
lbl_802E559C:
/* 802E559C 002E11FC  7F C3 F3 78 */	mr r3, r30
/* 802E55A0 002E1200  48 00 0F 75 */	bl sdpu_release_ccb
lbl_802E55A4:
/* 802E55A4 002E1204  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E55A8 002E1208  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E55AC 002E120C  83 C1 00 08 */	lwz r30, 8(r1)
/* 802E55B0 002E1210  7C 08 03 A6 */	mtlr r0
/* 802E55B4 002E1214  38 21 00 10 */	addi r1, r1, 0x10
/* 802E55B8 002E1218  4E 80 00 20 */	blr

sdp_disconnect_cfm:
/* 802E55BC 002E121C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E55C0 002E1220  7C 08 02 A6 */	mflr r0
/* 802E55C4 002E1224  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E55C8 002E1228  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E55CC 002E122C  93 C1 00 08 */	stw r30, 8(r1)
/* 802E55D0 002E1230  7C 7E 1B 78 */	mr r30, r3
/* 802E55D4 002E1234  48 00 0E 3D */	bl sdpu_find_ccb_by_cid
/* 802E55D8 002E1238  2C 03 00 00 */	cmpwi r3, 0
/* 802E55DC 002E123C  7C 7F 1B 78 */	mr r31, r3
/* 802E55E0 002E1240  40 82 00 34 */	bne lbl_802E5614
/* 802E55E4 002E1244  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E55E8 002E1248  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E55EC 002E124C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E55F0 002E1250  28 00 00 02 */	cmplwi r0, 2
/* 802E55F4 002E1254  41 80 00 6C */	blt lbl_802E5660
/* 802E55F8 002E1258  3C 60 00 0A */	lis r3, 0x000A0001@ha
/* 802E55FC 002E125C  3C 80 80 44 */	lis r4, lbl_80445480@ha
/* 802E5600 002E1260  7F C5 F3 78 */	mr r5, r30
/* 802E5604 002E1264  38 63 00 01 */	addi r3, r3, 0x000A0001@l
/* 802E5608 002E1268  38 84 54 80 */	addi r4, r4, lbl_80445480@l
/* 802E560C 002E126C  4B FD 79 1D */	bl LogMsg_1
/* 802E5610 002E1270  48 00 00 50 */	b lbl_802E5660
lbl_802E5614:
/* 802E5614 002E1274  3C 60 80 57 */	lis r3, lbl_8056C840@ha
/* 802E5618 002E1278  38 63 C8 40 */	addi r3, r3, lbl_8056C840@l
/* 802E561C 002E127C  88 03 46 30 */	lbz r0, 0x4630(r3)
/* 802E5620 002E1280  28 00 00 04 */	cmplwi r0, 4
/* 802E5624 002E1284  41 80 00 1C */	blt lbl_802E5640
/* 802E5628 002E1288  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E562C 002E128C  3C 80 80 44 */	lis r4, lbl_804454B0@ha
/* 802E5630 002E1290  7F C5 F3 78 */	mr r5, r30
/* 802E5634 002E1294  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E5638 002E1298  38 84 54 B0 */	addi r4, r4, lbl_804454B0@l
/* 802E563C 002E129C  4B FD 78 ED */	bl LogMsg_1
lbl_802E5640:
/* 802E5640 002E12A0  81 9F 04 14 */	lwz r12, 0x414(r31)
/* 802E5644 002E12A4  2C 0C 00 00 */	cmpwi r12, 0
/* 802E5648 002E12A8  41 82 00 10 */	beq lbl_802E5658
/* 802E564C 002E12AC  A0 7F 04 72 */	lhz r3, 0x472(r31)
/* 802E5650 002E12B0  7D 89 03 A6 */	mtctr r12
/* 802E5654 002E12B4  4E 80 04 21 */	bctrl
lbl_802E5658:
/* 802E5658 002E12B8  7F E3 FB 78 */	mr r3, r31
/* 802E565C 002E12BC  48 00 0E B9 */	bl sdpu_release_ccb
lbl_802E5660:
/* 802E5660 002E12C0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E5664 002E12C4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E5668 002E12C8  83 C1 00 08 */	lwz r30, 8(r1)
/* 802E566C 002E12CC  7C 08 03 A6 */	mtlr r0
/* 802E5670 002E12D0  38 21 00 10 */	addi r1, r1, 0x10
/* 802E5674 002E12D4  4E 80 00 20 */	blr

.global sdp_conn_timeout
sdp_conn_timeout:
/* 802E5678 002E12D8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802E567C 002E12DC  7C 08 02 A6 */	mflr r0
/* 802E5680 002E12E0  3C 80 80 57 */	lis r4, lbl_8056C840@ha
/* 802E5684 002E12E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 802E5688 002E12E8  38 84 C8 40 */	addi r4, r4, lbl_8056C840@l
/* 802E568C 002E12EC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802E5690 002E12F0  7C 7F 1B 78 */	mr r31, r3
/* 802E5694 002E12F4  88 04 46 30 */	lbz r0, 0x4630(r4)
/* 802E5698 002E12F8  28 00 00 04 */	cmplwi r0, 4
/* 802E569C 002E12FC  41 80 00 20 */	blt lbl_802E56BC
/* 802E56A0 002E1300  3C 60 00 0A */	lis r3, 0x000A0003@ha
/* 802E56A4 002E1304  3C 80 80 44 */	lis r4, lbl_804454D8@ha
/* 802E56A8 002E1308  88 BF 00 00 */	lbz r5, 0(r31)
/* 802E56AC 002E130C  38 63 00 03 */	addi r3, r3, 0x000A0003@l
/* 802E56B0 002E1310  A0 DF 00 22 */	lhz r6, 0x22(r31)
/* 802E56B4 002E1314  38 84 54 D8 */	addi r4, r4, lbl_804454D8@l
/* 802E56B8 002E1318  4B FD 78 89 */	bl LogMsg_2
lbl_802E56BC:
/* 802E56BC 002E131C  A0 7F 00 22 */	lhz r3, 0x22(r31)
/* 802E56C0 002E1320  4B FF 08 E9 */	bl L2CA_DisconnectReq
/* 802E56C4 002E1324  81 9F 04 14 */	lwz r12, 0x414(r31)
/* 802E56C8 002E1328  2C 0C 00 00 */	cmpwi r12, 0
/* 802E56CC 002E132C  41 82 00 18 */	beq lbl_802E56E4
/* 802E56D0 002E1330  3C 60 00 01 */	lis r3, 0x0000FFF1@ha
/* 802E56D4 002E1334  38 03 FF F1 */	addi r0, r3, 0x0000FFF1@l
/* 802E56D8 002E1338  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 802E56DC 002E133C  7D 89 03 A6 */	mtctr r12
/* 802E56E0 002E1340  4E 80 04 21 */	bctrl
lbl_802E56E4:
/* 802E56E4 002E1344  7F E3 FB 78 */	mr r3, r31
/* 802E56E8 002E1348  48 00 0E 2D */	bl sdpu_release_ccb
/* 802E56EC 002E134C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802E56F0 002E1350  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802E56F4 002E1354  7C 08 03 A6 */	mtlr r0
/* 802E56F8 002E1358  38 21 00 10 */	addi r1, r1, 0x10
/* 802E56FC 002E135C  4E 80 00 20 */	blr