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

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

btm_cback:
/* 802CF7CC 002CB42C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CF7D0 002CB430  7C 08 02 A6 */	mflr r0
/* 802CF7D4 002CB434  3C E0 80 44 */	lis r7, lbl_80442400@ha
/* 802CF7D8 002CB438  28 03 00 02 */	cmplwi r3, 2
/* 802CF7DC 002CB43C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CF7E0 002CB440  38 E7 24 00 */	addi r7, r7, lbl_80442400@l
/* 802CF7E4 002CB444  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802CF7E8 002CB448  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802CF7EC 002CB44C  7C 9E 23 78 */	mr r30, r4
/* 802CF7F0 002CB450  40 80 01 9C */	bge lbl_802CF98C
/* 802CF7F4 002CB454  3D 00 80 57 */	lis r8, lbl_8056B340@ha
/* 802CF7F8 002CB458  54 60 23 36 */	rlwinm r0, r3, 4, 0xc, 0x1b
/* 802CF7FC 002CB45C  39 08 B3 40 */	addi r8, r8, lbl_8056B340@l
/* 802CF800 002CB460  7F E8 02 14 */	add r31, r8, r0
/* 802CF804 002CB464  88 1F 00 0F */	lbz r0, 0xf(r31)
/* 802CF808 002CB468  2C 00 00 00 */	cmpwi r0, 0
/* 802CF80C 002CB46C  41 82 01 80 */	beq lbl_802CF98C
/* 802CF810 002CB470  A0 1F 00 0C */	lhz r0, 0xc(r31)
/* 802CF814 002CB474  2C 00 00 03 */	cmpwi r0, 3
/* 802CF818 002CB478  41 82 00 6C */	beq lbl_802CF884
/* 802CF81C 002CB47C  40 80 00 10 */	bge lbl_802CF82C
/* 802CF820 002CB480  2C 00 00 02 */	cmpwi r0, 2
/* 802CF824 002CB484  40 80 00 14 */	bge lbl_802CF838
/* 802CF828 002CB488  48 00 01 34 */	b lbl_802CF95C
lbl_802CF82C:
/* 802CF82C 002CB48C  2C 00 00 05 */	cmpwi r0, 5
/* 802CF830 002CB490  40 80 01 2C */	bge lbl_802CF95C
/* 802CF834 002CB494  48 00 00 9C */	b lbl_802CF8D0
lbl_802CF838:
/* 802CF838 002CB498  88 C4 00 01 */	lbz r6, 1(r4)
/* 802CF83C 002CB49C  38 60 01 14 */	li r3, 0x114
/* 802CF840 002CB4A0  88 08 00 28 */	lbz r0, 0x28(r8)
/* 802CF844 002CB4A4  3B C1 00 08 */	addi r30, r1, 8
/* 802CF848 002CB4A8  98 C1 00 0A */	stb r6, 0xa(r1)
/* 802CF84C 002CB4AC  28 00 00 04 */	cmplwi r0, 4
/* 802CF850 002CB4B0  88 04 00 00 */	lbz r0, 0(r4)
/* 802CF854 002CB4B4  7C 00 00 34 */	cntlzw r0, r0
/* 802CF858 002CB4B8  54 00 DF FE */	rlwinm r0, r0, 0x1b, 0x1f, 0x1f
/* 802CF85C 002CB4BC  7C 00 00 D0 */	neg r0, r0
/* 802CF860 002CB4C0  7C 60 00 78 */	andc r0, r3, r0
/* 802CF864 002CB4C4  B0 01 00 08 */	sth r0, 8(r1)
/* 802CF868 002CB4C8  41 80 00 F4 */	blt lbl_802CF95C
/* 802CF86C 002CB4CC  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CF870 002CB4D0  38 87 00 00 */	addi r4, r7, 0
/* 802CF874 002CB4D4  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CF878 002CB4D8  54 05 04 3E */	clrlwi r5, r0, 0x10
/* 802CF87C 002CB4DC  4B FE D6 C5 */	bl LogMsg_2
/* 802CF880 002CB4E0  48 00 00 DC */	b lbl_802CF95C
lbl_802CF884:
/* 802CF884 002CB4E4  A0 A4 00 00 */	lhz r5, 0(r4)
/* 802CF888 002CB4E8  2C 05 00 00 */	cmpwi r5, 0
/* 802CF88C 002CB4EC  41 82 00 24 */	beq lbl_802CF8B0
/* 802CF890 002CB4F0  88 08 00 28 */	lbz r0, 0x28(r8)
/* 802CF894 002CB4F4  28 00 00 04 */	cmplwi r0, 4
/* 802CF898 002CB4F8  41 80 00 C4 */	blt lbl_802CF95C
/* 802CF89C 002CB4FC  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CF8A0 002CB500  38 87 00 3C */	addi r4, r7, 0x3c
/* 802CF8A4 002CB504  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CF8A8 002CB508  4B FE D6 81 */	bl LogMsg_1
/* 802CF8AC 002CB50C  48 00 00 B0 */	b lbl_802CF95C
lbl_802CF8B0:
/* 802CF8B0 002CB510  88 08 00 28 */	lbz r0, 0x28(r8)
/* 802CF8B4 002CB514  28 00 00 04 */	cmplwi r0, 4
/* 802CF8B8 002CB518  41 80 00 A4 */	blt lbl_802CF95C
/* 802CF8BC 002CB51C  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CF8C0 002CB520  38 87 00 70 */	addi r4, r7, 0x70
/* 802CF8C4 002CB524  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CF8C8 002CB528  4B FE D6 49 */	bl LogMsg_0
/* 802CF8CC 002CB52C  48 00 00 90 */	b lbl_802CF95C
lbl_802CF8D0:
/* 802CF8D0 002CB530  A0 04 00 00 */	lhz r0, 0(r4)
/* 802CF8D4 002CB534  54 00 06 3E */	clrlwi r0, r0, 0x18
/* 802CF8D8 002CB538  28 00 00 08 */	cmplwi r0, 8
/* 802CF8DC 002CB53C  41 81 00 54 */	bgt lbl_802CF930
/* 802CF8E0 002CB540  3C 60 80 44 */	lis r3, lbl_804424CC@ha
/* 802CF8E4 002CB544  54 00 10 3A */	slwi r0, r0, 2
/* 802CF8E8 002CB548  38 63 24 CC */	addi r3, r3, lbl_804424CC@l
/* 802CF8EC 002CB54C  7C 63 00 2E */	lwzx r3, r3, r0
/* 802CF8F0 002CB550  7C 69 03 A6 */	mtctr r3
/* 802CF8F4 002CB554  4E 80 04 20 */	bctr
/* 802CF8F8 002CB558  38 A0 00 00 */	li r5, 0
/* 802CF8FC 002CB55C  48 00 00 38 */	b lbl_802CF934
/* 802CF900 002CB560  38 A0 01 0B */	li r5, 0x10b
/* 802CF904 002CB564  48 00 00 30 */	b lbl_802CF934
/* 802CF908 002CB568  38 A0 01 03 */	li r5, 0x103
/* 802CF90C 002CB56C  48 00 00 28 */	b lbl_802CF934
/* 802CF910 002CB570  38 A0 01 09 */	li r5, 0x109
/* 802CF914 002CB574  48 00 00 20 */	b lbl_802CF934
/* 802CF918 002CB578  38 A0 01 0C */	li r5, 0x10c
/* 802CF91C 002CB57C  48 00 00 18 */	b lbl_802CF934
/* 802CF920 002CB580  38 A0 01 0D */	li r5, 0x10d
/* 802CF924 002CB584  48 00 00 10 */	b lbl_802CF934
/* 802CF928 002CB588  38 A0 01 15 */	li r5, 0x115
/* 802CF92C 002CB58C  48 00 00 08 */	b lbl_802CF934
lbl_802CF930:
/* 802CF930 002CB590  38 A0 01 14 */	li r5, 0x114
lbl_802CF934:
/* 802CF934 002CB594  3C 60 80 57 */	lis r3, lbl_8056B340@ha
/* 802CF938 002CB598  B0 A4 00 00 */	sth r5, 0(r4)
/* 802CF93C 002CB59C  38 63 B3 40 */	addi r3, r3, lbl_8056B340@l
/* 802CF940 002CB5A0  88 03 00 28 */	lbz r0, 0x28(r3)
/* 802CF944 002CB5A4  28 00 00 04 */	cmplwi r0, 4
/* 802CF948 002CB5A8  41 80 00 14 */	blt lbl_802CF95C
/* 802CF94C 002CB5AC  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CF950 002CB5B0  38 87 00 98 */	addi r4, r7, 0x98
/* 802CF954 002CB5B4  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CF958 002CB5B8  4B FE D5 D1 */	bl LogMsg_1
lbl_802CF95C:
/* 802CF95C 002CB5BC  81 9F 00 04 */	lwz r12, 4(r31)
/* 802CF960 002CB5C0  2C 0C 00 00 */	cmpwi r12, 0
/* 802CF964 002CB5C4  41 82 00 14 */	beq lbl_802CF978
/* 802CF968 002CB5C8  7F C4 F3 78 */	mr r4, r30
/* 802CF96C 002CB5CC  A0 7F 00 0C */	lhz r3, 0xc(r31)
/* 802CF970 002CB5D0  7D 89 03 A6 */	mtctr r12
/* 802CF974 002CB5D4  4E 80 04 21 */	bctrl
lbl_802CF978:
/* 802CF978 002CB5D8  2C 1F 00 00 */	cmpwi r31, 0
/* 802CF97C 002CB5DC  41 82 00 10 */	beq lbl_802CF98C
/* 802CF980 002CB5E0  38 00 00 00 */	li r0, 0
/* 802CF984 002CB5E4  90 1F 00 04 */	stw r0, 4(r31)
/* 802CF988 002CB5E8  98 1F 00 0F */	stb r0, 0xf(r31)
lbl_802CF98C:
/* 802CF98C 002CB5EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CF990 002CB5F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802CF994 002CB5F4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802CF998 002CB5F8  7C 08 03 A6 */	mtlr r0
/* 802CF99C 002CB5FC  38 21 00 20 */	addi r1, r1, 0x20
/* 802CF9A0 002CB600  4E 80 00 20 */	blr

