donut-decomp/asm/bte/btm_pm.s

1037 lines
46 KiB
ArmAsm
Raw Normal View History

2022-10-16 16:05:58 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
2022-10-16 16:31:36 +00:00
.global BTM_PmRegister
BTM_PmRegister:
2022-10-16 16:05:58 +00:00
/* 8008379C 0007F5DC 54 60 07 7B */ rlwinm. r0, r3, 0, 29, 29
/* 800837A0 0007F5E0 41 82 00 38 */ beq lbl_800837D8
/* 800837A4 0007F5E4 88 04 00 00 */ lbz r0, 0x0(r4)
/* 800837A8 0007F5E8 28 00 00 02 */ cmplwi r0, 0x2
/* 800837AC 0007F5EC 41 80 00 0C */ blt lbl_800837B8
/* 800837B0 0007F5F0 38 60 00 05 */ li r3, 0x5
/* 800837B4 0007F5F4 4E 80 00 20 */ blr
.global lbl_800837B8
lbl_800837B8:
2022-10-16 16:31:36 +00:00
/* 800837B8 0007F5F8 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800837BC 0007F5FC 54 00 1D 78 */ rlwinm r0, r0, 3, 21, 28
2022-10-16 16:31:36 +00:00
/* 800837C0 0007F600 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800837C4 0007F604 38 A0 00 00 */ li r5, 0x0
/* 800837C8 0007F608 7C 83 02 14 */ add r4, r3, r0
/* 800837CC 0007F60C 98 A4 05 58 */ stb r5, 0x558(r4)
/* 800837D0 0007F610 38 60 00 00 */ li r3, 0x0
/* 800837D4 0007F614 4E 80 00 20 */ blr
.global lbl_800837D8
lbl_800837D8:
2022-10-16 16:31:36 +00:00
/* 800837D8 0007F618 3C C0 80 4F */ lis r6, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800837DC 0007F61C 38 00 00 02 */ li r0, 0x2
2022-10-16 16:31:36 +00:00
/* 800837E0 0007F620 38 C6 5F 58 */ addi r6, r6, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800837E4 0007F624 38 E0 00 00 */ li r7, 0x0
/* 800837E8 0007F628 7C 09 03 A6 */ mtctr r0
.global lbl_800837EC
lbl_800837EC:
/* 800837EC 0007F62C 88 06 05 58 */ lbz r0, 0x558(r6)
/* 800837F0 0007F630 2C 00 00 00 */ cmpwi r0, 0x0
/* 800837F4 0007F634 40 82 00 50 */ bne lbl_80083844
/* 800837F8 0007F638 54 60 07 BD */ rlwinm. r0, r3, 0, 30, 30
/* 800837FC 0007F63C 41 82 00 28 */ beq lbl_80083824
/* 80083800 0007F640 2C 05 00 00 */ cmpwi r5, 0x0
/* 80083804 0007F644 40 82 00 0C */ bne lbl_80083810
/* 80083808 0007F648 38 60 00 05 */ li r3, 0x5
/* 8008380C 0007F64C 4E 80 00 20 */ blr
.global lbl_80083810
lbl_80083810:
2022-10-16 16:31:36 +00:00
/* 80083810 0007F650 3C C0 80 4F */ lis r6, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083814 0007F654 54 E0 18 38 */ slwi r0, r7, 3
2022-10-16 16:31:36 +00:00
/* 80083818 0007F658 38 C6 5F 58 */ addi r6, r6, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 8008381C 0007F65C 7C C6 02 14 */ add r6, r6, r0
/* 80083820 0007F660 90 A6 05 54 */ stw r5, 0x554(r6)
.global lbl_80083824
lbl_80083824:
2022-10-16 16:31:36 +00:00
/* 80083824 0007F664 3C A0 80 4F */ lis r5, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083828 0007F668 54 E0 18 38 */ slwi r0, r7, 3
2022-10-16 16:31:36 +00:00
/* 8008382C 0007F66C 38 A5 5F 58 */ addi r5, r5, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083830 0007F670 7C A5 02 14 */ add r5, r5, r0
/* 80083834 0007F674 98 65 05 58 */ stb r3, 0x558(r5)
/* 80083838 0007F678 38 60 00 00 */ li r3, 0x0
/* 8008383C 0007F67C 98 E4 00 00 */ stb r7, 0x0(r4)
/* 80083840 0007F680 4E 80 00 20 */ blr
.global lbl_80083844
lbl_80083844:
/* 80083844 0007F684 38 C6 00 08 */ addi r6, r6, 0x8
/* 80083848 0007F688 38 E7 00 01 */ addi r7, r7, 0x1
/* 8008384C 0007F68C 42 00 FF A0 */ bdnz lbl_800837EC
/* 80083850 0007F690 38 60 00 03 */ li r3, 0x3
/* 80083854 0007F694 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global BTM_SetPowerMode
BTM_SetPowerMode:
2022-10-16 16:05:58 +00:00
/* 80083858 0007F698 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8008385C 0007F69C 7C 08 02 A6 */ mflr r0
/* 80083860 0007F6A0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80083864 0007F6A4 39 61 00 20 */ addi r11, r1, 0x20
/* 80083868 0007F6A8 4B F8 3A D1 */ bl lbl_80007338
/* 8008386C 0007F6AC 28 03 00 02 */ cmplwi r3, 0x2
/* 80083870 0007F6B0 7C 7B 1B 78 */ mr r27, r3
/* 80083874 0007F6B4 7C 9A 23 78 */ mr r26, r4
/* 80083878 0007F6B8 7C BC 2B 78 */ mr r28, r5
/* 8008387C 0007F6BC 41 80 00 08 */ blt lbl_80083884
/* 80083880 0007F6C0 3B 60 00 80 */ li r27, 0x80
.global lbl_80083884
lbl_80083884:
/* 80083884 0007F6C4 2C 05 00 00 */ cmpwi r5, 0x0
/* 80083888 0007F6C8 40 82 00 0C */ bne lbl_80083894
/* 8008388C 0007F6CC 38 60 00 05 */ li r3, 0x5
/* 80083890 0007F6D0 48 00 01 80 */ b lbl_80083A10
.global lbl_80083894
lbl_80083894:
/* 80083894 0007F6D4 88 05 00 08 */ lbz r0, 0x8(r5)
2022-10-16 16:31:36 +00:00
/* 80083898 0007F6D8 3C 60 80 4F */ lis r3, btm_cb@ha
/* 8008389C 0007F6DC 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800838A0 0007F6E0 3B A0 00 00 */ li r29, 0x0
/* 800838A4 0007F6E4 54 1F 07 34 */ rlwinm r31, r0, 0, 28, 26
/* 800838A8 0007F6E8 3B C3 00 34 */ addi r30, r3, 0x34
.global lbl_800838AC
lbl_800838AC:
/* 800838AC 0007F6EC 88 1E 01 19 */ lbz r0, 0x119(r30)
/* 800838B0 0007F6F0 2C 00 00 00 */ cmpwi r0, 0x0
/* 800838B4 0007F6F4 41 82 00 1C */ beq lbl_800838D0
/* 800838B8 0007F6F8 7F 44 D3 78 */ mr r4, r26
/* 800838BC 0007F6FC 38 7E 00 08 */ addi r3, r30, 0x8
/* 800838C0 0007F700 38 A0 00 06 */ li r5, 0x6
2022-10-16 16:31:36 +00:00
/* 800838C4 0007F704 4B F8 75 AD */ bl memcmp
2022-10-16 16:05:58 +00:00
/* 800838C8 0007F708 2C 03 00 00 */ cmpwi r3, 0x0
/* 800838CC 0007F70C 41 82 00 14 */ beq lbl_800838E0
.global lbl_800838D0
lbl_800838D0:
/* 800838D0 0007F710 3B BD 00 01 */ addi r29, r29, 0x1
/* 800838D4 0007F714 3B DE 01 1C */ addi r30, r30, 0x11c
/* 800838D8 0007F718 28 1D 00 04 */ cmplwi r29, 0x4
/* 800838DC 0007F71C 41 80 FF D0 */ blt lbl_800838AC
.global lbl_800838E0
lbl_800838E0:
/* 800838E0 0007F720 57 BE 06 3E */ clrlwi r30, r29, 24
/* 800838E4 0007F724 2C 1E 00 04 */ cmpwi r30, 0x4
/* 800838E8 0007F728 40 82 00 0C */ bne lbl_800838F4
/* 800838EC 0007F72C 38 60 00 07 */ li r3, 0x7
/* 800838F0 0007F730 48 00 01 20 */ b lbl_80083A10
.global lbl_800838F4
lbl_800838F4:
/* 800838F4 0007F734 1C 1E 00 22 */ mulli r0, r30, 0x22
2022-10-16 16:31:36 +00:00
/* 800838F8 0007F738 3C 80 80 4F */ lis r4, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800838FC 0007F73C 57 E3 06 3F */ clrlwi. r3, r31, 24
2022-10-16 16:31:36 +00:00
/* 80083900 0007F740 38 84 5F 58 */ addi r4, r4, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083904 0007F744 7C 84 02 14 */ add r4, r4, r0
/* 80083908 0007F748 3B A4 04 CC */ addi r29, r4, 0x4cc
/* 8008390C 0007F74C 41 82 00 30 */ beq lbl_8008393C
/* 80083910 0007F750 3B 43 FF FF */ addi r26, r3, -0x1
2022-10-16 16:31:36 +00:00
/* 80083914 0007F754 4B FF DA 05 */ bl BTM_ReadLocalFeatures
/* 80083918 0007F758 38 82 89 C8 */ addi r4, r2, btm_pm_mode_off@sda21
/* 8008391C 0007F75C 38 A2 89 CC */ addi r5, r2, btm_pm_mode_msk@sda21
2022-10-16 16:05:58 +00:00
/* 80083920 0007F760 7C 04 D0 AE */ lbzx r0, r4, r26
/* 80083924 0007F764 7C 85 D0 AE */ lbzx r4, r5, r26
/* 80083928 0007F768 7C 03 00 AE */ lbzx r0, r3, r0
/* 8008392C 0007F76C 7C 80 00 39 */ and. r0, r4, r0
/* 80083930 0007F770 40 82 00 0C */ bne lbl_8008393C
/* 80083934 0007F774 38 60 00 04 */ li r3, 0x4
/* 80083938 0007F778 48 00 00 D8 */ b lbl_80083A10
.global lbl_8008393C
lbl_8008393C:
/* 8008393C 0007F77C 88 1D 00 20 */ lbz r0, 0x20(r29)
/* 80083940 0007F780 57 E3 06 3E */ clrlwi r3, r31, 24
/* 80083944 0007F784 7C 03 00 40 */ cmplw r3, r0
/* 80083948 0007F788 40 82 00 30 */ bne lbl_80083978
/* 8008394C 0007F78C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80083950 0007F790 41 82 00 20 */ beq lbl_80083970
/* 80083954 0007F794 A0 7D 00 1E */ lhz r3, 0x1e(r29)
/* 80083958 0007F798 A0 1C 00 00 */ lhz r0, 0x0(r28)
/* 8008395C 0007F79C 7C 00 18 40 */ cmplw r0, r3
/* 80083960 0007F7A0 41 80 00 18 */ blt lbl_80083978
/* 80083964 0007F7A4 A0 1C 00 02 */ lhz r0, 0x2(r28)
/* 80083968 0007F7A8 7C 00 18 40 */ cmplw r0, r3
/* 8008396C 0007F7AC 41 81 00 0C */ bgt lbl_80083978
.global lbl_80083970
lbl_80083970:
/* 80083970 0007F7B0 38 60 00 00 */ li r3, 0x0
/* 80083974 0007F7B4 48 00 00 9C */ b lbl_80083A10
.global lbl_80083978
lbl_80083978:
/* 80083978 0007F7B8 28 1B 00 80 */ cmplwi r27, 0x80
/* 8008397C 0007F7BC 41 82 00 54 */ beq lbl_800839D0
2022-10-16 16:31:36 +00:00
/* 80083980 0007F7C0 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083984 0007F7C4 57 60 1D 78 */ rlwinm r0, r27, 3, 21, 28
2022-10-16 16:31:36 +00:00
/* 80083988 0007F7C8 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 8008398C 0007F7CC 7C 63 02 14 */ add r3, r3, r0
/* 80083990 0007F7D0 88 03 05 58 */ lbz r0, 0x558(r3)
/* 80083994 0007F7D4 54 00 07 FF */ clrlwi. r0, r0, 31
/* 80083998 0007F7D8 41 82 00 38 */ beq lbl_800839D0
/* 8008399C 0007F7DC A0 9C 00 00 */ lhz r4, 0x0(r28)
/* 800839A0 0007F7E0 1C BB 00 0A */ mulli r5, r27, 0xa
/* 800839A4 0007F7E4 A0 7C 00 02 */ lhz r3, 0x2(r28)
/* 800839A8 0007F7E8 38 00 00 01 */ li r0, 0x1
/* 800839AC 0007F7EC 7C 85 EB 6E */ sthux r4, r5, r29
/* 800839B0 0007F7F0 B0 65 00 02 */ sth r3, 0x2(r5)
/* 800839B4 0007F7F4 A0 9C 00 04 */ lhz r4, 0x4(r28)
/* 800839B8 0007F7F8 A0 7C 00 06 */ lhz r3, 0x6(r28)
/* 800839BC 0007F7FC B0 85 00 04 */ sth r4, 0x4(r5)
/* 800839C0 0007F800 B0 65 00 06 */ sth r3, 0x6(r5)
/* 800839C4 0007F804 A0 7C 00 08 */ lhz r3, 0x8(r28)
/* 800839C8 0007F808 B0 65 00 08 */ sth r3, 0x8(r5)
/* 800839CC 0007F80C 98 1D 00 21 */ stb r0, 0x21(r29)
.global lbl_800839D0
lbl_800839D0:
/* 800839D0 0007F810 88 1D 00 20 */ lbz r0, 0x20(r29)
/* 800839D4 0007F814 28 00 00 01 */ cmplwi r0, 0x1
/* 800839D8 0007F818 41 82 00 20 */ beq lbl_800839F8
/* 800839DC 0007F81C 28 00 00 04 */ cmplwi r0, 0x4
/* 800839E0 0007F820 41 82 00 18 */ beq lbl_800839F8
2022-10-16 16:31:36 +00:00
/* 800839E4 0007F824 3C 60 80 4F */ lis r3, btm_cb@ha
/* 800839E8 0007F828 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800839EC 0007F82C 88 03 05 64 */ lbz r0, 0x564(r3)
/* 800839F0 0007F830 28 00 00 04 */ cmplwi r0, 0x4
/* 800839F4 0007F834 41 82 00 0C */ beq lbl_80083A00
.global lbl_800839F8
lbl_800839F8:
/* 800839F8 0007F838 38 60 00 0D */ li r3, 0xd
/* 800839FC 0007F83C 48 00 00 14 */ b lbl_80083A10
.global lbl_80083A00
lbl_80083A00:
/* 80083A00 0007F840 7F 63 DB 78 */ mr r3, r27
/* 80083A04 0007F844 7F C4 F3 78 */ mr r4, r30
/* 80083A08 0007F848 7F 85 E3 78 */ mr r5, r28
2022-10-16 16:31:36 +00:00
/* 80083A0C 0007F84C 48 00 05 19 */ bl btm_pm_snd_md_req
2022-10-16 16:05:58 +00:00
.global lbl_80083A10
lbl_80083A10:
/* 80083A10 0007F850 39 61 00 20 */ addi r11, r1, 0x20
/* 80083A14 0007F854 4B F8 39 71 */ bl lbl_80007384
/* 80083A18 0007F858 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80083A1C 0007F85C 7C 08 03 A6 */ mtlr r0
/* 80083A20 0007F860 38 21 00 20 */ addi r1, r1, 0x20
/* 80083A24 0007F864 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global BTM_ReadPowerMode
BTM_ReadPowerMode:
2022-10-16 16:05:58 +00:00
/* 80083A28 0007F868 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80083A2C 0007F86C 7C 08 02 A6 */ mflr r0
2022-10-16 16:31:36 +00:00
/* 80083A30 0007F870 3C A0 80 4F */ lis r5, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083A34 0007F874 90 01 00 24 */ stw r0, 0x24(r1)
2022-10-16 16:31:36 +00:00
/* 80083A38 0007F878 38 A5 5F 58 */ addi r5, r5, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083A3C 0007F87C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80083A40 0007F880 3B E0 00 00 */ li r31, 0x0
/* 80083A44 0007F884 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80083A48 0007F888 3B C5 00 34 */ addi r30, r5, 0x34
/* 80083A4C 0007F88C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80083A50 0007F890 7C 9D 23 78 */ mr r29, r4
/* 80083A54 0007F894 93 81 00 10 */ stw r28, 0x10(r1)
/* 80083A58 0007F898 7C 7C 1B 78 */ mr r28, r3
.global lbl_80083A5C
lbl_80083A5C:
/* 80083A5C 0007F89C 88 1E 01 19 */ lbz r0, 0x119(r30)
/* 80083A60 0007F8A0 2C 00 00 00 */ cmpwi r0, 0x0
/* 80083A64 0007F8A4 41 82 00 1C */ beq lbl_80083A80
/* 80083A68 0007F8A8 7F 84 E3 78 */ mr r4, r28
/* 80083A6C 0007F8AC 38 7E 00 08 */ addi r3, r30, 0x8
/* 80083A70 0007F8B0 38 A0 00 06 */ li r5, 0x6
2022-10-16 16:31:36 +00:00
/* 80083A74 0007F8B4 4B F8 73 FD */ bl memcmp
2022-10-16 16:05:58 +00:00
/* 80083A78 0007F8B8 2C 03 00 00 */ cmpwi r3, 0x0
/* 80083A7C 0007F8BC 41 82 00 14 */ beq lbl_80083A90
.global lbl_80083A80
lbl_80083A80:
/* 80083A80 0007F8C0 3B FF 00 01 */ addi r31, r31, 0x1
/* 80083A84 0007F8C4 3B DE 01 1C */ addi r30, r30, 0x11c
/* 80083A88 0007F8C8 28 1F 00 04 */ cmplwi r31, 0x4
/* 80083A8C 0007F8CC 41 80 FF D0 */ blt lbl_80083A5C
.global lbl_80083A90
lbl_80083A90:
/* 80083A90 0007F8D0 57 E0 06 3E */ clrlwi r0, r31, 24
/* 80083A94 0007F8D4 2C 00 00 04 */ cmpwi r0, 0x4
/* 80083A98 0007F8D8 40 82 00 0C */ bne lbl_80083AA4
/* 80083A9C 0007F8DC 38 60 00 07 */ li r3, 0x7
/* 80083AA0 0007F8E0 48 00 00 20 */ b lbl_80083AC0
.global lbl_80083AA4
lbl_80083AA4:
/* 80083AA4 0007F8E4 1C 00 00 22 */ mulli r0, r0, 0x22
2022-10-16 16:31:36 +00:00
/* 80083AA8 0007F8E8 3C 80 80 4F */ lis r4, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083AAC 0007F8EC 38 60 00 00 */ li r3, 0x0
2022-10-16 16:31:36 +00:00
/* 80083AB0 0007F8F0 38 84 5F 58 */ addi r4, r4, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083AB4 0007F8F4 7C 84 02 14 */ add r4, r4, r0
/* 80083AB8 0007F8F8 88 04 04 EC */ lbz r0, 0x4ec(r4)
/* 80083ABC 0007F8FC 98 1D 00 00 */ stb r0, 0x0(r29)
.global lbl_80083AC0
lbl_80083AC0:
/* 80083AC0 0007F900 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80083AC4 0007F904 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80083AC8 0007F908 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80083ACC 0007F90C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80083AD0 0007F910 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80083AD4 0007F914 7C 08 03 A6 */ mtlr r0
/* 80083AD8 0007F918 38 21 00 20 */ addi r1, r1, 0x20
/* 80083ADC 0007F91C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_reset
btm_pm_reset:
/* 80083AE0 0007F920 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083AE4 0007F924 39 80 00 00 */ li r12, 0x0
2022-10-16 16:31:36 +00:00
/* 80083AE8 0007F928 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083AEC 0007F92C 88 03 05 65 */ lbz r0, 0x565(r3)
/* 80083AF0 0007F930 28 00 00 80 */ cmplwi r0, 0x80
/* 80083AF4 0007F934 41 82 00 1C */ beq lbl_80083B10
/* 80083AF8 0007F938 54 00 1D 78 */ rlwinm r0, r0, 3, 21, 28
/* 80083AFC 0007F93C 7C 63 02 14 */ add r3, r3, r0
/* 80083B00 0007F940 88 03 05 58 */ lbz r0, 0x558(r3)
/* 80083B04 0007F944 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 80083B08 0007F948 41 82 00 08 */ beq lbl_80083B10
/* 80083B0C 0007F94C 81 83 05 54 */ lwz r12, 0x554(r3)
.global lbl_80083B10
lbl_80083B10:
2022-10-16 16:31:36 +00:00
/* 80083B10 0007F950 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083B14 0007F954 2C 0C 00 00 */ cmpwi r12, 0x0
2022-10-16 16:31:36 +00:00
/* 80083B18 0007F958 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083B1C 0007F95C 38 00 00 00 */ li r0, 0x0
/* 80083B20 0007F960 38 80 00 04 */ li r4, 0x4
/* 80083B24 0007F964 98 03 05 58 */ stb r0, 0x558(r3)
/* 80083B28 0007F968 98 83 05 64 */ stb r4, 0x564(r3)
/* 80083B2C 0007F96C 98 03 05 60 */ stb r0, 0x560(r3)
/* 80083B30 0007F970 4D 82 00 20 */ beqlr
/* 80083B34 0007F974 1C 04 01 1C */ mulli r0, r4, 0x11c
/* 80083B38 0007F978 38 80 00 05 */ li r4, 0x5
/* 80083B3C 0007F97C 38 A0 00 0C */ li r5, 0xc
/* 80083B40 0007F980 38 C0 00 00 */ li r6, 0x0
/* 80083B44 0007F984 7C 63 02 14 */ add r3, r3, r0
/* 80083B48 0007F988 38 63 00 3C */ addi r3, r3, 0x3c
/* 80083B4C 0007F98C 7D 89 03 A6 */ mtctr r12
/* 80083B50 0007F990 4E 80 04 20 */ bctr
/* 80083B54 0007F994 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_sm_alloc
btm_pm_sm_alloc:
2022-10-16 16:05:58 +00:00
/* 80083B58 0007F998 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80083B5C 0007F99C 7C 08 02 A6 */ mflr r0
/* 80083B60 0007F9A0 38 80 00 00 */ li r4, 0x0
/* 80083B64 0007F9A4 38 A0 00 22 */ li r5, 0x22
/* 80083B68 0007F9A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80083B6C 0007F9AC 1C 03 00 22 */ mulli r0, r3, 0x22
2022-10-16 16:31:36 +00:00
/* 80083B70 0007F9B0 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083B74 0007F9B4 93 E1 00 0C */ stw r31, 0xc(r1)
2022-10-16 16:31:36 +00:00
/* 80083B78 0007F9B8 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083B7C 0007F9BC 7C 63 02 14 */ add r3, r3, r0
/* 80083B80 0007F9C0 3B E3 04 CC */ addi r31, r3, 0x4cc
/* 80083B84 0007F9C4 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80083B88 0007F9C8 4B F8 07 C9 */ bl memset
2022-10-16 16:05:58 +00:00
/* 80083B8C 0007F9CC 38 00 00 00 */ li r0, 0x0
/* 80083B90 0007F9D0 98 1F 00 20 */ stb r0, 0x20(r31)
/* 80083B94 0007F9D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80083B98 0007F9D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80083B9C 0007F9DC 7C 08 03 A6 */ mtlr r0
/* 80083BA0 0007F9E0 38 21 00 10 */ addi r1, r1, 0x10
/* 80083BA4 0007F9E4 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_compare_modes
btm_pm_compare_modes:
2022-10-16 16:05:58 +00:00
/* 80083BA8 0007F9E8 2C 03 00 00 */ cmpwi r3, 0x0
/* 80083BAC 0007F9EC 40 82 00 34 */ bne lbl_80083BE0
/* 80083BB0 0007F9F0 A0 C4 00 00 */ lhz r6, 0x0(r4)
/* 80083BB4 0007F9F4 7C 83 23 78 */ mr r3, r4
/* 80083BB8 0007F9F8 A0 04 00 02 */ lhz r0, 0x2(r4)
/* 80083BBC 0007F9FC B0 C5 00 00 */ sth r6, 0x0(r5)
/* 80083BC0 0007FA00 B0 05 00 02 */ sth r0, 0x2(r5)
/* 80083BC4 0007FA04 A0 C4 00 04 */ lhz r6, 0x4(r4)
/* 80083BC8 0007FA08 A0 04 00 06 */ lhz r0, 0x6(r4)
/* 80083BCC 0007FA0C B0 C5 00 04 */ sth r6, 0x4(r5)
/* 80083BD0 0007FA10 B0 05 00 06 */ sth r0, 0x6(r5)
/* 80083BD4 0007FA14 A0 04 00 08 */ lhz r0, 0x8(r4)
/* 80083BD8 0007FA18 B0 05 00 08 */ sth r0, 0x8(r5)
/* 80083BDC 0007FA1C 4E 80 00 20 */ blr
.global lbl_80083BE0
lbl_80083BE0:
/* 80083BE0 0007FA20 89 24 00 08 */ lbz r9, 0x8(r4)
/* 80083BE4 0007FA24 2C 09 00 00 */ cmpwi r9, 0x0
/* 80083BE8 0007FA28 41 82 00 10 */ beq lbl_80083BF8
/* 80083BEC 0007FA2C 89 03 00 08 */ lbz r8, 0x8(r3)
/* 80083BF0 0007FA30 2C 08 00 00 */ cmpwi r8, 0x0
/* 80083BF4 0007FA34 40 82 00 0C */ bne lbl_80083C00
.global lbl_80083BF8
lbl_80083BF8:
/* 80083BF8 0007FA38 38 60 00 00 */ li r3, 0x0
/* 80083BFC 0007FA3C 4E 80 00 20 */ blr
.global lbl_80083C00
lbl_80083C00:
/* 80083C00 0007FA40 55 00 06 F7 */ rlwinm. r0, r8, 0, 27, 27
/* 80083C04 0007FA44 41 82 00 40 */ beq lbl_80083C44
/* 80083C08 0007FA48 A0 83 00 00 */ lhz r4, 0x0(r3)
/* 80083C0C 0007FA4C A0 03 00 02 */ lhz r0, 0x2(r3)
/* 80083C10 0007FA50 B0 85 00 00 */ sth r4, 0x0(r5)
/* 80083C14 0007FA54 B0 05 00 02 */ sth r0, 0x2(r5)
/* 80083C18 0007FA58 A0 83 00 04 */ lhz r4, 0x4(r3)
/* 80083C1C 0007FA5C A0 03 00 06 */ lhz r0, 0x6(r3)
/* 80083C20 0007FA60 B0 85 00 04 */ sth r4, 0x4(r5)
/* 80083C24 0007FA64 B0 05 00 06 */ sth r0, 0x6(r5)
/* 80083C28 0007FA68 A0 03 00 08 */ lhz r0, 0x8(r3)
/* 80083C2C 0007FA6C 7C A3 2B 78 */ mr r3, r5
/* 80083C30 0007FA70 B0 05 00 08 */ sth r0, 0x8(r5)
/* 80083C34 0007FA74 88 05 00 08 */ lbz r0, 0x8(r5)
/* 80083C38 0007FA78 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
/* 80083C3C 0007FA7C 98 05 00 08 */ stb r0, 0x8(r5)
/* 80083C40 0007FA80 4E 80 00 20 */ blr
.global lbl_80083C44
lbl_80083C44:
/* 80083C44 0007FA84 55 20 06 F7 */ rlwinm. r0, r9, 0, 27, 27
/* 80083C48 0007FA88 41 82 00 40 */ beq lbl_80083C88
/* 80083C4C 0007FA8C A0 C4 00 00 */ lhz r6, 0x0(r4)
/* 80083C50 0007FA90 7C A3 2B 78 */ mr r3, r5
/* 80083C54 0007FA94 A0 04 00 02 */ lhz r0, 0x2(r4)
/* 80083C58 0007FA98 B0 C5 00 00 */ sth r6, 0x0(r5)
/* 80083C5C 0007FA9C B0 05 00 02 */ sth r0, 0x2(r5)
/* 80083C60 0007FAA0 A0 C4 00 04 */ lhz r6, 0x4(r4)
/* 80083C64 0007FAA4 A0 04 00 06 */ lhz r0, 0x6(r4)
/* 80083C68 0007FAA8 B0 C5 00 04 */ sth r6, 0x4(r5)
/* 80083C6C 0007FAAC B0 05 00 06 */ sth r0, 0x6(r5)
/* 80083C70 0007FAB0 A0 04 00 08 */ lhz r0, 0x8(r4)
/* 80083C74 0007FAB4 B0 05 00 08 */ sth r0, 0x8(r5)
/* 80083C78 0007FAB8 88 05 00 08 */ lbz r0, 0x8(r5)
/* 80083C7C 0007FABC 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
/* 80083C80 0007FAC0 98 05 00 08 */ stb r0, 0x8(r5)
/* 80083C84 0007FAC4 4E 80 00 20 */ blr
.global lbl_80083C88
lbl_80083C88:
/* 80083C88 0007FAC8 38 E8 FF FF */ addi r7, r8, -0x1
2022-10-16 16:31:36 +00:00
/* 80083C8C 0007FACC 3C C0 80 41 */ lis r6, btm_pm_md_comp_matrix@ha
2022-10-16 16:05:58 +00:00
/* 80083C90 0007FAD0 54 E0 10 3A */ slwi r0, r7, 2
/* 80083C94 0007FAD4 7C 07 00 50 */ subf r0, r7, r0
2022-10-16 16:31:36 +00:00
/* 80083C98 0007FAD8 38 C6 80 F8 */ addi r6, r6, btm_pm_md_comp_matrix@l
2022-10-16 16:05:58 +00:00
/* 80083C9C 0007FADC 7C E9 02 14 */ add r7, r9, r0
/* 80083CA0 0007FAE0 38 07 FF FF */ addi r0, r7, -0x1
/* 80083CA4 0007FAE4 54 00 06 3E */ clrlwi r0, r0, 24
/* 80083CA8 0007FAE8 7C 06 00 AE */ lbzx r0, r6, r0
/* 80083CAC 0007FAEC 2C 00 00 02 */ cmpwi r0, 0x2
/* 80083CB0 0007FAF0 41 82 00 4C */ beq lbl_80083CFC
/* 80083CB4 0007FAF4 40 80 00 10 */ bge lbl_80083CC4
/* 80083CB8 0007FAF8 2C 00 00 01 */ cmpwi r0, 0x1
/* 80083CBC 0007FAFC 40 80 00 14 */ bge lbl_80083CD0
/* 80083CC0 0007FB00 48 00 00 FC */ b lbl_80083DBC
.global lbl_80083CC4
lbl_80083CC4:
/* 80083CC4 0007FB04 2C 00 00 04 */ cmpwi r0, 0x4
/* 80083CC8 0007FB08 40 80 00 F4 */ bge lbl_80083DBC
/* 80083CCC 0007FB0C 48 00 00 60 */ b lbl_80083D2C
.global lbl_80083CD0
lbl_80083CD0:
/* 80083CD0 0007FB10 A0 83 00 00 */ lhz r4, 0x0(r3)
/* 80083CD4 0007FB14 A0 03 00 02 */ lhz r0, 0x2(r3)
/* 80083CD8 0007FB18 B0 85 00 00 */ sth r4, 0x0(r5)
/* 80083CDC 0007FB1C B0 05 00 02 */ sth r0, 0x2(r5)
/* 80083CE0 0007FB20 A0 83 00 04 */ lhz r4, 0x4(r3)
/* 80083CE4 0007FB24 A0 03 00 06 */ lhz r0, 0x6(r3)
/* 80083CE8 0007FB28 B0 85 00 04 */ sth r4, 0x4(r5)
/* 80083CEC 0007FB2C B0 05 00 06 */ sth r0, 0x6(r5)
/* 80083CF0 0007FB30 A0 03 00 08 */ lhz r0, 0x8(r3)
/* 80083CF4 0007FB34 B0 05 00 08 */ sth r0, 0x8(r5)
/* 80083CF8 0007FB38 4E 80 00 20 */ blr
.global lbl_80083CFC
lbl_80083CFC:
/* 80083CFC 0007FB3C A0 C4 00 00 */ lhz r6, 0x0(r4)
/* 80083D00 0007FB40 7C 83 23 78 */ mr r3, r4
/* 80083D04 0007FB44 A0 04 00 02 */ lhz r0, 0x2(r4)
/* 80083D08 0007FB48 B0 C5 00 00 */ sth r6, 0x0(r5)
/* 80083D0C 0007FB4C B0 05 00 02 */ sth r0, 0x2(r5)
/* 80083D10 0007FB50 A0 C4 00 04 */ lhz r6, 0x4(r4)
/* 80083D14 0007FB54 A0 04 00 06 */ lhz r0, 0x6(r4)
/* 80083D18 0007FB58 B0 C5 00 04 */ sth r6, 0x4(r5)
/* 80083D1C 0007FB5C B0 05 00 06 */ sth r0, 0x6(r5)
/* 80083D20 0007FB60 A0 04 00 08 */ lhz r0, 0x8(r4)
/* 80083D24 0007FB64 B0 05 00 08 */ sth r0, 0x8(r5)
/* 80083D28 0007FB68 4E 80 00 20 */ blr
.global lbl_80083D2C
lbl_80083D2C:
/* 80083D2C 0007FB6C 99 05 00 08 */ stb r8, 0x8(r5)
/* 80083D30 0007FB70 A0 C4 00 00 */ lhz r6, 0x0(r4)
/* 80083D34 0007FB74 A0 03 00 00 */ lhz r0, 0x0(r3)
/* 80083D38 0007FB78 7C 00 30 40 */ cmplw r0, r6
/* 80083D3C 0007FB7C 40 80 00 08 */ bge lbl_80083D44
/* 80083D40 0007FB80 7C 06 03 78 */ mr r6, r0
.global lbl_80083D44
lbl_80083D44:
/* 80083D44 0007FB84 B0 C5 00 00 */ sth r6, 0x0(r5)
/* 80083D48 0007FB88 A0 E4 00 02 */ lhz r7, 0x2(r4)
/* 80083D4C 0007FB8C A0 03 00 02 */ lhz r0, 0x2(r3)
/* 80083D50 0007FB90 7C 00 38 40 */ cmplw r0, r7
/* 80083D54 0007FB94 40 81 00 08 */ ble lbl_80083D5C
/* 80083D58 0007FB98 7C 07 03 78 */ mr r7, r0
.global lbl_80083D5C
lbl_80083D5C:
/* 80083D5C 0007FB9C A0 C5 00 00 */ lhz r6, 0x0(r5)
/* 80083D60 0007FBA0 54 E0 04 3E */ clrlwi r0, r7, 16
/* 80083D64 0007FBA4 B0 E5 00 02 */ sth r7, 0x2(r5)
/* 80083D68 0007FBA8 7C 06 00 40 */ cmplw r6, r0
/* 80083D6C 0007FBAC 40 80 00 0C */ bge lbl_80083D78
/* 80083D70 0007FBB0 38 60 00 00 */ li r3, 0x0
/* 80083D74 0007FBB4 4E 80 00 20 */ blr
.global lbl_80083D78
lbl_80083D78:
/* 80083D78 0007FBB8 88 05 00 08 */ lbz r0, 0x8(r5)
/* 80083D7C 0007FBBC 28 00 00 02 */ cmplwi r0, 0x2
/* 80083D80 0007FBC0 40 82 00 34 */ bne lbl_80083DB4
/* 80083D84 0007FBC4 A0 C4 00 04 */ lhz r6, 0x4(r4)
/* 80083D88 0007FBC8 A0 03 00 04 */ lhz r0, 0x4(r3)
/* 80083D8C 0007FBCC 7C 00 30 40 */ cmplw r0, r6
/* 80083D90 0007FBD0 40 81 00 08 */ ble lbl_80083D98
/* 80083D94 0007FBD4 7C 06 03 78 */ mr r6, r0
.global lbl_80083D98
lbl_80083D98:
/* 80083D98 0007FBD8 B0 C5 00 04 */ sth r6, 0x4(r5)
/* 80083D9C 0007FBDC A0 84 00 06 */ lhz r4, 0x6(r4)
/* 80083DA0 0007FBE0 A0 03 00 06 */ lhz r0, 0x6(r3)
/* 80083DA4 0007FBE4 7C 00 20 40 */ cmplw r0, r4
/* 80083DA8 0007FBE8 40 81 00 08 */ ble lbl_80083DB0
/* 80083DAC 0007FBEC 7C 04 03 78 */ mr r4, r0
.global lbl_80083DB0
lbl_80083DB0:
/* 80083DB0 0007FBF0 B0 85 00 06 */ sth r4, 0x6(r5)
.global lbl_80083DB4
lbl_80083DB4:
/* 80083DB4 0007FBF4 7C A3 2B 78 */ mr r3, r5
/* 80083DB8 0007FBF8 4E 80 00 20 */ blr
.global lbl_80083DBC
lbl_80083DBC:
/* 80083DBC 0007FBFC 38 60 00 00 */ li r3, 0x0
/* 80083DC0 0007FC00 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_get_set_mode
btm_pm_get_set_mode:
2022-10-16 16:05:58 +00:00
/* 80083DC4 0007FC04 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80083DC8 0007FC08 7C 08 02 A6 */ mflr r0
/* 80083DCC 0007FC0C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80083DD0 0007FC10 39 61 00 20 */ addi r11, r1, 0x20
/* 80083DD4 0007FC14 4B F8 35 65 */ bl lbl_80007338
/* 80083DD8 0007FC18 2C 05 00 00 */ cmpwi r5, 0x0
/* 80083DDC 0007FC1C 7C 7A 1B 78 */ mr r26, r3
/* 80083DE0 0007FC20 7C BB 2B 78 */ mr r27, r5
/* 80083DE4 0007FC24 7C DC 33 78 */ mr r28, r6
/* 80083DE8 0007FC28 38 E0 00 00 */ li r7, 0x0
/* 80083DEC 0007FC2C 41 82 00 48 */ beq lbl_80083E34
/* 80083DF0 0007FC30 88 05 00 08 */ lbz r0, 0x8(r5)
/* 80083DF4 0007FC34 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
/* 80083DF8 0007FC38 41 82 00 3C */ beq lbl_80083E34
/* 80083DFC 0007FC3C A0 65 00 00 */ lhz r3, 0x0(r5)
/* 80083E00 0007FC40 A0 05 00 02 */ lhz r0, 0x2(r5)
/* 80083E04 0007FC44 B0 66 00 00 */ sth r3, 0x0(r6)
/* 80083E08 0007FC48 B0 06 00 02 */ sth r0, 0x2(r6)
/* 80083E0C 0007FC4C A0 65 00 04 */ lhz r3, 0x4(r5)
/* 80083E10 0007FC50 A0 05 00 06 */ lhz r0, 0x6(r5)
/* 80083E14 0007FC54 B0 66 00 04 */ sth r3, 0x4(r6)
/* 80083E18 0007FC58 B0 06 00 06 */ sth r0, 0x6(r6)
/* 80083E1C 0007FC5C A0 05 00 08 */ lhz r0, 0x8(r5)
/* 80083E20 0007FC60 B0 06 00 08 */ sth r0, 0x8(r6)
/* 80083E24 0007FC64 88 06 00 08 */ lbz r0, 0x8(r6)
/* 80083E28 0007FC68 54 03 07 34 */ rlwinm r3, r0, 0, 28, 26
/* 80083E2C 0007FC6C 98 66 00 08 */ stb r3, 0x8(r6)
/* 80083E30 0007FC70 48 00 00 DC */ b lbl_80083F0C
.global lbl_80083E34
lbl_80083E34:
2022-10-16 16:31:36 +00:00
/* 80083E34 0007FC74 3F E0 80 4F */ lis r31, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083E38 0007FC78 7C 9E 23 78 */ mr r30, r4
2022-10-16 16:31:36 +00:00
/* 80083E3C 0007FC7C 3B FF 5F 58 */ addi r31, r31, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083E40 0007FC80 3B A0 00 00 */ li r29, 0x0
.global lbl_80083E44
lbl_80083E44:
/* 80083E44 0007FC84 88 1F 05 58 */ lbz r0, 0x558(r31)
/* 80083E48 0007FC88 54 00 07 FF */ clrlwi. r0, r0, 31
/* 80083E4C 0007FC8C 41 82 00 3C */ beq lbl_80083E88
/* 80083E50 0007FC90 88 1E 00 08 */ lbz r0, 0x8(r30)
/* 80083E54 0007FC94 2C 00 00 00 */ cmpwi r0, 0x0
/* 80083E58 0007FC98 40 82 00 0C */ bne lbl_80083E64
/* 80083E5C 0007FC9C 38 60 00 00 */ li r3, 0x0
/* 80083E60 0007FCA0 48 00 00 AC */ b lbl_80083F0C
.global lbl_80083E64
lbl_80083E64:
/* 80083E64 0007FCA4 7C E3 3B 78 */ mr r3, r7
/* 80083E68 0007FCA8 7F C4 F3 78 */ mr r4, r30
/* 80083E6C 0007FCAC 7F 85 E3 78 */ mr r5, r28
2022-10-16 16:31:36 +00:00
/* 80083E70 0007FCB0 4B FF FD 39 */ bl btm_pm_compare_modes
2022-10-16 16:05:58 +00:00
/* 80083E74 0007FCB4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80083E78 0007FCB8 40 82 00 0C */ bne lbl_80083E84
/* 80083E7C 0007FCBC 38 60 00 00 */ li r3, 0x0
/* 80083E80 0007FCC0 48 00 00 8C */ b lbl_80083F0C
.global lbl_80083E84
lbl_80083E84:
/* 80083E84 0007FCC4 7F 87 E3 78 */ mr r7, r28
.global lbl_80083E88
lbl_80083E88:
/* 80083E88 0007FCC8 3B BD 00 01 */ addi r29, r29, 0x1
/* 80083E8C 0007FCCC 3B DE 00 0A */ addi r30, r30, 0xa
/* 80083E90 0007FCD0 2C 1D 00 02 */ cmpwi r29, 0x2
/* 80083E94 0007FCD4 3B FF 00 08 */ addi r31, r31, 0x8
/* 80083E98 0007FCD8 41 80 FF AC */ blt lbl_80083E44
/* 80083E9C 0007FCDC 2C 07 00 00 */ cmpwi r7, 0x0
/* 80083EA0 0007FCE0 40 82 00 40 */ bne lbl_80083EE0
/* 80083EA4 0007FCE4 2C 1B 00 00 */ cmpwi r27, 0x0
/* 80083EA8 0007FCE8 41 82 00 30 */ beq lbl_80083ED8
/* 80083EAC 0007FCEC A0 7B 00 00 */ lhz r3, 0x0(r27)
/* 80083EB0 0007FCF0 A0 1B 00 02 */ lhz r0, 0x2(r27)
/* 80083EB4 0007FCF4 B0 7C 00 00 */ sth r3, 0x0(r28)
/* 80083EB8 0007FCF8 B0 1C 00 02 */ sth r0, 0x2(r28)
/* 80083EBC 0007FCFC A0 7B 00 04 */ lhz r3, 0x4(r27)
/* 80083EC0 0007FD00 A0 1B 00 06 */ lhz r0, 0x6(r27)
/* 80083EC4 0007FD04 B0 7C 00 04 */ sth r3, 0x4(r28)
/* 80083EC8 0007FD08 B0 1C 00 06 */ sth r0, 0x6(r28)
/* 80083ECC 0007FD0C A0 1B 00 08 */ lhz r0, 0x8(r27)
/* 80083ED0 0007FD10 B0 1C 00 08 */ sth r0, 0x8(r28)
/* 80083ED4 0007FD14 48 00 00 34 */ b lbl_80083F08
.global lbl_80083ED8
lbl_80083ED8:
/* 80083ED8 0007FD18 38 60 00 00 */ li r3, 0x0
/* 80083EDC 0007FD1C 48 00 00 30 */ b lbl_80083F0C
.global lbl_80083EE0
lbl_80083EE0:
/* 80083EE0 0007FD20 28 1A 00 80 */ cmplwi r26, 0x80
/* 80083EE4 0007FD24 40 82 00 24 */ bne lbl_80083F08
/* 80083EE8 0007FD28 7F 63 DB 78 */ mr r3, r27
/* 80083EEC 0007FD2C 7C E4 3B 78 */ mr r4, r7
/* 80083EF0 0007FD30 7F 85 E3 78 */ mr r5, r28
2022-10-16 16:31:36 +00:00
/* 80083EF4 0007FD34 4B FF FC B5 */ bl btm_pm_compare_modes
2022-10-16 16:05:58 +00:00
/* 80083EF8 0007FD38 2C 03 00 00 */ cmpwi r3, 0x0
/* 80083EFC 0007FD3C 40 82 00 0C */ bne lbl_80083F08
/* 80083F00 0007FD40 38 60 00 00 */ li r3, 0x0
/* 80083F04 0007FD44 48 00 00 08 */ b lbl_80083F0C
.global lbl_80083F08
lbl_80083F08:
/* 80083F08 0007FD48 88 7C 00 08 */ lbz r3, 0x8(r28)
.global lbl_80083F0C
lbl_80083F0C:
/* 80083F0C 0007FD4C 39 61 00 20 */ addi r11, r1, 0x20
/* 80083F10 0007FD50 4B F8 34 75 */ bl lbl_80007384
/* 80083F14 0007FD54 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80083F18 0007FD58 7C 08 03 A6 */ mtlr r0
/* 80083F1C 0007FD5C 38 21 00 20 */ addi r1, r1, 0x20
/* 80083F20 0007FD60 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_snd_md_req
btm_pm_snd_md_req:
2022-10-16 16:05:58 +00:00
/* 80083F24 0007FD64 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80083F28 0007FD68 7C 08 02 A6 */ mflr r0
2022-10-16 16:31:36 +00:00
/* 80083F2C 0007FD6C 3C C0 80 4F */ lis r6, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80083F30 0007FD70 90 01 00 34 */ stw r0, 0x34(r1)
/* 80083F34 0007FD74 1C 04 00 22 */ mulli r0, r4, 0x22
2022-10-16 16:31:36 +00:00
/* 80083F38 0007FD78 38 C6 5F 58 */ addi r6, r6, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80083F3C 0007FD7C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80083F40 0007FD80 3B E0 00 00 */ li r31, 0x0
/* 80083F44 0007FD84 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80083F48 0007FD88 7C 9E 23 78 */ mr r30, r4
/* 80083F4C 0007FD8C 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80083F50 0007FD90 7C 7D 1B 78 */ mr r29, r3
/* 80083F54 0007FD94 7C 66 02 14 */ add r3, r6, r0
/* 80083F58 0007FD98 38 C1 00 08 */ addi r6, r1, 0x8
/* 80083F5C 0007FD9C 93 81 00 20 */ stw r28, 0x20(r1)
/* 80083F60 0007FDA0 3B 83 04 CC */ addi r28, r3, 0x4cc
/* 80083F64 0007FDA4 7F A3 EB 78 */ mr r3, r29
/* 80083F68 0007FDA8 7F 84 E3 78 */ mr r4, r28
2022-10-16 16:31:36 +00:00
/* 80083F6C 0007FDAC 4B FF FE 59 */ bl btm_pm_get_set_mode
2022-10-16 16:05:58 +00:00
/* 80083F70 0007FDB0 88 9C 00 20 */ lbz r4, 0x20(r28)
/* 80083F74 0007FDB4 54 60 06 3E */ clrlwi r0, r3, 24
/* 80083F78 0007FDB8 98 61 00 10 */ stb r3, 0x10(r1)
/* 80083F7C 0007FDBC 7C 04 00 40 */ cmplw r4, r0
/* 80083F80 0007FDC0 40 82 00 34 */ bne lbl_80083FB4
/* 80083F84 0007FDC4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80083F88 0007FDC8 41 82 00 20 */ beq lbl_80083FA8
/* 80083F8C 0007FDCC A0 9C 00 1E */ lhz r4, 0x1e(r28)
/* 80083F90 0007FDD0 A0 01 00 08 */ lhz r0, 0x8(r1)
/* 80083F94 0007FDD4 7C 00 20 40 */ cmplw r0, r4
/* 80083F98 0007FDD8 41 80 00 18 */ blt lbl_80083FB0
/* 80083F9C 0007FDDC A0 01 00 0A */ lhz r0, 0xa(r1)
/* 80083FA0 0007FDE0 7C 00 20 40 */ cmplw r0, r4
/* 80083FA4 0007FDE4 41 81 00 0C */ bgt lbl_80083FB0
.global lbl_80083FA8
lbl_80083FA8:
/* 80083FA8 0007FDE8 38 60 00 0D */ li r3, 0xd
/* 80083FAC 0007FDEC 48 00 01 8C */ b lbl_80084138
.global lbl_80083FB0
lbl_80083FB0:
/* 80083FB0 0007FDF0 3B E0 00 01 */ li r31, 0x1
.global lbl_80083FB4
lbl_80083FB4:
/* 80083FB4 0007FDF4 54 60 06 3F */ clrlwi. r0, r3, 24
/* 80083FB8 0007FDF8 9B FC 00 21 */ stb r31, 0x21(r28)
/* 80083FBC 0007FDFC 41 82 00 18 */ beq lbl_80083FD4
/* 80083FC0 0007FE00 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 80083FC4 0007FE04 2C 00 00 00 */ cmpwi r0, 0x0
/* 80083FC8 0007FE08 41 82 00 0C */ beq lbl_80083FD4
/* 80083FCC 0007FE0C 38 00 00 01 */ li r0, 0x1
/* 80083FD0 0007FE10 98 1C 00 21 */ stb r0, 0x21(r28)
.global lbl_80083FD4
lbl_80083FD4:
/* 80083FD4 0007FE14 38 60 00 02 */ li r3, 0x2
2022-10-16 16:31:36 +00:00
/* 80083FD8 0007FE18 4B FF 0E 49 */ bl GKI_getpoolbuf
2022-10-16 16:05:58 +00:00
/* 80083FDC 0007FE1C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80083FE0 0007FE20 7C 7F 1B 78 */ mr r31, r3
/* 80083FE4 0007FE24 40 82 00 0C */ bne lbl_80083FF0
/* 80083FE8 0007FE28 38 60 00 03 */ li r3, 0x3
/* 80083FEC 0007FE2C 48 00 01 4C */ b lbl_80084138
.global lbl_80083FF0
lbl_80083FF0:
/* 80083FF0 0007FE30 88 1C 00 21 */ lbz r0, 0x21(r28)
/* 80083FF4 0007FE34 28 00 00 01 */ cmplwi r0, 0x1
/* 80083FF8 0007FE38 40 82 00 0C */ bne lbl_80084004
/* 80083FFC 0007FE3C 38 00 00 00 */ li r0, 0x0
/* 80084000 0007FE40 98 01 00 10 */ stb r0, 0x10(r1)
.global lbl_80084004
lbl_80084004:
/* 80084004 0007FE44 88 01 00 10 */ lbz r0, 0x10(r1)
2022-10-16 16:31:36 +00:00
/* 80084008 0007FE48 3C 80 80 4F */ lis r4, btm_cb@ha
/* 8008400C 0007FE4C 38 84 5F 58 */ addi r4, r4, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80084010 0007FE50 2C 00 00 02 */ cmpwi r0, 0x2
/* 80084014 0007FE54 9B C4 05 64 */ stb r30, 0x564(r4)
/* 80084018 0007FE58 9B A4 05 65 */ stb r29, 0x565(r4)
/* 8008401C 0007FE5C 41 82 00 A4 */ beq lbl_800840C0
/* 80084020 0007FE60 40 80 00 14 */ bge lbl_80084034
/* 80084024 0007FE64 2C 00 00 00 */ cmpwi r0, 0x0
/* 80084028 0007FE68 41 82 00 18 */ beq lbl_80084040
/* 8008402C 0007FE6C 40 80 00 74 */ bge lbl_800840A0
/* 80084030 0007FE70 48 00 00 D8 */ b lbl_80084108
.global lbl_80084034
lbl_80084034:
/* 80084034 0007FE74 2C 00 00 04 */ cmpwi r0, 0x4
/* 80084038 0007FE78 40 80 00 D0 */ bge lbl_80084108
/* 8008403C 0007FE7C 48 00 00 AC */ b lbl_800840E8
.global lbl_80084040
lbl_80084040:
/* 80084040 0007FE80 88 1C 00 20 */ lbz r0, 0x20(r28)
/* 80084044 0007FE84 2C 00 00 03 */ cmpwi r0, 0x3
/* 80084048 0007FE88 41 82 00 2C */ beq lbl_80084074
/* 8008404C 0007FE8C 40 80 00 40 */ bge lbl_8008408C
/* 80084050 0007FE90 2C 00 00 02 */ cmpwi r0, 0x2
/* 80084054 0007FE94 40 80 00 08 */ bge lbl_8008405C
/* 80084058 0007FE98 48 00 00 34 */ b lbl_8008408C
.global lbl_8008405C
lbl_8008405C:
/* 8008405C 0007FE9C 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 80084060 0007FEA0 7F E3 FB 78 */ mr r3, r31
/* 80084064 0007FEA4 7C 84 02 14 */ add r4, r4, r0
/* 80084068 0007FEA8 A0 84 00 34 */ lhz r4, 0x34(r4)
2022-10-16 16:31:36 +00:00
/* 8008406C 0007FEAC 48 00 78 B1 */ bl btsnd_hcic_exit_sniff_mode
2022-10-16 16:05:58 +00:00
/* 80084070 0007FEB0 48 00 00 A8 */ b lbl_80084118
.global lbl_80084074
lbl_80084074:
/* 80084074 0007FEB4 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 80084078 0007FEB8 7F E3 FB 78 */ mr r3, r31
/* 8008407C 0007FEBC 7C 84 02 14 */ add r4, r4, r0
/* 80084080 0007FEC0 A0 84 00 34 */ lhz r4, 0x34(r4)
2022-10-16 16:31:36 +00:00
/* 80084084 0007FEC4 48 00 79 D1 */ bl btsnd_hcic_exit_park_mode
2022-10-16 16:05:58 +00:00
/* 80084088 0007FEC8 48 00 00 90 */ b lbl_80084118
.global lbl_8008408C
lbl_8008408C:
2022-10-16 16:31:36 +00:00
/* 8008408C 0007FECC 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80084090 0007FED0 38 00 00 04 */ li r0, 0x4
2022-10-16 16:31:36 +00:00
/* 80084094 0007FED4 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80084098 0007FED8 98 03 05 64 */ stb r0, 0x564(r3)
/* 8008409C 0007FEDC 48 00 00 7C */ b lbl_80084118
.global lbl_800840A0
lbl_800840A0:
/* 800840A0 0007FEE0 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 800840A4 0007FEE4 A0 A1 00 08 */ lhz r5, 0x8(r1)
/* 800840A8 0007FEE8 A0 C1 00 0A */ lhz r6, 0xa(r1)
/* 800840AC 0007FEEC 7F E3 FB 78 */ mr r3, r31
/* 800840B0 0007FEF0 7C 84 02 14 */ add r4, r4, r0
/* 800840B4 0007FEF4 A0 84 00 34 */ lhz r4, 0x34(r4)
2022-10-16 16:31:36 +00:00
/* 800840B8 0007FEF8 48 00 76 E5 */ bl btsnd_hcic_hold_mode
2022-10-16 16:05:58 +00:00
/* 800840BC 0007FEFC 48 00 00 5C */ b lbl_80084118
.global lbl_800840C0
lbl_800840C0:
/* 800840C0 0007FF00 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 800840C4 0007FF04 A0 A1 00 08 */ lhz r5, 0x8(r1)
/* 800840C8 0007FF08 A0 C1 00 0A */ lhz r6, 0xa(r1)
/* 800840CC 0007FF0C 7F E3 FB 78 */ mr r3, r31
/* 800840D0 0007FF10 A0 E1 00 0C */ lhz r7, 0xc(r1)
/* 800840D4 0007FF14 7C 84 02 14 */ add r4, r4, r0
/* 800840D8 0007FF18 A0 84 00 34 */ lhz r4, 0x34(r4)
/* 800840DC 0007FF1C A1 01 00 0E */ lhz r8, 0xe(r1)
2022-10-16 16:31:36 +00:00
/* 800840E0 0007FF20 48 00 77 71 */ bl btsnd_hcic_sniff_mode
2022-10-16 16:05:58 +00:00
/* 800840E4 0007FF24 48 00 00 34 */ b lbl_80084118
.global lbl_800840E8
lbl_800840E8:
/* 800840E8 0007FF28 1C 1E 01 1C */ mulli r0, r30, 0x11c
/* 800840EC 0007FF2C A0 A1 00 08 */ lhz r5, 0x8(r1)
/* 800840F0 0007FF30 A0 C1 00 0A */ lhz r6, 0xa(r1)
/* 800840F4 0007FF34 7F E3 FB 78 */ mr r3, r31
/* 800840F8 0007FF38 7C 84 02 14 */ add r4, r4, r0
/* 800840FC 0007FF3C A0 84 00 34 */ lhz r4, 0x34(r4)
2022-10-16 16:31:36 +00:00
/* 80084100 0007FF40 48 00 78 A1 */ bl btsnd_hcic_park_mode
2022-10-16 16:05:58 +00:00
/* 80084104 0007FF44 48 00 00 14 */ b lbl_80084118
.global lbl_80084108
lbl_80084108:
2022-10-16 16:31:36 +00:00
/* 80084108 0007FF48 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 8008410C 0007FF4C 38 00 00 04 */ li r0, 0x4
2022-10-16 16:31:36 +00:00
/* 80084110 0007FF50 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80084114 0007FF54 98 03 05 64 */ stb r0, 0x564(r3)
.global lbl_80084118
lbl_80084118:
2022-10-16 16:31:36 +00:00
/* 80084118 0007FF58 3C 60 80 4F */ lis r3, btm_cb@ha
/* 8008411C 0007FF5C 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80084120 0007FF60 88 03 05 64 */ lbz r0, 0x564(r3)
/* 80084124 0007FF64 28 00 00 04 */ cmplwi r0, 0x4
/* 80084128 0007FF68 40 82 00 0C */ bne lbl_80084134
/* 8008412C 0007FF6C 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80084130 0007FF70 4B FF 0D E1 */ bl GKI_freebuf
2022-10-16 16:05:58 +00:00
.global lbl_80084134
lbl_80084134:
/* 80084134 0007FF74 38 60 00 01 */ li r3, 0x1
.global lbl_80084138
lbl_80084138:
/* 80084138 0007FF78 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8008413C 0007FF7C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80084140 0007FF80 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80084144 0007FF84 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80084148 0007FF88 83 81 00 20 */ lwz r28, 0x20(r1)
/* 8008414C 0007FF8C 7C 08 03 A6 */ mtlr r0
/* 80084150 0007FF90 38 21 00 30 */ addi r1, r1, 0x30
/* 80084154 0007FF94 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_proc_cmd_status
btm_pm_proc_cmd_status:
2022-10-16 16:05:58 +00:00
/* 80084158 0007FF98 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8008415C 0007FF9C 7C 08 02 A6 */ mflr r0
2022-10-16 16:31:36 +00:00
/* 80084160 0007FFA0 3C 80 80 4F */ lis r4, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80084164 0007FFA4 90 01 00 14 */ stw r0, 0x14(r1)
2022-10-16 16:31:36 +00:00
/* 80084168 0007FFA8 38 84 5F 58 */ addi r4, r4, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 8008416C 0007FFAC 88 04 05 64 */ lbz r0, 0x564(r4)
/* 80084170 0007FFB0 28 00 00 04 */ cmplwi r0, 0x4
/* 80084174 0007FFB4 40 80 00 84 */ bge lbl_800841F8
/* 80084178 0007FFB8 1C 00 00 22 */ mulli r0, r0, 0x22
/* 8008417C 0007FFBC 2C 03 00 00 */ cmpwi r3, 0x0
/* 80084180 0007FFC0 7C A4 02 14 */ add r5, r4, r0
/* 80084184 0007FFC4 40 82 00 14 */ bne lbl_80084198
/* 80084188 0007FFC8 38 00 00 04 */ li r0, 0x4
/* 8008418C 0007FFCC 38 80 00 04 */ li r4, 0x4
/* 80084190 0007FFD0 98 05 04 EC */ stb r0, 0x4ec(r5)
/* 80084194 0007FFD4 48 00 00 08 */ b lbl_8008419C
.global lbl_80084198
lbl_80084198:
/* 80084198 0007FFD8 38 80 00 05 */ li r4, 0x5
.global lbl_8008419C
lbl_8008419C:
2022-10-16 16:31:36 +00:00
/* 8008419C 0007FFDC 3C E0 80 4F */ lis r7, btm_cb@ha
/* 800841A0 0007FFE0 38 E7 5F 58 */ addi r7, r7, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800841A4 0007FFE4 88 07 05 65 */ lbz r0, 0x565(r7)
/* 800841A8 0007FFE8 28 00 00 80 */ cmplwi r0, 0x80
/* 800841AC 0007FFEC 41 82 00 3C */ beq lbl_800841E8
/* 800841B0 0007FFF0 54 00 1D 78 */ rlwinm r0, r0, 3, 21, 28
/* 800841B4 0007FFF4 7C A7 02 14 */ add r5, r7, r0
/* 800841B8 0007FFF8 88 05 05 58 */ lbz r0, 0x558(r5)
/* 800841BC 0007FFFC 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 800841C0 00080000 41 82 00 28 */ beq lbl_800841E8
/* 800841C4 00080004 88 07 05 64 */ lbz r0, 0x564(r7)
/* 800841C8 00080008 7C 66 1B 78 */ mr r6, r3
/* 800841CC 0008000C 81 85 05 54 */ lwz r12, 0x554(r5)
/* 800841D0 00080010 38 A0 00 00 */ li r5, 0x0
/* 800841D4 00080014 1C 00 01 1C */ mulli r0, r0, 0x11c
/* 800841D8 00080018 7C 67 02 14 */ add r3, r7, r0
/* 800841DC 0008001C 38 63 00 3C */ addi r3, r3, 0x3c
/* 800841E0 00080020 7D 89 03 A6 */ mtctr r12
/* 800841E4 00080024 4E 80 04 21 */ bctrl
.global lbl_800841E8
lbl_800841E8:
2022-10-16 16:31:36 +00:00
/* 800841E8 00080028 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800841EC 0008002C 38 00 00 04 */ li r0, 0x4
2022-10-16 16:31:36 +00:00
/* 800841F0 00080030 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800841F4 00080034 98 03 05 64 */ stb r0, 0x564(r3)
.global lbl_800841F8
lbl_800841F8:
/* 800841F8 00080038 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800841FC 0008003C 7C 08 03 A6 */ mtlr r0
/* 80084200 00080040 38 21 00 10 */ addi r1, r1, 0x10
/* 80084204 00080044 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global btm_pm_proc_mode_change
btm_pm_proc_mode_change:
2022-10-16 16:05:58 +00:00
/* 80084208 00080048 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8008420C 0008004C 7C 08 02 A6 */ mflr r0
/* 80084210 00080050 90 01 00 34 */ stw r0, 0x34(r1)
/* 80084214 00080054 39 61 00 30 */ addi r11, r1, 0x30
/* 80084218 00080058 4B F8 31 19 */ bl lbl_80007330
/* 8008421C 0008005C 7C 9A 23 78 */ mr r26, r4
/* 80084220 00080060 7C 79 1B 78 */ mr r25, r3
/* 80084224 00080064 7C BB 2B 78 */ mr r27, r5
/* 80084228 00080068 7C DC 33 78 */ mr r28, r6
/* 8008422C 0008006C 7F 43 D3 78 */ mr r3, r26
2022-10-16 16:31:36 +00:00
/* 80084230 00080070 4B FF 9B D1 */ bl btm_handle_to_acl_index
2022-10-16 16:05:58 +00:00
/* 80084234 00080074 54 7D 06 3E */ clrlwi r29, r3, 24
/* 80084238 00080078 2C 1D 00 04 */ cmpwi r29, 0x4
/* 8008423C 0008007C 40 80 01 DC */ bge lbl_80084418
/* 80084240 00080080 1F DD 01 1C */ mulli r30, r29, 0x11c
2022-10-16 16:31:36 +00:00
/* 80084244 00080084 3F 00 80 4F */ lis r24, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 80084248 00080088 2C 1B 00 00 */ cmpwi r27, 0x0
2022-10-16 16:31:36 +00:00
/* 8008424C 0008008C 3B 18 5F 58 */ addi r24, r24, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80084250 00080090 7F F8 F2 14 */ add r31, r24, r30
/* 80084254 00080094 40 82 00 58 */ bne lbl_800842AC
/* 80084258 00080098 A0 1F 00 38 */ lhz r0, 0x38(r31)
/* 8008425C 0008009C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80084260 000800A0 41 82 00 4C */ beq lbl_800842AC
2022-10-16 16:31:36 +00:00
/* 80084264 000800A4 48 00 0F 1D */ bl btm_num_sco_links_active
2022-10-16 16:05:58 +00:00
/* 80084268 000800A8 54 60 06 3F */ clrlwi. r0, r3, 24
/* 8008426C 000800AC 40 82 00 40 */ bne lbl_800842AC
/* 80084270 000800B0 38 00 00 00 */ li r0, 0x0
/* 80084274 000800B4 B0 1F 00 38 */ sth r0, 0x38(r31)
/* 80084278 000800B8 88 18 27 C0 */ lbz r0, 0x27c0(r24)
/* 8008427C 000800BC 28 00 00 05 */ cmplwi r0, 0x5
/* 80084280 000800C0 41 80 00 20 */ blt lbl_800842A0
/* 80084284 000800C4 3C 60 00 0D */ lis r3, 0xd
2022-10-16 16:31:36 +00:00
/* 80084288 000800C8 3C 80 80 44 */ lis r4, "@1775"@ha
2022-10-16 16:05:58 +00:00
/* 8008428C 000800CC A0 DF 00 36 */ lhz r6, 0x36(r31)
/* 80084290 000800D0 7F 45 D3 78 */ mr r5, r26
/* 80084294 000800D4 38 63 00 04 */ addi r3, r3, 0x4
2022-10-16 16:31:36 +00:00
/* 80084298 000800D8 38 84 BF 40 */ addi r4, r4, "@1775"@l
/* 8008429C 000800DC 4B FF 36 C5 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
.global lbl_800842A0
lbl_800842A0:
/* 800842A0 000800E0 A0 7F 00 34 */ lhz r3, 0x34(r31)
/* 800842A4 000800E4 A0 9F 00 36 */ lhz r4, 0x36(r31)
2022-10-16 16:31:36 +00:00
/* 800842A8 000800E8 48 00 6E 2D */ bl btsnd_hcic_change_conn_type
2022-10-16 16:05:58 +00:00
.global lbl_800842AC
lbl_800842AC:
/* 800842AC 000800EC 1C 1D 00 22 */ mulli r0, r29, 0x22
2022-10-16 16:31:36 +00:00
/* 800842B0 000800F0 3C 60 80 4F */ lis r3, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800842B4 000800F4 2C 1B 00 00 */ cmpwi r27, 0x0
2022-10-16 16:31:36 +00:00
/* 800842B8 000800F8 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800842BC 000800FC 7C 83 02 14 */ add r4, r3, r0
/* 800842C0 00080100 9B 64 04 EC */ stb r27, 0x4ec(r4)
/* 800842C4 00080104 38 00 00 00 */ li r0, 0x0
/* 800842C8 00080108 B3 84 04 EA */ sth r28, 0x4ea(r4)
/* 800842CC 0008010C 40 82 00 14 */ bne lbl_800842E0
/* 800842D0 00080110 88 64 04 D4 */ lbz r3, 0x4d4(r4)
/* 800842D4 00080114 28 03 00 01 */ cmplwi r3, 0x1
/* 800842D8 00080118 40 82 00 08 */ bne lbl_800842E0
/* 800842DC 0008011C 98 04 04 D4 */ stb r0, 0x4d4(r4)
.global lbl_800842E0
lbl_800842E0:
/* 800842E0 00080120 2C 1B 00 00 */ cmpwi r27, 0x0
/* 800842E4 00080124 38 A4 04 D6 */ addi r5, r4, 0x4d6
/* 800842E8 00080128 40 82 00 14 */ bne lbl_800842FC
/* 800842EC 0008012C 88 65 00 08 */ lbz r3, 0x8(r5)
/* 800842F0 00080130 28 03 00 01 */ cmplwi r3, 0x1
/* 800842F4 00080134 40 82 00 08 */ bne lbl_800842FC
/* 800842F8 00080138 98 05 00 08 */ stb r0, 0x8(r5)
.global lbl_800842FC
lbl_800842FC:
/* 800842FC 0008013C 88 04 04 ED */ lbz r0, 0x4ed(r4)
/* 80084300 00080140 28 00 00 01 */ cmplwi r0, 0x1
/* 80084304 00080144 40 82 00 14 */ bne lbl_80084318
/* 80084308 00080148 7F A4 EB 78 */ mr r4, r29
/* 8008430C 0008014C 38 60 00 80 */ li r3, 0x80
/* 80084310 00080150 38 A0 00 00 */ li r5, 0x0
2022-10-16 16:31:36 +00:00
/* 80084314 00080154 4B FF FC 11 */ bl btm_pm_snd_md_req
2022-10-16 16:05:58 +00:00
.global lbl_80084318
lbl_80084318:
2022-10-16 16:31:36 +00:00
/* 80084318 00080158 3F 00 80 4F */ lis r24, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 8008431C 0008015C 3B A0 00 00 */ li r29, 0x0
2022-10-16 16:31:36 +00:00
/* 80084320 00080160 3B 18 5F 58 */ addi r24, r24, btm_cb@l
2022-10-16 16:05:58 +00:00
.global lbl_80084324
lbl_80084324:
/* 80084324 00080164 88 18 05 58 */ lbz r0, 0x558(r24)
/* 80084328 00080168 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 8008432C 0008016C 41 82 00 20 */ beq lbl_8008434C
/* 80084330 00080170 81 98 05 54 */ lwz r12, 0x554(r24)
/* 80084334 00080174 7F 64 DB 78 */ mr r4, r27
/* 80084338 00080178 7F 85 E3 78 */ mr r5, r28
/* 8008433C 0008017C 7F 26 CB 78 */ mr r6, r25
/* 80084340 00080180 38 7F 00 3C */ addi r3, r31, 0x3c
/* 80084344 00080184 7D 89 03 A6 */ mtctr r12
/* 80084348 00080188 4E 80 04 21 */ bctrl
.global lbl_8008434C
lbl_8008434C:
/* 8008434C 0008018C 3B BD 00 01 */ addi r29, r29, 0x1
/* 80084350 00080190 3B 18 00 08 */ addi r24, r24, 0x8
/* 80084354 00080194 2C 1D 00 02 */ cmpwi r29, 0x2
/* 80084358 00080198 41 80 FF CC */ blt lbl_80084324
2022-10-16 16:31:36 +00:00
/* 8008435C 0008019C 3C 60 80 4F */ lis r3, btm_cb@ha
/* 80084360 000801A0 38 63 5F 58 */ addi r3, r3, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 80084364 000801A4 7F 83 F2 14 */ add r28, r3, r30
/* 80084368 000801A8 88 1C 01 4F */ lbz r0, 0x14f(r28)
/* 8008436C 000801AC 28 00 00 01 */ cmplwi r0, 0x1
/* 80084370 000801B0 40 82 00 A8 */ bne lbl_80084418
/* 80084374 000801B4 3B 1C 00 3C */ addi r24, r28, 0x3c
/* 80084378 000801B8 7F 03 C3 78 */ mr r3, r24
2022-10-16 16:31:36 +00:00
/* 8008437C 000801BC 4B FF BC 59 */ bl btm_find_dev
2022-10-16 16:05:58 +00:00
/* 80084380 000801C0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80084384 000801C4 41 82 00 30 */ beq lbl_800843B4
/* 80084388 000801C8 88 03 00 76 */ lbz r0, 0x76(r3)
/* 8008438C 000801CC 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 80084390 000801D0 41 82 00 24 */ beq lbl_800843B4
/* 80084394 000801D4 7F 43 D3 78 */ mr r3, r26
/* 80084398 000801D8 38 80 00 00 */ li r4, 0x0
2022-10-16 16:31:36 +00:00
/* 8008439C 000801DC 48 00 6E 45 */ bl btsnd_hcic_set_conn_encrypt
2022-10-16 16:05:58 +00:00
/* 800843A0 000801E0 54 60 06 3F */ clrlwi. r0, r3, 24
/* 800843A4 000801E4 41 82 00 44 */ beq lbl_800843E8
/* 800843A8 000801E8 38 00 00 02 */ li r0, 0x2
/* 800843AC 000801EC 98 1C 01 4F */ stb r0, 0x14f(r28)
/* 800843B0 000801F0 48 00 00 68 */ b lbl_80084418
.global lbl_800843B4
lbl_800843B4:
2022-10-16 16:31:36 +00:00
/* 800843B4 000801F4 3C 80 80 4F */ lis r4, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800843B8 000801F8 7F 03 C3 78 */ mr r3, r24
2022-10-16 16:31:36 +00:00
/* 800843BC 000801FC 38 84 5F 58 */ addi r4, r4, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800843C0 00080200 7C 84 F2 14 */ add r4, r4, r30
/* 800843C4 00080204 88 04 01 4E */ lbz r0, 0x14e(r4)
/* 800843C8 00080208 7C 00 00 34 */ cntlzw r0, r0
/* 800843CC 0008020C 54 04 DE 3E */ extrwi r4, r0, 8, 19
2022-10-16 16:31:36 +00:00
/* 800843D0 00080210 48 00 77 09 */ bl btsnd_hcic_switch_role
2022-10-16 16:05:58 +00:00
/* 800843D4 00080214 54 60 06 3F */ clrlwi. r0, r3, 24
/* 800843D8 00080218 41 82 00 10 */ beq lbl_800843E8
/* 800843DC 0008021C 38 00 00 00 */ li r0, 0x0
/* 800843E0 00080220 98 1C 01 4F */ stb r0, 0x14f(r28)
/* 800843E4 00080224 48 00 00 34 */ b lbl_80084418
.global lbl_800843E8
lbl_800843E8:
/* 800843E8 00080228 3B 60 00 00 */ li r27, 0x0
2022-10-16 16:31:36 +00:00
/* 800843EC 0008022C 3F 40 80 4F */ lis r26, btm_cb@ha
2022-10-16 16:05:58 +00:00
/* 800843F0 00080230 9B 7C 01 4F */ stb r27, 0x14f(r28)
2022-10-16 16:31:36 +00:00
/* 800843F4 00080234 3B 5A 5F 58 */ addi r26, r26, btm_cb@l
2022-10-16 16:05:58 +00:00
/* 800843F8 00080238 81 9A 06 2C */ lwz r12, 0x62c(r26)
/* 800843FC 0008023C 2C 0C 00 00 */ cmpwi r12, 0x0
/* 80084400 00080240 41 82 00 18 */ beq lbl_80084418
/* 80084404 00080244 9B 3A 06 24 */ stb r25, 0x624(r26)
/* 80084408 00080248 38 7A 06 24 */ addi r3, r26, 0x624
/* 8008440C 0008024C 7D 89 03 A6 */ mtctr r12
/* 80084410 00080250 4E 80 04 21 */ bctrl
/* 80084414 00080254 93 7A 06 2C */ stw r27, 0x62c(r26)
.global lbl_80084418
lbl_80084418:
/* 80084418 00080258 39 61 00 30 */ addi r11, r1, 0x30
/* 8008441C 0008025C 4B F8 2F 61 */ bl lbl_8000737C
/* 80084420 00080260 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80084424 00080264 7C 08 03 A6 */ mtlr r0
/* 80084428 00080268 38 21 00 30 */ addi r1, r1, 0x30
/* 8008442C 0008026C 4E 80 00 20 */ blr
2022-10-17 08:41:13 +00:00
.include "macros.inc"
.section .rodata, "wa" # 0x80406560 - 0x80421040 ; 0x0001AAE0
.global btm_pm_md_comp_matrix
btm_pm_md_comp_matrix:
.4byte 0x03020201
.4byte 0x03010102
.4byte 0x03000000
.4byte 0
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@1775"
"@1775":
.4byte 0x62746D20
.4byte 0x6D6F6465
.4byte 0x20636861
.4byte 0x6E676520
.4byte 0x41465445
.4byte 0x5220756E
.4byte 0x736E6966
.4byte 0x66696E67
.4byte 0x3B206863
.4byte 0x69206864
.4byte 0x6C203078
.4byte 0x25782C20
.4byte 0x74797065
.4byte 0x73203078
.4byte 0x25303278
.4byte 0
.include "macros.inc"
.section .sdata2, "wa" # 0x8055DF80 - 0x805643C0 ; 0x00006440
.global btm_pm_mode_off
btm_pm_mode_off:
.4byte 0x00000100
.global btm_pm_mode_msk
btm_pm_mode_msk:
.4byte 0x40800100