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

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

.global bta_dm_init_pm
bta_dm_init_pm:
/* 802C05F8 002BC258  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802C05FC 002BC25C  7C 08 02 A6 */	mflr r0
/* 802C0600 002BC260  3C 60 80 57 */	lis r3, lbl_80568918@ha
/* 802C0604 002BC264  38 80 00 00 */	li r4, 0
/* 802C0608 002BC268  90 01 00 14 */	stw r0, 0x14(r1)
/* 802C060C 002BC26C  38 63 89 18 */	addi r3, r3, lbl_80568918@l
/* 802C0610 002BC270  38 A0 00 2E */	li r5, 0x2e
/* 802C0614 002BC274  4B D4 3A F1 */	bl memset
/* 802C0618 002BC278  80 6D 89 F0 */	lwz r3, lbl_8063DCB0-_SDA_BASE_(r13)
/* 802C061C 002BC27C  88 03 00 01 */	lbz r0, 1(r3)
/* 802C0620 002BC280  2C 00 00 00 */	cmpwi r0, 0
/* 802C0624 002BC284  41 82 00 2C */	beq lbl_802C0650
/* 802C0628 002BC288  3C 60 80 2C */	lis r3, bta_dm_pm_cback@ha
/* 802C062C 002BC28C  38 63 06 78 */	addi r3, r3, bta_dm_pm_cback@l
/* 802C0630 002BC290  4B FF D0 25 */	bl bta_sys_pm_register
/* 802C0634 002BC294  3C 80 80 57 */	lis r4, lbl_80568814@ha
/* 802C0638 002BC298  3C A0 80 2C */	lis r5, bta_dm_pm_btm_cback@ha
/* 802C063C 002BC29C  38 84 88 14 */	addi r4, r4, lbl_80568814@l
/* 802C0640 002BC2A0  38 60 00 03 */	li r3, 3
/* 802C0644 002BC2A4  38 84 00 95 */	addi r4, r4, 0x95
/* 802C0648 002BC2A8  38 A5 0D 78 */	addi r5, r5, bta_dm_pm_btm_cback@l
/* 802C064C 002BC2AC  48 00 87 A1 */	bl BTM_PmRegister
lbl_802C0650:
/* 802C0650 002BC2B0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802C0654 002BC2B4  7C 08 03 A6 */	mtlr r0
/* 802C0658 002BC2B8  38 21 00 10 */	addi r1, r1, 0x10
/* 802C065C 002BC2BC  4E 80 00 20 */	blr

.global bta_dm_disable_pm
bta_dm_disable_pm:
/* 802C0660 002BC2C0  3C 80 80 57 */	lis r4, lbl_80568814@ha
/* 802C0664 002BC2C4  38 60 00 04 */	li r3, 4
/* 802C0668 002BC2C8  38 84 88 14 */	addi r4, r4, lbl_80568814@l
/* 802C066C 002BC2CC  38 A0 00 00 */	li r5, 0
/* 802C0670 002BC2D0  38 84 00 95 */	addi r4, r4, 0x95
/* 802C0674 002BC2D4  48 00 87 78 */	b BTM_PmRegister