.global gap_btm_cback0
gap_btm_cback0:
/* 802CF9A4 002CB604  7C 64 1B 78 */	mr r4, r3
/* 802CF9A8 002CB608  38 60 00 00 */	li r3, 0
/* 802CF9AC 002CB60C  4B FF FE 20 */	b btm_cback

.global gap_btm_cback1
gap_btm_cback1:
/* 802CF9B0 002CB610  7C 64 1B 78 */	mr r4, r3
/* 802CF9B4 002CB614  38 60 00 01 */	li r3, 1
/* 802CF9B8 002CB618  4B FF FE 14 */	b btm_cback

gap_find_addr_name_cb:
/* 802CF9BC 002CB61C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CF9C0 002CB620  7C 08 02 A6 */	mflr r0
/* 802CF9C4 002CB624  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CF9C8 002CB628  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802CF9CC 002CB62C  3F E0 80 57 */	lis r31, lbl_8056B340@ha
/* 802CF9D0 002CB630  3B FF B3 40 */	addi r31, r31, lbl_8056B340@l
/* 802CF9D4 002CB634  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802CF9D8 002CB638  3B DF 00 34 */	addi r30, r31, 0x34
/* 802CF9DC 002CB63C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802CF9E0 002CB640  7C 7D 1B 78 */	mr r29, r3
/* 802CF9E4 002CB644  88 1F 00 7E */	lbz r0, 0x7e(r31)
/* 802CF9E8 002CB648  2C 00 00 00 */	cmpwi r0, 0
/* 802CF9EC 002CB64C  41 82 01 CC */	beq lbl_802CFBB8
/* 802CF9F0 002CB650  A0 A3 00 00 */	lhz r5, 0(r3)
/* 802CF9F4 002CB654  2C 05 00 00 */	cmpwi r5, 0
/* 802CF9F8 002CB658  40 82 01 10 */	bne lbl_802CFB08
/* 802CF9FC 002CB65C  88 1F 00 28 */	lbz r0, 0x28(r31)
/* 802CFA00 002CB660  28 00 00 04 */	cmplwi r0, 4
/* 802CFA04 002CB664  41 80 00 1C */	blt lbl_802CFA20
/* 802CFA08 002CB668  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CFA0C 002CB66C  3C 80 80 44 */	lis r4, lbl_80442578@ha
/* 802CFA10 002CB670  38 DD 00 04 */	addi r6, r29, 4
/* 802CFA14 002CB674  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CFA18 002CB678  38 84 25 78 */	addi r4, r4, lbl_80442578@l
/* 802CFA1C 002CB67C  4B FE D5 25 */	bl LogMsg_2
lbl_802CFA20:
/* 802CFA20 002CB680  38 7E 00 08 */	addi r3, r30, 8
/* 802CFA24 002CB684  4B EF 71 41 */	bl strlen
/* 802CFA28 002CB688  7C 65 1B 78 */	mr r5, r3
/* 802CFA2C 002CB68C  38 7E 00 08 */	addi r3, r30, 8
/* 802CFA30 002CB690  38 9D 00 04 */	addi r4, r29, 4
/* 802CFA34 002CB694  4B EF EB 35 */	bl strncmp
/* 802CFA38 002CB698  2C 03 00 00 */	cmpwi r3, 0
/* 802CFA3C 002CB69C  40 82 00 24 */	bne lbl_802CFA60
/* 802CFA40 002CB6A0  80 9F 00 30 */	lwz r4, 0x30(r31)
/* 802CFA44 002CB6A4  38 7E 00 02 */	addi r3, r30, 2
/* 802CFA48 002CB6A8  38 A0 00 06 */	li r5, 6
/* 802CFA4C 002CB6AC  38 84 00 02 */	addi r4, r4, 2
/* 802CFA50 002CB6B0  4B D3 45 B1 */	bl memcpy
/* 802CFA54 002CB6B4  38 00 00 00 */	li r0, 0
/* 802CFA58 002CB6B8  B0 1E 00 00 */	sth r0, 0(r30)
/* 802CFA5C 002CB6BC  48 00 01 34 */	b lbl_802CFB90
lbl_802CFA60:
/* 802CFA60 002CB6C0  80 7F 00 30 */	lwz r3, 0x30(r31)
/* 802CFA64 002CB6C4  4B FF 84 3D */	bl BTM_InqDbNext
/* 802CFA68 002CB6C8  2C 03 00 00 */	cmpwi r3, 0
/* 802CFA6C 002CB6CC  90 7F 00 30 */	stw r3, 0x30(r31)
/* 802CFA70 002CB6D0  41 82 00 8C */	beq lbl_802CFAFC
/* 802CFA74 002CB6D4  3C 80 80 2D */	lis r4, gap_find_addr_name_cb@ha
/* 802CFA78 002CB6D8  38 63 00 02 */	addi r3, r3, 2
/* 802CFA7C 002CB6DC  38 84 F9 BC */	addi r4, r4, gap_find_addr_name_cb@l
/* 802CFA80 002CB6E0  4B FF 81 49 */	bl BTM_ReadRemoteDeviceName
/* 802CFA84 002CB6E4  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 802CFA88 002CB6E8  28 00 00 01 */	cmplwi r0, 1
/* 802CFA8C 002CB6EC  41 82 01 2C */	beq lbl_802CFBB8
/* 802CFA90 002CB6F0  A0 1D 00 00 */	lhz r0, 0(r29)
/* 802CFA94 002CB6F4  54 00 06 3E */	clrlwi r0, r0, 0x18
/* 802CFA98 002CB6F8  28 00 00 08 */	cmplwi r0, 8
/* 802CFA9C 002CB6FC  41 81 00 54 */	bgt lbl_802CFAF0
/* 802CFAA0 002CB700  3C 60 80 44 */	lis r3, lbl_8044261C@ha
/* 802CFAA4 002CB704  54 00 10 3A */	slwi r0, r0, 2
/* 802CFAA8 002CB708  38 63 26 1C */	addi r3, r3, lbl_8044261C@l
/* 802CFAAC 002CB70C  7C 63 00 2E */	lwzx r3, r3, r0
/* 802CFAB0 002CB710  7C 69 03 A6 */	mtctr r3
/* 802CFAB4 002CB714  4E 80 04 20 */	bctr
/* 802CFAB8 002CB718  38 00 00 00 */	li r0, 0
/* 802CFABC 002CB71C  48 00 00 38 */	b lbl_802CFAF4
/* 802CFAC0 002CB720  38 00 01 0B */	li r0, 0x10b
/* 802CFAC4 002CB724  48 00 00 30 */	b lbl_802CFAF4
/* 802CFAC8 002CB728  38 00 01 03 */	li r0, 0x103
/* 802CFACC 002CB72C  48 00 00 28 */	b lbl_802CFAF4
/* 802CFAD0 002CB730  38 00 01 09 */	li r0, 0x109
/* 802CFAD4 002CB734  48 00 00 20 */	b lbl_802CFAF4
/* 802CFAD8 002CB738  38 00 01 0C */	li r0, 0x10c
/* 802CFADC 002CB73C  48 00 00 18 */	b lbl_802CFAF4
/* 802CFAE0 002CB740  38 00 01 0D */	li r0, 0x10d
/* 802CFAE4 002CB744  48 00 00 10 */	b lbl_802CFAF4
/* 802CFAE8 002CB748  38 00 01 15 */	li r0, 0x115
/* 802CFAEC 002CB74C  48 00 00 08 */	b lbl_802CFAF4
lbl_802CFAF0:
/* 802CFAF0 002CB750  38 00 01 14 */	li r0, 0x114
lbl_802CFAF4:
/* 802CFAF4 002CB754  B0 1E 00 00 */	sth r0, 0(r30)
/* 802CFAF8 002CB758  48 00 00 98 */	b lbl_802CFB90
lbl_802CFAFC:
/* 802CFAFC 002CB75C  38 00 01 02 */	li r0, 0x102
/* 802CFB00 002CB760  B0 1E 00 00 */	sth r0, 0(r30)
/* 802CFB04 002CB764  48 00 00 8C */	b lbl_802CFB90
lbl_802CFB08:
/* 802CFB08 002CB768  88 1F 00 28 */	lbz r0, 0x28(r31)
/* 802CFB0C 002CB76C  28 00 00 04 */	cmplwi r0, 4
/* 802CFB10 002CB770  41 80 00 18 */	blt lbl_802CFB28
/* 802CFB14 002CB774  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CFB18 002CB778  3C 80 80 44 */	lis r4, lbl_804425BC@ha
/* 802CFB1C 002CB77C  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CFB20 002CB780  38 84 25 BC */	addi r4, r4, lbl_804425BC@l
/* 802CFB24 002CB784  4B FE D4 05 */	bl LogMsg_1
lbl_802CFB28:
/* 802CFB28 002CB788  A0 1D 00 00 */	lhz r0, 0(r29)
/* 802CFB2C 002CB78C  54 00 06 3E */	clrlwi r0, r0, 0x18
/* 802CFB30 002CB790  28 00 00 08 */	cmplwi r0, 8
/* 802CFB34 002CB794  41 81 00 54 */	bgt lbl_802CFB88
/* 802CFB38 002CB798  3C 60 80 44 */	lis r3, lbl_804425F8@ha
/* 802CFB3C 002CB79C  54 00 10 3A */	slwi r0, r0, 2
/* 802CFB40 002CB7A0  38 63 25 F8 */	addi r3, r3, lbl_804425F8@l
/* 802CFB44 002CB7A4  7C 63 00 2E */	lwzx r3, r3, r0
/* 802CFB48 002CB7A8  7C 69 03 A6 */	mtctr r3
/* 802CFB4C 002CB7AC  4E 80 04 20 */	bctr
/* 802CFB50 002CB7B0  38 00 00 00 */	li r0, 0
/* 802CFB54 002CB7B4  48 00 00 38 */	b lbl_802CFB8C
/* 802CFB58 002CB7B8  38 00 01 0B */	li r0, 0x10b
/* 802CFB5C 002CB7BC  48 00 00 30 */	b lbl_802CFB8C
/* 802CFB60 002CB7C0  38 00 01 03 */	li r0, 0x103
/* 802CFB64 002CB7C4  48 00 00 28 */	b lbl_802CFB8C
/* 802CFB68 002CB7C8  38 00 01 09 */	li r0, 0x109
/* 802CFB6C 002CB7CC  48 00 00 20 */	b lbl_802CFB8C
/* 802CFB70 002CB7D0  38 00 01 0C */	li r0, 0x10c
/* 802CFB74 002CB7D4  48 00 00 18 */	b lbl_802CFB8C
/* 802CFB78 002CB7D8  38 00 01 0D */	li r0, 0x10d
/* 802CFB7C 002CB7DC  48 00 00 10 */	b lbl_802CFB8C
/* 802CFB80 002CB7E0  38 00 01 15 */	li r0, 0x115
/* 802CFB84 002CB7E4  48 00 00 08 */	b lbl_802CFB8C
lbl_802CFB88:
/* 802CFB88 002CB7E8  38 00 01 14 */	li r0, 0x114
lbl_802CFB8C:
/* 802CFB8C 002CB7EC  B0 1E 00 00 */	sth r0, 0(r30)
lbl_802CFB90:
/* 802CFB90 002CB7F0  81 9F 00 2C */	lwz r12, 0x2c(r31)
/* 802CFB94 002CB7F4  2C 0C 00 00 */	cmpwi r12, 0
/* 802CFB98 002CB7F8  41 82 00 14 */	beq lbl_802CFBAC
/* 802CFB9C 002CB7FC  7F C4 F3 78 */	mr r4, r30
/* 802CFBA0 002CB800  38 60 00 05 */	li r3, 5
/* 802CFBA4 002CB804  7D 89 03 A6 */	mtctr r12
/* 802CFBA8 002CB808  4E 80 04 21 */	bctrl
lbl_802CFBAC:
/* 802CFBAC 002CB80C  38 00 00 00 */	li r0, 0
/* 802CFBB0 002CB810  98 1F 00 7E */	stb r0, 0x7e(r31)
/* 802CFBB4 002CB814  90 1F 00 2C */	stw r0, 0x2c(r31)
lbl_802CFBB8:
/* 802CFBB8 002CB818  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CFBBC 002CB81C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802CFBC0 002CB820  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802CFBC4 002CB824  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802CFBC8 002CB828  7C 08 03 A6 */	mtlr r0
/* 802CFBCC 002CB82C  38 21 00 20 */	addi r1, r1, 0x20
/* 802CFBD0 002CB830  4E 80 00 20 */	blr

