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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global BTM_SecAddDevice
BTM_SecAddDevice:
/* 802C5170 002C0DD0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802C5174 002C0DD4 7C 08 02 A6 */ mflr r0
/* 802C5178 002C0DD8 90 01 00 34 */ stw r0, 0x34(r1)
/* 802C517C 002C0DDC 39 61 00 30 */ addi r11, r1, 0x30
/* 802C5180 002C0DE0 4B F0 1F 9D */ bl _savegpr_24
/* 802C5184 002C0DE4 3D 20 80 57 */ lis r9, lbl_80568B78@ha
/* 802C5188 002C0DE8 7C 78 1B 78 */ mr r24, r3
/* 802C518C 002C0DEC 39 29 8B 78 */ addi r9, r9, lbl_80568B78@l
/* 802C5190 002C0DF0 7C 99 23 78 */ mr r25, r4
/* 802C5194 002C0DF4 7C BA 2B 78 */ mr r26, r5
/* 802C5198 002C0DF8 7C DB 33 78 */ mr r27, r6
/* 802C519C 002C0DFC 7C FC 3B 78 */ mr r28, r7
/* 802C51A0 002C0E00 7D 1D 43 78 */ mr r29, r8
/* 802C51A4 002C0E04 3B C9 1F 30 */ addi r30, r9, 0x1f30
/* 802C51A8 002C0E08 3B E0 00 00 */ li r31, 0
lbl_802C51AC:
/* 802C51AC 002C0E0C 88 1E 00 76 */ lbz r0, 0x76(r30)
/* 802C51B0 002C0E10 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C51B4 002C0E14 41 82 00 20 */ beq lbl_802C51D4
/* 802C51B8 002C0E18 7F 04 C3 78 */ mr r4, r24
/* 802C51BC 002C0E1C 38 7E 00 1C */ addi r3, r30, 0x1c
/* 802C51C0 002C0E20 38 A0 00 06 */ li r5, 6
/* 802C51C4 002C0E24 4B F0 51 D5 */ bl memcmp
/* 802C51C8 002C0E28 2C 03 00 00 */ cmpwi r3, 0
/* 802C51CC 002C0E2C 40 82 00 08 */ bne lbl_802C51D4
/* 802C51D0 002C0E30 48 00 00 18 */ b lbl_802C51E8
lbl_802C51D4:
/* 802C51D4 002C0E34 3B FF 00 01 */ addi r31, r31, 1
/* 802C51D8 002C0E38 3B DE 00 88 */ addi r30, r30, 0x88
/* 802C51DC 002C0E3C 2C 1F 00 10 */ cmpwi r31, 0x10
/* 802C51E0 002C0E40 41 80 FF CC */ blt lbl_802C51AC
/* 802C51E4 002C0E44 3B C0 00 00 */ li r30, 0
lbl_802C51E8:
/* 802C51E8 002C0E48 2C 1E 00 00 */ cmpwi r30, 0
/* 802C51EC 002C0E4C 40 82 00 20 */ bne lbl_802C520C
/* 802C51F0 002C0E50 7F 03 C3 78 */ mr r3, r24
/* 802C51F4 002C0E54 48 00 02 51 */ bl btm_sec_alloc_dev
/* 802C51F8 002C0E58 2C 03 00 00 */ cmpwi r3, 0
/* 802C51FC 002C0E5C 7C 7E 1B 78 */ mr r30, r3
/* 802C5200 002C0E60 40 82 00 24 */ bne lbl_802C5224
/* 802C5204 002C0E64 38 60 00 00 */ li r3, 0
/* 802C5208 002C0E68 48 00 00 D8 */ b lbl_802C52E0
lbl_802C520C:
/* 802C520C 002C0E6C 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C5210 002C0E70 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C5214 002C0E74 80 64 19 74 */ lwz r3, 0x1974(r4)
/* 802C5218 002C0E78 90 7E 00 0C */ stw r3, 0xc(r30)
/* 802C521C 002C0E7C 38 03 00 01 */ addi r0, r3, 1
/* 802C5220 002C0E80 90 04 19 74 */ stw r0, 0x1974(r4)
lbl_802C5224:
/* 802C5224 002C0E84 2C 19 00 00 */ cmpwi r25, 0
/* 802C5228 002C0E88 41 82 00 14 */ beq lbl_802C523C
/* 802C522C 002C0E8C 7F 24 CB 78 */ mr r4, r25
/* 802C5230 002C0E90 38 7E 00 22 */ addi r3, r30, 0x22
/* 802C5234 002C0E94 38 A0 00 03 */ li r5, 3
/* 802C5238 002C0E98 4B D3 ED C9 */ bl memcpy
lbl_802C523C:
/* 802C523C 002C0E9C 38 7E 00 35 */ addi r3, r30, 0x35
/* 802C5240 002C0EA0 38 80 00 00 */ li r4, 0
/* 802C5244 002C0EA4 38 A0 00 41 */ li r5, 0x41
/* 802C5248 002C0EA8 4B D3 EE BD */ bl memset
/* 802C524C 002C0EAC 2C 1A 00 00 */ cmpwi r26, 0
/* 802C5250 002C0EB0 41 82 00 2C */ beq lbl_802C527C
/* 802C5254 002C0EB4 88 1A 00 00 */ lbz r0, 0(r26)
/* 802C5258 002C0EB8 2C 00 00 00 */ cmpwi r0, 0
/* 802C525C 002C0EBC 41 82 00 20 */ beq lbl_802C527C
/* 802C5260 002C0EC0 88 1E 00 76 */ lbz r0, 0x76(r30)
/* 802C5264 002C0EC4 7F 44 D3 78 */ mr r4, r26
/* 802C5268 002C0EC8 38 7E 00 35 */ addi r3, r30, 0x35
/* 802C526C 002C0ECC 38 A0 00 40 */ li r5, 0x40
/* 802C5270 002C0ED0 60 00 00 08 */ ori r0, r0, 8
/* 802C5274 002C0ED4 98 1E 00 76 */ stb r0, 0x76(r30)
/* 802C5278 002C0ED8 4B F0 91 19 */ bl strncpy
lbl_802C527C:
/* 802C527C 002C0EDC 2C 1B 00 00 */ cmpwi r27, 0
/* 802C5280 002C0EE0 41 82 00 18 */ beq lbl_802C5298
/* 802C5284 002C0EE4 7F 64 DB 78 */ mr r4, r27
/* 802C5288 002C0EE8 38 7E 00 77 */ addi r3, r30, 0x77
/* 802C528C 002C0EEC 38 A0 00 08 */ li r5, 8
/* 802C5290 002C0EF0 4B D3 ED 71 */ bl memcpy
/* 802C5294 002C0EF4 48 00 00 14 */ b lbl_802C52A8
lbl_802C5298:
/* 802C5298 002C0EF8 38 7E 00 77 */ addi r3, r30, 0x77
/* 802C529C 002C0EFC 38 80 00 00 */ li r4, 0
/* 802C52A0 002C0F00 38 A0 00 08 */ li r5, 8
/* 802C52A4 002C0F04 4B D3 EE 61 */ bl memset
lbl_802C52A8:
/* 802C52A8 002C0F08 80 1C 00 00 */ lwz r0, 0(r28)
/* 802C52AC 002C0F0C 2C 1D 00 00 */ cmpwi r29, 0
/* 802C52B0 002C0F10 90 1E 00 10 */ stw r0, 0x10(r30)
/* 802C52B4 002C0F14 80 1C 00 04 */ lwz r0, 4(r28)
/* 802C52B8 002C0F18 90 1E 00 14 */ stw r0, 0x14(r30)
/* 802C52BC 002C0F1C 41 82 00 20 */ beq lbl_802C52DC
/* 802C52C0 002C0F20 88 1E 00 76 */ lbz r0, 0x76(r30)
/* 802C52C4 002C0F24 7F A4 EB 78 */ mr r4, r29
/* 802C52C8 002C0F28 38 7E 00 25 */ addi r3, r30, 0x25
/* 802C52CC 002C0F2C 38 A0 00 10 */ li r5, 0x10
/* 802C52D0 002C0F30 60 00 00 10 */ ori r0, r0, 0x10
/* 802C52D4 002C0F34 98 1E 00 76 */ stb r0, 0x76(r30)
/* 802C52D8 002C0F38 4B D3 ED 29 */ bl memcpy
lbl_802C52DC:
/* 802C52DC 002C0F3C 38 60 00 01 */ li r3, 1
lbl_802C52E0:
/* 802C52E0 002C0F40 39 61 00 30 */ addi r11, r1, 0x30
/* 802C52E4 002C0F44 4B F0 1E 85 */ bl _restgpr_24
/* 802C52E8 002C0F48 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802C52EC 002C0F4C 7C 08 03 A6 */ mtlr r0
/* 802C52F0 002C0F50 38 21 00 30 */ addi r1, r1, 0x30
/* 802C52F4 002C0F54 4E 80 00 20 */ blr
.global BTM_SecDeleteDevice
BTM_SecDeleteDevice:
/* 802C52F8 002C0F58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802C52FC 002C0F5C 7C 08 02 A6 */ mflr r0
/* 802C5300 002C0F60 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C5304 002C0F64 90 01 00 24 */ stw r0, 0x24(r1)
/* 802C5308 002C0F68 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C530C 002C0F6C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802C5310 002C0F70 3B E0 00 00 */ li r31, 0
/* 802C5314 002C0F74 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802C5318 002C0F78 3B C4 1F 30 */ addi r30, r4, 0x1f30
/* 802C531C 002C0F7C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802C5320 002C0F80 7C 7D 1B 78 */ mr r29, r3
lbl_802C5324:
/* 802C5324 002C0F84 88 1E 00 76 */ lbz r0, 0x76(r30)
/* 802C5328 002C0F88 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C532C 002C0F8C 41 82 00 20 */ beq lbl_802C534C
/* 802C5330 002C0F90 7F A4 EB 78 */ mr r4, r29
/* 802C5334 002C0F94 38 7E 00 1C */ addi r3, r30, 0x1c
/* 802C5338 002C0F98 38 A0 00 06 */ li r5, 6
/* 802C533C 002C0F9C 4B F0 50 5D */ bl memcmp
/* 802C5340 002C0FA0 2C 03 00 00 */ cmpwi r3, 0
/* 802C5344 002C0FA4 40 82 00 08 */ bne lbl_802C534C
/* 802C5348 002C0FA8 48 00 00 18 */ b lbl_802C5360
lbl_802C534C:
/* 802C534C 002C0FAC 3B FF 00 01 */ addi r31, r31, 1
/* 802C5350 002C0FB0 3B DE 00 88 */ addi r30, r30, 0x88
/* 802C5354 002C0FB4 2C 1F 00 10 */ cmpwi r31, 0x10
/* 802C5358 002C0FB8 41 80 FF CC */ blt lbl_802C5324
/* 802C535C 002C0FBC 3B C0 00 00 */ li r30, 0
lbl_802C5360:
/* 802C5360 002C0FC0 2C 1E 00 00 */ cmpwi r30, 0
/* 802C5364 002C0FC4 40 82 00 0C */ bne lbl_802C5370
/* 802C5368 002C0FC8 38 60 00 00 */ li r3, 0
/* 802C536C 002C0FCC 48 00 00 1C */ b lbl_802C5388
lbl_802C5370:
/* 802C5370 002C0FD0 38 00 00 00 */ li r0, 0
/* 802C5374 002C0FD4 7F A3 EB 78 */ mr r3, r29
/* 802C5378 002C0FD8 98 1E 00 76 */ stb r0, 0x76(r30)
/* 802C537C 002C0FDC 38 80 00 00 */ li r4, 0
/* 802C5380 002C0FE0 48 00 1A 89 */ bl BTM_DeleteStoredLinkKey
/* 802C5384 002C0FE4 38 60 00 01 */ li r3, 1
lbl_802C5388:
/* 802C5388 002C0FE8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802C538C 002C0FEC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802C5390 002C0FF0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802C5394 002C0FF4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802C5398 002C0FF8 7C 08 03 A6 */ mtlr r0
/* 802C539C 002C0FFC 38 21 00 20 */ addi r1, r1, 0x20
/* 802C53A0 002C1000 4E 80 00 20 */ blr
.global BTM_SecReadDevName
BTM_SecReadDevName:
/* 802C53A4 002C1004 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802C53A8 002C1008 7C 08 02 A6 */ mflr r0
/* 802C53AC 002C100C 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C53B0 002C1010 90 01 00 24 */ stw r0, 0x24(r1)
/* 802C53B4 002C1014 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C53B8 002C1018 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802C53BC 002C101C 3B E0 00 00 */ li r31, 0
/* 802C53C0 002C1020 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802C53C4 002C1024 3B C4 1F 30 */ addi r30, r4, 0x1f30
/* 802C53C8 002C1028 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802C53CC 002C102C 3B A0 00 00 */ li r29, 0
/* 802C53D0 002C1030 93 81 00 10 */ stw r28, 0x10(r1)
/* 802C53D4 002C1034 7C 7C 1B 78 */ mr r28, r3
lbl_802C53D8:
/* 802C53D8 002C1038 88 1E 00 76 */ lbz r0, 0x76(r30)
/* 802C53DC 002C103C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C53E0 002C1040 41 82 00 20 */ beq lbl_802C5400
/* 802C53E4 002C1044 7F 84 E3 78 */ mr r4, r28
/* 802C53E8 002C1048 38 7E 00 1C */ addi r3, r30, 0x1c
/* 802C53EC 002C104C 38 A0 00 06 */ li r5, 6
/* 802C53F0 002C1050 4B F0 4F A9 */ bl memcmp
/* 802C53F4 002C1054 2C 03 00 00 */ cmpwi r3, 0
/* 802C53F8 002C1058 40 82 00 08 */ bne lbl_802C5400
/* 802C53FC 002C105C 48 00 00 18 */ b lbl_802C5414
lbl_802C5400:
/* 802C5400 002C1060 3B FF 00 01 */ addi r31, r31, 1
/* 802C5404 002C1064 3B DE 00 88 */ addi r30, r30, 0x88
/* 802C5408 002C1068 2C 1F 00 10 */ cmpwi r31, 0x10
/* 802C540C 002C106C 41 80 FF CC */ blt lbl_802C53D8
/* 802C5410 002C1070 3B C0 00 00 */ li r30, 0
lbl_802C5414:
/* 802C5414 002C1074 2C 1E 00 00 */ cmpwi r30, 0
/* 802C5418 002C1078 41 82 00 08 */ beq lbl_802C5420
/* 802C541C 002C107C 3B BE 00 35 */ addi r29, r30, 0x35
lbl_802C5420:
/* 802C5420 002C1080 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802C5424 002C1084 7F A3 EB 78 */ mr r3, r29
/* 802C5428 002C1088 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802C542C 002C108C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802C5430 002C1090 83 81 00 10 */ lwz r28, 0x10(r1)
/* 802C5434 002C1094 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802C5438 002C1098 7C 08 03 A6 */ mtlr r0
/* 802C543C 002C109C 38 21 00 20 */ addi r1, r1, 0x20
/* 802C5440 002C10A0 4E 80 00 20 */ blr
.global btm_sec_alloc_dev
btm_sec_alloc_dev:
/* 802C5444 002C10A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C5448 002C10A8 7C 08 02 A6 */ mflr r0
/* 802C544C 002C10AC 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C5450 002C10B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C5454 002C10B4 38 00 00 10 */ li r0, 0x10
/* 802C5458 002C10B8 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C545C 002C10BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C5460 002C10C0 3B E0 00 00 */ li r31, 0
/* 802C5464 002C10C4 93 C1 00 08 */ stw r30, 8(r1)
/* 802C5468 002C10C8 7C 7E 1B 78 */ mr r30, r3
/* 802C546C 002C10CC 38 60 00 00 */ li r3, 0
/* 802C5470 002C10D0 7C 09 03 A6 */ mtctr r0
lbl_802C5474:
/* 802C5474 002C10D4 88 04 1F A6 */ lbz r0, 0x1fa6(r4)
/* 802C5478 002C10D8 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C547C 002C10DC 40 82 00 1C */ bne lbl_802C5498
/* 802C5480 002C10E0 1C 03 00 88 */ mulli r0, r3, 0x88
/* 802C5484 002C10E4 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C5488 002C10E8 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C548C 002C10EC 7C 63 02 14 */ add r3, r3, r0
/* 802C5490 002C10F0 3B E3 1F 30 */ addi r31, r3, 0x1f30
/* 802C5494 002C10F4 48 00 00 10 */ b lbl_802C54A4
lbl_802C5498:
/* 802C5498 002C10F8 38 84 00 88 */ addi r4, r4, 0x88
/* 802C549C 002C10FC 38 63 00 01 */ addi r3, r3, 1
/* 802C54A0 002C1100 42 00 FF D4 */ bdnz lbl_802C5474
lbl_802C54A4:
/* 802C54A4 002C1104 2C 1F 00 00 */ cmpwi r31, 0
/* 802C54A8 002C1108 40 82 00 0C */ bne lbl_802C54B4
/* 802C54AC 002C110C 48 00 01 F9 */ bl btm_find_oldest_dev
/* 802C54B0 002C1110 7C 7F 1B 78 */ mr r31, r3
lbl_802C54B4:
/* 802C54B4 002C1114 7F E3 FB 78 */ mr r3, r31
/* 802C54B8 002C1118 38 80 00 00 */ li r4, 0
/* 802C54BC 002C111C 38 A0 00 88 */ li r5, 0x88
/* 802C54C0 002C1120 4B D3 EC 45 */ bl memset
/* 802C54C4 002C1124 38 60 00 80 */ li r3, 0x80
/* 802C54C8 002C1128 38 00 00 00 */ li r0, 0
/* 802C54CC 002C112C 98 7F 00 76 */ stb r3, 0x76(r31)
/* 802C54D0 002C1130 7F C3 F3 78 */ mr r3, r30
/* 802C54D4 002C1134 98 1F 00 85 */ stb r0, 0x85(r31)
/* 802C54D8 002C1138 48 00 28 51 */ bl BTM_InqDbRead
/* 802C54DC 002C113C 2C 03 00 00 */ cmpwi r3, 0
/* 802C54E0 002C1140 7C 64 1B 78 */ mr r4, r3
/* 802C54E4 002C1144 41 82 00 18 */ beq lbl_802C54FC
/* 802C54E8 002C1148 38 7F 00 22 */ addi r3, r31, 0x22
/* 802C54EC 002C114C 38 84 00 08 */ addi r4, r4, 8
/* 802C54F0 002C1150 38 A0 00 03 */ li r5, 3
/* 802C54F4 002C1154 4B D3 EB 0D */ bl memcpy
/* 802C54F8 002C1158 48 00 00 1C */ b lbl_802C5514
lbl_802C54FC:
/* 802C54FC 002C115C 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C5500 002C1160 38 7F 00 22 */ addi r3, r31, 0x22
/* 802C5504 002C1164 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C5508 002C1168 38 A0 00 03 */ li r5, 3
/* 802C550C 002C116C 38 84 27 BA */ addi r4, r4, 0x27ba
/* 802C5510 002C1170 4B D3 EA F1 */ bl memcpy
lbl_802C5514:
/* 802C5514 002C1174 7F C4 F3 78 */ mr r4, r30
/* 802C5518 002C1178 38 7F 00 1C */ addi r3, r31, 0x1c
/* 802C551C 002C117C 38 A0 00 06 */ li r5, 6
/* 802C5520 002C1180 4B D3 EA E1 */ bl memcpy
/* 802C5524 002C1184 7F C3 F3 78 */ mr r3, r30
/* 802C5528 002C1188 4B FF EE 7D */ bl BTM_GetHCIConnHandle
/* 802C552C 002C118C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 802C5530 002C1190 3C A0 80 57 */ lis r5, lbl_80568B78@ha
/* 802C5534 002C1194 38 A5 8B 78 */ addi r5, r5, lbl_80568B78@l
/* 802C5538 002C1198 7F E3 FB 78 */ mr r3, r31
/* 802C553C 002C119C 80 85 19 74 */ lwz r4, 0x1974(r5)
/* 802C5540 002C11A0 90 9F 00 0C */ stw r4, 0xc(r31)
/* 802C5544 002C11A4 38 04 00 01 */ addi r0, r4, 1
/* 802C5548 002C11A8 90 05 19 74 */ stw r0, 0x1974(r5)
/* 802C554C 002C11AC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C5550 002C11B0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802C5554 002C11B4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C5558 002C11B8 7C 08 03 A6 */ mtlr r0
/* 802C555C 002C11BC 38 21 00 10 */ addi r1, r1, 0x10
/* 802C5560 002C11C0 4E 80 00 20 */ blr
.global btm_find_dev_by_handle
btm_find_dev_by_handle:
/* 802C5564 002C11C4 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C5568 002C11C8 38 00 00 04 */ li r0, 4
/* 802C556C 002C11CC 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C5570 002C11D0 38 A0 00 00 */ li r5, 0
/* 802C5574 002C11D4 38 84 1F 30 */ addi r4, r4, 0x1f30
/* 802C5578 002C11D8 7C 09 03 A6 */ mtctr r0
lbl_802C557C:
/* 802C557C 002C11DC 88 04 00 76 */ lbz r0, 0x76(r4)
/* 802C5580 002C11E0 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C5584 002C11E4 41 82 00 18 */ beq lbl_802C559C
/* 802C5588 002C11E8 A0 04 00 18 */ lhz r0, 0x18(r4)
/* 802C558C 002C11EC 7C 00 18 40 */ cmplw r0, r3
/* 802C5590 002C11F0 40 82 00 0C */ bne lbl_802C559C
/* 802C5594 002C11F4 7C 83 23 78 */ mr r3, r4
/* 802C5598 002C11F8 4E 80 00 20 */ blr
lbl_802C559C:
/* 802C559C 002C11FC 88 04 00 FE */ lbz r0, 0xfe(r4)
/* 802C55A0 002C1200 38 84 00 88 */ addi r4, r4, 0x88
/* 802C55A4 002C1204 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C55A8 002C1208 41 82 00 18 */ beq lbl_802C55C0
/* 802C55AC 002C120C A0 04 00 18 */ lhz r0, 0x18(r4)
/* 802C55B0 002C1210 7C 00 18 40 */ cmplw r0, r3
/* 802C55B4 002C1214 40 82 00 0C */ bne lbl_802C55C0
/* 802C55B8 002C1218 7C 83 23 78 */ mr r3, r4
/* 802C55BC 002C121C 4E 80 00 20 */ blr
lbl_802C55C0:
/* 802C55C0 002C1220 88 04 00 FE */ lbz r0, 0xfe(r4)
/* 802C55C4 002C1224 38 84 00 88 */ addi r4, r4, 0x88
/* 802C55C8 002C1228 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C55CC 002C122C 41 82 00 18 */ beq lbl_802C55E4
/* 802C55D0 002C1230 A0 04 00 18 */ lhz r0, 0x18(r4)
/* 802C55D4 002C1234 7C 00 18 40 */ cmplw r0, r3
/* 802C55D8 002C1238 40 82 00 0C */ bne lbl_802C55E4
/* 802C55DC 002C123C 7C 83 23 78 */ mr r3, r4
/* 802C55E0 002C1240 4E 80 00 20 */ blr
lbl_802C55E4:
/* 802C55E4 002C1244 88 04 00 FE */ lbz r0, 0xfe(r4)
/* 802C55E8 002C1248 38 84 00 88 */ addi r4, r4, 0x88
/* 802C55EC 002C124C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C55F0 002C1250 41 82 00 18 */ beq lbl_802C5608
/* 802C55F4 002C1254 A0 04 00 18 */ lhz r0, 0x18(r4)
/* 802C55F8 002C1258 7C 00 18 40 */ cmplw r0, r3
/* 802C55FC 002C125C 40 82 00 0C */ bne lbl_802C5608
/* 802C5600 002C1260 7C 83 23 78 */ mr r3, r4
/* 802C5604 002C1264 4E 80 00 20 */ blr
lbl_802C5608:
/* 802C5608 002C1268 38 A5 00 03 */ addi r5, r5, 3
/* 802C560C 002C126C 38 84 00 88 */ addi r4, r4, 0x88
/* 802C5610 002C1270 42 00 FF 6C */ bdnz lbl_802C557C
/* 802C5614 002C1274 38 60 00 00 */ li r3, 0
/* 802C5618 002C1278 4E 80 00 20 */ blr
.global btm_find_dev
btm_find_dev:
/* 802C561C 002C127C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802C5620 002C1280 7C 08 02 A6 */ mflr r0
/* 802C5624 002C1284 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C5628 002C1288 90 01 00 24 */ stw r0, 0x24(r1)
/* 802C562C 002C128C 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C5630 002C1290 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802C5634 002C1294 3B E4 1F 30 */ addi r31, r4, 0x1f30
/* 802C5638 002C1298 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802C563C 002C129C 3B C0 00 00 */ li r30, 0
/* 802C5640 002C12A0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802C5644 002C12A4 7C 7D 1B 78 */ mr r29, r3
lbl_802C5648:
/* 802C5648 002C12A8 88 1F 00 76 */ lbz r0, 0x76(r31)
/* 802C564C 002C12AC 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C5650 002C12B0 41 82 00 24 */ beq lbl_802C5674
/* 802C5654 002C12B4 7F A4 EB 78 */ mr r4, r29
/* 802C5658 002C12B8 38 7F 00 1C */ addi r3, r31, 0x1c
/* 802C565C 002C12BC 38 A0 00 06 */ li r5, 6
/* 802C5660 002C12C0 4B F0 4D 39 */ bl memcmp
/* 802C5664 002C12C4 2C 03 00 00 */ cmpwi r3, 0
/* 802C5668 002C12C8 40 82 00 0C */ bne lbl_802C5674
/* 802C566C 002C12CC 7F E3 FB 78 */ mr r3, r31
/* 802C5670 002C12D0 48 00 00 18 */ b lbl_802C5688
lbl_802C5674:
/* 802C5674 002C12D4 3B DE 00 01 */ addi r30, r30, 1
/* 802C5678 002C12D8 3B FF 00 88 */ addi r31, r31, 0x88
/* 802C567C 002C12DC 2C 1E 00 10 */ cmpwi r30, 0x10
/* 802C5680 002C12E0 41 80 FF C8 */ blt lbl_802C5648
/* 802C5684 002C12E4 38 60 00 00 */ li r3, 0
lbl_802C5688:
/* 802C5688 002C12E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802C568C 002C12EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802C5690 002C12F0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802C5694 002C12F4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802C5698 002C12F8 7C 08 03 A6 */ mtlr r0
/* 802C569C 002C12FC 38 21 00 20 */ addi r1, r1, 0x20
/* 802C56A0 002C1300 4E 80 00 20 */ blr
.global btm_find_oldest_dev
btm_find_oldest_dev:
/* 802C56A4 002C1304 3C 60 80 57 */ lis r3, lbl_80568B78@ha
/* 802C56A8 002C1308 38 00 00 04 */ li r0, 4
/* 802C56AC 002C130C 38 63 8B 78 */ addi r3, r3, lbl_80568B78@l
/* 802C56B0 002C1310 38 C0 FF FF */ li r6, -1
/* 802C56B4 002C1314 38 A3 1F 30 */ addi r5, r3, 0x1f30
/* 802C56B8 002C1318 38 E0 00 00 */ li r7, 0
/* 802C56BC 002C131C 7C A3 2B 78 */ mr r3, r5
/* 802C56C0 002C1320 7C 09 03 A6 */ mtctr r0
lbl_802C56C4:
/* 802C56C4 002C1324 88 85 00 76 */ lbz r4, 0x76(r5)
/* 802C56C8 002C1328 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
/* 802C56CC 002C132C 41 82 00 20 */ beq lbl_802C56EC
/* 802C56D0 002C1330 54 80 06 F7 */ rlwinm. r0, r4, 0, 0x1b, 0x1b
/* 802C56D4 002C1334 40 82 00 18 */ bne lbl_802C56EC
/* 802C56D8 002C1338 80 05 00 0C */ lwz r0, 0xc(r5)
/* 802C56DC 002C133C 7C 00 30 40 */ cmplw r0, r6
/* 802C56E0 002C1340 40 80 00 0C */ bge lbl_802C56EC
/* 802C56E4 002C1344 7C A3 2B 78 */ mr r3, r5
/* 802C56E8 002C1348 7C 06 03 78 */ mr r6, r0
lbl_802C56EC:
/* 802C56EC 002C134C 88 85 00 FE */ lbz r4, 0xfe(r5)
/* 802C56F0 002C1350 38 A5 00 88 */ addi r5, r5, 0x88
/* 802C56F4 002C1354 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
/* 802C56F8 002C1358 41 82 00 20 */ beq lbl_802C5718
/* 802C56FC 002C135C 54 80 06 F7 */ rlwinm. r0, r4, 0, 0x1b, 0x1b
/* 802C5700 002C1360 40 82 00 18 */ bne lbl_802C5718
/* 802C5704 002C1364 80 05 00 0C */ lwz r0, 0xc(r5)
/* 802C5708 002C1368 7C 00 30 40 */ cmplw r0, r6
/* 802C570C 002C136C 40 80 00 0C */ bge lbl_802C5718
/* 802C5710 002C1370 7C A3 2B 78 */ mr r3, r5
/* 802C5714 002C1374 7C 06 03 78 */ mr r6, r0
lbl_802C5718:
/* 802C5718 002C1378 88 85 00 FE */ lbz r4, 0xfe(r5)
/* 802C571C 002C137C 38 A5 00 88 */ addi r5, r5, 0x88
/* 802C5720 002C1380 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
/* 802C5724 002C1384 41 82 00 20 */ beq lbl_802C5744
/* 802C5728 002C1388 54 80 06 F7 */ rlwinm. r0, r4, 0, 0x1b, 0x1b
/* 802C572C 002C138C 40 82 00 18 */ bne lbl_802C5744
/* 802C5730 002C1390 80 05 00 0C */ lwz r0, 0xc(r5)
/* 802C5734 002C1394 7C 00 30 40 */ cmplw r0, r6
/* 802C5738 002C1398 40 80 00 0C */ bge lbl_802C5744
/* 802C573C 002C139C 7C A3 2B 78 */ mr r3, r5
/* 802C5740 002C13A0 7C 06 03 78 */ mr r6, r0
lbl_802C5744:
/* 802C5744 002C13A4 88 85 00 FE */ lbz r4, 0xfe(r5)
/* 802C5748 002C13A8 38 A5 00 88 */ addi r5, r5, 0x88
/* 802C574C 002C13AC 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
/* 802C5750 002C13B0 41 82 00 20 */ beq lbl_802C5770
/* 802C5754 002C13B4 54 80 06 F7 */ rlwinm. r0, r4, 0, 0x1b, 0x1b
/* 802C5758 002C13B8 40 82 00 18 */ bne lbl_802C5770
/* 802C575C 002C13BC 80 05 00 0C */ lwz r0, 0xc(r5)
/* 802C5760 002C13C0 7C 00 30 40 */ cmplw r0, r6
/* 802C5764 002C13C4 40 80 00 0C */ bge lbl_802C5770
/* 802C5768 002C13C8 7C A3 2B 78 */ mr r3, r5
/* 802C576C 002C13CC 7C 06 03 78 */ mr r6, r0
lbl_802C5770:
/* 802C5770 002C13D0 38 E7 00 03 */ addi r7, r7, 3
/* 802C5774 002C13D4 38 A5 00 88 */ addi r5, r5, 0x88
/* 802C5778 002C13D8 42 00 FF 4C */ bdnz lbl_802C56C4
/* 802C577C 002C13DC 3C 06 00 01 */ addis r0, r6, 1
/* 802C5780 002C13E0 28 00 FF FF */ cmplwi r0, 0xffff
/* 802C5784 002C13E4 4C 82 00 20 */ bnelr
/* 802C5788 002C13E8 3C 80 80 57 */ lis r4, lbl_80568B78@ha
/* 802C578C 002C13EC 38 00 00 04 */ li r0, 4
/* 802C5790 002C13F0 38 84 8B 78 */ addi r4, r4, lbl_80568B78@l
/* 802C5794 002C13F4 38 A0 00 00 */ li r5, 0
/* 802C5798 002C13F8 38 84 1F 30 */ addi r4, r4, 0x1f30
/* 802C579C 002C13FC 7C 09 03 A6 */ mtctr r0
lbl_802C57A0:
/* 802C57A0 002C1400 88 04 00 76 */ lbz r0, 0x76(r4)
/* 802C57A4 002C1404 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C57A8 002C1408 41 82 00 18 */ beq lbl_802C57C0
/* 802C57AC 002C140C 80 04 00 0C */ lwz r0, 0xc(r4)
/* 802C57B0 002C1410 7C 00 30 40 */ cmplw r0, r6
/* 802C57B4 002C1414 40 80 00 0C */ bge lbl_802C57C0
/* 802C57B8 002C1418 7C 83 23 78 */ mr r3, r4
/* 802C57BC 002C141C 7C 06 03 78 */ mr r6, r0
lbl_802C57C0:
/* 802C57C0 002C1420 88 04 00 FE */ lbz r0, 0xfe(r4)
/* 802C57C4 002C1424 38 84 00 88 */ addi r4, r4, 0x88
/* 802C57C8 002C1428 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C57CC 002C142C 41 82 00 18 */ beq lbl_802C57E4
/* 802C57D0 002C1430 80 04 00 0C */ lwz r0, 0xc(r4)
/* 802C57D4 002C1434 7C 00 30 40 */ cmplw r0, r6
/* 802C57D8 002C1438 40 80 00 0C */ bge lbl_802C57E4
/* 802C57DC 002C143C 7C 83 23 78 */ mr r3, r4
/* 802C57E0 002C1440 7C 06 03 78 */ mr r6, r0
lbl_802C57E4:
/* 802C57E4 002C1444 88 04 00 FE */ lbz r0, 0xfe(r4)
/* 802C57E8 002C1448 38 84 00 88 */ addi r4, r4, 0x88
/* 802C57EC 002C144C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C57F0 002C1450 41 82 00 18 */ beq lbl_802C5808
/* 802C57F4 002C1454 80 04 00 0C */ lwz r0, 0xc(r4)
/* 802C57F8 002C1458 7C 00 30 40 */ cmplw r0, r6
/* 802C57FC 002C145C 40 80 00 0C */ bge lbl_802C5808
/* 802C5800 002C1460 7C 83 23 78 */ mr r3, r4
/* 802C5804 002C1464 7C 06 03 78 */ mr r6, r0
lbl_802C5808:
/* 802C5808 002C1468 88 04 00 FE */ lbz r0, 0xfe(r4)
/* 802C580C 002C146C 38 84 00 88 */ addi r4, r4, 0x88
/* 802C5810 002C1470 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802C5814 002C1474 41 82 00 18 */ beq lbl_802C582C
/* 802C5818 002C1478 80 04 00 0C */ lwz r0, 0xc(r4)
/* 802C581C 002C147C 7C 00 30 40 */ cmplw r0, r6
/* 802C5820 002C1480 40 80 00 0C */ bge lbl_802C582C
/* 802C5824 002C1484 7C 83 23 78 */ mr r3, r4
/* 802C5828 002C1488 7C 06 03 78 */ mr r6, r0
lbl_802C582C:
/* 802C582C 002C148C 38 A5 00 03 */ addi r5, r5, 3
/* 802C5830 002C1490 38 84 00 88 */ addi r4, r4, 0x88
/* 802C5834 002C1494 42 00 FF 6C */ bdnz lbl_802C57A0
/* 802C5838 002C1498 4E 80 00 20 */ blr
|