bta_dm_pm_cback:
/* 802C0678 002BC2D8  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 802C067C 002BC2DC  7C 08 02 A6 */	mflr r0
/* 802C0680 002BC2E0  90 01 00 44 */	stw r0, 0x44(r1)
/* 802C0684 002BC2E4  39 61 00 40 */	addi r11, r1, 0x40
/* 802C0688 002BC2E8  4B F0 6A 91 */	bl _savegpr_23
/* 802C068C 002BC2EC  7C 79 1B 78 */	mr r25, r3
/* 802C0690 002BC2F0  7C 9A 23 78 */	mr r26, r4
/* 802C0694 002BC2F4  7C BB 2B 78 */	mr r27, r5
/* 802C0698 002BC2F8  7C DC 33 78 */	mr r28, r6
/* 802C069C 002BC2FC  38 61 00 0C */	addi r3, r1, 0xc
/* 802C06A0 002BC300  48 00 61 E5 */	bl BTM_ReadLocalVersion
/* 802C06A4 002BC304  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 802C06A8 002BC308  40 82 00 6C */	bne lbl_802C0714
/* 802C06AC 002BC30C  A0 01 00 12 */	lhz r0, 0x12(r1)
/* 802C06B0 002BC310  28 00 00 0F */	cmplwi r0, 0xf
/* 802C06B4 002BC314  40 82 00 60 */	bne lbl_802C0714
/* 802C06B8 002BC318  88 01 00 0C */	lbz r0, 0xc(r1)
/* 802C06BC 002BC31C  28 00 00 03 */	cmplwi r0, 3
/* 802C06C0 002BC320  40 80 00 54 */	bge lbl_802C0714
/* 802C06C4 002BC324  28 19 00 04 */	cmplwi r25, 4
/* 802C06C8 002BC328  40 82 00 28 */	bne lbl_802C06F0
/* 802C06CC 002BC32C  3C A0 80 40 */	lis r5, lbl_803FDAC0@ha
/* 802C06D0 002BC330  7F 83 E3 78 */	mr r3, r28
/* 802C06D4 002BC334  38 A5 DA C0 */	addi r5, r5, lbl_803FDAC0@l
/* 802C06D8 002BC338  38 81 00 08 */	addi r4, r1, 8
/* 802C06DC 002BC33C  A0 05 00 04 */	lhz r0, 4(r5)
/* 802C06E0 002BC340  70 00 00 0B */	andi. r0, r0, 0xb
/* 802C06E4 002BC344  B0 01 00 08 */	sth r0, 8(r1)
/* 802C06E8 002BC348  48 00 35 AD */	bl BTM_SetLinkPolicy
/* 802C06EC 002BC34C  48 00 00 28 */	b lbl_802C0714
lbl_802C06F0:
/* 802C06F0 002BC350  28 19 00 05 */	cmplwi r25, 5
/* 802C06F4 002BC354  40 82 00 20 */	bne lbl_802C0714
/* 802C06F8 002BC358  3C A0 80 40 */	lis r5, lbl_803FDAC0@ha
/* 802C06FC 002BC35C  7F 83 E3 78 */	mr r3, r28
/* 802C0700 002BC360  38 A5 DA C0 */	addi r5, r5, lbl_803FDAC0@l
/* 802C0704 002BC364  38 81 00 08 */	addi r4, r1, 8
/* 802C0708 002BC368  A0 05 00 04 */	lhz r0, 4(r5)
/* 802C070C 002BC36C  B0 01 00 08 */	sth r0, 8(r1)
/* 802C0710 002BC370  48 00 35 85 */	bl BTM_SetLinkPolicy
lbl_802C0714:
/* 802C0714 002BC374  80 AD 89 F0 */	lwz r5, lbl_8063DCB0-_SDA_BASE_(r13)
/* 802C0718 002BC378  3B C0 00 01 */	li r30, 1
/* 802C071C 002BC37C  88 85 00 01 */	lbz r4, 1(r5)
/* 802C0720 002BC380  48 00 00 38 */	b lbl_802C0758
lbl_802C0724:
/* 802C0724 002BC384  57 C3 06 3E */	clrlwi r3, r30, 0x18
/* 802C0728 002BC388  57 C0 15 BA */	rlwinm r0, r30, 2, 0x16, 0x1d
/* 802C072C 002BC38C  7C 03 00 50 */	subf r0, r3, r0
/* 802C0730 002BC390  7C 65 02 14 */	add r3, r5, r0
/* 802C0734 002BC394  7C 05 00 AE */	lbzx r0, r5, r0
/* 802C0738 002BC398  7C 1A 00 40 */	cmplw r26, r0
/* 802C073C 002BC39C  40 82 00 18 */	bne lbl_802C0754
/* 802C0740 002BC3A0  88 03 00 01 */	lbz r0, 1(r3)
/* 802C0744 002BC3A4  28 00 00 FF */	cmplwi r0, 0xff
/* 802C0748 002BC3A8  41 82 00 1C */	beq lbl_802C0764
/* 802C074C 002BC3AC  7C 1B 00 40 */	cmplw r27, r0
/* 802C0750 002BC3B0  41 82 00 14 */	beq lbl_802C0764
lbl_802C0754:
/* 802C0754 002BC3B4  3B DE 00 01 */	addi r30, r30, 1
lbl_802C0758:
/* 802C0758 002BC3B8  57 C0 06 3E */	clrlwi r0, r30, 0x18
/* 802C075C 002BC3BC  7C 00 20 40 */	cmplw r0, r4
/* 802C0760 002BC3C0  40 81 FF C4 */	ble lbl_802C0724
lbl_802C0764:
/* 802C0764 002BC3C4  88 05 00 01 */	lbz r0, 1(r5)
/* 802C0768 002BC3C8  57 C3 06 3E */	clrlwi r3, r30, 0x18
/* 802C076C 002BC3CC  7C 03 00 40 */	cmplw r3, r0
/* 802C0770 002BC3D0  41 81 02 70 */	bgt lbl_802C09E0
/* 802C0774 002BC3D4  3E E0 80 57 */	lis r23, lbl_80568814@ha
/* 802C0778 002BC3D8  3B E0 00 00 */	li r31, 0
/* 802C077C 002BC3DC  3A F7 88 14 */	addi r23, r23, lbl_80568814@l
lbl_802C0780:
/* 802C0780 002BC3E0  57 FD 2C F4 */	rlwinm r29, r31, 5, 0x13, 0x1a
/* 802C0784 002BC3E4  7F 17 EA 14 */	add r24, r23, r29
/* 802C0788 002BC3E8  88 18 00 B6 */	lbz r0, 0xb6(r24)
/* 802C078C 002BC3EC  2C 00 00 00 */	cmpwi r0, 0
/* 802C0790 002BC3F0  41 82 00 30 */	beq lbl_802C07C0
/* 802C0794 002BC3F4  7F 84 E3 78 */	mr r4, r28
/* 802C0798 002BC3F8  38 78 00 B0 */	addi r3, r24, 0xb0
/* 802C079C 002BC3FC  4B FF CD F9 */	bl bdcmp
/* 802C07A0 002BC400  2C 03 00 00 */	cmpwi r3, 0
/* 802C07A4 002BC404  40 82 00 1C */	bne lbl_802C07C0
/* 802C07A8 002BC408  7F 03 C3 78 */	mr r3, r24
/* 802C07AC 002BC40C  38 63 00 98 */	addi r3, r3, 0x98
/* 802C07B0 002BC410  4B FF D2 99 */	bl bta_sys_stop_timer
/* 802C07B4 002BC414  38 00 00 00 */	li r0, 0
/* 802C07B8 002BC418  98 18 00 B6 */	stb r0, 0xb6(r24)
/* 802C07BC 002BC41C  48 00 00 10 */	b lbl_802C07CC
lbl_802C07C0:
/* 802C07C0 002BC420  3B FF 00 01 */	addi r31, r31, 1
/* 802C07C4 002BC424  28 1F 00 03 */	cmplwi r31, 3
/* 802C07C8 002BC428  41 80 FF B8 */	blt lbl_802C0780
lbl_802C07CC:
/* 802C07CC 002BC42C  57 C4 06 3E */	clrlwi r4, r30, 0x18
/* 802C07D0 002BC430  57 C3 15 BA */	rlwinm r3, r30, 2, 0x16, 0x1d
/* 802C07D4 002BC434  7F C4 18 50 */	subf r30, r4, r3
/* 802C07D8 002BC438  80 0D 89 F0 */	lwz r0, lbl_8063DCB0-_SDA_BASE_(r13)
/* 802C07DC 002BC43C  80 8D 89 F4 */	lwz r4, lbl_8063DCB4-_SDA_BASE_(r13)
/* 802C07E0 002BC440  57 3F 1D 78 */	rlwinm r31, r25, 3, 0x15, 0x1c
/* 802C07E4 002BC444  7C 60 F2 14 */	add r3, r0, r30
/* 802C07E8 002BC448  88 03 00 02 */	lbz r0, 2(r3)
/* 802C07EC 002BC44C  1C 00 00 4A */	mulli r0, r0, 0x4a
/* 802C07F0 002BC450  7C 04 02 14 */	add r0, r4, r0
/* 802C07F4 002BC454  7C 60 FA 14 */	add r3, r0, r31
/* 802C07F8 002BC458  88 03 00 02 */	lbz r0, 2(r3)
/* 802C07FC 002BC45C  2C 00 00 00 */	cmpwi r0, 0
/* 802C0800 002BC460  41 82 01 E0 */	beq lbl_802C09E0
/* 802C0804 002BC464  3E E0 80 57 */	lis r23, lbl_80568918@ha
/* 802C0808 002BC468  3B A0 00 00 */	li r29, 0
/* 802C080C 002BC46C  3B 17 89 18 */	addi r24, r23, lbl_80568918@l
/* 802C0810 002BC470  48 00 00 44 */	b lbl_802C0854
lbl_802C0814:
/* 802C0814 002BC474  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 802C0818 002BC478  57 A0 1D 78 */	rlwinm r0, r29, 3, 0x15, 0x1c
/* 802C081C 002BC47C  7C 00 1A 14 */	add r0, r0, r3
/* 802C0820 002BC480  7C 78 02 14 */	add r3, r24, r0
/* 802C0824 002BC484  88 03 00 07 */	lbz r0, 7(r3)
/* 802C0828 002BC488  7C 1A 00 40 */	cmplw r26, r0
/* 802C082C 002BC48C  40 82 00 24 */	bne lbl_802C0850
/* 802C0830 002BC490  88 03 00 08 */	lbz r0, 8(r3)
/* 802C0834 002BC494  7C 1B 00 40 */	cmplw r27, r0
/* 802C0838 002BC498  40 82 00 18 */	bne lbl_802C0850
/* 802C083C 002BC49C  7F 84 E3 78 */	mr r4, r28
/* 802C0840 002BC4A0  38 63 00 01 */	addi r3, r3, 1
/* 802C0844 002BC4A4  4B FF CD 51 */	bl bdcmp
/* 802C0848 002BC4A8  2C 03 00 00 */	cmpwi r3, 0
/* 802C084C 002BC4AC  41 82 00 18 */	beq lbl_802C0864
lbl_802C0850:
/* 802C0850 002BC4B0  3B BD 00 01 */	addi r29, r29, 1
lbl_802C0854:
/* 802C0854 002BC4B4  88 17 89 18 */	lbz r0, -0x76e8(r23)
/* 802C0858 002BC4B8  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 802C085C 002BC4BC  7C 03 00 40 */	cmplw r3, r0
/* 802C0860 002BC4C0  41 80 FF B4 */	blt lbl_802C0814
lbl_802C0864:
/* 802C0864 002BC4C4  80 0D 89 F0 */	lwz r0, lbl_8063DCB0-_SDA_BASE_(r13)
/* 802C0868 002BC4C8  80 8D 89 F4 */	lwz r4, lbl_8063DCB4-_SDA_BASE_(r13)
/* 802C086C 002BC4CC  7C 60 F2 14 */	add r3, r0, r30
/* 802C0870 002BC4D0  88 03 00 02 */	lbz r0, 2(r3)
/* 802C0874 002BC4D4  1C 00 00 4A */	mulli r0, r0, 0x4a
/* 802C0878 002BC4D8  7C 04 02 14 */	add r0, r4, r0
/* 802C087C 002BC4DC  7C 60 FA 14 */	add r3, r0, r31
/* 802C0880 002BC4E0  88 03 00 02 */	lbz r0, 2(r3)
/* 802C0884 002BC4E4  28 00 00 10 */	cmplwi r0, 0x10
/* 802C0888 002BC4E8  40 82 00 70 */	bne lbl_802C08F8
/* 802C088C 002BC4EC  3F 60 80 57 */	lis r27, lbl_80568918@ha
/* 802C0890 002BC4F0  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 802C0894 002BC4F4  88 1B 89 18 */	lbz r0, lbl_80568918@l(r27)
/* 802C0898 002BC4F8  7C 03 00 40 */	cmplw r3, r0
/* 802C089C 002BC4FC  41 82 00 C8 */	beq lbl_802C0964
/* 802C08A0 002BC500  3B 5B 89 18 */	addi r26, r27, -30440
/* 802C08A4 002BC504  48 00 00 38 */	b lbl_802C08DC
lbl_802C08A8:
/* 802C08A8 002BC508  57 A6 06 3E */	clrlwi r6, r29, 0x18
/* 802C08AC 002BC50C  57 A4 1D 78 */	rlwinm r4, r29, 3, 0x15, 0x1c
/* 802C08B0 002BC510  38 66 00 01 */	addi r3, r6, 1
/* 802C08B4 002BC514  38 A0 00 09 */	li r5, 9
/* 802C08B8 002BC518  54 60 18 38 */	slwi r0, r3, 3
/* 802C08BC 002BC51C  7C 84 32 14 */	add r4, r4, r6
/* 802C08C0 002BC520  7C 00 1A 14 */	add r0, r0, r3
/* 802C08C4 002BC524  7C 7A 22 14 */	add r3, r26, r4
/* 802C08C8 002BC528  7C 9A 02 14 */	add r4, r26, r0
/* 802C08CC 002BC52C  38 63 00 01 */	addi r3, r3, 1
/* 802C08D0 002BC530  38 84 00 01 */	addi r4, r4, 1
/* 802C08D4 002BC534  4B D4 37 2D */	bl memcpy
/* 802C08D8 002BC538  3B BD 00 01 */	addi r29, r29, 1
lbl_802C08DC:
/* 802C08DC 002BC53C  88 7B 89 18 */	lbz r3, -0x76e8(r27)
/* 802C08E0 002BC540  57 A0 06 3E */	clrlwi r0, r29, 0x18
/* 802C08E4 002BC544  7C 00 18 40 */	cmplw r0, r3
/* 802C08E8 002BC548  41 80 FF C0 */	blt lbl_802C08A8
/* 802C08EC 002BC54C  38 03 FF FF */	addi r0, r3, -1
/* 802C08F0 002BC550  98 1B 89 18 */	stb r0, -0x76e8(r27)
/* 802C08F4 002BC554  48 00 00 70 */	b lbl_802C0964
lbl_802C08F8:
/* 802C08F8 002BC558  3F C0 80 57 */	lis r30, lbl_80568918@ha
/* 802C08FC 002BC55C  57 A4 06 3E */	clrlwi r4, r29, 0x18
/* 802C0900 002BC560  88 1E 89 18 */	lbz r0, lbl_80568918@l(r30)
/* 802C0904 002BC564  7C 04 00 40 */	cmplw r4, r0
/* 802C0908 002BC568  40 82 00 5C */	bne lbl_802C0964
/* 802C090C 002BC56C  28 00 00 05 */	cmplwi r0, 5
/* 802C0910 002BC570  40 82 00 24 */	bne lbl_802C0934
/* 802C0914 002BC574  88 0D AE F8 */	lbz r0, lbl_806401B8-_SDA_BASE_(r13)
/* 802C0918 002BC578  28 00 00 02 */	cmplwi r0, 2
/* 802C091C 002BC57C  41 80 00 C4 */	blt lbl_802C09E0
/* 802C0920 002BC580  3C 80 80 44 */	lis r4, lbl_804401A8@ha
/* 802C0924 002BC584  38 60 05 01 */	li r3, 0x501
/* 802C0928 002BC588  38 84 01 A8 */	addi r4, r4, lbl_804401A8@l
/* 802C092C 002BC58C  4B FF C5 E5 */	bl LogMsg_0
/* 802C0930 002BC590  48 00 00 B0 */	b lbl_802C09E0
lbl_802C0934:
/* 802C0934 002BC594  57 A3 1D 78 */	rlwinm r3, r29, 3, 0x15, 0x1c
/* 802C0938 002BC598  38 1E 89 18 */	addi r0, r30, -30440
/* 802C093C 002BC59C  7C 63 22 14 */	add r3, r3, r4
/* 802C0940 002BC5A0  7F 84 E3 78 */	mr r4, r28
/* 802C0944 002BC5A4  7C A0 1A 14 */	add r5, r0, r3
/* 802C0948 002BC5A8  9B 45 00 07 */	stb r26, 7(r5)
/* 802C094C 002BC5AC  38 65 00 01 */	addi r3, r5, 1
/* 802C0950 002BC5B0  9B 65 00 08 */	stb r27, 8(r5)
/* 802C0954 002BC5B4  4B FF CC 0D */	bl bdcpy
/* 802C0958 002BC5B8  88 7E 89 18 */	lbz r3, -0x76e8(r30)
/* 802C095C 002BC5BC  38 03 00 01 */	addi r0, r3, 1
/* 802C0960 002BC5C0  98 1E 89 18 */	stb r0, -0x76e8(r30)
lbl_802C0964:
/* 802C0964 002BC5C4  3C 60 80 57 */	lis r3, lbl_80568814@ha
/* 802C0968 002BC5C8  3B 00 00 00 */	li r24, 0
/* 802C096C 002BC5CC  3B 43 88 14 */	addi r26, r3, lbl_80568814@l
/* 802C0970 002BC5D0  48 00 00 38 */	b lbl_802C09A8
lbl_802C0974:
/* 802C0974 002BC5D4  57 00 06 3E */	clrlwi r0, r24, 0x18
/* 802C0978 002BC5D8  7F 84 E3 78 */	mr r4, r28
/* 802C097C 002BC5DC  1E E0 00 0B */	mulli r23, r0, 0xb
/* 802C0980 002BC5E0  7C 7A BA 14 */	add r3, r26, r23
/* 802C0984 002BC5E4  4B FF CC 11 */	bl bdcmp
/* 802C0988 002BC5E8  2C 03 00 00 */	cmpwi r3, 0
/* 802C098C 002BC5EC  40 82 00 18 */	bne lbl_802C09A4
/* 802C0990 002BC5F0  7C 7A BA 14 */	add r3, r26, r23
/* 802C0994 002BC5F4  38 00 00 00 */	li r0, 0
/* 802C0998 002BC5F8  98 03 00 09 */	stb r0, 9(r3)
/* 802C099C 002BC5FC  98 03 00 0A */	stb r0, 0xa(r3)
/* 802C09A0 002BC600  48 00 00 18 */	b lbl_802C09B8
lbl_802C09A4:
/* 802C09A4 002BC604  3B 18 00 01 */	addi r24, r24, 1
lbl_802C09A8:
/* 802C09A8 002BC608  88 1A 00 4D */	lbz r0, 0x4d(r26)
/* 802C09AC 002BC60C  57 03 06 3E */	clrlwi r3, r24, 0x18
/* 802C09B0 002BC610  7C 03 00 40 */	cmplw r3, r0
/* 802C09B4 002BC614  41 80 FF C0 */	blt lbl_802C0974
lbl_802C09B8:
/* 802C09B8 002BC618  3C C0 80 57 */	lis r6, lbl_80568918@ha
/* 802C09BC 002BC61C  57 A5 06 3E */	clrlwi r5, r29, 0x18
/* 802C09C0 002BC620  57 A0 1D 78 */	rlwinm r0, r29, 3, 0x15, 0x1c
/* 802C09C4 002BC624  7F 83 E3 78 */	mr r3, r28
/* 802C09C8 002BC628  38 C6 89 18 */	addi r6, r6, lbl_80568918@l
/* 802C09CC 002BC62C  38 80 00 00 */	li r4, 0
/* 802C09D0 002BC630  7C 00 2A 14 */	add r0, r0, r5
/* 802C09D4 002BC634  7C A6 02 14 */	add r5, r6, r0
/* 802C09D8 002BC638  9B 25 00 09 */	stb r25, 9(r5)
/* 802C09DC 002BC63C  48 00 00 1D */	bl bta_dm_pm_set_mode
lbl_802C09E0:
/* 802C09E0 002BC640  39 61 00 40 */	addi r11, r1, 0x40
/* 802C09E4 002BC644  4B F0 67 81 */	bl _restgpr_23
/* 802C09E8 002BC648  80 01 00 44 */	lwz r0, 0x44(r1)
/* 802C09EC 002BC64C  7C 08 03 A6 */	mtlr r0
/* 802C09F0 002BC650  38 21 00 40 */	addi r1, r1, 0x40
/* 802C09F4 002BC654  4E 80 00 20 */	blr