gap_find_addr_inq_cb:
/* 802CFBD4 002CB834  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802CFBD8 002CB838  7C 08 02 A6 */	mflr r0
/* 802CFBDC 002CB83C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802CFBE0 002CB840  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802CFBE4 002CB844  3F E0 80 57 */	lis r31, lbl_8056B340@ha
/* 802CFBE8 002CB848  3B FF B3 40 */	addi r31, r31, lbl_8056B340@l
/* 802CFBEC 002CB84C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802CFBF0 002CB850  3B DF 00 34 */	addi r30, r31, 0x34
/* 802CFBF4 002CB854  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802CFBF8 002CB858  7C 7D 1B 78 */	mr r29, r3
/* 802CFBFC 002CB85C  88 1F 00 7E */	lbz r0, 0x7e(r31)
/* 802CFC00 002CB860  2C 00 00 00 */	cmpwi r0, 0
/* 802CFC04 002CB864  41 82 01 68 */	beq lbl_802CFD6C
/* 802CFC08 002CB868  88 1F 00 28 */	lbz r0, 0x28(r31)
/* 802CFC0C 002CB86C  28 00 00 04 */	cmplwi r0, 4
/* 802CFC10 002CB870  41 80 00 20 */	blt lbl_802CFC30
/* 802CFC14 002CB874  3C 60 00 0E */	lis r3, 0x000E0003@ha
/* 802CFC18 002CB878  3C 80 80 44 */	lis r4, lbl_80442640@ha
/* 802CFC1C 002CB87C  88 BD 00 00 */	lbz r5, 0(r29)
/* 802CFC20 002CB880  38 63 00 03 */	addi r3, r3, 0x000E0003@l
/* 802CFC24 002CB884  88 DD 00 01 */	lbz r6, 1(r29)
/* 802CFC28 002CB888  38 84 26 40 */	addi r4, r4, lbl_80442640@l
/* 802CFC2C 002CB88C  4B FE D3 15 */	bl LogMsg_2
lbl_802CFC30:
/* 802CFC30 002CB890  88 1D 00 00 */	lbz r0, 0(r29)
/* 802CFC34 002CB894  2C 00 00 00 */	cmpwi r0, 0
/* 802CFC38 002CB898  40 82 00 AC */	bne lbl_802CFCE4
/* 802CFC3C 002CB89C  38 00 01 11 */	li r0, 0x111
/* 802CFC40 002CB8A0  B0 1E 00 00 */	sth r0, 0(r30)
/* 802CFC44 002CB8A4  4B FF 81 A5 */	bl BTM_InqDbFirst
/* 802CFC48 002CB8A8  2C 03 00 00 */	cmpwi r3, 0
/* 802CFC4C 002CB8AC  90 7F 00 30 */	stw r3, 0x30(r31)
/* 802CFC50 002CB8B0  41 82 00 88 */	beq lbl_802CFCD8
/* 802CFC54 002CB8B4  3C 80 80 2D */	lis r4, gap_find_addr_name_cb@ha
/* 802CFC58 002CB8B8  38 63 00 02 */	addi r3, r3, 2
/* 802CFC5C 002CB8BC  38 84 F9 BC */	addi r4, r4, gap_find_addr_name_cb@l
/* 802CFC60 002CB8C0  4B FF 7F 69 */	bl BTM_ReadRemoteDeviceName
/* 802CFC64 002CB8C4  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 802CFC68 002CB8C8  28 00 00 01 */	cmplwi r0, 1
/* 802CFC6C 002CB8CC  41 82 01 00 */	beq lbl_802CFD6C
/* 802CFC70 002CB8D0  88 1D 00 00 */	lbz r0, 0(r29)
/* 802CFC74 002CB8D4  28 00 00 08 */	cmplwi r0, 8
/* 802CFC78 002CB8D8  41 81 00 54 */	bgt lbl_802CFCCC
/* 802CFC7C 002CB8DC  3C 60 80 44 */	lis r3, lbl_804426A8@ha
/* 802CFC80 002CB8E0  54 00 10 3A */	slwi r0, r0, 2
/* 802CFC84 002CB8E4  38 63 26 A8 */	addi r3, r3, lbl_804426A8@l
/* 802CFC88 002CB8E8  7C 63 00 2E */	lwzx r3, r3, r0
/* 802CFC8C 002CB8EC  7C 69 03 A6 */	mtctr r3
/* 802CFC90 002CB8F0  4E 80 04 20 */	bctr
/* 802CFC94 002CB8F4  38 00 00 00 */	li r0, 0
/* 802CFC98 002CB8F8  48 00 00 38 */	b lbl_802CFCD0
/* 802CFC9C 002CB8FC  38 00 01 0B */	li r0, 0x10b
/* 802CFCA0 002CB900  48 00 00 30 */	b lbl_802CFCD0
/* 802CFCA4 002CB904  38 00 01 03 */	li r0, 0x103
/* 802CFCA8 002CB908  48 00 00 28 */	b lbl_802CFCD0
/* 802CFCAC 002CB90C  38 00 01 09 */	li r0, 0x109
/* 802CFCB0 002CB910  48 00 00 20 */	b lbl_802CFCD0
/* 802CFCB4 002CB914  38 00 01 0C */	li r0, 0x10c
/* 802CFCB8 002CB918  48 00 00 18 */	b lbl_802CFCD0
/* 802CFCBC 002CB91C  38 00 01 0D */	li r0, 0x10d
/* 802CFCC0 002CB920  48 00 00 10 */	b lbl_802CFCD0
/* 802CFCC4 002CB924  38 00 01 15 */	li r0, 0x115
/* 802CFCC8 002CB928  48 00 00 08 */	b lbl_802CFCD0
lbl_802CFCCC:
/* 802CFCCC 002CB92C  38 00 01 14 */	li r0, 0x114
lbl_802CFCD0:
/* 802CFCD0 002CB930  B0 1E 00 00 */	sth r0, 0(r30)
/* 802CFCD4 002CB934  48 00 00 70 */	b lbl_802CFD44
lbl_802CFCD8:
/* 802CFCD8 002CB938  38 00 01 02 */	li r0, 0x102
/* 802CFCDC 002CB93C  B0 1E 00 00 */	sth r0, 0(r30)
/* 802CFCE0 002CB940  48 00 00 64 */	b lbl_802CFD44
lbl_802CFCE4:
/* 802CFCE4 002CB944  28 00 00 08 */	cmplwi r0, 8
/* 802CFCE8 002CB948  41 81 00 54 */	bgt lbl_802CFD3C
/* 802CFCEC 002CB94C  3C 60 80 44 */	lis r3, lbl_80442684@ha
/* 802CFCF0 002CB950  54 00 10 3A */	slwi r0, r0, 2
/* 802CFCF4 002CB954  38 63 26 84 */	addi r3, r3, lbl_80442684@l
/* 802CFCF8 002CB958  7C 63 00 2E */	lwzx r3, r3, r0
/* 802CFCFC 002CB95C  7C 69 03 A6 */	mtctr r3
/* 802CFD00 002CB960  4E 80 04 20 */	bctr
/* 802CFD04 002CB964  38 00 00 00 */	li r0, 0
/* 802CFD08 002CB968  48 00 00 38 */	b lbl_802CFD40
/* 802CFD0C 002CB96C  38 00 01 0B */	li r0, 0x10b
/* 802CFD10 002CB970  48 00 00 30 */	b lbl_802CFD40
/* 802CFD14 002CB974  38 00 01 03 */	li r0, 0x103
/* 802CFD18 002CB978  48 00 00 28 */	b lbl_802CFD40
/* 802CFD1C 002CB97C  38 00 01 09 */	li r0, 0x109
/* 802CFD20 002CB980  48 00 00 20 */	b lbl_802CFD40
/* 802CFD24 002CB984  38 00 01 0C */	li r0, 0x10c
/* 802CFD28 002CB988  48 00 00 18 */	b lbl_802CFD40
/* 802CFD2C 002CB98C  38 00 01 0D */	li r0, 0x10d
/* 802CFD30 002CB990  48 00 00 10 */	b lbl_802CFD40
/* 802CFD34 002CB994  38 00 01 15 */	li r0, 0x115
/* 802CFD38 002CB998  48 00 00 08 */	b lbl_802CFD40
lbl_802CFD3C:
/* 802CFD3C 002CB99C  38 00 01 14 */	li r0, 0x114
lbl_802CFD40:
/* 802CFD40 002CB9A0  B0 1E 00 00 */	sth r0, 0(r30)
lbl_802CFD44:
/* 802CFD44 002CB9A4  81 9F 00 2C */	lwz r12, 0x2c(r31)
/* 802CFD48 002CB9A8  2C 0C 00 00 */	cmpwi r12, 0
/* 802CFD4C 002CB9AC  41 82 00 14 */	beq lbl_802CFD60
/* 802CFD50 002CB9B0  7F C4 F3 78 */	mr r4, r30
/* 802CFD54 002CB9B4  38 60 00 05 */	li r3, 5
/* 802CFD58 002CB9B8  7D 89 03 A6 */	mtctr r12
/* 802CFD5C 002CB9BC  4E 80 04 21 */	bctrl
lbl_802CFD60:
/* 802CFD60 002CB9C0  38 00 00 00 */	li r0, 0
/* 802CFD64 002CB9C4  98 1F 00 7E */	stb r0, 0x7e(r31)
/* 802CFD68 002CB9C8  90 1F 00 2C */	stw r0, 0x2c(r31)
lbl_802CFD6C:
/* 802CFD6C 002CB9CC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802CFD70 002CB9D0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802CFD74 002CB9D4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802CFD78 002CB9D8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802CFD7C 002CB9DC  7C 08 03 A6 */	mtlr r0
/* 802CFD80 002CB9E0  38 21 00 20 */	addi r1, r1, 0x20
/* 802CFD84 002CB9E4  4E 80 00 20 */	blr