.global bta_dm_pm_set_mode
bta_dm_pm_set_mode:
/* 802C09F8 002BC658  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 802C09FC 002BC65C  7C 08 02 A6 */	mflr r0
/* 802C0A00 002BC660  90 01 00 54 */	stw r0, 0x54(r1)
/* 802C0A04 002BC664  39 61 00 50 */	addi r11, r1, 0x50
/* 802C0A08 002BC668  4B F0 67 05 */	bl _savegpr_20
/* 802C0A0C 002BC66C  3C A0 80 57 */	lis r5, lbl_80568814@ha
/* 802C0A10 002BC670  7C 74 1B 78 */	mr r20, r3
/* 802C0A14 002BC674  3B 85 88 14 */	addi r28, r5, lbl_80568814@l
/* 802C0A18 002BC678  7C 95 23 78 */	mr r21, r4
/* 802C0A1C 002BC67C  88 1C 00 4D */	lbz r0, 0x4d(r28)
/* 802C0A20 002BC680  3B 60 00 00 */	li r27, 0
/* 802C0A24 002BC684  3B 40 00 00 */	li r26, 0
/* 802C0A28 002BC688  3B 20 00 00 */	li r25, 0
/* 802C0A2C 002BC68C  2C 00 00 00 */	cmpwi r0, 0
/* 802C0A30 002BC690  3B 00 00 00 */	li r24, 0
/* 802C0A34 002BC694  3A E0 00 00 */	li r23, 0
/* 802C0A38 002BC698  3A C0 00 00 */	li r22, 0
/* 802C0A3C 002BC69C  41 82 03 24 */	beq lbl_802C0D60
/* 802C0A40 002BC6A0  3B C0 00 00 */	li r30, 0
/* 802C0A44 002BC6A4  48 00 00 30 */	b lbl_802C0A74
lbl_802C0A48:
/* 802C0A48 002BC6A8  57 C0 06 3E */	clrlwi r0, r30, 0x18
/* 802C0A4C 002BC6AC  7E 84 A3 78 */	mr r4, r20
/* 802C0A50 002BC6B0  1F A0 00 0B */	mulli r29, r0, 0xb
/* 802C0A54 002BC6B4  7C 7C EA 14 */	add r3, r28, r29
/* 802C0A58 002BC6B8  4B FF CB 3D */	bl bdcmp
/* 802C0A5C 002BC6BC  2C 03 00 00 */	cmpwi r3, 0
/* 802C0A60 002BC6C0  40 82 00 10 */	bne lbl_802C0A70
/* 802C0A64 002BC6C4  7F 1C EA 14 */	add r24, r28, r29
/* 802C0A68 002BC6C8  8B 38 00 0A */	lbz r25, 0xa(r24)
/* 802C0A6C 002BC6CC  48 00 00 18 */	b lbl_802C0A84
lbl_802C0A70:
/* 802C0A70 002BC6D0  3B DE 00 01 */	addi r30, r30, 1
lbl_802C0A74:
/* 802C0A74 002BC6D4  88 1C 00 4D */	lbz r0, 0x4d(r28)
/* 802C0A78 002BC6D8  57 C3 06 3E */	clrlwi r3, r30, 0x18
/* 802C0A7C 002BC6DC  7C 03 00 40 */	cmplw r3, r0
/* 802C0A80 002BC6E0  41 80 FF C8 */	blt lbl_802C0A48
lbl_802C0A84:
/* 802C0A84 002BC6E4  2C 18 00 00 */	cmpwi r24, 0
/* 802C0A88 002BC6E8  41 82 02 D8 */	beq lbl_802C0D60
/* 802C0A8C 002BC6EC  3F C0 80 57 */	lis r30, lbl_80568918@ha
/* 802C0A90 002BC6F0  3B 80 00 00 */	li r28, 0
/* 802C0A94 002BC6F4  3B FE 89 18 */	addi r31, r30, lbl_80568918@l
/* 802C0A98 002BC6F8  48 00 01 30 */	b lbl_802C0BC8
lbl_802C0A9C:
/* 802C0A9C 002BC6FC  57 83 06 3E */	clrlwi r3, r28, 0x18
/* 802C0AA0 002BC700  57 80 1D 78 */	rlwinm r0, r28, 3, 0x15, 0x1c
/* 802C0AA4 002BC704  7F A0 1A 14 */	add r29, r0, r3
/* 802C0AA8 002BC708  7E 84 A3 78 */	mr r4, r20
/* 802C0AAC 002BC70C  7C 7F EA 14 */	add r3, r31, r29
/* 802C0AB0 002BC710  38 63 00 01 */	addi r3, r3, 1
/* 802C0AB4 002BC714  4B FF CA E1 */	bl bdcmp
/* 802C0AB8 002BC718  2C 03 00 00 */	cmpwi r3, 0
/* 802C0ABC 002BC71C  40 82 01 08 */	bne lbl_802C0BC4
/* 802C0AC0 002BC720  80 ED 89 F0 */	lwz r7, lbl_8063DCB0-_SDA_BASE_(r13)
/* 802C0AC4 002BC724  7D 1F EA 14 */	add r8, r31, r29
/* 802C0AC8 002BC728  88 68 00 08 */	lbz r3, 8(r8)
/* 802C0ACC 002BC72C  39 20 00 01 */	li r9, 1
/* 802C0AD0 002BC730  88 C7 00 01 */	lbz r6, 1(r7)
/* 802C0AD4 002BC734  88 88 00 07 */	lbz r4, 7(r8)
/* 802C0AD8 002BC738  48 00 00 38 */	b lbl_802C0B10
lbl_802C0ADC:
/* 802C0ADC 002BC73C  55 25 06 3E */	clrlwi r5, r9, 0x18
/* 802C0AE0 002BC740  55 20 15 BA */	rlwinm r0, r9, 2, 0x16, 0x1d
/* 802C0AE4 002BC744  7C 05 00 50 */	subf r0, r5, r0
/* 802C0AE8 002BC748  7C A7 02 14 */	add r5, r7, r0
/* 802C0AEC 002BC74C  7C 07 00 AE */	lbzx r0, r7, r0
/* 802C0AF0 002BC750  7C 00 20 40 */	cmplw r0, r4
/* 802C0AF4 002BC754  40 82 00 18 */	bne lbl_802C0B0C
/* 802C0AF8 002BC758  88 05 00 01 */	lbz r0, 1(r5)
/* 802C0AFC 002BC75C  28 00 00 FF */	cmplwi r0, 0xff
/* 802C0B00 002BC760  41 82 00 1C */	beq lbl_802C0B1C
/* 802C0B04 002BC764  7C 00 18 40 */	cmplw r0, r3
/* 802C0B08 002BC768  41 82 00 14 */	beq lbl_802C0B1C
lbl_802C0B0C:
/* 802C0B0C 002BC76C  39 29 00 01 */	addi r9, r9, 1
lbl_802C0B10:
/* 802C0B10 002BC770  55 20 06 3E */	clrlwi r0, r9, 0x18
/* 802C0B14 002BC774  7C 00 30 40 */	cmplw r0, r6
/* 802C0B18 002BC778  40 81 FF C4 */	ble lbl_802C0ADC
lbl_802C0B1C:
/* 802C0B1C 002BC77C  55 23 06 3E */	clrlwi r3, r9, 0x18
/* 802C0B20 002BC780  55 20 15 BA */	rlwinm r0, r9, 2, 0x16, 0x1d
/* 802C0B24 002BC784  7C 63 00 50 */	subf r3, r3, r0
/* 802C0B28 002BC788  88 08 00 09 */	lbz r0, 9(r8)
/* 802C0B2C 002BC78C  7C 87 1A 14 */	add r4, r7, r3
/* 802C0B30 002BC790  80 6D 89 F4 */	lwz r3, lbl_8063DCB4-_SDA_BASE_(r13)
/* 802C0B34 002BC794  88 84 00 02 */	lbz r4, 2(r4)
/* 802C0B38 002BC798  54 00 18 38 */	slwi r0, r0, 3
/* 802C0B3C 002BC79C  1C 84 00 4A */	mulli r4, r4, 0x4a
/* 802C0B40 002BC7A0  7C A3 22 14 */	add r5, r3, r4
/* 802C0B44 002BC7A4  7C 65 02 14 */	add r3, r5, r0
/* 802C0B48 002BC7A8  88 05 00 00 */	lbz r0, 0(r5)
/* 802C0B4C 002BC7AC  88 83 00 02 */	lbz r4, 2(r3)
/* 802C0B50 002BC7B0  7E F7 03 78 */	or r23, r23, r0
/* 802C0B54 002BC7B4  7F 20 20 39 */	and. r0, r25, r4
/* 802C0B58 002BC7B8  40 82 00 34 */	bne lbl_802C0B8C
/* 802C0B5C 002BC7BC  7C 7F EA 14 */	add r3, r31, r29
/* 802C0B60 002BC7C0  57 60 06 3E */	clrlwi r0, r27, 0x18
/* 802C0B64 002BC7C4  88 63 00 09 */	lbz r3, 9(r3)
/* 802C0B68 002BC7C8  54 63 18 38 */	slwi r3, r3, 3
/* 802C0B6C 002BC7CC  7C A5 1A 14 */	add r5, r5, r3
/* 802C0B70 002BC7D0  88 65 00 02 */	lbz r3, 2(r5)
/* 802C0B74 002BC7D4  7C 03 00 40 */	cmplw r3, r0
/* 802C0B78 002BC7D8  7E D6 1B 78 */	or r22, r22, r3
/* 802C0B7C 002BC7DC  40 81 00 48 */	ble lbl_802C0BC4
/* 802C0B80 002BC7E0  A3 45 00 04 */	lhz r26, 4(r5)
/* 802C0B84 002BC7E4  7C 9B 23 78 */	mr r27, r4
/* 802C0B88 002BC7E8  48 00 00 3C */	b lbl_802C0BC4
lbl_802C0B8C:
/* 802C0B8C 002BC7EC  88 63 00 06 */	lbz r3, 6(r3)
/* 802C0B90 002BC7F0  7F 20 18 39 */	and. r0, r25, r3
/* 802C0B94 002BC7F4  40 82 00 30 */	bne lbl_802C0BC4
/* 802C0B98 002BC7F8  7C 9F EA 14 */	add r4, r31, r29
/* 802C0B9C 002BC7FC  57 60 06 3E */	clrlwi r0, r27, 0x18
/* 802C0BA0 002BC800  88 84 00 09 */	lbz r4, 9(r4)
/* 802C0BA4 002BC804  54 84 18 38 */	slwi r4, r4, 3
/* 802C0BA8 002BC808  7C A5 22 14 */	add r5, r5, r4
/* 802C0BAC 002BC80C  88 85 00 06 */	lbz r4, 6(r5)
/* 802C0BB0 002BC810  7C 04 00 40 */	cmplw r4, r0
/* 802C0BB4 002BC814  7E D6 23 78 */	or r22, r22, r4
/* 802C0BB8 002BC818  40 81 00 0C */	ble lbl_802C0BC4
/* 802C0BBC 002BC81C  7C 7B 1B 78 */	mr r27, r3
/* 802C0BC0 002BC820  A3 45 00 08 */	lhz r26, 8(r5)
lbl_802C0BC4:
/* 802C0BC4 002BC824  3B 9C 00 01 */	addi r28, r28, 1
lbl_802C0BC8:
/* 802C0BC8 002BC828  88 1E 89 18 */	lbz r0, -0x76e8(r30)
/* 802C0BCC 002BC82C  57 83 06 3E */	clrlwi r3, r28, 0x18
/* 802C0BD0 002BC830  7C 03 00 40 */	cmplw r3, r0
/* 802C0BD4 002BC834  41 80 FE C8 */	blt lbl_802C0A9C
/* 802C0BD8 002BC838  57 60 07 BF */	clrlwi. r0, r27, 0x1e
/* 802C0BDC 002BC83C  41 82 00 24 */	beq lbl_802C0C00
/* 802C0BE0 002BC840  56 E3 06 3E */	clrlwi r3, r23, 0x18
/* 802C0BE4 002BC844  57 60 06 3E */	clrlwi r0, r27, 0x18
/* 802C0BE8 002BC848  7C 60 00 39 */	and. r0, r3, r0
/* 802C0BEC 002BC84C  40 82 00 14 */	bne lbl_802C0C00
/* 802C0BF0 002BC850  7E E0 B0 38 */	and r0, r23, r22
/* 802C0BF4 002BC854  54 1B 07 BF */	clrlwi. r27, r0, 0x1e
/* 802C0BF8 002BC858  40 82 00 08 */	bne lbl_802C0C00
/* 802C0BFC 002BC85C  3B 40 00 00 */	li r26, 0
lbl_802C0C00:
/* 802C0C00 002BC860  2C 15 00 00 */	cmpwi r21, 0
/* 802C0C04 002BC864  40 82 00 A0 */	bne lbl_802C0CA4
/* 802C0C08 002BC868  2C 1A 00 00 */	cmpwi r26, 0
/* 802C0C0C 002BC86C  41 82 00 98 */	beq lbl_802C0CA4
/* 802C0C10 002BC870  3E A0 80 57 */	lis r21, lbl_80568814@ha
/* 802C0C14 002BC874  38 00 00 03 */	li r0, 3
/* 802C0C18 002BC878  3A B5 88 14 */	addi r21, r21, lbl_80568814@l
/* 802C0C1C 002BC87C  38 80 00 00 */	li r4, 0
/* 802C0C20 002BC880  7C 09 03 A6 */	mtctr r0
lbl_802C0C24:
/* 802C0C24 002BC884  54 96 2C F4 */	rlwinm r22, r4, 5, 0x13, 0x1a
/* 802C0C28 002BC888  7C 75 B2 14 */	add r3, r21, r22
/* 802C0C2C 002BC88C  88 03 00 B6 */	lbz r0, 0xb6(r3)
/* 802C0C30 002BC890  2C 00 00 00 */	cmpwi r0, 0
/* 802C0C34 002BC894  40 82 00 3C */	bne lbl_802C0C70
/* 802C0C38 002BC898  38 00 00 01 */	li r0, 1
/* 802C0C3C 002BC89C  7E 84 A3 78 */	mr r4, r20
/* 802C0C40 002BC8A0  98 03 00 B6 */	stb r0, 0xb6(r3)
/* 802C0C44 002BC8A4  38 63 00 B0 */	addi r3, r3, 0xb0
/* 802C0C48 002BC8A8  4B FF C9 19 */	bl bdcpy
/* 802C0C4C 002BC8AC  3C 80 80 2C */	lis r4, bta_dm_pm_timer_cback@ha
/* 802C0C50 002BC8B0  7C 75 B2 14 */	add r3, r21, r22
/* 802C0C54 002BC8B4  38 84 0D F0 */	addi r4, r4, bta_dm_pm_timer_cback@l
/* 802C0C58 002BC8B8  7F 45 D3 78 */	mr r5, r26
/* 802C0C5C 002BC8BC  90 83 00 A0 */	stw r4, 0xa0(r3)
/* 802C0C60 002BC8C0  38 63 00 98 */	addi r3, r3, 0x98
/* 802C0C64 002BC8C4  38 80 00 00 */	li r4, 0
/* 802C0C68 002BC8C8  4B FF CD C1 */	bl bta_sys_start_timer
/* 802C0C6C 002BC8CC  48 00 00 F4 */	b lbl_802C0D60
lbl_802C0C70:
/* 802C0C70 002BC8D0  38 84 00 01 */	addi r4, r4, 1
/* 802C0C74 002BC8D4  54 80 06 3E */	clrlwi r0, r4, 0x18
/* 802C0C78 002BC8D8  42 00 FF AC */	bdnz lbl_802C0C24
/* 802C0C7C 002BC8DC  28 00 00 03 */	cmplwi r0, 3
/* 802C0C80 002BC8E0  40 82 00 24 */	bne lbl_802C0CA4
/* 802C0C84 002BC8E4  88 0D AE F8 */	lbz r0, lbl_806401B8-_SDA_BASE_(r13)
/* 802C0C88 002BC8E8  28 00 00 02 */	cmplwi r0, 2
/* 802C0C8C 002BC8EC  41 80 00 D4 */	blt lbl_802C0D60
/* 802C0C90 002BC8F0  3C 80 80 44 */	lis r4, lbl_804401D4@ha
/* 802C0C94 002BC8F4  38 60 05 01 */	li r3, 0x501
/* 802C0C98 002BC8F8  38 84 01 D4 */	addi r4, r4, lbl_804401D4@l
/* 802C0C9C 002BC8FC  4B FF C2 75 */	bl LogMsg_0
/* 802C0CA0 002BC900  48 00 00 C0 */	b lbl_802C0D60
lbl_802C0CA4:
/* 802C0CA4 002BC904  57 60 06 3F */	clrlwi. r0, r27, 0x18
/* 802C0CA8 002BC908  41 82 00 B8 */	beq lbl_802C0D60
/* 802C0CAC 002BC90C  28 00 00 01 */	cmplwi r0, 1
/* 802C0CB0 002BC910  40 82 00 44 */	bne lbl_802C0CF4
/* 802C0CB4 002BC914  38 00 00 01 */	li r0, 1
/* 802C0CB8 002BC918  7E 83 A3 78 */	mr r3, r20
/* 802C0CBC 002BC91C  98 18 00 09 */	stb r0, 9(r24)
/* 802C0CC0 002BC920  38 81 00 09 */	addi r4, r1, 9
/* 802C0CC4 002BC924  48 00 83 B5 */	bl BTM_ReadPowerMode
/* 802C0CC8 002BC928  88 01 00 09 */	lbz r0, 9(r1)
/* 802C0CCC 002BC92C  28 00 00 03 */	cmplwi r0, 3
/* 802C0CD0 002BC930  41 82 00 90 */	beq lbl_802C0D60
/* 802C0CD4 002BC934  3C 60 80 57 */	lis r3, lbl_80568814@ha
/* 802C0CD8 002BC938  80 AD 89 F8 */	lwz r5, lbl_8063DCB8-_SDA_BASE_(r13)
/* 802C0CDC 002BC93C  38 63 88 14 */	addi r3, r3, lbl_80568814@l
/* 802C0CE0 002BC940  7E 84 A3 78 */	mr r4, r20
/* 802C0CE4 002BC944  88 63 00 95 */	lbz r3, 0x95(r3)
/* 802C0CE8 002BC948  38 A5 00 0A */	addi r5, r5, 0xa
/* 802C0CEC 002BC94C  48 00 81 BD */	bl BTM_SetPowerMode
/* 802C0CF0 002BC950  48 00 00 70 */	b lbl_802C0D60
lbl_802C0CF4:
/* 802C0CF4 002BC954  28 00 00 02 */	cmplwi r0, 2
/* 802C0CF8 002BC958  40 82 00 40 */	bne lbl_802C0D38
/* 802C0CFC 002BC95C  38 00 00 02 */	li r0, 2
/* 802C0D00 002BC960  7E 83 A3 78 */	mr r3, r20
/* 802C0D04 002BC964  98 18 00 09 */	stb r0, 9(r24)
/* 802C0D08 002BC968  38 81 00 08 */	addi r4, r1, 8
/* 802C0D0C 002BC96C  48 00 83 6D */	bl BTM_ReadPowerMode
/* 802C0D10 002BC970  88 01 00 08 */	lbz r0, 8(r1)
/* 802C0D14 002BC974  28 00 00 02 */	cmplwi r0, 2
/* 802C0D18 002BC978  41 82 00 48 */	beq lbl_802C0D60
/* 802C0D1C 002BC97C  3C 60 80 57 */	lis r3, lbl_80568814@ha
/* 802C0D20 002BC980  80 AD 89 F8 */	lwz r5, lbl_8063DCB8-_SDA_BASE_(r13)
/* 802C0D24 002BC984  38 63 88 14 */	addi r3, r3, lbl_80568814@l
/* 802C0D28 002BC988  7E 84 A3 78 */	mr r4, r20
/* 802C0D2C 002BC98C  88 63 00 95 */	lbz r3, 0x95(r3)
/* 802C0D30 002BC990  48 00 81 79 */	bl BTM_SetPowerMode
/* 802C0D34 002BC994  48 00 00 2C */	b lbl_802C0D60
lbl_802C0D38:
/* 802C0D38 002BC998  28 00 00 04 */	cmplwi r0, 4
/* 802C0D3C 002BC99C  40 82 00 24 */	bne lbl_802C0D60
/* 802C0D40 002BC9A0  3C 60 80 57 */	lis r3, lbl_80568814@ha
/* 802C0D44 002BC9A4  38 00 00 00 */	li r0, 0
/* 802C0D48 002BC9A8  38 63 88 14 */	addi r3, r3, lbl_80568814@l
/* 802C0D4C 002BC9AC  98 01 00 14 */	stb r0, 0x14(r1)
/* 802C0D50 002BC9B0  88 63 00 95 */	lbz r3, 0x95(r3)
/* 802C0D54 002BC9B4  7E 84 A3 78 */	mr r4, r20
/* 802C0D58 002BC9B8  38 A1 00 0C */	addi r5, r1, 0xc
/* 802C0D5C 002BC9BC  48 00 81 4D */	bl BTM_SetPowerMode
lbl_802C0D60:
/* 802C0D60 002BC9C0  39 61 00 50 */	addi r11, r1, 0x50
/* 802C0D64 002BC9C4  4B F0 63 F5 */	bl _restgpr_20
/* 802C0D68 002BC9C8  80 01 00 54 */	lwz r0, 0x54(r1)
/* 802C0D6C 002BC9CC  7C 08 03 A6 */	mtlr r0
/* 802C0D70 002BC9D0  38 21 00 50 */	addi r1, r1, 0x50
/* 802C0D74 002BC9D4  4E 80 00 20 */	blr

bta_dm_pm_btm_cback:
/* 802C0D78 002BC9D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C0D7C 002BC9DC  7C 08 02 A6 */	mflr r0
/* 802C0D80 002BC9E0  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C0D84 002BC9E4  39 61 00 20 */	addi r11, r1, 0x20
/* 802C0D88 002BC9E8  4B F0 63 A1 */	bl _savegpr_27
/* 802C0D8C 002BC9EC  7C 7B 1B 78 */	mr r27, r3
/* 802C0D90 002BC9F0  7C 9C 23 78 */	mr r28, r4
/* 802C0D94 002BC9F4  7C BD 2B 78 */	mr r29, r5
/* 802C0D98 002BC9F8  7C DE 33 78 */	mr r30, r6
/* 802C0D9C 002BC9FC  38 60 00 14 */	li r3, 0x14
/* 802C0DA0 002BCA00  4B FF 8D 0D */	bl GKI_getbuf
/* 802C0DA4 002BCA04  2C 03 00 00 */	cmpwi r3, 0
/* 802C0DA8 002BCA08  7C 7F 1B 78 */	mr r31, r3
/* 802C0DAC 002BCA0C  41 82 00 2C */	beq lbl_802C0DD8
/* 802C0DB0 002BCA10  38 00 01 09 */	li r0, 0x109
/* 802C0DB4 002BCA14  7F 64 DB 78 */	mr r4, r27
/* 802C0DB8 002BCA18  B0 03 00 00 */	sth r0, 0(r3)
/* 802C0DBC 002BCA1C  9B 83 00 0E */	stb r28, 0xe(r3)
/* 802C0DC0 002BCA20  B3 A3 00 10 */	sth r29, 0x10(r3)
/* 802C0DC4 002BCA24  9B C3 00 12 */	stb r30, 0x12(r3)
/* 802C0DC8 002BCA28  38 63 00 08 */	addi r3, r3, 8
/* 802C0DCC 002BCA2C  4B FF C7 95 */	bl bdcpy
/* 802C0DD0 002BCA30  7F E3 FB 78 */	mr r3, r31
/* 802C0DD4 002BCA34  4B FF CC 39 */	bl bta_sys_sendmsg
lbl_802C0DD8:
/* 802C0DD8 002BCA38  39 61 00 20 */	addi r11, r1, 0x20
/* 802C0DDC 002BCA3C  4B F0 63 99 */	bl _restgpr_27
/* 802C0DE0 002BCA40  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C0DE4 002BCA44  7C 08 03 A6 */	mtlr r0
/* 802C0DE8 002BCA48  38 21 00 20 */	addi r1, r1, 0x20
/* 802C0DEC 002BCA4C  4E 80 00 20 */	blr