gap_convert_btm_status:
/* 802CFD88 002CB9E8  28 03 00 08 */	cmplwi r3, 8
/* 802CFD8C 002CB9EC  41 81 00 54 */	bgt lbl_802CFDE0
/* 802CFD90 002CB9F0  3C 80 80 44 */	lis r4, lbl_804426CC@ha
/* 802CFD94 002CB9F4  54 60 10 3A */	slwi r0, r3, 2
/* 802CFD98 002CB9F8  38 84 26 CC */	addi r4, r4, lbl_804426CC@l
/* 802CFD9C 002CB9FC  7C 84 00 2E */	lwzx r4, r4, r0
/* 802CFDA0 002CBA00  7C 89 03 A6 */	mtctr r4
/* 802CFDA4 002CBA04  4E 80 04 20 */	bctr
/* 802CFDA8 002CBA08  38 60 00 00 */	li r3, 0
/* 802CFDAC 002CBA0C  4E 80 00 20 */	blr
/* 802CFDB0 002CBA10  38 60 01 0B */	li r3, 0x10b
/* 802CFDB4 002CBA14  4E 80 00 20 */	blr
/* 802CFDB8 002CBA18  38 60 01 03 */	li r3, 0x103
/* 802CFDBC 002CBA1C  4E 80 00 20 */	blr
/* 802CFDC0 002CBA20  38 60 01 09 */	li r3, 0x109
/* 802CFDC4 002CBA24  4E 80 00 20 */	blr
/* 802CFDC8 002CBA28  38 60 01 0C */	li r3, 0x10c
/* 802CFDCC 002CBA2C  4E 80 00 20 */	blr
/* 802CFDD0 002CBA30  38 60 01 0D */	li r3, 0x10d
/* 802CFDD4 002CBA34  4E 80 00 20 */	blr
/* 802CFDD8 002CBA38  38 60 01 15 */	li r3, 0x115
/* 802CFDDC 002CBA3C  4E 80 00 20 */	blr
lbl_802CFDE0:
/* 802CFDE0 002CBA40  38 60 01 14 */	li r3, 0x114
/* 802CFDE4 002CBA44  4E 80 00 20 */	blr