bta_dm_pm_timer_cback:
/* 802C0DF0 002BCA50  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802C0DF4 002BCA54  7C 08 02 A6 */	mflr r0
/* 802C0DF8 002BCA58  3C 80 80 57 */	lis r4, lbl_80568814@ha
/* 802C0DFC 002BCA5C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802C0E00 002BCA60  38 84 88 14 */	addi r4, r4, lbl_80568814@l
/* 802C0E04 002BCA64  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802C0E08 002BCA68  93 C1 00 08 */	stw r30, 8(r1)
/* 802C0E0C 002BCA6C  3B C0 00 00 */	li r30, 0
/* 802C0E10 002BCA70  88 04 00 B6 */	lbz r0, 0xb6(r4)
/* 802C0E14 002BCA74  2C 00 00 00 */	cmpwi r0, 0
/* 802C0E18 002BCA78  41 82 00 1C */	beq lbl_802C0E34
/* 802C0E1C 002BCA7C  38 04 00 98 */	addi r0, r4, 0x98
/* 802C0E20 002BCA80  7C 00 18 40 */	cmplw r0, r3
/* 802C0E24 002BCA84  40 82 00 10 */	bne lbl_802C0E34
/* 802C0E28 002BCA88  38 00 00 00 */	li r0, 0
/* 802C0E2C 002BCA8C  98 04 00 B6 */	stb r0, 0xb6(r4)
/* 802C0E30 002BCA90  48 00 00 58 */	b lbl_802C0E88
lbl_802C0E34:
/* 802C0E34 002BCA94  88 04 00 D6 */	lbz r0, 0xd6(r4)
/* 802C0E38 002BCA98  3B C0 00 01 */	li r30, 1
/* 802C0E3C 002BCA9C  2C 00 00 00 */	cmpwi r0, 0
/* 802C0E40 002BCAA0  41 82 00 1C */	beq lbl_802C0E5C
/* 802C0E44 002BCAA4  38 04 00 B8 */	addi r0, r4, 0xb8
/* 802C0E48 002BCAA8  7C 00 18 40 */	cmplw r0, r3
/* 802C0E4C 002BCAAC  40 82 00 10 */	bne lbl_802C0E5C
/* 802C0E50 002BCAB0  38 00 00 00 */	li r0, 0
/* 802C0E54 002BCAB4  98 04 00 D6 */	stb r0, 0xd6(r4)
/* 802C0E58 002BCAB8  48 00 00 30 */	b lbl_802C0E88
lbl_802C0E5C:
/* 802C0E5C 002BCABC  88 04 00 F6 */	lbz r0, 0xf6(r4)
/* 802C0E60 002BCAC0  3B C0 00 02 */	li r30, 2
/* 802C0E64 002BCAC4  2C 00 00 00 */	cmpwi r0, 0
/* 802C0E68 002BCAC8  41 82 00 1C */	beq lbl_802C0E84
/* 802C0E6C 002BCACC  38 04 00 D8 */	addi r0, r4, 0xd8
/* 802C0E70 002BCAD0  7C 00 18 40 */	cmplw r0, r3
/* 802C0E74 002BCAD4  40 82 00 10 */	bne lbl_802C0E84
/* 802C0E78 002BCAD8  38 00 00 00 */	li r0, 0
/* 802C0E7C 002BCADC  98 04 00 F6 */	stb r0, 0xf6(r4)
/* 802C0E80 002BCAE0  48 00 00 08 */	b lbl_802C0E88
lbl_802C0E84:
/* 802C0E84 002BCAE4  3B C0 00 03 */	li r30, 3
lbl_802C0E88:
/* 802C0E88 002BCAE8  28 1E 00 03 */	cmplwi r30, 3
/* 802C0E8C 002BCAEC  41 82 00 44 */	beq lbl_802C0ED0
/* 802C0E90 002BCAF0  38 60 00 0E */	li r3, 0xe
/* 802C0E94 002BCAF4  4B FF 8C 19 */	bl GKI_getbuf
/* 802C0E98 002BCAF8  2C 03 00 00 */	cmpwi r3, 0
/* 802C0E9C 002BCAFC  7C 7F 1B 78 */	mr r31, r3
/* 802C0EA0 002BCB00  41 82 00 30 */	beq lbl_802C0ED0
/* 802C0EA4 002BCB04  3C 80 80 57 */	lis r4, lbl_80568814@ha
/* 802C0EA8 002BCB08  38 A0 01 0A */	li r5, 0x10a
/* 802C0EAC 002BCB0C  38 84 88 14 */	addi r4, r4, lbl_80568814@l
/* 802C0EB0 002BCB10  57 C0 2C F4 */	rlwinm r0, r30, 5, 0x13, 0x1a
/* 802C0EB4 002BCB14  B0 A3 00 00 */	sth r5, 0(r3)
/* 802C0EB8 002BCB18  7C 84 02 14 */	add r4, r4, r0
/* 802C0EBC 002BCB1C  38 84 00 B0 */	addi r4, r4, 0xb0
/* 802C0EC0 002BCB20  38 63 00 08 */	addi r3, r3, 8
/* 802C0EC4 002BCB24  4B FF C6 9D */	bl bdcpy
/* 802C0EC8 002BCB28  7F E3 FB 78 */	mr r3, r31
/* 802C0ECC 002BCB2C  4B FF CB 41 */	bl bta_sys_sendmsg
lbl_802C0ED0:
/* 802C0ED0 002BCB30  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802C0ED4 002BCB34  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802C0ED8 002BCB38  83 C1 00 08 */	lwz r30, 8(r1)
/* 802C0EDC 002BCB3C  7C 08 03 A6 */	mtlr r0
/* 802C0EE0 002BCB40  38 21 00 10 */	addi r1, r1, 0x10
/* 802C0EE4 002BCB44  4E 80 00 20 */	blr

bta_dm_pm_btm_status:
/* 802C0EE8 002BCB48  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C0EEC 002BCB4C  7C 08 02 A6 */	mflr r0
/* 802C0EF0 002BCB50  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C0EF4 002BCB54  39 61 00 20 */	addi r11, r1, 0x20
/* 802C0EF8 002BCB58  4B F0 62 31 */	bl _savegpr_27
/* 802C0EFC 002BCB5C  3F C0 80 57 */	lis r30, lbl_80568814@ha
/* 802C0F00 002BCB60  7C 7F 1B 78 */	mr r31, r3
/* 802C0F04 002BCB64  3B DE 88 14 */	addi r30, r30, lbl_80568814@l
/* 802C0F08 002BCB68  3B 60 00 00 */	li r27, 0
lbl_802C0F0C:
/* 802C0F0C 002BCB6C  57 7C 2C F4 */	rlwinm r28, r27, 5, 0x13, 0x1a
/* 802C0F10 002BCB70  7F BE E2 14 */	add r29, r30, r28
/* 802C0F14 002BCB74  88 1D 00 B6 */	lbz r0, 0xb6(r29)
/* 802C0F18 002BCB78  2C 00 00 00 */	cmpwi r0, 0
/* 802C0F1C 002BCB7C  41 82 00 30 */	beq lbl_802C0F4C
/* 802C0F20 002BCB80  38 7D 00 B0 */	addi r3, r29, 0xb0
/* 802C0F24 002BCB84  38 9F 00 08 */	addi r4, r31, 8
/* 802C0F28 002BCB88  4B FF C6 6D */	bl bdcmp
/* 802C0F2C 002BCB8C  2C 03 00 00 */	cmpwi r3, 0
/* 802C0F30 002BCB90  40 82 00 1C */	bne lbl_802C0F4C
/* 802C0F34 002BCB94  7F A3 EB 78 */	mr r3, r29
/* 802C0F38 002BCB98  38 63 00 98 */	addi r3, r3, 0x98
/* 802C0F3C 002BCB9C  4B FF CB 0D */	bl bta_sys_stop_timer
/* 802C0F40 002BCBA0  38 00 00 00 */	li r0, 0
/* 802C0F44 002BCBA4  98 1D 00 B6 */	stb r0, 0xb6(r29)
/* 802C0F48 002BCBA8  48 00 00 10 */	b lbl_802C0F58
lbl_802C0F4C:
/* 802C0F4C 002BCBAC  3B 7B 00 01 */	addi r27, r27, 1
/* 802C0F50 002BCBB0  28 1B 00 03 */	cmplwi r27, 3
/* 802C0F54 002BCBB4  41 80 FF B8 */	blt lbl_802C0F0C
lbl_802C0F58:
/* 802C0F58 002BCBB8  88 1F 00 0E */	lbz r0, 0xe(r31)
/* 802C0F5C 002BCBBC  2C 00 00 00 */	cmpwi r0, 0
/* 802C0F60 002BCBC0  41 82 00 08 */	beq lbl_802C0F68
/* 802C0F64 002BCBC4  48 00 00 8C */	b lbl_802C0FF0
lbl_802C0F68:
/* 802C0F68 002BCBC8  88 1F 00 12 */	lbz r0, 0x12(r31)
/* 802C0F6C 002BCBCC  2C 00 00 00 */	cmpwi r0, 0
/* 802C0F70 002BCBD0  41 82 00 74 */	beq lbl_802C0FE4
/* 802C0F74 002BCBD4  3C 60 80 57 */	lis r3, lbl_80568814@ha
/* 802C0F78 002BCBD8  3B A0 00 00 */	li r29, 0
/* 802C0F7C 002BCBDC  3B C3 88 14 */	addi r30, r3, lbl_80568814@l
/* 802C0F80 002BCBE0  48 00 00 50 */	b lbl_802C0FD0
lbl_802C0F84:
/* 802C0F84 002BCBE4  57 A0 06 3E */	clrlwi r0, r29, 0x18
/* 802C0F88 002BCBE8  38 9F 00 08 */	addi r4, r31, 8
/* 802C0F8C 002BCBEC  1F 80 00 0B */	mulli r28, r0, 0xb
/* 802C0F90 002BCBF0  7C 7E E2 14 */	add r3, r30, r28
/* 802C0F94 002BCBF4  4B FF C6 01 */	bl bdcmp
/* 802C0F98 002BCBF8  2C 03 00 00 */	cmpwi r3, 0
/* 802C0F9C 002BCBFC  40 82 00 30 */	bne lbl_802C0FCC
/* 802C0FA0 002BCC00  7C BE E2 14 */	add r5, r30, r28
/* 802C0FA4 002BCC04  88 05 00 09 */	lbz r0, 9(r5)
/* 802C0FA8 002BCC08  54 06 07 BF */	clrlwi. r6, r0, 0x1e
/* 802C0FAC 002BCC0C  41 82 00 44 */	beq lbl_802C0FF0
/* 802C0FB0 002BCC10  88 05 00 0A */	lbz r0, 0xa(r5)
/* 802C0FB4 002BCC14  38 7F 00 08 */	addi r3, r31, 8
/* 802C0FB8 002BCC18  38 80 00 00 */	li r4, 0
/* 802C0FBC 002BCC1C  7C 00 33 78 */	or r0, r0, r6
/* 802C0FC0 002BCC20  98 05 00 0A */	stb r0, 0xa(r5)
/* 802C0FC4 002BCC24  4B FF FA 35 */	bl bta_dm_pm_set_mode
/* 802C0FC8 002BCC28  48 00 00 28 */	b lbl_802C0FF0
lbl_802C0FCC:
/* 802C0FCC 002BCC2C  3B BD 00 01 */	addi r29, r29, 1
lbl_802C0FD0:
/* 802C0FD0 002BCC30  88 1E 00 4D */	lbz r0, 0x4d(r30)
/* 802C0FD4 002BCC34  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 802C0FD8 002BCC38  7C 03 00 40 */	cmplw r3, r0
/* 802C0FDC 002BCC3C  41 80 FF A8 */	blt lbl_802C0F84
/* 802C0FE0 002BCC40  48 00 00 10 */	b lbl_802C0FF0
lbl_802C0FE4:
/* 802C0FE4 002BCC44  38 7F 00 08 */	addi r3, r31, 8
/* 802C0FE8 002BCC48  38 80 00 00 */	li r4, 0
/* 802C0FEC 002BCC4C  4B FF FA 0D */	bl bta_dm_pm_set_mode
lbl_802C0FF0:
/* 802C0FF0 002BCC50  39 61 00 20 */	addi r11, r1, 0x20
/* 802C0FF4 002BCC54  4B F0 61 81 */	bl _restgpr_27
/* 802C0FF8 002BCC58  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C0FFC 002BCC5C  7C 08 03 A6 */	mtlr r0
/* 802C1000 002BCC60  38 21 00 20 */	addi r1, r1, 0x20
/* 802C1004 002BCC64  4E 80 00 20 */	blr

bta_dm_pm_timer:
/* 802C1008 002BCC68  38 80 00 01 */	li r4, 1
/* 802C100C 002BCC6C  38 63 00 08 */	addi r3, r3, 8
/* 802C1010 002BCC70  4B FF F9 E8 */	b bta_dm_pm_set_mode